チュートリアル 14B : 地形のモデリング
チュートリアル データ
チュートリアル データは、[Help] メニュー → [Download Tutorials and Examples…] を選択し、[CityEngine Tutorial] からダウンロードできます。
このチュートリアルは、「チュートリアル 14A : 2D および 3D シェープ モデリング」の続編であり、そこで基本的な手動で描画・編集するテクニックについて学べます。本チュートリアルでは、地形を扱うためのツールやオプションについて、さらに詳しく学びます。
- シェープや道路を地形に合わせる
- 地形をシェープに合わせる
- [brush] ツールによる地形の編集をする
- 地形上での道路やシェープの描画をする
このチュートリアルは、CityEngine における典型的なワークフローを模倣し、2 つのパートで構成されています。
- 地形にフットプリントや道路を揃えることでシーンのコンテキストを準備します。
- シナリオを作成し、道路からのセットバックを追加し、マッシングを生成し、植生を追加することで、地形上の再開発案を作成します。
Part 1:シーン コンテキストの準備
以下の章では、道路、シェープ、地形を互いに整合させるためのさまざまな手法を見ていきます。地形上に道路を描く方法や、地形編集で生じる視覚的なレンダリングの乱れを除去する方法について学びます。これにより、現在の状況を可視化し、分析作業を行い、将来的な介入 (計画) を行うために、コンテキスト データを適切な状態に整えることができるようになります。
Part 2:道路とフットプリントをテレインに合わせる
道路とフットプリントをテレインに揃えるには、次の手順を実行します。
- [Navigator] ウィンドウで、Tutorial_14_Polygonal_Modeling チュートリアル フォルダーを展開します。
- scenes フォルダー内の 14B_ModelingOnTerrain.cej ファイルをダブルクリックして、シーンを [Viewport] ウィンドウで開きます。
このシーンは次の 3 つのレイヤーで構成されています。
- 地形
- 道路
- フットプリント
道路とフットプリントが地形より下に配置されていることに気づきましたか。これは、高さ情報を含まないジオリファレンス データをインポートした場合によく発生する問題です。 以下の手順では、これらを地形の上に移動して修正します。この作業は手動で行う必要はありません。CityEngine には、この処理を行うための [Align Streets to Terrain] および [Align Shapes to Terrain] ツールが用意されています。
まず、[Scene Editor] ウィンドウで [Streets] レイヤーを右クリックし、[Select Objects] をクリックして、すべてのストリートを選択します。

メインツールバーの [Align streets to terrain] ツールをクリックして、[Align Streets to Terrain] ダイアログボックスを開きます。


[Align Streets to Terrain] ダイアログ ボックスでは、ストリート ノードを地形に合わせるために 2 つのオプションを選択できます。[Project All] は選択したすべてのノードを指定した地形上に投影し、[Project Below] はテレインより下にあるノードだけを移動します。現在、すべてのストリート ノードが地形より下にあるため、どちらの設定でも結果は変わりません。
[Heightmap] オプションでは、どの地形にノードを合わせるかを選択します。
シーンに複数の地形がある場合でも、常に [y = 0] という選択肢があります。これは、すべてのストリート ノードを地表 (高さ 0) に配置することを意味します。
CityEngine では、ノードとシェープは常に平面です。
そのため、2 つのノード間の高低差はセグメント シェープによって均されます。
そのため、道路を地形に揃えた後でも、道路の一部が地形の下に入り込む場合があります。これを修正するためには、正のオフセット値を設定して道路を少し持ち上げることができます。このチュートリアルの後半では、ストリート シェープに合わせて地形を調整する方法も学びます。
[Heightmap] オプションが [Terrain] に設定されていることを確認し、その他のオプションはデフォルトのままにしておきます。[Finish] をクリックして、調整します。
すべての道路が地形に合わせて調整されました。
[Scene Editor] ウィンドウで [Footprint] レイヤー内のすべてのシェープを選択します。
メイン ツールバーの [Align Shapes to Terrain] ツールをクリックして、ダイアログ ボックスを開きます。


