SlideShare a Scribd company logo
1 of 173
Download to read offline
UE4勉強会 in 大阪
LODs for Optimization -Beginner-
LODs for Optimization -Beginner-
Slideshare対応ダミー
自己紹介
● Twitter: com04
● ゲームプログラマー
● 最近はマテリアル演出とシーケンサー
● 横浜×酒×UE4
3
自己紹介
● マーケットプレイスに出品しました
− ComMaterialTools
● https://www.unrealengine.com/marketplace/commaterialtools
● マテリアル検索の便利ツール
● 過去スライド
− https://www.slideshare.net/com044/presentations
● [第1回] エンジン改造ってどうなの?
● [第2回] マテリアル基礎・初級
● [第4回] UE4でのチーム製作
● [第5回] アニメーションBP基礎
● [第6回] もっとアニメーションBP
● [プログラマー向け] エンジンの内部挙動について
4
はじめに
スライド枚数多いですが、操作方法を説明している分が多
いです
大まかに機能の概要だけ把握しておいて、実際に適用す
る際にリファレンスとしてください。。。
● What’s LOD? [link]
● LODを使うにあたって諸注意 [link]
● Static Mesh [link]
● Skeletal Mesh [link]
● Animation [link]
● Cascade [link]
● HLOD [link]
● Impostor [link]
● さいごに [link]
もくじ
version: UE4.20.0
もくじ
● What’s LOD?
● LODを使うにあたって諸注意
● Static Mesh
● Skeletal Mesh
● Animation
● Cascade
● HLOD
● Impostor
● さいごに
What’s LOD?
LOD の作成と使用
http://api.unrealengine.com/JPN/Engine/Content/Types/StaticMeshes/HowTo/LODs/
プレイヤーがレベルに配置したスタティックメッシュの間近にきたら、メッシュが非常に詳細に見えるようにしたいことでしょう。しか
し、プレイヤーがメッシュから遠く離れたらメッシュを非常に詳細、複雑に表示する必要はありません。画面上でわずかなピクセ
ルしか使わず、プレイヤーからほとんど見えない場合は、複雑で詳細なメッシュを持つ意味はありません。しかし、プレイヤーが
メッシュの間近にきてはっきりとメッシュを見ることができるようになった場合は、メッシュを詳細化する必要があります。UE4 で
は、レベルのパフォーマンスを高めるために、メッシュをレベルに配置し、プレイヤーがメッシュから遠くに離れると複雑度が低い
メッシュに切り替わるようにすることができます。これは、Level of Details (詳細度) すなわち LOD を使用して行うことができま
す。この操作ガイドでは、メッシュの詳細度が低いバージョンを UE4 にインポートし、プレイヤーが近くに来たり、離れたりするに
つれてあるメッシュから他のメッシュにシームレスに切り替わるようにします。
What’s LOD?
LOD = Level of Detail
What’s LOD?
ディティールを減らして処理速度を速くする
● ディティール
○ →頂点数、ポリゴン数、テクスチャ枚数、ボーン数、パーティクル
枚数……
■ ディティールを減らす=リッチさが無くなる
■ ディティールを減らす=処理数が少なくなる=処理速度が速くなる
What’s LOD?
画面に大きく描画されているモデルはディティールを上げ
て綺麗に。
その分、処理速度/描画速度は重い。
What’s LOD?
画面に小さく描画されているモデルはディティールを下げ
る。
その分、処理速度/描画速度を軽く。
● 画面に小さいと、細かいディティールは見えない。
● 小物なのでプレイヤーもそこまで注視しない
もくじ
● What’s LOD?
● LODを使うにあたって諸注意
● Static Mesh
● Skeletal Mesh
● Animation
● Cascade
● HLOD
● Impostor
● さいごに
LODを使うにあたって諸注意
何にでもLODを入れればいいという訳ではない。
LODにも欠点がある。
LODを使うにあたって諸注意
LODを入れるという事
● 違うモデルを持つ事になるので、メモリの使用量が増え
る
● LODモデルを作成、調整する事による工数の増加
LODを使うにあたって諸注意
→LODが必要なのか?
LODを使うにあたって諸注意
LODが必要なのか?
● プレイヤーが操作するキャラクターモデル
● カットシーン用モデル
など、注視されやすいモデルはプレイヤーからディティール
が見えやすいのでLODを入れにくい
LODを使うにあたって諸注意
LODが必要なのか?
● 敵
● 背景モデル
は画面上で小さくなりやすい(=細かいディティールが見え
なくなる)のでLODを仕込む。
 →その前に、低ディティールのモデルだけで事足りない
