最近想做一个跑酷游戏,从mixamo下载滑铲动作后,出了很多动画的问题。花了两周时间,终于是把所有的问题基本上都解决了。
常见问题:
1.【动画序列】人物不移动。
2.【动画序列】人物移动朝向错误。
3.【蒙太奇】人物移动后会被拉回。
4.【蒙太奇】动画移动,蒙太奇不移动。
5.【蒙太奇】只有上半身移动。
6.【蒙太奇】脚部动作未正常播放。
一、根骨骼
对于带有位移的动画:
1.不启动根运动
人物会向前移动,但是胶囊体会停留在原地。运动结束后人物会被拉回原地。
不启用根运动不会影响动作播放,但是人物会在原地,不会带有位移。
2.启用根运动
人物和胶囊体会一起移动,之后一直向前运动。
3.红线代表人物移动轨迹。
二、启用根运动
1.动画序列
在动画的细节面板中勾选启用根运动EnableRootMotion。
启用根运动后你会发现人物在原地不动,你需要进行下面的调试。
2.动画蓝图
类默认——细节——根运动模式
选择来自每一项目的根运动Root Motion From Everything或者仅来自蒙太奇的根运动Root Motion From Montage Only.
启用根运动会造成性能成本。
三、调试
1.动画序列编辑器
Chracter——骨骼——骨骼绘制——所有层级
可以看到完整骨骼移动以及根骨骼的轨迹。
Character——动画——根运动——循环
人物会一直向前移动。
2.控制台指令
游戏运行时
“`”打开控制台——输入:show collision——可以显示人物胶囊体
四、重定向
1.根骨骼
必须给每个角色定义根骨骼,将骨盆或臀部的骨骼设置为重定向根,这样才可以成比例地定义和传输根运动。
2.检查原动画
不启用根运动
根运动根锁定——参考姿势
不勾选强制根锁定
Root的重定向模式不是动画缩放
3.创建root链
创建一条root根骨骼链,并将平移方式改为全局缩放,然后可以看到目标人物身后会有一条红线,这样人物才能够开始移动。
如果出现人物在上面位移,可以将spine这条链也改为全局缩放。
五、blender调整骨骼
当我们成功导出滑铲动画后,启用根运动,发现人物的姿势朝向有问题。
因为mixamo的动画默认没有根骨骼,导致根动画不能正常播放,这时候需要用插件在blender中调整。
1.下载动画
先下载角色,再下载动画,选择“whithout Skin不带骨骼”。
2.下载插件
https://github.com/brkeejp/mixamo_converter
直接点击下载即可,不需要解压。
3.安装插件
打开blender,编辑——偏好设置——插件——安装——选取安装包。
然后回到插件,发现已经有了插件,勾选。
4.设置
需要对插件进行一些设置:
- Use Z——取消勾选
- Remove Namespaces——取消勾选
- Use Unreal Engine bone names——勾选
- Apply Rotation——取消勾选
- 填写输入路径(最好给动画的fbx文件单独创建一个文件夹,不然会报错)
- 填写输出路径(新建一个文件夹)
点击Batch Convert,看到界面中间的方块消失即代表完成。
需要对角色骨骼和动画都进行convert。
六、调整动画
先将骨骼导入到引擎中,发现有了根骨骼。
然后再导入动画,不导入骨骼,选择刚才的骨骼。
动画正常播放,ok了!
七、脚部未正常播放
滑铲后发现脚部未向前伸出,动画还是有问题。
1.打开角色动画蓝图,双击打开绑定控制Control Rig节点。
2.右键序列节点——升级节点,变为常用序列节点。
3.新增一个序列,新建Set Transform节点,并将此节点调整为第一个序列。
4.获得脚骨骼的变换。
Get transform节点——名称:foot_I
在set transform中展开“项目”,骨骼名选择IK_foot_I
复制相同节点,骨骼设为右脚foot_R.
完整如下:
再次进入游戏,发现脚部动作正常播放了。