マルチプレイの設定に関して、以下2点質問です。
[Session関連ノードの動作内容]
・セッションを作成するということの意味自体の確認ですが、
Online Subsystemを介して、サーバーにアクセスするための部屋割りが作成する、
のような意味合いで合っていますでしょうか?
・Find Sessionではサーバーとどのような情報(サーバーのIP等)を送受しているのでしょうか?
[UMG上に他のプレイヤーの情報を出力する方法]
例としては、今までのレクチャー資料のPGameHUDの情報に加えて、
他のプレイヤーのHealthも表示させる操作が該当しますが、
実装方法の参照URL or 実際によく使う方法がありましたら、教えていただけないでしょうか?
※Mutiplayer Shootoutのサンプル(Player Stateを使用する方法)よりも、
簡易的に実装できるようなものがあればと思いました。
[Session関連ノードの動作内容]
・セッションについては合ってます。以下はUE4のドキュメントですのでご参考にしてください。
https://docs.unrealengine.com/ja/Engine/Blueprints/UserGuide/OnlineNodes/index.html
・Find Sessionはブループリント関数なので内部的にどんな挙動してるかは分からないです。
[UMG上に他のプレイヤーの情報を出力する方法]
・一番簡単な実装は他のプレイヤーのIDを取得、他のプレイヤーのHealthパラメータが保存されてるオブジェクト(普通はCharacterオブジェクト)を参照する形で情報を出力できると思います。
ご回答ありがとうございます。
FirstPersonのレクチャー資料の場合だと、
どのクラスでHealthパラメータを取得 + 各UMGへ反映するのが良いのでしょうか?
(実装例の画像等があると幸いです)Player Stateを使わずに以下は試してみましたが、どちらも上手くいきませんでした。
・UMGのBPから、各プレイヤーのIDに設定してHealthを取得->UMGに反映:クライアントの方がID = 0(デフォルト設定)しかないので、自身の情報しか反映できない
・CharacterのBPから、Run on serverのイベントを作成して各プレイヤーのHealth取得->MulticastでUMGに反映:参照権限がない旨、エラーが出る
自己解決できました。
プロジェクトをアップデート済で、以下BPの青色コメント箇所を追加で対応しました。
・FirstPersonCharacter
・FirstPersonController(新しく追加)
・GameHUD