【Unreal Engine】Render Targetでミニマップと監視カメラを作る:カメラの映像をUIに貼る

作成: 2026-07-25

Scene Capture Component 2DとTexture Render Target 2Dで、カメラが撮った映像をUIやマテリアルに貼る方法を図解。ミニマップの作り方、Orthographicと Perspectiveの使い分け、そして「シーンをもう1回描く」コストを抑える設定まで、ミニマップと監視カメラを作る実践つきで解説します。

画面の隅にミニマップを出したい。壁のモニターに別の部屋の映像を映したい。キャラクター選択画面で、選んだキャラを回転させて見せたい。

これらは全部、同じ1つの仕組みで作れます。カメラで撮った映像を、テクスチャとして貼る——UEでは Scene Capture Component 2DTexture Render Target 2D の組み合わせです。この記事では、その3点セットの作り方、ミニマップ特有の設定、そして知らずに使うと重いというコストの話を解説します。

キャラクターの真上のカメラが撮った映像が、画面隅のミニマップに映る様子とソフトブルーのクレイ人形

この記事でわかること

  • Render Targetは 実行中に書き換えられるテクスチャ(更新頻度は自分で決める)
  • 3点セット(撮る・受け皿・貼る先)
  • UMGの Image に貼ってUIに出す
  • ミニマップは Orthographic 、モニターは Perspective
  • 🚨 Scene Captureはシーンをもう1回描くCapture Every FrameCapture on Movement を両方オフ)
  • 実践: ミニマップと監視カメラを両方作る

Sponsored

Render Targetは動くテクスチャ

普通のテクスチャは、絵が焼き込まれた画像ファイルです。何度読み込んでも同じ絵が出ます。

Render Target は違います。実行中に中身を書き換えられるテクスチャです。「カメラが撮った映像」を入れておく箱、と考えてください。

どれくらいの頻度で書き換わるかは、こちらで決められます。 既定では毎フレーム更新されますが、あとで見るように この頻度がそのまま負荷になる ので、実用では意図的に間引きます。

普通のテクスチャは絵が固定されているのに対し、Render Targetはカメラの映像で毎フレーム中身が書き換わることを左右で対比した図

テクスチャである以上、普通のテクスチャと同じように使えます。マテリアルに貼れるし、UMGの Image にも出せます。だからこそ、次のようなものが全部同じ仕組みで作れます。

作れるもの撮るもの貼る先
ミニマップキャラの真上から見た地形UMGの Image
監視カメラのモニター別の部屋壁のメッシュのマテリアル
キャラ選択のプレビュー台に載せたキャラUMGの Image
バックミラー車の後方鏡のメッシュのマテリアル

3点セットを組む

必要なのは3つだけです。撮るもの・受け皿・貼る先

Scene Capture Component 2Dが撮り、Texture Render Target 2Dが受け取り、MaterialやUMGのImageへ貼られる3段階の流れ図
#名前役割
1Scene Capture Component 2D撮る側。カメラのようなコンポーネント
2Texture Render Target 2D受け皿。撮った映像が入るアセット
3Material または UMGの Image貼る先。受け皿の中身を表示する

手順はこうです。

  1. コンテンツブラウザで右クリック → Texture → Render Target を作る(RT_Minimap など)。作った直後は真っ黒です
  2. Actorに Scene Capture Component 2D を追加する
  3. そのコンポーネントの詳細パネルで、Texture Target に手順1で作ったRender Targetを指定する

この3つ目の指定が接続点です。Texture Target に受け皿を差した瞬間から、そのRender Targetの中身が更新されはじめます

Render Targetをコンテンツブラウザでダブルクリックすると、今撮れている映像がそのまま見えます。ここが真っ黒なままなら、Texture Target の指定を忘れているか、カメラが何も映していない場所を向いています。

