Система экспорта
Система экспорта позволяет вам использовать плагины по умолчанию и писать собственные плагины для экспорта нод UNIGINE в файл другого формата и сохранения его на диске.
Структура системы экспорта показана ниже. Он включает в себя диспетчер экспорта и динамический набор экспортеры для различных форматов внешних файлов.
Менеджер экспорта используется для создания экспортеров и управления ими, а также для прямого экспорта файлов в неродные форматы, если ранее был зарегистрирован экспортер для таких файлов.
Экспортер#
Exporter — это модуль, используемый системой экспорта для передачи объектов UNIGINE в файлы в различных неродных форматах. Один экспортер может использоваться для экспорта нескольких нод, но не должно быть двух или более экспортеров, зарегистрированных для одного типа ноды.
Каждый экспортер имеет набор параметров, управляющих всем процессом экспорта (например, экспортировать ли источники света, камеры и карты нормалей материалов, сбросить преобразование корневой ноды и т. д.). Экспортер должен быть инициализирован перед использованием.
Основной рабочий процесс#
Для использования экспортеры должны быть зарегистрированы в системе через Export Manager. Вы можете динамически управлять списком доступных модулей, добавляя их в реестр или удаляя из него. Когда вы экспортируете ноду в любой внешний формат, система экспорта автоматически пытается найти и использовать соответствующий экспортер, зарегистрированный для указанного расширения файла.
Основной рабочий процесс экспорта ноды выглядит следующим образом:
- Проверьте расширение указанного выходного файла и найдите подходящий экспортер среди зарегистрированных.
- Извлеките данные сцены из ноды, создайте сцену экспорта и поместите данные в соответствующие структуры экспорта (например, ноды FBX).
- Используйте соответствующий экспортер для создания выходных файлов на основе метаданных сцены.
Настройка#
Вы можете рассмотреть плагин FbxExporter в качестве примера для создания собственных пользовательских модулей экспорта. Вы также можете изменить и перестроить этот плагин, чтобы использовать свой собственный экспортер в редакторе.
Чтобы использовать плагин FbxExporter, просто загрузите его с помощью консольной команды plugin_load или следующей параметр командной строки при запуске приложения:
-extern_plugin UnigineFbxExporter
В общем виде рабочий процесс через C++ API можно представить следующим образом:
// create an exporter for the exported file ("1.fbx" in our case)
Unigine::Exporter* exporter = Unigine::Export::get()->createExporterByFileName("1.fbx");
// enable the "export_material_normal_maps" parameter
exporter->setParameterInt("export_material_normal_maps", 1);
// initialize exporter
exporter->init();
// get the node
NodePtr node = World::getNodeByName("material_ball");
// export the node to the specified file path
exporter->doExport(node, "1.fbx");
// exporter deinitialization
exporter->deinit();
Вы также можете экспортировать ноду с настройками по умолчанию следующим образом:
// get the node
NodePtr node = World::getNodeByName("material_ball");
// export the node to the file of specified format
Unigine::Export::get()->doExport(node, "../data/1/1.fbx")
Встроенные параметры экспорта#
Встроенные экспортеры движка (плагин FbxExporter, плагин UsdExporter) имеют ряд параметров экспорта, которые настраивают поведение экспортера, а также могут использоваться в пользовательских экспортерах.
Имена параметров#
В следующей таблице перечислены имена параметров, доступных из коробки, которые можно установить с помощью метода setParameterInt("name", value).
Смотрите также#
- FbxExporter в качестве примера вашего пользовательского плагина экспорта: source/plugins/Export/FbxExporter.
- Плагин UsdExporter
API системы экспорта:
Для получения более подробной информации об управлении системой экспорта с помощью кода обратитесь к статье Классы функциональности экспорта
Системное API экспорта недоступно для версии Community SDK.