Language:
Page Info
Engine Version:

ボリュームの概要

ボリューム とはレベル内の 3D 領域のことであり、以下のような多様な用途に対応します。

  • プレイヤーにダメージを与えます。

  • コリジョン サーフェスとして、アクタがボリューム内へ立ち入ることをブロックします。

  • ボリュームに入る、または離れるアクタを検知し、反応します。

  • レベルがライティングや可視性を計算する方法を変更します。

ボリュームを配置する際の考慮事項

ボリューム使用に際して覚えておく重要なポイントは以下の 2 つです。

  1. ボリュームはサポート アクタであり、一般的に特定タイプのアクタが特定エリアに入ったときに検知して反応しエフェクトをトリガーします。

  2. ボリュームによっては独自のビルトイン エフェクトを持つ (コードまたはブループリントで) ことがありますが、多くの場合、他のアクタに手がかりを与えます。ボリュームは、一般的により大きなエフェクトのコンポーネントとして考えられます。他のレベル エレメントが、視覚的手ががりになります。

例として Pain-Causing Volume があります。これは、ボリューム内にあるものに対してダメージを与えます。以下のようにレベルに配置します。

PainCausingVolume_NoEffect.png

PainCausingVolume_NoEffect_NoVolume.png

エディタ内

インゲーム

この場合、プレイヤーはボリュームを避ける方法を知らないか、中に入ったら何故ダメージを受けるかを理解しています。レベル デザイナーは、Pain Causing ボリュームを説明するヒントをプレイヤーに与えるようにします。

PainCausingVolume_Effect.png

PainCausingVolume_Effect_NoVolume.png

エディタ内

インゲーム

この場合、炎のパーティクル エフェクトが何故そのエリアが危険であるかを視覚的に説明しますが、Pain Causing ボリュームには炎にさらされたときにプレイヤーのヘルスを減らすゲームプレイ エフェクトで視覚的にサポートします。

ボリュームの作成

ボリュームは [Modes] メニューの [Volumes] タブからボリュームを選択し、レベル ビューポートへドラッグ&ドロップして作成します。

creatingVolumes.png

ボリュームがレベル内に配置すると、見た目が適切になるようにボリュームのリサイズおよび再配置ができるようになります。

ボリュームの種類

Audio Volume

Audio Volume は、ボリュームの内外で聞こえるものを制御する区切られたオーディオゾーンを作成するだけでなく、レベル内で様々なサウンドの制御と適用を可能にします。Audio Volume を使用すると、フェーディングによりオーディオ間のトランジションを生成し、ボリューム自体の中で Ambient Zone 設定を制御することができます。

Audio Volume の各プロパティの情報については、 詳細ページ をご覧ください。

Blocking Volume

Blocking Volume は、オブジェクトが通過できないコリジョン形状の役割をします。ボリューム上でコリジョン チャンネルを調整すると (下の画像)、どのタイプのオブジェクトが通過できるのか、また、ボリュームを通過する時にオブジェクトがオーバーラップ イベントを生成すべきかを制御できるようになります。

詳細は、 コリジョンのドキュメント をご覧ください。

blocking_volume_details.png

Blocking Volume はスタティックメッシュ上のコリジョン サーフェスの場所、特に構造体の中に壁がある場合に使用することができます。これにより、シーンは予測しやすくなります。物理オブジェクトは床や壁のバンプなどの小さなものとインタラクションしなくなるからです。物理シミュレーションの負荷を減らすことでパフォーマンスも向上します。

Camera Blocking Volume

Camera Blocking Volume はコリジョン設定でカメラだけをブロックし他のものは無視するように事前設定します。カメラが不適切な位置にならないように目に見えないバリアを定義することを意図しています。この例として、三人称視点のゲームでプレイ エリアの壁がツタの葉などの装飾で覆われている場合があります。このような場合、薄い Camera Blocking Volume を壁に対して配置し、カメラがツタにぶつからないようにしたり、葉の裏側に行かないようにし、滑らかにスライドさせて、室内のアクションをさえぎる物がない状態で見えるようにします。

