スタティックメッシュとスケルタルメッシュの違いについて

使用しているバージョンは5.1.1です。
Dissolveマテリアルの参考動画を見て実際にマテリアルを作って、
マテリアル内のプレビューではうまく動作しているとこまで確認できたのですが、
そのマテリアルをスタティックメッシュへ適用した場合とスケルタルメッシュに適用した場合とで
挙動が違い、スケルタルメッシュと同じ挙動をスタティックメッシュにもさせたいのですが、
どこの設定を変えたら良いのかわかりません。

具体的にいうとまず
ボックスコリジョンのオーバーラップでディゾルブの値が変化して溶けて戻るを繰り返すアクタ型BPを作成しました。
そこに変化する対象としてスタティックメッシュ(Engine内のCube)と
もう1つコピーしたBPに、SKM_Quinnを入れてDissolveマテリアルを適用しレベル上にそれぞれを配置しました。

配置した段階でもすでに発光の度合いが違うのですが、
これがそれぞれ完全に消えた状態を再現すると…

スタティックメッシュ側は消えても発光したままで影の表示もおかしいのに対して、
スケルタルメッシュ側はマネキンが消えるとちゃんと発光も影も消えます。
レベルを実際にシミュレートしてみても発光や影の描写はおかしいままでした。
ちなみにどちらも全部表示された状態になると発光は消えます。

DissolveマテリアルのBlendModeはMasked
ノードは以下のような感じです。

どなたか理由がわかる方、ご教授頂けないでしょうか。
宜しくお願い致します。

まず、UE5.1のStaticMeshとSkeletalMeshにおいて、大きく影響するのは、DistanceFieldの有無です

StaticMeshにはDistanceFieldがありますが、SkeletalMeshにはDistanceFieldはありません
これが、Lumenの挙動に影響を及ぼします

Lumenはデフォルト設定の場合、DistanceFieldを使ってレイトレーシングを行い、World内の色を取得・反映しています
StaticMeshはDistanceFieldがあるため、Lumenに認識され、その情報を使ってGI(Global Illumination)による間接ライティングが行われます
発光しているように見えるのはGIの作用です
SkeletalMeshにはDistanceFieldがないため、Lumenに認識されず、GIの対象になりません
ですので、画像のシーンではStaticMeshほど発光しているように見えない、という挙動になります


LumenはOpacityMaskの情報を参照しません

OpacityMaskによってゲームシーンから表示されなくなっているように見えますが、Lumenシーン内ではOpacityMaskのない状態の描画…つまり全面がEmissiveColorに置き換わった状態…として認識されています

発光しなくするには、OpacityMaskで削った部分は発光していない状態(つまり黒)に置き換える必要があります
これはEmissiveColorのみならず、BaseColorにも対処が必要です

下記の画像は簡易版ですが、このように黒に置き換えてみてください

LumenがSceneをどのように解釈しているかは、ViewportのLumenOverviewで確認するとよいです


影が消えない問題に関しては、VirtualShadowMapの副作用です

VirtualShadowMapは、Shadowの負荷対策の為、動かないであろうMeshの影をキャッシュしています
今回のようなCubeは、Actorの位置が全く動いていないため、VirtualShadowMapは書き直す必要なし、と判断されます

どうしてもこの仕様で影を正しくしたいとなると、VirtualShadowMapのCacheを切るのが手っ取り早いですが、その分負荷は増えるので注意してください

参考


リンク

ご教授頂きありがとうございます。

マテリアルは頂いた修正方法に基づいて修正、解決することができました。
影については、勉強不足で理解が追いつかず…ひとまずはシャドウマップメソッドを
VirtualShadowMapsからShadowMapsに戻すことで対処しました。

ありがとうございました。