次の方法で共有


デバッグに関する Mesh Visual Scripting のベスト プラクティス

編集時の診断

Unity エディターでは、Script Machine のエラー、潜在的な帯域幅やパフォーマンスのボトルネックに関する実行時のガイダンスを表示できます。現在編集しているのは、Unity エディターの [Inspector] パネルの下部にある [Mesh Visual Scripting Diagnostics] パネルです。

Diagnostics パネルでは、エラー、警告、または通知の上にマウス ポインターを置くと詳細な説明と主にヒントが表示されます。

______________

Content Performance Analyzer (CPA) を表示することで、環境全体で同じ診断をコンパイルできます。

  1. Unity メニュー バーで、[Mesh Toolkit]>、[Content Performance Analyzer] を選択します。
  2. CPA 内の [Run All] ボタンクリックします。

______________

Mesh Emulator でのランタイム診断

Unity エディターで環境をテスト実行する場合は、[Game] ウィンドウの右上隅にある [Perf Stats] チェックボックスをオンにして、環境のすべての側面にわたるリアルタイムの概要統計情報を表示します。

______________

右下隅の右端の列には、ビジュアル スクリプトのパフォーマンスに関する概要情報が表示され、フレームごとにミリ秒単位で指定されます。

  • VS User には、作成したビジュアル スクリプト フローの実行に費やされた時間が表示されます。Mesh で発生するオーバーヘッドは除きます。
  • VS Env は、Mesh Visual Scripting ランタイム環境で発生するオーバーヘッドを示します。
  • VS Net は、Mesh Visual Scripting ランタイムの下にある Mesh ネットワーク スタックで発生するオーバーヘッドを示し、共有状態の更新をディスパッチし、受信します。

環境で実行されている個々のビジュアル スクリプトの詳細を取得するには、[Game] ウィンドウの右上隅にある [Script Stats] チェック ボックスをオンにして、ビジュアル スクリプトの実行に関するリアルタイムランタイム統計を有効にすることができます。

______________

[Highest processing load] セクションには、最後の 1 秒以内に実行するのに最も時間がかかったスクリプト フローが一覧表示されます。フレームあたりの平均時間コストが表示されます。

  • このセクションに表示されるスクリプト フローの数とその合計時間コストは、可能な限り低くする必要があります。
  • 理想的には、環境がアイドル状態の場合、スクリプト フローがまったく実行されないようにする必要があります。

[Highest shared update load] セクションには、過去 1 秒以内に最も頻繁に更新された共有シーンのプロパティとスクリプト変数が一覧表示されます。 負荷が 100% の場合は、その秒のフレームごとにプロパティまたは変数が更新されたことを意味します。

  • 共有プロパティとスクリプト変数の更新の数と、このセクションの負荷の合計は、可能な限り少なくする必要があります。
  • 環境がアイドル状態の場合は、共有プロパティや変数をまったく更新しないことが理想的です。
  • このセクションに、クライアント間でネットワーク経由で同期する予定がなかったプロパティまたはスクリプト変数が表示されている場合は、ローカルにする Local Script Scope コンポーネントを追加することを検討してください。

中央の列の任意のゲーム オブジェクト名をクリックすると、[Hierarchy] パネル内の対応するゲーム オブジェクトに直接ジャンプできます。

状況を詳しく調べたい場合は、[Script Stats] パネルの他の部分をクリックするか、Shift キーを押しながら X キーを押して更新を一時的に停止できます。 更新を再開するには、もう一度クリックするか、Shift + X キーをもう一度押します。

Mesh でのランタイム診断

Mesh (Teams イベントなど) で環境を実行する場合は、Ctrl + Shift + F1 キーを押して Networking Info サイドバーをポップアップ表示できます。このサイドバーには、現在のセッションに関する技術に特化した情報が多数表示されます。 下にスクロールして、環境内で実行されているビジュアル スクリプトに関する詳細情報を確認します。

______________

Visual Scripting セクションの見出しのすぐ下にある last (number) seconds, (number) frames ステートメントは、次に示すカウンターの秒数とフレーム数を集計して表示します。 カウンターがリセットされる前に、最大 90 秒のデータが集計されます。 次の表は、共有に関する情報を示しています。

  • PropVarEvent 行は、それぞれ共有プロパティ、共有スクリプト変数、共有イベントを記述します。
  • Update 列は、ビジュアル スクリプトによってプロパティまたは変数が更新された頻度をカウントします。
  • Send 列と Bytes 列は、プロパティ、変数、またはイベントの更新がネットワーク経由で送信された頻度をカウントします。 この数は、レート制限や、冗長な更新プログラムがまったく送信されない可能性があるため、Update 数を下回る場合があります。
  • Recv 列と Bytes 列は、他のクライアントからネットワーク経由でプロパティ、変数、イベントの更新を受信した頻度をカウントします。
  • この表の Bytes 列は、すべてのネットワーク オーバーヘッドを考慮する必要がなく、実行間の比較にのみ有意義な方法で使用できます。 実際の帯域幅の使用は、はるかに高くなる可能性があります。

Most execution time テーブルには、すべてのビジュアル スクリプト フローの実行にかかった時間が一覧表示されます。 [すべて] ラベルが付いた強調表示された行には、現在表示されていない行を含むすべての行の累積データが表示されます。 [Show more rows…] をクリックすると、さらに多くの行が表示されます。

  • Count 列は、このスクリプト フローが実行された頻度をカウントします。
  • Mean 列には、このスクリプト フローのフレームあたりの平均時間コスト (ミリ秒単位) が表示されます。
  • Event 列には、スクリプト フローをトリガーしたイベント ノードの名前が付けられます。
  • Target 列には、スクリプト フローを実行した Script Machine の名前が付けられます。

Most frequent shared updatesMost frequent shared sends テーブルには、ビジュアル スクリプトによって最も頻繁に更新された共有プロパティと共有スクリプト変数、またはネットワーク経由でディスパッチされた更新プログラムが一覧表示されます。 [すべて] のラベルが付いた強調表示された行には、現在表示されていない行を含む、すべての行の累積データが表示されます。 [Show more rows…] をクリックすると、さらに多くの行が表示されます。

  • Count 列は、この共有プロパティまたは共有変数が更新された頻度、または更新がネットワーク経由でディスパッチされた頻度をそれぞれカウントします。
  • Name 列は、共有プロパティまたは共有変数に名前を付けます。
  • Target 列は、プロパティまたは変数をホストするコンポーネントに名前を付けます。

Ctrl + Shift + F1 キーをもう一度押すと、[Networking Info] パネルが拡大され、上の表の Target ゲーム オブジェクトの変換パス全体が表示されます。

パネルを閉じるには: Ctrl + Shift + F1 キーを 3 回押します。

次のステップ