Oblivionプレイ記録 058 OBGEv2 Version4を導入した

OBGEv2導入下で走るFredさん

[注意]
OBGEは11/06/23にメジャーアップデートを迎え、v2→v3となりました。そして、OBGE: Liquid Waterはv1.2.0→v2.0.0となりました。この記事は、それぞれv2/v1.2.0当時の情報に基づいて書かれたものです。この記事の記述で現在も適合することも勿論それなりにあるかもしれませんが、相違することも多々あると思われます。ご注意ください。

Oblivion Wiki JP 避難所に、OBGEv3についての記事が設置されています。OBGEv3については同記事を参考にしてみてください。→ MOD/グラフィック/OBGE – Oblivion Wiki JP 避難所

インストールにあたって

  • DirectX を最新に※1
  • Shader Model 3.0対応のグラフィックカード
  • Oblivion.iniからShader 3.0をオンに※2
  • OBSE 0019以降
  • ※1 Microsoftのページで、dxwebsetup.exeをダウンロードし、実行すれば、最新のものが入っていたときは「最新のものが入ってるからインストールの必要はないよ」と教えてくれる。
  • ※2 自分は、普段からOblivion.iniからShader 3.0をオンにしていますが、試しにオフにしてもOBGEは動作しました。とはいえ、パフォーマンス向上のためにオンにしておくのが吉だと思います。Shader 3.0をオンにする方法に関しては、オブリビオンwithおっぱいギルド様の記事や、Wiki JP 避難所の攻略記事を参考にしてみてください。

この人のSSに憧れて

13 名前:名無しさんの野望[sage] 投稿日:2010/10/24(日) 17:27:31 ID:L/b0sknO

項目は多くても弄るところは結局定まってくるな
箱庭っていうか、冒険を妨げない程度のミニチュア・立体的な雰囲気
[img]
[img]
こんなもんだろうか?なんかもったいないんだよな
弄くりだすとすごく深い気がする

20 名前:名無しさんの野望[sage] 投稿日:2010/10/24(日) 18:13:39 ID:L/b0sknO

そんな大層なもんでもないです
ONのもの
1:Color Effect
2:Color Mood
3:Crysis DoF
4:DoF
5:Ring_SSAO

1 saturation1.1 contrast1.1
2 fRatio 0.7
3 Do distance Blur 1 No weapon Blur 1 NearBlur 0.5 FarBlur 1
4 Do distance 1 Do weapon 1 DoFAmount 10 DP 19

弄くった記憶がある箇所だけです
適当に総当りしただけなんでもっとスマートな人頼む

Oblivion関連スレッド置き場 – OBLIVION SS/MOD晒しスレ 167
http://oblivion.z49.org/logs/mod/1287846384.html.gz

ダウンロード

  1. OBGEv2 Core
  2. OBGEv2 Shaders

をそれぞれダウンロード。

必要なファイルをパック(omod化)

基本的にはOBSEのプラグインファイル(拡張子が.dllのもの)と、Shaderファイル(拡張子が.fxのもの)を適切な場所に配置し※3、Shaderを何らかの方法で有効にすれば、ゲーム内で効果があらわれる。

今回、Shaderを有効にする方法として、「Support Pluginを使う方法」を僕は採用した。以下に記録する導入手順も、それに沿ったものとなる。

1. OBGEv2 Core

OBGEv2_Core-30054-4のアーカイブの中身

最低限必要なファイルは、OBSEフォルダの中のOBGEv2.dllと、Shadersフォルダの中のRAWZfix.fx※4

適宜インストール用フォルダを作成し、そこに「OBSE」フォルダと「Shaders」フォルダを放り込み、omodを作成の際に”add folder”で同フォルダ(インストール用フォルダ)を指定。

「Extras」フォルダについては、記事後半の”雑多な情報”の項を参考にしてください。

2. OBGEv2 Shaders

OBGEv2_Shaders-30054-4-2のアーカイブの中身

espファイルと※5、Meshes、Textures、Shadersそれぞれのフォルダが必要。

適宜インストール用フォルダを作成し、そこにこれら4つのファイルとフォルダを放り込む。omodを作成の際に”add folder”で同フォルダ(インストール用フォルダ)を指定。

  • ※3 dllファイル(OBSEプラグインファイル)は「\Data\obse\Plugins」へ。fxファイル(Shaderファイル)は「\Data\Shaders」へ。
  • ※4 RAWZfix.fxは、「RAWZ depth buffer」というフォーマットを採用しているグラフィックカードを利用している際に起きる不具合を修正するファイル。
  • ※5 shaderlist.txt を用意していれば、Oblivion Graphics Extender Support.espは必要ない。逆にOblivion Graphics Extender Support.espを導入するのなら、shaderlist.txtを用いてShaderを管理する必要はなくなる。基本的に、は。

omodをActivate

作成した2つのomodをActivateする※6

  • ※6 omodの左の正方形アイコンの色がconflict:競合を示す場合は「view conflict」を右クリックから選択し競合対象を見てみよう。僕の場合はUOPによって保持されてるファイル2つと競合を示した。どちらにせよReadmeでは上書きを指示しているので、参考程度にし(念のためにconflict reportをrtfファイルで書き出しておいてもいい)、上書きを選択。

Support Pluginを使い、ゲーム内でShaderを有効にする

Save Dataをロードすると、InventoryのMiscに分類される欄にOBGEv2 Supportというアイテムが追加されている※7。それをクリックすると、「Inventoryを閉じるとOBGEの設定メニューが表示されるよ」とのメッセージが表示されるので指示通りInventoryを閉じる※8

すると、各Shaderを設定できるメニューが表示される。

最初はすべてのShaderが無効(Shader名の左に「(マイナス)」マークがついている)となっている。

Shader名の上にカーソルを持っていき、「Shift+左クリック」を押すとShaderが有効(Shader名の左に「(プラス)」マークがつく)となる。