か
LODを使うにあたって諸注意
LODが必要なのか?
● そもそも処理負荷 / 描画負荷の問題はLODを作成する
事で解消されるのか?
○ =重いのはどこ?
○ モデルLODはGPU頂点処理が重ければ有効
○ マテリアル/エフェクトLODはGPUピクセル処理が重ければ有
効
○ Animation, Bone等の計算系のLODはCPU負荷の軽減
■ (とはいえ描画passの何処が重いかでも変わってくるので一概には言えない ……)
LODを使うにあたって諸注意
プロファイリングをしよう!
● どこが問題になっているのかを調べる
● 効果がない所を延々と作業するのを避ける
○ (プロファイリング無しに 1週間作業して効果がない事も ……)
LODを使うにあたって諸注意
今回の本題では無いので、Epic Games Japan篠山さん
の非常に参考になる資料
● [CEDEC2017] UE4プロファイリングツール総おさらい
(グラフィクス編)
○ https://www.slideshare.net/EpicGamesJapan/cedec2017-ue4
LODを使うにあたって諸注意
更にWinter Crown Works 梶井 祐さんの非常に参考にな
る資料
● ゲーム開発におけるグラフィックス最適化セミナー
○ https://docs.google.com/presentation/d/1f7dJu60Sy2KQgebX1Eju2TMI
ig1mqBAoymdaUsFMsrM
LODを使うにあたって諸注意
とはいえ、いきなりアーティストだけでプロファイリングは大
変。
なので、プロファイリング出来るエンジニア班とチェック方法
のワークフロー確立を!
(プロファイリング勉強会もやりたいネ!)
もくじ
● What’s LOD?
● LODを使うにあたって諸注意
● Static Mesh
● Skeletal Mesh
● Animation
● Cascade
● HLOD
● Impostor
● さいごに
Static Mesh
LOD生成
Static Mesh - LOD生成
Static MeshのLODモデルはUE4内で生成できる
Static Mesh - LOD生成
スタティックメッシュエディタの「LOD設定」欄
Static Mesh - LOD生成
● 「LODグループ」の設定をメッシュの種類に変更
● 「LOD数」に段階数を設定
● 「変更を適用」を
押すと生成される
Static Mesh - LOD生成
ViewのLODパネルでLODを確認できる。
「LOD Auto」は設定された
距離で切り替わっていく。
Static Mesh - LOD生成
LOD 0 (30,459頂点) LOD 3 (4,536頂点)
Static Mesh - LOD生成
LOD 0 (30,459頂点) LOD 3 (4,536頂点)
Static Mesh - LOD生成
LODグループ
● /Engine/Config/BaseEngine.ini
○ [StaticMeshLODSettings] に設定がある
● LOD数やリダクション具合のプリセット
● 「None」にして生成すると
リダクション設定で
手入力する必要がある
Static Mesh - LOD生成
リダクション設定
● ViewでLODレベルを指定すると、
詳細欄に設定パネルが出る
○ LODレベル毎に個別指定できる
Static Mesh - LOD生成
リダクション設定
● 「トライアングルの割合」で
頂点/トライアングルのリダクション
具合を指定できる
○ 数値を下げると頂点数/トライアング
ル数が減る
Static Mesh - LOD生成
トライアングルの割合12.5
6,949トライアングル、4,356頂点
トライアングルの割合2.0
1,110トライアングル、905頂点
Static Mesh - LOD生成
LOD Pickerパネルの「カスタム」にチェックを入れると、全
LODのパネルを表示できる
Static Mesh
LODインポート
Static Mesh - LODインポート
外部で編集したモデルデータ(FBX)をLODモデルとしてイ
ンポートする事もできる
Static Mesh - LODインポート
「LODのインポート」でインポートしたいレベルを選択する
Static Mesh - LODインポート
ファイルブラウザが出てくるので、FBXファイルを指定する
と適用できる
Static Mesh
LOD切り替わり距離
Static Mesh - LOD切り替わり距離
LODが切り替わる距離を調整する
● デフォルト設定よりも近くからLODレベルを上げて(=
ディティールを下げる)描画速度を優先させる時とか
● 逆にディティールが下がり過ぎるので距離を遠目に設
定する時とか
Static Mesh - LOD切り替わり距離
LOD設定パネルで「LOD距離を自動計算」をOFFにする
● ONだといい感じに自動で計算してくれる
Static Mesh - LOD切り替わり距離
各LODレベルのパネルにある「スクリーンサイズ」を変更す
る。
● 数値はメッシュの
スクリーン上でのサイズ
○ 大きくすると、カメラに
近い段階で切り替わる
○ 小さくすると、遠くで
切り替わる
■ LODレベルが上がるにつれ、
数値は小さくなっていく
Static Mesh - LOD切り替わり距離
現在表示しているLODレベル、スクリーンサイズはViewで
確認できる
Static Mesh - LOD切り替わり距離
プラットフォーム毎で設定を切り替える事ができる
● PCとモバイル両方にリリースする際に、モバイルだけ
LODを強くかけるとか
Static Mesh - LOD切り替わり距離
プラットフォーム毎の調整は「スクリーンサイズ」の値右横
にある▼から追加できる。
● それぞれのプラットフォーム毎に個別のスクリーンサイ
ズを指定できる。
Static Mesh - LOD切り替わり距離
BPの設定欄から個別に指定も出来る
● Forced Lod Model
○ 「0」は距離で自動切り替え
○ 「1」以上でLODモデルを固定
■ 距離でLODが変わらなくなる
■ (Force Lod Model - 1)のLODが使用される
■ カットシーン等でLODを固定したい時とか
Static Mesh - LOD切り替わり距離
BPの設定欄から個別に指定も出来る
● Override Min LOD / Min LOD
○ 最小LODを指定する
■ 指定した数値未満のLODが出てこない
● 1に指定すると、LODレベル0が出ない
■ AのシーンだとカメラにアップになるからLOD
レベル0で出したい
■ けど、Bのシーンは一杯出るからLODレベル
2からにしたい。時とか。
Static Mesh
マテリアルLOD
Static Mesh - マテリアルLOD
マテリアルをLODする
● 遠い時に計算を簡略化、法線マップを外す等して描画
最適化
○ GPUの負荷が下がる
● ただ、違うマテリアルを設定するとマテリアルスイッチの
コストが掛かってしまう事も注意
○ 同一マテリアルで別マテリアルインスタンスなら大丈夫 ……かも……
■ ややこしいね!どこがボトルネックで解消できるのかプロファイル取ろう!
Static Mesh - マテリアルLOD
メッシュエディタを開いて、「マテリアルスロット」の右側にあ
る「+」ボタンを押してスロットを追加する
Static Mesh - マテリアルLOD
追加されたスロットにリダクションしたマテリアルを設定
Static Mesh - マテリアルLOD
LOD欄の「セクション」項目の中にメッシュのマテリアルリス
トがある
● そこから差し替えたいマテリアルの「マテリアルスロット」
コンボボックスから先程のマテリアルを選択する
Static Mesh - マテリアルLOD
これでそのLODが出る時は、変更したマテリアルで表示さ
れる
● 下図では右だけ法線マップ外してみた
Static Mesh - マテリアルLOD
他にも「シャドウを落とす」オプションもLODのマテリアル毎
に設定できる
● 遠くにいったら影が見えにくいので、いっそ消して負荷
を下げる
Static Mesh
LODの補間
Static Mesh - LODの補間
LODそのままだと切り替えタイミングがパツッと切り替わ
り、モデルデータが差し替わるタイミングが気になってしま
う
LOD 0 LOD 1
Static Mesh - LODの補間
LODが切り替わるタイミングで、ディザで補間して切り替え
る方法がある
LOD 0 LOD 1
Static Mesh - LODの補間
ディザ補間したいマテリアルを開き、詳細欄の
「Dithered LOD Transition」を
ONにする
Static Mesh - LODの補間
これだけでLODの切り替え部分をディザで補間してくれる
● 動画
○ https://twitter.com/com04/status/1020688434120179718
Static Mesh - 参考
参考
● LOD の自動生成をセットアップする
○ http://api.unrealengine.com/JPN/Engine/Content/Types/StaticMeshes/
HowTo/AutomaticLODGeneration/index.html
○ https://docs.unrealengine.com/en-us/Engine/Content/Types/StaticMes
hes/HowTo/AutomaticLODGeneration
● Per - Platform LOD Screen Size
○ https://docs.unrealengine.com/en-us/Editor/Content/Types/StaticMesh
es/HowTo/PerPlatformLODScreenSize
もくじ
● What’s LOD?
● LODを使うにあたって諸注意
● Static Mesh
● Skeletal Mesh
● Animation
● Cascade
● HLOD
● Impostor
● さいごに
Skeletal Mesh
LODインポート
Skeletal Mesh - LODインポート
Skeletal MeshはUE4内でLODモデルを生成出来ないの
で、外部ツールでLODモデルを作成してインポートする。
基本的な設定はStatic Meshと一緒。
※Simpolygon使うと出来るらしい
(触った事ないので噂)
Skeletal Mesh - LODインポート
Skeletal Meshエディターで、外部で作成したモデルデータ
をインポートする
Skeletal Mesh - LODインポート
「アセット詳細」タブの「LOD設定」パネルから
「LODのインポート」
Skeletal Mesh - LODインポート
LOD距離のスクリーンサイズ周りは
Static Meshと一緒
Skeletal Mesh
ボーンLOD
Skeletal Mesh - ボーンLOD
Skeletal Meshはボーン計算をLODで減らす事ができる
● ボーンの計算を省いてCPUを最適化できる
Skeletal Mesh - ボーンLOD
LODレベルのパネル内の
「Bones to Remove」項目。
● このLODレベルでアニメーション
計算を省きたいボーンを指定す
る
Skeletal Mesh - ボーンLOD
もしくはスケルトンツリーで省きたいボーンを右クリック
Skeletal Mesh - ボーンLOD
こんな形でLODによって計算を省く事が出来る
Skeletal Mesh - ボーンLOD
場所によっては目立ってしまうので、
● 目立ちにくい場所
○ 指のボーンとか
○ 服の布の中間ボーンとか
● 目立ちにくいLOD距離
を考慮する必要がある
Skeletal Mesh - 参考
参考
● FBX スケルタルメッシュ パイプライン - スケルタルメッシュ
のLOD
○ http://api.unrealengine.com/latest/JPN/Engine/Content/FBX/SkeletalMesh
es/index.html#スケルタルメッシュのLOD
○ https://docs.unrealengine.com/en-US/Engine/Content/FBX/SkeletalMeshe
s#skeletalmeshlods
もくじ
● What’s LOD?
● LODを使うにあたって諸注意
● Static Mesh
● Skeletal Mesh
● Animation
● Cascade
● HLOD
● Impostor
● さいごに
Animation
アニメーション通知
Animation - アニメーション通知
アニメーション通知はLODレベルで使用ON/OFFを切り替
える事ができる
Animation - アニメーション通知
通知をクリックして「詳細」タブ
● 「Notify Filter Type」を「LOD」にする
事で使用できる
● 「Notify Filter LOD」
以下のLODレベル表示の
場合に通知を行わなくなる
Animation - アニメーション通知
Notify Filter LODを「1」にした場合。LOD 1の表示では通
知が来なくてパーティクルが出なくなっている
Animation - アニメーション通知
この機能でアニメーションに関連する通知をLODでOFFし
て、パーティクル、サウンド、BP等を除外して最適化できる
● LOD高い(=遠い)キャラは足接地の煙/音を消すなど
● BP処理の間引き
Animation
アニムグラフのノード
Animation - アニムグラフのノード
アニメーションBP内のアニムグラフの一部ノードにもLOD
設定があります
● ボーン毎のレイヤードブレンド
● アニム ダイナミクス
● Aim Offset
● 加算
など
Animation - アニムグラフのノード
ノードを選択して詳細ウィンドウで「LOD Threshold」
● -1: LODしない
● 0以上: この数値以上のLODレベルで処理しない
もくじ
● What’s LOD?
● LODを使うにあたって諸注意
● Static Mesh
● Skeletal Mesh
● Animation
● Cascade
● HLOD
● Impostor
● さいごに
Cascade
LODレベル毎の表示設定
Cascade - LODレベル毎の表示設定
パーティクルを扱うCascadeにもLODが設定できる
Cascade - LODレベル毎の表示設定
ツールバーでLODの編集の操作
● ⇩系は低い、カメラに近い方のLODを作る
● ⇧系は高い、カメラから遠い方のLODを作る
Cascade - LODレベル毎の表示設定
LODを追加すると、真ん中の「LOD:」の数値が0より大きい
数値を指定できるようになる。
この数値で、今から編集するLODレベルを指定する
Cascade - LODレベル毎の表示設定
例えば、遠くに行くと見えないから[LOD:1]からは塵を消し
たい
Cascade - LODレベル毎の表示設定
1. 操作するLODを1にして
2. 該当のエミッタを非表示に
Cascade - LODレベル毎の表示設定
再生すると先程のエミッタは消えてる
Cascade - LODレベル毎の表示設定
[LOD:0] に戻すと、ちゃんと塵は出ている
Cascade - LODレベル毎の表示設定
[LOD:0] 以外だと表示/非表示以外のパラメーターは操作
できない
LODレベル毎に違う動き方とかは設定できない
Cascade
おまけ:スケーラビリティ対応
Cascade - スケーラビリティ対応
「エフェクト」項目に対応する。
「低」の時に消したいエミッ
ターの設定など。
● PCやモバイルのスペック、
性能が厳しいハードで
切り替えなど
Cascade - スケーラビリティ対応
Cascadeでエミッタを選択。
詳細タブの「Detail Mode BitMask」で各スケーラビリティで
表示するかの設定。
● チェックを外すと、
そのスケーラビリティで
表示しなくなる
Cascade - 参考
参考
● パーティクル システムの詳細度 (LOD)
○ http://api.unrealengine.com/JPN/Engine/Rendering/ParticleSystems/L
ODs/
○ https://docs.unrealengine.com/en-us/Engine/Rendering/ParticleSystem
s/LODs
● パーティクルのLODについて - ゲームエフェクトデザイ
ナーのブログ (新)
○ http://effect.hatenablog.com/entry/2016/07/31/021349
もくじ
● What’s LOD?
● LODを使うにあたって諸注意
● Static Mesh
● Skeletal Mesh
● Animation
● Cascade
● HLOD
● Impostor
● さいごに
HLOD
HLOD(階層LOD)
HLOD
HLOD(階層LOD)
● 距離に応じて複数のStatic Meshを纏めて1つの
StaticMeshにする
○ 合わせてポリゴンのリダクションやマテリアルのマージも行う
HLOD
初期設定。レベル単位でHLODを使用するかフラグを
ON/OFFする
● ツールバーの「設定」-「ワールドセッティング」
● ウィンドウが出るので、
「Enable Hierarchical
LODSystem」に
チェックを入れる
HLOD
グループ設定
HLOD - グループ設定
「ワールドセッティング」の
「Only Generate Clusters for Volumes」が
OFFだと、
Levelに配置されたスタティックメッシュから
自動でグループが生成される
● ONにすると、後述の
「階層LODボリューム」でのみ
グループされる
○ →意図しないHLODが作られない
HLOD - グループ設定
「階層LODボリューム」をレベルに配置する
HLOD - グループ設定
先程のボリュームを、HLODで一纏めにしたいメッシュ郡を
囲むように配置する
● この単位で纏められる
HLOD - グループ設定
※注意
ボリュームを大きくしすぎると、画面外の分も纏めて描画さ
れて逆に非効率になってしまう
カメラが青枠しか写し
てないのに、赤枠全部
描画される
HLOD - グループ設定
メニューバーから「ウィンドウ」-「階層LODアウトライナー」
を開く
HLOD - グループ設定
ここで初回は「Builld」
2回目からは「プロキシメッシュを生成」か
「Rebuild ALL」でHLODのメッシュを生成する
HLOD - グループ設定
LODの段階を増やすには、ウィンドウ右側にある
「Hierarchical LODSetup」の「+」を押して枠を追加する
HLOD - グループ設定
それぞれのHLODがどう見えるかは、下図のLOD番号を
指定する事で確認できる
HLOD - グループ設定
HLODでメッシュをリダクション等したい場合は、HLODレベ
ル設定の中の「Simplify Mesh」にチェックを入れる
● この後ビルドすると左側欄の「Reduced Triangle」
の数値が減る
HLOD - グループ設定
● Scene Actor Name
○ LOD名。開くとシーンのどのメッシュがマージされているかを
確認できる
● 元の三角ポリゴン数
● Reduced Triangle
○ リダクション後のポリゴン数
● % Retained
○ 元のポリゴン数の何%になったか
HLOD - グループ設定
パラメーター多い……
(全部把握していないので、用語のニュアンスで把握
してください……)
HLOD - グループ設定
メッシュのリダクションは「Merge Distance」。
上げるとポリゴン数が減る
(多分。この距離の頂点をマージする。多分。)
HLOD - 参考
参考
● Hierarchical Level of Detail
○ http://api.unrealengine.com/JPN/Engine/HLOD
○ https://docs.unrealengine.com/en-us/Engine/HLOD
● Proxy Geometry Tool
○ https://docs.unrealengine.com/en-us/Engine/Proxy-Geometry-Tool
もくじ
● What’s LOD?
● LODを使うにあたって諸注意
● Static Mesh
● Skeletal Mesh
● Animation
● Cascade
● HLOD
● Impostor
● さいごに
Impostor
リダクションしたモデルLODを入れても、遠景に行くとそん
なにきっちり見えない
Impostor
→キャプチャーした画像をビルボード的に貼り付けるだけ
で十分では?
Impostor
この考えでモデルを360度、何分割かでキャプチャーしたテ
クスチャからそれっぽく表示する機能
Impostor
Epic GamesのFortniteでも使用された
● 「Fortniteを支える技術」より
○ https://www.slideshare.net/EpicGamesJapan/fortnite-97791917/67
Impostor
作成方法
Impostor - 作成方法
Fortniteでは公開されているプラグイン
「Impostor Baker」を使用しているとの事
● 「Fortniteを支える技術」より
○ https://www.slideshare.net/EpicGamesJapan/fortnite-97791917/70
Impostor - 作成方法
ImpostorBaker
● https://github.com/ictusbrucks/ImpostorBaker
○ Latest commit f064092 on 19 Mar で検証
Impostor - ImpostorBaker
リンク先のページ右側から「Clone or download」
→「Download ZIP」
Impostor - ImpostorBaker
Zipを解凍して、プロジェクトの「Plugins」フォルダ以下にコ
ピーする
Impostor - ImpostorBaker
メニューバーの「編集」→「Plugins」、
Pluginsウインドウの左側「Project」 / 「Other」
「ImpostorBaker」のEnabledをONに
Impostor - ImpostorBaker
コンテンツブラウザの右下「表示オプション」で「プラグイン
コンテンツを表示」をON
一覧から「ImpostorBaker コンテンツ」
Impostor - ImpostorBaker
「Maps」フォルダの「Generate_Impostor_Map」を開く
Impostor - ImpostorBaker
UE4.20だとBPエラーが出ているので修正する。
「BP_Generate_ImposterSprites」のConstruction Script
Impostor - ImpostorBaker
アウトライナで「BP_Generate_ImposterSprites」を選択
詳細欄の「2)Render Frames」ボタンを押すと生成
Impostor - ImpostorBaker
左が元メッシュ。右がImpostor
Impostor - ImpostorBaker
マテリアルをアセットとして出力
「3)Create Static Assets」ボタンで出力できる
出力先、名前はデフォルト欄の
New Asset*辺りで設定
Impostor - ImpostorBaker
マテリアル出力
● ※現在多分、ライトが反転してる
Impostor - ImpostorBaker
マテリアル出力
● ※出力した法線マップの「Flip Green Channel」をONに
(末尾に_Normalが付いたテクスチャ)
Impostor - ImpostorBaker
マテリアル出力
● ※同じようなライティングに
Impostor - ImpostorBaker
マテリアル出力
● ※一度書き出した後、設定を変えて同じテクスチャに書
き出し直したい場合は
○ 「2) Render Frames」をしてから「4)Overwrite Existing
Assets」を行う
Impostor - ImpostorBaker
Static Meshをアセットとして出力。
コンポーネントの「ProceduralMesh」を選択して、
「Create StaticMesh」ボタン。
保存先を聞かれるので
指定。
Impostor - ImpostorBaker
Static Meshが保存できたら、一度開いてマテリアルを先程
出力したマテリアルインスタンスに差し替えておく
Impostor - ImpostorBaker
Static Mesh出力
● ※もし、メッシュがやたら点滅している場合はBoundsが
おかしい。
○ スタティックメッシュエディタのBounds Extensionあたりを上げ
て調整する
Impostor - ImpostorBaker
Static Mesh出力
● ※ツールバーのバウンドを可視化して調整する
○ バウンド表示は青いライン
Impostor - ImpostorBaker
これでImpostorメッシュ出来上がり!
Impostor - ImpostorBaker
違うメッシュで生成したい場合
Impostor - ImpostorBaker - メッシュ変え
元メッシュのマテリアルを編集する必要がある
● 特定の処理をマテリアルに追加する
Impostor - ImpostorBaker - メッシュ変え
マテリアルを開く。
[MakeMaterialAttributes]ノードを作成
Impostor - ImpostorBaker - メッシュ変え
出力部分を先程作成した[MakeMaterialAttributes]につな
ぎ直し
Impostor - ImpostorBaker - メッシュ変え
マテリアルエディタ左側にある詳細欄の「Use Material
Attributes」にチェックを入れる
Impostor - ImpostorBaker - メッシュ変え
[ImposterCaptureSwitch]ノードを作成。
先ほど繋ぎ変えた[MakeMaterialAttributes]から入力し、
最終出力に流す。
マテリアルはこれでOK
Impostor - ImpostorBaker - メッシュ変え
生成したい元メッシュをレベルに配置する
Impostor - ImpostorBaker - メッシュ変え
レベルに配置しているBP_Generate_ImposterSpritesの
「Static Mesh Actor」に生成したいメッシュを指定する
Impostor - ImpostorBaker - メッシュ変え
後は通常通り「2)Render Frames」で生成して
「3)Create Static Assets」で保存する
Impostor - ImpostorBaker
「BP_Generate_ImposterSprites」の他のオプション
Impostor - ImpostorBaker - オプション - Impostor Type
Impostor Type
● Impostorのテクスチャをどの範囲で生成するか
Impostor - ImpostorBaker - オプション - Impostor Type
Impostor Type
● Full Sphere View
○ 360度で生成する
○ 周囲どこからでも見られて問題が出ない
Impostor - ImpostorBaker - オプション - Impostor Type
● Full Sphere View
○ ※現在、Full Sphere Viewでそのままマテリアル出力しても
正常に出ない
Impostor - ImpostorBaker - オプション - Impostor Type
● Full Sphere View
○ ※出力したマテリアルインスタンスを開き、
「Full Sphere_3」にチェックを入れると正常に表示されるよう
になる
Impostor - ImpostorBaker - オプション - Impostor Type
Impostor Type
● Upper Hemisphere Only
○ 水平より上側だけ生成
○ 下から見上げられる事が無ければおおよそコレ
○ 見上げると破綻する
○ その分、上側の枚数が
多いのでキレイ
Impostor - ImpostorBaker - オプション - Impostor Type
Impostor Type
● Traditional Billboards
○ 水平だけ生成
○ 円柱状なら使える……?(スミマセン、どう使うか余りイメージ出来ません)
○ 何か傘みたいなの何……?
Impostor - ImpostorBaker - オプション - 撮影枚数
撮影枚数
● Frames XYで縦横何枚撮影するか指定できる
○ 減らすと枚数が少なくなるので、斜めから見るとゴーストっぽく
見えるようになってしまう
○ 上げると見た目の解像度が低くなってしまう
Impostor - ImpostorBaker - オプション - 撮影枚数
撮影枚数
● 左: 16、右: 4
Impostor - ImpostorBaker - オプション - テクスチャ解像度
テクスチャ解像度
● Resolution
Impostor - ImpostorBaker - オプション - レンダリング解像度
レンダリング解像度
● Scene Capture Resolution
● 細いメッシュとかは上げると
きちんとレンダリングされる
● 上げると生成に時間かかる様に
Impostor
LODにImpostorを入れる
Impostor - LOD+Impostor
生成したImpostorのスタティックメッシュをコンテンツブラウ
ザで右クリック
「アセットアクション」→
「エクスポート」
で一旦FBXファイルで書き出す
Impostor - LOD+Impostor
前に記述した「LODインポート」ページの手順でLODに先
程のFBXを追加する
Impostor - LOD+Impostor
インポートできたら、Material Slotsにマテリアルが追加され
ている(WorldGridMaterialが設定されている筈)。
これをImpostorで生成した
マテリアルに差し替える
Impostor - LOD+Impostor
※再インポートすると法線が反転するのか、法線マップの
「Flip Green Channel」はOFFで大丈夫です
Impostor - LOD+Impostor
これで距離に応じてImpostorに切り替わり!
Impostor - 参考
参考
● 3D Imposter スプライトをレンダリングする
○ http://api.unrealengine.com/JPN/Engine/Content/Tools/RenderToTextu
reTools/3/
○ https://docs.unrealengine.com/en-US/Engine/Content/Tools/RenderTo
TextureTools/3
● Imposterを使ってみる(多視点対応のビルボード) -
historia
○ http://historia.co.jp/archives/3215/
もくじ
● What’s LOD?
● LODを使うにあたって諸注意
● Static Mesh
● Skeletal Mesh
● Animation
● Cascade
● HLOD
● Impostor
● さいごに
さいごに
LODを使用する事によって、処理速度に一押しできます。
UE4には沢山のLOD機能がありますので、容量、用法に注
意しつつ実装してみてください。
さいごに
今回のスライドから一歩踏み込んだ、非常に参考になる
Epic Games Japan篠山さんの資料
● UE4アセットリダクション手法紹介
○ https://www.slideshare.net/EpicGamesJapan/ue4-95238296
以上!

