unity动画系统中文文档:

https://zlogn.github.io/unity-docs-cn-5.6/Manual/AnimationClips.html

动画混合总结:

 

1D: 运动阈值,看横轴,下图是-1到1.当处于某个金字塔顶峰时,表示该动画权重为1,其它动画权重为0.

 

unity 两个animation串联 unity合并动画_github

 

注意横轴,横轴表示动画的影响值,对于某一位置的参数所有动画影响值之和为100%,上图如果红色标记处于中间,那么2nd motion影响值为100%,其余为0.

unity 两个animation串联 unity合并动画_unity 两个animation串联_02

unity 两个animation串联 unity合并动画_unity 两个animation串联_03

虽然1D混合可以添加很多动画剪辑,但是,最终参与混合的只有两个。

如何判断混合动画权重:

直接判断当前混合参数在所有动画阈值中的位置。

假设当前所有动画阈值为1,2,3,4,5,6.。当前参数为3.5,那么混合的动画为阈值3,4对应的动画

如何获得阈值:

Compute Thresholds 下拉选单将根据您选择的数据设置阈值;这些数据是从动画剪辑的根运动中获得的。可供选择的数据是速度 (Speed)、速度 (Velocity) x、y 或 z 以及以角度或弧度表示的角速度 (Angular Speed)。如果您的__参数__对应于这些属性之一,则可使用 Compute Thresholds 下拉选单来计算阈例如,假设您有一段速度为每秒 1.5 个单位的行走动画、一段速度为每秒 2.3 个单位的慢跑动画以及一段速度为每秒 4 个单位的奔跑动画,则从下拉选单中选择 Speed 选项将基于这些值为三段动画设置参数范围和阈值。所以,如果将速度参数设置为 3.0,则会混合慢跑与奔跑,并略微偏向慢跑。

 

2D混合:

2D Simple Directional:最好在动画片段都是在不同方向的时候使用

2D Freeform Directional:动画片段可以是相同方向的,比如向前跑动画与向前走动画

2D Freeform Cartesian:最好在运动不表示不同方向时使用。凭借 Freeform Cartesian,X 参数和 Y 参数可以表示不同概念,例如角速度和线速度。一个示例是诸如“向前走不转弯”、“向前跑不转弯”、“向前走右转”、“向前跑右转”之类的运动。

Direct:让用户直接控制每个节点的权重。适用于面部形状或随机空闲混合

unity 两个animation串联 unity合并动画_数据_04

 

如何判断参与混合的动画:

unity 两个animation串联 unity合并动画_github_05

红色点的x坐标在1,2之间,y坐标在3,4之间,那么混合的动画为阈值1,2,3,4对应的动画。至于权重占比,看离哪个阈值更近。