1度有効にしたShaderを無効にするには、Shader名の上で「Ctrl+左クリック」だ。

Shader名を左クリックすると、Value(値)を調整できるVariable(変数)一覧が表示される。Variableを選択すると、Valueを入力できるテキストフィールドが表示されるので任意のValueを入力してやろう。

  • ※7 COBLを導入してる場合、アイテム欄の[Option]の中に同アイテムが追加される。
  • ※8 同アイテムはhot keyに登録してやると、後々楽でいい。

雑多な情報

1. OBGEv2 Coreに含まれるファイルについて

「Extras」フォルダの中身についてReadmeから解説を引きます。

  • d3dx9_31.dll – 場合によってはOBGEv2は過去の古いコンパイラ(Legacy Compiler)を用いてShaderの処理を行おうとします。その際に(Oblivionがクラッシュをするような時は)、このファイルをゲームフォルダ(Oblivion.exeがあるフォルダ)に配置してください
  • d3dx9_41.dll – OBGEv2を導入後、Oblivionのゲーム内でShaderの効果が見られないとき、OBGEv2.logを確認してください。logファイル中に”d3dx9_41.dllが見つかりません”とのレポートがあった際には、このファイルをゲームフォルダ(Oblivion.exeがあるフォルダ)に配置してください。
  • 「Textures」と「Shaders」フォルダ – この中には、OBGEv2 Coreをインストールした際に、動作テストを行えるShaderファイルが収められています。OBGEv2の導入に際して、必須なファイルではありません。

2. iniファイルとlogファイル

OBGEv2の働きを制御できるOBGE.iniは、「\My Documents\My Games\Oblivion」にあります。OBGEv2の動作の記録を見ることができるOBGEv2.logは、「C:\Program Files\Bethesda Softworks\Oblivion」(ゲームフォルダ、Oblivion.exeのある場所)にあります。

重くなった?

Save Dataのロード時間は15~20秒ほど長くなりました。
FPS数の低下は、適用するShaderによって差があります。
適用するShaderを選べば、そこまでは重くはならないと感じました。
まだまだ、導入してから日が浅いので、色々試してみます。

参考にしてほしいページ

とりもなおさず、Oblivion Wiki JP 避難所のMod / グラフィックのページ内のOblivion Graphics Extender v2の項目は参考になると思います。

あと、たりほんオブオブリビオン様のOBGEカテゴリの記事一覧からアクセスできる記事には、色々なShaderを適用したSSが見ることができるので、参考にしてみてください。

最新情報に触れたいという人は、Mods – TES IV Oblivion – Bethesda Softworks Forumsの中にある、OBGEのスレッドをチェックするといいかも!

[追記]OBGEv2 Water Package改めOBGE: Liquid Waterってなに?

[追記]OBGEv2 Water Packageは、ver.1.1.0のリリースに合わせ、名前が「OBGE: Liquid Water」に改められました。なお、”this mod is now stable”とリリースノートに付記されました。以下の記述でOBGEv2 Water Packageとなっている箇所は、OBGE: Liquid Waterと読みかえてください。

OBGEv2 Water Packageは、OBGEプロジェクトの派生Modだ。

OBGEv2 Water Package at Oblivion Nexus – mods and community
http://www.nexusmods.com/oblivion/mods/37825/?

「派生」の部分は”Extension”を訳したものです。「派生」以外にも「拡張」などの意味を持ちます。Bethesda SoftworksのforumにおけるOBGEのスレッドでしきりに、”Water”という単語が出てくるのを見て、どーしたんだろう、と思っていたところでした。その矢先に、このOBGEv2 Water Packageがイニシャルリリースを迎えたようです。

話は、OBGEv2のプロジェクトの前身にまで遡る。それはすっかり音沙汰のなくなってしまった「OVEP(Oblivion Visual Effects Project)」だ。OVEPの目指したゴールの1つがOblivionにおける水のShaderを刷新することであった。幾多のModやIniファイルの設定変更を用いても、Oblivionにおける水質はガチッとした、不自然なものであり、悪趣味なものであった。残念なことにOVEPは終了し、Oblivionにおける水質は刷新されることはなかった。それから長い時が経った。OBGEチームはフルスクリーンShaderを用いて水質に劇的な変化をもたらせることに気づいた。その過程における一連の急速な発展により、Oblivionにおける水のShaderを刷新することが可能になった。いくつかのバグは残されているが。

OBGEv2 Water Packageの目的は、何よりもまず、Oblivionにおける水のShaderを刷新することだ。水のShaderの制作には2か月余りの期間が費やされた(これは、このPackageに含まれる他の要素に掛けた時間とは比べ物にならない)。このような長期間にわたった開発の成果として、以下に挙げる特色を備えた、水質刷新が実現された。

  • 反射と屈折
  • リアルな鏡面反射
  • 水表面の屈折
  • 高品質なノーマルマップ
  • 物理的に妥当な光散乱システム
  • 水中におけるボリュームのあるFog(霧がかった)効果
  • 滑らかな水際線(の移り変わり)
  • 水中のコースティックスパターン(光が水面で屈折することで水の底に現れる光の反射)
  • 天候による変化
  • どの条件下でも自然な表現
  • 建物内/外、問わない。

Oblivion NexusのOBGEv2 Water Packageのページのdescriptionより抜粋、意訳。
http://www.nexusmods.com/oblivion/mods/37825/?

訳してみたものの、僕自身あまりよくわかっていません。OBGEについても、つい最近導入したばかりです。しかし、せっかくだからと、導入してSSを撮ってみました。ShaderはGodraysのみ有効にしています。水質改善Modの類はすべて切ってあります(画像はクリックすると拡大します)。

OBGEv2 Water Packageを導入して撮ったSS

