学习三维动画(从零开始学习3D可视化之模型动画)
学习三维动画(从零开始学习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动画functionplayAnim(){reset();(39;。warninfo339;)。text(创建机柜模型并播放机柜开门动画(open1));cabinetapp。create({type:39;Thing39;,name:39;机柜39;,url:39;https:www。thingjs。comstaticmodelscabinets47f34ce2c5a14b6d8fd4e80974394a5539;,position:〔0,0,0〕,angles:〔0,0,0〕,complete:function(){(39;。warninfo339;)。text(机柜创建完成,点击即可播放开门动画(open1));cabinet。on(39;click39;,function(ev){观察某物体app。camera。fit(cabinet);cabinet。playAnimation({name:39;open139;,循环类型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可视化项目的后续开发了。