You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Model Viewer多并行动画问题:获取Mixer实例后动画无法播放

解决Model Viewer多动画并行播放问题

你遇到的问题核心是虽然拿到了Mixer和动画剪辑,但缺少几个关键步骤让动画真正运行起来,试试下面的调整:

  • 验证目标动画剪辑
    获取到clips[0]后,先打印clips[0].name确认这是你要播放的动画,避免模型动画的索引或命名和预期不符。

  • 手动配置动画关键参数
    默认动画的权重、循环模式可能未正确设置,显式指定这些参数:

    const action = scene.mixer.clipAction(clips[0]);
    action.setLoop(THREE.LoopRepeat, Infinity); // 按需设置循环次数,这里设为无限循环
    action.clampWhenFinished = false;
    action.setEffectiveWeight(1); // 强制动画权重拉满
    action.play();
    
  • 确保Mixer持续更新
    Model Viewer内部的渲染循环可能不会自动同步你手动创建的动画动作,需要主动触发Mixer的更新:

    let prevTime = performance.now();
    function updateMixer() {
      const currentTime = performance.now();
      const deltaTime = (currentTime - prevTime) / 1000;
      scene.mixer.update(deltaTime);
      prevTime = currentTime;
      requestAnimationFrame(updateMixer);
    }
    updateMixer();
    
  • 停止冲突的默认动画
    如果Model Viewer已经在播放内置动画,新动作可能被压制,先清空现有动画:

    scene.mixer.stopAllAction();
    // 再启动目标动画
    scene.mixer.clipAction(clips[0]).play();
    

注意:依赖symbol.description这种非公开API存在风险,Model Viewer的内部结构可能随版本更新变化,后续大概率会失效。如果业务允许,建议直接用Three.js加载模型来获得更灵活的动画控制权,或者等待官方推出多动画并行的正式支持。

内容的提问来源于stack exchange,提问作者Beshoy FD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 16:12:01