LOD の作成と使用

LOD の作成および使用方法

プレイヤーがレベルに配置したスタティックメッシュの間近にきたら、メッシュが非常に詳細に見えるようにしたいと思うはずです。しかし、プレイヤーがメッシュから遠く離れたらメッシュを非常に詳細、複雑に表示する必要はありません。画面上で数ピクセルしか使わず、プレイヤーからほとんど見えない場合は、複雑で詳細なメッシュである意味はありません。しかし、プレイヤーがメッシュに近づき、メッシュがはっきりと見える場合は、メッシュを詳細化する必要があります。UE5 では、レベルのパフォーマンスを高めるために、メッシュをレベルに配置しておき、プレイヤーがメッシュから遠くに離れると複雑度が低いメッシュに切り替わるようにすることができます。これは、Level of Details (詳細度) すなわち LOD を使用して行うことができます。この操作ガイドでは、メッシュの詳細度が低いバージョンを UE5 にインポートし、プレイヤーが近づいたり離れたりするのに合わせて、あるメッシュから他のメッシュにシームレスに切り替わるようにする方法を説明します。

セットアップ

この操作ガイドでは、UE5 にインポート可能な .FBX として保存した何らかのメッシュをすでに持っている必要があります。この例では Maya で作成した単純なポリゴンの球体を使用します。別のアプリケーションで作成した独自のアセットも使用可能です。

メッシュをエクスポートしたら、UE5 を起動します。作業対象にしたいプロジェクトがあれば、この操作ガイドでそれをご利用いただいても構いません。そうでなければ、スターター コンテンツ を必ず有効にして ブループリント ファースト パーソン テンプレートを使用して新しいプロジェクトを作成します。有効にしないと、この操作ガイドで後で使用することになる一部のアセットが存在せず、理解が難しくなるかもしれません。

新規プロジェクトの作成方法の詳細は、「新規プロジェクトを作成する」のページを参照してください。

プロジェクトを作成したら、プロジェクトに名前を付けてその場所を決めて、[Create Project (プロジェクト作成)] ボタンをクリックします。

LOD の作成

プロジェクトが読み込まれたら コンテンツ ブラウザ の「Meshes」フォルダに移動して FirstPersonCube_Rounded という名前のアセットを探します。

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

アセットを見つけたら、ダブルクリック するか、右クリック して表示されるコンテキスト メニューから [Edit (編集)] を選択し、アセットをスタティック メッシュ エディタ内で開きます。以下のようになるはずです。

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

スタティック メッシュ エディタでアセットを開いたら、[Details (詳細)] パネルを探します。デフォルトでは右上隅にあります。見つかったら以下のように表示されるはずです。

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

一番上のセクションは LOD0 とラベル付けされています。LOD はゼロが基点となるシステムです。したがって、LOD0 は 1 番目のエントリで LOD1 は 2 番目というようになります。LOD0 はメッシュのベース LOD であり、メッシュが LOD を 1 つだけ持つ場合に使用されます。このメッシュがちょうどそれに当てはまります。次に、これを変更していきます。

このすぐ下にあるセクションは [LOD Settings (LOD 設定)] と名前が付いています。このセクションのいくつかのオプションについて説明します。1 つ目のオプションは、[Number of LODs (LOD 数)] です。デフォルトで 1 になっており、LOD をインポートすると増えます。この値は、自動メッシュ削減機能が利用可能であれば編集可能です。しかし、この機能を利用するためにはまず Simplygon からライセンスを取得しなければなりません。

次に説明するオプションは、 [LOD Import (LOD インポート)] です。このオプションでは、以下のようなドロップダウン メニューが表示されます。

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

[Import LOD Level 1 (LOD レベル 1 をインポート)] を選択します。すると、この操作ガイドで前述した .FBX ファイルをブラウズできるウィンドウが開きます。.FBX ファイルをブラウズして選択すると、そのメッシュ LOD1 つまり 2 番目の LOD がインポートされます。これを実行すると、画面右下に以下の画面に以下のようなポップアップ通知が表示されます。

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

