友達と1台のPCやコンソールで、画面を分け合ってワイワイ遊ぶ——ローカルマルチプレイの楽しさは格別です。レースゲームの2人対戦、協力アクションの2Pプレイ、パーティゲームの4人対戦。この 画面分割(スプリットスクリーン) 、実はUnityでは2つの仕組みを組み合わせるだけで作れます。 複数カメラのViewport Rect で画面を分け、 プ レイヤーごとの入力割り当て でそれぞれを操作する。この2本柱です。
この記事では、スプリットスクリーンのローカルマルチの土台を組み立てます。Viewport Rectによる画面分割 から、New Input SystemのPlayerInputManager によるプレイヤーごとの入力、そして 各自のUI まで。ローカル対戦・協力ゲームの第一歩です。
この記事でわかること
- Viewport Rect で画面を分割する(上下・左右)
- PlayerInputManager でプレイヤーごとに入力を割り当てる
- 各プレイヤーの UI を分ける
- 実践:2人が別コントローラーで動かすスプリットスクリーン
動作確認環境: Unity 6 (6000.x)/URP/Input System 1.x
2つの仕組みで画面分割は作れる
スプリットスクリーンと聞くと難しそうですが、分解すると 「画面を分ける」と「入力を分ける」の2つ だけです。この2本柱を押さえれば、あとは人数を増やすだけです。

| 仕組み | 役割 |
|---|---|
| 画面を分ける(Viewport Rect) | プレイヤーごとにカメラを用意し、各カメラの表示範囲を画面の一部に割り当てる |
| 入力を分ける(PlayerInputManager) | 各コントローラー(デバイス)を各プレイヤーに紐づけ、混線しないよ うにする |
この2つは独立しています。 「画面をどう割るか」はカメラの仕事、「誰がどのキャラを動かすか」は入力の仕事。それぞれ別々に設定でき、組み合わせると「自分の画面で、自分のコントローラーで、自分のキャラを動かす」ローカルマルチが完成します。まずは画面分割から見ていきましょう。
Viewport Rectで画面を分ける
画面分割の要が、カメラの Viewport Rect です。これは「カメラが画面のどの範囲に描画するか」を 0〜1の割合 で指定する設定です。

Viewport Rect は X・Y・W・H の4つの値で、画面の左下を原点(0, 0)、右上を(1, 1)とした割合を指定します。
- 画面全体:
(X=0, Y=0, W=1, H=1)——これが通常のカメラ - 上下分割(2人): プレイヤー1のカメラを
(0, 0.5, 1, 0.5)(上半分)、プレイヤー2のカメラを(0, 0, 1, 0.5)(下半分) - 左右分割(2人): プレイヤー1を
(0, 0, 0.5, 1)(左半分)、プレイヤー2を(0.5, 0, 0.5, 1)(右半分) - 4分割: 4つのカメラ をそれぞれ
(0,0.5,0.5,0.5)(0.5,0.5,0.5,0.5)(0,0,0.5,0.5)(0.5,0,0.5,0.5)に
プレイヤーごとにカメラを用意し、それぞれの Viewport Rect を設定するだけで、画面がきれいに分かれます。各カメラに自分のプレイヤーを追従させれば、それぞれの視点が別々に映ります。いちばん簡単なのは、カメラをキャラの子に置くことです(Cinemachine で追わせるなら、2台が同じ映像を取り合わないよう、Cinemachine Camera の Output Channel と CinemachineBrain の Channel Mask をプレイヤーごとに分けます)。特別なシェーダーもレンダリング技術も不要——カメラの設定1つで実現できるのがポイントです。
カメラの描画順: 複数カメラを使うとき、描画順はカメラの
Priority(URPのカメラのRendering欄。Built-inではDepth)で決まり、数値の大きいカメラが後から描かれます。分割表示ではカメラ同士が重ならないので、通常は気にしなくて大丈夫です。
PlayerInputManagerで入力を割り当てる
画面が分かれても、両方のキャラが同じ入力で動いては意味がありません。 プレイヤーごとに「自分のコントローラー」を割り当てる のが、New Input System の PlayerInputManager です。
