1. 动画介绍
无论动画如何实现,它都必须考虑所需的动作、时间、产生所需流动性所需的帧数以及序列中的关键点。这个介绍应该有助于理解Babylon.js是如何进行动画的,以及它们是如何实现的。
动画由一系列图像、帧生成,这些图像、帧一个接一个地显示。这一系列的帧可以是单独的绘图,也可以是定格动画,即逐帧略微移动的模型照片
在设计阶段,创作者需要考虑画面序列应该花费多长时间以及需要多流畅。运动越平滑,需要的帧就越多。一旦知道了帧数,就可以推断出每秒的动画数量。此外,了解对象的起始位置和结束位置以及需要多少帧将决定对象每帧的移动。
在Babylon.js 中,就像在定格动画中一样,单个对象必须一个接一个地移动。我们既可以将物体的整个完成的片段称为一段动画,也可以把动画当作一个特定的对象,它详细说明了转换、定时和循环,然后可以将这个“动画”应用于任何网格对象、摄像机或光线。并在动画数据中添加了关键帧的值,Babylon.js 将计算帧之间要发生的转换。
2. 动画文档中使用的术语
以下是有关动画的专业术语:
- 执行者(Performer):可执行动画的物体,例如网格物体、灯光或摄像机。Performer一般为场景内的一个节点(一般比节点更宽泛一些)。Performer 还可以是着色器上的颜色属性值、灯光的强度属性、另一个动画上的重量属性。
- 帧(Frame):动画帧,不是场景的渲染帧。
- 动画(Animation):类似于戏剧或电影的剧本,但仅为Performer的一个属性。它包括
- 1 要更改的属性,例如位置、强度或旋转的值
- 2 属性变化率(单位:秒帧)
- 3 正在变化的属性的类型,例如矢量、浮点数或矩阵
- 4 循环条件
- 5 关键帧上属性的值
- 脚本执行者(Scripted Performer):Performer+由Performer执行的所有动画
- 性能(Performance):Scripted Performer按照脚本执行的操作。在Babylon.js中,是一个名为animatable的对象。
- 剪辑(Clip):表演的可视化结果。在实践中,有两种类型的剪辑——游戏剪辑和电影剪辑。在电影剪辑中,用户对相机没有控制权,并且根据剪辑创建者设置的相机动画来观看剪辑。在游戏剪辑中,用户能够根据场景中使用的相机来移动。-- 除非这个词可能会引起混淆,否则动画章节的整个文档都会使用“剪辑”一词。
- 卡通(Cartoon):一定时间间隔播放的一系列剪辑片段。