ランタイム仮想テクスチャリングのクイック スタート

本ガイドでは、ランタイム仮想テクスチャリングを使用するためにランドスケープとマテリアルを設定する方法について説明します。

Windows
MacOS
Linux

本ガイドは、Epic Games Launcher の [Learn (ラーニング)] タブから入手可能な Content Examples プロジェクトに含まれるマテリアルを使用します。これから説明する手順に対してすべてのマテリアルは必須ではありませんが、ペイントされたランドスケープを正しく機能させるためにランドスケープを設定します。

Content Examples プロジェクトの Landscapes マップを入手または開いて本ガイドで使用する前に、「ランドスケープのクイックスタート ガイド」 をお読みください。

この「ランタイム仮想テクスチャリング (RVT) のクイック スタート」では、プロジェクト内のランドスケープおよび非ランドスケープ コンポーネントに対して、RVT を設定して使用するためのプロセスについて説明します。

本ガイドを読み進める前に、ランタイム仮想テクスチャがランドスケープ テレインと最適に機能する以下の理由について理解しておくことが大切です。

  • 複雑なランドスケープ マテリアルはパフォーマンス向上のためにシェーディングの結果をキャッシュする。

  • スプラインおよびデカール型のエフェクトにより、品質とバリエーションの向上が可能。

  • 非ランドスケープ アクタとランドスケープのブレンドは同じ RVT アセットによって処理される。

本ガイドを読み終えると、以下の点についての理解が深まります。

  • ランタイム仮想テクスチャ アセットの設定と、さまざまなコンポーネントとの接続の仕組み。

  • ランドスケープ マテリアルに対してランタイム仮想テクスチャリングを有効にする。

  • レベル内にランタイム仮想テクスチャ ボリュームを設定する。

  • 追加のアクタをランタイム仮想テクスチャにレンダリングするよう設定する。

1 - プロジェク設定

ランタイム仮想テクスチャを使用する前に、これをプロジェクトで有効にする必要があります。以下の手順に従ってください。

  1. メイン メニューから [Edit (編集)] を選択して [Project Settings (プロジェクト設定)] を選択します。[Engine (エンジン)] > [Rendering (レンダリング)] > [Virtual Textures (仮想テクスチャ)] カテゴリに移動し、 [Enable virtual texture support (仮想テクスチャのサポートを有効化)] をオンにします。

    1_1_ProjectSettings.png

  2. プロジェクトを 再起動 します。

2 - ランタイム仮想テクスチャ アセットの作成

ランタイム仮想テクスチャ アセットには、ランタイム仮想テクスチャ ボリュームに割り当てられた RVT アセットの詳細な設定情報が含まれています。また、データを共有する必要のある、シーン内のマテリアルと他のアクタをリンクすることで RVT アセットを機能させることもできます。

  1. コンテンツ ブラウザ 内で右クリックしてコンテキスト メニューを表示するか、 [Add New (新規追加)] ボタンを使用して、 [Materials & Textures (マテリアル・テクスチャ)] カテゴリから [Runtime Virtual Texture (ランタイム仮想テクスチャ)] アセットを選択して作成します。

    2_1_CB_AddNew_RVTAsset.png

  2. 作成した ランタイム仮想テクスチャ アセットに名前を付けます。ここでは「VT_Test」と名前を付けます。

  3. アセットをダブルクリックして ランタイム仮想テクスチャ アセットを開き、利用可能なプロパティを設定します。

    2_1_RVT_Asset_Window.png

    このウィンドウで、ランタイム仮想テクスチャのサイズ、タイル サイズ、サポートするマテリアル属性、ストリームされた仮想テクスチャと使うためにレンダリングするローミップの数のタイプを定義することができます。これらの設定はリアルタイムで調整できるため、エディタ内ですぐに変更を確認することができます。

    これらの設定の詳細と使い方については、「仮想テクスチャの設定」 を参照してください。

3 - ランタイム仮想テクスチャ マテリアルの作成

この手順からは、Content Examples プロジェクトのアセットを使用します。必須ではありませんが、推奨します。

