ゲームAI技術入門 ──広大な人工知能の世界を体系的に学ぶ

はじめに

この記事を読むのに必要な時間:およそ 4 分

ガイダンスとオリエンテーション

これから人工知能を解説していくわけですが,人工知能は目に見えない学問です。神経回路を模したり,言葉を発話したり,そういったかろうじて目に見えることがあっても,知能の本質は脳や身体,精神の運動の中にあり,つかまえることが難しいのです。ゲームAIの良いところは,そういった概念的なものを設計し,実装まで持っていき,その結果を検証しもう一度概念に戻る,というサイクルがあるところです。ですからこの本もそういった3段階を意識して書いていきます。それぞれの段階を混在させてしまうと,とたんに今何について語っているかわからなくなりますし,各世界で「役に立つ」という意味が変わってしまいます。

ゲームAIは概念の広大な世界です。興味を持って覗いて意外に広いなあと歩きはじめてみれば,いつの間にか広大な平原の真ん中の霧の中で立ち尽くすでしょう。その道は直線ではなく,どこが出発点で,どこがゴールかもわかりません。何しろ,たくさんの概念がネットワーク上につながっていて,いつの間にか,通ってきた道が多重の輪になっている。いったい,全体像がどうなっているのだろうと,何度もめぐっては地図を描いていると,だいたい図3のような感じの地図になります。本書の構成はこの地図をもとにしています。

図3 人工知能の歴史

図3 人工知能の歴史

やはり本というのは,一番気になるところから読むのがよいでしょう。しかし,技術の本というのは,知識を積み重ねて理解しますので,どの章がどの章の知識を前提にしているかを頼りに,読み進めるのもよいでしょう。

ゲームの中のAI,ゲームの外のAI

「ゲームAI」は,大きく2つの分野に分かれます。⁠ゲームの中のAI」「ゲームの外のAI」です図4⁠。⁠ゲームの中のAI」とは,ゲームタイトルの中に実装されるAIを言います。⁠ゲームの外のAI」とは,ゲーム開発工程におけるAIを言います。

図4 ゲームAIの全景

図4 ゲームAIの全景

「ゲームの中のAI」は第1章で説明するように,⁠メタAI」⁠キャラクターAI」⁠ナビゲーションAI」の3つを柱とします。第1~10章は,この「ゲームの中のAI」について説明します。この分野は1995~2015年の間に基礎が構築され,現在は第11章で説明する「学習,進化,プロシージャル技術」によってさらなる発展の時期を迎えようとしています。

「ゲームの外のAI」は,開発者の代わりにデータ自動生成や自動バランス調整などの開発作業を行ったり,テスターの代わりにデバッグをしたり,また開発者を支援し作業効率を何倍にも上げるAIです。第12章で説明します。

第1~10章は5つのパートに分かれます。導入として第1章,キャラクターAIを扱う第2~6章と第10章,ナビゲーションAIを使う第7章,メタAIを扱う第9章,そしてキャラクターAIとナビゲーションAIを組み合わせた応用として「群衆AI」を扱う第8章です。また,徐々に拡大しつつある分野として,⁠学習・進化・プロシージャル技術」があり,これを第11章で扱います。

概念,設計,実装

先ほど少し解説したとおり,ゲームAIはほかのソフトウェアと同様に「概念,設計,実装」の3つの階層から成ります。

概念の世界では,AI特有の概念を扱います。たとえば,認知とか,アフォーダンスとか,思考とか,哲学的な概念です。概念においては,いろいろな機能がどのように実現され,実装され,結果としてユーザーがどのように受け止めるかを解説します。しかけるのは開発者であり,受け止めるのはユーザーです。開発者はAIをはりめぐらし体験を作り,意図した効果をユーザーに与えられているかを,開発の循環の中で改善していきます。

本書で扱う主要な概念のネットワークを示しておきます図5⁠。ゲームAIの概念の一つ一つはとてもシンプルなものですが,それを組み合わせることで,大きな力をゲームの中で発揮することになります。本書で基本的な概念を学び,実践でそれらを組み合わせることで,それぞれのゲームに沿ったAIの力を作ることができます。

図5 概念ネットワーク

図5 概念ネットワーク

次に設計はそういった概念をソフトウェアとして組み,機能として発揮するためのデザインを行います。これはクラス設計より少し大きな枠組みで,データの流れや処理の塊を定義するものです。

最後に実装はプログラムの話です。データ構造やクラス定義などについてのテクニックとなります。本書では「概念,設計」を中心に,必要に応じて「実装」のテクニックを示します。

AIはゲームの中で多様な役割を持っており,一つの機能にも複数の意味があり,効率的に書こうとすると,どうしても削げ落ちてしまいます。そこで本書では,少し不格好ですが同じテーマに何度も立ち返りつつ,方法を深めて解説していきます。

