Skyrim箱庭DIY

MODによる固有の環境不具合は自分で直して快適ゲーム。CTDにさようなら。Do It Yourself!!

【Skyrim】オブジェクトや地形のparallax(パララックス)化における注意点



スポンサーリンク

ENB環境下であれば、地形やオブジェクトのパララックス対応ができます。ENBほんと神です。より凹凸のリアリティが増していい感じなのですが、いくつか注意しておかないと、

  • 対応させたつもりが実はできてなかった
  • なんかテクスチャがおかしくなってる
  • メッシュがローポリ化した

といった事が起きてしまいます。対応化にあたり、注意したことをまとめておきます。

※実際に試した上での内容ですが、使って日が浅いので間違いあるかもです。僕の認識違いとか。

 

オブジェクトのパララックス対応化

地形は除きます。建物とか岩や樹木等。パララックスを適用するにはENBが必須です。ちょっと古めでも大丈夫。

enblocal.iniで、

 

[FIX]
FixParallaxBugs=true

 

の設定も必要。大抵defaultでtrueなので確認程度で。

 

見落としがちですが、新たなテクスチャとしてパララックス用ハイトマップが必要になります。「高さ」を表すテクスチャで、グレースケール50%を基準に明るくなると高くなり、暗くなると低くなります。

※ゲームで確認した限り、R160G160B160で、パララックス未使用時と同じな感じでした。

メッシュファイルのBSShaderTextureSetでこのテクスチャを指定する必要があるので、オブジェクトのパララックス対応にはメッシュファイルの変更が必要になります。

例えばaMidianBorn farmhouse and roads stonewallはパララックス対応のテクスチャで、_p.ddsのハイトマップも同梱されていますが、変更したメッシュファイルは同梱されていません。

Descriptionにも、

parallax supported.... just find a meshes replacer with parallax enabled... and clearly use an enb. 

との旨書いてあるので、テクスチャを導入しただけではパララックスが有効にならないということですね。 

 

パララックス対応メッシュの確認

パララックス対応メッシュの、石壁部分のBSShaderTextureSet。slot4に_pのテクスチャが追加されてます。

parallax対応メッシュファイルの例 

自分でメッシュの対応化をする場合は、他にSkyrim Shader TypeHeightmapに設定し、Shader Flags2Parallaxを追加すればOKだと思います。

 

パララックス有効時と無効時の比較

テクスチャはaMidianBorn Farmhouseをベースに、石壁add-onのaMidianBorn farmhouse and roads stonewallを使用。

enable時のメッシュはVivid Landscapes - All in Oneを使ってみました。高低差がよりハッキリ現れてくれます。

石壁のparallaxの有無の比較

つまりパララックス対応にはメッシュ変更が必要なので、オブジェクト系のパララックスはStatic Mesh Improvement Mod - SMIMのようなメッシュ改変MODと競合します。ハイメッシュを取るかパララックスを取るか?になります。

互換パッチがある場合は、SMIMメッシュにパララックス対応の変更がされているのでOKです。もしくは上記のように、自分でSMIMのメッシュにテクスチャパスの追加、ShaderTypeとShaderFlagsの変更をすれば対応できると思います。

 

メッシュやテクスチャMOD何使うか悩んだら、参考にどうぞ。

 

(参考)オブジェクトの一部が化けてる場合の対処

※僕だけだったらすいませんが、SSのように描画が一部化けてしまうことがありました。

パララックス環境下でのオブジェクト不具合

enblocal.iniで、

 

[PERFORMANCE]

EnableZPrepass

 

という項目が以前ありました(0.277以降で廃止されてるようです)。

カメラ近辺において、遮蔽物の奥を描画しないことでパフォーマンス向上する機能らしいです。これがtrueの場合に発生してました。詳しくないんでエアですが、描画しなかった部分が視差効果の結果見えちゃってたとか?

falseに設定しておくと現象再現せず。0.277より古いENB使っていて同様の現象が起きた場合、試すと直るかもですが、FPS下がるかもしれません

 

 

地形のパララックス対応化

地形(terrain)のサポートは0.265以降のENBなので、まだ比較的新しいです。

オブジェクト同様、enblocal.iniに

 

[FIX]
FixParallaxTerrain=true

 

の記述が必要です。

地形にパララックスを使わない場合、falseにしておかないとテクスチャが崩れることがあります

 

