ゲーム開発を試してみようと思い立ち、Unreal Engine 5をインストールして開発する過程で調べてみた部分を備忘録的に投稿します。今回は、TextRenderコンポーネントで別フォントを設定する方法です。
デフォルトでも上手く行かないTextRender
ビューポートのプレビューでも上手く表示できない「TextRender」コンポーネントですが、既定値で設定されるフォント以外では日本語以外でも正しく表示できたことがありません。(笑)
随分前からバグだと聞いていますがUnreal Engineが5.3となっていても、修正に力が入っていないようです。
「ひらがな」くらいなら何とか表示できる
設定を見る限り、フォントとは別にマテリアルの必要があって内部的に画像化されたフォントを切り取って表示しているようです。
なので、文字数が少ない英語圏であれば成立しそうな機能ですが、文字数が多い日本語ではチト無理がある気がしています。
ですが、以下の手順で日本語フォントをフォントをインポートしてマテリアルを作成したら、ひらがなくらいまでは表示できました。(漢字は文字化けします)
1.[コンテンツドロワー]の空いている場所を右クリックして表示されたポップアップメニューで[ユーザーインターフェイス|フォント]を選択します。
2. 追加された[フォント]の名前を “FT_Meiryo” に変更します。
3.[FT_Meiryo]を開いて[詳細]画面で[Font Cache Type]を[Offline]に変更します。
4.[フォントキャッシュタイプを本当に変更しますか?]画面で[はい]を選択します。
5. 表示された[フォント]画面で変更するフォントを選択します。
6. フォントが読み込まれます。
7.[詳細]画面で “Unicode Range” を検索して[Import Options|Unicode Range]に[3040-309F,30A0-30FF,4E00-9FFF]を設定します。
8.[FT_Meiryo]を閉じて[コンテンツドロワー]で右クリックして表示されたポップアップメニューで[再インポート]を選択します。
9. より多くのフォントが読み込まれます。
マテリアルを作成
フォントを画像化するためのマテリアルを作成します。
1.[コンテンツドロワー]の空いている場所を右クリックして表示されたポップアップメニューで[マテリアル|マテリアル]を選択します。
2. 追加された[マテリアル]の名前を “M_Meiryo” に変更します。
3.[詳細]画面で[マテリアル|Blend Mode]を[Masked]に変更します。
4.[イベント]画面の空いている場所で右クリックして表示された画面で “FontSample” を検索して[フォント|FontSample]を選択します。
5. [FontSample]ノードが追加されます。
6.[詳細]画面の[Font]の一覧で[FT_Meiryo]を検索して追加します。
7.[FontSample]ノードの一番下のピンを[M_Meiryo]ノードの[オパシティマスク]ピンに接続します。
ここまでの作業を保存します。
TextRenderのフォントを変更
「Meiryo」フォントをTextRenderコンポーネントに設定してみます。
1. ブループリントに追加した[TextRender]の[詳細]画面で[Font]一覧に表示されている[FT_Meiryo]に変更します。
2.[Text Material]の一覧で[M_Meiryo]に変更します。
やっぱり漢字は表示できない
「Meiryo」フォントに変更した結果ですが、やっぱり漢字は正しく表示できませんでした。
すこしカクカクしてますが「アルファベット」は表示できました。
「ひらがな」も何とか表示できています。
しかし「漢字」は今回の「Meiryo」フォントでは文字化けが発生してしまうようです。
まとめ
今回は、Unreal EngineのActor ブループリントなどで利用できる[TextRender]コンポーネントで別フォントに変更する手順について書きました。
「フォント」をインポートする他に「マテリアル」を作成する必要がありますが、アルファベットを利用するのであれば別フォントに変更ができました。
しかし「ひらがな」や「漢字」など2バイト文字を利用する場合には、文字化けする場合もあり、かなり制限されるようです。
Unreal Engineの関数で[TextRender]のフォントを変更したい人の参考になれば幸いです。
スポンサーリンク
最後までご覧いただき、ありがとうございます。