インカメラ VFX のプロダクション テスト

インカメラ VFX のプロダクション テストのサンプル設定方法、および機能、プロジェクト構成、制作時に使用された設定などを学習します。

Choose your operating system:

Windows

macOS

Linux

インカメラ VFX のプロダクション テスト は、Unreal Engine と LED ボリュームを使用した走行中の車両の撮影、マルチカメラの設定、撮影の合間に素早く変更できるマルチユーザー設定を特徴とする、バーチャル プロダクション サンプルです。このサンプルは映画制作集団 Bullitt と共同で制作されました。このサンプルは映画制作集団 Bullitt と共同で制作されました。チームは 4 日間かけてロサンゼルスの Nant Studios の LED ステージでインカメラの最終ピクセルを制作しました。

このプロジェクトで作成されたショート ムービーです。

このサンプルの内容を確認または変更すると、以下について学習することができます。

  • 制作中のシーンで複数のアーティストが同時に共同作業できるようにバーチャル プロダクション プロジェクトを構成する方法。

  • マルチユーザーによる GPU ライトマスを使用して、1 台のコンピュータでライティングをベイクし、セッション内のすべてのコンピュータに共有してライティングの変更を迅速に行う方法。

  • マルチスクリーンの nDisplay クラスタで mGPU を使用してインナー フラスタムをレンダリングする方法。

  • 各シーンに合わせて思いどおりの見た目にするために、nDisplay のレンダリングに色補正と OCIO プロファイルを適用する方法。

  • 制作のニーズに対応し撮影現場でタブレットから素早く変更するために、リモート コントロール Web アプリケーションの UI を構築する方法。

  • プロジェクトのパフォーマンスを向上するために CVars を適用する方法。

このガイドは、最終結果を得るためにプロジェクトにおいて制作チームが Unreal Engine の機能をどのように使用したかを説明します。作品のデザインする際、このプロジェクトを参考にしてください。インカメラ VFX の基礎の学習は、「 インカメラ VFX のクイック スタート ガイド 」を参照してください。この作品のメイキング映像は、「 Unreal Engine スポットライト 」を参照してください。

ステージ設定とハードウェア

拡大表示するには、画像をクリック。

以下のボリュームをレンダリングするために、各ノードに 2 つの LED パネルを割り当てた 4 つの nDisplay ノードを使用しました。

  • ウォール : 5 枚の LED パネルで合計 15312 x 2112 の解像度。

  • 天井 : 3 枚の LED パネルで合計 4160 x 5280 の解像度。

この実際の制作サンプルは、CPU 負荷と GPU 負荷の両方が高いので、この大きな LED ボリュームにカメラで撮影可能な解像度でレンダリングすることができます。以下の図は、プロダクションに寄与するすべてのデバイスとステージ上のデバイスの接続を示しています。撮影時の各機器の役割については「 インカメラ VFX の概要 」を参照してください。インカメラ VFX 撮影に推奨されるハードウェアについては、「 インカメラ VFX 推奨ハードウェア 」を参照してください。

キャプション:図は、どのようなデバイスを使ってステージ上でデバイス同士がどのように通信していたかを表しています。拡大表示するには、画像をクリック。

使用を開始する

LED ボリュームがなくても 1 台のコンピュータでシーンを見ることができるように、プロジェクトにはプロダクションで使用される実際のステージのトポロジを表す nDisplay コンフィグ に加えてシンプルな nDisplay コンフィグが含まれます。このセクションではシンプルな nDisplay コンフィグを使用して 1 台のコンピュータでシーンをレンダリングし、マルチユーザー セッションで変更を加える方法をご紹介します。

