自動 LOD (Level of Detail) 生成システムでは、スタティックメッシュのポリゴン カウントを自動的に減らして、Unreal Engine 5 (UE5) エディタを使って LOD を作成することができます。LOD の自動生成では、Quadratic Mesh Simplification というメッシュ簡略化手法を用いて、スタティックメッシュ用の LOD を生成します。このメッシュ簡略化では、2 つの頂点をマージしエッジをコラプスすることで生じる視覚的差異の量を計算します。次に視覚的影響が最小限であるエッジを選んで、それをコラプスさせます。これを行う場合、このツールは新たにマージした頂点を配置する最適な場所を選び、エッジに沿ってコラプスしたトライアングルがあればそれも取り除きます。トライアングル数がリクエストされた目標数になるまで、エッジをコラプスし続けます。以下の操作ガイドでは、UE5 プロジェクトの自動 LOD 生成システムでこの機能をセットアップして使用する方法について説明します。
設定
以下のセクションでは、スターター コンテンツ を有効にした新規プロジェクトを作成して、Static Mesh アセットを開いて作業します。
ここでは、スターター コンテンツに入っている SM_Rock スタティックメッシュを使用しますが、ご自身で選んだスタティックメッシュをご利用いただくこともできます。
- まだ行っていない場合は、UE5 プロジェクトを開くか、新規 UE4 プロジェクトを作成し、With Starter Content が設定を有効にします。追加されているようにします。
- プロジェクトをロードしたら、SM_Rock スタティックメッシュを確認し、その上でダブルクリックし、スタティックメッシュ エディタ で開きます。
LOD を作成する
LOD を生成するには 2 種類の方法があります。ひとつめは、事前設定された内容に基づき LOD を自動作成する LOD Group プリセットを使用する方法です。エピックではこの方法を推奨しています。ふたつめは、各自で LOD を設定するやり方です。以下では、各方法を使用した LOD 作成について詳細に説明します。
LOD グループの使用
LOD グループを Automatic LOD ツールを使って UE4 内で作成するのは好ましい方法です。次のセクションでは、 UE4 プロジェクトで LOD グループを設定し、使用する方法について説明します。
-
まず、プロジェクトの BaseEngine.ini ファイルを見つけて、テキスト エディタ内で開きます。
[StaticMeshLODSettings]
セクションを探します。BaseEngine.ini ファイルでこのエントリがなければ、以下のコードをご自身の BaseEngine.ini ファイルにコピーしてペーストしてください。[StaticMeshLODSettings] LevelArchitecture=(NumLODs=4,LightMapResolution=32,LODPercentTriangles=50,PixelError=12,SilhouetteImportance=4,Name=LOCTEXT("LevelArchitectureLOD","Level Architecture")) SmallProp=(NumLODs=4,LODPercentTriangles=50,PixelError=10,Name=LOCTEXT("SmallPropLOD","Small Prop")) LargeProp=(NumLODs=4,LODPercentTriangles=50,PixelError=10,Name=LOCTEXT("LargePropLOD","Large Prop")) Deco=(NumLODs=4,LODPercentTriangles=50,PixelError=10,Name=LOCTEXT("DecoLOD","Deco")) Vista=(NumLODs=1,Name=LOCTEXT("VistaLOD","Vista")) Foliage=(NumLODs=1,Name=LOCTEXT("FoliageLOD","Foliage")) HighDetail=(NumLODs=6,LODPercentTriangles=50,PixelError=6,Name=LOCTEXT("HighDetailLOD","High Detail"))
このセクションでエントリを追加、削除、調整することで、LOD グループの使用時の機能を追加、削除、調整することになります。
-
UE5 エディタを開きます。LOD を生成するスタティックメッシュをコンテンツ ブラウザでダブルクリックして開きます。この例では、スターター コンテンツに入っている SM_Rock を使用します。
-
スタティックメッシュ エディタで、このスタティックメッシュが開いている状態で、[Details] パネルに進み、[LOD Settings] セクションを展開します。
- [LOD Settings] セクションで、[LOD Group] ボタンをクリックします。表示されるリストから、[SmallProp] オプションを選択します。
- 現在行っていることは、現在の設定を SmallProp の新規設定で上書きすることである旨の通知があります。作業を続けるには、[Yes] ボタンをクリックします。
- これでスタティックメッシュ エディタには、[Details (詳細)] パネルに追加された 4 種類の新規 LOD エントリ (LOD0、LOD1、 LOD2、および LOD3) が表示されます。各 LOD エントリをクリックすると、プロジェクトの BaseEngine.ini ファイルの
StaticMeshLODSettings
で定義された設定に対応する設定があるのがわかります。
[Auto Compute LOD Distances] にチェックを入れるようにしてください。このアルゴリズムでは、エッジのコラプスにより加わる視覚的差異を把握します。この情報を使ってエラーでの許容可能な距離をを決定することができます。これをオフにすると、各 LOD の画面サイズは手動で設定する必要がありますが、これはエラーにつながることがあります。
様々な LOD グループ設定を試して、オブジェクトに対してどのような LOD を作るかを確認してください。次のセクションでは、LOD を手動で作成する方法について説明します。
LOD を作成する
このセクションでは、プロジェクトのアセットに対して LOD を手動でセットアップし、作成する方法を説明します。
以下の手順では、LOD を作成しますが、エピックでは前のセクションで説明した LOD Group を用いた方法を推奨しています。
- スタティックメッシュ エディタの [Details (詳細)] パネルで、[LOD Settings] セクションを展開し、[Number of LODs] オプションを探してください。
[LOD Group] には、プロジェクトに対して適切な LOD 設定を迅速に選ぶためのプリセット一覧があります。これらは、[StaticMeshLODSettings]
の BaseEngine.ini でプロジェクト毎に変更することができます。各 LOD の詳細を制御するのではなく、プロジェクトで適切なカテゴリを設定し、LOD グループを主に使用することを推奨します。
- [Number of LODs] を 4 に設定し、[Apply Changes] ボタンを押して 4 つの新規 LOD をメッシュに追加します。
[Auto Compute LOD Distances] にチェックを入れるようにしてください。このアルゴリズムでは、エッジのコラプスにより加わる視覚的差異を把握します。この情報を使ってエラーでの許容可能な距離をを決定することができます。これをオフにすると、各 LOD の画面サイズは手動で設定する必要がありますが、これはエラーにつながることがあります。
- LOD1 の隣にある小さな白い三角を押して、そのセクションを展開し、[Reduction Settings] の隣にある小さな白い三角を押します。
- [Reduction Settings] で、[Percent Triangle] セクションを探し、その値を 75 に設定します。次に [Apply Changes] ボタンを押します。
- LOD2 と LOD3 を展開します。LOD2 の Percent Triangle を 25 パーセントに、LOD3 のPercent Triangle を 12 パーセントに設定します。設定が完了すると、以下の画像のように各 LOD が使用するトライアングルの数が LOD 名の隣に表示されます。
- スタティックメッシュ エディタで、カメラをオブジェクトの近くに移動したり、オブジェクトからさらに遠ざけると LOD が変わるのがわかります。この変化がわかりづらければ、LOD の変化に関する情報が画面左側に表示されています。
スタティックメッシュに対して LOD を設定した状態で、スタティックメッシュをレベルに配置するとそれがカメラからどれくらい離れているかに応じて表示する LOD が自動的に選択されます。
最終結果
次のドキュメントでは、UE5 のLOD 自動生成の 2 種類の方法について説明します。LOD の自動ツールを使用する場合、各自のプロジェクトのニーズに合うように様々な LOD グループをまずセットアップし定義するのがベストな方法です。その後に、LOD 設定にある LOD Group のドロップダウンを使ってこうした様々な設定を選択します。