Get Map Data を使った都市モデルの構築

Get Map Data を使った都市モデルの構築

チュートリアル データは、[Help] メニュー[Download Tutorials and Examples…] を選択し、[CityEngine Tutorial] からダウンロードできます。

このチュートリアルは、Houseal Lavigne Associates の Devin Lavigne 氏との共同作業で作成されました。

概要

都市計画立案者や設計者によくある依頼には、推奨事項やアイデアを示したり、図解したりすることがあります。例えば、ドイツのベルリンの中心で計画を進めている立案者が、シュプレー川沿いの工業用地と大規模な路面駐車場を再開発に推すことがあります。川沿いの環境と繁華街に近いことから、この場所は複合用途開発に適しています。

提案のメッセージを伝えるために、立案者はしばしば地域社会と協力し、地域のビジョンを明確にするためのビジュアルを提示します。地域社会で計画が採択されると、不動産所有者や開発予定者は建築家を招き、その土地のより詳細な計画や提案を作成し、地域社会のビジョン達成を支援することができます。

どちらのシナリオでも、設計者は 3D コンセプト プランを作成します。この 3D コンセプト プランには、敷地の計画と周囲の都市背景が含まれます。このチュートリアルでは、CityEngine と一般公開されている GIS データを活用して、このタイプのビジュアライゼーションを作成するワークフローを学習します。主な手順は次のとおりです。

データの取得

シーンを開く

このチュートリアルでは、空の GetMapData.cej シーンを使って始めます。

ArcGIS Online にサイン イン

最初のステップでは、ベルリン中心部の地図データを取得します。[Get Map Data] ツールを使用するためには、ArcGIS Online にサイン インしている必要があります。[Not signed in] ドロップダウン メニューをクリックします。

[Sign In] をクリックして、[ArcGIS Sign in for CityEngine] ダイアログ ボックスを開きます。

ArcGIS Online のユーザー名とパスワードを入力してサイン インします。

Get Map Data

次に、[File] メニュー[Get Map Data] をクリックします。

[Get Map Data] ダイアログ ボックスが表示され、「Berlin Cathedral, Berlin, DEU」と検索できます。

地図上でその位置をズームします。

次に、[Set Extent] をクリックします。ダウンロード範囲を指定する調整可能な長方形の選択ボックスが表示されます。正確な結果のために下記の座標値をコピー アンド ペーストします。この定義された範囲において、ブックマークを使ってベルリン内を移動するため、座標値を入力することは重要です。

  • Width: 9177.662
  • Height: 5692.849
  • X-Offset: 1487196.025
  • Y-Offset: 6892058.511

これらの座標値は、Web メルカトル座標系と一致します。座標系は、シーンを開いた後、自動的に UTM 座標系に変更されます。[Fixed ratio] ボタンと下の [Reference Point] オプションを無効にし、長方形の基準点が左下に設定されていることを確認します。

Esri World Elevation の下の地形の [Resolution] 設定を Medium (2k) から High (4K) に変更できます。その他の設定はそのままにします。[OK] をクリックして、ダウンロードを開始します。

・地図で標高データを取得するには、ArcGIS Online の組織アカウントが必要です。
・ダウンロードに問題がある場合は、/maps/Terrain_Imagery_Final/ チュートリアル プロジェクト フォルダーに必要なデータがあります。そこから、elevation.tifmap.osm ファイルをシーンにドラッグ アンド ドロップします。

インポート設定

設定を変えることで、インポートや後処理の動作が異なり、CityEngine を使いこなすことで、それぞれの設定が何をするのか、より深く理解できるようになります。このセッションでは、主にデフォルト設定を使用しますが、1 つ例外があります。[highway] カテゴリを展開し、[tertiary] のチェックボックスがオンになっていることを確認してから [Finish] をクリックします。


建物の生成と修正

次のセクションでは、建物を生成し、さまざまなスタイルに修正する方法を学習します。

建物の生成

