概要
本記事は一連のシリーズの続きではあるが、実際のチューニング作業はその3で十分だ。
今回は、多くのアドオンをインストールしている環境で発生するOOM(Out Of Memory)についてとその対策について記載する。本記事のツールは改版時点でPrepar3D v4.0の形式に対応していない。
※本記事の初版は2017年1月8日となる。
※2017年6月3日 一部改版
ワンポイント
その3で書いた内容そのものだが、必要ないシーナリーはオフ(Disable)にする。
だが、実際はこうだ。
- FSX/Prepar3Dを起動してからオフにするのが面倒
- 沢山のアドオンをインストールしていると、100個近いシーナリーを細かくオンオフするのは面倒
結果、あまりいじらなくなり、本当に滅多に使わないものだけがオフになっているという人が多いだろう。
便利なツール
オープンソースで「FS2004/FSX Scenery Config Editor」というものがある。
名前はFS2004とFSX用に見えるが、Prepar3D v3にも対応している。
このソフトの特徴は下記の通りだ。
- シーナリー(Scenery.cfg)をグループ分けができる。
- グループ毎、もしくは個別にオン(Enable)・オフ(Disable)ができる。
設定前に
設定を始める前に、Scenery.cfgのバックアップを採る。
このソフトウェアでついきがされてしまうため、壊れた際の対処のためバックアップを採っておくのが望ましい。
- Prepar3D v3
C:\ProgramData\Lockheed Martin\Prepar3D v3 内 - FSX
C:\ProgramData\Microsoft\FSX
及び
C:\users\★ユーザー名★\Appdata/Roaming/Microsoft/Fsx
基本設定
最初に利用するシミュレータの種類を選択する。
次にこのチェックを外す。
このソフトウェアは、設定ファイルを直接壊さないように標準では別のファイル名で保存する。
ただし、頻繁にシーナリーをオン・オフする際は、作成されたファイルをリネームして手動で毎回上書きをするのは面倒なため、直接保存したくなるだろう。そのため新規作成のオプションを外すのだ。
※前述の通り、バックアップを取得している前提。
Listビュー
この画面は”Scenery.cfg”の内容が書かれているだけである。
FSXやPrepar3D上の画面の内容と同じだ。
ただし、この画面の利点がある。
- ドラッグ&ドロップで並び替えができる
上下の移動を何回も繰り返すことなく設定ができる。 - エラーが明確にわかる
FSX/prepar3D上でシーナリーの登録画面でエラーが表示されても、理由がよく分からないことがある。登録の重複や、既に存在しないフォルダーなどがこれに該当するが、この画面では理解しやすい形で表示される。
例がこちら。AEROSOFTのインスブルックをアンインストールしたものの登録が残ったままの場合だ。この場合は、この行を選択して”Delete Area”をクリックすれば良い。
GroupView
今回の目的でも最も重要なのはこのビューだ。
グループ分けされていないシーナリーは、”Ungrouped”に所属している。
試しに、ポーランド空港をグループ化してみよう。まずは4つの空港を選択して、”Add To Group”をクリックする。
名前を付けて、”OK”をクリックする。
グループが作成で来たら、残りのボーランドの空港を”Porland”グループの名前にドラッグしていく。
グループの名前の左側にチェックボックスがあるが、これでこのグループの空港アドオンをオンオフできる。
このように地域毎などで分けてグループを作って行けば、飛行毎にシミュレータを起動する前、地域毎にシーナリーの読み込み低減してメモリ負荷を下げることができる。
このグループ分けは、シーナリーの登録順序とは関係のない話であるので、地表と空港、街の登録順序の変更は、Listビューもしくはシミュレータ上で今まで通り行う必要がある。
ファイル保存
保存は”Save”から行う。前述の新規ファイル作成のチェックが入っていると、別なファイル名で常に保存される。
保存したファイル名はタイトルバーに表示されているので、必ずチェックしよう。
シミュレータが使う”Scenery.cfg”に保存されなければ意味がない。
上書きできない場合
もし対象ファイルが上書きできない場合は、本ソフトの起動オプションで管理者権限で実行するようにするか、毎回、右クリックメニューで管理者として実行を選択する必要がある。
もちろんこれは、セキュリティ面含めて自己判断で行う必要がある。
本ソフトウェアの仕組み
仕組みは簡単である。
“Scenery.cfg”内の各登録したシーナリーの設定項目として”X_Groups”を一つ追加して、それをソフト上で管理しているだけである。
この項目自体は、Prepar3D v3.4まではシミュレータ上では無視される項目なので、問題ないようだ。
本ソフトウェアの使用をやめる場合は、”X_Groups”の行を手動で削除すると良いだろう。
注意
本ソフトでは一つのシーナリーを複数のグループに所属させることができる。
執筆時点でのバージョンは、片方から削除しようとして上位グループを削除すると、他グループからも削除されてしまう現象があった。
単なる操作ミスの類ではあるが、その場合”Ungrouped”にも表示されなかったので、注意が必要かもしれない。
チューニングの観点で
追加シーナリーを10個入れている程度では、大きなメモリ消費の変化はない。
このソフトが大きな影響を与えるのは、追加で数十個以上のアドオンを入れている場合だ。
Enableしているシーナリーは遠く離れた地域でも、シミュレータの起動時の時間やメモリ使用量に影響を与える。
シーナリーの規模にもよるが仮に1シーナリーたった3MBの差であったとしても、40あれば120MBの差ができる。
シーナリーの数が多くメモリの警告がでるような環境では、この差は大きい。
ドイツからオーストリアを飛行するのに、アメリカや日本は必要ないはず。
この場合はメモリ使用量を減らした方が良い。その際このようなツールを使うことになる。
1つあたり影響は少ないので、実際はよく使うと地域は常にオンにしておくことになるだろう。
こんなソフトがあったんですね。
私の場合、P3Dは「全域」「ヨーロッパ&アフリカ」「アジア太平洋地域」「北米」
「北米2(シーズナルテクスチャの無いAerosoft cities X用)」「中南米」の6個、
FSXは「北米2」が無いので5個に手動で分けたscenery_xxx.cfgをバッチで
切り替えていますが、シーナリーをインストールする度に11個のファイルを
書き換えてバックアップも各2箇所にとりと結構面倒でしたが、
このソフトがあれば少し楽になりそうです。
さらに細分化しようかとも思うのですが、最も空港の多い米国を
どこで分割すべきか悩んでいます。
どうもです。
シーナリー1つあたりの影響は少ないので、私は10個ぐらいずつまとめればいいかなと思ってます。
また重くないシーナリーが多い地域は20個でも良いと思います。