用途:专注 Three.js 动画本身的实现与调试,包括片段选择、mixer 归属、混合、骨骼与 morph 驱动以及时间步长正确性。加载模型请用 threejs-loaders;若主要问题是游戏状态或战斗设计而非动画 API,请用 web-game-development。
适用时机:通过 AnimationMixer 播放、暂停、跳转、循环或混合 AnimationClip;把 GLTF 片段挂到已加载场景并随模型生命周期清理 mixer;驱动骨骼、morph target 影响或轻量程序化运动;修复 action 不播放、过渡跳变、随帧率加速或泄漏等问题。
用法要点:每个动画根只建一个 mixer,每帧用 delta 秒推进一次(clock.getDelta()),不要用固定帧增量;按语义名称保留 action 引用,勿盲索引导出的片段数组,因为资源版本可能重排片段。过渡时先 reset 传入 action 再播放,仅在片段共享兼容姿态/骨架时使用 crossFadeTo;一次性动作监听 mixer 的 finished 事件后回到已知 idle。选择最窄机制:已有变换关键帧用 AnimationClip,导入角色动画用 mixer+clipAction,每帧 idle 或 UI 响应用 delta 程序化更新,表情或网格变形用 morphTargetInfluences,运行时骨骼调整在 mixer.update 之后应用以免被覆盖。永久移除动画根时调用 mixer.stopAllAction() 和 mixer.uncacheRoot(root),共享根勿误清理。
验证:在低帧率与高帧率下测试,时长和位移应一致;测试过渡打断、一次性完成与快速切换;确认命名片段存在并在资源导出变化时给出有用报错;反复挂载/卸载场景验证无监听器或 mixer action 增长。
限制:资料未提供收费、价格、平台与完整 API 覆盖信息;高开销 IK、物理或重定向需自行测量预算,克隆骨架或 mixer 前应检查共享骨架与材质归属。