GEM Importer
Руководство
GEM Importer преобразует входные файлы FBX, OBJ, glTF/GLB и MDL в набор GEM/MDL output-файлов.
Способы запуска программы:
Двойным щелчком по
gem_import.exe. Программа работает согласно настройкам из конфигурационного файлаgem_import.json.Из командной строки. Этот способ позволяет передавать параметры для конкретного запуска программы без перезаписи конфигурационного файла
gem_import.json.
Первый запуск
При первом запуске GEM Importer создаёт базовый файл конфигурации gem_import.json в папке с gem_import.exe и завершает работу.
Первый запуск осуществляется двойным кликом по gem_import.exe или из командной строки без указания параметров [gem_import].
Импорт файлов во время первого запуска не выполняется.
Приоритет источников настроек
Итоговые значения параметров импорта формируются из трёх источников. Каждый следующий источник имеет более высокий приоритет и переопределяет соответствующие значения из предыдущего источника:
Встроенные значения по умолчанию;
Секции из
gem_import.json;Явные CLI-переопределения.
Настройка gem_import.json
Файл gem_import.json является основным способом настройки GEM Importer. После первого запуска откройте созданный файл в текстовом редакторе и укажите параметры импорта. При последующих запусках двойным щелчком программа использует настройки из этого файла.
Таблица ключей gem_import.json
app.debug
outLog
Указание на папку логов
app.debug
verbose
Степень подробности файлового лога [0..2]
app.debug
htmlFormat
Записывать лог импорта в формате HTML, вместо TXT
app.debug
dryRun
Включает режим чтения/валидации без обычной записи результата
import.general
inputDir
Указание пути к исходной папке с файлами для импорта.
Входные папки для --run-config
import.general
outDir
Указание пути к корневой папке результата импорта
import.general
importUniformScale
Задает scale для импортируемых моделей
import.content
volumes
Если выставлен, то импортер будет сохранять и экспортировать найденный volume/collision content в MDL и .cmesh
import.overwriteExisting
mesh,
texture,
animation,
material,
cmesh,
def,
mdl
Разрешение перезаписывать уже существующие output-файлы указанных типов
import.textures
searchPaths
Дополнительные папки поиска исходных текстур
import.textures
textureOutputSubdir
Относительная подпапка внутри outDir для экспортированных текстур. Если значение пустое, то текстуры будут писаться рядом с моделью
import.textures
useTexturesFromModel
true- брать texture-ссылки из source material;false- собирать material textures из папок, названных именами материалов
import.textures
fileNameConvention
Привязка суффиксов имён файлов к полям .material для режима useTexturesFromModel=false
import.materials
classSimple, classStandard, classStandardEmissive
Классы генерируемых MDL-materials
import.materials
defaultNormal, defaultAo, defaultRoughness, defaultMetallic
Fallback textures для генерируемых материалов
Обработка геометрии
Импортёр автоматически учитывает особенности систем координат входных форматов и выполняет преобразования, необходимые для GEM/MDL output. Для FBX и OBJ нормали генерируются только в том случае, если они отсутствуют в исходной модели.
Двухсторонность полигонов не настраивается через JSON.
Для GLB/GLTF сохраняется
doubleSidedисходного материала.Для FBX учитываются material two-sided и явно заданный у узла
CullingOff/CullingOn.Сабмеш без привязки к материалу принудительно получает
twoSided=true.
Установка content.volumes=true не создаёт volumes из ничего. Флаг разрешает сохранить и записать volumes, которые importer распознал в исходной модели.
При
falsevolume-ресурсы и элементы.cmeshудаляются перед записью.Перезапись уже существующего
.cmeshнезависимо контролируется черезoverwriteExisting.cmesh.
Флаг overwriteExisting
Флаги overwriteExisting не отключают экспорт нового файла. Они защищают только уже существующие файлы. Алгоритм отработки следующий:
если файла ещё нет -> файл пишется;
если файл уже есть -> файл пишется только при
overwriteExisting.<type> = true.
Параметр необходим, чтобы не перезаписывать уже существующие и настроенные .def и .mdl файлы при повторном импорте модели.
Обработка текстур
Значение параметра searchPaths задает путь поиска исходных текстур. Он используется в том числе для внешних картинок .gltf.
Значение параметра textureOutputSubdir задает output-подпапку для экспортированных текстур внутри outDir.
Тогда модель пишется в папку <outDir>/<model_stem>/,
а текстуры пишутся в папку <outDir>/textures/<model_stem>/
Если textureOutputSubdir пустой, текстуры пишутся рядом с моделью.
Параметр useTexturesFromModel
Обычный режим (настройки по умолчанию):
Importer берёт texture-ссылки из source material: FBX material slots, OBJ .mtl, или glTF/GLB materials.
Альтернативный режим:
Importer игнорирует texture-ссылки внутри модели и ищет папки материалов рядом с исходной моделью, а также непосредственно внутри каждой папки из searchPaths.
Без searchPaths:
Если нужен дополнительный уровень textures, его надо явно указать относительно папки модели:
Для абсолютного searchPaths используется та же схема:
Пример для material matid_1:
Постфиксы типов настраиваются в секции import.textures.fileNameConvention:
Ключом является поле/slot в генерируемом .material.
Значение ключа представляет собой список допустимых суффиксов после последнего знака нижнего подчеркивания [ _ ] в имени файла.
Имя непосредственной родительской папки должно совпадать с именем материала (файлы в папке другого материала игнорируются).
Параметры командной строки
Параметры командной строки позволяют изменить настройки для конкретного запуска GEM Importer. Переданные значения имеют приоритет над соответствующими значениями из gem_import.json, но не изменяют содержимое файла конфигурации.
Без параметров
Создать конфигурационный файл с базовыми настройками импорта gem_import.json и завершить работу (при первом запуске программы).
Если gem_import.json существует, то
запустить импорт файлов согласно настройкам конфигурационного файла
-i, --input <file>
Один входной файл.
Поддерживаются форматы .fbx, .obj, .gltf, .glb, .mdl
--input-dir <dirs>
Одна или несколько входных папок; пути разделяются с помощью знака точки с запятой [ ; ]
--run-config
Импортировать из import.general.inputDir
-s, --settings <file>
Использовать указанный gem_import.json
-o, --out-dir <dir>
Корневая папка результата; переопределяет import.general.outDir
--verbose [0 | 1 | 2 ]
Задает уровень подробности лог-файла
--html
--no-html
Писать HTML-лог Писать TXT-лог
--dry-run
Только чтение/валидация, без записи обычного результата
--write-help
Записать gem_import.md рядом с executable
--version
Показать версию gem_import и завершить работу
-h, --help
Показать консольную справку
Запуск с помощью BAT-файла
Для регулярного запуска GEM Importer с одинаковыми параметрами можно создать BAT-файл. Команду не потребуется вводить вручную при каждом запуске.
Создайте текстовый файл в папке с gem_import.exe, добавьте в него команду запуска и сохраните файл с расширением .bat, например import_models.bat:
Для выполнения команды дважды щёлкните по созданному BAT-файлу. Команда pause оставляет окно командной строки открытым после завершения импорта, чтобы можно было проверить сообщения программы.
Результат импорта (output files)
Типичным результатом импорта является набор файлов:
Последнее обновление