Unityで3Dゲーム作る上で、パフォーマンスは常についてくる問題です。
その中でも最も大きなウェイトを占めるのが メッシュ と テクスチャ を使っての3Dモデル描画です。
そして今回紹介する MeshBaker はメッシュ結合の最終兵器とも言えるツールなのです!
そんなにすごいの?
見たほうが早いでしょう。
下はとあるアセットのビルです。
一つのオブジェクトに複数のマテリアルが当てられています。 ドローコール(Batches)が非常に多く、描画が重いと想像できます。
これをMeshBakerを使って結合すると
Batchesが7になり、ドローコールが8分の1になったことがわかります。
プロファイラで見ると
ほとんどデフォルトの設定で結合しましたが、レンダリングとメモリのグラフがぐっと下がっているのがわかります。
利点
マテリアルやシェーダが一致している必要がない
ドローコールを減らす機能として、Unity自体の機能にdynamicバッチング、staticバッチングがあります。
が、これらを利用するためはマテリアルが同じである必要があったり条件が厳しいです。
MeshBakerは、似たようなシェーダーであれば、気にせず結合することができます。
SkinnedMeshRendererを結合できる
人物モデルなどに必要な SkinnedMeshRenderer は dynamicバッチングも static バッチングも効きません。
が、MeshBakerなら結合可能です。
しかも、複数のSkinnedMeshRendererやMeshRendererを単一のSkinnedMeshRendererに結合可能です。
アニメーションもそのまま!
この機能により、小物を人物モデルにくっつけたりできます。
ランタイム結合
なんとアプリの実行中に結合することもできます。
評価版あり
無料&機能制限のおためし版もあります。
私はMeshBakerを2年以上使い続けていますが、ずっとサポートも続いており安心して使えるツールです。
次回から何回かに分けてMeshBakerの使い方を紹介していきます。