Skip to content

动画概述

Zephyr3D 引擎为场景中的对象提供了丰富的动画能力,用于表现角色动作、物体形变以及属性随时间变化等动态效果。本章节对 Zephyr3D 的动画类型与基本概念做一个整体介绍,并说明在编辑器中与关键帧动画相关的功能。

支持的动画类型

Zephyr3D 当前支持以下三种主要动画类型:

  1. 骨骼动画(Skeletal Animation)

骨骼动画通过「骨骼(骨架)」驱动网格顶点,实现复杂的角色或可变形物体的动作表现,例如:

  • 角色行走、跑步、攻击
  • 怪物、动物、NPC 的全身动作
  • 需要关节运动的可变形模型(机械臂、翅膀等)

特点

  • 动画数据存储在骨骼关节的变换(位置、旋转、缩放)上
  • 同一套骨骼可以驱动多套共用骨骼结构的模型,实现动画复用
  • 适合复杂角色动画、需要遮罩/混合的情况(如上半身攻击、下半身跑步)
  1. 顶点动画(Vertex Animation)

顶点动画直接记录网格顶点在每一帧的变形结果,用于表现骨骼难以实现或效率较低的形变,例如:

  • 软体物体(果冻、布料)的动态形变
  • 复杂的表面波动(比如特定形态的水面、粘稠流体)
  • 预烘焙的特效模型变形

特点

  • 每一帧都记录顶点位置(有时包含法线等信息)
  • 播放时直接在顶点级别插值或切换
  • 对 CPU 友好,适合在 GPU 上批量实例化播放预烘焙动画
  • 不适合同一模型在运行时大幅度修改动作逻辑(动作是预先烘焙好的)
  1. 关键帧动画(Keyframe Animation)

关键帧动画通过在时间轴上设置「关键帧」,记录属性在某些时间点的值,由系统在关键帧之间进行插值,从而产生连续动画效果。 在 Zephyr3D 中,关键帧动画通常用于:

  • 节点的位置 / 旋转 / 缩放随时间变化(例如门的开关、相机运动)
  • 自定义属性的随时间变化(如灯光强度、镜头参数等,具体取决于实际实现)

特点

  • 使用关键帧编辑器在时间轴上直接可视化操作
  • 易于制作简单的物体运动、镜头轨迹和过场动画
  • 可与骨骼动画、顶点动画共同使用,为场景中的对象和镜头添加额外动态效果

动画与节点的绑定关系

在 Zephyr3D 中,动画是绑定到节点(Node)之上进行管理和播放的。

  • 场景中的所有可见/可控对象(例如模型、灯光、相机、空节点等)都以「节点」的形式存在于场景树中。
  • 动画资源(骨骼动画、顶点动画、关键帧动画)会被关联到一个节点:
  • 骨骼动画:通常绑定到包含骨骼的模型节点上;
  • 顶点动画:绑定到具有对应顶点动画数据的网格节点上;
  • 关键帧动画:可以绑定到任意节点,用于驱动该节点的变换或自定义属性。

绑定后的行为示例:

  • 播放角色节点上的骨骼动画 → 该角色模型随骨骼动作一起变形;
  • 播放某个场景物体节点上的关键帧动画 → 该物体的位置/旋转/缩放按照时间轴变化;
  • 播放相机节点上的关键帧动画 → 相机沿设定路径运动,实现过场镜头或巡游效果。

Released under the MIT License.