画面の隅には、周囲の道が見えるミニマップ。部屋の壁には、離れた場所を映す監視モニター。見た目は違いますが、どちらも「別のカメラで撮った映像を貼る」と考えると、同じ仕組みで作れます。
その映像を入れておくのが Render Target です。今回はThird Personテンプレートに、プレイヤーを真上から映すミニマップを追加します。映像が表示できたら更新頻度を調整し、最後にゲーム内のモニターへ応用してみましょう。
この記事でわかること
- 撮影するScene Captureと、映像を受け取るRender Targetの役割
- プレイヤーを追いかけ、向きは固定するミニマップの作り方
- 撮影範囲・解像度・更新頻度をそれぞれ変えたときの違い
- 同じ仕組みで、ゲーム内のモニターにも映像を表示する方法
Blueprintでコンポーネントを追加し、ノードをつなげられる方を想定しています。UIとマテリアルは今回使う設定を順に示します。基本操作を確認したい場合は、UMGの基礎とマテリアルの基礎も 参考にしてください。実践はシングルプレイ向けです。
Render Targetは映像の受け皿
ふつうのテクスチャは、あらかじめ用意した画像を読み込んで使います。Render Targetは、ゲームの実行中に画像を書き込めるテクスチャです。今回なら、撮影のたびに新しい風景を書き込みます。
Render Target自身が撮影するわけではありません。カメラに相当する Scene Capture Component 2D がシーンを撮り、その結果をRender Targetへ渡します。Scene Captureは、ふだんプレイヤーが見ているカメラとは別の視点で撮影できます。

役割は「撮る・保存する・表示する」の3つです。撮影を止めても、Render Targetには最後の画像が残るため、表示は静止画になります 。逆に、同じRender Targetを複数のモニターで表示するだけなら、モニターごとに撮影用カメラを増やす必要はありません。
この分担を覚えておくと、映らないときも「撮影できていないのか、貼る先の設定なのか」と分けて調べられます。
プレイヤーの真上に撮影用カメラを付ける
まずは、上に屋根のないThird Personのテストレベルで作ります。目印になる箱を地面にいくつか置いておくと、あとで映る範囲や向きを確かめやすくなります。
映像の保存先を用意する
コンテンツブラウザで右クリックし、「Materials & Textures」→「Render Target」を作成します。名前を RT_Minimap にし、開いて「Size X」「Size Y」をどちらも 512 に設定して保存します。
これで512×512ピクセルの画像を受け取る場所ができました。まだ撮影するものをつないでいないので、風景が映らなくても大丈夫です。
キャラクターにScene Captureを追加する
操作中のキャラクターBlueprint(標準テンプレートなら BP_ThirdPersonCharacter)を開きます。「Components」で「Capsule Component」を選び、「Add」から Scene Capture Component 2D を追加して、名前を MinimapCapture にします。
Capsule Componentの子に置き、MeshやCamera Boomの下へ入れないようにします。プレイヤーの位置には付いてきてほしい一方、体のアニメーションや操作用カメラの回転には合わせたくないためです。

MinimapCapture を選び、「Details」で次を設定します。英語名はDetailsの検索にも使えます。
| 設定 | 値 | 今回の役割 |
|---|---|---|
| Location | Relative、X=0・Y=0・Z=1500 | キャラクターの上、約15mの位置に置く |
| Rotation | World、X=0・Y=-90・Z=0 | 世界に対して向きを固定し、真下を撮る |
| Projection Type | Orthographic | 遠近を付けずに撮る |
| Ortho Width | 3000 | 横幅30mの範囲を映す |
| Texture Target | RT_Minimap | 撮影結果の保存先 |
| Capture Source | Final Color (LDR) in RGB | 色の映像を出力する |
| Capture Every Frame | オン | まずは毎フレーム更新して動作を確かめる |
「Rotation」のラベル横にあるメニューで「World」を選んでから角度を入力します。X・Y・ZはそれぞれRoll・Pitch・Yawで、ここでは Y(Pitch)を-90度にします。「Location」はRelativeのままにしてください。
Relativeは親を基準にする設定、Worldは世界を基準にする設定です。位置だけ親に付いていき、回転は世界に固定するので、プレイヤーが方向転換しても地図全体は回りません。
Capture Sourceは「撮影結果の何を画像に書き込むか」の選択です。今回は明るさや色を表示用にまとめたFinal Colorを使います。LDRという略称を覚えるより、深度などのデータではなく、風景の色を受け取る設定だと押さえておけば進められます。
コンパイルしてPlayし、RT_Minimap のプレビューを確認します。Play中にエディタを操作したいときは、Shift + F1 でマウス操作を戻せます。真上から見た地面や箱が映れば、撮影と保存先はつながっています。真っ黒なら、Texture Targetの指定に加えて、撮影する向き、屋根や壁でふさがれていないか、レベルに照明があるかを順に確認してください。
撮影範囲と画像の細かさを分けて考える
Orthographic(平行投影) は、カメラからの距離によって物の大きさが変わらない撮り方です。真上から道や建物の位置関係を読むミニマップに向いています。
ふだんのゲーム画面でよく使う Perspective(透視投影) は、奥のものが小さく見える撮り方です。監視カメラのように、その場所を眺める感覚を出したいときに使います。
ミニマップを広く見せたいときは、Render Targetのサイズではなく、MinimapCapture の Ortho Width を変えます。これは画像の横幅に収める、実際の世界の広さです。UEの標準単位では 3000 が30m、6000 が60mになります。
