URP 2Dで複数のカメラを使って描画する

今回はUnityのURP2Dで複数のカメラを使ってゲーム画面に表示させる方法を紹介したいと思います。
私は自分の2Dゲームでミニマップなどを表示したいときにこの方法を使います。
このような感じで疑似3Dとは別に見下ろし2Dのミニマップを表示させるのに活用しています。

複数のカメラを使ってみたい方は是非最後までお読み下さい。

Unityプロジェクトの作成

それでは新規プロジェクトを作成します。
今回はテンプレートで2D(URP)というものを選択します。
図のようにUnityHub新しいプロジェクトから2D(URP)を選択して下さい。

urp2dプロジェクト

URPについて

簡単にURP(Universal Render Pipeline)について書いておきます。
まず、レンダリングパイプラインとはグラフィックの描画にかかわる仕組みだそうです。
そしてUnityにはいくつかレンダリングパイプラインがあります。

  1. ビルトインレンダリングパイプライン
  2. SRP(スクリプタブルレンダーパイプライン)
    • HDRP
    • URP

1つ目のビルドインレンダリングパイプラインは従来のレンダリングパイプラインです。
2つ目のSRP(スクリプタブルレンダーパイプライン)はUnityの新しいレンダリングパイプラインです。
C#スクリプトによって色々細かい調整などが出来るそうです。
しかしゲーム開発する際に描画システムを自作するのは大変ということでUnity側で準備してくれているテンプレートがHDRPとURPだそうです。

URPの特徴は下記のようです。

  1. 描画の処理が軽い
  2. 様々なプラットフォームに対応している
  3. Shader Graph等の新機能

描画に関しては詳しく紹介されているサイトがありますので、是非そちらを参考にして下さい。

必要なものを設置していく

描画するゲームオブジェクトとLayer設定

プロジェクトが立ち上がったら描画するオブジェクトを置いていきます。
SquareとCircleの2つのオブジェクトを作りました。

次にCircleのLayerを変更します。
InspectorでLayerを選択し、Add LayerでSubLayerを新たに作りCircleのLayerに設定しました。

複数のカメラ

続いてCameraを新たに追加しましょう。
今回はSubCameraという名前にしました。
ポジションを設定します。
一旦X、Y、ZをそれぞれMain Cameraと同じ0、0、-10とします。

次にSubCameraのAudio Listenerコンポーネントを削除しておきます。
同じSceneに複数のAudio Listenerがあると注意的なものがログに表示されるのでやっておきましょう。

続いてSubCameraの方のRender TypeをOverlayに変更します。
そしてRenderRingのCulling MaskをEverythingからこのカメラで描画したいSubLayerに変更します。

MainCameraのInspectorにあるStackにSubCameraを追加します。

この段階でゲームシーンはこのようになっています。

黄色のCircleの中に黒い丸が表示されました。
この黒い丸がSubCameraで描画しているSubLayerのオブジェクトです。
黒くなっている理由はSubLayerにライトが無いためです。
Global Light 2DのLayerをSubLayerにすることで解消されます。

SubCameraの調整

SubCameraのInspectorを調整して色々変更していきたいと思います。
TransformのPostionの値を変更することでSubCameraの描画する位置が変わります。

またProjectionのField of Viewの値を変更することで拡大縮小のような事ができます。

このように2台のカメラで描画してみました。
色々な使い方ができると思いますので、皆さんもご自身のゲームにご活用下さい。

Unity開発おすすめPC

NEXTGEAR JG-A5G5A

NEXTGEAR JG-A5G5A
OS : Windows 11 Home 64ビット
CPU : AMD Ryzen™ 5 4500 プロセッサー
グラフィックス : NVIDIA® GeForce RTX™ 3050
メモリ標準容量 : 16GB (8GB×2 / デュアルチャネル)
M.2 SSD : 1TB (NVMe)
保証期間 : 3年間センドバック修理保証・24時間×365日電話サポート
価格:119,900円(税込)~
NEXTGEAR JG-A5G5A 詳細

Lenovo LOQ Essential Gen 9 - ルナグレー