[Align Shapes to Terrain] ダイアログ ボックスは、[Align Streets to Terrain] ダイアログ ボックスとほぼ同じですが、追加の調整オプションが含まれている点が異なります。
[Project All] と [Project Below] の機能は、ストリート ノードではなくシェープの頂点に対しても同じように動作します。
[Project to Object Average] は、シェープ内のすべての頂点の平均高さを計算し、それらをその高さに揃える機能で、非平面シェープを平坦化するために使用できます。
次の画像は、これらの Translate オプションの違いを示しています
不均一な地形に配置された場合、[Translate to Maximum] では建物のフットプリントが目に見えて浮き上がり、[Translate to Minimum] ではすべての辺が地形上または地形より下になるように沈み込み、[Translate to Average] ではシェープの一部が地形より上に、一部が地形より下になります。
- ギャップが生じて、後で地形をさらに編集する必要を避けるために、[Align function] を [Translate to Minimum] に設定します。CityEngine では、Get Map Data を使用した場合も、同じ設定がフットプリントに適用されます。
さらに、[Heightmap] オプションを [Terrain] に設定し、[Finish] をクリックして調整を適用します。

Part 3:Translate to Maximum を使ってフットプリントを調整
通常は [Translate to Minimum] オプションが最も適していますが、シェープを調整した後、シェープの大部分が地形の下に入り込んでしまう場合があります。これは、急斜面にある大きなシェープでよく起きる問題です。 これを修正するには、次の手順を実行します。
シーンの右下へ移動するか、[Bookmarks] メニューで [Align footprints to terrain] をクリックします。そこに、調整に問題が発生している 2 つの例が表示されています。


これらのシェープを手動で選択するか、または [Shapes to translate to maximum] の [selection set] を適用します。


再度 [Align shapes to terrain] ツールを実行します。ただし今回は、[Align function] を [Translate to Maximum] に設定します。

ずっと良くなりました。
Part 4:フットプリントに地形を調整
[Translate to Maximum] オプションでフットプリントを調整すると、建物の一部が地表に接していない状態になることがあります。 これを修正するには、シェープの高さに合わせて地形を持ち上げることが必要です。
シェープを選択したまま、メイン ツールバーの [Align Terrain to Shapes] ツールをクリックします。

[Add border] チェック ボックスがオンになっている場合、 調整処理はシェープの範囲に加えて、その外側に少しだけオフセットされた領域にも適用されます。
デフォルトでは、元の地形と編集後の地形の間が垂直方向に調整されます。[Smooth borders] オプションを使用すると、[Smooth range] または [Constant gradient] を選択して、地形のつなぎ方を指定できます。


見た目のよい結果にするために、[Smooth borders] を Smooth range に設定し、 [Border range] を 2 m に、さらに [Border easing] のチェック ボックスをオンにします。その他のオプションはすべてデフォルトのままにして、[Apply] をクリックしてから [Close] をクリックします。
地形は、選択したシェープの周囲で持ち上げられました。
シェープの選択を解除し、左側の建物へズームインして詳しく確認します。(ブックマーク: Terrain smoothing)
元の地形と編集後の地形の境界部分に、レンダリングの乱れが見えることが分かります。
[Terrain Smooth Brush] ツールを使用し地形レンダリングの乱れを取り除きます。Brush をクリックすると、スムージングが適用される範囲を示すオレンジ色の円が [Viewport] ウィンドウに表示されます。この円が地形の下にある場合、半透明で表示されます。
次に進む前に、地形の編集時の視認性を高めるためにシーンの設定を調整します。
[Scene Editor] ウィンドウで [Terrain] レイヤーを選択します。 [Inspector] ウィンドウの [Layer Options] セクションで、[Wireframe] オプションを [Enabled] に設定します。
地形の上にグリッドが表示されるようになりました。
レンダリングの乱れを滑らかにします。 [Viewport] ウィンドウで、ポインターの位置にスムージングを適用するために地形をクリックし、スムージングを続けるためにドラッグします。
ご覧のとおり、デフォルト設定ではスムージングが強すぎます。スムージングを元に戻すには Ctrl+Z を押します。[Terrain Smooth Brush] ツールのオプションで、[brush size]、[strength]、[smoothing behavior] を変更することで、設定を微調整します。[strength] は、地形の解像度に依存します。
このシーンの地形に対しては、[Strength] を 2.5% に設定し、[Brush size] を 5 m に縮小して細かい操作をできるようにします。円を建物の少し外側に配置し、地形の急な部分を滑らかにするために エッジに沿ってドラッグします。

