UE4のFPSサンプルをネットワーク化します。
今回はこちらの前半となります。
サンプルプロジェクトを作成
新規プロジェクトでファーストパーソンを選択しプロジェクトを作成します。
プレイヤーを2人に
まずはプレイヤーを2人にしてみます。
再生ボタン横の▼をクリックし、詳細設定を選択
複数画面を同時に確認できるよう画面サイズを小さめに設定し、
プレイヤー数を2にします
再生ボタン横の▼をクリックし、新規エディタウィンドウを選択します
それぞれのウインドウで各プレイヤーが動かせるようになりました。
ただし、まだ相手の画面で自分の弾が生成されません。
弾をネットワーク対応に
コンテンツブラウザ>FiestPersonBP>BluePrints>FirstPersonProjectile
をダブルクリックし、イベントグラフを開きます
詳細>ReplicateMovement
詳細>Replicates
にチェックを入れ、コンパイルボタンを押してウインドウを閉じます
これでサーバー側の弾はクライアント側で生成されるようになりましたが、
クライアント側の弾はサーバー側で生成されません。
トリガーボタンをネットワーク対応に
初期状態だと「トリガーを押したときに弾が生成される」となっているので、
これを、「トリガーを押したときにサーバーでネットワークイベントが発動する」
ようにして、クライアント側でも弾が生成されるようにします。
アウトライナ>FirstPersonCharacter>クリックしてブループリントを編集
弾を生成している箇所(Spawn projectile)を探します。
タッチやコントローラー等不要な処理を削り、
右クリック>カスタムイベントを生成>ServerSpawnProjectileと名付け
グラフ>サーバーで実行 に変更
右クリック>ServerSpawnProjectileでカスタムイベントを発動させる同名の関数を生成
トリガーでイベントを呼び出し、イベントで弾を出すようつなぎなおす
これでどちらからも弾が出るようになりました。