オブジェクトや高画質のテクスチャを大量に使うと、シーンが激重になる。シーンが重くなると動作もカクついていろいろヤバいから、アセットを使ってメッシュやテクスチャを結合させて良い感じにさせたい。

使用するアセットのダウンロード

メッシュを結合するアセットは沢山あるけど、Mesh Bakerはメッシュとテクスチャを結合できて良い感じ。類似のアセットと比較しても軽い(気がする)

無料版と有料版($86.90)とあるけど無料版を試してから有料版を買ってもいいと思う。

ついでに結合するオブジェクトも用意しておく。

MeshBakerの使い方

メニューのGameObject→Creat Other→MeshBaker→好みの結合方法を選択。

今回はメッシュとテクスチャを結合したいから、TextureBaker and MeshBakerを選択。

 

TextureBaker(0)というオブジェクトがヒエラルキーの一番下に出てくるからこれを選択。

 

インスペクタ画面からOpen Tools For Adding Objectsを押す。

 

ツールが勝手に開くからSearch For Meshs To Addのタブを選択して、Exclude meshes with out-of-bounds UVs のチェックを外し、結合したいオブジェクトを選択した状態でAdd Selected Meshes To Targetボタンを押す。

 

結合するテクスチャ(マテリアルも)の保存先を指定。

 

次にテクスチャをどの様に結合するかの設定。今回はConsider Mesh Uvs にチェック。

テクスチャの結合はこれでおk。

確認して問題なかったら下の「Bake Materials into Combined Material」を押す。

 

ちなみに結合したテクスチャをライトベイクしたい場合は、generate_new_UV2_layoutを選択する。

 

あとは自動で結合してくれる。オブジェクトの数によって結合には時間がかかるし、メモリが足りないとエラーが起こりやすいから、事前にメモリ解放しておくといい。

 

成功した時はコンソールにCreated Atlasesのテキストが出る。

 

今度はメッシュを出力する。
TextureBaker(0)の中のMeshBakerオブジェクトがあるから、インスペクタの最下部のBakeを押して、結合したオブジェクトを出力。

 

MeshBaker-mesh-meshというオブジェクトが出てれば出力成功。

 

結合するものが多ければ多いほど、マテリアルの色味が変わってくるので、最後に確認して良い感じの色味に調整した方がいい。

最後はメッシュコライダーを追加すれば出来上がり。

 

結合前と見比べると、Batch数とSetPass calls値が半分以下になってる。今回結合したアセット自体も特に重い訳ではなかったけど、メッシュの多いアセットやステージでは体感的にも動作が軽くなるのでMeshBakerはめっちゃ良い。

さいごに

慣れるまでエラーが出る事も多いかもしれないけど、グラフィックパフォーマンスの最適化には必須な事だし、扱うオブジェクトが少なくなるのは便利。メッシュ結合のアセットの中でもMeshBakerは自由度も高いのでオススメ。