解像度は作るときに決めます。 Render Targetの詳細パネルで Size X / Size Y を設定します。ミニマップなら 512×512 、小さなモニターなら 256×256 で十分です。大きいほど重くなるので、必要最小限にしてください。

Sponsored

UIに出す

ミニマップのように画面に出す場合は、UMGの Image へ貼ります。

UMGの Image の Brush には、テクスチャを直接指定できます。Render Targetもテクスチャなので、そのまま指定できます

UMGのImageウィジェットのBrushにRender Targetを直接指定するだけで映像が出ることを示した図
  1. Widget BlueprintImage を置く
  2. 詳細パネルの Appearance → Brush → Image に、作った Render Target を指定する
  3. サイズと位置を調整する(画面の右上や左下など)

これだけで、カメラが撮っている映像がUIに出ます

壁のモニターのように3D空間のメッシュに映す場合は、いったんマテリアルを経由します。マテリアルを新規作成し、Render Targetを Texture Sample ノードとして置いて、その出力を Emissive Color へ繋ぎます。Emissive に繋ぐのは、モニターは自分で光っているように見せたいからです(→ マテリアルの基本)。


ミニマップの設定

ミニマップを作るとき、Scene Capture Component 2D の設定で2つだけ押さえておけば形になります。

1つ目は Projection Type

Perspectiveは遠近が付いて奥の敵が小さくなり、Orthographicは遠近が付かず全部同じ大きさで位置関係が正確に読めることを対比した図
種類見え方向いている用途
Perspective遠近が付く(遠いものは小さい)監視カメラ、バックミラー、キャラプレビュー
Orthographic遠近が付かない(全部同じ大きさ)ミニマップ、設計図のような俯瞰図

ミニマップは Orthographic です。遠近が付くと、画面の端にいる敵が小さく歪んで見え、位置関係が正確に読めなくなります。Orthographicなら真上から見た地図と同じで、距離と方向がそのまま読めます。

Orthographicにすると、範囲は Ortho Width で決めます。この数値がミニマップの縮尺です。大きくすると広く写り、小さくすると拡大されます。

2つ目は、キャラに追従させるかどうか。

カメラをキャラの子にして真上に配置すると、位置は自動で付いてきます。悩むのは回転です。

やり方見え方向いている
回転も追従常に自分が上を向くアクション。進行方向が直感的
回転は固定北が常に上探索。地形を覚えやすい

どちらも正解です。回転を固定したい場合は、Scene Capture Component 2D の詳細パネルで Absolute Rotation を有効にすると、親の回転を無視して向きを保てます。


🚨 重さの話

ここがこの機能でいちばん大事な節です。

Scene Capture Component 2D は、シーンをもう1回描きます。 メインのカメラで1回描いて、キャプチャ用にもう1回描く。つまり素直に置くと描画コストがほぼ倍になります

メインカメラの描画に加えてScene Captureがもう1回シーンを描くため、描画コストが積み上がることを示した図

しかも、Scene Captureを2つ置けば3回描きます。「ミニマップと監視カメラを両方置いたら急に重くなった」というのは、この計算どおりの結果です。

抑え方は3つあります。効果が大きい順に並べます。

対策やり方効果
自動で撮らせないCapture Every FrameCapture on Movement両方オフにし、必要なときだけ Capture Scene を呼ぶ最大。監視カメラなら0.2秒に1回で十分
解像度を下げるRender Targetの Size X / Y を小さくする大。1024256 にすれば描く量は1/16
写すものを減らすShow Flags で不要な要素(パーティクル、フォグ、被写界深度など)をオフにする中〜大。ミニマップに霧は要らない

ここで見落としやすいのが Capture on Movement です。 手動更新にするために切るべきチェックは、2つあります

項目既定何をするか
Capture Every Frameオン毎フレーム撮る
Capture on Movementオンカメラが動いたときに撮る

Capture Every Frame だけ切って満足していると、ミニマップでは効果が出ません。ミニマップのカメラはプレイヤーの子で、歩けば必ず動くからです。動くたびに撮られるので、実質的に毎フレーム撮っているのと変わらなくなります。

