「別のカメラが映した映像を、UIや3Dオブジェクトに貼りたい」——ミニマップ、バックミラー、監視カメラのモニター、キャラの立 ち絵ポートレート、そしてポータルの向こうの景色まで。これらはすべて Render Texture という1つの仕組みが入口です。カメラの映像を「画面」ではなく「テクスチャ」に描き込み、それを好きな場所に貼れる——そう考えると、応用の広さが見えてきます。
この記事では、Render Textureとは何か から、Camera → Render Texture → RawImage / Material という基本の流れ、定番の 見下ろしミニマップ の作り方、鏡や監視カメラへの応用、そして 毎フレーム描画の負荷対策 までを解説します。
この記事でわかること
- Render Textureとは(カメラ出力を画面でなくテクスチャに描く)
- 基本の流れ:Camera → Render Texture → RawImage / Material
- 見下ろしミニマップ の作り方(プレイヤー追従・北固定)
- 鏡・監視カメラ への応用(Materialに貼る)
- 毎フレーム描画の負荷対策(解像度・更新頻度・無効化)
動作確認環境: Unity 2022.3 LTS / Unity 6
Render Textureとは
普段、カメラの映像は 画面(ディスプレイ) に映ります。Render Textureを使うと、その映像を画面の代わりに テクスチャ(画像アセット) に描き込めます。一度テクスチャになれば、あとはUIに貼るのも、3Dオブジェクトの表面に貼るのも自由自在です。

ポイントは 「画面に映すカメラ」とは別に、テクスチャ用の専用カメラを用意する ことです。メインカメラはこれまで通りプレイヤー視点を画面に映し、追加した専用カメラが「ミニマップ用の見下ろし映像」や「鏡に映る映像」をテクスチャに描き込みます。
Project ビューで右クリック → Create > Render Texture でアセットを作成し、専用カメラの Target Texture にそれを割り当てるだけ。これで、そのカメラの出力先が画面からテクスチャに切り替わります。
基本の流れ:Camera→Render Texture→表示
Render Textureの使い方は、どんな用途でも共通の3ステップです。
- Render Textureアセットを作る:
Create > Render Texture。解像度(例: 256×256、512×512)を設定する - 専用カメラのTarget Textureに割り当てる: 映したい対象を捉えるカメラを用意し、そのInspectorの
Target Textureに手順1のRender Textureをセットする - 貼り先に表示する: 出来上がったテクスチャを、UIなら RawImage、3Dオブジェクトなら Material に貼る
ここで最重要の注意点があります。 UIに表示するときは、Image ではなく RawImage を使う ことです。通常の Image はSprite専用でRender Textureを直接扱えません。RawImage は Texture をそのまま貼れるので、Render Textureの表示にはこちらを使います。
[ミニマップ用カメラ] --Target Texture--> [Render Texture] --貼る--> [RawImage(UI)]
\--貼る--> [Material(鏡・モニター)]
3Dオブジェクトに貼る場合は、Materialを作り、その Albedo(またはEmission)テクスチャにRender Textureを割り当てて、鏡やモニターのメッシュに適用します。
実践:見下ろしミニマップを作る
Render Textureのいちばん定番の使い道が ミニマップ です。RPGの全体マップ、TPSの周辺レーダー、ストラテジーの戦況表示——どれもこの構成で作れます。

作り方はシンプルです。 プレイヤーの真上に見下ろしカメラを置き、その映像をRender Texture経由でRawImageに映す だけです。
- 見下ろしカメラを追加: プレイヤーの真上に配置し、
RotationのXを90度にして真下を向かせる。ProjectionをOrthographic(平行投影)にすると、遠近感のない地図らしい見た目になる - Render Textureを割り当て: このカメラの
Target TextureにRender Textureをセット - RawImageに表示: Canvas上にRawImageを置き、その
TextureにRender Textureを割り当て、画面隅に配置する - プレイヤーに追従: カメラをプレイヤーの子にするか、スクリプトで位置だけ追従させる(回転は追従させないと「北固定」のマップになる)
using UnityEngine;
// ミニマップカメラをプレイヤーの真上で 追従させる(向きは固定)
public class MinimapCamera : MonoBehaviour
{
[SerializeField] private Transform player;
[SerializeField] private float height = 20f; // プレイヤーの頭上からの高さ
void LateUpdate()
{
// プレイヤーの真上heightぶんに位置だけ合わせる(回転は変えない=北が常に上)
Vector3 pos = player.position;
pos.y += height;
transform.position = pos;
}
}
ポイントは2つです。 「回転は追従させない」(位置だけプレイヤーに合わせ、カメラの向きは固定すると「北が常に上」の見やすいマップになる。プレイヤーの向きに回すタイプもあるが、まずは固定が簡単)と、 「Orthographicで地図らしく」(平行投影にすると真上から見た地図の見た目になる。Size でマップの表示範囲を調整する)。プレイヤーアイコンは、RawImageの中央に小さな画像を重ねて置くだけ。敵やアイテムのアイコンも、ワールド座標をミニマップ座標に変換して重ねれば、本格的なレーダーになります。

