ネットワークシミュレーターは、プレイテストクライアントとサーバー間の接続に遅延、ジッター、パケットロスを追加するスタジオテストツールです。外部のネットワークスロットリングツールを設定することなく、プレイヤーが有線、Wi-Fi、モバイル接続で遭遇する条件を再現するために使用します。
制約のある条件下でのテストは、高速な開発接続では応答性があるように見える相互作用が、いくつかのプレイヤーにとって遅延、混乱、または信頼性がなくなることを明らかにすることがあります。ネットワークシミュレーターを使用して、サーバー確認済みのアクション、複製された状態、ストリーミングの動作、予測と修正、そして体験が時折のパケットロスにどのように耐えるかを評価します。
ネットワークシミュレーターは、スタジオのプレイテストにのみ影響します。公開された体験やライブプレイヤーの接続には変更を加えません。

ネットワークシミュレーターの動作
シミュレーターは、各方向で条件を独立して適用します:
- 受信トラフィックは、サーバーからクライアントに移動します。これには、複製されたサーバー状態とサーバーからクライアントへのリモート通信が含まれます。
- 送信トラフィックは、クライアントからサーバーに移動します。これには、クライアントのリクエストとクライアントからサーバーへのリモート通信が含まれます。

各方向には次のコントロールがあります:
| コントロール | シミュレートする内容 | 観察すべき内容 |
|---|---|---|
| 遅延 | 各パケットに追加される最小の片道遅延。 | サーバーの確認が遅れる、状態更新が遅れる、待機中にUIが固まっているように見える。 |
| ジッター | 最小遅延の上に追加される変動。 | 不均一な更新タイミング、目に見える修正、アニメーションや動きの不安定さ、順序の仮定。 |
| パケットロス | 個々のパケットがドロップされる確率。 | 信頼性のあるトラフィックの再送信遅延と、ロスに耐えるように設計されたトラフィックの更新が欠落する。 |
ネットワークのpingは往復測定であるため、追加された受信および送信の遅延は両方とも寄与します。たとえば、10 msの受信遅延と10 msの送信遅延は、接続の既存の往復時間に約20 msを追加します。
設定された値は、接続の実際の条件に追加されます。これは、地理的要因や公共インターネットがすでに遅延やパケットロスに寄与しているチームテスト中に特に重要です。
ネットワークシミュレーターを開く
ツールを開くには:
- テストメニューからデバイスシミュレーターを有効にします。
- 3Dビューポートの上にあるツールバーで、ネットワークピルを選択します。
ピルは、ステージまたは適用された接続タイプと品質を要約します。開くと、正確なプリセットとすべての6つの方向の値が表示されます。
プリセットを適用する
組み込みのプリセットは、一般的な接続タイプのための再現可能な出発点を提供します。以下の表の値は、遅延 / ジッター / パケットロスとしてリストされています。
| プリセット | ピル | 受信 | 送信 |
|---|---|---|---|
| 理想的なファイバー | LAN | 8 ms / 0 ms / 0.00% | 8 ms / 0 ms / 0.00% |
| 有線ブロードバンド | LAN | 25 ms / 3 ms / 0.00% | 25 ms / 3 ms / 0.00% |
| 家庭用Wi-Fi | Wifi | 30 ms / 12 ms / 0.20% | 30 ms / 15 ms / 0.30% |
| 標準モバイル (4G/LTE) | 4G | 45 ms / 20 ms / 0.40% | 55 ms / 30 ms / 0.50% |
| 悪い接続 (3G) | 3G | 150 ms / 70 ms / 0.50% | 180 ms / 90 ms / 0.50% |
プリセットは、役立つテスト条件を表しており、そのタイプのすべての接続に対する保証ではありません。実際のネットワークは、デバイス、場所、プロバイダー、混雑、時間によって異なります。
プリセットを適用するには:
- プリセットからプリセットを選択します。
- プレビューされた受信および送信の値を確認します。ピルも選択をプレビューするように更新されます。
- 適用を選択します。
- プレイテストを開始または続行し、クライアント-サーバーの相互作用を行います。
プリセットを選択することは、その値をステージするだけです。アクティブなプレイテスト接続は、適用を選択するまで変更されません。最初にポップオーバーを閉じると、ネットワークシミュレーターはステージされた変更を破棄し、コントロールとピルを適用された状態に戻します。
適用を選択すると、アクティブなプレイテストは新しい値を即座に使用します。セッションを再起動する必要はありません。
カスタム条件を設定する
受信または送信を展開して、一方の方向を変更し、もう一方を変更しないようにします。これは、クライアントからサーバーへのリクエストパスの問題をサーバーからクライアントへのレスポンスパスの問題から分離するのに便利です。
| コントロール | 範囲 | 表示精度 |
|---|---|---|
| 遅延 | 0–1000 ms | 0.1 ms |
| ジッター | 0–1000 ms | 0.1 ms |
| パケットロス | 0.00–0.50% | 0.01% |
パケットロスはパーセンテージで表示されます。0.50%の値は、1パーセントの半分を意味し、50%ではありません。
任意の数値を編集すると、プリセットがカスタムに変更されます。編集は、適用を選択するまでステージされたままです。
ネットワークシミュレーターは、スタジオ設定のネットワークタブと同じ基盤となるエミュレーション設定を使用します。シミュレーターがステージされた編集を持っている間に他の場所でこれらの設定が変更されると、外部の値が優先され、ステージされたトランザクションは破棄されます。
カスタムプリセットを保存する
カスタム構成を再利用するには:
- 1つ以上の値を編集します。
- 保存を選択します。
- ユニークなプリセット名を入力します。
- 保存して適用を選択します。

