GDC2008に見る
ＡＩ、プロシージャル、製作パイプライン技術の発展
GDC2008 報告会

三宅 陽一郎（フロム・ソフトウェア）
y_miyake@fromsoftware.co.jp
3.1.2008

What is the year 2008 ?
２００５

２００８

２０１１

コンテンツ・パイプライン、
次世代製作環境の完成
ユーザー・
作成コンテンツ(UGC)

新規技術の導入（物理、ＡＩ、プロシージャル…）

New Concept

スペックをフルに使い切る
最上位のゲーム製作

主要な技術講演の分類
コンテンツ・パイプライン「STAR WARS: THE FORCE UNLEASHED」でLucasArts はいかにして…
「DOOM」から「RAGE」へ: ゲーム開発の弛まざる発展「アンチャーテッド エル・ドラドの秘宝」事後分析
EVE Online の世界
アニメーションの新しい地平へ：「アンチャーテッド エル・ドラドの…
スピルバーグの「BOOM BLOX」の製作「Halo3」 シネマティック·プロセス
プロシージャル
SPORE におけるプロシージャル・ミュージック
FAR CRY 2 におけるプロシージャル・データ生成

物理「MERCENARIES 2」大規模ストリーミング世界におけるネットワーク上の物理
ＡＩ
うまく負ける技術: 人工知能 と 「CIVILIZATION」「ASSASSIN’S CREED」における群集制御:リアルな群集を作る
よりよい戦場を構築するために: HALO 3 AI オブジェクティブ・システム

主要な技術講演の分類
コンテンツ・パイプライン「STAR WARS: THE FORCE UNLEASHED」でLucasArts はいかにして…
「DOOM」から「RAGE」へ: ゲーム開発の弛まざる発展「アンチャーテッド エル・ドラドの秘宝」事後分析
EVE Online の世界
アニメーションの新しい地平へ：「アンチャーテッド エル・ドラドの…
スピルバーグの「BOOM BLOX」の製作「Halo3」 シネマティック·プロセス
プロシージャル
SPORE におけるプロシージャル・ミュージック
FAR CRY 2 におけるプロシージャル・データ生成

物理「MERCENARIES 2」大規模ストリーミング世界におけるネットワーク上の物理
ＡＩ
うまく負ける技術: 人工知能 と 「CIVILIZATION」「ASSASSIN’S CREED」における群集制御:リアルな群集を作る
よりよい戦場を構築するために: HALO 3 AI オブジェクティブ・システムツール・プログラマー

ディジタル・ワールド

ツール・プログラム
３Ｄツール

３Ｄモデル

２Ｄツール

２Ｄデータ

スクリプト言語

スクリプト

サウンドツール

サウンド

エクセルなどゲーム設定
データ

ツール・チェイン

コンテンツ・データ

コンテンツ・パイプライン

アーティスト

デザイナー

ゲーム
エンジン
プログラム

ゲーム・プログラム

開発マネージメント

ゲーム・プログラマー
http://matsucon.net/

コンテンツプロシージャル

(1) 「Spore」におけるプロシージャル・ミュージック
(2) 「Far Cry2」 におけるデータ自動生成
ＡＩ(3) 「Assassin’s Creed」における群集制御(4) 「Halo3」における戦場の形成
ナレッジ・マネージメント(5) まとめプロシージャル技術

プロシージャルとは？
プロシージャル(Procedural)＝ 計算による、連続した操作によるデジタルゲームでは？
ゲーム空間、デジタル空間において、自身の連続操作によって自律的な力を持つファクター（例） 自動生成、自律的なＡＩ
Procedural Contents Generation

Procedural AI

プロシージャル コンテンツ生成
デジタル空間で草原を作りなさい①アプローチ１
人の手によってモデリングを行う②アプローチ２
アルゴリズムプログラムによってモデルを自動生成する
void gen(){if(unit_length >MAX_LENGTH) { add_stem(); return; }add_rings(current_stem);

プロシージャル

if(steps > 1000);return;gen();}
int make(){ gen(); return; }反復関数法

プロシージャル技術

2003, Youichiro Miyake

ゲームデザインへ

たくさんの演算によってモデルを生成する
コンテンツ自動生成 (Procedural Contents Generation)

デジタルゲームにおけるプロシージャル
プロシージャル(Procedural) ＝ 計算による、連続した手続きによるProcedural
周囲の状況を処理して行動するＡＩ

コンテンツ自動生成

プロシージャル AI- CG- アニメーション- 会話- ダンジョン

- 動的位置検出- ＦＳＭ- プランニングプロシージャル・コンテンツ
テクスチャー生成

Procedural Texture

モデル自動生成

Deformable Model

アニメーション生成

Animation Synthesis

即応インタラクション

物理

認識・判断するAI

Procedural AI

街生成

City Generation

会話・ストーリー生成

Story Generation

人工市場

Artificial Societies

究極 地球シミュレーター
（世界シミュレーターという意味で）

Earth Simulator

デジタルゲーム世界の変遷
FC

SFC

SS, PS

PS2,GC,Xbox

1999 DC

Hardware2005

TV game
3D
成長期
成熟期
インパクト

Procedural

Network
Physics
AI

Xbox360, PS3, Wii
（次世代）

時間軸

ゲームに応用される様々なプロシージャル
インゲーム

ダンジョン自動生成
音楽？

ユーザーと協調して作成完全に自動生成開発

ゲームに応用される様々なプロシージャル
インゲーム

小さなプロダクションでも大きく多様なコンテンツを作るチャンス
ダンジョン自動生成
音楽？

ユーザーと協調して作成完全に自動生成開発

Spore とはどんなゲーム？
自分だけの宇宙を作って行くゲーム

生物、建物、惑星、主要なものは全てユーザーが生成可能

