しかしながら、上記のような禁則処理を行う表示装置は、行頭又は行末に表示されないようにする文字の文字コードをあらかじめ設定しておく必要がある。このため、禁則処理が文字コード体系による制約を受ける場合があった。例えば、未知の文字コード体系の文字を表示する場合には禁則処理を行うことができない場合があった。
また、上記のような関連画像を文字に関連づけて表示する表示装置は、文字に関連づけて表示する関連画像をリアルタイムに生成するため、その処理負荷は軽いものとはなっていなかった。
また、上記のような文字列の一部の指定を支援する表示装置は、文字コードに基づいて文字列の解析を行うため、文字コード体系による制約を受ける場合があった。
本発明は上記課題に鑑みてなされたものであって、その第1の目的は、文字コード体系による制約を抑止しつつ、禁則処理を好適に行うことができるようになる表示装置、表示装置の制御方法、プログラム及びフォントデータを提供することにある。
また、第2の目的は、文字に関連する関連画像を処理負荷を軽減しつつ表示させることができるようになる表示装置、表示装置の制御方法、プログラム及びフォントデータを提供することにある。
さらに、第3の目的は、文字コード体系による制約を抑止しつつ、文字列の一部の指定をユーザが好適に行えるようになる表示装置、表示装置の制御方法、プログラム及びフォントデータを提供することにある。
上記課題を解決するために、本発明に係る表示装置は、文字を表示するためのフォント情報と、当該文字の前及び/又は後における改行を制御するための改行制御情報と、をそれぞれ含む複数のフォントレコードを含むフォントデータを記憶するフォントデータ記憶手段と、前記複数のフォントレコードの全部又は一部に係るフォント情報に基づいて、文字列を表示する文字列表示手段と、前記文字列表示手段による前記文字列の表示における改行位置を、当該文字列に含まれる文字に係る前記改行制御情報に基づいて決定する改行制御手段と、を含むことを特徴とする。
また、本発明に係る表示装置の制御方法は、文字を表示するためのフォント情報と、当該文字の前及び/又は後における改行を制御するための改行制御情報と、をそれぞれ含む複数のフォントレコードを含むフォントデータを記憶してなるフォントデータ記憶手段から前記フォントデータを読み出すためのフォントデータ読み出しステップと、前記フォントデータ読み出しステップによって読み出されるフォントデータに含まれる複数のフォントレコードの全部又は一部に係るフォント情報に基づいて、文字列を文字列表示手段に表示させる文字列表示ステップと、前記文字列表示手段による前記文字列の表示における改行位置を、当該文字列に含まれる文字に係る前記改行制御情報に基づいて決定する改行制御ステップと、を含むことを特徴とする。
また、本発明に係るプログラムは、文字を表示するためのフォント情報と、当該文字の前及び/又は後における改行を制御するための改行制御情報と、をそれぞれ含む複数のフォントレコードを含むフォントデータ、に含まれる前記複数のフォントレコードの全部又は一部に係るフォント情報に基づいて、文字列を表示する文字列表示手段、及び、前記文字列表示手段による前記文字列の表示における改行位置を、当該文字列に含まれる文字に係る前記改行制御情報に基づいて決定する改行制御手段、として、携帯ゲーム機、家庭用ゲーム機、業務用ゲーム機、携帯電話機、携帯情報端末(PDA)やパーソナルコンピュータなどのコンピュータを機能させるためのプログラムである。
また、本発明に係るフォントデータは、文字を表示するためのフォント情報と、当該文字の前及び/又は後における改行を制御するための改行制御情報と、をそれぞれ含む複数のフォントレコードを含むフォントデータである。
また、本発明に係る情報記憶媒体は、上記プログラム及び上記フォントデータのうちの少なくとも一方を記録したコンピュータ読み取り可能な情報記憶媒体である。
本発明では、文字を表示するためのフォント情報と、当該文字の前及び/又は後における改行を制御するための改行制御情報と、をそれぞれ含む複数のフォントレコードを含むフォントデータが記憶される。また、複数のフォントレコードの全部又は一部に係るフォント情報に基づいて文字列が表示される。そして、その文字列の表示における改行位置が、当該文字列に含まれる文字に係る改行制御情報に基づいて決定する。本発明によれば、文字の前及び/又は後における改行を制御するための改行制御情報をフォントデータに含ませることが可能となり、文字列を表示する場合における改行位置がこの改行制御情報に基いて決定されるため、文字コード体系による制約を抑止しつつ、禁則処理を行うことができるようになる。
なお、本明細書において、文字とは、漢字、平仮名、片仮名、数字などを含むものである。また、例えばアルファベット、キリル文字、ハングル文字、タイ語文字、繁体文字や簡体文字などの他の言語に対応したものを含むものである。さらに、例えば“(”や“)”などの約物(記号)や空白などを含むものである。
また、本発明の一態様では、前記改行制御情報は、その文字の前における改行を制御するための第1改行制御情報と、その文字の後における改行を制御するための第2改行制御情報と、を含み、前記改行制御手段は、前記文字列における少なくとも一部の隣接文字について、当該隣接文字のうちの先の文字に係る前記第2改行制御情報と、当該隣接文字のうちの後の文字に係る前記第1改行制御情報と、に基づいて所定の処理を実行し、その実行結果に基づいて前記改行位置を決定するようにしてもよい。
また、本発明の一態様では、前記第1及び第2改行制御情報はともに数値情報であり、前記改行制御手段は、前記文字列における少なくとも一部の隣接文字について、当該隣接文字のうちの先の文字の前記第2改行制御情報と、当該隣接文字のうちの後の文字の前記第1改行制御情報と、に基づいて所定の演算を行い、その演算結果に基づいて前記改行位置を決定するようにしてもよい。
また、本発明の一態様では、前記フォントレコードは、文字の種別を示す種別情報をさらに含み、前記改行制御手段は、前記改行位置を前記文字列に含まれる文字に係る前記種別情報にさらに基づいて決定するようにしてもよい。
また、本発明に係る表示装置は、文字を表示するためのフォント情報と、当該文字に関連する関連画像を当該文字に関連づけて表示するための関連画像情報と、をそれぞれ含む複数のフォントレコードを含むフォントデータを記憶するフォントデータ記憶手段と、前記フォント情報に基づいて文字を表示するとともに、当該フォント情報に対応する前記関連画像情報に基づいて、前記関連画像を当該文字に関連づけて表示する表示手段と、を含むことを特徴とする。
また、本発明に係る表示装置の制御方法は、文字を表示するためのフォント情報と、当該文字に関連する関連画像を当該文字に関連づけて表示するための関連画像情報と、をそれぞれ含む複数のフォントレコードを含むフォントデータを記憶してなるフォントデータ記憶手段から前記フォントデータを読み出すためのフォントデータ読み出しステップと、前記フォントデータ読み出しステップによって読み出されるフォントデータに含まれるフォント情報に基づいて文字を表示手段に表示させるとともに、当該フォント情報に対応する前記関連画像情報に基づいて、前記関連画像を当該文字に関連づけて表示させる表示ステップと、を含むことを特徴とする。
また、本発明に係るプログラムは、文字を表示するためのフォント情報と、当該文字に関連する関連画像を当該文字に関連づけて表示するための関連画像情報と、をそれぞれ含む複数のフォントレコードを含むフォントデータ、に含まれる前記フォント情報に基づいて文字を表示するとともに、当該フォント情報に対応する前記関連画像情報に基づいて、前記関連画像を当該文字に関連づけて表示する表示手段、として、携帯用ゲーム機、家庭用ゲーム機、業務用ゲーム機、携帯電話機、携帯情報端末(PDA)やパーソナルコンピュータなどのコンピュータを機能させるためのプログラムである。
また、本発明に係るフォントデータは、文字を表示するためのフォント情報と、当該文字に関連する関連画像を当該文字に関連づけて表示するための関連画像情報と、をそれぞれ含む複数のフォントレコードを含むフォントデータである。
また、本発明に係る情報記憶媒体は、上記プログラム及び上記フォントデータのうちの少なくとも一方を記録したコンピュータ読み取り可能な情報記憶媒体である。
本発明では、文字を表示するためのフォント情報と、当該文字に関連する関連画像を当該文字に関連づけて表示するための関連画像情報と、をそれぞれ含む複数のフォントレコードを含むフォントデータが記憶される。そして、フォント情報に基づいて文字が表示されるとともに、当該フォント情報に対応する前記関連画像情報に基づいて、前記関連画像が当該文字に関連づけて表示される。本発明によれば、文字に関連する関連画像を文字に関連づけて表示するための関連画像情報をフォントデータに含ませることが可能となり、この関連画像情報に基づいて関連画像が文字に関連づけて表示されるため、文字に関連する関連画像を処理負荷を軽減しつつ表示させることができるようになる。
また、本発明の一態様では、前記フォントデータは、前記関連画像を表す複数の関連画像データを含み、少なくとも一部の前記関連画像情報は、前記複数の関連画像データのうちのいずれかを特定するための関連画像データ特定情報であり、前記表示手段は、前記フォント情報に基づいて文字を表示するとともに、当該フォント情報に対応する前記関連画像情報が前記関連画像データ特定情報である場合には、当該関連画像データ特定情報によって特定される前記関連画像データによって表される前記関連画像を当該文字に関連づけて表示するようにしてもよい。
また、本発明の一態様では、前記少なくとも一部の関連画像情報以外の関連画像情報は、前記関連画像データそのものとしてもよい。
また、本発明の一態様では、前記関連画像は前記文字の影画像としてもよい。
また、本発明に係る表示装置は、文字を表示するためのフォント情報と、当該文字の種別を示す種別情報と、をそれぞれ含む複数のフォントレコードを含むフォントデータを記憶するフォントデータ記憶手段と、前記複数のフォントレコードの全部又は一部に係るフォント情報に基づいて、文字列を表示する文字列表示手段と、前記文字列表示手段に表示される前記文字列の表示領域内の位置を選出基準位置として指定する選出基準位置指定手段と、前記選出基準位置指定手段によって指定される選出基準位置と、前記文字列に含まれる文字の前記種別情報と、に基づいて、前記文字列の一部を選出する選出手段と、前記選出手段によって選出される前記文字列の一部に基づいて処理を実行する処理実行手段と、を含むことを特徴とする。
また、本発明に係る表示装置の制御方法は、文字を表示するためのフォント情報と、当該文字の種別を示す種別情報と、をそれぞれ含む複数のフォントレコードを含むフォントデータを記憶してなるフォントデータ記憶手段から前記フォントデータを読み出すためのフォントデータ読み出しステップと、前記フォントデータ読み出しステップによって読み出されるフォントデータに含まれる複数のフォントレコードの全部又は一部に係るフォント情報に基づいて、文字列を文字列表示手段に表示させる文字列表示ステップと、前記文字列表示手段に表示される前記文字列の表示領域内の位置を選出基準位置として指定する選出基準位置指定ステップと、前記選出基準位置指定ステップによって指定される選出基準位置と、前記文字列に含まれる文字の前記種別情報と、に基づいて、前記文字列の一部を選出する選出ステップと、前記選出ステップによって選出される前記文字列の一部に基づいて処理を実行する処理実行ステップと、を含むことを特徴とする。
また、本発明に係るプログラムは、文字を表示するためのフォント情報と、当該文字の種別を示す種別情報と、をそれぞれ含む複数のフォントレコードを含むフォントデータ、に含まれる前記複数のフォントレコードの全部又は一部に係るフォント情報に基づいて、文字列を表示する文字列表示手段、前記文字列表示手段に表示される前記文字列の表示領域内の位置を選出基準位置として指定する選出基準位置指定手段、前記選出基準位置指定手段によって指定される選出基準位置と、前記文字列に含まれる文字の前記種別情報と、に基づいて、前記文字列の一部を選出する選出手段、及び、前記選出手段によって選出される前記文字列の一部に基づいて処理を実行する処理実行手段、として、携帯用ゲーム機、家庭用ゲーム機、業務用ゲーム機、携帯電話機、携帯情報端末(PDA)やパーソナルコンピュータなどのコンピュータを機能させるためのプログラムである。
また、本発明に係るフォントデータは、文字を表示するためのフォント情報と、当該文字の種別を示す種別情報と、をそれぞれ含む複数のフォントレコードを含むフォントデータである。
また、本発明に係る情報記憶媒体は、上記プログラム及び上記フォントデータのうちの少なくとも一方を記録したコンピュータ読み取り可能な情報記憶媒体である。
本発明では、文字を表示するためのフォント情報と、当該文字の種別を示す種別情報と、をそれぞれ含む複数のフォントレコードを含むフォントデータが記憶される。また、当該複数のフォントレコードの全部又は一部に係るフォント情報に基づいて、文字列が表示される。そして、その文字列の表示領域内の位置が選出基準位置として指定されると、その選出基準位置と、文字列に含まれる文字の種別情報とに基づいて文字列の一部が選出される。そして、その一部に基づいて処理(例えば、その一部を区別表示するなどの処理)が実行される。本発明によれば、文字の種別を示す種別情報がフォントデータに含ませることが可能となり、この種別情報に基づいて文字列の一部の選出が行われるため、文字コード体系による制約を受けることなく、文字列の一部の指定をユーザが好適に行えるようにすることが可能となる。
また、本発明の一態様では、前記選出手段は、前記文字列において前記選出基準位置より前に存在する文字のうちから始点文字を前記種別情報に基づいて選出する始点文字選出手段と、前記文字列において前記選出基準位置より後に存在する文字のうちから終点文字を前記種別情報に基づいて選出する終点文字選出手段と、を含み、前記始点文字と前記終点文字に基づいて、前記文字列の一部を選出するようにしてもよい。
また、本発明の一態様では、前記始点文字選出手段は、前記文字列において前記選出基準位置より前の隣接する2つの文字について、当該隣接する2つの文字に係る前記種別情報が所定の始点文字条件を満足するか否かを判断し、その判断結果に応じて前記始点文字を選出するようにしてもよい。
また、本発明の一態様では、前記終点文字選出手段は、前記文字列において前記選出基準位置より後の隣接する2つの文字について、当該隣接する2つの文字に係る前記種別情報が所定の終点文字条件を満足するか否かを判断し、その判断結果に応じて前記終点文字を選出するようにしてもよい。
以下、本発明の実施形態の一例について図面に基づき詳細に説明する。ここでは、携帯ゲーム機、携帯音楽プレーヤや携帯情報端末(PDA)として機能する携帯型電子装置によって、本発明の実施形態に係る表示装置を実現する場合を例として説明する。
図1は、本発明の実施形態に係る表示装置として使用される携帯型電子装置10のハードウェア構成を示す図である。同図に示すように、携帯型電子装置10では、CPU(Central Processing Unit)14、RAM(Random Access Memory)16、ROM(Read Only Memory)18、インタフェース(I/F)20,24,28、音声処理部32、画像処理部36がバス12により相互にデータ通信可能に接続されている。インタフェース20には操作部22が接続されており、インタフェース24にはディスクドライブ26が接続されている。さらに、インタフェース28には通信部30が接続されている。また、音声処理部32にはスピーカ34が接続されており、画像処理部36には液晶ディスプレイ(LCD)38が接続されている。これらは電池とともに携帯型電子装置10の筐体内に収容されており、該電池により駆動され、携帯可能となっている。
CPU14は、ROM18に格納されるオペレーティングシステム(OS)やディスク27から読み出されるプログラムに基づいて、携帯型電子装置10の各部を制御する。バス12はアドレス及びデータを携帯型電子装置10の各部でやり取りするためのものである。また、RAM16には、ディスク27から読み取られたプログラムが必要に応じて書き込まれる。また、RAM16はCPU14の作業用としても用いられる。音声処理部32は、ディスク27から読み出されたゲーム音楽、ゲーム効果音やメッセージなどの各種音声データを再生して、スピーカ34から出力させる。画像処理部36は、CPU14から供給される画像データを処理してLCD38に表示出力させる。
インタフェース20,24,28は、CPU14と、操作部22、ディスクドライブ26、通信部30と、の間のデータ通信をそれぞれ中継する。操作部22はユーザが各種操作をするための入力手段である。ディスクドライブ26は、CPU14からの指示に従ってディスク27に記憶されたプログラムやデータを読み取る。通信部30は、通信ネットワークを介して他のコンピュータ(情報処理装置)との間でデータ通信を行うものである。
なお、以上では、情報記憶媒体たるディスク27を介してプログラムが携帯型電子装置10に供給されることとして説明したが、インターネットなどの通信ネットワークを介して遠隔地からプログラムが携帯型電子装置10に供給されるようにしてもよいし、赤外線通信などの各種データ通信を利用してプログラムが携帯型電子装置10に供給されるようにしてもよい。
次に、以上の構成を備える携帯型電子装置10を用いて、1)文字コード体系による制約を抑止しつつ、禁則処理を行うことができるようになる表示装置、2)文字に関連する関連画像を処理負荷を軽減しつつ表示させることができるようになる表示装置、3)文字コード体系による制約を抑止しつつ、文字列の一部の指定をユーザが好適に行えるようになる表示装置、を実現する具体的な技術について説明する。
図2は、携帯型電子装置10において実現される機能のうち、本発明に関連するものを中心として示す機能ブロック図である。同図に示すように、携帯型電子装置10では、フォントデータ記憶部50、改行制御部52、文字列表示部54、選出基準位置指定部56、選出部58、処理実行部60が実現される。これらの機能は、ディスク27を介して供給されるプログラムがCPU14によって実行されることによって実現される。
[1.フォントデータ記憶部]
フォントデータ記憶部50は、例えばROM18やディスク27などによって構成される。フォントデータ記憶部50はフォントデータを記憶する。
図3は、フォントデータ記憶部50に記憶されるフォントデータの構成を示している。同図に示すように、フォントデータ100は、ヘッダブロック102、メトリックスブロック104、影グリフイメージオーナーマップブロック106、第1キャラクタマップブロック108、第2キャラクタマップブロック110、グリフデータブロック112を含んで構成される。
図4は、ヘッダブロック102の構成を示している。同図に示すように、ヘッダブロック102には、バージョン情報114、改行制御情報数値化テーブル116、文字種別情報数値化テーブル118が保持される。バージョン情報114は、このフォントデータのバージョンを示す情報である。改行制御情報数値化テーブル116は、後述する改行制御情報を数値化するための情報である(図11参照)。文字種別情報数値化テーブル118は、後述する文字種別情報を数値化するための情報である(図12参照)。ヘッダブロック102には、その他の各種情報が記憶される。
メトリックスブロック104には、文字矩形情報(幅及び高さ)などのメトリックス情報(文字の書体のレイアウトに関する情報)が保持される。また、影グリフイメージオーナーマップブロック106については後述する(図7参照)。
第1キャラクタマップブロック108には、文字コードのリストが保持される。第1キャラクタマップブロック108では、一部の文字コードにのみ文字番号が対応づけられている。より具体的には、このフォントデータにフォント情報が保持されるものについてのみ、文字番号が対応づけられるようになっている。なお、文字番号は、後述する文字グリフイメージ(グリフデータ)を一意に識別するための情報となっている。
第2キャラクタマップブロック110には、文字番号のリストが保持される。第2キャラクタマップブロック110では、各文字番号に、その文字のグリフデータ(フォントレコード)が保持される領域を特定するための情報が対応づけられている。なお、後述するように、各文字のグリフデータはグリフデータブロック112に保持される。
図5は、グリフデータブロック112の構成を示している。同図に示すように、グリフデータブロック112には、複数のグリフデータ120a,120b,120c,・・・が保持される。
図6は、一のグリフデータ120(フォントレコード)の構成を示している。同図に示すように、グリフデータ120には、グリフヘッダ122、メトリックス情報124、文字グリフイメージ126(フォント情報)、影グリフイメージ128(関連画像データ)、が含まれる。グリフヘッダ122については後述する(図8参照)。メトリックス情報124は、文字矩形情報(幅及び高さ)などの情報である。メトリックス情報は、メトリックスブロック104に保持させるようにしてもよいし、各文字ごとにグリフデータ120に保持させるようにしてもよい。文字グリフイメージ124は、文字のデザイン(形状)を表す情報である。影グリフイメージ126は、その文字(文字グリフイメージによって表される文字)を影付文字として表示する場合に付される影のデザイン(形状)を表す情報である。
本実施の形態では、影グリフイメージ128はすべてのグリフデータ120に含まれているわけではなく、一部のグリフデータ120にのみ含まれるようになっている。具体的には、他の文字のグリフデータ120に含まれる影グリフイメージ128を用いて影を付すことが可能な文字については、その文字のグリフデータ120に影グリフイメージ128を含めないようになっている。本実施の形態では、このようにして、フォントデータ100のデータサイズを抑えるようになっている。
なお、どのグリフデータ120に影グリフイメージ128が含まれているかは、影グリフイメージオーナーマップブロック106を参照することによって把握できるようになっている。具体的には、影グリフイメージオーナーマップブロック106には、図7に示すように、影グリフイメージ128を含んでいるグリフデータ120に係る文字番号のリストが保持されている。
図8は、グリフヘッダ122の構成を示している。同図に示すように、グリフヘッダ122には、メトリックス参照情報130、影特定情報132(関連画像データ特定情報)、第1改行制御情報134、第2改行制御情報136、文字種別情報138(種別情報)が含まれる。メトリックス参照情報は、その文字のメトリックス情報がメトリックスブロック104又はグリフデータ120のいずれに保持されているかを示す情報である。また、メトリックス参照情報には、メトリックス情報がメトリックスブロック104に保持されている場合、保持されている記憶領域を特定するための情報(メトリックスブロック104における参照先を特定するための情報)が含まれる。なお、グリフヘッダ122には、グリフデータ120に関する他の各種情報が保持されるようにしてもよい。
影特定情報132は、「グリフデータ120に含まれる文字グリフイメージ126によって表される文字」に影を付す場合に用いるべき影グリフイメージ128を特定するための情報である。具体的には、影特定情報132は、影グリフイメージオーナーマップブロック106に保持される複数の「影グリフイメージに係る文字番号」のうちのいずれかを特定するための情報となっている。
第1改行制御情報134は、「グリフデータ120に含まれる文字グリフイメージ126によって表される文字」の前における改行を制御(制限)するための情報である。本実施の形態では、第1改行制御情報134は前の文字との結びつきの強さを示す情報となっており、例えば「弱」,「中」,「強」のいずれかが第1改行制御情報として保持されるようになっている。また、本実施の形態では、例えば図9に示すように、各文字の第1改行制御情報が設定される。なお、同図の例では、約物を除いて、文字種別ごとに一律の第1改行制御情報が設定されることとなっているが、文字ごとに異なる第1改行制御情報が設定されるようにしてもよい。
第2改行制御情報136は、「グリフデータ120に含まれる文字グリフイメージ126によって表される文字」の後における改行を制御(制限)するための情報である。本実施の形態では、第2改行制御情報136は後の文字との結びつきの強さを示す情報となっており、第1改行制御情報134と同様に、例えば「弱」,「中」,「強」のいずれかが第1改行制御情報として保持されるようになっている。また、本実施の形態では、例えば図10に示すように、各文字の第2改行制御情報が設定される。なお、同図の例では、約物を除いて、文字種別ごとに一律の第2改行制御情報が設定されることとなっているが、文字ごとに異なる第2改行制御情報が設定されるようにしてもよい。
なお、先述したように、ヘッダブロック102には、これらの第1改行制御情報及び第2改行制御情報を数値に変換するための改行制御情報数値化テーブル116が保持されている。改行制御情報数値化テーブル116は、例えば図11に示すような情報を保持している。本実施の形態では、第1改行制御情報や第2改行制御情報に基づく処理を実行する場合、グリフヘッダ122に保持される第1改行制御情報134や第2改行制御情報136(抽象的な情報)を具体的な数値として直接用いるのではなく、これらを改行制御情報数値化テーブル116によって数値化したものを用いるようになっている。このため、第1改行制御情報や第2改行制御情報の定義に変更を加える必要が生じた場合であっても、各グリフヘッダ122の内容を変更することなく、改行制御情報数値化テーブル116の内容のみを変更することで対応できるようになっている。なお、グリフヘッダ122において、第1改行制御情報及び第2改行制御情報として数値情報を保持させるようにしてもよい。
文字種別情報138は、「グリフデータ120に含まれる文字グリフイメージ126によって表される文字」の種別を示す情報である。本実施の形態では、「漢字」,「平仮名」,「片仮名」,「アルファベット」,「数字」,「約物」,「空白その他」のいずれかが文字種別情報138として保持されるようになっている。なお、文字種別情報138には、上記のものに限られず、例えば「キリル文字」,「ハングル文字」,「タイ語文字」,「繁体文字」や「簡体文字」などのように、他の言語の文字種別(分類)を示すものが保持されるようにしてもよい。また、文字種別情報138には、例えば「日本語」,「英語」,「ロシア語」,「ハングル語」,「タイ語」,「中国語」などのように、その文字が用いられる言語を示す情報が保持されるようにしてもよい。また、文字種別情報138には、「全角文字」又は「半角文字」を示す情報が保持されるようにしてもよい。また、一の文字に対応づけられる文字種別情報は、一の文字種別を示すものであってもよいし、複数の文字種別の組合せを示すものであってもよい。例えば「全角のアルファベットの文字」には、「アルファベット」及び「全角」の組合せを示す文字種別情報(換言すれば、「アルファベット」を示す文字種別情報と「全角」を示す文字種別情報と)が対応づけられるようにしてもよい。
なお、先述したように、ヘッダブロック102には、この文字種別情報を数値に変換するための文字種別情報数値化テーブル118が保持されている。文字種別数値化テーブル118は、例えば図12に示すような情報を保持している。本実施の形態では、文字種別情報に基づく処理を実行する場合、グリフヘッダ122に保持される文字種別情報138(抽象的な情報)を具体的な数値として直接用いるのではなく、これらを文字種別情報数値化テーブル118によって数値化したものを用いるようになっている。このため、文字種別情報の定義に変更を加える必要が生じた場合であっても、各グリフヘッダ122の内容を変更することなく、文字種別情報数値化テーブル118の内容のみを変更することで対応できるようになっている。なお、グリフヘッダ122において、文字種別情報として数値情報を保持させるようにしてもよい。
[2.文字列表示部]
文字列表示部54は、画像処理部36及びLCD38を主として構成される。文字列表示部54は、CPU14からの指示に従って文字列を表示する。文字列表示部54は、文字列の表示をフォントデータ記憶部50に記憶されるフォントデータに基づいて行う。具体的には、文字列表示部54は、表示対象の文字列に含まれる各文字の文字グリフイメージをフォントデータから読み出す。そして、読み出した文字グリフイメージに従って、文字列に含まれる各文字を表示する。
また、文字列表示部54(表示手段)は、CPU14によって指定された文字列を影付文字で表示することが可能となっている。文字列表示部54は、表示対象の文字列に含まれる各文字に対応づけられた影グリフイメージをフォントデータから読み出す。そして、文字列に含まれる各文字に、その文字に対応する影グリフイメージに従って影を付する。すなわち、文字列に含まれる各文字に、その文字について読み出した影グリフイメージによって表される影を付する。
なお、文字列表示部54は、文字グリフイメージによって表される文字及び影グリフイメージによって表される影の少なくとも一方の大きさを変えて表示するようにしてもよい。また、文字列表示部54は、影グリフイメージによって表される影のみを表示するようにしてもよい。
[3.改行制御部]
改行制御部52は、文字列表示部54による文字列の表示における改行位置を、当該文字列に含まれる文字に係る第1改行制御情報及び第2改行制御情報に基づいて決定する。改行制御部52は、文字列における少なくとも一部の隣接文字について、当該隣接文字のうちの先の文字に係る第2改行制御情報と、当該隣接文字のうちの後の文字に係る第1改行制御情報と、に基づいて所定の処理を実行し、その実行結果に基づいて改行位置を決定する。
具体的には、改行制御部52は、文字列における少なくとも一部の隣接文字について、当該隣接文字のうちの先の文字の第2改行制御情報を数値化したものと、当該隣接文字のうちの後の文字の第1改行制御情報を数値化したものと、に基づいて所定の演算を行い、その演算結果に基づいて改行位置を決定する。
なお、改行制御部52は、文字列表示部54による文字列の表示における改行位置を、当該文字列に含まれる文字に係る文字種別情報に基づいて決定するようにしてもよい。
ここで、表示対象の文字列をLCD38に表示させるために、文字列表示部54及び改行制御部52によって実行される処理について説明する。図13及び図14は、かかる処理を示すフロー図である。
この処理では、対象文字列を表示する領域の幅Wを文字列表示部54が取得する(S101)。次に、文字列表示部54は、対象文字列の文字数Nを取得する(S102)。また、文字列表示部54は、変数n0を0に初期化する(S103)。さらに、文字列表示部54は、変数nを1に初期化し(S104)、変数wsを0に初期化する(S105)。次に、文字列表示部54は、(n0+n)文字目の文字を注目文字として、S106乃至S109の処理を実行する。
文字列表示部54は、(n0+n)文字目の文字を表示するために必要な幅wを取得する(S106)。具体的には、文字列表示部54は、(n0+n)文字目の文字の文字コードを取得する。次に、文字列表示部54は、第1キャラクタマップブロック108を参照することによって、その文字コードに対応する文字番号を取得する。次に、文字列表示部54は、第2キャラクタマップブロック110を参照することによって、その文字番号に係るグリフデータが保持されている領域を特定するための情報を取得する。次に、文字列表示部54は、グリフヘッダ122に保持されるメトリックス参照情報130を参照する。そして、文字列表示部54は、そのメトリックス参照情報130に従って、メトリックスブロック104又はグリフデータ120に保持される文字矩形情報などを参照し、その文字を表示するために必要な幅wを取得する。
次に、文字列表示部54は、変数wsの値をws+wに更新する(S107)。変数wsの値は、このようにして更新されるため、表示対象文字列の(n0+1)文字目から(n0+n)文字目までの各文字を表示するために必要な幅の合計を示すことになる。
そして、文字列表示部54は、変数wsの値がS101で取得したW以上であるか否かを判断する(S108)。文字列表示部54は、変数wsの値がW未満であると判断した場合、(n0+n)がS102で取得したNと等しいか否かを判断する(S109)。すなわち、(n0+n)文字目の文字が表示対象文字列の末尾文字であるか否かを判断する。文字列表示部54は、(n0+n)とNとが等しくないと判断した場合、変数nをインクリメントし(S110)、S106乃至S109の処理を再び実行する。
一方、変数wsの値がW以上と判断された場合(S108)、又は(n0+n)文字目の文字が末尾文字であると判断された場合(S109)、表示対象文字列の(n0+1)文字目から(n0+n)文字目までが文字列表示領域に1行で表示可能な文字列(以下、表示可能文字列と呼ぶ。)となる。
例えば、「ABC の発売日は、12月(中旬)です。」という文字列(対象文字列)をLCD38に表示させる場合であって、全角文字又は半角文字がそれぞれ固定幅を有し、全角文字の幅が半角文字の幅の2倍となっており、文字列表示領域に全角文字を5文字分表示可能な場合、S106乃至S109の処理の最初の実行(変数n0が0の場合)では、「ABC
の発売」が表示可能文字列と取得される。
次に、改行制御部52はS111乃至S120の処理を実行することによって、表示可能文字列における改行位置を決定する。換言すれば、表示可能文字列のうちの何文字目までを次の一行として文字列表示部54(文字列表示領域)に出力するかを決定する。
まず、改行制御部52は変数mを0に初期化する(S111)。次に、改行制御部52は、(n0+m)文字目の文字の第2改行制御情報(数値化したもの)e2を取得する(S112)。具体的には、改行制御部52は、(n0+m)文字目の文字の文字コードを取得する。その後、S106の場合と同様にして、その文字コードに対応するグリフデータ120のグリフヘッダ122を参照し、第2改行制御情報136を取得する。そして、改行制御部52は、取得した第2改行制御情報136を、ヘッダブロック102に保持される改行制御情報数値化テーブル116に基づいて数値化する。なお、n0+mが0である場合、改行制御部52はe2を9とする。
また、改行制御部52は、(n0+m+1)文字目の文字の第1改行制御情報(数値化したもの)e1を取得する(S113)。具体的には、改行制御部52は、(n0+m+1)文字目の文字の文字コードを取得する。その後、S112の場合と同様にして、その文字コードに対応するグリフデータ120のグリフヘッダ122を参照し、第1改行制御情報134を取得する。そして、改行制御部52は、取得した第1改行制御情報134を、ヘッダブロック102に保持される改行制御情報数値化テーブル116に基づいて数値化する。なお、n0+mがNである場合、改行制御部52はe1を0とする。
次に、改行制御部52は、改行評価値の配列E[m]にe2×e1を保持させる(S114)。その後、改行制御部52は、変数mの値が変数nの値に等しいか否かを判断する(S115)。改行制御部52は、変数mの値が変数nの値に等しくないと判断した場合、変数mの値をインクリメントし(S116)、S112乃至S115の処理を再び実行する。
一方、改行制御部52は、変数mの値が変数nの値に等しいと判断した場合(S115)、改行制御部52は、改行評価値の配列E[m]に保持される数値のうちの最小値に対応するmの値を変数m0に代入する(S117)。そして、文字列表示部54は、表示対象文字列の(n0+1)文字目から(n0+m0)文字目までを一行としてLCD38に出力させる(S118)。
例えば、表示可能文字列として「ABC の発売」が取得された場合であって、第1及び第2改行制御情報が図9及び図10に示すように設定され、改行制御情報数値化テーブルが図11に示すように設定される場合、改行評価値の配列Eは、E[0]=18,E[1]=4,E[2]=4,E[3]=4,E[4]=0,E[5]=1,E[6]=1となる。この場合、改行制御部52は変数m0の値を「4」とし、文字列表示部54は「ABC
」を一行としてLCD38に出力させる。すなわち、この場合、4文字目(半角スペース)と5文字目(の)の間が改行位置として決定される。
なお、ここでは、改行評価値の値が最小値となる文字の組合せの間を改行位置として決定するようにしたが、改行評価値が所定の閾値以下となる文字の組合せのうちから、一行の文字数が最も大きくなるもの(又は一行の幅が最も長くなるもの)を選出し、その文字の組合せの間を改行位置として決定するようにしてもよい。換言すれば、S117において、改行評価値の配列E[m]に保持される数値のうち所定の閾値以下となる数値に対応するmの最大値を変数m0に代入するようにしてもよい。
文字列表示部54は、表示対象文字列の(n0+1)文字目から(n0+m0)文字目までをLCD38に表示させる場合、各文字の文字グリフイメージを次のようにして取得する。すなわち、文字列表示部54は、表示対象の文字の文字コードをまず取得する。次に、第1キャラクタマップブロック108及び第2キャラクタマップブロック110を参照することによって、各文字コードに対応するグリフデータ120が保持される記憶領域を特定する。そして、そのグリフデータ120に含まれる文字グリフイメージ126を取得する。
また、文字列表示部54は、表示対象文字列の(n0+1)文字目から(n0+m0)文字目までをLCD38に表示させる場合、各文字の影グリフイメージを次のようにして取得する。すなわち、文字列表示部54は、表示対象の文字の文字コードをまず取得する。次に、第1キャラクタマップブロック108及び第2キャラクタマップブロック110を参照することによって、各文字コードに対応するグリフデータ120が保持される記憶領域を特定する。そして、そのグリフデータ120に含まれるグリフヘッダ122を参照することによって、影特定情報132を取得する。次に、文字列表示部54は、その影特定情報によって特定される影グリフイメージオーナーマップブロック106の記憶領域を参照することによって、影グリフイメージ128に係る文字番号(影グリフイメージ128が保持されるグリフデータ120に係る文字番号)を取得する。次に、文字列表示部54は、第2キャラクタマップブロック110を参照することによって、この文字番号に対応するグリフデータ120が保持される記憶領域を特定する。そして、そのグリフデータ120に含まれる影グリフイメージ128を取得する。
また、文字列表示部54は、表示対象文字列の(n0+1)文字目から(n0+m0)文字目までをLCD38に表示させる場合、各文字ごとに取得した文字グリフイメージに基づいて、文字列レイヤ画像を生成する。また、文字列表示部54は、各文字ごとに取得した影グリフイメージに基づいて、影レイヤ画像を生成する。そして、文字列表示部54は、別途読み出される背景レイヤ画像に影レイヤ画像を重ね、さらにその上に文字レイヤ画像を重ねてなる画像をLCD38に表示させる。
次に、文字列表示部54は、n0+m0がNに等しいか否かを判断する(S119)。文字列表示部54は、n0+m0とNとが等しくないと判断した場合、表示対象文字列のLCD38への表示出力が完了してないと判断し、n0をn0+m0に更新した後(S120)、S104乃至S119の処理を再び実行する。一方、文字列表示部54は、n0+m0がNに等しいと判断した場合、表示対象文字列のLCD38への表示出力が完了したと判断する。この場合、本処理が終了する。
なお、以上の処理はディスク27を介して供給されるプログラムがCPU14によって実行されることによって実現される。
[4.選出基準位置指定部]
選出基準位置指定部56は、文字列表示部54における文字列表示領域内の位置を選出基準位置として指定する。例えば、選出基準位置指定部56は、ユーザによるポインティングデバイスなどを用いた指定操作に応じて、文字列表示部54における文字列表示領域内の位置を指定する。すなわち、選出基準位置指定部56は、文字列表示部54における文字列表示領域内の位置を指定する操作がユーザによってなされたか否かを判断する。そして、かかる操作がなされた場合には、ユーザによって指定された位置を取得する。
[5.選出部]
選出部58は、選出基準位置指定部56によって指定された選出基準位置と、文字列字表示部54に表示される文字列に含まれる文字の文字種別情報と、に基づいて、文字列字表示部54に表示される文字列の一部を選出する。
例えば、選出部58は、文字列字表示部54に表示される文字列において、選出基準位置指定部56によって取得される選出基準位置より前に存在する文字のうちから始点文字を、フォントデータに各文字ごとに含まれる文字種別情報に基づいて選出する。より具体的には、選出部58は、文字列字表示部54に表示される文字列において、選出基準位置指定部56によって取得される選出基準位置より前の2つの隣接文字について、当該2つの隣接文字の各々に係る文字種別情報が所定の始点文字条件を満足するか否かを判断し、その判断結果に応じて始点文字を選出する。
また例えば、選出部58は、文字列字表示部54に表示される文字列において、選出基準位置指定部56によって取得される選出基準位置より後に存在する文字のうちから終点文字を、フォントデータに各文字ごとに含まれる文字種別情報に基づいて選出する。より具体的には、選出部58は、文字列字表示部54に表示される文字列において、出基準位置取得部56によって取得される選出基準位置より後の2つの隣接文字について、当該2つの隣接文字の各々に係る文字種別情報が所定の終点文字条件を満足するか否かを判断し、その判断結果に応じて終点文字を選出する。
選出部58は、以上のようにして選出される始点文字と終点文字とに基づいて、文字列字表示部54に表示される文字列の一部を選出する。例えば、文字列字表示部54に表示される文字列のうちの始点文字から終点文字までの部分を選出する。
[6.処理実行部]
処理実行部60は、選出部58によって選出される文字列の一部に基づいて処理を実行する。例えば、処理実行部60は、選出部58によって選出される文字列の一部を区別表示(強調表示又は反転表示など)させる。
ここで、文字列表示部54における文字列表示領域内の位置がユーザによって指定された場合に、選出基準位置指定部56及び選出部58によって実行される処理について説明する。図15及び図16は、かかる処理を示すフロー図である。
この処理では、まず選出基準位置指定部56が、ユーザによって指定された位置(選出基準位置)を取得し(S201)、その位置に対応する文字を選出基準文字として特定する(S202)。例えば、選出基準位置指定部56は、選出基準位置がある文字の表示領域内に含まれる場合、当該文字を選出基準文字と特定する。また例えば、選出基準位置に最も近い文字を選出基準文字と特定する。選出基準位置指定部56は、対象文字列における選出基準文字の位置をRAM16に保持させる。また、選出部58は、選出基準文字を注目文字とする(S203)。
次に、選出部58は、注目文字が対象文字列の先頭の文字であるか否かを判断する(S204)。注目文字が対象文字列の先頭の文字であると判断された場合、当該注目文字(先頭文字)が始点文字として決定される(S210)。
一方、選出部58は、注目文字が対象文字列の先頭の文字でないと判断した場合、注目文字の文字種別情報(数値化したもの)n1を取得する(S205)。具体的には、選出部58は注目文字の文字コードを取得する。次に、選出部58は第1キャラクタマップブロック108を参照することによって、注目文字の文字コードに対応する文字番号を取得する。また、選出部58は第2キャラクタマップブロック110を参照することによって、注目文字のグリフデータが保持される記憶領域を特定するための情報を取得する。そして、選出部58は、注目文字のグリフデータに含まれるグリフヘッダを参照し、注目文字の文字種別情報を取得する。選出部58は、この文字種別情報を、ヘッダブロック102に保持される文字種別情報数値化テーブル118(図10)に基づいて数値化する。
次に、選出部58は、注目文字の前の文字(注目文字に隣接する文字のうちの前方のもの)の文字種別情報(数値化したもの)n2を取得する(S206)。この文字種別情報n2の取得はS205の場合と同様に行われる。
次に、選出部58は、n1がn2より大きいか否かを判断する(S207)。選出部58は、n1がn2以下であると判断した場合、注目文字の前の文字を注目文字とし(S208)、S204乃至S207の処理を再び実行する。一方、選出部58は、n1がn2より大きいと判断した場合、注目文字を始点文字として決定する(S209)。
次に、選出部58は終点文字を決定するための処理を実行する。まず選出部58は、選出基準文字を注目文字とする(S210)。
次に、選出部58は、注目文字が対象文字列の末尾の文字であるか否かを判断する(S211)。選出部58は、注目文字が対象文字列の末尾の文字であると判断した場合、当該注目文字(末尾文字)を終点文字として決定する(S216)。
一方、選出部58は、注目文字が対象文字列の末尾の文字でないと判断した場合、注目文字の文字種別情報(数値化したもの)n1を取得する(S212)。また、選出部58は、注目文字の次の文字(注目文字に隣接する文字のうち後方のもの)の文字種別情報(数値化したもの)n2を取得する(S213)。これら文字種別情報n1及びn2の取得はS205の場合と同様に行われる。
次に、選出部58は、n2がn1より大きいか否かを判断する(S214)。選出部58は、n2がn1以下であると判断した場合、注目文字の次の文字を注目文字とし(S215)、S211乃至S214の処理を再び実行する。一方、選出部58は、n2がn1より大きいと判断した場合、注目文字を終点文字として決定する(S216)。
処理実行部60は、以上のようにして選出された始点文字から終点文字までを、文字列字表示部54において区別表示(強調表示又は反転表示)する(S217)。具体的には、S118において説明した場合と同様に、文字列レイヤ画像と、影レイヤ画像と、背景レイヤ画像とが生成又は読み出されるとともに、区別表示レイヤ画像(文字列の一部を区別表示するための画像)が生成され、これらが文字列レイヤ画像、区別表示レイヤ画像、影レイヤ画像、背景レイヤ画像の順に上から重ねられてなる画像が文字列字表示部54に表示される。
例えば、「ABC の発売日は、12月(中旬)です。」という文字列がLCD38に表示されている場合において、文字「C」の表示領域の近傍がユーザによって指定された場合、文字「C」が選出基準文字として特定される。そして、文字種別情報及び文字種別情報数値化テーブルが図12のように定められている場合、文字「A」,「B」,「C」の文字種別情報(数値化したもの)はいずれも「3」となり、S207の条件(始点文字条件)が満足されることはなく、文字「A」が先頭文字であるが故に、文字「A」が始点文字として決定される。また、文字「C」,「
(半角スペース)」,「の」の文字種別情報(数値化したもの)はそれぞれ「3」,「0」,「5」となり、文字「 (半角スペース)」が注目文字となった場合に、S214の条件(終点文字条件)が満足される。このため、文字「
(半角スペース)」が終点文字として決定される。この場合、LCD38に表示される文字列の一部「ABC 」が区別表示されることになる。
なお、以上の処理はディスク27を介して供給されるプログラムがCPU14によって実行されることによって実現される。
以上に説明したように、携帯型電子装置10によれば、文字の前後における改行を制御するための改行制御情報をフォントデータに含ませることが可能となり、文字列を表示する場合にはこの改行制御情報に基づいて改行位置が決定されるようになる。このため、携帯型電子装置10によれば、文字コード体系による制約を抑止しつつ、禁則処理を好適に行うことができるようになる。また、従来は、禁則処理の対象となる文字の指定が文字のフォントデザインとは関係なく行われるため、文字のフォントデータのデザインに携わる者が禁則処理に関与することはできなかった。しかしながら、携帯型電子装置10によれば、フォントデータの作成に携わる者が、そのフォントデータに基づく表示が行われる場合の禁則処理に関与できるようになる。
また、携帯型電子装置10によれば、文字を影付文字とするための影情報をフォントデータに含ませることが可能となり、文字列を影付文字として表示する場合にはこの影情報が用いられるようになる。このため、携帯型電子装置10によれば、処理負荷を軽減しつつ影付文字を表示できるようになる。
さらに、携帯型電子装置10によれば、文字の文字種別情報をフォントデータに含ませることが可能となり、対象文字列の一部の選出がこの文字種別情報に基づいて行われるようになる。このため、携帯型電子装置10によれば、文字コード体系による制約を抑止しつつ、文字列の一部の指定をユーザが好適に行えるようになる。
なお、以上に説明したフォントデータは、ドットフォントやベクトルフォントなどのフォント形式(文字の形状の表現形式)に依存するものではなく、ドライバを用意することによって各種コンピュータ(各種OS(Operating System))で用いることができるものである。このため、以上に説明したフォントデータのデータフォーマットは、TrueType(登録商標)フォントなどの既存の汎用フォント規格に置き換わるものとなり得るものである。
また、以上に説明したフォントデータによれば、文字(文字コード)ごとの改行制御情報、文字種別情報や関連画像情報がフォント(文字の書体、デザイン)ごとに定められることになる。このため、フォントデータが必要に応じてコンピュータに組み込まれることによって、そのコンピュータではそのフォントの文字が適切にレイアウト表示されるようになる。また、表示対象の文字列に異なるフォントの文字が含まれている場合であっても、それぞれのフォントに係るフォントデータにおいてその文字に対応づけられた改行制御情報などによって、かかる文字列が適切にレイアウト表示されることになる。
なお、本発明は以上説明した実施の形態に限定されるものではない。
例えば、フォントデータ記憶部50に記憶されるフォントデータには、各文字に関連する他の関連画像を各文字に関連づけて表示するための情報(関連画像情報)が、各文字に影を付すための情報(影グリフイメージ128や影特定情報132)に代えて、或いはかかる情報とともに含まれるようにしてもよい。例えば、文字がフォーカスされていることを示す画像、文字に特殊な表示効果を付すための画像(例えば、文字をピカッと光るように表示したり、ネオンのように表示したりするための画像など)や文字を区別表示するための画像を、文字に関連づけて表示するための情報が各文字ごとに含まれるようにしてもよい。そして、文字列表示部54は、かかるフォントデータ(関連画像情報)に基づいて、上記のような画像を文字に関連づけて表示するようにしてもよい。
また例えば、以上では、本発明を携帯型電子装置に適用した例について説明したが、本発明は家庭用ゲーム機やパーソナルコンピュータなどの他のコンピュータシステムにも適用できるものである。
10 携帯型電子装置、12 バス、14 CPU、16 RAM、18 ROM、20,24,28 インタフェース、22 操作部、26 ディスクドライブ、27 ディスク、30 通信部、32 音声処理部、34 スピーカ、36 画像処理部、38 液晶ディスプレイ、50 フォントデータ記憶部、52 改行制御部、54 文字列表示部、56 選出基準位置指定部、58 選出部、60 処理実行部、100 フォントデータ、102 ヘッダブロック、104 メトリックスブロック、106 影グリフイメージオーナーマップブロック、108 第1キャラクタマップブロック、110 第2キャラクタマップブロック、112 グリフデータブロック、114 バージョン情報、116 改行制御情報数値化テーブル、118 文字種別情報数値化テーブル、120 グリフデータ、120a グリフデータ1、120b グリフデータ2、120c グリフデータ3、122 グリフヘッダ、124 メトリックス情報、126 文字グリフイメージ、128 影グリフイメージ、130 メトリックス参照情報、132 影特定情報、134 第1改行制御情報、136 第2改行制御情報、138 文字種別情報。