[Get Map Data] ダイアログ ボックスの [Generate models for downloaded shapes] チェックボックスをオンにしたことで、建物のフットプリントに Building_From_OpenStreetMap.cga ルール ファイルが適用されます。

ルール ファイルは、CityEngine に含まれており、ESRI.lib 内にあります。

ESRI.lib フォルダーには、Building_From_Footprint.cga という同様のルールがあり、GIS データを含む他のソースからのフットプリント形状でも機能します。

外観の概略図

シーンの中心に少しズームします。ナビゲーション オプションの概要については、3D navigation essentials を参照してください。

Building_From_OpenStreetMap.cga ルールを建物に適用すると、デフォルトでは、建物が白色になります。次に、建物のスタイルを変更します。[Scene Editor] ウィンドウで、Footprints レイヤーを右クリックし、[Select Objects] をクリックして、すべてのフットプリントを選択します。

建物フットプリントを選択した状態で、[Inspector] ウィンドウの [Representation] ボックスをクリックして、「schematic facades」に変更します。これにより、壁に外窓を作成するように CGA ルールに指示し、各フットプリントに対して異なるパターンと色が割り当てられます。

ズームすると、schematic facades が適用された建物との違いが確認できます。

リアルな外観

フットプリントを再度選択し、次は [Representation] の値を「Realistic with facade textures」に変更します。この値によって、CGA が外観の異なる画像やテクスチャを建物にランダムに割り当て、都市をよりリアルな外観にします。

ランダムなテクスチャの割り当てであるため、建物のタイプと必ずしも一致しませんが、ズームアウトすることでリアルな街の概観が得られます。

建物を白に変更

最後に、次のステップに進む前に、建物の [Representation] 値をすべてデフォルトの白に戻します。これは開発のビジュアライゼーションにおいて使われる一般的な手法です。フルカラー モデルで、シーンの主役となる計画案や開発案を示し、既存の建物を白や控えめな色で表示することで、計画案の周辺の背景を調整し、メインとなる案に注目させます。ここまでのステップは、CityEngine のデフォルト ライブラリ (ESRI.lib) で利用可能なルール ファイル内のオプションを紹介するためのものです。

主要建物のソリッド カラー

[Bookmarks][Bookmark 1 - Fernsehturm Berlin] をクリックするか、「0」を押して、ベルリンの中心地にあるテレビ塔のベルリン放送局に移動します。周囲の建物の詳細を確認します。

建物の形状の [Object Attributes] 内のデータは、Building_From_OpenStreetMap.cga ルールによって読み込まれます。また、詳細なジオメトリ情報がある場合、ルールはその形状に対して、単純な押し出し (LOD1) ではなく、より複雑なモデル (LOD2) を生成することができます。

テレビ塔のモデルを選択し、[Representation] 属性値を「solid color」に変更します。アンテナの上部が真っ赤になります。

OSM データはコミュニティによる取り組みであるため、データの質や情報量にはかなりのばらつきがあることに留意してください。色情報が存在する場合もあれば、Representation の属性が Solid color に設定されていても、建物が white で表示される場合もあります。

続いて、[Bookmarks] の [Bookmark 2 – Berlin Cathedral] をクリック (もしくは「1」を入力) します。ここでは、OSM の建物のフットプリントに保存されている LOD2 データを活用して、CityEngine で建築的にリッチな 3D 建物を自動的に作成できるもう 1 つの例を紹介します。

テレビ塔の時と同様に大聖堂を選択し、[Representation] の値を「solid color」に変更します

この時点で、ブランデンブルク門や主要な駅など、シーン内の他の主要な建物の色を変えることができます。完成すれば、大部分の建物が白で、いくつかのランドマークが特別な色のシーンになるはずです。

次に様々な道路のクリーンナップ方法について学習します。

グラフ ネットワークと道路のクリーンナップ

