テーブルトップ型VRコンテンツの体験の高め方
続いて『DUNLOP TABLE TRIP ADVENTURE』を制作したSkeleton Crew Studioのメンバーからも話を聞こう。これまでゲーム開発に軸足を置きつつ、博物館向けのVR・ARコンテンツ制作や、本作のような広告案件など様々な領域で活動してきた同社。本作でもプログラマー2名、アーティスト2名(3Dモデラー、UIデザイナー)、プロジェクトマネージャー1名の小編成で挑んでいる。制作期間は約2ヶ月とのことだ。
京都にスタジオを構える同社は、多国籍なメンバーで知られている。今回メインプログラムを担当したAlistar O'Brien氏はニュージーランド出身。技術支援で参加したJoss Harris氏はイギリス出身。3DアーティストのKeith Angela Bacad氏はフィリピン出身だ。3名ともVR・ARコンテンツの開発経験が豊富で、Harris氏は『MI-TECH CONCEPT VR Experience』でメインプログラマーを務めている。なお、本パートは同社へのメールインタビューを基に構成した。
繰り返しになるが、本コンテンツの目的は『MI-TECH CONCEPT VR Experience』のテーブルトップ型VR体験をエンハンスすること。その上でDUNLOPが展開するプレミアムタイヤ「VEURO VE304」、幅広い状況に対応できる「ALL SEASON MAXX AS1」、DUNLOPのスタッドレスタイヤ「WINTER MAXX 03」の特性を体験者に届けることだ。
その上で、住友ゴムから「ゲーム的な動きや表現を強めること」、「スタイリッシュでリッチに見えるルックにすること」、「タイヤのクオリティをしっかり見せること」などの要望が提示された。ゲーム的な動きや表現では、「最初のシーン(スカイロード)では、ユーザーがレースゲームを体験しているような、ダイナミックでスピード感あふれる体験ができるようにしたい」などの要望もあった。
このほか、体験が単調にならないよう風景やスピードに変化をつけたり、見る向きを変えたりと、体験者を飽きさせない工夫が随所に盛り込まれた。新たに360度動画の制作も並行して行なったため、短時間かつ全力で開発を進める必要があったが、前回と同じく博報堂側のビジョンが明確だったため、安心して開発に注力できたという。
法線マップとオクルージョンマップを活用し、ローポリゴンでリアルなタイヤをつくり上げる
続いてタイヤの作成の話に移ろう。前述のように、グランディングではCADデータをMayaにインポートし、リダクションを重ねて3DCGモデルを生成。Substance Painterで作成したテクスチャと組み合わせることで表現した。これに対してSkeleton Crew Studioの手法は、CADデータをMayaにインポート(※5)してリダクションするまでは同じでも、その先が異なっている。法線マップとオクルージョンマップを活用し、ローポリゴンでリアルなタイヤをつくり上げたのだ。そのため、タイヤのメッシュ数は3種類共に約3,000ポリゴンとかなり低く抑えられている。
なお、法線マップとオクルージョンマップは、タイヤのトレッド部分と側面部で分割して制作された。このうちトレッド部分はある程度の間隔でパターン化できたため、繰り返して使えるUVマップを作成し表現している。
※5:CADデータのインポートにはPiXYZ STUDIOが使用された。これによって、CADの.stpファイルを.fbxファイルに変換している
▲タイヤの3DCGモデル(左)とマップ類を貼り付けた状態(右)
▲タイヤのUVパターン
▲タイヤの法線マップ(左)とオクルージョンマップ(右)
これに対してタイヤの側面部ではパターンが複雑だったため、自動でマップ類を焼き付けることができなかった。そのため、デザインをIllustratorに書き出して、ラスタライズした上でPhotoshopにもち込んで調整。その後、Substance Painterで法線マップとオクルージョンマップを生成し、基の法線マップとオクルージョンマップに合成するという複雑な工程が採られた。最後に、別途用意されたホイール部と組み合わせて完成となる。
▲タイヤ側面の法線マップ(左)とオクルージョンマップ(右)
▲完成したタイヤ(左)とホイールを装着した状態(右)
なお、法線マップとオクルージョンのベイクにはSubstance Painterが使用された。タイヤのマテリアルには「Lightweight Render Pipeline/Lit」シェーダを使用。他にタイヤの溝をハイライトで光らせる用途で、Unityのシェーダグラフで作成されたカスタムシェーダが使われている。その際、ライティングモデルはベースのLit シェーダと同じだが、Shader Graphを使用してタイヤの溝を流れるようなハイライトが追加されている。
▲タイヤの溝のハイライト表現(左)と本表現のために作成されたUnityのシェーダグラフ(右)
ワールドではなく、テーブルとカメラを移動させる
ベースとなるシステムもゼロからつくり直された。前作のアニメーションはUnityタイムラインを用いてつくられた。しかし、この方法では開発の終盤に大幅な変更を行うことが難しかった。そこで、本作ではUnityタイムラインの使用を止め、スクリプトベースでシーケンスシステムを操作する手法が採用された。これによって、他のシーンが壊れてしまうことを気にすることなく大幅な変更が可能になった。
▲『MI-TECH CONCEPT VR Experience』のUnityエディタ(左)と、『DUNLOP TABLE TRIP ADVENTURE』のUnityエディタ(右)
また、前作ではVR空間内のテーブルをシーンに固定し、ワールド全体を移動させていた。しかしこの手法では、スクリプトベースの強みである「静的バッチ処理」の恩恵が受けられなかった。また、状況ごとに特定のピボットポイントを作成する必要があり、オブジェクトを回転させるのに手間がかかった。そこで本作では、ワールド全体ではなく、テーブルオブジェクトとユーザーのカメラを移動させることにした。前作とは反対の手法が採られたのだ。
もっとも、いくつか落とし穴があった。特に問題となったのが、カメラのズームイン&ズームアウトの演出だ。このシステムでズームイン&ズームアウトすると、ワールド全体が縮小&拡大されてしまう。カメラがテーブルに対して相対的に配置されているので、実際にはカメラがテーブルから遠ざかったり(=縮小)、近寄ったり(=拡大)することになるからだ。
その結果どうなったか......。フォグ、シャドウ、カリングなどの距離に応じて変化するエフェクトが正確に表現できなくなった。そこで、これらの問題を解決するために、テーブルの拡大縮小に即して適切なスケール値をかけ合わせることで、見た目の修正がなされた。制作チームは「細かい作業が必要でしたが、開発する上で大きなメリットがあったのは確かで、この変更はプラスに働きました」と語っている。
滑らかにシーンファイルを遷移させるための工夫
続いてステージの作成の工夫に移ろう。ムービーを観るとわかるように、本作は長い一本道のルートを自動車が3種類のタイヤを履き替えながら進む構成になっている。ルート自体はスプライン曲線で作成されているが、コースの最初と最後が直線で、ここでシーンが連結するようになっている。つまり、本作は『FALKEN VIRTUAL GARAGE』とは異なり、複数のシーンファイルが使用されているのだ。ただし、シーンの遷移が直線道路の移動中に行われ、タイヤの交換と説明の演出が加わる。こうした工夫を挟むことで、体験が醒めにくくなっているというわけだ。
▲(上)シチュエーションごとに分割されたシーンファイル/(下)演出に合わせて直線部分を調整するためのしくみ
シーンファイルの繋ぎ目の演出では興味深いアイデアも見られる。本作では、車を走行させながらタイヤを交換するアニメーションが存在する(当初は車がいったん停止してからタイヤを交換する演出だったが、よりシームレスな体験が必要とのことで、生田氏のディレクションによりこのかたちに変更された)。このとき、タイヤの説明が音声で入ることが予想されたのだが、どの程度の長さになるか不明だったという。そのため、自動車が何度も同じ場所を走るようスクリプトが工夫されている。
下手(しもて)の黄色い円がテーブルの範囲、青い矢印が自動車の移動だ。自動車は青い矢印のスタート地点から走り出し、矢印の先頭まで来たら再び矢印のスタート地点にワープする。これにより、短いセクションを制作するだけで延々と続く道の表現が可能になり、タイヤ交換や機能説明のシークエンスに応じて任意に道路の長さを調整することができる。
このほか、本作では自動車の移動をはじめ、アニメーションの多くに「DOTween」ライブラリが使用されている。これにより、アニメーションクリップを作成することなく、高速で安定したアニメーションをプログラマーのみで実装することができたという。その上で、全てのシーンファイルで同じオブジェクトを使用することが徹底されている。開発段階から、自動車モデルの位置、回転、スケールを共通に保ち、シーンファイルを読み込む際も既存のトランスフォームにTweensを追加して、遷移が滑らかになるよう配慮されている。
▲コース上の赤い点がトラックイベント
▲コースの一部を大幅に修正しても(上)、他のイベントに影響を与えることはない(下)
開発における効率化の面では、コースレイアウトの調整がスムーズにできるよう「トラックイベント」と呼ばれるシステムが追加された。
本作では、自動車の移動に伴いカメラのズームイン&ズームアウト、回転といった様々な演出が発生する。その際、演出のトリガーはルート上に配置されているのだが、開発当初はカーブの形が変更されるたびにトリガー間の距離が全て変わってしまう仕様で、修正に手間がかかった。そこで、開発途中にトラックイベントをルート上に投影できるよう修正された。これにより、コースの一部を大きく変更しても他のイベントに影響を及ぼすことがなくなり、作業時間の短縮が可能となった。
他にも、2名のプログラマーが並行して作業できるように、コアオブジェクトを取得できるコンテナが1つ実装された。これにより、シーン内の参照データを保持したり、複雑なシーンのマージを行なったりする必要がなくなった。セットアップに少し手間がかかったものの、マージの高速化が実現できたという。
カリングによるドローコールの削減と最適化
最後に最適化の工夫について紹介しよう。本作では画面上にテーブルを表示し、その内側だけで映像を表示する演出がそのままドローコールの削減につながり、最適化に貢献している。球状のオクルージョンカリングとシェーダを実装し、表示物をテーブルトップに限定することで、スタイリッシュなルックと最適化の促進を同時に実現しているのだ。他にオブジェクトを簡素化したり、ベイク処理などを用いてライティングを最小限にしたりといった工夫がなされている。
▲(左)カリング前のシーン/(右)カリング後のシーン
▲カリング時のシェーダを実装した画像
なおシェーダの制作には、Oculus Quest 2のスペックに合わせてUnityのUniversal Render Pipeline(URP)が採用されている。これにより、Unityのビジュアルシェーダエディタ「Unity Shader Graph」を用いて、エフェクト用のシェーダを効率的に作成することができた。前述したタイヤの溝のハイライト表現や、路面の凍結範囲が徐々に拡大していくシーンなどで使用されている。
▲路面の凍結範囲の拡大をシェーダで表現。シンプルなノイズに加えて、Stepノード、Lerpノード、フロートプロパティが用いられた。氷のテクスチャのスケールとタイリングをコントロールするために、UVマップを使わずに投影されている
Skeleton Crew Studioに、余裕があれば追求してみたかった表現や技法などについて聞いたところ、ハンドトラッキングの活用や立体的な効果音演出といった声が上がった。ほかに、VR空間内でユーザーに物体が迫ってきたり、体験者の頭上を飛び越えたりといったダイナミックな演出についても、まだまだ研究の余地があるという。本作でも、ラストで氷上を自動車が走りながら体験車の目の前で急停止する演出が入っているが、今後は企画段階からこうした演出をデザインし、より臨場感のあるVR体験を提供したいと抱負が述べられた。
このように、本案件ではウォークスルー型とテーブルトップ型という、2つの異なるVRコンテンツが制作された。そのどちらにも特有の工夫がなされている。「歩き回れる」という強みと、これによって発生する恐れがある「プレゼンスの低下」に配慮した『FALKEN VIRTUAL GARAGE』と、テーブルトップ型での演出に磨きをかけた『DUNLOP TABLE TRIP ADVENTURE』。そのどちらにも、まだまだ改良の余地が見られた。生田氏も「次回VRコンテンツを開発する際は、ハンドトラッキングや和風テイストのさらなる表現に挑戦してみたいです」と語っている。引き続き注目していきたい。