>   >  MRという"魔法"で実現する新世代アトラクション!『マジックリアリティ:コリドール&フラクタス』
MRという"魔法"で実現する新世代アトラクション!『マジックリアリティ:コリドール&フラクタス』

MRという"魔法"で実現する新世代アトラクション!『マジックリアリティ:コリドール&フラクタス』

TOPIC 2
若手の自由なアイデアを積極的に採用 ~『CORRIDOR』~

最初からキャップをかけないそれが面白さを引き出すコツ

『CORRIDOR』の3DCGワークは、池内氏と祭田俊作氏の2名がリード。両氏でほぼ全てのキャラクターと背景モデルを制作し、中橋CTOがプログラミングをはじめシステム面を監修。コーディングにはUnityが採用されたが、これにはTyffonのアプリ代表作『ZombieBooth 2』(2016)の開発をUnityで行なっていた経験をダイレクトに活かせたからだという。VR酔いを避けるためには最低限フレームレートを60fpsに維持する必要があるが、「当初はデータやファイルサイズを気にせず制作を行いました。最初から"これをやると処理が重くなる"と制限するのではなく、まずはアーティスト陣 に本能のままクリエイションをしてほしかったんです」という、中橋CTOの言葉が示すように、プレイ中は数万匹の虫を飛ばす、大量の瓦礫が崩れるといった処理負荷の高い演出が次々と出現する。VR空間かつ60fpsという環境ではポリゴンモデルは多くても数十体しか配置できないため、数万という大量の虫が発生するシーンではCompute ShaderとGeometry Shaderを用いてパーティクルとしてイナゴの大群を表現。6万匹の虫が群れを成して飛んでいるシーンや、3万匹の虫が壁に張り付いているシーン(ランタンを近付けると飛び立つというギミック付き)などでは、平面化したパーティクルのテクスチャを特定の条件で切り替えることで歩行と飛行モーションを再現した。

ほかにも処理負荷の高い、瓦礫が崩れ落ちる演出などはGPU処理で実装している。3DCGの各種アセットはMayaZBrushで制作されており、祭田氏が主に担当したテクスチャなどルックデヴはSubstance Designer / Painterが用いられた。「ゲーム中はグロテスクな表現が多いのですが、ルックとしてはフォトリアルではなく、西洋画のテイストを目指していたため、全体的に美しさを感じさせる質感を心がけました。いわゆるスプラッターのような純粋なグロさは目指していません」と、祭田氏。また、ランタン(明かり)が近づくと何かが起こるというインタラクションのためにライトをリアルタイムで配置するケースが多かったため、質感調整はなるべくマップ側で行なっている。「このギミックならこういう背景が良いのでは? という提案もアーティスト側から気軽にできて、フランクなコミュニケーションができていました」という、祭田氏の言葉どおり、アーティスト側の提案が経路設計に影響を与えることもあり、少人数編成ならではの全員がプランナー的な役割を担える座組みとなっていた。

そして先述のとおり、TYFFONIUM自体の小物等のデザインが、開発中にモデリングを担当した池内氏のものであることもコンテンツ全体の統一感を語る上では欠かせないトピックである。薄暗い待合室で、スタッフがベルを鳴らして次の体験者を呼び出し、チケット代わりの黒い手紙を手渡して部屋に入る―という導入部の演出も含めてトータルに体験がデザインされている。

60fpsを維持するためのツボをおさえたつくり込み ~キャラクターアセット~

完成したキャラクターモデル(シェーディング表示とメッシュ表示)

亡者

四つ足状態で動くリーパー/夫人

完成したキャラクターセットアップ&リグ。アニメーションは全てキーフレームで作成された

できるだけマップで質感を付ける ~エンバイロンメント~

背景セットの例(メッシュ表示)


  • 実際に歩くスペースに合わせ配置されている


  • 同じところを歩いてる感覚にならないよう、円形の部屋なども用意することで視覚的な変化を演出

背景セットに対するSubstance Painterによる質感付けの例


  • 扉を開けて進んでいくアトラクションなので重要なプロップ


  • 洋館の壁は切り分けてアセット化している

洋館が肉の壁に変化するシーン用のアセット

ジオメトリシェーダ&パーティクルで数万のイナゴを描く ~エフェクト&コーディング~

最大で6万羽のイナゴの群れが飛び交うエフェクトは、『CORRIDOR』の大きな見せ場のひとつだ


  • 壁の模様に見えるように配列したイナゴ群


  • プレイヤーが持つランタンを近づけると、インタラクティブに逃げる

この表現を実現させたプログラム。(図・左)GameObjectに割り付けられたC#スクリプト。Graphics.DrawProcedural ()関数を毎フレーム1回呼ぶことで数万匹のイナゴの描画がなされる。(図・中)イナゴ1匹1匹のアニメーションをGPUで計算するためのCompute Shaderのhlslコード。各イナゴに対してアニメーションの変化が並列処理で行われる。(図・右)マテリアルのシェーダコード。表示されているのはGeometry Shader。ここでイナゴのメッシュが作られる

『CORRIDOR』プレイの様子

筆者によるプレイの様子。『CORRIDOR』は2名もしくは1名で体験する。4.5m×8.5mのスペースを10周するという仕様だが、途中で方向転換したり、エレベータによる昇降、屋外のシーンも登場するのでループの感覚はまったくなかった。ランドセル型のPCを背負ってプレイするが、重さはそれほど気にならない。2名でプレイする際は片方の手にリングを持つことで、お互いの位置が極端に離れないように配慮されている

プロモーション用のアート

次ページ:
TOPIC 3 目指したのは、VR版「コーヒーカップ」? ~『FLUCTUS』~

特集