【UE5】未だに変数のウォッチがよく分かってない話
UE5 にて Blueprint のデバッグをする際に役立つ機能の1つ、変数のウォッチが未だによく分かってないというお話です。
使い方は上記ドキュメントに記載されています。
変数のピンで右クリック> "この値をウォッチ" と選択すると
青色の虫眼鏡マークが付き、ブレークポイントで止まったタイミングで、ウォッチ対象にした変数の中身がリアルタイムで確認できるようになります。
DummyFunc1 が実行された時点では、Boolean型の変数(DummyFlag)に True がセットされています。
ここからステップ実行していくと、ブランチの分岐から True 側を通り、DummyFlag へ False をセットします。
そのタイミングで、ウォッチ対象の変数がリアルタイムで変更され、現在は False であることが確認できます。
これを構造体とか配列の変数をウォッチするとこんな感じで見えますが、ノードに被ったり、インデントなどがなく一列で表示されているため見にくくなってます。
また、ブレークポイントで止まってる間はノードをずらすことは出来ないようです。
そこで、メニューバー「デバッグ」>「ブループリントデバッガ」を開くと、かなり情報が見やすくなります。
赤文字で 表示したいBPを選ぶ と書いてますが、ブレークポイントで止まると、自動でそのブループリントの情報がブループリントデバッガのウインドウに表示されます。
更に情報を展開すると、ウォッチ対象の変数がここに表示され凄く見やすくなっていることが確認できます。凄い便利になりました。
さて、前置きが長くなりましたが未だによく分かっていないというのがここからで、ウォッチ対象の変数は Blueprint グラフ上ではリアルタイムで更新されるんですが、ブループリントデバッガのウインドウではリアルタイムに更新されません。
例えば画像のように、初期値を 0 に設定した Integer型の変数を Increment Int するだけの処理を何個か繋げ、この変数をウォッチに登録し、ステップ実行していったという図です。
5回目の Increment Int(白い矢印がある所) はまだ実行前なので変数の値は 4 になっており、リアルタイムでここは変化していきます。
ブループリントデバッガの方で確認した時の画像です。
上半分がセルフ(この Actor 内の変数一覧が見れる部分です)で、下半分がウォッチに登録した変数です。
同じ変数を見ているのに、セルフの方は 4 になっているんですが、ウォッチに登録した方は 0 のままでリアルタイムで更新されていません。
この状態でウォッチを解除してもう一度ウォッチに登録するか、ブループリントデバッガパネルを閉じて、メニューバー「デバッグ」>「ブループリントデバッガ」でもう一度開くと 4 に更新されました。
(リアルタイムではなく手動で更新してるような感じです)
この挙動は UE5.0.3 / UE5.1.1 / UE5.2.0 で同じ挙動を示していることを確認しました。
UE4.27.2 ではウォッチした値はリアルタイムで更新されてました。
UE4 はメニューバー「ウインドウ」>「デベロッパーツール」>「ブループリントデバッガ」に入ってるんですね。少し探しましたよ。
UE4 はウォッチタブというのがあるみたいでここで一覧表示されるようです。こっちの方が見やすい気もしますね。
フォーラムや reddit 等含め一応ネットで調べてみましたが、検索が下手くそすぎて UE5 のブループリントデバッガの情報がそこまで見当たらなかったです(デバッグにこういうのが使えますよみたいなものしか確認できず)
デバッグは皆さんやってそうですし、この挙動のままバージョンアップしてきてるならこれが仕様なのかもと思ったり。
セルフ内で見るとか、Blueprint グラフ上で確認すれば見れなくはないんですが、配列や構造体みたいなものを見ようとするとブループリントデバッガの方が見やすいのと、更にウォッチに登録してるものだけを個別に確認できると見やすいと思うんですけどね...
2023-05-18 追記:
Twitter にて UE5.03 / UE5.1.1 / UE5.2.0 で同じ症状が発生している方からコメントを頂けました><
本当にありがとうございます!
不具合っぽいですね...
バグ報告みたいなの出来ればやってみたいけど英語のフォームっぽいので翻訳したものそのままでも大丈夫なのかしら...