【Unreal Engine】画面分割ローカル協力プレイ:Create Playerで2人プレイを作る

作成: 2026-07-20

UE5のCreate Playerノードで画面分割ローカルマルチプレイを作る入門。2人目のプレイヤーを足すと画面が自動で割れる仕組み、分割の向きの設定、Owning PlayerとAdd to Player ScreenでUIを自分側だけに出す方法まで。オンラインより遥かに楽に2人プレイが作れます。

パーティゲームやローカル協力プレイ。1つの画面を左右に分けて、2人で同時に遊ぶ。この「画面分割」は、実装が大変そうに見えます。ところがUE5では、オンライン対戦(Replication)に比べて、驚くほど簡単に作れます。

鍵になるのは Create Player ノードです。2人目のプレイヤーを足すノードを1つ呼ぶだけで、画面が自動で左右に割れて、それぞれが独立したカメラで動き出します。この記事では、画面分割の仕組みと、2人で同じ画面を分けて遊ぶところまでを作ります。UIを自分側の画面だけに出す、という初心者がつまずくポイントも押さえます。

1つの画面が左右に分割され2人のクレイ人形がそれぞれ操作する様子

この記事でわかること

  • Create Player で2人目を足すと画面が自動で割れる
  • 分割の向き(左右/上下)の設定
  • 各プレイヤーの入力の分かれ方(Enhanced Inputと Controller Id)
  • UIを自分側だけに出す Owning PlayerAdd to Player Screen
  • 実践: 2人で同じ画面を分けて遊ぶ
  • よくある詰まり(2人目が動かない/UIが両画面に/真っ黒)

Sponsored

Create Playerで画面が割れる

ローカルマルチプレイの核は、たった1つのノードです。Create Player を呼ぶと、そのゲームに2人目のローカルプレイヤーが追加されます。

プレイヤーが2人になると、UEは自動でビューポートを分割します。何もカメラの設定をしなくても、画面が左右(または上下)に割れて、それぞれのプレイヤーが自分のポーンを別々のカメラで見るようになります。

Create Playerを呼ぶ前は1画面、呼んだ後は自動で2分割される様子を対比した図

Create Playerには2つの大事な入力があります。

  • Controller Id:何番目のプレイヤーか。1人目は0(最初からいる)。2人目を足すなら 1 を渡す。
  • Spawn Player Controller:追加したプレイヤーに、コントローラとポーンをすぐ割り当てるか。基本は 有効(true) にする。これを忘れると、プレイヤーはいるのに操作する体がなく、画面が真っ黒になります。

逆に、プレイヤーを減らすときは Remove Player を使います。分割は自動で解除され、1画面に戻ります。

分割の向きと入力

分割は、Project Settings > Project > Maps & ModesLocal 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人目もパッドで操作できます。

Horizontalは上下2段、Verticalは左右2列という2種類の分割レイアウトを並べた図

ここがオンライン対戦との大きな違いです。ローカル分割では、全員が同じPCの同じゲームインスタンスの中にいます。データを同期する(Replication)必要がないので、実装が一気に楽になります。

Sponsored

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の画面だけに表示される。
Add to Viewportは両画面に出るがOwning Player指定のAdd to Player Screenなら自分側だけに出る、という違いを対比した図

つまり、「誰のUIか」を Owning Player で決め、Add to Player Screen で出す。これで、1人目のHPバーは左画面、2人目のHPバーは右画面、と振り分けられます。

Sponsored

実践:2人で同じ画面を分けて遊ぶ

具体的に、2人プレイを最後まで作ります。

パーティゲームの対戦、協力アクション、レースゲーム。ジャンルを問わず、「1つの画面を2人で分ける」構造は同じです。ここでは、ゲーム開始時に2人目を追加して左右分割にし、各プレイヤーのHPバーを自分側の画面だけに出す ものを作ります。

動かすとこうなります。Playすると画面が左右に割れ、パッドを挿した2人目が右画面で動く。左のHPバーは左画面だけ、右のHPバーは右画面だけに出ます。

Playすると画面が左右に分割され、2人がそれぞれのHPバーを持って別々に動く実例図

準備

  1. Project Settings > Project > Maps & Modes > Local Multiplayer で、Use Splitscreen を有効、Two Player Splitscreen LayoutVertical(左右)、キーボード+パッド1本で試すなら Skip Assigning Gamepad to Player 1 を有効にする。
  2. HPバー用の Widget(例:WBP_HealthBar)を作っておく。
  3. GameModeの Default Pawn Class を設定し、そのGameModeを World Settings の GameMode Override で適用する。
  4. レベルに、重ならない Player Start を2個 置く(2人目のスポーン先が要る)。

グラフを組む

GameModeの BeginPlay で、2人目を追加し、両方のHPバーを配ります。

BeginPlayでCreate Player(Controller Id 1, Spawn Player true)を呼び、各プレイヤーのHPバーをCreate Widget(Owning Player指定)とAdd to Player Screenで出す完成ノードグラフ図

つなぎ方は次の流れです。

  1. Event BeginPlay から Create Player を呼ぶ。Controller Id = 1Spawn Player Controller = true(この例は1マップ・2人固定。すでに2人目がいる構成では呼ばない)
  2. 1人目のHPバー:Create Widget(Class = WBP_HealthBar、Owning Player = Get Player Controller (Index 0))→ Add to Player Screen
  3. 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 PlayerController Id = 1、Spawn Player Controller = true)で画面が自動で割れる
分割の向きを決めるProject Settings > Maps & Modes > Local Multiplayer(Two Player Splitscreen Layout の Horizontal=上下 / Vertical=左右)
UIを自分側だけに出すCreate WidgetOwning Player を指定し、Add to Player Screen で出す

この3点さえ押さえれば、オンラインよりずっと手軽に、2人プレイの楽しさが作れます。

あなたのゲームは、隣に座った誰かと一緒に遊べたら、もっと面白くなるでしょうか。そうなら、Create Playerから始めてみてください。