ENB - (2014/10/21 (火) 12:51:02) の編集履歴(バックアップ)
このページではENBの調整について、手っ取り早く扱えるものでもないので基本的な3DCGの知識について解説します。
ENBとは
Boris Vorontsovさんが作ったゲーム用のグラフィックを改変するものです。レンダーの関数呼び出しの部分での改変やポストプロセスエフェクトで最新のグラフィックスに負けないリッチな表現ができます。
なかでもスカイリム用のENBは特に進んでいて、メモリーマネージャー的な要素からゲーム画面内でリアルタイムで編集するGUIまでついてます。
なかでもスカイリム用のENBは特に進んでいて、メモリーマネージャー的な要素からゲーム画面内でリアルタイムで編集するGUIまでついてます。
- ポストプロセスエフェクト
- 3DCGはまず3D空間上でポリゴンを表示します(頂点シェーダ)。ディスプレイで表示するには2D画像(ピクセル)に変換してフレームバッファという場所に一時保管しておきます。
- このフレームバッファ上でかけるエフェクトのことをポストプロセス(事後処理の意味)エフェクト言います。2D化した画像にリアルタイムでフォトショップでレタッチしているというとイメージしやすいでしょうか。
自由に設定をカスタマイズできるために様々な人によって様々なENB modがあり、Nexus等modサイトで多く配布されています。
ENBの基本
設定
ENBのホームページで左側のメニューのDownloadを押し、下から四番目のTES Skyrim、バージョンを選んで(大抵は最新版で可)、Downloadを押します。
2つ入ってますが基本的に使うのはWrapperVersionの方でこちらのフォルダの中身をスカイリムのフォルダ(Dataフォルダではない)に入れます。その後はお好みに応じてENB modを上書きしてください。
Documents\My Games\Skyrim\SkyrimPref.iniのDisplay項目の数値を以下のようにしてください(ない項目は追加)。
[Display]
bFloatPointRenderTarget=1
bTreesReceiveShadows=1
bDrawLandShadows=1
bShadowsOnGrass=1
iMultiSample=0
bFXAAEnabled=0
iMaxAnisotropy=0
2つ入ってますが基本的に使うのはWrapperVersionの方でこちらのフォルダの中身をスカイリムのフォルダ(Dataフォルダではない)に入れます。その後はお好みに応じてENB modを上書きしてください。
Documents\My Games\Skyrim\SkyrimPref.iniのDisplay項目の数値を以下のようにしてください(ない項目は追加)。
[Display]
bFloatPointRenderTarget=1
bTreesReceiveShadows=1
bDrawLandShadows=1
bShadowsOnGrass=1
iMultiSample=0
bFXAAEnabled=0
iMaxAnisotropy=0
操作方法
Shift+F12 | ENB効果のOn/Off |
Shift+Enter | 編集メニューの表示 |
テンキー側の*キー | FPS表示 |
F4 | VRAM開放 |
PrintScreenキー | スクリーンショットの撮影。スカイリムのフォルダに作成。ENBによってはInsertキー |
Homeキー | FPS制限 |
ファイル構成
enbseries.ini | 最も調整項目が多く、これがメインの調整ファイルになります。 |
enbeffect.fx | 絞りの設定やトーンマッピングの設定、全体的な明るさやコントラスト、彩度も。ベースとなるものなので最重要。 |
effect.txt | ノイズフィルターなどオプションのエフェクト集。これ自体は必ずしも必須ではないものの、SweetFXから移植されたLumaSharpenエフェクトはよく使います。 |
enbeffectprepass.fx | DoF(被写界深度)の設定。 |
enbbloom.fx | ブルームの設定。 |
enbsunsprite.fx | レンズフレア(ゴースト)の設定。あんまり弄りません。 |
enblens.fx | レンズマスクの設定。あんまり弄りません。 |
enblocal.ini | メモリー設定やキーコンフィグなど直接グラフィックにかかわらない部分の調整やアンチエイリアスの設定。 |
※ENBseriesフォルダの方に.fx等のファイルが入ってる場合はそちらが優先されるようなので編集ファイルの間違いに注意。GUIで弄る分には気にしないでいいですが。
弄る前に
基本的にGUIメニューをコンソールコマンド中にだして、項目の右端の+-あるいは丸い部分をドラッグして調整して、どう変わるのか見ながら調整します。
Save Configurationを押さないと保存されません。
Save Configurationを押さないと保存されません。
ただし、例えば夜をもう少し暗くしたいと思ってもそういう項目はありません(改造して追加されてるのもあります)。
こうしたいとイメージしたものがあるのにそれを実現するのにどこを弄ったらいいか分からないのが陥りやすいパターンかもしれません。
ちょっと置いておいて現実の世界とゲームで表現する時の制約について知っておきます。
NPR(Non Photorealistic Rendering=非現実的なレンダリング。セルアニメ風など)でも知っておくと役に立ちます。
こうしたいとイメージしたものがあるのにそれを実現するのにどこを弄ったらいいか分からないのが陥りやすいパターンかもしれません。
ちょっと置いておいて現実の世界とゲームで表現する時の制約について知っておきます。
NPR(Non Photorealistic Rendering=非現実的なレンダリング。セルアニメ風など)でも知っておくと役に立ちます。
HDRレンダリング
現実に目を通して見る風景とディスプレイごしに見るゲームや写真などの風景とで違うのは明暗の階調の幅です。
一般的な"画像データ"は24bitRGB=赤、緑、青の光の三原色をそれぞれ8bit(256段階)割り当ててその色の組み合わせで表現します。
(255,255,255とか#FFFFFFというのを見た事あると思いますがRGBで同じく白を表します。)
色数こそ約1677万色と人間の目で感知できる範囲では必要十分ですが、一番黒いのを0、一番明るいのを255とするので明るさの階調の幅は0-255しかありません。
この256の階調幅をディスプレイはそのまま表示してるわけではなくて、コントラスト比(一番明るい部分と一番暗い部分の比)1000:1ぐらいで映します。
風景でコントラスト比10万:1を超えるぐらいですから、リアルな世界を表現するには全然足りません。
ディスプレイで見ている世界は目で見ている世界よりもずっと表現力に乏しいわけです。
一般的な"画像データ"は24bitRGB=赤、緑、青の光の三原色をそれぞれ8bit(256段階)割り当ててその色の組み合わせで表現します。
(255,255,255とか#FFFFFFというのを見た事あると思いますがRGBで同じく白を表します。)
色数こそ約1677万色と人間の目で感知できる範囲では必要十分ですが、一番黒いのを0、一番明るいのを255とするので明るさの階調の幅は0-255しかありません。
この256の階調幅をディスプレイはそのまま表示してるわけではなくて、コントラスト比(一番明るい部分と一番暗い部分の比)1000:1ぐらいで映します。
風景でコントラスト比10万:1を超えるぐらいですから、リアルな世界を表現するには全然足りません。
ディスプレイで見ている世界は目で見ている世界よりもずっと表現力に乏しいわけです。
そこでできるだけ現実に近い範囲で記録しておくHDR(ハイダイナミックレンジ)が登場します。
ですが、結局のところディスプレイで表示できる範囲(LDR=ローダイナミックレンジ)は決まってるのでそれに合わせて変換する必要あります。
その変換がトーンマッピングです。
ですが、結局のところディスプレイで表示できる範囲(LDR=ローダイナミックレンジ)は決まってるのでそれに合わせて変換する必要あります。
その変換がトーンマッピングです。
結局LDRまで落としてしまってはHDRの意味ないと思うかもしれません。
ブルーム(Bloom)、順応(Adaptation)、陰影の表現力向上(影の落ち込みがちなディテールがきちんと表現できる)というメリットがあります。
ブルーム(Bloom)、順応(Adaptation)、陰影の表現力向上(影の落ち込みがちなディテールがきちんと表現できる)というメリットがあります。
バニラでもすでにHDRの機能群はありますが、ENBのHDRはレンジの幅を広げたり、または自分で弄ったりできます。
Bloom
カメラでも目でも起こる現象で、例えば太陽光などの一定以上の高輝度のものをみると遮蔽物を超えてあふれだす光の現象です。
全体的にぼやけさせる機能ではないです。
実例イメージ準備中
全体的にぼやけさせる機能ではないです。
実例イメージ準備中
Adaptation
快晴時の昼間で大体10万ルクス(照度の単位)、月明かりで0.5-1ルクスぐらいと言われます。
これだけ明るさの幅があるのに、自然と適切に見えるのは目に入ってくる光の量を虹彩(瞳孔のサイズを変える)で調整できるからです。
これをAdaptation(順応)といい、例えばトンネルから出ると眩しく感じますが、10秒もすれば慣れます。
逆に明るいところから暗いところに行くと最初は見えませんが、次第に見えるようになってきます。
これだけ明るさの幅があるのに、自然と適切に見えるのは目に入ってくる光の量を虹彩(瞳孔のサイズを変える)で調整できるからです。
これをAdaptation(順応)といい、例えばトンネルから出ると眩しく感じますが、10秒もすれば慣れます。
逆に明るいところから暗いところに行くと最初は見えませんが、次第に見えるようになってきます。
猫の目だとわかりやすいです。
HDRからトーンマッピングする時に時間差をつけると次第に目が慣れていく表現ができます。
ディスプレイの調整
まずディスプレイのガンマやカラー調整しておきます。
コントロールパネル→色の管理→詳細設定→ディスプレイの調整→あとはガイドに従って調整してください。
コントロールパネル→色の管理→詳細設定→ディスプレイの調整→あとはガイドに従って調整してください。
テスト用カラーチャートを出す
色みやトーンを確認する時に便利なのがTestHDRBox02というHDR確認用チャートです。
コンソールコマンドでplayer.placeatme 00013F46で出せます。
コンソールコマンドでplayer.placeatme 00013F46で出せます。
上の数字は発光の強さでnifskopeのBS ShaderPropertyのEmissive Multipleの値です。
1.0が発光してない通常の設定値で、2.0や4.0では発光してます。
1.0が発光してない通常の設定値で、2.0や4.0では発光してます。
下の明暗のチャートはきれいなトーンになるように調整しましょう。一番明るい白近辺は基本的には発光します。
白飛びと黒つぶれ
明るい箇所が階調や色を失って白一色でつぶれてしまうのが白飛び、暗い部分が黒一色で潰れてしまうのが黒つぶれです。
現実はずっと豊かに階調を持っているので基本的には避けるべきです。コントラスト上げて画が締まるという安易な発想は尚更で。
演出的にわざとする場合もありますが、ディテール保持できるぎりぎりの範囲かどうか意識するだけで全然印象違います。
カメラと違ってリアルタイムで動いて実際に遊ぶのでプレイ性は低下します。
現実はずっと豊かに階調を持っているので基本的には避けるべきです。コントラスト上げて画が締まるという安易な発想は尚更で。
演出的にわざとする場合もありますが、ディテール保持できるぎりぎりの範囲かどうか意識するだけで全然印象違います。
カメラと違ってリアルタイムで動いて実際に遊ぶのでプレイ性は低下します。
項目についての解説
絞りやトーンマッピング等の基本的な設定をenbeffect.fxのテキストファイルの方でまずはじめにしておきます。
GUI側でいじれるように改造してあるファイル(後々公開する予定)もありますが、基本的にテキストで編集→保存→ゲームに戻るLoad Configuration→Apply Changesで確認→編集を繰り返す。
GUI側でいじれるように改造してあるファイル(後々公開する予定)もありますが、基本的にテキストで編集→保存→ゲームに戻るLoad Configuration→Apply Changesで確認→編集を繰り返す。
enbeffect.fx
#define POSTPROCESS 数字
ポストプロセスのモードで基本は1,2,3,4あって、拡張されたのだと6とかもあります。
カスタマイズされたENBはそのモード用に最適化されてたりするので、そのまま使うのが良いです。
カスタマイズされたENBはそのモード用に最適化されてたりするので、そのまま使うのが良いです。
EAdaptationMin~ 絞り値の最小(数値低いほど開放した時に明るい)
EAdaptationMax~ 絞り値の最大(数値が高いほど絞られた時に暗くなる)
EAdaptationMax~ 絞り値の最大(数値が高いほど絞られた時に暗くなる)
猫の目を思い出します。
暗い時は瞳孔を開放するので、Minは暗い時にどれだけ明るくするかの設定。
明るい時に瞳孔を絞るので、Maxは明るい時にどれだけ暗くするかの設定。
暗い時は瞳孔を開放するので、Minは暗い時にどれだけ明るくするかの設定。
明るい時に瞳孔を絞るので、Maxは明るい時にどれだけ暗くするかの設定。
enbserise.ini
Effect
各種エフェクトのオフ
UseOriginalPostProcessing バニラのポストプロセスを優先。Bloom,Adaptation,ENBeffect.fxの調整は効かなくなる。
UseOriginalObjectsProcessing バニラのオブジェクト描写の優先。Environment、Skyなどの
UseOriginalPostProcessing バニラのポストプロセスを優先。Bloom,Adaptation,ENBeffect.fxの調整は効かなくなる。
UseOriginalObjectsProcessing バニラのオブジェクト描写の優先。Environment、Skyなどの
2つオンにするとバニラに近い色味と露光バランスになるので結構便利。ENBの効果的なエフェクトSSS、SSAO、Dof、Detailed Shadowだけ効かせたい時などに。
Environment
Directional Lightingは直接光で直接光源から当たる光です。例えば太陽光など。
Ambient Lightingは直接当たる光ではなく、周囲の物体から反射拡散した光です。
まじめにシミュレートすると計算コストがかかりすぎるので、物体
まじめにシミュレートすると計算コストがかかりすぎるので、物体
Image Based Lighting
パノラマ画像を球体にして全体を覆い、それを光源代わりにする技術です。複雑な設定なしに現実に近いライティングが得られます。
ENBのはあくまで擬似的のようです。
ENBのはあくまで擬似的のようです。