More Related Content

What's hot

What's hot (20)

UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!
UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!
UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!
 
[CEDEC2018] UE4アニメーションシステム総おさらい
[CEDEC2018] UE4アニメーションシステム総おさらい[CEDEC2018] UE4アニメーションシステム総おさらい
[CEDEC2018] UE4アニメーションシステム総おさらい
 
CEDEC2016: Unreal Engine 4 のレンダリングフロー総おさらい
CEDEC2016: Unreal Engine 4 のレンダリングフロー総おさらいCEDEC2016: Unreal Engine 4 のレンダリングフロー総おさらい
CEDEC2016: Unreal Engine 4 のレンダリングフロー総おさらい
 
UE4×Switchで60FPSの(ネットワーク)対戦アクションをなんとかして作る! | UNREAL FEST EXTREME 2020 WINTER
UE4×Switchで60FPSの(ネットワーク)対戦アクションをなんとかして作る!  | UNREAL FEST EXTREME 2020 WINTERUE4×Switchで60FPSの(ネットワーク)対戦アクションをなんとかして作る!  | UNREAL FEST EXTREME 2020 WINTER
UE4×Switchで60FPSの(ネットワーク)対戦アクションをなんとかして作る! | UNREAL FEST EXTREME 2020 WINTER
 
マジシャンズデッド ポストモーテム ~マテリアル編~ (株式会社Byking: 鈴木孝司様、成相真治様) #UE4DD
マジシャンズデッド ポストモーテム ~マテリアル編~ (株式会社Byking: 鈴木孝司様、成相真治様) #UE4DDマジシャンズデッド ポストモーテム ~マテリアル編~ (株式会社Byking: 鈴木孝司様、成相真治様) #UE4DD
マジシャンズデッド ポストモーテム ~マテリアル編~ (株式会社Byking: 鈴木孝司様、成相真治様) #UE4DD
 
