Unreal Engine では、ゲームプレイを最適化するためにスケルタルメッシュの LOD (詳細度) モデル バリアントを生成できます。このドキュメントでは、LOD 生成ツールと スケルタルメッシュ削減ツール の機能を使って LOD 生成を調整し、ディテールを維持して スケルタルメッシュ をより正確に最適化する方法について説明します。
前提条件
- プロジェクトに スケルタルメッシュ が含まれている。
- プロジェクトで Skeletal Mesh Reduction プラグインが有効になっている。
最初に、メニュー バー から [Edit (編集)] > [Project Settings (プロジェクト設定)] をクリックし、[Project Settings] ウィンドウを開きます。[Project Settings] ウィンドウ内で [Skeletal Mesh Simplification (スケルタルメッシュの簡素化)]カテゴリに移動して、Skeletal Mesh Reduction Plugin (スケルタルメッシュ削減プラグイン) プロパティが [SkeletalMeshReduction] に設定されていることを確認します。

LOD を作成する
スケルタルメッシュで LOD 生成ツールを使い、プロジェクトで使用するモデルの LOD バリアントを作成できます。
スケルタルメッシュの LOD は、外部の DCC (デジタル コンテンツ作成) ソフトウェアで作成される場合もあります。スケルタルメッシュ削減ツールは外部で作成された LOD が存在するケースでも使用可能ですが、外部ソースからインポートされた LOD の場合でも、既存の LOD は再生成された LOD によって上書きされます。
LOD を生成する
最初に、生成する LOD の適用先であるスケルタルメッシュを開きます。スケルタルメッシュ エディタ の [Asset Details (アセット詳細)] パネルで、[LOD Settings (LOD 設定)] セクションに移動します。
Number of LODs プロパティで、生成する LOD の数を定義できます。
4 つの LOD を生成すると、当該キャラクター向けの LOD は合計で 4 つになります。LOD 0 は、Unreal Engine にインポートされる最も高品質のメッシュになります。LOD 1 からは、番号が大きくなるにつれてスケルタルメッシュの品質が下がり、LOD 3 が最も品質の低いメッシュになります。
[Apply Changes (変更を適用)] をクリックして、スケルタルメッシュ向けの新しい LOD を生成します。

LODSettings ファイルの保存場所を選択するよう求められます。このファイルは、スケルタルメッシュやその関連ファイルと同じ場所に保存できます。
生成した LOD は、ビューポートの [LOD] メニュー オプションにすべて表示されます。




スケルタルメッシュの LOD
スケルタルメッシュの複雑度とお使いのハードウェアの性能に応じて、LOD の生成プロセスには時間がかかる場合があります。
LOD はいつでも変更して再生成できます。個別の LOD を変更して再生成するには、その LOD の [Reduction Settings (削減設定)] から [Regenerate LOD (LOD を再生成)] を選択します。LOD 全体を変更して再生成するには、ベース LOD (LOD 0) の [LOD Settings] で [Apply Changes] を選択します。
Unreal Engine で生成された LOD の場合は、[Asset Details] パネルのプロパティ セクションに、その LOD が再生成されたものであることを示す「[generated]」が表示されます。

スケルタルメッシュ削減ツール
Unreal Engine で LOD を生成する場合、メッシュ削減の際にメッシュの主要なディテールや重要なディテールが削除されてしまうことがあります。スケルタルメッシュ削減ツール を使用することで、LOD の生成方法をより細かく定義して、削減の効果をより制御できます。
Bones to Prioritize (優先するボーン)
個別の LOD の [Asset Details] パネルに含まれる一連のプロパティから、[Bones to Prioritize (優先するボーン)] プロパティを使って関連するスキン ジオメトリ品質を維持できます。


まず、[Asset Details] パネルの [LOD Picker (LOD ピッカー)] セクションで、[Custom (カスタム)] プロパティを有効にします。これにより、[Asset Details] パネルに各 LOD の一連のプロパティが表示されます。

次に、個別の LOD のプロパティで [LOD Info (LOD 情報)] > [Bones to Prioritize] に移動して、(+) 記号のアイコンをクリックして配列に新しい要素を追加します。

スケルタルメッシュで構造を維持するには、その構造体に含まれるそれぞれのボーンをドロップダウン メニューから選択します。各配列要素の個別のボーンを定義します。