多くの場合、OSM データをインポートした後に、道路ネットワークをクリーンナップする必要があります。インポート時、CityEngine では、OSM データをグラフ ネットワークと呼ばれる独自の表現モデルに変換します。グラフ ネットワークは、ノードとセグメントで構成されており、その形状は都度、設定することで作成することができます。最も一般的なエラーが交差点に発生し、ノードが近接して配置されていたり、中心線や道路情報が欠落していたりします。

グラフ ネットワークと道路の形状の問題を修正するために実行できるツールがいくつかあります。このワークフローで最も一般的なツールが、[Cleanup Graph] ツールと [Simplify Graph] ツールです。これらのツールは、大体の道路の問題を修復するための自動的な方法を提供します。インポート時に有効にできますが、一部のセグメントに選択的に適用したい場合は、メニューからこのプロセスをトリガーとすることもできます。

どのワークフローが最も効果的かは、インポートされたデータの品質に依存するため、明確な答えはありません。自動クリーンナップが非常に良い結果をもたらす場合もあれば、状況を悪化させる場合もあります。通常、様々な方法を組み合わせて適用することになりますが、このチュートリアルではそのいくつかの方法をご紹介します。

道路の表現を簡略化

道路ネットワークについては、OSM データのインポート時に、車線の種類、幅、車線数が自動的に設定されています。この詳細な表現は、道路設計を行う際の出発点として役立ちます。しかし、このチュートリアルでは、中央に破線の区画線がある 2 車線の路盤のみで構成され、歩道を含まない、中央に破線の区画線がある 2 本の車道レーンのみで構成されたよりシンプルな道路表現を使用することを目的とします。
次の手順では、Street Designer を使用してそのような道路を作成し、設定として保存し、それを道路ネットワーク全体に適用します。これにより視覚的な複雑さが軽減されるだけでなく、道路ジオメトリーが単純化され、干渉も少なくなります。

大聖堂の前にある区間が、適切な開始地点となります。

  1. ツールバーの [Street Designer] ツールをクリックして、選択した道路セグメントの編集を開始します。
  2. [Remove Lanes] ツールを使用して、両側の歩道レーンを削除します。
  3. [Edit Lanes] ツールに切り替え、レーン端をドラッグして、残っている 2 本のレーンの幅を 4.5 m に設定します。 または、レーンを選択し、[Inspector] ウィンドウで [Lane Width] パラメーターを手動で設定することもできます。

  1. 動的レーン形状のパラメーターを設定した後、[Rule Parameters] セクション内のパラメーターを調整します。ルールファイル内の [Markings] セクションにあるデフォルト属性値は、隣接するレーンに自動的に適応します。
  2. 左側のレーンで、右側のマーカー スタイルを [Dashed] に設定します。
  3. 両方のレーンで、外側の道路標示を [Continuous] から [None] に変更します。

  4. [Segment] ボタンをクリックし、[Street Configuration] セクションを開きます。 ここには、都市デザイン プロジェクトで利用できるさまざまなプリセットの道路構成が用意されています。 これらの構成は、そのまま使用できるオプションとしても、自分のカスタム道路デザインを作成する際のベースとしても利用できます。
  5. 新しい道路デザインを street configuration gallery に追加するために、[Create new] ボタン (+) をクリックします。
  6. 道路構成の名前を my_City_Street に変更します。

    [Total width] パラメーターには、このセグメントの幅が 9.00 メートルと表示されています。
    このカスタムの道路構成を用意したことで、インポートした OSM の道路ネットワーク全体の複雑さを削減する準備が整いました。
  7. すべての道路を選択するには、選択中の道路セグメントを右クリックし、[Select Objects in the Same Layer] をクリックします。

  8. [Segment] ボタンをクリックし、[Street Configuration] セクションを開きます。
  9. ギャラリーで my_City_Street の道路構成をクリックします。 動的シェイプとモデルは、my_City_Street の道路構成パラメーターに従って調整されます。 上の初期画像と次の画像を比較するとわかるように、道路が簡略化されています。

グラフ編集のためのシーンを準備

