UE版本:5.1
介绍
本文以在墨尔本和悉尼这两个城市间为例,介绍如何使用虚幻5引擎和Cesium for Unreal插件在这两个城市间进行飞行移动,其中墨尔本和悉尼城市的倾斜摄影是Cesium官方仓库中自带的资产,我们引入到自己的Cesium账号中即可使用。本文介绍第一种飞行方法,下一篇文章介绍第二种飞行方法。
效果
步骤
一、实现飞行效果
首先新建一个空白工程并命名
打开工程后新建一个空白关卡
我将关卡命名为“Globe”
启用Cesium插件并重启
项目设置中将“Blobe”作为开始和默认地图
打开关卡“Globe”
点击连接Cesium
点击“Allow”
回到虚幻编辑器中添加Cesium Map和Cesium Sunsky
再次连接到Cesium ion
在资产仓库中添加墨尔本城市的倾斜摄影
在虚幻编辑器中将该资产添加到关卡
在大纲中双击“Melbource Photogrammety”预览
在大纲中选中“CesiumGeoreference”,然后点击如下按钮将地理参考系原点定在这里
如果视口变黑的话可以通过调整SunSky的SolarTime来改变时间,从而调到白天
接下来我们将Cesium地理参考系搬到悉尼上空。
首先在大纲中选中“CesiumGeoreference”,然后设置经纬高为(-33.871799,151.206696,3000.0)
添加一个“Dynamic Pawn”
打开关卡蓝图
在大纲中选中“Dynamic Pawn”,然后在关卡蓝图的事件图表中创建一个对“Dynamic Pawn”的引用
创建“Fly to Location Longitude Latitude Height”(在UE4中貌似叫“Inaccurate Fly to
Location Longitude Latitude Height”)
该节点中的最后一个引脚“Can Interrupt by Moving”表示是否可以在飞行当中可以被鼠标键盘等标准操作打断
然后创建一个三维向量节点,节点中xyz的值就是墨尔本的经纬高
按下F键开始飞行,我们通过“Yaw at Destination”和“Pitch at Destination”引脚分别设置“Dynamic Pawn”飞行过程中的绕Y轴和X轴旋转的角度。
未解决飞行到目的地然后“Dynamic Pawn”自动往上飞的情况,我们需要在世界场景设置中取消勾选“启用场景边界检查”
此时运行效果如下:
二、自定义飞行曲线
在大纲中选中“DynamicPawn”,在细节面板中可以看到一些曲线设置
双击打开第一个曲线,这个曲线是用来控制“DynamicPawn”在飞行过程中,飞行高度随时间的变化情况。
横坐标是飞行时间,纵坐标是飞行高度 ,(横纵坐标均已归一化)
双击打开第二条曲线,这条曲线是用来控制“Dynamic Pawn”在飞行过程中的飞行速度随时间的变化关系。
横坐标是飞行时间,纵坐标是飞行进度。
双击打开第三条曲线,该曲线用来控制“Dynamic Pawn”在飞行过程中飞行距离与最大飞行高度的变化关系
横坐标是飞行距离,纵坐标是最大飞行高度,单位均为米
如果我们想使用自定义曲线的话,可以在内容文件夹中新建一个曲线
曲线类选择“CurveFloat”
这里命名为“Curve_MyAltitudeProfile”,准备用该自定义曲线替换默认的第一条控制飞行高度随时间变化的曲线。双击打开该文件
在画布中新建三个关键帧,坐标分别为(0,0)、(0.5,1)和(1,0)
点击如下按钮使曲线变得平滑
如果我想保持在最大高度一段时间可以再添加一个关键帧
曲线编辑完毕后,将该文件拖入来替换默认的曲线文件
在剩下的两个参数中,“Fly to Duration”是用来控制飞行的时长
最后一个参数应该是用来控制“DynamicPawn”飞行过程中的插值时间,下图设置的就是每0.01s“DynamicPawn”就会更新一下当前的位置
最终的运行效果如文章开头所示。