Home » MAZARIAの「パックマン」が実現するまで VR開発者らが語る


開発 2019.10.24

MAZARIAの「パックマン」が実現するまで VR開発者らが語る

8月4日に株式会社ヒストリアが開催したゲーム開発者向け勉強会「出張ヒストリア!」にて、東京・池袋にて本年7月にオープンした、株式会社バンダイナムコアミューズメントのテーマパーク「MAZARIA」に関するセッションが2つ開催されました。

「”アスレチックVR PAC-MAN CHALLENGE(パックマンチャレンジ)”制作事例 ~Oculus Questを使用した我々の挑戦~」と題したセッションでは、バンダイナムコアミューズメントとヒストリアのスタッフが登壇。ビデオゲームの金字塔であるパックマンをVRアクティビティにする上で「何をコンセプトとして重視し、それをいかにゲームデザインに落とし込んでいったか」「そしてOculus Quest(オキュラス クエスト)を用いての、広い空間を歩き回る『フィールドVR』の開発についてのどのような挑戦があったのか」について講演が行われました。

「パックマンチャレンジ」とは

アスレチックVR PAC-MAN CHALLENGE」(以下、「パックマンチャレンジ」)は東京・池袋にオープンした「MAZARIA」で展開されているフィールドVRアクティビティです。

まず、「パックマンチャレンジ」がどういったVRアクティビティであるか、おさらいします。

・8m×6mのフィールド上をOculus Questを被り、歩き回ってプレイする。
・VR内の、壁で区切られたメイズ(迷路)の中に配置されたクッキー(黄色いボール状のもの)を、手に持ったコントローラーを握って集める。配置された全てのクッキーを集めるとラウンドクリア。
・メイズ中には敵であるゴーストが徘徊。触れると一定時間クッキーが集められなくなる。
・メイズ中に現れるパワークッキー(大きなボール状のもの)を集めるとゴーストがイジケゴーストになり形勢逆転。触れることでゴーストをやっつけることができるようになる。
・5ラウンドを制限時間256秒でプレイ。

(「パックマンチャレンジ」の体験レポートはこちら)

ハードウェア構成は、プレイヤーのOculus Questを無線LANでサーバーマシンに繋ぎ、そこから有線LANで繋いだデモ用クライアントPCでモニターにゲームの様子を出力する形となっています。これにより観覧者もプレイの様子を見ることが可能です。さらにいくつかのゲーム中の音声は外部スピーカーから出力しています。

「パックマン」はいかに体を動かすゲームになったのか

本セッションで最初に登壇したのは株式会社バンダイナムコアミューズメントの浜野孝正氏と、株式会社ヒストリアの佐々木瞬氏。本タイトルの開発の流れとコンセプトについて解説が行われました。


(浜野孝正氏(左)と佐々木瞬氏(右))

なお、株式会社ヒストリアは、ゲームエンジン「Unreal Engine 4(UE4)」専門の開発会社であり、VRゲームでは、自社企画の「Airtone」のほか、VR ZONEでは「アーガイルシフト」「極限度胸試し ハネチャリ」「冒険川下りVR ラピッドリバー」の開発に携わり、プラサカプコン 池袋店で7月から稼働している「BIOHAZARD VALIANT RAID」の開発協力もしています。

「パックマンチャレンジ」は8m×6mの空間を用いたフィールドVRアクティビティですが、開発中はヒストリア社の会議室を用いて検証していたそうです。といっても、常に会議室を使用するわけにもいかず、別に小さな検証スペースと開発者の席での検証も行えるような工夫がされました(詳細は後述)。

開発スケジュールは、企画立ち上げからMAZARIAでのサービス開始まで8か月。Oculus Questの実機は開発の途中で投入されたそうです。

浜野氏はVR ZONEにてフィールドVRである「ドラゴンクエストVR」のプロデュースを担当し、そこで改めて「身体を動かすことで、VR空間での実在感が増す。」ということを実感したそうです。五感が情報をキャッチすることで感情が沸き上がるため、身体を動かす要素が大きいほど体感覚が信じ込み、その結果「この世界に自分がいるんだ」と感情自体も信じ込んでしまう、ということです。

そして、もっと全身を使う体験ができれば、さらに没入感が高くなり、もはや仮想現実ではなく「現実なんだ」と思わせるコンテンツが作れると浜野氏は考えていました。

そこでパックマンという題材を扱うにあたり、開発当初では、

・パックマン側とゴースト側に分かれて、2対2で「ドロケイ(ないしケイドロ)」を行う
・ギミックが沢山入ったアトラクションにする

という企画案もあがっていたそうです。

しかしながら、「パックマン」のコアとは何なんだろうと考えた結果、

・クッキーを集める
・ゴーストから逃げる
・パワークッキーで形勢逆転

という項目があがり、これをどうVRを使って全身に遊ぶ体験に落とし込めはいいのか、という方向で話を進めることになりました。