単細胞フェーズ

集団行動フェーズ

ギャラクティックフェーズ
http://www.4gamer.net/news/history/2006.05/20060511195155detail.html

「Spore」はプロシージャル技術の結晶グラフィック、オブジェクト、サウンド、あらゆる分野においてプロシージャル技術を応用する次世代のゲーム① テクスチャー（SIGGRAPH2007）② オブジェクト配置（SIGGRAPH2007）③ モデル生成（SIGGRAPH2007）④ モデル変形（SIGGRAPH2007）＋⑤ 音楽プロシージャル（GDC２００８初公開）

Spore の技術情報は

詳しくはゲームＡＩ連続セミナー
第６回資料へ（IGDA日本の「ダウンロード」にテキストがあります）
http://www.igda.jp/modules/mydownloads/＋
カーネギー・メロン大学のAndrew J. Willmot博士のＨＰページのSIIGRAPH2007のコーナー

http://www.cs.cmu.edu/~ajw/s2007/

コンテンツプロシージャル

(1) 「Spore」におけるプロシージャル・ミュージック
(2) 「Far Cry2」 におけるデータ自動生成
ＡＩ(3) 「Assassin’s Creed」における群集制御(4) 「Halo3」における戦場の形成
パイプライン
ナレッジ・マネージメント(5) まとめSPORE におけるプロシージャル・ミュージック

http://pc.gamespy.com/pc/spore/853810p1.html

SPORE におけるプロシージャル・ミュージック
Procedural Music in SPORE
https://www.cmpevents.com/GD08/a.asp?option=C&V=11&SessID=6426
講演者：Kent Jolly (Audio Director, Electronic Arts), Aaron McLeran (composer, n/a)
日時：2月20日（水） 12時〜13時
場所：West Hall, 2024号室

プロシージャル・ミュージック
• 音楽の自動生成• 環境音楽 (Ambient Music)
くり返しのない（never repeat）音楽を目指す

Procedural Music（その場で生成される音楽）

そのステージでユーザーとインタラクションしながら生成される音楽

基本知識①基本要素（ミクロレベル）♪ 音楽の３要素 ＝ 音の高さ、長さ、強さ♪ 音の３要素＝ 周波数、強度、音色♪音色の経時変化（周波数スペクトルの時間的な変化）♪ 強さの経時変化（音の立ち上がり、たち下がり、余韻など②複合的な要素♪ メロディ / 和音（ハーモニー、コード）♪強さの変化（だんだん大きくなったり小さくなったり）♪ テンポとその変化（だんだん早く、だんだん遅く）基本知識③シンセサイザー♪ ミクロレベルの音のデザイン♪アルペジェータ
（一部のシンセサイザー等に搭載されている、
アルペ ジオを自動的に生成する仕組み）♪ マクロレベルの音のデザイン
http://ja.wikipedia.org/wiki/%E7%94%BB%E5%83%8F:MinimoogVoyager.jpg

http://www.forest.impress.co.jp/article/2000/02/25/dancemusic6.html

波形の形、くり返しなどを自在に編集できる＝ シンセサイザー
ソフトウエア・シンセサイザー

Sporeにおけるプロシージャル・ミュージック
♪音楽プログラミング環境

Ｐｄ(Pure Data)を用いた音楽自動生成♪ 各ステージごとに、このスクリプトを作る。
♪ ユーザーのアクションが新しい音を加えて行く。

ＥＡＰｄ

Pd とは？
♪ Pdとは、グラフィカルな環境で関数や変数 を結線することで制御フローや（音）信号の流れを定義するビジュアル プログラミング言語の一つ♪ Miller Puckette によって１９９０年代に開発されたフリーの言語
Bang オブジェクト（単にトリガーを発信）

オブジェクトを組み合わせる（中に書いてある文字は決められてた操作を表す）

簡単な解説
http://ja.wikipedia.org/wiki/Pure_Data

右の上が欠けたオブジェクトは値が入力されて変動する

Pd とは？
バング（スタートシグナル）

乱数発生

+1
変数ストア
サブルーチン

変数ストア
音源へ接続

音を鳴らすところPd とは？ 演奏者にあたるＡＩ
メトロノーム

音を鳴らすところ

EAPd

EAPd

EAPd

Pd とゲームサウンド
演奏者にあたるＡＩ

ユーザー・
インタラプション

音を鳴らすところMidi音源

Spore における実現例①

ユーザーのマウス・アクションに応じて音が加わって行くSpore における実現例②

なんで今までなかったのだろう？ ゲームにとても馴染んだ技術

「Spore」から見るこれからのゲーム開発「Spore」グラフィック、オブジェクト、サウンド、あらゆる分野においてプロシージャル技術を応用する次世代のゲーム
次世代ゲームエンジン

プロシージャル・ゲームエンジン(EA + Maxis)

さまざまなゲームを比較的安く開発できる（コンテンツ無限）ツール・プログラマー

ディジタル・ワールド

ツール・プログラム
３Ｄツール

３Ｄモデル

２Ｄツール

２Ｄデータ

スクリプト言語

スクリプト

サウンドツール

サウンド

エクセルなどゲーム設定
データ

ツール・チェイン

コンテンツ・データ

コンテンツ・パイプライン

アーティスト

デザイナー

ゲーム
エンジン
プログラム

ゲーム・プログラム

開発マネージメント

ゲーム・プログラマー
http://matsucon.net/

ツール・プログラマー

ディジタル・ワールド

ツール・プログラム
３Ｄツール

３Ｄモデル

２Ｄツール

２Ｄデータ

スクリプト言語

スクリプト

サウンド＆
サウンドプログラム
言語・ツール

サウンドプログラム＋サウンドサンプル

ゲーム
エンジン
プログラム