猫でも分かる UE4のAnimation Blueprintの運用について
猫でも分かる UE4のAnimation Blueprintの運用について猫でも分かる UE4のAnimation Blueprintの運用について
猫でも分かる UE4のAnimation Blueprintの運用について
 
UE4でTranslucencyやUnlitに影を落としたい!
UE4でTranslucencyやUnlitに影を落としたい!UE4でTranslucencyやUnlitに影を落としたい!
UE4でTranslucencyやUnlitに影を落としたい!
 
UE4を用いたTPS制作事例 EDF:IR レベル構成について
UE4を用いたTPS制作事例 EDF:IR レベル構成についてUE4を用いたTPS制作事例 EDF:IR レベル構成について
UE4を用いたTPS制作事例 EDF:IR レベル構成について
 
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
 
Nintendo Switch『OCTOPATH TRAVELER』はこうして作られた
Nintendo Switch『OCTOPATH TRAVELER』はこうして作られたNintendo Switch『OCTOPATH TRAVELER』はこうして作られた
Nintendo Switch『OCTOPATH TRAVELER』はこうして作られた
 
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動についてUE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
 
UE4における大規模レベル実装ワークフローとブループリント活用事例
UE4における大規模レベル実装ワークフローとブループリント活用事例UE4における大規模レベル実装ワークフローとブループリント活用事例
UE4における大規模レベル実装ワークフローとブループリント活用事例
 