維持する構造体のすべてのボーンを定義したら、[LOD Info] にある [Weight Of Prioritization (優先順位の重み)] プロパティを、例えば「5,000」などと非常に高い値に設定し、[Regenerate LOD (LOD を再生成)] を選択します。

次は、LOD の生成時に優先すべきボーンを定義済みのメッシュの例です。


Lock Mesh Edges (メッシュ エッジをロック)
ビジュアル関連のエラーを削減するよう LOD 生成プロセスを制御する別の方法として、[Lock Mesh Edges (メッシュ エッジをロック)] 機能を使用するやり方があります。この機能では、より多くの 三角ポリゴン を使用することのコストと引き換えに、簡素化されたメッシュの構造をその エッジ部分 で維持しようとする、配置済みのメッシュ 頂点 をロックします。このプロパティは、それぞれの頂点がメッシュから切り離されており、メッシュのエッジ部分に沿ってビジュアル関連のエラーが生じている場合に役立ちます。
[Lock Mesh Edges] プロパティを有効にするには、まず [Asset Details] パネルで LOD のプロパティを展開します。[Reduction Settings] で [Lock Mesh Edges] を有効にして、[Regenerate LOD] を選択します。

Termination Criterion (終了基準)
[Termination Criterion (終了基準)] プロパティでは、LOD 生成プロセス時に、個別の各 LOD レベルで維持するメッシュ ジオメトリの計算に使用する方法と、その量を制御できます。プロジェクトのスケルタルメッシュの LOD メッシュを生成または再生成する際は、三角ポリゴン または 頂点 の数のしきい値またはパーセンテージを指定することができます。一連の LOD または個別の LOD レベルの最適化時には、これらのしきい値が使用されます。
全般的に、特定のレンダリング コストは 三角ポリゴン数 に密接に関連しますが、スケルタルメッシュのメモリ コストはメッシュ ジオメトリの 頂点数 に関連します。
スケルタルメッシュの最高品質の LOD (LOD 0) を選択し、その [Reduction Settings] を展開します。

Termination Criterion プロパティでは、LOD 生成プロセス時にメッシュを最適化する方法を選択できます。ドロップダウン メニューから希望の最適化方法を選択します。選択した最適化方法に応じて追加のプロパティが利用可能になります。
これらのプロパティを使って LOD の生成方法を微調整して、プロジェクトのニーズに合わせることができます。完全な [Termination Criterion] のプロパティのリストとその説明については、その「プロパティ リファレンス」の「スケルタルメッシュ削減ツール」セクションを参照してください。
これらのプロパティを定義したら、[Apply Changes] をクリックしてスケルタルメッシュの一連のメッシュを生成または再生成するか、個別の LOD レベルの 終了基準 を変更している場合は [Regenerate LOD] をクリックします。
Volumetric Correction (ボリュメトリック補正)
[Volumetric Correction (ボリュメトリック補正)] では、最適化済みのスケルタルメッシュによって、そのソースとの比較時に占有される空間を制御します。これを無効にした場合 (値を「0」に設定) は、簡素化プロセスにより、丸みを帯びたサーフェスが平坦化されて収縮されます。[Volumetric Correction] プロパティを調整することで、スケルタルメッシュ LOD のボリュームを多少上げたり (値を「1」より大きく設定)、下げたり (値を「1」より低く設定) することができます。
通常は、デフォルトの設定 (「 1.0」の値) で最善の結果を得ることができます。
ボリュメトリック補正は、LOD 0 の [Reduction Settings] でアクセス可能な Volumetric Correction プロパティを使い、[Apply Changes] を選択することで、一連の LOD 全体に適用できます。

また、ボリュメトリック補正は、個別の LOD それぞれの [Reduction Settings] を使い、[Regenerate LOD] を選択することで、個別の LOD に適用することもできます。
ボーンを削減する
スケルタルメッシュの LOD で作業する際は、メッシュの削減に加えて、スケルタルメッシュの スケルトン アセット でボーンの数を削減したい場合があります。LOD 生成のワークフローとは異なり、このプロセスでは削除するボーンを手動で定義する必要があります。
目的の LOD の [LOD Info] プロパティで、[Bones to Remove (削除するボーン)] プロパティに移動します。 (+) 記号のアイコンを使って配列要素を追加し、削除したいボーンをドロップダウン メニューから選択します。