以下の手順に従って、コンピュータ上にマルチユーザー セッションの nDisplay レンダラを使って Unreal Editor のインスタンスと Unreal Engine のインスタンスを起動してください。

  1. Epic Games Launcher [Learn (ラーニング)] タブから インカメラ VFX のプロダクション テスト のサンプル プロジェクトをダウンロードします。

  2. コンピュータ上の Unreal Engine フォルダに移動し、Engine\Binaries\Win64\SwitchboardListener.exe を実行し SwitchboardListener を起動します。リスナーのウィンドウは起動時に自動で最小化され、nDisplay デバイスでの問題を回避します。このアプリケーションは OS のタスクバーにあります。

    以下はフルパスの一例です。 C:\Program Files\Epic Games\UE_4.27\Engine\Binaries\Win64\SwitchboardListener.exe

  3. Unreal Engine フォルダ 内で Engine\Plugins\VirtualProduction\Switchboard\Source\Switchboard\Switchboard.bat を実行し、コンピュータで Switchboard を起動します。初めて Switchboard を起動する場合、アプリケーション ウィンドウが開く前に必要な依存関係がインストールされます。

    以下はフルパスの一例です。 C:\Program Files\Epic Games\UE_4.27\Engine\Plugins\VirtualProduction\Switchboard\Source\Switchboard\Switchboard.bat

  4. 新しい Switchboard コンフィギュレーション を作成します。

    • 初めて Switchboard を起動する場合、Switchboard を起動すると [Add New Switchboard Configuration (新しい Switchboard コンフィギュレーションの追加)] のウィンドウが表示されます

    • Switchboard を起動したことがある場合、ウィンドウの左上の [Configs (コンフィグ)] > [New Config (新規コンフィグ)] をクリックし、 [Add New Switchboard Configuration (新しい Switchboard コンフィギュレーションの追加)] のウィンドウを開きます。 Adding a new Switchboard configuration

  1. [Add New Switchboard Configuration (新しい Switchboard コンフィギュレーションの追加)] のウィンドウ内で、以下の手順を行います。

    1. コンフィグ パス に Switchboard コンフィギュレーション ファイルを保存する名前と場所を設定します。

    2. uProject にインカメラ VFX プロダクション テストのサンプル プロジェクト ファイル、 TheOrigin.uproject の場所を設定します。

    3. Engine Dir が Unreal Engine の 「Engine」 フォルダを指していることを確認します。

    4. [OK] をクリックして Switchboard コンフィギュレーションを作成します。

      New Switchboard configuration paths

  2. レベル CaveEntrance_NantStudiosSimple に設定します。

    Setting the Level in Switchboard

  3. Switchboard に nDisplay デバイスを追加します。

    1. [Add Device (デバイスを追加)] をクリックし、ドロップダウンから nDisplay を選択します。

      Adding an nDisplay device

    2. [Add nDisplay Device (nDisplay デバイスを追加)] のウィンドウ で、 [Browse (ブラウズ)] をクリックし、サンプル プロジェクトのフォルダ内の Content\TheOrigin\Content\Stages\NantStudiosSimple\Config\NDC_NantStudiosSimple.uasset に移動します。

      Browsing to the nDisplay device .uasset file

    3. [OK] をクリックして、Switchboard に nDisplay デバイスを 1 つ追加したことを確認します。

    The nDisplay device added to Switchboard

  4. Unreal デバイスを Switchboard に追加

    1. また [Add Device (デバイスを追加)] をクリックし、ドロップダウンから Unreal を選択します。

      Adding an Unreal device

    2. [Add Unreal Device (Unreal デバイスを追加)] のウィンドウで、ローカル コンピュータに以下の IP アドレス を設定します。 127.0.0.1

      Setting the Unreal device local IP address

    3. [OK] をクリックして、Switchboard に Unreal デバイスを 1 つ追加したことを確認します。

      The Unreal device added to Switchboard

  5. nDisplay Render_2 デバイスの [Connect to Listener (リスナーに接続)] ボタンをクリックして SwitchboardListener に接続します。

    Connect to Listener button for nDisplay device in Switchboard

  6. NDisplay Render_2 デバイスの [Start Unreal (Unreal をスタート)] ボタンをクリックして、マルチユーザー セッションで nDisplay レンダラを使用して Unreal を起動します。

    Start Unreal button for nDisplay device in Switchboard

  7. すべてのウィンドウが自動的に最小化し、nDisplay レンダリングがフルスクリーンで表示されます。表示が暗い場合がありますが、後のステップで変更します。

  8. 最小化した [Switchboard] ウィンドウを開いて、Unreal デバイスの [Connect to Listener (リスナーに接続)] ボタンをクリックし、SwitchboardListener に接続します。

    Connect to Listener button for Unreal device in Switchboard

  9. Unreal デバイスの [Start Unreal (Unreal をスタート)] ボタンをクリックし、マルチユーザー セッションで Unreal Editor のインスタンスを起動します。

    Start Unreal button for Unreal device in Switchboard

  10. エディタで、ツールバー の [Open Level Snapshots Editor (レベル スナップショット エディタを開く)] をクリックします。

    Open the Level Snapshots editor

  11. レベル スナップショット エディタで、「 CaveEntrance_NantStudiosSimple_SetupA 」レベル スナップショットをダブルクリックし、 [Restore Level Snapshot (レベル スナップショットを復元)] をクリックします。

    Restore the Setup A Level Snapshot

  12. Unreal Editor の [World Outliner (ワールド アウトライナー)] パネルで、nDisplay Root アクタ NDC_NantStudios_Simple を選択し、更新された位置を確認します。

    レベル スナップショットの復元前

    レベル スナップショットの復元後

  13. nDisplay ビューは、Unreal Editor インスタンスで行った変更によって更新されます。

    nDisplay view updates

  14. nDisplay Root アクタで InnerCamera_A を選択し、シーン内で動かしてみて、インナー フラスタムが nDisplay ビューで移動するか確認します。

    Moving InnerCamera A around the scene

この手順では 1 台のコンピュータでプロジェクトを実行する方法を紹介しました。同様の手順で実際のステージを表す nDisplay コンフィグを変更し、独自の LED ボリュームをテストできます。

