基于Rig的动画重定向
概述
通过为不同的动画集配置相同的重定向Rig资产,可以让动作在动画集之间相互转换。所谓的Rig资产是一种包含了一系列节点的层级物件。它作为一种“媒介”,将自身的节点与骨骼进行绑定,从而为不同骨架建立骨骼间的映射关系。
工作流程
注:两个角色,一个作为源,另一个则作为目标。
打开动画编辑器,进入对源的动画编辑窗口中,依次点击菜单栏的窗口(Window) -> 重定向管理器(Retargeting Manager)来打开重定向管理器。
在重定向管理器(Retargeting Manager)中第一行的下拉菜单中选择humanoid_rig(built-in)资产。
配置Rig节点与角色骨骼间的映射关系。
上方一行工具按钮可用于辅助编辑。
名称 | 说明 |
---|---|
清除(Clear) | 用于快速清空映射关系 |
显示进阶骨骼(Show Advanced Bones) | 可以在显示主干或完整Rig结构间切换,也可以进行快速配置,快速查看转换效果 |
尝试匹配(Try To Map Bones) | 可以自动快速匹配节点和骨骼 |
点击保存重定向配置(Save Settings)按钮可保存编辑后的配置。
重复以上步骤为目标完成Rig的相关配置。
源和目标的Rig相关配置完成后,在打开目标的动画编辑器中依次点击菜单栏的文件(File) -> 通过重定向创建(Create By Retargeting)来创建动画资产。
在源组合体文件(Source Actor File)中选择源角色。
注:如果Rig设置不匹配,在面板上会有相应的消息提示,此时需进行调整。
选中源后,如果动画集中的Rig设置相互匹配,则下方列表中将罗列所有源动画集中的XSKT原始动画。勾选待转换动画,然后点击确认按钮开始转换,此时选中的动画将被添加至目标动画集中。
转换质量的改善
通过运行时的动作重定向功能
转换后的动画可能在若干骨骼上与目标的长度不匹配,这时需要使用运行时的动作重定向功能进行修正。
部分骨骼可以看到明显的错位。这时在骨架编辑器中将相应骨骼设为骨架重定向模式即可修复。例如,将除Root和Pelvis之外的骨骼递归地设为骨架重定向模式,在骨架树中右键Root骨骼选择骨架(递归),最后将Root、Bip01和Bip01 Pelvis三根骨骼设为动画重定向模式。
修复后:
通过设置重定向基础姿势
为达到更佳的转换结果,应该为源和目标设置尽可能一致的基础姿势。提高转换的可控性和转换质量。如果动画的基础骨架差异较大,可在重定向过程中增加该步骤。
创建重定向基础姿势
可以通过两种方式来创建重定向基础姿势。一种是通过3Ds Max或Maya之类的DCC工具在原始资源的基础上进行调整并导出为Flexi的动画资源(保证第0帧为想要的基础姿势);另一种是通过动画编辑器内的编辑导出工具。
第一种方法优点是对姿势的控制更精准;缺点是相对繁琐,需要有一定DCC工具使用能力,还需要具有两种工具间切换原始资源的能力。第二种方法,优点是方便快捷;缺点是目前在引擎编辑器中修改姿势不太直观可控。
下面介绍使用第二种方式的步骤:
分别编辑源和目标用于骨架的XSKT动画。
在组合体编辑器(Actor Editor)下的动作列表(Action List)中双击tpose进入该动画的编辑窗口。
在骨架编辑器中调整相应骨骼的附加变换(Append Transform),尽可能将源和目标中的基础姿势调整一致。
调整完后,在资产浏览器中右键该动画,选择导出骨架(Export Skeleton)可导出修改后的动画。
导出后需还原原动画中对附加变换值的修改。
设置重定向基础姿势
分别为源和目标设置基础姿势资产。在设置基础姿势路径(Set Base Pose Path)处选择刚才修改后导出的动画,重定向工具将使用资产的第0帧作为基础姿势。
如果不再需要使用基础姿势,可以使用清除基础姿势(Clear Base Pose)按钮将其清除。不设置重定向基础姿势,程序则将使用动画关联到的原始骨架作为重定向基础姿势。