読者です 読者をやめる 読者になる 読者になる

いんでぃーづ

個人でゲーム開発してる上で吸収したモノたち紹介。UnityからGIMPまでなんでも。デザインとかゲーム論まで語っちゃうよ的なアレ。

MENU

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

Amazon.co.jpアソシエイト