マテリアルとマテリアルインスタンスの仕組みと問題点の共有 (Epic Games Japan: 篠山範明) #UE4DD
マテリアルとマテリアルインスタンスの仕組みと問題点の共有 (Epic Games Japan: 篠山範明) #UE4DDマテリアルとマテリアルインスタンスの仕組みと問題点の共有 (Epic Games Japan: 篠山範明) #UE4DD
マテリアルとマテリアルインスタンスの仕組みと問題点の共有 (Epic Games Japan: 篠山範明) #UE4DD
 
60fpsアクションを実現する秘訣を伝授 解析編
60fpsアクションを実現する秘訣を伝授 解析編60fpsアクションを実現する秘訣を伝授 解析編
60fpsアクションを実現する秘訣を伝授 解析編
 
UE4 コリジョン検証 -HitとOverlapイベントが発生する条件について-
UE4 コリジョン検証 -HitとOverlapイベントが発生する条件について-UE4 コリジョン検証 -HitとOverlapイベントが発生する条件について-
UE4 コリジョン検証 -HitとOverlapイベントが発生する条件について-
 
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
 
UE4における大規模背景制作事例 最適化ワークフロー編
UE4における大規模背景制作事例 最適化ワークフロー編UE4における大規模背景制作事例 最適化ワークフロー編
UE4における大規模背景制作事例 最適化ワークフロー編
 
