今日のパブリッシャーセール
- Mesh Combine Studio
- セルベースで自動的にメッシュを結合する最新の最適化エディタ。
- $48.60 => $24.30 50%OFF 【開催期間】2017年10月25日〜不明(期間限定)
- セルベースで自動的にメッシュを結合する最新の最適化エディタ。
お知らせ
前回に引き続き、遅くなりましたが続編記事です。
このネタに飽きてる方すみませんがもう少しお付き合いください。
セールの紹介は、凄いアセットが出て来たら即更新してお伝えします。
セール終了日が近いアセットのお知らせ1
昨日のShadero Spriteは11月5日まで(今日か明日)
セール終了日が近いアセットのお知らせ2
「teliotrewohs」さんからセールの情報を頂きました。ありがとうございます!
・HQなホラー系3Dモデル($11.88〜$16.20 75%OFF)8種類がそろそろ終了予定。
詳しくはこちら↓
・魔法を前方に飛ばせる大人気パーティクル
「Magic Arsenal」が11月11日まで50%OFF 前回セール記事はこちら
スクリプト / モデリング
$48.60 => $24.30 50%OFF 【開催期間】2017年10月25日〜不明(期間限定)
自動セルベースのメッシュ結合型エディタで、負荷の掛かるゲームのパフォーマンスを大幅に向上させることができる最適化ツールです。
※どのプラットフォームにも使用できます。
今回は追加情報をお送りします。
このアセットを初めて知った方は、まずはこちらからご覧ください。
1.2017年11月2日に初めて紹介しました。
2.実際に使って見た記事(エディタの各部について)
今日のメニュー
- 最適化が有効なシーン
- セルベースの仕組み
- 結合したオブジェクトを観察
- オクルージョンカリングが使えるか
- Dungeon Architectのシーンで試してみた
- コライダーの扱い
- まとめ
最適化が有効なシーンとは?
効果的な例
- マップが広くて3Dモデルが大量にあるシーン(キャラクターが歩き回るような)
- 「Dungeon Architect」など実行中に動的に生成されるマップや建造物を軽くしたい
- 壁や床などstatic設定(固定された背景モデル)が複数ある
効果が得られない例
- オブジェクト数が少ない
- 2Dゲーム
- 同一のマテリアルを持つオブジェクトが少ない
セルベースの仕組み
Mesh Combine Studioは、自動セルベースのメッシュコンバイナであり、ゲームのパフォーマンスを大幅に向上させることができます。どのプラットフォームのゲームでも使用できます。
Mesh Combine Studioの特徴は「セルベース」で最適化をかけてくれることです。
前回サラッとお伝えしましたが、今回はもう少し掘り下げて紹介します。
赤矢印の項目「Cell Size」はとても大切な項目で、マップの広さに合わせて分割数をきめます。
適当にCube(かなり大きな)を配置しただけのシンプルなシーンです。
- 緑色のエリアはデフォルトでも広大ですが、広さが足りなければスケーリングでマップがすっぽり入るように準備します。(もしくは最適化用のPrefabを複数配置してもよさげ)
- 「Output Settings」の「Cell Size」で分割数を決めます。
- サイズはコレがベストって値は無くて、実行して最適な値を見つける作業になると思います。
- オクルージョンカリングを発揮させたい場合は、カリングで決めたセルのサイズと同程度の分割数にすると良さそう。
結合したオブジェクトを観察
結果がどうなってるか気になる方の為に動画を用意しました。
セルサイズは32辺りを指定しており分割数はちょっと多めな指定です。
最適化前はもっとバラバラで大量のオブジェクトでしたが、かなり数が少なくなりました。
マテリアルが同じものを結合対象にしているみたいです。
https://twitter.com/AssetLove/status/926836518844473347https://twitter.com/AssetLove/status/926836518844473347
静的に分割した場合、オブジェクトがポリゴンレベルでスパッと切れるのではなくて、複数のメッシュが1つにまとまります。
— AssetSaleLove @汗人柱 (@AssetLove) 2017年11月4日
fbxでの保存は別のモデリング系アセットを使わないと難しいかも。
詳しくは次回のブログで書きます〜 pic.twitter.com/Ua7oxs5UVI
https://twitter.com/AssetLove/status/926836518844473347
オクルージョンカリングを試した
カメラで映ってる部分以外は非表示にするUnity標準のカリング機能。
少しだけ試した結果報告です。
ドローコールは大幅に削減されるだけでなく、MCSはメッシュをセルに結合するため、カリングのパフォーマンスも大幅に向上します。少ないオブジェクトを選択してzソートする必要があります。
エディタモード中にセルを結合して、オクルージョンカリングでベイク。
ビジュアルモードで確認するとこのような感じにカリングされます。
ちなみに、
「静的」に生成した場合はオクルージョンカリングができますが、
「動的」に生成した場合はカリングがベイクできないので使えないと思います。
動的とは、実行中にメッシュを結合する機能の事で、 第一回目の記事で紹介しました。
RunTimeモードの事です。
Dungeon Architectのシーンで試してみた
作者さんが一番オススメする環境を取り急ぎ作って用意しました。
使用アセット
- 「Dungeon Architect」ランダムでダンジョンを作ってくれるエディタ
- 「Top-Down Interiors」K4さんの人気インテリア3Dモデル
- 「Camera Path Animator - Animate Cutscenes with Splines」カメラアニメ
ライトマップ焼き込み中のキャプチャです。時間短縮のためご理解ください。
最適化前
※動画クリックで一時停止できます。ブログが重たい時などに。
↑ FPS 29〜56 / Baches 200〜300 / Saved by baches 6000 / SetPass Calls 65
↓ FPS 80〜89 / Baches 230〜370 / Saved by baches 2 / SetPass Calls 68
最適化後
FPSは改善しましたが、BachesとSetPass Callsが微妙に高くなるモヤモヤ感。
フォーラムの投稿では低くなる結果が出ていますし、私が何か見落としてるかも。
原因さえわかれば、さらに高速化できそうな感じがしますね。
※ライトマップを焼いてる最中にキャプチャした動画なので重たいです。
※オクルージョンカリングは両方とも設定してません。
※正確に検証するため、クオリティ設定の「V Sync Count」を「Don't Sync」に指定しています。試し終えたらちゃんと元に戻しましょう。
コライダーの扱い
https://twitter.com/AssetLove/status/926852324898758656
オプションでAdd Mesh Collidersにチェックを入れてから生成すると
MeshColliderが出力されます。MeshColliderの負荷が気になる方は元オブジェクトのコライダーをそのまま流用すればOKかなと思います。
2つのCubeを結合するとColliderがMesh Colliderに変わる。
まとめ
- 次回はもっと豪華なデモシーンで試してみたい
- 「Baches」と「SetPass Calls」が増えるのが気になる。
- カリングした際のFPS撮るの忘れた。
- 他の最適化エディタと比べてみる?
- 「コレ試して欲しい」などあればコメントください。