bmpfont-generator は、TrueType フォント (.ttf) ファイルから指定された文字の画像を生成するツールです。 また Akashic Engine のビットマップフォントとして使う場合に必要になる、グリフ情報のデータを JSON 形式で同時に生成できます。
ビットマップフォントとその利用法については、チュートリアルの ビットマップフォントを使う を参照してください。
bmpfont-generator は Node.js 環境で動作します。各プラットフォームで、適当な方法で Node.js をインストールしてください。 この利用ガイドでは、 LTS 版の Node.js 環境を前提に説明を進めます。 執筆時点での LTS 版のバージョンは 10.16.0 です。
bmpfont-generator は以下のコマンドでインストールすることができます。
npm install -g @akashic/bmpfont-generator
インストール後、コマンドラインで bmpfont-generator
コマンドが利用できるようになります。
古いバージョンの bmpfont-generator では、事前に Cairo をインストールしておく必要がありました。 これは bmpfont-generator が node-canvas を利用しており、その動作に必要なためです。
Cairo の事前インストールは、現在 Windows や Mac などの環境では不要になっています。 それら以外の環境では引き続きインストールが必要な可能性があります。 詳細は node-canvas の README (英語) を参照してください。
bmpfont-generator の典型的な実行方法は次のようなものです。
bmpfont-generator --chars '0123456789' --height 14 --fill '#ff0000' sourceFont.ttf bitmap.png
このコマンドを実行すると、
が bitmap.png として出力されます。 また同じディレクトリに、グリフ情報として bitmap_glyphs.json ファイルが出力されます。
bmpfont-generator は以下のオプションを持ちます。
bmpfont-generator [<options>]
<options>
に指定可能なオプションは次のとおりです。
オプション | 短縮名 | 効果 | 必須 | デフォルト値 |
---|---|---|---|---|
--height <size> |
-H |
文字の縦サイズ(px) | 13 | |
--fixed-width <size> |
-w |
文字の横サイズ(px) 。指定した場合、文字の幅に関わらず size を幅の値とする | ||
--chars <string> |
-c |
書きだす文字の羅列 | 0-9,a-Z,各種記号 | |
--chars-file <filepath> |
-f |
書き出す文字が羅列されたテキストファイルのパス | ||
--missing-glyph <char> |
-m |
-c の指定に含まれない文字の代わりに用いる代替文字 | フォントが持つ代替文字 | |
--missing-glyph-image <filepath> |
-M |
代替文字として用いる画像ファイルのパス | ||
--fill <fillstyle> |
-F |
フィルスタイル | #000000 |
|
--stroke <strokestyle> |
-S |
ストロークスタイル | ||
--stroke-width <width> |
ストロークの幅(px) | 1 | ||
--quality <quality> |
-Q |
1-100 の画質。指定する場合、 pngquant が必要 |
圧縮しない | |
--baseline <baseline> |
ベースライン | 自動で計算された値 | ||
--no-anti-alias |
アンチエイリアス無効化 | |||
--json <filepath> |
json ファイルを書き出すパス | <outfileName>_glyphs.json |
||
--no-json |
json ファイルを出力しない | |||
--margin |
文字間の余白(px) | 1 |
fillstyle
は CSS の色 (color プロパティに指定できる値)を指定することができます。
strokestyle
は fillstyle
と同様に CSS の色を指定することが出来ます。
以下は fillstyle
に red
を指定した場合に生成される画像の例です。
baseline
は省略時は自動で計算されるので、基本的には利用する必要はありません。
quality
オプションを指定する場合、 pngquant
がインストールされている必要があります。