2015/07/11(土) [n年前の日記]
#1 [dxruby] 数字フォント画像を作成中
画面に残り時間を表示したいので、数字だけのフォント画像を作成しようとしてるのだけど。実際に画面に出してみたらサイズが合わなくて、5回ぐらい作り直してたり。
今のところ、EDGE2というドットエディタで、「0 1 2 3 4 5 6 7 8 9」を文字ツールで描画して、1文字ずつグラデで塗ったりドット修正してから、さらに1文字ずつ選択して 24x32 とか 32x48 とかのグリッドに収まるように移動してるのだけど。1文字ずつ、グリッドに移動していくあたりが面倒臭い。自動化できないものか…。
一応、ビットマップフォント画像(テクスチャ)を作るツールの類は存在するのだけど…。
_BMFont - AngelCode.com
_ShoeBox
_Littera - bitmap font generator
この手のツールは、Unity や Cocos2D等に合わせた、以下のような仕様になっていて…。
だけど、ゲームの場合、読みやすければそれでいいというものでもなくて。例えば、数字がカウントアップする時などは、表示してる文字列の横幅がガクガク変わったりすると見た目が気持ち悪いし視認性もよろしくない。要するに、アニメーションする時は、印刷物とはちょっと違うフォントデザイン・仕様を考えないとあかんよ、ってだけの話ですけど。そういう時は、ファミコンみたいに等幅フォント表示のほうがグーだよな、と自分は思ってるのですが。
で。DXRuby の場合、テクスチャ管理のアレコレからして、各文字のサイズがどれも同じになってたほうが微妙に都合がいいわけで。というか昔の2Dゲームの画像リソース管理は大体そんな感じで、どれも8x8ドット単位で扱うのが常だったけど。
ということで、同サイズの文字がずらりと並んでるフォント画像を生成できないものかと思うのだけど、今時そういう古臭い(?)フォント画像を生成するツールは無いので苦労しているのでした。
今のところ、EDGE2というドットエディタで、「0 1 2 3 4 5 6 7 8 9」を文字ツールで描画して、1文字ずつグラデで塗ったりドット修正してから、さらに1文字ずつ選択して 24x32 とか 32x48 とかのグリッドに収まるように移動してるのだけど。1文字ずつ、グリッドに移動していくあたりが面倒臭い。自動化できないものか…。
一応、ビットマップフォント画像(テクスチャ)を作るツールの類は存在するのだけど…。
_BMFont - AngelCode.com
_ShoeBox
_Littera - bitmap font generator
この手のツールは、Unity や Cocos2D等に合わせた、以下のような仕様になっていて…。
- 各文字をギッシリと1枚のテクスチャ画像に詰めていく。
- 使う時は、テクスチャのこのあたりからこれだけのサイズを切り出して使う、みたいな感じ。
- 各文字のサイズ・大きさは、えてして異なっている。
- どこにどの文字がどのくらいの大きさで収まってるか、てな情報が、xml や json 等で別途用意される(テクスチャと一緒にエクスポートされる)。
だけど、ゲームの場合、読みやすければそれでいいというものでもなくて。例えば、数字がカウントアップする時などは、表示してる文字列の横幅がガクガク変わったりすると見た目が気持ち悪いし視認性もよろしくない。要するに、アニメーションする時は、印刷物とはちょっと違うフォントデザイン・仕様を考えないとあかんよ、ってだけの話ですけど。そういう時は、ファミコンみたいに等幅フォント表示のほうがグーだよな、と自分は思ってるのですが。
で。DXRuby の場合、テクスチャ管理のアレコレからして、各文字のサイズがどれも同じになってたほうが微妙に都合がいいわけで。というか昔の2Dゲームの画像リソース管理は大体そんな感じで、どれも8x8ドット単位で扱うのが常だったけど。
ということで、同サイズの文字がずらりと並んでるフォント画像を生成できないものかと思うのだけど、今時そういう古臭い(?)フォント画像を生成するツールは無いので苦労しているのでした。
[ ツッコむ ]
以上、1 日分です。