Blender2.82a
Godot Engine 3.2.1stable
老王感觉目前来讲Blender到Godot的工作流中,还是glTF支持得最好
文章目录
- 1. 导出
- 2. 导入Godot
- 3. 把glTF转换成tscn
- 4. 清除继承(非常重要)
- 5. 动画设置
- 6. 关于Action丢失和网格丢失的处理办法
- Action丢失
- 网格丢失
1. 导出
在导出选项
中选择导出glTF2.0(.glb/.gltf)
.glb是二进制格式
.gltf是文本格式
导出设置,注意要勾选仅导出形变骨骼
导出的gltf文件中包含着导入Godot所需的所有信息(网格模型、骨骼动画以及材质)
2. 导入Godot
直接拖拽到Godot中,材质文件会被自动解析出来
3. 把glTF转换成tscn
双击gltf文件,然后点击新建继承
,打开这个场景
这时你会发现根节点以下的节点都是灰色不可编辑的
按Ctrl + S
把这个场景保存成tscn格式
4. 清除继承(非常重要)
然后在这个场景的根节点右键,选择清除继承
清除继承关系以后,子节点都可以编辑了
5. 动画设置
- 这时我们就可以为角色添加
AnimationTree
了(如果需要的话) - 并且此时再设置
AnimationPlayer
中的默认动画
以及循环动画
才会生效。
6. 关于Action丢失和网格丢失的处理办法
Action丢失
有时候我们按照上述方法导出动画并导入引擎,发现Blender中的多组动画片段只导出了一个。
解决办法: 这是因为导出glTF格式时,光给Action添加一个伪用户还不行,能够导出的Action必须隶属于某一个NLA Stack,所以如果发现有动画丢失,点击存放,然后重新导出就可以了。
网格丢失
这也是老王偶然发现的,比如下面这个例子
最初花盆部分不隶属于任何骨骼(顶点组),结果导出以后花盆是丢失的。
解决办法:
进入骨骼的编辑模式
,新建一个独立的骨骼,本例中我将它命名为"pot"
然后进入网格的编辑模式,为它添加一个名为"pot"的顶点组,然后把花盆指定给"pot"顶点组。换句话说,当前Blender2.82a 的glTF导出插件在遍历导出对象的时候,貌似是从一个根节点开始遍历,这样当根节点为骨骼的时候,不隶属于任何骨骼的网格是遍历不到的,所以要给它一个骨头