threejs 机械虚拟装配案例(播放)

2023-12-19

参考资料: threejs中文网

threejs qq交流群:814702116

机械虚拟装配案例(播放)

如果你想做一个产品、机械、建筑的虚拟装配动画,可以美术先在建模软件中生成关键帧动画的数据,然后通过threejs加载模型,播放动画数据即可。

本节课用到的threejs知识点在前面几小节基本都详细说明过,你可以先尝试自己能否实现,再听课。

动画不循环播放

该案例动画是一个虚拟装配的动画,如果你不需要循环播放,可以关闭掉。

const clipAction = mixer.clipAction(clip);
//不循环播放
clipAction.loop = THREE.LoopOnce; 

动画开始设置暂停

执行 .play() 动画默认播放,在按钮控制播放暂停之前,可以先设置 .paused = true 动画预先暂停。

const clipAction = mixer.clipAction(clip); //创建动画clipAction对象
clipAction.play(); //播放动画
clipAction.paused = true; //暂停状态

按钮控制虚拟装配播放、暂停

<div id="bu" class="bu">播放</div>

.paused 默认值false,动画正常执行,如果你想暂停正在执行的动画可以把 .paused 设置为true,对于暂停执行的动画,你把 .paused 设置为false,动画会接着暂停的位置继续执行。

const bu = document.getElementById('bu');
bu.addEventListener('click',function(){
    // AnimationAction.paused默认值false,设置为true,可以临时暂停动画
    if (clipAction.paused) {//暂停状态
        clipAction.paused = false;//切换为播放状态
        bu.innerHTML='暂停';// 如果改变为播放状态,按钮文字设置为“暂停”
      } else {//播放状态
        clipAction.paused = true;//切换为暂停状态
        bu.innerHTML='播放';// 如果改变为暂停状态,按钮文字设置为“播放”
      }
})

动画播放结束,按钮样式恢复到播放

动画播放完成以后,UI按钮的样式还是停留在“暂停”的状态,需要恢复到“播放”样式,提示用户,可以再次点击播放。

clipAction.loop = THREE.LoopOnce; 
// 动画播放完成事件
mixer.addEventListener('finished', function () {
    bu.innerHTML = '播放';//播放完成,按钮显示为“播放”
});

执行 .reset(); 动画重新进入新一次执行状态,这样播放按钮可以再次使用。

// 动画播放完成事件
mixer.addEventListener('finished', function () {
    bu.innerHTML = '播放';//播放完成,按钮显示为“播放”
    clipAction.reset(); //重新开始新的动画播放
    clipAction.paused = true; //切换为暂停状态
});

拖动条控制播放倍速

import {GUI} from 'three/addons/libs/lil-gui.module.min.js';
const gui = new GUI(); //创建GUI对象
// 0~2倍速之间调节
gui.add(clipAction, 'timeScale', 0, 2).step(0.1).name('倍速');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