サウンド

エクセルなどゲーム設定
データ

ツール・チェイン

コンテンツ・データ

コンテンツ・パイプライン

アーティスト

デザイナー

ゲーム・プログラム

開発マネージメント

ゲーム・プログラマー
http://matsucon.net/

「SPORE におけるプロシージャル・ミュージック」
からの教訓
プロシージャル技術は、技術者・アーティストの仕事の内容、連携の仕方を変えて行く

プロシージャル技術は製作パイプラインの形を基本から変える

参考文献① The Beat Goes on: Dynamic Music in Spore (GameSpy)
http://pc.gamespy.com/pc/spore/853810p1.html② DAVID COPE
http://arts.ucsc.edu/faculty/cope/③ Pure Data の解説・ダウンロードサイト♪ Miller Pucket’site http://crca.ucsd.edu/~msp/♪ bang | pure data (pure data の解説本)
http://pd-graz.mur.at/label/book01/bangbook.pdf♪ PD について日本語ドキュメント
http://puredata.info/
http://ja.wikipedia.org/wiki/Pure_Data
http://megaui.net/oss4art/wiki/Pure_Data④ The Jazz Language
http://www.amazon.co.jp/Jazz-Language-Dan-Haerle/dp/0760400148

参考文献
三宅はこの分野の知識が不足しているために、以下はこの分野の基本的な文献を東京大学、常盤拓司先生にメイルでお聞きして、お答え頂いたものを編集した情報となっています。感謝いたします。文責は全て三宅にあります。
これからゲーム開発の側から、この分野を探求して行く上で貴重な情報源となっています。
是非、サウンドの方も含めて情報を共有して頂ければと思います。
また、PdはインタラクティブCG生成環境GEMとして、グラフィック生成とも関連を持っています(PD/GEM)。この情報はゲーム開発におけるプロシージャルなＣＧ生成の応用について示唆に富む情報となっています。

参考文献(1)＋② PDについて
コロンビア大学のMillorPucketの開発したインタラクティブ音楽システムを開発するための環境.
Max/MSPの別バージョンと言えるもの．
もともとMax/MSPの前身であるMaxは，IRCAM（フランス国立音楽と音響のための研究所，
初代所長：ピエール・ブーレーズ，映画カストラートの主役の声の音声合成で知られる）でMillerPucketとDavidZicarelliが開発したもの．
その後Zicarelliは音楽ソフトウェア企業勤務をへて独立し現在のMax/MSPの開発会社を起こす．
PucketはUCSD（カリフォルニア大学サンディエゴ校）に移りゼロからPDを開発．
Mark Danks（http://www.danks.org/mark/） （現SCEA）はPD上で動作する
インタラクティブCG生成環境GEMを開発者した。

⑤ 基本的な教科書

参考文献(2)♪ コンピュータ音楽 歴史・テクノロジー・アート（東京電機大学出版局）♪ コンピュータ・ミュージック（岩竹徹）♪ ポストテクノロジカルミュージック（但し，ノイズミュージックシーについての音楽論）⑥ 技法書♪ Computer Music （CharisDodge, Thomas A.Jerse著）♪ Composing Music with Computers♪ The Algorithmic Composer（David Cope著）
カオス理論，フラクタル理論，ニューラルネットワークなどを作曲に応 用するための方法と理論についてまとめられたもの．
(1)のほうが初心者向けに書かれている．

⑦ 理論書♪ Set Theory

作曲および楽曲分析に集合論を導入した理論
http://en.wikipedia.org/wiki/Musical_set_theory♪ Formalized Music（Iannis Xenakis著）
推計学などの数学理論（主に確立統計学，群論，圏論）を作曲に応用する技法についてまとめられたもの♪ シュトックハウゼン音楽論集 カールハインツ・シュトックハウゼン著
音列操作による作曲技法について述べられている．

♪ ブーレーズ現代音楽を考える（ピエール・ブーレーズ著）
音名の配列を行列に見立て、演算（内積やランダム交換等）する 作曲手法についてまとめられている．

参考文献(3)⑧音楽プログラミング言語、音楽自動生成ソフトウェア （Pd以外）
音楽の自動生成ソフトについては下記のようなものがある．

♪ KoanPro（SSEYO社）：数十のパラメータを設 定することで自動的に音楽を生成する．
BrianEno監修． （開発会社解散の ため現在入手不能）♪ M（Cycling74社）：ミニマルミュージック自動生成ソフトウェア
http://www.cycling74.com/products/M♪ Max/MSP（Cycling74社）：音楽用ビジュアルプログラミング言語
http://www.cycling74.com/products/maxmsp♪ jMax（IRCAM）： 音楽用ビジュアルプログラミング言語（JAVAによる実装）
http://freesoftware.ircam.fr/rubrique.php3?id_rubrique=14♪ Open Music(IRCAM)：ブーレーズの音楽理論に基づく
自動作曲のためのビジュアルプログラミング言語
http://recherche.ircam.fr/equipes/repmus/OpenMusic♪ SuperCollider： リアルタイムな音響合成処 理に特化したオブジェクト指向型のプログラミング言語
http://www.audiosynth.com/

参考文献(4)⑨人々（日本のこの分野 ‐音楽生成、PD, PD/GEM, Max/MSP‐ に関連する研究者、音楽家）
高岡明先生（玉川大）、岩竹徹先生（慶應大）、長嶋洋一先生（静岡文芸大）、
平井重行先生（京都産業大学）、平野砂峰旅先生（京都精華大）、
三輪眞弘先生 （IAMAS）、赤松正行先生（IAMAS）ら

⑩学会等
日本国内
情報処理学会（音楽情報科学研究会）
日本サウンドスケープ協会
海外
ICMA（International Computer Music Association）
NIME（International Conference on New
Interfaces for Musical Expression）

