Search Results for

    Show / Hide Table of Contents

    属性情報によって色分けする

    上図は土地計画の区分を色分けするサンプルです。

    上図は水害リスクを色分けするサンプルです。

    このサンプルでは、土地計画決定情報および水害時の想定浸水高に関する属性情報を読み取り、それに応じてランタイムで色を変えます。

    サンプルLevel、Blueprintを開く

    属性情報によって色分けするサンプルLevelは次の場所にあります。
    レベルの負荷とファイルサイズを考慮し、都市範囲を縮小して提供しています。
    Plugins > PLATEAU SDK for Unreal Content > Samples > AttributesColorSample > AttributesColorSample

    属性情報を読み取り、色を変えるBlueprintは次の場所にあります。
    Plugins > PLATEAU SDK for Unreal Content > Samples > AttributesColorSample > AttributesColorSampleLogic

    プラグインフォルダが表示されていない場合は設定からチェックボックスを入れることで表示できます。

    土地計画の区分を色分けするサンプル

    上のコードを解説します。
    属性情報を取得するには、まず各地物ゲームオブジェクトに対してインポート時に付与されるPLATEAUCityObjectGroupコンポーネントにアクセスします。Outlinerで対象のPlateauInstancedCityModelを選択すると下図の用にコンポーネントがいくつも確認できます。土地計画区分で色分けするコンポーネントはurfという名前のコンポーネントであるため、BlueprintではObjectNameにurfを含む場合に処理をします。

    PLATEAUCityObjectGroupコンポーネント内には地物に関する情報が保存されています。 インポート時に地域単位に設定した場合、1つのコンポーネントの中に複数の地物情報(CityObject)が入っています。
    主要地物単位、または最小地物単位の場合はCityObjectは1つです。
    いくつであっても、GetAllCityObjectsでCityObjectを取得できます。

    属性情報はキーとバリューのペアが集まったものです。
    バリューの型は、String型または入れ子のAttributesMap(キーバリューの組が集まったもの)のどちらかであり、対応するgetterで値を取得できます。なお、Double型など他の型のgetterもありますが、内部的には単にStringをパースしたものです。下図はString型の属性情報を取得する例です。

    属性値に応じてマテリアルのBaseColorを変えることで、属性情報を可視化できます。

    水害リスクを色分けするサンプル

    上のコードを解説します。
    災害区分で色分けするコンポーネントはfldという名前のコンポーネントであるため、BlueprintではObjectNameにfldを含む場合に処理をします。

    fldのPLATEAUCityObjectGroupコンポーネントでは属性情報が入れ子になっています。
    下図ではバリューがキーバリューセットの際に値を取得する例です。
    uro:floodingRiskAttributeをキーとする入れ子で、キーuro:rankの値を取得しています。

    属性値に応じてマテリアルのBaseColorを変えることで、属性情報を可視化できます。

    • Improve this Doc
    In This Article
    Back to top PLATEAU SDK for Unreal