threejs 机械虚拟装配案例(播放) 的相关文章

  • THREE.js 正交相机缩放到鼠标点

    我正在为我们的 THREE js 应用程序开发正交相机 本质上 该相机将以 2D 方式向用户呈现场景 用户可以选择在 2D 和 3D 相机之间切换 该相机将允许平移和缩放到鼠标点 我可以进行平移 也可以进行缩放 但不能缩放到鼠标点 这是我的
  • Three.js 的外观似乎被翻转了

    我这里有一个演示 测试场地 http www myuplay com game test html or Backup http direct myuplay com game test html 由于某种原因 即使鼠标矢量是正确的 我的对
  • Three.js - 从点缩放圆柱体

    是否可以从特定点开始增加 Y 轴上圆柱体的比例 与圆柱体从其原点向上和向下生长到新比例不同 它只是像条形图一样从顶部向上 向下生长 当前代码 function animate render cylinder scale y 0 1 requ
  • 使用 OrbitControls 时锁定 x 轴旋转 - Three.js

    使用 OrbitControls 时锁定 x 轴旋转是否可行 目前我有一个挂在绳子上的圣诞星的对象模型 我希望它仅水平旋转 对于您的 OrbitControls 实例集 controls minPolarAngle Math PI 2 co
  • 该浏览器无法识别 React Three Fiber 网格标签

    我正在关注 Youtube 上的 3d 作品集教程 但遇到了这个错误 在这里 我尝试渲染网格 但控制台显示警告 此元素在此浏览器中无法识别 浏览器正在渲染其余部分 但这部分代码没有被渲染 这是代码块 const Computers gt c
  • Three.js ShaderMaterial 灯光问题

    你好 这是我的代码的一部分 地球仪 function createGlobe var normalMap THREE ImageUtils loadTexture images earth normal 2048 jpg var surfa
  • 如何将 3D 模型从 Cinema4D 导出到 Three.js?

    如果我有一个网格建模4D影院 我怎样才能将其导出three js http github com mrdoob three js3D JS 引擎 另外 导出材料也很方便colors for 多边形选择 为此 我刚刚为 Cinema4D 编写
  • 计算相机近平面和远平面边界

    我正在尝试执行中提到的计算使用 THREE Frustum 计算近 远平面顶点 https stackoverflow com questions 12018710 calculate near far plane vertices usi
  • 如何将 SketchUp 模型导出到 Three.js?

    我通过谷歌创建了一个模型SketchUp 我想将其导出到three js节省一些时间 因为我想使用SketchUp比three js 那么有人可以告诉我该怎么做吗 非常感谢 您可以从 SketcUp 导出 collada DAE 然后使用
  • Three.jsmaterialLoader不加载嵌入的纹理图像

    我使用 Material toJSON 提供的方法导出 Three js 材质 结果如下 metadata version 4 5 type Material generator Material toJSON uuid 8E6F9A32
  • Three.js 支持波斯语/阿拉伯语文本

    我需要以波斯语 阿拉伯语显示一些文本 我加载了包含字符的字体 并使用 TextGeometry 在场景上创建文本 var loader new THREE FontLoader loader load B Zar Regular js fu
  • 如何在 Three.js 中使用反射?

    我想在带有 Three js 的 WebGL 页面中拥有一个反射立方体表面 它应该类似于手机显示屏 反射一些光 但它仍然必须是黑色的 我创建了一个反射立方体 以及反射球体 的示例 并附有详细的注释 现场版本位于 http stemkoski
  • 从数组 THREE.js 创建纹理

    我正在研究地形生成器 但我不知道如何处理颜色 我希望能够生成一张占据整个 PlaneGeometry 的图像 我的问题是如何根据我的高度图创建一个覆盖整个 PlaneGeometry 没有环绕 的单个图像 我可以想到一种方法 但我不确定它是
  • Three.js 通过加载模型上的材质名称为材质添加边框

    是否可以在材料周围添加边框 如图所示 我可以通过以下代码设置材质颜色 object traverse function child if child instanceof THREE Mesh child material color se
  • 星系模拟:更改点的颜色并在鼠标悬停时显示文本

    我正在尝试创建模拟 https riteshsingh github io galaxies 4673 个最近星系的位置 星系是点 我想为鼠标悬停时的点着色并加载星系的名称 我花了很多天试图实现它 我可以更改颜色以及进行基本的光线投射 但是
  • Three.js 中几何图形的事件处理? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在寻找对 Three js 中的几何图形 相机 灯光 我们添加到场景中的东西 进行某种事件处理 我用谷歌搜索但找不到任何相关内容
  • 在 React 中渲染 Three.js 元素?

    我正在尝试制作一个渲染 Three js 场景的 React 组件 但是 每当我尝试安装组件而不是看到正在渲染的任何类型的场景时 我只看到文本 object HTMLCanvasElement 正在显示 这是我的组件 import Reac
  • Three.js:基于图像的光照(IBL)

    I m searching to add an IBL to my scene and objects But I can t find anything on the web There are some examples with an
  • 如何计算给定坐标处相机可见矩形的大小? [复制]

    这个问题在这里已经有答案了 我制作了一个小型的 Three js 应用程序 它将一堆圆圈从画布的底部移动到顶部 let renderer scene light circles camera initialize animate funct
  • 在 Webpack 中使用 Three.js 以便我可以使用 OrbitControls 的正确方法是什么?

    在我的 webpack 配置中 resolve alias three path resolve node modules three build three js OrbitControls path resolve node modul