mGPU とマルチスクリーン クラスタ

The In-Camera VFX Production Test shoot in progress

プロダクションは、マルチ GPU を活用して撮影中のパフォーマンスを向上します。すべてのビューポートのレンダリングを 1 つの GPU に依存するのではなく、2 つ目の GPU をインカメラに映るものだけをレンダリングするのに特化させることで、最も重要な部分で最高の忠実度が得られます。プロジェクトで mGPU を使用する方法については「 nDisplay の概要 」を参照してください。

Unreal Engine には ステージ モニター ツールが含まれているので、すべての nDisplay クラスタ ノードの特定のイベントに関するレポートを 1 つのアプリケーションで受け取れます。撮影中はツールを重大ステートにすることで、撮影に影響する可能性のあるイベントが簡単にわかります。このツールの詳しい使用方法については「 ステージ モニター 」を参照してください。

リモート コントロール

リモート コントロール によって、プロダクション チームは、撮影現場にいながらタブレットで動作する Web アプリケーションからディスプレイや仮想環境をダイナミックに制御することができました。このプロジェクトで公開した制御には、ライティング、ディスプレイのカラー グレーディング、仮想空間内のステージの位置や回転の変更が含まれます。

Using Remote Control to control the stage

リモート コントロールの使用

入門編 セクションでは、Unreal Editor インスタンスを使用してシーンに変更を加えたり、nDisplay レンダリングで更新をすぐに確認したりしました。このセクションでは、プロジェクトのためにデザインされたリモート コントロール Web アプリケーションを使用して同様の操作を行う方法を紹介します。

以下の手順に従って、このプロジェクトのためにデザインされたリモート コントロール Web アプリケーションを表示し、nDisplay Root アクタを遠隔操作で移動します。

  1. コンテンツ ブラウザ [TheOrigin] > [Content (コンテンツ)] > [Tools (ツール)] > [RemoteControl (リモート コントロール)] に移動し、 [RCP_NantStudios] をダブルクリックして リモート コントロール パネル 内にリモート コントロール プリセットを開きます。

    Open the Remote Control Preset in the Content Browser

  2. リモート コントロール パネルには リモート コントロール プリセット に公開されたすべてのパラメータが表示されます。パネルの右上にある斜めの矢印のアイコンをクリックして、Web アプリケーションを起動します。

    Launch the web application from the Remote Control panel

    リモート コントロール パネルで Web アプリケーションを起動するオプションがない場合、Web アプリケーションが正しく構築されていることを確認してください。コンピュータに構築するために、プロジェクト設定のリモート コントロール セクションを修正する必要がある場合があります。Unreal Editor でアウトプットログをスキャンしてエラーを確認します。

  3. 開いているレベルやステージで作業するにはプロパティを再バインドする必要があるかもしれません。

    Rebinding properties in the Remote Control panel

  4. リモート コントロール Web アプリケーションの [Stage (ステージ)] タブに切り替えます。

  5. ジョイスティックを動かして nDisplay Root アクタの位置を変更します。

    Moving the joystick to change the nDisplay Root Actor location

Web アプリケーションの設計

リモート コントロール ウェブ インターフェース は、リモート コントロールにコンパニオン Web アプリケーションを提供するプラグインです。独自の Web アプリケーションをコードなしで作成しカスタマイズできるように、Web アプリケーションには UI ビルダーが含まれています。

リモート コントロール Web アプリケーションの UI ビルダーに切り替えるには、 [Control (制御)] ボタンを [Design (設計)] に切り替え、プロジェクトの UI を変更します。 リモート コントロール プリセット アセット を保存してリモート コントロール Web アプリケーションの UI 設計への変更を保存します。

Remote Control Design mode to modify UI

以下は、このプロダクションのために設計されたリモート コントロール Web アプリケーションの各タブで表示される制御を説明しています。

  • ステージ : レベル内のステージ位置と回転の制御を統合します。

    Stage controls

  • ビューポート設定 :グローバル ビューポート画面パーセンテージ パラメータとビューポートごとの画面パーセンテージ パラメータの制御を統合します。

    Viewport settings controls

  • 色補正 : グローバル色補正パラメータとビューポートごとの色補正パラメータの制御を統合します。

    Color correction controls

  • LightCard : ライト カードの制御を統合します。

    Light cards controls

  • スナップショット : プロジェクトのすべてのレベル スナップショットを表示し、レベル スナップショットの作成と適用の制御を統合します。詳細については「 レベル スナップショット 」を参照してください。

    Level Snapshot controls

カラー グレーディングと OCIO

パイプライン全体で正確で一貫した色を保持するために、アート チームとステージ チームが OpenColorIO (OCIO) を活用して色空間変換を標準化しました。この色空間変換は、モニター、LED パネル、プロダクション カメラ間の表示の違いを考慮したものです。

