游戏原型系列 vol.6 使用Animation Rigging(动画绑定)
摘要
动画绑定是开发过程中的一种专门技术。创建动画绑定是一个非常耗时的过程,有时需要几个人来创建满足项目所有需求的装备。使用Unity的动画绑定工具,由于这些工具的灵活性和稳定性,减少了时间和人力。
1.简介
动画绑定是3D建模过程中的一种专门技术。创建动画绑定可能很耗时,有时还需要几个人的工作才能生产出满足项目所有需求的装备。借助Unity的“程序化动画绑定”工具,可以显着减少时间和人力。
2.动画绑定概述
首先,从“Package Manager(程序包管理器)”安装“Animation Rigging(动画绑定)”程序包。动画绑定包适用于Unity 2019.1及更高版本。(这些工具仍处于预览状态,可能会随着添加更新而改变。)

动画绑定包提供了绑定约束库,可用于在运行时创建过程运动。这通常称为“runtime rigging(运行时绑定)”。约束是在称为装备的组中进行设置的,这些组在分配给资源的动画师Root的装备生成器组件中组装。这使用户可以在游戏过程中使用动画骨骼来完成强大的功能,例如世界互动。动画绑定工具可以使用程序控制的骨骼来帮助创建更高品质的绑定,该骨骼可以帮助修正蒙皮网格物体角色的肩膀和手腕的扭曲。基于物理的约束可用于角色装备上的动态辅助运动。

3.设置Rig Builder(绑定制造器)
首先,将带有Animator组件的Rig Builder组件添加到GameObject中。通常,这是绑定层次结构中最顶层的变换。
接下来,创建一个新的子GameObject并添加Rig组件。
最后,将rig分配到Animator根上Rig Builder组件中的“ Rig Layers”列表中(图03 )。

至此,您将创建最基本的绑定。下一步将是添加约束以获得所需的行为。为了使设置约束更加容易,建议您设置“Bone Renderers(骨骼渲染器)”和“Rig Effectors(绑定效果器)”。
4.Bone Renderer(骨骼渲染器)
为了在Unity编辑器中使用绑定,它有助于在“场景”视图中查看骨架并与之交互。现在,我们有了Bone Renderer组件(图04 ),它使您可以添加一个转换列表并以各种视觉样式显示它们。

图04:Bone Renderer组件
它通常有助于使用多个Bone Renderer组件来组织骨骼的各个部分。例如,角色的身体,手指和扭曲骨头可以具有多个骨骼渲染器组件,每个组件都有自己的显示样式。这有助于简化不同的艺术家工作流程,例如绑定设置,关键帧或游戏调试。
5.Rig Effectors(绑定效果器)
与骨骼类似,绑定效果器允许用户将Gizmos添加到变换中以进行可视化和选择。这些可以添加到与“Rig Builder(绑定生成器)”或“Rig(绑定)”组件相同层次结构中的任何变换中。效应器在“游戏”视图中不可见。添加了特殊的“场景视图”叠加层,以在“绑定”层次结构中管理和自定义效果器(图05 )。

效果器的外观也可以自定义。可以修改效果器的尺寸,形状,颜色,偏移位置和偏移旋转。形状可以是项目中可用的任何Mesh资源。可以一次创建,删除和编辑多个效应器。
6.使用Rig Constraints(绑定约束)
绑定约束是用于在运行时组装绑定并产生程序运动的构造块。它们被设计为模块化和通用的,因此可以通过多种不同方式组合起来,以解决运行时动画游戏设计的需求。
以下是与软件包一起发布的绑定约束列表(图06 )。

7.设置两个骨骼的IK约束
大多数角色绑定中都使用“两骨骼IK约束”,以允许角色的四肢通过逆运动学来驱动。这样就可以根据IK目标的位置和运动来解决角色肢体的位置和旋转。在以下示例中,我们将为角色的手臂设置“两个骨骼IK约束”。
首先,将角色重置为“绑定姿势”。这可以使装配过程更加容易。为此,请在菜单栏中单击“动画绑定”,然后选择“恢复绑定姿势”(图07 )。使用“还原绑定姿势”时,请确保已选择角色。

接下来,添加称为角色游戏对象以下的子游戏物体CharacterRig 。
在CharacterRig下面添加一个名为Right Arm IK 的子GameObject 。
在Right Arm IK下添加两个子GameObject:
⬛将第一个命名为RH IK Target。
⬛命名第二个RH IK Hint(图08 )。

将Rig Builder组件添加到Animator根GameObject(在此示例中,它称为Ninja)(图09 )
⬛请注意,“Rig Layer(绑定层列表)”为空。这是我们将添加绑定的地方。

选择CharacterRig GameObject并添加一个Rig Component(图10 )。
⬛这将用作全局绑定,允许用户打开和关闭整个绑定。


选择“ RH IK Target”并添加一个Box Effector。
⬛更改Color和Size参数以适合您的样式和需求(图12 )。

请注意,Box Effector(盒形效应器)未与手对齐。在层次结构中选择Box Effector,然后按住CRTL(对于Mac为COMMAND),选择右手。
⬛右手的GameObject是角色骨架中的子级。
在选择Box Effector并选择了右手的情况下,单击菜单栏中的“动画绑定”,然后选择“对齐变换”。Box Effector现在应该与右手对齐。如果不是,请确保先选择Box Effector,然后再选择右手。

选择“ RH IK Hint”并添加一个Ball Effector。该效应器将控制肘部的旋转角度。
选择“ RH IK Hint”和“ RightElbow”,然后单击“Animation Rigging(动画绑定)”>“Align Transform(对齐变换)”。
如图所示,将球形效应器移离肘部(图14 )。

选择RightArm IK GameObject并将相应的骨骼应用于“两个骨骼IK约束”组件(图15 )。
⬛最简单的方法是将GameObjects从“层次结构”拖放到适当的参数槽。

选择角色动画设计者根GameObject(忍者),然后将Character Rig GameObject添加到Rig Layers列表中(图16 )。

在“场景视图”中,按“播放”并移动或旋转“ RH IK Target”和“ RH IK Hint”游戏对象以测试约束(图17 )。

8.结论
Unity的动画绑定是一组功能强大的工具,可让您在Unity中创建实时绑定。虽然此工具集通常用于角色,但可以在具有骨架和动画的任何GameObject上使用。尝试为机器等对象创建实时绑定。