动画剪辑是Unity用来表示对象运动姿态的基础资源,你可以从模型文件中导入动画剪辑,也可以在Unity内部创建简单的动画剪辑。
Import Animation From Model
在导入时只需要确保模型的Animation选项卡中的Import Animation是被激活的,对于没有动画剪辑的模型,你完全可以取消勾选该选项。
Model Animation Import Setting
ANIMATION IMPORT | 描述 |
---|---|
Import Constraints | 是否导入动画的约束 |
Import Animation | 是否导入动画,默认是开启的 |
Import Animated Custom Properties | 导入您指定为自定义用户属性的任何FBX属性。 |
Bake Animations | 烘焙使用IK或模拟创建的动画,以转发运动学关键帧。 仅适用于Autodesk®Maya®、Autodesk®3ds Max®和Cinema 4D文件。 |
Anim.Compression | 动画的压缩方式 |
Remove Constant Scale Curves | 删除值与初始值比例相同的恒定动画曲线 |
Clips | 包含的所有的动画剪辑 |
Unity在导入FBX文件时仅支持一小部分属性(如平移、旋转、缩放和可见性)。但是,你可以通过extraUserProperties成员在导入器脚本中命名标准FBX属性,将其视为用户属性。在导入过程中,Unity会将任何命名属性传递给资产后处理器,就像“真实”用户属性一样。
ANIMATION COMPRESSION | 描述 |
---|---|
OFF | 完全保留导入动画帧数量,不压缩(默认是关键帧压缩) |
Keyframe Reduction | 该选项会剔除冗余的关键帧。 |
Optimal | 让Unity自己决定是使用剔除过后的动画,还是使用密集的关键帧。 |
不压缩动画的好处是可以完全百分百还原美术制作的动画剪辑,坏处是动画性能会降低,内存会增加。追求更高精度的实时CG可以使用该选项,运行时代的游戏元素动画还是选择关键帧剔除和优化比较好。
Keyframe Reduction 会剔除不必要的关键帧,例如美术提供A、B、C三帧动画,Unity会对A->B的偏移值对限差进行比较,如果A->B差值在小于限差的话,B在这个属性上的关键帧就会被删除,那么该属性的动画将会由A直接插值到C。
在启用 Keyframe Reduction或Optimal任意一项后,Animation Compression Error 的参数就会被启用。
ANIMATION COMPRESSION ERROR | 描述 |
---|---|
Rotation Error | 旋转的最小误差 |
Position Error | 平移的最小误差 |
Scale Error | 缩放的最小误差 |
需要注意的是Rotation Error与Position/Scale Error的比较方法不同
旋转剔除计算:Angle(originalValue , reducedValue) < RotationError
平移与缩放剔除计算:OriginalValue - ReducedValue > OriginalValue * percentageOfError
额外需要注意的是在平移和旋转剔除时,Unity会剔除等于误差值的关键帧
Animation Clips Import Settings
ANIMATION CLIP | 描述 |
---|---|
Length | 动画的播放时长 |
Start | 动画剪辑的起始帧 |
End | 动画剪辑的结束帧 |
Loop Time | 是否是循环播放该剪辑 |
Loop Pose | 更流畅的循环动画 |
Cycle Offset | 如果循环动画在不同时间开始,则偏移到循环动画的周期。 |
Root Transform Rotation | |
Bake Into Pose | 烘焙根旋转到骨骼动画中 |
Based Upon | 调整旋转的基准 |
Offset | 调整模型的朝向 |
Root Transform Position(Y) | |
Bake Into Pose | 烘焙根Y轴平移到骨骼动画中 |
Based Upon(at Start) | 调整模型在Y轴上的基准 |
Offset | 模型在Y轴上的偏移值 |
Root Transform Position(X/Z) | |
Bake Into Pose | 烘焙根X/Z轴平移到骨骼动画中 |
Based Upon(at Start) | 调整模型在X/Z轴上的基准 |
Mirror | 左右镜像动画的姿态 |
Additive Reference Pose | 添加参照Pose |
Pose Frame | 叠加动画参考帧 |
Curve | 为动画剪辑设置曲线 |
Event | 添加时间以实现脚本对动画关键帧的监听 |
Mask | 为剪辑添加遮罩,在遮罩内的骨骼不会被动画剪辑影响 |
Root Motion Node | 可以重新定义动画的跟节点 |
Import Messages | 展开此部分以查看有关如何导入动画的详细信息,包括可选的重定向 质量报告。 |
Bake Into Pose,决定是否影响模型根节点变化的选项,开启之后模型根节点在场景中平移、旋转、缩放是不会改变的,只是骨骼在变影响到了Mesh。关闭之后,动画中的根变换将被视为根在场景中的运动。
Additive Reference Pose允许你为附加动画层设置基础的参考姿势帧,这个帧是姿态混合的起始帧。
当添加Pose Frame之后,在动画剪辑的时间轴上会出现一个蓝色的小三角,标识参考帧的位置
从Unity编辑器创建的动画剪辑功能比较少,可以参考剪辑导入设置来根据需求设置从Unity内部创建的动画剪辑。