選択した LOD レベルで削除する個別のボーンそれぞれに対して、新しい配列要素を加えてボーンを定義します。

削除するボーンをそれぞれ定義したら、[Regenerate LOD] をクリックします。
スケルタル メッシュの LOD でスケルトンからボーンが削除されても、そのボーンは LOD のスケルトン ツリーに表示されたままとなりますが、それらは通常の「骨」のアイコンではなく、ドット アイコン付きで表示されます。

プロパティのリファレンス
このセクションには、スケルタル メッシュ エディタの [Asset Details] パネルで作業する際に使用できる、スケルタル メッシュ LOD に関連したプロパティのリファレンスが含まれています。

LOD Picker
LOD Picker (LOD ピッカー) プロパティ セクションでは、[Asset Deteails] パネルでアクセス可能な LOD プロパティを選択できます。
プロパティ | 説明 |
---|---|
LOD | このドロップダウンから、[Asset Details] パネルで表示する LOD プロパティを切り替えることができます。デフォルトでは、一度に 1 つの LOD プロパティだけが表示されます。 |
Custom | 有効な場合は、[Advanced (詳細設定)] プロパティ ドロップダウン メニューを使用して、表示する LOD プロパティを切り替えて、複数の LOD プロパティ セットを一度に表示するようにできます。 |
Advanced | 個別の LOD の各プロパティ セットを、[Asset Details] パネルで表示されるように切り替えます。 |
LOD Info
スケルタル メッシュに関連する各 LOD バリアントでは、次の一連のプロパティにアクセスできます。これらにアクセスするには、ビューポート で事前に個別の LOD に切り替えておくか、表示する LOD (複数可) を [LOD Picker] プロパティ セクションで選択します。
プロパティ | 説明 |
---|---|
LOD Hysteresis | この値は、LOD しきい値をまたぐときの「ちらつき」を回避するために使用されます。複雑な LOD から単純な LOD に遷移する場合にのみ考慮されます。この値を大きくすると、知覚されているヒステリシス (つまり、遅延) が増加し、大きく異なる LOD 間の遷移が滑らかになることがあります。 |
Bones to Prioritize | スケルタルメッシュ削減ツールはスケルタルメッシュの三角ポリゴン数の削減に効果的ですが、過度に削減されることがあります。最適化の対象とそうでないものをより細かく制御するために、Bones to Prioritize 配列を使用して、このリストにあるボーンにスキニングされているジオメトリが最適化されないようにします。このリストには、品質を維持するために優先順位付けされるボーンの配列が入っています。ボーンの優先順位付けの値を制御するには、後述の Weight of Prioritization (優先順位の重み) プロパティを使用します。 |
Sections to Prioritize | 上記の Bones to Prioritize と同様に、このプロパティには、品質を維持するために優先順位付けされるセクション (つまり、マテリアル スロット) の配列が入っています。後述の Weight of Prioritization プロパティを使用して、それらが優先順位付けされる値を制御します。 |
Weight of Prioritization | このリストには、Bones to Prioritize プロパティおよび Sections to Prioritize プロパティがどの程度考慮されるかを決定する値が入っています。このウェイトは頂点単純化の追加ペナルティであり、0 はペナルティがないことを表します。この値を大きくすると、リストに入っているボーンやセクションに対する優先順位のウェイトが増加し、この値を小さくすると、優先順位のウェイトが減少します。 |
Source Import Filename | このリストには、ベース メッシュの FBX ファイルおよび関連付けられている個別のカスタム LOD のソース ファイルが置かれている、ソース ファイル ディレクトリが入っています。 |
Skin Cashe Usage | このドロップダウン メニューでは、スキン キャッシュ機能が使用されているときの LOD の動作を設定します。以下の選択肢があります。
このメッシュで Support Ray Tracing プロパティが有効になっていれば、これはデフォルトで Enabled になっています。 |
Morph Target Position Error Tolerance | このプロパティ値はミクロン単位で表示されます。この値が大きいほど、圧縮率が高くなり、メモリ使用量は少なくなりますが、品質も低下します。 |
Bake Bose | ポーズにベイクするアニメーションの単一フレームを選択します。これは、自動 LOD 生成によって、より低い LOD でボーンが取り除かれているが、取り除かれているより細かいディテールを保持したい場合に便利です。詳細については、「ポーズ アセット」ページを参照してください。 |
Bake Pose Override | Bake Pose プロパティをオーバーライドします。一部の LOD 設定が使用されていれば、ソースの Bake Pose を無効にすることができます。詳細については、「ポーズ アセット」ページを参照してください。 |
Bones to Remove | この LOD レベルでスケルトンから削除されるボーンの配列。 |
スケルタル メッシュ削減ツール
このセクションには、スケルタル メッシュ削減ツールの一連のプロパティとその説明が含まれています。これらのプロパティを使って、スケルタル メッシュの LOD 生成プロセスをカスタマイズできます。
プロパティ | 説明 |
---|---|
Termination Criterion | スケルタルメッシュ削減ツールの Termination Criterion オプションを使用すると、LOD 生成での単純化でスケルタルメッシュ アセットが削減される方法を変更できます。たとえば、三角ポリゴンではなく頂点の数 (またはパーセンテージ) を指定して、メモリまたはパフォーマンスの目標により適合するように制御することができます。 削減手法として以下の選択肢があります。
どの Termination Criterion が選択されているかに応じて、以下のオプションは選択項目に関連するプロパティに動的に変わります。 |
Percent of Triangles | このプロパティは、新しい LOD でソース メッシュの単純化を生成するための三角ポリゴンのターゲット パーセンテージ値です。 |
Percent of Vertices | このプロパティは、新しい LOD でソース メッシュの単純化を生成するための頂点のターゲット パーセンテージ値です。 |
Max Triangles Count | パーセンテージでの基準を使用する場合に保持する三角ポリゴンの最大数。自動生成を制限するための最大値。 |
Max Vertices Count | パーセンテージでの基準を使用する場合に保持する頂点の最大数。自動生成を制限するための最大値。 |
Max Triangles Count | Max Triangle の基準を使用する場合に保持する三角ポリゴンの最大数。 |
Max Vertex Count | Max Vertices の基準を使用するときに保持する頂点の最大数。 |
Remap Morph Targets | モーフ ターゲットをベース LOD から、削減済みの選択 LOD に再マッピングします。 |
Max Bone Influence | 各頂点に割り当て可能なボーンの最大数。 |
Enforce Bone Boundaries | 有効であれば、異なるメジャー ボーンがアタッチされている頂点間でのエッジ コラプスにペナルティが適用されます。これは舌などのつながったセグメントに役立ちますが、極度に単純化すると望ましくない結果になることがあります。 |
Merge Coincident Vertices Bones | 有効であれば、同じ位置 (UV 境界など) のボーン ウェイトが常に同じになります。これを有効にすると、キャラクターがアニメートされるときに生じるボーンのマージ エラーが修正されます。 |
Volumetric Correction | この LOD レベルでのボリュメトリック補正の実装を決定するスライダー。デフォルト値の 1 であれば、ボリュームの保持が試行されます。1 より小さい値であれば、カーブしたサーフェスが平坦化されてボリュームが失われ、1 より大きい値であれば、カーブしたサーフェスが強調されます。 |
Lock Mesh Edges | 有効であれば、1 つの場所にある複数の頂点をロックすることによって、メッシュのサーフェスにあるカットが保持されます。単純化されたメッシュのエッジ部分の品質は向上しますが、使用される三角ポリゴン数が増えます。 |
Lock Vertex Color Boundaries | 有効であれば、2 つの頂点カラーをつないでいるエッジがロックされます。単純化されたメッシュのエッジ部分の品質は向上しますが、使用される三角ポリゴン数が増えます。 |
Regenerate | これをクリックすると、前述の削減ツールのプロパティが適用されて、現在の LOD が再生成されます。 |
コンソール コマンド
以下は、スケルタル メッシュ LOD での作業時に使用できる便利なコンソール コマンドのリファレンスです。
コマンド | 説明 |
---|---|
FORCESKELLOD LOD=X | 割り当てられた LOD レベルでスケルタル メッシュを強制的にレンダリングします。X はスケルタル メッシュで利用可能な LOD の番号です。 |
a.VizualizeLODs | ランタイム時に LOD を描画します。 |