ニュース
[CEDEC 2021]知性と感情を持ったNPCとのコミュニケーションを実現するスクウェア・エニックスの取り組み
「次世代のキャラクターAI」とはどのようなものだろうか? これまでのゲームはプレイヤーからNPCへの一方的なコミュニケーションだけであり(イベント的な向こうからのコミュニケーションというのもあっただろうが),NPCとの会話では選択肢に答えるくらいしかコミュニケーション要素はない,というゲームがほとんどだろう。それに対してスクウェア・エニックスでは,NPCと相互にコミュニケーションできるキャラクターAIの実現を目指しており,そのようなコミュニケーションが次世代ゲームの鍵になるという。
「CEDEC 2021」公式サイト
「Wonder」は,上記のようなキャラクターAIの実現を目指して作られた実験用デモプログラムだ。今回は,Wonderの構成要素について2つの側面から紹介が行われており,前半のセッション「キャラクターAIを成長させるためのGOAP意思決定システム」では,NPCキャラクターがさまざまなオブジェクトに対する行動をいかに学習していくか,続くセッション「NPCもプランナーも開発者にも心がある!感情システムをゲーム制作に!」では,キャラクターAIの感情的な側面の実装について解説された。講演を行ったのは,スクウェア・エニックス テクノロジー推進部 AIエンジニアのGautier Boeda氏だ。
GOAPの拡張で柔軟な意思決定を実現する
まずはGOAP意思決定システムだ。
GOAP(Goal Oriented Action Planning:目標指向の行動計画法)は,最終的な目標を達成するために,ゴールから遡って現在の状態に到達するように行動計画を組み立てる方法論で,ゲームAIでは戦闘時のエネミーAIなどによく使われるという。スクウェア・エニックスはそれを拡張して,戦闘以外でも広く使えるものに仕上げている。
Wonderは,妖精となったプレイヤーが画面内のNPCを教育していくようなゲーム(?)だ。画面内にあるオブジェクトを指定すると,NPCはそのオブジェクトに対してなんらかの操作を行う。例えばリンゴを指定すると,そのリンゴを持ち上げて,おもむろに放り投げるといった感じだ。プレイヤーはその行動を見て,オブジェクトに対して適切な行動であった場合は〇を,不適切であった場合は×を,どちらともいえない場合は△を提示してキャラクターAIに適切な行動を教える。リンゴを食べた場合に〇を重ねていくと,リンゴに対して食べるという行動をとるようになる。
それぞれのオブジェクトには,形状的な特徴,重さ,持ち手の有無,持ち手の位置といった付加的な情報があり,1つのオブジェクトに対して学習が進んでいる場合,似た特徴を持つ新たなオブジェクトに対して知識の継承が行われる。
バットを振り回すことが正解だと知っているNPCであれば,棒切れを見てバットと同じような行動を試すといった感じだ。
最初からオブジェクトの特徴に従ってある程度まで選択肢が絞られるので,例えば,持ち手のないボールに対して「振り回す」といった行動は選択肢(アクションリスト)として用意されない。つまり,オブジェクト1つずつに対して操作法を指定するのではなく,オブジェクトの見た目などからNPCが使い方を自分で判断できるようにしていくわけだ。このようなオブジェクトの実装をBoeda氏は,「スマートオブジェクト」と呼んでいた。
Wonderではこういったスマートオブジェクトを,NPCがどういった行動を取るかの選択のために使用するのみではなく,目的に到達するための計画を行う際やプレイヤーとの会話,未知のアイテムへの対応時にも利用していくという。「こういった形のものはこういう風に使う」といった情報を蓄積し,やがては初めて目にするオブジェクトに対しても,それなりに妥当な行動が取れるようにするわけだ。そのための初期教育に相当するのが,最初に紹介したオブジェクトに対するアクションへの採点となる。
未知のアイテムは,これまでに知っているアイテムと比較され,一番近いものの性質(学習内容)が半分受け継がれる。下の図の例で言うと,瓶に入った飲み物に対して生成されたアクションリスト5種(飲む,食べる,持ち上げる,踏む,投げる)に対しては,初期状態ではどれも同じ確率(20%)で行動が適用されるが,学習済みの飲み物では「食べる」という可能性はないということで,残り4つが25%ずつの割合となっている。両者の数字を合計して,合計が200%になるものを正規化して100%になるように丸めるという工程が取られている(図だと四捨五入されているので合計102%になってしまうが)。今回行われた説明だと,一番似たものを単純に半分取り入れる処理が行われているが,どれくらい似ているかといった要素は考慮されてよいようにも思われるのだが。
さて,こうしてできたスマートオブジェクトを使ってキャラクターAIを成長させていく。その過程でGOAPが使われるわけだが,一般的なGOAPでは選定条件は1つしか設定できず,あまり複雑なことができない。スクウェア・エニックスでは,GOAPを拡張して複数の前提条件を許容し,複雑な条件に対応できるようにしているという。単なる「リンゴを取って食べる」に前提条件を追加した「木に生っているリンゴを取って食べる」といったものも処理できるのだ。
目的から現状のステータスに到達するまで手段を次々に選択していくという手法では,複数の解が出る場合もある。例えば,お腹がすいたので満腹感を得たい場合,なんらかの食べ物を食べるという行動が適切だが,何を食べるかに制約はない。そこでBoeda氏らは,それぞれの行動にコストを設定し,最もコストが低くなるような行動を選択するようにしたという。
興味深いのは,コストの算定時にキャラクターのステータスなどが参照される点だ。プリンの作り方を調べて料理し,できたプリンを食べるのと,リンゴがなっているところへ行って取って食べるという,2つの空腹解消法を持つケースが紹介された。
通常ならリンゴを取りに行くほうが手間がかからないとしても,プリンが好きだったり,足が疲れていたり,すごくお腹がすいていたりすれば,感じるコストは変わってくるといったことを考慮するものだ。これによりキャラクターごとの個性や,状態を反映した行動をとるAIが実現できる。
ゲーム内のオブジェクトに対して,何をどうしたらどうなる,どうやって使う,といった知識を蓄え,やりたいことを実現するための効率的な手順を見つけ出し,なおかつキャラクターの個性を反映できる,そんなキャラクターAIがスマートオブジェクトと拡張されたGOAPで実現される。なかなかエキサイティングな研究が進められており,次世代AIゲームの登場が楽しみだ。
ゲームキャラクターに感情を持たせるには
続いて行われたのはキャラクターAIに感情を実装する方法についての講演だった。
Boeda氏は,実装される感情的なものを「感情」「気分」「性格」の3種類に分類した。感情は影響が短期的に変動するもので,気分はやや長期的に変化し,性格については基本的に不変だが少し変化することもあるといった特質を持つ。
これもWonderに実装されており,デモではオブジェクトに対する行動の評価で,正解や間違いに対するキャラクターのリアクションが,性格によって変わることなどが示された。具体的には「ワルガキ」と「マジメくん」という2つの性格を切り替えると,歩きやモーション,セリフ,口調などが変化する。アニメーションは,性格ごとに用意されたモーションがブレンドされているようだ。
なお,音声についてはブレンドで処理するのが難しかったのか,プロシージャルサウンドエンジン「Tsugi」の協力により,プロシージャルに変化させているとのことだった。
Wonderでは,OCCモデルから発想を得た24種類の感情が用意されるという。OCCとはエージェントの感情表現に関するOCC Theoryを提唱した3氏の頭文字(Ortony,Clore,Collins)を並べたもので,人間の包括的な感情が形式化されている(OCCモデルでは,感情は22種類)。
ゲーム内のイベントを起点として,その内容がキャラクターにとって積極的か消極的か(肯定的か否定的か,あるいは,もっとかみ砕いて,嬉しいか悲しいかといった分類),そのイベントの結果をキャラクターがどう評価しているか(気に入るか気に入らないか),エージェントの行動に対して承認するかしないか,出てくるオブジェクトの見た目が好きか嫌いかといったことで,基本的な部分では10種類の感情をサポートするという。
このツリーの見方が最初はまったく分からなかったのだが,どうやら上下2段で書かれた部分は,最初の選択が上だったら,以下に書かれたものは全部上,下だったら全部下が選択されるようだ(おそらく,2019年の講演でもっと詳しく解説されていたのだと思われる)。
ボールを打ってガラスが割れた,という例では,その結果から直接生成されるのは「悲しみ」の感情であり,将来的なところまで考えると「恐れ」があり,それを見ていた他人に喚起される感情は「非難」,自分は「羞恥心」,そこで出てくるオブジェクト(割った人? 割れたガラス?)まで見ていくと,「嫌悪」が適用されるということなのだろう。どの部分をピックアップするかは,状況や用途で変わってくるのかもしれない。
ツリーの下部では条件を追加することにより,感情を拡張できることも示された。事象の結果に対する将来の展望は基本形に追加された部分であり,結果に対しては将来についてまで検討することが望ましいという。また,見た目の部分も,見慣れたものと見慣れないもので引き起こされる感情が分かれることも示された。見慣れないものに肯定的であれば「好奇心」,否定的であれば「嫌悪感」だ。嫌悪とどう違うのかはよく分からないが,おそらく猜疑心のようなものだろうと思われる。
また,事物の結果は,そのエージェント(自分か他人)に関連があるかどうかも追加することが奨励されていた。ボールを打ってガラスが割れた場合,打った当人に関連がある場合,つまり自分の家のガラスだったとか,見ていた人の家のガラスだった場合にはまた別の感情が喚起されるといったことのようだ。
OCC風モデルで表現される感情に対し,気分ではPAD(Pleasure,Arousal,Dominance)モデルが使用されている。これは気持ちよさ,興奮,支配度で感情や気分を3次元表現するもの。支配度というのが分かりにくいが,気持ちよくて興奮してて支配度も高いときは活力に満ちた気分で,気持ちよくて興奮してて支配度の低いときは依存的な気分なのだそうだ。感情で言うと,「嫌い」は制御可能で「好き」は制御不可能なのだとか。うむ,よく分からない。
なんにしても3次元で扱うと処理が重いので,スクウェア・エニックスではAの部分をなくしたPDモデルで気分を表している。Aを選んだのは,ほとんどの感情でAがプラスになっているからだ。
グラフの中央がデフォルトの気分で,PとDの両方がプラスだと活力的,両方がマイナスだと落胆的,Pのみ高くてDがマイナスだと依存的,Dが高くてPがマイナスだと敵対的となる。
気分は,この平面上のどこかを漂っており,発生した感情に引っ張られて移動するが,何もなければデフォルト位置にゆっくり戻ろうとする,そういったモデルだ。
この平面の四隅と真ん中でモーションなどを登録し,気分の位置の比率でブレンドすることで,気分ごとのアニメーションの違いも表現できる。上記のように,音声表現についてもTsugiとの共同開発でプロシージャルに加工を行えるようになっている。
最後に性格について。明るさや自立心といったいくつかの項目に数値を割り振る方式で表現されていたのだが,どういう基準で基礎項目が選ばれているのかは説明されなかった。傾向的にはBig5やエゴグラムなどが使われてもおかしくなさそうなのだが,アセットへの反映のしやすさなどが考慮されたのだろうか。
性格パラメータは意思決定に使用する場合ならいくつあっても大丈夫だが,セリフやアニメーションなどのアセットに反映される場合は,増やすとすぐに破綻するので注意が必要だ。Wonderでは8種類のパラメータが用いられているという。
しかし,アセットに反映する際には,大まかに4つの性格に大別して適用しているという。4つの性格と4つの気分,そしてニュートラルな状態で用意されたアニメーションなどのパターンは17種類となる。意思決定では8つの性格パラメータを使い,アセットには4種の性格で対応する。これくらいならなんとか許容範囲なのだそうだ。
おそらくは,こういったものも音声と同様にプロシージャルに生成できるようになれば表現力も変わっていくのだろう。将来的にはそのような展開もあるのだろうか。
現状ではまだゲームの体をなしていないデモではあるが,それが実現しているもの,そしてこれから実現していくであろうものは,これまでのゲームでのキャラクターとは根本的に違うNPCを生み出し,これまでには考えられなかったようなゲームを生み出す可能性に満ちている。今後の研究に注目したい。
「CEDEC 2021」公式サイト
4Gamerの「CEDEC 2021」記事一覧
- この記事のURL: