はじめに
StateTree デバッガ は、StateTree のランタイム動作を監視、記録し、デベロッパーが StateTree の潜在的な問題を理解、診断するのをサポートします。
システムは、ツリーでのアクティブな状態の視覚的な表現を提供することと状態、タスク、条件のランタイム値のライブ モニタリングを提供することという 2 つの主な目的を念頭に構築されました。
システムは、エディタ セッション (例:プレイ イン エディタ) とリモート セッション (例:スタンドアローン、クライアント、サーバー) のライブ デバッグを行います。さらに、ユーザーは記録したトレース ファイルを保存し読み込むことでディファード解析を実行できます。
StateTree デバッガは、Unreal Insights などの Unreal Engine の TraceService を使用し、トレースされたイベントの生成と解析を行います。システムは、トレース アナライザーとトレース プロバイダの上に構築されており、指定された StateTree アセットに関連する 1 つまたは複数のインスタンスの関連イベントを収集します。
このアプローチにより、システムは複数のエディタ、クライアント、専用サーバーの各プロセスを単一の処理で同時にデバッグすることができます。
必要条件
このガイドでは、「StateTree クイックスタート ガイド」で作成された StateTree を使用して、StateTree デバッガの使用方法を説明します。このドキュメントの例のとおりに行うには、まずクイックスタートを完了させてください。
クイックスタート ガイドを完了したら、[Play (プレイ)] を押して動作を確認します。
状態を有効または無効にする
State Tree 内で個別の特定の状態を有効にしたり無効にしたりできます。
-
StateTree アセット、ST_ShootingTarget を開きます。
-
[MoveAlongSpline] 状態を右クリックして [State Enabled (状態が有効)] の選択を解除します。または、状態を選択し、[Details (詳細)] パネルに移動します。[Debug Options (デバッグ オプション)] ボタンをクリックし、[State Enabled] の選択を解除します。
-
State Tree を [Compile (コンパイル)] して、[Save (保存)] しますこのように、ウィンドウで無効にされた状態が濃い色で可視化されます。
-
[Play (プレイ)] をクリックして結果を確認します。[MoveAlongSpline] 状態が無効になったため、ツリーは即時に [Idle (静止)] 状態から [Dead (死亡)] 状態になります。
タスクを有効または無効にする
状態内で個別のタスクを有効にしたり無効にしたりできます。
-
[MoveAlongSpline] 状態を有効にし、[Details] パネルに移動します。[STT_MoveAlongSpline] タスクの横の [Debug Options] ボタンをクリックし、[Task Enabled] の選択を解除します。
-
State Tree を [Compile (コンパイル)] して、[Save (保存)] しますこのように、無効にされたタスクが濃い色で可視化されます。
-
[Play] をクリックして結果を確認します。[MoveAlongSpline] 状態は有効ですが、[STT_MoveAlongSpline] は無効です。これにより、[MoveAlongSpline] 状態は評価されますが、アクティブなタスクがないため、ツリーは [Idle] 状態を返します。
条件デバッグオプション
テスト用に State Tree の条件チェックの結果を強制することができます。
-
この例では、[Idle] 状態を選択し、[Details (詳細)] パネルに移動します。 a. [Transitions (トランジション)] セクションを展開し、[On Tick Go to State Dead (ティックで死亡状態へ移動)] 構造を展開します。 b. 最後に、[Conditions (条件)] を展開し、HitCount と 5 の値の間の [Integer Compare (整数比較)] 条件を確認します。
-
[Conditions Debug (条件デバッグ)] ボタンをクリックし、[Force True (True を強制)] を選択します。これによって、この条件は評価されたときに常に true を返します。
-
[Play] をクリックして結果を確認します。[Idle] 状態が実行されると、[Transitions] は評価されます。この場合、Actor HitCount と 5 の間の整数比較は常に true を返すため、 [On Tick Go to State Dead] は True を返します。つまり、アクタが 6 回以上ヒットされている状態をシミュレーションしています。
ブレークポイント
ブレークポイントは、状態やタスクに入るまたは状態やタスクを終了するとき、およびトランジションを実行中に追加できます。
ブレークポイントはエディタ セッション中、一時的に保存されます。しかし、アセットが再読み込みされると無くなります。状態やタスクの無効化とは異なり、StateTree のコンパイルは必要ありません。
-
この例では、[MoveAlongSpline] 状態を右クリックし、[Break on Enter (入るときに中断)] を選択します。ツリーがこの状態に入ると実行が中断されることを意味する赤いアイコンが状態に付いたことに注目してください。
-
コンパイル して 保存 します。[Play] をクリックして結果をテストします。ご覧のとおり、実行は状態に入るとすぐに停止します。
-
タスク名の横の [Task Debug Options (タスク デバッグ オプション)] ボタンをクリックし、[Break on Enter] または [Break on Exit (終了時に中断)] を選択してブレークポイントを追加することもできます。
デバッガ タブ
[Debugger (デバッガ)] タブは、State Tree に関する詳細ランタイム情報を提供します。実行をトラックし、一時停止時に変数データを取得するためにも使用できます。
[Window (ウィンドウ)] > [Debugger] をクリックするとタブを開くことができます。
[Debugger] タブ インターフェースには以下のエリアがあります。
- (1) エディタ シミュレーション制御:これらのボタンはビューポートでのシミュレーションを制御します。シミュレーションを開始、一時停止、停止できます。
- (2) トレース セッション レコーダー:このボタンはあとで見直すためにビジュアル ロガーでのライブ セッションを記録します。このボタンを押すと、フレーム チャンネルと StateTreeDebug チャンネルを有効にしてトレースを開始します。
- (3) 解析制御:これらのボタンは記録したセッションの再生を制御します。トレース解析の開始と停止、セッションを 1 フレームずつ進める、または前のまたは次の変更されたフレームへのジャンプを行えます。
- (4) トレースと実行エリア:ドロップダウンから特定のトレースを選択できます。特定の記録された実行も選択できます。
- (5) タイムライン:タイムラインは利用可能な実行とそのアクティブな状態を表示します。タイムラインを手動でスクラブ再生して、特定の状態の情報を取得することができます。
- (6) [Details] パネル:このパネルは選択された実行のアクティブな状態の実行の詳細を表示します。グローバル タスク、エバリュエーター、タスク、トランジションなどの情報を表示します。状態で実行されたデータとロジックも表示します。
次の例では、[Play] ボタンをクリックして、プレイ セッションを開始し、最初の 実行 を記録しました。[Play (プレイ)] モードを停止したら、タイムラインをスクラブ再生し、記録された実行済みの状態の詳細を表示しました。
