(結論としては)
質問1:スタティックメッシュのアセットで、隙間なく地下鉄駅構内を埋めても、Directional Lightで光が入り込んでしまう理由は何で、光が地下まで入り込まない対策を教えてください。
質問2:スターターコンテンツに入っているSM_Sky_Sphereを、別のレベルに移動する方法、もしくはSM_Sky_Sphereを作成する方法があれば、教えて下さい。
(以下詳細内容)
以下のようなプロジェクトを目標に作成しています。地下鉄駅内は暗く、外に出ると夜空という状態です。
City 16 (Free Download / Speed Level Design / Unreal Engine 4)2018/04/20
レベルの新規作成をempty levelから作成すると、地下鉄駅内は暗いままですが、Directional Lightを入れると、地下鉄駅内まで外の明かりが一部入ってしまいます。
Directional Light設置前
Directional Light設置後(地下鉄駅内にうっすら夕日のような明かりが映ってしまう。空を夜でなく日中にすると、光が地下鉄駅内にも入り込んでしまう)
※以下の画像は、Directional Lightの設定を太陽が出る日中に設定すると、地下室なのに木漏れ日が差し込んでいるような状態になってしまいます。
質問1:スタティックメッシュのアセットで、隙間なく地下鉄駅構内を埋めても、Directional Lightで光が入り込んでしまう理由は何で、光が地下まで入り込まない対策を教えてください。
なお、上記目標の動画では、Directional LightではなくSM_Sky_Sphereを使用して夜に設定しているようです。(動画内 11:44付近)
レベルの新規作成をempty levelから作成する場合(スターターコンテンツをベースに新しいレベルを作成するのではなくて)、SM_Sky_Sphereはないため、他のプロジェクトから移動したいと考えています。
質問2:スターターコンテンツに入っているSM_Sky_Sphereを、別のレベルに移動する方法、もしくはSM_Sky_Sphereを作成する方法があれば、教えて下さい。
Operation date: 5/14/2022
Version: UnrealEngine 4.26.2 UE4-26
System Model: Dell G15 5511
Environment: Microsoft Windows 10 Home
CPU:11th Gen Intel(R) Core™ i7-11800H @ 2.30GHz、2304 Mhz 8core
Memory: 16.00 GB
2 Likes
jgoamakf
(HIRAMATSU, Yoshifumi)
2
BP_Sky_Sphereというブループリントですが、これは以下の手順でレベルに追加できます
① コンテンツブラウザの「コンテンツ」の横のフォルダみたいなボタンを押します
②「エンジンコンテンツ」をクリックします
③ フィルタにbp_sky_sphereと入力するとBP_Sky_Sphereだけが表示されるので、
それをレベルにドロップします
「Directional Lightで光が入り込んでしまう」の方は良く分からないです。PostProcessVolumeの露出補正の設定かも?
ご返信本当にありがとうございます。ずっと探していた答えがようやく見つかりました。
★質問2については、解決です!
(参考)
「エンジンコンテンツ」が非表示になっていて、戸惑ってしまいました。表示させる方法を以下に調べました。本QAご覧になる方への情報共有として。
BP_Sky_SphereはEngineContentの中にあります、EngineContentを表示させていない場合はPlaceActersから選択出来ません。
EngineContentを表示させるにはコンテンツブラウザ右下のViewOptionsをクリックして、Show Engine Contentにチェックを入れます。
(追伸)
重ねてお礼申し上げます。趣味の一環として独学で牛歩のように進んでいる中、jgoamakfさんのご助言があって本当に助かりました。将来は、リアルに近い3D空間を作って、VRでキョロキョロしながら楽しめる場を作りたいと思います。本当にありがとうございました!
★質問1(閉じたスタティックメッシュ内にDirectional Lightで光が入り込まないようにしたい=1つのレベルでライトだけの明るさで探索できる地下と明るい屋外両方を作りたい)は、引き続きご回答募集いたします。
>「Directional Lightで光が入り込んでしまう」の方は良く分からないです。PostProcessVolumeの露出補正の設定かも?
↓
PostProcessVolumeは配置せずに、Directional Lightのみを配置しても同様の現象があります。
以下が具体的状態です。
(1)Directional Lightを配置。RotationのY軸を90度に変更。夜を演出。
(2)BP_Sky_Sphereを配置。Directional Light ActorをDirectional Lightに変更。
(3)画面左側のアクタビューの中にあるCubeを使って作成した小屋は、室内は真っ暗なのでOK。しかし、真下から光が透過して、屋根下が白くなってしまう。
(4)画面右側のフリーアセットから作成した閉鎖部屋。光が差し込む余地はないはずなのに、明かりが煌々と入ってしまう。
まず知るべきは「光は物体の表面を照らす」「光は物体の表面で反射する」ということです
重要なのは「表面」という部分です
MeshのPolygon(Surface)には「表」と「裏」が存在します
そして、UnrealEngineのデフォルト設定では、Surfaceの裏面を描画しません
描画されていないものは、ないものと一緒です
なので、Meshの裏面からは光が貫通します
これが、Cubeで囲った部屋は暗くなるのに、Planeで囲った部屋が暗くならない理由です
Cubeで作った建物の軒下が明るいのも同じ理由です
DirectionalLightが地面の下から照らしていますが、地面はPlaneなので裏面がありません
なので地面の裏から光が貫通して照らされる、という結果になります
完全に光を遮断する空間を作りたい場合は、表面が外を向いたMeshの内側に閉じ込めてください
BSPBrushを使って囲うのが一番簡単かと思います
あるいはMaterialでTwoSidedをOnにし、両面レンダリングするようにしてください
2 Likes
jgoamakf
(HIRAMATSU, Yoshifumi)
5
訂正なのですが、BP_Sky_Sphereはアクタを配置のフィルタ欄に「sky」と入力して
見つける方が簡単でした。
理解できました。問題解決です。勉強不足で申し訳ありません。結果的には約2か月近く原因が解決しないまま,足踏み状態でしたが,お陰様で,前進できます。本当にありがとうございました。
ありがとうございます。もともとBP_SKY_Sphereの出し方も分からなかったので,とても助かりました。いい作品作りができるようにがんばります。ありがとうございました。