保存されたプリセットは、場所や後のスタジオセッションでプリセットメニューに表示されます。既存の保存されたプリセットの名前を入力すると、アクションは置き換え & 適用に変更されます。組み込みプリセット名とカスタムは予約されています。
保存されたプリセットが選択されると、削除がリセットに置き換わります。削除すると、保存されたプリセットが削除され、即座に理想的なファイバーが適用されます。適用されたネットワーク値自体は、スタジオを完全に再起動した後には保持されません。
スクリプトでネットワーク設定を構成する
すべてのネットワークシミュレーターコントロールはNetworkSettingsプロパティに対応しているため、ツールバーの代わりにプラグインや自動テストから同じ条件を操作できます。
| コントロール | プロパティ | 説明 |
|---|---|---|
| 受信遅延 | InboundNetworkMinDelayMs | サーバーからクライアントへのプレイテスト接続に遅延を追加します。 |
| 送信遅延 | OutboundNetworkMinDelayMs | クライアントからサーバーへのプレイテスト接続に遅延を追加します。 |
| 受信ジッター | InboundNetworkJitterMs | サーバーからクライアントへのプレイテスト接続にジッターを追加します。 |
| 送信ジッター | OutboundNetworkJitterMs | クライアントからサーバーへのプレイテスト接続にジッターを追加します。 |
| 受信パケットロス | InboundNetworkLossPercent | サーバーからクライアントへのプレイテスト接続でパケットがドロップされる確率を設定します。 |
| 送信パケットロス | OutboundNetworkLossPercent | クライアントからサーバーへのプレイテスト接続でパケットがドロップされる確率を設定します。 |
これらのプロパティのいずれかを直接設定すると、ネットワークシミュレーターのツールバーとピルが同期されます。両方とも同じ基盤となる設定から読み取ります。
ネットワークに敏感なワークフローをテストする
異なる条件下で同じ再現可能な相互作用を使用して、違いが異なるコードパスやシーンではなくネットワークに起因することを確認します。
- サーバー権限のある能力をアクティブにする、インベントリの更新を受け取る、または複製された動きを観察するなど、クライアント-サーバーの境界を越えるプレイヤージャーニーを選択します。
- 成功がどのようなものかを定義します。応答時間、目に見えるフィードバック、タイムアウトの動作、修正、重複リクエスト、回復を記録します。
- 理想的なファイバーを適用し、基準としてそのジャーニーを実行します。
- 家庭用Wi-Fiや**標準モバイル (4G/LTE)**などの代表的な条件を適用し、同じアクションを繰り返します。
- **悪い接続 (3G)**を適用してレジリエンステストを行います。更新が遅れたり不均一であっても、体験が理解可能であることを確認します。
- 受信または送信の値のみを変更して、どの方向が問題を露呈するかを特定します。
- 修正を行った後、同じ実行を繰り返し、結果を比較します。
役立つ質問には以下が含まれます:
- プレイヤーはサーバーの確認を待っている間に即座にローカルフィードバックを受け取りますか?
- 繰り返しの入力で同じアクションを複数回送信できますか?
- ロードと進行状態は、遅い作業と失敗を区別しますか?
- タイムアウトは安全な再試行パスを提供しますか?
- 更新が不均一に到着しても、複製された動きは理解可能ですか?
- 信頼性のない更新は、画面上に古い状態を残さずにスキップできますか?
- より良い接続に戻った後、体験は回復しますか?
大規模な比較を行う場合は、相互作用を開始する前に条件を適用します。実行中のテスト中に大きな遅延の変化があると、混雑制御に影響を与える可能性があるため、新しい実行がクリーンな比較を提供します。
結果を測定し診断する
ネットワークシミュレーターはテスト条件を変更します。他のツールは結果を説明するのに役立ちます:
- 開発者コンソールは平均pingとログを表示し、接続が変更されたことを確認し、再試行やタイムアウトコードのエラーを明らかにします。
- マイクロプロファイラーのネットワークキャプチャは、フレームごとに送信および受信されたエンジントラフィックを示します。これを使用してトラフィックスパイクを特定し、影響を受けたフローが複製、物理、または他のネットワークデータによって支配されているかどうかを判断します。
- マイクロプロファイラーは、ネットワークに敏感な遅延と同時フレーム時間の問題を区別するのに役立ちます。
キャプチャを比較する際には、シナリオ、プレイテストモード、観察方法を一貫して保つことが重要です。悪い接続下での単一の実行は症状を明らかにすることができますが、基準と影響を受けた実行を繰り返すことは、変更が役立ったかどうかを測定するのにより有用です。