UE4でマルチプレイヤーゲームを作ろう
UE4でマルチプレイヤーゲームを作ろうUE4でマルチプレイヤーゲームを作ろう
UE4でマルチプレイヤーゲームを作ろう
 
UE4におけるLoadingとGCのProfilingと最適化手法
UE4におけるLoadingとGCのProfilingと最適化手法UE4におけるLoadingとGCのProfilingと最適化手法
UE4におけるLoadingとGCのProfilingと最適化手法
 
UE4におけるエフェクトの為のエンジン改造事例
UE4におけるエフェクトの為のエンジン改造事例UE4におけるエフェクトの為のエンジン改造事例
UE4におけるエフェクトの為のエンジン改造事例
 

Similar to UE4 LODs for Optimization -Beginner-

Pythonで検索エンジン2
Pythonで検索エンジン2Pythonで検索エンジン2
Pythonで検索エンジン2
Yasukazu Kawasaki
 
120418 tokyo node5_lin_qonnodejs
120418 tokyo node5_lin_qonnodejs120418 tokyo node5_lin_qonnodejs
120418 tokyo node5_lin_qonnodejs
Takayoshi Tanaka
 
ゆるロボ製作所ができるまで
ゆるロボ製作所ができるまでゆるロボ製作所ができるまで
ゆるロボ製作所ができるまで
Mikito Yoshiya
 
