よくある質問
どの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 Bolt
厳密な比較とは?
厳密な比較は、ベクトルに対しておおよその比較を行う組み込みのa != b
を使用する代わりに(a.x != b.x) || (a.y != b.y) || (a.z != b.z)
を行います。複製が必要な非常に小さな変更がある場合に役立ちます。
再配布可能なBolt Serverビルドを作成する方法はありますか?
はい、Boltはヘッドレスサーバーの作成に対応しているため、任意のコンピューターで実行できます。
Photon Cloudを使用するBolt Freeを使用している場合、他のプレイヤーが参加できるようにルームを公開するだけです。Bolt Proを使用している場合でも、ローカルまたは任意のクラウドサービスで実行できます。IPが接続する他のプレイヤーに送信する方法が必要です。
また、こちらに単純なヘッドレスサーバーのサンプルも用意されています。
ロケットのような発射物のラグを補償する必要がありますか?
発射体を発射する武器の場合、遅れ補償は問題になる可能性が高くなります。
たとえば、発射物がサーバー上で自律的に存在する場合、発射物はどの時間空間に存在する必要がありますか?
発射物をサーバーでシミュレートして移動する準備ができるたびに、他のすべてのプレイヤーを「後退」させる必要がありますか?
必要な場合、他のプレイヤーをどれだけ時間的に後方に移動させるべきですか?これらは考慮すべき興味深い質問です。
単に発射物オブジェクトを遅らせることはありません(つまり、クライアントで発射物を発射する音を予測しないということではなく、実際の発射物が遅れ補償されないというだけです)。
詳細はこちら
プロジェクトのすべてのボルトアセットをクリアする方法は?
すべてのBoltアセットは project.json
ファイルにシリアル化されているため、以下をクリアします:
- Unityを閉じる。
<Project Folder>/Assets/Photon/PhotonBolt/project.json
ファイルを削除する。- Unityを開く。
- Boltのコンパイル。
Bolt/Compile Assembly
メニュー。
EC2のヘッドレスサーバーにBolt Freeを使用する場合の推奨構成は何ですか?