OCIO コンフィギュレーションのサンプルとルックアップ テーブル (LUT) は OCIO プラグインに含まれています。このプロジェクトには、この OCIO コンフィギュレーションを参照する OCIO コンフィギュレーション アセットの例があり、nDisplay コンフィグ アセットの両方に割り当てられています。OCIO コンフィギュレーション アセットは、 TheOrigin/Content/OCIO から確認できます。

OCIO コンフィギュレーションやディスプレイの色空間の作成については、「 インカメラ VFX カメラのキャリブレーション 」を参照してください。

次の手順に従って、プロジェクトで独自の OCIO コンフィギュレーションを使用します。

  1. コンテンツ ブラウザ で右クリックし、 [Miscellaneous (その他)] > [OpenColorIOConfiguration (OpenColorIO コンフィギュレーション)] の順に選択して新しい OpenColorIO コンフィギュレーション アセット を作成します。

    Add an OCIO configuration asset

  2. 新しいアセットをダブルクリックしてエディタを開きます。

  3. アセット エディタで、 コンフィグ セクションの コンフィギュレーション ファイル に、ディスク上の OCIO コンフィギュレーション ファイルのパスを設定します。

    Set the path to the OCIO configuration file

  4. [Reload and Rebuild (リロードと再ビルド)] をクリックして OCIO コンフィギュレーションをロードします。

  5. OCIO コンフィギュレーションをロードできたら、 色空間 セクションを展開します。

  6. 使用する変換元色空間および変換先色空間を追加します。利用できるオプションは、指定した OCIO コンフィグによって決まります。

    Add source and destination color spaces

  7. このコンフィギュレーションを nDisplay ビューポートに適用するには、 nDisplay コンフィグ アセット が含まれるレベルを開き、アクタの Details Panel OCIO を検索します。 [Enable Viewport OCIO (ビューポートの OCIO を有効化)] が True に設定してあることを確認してください。

  8. [All Viewports Color Configuration (すべてのビューポートのカラー構成)] を展開します。

    1. 使用するコンフィグ アセットを指定します。

    2. 変換元色空間および変換先色空間を設定します。

    Set the Source and Destination color spaces

次の手順では、プロジェクトに独自の OCIO コンフィギュレーションを追加する方法を説明しています。ビューポートごとに OCIO コンフィギュレーションを設定し、インナー フラスタムを個別に設定することもできます。詳細については、「 nDisplay のカラーマネジメント 」を参照してください。

GPU ライトマスとマルチユーザー

プロダクション チームは新しい GPU ライトマス 機能を使用してシーンのライティングをベイクすることで、マルチ GPU およびマルチユーザー環境でライティングの変更にかかる時間を最小限に抑えました。ライトのベイクはマルチ GPU の 1 台のワークステーションで行い、マルチユーザー セッションを通してネットワーク上に配信されました。つまり、クラスタを閉じて再起動する必要なく、シーンは素早くベイクされLED ウォールにリロードされたということです。

以下の手順に従って、GPU ライトマスを使用してシーンのライティングをベイクします。

  1. ツールバー で、 [Build (ビルド)] の横の矢印をクリックし、ドロップダウンから [GPU Lightmass (GPU ライトマス)] を選択します。

    Select GPU Lightmass in the Build dropdown menu

  2. [GPU ライトマス] ウィンドウで、 [Build Lighting (ライティングをビルド)] をクリックしてベイクを開始します。

    Build Lighting using GPU Lightmass

  3. ライティングのビルドが終了したら、メインメニューから [File (ファイル)] > [Save All (すべて保存)] を選択し、マルチユーザー セッションで他のコンピュータに変更を送信します。

    Save All to transmit the baked lighting

マルチユーザー セッションで他のコンピュータにすべての変更を共有するのではなく、送信する変更を選択することもできます。

  1. メインメニューで、 [File (ファイル)] > [Choose Files to Save... (保存するファイルを選択...)] を選択します。

    Choose files to save

  2. 保存して転送するレベルとビルド データのみを選択します。

    Select baked lighting files to save and transmit

  3. [Save Selected (選択を保存)] をクリックして、マルチユーザー セッションで他のコンピュータに変更を転送します。

Lightmass ベイクの変更可能な設定についての詳細は、「 GPU ライトマス 」を参照してください。

マルチユーザー セッションを通した GPU ライトマス ベイクの転送は、実験的な機能です。大きな BuildData を生成するシーンでは、転送時に問題が発生する可能性があります。問題が起こった場合、以下の操作を行ってください。

  1. 更新したレベルと BuildData をソース コントロールにチェックします。

  2. ソース コントロールを通して、変更をレンダー ノードに同期し、更新したライトマップを配布します。

レベル スナップショット

プロダクション チームは、 レベル スナップショット を使用して各シーンのレベルのアクタのコンフィギュレーションを保存しました。レベル スナップショットが作成されると、チームは、特定の撮影のために設定したシーンを後で復元することができるようになりました。レベル スナップショットは nDisplay Root アクタへの変更も記録するので、インナー フラスタムと色補正への変更も保存して、いつでも nDisplay のレンダリングに適用することができます。