Cull Distance Volume

Cull Distance Volume は、オブジェクトのカメラからの距離とサイズに応じてオブジェクトをカリング (すなわちスクリーンに描画されないように) できる最適化ツールです。小さくて重要でないと思われるオブジェクトをシーンに描画しないことにより最適化します。サイズは、最長寸法に合わせてバウンディング ボックスで計算され、選択されるカリング距離がそのサイズに最も近いものになります。

Cull Distance Volume 設定は、以下の [Details] パネルに表示されている [Cull Distances] プロパティに依存します。

CullDistancesProperty.png

上図のプロパティでは、動作が以下のように定義されます。

  • サイズが 50 ユニット (85 ユニット以下の距離) に最も近いボリューム内のオブジェクトは、カメラから 500 ユニット以上離れるとカリングされ (消滅し) ます。

  • サイズが 120 ユニット(85 から 210 ユニットの間の距離) に最も近いボリューム内のオブジェクトは、カメラから 1000 ユニット以上離れるとカリングされ (消滅し) ます。

  • サイズが 300 ユニット (210 ユニット以上の距離) に最も近いボリューム内のオブジェクトは、この場合 0 は無限遠として扱われ、カメラが十分に遠ざかることができないため、カリングされることはありません。

Cull Distances 配列にエントリを新規に追加して設定を開始します。これは button_Plus.png ボタンをクリックすれば完了です。次に、任意のオブジェクトのサイズ、およびそのサイズ以下のオブジェクトをカリングしたい希望の距離を入力します。これらのプロパティは、特定の順序で作成する必要はありません。

Hierarchical LOD Volume

Hierarchical LOD Volume には特殊なプロパティはありませんが、HLOD システムが複数アクタを単一の HLOD クラスタにグループ化するために使われます。クラスタ生成時にアンリアル エンジンは手動配置したボリュームに配慮して通常の生成プロセスをオーバーライドします。

Kill Z Volume

Kill Z Volume は、ある種のゲームでオブジェクトが境界から出るのを防ぐためのものです。例えば、プラットフォーマー ゲームで崖から落ちる、穴に落ちる、または SF ゲームでスーツを着用せずに宇宙船を離れるなどを防ぎます。Kill Z Volume は任意のアクタが入ってくると FellOutOfWorld 関数を呼び出します。デフォルトでアクタは迅速なクリーンアップ プロシージャを経て自己を破壊します。制作しているゲームで何か違うものを必要としているならば、どのアクタのタイプでもこのビヘイビアをオーバーライドすることができます。例えば、プレイヤーがゲームを続けるために集める必要があるキーまたはその他のアイテムが溶岩の穴に落ちたら、破棄して勝つ見込みがない状態のままにするよりも、ゲームではそのアイテムをテレポートしてプレイヤーが届く場所に戻すのが望ましいでしょう。または少なくともプレイヤーにアイテムが失われたことを通知し、最後のチェックポイントをリロードするとよいでしょう。

Level Streaming Volume

Level Streaming Volumeレベル ストリーミング プロセスを支援するために使用します。また、プレイヤーのボリュームの出入りに合わせてレベルがメモリに入出力される際、レベルを簡単にカプセル化および制御できるようにします。

Lightmass Character Indirect Detail Volume

Lightmass Character Indirect Detail Volume は Lightmass Importance Volume に類似しており、間接ライトのサンプルを生成します。グラウンド上のプレイヤーの高さだけではなく、ボリューム全体の内部にもサンプルを生成します。このタイプのボリュームの使用例として、間接ライティングが確実にシャフトの方向へ上下に正しく伸びるエレベータ シャフトがあります。

Lightmass Importance Volume

Lightmass Importance Volume は Lightmass 計算にフォーカスするために使用します。Lightmass とは、事前計算されたライティングおよびグローバル イルミネーション システムで、アンリアル エンジン 4 で使用されています。レベル内に事前計算されたライトの生成に必要な処理量を最小限に抑える、つまり最適化するために、 Lightmass Importance Volume を使用してレベル ジオメトリ領域を囲います。Lightmass は、領域外のものはスキップして、その領域内でのみ計算を行います。

