Добавление и переопределение ассетов
В RGL (игровой движок) вы можете легко переопределить существующие ассеты или создать новые в редакторе для вашего пользовательского режима. Механизм переопределения работает путем замены существующих ресурсов на те, которые вы указали в каталоге ресурсов вашего модуля. Он пытается сопоставить ваши пользовательские ассеты с теми, которые ранее были зарегистрированы другими модулями по их именам. Это происходит в зависимости от порядка загрузки модулей.
Если Module A и Module B загружены в дополнение к модулю Native соответственно, список конечных ресурсов и их источников будет следующим:
Native | Module A | Module B | Result |
---|---|---|---|
adobe_wall tarnished_metal ground_mud marble - |
adobe_wall tarnished_metal - - metal_plate |
adobe_wall - ground_mud - - |
Module B::adobe_wall Module A::tarnished_metal Module B::ground_mud Native::marble Module A::metal_plate |
В настоящее время модифицируемые типы ассетов:
Иерархия папок
Система ассетов обрабатывает некоторые папки в каталоге модуля специально в соответствии с их именами. Вот список этих папок и их использование:
- Assets : Включает редактируемые файлы *.tpac в котором хранятся метаданные каждого ассета.
- AssetSources : Включает исходные файлы импортированных ассетов (.psd, .fbx).
- AssetPackages : Включает *.tpac файлы только для чтения. Генерируется, когда модуль упакован для сборки клиента.
- EmAssetPackages : Включает *.tpac файлы только для чтения. Генерируется, когда модуль упакован для сборки редактора.
- DsAssetPackages : Включает *.tpac файлы только для чтения. Генерируется при упаковке модуля для серверных сборок.
- RuntimeDataCache : Включает автоматически сгенерированные данные, необходимые движку для каждого ассета. Может быть удален, но может потребоваться время для создания с нуля во время запуска.
Разрешения на редактирование
Система ассетов ищет разные папки в зависимости от версии исполняемого файла игры. В зависимости от наличия этих папок он решает, можно ли изменить модуль или его можно использовать только в режиме только для чтения. Если вы хотите распространить свой модуль, вы можете упаковать свои ассеты и поделиться упакованными папками, не распространяя тысячи файлов и их источников. У вас есть три варианта упаковки ваших активов:
- Client : Другие могут активировать ваш модуль, чтобы играть. Вы должны распространить папку AssetPackages.
- Editor : Другие могут использовать ваш модуль в редакторе, но не могут его изменять. Используется, если вы хотите, чтобы другие извлекали модули из вашего модуля. Вы должны распространять папку EmAssetPackages.
- Server : Используется для серверных сборок. Все данные, не относящиеся к серверу, удаляются. Вы должны поставлять папку DsAssetPackages.
Вы также можете поделиться своим модулем так же, как вы его используете, чтобы другие могли его изменять. В этом случае вы должны распределить папки Assets, AssetSources и, возможно, RuntimeDataCache.
Переопределение материалов
Переопределение материалов может быть выполнено путем создания нового материала с тем же именем, что и материал, который вы хотите переопределить. Перейдите в каталог ресурсов вашего модуля и щелкните правой кнопкой мыши в пустое место на панели браузера. Создайте новый материал и переименуйте его в то же имя, что и у материала, который вы хотите переопределить.
Переопределение сеток
Модели можно импортировать из файлов нескольких форматов (например, Trf, Fbx). Ресурсы, импортированные из одного файла, группируются по именам в соответствии с <>правилами именования ресурсов<>. Представьте себе файл fbx следующим образом:
- Model.fbx
- wall(Mesh)
- wall.lod1(Mesh)
- wall.lod3(Mesh)
- bo_wall(Physics Shape)
Согласно соглашениям об именах ресурсов, первые три ресурса будут сгруппированы в одну сетку, в которой три подсетки принадлежат разным LOD. В конце будут импортированы два ресурса из Model.fbx : wall(Mesh) и bo_wall(Physics shape).
Следуя этим правилам, вы можете экспортировать новый файл геометрии (например, fbx), который содержит группу сеток, имена которых начинаются с wall. В этом случае новая сетка wall будет создана из этих подсеток, а существующая сетка будет полностью заменена той, которую вы указали. Имя файла геометрии не учитывается. Стоит отметить, что переопределение сетки происходит на уровне сетки. Невозможно переопределить одиночную подсетку с помощью переопределения модуля.
Переопределение текстур
Переопределение текстур очень похоже на материалы. Вам необходимо импортировать новую текстуру с тем же именем текстуры, которую вы хотите переопределить. Вы также можете переименовать любую уже импортированную текстуру во что-то, что соответствует имени текстуры, которую нужно переопределить.
Переопределение физических фигур
Для переопределения физических фигур необходимо импортировать физическую форму с тем же именем ресурса, который вы хотите заменить. Установите флажок <>Asset naming conventions<>, чтобы увидеть возможность импорта физических фигур.