Capture Every Frameだけ切っても、カメラが動くたびにCapture on Movementで撮られてしまうため、2つを両方オフにする必要があることを示した図

両方オフにすると、Blueprintから Capture Scene を呼んだ瞬間だけ撮影されます。 Set Timer by Event で0.1〜0.2秒ごとに呼べば、見た目はほぼ変わらずコストが数分の1になります(→ Tickに頼らない設計)。

実際にどれだけ重いかは、statコマンドstat unit で Draw と GPU を見れば分かります。Scene Captureを置く前と後で測って比べてください。

Sponsored

実践:ミニマップと監視カメラを作る

見下ろしARPGのミニマップ、ステルスゲームの監視カメラモニター、レースゲームのバックミラー。同じ3点セットで、設定だけが変わります。ここでは対照的な2つを作って、設定の意味を体で覚えます。

作るもの

① ミニマップ② 監視カメラ
撮る場所プレイヤーの 真上 1500別の部屋の天井
Projection TypeOrthographicPerspective
Ortho Width3000.0(使わない)
Render TargetRT_Minimap512×512RT_SecurityCam256×256
貼る先UMGの Image(画面右上)壁のメッシュのマテリアル
Capture Every Frameオフオフ
Capture on Movementオフオフ
撮る間隔0.1秒ごとに Capture Scene0.2秒ごとに Capture Scene
ミニマップは真上からOrthographicで撮って画面右上のUIに、監視カメラは別室をPerspectiveで撮って壁のモニターに映る様子を並べた実例図

① ミニマップ

  1. RT_Minimap を作る(右クリック → Texture → Render Target、Size X/Y = 512
  2. プレイヤーのBlueprintに Scene Capture Component 2D を追加し、Location = (0, 0, 1500)Rotation = (0, -90, 0)(真下を向く)にする
  3. 詳細パネルで Texture Target = RT_MinimapProjection Type = OrthographicOrtho Width = 3000.0 、そして Capture Every FrameCapture on Movement を両方オフ(プレイヤーの子なので、Capture on Movement を残すと歩くたびに撮られます)
  4. Widget Blueprintに Image を置き、Brushに RT_Minimap を指定して、画面右上へ配置する
  5. プレイヤーの Event BeginPlaySet Timer by EventTime = 0.1Looping = true)を作り、そのイベントから Capture Scene(Target: Scene Capture Component)を呼ぶ

② 監視カメラ

  1. RT_SecurityCam を作る(Size X/Y = 256
  2. 別の部屋に空のActorを置き、Scene Capture Component 2D を追加。部屋を見下ろす向きにする
  3. Texture Target = RT_SecurityCamProjection TypePerspective のままCapture Every FrameCapture on Movement を両方オフ
  4. マテリアル M_Monitor を新規作成し、Texture SampleRT_SecurityCam を指定して Emissive Color へ繋ぐ
  5. 壁に置いた板状のメッシュに M_Monitor を適用する
  6. 手順2のActorの Event BeginPlaySet Timer by EventTime = 0.2)から Capture Scene を呼ぶ
上段「自動撮影を止める」でScene Capture Component 2D→Capture Every Frame false→Capture on Movement false、下段「間引いて撮る」でEvent BeginPlay→Set Timer by Event→Capture Sceneへ折り返す2段組みの完成ノードグラフ
BP_Player(イベントグラフ)
Event BeginPlay
  → Set Timer by Event(Time = 0.1, Looping = true)
      ├→ カスタムイベント「UpdateMinimap」へバインド

UpdateMinimap(Custom Event)
  → Capture Scene(Target: SceneCapture2D)

確かめる

Playして画面の右上を見てください。うまくいっていれば、真上から見た地形と、その中心に自分が映ったミニマップが出ています。歩くと地形が流れ、自分は中心に留まります。Ortho Width3000 から 1500 に変えると、表示範囲が半分になって拡大されます

