楼主: 森友js
1242 0

[数据挖掘理论与案例] 从零开始学习3D可视化之模型动画 [推广有奖]

  • 0关注
  • 0粉丝

大专生

35%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
38.0146
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
273 点
帖子
20
精华
0
在线时间
29 小时
注册时间
2020-10-19
最后登录
2023-7-12

楼主
森友js 发表于 2021-6-9 14:59:48 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
1、 获取模型动画

2、 播放模型动画

3、 停止播放模型动画

在搭建3D可视化场景的过程中,我发现很多模型都有内置动画,很多模型在制作阶段就内置了动画,如果模型有内置动画,可以在 ThingJS 中利用 API 调用播放这些动画。

比如官方示例中通过 dbclick 事件来控制机柜开启,click 事件来控制鼠标右键关闭机柜。





1、获取模型动画
首先通过 animationNames属性获取3D可视化模型都带有有什么动画。
  1. console.log(obj1.animationNames); // 日志窗口中输出模型 obj1 所带有的动画
复制代码

CampusBuilder 模型库中的模型,有的是也是带有动画的,如机柜、人、动物等。可以通过查看 CampusBuilder 中模型的属性,来了解模型是否带有动画。




2、播放模型动画
使用 playAnimation 接口进行动画播放。加载3D可视化园区后,我在3D可视化园区内放置一个机柜来举例,比如给机柜设置开启动画。循环播放动画,通过loopType ,来控制循环类型,比如下面我举例的机柜开门动画。




机柜模型开门动画代码非常的简单,代码如下:
  1. /**

  2. * 创建机柜模型并播放open1动画

  3. */

  4. function playAnim() {

  5.     reset();

  6.     $('.warninfo3').text("创建机柜模型并播放机柜开门动画(open1)");



  7.     cabinet = app.create({

  8.         type: 'Thing',

  9.         name: '机柜',

  10.         url: 'https://www.thingjs.com/static/models/cabinets/47f34ce2c5a14b6d8fd4e80974394a55',

  11.         position: [0, 0, 0],

  12.         angles: [0, 0, 0],

  13.         complete: function () {

  14.             $('.warninfo3').text("机柜创建完成,点击即可播放开门动画(open1)");

  15.             cabinet.on('click', function (ev) {

  16.                 // 观察某物体

  17.                 app.camera.fit(cabinet);

  18.                 cabinet.playAnimation({

  19.                     name: 'open1',

  20.                     // 循环类型

  21.                     // THING.LoopType.Repeat 不断循环

  22.                     // THING.LoopType.PingPong 往复循环

  23.                     loopType: THING.LoopType.no, // 不循环

  24.                 });

  25.             });

  26.         }

  27.     })

  28. }
复制代码

也可以反向播放模型动画。
  1. obj.playAnimation("animation");
复制代码

还可以同时播放多个动画;
  1. obj.playAnimation({
  2.     name: ["open1", "open2"],
  3.     loopType: THING.LoopType.PingPong,
  4.     speed: 0.4
  5. });
复制代码

3、停止播放模型动画
使用 stopAnimation 接口来停止动画播放。

  1. //当物体带有多个动画时,`stopAnimation`接口将会停止所有动画播放
  2. obj.stopAnimation();
  3. //指定停止哪个动画
  4. obj.stopAnimation("open1");
复制代码

模型动画是3D可视化项目开发中的重要组成部分,我自己不会使用3D软件建模所以直接使用ThingJS模型库中的模型,对于没有建模师的团队来说非常方便。模型动画技术的合理使用,可以让3D可视化场景更加生动,交互效果更优,学会设置模型动画后就可以继续3D可视化项目的后续开发了。


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:从零开始学习 从零开始 可视化 animation function

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-8 04:51