Unity技术美术(TA)指北——Animation动画
原文指路:注:因为我对动画部分也不是很熟,斜体部分是我用chatGPT搜了一下之后的个人理解,仅供参考
动画系统
Unity中的动画通常来源于动作捕捉或者DCC软件。Unity中的动画系统提供了工具来对动画进行修改,程序化优化(procedurally adapt),或是融合这些动画来使得它们更加生动
Unity的动画系统基于Animation Clips的概念,其包含了某个指定物体会如何随着时间改变其位置,旋转或其他属性的信息。每一个clip可以看作一个单独的线性的记录(single linear recording)。从外部导入的Animation Clips会被组织在一个名为Animator Controller的structured flowchart system中
动画状态机Animation State Machine
在Unity中,Animator Controller允许你为角色或物体组织和维护一系列动画片段(Animation Clips)和相关的动画过渡(Animation Transitions)。在大多数情况下,我们通常需要在游戏的某个事件发生时在已有的多个动画之间切换。举个例子,当你按下空格时,你需要从走路的动画片段切换到跳跃的动画片段。Animator Controller拥有对其中的动画片段的引用,并且用动画状态机来组织不同的动画片段和动画过渡。状态机可以看作一个动画片段和过渡的流程图,或者是用可视化编程语言写的简易程序
Blend trees可以高效地隐藏复杂度。它没有状态,也不会回调代码,它只会简单地根据你定义的参数将不同的动画片段进行融合。这是非常有意义的,因为你可以在Blend Tree上面对动画进行迭代(iterate),而不需要担心破坏游戏的其余部分。更重要的是,因为你不能将行为绑定到blend tree中的大部分动画上,你可以隐藏复杂的状态网络以避免bug,
Unity提供了Animation Layers来组织复杂的状态机。举个例子,使用动画层来创建下半身层级来进行走路和跳跃,创建上半身层级来扔东西或设计。要使动画有更多表现,动画状态还可以触发音效或者C#代码
动画窗口Animation Window
动画窗口允许你在Unity中直接创建和修改动画片段。他被设计为外部3D动画软件的替代品,并且可以在开发时创建简单的动画。其提供了动画所需要的基本工具:关键帧,播放头,动画时间线以及动画曲线(Keyframes, Playhead, Animation Timeline, and Animation Curves)
除了移动的动画,你还可以为各种各样的材质和组件(几乎所有的Game Object属性)做动画以及用动画事件(Animation Events,时间线中特定时间点调用的函数,可以用来播放声音或调用代码)扩充你的动画片段(augment your Animation Clips with Animation Events)
Unity的Animation Window还允许你为下列属性制作动画:
[*]GameObject的位置,旋转,尺寸
[*]组件属性,包括材质颜色,光强度,音量
[*]脚本属性,such as Float, Integer, Enum, Vector, and Boolean
[*]设置调用脚本中的函数的时机(从而控制特定事件)
创建的动画片段可以被Animator Controller或Animation Rigging使用,以及在游戏和影像中通过Timeline来利用。
动画绑定Animation Rigging
使用Animation Rigging package在运行时为动画骨骼设置程序化运动。在这个包中有一系列预定义的动画约束器(animation constraints,可以用来约束骨骼或模型的旋转、位移或缩放,比如限制骨骼在某一特定方向上的旋转),可以手动创建角色的骨骼控制层级(control rig hierarchy),或者你也可以用C#开发自定义的约束器。这使得你可以在游戏中完成强大的行动,比如和环境的交互,骨骼变形绑定(skeletal deformation rigging,利用骨骼和绑定点来控制模型的变形)和基于物理的辅助运动(physics-based secondary motion,指的是使用物理模拟来控制模型在运动过程中的二次运动效果,例如模型的摆动或拉伸等)
Animation Rigging的另一个优点是你可以修改原本难以访问或更改的动画,或者适应原动画未考虑的新情况
Unity中的动画绑定包允许你创建覆盖某些骨骼的动画,或者创建约束器来将程序化动作添加到动画物体上。你可以创建动态动画(dynamic animations),还可以用动画工具修改或创建新的动画片段,或者用Timeline创建影像序列
更多资料
Working with Animation Clips - Unity Learn
(10) Improve your animation workflow with Animation Rigging | Unite Now 2020 - YouTube
Reusing and retargeting animations between rigs | Unite Now 2020 - YouTube
页:
[1]