Confirmedusers
13,514
edits
(Created page with "== Список типов активов ==") |
Mirotworez (talk | contribs) No edit summary Tag: Manual revert |
||
(30 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{GameVersion|1. | <languages/> | ||
{{GameVersion|1.15}} | |||
__FORCETOC__ | __FORCETOC__ | ||
Vintage Story загружает большую часть игрового контента из JSON файлов. Многие примеры этого можно найти в каталоге <code>assets</code> внутри вашей [[Vintagestory folder|папки с игрой]]. Такие вещи, как блоки, предметы, генерация мира, рецепты и т. Д., Загружаются из ресурсов во время запуска. | Vintage Story загружает большую часть игрового контента из JSON файлов. Многие примеры этого можно найти в каталоге <code>assets</code> внутри вашей [[Vintagestory folder|папки с игрой]]. Такие вещи, как блоки, предметы, генерация мира, рецепты и т. Д., Загружаются из ресурсов во время запуска. | ||
== | == Находим папку assets == | ||
Все действующие ресурсы для Vintage Story видны в папке с игрой, что позволяет вам просматривать их и учиться писать свои собственные. Вы можете найти эти файлы, используя следующие методы для каждого типа ОС, на которой вы играете в Vintage Story. Если вы ищете исходный код (то есть классы C#), ваш лучший вариант - погрузиться в '''[https://github.com/anegostudios Vintage Story Github]''' и просмотреть репозитории '''vsapi''', '''vssurvivalmod''', '''vsessentialsmod''' и '''vscreativemod''' для ссылок на классы. | Все действующие ресурсы для Vintage Story видны в папке с игрой, что позволяет вам просматривать их и учиться писать свои собственные. Вы можете найти эти файлы, используя следующие методы для каждого типа ОС, на которой вы играете в Vintage Story. Если вы ищете исходный код (то есть классы C#), ваш лучший вариант - погрузиться в '''[https://github.com/anegostudios Vintage Story Github]''' и просмотреть репозитории '''vsapi''', '''vssurvivalmod''', '''vsessentialsmod''' и '''vscreativemod''' для ссылок на классы. | ||
=== Windows === | === Windows === | ||
Если вы используете Vintage Story в Windows, вы можете перейти к нужной папке, набрав %appdata% в строке поиска в меню пуск, и вы попадете в папку roaming вашего компьютера. Найдите папку <code>Vintagestory</code>, и вы сразу же наткнетесь на папку | Если вы используете Vintage Story в Windows, вы можете перейти к нужной папке, набрав %appdata% в строке поиска в меню пуск, и вы попадете в папку roaming вашего компьютера. Найдите папку <code>Vintagestory</code>, и вы сразу же наткнетесь на папку assets, которая содержит "creative", "game" и "survival". | ||
* '''creative''' содержит ресурсы только для творческого режима. | * '''creative''' содержит ресурсы только для творческого режима. | ||
* '''game''' содержит много универсальных ресурсов, таких как файлы lang, модели объектов и другие важные ресурсы для игры. | * '''game''' содержит много универсальных ресурсов, таких как файлы lang, модели объектов и другие важные ресурсы для игры. | ||
* '''survival''' содержит большую часть фактического контента, с которым сталкивается большинство игроков, и содержит все ресурсы, используемые Vintage Story, такие как текстуры звуков и генерация мира. | * '''survival''' содержит большую часть фактического контента, с которым сталкивается большинство игроков, и содержит все ресурсы, используемые Vintage Story, такие как текстуры звуков и генерация мира. | ||
== Список типов | == Список типов ассетов == | ||
Ниже приведены категории ресурсов, которые вы можете использовать при моддинге для Vintage Story. Каждый из них легко модифицируем и может быть использован для простого добавления собственного контента или изменений без необходимости какого-либо сложного кодирования. Вы также можете прочитать [[Modding:Basic Modding Examples|примеры]], чтобы узнать, что вы можете с ними сделать. | |||
<table id="treeviewtable" class="table table-bordered tt-table" style='table-layout: fixed'> | <table id="treeviewtable" class="table table-bordered tt-table" style='table-layout: fixed'> | ||
<tr style=''> | <tr style=''> | ||
<th width='300' align='left'> | <th width='300' align='left'>Имя</th> | ||
<th width='200' align='left'> | <th width='200' align='left'>Влияние на игру</th> | ||
<th width='80' align='left'> | <th width='80' align='left'>Тип стороны</th> | ||
<th align='left'> | <th align='left'>Применение</th> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td><div class="tt" data-tt-id="root"> | <td><div class="tt" data-tt-id="root">Категория активов</div></td> | ||
<td></td> | <td></td> | ||
<td></td> | <td></td> | ||
Line 33: | Line 34: | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_blocktypes" data-tt-parent="root">blocktypes</div></td> | <td scope="row"><div class="tt" data-tt-id="p_blocktypes" data-tt-parent="root">blocktypes</div></td> | ||
<td> | <td>Да</td> | ||
<td> | <td>Универсально</td> | ||
<td> | <td>Определяет все блоки существующие в игре</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_itemtypes" data-tt-parent="root">itemtypes</div></td> | <td scope="row"><div class="tt" data-tt-id="p_itemtypes" data-tt-parent="root">itemtypes</div></td> | ||
<td> | <td>Да</td> | ||
<td> | <td>Универсально</td> | ||
<td> | <td>Определяет все предметы существующие в игре </td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_lang" data-tt-parent="root">lang</div></td> | <td scope="row"><div class="tt" data-tt-id="p_lang" data-tt-parent="root">lang</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Универсально</td> | ||
<td> | <td>Перевод</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_worldproperties" data-tt-parent="root">worldproperties</div></td> | <td scope="row"><div class="tt" data-tt-id="p_worldproperties" data-tt-parent="root">worldproperties</div></td> | ||
<td> | <td>Да</td> | ||
<td> | <td>Универсально</td> | ||
<td> | <td>Содержит некоторые часто используемые списки свойств</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_worldproperties_abstract" data-tt-parent="p_worldproperties">abstract</div></td> | <td scope="row"><div class="tt" data-tt-id="p_worldproperties_abstract" data-tt-parent="p_worldproperties">abstract</div></td> | ||
<td> | <td>Да</td> | ||
<td> | <td>Универсально</td> | ||
<td></td> | <td></td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_worldproperties_block" data-tt-parent="p_worldproperties">block</div></td> | <td scope="row"><div class="tt" data-tt-id="p_worldproperties_block" data-tt-parent="p_worldproperties">block</div></td> | ||
<td> | <td>Да</td> | ||
<td> | <td>Универсально</td> | ||
<td></td> | <td></td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_sounds" data-tt-parent="root">sounds</div></td> | <td scope="row"><div class="tt" data-tt-id="p_sounds" data-tt-parent="root">sounds</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Универсально</td> | ||
<td> | <td>Звуки в игре</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_shapes" data-tt-parent="root">shapes</div></td> | <td scope="row"><div class="tt" data-tt-id="p_shapes" data-tt-parent="root">shapes</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Универсально</td> | ||
<td> | <td>Содержит 3d модели для всех предметов, блоков и существ</td> | ||
</tr> | </tr> | ||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_shapes_block" data-tt-parent="p_shapes">block</div></td> | <td scope="row"><div class="tt" data-tt-id="p_shapes_block" data-tt-parent="p_shapes">block</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Универсально</td> | ||
<td> | <td>Модели для блоков</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_shapes_entity" data-tt-parent="p_shapes">entity</div></td> | <td scope="row"><div class="tt" data-tt-id="p_shapes_entity" data-tt-parent="p_shapes">entity</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Универсально</td> | ||
<td> | <td>Модели для существ</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_shapes_item" data-tt-parent="p_shapes">item</div></td> | <td scope="row"><div class="tt" data-tt-id="p_shapes_item" data-tt-parent="p_shapes">item</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Универсально</td> | ||
<td> | <td>Модели для предметов</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_recipes" data-tt-parent="root">recipes</div></td> | <td scope="row"><div class="tt" data-tt-id="p_recipes" data-tt-parent="root">recipes</div></td> | ||
<td> | <td>Да</td> | ||
<td> | <td>Только сервер</td> | ||
<td> | <td>Рецепты крафта, колочения, кузнечного дела и лепки из глины</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_recipes_alloy" data-tt-parent="p_recipes">alloy</div></td> | <td scope="row"><div class="tt" data-tt-id="p_recipes_alloy" data-tt-parent="p_recipes">alloy</div></td> | ||
<td> | <td>Да</td> | ||
<td> | <td>Только сервер</td> | ||
<td> | <td>Как металлы могут быть объединены для создания сплавов</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_recipes_grid" data-tt-parent="p_recipes">grid</div></td> | <td scope="row"><div class="tt" data-tt-id="p_recipes_grid" data-tt-parent="p_recipes">grid</div></td> | ||
<td> | <td>Да</td> | ||
<td> | <td>Только сервер</td> | ||
<td> | <td>Рецепты создания сетки 3х3</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_recipes_smithing" data-tt-parent="p_recipes">smithing</div></td> | <td scope="row"><div class="tt" data-tt-id="p_recipes_smithing" data-tt-parent="p_recipes">smithing</div></td> | ||
<td> | <td>Да</td> | ||
<td> | <td>Только сервер</td> | ||
<td> | <td>Рецепты кузнечного дела на наковальне</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_worldgen" data-tt-parent="root">worldgen</div></td> | <td scope="row"><div class="tt" data-tt-id="p_worldgen" data-tt-parent="root">worldgen</div></td> | ||
<td> | <td>Да</td> | ||
<td> | <td>Только сервер</td> | ||
<td> | <td>Содержит всю конфигурацию для генерации мира</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_worldgen_terrain" data-tt-parent="p_worldgen">terrain</div></td> | <td scope="row"><div class="tt" data-tt-id="p_worldgen_terrain" data-tt-parent="p_worldgen">terrain</div></td> | ||
<td> | <td>Да</td> | ||
<td> | <td>Только сервер</td> | ||
<td> | <td>Определяет, как должна выглядеть местность и чем она должна быть украшена</td> | ||
</tr> | |||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_dialog" data-tt-parent="root">config</div></td> | |||
<td>Да</td> | |||
<td>Универсально</td> | |||
<td>Используется для общих данных, которые не вписываются в другие категории.</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_worldgen_tree" data-tt-parent="p_worldgen">tree</div></td> | <td scope="row"><div class="tt" data-tt-id="p_worldgen_tree" data-tt-parent="p_worldgen">tree</div></td> | ||
<td> | <td>Да</td> | ||
<td> | <td>Только сервер</td> | ||
<td> | <td>Определяет форму деревьев</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_entity" data-tt-parent="root">entity</div></td> | <td scope="row"><div class="tt" data-tt-id="p_entity" data-tt-parent="root">entity</div></td> | ||
<td> | <td>Да</td> | ||
<td> | <td>Только сервер</td> | ||
<td> | <td>Животные и другие существа</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_shaders" data-tt-parent="root">shaders</div></td> | <td scope="row"><div class="tt" data-tt-id="p_shaders" data-tt-parent="root">shaders</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Только клиент</td> | ||
<td> | <td>Содержит исходный код GLSL, определяющий способ отображения игры</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_shaderincludes" data-tt-parent="root">shaderincludes</div></td> | <td scope="row"><div class="tt" data-tt-id="p_shaderincludes" data-tt-parent="root">shaderincludes</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Только клиент</td> | ||
<td> | <td>Содержит исходный код GLSL, определяющий способ отображения игры</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_textures" data-tt-parent="root">textures</div></td> | <td scope="row"><div class="tt" data-tt-id="p_textures" data-tt-parent="root">textures</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Только клиент</td> | ||
<td> | <td>Содержит всю графику игры</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_textures_blocks" data-tt-parent="p_textures">block</div></td> | <td scope="row"><div class="tt" data-tt-id="p_textures_blocks" data-tt-parent="p_textures">block</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Только клиент</td> | ||
<td> | <td>Текстуры блоков</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_textures_items" data-tt-parent="p_textures">item</div></td> | <td scope="row"><div class="tt" data-tt-id="p_textures_items" data-tt-parent="p_textures">item</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Только клиент</td> | ||
<td> | <td>Текстуры предметов</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_textures_decal" data-tt-parent="p_textures">decal</div></td> | <td scope="row"><div class="tt" data-tt-id="p_textures_decal" data-tt-parent="p_textures">decal</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Только клиент</td> | ||
<td>Decaltextures</td> | <td>Decaltextures</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_textures_entities" data-tt-parent="p_textures">entities</div></td> | <td scope="row"><div class="tt" data-tt-id="p_textures_entities" data-tt-parent="p_textures">entities</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Только клиент</td> | ||
<td> | <td>Текстуры существ</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_textures_environment" data-tt-parent="p_textures">environment</div></td> | <td scope="row"><div class="tt" data-tt-id="p_textures_environment" data-tt-parent="p_textures">environment</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Только клиент</td> | ||
<td> | <td>Текстуры окружения (Небо, Луна, Солнце и т.д.)</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_textures_gui" data-tt-parent="p_textures">gui</div></td> | <td scope="row"><div class="tt" data-tt-id="p_textures_gui" data-tt-parent="p_textures">gui</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Только клиент</td> | ||
<td> | <td>Текстуры интерфейса</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_textures_hud" data-tt-parent="p_textures">hud</div></td> | <td scope="row"><div class="tt" data-tt-id="p_textures_hud" data-tt-parent="p_textures">hud</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Только клиент</td> | ||
<td> | <td>Текстуры индикаторов</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_textures_particle" data-tt-parent="p_textures">particle</div></td> | <td scope="row"><div class="tt" data-tt-id="p_textures_particle" data-tt-parent="p_textures">particle</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Только клиент</td> | ||
<td> | <td>Текстуры частиц</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_music" data-tt-parent="root">music</div></td> | <td scope="row"><div class="tt" data-tt-id="p_music" data-tt-parent="root">music</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Только клиент</td> | ||
<td> | <td>Музыкальные треки игры и их конфигурация</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_dialog" data-tt-parent="root">dialog</div></td> | <td scope="row"><div class="tt" data-tt-id="p_dialog" data-tt-parent="root">dialog</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Только клиент</td> | ||
<td> | <td>Содержит несколько макетов диалогов</td> | ||
</tr> | </tr> | ||
</table> | </table> | ||
= | = Домены = | ||
Домены используются для отделения мод-контента от оригинального. По сути, домен - это префикс для любого заданного кода (идентификатор элемента, блока и т.д.) Или пути (текстуры, звуки и т.д.). Сама по себе Vintage Story имеет свой собственный префикс <code>game</code> для всех его активов (папки игры, выживания и творчества). | |||
Когда [[Mod Packaging|пакуете мод]], вы указываете домен, помещая каталог в каталог мода <code>assets</code> со всеми вашими активами мода внутри. Имя каталога вашего домена будет «текущим доменом» для всех активов в нем. Если в коде ресурса не указан домен, игра предположит, что он находится в текущем домене, то есть вам нужно добавить префикс домена только в том случае, если вы хотите сослаться на что-то за пределами текущего домена. | |||
Например, если вы хотите создать новый блок, который использует оригинальную текстуру кожи, вам нужно будет указать домен (поскольку у вашего блока не стандартный). Вместо использования <code>block/leather</code> для <code>assets/survival/textures/block/leather.png</code> вы должны добавить префикс для домена <code>game:block/leather</code>. | |||
== | == Перезапись активов == | ||
Никаких ограничений. Вы вполне можете изменить любой актив Vintage Story, используя папку домена <code>game</code>. | |||
Чтобы изменить Блоктайп кровати, вы можете поместить свой собственный JSON файл в zip архив расположенный в <code>assets/game/blocktypes/wood/bed.json</code>. Тогда Vintage Story загрузит ваш JSON-файл вместо исходного. | |||
Пакеты тем могут переопределять только ресурсы, которые не влияют на игровую механику, другие типы модов могут переопределять любой актив. | |||
== | == Доступ к активам в коде == | ||
Чтобы получить доступ к активам в коде мода, вы можете использовать [[Modding:AssetManager| Менеджер Активов]]. | |||
= | = Дальнейшее продвижение = | ||
Как только вы поймете, что такое ресурсы и как они организованы, можете перейти к вашему первому контент-моду. Перейдите к странице '''[[Modding:Basic Block | Основа блока ]]''', чтобы узнать, как сделать свой первый блок, или перейдите на страницу '''[[Modding:Basic Item |Основа предмета]]''', если вы хотите начать с создания предмета. Обе статьи, отличный способ научиться делать свой первый мод. | |||
{{Navbox/modding|Vintage Story}} | {{Navbox/modding|Vintage Story}} |