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