OBGEv2 Water Packageを導入して撮ったSS、その2

OBGEv2 Water Packageを導入して撮ったSS、その3

導入は付属のReadmeにあるInstallationの項目に沿って行いました。

また、Forum Threadの>>1と同様のものと思われますが、TES NexusのDescriptionの項目には、以下のような注意書きもなされています。

  • 注意:OBGEv2 Water Packageは現状、システムを不安定にすることがわかっている。そのリスクを負いたくない場合は、使用は控えてくれ。
  • 注意2:OBGEv2 Water Packageは、通常のModのインストール方法とは異なった方法をユーザに求める。ダウンロードしたアーカイブに含まれるReadmeによく目を通してくれ。

OBGEv2 Water Package at Oblivion Nexus – mods and community
http://www.nexusmods.com/oblivion/mods/37825/?

[追記] 更新に伴ってDescriptionから上記のNote(注意書き)のうち1番目のもの(打消し線を引いた箇所)が、取り払われてました。

導入を検討される際は、このModがまだリリースされて日が浅いことを留意してください。

MLAAをOBGE: Liquid Waterで使ってみよう!

MLAA.fx – Morphological Anti-Aliasing for OBGEv2

Shader Package以外で提供されているMorphological Anti-Aliasing(MLAA) Shader for OBGEv2※9[Link: ver.0.0.3 / ver.0.0.4] 。Packageに含まれてるNormalFilterAAは、画面全体がぼやっとした感じになるのに反して、MLAAはくっきりとAAをかけてくれるな、と感じました。OBGE: Liquid Waterではshaderlist.txtを用いたShaderのロード方法は(一応)推奨されてないので、espファイル(を編集すること)によるShaderのロードを試みてみました。OBGE: Liquid Water ver.1.1.2でのお話です※10。当たりをつけて試してみたものなので、飽くまで参考にとどめてください。

  • ※9 OBGE Controllerなども公開しているkapaer氏によって提供されている
  • ※10 事情があってOBGE: Liquid Waterは1.2.0ではなく1.1.2を使っています

CSで「OBGE – Liquid Water.esp」を編集

いざという時のためにオリジナルのespファイルはバックアップをとっておき作業開始。

  1. OBSE経由でCSを起動
  2. OBGE – Liquid Water.espをダブルクリックしチェックを入れる
  3. Set as Active Fileを押しStatusをActive Fileにする。
  4. OKを押す。
  5. ロード他諸々が完了したら
  6. Gameplay > Edit Scripts と選択
  7. Script Editウインドウが開くので
  8. Script > Open > OBGEWaterScript (01000ED5) と選択

espファイルによって、ゲーム内にMLAA.fxを適用させるんだから、じゃあ、役割もほぼ同じ思われるNormalFilterAA.fxに関する記述に倣えばいいのかな?とNormalFilterAA.fxに関する記述の直後にそれぞれ新たに記述を追加。追加したのは緑字部分になります。

short NFAAFX
short MLAAFX
short enableNormalFilterAA
short enableMLAA
let NFAAFX := LoadShader "NormalFilterAA.fx"
let MLAAFX := LoadShader "MLAA.fx"
if (enableNormalFilterAA)
	ApplyFullscreenShader NFAAFX
else
	RemoveFullscreenShader NFAAFX
endif

if (enableMLAA)
	ApplyFullscreenShader MLAAFX
else
	RemoveFullscreenShader MLAAFX
endif

以上の記述を追加し、Script EditウインドウのSaveボタンを押し、Script Editウインドウを閉じます。そして、espファイル自体もSaveし、CSを閉じます。CSでの作業は以上です。

Shaders.iniへ記述を追加

次に「Shaders」ディレクトリにあるShaders.iniに

set OBGEWater.enableNormalFilterAA 		to	0 ; Use NormalFilter AA? 
set OBGEWater.enableMLAA                        to      1 ; Use MLAA?

との記述(これまた、緑字の部分)を追加。

これでゲーム内でMLAA.fxがロードできるはず。

まだ1.2.0のOBGE: Liquid Water.espの中は見てないのですが、内容に変更が加えられてることも考えられるし、OBGE: Liquid Waterはこれからもモリモリとバージョンアップすることが考えられるので、ここに紹介した手法は割と限定的なものです。

おまけ

興味がてらざっくり訳した、OBGEv2 CoreとOBGEv2 Shadersに付属していたReadmeのFAQを最後に置いておきます。自分が疎い分野についての訳にはかなり不安有なので参考程度にしてください。

OBGEv2 CoreとOBGEv2 ShadersのFAQを表示する

Q. これは正式版(RELz)なの?まだダウンロードしない方がいいのかな?

A. 現在のOBGEv2は(幸運なことに安定している)ベータ版だ。よって、常に改善のためメンバーは尽力しており、時には不具合を内包していることもある。もしこの事を「おっかないな」と思うようならダウンロードは控えた方がいいかもしれないね。

さらに、個々のユーザのモニタ上で如何にグラフィックが表現されるかが必然的にこのModで俎上に上がる話題であり、それは個々のユーザのハードウェア環境によって異なってくる。殆どのユーザはOBGEv2を利用することでトラブルには遭遇していないが、しかし、OBGEv2がうまく機能しない環境のユーザも、時には出てくることだろう。

Q. OBGEv2を使うには、OBSEは必要なの?OBSEのバージョンの指定は特にあるの?

A. ああ、OBSEは必須だ。そして、少なくともv0019以降のそれが必要だ。だけど、その時点で提供されてる最新のバージョンのOBSEを推奨するよ。

Q. OBGEv2は、利用する上で、何かしらのハードウェア環境の要件はあるの?

