#memo

indiedev太郎

Static, SkeletalMeshのLODManagement

UE4 4.16.1


LODManagementとは

StaticMesh、SkeletalMeshEditorでLODを管理する機能、LOD設定、LODImport、LOD自動生成などの機能がある
基本的にStaticMesh、SkeletalMesh共に同じであるが、Simplygonを導入しないとSkeletalMeshEditorでLOD自動生成を行うことが出来ない


LODImport

LODを追加するには、既に生成してあるメッシュを個別にImportする方法と、自動でReductionしたものを生成する二通りあり、前者です

https://i.gyazo.com/3900e6659220cfe14b5480caf456091c.png

LODSettings内より、新たなLOD階層をImport、既存のLODをReimportが可能


FBXからLOD一括Import

こちらにまとめました


LOD自動生成

わざわざLODメッシュを用意してImportせずに、自動でReductionを行いLODを追加する機能、4.14以降StaticMeshのみUE4単体でも使えるようになったが、SkeletalMeshでこの機能を使うためにはSimplygonをインストールする必要がある

https://i.gyazo.com/1832f5a8433074e47650ea230e95094d.png

LODSettings内のNumber of LODsスライダを設定し、Apply Changesをクリックすることで、自動でLODメッシュが生成され設定される
Simplygonを導入していないSkeletalMeshではこのスライダがグレーアウトしており、そもそも操作することができなくなっている


LODGroup

事前定義されたLOD設定のプリセットが幾つか用意されており、これを選択すると、LOD自動生成の部分までがまとめて行われる、StaticMeshEditorのみ存在している
Engine.iniファイルのStaticMeshLODSettingsセクションを書くことで自分で定義できるそうです


LOD設定

https://i.gyazo.com/0ec2cf5600717f2b9bb0e3c7ffaf9569.png
Import,自動生成したLOD毎にLOD設定を行うことが出来る、
設定といってもゲームに影響する部分はScreenSizeのみで、ReductionSettingsのパラメーターは自動生成時の引数となっている

ScreenSizeはデフォルトだと自動で設定されるようになっていてグレーアウトしているので、自分で定義したい場合は、LodSettings内よりAutoComputeLODDistancesのチェックを外す

https://i.gyazo.com/50102ba4ef4208bce90081dd2664a3e1.png

MeshのLODはScreenSizeを閾値として偏移するようになっていて、このScreenSizeというものはMeshEditor内Viewport左上のHUDで確認することが出来る

https://i.gyazo.com/5b2b91a8dd5f8d7a3b05bed613f8e0a4.png

また、MeshEditorツールバーより、LODの固定表示、自動切り替えの設定ができ、偏移具合、個別のLODを確認できるようになっている

https://i.gyazo.com/fcce866034b810d59dc2afeae4f6a54e.png


アクター個別のLOD設定

WorldOutlinerから、配置されたActorを選択することにより、個別にLODの設定を行うことが出来る

https://i.gyazo.com/d6f4611e0c53fd364009e7867b889193.png

Detailタブ > Rendering > LOD内より、LODの強制固定、最低LODの上書きなどが設定可能


LODのデバッグ表示

https://i.gyazo.com/8fd1b9b20d46e56c218df0f199963a4d.png

LevelEditorViewport > ViewModeにてMeshLODsを選択することで、現在のLODが色によって確認することが可能

なし LOD0
LOD1
LOD2
LOD3
LOD4
ピンク LOD5
水色 LOD6
LOD7