reckfellENGINE

EditorSceneFormatImporter

Импортирует сцены из сторонних 3D-файлов.

На этой странице
class EditorSceneFormatImporterReckfellSharpEditorНаследует RefCounted

Импортирует сцены из сторонних 3D-файлов.

EditorSceneFormatImporter позволяет определить скрипт импортера для стороннего 3D-формата. Чтобы использовать EditorSceneFormatImporter, сначала зарегистрируйте его с помощью метода EditorPlugin.AddSceneFormatImporterPlugin.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

EditorSceneFormatImporterКонструктор
# EditorSceneFormatImporter
C#
public EditorSceneFormatImporter();

Методы6

AddImportOptionvoid
# AddImportOption
C#
public void AddImportOption(string name, Variant value);

Добавьте определенную опцию импорта (только имя и значение по умолчанию). Эту функцию можно вызвать только из EditorSceneFormatImporter._GetImportOptions.

Параметры
ИмяТипПо умолчанию
namestring—
valueVariant—
AddImportOptionAdvancedvoid
# AddImportOptionAdvanced
C#
public void AddImportOptionAdvanced(Variant.Type type, string name, Variant defaultValue, PropertyHint hint = PropertyHint.None, string hintString = "", int usageFlags = 6);

Добавить конкретную опцию импорта. Эту функцию можно вызвать только из EditorSceneFormatImporter._GetImportOptions.

Параметры
ИмяТипПо умолчанию
typeVariant.Type—
namestring—
defaultValueVariant—
hintPropertyHintPropertyHint.None
hintStringstring""
usageFlagsint6
_GetExtensionsstring[]
# _GetExtensions
C#
public virtual string[] _GetExtensions();

Верните поддерживаемые расширения файлов для этого импортера сцен.

######get_импорт_варианты

Возвращает string[]
_GetImportOptionsvoid
# _GetImportOptions
C#
public virtual void _GetImportOptions(string path);

Переопределите, чтобы добавить общие параметры импорта. Они появятся в главном доке импорта в редакторе. Добавьте параметры с помощью EditorSceneFormatImporter.AddImportOption и EditorSceneFormatImporter.AddImportOptionAdvanced. Примечание: Все экземпляры EditorSceneFormatImporter и EditorScenePostImportPlugin добавят параметры для всех файлов. Рекомендуется проверять расширение файла, если path непустой. Когда пользователь редактирует настройки проекта, path будет пустым. Рекомендуется добавлять все параметры, если path пустой, чтобы пользователь мог настраивать параметры импорта по умолчанию.

#######получение_альтернатива_видимость

Параметры
ИмяТипПо умолчанию
pathstring—
_GetOptionVisibilityVariant
# _GetOptionVisibility
C#
public virtual Variant _GetOptionVisibility(string path, bool forAnimation, string option);

Должен возвращать true для отображения заданной опции, false для скрытия заданной опции или null для игнорирования.

Параметры
ИмяТипПо умолчанию
pathstring—
forAnimationbool—
optionstring—
Возвращает Variant
_ImportSceneReckfellObject
# _ImportScene
C#
public virtual ReckfellObject _ImportScene(string path, uint flags, Reckfell.Collections.Dictionary options);

Выполните здесь основную часть логики импорта сцены, например, с помощью GltfDocument или FbxDocument.

Параметры
ИмяТипПо умолчанию
pathstring—
flagsuint—
optionsReckfell.Collections.Dictionary—
Возвращает ReckfellObject

EditorSceneFormatImporter.ImportFlags

ЗначениеОписание
Animation = 2

Импортируйте анимации из 3D-сцены. При импорте сцены в качестве AnimationLibrary этот флаг всегда включен.

DiscardMeshesAndMaterials = 32

Игнорировать сетки и материалы при импорте. При импорте сцены в формате AnimationLibrary этот флаг всегда включен.

FailOnMissingDependencies = 4

Неиспользуемый флаг (при включении не оказывает никакого эффекта).

ForceDisableMeshCompression = 64

Если true, сжатие сетки не будет использоваться. Рассмотрите возможность включения, если вы заметили блочные артефакты в нормалях сетки или UV, или если у вас есть сетки, которые больше нескольких тысяч метров в каждом направлении.

GenerateTangentArrays = 8

Если true, сгенерируйте касательные вершины с помощью Mikktspace(http://www.mikktspace.com/), если входные сетки не содержат данных о касательных. По возможности рекомендуется позволить программному обеспечению для 3D-моделирования генерировать касательные при экспорте, а не полагаться на эту опцию. Касательные необходимы для корректного отображения карт нормалей и высот, а также любых функций материала/шейдера, требующих касательных. Если вам не нужны функции материала, требующие касательных, отключение этой опции может уменьшить размер выходного файла и ускорить импорт, если исходный 3D-файл не содержит касательных.

Scene = 1

Неиспользуемый флаг (при включении не оказывает никакого эффекта).

ВОССТАНОВЛЕНИЕ

UseNamedSkinBinds = 16

Если этот параметр отмечен, используйте именованные Skin для анимации. Узел MeshInstance3D содержит 3 важных свойства: скелет EntityPath, указывающий на узел Skeleton3D (обычно ..), сетку и скин:

  • Узел Skeleton3D содержит список костей с именами, их позами и состояниями покоя, имя и родительскую кость.
  • Сетка содержит все необходимые данные о вершинах для отображения сетки. С точки зрения сетки, она знает, как происходит распределение весов вершин, и использует некоторую внутреннюю нумерацию, часто импортируемую из программного обеспечения для 3D-моделирования.
  • Скин содержит информацию, необходимую для привязки этой сетки к этому Skeleton3D. Для каждого из внутренних идентификаторов костей, выбранных программным обеспечением для 3D-моделирования, он содержит две вещи. Во-первых, матрицу, известную как матрица привязки позы, обратная матрица привязки или сокращенно IBM. Во-вторых, Skin содержит имя каждой кости (если этот флаг включен) или индекс кости в списке Skeleton3D (если этот флаг отключен). Вместе эта информация достаточна, чтобы сообщить Reckfell, как использовать позы костей в узле Skeleton3D и для рендеринга сетки каждого MeshInstance3D. Обратите внимание, что каждый MeshInstance3D может использовать общие привязки, как это часто бывает в моделях, экспортированных из Blender, или каждый MeshInstance3D может использовать отдельный объект Skin, как это часто бывает в моделях, экспортированных из других инструментов, таких как Maya.
Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.