🌃

[UE5]Scene Capture 2Dでライティングの影響を受けないように

2024/10/01に公開

はじめに

この記事では、Scene Capture 2Dを使ってゲーム内の撮影をする際に、ライティングの影響を受けないようにする方法を説明します。
暗いマップでも撮影した画像が真っ黒にならずにすみます。

また、この方法ではVR(r.ForwardShading=True)でも動作しました。
他にもググるとポスプロで行う方法も出てきましたが、こちらはVRでは使えませんでした。

実際に撮影した画像はこんな感じ。
ライティングがなくなるので、見た目はチープになります。
また、空は暗いままです。

環境

  • Windows11
  • UE5.3.2

やり方

撮影用のScene Capture 2D Actorを用意して、詳細タブからScene Capture > Advanced > Hidden Show Flags > Lighting のチェックを外します。

これにより、Scene Capture 2Dでライティングの影響を受けずに撮影することが可能です。

比較として、Show Flag変更前はこんな感じでした。

余談ですが、Show Flagには他にも様々な項目があり、キャラクター/背景だけ抜き出したいなどの用途でも使えるようです。(未検証)

フォーラムの下記あたりで議論されていますが、これはEpicとしては仕様のようで直す気はないみたいです。

https://forums.unrealengine.com/t/scenecapture2d-show-flags-not-available-in-blueprint/304175/13

https://forums.unrealengine.com/t/scene-capture-show-flags-not-working-after-packing-game/482570

試したところ、Scene Capture 2D Actorを継承してShow Flagを変更したものを用意しておき、他のBPから動的にスポーンさせることは可能でした。

検証用プロジェクト作成手順

需要があるか分かりませんが、記事を書くための検証用にサードパーソンテンプレを使ったプロジェクトの作成手順を記録しておきます。

  1. DirectionalLightのIntensityを0.3にする

  2. Scene Capture 2D Actorを配置して、Scene Capture > Capture SourceをFinal Color(LDR) in RGBにする

  3. Scene Capture > Advanced > Hidden Show Flags > Lightingをオフにする

  4. BP_ThirdPersonCharacterにテスト用の撮影機能を追加する
    (BeginPlayの後ろに追加した、Capture Every Frameがオンになっているので、Capture Sceneは呼ばなくて良かったかも)

    参考記事:

https://historia.co.jp/archives/16883/


皆様の応援が投稿のモチベーションになります。

記事が参考になりましたら、ぜひ♡ボタンを押したり、記事の拡散、X(Twitter)のフォローなどしていただけますと嬉しいです。

GitHubで編集を提案

Discussion