2012年11月18日日曜日

【Unity】RTS:障害物回避5


ウェイポイントシステムを構築した。まあこれは簡単だった。配列に座標を格納して指定した順にユニットは移動することが出来る。
さて、ユニットに搭載していた場当たり的な回避システムにはかねてより問題があった。大きい障害物は回避不能であり、広大な山岳を避けたり川にかけた橋などを通過させるためにはより改良された回避システムが必須だった。最初は超長距離センサーを搭載して回避を図ったがこれはこれまでの場当たり的な回避システムを単に大型化しただけで役には立たなかった。そこで大きな障害物の周りに4つのビーコンを置くことを思いついた。上の画像で光っているのがビーコンだ。大きな障害物はユニットが近づいてくると、ビーコンを作動させる。各ビーコンはただちにユニットとユニットの目的地そしてビーコン間の距離を測定しユニットがどのビーコンを中継して進めば大きな障害物にぶつかることなく、目的地に到達できるかを特定する。ユニットはビーコンの助言に基づき先のウェイポイントシステムを利用して新たにウェイポイントを設定し目的地まで無事にたどり着く…筈だがこれは回避システムの複雑化を招くこととなった。時々ユニットが明後日の方向に向かってしまう。非常に厄介だ。

0 件のコメント: