【Unreal C++】④Log【UE4】
OutputLogへの出力
「ウィンドウ→デベロッパーツール→アウトプットログ」でウィンドウを出せます。
UE_LOG
UE_LOG(CategoryName, Verbosity, Message);
パラメータ | 説明 |
CategoryName | カテゴリ名(カテゴリを自作することも可能、デフォルトはLogTemp) |
Verbosity | ログレベル(種類) |
Message | メッセージ |
「CategoryName」の自作方法
①ヘッダファイルでDECLARE_LOG_CATEGORY_EXTERN マクロを用いてカテゴリを宣言
DECLARE_LOG_CATEGORY_EXTERN(NewCategoryName, Log, All);
第1引数はカテゴリ名、第2引数はデフォルトのVerbosity、第3引数はコンパイル時で有効化するVerbosityです。
「Verbosity」の種類
Verbosity | ログレベル | 色 | 備考 |
Fatal | 致命的なエラー | ログ出力とともにクラッシュ。 | |
Error | エラー | 赤 | |
Warning | 警告 | 黄 | |
Display | ログ(詳細度:最低) | 灰色 | コンソールとログファイルに出力 |
Log | ログ(詳細度:低) | 灰色 | ログファイルに出力、アウトプットログに出力可 |
Verbose | ログ(詳細度:高) | 灰色 | コンソールとログファイルに出力 |
VeryVerbose | ログ(詳細度:最高) | 灰色 | コンソールとログファイルに出力 |
Message
文字列の他にフォーマット指定子(%d、%f)などを用いて変数を出力することが可能です。
その際は第4引数に変数を追加します。
Logコマンド
プレイ中に「@」キー(デフォルト)やOutputLogの「Enter Console command」の部分に以下のコマンドを打ち込むことでログカテゴリのVerbosity を変更することが出来ます。
log CategoryName Verbosity
また、以下のコマンドで各カテゴリのVerbosity の設定を確認出来ます。
log list
画面への出力
AddOnScreenDebugMessage
BPでいうPrintStringです。
GEngine->AddOnScreenDebugMessage(Key, TimeToDisplay, Color, Message);
パラメータ | 型 | 説明 |
Key | int | 同じメッセージが複数回追加されないようにするユニークなキー。一時的なものには-1 |
TimeToDisplay | float | 表示する秒数 |
Color | FColor | テキストを表示する色 |
Message | FString | 表示する文字 |
追記(2018.1.19)
HMDを被った状態でPrintStringによって表示された文字列を確認しようとすると、確認しづらい箇所に表示されるため位置を変更したかったのですが、ver4.18現在、PrintStringやAddOnScreenDebugMessageの表示位置は左上から変更できないようです。
OutputLogにも残るのでそちらを確認するか、どうしても別の位置に表示させたい場合にはTextRenderやUMGを用いて空間上に表示させるしかないようです。
追記(2018.1.21)
AddOnScreenDebugMessageの第4引数(Message)はFString型なので、他の型からFString型へ変換する必要があります。
変換元の型 | 変換元の変数 | 変換 |
int | intValue | FString::FromInt(intValue); |
float | floatValue | FString::SanitizeFloat(floatValue); |
FVector | VectorValue | VectorValue.ToString(); |
FVector2D | Vector2DValue | Vector2DValue.ToString(); |
FRotator | RotatorValue | RotatorValue.ToString(); |
FLinearColor | LinearColorValue | LinearColorValue.ToString(); |