Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

ResourceImporterScene

Наследует: ResourceImporter < RefCounted < Object

Импортирует сцену glTF, FBX, COLLADA или Blender 3D.

Описание

См. также ResourceImporterOBJ, который используется для моделей OBJ, которые можно импортировать как независимую Mesh или сцену.

Дополнительные параметры (например, извлечение отдельных сеток или материалов в файлы) доступны в диалоговом окне Расширенные параметры импорта. Доступ к этому диалоговому окну можно получить, дважды щелкнув 3D-сцену в доке FileSystem или выбрав 3D-сцену в доке FileSystem, перейдя в док Import и выбрав Расширенный.

Примечание: ResourceImporterScene не используется для PackedScene, таких как файлы .tscn и .scn.

Обучающие материалы

Свойства

Dictionary

_subresources

{}

float

animation/fps

30

bool

animation/import

true

bool

animation/import_rest_as_RESET

false

bool

animation/remove_immutable_tracks

true

bool

animation/trimming

false

bool

array_mesh/deduplicate_surfaces

true

String

import_script/path

""

int

materials/extract

0

int

materials/extract_format

0

String

materials/extract_path

""

bool

mesh_library/use_node_names_as_mesh_names

false

bool

meshes/create_shadow_meshes

true

bool

meshes/ensure_tangents

true

bool

meshes/force_disable_compression

false

bool

meshes/generate_lods

true

int

meshes/light_baking

1

float

meshes/lightmap_texel_size

0.2

bool

nodes/apply_root_scale

true

bool

nodes/import_as_skeleton_bones

false

String

nodes/root_name

""

float

nodes/root_scale

1.0

Script

nodes/root_script

null

String

nodes/root_type

""

bool

nodes/use_name_suffixes

true

bool

nodes/use_node_type_suffixes

true

bool

skins/use_named_skins

true


Описания свойств

Dictionary _subresources = {} 🔗

Содержит свойства для подресурсов сцены. Это внутренняя опция, которая не видна в Доке импорта.


float animation/fps = 30 🔗

Число кадров в секунду, используемое для запекания кривых анимации в серии точек с линейной интерполяцией. Рекомендуется настроить это значение так, чтобы оно соответствовало значению, которое вы используете в качестве базового в вашем программном обеспечении для 3D-моделирования. Более высокие значения приводят к более точной анимации с быстрыми изменениями движения, за счет более высоких размеров файлов и использования памяти. Благодаря интерполяции обычно нет особой выгоды от перехода выше 30 FPS (поскольку анимация все равно будет выглядеть плавной при более высокой частоте кадров рендеринга).


bool animation/import = true 🔗

Если true, импортировать анимацию из 3D-сцены.


bool animation/import_rest_as_RESET = false 🔗

Если true, добавляет Animation с именем RESET, содержащий Skeleton3D.get_bone_rest() из узлов Skeleton3D. Это может быть полезно для извлечения анимации в опорной позе.


bool animation/remove_immutable_tracks = true 🔗

Если true, удалить дорожки анимации, которые содержат только значения по умолчанию. Это может уменьшить размер выходного файла и использование памяти для определенных 3D-сцен, в зависимости от содержимого их дорожек анимации.


bool animation/trimming = false 🔗

Если true, обрезает начало и конец анимации, если нет изменений ключевых кадров. Это может уменьшить размер выходного файла и использование памяти для определенных 3D-сцен, в зависимости от содержимого их анимационных дорожек.


bool array_mesh/deduplicate_surfaces = true 🔗

Если файл 3D-модели содержит только одну сетку, этот параметр не оказывает никакого эффекта. Если true и файл 3D-модели содержит несколько сеток с одинаковыми именами и форматами поверхностей, то при слиянии сеток поверхности будут объединены. Это полезно для уменьшения количества поверхностей в результирующей сетке и позволяет избежать дублирования материалов. Если false и файл 3D-модели содержит несколько сеток, то поверхности всегда будут оставаться отдельными.


String import_script/path = "" 🔗

Путь к скрипту импорта, который может запустить код после завершения процесса импорта для пользовательской обработки. См. Использование скриптов импорта для автоматизации для получения дополнительной информации.


int materials/extract = 0 🔗

Режим извлечения материала.

  • 0 (Keep Internal), материалы не извлекаются.

  • 1 (Extract Once), Материалы извлекаются один раз и повторно используются при последующем импорте.

  • 2 (Extract and Overwrite), Материалы извлекаются и перезаписываются при каждом импорте.


int materials/extract_format = 0 🔗

Формат файла извлеченного материала.

  • 0 (Text), формат текстового файла (*.tres).

  • 1 (Binary), двоичный формат файла (*.res).

  • 2 (Material), двоичный формат файла (*.material).


String materials/extract_path = "" 🔗

Путь, по которому сохраняются извлеченные материалы. Если путь пуст, используется путь к исходной сцене.


bool mesh_library/use_node_names_as_mesh_names = false 🔗

Если true, имена мешей будут установлены в соответствии с именами узлов в файле 3D-модели. Если false, имена мешей будут установлены в соответствии с именами мешей в файле 3D-модели. Включение этой опции — распространенный обходной путь, когда автор файла 3D-модели неправильно указал имена мешей в Blender или других приложениях для 3D-моделирования. Например, в файле может быть узел с именем "Turret" и сетка с именем "Cube.002", поэтому включение этой опции установит имя сетки на "Turret" вместо "Cube_002".


bool meshes/create_shadow_meshes = true 🔗

