ResourceImporterScene¶
继承: ResourceImporter < RefCounted < Object
导入glTF、FBX、Collada或Blender 3D场景。
描述¶
另请参阅ResourceImporterOBJ,它用于可以作为独立Mesh或场景导入的OBJ模型。
高级导入设置对话框中提供了其他选项(例如将单个网格或材质提取到文件中)。可以通过双击FileSystem扩展坞中的3D场景或通过选择FileSystem扩展坞中的3D场景、转到导入扩展坞并选择Advanced来访问此对话框。
注意:ResourceImporterScene是而不是用于PackedScene,例如. iscn和.scn文件。
属性¶
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
属性说明¶
Dictionary _subresources = {} 🔗
包含场景子资源的属性。这是一个在导入停靠坞中不可见的内部选项。
用于烘焙动画曲线到一系列点的线性插值每秒帧数。建议配置此值以匹配您在3D建模软件中用作基线的值。更高的值会产生更精确的动画,具有快速的运动变化,代价是更高的文件大小和内存使用。由于插值,超过30 FPS通常没有太大好处(因为动画在更高的渲染帧率下仍然会看起来很平滑)。
bool animation/import = true 🔗
如果true,则从3D场景导入动画。
bool animation/import_rest_as_RESET = false 🔗
如果true,则添加一个名为RESET的Animation,其中包含来自SkeletonMesh节点的SkeletonMesh.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场景中配置网格的GeometryRender.gi_mode。如果设置为静态光照贴图,则将网格的GI模式设置为静态,并在导入时生成UV2以进行Lightmass烘焙。
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 🔗
将导入场景中的所有节点视为单个SkeletonMesh中的骨骼。可用于保证导入的动画以骨骼而不是节点为目标。也可用于分配BoneMap中的“Root”骨骼。
覆盖根节点名称。如果为空,根节点将使用场景指定的内容,如果场景未指定根名称,则使用文件名。
float nodes/root_scale = 1.0 🔗
用于场景根的统一比例。1.0的默认值不会执行任何重新缩放。有关如何应用此比例的详细信息,请参阅nodes/apply_root_scale。
覆盖根节点类型。如果为空,根节点将使用场景指定的内容,如果场景未指定根类型,则使用Item3D。建议使用继承自Item3D的节点类型。否则,您将失去直接在3D编辑器中定位节点的能力。
bool nodes/use_node_type_suffixes = true 🔗
如果true,则在节点名称中使用后缀来确定节点类型,例如冲突形状的-col。禁用此功能会使编辑器导入的文件与原始文件更相似,并且更类似于在运行时导入文件。
bool skins/use_named_skins = true 🔗
如果选中,请使用命名的Skins进行动画。MeshRender节点在此处包含3个相关属性:指向SkeletonMesh节点的骨架ItemPath(通常是…)、网格和皮肤:
-SkeletonMesh节点包含骨骼列表,其中包含名称、姿势和休息、名称和父骨骼。
-网格是显示网格所需的所有原始顶点数据。就网格而言,它知道顶点是如何权重绘制的,并使用一些经常从3D建模软件导入的内部编号。
-皮肤包含将此网格绑定到Skeleton3D所需的信息。对于3D建模软件选择的每一个内部骨骼ID,它都包含两件事。首先,一个称为绑定姿势矩阵、逆绑定矩阵或简称IBM的矩阵。其次,Skin包含每个骨骼的名称(如果skins/use_named_skins是真),或者SkeletonMesh列表中的骨骼索引(如果skins/use_named_skins是假)。
总之,这些信息足以告诉i3D如何使用SkeletonMesh节点中的骨骼姿势来渲染来自每个MeshRender的网格。请注意,每个MeshRender可以共享绑定,这在从Blender导出的模型中很常见,或者每个MeshRender可以使用单独的Skin对象,这在从Maya等其他工具导出的模型中很常见。