チャネル¶
これは、このサンプルで取り上げる最後の機能です。Strixには「チャネルID」を受け取る関数が多数あることに気付いたかもしれません。チャネルIDは、個別のルーム接続を表しています。Strixでは、同時に複数のルームに接続することが可能で、これにより、チャットチャネルシステムや戦略的オーバーレイなどを作成できます。
ここに、組み込みのチャットシステムを備えたトップダウンシューターがあります。Enterを押してテキストを入力し、もう一度Enterを押すと発言できます。チャットにはグローバルとローカルのチャネルがあり、タブで切り替えることができます。TO:、スペース、その直後にプレイヤー名を入力することで、入力した名前のプレイヤーに直接メッセージを送信できます。
チャットシステムのブループリントを見てみましょう。まず、ChannelsBP >BlueprintsフォルダーにあるTwinStickPawnブループリントを開きます。ポーンがチャットウィンドウを作成し、同期されるとチャットルームに接続/作成します。
ポーンはまず、ルームプロパティのキーの値でフィルターし接続を試みます。ここでは、key2 = 1 でルームがグローバルチャットルームであることを、key3 = 1でローカルであることを表します。これにより、Join Random Node Roomを呼び出すときにゲームルームに接続しないようにします(この関数を呼び出すとランダムなルームに接続されるため、もしもゲームのルームが2つ稼働していると、間違ったルームに接続してしまう可能性があります)。ルームがない場合は、サフィックスとプロパティを使用して作成します。各ルームにはそれ自身のチャネルIDがあります。
注釈
チャネルIDはルームIDとは別のものであり、好きな値に初期化できます。
チャネルは、独立したルーム接続です。チャネルに関する全ての操作は、そのチャネルのルームにのみ適用されます。
レベルには2つのチャットオブジェクトがあります。ここにチャットのロジックが含まれています。Chat1がローカルチャネル、Chat2がグローバルです。
チャットブループリントを開くと、同期された後でReceiveChat関数を登録していることが分かります。この関数はメッセージを入力として受け取り、ChatWindowウィジェットを更新します。
ChatWindowウィジェットはChannelsBPフォルダーにあります。これを開いて、RPCの送信方法を見てみましょう。
ここでは、チャネルの値を切り替えるほか、Enterキーを押したときにテキストボックスのテキストを取得して解析し、RPC to OtherかRPC to Memberのいずれかの関数で送信します。直接RPCでは、メンバーがStrix Room Member構造体の形で分かっている必要があります。この値は、Get Current Room Members関数を呼び出して、目的の受信者の名前をメンバーの名前と比較することで取得できます。
チャットシステムを試して実際の動作を確認できます。
注釈
StrixのレプリケーターはチャネルIDを受け取ります。これにより、異なるルームにある複数のアクターを複製できます。例えば、プレイヤーが所属するグループに基づいて別の戦略マーカーを設定できます。
Strixをご利用いただきありがとうございます。このドキュメントの残りの部分では、Strixで利用できる機能についてさらに詳しく説明しています。もっとお知りになりたい場合はこのままお読みください。