【Unity】LODでパフォーマンスを向上させる
こんにちは(ؓؒؒؑؑؖؔؓؒؐؐ⁼̴̀ωؘؙؖؕؔؓؒؑؐؕ⁼̴̀ )
今回は、Unity 5から無料版(Personal Edition)でも使えるようになった、LOD(Level Of Detail)をチュートリアル形式で紹介していきます。
Level Of Detailとは、一言で説明すると、カメラからより離れている被写体をよりポリゴン数を減らしたモデルに替えて描写することです。
カメラから遠くにあるオブジェクトは小さくて細かい点までは見にくいので、とても合理的です。そうすることで処理を減らせるので、ハードウェアの負荷を減らせます。嬉しい!٩(๑´3`๑)۶
えっ、そんなことできんの?難しそう・・・って思いますが、やってみると意外に簡単。(びっくりした∩(;; ;°;ਊ°;)∩)
===================
この記事を書いた時のバージョン(Mac)
・Unity PersonalEdition 5.1.3f1
===================
LOD自体はUnityの機能ですが、対象となるモデルのポリゴン数の違うモデルを用意しなくてはならないので、それはAssetに頼ることにします。
(デザイナーさんを発狂させたいなら、作り直してもらうのもアリだね!)
「Simplygon」 - 個人使用は無料 (2015/8/30現在)
今回は、Unityちゃんを使って説明していきます。
まずは適当にUnityちゃんを配置。
そしたらWindowメニューからSimplygonを開く。
HierarchyでUnityちゃんを選択して、Simplygonタブで一番左の「Quick Start」を選び、「LOD Chain」の青いバーをクリック。
*この時下の方に警告が出てますが、無視して問題ないです。複数のマテリアルを一つにまとめる機能を使う時に関係するっぽいですが、今回は使わないので。
今回はポリゴン数を減らしたモデルを二体作るので、上の生成数は 2 にし、下のポリゴン数をどのくらい減らすか(%)は 50 のままにして、一番下のロゴをポチッとな。
そうすると処理が始まるので、処理後に自動でモデルをダウンロードするよう、「Download Assets Automatically」にチェック。
しばらく待つとAssetsの「LODs」フォルダの中に生成されているので、「unitychan_LODGroup」をHierarchyに突っ込む。
もともとのUnityちゃんの名前の後に、「_LOD0」を加えておく。(「_LOD0」がポリゴン数を減らしていない、もととなるモデルを表す)
「unitychan_LODGroup」を選択して「LOD Group」コンポーネントの中の緑のとこを右クリックして、「Insert Before」を選択。
「LOD 0」を選択して、さっき名前を変えた「unitychan_LOD0」を「Renderers;」の Add にドラッグ&ドロップ。
ポップアップが出ますが、Yes でおk。
これで終わりです!
それではまず、ポリゴン数を減らしたUnityちゃんを見比べてみましょう!(灬╹ω╹灬)┣¨キ┣¨キ
・・・いかがですか?
LOD_0がもとのUnityちゃんで、LOD_1は50%ポリゴン数が減っていますが、大差ないですね。
しかし、さらに50%減ったLOD_2だとちょっと目の辺りが変です。これは睫毛なんかは複雑なポリゴンで表現されているので、ポリゴン数を減らされるとどうしても見た目が変になってしまいます。
Simplygonではできませんが、部位選択でポリゴン数を減らせるAssetなんかがあればなおよし!ですね(๑˃̵ᴗ˂̵)و ヨシ!
実際にはこの程度の差異であれば全く気にならないと思うので、さらにポリゴン数を減らしてもいいかもしれません。
次は、実際に遷移の様子を見てみます。
「LOD Group」コンポーネントのカメラをスライドすると・・・
遷移してるのがわかります。
実際にポリゴン数が減っているかは下の動画、右上のパネルで「Tris(ポリゴン数)」、「Verts(頂点数)」が変化しているのでわかると思います。
(埋め込みだとちょっと確認しずらいです・・・)
というわけで、今回はSimplygonでモデルのポリゴン数を減らし、LODを使う方法を紹介しました!٩(๑❛ᴗ❛๑)۶
単純にポリゴン数を減らしたい場合でも、Simplygonは使えます。
Simplygonタブの「Reduction」で保持するポリゴンのパーセンテージを指定して、ロゴをクリックしてできたモデルを使うだけ。とても簡単です。
パフォーマンスが気になる方、ぜひSimplygonを試してみてはいかが?