主要有两种动画层模式会影响结果动画的计算方式:“相加”(Additive)和“覆盖”(Override)。以下各节分别介绍了每种模式。请参见设定动画层模式。
当处于“相加”(Additive)模式时,动画层会将其动画“添加”到堆叠中位于它前面且具有相同属性的层中。
例如,如果 AnimLayer1 和 AnimLayer2 都包含球体的 translateX 属性,生成的球体 translateX 值将是这两个层的 translateX 值的和。
布尔属性(例如 Visibility)和枚举类型属性始终在“覆盖”(Override)模式中计算,即使在“相加”(Additive)模式中将它们添加到动画层也是如此。
当处于“覆盖”(Override)模式时,动画层将覆盖堆叠中具有相同属性并位于该层前面的任何层中的动画。
例如:AnimLayer1 和 AnimLayer2 均处于“覆盖”(Override)模式。AnimLayer1 上球体的 translateX 值为 10,AnimLayer2 上同一属性的值为 15。在结果动画中,球体的 translateX 值将为 15。
当动画层处于“覆盖”(Override)模式时,其名称以粗体形式显示在“动画层编辑器”(Animation Layer Editor)中。
可以通过启用“穿过”(Passthrough)选项并设置“权重”(Weight)值动画,来修改“覆盖”(Override)层的不透明度。下面一节介绍了“覆盖-穿过”(Override-Passthrough)模式。
当动画层处于“覆盖”(Override)模式时,您还可以启用“穿过”(Passthrough)选项。通过“穿过”(Passthrough)选项,您可以打开和关闭“覆盖”(Override)层的不透明度。
当“穿过”(Passthrough)处于禁用状态时,层始终完全不透明,将阻塞前面具有共享属性的层中的所有动画。当“穿过”(Passthrough)处于启用状态,您可以修改层的不透明度,以控制允许在结果中播放的前面层中的动画量。
如果将“覆盖”(Override)层视为动画层堆叠中的一道门,那么“穿过”(Passthrough)选项就用于控制这道门是锁定还是解锁。当“穿过”(Passthrough)处于禁用状态时,门将被锁闭,不允许前面层中的任何动画穿过。当“穿过”(Passthrough)处于启用状态时,门可以打开,其他动画可以穿过。
通过启用“穿过”(Passthrough),您可以通过设置层的“权重”(Weight)值来控制层的不透明度。门处于解锁状态,并且“权重”(Weight)值确定门将旋转打开的距离。
下图阐释了当“权重”(Weight)值随着“穿过”(Passthrough)模式的启用和禁用而变化时“覆盖”动画层不透明度的变化。
当“穿过”(Passthrough)处于启用状态并且“权重”(Weight)值设定为 1 时,层完全不透明,并且其整个动画会在结果中播放。当“权重”(Weight)设定为 0.5 时,该层中一半的动画会在结果中播放,另一半的动画来自前面的层。如果“权重”(Weight)为 0,该层完全透明。它的任何动画都不会在结果中播放,而是播放前面层中的完整动画。
当“穿过”(Passthrough)处于禁用状态时,层将完全不透明,并阻塞前面层中的所有动画。设置“权重”(Weight)值动画仍将控制该层中将有多少动画在结果中播放。