Android勉強会第二回-非同期処理-
Android勉強会第二回-非同期処理-Android勉強会第二回-非同期処理-
Android勉強会第二回-非同期処理-
Hiroki Sakamoto
 

Similar to UE4 LODs for Optimization -Beginner- (20)

触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる
触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる
触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる
 
Kaggleのテクニック
KaggleのテクニックKaggleのテクニック
Kaggleのテクニック
 
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けようDjango ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
 
Pythonで検索エンジン2
Pythonで検索エンジン2Pythonで検索エンジン2
Pythonで検索エンジン2
 
UE4 アセットロード周り-アセット参照調査-
UE4 アセットロード周り-アセット参照調査-UE4 アセットロード周り-アセット参照調査-
UE4 アセットロード周り-アセット参照調査-
 
みくみくまうすについて&Unity で使えるコーディングノウハウ
みくみくまうすについて&Unity で使えるコーディングノウハウみくみくまうすについて&Unity で使えるコーディングノウハウ
みくみくまうすについて&Unity で使えるコーディングノウハウ
 
スマートフォン対応、気をつけたいトラブル
スマートフォン対応、気をつけたいトラブルスマートフォン対応、気をつけたいトラブル
スマートフォン対応、気をつけたいトラブル
 
[UE4]マテリアルの注意すべきこと!~テクスチャロードとSwitch~
[UE4]マテリアルの注意すべきこと!~テクスチャロードとSwitch~[UE4]マテリアルの注意すべきこと!~テクスチャロードとSwitch~
[UE4]マテリアルの注意すべきこと!~テクスチャロードとSwitch~
 
Movable Type for AWS を用いた環境構築のポイント
Movable Type for AWS を用いた環境構築のポイントMovable Type for AWS を用いた環境構築のポイント
Movable Type for AWS を用いた環境構築のポイント
 
自動LOD生成を可能にする3Dキャラクターパイプラインセミナー
自動LOD生成を可能にする3Dキャラクターパイプラインセミナー自動LOD生成を可能にする3Dキャラクターパイプラインセミナー
自動LOD生成を可能にする3Dキャラクターパイプラインセミナー
 
120418 tokyo node5_lin_qonnodejs
120418 tokyo node5_lin_qonnodejs120418 tokyo node5_lin_qonnodejs
120418 tokyo node5_lin_qonnodejs
 
Magic Ring Buffer
Magic Ring BufferMagic Ring Buffer
Magic Ring Buffer
 
ゆるロボ製作所ができるまで
ゆるロボ製作所ができるまでゆるロボ製作所ができるまで
ゆるロボ製作所ができるまで
 
JCROM で Android の「真の力」を解き放て
JCROM で Android の「真の力」を解き放てJCROM で Android の「真の力」を解き放て
JCROM で Android の「真の力」を解き放て
 
[DL Hacks]tensorflow/privacy Task-Embedded Control Networks for Few-Shot Imit...
[DL Hacks]tensorflow/privacy Task-Embedded Control Networks for Few-Shot Imit...[DL Hacks]tensorflow/privacy Task-Embedded Control Networks for Few-Shot Imit...
[DL Hacks]tensorflow/privacy Task-Embedded Control Networks for Few-Shot Imit...
 
Nodeにしましょう
NodeにしましょうNodeにしましょう
Nodeにしましょう
 
いままでのJaSSTnanoLT動画を振り返る&おススメしたいの! / Looking back and recommend on the JaSSTna...
いままでのJaSSTnanoLT動画を振り返る&おススメしたいの! / Looking back and recommend on the JaSSTna...いままでのJaSSTnanoLT動画を振り返る&おススメしたいの! / Looking back and recommend on the JaSSTna...
いままでのJaSSTnanoLT動画を振り返る&おススメしたいの! / Looking back and recommend on the JaSSTna...
 
