【技術本】ゲームAI技術入門──広大な人工知能の世界を体系的に学ぶ
https://amzn.to/4lynhqs
【技術本】ゲームAI技術入門──広大な人工知能の世界を体系的に学ぶ
へポスト
ゲームにおける人工知能活用の最新状況(2019年現在)を解説している。すでに、ゲームにおいても機械学習を活用した人工知能の導入が始まっているが、本書では主にゲーム処理におけるロジカルなアルゴリズムで実現するゲームAIの解説に比重がある。記載内容は、基本設計書レベルの粒度で解説されている。
著者も本書で記していたが、「ゲームAIにおいては、生物学、認知科学、情報科学、心理学などを借用しながら、巧みに組み合わせることで構築されている。他の分野で新しい知見が得られれば積極的に取り込んでいく。オリジナルのコアを持たないような、応用分野でもあり、基礎分野でもある。時に、文系視点、哲学的な視点も借用する。」という点が非常に興味深い。
一見、抽象的すぎる動作判断を人工知能として実装しようとする場合、何から手をつけていいか漠然としてしまうかもしれない。本書での一つのアプローチとして、抽象的かつ複雑な思考をシンプルな処理まで分解して評価項目をパラメータ化して定量評価によって実行内容の選択ができるようにし、それら個々の単純な処理を組み上げることで、一つの複雑な思考処理を実現している。長所として、シンプルな処理自体を新たな複雑な人工知能思考処理の部品として再利用できるよう部品化できる。部品化された処理は、中身の実装を変えずとも部品の追加、削除、入れ替えだけで新たな複雑な人工知能思考処理を構築できるのが望ましい。人工知能思考における個々の処理過程において、複数の処理候補が処理リスト格納プールから検索されたとしても、プライオリティ値による優先度選択、順次処理の処理順値、一度選択されたらしばらくは選択されないためのクールダウン期間による除外カウントタイム値などで、単数または複数の処理を的確に選択できるようにもしている。
上述の内容は一例であるが、本書を読み進めるにつれて、人工知能の思考判断のための定量評価項目を冷静に分析して綿密に策定することで、抽象的思考内容に具体性を持たせて設計して実装していくイメージも掴みやすくなると感じた。
人工知能の思考といっても、様々な実装アプローチが紹介されており、独自で新たなゲームAI構築をするための良い足がかりとなる良書であると感じた。
---------
以下、内容メモ。
1章:ゲームの中の人工知能
ゲームAIの3分野
・メタAI:エージェント(ゲームキャラクター)を動的に配置や指示、レベル状況を監視、ゲームの流れを作る
・キャラクターAI:自律的な判断、仲間同士の協調、チームAI
・ナビゲーションAI:上述2つのAIのために、レベル認識のためのデータ準備、オブジェクト表現を管理、ナビゲーションデータの管理、パス検索、位置解析
3つが連携しながら、ゲームを作っていく。
2章:知能の仕組み
・エージェントアーキテクチャ
世界と知能を結ぶモデル
1:世界と知能を分離して考える
2:知能は世界からセンサ(知覚)を通じて情報を得る
3:知能は世界にエフェクタ(身体、機能)を通じて影響を及ぼす
このモデルでは、インフォメーションフローが形成される
センサ>知能(知識生成、意思決定、行動生成)>身体>世界>再びセンサ
知能の中は、大きく3つに分かれる
・ブラックボードアーキテクチャ
ブラックボード(黒板、共有読み書きもメモリ)があり、その周りに専門的な処理を持つKS(knowledge source)と呼ばれるモジュールがあり、そのモジュールをアービターという全
体を制御するモジュールが起動、オフにする仕組みを持つシステムのこと。
KSが専門分業してブラックボード上のデータを解釈していく。
ブラックボードは、抽象的解釈されるごとに上書きせずに階層化して別の領域に書き込む>階層化ブラックボード。複数のプロセッサを協調させて解析させるため。
音声解析の階層化例:
入力波形>セグメント>音節>単語>単語列>句>検索分
3章:知識表現
フレーム:問題設定(問題範囲)の事を指す。行動を起こすに際して、どの範囲は考慮が必要か、どの範囲は考慮が不要かの規定。通常は、人間は自分でフレームを判断設定できる。しかし、人工知能は自分で問題を作り出したり、フレームを設定することが現状ではで
きない。
視覚の実装:レイキャストと視覚領域で、レイが到達するかどうかでターゲットが障害物に隠れて見えないか、見えているか判定する。
存在確率マップ:自分の探査した領域は、ターゲットが存在する可能性確率を下げて行き、満遍なくマップを探索する方式
聴覚の実装:視覚と異なり、遮蔽物があっても音が届くケースもある。他のオブジェクトの反響によって聞こえる場合もある。
ナビゲーションメッシュなどで、音の伝播経路を実装
情報の伝播:仲間キャラからの情報共有、伝播。信頼度などで信憑性判断の材料にする。
感覚統合:様々なセンサからの情報を統合し、最終的に事実を組み上げる機能を実装
戦術的位置解析:身を隠す場合
1:生成された隠れるポイント候補生成
2:プレイヤーから近距離の候補を除外
3:プレイヤの視覚範囲を除外
4:AIキャラクターの現在位置から一番近い場所を選択
評判システム:人工知能の目撃した事実が、他のNPCに伝播していく。知り合い、仲間であ
る関係に伝播していく。敵対関係には伝播しない。見た状況(途中まで見た、最後まで見届けた)などで、それぞれ持ってる情報が異なる場合もある。それらを互いに持っていた>場合、インパクトが強い情報で上書き共有される。
アフォーダンス:許された行動(afford)。その世界で知能が見出す行動の可能性のこと。
4章:記憶
記憶機能をつかい高度な情報処理を行うことで、環境世界における反射行動からどんどん逃れていく
反射行動>場合ごとに対応>抽象的に思考>理論的に考える
受け取った刺激、情報の抽象化がすすむ
言葉によって世界を分けて理解するようにする>分節化
セマンティックネットワークによって、擬似的に人工知能が世界を捉えるあり方として構造を持つ>ある程度擬似的な言語能力を得とくできる。
最近は、オントロジーとしてさらに発展。>精神が世界を捉えようとするあり方が精神の構造そのものであり、それをある程度知識として表現するのが現在の人工知能のアプローチ。
記憶の構造:固定記憶、ワーキングメモリ、短期記憶、長期記憶
5章:古典的な意思決定
反射型:自分を含む世界の変化に対して行動を生成する
ルールベース、ステートベース、ビヘイビアベース
非反射型:目的を持って行動するゴールベース、世界の変化を予測して行動するシミュレーションベースなど
ルールベースの意思決定:単位はルール。if文。同じルールに該当したら優先度で選択、順番実行、一度該当したルールはクールダウン期間を設けるなどで処理。ルールの連鎖処>理など。
ステートベースの意思決定:ステートマシン(有限状態マシン)
巡回>攻撃>待機>巡回に戻る・・
階層型ステートマシン:ステートの中に、さらに細分化したステートがある。
ユーティリティベースの意思決定:ユーティリティとは「効用」を意味する。効用の評価値を計算して、判断する。例)スタミナ、攻撃力のデータから、評価値を計算し、先に倒す相手を判定する、など。ムードパラメータの調整>空腹時に食べ物を食べた方が、ある程度満腹の時に食べた時より、満足度が高くなる表現。
6章:現代風の意思決定
ゴールベースの意思決定:ゴールを決定する、ゴールから行動を作る、の2フェーズ
ゴールを与えれば、アクションプールから必要なアクションが引き出され、自動的に繋がれ、プランが生成される。各選択されるアクションのコストも考慮。
階層型ゴール思考プランニング:大きなゴールを小さなゴールに分解して、最終的にシンプルな行動にまで分解していく手法>小さなゴールの再利用性が利点。新たに作られる>大きなゴールを構成する部品として再利用ができる。部品が蓄積される開発後半になるに>したがって複雑なゴールを実現できるメリット。
タスクベースの意思決定:タスクは「実行可能なこと」という意味。問題に対して、タスクと表現し、最終的に操作にまで分解する。階層型タスクネットワーク。
ビヘイビアベースの意思決定:物理的な行動をベースに考えていく。ビヘイビアツリー:一方向非循環グラフ(DAG)。ステートマシンのように循環がない分見通がよくバグが少なく拡張性がある。指定されたノードが全て実行されると、ルートに再び戻る。同じ層にあるノードでの競合はプライオリティなどで決定する。
シミュレーションベースの意思決定:重力のもとで様々な方向に加速したり減速したりするゲームでは、その軌跡を簡単な数式で表すことができないので、ロジックだけで制御を組もうとすると限界がある。そこで、加速は減速、方向をある程度ランダムに切り替えて、うまくパターンを見つけるという方法。ゲームのいろいろな要請によって、正確な軌道はシミュレーションして見ないとわからない場合に適用。>衝突回避など。
囲碁>モンテカルロ木探索。終局まで打つことを「プレイアウト」という。プレイアウトを繰り返し勝率をその手の評価値として利用する。
7章:ナビゲーションAIと地形認識
現在では、ナビゲーションメッシュが主流。
経路探索アルゴリズム:ダイクストラ法、A*法(ダイクストラを改良したもの)
アサシンクリードでは、大域的にはナビゲーションマップ、細かいところではウェイポイントを用いて移動
KILLZONEで採用されたLOSマップ:ウェイポイントごとに、見晴らし距離情報が埋め込まれ
ている>敵味方のごとのウェイポイントの見晴らし距離と、敵味方の実際の距離を比較して、見晴らし距離が長ければ射線が通っていると判定できる。>簡単な計算だけでFPSにお
ける射線判定を高速化することで、質の高いFPSになっている。
スマートテレイン:キャラクターの向ける視線、イスなどに座る位置を埋め込んで、そこで動作させる手法。
3次元パスの検索:オクトツリー(8分木)を使う。焼きなまし法を使う。
意思決定と世界表現:地形の認識>地形ごとのコストを持たす。効率の良い総コストのパスを検索するようにする。
8章:群衆AI
エージェント:ゲームキャラクターのことを指す
エージェントの集団>マルチエージェント
階層型アーキテクチャ:司令会>部隊長>兵隊として群衆を管理
現場の情報をエスカレーションし、司令官が指示を下に与える。
ファシリテータ型:ファシリテータが上位になりながら、下位のAIの調整のみを行う、受動的で弱いシステム>下位のAIの自律性を維持しながらチームとして機能させられる。
群衆の作り方:ボイド>レイノルズのアルゴリズム
離散、整列、集合、回避を制御
街の群衆の作り方:
巡回キャラクター>生成ポイントと消滅ポイント、巡回路
イベントなどで、イベント領域に入ったキャラクターを立ち止まらせて人混みを動的生成する。
キャラクターごとに1日のタイムスケジュールを持たせて行動する。
監視キャラクターなどは、前述(過去章参照)の確率マップなどを活用して、確認した領域の存在確率を下げて満遍なくマップを巡回するようにする>仲間同士でその確率マップを共有>仲間の信頼度で存在確率の上書き幅を調整。
9章:メタAI
メタAIは抽象的で実体をもたない。
ゲームの楽しさを管理する接待AI。
プレイヤーの合わせて難易度調整。緊張の緩急の演出。敵の動的配置
ユーザの緊張度などを、手の発汗量、脈拍などでテストデータを大量に取ると、緊張の緩急判定の精度が上がるかも。
ゼビウス:プレイヤーに沿った難易度調整機能(簡易AI)を実装
ゲームのログ情報をオンラインで収集>解析に利用>プレイ離脱の原因調査と対策反映
10章:生態学的人工知能とキャラクターの身体性
生物のセンサは、無限の可能性と情報に満ちた世界から、必要な特定の対象へ特定の部位で反応するように特化している。
11章:学習、進化、プロシージャル技術
がんばれ森川君2号:ニューラルネットワークの逆伝搬法で学習
シーマン:自然言語会話
プロシージャル技術:人間の代わりにコンテンツを生成する人工知能
地形自動生成、植物自動生成、
12章:ゲーム開発の品質保証/デバッグにおける人工知能技術の応用
・開発工程を助けるAI:プロシージャル技術、メタAI技術によるゲームデータ生成、学習やシミュレーションによるパラメータ設定
・ゲームサービスを支援するAI:データマイニング(ロギング、解析)AI、データビジュアライゼーション、シミュレーションによるゲームバランス検証
・ゲーム品質保証:バグ発見、コンテンツ質チェックなど、ゲームの自動プレイを行う人工知能による品質管理
自動プレイAIによる品質管理は、人手で作業をする仕事量をはるかに凌駕する規模、品質を達成できるところまで来ている。>アサシンクリードの開発などで導入
以上。
へポスト
