1.实现目标
基于CesiumForUnreal的Dynamic Pawn
实现飞行效果GIF动图:
2.实现过程
实现原理较为简单,基于CesiumForUnreal插件中DynamicPawn中的Camera实现相关功能。其中FlyTo直接通过当前相机位置姿态和目的地相机位置姿态进行插值即可,但DynamicPawn中自带的飞行效果有曲线飞行效果,更加拟合地球。
由于DynamicPawn
中已经有FlyToLocationECEF
、FlyToLocationLongitudeLatitudeHeight
两个函数,因此这里直接实现线性的FlyToLocationUnreal功能。
2.1 FlyTo实现原理与代码
相机线性飞行的原理即对相机的起点和终点进行插值。若相机是以弹簧臂
进行控制的话,在飞行的过程中,需要通过设置弹簧臂的位置和姿态进行简介调整。
但CesiumForUnreal插件中的DynamicPawn
中并没有弹簧臂组件,其中鼠标滚轮不是控制弹簧臂的长度,而是控制飞行的速度。
FlyToLocationUnreal
具体实现原理如下:
(1)新建标准时间轴,便于后面实现相机飞行的动画。