パーティゲームやローカル協力プレイ。1つの画面を左右に分けて、2人で同時に遊ぶ。この「画面分割」は、実装が大変そうに見えます。ところがUE5では、オンライン対戦(Replication)に比べて、驚くほど簡単に作れます。
鍵になるのは Create Player ノードです。2人目のプレイヤーを足すノード を1つ呼ぶだけで、画面が自動で左右に割れて、それぞれが独立したカメラで動き出します。この記事では、画面分割の仕組みと、2人で同じ画面を分けて遊ぶところまでを作ります。UIを自分側の画面だけに出す、という初心者がつまずくポイントも押さえます。
この記事でわかること
- Create Player で2人目を足すと画面が自動で割れる
- 分割の向き(左右/上下)の設定
- 各プレイヤーの入力の分かれ方(Enhanced Inputと Controller Id)
- UIを自分側だけに出す Owning Player と Add to Player Screen
- 実践: 2人で同じ画面を分けて遊ぶ
- よくある詰まり(2人目が動かない/UIが両画面に/真っ黒)
Create Playerで画面が割れる
ローカルマルチプレイの核は、たった1つのノードです。Create Player を呼ぶと、そのゲームに2人目のローカルプレイヤーが追加されます。
プレイヤーが2人になると、UEは自動でビューポートを分割します。何もカメラの設定をしなくても、画面が左右(または上下)に割れて、それぞれのプレイヤーが自分のポーンを別々のカメラで見るようになります。

Create Playerには2つの大事な入力があります。
- Controller Id:何番目のプレイヤーか。1人目は0(最初からいる)。2人目を足すなら 1 を渡す。
- Spawn Player Controller:追加したプレイヤーに、コントローラとポーンをすぐ割り当てるか。基本は 有効(true) にする。これを忘れると、プレイヤーはいるのに操作する体がなく、画面が真っ黒になります。
逆に、プレイヤーを減らすときは Remove Player を使います。分割は自動で解除され、1画面に戻ります。
分割の向きと入力
分割は、Project Settings > Project > Maps & Modes の Local Multiplayer セクションにある Use Splitscreen が有効になっていることで出ます(既定で有効なことが多いですが、確認しておきます)。分割の向き(左右か上下か)は、同じ画面の Two Player Splitscreen Layout で、Horizontal(上下2段)か Vertical(左右2列)かを選びます。レースやアクションは左右、見下ろし型は上下、というように、ゲームに合わせて選びます。
入力は、プレイヤーごとに自動で分かれます。Enhanced Input を使っていれば、各プレイヤーは自分の Controller Id に対応する入力デバイスから操作を受け取ります。エディタのPlayでは、キーボードが1人目、接続したゲームパッドが2人目になるのが基本です。パッド1本をキーボードの相方(2人目)にしたいときは、Skip Assigning Gamepad to Player 1 を有効にすると、パッドが1人目でなく2人目に回ります。パッドを2本挿せば、1人目もパッドで操作できます。

ここがオンライン対戦との大きな違いです。ローカル分割では、全員が同じPCの同じゲームインスタンスの中にいます。データを同期する(Replication)必要がないので、実装が一気に楽になります。
UIはどの画面に出るか
画面分割で初心者が必ずつまずくのが、UIの出し方 です。
HPバーを普通に Add to Viewport で表示すると、それは ゲーム全体の画面 に出て、分割されたプレイヤー領域に収まりません。2人ぶん作れば、2つのHPバーが画面全体の上に重なって出てしまいます。
自分の画面だけに出すには、2つの指定が必要です。
- Owning Player:Create Widget のときに、そのUIの持ち主となる Player Controller を指定する。
- Add to Player Screen:Add to Viewportの代わりにこちらを使う。指定したOwning Playerの画面だけに表示される。

つまり、「誰のUIか」を Owning Player で決め、Add to Player Screen で出す。これで、1人目のHPバーは左画面、2人目のHPバーは右画面、と振り分けられます。
実践:2人で同 じ画面を分けて遊ぶ
具体的に、2人プレイを最後まで作ります。
パーティゲームの対戦、協力アクション、レースゲーム。ジャンルを問わず、「1つの画面を2人で分ける」構造は同じです。ここでは、ゲーム開始時に2人目を追加して左右分割にし、各プレイヤーのHPバーを自分側の画面だけに出す ものを作ります。
動かすとこうなります。Playすると画面が左右に割れ、パッドを挿した2人目が右画面で動く。左のHPバーは左画面だけ、右のHPバーは右画面だけに出ます。

