Choose your operating system:
Windows
macOS
Linux
ブループリントのデバッグは、 Play In Editor と Simulate In Editor モードで実行中のゲームの一時停止が可能となる便利な機能で、ブレークポイントを利用してブループリントまたはレベル スクリプトの全てのグラフをステップスルーします。
デバッグ制御
Blueprint Debugger (ブループリント デバッガ) は、PIE および SIE セッション中のゲームの実行を制御します。 ゲームが実行されると ツールバー で制御ができるようになります。 デバッグされているブループリントのタイプとデバッグ セッションの現在の状態に応じて、異なるデバッグ制御が表示されます。 関係する場合、例えば ブレークポイント がヒットした場合のみ有効になる制御もあります。
ブレークポイント
ブレークポイント は、ブループリントのグラフノードに配置できるマーカーです。 PIE または SIE モード中、ブレークポイントを持つノードが実行される直前にゲームが一時停止され、ブループリント エディタのグラフビューにあるそのノードに移動します。 これにより、変数の値を観察し、ブループリント内の実行の流れを調べたりステップスルーしたりすることができます。 特定のブループリントのすべてのブレークポイントは [デバッグ] タブに表示され、選択するとブループリントのグラフに表示できます。 ノードにブレークポイントを配置するには、ノードを右クリックしてコンテキスト メニューから [Add Breakpoint (ブレークポイントを追加)] を選択します。そうすると、赤色の八角形がノードの左上の角に表示されます。 ブレークポイントは、ノードを右クリック、または [デバッグ] タブでブレークポイントのエントリを右クリックして [Remove Breakpoint (ブレークポイントを取り除く)] を選択すれば取り除くことができます。
完全に削除せずに一時的にブレークポイントを無効にするには、ブループリントのノード自体、または [デバッグ] タブのブレークポイントのエントリを右クリックして、コンテキスト メニューから [Disable Breakpoint (ブレークポイントを無効にする)] を選択します。 無効にされたブレークポイントは、赤い八角形の線で表示されます。 無効なブレークポイントは実行されませんが、簡単に再有効化できます。 この方法は、ブレークポイントの削除と再作成を繰り返すよりも便利で、人的ミスも起こりにくくなります。
無効化されたブレークポイントを有効化するには、ノードを右クリックして [Enable Breakpoint (ブレークポイントを有効にする)] を選ぶか、 [デバッグ] タブのブレークポイントの隣のアイコンをクリックしてください。 [デバッグ] タブでブレークポイントを 右クリック して [ブレークポイントを有効にする] を選択しても有効にできます。 デバッグ セッション中を含め、いつでもブレークポイントの作成、無効化、有効化、破棄が可能です。 ブレークポイントはプロジェクトの「.ini」ファイルに保存されるので、それらはエディタのセッションの間も持続します。
ブレークポイントが無効な場所に配置されていると、黄色になり「!」が表示されることがあります。 ブループリントをコンパイルすると問題が解決する場合があります。 それで解決しない場合は、ブレークポイント アイコンの上にマウスカーソルを置くと、警告内容が表示されます。
ブレークポイントで実行を一時停止すると、エディタがノードをハイライトし、そのノードにフォーカスを当てます。そして、そのノード上に大きな赤い矢印を配置します。
デバッグ タブとブループリント デバッガ
[デバッグ] タブはデザイナーが重要とみなした情報を、ブレークポイントとウォッチ値、および実行されたブループリントに属するすべてのノードのスタックのトレース (追跡) という形で表示します。 このパネルには、ブレークポイント使用時のゲームの実行をコントロールするための制御が表示されます。
ウォッチウィンドウ
ブループリント ウォッチウィンドウ を使用すると、複数のブループリントにまたがっても見たい変数やノードにアクセスできるので、デバッグ作業をスピードアップできます。 エディタで開いた、現在のコールスタックの一部であるすべてのブループリントからのデータは単一のリストに統合され、ブループリントの実行が一時停止されるたびに現在のデータが表示されます。 このリストを使用すると、変数や関数の出力を調べたり、ブループリント間の簡単な切り替えが可能です。 配列、セット、マップ、その他のデータ構造を拡張することができ、それらに含まれているデータのドリルダウン検索を素早く簡単に行うことができます。 また、「Node Name (ノード名)」列のエントリをクリックしてブループリント中の名前のあるノードに移動するか、「Object Name (オブジェクト名)」列のエントリを選択してその特定のオブジェクト インスタンスを選択することもできます。
コール スタック
デバッグ セッション中に使用可能な コール スタック は、ほとんどの C++ 開発環境にあるようなコール スタックと概念が似ています。 コール スタックは、現在スタックの最上部で実行されているブループリント関数を使用して、ブループリントとネイティブ (C++) コード間の実行の流れを表示します。
ブループリント マクロはコール スタックに表示されません。 代わりに、ブループリント マクロはそれを呼び出したブループリント関数の一部として表示されます。
ブレークポイントに達すると、コール スタックは現在動作中の関数を一覧表示します。先頭にある現在の関数から始めて呼び出し元の関数に向かって下に進みます。 つまり、各行のエントリには、そのすぐ下の行に指定されている関数によって呼び出された関数の名前が含まれています。 再帰的 (自己呼び出し) 関数の場合、同じ関数名が連続して複数回現れることがあります。
実行追跡
実行追跡 スタックは、直近に実行されたノードのリストを上部に表示します。
このリストは、デバッグ中にグラフをステップスルーすると更新されます。