This document is about: VOICE 1
SWITCH TO

Photon Voice1は、Photon Voiceの最初のバージョンです。        現在では、リファクタリング・拡張されたPhoton Voice 2に置き換えられています。            新しいプロジェクトを開始する場合は、

よくある質問

どのPhoton製品を使用するべきでしょうか?

対象となるゲームやプロジェクトの特性によって異なります。

通常、弊社はFusion または
Quantumの使用を推奨しています。これらは、弊社のもっとも高度なクライアントソリューションです。

概要について、どちらの製品シートにも製品選びのための「Quadrant」が記載されています:

また、Photon CloudとPhoton Serverのどちらを選択すべきかは、こちらを参照ください。

ご不明点はお気軽にお問合せください。

Photon Cloud

Photon Cloudのステータスを確認する方法は?

Photon Cloudのステータスを確認するには、こちらを参照するか、Twitterで@photon_statusをフォローしてください。
最新のステータスについてお知らせします。

デフォルトのPhotonリージョンは?

少なくとも1つのリージョンが利用できる場合、クライアントはPhoton Cloudに接続可能となるべきです。
この点を保証するため、ディベロッパーが明示的に設定しない場合や「ベストリージョン」オプションを選択しない場合には、デフォルト値を設定するか、
またはデフォルト値を使用する必要があります。
デフォルト値はクライアントSDKによって異なります。
ネイティブSDKでは、OpGetRegionsでサーバーによって返されるリージョンリストのインデックス0の値です。
UnityおよびDotNet SDKでは、デフォルトのリージョンは「EU」とする必要があります。

一部のリージョンを無効にすることは可能ですか?

はい。
許可されたリージョンのリストを定義することにより、別の方法で機能します。
詳細は、Dashboardリージョンのフィルタリングを参照してください。

Photon Voice

会話をファイルに保存する方法は?

この質問には、2つに分けて回答します:

1. 受信音声ストリーム:

Photon Voiceのストリームは、ペアを使用して一意に識別されます:PlayerIdとVoiceIdです。
このペアによって、リモート音声ストリームのソースを推定できます:どのプレイヤーなのか、またどのレコーダーなのかという点です。

リモートストリーム用に3つのイベントをサブスクライブ可能です:

  • PhotonVoiceNetwork.Client.OnRemoteVoiceInfoAction: 受信した情報とともに、新規でリモート音声ストリームが作成されます。
  • PhotonVoiceNetwork.Client.OnAudioFrameAction: 特定のリモート音声ストリームから、音声フレームが受信されます。
  • PhotonVoiceNetwork.Client.OnRemoteVoiceRemoveAction: リモート音声ストリームが終了し、破壊されます(転送が停止されます)。

受信リモート音声ストリームの全体を取得したい場合には、以下が可能です:

  1. そのストリーム向けにOnRemoteVoiceInfoActionハンドラー内でファイルを作成し、開きます。
  2. OnAudioFrameActionハンドラーで音声データのフレームを書き込みます。
  3. OnRemoteVoiceRemoveAction ハンドラー内でファイルを保存し、閉じます。

ユーザーの入力に応じて、ファイルの開閉やOnAudioFrameActionのアップデートをおこなえます。

2.発信音声ストリーム:

発信音声ストリームについては、Voice.LocalVoiceAudio<T>.IProcessorを作成し、それをローカルの音声処理パイプラインに挿入することが可能です。
PhotonVoiceCreated Unityメッセージを受信するには、コンポーネントをPhotonVoiceRecorderと同じGameObjectにひもづける必要があります。
ローカルで録音された音声フレームはIProcessor.Processにあります。
デモはTestVoiceフォルダ内の「DelayProcessor.cs」で参照してください。

カスタム音声ソースを使用する方法は?

独自のカスタム音声ソースで作成された音声をPhotonVoiceRecorderで転送するには:

1つ目のアプローチ: 消費者がデータストリームを制御

