今回の環境
以下の環境で結合メッシュを最適化してみます。
- UOF4P
- Subway Runner
- Settlements Redone – Red Rocket Settlements
- Horizon 1.9.1 ALPHA
- PRP
- 自作の競合解決パッチ
これがそのままロード順になります。
FO4Edit用のスクリプト
FO4Edit用のスクリプトは結合メッシュを作る - 作業用スクリプトにあります。
最適化しないとどうなるのか
PRPを一番下に置いていますので、結合メッシュが有効になっており、パフォーマンスの面では低負荷で遊ぶことができています。
Horizonは拠点に多数の変更を加えており、解体できるものが増えています。それをPRPのバニラ結合メッシュにて上書きしている状態のため、解体できなくなっています。
Subway RunnerやSettlements Redone – Red Rocket Settlementsは一部の地域の屋外を編集しています。それらもPRPのバニラ結合メッシュによって上書きされている状態なので、新たに追加されたドアが壁の中に埋もれていたり、オブジェクトが重なっていたり、ちらつきが起きたりします。
パッチを作る
まずはこれらのModをマスター指定した空っぽのプラグインを用意します。ロード順を最後にしてFO4Editを起動します。
Subway RunnerやRed Rocket Settlements、HorizonのEnhanced Settlementsはセルに物を置いているので、きちんと読み込みます。また、Z_Horizon.espがStaticレコードにてメッシュを変更しているようなので、忘れずに読み込みます。MyPatch – Cell.espがすべてのModのCellの競合を解決するパッチです。
PreCombined – Sanctuary.espが今回作る結合メッシュのパッチです。
Z_Architect_EnhancedSettlements.espのWorldspace以下にあるサンクチュアリのCellレコードをパッチにCopy as override intoでコピーします。配下のReferenceは要りません。
Cellを正確に抜き出すのが大変なので、とりあえずSanctuaryExtを含む以下のツリーをまるごとoverrideしました。
Worldspace、0000003C、Block -1, 0、Sub-Block -3,2
結合メッシュを更新する
CKでパッチを開きます。
すべてのCellの結合メッシュを作成します。
Cellを開き、メニューからWorld、PreCombine Geometry for Current Cellです。
Show only active (*) cellsを使うと見やすくなります。
すべてのCellのLast Combinedが今日の日付になるようにします。
クラスターを取得する
FO4Editでパッチを開きます。
FO4 – Cell – Get cluster list.pasを実行します。
cluster_list.txtが作成されます。
無駄な結合メッシュを削除する
Cellをひとつずつ確認していきます。
PCMBが今日の日付に更新されていて、XPRIが変化しているCellは最適化ができています。Horizonの環境にあった結合メッシュが生成されたということになります。
PCMBだけしか更新されておらず、XPRIが何も変化していないCellは、結合メッシュを作り直したがPRPと変更なかったということになります。これだとまったく同じデータで無駄に上書きするだけになりますので、元に戻す必要があります。
まずFO4 – Cell – Create delete PreCombinedMeshes bat.pasを実行してバッチファイルを作成します。次にPCMBをPRPの日付に戻します。
FO4Editを終了したら、作成したバッチファイルを実行して無駄なメッシュファイルを削除します。
Previsを更新する
CKでパッチを開きます。
cluster_list.txtを見ながら、すべてのクラスターでPrevisを更新します。
Cellを開き、メニューからVisibility、Generate Precombined Visibility for Current Cellです。
足りない結合メッシュを更新する
FO4Editでパッチを開きます。
すべてのCellのVISIが今日の日付になっているはずです。
Sub-Block -3,1とSub-Block -3,3が増えています。これはクラスター単位でPrevisを作り直した結果、パッチに最初は含まれていなかったCellのVISIが更新されたためです。
これらのCellをひとつずつ確認していきます。
Z_Architect_EnhancedSettlements.espが変更を加えているCellはPCMBをすべて削除します。そうでないCellはそのままにします。
CKでパッチを開くと、Last Combinedが空欄になっているCellを確認できるので、結合メッシュを作成します。
FO4Editに戻り、無駄な結合メッシュを削除します。
Previsをもう一度更新する
結合メッシュを更新したので、Previsを作り直します。