パフォーマンスと帯域幅に関するヒント

アクタ レプリケーションのパフォーマンスおよび帯域幅を最適化するいくつかのヒント

Choose your operating system:

Windows

macOS

Linux

アクタのレプリケーションは時間を要する場合があります。エンジンはレプリケーション処理を出来るだけ効率よく行いますが、ユーザー側でこのジョブをより簡単に行うための留意点がいくつかあります。

レプリケーションを行うアクタの収集時に、サーバーは関連性、更新頻度、ドーマンシーなどいくつかの点をチェックします。パフォーマンスに影響を与えるために、このようなチェックを調整することができます。可能な限り処理の効率化を図るには、以下の順番で優先順位を付けるのがベストと考えられます。

  • レプリケーションをオフにする ( AActor::SetReplicates( false ) )

    • アクタをレプリケートしていない時に、このアクタがそもそもリスト上に無い場合など、レプリケートが不必要なアクタをオフ状態にすることで効率性が向上します。

  • NetUpdateFrequency 値を下げる

    • アクタ更新が少なければ少ないほど、更新に要する時間が少なくなります。この値に、出来る限り低い値を設定することをお勧めします。この値は、アクタがクライアントへ 1 秒間にレプリケートされる頻度を示します。

  • ドーマンシー

  • 関連性

  • NetClientTicksPerSecond

必要がある場合を除いて、プロパティのレプリケートには絶対にチェックをいれないでください。可能な場合は、既存のレプリケートプロパティからステートの派生を試みてください。

既存の量子化機能を利用してください。例えば `FVector_NetQuantize`クライアントへこのステートをレプリケートするために必要なサイズが大幅に削減できます。正しく使用すれば目立ったアーティファクトは発生しません。

FName は通常は圧縮されていないため、RPC へのパラメータとして使用する際は各コールに文字列を送信することに留意してください。この処理はオーバーヘッドが大きくなる可能性があります。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
閉じる