分层动画状态机原理¶
数据 schema、动作/守卫引用和绑定方式见 API reference。
定义与实例¶
状态机定义描述变量、并行层、状态和转移,资源重载时载入定义注册表。运行实例保存当前状态、 状态时长、变量值和混合进度,不能把这些状态写回共享定义。 文件标识与机器的逻辑标识独立,宿主根据逻辑标识绑定实例。
状态推进与动作¶
每层有自己的状态图,tick 根据守卫、触发器和完成条件选择转移,并在相应阶段执行进入、退出、 更新和转移动作。内容引用代码侧注册的函数标识,避免在数据加载时执行任意代码。 瞬态触发器在 tick 周期结束清除,普通变量继续留在实例中。
姿态混合¶
多个层按确定顺序合成姿态。基础层给出基准,累加层叠加局部动作,覆盖层按骨骼掩码替换指定范围。 转移期间在前后状态姿态之间按时间混合;渲染帧使用 partial tick 平滑采样,而非额外推进逻辑状态。 结果包含骨骼局部变换、morph 权重和材质帧,之后进入统一的骨骼、IK 与物理流程。
状态机负责动作时序;简单上下文到模型变体的选择可由 Multiplexer 承担。 两者可以组合,模型变体决定使用哪个实例,状态机决定该实例怎样运动。