Selected U3D Japanese Font

※Unity3.5の登場により、TrueTypeインポーターが自由な漢字を元にテクスチャを作成することができるようになりました。このフォントはそれより以前のバージョンの対応のために、テクスチャサイズと文字サイズのバランスをとることが主な目的として存在しました。現時点でその役目は終え、これからはオリジナルM+OUTLINEフォント等自由に組込みしてもらえればと思います。

今後Selected U3D Japanese Fontの更新はありません。今までご使用ありがとうございました。



Unity Asset Storeで配布しているSelected U3D Japanese Fontの部分修正版、ストアにリリースしていない版を置いています
※Selected U3D Japanese Fontの基盤となるフォントはM+OUTLINE FONTSを使用しています。ダウンロードの際には右側の青いアイコンをクリックしてください。(文字をクリックするとはてなダイアリーの動作で保存ファイル名が変わってしまいます)

  • u3dfont102.unitypackage 直 (2011/05/19)
    • 基盤をM+OUTLINEフォント TestFlight39に変更して、漢字27文字(剣槍斧鎖癒辱冒霊獄獣陣姫掌恥峰殻靴腰脚罰賢託勲巫崖鞍勘)を追加。
    • 現在Unity Asset Storeで配信中のものです。
  • u3dfont101.unitypackage 直 (2011/04/19)
    • 基盤をM+OUTLINEフォント TestFlight38に変更して、漢字6文字(剣槍斧鎖癒辱)を追加。
    • AssetStore未配信版です。


こんなふうに文字表示するためのものです。

何の文字が使えますか?

u3dfont101版では以下の文字を含ませています。全文字リストはパッケージの中に含めています。

  • ひらがな
  • カタカナ
  • アルファベット、数字、記号
  • 小学校6年生までの教育漢字(1006文字)
  • 都道府県表記、ゲーム用語に適した漢字 (111文字)

これはジョークソフトですか? はい、それは仕様です

スマートフォンでUnityを使いたいとき、端末のシステムフォントは使用できないという制限が今のところあって、その詳細はRadiumSoftwareさんのUnityで日本語フォントを使う(モバイル編)でまとめられているのだけれど、つまり表示する文字はあらかじめビットマップ画像としてテクスチャ化しないといけない。もしくはOSの機能を使うようなプラグインを作るとか。

で、今までモバイル系やゲーム機ばかりを中心に作ってきた開発者からすると、それは不便だけれどまあ仕方ないよね、という点も判っているわけだけれど、現バージョンのUnity(3.3)の機能がまたややこしくしてくれていて。

GUITextコンポーネントとかで使う為には、TTFのフォントファイルをアセットに追加して指定するわけですが、ここでフォントに含まれているUnicode範囲の文字を全部読み込んでくれてワァとてもラクちん便利だわ、と思うのだけれど出来上がった画像は4096x4096のテクスチャとかになっててもうバカそんなの今の実機で動かせないから、という事態になります。
で、そこでもともとフォントに文字データが含まれていなければUnityEditorはその文字を無視してくれる、という現状の動作を見つけたのでいろいろと私の方で文字を教育漢字+ゲームに使いそうな文字110文字前後に限定して作り変えたのがSelected U3D Japanese Fontです。1024x1024のテクスチャで25ポイントくらいの大きさを維持できるよう調整しました。

こんな状態でインポートされてテクスチャができあがります。

これからのスマートフォンで使うときについて

現実的に1024x1024の制限があるのはiPhone3G、iPod touch2世代目までで、それ以降のOpenGL ES2.0が使えるiPhoneAndroid機種なら2048x2048までいけます。なので実質的に文字をもっと使えるようにしたり、大きな文字サイズで組み込みするなども柔軟にできそうです。

このフォントのライセンスは?

注意点とかライセンスとかは各Unityパッケージの中にテキストで入っているのでそちらをご覧ください。ざっくり言うとM+OUTLINEフォントのライセンスと同じで無料で使えて配布も改変も自由です。

メイリオとかで作ってほしいのですが

なんですって? フォントの権利に関するまとめをお読みください。
いやまあメイリオWindows上で動かすものならOKという話ですけど。
もしくはフォントワークス社等の商用フォントを買ってくるのがラクです。

IPAフォントならどうですか?

IPAフォントの改変ライセンスは「最終的な使用者が自身で元のフォント状態に戻して使える」ことで必須のため、Unityのように技術的に入り替えをおこなえない組み込み用途では使うことができませんでした。

自分でも作れそうですか?

手順としてはFontForgeというソフトを使い、フォント中の必要ない文字を全部消すマクロを使っています。使い方は手間ではないけれど、不要な文字を消すマクロファイルを作る方が手間かも。Windowsのひとはunofficial fontforge-cygwinを使うのがインストールがラクで便利です。

話変わりますが、XNAでも使えます?

仕組みとしてはXNAでも同様のことに注意しないといけないけれど、XNAにはspritefontという標準の高機能(?)な組み込み機能があるのでそれを使用することになります。spritefontのデータファイルに使用する文字コードをずらずら書くことになりますが。