目录
效果
步骤
一、生成空心图案
1. 添加“Cesium Cartographic Polygon”
这里重命名为“PolygonInner”,表示里层的形状
复制一份,命名为“PolygonOuter”,表示外层的形状
2. 选中这两个Polygon的“GlobeAnchor”的组件,然后点击“Snap to East South Up”,使得Polygon的+X轴指向局部东方向,+Y轴指向局部南方向,+Z轴指向局部上方向。
3. 选中“PolygonOuter”中的样条点,然后切换为局部空间
移动“PolygonOuter”的4个样条点,使“PolygonOuter”包含“PolygonInner”
5. 下面为这两个Polygon各建一个“Material Layer Blender”
这里分别命名为“MLB_Inner”和“MLB_Outer”
6. 在“All-》Plugins-》Cesium for Unreal内容-》Materials-》Instances”中找到“MI_CesiumThreeOverlaysAndClipping”
将该材质实例复制一份,这里复制到和“MLB_Inner”、“MLB_Outer”同一个路径下,并重命名为“MI_AreaTint”
7. 打开“MLB_Inner”,先删除“BlenderMaterialAttributes”
添加“GetMaterialAttributes”和“SetMaterialAttributes”节点
选中“SetMaterialAttributes”节点,在细节面板中添加一个“BaseColor”属性类型
选中“GetMaterialAttributes”节点,在细节面板中添加一个“BaseColor”属性类型
做如下连接,这样底层的地图画面就可以传过去
选中另一个“GetMaterialAttributes”节点,在细节面板中添加一个“BaseColor”属性类型,然后将R值传出去
8. 打开“MLB_Outer”,添加如下节点
9. 打开“MI_AreaTint”,在“图层参数”面板中添加一个材质层,这里命名为“Inner”
在“Inner”材质层中设置“图层资产”为“ML_CesiumRasterOverlay”,“混合资产”设置为“MLB_Inner”
再添加一个材质层,命名为“Outer”,“图层资产”为“ML_CesiumRasterOverlay”,“混合资产”设置为“MLB_Outer”(注意:材质层Outer需要在Inner的上层)
10. 选中“Cesium World Terrain”,添加一个“CesiumPolygonRasterOverlay”组件
这里重命名为“PolygonRasterOverlay_Inner”
复制一份,命名为“PolygonRasterOverlay_Outer”
选中组件“PolygonRasterOverlay_Inner”,添加一个“Polygon”元素,该元素设置为大纲中的“PolygonInner”。然后取消勾选“Exclude Selected Tiles”。“Material Layer Key”设置为“Inner”
选中组件“PolygonRasterOverlay_Outer”,添加一个“Polygon”元素,该元素设置为大纲中的“PolygonOuter”。然后取消勾选“Exclude Selected Tiles”。“Material Layer Key”设置为“Outer”
11. 选中“Cesium World Terrain”,在细节面板中,设置“Cesium-》Rendering”中的“Material”为“MI_AreaTint”,此时在地图上就出现了图案效果
二、多个图案
如果想同时显示多个图案效果,只需要先复制“PolygonInner”和“PolygonOuter”,然后修改一下它们的位置
可以再修改一下形状
然后选中“Cesium World Terrain”的“PolygonRasterOverlay_Inner”组件,在细节面板中点击添加一个Polygon,添加的元素为“PolygoInner2”
再选中“PolygonRasterOverlay_Outer”组件,在细节面板中点击添加一个Polygon,添加的元素为“PolygoOuter2”。此时就显示新图案了。
三、实心图案
还是先添加一个“Cesium Cartographic Polygon”,这里重命名为“Polygon_Rectangle”
选中“Cesium World Terrain”的“PolygonRasterOverlay_Outer”组件,在细节面板中添加一个元素,元素设置为“Polygon_Rectangle”。此时就可以在地图上看见实心图案了。
四、同时显示多种颜色的图案
1. 将“Cesium World Terrain”中的两个“CesiumPolygonRasterOverlay”组件重命名,用以区分颜色
2. 右键“MLB_Inner”,选择“创建混合实例”
这里命名为“MLB_Inner_Inst_Red”
同样的方式对“MLB_Outer”创建材质实例,这里命名为“MLB_Outer_Inst_Red”
3. 打开“MI_AreaTint”,将之前混合资产“MLB_Inner”、“MLB_Outer”替换为“MLB_Inner_Inst_Red”和“MLB_Outer_Inst_Red”
将材质层中的“Outer”、“Inner”重命名为“OuterRed”、“InnerRed”
4. 选中“Cesium World Terrain”,在细节面板中修改组件“PolygonRasterOverlay_Inner_Red”的“Material Layer Key”为“InnerRed”,修改组件“PolygonRasterOverlay_Outer_Red”的“Material Layer Key”为“OuterRed”
5. 此时生成红色图案的部分就完成了。下面开始绘制蓝色图案。
由于“Material Instance” ,除去背景最多有8个材质层,因此这里可以删除“Clipping”和“DitherFade”层
6. 对“MLB_Inner”创建混合实例,这里命名为“MLB_Inner_Inst_Blue”
对“MLB_Outer”创建混合实例,这里命名为“MLB_Outer_Inst_Blue”
打开“MLB_Outer_Inst_Blue”,将参数“Color”设置为蓝色
7. 回到“MI_AreaTint”,添加两个材质层,分别命名为“OuterBlue”和“InnerBlue”,混合资产分别设置为“MLB_Outer_Inst_Blue”和“MLB_Inner_Inst_Blue”
添加两个“Cesium Cartographic Polygon”,分别命名为“PolygonInner_Blue”和“PolygonOuter_Blue”
选中“Cesium World Terrain”,添加两个“CesiumPolygonRasterOverlay”组件,然后重命名为“PolygonRasterOverlay_Inner_Blue”和“PolygonRasterOverlay_Outer_Blue”
选中“PolygonRasterOverlay_Inner_Blue”组件,设置Polygons元素为“PolygonInner_Blue”
选中“PolygonRasterOverlay_Outer_Blue”组件,设置Polygons元素为“PolygonOuter_Blue”,设置后刷新一下Tileset就可以看到在地图上有多种颜色的图案了。
8. 下面制作一个黄色的实心图案
点击添加一个“Cesium Cartographic Polygon”,这里重命名为“PolygonRectangle_Yellow”
复制一份“MLB_Outer”,这里重命名为“MLB_AreaTint”
打开“MLB_AreaTint”,修改为如下节点
对“MLB_AreaTint”创建混合实例,这里命名为“MLB_AreaTint_Inst_Yellow”
打开“MLB_AreaTint_Inst_Yellow”,修改Color为黄色
打开“MI_AreaTint”,添加一个材质层,材质层名称为“TintYellow”,图层资产仍然为“ML_CesiumRasterOverlay”,混合资产为“MLB_AreaTint_Inst_Yellow”
选中“Cesium World Terrain”,添加一个“CesiumPolygonRasterOverlay”组件,这里重命名为“PolygonRasterOverlay_Yellow”
添加一个Polygon元素,该元素设置为“PolygonRasterOverlay_Yellow”,取消勾选“Exclude Selected Tiles”,“Material Layer Key”设置为“TintYellow”。此时可以看到出现了黄色的实心图案。
参考视频: