今回はアセットの紹介をしていきます。
紹介するのはMesh Combine Studio 2。
セルベースでメッシュを結合するアセットです。
お得なセール情報
現在アセットストアでは春のアセット祭りを開催中
500以上のアセットが50%オフになり、さらに割引率の高い数量限定のセールも行われています
今回紹介するMesh Combine Studio 2もセール対象アセットです
どんなアセット?
Mesh Combine Studioは、ゲームのパフォーマンスを劇的に向上させることができる自動グリッドセルベースのメッシュコンバイナーです。
空間をグリッドセルで分割し、結合することでパフォーマンスの向上を図る最適化アセットです
開発環境
Unity 2020.3.26f1
Mesh Combine Studio 2 ver2.996
Stylized Town ver1.0
ステージの背景として使用、SRPにも対応している街アセットです
ドキュメント
Mesh Combine Studio 2 Documentation |
インポートの確認
インポート完了時はこんな感じです。
基本的に使うのはMeshCombineStudioプレハブのみです
テストシーンの実行
TestScenes内に動作確認が行えるシーンがあらかじめ用意されています
URPの場合はAssets/MeshCombineStudio/TestScenes/Sourcesにあるマテリアルを事前に一括変換しておきましょう
Dynamic Object Exampleシーンを開いてみます
プレイしても最初は何も表示されません
シーン内のSpawnerオブジェクトを選択し
InspectorからObjectSpawnerコンポーネントのSpawnにチェックを入れると
シーン内に50個ほどオブジェクトが生成されます。これはSpawnにチェックを入れるたびに生成されます
後はキーボードのTabキーを押すとMeshCombineStudioのオンオフを切り替えることができます
MeshCombineStudioが有効な間はFPSが改善されているのがわかります
プロファイラーで比較してみるとこんな感じ
無効時
有効時
Draw CallsとBatchesが大きく削減されています
実際に試してみる
ステージを配置して、Mesh Combine Studioを一から設定してみます
ステージの配置
ステージはこのアセットを使います、ちょうどセール中の街アセットです
付属のSampleシーンをそのまま使います
MeshCombineStudioの設定
Assets/MeshCombineStudioにあるMeshCombineStudioプレハブをシーンに配置します
このプレハブにアタッチされているMeshCombinerコンポーネントを編集していきます
結合したいオブジェクトを設定
SearchParentGameObjectsにシーン内にある結合したいオブジェクトの親を紐づけます
※今回は静的なオブジェクトを結合するので、
これらのオブジェクトは子も含めてBatching Staticが有効になっている必要があります
逆に動的なオブジェクトの場合、無効にしないとエラーがでます
結合対象の検索
結合する前に、結合対象のオブジェクトを検索する機能をやってみます(やらなくても結合はできる)
MeshCombinerにあるSearchボタンを押すと、
SearchParentGameObjectsに登録したオブジェクトの中で結合できるものを表示します
これはSceneビューにも表示されます
結合の実行
Combineボタンを押すと結合処理を実行します
結合処理に成功すると、
Inspectorの下の方に、結合前と結合後でどの程度違いが出ているかが表示されます
Batchesが大きく削減されているのがわかります
結合前後の切り替えはボタンで簡単に行えます
Enable Original Objectsを押すと結合前の元のオブジェクトを表示し、
Enable Combined Objectsを押すと結合後のオブジェクトを表示します
セルの大きさの調整
分割するセルの大きさはOutput Settingsで設定できます
セルが大きいほど描画回数は減らせますがオクルージョンカリングの効率は低下するのでシーンごとに設定が必要です
他MeshCombinerコンポーネントの細かいパラメータについてはドキュメントが参考になります
まとめ
・Mesh Combine Studio 2はScene内の空間をグリッドセルに分割し、メッシュを結合する最適化アセットです
・実際にステージを配置し結合してみましたが、Draw CallsとBatchesの削減を確認しました
今回は静的なオブジェクトを結合しましたが、
動的なオブジェクトや自動生成されたステージに対しランタイムで結合することもできます
プレハブをシーンに置いてボタンを押すだけで手っ取り早く最適化できる手軽さがオススメポイントです
以上です
他の方の関連記事など
他のアセットの紹介記事はこちら↓
※本記事にはAssetStoreアフィリエイトリンクが含まれています。
他、間違っている箇所、わかりにくい所がありましたらコメントにお願いします。