Voice Intro

Contents

はじめに

Photon Voice 2はPhoton Voiceの後継です。アップデートした機能はこちら:

  • より優れたUnityコンポーネントを使った改良されたAPI。
  • PUN2との互換性
  • 柔軟性:PUN2から切り離され,Photon Realtime,Photon Bolt,Photon Chat,さらにスタンドアロンでも使用できるようになりました。
  • 新しいWebRTCベースのDSP(デジタルシグナルプロセッサー)
  • 更新された新しいデモ

Photon Voice 2は、こちらからUnity Asset Storedでダウンロードしてインポートできます。 5.6.6f2以上のUnityバージョンが必要です

Back To Top

対応プラ​​ットフォーム

  • Windows
  • UWP
  • macOS
    • Android(64ビットへの対応についてはこちらをご覧ください。
  • iOS
  • PlayStation 4(特別なアドオンが必要です。こちらからダウンロードしてください。コンソールへのアクセスについては こちらをご覧ください。)
  • Nintendo Switch (特別なアドオンが必要です。こちらからダウンロードしてください。コンソールへのアクセスについてはこちらをご覧ください。)
  • MagicLeap(Lumin OSの特別なアドオンが必要です。こちらからダウンロードしてください。Magic Leapについてはこちらをご覧ください。)

Back To Top

主要コンポーネント

VoiceConnection

VoiceConnectionコンポーネントインスタンスは、ボイスクライアントをPhoton Serverに接続するためにシーンに必要です。 ボイスの通信はルーム内でしか行えないため、VoiceConnectionを使用してマッチメイキングを行い、クライアントが確実にルームに参加できるようにします。

Back To Top

Recorder

Recorderは非常に重要なコンポーネントなので、こちらに専用のページがあります。

Back To Top

Speaker

Speakerコンポーネントは、受信したオーディオストリームを再生します。 UnityのAudioSourceコンポーネントを利用しています。このコンポーネントは、ボイスストリームのコンテキスト外では、 または作成イベントを介して受信されるストリームの情報を取得するまでは、あまり意味を持ちません。 そのイベントと含まれるデータは、ローカルのSpeakerコンポーネントをリモートのボイスストリームにリンクするために重要です。 次のセクションでは、Speakerの使用方法について説明します。

Back To Top

SpeakerFactory

SpeakerFactoryメソッドは、新しいリモートボイスストリーム情報を受信するたびに呼び出されます。 SpeakerFactoryの役割は、受信されるリモートボイスストリーム(Recorderコンポーネントインスタンスを介して送信される)をローカルのSpeakerコンポーネントインスタンスとリンクまたはバインドすることです。 リモートのボイスストリームとローカルのSpeaker、またはリモートのRecorderとローカルのSpeakerの間の一対一の関係に対応しています。 デフォルトでは、単一のSpeakerコンポーネントインスタンスを使用して複数の受信オーディオストリームを混ぜて再生することはできません。 Speakerは1つのRecorderに1回リンクされますが、同じオーディオストリームに複数回リンクすることはできません。 複数のSpeakerコンポーネントインスタンスを使用して単一の受信オーディオストリームを再生することもできません。

Factoryで、そのリモートボイスストリームから受信したオーディオフレームを再生するために使用されるSpeakerコンポーネントを返す必要があります。 新しいSpeakerコンポーネントを作成するか、古いSpeakerコンポーネントを再利用するか、またはnullを返して、そのリモートボイスストリームによるすべての受信オーディオフレームの再生をスキップすることができます。

SpeakerFactoryメソッドに渡されるパラメーターは、オーディオストリームの発信元またはソースを識別するのに役立ちます。 SpeakerFactoryの本体のコードを使用して、リモートRecorderコンポーネントから発信される着信オーディオストリームから受信されるオーディオフレームを再生するための最適な候補Speakerコンポーネントを見つけます(または必要に応じて新しいものを作成します)。

SpeakerFactoryメソッドは3つのパラメーターを受け入れ、同じGameObjectにアタッチされたAudioSourceコンポーネントを使用して着信オーディオを再生するために使用されるSpeakerコンポーネントを返します。 SpeakerFactoryメソッドで受け入れられる3つのパラメーターは次のとおりです。

  • playerId: オーディオストリームの発信元のプレーヤーのアクター番号。
  • voiceId: 同じ playerIdから発生するオーディオストリームの番号。
  • userData: オーディオストリームを送信しているRecorderコンポーネントに設定されたカスタムオブジェクト。

Back To Top

デフォルトのSpeakerFactory

SpeakerFactoryを明示的に設定していない場合は、デフォルトのVoiceConnection.SimpleSpeakerFactoryが使用されます。 デフォルトのVoiceConnection.SimpleSpeakerFactoryは、リモートボイスストリームごとにローカルにインスタンス化されたSpeakerが設定されることを保証します。 SpeakerPrefabを設定すると、そのプレハブはデフォルトの回転とデフォルトの位置で階層内のルートオブジェクトとしてインスタンス化されます。 それ以外の場合、新しいGameObjectが作成されます。 Speakerコンポーネントが接続されているGameObjectは、 "Speaker for Player {0} Voice#{1}"と名前が変更され、 リモートボイスストリームが削除されると破棄されます。

Back To Top

ボイスの使い方(PUNを使用せずに)

  1. シーンにVoiceConnectionコンポーネントを追加する。
  2. VoiceConnection.SettingsでAppSettingsを設定する。
  3. シーンにレコーダーを追加し、そのプロパティを更新してVoiceConnection.PrimaryRecorderに割り当てる。
    3.a. 必要に応じてRecorder.TransmitEnabledを有効にして、準備ができ次第すぐに送信を開始することができます。
    3.b. 必要に応じてRecorder.DebugEchoModeを有効にして、自分の声を聞くことができます(ローカルスピーカーをリンクする必要があります。手順4を参照)。
  4. スピーカーコンポーネントをリモート音声ストリームにリンクする方法を決定: 4.a. 必要に応じてSpeakerFactoryメソッド を実装し、コードでVoiceConnection.SpeakerFactoryに割り当てる。
    4.b. デフォルトのSpeakerFactoryを使用する場合は、必要に応じてSpeakerプレハブ(Speakerコンポーネントを含むプレハブ)を追加してVoiceConnection.SpeakerPrefabに割り当てる。
  5. ルームに参加する。参加には、Photon Realtimeのマッチメイキングオペレーションのいずれかを使用("ConnectAndJoin.cs"ユーティリティスクリプトを参照)。
  6. [3.aで有効にしていない場合]ルームでRecorder.TransmitEnabledtrueに設定して送信を開始します。.
  7. [3.bで有効にしていない場合]必要に応じて、送信側レコーダーでRecorder.DebugEchoModeを有効にして、自分の声を聞くことができます。

Back To Top

PUNを削除する方法

PUNなしでPhoton Voiceを使用する場合は、PUNをプロジェクト内に保持するか、単に削除することができます。 これを行うためのショートカットがEditor上にあります:"Window" -> "Photon Voice" -> "Remove PUN"。

Remove PUN Menu Item
PUNメニューアイテムを削除

または、次の手順に従って手動で実行できます。

  1. Demos\DemoVoicePUNフォルダを削除する
  2. Photon\PhotonVoice\Code\PUNフォルダを削除する
  3. Photon\PhotonUnityNetworkingフォルダを削除する 4."Project Settings" - > "Player"> "Other Settings"> "Script Define Symbols"で、「PHOTON_UNITY_NETWORKING」、「PUN_2_X_OR_NEWER」、「PUN_2_OR_NEWER」が削除されていることを確認する。

Asset StoreからPhoton Voice 2をインポートすることで、いつでもファイルを元に戻すことができます。

Back To Top

Photon Chatを削除する方法

Photon ChatなしでPhoton Voiceを使用する場合は、Photon Chatをプロジェクト内に保持するか、単に削除することができます。 これを行うためのショートカットがEditor上にあります:"Window" -> "Photon Voice" -> "Remove Photon Chat"

Remove Photon Chat Menu Item
Photon Chatメニューアイテムを削除

または、"Photon\PhotonChat"フォルダーを削除して、手動で行うことも可能です。

Asset StoreからPhoton Voice 2をインポートすることで、いつでもファイルを元に戻すことができます。

ドキュメントのトップへ戻る