あやしいLanding RWY38

07« 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31.»09

2014年08月の記事一覧

VASを節約する。 

前に書いた記事 「天敵 OOM」 の続きです。

FSXは32bitアプリケーションですので、たとえWindowsが64bit版であってもアプリケーションが利用できるメモリ空間4GBまでです。FSXがFSX自体や作業領域含んで、シーナリデータやアドオンソフト(別の実行プログラムとして動作するものは除いて)をメモリにロードできるのは4GBまでで、それを超えるとOUT OF MEMORY(OOM)となり異常終了してしまいます。
つまりこのメモリ空間4GBを超えないように、FSXを運用しておけば、メモリリークなどの不具合を除いて、基本的にはOOMの悪夢は回避することが可能です。

ここで言うメモリ空間とは仮想アドレス空間 (VAS : Virtual Address Space) のことで、Windowsタスクマネージャーでモニタされる物理メモリやアプリケーション毎に表示されるメモリ(プライベートワーキングセット)ではありません。

VASについては日本語で解説されているWEBはあまり見つけられませんでしたので、英語版のWikiをリンクしておきます。

ここではVASの最大値は4GBとしてますが、64bit OS環境でFSXを動作させる場合の値であり、もし32bit OS環境でFSXを動作させる場合にはVASは基本的に2GB、3GBスイッチオプションを使用することで3GBまで拡張することが出来ます。

もしFS2004をお使いの場合には、64bit OSでは、FS9.exeに4GBパッチをあてることで、VASを4GBまで使用することが出来ます。

では、VASの消費量に関連する項目を紹介して、その中で節約する方法も述べたいと思います。
節約する方法の基本思想とはしては、やはり表示の設定などを欲張り過ぎない事です。

VASの消費量に関連する項目
1.ライブラリーに登録されているシーナリ
FSXに登録されているシーナリは、たとえそのシーナリーのエリアを飛ばなくても、VASを消費します。これはシーナリによ
るのですが、シーナリーライブラリーに登録されていてチェックされていて有効化されていると、フライトの際にシーナリーデータの全てではなく、VASにロードされるようです。私の場合では、Switzerland Professional FSX(FLYLOGIC社)や、Ultimate Terrain Xで大きくVASを消費することを確認しました。他のシーナリーでも消費するサイズは違えどVASを消費する可能性はあると思われます。
フライトする予定のないエリアのシーナリーは、シーナリライブラリのリスト上でチェックを外し無効とする事でVASの消費を削減することが出来ます。シーナリーの有効化/無効化などの編集はのScenery Config Editorを使用すると便利です。

2.シーナリー
空港やフォトシーナリ、Ground Environment Xやftx GLOBAL BASEなどのTextureやAutogen、Ultimate Terrain X やftxGLOBAL OPENLCなどのLandclassなどは全てVASに影響します。私の経験ですと、Ultimate Terrain XはかなりVASを消費して、他の空港シーナリーとの組合せに注意しないと、あっという間にOOMを発生しました。

3.アドオンソフトウエア
ここでいうアドオンソフトウエアとは、FSXのDLLとして実行されるようなソフトウエアは、当然FSXが使用するVAS内にロードされます。たとえばGSXやAES、あとはA2AのAccu-Feelなど。これらの気分を盛り上げてくれる優秀なものですが、VASを消費してしまいます。FSUIPCやSimConnect等で別の実行ファイルとして機能するタイプのものは、基本的にVASには負荷を与えないものと思われます。

4.テクスチャーのサイズ
FSX.cfgの中の項目に、
[GRAPHICS]
TEXTURE_MAX_LOAD=4096
という行がありますが、ここで読み込むTextureサイズの設定を定義しています。
4096、2048、1024などどテクスチャの解像度(サイズ)を指定しますが、これを大きい数値4096などとするとデータの大き
いテクスチャが読み込まれVASを逼迫します。もちろん数字の大きいほうが高品質で綺麗なテクスチャなのですが、VASへの負担とトレードオフになる訳です。
REXなどのTextureを差し替えるソフトウエアの設定画面ではこのサイズを選択できますが、それも同じ意味です。
ただし、FSX.cfgのなかのTEXTURE_MAX_LOAD=4096という定義と、REXなどのソフトウエアの中での解像度の設定とでは、どちらが上位になるのか不明です。
ちなみに私の場合、TEXTURE_MAX_LOAD=1024以上にはしません。REXの雲の解像度も1024にしています。
このほかには、たとえばPMDGのバーチャル・コックピットのテクスチャの設定ももちろんVASの消費量に関わります。

