fonted 開発記(メモ代用、マニュアル代用だったりもするかも)
最新版R5(zeta可)用binaryです。
バグ報告、作成したフォントの不具合報告等、大歓迎です。
テーブル名 | 内容/役割 | 開発状況/バグ等 |
---|---|---|
必須テーブル | ||
OS/2 | OS/2,Windows用の様々な値 | 表示のみ。 |
cmap | キャラクタコードとグリフ番号の対応 | 変更可。グリフの追加/削除は不可。 |
glyf | 文字のアウトラインデータ | 編集可。インストラクション未対応。 |
head | フォントに関する基本的な値 | 表示のみ。 |
hhea | 横方向表示に関する値 | 表示のみ。 |
hmtx | 文字毎の横方向位置、幅 | 等幅部分以外変更可。 |
loca | グリフデータへのオフセット | glyfに応じて自動更新。表示の必要性無し。 |
maxp | グリフデータの各種最大値 | glyfに応じて自動更新。表示のみ。 |
name | フォント名等の文字情報 | 編集可。 |
post | ポストスクリプトに関する値 | 表示のみ。 |
オプションテーブル(opentype関係を含む) | ||
gasp | グリッドフィット、アンチエッジ指定 | 変更可。 |
EBDT | 埋込ビットマップデータ | 編集可。サイズ変更不可。 |
EBLC | 埋込ビットマップへのオフセット等 | 一部表示。 |
EBSC | 対応予定無し。 | |
cvt | 対応予定無し。 | |
fpgm | 対応予定無し。 | |
prep | 対応予定無し。 | |
BASE | 対応予定無し。 | |
GDEF | 対応予定無し。 | |
GPOS | 対応予定無し。 | |
GSUB | 対応予定無し。 | |
JSTF | 対応予定無し。 | |
DSIG | 対応予定無し。 | |
hdmx | 対応予定無し。 | |
kern | 対応予定無し。 | |
LTSH | 対応予定無し。 | |
PCLT | 対応予定無し。 | |
VDMX | 対応予定無し。 | |
vhea | 対応予定無し。 | |
vmtx | 対応予定無し。 | |
VORG | 対応予定無し。 | |
その他 | 対応予定無し。 | |
その他 | ||
全体の構成を変更する画面を作成予定。 (オプションテーブルの追加、グリフ数の変更等) |
2012/1/1
glyfエディット時、alt+c,alt+vでコピーペースト可能にしました。(閉曲線単位)
エディットする文字を指定するのに、今までキャラクターコード(unicode)指定する必要がありましたが、
直接、文字を入力できるようにしました。ついでに、次の文字、前の文字へのボタンも追加。
2009/4/22
ずーーーっと、ほったらかしで、すいません。
Haiku で、IPA font が等幅表示されてしまうらしいのですが、
おそらく、postテーブルの isFixedPitch というフラグが 1 になっている為ではないかと思われます。
0 にすればいいはずです。(Haiku環境がありませんので未確認です)
で、これを変更するために、前回に引き続き、この編集だけ追加しました。
それだけしか変わってませんが、ver.0.011としました。
8/7
zeta導入記で、BeOS-Haruのバグ(dano,zetaで使えない)を修正するために
maxp-maxStackElements を大きくしよう、とか書いておきながら
公開しているバージョンでは編集できないことに気付き、
あわてて、これだけ追加しました。
Haruを解析したわけではないので、どの程度の値にすれば大丈夫なのか分かりませんが
試しに1800(TTEditの値)にしてみたところ、問題無く使えてます。
(ZetaR1付属のHaruはHint情報が別物になっているので本来のHaruとはかなり形状が異なります)
5/28 (ver.0.01)
大きさを変えないという条件付きですが、埋込ビットマップの編集を追加しました。
hmtx編集画面で表示にバグがあった(というより仕様の勘違い)のを修正しました。
ここらでver.0.01とします。バックアップを兼ねてソースをupするのが目的ともいう。
bebitsで指摘されてるように、そろそろエディト部分のインタフェースを何とかせねば。
げ、もう作り始めて3ヶ月以上経ってるのか。(他に比べて)結構作業してる気がするんだけど。
5/25
某所からbitmap→ttfの依頼が来て、img2ttfの改良したり、(フォント送ったのに返事こないなぁ)
ふとドライバ検出ツール作って見たり、と、こちらをさぼってたのですが、開発再開。
新規作成時に、フォントに含むユニコードブロックを指定することにした。
これで、アルファベットだけとか日本語だけとか、細かく指定できるようになった。
ただし、ちと面倒。またBeでは0x8000文字以上になると表示できないので注意しましょう。
5/7
アイコンだけ表示しておきながら、フリーハンドモードを実装するのを忘れてたので、
あわてて実装。ただし、かなり手抜き。さらに、筆圧未対応。
大まかな輪郭を作成するのに使って下さいな。
4/29
とりあえず埋込ビットマップを表示できるようにした。
といっても、全てのフォーマットをサポートしてるわけではありません。
EBLCテーブルのppemX,Yが埋込ビットマップのポイント数です。
これを参考にして、EBDTテーブルの画面でビットマップを表示してください。
chr-code,glyph-no,point 等、数値は全て16進です。
まだ編集、位置調整、追加、削除、等はできません。
4/24
img2ttfがバグってたとは。。。ソースを公開して無いのは、とんでもなく汚いからだった。
いや、他のも汚いんだけど、それ以上に、ってことで。多分これで大丈夫。
それはそうと、こちらfontedの方にも、ちとバグがあった。
edit時、setを押して突然死するのは、これで治った筈。。
あとは、gaspテーブルをサポートした。変更も可能。
4/16 (ver.0.00)
コンポジット編集も可能になりました。(つぎはぎプログラムになってしまいましたが。。)
アイコンもてきとーに作った。ドキュメントは、、、パス。
(そんな暇があるなら内容をちゃんとしろといいたい→自分。でも聞きたく無い→自分)
とりあえず正式リリースにしますが、まだ怪しい所も多々あるので、
自己責任で編集中のフォントのバックアップは必ず取るようお願いします。
内容、使い方、バグ、疑問等はjpbeのフォーラムにでも書いて下さい。できるだけ対応します。
4/10
満里奈ちゃん結婚おめでとー。記者会見であんな幸せテレテレな人も久し振りに見た気がする。
ぃゃぁ、見てるとこっちまで幸せ気分が伝染して、なんかうれしいですぅ(*^_^*)
さて本題、hmtxの編集が可能になりました。等幅指定されている部分は幅変更不可ですが。。
基本的な事ができるようになったので、そろそろver.0.00にしようかな。
バイナリで200k弱。。はぁ、いつの間にかかなりデカくなってしまいました。
グリフの挿入/削除は以後のグリフ番号が変化するため、glyf,loca,cmap,hmtxだけでなく、
オプションテーブルがある場合、EBDT,EBLCの他、GSUB等も再構築する必要があるんです。
全部調べて無いので、他にもあるかも。整合性がとれなくなると、最悪システムダウンの
可能性があるので、ver.0.00では扱わない事にします。
書き忘れてましたが、グリフ編集時、各ポイントでAlt+左クリックすることで、
アンカーポイントとコントロールポイントが切り替わります。
4/7
データを拡大縮小すると誤差が出るので、BViewのscaleで変えることにした。
左下の拡大縮小ボタンで調節して下さいな。
グリフを追加/削除すると、様々なテーブルをいじらなくてはいけないので、後回し。
cmapでchr.-codeとglyph-noの対応を変更できるようにしたので、
とりあえずは、不用なchrを削除して、必要なchrを代わりに設定して下さい。
gno=ffff で削除です。グリフ最大数(maxp-numglyphs)以上だと無視します。
(おわびと訂正)Haruの「写」問題ですが、別のバグのようです。
大きくすると崩れないようなので、やぱし補正プログラムバグかも???
4/4
うーん、あんまりすすんでません。
とりあえず、テーブルの内容が見れないと(作ってるこちらとしては)不便なので
新たにOS/2,head,hhea,postテーブルを見れるようにしました。
各テーブルのversionやformatやtype等により、極く一部しか対応してません。
グリフがsetする度にうにょーんと変形していってしまうのは、座標変換による誤差なのです。
これじゃ使い物にならないので、対策検討中。。。
3/30
何で新規作成したフォントが表示されないんだろうと悩みまくっていたら
昔、自分で発見したR5のバグ(グリフが0x8000個以上だと全部トーフになる)でした。
すーーーーっかり忘れておりましたとさ。我ながらアホ
cmap作成インタフェースを後回しにして、デフォルトでunicode全部にしたのが悪かった。
まぁとりあえずテストバージョンだし、ascii/hira/kata/kanjiの基本的な部分だけにしました。
さらにテスト。。。を、またR5のバグ発見。グリフが一部くずれるぅぅ。(zetaでは正常)
Haruの「写」が変というのも、これが原因かな。バグの状態からいって原因も予想できたり。
予想通りなら、すこーしファイルが膨らんでも良ければ回避できる。(でも対応は今度)
てっきりttfに組み込んである補正用プログラムのバグだと思ってたんですが。。。
どちらもソース公開してくれれば一瞬で修正できる類いの物なんだけどなぁ(たぶん^^;)
今回は、nameテーブルの編集ができるようになりました。
関係無いけど、、、PSP買わなきゃだな
3/25
オープンソースはどうでしたか?>行ったみなさん
さて、ttfエディタの方ですが、やっと新規作成できるようになりました。
といっても、まだまだ設定できない項目がたくさんあります。
気長に待って下さい。
新規作成時、とりあえずフォント名はnonameってことにしてあります。
その他、適当に値を設定してあります。後日編集できるようにしていきます。
後は、maxpテーブルの内容表示を追加しました。
ひとつ注意事項です。グリフをエディトしたら必ずsetを押して下さい。
押して初めて変更が反映されます。もちろん最後にsaveして下さいね。
あと、glyph_no=ffffは未割当という意味ですので、編集しないで下さい。
3/23
プログラムの構成を変えたらエンバグするわ、罠にはまるわ、もうへろへろです。
なんとか動く状態にしましたが、あまり進歩してません。
とりあえずnameフィールドを見れるようにしました。(編集はまだ)
フォントファイルを読み込むと、テーブル名がずらっと表示されるので、
glyf(文字の形の定義、前回まで作ってあった部分)かnameをクリックして下さい。
他のテーブルはまだ何も表示されません。
3/13
1週さぼりました。風邪ひいて寝こんどりました。
既存ttfをエディトしたものをsaveできるようになりました。
まだ新規からの作成はできません。
またコンポジット文字の編集はできません。
新規作成、文字幅、フォント名、グリフ追加/削除等を作ったらver.0.00にする予定ですが
ほんと、まだまだ先は長いですねぇ。
2/26
コンポジット文字対応したので、大抵のものは見れる、、、と思います。
グリフ番号か文字コード指定で見れるようになりました。
2/20
思い付いた所から、ちょこちょこ作ってます。
まだsaveできません。ていうかeditもまだ途中です。
コンポジットは見れないとか、やたらと制約付きですが、暇な人は試してみてねん。
上部の黄色い所をクリックするとグリフを1つずつ見れます。今はこれだけ(笑)
2/15
いいかげんに作り始めるか、とttfエディタ開発開始。
とりあえず当初の目標は、うちで配布している和田研フォントをエディトできるレベル。
これは自分で組み立てたttfなので、必要最小限のテーブルしか使ってないし、
もちろんわからんテーブルは含まれてないので、理論的には今の知識でできるはず。。。
でも、これがまた面倒くさそう、、、いつになることやら