AudioClipWrapperはこのアプローチのサンプルです。
これは、PhotonVoiceRecorder.AudioClipに割り当てられた音声クリップをストリーミングします。

  1. 音声ソースを読み込むクラスを作成し、ExitGames.Client.Photon.Voice.IAudioReaderインターフェースを実装します。例: MyAudioReaderSource

  2. エディタで(またはコードで)PhotonVoiceRecorderSourceFactoryに設定します。

  3. アプリケーションの初期化中に、クラスのインスタンスをどこかに作成します(PhotonVoiceRecorderが作成される前に):

    C#

    // MyAudioReaderSource is just an example, replace with your own class name and constructor
    PhotonVoiceNetwork.AudioSourceFactory = () => new MyAudioReaderSource();
    
  4. クライアントが音声ルームに接続されPhotonVoiceRecorderが転送をおこなっている限り、カスタムの音声ソースインスタンス上でIAudioReader.Read(float[] buffer)メソッドが呼び出されます(例 MyAudioReaderSource)。
    コールの周波数とバッファサイズは、カスタムの音声ソースインスタンスのIAudioReader.SamplingRateプロパティによって返されるサンプル率に一致するよう調整されます。

2つ目のアプローチ: プロデューサーがデータストリームを制御

「AudioUtil.cs」内のToneAudioPusherは、このアプローチのサンプルです。

  1. この場合にはMyAudioPusherSourceなどの代わりにExitGames.Client.Photon.Voice.IAudioPusherインターフェースを実装するほうが、より便利です。

  2. エディタ(またはコード)でPhotonVoiceRecorderSourceFactoryに設定します。

  3. アプリケーションの初期化中に、クラスのインスタンスを任意の場所に作成します(PhotonVoiceRecorderが作成される前に):

    C#

    // MyAudioPusherSource is just an example, replace with your own class name and constructor
    PhotonVoiceNetwork.AudioSourceFactory = () => new MyAudioPusherSource();
    
  4. ストリーミング中に、保有しているサンプルすべてとともに、定期的にIAudioPusher.SetCallbackを使用して(例えばMonoBehaviour.OnAudioFilterReadから)コールバックセットを呼び出します。
    Photon Voiceがすべてのバッファリング作業をおこないます。

請求

学生、趣味でおこなっているディベロッパー、インディー向けの割引はありますか?

弊社の製品にはすべて、無料プランとワンショットのプランがあります。
また弊社は通常、Unityアセットストアのセールに参加し、また当選者にはクーポンを提供しています。

1つのPhotonアプリケーションに、複数の100CCUプランを組み合わせることはできますか?

いいえ。
The 100 CCUプランは、
AppID1つにつき適用できる100CCUプランは1つです。
有償サブスクリプションと組み合わせ、100CCUプランの期間中全体CCUに加算することは可能です。
自動更新はされません。

1つのアプリに対してより多くのCCUが必要でしたら、その次の段階のプランは500 CCUプランとなります。
月間プランまたは年間プランをご利用中の場合、その月間・年間プランのCCUに加えて100CCU分が追加されます。

QuantumおよびFusionのFree 100CCUプランのみ例外で、Unityアセットストアの100 CCUクーポン(Quantum PlusおよびFusion Plus)と組み合わせることができます。

Photonのプランに付随するトラフィック数はどれくらいですか?また、付随トラフィックの上限を超えたトラフィック数をアプリで生成した場合どうなりますか?

Photon Public CloudおよびPremium CloudプランではCCUごとに3GB含まれています。

たとえば、1,000 CCUの月間プランの場合、月々の付随トラフィック数は3TBとなります。

アプリでこれ以上のトラフィック数が生成されると、当社から自動的にメール通知が送信されます。月末になると、お客様のPhotonアカウントにご登録のメールアドレスに、自動生成された超過請求書が送信されます。請求金額は以下の計算に基づいて決定されています。

合計トラフィック数 - 付随トラフィック数 = 超過トラフィック (単位:GB)

トラフィック料金は、ご使用になるPhoton Cloudリージョンに応じて計算し請求いたします。

ピークCCUがPhoton Cloudプランで予約しているCCUを超過した場合どうなりますか?

ご登録されているプランが、500 CCU / 1,000 CCU / 2,000 CCUプランのいずれかであれば、お客様のアプリケーションに対して「CCUバースト」が自動で有効化されています。お客様のユーザーにできる限り最善の体験をお届けするため、Photon Cloudが予約分以上のCCUも使用を許可します。

バーストが発動すると、ご契約中の利用規約に応じて、48時間以内に必要なCCU数をまかなうサブスクリプションレベルにアップグレードしていただく必要があります。

アップグレードが行われない場合は、Photonアカウントにご登録のメールアドレスにご登録中のプランのCCU数を超過した分について、1CCU単位で計算された超過利用金額をご請求します。

Photonでは「ピークCCU」で請求額を決定しています。これは、当月使用されたリージョンごとのピークCCUの合計です。超過料金請求を防ぐため、ピークの後に使用量が下がったとしても、アップグレードを必ず行ってください。

Back to top