Lightmass および Lightmass Importance Volumes に関する詳細は、 Lightmass に関するドキュメント を参照してください。

Mesh Merge Culling Volume

Mesh Merge Culling Volumes は、そこに含まれるメッシュ オブジェクトをマーク付けし、こうしたオブジェクトが単一のメッシュに結合されるようにします。これはあるエリアに含まれる小さなメッシュの集まりをひとつのメッシュとしてまとめてカリングする、または HLOD 生成によって最適な方法でジオメトリを減らすことでパフォーマンスを向上させます。

Nav Mesh Bounds Volume は、レベル内のどこに Nav Mesh をビルドするかを制御するために使用します。Nav Mesh は、レベル領域のすべての場所でナビゲーション パスを計算するために使用します。

ボリューム内で、適切な歩行角度で全てのサーフェス上に Nav Mesh が作成されます。必要に応じて、これらの Nav Mesh を好きなだけオーバーラップさせて望ましい Nav Mesh を生成することができます。

レベル内でナビゲーションが可能な領域を囲む Nav Mesh を 1 つ以上作成するだけで、Nav Mesh Bounds Volume が使用できるようになります。Nav Mesh が自動的にビルドされます。

ビューポートで [P] を押せば、いつでも Nav Mesh を表示することができます。

詳細は、コンテンツ サンプルと NavMesh に関するドキュメント をご覧ください。

Pain-Causing Volume

Pain Causing Volume は、Physics Volume にプレーヤーにダメージを与える機能を追加したものです。溶岩の穴、毒ガスのもくもくした塊など、明らかにプレイヤーが行くべきでない領域がレベルに存在する場合に便利です。

Pain-Causing Volume の各プロパティの情報については、 詳細ページ をご覧ください。

Physics Volume

Physics Volume は、キャラクターや他の物理オブジェクトに影響を与える物理のセットアップを操作できるボリュームです。主に、プレイヤーが泳がなければならない水のある背景の作成に使用されます。Physics Volume のエフェクトは可視であり、必要に応じて使用することができます。Character Movement Component クラスでは現在のフィールドを使って、所有している Character が背景をどのように動くかを調整します。ゲームにカスタム物理がある場合、APhysicsVolume から独自の子クラスを派生させるとそれを実現するのに役立ちます。

Physics Volume の特定のプロパティに関する情報は、 詳細ページ をご覧ください。

Post Process Volume

Post Process Volume[Details] パネルのプロパティを調整することでカメラに適用される Post Process 設定をオーバーライドできるスペースです。

ポストプロセスに関する詳細は ポストプロセスのドキュメント を参照してください。

Precomputed Visibility Volume

Precomputed Visibility Volume は主にパフォーマンスの最適化に使用します。これらのボリュームは、ワールド内の位置に対するアクタの可視性を保存しています。プレイヤーがアクセスできるエリアのみに配置されます。

Precomputed Visibility Override Volume

Precomputed Visibility Override Volume を使えば、Precomputed Visibilty Volume の自動生成結果が望ましくない場合に、手書きのコードでワールド内の位置に対してアクタの可視性をオーバーライドすることができます。これらはまたパフォーマンスの最適化にも使用され、プレイヤーがアクセス可能なエリアのみに配置することができます。

Trigger Volume

Trigger Volume は、プレイヤーまたはオブジェクトが出入りする際にイベントを発生させるために使います。Trigger Volume は、 Level ブループリント と一緒に使用して、イベントとゲームプレイのシナリオや機能を、ブループリントを追加する必要なくテストすることができます。

例えば、レベル内に TriggerVolume を配置し、Level ブループリント でボリュームのオーバーラップ イベントを作成し、これでサウンドを再生したり、シネマティックスを開始したり、ドアを開けることもできるオーバーラップ イベントを作成します。

コリジョン設定をチェックして、Overlap コリジョン反応の設定でトリガーが意図したアクタに反応するようにしてください。