【UE4】無料アセットで簡易TPS作成! Part3
この連載では無料アセットを使って、キャラクターに武器を持たせて弾を発射できるようにしてみたいと思います!
TPS(サードパーソンシューティング)ゲームの基礎部分が出来上がる想定です。
とりあえずPIE上で疑似マルチみたいなもの(ダメージ判定等)が動く状態までを目標にしています。
初めての方は過去の記事も参考にしてください。 ⇒ 記事一覧
■環境
Unreal Engine 4.22.3
■今回の内容
マルチプレイを想定する際に必要となるレプリケーション(複製)をやってみましょう!
■マルチ対応
前回見た通り、1画面でテストプレイしたときには問題無く弾が発射されていましたが、マルチを想定して2画面以上でテストをするとやや問題があります。
再生の隣の「▼」をクリックして、画像の様に設定をして再生してみましょう。
どちらかの画面で弾を発射した際に、操作した側では弾が表示されていますが、操作していない側では表示されていません。
(※画像内でFPSSampleと表示されている箇所がありますが無視してください。)
これを解決するには以下の2つの操作を行います。
①弾を発射する処理(Spawn Bulletイベント)をサーバー側で実行する。
②Bulletクラスをサーバーからクライアントにレプリケート(複製)する。
ではまず一つ目ですが、「MyTPSCharacter」をブループリントエディタで開いて「Spawn Bullet」イベントノードを選択して下さい。
詳細パネルで、「グラフ」→「複製する」の値を「サーバーで実行」にしたらコンパイルして保存しましょう。
次に2つ目ですが、「Bullet」をブループリントエディタで開いて、ツールバーで「クラスのデフォルト」を開きましょう。
表示される詳細パネルの中で「Replicaction」→「Replicates」にチェックを入れたらコンパイルして保存してください。
ここまでできたら一通り保存してテストプレイすると、操作した側と操作していない側で同じように弾が表示されると思います!
■まとめ
今回の様にマルチプレイを想定してテストを行った際にレプリケーションの設定が求められるケースがあります。
どういった仕組みにするかは場合によるかと思いますが、今回のケースを一例としてレプリケーションの概要をつかんで頂ければ良いかと思っています!
今回はややイメージしづらい内容だったかもしれません。
次回はキャラクターにHPを実装してみようと思うので比較的イメージのしやすい内容となる予定です!
■リンク
ゲーム制作関連のオススメ連載リンク
とっても手軽なゲーム制作体験!
Unityゲーム開発基礎
実際のリリースゲームを題材にしたハンズオンゲーム制作連載
実践unityゲーム開発