1.27k likes | 1.54k Views
第 7 回内部観測研究会. デジタルゲームの人工知能における 内部観測の生成と外部観測の派生について. 三宅 陽一郎 y.m.4160@gmail.com http://www.facebook.com/youichiro.miyake twitter: @ miyayou. 2013.3.3. 感謝と自己紹介. 高橋先生、脇坂先生、ありがとうございます。 1975年生まれ 自己紹介 2004-2011 AI Programmer (FROM SOFTWARE)
E N D
第7回内部観測研究会 デジタルゲームの人工知能における内部観測の生成と外部観測の派生について 三宅 陽一郎 y.m.4160@gmail.com http://www.facebook.com/youichiro.miyake twitter: @miyayou 2013.3.3
感謝と自己紹介 • 高橋先生、脇坂先生、ありがとうございます。 • 1975年生まれ • 自己紹介 2004-2011 AI Programmer (FROM SOFTWARE) 2011-Present Lead AI Researcher (SQUARE ENIX) 2007-Present 国際ゲーム開発者協会 日本支部 SIG-AI チェア( IGDA JAPAN SIG-AI) 2008-Present 日本デジタルゲーム学会(DiGRA JAPAN)研究委員 2011-Present CEDEC (日本ゲームカンファレンス)委員 • 所属学会 人工知能学会、AAAI, IEEE CIS, ACM, 日本デジタルゲーム学会(DiGRA JAPAN) 情報処理学会 EC研究会 委員→アドバイザー(何もしなかった) ACM マルティメディア国際学会 委員(何もしなかった) 情報処理学会 AIコンテスト SamurAI Coding 委員 (これから頑張ります) IEEE WCCI 2014 (Computational Intelligence 国際会議) 委員 (これから頑張ります) 経済産業省 DCEXPO 委員(ちょっと頑張った)
学歴? 京都大学(数学) 大阪大学(原子核実験物理) 東京大学 (エネルギー工学/人工知能) 高エネルギー加速器研究所(半年ぐらい。修士論文) http://www.facebook.com/youichiro.miyake
Works(2006-2012) Chrome Hounds (2006) Demon’s Souls (2009) PokaPokaAiru Village(2011) Armored Core V (2012) AI for Game Titles Books
At Beginning … はじめに
(注) • 通常、ゲームAIと言った場合、チェスや将棋のようなボードゲーム上の人工知能のことを指しますが、 • 本講演では、ゲームAIと言った場合には、アクションゲームや、RPG、ストラテジーゲームと言った動的なゲームにおける人工知能を指します。
Demo • PACMAN
Demo Halo AI Retrospective: 8 Years of Work on 30 Seconds of Fun Author: Damian Isla (AI Engineering Lead) http://www.bungie.net/Inside/publications.aspx
ゲームの歴史=ゲームの進化 ゲームの歴史はゲームの進化である。 ゲームの進化はゲームAIの進化を促す。 では、ゲームAIとは何でしょう? ゲームAIの進化とは何でしょう? (本日のテーマ)
ゲームを創作する(ゲームはゲームを製作する者によって進化する) ゲームを創作する(ゲームはゲームを製作する者によって進化する)
ゲーム世界とAI Game Mechanism Game World (= Environment = Game Stage = Level Design) AI Character (=NPC)
ゲーム世界とAI Game Mechanism メタAI Game World (= Environment = Game Stage = Level Design) プロシージャル技術(自動生成、自動制御) (Auto-generation, Auto-Control) AI Character (=NPC) キャラクター AI (Brain)
ゲーム世界とAI Game Mechanism メタAI Game World (= Environment = Game Stage = Level Design) ゲームAIの扱う領域 プロシージャル技術(自動生成、自動制御) (Auto-generation, Auto-Control) AI Character (=NPC) キャラクター AI (Brain)
本講演のコンテンツ 第一章 ゲームAIの歴史 第二章 メタAI 第三章 エージェントモデル 第四章 プロシージャル技術 第五章 まとめ
The History of Game AI 第一章 ゲームAIの歴史
クラシックなキャラクターAIの作り方 このゲームのAIをどう作りますか? http://nippondesign.co.jp/blog/files/2010/01/championship20lode20runner.jpg
クラシックなキャラクターAIの作り方 このゲームのAIをどう作りますか? たぶんこう作りますね。 AI_Func{ if (自分からプレイヤーまでブロックがなければ) 前進。 else if(自分(AI)からプレイヤーへの方向で空いているブロックある)そこへ前進。 else 一番近い仲間の後を追う。 } http://nippondesign.co.jp/blog/files/2010/01/championship20lode20runner.jpg
クラシックなキャラクターAIの作り方 このゲームのAIをどう作りますか? たぶんこう作りますね。 AI_Func{ if (自分からプレイヤーまでブロックがなければ) 前進。 else if(自分(AI)からプレイヤーへの方向で空いているブロックある)そこへ前進。 else 一番近い仲間の後を追う。 } これって何なのでしょうか? http://nippondesign.co.jp/blog/files/2010/01/championship20lode20runner.jpg
クラシックなキャラクターAIの作り方 このゲームのAIをどう作りますか? たぶんこう作りますね。 AI_Func{ if (自分からプレイヤーまでブロックがなければ) 前進。 else if(自分(AI)からプレイヤーへの方向で空いているブロックある)そこへ前進。 else 一番近い仲間の後を追う。 } これって何なのでしょうか? http://nippondesign.co.jp/blog/files/2010/01/championship20lode20runner.jpg
クラシックなキャラクターAIの作り方 このゲームのAIをどう作りますか? たぶんこう作りますね。 AI_Func{ if (自分からプレイヤーまでブロックがなければ) 前進。 else if(自分(AI)からプレイヤーへの方向で空いているブロックある)そこへ前進。 else 一番近い仲間の後を追う。 } これって何なのでしょうか? =これは、開発者が俯瞰視点から見たゲーム状態に対して、 キャラクターをコントロールしているのです。 http://nippondesign.co.jp/blog/files/2010/01/championship20lode20runner.jpg
ゲーム 開発者 コントロール キャラクター
あやつり人形? http://blogs.yahoo.co.jp/zukou23/GALLERY/show_image.html?id=31188784&no=0
ゲーム 開発者 作成 プログラム コントロール キャラクター
あやつり人形をあやつる人形を作る http://blogs.yahoo.co.jp/zukou23/GALLERY/show_image.html?id=31188784&no=0
クラシックなキャラクターAIの作り方 このゲームのAIをどう作りますか? たぶんこう作りますね。 AI_Func{ if (自分からプレイヤーまでブロックがなければ) 前進。 else if(自分(AI)からプレイヤーへの方向で空いているブロックある)そこへ前進。 else 一番近い仲間の後を追う。 }
クラシックなキャラクターAIの作り方 このゲームのAIをどう作りますか? たぶんこう作りますね。 AI_Func{ if (自分からプレイヤーまでブロックがなければ) 前進。 else if(自分(AI)からプレイヤーへの方向で空いているブロックある)そこへ前進。 else 一番近い仲間の後を追う。 } 古典的ゲームAIプログラミング http://nippondesign.co.jp/blog/files/2010/01/championship20lode20runner.jpg
古典的ゲームAIプログラミングの特徴 • 1970年代~1990年代前半が最盛期 • キャラクターはゲームギミックの一つ。 • ゲーム全体の俯瞰的情報と、個々のキャラクターから見た情報を混在させて、それっぽい敵の動きを構築する。 • 通称、お化け屋敷AI(三宅が命名)。 =極めて限定されたシチュエーションでしか 動作できない。 =世界も、自分自身をも認識していない。
ゲームの進化 – 3Dの世界へ – http://assassinscreed.ubi.com http://www.spore.com/ http://www.killzone.com
ゲームの進化 – 3Dの世界へ – • ステージが本格的に3次元になることで、プレイヤーも人工知能も3次元世界の中で生きなければいけなくなった。 • しかし、例えば単純な3次元直方体の中にAIを閉じ込めて、そこでだけ活躍する、という形でお化け屋敷形式のAIは存続した(現在も多い)。 • 問題は、どうやって3次元で賢いAIを作れるか、ということ。
ゲームの進化 – 3Dの世界へ – • 3次元の地形をきちんと認識して行動できる。 • 環境の中のオブジェクトの意味を理解して、物を使うことができる。 • 多様な行動ができることを認識して、最も状況に応じた行動を取ることができる。 古典的ゲームAIで組もうとすると、情報が爆発する。 = AIから見た世界(局所的世界)と、俯瞰的な世界(大局的世界)の 情報スケールが乖離した。 (古典的ゲームAIの限界) → 現代ゲームAIの転換。
Demo • CounterStrike
古典から現代へ メタAI(Meta-AI) 古典的ゲームAI エージェントAI(Meta-AI 1994
古典から現代へ メタAI(Meta-AI) 古典的ゲームAI エージェントAI 現代のゲームAIのフレーム 1994 メタAIとエージェントAIへの分離と協調
User World Game Mechanism メタAI Game World (= Environment = Game Stage = Level Design) AI Character (=NPC) キャラクター AI (Brain) メタAIは外側からダイナミックにゲームを構築する。
User World Game Mechanism メタAI Game World (= Environment = Game Stage = Level Design) AI Character (=NPC) メタAIは外側からダイナミックにゲームを構築する。 =メタAIはゲーム内で物理的実体を持たないが、 外側からゲーム内のあらゆる要素に干渉し、 ゲームを操作する。 =外側からの観測者。 キャラクター AI (Brain)
User World Game Mechanism メタAI Game World (= Environment = Game Stage = Level Design) メタAIは外側からダイナミックにゲームを構築する。 =メタAIはゲーム内で物理的実体を持たないが、 外側からゲーム内のあらゆる要素に干渉し、 ゲームを操作する。 =外側からの観測者。 =ゲーム全体の動的変化、ストーリー生成、 難易度調整、コンテンツ生成。 AI Character (=NPC) キャラクター AI (Brain)
User World Game Mechanism メタAI Game World (= Environment = Game Stage = Level Design) AI Character (=NPC) キャラクター AI (Brain)
User World Game Mechanism メタAI Game World (= Environment = Game Stage = Level Design) AI Character (=NPC) キャラクター AI (Brain) キャラクターAIは内側からダイナミックにゲームを構築する
User Space Game Mechanism メタAI Game World (= Environment = Game Stage = Level Design) キャラクターAIは内側からダイナミックにゲームを構築する =センサー(感覚)を通して世界の情報を得て、 エフェクター(身体)を通してゲーム世界内で運動する。 =内部観測者。 AI Character (=NPC) キャラクター AI (Brain)
User Space Game Mechanism メタAI Game World (= Environment = Game Stage = Level Design) キャラクターAIは内側からダイナミックにゲームを構築する =センサー(感覚)を通して世界の情報を得て、 エフェクター(身体)を通してゲーム世界内で運動する。 =内部観測者。 =キャラクターとしての動作、演技、など。 AI Character (=NPC) キャラクター AI (Brain)
本講演のコンテンツ 第一章 ゲームAIの歴史 第二章 メタAI 第三章 エージェントモデル 第四章 プロシージャル技術 第五章 まとめ
Meta-AI 第二章 メタAI
ゲームAIの二つの種類 (22)メタAI キャラクターAI キャラクターの頭脳(意志決定機構) ゲームAI メタAI ゲーム全体を俯瞰する頭脳
メタAIの歴史 2000 1980 1990 古典的メタAI キャラクターAI技術の発展 現代のメタAI
(例)「ゼビウス」 敵出現テーブル巻き戻し 敵0 敵1 敵2 敵3 敵4 敵5 遠藤雅伸氏 あと面白い機能なんですけれど、 ゼビウスには非常に簡単なAIが組み込まれています。「プレイヤーがどれくらいの腕か」というのを判断して、 出てくる敵が強くなるんです。 強いと思った相手には強い敵が出てきて、 弱いと思った相手には弱い敵が出てきます。 そういったプログラムが組み込まれています。 ゲームの難易度というのは「初心者には難しくて、上級者には簡単だ」ということが、 ひとつの難易度で(調整を)やっていくと起きてしまうので、 その辺を何とか改善したいな、ということでそういったことを始めてみたのですけれど、 お陰で割合にあまり上手くない人でも比較的長くプレイできる、 うまい人でも最後のほうに行くまで結構ドラマチックに楽しめる、 そういった感じになっています。 - ゼビウスセミナー - http://spitfire.client.jp/shooting/xevious2.html
セルフゲームコントールシステム • 岩谷氏: ファンと一般のユーザーを満足させる方法のひとつは人工知能AIのような考え方です。プレーヤースキルをプログラム側から判断して、難易度を調整していくというものです。これを私はセルフゲームコントロールシステムと呼んで10年以上前から開発に使っています。 http://game.watch.impress.co.jp/docs/20050312/gdc_int.htm
古典から現代へ メタAI(Meta-AI) 古典的ゲームAI エージェントAI(Meta-AI 古典的メタAI 単純エージェント 1994
現代のメタAI より積極的にゲームに干渉する。 メタAI 敵配位 敵スパウニング ストーリー レベル 動的生成 ユーザー
Michael Booth, "The AI Systems of Left 4 Dead," Artificial Intelligence and Interactive Digital Entertainment Conference at Stanford. http://www.valvesoftware.com/publications.html
適応型動的ペーシング [基本的発想] • ユーザーがリラックスいている時に、ユーザーの緊張度が一定の敷居を超えるまで敵をぶつけ続ける。 • ユーザーの緊張度が一定の緊張度を超えると敵を引き上げる。 • リラックスすると敵を出現し始める((1)へ)。 Michael Booth, "The AI Systems of Left 4 Dead," Artificial Intelligence and Interactive Digital Entertainment Conference at Stanford. http://www.valvesoftware.com/publications.html