はじめに、[Visibility settings][Graph Networks][Shapes] が表示されていることを確認します。[Map Layers (ベースマップ画像)] をクリックするか、「F9」を押し、[Models] をクリック (もしくは「F12」を入力) し、それらの表示をオフにします。また、[Scene Editor] ウィンドウで [Footprints] レイヤーを非表示にします。

これにより、グラフ ネットワークが分離され、エラーの可能性がより明確になります。

道路のクリーンナップ

[Bookmarks] より [Bookmark 3 – Street Repair] をクリックするか、「2」を押します。下図のようなものが表示されるはずです。赤い線は、相反する図形と目に見える道路の隙間を示しています。

[Cleanup Graph] ツールを使用するには、[Select] ボタンをクリック (もしくは「Q」を入力) し、[Tool Options] ウィンドウで [Lasso Select] ツールをクリックして、中心のエリアの道路セグメントを選択します。

次にツールバーの [Cleanup Graph] ツールをクリックするか、メイン メニューの [Graph] メニュー[Cleanup Graph] をクリックして、[Cleanup Graph] ダイアログ ボックスを開きます。ポイントの [Vertical Merge Distance] と [Horizontal Merge Distance] でマージ距離を指定し(ポイント同士が近い場合、マージされます)、赤の破線で示された競合する形状を解決するために [Resolve Conflicting Shapes] チェックボックスをオンにします。[Finish] をクリックします。
望む結果が得られない場合は、マージ距離を徐々に大きくしながら、クリーン ナップ処理を繰り返してください。

結果は下図のようになるはずです。

選択された道路のノードの数が減り、交差点の赤いエラー マーカーが削除されました。これは、CityEngine が、選択したすべての道路形状の再設定ができたことを指します。次のセクションに進む前に、シーンの他の部分のクリーンナップを続けることができます。

次に、地形を使ってよりリアルなシーンを作成します。

地形の利用

チュートリアルのこのセクションでは、「F9」と「F12」を押して、Map LayersModels の表示を再度オンにします。次に [Bookmarks] より [Bookmark 4 - Terrain Editing] をクリック (もしくは「3」を入力) して移動します。

地形が道路より高くなっている場所がいくつかあるほか、道路のひとつが実は公園の下を通るトンネルになっている箇所があります。

トンネル道路の非表示

CityEngine の地形は標高マップに基づいています。このアプローチには、特に広域のパフォーマンス面で利点がありますが、欠点として“穴”を表現できないという点があります。つまり、トンネルを正しくモデル化する方法がありません。 トンネルを表現する 1 つの方法として、[Generate Bridges] ツールを使用する方法があります。このツールでは、道路を地面より上へ移動させることで橋を生成できますが、このケースでは道路を地下に移動させるために使用します。

  1. 次の画像に示すように、地下へ移動させる道路を選択するために四角形の選択範囲を作成します。

    次に、[Generate Bridges] ツールを適用します。
  2. メインメニューで [Graph][Generate bridges] をクリックします。
  3. [Allow tunnels] オプションがオンになっていることを確認し、その他の設定はすべてデフォルトのままにします。
  4. [Apply] をクリックし、ダイアログ ボックスを閉じます。

    トンネルの道路は地形の下に移動されます。

地形の高さを調整

次に、地形と道路シェープが重ならないように、地形を道路の高さに合わせて調整します。

  1. 公園を横断する長い道路にズーム インし、地形が重なっているいくつかの道路を選択します。

  2. ツールバーの [Align Terrain to Shapes] ツールをクリックします。 これにより、[Cleanup Graph] ダイアログ ボックスと同様に、現在の選択に対して動作するダイアログボックスが開きます。

  3. 値はデフォルトのままにして [Apply] をクリックします。ダイアログボックスを閉じると、地形が正しく調整されています。

    このツールは、シーン内のすべてのシェープを選択して地形をそれらに合わせるためにも使用できますが、その場合、一部のエリアで望ましくない調整が行われる可能性があります。 このチュートリアルのように段階的に操作する方法であれば、結果をより細かくコントロールできます。

  4. 作業が終わったら、もう一度 [Bookmark 4 – Terrain Editing] に移動します。 次の画像のようになっているはずです。

