Version 4.24で追加されたText3D機能により、3DのタイポグラフィがUnreal Engine上で手軽に生成できるようになりました。テキストを変更したり押し出し量やベベルもパラメトリックに変更可能ですので、モーションタイポグラフィ的な映像にも活用が期待できます。このチュートリアルでは複数の単語をランダムに切り替えながら次々とタイポグラフィを出現させる方法を紹介します。

作例は少しだけロシア構成主義を意識して、シンメトリーでダイナミックな構図と印象的な赤と黒の表現を採用してみました。(チュートリアルにもテーマがあると単なる技術習得じゃない学びにつながるかなと思います)

フォントを追加する

Unreal Engineでは任意のフォントを使用することができます。方法としてはフォントファイル(TTFファイル)をインポートするだけですので、とても簡単です。ウェイトの異なるフォントをグループ化してフォントファミリーも定義できますのでグラフィックデザイン的なアプローチも可能となりそうですね。ちなみにこの作例ではGoogle FontsのMostserratというフォントを使用してみます。

プロジェクトに読み込まれたフォントはText3Dにはもちろんのこと、UMGにも使用可能ですのでUIとしても利用できます。日本語フォントも大丈夫ですが、現状のText3Dでは漢字などの複雑な文字を立体化する場合に形状が崩れてしまうようです。

Text3Dプラグインの追加

Text3Dは文字を立体化する機能ですが、プラグインとして提供されていますので、設定メニューから読み込みましょう。

  1. 設定メニュー
  2. プラグイン
  3. Text3Dで検索
  4. EnabledをONに
  5. Unreal Engineを再起動
Actorクラスの作成

Text3Dオブジェクトを制御するためのクラスを作成します。

  1. 新規作成
  2. ブループリントクラス
  3. Actorを選択して作成
  4. 名前を変更「BP_Text3D」とする
クラスにText3Dコンポーネントを追加

先ほど作成したクラス「BP_Text3D」を開きText3Dを追加します。Text3Dは任意の文字列を押し出して立体化します。ベベルの形状もコントロールでき、マテリアルも部分ごとに適用可能です。

  1. コンポーネントを追加からText3Dを追加
  2. テキスト内容(この文字が立体化される)
  3. 押し出し量(今回はかなり大きく押し出しています)
  4. ベベルの形状を調整
  5. 文字正面のマテリアル
  6. ベベルのマテリアル
  7. 押し出し側面のマテリアル
  8. 使用するフォント
  9. 文字揃え
変容可能なマテリアルを作成

今回の作例ではクラスをスポーンする際に、マテリアルをインスタンス化して色をランダム化しますので、マテリアルのベースカラーにConst3DVectorをつなぎ、それをパラメータ化しています。これで後からブループリントで色を変更することが可能となります。

  1. パラメーターに変換
クラスにテキスト配列変数を追加

複数の文字列を用意しておき、「BP_Text3D」をスポーンする際にランダムに切り替えることで立体化される形状を変化させてみましょう。今回はその文字列の準備のために、テキストの配列変数を作成します。

  1. 変数を作成
  2. 変数の型をTextの配列に変更
  3. コンパイルするとデフォルト値を設定可能になる
  4. 「+」ボタンでエレメントを追加
クラスのブループリントを構築

BP_Text3D内のブループリントを構築します。詳細はコメントとして記入したので確認してください。ここでは大まかな流れだけを開設しておきます。

  1. スポーンされると同時にマテリアルのランダム化
  2. テキストの配列変数から文字列をランダムに取得
  3. タイムラインを使用してアニメーション開始
  4. アニメーションが完了したら自らを破棄
レベルブループリントで一定時間ごとにスポーン

最後にレベルを構築します。照明や背景などをセットアップしたのち、レベルブループリントで「BP_Text3D」を一定時間ごとにスポーンし続けます。

  1. レベルを作成
  2. レベルの背景を構築
  3. レベルブループリントを開く
レベルブループリントの構築

ブループリントの詳細はコメントに記載しました。おおまかな処理の流れを紹介しておきます。

  1. 「Set Timer by Event」によって一転時間ごとにイベント発生
  2. ランダムな位置に「BP_Text3D」クラスをスポーン

Text3Dはタイポグラフィを多用する方にとっては、かなり活用しがいのある機能ではないでしょうか。文字の立体化は既存の3DCGツールでは定番の機能です。しかしUnreal Engineではこれまで実装されていなかったということは、ゲーム領域としてはあまり需要がない機能だったのかもしれません。

今後はこうした機能が普及してリアルタイムの3Dモーションタイポグラフィ表現が数多く生まれるような予感があります。まだ日本語フォントへの対応が不完全なところがあるようですので、今後のアップデートに期待しつつこのチュートリアルを締めくくります。

メニュー