同時に、「複数人で楽しめる」というキーワードもあがりました。空間内に人がいて声を掛け合いながら ひとつの目的に向かってコンテンツが進むと盛り上がるからです。

これらのことを踏まえ、コンセプトを文字に落とし込むと「難しいこと抜きで、気の合う仲間と目的達成を目指して、夢中になって身体を動かすおもしろさを楽しめる。」となりました。「考えさせる」のではなく身体を動かして「夢中にさせる」というのがポイントであるそうです。

そして、「体を動かす」ということを突き詰めて開発していったところ、このアクティビティは「スポーティな体験」であると「気づき」があったということです。

それを踏まえ、

・観戦を盛り上げるためにプレイの様子を実況する
・アクティビティを体験するエリア自体の空間づくりも工夫をいれる
・外部スピーカーを設置してゲームの様子が聞こえるようにする

……というように、VRの中で楽しませるということから、待っている人や側を通る人も見て盛り上がるよう、空間でどう楽しませるかという点についても留意がされたそうです。

このように、企画から開発の試行錯誤を経て、「おもしろさは、汗にでる」というキャッチコピーが生まれました。

一方で、開発会社であるヒストリアでは、開発において何を重視するかを咀嚼しメンバーで共有するため、下記の画像のようなコンセプトシートが作られました(ただし、画像のシートは開発当初のものなので一部表現の機能は見送られました)。Oculus Questを用いて「仮想空間で自由に動ける体験」を作るということは、コンセプトをゲームデザインに落とし込む上での重要なキーワードになったそうです(後述)。

コンセプトを実現するためのゲームデザイン

続いて、ヒストリアのゲームデザイナー、金山善春氏が登壇。「コンセプトを実現するための仕様と試行錯誤」というタイトルで、どのようにコンセプトを形にしていったかの解説が行われました。

ヘッドマウントディスプレイ(HMD)、コントローラーとも6DoFかつコードレスゆえに、全身を“身軽”に使えるというOculus Questの強みを活かすための、「ゴーストを触れないようにクッキーを集める」というパックマンというゲームをうまくゲームデザインに落とし込んだそうです。

プレイヤーの動きに幅を作るクッキー・メイズの設計

その一つが、メイズの中でクッキーを使って「全身を使うように人を誘導する」ことです。
メイズ内に、空中に動かずに浮かんいる「停止クッキー」を並べることで、道標の役割を果たし、プレイヤーはその方向へ進んでいきます。

「停止クッキー」の配置に高低差をつけることで、道標の役割はそのままに、背伸びをしたり屈んだりとクッキーを掴む行動に動きがでてきます。

そこにメイズ内を移動する「移動クッキー」を配置することで、「追いかける」「待ち伏せる」といった、プレイヤーの体をより直感的・反射的に動かす要素を増やすことができたといいます。

このように、「停止クッキー」と「移動クッキー」を混ぜ合わせることで、フリーロームの中を歩き回るだけでなく、「全身を身軽に動かす」ということを実現させることができました。

メイズのレベルデザインも「全身を身軽に使わせる」ことを目的に、十分な通路幅を設け極力行き止まりを作らず、どこからでも全体を見渡せるようようにして「歩みを止めない」設計にしたそうです。

さらに、床に穴を設けたり、クッキーを配置する棚やアーチを作ったりすることで、「またぐ」「ジャンプする」「覗き込む」「しゃがむ」「屈んで移動する」というようにプレイヤーの動きに幅がでるようにしたそうです。

ゴーストと制限時間で「全身を使う」に拍車をかける

パックマンの敵である「ゴースト」と形勢逆転ができる「パワークッキー」の存在も、プレイヤーの「全身を身軽に使う」ことに一役買っています。

触れるとペナルティがあるゴーストは普段の状態では「逃げる」「避ける」「後ずさる」「驚く」といった対象ですが、プレイヤーがパワークッキーを取るとゴーストは逃げ出すので、プレイヤーは「追いかける」「先回りする」「腕を振る」という行動をとるようになります。

さらに、ゲームの制限時間の存在によりプレイヤーは焦りを感じ、全身の動きがより大きくなったというのが検証の結果分かったそうです。

企画の試行錯誤とコンセプトの擦り合わせ

金山氏によると、開発中には
・メイズの中のゴールを目指す
・アスレチックのような宙に浮いているフィールド
・エレベーターを使って移動する複数階層のフィールド
・現状(8m×6m)より広い20m×6mのフィールドで動く壁を避ける
・2人で協力してロープを引っ張る
という企画案も考えられていたそうです。

しかしながら、プロトタイプを作成して検証した結果
・高所による恐怖は与えたくない
・酔いやセンサーの位置ズレ
・頭を使って考える要素が強くなった
と、コンセプトとのズレや技術面から、現在MAZARIAで提供している「パックマンチャレンジ」の形になったそうです。