A. 要件はないよ。とはいえ、OBGEv2は、特定のハードウェア環境下で上手く動作しないことはある。これはOBGEv2の不具合だ、しかし正確にどのハードウェア環境下で問題が再現されるかについての十分な情報が上がってきていない段階だ。さらに言うと、OBGEv2のShaderのなかにはShader Model 3.0に対応したグラフィックカードを必要とするものもある。NVIDIAのグラフィックカードの場合は、GeForce 6 Series(2004年にリリース)以降のカードならShader Model 3.0に対応しているはずだ。ATI のグラフィックカードの場合は、Radeon X1000 Series(2005年にリリースされた)以降のカードならShader Model 3.0に対応しているはずだ。このことに関しての詳細は、OBGEv2 Shaders packageに同梱されているReadmeを参考にしてくれ。

Q. このプロジェクトに貢献するにはどうすれば?

A. プロジェクトへの貢献を行う方法はいくつかある。

もし、君がShaderのコードをかける人間なら、ただちに、君のオリジナルのエフェクトを作るのに取り掛かるといい。Shaderのコードは、HLSLもしくはASMの言語で書くことができる。

もし、君がCもしくはC++のコードをかけるなら、ScantiやshadeMeが取り組んでいるOBSEプラグインの改善作業を手伝うことができる。このプロジェクトはgithub上で行われてるから※11、気軽にforkして自らの手でソースに変更を加えることが可能だ。githubでは、自分でWikiページを作成することも可能だ、いつでもプロジェクトに貢献してくれるものを歓迎している。

もし、君がDirectXのハードウェアに対して働き掛けるローレベルの働きについてと、OBSEのプラグインの仕組みについて知識があるなら、それもプロジェクトに対して益をもたらすことができるだろう。

もし、君が、上に挙げたことのどれも不得手だとしても、それでもなおプロジェクトに貢献することはできる。ユーザのサポート、OblivionでOBGEv2がどのようなグラフィック効果をもたらすかを記事や文書にすること、それだけじゃない、プロジェクトに対してできることなら、なんだっていい。なんならケーキやアイスクリームを持ってきてくれても。

Q. 不具合を見つけたんだけど…

A. それはいい報せだ。もし不具合を見つけたら、「How To Report Bugs Helpfully」に示した体裁で僕たちに報告してくれ。詳細に状況を教えてくれれば、僕たちが君に対してできることも多くなる。

Q. インストールしたShaderのエフェクトが効いているのを確認できない。OBGEv2のログには、”Loading shader ()”の後に”Failed to load”となっているのだけど。どうしたらいいの?

A. これは君が読み込ませようとしたShaderエフェクトを、OBGEv2がコンパイルできなかったことが原因だ。先に述べたDirectXの最新版が導入されているかを確認してくれ。そして、もし君がshaderlist.txtを使ってShaderを管理しているのなら、その名前を正しくつづっているか(.fxという拡張子も忘れずに)を確認してくれ。いくつかのShaderエフェクトを利用する際には、Shader Model 3に対応しているグラフィックカードが必要になってくるケースもある。

Q. ScreenEffects/Realistic Health/OVEP Motion Blur/OVEP Forward Motion Blurといったグラフィック効果をもたらすModを使っているときや、bUseLegacyCompilerの値を1にセットしたときに、OBGEv2がクラッシュするんだ。どうしたらいい?

A. もし、君が導入しているShaderが演算に16bitの浮動小数点フォーマット(半精度浮動小数点数、half型)を使用していたら、OBGEv2は過去の古いコンパイラ(Legacy Compiler)を用いて処理しようと試みる。その時、もし「d3dx9_31.dll」が無かったらOBGEv2はクラッシュするだろう。「d3dx9_31.dll」をExtrasフォルダから、ゲームフォルダ(Oblivion.exeのあるフォルダ)にコピーしてやることで、この問題に対処できる。

Q. 画面上でオブジェクトの表示(並び)が滅茶苦茶になったよ。もしくはゲームのメニュー画面でボタンが表示されない!これの原因は?
Q. ひとたび、ShaderのエフェクトをOnにしたら、AA(アンチエイリアシング)の効果がなくなった。なぜ!?

A. Depth Buffer(深度バッファ)を読み込むために使われている情報を表現するのに使われている方式が、アンチエイリアシングと両立ができない。この事象は、ATIのカード、NVIDIAのカード、双方のケースで報告を受けている。とはいえ、ATIのグラフィックカードを利用しているユーザは特に問題なく、ATI Tray Toolsを使って、強制的にAAを掛けることもできるだろうが。唯一の手としては、「\My Documents\My Games\Oblivion」にあるOBGE.iniを編集して、以下の行を変更することだ。

[DepthBuffer]
bUseDepthBuffer=1

[DepthBuffer]
bUseDepthBuffer=0

しかしながら、この方法だと、Depth Bufferを利用しているShaderエフェクトが正しく機能しなくなる。OBGEv2のShaderでいうと、SSAOやDepth of Fieldという単語を名前に含む全てのShader、それからGodrayにNormalFilterAA、そしてCelShader+EdgeAAといったShaderが、だ。

Q. OBGEv2をインストールしてから、マウス遅延が起きるんだけど。どうすればいいの?

A. OBGE.iniの、「iBufferTexturesNumBits」の値を小さくしてみてくれ。同様の現象に遭遇したユーザの中に、それを行うことでマウス遅延をなくすことができたと報告している人がいる。

Q. ソースコードが収められてるsrcフォルダはどこにあるの?

A. ソースコードは、TES Nexusでダウンロードできるアーカイブには含まれてない。その代わり、GitHubのレポジトリでアクセス可能だ。それが意味することは、ユーザは常に、ソースコードの最新版へのアクセスが可能であり、プロジェクトに対して自分自身の書いたコードで貢献することができるということだ。

Q. Oblivionを終了させるときに、クラッシュします。OBGEv2を入れる前はそういうことはありませんでした。何が原因でしょうか?

