ブループリント デバッガ

グラフおよび変数の値を調べるためにブレークポイントを使用して実行を一時停止します。

ブループリント デバッガを使用すると、Play-In-Editor(PIE) または Simulate-In-Editor モード中にプロジェクトの実行を一時停止することができます。一時停止したら、ブレークポイント を使用して、任意のブループリントまたはレベル ブループリントのグラフをステップ実行することができます。

デバッグ コントロール

プロジェクトの実行中は、ブループリント デバッガのコントロールが ツールバー で使用可能になります。

デバッグを行っているブループリントのタイプとデバッグ セッションの現在の状態に応じて、異なるデバッグ コントロールが表示されます。ブレークポイントに達した場合など、該当する場合にのみ使用可能になるコントロールもあります。

blueprint_debugger.png

[Blueprint Debugger (ブループリント デバッガ)] ウィンドウは、[Tools (ツール)] メニューまたはブループリント エディタの [Debug (デバッグ)] メニューで使用できます。このウィンドウでは、PIE モードまたは SIE モードが有効なときにコンテキスト依存のデバッグ ボタンが表示されます。

ブレークポイント

ブレークポイント は、ブループリントのグラフノードに配置できるマーカーです。

PIE または SIE モード中にアクティブなブレークポイントが設定されたノードが実行される直前に、シミュレーションが一時停止され、ブループリント エディタのグラフ ビューにあるそのノードに移動します。一時停止されると、変数の値を確認し、ブループリント内の実行フローをステップ実行することができます。

[Blueprint Debugger] ウィンドウにはブループリントのすべてのブレークポイントが表示されています。また、ブレークポイントを選択すると、ブループリントのグラフで確認できます。

ノードにブレークポイントを配置するには、ノードを右クリックしてコンテキスト メニューから [Add Breakpoint (ブレークポイントを追加)] を選択します。ブレークポイントが配置されると、赤色の八角形がノードの左上に表示されます。ブレークポイントを削除するには、ノードを右クリックするか、またはデバッガ ウィンドウでブレークポイントのエントリを右クリックして [Remove Breakpoint (ブレークポイントを取り除く)] を選択します。

ActiveBreakpoint.png

このブレークポイントにより、Print ノードが実行される直前にゲームが中断されます。

完全に削除するのではなく、一時的にブレークポイントを無効にするには、ブループリントのノード自体、または [Debugger] ウィンドウのブレークポイントのエントリを右クリックして、コンテキスト メニューから [Disable Breakpoint (ブレークポイントを無効にする)] を選択します。

無効になったブレークポイントは、赤い八角形の外枠として表示されます。無効になったブレークポイントは、再有効されるまで実行されません。ブレークポイントの無効化は、ブレークポイントの削除と再作成を繰り返す場合と比較して、利便性が高く、人的ミスの発生も削減させることができます。

InactiveBreakpoint.png

このブレークポイントは無効化されており、現在は実行されませんが、必要に応じて再有効化することができます。

無効化されたブレークポイントを有効化するには、ノードを 右クリック して、[Enable Breakpoint (ブレークポイントを有効にする)] を選択するか、[Debugger] ウィンドウのブレークポイントの隣の八角形のアイコンをクリックします。また、これを実行するには、[Debugger (デバッガ)] ウィンドウでブレークポイントを 右クリック して、[Enable Breakpoint (ブレークポイントを有効にする)] を選択します。

ブレークポイントは、デバッグ セッション中を含め、いつでも作成、無効化、有効化、削除することができます。ブレークポイントはプロジェクトの .ini ファイルに保存されるため、エディタのセッションの間も保持されます。ただし、プロジェクトの他のデベロッパーのために複製されることはありません。

ブレークポイントが無効な場所に配置されていると、黄色の感嘆符のアイコンが表示されます。

ブループリントをコンパイルすると問題が解決する場合もありますが、解決しない場合は、ブレークポイント アイコンにカーソルを重ねると警告メッセージが表示されます。

WarningBreakpoint.png

このブレークポイントは無効であるため、このブレークポイントに達することはありません。場合によっては、ブループリントを再コンパイルするとこの問題を解決できます。

ブレークポイントで実行を一時停止すると、エディタがノードをハイライトし、そのノード上に大きな赤い矢印が配置されます。

BreakingOnBreakpoint.png

このブレークポイントにちょうど到達し、実行が一時停止されています。

ウォッチ

ウォッチ は、デバッグ セッションで確認できるように、ブループリント ノード ピンの値を追跡します。