[UE4]自動テストでもっと楽したい!
[UE4]自動テストでもっと楽したい![UE4]自動テストでもっと楽したい!
[UE4]自動テストでもっと楽したい!
 
サーバサイドNodeの使い道
サーバサイドNodeの使い道サーバサイドNodeの使い道
サーバサイドNodeの使い道
 
Android勉強会第二回-非同期処理-
Android勉強会第二回-非同期処理-Android勉強会第二回-非同期処理-
Android勉強会第二回-非同期処理-
 

More from com044

More from com044 (20)

UE4ぷちコンの勧め
UE4ぷちコンの勧めUE4ぷちコンの勧め
UE4ぷちコンの勧め
 
2019年03月 UE4界隈ニュース
2019年03月 UE4界隈ニュース 2019年03月 UE4界隈ニュース
2019年03月 UE4界隈ニュース
 
UE4でAIとビヘイビアツリーと-基礎-
UE4でAIとビヘイビアツリーと-基礎-UE4でAIとビヘイビアツリーと-基礎-
UE4でAIとビヘイビアツリーと-基礎-
 
AI基礎
AI基礎AI基礎
AI基礎
 
2019年01月 UE4界隈ニュース
2019年01月 UE4界隈ニュース2019年01月 UE4界隈ニュース
2019年01月 UE4界隈ニュース
 
UE4 Volumetric Fogで 空間を演出する!
UE4 Volumetric Fogで 空間を演出する!UE4 Volumetric Fogで 空間を演出する!
UE4 Volumetric Fogで 空間を演出する!
 
2018年11月 UE4界隈ニュース
2018年11月 UE4界隈ニュース2018年11月 UE4界隈ニュース
2018年11月 UE4界隈ニュース
 
第8回UE4勉強会 in 大阪 201809 UE4界隈ニュース
第8回UE4勉強会 in 大阪 201809 UE4界隈ニュース第8回UE4勉強会 in 大阪 201809 UE4界隈ニュース
第8回UE4勉強会 in 大阪 201809 UE4界隈ニュース
 
第7回UE4勉強会 in 大阪 201807 UE4界隈ニュース
第7回UE4勉強会 in 大阪 201807 UE4界隈ニュース第7回UE4勉強会 in 大阪 201807 UE4界隈ニュース
第7回UE4勉強会 in 大阪 201807 UE4界隈ニュース
 
第6回UE4勉強会 in 大阪 201805 UE4界隈ニュース
第6回UE4勉強会 in 大阪 201805 UE4界隈ニュース第6回UE4勉強会 in 大阪 201805 UE4界隈ニュース
第6回UE4勉強会 in 大阪 201805 UE4界隈ニュース
 
UE4勉強会 in 大阪 - もっとアニメーションBP
UE4勉強会 in 大阪 - もっとアニメーションBPUE4勉強会 in 大阪 - もっとアニメーションBP
UE4勉強会 in 大阪 - もっとアニメーションBP
 
第5回UE4勉強会 in 大阪 201803 UE4界隈ニュース
第5回UE4勉強会 in 大阪 201803 UE4界隈ニュース第5回UE4勉強会 in 大阪 201803 UE4界隈ニュース
第5回UE4勉強会 in 大阪 201803 UE4界隈ニュース
 
UE4勉強会 in 大阪 - アニメーション基礎
UE4勉強会 in 大阪 - アニメーション基礎UE4勉強会 in 大阪 - アニメーション基礎
UE4勉強会 in 大阪 - アニメーション基礎
 
第4回UE4勉強会 in 大阪 UE4でのチーム製作
第4回UE4勉強会 in 大阪   UE4でのチーム製作第4回UE4勉強会 in 大阪   UE4でのチーム製作
第4回UE4勉強会 in 大阪 UE4でのチーム製作
 
第4回UE4勉強会 in 大阪 201801 UE4界隈ニュース
第4回UE4勉強会 in 大阪   201801 UE4界隈ニュース第4回UE4勉強会 in 大阪   201801 UE4界隈ニュース
第4回UE4勉強会 in 大阪 201801 UE4界隈ニュース
 
第3回ue4勉強会 in 大阪 201711 ue4界隈ニュース
第3回ue4勉強会 in 大阪   201711 ue4界隈ニュース第3回ue4勉強会 in 大阪   201711 ue4界隈ニュース
第3回ue4勉強会 in 大阪 201711 ue4界隈ニュース
 
第2回UE4勉強会 in 大阪 - マテリアル基礎・初級
第2回UE4勉強会 in 大阪 - マテリアル基礎・初級第2回UE4勉強会 in 大阪 - マテリアル基礎・初級
第2回UE4勉強会 in 大阪 - マテリアル基礎・初級
 
第2回UE4勉強会 in 大阪 - 201709 ue4界隈ニュース
第2回UE4勉強会 in 大阪 -  201709 ue4界隈ニュース第2回UE4勉強会 in 大阪 -  201709 ue4界隈ニュース
第2回UE4勉強会 in 大阪 - 201709 ue4界隈ニュース
 
第1回UE4勉強会 in 大阪 - エンジン改造ってどうなの?
第1回UE4勉強会 in 大阪 - エンジン改造ってどうなの?第1回UE4勉強会 in 大阪 - エンジン改造ってどうなの?
第1回UE4勉強会 in 大阪 - エンジン改造ってどうなの?
 
第1回UE4勉強会 in 大阪 - UE4界隈ニュース
第1回UE4勉強会 in 大阪 - UE4界隈ニュース第1回UE4勉強会 in 大阪 - UE4界隈ニュース
第1回UE4勉強会 in 大阪 - UE4界隈ニュース
 

UE4 LODs for Optimization -Beginner-