(57)【要約】  本発明の書字フォントデータは、各文字を書くときの一筆にあたるストロークに関するストローク情報と、このストローク情報を用いて文字をストローク単位で書字することに関する書字情報とを有してなり、前記ストローク情報は、少なくとも各ストロークのアウトライン情報を有し、前記書字情報は、各文字におけるストロークの筆記順序に関する筆順情報を有することを特徴とする。これにより、別途動画ファイルやプログラムコードを作成することなく、ストローク単位もしくは文字部品単位の文字の書字を一般ユーザーが利用するアプリケーション等において容易に実現することができる。【特許請求の範囲】
【請求項１】
各文字を書くときの一筆にあたるストロークに関するストローク情報と、このストローク情報を用いて文字をストローク単位で書字することに関する書字情報とを有してなり、前記ストローク情報は、少なくとも各ストロークのアウトライン情報を有し、前記書字情報は、各文字におけるストロークの筆記順序に関する筆順情報を有することを特徴とする書字フォントデータ。
【請求項２】
ストローク情報は、各ストロークを書描するときの筆先の軌跡の稜線に対応する、描画始終点を持った稜線情報を有し、書字情報は、各ストロークの書描にかかる時間に関する書描時間情報と、あるストローク及びその次のストロークを書描する間の時間に関するストローク間の間隔時間情報とを有する請求項１記載の書字フォントデータ。
【請求項３】
請求項１又は２記載の書字フォントデータであって、更に、一又は複数のストロークによって文字を構成することに関する文字構成情報を有し、この文字構成情報は、少なくとも、文字を構成する一又は複数のストロークをグループ単位にして文字部品として扱うことに関する文字部品情報を有する書字フォントデータ。
【請求項４】
文字構成情報は、各文字における総ストロークの個数情報及び文字部品の個数情報を有する請求項３記載の書字フォントデータ。
【請求項５】
請求項１、２、３、又は４のいずれか記載の書字フォントデータに基づいて、ストローク単位もしくは文字部品単位で出力画面に文字を書字、または印字しうることを特徴とする文字出力システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パーソナルコンピュータ等のコンピュータや、マイクロコンピュータを内蔵したテレビ、携帯電話、ＰＤＡ、電子辞書その他の電子機器で使用される書字フォントデータ、および書字フォントデータに基づいて文字を出力する文字出力システムに関し、より詳細には、各文字を構成するストローク単位の形状情報とそれらを人が書くときの時間情報や文字構成情報を有した書字フォントデータ、および、これを用いて文字データをストローク単位で出力する文字出力システムに関する。
【背景技術】
【０００２】
従来のコンピュータや携帯電話、テレビ等で使用されるフォントデータは、動的表現のための情報を持っておらず、基本的に文字全体の形状のデータのみから構成されるものであった。すなわち、従来のフォントデータは、静止した字形（グリフ）を判子を押したように一度に字形全体で表示するだけの、いわゆる静止文字のフォントデータであり、また、それ以上分解することができない字形全体を単位とした、いわゆる字形全体のフォントデータであった。【０００３】
上記従来のフォントデータからは、文字のストローク単位の筆順情報を得ることはできなかった。このため、文字の筆順を教えるための語学学習用ソフト等のアプリケーションにおいては、ディスプレイ上での従来のフォントデータを使用した文字のストローク単位の筆順書字は、例えば下記のような文字の動的表現によって行われていた。
・バイナリの動画ファイルを作成して、この動画ファイルを、対応するソフトによって再生する（例えば、特開平８−２０５０３２号公報参照）。
・バイナリの動画ファイルを用いずに、動的表現に対応したプログラムコードを書くことによって、従来のフォントデータを使用して文字の動的表現を実施する。
【発明の開示】
【０００４】
しかしながら、上記動画ファイルやプログラムコードを別途作成するには手間や時間がかかり、また、ストローク単位の文字の書字を、一般ユーザーが利用するワープロソフトやプレゼンテーション・ソフトといったアプリケーション等において容易に実現することはできなかった。
【０００５】
また、手書きの文字に代わってコンピュータ等による文字の取り扱いが飛躍的に増大している今日においては、文字を構成するストロークの筆順をはじめとする文字の書字に関する情報が失われ、次世代へ継承されにくくなりつつある。
【０００６】
そこで本発明は、別途動画ファイルやプログラムコードを作成することなく、ストローク単位の文字の書字を一般ユーザーが利用するアプリケーション等において容易に実現することのできる書字フォントデータを提供すること、或いはこのような書字フォントデータに基づいてストローク単位の文字の書字を行うことのできる文字出力システムを提供することを課題とする。
【０００７】
また、コンピュータ等による次世代の文字の取り扱いにおける、文字の書字に関する情報の継承に寄与しうる付加価値の高い書字フォントデータ及び文字出力システムを提供することを課題とする。
【０００８】
上記課題を解決すべく、本発明では下記（１）〜（５）の手段を講じている。
【０００９】
（１）本発明の書字フォントデータは、各文字を書くときの一筆にあたるストロークに関するストローク情報と、このストローク情報を用いて文字をストローク単位で書字することに関する書字情報とを有してなり、前記ストローク情報は、少なくとも各ストロークのアウトライン情報を有し、前記書字情報は、各文字におけるストロークの筆記順序に関する筆順情報を有することを特徴とする。
【００１０】
このようなものであれば、必ずしも動画ファイルや動的プログラムを予め作成しなくても、各文字を一筆単位で筆順に従って書字するための情報をフォントデータから直接取得することができる。さらに、これにより例えば、一般ユーザーが利用するアプリケーション等において、各文字を構成するストローク単位の書描や、各文字に関し、複数のストロークの筆順通りに書描することによる書字や、これらを伴った文字群や語句の筆記を行うことが容易に実現可能となる。
【００１１】
なお本発明において、「書描」とはストローク単位の描画を、「書字」とは文字単位の描画を、「筆記」とは、文字群や語句単位の描画をそれぞれいうものとする。これらはいずれも、各文字を字形全体で判子を押したように表示することによる、従来の文字単位の静的描画とは異なる。
【００１２】
（２）また、前記書字フォントデータにおいて、ストローク情報は、各ストロークを書描するときの筆先の軌跡の稜線に対応する、描画始終点を持った稜線情報を有し、書字情報は、各ストロークの書描にかかる時間に関する書描時間情報と、あるストローク及びその次のストロークを書描する間の時間に関するストローク間の間隔時間情報とを有することが好ましい。
【００１３】
このようなものであれば、各ストロークの描画始終点、描画始点から描画終点へ向かう方向、及び描画始終点間を繋ぐ筆跡位置が特定され、更に、前記筆跡をなぞる所要時間が特定される。これにより、各ストロークの書描態様が決定し、各ストロークの筆先の軌跡に従った動的な書描が可能となる。
【００１４】
また上記に加え、複数のストロークによって文字が構成されるとき、筆記順が連続する二つのストロークのそれぞれの書描の時間的間隔が特定される。このため、運筆上の“間”の情報を得ることができ、人が文字を書くときのような、自然な書字が可能となる。
【００１５】
（３）また、前記いずれか記載の書字フォントデータであって、更に、一又は複数のストロークによって文字を構成することに関する文字構成情報を有し、この文字構成情報は、少なくとも、文字を構成する一又は複数のストロークをグループ単位にして文字部品として扱うことに関する文字部品情報を有するものとすることが好ましい。
【００１６】
このようなものであれば、例えば漢字における部首や、ハングル、タイ文字、デーヴァナーガリー文字等の字母のような、文字部品を有して構成される文字に関し、それぞれの文字部品の情報をフォントデータから取得することができる。これにより、各文字部品単位の描画や、各部首を順に描画することによる文字の書字や、文字部品の情報の検索利用等が可能となる。
【００１７】
（４）また、前記（３）の書字フォントデータにおいて、文字構成情報は、各文字における総ストロークの個数情報及び文字部品の個数情報を有することが好ましい。
【００１８】
このようなものであれば、文字構成情報として、各文字を構成する総ストロークの個数（すなわち、画数）に関する情報、及び各文字を構成する文字部品の個数に関する情報を、フォントデータから取得することができる。これにより例えば、画数分類や画数による検索、或いは、結合音節文字における音節数の分類が可能となる。
【００１９】
（５）また、本発明の文字出力システムは、前記いずれか記載の書字フォントデータに基づいて、ストローク単位もしくは文字部品単位で出力画面に文字を書字、または印字しうることを特徴とする。
【００２０】
このようなものであれば、文字の一部分を出力画面へ表示したり、この書字によってストローク単位もしくは文字部品単位で文字群や語句を出力画面上で筆記したり、また印字することが可能となる。
【００２１】
特に、前記（１）記載のフォントデータに基づくときは、通常の全角又は半角のフォント位置への、筆順に従った１ストローク毎の静的な表示が可能となり、また、前記（３）記載のフォントデータに基づくときは、通常の全角又は半角のフォント位置への、１文字部品毎の静的或いは動的な表示が可能となり、また部品毎の印字も可能となる。
【００２２】
また特に、前記（２）記載のフォントデータに基づくときは、各ストロークの筆跡に従った動的な表示が可能となり、文字や文字群を人間が書くように自然に描画するものとなる。
【００２３】
本発明の書字フォントデータおよび文字出力システムは、上記手段を講じることによって、別途動画ファイルやプログラムコードを作成することなく、ストローク単位の文字の書字を一般ユーザーが利用するアプリケーション等において容易に実現することのできるものとなる。
【００２４】
また、筆順をはじめとする文字の書字に関する情報に関し、書字の情報を文字の取り扱いの次世代へ継承することに寄与しうるものとなり、フォントデータとしてより付加価値の高いものとなる。
【図面の簡単な説明】
【００２５】
【図１】本発明の書字フォントデータを使った、文字を構成する部品ごとに静的に描画する例を示す説明図である。
【図２】本発明の書字フォントデータを使った、１文字の全角・半角位置への１部分の描画例を示す説明図である。
【図３】従来の静的な文字表示と本発明の書字フォントデータを使った筆順動画とを混在して表示した例を示す説明図である。
【図４】ストロークの例を示す説明図である。
【図５】ストロークの一部に属するセリフ、及びコブの例を示す説明図である。
【図６】塗りつぶし部分をもつ記号や絵文字で取り決められたストロークの塗りつぶし方の例を示す説明図である。
【図７】ストローク分解の仕方の相違によるサブストロークの例を示す説明図である。
【図８】各ストロークの描画始終点を持った稜線情報の始終点の説明図である。
【図９】点ストロークを描画する場合の稜線情報の例を示す説明図である。
【図１０】単純ワイプと筆跡の塗りつぶし方の相違を示す比較説明図である。
【図１１】書描時間情報と筆順情報とを組み合わせて記述した例を示す説明図である。
【図１２】文字構成に関する部品情報の例を示す説明図である。
【図１３】本発明の書字フォントレンダラーと書字フォントデータの組み込み例を示す説明図である。
【図１４】アプリケーションに書字機能を持たせるための、本発明の書字フォントレンダラーと書字フォントデータの組み込み例を示す説明図である。
【図１５】文字をストローク単位で静的に描画した例を示す説明図である。
【図１６】筆順・運筆方向を逆転して描画した例を示す説明図である。
【図１７】描画用フレームバッファ内の画像データの例を示す説明図である。
【図１８】文字群に関して行う筆順動画の間隔時間の例を示す説明図である。
【図１９】書字属性の指定方法例を示す説明図である。
【図２０】書字属性の指定方法例を示す説明図である。
【発明を実施するための最良の形態】
【００２６】
１．  概要
フォントは、電子文字を描画するときの「字形（グリフ）」の情報を持ったデータである。それは、ディスプレイに文字を表示したり、プリンタで文字を印刷したりするときに、最も基本となるデータであり、コンピュータ、携帯情報端末、携帯電話、デジタルテレビ、プリンタなどにおいて、汎用的に利用されている。【００２７】
しかし、従来のフォントは、各文字について文字全体の字形のデータを持つにすぎない。それは、紙に印刷するために用いられた活字やタイプライターと同様に、判子を押すように１つの文字の全体が一度に描画されている。つまり、従来のフォントデータでは、画面表示においても印刷においても、文字全体の描画しかできないのである。【００２８】
文字は「読む」ことだけでなく「書く」ことができなければならない。この文字を「書く」ことを動的に表現しようとする場合、従来のフォントデータだけではそれは不可能である。これを実現するためには、文字を構成する要素を一筆ごとに分解しグラフィック化したのちに、アニメーション動画を作成する複雑な作業が必要となる。これは、従来のフォントは、「読む」ための文字データを持っているが、「書く」ための文字データを持っていないからである。そこで、この「書く」という行為に注目して、文字を一筆ごと、すなわち、ストローク単位で構成する新しいフォントデータが次の世代のフォントとして構想される。【００２９】
本発明は、各文字を構成するストローク単位の形状情報とそれらを人が書くときの時間情報や文字構成情報を有した書字フォントデータに関するものである。【００３０】
ここで、本発明の書字フォントデータが対象とする文字は、従来のフォントが対象とする文字と同じである。例えば、日本語であるならば、ＡＳＣＩＩ文字や半角カタカナ文字やＪＩＳ  Ｘ  ０２０８−１９９７のような電子文字セットを対象とする。よって、それらの電子文字は、従来と同じ符号化方式で特定され取り扱うことができる。それらには、半角文字、全角文字を問わず、アルファベット、数字、ひらがな、カタカナ、漢字、記号などが含まれている。また、日本語に限らず、あらゆる言語の文字、例えば、中国簡体字やハングルやデーヴァナーガリー文字などを対象とすることができる。そして、書字フォントデータは、従来のフォントデータと同様、フォントファイルとして提供され、あらゆる記憶媒体に記録されうるものとする。【００３１】
一方、各電子機器を制御しているソフトやＯＳには、従来のフォントデータを描画するための機能が備わっている。それは、システムによって様々な名称で呼ばれるが、本書では、それを、フォントデータに基づいて文字を描画する機能の意味で、「フォントレンダラー」と呼ぶことにする。現行のＯＳなどに組み込まれているフォントレンダラーは、フォントデータに基づいて文字の全体画像データを作成し、その静的な画像データをディスプレイドライバやプリンタドライバに送っているにすぎない。つまり、それは文字全体を一度に表示したり印刷したりする機能しか有していない。【００３２】
ここで、本発明の書字フォントデータに基づいて、文字をストローク単位で描画するためには、新しいフォントレンダラーが必要となる。これを「書字フォントレンダラー」と呼ぶことにする。これは、従来のように文字全体を静的に描画することに加え、１文字の部分を静的に描画することができ、さらに文字を人が書くように動的に描画できる機能を備えるフォントレンダラーである。【００３３】
書字フォントレンダラーは、汎用の基本ソフトであり、文字を扱うあらゆるソフトやアプリケーションから利用できるように、そのＡＰＩ（アプリケーション・プログラム・インターフェース）を公開する。そして、そのＡＰＩを通じて、文字のストローク単位での静的描画や動的描画を行えるソフトやアプリケーションを開発することができる。また、既存のアプリケーションに関しては、機能拡張を行うアドイン・ソフトを開発、提供することにより、それらの機能を実装することができる。【００３４】
本発明は、上記の書字フォントデータ、および、それを用いて、文字データをストローク単位で出力する文字出力システムに関するものである。文字データをストローク単位で出力する代表例として、本書では、文字をストローク単位で描画する書字フォントレンダラーの説明を行う。この書字フォントデータと書字フォントレンダラーからなる書字フォントシステムは、従来のフォントシステムと並列して、もしくはそれに代わるものとして、各電子機器を制御しているソフトやＯＳに組み込まれることが望ましい。【００３５】
以下、本発明を実施するための最良の形態例を、各図を付して説明する。【００３６】
なお、図１は本発明の書字フォントデータを使った、文字を構成する部品ごとに静的に描画する例を示す説明図である。図２は本発明の書字フォントデータを使った、１文字の全角・半角位置への１部分の描画例を示す説明図である。図３は従来の静的な文字表示と本発明の書字フォントデータを使った筆順動画とを混在して表示した例を示す説明図である。図４はストロークの例を、図５はストロークの一部に属するセリフ、及びコブの例をそれぞれ示す説明図である。図６は塗りつぶし部分をもつ記号や絵文字で取り決められたストロークの塗りつぶし方の例を示す説明図である。図７はストローク分解の仕方の相違によるサブストロークの例を示す説明図である。図８は各ストロークの描画始終点を持った稜線情報の始終点の説明図であり、図９は点ストロークを描画する場合の稜線情報の例を示す説明図である。図１０は単純ワイプ（上図）と稜線情報を有する筆跡（下図）との、塗りつぶし方の相違を示す比較説明図である。図１１は書描時間情報と筆順情報とを組み合わせて記述した例を示す説明図である。図１２は文字構成に関する部品情報の例を示す説明図である。【００３７】
また、図１３は本発明の文字出力システムとして、本発明の書字フォントレンダラーと書字フォントデータの組み込み例を示す説明図である。図１４は本発明の別の文字出力システムとして、アプリケーションに書字機能を持たせるための、本発明の書字フォントレンダラーと書字フォントデータの組み込み例を示す説明図である。また図１５、図１６は、本発明の別の文字出力システムによる、それぞれ文字をストローク単位で静的に描画した例、及び、筆順・運筆方向を逆転して描画した例を示す説明図である。図１７は描画用フレームバッファ内の画像データの例を示す説明図である。図１８は文字群に関して行う筆順動画の間隔時間の例を示す説明図である。そして、図１９及び図２０は、書字属性の指定方法の例を示す説明図である。【００３８】
２．  書字フォントデータ
２−１．  静的全体フォントデータと動的構成フォントデータ
本発明の書字フォントデータは、従来のアウトラインフォントのデータの拡張版であり、従来のフォントとしても使用できる。それにより、従来のフォントと本発明の書字フォントを使った描画を、１つの文章の中で混在することができるように構想している。つまり、従来の１文字の全角・半角の位置に、本発明の書字フォントデータを使って、その１文字の１部分を描画することができる。例えば、図２に示すように、図１において文字を構成する部品ごとに分解した文字の一部分を１つの文章の中に組み込むことができる。【００３９】
また、画面表示においては、従来の静的な文字表示と書字フォントデータを使った動的な文字表示、例えば筆順動画を混在して表示しうる。例えば図３に示すように、時間の経過と共に上段から下段に進むにつれ、人が書いているように動的に描画される。【００４０】
ここで、従来の全体文字についての静的なフォントに関するデータを、静的全体フォントデータと呼ぶことにする。書字フォントデータは、この静的全体フォントデータに加えて、さらに、動的構成フォントデータというべきデータを持っている。【００４１】
書字フォントデータの持つ、静的全体フォントデータは、従来のアウトラインフォントのデータと同様のものである。それは、データの容量や各データを記録しているオフセット位置などに関するヘッダ・セクションと、データの実内容を記述したボディ・セクションからなる。ボディ・セクションには、全体文字のアウトライン、文字コードとそのグリフＩＤコードへのマッピング、フォントファミリー、メトリックス、ヒンティングなどに関する情報が記述される。ここで、この静的全体フォントデータの部分を、ＯｐｅｎＴｙｐｅのような既に公開されているフォントフォーマットをベースとして策定するならば、書字フォントデータは、従来のフォントデータに対して互換性を持つことが可能になる。【００４２】
書字フォントデータは、この静的全体フォントデータに加えて、さらに、動的構成フォントデータというべきデータを持っている。その動的構成フォントデータも、データの容量や各データを記録しているオフセット位置などに関するヘッダ・セクションと、データの実内容を記述したボディ・セクションからなる。ボディ・セクションには、ストローク情報、書字情報、文字構成情報、拡張補助情報が含まれる（表１）。【００４３】
【表１】
2008015825.tif 000002
【００４４】
２−２．  ストローク
まず、１つの文字を構成する１筆ずつをストロークと呼ぶ。例えば、図４に示すように、日本語の漢字では、１画１画の字画がストロークであり、「女」という漢字は、３ストロークからなり、同様に「Ａ」というアルファベットも３ストロークからなる。【００４５】
ストロークは、文字を構成する図学的な単純直線や単純曲線ではなく、太さを持った屈曲線や広さを持った点である。また、ストロークは、フォントデザインにおけるエレメントにまで文字を分解したものではない。エレメントには、図５に示されるような英数字の装飾部である「セリフ」や漢字の「コブ」なども含まれるが、それらは、しかるべきストロークに属するとして取り扱う。【００４６】
どのような文字であれ、「書く」ことのできる文字は、１つもしくは複数のストロークから構成され、各ストロークに分解することができる。その分解の仕方や書き順に関しては、その文字を「書く」文化の中で、標準的なやり方が確定していると見なせる。したがって、ストロークによる文字構成は、ひらがな、カタカナ、英字、数字をはじめ、中国簡体字、ハングル、デーヴァナーガリー文字など世界中の文字に適用できると考えられる。【００４７】
書くことができる記号についても同様であるが、塗りつぶし部分をもつ記号や絵文字については、塗りつぶし部分は１ストロークで塗りつぶすものと取り決めをしておく。例えば、図６に示す星印では、符号１を始点として矢印方向に１ストロークで描画され、図６に示す音符では、その符頭は符号２を始点として矢印方向に１ストロークで描画される。【００４８】
また、伝統的に複数のストローク分解の仕方がある場合は、その文字の文化の中で代表的な分解の仕方にしたがってデータを記述する。このとき、他の分解の仕方におけるストロークをサブストロークと呼ぶこととし、それを拡張補助情報として記述することもできる。例えば、図７に示すように、日本では７ストロークに分解され、中国では６ストロークに分解される文字の場合、中国での分解の仕方におけるストロークをサブストロークと呼び、これを拡張補助情報として記述する。【００４９】
なお、以下、１文字を書くことに関する場合は「書字」、１ストロークを書くことに関する場合は「書描」という用語を用いることにする。【００５０】
２−３．  ストローク情報
ストローク情報は、各ストロークの輪郭を定めたアウトライン情報と、各ストロークを描くときの描画始終点を持った稜線情報を含む。さらに、それぞれのストロークを描く際の範囲を定めたバウンディング・ボックスの情報を含む。これらの形状に関するデータの座標と縮尺率は、前述の静的全体フォントデータのアウトライン情報に合わせる。そして、１文字を構成する各ストロークには、それぞれを区別するＩＤとなるストローク番号を付与する。【００５１】
各ストロークのアウトライン情報を持てば、文字の一部分だけを描画することができるようになる。ストロークは、太さを持った線や広さをもった点で表わすことができ、その輪郭は、おのおの１つの閉曲線をなす。その輪郭をなすアウトライン曲線は、Ｂスプラインやベジェ曲線のデータとして記述される。【００５２】
各ストロークを人が書くように、例えば左から右へ時間をかけて描画するためには、その筆先の軌跡に関する情報が必要になる。その筆先の軌跡は、各ストロークのアウトライン図形の中心線を辿ることで再現できよう。そこで、各ストロークの描画始終点を持った稜線情報を持つことにする。例えば、図８に示される「筆跡の始点」と「筆跡の終点」をストロークの描画始終点とする稜線情報を持つことにより、アウトライン内が塗りつぶされてストロークが描画される。ただし、前述した「セリフ」や「コブ」のような飾りエレメント部分は、ストロークの付属部分とみなし、その装飾部を外したストローク本体の図形に関して稜線情報を持つこととする。この稜線情報も、Ｂスプラインやベジェ曲線のデータで表わすことができる。その際、太さを持った筆先の描画始終点は、図に示すように、稜線上で、かつ、アウトラインの内側にとることになる。なお、点ストロークを描画する場合、稜線情報は、描画始終点が一致した１点のみのデータとなる（図９）。【００５３】
記号などで塗りつぶしストロークを描画する場合は、稜線情報は渦巻状に塗りつぶすように適宜定める。例えば、図６に示す音符の場合、その符頭のストロークは符号２を「筆跡の始点」として塗りつぶされる。【００５４】
ところで、アウトライン内を単にワイピングで塗りつぶした場合、塗りつぶし境界は直線的になってしまい不自然である（図１０上図）。一方、稜線情報を持つならば、それにそって塗りつぶし効果をコントロールすることで、アウトライン内をペンや筆で書くように自然に塗りつぶすことが可能となる（図１０下図）。なお、飾りエレメント部分は、ストローク本体の描画に続けて自然に塗りつぶすこととする。【００５５】
各ストロークのメトリックス情報として、ストローク単位のバウンディング・ボックスのデータが必要となる。バウンディング・ボックスは、ＸＹ座標に平行な４辺を持ちストロークに外接する長方形である。それは、ストロークのＸＹ座標の最大最小値を示しており、文字の背景処理などに関して有用なデータである。【００５６】
また、文字の表示は最終的には、表示装置であるディスプレイ上の物理ピクセル（ドットマトリックス）単位で行われる。つまり、アウトライン図形の塗りつぶしは、実際はビットマップ・データに変換される。ところが、小さな文字を表示するような場合、アウトライン図形を縮小して計算によってビットマップ・データを生成すると、そのビットマップ・データが物理的なドットマトリックスにうまく合わず、文字がうまく表示できない場合がある。従来フォントでは、このような場合に備えてヒンティング情報を持っている。このため、書字フォントデータにおいても、ストローク単位でのヒンティング情報が必要となる。【００５７】
なお、先に述べたように、ある文字に複数のストローク分解の仕方がある場合は、代表的なストローク分解の仕方を採用する。そして、他の分解の仕方に関するサブストローク情報は、拡張補助情報に記述する（図７）。【００５８】
２−４．  書字情報
書字情報は、各ストロークの書き順を定めた筆順情報と、各ストロークを描く際の時間や速度に関する書描時間情報を含む。【００５９】
筆順情報は、ストロークの書き順を定めたものであり、ストローク番号の順序で示す。ストローク番号は、通常、書き順に合わせて連番で付与し、その場合、筆順情報を省略することもできる。しかし、図学的処理上の観点からは、位置の条件にしたがって、ストローク番号を付与することも考えられ、筆順情報はそれとは別に、独立のデータとして持つことが望ましい。また、前述のサブストロークに関する別の書き順を定めるためにも、ストローク番号順と筆順情報は独立である必要がある。なお、筆順は、各文字に対して一義的に定めることとする。記号などのように、書き順が定かでない文字についても、一定の筆順を定める。例えば、図６の「音符」の書き順を、符幹１、符頭２、符尾３の順番と定め、図６の「矢印」の書き順を、符号１、２、３の順番と定める。【００６０】
また、同じ文字に関して複数の書き順が存在するときは、代表的なものを採用し、他のものについては拡張補助情報に記述する（図７）。【００６１】
書描時間情報は、各ストロークを人が書くように動的に描画する際に必要となる情報である。まず、各ストロークを人が書くように自然に描画する標準速度、および、それにかかる標準時間を記述する。一定速度で描画するならば、描画時間は、前述した稜線の描画始終点間の道のり長さに比例すると考えられるが、飾りエレメントがある場合は、その分の描画時間がかかるであろう。そしてまた、あるストロークと次のストロークを書描する間を空ける間隔時間情報を記述する。【００６２】
これらの書描時間情報は、筆順情報と組み合わせて記述することができる。例えば、第１ストローク描画は、ストローク番号１を０．３秒で描画し、次に、０．１秒の間隔を空け、第２ストローク描画は、ストローク番号２を０．１秒で描画し、などというようなデータを、適宜のフォーマットを定めて記述できる。図１１上段の例では、ストローク番号１を０．２０秒で描画し、次に０．１５秒の間隔を空け、ストローク番号２を０．３０秒で描画し、０．１０秒の間隔の後、ストローク番号３を０．１５秒で描画する。同様に、図１１下段の例では、ストローク番号１および２を０．２０秒で、ストローク番号３を０．０５秒で描画し、各ストロークの間隔を０．１０秒としている。【００６３】
なお、文字を人が書くようにより自然に描画するためには、各ストロークの稜線に関して、それを構成する線素区間ごとに速度や加速度を指定し、拡張補助情報として記述することも可能である。【００６４】
２−５．  文字構成情報
文字構成情報は、文字を構成する文字部品に関する情報と、総ストローク数や文字部品数に関する個数情報を含む。【００６５】
文字構成に関する部品情報は、一または複数のストロークをグループ単位として扱う文字部品に関する情報である。例えば、漢字では、一または複数のストロークをまとめて、「部首」として扱い、ハングルやデーヴァナーガリー文字のような結合音節文字では、一または複数のストロークをまとめて、「字母」として扱う。また、アルファベットに関しても、ドイツ語では「ウムラウト」、フランス語では「アクサン」「セディーユ」のようなダイアクリティカルマークのついた文字がある。図１２において、薄く示される部分がそれぞれ「部首」、「字母」、「ダイアクリティカルマーク」といった文字部品を示している。【００６６】
従来のフォントでは、これらの情報を特に独立のデータとして記述していない。これらのデータをフォントという基礎データに含ませておくことは、文字の分類を始め、文字教育、文字文化継承などにおいて、大いに資するものである。【００６７】
文字部品情報は、それらの文字部品の名称、それがいずれのストロークからなるか、文字部品単位での書き順などのデータである。例えば、「利」とう漢字は、「のぎへん」という「偏」と、「りっとう」という「旁」でできており、「のぎへん」はストローク番号１〜５の５ストロークからなり、「りっとう」はストローク番号６〜７の２ストロークからなり、「利」は、第１に「のぎへん」を書き、第２に「りっとう」を書く、というようなデータを、適宜のフォーマットに定めて記述する。その際、「偏」「旁」「のぎへん」「りっとう」などの文字部品用語は、適宜、符号化する。なお、そのような文字部品から構成されていない文字については、この情報は空白となる。【００６８】
文字構成における個数情報は、文字を構成するストロークの個数や上記の文字部品の個数についての情報である。例えば、漢字の場合、総ストローク数は「画数」に当たる。ストローク数は、筆順と同様に各文字に一義的に定めるものとする。記号などのように、ストローク数が定かでない文字についても、一定のストローク数を定める。また、文化によって画数が異なる漢字があり、ストローク数の確定されていない文字もあるが、ストローク数は代表的なものを採用し、一義的に定めることにする（図７）。【００６９】
そして、他のストローク数に関する情報は拡張補助情報に記述する。これらの点は文字構成部品の個数情報に関しても同様である。【００７０】
３．  書字フォントレンダラー
３−１．  汎用ソフトとしての書字フォントレンダラー
書字フォントレンダラーは、書字フォントデータに基づいて、文字をストローク単位で描画する機能をもつ。ストローク単位の描画には、静的描画と動的描画がある。静的描画は、文字の一部分を描画したり、文字をストローク単位や文字部品単位で色分けして描画することができる機能である。また、動的描画は、文字を人が書くように筆順にしたがって描画したり、筆順・運筆方向の逆転やランダム順での描画を行うことができる機能である。これらの機能は、文字の新しい表現の世界を開くとともに、文字教育の分野においてその効果を発揮する。【００７１】
フォントは、文字を扱うあらゆるソフトやアプリケーションで利用されるものである。よって、書字フォントレンダラーは、従来のフォントレンダラーと同様に、汎用の基本ソフトと位置づけられる。それは、様々な電子機器の制御ソフトやＯＳの機能の一部として、従来のフォントレンダラーに並列して組み込まれるか、もしくは、その上位互換性を持ったソフトとして従来フォントレンダラーに置き換えて組み込まれることが望ましい（図１３）。【００７２】
そして、書字フォントレンダラーはその機能をＡＰＩとして公開することにより、他のソフトやアプリケーションは、そのＡＰＩを通じて、書字フォントレンダラーを操作し、書字フォントデータを活用すること、すなわち、書字機能を使用することが可能になる。【００７３】
３−２．  書字フォントへのアクセス
書字フォントを使った書字機能を使用するソフトやアプリケーションを新たに開発する場合は、書字フォントレンダラーのＡＰＩを直接使うようにコーディングすればよい（図１４）。例えば、日本語の文字の綴り方や漢字学習用のアプリケーションを開発する場合、そのソフトに必要な機能の多くは、書字機能ＡＰＩをコールするだけで実現できる。例えば、筆順、部首、画数などのデータは、書字フォントデータ自体に含まれているので、情報取得用のＡＰＩによって簡単に取得できる。この場合は、書字フォントデータ自体が、一種の文字データベースの役割をする。また、文字の部分表示、字画や部首の色分け表示、書き順を教示する筆順動画などについては、描画用のＡＰＩにより実現できるため、改めて一から画像や動画を作成する必要はない。【００７４】
同様に、携帯情報端末や電子辞書などの電子機器に関しては、ＡＰＩを通じて書字フォントレンダラーを直接操作するプログラムをそれらに組み込むことにより、書字機能を持った電子機器として開発することができる。【００７５】
一方、文字を扱う多くのアプリケーションが既に存在している。それらのアプリケーションに書字機能を持たせるためには、書字フォントレンダラーのＡＰＩにアクセスしてそれを操作するためのアドインを開発して組み込めばよい（図１４）。【００７６】
アドインとは、一般に、既存のアプリケーション・ソフトに組み込んで、機能追加をするソフトのことであり、この場合の書字機能アドインは、アプリケーションと書字フォントレンダラーのインターフェースの働きをする。【００７７】
例えば、プレゼンテーション・ソフトでは、現在でも文字のアニメーションを行うことができるが、それは文字の字形全体をベースにしたアニメーションであって、文字の部分色分けや筆順動画を行うことは容易ではない。ここで、そのプレゼンテーション・ソフト用の、書字機能アドインを開発して組み込むことにより、文字の部分色分けや筆順動画が容易にできるようになり、そのソフトにより豊かな表現力を持たせることができる。【００７８】
同様に、ワープロなどのドキュメントソフトやＷｅｂブラウザ、メーラーなどに関しても、それぞれに書字機能アドインを開発して組み込めば、それぞれのアプリケーションで書字機能を使用できるようになる。その結果、コンピュータのみならず携帯電話などさまざまな電子機器において、書字機能を使用できるようになる。【００７９】
さらに、書字機能の応用として、ロボットによる書字を実現することができる。書字フォントデータの持つストローク情報の稜線情報は、筆先の軌跡のデータを示している。書字フォントレンダラーの情報取得ＡＰＩにより、筆順情報と稜線情報を取得して、ロボットの運動機能をそれにしたがって制御するプログラムを開発すれば、ロボットに書字させることも可能になる。【００８０】
３−３．  書字フォントレンダラーの機能
書字フォントレンダラーの機能、したがってまた、書字機能ＡＰＩの種類は大きく分けて３つある。【００８１】
第１の機能は、書字フォントデータの情報を取得することである。例えば、書字情報の中の書描時間情報や、文字構成情報の中の文字部品である「部首」の情報などを取得することができる。【００８２】
第２の機能は、書字フォントデータに基づいて、文字をストローク単位で静的に描画することである。例えば、ある特定の部首だけをその全角文字位置のまま描画したり、字画や部首ごとに色分けして描画したりすることである（図１、図２、図１５）。【００８３】
第３の機能は、書字フォントデータに基づいて、文字を時間をかけて描画することである。例えば、文字を人が書くように筆順にしたがって時間をかけて描画したり、筆順・運筆方向を逆転して描画したり、ランダム順で描画したりすることである（図３、図１６）。その際、各ストロークを、時間をかけて例えば左から右へと書描すること、ストローク単位でタイピングするように書描すること、動的描画においてストローク単位で色を変更することなども可能である。【００８４】
前記第１の機能は、データを読み取ることにすぎないので、容易に実現可能である。第２の機能は、従来のフォントレンダラーの機能と本質的には変わらず、その実現方法は従来のフォントレンダラーに準じる。文字の部分色分けについても、ストロークごとの画像を作成してそれを合成することにより可能になる。【００８５】
前記第３の機能は、従来のフォントレンダラーにはない機能である。しかし、動的描画の実現方法は、現行の動画ソフトの原理を応用することで実現可能である。動画は毎秒何コマかのフレーム画像の集合から構成されている。例えば、１秒間２４フレームの動画を作成するということは、２４分の１秒ごとの静止フレーム画像を２４枚作成することである。まず、書字フォントレンダラーは、ＯＳなどからデバイス情報を取得して、それにしたがって、適宜のサイズと数の描画用フレームバッファを確保する。そして、ＯＳなどが提供するタイマー機能に従ってタイミングを取り、書字フォントデータのストローク情報と書字情報から、前もって画像を順次作成してゆく。その画像データは、アプリケーションやアドイン側からのコールにより、適宜のタイミングで表示用データとして送り出される（図１７）。その際、送出が終わった描画用フレームバッファは、新たな画像を作成・描画するために使用することができるので、描画用フレームバッファを全フレームの数だけ用意する必要はない。【００８６】
なお、筆順動画は、１文字単位で行うこともできるが、単語や文章といった文字群に関しても行うことができるものとする。その際、人が文字を書くように、１つの文字の筆順動画が終わってから、ある程度の間をおいて次の文字の筆順動画を始める。このとき、ある文字と次の文字を書字するまでの間隔時間は、書字フォントレンダラーが管理する。例えば、文字群が行変えを含んでいるときは、その行変え時には、通常の文字間の時よりも多くの間隔時間を取る（図１８）。そして、これらの間隔時間については、書字フォントレンダラーの設定で、変更・微調整ができるようにする。【００８７】
また、最終的に文字が表示される表示用フレームを、どのようにアプリケーションや書字機能アドイン側で用意するかなど詳細については、そのアプリケーションの構造に依存する。例えば、プレゼンテーション・ソフトやＷｅｂブラウザでは、動的描画の仕組みが既に備わっているので、アドインによって筆順動画機能などをそこに追加するようにすればよい。一方、もともと動的描画の機能を持たないドキュメントソフトなどの場合は、アドインの中で表示用フレームバッファを用意するなどの処理が必要となる。【００８８】
３−４．  従来フォントと書字フォントの混在
本発明の文字出力システムの特徴の１つは、１つの文書の中で、従来フォントと書字フォントを混在して使えることにある（図２、図３）。その際、従来フォントと書字フォントをどのように識別するかという課題が生ずるが、それは、次のようにして解決される。【００８９】
まず、データファイルを作成する際に、その文書の中で書字フォントを使用するべき文字・文字群に対して、書字属性を付与する。この書字属性とは、文字や文字群を書字フォントレンダラーによって、どのように描画するかを指示するものである。例えば、それは、“第１部首のみの描画”というような静的描画や、“１回だけ筆順動画”というような動的描画の指示を一定の書式で記述したものである。一方、アプリケーションや書字機能アドインは、データファイルを読み取るときにその書字属性を認識し、書字属性の付与された文字・文字群に対して、書字フォントレンダラーにその指示にしたがった処理を行わせる。一方、書字属性の付与されていない文字・文字群に関しては、その処理を従来のフォントレンダラーに任せる。これにより、１つの文書の中で従来フォントと書字フォントを混在して使用し、画面表示したり印刷したりすることができるようになる。【００９０】
この書字属性は、現行用いられている文字属性の一種と見なすことができる。例えば、ワープロの場合、文字・文字群ごとに、サイズや色の指定、イタリック・ボールド・下線付きなど基本的書体変形を指定する文字属性の入力を行うことができる。この文字属性は、データファイル内で当該の文字・文字群に関係付けられたバイナリのデータとして記述・保存され、画面表示や印刷をするときに、その文字属性が出力に反映される。それと同様に、書字属性も、データファイルを作成するときに、文字・文字群ごとに入力を行うことができる。そして、書字属性は、文字属性の一種としてデータファイル内に記述・保存され、画面表示や印刷をするときに、その書字属性が出力に反映されるようになる。図１９では、１．書字属性を入力する前の原文、２．原文中のある文字に対する書字属性の入力、３．書字属性が反映された後の画面表示の例が示されている。【００９１】
なお、ワープロに組み込む書字機能アドインの場合、データファイルを画面表示・印刷するときに、書字属性を認識して書字フォントレンダラーにしかるべき処理を行わせる機能だけではなく、データファイルを作成するときに、書字属性を入力しそれをデータファイルに記述する機能もあわせ持つように開発する。【００９２】
一方、Ｗｅｂブラウザの場合、データファイルの形式は、通常、ＨＴＭＬファイルである。ＨＴＭＬファイルでは、文字属性は、タグやスタイルシートによって記述される。そのタグやスタイルシートについては、Ｗ３Ｃによってその標準が既定されているが、新たに書字属性用の拡張的なタグやスタイルシートを策定することは可能である。これらの拡張的なタグやスタイルシートを認識し、書字フォントレンダラーにしかるべき処理をさせる書字機能アドインをＷｅｂブラウザに組み込むことにより、Ｗｅｂにおいても書字フォントによる書字表現を実現することができる（図２０）。【００９３】
なお、Ｗｅｂブラウザは、データファイルであるＨＴＭＬファイルを読み込んで、画面表示したり印刷したりする機能を持つだけであり、ＨＴＭＬファイルを作成する機能は持たない。一般的に、ＨＴＭＬファイルは、ＨＴＭＬエディタやＷｅｂページ作成アプリケーションによって作成される。よって、Ｗｅｂの場合、データファイルに書字属性を入力する機能は、ＨＴＭＬエディタかＷｅｂページ作成アプリケーションに機能追加するアドインとして開発される。【００９４】
ところで、動的描画の開始タイミングをどのようにとるか、書字属性をどのように指定するか、その詳細についてはそのソフトの目的や性格に応じて定める必要がある。例えば、ワープロ文書において、書字属性で、“１回だけの筆順動画”というような指示をした場合、文字・文字群に書字属性を入力した時点で、即時に画面上で動的描画を開始することとする。また、そのデータファイルの読み込み時には、当該ページがアクティブになったときに、動的描画を開始することとする。また例えば、ＨＴＭＬファイルにおいて、書字属性で、“３秒後に開始して１回だけの筆順動画”というような指示をした場合、書字機能アドインの組み込まれたＷｅｂブラウザは、ＨＴＭＬファイルの読み込みと解釈が完了して当該文章部分を描画開始する時点を０秒目として、その３秒後に動的描画を開始することとする。【００９５】
４．他の実施形態
本発明の書字フォントデータは、書字フォントレンダラーとの組み合わせての利用に限定されず、多様な用途に利用することができる。例えば、語学学習用のソフトや電子辞書等において、書字フォントデータの有する文字構成情報を利用して、偏、旁等の文字部品が共通する字を検索できるようにしたり、文字部品の個数が共通する字を検索できるようにしたりすることができる。この場合、検索により抽出された文字の動的描画は不要であり、単に表示するだけでよい。
【産業上の利用可能性】
【００９６】
本発明の書字フォントデータないしこれを具備する文字出力システムによれば、筆順どおりの動的出力をはじめ、ストローク単位、あるいは文字部品単位での出力を、使用フォントを変更することで容易に行うことができる。これにより、各文字・各単語・各文章に個別の動画ファイルを作ることなく、文字のストローク単位の動的出力を行うことができる。ひいては、特定の動画ファイルや特定のソフトウェアを用いることなく、文字のストローク単位の書字を、汎用アプリケーションにおいて容易に実現することができる。
【図１】
2008015825.tif 000003
【図２】
2008015825.tif 000004
【図３】
2008015825.tif 000005
【図４】
2008015825.tif 000006
【図５】
2008015825.tif 000007
【図６】
2008015825.tif 000008
【図７】
2008015825.tif 000009
【図８】
2008015825.tif 000010
【図９】
2008015825.tif 000011
【図１０】
2008015825.tif 000012
【図１１】
2008015825.tif 000013
【図１２】
2008015825.tif 000014
【図１３】
2008015825.tif 000015
【図１４】
2008015825.tif 000016
【図１５】
2008015825.tif 000017
【図１６】
2008015825.tif 000018
【図１７】
2008015825.tif 000019
【図１８】
2008015825.tif 000020
【図１９】
2008015825.tif 000021
【図２０】
2008015825.tif 000022
【国際調査報告】
2008015825.tif 000023
2008015825.tif 000024
2008015825.tif 000025
2008015825.tif 000026