以下のセクションでは、プロジェクトに含まれるフィルタとプリセットの使用方法について説明します。独自のフィルタの作成やツールのその他の機能について学ぶには、「 レベル スナップショット 」を参照してください。

レベル スナップショットでフィルタリング

プロジェクトには、レベル スナップショットの変更内のアクタをクラスでフィルタリングすることができる、 ブループリント レベル スナップショット フィルタ の例が含まれています。フィルタ LSF_FilterByClass は、 TheOrigin/Content/Tools/LevelSnapshotFilters にあります。このセクションでは、このフィルタをプロジェクトで使用する方法を説明します。

キャプション:図は、どのようなデバイスを使ってステージ上でデバイス同士がどのように通信していたかを表しています。拡大表示するには、画像をクリック。

次の手順に従って、レベル スナップショットの変更をフィルタリングし、プロジェクトに適用します。

  1. Unreal Editor の コンテンツ ブラウザ で、 [TheOrigin] > [Content (コンテンツ)] > [StageLevels (ステージ レベル)] > [NantStudiosSimple] > [StageLevels (ステージ レベル)] に移動し、 [CaveEntrance_NantStudiosSimple] をダブルクリックしてレベルを開きます。

  2. ツールバー で、 [Level Snapshots (レベル スナップショット)] ボタンの横の矢印をクリックし、ドロップダウンから [Open Level Snapshots Editor (レベル スナップショット エディタを開く)] を選択します。

    Open Level Snapshot Editor

  3. レベル CaveEntrance_NantStudiosSimple には、既に作成した 2 つのレベル スナップショットがあります。 CaveEntrance_NantStudiosSimple_SetupA をダブルクリックし、レベル スナップショットに保存されているアクタがレベルの現在の状態とどのように異なるかを確認します。

    The In-Camera VFX Production Test Level Snapshots

  4. [Filter Group (フィルタ グループ)] をクリックします。

    The Setup A Level Snapshot selected

  5. [Add Filter (フィルタを追加)] をクリックし、ドロップダウンから [Blueprint Filters (ブループリント フィルタ)] > [LSF Filter by Class (クラス別 LSF フィルタ)] を選択します。

    Add the LDF Filter by Class Blueprint filter

  6. フィルタ グループで [LSF Filter by Class (クラス別 LSF フィルタ)] をクリックします。

    Click the filter

  7. クラス の隣の デフォルト セクションで、ドロップダウンをクリックし、 ライト カード を検索します。

    Search for Light Card

  8. [Refresh Results (結果を更新)] ボタンをクリックして、フィルタの変更を適用します。

    Refresh Results to apply filter

  9. これで、Light Card アクタへの変更のみが表示されます。フィルタをオフにするには、フィルタを右クリックして [Ignore Filter (フィルタを無視)] を選択します。

    Only changes to Light Card Actors shown

  10. [Refresh Results (結果を更新)] をクリックすると、リストに nDisplay Root アクタが再表示されます。

    Disabled filter means all Actors are shown

レベル スナップショットでプリセットを使用

レベル スナップショット プリセットを使うと、ブループリント フィルタと C++ フィルタを使ってロジックを設定しプリセットとして保存できます。後からプリセットをロードしてこのロジックをまた使用することができます。プロジェクトには、 TheOrigin/Content/Tools/LevelSnapshotPresets にレベル スナップショット プリセットの例が含まれています。

このプリセットは Filter by Class (クラス別でフィルタ) のブループリントのフィルタの複数のインスタンスと OR ブーリアンをつなぎ合わせるため、これらのクラスと一致するアクタのみを表示します。プリセットに使用されるクラスは、LightCards、Stages、Cameras、SyncTestBall、ColorCorrectRegion、PostProcessVolume です。

次の手順に従って、プロジェクトでレベル スナップショット プリセットを使用します。

  1. コンテンツ ブラウザ で、 [TheOrigin] > [Content (コンテンツ)] > [StageLevels (ステージ レベル)] > [NantStudiosSimple] > [StageLevels (ステージ レベル)] に移動し、 [CaveEntrance_NantStudiosSimple] をダブルクリックしてレベルを開きます。

  2. ツールバー で、 [Level Snapshots (レベル スナップショット)] ボタンの横の矢印をクリックし、ドロップダウンから [Open Level Snapshots Editor (レベル スナップショット エディタを開く)] を選択します。

    Open Level Snapshot Editor

  3. レベル CaveEntrance_NantStudiosSimple には、既に作成した 2 つのレベル スナップショットがあります。 [Load/Save Filter (フィルタをロード/保存)] をクリックし、 [ExampleStagePreset (サンプル ステージ プリセット)] を選択します。

    Load the Example Stage Preset filter

  4. CaveEntrance_NantStudiosSimple_SetupA をダブルクリックし、レベル スナップショットに保存されているアクタがレベルの現在の状態とどのように異なるかを確認します。

    The Preset Filter loaded

  5. CaveEntrance_NantStudiosSimple_SetupA をダブルクリックし、レベル スナップショットに保存されているアクタがレベルの現在の状態とどのように異なるかを確認します。

    The Setup A Level Snapshot filtered by the Preset

