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...
使用名称后缀自定义节点类型
很多时候,编辑场景时,导出后需要完成一些常见任务:
向对象添加碰撞检测。
将对象设置为导航网格。
删除游戏引擎中未使用的节点(例如用于建模的特定光源)。
为简化此工作流程,Godot 提供了一些后缀,可以将其添加到 3D 建模软件中的对象名称中。导入后,Godot 将检测到对象名称中的后缀并自动执行操作。
警告
下面描述的所有后缀都可以与 -、$ 和 _ 搭配使用,并且是大小写不敏感的。
禁用
如果你不希望 Godot 执行下述任何操作,可以将导入选项节点/使用节点类型后缀设为 false。此设置会禁用节点类型后缀功能(保持节点类型与原始文件一致),但 -noimp 后缀及 -vcol、-loop 等非节点后缀仍会生效。
或者,你可以通过将导入选项 节点/使用名称后缀 设为 false 来完全禁用所有名称后缀功能。这将完全阻止通用场景导入代码处理名称后缀,但特定格式的导入代码(如 glTF 导入器检查 -loop 后缀)仍可能处理名称后缀。
禁用这些选项会使编辑器导入的文件更接近原始文件,也更接近在运行时导入文件。若需实现运行时可用的导入流程、获得更可预测的结果且仅保留明确定义的行为,建议将上述选项设为 false 并改用 GLTFDocumentExtension。
移除节点和动画(-noimp)
带有 -noimp 后缀的节点和动画会在导入时移除,无视其类型,不再出现在导入后的场景中。
这相当于在高级导入设置对话框中为节点启用跳过导入功能。
创建碰撞体(-col、-convcol、-colonly、-convcolonly)
-col 选项只作用于网格物体。如果该选项被检测到,将会添加一个静态碰撞体的子节点,用的是跟网格一样的几何体。这会创建一个三角形网格碰撞体,这个选项对碰撞检测来说很慢但是精确。这个选项通常是关卡几何体需要的(但是也看看下面的 -colonly)。
选项 -convcol 将创建一个 ConvexPolygonShape3D 而不是 ConcavePolygonShape3D。与可以凹陷的三角形网格不同,凸形只能准确表示没有任何凹角的形状(比如:金字塔是凸的,但空心盒子是凹的)。因此,凸碰撞形状通常不适合关卡几何体。当表示足够简单的网格时,凸碰撞形状可以比三角形碰撞形状产生更好的性能。该选项非常适合需要比较精确的碰撞检测的简单或动态对象。
然而,在这两种情况中,视觉几何体都有可能过于复杂或对于碰撞而言不够平滑。这会导致物理上的故障并不必要地降低引擎速度。
为了解决这个问题,可以使用 -colonly 修饰符。该修饰符将在导入时删除网格,并创建一个 StaticBody3D 静态碰撞体。这有助于将可视网格和实际碰撞体分开。
-convcolonly 选项的工作方式类似,但会使用凸分解创建一个 ConvexPolygonShape3D。
对于 Collada 文件,选项 -colonly 也可以与 Blender 的空对象一起使用。导入时,它将创建一个 StaticBody3D,并将碰撞节点作为子节点。碰撞节点将具有许多预定义的形状之一,具体取决于 Blender 的空对象绘制类型:
在 Blender 中为 Empty 选择创建时的绘制类型
单箭头将创建 SeparationRayShape3D。
方块将创建 BoxShape3D。
图像将创建 WorldBoundaryShape3D。
球体(和其他未列出的类型)将创建 SphereShape3D。
可能的话,请尝试使用少量图元碰撞形状,而不是三角形网格或凸型体。图元形状的性能和可靠性通常更好。
备注
为了在 Blender 编辑器上获得更好的可见性,可以在碰撞空物体上设置“透视”选项,并通过更改 编辑 > 偏好设置 > 主题 > 3D 视图 > 空物体 选项为其设置不同的颜色。
如果使用的是 Blender 2.79 或更早版本,请按照以下步骤操作:用户偏好设置 > 主题 > 3D视图 > 空物体。
参见
碰撞体全面概述请查看碰撞形状(3D)。
创建遮挡器(-occ、-occonly)
如果导入带有 -occ 后缀的网格,则会根据网格的几何形状创建一个 Occluder3D 节点,它不会替换网格。带有 -occonly 后缀的网格节点在导入时将转换为 Occluder3D。
创建 VehicleBody(-vehicle)
具有 -vehicle 后缀的网格节点将作为一个 VehicleBody3D 节点的子节点被导入。
创建 VehicleWheel(-wheel)
具有 -wheel 后缀的网格节点将作为一个 VehicleWheel3D 节点的子节点被导入。
刚体(-rigid)
具有 -rigid 后缀的网格节点将作为一个 RigidBody3D 节点的子节点被导入。
动画循环(-loop、-cycle)
源 3D 文件中名称以 loop 或 cycle 开始或结束的动画片段,将作为设置了循环标志的 Godot Animation 导入。这与上述其他后缀不同,不需要连字符。
在 Blender 中,这需要使用 NLA 编辑器,并用 loop 或 cycle 前缀或后缀命名该动作。
材质透明度(-alpha)
带有 -alpha 后缀的材质将使用 TRANSPARENCY_ALPHA 透明模式导入。
材质顶点颜色(-vcol)
带有 -vcol 后缀的材质将启用 FLAG_ALBEDO_FROM_VERTEX_COLOR 和 FLAG_SRGB_VERTEX_COLOR 标志进行导入。