Choose your operating system:
Windows
macOS
Linux
Unreal Engine リリース 4.22 では、Simplygon のサポートは非推奨となりました。今後サポート対象ではなくなります。引き続き Simplygon を更新することは可能ですが、エンジンへの統合はご自身で対応しなければなりません。弊社独自の解決方法については、「 スケルタルメッシュの簡素化 」を参照してください。
このページでは、Unreal Engine 4 で スタティックメッシュ のLOD を作成する Simplygon 機能の使用方法を説明します。Simplygon のライセンスをお持ちでない場合は、標準の FBX パイプラインにスタティックメッシュの LOD (Level of Detail、詳細度)をインポートする方法があります。詳細は「 FBX スタティックメッシュ パイプライン 」を参照してください。
スタティックメッシュ パイプラインは、プリセットを作成し LOD のチェーン一式を自動生成する能力をコア機能として提供します。この機能を使用してアーティストはメッシュを作成し、そのメッシュをインポートし、距離に応じてレンダリングできるように最適化されたバージョンが作成され、アーティスト側の追加作業なしにレンダリングのパフォーマンスを高められるようにします。
主な機能は以下の通りです。
-
LOD のデフォルト設定、ライトマップ解像度を定義しグローバルなオーバーライドを許可する LOD グループ (全ての SmallProp LOD を 10% 減など)。インポート時に LOD グループを選択でき、スタティックメッシュ エディタ内で好きな時に変更することができます。
-
プラットフォームあるいはデバイスごとに LOD グループ設定の定義およびオーバーライドを行います。
-
法線とタンジェントは常に FBX からインポートされます。インポートした法線/タンジェントを使用するか、または Unreal に再計算させるかをいつでも選択することができます。
-
LOD の設定および調整に関するワークフローは スタティックメッシュ エディタ をご覧ください。
-
Simplygon を用いた LOD の自動生成
LOD の管理
スタティックメッシュ エディタ の [Level of Detail (LOD)] パネルにより、 LOD グループ 、またはメッシュごとか LOD ベース別かのいずれかの形で、設定したルールに基づいた LOD メッシュのチェーン一式の管理と生成を可能にします。
LOD の生成
自動 LOD 生成では、
LOD Group の適用方法
-
LOD 設定 で使用する LOD グループ を選択します。
-
[Apply] ボタンを押して LOD メッシュを新規作成します。
カスタム LOD チェーンの生成方法
-
LOD 設定 で生成する LOD メッシュの数を選択します。
LOD グループ を開始点として使用するために選択し、後でその設定を変更することもできます。
-
削減の設定 を生成するそれぞれの LOD メッシュに対して設定します。
-
ボタンを押して LOD メッシュを新規作成します。
LOD のプレビュー
LOD メッシュはツールバーのコントロールを使用してプレビューすることができます。
LOD 設定
設定 |
説明 |
---|---|
LOD グループ |
メッシュに対して使用する LOD グループ を指定します。 |
LOD 数 |
メッシュに使う LOD の数を設定します。この値が変更されると LOD のリストが更新されますが、 ボタンが押されるまでは実際の変更は行われません。 |
Auto compute LOD Distance |
有効な場合、LOD 間で遷移が生じる距離を判定するためにシンプルな誤差量を使用します。そうでなければ、いつ LOD の遷移が生じるかを判定するために、各 LOD に Distance プロパティを使用します。 |
LOD Distance Error |
自動演算を使用している場合、 LOD 間で生じる遷移の距離をスケーリングします。 |
ビルド設定
設定 |
説明 |
---|---|
Recompute Normals |
有効な場合、スムージング グループがアンリアルにより再計算されます。そうでなければ、 FBX ファイルからのスムージング グループが保持されます。 |
Recompute Tangents |
有効な場合、タンジェントがアンリアルにより再計算されます。そうでなければ、FBX ファイルからのタンジェントが保持されます。 |
Remove Degenerates |
有効になると、インポート中に見つかった縮退三角形が削除されます。このオプションを無効にすると、縮退三角形を検索し続けます。一般的に、このオプションは有効にします。 |
Use Full Precision UVs |
有効な場合、メッシュの UV は 16 ビットではなく 32 ビット浮動小数点型で保存されます。 |
削減の設定
設定 |
説明 |
---|---|
Percent Triangles |
指定されたトライアングル数と同じになるまで、エディタはメッシュを簡略化します。 |
Max Deviation |
対バウンディング球比でのベースメッシュからの最大誤差量です。エディタは、メッシュの誤差量を計算するために、望ましいクオリティの値を使用します。この誤差量は、新規メッシュのサーフェスがソース メッシュのサーフェスからかけ離れすぎないようにツールがメッシュを簡略化するためのものです。この手法の利点は、任意のトライアングル制限数で止まることなく、ソースとなるメッシュからある程度の誤差範囲内で、ツールがメッシュを自動的に最適化できるという点です。 |
Silhouette |
メッシュのシルエットがどのくらい重要であるかを指定します。 Off (オフ) 、 Lowest (低い) 、 Low (低め) 、 Normal (通常) 、 High (高め) 、 Highest (高い) から選択します。より高い設定値を選択すると、単純化において、メッシュのジオメトリ形状がよりよく保存されますが、トライアングル数が多くなります。 |
Texture |
テクスチャの密度がどのくらい重要であるかを指定します。 Off (オフ) 、 Lowest (低い) 、 Low (低め) 、 Normal (通常) 、 High (高め) 、 Highest (高い) から選択します。より高い設定値を選択すると、単純化において、テクスチャの引き伸ばされたアーティファクトを避けることができますが、トライアングル数が多くなります。 |
Shading |
シェーディング クオリティの重要度を設定します。 Off (オフ) 、 Lowest (低い) 、 Low (低め) 、 Normal (通常) 、 High (高め) 、 Highest (高い) から選択します。より高い設定値を選択すると、単純化において、シェーディングのクオリティをより高く維持することができますが、トライアングル数が多くなります。 |
Welding Threshold |
この距離内にある頂点がお互いに自動結合されます。小さな面を取り除くのに便利です。大きな値を使用すると望ましくない結果になります。 |
Hard Edge Angle Threshold |
面間の角度がこの値より大きいと面間にハードエッジが生じます。角度が小さければソフトエッジが作成されます。 |
LOD グループ
LOD グループは、デフォルトの LOD 設定とスタティックメッシュをグローバルに変更するオプションを定義します。
グループは 「Engine.ini」ファイルの [StaticMeshLODSettings] セクションで定義されます。例:
[StaticMeshLODSettings]
LevelArchitecture=(NumLODs=4,LightMapResolution=32,LODPercentTriangles=0.5,SilhouetteImportance=4)
SmallProp=(NumLODs=4,LODPercentTriangles=0.5)
LargeProp=(NumLODs=4,LODPercentTriangles=0.5)
Vista=(NumLODs=1)
Foliage=(NumLODs=1)
上記の設定により以下の 5 つの LOD グループが定義されます。
-
LevelArchitecture
-
SmallProp
-
LargeProp
-
Vista
-
Foliage.
LOD グループはコード変更せずに INI を編集するだけで追加と削除ができます。追加された LOD グループは、エディタ UI に自動的に表示されます。削除されたグループのメッシュは、コードによって決まるデフォルト設定を使用します。これらのデフォルト設定もまた、 None LOD group と定義することで INI の中でオーバーライドすることができます。
グループのデフォルトの設定
以下の設定で、各グループのデフォルトを定義します。これらの設定はメッシュがインポートされているか、またはメッシュの LOD グループが変更された時のみ適用されます。
設定 |
説明 |
---|---|
NumLODs |
生成する LOD のデフォルト数です。値の範囲は 1~4 でなければなりません。 |
LightMapResolution |
使用するライトマップ解像度です。 |
BasePercentTriangles |
ベース LOD 0.0-1.0 で保つトライアングルのパーセンテージです。 |
LODPercentTriangles |
各 LOD を下げるためのトライアングルのパーセンテージです。例えば、4 つの LOD を持つメッシュに対してこの値が 0.5 に設定されている場合、 LOD0 が 5000 トライアングル、残りの 3 つの LOD はそれぞれ 2500、1250、625 のトライアングルを持ちます。 |
MaxDeviation |
ローカル空間のベース LOD と LOD のサーフェスとの最大距離です。 |
WeldingThreshold |
2 つの頂点の距離がこの値より小さい場合、それらは結合されます。 |
HardAngleThreshold |
2 つのトライアングル間の角度がこの値 (角度) より大きい場合、この 2 つのトライアングル間のエッジはスムーズではなくなります。 |
SilhouetteImportance |
高めの値を設定すると、 LOD 作成時にオブジェクトのシルエットを維持しようとします。 |
TextureImportance |
高めの値を設定すると、 LOD 作成時にテクスチャの引き伸ばしを防ごうとします。 |
ShadingImportance |
高めの値を設定すると、 LOD 作成時に法線の変更を最小限に抑えようとします。 |
グループのグロバール設定
グループ内の全てのメッシュを変更するためには、以下の設定を使います。この設定は新規と既存の両方のメッシュに影響を与えます。
設定 |
説明 |
---|---|
BasePercentTrianglesMult |
ベース LOD を更に減らします。例えば、 0.9 に設定した場合、グループ内の全てのメッシュのベース LOD はトライアングル数を 10% 減らします。 |
LODPercentTrianglesMult |
各 LOD のトライアングル数をさらに減らします。BasePercentTrianglesMult と似ていますが、ベース LOD には適用しません。 |
MaxDeviationBias |
全てのメッシュに対して削減中に使用される最大誤差量 (max deviation) を調整します。 |
WeldingThreshold |
全てのメッシュに対して削減中使用される結合閾値 (welding threshold) を調整します。 |
HardAngleThreshold |
全てのメッシュに対して削減中使用されるハードアングル閾値 (hard angle threshold) を調整します。 |
SilhouetteImportance |
全てのメッシュに対して削減中使用されるシルエットの重要性 (silhouette importance) を調整します。 |
TextureImportance |
全てのメッシュに対して削減中使用されるテクスチャの重要性 (texture importance) を調整します。 |
ShadingImportance |
全てのメッシュに対して削減中使用されるシェーディングの重要性 (shading importance) を調整します。 |
UE4 での Simplygon
「Simplygon」は、ゲームに適した LOD モデルを自動的に生成するために使用されます。これは、一定のオンスクリーンサイズにおいて、 LOD のクオリティを下げることなく可能な限り多くの情報を削除することによって実現されます。「Simplygon」では、幾何学上の LOD の完全性と LOD 切り替えのビジュアル上のクオリティを保持する独自のメッシュ削減メソッドを使用しているため、最上級のゲーム内でそのまま使用できる AutoLOD (自動 LOD) が作成されます。
Unreal Engine 4 は、「Simplygon」を利用することによって、Unreal Editor から出ることなく、ハイクオリティなメッシュ削減を実現しています。開発者は、素早くメッシュを単純化し、 LOD を生成すると、ただちにマップ内でその結果を見ることができます。