Blender图解教程:导出glTF骨骼动画到Godot引擎的流程与注意事项(4月29日补充Action和网格丢失的处理办法)

Blender2.82a
Godot Engine 3.2.1stable
老王感觉目前来讲Blender到Godot的工作流中,还是glTF支持得最好

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导出插件在遍历导出对象的时候,貌似是从一个根节点开始遍历,这样当根节点为骨骼的时候,不隶属于任何骨骼的网格是遍历不到的,所以要给它一个骨头
在这里插入图片描述

原创文章 441 获赞 1890 访问量 33万+

猜你喜欢

转载自blog.csdn.net/hello_tute/article/details/105797264