プロジェクト構造

インカメラ VFX のプロダクション テストは、バーチャル プロダクションのための Unreal プロジェクトの構成方法を見るのにとても良い例です。以下のフォルダはプロジェクトのコンテンツの全体の構成を決め、関連するカテゴリに分けます。

アセット

このフォルダには通常、キャラクター、環境、FX を作成するためのすべてのアセットが含まれます。レベル アセットはここには含まれません。以下は、このサンプル プロジェクトにおけるアセットの分類方法です。

  • アトラス

  • デカール

  • FX

  • IES

  • ランドスケープ

  • マテリアル

  • MS_Presets

  • プロップ

  • 散乱

  • テクスチャ

  • 植生

環境

このプロジェクトには撮影時の 3 つの環境が含まれています。

  • CaveEntrance

    The Cave Entrance environment

  • CavePath

    The Cave Path environment

  • SpaceJunkyard

    The Space Junkyard environment

環境構造

ソース コントロールでは .umap ファイルなどのバイナリ アセットのみ確認できるので、1 つの環境で同時に作業する各アーティストは、それぞれのレベルで作業しなければいけません。これを解決するには、環境をアクタの種類に基づいて複数の サブレベルに 分割します。

例えば、ライティング アーティストはライティング サブレベルで、FX アーティストは FX サブレベルで作業します。環境を領域ごとに分割した複数の GEO レベルがあり、それぞれを別のアーティストが担当することも一般的です。使われるサブレベルの数や種類はプロダクションのニーズに応じます。

次のフォルダはこのプロジェクトの各環境に使われたものです。

  • LevelSnapshots :レベルに関連するレベル スナップショット アセットです。

  • SubLevels :このプロジェクトでは、各レベルはコースティクス、FX、Geo、ライティングのサブレベルに分けられました。

  • Level Asset : {LevelName}_{Descriptor} 構造に従います。パーシスタントレベルには、サブレベルのコンテナとして機能する _P サフィックスが与えられます。このレベル アセット開くと、すべてのサブレベルで構成される環境全体が表示されます。

OCIO

このフォルダには OpenColorIO コンフィギュレーション アセットが含まれます。このプロジェクトにはアセットが 1 つあります。ExampleOCIO です。プロジェクトでの OCIO の使用の詳細については、「 カラー グレーディングと OCIO 」を参照してください。

The Example OCIO asset

ステージ レベル

フォルダには環境とステージ アクタの両方を持つすべてのレベル アセットが含まれます。nDisplay を使ってレンダリングしたい場合にこのアセットを開いてください。ステージ レベルはレベル アセットで使用されるステージによって分類されます。このサンプル プロジェクトでは、ステージに合わせるため次の構成を使用しています。

  • NantStudios

    • CaveEntrance_NantStudios

    • CavePath_NantStudios

    • SpaceJunkyard_NantStudios

  • NantStudiosSimple

    • CaveEntrance_NantStudiosSimple

    • CavePath_NantStudiosSimple

    • SpaceJunkyard_NantStudiosSimple

ステージ

このフォルダには、LED ボリュームのトポロジを表す nDisplay コンフィギュレーションが含まれます。このプロダクションでは 1 つのステージですべての撮影を行いました。それは Nant Studios です。1 台のデスクトップ パソコンで正面ウォールをレンダリングできるように、よりシンプルなバージョンのステージも用意されました。

拡大表示するには、画像をクリック。

NantStudios

  • Config :LED ボリュームのトポロジとそのレンダリング方法を定義する nDisplay コンフィグ アセット。

    The NantStudios nDisplay Config asset

  • LEDMeshes : nDisplay コンフィグ アセット で使用される LED パネル解像度のスタティック メッシュとマテリアル。

    NantStudios LED meshes

  • LiveLinkPresets :あらかじめ作成した Live Link 用の コンフィギュレーションで、起動時に LiveLink ソース を nDisplay ノードにロードするために必要です。デフォルトのプリセットは、 [Project Settings (プロジェクト設定)] > [Live Link] > [Default Live Link Preset (デフォルト Live Link プリセット)] に指定されています。エディタ環境で異なるソースを素早くリロードするためにも使用できます。

  • NantStudios_Stage : nDisplay Root アクタ ICVFX カメラ ライト カード など、ステージを表現するアクタのみを含むレベル アセット。

Simple Nant Studios

  • Config :LED ボリュームのトポロジとそのレンダリング方法を定義する nDisplay コンフィグ アセット。トポロジは Nant Studios のコンフィギュレーションと同様に見えますが、2 つの正面のウォールのみにレンダリングが設定されています。

  • NantStudiosSimple_Stage : nDisplay Root アクタ ICVFX カメラ ライト カード など、ステージを表現するアクタのみを含むレベル アセット。

