チュートリアル データは、[Help] メニュー → [Download Tutorials and Examples…] を選択し、[CityEngine Tutorial] からダウンロードできます。
通常 CityEngine シーンを起動した際、まずテレインの生成を行います。テレインは単一画像ファイル、または座標系の情報を持つ GeoTIFF ファイルなどの DEM (デジタル標高モデル) から生成できます。※ CityEngine で使用する「テレイン」という単語は、ArcGIS の「ラスター」に相当し、ArcGIS の「テレイン」とは別の意味になります。
このチュートリアルでは、テレインの作成と配置、道路の生成と道路のクリーンアップ、そしてダイナミック シティ レイアウトの基礎について学習します。
演習 |
---|
・Part 1 : テレインの生成 |
・Part 2 : 道路の生成 |
・Part 3 : 道路のクリーンアップ |
・Part 4 : テレインの配置 |
・Part 5 : ダイナミック シティ レイアウト |
・Part 6 : 道路の操作 |
テレインを生成するには、以下を行います。
Tutorial_02_Terrain_and_Dynamic_City_Layouts チュートリアル フォルダーを展開します。
Part_1_Start.cej ファイルをクリックしてシーンを開きます。
[Navigator] ウィンドウのプロジェクトから maps フォルダーを開き、Viewport に elevation.jpg 画像をドラッグして [Import] ダイアログを開きます。
[Terrain Import] を選択し、[Next] をクリックします。
Texture file で、[Browse] をクリックして maps フォルダーの topo.png テクスチャ ファイルを選択します。
[Open] をクリックします。
[Channel] プロパティを brightness のままにします。
[Maximum Height] を 150 に設定します。
地理参照情報なしで画像を読み込んだ場合、そのピクセル解像度がテレイン ディメンションとして設定されます。
Terrain elevation レイヤーが作成され、[Scene Editor] ウィンドウに追加されます。
解像度はデフォルトで標高マップ画像のサイズに設定されていますが、自由に変更することができます。グリッド サイズをカスタマイズすると、シーンのパフォーマンスに影響を与えます。scnes フォルダー内の Part_1_End.cej を開くと、模範の結果を見ることができます。
現在 CityEngine では画像ベースのテレイン (グレースケールの標高マップ) のみをサポートしており、3D メッシュはサポートしていません。3D メッシュ、または他のデータ タイプをお持ちの場合は、標高マップに変換する必要があります。
チュートリアル 1 では、高さが無い平面上に道路を生成する方法を学習しました。このセクションでは実際のテレインの標高上に道路を生成する [Grow Streets] ツールとアルゴリズムを使用して、実際のテレインの標高に直接道路を適応させます。
Part_2_Start.cej ファイルをクリックし、シーンを開きます。
メイン メニューの Graph → Grow Streets から [Grow Streets] ダイアログを開きます。
[Environment Settings] セクションを展開します。
[Apply] をクリックして道路を生成します。Streetnetwork レイヤーが Scene Editor に追加されています。 テレインに合わせて自動的に道路が配置されます。
[Grow Street] ツールはランダムに道路を生成します。これには道路を生成したくないエリアも含まれています。障害物マップを作成することで、道路を生成したくない部分を空白にすることができ、手動でのクリーンアップ作業を最小限に抑えることができます。障害物マップは、白黒の画像で明るさによって道が生成される領域を定義したものです。
Scene Editor を右クリックし、[New] → [New Map Layer] を選択して、[New Map Layer] ダイアログを開きます。
[Next] をクリックします。
[Browse] をクリックし、maps フォルダーから obstacles.png 画像を選択します。
[Channel] プロパティは brightness のままにします。
[Obstacle Threshold] の値を 0.5 に変更します。Obstacle Threshold は道路を生成するエリアと生成しないエリアを区別する画像の輝度を定義します。
[Finish] をクリックします。Scene Editor に New Obstacle マップ レイヤーが作成されます。
[Inspector] ウィンドウの [Layer Attribute] セクションを展開します。
attr obstacle = brightness < 0.5
このコードでは、マップの属性をブール値 (true/false) として決定しています。
道路を生成する際に障害物マップを適用するには、まず Scene Editor の New Obstacle レイヤーの [Visibility] ボックスをオフにします。
Viewport をクリックして、Scene Editor 内の New Obstacle レイヤーの選択を解除します。
メイン メニューの [Graph] → [Grow Streets…] を再度クリックします。
[Environment Settings] セクションを展開します。
[Obstacle map] 横のドロップダウン リストをクリックし、[New Obstacle] を選択して障害物マップを割り当てます。
[Grow Streets] ツールは、障害物マップの白い部分に道路を作成し、黒い部分には道路を生成しません。Part_2_End.cej シーンを開くと、模範の結果を見ることができます。
[Grow Streets] ツールでは、パラメーターを使用して道路パターンを自動的に作成することもできます。詳細は道路パターンの例をご参照ください。
道路ネットワークは時々クリーン アップが必要な競合するグラフ セグメントを持っている場合があります。適切なシェープが作成できない場合、これらのエラーは赤でハイライトされます。道路ネットワークの問題をクリーンアップするには、[Cleanup Graph] ツールを使用します。
Part_3_Start.cej シーンを開きます。
[Select] ツールで、競合するセグメントの周辺を選択します。
ツールバーの [Cleanup Graph] ツール (C) をクリックするか、メイン メニューから [Graph] → [Cleanup Graph…] を選択すると、[Cleanup Graph] ダイアログ ボックスが表示されます。
デフォルトの設定のままにします。詳細は Cleanup Street をご参照ください。
Part_3_End.cej シーンを開くと、模範の結果を見ることができます。
作成された道路は、通常テレインの表面や建物の位置に沿って配置されます。しかし 2D GIS データをインポートした場合など、シーン内で作成されたオブジェクトがテレインに正しく配置されていない場合があります。
道路や図形をテレインに配置することができるツール:
ツール名 | 概要 |
---|---|
Align streets to terrain | 道路セグメントをテレイン上に投影 |
Align shapes to terrain | 静的なシェープをテレイン上に投影* |
Align terrain to shapes | テレインを静的または動的なシェープに配置 |
*手動で描画、またはインポートしたシェープを静的シェープと呼びます。配置に関して、[Dynamic City layout] ツールは、[Allignment] ツールで配置できない動的なシェープを作成します。 ダイナミック シェープは (ダイナミック) ブロックの子として作成されるため (道路も同様)、Block Subdivisioin パラメーターには配置のための特定パラメーターが含まれています。詳細は Block parameters をご参照ください。
まず、グラフをテレインに配置します。
ツールバーの [Align Graph to Terrain] ツールをクリック、またはメイン メニューの [Graph] → [Align Graph to Terrain] を選択します。
[Heightmap] 横のドロップダウン ダウンリストから [Terrain elvation] を選択します。 詳細はテレインへ道路を配置をご参照ください。
[Offset] を 0.2 に設定します。
この変更はあまり目立ちません。より強い効果を得るには、[Maximum Height] の値を変更します。
次に、シーンでテレイン ダイナミック シェープに合わせて配置します。
すでにテレインに沿った道並みになっているので、変化はごく僅かです。
attr elevation = map_01(brightness, minHeight, maxHeight) + elevationDelta + elevationOffset
シーンを保存します。
[File] → [Refresh Workspace] をクリックし、チュートリアルのプロジェクト ワークスペースを更新します。data フォルダーの Part_4_Start.cej フォルダーに標高デルタ ファイルが含まれています。 最初にテレインを配置させた後、必ずシーンを保存してください。
トップ ビューから標高ファイルを表示するには、メイン メニューの [Windows] → [New Viewport] → [Top View] をクリックして、新しいビューポートを作成します。
elevation_delta ファイルを Top View ビューポートにドラッグします。
16 ビットのデルタ マップには、標高の変化 (灰色 = 変化なし、黒 = 低い、白 = 高い) が格納されています。詳細は、Elevation delta maps をご参照ください。Part_4_End.cej シーンを開くと、模範の結果を見ることができます。
ダイナミック シティ レイアウトはユーザーが素早く都市のレイアウトを作成するためのツール セットと機能です。その結果一連のシェープが作成され、CGA ルール で 3D モデルを作成するのにすぐに利用できます。主なエレメントは道路とブロックです。ブロックは道路の中心線が物理的にエリアを囲んでいる (かつネットワークが適切に接続されている) 場合に作成されます。ブロックは点線で表現され、選択することができます。
道路セグメントもブロックもそれぞれのパラメーターにより、その子であるダイナミック シェープが生成されます。
作成した道路を探索すると、Segments、Nodes、Blocks という 3 つのオブジェクト タイプが選択可能で、そのパラメーターによって形状の作成が左右されることがわかります。
オブジェクト タイプ | パラメーター |
---|---|
Segment Parameters | |
Node Parameters | |
Block Parameters |
[Create Shape] パラメーターは 3 つのオブジェクト タイプに共通で、シェープ ジオメトリの作成を有効または無効にします。例えば、道路にはシェープを作成したいが、ブロックには分割を作成したくない場合などです。道路や歩道の幅を調整したり、ロータリーを作ってその半径を編集したり、袋小路を作ったりと、さまざまなオブジェクト タイプのパラメーターを自由に調整することができます。
次に、ブロック分割を使って作業します。シーン内のブロックを選択し、[Subdivision Type] のパラメーターを変更します。各分割アルゴリズムは独自のパラメーターを持ち、特定のパターンを作成します。
分割タイプ | パラメーター |
---|---|
Recursive Subdivision | |
Skeleton Subdivision | |
Offset Subdivision | |
No Subdivision |
これまでダイナミック シェープの作成方法について学習しました。次のセクションでは、道路描画、道路と曲線の編集、道路モデルの生成について学習します。
これまでのセクションでは、ダイナミック シティ レイアウト ツールを使用して道路ネットワークを作成し、道路のクリーンアップを実践し、テレインの配置を行いました。このセクションでは、道路の操作における一般的なワークフローについて学習します。
はじめに、[Polygonal Street Creation] ツールと [Freehand Street Creation] ツールの両方を使用して道路を描画をします。
既存のネットワークに道路を追加するには、ツールバーの [Polygonal Street Creation] (G) ツールをクリックします。a. スナップとクリックで、新しい道路の最初のノードを配置します。 b. ダブルクリックで道路の描画を終了します。 セグメントの長さやその他のプロパティは、[Polygonal Street Creation] ツールの [オプション] ウィンドウで設定できます。詳細は、Draw a polygonal street をご参照ください。
フリーハンドで道路を描くには、ツールバーの [Frreehand Street Creation] ツール (Shift+G) をクリックします。a. スナップとクリックで、新しい道路を描画します。 b. マウスのボタンを離すと、道路の描画が終了します。 [Freehand Street Creation] ツールの [オプション] ウィンドウで、道路の幅やその他のプロパティを設定することができます。詳細は Draw a street freehand をご参照ください。
次に、道路を直線から曲線に、あるいは曲線から直線へ変更します。
曲線を持った道路はポリゴン数が多くなるので、最小限にとどめることをおすすめします。
続けて [Edit Streets/Curves] ツールを使用して道路を曲線を編集します。
最後に、Street Construction Simple.cga ルールを使用して道路モデルを生成します。
長さ、幅、曲線を含め、道路を編集してその場でモデルを再生成することができます。
道路シェープを選択し、Inspector で [Start Rule] リンクをクリックします。これにより、CGA Editor でルールを確認できます。 以下の図は、StartRules とそれに対応する道路のシェープを色で示しています。
color_streetshapes.cga ルールを道路に適用することで、よりカラー シェープを探求することができます。
Part_5_End.cej を開くと、模範の結果を見ることができます。
このチュートリアルでは、テレインの作成、道路の自動生成、道路のクリーンアップ、テレインの配置、ダイナミック シティ レイアウトの作成について学習しました。そして、道路の描画と編集、道路モデルの生成について学習しました。