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

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是文本格式

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

导出设置,注意要勾选仅导出形变骨骼
Blender图解教程:导出glTF骨骼动画到Godot引擎的流程与注意事项(4月29日补充Action和网格丢失的处理办法)_第2张图片

导出的gltf文件中包含着导入Godot所需的所有信息(网格模型、骨骼动画以及材质)

在这里插入图片描述

2. 导入Godot

直接拖拽到Godot中,材质文件会被自动解析出来
Blender图解教程:导出glTF骨骼动画到Godot引擎的流程与注意事项(4月29日补充Action和网格丢失的处理办法)_第3张图片

3. 把glTF转换成tscn

双击gltf文件,然后点击新建继承,打开这个场景
Blender图解教程:导出glTF骨骼动画到Godot引擎的流程与注意事项(4月29日补充Action和网格丢失的处理办法)_第4张图片
这时你会发现根节点一下的节点都是灰色不可编辑的
Blender图解教程:导出glTF骨骼动画到Godot引擎的流程与注意事项(4月29日补充Action和网格丢失的处理办法)_第5张图片
Ctrl + S把这个场景保存成tscn格式
Blender图解教程:导出glTF骨骼动画到Godot引擎的流程与注意事项(4月29日补充Action和网格丢失的处理办法)_第6张图片

4. 清除继承(非常重要)

然后在这个场景的根节点右键,选择清除继承

Blender图解教程:导出glTF骨骼动画到Godot引擎的流程与注意事项(4月29日补充Action和网格丢失的处理办法)_第7张图片
清除继承关系以后,子节点都可以编辑了

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

5. 动画设置

  • 这时我们就可以为角色添加AnimationTree了(如果需要的话)
  • 并且此时再设置AnimationPlayer中的默认动画以及循环动画才会生效。

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

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

6. 关于Action丢失和网格丢失的处理办法

  • Action丢失

有时候我们按照上述方法导出动画并导入引擎,发现Blender中的多组动画片段只导出了一个。

解决办法: 这是因为导出glTF格式时,光给Action添加一个伪用户还不行,能够导出的Action必须隶属于某一个NLA Stack,所以如果发现有动画丢失,点击存放,然后重新导出就可以了。

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

  • 网格丢失

这也是老王偶然发现的,比如下面这个例子

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

最初花盆部分不隶属于任何骨骼(顶点组),结果导出以后花盆是丢失的。

解决办法:

进入骨骼的编辑模式,新建一个独立的骨骼,本例中我将它命名为"pot"

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

然后进入网格的编辑模式,为它添加一个名为"pot"的顶点组,然后把花盆指定给"pot"顶点组。换句话说,当前Blender2.82a 的glTF导出插件在遍历导出对象的时候,貌似是从一个根节点开始遍历,这样当根节点为骨骼的时候,不隶属于任何骨骼的网格是遍历不到的,所以要给它一个骨头
Blender图解教程:导出glTF骨骼动画到Godot引擎的流程与注意事项(4月29日补充Action和网格丢失的处理办法)_第14张图片

你可能感兴趣的:(Godot笔记,#,Blender笔记,游戏开发)