鏡・監視カメラへの応用
Render Textureは、UIだけでなく 3Dオブジェクトの表面 にも貼れます。これで鏡や監視モニターが作れます。

- 鏡: 鏡の面に対して対称な位置にカメラを置き、その映像をRender Texture経由で鏡のMaterialに貼る。プレイヤーが動くと鏡像も動く
- 監視カメラ: 別の部屋にカメラを設置し、その映像をモニター画面(Quad)のMaterialに貼る。ホラーゲームの防犯モニターなどの定番演出
- キャラのポートレート: キャラだけを映す専用カメラを用意し、会話UIやステータス画面に立ち絵として表示する。3Dモデルをそのままアイコン化できる
- ポータル: 出口の向こう側を映すカメラの映像を、ポータルの面に貼ると「向こうが覗ける穴」になる
どれも仕組みは同じ——「専用カメラ → Render Texture → 貼り先」です。貼り先がUIのRawImageか、3DオブジェクトのMaterialか、の違いだけです。
負荷対策:毎フレーム描画のコスト
Render Textureは強力ですが、 専用カメラがもう1画面分の描画を毎フレーム行う ため、そのぶん負荷がかかります。カメラの数だけ描画コストが増えると考えてください。特にモバイルでは無視できません。
- 解像度を下げる: ミニマップやモニターは小さく表示されるので、Render Textureの解像度は低めで十分(256×256など)。むやみに1024×1024にしない
- 更新頻度を落とす: 毎フレーム描画が必要ないなら、
camera.enabledを切り替えて数フレームに1回だけ描画する。監視カメラなら数フレーム遅れても気づかれにくい - 不要なときは無効化: ミニマップを閉じている間や、モニターが画面外のときは、専用カメラを無効にして描画を止める
- 映すレイヤーを絞る: ミニマップカメラの
Culling Maskで、地形とアイコンだけ映すなど、描くものを減らすと軽くなる
負荷が気になったら、Profiler でカメラの描画コストを確認しましょう。ドローコール の観点でも、映すオブジェクトを絞るのが効きます。
おまけ:先に知っておくと良いこと
- UIはImageでなくRawImage: 何度でも強調しますが、Render Textureの表示は
RawImageです。Imageに貼ろうとして「表示されない」と悩むのは定番のつまずきです。 - URP/HDRPでの差: 基本の仕組みは共通ですが、URPではカメラの
Base/Overlayの扱いや、一部設定の場所が異なります。この記事はBuilt-in / URPどちらでも通じる基本を扱っています。 - ミニマップの 円形マスク: RawImageを円形にくり抜くには、マスク用の円画像を使うか、
Maskコンポーネントを併用します。四角いままでも機能はしますが、円にすると一気にゲームUIらしくなります。 - Render Textureのフォーマット: 透過が必要なら、Render Textureの
Color Formatにアルファ付きのフォーマットを選びます。ポートレートの背景を透明にして会話UIへ重ねたいときなどに使います。
まとめ
- Render Texture は、カメラの出力を画面でなく テクスチャ に描き込むアセット
- 基本の流れは 専用カメラのTarget Texture → Render Texture → RawImage(UI)または Material(3D)
- UIに貼るときは
ImageでなくRawImageを使う - ミニマップは 見下ろしOrthographicカメラ+位置追従(回転は固定) が定番
- 鏡・監視カメラ・ポートレート・ポータルも、すべて同じ「カメラ→RT→貼り先」の応用
- 専用カメラは 毎フレーム描画=負荷。解像度・更新頻度・無効化・Culling Maskで抑える
まずは見下ろしカメラを1つ足して、その映像をRawImageに映すところから始めてください。画面の隅に自分の周りの地図が現れた瞬間、Render Textureの応用範囲の広さが実感できるはずです。あなたのゲームでは、どんな「もう1つの視点」を映しますか?
さらに学ぶために
- Cinemachine入門 ——追従カメラ。ミニマップカメラの追従にも応用できる
- Canvas・RectTransform・アンカー ——RawImageを画面隅に配置する
- Profiler入門 ——カメラの描画負荷を計測する
- ドローコールとバッチング ——映すオブジェクトを減らして軽くする
- Unity公式ドキュメント:Render Texture ——Render Textureの一次情報