👻

新しくなったVisual StudioからのBP経由のコールスタック確認

に公開

Visual Studio 2022 17.14 で UE の Blueprint がコールスタックで見やすくなったらしいのでどんなもんか試してみた

元記事 Dev Blog

VS2022 17.14 UE5.5.4 で作成したテストプロジェクトでテスト

2025.05.21現在でのテスト
vc-ue-extensionsの導入方法は公式githubを参照

簡易導入メモ

UEプロジェクトのルートフォルダにPluginsフォルダを作ってその中にVisualStudioToolsを作成
その中にクローンしたリポジトリの.git以外のファイルをコピーして.slnを再作成、ビルドする

ProjectRoot
    └ Plugins
        └ VisualStudioTools
            └ azure-pipelines
            └ Binaries
            └ Config
            └ Docs
                ・
                ・
                ・
                ・
            └ VisualStudioTools.uplugin

テスト方法

適当にC++でアクターを作成して public の適当関数, private で変数を作成

C++

ヘッダ

ソース

ソース側にはブレークポイントを設定しておく

UEエディタでのレベル、アクター追加

C++で作ったアクターを継承したBPと配置用のパーシスタンとレベルを作成

パーシスタンとレベルを開いて作ったアクターをドラッグアンドドロップで配置

BP

パーシスタンとレベルのBPでアクターの関数呼び出しを作っておく

アクターのBPに処理を追加。BeginPlay に入力受付処理と適当関数の呼び出しを追記、1を押したときにも適当関数を呼び出せるようにしておく

実行

実行するとアクター生成時のBeginPlayからの適当関数の呼び出しが確認できる
呼び出し先の関数がBP名::関数名(画像上側の赤枠)として
さらにその呼び出し元も確認できる(画像下側赤枠)
NewBlueprint::Event BeginPlay から NewBlueprint::GetTestFlag が呼び出されているのがわかる

処理を進めると
画像上側は変わらず NewBlueprint::GetTestFlag になってるが呼び出し元が PL_StackTraceTest::Event BeginPlay からになっている(画像下側赤枠)

さらに処理を進めてBPで設定したキーボードの1を押すと下記のようなコールスタックが確認できる

NewBlueprintの1のノードからの呼び出しだということがわかる

感想

今まではコードから呼び出し元BP名の特定はできたものの、BP上のどこのノードから呼び出されたのかはわからなかった(はず)
BP上で複数箇所から同じ関数が呼び出されていてもどこからの呼び出しかを特定するにはBP側でブレークポイントを貼らないと特定ができなかったけど、今回の機能で一目でどのBPのどのノードからの呼び出しかがわかってとっても便利になってる!!

Discussion