コンテンツプロシージャル

(1) 「Spore」におけるプロシージャル・ミュージック
(2) 「Far Cry2」 におけるデータ自動生成
ＡＩ(3) 「Assassin’s Creed」における群集制御(4) 「Halo3」における戦場の形成
パイプライン
ナレッジ・マネージメント(5) まとめFAR CRY 2 におけるプロシージャル・データ生成

FAR CRY 2 におけるプロシージャル・データ生成
Procedural Data Generation in FAR CRY 2
https://www.cmpevents.com/GD08/a.asp?option=C&V=11&SessID=6240
講演者：Dominic Guay (Technical Director, Ubisoft)
日時：2月21日（木）9時〜10時
場所：North Hall, 132号室

プロシージャル・データ生成
ゲーム開発者は、力任せに全てのコンテンツを作る(brute-force)
ことを好む

しかし、コンテンツの質の向上（ハードウエア、ＨＤなど）と増加により
もはや全てのコンテンツを手で作ることは難しくなっている。

プロシージャル技術に取り組む

FC2で取り組まれたプロシージャル・データ生成
コスト・時間の節約①プロシージャル・アニメーション- キャラクターのモーション、振る舞い、感情表現- レベルデザインにおける多様な自由度
多様なイノベーション②植物プロシージャル生成
いつでも簡単に変更できる③環境プロシージャル・ツール
コレクション・システム（レベルデザイン統合ツール）
ちょっといろいろ問題④プロシージャル・スカイ・システム
空の色・雲のモデル・フォグ・ライトスキャタリング・ライト

Far Cry 2
データ自動生成技術を大胆に導入したFPS，「Far Cry 2」の光と影(4gamers)

http://www.4gamer.net/games/047/G004713/20080222019/（ムービーがあります）

プロシージャル技術を開発ラインに導入するためには？
技術だけでは足りない…

① プロシージャル技術に応じた新しいデータ構築の方法を確立せよ。
② 新しいツール、インターフェースを準備せよ。
③ 技術を理解している人とよいツールを作れる能力を持つ人は別な場合があることを理解しておく（FC2では幸い、両者の力を持つプログラマーがいた）。

Mature pipeline !
コンテンツ・パイプラインに組み込み、コンテンツ・パイプラインを成熟させよう !
技術ではなく、プロシージャル技術でパイプラインを成熟させて初めてゲームのクオリティーが上がる
アーティストのツールへの要望やバイパスを使い方をきちんと聴こう！

プロシージャル技術を開発ラインに導入するためには？
しかし、プロシージャルでは殆ど全ての部分をプログラマーの肩にのしかかる① 初期の段階ではＲ＆Ｄが大切だが、時間と量に果てがない…
② 質の向上はプログラマーにお願いするしかない。
③ アーティストとプログラマーの頻繁なやりとりはストレスがたまる。
④ パイプラインを整備するのにコストのリスクがかかる。
（例えば、植物のシステムは２００５年には５人月だと思っていたが、実際は２００７年まで３人年かかった。）

Don’t think because you have a proofof your concept it means you can do on time !
コンセプトを実証することは初めの一歩に過ぎない。
油断せずに、製作工程を確立せよ！

実践から学んだこと
コレクション・システム
この前までうまく行っていたのに、一部を変更すると全ての処理が遅くなった
悪夢 ＝ ２０〜３０ＦＰＳが一瞬にして１〜２ＦＰＳへ。しかも、原因がわからない（デザイナーがおかしなデータを入れた）。
①自動テスト②アクセス制限③ある領域では生成をやめて、昔ながらの手で作れるようにしておく

Have fallback !
プロシージャルへ移行するときは、従来の方法に
いつでも戻れるようにしておく。完全にうまく行くことがわかってから、完全に移行するべし！

これからのゲーム開発の問題点
Rushing into a wall (壁にぶつかる)（開発進行）

データサイズ

チームサイズ

仕事の複雑さ（ポンからアサシンクリードまでを横軸にとっている）

コンテンツの変化
させやすさ

複雑に絡み合ったシステムでは、開発が進めば進むほど一部の変更で何処にバグが生成するかわからないので、データを触れなくなる。
開発が進むにつれて、ゲームコンテンツはますます変更しにくいものになる

よいツールやプロセスは一つの問題の解決にはなっても、
長期的なこの問題の壁を乗り越えることができないツール・プログラマー

ディジタル・ワールド

ツール・プログラム
３Ｄツール

３Ｄモデル

２Ｄツール

２Ｄデータ

スクリプト言語

スクリプト

サウンドツール

サウンド

エクセルなどゲーム設定
データ

ツール・チェイン

コンテンツ・データ

硬化

コンテンツ・パイプライン

アーティスト

デザイナー

ゲーム
エンジン
プログラム

ゲーム・プログラム

開発マネージメント

ゲーム・プログラマー
http://matsucon.net/

「 FAR CRY 2 におけるプロシージャル・データ生成」の教訓
プロシージャル技術がどのようなチャレンジであるかを理解し、長期的なコストを考慮しつつプロシージャル技術を導入しよう。
そうでなくても、選択肢の一つとして考慮しよう！

プロシージャル技術はこれからのゲーム開発の壁を超える
必須技術

参考文献
① sky procedural rendering
http://ati.de/developer/dx9/ATI-LightScattering.pdf②データ自動生成技術を大胆に導入したFPS，「Far Cry 2」の光と影(4gamers)
http://www.4gamer.net/games/047/G004713/20080222019/

講演後質問Q. 「ランタイムでやらないの？」
A. 「デバッグもなしに動かすことになり危ない」

ゲームＡＩ技術

コンテンツプロシージャル