必要な場所で、地形が調整されたすべての建物の縁に沿ってスムージングを続けます。あなたの結果は、次の画像と似たようなものになるはずです。

素晴らしい、これですべてが正しい位置に配置されました。
Part 5:地形を道路に調整
シーンをさらに詳しく調べると、いくつかの場所で地形が道路と重なっているのが確認できます (ブックマーク: Align terrain to streets)。この理由は、道路のジオメトリーがノードの高さに依存しているためです。ノード シェープは、ノードと同じ高さを持ち、2 つのノード間の高さの差はレーン シェープによって調整されます。この重なりを修正するために、再び [Align Terrain to Shapes] ツールを使用します。
シーン内のすべての [streets] を選択し、[Align Terrain to Shapes] ツールをクリックします。
前回の調整時の設定をそのままにします。

[Apply] をクリックしてから [Close] をクリックします。

これで、すべての道路が完全に見えるようになりました。
Part 6:欠損している道路を追加
不完全なデータの場合、基になるマップをなぞっていくつかのデータを追加する必要があることがあります。この例では、いくつかの道路が欠けており、次の手順では地形上に道路を手動で描く方法を学びます。
川の上のエリアへ移動します。(ブックマーク: Add missing street)

[Polygonal Street Creation] ツール (G) が選択されていることを確認します。 ツールオプションで、[Street Configuration] オプションの [Neighborhood_Street_6m] に設定し、[Re-use settings from neighbors] のトグル ボタンをオフにします。このボタンがオンのままだと、既存の道路に接続するセグメントを描き始める際に、選択した道路構成が適用されないためです。

カーブの中心で 最初のクリックを行い、道路に沿ってなぞります。新しいノードは それぞれ自動的に地形上に配置されます。

下の道路に接続した後、Esc を押して描画モードを終了します。 地形は、[Align Terrain to Shapes] ダイアログ ボックスで最後に使用した設定に基づいて、自動的にストリート シェープに調整されます。

Part 7:橋を作成
ほとんどの場合、道路は地形に沿って配置するのが最適です。 しかし、橋、高架橋、ランプ、橋脚のような高架構造物の場合については、別の手法が必要になります。
少しさらにズーム アウトし、先ほど描いた道路の左側のエリアに焦点を当てます(ブックマーク: Add a bridge)。
ご覧のとおり、地形から、欠けている道路が川を横切っていることがわかります。
[Polygonal Street Creation] ツールを選択します。 [Street Configuration] オプションを [Simple_Street_Generic_12m] に設定し、 [Align terrain] と [Intersect Segments] のトグル ボタンをオフにします。

ベースマップ画像をガイドにして、地形の端から道路をなぞり始めます。

反対側の既存の道路に接続します。

地形マップの端まで道路を完成させます。

[Edit street/curves] ツールをクリックし、 マップ上の線に一致させるために、横方向にカーブを調整するよう緑のハンドルをドラッグします。
次に、カーブを垂直方向に調整します。
カメラを移動して、緑のハンドルの向きが水平から垂直に変わるまで浅い角度にします。カーブが既存の地形により近く沿うように、緑のハンドルをドラッグします。

次のストリート セグメントも合わせて調整します。

橋のあとの道路の部分を選択します。

