以下、本発明の実施形態に係る情報処理装置、移動制御方法及びプログラムについて、図面を参照しながら説明する。なお、図中同一又は相当する部分には同一符号を付す。
(実施形態1)
実施形態1に係る情報処理装置100は、物理的には、図1に示すように、構成される。情報処理装置100は、例えば汎用のデスクトップ型又はノート型のパーソナルコンピュータである。図1に示すように、情報処理装置100は、制御部1と、計時部2と、記憶部3と、入力部4と、表示部5と、バス6と、を備える。
制御部1は、ROM(Read Only Memory)と、RAM(Random Access Memory)と、CPU(Central Processing Unit)と、を備える。ROMは、本実施形態に係る情報処理プログラム、及び、各種初期設定、ハードウェアの検査、プログラムのロード等を行うための初期プログラム等を記憶する。RAMは、CPUが実行する各種ソフトウェアプログラム、これらのソフトウェアプログラムの実行に必要なデータ等を一時的に記憶するワークエリアとして機能する。CPUは、様々な処理及び演算を実行する中央演算処理部である。
制御部1は、命令及びデータを転送するための伝送経路であるバス6を介して情報処理装置100の各部と接続され、情報処理装置100全体を制御する。また、制御部1において、CPUは、ROMに記憶された情報処理プログラムをRAMに読み出して、その情報処理プログラムを実行することにより、図2に示す機能を実現する。
計時部2は、情報処理装置100の電源がオフの間も計時を継続するRTC(Real Time Clock)等の計時用のデバイスを備える。計時部2は、後述するモード遷移条件となる時間を計測する。
記憶部3は、例えばハードディスクドライブ又はフラッシュメモリ等のような不揮発性メモリを備える。記憶部3は、後述する閾値R等の制御部1が各種処理を行うために使用する各種のプログラム及びデータ、制御部1が各種処理を行うことにより生成又は取得する各種データを記憶する。
入力部4は、マウス、スライドパッド、又は、トラックボール等のポインティングデバイスを備える。入力部4は、ポインティングデバイスの操作を介して、画面に表示されたカーソル等の操作対象を移動させる量と向きとを受け付ける。また、入力部4は、キーボード又はキーパッド等のような、文字入力デバイスも備える。入力部4は、ポインティングデバイス又は文字入力デバイスを介して受け付けた指示内容を示す信号を生成し、制御部1に供給する。
表示部5は、例えば、液晶ディスプレイ又は有機EL(Electro Luminescence)ディスプレイ等のような表示デバイスを備える。表示部5は、制御部1から画像信号を取得し、取得した画像信号に従った画像を表示デバイスの画面に出力する。
情報処理装置100は、機能的には、図2に示すように、入力受付部110と、移動制御部120と、禁止範囲設定部130と、タイマー設定部140と、表示制御部150と、を備える。移動制御部120は、サーチモード移動制御部121と、ガイドモード移動制御部122と、アンロックモード移動制御部123と、モード切替部124と、の機能を含む。
入力受付部110は、画面に表示された操作対象を移動させる指示入力を受け付ける。操作対象とは、具体的にはカーソル(ポインタ等ともいう)等であって、表示部5の画面に表示され、使用者の操作によって画面内を移動するものである。入力受付部110は、ポインティングデバイスを介して、表示部5の画面に表示された操作対象であるカーソルを移動させる指示入力を受け付ける。ポインティングデバイスとは、具体的には、マウス、スライドパッド(タッチパッド又はトラックパッド等ともいう。)又はトラックボール等である。入力受付部110は、情報処理装置100に入力部4として備えられたポインティングデバイスを介して、表示部5の画面に表示された操作対象であるカーソルを移動させる量と向きとの指示を含む指示入力を受け付ける。このように、入力受付部110は、制御部1が入力部4等と協働することによって実現される。
以下では、表示部5の画面に表示されたカーソルを移動させる指示入力を受け付けるためのポインティングデバイスとして、マウスを使用する場合について説明する。すなわち、入力受付部110は、カーソルを移動させる指示入力として、使用者がマウスを移動させた向きとマウスを移動させた量とを受け付ける。但し、ポインティングデバイスとしてスライドパッド又はトラックボールを用いた場合も、同様に説明することができる。
移動制御部120は、入力受付部110が操作対象を移動させる指示入力を受け付けると、受け付けた指示入力に従って、表示部5の画面に表示された操作対象であるカーソルを移動させる。移動制御部120は、制御部1が表示部5及び計時部2等と協働することによって実現される。
図3に、操作対象としてカーソル200が表示された画面の例を示す。表示部5の画面には、画面内の横方向及び縦方向をそれぞれX軸及びY軸に設定した仮想座標におけるA点(x1,y1)に、カーソル200が表示されている。このような状態において、使用者がマウスを移動させることによって入力受付部110が指示入力を受け付けると、移動制御部120は、図3に示すように、カーソル200を例えばB点(x2,y2)まで移動させる。このように、移動制御部120は、使用者がマウスを移動させた向きに、マウスを移動させた量に比例した量だけ、カーソル200を移動させる。
より詳細に説明すると、移動制御部120は、図4に示すように、(1)サーチモード、(2)ガイドモード、及び、(3)アンロックモードの3つのモードのうちのいずれかのモードで、カーソル200を移動制御する。
(1)サーチモードは、入力受付部110が受け付けた指示入力によって単位時間内にカーソル200が移動した量が閾値Rを超えたか否かを判別し、単位時間内にカーソル200が移動した量が閾値Rを超えた場合にその移動の向きを検出(サーチ)する第1のモードである。
(2)ガイドモードは、サーチモードにおいて検出された向きとは逆向きへカーソル200を移動させる指示入力を入力受付部110が受け付けても、カーソル200を移動させない第2のモードである。
(3)アンロックモードは、カーソル200の移動に制限を設けず、入力受付部110が受け付けた指示入力に従ってカーソル200を移動させる第3のモードである。
以下、各モードにおける操作対象の移動制御、及び、モード間の切り替えの詳細について、説明する。
図2に示す情報処理装置100の機能構成の説明に戻る。移動制御部120は、サーチモードとガイドモードとアンロックモードとの切替、及び、各モードにおけるカーソル200の移動を制御するために、サーチモード移動制御部121と、ガイドモード移動制御部122と、アンロックモード移動制御部123と、モード切替部124と、を備える。
サーチモード移動制御部121は、移動制御部120がサーチモードで動作している場合において、入力受付部110が取得した指示入力に基づいて、カーソル200を移動制御する。具体的に説明すると、サーチモード移動制御部121は、使用者がマウスを移動させた向きに、マウスを移動させた量に比例した量だけ、カーソル200を移動させる。
このようにカーソル200を移動させながら、サーチモード移動制御部121は、単位時間内にカーソル200が移動した量が閾値を超えたか否かを判別する。そして、単位時間内にカーソル200が移動した量が閾値を超えた場合、サーチモード移動制御部121は、この単位時間内におけるカーソル200の移動の向きを検出する。
具体的に説明すると、図5(a)に示すように、カーソル200の現在位置を原点とする仮想座標(X、Y)において、単位時間内にベクトルM1で表されるように直線的にカーソル200が移動した場合、単位時間内にカーソル200が移動した量は閾値Rを超えている。そのため、この場合、サーチモード移動制御部121は、単位時間内にカーソル200が移動した量が閾値Rを超えたと判別し、その際のカーソル200の移動の向きとして、ベクトルM1で表される移動の向きを検出する。
これに対して、図5(a)に示した仮想座標(X、Y)において、単位時間内にベクトルM2又はM3で表されるようにカーソル200が移動した場合、単位時間内にカーソル200が移動した量は閾値Rを超えていない。そのため、この場合、サーチモード移動制御部121は、単位時間内にカーソル200が移動した量が閾値Rを超えたと判別せず、その際のカーソル200の移動の向きを検出しない。
また、図5(b)に破線で示すように、カーソル200が直線的には移動しない場合もある。このような場合、単位時間の開始時点の位置(原点)からの距離が閾値Rを超えた場合、すなわち、図5(b)に示した仮想座標(X、Y)におけるカーソル200の座標がC点に到達した場合に、サーチモード移動制御部121は、単位時間内にカーソル200が移動した量が閾値Rを超えたと判別する。このとき、サーチモード移動制御部121は、単位時間の開始時点の位置(原点)からカーソル200の移動量が閾値Rを超えた時点の位置(C点)に向かうベクトルC1の向きを、この単位時間内におけるカーソル200の移動の向きとして検出する。
このような閾値Rは、予め固定値として情報処理プログラム内に設定してもよいし、入力部4から使用者が適宜変更できるようにしてもよい。また、単位時間は適宜定めることができる。例えば、単位時間を1秒と定めた場合、閾値Rを超えるのに要した時間が1秒未満である場合は、サーチモード移動制御部121は、その間におけるカーソル200の移動の向きを検出する。その一方で、閾値Rを超えるのに要した時間が1秒以上であった場合は、その間におけるカーソル200の移動の向きを検出しない。
サーチモード移動制御部121が、単位時間内にカーソル200が移動した量が閾値Rを超えたと判別し、その間におけるカーソル200の移動の向きを検出した場合、禁止範囲設定部130は、検出された向きに基づいて、カーソル200の移動を禁止する向きの範囲(移動禁止範囲)を設定する。具体的に説明すると、禁止範囲設定部130は、単位時間内にカーソル200が移動した量が閾値Rを超えた場合、この単位時間内におけるカーソル200の移動の向きを含まず、この移動の向きとは逆向きを含む向きの範囲を、移動禁止範囲として設定する。
具体的には、図6に示すように、カーソル200の現在位置を原点とする仮想座標(X、Y)において、X軸の正の向きを中心として角度が±45度以内の向きの範囲、Y軸の正の向きを中心として角度が±45度以内の向きの範囲、X軸の負の向きを中心として角度が±45度以内の向きの範囲、及び、Y軸の負の向きを中心として角度が±45度以内の向きの範囲の4つの範囲が、移動禁止範囲の候補として予め設定されている。禁止範囲設定部130は、これら4つの範囲のうち、検出された向きが含まれる範囲以外の3つの範囲(図6において斜線で示した範囲)を、移動禁止範囲として設定する。
図2に示した情報処理装置100の機能構成の説明に戻る。モード切替部124は、移動制御部120がサーチモードで動作している場合において、単位時間内にカーソル200が移動した量が閾値Rを超えると、移動制御部120の動作モードを、サーチモードからガイドモードに切り替える。
ガイドモード移動制御部122は、移動制御部120がガイドモードで動作している場合において入力受付部110が取得した指示入力に基づいて、カーソル200を移動制御する。具体的に説明すると、ガイドモード移動制御部122は、サーチモード時に入力受付部110が受け付けた第1の指示入力によって単位時間内にカーソル200が移動した量が閾値Rを超えた場合において、この単位時間内におけるカーソル200の移動の向きとは逆向きにカーソル200を移動させる第2の指示入力を入力受付部110が受け付けても、カーソル200を移動させず、この移動の向きにカーソル200を移動させる第3の指示入力を入力受付部110が受け付けると、カーソル200を移動させる。
具体例について、図6を参照して説明する。サーチモード時に入力受付部110が受け付けた第1の指示入力によって、単位時間内にカーソル200が移動した量が閾値Rを超えた場合、禁止範囲設定部130は、サーチモード移動制御部121によって検出されたカーソル200の移動の向きが含まれる範囲以外の3つの範囲(図6において斜線で示した範囲)を、移動禁止範囲として設定する。この状態において、第2の指示入力として、ベクトルK1又はK2で表されるように、移動禁止範囲内の向きにカーソル200を移動させる指示入力を入力受付部110が受け付けた場合、ガイドモード移動制御部122は、第2の指示入力には従わず、カーソル200を移動させない。これに対して、第3の指示入力として、ベクトルK3で表されるように、移動禁止範囲外の向きにカーソル200を移動させる指示入力を入力受付部110が受け付けた場合、ガイドモード移動制御部122は、第3の指示入力に従って、カーソル200を移動させる。
ガイドモードにおけるカーソル200の移動制御について、図7(a)及び(b)を参照して説明する。図7(a)に示すようにマウスの位置を「1」、「2」、「3」、「4」の順に往復移動させた場合、ガイドモードにおいて、カーソル200は、図7(b)に示すように「1」、「2」、「3」、「4」の順に移動する。なお、図7(b)は、ガイドモードに遷移した際のカーソル200の移動が、図6に示したように画面内において右上の向きへの移動であった場合の例である。すなわち、図6に示したように、上下左右の4つの範囲のうちのこの移動の向きを含まない3つの範囲が移動禁止範囲として設定されている。
より詳細に説明すると、ガイドモード移動制御部122は、マウスの位置を「1」から「2」に移動させる入力操作を受け付けると、マウスの移動と同様に、画面上のカーソル200を「1」から「2」に移動させる。これに対して、ガイドモード移動制御部122は、マウスの位置を「2」から「3」に移動させる入力操作を受け付けても、画面上のカーソル200を「2」から移動させない。「2」から「3」への向きは、ガイドモードに遷移した際にカーソル200が移動した「1」から「2」への向きと逆向きであり、カーソル200の移動を禁止する向きであるからである。更に、ガイドモード移動制御部122は、マウスの位置を「3」から「4」に移動させる入力操作を受け付けると、画面上のカーソル200を「3」から「4」に移動させる。「3」から「4」に向かう向きは、「1」から「2」への向きと同じ向きであり、カーソル200の移動を禁止する向きではないからである。
このように、ガイドモードにおいて、使用者は、マウスを持ち上げる動作をすることなく、限られた場所でマウスを往復させるだけで、画面上のカーソル200を特定の向きに順次移動させることができる。そのため、使用者が例えば神経疾患又は筋疾患等によって運動機能に障害を有する者であっても、特定の向きにカーソル200を移動させる操作を容易に行うことができる。
図2に示した情報処理装置100の機能構成の説明に戻る。モード切替部124は、移動制御部120がガイドモードで動作している場合において、第1の条件が満たされると、移動制御部120の動作モードを、ガイドモードからサーチモードに切り替える。この第1の条件は、ガイドモードを解除する条件である。具体的には、第1の条件は、図4に示すように、移動制御部120がガイドモードで動作している場合、すなわち単位時間内にカーソル200が移動した量が閾値Rを超えた後において、第1の長さの時間T1の間、入力受付部110が指示入力を受け付けなかった場合に、満たされる。
具体的に説明すると、移動制御部120は、第1の指示入力によって単位時間内にカーソル200が移動した量が閾値Rを超えたことによって、動作モードがガイドモードに遷移した後であっても、時間T1の間指示入力を受け付けなかった場合には、移動禁止範囲を解除する。そのため、移動制御部120は、第1の指示入力での移動の向きの逆向き等のような、移動禁止範囲内の向きにカーソル200を移動させる第2の指示入力を入力受付部110が受け付けても、受け付けた第2の指示入力に従ってカーソル200を移動させる。
モード切替部124は、移動制御部120がサーチモードで動作している場合において、第2の条件が満たされると、移動制御部120の動作モードを、サーチモードからアンロックモードに切り替える。この第2の条件は、動作モードをアンロックモードに遷移させるための条件である。具体的には、第2の条件は、図4に示すように、移動制御部120がサーチモードで動作している場合、すなわち移動制御部120の動作モードをガイドモードに遷移させる第1の指示入力を受け付ける前において、第2の長さの時間T2の間、入力受付部110が指示入力を受け付けなかった場合に、満たされる。
アンロックモード移動制御部123は、移動禁止範囲の制限を設けることなく、表示部5の画面に表示されたカーソル200を、入力受付部110によって受け付けられた指示入力に従って移動させる。具体的に説明すると、アンロックモード移動制御部123は、単位時間内に閾値Rを超えてカーソル200を移動させる第1の指示入力を受け付けても、動作モードをガイドモードには遷移させない。そのため、その後に、たとえ第1の指示入力での移動の向きの逆向きにカーソル200を移動させる第2の指示入力を入力受付部110が受け付けても、受け付けた第2の指示入力に従ってカーソル200を移動させる。
アンロックモードにおけるカーソル200の移動制御について、図7(a)及び(c)を参照して説明する。図7(a)に示すようにマウスの位置を「1」、「2」、「3」、「4」の順に往復移動させた場合、アンロックモードにおいて、カーソル200は、図7(c)に示すように「1」、「2」、「3」、「4」の順に移動する。
より詳細に説明すると、アンロックモード移動制御部123は、マウスの位置を「1」から「2」に移動させる入力操作を受け付けると、マウスの移動と同様に、画面上のカーソル200を「1」から「2」に移動させる。そして、アンロックモード移動制御部123は、マウスの位置を「2」から「3」に移動させる入力操作を受け付けると、画面上のカーソル200を「2」から「3」に、すなわち、元の「1」の位置に戻るように移動させる。アンロックモードでは、カーソル200の移動を禁止する向きの範囲(移動禁止範囲)が設定されていないからである。更に、アンロックモード移動制御部123は、マウスの位置を「3」から「4」に移動させる入力操作を受け付けると、画面上のカーソル200を「3」から「4」に移動させる。
このように、アンロックモードでは、画面上のカーソル200は、マウスの移動の通りに移動する。そのため、使用者は、自由にカーソル200を操作することができる。使用者がガイドを必要としない者である場合にも、情報処理装置100を通常通り違和感なく使用することができる。
モード切替部124は、移動制御部120がアンロックモードで動作している場合において、第3の条件が満たされると、移動制御部120の動作モードを、アンロックモードからサーチモードに切り替える。この第3の条件は、アンロックモードを解除する条件である。具体的には、第3の条件は、図4に示すように、移動制御部120がアンロックモードモードで動作している場合、すなわち上述した第2の条件が満たされた後において、第3の長さの時間T3の間、入力受付部110が指示入力を受け付けなかった場合に、満たされる。
具体的に説明すると、移動制御部120は、アンロックモードにおいて時間T3の間指示入力を受け付けなかった場合には、アンロックモードを解除し、動作モードをサーチモードに戻す。サーチモードにおいて、移動制御部120は、単位時間内にカーソル200が移動した量が閾値Rを超えた場合には、動作モードをガイドモードに遷移させる。すなわち、移動制御部120は、第1の指示入力によって単位時間内にカーソル200を移動した量が閾値Rを超えた後、移動禁止範囲内の向きにカーソル200を移動させる第2の指示入力を入力受付部110が受け付けても、カーソル200を移動させない。
タイマー設定部140は、制御部1が計時部2の示す時刻を計測することにより実現する。タイマー設定部140は、モード遷移の条件として使用する時間T1,T2,T3を設定し、タイマーを起動した時刻から設定された時間が経過するまでの時間を計測する。具体的には、図4に示す状態遷移図において、ガイドモードからサーチモードに遷移する第1の条件として使用される時間T1、サーチモードからアンロックモードに遷移する第2の条件として使用される時間T2、アンロックモードからサーチモードに遷移する第3の条件として使用される時間T3、のタイマー値を設定し、タイマー値が経過するまでの時間を計測する。時間T1,T2,T3の長さは、それぞれ予め固定値として情報処理プログラム内に設定しておいてもよいし、入力部4を介して使用者が設定できるようにしてもよい。
表示制御部150は、情報処理装置100が現在動作している動作モードを示すモード画像を表示部5に表示する。具体的に説明すると、サーチモードでの動作時には、表示制御部150は、図3に示すように、サーチモードで動作中であることを示すモード画像211として表示する。ガイドモードでの動作時には、表示制御部150は、図7(b)に示すように、ガイドモードで動作中であることを示すモード画像212として表示する。アンロックモードでの動作時には、表示制御部150は、図7(c)に示すように、アンロックモードで動作中であることを示すモード画像213として表示する。このように、表示制御部150は、制御部1が表示部5等を協働することによって実現される。
ガイドモードにおいて表示されるモード画像212には、サーチモードからガイドモードに遷移する際に検出されたカーソル200の移動の向きを示す矢印の情報が含まれる。すなわち、表示制御部150は、サーチモードにおいて受け付けられた指示入力によって単位時間内にカーソル200が移動した量が閾値Rを超え、動作モードがガイドモードに遷移した場合、その移動の向きを示す情報を画面に表示する。具体的には図7(b)に示したように、表示制御部150は、モード画像212の中に右上の向きの矢印を表示する。これにより、使用者は、現在のモードが右上の向きへカーソル200を移動させるモードであって、それ以外の向きへの移動が禁止されていることを認識することができる。
以上のような情報処理装置100が実行するカーソル200の移動制御処理の流れについて、図8に示すフローチャートを参照して説明する。
例えば使用者が情報処理装置100に予めインストールされた専用のアプリケーションを実行することにより、制御部1のCPUが情報処理プログラムを起動する。これにより、図8に示すフローチャートは、開始する。
制御部1は、情報処理プログラムを起動すると、まず、情報処理装置100の動作モードを、サーチモードに遷移させる(ステップS1)。この遷移は、図4に示す状態遷移図のプログラム起動時のサーチモードへの遷移に該当する。動作モードをサーチモードに遷移させると、制御部1は、アンロックモードへ遷移する条件となる時間T2の計時を開始する(ステップS2)。時間T2は、サーチモードでの動作時における入力操作の中断時間を監視するための第2の長さの時間である。
サーチモードにおいて、時間T2の計時を開始すると、制御部1は、入力受付部110として機能し、入力部4を介して指示入力を受け付けたか否かを判別する(ステップS3)。
指示入力を受け付けていない場合(ステップS3;NO)、制御部1は、ステップS2において計時を開始してから時間T2が経過したか否かを判別する(ステップS4)。時間T2が経過していない場合(ステップS4;NO)、制御部1は、引き続きステップS3において、指示入力を待ち受ける。
指示入力を受け付けると(ステップS3;YES)、制御部1は、サーチモード移動制御部121として機能し、受け付けた指示入力に従ってカーソル200を移動させる(ステップS5)。すなわち、制御部1は、使用者がマウスを移動させた向きに、マウスを移動させた量に比例した量だけ、表示部5の画面に表示されたカーソル200を移動させる。
カーソル200を移動させると、制御部1は、単位時間内にカーソル200が移動した量が閾値Rを超えたか否かを判別する(ステップS6)。単位時間内にカーソル200が移動した量が閾値Rを超えていないと判別した場合(ステップS6;NO)、制御部1は、処理をステップS2に戻す。ステップS2において、制御部1は、時間T2の計時をリセットし、時間T2を計時し直す。そして、制御部1は、ステップS3において、入力部4を介して更なる指示入力を受け付けたか否かを判別する。
単位時間内にカーソル200が移動した量が閾値Rを超えたと判別した場合(ステップS6;YES)、制御部1は、その単位時間内におけるカーソル200の移動の向きを検出する(ステップS7)。そして、制御部1は、禁止範囲設定部130として機能し、カーソル200の移動を禁止する向きの範囲(移動禁止範囲)を設定する(ステップS8)。具体的に説明すると、制御部1は、図6に示したように、予め定められた4つの範囲のうちから、検出した移動の向きを含まない3つの範囲を、移動禁止範囲として設定する。
移動禁止範囲を設定すると、制御部1は、モード切替部124として機能し、動作モードをガイドモードに遷移させる(ステップS9)。この遷移は、図4に示すサーチモードからガイドモードへの遷移に該当する。このとき、動作モードがガイドモードに切り替わったことを使用者に通知するため、制御部1は、図示しないスピーカからチャイム音を出力する。また、制御部1は、表示制御部150として機能し、図7(b)に示したように、表示部5の画面内に、ガイドモードで動作していることを示すモード画像212を表示する。ガイドモードで動作していることを示すモード画像212には、検出したカーソル200の移動の向きを示す矢印の情報が含まれる。
動作モードをガイドモードに遷移させると、制御部1は、サーチモードへの遷移条件となる時間T1の計時をスタートする(ステップS10)。時間T1は、ガイドモードでの動作時における入力操作の中断時間を監視する第1の長さの時間である。
ガイドモードにおいて、時間T1の計時を開始すると、制御部1は、入力受付部110として機能し、入力部4を介して新たな指示入力を受け付けたか否かを判別する(ステップS11)。
新たな指示入力を受け付けていない場合(ステップS11;NO)、制御部1は、ステップS10において計時を開始してから時間T1が経過したか否かを判別する(ステップS12)。時間T1が経過していない場合(ステップS12;NO)、制御部1は、引き続きステップS11において、入力部4を介して新たな指示入力を待ち受ける。
新たな指示入力を受け付けると(ステップS11;YES)、制御部1は、ガイドモード移動制御部122として機能し、ガイドモードでカーソル200を制御する(ステップS13)。具体的に説明すると、制御部1は、受け付けた新たな指示入力が、ステップS8において設定された移動禁止範囲外の向きにカーソル200を移動させる指示入力であった場合には、受け付けた指示入力に従って表示部5の画面に表示されたカーソル200を移動させる。これに対して、受け付けた新たな指示入力が、ステップS8において設定された移動禁止範囲内の向きにカーソル200を移動させる指示入力であった場合には、受け付けた指示入力には従わず、表示部5の画面に表示されたカーソル200を移動させない。
ガイドモードでカーソル200を制御すると、制御部1は、処理をステップS10に戻す。ステップS10において、制御部1は、時間T1の計時をリセットし、時間T1を計時し直す。そして、制御部1は、ステップS11において、入力部4を介して更なる指示入力を待ち受ける。
ガイドモードにおいて、計時を開始してから時間T1が経過するまでの間、指示入力を受け付けなかった場合(ステップS12;YES)、制御部1は、処理をステップS1に戻す。そして、制御部1は、ステップS1において、モード切替部124として機能し、動作モードをサーチモードに遷移させる。この遷移は、図4に示すガイドモードからサーチモードへの遷移に該当する。このとき、動作モードがサーチモードに切り替わったことを使用者に通知するため、制御部1は、図示しないスピーカからチャイム音を出力する。また、制御部1は、表示制御部150として機能し、図3に示したように、表示部5の画面内に、サーチモードで動作していることを示すモード画像211を表示する。
サーチモードにおいて、計時を開始してから時間T2が経過するまでの間、指示入力を受け付けなかった場合(ステップS4;YES)、制御部1は、モード切替部124として機能し、動作モードをアンロックモードに遷移させる(ステップS14)。この遷移は、図4に示すサーチモードからアンロックモードへの遷移に該当する。このとき、動作モードがアンロックモードに切り替わったことを使用者に通知するため、制御部1は、図示しないスピーカからチャイム音を出力する。また、制御部1は、表示制御部150として機能し、図7(c)に示したように、表示部5の画面内に、アンロックモードで動作していることを示すモード画像213を表示する。
動作モードをアンロックモードに遷移させると、制御部1は、時間T3の計時を開始する(ステップS15)。時間T3は、アンロックモードでの動作時における入力操作の中断時間を監視する第3の長さの時間である。
アンロックモードにおいて、時間T3の計時を開始すると、制御部1は、入力受付部110として機能し、入力部4を介して新たな指示入力を受け付けたか否かを判別する(ステップS16)。
新たな指示入力を受け付けていない場合(ステップS16;NO)、制御部1は、ステップS15において計時を開始してから時間T3が経過したか否かを判別する(ステップS17)。時間T3が経過していない場合(ステップS17;NO)、制御部1は、引き続きステップS16において、入力部4を介して更なる指示入力を待ち受ける。
新たな指示入力を受け付けた場合は(ステップS16;YES)、制御部1は、アンロックモード移動制御部123として機能し、アンロックモードでカーソル200を制御する(ステップS18)。具体的に説明すると、制御部1は、移動禁止範囲を設けることはなく、受け付けた指示入力に従って表示部5の画面に表示されたカーソル200を移動させる。
アンロックモードでカーソル200を制御すると、制御部1は、処理をステップS15に戻す。ステップS15において、制御部1は、時間T3の計時をリセットし、時間T3を計時し直す。そして、制御部1は、ステップS16において、入力部4を介して更なる指示入力を待ち受ける。
アンロックモードにおいて、計時を開始してから時間T3が経過するまでの間、指示入力を受け付けなかった場合(ステップS17;YES)、制御部1は、処理をステップS1に戻す。そして、制御部1は、ステップS1において、モード切替部124として機能し、動作モードをサーチモードに遷移させる。この遷移は、図4に示すアンロックモードからサーチモードへの遷移に該当する。このとき、動作モードがサーチモードに切り替わったことを使用者に通知するため、制御部1は、図示しないスピーカからチャイム音を出力する。また、制御部1は、表示制御部150として機能し、図3に示したように、表示部5の画面内に、サーチモードで動作していることを示すモード画像211を表示する。
このように、情報処理装置100は、サーチモード、ガイドモード、及び、アンロックモードという3つのモードの間で動作モードを遷移させながら、表示部5の画面に表示されたカーソル200の移動を制御する。
以上説明したように、実施形態1に係る情報処理装置100は、マウスによる指示入力によって単位時間内にカーソル200が移動した量が閾値Rを超えた場合に、動作モードをガイドモードに遷移させ、その指示入力によってカーソル200が移動した向きとは逆向きにカーソル200を移動させる新たな指示入力が受け付けられても、カーソル200を移動させない。そのため、使用者は、特定の向きにマウスを移動させた後、マウスを持ち上げて元の位置に戻し、更に同じ向きにマウスを移動させる、との動作を繰り返さなくても、限られた場所でマウスを往復させるだけで、画面に表示されたカーソル200を、特定の向きに比較的長い距離に亘って移動させることができる。その結果、使用者が例えば神経疾患又は筋疾患等によって運動機能に障害を有するためマウスを持ち上げることが難しい者であっても、少ない負担で画面に表示されたカーソル200を移動させることができ、運動機能に障害を有する者の社会参加機会を拡大することにつながる。
また、マウスではなくスライドパッド又はトラックボールを用いた場合でも同様である。すなわち、スライドパッド又はトラックボール上で特定の向きに指を移動させた後、スライドパッド又はトラックボールから指を上げて元の位置に戻し、更に同じ向きに指を移動させる、との動作を繰り返さなくても、限られた場所で指を往復させるだけで、画面に表示されたカーソル200を、特定の向きに比較的長い距離に亘って移動させることができる。その結果、使用者が例えば神経疾患又は筋疾患等によって運動機能に障害を有するためスライドパッド又はトラックボールから指を離すことが難しい者であっても、少ない負担で画面に表示されたカーソル200を移動させることができる。
また、情報処理装置100は、動作モードとして、カーソル200の移動を制限するガイドモードだけでなく、カーソル200の移動を制限しないアンロックモードを有する。そのため、使用者がガイドを必要としない者である場合にも、情報処理装置100をアンロックモードで動作させることによって、情報処理装置100を通常通り違和感なく使用することができる。
また、情報処理装置100は、予め定められた時間の間指示入力を受け付けなかった場合に、動作モードを遷移させた。これにより、動作モードの切替を行うために、キーボードのキー操作やマウスのクリック操作等を行わなくてよいため、使用者の操作の手間を省くことが出来る。そのため、例えば自由に操作することが難しい者であっても、簡単に動作モードを切り替えることができる。
(変形例1)
上記実施形態1では、禁止範囲設定部130は、カーソル200の移動を禁止する向きの範囲(移動禁止範囲)として、カーソル200の現在位置を原点とする仮想座標(X、Y)における予め設定された4つの範囲のうちから、検出されたカーソル200の移動の向きが含まれる範囲以外の3つの範囲を設定した。しかしながら、本発明において、移動禁止範囲の設定方法はこれに限らない。例えば禁止範囲設定部130は、4以外の数の範囲のうちから移動禁止範囲を設定してもよい。
また、単位時間内にカーソル200が移動した量が閾値Rを超えた場合において、この単位時間内におけるカーソル200の移動の向きとは逆向きへのカーソル200の移動のみを禁止してもよいし、この移動の向き以外の向きへのカーソル200の移動を全て禁止してもよい。すなわち、単位時間内にカーソル200が移動した量が閾値Rを超えた場合において、この単位時間内におけるカーソル200の移動の向きとは逆向きにはカーソル200を移動させず、この移動の向きにカーソル200を移動させるものであれば、他のどの向きへのカーソル200の移動を禁止するかは自由である。
また、本発明において、禁止範囲設定部130は、カーソル200の移動を禁止する向きの範囲として、検出されたカーソル200の移動の向きとの成す角度が予め定められた角度以上離れた向きの範囲を設定してもよい。具体的には図9に示すように、禁止範囲設定部130は、検出した向きが第1象限で45°の角度の向きとなる新たな仮想座標(X2,Y2)を設定する。そして、仮想座標(X2,Y2)における原点から第2象限、第3象限、及び、第4象限への向きを、つまり、検出されたカーソル200の移動の向きに対して±45度以上離れた向きの範囲を、画面上のカーソルの移動を禁止する向きの範囲(移動禁止範囲)として設定する。これにより、ガイドモードに遷移する際に検出されたカーソル200の移動の向きがどの向きであっても、柔軟に移動禁止範囲を設定することができる。
なお、移動禁止範囲を設定するための角度は、45度に限らず、例えば、検出されたカーソル200の移動の向きに対して±15度又は±30度以上離れた向きへカーソル200を移動しないように設定してもよい。
また、実施形態1では、ガイドモードに遷移する際に検出されるカーソル200の移動の向きは、図5(b)に示したように、単位時間の開始時点の位置(原点)からカーソル200の移動量が閾値Rを超えた時点の位置(C点)に向かうベクトルC1の向きであった。しかし、サーチモード移動制御部121は、単位時間内にカーソル200が移動した量が閾値Rを超えた場合、仮想座標における原点から単位時間後におけるカーソル200の位置(C点のように閾値Rの円周上とは限らない。)への向きを検出するようにしてもよい。
(実施形態2)
上述した実施形態1では、マウス等のポインティングデバイスを用いた画面上のカーソル操作に本発明を適用する場合について説明した。これに対して、実施形態2ではタッチパネルにおいて指で画面に接触(タッチ)する操作に本発明を適用する場合について説明する。
実施形態2に係る情報処理装置100の構成は、実施形態1において説明した構成と同様である。但し、入力部4は、表示部5の画面に重畳されたタッチパネル(タッチスクリーンともいう)として構成される。入力受付部110は、画面に重畳されたタッチパネルを介して、使用者によって接触された位置に表示された画像を移動させる指示入力を受け付ける。すなわち、操作対象は、カーソルではなく、画面において使用者によって接触された位置に表示された画像である。
そのため、以下では、実施形態1における説明から、マウスによる入力操作を、使用者の指による接触操作に置き換え、カーソル200の移動制御を、画面において指で接触された画像の移動制御に置き換えて、説明を行う。なお、指の代わりにタッチペン等で画面に接触して操作する場合も同様である。
タッチパネル上での指による入力操作に対するタッチパネルの画面の動作について図10を参照して説明する。使用者は、例えば図10(a)に示すように、タッチパネル上で指の位置を「1」、「2」、「3」、「4」の順に往復移動させる。このとき、使用者の指による入力操作は、指をタッチパネルから離さずに、指をスライド操作(フリック操作ともいう)する。
図10(a)に示すスライド操作によって、ガイドモードでは、表示部5の画面は、図10(b)に示すように「画面A」、「画面B」、「画面B」、「画面C」の順に更新される。なお、図10(b)は、ガイドモードに遷移した際の画像の移動が、図10(a)に示した位置「1」から位置「2」への向き(下向き)への移動であった場合の例である。すなわち、上向きへの画像の移動が禁止されている。
より詳細に説明すると、ガイドモード移動制御部122は、タッチパネル上で指の位置を「1」から「2」に移動させる入力操作を受け付けると、指の移動と同様に、画面に表示された画像を下向き移動させる。その結果、画面Aは画面Bに更新される。これに対して、ガイドモード移動制御部122は、指の位置を「2」から「3」に移動させる入力操作を受け付けても、画面上の画像を移動させない。そのため、画面Bはそのまま更新されない。「2」から「3」への向きは、ガイドモードに遷移した際に画像が移動した「1」から「2」への向きと逆向きであり、画像の移動を禁止する向きであるからである。更に、ガイドモード移動制御部122は、指の位置を「3」から「4」に移動させる入力操作を受け付けると、画面上の画像を移動させる。その結果、画面Bは画面Cに更新される。「3」から「4」に向かう向きは、「1」から「2」への向きと同じ向きであり、画像の移動を禁止する向きではないからである。
このように、ガイドモードにおいて、使用者は、指をタッチパネルから持ち上げる動作をすることなく、限られた場所で指を往復させるだけで、画面を順次切り替えることができる。
これに対して、アンロックモードでは、画像の移動を禁止する向きは設定されていない。そのため、図10(a)に示すように指の位置を「1」、「2」、「3」、「4」の順に往復移動させた場合、表示部5の画面は、図10(c)に示すように、指の移動の通り、「画面A」と「画面B」とを往復する。
以上説明したように、実施形態2に係る情報処理装置100は、タッチパネルを介して受け付けた指による指示入力によって画面に表示された画像が単位時間内に移動した量が閾値Rを超えた場合に、動作モードをガイドモードに遷移させ、その指示入力によって画像が移動した向きとは逆向きに画像を移動させる新たな指示入力が受け付けられても、画像を移動させない。そのため、使用者は、特定の向きに指を移動させた後、指を持ち上げて元の位置に戻し、更に同じ向きに指を移動させる、との動作を繰り返さなくても、限られた場所で指を往復させるだけで、画面に表示された画像を、特定の向きに比較的長い距離に亘って移動させることができる。その結果、使用者が例えば神経疾患又は筋疾患等によって運動機能に障害を有するためタッチパネルから指を離すことが難しい者であっても、少ない負担でタッチパネルのスライド操作(フリック操作)を実行することができ、運動機能に障害を有する者の社会参加機会を拡大することにつながる。
(実施形態3)
実施形態3では、本発明をゲームにおけるキャラクタ画像の移動制御に適用する場合について説明する。
実施形態3に係る情報処理装置100の構成は、実施形態1において説明した構成と同様である。但し、入力部4は、表示部5の画面に重畳されたタッチパネル(タッチスクリーンともいう)として構成される。入力受付部110は、画面に重畳されたタッチパネルを介して、使用者によって接触された位置に表示された画像を移動させる指示入力を受け付ける。すなわち、操作対象は、カーソルではなく、画面において使用者によって接触された位置に表示された画像(特にゲームのキャラクタ画像)である。
そのため、以下では、実施形態1における説明から、マウスによる入力操作を、使用者の指による接触操作に置き換え、カーソル200の移動制御を、画面において指で接触されたキャラクタ画像の移動制御に置き換えて、説明を行う。なお、指の代わりにタッチペン等で画面に接触して操作する場合も同様である。
タッチパネル上での指による入力操作に対するタッチパネルの画面のキャラクタ動作について図11を参照して説明する。使用者は、例えば図11(a)に示すように、タッチパネル上で指の位置を「1」、「2」、「3」、「4」の順に往復移動させる。このとき、使用者の指による入力操作は、指をタッチパネルから離さずに、指をスライド操作(フリック操作ともいう)する。
図11(a)に示すスライド操作によって、ガイドモードでは、キャラクタ画像220は、図11(b)に示すように「1」、「2」、「3」、「4」の順に移動する。なお、図11(b)は、ガイドモードに遷移した際のキャラクタ画像220の移動が、図6に示したように画面内において右上の向きへの移動であった場合の例である。すなわち、図6に示したように、上下左右の4つの範囲のうちのこの移動の向きを含まない3つの範囲が移動禁止範囲として設定されている。
より詳細に説明すると、ガイドモード移動制御部122は、タッチパネル上で指の位置を「1」から「2」に移動させる入力操作を受け付けると、指の移動と同様に、画面上のキャラクタ画像220を「1」から「2」に移動させる。これに対して、ガイドモード移動制御部122は、指の位置を「2」から「3」に移動させる入力操作を受け付けても、画面上のキャラクタ画像220を「2」から移動させない。「2」から「3」への向きは、ガイドモードに遷移した際にキャラクタ画像220が移動した「1」から「2」への向きと逆向きであり、キャラクタ画像220の移動を禁止する向きであるからである。更に、ガイドモード移動制御部122は、指の位置を「3」から「4」に移動させる入力操作を受け付けると、画面上のキャラクタ画像220を「3」から「4」に移動させる。「3」から「4」に向かう向きは、「1」から「2」への向きと同じ向きであり、キャラクタ画像220の移動を禁止する向きではないからである。
このように、ガイドモードにおいて、使用者は、指をタッチパネルから持ち上げる動作をすることなく、限られた場所で指を往復させるだけで、画面上のキャラクタ画像220を特定の向きに順次移動させることができる。そのため、指をタッチパネルから離さない往復操作でキャラクタ画像220を移動制御できるので、キャラクタ画像220をより早く移動操作することが可能になる。
これに対して、アンロックモードでは、キャラクタ画像220の移動を禁止する向き(移動禁止範囲)は設定されていない。そのため、図11(a)に示すように指の位置を「1」、「2」、「3」、「4」の順に往復移動させた場合、キャラクタ画像220は、図11(c)に示すように、指の移動の通り、「1」、「2」、「3」、「4」の順に移動する。そのため、アンロックモードでは、使用者は、自由にキャラクタ画像220を操作することができる。
以上説明したように、実施形態3に係る情報処理装置100は、タッチパネルを介して受け付けた指による指示入力によって画面に表示されたキャラクタ画像220が単位時間内に移動した量が閾値Rを超えた場合に、動作モードをガイドモードに遷移させ、その指示入力によってキャラクタ画像220が移動した向きとは逆向きにキャラクタ画像220を移動させる新たな指示入力が受け付けられても、キャラクタ画像220を移動させない。そのため、使用者は、特定の向きに指を移動させた後、指を持ち上げて元の位置に戻し、更に同じ向きに指を移動させる、との動作を繰り返さなくても、限られた場所で指を往復させるだけで、キャラクタ画像220を、特定の向きに素早く移動させることができる。すなわち、使用者が運動機能に障害を有さない健常者であっても、特にゲームの操作のように、キャラクタ画像220等の操作対象を素早く移動させたい状況がある。実施形態3に係る情報処理装置100によれば、このようなゲームの操作において、少ない負担でキャラクタ画像220等の操作対象を素早く移動させることができる。
(変形例2)
上述した実施形態1から3では、動作モードを遷移させる第1の条件、第2の条件、及び、第3の条件は、それぞれ予め定められた時間T1,T2,T3の間、指示入力を受け付けなかった場合に満たされた。しかしながら、本発明の範囲はこれに限定されることはない。例えば、時間を用いた条件に代えて、クリック入力を用いて動作モードを状態遷移させてもよい。
例えば、マウスの左クリックのみを使用して、1回目のクリックでアンロックモードからサーチモードに遷移させ、2回目のクリックでサーチモードからガイドモードに遷移させ、3回目のクリックでガイドモードからアンロックモードへ遷移させるようにしてもよい。別の方法としては、マウスの右クリックと左クリックとを用いて、サーチモード、ガイドモード、アンロックモードを遷移させても良い。このように、状態遷移の方法は、様々な設定を行うことが出来る。
また、上記実施形態では、情報処理装置100は、CPUを備えていた。しかし、本発明において、情報処理装置100は、CPUの代わりに、ASIC(Application Specific Integrated Circuit)等の専用の制御回路を備えていてもよい。例えば、上記実施形態では、CPUが、入力受付部110、移動制御部120、禁止範囲設定部130、タイマー設定部140、及び、表示制御部150のそれぞれとして機能したが、これら各部は、それぞれ個別のASICによって実現されてもよい。
なお、本発明に係る機能を実現するための構成を予め備えた情報処理装置として提供できることはもとより、プログラムの適用により、既存のパーソナルコンピュータや情報端末機器等を、本発明に係る情報処理装置100として機能させることもできる。すなわち、上記実施形態で例示した情報処理装置100による各機能構成を実現させるためのプログラムを、既存のパーソナルコンピュータや情報端末機器等を制御するCPU等が実行できるように適用することで、本発明に係る情報処理装置100として機能させることができる。また、本発明に係る移動制御方法は、情報処理装置100を用いて実施できる。
また、このようなプログラムの適用方法は任意である。プログラムを、例えば、コンピュータが読取可能な記録媒体(CD−ROM(Compact Disc Read-Only Memory)、DVD(Digital Versatile Disc)、MO(Magneto Optical disc)等)に格納して適用できる他、インターネット等のネットワーク上のストレージにプログラムを格納しておき、これをダウンロードさせることにより適用することもできる。