Modding:Texturas
This page was last verified for Vintage Story version 1.15.
Antes de personalizar las texturas, te sugerimos que leas primero las páginas Item Básico, Bloque Básico y Entidad Básica para entender este tutorial.
Texturizar un Item
Texturización plana
Texturizar tus objetos y bloques en Vintage Story es bastante sencillo, pero hay que tener en cuenta algunas cosas a la hora de usar formas. Empecemos usando una textura plana para un objeto:
texture: { base: "item/resource/texture" }
Si su ítem tiene una variante, también puede utilizarla en las texturas, incluso sin la función byType:
texture: { base: "path to texture/texture-{variant}" }
Texturización de formas
Si tu ítem se renderiza con una forma personalizada usando shape: { base: "path hacia la forma" }
puedes controlar sus texturas usando la versión plural "textures". Para ello es necesario que utilices el mismo identificador "#texture" utilizado en cada lado de un cubo de forma.
Veamos un ejemplo. En primer lugar vamos a ver algunos cubos en una forma JSON:
{
"name": "Cubo_1",
"from": [ 0.5, 0.0, 2.0 ],
"to": [ 5.5, 1.0, 2.5 ],
"rotationOrigin": [ 1.0, 0.0, -1.0 ],
"faces": {
"north": { "texture": "#metal", "uv": [ 0.0, 0.0, 5.0, 1.0 ] },
"east": { "texture": "#metal", "uv": [ 7.0, 3.0, 7.5, 4.0 ] },
"south": { "texture": "#metal", "uv": [ 1.0, 2.0, 6.0, 3.0 ] },
"west": { "texture": "#metal", "uv": [ 7.0, 0.0, 7.5, 1.0 ] },
"up": { "texture": "#metal", "uv": [ 0.0, 3.0, 5.0, 3.5 ] },
"down": { "texture": "#metal", "uv": [ 0.0, 0.0, 5.0, 0.5 ] }
}
}
{
"name": "Cubo_2",
"from": [ 0.5, 0.0, 2.0 ],
"to": [ 5.5, 1.0, 2.5 ],
"rotationOrigin": [ 1.0, 0.0, -1.0 ],
"faces": {
"north": { "texture": "#madera", "uv": [ 0.0, 0.0, 5.0, 1.0 ] },
"east": { "texture": "#madera", "uv": [ 7.0, 3.0, 7.5, 4.0 ] },
"south": { "texture": "#madera", "uv": [ 1.0, 2.0, 6.0, 3.0 ] },
"west": { "texture": "#madera", "uv": [ 7.0, 0.0, 7.5, 1.0 ] },
"up": { "texture": "#madera", "uv": [ 0.0, 3.0, 5.0, 3.5 ] },
"down": { "texture": "#madera", "uv": [ 0.0, 0.0, 5.0, 0.5 ] }
}
}
Ahora podemos asignar las referencias #texture desde nuestro item o bloque JSON usando este formato, que también puede utilizar variantes en el formato regular {variant}:
textures: {
"metal": {base: "path hacia la textura de metal" },
"madera": {base: "path hacia la textura de madera" }
},
Se trata de un método útil, ya que tanto "metal" como "madera" pueden asignarse a varios cubos dentro del JSON de la forma.
Textura de Forma Voxelizada
Si decides que quieres que una variante de un ítem no se renderice usando una forma JSON puedes usar la propiedad "voxelizeTexture" al definir una forma. Echemos un vistazo a lo que hace el JSON de redmeat:
shapebytype: {
"redmeat-vintage": { base: "item/empty", voxelizeTexture: true },
"*": { base: "item/food/meat/red" },
},
texturesbytype: {
"redmeat-raw": {
"carne": {base: "item/food/meat/raw" }
},
"redmeat-cooked": {
"carne": {base: "item/food/meat/cooked" }
},
"redmeat-cured": {
"carne": {base: "item/food/meat/cured" }
},
"redmeat-vintage": {
"item/empty": { base: "item/food/meat/vintage" }
}
},
Podemos ver aquí que sólo la variante "vintage" se renderizará como una textura de objeto voxelizada normal, mientras que el resto utilizará la forma carne y le aplicará su textura.
Texturizar un Bloque
Un Bloque Simple
Los bloques se texturizan de forma un poco diferente, ya que por defecto tienen la forma genérica de "cubo". Esto significa que no utilizan el método singular "texture", y en su lugar siempre utilizan una versión del plural "textures":
textures: {
all: {base: "path hacia la textura*"}
},
Texturizar otras caras de bloques
Al asignar texturas "all" dará a cada lado la misma textura, pero podemos personalizar fácilmente cada lado, especialmente si queremos usar algunos comportamientos de bloque como "Pillar"
o "HorizontalOrientable"
:
textures: {
up: { base: "path hacia la textura superior" },
down: { base: "path hacia la textura inferior" },
south: { base: "path hacia la textura trasera" },
north: { base: "path hacia la textura frontal" },
west: { base: "path hacia la textura izquierda" },
east: { base: "path hacia la textura derecha" },
},
Tenga en cuenta que si utiliza los comportamientos "Pillar"
u "HorizontalOrientable"
necesitará variantes direccionales para cada uno (como arriba-abajo, norte-sur, este-oeste, etc.) y probablemente tendrá que organizarlo utilizando la funcionalidad ByType. Un gran ejemplo de esto son los JSONS log (Pilar) y altar (HorizontalOrientable).
Texturizar una entidad
Textura básica de entidad
Todas las entidades utilizan una forma, pero por lo general se aplican utilizando una única textura de mapa de entidad, que es esencialmente un archivo de textura con cada lado del cubo mapeado en él. Hacer esto manualmente sería increíblemente tedioso, y se hace mejor con el Vintage Story Model Builder que se encuentra aquí.
Una vez que tengas tu textura correctamente mapeada puedes asignarla a tu entidad:
texture: { base: "path hacia la textura mapeada" }
Textura de Entidad Alternativas
después de definir la primera textura, también puede añadir alternativas a la misma entidad. Veamos el Lobo como ejemplo:
texture: { base: "entity/wolf/lobo1", alternates: [ { base: "entity/wolf/lobo2" }, { base: "entity/wolf/lobo2" }, {...} ] }
Cada alternativa sucesiva debe ir numerada (empezando por 1).
Wondering where some links have gone?
The modding navbox is going through some changes! Check out Navigation Box Updates for more info and help finding specific pages.
Modding | |
---|---|
Modding Introduction | Getting Started • Pack Temático |
Content Modding | Content Mods • Developing a Content Mod • Basic Tutorials • Intermediate Tutorials • Advanced Tutorials • Content Mod Concepts |
Code Modding | Code Mods • Setting up your Development Environment |
Property Overview | Item • Entity • Entity Behaviors • Block • Block Behaviors • Block Classes • Block Entities • Block Entity Behaviors • Collectible Behaviors • World properties |
Workflows & Infrastructure | Modding Efficiency Tips • Mod-engine compatibility • Mod Extensibility • VS Engine |
Additional Resources | Community Resources • Modding API Updates • Programming Languages • List of server commands • List of client commands • Client startup parameters • Server startup parameters Example Mods • API Docs • GitHub Repository |