A. ユーザの中には、OBGEv2を利用して、Oblivionの終了時にクラッシュを経験している人もいるようだ。それは、クラッシュを防止する「FastExit2」のような手段を用いていても起こると報告されている。これは、OBGEv2でメモリが正常にクリアされないことがある、という不具合によるものだ。この不具合はOBGEv2の将来のバージョンで修正される予定だ。

Q. Shaderの一覧の中には、複数のエフェクトを持つと書かれているものがあるけど、どういう意味?

A. 複数のエフェクトを持つShaderは、1つのShaderファイルの中に、多くのエフェクトを詰め込んであるんだ。そしてユーザはその複数のエフェクトから好きなものを選ぶ、もしくは幾つかを組み合わせて、ゲーム中のグラフィックに反映させることができる。このことによるメリットは、ユーザが管理するShaderの数を減らすことができるってことだ。これらの選択・組み合わせ作業は、通常、Shaderにおける変数の値を変更することで行える。

Q. Shaderにおける設定/変数を、変更/カスタマイズするにはどうすればいいの?

A. .fxの拡張子を持つShaderファイルを、メモ帳などのテキストエディタで開く。変数は、ファイルの先頭部分に記述されており、カスタマイズ可能、またはカスタマイズ方法についてコメントアウトで追記されるなど、されているはずだ。

もう一つの方法として、殆どのShaderの変数は、Support Pluginを用いることで、ゲーム内で調整することができる。とはいえ、この方法ではShaderファイル自身には、加えた変更を保存することはできない。

Q. 晴天下では、Godrayのエフェクトが、単なるサーチライトみたいな効果しか出ないんだけど。

A. Godrayの効果は、曇りの天候下で、AM6:00~8:00もしくはPM6:00~8:00の間に、もっともその効果が発揮される。それでも、サーチライトのような効果しか出ないのなら、同ShaderにおけるFOVの設定を、君のゲーム中のFOVの設定と合わせてやれば改善するかもしれない。例えば、OblivionをFOV=95でプレイしているとすると、GodrayのShaderファイル中のFOVの値を95にしてくれ。Shaderファイルを編集する際には、「#define fov」の値を、ゲーム中のFOVと同じ数値に変更する。その項目はファイルの先頭近くにある。

Q. 何故、天候が霧がかっているときに、遠景のオブジェクトに、奇妙な黒いものが映るの?
Q. SSAOのShaderを適用しているときに、水中の描写がおかしくなるんだけど原因は?

A. 原因はSSAOのShaderにある、何故こういったことが起こるかというと、OBGEv2が「霧がかった」描写に関する情報を提供しないことにある。このことで、Shaderはそこが「一切、霧がかってない」という前提でエフェクトをかける。うまくいけば、将来のアップデートでこの問題は修正される見込みだ。

Q. SSAOを有効にするとFPS数がガクンと落ちるんだけど。何かいい手はない?

A. SSAOのShaderの適用下でFPS数を向上させる、最も手っ取り早い方法は、Sample Sizeを減らし、同時にSample Areaを増やすことだ。SSAOのShaderには、パフォーマンス向上を目的に作られたバージョンが存在する。そのバージョンでは、若干のクオリティの低下と引き換えに、パフォーマンスをぐっと向上させる。SSAOのShaderがパフォーマンスに大きな影響を及ぼす理由は、同Shaderがエフェクトを実行するにあたって、表面法線ベクトルの情報(それを直接取得することはできない)をスクラッチから計算を行っていることだ。

Q. EdgeAAのエフェクトはどうやって適用するの?

A. EdgeAAのエフェクトは「CelShader+EdgeAA」のShaderの一機能だ。同エフェクトを適用するには、CelShader+EdgeAA.fxにおける変数の値を以下のように変更すればいい。

flgEdgeMask = 0;
flgEdgeAA = 1;

Q. OBGEv2をインストールした後、Save Gameをロードする際、もしくはロードが完了した直後に、フリーズするんだけど、どうして?

A. これは、SSAOもしくはSSAOのパフォーマンス版のShader(ssao_test.fxもしくはssao_perf.fx)をロードする際に起こる。この2つのShaderは、単独で、他の全てのShaderのロード時間合計の、5倍のそれを要するんだ。フリーズした素振りを見せていても、ゲームがクラッシュしているわけではない。しばらく待てば、通常のロードが再開される。このフリーズを防ぎたければ、これら2つのShaderを削除するしかない。

  • ※11 gitのプロジェクトホスティングサービス。様々なオープンソースの開発の場所となっている。gitレポジトリの作成、公開が可能。もちろんWeb 上から変更履歴等も参照可能。

Oblivion Graphics Extender v2 ReadMe /
Oblivion Graphics Extender v2 Shaders ReadMe
よりFAQの項目を訳出

おまけ その2

OBGE: Liquid Water 1.2.0のReadmeから、インストールに関わる基本的な情報が記載されている「Installation」の項と「How To Load Shaders」の項、それに加えてアンインストールに関する「Uninstallation」の項を意訳したものを置いておきます。

OBGE: Liquid Water 1.2.0のReadmeの和訳内容を表示する

インストール方法

以前のバージョンからのアップデートの場合

もし、1.2以前のバージョンのOBGE Liquid Waterをインストール済みである時は、OBGE Liquid Water 1.2のインストールを試みる前に、以前のバージョンのOBGE Liquid Waterを完全にアンインストールしたかどうかを確認すること。なぜなら、以前のバージョンからはModのファイル構成に大きな変更が加えられているからだ。

動作要件

OBGE Liquid Waterをインストールしようと試みる前に、DirextX 9の最新のバージョンがインストールされていることを確認すること。その後、OBGEv2 CoreとOBGEv2 Shader Packagesの両方がインストール済みであり、なおかつゲーム中で機能しているかを確認すること。さらに、OBSEのv0020以降がインストールされてることも必要だ。さもなくば、OBGE Liquid Waterは動作しない。これらの動作要件に必要なファイルは以下のLink先で入手可能だ。