僕の使ってるENBでは、次のようになってました。

 

FixParallaxTerrain=trueENB

AIR ENB

HRK ENB

 

FixParallaxTerrain=falseのENB

K ENB Pure Light

RealVision ENB

 

具体例は後述しますが、環境整備ができてないとトラブル起こしやすい機能なので、よくわからない人はfalse設定にしておく方が良いと思います。K ENBは作者さんがトラブルを懸念してfalseにしているようです。

ハイエンド環境構築でK ENB使ってる人は、trueにしないと地形パララックス反映されませんのでご注意を。

 

ハイトマップはディフューズマップのアルファチャネルを使用します。ノーマルマップは関係無いと思います。

 

Boris氏のドキュメントより。

Added parallax for terrain, some vanilla textures already work (alpha channel of diffuse
maps is height data for parallax). It's controlled by variable FixParallaxTerrain.

 

tamu75 Terrain Parallax Texturesでの比較。パララックス有効にすると凹凸クッキリ。

TerrainのParallax有無の比較

 

ディフューズマップと、アルファチャネルに入ってるハイトマップはこんな感じでした。

tamu75TerrainParallaxのテクスチャ

 

地形のパララックス環境下における問題

ディフューズマップにアルファチャネルを作っているテクスチャの場合、ENB0.265リリース前のテクスチャだとしても、これをハイトマップとしてパララックスが作動してしまうことになります。

 

aMidianBorn Solstheim Landscapeによる、RavenRockの地形のテクスチャ。左がディフューズマップ、右はアルファチャネルのハイトマップ。パララックス対応は明記されていません

aMidianBornSolstheimのテクスチャ

 

これをパララックス環境下で使うと崩れます。珊瑚の表面にフジツボがついたみたいな、おかしなことに。全然テクスチャ違いますね。気付かずにずっと使ってました(爆)

HeightMap異常によるParallaxのテクスチャ崩れ

FOV90で撮影。直上である中心部分は殆ど変化が無いことが注目ポイント。

斜めから見た時の立体感がパララックスの売りなので(違ってたらすいません・・・)、ハイトマップが適切でない場合、このようにカメラの中心から放射状に画像が崩れると思います。

※前述の通りパララックス対応が明記されてないので、MODのバグではありません。

 

 

パララックス未対応テクスチャの暫定対策

地形のパララックスを無効化すれば問題無いのですが、そうするとtamriel全土の地形パララックスが無くなってしまいます。対応と非対応を混ぜて使いたい時は不便ですよね。

地形パララックスは有効にしつつ、aMidianBornのソルスセイムのテクスチャを使いたいです。これをパララックス対応にできれば一番いいのですが、僕にそんなスキルありません(笑)

 

そんな訳で暫定対策。

アルファチャネルのハイトマップを、R160G160B160でベタ塗りしてみました。

HeightMapを高度0に設定

これはグレースケールだと丁度50%で、ハイトマップとしては全域が高低0になる筈です。

 

地形パララックス有効化状態での、最初のフジツボ画像と同じ場所のSSです。

暫定対策後のテクスチャ

全部ハイト0なのでパララックス特有の立体感はありませんが、テクスチャそのものは正常に表示されてます。(と思ってますけど・・・目悪いので)

これで暫定対策できそうな気がします。

単純にアルファチャネルを消すだけだと、ちょっとハイトがおかしくなってるかも?

見た目ほとんど変わらないので、削除でもいいかもです。

 

Skyrim HD - 2K Texturesも、そのまま使うと所々おかしくなりますが、

Skyrim HD - Terrain Parallax Tributeで地形や一部建物等のパララックス対応してくれます。

ENBを切って回復する地形テクスチャの崩れは、多分これだと思います。心当たりの有る人はチェックする価値ありそうです。 

 

まとめ

  • パララックスにはENBが必須。フルに使うなら0.265以降。
  • オブジェクトのパララックスにはメッシュ変更&追加のハイトマップ(Parallax Map)が必要。
  • メッシュ改変MODと競合する
  • ”FixParallaxTerrain=true”でパララックス未対応の地形テクスチャを使うと崩れる。
  • 未対応テクスチャを使うには、ディフューズマップのアルファチャネルをグレースケール50%で塗るか削除。

 

とりあえずこんなとこで。また何か試したら追記するかも。水とか全くやったことないですぬ。