プロシージャル
目次
概要 †
ビデオゲームにおけるプロシージャルとは、レベルデザインもしくはゲームコンテンツを支える「自動的・自動生成的な機能」のことを指す。
プロシージャルを用いることで、通常であれば固定されていると考えられている部分が、素材となるデータとアルゴリズムを用意しさえすれば、動的に変化するようになる。その結果、ひとつひとつを手作業で作ることでは不可能な、多様なバリエーションが実現される。現在では、プロシージャルの対象は、樹木や草といった背景要素の設置に留まらず、NPCとの会話、あるいは攻撃を受けたモンスターの形状の変化、さらにはダンジョンやフィールドなどのマップ生成などまで、多岐にわたる。
普及の背景 †
かつてのゲームシステムはマップの配置や敵の行動パターンがゲームデザイナーによって決められていた。そのため、プレイヤーが回数を重ねることでゲームの上達ができる反面、誰もがつねに同じ体験しか得られず、飽きられやすい側面があった。また、ハードウェアやメディアの進化に伴い、ゲームの開発規模が拡大の一途をたどるなか、開発サイドは人的コストや費用的コストを下げつついかにクオリティの高いゲームを作るかという課題を抱えていた。
プロシージャル技術そのものは、古くから研究が進められてきたが、ゲーム業界では、これらの課題を解決する手段として注目を浴びてきた背景がある。たとえばダンジョン・マップやサブストーリーなどのゲームの構成要素を動的に自動生成することで、各プレイヤーが毎回異なるゲーム体験を得られるようになった。
また、背景グラフィックやNPCの会話を自動生成することで、開発におけるコストを下げることに貢献した。これにより、ポーランドなど非英語圏の比較的規模の小さい開発スタジオが、アメリカのゲーム会社に匹敵するようなAAAタイトルを開発できるようになった。そうしたタイトルでは、同国で積極的に開発が進められていたプロシージャル技術が利用されている。
歴史 †
ゲームにおけるプロシージャルの起源として、1980年にUNIX用の初版が公開されたRPGゲーム『ローグ(Rogue)』(Michael Toy&Glenn Wichman) に端を発した、いわゆるローグライクゲームがある。これらは「迷宮探索」や「死んだら最初からやり直し」などの要素に加え、「プログラムによるダンジョンの自動生成」が、そのジャンルを定義づける主要な要素だった。
ほかにもゲームにおける最初期の事例として、1984年にDavid BrabenとIan Bellによって制作された『Elite』がある。本作では、プレイヤーが旅する8つの銀河系のマップが自動生成されていた。
このようなマップやダンジョンの自動生成は、日本のコンシューマーゲームにも引き継がれていく。著名な事例として、『トルネコの大冒険 不思議のダンジョン』(チュンソフト/1993年)をはじめとする『不思議のダンジョン』シリーズや、MMORPG『ファイナルファンタジーXI』(スクウェア・エニックス/2007年3月8日のアップデートで実装)、『Eve Online』(CCP Games/2003年)などが挙げられる。
また日本では、レベルコントロールのプロシージャルが早期から発展した。キャラクターAIの元祖と言われる『パックマン』(ナムコ/1980年)をデザインした岩谷徹が1981年に執筆したレポートをもとに、セルフレベルコントロールシステムが、ナムコ社内に共有された。それを下敷きに同社の遠藤雅伸が『ゼビウス』(ナムコ/1983年)で、プレイヤーのスキルに合わせた難度調整システムを実装した。
これらは、冒頭に挙げたプロシージャルの定義にしたがえば、従来は固定されていた難度を、データを元に自動的に生成して「プロシージャル化」したものだと言える。
だが、こうした原型はありつつも、プロシージャル技術に特化した研究開発が積極的に進められたのは、あくまでも3Dコンテンツが主流になった1990年代以降のことだった。そして2000年代以降はメタAIとも連動し、ゲーム開発技術の主要な分野として定着することになる。
各種プロシージャルの活用例 †
以下、代表的なプロシージャル技術の事例を挙げる。
地形、レベルデザインの自動生成 †
地形やレベルデザインは、通常であればプランナーやCGデザイナーがコンセプトやプレイのしやすさなどを考慮しながら制作していく。ここにプロシージャルを導入すると、ゲームをより高度で動的なものにする効果が期待できる。たとえばRTS(リアルタイムストラテジーゲーム)は地形情報を鑑みて立てた戦略・戦術によって戦うことを楽しむゲームだが、地形が固定されてしまうと最適な戦略も固定化してしまう可能性がある。プロシージャルの実装でつねに新しいマップが生成されれば、プレイヤーはつねに新しい思考を要求され、飽きを防ぐことができるのだ。
例としては、『エイジ オブ エンパイア』(Ensemble Studios/1997年)シリーズの『2』以降、『ヘイロー・ウォーズ』(Bungie, LLC., Ensemble Studios/2009年)、『エンパイア・アース』(mStainless Steel Studios/2001年)の初代以降の作品などは地形の自動生成アルゴリズムを導入することで、プレイヤーの人数やチーム数、マップサイズ、天候などに応じてマップがプロシージャルに生成されるようになっている。
以下では簡単に、こうした地形の自動生成で使用されるアルゴリズムを紹介したい。
まず、各プレイヤーを起点に、フィールド上にタイルを配置して平面のマップを生成し、次に起伏をつけるために地形の持ち上げを行う。その際、起伏は「ダイヤモンドスクエアアルゴリズム」によってタイルを、自然界にあるものとしてフラクタル図形として再現する。
この起伏生成の方式はいくつかあり、著名なものにはハイトフィールドとベクターフィールドがある。後者はオーバーハングした崖のように斜めに突き出した地形を作ることが可能な点に大きな特徴がある。こうして地形を生成したあとに、今度は自動で地形解析を行う。たとえば、『エイジ オブ エンパイア 2』では、一度地形を生成したあとに自動で行う地形解析によって、抽出した情報から資源を配置したり、自動生成した地形に対応したAIを構築している。
なお、地形やレベルデザインのプロシージャルは、上記のような戦略SLG以外にも、RPGなどほかの分野のゲームにも活用されている。たとえば、『The Witcher 3: Wild Hunt』(CD Projekt RED/2015年)は、自社製の「REDエンジン」で山脈などの地形や自然モデルを自動生成して制作された。
自然モデルの自動生成 †
樹木や草といった自然モデルの自動生成は、1990年代までは学術的に研究されていた分野だった。それをゲーム開発に活用する機運が高まったのは、2000年代に入ってからのことだった。その背景には、プレイステーション3など当時の次世代機やPCのスペック向上によってゲームのレベルデザインが一気に広大化し、大規模で高品質なCG表現が求められたことが挙げられる。
代表的なミドルウェアのひとつが樹木生成エンジン「SpeedTree」(IDV)で、『The Elder Scrolls IV: Oblivion』(Bethesda Softworks/2006年)をはじめとするタイトルで使用されている。
こうした樹木生成のプロシージャル技術は、開発会社が独自に開発する場合もある。そのひとつが『Far Cry2』(Ubisoft/2008年)用に開発されたゲームエンジン「Dunia Engine」だ。これは樹木や草の成長を細かく制御し、風などの天候との相互作用も含め、ゲームの世界全体の相互作用を構築している。
なお、完全なプロシージャル生成に対し、ある程度のお手本や与えられたデータから計算によってコンテンツを自動生成する手法をセミ・プロシージャルと呼ぶ。たとえば衛星で撮影した地形データをアルゴリズムによって変形させたり、複数のアニメーションからほかのバリエーションのアニメーションを生成したりという形で使われる。樹木などの自然モデル生成では、しばしばセミ・プロシージャルでモデルを形成し、成長させ、修正していくケースが見られる。
都市の自動生成 †
プロシージャル技術は2000年代に入ると、街や都市などの人工環境の自動生成が研究されるようになった。その研究をもとに作られた3Dモデリングソフトウェアが、「Esri CityEngine」である。このソフトによって、大規模な3D都市モデルをプロシージャル技術によって効率的に作成することが可能になった。
都市の自動生成のゲームにおける事例としては、ウィル・ライトによって制作された『SimCity』シリーズ(Electronic Arts/1989年〜)がある。このシリーズでは、プレイヤーが商業地や工場地、インフラ施設や公共施設といった都市のパーツを設置することで、自動的に街が発展していく。そのアルゴリズムは、異なる影響範囲を持つ複数の階層ごとに、各シミュレーションが構成されることで成立している。
たとえば最上位のシミュレーション層は、プレイヤーが直接作用できる層だ。ここに鉄道や街の施設などを設置すると下の階層への影響が生まれる。ひとつ下の層は、上の1マスに対して2×2マスを単位とし、人口密度や交通渋滞、ランドバリュー、環境汚染、犯罪発生率などがシミュレーションされている。さらに、下の層は4×4マスで地形の影響を計算し、最後の8×8マスの層では、人口増加率、消防署や警察署の影響などがシミュレーションされる。
このように、各要素によって都市で表面化する作用が異なるため、プレイヤーから見ると自分のアクションが、いつどのように影響するかを予測しきれなくなる。それがゲームに深みを与え、プレイヤーは街の発展のダイナミクスの奥深さに引き込まれていくことになるのだ。
ダンジョン・マップの自動生成 †
冒頭にも書いたように、プロシージャル技術は、ダンジョンの自動生成において早い段階から用いられてきた。1980年にUNIX用の初版が公開されたRPGゲーム『ローグ(Rogue)』は部屋を長方形に分割し、その長方形の中に作った部屋どうしが交わらないように通路でつなぐアルゴリズムによってダンジョンを自動生成した。
以来、ダンジョンや迷路の自動生成は、棒倒し法、穴掘り法、壁伸ばし法など、ゲームごとに異なるアルゴリズムを採用しながら発展してきた。具体的には、コンシューマーゲームでは『不思議のダンジョン』シリーズ(チュンソフト/1993年〜)など、ネットワークゲームでは『Diablo』(Blizzard Entertainment/1997年)、『ファイナルファンタジーXI』(スクウェア・エニックス/2007年アップデートより実装)、『Eve Online』(CCP Games/2003年〜)などがある。
プロシージャルでマップの自動生成をすることは、プレイするたびにダンジョンや敵の配置、宝箱の配置などが変化するため、ワンパターンな“覚えゲー”にならずに済むというメリットがある。
サブストーリーの自動生成 †
2018年現在、欧米を中心に主流となっているオープンワールドゲームの開発では、「イベントをどこに埋め込むか」という問題がある。それを解決する手段として活用されているのが、サブストーリーを自動生成するプロシージャルである。
『Far Cry 4』(Ubisoft/2014年)では、メタAIをディレクターにして、地形や天候など、その場所やタイミングに応じたイベントを起こしている。
しかし、現時点のAIはストーリーの文脈を読み取れないという問題を抱えている。そのため、現時点では複雑なストーリーは作れないが、その場かぎりのサブイベントは生成可能だ。これにより開発費は大幅に削減でき、広大なオープンワールドの中で柔軟で自然なサブストーリーを生成できるようになる。
音楽の自動生成 †
『ファンタシースターオンライン2』(セガゲームス/2012年)では、ゲーム内の状況に応じて音楽を変化させながらシームレスに繋ぐシステムが実装されている。
ゲームエンジン †
ゲーム会社が作るゲームエンジンはほぼプロシージャル技術が導入されている。
EA Digital Illusions CEのFrostbiteエンジンは、植物自動配置、自動テキスチャリングなど、ゲームエンジンの根底部分にプロシージャル技術が導入されている。また、REDエンジンでは、シナリオからカメラワークが自動生成される。
※『Witcher 3』ではカットシーンが自動生成される
参考文献 †
- 「プロシージャル技術の動向」セッションレポートゲーム開発で注目されつつある古今のプロシージャル生成研究事例を紹介
- Continuous World Generation in 'No Man's Sky'
- [CEDEC 2012]PSO2の「途切れないBGM」はこうやってできている。セガが語る「BGMのプロシージャル生成」
- Behind the Scenes of Cinematic Dialogues in 'The Witcher 3: Wild Hunt'
- Back to 1984、The First Procedural Game, ELITE の旅
- オンラインゲームにおける人工知能・プロシージャル技術の応用
- 『デジタルゲームの教科書 知っておくべきゲーム業界最新トレンド』第22章 プロシージャル技術 (デジタルゲームの教科書制作委員会/SBクリエイティブ)
- 『人工知能の作り方』 (三宅陽一郎 著/技術評論社)
- Rogue (video game) (Wikipedia)
- Berlin Interpretation (RogueBasin)
- Elite (video game) (Wikipedia)
- 「プロシージャル技術の動向」セッションレポート ゲーム開発で注目されつつある古今のプロシージャル生成研究事例を紹介」 (GAME Watch)
- 「デジタルゲームにおける人工知能技術・プロシージャル技術入門(PDF)」 (三宅陽一郎)
- 「Racanhack コード解説」 (源馬照明)
AI wiki 記事一覧 †
分散人工知能 | 汎用人工知能 | 特化型人工知能 |
自律型AI | 環境認識 | 意思決定アルゴリズム |
メタAI | プロシージャル | パス検索 |
ニューラルネットワーク | ナビゲーションAI | ナビゲーション・メッシュ |
ディープラーニング | スクリプテッドAI | シンボリズム |
コネクショニズム | ゲームAIの歴史 | キャラクターAI |
エージェント・アーキテクチャー | ウェイポイントグラフ | アフォーダンス |
コメント