ブループリントのデバッグ

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

Choose your operating system:

Windows

macOS

Linux

ブループリントのデバッグは、 Play In Editor と Simulate In Editor モードで実行中のゲームの一時停止が可能となる便利な機能で、ブレークポイントを利用してブループリントまたはレベル スクリプトの全てのグラフをステップスルーします。

デバッグ制御

Blueprint Debugger (ブループリント デバッガ) は、PIE および SIE セッション中のゲームの実行を制御します。 ゲームが実行されると ツールバー で制御ができるようになります。 デバッグされているブループリントのタイプとデバッグ セッションの現在の状態に応じて、異なるデバッグ制御が表示されます。 関係する場合、例えば ブレークポイント がヒットした場合のみ有効になる制御もあります。

debugging_editor.png

ブループリント エディタ の Window (ウィンドウ) モード内から開くことができる [Debug (デバッグ)] タブと ブループリント デバッガ でも、 SIE (Simulate in Editor) または PIE (Play in Editor) モードがアクティブの時にはコンテキスト依存のデバッグボタンが表示されます。

blueprint_debugger.png

ブレークポイント

ブレークポイント は、ブループリントのグラフノードに配置できるマーカーです。 PIE または SIE モード中、ブレークポイントを持つノードが実行される直前にゲームが一時停止され、ブループリント エディタのグラフビューにあるそのノードに移動します。 これにより、変数の値を観察し、ブループリント内の実行の流れを調べたりステップスルーしたりすることができます。 特定のブループリントのすべてのブレークポイントは [デバッグ] タブに表示され、選択するとブループリントのグラフに表示できます。 ノードにブレークポイントを配置するには、ノードを右クリックしてコンテキスト メニューから [Add Breakpoint (ブレークポイントを追加)] を選択します。そうすると、赤色の八角形がノードの左上の角に表示されます。 ブレークポイントは、ノードを右クリック、または [デバッグ] タブでブレークポイントのエントリを右クリックして [Remove Breakpoint (ブレークポイントを取り除く)] を選択すれば取り除くことができます。

ActiveBreakpoint.png

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

完全に削除せずに一時的にブレークポイントを無効にするには、ブループリントのノード自体、または [デバッグ] タブのブレークポイントのエントリを右クリックして、コンテキスト メニューから [Disable Breakpoint (ブレークポイントを無効にする)] を選択します。 無効にされたブレークポイントは、赤い八角形の線で表示されます。 無効なブレークポイントは実行されませんが、簡単に再有効化できます。 この方法は、ブレークポイントの削除と再作成を繰り返すよりも便利で、人的ミスも起こりにくくなります。

InactiveBreakpoint.png

このブレークポイントは無効になっており、現在は何も動作していませんが、必要に応じて簡単に再有効化できます。

無効化されたブレークポイントを有効化するには、ノードを右クリックして [Enable Breakpoint (ブレークポイントを有効にする)] を選ぶか、 [デバッグ] タブのブレークポイントの隣のアイコンをクリックしてください。 [デバッグ] タブでブレークポイントを 右クリック して [ブレークポイントを有効にする] を選択しても有効にできます。 デバッグ セッション中を含め、いつでもブレークポイントの作成、無効化、有効化、破棄が可能です。 ブレークポイントはプロジェクトの「.ini」ファイルに保存されるので、それらはエディタのセッションの間も持続します。

ブレークポイントが無効な場所に配置されていると、黄色になり「!」が表示されることがあります。 ブループリントをコンパイルすると問題が解決する場合があります。 それで解決しない場合は、ブレークポイント アイコンの上にマウスカーソルを置くと、警告内容が表示されます。

WarningBreakpoint.png

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

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

BreakingOnBreakpoint.png

このブレークポイントに到達したところで、実行を一時停止しています。

デバッグ タブとブループリント デバッガ

[デバッグ] タブはデザイナーが重要とみなした情報を、ブレークポイントとウォッチ値、および実行されたブループリントに属するすべてのノードのスタックのトレース (追跡) という形で表示します。 このパネルには、ブレークポイント使用時のゲームの実行をコントロールするための制御が表示されます。

ウォッチウィンドウ

ブループリント ウォッチウィンドウ を使用すると、複数のブループリントにまたがっても見たい変数やノードにアクセスできるので、デバッグ作業をスピードアップできます。 エディタで開いた、現在のコールスタックの一部であるすべてのブループリントからのデータは単一のリストに統合され、ブループリントの実行が一時停止されるたびに現在のデータが表示されます。 このリストを使用すると、変数や関数の出力を調べたり、ブループリント間の簡単な切り替えが可能です。 配列、セット、マップ、その他のデータ構造を拡張することができ、それらに含まれているデータのドリルダウン検索を素早く簡単に行うことができます。 また、「Node Name (ノード名)」列のエントリをクリックしてブループリント中の名前のあるノードに移動するか、「Object Name (オブジェクト名)」列のエントリを選択してその特定のオブジェクト インスタンスを選択することもできます。

コール スタック

デバッグ セッション中に使用可能な コール スタック は、ほとんどの C++ 開発環境にあるようなコール スタックと概念が似ています。 コール スタックは、現在スタックの最上部で実行されているブループリント関数を使用して、ブループリントとネイティブ (C++) コード間の実行の流れを表示します。

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

ActiveBreakpoint.png

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

ブレークポイントに達すると、コール スタックは現在動作中の関数を一覧表示します。先頭にある現在の関数から始めて呼び出し元の関数に向かって下に進みます。 つまり、各行のエントリには、そのすぐ下の行に指定されている関数によって呼び出された関数の名前が含まれています。 再帰的 (自己呼び出し) 関数の場合、同じ関数名が連続して複数回現れることがあります。

CallStack_FiveFactorial.png

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

CallStack.png

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

実行追跡

実行追跡 スタックは、直近に実行されたノードのリストを上部に表示します。

ブループリント デバッグ - 実行追跡スタック

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

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