実はAIとXRは近しい!? ゲームAIの第一人者・三宅陽一郎が語る「XRに役立つ人工知能」

未分類
この記事は約14分で読めます。

2019年12月3日から4日に開催されたカンファレンスXR Kaigiにて、「XR開発で役立つ人工知能」と題された講演が行われました。登壇者は株式会社スクウェア・エニックスのテクノロジー推進部、リードAIリサーチャーである三宅陽一郎氏(@miyayou)。XRとゲームAI技術の接続だけでなく、生物学や認知科学からスマートシティへの展開まで、幅広い分野に及んだその講演内容をレポートします。

講演の冒頭では「ゲームAIはゲーム産業でも20年くらいで発達してきた分野で、XRでもお役に立てるということで、基礎的な技術をご紹介させていただければと思います」と宣言した三宅氏。最初に、彼が開発に携わったスクウェア・エニックスのMMORPG「ファイナルファンタジーXIV」(以下FF14)にてモンスターが3D空間の森の中を動く映像をバックに、ゲームにおけるAI技術とは「ゲーム空間の中でキャラクターを滑らかに動かす」「モンスターが環境を自分で認識して、自分で思考して、自分で体を動かす」技術であると述べました。

ゲームAIキャラクターの認識と認知科学、そしてXR

モンスターキャラクターはどのように環境を認識しているのでしょうか。先のFF14では、プレイヤーに向かってレイ(※プレイヤーには見えない光線/ray)を飛ばし、プレイヤーに到達する前に、別のものに当たらなかったら「プレイヤーが見えた」と認識します。

そして、あらかじめゲーム上の地形に沿って配置された、これまたプレイヤーには見えないメッシュ(ナビゲーションメッシュ)でモンスターキャラクターは地形を認識し、パス検索技術を使ってゲーム上の地形を移動します。

ここで認知科学の大家である、生態学的心理学者のジェームズ・ジェローム・ギブソンの話に。人間の空間認識は、人間の目の性能が悪くても、移動による環境の中の光の流れの列(光配列)が変化で空間認識をすることができるという話があり、そういった主観的世界をどうやって表現するかということをギブソンは探求しているそうです(ギブソン「生態学的知覚論」より)。

Game Developers Conference(GDC:世界最大級のゲーム開発者会議。VRDCの元になったカンファレンス)でも「認知科学とVR」というテーマがあります。光配列も含めかつては現実空間でしか実験できなかった認知科学的なこともVRで試し応用することで、VR空間を、ただ単に精密さを追求したものではなく、人間が特に特徴的に意識してるような物理量というのを明示的し、よりリッチな空間として表現しています。

つまり「VRは、認知科学というサイエンスをエンジニアリングしている場である」、という側面を持つとのこと。

