チャネル

これは、このサンプルで取り上げる最後の機能です。Strixには「チャネルID」を受け取る関数が多数あることに気付いたかもしれません。チャネルIDは、個別のルーム接続を表しています。Strixでは、同時に複数のルームに接続することが可能で、これにより、チャットチャネルシステムや戦略的オーバーレイなどを作成できます。

../../../_images/channels.png
  • ここに、組み込みのチャットシステムを備えたトップダウンシューターがあります。Enterを押してテキストを入力し、もう一度Enterを押すと発言できます。チャットにはグローバルとローカルのチャネルがあり、タブで切り替えることができます。TO:、スペース、その直後にプレイヤー名を入力することで、入力した名前のプレイヤーに直接メッセージを送信できます。

  • チャットシステムのブループリントを見てみましょう。まず、ChannelsBP >BlueprintsフォルダーにあるTwinStickPawnブループリントを開きます。ポーンがチャットウィンドウを作成し、同期されるとチャットルームに接続/作成します。

../../../_images/chat1.png ../../../_images/chat2.png
  • ポーンはまず、ルームプロパティのキーの値でフィルターし接続を試みます。ここでは、key2 = 1 でルームがグローバルチャットルームであることを、key3 = 1でローカルであることを表します。これにより、Join Random Node Roomを呼び出すときにゲームルームに接続しないようにします(この関数を呼び出すとランダムなルームに接続されるため、もしもゲームのルームが2つ稼働していると、間違ったルームに接続してしまう可能性があります)。ルームがない場合は、サフィックスとプロパティを使用して作成します。各ルームにはそれ自身のチャネルIDがあります。

注釈

チャネルIDはルームIDとは別のものであり、好きな値に初期化できます。

  • チャネルは、独立したルーム接続です。チャネルに関する全ての操作は、そのチャネルのルームにのみ適用されます。

  • レベルには2つのチャットオブジェクトがあります。ここにチャットのロジックが含まれています。Chat1ローカルチャネル、Chat2グローバルです。

  • チャットブループリントを開くと、同期された後でReceiveChat関数を登録していることが分かります。この関数はメッセージを入力として受け取り、ChatWindowウィジェットを更新します。

../../../_images/registerchat.png ../../../_images/receivechat.png
  • ChatWindowウィジェットはChannelsBPフォルダーにあります。これを開いて、RPCの送信方法を見てみましょう。

../../../_images/switchchannel.png ../../../_images/sendchat.png
  • ここでは、チャネルの値を切り替えるほか、Enterキーを押したときにテキストボックスのテキストを取得して解析し、RPC to OtherRPC to Memberのいずれかの関数で送信します。直接RPCでは、メンバーがStrix Room Member構造体の形で分かっている必要があります。この値は、Get Current Room Members関数を呼び出して、目的の受信者の名前をメンバーの名前と比較することで取得できます。

  • チャットシステムを試して実際の動作を確認できます。

注釈

StrixのレプリケーターはチャネルIDを受け取ります。これにより、異なるルームにある複数のアクターを複製できます。例えば、プレイヤーが所属するグループに基づいて別の戦略マーカーを設定できます。

Strixをご利用いただきありがとうございます。このドキュメントの残りの部分では、Strixで利用できる機能についてさらに詳しく説明しています。もっとお知りになりたい場合はこのままお読みください。