[Align Terrain to Shapes] ツールを使用して、シェープを調整します。
これで最初のパートをやり遂げました。シーンはあなたの再開発提案に向けて準備が整いました。
第 2 パートに進む前に、シーンを保存することを検討してください。
バックアップとして、これまでの手順がすべて完了している [14B_ModelingOnTerrain_Redevelopment.cej] シーンも利用できます。
Part 8:再開発提案を作成
このパートでは、次の 2 つの [scenarios] を作成します。
- 既存条件
- 再開発
再開発の目的は、既存の建物を取り除き、敷地を A・B・C の 3 つのセクションに分割し、それぞれに異なるマッシングを与えることです。A と B のセクションについては、lot と block シェープを手動で描き、Esri.lib の CGA ルールを割り当ててマッシングを生成します。C のセクションについては、マッシングはすでに事前に作られているため、静的モデルとしてインポートし、シーン内で正しい位置に配置します。

Part 9:敷地の準備
以下の手順では、現在の建築環境と新しい再開発案を比較できるようにシーンを設定します。そのために、次の 2 つのシナリオを作成します。
- 既存条件: 敷地内の既存建物と、以前にあなたが修正した地形 レイヤーが含まれています。
- 再開発: 既存の地形をコピーしたものの上に、新しい開発内容を配置して表示します。このコピーした地形は、提案内容に合わせてさらに修正していきます。
敷地へ移動し、既存の建物をすべて選択します (ブックマーク: Site)。

選択した建物を、コンテキスト メニューを使用するか、または Ctrl + X を押して切り取ります。

[Scene Editor] ウィンドウで、プラス アイコンをクリックして Existing Conditions という名前の [New scenario] を作成します。新しい Existing Conditions scenario が作成されます。
[ID] は最大 4 文字まで可能で、[Scene Editor] ウィンドウに表示されます。これを EC に設定し、[OK] をクリックします。
Ctrl+V を押して、先ほど切り取った建物をこの作成したシナリオに貼り付けて追加します。 [Scene Editor] ウィンドウに新しいレイヤーが作成されます。これを Existing Buildings にリネームします。

[Scene Editor] ウィンドウで Terrain レイヤーを選択します。 [Inspector] ウィンドウで、Scenario の横にある [Edit] をクリックして、シナリオ タイプを [Default Layer] から [Scenario Layer] に変更します。

新しく作成されたシナリオを右クリックし、[Duplicate] をクリックします。

複製したシナリオに Redevelopment という名前を付けます。
作成後、Redevelopment シナリオがアクティブに設定されます。
シナリオから Existing Buildings レイヤーを削除し、地形 レイヤーの名前を Terrain New に変更します。
RD と EC のシナリオを切り替えて違いを確認します。地形はどちらのシナリオでもまだ同じように見えますが、これ以降の編集は、現在アクティブなシナリオ内の地形にのみ適用されます。
Part 10:道路からのセットバックを追加
次に、ガイドを使用して敷地に道路からのセットバックを追加します。 すべてについて、作業を簡単にするために、歩道からの距離として 7 m を使用します。これは既存の建物のセットバックとほぼ同じ距離でもあります。
敷地の右下へ移動し、[Guide Creation] ツールをクリックします。歩道の外側の縁をクリックし、ガイドをドラッグし始めます。
破線と垂線の記号によって示されているように、ガイドは地形上に作成されることになります。しかし、地形とは関係なく、セットバックは歩道から正確に 7 m 設定する必要があります。
ツール オプションで [Force Planar] のトグルボタンをオンにします。これで、破線が歩道と同じ平面上に描画され、オレンジ色の垂直線が、描画平面上の位置と地形との垂直距離を示します。[Offset] オプションを 7 m に設定し、クリックして平面ガイドを作成します。

シーンが次の画像と似たようになるまで、ガイドを追加し続けます。
視認性を高めるために、[Visibility setting] で地形を一時的に非表示にするか、F9 を押して非表示にすることができます。
Part 11:マッシング用のシェープを描く
セクション A により近づいて移動します。このセクションでは、利用可能な外周全体を覆うシェープを描きます。
[Polygonal Shape Creation] ツール (S) を選択します。[Force Planar] のトグルボタンがオンになっていることを確認します。これにより、最初に描いた点の高さの値がすべての後続の点に使用され、平面のシェープが保証されます。Y を押してビューを真上に設定し、[View settings] ツールの [Wireframe on shaded/textured] (7) オプションのチェックを外して、グリッドを一時的に非表示にします。
前の建物の 2 列目の右下の角から始めます。