企画当初には「これは本当にパックマンを遊ぶという体験になるのだろうか」という意見もありましたが、このようにプロトタイプにて検証を繰り返し、試行錯誤してコンセプトと企画を擦り合わせていった結果、「これぞパックマンだ」と評価をもらえる形の物が作れたと、佐々木氏は述べていました。

Oculus Quest & フィールドVRの開発における準備と実装

続いて、「Oculus Quest / フリーロームVRを実現するための技術的知見」と題してヒストリアのエンジニア、小倉裕貴氏が講演を行いました。

本アクティビティの開発環境はUE4です。プロトタイプ期ではUE4.20を使用していましたが、製品版ではOculus Questの動作要件を満たすため、UE4.21を使用したそうです。

プロトタイプでのイテレーション(実装とテストの反復)を重視し、またUnreal Engineのバージョンアップに伴う修正量を減らすため、基本的にはブループリントでの実装としたそうですが、Oculus QuestのOSであるAndroidの固有機能に関してはコードによる実装が必要であったので、その部分はプラグインとして実装をしたそうです。

開発時の検証環境づくり

本タイトルは8m×6mのフリーロームのゲームですが、先述の通り開発社内にてそのようなスペースの常時キープはできないため、開発者の自席や狭いスペースでも実機テストができるように、HMD自体は少しの移動でもゲーム内では大きく動けるようにしたそうです。

また、AndroidベースであるOculus Questへのデプロイは時間がかかるため、開発中のWindows PCのUE4のエディタ上でも実機と同じような挙動をさせ大まかな確認ができるように、環境によってPawn(ゲーム内のプレイヤー)が自動的に切り替えられるようにしたそうです。

マーカーによる位置・向きのキャリブレーション

フリーロームVRにおいて、現実空間にてプレイヤーがHMDを被った場所・向きを基準にしてゲーム空間プレイヤーの位置・向きを設定した場合、HMDを被りなおした時は最初に現実空間HMDを被った場所に誘導しなければならず、しかも最初の場所・向きをズレ無く同じにすることはできません(少しの誤差でもプレイヤー同士の衝突に繋がる)。

高精度で自動化されたキャリブレーションを実現するため、本タイトルでは現実空間に配置したマーカーを基準にゲーム空間でのプレイヤーの位置・向きを設定しています。

ゲームが現実空間を認識するために、配置したマーカーをゲーム内から認識する必要があります。そのため、Oculus QuestのGuradian(プレイエリア境界線)をゲーム内で取得したうえで現実空間における一意な基準点として使用し、そこからマーカー位置を測定しています。

Oculus Questにおけるパフォーマンスの目安づくり

本タイトルにおけるパフォーマンスとして、Oculus Questでの最大フレームレートである72fpsを目指すことにしました。

そのため、本制作が始まる前に、どれくらいのグラフィックス表現が可能か、ポリゴン数やテクスチャ枚数、半透明の量の目安について、企画で示された仕様に基づいてモックアップを作成し検証を行いました。

ブランクのプロジェクトに256個の床のブロックを作成し、用意した複数のブロックメッシュ、マテリアル、半透明の種類の組み合わせを変えていってパフォーマンスを計測していったそうです。

さらにエンジンの描画オプションについての検証も行い、下記の画像のような設定にしたそうです。なお、オプションの選択や代替表現の検討において、Oculus Questのサンプルゲーム「First Steps」が参考になったとのことです。

さらなる描画負荷の軽減

本制作が始まった後も、マテリアルなどの調整で描画処理負荷の軽減を図った上、さらに以下のような処理負荷の軽減を図ったそうです。

・メイズ内の床や壁、背景のActorをMerge Actorsすることで、Draw Callの回数を減らす。
本タイトルではFrustum Culling(カメラが向いている方向の外にあり映らないオブジェクトのレンダリングを無効にする機能)が効きづらくなることによるGPU負荷上昇のデメリットを考えても有効であった。

・PC向けでは有効なOcclusion Culling(遮蔽物に隠れているオブジェクトを描画しない機能)がOculus Quest(つまりモバイル)では機能していないため、遮蔽物となるメッシュを事前にOccluderに設定することで使えるSoftware Occlusion Cullingを検討。しかしながら、マテリアルのブレンドモードがOpaqueでのみOccluderが使えるとのことで、開発終盤での修正リスクを考えて採用を断念。

・Use Lightmap Directionalityの無効化。
・背景のTexture Sampleの削減。
・Reflection Captureの範囲の調整。
・大気フォグを削除して天球への焼き込みで代替。フォグを削除したためDisable Vertex Foggingの有効化ができ、さらに負荷軽減。
・最後の詰めとして、Pixel Densityを0.95にして、少しボヤッとした見た目になったとしても72fpsを維持するように。

これらの実装を通して、描画処理の軽減を図っています。


VR/AR/VTuber専門メディア「Mogura」が今注目するキーワード