【解決手段】本発明は、プロセッサを備えるタブレット端末の発明である。プロセッサは、手書き入力に応じて生成されるストロークデータの少なくとも一部に対して触覚フィードバックを関連付け(ステップS6)、上記ストロークデータ及び上記触覚フィードバックを示すハプティクスデータを含むデジタルインクを生成する(ステップS8)ように構成される。
前記プロセッサは、電子ペンの位置を検出するセンサコントローラから位置の供給を受ける都度、前記ハプティクスデータを決定し、供給された前記位置及び決定した前記ハプティクスデータを含む前記位置データを生成する、
請求項12に記載の手書きデータ生成装置。
前記プロセッサは、前記位置データに対応する前記ストロークデータの部分を再生するときに、前記位置データに含まれるハプティクスデータによって示される前記触覚フィードバックを再生するように力覚発生装置を制御する、
請求項22に記載の手書きデータ再生装置。
前記プロセッサは、ユーザによる前記位置データの指定を受け付けたことに応じて、前記指定された位置データに含まれるハプティクスデータによって示される前記触覚フィードバックを再生するように力覚発生装置を制御する、
請求項22に記載の手書きデータ再生装置。
【発明を実施するための形態】
【0010】
以下、添付図面を参照しながら、本発明の実施の形態について詳細に説明する。
【0011】
図1は、本発明の第1の実施の形態によるタブレット端末1a,1bの外観を示す図である。また、
図2は、タブレット端末1a,1bの内部構成を示す図である。
【0012】
図2から理解されるように、コンピュータであるタブレット端末1a,1bは同じ構成を有する装置であり、通信ネットワーク2を介して接続されている。本実施の形態においては、タブレット端末1aはデジタルインクDINKを生成するための「手書きデータ生成装置」であり、生成したデジタルインクDINKを、通信ネットワーク2を介してタブレット端末1bに供給するよう構成される。また、タブレット端末1bはデジタルインクDINKを再生するための「手書きデータ再生装置」であり、タブレット端末1aから供給されたデジタルインクDINKを再生するよう構成される。なお、タブレット端末1a,1bのそれぞれが「手書きデータ生成装置」と「手書きデータ再生装置」の両方の機能を有していてもよいのは勿論である。また、タブレット端末以外のコンピュータ、例えばパーソナルコンピュータやスマートフォンに、「手書きデータ生成装置」及び「手書きデータ再生装置」の機能を実装することも可能である。
【0013】
図2に示すように、タブレット端末1a,1bはそれぞれ、ホストプロセッサ10、記憶部11、ディスプレイ12、センサ13、センサコントローラ14、力覚発生装置15、及び通信部16を有して構成される。以下、タブレット端末1aに着目して詳細に説明するが、タブレット端末1bについても同様である。尚、タブレット端末1aは、ディスプレイ12を設けること無く、電子ペンPや指などの指示体のタッチを受けるタッチ面を設ける構成であってもよい。
【0014】
ホストプロセッサ10は、ディスプレイ12及び力覚発生装置15を含むタブレット端末1aの全体を制御する中央処理装置であり、記憶部11に記憶されるプログラムを実行することにより、タブレット端末1aのオペーレーティングシステムや、描画ソフトウェアなどの各種アプリケーションなどを実行する役割を果たす。記憶部11は、任意のデータを記憶可能に構成された記憶装置であり、DRAM(Dynamic Random Access Memory)などの主記憶装置と、ハードディスクなどの補助記憶装置とを含む。
【0015】
ディスプレイ12は、ホストプロセッサ10の制御に応じて任意のデータを表示する表示装置であり、例えば、液晶ディスプレイ又は有機ELディスプレイである。センサ13は、それぞれセンサコントローラ14に接続された複数のセンサ電極によって構成されるセンサパターンであり、ディスプレイ12の表示面の内側に配置される。これにより、タブレット端末1aでは、ディスプレイ12の表示面がタッチ面となる。ただし、ディスプレイ12の表示面とは別の位置にタッチ面を設けることとしてもよく、その場合、センサ13はそのタッチ面の内側に配置される。
【0016】
センサコントローラ14は、センサ13を介して、
図1に示した電子ペンPや指などの指示体のタッチ面上における位置を検出するとともに、電子ペンPとの間で通信を行う機能を有する集積回路である。センサコントローラ14は、例えば静電容量方式によって指の位置検出を行い、例えばアクティブ静電方式によって電子ペンPの位置検出及び電子ペンPとの通信を行う。尚、電磁誘導方式によって電子ペンPの位置検出及び電子ペンPとの通信を行う構成であってもよい。センサコントローラ14は、指又は電子ペンPの位置を検出した場合、及び、電子ペンPとの通信によって電子ペンPからデータを受信した場合、逐次、これらの位置又はデータをホストプロセッサ10に供給するよう構成される。ホストプロセッサ10は、こうして供給された位置及びデータに基づいて、デジタルインクDINKの生成及び描画、カーソルの移動などの処理を実行する。
【0017】
アクティブ静電方式について、簡単に説明する。以下では、センサコントローラ14から電子ペンPに対して送信される信号を「アップリンク信号」と称し、電子ペンPからセンサコントローラ14に対して送信される信号を「ダウンリンク信号」と称する。
【0018】
センサコントローラ14は、センサ13を用い、原則として一定の時間間隔で周期的にアップリンク信号の送信を行う。こうして送信されるアップリンク信号には、電子ペンPに対する命令であるコマンドが含まれる。
【0019】
電子ペンPは、ペン先に設けられたペン先電極と、このペン先電極を介してアップリンク信号の受信及びダウンリンク信号の送信を行う制御部と、ペン先に加わる圧力の値(筆圧値)を検出する筆圧検出部と、電子ペンPの筐体側面に加わる圧力の値(グリップ力値)を検出するグリップ力検出部と、電子ペンPの動作に必要な電力を供給する電源と、電子ペンPを一意に識別するためのペンIDなどの各種データを記憶する記憶部とを有して構成される。
【0020】
電子ペンPの制御部は、アップリンク信号を受信したことに応じて、ダウンリンク信号を送信するよう構成される。こうして送信されるダウンリンク信号は、センサコントローラ14と電子ペンPとがまだ互いを検出していない場合には、無変調の搬送波信号であるバースト信号のみを含む信号となる。一方、センサコントローラ14と電子ペンPとが互いを検出済みである場合には、より短いバースト信号と、アップリンク信号内に含まれるコマンドに応じたデータによって変調されてなるデータ信号とを含む信号となる。データ信号により送信されるデータには、上述した筆圧値、グリップ力値、ペンIDなどが含まれ得る。
【0021】
センサコントローラ14は、まだ電子ペンPを検出していない段階では、センサ13に含まれるすべてのセンサ電極を用いてバースト信号を受信することにより、タッチ面の全体で電子ペンPの位置検出を試みる(グローバルスキャン)。その結果として電子ペンPの位置を検出した後には、検出した位置の近傍にある1以上のセンサ電極のみを用いてバースト信号を受信することにより電子ペンPの位置を更新していく(ローカルスキャン)とともに、データ信号を受信して復調することにより電子ペンPが送信したデータを受信する。
【0022】
ここで、電子ペンPは、ペン軸方向に並置された複数のペン先電極を有し、各ペン先電極からバースト信号を送信するように構成されてもよい。この場合、センサコントローラ14は、各ペン先電極から送信されたバースト信号を区別して受信することによりそれぞれの位置を導出し、その結果に基づいて電子ペンPの傾きを示すチルト角を取得するよう構成される。チルト角も、他のデータと同様にホストプロセッサ10に供給され、デジタルインクDINKの生成及び描画などの処理のために使用される。なお、電子ペンP内にジャイロを設け、その出力値から電子ペンPのチルト角を算出することとしてもよい。この場合、電子ペンPからセンサコントローラ14に対してジャイロの出力値を供給し、チルト角の算出はセンサコントローラ14内で行うこととしてもよいし、電子ペンP内でチルト角を算出し、電子ペンPからセンサコントローラ14に対してチルト角の算出結果を供給することとしてもよい。
【0023】
図2に示した各構成の説明に戻る。力覚発生装置15はユーザに対して触覚フィードバックを与えるための装置であり、例えば入力電流の波形に応じて振動するバイブレータや、入力電流の波形により固さを制御可能な磁性流体によって構成され得る。典型的な例では、力覚発生装置15はタブレット端末1aの筐体内部に配置され、タッチ面を含む筐体の表面に振動を与えるように構成される。
【0024】
通信部16は、ホストプロセッサ10を通信ネットワーク2に接続するための通信装置である。本実施の形態における通信部16は、タブレット端末1aとタブレット端末1bの間でデジタルインクDINKの送受信を行うために使用される。
【0025】
図3は、タブレット端末1aによって生成されるデジタルインクDINKのデータ構造を示す図である。同図に示すように、デジタルインクDINKは、インクデータ100とメタデータ120とを含んで構成される。このうちインクデータ100は、それぞれ手書き入力の結果(すなわち、指示体の軌跡)を示す複数のストロークデータST(
図4を参照)を含むストロークデータ群102と、各ストロークデータSTを描画するために使用されるコンテキストデータ101とを含んで構成される。
【0026】
コンテキストデータ101は、ブラシ属性データ103と、タイムスタンプ104と、ハプティクスデータ105とを含んで構成される。ブラシ属性データ103は、描画色107、透明度108、電子ペンPの先端形状109などのストロークデータSTを描画するために必要となるデータ(ブラシ属性)を、ブラシID106に対応付けて格納するデータである。タイムスタンプ104は、当該デジタルインクDINKに含まれる最初のストロークデータSTの入力が開始された時刻を、所定時刻(例えば1970年1月1日0時0分0秒)からの経過時間により表すデータである。ハプティクスデータ105は、1以上のストロークデータSTに触覚フィードバックを対応付けるデータであり、領域ID110に対応付けて、タイムスタンプ111、対象ストロークデータ特定データ112、触覚フィードバック特定データ113を含んで構成される。これらハプティクスデータ105を構成する各データについては、後ほど詳細に説明する。
【0027】
図4は、ストロークデータ群102の例を示す図である。同図に示すように、ストロークデータ群102に含まれる各ストロークデータSTは、<trace>タグと</trace>タグの間に複数の位置データPDを含む構造を有している。各位置データPDは、
図4に示すように、X座標、Y座標、チルト角Tilt、筆圧値F1、及びグリップ力値F2を含んで構成される。また、ストロークデータSTは、属性として、ブラシ属性参照値brushRef及びタイムオフセットtimeOffsetを含んで構成される。ブラシ属性参照値brushRefには、上述したブラシID106が設定される。各ストロークデータSTの描画は、このブラシID106に対応付けてブラシ属性データ103内に格納される各ブラシ属性に従って行われる。また、タイムオフセットtimeOffsetには、当該ストロークデータSTの入力開始時刻を、コンテキストデータ101内のタイムスタンプ104により表される時刻からの経過時間により表すデータが設定される。
【0028】
ここで、センサコントローラ14による位置の検出及びデータの取得は、通常、一定の時間間隔で行われる。したがって、ホストプロセッサ10は、ストロークデータSTに含まれる座標の変化量から、指示体の移動速度、及び、指示体の停止時間の長さを導出することができる。こうして導出された移動速度又は停止時間の長さは、ストロークデータSTを描画するために使用され得る。
【0029】
図3に戻り、メタデータ120はインクデータ100に付加される情報であり、ハプティクス効果定義データ121を含んで構成される。ハプティクス効果定義データ121は触覚フィードバックの具体的な内容(すなわち、力覚発生装置15において発生する力覚の内容)を定義するデータであり、定義ID122に対応付けて、力覚発生装置15への入力波形を規定するwaveファイル123(波形データ)又はそのパス情報を含んで構成される。タブレット端末1bが触覚フィードバックを再生する際には、このwaveファイル123に従う電流を力覚発生装置15に供給することにより、触覚フィードバックの再生が実現される。
【0030】
図5は、ハプティクス効果定義データ121の例を示す図である。同図に示す「HE1」「HE2」「HE3」はそれぞれ定義ID122である。同図のハプティクス効果定義データ121は、このうち「HE2」「HE3」に対応付けて、waveファイル123(wave−file 20、wave−file 30)を含んでいる。「HE1」については、「No haptics(ハプティクスなし)」という記述を含んでいるが、この記述は、触覚フィードバックを付与しないことを表している。このように、ハプティクス効果定義データ121には、触覚フィードバックの非付与を定義することも可能である。
【0031】
図6は、ハプティクスデータ105の例を示す図である。同図に示したハプティクスデータ105は、
図1に示したデジタルインク(父から子への手紙を示すデジタルインク)に対応するものである。
【0032】
図6を参照すると、ハプティクスデータ105は、互いに異なる領域ID110を含む1以上の部分ハプティクスデータPHDにより構成される。各部分ハプティクスデータPHDはそれぞれ、領域ID110の他、タイムスタンプ111、対象ストロークデータ特定データ112、及び触覚フィードバック特定データ113を含んで構成される。
【0033】
領域ID110は、ユーザが触覚フィードバックの付与対象として指定した領域(以下、「ハプティクス付与領域」と称する)に付与される通番である。
図1及び
図6には、ユーザにより4つのハプティクス付与領域D1〜D4が指定された例を示している。詳細は後述するが、ユーザは、電子ペンPなどの指示体を用いて1以上のストロークデータSTを囲むストロークデータST(
図1には破線で例示している)を入力することにより、各ハプティクス付与領域を指定する。
【0034】
対象ストロークデータ特定データ112は、対応するハプティクス付与領域内に含まれる1以上のストロークデータSTを特定するデータであり、当該デジタルインクDINK内におけるストロークデータSTの通番により記述される。以下では、対象ストロークデータ特定データ112により特定された1以上のストロークデータSTのそれぞれを「対象ストロークデータST」と称する。例えば、
図1に示すハプティクス付与領域D1であれば、「大好きなEmmaちゃん」という文字列を示す一連のストロークデータSTと、ハートマークを構成する一連のストロークデータSTと、ハートマークの背景となっている色付きの丸印(図面では灰色になっているが、実際には有彩色によって記述されている)を示す一連のストロークデータSTとのそれぞれが対象ストロークデータSTとなる。また、
図1に示すハプティクス付与領域D2であれば、さくらんぼ(葉っぱ及び彩色部分を含む)を構成する一連のストロークデータSTのそれぞれが対象ストロークデータSTとなる。
【0035】
触覚フィードバック特定データ113は、対象ストロークデータSTの再生時に再生する触覚フィードバックの内容を定義するデータであり、
図3に示した定義ID122を用いて記述される。例えば、ハプティクス付与領域D1であれば、触覚フィードバック特定データ113に「HE3」と記述されているので、定義ID122「HE3」に対応する「wave−file 30」(
図5を参照)がハプティクス付与領域D1のための触覚フィードバックの内容となる。
【0036】
タイムスタンプ111は、対応する触覚フィードバックの再生開始タイミングを示すタイミング情報であり、対応する1以上の対象ストロークデータのうちの最先のもの(すななわち、
図4に示したタイムオフセットtimeOffsetにより示される時刻が最も早いもの)の入力開始時刻により記述される。一例では、対応する1以上の対象ストロークデータのうちの最先のものに設定されているタイムオフセットtimeOffsetがそのままタイムスタンプ111に設定される。タイムスタンプ111は、各ハプティクス付与領域の順序(order)を定める役割も果たす。
【0037】
以下、タブレット端末1a,1bが行う処理を示すフロー図を参照しながら、手書きデータ生成装置としてのタブレット端末1aが行う処理、及び、手書きデータ再生装置としてのタブレット端末1bが行う処理について、さらに詳しく説明する。
【0038】
図7は、タブレット端末1aが行う触覚フィードバック付与処理を示すフロー図である。なお、同図に示す処理は、タブレット端末1aのホストプロセッサ10によって実行される処理であり、触覚フィードバックの付与対象となるデジタルインクDINKの表示中に実行される。
【0039】
図7に示すように、タブレット端末1aはまず、ユーザ操作に応じて、触覚フィードバック付与モードにエントリする(ステップS1)。触覚フィードバック付与モードにエントリしたタブレット端末1aは、上述したハプティクス付与領域のユーザによる指定を待機する。この指定は、上述したように、電子ペンPなどの指示体を用いて1以上のストロークデータSTを囲むストロークデータSTを入力することにより実行される。
【0040】
タブレット端末1aは、指示体により入力されたストロークデータSTが閉領域を構成したことにより、ハプティクス付与領域の指定を受け付ける(ステップS2)。そして、指定されたハプティクス付与領域に基づき、触覚フィードバック付与の対象となる1以上の対象ストロークデータSTを決定する(ステップS3)。具体的には、指定されたハプティクス付与領域内に全体が含まれるストロークデータSTを対象ストロークデータSTとして決定してもよいし、指定されたハプティクス付与領域内に一部が含まれるストロークデータSTを対象ストロークデータSTとして決定してもよい。
【0041】
次にタブレット端末1aは、決定した1以上の対象ストロークデータのうち最先のもののタイムオフセットtimeOffset(
図4を参照)を取得するとともに(ステップS4)、付与する触覚フィードバックの選択を受け付ける(ステップS5)。ステップS5の選択は、
図5に示したハプティクス効果定義データ121に格納されている複数の定義ID122のうちの1つを選択することによって行われる。ただし、ここで複数の定義ID122を選択できるようにすることも可能である。この点については、後ほど第2の実施の形態で詳しく説明する。
【0042】
次にタブレット端末1aは、
図6に示した部分ハプティクスデータPHDを生成する。具体的に説明すると、タブレット端末1aはまず、ステップS2で受け付けたハプティクス付与領域に領域ID110を付与し、部分ハプティクスデータPHD内に設定する。そして、この領域ID110に対応付けて、部分ハプティクスデータPHD内に、タイムスタンプ111、対象ストロークデータ特定データ112、及び、触覚フィードバック特定データ113を設定する。タイムスタンプ111には、ステップS4で取得したタイムオフセットtimeOffsetが設定される。対象ストロークデータ特定データ112には、ステップS3で決定した1以上の対象ストロークデータSTそれぞれの通番が設定される。触覚フィードバック特定データ113には、ステップS5で受け付けた定義ID122が設定される。
【0043】
部分ハプティクスデータPHDの生成を完了したタブレット端末1aは、終了を示すユーザ操作の有無に基づき、ハプティクス付与領域の指定が終了したか否かを判定する(ステップS7)。終了していないと判定した場合、タブレット端末1aは、ステップS2に戻って次のハプティクス付与領域の指定を受け付ける。一方、終了したと判定した場合、タブレット端末1aは、それまでに生成した1以上の部分ハプティクスデータPHDを含むデジタルインクDINKを生成する(ステップS8)。以上の処理により、デジタルインクDINKへの触覚フィードバックの付与が完了する。ここまでの説明から理解されるように、以上の触覚フィードバック付与処理は、デジタルインクDINKを書いたユーザによって実行され得る。
【0044】
図8は、タブレット端末1bが行う触覚フィードバック再生処理を示すフロー図である。なお、同図に示す処理は、タブレット端末1bのホストプロセッサ10によって実行される処理である。
【0045】
初めに、タブレット端末1bは、ハプティクスデータ105を含むデジタルインクDINKをタブレット端末1aから取得し、自身のディスプレイ12に表示する(ステップS10)。続いてタブレット端末1bは、ユーザによりPLAY_ALLボタンが押下されたか、或いは、デジタルインクの表示領域が押下されたかを判定する(ステップS11)。
【0046】
ここで、PLAY_ALLボタンは、表示中のデジタルインクDINK内のストロークデータSTをすべて再生する、というユーザ指示をタブレット端末1bに入力するためのボタンである。一例では、タブレット端末1bはディスプレイ12上にデジタルインクDINKとともにPLAY_ALLボタンを表示し、このPLAY_ALLボタンが指示体によってタップされた場合に、PLAY_ALLボタンが押下されたと判定する。デジタルインクDINKの表示領域の押下についても同様であり、タブレット端末1bは、デジタルインクDINKの表示領域内の位置が指示体によってタップされた場合に、デジタルインクDINKの表示領域が押下されたと判定する。
【0047】
ステップS11においてPLAY_ALLボタンが押下されたと判定した場合、タブレット端末1bはまず、
図2に示した記憶部11に現在時刻を記憶する(ステップS12)。そして、デジタルインクDINK内の全ストロークデータSTを再生の対象として、ストロークデータ再生処理を開始する(ステップS13)。
【0048】
図9は、ストロークデータ再生処理の詳細を示すフロー図である。ストロークデータ再生処理を開始したタブレット端末1bは、いずれかのストロークデータSTの再生開始タイミングが到来したか否かを判定する(ステップS30)。具体的には、再生の対象となっている各ストロークデータSTのタイムオフセットtimeOffsetと、ステップS12において記憶部11に記憶した時刻からの経過時間とを比較し、後者が前者を越えたストロークデータSTが発生した場合に、そのストロークデータSTの再生開始タイミングが到来したと判定する。あるストロークデータSTの再生開始タイミングが到来したと判定したタブレット端末1bは、そのストロークデータSTの再生を開始する(ステップS31)。
【0049】
ここで、個々のストロークデータSTの再生は、当該ストロークデータSTに含まれる各座標を上述した一定の時間間隔(センサコントローラ14による位置検出の時間間隔)でプロットしていくとともに、その間を補間する曲線(例えば、キャットマル−ロム曲線)を描画していくことによって実行される。このとき、タブレット端末1bは、曲線の描画のために、上述したチルト角Tilt、筆圧値F1、グリップ力値F2、指示体の移動速度、指示体の停止時間の長さ、各種のブラシ属性(ストロークデータSTの描画色107、ストロークデータSTの描画色107、ストロークデータSTの透明度108、電子ペンPの先端形状109など)のうちの1つ以上を用い得る。例えば、筆圧値F1及び指示体の移動速度に応じた線幅、並びに、描画色107に応じた線色で、曲線の描画を行い得る。こうして実行されるストロークデータSTの再生は、当該ストロークデータSTに含まれるすべての座標のプロット及び対応する曲線の描画が完了した時点で終了する。
【0050】
ステップS30においていずれのストロークデータSTの再生開始タイミングも到来していないと判定した場合、または、ステップS31が終了した場合、タブレット端末1bは、いずれかの触覚フィードバックの再生開始タイミングが到来したか否かを判定する(ステップS32)。具体的には、デジタルインクDINK内に含まれる各部分ハプティクスデータPHDのタイムスタンプ111と、ステップS12において記憶部11に記憶した時刻からの経過時間とを比較し、後者が前者を越えた部分ハプティクスデータPHDが発生した場合に、その部分ハプティクスデータPHDに含まれる触覚フィードバックの再生開始タイミングが到来したと判定する。ある触覚フィードバックの再生開始タイミングが到来したと判定したタブレット端末1bはまず、再生中の触覚フィードバックがあれば、力覚発生装置15への電流の供給を中止することによってその再生を終了する(ステップS33)。そして、再生開始タイミングが到来した触覚フィードバック(具体的には、waveファイル)に基づいて力覚発生装置15への電流の供給を開始することにより、触覚フィードバックの再生を開始する(ステップS34)。
【0051】
ステップS31においていずれの触覚フィードバックの再生開始タイミングも到来していないと判定した場合、及び、ステップS34が終了した場合、タブレット端末1bは、再生中の触覚フィードバックの再生終了タイミングが到来したか否かを判定する(ステップS35)。具体的には、再生中の触覚フィードバックに対応する部分ハプティクスデータPHDに含まれるすべてのストロークデータSTの再生が完了した場合に、再生中の触覚フィードバックの再生終了タイミングが到来したと判定する。再生中の触覚フィードバックの再生終了タイミングが到来したと判定したタブレット端末1bは、力覚発生装置15への電流の供給を中止することにより、触覚フィードバックの再生を終了する(ステップS36)。
【0052】
ステップS35において再生中の触覚フィードバックの再生終了タイミングがまだ到来していないと判定した場合、及び、ステップS36が終了した場合、タブレット端末1bは、再生対象の全ストロークデータSTの再生が完了したか否かを判定する(ステップS37)。そして完了したと判定した場合にはストロークデータ再生処理及び触覚フィードバック再生処理を終了し、完了していないと判定した場合にはステップS30に戻って処理を繰り返す。
【0053】
図8に戻る。ステップS11においてデジタルインクDINKの表示領域が押下されたと判定した場合、タブレット端末1bはまず、押下された位置に対応するストロークデータSTを取得する(ステップS20)。具体的には、押下された位置を通過するストロークデータSTを取得することとしてもよいし、押下された位置を通過するストロークデータSTがなければ、押下された位置に最も近いストロークデータSTを取得することとしてもよい。
【0054】
次にタブレット端末1bは、ステップS20で取得したストロークデータSTを示す対象ストロークデータ特定データ112を含む部分ハプティクスデータPHDがあるか否かを判定する(ステップS21)。ここでないと判定した場合、タブレット端末1bは、触覚フィードバック再生処理を終了する。一方、あると判定した場合には、タブレット端末1bは、その部分ハプティクスデータPHDを取得し(ステップS22)、記憶部11に現在時刻から、取得した部分ハプティクスデータPHDのタイムスタンプ111により示される時間だけ遡った時刻を記憶する(ステップS23)。これは、ユーザがデジタルインクDINKの表示領域をタップした後、直ちに、対応するストロークデータST及び対応する触覚フィードバックの再生を開始できるようにするためである。そして、取得した部分ハプティクスデータPHD内の全ストロークデータSTを再生の対象として、ストロークデータ再生処理を開始する(ステップS24)。
【0055】
ここで開始されるストロークデータ再生処理の詳細は、
図9を参照して説明したストロークデータ再生処理と同様である。ただし、ステップS30,S32の判定は、ステップS12において記憶部11に記憶した時刻に代え、ステップS23において記憶部11に記憶した時刻に基づいて実行される。また、ステップS30で再生開始タイミングの判定対象となるストロークデータST、及び、ステップS32で再生開始タイミングの判定対象となる触覚フィードバックは、ステップS22で取得した部分ハプティクスデータPHDに含まれるもののみとなる。
【0056】
以上説明したように、本実施の形態によるタブレット端末1a,1b及びデジタルインクDINKによれば、1以上の対象ストロークデータSTに対して付与する触覚フィードバックをデジタルインクDINK内に設定できるので、テキストを書いた人が再生時の触覚フィードバックを意図的に設定可能となる。
【0057】
次に、本発明の第2の実施の形態によるタブレット端末1a,1bについて説明する。本実施の形態によるタブレット端末1a,1bは、生成する部分ハプティクスデータPHDの構造、及び、ストロークデータ再生処理の具体的内容の点で第1の実施の形態によるタブレット端末1a,1bと異なり、その他の点では第1の実施の形態によるタブレット端末1a,1bと同様である。以下、第1の実施の形態によるタブレット端末1a,1bとの相違点に着目して説明する。
【0058】
図10は、本実施の形態による部分ハプティクスデータPHDの構造を示す図である。同図に示すように、本実施の形態による部分ハプティクスデータPHDは、筆圧値F1(具体的には、筆圧値F1の範囲114)に対応付けて触覚フィードバック特定データ113を格納している点で、
図6に示した第1の実施の形態による部分ハプティクスデータPHDと相違する。このような部分ハプティクスデータPHDを生成するため、本実施の形態によるタブレット端末1aは、
図7のステップS5において、ユーザが筆圧値F1の範囲114ごとに定義ID122を選択できるように構成される。
【0059】
図11は、本実施の形態によるストロークデータ再生処理の詳細を示す図である。
図9と比較すると理解されるように、本実施の形態では、ステップS32の否定判定の後に、触覚フィードバックの変更タイミングの到来を判定する処理(ステップS32a)が追加されている。
【0060】
ステップS32aについて具体的に説明すると、本実施の形態によるタブレット端末1bは、ステップS32で否定的な判定結果を得た後、現在再生中の位置データPDに含まれる筆圧値F1と、現在再生中の触覚フィードバックに対応する部分ハプティクスデータPHDに含まれる筆圧値F1の範囲114とに基づき、再生する触覚フィードバックを変更するタイミングが到来したか否かの判定を行う。そして、到来したと判定した場合に、ステップS32で肯定的な判定結果を得た場合と同様、ステップS33,S34を実行する。ステップS34では、現在再生中の位置データPDに含まれる筆圧値F1に対応する触覚フィードバックが再生される。到来していないと判定した場合には、ステップS35に処理を進める。
【0061】
以上説明したように、本実施の形態によるタブレット端末1a,1b及びデジタルインクDINKによれば、部分ハプティクスデータPHD内において筆圧値F1と触覚フィードバック特定データ113とを対応付け、筆圧値F1に基づいて触覚フィードバックの変更タイミングを判定しているので、筆圧値F1の変化に応じて触覚フィードバックを変更することが可能になる。したがって、デジタルインクを再生するユーザは、デジタルインクを書いたユーザの筆圧をリアルに感じながら、再生されるデジタルインクを視聴することが可能になる。
【0062】
なお、本実施の形態では筆圧値F1に応じて触覚フィードバックを変更する例を説明したが、その他の基準に基づいて触覚フィードバックを変更することとしてもよいのは勿論である。例えば、上述したチルト角Tilt、グリップ力値F2、指示体の移動速度、指示体の停止時間の長さ、各種のブラシ属性(ストロークデータSTの描画色107、ストロークデータSTの描画色107、ストロークデータSTの透明度108、電子ペンPの先端形状109など)や、これらに筆圧値F1を加えたものの中から選択される2つ以上のデータの組み合わせに応じて、触覚フィードバックを変更することとしてもよい。この場合においても、具体的な部分ハプティクスデータPHDの構造及びストロークデータ再生処理は、本実施の形態で説明したものと同様でよい。ただし、ブラシ属性を触覚フィードバック変更の基準として用いる場合のステップS32aでは、現在再生中の位置データPDに含まれる筆圧値F1に代え、現在再生中のストロークデータSTのブラシ属性に基づき、再生する触覚フィードバックを変更するタイミングが到来したか否かの判定が行われる。
【0063】
また、第1及び第2の実施の形態では、手書きデータ再生装置であるタブレット端末1b内に1つの力覚発生装置15を設ける例を説明したが、例えば、ディスプレイ12を複数の領域に分けてその領域ごとに力覚発生装置15を設け、再生中のストロークデータSTを含む領域の力覚発生装置15を駆動することによって、触覚フィードバックを再生することとしてもよい。こうすれば、表示面の全体ではなく一部のみに対して、局所的に触覚フィードバックを与えることが可能になる。
【0064】
また、力覚発生装置15をタブレット端末1bとは別体の装置に設けることとしてもよい。例えば、タブレット端末1bにマイクを接続し、歌詞を示すデジタルインクの再生に合わせて音楽を再生することによりタブレット端末1bをカラオケ装置として使用する場合、力覚発生装置15をマイク内に配置することで、音楽の進行状況に合わせた触覚フィードバックを、マイクを持つ手に与えることが可能になる。他にも、スマートブレスレット、スマートフィンガー、スマートリング(指輪)、スマートグラス(メガネ)、心拍センサ及び呼吸センサを内蔵するスマートシャツ、スマートウオッチ、ブルートゥース(登録商標)キートラッカー、スマートシューズ、スマートソックス、スマートパンツ、スマートベルト、SGPS(Simultaneous Global Positioning System)/GPRS(General Packet Radio Service)によるベビーコントローラーなど、各種の装置に力覚発生装置15を設けることが可能である。
【0065】
また、部分ハプティクスデータPHD内に、ハプティクス付与領域を定義する座標データを配置することとしてもよい。こうすれば、そのハプティクス付与領域が押下されたことを契機として、
図8に示したステップS22以降の処理を実行することが可能になる。
【0066】
また、第1及び第2の実施の形態では、ユーザにより指定されたハプティクス付与領域に基づき、触覚フィードバック付与の対象となる1以上の対象ストロークデータSTを決定していたが、他の方法で1以上の対象ストロークデータSTを決定することとしてもよい。例えば、デジタルインクDINKに対してセマンティック・セグメンテーション処理を行い、その結果に基づいて得られる領域(一例では、意味上の段落に相当する1以上のストロークデータを含む領域)をハプティクス付与領域として決定し、該ハプティクス付与領域に基づいて1以上の対象ストロークデータSTを決定することとしてもよい。
【0067】
次に、本発明の第3の実施の形態によるタブレット端末1a,1bについて説明する。本実施の形態によるタブレット端末1a,1bは、コンテキストデータ101内ではなく各ストロークデータSTの位置データPD内にハプティクスデータが配置される点、及び、通信部16がブルートゥース(登録商標)などの近距離無線通信にも対応しており、電子ペンPと近距離無線通信によって通信可能に構成される点で第1の実施の形態によるタブレット端末1a,1bと異なり、その他の点では第1の実施の形態によるタブレット端末1a,1bと同様である。以下、第1の実施の形態によるタブレット端末1a,1bとの相違点に着目して説明する。
【0068】
図12は、本実施の形態によるストロークデータ群102の例を示す図である。
図4に示した例と比較すると理解されるように、本実施の形態によるストロークデータSTは、各位置データPD内にハプティクスデータHEPが含まれる点で、第1の実施の形態によるストロークデータSTと相違する。本実施の形態によるハプティクスデータHEPは触覚フィードバックの内容を示すデータであり、例えば、触覚フィードバックの再生強度(以下、「ハプティクス強度」と称する)によって記述される。以下では、ハプティクスデータHEPはハプティクス強度であるとして説明を続ける。
【0069】
本実施の形態によるタブレット端末1bの通信部16(
図2を参照)は、ブルートゥース(登録商標)などの近距離無線通信による通信を実行可能に構成される。また、電子ペンPも同様に、近距離無線通信による通信を実行可能に構成される。本実施の形態による電子ペンPはさらに、上述した力覚発生装置15と同様の力覚発生装置を内蔵している。詳しくは後述するが、本実施の形態によるタブレット端末1bは、電子ペンP内の力覚発生装置に触覚フィードバックを発生させるために、近距離無線通信を用いて電子ペンPを制御するよう構成される。
【0070】
図13は、本実施の形態によるタブレット端末1aが行うストロークデータ生成処理を示すフロー図である。なお、同図に示す処理は、タブレット端末1aのホストプロセッサ10によって実行される処理である。
【0071】
図13に示すように、タブレット端末1aはまず、センサコントローラ14から電子ペンPの位置及びデータが供給されたか否かを判定する(ステップS40)。タブレット端末1aは、電子ペンPの位置及びデータが供給されるまでステップS40を繰り返し実行する。
【0072】
ステップS40において電子ペンPの位置及びデータが供給されたと判定したタブレット端末1aは次に、ペンダウンが発生したか否かを判定する(ステップS41)。この判定においてタブレット端末1aは、センサコントローラ14から供給されたデータに含まれる筆圧値F1が0から0より大きい値に変化した場合にペンダウンが発生したと判定する。ペンダウンが発生したと判定したタブレット端末1aは、ストロークデータSTの生成開始処理を実行する(ステップS42)。具体的には、
図12に示したストロークデータSTのヘッダ部分(<trace>タグ)を生成する。
【0073】
ステップS41でペンダウンが発生していないと判定した場合、又は、ステップS42を完了した場合、タブレット端末1aは、ペンアップが発生したか否かを判定する(ステップS43)。この判定においてタブレット端末1aは、センサコントローラ14から供給されたデータに含まれる筆圧値F1が0より大きい値から0に変化した場合にペンアップが発生したと判定する。ペンアップが発生したと判定したタブレット端末1aは、ストロークデータSTの生成終了処理を実行する(ステップS42)。具体的には、
図12に示したストロークデータSTのフッタ部分(</trace>タグ)を生成し、ステップS40に戻る。
【0074】
ステップS43でペンアップが発生していないと判定したタブレット端末1aは、供給されたデータに含まれる筆圧値F1に対応するハプティクスデータHEPを取得する(ステップS45)。
【0075】
図14は、筆圧値F1と、ハプティクス強度であるハプティクスデータHEPとを対応付ける対応テーブルを示す図である。タブレット端末1aはこの対応テーブルを予め記憶しており、ステップS45の処理では、この対応テーブルに従ってハプティクスデータHEPを取得する。
【0076】
図13に戻る。ハプティクスデータHEPを取得したタブレット端末1aは、取得したハプティクスデータHEPを含む位置データPDを生成中のストロークデータSTに追加し、処理をステップS40に戻す。以上の処理により、ペンダウンとペンアップの間に、位置データPD内にハプティクスデータHEPを含むストロークデータSTが生成されることになる。
【0077】
図15は、本実施の形態によるタブレット端末1bが行う触覚フィードバック再生処理を示すフロー図である。なお、同図に示す処理は、タブレット端末1bのホストプロセッサ10によって実行される処理である。この例によるホストプロセッサ10は、ユーザによる位置データPDの指定を受け付けたことに応じ、電子ペンP内又はタブレット端末1b内の力覚発生装置を用いて、指定された位置データPDに含まれるハプティクスデータHEPによって示される触覚フィードバックを再生するよう構成される。
【0078】
具体的に説明すると、タブレット端末1bは、まず初めに1以上のストロークデータSTの描画を行う(ステップS50)。これにより、タブレット端末1bのディスプレイ12上に1以上のストロークデータSTが表示されることになる。
【0079】
次にタブレット端末1bは、ユーザによって、触覚フィードバック再生モードにエントリするためのモード設定操作がなされたか否かを判定する(ステップS51)。この操作は、例えば、タブレット端末1bがディスプレイ12上に表示したボタンのクリック又はタップである。タブレット端末1bは、モード設定操作がなされたと判定するまでステップS51の処理を繰り返し、モード設定操作がなされたと判定した場合に、触覚フィードバック再生モードにエントリし、かつ、触覚フィードバックの再生方法を決定する(ステップS52)。
【0080】
触覚フィードバックの再生方法は、例えば、電子ペンP内の力覚発生装置に触覚フィードバックを再生させる方法、又は、タブレット端末1b内の力覚発生装置15に触覚フィードバックを再生させる方法のいずれかである。例えばモード設定操作が電子ペンPによって行われた場合であれば、タブレット端末1bは、電子ペンPが送信するダウンリンク信号の内容から当該電子ペンPが力覚発生装置を内蔵しているか否かを判定し、内蔵していると判定した場合には電子ペンP内の力覚発生装置に触覚フィードバックを再生させると決定し、内蔵していないと判定した場合にはタブレット端末1b内の力覚発生装置15に触覚フィードバックを再生させると決定すればよい。また、例えばモード設定操作が指によって行われた場合、タブレット端末1bは、タブレット端末1b内の力覚発生装置15に触覚フィードバックを再生させると決定すればよい。
【0081】
続いてタブレット端末1bは、ステップS50で描画したストロークデータSTの描画領域及びその周囲に触覚フィードバック再生領域を設定する(ステップS53)。
【0082】
図16は、ステップS53において設定される触覚フィードバック再生領域を説明する図である。
図16(a)に示す曲線200は、ストロークデータST内に含まれる複数の座標から得られる近似曲線(具体的には、ベジエ曲線、キャットマル−ロム曲線など)を表している。また、
図16(a)に示す円201は、ストロークデータST内に含まれる各座標の位置と、その位置における筆圧値F1の大きさを表している。
【0083】
ステップS50において行ストロークデータSTを描画する際、タブレット端末1bは、各座標における円201の包絡線202,203を求める。そして
図16(b)に示すように、包絡線202,203に挟まれた領域をストロークデータSTの描画領域210として取得する。タブレット端末1bはこの描画領域210内を所与の色によって塗りつぶすことによってストロークデータSTを描画し、その結果として、ユーザによるストロークデータSTの視認が可能になる。
【0084】
こうしてストロークデータSTを描画したタブレット端末1bは、ステップS53において、描画領域210及びその周囲(両側)に、ユーザには見えない触覚フィードバック再生領域211を設定する。具体的な例を挙げると、タブレット端末1bは、上述した各円201の半径を所定の割合(例えば5%)で大きくしてなる円を仮想的に設定してそれらの包絡線202a,203aを求め、包絡線202a,203aによって挟まれた領域を触覚フィードバック再生領域211とすればよい。こうすることで、タブレット端末1bは、描画領域210よりも少し広い領域で触覚フィードバックを再生することが可能になる。このような効果が必要とされない場合においては、タブレット端末1bは、描画領域210を触覚フィードバック再生領域211として設定すればよい。
【0085】
図15に戻る。触覚フィードバック再生領域を設定したタブレット端末1bは、ユーザによって、触覚フィードバック再生モードを解除するためのモード解除操作がなされたか否かを判定する(ステップS54)。この操作も、例えば、タブレット端末1bがディスプレイ12上に表示したボタンのクリック又はタップであってよい。ステップS54においてモード解除操作がなされたと判定したタブレット端末1bは、処理をステップS51に戻す。一方、モード解除操作がなされていないと判定した場合、タブレット端末1bは次に、センサコントローラ14から指示体の位置が供給されたか否かを判定する(ステップS55)。
【0086】
ステップS55において供給されていないと判定したタブレット端末1bは、ステップS54に戻って処理を続ける。一方、供給されたと判定したタブレット端末1bは、供給された位置がステップS53で設定した触覚フィードバック再生領域内の位置であるか否かを判定する(ステップS56)。触覚フィードバック再生領域内の位置でないと判定したタブレット端末1bは、ステップS54に戻って処理を続ける。一方、触覚フィードバック再生領域内の位置であると判定したタブレット端末1bは、供給された位置に基づき、再生対象のハプティクスデータHEPを決定する(ステップS57)。具体的には、表示中のストロークデータSTに含まれる1以上の位置データPDのうち、供給された位置に最も近い座標を含む位置データPDを決定し、その中に含まれるハプティクスデータHEPを再生対象として決定すればよい。
【0087】
続いてタブレット端末1bは、ステップS52で決定した再生方法が電子ペンP内の力覚発生装置に触覚フィードバックを再生させる方法、又は、タブレット端末1b内の力覚発生装置15に触覚フィードバックを再生させる方法のいずれであったかを判定する(ステップS58)。そして、前者であると判定した場合には、ステップS57で決定したハプティクスデータHEPを近距離無線通信により電子ペンPに対して送信し(ステップS59)、後者であると判定した場合には、ステップS57で決定したハプティクスデータHEPに基づく電流を力覚発生装置15に供給する(ステップS60)。これにより、ユーザが電子ペンP又は指で触れた位置に対応する触覚フィードバックが、電子ペンP又はタブレット端末1bのいずれかにより再生されることになる。
【0088】
ここで、タブレット端末1bがステップS59又はステップS60を実行した結果として力覚発生装置に供給される電流の波形は、電子ペンP内又はタブレット端末1b内に予め設定しておけばよい。ただし、
図13に示したストロークデータ生成処理においてユーザによる波形データの指定を受け付け、その波形データを示す情報をハプティクスデータHEP内に含めることとしてもよい。この場合、ステップS59において、対応するwaveファイルを電子ペンPに対して送信することとしてもよい。
【0089】
以上説明したように、本実施の形態によるタブレット端末1a,1b、電子ペンP、及びデジタルインクDINKによれば、各ストロークデータSTの位置データPD内にハプティクスデータHEPを配置し、ユーザによる位置データPDの指定を受け付けたことに応じて、指定された位置データPDに含まれるハプティクスデータHEPによって示される触覚フィードバックを再生しているので、表示中のストロークデータSTをユーザが電子ペンP又は指でなぞった場合に、その電子ペンP又は指の触れている位置に対応するストロークデータSTの部分を書いたときのユーザの筆圧値に応じた触覚フィードバックを再生することが可能になる。
【0090】
また、本実施の形態によるタブレット端末1a,1b、電子ペンP、及びデジタルインクDINKによれば、ストロークデータSTの位置データPD内にハプティクスデータHEPを配置しているので、
図3に示したハプティクスデータ105やハプティクス効果定義データ121に対応していない電子ペンやタブレット端末においても、触覚フィードバックを再生することが可能になる。
【0091】
なお、本実施の形態では、表示中のストロークデータSTをユーザが電子ペンP又は指でなぞった場合に触覚フィードバックを再生する例を説明したが、ストロークデータSTの再生時に触覚フィードバックを再生することとしてもよい。具体的には、ストロークデータST内の各位置データPDに対応するストロークデータSTの部分を再生するときに、その位置データPDに含まれるハプティクスデータHEPによって示される触覚フィードバックを再生することとすればよい。こうすることで、デジタルインクを再生するユーザは、第2の実施の形態と同様に、デジタルインクを書いたユーザの筆圧をリアルに感じながら、再生されるデジタルインクを視聴することが可能になる。
【0092】
また、本実施の形態では、
図13のステップS45において、筆圧値F1からハプティクスデータHEPを求めていたが、タブレット端末1aは、上述したグリップ力値F2、指示体の移動速度、チルト角、ジャイロの出力値などの他の値からハプティクスデータHEPを求めることとしてもよい。また、心拍数や血中酸素濃度を測定する装置をユーザに取り付け、測定結果をタブレット端末1aに供給することにより、心拍数や血中酸素濃度からハプティクスデータHEPを求めることとしてもよい。この場合、
図14の左側の欄には、ハプティクスデータHEPを求めるために参照する値の組み合わせを配置することとすればよい。
【0093】
また、
図15に示した処理によれば、センサコントローラ14からホストプロセッサ10に位置が供給される都度、電子ペンPに対してハプティクスデータHEPが送信されることになるが、タブレット端末1bは、ハプティクスデータHEPの内容に変化があった場合にのみ、電子ペンPに対してハプティクスデータHEPを送信することとし、電子ペンPは、新たなハプティクスデータHEPが送信されてくるまでの間、それまでに受信したハプティクスデータHEPに基づいて触覚フィードバックを再生し続けることとしてもよい。こうすれば、タブレット端末1bと電子ペンPとの間の通信量を低減することができる。
【0094】
また、本実施の形態では、タブレット端末1b内で筆圧値F1などの値をハプティクスデータHEPに変換し、タブレット端末1bから電子ペンPに対してハプティクスデータHEPを送信する例を説明したが、電子ペンP内で筆圧値F1などの値をハプティクスデータHEPに変換することとし、タブレット端末1bから電子ペンPに対しては筆圧値F1などの値を送信することとしてもよい。この場合、
図14に示した対応テーブルを電子ペンP内に予め配置しておくことが好ましい。
【0095】
また、本実施の形態では、電子ペンPによる入力に従って生成されるストロークデータSTを取り上げて説明したが、他の種類の指示体による入力に従って生成されるストロークデータSTに対しても本発明は適用可能である。例えば、空中で操作するエアマウスの移動速度に基づいてハプティクスデータHEPを決定し、決定したハプティクスデータHEPを位置データPD内に配置すれば、触覚フィードバックを再生するユーザは、エアマウスの移動速度をリアルに体感することが可能になる。同様に、スプレータイプの電子ペンのグリップ力値に基づいてハプティクスデータHEPを決定し、決定したハプティクスデータHEPを位置データPD内に配置すれば、触覚フィードバックを再生するユーザは、スプレーの発射強度をリアルに体感することが可能になる。
【0096】
以上、本発明の好ましい実施の形態について説明したが、本発明はこうした実施の形態に何等限定されるものではなく、本発明が、その要旨を逸脱しない範囲において、種々なる態様で実施され得ることは勿論である。