シナリオの作成

次のセクションでは、再開発の可能性について 2 つのシナリオを作成します。

シナリオでは、1 つのシーン内で複数のデザインを作成し、それらを比較することができます。シナリオを異なるビューに並べて表示し、視覚的に比較することができます。
シナリオは、建物、道路、地形などのオブジェクトを含むレイヤーで構成することができ、シナリオがアクティブな場合にのみ表示されます。特定のシナリオだけに影響するカスタム変更も、すべてのシナリオに適用できるグローバル変更も可能です。これらは、1 つのシーンに複数のデザイン案を保存する方法を提供します。さらに、複数のシナリオを持つことは、Unreal Engine と 360 VR Experience でサポートされています。

現況シナリオの作成

[Bookmarks] より [Bookmark 5 – Spree River Redevelopment Site] (もしくは「4」を入力) に移動し、[Scene Editor] ウィンドウで [Footprints] レイヤーの表示を戻します。

初期シナリオを作成するために [Scene Editor] ウィンドウの [Add new scenario] ボタンをクリックします。

[New scenario] ダイアログ ボックスが表示されます。シナリオ名を「Existing Conditions」にし、ID タグを「EC」に変更します。[OK] をクリックすると、新しいシナリオが自動的にシーン上のアクティブなシナリオになります。

既存の建物を現況シナリオに移行

作成するシナリオは、川沿いの遊休地の再開発の可能性を探るものです。三角形の敷地にある 6 つのフットプリントを選択し、Ctrl+X を押すか、右クリックして [Cut] を選択してフットプリントを切り取ります。

ここで、Ctrl+V を押すか、[Scene Editor] ウィンドウで右クリックし、[Paste] を選択してフットプリントを貼り付けます。新しい [Footprints Paste] レイヤーが作成されます。[Inspector] ウィンドウで、名前を「Redevelopment Footprints」に変更します。レイヤーがどのシナリオに属しているかは、[Scenario] の横にあるシナリオの色で確認できます。

レイヤーの種類とシナリオ メンバーシップを管理するには、[Edit] をクリックして [Edit Scenarios Membership] ダイアログ ボックスを開きます。[Existing Conditions] チェックボックスがオンになっていることを確認し、[OK] をクリックします。

再開発シナリオ A の作成

別のシナリオを作成し、「Scenario A」と名付け、ID を「A」に変更します。

新しい Scenario A がアクティブなシナリオとして設定されているため、Existing Conditions シナリオに移動した建物は非表示になり、空きエリアが残ります。

この空いたスペースをもう一度塗りつぶします。[Polygonal Shape Creation] ツール (もしくは「S」と入力) に切り替え、新しい区画形状を作成します。左側の既存の建物のすぐ横から始め、その周囲を回り込むように作業を続け、高架鉄道の線路に沿って右側の既存の建物の手前の道路まで戻り、道路沿いに最初の点をクリックして形状を完成させます。

開発エリアの地形は完全に平坦ではないため、新しく作成した区画が地形と重なっている箇所があります。[Align terrain to shapes] ツールを使用して、区画の下の地形を調整します。

[Scene Editor] ウィンドウで新しいレイヤーの名前を「Parcel」に変更し、整理します。

次に、[Navigator] ウィンドウで rules フォルダーを展開し、UrbanBlocks.cga ルールを区画にドラッグ アンド ドロップします。

デフォルトでは、区画に 2 つの建物ブロックが作成されます。

[Inspector] ウィンドウでさまざまな属性を調整し、デザイン案を作成します。最大 6 つのブロックを選択でき、ブロックの幅、高さ、長さ、ブロック間の隙間を個別に設定できます。[general] では、その他の設定、特に最初のブロックの開始位置 (patternOffset)、区画のセットバック (SetbackDepth)、色の値 (BlockColor) を定義できます。

