1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

UnrealEngineのCesiumで指定範囲外と指定範囲内の非表示を組み合わせる

Last updated at Posted at 2024-12-05

以下のようにUnrealEngineでCesiumCategraphicPolygonの指定範囲外(外枠)と指定範囲内(内枠)の非表示を組み合わせて地形表示を行う方法についてメモします。

2024-12-05_11h59_50.png

試した環境

  • UE5.3.2
  • CesiumForUnrealプラグイン2.3.0

参考

以下のUnrealEngineのCesiumのサンプルプロジェクトのLevel13 - Cesium Tile Excluderを参照しています。
CesiumTileExcluder自体は利用しませんがCesiumTileExcluderを使って中途半端に表示されているタイルを非表示にしているやり方を参考にしました。

前提知識

以下のような公式ドキュメントで地形表示できることやCesiumCategraphicPolygonを使って指定した範囲を非表示にできることが前提です。

範囲外と範囲内の範囲内非表示の方法

  1. あらかじめCesium3DTilesetをレベルに追加しておきます
  2. 2つのCesiumCartographicPolygonをレベルに追加しておき範囲を設定しておきます
    (以下の例だとCesiumCartographicPolygonの範囲内を非表示にし、CesiumCartographicPolygon2の範囲外を非表示にしたい)
    image.png
  3. マテリアルインスタンスを作成して、以下のように設定します
    Layer ParametersのClipping1は既存のClippingを参考にして一番上に追加します
    (Cesium3DTilesetのMaterialプロパティのソースにはMI_CesiumThreeOverlaysAndClippingをコピーして設定しろと書いてあるのでその方が良いかも)
    image.png
    image.png
  4. 作成したマテリアルインスタンスをCesium3DTilesetアクタの[Cesium] > [Rendering] > [Material]に設定します
    image.png
  5. Cesium3DTilesetにCesiumPolygonRasterOverlayコンポーネントを追加し、[Cesium] > [Polygons]に範囲内を非表示にしたいCesiumCartographicPolygonを指定します
    image.png
  6. Cesium3DTilesetにCesiumPolygonRasterOverlayコンポーネントをもう一つ追加し、以下のように設定します
    [Cesium] > [Polygons]に範囲外を非表示にしたいCesiumCartographicPolygonを指定します
    [Invert Selection]をチェック、[Exclude Selected Tiles]をチェックしないようにして範囲外を非表示にします
    [MaterialLayerKey]にマテリアルインスタンスで追加したClipping1レイヤーを指定します。
    image.png
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?