Unity 6 / URP 向け「RenderTexture + RawImage 方式ミニマップ」完全版
Unity 6 と Universal Render Pipeline (URP) を使用したミニマップ実装の完全ガイドです。旧来の Viewport Rect 方式ではなく、RenderTexture と RawImage を組み合わせた、URP でも安定して動作する方法を解説します。
- 1. 1. 想定環境
- 2. 2. レイヤーの準備(MiniMap 専用レイヤー)
- 3. 3. ミニマップ用 RenderTexture を作る
- 4. 4. MiniMapCamera を作成
- 5. 5. Main Camera 側の設定
- 6. 6. ミニマップ UI(RawImage)を作る
- 7. 7. MiniMapCamera をプレイヤーに追従させるスクリプト
- 8. 8. Player の設定(レイヤーを MiniMap に)
- 9. 9. オプション:ミニマップ ON/OFF トグル
- 10. 10. 旧 Viewport Rect 方式との違いまとめ
- 11. 11. 動作確認チェックリスト
- 12. 12. 発展的なカスタマイズ
- 13. まとめ
- 14. 参考リンク
1. 想定環境
本記事で想定している環境は以下の通りです。
- Unity バージョン: Unity 6.2 以上
- テンプレート: 3D(URP)
- パイプライン: Universal Render Pipeline (URP)
- ビルドターゲット: PC / モバイル どちらでも可
シーン構成のゴール
完成時のシーン構成は以下のようなイメージになります。
Scene
├─ Ground … 床
├─ Player … カプセルなど
├─ Main Camera … 画面全体を描画
├─ MiniMapCamera … ミニマップ用カメラ(RenderTexture 出力)
└─ Canvas
└─ MiniMapRawImage … 右上に表示する UI
2. レイヤーの準備(MiniMap 専用レイヤー)
ミニマップに表示したいオブジェクトだけを表示するため、専用のレイヤーを作成します。
手順
- メニューから Edit → Project Settings… → Tags and Layers を開く
- Layers の空きスロット(例:User Layer 8)に
MiniMapと入力して追加
レイヤーの使い分け
以後、ミニマップに映したいオブジェクトだけこのレイヤーを使います。
例:
- Player(自機)→ MiniMap レイヤーに変更
- 重要な敵やアイテム → MiniMap レイヤーに変更
- 地面や背景 → Default のまま(ミニマップには映さない)
これにより、ミニマップカメラは必要なオブジェクトだけを描画でき、パフォーマンスも最適化されます。
3. ミニマップ用 RenderTexture を作る
ミニマップカメラの出力先となる RenderTexture を作成します。
手順
- Project ウィンドウで右クリック
- Create → Rendering → Render Texture を選択
- 名前を
RT_MiniMapに変更
Inspector 設定
作成した RenderTexture を選択し、Inspector で以下のように設定します。
- Size: 512 x 512(もしくは 256 x 256)
- 高解像度が必要な場合は 512、軽量化重視なら 256
- Color Format: R8G8B8A8_UNORM
- 記事内では「Graphics Format」と表記される場合もありますが、Unity 6では「Color Format」として表示されます
- Mipmap: オフ(チェックを外す)
- Anti-aliasing: None
- Unity 6では、ミニマップ用途では通常「None」で問題ありません
- 必要に応じて「2x Multi Sampling」「4x Multi Sampling」などを選択できます
フォルダ構成例
Assets
├─ RenderTextures
│ └─ RT_MiniMap.renderTexture
└─ ...
4. MiniMapCamera を作成
ミニマップ専用のカメラを作成します。
手順
- Hierarchy → 右クリック → Camera で新規作成
- 名前を
MiniMapCameraに変更
Camera コンポーネント設定
Inspector で以下のように設定します。
Camera(コンポーネント)
- Render Type: Base
- RenderTexture に出力するだけなので Overlay にする必要はありません
- Projection: Orthographic(俯瞰ミニマップの場合)
- Size: シーンに合わせて調整(例:20)
- この値が大きいほど広範囲が表示されます
- Culling Mask: MiniMap のみに変更
- これにより、MiniMap レイヤーのオブジェクトだけが描画されます
- Clear Flags: Solid Color
- Background: 少し暗い色(#000000 〜 #202020 など)
Output(URP カメラの項目)
- Output Texture: 先ほど作成した
RT_MiniMapをドラッグ&ドロップ
Transform
- Position: プレイヤーの真上になるように初期値をざっくり設定
- 例:
(0, 30, 0)
- 例:
- Rotation:
(90, 0, 0)(真上から見下ろす)
注意: 後でスクリプトで追従させるので、ここはおおよそで OK です。
5. Main Camera 側の設定
メインカメラは通常のカメラとして使用します。
設定内容
- Render Type: Base
- Culling Mask: Everything(お好みで MiniMap レイヤーも含めてよい・別にしたい場合は Default のみなど)
- Output Texture: None(画面に直接描画)
重要: Camera Stacking は一切使いません。ミニマップは「別のカメラ → テクスチャ → UI」に完全に分離します。これにより、URP の制約に影響されず、安定して動作します。
6. ミニマップ UI(RawImage)を作る
ゲーム画面にミニマップを表示する UI を作成します。
Canvas の作成
- Hierarchy → 右クリック → UI → Canvas
- Render Mode: Screen Space – Overlay(デフォルトで OK)
RawImage の追加
- Canvas の子として UI → Raw Image を追加
- 名前を
MiniMapRawImageに変更
RawImage 設定
- Texture:
RT_MiniMapを設定 - Color: White(デフォルト)
- Raycast Target: オフ(クリック不要なら)
RectTransform 設定(右上に固定)
Inspector → RectTransform で以下を設定します。
- アンカー: 右上にスナップ(preset で top-right を選択)
- Pos X: -10(画面右から 10px 内側)
- Pos Y: -10(画面上から 10px 内側)
- Width: 256
- Height: 256
これで、ゲームビュー右上にミニマップが表示されるようになります。
7. MiniMapCamera をプレイヤーに追従させるスクリプト
プレイヤーの動きに合わせてミニマップカメラを追従させるスクリプトを作成します。
スクリプトの作成
Assets/Scripts/MiniMap フォルダを作成し、MiniMapFollow.cs を作成します。
using UnityEngine;
namespace MiniMapSample
{
/// <summary>
/// プレイヤーの真上から追従するミニマップ用カメラ制御
/// </summary>
public class MiniMapFollow : MonoBehaviour
{
[Header("追従対象")]
public Transform target;
[Header("高さ(Y軸オフセット)")]
public float height = 30f;
[Header("回転追従")]
public bool followRotation = false;
void LateUpdate()
{
if (!target) return;
// 位置:target の真上
var pos = target.position;
pos.y += height;
transform.position = pos;
// 回転:真上から見下ろす固定 or プレイヤー向きに合わせる
if (followRotation)
{
var yRot = target.eulerAngles.y;
transform.rotation = Quaternion.Euler(90f, yRot, 0f);
}
else
{
transform.rotation = Quaternion.Euler(90f, 0f, 0f);
}
}
}
}
アタッチ方法
- MiniMapCamera を選択
- MiniMapFollow コンポーネントを Add Component
- Target に Player をドラッグ&ドロップ
- Height はシーンに合わせて 20〜50 くらいで調整
- プレイヤーの進行方向に合わせてミニマップを回転させたい場合は
followRotationにチェックを入れる
8. Player の設定(レイヤーを MiniMap に)
ミニマップに表示したいオブジェクトのレイヤーを変更します。
手順
- Player を選択
- Inspector 上部の Layer を MiniMap に変更
その他のオブジェクト
必要に応じて、以下のオブジェクトも MiniMap レイヤーに変更します。
- 敵キャラクター
- 重要なアイテム
- チェックポイント
地形の表示
地形を簡易的に見せたい場合は、床用の Quad / Plane を複製して MiniMap レイヤーにしても OK です。
9. オプション:ミニマップ ON/OFF トグル
キーボードやボタンでミニマップを隠したい場合のスクリプトです。
スクリプトの作成
Assets/Scripts/MiniMap/MiniMapToggle.cs を作成します。
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.InputSystem;
namespace MiniMapSample
{
/// <summary>
/// ミニマップの表示/非表示を切り替える
/// </summary>
public class MiniMapToggle : MonoBehaviour
{
[Header("ミニマップ画像")]
public RawImage miniMapImage;
[Header("切り替えキー")]
public Key toggleKey = Key.M;
void Update()
{
if (Keyboard.current != null && Keyboard.current[toggleKey].wasPressedThisFrame)
{
if (!miniMapImage) return;
miniMapImage.enabled = !miniMapImage.enabled;
}
}
}
}
アタッチ方法
- Canvas など適当な GameObject にアタッチ
- miniMapImage に
MiniMapRawImageをセット - toggleKey で切り替えキーを変更可能(デフォルトは M キー)
10. 旧 Viewport Rect 方式との違いまとめ
旧方式(Viewport Rect + Overlay)の問題点
- Built-in RP 時代の定石だった方式
- URP / Unity 6 では Overlay に Viewport Rect が出ず、仕様的にも非推奨
- Camera Stacking / Renderer の種類による制約が多い
- プラットフォームによって挙動が異なる場合がある
新方式(RenderTexture + RawImage)の利点
- URP / Unity 6 でも公式推奨に近い構成
- Camera Stacking に依存しない
- UI として扱えるのでレイアウト・アニメ・トグルが容易
- 解像度やプラットフォームをまたいでも挙動が安定
- 複数のミニマップを簡単に追加できる
11. 動作確認チェックリスト
ここまでの設定が正しく行われているか、以下の項目を確認してください。
基本動作
- 再生すると、右上に
MiniMapRawImageが表示されている - Player を動かすと、ミニマップにも Player の位置が追従して見える
- 必要なオブジェクトだけがミニマップに表示されている(MiniMap レイヤー)
動作確認方法
- Play モードに入る
- ゲームビューの右上にミニマップが表示されていることを確認
- Player を動かし、ミニマップ内の Player の位置が更新されることを確認
- MiniMap レイヤーに設定したオブジェクトだけが表示されることを確認
12. 発展的なカスタマイズ
基本実装が完了したら、以下のような機能を追加できます。
丸型ミニマップ
- Image コンポーネントでマスク用のスプライトを用意
- Mask コンポーネントを追加して丸型にクリップ
UI パネルの追加
- ミニマップの周りに枠線や背景パネルを追加
- タイトルテキストを表示
ズーム機能
- ボタンで
MiniMapCameraのSizeを変更 - スライダーで連続的にズームイン/アウト
マーカーの追加
- ミニマップ上にアイコンを表示するシステム
- 敵の位置や目的地を表示
まとめ
Unity 6 / URP 環境でのミニマップ実装は、RenderTexture + RawImage 方式が最も安定して動作します。Camera Stacking に依存せず、UI として扱えるため、カスタマイズも容易です。
本記事の手順に従って実装すれば、PC でもモバイルでも安定して動作するミニマップシステムが完成します。
参考リンク
- Unity Documentation – RenderTexture
- Unity Documentation – Universal Render Pipeline
- Unity Documentation – RawImage
本記事は Unity 6.2 / URP 環境で動作確認済みです。


ディスカッション
コメント一覧
まだ、コメントがありません