[Efont-devel] 今後の開発計画と協力のお願い

Back to archive index

KANOU Hiroki kanou****@khdd*****
2003年 10月 4日 (土) 23:01:35 JST


狩野宏樹です。

作業の進捗について、長い間お知らせせずにいて申し訳ありません。

9月29日に、日立プリンティングソリューションズさんから、タイプバンク・
日立の共同開発になるビットマップフォントの流用に関する見解が発表され
ました。まだフォント作者の方々が交渉を継続中であり、確実なことは言え
ませんが、おそらく以下の 2 点は確実だろうと予測しています。

・東風フォントは、一般に利用可能な形で公開される
・利用する分野や改変に対する何らかの制限が課せられる

このことを考えますと、今まで東風フォントの配布が再開されるまでの繋ぎ
として開発を行ってきた東風フォント代替フォント (kochi-substitute) は、
今後も開発を継続していく価値があると言えるでしょう。漢字の品質の面で
は東風フォントに大きく劣り、未だ実用レベルに達していませんが、ソース
である和田研フォントキットが公開されているため、改良次第では、大幅な
品質の向上も期待できます。改変などに関して完全に自由で、フォントでは
満たすことの難しいオープンソースの定義に沿った物が一つ存在することは
有意義なことでしょう。

新しい開発動機に基づき、東風の代替としてではなく別個のフォントとして
開発の仕切り直しを行うにあたり、新たなフォント名を決めたいと思います。
フォント名の案がありましたらこのメーリングリストにお寄せください。
また、バージョン番号についても日付ではなく、通常の番号づけを用いよう
と思います。これは、β版などの判別をつきやすくするためです。

		*		*		*

今後の開発における短期的な目標ですが、漢字の字形の品質を高める作業を
最優先で行っていきたいと思います。

まずそのためには和田研フォントキットが安定して動くようにしなければ
なりませんので、ここ2ヶ月間に以下のような保守作業を行いました。

・スケルトンエディタを動かせるように UtiLisp/C を修正
・フォントキットをコンパイルしても壊れた文字が出ないように改造
 (書体・太さによってはエラーが出ていたのをできるかぎり修正した)
・Adobe-Japan1-2 の範囲の外字の組合せ定義を作成
・スケルトンエディタで新しい部品を作成

まだ品質上問題のある部分がありますが、文字をソースからコンパイルして
フォントを作成するための基礎は整ったと思います。現在の東風フォント
代替フォントの漢字は、過去に公開された和田研フォントを変換した物です
ので、その後発見された誤字を修正した現在の定義が反映されていません。
また、補助漢字部分は別のウェイトの物が混在していますが、これも今回の
修正によって同一の物を使用することができるようになりました。

これらの修正ファイルは http://gps.tanaka.ecc.u-tokyo.ac.jp/wadalabfont/
の掲示板にアップロードしてありますので、ご利用ください。

		*		*		*

現在、手っ取り早く品質を改善できる方法として、以下の 2 つの変更を
考えています。

・スケルトンフォントの改良

一部の部品定義は、オリジナルの形があまりよくありません。また、部品の
形が良くても、組合せのバランスが崩れている文字もたくさんあります。
オリジナルの和田研フォントは漢字の自動生成技術を開発する研究目的でした
から、できるだけ多くの漢字を部品の組合せの形で定義して自動生成する
方針で作られています。私たちの開発目標は実用的なフォントを作成すること
ですから、形の悪い文字は片っ端から個別にスケルトンエディタで作成すると
いう手をとることができます。極端な話、全文字手動で作っても構わないのです。

とは言え、現在修正を必要とする字は何千字もありますから、手動で作成する
文字の数はできるだけ減らしたいところです。部品組合せのアルゴリズムが
改良されれば、手動で作成した文字は不要になるのですから、本当に難しい
字や頻繁に用いられる字などに絞って作成するべきでしょう。その他の文字は
アルゴリズムが改良されるまでの単なる繋ぎと考え、少ない手間でそこそこの
改良を得られる方法を検討したほうが得策です。

現在、ビットマップフォントからストロークを抽出してスケルトン定義を置き
換えるためのプログラムを Lisp で書いています。ソースとしては public
domain を宣言している Ayu 20dot フォントを想定しています。このビット
マップは私が作った Kappa20 を改造した物ですから、全く問題が無いことが
保証されています。

・エレメントの形の改良

和田研フォントを見て気づくことは、基本プリミティブの形が美しければ
もっと良く見える文字がたくさんあることです。例えば、点はもっと曲がった
形にするべきでしょう。個別の文字の骨組みを離れた、東風フォントの点や
縦横・払いの画線の形状はビットマップフォントと無関係に古川さんによって
設計された物ですから、これを和田研フォントのスケルトンに適用することは
問題ありません。

