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/ チュートリアル プロジェクト フォルダーに必要なデータがあります。そこから、eleavation.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 データのインポート時に自動的に設定されます。このチュートリアルでは、クリーンナップの量を最小限にするために、歩道を削除し、道路の幅を狭くします。道路の幅を変更するには、[Street Network] レイヤーを右クリック → [Select Objects] をクリックし、道路ネットワーク全体を選択します。

[Inspector] ウィンドウで [Segment] タブがアクティブになっていることを確認し、[Segment Parameters] を以下に変更します。

  • Segment Width: 9
  • Lane Width: 4
  • Left Sidewalk Width: 0
  • Right Sidewalk Width: 0

このセグメントのような動的な形状は、新しいパラメータに応じて調整されます。上と下のスクリーンショットを比較すると、見てわかるようにずっとシンプルな道路になっています。

ルール ファイルの変更

建物のフットプリントと同様に、道路にもインポート時にルールが割り当てられます。この場合、デフォルトの Street_Modern_Standard.cga ルールを、同じく ESRI.lib の一部である Street_Modern_Simple.cga ルールに変更します。

すべての道路が選択されていない場合は再度選択し、メイン メニューの [Shapes][Assign Rule File] をクリックし、[Assign Rule File] ダイアログ ボックスを開きます。

次に、CityEngine のワークスペース全体が表示されるように 2 つ上の階層に移動し、/ESRI.lib/rules/Streets/ フォルダーを参照します。Street_Modern_Simple.cga ルールを選択します。

新しいルールで道路ネットワークを再生成するには、[Open] をクリックします。すぐにわかる主な違いの 1 つが、横断歩道がなくなったことです。

すべての道路形状を選択したまま、[Inspector] ウィンドウで [Segment] を以下の属性値に変更します。

  • NbrOfRightLanes: 0
  • Centerline: white

この変更により、センターラインは連続した黄色から破線の白線となり、道路は 2 車線のみとなります。

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

はじめに、[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 つは穴を表現できないことがあります。つまり、トンネルを適切にモデリングする方法がありません。そのため地下にある道路のセグメントを削除することになります。

トンネルは公園エリアの南側にある交差点の少し後から始まり、主要駅まで続いています。

[Select] ツールを使って、2 つの交点間の大きな部分を矩形で選択し、[Delete] キーを押して選択したセグメントを削除します。

トンネルに沿って、道路の一部を削除しながら作業を続けます。交差点では、トンネルのセグメントだけを注意深く選択します。[Shift] キーを押しながらクリックするか、[Selection Tool] オプション ウィンドウで [Add] モードに変更すると効果的です。

完了したら、下図のようになるはずです。

地形の高さの調整

次に、地形がこれ以上重ならないように、道路の形状の高さを調整します。公園を横切る長い道路にズーム インして、地形が重なっている道路をいくつか選択します。

ツールバーの [Align terrain to shapes] ツールをクリックします。これは、上記の [Cleanup Graph] ダイアログ ボックスと同様に、現在の選択範囲に対して機能するダイアログ ボックスを開きます。

すべてをデフォルト値のままにして、[Apply] をクリックします。ダイアログを閉じると、地形が適切に調整されています。

シーン内のすべての形状を選択して、これと同じツールで地形を調整することもできますが、結果に満足できない領域に対して調整が生じてしまう可能性があります。このチュートリアルの逐次的なアプローチによって、結果をよりコントロールすることができます。

Terrain Edit Brush を使った地形の微調整

ズーム インすると、至近距離でもわずかな重なりを見つけることができます。

CityEngine では、ブラシを使って地形を修正し、必要な高さに変更することもできます。[Terrain Edit Brush] ツールをクリックして、[Terrain Edit Brush] ツール オプションでオプションを変更します。

地形の正確な標高を取得するには、[Elevation Picker] のトグル ボタンをオンにします。カーソルを地図上に移動し、クリックして標高を選択します。道路の下の地形を低くするために、地図上の低い地点を選択します。マップのこの部分は、38m 程度の高さが丁度良いです。

標高を選択すると、[Terrain Edit Brush] ツールがアクティブになります。クリック アンド ドラッグで地形を塗りつぶすようにし、ピッカーで選択した高さに標高を編集することで、その Height 値で表示されるようになります。道路が地面より下にある部分がなくなるまで、道路上に対してこの作業を行います。

公園エリアで重なっている他の場所の地形の編集を繰り返します。編集が終わったら、[Bookmarks] より [Bookmark 4 - Terrain Editing] (もしくは「3」を入力) に移動します。下図のようになるはずです。

シナリオの作成

次のセクションでは、再開発の可能性について 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 チュートリアルをご参照ください。