いくつかの目的のためにボロノイ図を生成する機能を実装した。ボロノイ図とは簡単に言うと平面上に基準点を設置することで平面を基準点の数だけ分割し区画別に色分けた図である。
もっともほんとのボロノイ図を作るには時間がかかるので、今回は基準点を起点に周りに色を塗り始めどんどん塗り広げて他の基準点の色と隣り合った時点で塗りをやめるという手法にしている。CPUをぶん回しているので処理は早くないが200 * 200ピクセルほどならすぐに生成できる。上の図はポアソンディスクサンプリングにより生成した基準点を与えて生成している。ボロノイ図っぽく見える。
この図の生成時にそれぞれの区画のデータ、つまり区画の中心点(基準点)、区画の範囲(座標の配列)、区画の境界線(座標の配列)、隣接する区画のデータを生成している。この区画のデータを利用して地形の塗りつぶしを行ってみた。従来の地形生成に比べるとやや角ばっている。
いまのところあまり見た目は冴えないがボロノイ図を利用したランダムな地形の生成の手法をおいおい適用できる準備が整ったといえる。隣接した区画のデータもあるので経路探索への利用も期待できる。
一番期待しているのは「戦域」への利用で、これは地図上に戦域という区画を設置してAIの戦術決定の基準とすることを目指している。イメージとしてはCOHのマップが近い。
ひとつの戦域には一つの中隊しか入れないなど制限を設けることになるだろう。AIの戦況評価も戦域が基準になる。つまりAIを大改造することになるということだ。これはやりたくないが避け得ない作業である。
Bwars2のダウンロードはここ
0 件のコメント:
コメントを投稿