続いて、Magic LeapがGDC2019で講演した「Enhancing Game Experiences with Character AI」(資料:https://gdcvault.com/play/1025829/Magic-Leap-Enhancing-Game-Experiences 、要:GDC Vaultへのログイン)を引用し、AR空間上でAIを用い怪獣キャラクターを動かす技術について、2つの事例解説が行われました。

ひとつは、「スマートオブジェクト」という、キャラクターではなく、周囲の物の方に情報(タグ)を付与する方法です。例えばチーズに対して、キャラクターではなくチーズの方に「これは食べれる」というタグを付けます(認知科学ではアフォーダンス情報と言います)。

ゲーム開発の工程では物の方に情報を与えておくと、キャラクターがチーズを見たときチーズの方から「俺を食べろ」と言ってくるのでキャラクターがチーズを食べる、というように動きます。これをユーザーから見れば、キャラクターがチーズを食べにいく、となります。

キャラクターの思考の方を賢くすればAIが賢くなるというのは誤解であり、情報のほうを増やしていけば考えなくても賢くなるというのがゲームAIの一つのトリックでもあるそうです。オブジェクトに情報を入れれば入れるほどAIは賢くなっていきます。これは全てがデジタル空間で閉じているので実現できる方法であり、ファミコン時代から使われているゲームAI特有の方法でありますが、「AR空間でもすごく有効」とのことです。

もうひとつは、地形認識について。現実空間をスキャンしたデータに対し、VRならばデータを取り込んで、ARであればオーバーラップして利用しますが、空間データに対してメッシュを貼ります。この技術はナビゲーションメッシュと言って、ナビゲーションメッシュを通してVR/ARのAIキャラクターは動きます。そして、ナビゲーションメッシュは先に説明したFF14だけでなく、多くのゲームAIにおいて盛んに使われています。

このように、XR空間というのは現実空間をスキャンしてデジタル化したものであれば、デジタルゲームの空間とほぼ変わらないものであり、デジタルゲーム空間で用いられているゲームAI技術もXR空間で活用できると三宅氏は述べました。

XRで使えるゲームAI技術

XRとゲームAI技術の親和性について解説が行われたところで、ゲームAI技術についての説明が行われました。

ゲームAIの技術は、「メタAI」「キャラクターAI」「ナビゲーションAI」の3つに分けられます。

このような3つのAIに分化したのは1995年以降のことで、ゲームが複雑化していった中で
分化しつつ協調する分散協調システムがとられるようになりました。

1. メタAI

メタAIはゲームの神様のようなAIで、ユーザーのスキルを見つつ、プレイヤーが楽しめるようにゲームを変化させるものです。メタAIの歴史は古く、1980年代にリリースされたゲーム「パックマン」や「ゼビウス」では既にプレイヤーのスキルをコンピューターが判断し難易度を調整する、「セルフゲームコントロールシステム」が実装されていました。

2000年以降のメタAIは積極的にゲームに干渉するようにゲームの調整から、ゲームをジェネレートする方向に拡大していき、敵の配置、ストーリーやレベルの動的な生成などプロシージャルな方面にも進化しています。

ここでメタAIの事例としてゲーム「Left 4 Dead」のケースが紹介されました。このプレイヤーの緊張度にあわせて敵が出現していきます。緊張度が低い、つまり「退屈だなあ」と思ったときに時に敵を出現させ、緊張度が高くなると敵の出現を抑えリラックスさせるようにするというように、ユーザーの緊張度をアップダウンさせるような制御が入っているそうです。


https://miyayou.com/2019/09/30/gameai/ より)

緊張の具合については、開発中は手の発汗量を計測しながら行い、実際のゲーム中では敵からのダメージや敵との距離から緊張度を推定する式に基づいて計算されています。
このように「Left 4 Dead」では、緊張と緩和の繰り返しによってプレイヤーが楽しめるようメタAIが動いています。

ゲーム「Warframe」では既にある要素を組み合わせてセミプロシージャルでマップを生成させています。その上で、毎回変わるマップに対し、プレイヤーがいるところを熱源、敵がいるところを冷却源とした熱伝搬シミュレーションのヒートマップを作成し、ヒートが増加していく点(プレイヤーからほどよく遠くかつ近づいていく点)に敵をいっぱい生成し、ヒートが減少していく点では少し休ませてやるかと敵の生成を抑えるというように制御しています。

ゲーム「FarCry 4」ではイベントジェレーションに取り組んでいます。といっても一から物語を作るのではなく、あらかじめ「市民」「敵」「友軍」「野生動物」などの役者のグループを作っておき、これらを組み合わせて登場させ、「暴徒が暴れる」「動物同士が戦っている」「基地に連行され拷問を受け釈放される」といったテンプレートにあわせたイベントを発生させています。そして、メタAIはプレイヤーの行動を見続けていて、プレイヤーが暇そうだなというときにこれらのイベントを自動生成させています。

このように、メタAIはプレイヤーの状態を見て、プレイヤーがどんなプレイをしても楽しくなるようにゲームを作り上げていきます。と同時に開発者視点で見ても、ガチガチに作り込んでもプレイヤーが思った通りに動いてくれなかったり、マップが広大であったりそもそも自動生成などであるため作り込めなかったりといったケースにおいて、ユーザーの行動にあわせた展開というのをその場で生成させるといったほうが、開発が楽になっていくというメリットもあるそうです。

そして、ユーザーの自由度が極めて高いXR空間でもメタAIは有効であると三宅氏は述べました。

2. キャラクターAI

キャラクターAIは、キャラクターの頭脳のことで、リアルタイムに認識したり自律的に判断を行います。敵キャラクターについて、インベーダーゲームの頃は単純な動きをしていて、いわばゲームの背景の一部だったものが、例えば「プリンス・オブ・ペルシャ」ではキャラクターAIにより敵がプレイヤーとの間合いを見つつ戦うようになるなど、ゲームが進化していくと背景から独立した自立した存在になっていきました。また、最近の事例では、強化学習によってAIを作っていくというケースもでてきています。

ここで、ゲームにおけるキャラクターについて考えてみましょう。ゲームのキャラクターとは、人工生命であるともいえます。生命というのは、アミノ酸が集まって、内と外の区別があるものです。ここで「船の部品をすべて変えても同じものと言えるのか」というテセウスの船のパラドックスを解を考えるならば、物質としては違うが、形や構造としては同じもの。だから、生物というのは物質的な存在と情報的な存在という二重性を持っているものといえます。そこで行われるのは、食べて代謝して排泄していくという物理的循環と、情報をインプットして解釈してアウトプットしていくという情報的循環です。

人工知能と人工身体を考えると、今のゲームでは体の方はあまり発達させず、人工知能だけでなんとかさせようとしています。ゲームのAIの基本は、入力があって知能があって出力するというものです。ロボティックスでは、これをエージェントアーキテクチャといいます。世界と知能を分離して考えた際、知能はセンサーを通じて世界から入力を行い、エフェクターを通じて世界に出力を行います。知能は認識の形成意思の決定運動の構成を行います。


(Intelligence = 知能 World = 世界)

ですので、人工知能を作るときは上記に記憶を追加し、「センサー」「記憶」「認識の形成」「意思決定」「運動の構成」「エフェクター」という6つのモジュールを作っていく形になります。そして水車が水で回るように、情報がグルグル巡回し、その情報がそれぞれのモジュールをアクティベートすることで、一つの知能が動くのです。

例えば、ゲーム「HALO」では、キャラクターからレイキャスト(光線)を出して「どこまで弾が届くか」「ここはどこから見えているか」を計算しつづけ、それを踏まえパス検索で移動する場所を決め、撃つのか屈むのかという行動を決めます。このように、ゲームの中にキャラクターを放り込むと自動的に動くAIを自律型AIといいます。

こういったゲームAIの作り方の特徴的なこととして、高い層に抽象的な意思決定システムを置き、下にある反射レイヤーを抑える、という多層構造です。これをサブサンプション・アーキテクチャと言います。

これをロボット掃除機「ルンバ」を例に説明すると、ルンバは埃があるとそれを吸いにいきます。しかし、埃を吸おうとしたけれど部屋にある椅子の脚にあたりそうであれば避ける行動をとります。さらに、椅子の脚にあたりそうだけど充電がきれそうであれば充電しに動きます。

同じように、下図のとおりゲームAIでも多層構造にて表現をすることがあります。

キャラクターAIにおける意思決定には「ビヘイビアベースAI」「ステートベースAI」などいくつかのモデルがあります。モデルによってはゲームエンジンに標準機能として実装されているものもあります。

ビヘイビア(振る舞い)ベースAIは、下図のようなビヘイビアツリーにて表現されます。
それぞれの層に選択ルールがあり、下図のビヘイビアツリー例であれば、まず最初に選択ルールが「プライオリティ」である一番最初(左)の層でチェックし、その中で実行可能なノードの中からプライオリティの高い(上にある)ノードである”戦闘”を選択します。次に、選択ルールが「シークエンス」である左から2番目の層では、”攻撃”ノード、”隠れる”ノードと上から順番に行動を実行します。左から三番目の層で”攻撃魔法”ノードを選択した際は、その下(右)の層が「ランダム」なので、”氷系”ノードか”風系”ノードがランダムで選択されます。

ステート(状態)ベースAIで用いるステートマシンでは、ステート(状態:自分への命令)と遷移(世界と自分の状況の変化)を記述していきます。

3. ナビゲーションAI

ナビゲーションAIは、地形を解析し、目的に応じた点を見つけ、目的地へのパスを計算するものです。ゲームAIの中でも一番古いもので、ゲーム中の処理の負荷の約60%ほどを占めています。

ここではひとつの例として「スタートとゴールがあった時に、経路を見つけたい」などというケースについて考えてみましょう。人工知能は連続量を把握できないので、マップをナビゲーションメッシュ(地面を三角形あるいは凸多角形で敷きつめる形での表現)などの要素に分解することで離散化して考えます。

「ダイクストラ法」はスタート地点から同心円状に要素を検索し最短経路をみつけ、円を広げていってゴールが円に含まれるまで円を広げていく方法です。

ゴールの位置が分かっている場合は、検索をゴールの方向に誘導していった方が早く検索できます。これを「A*法(エースターほう)」といい、ほとんどのゲームが採用しているそうです。

上記のような方法で、現在の地点から指定したポイントへの経路をリアルタイムで計算して導く技術をパス検索といいます。

XRの場合は、現実空間をスキャンしたものをナビゲーションメッシュにして計算するといいでしょう。

三宅氏の最近のオススメの技術は「戦略位置検出システム」というもので、目的地も自分で決めてしまうという技術です。
古くはゲーム「Killzone」で実装された技術で、ゲーム中で点をバラまいたうえで、条件に合わない=不要な点を削除し、残ったポイントに対して評価し、優れた1点を残すというものです。

例えば、下記のようなマップで弓兵(黄色の三角)をどこに配置したらよいかというケースを考えます。

昔のゲームであればレベルデザイナーが配置していたところ、最近のオープンワールドのゲームではマップのどこで戦闘が発生するか分からないため、どういったケースで発生できるようAIに判断させるます。

まずマップ上に点をばら撒き……

次に海の中や穴の中など、行くことができない点を除外し、

敵の近くに配置するとすぐやられてしまうのでこれらの点も除外。また味方の近くにいっても効果的ではないのでこれらの点も除外します。

残ったところから、敵兵を効果的に狙えるポイントを採択する、というように使います。

AIを通じて考える人間の認識とXR、街とXR

ここで、あらためて人間の認識について考えてみましょう。

生物の眼とカメラの違いについて考えてみると、カメラと客体(対象)とは関係はないが、カメレオンと客体の間には、カメレオンがアメンボを見ると自動的に舌が出るといった関係があります。このように、生物の場合は客体と感覚(知覚)と活動網が頭の中で繋がっています。これを生物学では機能環といい、機能環によって人間も含めた生物は世界とつながっています(環世界)。

AIに戻って、先のキャラクターAIの説明であったエージェントアーキテクチャとサブサンプション・アーキテクチャを考えましょう。エージェントアーキテクチャのインフォメーションフローは環世界と類似した構造になっています。


人間において、一番最初に認識する(反射的に行動する)層を環世界とし、環世界のインフォメーションフローを土台として、より抽象的なインフォメーションを下図のように積み重ねていくことができます。


https://miyayou.com/2019/09/30/gameai/ より)

VR技術では、上図でいう下層にあたる人間の感覚をハッキングするので、人間の主観的現実を組み立てている部分に揺さぶりをかけているというのが、認知科学からみたVR、ARになります。

いっぽうで、AIの一番大きい対象として、「スマートシティ構想」というものがあります。これは街全体をAIにするというもので、IoTやセンサー、カメラで街中の情報をAIが吸い上げ、問題があった場所に対してAIがドローンやロボット、あるいは人間を派遣し治安を守ります。人間が行動することで生まれるビッグデータに対し、AIは吸い上げたビッグデータを基に街全体を守ります。

「デジタルツイン」という言葉は、実際にそっくりな街並みをCGで用意されることを意味します。そして「ミラーワールド」とはそのCGが位置に結びつけられて存在することで、簡単に言うとAR空間であるといえます。


(秋葉原の街とミラーワールド)

AR空間がタブレットやレンズを通じてすぐに現実そっくりなCGがあるという状態が担保されるならば、例えば現実空間ではできないデコレーションや宣伝など、情報を添付することができます。見てる方は、レンズを通して見ても外して見てもほぼ同じものが見えます。
ミラーワールド、つまりAR空間でキャラクターを登場させ動かすのであれば、その技術こそがキャラクターAI技術であります。そして、そこでゲームを展開しようというのが、ミラーワールドにおけるゲームとして考えられます。

そのうえで、スマートシティの構想とXRは相性がよく、XRはスマートシティにアクセスする一番合理的なツールであるといえます。そして、スマートシティ自体は将来のゲーム機そのものになり得ます。「スマートシティ上に乗ったゲーム機が展開されるときに、XRというのは一番重要な技術になっていくと考えられます」という言葉で三宅氏は講演を締めくくりました。

(参考)
三宅陽一郎氏 ツイッター:https://twitter.com/miyayou
Miyake Labo – ゲームAI開発者三宅陽一郎の非実在研究室

(※本レポートについて、本文、画像の一部に三宅氏の近著『ゲームAI技術入門』 https://gihyo.jp/book/2019/978-4-297-10828-1 を参照、および『ゲームAI技術入門』講義用資料 https://miyayou.com/2019/09/30/gameai/ を引用しています。ゲームAIについて興味を持ち、理論や技術の詳細を体系的に知りたい方はぜひご覧ください)

タイトルとURLをコピーしました