コース生成システム

競馬レース(HorseRace)

競馬場のコースを、走路ネットワーク、平面形状、高低差などのデータから 3D で生成する仕組みを制作しています。

以下は、この仕組みを使って生成した東京競馬場風コースです。

基本構成

コースデータは以下の構成となっています。

  • 走路ネットワーク
  • 2D 平面形状
  • 高低差の適用
  • 3D サーフェスメッシュ

データ構造

走路ネットワーク

  • 周回コース
  • 直線
  • シュート
  • 合流
  • 複数の物理走路の接続関係
  • レース距離ごとの使用走路

たとえば東京競馬場なら「芝コースが 1 本ある」のではなく、周回部分と 1800 m / 2000 m 用のシュートなどを、接続関係を持つ走路として扱っています。

平面形状

  • X / Z の 2D 平面上で走路形状を定義
  • 直線、コーナー、曲がった直線などをパラメーター化
  • コース幅
  • 周長
  • 直線長
  • オフセット
  • 他の走路との位置合わせ

つまり「頂点座標を全部手で置く」というより、幾何学的なパラメーターから平面形状を構成する方式です。

高低差

  • 平面形状とは別に標高データを保持
  • 走路上の距離に対して標高を定義
  • そのプロファイルを走路に反映して 3D 化

東京競馬場では 平面形状 + 高低差 から立体的な走路を生成しています。

サーフェス / メッシュ生成

  • 上記の走路データから実際の 3D 走路を生成
  • コース幅を持たせてサーフェス化
  • シュートと本線などの合流部分を統合
  • Unity 上で表示できるメッシュに変換