Three.js中文网 Three.js中文网
首页
免费视频
系统课 (opens new window)
  • Three.js基础课程
  • Vue3+Threejs 3D可视化
  • Threejs进阶课程
  • 展厅3D预览漫游
  • Threejs Shader
  • Blender建模基础
  • Three.js基础课程(旧版本) (opens new window)
  • 文章
WebGPU教程
  • WebGL教程
  • WebGL教程(旧版本) (opens new window)
3D案例
  • 本站部署(打开快) (opens new window)
  • 原英文官网文档 (opens new window)
首页
免费视频
系统课 (opens new window)
  • Three.js基础课程
  • Vue3+Threejs 3D可视化
  • Threejs进阶课程
  • 展厅3D预览漫游
  • Threejs Shader
  • Blender建模基础
  • Three.js基础课程(旧版本) (opens new window)
  • 文章
WebGPU教程
  • WebGL教程
  • WebGL教程(旧版本) (opens new window)
3D案例
  • 本站部署(打开快) (opens new window)
  • 原英文官网文档 (opens new window)
Web3D系统课程视频
  • 0.学前说明

  • 1.Three.js快速入门

  • 2.几何体BufferGeometry

  • 3.模型对象、材质

  • 4.层级模型

  • 5.顶点UV坐标、纹理贴图

  • 6.加载外部三维模型(gltf)

  • 7.PBR材质与纹理贴图

  • 8.渲染器和前端UI界面

  • 9.生成曲线、几何体

  • 10.相机基础

  • 11.光源和阴影

  • 12.精灵模型Sprite

  • 13.后处理EffectComposer

  • 14.射线拾取模型

  • 15.场景标注标签信息

  • 16.关键帧动画

    • 1. 关键帧动画
    • 2. 动画播放(暂停、倍速、循环)
    • 3. 动画播放(拖动任意时间状态)
    • 4. 解析外部模型关键帧动画
    • 5. 机械虚拟装配案例(播放)
    • 6. 虚拟装配(任意时间定位)
      • 7. 变形动画原理
      • 8. 变形动画(定制人物胖瘦)
      • 9. 骨骼关节Bone
      • 10. 查看外部模型骨骼动画
      • 11. 骨骼动画不同动作切换
    • 17.动画库tween.js

    • Three.js教程
    • 16.关键帧动画
    郭隆邦
    2023-03-24
    目录

    6. 虚拟装配(任意时间定位)

    # 虚拟装配(任意时间定位)

    继续上节课关于虚拟装配动画的讲解,增加一个拖动条,用来查看任意时间模型动画状态。

    关于关键帧动画,通过拖动条查看动画任意时间状态的方法,前面16.3小节讲解过,可以直接参考。

    # 属性.duration获取动画默认的执行时间

    如果你不知道关键帧动画的执行时间,可以通过加载模型返回对象AnimationClip的.duration属性获得。

    const clip = gltf.animations[0];
    const duration = clip.duration;//默认持续时间
    

    # 拖动条查看任意时间动画状态

    import {GUI} from 'three/addons/libs/lil-gui.module.min.js';
    const gui = new GUI(); //创建GUI对象
    
    clipAction.paused = true;//暂停状态拖动拖动条
    
    // 拖动条查看动画任何时刻模型状态
    gui.add(clipAction,'time',0,duration).step(0.1).name('拖动');
    

    # 拖动条与播放按钮功能组合

    如果动画刚好处于播放状态,你拖动拖动条,会受到动画播放的影响,可以通过代码暂停动画。

    播放状态,按钮显示文字是“暂停”,把按钮样式也更改下。

    // 拖动条查看动画任何时刻模型状态
    gui.add(clipAction, 'time', 0, duration).step(0.1).name('拖动').onChange(function () {
        //如果动画处于播放状态会影响拖动条时间定位
        if (!clipAction.paused){
            clipAction.paused = true; //切换为暂停状态
            bu.innerHTML = '播放'; //修改按钮样式
        }
    });
    
    5. 机械虚拟装配案例(播放)
    7. 变形动画原理

    ← 5. 机械虚拟装配案例(播放) 7. 变形动画原理→

    Theme by Vdoing | Copyright © 2016-2025 豫ICP备16004767号-2
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式