ResourceImporterScene
继承: ResourceImporter < RefCounted < Object
导入 glTF、FBX、Collada 或 Blender 3D 场景。
描述
另请参见 ResourceImporterOBJ,它被用于可作为独立的 Mesh 或场景导入的 OBJ 模型。
高级导入设置 对话框中提供了其他选项(例如将单个网格或材质提取到文件)。可以通过双击文件系统停靠面板中的 3D 场景或通过选择文件系统停靠面板中的 3D 场景,转至导入停靠面板并选择高级来访问该对话框。
注意:**ResourceImporterScene** 未被用于 PackedScene,例如 .tscn
和 .scn
文件 。
教程
属性
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
|
属性说明
Dictionary _subresources = {}
🔗
包含场景子资源的属性。这是一个内部选项,在导入停靠面板中不可见。
用于通过线性插值将动画曲线烘焙为一系列点的每秒帧数。建议配置该值以匹配你在 3D 建模软件中用作基线的值。较高的值会导致更精确的快速运动变化的动画,但代价是文件大小和内存占用更大。由于插值,超过 30 FPS 通常不会有太大好处(因为动画在更高的渲染帧速率下仍然会显得平滑)。
bool animation/import = true
🔗
如果为 true
,则从 3D 场景导入动画。
bool animation/import_rest_as_RESET = false
🔗
如果为 true
,则添加一个名为 RESET
的 Animation,其中包含来自 Skeleton3D 节点的 Skeleton3D.get_bone_rest。这对于提取参考姿势中的动画很有用。
bool animation/remove_immutable_tracks = true
🔗
如果为 true
,则移除仅包含默认值的动画轨道。这可以减少某些 3D 场景的输出文件大小和内存占用,具体取决于其动画轨道的内容。
bool animation/trimming = false
🔗
如果为 true
,如果没有关键帧更改,则修剪动画的开头和结尾。这可以减少某些 3D 场景的输出文件大小和内存占用,具体取决于其动画轨道的内容。
String import_script/path = ""
🔗
导入脚本的路径,该脚本可以在导入过程完成后运行代码以进行自定义处理。有关详细信息,请参阅 使用导入脚本进行自动化。
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)。
在 3D 场景中配置网格体的 GeometryInstance3D.gi_mode。如果被设置为静态光照贴图,则将网格体的 GI 模式设置为静态并在导入时生成 UV2 以进行 LightmapGI 烘焙。
float meshes/lightmap_texel_size = 0.2
🔗
控制烘焙光照贴图上每个纹素的大小。较小的值会产生更精确的光照贴图,但代价是更大的光照贴图大小和更长的烘焙时间。
注意:仅当 meshes/light_baking 被设置为静态光照贴图时有效。
bool nodes/apply_root_scale = true
🔗
如果为 true
,nodes/root_scale 将被应用于后代节点、网格、动画、骨骼等。这意味着,如果你稍后在导入的场景中添加子节点,它将不会被缩放。如果为 false
,nodes/root_scale 将乘以该根节点的缩放。
bool nodes/import_as_skeleton_bones = false
🔗
将导入场景中的所有节点视为单个 Skeleton3D 中的骨骼。可用于保证导入的动画以骨架骨骼而不是节点为目标。也可用于在 BoneMap 中分配 "Root"
骨骼。有关详细信息,请参阅 重定向 3D 骨架。
覆盖根节点名称。如果为空,则根节点将使用场景指定的内容;如果场景未指定根名称,则根节点将使用该文件名。
float nodes/root_scale = 1.0
🔗
用于场景根的均一缩放。默认值 1.0
不会执行任何重新缩放。有关如何应用该缩放的详细信息,请参阅 nodes/apply_root_scale。
覆盖该根节点类型。如果为空,则根节点将使用场景指定的内容,如果场景未指定根类型,则根节点将使用 Node3D。建议使用继承自 Node3D 的节点类型。否则,你将无法直接在 3D 编辑器中定位节点。
bool skins/use_named_skins = true
🔗
如果勾选,则为动画使用命名的 Skin。MeshInstance3D 节点包含 3 个相关属性:指向 Skeleton3D 节点的骨架 NodePath(通常为 ..
)、网格、蒙皮:
Skeleton3D 节点包含骨骼列表,其中包含名称、姿势和休息、名称和父骨骼。
网格是显示网格所需的所有原始顶点数据。就网格而言,它知道如何对顶点进行权重绘制,并使用通常从 3D 建模软件导入的某些内部编号。
蒙皮包含将该网格绑定到该 Skeleton3D 上所必需的信息。对于 3D 建模软件选择的每一个内部骨骼 ID,它都包含两件事。首先是一个名为绑定姿势矩阵、逆绑定矩阵或简称为 IBM 的矩阵。其次,该 Skin 包含每个骨骼的名称(如果 skins/use_named_skins 为
true
),或者骨骼在 Skeleton3D 列表中的索引(如果 skins/use_named_skins 为false
)。
总之,这些信息足以告诉 Godot 如何使用 Skeleton3D 节点中的骨骼姿势来渲染每个 MeshInstance3D 的网格。请注意,每个 MeshInstance3D 可以共享绑定,这在从 Blender 导出的模型中很常见;或者每个 MeshInstance3D 可以使用单独的 Skin 对象,这在从其他工具(例如 Maya)导出的模型中很常见。