UE5/UE4 「Float」型の値を一定数記録(サンプリング)してグラフで表示する(Debug Float History、Add Float History Sample、Draw Debug Float History Location、Draw Debug Float History Transform)
「Float」型の値を一定数記録(サンプリング)してグラフで表示する方法です。
こちらのツイートを見かけたので試してみました。
「Debug Float History」という機能を使うことでグラフ表示ができるようです。
まずは値を格納するための「Debug Float History」型の変数を用意します。

とりあえず中身の設定はそのままで問題ないようです。
次に「Add Float History Sample」ノードを使ってグラフにするための値を格納していきます。

「Value」には格納したい「Float」型の値を指定します。
「Float History」には先ほど作成した「Debug Float History」型の変数を指定します。
この「Add Float History Sample」で追加した値をグラフで表示します。
「Debug Float History Location」というノードがあり、これでグラフ表示をすることができます。

「Float History」には先ほど作成した「Debug Float History」型の変数を指定します。
「Draw Location」には表示位置を3D空間座標で指定します。
「Draw Size」には表示するグラフの幅と高さを指定します。
「Draw Colot」には表示する色を指定します。
「Duration」には表示する時間を指定します。毎フレームであれば「0.0」で問題ありません。
これについては他のデバッグ表示と同じ扱いですね。
というわけでこんな感じでノードを組んでみました。

操作キャラクターの位置の高さを毎フレーム登録して、その高さの値がどう変化するかをグラフで表示する。
といった処理になります。
キャラクターの位置と重なりを避けるために「Debug Float History Location」の位置を少しずらし、
横に長く表示したいのでグラフの幅を高さよりも大きくしています。
結果はこんな感じになりました。
無事サンプリングした値がグラフとして表示されているようです。
ちなみに「Debug Float History Location」ノードの他に
「Debug Float History Transform」という「Transform」を直接指定するノードもあります。

それと、今回は「Add Float History Sample」の値から自動でグラフの最小値と最大値を算出して表示しています。
(なので途中から最大値が変化している)
これは「Debug Float History」変数の詳細で変更できるようなので、こちらを指定するのが良いと思います。

「Max Samples」は保持するサンプル数を指定します。
「Min Value」はグラフの最小値を指定します。
「Max Value」はグラフの最大値を指定します。
「Auto Adjust Min Max」はグラフの最小値と最大値を入力された値から自動で変化させるか。といったものになります。
処理負荷だったり、なにかの密度だったりをリアルタイムで確認するのに結構向いているのかなと思います。
こういったデバッグ機能が増えてくれるのは嬉しいですね。
こちらのツイートを見かけたので試してみました。
Folks know about Debug Sphere and Debug Text but do you know about Debug Float History? It automatically makes a nice graph of any float value and plots them on a graph for you! Just use Add Float History Sample and Draw Debug Float History to graph any float you want! #UETips pic.twitter.com/CZtAkvvHpJ
— Chris Murphy (@HighlySpammable) June 24, 2022
「Debug Float History」という機能を使うことでグラフ表示ができるようです。
まずは値を格納するための「Debug Float History」型の変数を用意します。

とりあえず中身の設定はそのままで問題ないようです。
次に「Add Float History Sample」ノードを使ってグラフにするための値を格納していきます。

「Value」には格納したい「Float」型の値を指定します。
「Float History」には先ほど作成した「Debug Float History」型の変数を指定します。
この「Add Float History Sample」で追加した値をグラフで表示します。
「Debug Float History Location」というノードがあり、これでグラフ表示をすることができます。

「Float History」には先ほど作成した「Debug Float History」型の変数を指定します。
「Draw Location」には表示位置を3D空間座標で指定します。
「Draw Size」には表示するグラフの幅と高さを指定します。
「Draw Colot」には表示する色を指定します。
「Duration」には表示する時間を指定します。毎フレームであれば「0.0」で問題ありません。
これについては他のデバッグ表示と同じ扱いですね。
というわけでこんな感じでノードを組んでみました。

操作キャラクターの位置の高さを毎フレーム登録して、その高さの値がどう変化するかをグラフで表示する。
といった処理になります。
キャラクターの位置と重なりを避けるために「Debug Float History Location」の位置を少しずらし、
横に長く表示したいのでグラフの幅を高さよりも大きくしています。
結果はこんな感じになりました。
無事サンプリングした値がグラフとして表示されているようです。
ちなみに「Debug Float History Location」ノードの他に
「Debug Float History Transform」という「Transform」を直接指定するノードもあります。

それと、今回は「Add Float History Sample」の値から自動でグラフの最小値と最大値を算出して表示しています。
(なので途中から最大値が変化している)
これは「Debug Float History」変数の詳細で変更できるようなので、こちらを指定するのが良いと思います。

「Max Samples」は保持するサンプル数を指定します。
「Min Value」はグラフの最小値を指定します。
「Max Value」はグラフの最大値を指定します。
「Auto Adjust Min Max」はグラフの最小値と最大値を入力された値から自動で変化させるか。といったものになります。
処理負荷だったり、なにかの密度だったりをリアルタイムで確認するのに結構向いているのかなと思います。
こういったデバッグ機能が増えてくれるのは嬉しいですね。
| UE5 | 10:00 | comments:0 | trackbacks:0 | TOP↑