Текстуры
Эта страница проверялась в последний раз для версии 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).
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 • 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 |