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.
Checking the stable version of the documentation...
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 nodes/use_node_type_suffixes = true
🔗
如果为 true
,则会使用节点名称的后缀来确定节点类型,例如 -col
表示碰撞形状。禁用该选项会让编辑器导入的文件更接近原始文件,更类似于在运行时导入文件。详见《使用名称后缀自定义节点类型》。
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)导出的模型中很常见。