次の点を、既存の建物の間にあるガイドの交点に配置します。

ガイドの交点に点を追加しながら、道路に沿ってなぞります。
上側左の部分にはガイドを追加していないため、次の点の配置を推測する必要があります。カメラ位置を下げて、垂直線が見えるまで下げます。
左上側の道路のカーブ近くに、次の点を配置するためにクリックします。
[Force Planar] モードでは、すべてのガイドは現在の描画平面に投影されます。
投影されたガイドにスナップし、マウスを動かして、垂直線が前の建物の 1 列目の左上の角に来るまで移動します。

2 列目の建物の右上の角まで続けて進み、点を追加します。最初の点をクリックするか、Enter を押してポリゴンを終了します。

新しく作成したシェープに、/ESRI.lib/rules/Components/Massing/Urban_Block フォルダーにある [Perimeter_Stacked.cga] ルールを割り当て、[Wireframe on shaded/textured] オプションをオンにします。

[Inspector] ウィンドウで、[Height] を 24、[Depth] を 12、そして [Lower_Side_Position] を Front-Right-Corner に設定します。

セクション B では、長屋を生成するために 2 つの長方形のシェープを描きます。 1 つは上側のガイドから開始し、もう 1 つは下側から開始します。
[Rectangular Shape Creation] ツール (Shift+S) に切り替えます。 [Force Planar] のトグルボタンはオンのままにしておきます。両方の長方形について、長さを 48 m、奥行きを 18 m に設定します。

/ESRI.lib/rules/Components/Massing/Suburban_Block/ フォルダーにある [Rowhouses.cga] ルールを両方のシェープに割り当てます。

[Inspector] ウィンドウで、上段のマス モデルの [Height] パラメーターを 9 m に、下段のものを 12 m に設定します。

Part 12:L 字型のマスモデルを配置
セクション C については、シーンに配置するための既存のマス モデルがすでにあります。
[Navigator] ウィンドウで、[assets] フォルダー内の [L-Shaped Mass.glb] ファイルをシーンにドラッグします。


[Visibility Settings] を開くために F9 を押して、地形を一時的に非表示にします。 [Transform Move] ツールをクリックし、Adjust Position and Orientation (o) トグルボタンをオンにして、ハンドル位置を外側下端の角に設定します。

F9 を押して地形の表示を再びオンにし、オレンジ色のボールを使って L 字型マスモデルを、下側のガイドと以前の建物位置の交点へ移動します。

[Transform Rotate] ツールに切り替え、緑のハンドルをドラッグして、L 字型のガイドに合うまで回転させます。

F9 を押して、地形を再び非表示にします。
建物の下部がガイドと完全に調整されていないことがわかります。 その理由は、あなたが作成したガイドが、平らではない道路から作成されたものだからです。赤いハンドルを使って垂直方向にも調整させることはできますが、 このプロジェクトでは建物は平面のままにしておくべきなので、そのままにしておいて構いません。
地形を再び表示し、[Transform Move] ツールをクリックします。[Enable Copy on Move] のトグルボタンをオンにし、オレンジのボールを上側のガイドにスナップするまでドラッグします。

[Transform Rotate] ツールをクリックし、L 字型がガイドに調整するまで回転させます。
あなたのシーンは次の画像と同じように見えるはずです。

Part 13:マッシングを地形に調整
マッシングが完了したので、次のステップは建物を地形に調整させることです。各セクションごとに、最良の結果を得るために異なる戦略を適用する必要があります。
外周の建物により近づいて移動します。見てわかるように、これは地形とかなりうまく統合されています。 しかし、ストリート レベルでは、建物への直接アクセスがあるべきです。

