ゼルダの伝説 ブレスオブザワイルドやPAL World(パルワールド)などのオープンワールドゲームなどでは多くのオブジェクトを表示する必要がありますが、そのすべてを大量に表示してしまうと描画負荷がとんでもないことになります。そのような問題を解決するために、対象のオブジェクトがどのぐらい映っているかに対して、ハイポリ・ローポリ・非表示!などを簡単に切り替える方法がLOD Groupというものを使うことで簡単に実装できます!
LOD Groupとはどんなもの?
LODとはLevel of Detailの略です。オープンワールドゲーム以外でも、Apexのようなバトロワ系のゲームでも遠くのアイテムは見えなくなったりしています。こういったところでもLOD Groupが利用されています。
LOD Groupを利用した例
まずは見たほうが早い!ということでサンプルとしてバナナを3段階でLOD Groupに設定しました。右側がLOD Groupで、左側は何も設定しいないバナナです。
- 近くだとちゃんと見える
- 少し離れるとただの黄色いCube
- しっかり離れると見えなくなる
この見え具合に関してはインスペクターでお手軽に調整が可能です。今回はCubeにサクッと切り替わっていますが、実際にはローポリのモデルに段階的に切り替えることで、自然に描画負荷を落とすことが出来ます。
LOD Groupに出来ること
LOD Groupでは次のようなことが設定可能です。
- カメラから表示物が映っている大きさに応じて、表示するオブジェクトを切り替える
- 各LODのトライアングル数の確認
- 設定したLODのプレビュー
- Project Settingでの大本の表示割合調整(Bias:バイアス)
- Cross Fadeの設定(制限あり)
今回は上4つに関して解説します。Cross Fadeは2022以上が必要だったり色々と設定に制限があるため、また機会があればね!
LOD Groupの使い方
では実際にLOD Groupを使って見たいと思います。表示を切り替えたいモデルがある場合は利用してもかまいませんが、私の方では色の異なるCubeをLOD Groupとして設定してみようと思います。
LOD Group設定:準備まで
まずは設定を入れるために必要なものを用意します。ここでは色違いのCubeをシーン内に2つ用意してください。実際にLODとして扱いたいモデルがある場合はNearCubeとFarCubeを適宜置き換えてください。
- テスト用のマテリアルを2つ用意
- 近い時用のMaterial作成
- 名前変更:NearMaterial
- 色は青色
- 離れた時用のMaterial作成
- 名前変更:FarMaterial
- 色は赤色
- 近い時用のMaterial作成
- テスト用のオブジェクトを作成
- 近い時用のCube作成
- 名前変更:NearCube
- マテリアルを変更:NearMaterial
- 遠い時用のCube作成
- 名前変更:FarCube
- マテリアルを変更:FarMaterial
- 近い時用のCube作成
LOD Groupコンポーネント設定
ものが準備できたらあとは切り替え処理を作っていきます。
- 空のGameObjectを作成
- 名前変更:lod_test
- コンポーネント追加:LOD Group
- ヒエラルキー調整
- NearCubeをlod_testの子供に配置
- FarCubeをlod_testの子供に配置
- 各CubeのPositionを0,0,0に変更(重なるようにしてください)
- 不要なLODを削除
- LOD_2を右クリック>Deleteで削除
- LODにオブジェクトを登録
- LOD 0を選択
- 下部のトグルをオープン
- +ボタンを押す
- オブジェクトセット出来る場所にNearCubeをセットする
- LOD 1を選択
- 下部のトグルをオープン
- +ボタンを押す
- オブジェクトセット出来る場所にFarCubeをセットする
- LOD 0を選択
- 表示割合の調整
- カメラをドラッグアンドドロップで、どのぐらいの大きさで表示切り替えて良さそうかの目処を付けたり確認を行う。
- 各LOD(とCulled)の境目をドラッグアンドドロップで調整
- もう一度カメラをドラッグアンドドロップで確認。納得の行く割合に出来たらOK
動かしてみて確認
設定と確認の時点である程度満足行っていれば、あとはゲームで動かして最終確認をしてみます。
ちなみに自分の設定は下記の様な配分でした。ご参考までに!
色んなプラットフォームによって対応パラメータを変える(Bias)
おそらくデフォルトではBiasが2になっています。この数字はLODの表示割合に対する係数となっています。この数字はPCなどではちょうどよくても、モバイル向けに変更したい場合、同様の割合では耐えられない可能性があります。またこれらを個別で変える場合、プレファブなどの数が多いと対応は非常に困難です。
そういった場合、プロジェクトセッティングから一括で変更することが可能です。
- Project Settings
- Quality>LOD Biasの数字を変更
- この数字は大きいほどスペックを要求します。
モバイル向けでは0.5とかガッツリ下げてしまっても良いと思います。もちろんそれで必要なオブジェクトが見えなくならないように気をつけて調整を行ってください。
コメント