【Unity】UnityのRender Texture入門:ミニマップ・鏡・監視カメラをテクスチャに映す

作成: 2026-07-12最終更新: 2026-07-13

別のカメラが映した映像をUIや3Dオブジェクトに貼る——ミニマップ・鏡・監視カメラ・ポートレートの入口がRender Textureです。Render Textureとは何か、Camera→Render Texture→RawImage/Materialの基本セットアップ、見下ろしミニマップの作り方、毎フレーム描画の負荷対策まで解説します。

「別のカメラが映した映像を、UIや3Dオブジェクトに貼りたい」——ミニマップ、バックミラー、監視カメラのモニター、キャラの立ち絵ポートレート、そしてポータルの向こうの景色まで。これらはすべて Render Texture という1つの仕組みが入口です。カメラの映像を「画面」ではなく「テクスチャ」に描き込み、それを好きな場所に貼れる——そう考えると、応用の広さが見えてきます。

この記事では、Render Textureとは何か から、Camera → Render Texture → RawImage / Material という基本の流れ、定番の 見下ろしミニマップ の作り方、鏡や監視カメラへの応用、そして 毎フレーム描画の負荷対策 までを解説します。

Render Textureのイメージ。専用カメラが映した映像がテクスチャに描き込まれ、そのテクスチャがUIのミニマップや3Dオブジェクトの画面に貼られて表示されている様子

この記事でわかること

  • Render Textureとは(カメラ出力を画面でなくテクスチャに描く)
  • 基本の流れ:Camera → Render Texture → RawImage / Material
  • 見下ろしミニマップ の作り方(プレイヤー追従・北固定)
  • 鏡・監視カメラ への応用(Materialに貼る)
  • 毎フレーム描画の負荷対策(解像度・更新頻度・無効化)

動作確認環境: Unity 2022.3 LTS / Unity 6

Sponsored

Render Textureとは

普段、カメラの映像は 画面(ディスプレイ) に映ります。Render Textureを使うと、その映像を画面の代わりに テクスチャ(画像アセット) に描き込めます。一度テクスチャになれば、あとはUIに貼るのも、3Dオブジェクトの表面に貼るのも自由自在です。

Render Textureの概念図。左の通常カメラは映像を画面に出力する。右の専用カメラはTarget TextureにRender Textureを割り当てることで、映像を画面ではなくテクスチャに描き込む。その違いを対比して示す

ポイントは 「画面に映すカメラ」とは別に、テクスチャ用の専用カメラを用意する ことです。メインカメラはこれまで通りプレイヤー視点を画面に映し、追加した専用カメラが「ミニマップ用の見下ろし映像」や「鏡に映る映像」をテクスチャに描き込みます。

Project ビューで右クリック → Create > Render Texture でアセットを作成し、専用カメラの Target Texture にそれを割り当てるだけ。これで、そのカメラの出力先が画面からテクスチャに切り替わります。

基本の流れ:Camera→Render Texture→表示

Render Textureの使い方は、どんな用途でも共通の3ステップです。

  1. Render Textureアセットを作る: Create > Render Texture。解像度(例: 256×256、512×512)を設定する
  2. 専用カメラのTarget Textureに割り当てる: 映したい対象を捉えるカメラを用意し、そのInspectorの Target Texture に手順1のRender Textureをセットする
  3. 貼り先に表示する: 出来上がったテクスチャを、UIなら RawImage、3Dオブジェクトなら Material に貼る

ここで最重要の注意点があります。 UIに表示するときは、Image ではなく RawImage を使う ことです。通常の Image はSprite専用でRender Textureを直接扱えません。RawImageTexture をそのまま貼れるので、Render Textureの表示にはこちらを使います。

[ミニマップ用カメラ] --Target Texture--> [Render Texture] --貼る--> [RawImage(UI)]
                                                          \--貼る--> [Material(鏡・モニター)]

3Dオブジェクトに貼る場合は、Materialを作り、その Albedo(またはEmission)テクスチャにRender Textureを割り当てて、鏡やモニターのメッシュに適用します。

実践:見下ろしミニマップを作る

Render Textureのいちばん定番の使い道が ミニマップ です。RPGの全体マップ、TPSの周辺レーダー、ストラテジーの戦況表示——どれもこの構成で作れます。

ミニマップの構成図。プレイヤーの真上に見下ろし専用カメラを置き、その映像をRender Texture経由でUIのRawImageに表示する。カメラはプレイヤーに追従し、画面右上に円形のミニマップとして表示される様子を示す

作り方はシンプルです。 プレイヤーの真上に見下ろしカメラを置き、その映像をRender Texture経由でRawImageに映す だけです。

  1. 見下ろしカメラを追加: プレイヤーの真上に配置し、Rotation のXを90度にして真下を向かせる。ProjectionOrthographic(平行投影)にすると、遠近感のない地図らしい見た目になる
  2. Render Textureを割り当て: このカメラの Target Texture にRender Textureをセット
  3. RawImageに表示: Canvas上にRawImageを置き、その Texture にRender Textureを割り当て、画面隅に配置する
  4. プレイヤーに追従: カメラをプレイヤーの子にするか、スクリプトで位置だけ追従させる(回転は追従させないと「北固定」のマップになる)
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の中央に小さな画像を重ねて置くだけ。敵やアイテムのアイコンも、ワールド座標をミニマップ座標に変換して重ねれば、本格的なレーダーになります。

完成した自分中心のミニマップ。フィールドを歩くプレイヤーの視界�の右上に、常にプレイヤーが中央・北が上の円形ミニマップが表示されている
Sponsored

鏡・監視カメラへの応用

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

Render Textureの応用4種の図。ミニマップ(見下ろし→UI)、鏡(反対向きカメラ→鏡の面)、監視カメラ(別室のカメラ→モニター画面)、ポートレート(キャラ専用カメラ→立ち絵UI)を、それぞれカメラと貼り先の組み合わせで示す
  • : 鏡の面に対して対称な位置にカメラを置き、その映像を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つの視点」を映しますか?

さらに学ぶために