如何在 Godot 中使用 AI 生成的 3D 模型
要在 Godot 中将 AI 生成的模型用作道具或环境资源,需要导入模型、检查材质,并设置它在场景中的行为。成功导入只是第一步,还需要处理缩放、碰撞和运行时性能。
本指南介绍从 Neural4D Studio 下载模型后,在 Godot 4.x 编辑器中的操作流程。菜单名称可能因版本而异。如果想把静态模型制作成动画角色,还需要单独完成骨骼绑定和动画制作。
选择适合 Godot 的模型格式
glTF 2.0 是 Godot 推荐的场景格式。如果模型的导出选项中有 .glb,优先选择它。GLB 可以将几何数据、材质和纹理打包在一起;如果下载内容包含外部文件,也要保留。使用 .gltf 时,请保留它引用的二进制数据和图像。
FBX 也是一种选择:在 Godot 4.3 及更高版本中,新添加的 FBX 文件默认使用 ufbx 导入。OBJ 适合较简单的静态网格,但不支持骨骼、动画或 PBR 材质。详情请参阅 Godot 的支持的 3D 格式。
将模型导入项目
- 下载并解压资源。解压 ZIP 压缩包,并将模型与附带的纹理文件放在一起。移动文件前先检查文件内容。
- 将文件复制到项目文件夹,例如 res://assets/models/,并保持引用路径不变。返回 Godot,等待自动导入完成。
- 检查导入的场景。在 FileSystem 面板中找到文件,双击以在 Advanced Import Settings 中预览。检查网格和材质;如果修改了导入设置,点击 Reimport 应用更改。
- 将模型添加到场景。从 FileSystem 将导入的场景拖入 Node3D 场景,确认资源出现在场景树和 3D 视口中。
- 将游戏场景保存为 .tscn 文件。针对游戏的额外内容,请使用单独的场景或继承场景,以便管理源资源的后续更新。
有关导入选项和场景继承,请参阅 Godot 的导入配置指南。
修复纹理缺失和材质显示错误
如果模型看起来呈灰色,先检查源文件导出时是否包含纹理和可用的 UV。查看导入网格引用的材质。仅靠更改文件扩展名或重新导入不完整的导出文件,无法找回缺失的纹理。
| 表现 | 检查项目 |
|---|---|
| 表面没有颜色 | 检查所用材质的 Albedo 纹理和着色,以及是否缺少外部图像文件。 |
| 表面过于光滑或呈金属质感 | 检查 Roughness 和 Metallic 贴图、数值及纹理通道。打包贴图可能将不同属性存储在不同通道中。 |
| 表面细节看起来是反的 | 检查 Normal 贴图及其采用的规范。Godot 使用 OpenGL 风格的法线贴图;对于 DirectX 风格的贴图,可能需要在导入纹理时启用 Normal Map Invert Y。 |
| 纹理拉伸或位置不对 | 检查源资源的 UV。如果不修正 UV 布局,重新导出后问题仍会存在。 |
使用 StandardMaterial3D 时,在 Inspector 中检查相关纹理槽位。如果导入的材质为只读状态,可提取材质或使用覆盖材质进行本地修改。先在游戏的光照条件下比较效果,再判断纹理是否有问题。Godot 分别提供了材质属性和纹理导入设置的文档。
检查缩放、朝向和碰撞
将资源与场景中熟悉的物体或玩家角色比较。在关卡中重复放置之前,检查其大小、朝向和位置。对于普遍存在的缩放或朝向问题,尽可能在源文件导出环节修正。
看得见的网格不一定有碰撞。对于固定不动的场景物件,使用合适的 StaticBody3D 和 CollisionShape3D。对于受物理效果驱动的道具,使用 RigidBody3D 并配置合适的形状。简单的基本形状或凸形状适合作为起点;凹面网格碰撞适用于静态几何体。请参阅 Godot 的3D 碰撞形状指南。
在可游玩的场景中测试门口、可行走表面和物体接触效果。确认预定使用的摄像机和光照能正确呈现资源。静态角色网格还需要匹配的骨骼、蒙皮权重、动画和控制逻辑,才能作为可操作角色使用。
测试并优化性能
按游戏中预计使用的模型实例数量进行测试,并使用计划采用的渲染器和目标设备。没有一个固定的三角面数量能保证良好性能:材质、纹理、阴影、可见性和碰撞复杂度也会影响结果。
- 检查 LOD 效果。Godot 默认会为导入的 3D 场景生成网格 LOD。检查远处视角是否出现瑕疵;对于有问题的网格,调整或关闭 LOD 生成。以网格资源形式导入的 OBJ 采用不同的处理流程。请参阅Godot 的 LOD 指南。
- 减少不必要的几何细节。如果源模型面数过高,请在导入前简化。在 Neural4D 中,可按需使用模型底部工具栏中的 Remesh,然后在导出前比较模型轮廓和表面细节。使用 LOD 后,仍需检查最近视角的效果。
- 评估纹理开销。选择合适的分辨率,并检查远处表面的 mipmap。VRAM Compressed 是一种纹理压缩模式,底层格式取决于平台。压缩可能产生瑕疵,因此要检查压缩后的画质。
- 在有代表性的场景中测量。比较调整前后的帧耗时,并在包含预期光照、阴影、重复使用的道具和碰撞的条件下重新测试。
常见问题
在 Godot 中使用 AI 模型,应该选择什么格式?
建议优先使用 glTF 2.0。GLB 便于将模型和纹理打包在一起;glTF 则可能包含独立的数据文件和图像文件,需要与模型一同保存。
为什么我的模型没有显示纹理?
检查导出文件是否包含所需图像、网格是否有可用的 UV,以及指定材质是否引用了正确的纹理。重新导入不完整的文件并不能补回缺失的纹理数据。
导入模型后会自动添加碰撞吗?
不要认为导入后就一定有碰撞。检查场景中的物理体和碰撞形状,按资源需要补充,并在游戏中测试碰撞效果。
静态 AI 模型能用作动画角色吗?
静态网格需要配备兼容的骨骼绑定、蒙皮权重、动画和游戏逻辑,才能用作动画角色。仅导入网格不会自动生成这些内容。