NGUI:ビットマップフォント表示〜フォントテクスチャを作るUnityには非常に沢山の有料/無料プラグインがあります。Storeであり過ぎて検索と選択に困るくらい公開されています。この編ではそのプラグインの中で私が使用した範囲ですが紹介できればと思います。NGUIはいわゆるGUIを作成する有料プラグインの一つで、ゲーム中のボタン等をサクサクと作る事ができます。このNGUIの機能の一つに「ビットマップフォント表示」があります。ゲームを作る上で文字や数字の表示はかかせません。変化しない物であれば単にテクスチャを板ポリに貼って表示しても良いのですが、動的に文字列が変わる場合、文字を位置文字ずつ並べる必要が出てきます。それがとてつもなく面倒くさい作業である事は想像に難くありません。NGUIのビットマップフォント表示は、その辺りの面倒な所を全部裏でやってくれます。プログラマが最終的に与えるのは文字列だけです。その状態にまでするにはちょっと作業が色々とあります。ビットマップフォントをNGUIに設定するという2つの工程があります。今回は�@について見て行きましょう。20px」なビットマップフォントです。テクスチャの中に文字がびっしり140文字並んでいます。冒頭の一文には文字の重複があるため、それより文字数が少なくて済む訳です。このビットマップフォントを作るツールが世の中にはちゃんとあります。generator」なので、それを使って上のテクスチャをどう作ったか説明します。generatorは以下のサイトからDLできます。AngelCode.comインストーラーがありますのでインストール方法は割愛します。文字列テキストを用意まず表示したい文字が並んでいる文字列テキストを用意します。先の「吾輩は猫である」は、Web上にある一文をテキストファイルにコピーしてきました。それをWagahai.txtというテキストファイルとして保存します。ここで非常に大切な事が一つ。generatorはUnicode形式で保存されたテキストファイルでないと認識してくれません。Unicodeを扱えるテキストエディタを使って下さい。generatorを起動します。するとフォント文字がどばーっと出てきます。画面内のフォントをクリックすると明るくなるのが分かると思います。この明るくなったフォントがビットマップフォントに登録されるわけです:もちろん一文字ずつ地道に選択していく事もできますが、途方に暮れてしまいますので、先に作った文字列が入ったテキストを読み込んで自動選択してもらいます。file]から読み込みたいテキストファイルを選択すると、上のように含まれるすべての文字をピックアップしてくれます。次に出力したいフォントを選択します。settings]を選ぶと次のようなダイアログが出てきます:フォントの種類はFont欄で指定できます。日本語フォントを選択して下さい。フォントの大きさはSizeで指定します。太文字が欲しい場合はBoldにチェックを付けますし、傾けたいならItalicにチェック。他にも項目がありますが、今は上のままにしておきます。20px」なフォントを選択した事になります。OKを押してダイアログを閉じましょう。出力設定この段階でVキーを押すか[Options]→[Visualize]を選択すると、出力されるビットマップフォントのプレビューを見る事ができます。1/4」とあるように、上の128×128なテクスチャサイズだと4枚も必要である事がわかります。取り扱う上で1枚に収めておいた方が何かと便利(パフォーマンス上でも重要)なので、出力設定を変えて1枚に収めるようにします。options]です:最も重要なのがTextureの幅と高さでWidthとHeightに数値を入れて調節します。この数字は2のべき乗にすべきです。理由はそれ以外のテクスチャサイズにすると、フォント文字がぼやける事があるためです。綺麗なフォント文字にしたいなら2のべき乗サイズが必須です。一つ、Textures:で出力するビットマップフォントのファイルフォーマットを指定します。後は上の設定のままで大丈夫です。出力とUnity用にファイル名変更これでビットマップフォントを出力できます。as...]をクリックすると保存ダイアログが出ます。ファイル名として例えば「Wagahai」と付けると、次の2つのファイルが出力されます:Wagahai_0.pngが本命のビットマップフォント。見た目真っ白ですが、これは透過PNGになっているためです。一つ「Wagahai.fnt」というファイルが出力されています。これはビットマップフォントのどこに何の文字があるか位置情報が格納されているテキストファイルです。chnl=15......こんな感じの情報が詰まっています。charと書かれた行が、それぞれの文字情報です。NGUIプラグインは、ありがたい事にこの情報テキストをそのまま読み込む事ができます。Unityにテキストファイルと認識させるには拡張子を.txtに変更する必要があります。最終的に「Wagahai_0.png」のようなビットマップフォントと位置情報である「Wagahai.txt」が用意できれば、リソースの準備が整った事になります。これらリソースを次にUnityに登録し、NGUIで使用していきます。次章で見て行きましょう。