インストール手順

動作要件に挙げられたファイルをインストールし終わったら、Oblivion Nexusのページから、OBGE Liquid Waterをダウンロードしてくれ。もし、Wrye Bash 292をインストール済みの環境なら、ダウンロードアーカイブに同梱してあるBain Conversion File(Lojack作)を利用して、インストール手順を簡略化することもできる。もしそうでない環境の人は、正常にインストールを行うため、以下に挙げるすべてのステップに従ってくれ。

  1. もし、OBGEv2のShaderをshaderlist.txtを用いて有効にしていた場合は、shaderlist.txtを削除する。
  2. もし、OBGEv2のShaderをSupport Pluginを用いて有効にしていた場合は、全てのShaderをゲーム内のメニューを通じてOffにした上で、クリーンセーブを作成し、その上でOblivion Graphics Extender Support.espを無効にする。
  3. OBGE – Liquid WaterのファイルをDataディレクトリ下に、展開する。上書きを確認するダイアログには全て「はい(Y)」を選択。
  4. Oblivion.iniを開く。
  5. bUseWaterLODの値を1から0へと変更する。
  6. bSurfaceTileSizeの値を2048.0000から0.0000へと変更する。
  7. オプションとしてこちらのページに挙げられている水面反射に関するOblivion.iniの設定変更を試してみてもいい。ただ、この設定を変更することはパフォーマンスに影響する。高スペックマシンでならその影響は軽微なものかもしれないが。
  8. ゲーム中の設定からHDRとBloomを無効にする。※さもなければ、水の色が周りの環境(の色)と上手くblendされない。
  9. ゲーム中の設定からWater Ripples(水面のさざなみ)を無効にする。
  10. 水、または溶岩に改変を加えるModをアンインストールする。
  11. OBGE – Liquid Water.espをactivateする。ロードオーダーは、天候変更Modの後ろ、地形変更Modの前に。

Shaderのロード方法

先に記した、インストール手順を実行しても、それだけではOblivionにおける水のShaderが変更されるだけだ。しかし、もしこの新たな水のShaderの導入下で、OBGEv2のShader(OBGE: Liquid Waterと両立可能な)もロードしたいなら、下記の手順に従ってくれ。

  1. 「Oblivion\Data\Shaders\Liquid Water Settings\」にあるShaders.iniを開く
  2. Shaderを有効にするには、各Shaderに対応する行にある数字の「0」を「1」に変更する
  3. 利用したくないShaderは、各Shaderに対応する行の数字が「1」ではなく「0」になっていることを確認する。

INIファイル内に記載されてないShaderは、現時点では「OBGE: Liquid Water」とは両立ができないということだ。そしてその両立が可能になることはまず恐らくないだろう※12。それから、SSAO系のShaderに関して、同時に複数のそれをロードしないこと、またDoF系のShaderに関しても同時に複数のそれをロードしないこと。さもなくば、ゲーム内でラグ(遅延)が発生したり、見てくれが悪くなるだろう。INIファイル内のそれぞれのShaderの働きを知るには、OBGEv2 Shader Packageに同梱されているドキュメントを読んでみてくれ。もし、Shaderの変数の値を変更したかったら、「Shaders」ディレクトリにある個別のShaderのファイルを開き、そのファイル内にある変数の値を編集してくれ。

  • ※12 DoF系のShaderはOBGE: Liquid Waterのバージョン1.2.0からは利用(両立)可能になっている。

アンインストール方法

[注意]
ここに挙げられている方法はver.1.2.0のアンインストール方法です。ファイル構成の異なる過去のver.とは記述が異なります。

もし、OBGE: Liquid Waterをアンインストールしたい(OBGEv2 Support Plugin/Shaderlist.txtのいずれかを用いたShaderの適用方法に戻したい)ときは

  1. 「Oblivion\Data\Shaders\Liquid Water Settings\」にあるShaders.ini内のすべてのShaderが無効にし(すべての行の値を「0」に戻す)、ゲーム内で新たなスロットでセーブを行う。
  2. OBGE – Liquid Water.espを無効にし、削除する。
  3. 「Oblivion\Data\Shaders\」ディレクトリ内のWater.fxとWater2D.fxを削除する。
  4. 「Oblivion\Data\Textures\Effects\」ディレクトリ内のwater_NRM.ddsを削除する。
  5. 「Oblivion\Data\Textures\Effects\」ディレクトリ内のwater_NRM_2D.ddsを削除する。
  6. 「Oblivion\Data\Shaders\」ディレクトリにある「Liquid Water Settings」フォルダを削除する。
  7. インストールの際にOblivion.iniに対して行った設定変更を、元に戻す。
  8. OBGEv2の内容物を、Dataディレクトリに展開する。上書き警告に対してはすべて「はい(Y)」を選択。

これで、OblivionをOBGE Liquid Waterなしで、且つOBGEv2とともにプレイできるはずだ(いかなる予期される問題を避けて)※11。もし、これに加えOBGEv2もアンインストールしたい際は、上記のステップに加え、OBGEv2の(同梱されているドキュメントに記載されている)アンインストールの手順を実行してくれ。

  • ※13 2.~8.の手順は、もし①OBGEv2 Core、②OBGEv2 Shaders、③OBGE: Liquid Waterをそれぞれomod化して導入していた際は①~③をそれぞれdeactivateし、①と②を再度activateすれば、実質同様の手順を踏んだことになります。あと、記載がありませんが「Oblivion\Textures\Water\」ディレクトリのalternatelavaX.ddsの削除も必要だと思われます。

