チュートリアル データは、[Help] メニュー → [Download Tutorials and Examples…] を選択し、[CityEngine Tutorial] からダウンロードできます。
本チュートリアルでは、道路ネットワークおよび道路の詳細モデルを作成していきます。作成した道路グラフは湖のような障害や、テレインなどにも対応します。Part 2 では、道路グラフから道路シェープを作成します。道路に CGA シェープ グラマー ルールを適用して、詳細な道路モデルを作成していきます。そして、Part 3 では、道路ネットワークを作成するのに必要な属性を見ていきます。
演習 |
---|
・Part 1 : テレインの生成 |
・Part 2 : 道路の生成:標高マップと障害物マップ |
・Part 3 : 道路:Cleanup ツール |
・Part 4 : オブジェクトの配置 |
・Part 5 : ダイナミック シティ レイアウト |
・Part 6 : 道路パターンの例 |
通常、CityEngine のシーンを作成した後はテレインの生成を行います。テレインは単一画像ファイルまたは DEM (デジタル標高モデル) から生成できます。GEO TIF ファイル、および座標系の情報をもつ DEM もサポートしています。※ CityEngine で使用する「テレイン」という単語は、ArcGIS の「ラスター」に相当し、ArcGIS の「テレイン」とは別の意味になります。
現在 CityEngine では画像ベースのテレイン (グレースケールの標高マップ) のみをサポートしており、3D メッシュはサポートしていません。3D メッシュ、または他のデータ タイプのデータを持つ場合は、Daylong Graphics の Leveller などを使用して標高マップに変換する必要があります。
テレインが作成されると、[Scene Editor] ウィンドウにレイヤーが表示され、レイヤーを選択すると [Inspector] ウィンドウで属性を見ることができます。
Terrain Resolution (テレイン面の分割数) と Wireframe alpha 値を編集できます。Wireframe alpha 値は [3D View] ウィンドウの表示設定で、Wireframe on Shaded/Textured (またはショートカットとして 7 キーを押す) を有効にするとテレイン上に表示されるワイヤーフレームの値を決定できます。
チュートリアル 1 では、高さが無い平面上に道路を生成する方法を学習しました。Part 2 では、実際のテレインの標高上に道路を生成する Grow Streets (道路生成) アルゴリズムを学習します。
Grow Street はランダムに道路を生成します。この場合、道路を生成したくない水部や山などにも関係なく道路が生成されてしまいます。道路が不要な場所に道路を生成させないためには、CityEngine では Obstacle Maps (障害物マップ) を利用することができます。Obstacle Map とは道路を生成する範囲を輝度で定義する白黒の画像です。実際に作成してみましょう。
Obstacle レイヤーを作成したら、選択し、[Inspector] ウィンドウの Layer Attributes を確認します。以下のマップの属性を引き継ぐコード (true か false のブール値) を探します。
attr obstacle = brightness < 0.5
道路を生成した際、道路同士が重なるなどの問題が起こることがあります。これを競合と呼び、ある状況下において、CityEngine のダイナミック シティ レイアウト システムは、道路ネットワークの競合する部分を適切な図形として対処できない場合があります。そのような場合、CityEngine は競合するグラフ セグメントが赤くハイライトされます。これを解決するためには、手動で道路幅や、カーブ半径などの道路パラメーターを変更して修正することもできますが、手間と時間がかかります。競合を解決する方法として、Cleanup Graph ツールを使用することで簡単に修正することができます。
実現世界では、道路はテレインの表面に沿って、建物はテレイン上に配置されます。しかし、シーン内で新規に作成したオブジェクトが完璧に配置されることは稀です。例えば、2D GIS データをインポートした場合、配置編集が可能なツールが必要になります。CityEngine では、特定のオブジェクト タイプを他に合わせるコマンドが用意されています。
良く利用する配置タイプ:
オブジェクト | 配置タイプ | 例 |
---|---|---|
グラフ セグメントをテレインに合わせて配置 | >テレイン | 道路セグメントをテレイン上に配置 |
静的モデルをテレインに合わせて配置 | >テレイン | フットプリントをテレイン上に配置 |
テレインをシェープに合わせて配置 | >シェープ | テレインを道路に合わせて配置 |
手動で描画、またはインポートしたシェープを静的モデルと呼びます。CityEngine 独自のシェープ生成システム「ダイナミック シティ レイアウト」は動的にシェープを作成するため、作成されたシェープはダイナミック シェープと呼びます。しかし、ダイナミック シェープでは alignment ツールで配置できません。ダイナミック シェープは (ダイナミック) ブロックの子として作成されるため、Block Subdivision パラメーターには配置用の特定のパラメーターが含まれています。詳細については本チュートリアルの後半の Block Subdivision をご参考ください。
今回道路は既に配置されているため、大きな変更はありません。テレインによっては、Maximal raise distance 値を設定する必要があります。詳細な設定の説明については Help メニュー → CityEngine Help (または F1 キーを押す) のマニュアルをご参照ください。
このシーンでは、静的モデルが無いため、テレインをシェープに合わせて配置するステップに進みます。
テレインがどのように変化したかをご確認ください。テレインによっては、変化はとても小さいものになります。より大きな変化を得るには、テレインの最高標高値を編集する必要があります。
3. Scene ウィンドウでテレイン レイヤーを選択し、Inspector ウィンドウでテレインの Layer Attributes を確認します。4. Enable elevationDelta チェックボックスをクリックして、数回切り替えます。変化が分かりにくい場合は、道路がテレインの傾斜上にある場所をズームしてください。
ElevationDelta の有効化で、テレインがどのように変化するかを確認します。確認すると分かる通り、配置用のデータ(elevationDelta)があることにより、シェープをより綺麗に配置することができます。
下図は 16 ビットの delta マップ (灰色 = 変更なし; 黒=低い; 白=高い) です。この画像は現在の Example とはかなり違うはずです。
ダイナミック シティ レイアウトはユーザーが素早く街のレイアウトを作成するためのツールと機能のセットです。このダイナミック シティ レイアウトで作成された一連のシェープには 3D モデルを生成するための CGA ルールを適用できるようになります。主なエレメントは Streets と Blocks です。Blocks は道路のセンター ラインがエリアを物理的に囲い、ネットワークが正常に接続された際に作成されます。Blocks は選択されると点線で表示されます。Street Segments と Blocks は共に子 (Dynamic Shape) の生成を管理するパラメーターを個別に持ちます。これまでのステップで生成した道路を選択すると、シェープの生成に影響する 3 つの選択可能なオブジェクト タイプのパラメーターがあることが分かります。
これらの 3 つのオブジェクト タイプに共通するものは、シェープを生成するための特定のオブジェクト タイプが必要か否かを管理する shapeCreation パラメーターです。例えば、Street Shape は必要であるが、Blocks の分割は必要ないときなどに利用します。つまり、Dynamic Shape とは Graph Segments、Graph Nodes および Blocks の結果ということです。
これをより理解するために以下の操作を行い、変化を確認します。
ここでは、Block Subdivision に焦点を当てます。各 Subdivision アルゴリズムは専用のパラメーターを持ち、特定のパターンを生成することができます。
シェープの生成はダイナミック シティ レイアウトを使用した純粋な対話的タスクです。シェープの生成 (Shape Creation) とブロック分割 (Block Subdivision) は CityEngine のルール システム (CGA) とは関係がありません。シェープは最後の 3D モデルの生成で、シェープに CGA ルールをアサインする前に存在していなければなりません。しかし、それとは関係なく CGA を使用してすべての Block Shape (または他の Parcel Shape) を分割するオプションもあります。
CityEngine には、グラフセグメントをインポートするオプションのほかに、ツールバー上に Street Graphs を生成する 2 つのツールを提供しています。それが、フリーハンド道路生成 (Freehand Street Creation) とポリゴン道路生成 (Polygonal Street Creation) ツールです。
操作手順:
Freehand Street Creation、Polygonal Street Creation のツールを使用して、道路をいくつか作成します。
Graph メニュー → Street Creation Settings… でダイアログを開き、道路の詳細設定を定義します。
Street Creation Settings ダイアログで、任意に設定を行い、道路をさらに追加します。
以下の手順で、曲線、または直線の道路セグメントを作成します。
操作手順:
操作手順:
ここまでは、道路ネットワーク作成の基本の設定を紹介してきました。ここでは、CityEngine で利用できる様々な道路ネットワークのテクニックをご紹介します。
これで中心部では道路ネットワークが RADIAL (放射線状) に配備され、郊外では道路がRASTER (格子状) スタイルに配備されました。このように、生成方法次第では様々な形状の道路を生成することができます。以下では、その他の道路生成の例をリストします。