5.視程 LOD_RADIUS
これも同じく、FSX.cfgの中の項目に
[TERRAIN]
LOD_RADIUS=4.500000
という行が存在します。これは表示する範囲を指定する視程のようなものだと私は理解してます(もしかすると誤解してるかもしれませんが…)。自分のいる場所を中心にどの距離までシーナリーやテクスチャを表示するが定義するものです。もちろん広範囲に表示すれば、たくさんの面積のデータを読み込む事になるのでしょうから、それだけVASを消費します。4.5は距離そのものだと思いますが(単位は??nm?)、表示すべき面積は距離の二乗で大きくなるので、この値の設定には十分注意して行うべきだと思います。FSXのデフォルト値はたしか6.5ですが、私は4.5で使用しています。
LOD_RADIUSを小さくすると、たとえば遠方の山にはテクスチャが貼られず、禿山の状態になります。私はASNを使用してますが、このソフトは遠方の霞の表現が優秀で、遠方の山のテクスチャの有無はあまり気になりません。

6.フライトのロード方法
FSXを立上げてフライトする際に、FSXのフリーフライトの設定画面で、場所(空港)、飛行機、時間などを設定してフライトする事が一般的な方法であると思います。この画面からフライトをクリックするとフライト画面になります。ここで、実際にフライトしても良いのですが、なにもせずにフライトを終了して、フリーフライトの画面に戻ってみてください。そして再度同じ設定でフライトをクリックしてフライト画面に進みます。この行為を繰り返してゆくと、同じフライトの設定のはずなのに、なんとVASの値は増大して行きます。これを複数回行うとOOMが発生します。
これはSAVEしてあるフライトをロードしても同じことが発生します。
はっきり言って、これはひどいバグだと思います。
フライトする際には、機体や空港の変更を行う際には、一度FSXを終了させて、再度起動しなおしてから、フライトすることで、上のような問題は回避できます。

7.グラフィック・ボードのメモリサイズ
これは自分で本当なのか確認した事はないのですが、グラフィック・ボードに搭載しているRAMのサイズに比例してVASを消費するそうです。これはDX9モードの仕様によるものせいだそうですが、なんとFSXが使用するメモリ領域とVRAM(一部?)をそれぞれに共有するそうです。そのためVRAMのサイズが大きくなると、それに従ってVASを使用するサイズも大きくなるということらしいです。VASにもテクスチャデータが置かれるという話です。
最近のハイエンド グラフィック・ボードではVRAMが6GBなんてのも発売されていますが、この話が本当ならば、VASの消費も著しいということですね。

8.DX9モードとDX10モード
FSXにはプレビューとしてDX10モードが用意されています。このプレビューとは平たく言えば未完成ということ解釈してますが、VASの消費量としてはDX10モードの方が少ないです。この理由は7.グラフィック・ボードのメモリサイズのところで紹介したDX9モードでのVASの使用するということを紹介しましたが、DX10モードではVASにグラフィックのデータを置くような処理はしないとのことです。
DX10モードは、そのままではたくさんのバグを抱えており、テクスチャが貼られないとか、表示されるものが表示されないとか、よけいな黒いテクスチャとして表示されるとか問題があります。ですが、最近は完全では無いですが、これらの問題を解決するためのツールも存在しています。
私は現在DX10モードでFSXを使用しています。DX10モードとDX9モードではVASの使用量は、そのときの状況にもよりますが、500MBくらい節約することが出来ます。

この他にもあったかと思いますが、それはまた後日追記したいと思います。

以上、思いつくまま書いてみました。中には理解不足や誤解も多分に含まれているのではないかと思います。
上の内容を読んでいただき、もし、それらがありましたら指摘頂ければ幸甚です。

カテゴリ: FS Tips

[edit]

TB: --    CM: 0