虚幻引擎提供了灵活的工具,用于将动画从一个角色重定向到另一个角色。一种方法是将IK Rig与IK重定向器结合使用,这样就可以重定向带有迥异的骨架层级和比例的角色。重定向动画可用于在多个不同骨架之间共享动画数据,而无需在虚幻引擎之外创建和管理新动画。
本文档概述了如何使用这些工具在两个不同的两足角色之间重定向动画。
先决条件
你的项目包含至少两个不同的两足角色。此示例使用第三人称模板和Stack O Bot中可用的虚幻引擎人体模型。
两个角色应该有不同的骨架资产和骨骼层级,这样你以这种方式重定向的理由足够充分。否则,如果你的角色有相似的比例和层级,可能最好使用兼容的骨架。
源和目标IK Rig设置
使用IK Rig重定向需要 源 和 目标 骨骼网格体,它们由这两个网格体各自的 IK Rig资产(IK Rig Asset) 定义。因此,你必须首先为重定向过程中使用的每个角色创建以 IK Rig 。
打开内容浏览器,点击 添加(Add (+))> 动画(Animation)> IK Rig > IK Rig 。
选择你想将Rig添加到的骨骼网格体。
为两个角色执行此操作,然后打开每个IK Rig资产。
重定向根骨骼
在两种IK Rig资产中,你必须为每个角色定义 根骨骼 ,这通常是 骨盆 或 臀部 骨骼。这样做是为了成比例地定义和传输角色的根骨骼运动。
在 层级(Hierarchy) 面板中,右键点击骨骼,选择 设置重定向根骨骼(Set Retarget Root) 。在两种IK Rig资产中执行此操作。
完成后,所选骨骼会指示它在 层级(Hierarchy) 和 IK重定向(IK Retargeting) 面板中的 重定向根骨骼(Retarget Root) 中。
重定向链
你要在重定向过程中转移的肢体和其他附属物也必须在源和目标IK Rig上定义。这与在其他应用(如Autodesk MotionBuilder或Maya)中的 表征 Rig类似。主要差异在于按 关节链 来定义,而不是按单个骨骼来定义。这为重定向具有截然不同骨骼结构的角色提供了灵活性。
你必须为要重定向的所有主要肢体创建链。你还可以选择为手指等次要肢体创建链。在此示例中,你将在两个IK Rig中创建以下链:
脊椎
左手臂
右手臂
颈部
头部
左腿
右腿
要创建链,请按照以下步骤操作:
在 层级(Hierarchy) 面板中选择链的第一个骨骼,然后沿层级向下选择所有骨骼,直至达到链的最后一个骨骼。
右键点击这些骨骼,选择 所选骨骼的新重定向链(New Retarget Chain from Selected Bones) 。
在 添加新重定向链(Add New Retarget Chain) 对话框窗口中,确保 链名称(Chain Name) 已正确设置,然后点击 确定(OK) 。在大部分情况下,IK Rig将自动从其常见链名称列表中分配此值。
在 将目标添加到新链(Add Goal to New Chain) 对话框窗口中,选择 无目标(No Goal) 。通常,你不需要添加IK目标,除非你的重定向需要其他IK调整,例如快速栽植、步长扭曲或 混合到源(Blend to Source) 。
为两个IK Rig资产中的所有主要链重复此步骤。完成后, IK重定向(IK Retargeting) 面板应该填充有多个链。
链可以只由单个骨骼组成。在肩部、颈部或头部骨骼等部位,可能会存在这种情况。在这些情况下,你仍可以在 层级(Hierarchy) 面板中右键点击单个骨骼,选择 所选骨骼的新重定向链(New Retarget Chain from Selected Bones) 。链条目将在 起始骨骼(Start Bone) 和 末端骨骼(End Bone) 字段中定义相同的骨骼。
IK重定向
创建必要的骨骼链之后,你可以在 IK重定向器(IK Retargeter) 中开始重定向过程。IK重定向器是同时引用源和目标IK Rig的资产。在IK重定向器编辑器中,你可以自定义如何在源和目标之间转移动画。
创建和设置IK重定向器
要创建IK重定向器,请执行以下操作:
点击内容浏览器中的 添加(Add (+)) ,然后选择 动画(Animation)> IK重定向器(IK Retargeter) 。
在显示的对话框窗口中,选择你想重定向其中的动画的IK Rig。
选择Rig后,命名新的IK重定向器资产,然后双击它,以在IK重定向器编辑器中打开。
IK重定向器编辑器仅在视口和 源IKRig资产(Source IKRig Asset) 属性中显示源骨骼网格体。要添加目标角色,请点击 目标IKRig资产(Target IKRig Asset) 下拉菜单并选择目标IK Rig。
重定向之前的核对清单
继续之前,你应该核对一些事项,确保重定向过程准确无误。
在 链映射(Chain Mapping) 面板中,确保 目标(Target) 和 源链(Source Chains) 匹配。在大部分情况下,名称应该会正确自动匹配。如果不匹配,你可以点击 源链(Source Chain) 下拉菜单,并更改链分配以匹配 目标链(Target Chain) 。
确保两个角色有匹配的引用姿势。如果这些引用姿势不同,例如一个角色是T姿势而另一个角色是A姿势,则你需要调整其重定向姿势之一,使其匹配。
你可以选择在 细节(Details) 面板中调整偏移和缩放设置,更轻松地查看源和目标骨架。
预览重定向
在 资产浏览器(Asset Browser) 面板中,双击不同的动画,在不同的动画序列上预览重定向效果。
导出重定向结果
对目标角色上的重定向结果感到满意后,你可以将动画导出到兼容该角色的骨架的动画序列。为此,在 资产浏览器(Asset Browser) 面板中选择你想导出的动画,然后点击 导出所选动画(Export Selected Animations) 。
在对话框窗口中指定你的导出路径,并点击 确定(OK) 导出动画。重定向的动画现在将在带有后缀 _Retargeted
的输出文件夹中可用。
修饰运动
如果你要将逼真的运动捕获动画重定向到非逼真的角色,生成的动画可能显示不正确或看起来很奇怪。这可能有点主观,但在这些情况下,最好执行额外步骤来修饰或减弱特定角色运动,实现更适合的外观。
例如,预览重定向的机器人角色上的奔跑动画时,你可能希望该角色更有弹性。以下步骤详述了如何实现这一点。
|
|
---|---|
原始重定向结果 |
使用调整的设置重定向 |
创建IK目标
第一步是创建IK目标,确保在添加额外弹性时两脚保持在地面站稳。
假定还没有创建IK目标,打开目标角色的IK Rig资产。在 层级(Hierarchy) 面板中,右键点击某个脚步骨骼并选择 新IK目标(New IK Goal) 。
出现后续提示时,确保将 肢体IK(Limb IK) 设置为解算器,并点击 添加解算器(Add Solver) ,然后点击 指定目标(Assign Goal) 。
接下来,确保在 解算器堆栈(Solver Stack) 面板中选择新创建的肢体IK解算器,然后右键点击大腿骨骼,选择 在所选解算器上设置根骨骼(Set Root Bone on Selected Solver) 。
为另一条腿执行上述相同步骤,直至你有两个IK目标和肢体IK解算器。
IK重定向器根骨骼设置
接下来,返回IK重定向器资产,通过在视口中选择根骨骼调试可视化器或在 链映射(Chain Mapping) 面板中点击 根骨骼设置(Root Settings) ,打开根骨骼设置。
你需要编辑的两个属性是 水平缩放(Scale Horizontal) 和 平移偏移Z(Translate Offset Z) 。
水平缩放(Scale Horizontal) 会增加重定向根骨骼(在大部分情况下是骨盆或臀部骨骼)上的动画曲线的总体比例,这会增加角色的总体垂直运动,但还会导致角色从地面抬升。
平移偏移Z(Translate Offset Z) 对此进行补偿。如果减小它,会降低重定向根骨骼,但不会影响其总体比例。
一起使用这两个属性,你就可以增加重定向角色的向上和向下弹性。属性的增加量或减小量取决于你的角色和动画。
在此示例中,为了实现所需弹性, 平移偏移Z(Translate Offset Z) 设置为 -173 , 垂直缩放(Scale Vertical) 设置为 6 。