言葉の整理

本格的な解説を始める前に,まず言葉を整理しておきましょう。

「AI」⁠人工知能」と言った場合,人工知能という一般的な概念か,人工知能が実装された実体を指します。たとえば,ロボットやキャラクターのことを単にAIという場合があります。⁠AI技術」と言った場合,機能としての人工知能技術を指します。意思決定,ナビゲーション,群衆管理,などです。

一般に「ゲームAI」と言えば,将棋や囲碁,デジタルゲームを含めて,その人工知能のことを言います。⁠デジタルゲームAI」とはデジタルゲームの人工知能ですが,本書では単に「ゲームAI」と呼びます。

キャラクターとは,ゲーム内で登場する人物やモンスターの総称です。プレイヤーが操作するキャラクターのことをプレイヤーキャラクタ-,プレイヤーが操作しないキャラクターのことをノンプレイヤーキャラクター(NPC)と言います。NPCはAIで動きます。

「知能」とは知的能力や知的能力を持つ存在を指します。⁠知性」とは本書では,高い知的特性のこと,高い知的特性を持つ存在を指します。

次によく間違われる例として「レベル」という言葉があります。これは「難易度」という意味で使う場合と,⁠ゲームステージ」という意味で使う場合があります。⁠レベルデザイン」と言った場合には,⁠難易度調整」のことではなく,⁠ゲームステージの地形設計/敵配置/しかけ」のことを言います。

『人工知能の作り方』との比較

技術評論社さんからは,2016年に『人工知能の作り方』注3を出版させていただきました。筆者としては両書を読んでいただきたいですが,どちらの本から読んでいただいてもかまいません。ここで,この2冊の違いを示して,両書の関係を明確にしておきたいと思います。

『人工知能の作り方』では,⁠デジタルゲームの人工知能」という分野の中で最もおもしろく,わくわくするようなトピックを選んでエッセイ風に解説しました。基本的にどこから読んでも楽しめるように形成しています。本書『ゲームAI技術入門』は,正確に順序付けて描くことを目的としています。章と節の順番も厳密に決められており,先の章を読むには前の章の理解が必要とされます。両書で同じ題材を扱う場合でも,⁠人工知能の作り方』ではその題材そのものが持つ発展性が重視され,本書では全体の体系の中の概念的構造の精緻さに重心が置かれています。

デジタルゲームの人工知能も40年が経ち,その体系が一つの山のように形成されてきました。今からこの分野に入ろうとするには,それなりの苦労が必要となっています。私は2004年からゲーム産業に関わり,この分野の発展を真近で見て,その発展を担った人々と対話し,私自身もある程度の貢献してきましたので,その全貌を把握しやすい立場にあります。そこで,この分野の体系立った解説を書くことで,本分野全体のガイドブックの役割を果たせるように努めました。

注3)
三宅陽一郎著人工知能の作り方─⁠─⁠おもしろい」ゲームAIはいかにして動くのか技術評論社,2016年

参考文献

本書は,この20年に渡るデジタルゲームのゲームAI技術が凝縮しています。参考にした文章の脚注や文中に参考元を示しています。100を超える参考元を示していますので,自学自習用のテキストとしても使用できます。

参考元の多くはリンク先を張ってあります。Web上のものはリンク切れを起こすこともありますが,タイトル名,記事名などで再度検索することで,多くは見つけられると思います。

また,人工知能学会のサイトには「私のブックマーク」というコーナーがあり,それぞれの専門分野の有用なリンクを集めたページを作っています。⁠ディジタルゲームの人工知能」のページは私が担当しています注4⁠。本書の参考とも重なる部分の多い128個のリンクを掲載しています。

注4)
三宅陽一郎私のブックマーク「ディジタルゲームの人工知能(Artificial Intelligence in Digital Game⁠⁠」⁠ 人工知能学会,2017年

著者プロフィール

三宅陽一郎(みやけよういちろう)

ゲームAI開発者
京都大学で数学を専攻,大阪大学(物理学修士),東京大学工学系研究科博士課程を経て,2004年よりデジタルゲームにおける人工知能の開発/研究に従事。九州大学客員教授,理化学研究所客員研究員,東京大学客員研究員,国際ゲーム開発者協会日本ゲームAI専門部会チェア,日本デジタルゲーム学会理事,芸術科学会理事,人工知能学会編集委員。連続セミナー「人工知能のための哲学塾」を主催。著書に『人工知能の作り方』(技術評論社)など。共著に『高校生のための ゲームで考える人工知能』(筑摩書房),『FINAL FANTASY XV の人工知能』(ボーンデジタル)など。

Web:https://miyayou.com
Twitter:@miyayou
SlideShare:https://www.slideshare.net/youichiromiyake/presentations