この例では、LOD を 1 つだけインポートします。これで、合計 2 つになりますが、必要であればさらにインポートできます。これを行うには、[LOD Import] のドロップダウン メニューをクリックし、 [Import LOD Level X] を選択します。この場合、 X に入る数字は次にインポートしたい LOD になります。インポート済みの LOD も再インポートできます。LOD1 に対してインポート済みのメッシュの代わりに別のメッシュをインポートしたい場合、[LOD Import] のドロップダウン メニューをクリックして [Reimport LOD Level 1 (LOD レベル 1 を再インポート)] を選択します。今ドロップダウン メニューをクリックすると、オプションの表示は以下のようになるはずです。

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

LOD1 のメッシュがインポートされたので、LOD の威力を実際に確かめるために、いくつかの値を調整してみます。[Details] パネルの [LOD Settings] セクション内の最初のオプションは [Auto Compute LOD Distances (LOD 距離を自動計算)] です。このオプションは、画面サイズのパーセントを LOD の数で均等に割り、ある LOD から別の LOD にいつ切り替えるかを指示します。例えば、この例では 2 つの LOD があるので、メッシュが画面の 50 パーセント以上を占有している場合、LOD0 が表示されます。メッシュが画面の 50 パーセント未満を占有している場合は、LOD1 が表示されます。LOD が 3 つある場合、LOD0 はメッシュが画面の 66.7 パーセント以上を占める場合に表示されます。LOD1 は占める割合が 66.7 パーセントから 33.3 パーセントの間の場合に表示され、LOD2 はメッシュが画面の 33.3 パーセント未満を占める場合に表示されます。しかし、この例では使用するメッシュが画面の 50 パーセント未満しか占めないことが多いので、あまり役に立たないかもしれません。ただし、[Auto Compute LOD Distances] のチェックを外し、個々の LOD の Screen Size 値を手動で調節することで、この値を手動で変更することができます。

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

これを確かめるために [Auto Compute LOD Distances] のチェックを外します。チェックを外したら、LOD1Screen Size 値を見つけて、それを 0.01 に変更します。これによって、レベル内にあるキューブ メッシュが画面サイズの 1 パーセント未満を占める場合、キューブは LOD1 としてインポートしたメッシュに切り替わります (この例では球体)。各 LOD のマテリアルも変更できます。LOD の威力と有用性をさらに確認するために、LOD1 のマテリアルを M_Metal_Gold に変更します。

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

コリジョン

インポートした LOD から Complex Collision (トライアングル毎) を使うようにスタティック メッシュを設定することができます。これは物理パフォーマンスを最適化するのに有用です。特に、スタティック メッシュComplex Collision Trace に対して Complex Collision が多数ある場合に有用です。ただし、LOD が変化してもランタイムでの Complex Collision 間の切り替わりはありません。選択した LOD が、メッシュに対するすべての Complex Collision に使用されます。

セットアップ方法については、「スタティックメッシュでコリジョンをセットアップする」を参照してください。

使用中の LOD

これを実行した後、メッシュを保存し、レベル エディタ に戻ります。メッシュに近づくほど丸みを帯びたキューブになることがわかります。メッシュから遠ざかると、インポートしたときの球体になります。また、距離ではなく、画面サイズで計算されることに注意してください。そのため、メッシュの大きなインスタンスを小さなインスタンスの横に配置し、両方から同じ距離だけ離れ始めると、小さい方のインスタンスは大きなインスタンスよりも先に次の LOD に切り替わります。以下の例を見てください。

LOD Example Far

LOD Example Near

遠くの場合の LOD

近くの場合の LOD

遠くに離れるにつれて、前面にあるキューブだけが画面の 1 パーセントを超える量を占めるようになるので、まだ LOD0、つまりキューブのままです。しかし、後ろにあるメッシュは離れると小さくなり、1 パーセント未満しか占有せず、LOD1 (この例では金色の球体) に変わります。また、LOD は画面サイズに対応していることにも注意してください。ビューポートをデタッチしリサイズすると、メッシュがカバーする比率がビューポートのサイズに対応し、それに応じて LOD を変更します。

もちろん、キューブを球体に変えるのは LOD の実用的な使い方ではありませんが、この例は LOD がどのように機能するかを示しています。これで、LOD をレベル内のメッシュに適用して、間近では見栄えを良くし、遠くではパフォーマンスのために最適化するようにする準備ができました。

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