2012年10月19日金曜日

Unity AIの実現にUnitySteerを活用する~その4

少し前にUnity SteerでAIが実現できることを紹介したが、より具体的なことについて本家サイトに記載があったので紹介したい:

http://arges-systems.com/blog/2010/07/03/unitysteer-changes-and-re-organization/
7/3/2010

Unity Steerのデモをみていくこととして、群れ行動を表現したいと仮定する。この場合、必要なSteerは3種類ある:
  • 隣接する物体と並ぶSteer
  • 隣接する物体との距離を保つSteer
  • 隣接する物体と凝集するSteer
MonoBehaviourでコードを書いてく代わりに、簡単にアセットに含まれるSteerスクリプトをゲームオブジェクトにアタッチする。結果的に図のような構成となる:
各々のクラスはそれぞれのロジックを綺麗に分離しており、新たなSteerが必要となった場合もコード数の短いクラスを新たに作成するのみである。(例えばある場所付近に拘束するためのスクリプト)

このアプローチの便利なところはそれぞれのスクリプトがゲームオブジェクトに対して加えている力の大きさが明白であることだ。また拘束(Tether)スクリプトがある場所から離れすぎた場合のみに実行され、障害物を回避するSteerは衝突しそうなときのみに実行される。

このようなアプローチでアセット作成を行うなかで、不要なメソッドや使うことのないクラスは隔離するようにし、残したコードにコメント入れを意識した。まだ加えたい変更はあり(障害物回避を改善するとか、サンプルとなるシーン数を追加するなど)、今後追加していく予定としている。
(訳者注. 2012/10/18時点ですでに追加済み)
-------

これまで何回かに分けて紹介してきたUnity Steerはスクリプトをアタッチするだけであり、プログラミング経験の少ない人でも分かりやすい仕様なので応用を利かせやすいとおもう。

さてAIとひとくちにいっても、紹介してきた範囲はきわめて限られた範囲だがAI専門で幅広く情報を提供している会員制のサイトもあり、そのなかの無料コンテンツについては機会あれば紹介してみたいとおもう:
http://aigamedev.com/

Unity Steerでゲームに自分だけのAIを追加しようぜ!

0 件のコメント:

コメントを投稿

ブックマークに追加

このエントリーをはてなブックマークに追加

自己紹介

自分の写真
Unity3D公式マニュアル翻訳やってる人がスマホ(iPhone, Android)のゲーム開発しています。気軽に面白く初心者が遊べる内容がモットー。Blogでは開発情報をひたすら、Twitterではゲーム作成の過程で参考にしている情報を中心につぶやきます

ページビューの合計

過去7日間の人気投稿

ブログ アーカイブ