Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

UE4 LODs for Optimization -Beginner-

2,835 views

Published on

https://ue4study-osaka.connpass.com/event/93325/

Published in: Engineering
  • DOWNLOAD THI5 BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • There are over 16,000 woodworking plans that comes with step-by-step instructions and detailed photos, Click here to take a look  http://ishbv.com/tedsplans/pdf
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • The #1 Woodworking Resource With Over 16,000 Plans, Download 50 FREE Plans...  http://tinyurl.com/yy9yh8fu
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • The #1 Woodworking Resource With Over 16,000 Plans, Download 50 FREE Plans... ➤➤ http://ishbv.com/tedsplans/pdf
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

UE4 LODs for Optimization -Beginner-

  1. 1. UE4勉強会 in 大阪 LODs for Optimization -Beginner-
  2. 2. LODs for Optimization -Beginner- Slideshare対応ダミー
  3. 3. 自己紹介 ● Twitter: com04 ● ゲームプログラマー ● 最近はマテリアル演出とシーケンサー ● 横浜×酒×UE4 3
  4. 4. 自己紹介 ● マーケットプレイスに出品しました − ComMaterialTools ● https://www.unrealengine.com/marketplace/commaterialtools ● マテリアル検索の便利ツール ● 過去スライド − https://www.slideshare.net/com044/presentations ● [第1回] エンジン改造ってどうなの? ● [第2回] マテリアル基礎・初級 ● [第4回] UE4でのチーム製作 ● [第5回] アニメーションBP基礎 ● [第6回] もっとアニメーションBP ● [プログラマー向け] エンジンの内部挙動について 4
  5. 5. はじめに スライド枚数多いですが、操作方法を説明している分が多 いです 大まかに機能の概要だけ把握しておいて、実際に適用す る際にリファレンスとしてください。。。
  6. 6. ● 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
  7. 7. もくじ ● What’s LOD? ● LODを使うにあたって諸注意 ● Static Mesh ● Skeletal Mesh ● Animation ● Cascade ● HLOD ● Impostor ● さいごに
  8. 8. What’s LOD? LOD の作成と使用 http://api.unrealengine.com/JPN/Engine/Content/Types/StaticMeshes/HowTo/LODs/ プレイヤーがレベルに配置したスタティックメッシュの間近にきたら、メッシュが非常に詳細に見えるようにしたいことでしょう。しか し、プレイヤーがメッシュから遠く離れたらメッシュを非常に詳細、複雑に表示する必要はありません。画面上でわずかなピクセ ルしか使わず、プレイヤーからほとんど見えない場合は、複雑で詳細なメッシュを持つ意味はありません。しかし、プレイヤーが メッシュの間近にきてはっきりとメッシュを見ることができるようになった場合は、メッシュを詳細化する必要があります。UE4 で は、レベルのパフォーマンスを高めるために、メッシュをレベルに配置し、プレイヤーがメッシュから遠くに離れると複雑度が低い メッシュに切り替わるようにすることができます。これは、Level of Details (詳細度) すなわち LOD を使用して行うことができま す。この操作ガイドでは、メッシュの詳細度が低いバージョンを UE4 にインポートし、プレイヤーが近くに来たり、離れたりするに つれてあるメッシュから他のメッシュにシームレスに切り替わるようにします。
  9. 9. What’s LOD? LOD = Level of Detail
  10. 10. What’s LOD? ディティールを減らして処理速度を速くする ● ディティール ○ →頂点数、ポリゴン数、テクスチャ枚数、ボーン数、パーティクル 枚数…… ■ ディティールを減らす=リッチさが無くなる ■ ディティールを減らす=処理数が少なくなる=処理速度が速くなる
  11. 11. What’s LOD? 画面に大きく描画されているモデルはディティールを上げ て綺麗に。 その分、処理速度/描画速度は重い。
  12. 12. What’s LOD? 画面に小さく描画されているモデルはディティールを下げ る。 その分、処理速度/描画速度を軽く。 ● 画面に小さいと、細かいディティールは見えない。 ● 小物なのでプレイヤーもそこまで注視しない
  13. 13. もくじ ● What’s LOD? ● LODを使うにあたって諸注意 ● Static Mesh ● Skeletal Mesh ● Animation ● Cascade ● HLOD ● Impostor ● さいごに
  14. 14. LODを使うにあたって諸注意 何にでもLODを入れればいいという訳ではない。 LODにも欠点がある。
  15. 15. LODを使うにあたって諸注意 LODを入れるという事 ● 違うモデルを持つ事になるので、メモリの使用量が増え る ● LODモデルを作成、調整する事による工数の増加
  16. 16. LODを使うにあたって諸注意 →LODが必要なのか?
  17. 17. LODを使うにあたって諸注意 LODが必要なのか? ● プレイヤーが操作するキャラクターモデル ● カットシーン用モデル など、注視されやすいモデルはプレイヤーからディティール が見えやすいのでLODを入れにくい
  18. 18. LODを使うにあたって諸注意 LODが必要なのか? ● 敵 ● 背景モデル は画面上で小さくなりやすい(=細かいディティールが見え なくなる)のでLODを仕込む。  →その前に、低ディティールのモデルだけで事足りない か
  19. 19. LODを使うにあたって諸注意 LODが必要なのか? ● そもそも処理負荷 / 描画負荷の問題はLODを作成する 事で解消されるのか? ○ =重いのはどこ? ○ モデルLODはGPU頂点処理が重ければ有効 ○ マテリアル/エフェクトLODはGPUピクセル処理が重ければ有 効 ○ Animation, Bone等の計算系のLODはCPU負荷の軽減 ■ (とはいえ描画passの何処が重いかでも変わってくるので一概には言えない ……)
  20. 20. LODを使うにあたって諸注意 プロファイリングをしよう! ● どこが問題になっているのかを調べる ● 効果がない所を延々と作業するのを避ける ○ (プロファイリング無しに 1週間作業して効果がない事も ……)
  21. 21. LODを使うにあたって諸注意 今回の本題では無いので、Epic Games Japan篠山さん の非常に参考になる資料 ● [CEDEC2017] UE4プロファイリングツール総おさらい (グラフィクス編) ○ https://www.slideshare.net/EpicGamesJapan/cedec2017-ue4
  22. 22. LODを使うにあたって諸注意 更にWinter Crown Works 梶井 祐さんの非常に参考にな る資料 ● ゲーム開発におけるグラフィックス最適化セミナー ○ https://docs.google.com/presentation/d/1f7dJu60Sy2KQgebX1Eju2TMI ig1mqBAoymdaUsFMsrM
  23. 23. LODを使うにあたって諸注意 とはいえ、いきなりアーティストだけでプロファイリングは大 変。 なので、プロファイリング出来るエンジニア班とチェック方法 のワークフロー確立を! (プロファイリング勉強会もやりたいネ!)
  24. 24. もくじ ● What’s LOD? ● LODを使うにあたって諸注意 ● Static Mesh ● Skeletal Mesh ● Animation ● Cascade ● HLOD ● Impostor ● さいごに
  25. 25. Static Mesh LOD生成
  26. 26. Static Mesh - LOD生成 Static MeshのLODモデルはUE4内で生成できる
  27. 27. Static Mesh - LOD生成 スタティックメッシュエディタの「LOD設定」欄
  28. 28. Static Mesh - LOD生成 ● 「LODグループ」の設定をメッシュの種類に変更 ● 「LOD数」に段階数を設定 ● 「変更を適用」を 押すと生成される
  29. 29. Static Mesh - LOD生成 ViewのLODパネルでLODを確認できる。 「LOD Auto」は設定された 距離で切り替わっていく。
  30. 30. Static Mesh - LOD生成 LOD 0 (30,459頂点) LOD 3 (4,536頂点)
  31. 31. Static Mesh - LOD生成 LOD 0 (30,459頂点) LOD 3 (4,536頂点)
  32. 32. Static Mesh - LOD生成 LODグループ ● /Engine/Config/BaseEngine.ini ○ [StaticMeshLODSettings] に設定がある ● LOD数やリダクション具合のプリセット ● 「None」にして生成すると リダクション設定で 手入力する必要がある
  33. 33. Static Mesh - LOD生成 リダクション設定 ● ViewでLODレベルを指定すると、 詳細欄に設定パネルが出る ○ LODレベル毎に個別指定できる
  34. 34. Static Mesh - LOD生成 リダクション設定 ● 「トライアングルの割合」で 頂点/トライアングルのリダクション 具合を指定できる ○ 数値を下げると頂点数/トライアング ル数が減る
  35. 35. Static Mesh - LOD生成 トライアングルの割合12.5 6,949トライアングル、4,356頂点 トライアングルの割合2.0 1,110トライアングル、905頂点
  36. 36. Static Mesh - LOD生成 LOD Pickerパネルの「カスタム」にチェックを入れると、全 LODのパネルを表示できる
  37. 37. Static Mesh LODインポート
  38. 38. Static Mesh - LODインポート 外部で編集したモデルデータ(FBX)をLODモデルとしてイ ンポートする事もできる
  39. 39. Static Mesh - LODインポート 「LODのインポート」でインポートしたいレベルを選択する
  40. 40. Static Mesh - LODインポート ファイルブラウザが出てくるので、FBXファイルを指定する と適用できる
  41. 41. Static Mesh LOD切り替わり距離
  42. 42. Static Mesh - LOD切り替わり距離 LODが切り替わる距離を調整する ● デフォルト設定よりも近くからLODレベルを上げて(= ディティールを下げる)描画速度を優先させる時とか ● 逆にディティールが下がり過ぎるので距離を遠目に設 定する時とか
  43. 43. Static Mesh - LOD切り替わり距離 LOD設定パネルで「LOD距離を自動計算」をOFFにする ● ONだといい感じに自動で計算してくれる
  44. 44. Static Mesh - LOD切り替わり距離 各LODレベルのパネルにある「スクリーンサイズ」を変更す る。 ● 数値はメッシュの スクリーン上でのサイズ ○ 大きくすると、カメラに 近い段階で切り替わる ○ 小さくすると、遠くで 切り替わる ■ LODレベルが上がるにつれ、 数値は小さくなっていく
  45. 45. Static Mesh - LOD切り替わり距離 現在表示しているLODレベル、スクリーンサイズはViewで 確認できる
  46. 46. Static Mesh - LOD切り替わり距離 プラットフォーム毎で設定を切り替える事ができる ● PCとモバイル両方にリリースする際に、モバイルだけ LODを強くかけるとか
  47. 47. Static Mesh - LOD切り替わり距離 プラットフォーム毎の調整は「スクリーンサイズ」の値右横 にある▼から追加できる。 ● それぞれのプラットフォーム毎に個別のスクリーンサイ ズを指定できる。
  48. 48. Static Mesh - LOD切り替わり距離 BPの設定欄から個別に指定も出来る ● Forced Lod Model ○ 「0」は距離で自動切り替え ○ 「1」以上でLODモデルを固定 ■ 距離でLODが変わらなくなる ■ (Force Lod Model - 1)のLODが使用される ■ カットシーン等でLODを固定したい時とか
  49. 49. Static Mesh - LOD切り替わり距離 BPの設定欄から個別に指定も出来る ● Override Min LOD / Min LOD ○ 最小LODを指定する ■ 指定した数値未満のLODが出てこない ● 1に指定すると、LODレベル0が出ない ■ AのシーンだとカメラにアップになるからLOD レベル0で出したい ■ けど、Bのシーンは一杯出るからLODレベル 2からにしたい。時とか。
  50. 50. Static Mesh マテリアルLOD
  51. 51. Static Mesh - マテリアルLOD マテリアルをLODする ● 遠い時に計算を簡略化、法線マップを外す等して描画 最適化 ○ GPUの負荷が下がる ● ただ、違うマテリアルを設定するとマテリアルスイッチの コストが掛かってしまう事も注意 ○ 同一マテリアルで別マテリアルインスタンスなら大丈夫 ……かも…… ■ ややこしいね!どこがボトルネックで解消できるのかプロファイル取ろう!
  52. 52. Static Mesh - マテリアルLOD メッシュエディタを開いて、「マテリアルスロット」の右側にあ る「+」ボタンを押してスロットを追加する
  53. 53. Static Mesh - マテリアルLOD 追加されたスロットにリダクションしたマテリアルを設定
  54. 54. Static Mesh - マテリアルLOD LOD欄の「セクション」項目の中にメッシュのマテリアルリス トがある ● そこから差し替えたいマテリアルの「マテリアルスロット」 コンボボックスから先程のマテリアルを選択する
  55. 55. Static Mesh - マテリアルLOD これでそのLODが出る時は、変更したマテリアルで表示さ れる ● 下図では右だけ法線マップ外してみた
  56. 56. Static Mesh - マテリアルLOD 他にも「シャドウを落とす」オプションもLODのマテリアル毎 に設定できる ● 遠くにいったら影が見えにくいので、いっそ消して負荷 を下げる
  57. 57. Static Mesh LODの補間
  58. 58. Static Mesh - LODの補間 LODそのままだと切り替えタイミングがパツッと切り替わ り、モデルデータが差し替わるタイミングが気になってしま う LOD 0 LOD 1
  59. 59. Static Mesh - LODの補間 LODが切り替わるタイミングで、ディザで補間して切り替え る方法がある LOD 0 LOD 1
  60. 60. Static Mesh - LODの補間 ディザ補間したいマテリアルを開き、詳細欄の 「Dithered LOD Transition」を ONにする
  61. 61. Static Mesh - LODの補間 これだけでLODの切り替え部分をディザで補間してくれる ● 動画 ○ https://twitter.com/com04/status/1020688434120179718
  62. 62. 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
  63. 63. もくじ ● What’s LOD? ● LODを使うにあたって諸注意 ● Static Mesh ● Skeletal Mesh ● Animation ● Cascade ● HLOD ● Impostor ● さいごに
  64. 64. Skeletal Mesh LODインポート
  65. 65. Skeletal Mesh - LODインポート Skeletal MeshはUE4内でLODモデルを生成出来ないの で、外部ツールでLODモデルを作成してインポートする。 基本的な設定はStatic Meshと一緒。 ※Simpolygon使うと出来るらしい (触った事ないので噂)
  66. 66. Skeletal Mesh - LODインポート Skeletal Meshエディターで、外部で作成したモデルデータ をインポートする
  67. 67. Skeletal Mesh - LODインポート 「アセット詳細」タブの「LOD設定」パネルから 「LODのインポート」
  68. 68. Skeletal Mesh - LODインポート LOD距離のスクリーンサイズ周りは Static Meshと一緒
  69. 69. Skeletal Mesh ボーンLOD
  70. 70. Skeletal Mesh - ボーンLOD Skeletal Meshはボーン計算をLODで減らす事ができる ● ボーンの計算を省いてCPUを最適化できる
  71. 71. Skeletal Mesh - ボーンLOD LODレベルのパネル内の 「Bones to Remove」項目。 ● このLODレベルでアニメーション 計算を省きたいボーンを指定す る
  72. 72. Skeletal Mesh - ボーンLOD もしくはスケルトンツリーで省きたいボーンを右クリック
  73. 73. Skeletal Mesh - ボーンLOD こんな形でLODによって計算を省く事が出来る
  74. 74. Skeletal Mesh - ボーンLOD 場所によっては目立ってしまうので、 ● 目立ちにくい場所 ○ 指のボーンとか ○ 服の布の中間ボーンとか ● 目立ちにくいLOD距離 を考慮する必要がある
  75. 75. 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
  76. 76. もくじ ● What’s LOD? ● LODを使うにあたって諸注意 ● Static Mesh ● Skeletal Mesh ● Animation ● Cascade ● HLOD ● Impostor ● さいごに
  77. 77. Animation アニメーション通知
  78. 78. Animation - アニメーション通知 アニメーション通知はLODレベルで使用ON/OFFを切り替 える事ができる
  79. 79. Animation - アニメーション通知 通知をクリックして「詳細」タブ ● 「Notify Filter Type」を「LOD」にする 事で使用できる ● 「Notify Filter LOD」 以下のLODレベル表示の 場合に通知を行わなくなる
  80. 80. Animation - アニメーション通知 Notify Filter LODを「1」にした場合。LOD 1の表示では通 知が来なくてパーティクルが出なくなっている
  81. 81. Animation - アニメーション通知 この機能でアニメーションに関連する通知をLODでOFFし て、パーティクル、サウンド、BP等を除外して最適化できる ● LOD高い(=遠い)キャラは足接地の煙/音を消すなど ● BP処理の間引き
  82. 82. Animation アニムグラフのノード
  83. 83. Animation - アニムグラフのノード アニメーションBP内のアニムグラフの一部ノードにもLOD 設定があります ● ボーン毎のレイヤードブレンド ● アニム ダイナミクス ● Aim Offset ● 加算 など
  84. 84. Animation - アニムグラフのノード ノードを選択して詳細ウィンドウで「LOD Threshold」 ● -1: LODしない ● 0以上: この数値以上のLODレベルで処理しない
  85. 85. もくじ ● What’s LOD? ● LODを使うにあたって諸注意 ● Static Mesh ● Skeletal Mesh ● Animation ● Cascade ● HLOD ● Impostor ● さいごに
  86. 86. Cascade LODレベル毎の表示設定
  87. 87. Cascade - LODレベル毎の表示設定 パーティクルを扱うCascadeにもLODが設定できる
  88. 88. Cascade - LODレベル毎の表示設定 ツールバーでLODの編集の操作 ● ⇩系は低い、カメラに近い方のLODを作る ● ⇧系は高い、カメラから遠い方のLODを作る
  89. 89. Cascade - LODレベル毎の表示設定 LODを追加すると、真ん中の「LOD:」の数値が0より大きい 数値を指定できるようになる。 この数値で、今から編集するLODレベルを指定する
  90. 90. Cascade - LODレベル毎の表示設定 例えば、遠くに行くと見えないから[LOD:1]からは塵を消し たい
  91. 91. Cascade - LODレベル毎の表示設定 1. 操作するLODを1にして 2. 該当のエミッタを非表示に
  92. 92. Cascade - LODレベル毎の表示設定 再生すると先程のエミッタは消えてる
  93. 93. Cascade - LODレベル毎の表示設定 [LOD:0] に戻すと、ちゃんと塵は出ている
  94. 94. Cascade - LODレベル毎の表示設定 [LOD:0] 以外だと表示/非表示以外のパラメーターは操作 できない LODレベル毎に違う動き方とかは設定できない
  95. 95. Cascade おまけ:スケーラビリティ対応
  96. 96. Cascade - スケーラビリティ対応 「エフェクト」項目に対応する。 「低」の時に消したいエミッ ターの設定など。 ● PCやモバイルのスペック、 性能が厳しいハードで 切り替えなど
  97. 97. Cascade - スケーラビリティ対応 Cascadeでエミッタを選択。 詳細タブの「Detail Mode BitMask」で各スケーラビリティで 表示するかの設定。 ● チェックを外すと、 そのスケーラビリティで 表示しなくなる
  98. 98. 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
  99. 99. もくじ ● What’s LOD? ● LODを使うにあたって諸注意 ● Static Mesh ● Skeletal Mesh ● Animation ● Cascade ● HLOD ● Impostor ● さいごに
  100. 100. HLOD HLOD(階層LOD)
  101. 101. HLOD HLOD(階層LOD) ● 距離に応じて複数のStatic Meshを纏めて1つの StaticMeshにする ○ 合わせてポリゴンのリダクションやマテリアルのマージも行う
  102. 102. HLOD 初期設定。レベル単位でHLODを使用するかフラグを ON/OFFする ● ツールバーの「設定」-「ワールドセッティング」 ● ウィンドウが出るので、 「Enable Hierarchical LODSystem」に チェックを入れる
  103. 103. HLOD グループ設定
  104. 104. HLOD - グループ設定 「ワールドセッティング」の 「Only Generate Clusters for Volumes」が OFFだと、 Levelに配置されたスタティックメッシュから 自動でグループが生成される ● ONにすると、後述の 「階層LODボリューム」でのみ グループされる ○ →意図しないHLODが作られない
  105. 105. HLOD - グループ設定 「階層LODボリューム」をレベルに配置する
  106. 106. HLOD - グループ設定 先程のボリュームを、HLODで一纏めにしたいメッシュ郡を 囲むように配置する ● この単位で纏められる
  107. 107. HLOD - グループ設定 ※注意 ボリュームを大きくしすぎると、画面外の分も纏めて描画さ れて逆に非効率になってしまう カメラが青枠しか写し てないのに、赤枠全部 描画される
  108. 108. HLOD - グループ設定 メニューバーから「ウィンドウ」-「階層LODアウトライナー」 を開く
  109. 109. HLOD - グループ設定 ここで初回は「Builld」 2回目からは「プロキシメッシュを生成」か 「Rebuild ALL」でHLODのメッシュを生成する
  110. 110. HLOD - グループ設定 LODの段階を増やすには、ウィンドウ右側にある 「Hierarchical LODSetup」の「+」を押して枠を追加する
  111. 111. HLOD - グループ設定 それぞれのHLODがどう見えるかは、下図のLOD番号を 指定する事で確認できる
  112. 112. HLOD - グループ設定 HLODでメッシュをリダクション等したい場合は、HLODレベ ル設定の中の「Simplify Mesh」にチェックを入れる ● この後ビルドすると左側欄の「Reduced Triangle」 の数値が減る
  113. 113. HLOD - グループ設定 ● Scene Actor Name ○ LOD名。開くとシーンのどのメッシュがマージされているかを 確認できる ● 元の三角ポリゴン数 ● Reduced Triangle ○ リダクション後のポリゴン数 ● % Retained ○ 元のポリゴン数の何%になったか
  114. 114. HLOD - グループ設定 パラメーター多い…… (全部把握していないので、用語のニュアンスで把握 してください……)
  115. 115. HLOD - グループ設定 メッシュのリダクションは「Merge Distance」。 上げるとポリゴン数が減る (多分。この距離の頂点をマージする。多分。)
  116. 116. 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
  117. 117. もくじ ● What’s LOD? ● LODを使うにあたって諸注意 ● Static Mesh ● Skeletal Mesh ● Animation ● Cascade ● HLOD ● Impostor ● さいごに
  118. 118. Impostor リダクションしたモデルLODを入れても、遠景に行くとそん なにきっちり見えない
  119. 119. Impostor →キャプチャーした画像をビルボード的に貼り付けるだけ で十分では?
  120. 120. Impostor この考えでモデルを360度、何分割かでキャプチャーしたテ クスチャからそれっぽく表示する機能
  121. 121. Impostor Epic GamesのFortniteでも使用された ● 「Fortniteを支える技術」より ○ https://www.slideshare.net/EpicGamesJapan/fortnite-97791917/67
  122. 122. Impostor 作成方法
  123. 123. Impostor - 作成方法 Fortniteでは公開されているプラグイン 「Impostor Baker」を使用しているとの事 ● 「Fortniteを支える技術」より ○ https://www.slideshare.net/EpicGamesJapan/fortnite-97791917/70
  124. 124. Impostor - 作成方法 ImpostorBaker ● https://github.com/ictusbrucks/ImpostorBaker ○ Latest commit f064092 on 19 Mar で検証
  125. 125. Impostor - ImpostorBaker リンク先のページ右側から「Clone or download」 →「Download ZIP」
  126. 126. Impostor - ImpostorBaker Zipを解凍して、プロジェクトの「Plugins」フォルダ以下にコ ピーする
  127. 127. Impostor - ImpostorBaker メニューバーの「編集」→「Plugins」、 Pluginsウインドウの左側「Project」 / 「Other」 「ImpostorBaker」のEnabledをONに
  128. 128. Impostor - ImpostorBaker コンテンツブラウザの右下「表示オプション」で「プラグイン コンテンツを表示」をON 一覧から「ImpostorBaker コンテンツ」
  129. 129. Impostor - ImpostorBaker 「Maps」フォルダの「Generate_Impostor_Map」を開く
  130. 130. Impostor - ImpostorBaker UE4.20だとBPエラーが出ているので修正する。 「BP_Generate_ImposterSprites」のConstruction Script
  131. 131. Impostor - ImpostorBaker アウトライナで「BP_Generate_ImposterSprites」を選択 詳細欄の「2)Render Frames」ボタンを押すと生成
  132. 132. Impostor - ImpostorBaker 左が元メッシュ。右がImpostor
  133. 133. Impostor - ImpostorBaker マテリアルをアセットとして出力 「3)Create Static Assets」ボタンで出力できる 出力先、名前はデフォルト欄の New Asset*辺りで設定
  134. 134. Impostor - ImpostorBaker マテリアル出力 ● ※現在多分、ライトが反転してる
  135. 135. Impostor - ImpostorBaker マテリアル出力 ● ※出力した法線マップの「Flip Green Channel」をONに (末尾に_Normalが付いたテクスチャ)
  136. 136. Impostor - ImpostorBaker マテリアル出力 ● ※同じようなライティングに
  137. 137. Impostor - ImpostorBaker マテリアル出力 ● ※一度書き出した後、設定を変えて同じテクスチャに書 き出し直したい場合は ○ 「2) Render Frames」をしてから「4)Overwrite Existing Assets」を行う
  138. 138. Impostor - ImpostorBaker Static Meshをアセットとして出力。 コンポーネントの「ProceduralMesh」を選択して、 「Create StaticMesh」ボタン。 保存先を聞かれるので 指定。
  139. 139. Impostor - ImpostorBaker Static Meshが保存できたら、一度開いてマテリアルを先程 出力したマテリアルインスタンスに差し替えておく
  140. 140. Impostor - ImpostorBaker Static Mesh出力 ● ※もし、メッシュがやたら点滅している場合はBoundsが おかしい。 ○ スタティックメッシュエディタのBounds Extensionあたりを上げ て調整する
  141. 141. Impostor - ImpostorBaker Static Mesh出力 ● ※ツールバーのバウンドを可視化して調整する ○ バウンド表示は青いライン
  142. 142. Impostor - ImpostorBaker これでImpostorメッシュ出来上がり!
  143. 143. Impostor - ImpostorBaker 違うメッシュで生成したい場合
  144. 144. Impostor - ImpostorBaker - メッシュ変え 元メッシュのマテリアルを編集する必要がある ● 特定の処理をマテリアルに追加する
  145. 145. Impostor - ImpostorBaker - メッシュ変え マテリアルを開く。 [MakeMaterialAttributes]ノードを作成
  146. 146. Impostor - ImpostorBaker - メッシュ変え 出力部分を先程作成した[MakeMaterialAttributes]につな ぎ直し
  147. 147. Impostor - ImpostorBaker - メッシュ変え マテリアルエディタ左側にある詳細欄の「Use Material Attributes」にチェックを入れる
  148. 148. Impostor - ImpostorBaker - メッシュ変え [ImposterCaptureSwitch]ノードを作成。 先ほど繋ぎ変えた[MakeMaterialAttributes]から入力し、 最終出力に流す。 マテリアルはこれでOK
  149. 149. Impostor - ImpostorBaker - メッシュ変え 生成したい元メッシュをレベルに配置する
  150. 150. Impostor - ImpostorBaker - メッシュ変え レベルに配置しているBP_Generate_ImposterSpritesの 「Static Mesh Actor」に生成したいメッシュを指定する
  151. 151. Impostor - ImpostorBaker - メッシュ変え 後は通常通り「2)Render Frames」で生成して 「3)Create Static Assets」で保存する
  152. 152. Impostor - ImpostorBaker 「BP_Generate_ImposterSprites」の他のオプション
  153. 153. Impostor - ImpostorBaker - オプション - Impostor Type Impostor Type ● Impostorのテクスチャをどの範囲で生成するか
  154. 154. Impostor - ImpostorBaker - オプション - Impostor Type Impostor Type ● Full Sphere View ○ 360度で生成する ○ 周囲どこからでも見られて問題が出ない
  155. 155. Impostor - ImpostorBaker - オプション - Impostor Type ● Full Sphere View ○ ※現在、Full Sphere Viewでそのままマテリアル出力しても 正常に出ない
  156. 156. Impostor - ImpostorBaker - オプション - Impostor Type ● Full Sphere View ○ ※出力したマテリアルインスタンスを開き、 「Full Sphere_3」にチェックを入れると正常に表示されるよう になる
  157. 157. Impostor - ImpostorBaker - オプション - Impostor Type Impostor Type ● Upper Hemisphere Only ○ 水平より上側だけ生成 ○ 下から見上げられる事が無ければおおよそコレ ○ 見上げると破綻する ○ その分、上側の枚数が 多いのでキレイ
  158. 158. Impostor - ImpostorBaker - オプション - Impostor Type Impostor Type ● Traditional Billboards ○ 水平だけ生成 ○ 円柱状なら使える……?(スミマセン、どう使うか余りイメージ出来ません) ○ 何か傘みたいなの何……?
  159. 159. Impostor - ImpostorBaker - オプション - 撮影枚数 撮影枚数 ● Frames XYで縦横何枚撮影するか指定できる ○ 減らすと枚数が少なくなるので、斜めから見るとゴーストっぽく 見えるようになってしまう ○ 上げると見た目の解像度が低くなってしまう
  160. 160. Impostor - ImpostorBaker - オプション - 撮影枚数 撮影枚数 ● 左: 16、右: 4
  161. 161. Impostor - ImpostorBaker - オプション - テクスチャ解像度 テクスチャ解像度 ● Resolution
  162. 162. Impostor - ImpostorBaker - オプション - レンダリング解像度 レンダリング解像度 ● Scene Capture Resolution ● 細いメッシュとかは上げると きちんとレンダリングされる ● 上げると生成に時間かかる様に
  163. 163. Impostor LODにImpostorを入れる
  164. 164. Impostor - LOD+Impostor 生成したImpostorのスタティックメッシュをコンテンツブラウ ザで右クリック 「アセットアクション」→ 「エクスポート」 で一旦FBXファイルで書き出す
  165. 165. Impostor - LOD+Impostor 前に記述した「LODインポート」ページの手順でLODに先 程のFBXを追加する
  166. 166. Impostor - LOD+Impostor インポートできたら、Material Slotsにマテリアルが追加され ている(WorldGridMaterialが設定されている筈)。 これをImpostorで生成した マテリアルに差し替える
  167. 167. Impostor - LOD+Impostor ※再インポートすると法線が反転するのか、法線マップの 「Flip Green Channel」はOFFで大丈夫です
  168. 168. Impostor - LOD+Impostor これで距離に応じてImpostorに切り替わり!
  169. 169. 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/
  170. 170. もくじ ● What’s LOD? ● LODを使うにあたって諸注意 ● Static Mesh ● Skeletal Mesh ● Animation ● Cascade ● HLOD ● Impostor ● さいごに
  171. 171. さいごに LODを使用する事によって、処理速度に一押しできます。 UE4には沢山のLOD機能がありますので、容量、用法に注 意しつつ実装してみてください。
  172. 172. さいごに 今回のスライドから一歩踏み込んだ、非常に参考になる Epic Games Japan篠山さんの資料 ● UE4アセットリダクション手法紹介 ○ https://www.slideshare.net/EpicGamesJapan/ue4-95238296
  173. 173. 以上!

×