この手順では、シンプルなランドスケープ マテリアルを使用してランタイム仮想テクスチャリングのサポートを実装します。さらに、対応プラットフォームで仮想テクスチャリングが利用できない場合にマテリアルを元の使用状態にフォールバックする、RVT 固有のマテリアル式をいくつか使用してロジックを設定します。

RVT と連携するようマテリアルを設定する際は、次の 2 点を考慮する必要があります。

  • マテリアルの一部は RVT アセットに 書き込み を行う。

  • マテリアルの一部は RVT アセット からサンプリングして さらなるロジックを適用する。

Content Examples プロジェクトから得たこのランドスケープ マテリアルの例には、雪、草、そして岩向けに設定されたシンプルなレイヤー ブレンドが含まれています。

クリックしてフルサイズ表示。

Content Examples プロジェクトのマテリアルを使用していない場合は、上記のようにマテリアルを作成することができますが、ランドスケープに使用するにはマテリアルを適切に設定する必要があることに注意してください。作成や設定の詳細については、「ランドスケープのクイックスターと ガイド」 を参照してください。

以降のセクションでは、RVT アセットへの書き込みとサンプリングの方法を詳しく紹介するために、このマテリアルを分けて説明します。

必須のマテリアル設定

RVT アセットと使用するためのランドスケープ マテリアルの設定は従来の設定とほとんど同じですが、1 点異なるのは [Use Material Attributes (マテリアル属性の使用)] を有効にすることです。このオプションによって Make Material Attributes (マテリアル属性の作成) 式を使用できるようになり、サポートされるさまざまな使用状況に向けてマテリアルを再ビルド、出力できるようになります。

  1. 作成済み、もしくは使用可能なランドスケープ マテリアルを開きます。グラフ内を右クリックして「Make Material Attributes」式を検索します。式を 1 つグラフに加えます。

  2. Main Attributes ノードから Make Material Attributes ノードにワイヤを引いて接続します。下の画像のように設定してください。

    クリックしてフルサイズ表示。

  3. 次に、 Main Attributes ノードを選択した状態で、 [Details (詳細)] パネルで [Use Material Attributes (マテリアル属性の使用)] をオンにします。

    3_1_3_EnableUseMatAttributes.png

  4. Make Material Attributes ノードの出力からワイヤを引いて Runtime Virtual Textures Feature Switch ノードを作成し、その [No] 出力につなぎます。次に、これを Material Attributes 出力につなぎます。

    3_1_4_RVTFeatureSwitchNode.png

マテリアルは次のようになるはずです。

クリックしてフルサイズ表示。

ランタイム仮想テクスチャ アセットに書き込む

次に、マテリアルが Runtime Virtual Texture Output 式を使って RVT アセットに書き込めるよう設定する必要があります。このノードは、本ガイドで作成した RVT アセットを参照し、Base Color、Roughness、Normal などの対応するマテリアル属性をこのノードの入力属性として使用できるようにします。

  1. 右クリックして Runtime Virtual Texture Output ノードをグラフに追加します。

    クリックしてフルサイズ表示。

  2. ノードに含まれるそれぞれのマテリアル属性入力をノード ワイヤで接続します。ベース マテリアルで使用していないものについては、定数値を使用します。

    3_2_2_ConnectRVTOutputInputs.png

    複雑なマテリアル グラフで混乱を避けるために、ワイヤをダブルクリックして Reroute ノードを作成します。たとえば、 Base Color や Normal のような入力用のワイヤ上にのノードを追加すると、RVT Output と Make Material Attributes ノードの両方の入力に対応する 1 つのワイヤを使用できて便利です。

マテリアルは次のようになるはずです。

クリックしてフルサイズ表示。

このマテリアルの最初の部分では、すべてのレイヤーのブレンドとロジックが処理されます。これらはすべて RVT アセットにキャッシュ可能な カメラ非依存の シェーディングであり、スプラインやデカールなど他のオブジェクトは、RVT システムによりこのノードの出力にコンポジットされることになります。

ランタイム仮想テクスチャ アセットからサンプリングする

次に、マテリアルが Runtime Virtual Texture Sample 式を使って RVT アセットから サンプリング できるよう設定する必要があります。