Если true, включает генерацию теневых сеток при импорте. Это оптимизирует рендеринг теней без снижения качества путем объединения вершин, когда это возможно. Это, в свою очередь, снижает пропускную способность памяти, необходимую для рендеринга теней. Генерация теневых сеток в настоящее время не поддерживает использование более низкого уровня детализации, чем исходная сетка (но рендеринг теней будет использовать LOD, когда это уместно).


bool meshes/ensure_tangents = true 🔗

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

Если вам не нужны функции материала, требующие касательных, отключение этой опции может уменьшить размер выходного файла и ускорить импорт, если исходный 3D-файл не содержит касательных.


bool meshes/force_disable_compression = false 🔗

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


bool meshes/generate_lods = true 🔗

Если true, генерирует варианты сетки с более низкой степенью детализации, которые будут отображаться на расстоянии для повышения производительности рендеринга. Не все сетки выигрывают от LOD, особенно если они никогда не визуализируются издалека. Отключение этого может уменьшить размер выходного файла и ускорить импорт. См. Уровень детализации сетки (LOD) для получения дополнительной информации.


int meshes/light_baking = 1 🔗

Настраивает GeometryInstance3D.gi_mode сеток в 3D-сцене. Если установлено значение Static Lightmaps, устанавливает режим GI сеток на Static и генерирует UV2 при импорте для запекания LightmapGI.


float meshes/lightmap_texel_size = 0.2 🔗

Управляет размером каждого текселя на запеченной карте освещения. Меньшее значение приводит к более точным картам освещения за счет большего размера карты освещения и более длительного времени запекания.

Примечание: Эффективно только если meshes/light_baking установлен на Static Lightmaps.


bool nodes/apply_root_scale = true 🔗

Если true, nodes/root_scale будет применен к дочерним узлам, сеткам, анимациям, костям и т. д. Это означает, что если вы добавите дочерний узел позже в импортированную сцену, он не будет масштабироваться. Если false, nodes/root_scale вместо этого умножит масштаб корневого узла.


bool nodes/import_as_skeleton_bones = false 🔗

Обрабатывать все узлы в импортированной сцене так, как будто они являются костями в пределах одного Skeleton3D. Может использоваться для гарантии того, что импортированные анимации будут нацелены на кости скелета, а не на узлы. Может также использоваться для назначения кости "Root" в BoneMap. Для получения дополнительной информации см. Перенацеливание 3D-скелетов.


String nodes/root_name = "" 🔗

Переопределить имя корневого узла. Если пусто, корневой узел будет использовать то, что указано в сцене, или имя файла, если в сцене не указано корневое имя.


float nodes/root_scale = 1.0 🔗

Единый масштаб для использования в корне сцены. Значение по умолчанию 1.0 не будет выполнять никакого масштабирования. Подробности применения этого масштаба см. в nodes/apply_root_scale.


Script nodes/root_script = null 🔗

Если задан допустимый скрипт, он прикрепляется к корневому узлу импортированной сцены. Если тип корневого узла несовместим со скриптом, корневой узел будет заменён типом, совместимым со скриптом. Этот параметр также можно использовать для других узлов сцены, не являющихся сеткой, для присоединения к ним скриптов.


String nodes/root_type = "" 🔗

Переопределить тип корневого узла. Если пусто, корневой узел будет использовать то, что указано в сцене, или Node3D, если в сцене не указан корневой тип. Рекомендуется использовать тип узла, который наследуется от Node3D. В противном случае вы потеряете возможность позиционировать узел напрямую в 3D-редакторе.


bool nodes/use_name_suffixes = true 🔗

Если true, то будут использоваться суффиксы в именах импортируемых объектов, таких как узлы и ресурсы, для определения типов и свойств, например, -noimp для пропуска импорта узла или анимации, -alpha для включения альфа-прозрачности для материала и -vcol для включения цветов вершин для материала. Отключение этого параметра делает импортированные редактором файлы более похожими на исходные файлы и более похожими на файлы, импортированные во время выполнения. См. Настройка типа узла с использованием суффиксов имен для получения дополнительной информации.


bool nodes/use_node_type_suffixes = true 🔗

Если true, будут использоваться суффиксы в именах узлов для определения типа узла, например, -col для форм столкновений. Это используется только тогда, когда nodes/use_name_suffixes равно true. Отключение этого параметра делает импортированные редактором файлы более похожими на исходные файлы и более похожими на файлы, импортированные во время выполнения. Для получения дополнительной информации см. Настройка типа узла с использованием суффиксов имен.


bool skins/use_named_skins = true 🔗

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

  • Узел Skeleton3D содержит список костей с именами, их позами и состояниями покоя, имя и родительскую кость.

  • Сетка содержит все необходимые данные о вершинах для отображения сетки. С точки зрения сетки, она знает, как происходит распределение весов вершин, и использует некоторую внутреннюю нумерацию, часто импортируемую из программного обеспечения для 3D-моделирования.

  • Скин содержит информацию, необходимую для привязки этой сетки к этому Skeleton3D. Для каждого из внутренних идентификаторов костей, выбранных программным обеспечением для 3D-моделирования, он содержит две вещи. Во-первых, матрицу, известную как матрица привязки позы, обратная матрица привязки или сокращенно IBM. Во-вторых, Skin содержит имя каждой кости (если skins/use_named_skins равно true) или индекс кости в списке Skeleton3D (если skins/use_named_skins равно false).

Вместе этой информации достаточно, чтобы сообщить Godot, как использовать позы костей в узле Skeleton3D для рендеринга сетки из каждого MeshInstance3D. Обратите внимание, что каждый MeshInstance3D может использовать общие привязки, как это часто бывает в моделях, экспортированных из Blender, или каждый MeshInstance3D может использовать отдельный объект Skin, как это часто бывает в моделях, экспортированных из других инструментов, таких как Maya.