Tools

このフォルダにはカスタム ブループリント制御、レベル スナップショット フィルタとプリセット、リモート コントロール プリセットが含まれます。以下は、各ツールについての説明です。

  • CaveMaterialControl :シーン内でオブジェクトが使用するさまざまなマテリアル パラメータ コレクションのためのブループリント コントローラー。コースティック スピード、光筋強度、岩のグローバル カラー シフトなどの制御が含まれます。

  • HierarchicalInstanceConverter

  • HolePunch :洞窟のジオメトリに穴を作成するために使用する球形のアクタ。これは撮影当日追加の光筋を作成するために使われました。

  • InnerFrustumCamera :LiveLinkComponent のある CineCameraActor。このブループリントは、ユーザーがインスタンス化した LiveLinkComponent をシーン アクタに手動で追加する必要をなくすことでカメラ トラッキングを簡略化します。

  • LevelSnapshotFilters :レベル スナップショットのためのカスタム ブループリント フィルタ。

  • LevelSnapshotPresets :レベル スナップショットのためのフィルタ グループのプリセット。

  • RemoteControl :リモート コントロール プリセット。

  • SyncTestBall :このツールは同期をテストするのに使用する、跳ねる赤いボールを作成します。ボールを 2 つのウォールのつなぎ目に表示されるようにシーンに配置します。同期が正常に機能していないと、つなぎ目の部分でボールが引き裂けて見えます。

Cvars

ステージで nDisplay を使ってレンダリングしながらパフォーマンスを向上させるために、プロダクション チームは以下の表にある CVars を使用して設定を調整しました。Switchboard の nDisplay セッション中に CVars を設定してクラスタに適用することができます。

以下の手順でSwitchboard で Cvars を設定します。

  1. Switchboard を開きます。

  2. [nDisplay Monitor] タブ内の Console: (コンソール) テキスト ボックスに Cvars と希望の値 (必要に応じて) を入力します。

  3. [Exec] をクリックします。

The nDisplay Monitor Console

以下は、インカメラ VFX のプロダクション テストで使用した値です。プロジェクトの内容や希望する見た目によって、使用する値を変更してください。

CVars

説明

r.ExrReadAndProcessOnGPU

該当なし

EXR の再生をCPUとGPUで切り替えます。GPU が有効な場合、Unreal Engine 4 は大きな非圧縮の EXR ファイルを構造化したバッファに直接ロードし、GPU でプロセスすることができます。

Ray Tracing

r.RayTracing.ForceAllRayTracingEffects

0

すべてのレイトレーシング エフェクトを強制的にオンまたはオフにします。値のオプションは以下のとおりです。

  • -1:強制的に適用しない (デフォルト)

  • 0:すべてのレイ トレーシング エフェクトを無効

  • 1:すべてのレイ トレーシング エフェクトを有効

この Cvars を 0 に設定すると、デフォルトで有効なすべての付加的なレイ トレーシング機能が無効になります。レイ トレーシングが必要である GPU ライトマスを使用する場合でも GPU で高速化したライト ベイクを使用できます。この CVars はレイ トレーシングを有効にした場合、どの程度のパフォーマンスが必要かを調べるのにも有用です。

r.RayTracing.Reflections.MaxRoughness

0.2

レイ トレーシングの反射が可視化可能な最大ラフネスを (デフォルト = -1 (ポストプロセス ボリュームによって決定する最大ラフネス)) に設定します。これによりラフネス値が 0.2 未満のマテリアルのみにレイ トレーシングされた反射があることになります。

r.RayTracing.Reflections.MaxRayDistance

500

レイ トレーシングされた反射の光線に対する最大レイ トレース距離を設定します。レイ ショートニングを使用した場合、スカイボックスは RT 反射パスでサンプリングされず、後でローカル反射キャプチャと一緒にコンポジットされます。負の値はこの最適化を無効にします (デフォルト = -1 (無限の光線))。 -1 以外の値を使用すると、シーン内で行われるレイ トレーシングの量が減ります。

r.RayTracing.Reflections.SortMaterials

0

反射したマテリアルをシェーディング前に並び替えるかどうか決定します。 オプションは次のとおりです。

  • 0:無効

  • 1:[Trace (トレース)] > [Sort (ソート)] > [Trace (トレース) (デフォルト)] を使用して有効化

r.DiffuseIndirect.Denoiser

2

ノイズ除去のオプション (デフォルト = 1)

r.RayTracing.Reflections

0

自分のレベルのレイ トレーシングによる反射のみを無効にします。これはレイ トレーシングされた反射のコストを払わずにレイトレースによるシャドウやその他のレイ トレーシング機能を使いたい場合に有用です。 オプションは次のとおりです。

  • -1:ポストプロセス ボリュームによって決定する値 (デフォルト)

  • 0:従来のラスタライズされた SSR を使用します。

  • 1:レイ トレーシングされた反射を使用します。

