目标 此步骤将学习如何设置控制器,而不是使用 Cesium 的 DynamicPawn。
第一步:添加摄影测量数据 为了防止地形和摄影测量数据交叉,将 Aerometrex Denver Photogrammetry 的 actor 的位置的 Z 值设置为 600。
第二步:定位到摄影测量数据 方式一:如果有经纬度坐标和高程数据,直接设置 CesiumGeoreference 的数据 Origin Latitude = 39.752827
Origin Longitude = -104.999689
Origin Height = 1570.879421
方式二:在【世界大纲视图】中双击 Aerometrex Denver Photogrammetry,使用场景视图导航到想要放置世界原点的位置,并点击【Place Georeference origin Here】按钮 第三步:导入第三人称角色 可以添加 UE 自带的【Third Person】资源,也可以添加自己做的角色。添加自带的小白人资源有两种方式:
方式一:通过【添加/导入】中的【添加功能或内容包】 方式二:从其他有【第三人称游戏模板】的项目中,将 ThirdPersonCharacter 迁移到本项目中。 第四步:将 ThirdPersonCharacter 放入到场景中 找到 ThirdPersonCharacter 并将其拖拽到场景里,并调整合适的朝向
效果如下:
设置【自动控制玩家】为【玩家0】,这样在点击【运行】的时候就可以看到小白人了
注意:如果你现在试着玩这个关卡,你会注意到你的演员可能会在丹佛摄影测量完全加载之前开始下降。继续阅读,看看如何解决这个问题。出于这个原因,还建议禁用当前未与之交互的任何物理对象的物理功能。
第五步:设置一个安全的起始位置 在小白人的脚下放置一个立方体,防止开始游戏时,由于 3DTiles 数据在加载过程中,小白人由于受重力影响而掉下去。
第六步:在场景中添加一个车辆控制器 第七步:设置关卡蓝图 通过 C 和 V 切换小白人和车辆控制器的控制权。...
目标 学习使用虚幻引擎的蓝图系统编程,实现在地球上的两个位置之间平稳飞行。
在虚幻引擎中使用地图坐标 在感兴趣的位置创建 viewpoints 创建一个蓝图,使位置的切换变得平滑 第一步:创建一个关卡 参考前面的步骤创关卡,并定位到澳大利亚悉尼
Origin Latitude = -33.871799 Origin Longitude = 151.206696 Origin Height = 3000.0
第二步:添加 DynamicPawn actor 第三步:在蓝图中设置转换 打开关卡蓝图
蓝图联接图
创建墨尔本经纬度向量
longitude = 144.9631
latitude = -37.8136
height = 2000
第四步:自定义飞行过渡 设置飞行曲线:
Fly To Altitude Profile Curve Fly to Maximum Altitude Curve Fly to Progress Curve 添加 Fly To Curves actor,这是一个UCurveFloat,这个函数用来控制计算从源头到目的地的路径插值。
在【内容】面板右击,选择【其他】【曲线】,选择【CurveFloat】,并命名...
目标 Create a persistent global level Put several local sublevels within the persistent level Fill each sublevel with assets and game-logic using your typical Unreal workflow Seamlessly fly between sublevels as well as explore the persistent level Stay aware of pitfalls along the way 第一步:新建由项目组成的世界场景 新建一个空白的项目
参考快速入门,删除【世界大纲试图】中的所有默认的 actors
创建持久关卡(Persistent Level)
在内容浏览器新建 World 文件夹,把当前的空关卡命名为 Globe 并保存到此文件夹中。
这个关卡就是 Persistent Level,它代表了整个地球。
世界场景设置
打开【世界场景设置】面板,勾选【启用场景合成】
禁用【启用场景边界检查】,在全球尺度的世界中,物体可以移动非常远的距离,禁用此设置 Unreal 就不会删除远离原点的物体...
一、添加静态风格体(static meshes) 二、真实世界椭球与游戏世界坐标系 由于地球曲率的影响,距离 CesiumGeoreference 原点越远,铅垂线的方向误差越大,每一公里方向偏差大概 0.01 度。当我们从地球的一端到对面的一端时,重力的方向就转了 180 度。
可以从以下几方面解决(由易到难):
待在一个相对较小的区域内,大概100公里左右; 在地球的每个部分设置独立的子关卡,每个子关卡都有自己的 CesiumGeoreference; 使用 CesiumGlobeAnchor 为 actor 添加有限的真实世界信息参考(参见下面的“我们可以将动态对象转换为地理引用对象”); 手动扩展你的游戏对象,以充分考虑真实椭圆地球影响。 三、一般的虚幻引擎对象的位置问题 一般的虚幻引擎对象是固定在游戏世界,而不固定在真实世界的位置
当 CesiumGeoreference 原点改变时,整个虚幻引擎世界将移动到地球上的一个新位置,包括其中的所有对象
开始放置的地方:
修改 CesiumGeoreference 原点后:
四、将动态对象转换为具有地理坐标参考的对象 1. 修改对象为可移动的 2. 添加 Cesium Globe Anchor 组件 通过添加 Cesium Globe Anchor 组件,就将这个 actor 对象转换为具有地理位置参考的对象了。
现在,我们可以更改 Cesium Globe Anchor 的原点,那么该物体将完全保持在地球上的位置。我们还可以直接指定 Longitude / Latitude / Height 或者 Earth-Centered, Earth-Fixed 的坐标,以将物体与精确的数值坐标放置在一起。
需要注意两点:
只能将 Cesium Globe Anchor 组件添加到可移动的 actor 上; 并不能解决所有的问题,尤其是重力方向的问题;
第一步:新建空白关卡 第二步:添加倾斜摄影数据 去网站将数据资产添加到自己的账户
第三步:以倾斜摄影数据为中心 看起来怪怪的是因为球心坐标系与游戏的坐标系统有所不同, 虚幻编辑器的摄像机 Z 方向是向上的。在地球上(与大多数游戏不同)以地球为中心的坐标系统的向上方向取决于你在世界的位置。
通过点击 CesiumGeoreference 的 Place Georeference Origin Here 按钮快速设置场景坐标原点到当前相机位置
此按钮将重新定位虚幻引擎当前关卡的坐标系统,使其中心点(0,0,0)准确地位于摄像机之前的位置,并对齐虚幻引擎的坐标轴,使+X指向东方,+Y指向南方,+Z指向上方
第四步:添加光照 CesiumSunSky 添加照明并调整时区和时间
第五步:添加地球影像地形 修改摄影测量数据的位置
第六步:从本地目录添加 3D Tileset 1. 在场景中添加了一个新的空白 Cesium3DTileset Actor 2. 设置本地 Tileset 文件路径 定位到添加的 tileset actor,场景和数据朝向很可能是错误的
这是因为 CesiumGeoreference actor 的原点距离 LocalTileset actor 很远。
3. 重新设置原点 修改 3D Tileset 数据的 Z 值
影像地形数据 可以通过在本场发布数据服务的方式,类似这种 http://localhost:portNumber/terrainAsset
经度和时区 摘自知乎
经度与纬度组成了一个坐标系统,称为地理坐标系统。通过经纬度表示地球上的任何一个位置。
国际上规定以通过英国伦敦近郊的格林尼治天文台旧址的经线作为计算经度的起点,即经度零度零分零秒,也称“本初子午线”。在它东面的为东经,共180度;在它西面的为西经,共180度。因为地球是圆的,所以东经180度和西经180度的经线是同一条经线。各国公定180度经线为“国际日期变更线”。为了避免同一地区使用两个不同的日期,国际日期变线在遇陆地时略有偏离。
地球自西向东转,东边时间就要比西边早。规定将全球分为24时区,东西各12时区,每个时区跨经度15度,以英国格林尼治天文台旧址为零时区,两个相邻时区之间相差1小时。
不同时区的时间按照同减异加、东加西减的原则计算。比如,北京位于东8区,纽约在西5区,北京时间要比纽约早13个小时。