スニペット
ゲームの開発に役立つ小さなコードのリストを次に示します。
テレポートする方法は?
デフォルトでは、Boltは、移動する距離がエンティティで指定されたTeleport Threshold
よりも短い場合、エンティティを自動的に補間/補外します。
これを超えると、スムージングをスキップするテレポートが強制され、これは自動的に行われます。
Bolt.IState.SetTeleport(NetworkTransform transform)
を使用してテレポートを強制することができます。これは、クライアントに送信される次の位置更新のリクエストを本質的にキューに入れ、設定に関係なくテレポートを強制します(1つの送信ティックに対して-フラグは送信後にfalseに戻ります)。
C#
void Teleport(Vector3 newPosition)
{
state.SetTeleport(state.transform);
player.transform.position = newPosition
}
その場合、SessionListUpdatedが呼び出されないときに検索時にセッションが存在しないことをどのように確認しますか?
たとえば、1.2.9より前に、ルームリストの更新を5秒に設定した場合、コールバックを受信するには5秒待つ必要があります。
その後、使用可能なセッションがないことがわかります。
これで、Photon Bolt 1.2.9以降では、同じ5秒間待機するように接続したときにコルーチンプロセスを開始できます。
Getting Started
サンプルに付属する基本メニュースクリプトに実装例を含めました。
主な部分は次のとおりです。
C#
public class Menu : Bolt.GlobalEventListener
{
private Coroutine _timerRoutine;
// ...
public override void BoltStartDone()
{
// ...
if (BoltNetwork.IsClient)
{
// This will start a server after 10secs of wait if no server was found
_timerRoutine = StartCoroutine(ShutdownAndStartServer());
}
}
public override void BoltShutdownBegin(AddCallback registerDoneCallback)
{
registerDoneCallback(() =>
{
BoltLauncher.StartServer();
});
}
public override void SessionListUpdated(Map<Guid, UdpSession> sessionList)
{
// Stop background routine if a server was found
if (_timerRoutine != null)
{
StopCoroutine(_timerRoutine);
_timerRoutine = null;
}
}
}
ゲームサーバーの起動時に特定のポートを設定する方法は?
Photon Boltインスタンスをゲームサーバーとして実行する場合、ピアがバインドを試行するIP/ポートを構成できます。
これは、たとえばクラウドサービスでゲームをホストしていて、使用するポートの範囲が限られている場合に便利です。
デフォルトでは、Boltはオペレーティングシステムに内部ソケットをバインドするポートを選択させますが、以下に示すように、 BoltLauncher.StartServer
の適切なオーバーロードを呼び出すことで上書きできます。
C#
public static class BoltLauncher
{
// ...
public static void StartServer(int port = -1);
public static void StartServer(UdpEndPoint endpoint, string scene = null);
public static void StartServer(UdpEndPoint endpoint, BoltConfig config, string scene = null);
// ...
}
したがって、この方法でサーバーを起動できます:
C#
void StartBoltServer()
{
// Custom Port number
BoltLauncher.StartServer(<custom port>);
// OR
// Custom IP and Port number
BoltLauncher.StartServer(new UdpEndPoint(UdpIPv4Address.Parse("<custom IP>"), <custom port>))
}
Boltのデフォルトの設定をコードを使用して変更する方法は?
サーバーまたはクライアントを起動する前にコードでBoltの設定をカスタマイズしたい場合には、
BoltRuntimeSettings.GetConfigCopy
を呼んでください。これによって、返されたオブジェクトが修正され、StartClientまたはStartServerへの最後の引数として渡されます。
コードを使用すれば、Bolt Settings ウィンドウに表示されていない詳細設定にもアクセスできます。
C#
BoltConfig config = BoltRuntimeSettings.instance.GetConfigCopy();
// change any settings you want on the config object here,
// be aware that bolt will not verify/limit any settings when you do
// it directly in code, so you can break things completely by supplying
// incorrect/invalid config values.
BoltLauncher.StartServer(new UdpEndPoint(UdpIPv4Address.Any, 27000), config);
Boltでインターネット接続が失われたことを検出するにはどうしたらいいですか?
デフォルトで、インターネットの接続が失われるとBoltがPhoton Cloudサービスやリモートサーバー、またはクライアントとの接続不良を検出します。すべての場合において、タイムアウトが発生した後にローカルのインスタンスがシャットダウンされます。これは主に接続サイド(サーバなのかクライアントなのか)および接続タイプによります。
シャットダウンにあたり、現在シーンで実行されている次のコールバックをいずれかのBolt.GlobalEventListener
で受信します。:
C#
public override void BoltShutdownBegin(AddCallback registerDoneCallback, UdpConnectionDisconnectReason disconnectReason)
{
registerDoneCallback(() =>
{
// Will show disconnect reason.
Debug.LogFormat("Shutdown Done with Reason: {0}", disconnectReason);
// Show the current connectivity of the peer
ConnectivityCheck();
// Lods the Scene at index 0
SceneManager.LoadScene(0);
});
}
void ConnectivityCheck()
{
if (Application.internetReachability == NetworkReachability.NotReachable)
{
Debug.Log("NotReachable");
}
else if (Application.internetReachability == NetworkReachability.ReachableViaCarrierDataNetwork)
{
Debug.Log("ReachableViaCarrierDataNetwork");
}
else if (Application.internetReachability == NetworkReachability.ReachableViaLocalAreaNetwork)
{
Debug.Log("ReachableViaLocalAreaNetwork");
}
}
インターネット接続不良により切断されたかどうかを確認するには、Unity APIから閲覧可能なApplication.internetReachability
プロパティを確認します。
請求
学生、趣味でおこなっているディベロッパー、インディー向けの割引はありますか?
弊社の製品にはすべて、無料プランとワンショットのプランがあります。
また弊社は通常、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