グラフのこの部分では、RVT アセットからサンプリングし、 カメラ依存 または追加のシェーディング操作を適用します。RVT アセットの属性はサンプルであり、マテリアルの最終出力にルーティングされるため、グラフのこの部分での作業量が少ないと、このマテリアルのレンダリングの負荷も低くなります。

  1. 右クリックして Runtime Virtual Texture Sample ノードを追加します。

    クリックしてフルサイズ表示。

  2. 右クリックして別の Make Material Attributes ノードを作成します。Runtime Virtual Texturing Sample ノードの出力を、 Make Material Attributes ノードの対応する入力に接続します。

    3_3_2_AddConnectMakeMatAttribute.png

  3. Make Material Attributes ノードの出力を、 Virtual Texture Feature Switch ノードの [Yes] 入力に接続します。

    クリックしてフルサイズ表示。

  4. Runtime Virtual Texture Sample ノードを選択します。[Details (詳細)] パネルの [Virtual Textures (仮想テクスチャ)] アセット選択ボックスで、本ガイドで作成した RVT アセットを割り当てます。

    3_3_4_AssignRVTAssetTOrvtSampleNode.png

  5. Virtual Texture Feature Switch ノードの出力をメインの Material Attributes ノードの入力に接続します。

    3_3_5_VTFeatureSwitchTOmainAttributes.png

  6. マテリアルを 保存 して 閉じ ます。

マテリアルは次のようになるはずです。

クリックしてフルサイズ表示。

4 - ランタイム仮想テクスチャ ボリュームの配置

ランタイム仮想テクスチャリングをサポートするようマテリアルを設定したので、次はレベル内に ランタイム仮想テクスチャ ボリューム を配置します。ボリュームに RVT アセットを割り当てる前にいくつかのビルトイン ツールを使用して、ボリュームがランドスケープを適切に覆うよう、必要に応じてスケーリングおよび回転を行います。

  1. [Modes (モード)] パネルの [Volumes (ボリューム)] カテゴリで [Runtime Virtual Texture Volume] を見つけて、シーン内にドラッグします。

    クリックしてフルサイズ表示。

  2. RVT ボリュームを選択した状態で、選択したアクタの境界を覆うよう、必要に応じて [Details (詳細)] パネルでボリュームのスケーリングおよび回転を行います。

    1. [Transform from Bounds (境界からトランスフォーム)] カテゴリの [Source Actor (ソース アクタ)] 選択ボックスで、レベル内に配置されてるアクタを選択するか、 スポイトのアイコン を使用してアクタを選択します。

      4_2_TransformFromBoundsSettings.png

    2. [Copy Bounds (境界のコピー)][Copy Rotation (回転のコピー)] ボタンをクリックして、選択したアクタの境界と回転に合わせて RVT ボリュームをスケーリングします。

      RVT アセットからサンプリングするオブジェクト、または RVT アセットに書き込むオブジェクトは、RVT ボリュームの境界内にある必要があります。

  3. [Virtual Texture (仮想テクスチャ)] カテゴリの [Virtual Texture] アセット選択ボックスで RVT アセットを割り当てます。

    4_3_AssignRVTAsset.png

M_LandscapeMaterial マテリアルに対する設定がすべて正しく行われており、ランドスケープ テレインに正しく割り当てられてペイントされている場合は、RVT アセットが割り当てられている RVT ボリュームが正しくレンダリングされます。いずれかが正しく行われていない場合、マテリアルは黒色でレンダリングされます。

4_0_RVTVolumeOutput.png

5 - ランタイム仮想テクスチャへのアクタのレンダリング

ここまでで、ベース ランドスケープ マテリアルを設定し、RTV アセットにレンダリングしたので、次は RVT にレンダリングするワールドに他のアクタを追加します。この手順では、ランドスケープ スプライン (道) を有効にして、RVT を通じてランドスケープに直接レンダリングできるようにします。

