文章目录
-
-
- 效果展示
- 0. 动画准备
-
- Idle动画
- 波动拳
- 升龙拳
- 1. 导出模型与动画
-
- 1.1. 隐藏不必要的集合
- 1.2. 以glTF格式导出
- 2. 导入Godot Engine
- 3. 模型提取以及动画数据的提取与加载
-
- 3.1. 模型提取
- 3.2. 动画提取及加载
- 3.3. 动画加载
- 3.4. 动画设置
-
- 设置默认动画
- 设置循环动画
- 4. 场景搭建
- 5. 简单的动画切换
-
效果展示
0. 动画准备
Idle动画
波动拳
升龙拳
1. 导出模型与动画
这三个动画全是用的同一个绑定,下载地址见Blender Rigify版街霸角色隆(Ryu)
导出设置
1.1. 隐藏不必要的集合
只有下图红框中的内容是需要导出的,其它内容一律放到其它集合中并取消勾选
1.2. 以glTF格式导出
以FBX格式导出也是可以的,只不过导出到Godot中解析出的场景结构会略有不同
注意: 一定要勾选
仅导出形变骨骼
,否则后果不堪设想
导出完毕后,得到如下三个文件
2. 导入Godot Engine
如果你的项目使用了git管理,老王建议你把这三个glb文件先导入一个被gitignore的文件夹
导入后
3. 模型提取以及动画数据的提取与加载
3.1. 模型提取
这三个glb文件中的模型是相同的,所以提取其中一个就可以
双击Ryu Idle.glb
打开以后
Ctrl + S
另存为tscn文件
清除继承
清除继承以后“Ryu Idle”的子节点都从灰色变亮了
顺便把“Ryu Idle”更名为“Ryu”
3.2. 动画提取及加载
导出后的动画文件
其它的3个glb文件中的动画也这样导出就可以
导出后的动画文件
3.3. 动画加载
选择Ryu.tscn文件中的AnimationPlayer,它里面只有1个动画
AnimationPlayer
的本质就是一个动画的容器
3.4. 动画设置
设置默认动画
本例中默认动画为隆的Idle动画
设置循环动画
有些动画是循环动画,比如隆的Idle动画(设置方法见上图)
4. 场景搭建
这个场景的搭建见《Blender图解教程:人肉三维重建 之照着图片扣个街霸本田澡堂子》
5. 简单的动画切换
篇幅的原因,本文仅实现一个通过单一按键来触发必杀的效果,后面的教程中,老王将结合《Godot Engine:格斗游戏中的必杀技(大招/绝招/特殊技/Special Move )输入系统实现》以及状态机实现更复杂的动画控制
在Ryu上添加一个代码
代码
extends Spatialonready var anim = $AnimationPlayerfunc _process(delta):if Input.is_action_just_pressed("ui_j"):anim.play("Hadoken@Ryu")if Input.is_action_just_pressed("ui_k"):anim.play("Syoryuken@Ryu")