属性を調整した後、シーンは下図のようになるはずです。

結果に満足したら、用地に樹木を追加していきます。ESRI.lib には多くの樹木のタイプが用意されています。[Navigator] ウィンドウで、/ESRI.lib/assets/Webstyles/Vegetation/Realistic/ フォルダーを探し、樹木を 1 つ選んでシーンにドラッグ アンド ドロップします。

樹木はポインターの位置に生成されます。事前に樹木をプレビューしたい場合は、ファイル名を右クリックして、[File Preview] を選択すると、小さなプレビュー ウィンドウが開きます。

ドラッグ アンド ドロップ、または既存の樹木のコピー アンド ペーストで、樹木をどんどん追加します。変形ツールを使って、サイズや向きにバリエーションを作ることができます。

再開発シナリオ B の作成

代替案を作成するには、[Scene Editor] ウィンドウで Scenario A を右クリックし、[Duplicate] を選択します。[Duplicate scenario] ダイアログ ボックスで、Scenario B と名付け、ID を B に変更します。

新規シナリオ作成時と同様に、複製されたシナリオは自動的にアクティブなシナリオに設定されます。区画を再度選択し、[Inspector] ウィンドウで、このバリアントの属性を調整します。

変形ツールを使って、Scenario A から複製した樹木を、代替案に合わせて並べ替えます。 また、[Delete] キーで樹木を削除したり、前述のように新しい樹木を追加したりすることで、樹木の本数を変更することもできます。

これで Existing Conditions シナリオのほかに、2 つの企画案である Scenario AScenario B の 3 つの異なるシナリオを作成したことになります。

シナリオのビジュアライゼーション

最後にシーンを確認する前に、シナリオが適切にハイライトされていることを確認します。デフォルトでは、CityEngine のシーンのライトがかなり明るく設定されています。これは編集には最適ですが、ビジュアライゼーションにはより滑らかなライティングが好ましいです。

ツールバーの [Scene Light and Panorama] ツールをクリックして、[Scene Light and Panorama] ダイアログ ボックスを開きます。手動で太陽を配置するか、タイムゾーンで時間 / 月を選択することができます。このチュートリアルでは、[Sun position source][Direct Solar Angle Entry] のままにしておきます。次に、太陽の位置を以下の設定に変更します。

  • Solar elevation angle: 35.0
  • Solar azimuth angle: 325.0

光をより滑らかにするために、[Luminance levels] 設定で微調整することもできます。

  • Solar intensity: 0.7
  • Ambient intensity: 0.25
  • Shadow attenuation: 0.3

最後に、「F10」を押して、形状の表示をオフにします。これにより生成されたモデルの下にあるすべての形状だけでなく、残っている可能性のある未固定の横断歩道のエラー マーカーも非表示になります。

シナリオの切り替え

これで探索の準備ができました。[Scene Editor] ウィンドウで、3 つのシナリオを切り替えるには、それぞれのシナリオをクリックするか、[Viewport][Scenario] から直接シナリオを選択します。

シナリオを切り替えながら、さまざまな角度やズーム レベルから用地を確認します。

シナリオは、Unreal Engine にエクスポートして将来のビジュアライゼーションに利用したり、360 VR Experience にエクスポートして没入感のある表示を行ったりすることもできます。詳細については、ヘルプや CityEngine ツアー、GIS データを使った作業など、その他の重要なチュートリアルをご参照ください。

このチュートリアルでは、以下の方法を学習しました。

  • [Get Map Data] ダイアログを使用した特定の地域からのデータのインポート
  • データをクリーンナップし、それを使用した再開発シナリオの作成とビジュアライゼーション

他のエッセンシャル チュートリアルもご参照ください。:CityEngine ツアーGIS データを使った作業ルール ベースのモデリング

CityEngine の学習を続けるには、CityEngine チュートリアルをご参照ください。