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

Frequently Asked Questions

Contents

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

対象となるゲームやプロジェクトの特性によって異なるため、これはむずかしい質問です。 ただし、弊社は以下のように推奨しています:

ご不明点な点がある場合、お問い合わせください。

Back To Top

Photon RealtimeとPUNのちがいは何ですか?

Photon Realtime wraps up all generic features needed for the load balancing of Photon. It is a product as much as a defined workflow to use Name Server, Master Server and Game Servers. Photon Realtime (a.k.a. LoadBalancing) is the basis for many games using Photon.

While Photon Realtime is independent from Unity, PUN adds many comfortable features for Unity and makes Realtime (the lower level) even easier to use.

これらの製品は同じバックエンド、サーバーアプリケーション、低いレベルの要素を共有しており、中核となるコンセプトも同一です。 当初、PUNはより優れたUNet(旧式のUnity Networking)と位置づけられていました:同様のAPIを保持し、さらに強固なバックエンドと豊富な機能を提供していました。 そして、その後PUNは次第に分化して、Unity上でのマルチプレイヤー向けNo1ソリューションとなりました。

Photon Realtime Unity SDKと比較して、PUNは以下のようなさらに高度なレベルの機能を提供し、またこれらの機能は購入後にすぐに使用できます:

  • Magic Unity コールバック
  • ネットワークオブジェクトをシリアル化および同期する外部Unityコンポーネント:もっとも重要なものにPhotonViewがあります
  • PunRPC
  • オフラインモード
  • ...

詳細はこちらを参照してください。

ただし、PUNはWebhookルームステートの保持をサポートしますが、保存されたゲームの画面を読み込む際に、シーン内のネットワークオブジェクトのステートを完全に復旧することはできません。 詳細は、こちらを参照してください。

Back To Top

LoadBalancing APIとPhoton Realtimeのちがいは何ですか?

LoadBalancing APIとPhoton Realtimeは、名称は異なりますがおなじものを指しています。 LoadBalancing APIまたはLoadBalancing Client APIは、Photon Realtime製品向けに弊社が提供している、クライアントSDK内で利用できるプログラミングインターフェースです。

Back To Top

Photon Cloud

Is Photon Cloud Down?

You can check Photon Cloud status here or follow @exitgames on twitter to get notified about status updates.

Back To Top

What Is The Default Photon Region?

Clients should be able to connect to Photon Cloud as long as at least one region is available. So to guarantee this, a default value is configured or is used when the developer does not explicitly set one or choose "Best Region" option. The default value could vary by client SDK. In native SDKs, it is the value at index 0 of the region list returned by server in OpGetRegions. On Unity and DotNet SDKs, the default region should be "EU".

Back To Top

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

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

Back To Top

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」で参照してください。

Back To Top

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

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

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

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

  1. 音声ソースを読み込むクラスを作成し、ExitGames.Client.Photon.Voice.IAudioReaderインターフェースを実装します。例: MyAudioReaderSource
  2. エディタで(またはコードで)PhotonVoiceRecorderSourceFactoryに設定します。
  3. アプリケーションの初期化中に、クラスのインスタンスをどこかに作成します(PhotonVoiceRecorderが作成される前に):

        // MyAudioReaderSource is just an example, replace with your own class name and constructor
    PhotonVoiceNetwork.AudioSourceFactory = (rec) => 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が作成される前に):

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

Back To Top

Billing

Do You Have Special Offers For Students, Hobbyists Or Indies?

All our products have a free tier and a one-off entry-plan. We also usually take part in Unity's asset store sales and occasionally give vouchers to lucky ones.

Back To Top

Can I Combine More Than One 100 CCU Plan For A Single Photon Application?

No. The 100 CCU plans are not stackable and can be applied only once per AppId. If you purchase multiple PUN+ asset seats then you must redeem each 100 free CCU for a separate AppId. If you need more CCU for a single app, the next higher plan is the 500 CCU one. If you subscribe to a monthly or yearly plan, then you will still keep the 100 CCUs for 60 months on top of / in addition to the CCU from your monthly/yearly plan.

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