Cesium for Unreal 插件的材质被设计成模块化的,所以可以被很容易地添加和删除。
目标 浏览和理解现有的 Cesium for Unreal 3D Tileset 的材质 基于包含在 Cesium for Unreal 插件内的材质实例文件创建自定义材质 修改 tileset 的材质 了解 tileset mesh 的材质限制 Material Instances Cesium for Unreal 通过使用 Material Instances 实现最大的灵活度,每个材质实例通过使用更多的材质图层来应用图像叠加,水,或其他材质效果。
![MaterialInstances](./img/MaterialInstances.jpg)
图层资产:包含将显示在给定层上的材质图层节点 混合资产:包含一个节点,该节点确定该材质图层将如何与下面的图层混合 每个材质图层和材质图层混合都可以像其他材质对象一样在材质编辑器中编辑 创建应用到整个 tileset 的材质 在插件目录找到 MI_CesiumThreeOverlaysAndClipping 材质实例文件,并把它拷贝到项目的内容文件夹中,将其改名为 MI_GroundTint。
在【内容】面板右击,创建一个【材质图层】资产,并将其命名为 ML_GroundTint。
双击 ML_GroundTint,打开材质编辑窗口,点击【SetMaterialAttributes】节点,在【细节】面板中的【属性设置类型】数组中添加两个元素,第一个元素设置为默认值【BaseColor】,第二个元素设置为【Opacity】。
添加一个【Constant3Vector】节点,并右击节点,将其【转换为参数】,并命名为 Color。
添加一个【Constant】节点,,将其【转换为参数】,并命名为 Opacity。
右击 Color 节点,在【细节】面板设置默认颜色,比如红色,设置 Opacity 的默认值为 0....
使用 CesiumCartographicPolygon actor,可以定义一个 tileset 的隐藏区域,或应用其他材质效果。CesiumCartographicPolygon 可以通过 Cesium PolygonRasterOverlay 组件添加到一个或多个 tilesets。
在这里,一个 CesiumCartographicPolygon 被用来隐藏 Cesium World Terrain 和 Cesium OSM Buildings,它们与 Aerometrex Denver Photogrammetry 重叠。
注意:虽然 CesiumCartographicPolygon 有助于基于材质的改变,如 clipping,但它们不影响物理。你仍然可以与 tileset 的隐藏部分发生碰撞。
第一步:添加 CesiumCartographicPolygon actor 可以修改多边形的节点(增加、删除、拖拽节点),修改线的颜色,以及地理位置
第二步:将 CesiumCartographicPolygon 连接到 tileset 数据 选择要将 CesiumCartographicPolygon 应用到的 tileset,比如 Cesium World Terrain,添加组件 CesiumPolygonRasterOverlay
关连 CesiumCartographicPolygon
可以手动刷新 tileset (Refresh Tileset)观看效果
Exclude Tiles Inside: 是专为 clipping 使用。如果这个设置被启用,任何完全位于多边形内部的 tiles 都不会被加载,这可以提高性能。如果你使用这个多边形不是为了 clipping,要禁用这个设置。否则,多边形内的 tiles 将不会被渲染。 Material Layer Key: 将多边形与特定部分的 tileset 的材质连接起来。如果你把这个键换成别的东西,它不会起作用,直到你创建一个使用新键的材质,并将该材质应用到 tileset。
目标 此步骤将学习如何设置控制器,而不是使用 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 就不会删除远离原点的物体...