レベル上に配置した2人のキャラクターを、コントローラー1、コントローラー2で操作する方法の備忘です。
全体の流れ
- レベル上にプレイヤーを2人配置
- 配置したプレイヤーに番号を割り当てる
- レベルブループリントでローカルマルチプレイヤーを作成
- 配置したキャラクターを操作可能にする
レベル上にプレイヤーを2人配置
特に言うことはないと思いますが、プレイヤーをレベルに配置してください。
配置したプレイヤーに番号を割り当てる
配置したプレイヤーを選択 → 詳細ウインドウ → ポーン AutoPossessPlayer で番号を割り当てる(画像1を参照)配置したキャラクター1にはPlayer0 を 配置したキャラクター2にはPlayer1を割り当てる。
レベルブループリントでローカルマルチプレイヤーを作成
レベルブループリントを開いて Event BeginPlayで CreateLocalPlayer を実行します。ControllerIdが-1になっているのはよく分かりません。分かったら追記しておきます。おそらく検出されたプレイヤーの数だけプレイヤーを作成する意味だと思います。(画像2参照)
配置したキャラクターを操作可能にする
配置したキャラクターを操作できるようにするには Possess ノードで指定したレベル上のキャラクターに コントローラーIDを割り当てる必要があります。(画像2参照)
何故か全画面表示では操作できなかった
デバッグプレイでF11で全画面表示にするとプレイヤー1は操作できて、プレイヤー2は操作できなくなる現象に遭遇しました。おそらくコントローラー2の選択位置がどこかに飛んでしまってプレイヤーを操作できない状態になったのだと思います。
編集画面が勝手に動く
またこれは自分だけの環境だと思いますが、2つコントローラーを繋ぐと常にビューポートの画面位置が移動してしまい、常にコントローラー1または2から入力がされている状態になり、永遠とカメラが前進して作業の効率が圧倒的に悪くなりました。テストするならビルドできるかも含めて、ビルドした状態で2Pプレイのテストをするようにしたほうがよいかもしれません。
コメント