開発に欠かせないものといえばデバッグ!デバッグの基本といえばログ表示!
ということで、UE4におけるログ表示機能を紹介します。
UE4では様々な方法でログを出力可能ですが、
"Blueprint"でも、"C++"でも出力できます。
出力先は大きく分けて、"OutputLog"に出力するか"スクリーン上"に出力するかです。
Print String
OutputLogとスクリーン上どちらにも表示可能なノードです。
OutputLogタブが表示されていない場合は"Window"タブ → "Developer Tools" → "Output Log"から表示可能です。
ポピュラーなノードなのでパラメータ説明だけ。
パラメータ名 | 説明 |
---|---|
In String | ログ文 |
Print to Screen | スクリーン上に表示するか |
Print to Log | OutputLogに表示するか |
Text Color | 文字色 |
Duration | スクリーン上に表示する秒数 |
また、Text型版のPrintTextというノードもあります。こちら↓で紹介しました。
shuntaendo.hatenablog.com
UE_LOG
次は、UE_LOGというマクロです。C++からOutputlogのみにログ出力できます。
UE_LOG(LogTemp, Display, TEXT("ログです。")); UE_LOG(LogTemp, Warning, TEXT("危ないかも...")); UE_LOG(LogTemp, Error, TEXT("ダメです。"));
Category(LogTempとかLogWorld)のVerbosity(WarningとかError)によって、そのCategoryを使った時にどのVerbosityまでOutputlogに出力されるか決まっています。
PrintStringのScreen to LogもVerbosityを変更しています。
カテゴリ
カテゴリは自分で定義して独自のカテゴリを追加できます。
// 単一ファイル用カテゴリ // .cpp で定義 DEFINE_LOG_CATEGORY_STATIC(MyCategory, Warning, All);
.
// 複数ファイル用カテゴリ // .h で定義 DECLARE_LOG_CATEGORY_EXTERN(MyCategory, Warning, All); // .cpp で定義 DEFINE_LOG_CATEGORY(MyCategory);
.
Verbosity(ログのレベル)の種類
・Fatal
・Error
・Warning
・Display
・Log
・Verbose
・VeryVerbose
・All(実態はVeryVerbose)
Verbose 以下はコンソールには表示されず、ログファイルにのみ残ります。
AddOnScreenDebugMessage
最後にAddOnScreenDebugMessage関数です。UEngineから呼び出せる関数でC++からスクリーン上にログ出力することができ、自由度も高いです。
AddOnScreenDebugMessage(int32 Key, float TimeToDisplay, FColor DisplayColor, const FString& DebugMessage, bool bNewerOnTop, const FVector2D& TextScale)
.
パラメータ名 | 説明 |
---|---|
Key | -1以外を指定すると同じKeyが指定されたAddOnScreenDebugMessage関数が呼ばれると、表示古い方のログに上書きされます。 |
TimeToDisplay | スクリーン上に表示する秒数 |
DisplayColor | 文字色 |
DebugMessage | ログ文 |
bNewerOnTop | Trueで且つKeyが-1の時、一番上に表示されます。 |
TextScale | 文字の大きさ。荒くなりますが大きいログも出せます。 |
開発の手助けになれば幸いです。
UE Version : 4.17