2012年10月16日火曜日

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



前回の続きでUnity SteerでどのようにAIを使うことが出来るか引き続き紹介をしたい。

まずは前回も紹介したWeb Player Demoを再掲する:

紹介リンク
http://arges-systems.com/blog/2010/10/19/unitysteer-20-multiple-agents-example/

デモでどのようなAIを使用しているかというと:

ビヘイビア(振る舞い)を状況に応じて切り替え、キャラクターを制御している。

シーンに4種類のビヘイビアスクリプトがあり、全てのキャラクターにアタッチされている。
・自由に方向を変えながら移動する=放浪(SteerForWander)
・他のキャラクターを回避する=隣人回避(SteerForNeighborAvoidance)
・他の障害物を回避する=障害物回避(SteerForSphericalObstacleAvoidance)
・キャラクターがお互いに離れすぎないようにする=束縛(SteerForTether)

なお、
デモで「1」を押すとデフォルト設定にて77キャラクターが登場するか「2」を押すと154キャラクターで同様のシーンが表示され、処理負荷が重くなるが十分処理出来る環境かが確認できる

最初のキャラクター生成時の配置はランダムに行われており、延々とキャラクター同士はぶつからずに進んでいく。

デモから学べることは至極単純で、Unity Steerでは複数のビヘイビアスクリプトが用意されていて、使用したいものをキャラクターにアタッチすることで様々なキャラクター制御がなされる仕組みとなっている。

どういう組み合わせにするかをは自身のゲームに必要な動きを考えることになるが、パックマンで例えると、ずっと追いかけてくるゴーストが特別アイテムの入手をきっかけに一転して逃げるようになる行動を取らせることなどイメージしやすいのではないかと思う。

次回はさらに他にどのようなスクリプトが用意されているかについて引き続き紹介したい。

AIを組み込むことで開発者も楽しみながら学べるぞ!

0 件のコメント:

コメントを投稿

ブックマークに追加

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

自己紹介

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

ページビューの合計

過去7日間の人気投稿

ブログ アーカイブ