LoginSignup
8
9

More than 5 years have passed since last update.

スクウェア・エニックス AIアカデミー 第3回「AIでキャラクターを動かす」まとめと感想

Posted at

7月から「スクウェア・エニックス AIアカデミー」に参加している. 自分の知識の整理も兼ねて内容と感想を書いていく.
時間があれば第1,2回についても書く予定.

主観世界を作る

生物の主観世界

 生物は,周りの情報を受け取る, 周りに働きかける, この2つによって世界を捉えている. すなわち
・センサーが捉えている世界である知覚世界
・エフェクターが捉えている世界である作用世界
この2つからなる環世界が生物が主観的に捉えている世界である.
知覚出来るが作用しないor出来ない空間 (e.g.見えはするが手の届かない場所) というのもあるので, 知覚空間≠作用空間である.

知識表現で環世界を表す

 生物と同様, キャラクターも動くにはまず環世界を構成しなければならない.
もし人間と同等のAIが実現できれば, 人間と同じ情報 (ゲーム画面, サウンド,etc.) から環世界を構成できるが
実際はそうではないため, AIが使える形で環世界を表現する必要がある. そこで用いる表現を知識表現という.

知識表現には様々なものがあるが, ここでは特に
・マップ全体に関わる知識表現である世界表現
・それがどういうもので, どう作用できるかを教える表現であるオブジェクト表現
の二つに言及した.

 世界表現はウェイポイントやナビゲーションメッシュを基本とした表現であり, ただ地形をグラフで表すだけでなく
周りの状況などの情報を各ポイントに埋め込むことも出来る.
オブジェクト表現では, 情報を教えるためにアフォーダンス情報というものが用いられている.
アフォーダンスとは, インターフェースの設計などでも用いられている考え方である.
例えば「ドアを開ける」という動作をする時, そのために必要な「ドアノブを握って回す」という動作を
意識的に行う人はほとんどいないだろう. よって無意識的に行われた「握って回す」という行為は
ドアノブ側が誘発(afford)した行為である, と考えられる.
このように物や環境から誘発される「握って回す」と言った特性のことをアフォーダンス(affordance)と呼ぶ.

アフォーダンス情報は, オブジェクトがAIに提示する選択可能な行動の情報であり
例えば, イスにキャラクタが座るという行為を実現する際に, キャラクタがイスを認識し, 座れるかどうかを判断して座るのではなく
イスがキャラクタに座るという行為の選択肢を提示し, キャラクタのAIがそれを選択する事で実現される.

AIが歩く

 具体的にAIが歩く事に着目をした.
世界表現はウェイポイントかナビゲーションマップであり,
目的地までのパス検索法はダイクストラ法やA*法を用いるのが一般的である.
特にA*は省メモリで高速だが, 流石に問題空間が大きすぎるとCPU負荷も大きくなるため, FF14ではHinTと呼ばれる手法を用いている.
これは経路テーブルを分割, 階層化して用いる手法である.
経路テーブルとは, 予めパスを計算しておき, それを格納したテーブルである.
計算をする必要がないため速いが, 値を格納するテーブルが大きくなってしまうという欠点がある.
HinTは速さという利点をあまり損なう事無く, テーブルの分割と階層化によってテーブルのサイズの大幅な削減を可能にしている.

感想

講義内容について

 主観世界について, まず生物の話から入ったことで, AIの主観世界の構築の意義が理解しやすかった.
特にアフォーダンスの話は, 考え方自体は知っていたが, それをAIの環世界を構築する際に用いた点が面白かった.
認知や行為は状況と切り離されたものではなく, 状況に埋め込まれたものであるとする状況論的アプローチという考え方があるが
地形に情報 (遷移条件やビヘイビアツリー) を埋め込むという手法は, この考え方と似ているように感じた.

 パス探索の部分で, 行き先をクリックするとキャラクタが適切なルートを選んで目的地に到着するという映像を見たが
自分にとってはすごさよりも不自然さを強く感じた.
これは, まずキャラクタの表示された位置や, プレイヤのクリックという動作に反応したことから,
このキャラクタをこのゲーム内でのプレイヤ (ここでは映像を見ていた私) の分身となるキャラだと認識したことに因る.
私が初めて見る世界にも関わらず, 私が自分の分身と認識したそのキャラクタは一切迷うそぶりも見せず目的地に到達してしまった.
すなわち, 私が持っている情報とキャラクタの取った行動に乖離があったのである. これによって不自然さを感じたのだと思う.
もし同じ行動をそこに詳しいという設定をもつキャラがやれば不自然さは感じなかったと思われる.
このことから, 各キャラクタの行動は, そのキャラクタが持つと想定できる情報や能力に基づいたものである必要があると感じた.
但し今回のルート検索については, プレイヤが認識できる範囲を見える範囲として, HinTの考え方と組み合わせれば
そこそこ自然な動きを実現できるような印象を持った.

ワークショップについて

 ワークショップでは第1回にやったゲームと同じものを行った.
ゲームの詳細は4gamerのこちらの記事を読むと分かりやすいと思う.
http://www.4gamer.net/games/032/G003263/20140724053/
前回メタAI兼ナビゲーションAI役をやった私は, 今回敵AI役をやったが
キャラクタAIをやった事で, 今回の講義の内容について深く考える事ができた.

 敵AIたる私は, メタAI兼ナビゲーションAIによって, 「ある位置のクリスタルが取得された」と言った世界を認識するための情報を得る.
しかしゲームプレイ中はその情報をそのまま使っていた訳ではない. その情報を元に推測や考察を行っていたのである.
特に勇者の可能な行動を考慮して位置を推測していた. これはある意味でただ与えられる情報以上の情報を得ていたと言える.
すなわち, 思考によって擬似的に主観世界を拡張していたと言えるのではないだろうか.


以上が今回の感想です.
第4回「ソーシャル・コミュニケーションするAI」もタイトルからしてとても面白そうなので
今までの内容を整理しつつ, 楽しんで臨みたいと思います.

8
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
9