Lenovo LOQ Essential Gen 9 - ルナグレー
OS : Windows 11 Home 64ビット
CPU : インテル® Core™ i7-12650HX
グラフィックス : NVIDIA® GeForce RTX™ 4050 Laptop GPU 6GB GDDR6
メモリ標準容量 : 16 GB DDR5-4800MHz
ストレージ : 512 GB SSD M.2 2242 PCIe-NVMe Gen4 QLC
ディスプレイ :15.6" FHD液晶 (1920 x 1080) IPS, 光沢なし, マルチタッチ非対応, 100%sRGB, 300 nit, 144Hz
内蔵カメラ :720p HDカメラ (プライバシーシャッター付)
無線 :Wi-Fi 6対応 (IEEE 802.11ax/ac/a/b/g/n準拠) 2x2 & Bluetooth®
保証期間 : 1 年間 Legion Ultimate Support
価格:¥149,820 税込・送料無料
Lenovo LOQ Essential Gen 9 - ルナグレー 詳細

【MDT46T144】

【MDT46T144】
CPU : Intel® Core i5 14400F
グラフィックス : RTX 4060 Ti
メモリ標準容量 : 16GB
ストレージ :500GB
保証期間 : 通常1年保証(無償1年)
価格:169,800円
【MDT46T144】 詳細

LOQ Tower 17IRR9 :カスタマイズモデル

LOQ Tower 17IRR9 :カスタマイズモデル
OS : Windows 11 Home 64ビット
CPU : インテル® Core™ i5-14400F プロセッサー
グラフィックス : NVIDIA® GeForce RTX™ 3050 6GB GDDR6
メモリ標準容量 : 16 GB DDR5-4800MHz (UDIMM) - (2 x 8 GB)
ストレージ : 512 GB SSD M.2 2280 PCIe-NVMe Gen4 TLC
保証期間 : 1 年間 Legion Ultimate Support
価格:¥109,450 税込・送料無料
LOQ Tower 17IRR9 :カスタマイズモデル 詳細

NEXTGEAR JG-A5G60(ホワイトカラーモデル)

NEXTGEAR JG-A5G60(ホワイトカラーモデル)
OS : Windows 11 Home 64ビット
CPU : AMD Ryzen™ 5 4500 プロセッサー
グラフィックス : NVIDIA® GeForce RTX™ 4060
メモリ標準容量 : 16GB (8GB×2 / デュアルチャネル)
M.2 SSD : 1TB (NVMe)
保証期間 : 3年間センドバック修理保証・24時間×365日電話サポート
価格:137,500円(税込)~
NEXTGEAR JG-A5G60(ホワイトカラーモデル) 詳細

NEXTGEAR JG-A5G60(1周年記念モデル)

NEXTGEAR JG-A5G60(1周年記念モデル)
OS : Windows 11 Home 64ビット
CPU : AMD Ryzen™ 5 4500 プロセッサー
グラフィックス : NVIDIA® GeForce RTX™ 4060
メモリ標準容量 : 16GB (8GB×2 / デュアルチャネル)
M.2 SSD : 1TB (NVMe)
保証期間 : 3年間センドバック修理保証・24時間×365日電話サポート
価格:139,900円(税込)~
NEXTGEAR JG-A5G60(1周年記念モデル) 詳細

G TUNE FG-A7A7X

G TUNE FG-A7A7X
OS : Windows 11 Home 64ビット
CPU : AMD Ryzen™ 7 9800X3D プロセッサ
グラフィックス : AMD Radeon™ RX 7700 XT
メモリ標準容量 : 32GB (16GB×2 / デュアルチャネル
M.2 SSD : 2TB (NVMe Gen4×4)
ドライブ仕様 :DVDスーパーマルチドライブ
無線 :Wi-Fi 6E( 最大2.4Gbps )対応 IEEE 802.11 ax/ac/a/b/g/n準拠 + Bluetooth 5内蔵
保証期間 : 3年間センドバック修理保証・24時間×365日電話サポート
価格:379,800円(税込)~
G TUNE FG-A7A7X 詳細

関連記事

セール中!
C#プログラミング入門

もっと早く教えてほしかった!

Unity C#プログラミング入門