随机推荐

  • 基于SpringBoot+Vue的科研项目验收管理系统设计实现(源码+lw+部署文档+讲解等)

    文章目录 前言 详细视频演示 具体实现截图 技术栈 后端框架SpringBoot 前端框架Vue 持久层框架MyBaitsPlus 系统测试 系统测试目的
  • AWS解决方案架构师学习与备考

    系列文章目录 送书第一期 用户画像 平台构建与业务实践 送书活动之抽奖工具的打造 获取博客评论用户抽取幸运中奖者 送书第二期 Spring Cloud Alibaba核心技术与实战案例 送书第三期 深入浅出Java虚拟机 送书第四期 AI时
  • 2015,TEVC,Adaptive MOPSO Based on Parallel Cell Coordinate System

    Abstract 在多目标粒子群优化 MOPSO 的设计中 管理收敛性和多样性是至关重要的 以搜索真实Pareto最优前沿的准确和良好分布的近似 粒子群优化算法由于其快速收敛性 在进化过程中会导致多样性的快速丢失 现有的MOPSOs在 le
  • OneNote笔记使用记录

    1 快捷键 2 快速设置行距 Ctrl 1 设置一倍行距 Ctrl 2 两倍行距 Ctrl 5 1 5 倍行距 3 切换样式标题 Ctrl Alt 1 标题 1 Ctrl Alt 2 标题 2 Ctrl Alt 3 标题 3 Ctrl Sh
  • vtk用户指南 第十一章 随时间变化的数据

    11 1时序支持简介 创建可视化工具包的目的是允许人们可视化 从而探索具有空间范围的数据中的特征 它允许人们回答一些问题 比如 在这些数据中 最大价值的区域在哪里 它们有什么形状和价值 以及 这些形状是如何分布的 VTK提供了大量的技术来显
  • 阿里云一二级域名配置

    一级域名配置 二级域名配置
  • 2023中国品牌节金谱奖荣誉发布 酷开科技获颁OTT行业科技创新奖

    11月17日 19日 以 复苏与腾飞 为主题的2023第十七届中国品牌节 在杭州市云栖小镇国际会展中心成功举行 在18日晚间的荣耀盛典上 TopBrand 2023中国品牌节金谱奖 荣誉发布 酷开科技斩获OTT行业科技创新奖 酷开科技作为O
  • 面试150-13(Leetcode238除自身以外数组的乘积)

    代码 class Solution public int productExceptSelf int nums int n nums length int res new int n int product 1 int zerocnt 0
  • 再看参数校验

    作者简介 大家好 我是smart哥 前中兴通讯 美团架构师 现某互联网公司CTO 联系qq 184480602 加我进群 大家一起学习 一起进步 一起对抗互联网寒冬 写一个接口 大致就几个步骤 参数校验 编写Service Dao SQL
  • 如何开发一个免费的App

    开发一个免费App意味着能够在项目启动初期 以更低成本的方式进行业务的迭代和市场化验证 互联网发展到2023年 尤其在生成式AI及大模型技术 跃进式 增长的背景下 一个创新式商业模式的起步变得异常艰难 但如果用好工具 那么不仅能事半功倍 还
  • 网络安全设备概念的熟悉和学习

    什么是网络安全 网络安全技术有哪些 Web应用防火墙 WAF 为什么需要WAF 什么是WAF 与传统防火墙的区别 WAF不是全能的 入侵检测系统 IDS 什么是IDS 跟防火墙的比较 部署位置选择
  • 【网络安全】—Shell编程入门(1)

    文章目录 基础 变量概念介绍 特殊变量进阶 数值计算实践 条件测试比较 条件判断语句 流程控制语句 循环语句应用
  • threejs 解析外部模型关键帧动画

    参考资料 threejs中文网 threejs qq交流群 814702116 解析外部模型关键帧动画 前面几节课 用到的关键帧动画 是借助threejs提供的两个类 KeyframeTrack AnimationClip 自己写代码实现
  • SQL Server 大数据量分页

    1 ROW NUMBER OVER 方式 SQL2012以下推荐使用 SELECT FROM SELECT ROW NUMBER OVER ORDER BY menuId AS RowId FROM sys menu AS r WHERE
  • “jar“:CreateProcess error = 2,系统找不到指定的文件

    起因 系统配置的java环境为jar 或java环境不完整导致 修复 将jar exe拷贝至java环境的bin目录中即可
  • c语言:指针作为参数传递

    探究实参与形参它们相互独立 由于主调函数的变量 a b 与被调函数的形参 x y 它们相互独立 函数 swap 可以修改变量 x y 但是却无法影响到主调函数中的 a b 现在利用取地址运算符 分别打印它们的首地址 让我们从内存的角度 来分
  • 使用小程序实现App灰度测试的好处

    灰度测试 Gray Testing 是一种软件测试策略 也被称为渐进性测试或部分上线测试 在灰度测试中 新的软件版本或功能并非一次性推送给所有用户 而是仅在一小部分用户中进行测试 这可以帮助开发团队逐步暴露新功能或版本 以便及时发现和修复问
  • 网络安全基础知识

    1 什么是防火墙 什么是堡垒主机 什么是DMZ 防火墙是在两个网络之间强制实施访问控制策略的一个系统或一组系统 堡垒主机是一种配置了安全防范措施的网络上的计算机 堡垒主机为网络之间的通信提供了一个阻塞点 也可以说 如果没有堡垒主机 网络间将
  • Matlab-绘图及其位置摆放

    一 绘图函数 1 绘制二维图形 1 1 plot 函数的应用格式 1 plot x 当x 为一向量时 以x 元素的值为纵坐标 x 的序号为横坐标值绘制曲线 当x 为一实矩阵时 则以其序号为横坐标 按列绘制每列元素值相对于其序号的曲线 例如
  • threejs 机械虚拟装配案例(播放)

    参考资料 threejs中文网 threejs qq交流群 814702116 机械虚拟装配案例 播放 如果你想做一个产品 机械 建筑的虚拟装配动画 可以美术先在建模软件中生成关键帧动画的数据 然后通过threejs加载模型 播放动画数据即