Raspberlyのブログ

Raspberlyのブログ

Unityネタをメインとした技術系ブログです。にゃんこ大戦争や日常なども。そろそろブログタイトル決めたい

【アセット紹介】Mesh Combine Studio 2 でステージを軽量化する【Unity】

今回はアセットの紹介をしていきます。
紹介するのは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の削減を確認しました

今回は静的なオブジェクトを結合しましたが、
動的なオブジェクトや自動生成されたステージに対しランタイムで結合することもできます
プレハブをシーンに置いてボタンを押すだけで手っ取り早く最適化できる手軽さがオススメポイントです

 

 

以上です

 

他の方の関連記事など

www.asset-sale.net

zenn.dev

 

 

 

 

他のアセットの紹介記事はこちら↓

raspberly.hateblo.jp

 

 

 

※本記事にはAssetStoreアフィリエイトリンクが含まれています。

他、間違っている箇所、わかりにくい所がありましたらコメントにお願いします。