PR

【スカイリム2026】遠景の仕組みを理解して最適化してみよう – 第二回 草編

スカイリム

こんにちは。まとんです。

遠景の最適化第二回。今回は草キャッシュ編(No Grass In Objects)です。

    本記事は遠景生成で使う各ツール(xLODGen、NGIO、DynDOLOD)の操作方法が分かっている方を対象にしています。

    各ツールの使い方までは解説しませんのでご承知おきください。

    YouTubeなどを参考に、一度遠景制作に挑戦してみた後にご覧いただくと理解しやすいと思います。

    今回の解説範囲と使用ツール

    遠景は大きく地形、草、木や建物オブジェクトの3種類に分かれます。

    今回の解説は草のLODです。草のLODモデルは草キャッシュから生成します。

    草キャッシュの作成には No Grass In Objects(NGIO) を使用します。

    草キャッシュとは?

    草キャッシュとは、「No Grass In Objects(NGIO)」MODの計算処理を高速化するためのキャッシュファイルです。

    草キャッシュの生成ツールである「No Grass In Objects(NGIO)」は、草が生えるとおかしい場所に草が生えないように制御するツールです。

    まとん
    まとん

    家追加など、本来地面だったセルが改変された時にその整合性を取ってくれます。

    この時、「どこに草を生やしてどこに草を生やさないか」という情報をその場その場で確認するのではなく、事前に用意しておくことで最適化するのが草キャッシュです。

    まとん
    まとん

    パフォーマンス向上が期待できるので、LOD関係なく草キャッシュはおすすめ。

    その性質上、草キャッシュにはどこにどの草を生やすべきかという情報が座標レベルで全ワールド分入ってます。

    この情報をLODにも流用しようというのが、LODにおける草キャッシュの役割です。

    No Grass In Objects(NGIO)の設定について

    草キャッシュはMODページの手順に従って作れば良いだけなので、特に難しいことはありません。

    ただし、設定で気を付けた方が良い点が2点ほどありますので、それについて解説します。

    まとん
    まとん

    設定はGrassControl.iniで行います。

    草キャッシュ生成は時間がかかるので、何度もやり直すハメにならないよう気を付けましょう。

    草密度(Overwrite-min-grass-size)

    Overwrite-min-grass-sizeは、草をどのくらいの密度で生やすか決めます。

    この値が小さいほどふっさふさになりますが、パフォーマンスが悪化します。

    また密度を変更した場合、草キャッシュは作り直しになります。

    ですので、まずはキャッシュをオフにした状態で設定値を変更してみて、ゲーム内でどういう見え方とパフォーマンスになるか確認しておくのがおすすめです。

    参考までに、私の環境での計測結果をご紹介します。

    まとん
    まとん

    ホワイトラン城門前からツンドラを見た様子です。

    MODもりもりの環境で、キャッシュと遠景をOFFにして計測しました。

    利用した草MODは「Sacred Garden – A Grass Overhaul」です。

    Overwrite-min-grass-size=60
    Overwrite-min-grass-size=40
    Overwrite-min-grass-size=20

    まとめるとこんな感じです。

    Overwrite-min-grass-sizeドローコール(Grass)VRAM平均FPS
    607344.34GB44.4
    409504.32GB45.2
    2022984.37GB28.0

    Overwrite-min-grass-size=40まではあまり変化がなかったです。

    Overwrite-min-grass-size=20まで下げると(密度を上げると)ドローコールが激増し、FPSがかなり下がりました。

    まとん
    まとん

    密度を上げてもテクスチャが増えるわけではないので、VRAMには影響しないようです。

    見た目は画像の通り、密度が上がるほどツンドラが華やかになっていきました。

    お使いの草MODにもよりますが、こんな感じで見た目がかなり変わる可能性があるので、草キャッシュ生成前にしっかり調整しておきましょう。

    推奨値は50~60とのことですので、そのあたりを基準にして確認すると良いと思います。

    草の描画距離とフェード距離(Overwrite-grass-distance, Overwrite-grass-fade-range)

    LODではフルモデルのフェードアウトとLODの開始をオーバーラップさせることで、スムーズにモデルを入れ替え、切り替えの違和感を小さくします。

    そのための設定値が「Overwrite-grass-distance」と「Overwrite-grass-fade-range」です。

    Overwrite-grass-distanceは、草のフルモデルを描画する範囲を決める設定です。

    Overwrite-grass-fade-rangeはその先から始まり、完全に草がフェードアウトするまでの距離を決める設定です。

    基本的には、「uLargeRefLODGridSize」とフルモデルの描画範囲を合わせ、その先からフェードアウトが始まるように設定します。

    uLargeRefLODGridSize=5の場合は、こんなイメージです。

    1セル=4096ユニットなので、uLargeRefLODGridSize=5の場合の設定値は次の通りです。

    項目名設定値
    Overwrite-grass-distance8192
    Overwrite-grass-fade-range4096(Overwrite-grass-distanceの半分)

    セルはプレイヤーを中心としたサイズ指定(直径指定)ですが、ユニットはプレイヤーの前方距離を指定します(半径指定)。

    なので、uLargeRefLODGridSize=5の場合はプレイヤーの前方2セル分に相当する距離を指定します。

    基本的には、uLargeRefLODGridSizeを基準に機械的に決めてしまって問題ないと思います。

    パフォーマンスが気になる場合はキャッシュをオフにして、ゲーム内で確認してみましょう。

    注意点:草LODはLOD4にしか使われない

    PCスペックに余裕がある方は、Overwrite-grass-distanceをもっと伸ばしたいと思うかもしれません。

    その際は、LOD4の描画範囲を超えるかどうかを確認しましょう。

    LODモデルは、LOD4にしか使われません。

    つまり、LOD4よりOverwrite-grass-distanceを大きくするのであれば、草LODを作る意味がないということです。

    まとん
    まとん

    LOD自体がいらないわけではなく、あくまで「草の」LODモデルが不要になるだけです。

    次回はいよいよLOD生成です。

    スポンサーリンク

    コメント

    タイトルとURLをコピーしました