準備
- Project Settings > Project > Maps & Modes > Local Multiplayer で、Use Splitscreen を有効、Two Player Splitscreen Layout を
Vertical(左右)、キーボード+パッド1本で試すなら Skip Assigning Gamepad to Player 1 を有効にする。 - HPバー用の Widget(例:
WBP_HealthBar)を作っておく。 - GameModeの Default Pawn Class を設定し、そのGameModeを World Settings の GameMode Override で適用する。
- レベルに、重ならない Player Start を2個 置く(2人目のスポーン先が要る)。
グラフを組む
GameModeの BeginPlay で、2人目を追加し、両方のHPバーを配ります。

つなぎ方は次の流れです。
- Event BeginPlay から Create Player を呼ぶ。
Controller Id = 1、Spawn Player Controller = true(この例は1マップ・2人固定。すでに2人目がいる構成では呼ばない) - 1人目のHPバー:Create Widget(Class =
WBP_HealthBar、Owning Player =Get Player Controller (Index 0))→ Add to Player Screen - 2人目のHPバー:Create Widget(Owning Player =
Get Player Controller (Index 1))→ Add to Player Screen
読み上げ用の疑似コードにすると、こうなります。
Event BeginPlay (GameMode)
CreatePlayer(ControllerId=1, SpawnPlayerController=true)
hp0 = CreateWidget(WBP_HealthBar, OwningPlayer=GetPlayerController(0))
hp0.AddToPlayerScreen()
hp1 = CreateWidget(WBP_HealthBar, OwningPlayer=GetPlayerController(1))
hp1.AddToPlayerScreen()
確かめる
ゲームパッドを1本挿してPlayします。画面が左右に割れ、キーボードで左のプレイヤー、パッドで右のプレイヤーが動けば成功です。HPバーは、左画面には左のぶんだけ、右画面には右のぶんだけが出ます。
もし HPバーが両画面に2つずつ 出るなら、Add to Viewport のままか、Owning Player の指定を忘れています。2人目が真っ黒 なら、Create PlayerのSpawn Playerが無効です。2人目が動かない なら、パッドが2人目に割り当たっているか(Controller Id 1)を確認します。
ポイントは2つです。
- UIは「誰の画面か」を必ず指定する:Owning Player を渡し、Add to Player Screen で出す。Add to Viewport のままだと全画面に出て、2人ぶん重なる
- 2人目にはSpawn Player Controllerで体を与える:プレイヤーを足すだけでは映すものがない。Spawn Player Controller を有効にし、Default Pawn Class と Player Start も用意して、操作するポーンを割り当てる
なお、Owning Player が決めるのは「どの画面に出すか」だけです。HPバーに映す数値は、Widget側で Get Owning Player Pawn などから対象プレイヤーの値を取ってください。Owning Playerを指定しただけでは、表示する中身は自動で切り替わりません。
入力の細かい分け方は Enhanced Inputの仕組み と地続きです。各プレイヤーが自分のController Idの入力を受け取る形なので、リマップも人ごとに持てます。
おまけ:先に知っておくと良いこと
オンライン対戦とは別物。 同じ「2人で遊ぶ」でも、画面分割は1台のPCの中で完結します。データを同期する Replication が要らないぶん、実装は段違いに楽です。まずローカル分割で協力プレイの面白さを作り、オンラインは後から検討する、という順番が現実的です。
キーボードとパッドの併用。 エディタのPlayでは、キーボードが1人目、パッドが2人目になります。1人目もパッドにした いなら、パッドを2本挿すか、入力の割り当てを調整します。パーティゲームなら、全員パッドが遊びやすいです。
3人・4人も同じ仕組み。 Create Playerを Controller Id 2、3と増やせば、4分割まで同じやり方で作れます。UEには3人・4人用の分割レイアウト設定も用意されています。
まとめ
画面分割ローカルマルチプレイは、次の3点で組み上がります。
| やること | 使うもの |
|---|---|
| 2人目を足す | Create Player(Controller Id = 1、Spawn Player Controller = true)で画面が自動で割れる |
| 分割の向きを決める | Project Settings > Maps & Modes > Local Multiplayer(Two Player Splitscreen Layout の Horizontal=上下 / Vertical=左右) |
| UIを自分側だけに出す | Create Widget の Owning Player を指定し、Add to Player Screen で出す |
この3点さえ押さえれば、オンラインよりずっと手軽に、2人プレイの楽しさが作れます。
あなたのゲームは、隣に座った誰かと一緒に遊べたら、もっと面白くなるでしょうか。そうなら、Create Playerから始めてみてください。