(1) 「Spore」におけるプロシージャル・ミュージック
(2) 「Far Cry2」 におけるデータ自動生成
ＡＩ(3) 「Assassin’s Creed」における群集制御(4) 「Halo3」における戦場の形成
パイプライン
ナレッジ・マネージメント(5) まとめ「Assassin’s Creed 」における群集制御「ASSASSIN’S CREED」における群集制御:リアルな群集を作る
Taming the Mob: Creating believable crowds in ASSASSIN’S CREED
https://www.cmpevents.com/GD08/a.asp?option=C&V=11&SessID=6996
講演者：Sylvain Bernard (Animation Director, Ubisoft Montreal),
James Therien (Technical Lead for crowd gameplay, Ubisoft Montreal)
日時：2月22日（金）10時30分〜11時30分
場所：North Hall, 132号室

群集の作り方(1) アニメーション(2) パス検索(3) スポウンニング（発生）(4) 反応システム(5) 思考（意思決定）(6) イベント

(1) アニメーション(I) スタイルド・キーフレーム・アニメーション- モーション・キュプチャーデータをアレンジ(II) スケルトンデータはどのキャラクターでも同じ(III) ボーンの数は膨大- メイン５５、頭３５、プロシージャル４０〜８０(IV) 物理的に運動する Hinge Bones(V) 移動アニメーション- １２２個(2-I)パス検索システムの作り方
Step1: 衝突モデルからナビゲーション・メッシュとウエイポイントを自動生成（ウエイポイントを置くときは周囲の障害物とコリジョンをしないチェックもしているはずだ（三宅））Step2: ナビゲーション・メッシュとウエイポイントを対応づける
Step3: 複雑なトポロジー（地形情報）上のウエイポイントには
メタリンク情報を埋め込む

データ構造： 各メッシュはその上にあるウエイポイントをリストとして持つ

(2-II)パス検索システムの使い方

まずナビゲーション・メッシュでグローバルに検索する
１つのメッシュの中ではウエイポイントで検索する（Ａ＊検索の計算量を軽減することができる。特にＡＣのようなモブ制御には必須）

(2-II)パス検索システムの使い方

まずナビゲーション・メッシュでグローバルに検索する
パス検索データはスケールによって１つのメッシュの中ではウエイポイントで検索する
階層化するといろいろ便利！
（Ａ＊検索の計算量を軽減することができる。特にＡＣのようなモブ制御には必須）

(3) 群集の発生のさせ方（方針）
密度をコントロールする

何処にいつ発生させればよいか？
（方針①）ユーザーからは常に群集が見えてないといけない（方針②）見えてなければいつ消えても構わない(3) 群集の発生のさせ方（解法）
密度をコントロールする

(3) 群集の発生のさせ方（解法）
密度をコントロールする
体の部位、声、振る舞いなどバリエーションを持たせて生成できる

(4) 群集反応システム① イベント（ユーザー）に反応
円状に領域を指定して反応を区別する

同心円状に反応を区別する
中心の白い円は立ち止まり、周囲の円はちょっと立ち止まって立ち去る音に気付いて振り返りながら去っていくというパターンもある(4) 群集反応システム
イベント（ユーザー）に反応①円状に領域を指定して反応を区別する②音に反応

同心円状に反応を区別する
中心の白い円は立ち止まり、周囲の円はちょっと立ち止まって立ち去る音に気付いて振り返りながら去っていくというパターンもあるポストモーテム（反省）(1) モブは街の雰囲気を出しているが、ゲーム性そのものに関わっていない
ユーザーに突き飛ばされる、傍観する、歩いている、後ろの方で話している。

(2) その場で何かをしている人がいない。
店の売り子や噴水で水を飲んでいる人を作りたかった。

もっとゲームにモブを絡ませたかった！

ポストモーテム（反省、三宅）もっとゲームにモブを絡ませたかった！
Ｑ．それはこのシステムで可能だろうか？
このシステムはモブといいながら、とても疎な関係で集まっている。密度が高くなれば、リアクションが連続するという問題、そして、それが至るところで起こる処理の問題も発生するだろう。
次のステップの挑戦としてふさわしいツール・プログラマー

ディジタル・ワールド

ツール・プログラム
３Ｄツール

３Ｄモデル

２Ｄツール

２Ｄデータ

スクリプト言語

スクリプト

サウンドツール

サウンド

エクセルなどゲーム設定
データ

ツール・チェイン

コンテンツ・データ

コンテンツ・パイプライン

アーティスト（５０人） デザイナー
（５０人）

ゲーム
エンジン
プログラム

ゲーム・プログラム

開発マネージメント

ゲーム・プログラマー（５０人）（ＡＩプログラマーは１５人）
http://matsucon.net/

「Assassin’s Creed における群集制御」の教訓
たくさんの人員を費やしてモブを作った。
その出来には、ある程度満足している。
しかし、ゲーム性にそれを絡めなかった。

モブをゲーム性に絡めることができれば、ゲームはもっと面白くなる。

（これはカナダ的なゲーム製作の良いところと、悪いところが出たのかもしれない）（三宅）カナダ大使館、「カナダのデジタルコンテンツ最新動向報告会」を開催（GameWatch）
http://watch.impress.co.jp/game%2Fdocs/20080118/canada.htm

参考文献「ASSASSIN‘S CREED」における群衆プログラム(GameWatch)
http://www.watch.impress.co.jp/game/docs/20080223/assasin.htm

コンテンツプロシージャル

(1) 「Spore」におけるプロシージャル・ミュージック
(2) 「Far Cry2」 におけるデータ自動生成
ＡＩ(3) 「Assassin’s Creed」における群集制御(4) 「Halo3」における戦場の形成
パイプライン
ナレッジ・マネージメント(5) まとめhttp://www.bungie.net/Inside/publications.aspx
以下のHalo3の説明に用いる画像、ＰＰＴは、
上記のサイトにある資料をもとにしています。

