Unreal Engine では、バーチャル プロダクションは、さまざまなシネマティック ツール、レンダリング機能、ワークフローを通じてサポートされています。 Mold3D Studio がビルドした Slay サンプルは、Unreal Engine でバーチャル プロダクションを検討する際に達成できるテクニック、レンダリング機能、ワークフローを示すために作成されました。
このドキュメントでは、Slay サンプルを表示する方法と、Slay を作成するために使用されたワークフローと制作技術の概要を説明します。
前提条件
Slay のサンプル コンテンツは、グラフィックを多用したシーンです。 最低でも Intel Core i9 Series プロセッサおよび GeForce RTX 2080 Ti、または同等のプロセッサが必要です。
プロジェクトまたはレベルを初めて開く場合、多数のアセットが初めてロードされてコンパイルされるため、初期ロード時間が長くなる可能性があります。
設定
Slay サンプルを使用してプロジェクトを設定するには、次の手順を実行します:
Fab から [Slay sample (Slay サンプル)] にアクセスし、[Add to My Library (マイライブラリに追加)] をクリックして、プロジェクト ファイルを Epic Games Launcher に表示します。
または、Fab in Launcher または UE の Fab プラグインを使用してサンプル プロジェクトを検索できます。
Epic Games Launcher から、Unreal Engine > [Library] > [Fab Library] の順に移動して、プロジェクトにアクセスします。
サンプル プロジェクトは、互換性のあるバージョンのエンジンをインストールした場合にのみ [Fab Library (Fab ライブラリ)] に表示されます。
[Create Project (プロジェクトの作成)] をクリックし、画面に表示される手順に従ってサンプルをダウンロードし、新規プロジェクトを開始します。
Unreal Editor で新規プロジェクトを開きます。
Fab のサンプル コンテンツにアクセスする方法の詳細については、「サンプルとチュートリアル」を参照してください。
Slay シーケンスの表示
Slay シーケンスを表示するには、メイン ツールバーの [Cinematics (シネマティックス)] ボタンをクリックして、[TF_Edit] を選択します。
これにより、Slay シネマティックのマスター シーケンスが開きます。 このビューでは、完全なシーケンスを組み立てるために使用された複数のショットを確認できます。
ショット トラックの [Camera (カメラ)] ボタンを選択して、各ショットの[Camera (カメラ)] を確認し、[Play (プレイ)] ボタンをクリックしてシーケンスを再生します。
Quixel Megascans アセット
テンプル レベルは、ユニーク アセットと Quixel Megascans アセットを組み合わせてビルドされたものです。 これらのアセットは Slay で背景のディテール、小道具、フォリッジを提供するために使用されます。 プロジェクトで Quixel Megascans アセットを使用すると、大規模な環境を作成する際に時間とリソースを節約できます。
Quixel Megascans のウェブサイトに移動すると、Slay サンプルで使用されている Quixel Megascan アセットの一部を確認できます。 主な例としては次のようなものがあります:
ショットベースのワークフロー
Slay シーケンスは、シーケンサーとそのショットベースのワークフローを使用して作成されました。 これにより、それぞれのショットには、大きな単一のシーケンスではなく、そのショットだけに必要な全てのコンテンツが含まれるようになりました。 この設定により、シーケンス全体を素早く変更することができ、ノンリニア編集ソフトウェアと同様にショットの編集、トリム、再配置が可能です。
マスター シーケンスの TF_Edit では、ショット トラックに配置された全てのショットを確認することができます。 さらに、シーケンス編集にタイミングをとったオーディオを再生するオーディオ トラックや、黒とのフェードをコントロールするフェード トラックもあります。
ショットをダブルクリックすると、そのコンテンツが開かれて表示されます。
Level Visibility (レベルの可視性)
Slay の最初のショットは、テンプルの屋外ビューです。 このユニーク アングルにより、ショット TF0010_02 の間のみ表示されるレベルのカスタム ランドスケープおよびアセットを作成する必要がありました。 レベルの可視性は、レベル可視性トラックによって制御され、ショット TF0010_02 (ショット 1) に表示されます。
レベル可視性トラックがショット内に配置されると、ショットの間のみ評価されます。 この場合、テンプル内にある低解像度のランドスケープを含むレベルは非表示になり、高解像度のランドスケープとその他のアセットを含むレベルが表示されます。
レベル パネルに移動して、Terrain_TF0010 を有効にし、地形を無効にすることで、高解像度のランドスケープ レベルを手動でプレビューできます。
スポーン可能なものを使用する
スポーン可能なものはスポーンされるアクタで、通常は単一のシーケンスの間のみ存在します。 これらは、それぞれのショットに固有の問題に対処するため Slay シーケンスのいくつかのショットで広く使用されています。 各ショットは独自のシーケンスであるため、スポーン可能なものはショットの間のみ存在するため、これらのアクタの管理が容易になります。
スポーン可能なアクタの例は、ショット TF0020_01 (ショット 2) にあります。 この例では、元のスタティック メッシュのドアは非表示になっており、スポーン可能なスケルタルメッシュのドアに置き換えられています。ドアを開くキャラクターの動きに一致するアニメーションが含まれています。 ショットが終了すると、ドアが自動的にアンスポーンされます。
アーティスト コラボレーション
Slay サンプルでは、それぞれのショットが独自のシーケンス、つまり独自のアセットとなっています。 ショットには、独自のシーケンス アセットであるサブシーン トラックも含まれています。 アセットがこのように分割されているため、ファイルの競合を発生させることなく、複数のアーティストが単一のシーケンスやショットで同時に作業できるようになっています。 サブシーンは複製することができ、同じコンテンツを再利用したり複数のインスタンスで共有したりすることができます。
いくつかのショットでは、ライティングと FX の両方のサブシーン トラックがわかります。これにより、これらの分野のアーティストは、メイン ショット シーケンスではなく、これらのシーケンス内で作業することができます。 このように、サブシーンはファイルの競合を制限するだけでなく、シーケンサーの構成にも役立ちます。
サブシーン セクションをダブルクリックすると、開いてその内容を表示することができます。
親シーケンスからショットまたはサブシーンを開くと、マスターシーケンスのコンテキスト内で表示されます。 つまり、表示しているサブシーンが 1 つだけの場合でも、マスター シーケンスと現在のショットの全てのトラックが表示されたままになります。 シーンの完全なコンテキストを使用して、ライトを編集したり、視覚エフェクトを追加したり、その他の操作を実行したりできます。
このコンテキスト ビューは、シーケンサーの再生メニューの [Evaluate Sub Sequences In Isolation (分離してサブシーケンスを評価)] を切り替えることで、有効または無効にすることができます。
カメラ アニメーション
Slay のカメラ アニメーションは、全てシーケンサーで作成されました。 場合によっては、カメラの動きを向上させるために加算カメラ アニメーションも使用されます。 これは、テンプレート シーケンスの一種であるカメラ アニメーション シーケンスを使用して行います。
テンプレート アニメーションのいずれかをダブルクリックすると、対応するテンプレート シーケンスが開き、使用しているアニメーションを表示することができます。
ライティングとマテリアル
Slay サンプルでは、ライティング、マテリアル、エフェクトの使用方法が重要な役割を果たしています。 マスター シーケンスおよびショットのエコシステムを適切に活用することで、アーティストはそれぞれのショットのマテリアル調整をより効果的にライティングして適用できるようになります。
ライティング ワークフロー
前述のように、サブシーン内ではライティングや他のワークフローを実行することができます。 ここでは、通常のライティング ワークフローでは、必要なライト アクタを [Spawnables (スポーン可能)] としてシーケンスに追加します。 こうすることで、ライトは撮影中にのみ表示されたままとなり、手動でオンとオフの切り替えが不要になります。
ライト ブロックを使用してシーンの特定のエリアをメイン レベルのライトから遮るなど、他のライティング技術を使用してショットを向上させることができます。 その後で、スポーン可能なライトを使用して、ショットのライティングをより直接的に制御できるようになります。
たとえば、ショット TF0020_01 (ショット 2) で、カメラ ボタンを無効にしてパイロットを停止した後に、ビューポートを移動してテンプルの入口の領域を表示すると、大きなライト ブロッカーが使用されているのがわかります。 これは、より制御されたライティング環境を作成できるようにするために使用されます。
ライト ブロッカーを配置すると、他のライトをスポーンして、このショットのライティングをより効果的に高めることができます。たとえば、近くの格子を通り抜けるスポット ライトがドアにソフト シャドウをキャストするなどです。
その他のケースでは、特定のメッシュを非表示にして、光を通過させ、アクタを照らす必要がある場合があります。 TF0080_01 のショットでは、オニのキャラクターに太陽光をキャストするために、テンプルの構造の一部が非表示になっています。
Slay では、ライティング チャンネルも使用して、ライトが環境やキャラクターにどのように影響を及ぼすかを制御します。 この場合、スポーン可能なライトは チャンネル 2 に対してのみ影響します。 同じチャンネルが全てのキャラクターで有効になり、これらのライトに照らされます。 これらのメッシュではチャンネル 0のみが有効になっているため、環境はこれらのライトによって照らされていません。
マテリアル ワークフロー
マテリアルがパラメータで設定されている場合、シーケンサーでこれらのパラメータを参照することで、マテリアル パラメータの調整をオーバーライドすることができます。 Slay では、特定のショットのマテリアルを微調整するためにこれを行われていました。 前述のライティングおよびショットベースのワークフローと同様に、これらの編集は次のショットに影響を及ぼすことなくショットごとに行うことができます。
ショットの TF00110_01 ライティング サブシーケンスでは、オニの鎧のマテリアルのラフネスやその他のパラメータが、マテリアル要素トラックを使用して調整されていることがわかります。 マテリアル要素の番号は、メッシュ上の同じマテリアル要素 ID に対応しています。
[Add Parameter (+) (パラメータを追加)] をクリックすると、その要素で利用できるマテリアル パラメータのリストが表示されます。 パラメータを選択して、トラックとして追加します。
レンダリング設定
Slay サンプルは、最終ピクセル出力としてレンダリングされるように作成されており、Unreal Engine でレンダリングできる高品質イメージを紹介します。 このため、ビューポートとを使用してレンダリングされたときの両方でシーンの忠実度を高める重要なパラメータがいくつかあります。
Post Process Volume (ポストプロセス ボリューム)
ポストプロセスは、グローバル イルミネーション、反射、およびシャドウなどのレイ トレーシング エフェクトを制御するためにシーンで使用されます。 また、色補正は、カラー グレーディングとフィルム トーンマッパの各プロパティを使用して適用されます。
Slay で使用されているポストプロセス プロパティを表示するには、レベルで [Post Process Volume (ポストプロセス ボリューム)] を選択します。 これは、 で検索すると見つかります。
ポストプロセス ボリュームの効果をプレビューするには、詳細にある有効化プロパティを有効または無効にします。 ポストプロセスを使用すると、シーンをより鮮やかに見せることができます。
ビューポートの最適化
Slay はグラフィックを重視したプロジェクトであるため、Unreal Engine での作業時にスムーズで信頼性の高いパフォーマンスを実現するために、エディタのビューポートの体験を最適化する必要がありました。 これは、[DefaultEngine.ini] 構成ファイル内の特定のコンソール変数を設定することで実現しています。
設定されている変数の例を次に示します:
r.HairStrands.Enable 1.0
r.HairStrands.DeepShadow.Resolution 512.0
r.RayTracing.Shadows.AcceptFirstHit 1.0
r.RayTracing.SkyLight.ScreenPercentage 55.0使用中の他のコンソール変数を表示するには、Slay プロジェクトのインストール先にある [Config (構成)] フォルダに移動し、テキスト エディタで [DefaultEngine.ini] を開きます。
ムービー レンダーキューの設定
Slay の最終的な画像は、Unreal Engine のムービー レンダー キュー ツールを使用してレンダリングされています。 ムービー レンダー キューは、高品質の放射状モーション ブラー エフェクトの適用に使用される時間サブサンプリング機能など、高品質なレンダリングを生成するための複数の機能をサポートしています。 さらに、Slay ではレンダリング プロセス中にグラフィックの忠実度を向上させるためにコンソール変数が使用されています。
[Movie Render Queue (ムービー レンダー キュー)] ウィンドウを開くには、シーケンサーのツールバーの [Render (レンダリング)] ボタンをクリックします。
Slay に使用した特定のレンダリング設定は、[Movie Pipeline Master Config Asset (ムービー パイプライン マスター コンフィギュレーション アセット)]として保存されます。 このプリセットをレンダリングに適用するには、[Settings (設定)] ドロップダウン メニューをクリックして [Slay_MovieRenderQueue_Preset] を選択します。
使用されている設定を確認するには、[Slay_MovieRenderQueue_Preset] 設定テキストをクリックします。 これにより、レンダリング プロセス中に適用されるさまざまな出力、品質、およびその他の設定を含む[Render Settings (レンダリング設定)] ウィンドウが開きます。
アンチエイリアス
画像ノイズを軽減し、より滑らかなエッジとモーション ブラーを生成するため、一時サンプル数が 19 に設定されたアンチエイリアスが使用されます。
コンソール変数
モーション ブラー、サブサーフェススキャッタリング、レイトレーシングなどの領域でグラフィックの忠実度を高めるには、次のコンソール変数を使用します:
r.MotionBlurQuality 4.0
r.MotionBlurSeparable 1.0
r.DepthOfFieldQuality 4.0
r.ScreenPercentage 125.0
r.ViewDistanceScale 50.0
r.SSS.Quality 1.0
r.SSR.Quality 4.0
r.Shadow.DistanceScale 10.0
r.ShadowQuality 5.0
r.Shadow.RadiusThreshold 0.001