ue4 mobileにてmovable(動的)のアクターの陰が大きさや距離によって表示されなくなる場合の対処法
症状
プレイ中やビューポートでは問題なく影が落ちたりもするが、実機で動かしてみると全く影が落ちていない。プロジェクト設定やディレクショナルライトの設定をいじってみてもあまり効果がない。
いろいろやってみた結果どうやらUE4は小さいアクター、厳密にはZ軸の大きさが小さいアクターの影は大きいアクターに比べて早く影が消えてしまうらしい。なんて紛らわしい仕様なんだ。
調べてみてもDynamic Shadow Distance の数値を上げろとかそんなのしか引っかからず、それっぽいものがなかなか出てこなかったのでとても時間が掛かりました。
やったこと(解決しなかった方法)
・ライトの設定からDynamic Shadow Distance Stationary Lightの数値を上げる。(効果なし)
・プロジェクト設定のレンダリング欄の様々な機能を有効にしたり無効にしたりする。(効果なし)
・アクターの設定のBounds Scaleをあげてみる。(プレイでは影が落ちたものの実機では効果ないしwarningを
・ディスタンスフィールドシャドウを有効にしてみる。(効果なし)
・cast modulated shadows(変調シャドウ)を有効にしてみる。(効果なし)
・その他ライト側の様々な設定(効果なし)
・設定からエンジンの拡張機能設定から最高設定の死ネマティックにしてみる。(エディタでは影が落ちたものの実機では落ちず)
解決方法
まずは変調シャドウをオフにして、こちらのURLのスケーラビリティ設定にあるBaseScalability.iniファイルにあるr.Shadow.RadiusThreshold=0.06の後ろの数字を変えることにより解決しました。
エディタ内では何故か変更できない(知らないだけかも)が、android向けの陰の初期設定を変えることで影を落とすことができました。エンジンの拡張機能設定の一部っぽいのですがよくわかりません。
iosでも同じようなことをすればできると思います。
何か詰まってしまったら設定ファイルの事を色々調べてみると効果的かもしれませんね。なんか怖いのであんまりしたくないけど!
あ~これでやっと前に進める