現在のAIのトレンド
2000

2005

2008

2008

エージェントAI完成期
エージェントAIの上のチームAI完成期？

よりよい戦場を構築するために:
HALO 3 AI オブジェクティブ・システム

よりよい戦場を構築するために: HALO 3 AI オブジェクティブ・システム
Building a Better Battle: HALO 3 AI Objectives
https://www.cmpevents.com/GD08/a.asp?option=C&V=11&SessID=6863
講演者：Damian Isla (AI Lead, Bungie Studios)
日時：2月22日（金）16時〜17時
場所：West Hall, 3004号室

Halo3 戦場の形成

戦略性の高い地形 ＋ 地形や状況を認識して行動する優れたＡＩ ＝ 戦場

Mike Zak, Environment design in Halo3 (GDC2008)
http://www.bungie.net/Inside/publications.aspx

本講演http://www.bungie.net/Inside/publications.aspx
Bungie は今回はなんと全ジャンル９講演！

HaloシリーズのＡＩに一貫するテーマ
エンカウンター・ロジック ＆ それほど広くない領域での移動的戦闘

攻撃ロジック- どのような編成チームで- 何処で（場所）- どのタイミングで出会うか？

Halo AI の特徴
テリトリー
振る舞い
- 攻撃的
- どうぶつかるか？
- プレイヤーを追撃
Haloというゲームは、そういった領域をＡＩ，環境を丁寧に作り上げて行くことで質の高い面白さを提供するゲーム（三宅）Halo3 AIデザインコンセプト
Encounter
Logic

Mission-designers script
sequence of tasks

Task

Squad

Within the task, theAI behaves autonomously

ミッションはデザイナーがスクリプトで書き、Squad にタスクを渡す。
Squadのメンバーはそこから自律的に動かす？ Ｎｏ！

Halo3 AIデザインコンセプト
Encounter
Logic

Task

Squad

FSMは？
複雑になりがち…

Mission-designers script
sequence of tasks

Halo2 AIデザインコンセプト
一体のAIに対して振る舞いを選択する（HFSM）
GrenadeSelf-preservation

Cover

Guard

Grenade
Vehicle strafe
ChargeRoot

Melee
Vehicle fightEngageSuppressing fireFight

Presearch
GrenadeBehavior
State

Root state

Engage state

Search

Uncover

Guard

Investigate

Charge state

Melee state

unusedHalo3 AIデザインコンセプト

我々はチームに対して１つの戦略を選択したいわけではない
全チームの意思決定をマネージメントしたい
全Squadを管理するＡＩシステム

Squad

タスク

我々は複数のチームに対して戦略を振り分けたいのだ！
全Squadを管理するＡＩシステム

タスク1

Squad

タスク2

Squad

タスク3

Squad

Halo3 AIデザインコンセプト
Declarative Method とは？

「ＡＩが対象（タスク）を選択する方法」ではなく、「対象（タスク）がＡＩを受け入れるかどうかを選ぶ方法」

The Declarative Method
新しいアプローチ:

その環境で為すべきことを定義したタスクを用意せよ
そしてシステムにそのタスクを誰が為すべきかを判断させるのだ複数のチームに対して戦略を振り分ける仕組み

タスク

Halo 3 AI Objectives System
構造• プライオリティー付きツリー構造• タスク自身が自分を定義し評価している– プライオリティー– アクティブ、ノンアクティブの判定– キャパシティー（受け入れ条件、人数だけではない）
Squad

Squad

Squad

アルゴリズム• トップから複数のSquadを流し込む• その Squadたちが、最も重要なタスクタスクにチェックイ
ンさせる。
Basically, it’s a plinko machine…と言われても。

Halo 3 AI Objectives Systemイメージ
Squad

Squad Squad

各タスクが自分で自分のオンオフとプライオリティーを計算

トップ（最も高い）プライオリティーの高いタスクを考慮する

現在、タスクを割り当てられる
Squad をリストする

タスクの受け入れ条件に合う Squadを割り当てて行く

タスクが Squadを選ぶHalo 3 AI Objectives System 概要
Squad

Squad

タスクが Squadを選ぶ

Squadを受け入れたタスクは受け入れ拒否になる。

Squad
残りのタスクの中で最もプライオリティーの高いタスクが受け入れるSquadを選択する

後は同じHalo 3 AI Objectives System 概要
タスクが Squadを選ぶ

Squad

Squadを受け入れたタスクは受け入れ拒否になる。

Squad
残りのタスクの中で最もプライオリティーの高いタスクが受け入れるSquadを選択する

後は同じ

Squad

きちんとしたアルゴリズムの説明• アクティブな子タスクを決定する– この時、非アクティブになったタスクに割り当てられていたSquadは親タスクに一旦引き戻される

トッププライオリティーを持つタスクたち
次に高いプライオリティーを持つタスクたち
非アクティブになったタスク

Squad

Squad

きちんとしたアルゴリズムの説明①アクティブな子タスクを決定する−この時、非アクティブになったタスクに割り当てられていたSquadは親タスクに一旦引き戻される−トッププライオリティーより低いプライ
オリティーに従事しているSquadも再割り当ての対象となる。

トッププライオリティーを持つタスクたち
次に高いプライオリティーを持つタスクたち
非アクティブになったタスク

Squad

Squad

きちんとしたアルゴリズムの説明②最高プライオリティーを持つグループを考える③割り当て可能なSquadを集める– 親のノードの登録されているSquad– 上記のプライオリティーより低いタスクを実行しているSquad④Squadをタスクに割り当てる
トッププライオリティーを持つタスクたち
次に高いプライオリティーを持つタスクたち
非アクティブになったタスク