できるだけ近い大きさ・向きの部品を選び、その大きさを調整してスケルトン
にフィッティングするようにすれば、確実にデザインは改良されるでしょう。
オリジナルの和田研フォントキットでは、アウトラインの生成は基本的に
幾何学的作図によっています。これもプログラムで肉づけを記述することに
より、できるだけデザインの自由度を高めるのが目的だったからですが、
太さなどのパラメータを変えても破綻を生じないアルゴリズムを記述するのは
ゼロ除算やほとんど平行な直線が生じないことを保証しなければならず、実に
難しい仕事です。

それに比べ、点集合のサンプルに合わせた変形では拡大・縮小と回転の組合せで
話が済みます。点の順序などは基本的に保たれますので、エラーが出ることも
ほとんど無いでしょう。問題がある時はサンプル数を増やすという手も使えます。
太さなどのパラメータを変えるごとにプリミティブ一式を作成しなければ
なりませんが、私達の開発ではとりあえず明朝・ゴシックに 1 ウェイトずつ
あれば最低限用は足りるでしょう。

		*		*		*

現在、やらなければならない作業は数多くあります。以下のような作業を
手伝ってくださる方を募集しています。特別なデザインセンスやフォント
フォーマットに対する知識を必要としない物もあります。

1) 動作確認、バグチェック

現在までに報告されたバグが、新しいバージョンで修正されたか調べる作業です。
また、フォントがビルドできるかもチェックして頂けると幸いです。

2) 和田研フォントキットの改良

・キットの Common Lisp への書き換え

現在、和田研フォントキットは UtiLisp/C で書かれていますが、今後長期的に
開発を進めていくのであれば、機能が豊富で普及度の高い Common Lisp へ移植
したほうがいいのではないかと思います。

・スケルトンエディタの作り直し

UtiLisp/C と ULX で書かれたスケルトンエディタはとりあえず部品の定義が
できる程度の修正しかしていません。もともと存在した肉づけ表示などの機能は
使用できませんし、耐えがたいほど動作が遅いのが何よりの問題です。

方向性としては、三つの方針が考えられます。
一つは、現在動いているバージョンが遅い原因を調べて、ソースを最適化する
方法です。それが難しいなら、別の言語に移植するという方法もあるでしょう。
第三の方針としては、PfaEdit のような汎用のフォントエディタにスケルトン
フォントの編集機能を追加するという方法があります。いずれにしろ、

・機能追加

現在、Type 1 形式で書き出されたものを PfaEdit のスクリプト機能を利用して
TrueType に変換し、それをマージするという方法でフォントを作っています。
効率が悪いので、直接 CID フォントとして書き出す機能が欲しいところです。

・アルゴリズムの改良

最終的な目標ですが、その前にやるべき事がたくさんあるので、また後日
触れたいと思います。上の二点だけでも、私一人ですぐ出来る物ではないので、
手伝って頂ければ幸いです。この他の改良案も、挑戦してみる価値があると
思います。

3) 手動によるフォント作成

ゴシック体のギリシャ文字など、まだ完成していない文字があります。これらは
フォントエディタで作る必要があるでしょう。

4) 誤字のチェック

非常に地味な作業ですが、まだ組織的に行われておらず、たまたま誤字が
発見されるたびに修正するに留まっています。

作業は簡単で、ただ注意力だけを必要とします。JIS の規格票などを見て、
アウトラインとビットマップの字形が間違っていないかを1字1字確かめる
だけです。人数が多いほど作業は速く、見落としも少なくなります。

		*		*		*

近日中にリリースしたい次バージョンにおいては、以下の変更を行う予定です。
余裕があればこれ以外の作業も行いたいと思います。

・フォント名の変更
・バグ修正
	「−」と「〜」のアウトライン
・和田研フォントキットの新しいコンパイル結果を取り込み
・埋め込みビットマップの変更
	東雲, Kappa20, Ayu の最新版に追従
	ナガ10 を M+ に入れ換え (ライセンスの問題)
・自己充足的なソースコード
	東風のライセンスフリーなサブセットをソースツリーに入れる
・CID/OTF 版の作成
	Adobe Japan1-3 までなら文字定義は揃っている。
	将来は Adobe Japan1-4, 1-5 の文字定義を作成

ご意見・ご質問などをお待ちしています。ソースの commit 権が欲しい方も
申し出て頂ければ対応します。

狩野 宏樹  <kanou****@khdd*****>



Efont-devel メーリングリストの案内
Back to archive index