摄像机飞行视角是点睛之笔!ThingJS助力3D可视化管理
如何给三维场景安装一双眼睛,让它带着我们不断探索更多场景,实现可视化管理?
一个场景的动画,在初始界面都会有一个默认视角,这就是摄像机的原始视角,我们可以控制它的角度——飞到正前方、顶部俯视、飞到物体左侧、飞到物体后上方、飞到物体右上角……从不同的角度来近距离接触3D场景,除此之外,ThingJS还实现了动态切换的操作。
这么多角度该实现起来有多复杂?如何在一张平面上随时切换摄影机飞行的角度?一切都无需担心,我们有官方示例和动画demo,分分钟实现你想要的效果。
切换场景层级
一般来说,读取的场景路径都和模模搭同步,之后在ThingJS平台开发需要的3D功能。如果要让场景元素活动起来,而不仅仅是静止不动的,就要有一个场景内层级切换动作。
在ThingJS中,注册了层级切换事件,我们就能够在点击物体后,视角进行聚焦,对应到物体并实现“双击”建筑进入楼层功能。摄像机跟随着物体活动,在建筑内不断变换视角,达到层次丰富的可视化效果。
ThingJS使用的是JavaScript开发语言,如果把物体当做一个建筑体的话,进入层级指的是进入建筑;当摄像机飞行到相应物体,等于进入层级。我们默认进入物体层级时会触发 EnterLevel 事件。
跟随物体移动
具体如何实现飞行呢?需要设置一个飞行的动作,并能够通过飞行时长和飞行角度来实现更顺畅的到达效果。
飞行到物体的过程中,ThingJS采用 camera 的 flyTo() 方法,让摄像机从当前位置,飞行到目标位置,根据效果来增加 time(飞行时间)等参数来控制飞行过程的速度。当摄像机飞行到相应物体之后,将触发 THING.EventType.LevelFlyEnd 事件,迫使跟随物体的视角停留,一般来说,物联网场景都要求视角停留,如停在顶牌、读取实时数据。
最后,通过ThingJS API接入相对应的物联网设备,利用飞行结束回调场景对应的终点行为,一切就能动起来!
代码示例
var app = new THING.App({ url: 'https://www.thingjs.com/static/models/storehouse' // 场景地址 }); //注册层级切换事件 app.on('load', function (ev) { var campus = ev.campus; app.level.change(campus); }); app.on('load', function (ev) { var campus = ev.campus; app.level.change(campus); new THING.widget.Button('所有Thing', function () { recover(); // 自定义进入层级的飞行相应物体 app.on(THING.EventType.EnterLevel, '.Thing', function (ev) { // 摄像机飞行到物体 app.camera.flyTo({ 'object': ev.object, 'xAngle': 90, 'yAngle': 0, 'time': 1 * 1000, 'complete': function () { console.log('Thing类物体自定义层级飞行结束'); } }); }, '进入Thing类物体层级自定义层级飞行'); // 层级切换飞行结束回调 app.on(THING.EventType.LevelFlyEnd, '*', function (ev) { console.clear(); if (ev.previous) { console.log('上一层级:' + ev.previous.name) } console.log('[' + ev.object.name + '] 物体层级飞行结束'); });
摄像机功能是一双很明亮的3D眼睛,它是无限扩展的,基于官方示例我们可以定制属于自己的视觉效果!
- Unity 3d 实现物体跟随摄像机视野运动
- Scaleform 中的 3D视角相关研究
- unity中鼠标左键控制摄像机视角上下左右移动
- Unity 3D 正交(Orthographic)摄像机尺寸学习笔记
- Unity3D鼠标控制摄像机“左右移动控制视角+WASD键盘控制前后左右+空格键抬升高度”脚本
- ThingJS 3D框架支持Ajax方法,看代码点这里
- Android官网培训课:运用投影和摄像机视角
- Unity 3D - Camera Play [摄像机渲染特效]
- Unity固定视角摄像机
- Cocos Creator 3D 打砖块教程(二) | 子弹发射与摄像机平滑移动
- 摄像机视角优化
- Flash与3D编程探秘(六)- 全方位旋转摄像机
- CSS进阶:试试酷炫的 3D 视角
- [Unity]将摄像机移动到Scene视角位置
- Unity 3D Hololens 第三人称视角Spectator View 实现及踩坑记录
- 如何操作3D中的摄像机
- Unith3D判断物体是否在视角内
- unity中让摄像机移动到鼠标点击的位置和鼠标控制平移视角
- GameBryo中全视角第三人称摄像机的实现
- 【Unity 3D】游戏实例——摄像机切换镜头