r.RayTracing.Geometry.Landscape

0

レイ トレーシング エフェクトにランドスケープを含めます。(デフォルト = 1 (レイ トレーシングで有効なランドスケープ)) 最終的な見た目にあまり影響せず、無効にすることでパフォーマンスが向上できたので、レイ トレーシングされた反射が必要なレベルを最適化するためにランドスケープ レイ トレーシングを無効にしました。

r.RayTracing.Reflections.ScreenPercentage

50

反射がレイ トレースされるスクリーン比率 (デフォルト = 100) です。 シーンに非常に光沢のあるきれいな反射がない場合、この値を減らしてパフォーマンスを向上することができます。

Upscaling Resolution

r.ScreenPercentage

75

低解像度でレンダリングして、より良いパフォーマンスのためにアップスケールします (ブレンド可能なポスト プロセス設定を併用)。 75 は低いエイリアシングとパフォーマンスに適した値です。「TestImage を表示」を使って検証します。

割合では、>0 と <=100 を使用します。より大きな数字も使用できますが (スーパーサンプリング)、ダウンサンプリングの品質は改善可能です。<0 の数字は 100 と同様に扱われます。

r.TemporalAA.Algorithm

1

テンポラル AA に使用するアルゴリズム オプションは次のとおりです。

  • 0:Gen 4 TAAU (デフォルト)

  • 1:Gen 5 TAAU (実験段階) これは、解像度のアップスケールが必要な場合に新しい Gen 5 TAAU を有効にします。

r.TemporalAA.Upsampling

1

テンポラル AA でプライマリ スクリーン パーセンテージを実行するかどうか指定します。 オプションは次のとおりです。

  • 0:TAA とは別にスパイラル アップスケール パスを実行します (デフォルト)。

  • 1:テンポラル AA は、スクリーン比率方式を使ってスパイラルおよび一時的アップスケールを実行します。

SSGI

r.SSGI.Enable

0

スクリーン空間 GI を有効または無効にするかどうか指定します。 オプションは次のとおりです。

  • 0:無効

  • 1:有効 スクリーン空間 GI を無効にします。

r.SSGI.HalfRes

1

半分の解像度で SSGI を実行するかどうか指定します。 オプションは次のとおりです。

  • 0:無効 (デフォルト)

  • 1:有効

r.SSGI.Quality

1

1 から 4 までの (デフォルトは 4)、SSGI で撮影した光線の数を制御する質の設定。

Volumetric Fog

r.VolumetricFog.GridPixelSize

6

ボクセル グリッドのセルの XY サイズ (ピクセル単位)。 低い値ほどボリュメトリック フォグの質が向上しますが、パフォーマンスに影響します。

r.VolumetricFog.GridSizeZ

96

Z 軸で使うボリュメトリック フォグのセルの数。 高い値では正確さが増しノイズが減りますが、パフォーマンスに影響します。

r.VolumetricFog

0

ボリュメトリック フォグの機能を有効にするかどうか指定します。 オプション

  • 0:無効

  • 1:有効 これは素早くボリュメトリック フォグを無効にし、どれだけのパフォーマンスを使用するかを決定します。

Rendering

ShowFlag.DirectLighting

0

この CVars は、ベイクされているものとされていないもの、およびパフォーマンスへの影響を理解するために直接ライティングを素早く無効にするのに有用です。 オプションは次のとおりです。

  • 0:ShowFlag を無効化。

  • 1:ShowFlag を有効化。

  • 2:この ShowFlag オーバーライドしない (デフォルト)。

r.SetNearClipPlane

150

近距離のクリッピング平面を設定 (cm 単位) レンダリング カメラの正面にあるジオメトリを素早く削除したい場合、この CVar で近距離のクリッピング平面を変更できます。

r.TextureStreaming

0

テクスチャ ストリーミングを有効にするかどうかを指定します。これはランタイムで変更できます。 オプション

  • 0:無効

  • 1:有効 (デフォルト)

r.Streaming.PoolSize

3600

-1:デフォルトのテクスチャ プール サイズ、それ以外の場合、値は MB 単位のサイズ。 最初に設定したプールサイズが小さすぎる場合で、しかもハードウェアが大きなテクスチャ プール サイズを使用できる場合、この CVars は、高いミップマップをロードするためにランタイム時にテクスチャ プール サイズを拡大するのに使用できます。

r.DFShadowScatterTileCulling

1

タイル グリッド上にオブジェクトを散乱してカリングするためにラスタライザを使用するかどうか指定します。 オプション

  • 0:無効

  • 1:有効

r.ForceLOD

5

強制する LOD レベル、-1 は無効。 特定の LOD を強制的にシーンに適用することでどれだけパフォーマンスや品質を向上できるかをテストするのに有用です。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル