2020年2月6日
Unreal を使って 360° ゲーム トレイラーを制作するための完全ガイド
当時、私たちは Archiact スタジオで、新たな VR アドベンチャー体験『FREEDIVER: Triton Down』 (Steam および Oculus Store で購入可能) の予告をどうするか計画を練るために、私たちが制作したこの大切なゲームについて、世界に向けてどのように発信するのがベストであるのか色々と調査していました。そして、出来上がった 360° ゲーム トレイラーが公開されると、アナウンスメントを行った週は、私たちのスタジオ始まって以来の成功を収めました。そればかりではなく、この動画自体もこれまでのトレイラーが打ち立ててきた記録をことごとく抜き去ったのでした。 特に素晴らしかったことは、サードパーティ製の立派なテクノロジーや高価なプログラム ライセンスが必要なかったということです。私たちは、このトレイラーで必要となるすべてのことを Unreal Engine を使って成し遂げることができたのです。しかも、3人のデベロッパーからなる小規模チームがセットアップに数時間費やしたにすぎません (レンダリングの時間にはおよそ 1日かかりました)。 ワークフローは驚くほどスムーズでした。ぜひ、皆さんともそのやり方を共有したいと思います。
360° 動画が貴社の VR ゲームのためのプロモーションに適しているかどうか知りたいという方も、この投稿を読んでいただければ、ゲーム内コンテンツを 360° で撮影、録画、レンダリングするために、Unreal 内でどのような技術的な手順を踏めばよいのかがわかります。また、360° のコンテンツの制作には隠れた問題もありますが、私たちが制作中にそれらについて学んだことも共有したいと思います。たとえば、ノンリニアなストーリーテリングや視聴者の没頭性についてなどです。
それで、なぜ 360° ?
VR のデベロッパーがよく抱える問題があります。VR ゲームは驚くほど没入性が高く、インタラクティブなのですが、そのことをどのようにしたら正確に伝えることができるだろうか?という問題です。しかも、マーケティングの宣材はほとんどが 2D 画面で表示されるのです。人はたいてい、自分の知っていることに固執しようとします。3D の体験を 2D のメディアを使って表現する制作スタイルに依拠しており、たいていは、トレイラーやスクリーンショット、GIF という形態を採用します。『FREEDIVER』にはそれ以上のものが必要だと私たちはすぐに気がつきました。このゲームは、水中という強烈な環境でプレイされるとともに、泳ぎによる移動には 1 対 1 対応するジェスチャー操作が使われるため、その高い没入性に見合うだけのプロモーション資産がぜひとも必要だったのです。そこでまず 360° の動画に取り組んでみるべきだと考えました。
一つだけ問題がありました。私たちはそれまで 360° のコンテンツを作ったことがなかったのです。
360° のコンテンツを作った前例はあるのか?
初めて何かに取り掛かろうとする場合、まずすべきことは ― 他の人たちはどうやったのだろうか、調べてみることです。若干驚いたことには、プロモーション動画を 360°形式にした VR ゲームはほんの少ししかありません。最初の、そして最も傑出した360° 動画は、『The Climb』のトレイラーです。 『The Climb』には一つのアドバンテージがありました。そのタイトルからわかるように、ゲームプレイが単純明快でわかりやすいため、ゲームの機能性や仕組みを確立するのにそれほど時間がかからなかったのです。このトレイラーを見てすぐに気がついたことがあります。それは、自分がそこにいるという感覚です。『The Climb』の魅力の大部分は、山登りしているときや登頂後に見える素晴らしい景色がご褒美としてプレイヤーに与えられることにあります。このトレイラーの撮影の仕方が素晴らしく、それを見ていると本当にその美しい景色を見てみたいという気持ちが生じます。今すぐ、そこに行ってみたいのです。 ― 山登りはほぼ二義的な意味しかありません。それで問題はありません。 『Arizona Sunshine』の 360° トレイラーは、空間と時間をうまく利用しています。終末論的な様相を帯びたシーンからシーンへと素早く移動できる一方で、時の流れはスローモーションであるため、見る者はあらゆることが同時に起きているという印象をもちます。本当のカオスというものが画面にあふれ、視聴者は、強烈な混乱の只中に放り出されるだろうという予測ができます。面白いことに、ストーリーテリングはきわめてリニアです。つまり、『Climb』のトレイラーでは視聴者が見るところをご褒美として選択できましたが、『Arizona Sunshine』のトレイラーではプレイヤーの目の前で起きているアクションに焦点が当てられており、視聴者は直接的なアクション以外に見るべきものがあまりないのです。 最後になりましたが、これも注目です。『Psychonauts: The Rhombus of Ruin』の 360° トレイラーです。再生時間は 93秒間。プリレンダリングされているようで、ほぼ完全にストーリーベースで進みます。このトレイラーでは、バイノーラル オーディオが使われていることがポイントです。視聴者は視線を変えて宇宙船内を見ようとしますが、キャラクターの声の方向によっていつも中央に視線が引き戻されます。このトレイラーはある難問を明確に提示しています。それは、明らかにリニアであるストーリーをノンリニア形式でどのように語るべきかという問題です。ナレーションを取り入れていなければ、視聴者が物語に入っていけるような手掛かりを状況から得ることはほとんどできず、デベロッパーが制作した世界に自分が存在しているという感覚も希薄になることでしょう。これは本当に大変な問題です!
私たちが学んだこと
- プレイヤーが見回すことに対してご褒美を与えること。
- 視聴者の臨場感が重要。ゲームプレイはそれほどでもない。
- 視聴者の注意を最も重要なものに釘付けにする方法を見つけること。ただし、注意が逸れたからといって、不利益を蒙ることがないようにする。
- 換言すれば、VR とおよそ同じようトレイラーを扱うこと!その原則の多くがトレイラーにも適用可能。
成功するためには 360° のコンテンツに何が必要だろうか?
新たな知識を仕入れたので、私たちはこれから作る 360° のトレイラーのために目標を設定しました。最終的に私たちは、トーンとエネルギーに注力することにしました。つまり、沈みゆく船の内部に閉じ込められるとどのような感じなのか視聴者に体験してもらい、ゲームの世界で見事に立ち現れる不安感と呼吸の困難さを味わってもらいたかったのです。私たちはすぐさま以下のような戦略を立てました。
- シーンを素早く確立する: 視聴者は船にいる。
- 視聴者の存在を確立する: 視聴者は人だ!腕を見せよ。これが視聴者の腕だ!
- 不安要素を確立する: 船内は心地良い場所ではなく、スイマーは間違いなく困っている。
- 非常に高度なゲームプレイの仕組みを規定する: 泳ぎと酸素の管理
- 視聴者が見たくなる興味深いものを常に表示させる。
- 視聴者を危険な状況に置いた後に、希望をもたせ、最後は劇的な幕切れにする。
このような戦略から、最初の絵コンテができました。視聴者は、浸水しきった船の調理室で「眼」を開きます。近くの空気取り入れ口まで泳いでいき、十分な酸素を得てから下の排出口に潜って入り、願わくは生存に向けて泳いでいかなければなりません。
360° の隠れていた課題
絵コンテとラフなスクリプトが準備できたので、制作を開始しました。ところが、私たちはすぐに問題に直面します。そのうちいくつかはストーリーに関係することでした ― 「視聴者の視線をどのように誘導するのか?」とか「カメラは、ある場所から移動する前にどのくらいの長さ写すべきか?」といった問題です。他の問題はすべて技術的なものでした ― 「どのようにしたら望むやり方で録画できるだろうか?」、「視聴者が任意の方向を見回せる場合、ゲーム内のアバターはどのように見えるのだろうか?」しかし、Unreal を使うことによって、これらの問題に対する回答には予想より遥かにスムーズにたどり着くことができました。さらには、完璧な出来栄えを得るためにイテレーションも可能となったのです。以下にその技術的な手順を順番に一つずつ記します。これをたどることによって、取り組んでいるプロセスの問題を解決できるかもしれません。
ステップ 1: 装備する
まず私たちは、お膳立てしました。「お膳」とはこの場合、プラグインのことです。私たちが使ったプラグインは、Unreal の Stereoscopic Panoramic Capture plugin [Experimental] というプラグインです。私たちのトレイラーは 4.23 より前のバージョンのプラグインです。最新のワークフローを取り入れるためには、新たなバージョンに記載されている注意事項に必ず目を通してください! これをインストールしたら、Project Settings を開き、Instanced Stereoscopic Rendering が無効になっているか確かめます。 エディタを再起動させて変更を反映させます。Execute Console Command ノードを Begin Play イベントのすぐ後ろに追加します。これで、シーンを読み込む準備ができました!ステップ 2: VR のモーキャプ?思ったより簡単ですよ!
視聴者の、自分がそこにいるという感覚が重要なのだから、メインキャラクター (Ren Tanaka) の両腕がどのショットにも必ず入るようにします。つまり、本質的には、ゲーム自体の中でモーション キャプチャーを実行していることになります。これには Sequencer が最適のツールですので、私たちはこれを使ってゲームプレイを録画しました。『FREEDIVER』では、ベースのキャラクターがスポーンされるのは、ユーザーがゲームをプレイする場合のみです。Sequence Recorder がベース キャラクターをしっかり扱うことができるようにするために、World Settings で GameMode Override を GameMode に設定する必要がありました。 次に、BaseCharacter をレベルに手動で追加 (ドラッグ) します。 レベルで BaseCharacter を選択して、Auto Possess Player を Player 0 に設定します。 これらの設定が終わると、BaseCharacter は Controller から入力を受け取るようになり、Sequencer のアニメーションを記録するために使用できるようになります。そこから、Sequence Recorder ウィンドウを開き… … BaseCharacter を選択し、Sequence Recorder の最上部にある Add ボタンをクリックします。 さて、これでモーションキャプチャーを開始できます!ゲームを VR モードで Launch (起動) して… …Shift+F1 を押して、VR ウィンドウからフォーカスを外し、エディタに戻ります。その間、VR モードは依然として有効です。Sequence Recorder ウィンドウの最上部にある Record (録画) ボタンをクリックします。 VR ウィンドウに戻ってフォーカスします。キャラクターとカメラを再び制御できるようになるはずです。また、カウントダウンがオーバーレイ表示されて、録画が開始される残り秒数 (4, 3, 2, 1 秒) が示されます。
ライト、カメラ、スタート!録画が開始されたら、計画に沿って、仮想世界を動き回って、動作を演じます。ここで忘れてはならないことは、あらゆる動作 (頭部の動きもコントローラーの入力なども) すべて Sequencer のアニメーションとして録画されることになるということです。ですから、頭から爪先まで演じることを忘れないでください。
VR モーキャプのこつ
- テイクを何回も撮ることを躊躇しないでください。ライブアクションをキャプチャする場合と同様に、完璧な結果を得るためにはリハーサルが数回必要となるものです。
- 頭部はできるだけ固定しましょう。乱暴に揺らしたりしてはいけません。
- 視聴者は、新たな物や動作に注意を向けるためには 2~3 秒間必要です。
- プレイヤーアバターの両手が可視的でない場合は、ぜひともそれを取り入れることを検討してください!私たちの場合は、Ren Tanaka のジェスチャーを通じて、キャラクターとストーリーテリングが驚くほどよく表現できるようになりました。
- 重要: 些細な動きは、最終的なアニメーション シークエンスに登録されない可能性があります。したがって、常に、両腕は高く広く掲げるとともに、動きは低速に保ってください。
演技が終了したら、Shift+F1 を再びクリックして、VR ウィンドウから抜け出します。それによって、エディタに戻り、Sequence Recorder ウィンドウでの録画が停止します。すると、録画されたシークエンスが生成されます。 シークエンスを開いて、アニメーション トラックのコンテンツを調べます。 キャラクターの体のアニメーションを調べるためには、SM_VRPlayer アニメーションのトラック プロパティを右クリックして、録画されているアニメーション アセットをダブルクリックします。
ステップ 3: アニメーションを微調整する
私たちのとったモーションキャプチャーの実施方法は、プレイヤーの動きに関わる基本的な要素 (タイミング、頭部の動き、両手の配置/インタラクション全般) を録画するのにはシーン全体を通じて効果的なものでしたが、どんな IK システムも完璧ではありません。生成されたアニメーションには常に改善の余地があるものです。このティザー トレイラーは、『FREEDIVER』とはどのようなゲームなのか初めてVR のコミュニティに紹介するものとなるので、そのアニメーションは完璧なものにする必要がありました。クオリティの問題にとどまらず、ストーリーテリングの問題でもあったわけです。通常、VR ゲームからとったファーストパーソンの映像は、2D ゲームによるファーストパーソンの映像と見分けがつきません。ただし、プレイヤーがそこにいるという確かな感覚が、両手/インタラクションの忠実性という形でもたらされているのであれば話は別です。
Ren Tanaka が水中で奮闘する物語を 30 秒ほどで語るためには、彼女の両手が動きとインタラクションにおいて迫真の「演技者」であることが鍵となりました。 Sequencer のおかげで、ゲームプレイにおけるモーション入力の FBX ファイルを直接、任意のアニメーション ソフトウェアにエクスポートできます。私たちは Maya を利用していたので、アニメーターがこれを使って、Sequencer で書かれたアニメーションのキーフレームを微調整しました。
注意: アニメーション ソフトウェアにエクスポートする場合は、プレイヤーアバターしか見れなくなり、周りにあるはずのゲーム世界/物は表示されなくなります。これにより、方向や細かなインタラクションが難しくなるため、プレイヤーアバター視点による 2D レンダーを Unreal で追加で録画し、それをアニメートするキャラクターの頭部ボーンにアタッチさせることをおすすめします。
ステップ 4: 最終調整とエクスポート
仕上げをしたアニメーションを Sequencer に再インポートします。このステップが、ゲーム内ワールドを調整できる最後のチャンスです。ライティングを追加して、視聴者の目を誘導したり、ゲーム内の物体を移動してフレームに適切にフィットさせるようにしたり、動きのある要素に手作業でアニメーションを付けて正確なタイミングをとることも可能です。私たちの場合は、全プロセスで最も有用なステップでした。Unreal があれば、必要な変化を柔軟につけることができます。注意: ゲーム内のビジュアル要素以外のものを 360° 動画に入れたい場合は、このステップで行うのが最善でしょう。たとえば、隅のほうにロゴを入れたり、法的テキストを入れる場合です。この段階で入れるならば、バーチャルな目にステッカーのように「くっつく」こともありません。逆にそうでなければ、視聴者は集中できず、簡単に没入感は消えてしまいます。ロゴが視聴者といっしょに「漂って」いても、視聴者が見回すときに適切な場所に留まっているのなら、それほど邪魔にはならないものです。
キャプチャの準備ができたら、あとは、StandAlone Game モードでプレイして、望ましいやり方のとおりにシークエンスを出力するだけです。 レンダリングされたものがどのような解像度で出力されるか指定することができます。非常に鮮明な 360°動画の場合は、8K ないしは最低でも 4K をおすすめします。両目のための 360° の画像が出力されて、個別に保存されます。
注意: レンダリングされたものは、連続する 360° 静止画像として出力されるため、オーディオは付属しません。ゲーム内のサウンドスケープを組織的にキャプチャするためには、OBS や ShadowPlay などのスクリーン レコーダーを使って Sequencer のイベントを個別に録画し、その後エディタにインポートします。 次に、任意のリニア編集ソフトウェアを起動して、シークエンスとして画像をインポートします。この時点で、色補正を必要に応じて行うことができます。また、最終マスターを望みの動画形式で出力できるようになります。
ステップ 5: 360° 映像を編集する
いよいよです。ついに、マスターの 360° ファイルを編集して、トレイラーやさまざまな動画アセットに仕上げる準備が整いました。たいていの編集ソフトウェアでは、360° ファイルは 2D ファイルと同じように機能します。したがって、単純にシークエンスを必要に応じて並べ替えたり、色補正を施したり、トランジッションやタイトルカードを加えたりして、最終映像を出力できます。ゲーム オーディオを別途録音してある場合は、それをこの段階で追加して戻すことになります。360°で編集するためのクイック ティップス
- 映像は少なくても 4K の解像度をもつため、パワフルな PC によってレンダリングされた映像を処理する必要があるはずです。
- テキストや静止画像ファイルのような 2D 要素を追加することはできますが、それらは 360°/VR モードで投影する必要があります。これは、下の画像で見られるような、360° でレンダリングされる際に生じる過大な歪みを避けるためです。 (多くの編集スイートには、この機能が搭載されています。組み込まれていない場合は、投影を処理できるプラグインを見つけて対処できます。)
- すべてのグラフィックスカードに、360° で動画をレンダリングできる機能が備わっているとは限りません。サポートされているグラフィックスカードであることを確認の上、ドライバーをアップデートするようにしてください。
- 上の方ですでに述べたように、テキストやグラフィックスを直接 360° 動画に重ね合わせることは避けてください。それらのテキストはずっと動かないままであり、視聴者のバーチャルな目のはじでかなり気をそらす要因となるからです。たとえば、ロゴをずっと画面上に表示させておきたいのであれば、ゲームの世界に追加して、プレイヤーアバターに付属させるようにしてください。
ステップ 6: オーディオ
このトレイラーを成功するにはオーディオが非常に重要になってくるだろうということは分かっていました。つまり、この仕事をオーディオのエキスパートにお任せしたのです!『FREEDIVER』のオーディオは、Interleave によって作成され、できるだけリアルで没入感の高いものになるように作られました。楽曲のアレンジは、船の発する音と効果的に結びつくように意図されています。『FREEDIVER』では船が重要なキャラクターであり、沈みゆくことによって歌い、話しているからです。オーディオ デザイナーとコンポーザーは、管弦楽による楽譜を使うという従来のアプローチをとらないことにしました。楽曲のあらゆる部分で、船自体がトーンと緊張感の源となったのでした。さらには、持続する周波数をさまざまにミックスさせて、ユーザーの入力に反応することによって、水中における緊張感をユーザーに一層感じてもらうようにしました。
メロディーを作るためにソフトウェア サンプラーの中では、ドライアイスが大きな通気孔の中に置かれたときに発するような音を加工するとともに、弦楽器の弓をさまざまな密度の金属に対して使っています。船の大きな衝撃とものすごい金属のきしみ音を構成する際 Interleave は、それらの音を一体化することによって、音楽と融合できるようにしたため、音と音楽を区別することは困難となりました。ゲーム内でも、音と音楽をさらに融合させるというアイデアに基づいて再生されています。たとえば、ポーズメニューでは、金属の膨張する音が 3D で再生され、サンプルと音量がランダムに選択され、その位置はプレイヤーの頭部のまわりを移動します。
このティザーでは、さらに課題がありました。それは、感覚に訴えかける鼓動を短時間で数多く打つというものでした。最初、視聴者には船のおぼろげな泣き声が聞こえてきます。この音は、Ren Tanaka がハッチの内側に残っている空気を目指して苦闘している間に、強烈なうねりへと発展します。Ren が水中に潜ると、音楽はより勝利と勇気に満ちたセクションへと変貌します。打楽器とバスが鳴り始め、Ren が生存をかけてもがく中、鼓動は上昇し、次第にパニックの様相を呈したものへと変わっていきます。 このティザーの SE は、主にゲームプレイのアセットを思い描きながら編集され、その後に調整および改善されたものです。Interleave では、空気のある環境と水中の環境の違いを際立たせる必要がありました。そのため、知覚上のコントラストだけではなくトーン的なコントラストも利用しました。また、プラグインを使って、空気のある環境にリアルな空間を追加するとともに、水中環境が身に迫っている感覚を保てるようにしました。さらに、プラグインにより、水中における音の位置を不明瞭にすることによって、空中と水中における音波の速度の違いを強調しました。また、音の多くは 360° サラウンド ツールを使って配置しました。
最終的には Interleave によって、非の打ち所がない 5:1 のサラウンド サウンド オーディオが実現できました。また、5:1 のサポートがない最終動画をアップロードする場合に備えて、2-チャンネルのファイルも用意できました。このトレイラーの最終的な形態は、『FREEDIVER』の経験を強烈かつ強力に表現するものとなりました。そして、Ren Tanaka が置かれた切迫した状況に関するストーリーを語る上で非常に大きな役割を果たしたのがオーディオでした。
ステップ 7: レンダリングとアップロード
オーディオの準備ができ、ビジュアルに刻むことができたら、最終レンダーに取り掛かります。以下は、私たちが 2 つのマスター レンダー (5:1 サラウンド用と 2-チャンネル用のマスター レンダー) のために使った設定です。
動画の設定
フォーマット: H.264 (MP4 ラッパーを使用)幅: 4096
高さ: 2048
フレームレート: 60
フィールドオーダー: プログレッシブ
アスペクト: 正方形ピクセル
TV 標準規格: NTSC
パフォーマンス: ソフトウェア エンコーディング
プロファイル: メイン
レベル: 5.2
ビットレート エンコーディング: VBR, 2 パス
ターゲット ビットレート [Mbps]: 30
最大ビットレート [Mbps]: 35
動画は VR: YES
フレーム レイアウト: モノスコピック
水平画角: 360
垂直画角: 180
オーディオの設定
オーディオの形式: AACオーディオのコーデック: AAC
サンプルレート: 48,000 Hz
チャンネル: 5.1 (または 2-Ch)
クオリティ: High
ビットレート [Mbps]: 320
注意: 多くの動画ホスティングサービス (Steam も含む) では、5:1 サウンドがサポートされていません。その場合、低品質な 2-チャンネル形式に加工処理されることになります。望ましくない結果とならないようにするためには、私たちが行ったように、そのような場合に備えてカスタムの 2-チャンネル オーディオ ファイルを出力しておくようにします。
最終的なレンダーができた (やりました!) ので、お好きな動画ホスティング サービスに動画をアップロードします。YouTube や Vimeo、Facebook はすべて、インタラクティブな 360° コンテンツを完全にサポートしています。ただし、アップロードするためにはかなり長い処理時間が必要となりますので、公開前は時間をたっぷりと確保しておきましょう。
ファイルの処理が終了すると、少し時間をとってチェックしてみましょう。動画が本当に 360° で再生されるのか、期待通りにインタラクトするのか、確認してみてください。そうしてから、その傑作を世界と共有しましょう!
お読みくださり、ありがとうございました!このガイドを利用して 360° のコンテンツを制作した場合は、ぜひ、私たちがその労作を鑑賞できるように Twitter を使って (@ArchiactVR と @UnrealEngine をフォローしてください) その情報を共有してください。