SteamVoip - stingray.SteamVoip ネームスペース リファレンス - Stingray Lua API リファレンス

stingray.SteamVoip ネームスペース リファレンス

説明

Steam を使用したボイス コミュニケーションの開始点です。

音声通信に使用される、次の 3 つのインタフェースがあります。

  • SteamVoip: これはグローバルな音声システムであり、この中でルームやクライアントを作成できます。
  • SteamVoipRoom: ルームは、クライアント間通信のためのホストです。同一のルーム内のクライアントは互いに通信できます。
  • SteamVoipClient: 録音および再生を行うエンティティであり、同一のルーム内の他のクライアントとの間で音声を送受信します。

音声通信を使用するには、最初にルームを作成する必要があります。

次に、音声システムをフレームごとに更新して、以降にクライアントとの通信を許可する必要があります。

クライアントのみが録音および再生を処理するため、この段階では音声は録音されません。異なるコンピュータ上で 2 つのクライアントを作成する必要があります。ルームの作成者(ホスト)は、希望のクライアントを作成することもできます。ホストのみがルームにピアを追加できます。また、他のピアがルームに参加するにはルーム ID を知る必要があります。したがって、2 つの RPC を設定し、1 つを参加要求用に、1 つを参加受け入れ用にすることをお勧めします。

クライアントを作成するピアは、ホストに RPC を送信します。

RPC.want_to_join_room(host)

ホストは RPC を処理し、ピアをルームに追加することで応答し、ピアが参加するルームを示す RPC を返送します。

function CallbackObject:want_to_join_room(sender)
        SteamVoipRoom.add_member(self.room_id, sender)
        RPC.accept_join_room(sender, self.room_id)
end

ピアは、受け入れ RPC を処理し、受け入れ時にはルームに参加する必要があります。

function CallbackObject:accept_join_room(host, room_id)
        self.client = SteamVoip.join_room(host, room_id)
end

これにより、ホストに加え、クライアントのピアも VoIP システムを更新しなければならなくなります。ピアは、メンバーに参加することを通知するためのコールバック オブジェクトを提供します。

SteamVoip.update(callback_object)

新しいピアがルームに追加されるとき、すべての接続済みクライアントは、再生する Timpani イベントおよびイベントで再生される音源の情報とともに、応答が必要なコールバックを受信します。Timpani イベントは、ボリュームや音声などのための設定に存在する必要があるダミーのイベントです。

関数

パラメータ
この関数はパラメータを受け入れません。
戻り値

string

作成されるルームの ID です。

パラメータ

room_id :

string

破壊するルームの ID です。

戻り値
この関数は値を返しません。
パラメータ

host_peer_id :

string

ルームのホストの ID です。

room_id :

string

参加する部屋の ID です。

戻り値

stingray.SteamVoipClient

新しく作成されたクライアントであり、指定した部屋へのこのピアの接続を管理します。

パラメータ

client :

stingray.SteamVoipClient

接続を管理するクライアントです。

戻り値
この関数は値を返しません。

指定したクライアントを破壊します。

パラメータ

callback_object :

table

ルームのメンバーシップの変更に対応するために呼び出されるコールバック関数のセットを含むテーブルです。

戻り値
この関数は値を返しません。

コールバック オブジェクトは、次のコールバックを受信します。

  • room_member_added(room_id, peer_id): timpani_world, event, sound_source? : これは、新しいクライアントがルームに入った場合に呼び出されます。新しいクライアントの音声を再生するために必要な情報を返す必要があります。まず、再生する[TimpaniWorld]を入力します([stingray.World.timpani_world()]によって返される)。次に、Timpani イベントを指定して音声を再生します。これは、再生されない、ダミー サウンドのイベントにすることができます。最後に、ワールド内のどこでサウンドが再生されるかを示すための参照を指定する必要があります。次のいずれかのタイプを使用して、音源を指定できます。
    • nil: イベントは、2D 音源としてトリガされます。
    • Unit, object_index?: 指定したユニット(および指定する場合はオブジェクト)にリンクされた Timpani イベントをトリガします。
    • Matrix4x4 : 指定したポーズにリンクされた Timpani イベントをトリガします。
    • Vector3, Quaternion?: 指定した位置およびオプションの回転で再生される Timpani イベントをトリガします。
    • sound_source_id: 以前の [TimpaniWorld.trigger_event()] 呼び出しによって返される音源のイベントをトリガします。
  • room_member_removed(room_id, peer_id): これは、クライアントがルームを退出するときに呼び出されます。