3869|5

37

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

从零开始学习3D可视化之模型动画 [复制链接]

1、 获取模型动画

2、 播放模型动画

3、 停止播放模型动画

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

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

 

1、获取模型动画

首先通过 animationNames属性获取3D可视化模型都带有有什么动画。

console.log(obj1.animationNames); // 日志窗口中输出模型 obj1 所带有的动画

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

 

2、播放模型动画

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

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

/**
 * 创建机柜模型并播放open1动画
 */
function playAnim() {
    reset();
    $('.warninfo3').text("创建机柜模型并播放机柜开门动画(open1)");

    cabinet = app.create({
        type: 'Thing',
        name: '机柜',
        url: 'https://www.thingjs.com/static/models/cabinets/47f34ce2c5a14b6d8fd4e80974394a55',
        position: [0, 0, 0],
        angles: [0, 0, 0],
        complete: function () {
            $('.warninfo3').text("机柜创建完成,点击即可播放开门动画(open1)");
            cabinet.on('click', function (ev) {
                // 观察某物体
                app.camera.fit(cabinet);
                cabinet.playAnimation({
                    name: 'open1',
                    // 循环类型
                    // THING.LoopType.Repeat 不断循环
                    // THING.LoopType.PingPong 往复循环
                    loopType: THING.LoopType.no, // 不循环
                });
            });
        }
    })
}

也可以反向播放模型动画。

obj.playAnimation("animation");

还可以同时播放多个动画;

 
obj.playAnimation({
    name: ["open1", "open2"],
    loopType: THING.LoopType.PingPong,
    speed: 0.4
}); 

 

 

3、停止播放模型动画

使用 stopAnimation 接口来停止动画播放。

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

 

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

此帖出自传感器论坛

最新回复

666,用代码写3D动画,真羡慕啊!这是高手!!!   详情 回复 发表于 2024-9-1 20:08

赞赏

1

查看全部赞赏

点赞(1) 关注
 
 

回复
举报

1942

帖子

2

TA的资源

版主

沙发
 

666,用代码写3D动画,真羡慕啊!

此帖出自传感器论坛
 
 
 

回复

37

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
w494143467 发表于 2021-6-9 16:11 666,用代码写3D动画,真羡慕啊!

此帖出自传感器论坛
 
 
 

回复

2万

帖子

340

TA的资源

版主

4
 

这种3D模型可以做电力机柜那种么

不太明白,还需要这么多代码

动画演示那种吧

不是设计?

就是看看

此帖出自传感器论坛
 
 
 

回复

37

帖子

0

TA的资源

一粒金砂(中级)

5
 
qwqwqw2088 发表于 2021-6-10 08:33 这种3D模型可以做电力机柜那种么 不太明白,还需要这么多代码 动画演示那种吧 不是设计? 就是 ...

可以做   可以点击官网查看或者联系我们

此帖出自传感器论坛
 
 
 

回复

419

帖子

0

TA的资源

纯净的硅(中级)

6
 

666,用代码写3D动画,真羡慕啊!这是高手!!!

此帖出自传感器论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表