競馬場のコースを、走路ネットワーク、平面形状、高低差などのデータから 3D で生成する仕組みを制作しています。
以下は、この仕組みを使って生成した東京競馬場風コースです。
基本構成
コースデータは以下の構成となっています。
- 走路ネットワーク
- 2D 平面形状
- 高低差の適用
- 3D サーフェスメッシュ
データ構造
走路ネットワーク
- 周回コース
- 直線
- シュート
- 合流
- 複数の物理走路の接続関係
- レース距離ごとの使用走路
たとえば東京競馬場なら「芝コースが 1 本ある」のではなく、周回部分と 1800 m / 2000 m 用のシュートなどを、接続関係を持つ走路として扱っています。
平面形状
- X / Z の 2D 平面上で走路形状を定義
- 直線、コーナー、曲がった直線などをパラメーター化
- コース幅
- 周長
- 直線長
- オフセット
- 他の走路との位置合わせ
つまり「頂点座標を全部手で置く」というより、幾何学的なパラメーターから平面形状を構成する方式です。
高低差
- 平面形状とは別に標高データを保持
- 走路上の距離に対して標高を定義
- そのプロファイルを走路に反映して 3D 化
東京競馬場では 平面形状 + 高低差 から立体的な走路を生成しています。
サーフェス / メッシュ生成
- 上記の走路データから実際の 3D 走路を生成
- コース幅を持たせてサーフェス化
- シュートと本線などの合流部分を統合
- Unity 上で表示できるメッシュに変換
