アンリアる! C++入門編 ~対話形式で学ぶUnreal Engine~
BOOTHでUnreal Engine C++入門書を販売していますUnreal Engine上でC++を使って開発するために必要となる基礎知識を一冊の本にまとめた本です。 対話形式によるわかりやすい説明を目指しました。無料の試し読みも可能ですので、ぜひ読んでみてください!
[UE5] C++でPrintString関数を使う方法

※本記事の内容はUE4にも適用できます。

Unreal Engineのブループリント(以下、BP)のデバッグ作業などで、非常に便利なPrintString関数。
C++の実装作業においても便利ですが、C++を使い始めたばかりの人にとっては、呼び出し方がわからない場合があるかと思います。
本記事では、C++でPrintString関数を呼び出す方法を説明します。

C++でのPrintString関数の呼び出し方法

以下2つの手順で呼び出しが可能です。それぞれ説明していきます。

  1. UKismetSystemLibraryクラスのインクルード
  2. PrintString関数の呼び出し

1. UKismetSystemLibraryクラスのインクルード

PrintString関数は、UKismetSystemLibraryクラスに定義されています。
ソースファイルの一番上に、以下のインクルード文を記載します。

#include "Kismet/KismetSystemLibrary.h"

2. PrintString関数の呼び出し

直接文字列を出力する場合と、変数の値を出力する場合について説明します。

直接文字列を出力する場合

例として、下図のBPのPrintString関数と同じ処理をC++で実装します。

PrintString関数

C++では、呼び出したい場所に、以下のPrintString関数を記載します。 3つ目以降の引数は省略も可能です。

// 省略しない場合
UKismetSystemLibrary::PrintString(GEngine->GetWorld(), "Hello", true, true, FLinearColor(0.0f, 0.66f, 1.0f, 1.0f), 2.0f);

// 省略した場合
UKismetSystemLibrary::PrintString(GEngine->GetWorld(), "Hello");

なお、BPとC++の関数の入力(引数)の対応関係は以下のようになっています。

BPとC++の対応関係

変数の値を出力する場合

下図のBPのように、変数の値を出力したいことが多いと思います。

PrintString関数

C++では、以下のソースコードが上図と同じ処理となります。
FString::SanitizeFloat(Val)で、float型の変数Valを文字列(FString型)に変換しています。

UKismetSystemLibrary::PrintString(GEngine->GetWorld(), FString::SanitizeFloat(Val), true, true, FLinearColor(0.0f, 0.66f, 1.0f, 1.0f), 2.0f);

文字列への主な変換は、以下のとおりです(変換元の変数名はValとしています)。

変換元の型 文字列への変換
float FString::SanitizeFloat(Val)
int FString::FromInt(Val)
FVector Val.ToString()

その他の型からの変換は、以下の公式ドキュメントにまとめられていますので、気になる方はご参照ください。

3. サンプル

1, 2項で示した方法による、PrintString関数の使用例は以下のとおりです。
float型の入力A, Bを足した結果を画面上に表示する例です。

#include "Hoge.h"
#include "Kismet/KismetSystemLibrary.h"    // UKismetSystemLibraryクラスが定義されたヘッダファイルのインクルード

void UHoge::Func(float A, float B)
{
    float Out = A + B;
    
    // PrintString関数の呼び出し
    UKismetSystemLibrary::PrintString(GEngine->GetWorld(), FString::SanitizeFloat(Out), true, true, FLinearColor(0.0f, 0.66f, 1.0f, 1.0f), 2.0f);
}

以上が、C++でPrintString関数を呼び出す方法です。

【宣伝】
Colory Gamesでは、Unreal Engine C++の入門書をBoothで販売しています。
対話形式でわかりやすく説明しています。

PrintString関数