「Bitmap Font Generator」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
*Bitmap Font Generatorの使用法
**1. ダウンロード
http://www.angelcode.com/products/bmfont/
よりセットアップファイルをダウンロード、インストールして下さい。
**2. オプションの設定
[Options] → [Font Settings]または[Export Options]で各種の設定を行います。
***[Font Settings]
・Face:任意のフォント
・Charset:Unicode
・Disable undefined characters:チェックあり(フォント非対応の文字が選択されなくなります)
・Size:任意(各フォントファイル ~.fnt でサイズを確認して合わせた方が良いでしょう)
・Height:100%(特に変更する必要はありません)
・Bold:任意(太字。好みに応じて)
・Italic:任意(斜体。好みに応じて)
・Font smoothing:任意(フォントがなめらかになります)
・Super Sampling:任意(4が最も高品質ですが出力に幾らか余分な時間が掛かります。また僅かにぼやけます)
・Outline thickness:1~2推奨(輪郭の大きさ。背景に文字が溶け込んでしまう事を防止します)
***[Export Options]
・Padding:すべて0()
・Spacing:すべて1(隣り合う文字の間隔)
・Width:256(フォント画像ファイルの横幅)
・Hight:256(フォント画像ファイルの縦幅)
・Bit Depth:Penumbraは8、Amnesiaは32
・Font descriptor:XML(出力されるfntファイルの形式)
・Textures:ゲームのフォントファイルに合わせて(PenumbraはTGA、AmnesiaはDDS)
・Compression:None(フォントファイルの圧縮)
**3. 使用文字の選択
メインウィンドウからゲーム内で使用する文字を選択します。
ですが、膨大な一覧の中から一文字ずつ選択していくことは不可能に近く、
また全文字を使用するとテクスチャファイルが肥大しすぎてしまい
ゲームプログラム側の許容文字数(3000個)を超えてしまいます。
そこで、Bitmap Font Generatorのファイル読込機能を用いることにより
この問題に対処できます。
フォントに含めたい文字をそれぞれ任意のtxtファイルへコピーし、
UTF-16形式で保存、次にBitmap Font Generatorの
EDIT → Select chars from fileを選択します。
ここで、先ほどUTF-16形式で保存したtxtファイルを読み込むと
ファイルに含まれている文字が選択された状態になります。
**4. フォントファイルの出力
使用文字の選択が完了したら、Options → Save bitmap font as... から
任意のファイル名で保存します。
**5. フォントIDの変更
出力したfntファイルを開き、IDを3000以内の値に置き換えます。
----
*Bitmap Font Generatorの使用法
**ダウンロード
http://www.angelcode.com/products/bmfont/
よりセットアップファイルをダウンロード、インストールして下さい。
**オプションの設定
[Options] → [Font Settings]または[Export Options]で各種の設定を行います。
***[Font Settings]
・Face:任意のフォント
・Charset:Unicode
・Size:任意(各フォントファイル ~.fnt でサイズを確認して合わせた方が良いでしょう)
・Match char height:オフ。オンにすると文字の高さがSizeピクセルまで引き延ばされる。デフォルトでは、Sizeは行の高さを表します。
・Autofit pages:0推奨。ゼロ以外のとき出力する画像の枚数を指定します。その場合、指定された画像の広さに合うように文字の大きさがAutofit size rangeの範囲で調整されます。
・Height:100%(特に変更する必要はありません)
・Bold:任意(太字。好みに応じて)
・Italic:任意(斜体。好みに応じて)
・Output invalid char glyph:オフ。オンでフォント非対応の文字も出力します。
・Do not include kerning pairs:オフ。オンでカーニング情報を含めないで出力します。
・Render from TrueType outline:オフ推奨。オフでWindowsのフォントエンジンを使ってレンダリングします。
・Font smoothing:オン推奨(フォントがなめらかになります)
・ClearType:任意。ClearTypeのアンチエイリアス効果を利用します。
・Super Sampling:オフ推奨。Font smoothingがオンのとき僅かにぼやけます。(Font smoothingが使えないラスタフォントのためのオプション)
・Outline thickness:任意。ゼロ以外のときアウトラインの幅を指定します。指定された幅で文字の周りを縁取るので、袋文字が作れます。元にするフォントに合わせましょう。Amnesia: the Dark Descentでは1~2幅のアウトライン推奨(輪郭の大きさ。背景に文字が溶け込んでしまう事を防止します)。
***[Export Options]
・Padding:全て2程度推奨。文字に加える余白。文字領域に加えて、Padding分広げた領域がフォント画像から参照されます。全て0にすると、元サイズより小さく表示したときに端が少し切り取られたような形になります。
・Spacing:全て0推奨。参照される領域の間隔。文字領域にPadding分を加えた領域から、さらにSpacing分の間隔を空けてフォント画像に配置します。元サイズより小さく表示したときに、隣の領域からのエイリアシングを防ぐための設定です。Paddingが十分に空いていれば0で大丈夫です。
・Width:フォント画像ファイルの横幅
・Hight:フォント画像ファイルの縦幅
任意で設定できますが、元のフォントに合わせた方が無難です。Amnesia: the Dark Descentでは256x256を使用。Amnesia: Rebirthでは1024x1024で出力されたフォントが多いです。
・Bit Depth:ピクセルあたりのビット数。基本的にアウトラインを使う場合は32、使わない場合は8を指定します。
・Chnl Value:フォント画像の各チャンネルに出力する方式を指定します。少し複雑なので、通常は下のPresetを使って指定してください。次の値が指定できます。また、Invertオプションで0-1を反転できます。
-- glyph: 文字の内側で1、外側で0。
-- outline: アウトラインの内側で1、外側で0。
-- encoded glyph & outline: 文字の内側で1、文字とアウトラインの間で0.5、アウトラインの外側で0。
-- zero: 全ての領域で0。
-- one: 全ての領域で1。
・Preset:Chnl Valueのプリセットです。ここを設定すると自動的にChnl Valueも設定されるので、通常はこちらを使用してください。
-- White text with alpha:アウトラインを使用しない場合はこれを指定してください。
-- Outlined text with alpha:アウトラインを使用する場合はこれを指定してください。
・Font descriptor:XML(出力されるfntファイルの形式)
・Textures:出力するフォント画像形式。ゲームのフォントファイルに合わせてください。(PenumbraはTGA、AmnesiaはDDS)
・Compression:フォントファイルの圧縮、TGAの際はNone、DDSの際はNoneを推奨。&footnote(Frictional Games公式wikiのチュートリアルより https://wiki.frictionalgames.com/page/Hpl3:Tutorials:adding_fonts#Step_4:_Export_Options)
**使用文字の選択
ここで出力したい文字を選択しますが、PenumbraシリーズとAmnesia以降のシリーズで扱いが変わります。
Penumbraシリーズでは、ゲームエンジン(HPL1)が3000までのコードポイントしか扱えないため、日本語を表示させるためにはゲーム内で使用する文字を1-3000の範囲に「割り当てる」必要があります。
Bitmap Font Generatorのファイル読込機能(Edit->Select chars from file)を用いて、表示させたい日本語のテキストを含むファイル(翻訳したlangファイルなど)を全て読み込ませます(※ただし、UTF-16またはBOMつきUTF-8形式でないと正しく読み込まれないため、一旦別のテキストファイル等に保存する必要があるかもしれません)。ウインドウ左下にselected characters: ####/####の形式で現在選択している文字数が表示されるので、3000文字を超えている場合は使う文字を減らしてください。常用漢字程度までなら収まります。
Amnesia以降のシリーズではこのコードポイント制限がなくなっています。そのため、Penumbraシリーズと同様に、翻訳したファイルを読み込んで必要な文字のみを選択することもできますが、通常の日本語テキストで使う文字を全て選択したフォントファイルを作ってもよいでしょう。翻訳したテキストを修正するたびにフォントファイルを作り直す必要がなくなります。
使用する文字の例
- U+0 - U+7F (必須)アルファベット、記号
- U+3000 - U+303F 句読点、括弧など
- U+3040 - U+309F ひらがな
- U+30A0 - U+30FF カタカナ
- U+4E00 - U+9FFF この範囲の漢字のうち、常用漢字2136字
参考:[[常用漢字リスト>https://img.atwiki.jp/penumbrajp/attach/17/5/%E5%B8%B8%E7%94%A8%E6%BC%A2%E5%AD%97.txt]]
**フォントファイルの出力
使用文字の選択が完了したら、Options → Save bitmap font as... から
任意のファイル名で保存します。
**(Penumbraシリーズの場合)フォントIDの割り当て
出力したfntファイルを開き、IDを3000以内の値に置き換えます。ここで行った割り当てと同じように翻訳したlangファイルのテキストを[u###]表記のコードポイントに置き換えます。
(例)
char id="300"に割り当てた文字 -> [u300]
翻訳を修正して使う漢字が変わったときは、フォントファイルの再生成、フォントファイルの文字の再割り当て、langファイルの文字変換がそれぞれ必要になるので注意してください。
----
#comment_num2(vsize=4)
----