moyasiエフェクト館

主にエフェクト関係の記事を上げていこうかと思います。


エフェクトに関係する記事上げてきます
エフェクト関係の記事の内容は緩く募集中
自分がわかる範囲であれば書いていこうかなと。

【UE4】煙(半透明)のライディング関係

f:id:tktknkyo:20200120195354p:plain

VerはUE4、4.23です

 

初めに

エフェクトとかで煙って使う機会多いのですが

煙っていわゆる光の影響受けたほうが自然に見えやすいですし(真っ暗な洞窟無いで土煙が明るいのは違和感が強い)

ただ、いわゆる半透明になってしまうので、ライディング関係が割とややこしくなってしまいます。

UE4の場合、半透明の基本的な設定だと、うまいこと影の影響などを受けてくれません

なので、色々試したりした結果とかを書いていこうかと思います。

 

とりあえず出してみる

 

f:id:tktknkyo:20200120195838p:plain

マテリアル側は、とりあえずシンプルに煙用の画像と

ParticleColorを混ぜたものを

画像の所には歪みは入れてますが、ここはライディングには特に関係ないです。

 

f:id:tktknkyo:20200120200036p:plain

基本的な半透明の設定だけだと、こんな感じに、影の影響を全く受けていません

 

f:id:tktknkyo:20200120200217p:plain

一応ですが、レベル自体はこんな感じに

謎の物体を用意して、ディレクショナルライトからの影が出るように作っています。

 

煙に影を落とす

 

f:id:tktknkyo:20200120200743p:plain

マテリアルの詳細から

Lighting Modeを

Surfacr ForwardShading

に変更します、そうすると

f:id:tktknkyo:20200120200934p:plain

影が落ちます

 

ここで起きる問題点

 

影自体は落ちますが、これだけだとまだ問題が残ります。

 

f:id:tktknkyo:20200120201059p:plainf:id:tktknkyo:20200120201126p:plain

この二枚、右も左も

同じレベルで再生した、同じエフェクトです。

見てわかると思いますが、明らかに色が違いすぎます。



1枚目の暗い方は、キャラの前の方から光が来ています

2枚目の明るい方は、キャラの後ろから光が来ています

 

つまり、ライディングの影響を受けることにより、影の影響を受けてくれるが

光の角度の影響まで受けてしまい

角度によって色合いが著しく変わってしまう、という問題が起こってきます。

 

f:id:tktknkyo:20200120201907p:plainf:id:tktknkyo:20200120201935p:plain

結構見えにくい部分もありますが

UE4やってると頻繁に見ると思いますが、シェーダーコンパイル中に表示されるものですね。

光としては、キャラの前側から両方来ています。

 

煙用のテクスチャとかを使っていても、ビルボードなので、板ポリに貼ってある状態です。

 

そして、ビルボードは、カメラの向きに合わせて角度が変わります

 

上の二枚の画像、1枚目はキャラの上から、二枚目はキャラの後ろからで

角度が違いますが、ビルボードなので、カメラに向いて配置されます。

 

カメラに向いて配置されるので、カメラの向きによって

煙の板ポリの角度が変化します。

そしてその角度によって、光の入り方が変化します。

 

この例だと、1枚目は斜め上から光が入っていますが

2枚目は、ほぼ後ろから光が入ってきます

後ろからなので、当然暗くなります。それがおそらく原因で

 

f:id:tktknkyo:20200120201126p:plainf:id:tktknkyo:20200120201059p:plain

このような、角度によって光の影響が違いすぎる、というのが起きるのだと思います。

 

画像だけだと解りませんが

カメラのみ動かしても色がどんどん変わっていきます(向きによって変化が大きい、小さいはありますが)

 

問題点の解決策

 

煙に影を落とす処理をするためにした

Lighting Modeを

Surfacr ForwardShading

に変更したことで、マテリアルの最終接続での有効になっているものも変化しています。

f:id:tktknkyo:20200120214207p:plain

Metallic

スペキュラ

ラフネス

Normal

この四つの接続が有効になっています。

 

光の入る角度が問題だったので

 

f:id:tktknkyo:20200120215017p:plain

ノーマルに接続しましょう

 

ビルボードにより、カメラの向きで光の当たる角度が原因

そして、球体であれば、どの向きからでも変わることはないので

 

f:id:tktknkyo:20200120215304p:plain

このような、球体に近づけるような法線を作って適応します。

 

元々ダメ元で試していけただけでしたが

光の反射に計算されるのが、法線によって変形する...

のがおそらく理由だとは思います。

 

f:id:tktknkyo:20200120220145p:plain

また、適応しただけでは影響が小さかったりするので

その下にあるDirectional Lighting Intensity

を10に設定します

 

f:id:tktknkyo:20200120220517p:plain

この時点で、このようになりました

下の方が暗いのは、恐らく法線の範囲が届いていないのが原因かと思われます。

 

法線を入れてない時点では

f:id:tktknkyo:20200120201059p:plain

全体がこんな感じに暗くなりすぎていたので

大分向きによる破綻は抑えれていると思います。

 

ただ、この時点でも、光の影響が寧ろ強すぎるとか出てきたりすると思います。

 

f:id:tktknkyo:20200120221010p:plain

ラフネスは恐らく1の固定でいいと思います

またMetallicは、数値で色合いが結構見え方変わってきます

 

f:id:tktknkyo:20200120221219p:plainf:id:tktknkyo:20200120221259p:plain

これはMetallicの1と0の比較です。

 

Metallicは金属のような反射の為ですが

それが具体的になぜこうなるのか?までは正直解ってないのが現状です。

 

 

 

 

この手法で作った煙をエフェクトのパーツとして入れたものが

このようになります。

最後の部分は原理は解ってない部分がまだありますが、今回はここまでとなります。