Modding:Textures/ru: Difference between revisions

From Vintage Story Wiki
(Created page with "Теперь мы можем назначить ссылки #texture из нашего элемента или блока JSON, используя этот формат, ко...")
No edit summary
 
(19 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<languages/>
{{GameVersion|1.15}}
__FORCETOC__
__FORCETOC__
Перед настройкой текстур рекомендуется сначала прочитать страницы [[Basic Item]], [[Basic Block]] и [[Basic Entity]] чтобы понять это руководство.
Перед настройкой текстур рекомендуется сначала прочитать страницы [[Basic Item/ru|базовые предметы]], [[Basic Block/ru|базовые блоки]] и [[Basic Entity/ru|базовые сущности]] чтобы понять это руководство.




Line 61: Line 63:
</syntaxhighlight>
</syntaxhighlight>


This is a useful method since both "metal" and "wood" can be assigned to multiple cubes within the shape JSON.
Это полезный метод, поскольку как «металл», так и «дерево» могут быть назначены нескольким кубам в форме JSON.


=== Voxelized Texture Shapes ===
=== Воксилезированная текстура формы ===


If you decide you want a variant of an item to not be rendered using a JSON shape you can use the "voxelizeTexture property when defining a shape. Lets take a look at what the redmeat JSON does:
Если вы решили, что хотите, чтобы вариации элемента не отображались с использованием формы JSON, вы можете использовать свойство "voxelizeTexture" при определении формы. Давайте посмотрим, что делает JSON с красным мясом:


<syntaxhighlight lang="json">
<syntaxhighlight lang="json">
Line 88: Line 90:
</syntaxhighlight>
</syntaxhighlight>


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":
Блоки текстурированы немного по-другому, так как по умолчанию они имеют общую форму куба. Это означает, что они не используют единственный «текстурный» метод, а вместо этого всегда используют версию множественных «текстур»:


<syntaxhighlight lang="json">
<syntaxhighlight lang="json">
Line 102: Line 104:
</syntaxhighlight>
</syntaxhighlight>


=== 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 <code>"Pillar"</code> or <code>"HorizontalOrientable"</code>:
При назначении текстур «all» будет давать каждой стороне одну и ту же текстуру, но мы можем легко настроить каждую сторону, особенно если мы хотим использовать некоторые варианты поведения блоков, такие как <code>"Pillar"</code> или <code>"HorizontalOrientable"</code>:


<syntaxhighlight lang="json">
<syntaxhighlight lang="json">
Line 117: Line 119:
</syntaxhighlight>
</syntaxhighlight>


Keep in mind that if you're using the <code>"Pillar"</code> or <code>"HorizontalOrientable"</code> 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.  
Имейте в виду, что если вы используете поведения <code>"Pillar"</code> или <code>"HorizontalOrientable"</code>, вам потребуются направленные варианты для каждого (например, updown, northsouth, eastwest и т. Д. ) и вам, скорее всего, придется организовать его, используя функциональность ByType. Прекрасным примером этого является бревна (Pillar) и алтарь (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 [[VS Model Creator| here]].   
Все сущности используют фигуру, но обычно они применяются с использованием одной текстуры карты сущностей, которая по сути представляет собой файл текстуры с каждой стороной куба, нанесенной на нее. Делать это вручную было бы невероятно утомительно, и лучше всего это сделать с помощью редактора Vintage Story Model Builder [[VS Model Creator | здесь]].   


Once you have your properly mapped out texture you can assign it to your entity:
Как только у вас есть правильно наложенная текстура, вы можете назначить ее вашей сущности:


<code>texture: { base: "path to texture map" }</code>
<code>texture: { base: "path to texture map" }</code>


=== 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:
После определения первой текстуры вы также можете добавить альтернативы к той же сущности. Давайте посмотрим на Волка для примера:




Line 137: Line 139:
texture: { base: "entity/wolf/wolf1", alternates: [ { base: "entity/wolf/wolf2" }, { base: "entity/wolf/wolf2" }, {...} ] }
texture: { base: "entity/wolf/wolf1", alternates: [ { base: "entity/wolf/wolf2" }, { base: "entity/wolf/wolf2" }, {...} ] }
</syntaxhighlight>
</syntaxhighlight>
Each successive alternative should be numbered (starting with 1).  
Каждая последующая альтернатива должна быть пронумерована (начиная с 1).  


{{Navbox/modding|Vintage Story}}
{{Navbox/modding|Vintage Story}}

Latest revision as of 13:04, 14 June 2022

Other languages:

Эта страница проверялась в последний раз для версии Vintage Story 1.15.


Перед настройкой текстур рекомендуется сначала прочитать страницы базовые предметы, базовые блоки и базовые сущности чтобы понять это руководство.


Текстурирование предмета

Плоское текстурирование

Текстурирование ваших предметов и блоков в 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" }
  }
},

Здесь мы видим, что только «винтажный» вариант будет отображаться как обычная вокселизированная текстура элемента, в то время как остальные будут использовать форму красного мяса и применять к ней свою текстуру.

Текстурирование блока

Простой блок

Блоки текстурированы немного по-другому, так как по умолчанию они имеют общую форму куба. Это означает, что они не используют единственный «текстурный» метод, а вместо этого всегда используют версию множественных «текстур»:

textures: {
  all: {base: "path to texture*"}
},

Текстурирование других граней блоков

При назначении текстур «all» будет давать каждой стороне одну и ту же текстуру, но мы можем легко настроить каждую сторону, особенно если мы хотим использовать некоторые варианты поведения блоков, такие как "Pillar" или "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" },
},

Имейте в виду, что если вы используете поведения "Pillar" или "HorizontalOrientable", вам потребуются направленные варианты для каждого (например, updown, northsouth, eastwest и т. Д. ) и вам, скорее всего, придется организовать его, используя функциональность ByType. Прекрасным примером этого является бревна (Pillar) и алтарь (HorizontalOrientable) JSONS.

Текстурирование сущности

Основная текстура сущности

Все сущности используют фигуру, но обычно они применяются с использованием одной текстуры карты сущностей, которая по сути представляет собой файл текстуры с каждой стороной куба, нанесенной на нее. Делать это вручную было бы невероятно утомительно, и лучше всего это сделать с помощью редактора Vintage Story Model Builder здесь.

Как только у вас есть правильно наложенная текстура, вы можете назначить ее вашей сущности:

texture: { base: "path to texture map" }

Альтернативные текстуры сущностей

После определения первой текстуры вы также можете добавить альтернативы к той же сущности. Давайте посмотрим на Волка для примера:


texture: { base: "entity/wolf/wolf1", alternates: [ { base: "entity/wolf/wolf2" }, { base: "entity/wolf/wolf2" }, {...} ] }

Каждая последующая альтернатива должна быть пронумерована (начиная с 1).

Icon Sign.png

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 ItemEntityBlockBlock BehaviorsBlock ClassesBlock EntitiesBlock Entity BehaviorsWorld properties
Workflows & Infrastructure Modding Efficiency TipsMod-engine compatibilityMod ExtensibilityVS Engine
Additional Resources Community Resources Modding API Updates Programming Languages List of server commandsList of client commandsClient startup parametersServer startup parameters
Example ModsAPI DocsGitHub Repository