Modding:Textures/ru: Difference between revisions
(Created page with "=== Воксилезированная текстура формы ===") |
(Created page with "Если вы решили, что хотите, чтобы вариации элемента не отображались с использованием формы JSON, в...") |
||
Line 65: | Line 65: | ||
=== Воксилезированная текстура формы === | === Воксилезированная текстура формы === | ||
Если вы решили, что хотите, чтобы вариации элемента не отображались с использованием формы JSON, вы можете использовать свойство "voxelizeTexture" при определении формы. Давайте посмотрим, что делает JSON: | |||
<syntaxhighlight lang="json"> | <syntaxhighlight lang="json"> |
Revision as of 12:00, 22 July 2020
Перед настройкой текстур рекомендуется сначала прочитать страницы Basic Item, Basic Block и Basic Entity чтобы понять это руководство.
Текстурирование предмета
Плоское текстурирование
Текстурирование ваших предметов и блоков в vintage story довольно простое, но есть некоторые вещи, которые следует учитывать при использовании форм. Начнем с использования плоской текстуры для элемента:
texture: { base: "item/resource/texture" }
Если у вашего элемента есть вариация, вы также можете использовать его в текстурах, даже без функции byType:
texture: { base: "path to texture/texture-{variant}" }
Текстурирование формы
Если ваш элемент отображается с пользовательской формой, используя shape: { base: "path to shape" }
вы можете управлять его текстурами, используя множественную версию "textures". Для этого необходимо использовать один и тот же идентификатор "#texture" который используется на каждой стороне куба формы.
Давайте посмотрим на пример. Сначала мы рассмотрим несколько кубов в форме JSON:
{
"name": "Cube_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": "Cube_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": "#wood", "uv": [ 0.0, 0.0, 5.0, 1.0 ] },
"east": { "texture": "#wood", "uv": [ 7.0, 3.0, 7.5, 4.0 ] },
"south": { "texture": "#wood", "uv": [ 1.0, 2.0, 6.0, 3.0 ] },
"west": { "texture": "#wood", "uv": [ 7.0, 0.0, 7.5, 1.0 ] },
"up": { "texture": "#wood", "uv": [ 0.0, 3.0, 5.0, 3.5 ] },
"down": { "texture": "#wood", "uv": [ 0.0, 0.0, 5.0, 0.5 ] }
}
}
Теперь мы можем назначить ссылки #texture из нашего элемента или блока JSON, используя этот формат, который также может использовать варианты в обычном формате:
textures: {
"metal": {base: "path to metal texture" },
"wood": {base: "path to wood texture" }
},
Это полезный метод, поскольку как «металл», так и «дерево» могут быть назначены нескольким кубам в форме JSON.
Воксилезированная текстура формы
Если вы решили, что хотите, чтобы вариации элемента не отображались с использованием формы JSON, вы можете использовать свойство "voxelizeTexture" при определении формы. Давайте посмотрим, что делает JSON:
shapebytype: {
"redmeat-vintage": { base: "item/empty", voxelizeTexture: true },
"*": { base: "item/food/meat/red" },
},
texturesbytype: {
"redmeat-raw": {
"meat": {base: "item/food/meat/raw" }
},
"redmeat-cooked": {
"meat": {base: "item/food/meat/cooked" }
},
"redmeat-cured": {
"meat": {base: "item/food/meat/cured" }
},
"redmeat-vintage": {
"item/empty": { base: "item/food/meat/vintage" }
}
},
We can see here that only the "vintage" variant will be rendered as a regular voxelized item texture, while the rest will use the redmeat shape and apply their texture to it.
Texturing a Block
Simple Block
Blocks are textured a little differently since they default to generic "cube" shape. This means they don't use the singular "texture" method, and instead always use a version of the plural "textures":
textures: {
all: {base: "path to texture*"}
},
Texturing Other Block Faces
When assigning textures "all" will give every side the same texture, but we can easily customize each side, especially if we want to use some block behaviors like "Pillar"
or "HorizontalOrientable"
:
textures: {
up: { base: "path to top texture" },
down: { base: "path to bottom texture" },
south: { base: "path to back texture" },
north: { base: "path to front texture" },
west: { base: "path to left texture" },
east: { base: "path to right texture" },
},
Keep in mind that if you're using the "Pillar"
or "HorizontalOrientable"
behaviors you'll need directional variants for each (such as updown, northsouth, eastwest etc.) and you'll likely have to organize it using the ByType functionality. A great example of this is the log (Pillar) and altar (HorizontalOrientable) JSONS.
Texturing an Entity
Basic Entity Texture
All entities utilize a shape, but generally they are applied using a single entity map texture, which is essentially a texture file with each cube side mapped onto it. Doing this manually would be incredibly tedious, and is best done with the Vintage Story Model Builder found here.
Once you have your properly mapped out texture you can assign it to your entity:
texture: { base: "path to texture map" }
Alternative Entity Textures
after defining the first texture, you can also add alternatives to the same entity. Lets look at the Wolf for an example:
texture: { base: "entity/wolf/wolf1", alternates: [ { base: "entity/wolf/wolf2" }, { base: "entity/wolf/wolf2" }, {...} ] }
Each successive alternative should be numbered (starting with 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 • Пакет тем |
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 • Block • Block Behaviors • Block Classes • Block Entities • Block Entity 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 |