Skip to content

bmpfont-generator の仕様

bmpfont-generator は、TrueType フォント (.ttf) ファイルから指定された文字の画像を生成するツールです。 また Akashic Engine のビットマップフォントとして使う場合に必要になる、グリフ情報のデータを JSON 形式で同時に生成できます。

ビットマップフォントとその利用法については、チュートリアルの ビットマップフォントを使う を参照してください。

インストール方法

bmpfont-generator は Node.js 環境で動作します。各プラットフォームで、適当な方法で Node.js をインストールしてください。 この利用ガイドでは、 LTS 版の Node.js 環境を前提に説明を進めます。 執筆時点での LTS 版のバージョンは 10.16.0 です。

インストール

bmpfont-generator は以下のコマンドでインストールすることができます。

sh
npm install -g @akashic/bmpfont-generator

インストール後、コマンドラインで bmpfont-generator コマンドが利用できるようになります。

TIP

古いバージョンの bmpfont-generator では、事前に Cairo をインストールしておく必要がありました。 これは bmpfont-generator が node-canvas を利用しており、その動作に必要なためです。

Cairo の事前インストールは、現在 Windows や Mac などの環境では不要になっています。 それら以外の環境では引き続きインストールが必要な可能性があります。 詳細は node-canvas の README (英語) を参照してください。

使い方

bmpfont-generator の典型的な実行方法は次のようなものです。

sh
bmpfont-generator --chars '0123456789' --height 14 --fill '#ff0000' sourceFont.ttf bitmap.png

このコマンドを実行すると、

  • フォント sourceFont.ttf の、
  • 数字 (0123456789) のグリフを、
  • 高さ 14px で
  • 赤色で描いて並べたビットマップ画像

が bitmap.png として出力されます。 また同じディレクトリに、グリフ情報として bitmap_glyphs.json ファイルが出力されます。

bmpfont-generator は以下のオプションを持ちます。

sh
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>-Q1-100 の画質。指定する場合、 pngquant が必要圧縮しない
--baseline <baseline>ベースライン自動で計算された値
--no-anti-aliasアンチエイリアス無効化
--json <filepath>json ファイルを書き出すパス<outfileName>_glyphs.json
--no-jsonjson ファイルを出力しない
--margin文字間の余白(px)1

fillstyle は CSS の色 (color プロパティに指定できる値)を指定することができます。 strokestylefillstyle と同様に CSS の色を指定することが出来ます。

以下は fillstylered を指定した場合に生成される画像の例です。 赤いビットマップ画像

baseline は省略時は自動で計算されるので、基本的には利用する必要はありません。

quality オプションを指定する場合、 pngquant がインストールされている必要があります。