骨骼重映射(Skeleton Retargeting)
是指将一个角色的动画(通常是骨骼动画)转移到另一个骨骼结构不同的角色上的过程。目标是让不同结构的模型可以共享相同的动画资源。
本博客所用blender版本为4.0,Cascadeur2024.3,auto-rig-pro3.72.26
一、骨骼动画与所需模型
我们举从mixama网站下载的已包含动画的骨架为例子,我们可以看到,当我选中骨骼时,时间线上已经有0-170帧的动画,若我想将该串动作套在人物上,应该怎么办呢?此时我们需要用到上文提到的插件了。(本文旨在骨骼重映射,因此在此不讨论为角色绑定骨骼,你也可以利用此插件快速新建骨骼)
1、用吸管选中源骨架和目标骨架,本例源骨架为Armature,目标为man3
2、自动缩放,调整骨架适合的大小(可选)
3、构建骨骼列表、设置根骨
注意:这里的根骨有两个选择:
1、BoneRoot
2、Hip
两种情况选一种,根据具体情况会有不同选择,多尝试。其中有一种绑定会使目标动画无法移动。
如图:
4、重新定义休息姿势
点击确定后选中手臂和腿部的骨骼
点击“复制选中的骨骼旋转”后“应用”
5、点击“关于-目标”
差值方式默认线性,若需要可自己改为贝塞尔曲线
你可以看到所需模型可以运动了
二、桥接Cascadeur-Blender
一、相同模型
将Blender中的模型导出为fbx后导入Cascadeur中,此时软件自动进入骨骼绑定,若没有,可手动点击选项卡上分Rig-mod进行绑定。点击Generaate rig生成骨骼。
导出
此时有两种重映射方式:
1、上文所示
2、非线性动画
本文举例较为特殊,可以看到我导入的动作骨骼十分复杂(正常情况下从Cascadeur导出文件后,骨骼会稍有变化,但不会如此夸张)
导入后角色为man3.001,我们选中man3的轨道后添加动作。
可以看到此时目标模型也添加了动作,如此方便肯定有缺点:
1、需要骨骼相同或相似,否则可能会出现映射不准确,肢体错位的情况
2、调整动作起点非常麻烦,默认以导入位置为起点。
优点:
支持动作混合、详细可看其他混合教程。
二、不同模型
当我们日常练习时,我们时常会使用Cascadeur中自带的人物模型,有没有方法可以导出运用到我们想要的模型上呢?
如图
全选人物与所需帧数后,打开Edit选项,选择Retargeting Copy按钮复制动作后,新建一个所需人物模型文件,全选并选择帧数,选择下一行的Retargeting Paste粘贴。
后接上文的骨骼映射后,即可达成我们要的目的。
三、带武器的动作
如图,人物、刀、刀鞘为三个不同模型。
当我们尝试新建所需人物,导入刀与刀鞘后使用Retargeting Paste方法时,只有人物运动而道具静止。
我的想法是:调整人物模型与参考人物等大,各自导出三个fbx文件后,在Blender中一对一绑定骨骼(绑骨操作还请自己学习)
这样操作后,此时剑与人的动作轨迹大概率并不符合原动画,如图:
这是因为在Cascadeur中复制动画时,两个人物的大小并不相等导致的动作偏差。
而在Cascadeur中又不太容易调整两个模型大小相等...............
所以在做动作时,还是尽量直接使用未来需要映射的模型。