本ガイドのこのセクションでは、Content Examples で設定済みのランドスケープ スプラインを使用しますが、ここで説明する手順は他のアクタやそのマテリアルにも適用可能です。このスプラインは、ランタイム仮想テクスチャへのレンダリングの実践的な好例と言えます。

  1. [Modes (モード)] パネルに移動して [Landscape (ランドスケープ)] タブを選択し、 [Manage (管理)] ボタンをクリックします。

    5_1_SelectLandscapeMode.png

  2. [Landscape Editor (ランドスケープ エディタ)] カテゴリのドロップダウンを使用して [Edit Splines (スプラインの編集)] を選択します。

    5_2_SelectEditSplines.png

  3. レベル ビューポート内でスプライン (任意の部分) を選択します。レベルの [Details (詳細)] パネルで [Segments (セグメント)] ボタンをクリックして、このスプラインを構成するすべてのセグメントを選択します。

    5_3_SelectSplineSegments.png

  4. [Landscape Spline Meshes (ランドスケープ スプライン メッシュ)] カテゴリにある [Spline Meshes (スプライン メッシュ)] 列を展開します。「SM_Street」 スタティック メッシュが割り当てられています。これをダブルクリックしてスタティック メッシュ エディタを開きます。

    5_4_a_SplineStaticMesh.png

    次に、 [Material Slots (マテリアル スロット)] にある [Element 0] の M_Street マテリアルをダブルクリックして、マテリアル エディタで開きます。

    5_4_b_SplineStaticMeshMaterial.png

    このスタティック メッシュと割り当てられているマテリアルについては、スロット 0 および 1 に使用されているベース マテリアルであるため、Element 0 が選択されていました (Element 1 は Element 0 の子マテリアル インスタンス)。RVT アセットにレンダリングされるマテリアルは、すべて以下の手順で設定する必要があることに留意してください。

  5. マテリアル エディタ内でメインの Material ノードが選択された状態で、 [Details (詳細)] パネルの [Material Domain (マテリアル ドメイン)][Virtual Texture (仮想テクスチャ)] に設定します。

    5_5_SplineMaterialSetup.png

  6. マテリアル エディタとスタティック メッシュ エディタの両方を 保存して閉じます

  7. レベル ビューポートに戻り (ランドスケープ スプラインが選択された状態)、レベルの [Details (詳細)] パネルの [Virtual Textures (仮想テクスチャ)] カテゴリに移動します。追加 ([+]) ボタンをクリックして、リストに新しい配列要素を追加します。この配列要素に RVT アセットを割り当てます。

    5_6_SplineSetupAssignRVTAsset.png

レベル ビューポートでは、テレイン サーフェスよりやや上にあるスプライン パスに沿ってスプラインのマテリアルが浮いているように見えるのではなく、ランドスケープの RVT アセットにレンダリングされていることがわかります。

Without Runtime Virtual Texturing

With Runtime Virtual Texturing

次の比較画像は、RVT を使用してスプライン マテリアルがランドスケープのサーフェスに適用されている様子を拡大したものです。

Without Runtime Virtual Texturing

With Runtime Virtual Texturing

6 - 応用編

ここまでで、本ガイドのすべての手順を完了し、ランタイム仮想テクスチャを使用するためのランドスケープ マテリアルの設定を終えました。次は、あなた独自のアクタのマテリアルを RVT にレンダリングして、さまざまな可能性を試してみましょう。以下は、応用にあたっての推奨事項です。

  • デカールなどの適用可能な別のスタティック メッシュを RVT に追加してみましょう。スタティック メッシュ平面とマスクされたマテリアルを使用して、テレインにデカールのようなディテールを施す方法を確認してください。

  • フォリッジ インスタンスを使用して、RVT にレンダリング可能なメッシュをペイントし、テレインに独自のバリエーションを加えましょう。

  • 複数のランタイム仮想テクスチャ アセットを使用して、さまざまなタイプのアクタと、それらのランタイム仮想テクスチャ ボリュームへのレンダリング設定を管理しましょう。

  • [Translucency Sort Priority (透過処理のソートの優先順位)] を使用して、アクタが RVT にレンダリングされる際のレイヤーの順序を設定しましょう。例えば、「0」は最下部のレイヤーを表し、この値が上がるにつれてレイヤーの配置順が上がります。

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback