2019年6月6日木曜日

様々なバージョンの TextMesh Pro でフォントを作成する手順

最近、Unity で作成されたゲームのフォントが TextMesh Pro で作成されたSDFフォントが増えてきています。しかし、TextMesh Pro のバージョンにより座標情報のファイルフォーマットが異なり、日本語化を難しくしています。

そこで、TextMesh Pro の様々なバージョンのSDFフォントを作成する手順をメモとして残しておきます。このメモでは、Unity hub と Unity 2019 がすでにインストールされた環境での手順となります。

使用するバージョンは次のとおりです。
  • Unity Hub 2.0.1
  • Unity 2019 1.5f1

基本的には、以前投稿した記事「Pillars of Eternity 2 で日本語が表示できない・・・その2」に、TextMesh Pro のバージョン変更手順を追加したものです。



Unity プロジェクトの作成


Unity Hub を起動し、新規作成ボタンを押します。


Unity のバージョンを選択します。今回は 2019.1.5f1。


Unity のプロジェクトを作成するフォルダーとプロジェクト名を入れ、テンプレートは3Dを選択します。



TextMesh Proのバージョンの変更


メニューの [Window]-[Package Manager] でパッケージマネージャーを開きます。


TextMesh Pro の項目を選択し、"See all versions" をクリックします。


選択可能なバージョン一覧が表示されますので、任意のバージョンを選択します。今回は、"1.4.0" を選択しました。そして、右下にあるボタン "Update to 1.4.0" ボタンを押します。


しばらくすると、TextMesh Pro の項目が選択したバージョンに変更されますので、このウィンドウを ☒ で閉じます。


メニューの [Window]-[TextMesh Pro]-[Import TMP Essential Resources] をクリックします。


インポート確認画面が表示されますので、右下の "Import" ボタンを押します。


これで、使用したいバージョンの TextMesh Pro の準備ができました。



フォント作成のためのアセットの準備


メニューの [Assets]-[Import New Asset...] をクリックします。


使用したい日本語フォントを選択します。今回は、予めダウンロードしておいた「M+ FONTS | JAPANESE」を使用しました。フォントは自分の好みのものを使用してください。


フォントに含めたい文字を指定するためのファイルを選択します。今回はサンプルとして512文字が格納されたファイルを指定しました。このファイルは、TextMesh Pro 作成確認用サンプルファイル にあります。一般的に使用する日本語すべてを登録したい場合は、ゲームなどで使用する日本語の文字一覧(7,038文字) を使用しても良いでしょう。



SDFフォントの作成


これで使用するアセットの準備ができたので、SDFフォントを作成します。
メニューの [Window]-[TextMesh Pro]-[Font Asset Creator] をクリックし、"Font Asset Creator" 画面を開きます。


この画面で必要事項を設定し、"Generate Font Atlas" ボタンを押す。文字数が多い場合は十数分かかることがあります。

設定内容:

  1. Source Font File:  mplus-2p-regular(先程インポートしたフォント)
  2. Sampling Point Size: Custom 34 (登録文字数により調整が必要)
  3. Padding: 5  (デフォルトのまま)
  4. Packing Method: Fast  (デフォルトのまま)
  5. Atlas Resolution: 1024x1024 (登録文字数により調整が必要)
  6. Character Set: Character from File (登録する文字の種類はファイルで指定する)
  7. Charcter File: PoE2JpFont_mp2pr... (先程インポートしたテキストファイル)
  8. Render Mode: SDFAA (TextMesh Pro のバージョンが 1.4 以上の場合は SDFAA、それ以前の場合は、Distance Field 16 を選択)
  9. Get Kerning Pair: チェックなし


処理の結果が左下の枠内に表示されます。エラーが無いことを確認し、"Save"ボタンを押します。


作成したフォントを保存するため、"保存" ボタンを押します。



SDFフォントを使用したテキストの表示



作成したフォントを使用してテキストを表示します。メニューの [GameObject]-[3D Object]-[Text - TextMeshPro] をクリックします。


画面右にある、TextMesh Pro(Script)の Text 欄 に表示したいテキストを入力し、"Main Settings" の "Font Asset" の丸い部分をクリックします。


先程インポートしたSDFフォントを選択し、この画面を閉じます。


SDFフォントが選択されたことを確認します(赤枠部分)。



ゲームのビルド


これで、SDFフォントの作成と表示するテキストも設定しましたので、ゲームをビルドします。

メニューの [File]-[Build Settings...] をクリックし、"Build Settings" 画面を開きます。


次の画面のように設定し、"Build" ボタンを押します。


保存場所を聞かれるので、"フォルダーの選択" ボタンを押します。


ゲーム用のexeの作成が終了したので、メニューの [File]-[Save] でプロジェクトを保存後、Unity を終了します。


今回はセーブしたフォルダーに、"1.4.0.exe" が作成されました。ダブルクリックして実行します。


この様な画面が表示されれば、SDFフォントの確認はOKです。


以上です。

0 件のコメント:

コメントを投稿

Disco Elysium のローカライズが困難になったのかも

文学的なゲーム Disco Elysium のローカライズ方法について調べています。先月末に The Final Cut 版がリリースされましたが、これにより日本語化がかなり難しくなったようです。理由は次の二点です。 IL2CPP 化によりゲームの解析が困難 Unity 202...