バージョン
サーバ上で発生する音声ルーティングを接近設定で細かく制御することができます。同じルームに多数のユーザがいる時に個々のプレイヤーに聞こえる他人の声を限定する、オープンワールドやバトルロイヤルゲームなどにおいて、これらの設定で帯域幅を最適化できます。
多くのチーム単位のゲームではチームメンバー同士以外は会話ができず、その場合は接近設定を使用するよりもチームごとのルームIDを利用した方が簡単です。
すべてのユーザのデフォルトのチームIDは0であり、どのチームにも入っていないことを意味します。この場合、音声をユーザにルーティングする時にサーバはフィルタを一切適用しません。
以下の関数において座標と範囲の引数に32ビット整数を使用するため、デベロッパはゲームオブジェクトのポジションをGMEWWisePlugin_SetSelfPosition
に送られるポジションと、GMEWWisePlugin_SetRangeAudioRecvRange
に送られる範囲に非線形にマッピングする必要があるかもしれません。。
/** * @brief 現在のプレイヤーのチームIDを設定します。 * 同じチームIDのプレイヤー同士はどのチームモードの時も * お互いの間の距離に関わらず常に会話ができます。 * チームとは同じルーム内で同じチームIDを共有するプレイヤーたちのグループのことです。 * @param[in] teamID チームIDを識別する整数値。 * チームIDが0の場合は“No team”(チームなし)を意味し、このユーザに * 音声をルーティングする際にサーバで適用されるフィルタがすべて無効となります。 * @sa GMEWWisePlugin_SetRangeAudioTeamMode */ void GMEWWisePlugin_SetRangeAudioTeamID(int teamID);
/** * @brief 現在のプレイヤーに使うチームモードを設定します。 * @param[in] teamMode 現在のプレイヤーの通信モード * * TEAMMODE_GLOBAL: どのチームのプレイヤーであっても * そのポジションが受信範囲内であればそのプレイヤーのサウンドを受信します。 * 同じチームのプレイヤーからのサウンドは常に受信します。 * * TEAMMODE_TEAM: チームメートつまり現在のプレイヤーと * チームIDが同じプレイヤーのサウンドのみを受信します。 * 距離範囲に基づくフィルタは適用されません。 */ void GMEWWisePlugin_SetRangeAudioTeamMode( GMEWWisePlugin_TeamMode teamMode );
/** * @brief グローバルチームモードにおけるプレイヤー間の可聴距離を設定します。 * グローバルチームモードでは違うチームIDのプレイヤーのポジションが * 範囲内にある時に、そのプレイヤーの音を受信します。 * 範囲とはGMEWWisePlugin_SetSelfPositionで設定した * プレイヤーポジション間の3D距離です。 * この範囲に基づくフィルターの適用はサーバ上で行います。 * @param[in] range 整数値は可聴距離を表します。 * @sa GMEWWisePlugin_SetSelfPosition */ void GMEWWisePlugin_SetRangeAudioRecvRange(int range);
/** * @brief 現在のプレイヤーのポジションを設定します。 * @param[in] positionX 現在のプレイヤーのX座標 * @param[in] positionY 現在のプレイヤーのY座標 * @param[in] positionZ 現在のプレイヤーのZ座標 * @sa GMEWWisePlugin_SetRangeAudioRecvRange */ void GMEWWisePlugin_SetSelfPosition(int positionX, int positionY, int positionZ);