Squad

Squad

トッププライオリティーのどれにも合わなかった

タスクの条件に合うことができたきちんとしたアルゴリズムの説明⑤トッププライオリティーのタスクが、さらに下にタスク構造を持つなら、そのさらに子タスクの中にSquadを割り当てていく。
Squad

Squad

きちんとしたアルゴリズムの説明⑤次に高いプライオリティーの高いタスクにSquadを割り当てる。
⑥これをくり返す

Squad

Squad

Designer UI

Active or inactive

種族によるフィルター（受け入れ条件）

Squad 割り当て問題
結局、この問題はn個のsquadsをm個タスクに割り当てる問題• set S of n squads• set T of m tasks
Now, find a mapping

F S

T

２つの問題:
1.タスクキャパシティーの制約条件問題
2.コスト最小問題 H(F)

（注）コスト関数Hとは割り当てＦが１つ決まったときに、その割り当てにおいてSquadが行動するときにかかるコスト（移動時間、戦闘負荷など）の総和を表す
即ち、H(F)が大きい割り当てはよくない割り当てである。

Squad 割り当て問題
1. タスクキャパシティーの制約条件問題# タスクに割り当てる Squads t ≤ capacity(t)... but remember, we’re bucketing by squads.

5

12

8

15

1
NP-ハードのビンパッキング問題

8

Squad 割り当て問題
２．コスト関数 H(F) を最小にする
コスト関数を最小にするということは、全体のSquad
割り当てを最適化すること。
考慮事項– 移動距離を長くしない– 質の高い行動– ツリーのバランスを取る– プレイヤーの近づける
よくないH(F)関数だとまるでまぬけなことになる。
よいH(F)を見つけることが割り当てにおいてとっても大切！

「よりよい戦場を構築するために:
HALO 3 AI オブジェクティブ・システム」の教訓
Haloは各分野が丁寧に作り上げられている（全９講演）。
Haloは「洋ゲー」としてはとても親切な作り。
ＡＩは、ゲーム的混沌を最後に引き受ける。
ＡＩ技術とはその情報を処理して行動を生成する技術。
そこには、Damian Islaの作家性とも言うべき個性が現れている。
ゲームＡＩでは、設計者の作家性さえ表現され得る。
そのためには人工知能に対する基本的な知識が必要。
（ゲームＡＩではなく、人工知能そのものの考え方。初歩的なところから考えて、まとまりのある面白いシステムを作るのが、Damianの持ち味）参考文献①Halo3 ９講演のPPT資料 http://www.bungie.net/Inside/publications.aspx② Bugie.net のGDC2008のHalo3関係の講演の概要集
http://www.bungie.net/News/content.aspx?type=topnews&cid=13264③ Bungie Podcast (毎回、Bungie の開発者が登場してインタビューに答えます)
http://www.bungie.net/Inside/content.aspx?link=bungiepodcasttime
The Bungie Podcast: 08/16/07 (Halo3 AI の特集です。Damian がＡＩについて語ります！)
http://www.bungie.net/News/content.aspx?type=topnews&cid=12705④Bungie s Halo hordes a huge jump forward(Sydney Morning Herald
http://www.smh.com.au/news/technology/bungies-halo-hordes-a-huge-jumpforward/2007/09/24/1190486224797.html⑤ゲームAI連続セミナー第４回 「Halo2 におけるHFSM(階層型有限状態マシン)
http://www.igda.jp/modules/eguide/event.php?eid=42⑥ Artificial Intelligence and Interactive Digital Entertainment 2005 （講演ＰＰＴ）
http://www.aiide.org/aiide2005/talks/index.html

Artificial Intelligence in Computer Games
Speaker: Neil Kirby (Member of Technical Staff, Bell Laboratories),
Steve Rabin (Senior Software Engineer, Nintendo of America)(AI ラウンドテーブル 全３日)

１日目 トピックごとの議論 （定員オーバーで欠席）
２日目 ①FPS ② Sports & Strategy (出席)
３日目 ビギナー向け Quick Q&A （出席）

全音声データ＆写真 http://www.intrinsicalgorithm.com/GDC

2nd day

1st day

2nd day

Photos from Andrew’s site

3rd day参考文献① Gamedev.net
http://www.gamedev.net/columns/events/gdc2008/article.asp?id=1308② Andrew’s site http://www.aarmstrong.org/- 1st dayhttp://www.aarmstrong.org/journal/2008/03/02/gdc08-notes-ai-roundtable-day-1- 2nd dayhttp://www.aarmstrong.org/journal/2008/03/02/gdc08-notes-ai-roundtable-day-2- 3rd dayhttp://www.aarmstrong.org/journal/2008/03/02/gdc08-notes-ai-roundtable-day-3-ai-for-beginners

11th AI Programmers Dinner (最終日)
hosted by Neil Kirby and Steve Rabin(ＩＧＤＡ SIG-AIメンバー ＋ ラウンドテーブルで一般若干名受け入れ)
ＩＧＤＡのメンバーになっておこう！

とっても暖かいコミュニティー
有名ディベロッパー
プログラマだけでなく、大学研究者やマネージメントの方も参加できる

写真

http://www.intrinsicalgorithm.com/GDC

コンテンツプロシージャル

(1) 「Spore」におけるプロシージャル・ミュージック
(2) 「Far Cry2」 におけるデータ自動生成
ＡＩ(3) 「Assassin’s Creed」における群集制御(4) 「Halo3」における戦場の形成
パイプライン
ナレッジ・マネージメント(5) まとめナレッジ・マネージメント

GDC2008全体を通しての考察• 日米の違いは何か？
• それは何処から来るのか？

ナレッジ・マネージメント

ナレッジ・マネージメント
知識をどのように運用するのか？

