前回に続いてUnity Steerについて紹介したい。
情報源としては2009年までさかのぼるが、当時にUnitySteer全体像について作者が説明した内容の紹介をさせていきたい。過去情報の翻訳であるため、すでに不要となっているものもあるため、その点はご留意いただきたい(Radar Prefabの使い方など一部すでに変更となっています)
2009/7/8
UnitySteerはゲームキャラクターや乗り物がシーンを自動操縦するためのクラスを含む。
どれぐらい加速するか、どれぐらい持続するか、乗り物の特徴にあわせどのように曲がるか障害物をよけるときにどのように行動すべきか、他の登場人物からどれぐらい距離を保つべきか、等々。いくつかのビヘイビアはきわめてかんたんであるが、より複雑な動作を実現するには組み合わせることが有効である。
このライブラリはOpenSteerおよびOpenSteerDotNetをUnityに移行したものであり重複したクラスを省いたり必要に応じてUnityのメソッド呼び出しを適宜おこなっている。乗り物のクラスは初期化の際にTransformかRigidbodyを設定するオプションがあり、乗り物が値を直接更新することが出来たり、その後、コードの書き直しを通じて経路探索にも応用されている。
移行の際にもとの乗り物サンプルを拡張し、可能なかぎり統合しながらいくつかの追加機能を加えている:
- 乗り物連結(Vehicle tethering)
- レーダープレハブにてトリガーベースの近接検知(Radar prefab)
- 重み付けによりステアリングBehaviorの優先順位づけ
- Angry Ant Pathとの統合
現状乗り物のクラスとしてあり、MonoBehaviourスクリプトが準備されているのは
- 群れ行動(Flocking)
- 障害物回避(Obstacle avoidance)
- 徘徊行動(Wandering)
- 追跡行動(Pursuit)
- 乗り物連鎖(Chains of vehicles)
すべて2D, 3D動作が提供されている。
------
百聞は一見に如かずなので前回までとはまた異なるWeb Playerサンプルを参考にしていただきたい。
AIをゲーム開発に生かそうぜ!
0 件のコメント:
コメントを投稿