概要
前回シンプルな街ジェネレーターを実装しましたが、今回は窓形状のバリエーションを増やし、生成するビル形態を複雑にするように改良しました。
窓形状の多様化
前回のビルジェネレーターでは横長の窓のみしかありませんでした。
そこでGrid状の窓、縦長の窓を追加して計3つのバリエーションを用意します。
また、窓のスケールもパラメーター調整が行えるようにしています。
ビル形態の複雑化
前回の街ジェネレーターでは多様なサイズの立方体を敷地に埋める形で実装していましたが、L字やT字など複雑な形態のビルを埋めるように追加実装をしました。
また、生成したビルから窓を生成する処理において一つのビルに複数の窓形状を混在するようにすることで、街の景観に変化を持たせるようにしました。
結論
窓形状とビル形態のバリエーションを増やすだけでかなり街並みに変化を持たせることができました。
街の景観は東京、ニューヨーク、ロンドンなどそれぞれに特徴があり、これは都市計画、歴史、など様々な要素によって構築されています。
この要素をロジックに落とし込み、プロシージャルモデリングとして実装することが、街ジェネレーターの重要な部分になってくると思います。
今後も街の特徴をロジック化し街ジェネレーターに反映していきたいと考えています。
Tips
Labs Lot Subdivision
街ジェネレーターにおけるそれぞれのビルの平面を生成する際に使用しているノードです。
公式ドキュメントでは下記の説明がされています。
このノードはポリゴンをパネルに分割します。 宇宙船、SFチックな内装、市街地、不規則な壁などはどれもジオメトリの平坦な区画を色々なサイズのパネルに細分化する必要があります。
このノードは、最小サイズ、反復回数、不規則性のコントロールを使って、ポリゴンをもっと小さい'ロット'に繰り返し細分化します。
他にも、ロットをまとめてもっと面白い形状を形成させることができます。
説明にあるように多様なスケールの四角形を生成することができ、街ジェネレーターにおいても小さいサイズから大きいサイズまで多様なスケールのビルを生成すること役割を果たしています。