CityGen3D
OpenStreetMap の地図データ、及び、NASA が Earthdata として提供している地形データを使用して、実空間を元にした地形/道路/建物を生成する。
公式サイト:
CityGen3D – Procedural Scene Generation in Unity [Official]
購入
入手:
CityGen3D | Unity Asset Store [Official]
インストール
Package Manager から次のパッケージをインストールする。
- Burst
- Editor Coroutines
- Post Processing
使い方
- 新規シーンを開く。
- メニューから「Tools > CityGen3D > Data」 (
Ctrl
+T
) を選択して、「Data」ウィンドウを開く。 - 「Location」タブの「Settings」パネルでオプションを設定し、「Download」ボタンを押してデータをダウンロードする。
- 「Processing」パネルでオプションを設定し、「Process」ボタンを押してマップを生成する。
- 「Generator」パネルで「Generator Profile」を選択し、「Load Generator」ボタンを押してジェネレーターを読み込む。
- 「Run Generator」ボタンを押してジェネレーターを実行し、3D モデルを生成する。
メニュー
「Tools > CityGen3D」
- Data:「Data」ウィンドウを開く (
Ctrl
+T
) - Generator:「Generator」ウィンドウを開く (
Ctrl
+G
) - Load Available Scenes:シーンを読み込む (
Ctrl
+L
) - Toggle Map View:マップビューに切り替える/ビューを戻す (
Ctrl
+M
) - Toolbar:ツールバーを表示する (
Ctrl
+H
)
Data
Location
- Settings:設定
- Data Source:データソース
- Download:ダウンロード
- Name:名前
- OSM URL
- Terrain Size:テレインの大きさ
- Very Small (128 m × 128 m)
- Small (256 m × 256 m)
- Medium (512 m × 512 m)
- Large (1024 m × 1024 m)
- Area (範囲:1 ~ 8)
- Axis (範囲:8 ~ 1024)
- Recursion:再帰ダウンロードの適用方法
- Completed Ways:部分的に含まれる形状を完全にダウンロードする
- Completed Ways and Relations:部分的に含まれる形状及びそのリレーションをダウンロードする
- Latitude:緯度
- Longitude:経度
- Tile:タイルの開始位置 (デフォルト:
0, 0
) - Scenes Folder:シーンフォルダ (デフォルト:
Scenes
) - Terrains Folder:テレインフォルダ (デフォルト:
Terrains
) - Database Folder:データベースフォルダ (デフォルト:
Database
) - Download:ダウンロードを実行する
- Database:データベース
- Asset:データベースアセットを指定する
- XML
- Custom
- Download:ダウンロード
- Data Source:データソース
- Processing:マップ生成
- Filter:適用する処理を指定する (デフォルト:
All
)- Coastline:海岸線
- Buildings:建物
- Entities:単一のノードで表される構造物 (ポスト、ゴミ箱、ベンチなど)
- Features:一連のノードで表される構造物 (線路、柵、壁など)
- Trees:樹木
- Arc Tolerance:円弧の許容誤差/小さいほど形状を滑らかになり、大きくすると低ポリゴンとなる
- Coastline GeoJSON:海岸線の形状データを指定する (GeoJSON 形式)
- Default Surface:デフォルトの地表 (デフォルト:
Grass
) - Auto Clear:既存のマップを自動的に消去する (デフォルト:
有効
) - Clear:既存のマップを消去する
- Process:マップを生成する
- Filter:適用する処理を指定する (デフォルト:
- Generator:モデル生成
Generator
- HeightMap
- Terrains
- Sava as Scenes:生成したテレインを個別のシーンとして保存する
- Generate Terrains
- Convert to Scenes
- Settings
- Data Provider
- NASA
- NASA URL
- NASA Username
- NASA Password
- Interpolation
- Bilinear
- Bicubic (デフォルト)
- Nearest Neighbor
- Sampling
- Raw
- Filtered (デフォルト)
- Offset X / Y (デフォルト:
0, 0
) - Auto Range (デフォルト:
無効
) - Download Heightmap
- Perlin Noise
- Perlin Scale
- Perlin Offset X / Y (デフォルト:
0, 0
)
- NASA
- Peak (デフォルト:
500
) - Nadir (デフォルト:
-50
) - Apply Heightmap
- Data Provider
- Terrains
- Water
- SplatMap
- Highways
- Buildings
- Roadside
- Entities
- Features
- Trees
- Detail
モジュール
- Data
- Heightmap
- Splatmap
- Roads
- Buildings
- Roadside
- Entities
- Features
- Trees
- Detail
サーフェス
- Allotments
- Cemetery
- Commercial
- Construction
- Farmland
- Footpath
- Forest
- Grass
- Industrial
- Meadow
- Park
- Railway
- Residential
Splatmap
- Asphalt
- Grass Wild
- Grass Leaves
- Ballast
- Cobbles
- Rock
- Mud
- Gravel
- Straw
- Sand
- Pavement
- Herringbone
- Paving Tiled
- Asphalt Cracked
- Grass Dandelion
参考:
Splatmap | CityGen3D [Official]
建物 (Buildings)
Plot
- Blueprint
- Roof Type
- Roof Pitch
- Roof Overhang
- Roof Join Type
- Roof Material
- Create Basement
- Operation
- Rebuild
- Find
- Demolish
Blueprint
- Settings
- Random Seed
- Create Basement
- Storeys
- Add
- Delete
- Properties
- Floor
- Repeat from Element
- Segment Index
- Facade List
- Add
- Delete
Plan
- Facade Material
- Facade Material Simple
- Facade Size
- Roof Material
- Facade Groups
- Facade Atlas
- Single Texture
- Two by Two
- Four by Four
参考:
Buildings | CityGen3D [Official]
エンティティ (Entities)
単一のノードで表される構造物 (ポスト、ゴミ箱、ベンチなど)
参考:
Entities | CityGen3D [Official]
フィーチャー (Features)
一連のノードで表される構造物 (線路、柵、壁など)
参考:
Features | CityGen3D [Official]
樹木 (Trees)
参考:
草花 (Detail)
参考:
海岸線 (Coastline)
- OSM 派生データ配布ページの「Land Polygons」にアクセスして、陸地形状がベクトル化されたシェイプファイルをダウンロードする。
- land-polygons-split-4326.zip:世界測地系 WGS84/ポリゴン分割済み
- 「mapshaper」にアクセスし、ZIP ファイルを解凍して得られるシェイプファイル (
land_polygons.shp
) をドラッグアンドドロップで読み込ませる。「detect intersections」及び「snap vertices」は不要なのでチェックを外し、「Import」ボタンを押して形状データをインポートする。 - 右上のメニューから「Console」を選択して、コンソールを開く。
- コンソールのプロンプトに
-clip
コマンドを入力して、必要な範囲の形状を切り出す。-clip bbox=MinLon,MinLat,MaxLon,MaxLat
-o
コマンドを入力して、GeoJSON 形式でエクスポートする。-o format=geojson
- 保存した JSON ファイルをプロジェクトに取り込み、「Data」ウィンドウで「Location > Processing > Coastline GeoJSON」に割り当てる。
ツール:
参考:
Land Polygons – Data Derived from OpenStreetMap | FOSSGIS
サンプル
新規作成用シーン
CityGen3D/Scenes/New City.unity
Facade Shader
参考:
Race Track
参考:
フォーラム
CityGen3D – Procedural City Generation from Map Data | Unity Forum
チュートリアル
Creating a Scene from Map Data in Just 5 Minutes
Auto Road Generation and Levelling
Automatic Painting of Terrain Detail
Tiling Terrains from Different Data Sets
Auto Texturing Terrains Made Much Faster with Multithreading
Using the API for Custom Controls
デモ
London Park with Water Fountain
Driving Around a Procedurally Generated London (v0.9)
Driving Around a Procedurally Generated Environment
Procedurally Generated Freeway
チャンネル
Earthdata
→ Login
公式サイト:
参考: