情報処理プログラム、情報処理装置、情報処理システムおよび情報処理方法
【課題】所定の入力装置から出力される入力データを適切に処理すること。
【解決手段】情報処理装置は、タッチパネルを通じて入力される入力座標に基づいて、遊び座標および追従座標をリアルタイムに更新することによって、タッチパネルを通じて入力される入力座標の途切れを補正する。より具体的には、タッチパネルからの入力座標が途切れたとしても、追従座標が移動している間は、情報処理装置は、操作者が入力操作を継続しているとみなして座標の補完を行う。
【解決手段】情報処理装置は、タッチパネルを通じて入力される入力座標に基づいて、遊び座標および追従座標をリアルタイムに更新することによって、タッチパネルを通じて入力される入力座標の途切れを補正する。より具体的には、タッチパネルからの入力座標が途切れたとしても、追従座標が移動している間は、情報処理装置は、操作者が入力操作を継続しているとみなして座標の補完を行う。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理プログラム、情報処理装置、情報処理システムおよび情報処理方法に関し、特に、入力装置から出力される入力データを処理するための情報処理プログラム、情報処理装置、情報処理システムおよび情報処理方法に関する。
【背景技術】
【0002】
従来、タッチパネル等の座標入力装置から出力される座標データの途切れを補正する技術がある。例えば、タッチオフ時間が所定時間よりも短い場合には、接触状態が継続しているものとみなす従来技術(例えば、特許文献1)がある。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010−272100号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記の従来技術では、接触状態が継続しているか否かを、タッチオフ時間が所定時間(一定時間)より短いか否かによってのみ判定しているので、操作者による入力操作の仕方によっては、誤判定されてしまうことが多かった。
【0005】
本発明は、所定の入力装置から出力される入力データを適切に処理することが可能な情報処理プログラム、情報処理装置、情報処理システムおよび情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的は、例えば下記のような構成例によって達成される。
【0007】
第1の構成例は、所定の入力装置から出力される入力データを処理するための情報処理プログラムである。当該情報処理プログラムは、コンピュータを、前記入力データに基づいて設定される目標値に追従する追従値を算出する追従値算出手段、および前記入力装置からの前記入力データの出力が途切れた時、前記追従値が所定条件を満たしていれば、入力が継続しているものとして前記入力データを補正する途切れ補正手段として機能させる。
【0008】
「入力装置」は、操作者の入力操作に応じた入力データを出力する任意の装置であってもよく、一例としてはタッチパネルである。「入力データに基づいて設定される目標値」は、入力値そのものであってもよいし、入力値に応じて更新される他の値(後述する遊び座標等)であってもよい。「追従値」は、例えば、目標値が停止したとしても、当該目標値に徐々に近づくように制御される値である。「入力が継続しているものとして入力データを補正する」とは、入力装置からの入力データの出力が途切れた期間における入力データを補完することであってもよいし、入力状態を示す情報を入力中状態に設定することであってもよい。
【0009】
上記座標処理プログラムは、任意のコンピュータ読み取り可能な記憶媒体(例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、半導体メモリカード、ROM、RAMなど)に格納され得る。
【0010】
なお、前記入力装置からの前記入力データの出力が途切れた時に、前記途切れ補正手段が入力が継続しているものとみなす期間は、前記入力装置からの前記入力データの出力が途切れる直前における前記入力データの変化量が大きいほど長くなってもよい。
【0011】
また、前記所定の入力装置は、座標入力装置であり、前記入力データは、前記座標入力装置の操作面に対する接触位置を示す入力座標データであり、前記目標値は、前記入力座標データに基づいて設定される目標座標であり、前記追従値は、前記目標座標に追従する追従座標であってもよい。そして、前記途切れ補正手段は、前記入力座標データによって示される接触位置が途切れた時、前記追従座標が所定条件を満たしていれば、当該途切れた期間も接触が継続しているものとして前記入力座標データを補正してもよい。
【0012】
なお、前記所定条件は、単位時間当たりの前記追従値の変化量に関する条件であってもよい。
【0013】
また、前記途切れ補正手段は、前記入力データの出力が途切れたとしても、単位時間当たりの前記追従値の変化量が所定値以上であれば、当該途切れた期間も入力が継続しているものとして前記入力データを補正してもよい。
【0014】
また、前記所定条件は、前記追従値と前記目標値の差に関する条件であってもよい。
【0015】
また、前記途切れ補正手段は、前記入力データの出力が途切れた時、前記追従値と前記目標値の差が所定値より大きければ、当該途切れた期間も入力が継続しているものとして前記入力データを補正してもよい。
【0016】
また、前記追従値算出手段は、前記目標値に所定割合で追従するように、前記追従値を算出してもよい。
【0017】
「所定割合」は、定数であってもよいし、後述する追従割合のように、状況に応じて変化する変数であってもよい。
【0018】
また、前記追従値算出手段は、前記追従値と前記目標値の差が前記所定割合で短くなるように当該追従値を更新してもよい。
【0019】
また、前記追従値算出手段は、前記追従値と前記目標値の差に前記所定割合を乗算した結果の値だけ前記目標値へ近づくように、前記追従値を更新してもよい。
【0020】
また、前記目標値は、前記入力データが示す入力値との差が所定値よりも大きくなったときに、当該差が所定値となるように、その値が変化するものであってもよい。
【0021】
「所定値」は、定数であってもよいし、後述する遊び半径のように、状況に応じて変化する変数であってもよい。
【0022】
また、前記途切れ補正手段は、前記入力データをリアルタイムに補正してもよい。
【0023】
また、前記途切れ補正手段は、前記入力データの出力が途切れた時、前記追従値が所定条件を満たしていれば、前記追従値を用いて当該途切れた期間の入力データを補完してもよい。
【0024】
また、前記途切れ補正手段は、前記入力座標データによって示される接触位置が途切れたとしても、前記追従座標が所定条件を満たしている間は、前記入力座標データによって示される接触位置の間隔と、前記追従座標の移動方向とに基づいて、当該途切れた期間の接触位置を補完してもよい。
【0025】
第2の構成例は、所定の入力装置から出力される入力データを処理するための情報処理装置である。当該情報処理装置は、前記入力データに基づいて設定される目標値に追従する追従値を算出する追従値算出手段、および前記入力装置からの前記入力データの出力が途切れた時、前記追従値が所定条件を満たしていれば、入力が継続しているものとして前記入力データを補正する途切れ補正手段を備える。
【0026】
第3の構成例は、所定の入力装置から出力される入力データを処理するための情報処理システムである。当該情報処理システムは、前記入力データに基づいて設定される目標値に追従する追従値を算出する追従値算出手段、および前記入力装置からの前記入力データの出力が途切れた時、前記追従値が所定条件を満たしていれば、入力が継続しているものとして前記入力データを補正する途切れ補正手段を備える。
【0027】
第4の構成例は、所定の入力装置から出力される入力データを処理するための情報処理システムのコンピュータによって実行される情報処理方法である。当該情報処理方法は、前記入力データに基づいて設定される目標値に追従する追従値を前記コンピュータが算出する追従値算出ステップ、および前記入力装置からの前記入力データの出力が途切れた時、前記追従値が所定条件を満たしていれば、入力が継続しているものとして、前記コンピュータが前記入力データを補正する途切れ補正ステップを備える。
【発明の効果】
【0028】
本発明によれば、所定の入力装置から出力される入力データを適切に処理することが可能である。
【図面の簡単な説明】
【0029】
【図1】座標処理システムの一例を示す図
【図2】ペンによる入力座標の一例を示す図
【図3】指による入力座標の一例を示す図
【図4】入力座標の一例を示す図
【図5】入力座標に応じて決定される遊び座標の一例を示す図
【図6】遊び座標に応じて決定される追従座標の一例を示す図
【図7】入力座標に途切れが生じたときの遊び座標および追従座標の一例を示す図
【図8】指による入力座標およびそれに対応する追従座標の一例を示す図
【図9】ペンによる入力座標およびそれに対応する追従座標の一例を示す図
【図10】速度座標の一例を示す図
【図11】RAMに記憶されるデータの一例を示す図
【図12】座標処理の流れを示すフローチャートの一部
【図13】座標処理の流れを示すフローチャートの残りの一部
【図14】遊び半径の計算方法の一例を示す図
【図15】ジグザグ形状の判定方法の一例を示す図
【図16】追従割合の計算方法の一例を示す図
【図17】追従座標の決定方法の変形例を示す図
【図18】入力座標の補正方法の変形例を示す図
【図19】入力操作が終了したとみなすまでの時間を示す図
【発明を実施するための形態】
【0030】
図1において、座標処理システム10は、タッチパネル12、情報処理装置14、表示装置16および外部記憶媒体24を備えている。
【0031】
タッチパネル12は、操作面に対する指またはペンの接触位置を周期的に検出し、当該接触位置を示す座標データを所定の周期で情報処理装置14へと出力する。本実施形態では、タッチパネル12は感圧式である。
【0032】
情報処理装置14は、プロセッサ18、内部記憶装置20およびメインメモリ22を備えている。内部記憶装置20には、プロセッサ18によって実行されるコンピュータプログラムが格納されている。内部記憶装置20は、典型的には、ハードディスクやROM(Read Only Memory)である。メインメモリ22は、コンピュータプログラムやその他のデータを一時的に記憶する。
【0033】
表示装置16は、情報処理装置14によって生成された画像を画面に表示する。表示装置16の画面上にタッチパネル12が設けられていてもよい。
【0034】
外部記憶装置24には、プロセッサ18によって実行されるコンピュータプログラムが格納されている。外部記憶装置24は、典型的には、CD(Compact Disc)やDVD(Digital Versatile Disc)や半導体記憶装置である。
【0035】
なお、図1に示した座標処理システム10の構成は単なる一例に過ぎず、他の実施形態では、座標処理システムは、例えば、タッチパネルを備えた携帯型ゲーム機であってもよい。
【0036】
次に、座標処理システム10において実行される座標処理の概要を説明する。
【0037】
図2は、操作者がタッチパネル12の操作面にペンで円弧を描いたときにタッチパネル12によって検出される一連の座標(入力座標p1〜p18)を示している。このように、ペンでタッチパネル12を操作する場合には、入力座標にブレや途切れはほとんど生じない。一方、操作者がタッチパネル12の操作面に指で同じ円弧を描いたときには、図3に示すように、入力座標にブレや途切れが生じる。これは、主に、指はペンに比べて、操作面への接触面積が大きいことに起因する。一般的に、入力操作時における操作面への接触面積が大きいほど、入力座標のブレや途切れが発生しやすくなる傾向がある。これは、接触面積が大きいほど、検出される接触位置にブレが生じやすく、また、特に感圧式の座標入力装置では、接触面積が大きいほど操作面に対する単位面積当たりの圧力が小さくなるので、実際には接触しているにも関わらず、接触していないと誤判定されてしまうことが起こりやすくなるからである。
【0038】
情報処理装置14は、上記のような入力座標のブレや途切れを補正する処理(座標補正処理)を行う。具体的には、タッチパネル12を通じて入力される入力座標に基づいて、「遊び座標」および「追従座標」をリアルタイムに更新することによって、上記のような入力座標のブレや途切れを補正する。
【0039】
以下、図5を参照して、図4に示すような入力座標p1〜p6が入力されたときの遊び座標の更新方法について説明する。
【0040】
最初の入力座標p1が入力されると、当該入力座標p1と同じ値に、遊び座標r1が設定される。
【0041】
一旦設定された遊び座標は、最新の入力座標との間の距離が所定距離(図5に示す「遊び半径」)以下である間は変化しない。一方、最新の入力座標と間の距離が上記所定距離よりも大きい場合には、最新の入力座標との間の距離が上記所定距離と一致するように、最新の入力座標へ向かって移動するように遊び座標は変化する。なお、後述するように、遊び半径は、「指度合」(指らしさの度合を示す変数)に応じて例えば0〜30の範囲で変化する。
【0042】
すなわち、入力座標p2が入力されると、当該入力座標p2と遊び座標r1との間の距離が遊び半径よりも大きいので、入力座標p2との間の距離が遊び半径と一致するように、遊び座標は入力座標p2に向かって移動する。こうして、図5に示す遊び座標r2が決定される。
【0043】
入力座標p3が入力されると、当該入力座標p3と遊び座標r2との間の距離が遊び半径よりも大きいので、入力座標p3との間の距離が遊び半径と一致するように、遊び座標は入力座標p3に向かって移動する。こうして、図5に示す遊び座標r3が決定される。
【0044】
以下、同様にして、入力座標p4,p5,p6が入力される度に、遊び座標r4,r5,r6が順次決定される。
【0045】
図5から明らかなように、遊び座標r1〜r6によって示される入力軌跡は、入力座標p1〜p6によって示される入力軌跡と比べて、より滑らかになっており、座標のブレが抑えられているのが分かる。
【0046】
次に、図6を参照して、図4に示すような入力座標p1〜p6が入力されたときの追従座標の更新方法について説明する。
【0047】
最初の入力座標p1が入力されると、当該入力座標p1と同じ値(すなわち、遊び座標r1と同じ値)に、追従座標f1が設定される。
【0048】
一旦設定された追従座標は、最新の遊び座標との間の距離の所定割合(後述する「追従割合」)だけ当該遊び座標へ向かって移動するように更新される。なお、後述するように、追従割合は、指度合に応じて例えば40%〜100%の範囲で変化する。
【0049】
すなわち、遊び座標r2の位置が決定されると、当該遊び座標r2と追従座標f1との間の距離の所定割合(追従割合)だけ、追従座標は遊び座標r2へ向かって移動する。こうして、図6に示す追従座標f2が決定される。
【0050】
遊び座標r3の位置が決定されると、当該遊び座標r3と追従座標f2との間の距離の所定割合(追従割合)だけ、追従座標は遊び座標r3へ向かって移動する。こうして、図6に示す追従座標f3が決定される。
【0051】
以下、同様にして、遊び座標r4,r5,r6が決定される度に、追従座標f4,f5,f6が順次決定される。
【0052】
図6から明らかなように、追従座標f1〜f6によって示される入力軌跡は、遊び座標r1〜r6によって示される入力軌跡と比べて、さらに滑らかになっており、座標のブレがさらに抑えられているのが分かる。
【0053】
なお、入力座標が一時的に途切れた場合でも、遊び座標および追従座標の更新は行われる。図7を参照して、入力座標が一時的に途切れた場合における遊び座標および追従座標の更新方法について説明する。
【0054】
入力座標p1,p2,p3,p4が入力される度に、遊び座標r1,r2,r3,r4および追従座標f1,f2,f3,f4が順次決定される点については、図5および図6と同様である。
【0055】
図7の例では、入力座標p5が入力されるはずのタイミング(以下では、タイミングt5と称す)では入力座標が入力されず、その後、入力座標p6が入力されている。遊び座標および追従座標は、タッチパネル12から有効な入力座標が入力されたか否かに関わらず、所定の周期(例えば、タッチパネル12から座標データが出力される周期と同じ周期)で更新される。よって、タイミングt5においても、遊び座標および追従座標は更新される。
【0056】
なお、本実施形態では、後述するように、入力座標が入力されない間は遊び半径が徐々に小さくなっていく(図12のS22)。よって、タイミングt5では、最新の入力座標(すなわち、入力座標p4)との間の距離が、少し小さくなった遊び半径と一致するように、遊び座標は入力座標p4に向かって少しだけ移動する。こうして、図7に示す遊び座標r5が決定される。
【0057】
遊び座標r5が決定されると、当該遊び座標r5と追従座標f4との間の距離の所定割合(追従割合)だけ、追従座標は遊び座標r5へ向かって移動する。こうして、図7に示す追従座標f5が決定される。
【0058】
このように、入力座標p5が入力されなくても、当該入力座標p5が入力されるはずのタイミング(タイミングt5)に対応する遊び座標r5および追従座標f5が決定される。よって、入力座標が一時的に途切れた場合でも、座標の途切れを補正することができる(すなわち、本来入力されるはずの座標を補完することができる)。
【0059】
なお、座標の途切れを補正する際には、入力座標が一時的に途切れたのか、操作者が意図的に指またはペンをタッチパネル12の操作面から離したのかを区別する必要がある。これらを区別するための方法としては、種々の方法が考えられる。
【0060】
本実施形態では、追従座標が移動している間(より正確には、最新の遊び座標へ向かって移動するときの追従座標の移動量が所定量以上である間)は、操作者が入力操作を継続しているとみなして座標の補完を行う。そして、追従座標が最終的に停止した時点(より正確には、最新の遊び座標へ向かって移動するときの追従座標の移動量が所定量未満となった時点)で、操作者が入力操作を終了したとみなす。この場合、図19に示すように、入力座標が途切れる直前における遊び座標と追従座標との間の距離が大きいほど、入力座標が途切れてから、操作者による入力操作が終了したとみなすまでの時間が長くなる。
【0061】
一般的に、操作者が操作面上で指またはペンを素早く滑らせた場合には、ゆっくりと滑らせた場合と比べて操作面に対する圧力が不安定になるため、入力座標の途切れが生じやすくなる。また、操作者が操作面上で指またはペンを素早く滑らせる場合には、ゆっくりと滑らせる場合と比べて、遊び座標と追従座標との間の距離が大きくなる。よって、本実施形態では、操作者が操作面上で指またはペンを素早く滑らせた場合には、ゆっくりと滑らせた場合と比べて、操作者が入力操作を終了したとみなすまでの時間が長くなるので、入力座標の途切れを効果的に補正することができる。また、操作者が操作面上で指またはペンをゆっくりと滑らせた場合には、操作者が入力操作を終了したとみなすまでの時間が短くなるため、応答性の低下を抑えることができる。その結果、操作者にとって、良好な操作性が得られる。
【0062】
図3のような入力座標p1〜p4,p6〜p10,p13〜p18に対して、上記のように遊び座標および追従座標を更新した結果、図8に示すような追従座標f1〜f21が得られる。図8に示すように、追従座標f1は入力座標p1と一致しており、最後の追従座標f21は最後の入力座標p18とほぼ一致している。また、追従座標f1〜f21によって示される入力軌跡は、入力座標p1〜p4,p6〜p10,p13〜p18によって示される入力軌跡と比べて、滑らかになっており、本来の入力軌跡の形状により近づいている。また、入力座標が一時的に途切れた期間に対応する追従座標f5,f11〜f12が補完されている。したがって、タッチパネル12を指で操作する操作者にとって、良好な操作性が得られる。
【0063】
一方、図2のような入力座標p1〜p18に対して、上記のように遊び座標および追従座標を更新すると、図9に示すような追従座標f1〜f21が得られる。しかしながら、この場合には、そもそも入力座標にはブレや途切れが存在しないため、追従座標f1〜f21によって示される入力軌跡よりも、入力座標p1〜p18によって示される入力軌跡の方が、より正確な入力軌跡を表していると言える。また、座標データのブレを軽減する技術には、操作者の操作に対する応答性が低下するというデメリットが本来的に存在するため、例えば、入力座標p2に対応する追従座標f2は、入力座標p2からずれてしまう。追従座標f3〜f18についても同様である。また、操作者が入力操作を終了したとみなすタイミングも、本来のタイミング(すなわち、入力座標が途絶えたタイミング)よりも遅いタイミング(すなわち、追従座標が移動しなくなったタイミング)になってしまう。
【0064】
よって、上記のようなデメリットを考慮すると、図1のように、操作者がペンでタッチパネル12を操作している場合には、入力座標のズレや途切れを補正するよりも、むしろ、入力座標を補正しない方が好ましいと言える。そこで、本実施形態では、操作者がタッチパネル12を指で操作しているのかペンで操作しているのかによって、入力座標のズレや途切れの補正度合を変化させている。
【0065】
具体的には、操作者がタッチパネル12を指で操作していると判定される場合には、前述の遊び半径を大きくするとともに、前述の追従割合を小さくし、操作者がタッチパネル12をペンで操作していると判定される場合には、前述の遊び半径を小さくするとともに、前述の追従割合を大きくする。遊び半径を大きくするほど、接触位置の変動に対する応答性が低下するため、座標のブレはより抑えられ、同様に、追従割合を小さくするほど、接触位置の変動に対する応答性が低下するため、座標のブレはより抑えられる。これにより、タッチパネル12を指で操作する場合も、ペンで操作する場合も、操作者にとって、良好な操作性が得られる。
【0066】
なお、操作者がタッチパネル12をペンで操作していると判定される場合には、遊び半径を0にし、追従割合を100%にすることによって、追従座標が入力座標に完全に一致するようになる。そして、入力座標が途切れると、追従座標は一切移動しないため、入力座標が途切れた時点で即座に、操作者が入力操作を終了したとみなされることになる。
【0067】
なお、操作者がタッチパネル12を指で操作しているのかペンで操作しているのかの判定方法としては、種々の判定方法が考えられる。本実施形態では、指で操作しているのかペンで操作しているのかを二者択一で判定するのではなく、入力座標で示される入力軌跡の形状や、入力座標で示される連続接触時間や非連続接触時間に応じて、0.0〜1.0の範囲の値をとり得る、指らしさの度合を示す変数(指度合)を随時更新し、当該指度合に応じて遊び半径および追従割合を変化させている。
【0068】
ところで、図7を参照して説明したように、入力座標が途切れている間は、遊び座標が最新の入力座標(すなわち、最後に入力された入力座標)へ向かって徐々に移動するとともに、追従座標が遊び座標へ向かって移動することになる。よって、新たな入力座標が入力されない限りは、追従座標の移動速度(すなわち、1回当たりの移動量)が徐々に小さくなってしまう。これは、図8の追従座標f10〜f12や、追従座標f18〜f21にも表れている。
【0069】
しかしながら、実際には操作者は、図2に示すような入力操作の途中で指の移動速度を遅めたり速めたりしたわけではない。よって、追従座標の移動速度は、操作者の指の移動速度とは乖離したものとなる。そこで、本実施形態では、実際の操作者の指の移動量(単位時間当たりの移動量)と移動方向を推測し、少なくとも入力座標が途切れている間は、推測した移動量(推測移動量)および推測した移動方向(推測移動方向)とに基づいて決定されるベクトル(推測移動ベクトル)を用いて入力座標を補完する方法も提供する。以下では、このように推測移動ベクトルを用いて決定される座標を「速度座標」と称する。速度座標は、追従座標と比べて、実際の操作者の指の速度をより正確に反映していると考えられる。
【0070】
上記のように、推測移動ベクトルは、推測移動量と推測移動方向とに基づいて決定されるベクトルである。ここまで説明から明らかなように、追従座標は、入力座標に対して遅れて追従するため、これらの座標の移動量は、実際の操作者の指の移動量との相関性が低い。一方、入力座標の移動方向は、入力座標のブレのために、実際の操作者の指の移動方向との相関性が低い。そこで、本実施形態では、入力座標の移動量に基づいて推測移動量を算出し、追従座標の移動方向に基づいて推測移動方向を算出している。その結果、このようにして算出される推測移動量と推測移動方向とに基づいて決定される推測移動ベクトルは、実際の操作者の指の移動量および移動方向を、より正確に反映していると考えられる。
【0071】
以下、図10を参照して、図3に示すような入力座標p1〜p4,p6〜p10,p13〜p18が入力されたときの速度座標の更新方法について説明する。
【0072】
速度座標は、入力座標が途切れることなく入力されている間は、基本的に、追従座標に一致するように更新される。したがって、速度座標s8〜s10は、追従座標f8〜f10にそれぞれ一致する。
【0073】
入力座標が途切れている間は、速度座標は、追従座標から独立して、推測移動ベクトルに応じて更新される。すなわち、入力座標p11が入力されるはずのタイミングでは、その時点における推測移動ベクトルに応じて速度座標は移動する。こうして、図10に示す速度座標s11が決定される。さらに、入力座標p12が入力されるはずのタイミングでも、その時点における推測移動ベクトルに応じて速度座標は移動する。こうして、図10に示す速度座標s12が決定される。
【0074】
入力座標の入力が再開されると、速度座標は、最新の追従座標へ向かって順次移動し、最終的には、追従座標に再び一致するようになる。
【0075】
前述のように、速度座標は、入力座標や追従座標と比べて、特に入力座標が途切れている期間において、実際の操作者の指の移動量と移動方向をより正確に反映していると考えられる。したがって、例えば、ある瞬間における操作面上における操作者の指の移動速さと移動方向の両方に基づいて何らかの処理を行う場合には、入力座標や追従座標を参照するよりも速度座標を参照した方が、操作者にとっては、より良好な操作性が得られる。
【0076】
次に、図11〜図13を参照して、上述した座標処理を実行する情報処理装置14の動作について具体的に説明する。
【0077】
図11は、上述した座標処理を実行するときに情報処理装置14のメインメモリ22に格納される各種データの一例を示している。
【0078】
座標処理プログラムD10は、情報処理装置14のプロセッサ18に上述した座標処理を実行させるためのコンピュータプログラムである。座標処理プログラムD10は、内部記憶装置20または外部記憶装置24等から読み出されてメインメモリ22にロードされる。
【0079】
入力座標D11は、タッチパネル12から出力される入力座標を示すデータであり、典型的には、タッチパネル12の操作面における接触位置を表す2次元座標値である。本実施形態では、メインメモリ22には、タッチパネル12を通じて入力された最新の入力座標と、1つ前に入力された入力座標と、2つ前に入力された入力座標と、3つ前に入力された入力座標の、少なくとも4つの入力座標が保持される。
【0080】
入力タッチ状態D12は、タッチパネル12から出力される、タッチパネル12の操作面がタッチされている状態(以下、「タッチオン状態」または単に「オン」と称す)か、タッチされていない状態(以下、「タッチオフ状態」または単に「オフ」と称す)かを示すデータである。なお、ある種のタッチパネルでは、入力座標D11が無効な座標値である場合に、入力タッチ状態がタッチオフ状態であると判断することができる。
【0081】
遊び座標D13、追従座標D14および速度座標D15は、前述した遊び座標、追従座標、速度座標をそれぞれ示すデータであり、典型的には、タッチパネル12を通じて入力される入力座標D11に基づいてリアルタイムに生成される2次元座標値である。
【0082】
補正タッチ状態D16は、入力タッチ状態D12に対して前述の途切れ補正結果を反映させたものである。すなわち、入力タッチ状態D12が一時的にタッチオフ状態となったとしても、操作者による入力操作が途切れていない(すなわち、入力座標の途切れは一時的なものであって、実際には操作者による操作面へのタッチが継続している)とみなされる場合には、補正タッチ状態D16はタッチオン状態のまま維持される。
【0083】
遊び半径D17は、前述のように、遊び座標D13を更新するために用いられる変数である。本実施形態では、遊び半径D17は、0.0〜30.0の範囲の値をとり得る。
【0084】
追従割合D18は、前述のように、追従座標D14を更新するために用いられる変数である。本実施形態では、追従割合D18は、40%〜100%の範囲の値をとり得る。
【0085】
指度数D19は、前述のように、指らしさの度合を示す変数である。本実施形態では、指度数D19は、0.0〜1.0の範囲の値をとり得る。
【0086】
推測移動量D20は、前述のように、入力座標D11の移動量に基づいて推測される、実際の操作者の指の移動量(単位時間当たりの移動量)である。
【0087】
推測移動方向D21は、前述のように、追従座標D14の移動方向に基づいて推測される、実際の操作者の指の移動方向である。推測移動方向D21は、典型的には2次元ベクトルで表される。
【0088】
推測移動ベクトルD22は、推測移動量D20と推測移動方向D21とに基づいて決定されるベクトルであり、典型的には、推測移動量D20が示す大きさと、推測移動方向D21が示す方向とを有する2次元ベクトルである。
【0089】
次に、図12および図13のフローチャートを参照して、座標処理プログラムD10に基づいて情報処理装置14のプロセッサ18によって実行される座標処理の流れを説明する。
【0090】
座標処理プログラムD10の実行が開始されると、まず図12のステップS10において、プロセッサ18は、初期設定を行う。当該初期設定では、各変数に初期値を設定する処理などが行われる。例えば、指度合D19は0.0に、遊び半径は0.0に、追従割合は100%に設定される。
【0091】
ステップS11において、プロセッサ18は、タッチパネル12からの信号に基づいて、入力タッチ状態D12がオン(タッチオン状態)かどうかを判断する。そして、入力タッチ状態D12がオンである場合には処理はステップS12に進み、そうでない場合には処理はステップS22に進む。
【0092】
ステップS12において、プロセッサ18は、タッチパネル12からの信号に基づいて入力座標D11を取得する。
【0093】
ステップS13において、プロセッサ18は、指度合D19に応じて遊び半径D17を更新する。具体的には、指度合D19が大きいほど(すなわち、指らしさの度合が大きいほど)、遊び半径D17を大きくする。例えば、図14に示すような関数を用いて、指度合D19から遊び半径D17を算出する。
【0094】
ステップS14において、プロセッサ18は、指度合D19を減衰させる。例えば、指度合D19に0.98を乗算する。
【0095】
ステップS15において、プロセッサ18は、タッチオフ状態が短時間で終了したかどうかを判定する。具体的には、例えば、入力タッチ状態D12のタッチオフ状態の連続回数(すなわち連続非接触時間)をカウントしておき、入力タッチ状態D12がタッチオフ状態からタッチオン状態に変化した時点で、当該連続回数が所定数以下(例えば2以下)であれば、タッチオフ状態が短時間で終了したと判断する。
【0096】
このようにタッチオフ状態が短時間で終了することは、通常の正常な入力操作では生じず、タッチパネル12を指で操作することによって生じる入力座標の一時的な途切れが生じた可能性が高い。
【0097】
タッチオフ状態が短時間で終了したと判定された場合には処理はステップS16に進み、そうでない場合には処理はステップS17に進む。
【0098】
ステップS16において、プロセッサ18は、指度合D19を増加させる。具体的には、例えば、指度合D19に所定の定数(例えば0.6)を加算する。
【0099】
ステップS17において、プロセッサ18は、タッチオン状態が2連続以上継続中かどうかを判断する。具体的には、例えば、入力タッチ状態D12のタッチオン状態の連続回数(すなわち連続接触時間)をカウントしておき、当該連続回数が2以上かどうかを判断する。タッチオン状態が2連続以上継続中であると判定された場合には処理はステップS18に進み、そうでない場合には処理はステップS25に進む。
【0100】
ステップS18において、プロセッサ18は、最新の入力座標と1つ前の入力座標に基づいて推測移動量D20を更新する。具体的には、例えば、更新前の推測移動量D20をAとし、更新後の推測移動量D20をA’とし、最新の入力座標と直前の入力座標との間の距離をBとすると、A’=A+(B−A)×Cとなる。なお、Cは所定の係数(例えば0.2)である。
【0101】
ステップS19において、プロセッサ18は、タッチオン状態が4連続以上継続中かどうかを判断する。具体的には、例えば、入力タッチ状態D12のタッチオン状態の連続回数(すなわち連続接触時間)をカウントしておき、当該連続回数が4以上かどうかを判断する。タッチオン状態が4連続以上継続中であると判定された場合には処理はステップS20に進み、そうでない場合には処理は図13のステップS30に進む。
【0102】
ステップS20において、プロセッサ18は、入力座標D11が示す形状がジグザグ形状かどうかを判断する。具体的には、例えば、直近の4つの入力座標が示す入力軌跡の形状がジグザグ形状かどうかを判断する。例えば、図15において、入力座標pa→入力座標pb→入力座標pc→入力座標pdの順番で入力座標が入力されているときに、入力座標paと入力座標pdを結ぶベクトルVadの単位ベクトルと、入力座標pbと入力座標pcを結ぶベクトルVbcの単位ベクトルとの内積を計算する。そして、当該内積が所定値(例えば0.8よりも小さい場合(すなわち、入力座標paと入力座標pdを結ぶ線分と、入力座標pbと入力座標pcを結ぶ線分とのなす角度が、所定角度よりも大きい場合)に、これらの4つの入力座標pa〜pdが示す入力軌跡の形状がジグザグ形状であると判断する。
【0103】
通常の正常な入力操作では、直近の4つの入力座標が示す入力軌跡の形状がジグザグ形状となることはほとんどないため、このようなジグザグ形状は、タッチパネル12を指で操作することによって生じた入力座標のブレによるものである可能性が高い。
【0104】
なお、接触位置がほとんど動いていない状態における接触位置のわずかな変動によって入力軌跡がジグザグ形状であると判断されてしまうのを防止するために、例えば、上記ベクトルVadおよび上記ベクトルVbcの少なくとも一方の大きさが所定の閾値以下である場合には、ジグザグ形状ではないと判断するようにしてもよい。
【0105】
入力座標D11が示す形状がジグザグ形状であると判断された場合には処理はステップS21に進み、そうでない場合には処理は図13のステップS30に進む。
【0106】
ステップS21において、プロセッサ18は、指度合D19を増加させる。具体的には、例えば、指度合D19に所定の定数(例えば0.6)を加算する。そして、処理は図13のステップS30に進む。
【0107】
ステップS22において、プロセッサ18は、遊び半径D17を小さくする。例えば、遊び半径D17から3.0を減算する。
【0108】
ステップS23において、プロセッサ18は、タッチオン状態が短時間で終了したかどうかを判定する。具体的には、例えば、入力タッチ状態D12のタッチオン状態の連続回数(すなわち連続接触時間)をカウントしておき、入力タッチ状態D12がタッチオン状態からタッチオフ状態に変化した時点で、当該連続回数が所定数以下(例えば2以下)であれば、タッチオン状態が短時間で終了したと判断する。
【0109】
このようにタッチオン状態が短時間で終了することは、通常の正常な入力操作では生じず、タッチパネル12を指で操作することによって生じる入力座標の一時的な途切れが生じた可能性が高い。
【0110】
タッチオン状態が短時間で終了したと判定された場合には処理はステップS24に進み、そうでない場合には処理はステップS25に進む。
【0111】
ステップS24において、プロセッサ18は、指度合D19を増加させる。具体的には、例えば、指度合D19に所定の定数(例えば0.6)を加算する。
【0112】
ステップS25において、プロセッサ18は、推測移動量D20を減衰させる。具体的には、例えば、推測移動量D20に0.98を乗算する。そして、処理は図13のステップS30に進む。
【0113】
図13のステップS30において、プロセッサ18は、指度合D19に応じて追従割合D18を更新する。具体的には、指度合D19が大きいほど(すなわち、指らしさの度合が大きいほど)、追従割合D18を小さくする。例えば、図16に示すような関数を用いて、指度合D19から追従割合D18を算出する。
【0114】
ステップS31において、プロセッサ18は、補正タッチ状態D16がオフ(タッチオフ状態)で、且つ、入力タッチ状態D12がオン(タッチオン状態)であるかどうかを判断する。補正タッチ状態D16がオフで、且つ、入力タッチ状態D12がオンであるということは、操作者が指またはペンを操作面に最初に接触させたか、もしくは、操作者が指またはペンを操作面から意図的に離した後に、新たな入力を行うために、操作面に再び接触させたことを意味する。ステップS31の判断結果が肯定的である場合には処理はステップS32に進み、そうでない場合には処理はステップS34に進む。
【0115】
ステップS32において、プロセッサ18は、遊び座標D13、追従座標D14および速度座標D15を、最新の入力座標D11と同じ座標に更新する。
【0116】
ステップS33において、プロセッサ18は、推測移動量D20、推測移動方向D21および推測移動ベクトルD22を初期化する。具体的には、推測移動量D20を0に初期化し、推測移動方向D21および推測移動ベクトルD22を零ベクトルに初期化する。
【0117】
ステップS34において、プロセッサ18は、遊び半径D17に応じて遊び座標D13を更新する。具体的には、最新の入力座標と、遊び座標D13との間の距離が遊び半径D17よりも大きい場合には、最新の入力座標と、遊び座標D13との間の距離が遊び半径D17と一致するように、最新の入力座標へ向かって移動するように遊び座標D13を変更する。なお、最新の入力座標と遊び座標D13との間の距離が遊び半径D17以下の場合には、遊び座標D13の値は変更しない。
【0118】
ステップS35において、プロセッサ18は、追従割合D18に応じて追従座標D14を更新する。具体的には、ステップS34において更新された遊び座標D13と、追従座標D14との間の距離に、追従割合D18を乗算した結果の距離だけ、追従座標D14が遊び座標D13へ向かって移動するように、追従座標D14を更新する。
【0119】
ステップS36において、プロセッサ18は、最新の追従座標と1つ前の追従座標に基づいて推測移動方向D21を更新する。具体的には、例えば、更新前の推測移動方向D21をVとし、更新後の推測移動方向D21をV’とし、1つ前の追従座標と最新の追従座標を結ぶベクトルをvとすると、V’=V+(v−V)×Dとなる。なお、Dは所定の係数(例えば0.3)である。
【0120】
ステップS37において、プロセッサ18は、入力タッチ状態D12がオンかどうかを判断する。そして、入力タッチ状態D12がオンである場合には処理はステップS39に進み、そうでない場合には処理はステップS38に進む。
【0121】
ステップS38において、プロセッサ18は、追従座標が所定距離以上移動したかどうかを判断する。具体的には、例えば、最新の追従座標と1つ前の追従座標との距離が、所定距離(例えば0.01)以上かどうかを判断する。追従座標が所定距離以上移動したと判断された場合には処理はステップS39に進み、そうでない場合には処理はステップS41に進む。なお、追従座標が所定距離以上移動したかどうかを判断する代わりに、追従座標が停止したかどうか(言い換えれば、追従座標が目標座標に到達したかどうか)を判断してもよい。
【0122】
ステップS39において、プロセッサ18は、補正タッチ状態D16をオン(タッチオン状態)に更新する。これにより、入力タッチ状態D12がオフであっても、追従座標が移動している間(ほんの僅かな速さでしか移動していない場合は除かれる)は、操作者による入力操作が途切れていない(すなわち、入力座標の途切れは一時的なものであって、実際には操作者による操作面へのタッチが継続している)とみなされる。
【0123】
ステップS40において、プロセッサ18は、推測移動量D20と推測移動方向D21に基づいて、推測移動ベクトルD22を更新する。
【0124】
ステップS41において、プロセッサ18は、補正タッチ状態D16をオフ(タッチオン状態)に更新する。
【0125】
ステップS42において、プロセッサ18は、入力タッチ状態D12がオンかどうかを判断する。そして、入力タッチ状態D12がオンである場合には処理はステップS43に進み、そうでない場合には処理はステップS44に進む。
【0126】
ステップS43において、プロセッサ18は、最新の追従座標D14に応じて速度座標D15を更新する。具体的には、例えば、入力タッチ状態D12のタッチオン状態の連続回数をカウントしておき、当該連続回数をN(ただし、上限は10とする)とし、最新の追従座標をFとし、更新前の速度座標をSとし、更新後の速度座標をS’とすると、S’=S+(F−S)×N/10となる。すなわち、タッチオン状態の連続回数が0〜9であるときは、速度座標D15は追従座標D14に一致すべく接近し、タッチオン状態の連続回数が10以上になると、速度座標D15は追従座標D14に常に一致する。
【0127】
ステップS44において、プロセッサ18は、推測移動ベクトルD22に応じて速度座標D15を更新する。具体的には、推測移動ベクトルD22が示す移動方向へ向かって、推測移動ベクトルD22が示す移動量だけ、速度座標が移動するように、速度座標D15を更新する。
【0128】
ステップS43の処理またはステップS44の処理が終了すると、処理は図12のステップS11に戻り、以上のような処理を所定の周期(例えばタッチパネル12からの入力座標データの出力周期と同じ周期)で繰り返す。
【0129】
上記のようにして、タッチパネル12から出力される入力座標データに応じてリアルタイムに更新される追従座標D14および速度座標D15は、入力座標のブレや途切れを補正した結果の座標(補正後座標)として、任意の用途に利用することができる。なお、用途に応じて追従座標D14および速度座標D15のいずれか一方のみを利用してもよい。追従座標D14は、速度座標D15と比べて、操作者が描いた軌跡の形状をより正確に反映する傾向があるので、例えば、操作者が描いた軌跡の形状を表示装置16の画面に表示するような用途に好適である。一方、速度座標D15は、追従座標D14と比べて、指またはペンの移動方向および移動速度をより正確に反映する傾向があるので、例えば、表示装置16の画面に表示されたキャラクタ、アイコン、ウィンドウ等のオブジェクトを、指またはペンの移動方向および移動速度に応じて移動させるような用途に好適である。
【0130】
なお、追従座標D14や速度座標D15と同様に、タッチパネル12から出力される入力座標データに応じてリアルタイムに更新される他のデータ(例えば、遊び座標D13、補正タッチ状態D16、指度合D19、推測移動ベクトルD22など)も、任意の用途に利用することができる。例えば、表示装置16の画面上にタッチパネル12が設けられている場合に、画面に表示されるアイコンやメニューボタンや手書き入力ボックス等の大きさを、指度合D19に応じて変更してもよい。例えば、指度合D19が大きいほど、それらの大きさを大きくすることによって、指で操作しているときには操作性が向上し、ペンで操作しているときには画面に表示可能な情報量を増やして、限られた表示領域を有効利用することができる。また、推測移動ベクトルD22は、速度座標D15と同様に、表示装置16の画面に表示されたキャラクタ、アイコン、ウィンドウ等のオブジェクトを、指またはペンの移動方向および移動速度に応じて移動させるような用途に好適である。
【0131】
なお、上記実施形態は、あくまでも一実施形態に過ぎず、種々の変形例が考えられる。
【0132】
例えば、上記実施形態では、遊び座標D13を目標座標として追従するように、追従座標D14が更新されるが、他の実施形態では、図17に示すように、遊び座標D13を用いずに、入力座標D11を目標座標として追従するように、追従座標D14が更新されてもよい。この場合でも、図17において、追従座標f1〜f6によって示される入力軌跡は、入力座標p1〜p6によって示される入力軌跡と比べて、より滑らかになっており、座標のブレが抑えられている。
【0133】
また、上記実施形態では、追従座標D14を利用して座標のブレを補正しているが、他の実施形態では、遊び座標D13のみを利用して座標のブレを補正してもよいし、さらに他の補正手法を採用して座標のブレを補正してもよい。例えば、図18に示すように、直近の3つの入力座標を平均することによって得られる平均座標を利用して、座標のブレを補正してもよい。例えば、図18の平均座標a3は、入力座標p1〜p3を平均した座標であり、平均座標a4は、入力座標p2〜p4を平均した座標である。この場合、平均すべき入力座標の個数を変更することによって、座標のブレを補正する度合い(すなわち、接触位置の変動に対する応答性)を変更することができる。よって、例えば、指度合D19が0のときには平均すべき入力座標の個数を1とし、指度合D19が大きいほど、平均すべき入力座標の個数を大きくすることによって、上記実施形態と似たような効果が得られる。
【0134】
また、上記実施形態では、操作者による操作面へのタッチが継続しているかどうかを追従座標の移動量(単位時間当たりの移動量)に基づいて判断して、座標の途切れを補正(すなわち、本来入力されるはずの座標を補完)しているが、他の実施形態では、追従座標から目標座標(例えば遊び座標)までの距離に基づいて、操作者による操作面へのタッチが継続しているかどうかを判断してもよい。例えば、追従座標から目標座標までの距離が所定値より大きい間は、操作者による操作面へのタッチが継続していると判断し、追従座標から目標座標までの距離が所定値以下になった時点で、操作者による操作面へのタッチが終了したと判断するようにしてもよい。この場合にも、入力座標が途切れる直前における目標座標(例えば遊び座標)と追従座標との間の距離が大きいほど、操作者が入力操作を終了したとみなすまでの時間が長くなる。よって、上記実施形態と同様に、操作者が操作面上で指またはペンを素早く滑らせた場合には、ゆっくりと滑らせた場合と比べて、操作者が入力操作を終了したとみなすまでの時間が長くなるので、入力座標の途切れを効果的に補正することができる。また、操作者が操作面上で指またはペンをゆっくりと滑らせた場合には、操作者が入力操作を終了したとみなすまでの時間が短くなるため、応答性の低下を抑えることができる。その結果、操作者にとって、良好な操作性が得られる。
【0135】
また、上記実施形態では、追従割合D18を指度合D19に応じて変化させているが、他の実施形態では、追従割合D18を定数としてもよい。
【0136】
また、上記実施形態では、遊び半径D17を指度合D19に応じて変化させているが、他の実施形態では、遊び半径D17を定数としてもよい。
【0137】
また、上記実施形態では、指度合D19を用いることによって、座標の補正度合を調整しているが、他の実施形態では、操作者が指で操作しているかペンで操作しているかを二者択一で判定して、その結果に応じて座標の補正度合を2段階に変更してもよい。例えば、操作者が指で操作していると判定された場合には座標の補正を行い、操作者がペンで操作していると判定された場合には座標の補正を行わないようにしてもよい。
【0138】
また、上記実施形態では、入力座標によって示される入力軌跡の形状や、連続接触時間や、連続非接触時間に基づいて、指度合D19を更新しているが、指度合D19の更新方法はこれに限定されない。例えば、操作面に対する接触面積を検出することが可能なタッチパネルを利用する場合には、検出される接触面積に応じて指度合D19をリアルタイムに更新してもよい。例えば、検出される接触面積が大きいほど、指度合D19を大きくしてもよい。
【0139】
また、上記実施形態では、タッチパネル12から出力される入力座標データの特徴に基づいて、操作者が指で操作しているかペンで操作しているかを判断しているが、他の実施形態では、操作者が指で操作するのかペンで操作するのかを、操作者が予め任意の入力装置を用いて指定するようにしてもよい。そして、指での操作が指定された場合と、ペンでの操作が指定された場合とで、座標の補正度合を2段階に変更してもよい。
【0140】
また、図1に示すような座標処理システム10に替えて、タッチパネル12を有する情報処理装置(例えば、タッチパネルを搭載した携帯ゲーム機、シンクライアント、可搬型パソコン、モニタなど)を利用してもよい。
【0141】
また、感圧式のタッチパネル12に替えて、他の方式(静電式など)のタッチパネルを利用してもよい。ただし、例えば静電式のタッチパネルでは、指で操作したときの入力座標のブレや途切れは、感圧式のタッチパネルほど顕著には現れない。なお、静電式の座標入力装置を利用する場合には、操作面に対する接触面積に基づいて、操作者が指で操作しているかペンで操作しているかを判定するようにしてもよい。
【0142】
また、タッチパネル12に替えて、タッチパッドなど、タッチパネルと同等の機能を有する任意の座標入力装置(すなわち、操作面に対する指またはペンの接触位置を検出可能な座標入力装置)を利用してもよい。また、座標入力装置に限らず、他の任意の入力値を入力する入力装置を利用してもよい。例えば、加速度センサを内蔵し、操作者の操作に応じた加速度を示す入力データを出力するような入力装置を利用してもよい。この場合にも、上記実施形態と同様に、例えば、入力データが示す入力値に追従するような追従値を利用することによって、入力データのブレや途切れを補正することが可能である。
【0143】
また、上記実施形態では、図12および図13に示した複数の処理を1つのコンピュータ(プロセッサ18)が実行しているが、他の実施形態では、これらの複数の処理を複数のコンピュータが分担して実行してもよい。さらに他の実施形態では、これらの複数の処理の一部または全部を専用回路によって実現してもよい。
【0144】
また、上記実施形態では、図12および図13に示した複数の処理を1台の情報処理装置14において実行しているが、他の実施形態では、これらの複数の処理を複数の情報処理装置が分担して実行してもよい。
【0145】
また、上記実施形態では、内部記憶装置20または外部記憶装置24からメインメモリ22へ座標処理プログラムD10がロードされているが、他の実施形態では、他の情報処理装置(例えばサーバ装置)から情報処理装置14へ座標処理プログラムD10が供給されてもよい。
【符号の説明】
【0146】
10 座標処理システム
12 タッチパネル
【技術分野】
【0001】
本発明は、情報処理プログラム、情報処理装置、情報処理システムおよび情報処理方法に関し、特に、入力装置から出力される入力データを処理するための情報処理プログラム、情報処理装置、情報処理システムおよび情報処理方法に関する。
【背景技術】
【0002】
従来、タッチパネル等の座標入力装置から出力される座標データの途切れを補正する技術がある。例えば、タッチオフ時間が所定時間よりも短い場合には、接触状態が継続しているものとみなす従来技術(例えば、特許文献1)がある。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010−272100号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記の従来技術では、接触状態が継続しているか否かを、タッチオフ時間が所定時間(一定時間)より短いか否かによってのみ判定しているので、操作者による入力操作の仕方によっては、誤判定されてしまうことが多かった。
【0005】
本発明は、所定の入力装置から出力される入力データを適切に処理することが可能な情報処理プログラム、情報処理装置、情報処理システムおよび情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的は、例えば下記のような構成例によって達成される。
【0007】
第1の構成例は、所定の入力装置から出力される入力データを処理するための情報処理プログラムである。当該情報処理プログラムは、コンピュータを、前記入力データに基づいて設定される目標値に追従する追従値を算出する追従値算出手段、および前記入力装置からの前記入力データの出力が途切れた時、前記追従値が所定条件を満たしていれば、入力が継続しているものとして前記入力データを補正する途切れ補正手段として機能させる。
【0008】
「入力装置」は、操作者の入力操作に応じた入力データを出力する任意の装置であってもよく、一例としてはタッチパネルである。「入力データに基づいて設定される目標値」は、入力値そのものであってもよいし、入力値に応じて更新される他の値(後述する遊び座標等)であってもよい。「追従値」は、例えば、目標値が停止したとしても、当該目標値に徐々に近づくように制御される値である。「入力が継続しているものとして入力データを補正する」とは、入力装置からの入力データの出力が途切れた期間における入力データを補完することであってもよいし、入力状態を示す情報を入力中状態に設定することであってもよい。
【0009】
上記座標処理プログラムは、任意のコンピュータ読み取り可能な記憶媒体(例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、半導体メモリカード、ROM、RAMなど)に格納され得る。
【0010】
なお、前記入力装置からの前記入力データの出力が途切れた時に、前記途切れ補正手段が入力が継続しているものとみなす期間は、前記入力装置からの前記入力データの出力が途切れる直前における前記入力データの変化量が大きいほど長くなってもよい。
【0011】
また、前記所定の入力装置は、座標入力装置であり、前記入力データは、前記座標入力装置の操作面に対する接触位置を示す入力座標データであり、前記目標値は、前記入力座標データに基づいて設定される目標座標であり、前記追従値は、前記目標座標に追従する追従座標であってもよい。そして、前記途切れ補正手段は、前記入力座標データによって示される接触位置が途切れた時、前記追従座標が所定条件を満たしていれば、当該途切れた期間も接触が継続しているものとして前記入力座標データを補正してもよい。
【0012】
なお、前記所定条件は、単位時間当たりの前記追従値の変化量に関する条件であってもよい。
【0013】
また、前記途切れ補正手段は、前記入力データの出力が途切れたとしても、単位時間当たりの前記追従値の変化量が所定値以上であれば、当該途切れた期間も入力が継続しているものとして前記入力データを補正してもよい。
【0014】
また、前記所定条件は、前記追従値と前記目標値の差に関する条件であってもよい。
【0015】
また、前記途切れ補正手段は、前記入力データの出力が途切れた時、前記追従値と前記目標値の差が所定値より大きければ、当該途切れた期間も入力が継続しているものとして前記入力データを補正してもよい。
【0016】
また、前記追従値算出手段は、前記目標値に所定割合で追従するように、前記追従値を算出してもよい。
【0017】
「所定割合」は、定数であってもよいし、後述する追従割合のように、状況に応じて変化する変数であってもよい。
【0018】
また、前記追従値算出手段は、前記追従値と前記目標値の差が前記所定割合で短くなるように当該追従値を更新してもよい。
【0019】
また、前記追従値算出手段は、前記追従値と前記目標値の差に前記所定割合を乗算した結果の値だけ前記目標値へ近づくように、前記追従値を更新してもよい。
【0020】
また、前記目標値は、前記入力データが示す入力値との差が所定値よりも大きくなったときに、当該差が所定値となるように、その値が変化するものであってもよい。
【0021】
「所定値」は、定数であってもよいし、後述する遊び半径のように、状況に応じて変化する変数であってもよい。
【0022】
また、前記途切れ補正手段は、前記入力データをリアルタイムに補正してもよい。
【0023】
また、前記途切れ補正手段は、前記入力データの出力が途切れた時、前記追従値が所定条件を満たしていれば、前記追従値を用いて当該途切れた期間の入力データを補完してもよい。
【0024】
また、前記途切れ補正手段は、前記入力座標データによって示される接触位置が途切れたとしても、前記追従座標が所定条件を満たしている間は、前記入力座標データによって示される接触位置の間隔と、前記追従座標の移動方向とに基づいて、当該途切れた期間の接触位置を補完してもよい。
【0025】
第2の構成例は、所定の入力装置から出力される入力データを処理するための情報処理装置である。当該情報処理装置は、前記入力データに基づいて設定される目標値に追従する追従値を算出する追従値算出手段、および前記入力装置からの前記入力データの出力が途切れた時、前記追従値が所定条件を満たしていれば、入力が継続しているものとして前記入力データを補正する途切れ補正手段を備える。
【0026】
第3の構成例は、所定の入力装置から出力される入力データを処理するための情報処理システムである。当該情報処理システムは、前記入力データに基づいて設定される目標値に追従する追従値を算出する追従値算出手段、および前記入力装置からの前記入力データの出力が途切れた時、前記追従値が所定条件を満たしていれば、入力が継続しているものとして前記入力データを補正する途切れ補正手段を備える。
【0027】
第4の構成例は、所定の入力装置から出力される入力データを処理するための情報処理システムのコンピュータによって実行される情報処理方法である。当該情報処理方法は、前記入力データに基づいて設定される目標値に追従する追従値を前記コンピュータが算出する追従値算出ステップ、および前記入力装置からの前記入力データの出力が途切れた時、前記追従値が所定条件を満たしていれば、入力が継続しているものとして、前記コンピュータが前記入力データを補正する途切れ補正ステップを備える。
【発明の効果】
【0028】
本発明によれば、所定の入力装置から出力される入力データを適切に処理することが可能である。
【図面の簡単な説明】
【0029】
【図1】座標処理システムの一例を示す図
【図2】ペンによる入力座標の一例を示す図
【図3】指による入力座標の一例を示す図
【図4】入力座標の一例を示す図
【図5】入力座標に応じて決定される遊び座標の一例を示す図
【図6】遊び座標に応じて決定される追従座標の一例を示す図
【図7】入力座標に途切れが生じたときの遊び座標および追従座標の一例を示す図
【図8】指による入力座標およびそれに対応する追従座標の一例を示す図
【図9】ペンによる入力座標およびそれに対応する追従座標の一例を示す図
【図10】速度座標の一例を示す図
【図11】RAMに記憶されるデータの一例を示す図
【図12】座標処理の流れを示すフローチャートの一部
【図13】座標処理の流れを示すフローチャートの残りの一部
【図14】遊び半径の計算方法の一例を示す図
【図15】ジグザグ形状の判定方法の一例を示す図
【図16】追従割合の計算方法の一例を示す図
【図17】追従座標の決定方法の変形例を示す図
【図18】入力座標の補正方法の変形例を示す図
【図19】入力操作が終了したとみなすまでの時間を示す図
【発明を実施するための形態】
【0030】
図1において、座標処理システム10は、タッチパネル12、情報処理装置14、表示装置16および外部記憶媒体24を備えている。
【0031】
タッチパネル12は、操作面に対する指またはペンの接触位置を周期的に検出し、当該接触位置を示す座標データを所定の周期で情報処理装置14へと出力する。本実施形態では、タッチパネル12は感圧式である。
【0032】
情報処理装置14は、プロセッサ18、内部記憶装置20およびメインメモリ22を備えている。内部記憶装置20には、プロセッサ18によって実行されるコンピュータプログラムが格納されている。内部記憶装置20は、典型的には、ハードディスクやROM(Read Only Memory)である。メインメモリ22は、コンピュータプログラムやその他のデータを一時的に記憶する。
【0033】
表示装置16は、情報処理装置14によって生成された画像を画面に表示する。表示装置16の画面上にタッチパネル12が設けられていてもよい。
【0034】
外部記憶装置24には、プロセッサ18によって実行されるコンピュータプログラムが格納されている。外部記憶装置24は、典型的には、CD(Compact Disc)やDVD(Digital Versatile Disc)や半導体記憶装置である。
【0035】
なお、図1に示した座標処理システム10の構成は単なる一例に過ぎず、他の実施形態では、座標処理システムは、例えば、タッチパネルを備えた携帯型ゲーム機であってもよい。
【0036】
次に、座標処理システム10において実行される座標処理の概要を説明する。
【0037】
図2は、操作者がタッチパネル12の操作面にペンで円弧を描いたときにタッチパネル12によって検出される一連の座標(入力座標p1〜p18)を示している。このように、ペンでタッチパネル12を操作する場合には、入力座標にブレや途切れはほとんど生じない。一方、操作者がタッチパネル12の操作面に指で同じ円弧を描いたときには、図3に示すように、入力座標にブレや途切れが生じる。これは、主に、指はペンに比べて、操作面への接触面積が大きいことに起因する。一般的に、入力操作時における操作面への接触面積が大きいほど、入力座標のブレや途切れが発生しやすくなる傾向がある。これは、接触面積が大きいほど、検出される接触位置にブレが生じやすく、また、特に感圧式の座標入力装置では、接触面積が大きいほど操作面に対する単位面積当たりの圧力が小さくなるので、実際には接触しているにも関わらず、接触していないと誤判定されてしまうことが起こりやすくなるからである。
【0038】
情報処理装置14は、上記のような入力座標のブレや途切れを補正する処理(座標補正処理)を行う。具体的には、タッチパネル12を通じて入力される入力座標に基づいて、「遊び座標」および「追従座標」をリアルタイムに更新することによって、上記のような入力座標のブレや途切れを補正する。
【0039】
以下、図5を参照して、図4に示すような入力座標p1〜p6が入力されたときの遊び座標の更新方法について説明する。
【0040】
最初の入力座標p1が入力されると、当該入力座標p1と同じ値に、遊び座標r1が設定される。
【0041】
一旦設定された遊び座標は、最新の入力座標との間の距離が所定距離(図5に示す「遊び半径」)以下である間は変化しない。一方、最新の入力座標と間の距離が上記所定距離よりも大きい場合には、最新の入力座標との間の距離が上記所定距離と一致するように、最新の入力座標へ向かって移動するように遊び座標は変化する。なお、後述するように、遊び半径は、「指度合」(指らしさの度合を示す変数)に応じて例えば0〜30の範囲で変化する。
【0042】
すなわち、入力座標p2が入力されると、当該入力座標p2と遊び座標r1との間の距離が遊び半径よりも大きいので、入力座標p2との間の距離が遊び半径と一致するように、遊び座標は入力座標p2に向かって移動する。こうして、図5に示す遊び座標r2が決定される。
【0043】
入力座標p3が入力されると、当該入力座標p3と遊び座標r2との間の距離が遊び半径よりも大きいので、入力座標p3との間の距離が遊び半径と一致するように、遊び座標は入力座標p3に向かって移動する。こうして、図5に示す遊び座標r3が決定される。
【0044】
以下、同様にして、入力座標p4,p5,p6が入力される度に、遊び座標r4,r5,r6が順次決定される。
【0045】
図5から明らかなように、遊び座標r1〜r6によって示される入力軌跡は、入力座標p1〜p6によって示される入力軌跡と比べて、より滑らかになっており、座標のブレが抑えられているのが分かる。
【0046】
次に、図6を参照して、図4に示すような入力座標p1〜p6が入力されたときの追従座標の更新方法について説明する。
【0047】
最初の入力座標p1が入力されると、当該入力座標p1と同じ値(すなわち、遊び座標r1と同じ値)に、追従座標f1が設定される。
【0048】
一旦設定された追従座標は、最新の遊び座標との間の距離の所定割合(後述する「追従割合」)だけ当該遊び座標へ向かって移動するように更新される。なお、後述するように、追従割合は、指度合に応じて例えば40%〜100%の範囲で変化する。
【0049】
すなわち、遊び座標r2の位置が決定されると、当該遊び座標r2と追従座標f1との間の距離の所定割合(追従割合)だけ、追従座標は遊び座標r2へ向かって移動する。こうして、図6に示す追従座標f2が決定される。
【0050】
遊び座標r3の位置が決定されると、当該遊び座標r3と追従座標f2との間の距離の所定割合(追従割合)だけ、追従座標は遊び座標r3へ向かって移動する。こうして、図6に示す追従座標f3が決定される。
【0051】
以下、同様にして、遊び座標r4,r5,r6が決定される度に、追従座標f4,f5,f6が順次決定される。
【0052】
図6から明らかなように、追従座標f1〜f6によって示される入力軌跡は、遊び座標r1〜r6によって示される入力軌跡と比べて、さらに滑らかになっており、座標のブレがさらに抑えられているのが分かる。
【0053】
なお、入力座標が一時的に途切れた場合でも、遊び座標および追従座標の更新は行われる。図7を参照して、入力座標が一時的に途切れた場合における遊び座標および追従座標の更新方法について説明する。
【0054】
入力座標p1,p2,p3,p4が入力される度に、遊び座標r1,r2,r3,r4および追従座標f1,f2,f3,f4が順次決定される点については、図5および図6と同様である。
【0055】
図7の例では、入力座標p5が入力されるはずのタイミング(以下では、タイミングt5と称す)では入力座標が入力されず、その後、入力座標p6が入力されている。遊び座標および追従座標は、タッチパネル12から有効な入力座標が入力されたか否かに関わらず、所定の周期(例えば、タッチパネル12から座標データが出力される周期と同じ周期)で更新される。よって、タイミングt5においても、遊び座標および追従座標は更新される。
【0056】
なお、本実施形態では、後述するように、入力座標が入力されない間は遊び半径が徐々に小さくなっていく(図12のS22)。よって、タイミングt5では、最新の入力座標(すなわち、入力座標p4)との間の距離が、少し小さくなった遊び半径と一致するように、遊び座標は入力座標p4に向かって少しだけ移動する。こうして、図7に示す遊び座標r5が決定される。
【0057】
遊び座標r5が決定されると、当該遊び座標r5と追従座標f4との間の距離の所定割合(追従割合)だけ、追従座標は遊び座標r5へ向かって移動する。こうして、図7に示す追従座標f5が決定される。
【0058】
このように、入力座標p5が入力されなくても、当該入力座標p5が入力されるはずのタイミング(タイミングt5)に対応する遊び座標r5および追従座標f5が決定される。よって、入力座標が一時的に途切れた場合でも、座標の途切れを補正することができる(すなわち、本来入力されるはずの座標を補完することができる)。
【0059】
なお、座標の途切れを補正する際には、入力座標が一時的に途切れたのか、操作者が意図的に指またはペンをタッチパネル12の操作面から離したのかを区別する必要がある。これらを区別するための方法としては、種々の方法が考えられる。
【0060】
本実施形態では、追従座標が移動している間(より正確には、最新の遊び座標へ向かって移動するときの追従座標の移動量が所定量以上である間)は、操作者が入力操作を継続しているとみなして座標の補完を行う。そして、追従座標が最終的に停止した時点(より正確には、最新の遊び座標へ向かって移動するときの追従座標の移動量が所定量未満となった時点)で、操作者が入力操作を終了したとみなす。この場合、図19に示すように、入力座標が途切れる直前における遊び座標と追従座標との間の距離が大きいほど、入力座標が途切れてから、操作者による入力操作が終了したとみなすまでの時間が長くなる。
【0061】
一般的に、操作者が操作面上で指またはペンを素早く滑らせた場合には、ゆっくりと滑らせた場合と比べて操作面に対する圧力が不安定になるため、入力座標の途切れが生じやすくなる。また、操作者が操作面上で指またはペンを素早く滑らせる場合には、ゆっくりと滑らせる場合と比べて、遊び座標と追従座標との間の距離が大きくなる。よって、本実施形態では、操作者が操作面上で指またはペンを素早く滑らせた場合には、ゆっくりと滑らせた場合と比べて、操作者が入力操作を終了したとみなすまでの時間が長くなるので、入力座標の途切れを効果的に補正することができる。また、操作者が操作面上で指またはペンをゆっくりと滑らせた場合には、操作者が入力操作を終了したとみなすまでの時間が短くなるため、応答性の低下を抑えることができる。その結果、操作者にとって、良好な操作性が得られる。
【0062】
図3のような入力座標p1〜p4,p6〜p10,p13〜p18に対して、上記のように遊び座標および追従座標を更新した結果、図8に示すような追従座標f1〜f21が得られる。図8に示すように、追従座標f1は入力座標p1と一致しており、最後の追従座標f21は最後の入力座標p18とほぼ一致している。また、追従座標f1〜f21によって示される入力軌跡は、入力座標p1〜p4,p6〜p10,p13〜p18によって示される入力軌跡と比べて、滑らかになっており、本来の入力軌跡の形状により近づいている。また、入力座標が一時的に途切れた期間に対応する追従座標f5,f11〜f12が補完されている。したがって、タッチパネル12を指で操作する操作者にとって、良好な操作性が得られる。
【0063】
一方、図2のような入力座標p1〜p18に対して、上記のように遊び座標および追従座標を更新すると、図9に示すような追従座標f1〜f21が得られる。しかしながら、この場合には、そもそも入力座標にはブレや途切れが存在しないため、追従座標f1〜f21によって示される入力軌跡よりも、入力座標p1〜p18によって示される入力軌跡の方が、より正確な入力軌跡を表していると言える。また、座標データのブレを軽減する技術には、操作者の操作に対する応答性が低下するというデメリットが本来的に存在するため、例えば、入力座標p2に対応する追従座標f2は、入力座標p2からずれてしまう。追従座標f3〜f18についても同様である。また、操作者が入力操作を終了したとみなすタイミングも、本来のタイミング(すなわち、入力座標が途絶えたタイミング)よりも遅いタイミング(すなわち、追従座標が移動しなくなったタイミング)になってしまう。
【0064】
よって、上記のようなデメリットを考慮すると、図1のように、操作者がペンでタッチパネル12を操作している場合には、入力座標のズレや途切れを補正するよりも、むしろ、入力座標を補正しない方が好ましいと言える。そこで、本実施形態では、操作者がタッチパネル12を指で操作しているのかペンで操作しているのかによって、入力座標のズレや途切れの補正度合を変化させている。
【0065】
具体的には、操作者がタッチパネル12を指で操作していると判定される場合には、前述の遊び半径を大きくするとともに、前述の追従割合を小さくし、操作者がタッチパネル12をペンで操作していると判定される場合には、前述の遊び半径を小さくするとともに、前述の追従割合を大きくする。遊び半径を大きくするほど、接触位置の変動に対する応答性が低下するため、座標のブレはより抑えられ、同様に、追従割合を小さくするほど、接触位置の変動に対する応答性が低下するため、座標のブレはより抑えられる。これにより、タッチパネル12を指で操作する場合も、ペンで操作する場合も、操作者にとって、良好な操作性が得られる。
【0066】
なお、操作者がタッチパネル12をペンで操作していると判定される場合には、遊び半径を0にし、追従割合を100%にすることによって、追従座標が入力座標に完全に一致するようになる。そして、入力座標が途切れると、追従座標は一切移動しないため、入力座標が途切れた時点で即座に、操作者が入力操作を終了したとみなされることになる。
【0067】
なお、操作者がタッチパネル12を指で操作しているのかペンで操作しているのかの判定方法としては、種々の判定方法が考えられる。本実施形態では、指で操作しているのかペンで操作しているのかを二者択一で判定するのではなく、入力座標で示される入力軌跡の形状や、入力座標で示される連続接触時間や非連続接触時間に応じて、0.0〜1.0の範囲の値をとり得る、指らしさの度合を示す変数(指度合)を随時更新し、当該指度合に応じて遊び半径および追従割合を変化させている。
【0068】
ところで、図7を参照して説明したように、入力座標が途切れている間は、遊び座標が最新の入力座標(すなわち、最後に入力された入力座標)へ向かって徐々に移動するとともに、追従座標が遊び座標へ向かって移動することになる。よって、新たな入力座標が入力されない限りは、追従座標の移動速度(すなわち、1回当たりの移動量)が徐々に小さくなってしまう。これは、図8の追従座標f10〜f12や、追従座標f18〜f21にも表れている。
【0069】
しかしながら、実際には操作者は、図2に示すような入力操作の途中で指の移動速度を遅めたり速めたりしたわけではない。よって、追従座標の移動速度は、操作者の指の移動速度とは乖離したものとなる。そこで、本実施形態では、実際の操作者の指の移動量(単位時間当たりの移動量)と移動方向を推測し、少なくとも入力座標が途切れている間は、推測した移動量(推測移動量)および推測した移動方向(推測移動方向)とに基づいて決定されるベクトル(推測移動ベクトル)を用いて入力座標を補完する方法も提供する。以下では、このように推測移動ベクトルを用いて決定される座標を「速度座標」と称する。速度座標は、追従座標と比べて、実際の操作者の指の速度をより正確に反映していると考えられる。
【0070】
上記のように、推測移動ベクトルは、推測移動量と推測移動方向とに基づいて決定されるベクトルである。ここまで説明から明らかなように、追従座標は、入力座標に対して遅れて追従するため、これらの座標の移動量は、実際の操作者の指の移動量との相関性が低い。一方、入力座標の移動方向は、入力座標のブレのために、実際の操作者の指の移動方向との相関性が低い。そこで、本実施形態では、入力座標の移動量に基づいて推測移動量を算出し、追従座標の移動方向に基づいて推測移動方向を算出している。その結果、このようにして算出される推測移動量と推測移動方向とに基づいて決定される推測移動ベクトルは、実際の操作者の指の移動量および移動方向を、より正確に反映していると考えられる。
【0071】
以下、図10を参照して、図3に示すような入力座標p1〜p4,p6〜p10,p13〜p18が入力されたときの速度座標の更新方法について説明する。
【0072】
速度座標は、入力座標が途切れることなく入力されている間は、基本的に、追従座標に一致するように更新される。したがって、速度座標s8〜s10は、追従座標f8〜f10にそれぞれ一致する。
【0073】
入力座標が途切れている間は、速度座標は、追従座標から独立して、推測移動ベクトルに応じて更新される。すなわち、入力座標p11が入力されるはずのタイミングでは、その時点における推測移動ベクトルに応じて速度座標は移動する。こうして、図10に示す速度座標s11が決定される。さらに、入力座標p12が入力されるはずのタイミングでも、その時点における推測移動ベクトルに応じて速度座標は移動する。こうして、図10に示す速度座標s12が決定される。
【0074】
入力座標の入力が再開されると、速度座標は、最新の追従座標へ向かって順次移動し、最終的には、追従座標に再び一致するようになる。
【0075】
前述のように、速度座標は、入力座標や追従座標と比べて、特に入力座標が途切れている期間において、実際の操作者の指の移動量と移動方向をより正確に反映していると考えられる。したがって、例えば、ある瞬間における操作面上における操作者の指の移動速さと移動方向の両方に基づいて何らかの処理を行う場合には、入力座標や追従座標を参照するよりも速度座標を参照した方が、操作者にとっては、より良好な操作性が得られる。
【0076】
次に、図11〜図13を参照して、上述した座標処理を実行する情報処理装置14の動作について具体的に説明する。
【0077】
図11は、上述した座標処理を実行するときに情報処理装置14のメインメモリ22に格納される各種データの一例を示している。
【0078】
座標処理プログラムD10は、情報処理装置14のプロセッサ18に上述した座標処理を実行させるためのコンピュータプログラムである。座標処理プログラムD10は、内部記憶装置20または外部記憶装置24等から読み出されてメインメモリ22にロードされる。
【0079】
入力座標D11は、タッチパネル12から出力される入力座標を示すデータであり、典型的には、タッチパネル12の操作面における接触位置を表す2次元座標値である。本実施形態では、メインメモリ22には、タッチパネル12を通じて入力された最新の入力座標と、1つ前に入力された入力座標と、2つ前に入力された入力座標と、3つ前に入力された入力座標の、少なくとも4つの入力座標が保持される。
【0080】
入力タッチ状態D12は、タッチパネル12から出力される、タッチパネル12の操作面がタッチされている状態(以下、「タッチオン状態」または単に「オン」と称す)か、タッチされていない状態(以下、「タッチオフ状態」または単に「オフ」と称す)かを示すデータである。なお、ある種のタッチパネルでは、入力座標D11が無効な座標値である場合に、入力タッチ状態がタッチオフ状態であると判断することができる。
【0081】
遊び座標D13、追従座標D14および速度座標D15は、前述した遊び座標、追従座標、速度座標をそれぞれ示すデータであり、典型的には、タッチパネル12を通じて入力される入力座標D11に基づいてリアルタイムに生成される2次元座標値である。
【0082】
補正タッチ状態D16は、入力タッチ状態D12に対して前述の途切れ補正結果を反映させたものである。すなわち、入力タッチ状態D12が一時的にタッチオフ状態となったとしても、操作者による入力操作が途切れていない(すなわち、入力座標の途切れは一時的なものであって、実際には操作者による操作面へのタッチが継続している)とみなされる場合には、補正タッチ状態D16はタッチオン状態のまま維持される。
【0083】
遊び半径D17は、前述のように、遊び座標D13を更新するために用いられる変数である。本実施形態では、遊び半径D17は、0.0〜30.0の範囲の値をとり得る。
【0084】
追従割合D18は、前述のように、追従座標D14を更新するために用いられる変数である。本実施形態では、追従割合D18は、40%〜100%の範囲の値をとり得る。
【0085】
指度数D19は、前述のように、指らしさの度合を示す変数である。本実施形態では、指度数D19は、0.0〜1.0の範囲の値をとり得る。
【0086】
推測移動量D20は、前述のように、入力座標D11の移動量に基づいて推測される、実際の操作者の指の移動量(単位時間当たりの移動量)である。
【0087】
推測移動方向D21は、前述のように、追従座標D14の移動方向に基づいて推測される、実際の操作者の指の移動方向である。推測移動方向D21は、典型的には2次元ベクトルで表される。
【0088】
推測移動ベクトルD22は、推測移動量D20と推測移動方向D21とに基づいて決定されるベクトルであり、典型的には、推測移動量D20が示す大きさと、推測移動方向D21が示す方向とを有する2次元ベクトルである。
【0089】
次に、図12および図13のフローチャートを参照して、座標処理プログラムD10に基づいて情報処理装置14のプロセッサ18によって実行される座標処理の流れを説明する。
【0090】
座標処理プログラムD10の実行が開始されると、まず図12のステップS10において、プロセッサ18は、初期設定を行う。当該初期設定では、各変数に初期値を設定する処理などが行われる。例えば、指度合D19は0.0に、遊び半径は0.0に、追従割合は100%に設定される。
【0091】
ステップS11において、プロセッサ18は、タッチパネル12からの信号に基づいて、入力タッチ状態D12がオン(タッチオン状態)かどうかを判断する。そして、入力タッチ状態D12がオンである場合には処理はステップS12に進み、そうでない場合には処理はステップS22に進む。
【0092】
ステップS12において、プロセッサ18は、タッチパネル12からの信号に基づいて入力座標D11を取得する。
【0093】
ステップS13において、プロセッサ18は、指度合D19に応じて遊び半径D17を更新する。具体的には、指度合D19が大きいほど(すなわち、指らしさの度合が大きいほど)、遊び半径D17を大きくする。例えば、図14に示すような関数を用いて、指度合D19から遊び半径D17を算出する。
【0094】
ステップS14において、プロセッサ18は、指度合D19を減衰させる。例えば、指度合D19に0.98を乗算する。
【0095】
ステップS15において、プロセッサ18は、タッチオフ状態が短時間で終了したかどうかを判定する。具体的には、例えば、入力タッチ状態D12のタッチオフ状態の連続回数(すなわち連続非接触時間)をカウントしておき、入力タッチ状態D12がタッチオフ状態からタッチオン状態に変化した時点で、当該連続回数が所定数以下(例えば2以下)であれば、タッチオフ状態が短時間で終了したと判断する。
【0096】
このようにタッチオフ状態が短時間で終了することは、通常の正常な入力操作では生じず、タッチパネル12を指で操作することによって生じる入力座標の一時的な途切れが生じた可能性が高い。
【0097】
タッチオフ状態が短時間で終了したと判定された場合には処理はステップS16に進み、そうでない場合には処理はステップS17に進む。
【0098】
ステップS16において、プロセッサ18は、指度合D19を増加させる。具体的には、例えば、指度合D19に所定の定数(例えば0.6)を加算する。
【0099】
ステップS17において、プロセッサ18は、タッチオン状態が2連続以上継続中かどうかを判断する。具体的には、例えば、入力タッチ状態D12のタッチオン状態の連続回数(すなわち連続接触時間)をカウントしておき、当該連続回数が2以上かどうかを判断する。タッチオン状態が2連続以上継続中であると判定された場合には処理はステップS18に進み、そうでない場合には処理はステップS25に進む。
【0100】
ステップS18において、プロセッサ18は、最新の入力座標と1つ前の入力座標に基づいて推測移動量D20を更新する。具体的には、例えば、更新前の推測移動量D20をAとし、更新後の推測移動量D20をA’とし、最新の入力座標と直前の入力座標との間の距離をBとすると、A’=A+(B−A)×Cとなる。なお、Cは所定の係数(例えば0.2)である。
【0101】
ステップS19において、プロセッサ18は、タッチオン状態が4連続以上継続中かどうかを判断する。具体的には、例えば、入力タッチ状態D12のタッチオン状態の連続回数(すなわち連続接触時間)をカウントしておき、当該連続回数が4以上かどうかを判断する。タッチオン状態が4連続以上継続中であると判定された場合には処理はステップS20に進み、そうでない場合には処理は図13のステップS30に進む。
【0102】
ステップS20において、プロセッサ18は、入力座標D11が示す形状がジグザグ形状かどうかを判断する。具体的には、例えば、直近の4つの入力座標が示す入力軌跡の形状がジグザグ形状かどうかを判断する。例えば、図15において、入力座標pa→入力座標pb→入力座標pc→入力座標pdの順番で入力座標が入力されているときに、入力座標paと入力座標pdを結ぶベクトルVadの単位ベクトルと、入力座標pbと入力座標pcを結ぶベクトルVbcの単位ベクトルとの内積を計算する。そして、当該内積が所定値(例えば0.8よりも小さい場合(すなわち、入力座標paと入力座標pdを結ぶ線分と、入力座標pbと入力座標pcを結ぶ線分とのなす角度が、所定角度よりも大きい場合)に、これらの4つの入力座標pa〜pdが示す入力軌跡の形状がジグザグ形状であると判断する。
【0103】
通常の正常な入力操作では、直近の4つの入力座標が示す入力軌跡の形状がジグザグ形状となることはほとんどないため、このようなジグザグ形状は、タッチパネル12を指で操作することによって生じた入力座標のブレによるものである可能性が高い。
【0104】
なお、接触位置がほとんど動いていない状態における接触位置のわずかな変動によって入力軌跡がジグザグ形状であると判断されてしまうのを防止するために、例えば、上記ベクトルVadおよび上記ベクトルVbcの少なくとも一方の大きさが所定の閾値以下である場合には、ジグザグ形状ではないと判断するようにしてもよい。
【0105】
入力座標D11が示す形状がジグザグ形状であると判断された場合には処理はステップS21に進み、そうでない場合には処理は図13のステップS30に進む。
【0106】
ステップS21において、プロセッサ18は、指度合D19を増加させる。具体的には、例えば、指度合D19に所定の定数(例えば0.6)を加算する。そして、処理は図13のステップS30に進む。
【0107】
ステップS22において、プロセッサ18は、遊び半径D17を小さくする。例えば、遊び半径D17から3.0を減算する。
【0108】
ステップS23において、プロセッサ18は、タッチオン状態が短時間で終了したかどうかを判定する。具体的には、例えば、入力タッチ状態D12のタッチオン状態の連続回数(すなわち連続接触時間)をカウントしておき、入力タッチ状態D12がタッチオン状態からタッチオフ状態に変化した時点で、当該連続回数が所定数以下(例えば2以下)であれば、タッチオン状態が短時間で終了したと判断する。
【0109】
このようにタッチオン状態が短時間で終了することは、通常の正常な入力操作では生じず、タッチパネル12を指で操作することによって生じる入力座標の一時的な途切れが生じた可能性が高い。
【0110】
タッチオン状態が短時間で終了したと判定された場合には処理はステップS24に進み、そうでない場合には処理はステップS25に進む。
【0111】
ステップS24において、プロセッサ18は、指度合D19を増加させる。具体的には、例えば、指度合D19に所定の定数(例えば0.6)を加算する。
【0112】
ステップS25において、プロセッサ18は、推測移動量D20を減衰させる。具体的には、例えば、推測移動量D20に0.98を乗算する。そして、処理は図13のステップS30に進む。
【0113】
図13のステップS30において、プロセッサ18は、指度合D19に応じて追従割合D18を更新する。具体的には、指度合D19が大きいほど(すなわち、指らしさの度合が大きいほど)、追従割合D18を小さくする。例えば、図16に示すような関数を用いて、指度合D19から追従割合D18を算出する。
【0114】
ステップS31において、プロセッサ18は、補正タッチ状態D16がオフ(タッチオフ状態)で、且つ、入力タッチ状態D12がオン(タッチオン状態)であるかどうかを判断する。補正タッチ状態D16がオフで、且つ、入力タッチ状態D12がオンであるということは、操作者が指またはペンを操作面に最初に接触させたか、もしくは、操作者が指またはペンを操作面から意図的に離した後に、新たな入力を行うために、操作面に再び接触させたことを意味する。ステップS31の判断結果が肯定的である場合には処理はステップS32に進み、そうでない場合には処理はステップS34に進む。
【0115】
ステップS32において、プロセッサ18は、遊び座標D13、追従座標D14および速度座標D15を、最新の入力座標D11と同じ座標に更新する。
【0116】
ステップS33において、プロセッサ18は、推測移動量D20、推測移動方向D21および推測移動ベクトルD22を初期化する。具体的には、推測移動量D20を0に初期化し、推測移動方向D21および推測移動ベクトルD22を零ベクトルに初期化する。
【0117】
ステップS34において、プロセッサ18は、遊び半径D17に応じて遊び座標D13を更新する。具体的には、最新の入力座標と、遊び座標D13との間の距離が遊び半径D17よりも大きい場合には、最新の入力座標と、遊び座標D13との間の距離が遊び半径D17と一致するように、最新の入力座標へ向かって移動するように遊び座標D13を変更する。なお、最新の入力座標と遊び座標D13との間の距離が遊び半径D17以下の場合には、遊び座標D13の値は変更しない。
【0118】
ステップS35において、プロセッサ18は、追従割合D18に応じて追従座標D14を更新する。具体的には、ステップS34において更新された遊び座標D13と、追従座標D14との間の距離に、追従割合D18を乗算した結果の距離だけ、追従座標D14が遊び座標D13へ向かって移動するように、追従座標D14を更新する。
【0119】
ステップS36において、プロセッサ18は、最新の追従座標と1つ前の追従座標に基づいて推測移動方向D21を更新する。具体的には、例えば、更新前の推測移動方向D21をVとし、更新後の推測移動方向D21をV’とし、1つ前の追従座標と最新の追従座標を結ぶベクトルをvとすると、V’=V+(v−V)×Dとなる。なお、Dは所定の係数(例えば0.3)である。
【0120】
ステップS37において、プロセッサ18は、入力タッチ状態D12がオンかどうかを判断する。そして、入力タッチ状態D12がオンである場合には処理はステップS39に進み、そうでない場合には処理はステップS38に進む。
【0121】
ステップS38において、プロセッサ18は、追従座標が所定距離以上移動したかどうかを判断する。具体的には、例えば、最新の追従座標と1つ前の追従座標との距離が、所定距離(例えば0.01)以上かどうかを判断する。追従座標が所定距離以上移動したと判断された場合には処理はステップS39に進み、そうでない場合には処理はステップS41に進む。なお、追従座標が所定距離以上移動したかどうかを判断する代わりに、追従座標が停止したかどうか(言い換えれば、追従座標が目標座標に到達したかどうか)を判断してもよい。
【0122】
ステップS39において、プロセッサ18は、補正タッチ状態D16をオン(タッチオン状態)に更新する。これにより、入力タッチ状態D12がオフであっても、追従座標が移動している間(ほんの僅かな速さでしか移動していない場合は除かれる)は、操作者による入力操作が途切れていない(すなわち、入力座標の途切れは一時的なものであって、実際には操作者による操作面へのタッチが継続している)とみなされる。
【0123】
ステップS40において、プロセッサ18は、推測移動量D20と推測移動方向D21に基づいて、推測移動ベクトルD22を更新する。
【0124】
ステップS41において、プロセッサ18は、補正タッチ状態D16をオフ(タッチオン状態)に更新する。
【0125】
ステップS42において、プロセッサ18は、入力タッチ状態D12がオンかどうかを判断する。そして、入力タッチ状態D12がオンである場合には処理はステップS43に進み、そうでない場合には処理はステップS44に進む。
【0126】
ステップS43において、プロセッサ18は、最新の追従座標D14に応じて速度座標D15を更新する。具体的には、例えば、入力タッチ状態D12のタッチオン状態の連続回数をカウントしておき、当該連続回数をN(ただし、上限は10とする)とし、最新の追従座標をFとし、更新前の速度座標をSとし、更新後の速度座標をS’とすると、S’=S+(F−S)×N/10となる。すなわち、タッチオン状態の連続回数が0〜9であるときは、速度座標D15は追従座標D14に一致すべく接近し、タッチオン状態の連続回数が10以上になると、速度座標D15は追従座標D14に常に一致する。
【0127】
ステップS44において、プロセッサ18は、推測移動ベクトルD22に応じて速度座標D15を更新する。具体的には、推測移動ベクトルD22が示す移動方向へ向かって、推測移動ベクトルD22が示す移動量だけ、速度座標が移動するように、速度座標D15を更新する。
【0128】
ステップS43の処理またはステップS44の処理が終了すると、処理は図12のステップS11に戻り、以上のような処理を所定の周期(例えばタッチパネル12からの入力座標データの出力周期と同じ周期)で繰り返す。
【0129】
上記のようにして、タッチパネル12から出力される入力座標データに応じてリアルタイムに更新される追従座標D14および速度座標D15は、入力座標のブレや途切れを補正した結果の座標(補正後座標)として、任意の用途に利用することができる。なお、用途に応じて追従座標D14および速度座標D15のいずれか一方のみを利用してもよい。追従座標D14は、速度座標D15と比べて、操作者が描いた軌跡の形状をより正確に反映する傾向があるので、例えば、操作者が描いた軌跡の形状を表示装置16の画面に表示するような用途に好適である。一方、速度座標D15は、追従座標D14と比べて、指またはペンの移動方向および移動速度をより正確に反映する傾向があるので、例えば、表示装置16の画面に表示されたキャラクタ、アイコン、ウィンドウ等のオブジェクトを、指またはペンの移動方向および移動速度に応じて移動させるような用途に好適である。
【0130】
なお、追従座標D14や速度座標D15と同様に、タッチパネル12から出力される入力座標データに応じてリアルタイムに更新される他のデータ(例えば、遊び座標D13、補正タッチ状態D16、指度合D19、推測移動ベクトルD22など)も、任意の用途に利用することができる。例えば、表示装置16の画面上にタッチパネル12が設けられている場合に、画面に表示されるアイコンやメニューボタンや手書き入力ボックス等の大きさを、指度合D19に応じて変更してもよい。例えば、指度合D19が大きいほど、それらの大きさを大きくすることによって、指で操作しているときには操作性が向上し、ペンで操作しているときには画面に表示可能な情報量を増やして、限られた表示領域を有効利用することができる。また、推測移動ベクトルD22は、速度座標D15と同様に、表示装置16の画面に表示されたキャラクタ、アイコン、ウィンドウ等のオブジェクトを、指またはペンの移動方向および移動速度に応じて移動させるような用途に好適である。
【0131】
なお、上記実施形態は、あくまでも一実施形態に過ぎず、種々の変形例が考えられる。
【0132】
例えば、上記実施形態では、遊び座標D13を目標座標として追従するように、追従座標D14が更新されるが、他の実施形態では、図17に示すように、遊び座標D13を用いずに、入力座標D11を目標座標として追従するように、追従座標D14が更新されてもよい。この場合でも、図17において、追従座標f1〜f6によって示される入力軌跡は、入力座標p1〜p6によって示される入力軌跡と比べて、より滑らかになっており、座標のブレが抑えられている。
【0133】
また、上記実施形態では、追従座標D14を利用して座標のブレを補正しているが、他の実施形態では、遊び座標D13のみを利用して座標のブレを補正してもよいし、さらに他の補正手法を採用して座標のブレを補正してもよい。例えば、図18に示すように、直近の3つの入力座標を平均することによって得られる平均座標を利用して、座標のブレを補正してもよい。例えば、図18の平均座標a3は、入力座標p1〜p3を平均した座標であり、平均座標a4は、入力座標p2〜p4を平均した座標である。この場合、平均すべき入力座標の個数を変更することによって、座標のブレを補正する度合い(すなわち、接触位置の変動に対する応答性)を変更することができる。よって、例えば、指度合D19が0のときには平均すべき入力座標の個数を1とし、指度合D19が大きいほど、平均すべき入力座標の個数を大きくすることによって、上記実施形態と似たような効果が得られる。
【0134】
また、上記実施形態では、操作者による操作面へのタッチが継続しているかどうかを追従座標の移動量(単位時間当たりの移動量)に基づいて判断して、座標の途切れを補正(すなわち、本来入力されるはずの座標を補完)しているが、他の実施形態では、追従座標から目標座標(例えば遊び座標)までの距離に基づいて、操作者による操作面へのタッチが継続しているかどうかを判断してもよい。例えば、追従座標から目標座標までの距離が所定値より大きい間は、操作者による操作面へのタッチが継続していると判断し、追従座標から目標座標までの距離が所定値以下になった時点で、操作者による操作面へのタッチが終了したと判断するようにしてもよい。この場合にも、入力座標が途切れる直前における目標座標(例えば遊び座標)と追従座標との間の距離が大きいほど、操作者が入力操作を終了したとみなすまでの時間が長くなる。よって、上記実施形態と同様に、操作者が操作面上で指またはペンを素早く滑らせた場合には、ゆっくりと滑らせた場合と比べて、操作者が入力操作を終了したとみなすまでの時間が長くなるので、入力座標の途切れを効果的に補正することができる。また、操作者が操作面上で指またはペンをゆっくりと滑らせた場合には、操作者が入力操作を終了したとみなすまでの時間が短くなるため、応答性の低下を抑えることができる。その結果、操作者にとって、良好な操作性が得られる。
【0135】
また、上記実施形態では、追従割合D18を指度合D19に応じて変化させているが、他の実施形態では、追従割合D18を定数としてもよい。
【0136】
また、上記実施形態では、遊び半径D17を指度合D19に応じて変化させているが、他の実施形態では、遊び半径D17を定数としてもよい。
【0137】
また、上記実施形態では、指度合D19を用いることによって、座標の補正度合を調整しているが、他の実施形態では、操作者が指で操作しているかペンで操作しているかを二者択一で判定して、その結果に応じて座標の補正度合を2段階に変更してもよい。例えば、操作者が指で操作していると判定された場合には座標の補正を行い、操作者がペンで操作していると判定された場合には座標の補正を行わないようにしてもよい。
【0138】
また、上記実施形態では、入力座標によって示される入力軌跡の形状や、連続接触時間や、連続非接触時間に基づいて、指度合D19を更新しているが、指度合D19の更新方法はこれに限定されない。例えば、操作面に対する接触面積を検出することが可能なタッチパネルを利用する場合には、検出される接触面積に応じて指度合D19をリアルタイムに更新してもよい。例えば、検出される接触面積が大きいほど、指度合D19を大きくしてもよい。
【0139】
また、上記実施形態では、タッチパネル12から出力される入力座標データの特徴に基づいて、操作者が指で操作しているかペンで操作しているかを判断しているが、他の実施形態では、操作者が指で操作するのかペンで操作するのかを、操作者が予め任意の入力装置を用いて指定するようにしてもよい。そして、指での操作が指定された場合と、ペンでの操作が指定された場合とで、座標の補正度合を2段階に変更してもよい。
【0140】
また、図1に示すような座標処理システム10に替えて、タッチパネル12を有する情報処理装置(例えば、タッチパネルを搭載した携帯ゲーム機、シンクライアント、可搬型パソコン、モニタなど)を利用してもよい。
【0141】
また、感圧式のタッチパネル12に替えて、他の方式(静電式など)のタッチパネルを利用してもよい。ただし、例えば静電式のタッチパネルでは、指で操作したときの入力座標のブレや途切れは、感圧式のタッチパネルほど顕著には現れない。なお、静電式の座標入力装置を利用する場合には、操作面に対する接触面積に基づいて、操作者が指で操作しているかペンで操作しているかを判定するようにしてもよい。
【0142】
また、タッチパネル12に替えて、タッチパッドなど、タッチパネルと同等の機能を有する任意の座標入力装置(すなわち、操作面に対する指またはペンの接触位置を検出可能な座標入力装置)を利用してもよい。また、座標入力装置に限らず、他の任意の入力値を入力する入力装置を利用してもよい。例えば、加速度センサを内蔵し、操作者の操作に応じた加速度を示す入力データを出力するような入力装置を利用してもよい。この場合にも、上記実施形態と同様に、例えば、入力データが示す入力値に追従するような追従値を利用することによって、入力データのブレや途切れを補正することが可能である。
【0143】
また、上記実施形態では、図12および図13に示した複数の処理を1つのコンピュータ(プロセッサ18)が実行しているが、他の実施形態では、これらの複数の処理を複数のコンピュータが分担して実行してもよい。さらに他の実施形態では、これらの複数の処理の一部または全部を専用回路によって実現してもよい。
【0144】
また、上記実施形態では、図12および図13に示した複数の処理を1台の情報処理装置14において実行しているが、他の実施形態では、これらの複数の処理を複数の情報処理装置が分担して実行してもよい。
【0145】
また、上記実施形態では、内部記憶装置20または外部記憶装置24からメインメモリ22へ座標処理プログラムD10がロードされているが、他の実施形態では、他の情報処理装置(例えばサーバ装置)から情報処理装置14へ座標処理プログラムD10が供給されてもよい。
【符号の説明】
【0146】
10 座標処理システム
12 タッチパネル
【特許請求の範囲】
【請求項1】
所定の入力装置から出力される入力データを処理するための情報処理プログラムであって、
コンピュータを、
前記入力データに基づいて設定される目標値に追従する追従値を算出する追従値算出手段、および
前記入力装置からの前記入力データの出力が途切れた時、前記追従値が所定条件を満たしていれば、入力が継続しているものとして前記入力データを補正する途切れ補正手段として機能させる、情報処理プログラム。
【請求項2】
前記入力装置からの前記入力データの出力が途切れた時に、前記途切れ補正手段が入力が継続しているものとみなす期間は、前記入力装置からの前記入力データの出力が途切れる直前における前記入力データの変化量が大きいほど長くなる、請求項1に記載の情報処理プログラム。
【請求項3】
前記所定の入力装置は、座標入力装置であり、
前記入力データは、前記座標入力装置の操作面に対する接触位置を示す入力座標データであり、
前記目標値は、前記入力座標データに基づいて設定される目標座標であり、
前記追従値は、前記目標座標に追従する追従座標であり、
前記途切れ補正手段は、前記入力座標データによって示される接触位置が途切れた時、前記追従座標が所定条件を満たしていれば、当該途切れた期間も接触が継続しているものとして前記入力座標データを補正する、請求項1または2に記載の情報処理プログラム。
【請求項4】
前記所定条件は、単位時間当たりの前記追従値の変化量に関する条件である、請求項1〜3のいずれか1項に記載の情報処理プログラム。
【請求項5】
前記途切れ補正手段は、前記入力データの出力が途切れた時、単位時間当たりの前記追従値の変化量が所定値以上であれば、当該途切れた期間も入力が継続しているものとして前記入力データを補正する、請求項4に記載の情報処理プログラム。
【請求項6】
前記所定条件は、前記追従値と前記目標値の差に関する条件である、請求項1〜3のいずれか1項に記載の情報処理プログラム。
【請求項7】
前記途切れ補正手段は、前記入力データの出力が途切れた時、前記追従値と前記目標値の差が所定値より大きければ、当該途切れた期間も入力が継続しているものとして前記入力データを補正する、請求項6に記載の情報処理プログラム。
【請求項8】
前記追従値算出手段は、前記目標値に所定割合で追従するように、前記追従値を算出する、請求項1〜7のいずれか1項に記載の情報処理プログラム。
【請求項9】
前記追従値算出手段は、前記追従値と前記目標値の差が前記所定割合で短くなるように当該追従値を更新する、請求項8に記載の情報処理プログラム。
【請求項10】
前記追従値算出手段は、前記追従値と前記目標値の差に前記所定割合を乗算した結果の値だけ前記目標値へ近づくように、前記追従値を更新する、請求項8または9に記載の情報処理プログラム。
【請求項11】
前記目標値は、前記入力データが示す入力値との差が所定値よりも大きくなったときに、当該差が所定値となるように、その値が変化するものである、請求項1〜10のいずれか1項に記載の情報処理プログラム。
【請求項12】
前記途切れ補正手段は、前記入力データをリアルタイムに補正する、請求項1〜11のいずれか1項に記載の情報処理プログラム。
【請求項13】
前記途切れ補正手段は、前記入力データの出力が途切れた時、前記追従値が所定条件を満たしていれば、前記追従値を用いて当該途切れた期間の入力データを補完する、請求項1〜12のいずれか1項に記載の情報処理プログラム。
【請求項14】
前記途切れ補正手段は、前記入力座標データによって示される接触位置が途切れた時、前記追従座標が所定条件を満たしていれば、前記入力座標データによって示される接触位置の間隔と、前記追従座標の移動方向とに基づいて、当該途切れた期間の接触位置を補完する、請求項3に記載の情報処理プログラム。
【請求項15】
所定の入力装置から出力される入力データを処理するための情報処理装置であって、
前記入力データに基づいて設定される目標値に追従する追従値を算出する追従値算出手段、および
前記入力装置からの前記入力データの出力が途切れた時、前記追従値が所定条件を満たしていれば、入力が継続しているものとして前記入力データを補正する途切れ補正手段を備える、情報処理装置。
【請求項16】
所定の入力装置から出力される入力データを処理するための情報処理システムであって、
前記入力データに基づいて設定される目標値に追従する追従値を算出する追従値算出手段、および
前記入力装置からの前記入力データの出力が途切れた時、前記追従値が所定条件を満たしていれば、入力が継続しているものとして前記入力データを補正する途切れ補正手段を備える、情報処理システム。
【請求項17】
所定の入力装置から出力される入力データを処理するための情報処理システムのコンピュータによって実行される情報処理方法であって、
前記入力データに基づいて設定される目標値に追従する追従値を前記コンピュータが算出する追従値算出ステップ、および
前記入力装置からの前記入力データの出力が途切れた時、前記追従値が所定条件を満たしていれば、入力が継続しているものとして、前記コンピュータが前記入力データを補正する途切れ補正ステップを備える、情報処理方法。
【請求項1】
所定の入力装置から出力される入力データを処理するための情報処理プログラムであって、
コンピュータを、
前記入力データに基づいて設定される目標値に追従する追従値を算出する追従値算出手段、および
前記入力装置からの前記入力データの出力が途切れた時、前記追従値が所定条件を満たしていれば、入力が継続しているものとして前記入力データを補正する途切れ補正手段として機能させる、情報処理プログラム。
【請求項2】
前記入力装置からの前記入力データの出力が途切れた時に、前記途切れ補正手段が入力が継続しているものとみなす期間は、前記入力装置からの前記入力データの出力が途切れる直前における前記入力データの変化量が大きいほど長くなる、請求項1に記載の情報処理プログラム。
【請求項3】
前記所定の入力装置は、座標入力装置であり、
前記入力データは、前記座標入力装置の操作面に対する接触位置を示す入力座標データであり、
前記目標値は、前記入力座標データに基づいて設定される目標座標であり、
前記追従値は、前記目標座標に追従する追従座標であり、
前記途切れ補正手段は、前記入力座標データによって示される接触位置が途切れた時、前記追従座標が所定条件を満たしていれば、当該途切れた期間も接触が継続しているものとして前記入力座標データを補正する、請求項1または2に記載の情報処理プログラム。
【請求項4】
前記所定条件は、単位時間当たりの前記追従値の変化量に関する条件である、請求項1〜3のいずれか1項に記載の情報処理プログラム。
【請求項5】
前記途切れ補正手段は、前記入力データの出力が途切れた時、単位時間当たりの前記追従値の変化量が所定値以上であれば、当該途切れた期間も入力が継続しているものとして前記入力データを補正する、請求項4に記載の情報処理プログラム。
【請求項6】
前記所定条件は、前記追従値と前記目標値の差に関する条件である、請求項1〜3のいずれか1項に記載の情報処理プログラム。
【請求項7】
前記途切れ補正手段は、前記入力データの出力が途切れた時、前記追従値と前記目標値の差が所定値より大きければ、当該途切れた期間も入力が継続しているものとして前記入力データを補正する、請求項6に記載の情報処理プログラム。
【請求項8】
前記追従値算出手段は、前記目標値に所定割合で追従するように、前記追従値を算出する、請求項1〜7のいずれか1項に記載の情報処理プログラム。
【請求項9】
前記追従値算出手段は、前記追従値と前記目標値の差が前記所定割合で短くなるように当該追従値を更新する、請求項8に記載の情報処理プログラム。
【請求項10】
前記追従値算出手段は、前記追従値と前記目標値の差に前記所定割合を乗算した結果の値だけ前記目標値へ近づくように、前記追従値を更新する、請求項8または9に記載の情報処理プログラム。
【請求項11】
前記目標値は、前記入力データが示す入力値との差が所定値よりも大きくなったときに、当該差が所定値となるように、その値が変化するものである、請求項1〜10のいずれか1項に記載の情報処理プログラム。
【請求項12】
前記途切れ補正手段は、前記入力データをリアルタイムに補正する、請求項1〜11のいずれか1項に記載の情報処理プログラム。
【請求項13】
前記途切れ補正手段は、前記入力データの出力が途切れた時、前記追従値が所定条件を満たしていれば、前記追従値を用いて当該途切れた期間の入力データを補完する、請求項1〜12のいずれか1項に記載の情報処理プログラム。
【請求項14】
前記途切れ補正手段は、前記入力座標データによって示される接触位置が途切れた時、前記追従座標が所定条件を満たしていれば、前記入力座標データによって示される接触位置の間隔と、前記追従座標の移動方向とに基づいて、当該途切れた期間の接触位置を補完する、請求項3に記載の情報処理プログラム。
【請求項15】
所定の入力装置から出力される入力データを処理するための情報処理装置であって、
前記入力データに基づいて設定される目標値に追従する追従値を算出する追従値算出手段、および
前記入力装置からの前記入力データの出力が途切れた時、前記追従値が所定条件を満たしていれば、入力が継続しているものとして前記入力データを補正する途切れ補正手段を備える、情報処理装置。
【請求項16】
所定の入力装置から出力される入力データを処理するための情報処理システムであって、
前記入力データに基づいて設定される目標値に追従する追従値を算出する追従値算出手段、および
前記入力装置からの前記入力データの出力が途切れた時、前記追従値が所定条件を満たしていれば、入力が継続しているものとして前記入力データを補正する途切れ補正手段を備える、情報処理システム。
【請求項17】
所定の入力装置から出力される入力データを処理するための情報処理システムのコンピュータによって実行される情報処理方法であって、
前記入力データに基づいて設定される目標値に追従する追従値を前記コンピュータが算出する追従値算出ステップ、および
前記入力装置からの前記入力データの出力が途切れた時、前記追従値が所定条件を満たしていれば、入力が継続しているものとして、前記コンピュータが前記入力データを補正する途切れ補正ステップを備える、情報処理方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【公開番号】特開2013−114482(P2013−114482A)
【公開日】平成25年6月10日(2013.6.10)
【国際特許分類】
【出願番号】特願2011−260438(P2011−260438)
【出願日】平成23年11月29日(2011.11.29)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
【公開日】平成25年6月10日(2013.6.10)
【国際特許分類】
【出願日】平成23年11月29日(2011.11.29)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
[ Back to top ]