UnrealEngineでローカルマルチプレイをする方法

レベル上に配置した2人のキャラクターを、コントローラー1、コントローラー2で操作する方法の備忘です。

 

全体の流れ

  1. レベル上にプレイヤーを2人配置
  2. 配置したプレイヤーに番号を割り当てる
  3. レベルブループリントでローカルマルチプレイヤーを作成
  4. 配置したキャラクターを操作可能にする

 

レベル上にプレイヤーを2人配置

特に言うことはないと思いますが、プレイヤーをレベルに配置してください。

配置したプレイヤーに番号を割り当てる

配置したプレイヤーを選択 → 詳細ウインドウ → ポーン AutoPossessPlayer で番号を割り当てる(画像1を参照)配置したキャラクター1にはPlayer0 を 配置したキャラクター2にはPlayer1を割り当てる。

 

レベルブループリントでローカルマルチプレイヤーを作成

レベルブループリントを開いて Event BeginPlayで CreateLocalPlayer を実行します。ControllerIdが-1になっているのはよく分かりません。分かったら追記しておきます。おそらく検出されたプレイヤーの数だけプレイヤーを作成する意味だと思います。(画像2参照)

配置したキャラクターを操作可能にする

配置したキャラクターを操作できるようにするには Possess ノードで指定したレベル上のキャラクターに コントローラーIDを割り当てる必要があります。(画像2参照)

 

何故か全画面表示では操作できなかった

デバッグプレイでF11で全画面表示にするとプレイヤー1は操作できて、プレイヤー2は操作できなくなる現象に遭遇しました。おそらくコントローラー2の選択位置がどこかに飛んでしまってプレイヤーを操作できない状態になったのだと思います。

編集画面が勝手に動く

またこれは自分だけの環境だと思いますが、2つコントローラーを繋ぐと常にビューポートの画面位置が移動してしまい、常にコントローラー1または2から入力がされている状態になり、永遠とカメラが前進して作業の効率が圧倒的に悪くなりました。テストするならビルドできるかも含めて、ビルドした状態で2Pプレイのテストをするようにしたほうがよいかもしれません。

 



 

 

 

コメント

タイトルとURLをコピーしました