以下に、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。
図1は、本実施の形態におけるテキストデータ表示装置の構成の具体例を示すブロック図である。図1を参照して、テキストデータ表示装置は、テキストデータの解析を行なうテキストデータ解析部101と、1つないし複数の文字列とアニメーションデータとを対応付けるテーブルとアニメーションデータとを格納するデータ格納領域103から、対応テーブルを取得する対応テーブル取得部102と、対応するアニメーションデータを決定するアニメーションデータ決定部104と、アニメーションデータを取得するアニメーションデータ取得部105と、アニメーションを描画するアニメーションデータ描画部106と、テキストデータに含まれるテキストを描画するテキスト描画部107と、描画用メモリ108と表示部109とを含む画面表示部110とを含んで構成される。なお、上述のデータ格納領域103は、テキストデータ表示装置外のサーバなどの他の装置に含まれるものであってもよい。その場合、対応テーブル取得部102とアニメーションデータ取得部105とは、外部の装置に含まれるデータ格納領域103からデータを取得するための通信手段を備える。また、データ格納領域103は、当該テキストデータ表示装置がテキストデータをメールで受信した場合に、受信したメールに含まれるものであってもよい。
テキストデータ表示装置に入力されたテキストデータは、テキストデータ解析部101とテキスト描画部107とに入力される。
また、対応テーブル取得部102は、データ格納領域103から対応テーブルを取得する。そして、対応テーブル取得部102は、取得した対応テーブルをテキストデータ解析部101に入力する。
テキストデータ解析部101は、対応テーブル取得部102から取得した対応テーブルに基づいて、入力されたテキストデータを解析する。そして、テキストデータ解析部101は、その解析結果をアニメーションデータ決定部104に入力する。
アニメーションデータ決定部104は、テキストデータ解析部101から取得した解析結果に基づいて、当該テキストデータを再生する際にどのアニメーションデータを使用するか、また、どの順番、どの位置に使用するか、などを決定する。そして、アニメーションデータ決定部104は、その決定情報をアニメーションデータ取得部105に入力する。
アニメーションデータ取得部105は、アニメーションデータ決定部104から取得した決定情報に基づいて、データ格納領域103から決定されたアニメーションデータを取得する。そして、アニメーションデータ取得部105は、取得したアニメーションデータをアニメーションデータ描画部106に入力する。
アニメーションデータ描画部106は、アニメーションデータ取得部105から取得したアニメーションデータを、画面表示部110に含まれる描画用メモリ108に描画する。
一方、テキスト描画部107もまた、入力されたテキストデータを、画面表示部110に含まれる描画用メモリ108に描画する。
そして、描画用メモリ108に描画された情報は、表示部109に渡され、表示部109において表示される。
さらに、テキストデータ表示装置に入力されたテキストデータから解析されるアニメーションデータが、複数のフレームを順次表示したり、複数のアニメーションデータを順番に表示したりするような、アニメーションの表示を変更する必要のあるものであったり、テキストデータ表示装置に入力されたテキストデータが、その位置を移動して表示するような、テキストの表示を更新する必要があるものであったりする場合には、さらに、アニメーションデータ描画部106およびテキスト描画部107は、アニメーションデータおよびテキストデータを描画用メモリ108に描画し、表示部109において新たな画面を表示する。
なお、上述の描画用メモリ108が、アニメーション描画用メモリと、テキストデータ描画用メモリと、画面表示用メモリとを別領域として各々含む場合には、アニメーションデータとテキストデータとのうち、更新する必要のあるデータのみ描画し直すこともできる。すなわち、たとえば、テキストデータの表示を更新する必要はあっても、アニメーションデータの更新の必要がない場合には、アニメーションデータを新たに描画用メモリ108のアニメーション描画用メモリに描画しなくてもよい。
次に、本実施の形態におけるテキストデータ表示装置で、テキストデータを表示するテキストデータ表示処理について、図2のフローチャートを用いて説明する。図2のフローチャートに示される処理は、テキストデータ表示装置のCPU(Central Processing Unit)(図示せず)が記憶部(図示せず)に記憶されるプログラムを読出し、図1に示される各部を制御することで実現される。
ここでは、「遅れてごめん!¥nあとで電話かメールする!」というテキストデータを表示する場合を例にとって以下で説明する。なお、「¥n」は改行コードを表わすものとする。上述のテキストデータのテキストをテキストデータ表示装置で表示した場合、具体的に図3のように表示される。
図2を参照して、始めに、対応テーブル取得部102でデータ格納領域103から対応テーブルを取得する(S201)。ステップS201において対応テーブル取得部102が取得する対応テーブルの具体例を図4に示す。
図4を参照して、対応テーブルは、検索条件となる検索文字列と、それに対応するアニメーションデータのメモリ番地やファイルパス、またはURL(Uniform Resource Locators)のようなネットワーク上の場所を特定できる情報とを含むテーブルである。
なお、対応テーブルは、図4に示されるテーブルに限定されるものではなく、検索条件として、文字列に替えて日時や文字数などの任意の条件式を記録してもよい。また、データ格納部103に複数の対応テーブルが格納されていてもよい。その場合、対応テーブル取得部102は、図示しない対応テーブル選択部をさらに含み、ステップS201において、当該対応テーブル選択部は、季節や日時、天候情報、または明示的な指示などに応じて該当する対応テーブルを選択し、対応テーブル取得部102は、当該対応テーブル選択部で選択された対応テーブルを取得する。このようにすることで、特定のキャラクタやテーマのアニメーションデータを記録する該当する対応テーブルを以下の処理に用いることができる。すなわち、検索条件として使用する文字列の内容および文字列に対応するアニメーションデータとその組合わせとを、ステップS201で取得する対応テーブルに応じて変更させることができる。
なお、上述の図4に示される対応テーブルは、テキストデータ表示装置によって編集可能であってもよい。すなわち、当該テキストデータ表示装置が、図示しない対応テーブル編集手段をさらに備える場合、テキストデータ表示装置において、図4に示される検索文字列の「電話」を他の文字列(たとえば「携帯」など)に変更したり、「メール」に対応するアニメーションデータ「Data3」を他のアニメーションデータ(たとえば「Data1」など)に変更したり、新規に検索文字列とその文字列に対応するアニメーションデータとを追加登録したりできるようにしてもよい。また、対応テーブルには、対応テーブル編集手段により、編集可能か否かを示すフラグも設定されていてもよく、編集可能なフラグがある場合のみ、上述の対応テーブル編集手段により編集可能であってもよい。
次に、テキストデータ解析部101で、テキストデータを解析する(S203)。具体的には、テキストデータ解析部101は、テキストデータを、ステップS201で取得した対応テーブルに記録されている検索文字列と照合して、検索文字列が含まれるか否かを検索する。
図3に示されるテキストデータの具体例では、図4に具体例が示される対応テーブルに記録されている検索文字列が、「!」「電話」「メール」「!」の順で出現している。そのため、ステップS203でテキストデータ解析部101は、解析結果として、検索された検索文字列の全てを出現順に出力してもよいし、特定の出現順の検索文字列のみを出力してもよいし、テキストデータにおいて検索文字列が出現した位置情報を出力してもよい。
また、ステップS203の解析処理において、図5に示されるような、各検索文字列に対して優先度を決定する優先度情報をさらに対応付けて記録する対応テーブルを用いることもできる。この場合には、ステップS203でテキストデータ解析部101は、解析結果として、その優先度情報を出力してもよい。なお、用いる対応テーブルが図5に示されるような優先度情報を記録しない対応テーブルである場合でも、検索文字列の文字数などに基づいて、ステップS203でテキストデータ解析部101が優先度情報を算出するようにしてもよい。なお、検索文字列には、図4あるいは図5に示されるような文字や記号、「ハート」や「顔」のような絵文字も含まれる。また、複数の文字や記号に限定されず、1つの文字や記号であってもよい。
次に、アニメーションデータ決定部104で、ステップS203における解析結果とステップS201で取得した対応テーブルとに基づいて、アニメーション描画に使用するアニメーションデータと、当該アニメーションデータを表示する順番、タイミング、再生時間、および位置の内の少なくとも1つである出力形態とを決定する(S205)。
なお、ステップS205で決定されるアニメーションデータを表示する位置は、時間と共に変化するものであってもよい。たとえば、アニメーションデータが静止画像を元データとするものであっても、左上から右下にスクロールすることによってアニメーションとして表示させることもできるし、ユーザからの入力に従って移動方向が変化するようにしてもよいし、ランダムに移動方向を変更させるようにしてもよい。
また、ステップS205でアニメーションデータ決定部104は、図3に示されるテキストデータの具体例における「!」のように、複数回出現した検索文字列に対応するアニメーションデータについては、出現回数に応じて使用するように決定してもよいし、1回だけ使用するように決定してもよい。また、たとえば、図5に具体例が示されるような優先度情報も記録する対応テーブルを用いてステップS203で優先度情報が検索結果として出力されており、アニメーション描画するテキストデータが図3に示されるテキストデータである場合、「メール」の優先度が最も高いので、ステップS205でアニメーションデータ決定部104は、「メール」に対応するアニメーションデータ「Data3」のみ表示するよう決定してもよいし、優先度に出現順や出現回数を加味して算出した値に基づいて使用するアニメーションデータおよび使用回数、使用順序を決定してもよい。
テキストデータ表示装置は、ステップS205で決定したアニメーションデータの出力形態にしたがって、当該アニメーションデータの出力を制限する。すなわち、ステップS205で決定したアニメーションデータの出力形態にしたがって、テキストデータ表示装置は、一定の時間以上は当該アニメーションデータを表示しない、メールブラウザを利用した場合に添付アニメーションデータがあれば当該アニメーションデータを表示しない、電池の残量が少ないときにアニメーションのフレームレートを落とす、などの条件に応じて当該アニメーションの出力を制限する。このため、本発明のテキストデータ表示装置では、アプリケーションに応じて条件を変更するなどができ、電池残量やメモリ、CPUの使用量などのリソースに応じたアニメーションの再生を実現することができる。
次に、アニメーションデータ取得部105で、データ格納領域103から使用するアニメーションデータを取得する(S207)。ステップS207においてアニメーションデータ取得部105は、対応テーブルに記録されているファイルパスあるいはメモリ番地情報に基づいて、使用するアニメーションデータを取得する。
なお、図4に具体例が示された対応テーブルに記録されているアニメーションデータ「Data1」,「Data2」,「Data3」の具体例を、図6に示す。図6を参照して、アニメーションデータとしては、「Data1」に示されるような複数のフレームで構成されるものでもよいし、「Data2」に示されるような音が同期して再生するように設定されているようなものでもよいし、「Data3」に示されるような1枚の静止画像であってもよい。
そして、アニメーションデータ描画部106が上述のアニメーションデータを描画用メモリ108に描画し、また、テキスト描画部107がテキストデータを描画用メモリ108に描画することで、画面表示手段110において、図7に示されるようにアニメーションデータとテキストデータとを表示部109に表示する(S209)。
なお、図7では、アニメーションの上にテキストを重ねて表示しているが、テキストをアニメーションの下に重ねて表示してもよいし、アニメーションに上下挟まれるようにテキストを表示してもよい。さらに、複数のアニメーションデータが同時に表示されてもよい。また、重ねる際にテキストデータないしアニメーションデータの、色彩ないし透明度を変更して表示してもよい。これは、アニメーションデータ描画部106あるいは/およびテキスト描画部107が、重なるアニメーションデータあるいは/およびテキストの色彩や透明度などを補正する描画補正部をさらに備え、該当するアニメーションデータあるいは/およびテキストに対して描画補正処理を実行することによって実現される。あるいは、表示部109が、アニメーションデータとテキストとの重なりを検出し、アニメーションデータあるいは/およびテキストの色彩や透明度などを補正して表示する表示補正部をさらに備え、該当するアニメーションデータあるいは/およびテキストに対して表示補正処理を実行することによって実現される。
また、図7では「Data1」のアニメーションが背景として表示されているが、「Data1」に対応している文字列「!」を点滅させたり、色や大きさを変えたりなど、通常の表示とは異なる表示を行なって強調してもよい。
また、画面表示部110が視覚上の奥行き差を伴って表示できる場合、テキストないしアニメーションの一部ないし全部を奥行きの差を伴って表示するようにしてもよい。
さらに、アニメーションデータが複数のフレームを順次表示したり、複数のアニメーションデータを順番に表示したりするような、アニメーションの表示を更新する必要がある場合、あるいは、テキストデータの位置を移動して表示するようなテキストの表示を更新する必要がある場合(S211でYES)、処理をステップS209に戻し、アニメーションデータ描画部106あるいはテキスト描画部107が更新後のアニメーションデータあるいはテキストデータを描画することで、画面表示手段110において新たな画面を表示する。あるいは、ステップS201で読込んだ対応テーブルを更新し、その更新した対応テーブルに基づいて使用するアニメーションデータを更新してもよい。そして、アニメーションデータあるいはテキストデータの更新の必要がなくなるまで上述の処理を繰返し(S211でNO)、本処理を終了する。
なお、ステップS203の解析結果でテキストデータ内に検索文字列が出現しない場合でも、ステップS205で特定ないし任意のアニメーションデータを使用するように決定するようにしてもよい。
また、当該テキストデータ表示装置が、図示しないテキストデータ入力手段を備えている場合は、当該テキストデータ表示装置において入力したテキストデータに対してステップS201以降の処理を実行してもよい。
さらに、上述のステップS211で述べたように、再生されるアニメーションが複数のフレームを順次表示する場合や、複数のアニメーションデータを再生する場合について、具体例を挙げながら詳細な説明を行なう。
図8は、図3に示されるような、「!」「電話」「メール」「!」の順に検索文字列が出現するテキストデータに対して、図6に示される対応する複数のアニメーションデータ「Data1」「Data2」「Data3」「Data1」を順番に再生する場合の、時系列の具体例を示す図である。ここでは、「Data1」の再生時間は5秒で、「Data2」の再生時間は10秒であるものとする。また、「Data3」のような静止画像の場合、再生時間というものは通常持たないが、ここでは5秒間だけ表示されるように当該テキストデータ表示装置において決定されているものとする。
図8に示されるように、複数のアニメーションデータを再生する際には、対応する検索文字列の出現順にしたがって順次再生される。あるいは、順次再生せずに同時に重ねて、あるいは別の位置にて再生を開始してもよいし、別のアニメーションデータの終了を待たずに順次再生するようにしてもよい。また、各アニメーションデータの再生時間は、予めアニメーションデータに固有に設定されていてもよいし、テキストデータ表示装置ごとに設定されるものであってもよい。さらに、図5に示されるように、検索文字列に優先度情報が対応付けられている場合には、対応するテキストデータをその優先順位に応じた再生時間あるいは再生方法で再生することもできる。具体的には、優先順位の高い検索文字列に対応したアニメーションデータほど再生時間を長くすることもできるし、優先順位の高い検索文字列に対応したアニメーションデータほど他のアニメーションデータの上に重ねて同時に再生してもよい。
さらに、テキストデータ表示装置がスクロールボタンなどの表示画面の内容を変更する手段を備える場合の、テキストデータ表示装置での表示画面の変更について具体例を挙げて説明する。
図9〜図14は、表示画面の具体例として第1〜第6の表示画面を示す図である。なお、図9〜図14に示される第1〜第6の表示画面は、図4に示される対応テーブルと図6に示される対応アニメーションデータとを使用しているものとし、「1メール¥n2電話¥n3メール¥n4メール¥n5電話¥n6メール¥n」というテキストデータが表示されているものとする。
図9を参照して、第1の表示画面においては、複数回出現する検索文字列「メール」に対応する「Data3」のアニメーションデータが背景として1つだけ再生され、その上にテキストデータが表示される。第1の画面において、テキストの表示位置を上へスクロールさせるような表示変更指示を行なった場合、図10に示される第2の表示画面のように、テキストだけを上にスクロールさせ、背景のアニメーションはスクロールさせないように表示画面を変更させてもよい。
なお、「Data3」は静止画であるが、これが動画であった場合にその再生が終了するときや、テキストデータ表示装置で設定された所定時間が経過したときや、表示位置の変更指示が行なわれたときなどに、背景であるアニメーションデータを検索文字列「電話」に対応する「Data2」のアニメーションデータに変更してもよい。あるいは、「Data2」と「Data3」とを同時に画面に表示するようにしてもよい。
また、図11を参照して、第3の表示画面においては、各検索文字列に対するアニメーションデータが、各検索文字列に対して相対的な位置に検索文字列と1対1の関係で配置されるように、検索文字列の表示位置に基づいてアニメーションデータの出力形態が変更されている。このような第3の画面において、テキストの表示位置を上にスクロールさせるような表示変更指示を行なった場合、図12に示される第4の表示画面のように、テキストに対応するアニメーションデータが、テキストと共にスクロールするように表示画面を変更させてもよい。
また、図13を参照して、第5の表示画面においては、各検索文字列に対するアニメーションデータが、他のアニメーションデータに対して相対的な位置ないし大きさないし色で配置されるように、他のアニメーションデータの表示位置に基づいてアニメーションデータの出力形態が変更されている。つまり、第5の表示画面においては、「1メール」「2電話」「3メール」「4メール」「5電話」の検索文字列に対応するアニメーションデータの出力形態が、画面左上からこの順番で重ねて配置されるよう変更されており、大きさもこの順番に比例して変更されている。
また、曜日や日時に応じて、表示するアニメーションの表示位置や大きさやその内容自体を変更するよう出力形態を変更してもよい。具体的には、アニメーションデータと検索文字列との対応と共にアニメーションデータと曜日や日時などとを対応付ける、図24に示すような対応テーブルを用いて、アニメーションデータの出力形態を変更してもよいし、テキストデータ表示装置側で曜日や日時に応じて背景の色やキャラクタの髪の色等、アニメーションの表示内容の一部または全部の色調などの出力形態を変更するようにしてもよい。
また、図25に示されるような、0から10までの乱数を発生させて、アニメーションデータと発生させた乱数とを対応付ける対応テーブルを用いて、2のときは「Data1」のアニメーションデータ、5や7のときは「Data2」のアニメーションデータを使用し、それ以外はアニメーションを使用しないというように出力形態を変更してもよい。なお、乱数の範囲についてはテキストデータ表示装置側で決定するようにしてもよいし、対応テーブルに別途乱数を発生させる範囲のデータを格納しておいてもよい。また、図26に示されるような、検索文字列と対応するアニメーションデータの表示確率とを対応付ける対応テーブルを用いて、「Data1」のアニメーションデータは20%表示する、「Data2」のアニメーションデータは50%表示する、というように、検索文字列ごとにアニメーションデータの表示される確率を制限するように出力形態を変更してもよい。
このような第5の表示画面において、テキストの表示位置を上にスクロールさせるような表示変更指示を行なった場合、図14に示される第6の表示画面のように、テキストに対応するアニメーションデータの配置ないし大きさないし色などの出力形態を再計算して配置する。
また、第5の表示画面に示されるように、「2電話」に対応する最も手前かつ左上のアニメーションデータのみ再生を開始し、「5電話」に対応する右下のアニメーションデータは再生させずに最も手前に配置されるまで最初の画面で停止させたままにしてもよい。
なお、このようにアニメーションデータを再生する際やフレームインする際にフェードインするようにしたり、アニメーションデータの再生を終了する際やフレームアウトする際にフェードアウトしたりするようにして、自然に導入ないし導出できるような補正をしてもよい。これは、アニメーションデータ描画部106が図示しないアニメーション導入出補正部をさらに含み、アニメーションデータ描画部106が描画用メモリ108に該当するアニメーションデータを描画する際に、当該アニメーション導入出補正部が再生開始のフレームから所定数のフレーム、あるいは、再生終了のフレームから所定数のフレームに対して補正処理を実行することによって実現される。
さらに、「Data2」のような音を含んだアニメーションデータを再生する際、状況に応じて全く音を出さないように出力形態が制限されてもよい。この場合の状況とは、複数のアニメーションデータを同時に再生する場合や携帯電話などで音を出さない設定にしている場合などが該当する。
なお、本実施の形態におけるテキストデータ表示装置は、上述の図2のステップS201,S203の処理に替えて、次のような処理を行なって再生するアニメーションデータを決定してもよい。すなわち、テキストデータ表示装置が図27の(a)〜(c)に示されるメール1〜メール3であるテキストデータを表示する場合を例にとって以下で説明する。この場合、図27に示されるテキストデータには、図28に示されるような種類および個数の検索文字列が含まれるものとする。
テキストデータ表示装置は、テキストデータ解析部101において、図29に示される検索文字列表に基づいて、図27に示されるテキストデータに含まれる検索文字列のカウントを行なう。なお、図29に示される検索文字列表は、当該テキストデータ表示装置予め設定されていてもよい。あるいは、データ格納部103に格納されていて、当該処理を行なうにあたって、対応テーブル取得部102が当該検索文字列表をデータ格納部103から取得し、テキストデータ解析部101に渡してもよい。なお、その場合、上述のステップS201と同様に、複数の対応テーブルの中から、季節や日時、天候情報、または明示的な指示などに応じて該当する対応テーブルを選択して取得してもよい。また、上述のステップS211と同様に、表示するアニメーションデータまたはテキストデータを更新する場合に、必要に応じて、対応テーブルを更新してもよい。
テキストデータ解析部101におけるカウント方法は、本発明において限定されるものではないが、その一例として、たとえば、ある検索文字列が10個あった場合にカウントが0個にリセットされるようなカウント方法であるとすると、すなわち、検索文字列数の1の位のみカウントする方法であるとすると、カウント結果であるカウンタは、検索文字列の種類数の桁数で表わすことができる。つまり、図29に示されるような検索文字列が4種類である場合には、カウンタを4桁で表わすことができる。
このような場合、本テキストデータ表示装置は、データ格納部103に対応テーブルとして、カウンタとアニメーションデータとを対応付ける対応テーブルを格納する。図30に、カウンタとアニメーションデータとを対応付ける対応テーブルの具体例を示す。対応テーブル取得部102は、図30に示されるような対応テーブルをデータ格納部103から取得する。
本テキストデータ表示装置において、図27(a)に示されるメール1であるテキストデータを表示する場合、メールを表示する度にカウンタを0000にリセットするようなカウント方法であるとき、テキストデータ解析部101でのカウンタは1111である。そこで、上述のステップS205において、アニメーションデータ決定部104は、そのカウンタと図30に示される対応テーブルとを参照して、表示するアニメーションデータとして「Data1」であるアニメーションデータを決定する。同様に、図27(b)に示されるメール2であるテキストデータを表示する場合、カウンタは2020なので、アニメーションデータ決定部104は表示するアニメーションデータとして「Data2」であるアニメーションデータを決定する。図27(c)に示されるメール3であるテキストデータを表示する場合には、カウンタは1010で、対応するアニメーションデータが対応テーブルにないので、その場合、ステップS205においてアニメーションデータ決定部104は表示するアニメーションデータがないものと決定し、本テキストデータ表示装置ではアニメーションを表示しない。あるいは、アニメーションデータ決定部104は予め定めてあるアニメーションデータを決定してもよい。
一方、メールを表示する度にカウンタをリセットしないようなカウント方法であるとき、カウンタ0000のときに図27(a)に示されるメール1であるテキストデータを表示してから図27(c)に示されるメール3であるテキストデータを表示する場合、もしくは、メール3であるテキストデータを表示してからメール1であるテキストデータを表示する場合、テキストデータ解析部101でのカウンタは2121となる。そこで、上述のステップS205において、アニメーションデータ決定部104は、そのカウンタと図30に示される対応テーブルとを参照して、表示するアニメーションデータとして「Data3」であるアニメーションデータを決定する。また、カウンタ0000のときにメール3あるテキストデータを2回連続して表示させると、2回目にカウンタは2020となり、アニメーションデータ決定部104は表示するアニメーションデータとして「Data2」であるアニメーションデータを決定する。
さらに、他のカウント方法として、テキストデータに付随する情報、たとえば、日時情報や曜日情報、添付アニメーションデータの有無などに応じて検索文字列のカウントを行なう方法などが挙げられる。具体的には、所定の日時や曜日である場合には、所定の検索文字列のカウンタを2倍とするようなカウント方法や、添付アニメーションデータがある場合には、全てのカウンタを0とするようなカウント方法が挙げられる。
あるいは、携帯電話のメールのようなテキストデータであれば送信者に関する情報、たとえば電話番号ごとに別々のカウンタを用意するようにしてもよいし、電話番号の下1桁の数で所定の検索文字列のカウンタに積算するというようなカウント方法にしてもよい。
次に、描画用メモリ108を含むメモリ領域について説明する。
上述のようにテキストとアニメーションとを重ねて表示する際、アニメーションを背景(下)としてテキストを(上に)表示するには、まずアニメーションを描画用メモリ108に描画し、次にそのアニメーションを描画してある描画用メモリ108にテキストを直接描画する。あるいは、そのアニメーションを描画した描画用メモリ108の内容を、図示しない他のメモリ領域にコピーして、コピーしたメモリ領域に対してテキストデータを描画する。いずれの場合においても、以下に述べる理由で、アニメーションを描画する描画用メモリ108は、アニメーションデータを表示するために必要なメモリ領域の2倍以上あることが好ましい。なお、アニメーションデータの表示領域は、画面の表示領域の一部でもよいし、それよりも大きくてもよく、テキストデータの表示領域より小さくてもよいし、大きくてもよい。
図15に、テキストデータと重合わせるためにアニメーションデータを描画用メモリ108に描画するタイミングの具体例を示す。図15においては、「Frame1」,「Frame2」,「Frame3」からなるアニメーションデータ「Data1」を描画する場合のタイミングであって、「Frame1」を500〜1000ms、「Frame2」を1000〜1500ms、「Frame3」を1500ms以降に表示するようなアニメーションを描画する場合のタイミングが示されている。さらに、図15においては、各フレームを0ms〜500msごとに描画用メモリ108に順番に描画し、それぞれの描画処理にかかる時間は250msでテキストとの重合わせ処理にかかる時間は100msとしている。なお、ここでは、各フレームを所定間隔で定期的に描画するものとしているが、1つのフレームの描画が終了してから250ms後に次のフレームを描画するというようにしてもよいし、テキストデータ表示装置のリソースなどによって各フレームの描画を行なう時間を厳密に決定しなくてもよい。
さらに、このときのメモリ領域へ描画方法の具体例を2つ示し、各々の状況を図16に示す。図16において、BufferA、BufferB1、およびBufferB2は、アニメーションデータの表示領域と同等のメモリ領域とする。
図16を参照して、1つのバッファBufferAのみを使用してアニメーションデータ「Data1」を描画する第1の方法の場合、上述のように各フレームの描画処理にかかる時間は250msであるため、250〜500msに「Frame1」、750〜1000msに「Frame2」、1250〜1500msに「Frame3」がメモリ領域内に完全な形で描画されているが、それ以外の時間にはメモリ領域内でフレームは完全に描画されていない。このため、たとえば、開始から501ms後に表示位置の変更指示があっても、メモリ領域内で「Frame2」の描画が完成する750msまで待ってからテキストデータとの重合わせの処理をする必要があるため、レスポンスが低くなってしまうことがある。そこで、このようなレスポンスの低下を防止するために、第1の方法においては、完成途上のアニメーションとテキストデータとを重ねて表示することが好ましい。また、完成途上の場合は、重合わせをせずにテキストデータのみ表示することも好ましい。
一方、BufferB1とBufferB2との2つのバッファを使用してアニメーションデータ「Data1」を描画する第2の方法の場合、BufferB1を使用して「Frame1」,「Frame3」を描画し、BufferB2を使用して「Frame2」を描画する。その場合、BufferB1には、250〜1000msに「Frame1」、1250〜1500msに「Frame3」が、BufferB2には、750〜1500msに「Frame2」が完全な形で描画されている。このため、0〜250msを除けば、表示位置の変更指示があれば直ちにテキストデータとの重合わせの処理をすることができ、常にレスポンスを高くすることができる。つまり、たとえば、501msに表示位置の変更指示があった場合にはBufferB1に描画されているアニメーションデータの内容を使用し、1001msに表示位置の変更指示があった場合にはBufferB2に描画されているアニメーションデータの内容を使用してテキストデータとの重合わせの処理をすることができる。すなわち、第2の方法は、2以上の複数のバッファを用いてアニメーションデータを構成する各フレームを交互に描画することによって、常にどれかのバッファには描画の完成したアニメーションを置いておくことが可能になる。その結果、表示位置の変更指示に対して、素早く応じることができる。
次に、テキストデータとアニメーションデータとの重合わせについて説明する。図17および図18は、テキストデータとアニメーションデータとを重合わせてから画面表示を更新するまでの2つの方法の、各々のタイミングの具体例を示す図である。図17および図18においては、「Frame1」〜「Frame3」の画面を順番にメモリ領域に描画する場合を示しており、それぞれのフレームの描画にかかる時間は「Frame1」が550ms、「Frame2」が250msで、それぞれの描画間隔は100msとする。また、メモリ領域に描画したアニメーションとテキストデータとを重合わせる処理を行なうのに100msかかるとする。
図17に示される第1の方法では、テキスト描画部107でのテキストの描画を制御する制御部(図示せず)は、500msごとにアニメーションの描画が完了しているか調べ、完了していればテキスト描画部107でのテキストの描画を実行して、テキストと重合わせて表示する。この第1の方法では、図17に示されるように、「Frame1」の描画が完了するのは550msで1000msには「Frame2」の描画が完了しているので、テキストと重合わせの処理を実行する処理時間を確保できず、「Frame1」は表示されなくなってしまう。
一方、図18に示される第2の方法は、アニメーションデータ描画部106でのアニメーションの描画の完了が、制御部に通知されるような場合で、制御部はアニメーションの描画の完了を検出すると、直ちにテキスト描画部107でのテキストの描画を実行させ、テキストデータと重合わせて描画を更新することができる。そのため、第2の方法では、再生時間が決まっているアニメーションにおいて、表示されないフレームを少なくすることができる。
なお、アニメーションデータに、図19に示されるように、テキストデータの表示の仕方についての情報が含まれていてもよい。図19は、その場合のアニメーションデータ「Data4」,「Data5」,「Data6」の具体例を示す図である。
図19を参照して、携帯電話のメール閲覧用アプリケーションを起動させた場合ようなテキストデータ表示方法では、通常横書きで縦にスクロールされるものであるが、アニメーションデータ「Data4」は、共に表示されるテキストデータを縦書きに表示させ横にスクロールして表示させる。また、ユーザからのスクロール指示がない場合でも、一定の時間が経てば自動で横にスクロールするようにしてもよい。
また、図19を参照して、アニメーションデータ「Data5」は、共に表示されるテキストデータを特定の線分に沿って配置して表示させるようなアニメーションデータで、スクロールして表示させる場合も、線分に沿ってスクロールして表示させる。なお、曲線に沿って表示させてもよい。
また、図19を参照して、アニメーションデータ「Data6」は、共に表示されるテキストデータを、文字の大きさ、太字、斜体、下線などの装飾を伴って表示させるような情報を含む。また、文字の色やフォントを指定する情報も含まれている場合、その情報に従ってテキストを表示するようにしてもよい。
アニメーションデータ取得部105がこのようなアニメーションデータをデータ格納領域103から取得した場合、アニメーションデータ描画部106でアニメーションデータを描画用メモリ108に描画すると共に、テキスト描画部107にテキストデータの表示の仕方についての情報を渡す。そして、テキスト描画部107では、アニメーションデータ描画部106から渡された当該情報に基づいてテキストデータを描画用メモリ108に描画する。
さらに、テキストデータ解析部101におけるテキストデータの解析範囲について説明する。テキストデータ解析部101におけるテキストデータの範囲は、テキストデータの全範囲とすることもできるし、以下のように設定することで、所定の範囲とすることもできる。
図20は、テキストデータの具体例を示す図であって、HTML(Hyper Text Markup Language)で記載されたテキストデータの具体例を示す図である。
図20に示されるようなHTMLで記載されたテキストデータに対して、テキストデータ解析部101は、限定的に解析を行なうことができる。すなわち、テキストデータ解析部101において、予め、たとえば、「<body>」と「/<body>」とで囲まれている範囲であって、かつ「<!−−」と「−−>」とで囲まれている範囲外のテキストデータのみ解析するよう設定すると、図20に示される「テキスト3」のみを解析範囲とすることができる。このようにすることで、テキストデータ解析部101を限定的に使用することができる。
また、テキストデータ解析部101での解析方法として、テキストデータから、特定の文字と対応テーブルの文字列との組合わせを検索する解析方法であってもよい。たとえば、特定の文字を「<」とし、図4に示された対応テーブルを用いて解析する場合、テキストデータから「<!」「<電話」「<メール」の文字列を検索する解析方法であってもよい。また、特定の文字は複数であってもよいし、対応テーブルの文字列の先頭に限らず文字列中ないし末尾であってもよい。
また、当該テキストデータ表示装置が携帯電話であって、メールを閲覧するメールブラウザとして機能する場合、テキストデータ解析部101での解析範囲をメール本文に限定せず、送信者や宛先やタイトルなどの情報が解析範囲に含まれてもよい。その際、テキストデータ表示装置である携帯電話は、図示しない記憶領域に、図21に示されるような、送信相手の電話番号やメールアドレスなどと、使用するアニメーションデータとの対応とが記録されたアドレス帳を格納することが好ましい。このようなアドレス帳を格納することで、上述の対応テーブルに変えて用いることができる。すなわち、テキストデータ表示装置である携帯電話は、たとえば、アドレス「Sato@hoge1.com」から受信したメールは、アニメーションデータ「Data1」を用いて表示する。また、テキストデータ表示装置である携帯電話は、アドレス帳を編集して使用するアニメーションデータを変更できるようにしてもよい。たとえば、アドレス「Yam@hoge3.com」から受信したメールをアニメーションデータ「Data2」を用いて表示させるようにしたい場合は、名前「山本」のアドレス帳を編集して、使用するアニメーションデータを「Data2」から「Data3」に変更する。
[変形例]
さらに、図22に、テキストデータ表示装置の利用形態の変形例を示す。図22を参照して、変形例におけるテキストデータ表示装置1401(送信側),1402(受信側)は、携帯電話などが該当し、互いに通信を行なう通信手段を備える。さらに、テキストデータ表示装置1401,1402は、サーバ1403とも通信を行なう。
サーバ1403は、対応テーブルやアニメーションデータを格納するサーバであって、図1に示されるデータ格納部103を含む。
変形例においては、テキストデータ表示装置1401は、他のテキストデータ表示装置1402に対して、テキストデータを送信する際、テキストデータと共に、当該テキストデータを表示するための対応テーブルとして対応テーブルAを使用するという対応テーブル識別情報を、当該テキストデータのヘッダなどに含めて送信する。あるいは、テキストデータ表示装置1401は、他のテキストデータ表示装置1402に対してテキストデータを送信する際、サーバ1403に対して、対応テーブルAをテキストデータ表示装置1402に送信するように制御信号を送信してもよい。さらに、テキストデータ表示装置1401は、他のテキストデータ表示装置1402に対して、テキストデータと共に使用する対応テーブルAと対応するアニメーションデータとを送信するようにしてもよい。
なお、テキストデータ表示装置1401において当該テキストデータを表示させるために対応テーブルAを使用するときに、内蔵するデータ格納部103に対応テーブルAが格納されていない場合、サーバ1403に対して対応テーブルAの内容を送信するように制御信号を送信してもよいし、サーバ1403に格納される全ての対応テーブルを送信するように制御信号を送信してもよい。
テキストデータ表示装置1401からテキストデータを受信したテキストデータ表示装置1402は、受信したテキストデータに対応テーブルAを使用するという対応テーブル識別情報が含まれている場合、テキストデータ解析部101は当該テキストデータを解析した対応テーブル識別情報を抽出し、その情報に基づいて、データ格納部103より該当する対応テーブルAを取得する。そして、その対応テーブルAを使用してテキストデータ表示を行なう。
さらに、受信したテキストデータ表示装置1402は、内蔵するデータ格納部103に対応テーブルAが格納されていない場合、サーバ1403に対して対応テーブルAの内容を送信するように制御信号を送信してもよいし、サーバ1403に格納される全ての対応テーブルを送信するように制御信号を送信してもよい。
さらに、テキストデータ表示装置1401からテキストデータ表示装置1402に対して、当該テキストデータを表示するために用いる対応テーブルの識別情報である対応テーブル識別情報を、テキストデータに含めて送信することもできる。そこで、次に、対応テーブル識別情報をテキストデータに含める場合の具体例として、テキストデータ表示装置1401からインターネットメールを使用してテキストデータを送信する場合について説明する。
図23は、インターネットメールのヘッダ部分の具体例を示す図である。インターネットメールのヘッダ部分に含まれるそれぞれの情報はフィールドとよばれ、「フィールド名:フィールド内容」の形式でヘッダ部分に記載される。
図23に示される具体例においては、インターネットメールのヘッダ部分に、差出人(01行目)、宛先(02行目)、コメント(04行目)、および検索のためのキーワード(05行目)などの情報を表わすフィールドが含まれる。また、1行目に示されるような「(」「)」で囲まれた部分はコメントとして扱われる。
図23に示されるように、上述の対応テーブル識別情報は、01行目に示されるコメントとして含まれるものであってもよいし、04行目に示されるようにコメントフィールドとして含まれるものであってもよいし、05行目に示されるようにキーワードフィールドに含まれるものあってもよい。また、それ以外に別のフィールドに含まれてもよい。なお、別のフィールドとは、ユーザが自由に定義できるユーザ定義フィールドのようなフィールドが含まれる。
また、識別情報字体は、01行目のコメントや05行目のキーワードのように対応テーブル名または対応テーブルを識別可能な番号でもよいし、04行目のコメントのように対応テーブルを取得できるURLでもよい。
以上のように、本発明のテキストデータ表示装置は、上述のような処理を実行することによって、テキストデータ表示装置においてテキストデータを表示する際、そのテキストデータに含まれる文字列に対応するアニメーションを背景としたテキスト表示、または該アニメーションを前景としたテキスト表示や、該アニメーションを背景と前景とにしたテキスト表示といった変化に富んだテキスト表示を行なう。このため、テキストデータ表示装置において、静止画像や動画像が添付されていないような簡素なメールに代表されるプレーンテキストであっても、対応するアニメーションデータがプレーンテキストに重ねて表示されることにより、ユーザはテキストの内容を楽しみながら閲覧することができる。
また、変形例に示されるテキストデータ表示装置では、他のテキストデータ表示装置に対して、アニメーションデータと共にテキストを表示させたい場合であっても、プレーンテキストのみ送信することで、当該他のテキストデータ表示装置においてアニメーションデータを取得してテキストと共に表示される。そのため、テキストデータと共に静止画像や動画像を送信する場合に比べ通信量を減らすことができる。
さらに、上述のテキストデータ表示装置が行なうテキストデータ表示方法を、プログラムとして提供することもできる。このようなプログラムは、コンピュータに付属するフレキシブルディスク、CD−ROM(Compact Disk-Read Only Memory)、ROM(Read Only Memory)、RAM(Random Access Memory)およびメモリカードなどのコンピュータ読取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。あるいは、コンピュータに内蔵するハードディスクなどの記録媒体にて記録させて、プログラムを提供することもできる。また、ネットワークを介したダウンロードによって、プログラムを提供することもできる。
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
101 テキストデータ解析部、102 対応テーブル取得部、103 データ格納部、104 アニメーションデータ決定部、105 アニメーションデータ取得部、106 アニメーションデータ描画部、107 テキスト描画部、108 描画用メモリ、109 表示部、110 画面表示部、1401,1402 テキストデータ表示装置、1403 サーバ。