友達と1台のPCやコンソールで、画面を分け合ってワイワイ遊ぶ——ローカルマルチプレイの楽しさは格別です。レースゲームの2人対戦、協力アクションの2Pプレイ、パーティゲームの4人対戦。この 画面分割(スプリットスクリーン) 、実はUnityでは2つの仕組みを組み合わせるだけで作れます。 複数カメラのViewport Rect で画面を分け、 プレイヤーごとの入力割り当て でそれぞれを操作する。この2本柱です。
この記事では、スプリットスクリーンのローカルマルチの土台を組み立てます。Viewport Rectによる画面分割 から、New Input SystemのPlayerInputManager によるプレイヤーごとの入力、そして 各自のUI まで。ローカル対戦・協力ゲームの第一歩です。
この記事でわかること
- Viewport Rect で画面を分割する(上下・左右)
- PlayerInputManager でプレイヤーごとに入力を割り当てる
- 各プレイヤーの UI を分ける
- 実践:2人が別コントローラーで動かすスプリットスクリーン
動作確認環境: Unity 2022.3 LTS / Unity 6(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 が便利)、それぞれの視点が別々に映ります。特別なシェーダーもレンダリング技術も不要——カメラの設定1つで実現できるのがポイントです。
カメラの深度(Depth)に注意: 複数カメラを使うとき、各カメラの
Depthの値で描画順が決まります。分割表示では重ならないので通常は問題ありませんが、UIカメラなどを重ねる場合はDepthで前後を制御します。
PlayerInputManagerで入力を割り当てる
画面が分かれても、両方のキャラが同じ入力で動いては意味がありません。 プレイヤーごとに「自分のコントローラー」を割り当てる のが、New Input System の PlayerInputManager です。
