はじめに
ここではOblivionの高速化について、私が試行錯誤した内容を記したい。
色々やってみた結論だが、
圧倒的なCPUパワーの前には小細工など意味を成さないことが判った。
とはいえ、何かの役に立つことがあるかもしれないので、必要に応じて参考されたし。
手持ちの機器構成表
項目 |
PCその1 |
PCその2 |
備考 |
OS |
64bit版Windows7 Professional |
32bit版WindowsXP Professional |
− |
CPU |
Corei7-2600(3.4GHz) |
Pentium4(2.8GHz) |
− |
RAM |
16GB(4GB×4枚) |
3GB(1GB×2枚、500MB×2) |
DualChannel |
GPU |
RADEON HD 6770(VRAM 1GB) 画像解像度1366×768(16:9) |
RADEON HD 4650(VRAM 1GB) 画像解像度1024×768(4:3) |
− |
SOUND |
SoundBlaster X-Fi スピーカ構成:4.1ch |
SoundBlaster X-Fi スピーカ構成:2.1ch |
− |
HDD |
C:S-ATA3 250GB HDD D:S-ATA 40GB SSD×2(RAID 0) |
C:S-ATA 250GB HDD×2(RAID0) D:S-ATA 40GB SSD×2(RAID 0) |
RAMDISK併用 |
ETC |
101英語キーボード |
101英語キーボード |
− |
− |
Oblivion GotY版 |
Oblivion 単品版/SI/KotN |
− |
ベンチマーク比較
項目 |
64bit版Windows7 Professional Core i7-2600(3.4GHz) |
32bit版WindowsXP Professional Pentium4(2.8GHz) |
参考:64bit版Win8 Professional Core i5-3340M(2.7GHz)ノートPC Intel HD Graphics 4000 |
BIOHAZRD5(DX9版)ベンチ1 BIOHAZRD5(DX9版)ベンチ2 |
160.5fps 129.7fps |
28.4fps 15.8fps |
43.1fps 32.0fps |
FFXi Benchmark FFXiv Benchmark |
Score 11872 Score 4654 |
Score 4509 Score 899 |
Score 7386 Score 1286 |
MonsterHunterFrontier MonsterHunterFrontier絆 |
Score 11987 Score 11636 |
Score 3686 Score 2654 |
Score 3975 Score 2914 |
CrystalDiskMark |
C:SingleHDD Seq R:133.0 Seq W:128.6 512K R:39.17 512K W:44.68 4K R:0.448 4K W:0.967 |
C:Raid0 HDD Seq R:118.1 Seq W:99.94 512K R:41.17 512K W:39.98 4K R:0.566 4K W:2.392 |
C:SingleHDD Seq R:92.52 Seq W:90.94 512K R:31.54 512K W:36.56 4K R:0.394 4K W:1.025 |
- |
D:Raid0 SSD Seq R:410.2 Seq W:96.53 512K R:258.8 512K W:99.70 4K R:21.17 4K W:45.33 |
D:Raid0 SSD Seq R:115.1 Seq W:87.18 512K R:97.22 512K W:87.42 4K R:21.68 4K W:69.44 |
- |
− |
− |
− |
− |
傾向と対策
孫子の兵法に「敵を知り己を知れば百戦危うからず」とある。
- 経験的にOblivionが重くなる状況は「AI処理(NPCが多いとか)」「Script処理(OOOを使っているとか)」「Graphics処理(遠景表示しているとか)」の3パターンに分けられる。
- これらはいずれもCPUに依存している部分。Graphics処理はGPUでは?という疑問があるかもしれないが、調べたところOblivionの場合、CPU側でGPUの処理を一部肩代わりしている模様。
- シェーダー3.0を使うと、CPU側の処理をGPU側でやってくれるらしいのだが、AGP環境で試したら誤差の範囲内だった。
- Oblivionは一応マルチスレッド対応だがマルチコア処理には対応していないので、最近のCPUの処理能力向上手法(コア数を上げる)より、クロックアップの方が効果的。2.6GHzから3.0GHzに上げてみたらfpsが改善された。
- iniファイルをいぢると通常よりスレッド数を増やせるが、Pentium4の場合、増やそうが減らそうが大して変わりがなかった。
- また、HT(Hyper Threading)のOn/Offも試したが、私の環境の場合Onにした方がfpsの低下を抑えられた。
- 以上をまとめると、Pentium4の環境で色々やったが駄目で、結局Core i-7に変えたら一気に改善された。いままでの苦労はなんだったのかと。
- 使用状況をモニタしていると2コアくらいが中途半端に使われているので、2コア4スレッドで高クロックのCore i-5あたりが費用対効果的にちょうど良いかもしれない(Skyrimにも流用できる)。
- 一般的にPCのパフォーマンス改善はボトルネックを解消することにある。私としては、ストレージ周りの改善こそが高速化につながると常々思っている。
- また、いくら改善してもストレージはCPUと比較して絶望的に遅いので、なるべくアクセスさせない工夫が必要になる。
- 基本的に
−ストレージの高速化をする際は、ドライブを分ける、バスを分ける、チャネルを分けるのが基本。
マザーボードのブロック図とかを見ると面白い。
−シリコン系のドライブはRandom accessが得意だが、容量が少なめ。
特にRAMDISKは全般的に高速だが、容量が特に少ないため使いどころに悩む。
−お手軽な高速化手段であるRAID0はSequential accessが得意だが、Random accessが苦手。
下手するとSingle Driveの方が早い。
- 以上をOblivionに適用すると
−まずmeshesを読み込み、texturesを読み込む、という順番の模様。
また、Vanillaのbsaを読み込み、data以下のbsaやmeshes/texturesなどを読み込む順番でもある。
−meshesのファイルは容量が小さい、なのでRandom Rの速度を重視。
配置すべきはSSDやUSBメモリ。
−texturesのファイルはmeshesに比べて容量が大きい、なのでSequential Rを重視。
配置すべきはSSDやRAID0 HDD。
−Vanillaのbsaファイルは容量が大きく、頻繁にアクセスされる。
なのでRAMDISKやSSDに配置すると効果的。
- つらつら書いてきたが、Pentium4の環境で色々やった改善結果より、PCを買い換えてSATA-3のSingle HDDを使ったら劇的に改善されたのにはがっかりした。
- 今ならOblivionをSSDにインストールするのが、費用対効果的に一番よいかもしれない。
- MODの導入を前提とする場合OblivionはRAMをバカ食いし、Graphicsに力を入れるとVRAMを大量に消費する。
- RAMにせよVRAMにせよ、メモリ上で処理される分には高速だが、HDDなどストレージへのアクセスが発生すると途端にパフォーマンスが落ちてしまう。
- Windows2000あたりを前提としたマザーボードはRAMを3〜4Gまでしか認識してくれない(私の使っているP2B-Fは3GBまで)。最近のマザーボードは16GB以上を認識してくれるものもある。
- 32bit版Windowsの場合、OSがアプリケーションに割り当てられるメモリ空間は最大2GBまで。64bit版Windowsでは4GBまでの割り当て。
- 詳細はMicrosoftのサイトに掲載されているが、boot.iniをいぢることで、32bit版WindowsでもOSがアプリに割り当てられるメモリ空間を3GBまで拡張可能。
- Oblivionは32bitアプリなので、通常は2GBまでのメモリ空間しか使えないが(初期のSkyrimも同様)、4Gパッチを当てることで64bitアプリ同様4GBまでのメモリ空間を使えるようになる。
- まとめると「4GB以上のRAMを認識できるマザーボード」「64bit版Windows」「8GB以上のRAM(OSに4GB、Oblivionに4GB、残りはRAMDISK化)」「4GBパッチを当てたOblivion.exe」があれば快適な環境が約束される・・・かもしれない。
- 64bit版OSの弊害は、CSが強制終了しやすいことと、サウンド周りでトラブルが起こる可能性があること。MOD開発が主であれば、あえて32bit版OSでやる方が良い場合もある。
- Vista以降のWindowsではRAMをVRAMとして流用する機能が搭載されており、標準で有効となっている(逆にOffできない)。
- このため、ビデオカードのVRAM不足による極端なパフォーマンス低下は起こりにくくなっているが、VRAMが多いに越したことはない。
- 高性能のGPUを搭載しても、Oblivion側がCPUでGraphics関係の処理を行ってしまうため、宝の持ち腐れになりがち。
- OblivionはRadeonと相性が良いが、SkyrimはGeForceと相性が良さげな感じ。
- このためRadeon HD5xxx以上で、バス幅が大きく(転送レートが高く)、VRAM1GBのビデオカードであれば大抵の場合問題ないと思う。
- 私の環境ではRadeon HD6770のVRAM1GBで、OblivionもSkyrimも概ね快適に動いている。
総括
・PCで優先すべき順位としては、CPUパワー、RAM容量、Disk速度の順。
・OSはVista以降の64bit版Windows(特殊用途で32bit版Windowsもアリ)。
・ビデオカードで優先すべき項目は、VRAM容量、高速大容量のバス、GPUパワーの順。
・目安としては
−2コア4スレッドのCore i-5以上
−8〜16GB程度のRAM(Dual Channel)
−Oblivion用としてSSD(SATA-3接続)
−GPUコアはRadeon HD5xxx以上
−VRAMは1GB以上
Windows7インストールの流れ(WindowsXPもほぼ同様)
- OS本体のインストール(SP適用)
- UACと復元ポイントの無効化
- チップセットドライバのインストール
- 必要なDirectXのインストール
- ビデオカードドライバのインストール
- その他H/Wのドライバインストール
- 各種アプリケーションのインストール
- システムバックアップ取得
OSインストール後の各種設定
- 101英語キーボードと言語の設定 [Win7]
- Aeroスナップ機能を無効化 [Win7]
コントロールパネル−[コンピューターの簡単操作][コンピューターの簡単操作センター]−[マウスの動作の変更]「マウスを使いやすくします」−[ウィンドウが画面の端に移動されたとき自動的に整列されないようにします]のチェックボックスをオンにする。
- フォルダオプションの設定変更と拡張子の表示
- 自動フォルダタイプ設定の無効化 [Win7]
- 電源管理の設定変更と休止状態の無効化
- パフォーマンスオプションの設定変更 [Win7]
- Internet Explorerの体感速度向上
- スタートアップ項目の確認・変更
- 不要な、あるいは重要性が低いサービスの停止
- Windows Media Centerの無効化 [Win7]
- 液晶ディスプレイの調整
- サウンド周り、スピーカの調整
- その他:OSインストール後にIDEからAHCIモードorRAIDモードに変更するには
SSD関係の設定(Win7は自動設定されるはず)
- SSDを取り付ける前にIDEからAHCIモードorRAIDモードに変更する
- SuperfetchやPrefetchを無効にする
- 自動デフラグ機能を無効にする
- 復元ポイントの削除
- 仮想メモリを無効にする[必要時]
- 一時ファイルを移動する[必要時]
- MyDocumentsなどのディレクトリをHDDに移動[必要時]
Oblivion関係のインストール(大雑把な流れ)
- Oblivion本体のインストール(GotY版ならDisc1)
- SIやKotNのインストールとパッチ適用(GotY版ならDisc2)
- CSのインストール
- OBMM、Python関係、Wrye Bash、BOSS、TES4Edit、日本語化
- UOP、USIP、UOMP(BSAへ上書き分、Data以下へ入れる分)
- OBSEおよびOSR他で必要なPlugin
- 大型MOD>種族追加>体型変更
- その他必要なMOD