メイン ツールバーで [Terrain Edit Brush] ツールをクリックします。 ツール オプションで [Brush Size] を 3.5 m、[Smooth Borders] を [Smooth Range]、[Range] を 2.5 m に設定し、[Easing] トグルボタンをオンにします。スムージング範囲は半透明の外側のリング によって視覚化されます。
スポイト (y) を道路の上にホバーさせて、地形の高さを道路のレベルに設定します。 または、information displayに示されているポインター位置の標高を読み取り、手動で適切な値を入力することもできます。

道路が完全に平らではないため、新たな重なりを避けるために、道路の上にホバーせずに建物に沿ってドラッグします。

必要であれば、編集した地形と既存の地形の間の領域を均すために、[Terrain Smooth Brush] ツールを使用します。

上側の道路に建物のアクセス エリアを作成するために、上記の手順を繰り返します。
次に、セクション B に取り組みます。
目標は、既存の地形に対して 3 分の 1 の割合の一貫した勾配で、長屋周辺の地形を調整させることです。 これにより、追加の対策に頼ることなく植生を育てるのに適した斜面になります。両列のシェープを選択します。

[Align Terrain to Shapes] ツールをクリックして、ダイアログ ボックスを開きます。 [Smooth borders] を [Constant gradient] に設定し、[Border range] を最大値の 50 m に、そして [Border gradient] を 33.33 度に設定します。

[Apply] をクリックしてから [Close] をクリックします。

建物の標高を道路の標高に一致させるために、地形を平らにします。 これを行うには、[Terrain Edit Brush] ツール を使用するか、長屋シェープをコピーして道路の近くに移動し、前回の設定を使用して [Align Terrain to Shapes] ツールを適用することができます。

結果を見るために、一時的にシェープを削除します。

上側の列に対しても位置合わせの手順を繰り返し、必要な箇所の他のエリアも滑らかにします。
最後に、セクション C に取り組みます。[Transform Move] ツールを使用して、2 つの L 字型マス モデルを地形上に手動で調整します。
上側の L 字型を選択します。
[Transform Move] ツールをクリックし、右下の角が地表に触れるまで、緑の矢印 (y 軸) をドラッグします。


道路から下側の L 字型へのアクセスを可能にするために、セクション A のアクセス作業時と同じ方法で [Terrain Edit Brush] ツールを適用します。
Part 14:植生を追加
次のステップでは、建物の間にいくつかの木を追加します。すべての木を手動で植える代わりに、エリア上に木をランダムに配置する CGA ルール を使用します。
このルールを適用するために、まず建物の間のエリアを覆うシェープを描きます。
[Polygonal Shape Creation] ツールをクリックします。 ツール オプションで、[Force Planar] のトグルボタンがオフになっていることを確認します。 このルールでは、シェープが平面になることを望まないためです。そうしないと、木が地形より下や上に配置されてしまいます。
次の画像と似たようなポリゴンを描きます。

シェープに、[rules] フォルダー内の [Plant_Distributor_Simple.cga] ルールを割り当てます。[Plant_Distributor_Simple.cga] ルールは、[ESRI.lib] にある[Plant_Distributor.cga] ルールを修正したもので、設定項目を減らし、木のデフォルトの表現として LowPoly が設定されています。

このルールは、ランダム シード値に基づいて、ランダムな種類・サイズ・位置で木を配置します。シードを変更するとすぐに、異なるバリエーションが得られます。
ランダム シードを変更するには、メインメニューで [Shapes] → [Update Seed] をクリックするか Ctrl + Shift + G を押します。[Inspector] ウィンドウで [Density] や [Distribution] の属性を調整することで、結果をさらにカスタマイズできます。次の画像では、[Density] が 0.2、[Distribution] が Border に設定されています。

セクション B については、その間にもう 1 つポリゴンを作成し、同じルールを割り当てます。地表より上に幹が出ないように、地形をシェープに合わせて調整します。

セクション A については、建物から少しずらして、中庭にポリゴンを描きます。
これで終了です。
[Existing Conditions] と [Redevelopment] のシナリオを切り替えることができます。プロジェクトをより良く可視化するために、 [Terrain] のワイヤーフレームを無効にし、[Visibility settings] で [Shapes] と [Graph Networks] を非表示にします。


