fc2ブログ

凛(kagring)のUE5/UE4とゲーム制作と雑記ブログ

2016 年から UE4 / 2021年から UE5 を触り始めました。勉強したもののメモ用ブログです。ゲーム制作に関するメモや雑記とか色々あります。C++ での Qt、Unity もほんの少しあります。

2023年03月 | ARCHIVE-SELECT | 2023年05月

| PAGE-SELECT |

≫ EDIT

UE5/UE4 C++でデバッグ文字列(FString)をビューポート(Viewport)に表示する(UEngine::AddOnScreenDebugMessage)

C++でデバッグ文字列(FString)をビューポート(Viewport)に表示する方法です。

公式ドキュメントはこちら。

・FString
https://docs.unrealengine.com/4.27/ja/ProgrammingAndScripting/ProgrammingWithCPP/UnrealArchitecture/StringHandling/FString/

デバッグ文字列(FString)をビューポート(Viewport)に表示するには
「UEngine::AddOnScreenDebugMessage()」関数
を使います。

ドキュメントはこちら。

・UEngine::AddOnScreenDebugMessage
https://docs.unrealengine.com/4.27/en-US/API/Runtime/Engine/Engine/UEngine/AddOnScreenDebugMessage/1/

こんな感じで記述します。

#include "Engine/Engine.h"

// ビューポートに FString を表示
FString aFStringTest = FString::Printf(TEXT("Test = %02d, %.3f"), 1, 123.456f);
GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Red, aFStringTest);

第一引数の「uint64 Key」は同じ値の場合は重複表示を避けることができます、指定なしは「-1」のようです。
第二引数の「float TimeToDisplay」は表示時間(秒)を指定します。
第三引数の「FColor DisplayColor」は表示する色を指定します。
第四引数の「const FString & DebugMessage」は表示する文字列(FString)を指定します。

結果はこんな感じになります。
画面に文字列を表示000
ちょっとわかりづらいですが、ちゃんと画面に表示されています。

以下の第五引数と第六引数はデフォルト引数として指定しなくても問題ないようになっています。
第五引数の「bool bNewerOnTop」は新しい表示が上からになるかどうかを指定します。デフォルトは「true」になります。
第六引数の「const FVector2D & TextScale」は表示倍率を指定します。デフォルトは「1.0f,1.0f」となります。

上記二つの追加引数を指定するとこんな感じになります。

#include "Engine/Engine.h"

// ビューポートに FString を表示(第五、第六引数指定版を追加)
FString aFStringTest = FString::Printf(TEXT("Test = %02d, %.3f"), 1, 123.456f);
GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Red, aFStringTest);
FVector2D aScale(2.0f, 2.0f);
GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Red, aFStringTest, true, aScale);


結果はこんな感じになります。
画面に文字列を表示001
第六引数を指定した文字列がちゃんと拡大されて表示されています。

基本的にはこの処理自体はBPでの「PrintString」の「Print to Screen」のみ版といったもののようです。
PrintStringのKey000

C++からこの関数を使うとしたらデバッグ用途でしょうか。

| UE4 | 10:00 | comments:0 | trackbacks:0 | TOP↑

| PAGE-SELECT |