はじめに
Unityでゲームやアプリケーションを開発していると、テキスト表示は避けて通れない要素の一つです。特に、多くの開発者が直面する課題の一つが、TextMeshProを使用して日本語を入力するとテキストが文字化けしてしまうという点です。
この記事では、Unity TextMeshProで文字化けせずに日本語入力する方法を初心者にもわかりやすく解説していきます。
TextMeshProとは?
TextMeshProは、Unityで利用できる高品質なテキストレンダリングシステムです。美しいテキスト表示が可能で、ゲーム開発者やアプリ開発者に広く使われています。
日本語入力の基本設定
TextMeshProで日本語を入力するためには、いくつかの基本設定が必要です。まず、UnityにTextMeshProのアセットをインストールしましょう。そして、TextMeshProのテキストオブジェクトを作成し、フォントを日本語対応のものに設定する必要があります。
TextMeshProのインストール
Unityのメニューバーから「Window」→「TextMeshPro」→「Import TMP Essential Resources」を選択します。これで必要なリソースがインポートされます。
テキストオブジェクトの作成
ヒエラルキーで右クリックし、「UI」→「Text – TextMeshPro」を選択して、新しいテキストオブジェクトを作成します。
フォントのダウンロード
TextMeshProで日本語を表示するためには、日本語をサポートするフォントが必要です。インターネット上で無料で提供されている日本語フォントをダウンロードし、Unityにインポートしましょう。
今回はGooglefontsを使用してみました。
種類もたくさんあって無料でダウンロードできるのでおすすめです。
お好きなフォントを選んでdownload familyをクリックするとダウンロードできます。
私はNoto_Sans_JPをダウンロードしてみました。
ダウンロードしたファイルを解凍するといくつかファイルが出てきます。それぞれ文字の太さが違います。
ダブルクリックするとフォントを見ることができます。
好みの太さのファイルをUnityのprojectビューにドラッグ&ドロップします。
私はNotoSansJP-Blackをドラッグ&ドロップしてみました。
FontAssetの作成
Window→TextMeshPro→FontAssetCreatorを選択
SourceFontFileに追加したフォントをドラッグ&ドロップしてAtrasResolutionの項目を両方8192にします。CharacterSetはCustomCharactersに変更します。
すると下のほうCustomCharacterListという入力欄が出てくるのでここに使用するテキストを入力する必要があります。テキストを配布してくれている方がいらっしゃるのでそちらのテキストを使わせていただきました。
ページに飛んだら右上のDownloadZIPからダウンロードすることができます。
ダウンロードしたテキストをダブルクリックするとテキストが表示されるのですべてを選択してコピーします。
コピーしたらCustomCharacterListにペーストします。
その後GenerateFontAtlasをクリックします。
するとFontAssetが作成されます。
結構時間がかかるので少し待つことになります。私の場合終わるまでに10分ぐらいかかった気がします。
完了したらSaveを押して保存しましょう。
TextMeshProの設定
Textmeshを作成してinspectorを開きます。
FontAssetのところを先ほどSaveしたFontAssetに変更します。
無事に日本語入力する事ができました。
まとめ
Unity TextMeshProで日本語を含む多言語テキストを扱うことは、少し準備が必要ですが、この記事を参考にすれば、初心者でも簡単に実装できます。品質の高いテキスト表示は、ゲームやアプリケーションのプロフェッショナルな印象を与えるために非常に重要です。この記事が、皆さんのUnityゲーム制作の一助となれば幸いです。