动画 (Animations)¶
动画更改对象的属性。动画将输入值映射到输出属性值。
Kanzi Studio 将动画存储在 Library > Animations 中。
在 Kanzi 中,您可以创建关键帧动画,这些动画:
通过更改定义节点位置的属性值来动画化节点的位置。例如,通过动画化位置,您可以使菜单从应用程序的一侧出现,或者在用户点击按钮时使按钮弹跳。
更改用于定义节点外观和感觉的那些属性的值,以动画化节点的外观和感觉。您可以动画化不同的属性类型:
浮点属性类型,例如,您可在其中动画化光强度或材质颜色等。
布尔属性类型,例如您可在其中动画化将属性映射到时间线值 0 和 1 时的可见性等值。
在 Kanzi 中,关键帧动画是使用以下方法形成的:
Animation Data。
使用 Animation Data 资源定义关键帧动画的关键帧和目标属性。一个 Animation Data 资源只能针对一个属性或属性字段。Animation Data 资源独立于其目标节点。这使您可以重用 Animation Data 资源来为不同的节点设置动画。
例如,您可以使用 Animation Data 对象来创建事件驱动的动画。请参阅 使用关键帧动画。
在 Animation Data 对象中,每个关键帧将输入值映射到输出值,这些值是浮点数。布尔值的映射方式是,小于 1 的值返回 false,等于或大于 1 的值返回 true。输入值可以是时间或属性值,这些值用于属性驱动的动画或绑定。
Kanzi 根据需要将关键帧加载到内存中。动画在使用时(例如,在动画剪辑编辑器中进行编辑操作期间)保留在内存中,并在修改完成后保存到磁盘。请参阅 编辑动画剪辑。
Animation Clip 和 Animation Child Clip。
使用 Animation Clip 将 Animation Data 资源组合成更复杂的动画。您可以在不同的 Animation Clip 项目中重用相同的 Animation Data 资源。使用 Animation Child Clip 创建分层动画。
您可以使用 Target 属性设置动画子剪辑的目标节点层次结构。您可以使用相对路径设置此属性,或者如果您在父剪辑中设置了 Reference for Targeting 属性,则可以使用绝对路径。如果您使用绝对路径,请将引用设置为剪辑的目标对象。请参阅 编辑动画剪辑。
Timeline Entry。
Timeline Entry 可用于操纵动画,包括重复、缩放、定向及混合,定义动画输入值的类型:时间或属性值。
当您在时间轴序列中设置 Reference for Absolute Paths 属性时,时间轴条目可以使用绝对路径跟踪您设置的对象的相对路径。将此引用设置为实例化序列的对象。
时间轴条目可以混合它们包含的动画剪辑。此功能基于托管时间轴序列级别和每个条目中设置的条目权重属性来使用。Entry Weight 由 Blending Mode 和 Weight 定义,其中 Weight 是根据您选择的 Blending Mode 计算混合的比例。如果 Blending Mode 设置为 None,则不会对动画进行混合。请参阅 编辑时间线序列。
Timeline Sequence。
使用 Timeline Sequence 来组合一组 Timeline Entry 资源。
您还可以通过使用 Float Value Accumulator 或 Int Value Accumulator 随时间递增属性类型的值来创建动画。例如,您可以使用 Value Accumulator 创建秒表或计时器,移动 3D 模型上的纹理,或旋转 3D 模型以创建动画。请参阅 增加属性类型的值。。
小技巧
在 Kanzi Studio 的 Node Tree 窗口中,当状态机、绑定、数据源绑定或动画覆盖了某个节点中部分属性的值时,该节点旁边会显示一个指示灯。
要在 Kanzi Studio 工程中导航至覆盖的源,请右键点击覆盖指示灯,然后在上下文菜单中选择要导航至的源。
动画共享和定位¶
动画共享意味着一个动画可以为多个或一组节点设置动画。Kanzi 中的所有动画都是共享的。您可以在不同的节点中重用 Animation Clip 和 Animation Data 资源。请参阅 使用关键帧动画。
目标动画从节点的当前属性值中获取动画属性的起始值,并从指定目标节点的当前属性值中获取目标值。要使用目标动画,请为目标节点的属性设置新值并启动动画。由于新动画从当前属性值中获取其新的起始值,即使在正在进行的动画中途启动,动画也能平滑运行。