1件のコメント

  1. OBGEv2を導入すると、CTDが増えたりなどはしますか?
    あと、俺のパソコンは
    OS:Windows 7 Ultimate 64bit
    CPU:Intel Core i7 CPU 870 2.93GHz
    RAM:4.00GB
    GRAPHIC:GeForce GTX 470 1280MB
    ですが、こちらの記事にある画像のようにできますか?

  2. RiNさんこんばんはー。
    自分のプレイ範囲内では(とはいっても導入してからまだ時間が浅いのだけど)
    CTDは特に発生していません。

    あと、スペックに関してはRiNさんに倣って
    僕の環境を書くと
    OS:Windows(R) XP Home Edition SP3 32bit
    CPU:Intel Core 2 Quad Q9400 (クアッドコア/2.66GHz/L2キャッシュ3MB×2/FSB1333)
    RAM:4.00GB
    GRAPHIC:NVIDIA GeForce 9500GT 512MB
    となり、RiNさんのほうがずっと有利(羨ましい!)となります。

    FPS数や、キー入力に対する反応(重さ)等は、また、どの解像度でプレイするかでも大きく変わってくると思います。

    Oblivionの設定的なことを言うと、Video Quolity PresetsはUltra Highに設定しています。あと、テクスチャ向上に「Vibrant Textures」を使っています。

    OBGEの設定としては、記事冒頭に取り上げたSS/MODスレの>>13さんが紹介されていた設定例(とそれに加えてGodrays)をそのまま適用しました。

    ただ、グラフィックボードに少し無理をさせてるのか、奇妙な症状が出始めました。
    「攻撃を受ける」のをきっかけに画面がシェイクするんです。
    過去のシーンが画像として残っていて、それがチラチラと再生される
    (ポケモンフラッシュのように画面がチカチカと)。
    こんな症状が出始めました。
    グラフィックボードに無理をさせたのでは、と書いたのは
    Webで検索した際に同様の症状に見舞われた人が
    「グラフィックボードの設定をパフォーマンス重視に変更したら症状が改善された」と
    書かれていたからです。

    僕自身も、因果関係を確認すべく
    時間ができた折にでもまず、ケースを開けてグラボファンでも掃除して、
    あと、グラフィックボードの設定をいじってみようと思います。
    何かわかったら記事にも追記しますー。

    P.S. Web上を見る限り、殆どの人がOBGEの導入下でも問題なくプレイできてると思いますよ!今回の僕の問題は、ほぼ間違いなく、自分が設定面で欲をかいてることで起きてるだけだと思います。

  3. なるほど・・・。
    ということは、グラボが強ければ、結果的には何も問題はないと言うことなんですね(・д・*)
    寮に戻ったら俺のoblivionも弄ってみることにしますww
    OBGEv2を一度入れたことはあるんですが、あまり導入方法が分からなかったので放置っていう・・・w

    ありがとうございましたm(_ _)m
    参考になりました。

  4. 件の症状については、すわ、もしやと思い
    久しく更新していなかったNvidiaのドライバを更新したら
    (266.58 WHQLを入れました)
    ぱたりと止みました(鳴りを潜めているだけかもしれませんが…)。
    基本的なところをおろそかにしていました。
    最新のドライバが常に最良かはわからないのですが、
    それにしても長らくアップデートしていなかったもので。

    しばらくこの態勢で様子を見てみます。
    (そこまで単純な問題ではないような気がするので)。
    症状が再発するようだったら、ここで報告しますね。

  5. 俺的にはドライバを更新するとパフォーマンスが上がるって言うので、グラフィック面で若干の余裕ができたのではないかと思います。
    または、そのグラボがoblivion(OBGE)と相性が悪く、ドライバの更新によって改善されたとか?ですかね。

    症状の再発がないことをお祈りしますww

  6. なるほど。
    その説明だとしっくりきますね~。

    ということは、自分の環境は現状ギリギリの運用なのかも(笑)。
    そろそろマシンの構成を改めたいなー。

  7. はじめまして。
    おざぶといいます。

    OBGEを導入してコンソールにはOBGE Support:Loaded ○○.fxというログがずらっと並び、インベントリにOBGEv2 Supportも追加され、それをクリックすると「インベントリ閉じるとメニュー出るよ」が表示されますが、インベントリを閉じてもメニューは表示されません。
    ちなみにOBGEv2 Supportを使用(直クリック、ホットキーいずれの場合も)すると画面左上(「自動セーブしました」などが表示される場所)に”.”(ドット?)が表示されます。

    どなたかこの症状にお心当たりある方いらっしゃいますか?

    p.s.いきなりの質問で恐縮ですが、よろしくお願いします。必要な情報などありましたらご指摘ください。

  8. おざぶさん、はじめまして。

    自分はそのような現象に遭遇したことはありません。なので今から書くことが物事を解決してくれるかはわからないのですが、思いつくことを書きます。

    1.要件を満たしているかどうか再確認をする
    要件の中でもOBSEに関して気になります。Shader一覧をメニュー表示するのはMessageBoxEX(OBSEによって追加されているコマンド)の働きだと思われるのでOBSE経由でゲームを起動しているか、の確認を。また、OBSEのバージョンについても確認を(OBGEv2 Version4.2ではOBSEv0019以降が推奨されてます)。

    2. 別のShaderのロード方法を試してみる。
    Wiki JP 避難所のOBGEの項(http://wiki.oblivion.z49.org/?MOD%2F%E3%82%B0%E3%83%A9%E3%83%95%E3%82%A3%E3%83%83%E3%82%AF#ve13da7f)には、Support Pluginを用いたロード方法だけではなく、「Shaderlist.txt」によるロード方法が紹介されているので、それを試してみてください。もしこれでShaderの効果があらわれるようなら、原因が特定しやすくなるかもしれません。

    健闘を祈ります。

  9. 早速のお返事ありがとうございます。

    ご指摘の点ですが…
    OBSEはVer.0020です。
    つい最近Oblivion Wiki JPから辿って落としてきたものを入れました。それまではVer.0018でした。

    OblivionはOBSE Enabledにチェックを入れたWrye Bashから起動しています。

    以下の方法でShaderlist.txtを使った運用も試したんですが、視覚的効果は特に変化ナシでした。

    ①DATA¥Shadersフォルダの中に「Shaderlist.txt」というファイルを、メモ帳を使って下記の内容で作成。

    ssao_perf.fx
    DepthOfField.fx
    godrays.fx
    CelShader+EdgeAA.fx
    ColorEffect.fx

    ②OBMMでOblivion Graphics Extender Support.espのチェックを外す(右側にあるOBGEv2 Shaders自体はDeactivateせず□の色は青のまま)

    これで合ってますでしょうか…

    あと、気になる現象がもう1つありまして…

    OBGEv2 Support Pluginを使った運用でのことです。

    Oblivionを起動し、OBGEv2 Supportをホットキーにセットした状態のキャラをロードすると、ロード完了直後にOBGEの設定メニューらしきものが出るんです。
    しかし残念ながらその中にあるShader名と思しきものをShift+ClickやCtrl+Clickしても、その瞬間にメニューは閉じてしまい、視覚的効果も何ら変化ありません。
    そしてそれ以降、Oblivionを再起動させる以外何をやってもメニューは出てきません。

    今の状況はこんなところです。

    惜しいところまできているようなので諦めきれずにいます…T_T

  10. おざぶさん、こんばんは。

    解決につながるかはわからないのですが、以下のことを試してみてください。

    Shaderlist.txtを削除し、再度OBMMでOblivion Graphics Extender Support.espのチェックを入れてください。
    (つまり先ほどお願いしたことと逆のことをしてください)

    その後、当初の、OBGEv2 Core/Shadersのインストール時と環境が揃った後に、

    「\My Documents\My Games\Oblivion」にあるOBGE.iniを開いて、

    bSaveData
    bLoadData

    以上の項目の値を、どちらも「0」にしてみてください。

    [追記] bUseShaderListの値も「0」にしてください。

    その後、”OBGE導入前の”セーブデータをLoadしてみてください。Load完了後に固まるような挙動を示すかもしれませんが、何もキーの入力はしないでください。

    その後、おざぶさんが最初試されたような、インベントリからOBGEv2 Supportをクリック→ダイアログが表示される→インベントリを閉じる。といった順序を踏んでみて、Shaderの設定メニューが今度こそ表示されないかを試してみてください。

  11. こんにちは。
    おざぶです。

    解決いたしました!!
    しかし原因はとても恥ずかしいものでした…^^;;;;;;

    夜勤から帰ってきて早速ご教授いただいた方法を試してみ…

    ようと思ったのですが、OBGE.iniが見当たりませんでした。
    これはもしやインストールで何かヘマやってるんじゃなかろうかと思い、
    このサイトのインストール関連記述をもう1度よく読ませていただくと、ハっとした点が1つ。
    “DirectXの更新”です。
    WindowsUpdateを有効にしているので、勝手に最新になってるんだろうなーと思ってインストール時には特に気にしなかった点でした。
    試しにdxwebsetup.exeを落として動かすと更新が始まりました^^;;;;;

    というわけで、更新が終わってOblivion機動してキャラをロードたら少しフリーズ状態になりました。
    (ドキドキしました^^;)

    フリーズが解けると同時に(おそらくホットキーにOBGEv2 Supportをセットしているキャラをロードしたから?)OBGEの設定メニューが現れ、Ctrl+Clickしたらちゃんと-が+に変わり、視覚的効果にも変化を確認しました!!

    こんなカンジでホントにアホな理由でご相談してしまったワケです…。
    ハズカシィですね…
    できることならログ消したいです^^;;;;;

    とりあえず「DirectXが古いとこういう症状になるよというネタが提供できたから良しとしよう」と強引に自分を納得させます^^;

    本来なら開発元に相談すべき内容を、ただ英語が苦手だからというこれまたアホな理由でご相談させていただいたにもかかわらす、きちんとご対応いただき本当にありがとうございました。

    また何かありましたらご相談させていただくかもしれませんが、よろしくお願いします。
    (今度はもっとちゃんと調べてからにします^^;;;;;)

  12. おざぶさん、こんばんは。
    何はともあれ、無事解決されたようでよかったですー^^。

    OBGEが、安定して運用できるようになったら
    OBGE Controller(Support Pluginの使い勝手を向上する)のことも是非調べて、一度お試しを。
    自分はいま使っていないのでアドバイス等はできないのですが、とても便利と(動画や配信、blogなどで)見聞きしていますので。

  13. こんばんは。
    おざぶです。

    OBGE Controllerを早速試してみました。
    スバラシィですね。

    変化を比べながらリアルタイムで調整できるので、違いがとてもわかりやすいと思います。
    (簡単に設定できるので欲張りすぎて、気付いたらけっこう重くなってました^^;)
    屋内外1、3人称視点の設定が自動で切り替わってくれるとか。とても便利な気がします。
    (まだそこまで設定しきれてなくて未体験です^^;)
    コンパイル済Shaderに入れ替えてロードが速くなったのも地味にうれしいですw

    またしばらく楽しめそうです。
    いいものを教えていただいてありがとうございました^^

    そういえば、既出かもですがGodraysのバグらしきものを1つ見つけました。
    洞窟の中でNightEyeをONの状態でセーブし、そのデータをロードすると通常は青白い光の色がヘンなカンジ(緑っぽい光)になりました。
    そのまま洞窟を出てまた入ると直りました。

    とりあえず参考まで。

  14. おざぶさん、こんばんは。
    その後、とくに問題なくプレイできているようで何よりですー。
    Godraysの件、気に留めてプレイしてみますね。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です