ウォッチされているピンでは、グラフ内のそのノードの前回の実行時に割り当てられた値を保持します。

ピンのウォッチを開始するには、ブループリント グラフでピンの名前を右クリックし、コンテキスト メニューで [Watch this value (この値をウォッチ)] を選択します。すでにウォッチしているピンでは、コンテキスト メニューに [Watch this value] ではなく、[Stop watching this value (この値のウォッチを停止)] が表示されます。

Watchpin.png

ブレークポイントで停止しているときに、ピンの上にカーソルを重ねると、ピンをウォッチしているときにデバッガで確認できる内容とまったく同じような、直近のデバッグ情報を含むインタラクティブなツールチップが表示されます。

ノードがまだ実行されていないピンは、表示できるデバッグ情報がないため、データ値ではなく、その事実を示すメッセージが表示されます。

これは、ピンの値が、ノードがその基盤となるコードを少なくとも 1 回実行したときにのみ更新されるためです。

ブループリントの変数ノードでも、変数の値を取得するためにはコードを実行する必要があります。また、ブループリントの変数ノードは他のノードがそのノードの出力値へのアクセスを試行する場合に限り、コードを実行します。

ブループリント デバッガ

[Blueprint Debugger] ウィンドウには、ブレークポイント、ウォッチポイント、および実行トレース スタックが表示されます。

このウィンドウには、ブレークポイントを使用する際にコードの停止、再開、ステップ実行に使用できる実行コントロールもあります。

タブを使用すると、完全な実行コール スタックとブレークポイント、ウォッチ、特定のブループリント インスタンスのコール スタック情報を切り替えることができます。

(k2_debug_exectrace.png)

Data Flow (データフロー) タブ

[Data Flow (データ フロー)] タブでは、ウォッチするデータをすべて表示することで、デバッグを迅速に行うことができます。

このタブでは、選択したブループリント クラスのすべてのインスタンスをリストするオブジェクト フィルタリングをサポートしており、ブループリントのあらゆるプロパティを調べることができます。

エディタで開いており、現在のコール スタックの一部であるブループリント クラスをウォッチすることができます。

実行が一時停止すると、現在のデータが入力された統合コール スタックを表示できます。

統合コール スタックからブループリント間を移動して、プロパティ値やノード出力を調べることができます。

このビューは、配列、セット、マップ、およびその他のデータ構造の拡張に対応しており、これらが含むあらゆるデータを効率的に確認する手段を提供します。

コール スタック

ブループリントのデバッグ セッション中に使用可能な コール スタック は、ほとんどの C++ 開発環境にあるようなコール スタックと概念上類似しています。

コール スタックは、ブループリント ビジュアル スクリプティング関数とネイティブ (C++) コード関数の間の実行フローを表示します。現在実行されているブループリント ビジュアル スクリプティング関数は、スタックの一番上にリストされます。

ブループリント マクロはコール スタックに表示されません。代わりに、ブループリント マクロの呼び出し元の関数の一部として表示されます。

ActiveBreakpoint.png

上記のブループリント関数は、階乗計算を再帰的に実行します。関数の最後にブレークポイントが配置されています。

ブレークポイントに達すると、コール スタックは現在実行されている関数を一覧表示します。一番上にある現在の関数から始めて呼び出し元の関数に向かって下に進みます。

つまり、各行のエントリには、そのすぐ下の行にリストされている関数によって呼び出された関数の名前が含まれています。再帰的 (自己呼び出し) 関数の場合、同じ関数名がスタックで複数回現れることがあります。

CallStack_FiveFactorial.png

このコール スタックは、上に示した階乗関数へ 5 回再帰呼び出しを行っています。この関数は元々アクタのメインのブループリント グラフから呼び出されています。つまり、ネイティブ (C++) コードから呼び出された BeginPlay イベントによってトリガーされています。

CallStack.png

コール スタックを表示 (または非表示) にするには、[Developer Tools (デベロッパー ツール)] サブメニューの [Window (ウィンドウ)] ドロップダウンから [Call Stack (コール スタック)] を選択します。

実行追跡

実行追跡 スタックは、実行済みのノードのリストで、前回実行されたノードが一番上にリストされています。

Blueprint Debugging - Execution Trace Stack

このリストは、デバッグ中にグラフをステップスルーすると更新されます。

このページは Unreal Engine の前のバージョン用です。現在リリースされている Unreal Engine 5.2 に対して更新は行われていません。
Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル