[UE5]SceneCaptureComponent2Dについて

芸術学部フェスタ2025の制作でトラブルが発生した部分を備忘録としてメモしておきます。Unreal Engine(以下UE)の「SceneCaptureComponent2D」は、カメラビューのシーンをキャプチャし、その画像をマテリアル内で使用するためのコンポーネントです。

UEでは複数のカメラを同時に表示することができません。今回は音ゲーのメイン画面に加え、海の中を見ることのできるサブ画面とアートを表示する画面の計3つを同時に表示する必要がありましたが、単にカメラを3つ置いただけでは同時表示ができません。

そこでSceneCaptureComponent2Dを使い、カメラから見た画面をマテリアルとして貼り付けることで、同時にカメラの映像を表示できるようにしました。この考え方は理解できるものの、単純にカメラを置くだけではダメな理由がいまいち納得できません。

 

 

レンダーターゲットとマテリアルの作成
コンテンツブラウザで右クリックし、「描画ターゲット」を選択して作成します。


作成した描画ターゲットを開き、「テクスチャーレンダーターゲット2D」の
SizeXとSizeYで画像の大きさを設定します。


できたレンダーターゲットを右クリックし、マテリアルを作成します。



今回はUIの中で使用するため、「Material Domain」をUser Interfaceに変更します。
作成したマテリアルはテクスチャを張っただけのシンプルな構成になります。

 

 

UMGの作成
ウィジェットブループリントを作成します。


中身はImageノードがあるだけです。

[アビアランス] >> [Brush] >> [Image]に先ほど用意したマテリアルを指定します。これでカメラの画像をUMGに貼り付けることができましたが、問題が2つ発生しました。

 

 

問題と解決方法
問題が2つ発生しました。
1つはカメラの画像とキャプチャ画像で見え方が異なること、もう1つはエミッシブがキャプチャされないことです。

 

まず、画面の位置がずれる問題は、SceneCaptureComponent2DをCameraの子オブジェクトにすることで解決しました。

 

親カメラの設定を継承することで、見た目が同一になりました。

 

 

次にエミッシブの問題については、カメラのアクターに配置したSceneCaptureComponent2Dのシーンキャプチャ内にあるCapture Sourceを「SceneColor(HDR) in RGB~」から「Final Render」へ変更することで解決しました。名前の通り、最終的なレンダリング結果をキャプチャするため、画面と同じ見た目になりました。

 

制作日記更新
「波の記憶」-Rhythm of The Sea-
制作日記はこちら
https://note.com/muro8/n/ne0a24907fb54