いんでぃーづ

ゲームいろいろ、いろいろ自由

MeshBaker:Unity3Dパフォーマンス改善の最終兵器

Unityで3Dゲーム作る上で、パフォーマンスは常についてくる問題です。

その中でも最も大きなウェイトを占めるのが メッシュテクスチャ を使っての3Dモデル描画です。

そして今回紹介する MeshBaker はメッシュ結合の最終兵器とも言えるツールなのです!

そんなにすごいの?

見たほうが早いでしょう。

下はとあるアセットのビルです。

一つのオブジェクトに複数のマテリアルが当てられています。 ドローコール(Batches)が非常に多く、描画が重いと想像できます。

f:id:sugar_affordance:20161220225711j:plain

これをMeshBakerを使って結合すると

f:id:sugar_affordance:20161220225825j:plain

Batchesが7になり、ドローコールが8分の1になったことがわかります。

プロファイラで見ると

f:id:sugar_affordance:20161220230059j:plain

ほとんどデフォルトの設定で結合しましたが、レンダリングとメモリのグラフがぐっと下がっているのがわかります。

利点

マテリアルやシェーダが一致している必要がない

ドローコールを減らす機能として、Unity自体の機能にdynamicバッチング、staticバッチングがあります。
が、これらを利用するためはマテリアルが同じである必要があったり条件が厳しいです。
MeshBakerは、似たようなシェーダーであれば、気にせず結合することができます。

ドローコールバッチング - Unity マニュアル

SkinnedMeshRendererを結合できる

人物モデルなどに必要な SkinnedMeshRenderer は dynamicバッチングも static バッチングも効きません。
が、MeshBakerなら結合可能です。
しかも、複数のSkinnedMeshRendererやMeshRendererを単一のSkinnedMeshRendererに結合可能です。
アニメーションもそのまま!
この機能により、小物を人物モデルにくっつけたりできます。

ランタイム結合

なんとアプリの実行中に結合することもできます。

評価版あり

無料&機能制限のおためし版もあります。

Mesh Baker Free


私はMeshBakerを2年以上使い続けていますが、ずっとサポートも続いており安心して使えるツールです。

次回から何回かに分けてMeshBakerの使い方を紹介していきます。

indie-du.com

indie-du.com


“Unity” and Unity logos are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere, and are used under license.


免責事項

当サイトの広告バナー、リンクによって提供される情報、サービス内容について、当サイトは一切の責任を負いません。

また、当サイトの情報を元にユーザ様が不利益を被った場合にも、当サイトは一切の責任を負いません。

すべて自己責任でお願いします。