ボリューム (範囲) は、3D アクタ で、レベル内のエリアの挙動を変更するために使用します。ボリュームは以下のような用途に使用することができます。
ボリューム内のプレイヤー、または他のアクタにダメージを与える。
コリジョン サーフェスとして機能し、アクタがボリューム内へ立ち入らないようにブロックする。
アクタがボリュームに入るときにドアを開く。
レベルがライティングや可視性を計算する方法を変更する。
ボリュームを作成し、配置する
ボリュームは [Place Actors (アクタを配置)] パネルの [Volumes] タブからボリュームを選択し、レベル ビューポートへドラッグ アンド ドロップして作成します。
ボリュームをレベル内に配置したら、見た目が適切になるようにボリュームのリサイズおよび再配置ができます。ボリューム配置時に覚えておく重要なポイントは以下の 2 つです。
ボリュームはサポート アクタであり、一般的に特定タイプのアクタが特定エリアに入ったときに検知して反応しエフェクトをトリガーします。
ボリュームによっては独自のビルトイン エフェクトを持つ (コードまたはブループリントで) ことがありますが、多くの場合、他のアクタに手がかりを与えます。ボリュームは、他のエレメントが視覚的手ががりになる、大きなシステムの一部として考えられます。
例として ダメージ付与ボリューム (Pain-Causing Volume) があります。これは、ボリューム内にあるものに対してダメージを与えます。以下のようにレベルに配置します。
|
|
---|---|
インエディタ |
インゲーム |
この場合、プレイヤーはボリュームを避ける方法を知らないか、中に入ったら何故ダメージを受けるかを理解しています。レベル デザイナーは、ダメージを与えるボリュームを説明するヒントをプレイヤーに与えるようにします。
|
|
---|---|
インエディタ |
インゲーム |
この場合、炎のパーティクル エフェクトはそのエリアが危険である理由を視覚的に説明し、ダメージを与えるボリュームは炎に曝されている間プレイヤーのヘルス値を下げるゲームプレイ エフェクトを使用して視覚をサポートします。
ボリュームの種類
コリジョン ボリュームとオーバーラップ ボリューム
ブロッキング ボリューム
ブロッキング ボリューム (Blocking Volume) は、アクタが通過できないコリジョン形状の役割をします。ボリューム上でコリジョン チャンネルを調整すると (下の画像)、どのタイプのアクタが通過できるのか、また、ボリュームを通過する時にアクタがオーバーラップ イベントを生成すべきかを制御できるようになります。 詳細については、「コリジョンのドキュメント
ブロッキング ボリュームは、スタティックメッシュ上のコリジョン サーフェスの場所、特に構造体の中に壁がある場合に使用することができます。これにより、シーンは予測しやすくなります。物理オブジェクトは床や壁のバンプなどの小さなものとインタラクションしなくなるからです。物理シミュレーションの負荷を減らすことでパフォーマンスも向上します。
カメラ ブロッキング ボリューム
カメラ ブロッキング ボリューム (Camera Blocking Volumes) はコリジョン設定でカメラだけをブロックし他のものは無視するように事前設定します。カメラが不適切な位置にならないように目に見えないバリアを定義することを意図しています。この例として、三人称視点のゲームでプレイ エリアの壁がツタの葉などの装飾で覆われている場合があります。このような場合、薄いカメラ ブロッキング ボリュームを壁に対して配置し、カメラがツタにぶつからないようにしたり、葉の裏側に行かないようにし、滑らかにスライドさせて、室内のアクションをさえぎる物がない状態で見えるようにします。
キル Z ボリューム
キル Z ボリューム (Kill Z Volume) は、ある種のゲームでオブジェクトが境界から出るのを防ぐためのものです。例えば、プラットフォーマー ゲームで崖から落ちる、穴に落ちる、または SF ゲームでスーツを着用せずに宇宙船を離れるなどを防ぎます。キル Z ボリュームは任意のアクタが入ってくると FellOutOfWorld
関数を呼び出します。デフォルトでアクタは迅速なクリーンアップ プロシージャを経て自己を破壊します。何か違うものがゲームに必要な場合、すべてのアクタ タイプにこの挙動をオーバーライドすることができます。たとえば、ゲームを続行するためにプレーヤーが収集する必要のあるキーまたはその他のアイテムが溶岩ピットに落ちた場合、ゲームはアイテムを破壊するのではなく、プレーヤーが到達できる領域にテレポートして戻すことができます。または、ゲームを勝てない状態のままにするのではなく、少なくともアイテムが失われたことをプレーヤーに通知し、最後のチェックポイントをリロードします。
ダメージ付与ボリューム
ダメージ付与ボリューム (Pain Causing Volume)ダメージ付与ボリュームのリファレンス
物理ボリューム
物理ボリューム (Physics Volumes) は、キャラクターや他の物理オブジェクトに影響を与える物理のセットアップを操作できるボリュームです。主に、プレイヤーが泳ぐ必要のある水のある環境を作成するために使用します。物理ボリュームのエフェクトは可視であり、必要に応じて使用することができます。Character Movement Component クラスでは現在のフィールドを使って、所有している Character
が背景をどのように動くかを調整します。ゲームにカスタム物理がある場合、APhysicsVolume
物理ボリュームのリファレンス
トリガー ボリューム
トリガー ボリューム (Trigger Volumes) は、プレイヤーまたはオブジェクトが出入りする際にイベントを発生させるために使います。トリガー ボリュームは、Level ブループリント と一緒に使用して、イベントとゲームプレイのシナリオや機能を、ブループリントを追加する必要なくテストすることができます。
例えば、レベル内にトリガー ボリュームを配置し、Level ブループリント でボリュームのオーバーラップ イベントを作成し、これでサウンドを再生したり、シネマティックスを開始したり、ドアを開けることもできるオーバーラップ イベントを作成します。
コリジョン設定をチェックして、Overlap コリジョン反応の設定でトリガーが意図したアクタに反応するようにしてください。
グラフィカル ボリュームとオーディオ ボリューム
オーディオ ボリューム
オーディオ ボリューム (Audio Volumes)オーディオ ボリュームのリファレンス
カリング距離ボリューム
カリング距離ボリューム (Cull Distance Volume) は、オブジェクトのカメラからの距離とサイズに応じてオブジェクトをカリング (すなわちスクリーンに描画されないように) できる最適化ツールです。小さくて重要でないと思われるオブジェクトをシーンに描画しないことにより最適化します。サイズは、最長寸法に合わせてバウンディング ボックスで計算され、選択されるカリング距離がそのサイズに最も近いものになります。
カリング距離ボリューム設定は、以下の [Details] パネルに表示されている Cull Distances プロパティに依存します。
上図のプロパティでは、動作が以下のように定義されます。
サイズが 50 ユニット (85 ユニット以下の距離) に最も近いボリューム内のオブジェクトは、カメラから 500 ユニット以上離れるとカリングされ (消滅し) ます。
サイズが 120 ユニット(85 から 210 ユニットの間の距離) に最も近いボリューム内のオブジェクトは、カメラから 1000 ユニット以上離れるとカリングされ (消滅し) ます。
サイズが 300 ユニット (210 ユニット以上の距離) に最も近いボリューム内のオブジェクトは、この場合 0 は無限遠として扱われ、カメラが十分に遠ざかることができないため、カリングされることはありません。
階層 LOD ボリューム
階層 LOD ボリューム (Hierarchical LOD Volume) は
Lightmass キャラクター間接詳細ボリューム
Lightmass キャラクター間接詳細ボリューム (Lightmass Character Indirect Detail Volume) は、Lightmass インポータンス ボリュームに類似しており、間接ライトのサンプルを生成します。グラウンド上のプレイヤーの高さだけではなく、ボリューム全体の内部にもサンプルを生成します。このタイプの使用例として、間接ライティングが底部だけでなく、確実にシャフトの方向へ正しく照らすエレベータ シャフトへの配置があります。
Lightmass インポータンス ボリューム
Lightmass インポータンス ボリューム (Lightmass Importance Volume)Lightmass グローバル イルミネーション
メッシュマージ カリング ボリューム
メッシュマージ カリング ボリューム (Mesh Merge Culling Volumes) は、そこに含まれるメッシュ オブジェクトをマーク付けし、こうしたオブジェクトが単一のメッシュに結合されるようにします。ある領域にに含まれる小さなメッシュの集まりを 1 つのメッシュとしてまとめてカリングする、または
ポストプロセス ボリューム
ポストプロセス ボリューム (Post Process Volume) は [Details]ポストプロセスのドキュメント
事前計算ビジビリティ ボリューム
事前計算ビジビリティ ボリューム (Precomputed Visibility Volume) は主にパフォーマンスの最適化に使用します。これらのボリュームは、ワールド内の位置に対するアクタの可視性を格納します。プレイヤーがアクセスできるエリアのみに配置されます。
事前計算ビジビリティ オーバーライド ボリューム
事前計算ビジビリティ オーバーライド ボリューム (Precomputed Visibility Override Volume) を使えば、自動生成された事前計算ビジビリティ ボリュームが望ましくない場合に、手書きのコードでワールド内の位置に対してアクタの可視性をオーバーライドすることができます。また、これらはパフォーマンスの最適化にも使用され、プレイヤーがアクセス可能な領域にのみ配置することを推奨します。
レベル ボリュームと AI ボリューム
レベル ストリーミング ボリューム
レベル ストリーミング ボリューム (Level Streaming Volume) は レベル ストリーミング プロセスを支援するために使用します。また、プレイヤーのボリュームの出入りに合わせてレベルがメモリに入出力される際、レベルを簡単にカプセル化および制御できるようにします。
ナビメッシュ バウンズ ボリューム
ナビメッシュ バウンズ ボリューム (Nav Mesh Bounds Volume) は、ナビメッシュをレベルのどこに構築するかを制御します。ナビメッシュは、レベル領域のすべての場所でナビゲーション パスを計算します。
ボリューム内で、適切な歩行角度で全てのサーフェス上にナビメッシュが作成されます。必要に応じて、これらのナビメッシュを好きなだけオーバーラップさせて望ましいナビメッシュを生成することができます。
レベル内でナビゲーションが可能な領域を囲むナビメッシュを 1 つ以上作成するだけで、ナビメッシュ バウンズ ボリュームが使用できるようになります。ナビメッシュが自動的にビルドされます。
ビューポートで [P] を押せば、いつでもナビメッシュを表示することができます。