監視カメラのほうは、壁のモニターに別の部屋の映像が映っているはずです。その部屋に別のActorを動かして置けば、モニターの中でも動きます。

そして最後に、stat unit を出して Draw と GPU を確認してください。 Scene Captureを2つ置いた状態でも、2つのチェックをオフにしていれば数値の跳ね上がりは小さいはずです。試しに ミニマップ側の Capture on Movement だけをオンに戻して、歩き回ってみてくださいCapture Every Frame がオフのままでも数値が上がります。これが「2つ切る」理由です。

うまくいかないときの切り分けです。

  • ミニマップが真っ黒Texture Target が未設定か、自動撮影を切ったまま Capture Scene を1度も呼んでいません
  • 切ったのに軽くならないCapture on Movement が残っています。プレイヤー追従のカメラでは、これだけで毎フレーム撮っているのと同じになります
  • 自分のキャラだけ映らない → 真上のカメラが近すぎて、キャラがニアクリップ面に入っています。Location のZを上げてください
  • 画面の端が歪むProjection TypePerspective のままです。ミニマップは Orthographic にします
  • 急に重くなったCapture Every Frame がオン、または解像度が大きすぎます

ポイントは2つです。

  • 撮る頻度が、そのままコスト: Capture Every FrameCapture on Movement両方 オフにして、タイマーで間引くのがいちばん効く最適化です。ミニマップは0.1秒、監視カメラは0.2秒でも見た目はほとんど変わりません
  • Orthographic か Perspective かは「地図か、映像か」で決める: 位置関係を読ませたいなら Orthographic、実際の見え方を見せたいなら Perspective。ミニマップに遠近を付けると読みにくくなります

描くものを減らす方向でさらに詰めたくなったら、LODとカリング が次の担当です。


おまけ:先に知っておくと良いこと

キャラ選択のプレビューも同じ仕組み。 誰も来ない場所に台とキャラを置き、Scene Capture Component 2D で撮ってUMGに出すだけです。「キャラを回転させて見せる」は、撮っているキャラのほうを回すだけで作れます。

ポータル表現の入口でもある。 「覗くと向こう側が見える」ドアは、向こう側にカメラを置いてRender Targetに撮り、それをドアのマテリアルへ貼る、という発想の延長にあります。ただしカメラの位置をプレイヤーの視点に合わせて動かす必要があり、難易度は一段上がります。

Canvas Render Target 2D という別の道もある。 これはカメラで撮るのではなく、自分で線や図形を描き込むタイプのRender Targetです。「敵の位置を点で打つだけのミニマップ」なら、シーンを撮るよりこちらのほうが圧倒的に軽くなります。地形を映す必要がないなら検討する価値があります。

Show Flagsは宝の山。 Scene Capture Component 2D の詳細パネルには、何を描画するかのチェックリスト(Show Flags)があります。ミニマップならパーティクル・フォグ・被写界深度・ブルームあたりは全部切って構いません。見た目が変わらないのに軽くなる、いちばん気持ちのいい最適化です。


まとめ

  • Render Targetは 実行中に中身を書き換えられるテクスチャ 。普通のテクスチャと同じように貼れる。 更新頻度は自分で決める
  • 3点セットは Scene Capture Component 2D(撮る)+ Texture Render Target 2D(受け皿)+ Material / UMGの Image(貼る先)
  • ミニマップは Orthographic 、範囲は Ortho Width 。監視カメラは Perspective
  • 🚨 Scene Captureはシーンをもう1回描くCapture Every Frame Capture on Movement を両方オフにして間引くのが最優先
  • 解像度を下げる・Show Flags を切る、も効く

仕組みは1つでも、設定次第でミニマップにも監視カメラにもプレビュー画面にもなります。あなたのゲームで、まず作りたいのはどれでしょうか。