Human-like衝突回避アルゴリズム
CEDEC2017のFFXVセッションで紹介されていたhuman-like(HL)衝突回避アルゴリズムについて。
cf. CEDiL (資料は要ログイン)
アルゴリズム
元はロボティクスの分野の手法とのこと。
- 放射状にrayを飛ばす
- rayの先端が最も目的地点に近い方向に進む
特徴
一般的なRVOやORCAは
- 有効性(振動してしまわないことなど)が証明されている
- 不自然な場合がある
- 局所解がある
それに対してHLは
- 動作が自然
- 拡張が用意
- rayの数で負荷を調節できる
- ライブラリは整備されていない
キャラが群衆を突っ切る場合など違いが顕著になるらしい。
例えばUnityではPhysics.SphereCastなどで容易にrayが飛ばせるので、ちょっと試した限りでは非常に実装しやすくて便利そう。