こちらは Unity #3 Advent Calendar 2019 3日目の記事です
TL;DR
重たいモデルを、有償、無償のアセットを利用してパフォーマンス改善します。
基本的な戦略は、見た目が悪くならない程度に、不要なものを間引いていくという感じになります。
それぞれの手順を一つ実施するだけも改善は可能です。
長いので、気になったところだけを読んで試してもらえたらと思います。
重いモデルを工夫して取り込む5ステップ
- 不要なモデルを削除する(取り込んでいない・・・)
- モデルの頂点数を減らす
- LOD を設定する
- MeshBaker で Bake する
- オプション編
- おまけ(5ステップ・・・)
ここからは各手順について少し掘り下げて、最後におまけを書いています。
1. 不要なモデルを削除する
ここは手動でやります。
(便利なアセットがあるなら教えていただきたい。)
画面に表示されなていなくても、カメラの表示範囲に入っていると処理としては重くなります。
Unityアセットに手を入れず使用しているときや、屋内にしかいないのに屋外にモデルがたくさんあるなど、
意味のないモデルは削除しておきましょう。
当たり前だけど忘れがちなところの一つだと思います。
張りぼてみたいになってしまいますが、カメラから見たらわかりません!
2. モデルの頂点数を減らす
「Mesh Simplify」or「Mesh Optimizer」を使用して頂点数を減らします。
- Mesh Simplify は有償ですが、どのバージョンのUnityで使用でき、使ってみるとかゆいところに手が届くツールです
- Mesh Optmizer は無料で使用することができますが、Unity 2019.2.1以上でないと使用できません。
どちらも簡単に使えます。詳細は過去記事を見てもらえたらと思います。
- Mesh Simplify -> 有償ゆえにかゆいところに手が届く、ローポリ化 Asset の Mesh Simplify を使ってみた
- Mesh Optimizer -> 無料でハイポリをローポリにできる、 Mesh Optimizer を使ってみた
3. LODを設定する
「Automatic LOD」or「Amplify Impostors [BETA]」を使用してLODを設定します。
- Automatic LOD は自動で Verts を削減したモデルを LOD に設定してくれる優れたツールです
- Amplify Impostors[BETA] はモデルを写真のビルボード形式にするので、うまくすると劇的な改善につながるツールです
どちらも簡単に使えます。詳細は過去記事を見てもらえたらと思います。
- Automatic LOD -> 1クリックでLODの設定からVertsの削減までしてくれる、Automatic LOD を使ってみた
- Amplify Impostors[BETA] -> LOD として設定することで、パフォーマンスを改善できる Amplify Impostors [BETA] を使ってみた
4. MeshBaker で Bake する
Unity のパフォーマンス改善でときどき出てくる、Batches と SetPass calls を改善します。
誤解を恐れずに言うと、MeshBaker は関連する Mesh やテクスチャーを一つに固めてドバっとロードして表示します。
このアセットも簡単に使えます、詳細は過去記事を見てもらえたらと思います。
ちなみに、ライトの Bake とは関係ありません。
5. オプション編
場合によっては設定することでパフォーマンスの改善が望めるものです。
DynamicBatching を On にする
配置しているオブジェクトが同じマテリアルなどを使用している場合に有効です。
同じモデルをコピーして利用するなど、現実的によくあると思うので、そういうときに設定してみてください。
6. おまけ
MeshBaker ではなく、ライトを Bake する
言わずもがなかもしれませんが、これもとても効果の高い対応方法です。
これだけで一つの記事になってしまうので、ここでは割愛させてもらいます。
いろいろなサイトで紹介されているので探してみてください。
スポットライト配置しすぎ問題
スポットライトは処理に負荷がかかる可能性があります。
特に範囲の大きなスポットライトは、処理に悪影響を与える可能性があるので、そういうライトが無いか見直してみてください。
Scene ビューが重かった
Unity で開発しているときに Scene ビューを使うと思いますが、Scene ビューの描画もパフォーマンスに影響します。
もちろんビルドしたモジュールには関係ありませんが、
パフォーマンス改善しているときに気づかないと無駄な作業をすることになります。
パフォーマンス改善時には閉じるなどしておきましょう。
Automatic LOD と Mesh Simplify
同じ会社が作っているアセットで、Automatic LOD を購入すると Mesh Simplify も含まれています。
安くなっているときに購入が吉です。