UE4
Blueprint
UnrealEngine

BlueprintのFormatTextノードの使い方 #UE4

More than 1 year has passed since last update.

UnrealEngine4(以下、UE4)では文字列型が3つあるが、ユーザーにUIなどで表示して見せる文字列はText型であるべきとされている。このText型の文字列の一部を置き換えたり加工したりするのに使えるのがFormatTextノードだ。

FT_normal.PNG

TL;DR

  • UE4でユーザーに見せる文字列はText型である必要がある
  • Text型の利点を損なうことなく、加工をするのに必要なのが FormatTextノード
  • 具体的には文字列内での変数展開ができる
  • String型を加工して使っちゃダメ

なんでText型を使うの?

  • どこに散らばっていてもgatherできる
    • localization dashboardのGatherで横断して収集できる
    • UMG内, LevelBP, ClassBP, WidgetBP, それらの各種パラメータなどバイナリのアセットファイルを横断して収集する
    • 本来は翻訳用だが、誤植修正や一括置換に使うこともできる
    • バイナリアセット内に含まれることが多いUE4では大きな利点
  • UMGで文字列表示は原則Text型のみ
    • むりやりキャストすることもできるが、前述の利点がない

FormatTextノードの使い方

文字列内で数字の引数を指定する

文字フォーム内の文字列に{0}といった記法で記入する。
記入後確定すると、数字の名前の付いた引数ピンがノードに追加される。

FT_number_params.PNG

引数ピンはWildcard型で以下の型が引数として許される。

  • 数値:Byte, Integer, Float
  • 文字列: Text
  • Enum: ETextGender

文字列内で名前つき引数を指定する

文字フォーム内の文字列に{param}といった記法で記入する。
記入後確定すると、そのparamという名前の引数の入力ピンが追加される。

FT_named_param.PNG

他の挙動も数字の引数と同じ。
マジックナンバーを防止する意味ではこちらのほうが良いかも。

Formatピンにノードをつないだ後に +Add Pin

まずは引数を含んだText文字列を用意する(Text型の変数のデフォルト値やMakeLiteralTextノードで)。これをFormatピンにつなぐ。

FT_addpin_01.PNG

すると+Add Pinボタンが増えるのでクリックして入力ピンを増やす。

FT_addpin_02.PNG

そのままでは0という名前の入力ピンで{0}以外は置き換えできないのでDetailsパネルで引数名(ピン名)を変更する。

FT_addpin_03.PNG

この方法は手間は多いが文字列の中身にかかわらずピンを増やすことができる。

まとめ

FT_Sample.PNG
FT_print_text.PNG

参考