知識- オープンにする知識全体に対して還元する知識- クローズドにする知識
自身のコア・コンピテンスにする知識ナレッジ・マネージメント・テクニック
B

A
共有
A

B

知識共有の場と議論の場が技術を活性化し、お互いのレベルを上げる

A
共有する知識を使って業界全体のレベルを上げる。
- ゲーム業界はもはやパイの取り合いだけでは続かない。
- それにゲームは技術だけではない。技術を共有しても、直接競争の不利になるわけではない。

B

技術を囲うだけでは限界がある。

日本のゲーム業界なモデル共有される知識（海外、ＧＤＣなど）

それぞれが孤立していて、結局、海外からの情報に頼ってコア・コンピテンスを育てている。

理想的なモデル

各社のコア・コンピテンス共有される知識共有する知識を潤滑油にして、自身のコア・コンピテンスを育てていく日本のゲーム業界のナレッジマネージメントに大切なこと知識- オープンにする知識- クローズドにする知識を区別して、- オープンなものはオープンに、- クローズなものはクローズドに。
= グローバルな競争力

… and one more

技術者を動かすコツ
エンジニアをうまく動かすコツはただ１つエンジニアがエンジニアとして求めるものはただ１つ
新しい技術に挑戦できること。
技術者には、新しいチャレンジを与えよう！

技術者を活性化すれば必ずよいゲームが作れる。

まとめ
プロシージャル
SPORE におけるプロシージャル・ミュージック
FAR CRY 2 におけるプロシージャル・データ生成

プロシージャル技術は製作パイプラインの形を基本から変える

プロシージャル技術はこれからのゲーム開発の壁を超える
必須技術

まとめ
ＡＩ
うまく負ける技術: 人工知能 と 「CIVILIZATION」「ASSASSIN’S CREED」における群集制御:リアルな群集を作る
よりよい戦場を構築するために: HALO 3 AI オブジェクティブ・システム

モブをゲーム性に絡めることができれば、ゲームはもっと面白くなる。
ゲームＡＩでは、設計者の作家性さえ表現され得る。
そのためには人工知能に対する基本的な知識が必要。

まとめ
ナレッジ・マネージメント

オープンにできるものはオープンにすることで、全体としての技術力を上げることができる。

GDCをうまく活用するコツ① 予習− 英語の勉強を毎日欠かさず行う（訓練して現地に行けば集中して話すのでレベルアップできる。何もしなければ何もない）。
− 講演概要を読んで全体の動向をつかみ、−自分の出席する講演これまでの経緯などをＷＥＢで調べて講演内容を予想する（外れていても勉強になる）。
− ＩＧＤＡの会員になっておく（本当に役に立ちます。会社の看板で話を始めるより、会員同士だとチャプターの話とかで気楽に話を進めることができます）。

予習メモ① http://www.igda.jp/modules/xeblog/?action_xeblog_details=1&blog_id=803
予習メモ② http://www.igda.jp/modules/xeblog/?action_xeblog_details=1&blog_id=804② 開催期間中– 計画を立て随時入力される情報を基に足で情報をかせぐ。できるだけパーティに出て話す。
− 自分が聴いた良い講義では必ず講演後に質問やコメントに行く（「素晴らしかった」の一言でもよい）。
− 他人の質問も耳をそばだてる。
− 全部を把握しようとするには規模が大きすぎる。取捨選択と友人と連携して情報を取得する計画を立てる。
− 昼休みや会期中は友達同士で情報を交換する（ありがとうございました！）− 後で思い出せるように、ホテルに帰ったら簡単でもいいので日記をつける。
− ＩＧＤＡのメンバーの帯をＩＧＤＡブースでもらってつけておいて自己紹介で話す。
− ラウンドテーブルで積極的に発言する（名前を覚えてもらえるし、何より米はルールに則っていれば会議で発言することを評価する国です）。

ＧＤＣ日記③ http://www.igda.jp/modules/xeblog/?action_xeblog_details=1&blog_id=768
ＧＤＣ日記④ http://www.igda.jp/modules/xeblog/?action_xeblog_details=1&blog_id=778
ＧＤＣ日記⑤ http://www.igda.jp/modules/xeblog/?action_xeblog_details=1&blog_id=815

GDCをうまく活用するコツ③ 復習– 自分の出なかった講義を人に聞いたり、情報をもらう（ありがとうございました！）。
−自分の集めた情報や何より自分で考えたことをなるべく早く文書にしておく。できれば人に公開して意見を交換する。
– WEB上で外国語を含めて記事を集める（内容はまとまっているし、何より質のよい写真や動画がある。またプレスにしか提供されない情報もある）– ＧＤＣ報告会やその資料（この文書とかですね！）を活用する。
− 来年行く人のためにアドバイスをまとめておく。

IGDA日本 ダウンロードサイト http://www.igda.jp/modules/mydownloads/

ご清聴ありがとうございました。

質疑応答
これ以外に、意見や質問があれば、メイルへ
y_miyake@fromsoftware.co.jp
この資料はＩＧＤＡ日本のサイトにアップされます。
「GDC２００８ 日記」（y_miyakeのゲームＡＩ千夜一夜）にもＧＤＣ講演情報があります。
http://www.igda.jp/modules/xeblog/?action_xeblog_details=1&blog_id=768
人工知能学会誌 ２００８年１月号はゲームＡＩ特集です。三宅も寄稿しています。

ご清聴ありがとうございました。

これ以外に、意見や質問があれば、メイルかアンケートへ

y_miyake@fromsoftware.co.jp(IGDA Japan登録アドレス yoichi-m@pk9.so-net.ne.jp )ＷＥＢ上の意見交換にはＩＧＤＡ Japanのサイトをご利用ください
http://www.igda.jp