Rockbox用フォント変換
ttc/ttfなどの日本語フォントファイルから、Rockbox用のfnt形式に変換できます。
フォント変換に役立つツール
Rockbox simulator
Rockbox simulator buildsからダウンロードします。2018年1月版なので現行版と挙動は多少異なりますが、スキンの微調整や変換したフォントの確認に便利です。
「rockboxui.exe」を実行するとWindows上でRockboxが起動します。ウインドウ上のボタンをクリック、画面に表示されている赤文字の「enter」などのキー、矢印キーなどから操作ができます。
Rockbox simulatorで使用中のフォントはロックされ、削除上書きができません。fontsフォルダにファイルを追加削除したあと、画面を切り替えるだけで変更が反映されるので、simulatorを起動したままフォントの変換確認作業ができます。
fontsフォルダに選択中の「フォント名.gc」というファイルが生成されますが、削除してもフォントを選ぶたびに生成されるので適当に扱えます。スキン変更後にアルバムアートが表示されないときは、simulatorを再起動すると表示されることがあります。
UniteTTC
ttcはttfの集合体で、UniteTTCのexeファイルにttcファイルをドロップすると、「フォント名001.ttf」と末尾に数字が付いたファイルが出てきます。展開された各ttfを開くと名称が分かるので、ファイル名をFont-Gothic.ttfなど分かりやすいものに変更します。
Rockbox Font Convertor
バッチファイルにフォントファイルをドロップしてサイズを入力するとfnt形式に変換できます。一部のビットマップフォントで特定のptなら、きれいに変換できることがあります。
左は等幅のUnifont_JP、右は縦長のマルモニカです。この2つは12pt指定でfnt変換すると16dotサイズになります。Unifontはttf版更新終了のため、Webアプリなどでotfをttfに変換してからbatにドロップします。
作業手順
- Rockbox Font Convertorからダウンロードして解凍(zip内の2つのフォルダは同一なので片方削除)
- 変換したいttfファイルをフォルダにコピー
- フォルダ内の「makefont.bat」にttfファイルをドロップ
- 表示されるウインドウに10前後の数字を入力してエンターキー
- 数秒で処理が終了してfntファイルが生成されたあと、適当なキーを押すとウインドウが閉じる
変換処理に何分も時間がかかる場合、正常に終わらず作業ファイルのサイズが膨れ上がっていくので、ウインドウの×ボタンを押して強制終了し、数値を変えて実行します。
入力したptと出力されたdotの値の例
makefont.bat実行時に入力する値は「pt」で、出力されたファイル名の頭には入力したptの値が付きます。一方、最初から入っているフォントや、Rockbox用フォントセットのファイル名先頭の値は「dot」です。
4pt | 5pt | 6pt | 7pt | 8pt | 9pt | 10pt | 11pt | 12pt | 13pt | 14pt | 15pt | 16pt | 17pt | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
SH G30-M | 07 | 09 | 10 | 12 | 13 | 14 | 16 | 17 | 18 | 20 | 21 | 24 | ||
Unifont-JP | 16 | |||||||||||||
さざなみフォント | ||||||||||||||
ゴシック体 | 06 | 07 | 08 | 11 | 12 | 14 | 15 | 17 | 19 | 20 | 21 | 24 | ||
明朝体 | 05 | 07 | 08 | 10 | 11 | 14 | 15 | 16 | 18 | 19 | 20 | 24 |
フォントによって入力したptと、出力されるdotの値は異なります。変換後のfntファイルとRockbox用フォントセットを切り替えて、アイコンの大きさが同じになるdotの値を探し、変換したファイル名の値をdotのものに修正しておくと扱いやすいです。
convttfの事前準備とバッチファイル
左はmakefont.bat、右はconvttf.exeで変換した、16dotサイズのIPAexゴシックです。変換確認作業を繰り返す必要はありますが、convttfの方がきれいに仕上がります。
準備と流れ
前準備
- Rockbox Extrasを開いて項目「Fonts」内の「downloaded from」の右にあるconvttfをダウンロードして解凍
- ttffnt.batを右クリックから保存して、convttfのフォルダに移動
- 変換したいttfファイルをconvttfのフォルダにコピー
作業の流れ
- ドラッグしたttfファイルをttffnt.batにドロップしてfntファイル生成
- fntファイルをRockbox simulatorのfontsフォルダに移動して表示確認(simulatorは起動したままでOK)
- ttffnt.batの値を変更して保存し、1に戻る
満足いく結果になるまで何度も繰り返します。バッチ処理中に、値を変更→保存→batにフォントドロップして並列処理になっても問題ありません。慣れてきたら設定を細かく変更してどんどんfntを生成してまとめて確認すると早いです。
バッチファイルの編集
convttf -p 15 -c 0 -x -X 60 -Ta 0 -Td 0 -r 0 -w -L -o output.fnt input.ttf
通常convttfはコマンドプロンプトで上記のようなパラメーターを指定して実行します。これを繰り返すのは手間なのでバッチファイルを利用します。
rem ===== パラメーター設定 =====
set dot=0
set p=15
set X=60
set c=0
set Ta=0
set Td=0
set r=0
set w=
set L=
rem ===========================
ttffnt.batをテキストエディターで開いて数字を変えて上書き保存します。そのバッチファイルにttfファイルをドロップすれば指定した値で変換されます。32ビットの「convttf.exe」、64ビットの「convttf64.exe」のどちらでもそのまま使えます。
出力ファイル名
出力ファイル名は「15-output_15_60_0_0_0_0-w-L.fnt」のような設定値が付きます。dotの値は目標のフォントサイズでファイル名先頭に付き、変換処理には関係ありませんが、既存のフォントと大きさを比較する作業がやりやすくなります。
設定内容
サイズ | 横スペース | 縦スペース | |||||||
---|---|---|---|---|---|---|---|---|---|
オプション | -p N | -X N | -L | -c N | -x | -w | -Ta N | -Td N | -r N |
N (標準値) | 15 | 60 | 0 | 0 | 0 | 0 | |||
内容 | 大きさ | 解像度 | 文字形状 | 横間隔 | 切詰め | 数字等幅 | 上側削 | 下側削 | 縦間隔 |
ttffnt.batのwは「set w=-w」、Lは「set L=-L」とハイフンと小文字大文字に注意して記述します。指定しない場合は空欄にします。-xは半角スペースも切り詰めてしまう使いどころが難しい設定なのでバッチには含んでいません。
convttfの作業例@IPAexゴシック
IPAexゴシックから16dotフォントを作成します。解凍するとipaexg.ttf(ゴシック体)、ipaexm.ttf(明朝体)の2つがあるのでipaexgの方を使います。今回は16dotフォントを作りたいのでttffnt.batを開いて「dot=16」に書き換え上書きします。
大きさの調整
convttf -p 15 -X 60 -c 0 -Ta 0 -Td 0 -r 0
まずはデフォルト設定で変換すると、16dotフォント(16-Adobe-Helvetica)と比較して小さいです。
convttf -p 16 -X 60 -c 0 -Ta 0 -Td 0 -r 0
convttf -p 16 -X 70 -c 0 -Ta 0 -Td 0 -r 0
p(大きさ)を15から16に変更すると少し大きくなりました(画像左)。続けてX(解像度)を60から70にすると、16dotフォントと比べてアイコンの大きさや表示数が同じになりました。pやXの値を変更するとフォントの大きさが変わります。
Lオプションの使用例
convttf -p 16 -X 70 -c 0 -Ta 0 -Td 0 -r 0 -L
Lを付けると文字の形状が少し変化しました。各画像を右クリックから保存して、画像ビューアーで全画面表示して切り替えると変化が分かりやすいです。ひとまずLは外して進めます。
横スペースの調整
convttf -p 16 -X 70 -c 1 -Ta 0 -Td 0 -r 0
convttf -p 16 -X 70 -c 2 -Ta 0 -Td 0 -r 0
c(横間隔)を0から1にすると文字間隔が少し開きました(画像左)。cを2にするとさらに間隔が広がります。Xの値を変えると文字サイズが変わり、英数字の文字間隔が変化することもあるので、そちらを先に試した方がよいです。
xオプションの使用例
convttf -p 16 -X 70 -c 0 -Ta 0 -Td 0 -r 0 -x
cを0に戻しx(切詰め)を付けると、文字間隔が削られすぎて表示に難があります。「Line Separator」に入っていた半角スペースはなくなっています。
wオプションの使用例
convttf -p 16 -X 70 -c 0 -Ta 0 -Td 0 -r 0 -w
デフォルト設定の数字は等幅になるので、日付などの数字が入っているファイルが並ぶときれいに並びます(画像左)。wを付けると数字が等幅ではなくなり詰めて表示されますが、前述のような場面では少しずれて表示されます。
縦スペースの調整
convttf -p 16 -X 70 -c 0 -Ta 0 -Td 0 -r 1
convttf -p 16 -X 65 -c 0 -Ta 0 -Td 0 -r 1
文字の「g」の下が欠けているのでr(縦間隔)を0から1にすると「g」の下も表示されるようになりました(画像左)。しかし16dotフォントよりも少し大きくなったので-Xを65に下げます。
convttf -p 16 -X 65 -c 0 -Ta 0 -Td 0 -r 1
convttf -p 16 -X 70 -c 0 -Ta 1 -Td 0 -r 1
縦スペース調整後、若干文字が小さくなりました(画像左)。下は余裕なしですが、上スペースはまだ削れそうなのでTa(上側削)を1にして上を詰めます。すると16dotサイズから小さくなったのでXを65から70に戻すと、文字サイズも戻りました。
convttf -p 16 -X 75 -c 0 -Ta 2 -Td 0 -r 1
convttf -p 16 -X 76 -c 0 -Ta 3 -Td 0 -r 1
Taを2にすると文字が少し大きくなりました(画像左)。Taを3にすると「選択」などの文字の上部が切れてしまいました。文字がはみ出さない程度に上下のスペースを削ると文字が大きくなります。逆に縦スペースを切り詰めず文字を小さくすれば表示文字数を増やせます。
解像度の調整
今回の条件ではXを72~75に変更しても16dotサイズに収まります。さらに「-L」も追加して計8つfntファイルを生成します。これらはすべて微妙に違うのでよく見比べて決定します。
convttf -p 16 -X 74 -c 0 -Ta 2 -Td 0 -r 1 -L
L付きのX74は、X72~73より横幅が多少増えて漢字などはややぼやけてる部分もありますが、小文字のiの間隔が適度になるなどバランスがよいのでこの設定にします。
それぞれのスクリーンショットを撮って全画面表示でスライドして比較すると違いが分かりやすいです。
convttfの変換例@2/3&1/2フォント
2/3角フォント
convttf -p 16 -X 80 -c 0 -Ta 2 -Td 1 -r 0 -L
無印IPAフォントver3の文字幅を2/3にしたフォントです。下側に余裕があったのでTdを1にしています。
半角フォント
convttf -p 16 -X 78 -c 1 -Ta 2 -Td 1 -r 0 -L
無印IPAフォントver3の文字幅を1/2にしたフォントです。文字間隔が狭いのでcを1にしています。