オブジェクト選択装置及びプログラム
【課題】 小刻みの震えなどの不随意運動を伴う操作者が、表示画面に表示されている複数のオブジェクトから目的のオブジェクトをポインティングデバイスで選択する場合、操作者の意図するオブジェクトを選択するのを容易にする。
【解決手段】 ポインタの速度や位置の移動状況からポインタ操作が不随意運動によるものか随意運動のよるものかを区別する。そして、オブジェクト内の特定の点とポインタとの相対距離に応じて、選択オブジェクトの移動を容認することを特徴とする。
【解決手段】 ポインタの速度や位置の移動状況からポインタ操作が不随意運動によるものか随意運動のよるものかを区別する。そして、オブジェクト内の特定の点とポインタとの相対距離に応じて、選択オブジェクトの移動を容認することを特徴とする。
【発明の詳細な説明】
【技術分野】
【0001】
表示装置に表示されている複数のオブジェクトからユーザーインタフェースを用いて目的のオブジェクトを選択するためのオブジェクト選択技術に関する。
【背景技術】
【0002】
コンピュータ、テレビ、制御盤等の装置において、ユーザーインタフェースを用いて表示装置に表示されている複数のオブジェクトから目的のオブジェクトを選択するための技術としては、例えば特許第3360347号公報、特開平9-16370号公報、特開平6−324839号公報に開示されている技術がある。
【0003】
第一の文献、特許第3360347号公報に開示されている技術は、小さなアイコンが多数表示されている画面における、ポインティング・デバイスを用いたアイコンの選択を容易にすることを目的としている。具体的には、ポインティング・デバイスの操作に応じ、カーソルを移動させるべきアイコンを探索する。探索方法としては、次の3通りが記載されている。第一は、カーソルとの距離が最も近いアイコンを選定する方法である。第二は、予め各々のアイコンを含む領域に分割して定義しておき、カーソル位置が他の領域に進入すると、移動先の領域に属するアイコンを選択する方法である。第3は、またはポインティング・デバイスが操作された方向や速度に応じて移動すべきアイコンを選択する方法である。
【0004】
第二の文献、特開平9-16370号公報に開示されている技術は、ポイントをポインティング手段を用いて表示オブジェクト上に移動させるものである。具体的には、ポインティング手段により供給される方向データの示す方向にある隣の表示オブジェクト上にポイントを移動させる場合に、ポインタが現在位置と異なる表示オブジェクト上に移動したポインタを見逃してしまうことを防止することを目的としている。そのための構成として、ポインティング装置上の方向キーの押下によってポインタをオブジェクトに近づけ、対象とするオブジェクトの強制移動対象領域に入ったら、オブジェクトの表示色を変えるなどにより領域に入ったことを操作者に知らせる。通知により操作者が所定時間ポインタを静止させたら、ポインタを自動的にオブジェクト上に移動する構成としている。
【0005】
第三の文献、特開平6−324839号公報に開示されている技術は、カーソル移動手段によるメニュー項目の選択時に、メニュー項目の機能領域と、それ以外の非機能領域との判別が困難な場合における機能領域を迅速容易、また、確実に選択することを目的としている。具体的な構成としては、カーソル移動が開始からの移動時間または移動距離が所定値を越えた場合には、機能領域(メニュー項目)にカーソルが重なると、そのカーソルを重なった機能領域に強制停止させる。さらにカーソル移動が継続された場合は、指示方向の機能領域を探索し、発見した機能領域にカーソルを移動させるものである。
【0006】
【特許文献1】特許第3360347号公報
【特許文献2】特開平9−16370号公報
【特許文献3】特開平6−324839号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、上記いずれの文献では、不随意運動を伴う操作者に対する操作の向上についての考慮がなされていない。不随意運動とは、自分の意志に反して手足がふるえてしまう症状をさす。例えば、手足が震えるように細かく動く場合(タイプ1)や、突然大きい動作を起こす場合(タイプ2)がある。この不随意運動は、なんらかの目的のために手足を動かそうと手足に力を入れる場合に生じることがある。
【0008】
第一の文献に開示されている技術では、例えばカーソルを最も近いアイコンに選択移動させる場合や領域分割してアイコンを割り当てておく場合、不随意運動によって意図しないアイコンに移動してしまう可能性がある。また、方向や速度または加速度に応じて移動すべきアイコンを選択する場合、特にタイプ2の不随意運動によって意図したものから遠く離れたアイコンを選択することになってしまう可能性が大きい。さらにオブジェクトが大きくなればなるほど、ポインタを自動移動開始位置まで移動する距離が長くなる構成となっている。従って、タイプ1の不随意運動が生じている場合には、意図するアイコンへの的確な移動が困難である。
【0009】
また、第二の文献に開示されている技術では、強制移動対象領域はアイコンを囲むより広い領域とする必要がある。これは、小さいアイコンが多数並ぶ画面上での操作への適用を考慮していないからである。一方、強制移動対象領域の大きさに関らず不随意運動によって意図しないアイコンの強制移動対象領域に入ってしまった場合、ポインタの移動を継続させて強制移動対象領域から抜け出すことが必要となる。従って、入力装置を動かす運動を休みながら行う必要がある操作者の場合、目的以外のオブジェクトの強制移動対象領域にポインタが入ってから出る間は運動を休むことはできない。
【0010】
さらに、第三の文献に開示されている技術では、カーソルの移動距離または移動時間が設定値を超えることを、メニュー領域間での飛び飛びの強制移動の契機としている。また、移動強制の方向は強制停止した場合の指示方向となっている。従って、継続的に不随意運動を生じる操作者の場合、意図しないメニュー領域間での移動が生じてしまう。さらに、強制移動方向も意図した方向とすることが困難となる。
【0011】
本発明は、不随意運動を伴い操作者の意図に対応可能なオブジェクト選択を実現することを目的とする。
【0012】
または、本発明は、随時小刻みな震えを伴い操作者に対して、対応可能なオブジェクト選択を実現することを目的とする。また、突発的に大きな動きを伴う操作者に対しても、意図に沿ったオブジェクト選択を実現することを目的とする。
【課題を解決するための手段】
【0013】
本発明は、不随意運動を随意運動と区別するために、オブジェクト内の特定の点との相対距離に応じて選択オブジェクトの移動を容認することを特徴とする。
【0014】
もしくは、一定の移動速度あるいは移動距離あるいは加速度を有した動きの場合は、不随意運動であると判断し、選択オブジェクトの移動を制限することを特徴とする。
【発明の効果】
【0015】
本発明のオブジェクト選択装置及びプログラムは、オブジェクト内の特定の点に対する相対距離に応じて選択オブジェクトの移動を判断するため、小刻み運動の場合は不随意運動として動きを無視するという利点がある。
【発明を実施するための最良の形態】
【0016】
図1乃至図12を用いて、オブジェクト選択プログラム及び装置の一実施形態を説明する。
【0017】
図1はオブジェクト選択を行う情報処理装置の概略構成である。入力装置101、処理装置102、表示装置103を有している。入力装置101は、マウス、トラックボール、トラックポイント、タッチパッドなどのポインティング・デバイスである。表示装置103は、メモリ104の中の表示用メモリ106に書き込まれたデータを画面に表示する装置である。CRT装置、液晶モニタ装置、PDP表示装置などで実現することができる。
【0018】
処理装置102は、例えばパーソナルコンピュータによって実現する。具体的には、処理装置は、メモリ104、CPU105を有する。表示制御部は、CPU等の指示を受けて表示装置の表示を制御するコントローラである。CPU105は処理装置102全体をコントロールするものであり、Opereation Systemプログラムを実行する。
【0019】
メモリは主記憶メモリ107と表示用メモリ106に大別される。主記憶メモリは、CPU105が実行するためのプログラムやデータを格納する。例えば、本実施の形態の背景とオブジェクトとポインタを表示するプログラム、表示画面上でポインタを移動するプログラム、各種プログラムを記憶するものである。これらのプログラムは、図示しない処理装置102内のハードディスクドライブに格納されており、システム電源投入時または必要に応じてメモリ104に読み出されるものである。オブジェクト選択プログラムを始め、各種のアプリケーションプログラムを実行する。また、表示用メモリは表示装置103が表示する表示データを格納するものである。なお、表示用メモリは主記憶メモリ107と別個の構成としてもよい。
【0020】
操作者が入力装置101を操作することにより、ポインタの移動量と移動方向などの移動データを処理装置102の中の主記憶メモリ107に送信する。さらにCPU105が主記憶メモリ107に格納されているデータとプログラムを用いて本実施の形態を実行する。
【0021】
図2は、パーソナルコンピュータの電源を投入してオペレーティングシステムが動作した後に、本実施の形態のオブジェクト選択プログラムが自動起動された画面を示す。本実施の形態は、文書作成ソフトウェアに文字を入力するためのソフトキーボードの各々のキーボタンをオブジェクトとし、これらのキーボタンへのポインタ移動や選択する例として説明する。なお、図2では、本実施の形態に係る文書作成ソフトウェアとソフトキーボードのみ示しているが、その他のプログラムをマルチウィンドウとして表示可能である。
【0022】
図2の画面は、文書作成ソフトウェア画面201の上に、ソフトキーボード画面202を重ねて表示した状態である。ポインタ203の位置は、ソフトキーボード202が表示された後に、任意のオブジェクトの規定位置に強制的に移動する。文書作成ソフトウェア画面201は、メニューバー204、文章表示領域205、カーソル206、スクロールバー207を有する。メニューバー204は各種機能を実行する際に使用されるもので、文書読み込みなど各種機能をプルダウン形式で表示し、ポインタにより選択される。文章表示領域205は、ソフトキーボード202から入力された文字を表示する。カーソル206は文字入力位置を示す。スクロールバー207は、文章表示領域205をスクロールする際に使用されるものである。ポインタ203により選択しドラッグすることによってスクロールが実行される。
【0023】
ソフトキーボード202は、背景301と、複数のオブジェクト302を有する。本実施の形態では、オブジェクト302は、文字キーか機能キーのどちらかとする。操作者は入力装置101を動かすことにより、ポインタ203を、オブジェクト302、メニューバー204、スクロールバー207の上に移動して選択する操作を行う。文字キー401を選択した場合は、カーソル206の前にそのキーに割り当てられた文字、例えば「あ」という文字が入力される。機能キー402を選択した場合は、カーソル206を一文字分だけ移動する。また、機能キー403を選択した場合は、請求項1に記載した動作モードを切り替える。この動作モードは目折104の主記憶メモリに設けた変数の値を変更することで行う。ここで、メモリ104の主記憶メモリに設けた変数や定数をまとめて図12に一覧表として示す。
【0024】
図12において、区分1は処理中に定数として扱われるか、変数として扱われるかを示す。区分2は、区分1における属性を示す。すなわち、定数においては、操作者による変更を行う扱いとするか否かを区分けたものである。変数においては、フローに関係する変数であるか、操作者による作業変数かを示すものである。さらに、各々の変数・定数に対する符号・説明を示したものである。特に本実施の形態において重要なものを以下に詳細に説明する。
【0025】
ここで、定数S1612は、ソフトキーボード起動時にポインタ移動先とするオブジェクト番号を指定したものである。通常は、ソフトキーボードの中心付近にあるキーボタンを設定しておくと、その次のオブジェクトまでの距離に偏りがなくなるので作業効率が高くなる。しかしながら、この値は自分の好きなオブジェクトに操作者等が指定することも可能である。番号Sは、オブジェクトに割り当てられた番号であり、指定する際は、図3のようにどのキーボタンにどの番号が割り当てられているかを表示するなどして操作者に判別可能とする。
【0026】
α1613は、ポインタを各オブジェクトに移動する際に、移動先とするポインタの位置を指定するためのものである。図4(1)で指定されているオブジェクトの中心とすることも可能であるが、キーボタン上に文字が併せて表示され、みにくい場合などは、ここで設定するα分だけずらすことも可能である。
【0027】
定数k1615は、オブジェクトの設定距離内にポインタがいる場合、ポインタを移動表示させる速度を規定するものである。この値を決めることによって、オブジェクトでのポインタの移動可能領域が大きくすることができ、操作者の不随意運動によるポインタ位置の影響を表示上減少させることができる。
【0028】
動作モード1608とは、ポインタの入力装置による移動操作中に、隣接するオブジェクトがないために、適切な移動先を見つけられない場合の処理を選択するモードである。1つは、オブジェクト全体領域、本実施の形態の場合は、ソフトキーボードの背景領域から外へ移動する処理を選択するものである。もう1つは、隣接するオブジェクトがない場合は、今あるオブジェクトからポインタを移動させずに、背景領域から外への移動を抑止するモードである。このモード選択は、このようにソフトキーボード上の1つのキーボタンに割り当てることもできるし、ポインタデバイスや、図示しないキーボード上の操作、マウスポインタにおける右クリック等の処理で変更させることも可能である。ソフトキーボード処理中は、後者のモードを選択しておくことによって、意図しない不随意動作によって大きな移動データが入力されてしまった場合においても、ポインタがオブジェクト乃至は、ソフトキーボード領域から離れることを防止することができる。引いては、ポインタをもとの状態に戻す処理を省くことができる。
【0029】
設定距離1609とは、図3に示した円の半径である。ポインタが一度オブジェクトの始点近くに移動し、操作者の操作により入力した移動データを累積させておく。このデータの累積が、設定距離を半径とする円から外にでた場合は、オブジェクトの移動処理を実施するものである。上述したように、直円ではなく、楕円や、多角形等の他の図形や、各方向について距離を変更して設定することも可能である。
【0030】
設定速度1610とは、例えば、前回入力された位置から今回入力された位置までの距離、すなわち1回の入力での変位を示すものとする。後述するように、設定速度以上の入力の場合は、そのデータの累積データへの蓄積を抑止する。これは、タイプ2の不随意運動により、急激にポインタの移動データを変更してしまった場合に、その不随意運動による入力を無視することによって、もとの状態へのリカバリ処理を不要とするためである。ただし、設定速度は、例えば秒速で設定する構成とし、一回あたりの距離を処理中に算出する構成としてもよい。
【0031】
設定時間1611とは、あるオブジェクトにポインタが入ってから、ポインタへの移動処理を許可する最端時間を設定するものである。不随意運動が連続して起こることによって連続的にポインタが移動する場合や、新たなオブジェクトへポインタが入ったため操作者が緊張し、ポインタが大きくずれてしまうことを考慮したものである。
【0032】
また、作業変数において、ポインタの移動量とは、入力された移動データのベクトルの大きさを示すものである。また、ポインタの移動方向とは、移動データのベクトルの方向をさすものである。
【0033】
図3は、ポインタ203がオブジェクトの中心から設定距離を越えた時に自動移動先となるオブジェクトをどのように特定するのかを示す図である。本実施の形態、次のオブジェクトへの移動の要否を判断するための始点を、オブジェクトの中心点として説明する。ただし、始点を中心以外の点とすることも可能である。例えば、オブジェクトが点対称でない場合である。円501はオブジェクトの中心から設定距離だけ離れた位置を示す。なお、図3のように、全方向に対して等距離にするのではなく、各方向において設定距離を変更することも可能である。このようにすることで、操作者が特定の方向への不随意運動がある場合に、不随意運動が生じる方向へ幅をもたせることができるからである。
【0034】
図3の場合において、次のオブジェクトを特定する方法は、2つの対角線502で仕切られた4つの領域のどこにポインタが入ったかにより判断する。すなわち、4つの領域にそれぞれ隣接する上下左右にあるオブジェクトを割り当て、移動すべき一つのオブジェクトを特定する。例えば、ポインタ203が領域503に入った時には、下にあるオブジェクト504を特定する。また、例えば、ポインタ203が領域601に入った場合など、隣接するオブジェクトない場合は、オブジェクトが特定できない。この場合の処理については後述する。4つの領域だけではなく、斜め左上、右上、右下、左下を特定するためにオブジェクトを8つの領域に分割する構成とすることもできる。この構成の場合、オブジェクトがある程度大きい場合には、特に操作性を向上させることができる。
【0035】
このように、オブジェクトを複数の領域に分け、領域毎に割り当てられたオブジェクトへ移動する構成とすることによって、入力角度をたもてない不随意運動を伴う操作者の場合においても、意図する方向のオブジェクトへの移動を行うことが容易となる。すなわち、例えば特開平6-324839号公報に開示された技術のように、入力された移動方向の延長線上にあるメニュー項目を選択するようにすると、不随意運動によって意図しない方向へ移動データを入力してしまった場合、意図しない方向へカーソルを移動させることになってしまう。しかしながら、本実施の形態の場合は、どの方向へ移動させたとしても、結果的に意図するオブジェクトが割り当てられた領域への移動データを入力すれば、意図するオブジェクトへの移動が可能である。
【0036】
なお、各キーボタンの番号は、オブジェクト管理のために各々のオブジェクトに割り当てられたものである。図3の場合、番号を左上から右下のオブジェクトへ向かって順番に割付けている。
【0037】
図4は、図3のように割り付けたことを前提として設けたオブジェクト管理表である。図4(1)のTABLE1は背景上の全てのオブジェクトについて中心座標を記憶したものである。601はオブジェクトの番号である。各々のオブジェクトの中心座標がX座標602とY座標603にわかれて二次元で特定されている。なお、TABLE1の中心座標は後述する背景座標系での値である。
【0038】
図4(2)のTABLE2は、オブジェクト毎に移動先のオブジェクトを特定するためのものである。すなわち、各々のオブジェクトにおいて、分割した領域毎に、移動先となるオブジェクト番号を格納したものである。移動先とすべきオブジェクトがない場合は0を記憶する。なお、本実施の形態では、1つのオブジェクトを4つに分割しているため、移動先のオブジェクトも、上下左右合わせて4つ指定している。
【0039】
図5は、画面座標系と背景座標系を説明する図である。入力されたポインタの移動データは、そのまま表示装置に表示されるわけではない。本実施の形態では、入力された移動データと、表示すべきデータを管理するために、2座標系を用いる。すなわち、移動データを背景座標系で管理し、表示データを座面座標系で管理する。
【0040】
画面座標系は表示装置画面901の左下端を原点902とする座標系である。背景座標系は、背景301の左下端903を原点とする座標系である。背景座標系を設けたのは、ソフトキーボードの表示位置を移動可能とするためである。図9のp,qは左下端903の画面座標系における位置座標、w,hは背景301の各々幅と高さである。以下より本実施例を実現するプログラムの処理フローを説明するが、演算対象としての変数や定数は、その名称の後に番号(図12に記載)を付記する。
【0041】
次に、オブジェクト選択処理内容について説明する。図6は、ソフトキーボートを起動した後に、ポインタを初期位置として登録されたオブジェクトの規定位置に移動する初期処理のフローである。
【0042】
ステップ1001で、指示オブジェクト_1617と、フラグ_1616の初期設定をする。ここで、「指示オブジェクト←s」という表記は、指示オブジェクト_1617にs_1612を代入することを意味する。ステップ1002で、次のポインタ位置(NPX,NPY)_1620を、S番目オブジェクトの中心座標(OX,OY)_1623からX方向にα_1613、Y方向に−α_1613だけ離れた位置とする。ステップ1003で、次のポインタ位置(NPx,NPy)_1621を画面座標系の値にする。ステップ1004で、ポインタを次のポインタ位置に移動、すなわち、(NPx,NPy)_1621を表示用メモリ106へデータを書き込こみ、現在のポインタ位置を更新、すなわち、(CPx,CPy)_1622に(NPx,NPy)_1621を代入する。ステップ1005は、今回時刻をタイマー値(処理装置が常に計測している現在時刻)に、滞留時間_1618の値を0に初期設定する。今回時刻_1624はマウス割り込み処理が一度起動されてから次に起動されるまでの経過時間を測るために、滞留時間_1618はポインタがオブジェクトに自動移動してからの経過時間を積算するために設けた変数で、図8の処理で使用する。
【0043】
図7は、入力装置11割り込み処理のフローを示す。すなわち、操作者が入力装置11を操作したことによって、CPU105へ割り込みが発生して優先動作する処理である。ステップ1101で今回時刻_1624を前回時刻_1625に保存し、今回時刻_1624をタイマーの値とする。ステップ1102で、フラグ_1616の値を見ることによりポインタがオブジェクトの中心から設定距離_1609の内側にあるかどうかを判定する。ステップ1103、ステップ1104の内容は各々図9、図11に示す。
【0044】
図8は設定距離の内側にある時の処理フローである。ステップ1201で、ステップ1203で使用する滞留時間_1618と、ステップ1204で使用する経過時間_1619を求める。ステップ1202で、現在ポインタ位置と、マウス101から送られてくるポインタの移動量δl_1627と、移動方向の角度θ_1628とから、次のポインタ位置を求める。操作者側がk_1615の値を変更することでポインタの移動速度の設定を実現する。ステップ1205で、背景座標における次のポインタ位置を求める。ステップ1206で(OX,OY)_1623に現在ポインタがあるオブジェクトの中心座標を代入する。ステップ1207で、次のポインタ位置が設定距離_1609を越えているかを判定する。越えていない場合は、1209で、次のポインタ位置へ移動し、現在のポインタ位置を更新する。越えている場合はステップ1208へ進み、次のポインタ位置に基づき自動移動すべきオブジェクトを特定する。
【0045】
自動移動すべきオブジェクトの特定フローを図9に示す。1301で、次のポインタ位置が図3の4つの領域のうちどの領域にあるのかを探索する。図10がその処理フローである。まず、1401で、オブジェクト中心から次のポインタ位置までの移動量をx軸、y軸について求める。1402で、オブジェクトを4つに分けた領域のうち、上下または左右のどちらかを判定する。さらに、1403で上下のどちらか、1404で左右のどちらかを判定する。ステップ1405,ステップ1406,ステップ1407、ステップ1408は方向_1626に各々、上、下、左、右を代入する。
【0046】
図9に戻り、ステップ1302で、TABLE2_1602より、指示オブジェクト_1617で指定される行と、方向で指定される列で交差するセルの値、すなわちオブジェクト番号をi_1631に代入する。ステップ1303で、オブジェクトが存在するかを判定する。存在しない場合ステップ1304へ進み、存在する場合はステップ1307へ進む。ステップ1304で、次のポインタ位置を、TABLE1_1601のi番目オブジェクトの中心座標とする。ステップ1305で次のポインタ位置を画面座標系の値にすると共に中心位置を補正する。ステップ1306で、i番目のオブジェクトに移動するので指示オブジェクト_1617にi_1631を代入し、滞留時間_1618に0を代入する。ステップ1312で、次のポインタ位置へ移動し、現在のポインタ位置を更新する。ステップ1307で、ポインタの移動動作モード_1608に制限があるかを判定する。制限があれば終了へ進む。制限がない場合は1308へ進む。ステップ1308で次のポインタ位置がオブジェクト上にあるかを判定する。ここで、H_1606、W_1607はオブジェクトの高さ、幅である。ステップ1309は、ポインタがオブジェクト上にないことを示すための処理である。ここで設定した指示オブジェクト_1617は、図11のステップ1503で使用される。ステップ1310で次のポインタ位置を画面座標系の値にする。ステップ1311はポインタが設定距離_1609を越えたことを示すための処理である。ここで設定したフラグ_1311は、図7のステップ1102で使用される。ステップ1311の次は、ステップ1312へ進み終了する。
【0047】
図11はポインタがオブジェクトの中心から設定距離よりも外側に位置している場合の処理フローである。ステップ1501で、現在ポインタ位置と、マウス101から送られてくる移動量δl_1627と、移動方向の角度θ_1628とから、次のポインタ位置を求める。ステップ1502で、次のポインタが背景上にあるかを判定する。背景上にある場合は、画面上でポインタを移動するステップ1513へ進む。背景上にない場合は、ステップ1503へ進む。ステップ1503で、現在のポインタがオブジェクト上にあるかを判定する。オブジェクト上にある場合は、画面上でポインタを移動するステップ1513へ進む。オブジェクト上にない場合はステップ1504へ進み、次のポインタ位置を背景座標系の値にする。ステップ1505で、繰り返し処理を行うためi_1631の初期値を設定する。ステップ1506で、(OX,OY)_1623にi番目オブジェクトの中心座標を代入する。ステップ1507で、次のポインタ位置がi番目のオブジェクト上にあるかを判定する。ポインタがオブジェクト上にない場合、ステップ1508に進み、i_1631を1だけ増加させる。ステップ1509で、i_1631がn_1603以下の場合はステップ1506へ戻る。i_1631がn_1603より大きい場合は、ステップ1513で、次のポインタ位置へ移動し、現在のポインタ位置を更新する。ステップ1507で、次のポインタ位置がi番目のオブジェクト上にあると判定した場合は、ステップ1510に進む。ステップ1510で、次のポインタ位置を(OX,OY)_1623とし、1511で次のポインタ位置を画面座標系の値にすると共に中心位置を補正する。ステップ1512で、ポインタがi番目のオブジェクト上にあることを示すために指示オブジェクト_1617をi_1631に、ポインタが設定距離に入ったことを示すためにフラグ_1616を0に設定するとともに、滞留時間_1618を0に設定する。次にステップ1513を行った後、終了へ進む。
【0048】
このように、本実施の形態では、始点からの設定距離で判断するため、小さいオブジェクトが多数集まっている場合においても、特許3360347号公報記載の技術のように、領域が重なることを考慮する必要がない。すなわち、始点が含まれるオブジェクトがわかっており、その始点からの位置を測ることによって、ポインタが属するオブジェクトから次のオブジェクトへ移動するかどうかを決めるため、たとえオブジェクト同士の設定距離円が重なっていても移動の如何の判断が可能だからである。特許3360347号公報記載の技術の場合は、1つの領域に1つのアイコン等を割り当て、領域へ入ったか否かのみを拠り所としているため、領域が重なった場合は判断することができない。このように隣の領域との距離が狭い場合でも、操作者の不随意運動の程度に応じた距離を設定することができ、ひいては的確なオブジェクト選択が可能となる。
【0049】
なお、本実施の形態では、入力移動データと、実際の画面上でのポインタの位置データの管理をするために、2つの座標系を用いたが、本発明はこれに限るものではない。すなわち、1つの座標系において、入力移動データ自体を主記憶メモリ107などに累積させておくことも可能である。すなわち、実際ならば座標のどこに表示されているべきであるかという状態を把握するとともに、その情報を用いて、次のオブジェクトに移動すべきか否かを判断する構成とすることも可能である。
【0050】
次に、図13から図25を用いて他の実施の形態について説明をする。本実施の形態では、オブジェクトが多数狭い領域に配列されていた第一の実施の形態と異なり、画面上にオブジェクトが散在する場合を説明する。
【0051】
図13は、パーソナルコンピュータの電源投入によりオペレーティングシステムの起動終了後の画面で、プログラム起動用のアイコンであるオブジェクト1701、1702とポインタ203が表示されている。
【0052】
図14は、操作者がマウスを使用してオブジェクト1702の上にポインタを移動し選択動作を行うことにより、プログラムが起動された後の画面である。このプログラムはゲームプログラムで、ゲーム画面1801の中には、地図が描かれた背景1802と矩形のアイコン1803が6個表示されている。また、オブジェクト内の番号は、オブジェクト管理のために割り付けたものである。番号は左のオブジェクトから順に割り付けている。TABLE1_3001とn_3002は、この番号順にオブジェクトの中心座標を記憶したテーブルとオブジェクトの個数である。この時の中心座標は、図18に示すとおり、背景1802の左下端を原点とする背景座標系での値である。
【0053】
図15は、オブジェクト1803の詳細で、点線1901と五角形1902で区切られる領域1903が透明であることを示す。なお、透明でない部分は、五角形1902ではなく、ゲームの内容に応じて城など様々な形状をとって良い。また、点線1901は実際には画面に表示されない。図16は、これらのオブジェクトが、オブジェクトの中心と同じ位置にある円1と円2により3つの領域に分割されていることを示す。
【0054】
図17は、ポインタをオブジェクトに近づけた時に、ポインタがどのように移動するのかを説明する図である。ポインタを移動して、次のポインタ位置座標が背景1802と領域1の境界を越えたときに(図17(1))、領域1の規定位置へ自動移動する(図17(2))。この規定位置は、次のポインタの位置とオブジェクト中心を通る直線と点線1901との交点をとり、この交点と外側の円周上の一番近い点を結ぶ線分の中点とする。さらに、ポインタを移動して、次のポインタ位置座標が外側にある円を越えた時に(図17(3))、領域2の規定位置へ自動移動する。この規定位置は、次のポインタの位置とオブジェクト中心を通る直線と2つの円の中間にある円周(一点鎖線)上との交点とする(図17(4))。さらに、ポインタを移動して、次のポインタ位置座標が内側にある円を越えた時に(図17(5))、領域3の円の中心へ自動移動する(図17(6))。以上は、ポインタをオブジェクトの外側から中心へ向けて移動したときの動作であるが、ポインタをオブジェクト中心から外側へ移動した時にも、同様に次のポインタ位置が境界を越えた時に、外側の新領域の規定位置へ自動移動する。
【0055】
以上の動作を実現するプログラムの処理について説明するが、プログラムが使用する変数や定数をまとめて図25に一覧表として示す。以下より本実施例を実現するプログラムの処理フローを説明するが、演算対象としての変数や定数は、その名称の後に番号(図25に記載)を付記する。
【0056】
図19はゲームプログラムが起動した直後に動作するプログラムの処理フローである。ステップ2401で、図19のマウス割り込み処理で使用するホッピング_3009に0を代入する。ステップ2402で、現在のポインタ位置が背景1802上にあるかを判定し、なければステップ2404でフラグ_3010に0を、ステップ2412で指示オブジェクト_3011に0を代入する。背景1802上にあれば、ステップ2403に進み、フラグ_3010に1を代入する。ステップ2405で現在ポインタ位置を背景座標系の値にする。ステップ2406で繰り返し処理のためi_3024に1を代入する。ステップ2407で(OX,OY)_3016に、i番目のオブジェクトの中心座標を代入し、現在ポインタ位置と中心座標位置との差をX成分、Y成分毎に求める。ステップ2408で現在ポインタ位置がi番目のオブジェクト上にあるかを判定する。あればステップ2411で指示オブジェクトにi_3024を代入し終了する。オブジェクト上になければ、ステップ2409でi_3024を1増加し、ステップ2410でi_3024がn以下であることを判定する。n以下であればステップ2407へ戻る。i_3024がn_3002より大ならばステップ2411へ進み、指示オブジェクトに0を代入し終了する。
【0057】
図20はマウス割り込み処理のフローである。この割り込み処理はオペレーティングシステムが起動した直後から動作するプログラムである。ステップ2501で、現在ポインタ位置と、マウス101から送られてくる移動量δlと移動方向の角度θとから、次のポインタ位置を求める。ここで、現在ポインタ位置(CPx,CPy)_3014の初期値は、オペレーティングシステムの起動時に設定される。ステップ2502でホッピング_3009が1であるかを判定し、1ならばステップ2503へ進み次のポインタ位置へ移動する。1でなければステップ2507へ進む。ステップ2503で、フラグ_3010が0であるかを判定し、0すなわち現在ポインタが背景上になければステップ2507へ進む。現在ポインタが背景上にあればステップ2504へ移動し、指示オブジェクトが0かを判定する。0でない、すなわち現在ポインタ位置がオブジェクト上にあればステップ2506へ進む。現在ポインタ位置がオブジェクト上になければステップ2505へ進む。ステップ2505,2506の次は、ステップ2507で、次のポインタ位置へ移動し、現在のポインタ位置を更新する。
【0058】
図21は現在ポインタ位置がオブジェクト上にない場合の処理フローである。ステップ2601で次のポインタ位置が背景上にあるかを判定し、なければ終了する。背景上にあればステップ2602に進む。ステップ2602で、次のポインタ位置を背景座標系の値にする。ステップ2603で繰り返し処理のためi_3024に初期値を代入する。ステップ2604で(OX,OY)_3016にi番目オブジェクトの中心座標を代入し、次のポインタ位置とi番目オブジェクトの中心座標との差を、X成分、Y成分毎に求める。ステップ2605で次のポインタ位置がi番目のオブジェクト上にあるかを判定する。オブジェクト上になければステップ2606へ進みi_3024を1だけ増加する。ステップ2607でi_3024がn_3002以下であることを判定する。n_3002以下であればステップ2604へ戻る。i_3024がnより大ならば終了へ進む。ステップ2605で次のポインタ位置がi番目のオブジェクト上にあると判定した場合は、ステップ2608へ進み、指示オブジェクトにi_3024を代入する。ステップ2609でオブジェクト中心から次のポインタ位置までの距離L1_3017を求める。ステップ2610で、L1_3017が円1(図16)の半径r1_3007より小さいかを判定する。小さければステップ2611へ進み、L1_3017が円2(図16)の半径r2_3008より小さいかを判定する。小さければ次のポインタ位置は領域3(図216)に進入したことになるので、次のポインタ位置を(OX,OY)_3016とする。ステップ2610でNOと判定されたらステップ2612へ進む。ステップ2611でNOと判定されたらステップ2614へ進む。
【0059】
図22は、現在のポインタがオブジェクト上にある場合の処理フローである。ステップ2701で次のポインタ位置を背景座標系の値にする。ステップ2702で、(OX,OY)_3016に現在ポインタがあるオブジェクトの中心座標を代入し、この中心座標と次のポインタ位置座標との差を求める。ステップ2703で、次のポインタ位置がオブジェクト上にあるかを判定し、オブジェクト上にない場合は、ステップ2704へ進み、指示オブジェクト_3011に0を代入し終了する。オブジェクト上にある場合は、ステップ2705へ進み、オブジェクト中心から次のポインタ位置までの距離L1_3017を求める。ステップ2706でL1_3017が円1(図16)の半径r1_3007より小さいかを判定する。小さければステップ2707へ進み、L1が円2(図16)の半径r2_3008より小さいかを判定する。小さければステップ2709で現在ポインタ位置が領域3(図16)にあるかを判定し、あれば終了、なければステップ2711へ進み次のポインタ位置をオブジェクトの中心座標とする。ステップ2707でNOと判定された場合は、ステップ2710で現在ポインタ位置が領域2(図16)にあるかを判定し、あれば終了、なければステップ2712へ進む。ステップ2706でNOと判定された場合は、ステップ2708で現在ポインタ位置が領域1(図16)にあるかを判定し、あれば終了、なければステップ2713へ進む。
【0060】
図23は次のポインタ位置が領域1(図16)に進入した時の処理で、次のポインタ位置を求めている。図24は次のポインタ位置が領域2(図16)に進入した時の処理で、次のポインタ位置を求めている。以上で請求項6の実施例を終えるが、本実施例では、ゲームプログラムの画面に表示される領域に分割されたオブジェクトが配置された画面は一つとした。複数の画面を持つ場合には、ゲームソフトプログラムが、画面毎に図25の定数情報を持ち、画面が切り替えられた時に、対応するこれらの定数を主記憶メモリ107に書き込めば良い。
【0061】
次に、第一、第二の実施の形態の中間程度にオブジェクトが散在している場合の実施の形態について説明する。
【0062】
図26は、パーソナルコンピュータの電源を投入してオペレーティングシステムが動作した後に、機器運転のシミュレーションプログラムが自動実行された直後の画面で、表示装置画面901の上にシミュレーションプログラムの画面3101とポインタ203が表示された状態である。ポインタ203は、操作者がマウス101を操作して、画面901上の任意の位置にポインタを移動できるものとする。シミュレーションプログラムの画面3101は、運転コースなどの各種指定を行うためのメニューバー3102、ガイダンス表示エリア3103、16個の機器運転用ボタン3104、2個の緊急用ボタン3105、機器運転速度などを表示する8個のメーター3106、機器の状況を示すためインジケーター3107から構成される。操作者は、ガイダンス表示エリア3103に表示される操作ガイダンスやメーター3106、インジケーター3107を見ながら、機器運転用ボタン3104を選択して機器の運転を行う。また、緊急用ボタン3105は、運転中にある条件を満たした時に、マウスで選択されるべきボタンである。以下より、機器運転用ボタン3104と緊急用ボタン3105は、マウス101による選択対象となるので、その名称をオブジェクトと記して説明する。
【0063】
図32は、本実施例を実現するプログラムが使用する定数と変数である。プログラムの説明で、演算対象としての変数や定数を引用する場合は、その名称の後に番号(図32に記載)を付記する。
【0064】
図28はマウス割り込み処理のフローで、オペレーティングシステムが起動した直後から動作するプログラムである。ここで使用している(CPx,CPy)_3709は、オペレーティングシステムの起動時に現在のポインタ位置に初期設定される。ステップ3301で、現在ポインタ位置と、マウス101から送られてくる移動量δl_3712と移動方向の角度δθ_3713とから次のポインタ位置を求める。ここで、現在のポインタ位置と次のポインタ位置は、図27に示すように、表示装置画面901の左下端902を原点とする画面座標系の値である。ステップ3302で、次のポインタ位置へ移動し、現在のポインタ位置を更新する。
【0065】
図29は、シミュレーションプログラムの処理フローである。ステップ3401で、操作者のマウス101のボタン操作により、オペレーティングシステムからのクリックイベントが発生したかを判定する。イベントが発生していない場合は、ステップ3402で、速度_3714やエンジン回転数_3715などを、現在の運転状態に応じて更新する。また、必要に応じてガイダンス表示エリア3103にメッセージを表示することや、インジケータ3107の点灯表示を行う。ステップ3403で、速度_3714が最低速度_3705よりも下がった場合には、ステップ3404で自動移動先_3709に1を代入する。ステップ3405でエンジン回転数_3715が限界_3706を超えた場合には、ステップ3406で自動移動先_3711に2を代入する。ステップ3404、ステップ3406の次は、ステップ3407へ進み、次に選択すべきオブジェクトへポインタを自動移動する処理を行い、ステップ3401へ戻る。ステップ3401で、クリックイベントが発生した場合は、ステップ3408でメニューがクリックされたかを判定する。
【0066】
メニューでない場合は、ステップ3409でオブジェクトがクリックされたかを判定する。オブジェクトがクリックされた場合は、ステップ3410で選択されたオブジェクトに対応する処理を行う。オブジェクトがクリックされていない場合はステップ3401へ戻る。ステップ3408で、メニューがクリックされた場合は、ステップ3411で、メニュー項目の終了をクリックさたれかを判定する。終了がクリックされた場合は、シミュレーションプログラムを終了する。終了がクリックされていない場合は、ステップ3412で、選択されたメニュー項目に対応する処理を行う。ステップ3410とステップ3412の次は、ステップ3401に戻る。
【0067】
図30は、ポインタ自動移動(ステップ3407)の処理フローである。ステップ3501で、次のポインタ位置を、自動移動先_3711で指定されるオブジェクトの中心座標とする。ここで、TABLE1_3701は、自動移動先となるオブジェクトの中心座標を記憶したテーブルである。この中心座標は、図27に示すとおり、シミュレーションプログラムの画面3101の左下端3201を原点とする背景座標系での値である。ステップ3502で、次のポインタ位置を画面座標系の値にすると共に中心位置を補正する。ステップ3503で、次のポインタ位置へ移動し、現在のポインタ位置を更新する。ステップ3504で、ガイダンス表示エリア3103に、MESSAGE_3704から自動移動先_3711をインデックスとしてメッセージデータを取得して表示する。図31は、MESSAGE_3704の内容である。
【0068】
また、本発明は次のような側面を有する。
【0069】
第一に、ディスプレイ画面上に複数個のオブジェクトが配置されている時に、入力装置を動かして目的のオブジェクトへポインタを合わせる指示操作において、オブジェクト間の距離が遠い場合や、オブジェクトが大きい場合は時間がかかるという課題を解決する。また、オブジェクトが特定できない場合に、ポインタが設定距離の外へ移動することを許可すると、不随意運動のある操作者にとっては、ポインタが背景上に移動してしまうため指示操作が難しくなるという課題がある。許可しない場合は、背景の外にあるオブジェクトを指示できないという課題がある。動作モードの設定は、この2つの課題を解決する。
【0070】
従って、表示装置の画面の左下端を原点とする画面座標系を設け、この座標系における次のポインタ位置座標を、現在ポインタ位置座標と、入力装置からのポインタ移動量と移動方向の情報から求め、次のポインタ位置座標にポインタを移動するステップ(プログラムの処理単位)を処理装置に設ける。表示装置の画面上に表示されている背景の左下端を原点とする背景座標系を設け、この座標系における各々のオブジェクトの中心位置座標と、各々のオブジェクトの形状情報を処理装置のメモリに記憶する。このため、オブジェクトの中心位置座標を参照し、次のポインタ位置座標がオブジェクトの中心から設定距離よりも内側にあるか外側にあるかどうかの判定ステップと、外側にあると判定した場合に、次に選択すべきオブジェクトを特定し、特定したオブジェクトの規定位置を求め、その規程位置にポインタを自動移動させるステップを処理装置に設ける。オブジェクトが特定できない場合は、動作モードを判定し設定距離外への移動を許可している場合にのみ、次のポインタ位置座標へポインタを移動するステップと、この動作モードを変更するためのステップを処理装置に設ける。
【0071】
上記構成により、ポインタがオブジェクト中心から設定距離まで到達した時に、ポインタの位置情報に基づき次に選択すべきオブジェクトを特定し、特定されたオブジェクトの規定位置に自動移動するため、入力装置を大きく移動することなく、ポインタをオブジェクトに合わせることができる。また、特定のオブジェクトが見つからない場合は、ポインタがオブジェクトの外へは出ないようにする動作モードにすることで、入力装置を誤ってオブジェクトが存在しない方向に移動した場合でも、ポインタはオブジェクト上に停止しているため、目的のオブジェクトを選択しやすくなる効果がある。なお、背景の外にある別のオブジェクトを指示するには、動作モードを変更する。
【0072】
第二に、次の2つの課題を解決することを要する。一つめは、手指の不随意運動のある人が操作する場合で、ポインタを目的のオブジェクトとは違った方向へ速く動かしたりすることがあり、意図しないオブジェクトへポインタが自動移動してしまうという課題である。二つめは、手指の動作範囲が狭い人が操作する場合で、ポインタを設定距離の外側に移動するまでに時間がかかるという課題である。
【0073】
従って、ユーザーの運動特性に合わせて設定できる定数を処理装置のメモリに記憶する。ポインタがオブジェクトの中心から設定距離の内側に存在する間は、入力装置からのポインタ移動量にこの定数を乗じて画面座標系上での移動量を求め、この移動量だけポインタを移動するステップを処理装置に設ける。
【0074】
上記構成により、入力装置を速く動かしてしまう人にはポインタ速度を遅く設定する、入力装置をゆっくり動かす人や、早く動かすが手指の移動範囲が狭いために入力装置を初期位置に戻して再び移動する操作を繰り返す人に対しては、ポインタ移動速度を速く設定することにより、容易に設定距離を越える位置にポインタを移動できる。
【0075】
第三に、第一の構成を実施した時に起こる課題で、操作者の中には、緊張が高まる等の原因から、入力装置を急激な速度で意図しない方向へ動かした時に、ポインタは意図しないオブジェクトへ自動移動するという課題を解決する。そのための構成として、入力装置からポインタ移動量が処理装置に送られた時の時刻を処理装置で記憶するステップと、送られて来た移動量を前回移動量が送られてきた時からの経過時間で除して入力装置の移動速度を計算し、この移動速度が設定速度よりも大きい場合はポインタを移動しないことにするステップを処理装置に設ける。この構成により、不随意運動により入力装置を急激な速度で動かした場合でもポインタは停止したままとなるので、目的外のオブジェクトへポインタが自動移動することを防ぐことができる。
【0076】
第四に、第一の構成を実施した時に起こる課題で、操作者は、ポインタが目的のオブジェクトの規定位置に自動移動した直後に、ポインタ移動停止のために入力装置を操作するが、操作者の運動特性によりこの操作が遅れ、さらに別のオブジェクトへポインタが自動移動するという課題を解決する。ポインタをオブジェクトに自動移動させた直後に、タイマーで時間の計測を開始し、設定時間を経過しない間は、入力装置からポインタ移動量の情報が送られてきても、ポインタを移動しないことにするステップを処理装置に設ける。この構成により、操作者は、ポインタが目的のオブジェクトに自動移動したことを確認し入力装置の動きを直ちに止める動作をすることが必要となるが、操作者の運動特性によりこの動作ができない場合がある。このような場合に、無効時間を設けることで、目的のオブジェクトに自動移動した後にまた別のオブジェクトへ移動してしまうことを防ぐ効果がある。
【0077】
第五に、操作者が、背景からオブジェクトにポインタを移動する操作において、ポインタがオブジェクトと背景の境界をわずかに越えた位置に移動した後に、操作者はオブジェクト選択のための動作として例えば入力装置に付いているボタンを押すが、ボタンを押す動作の影響でポインタがオブジェクトの外の方向へ移動してしまい、オブジェクトが選択できないという課題と、ポインタがオブジェクトと背景の境界のわずか手前の位置に来た時に、境界を越えたと誤認識して、オブジェクト選択のための動作をしてしまう課題を解決する。そのための構成として、オブジェクトの形状情報と中心位置座標を参照して、ポインタが背景からオブジェクト上に移動するかどうかの判定ステップと、移動すると判定した場合に、オブジェクト内の規定位置を求め、その規程位置にポインタを自動移動させるステップを処理装置に設ける。
【0078】
第六に、オブジェクトの領域が複数に分割されて、領域によって選択した結果により起こる事象(例えば、属性情報を表示する)が異なり、オブジェクト上に境界線が明示されていない場合は、ポインタが目的の領域に入っているのかどうかが、オブジェクト選択動作をして初めて判別するという課題と、領域の境界を越える位置までポインタを移動した時に、オブジェクトの特定領域を選択するために、入力装置を操作するが、その操作の影響でポインタが元の領域に戻ってしまい、オブジェクトの特定領域が選択できないという課題を解決する。
【0079】
上記課題のため、オブジェクト領域の分割情報を処理装置のメモリに記憶する。次のポインタ位置座標が境界を越えた時に、この分割情報を参照してその領域の規定位置を求めるステップと、求めた規定位置へポインタを自動移動するステップを処理装置に設ける。
【0080】
第五、第六の構成により、ポインタがオブジェクトの境界を越えればオブジェクト規定位置にポインタが移動するので、オブジェクトの選択操作をした時にポインタの位置がずれて選択できない現象や、ポインタがオブジェクト内に入ったという誤認識がなくなる。
【0081】
また、表示画面上に、多くのオブジェクトが表示されていて、通常は操作者が入力装置を使用し、その中から良く使う数個のオブジェクトを選択して操作している時に、処理装置内のプログラムの条件判定により、次に選択すべきオブジェクトが決定されるような場合に、操作者はそのオブジェクトへポインタを移動しなければならないという課題を解決する。
【0082】
上記課題のため、処理装置のプログラムの条件判定により次に選択すべきオブジェクトの中心位置座標を処理装置のメモリに記憶する。プログラムの条件判定を満たした場合に、その中心位置座標から規定位置を求め、その規定位置へポインタを自動移動するステップを処理装置に設ける。この構成により、通常は任意にオブジェクトを指示する操作を行っているが、処理装置の条件判定により指示すべきオブシェクトが決まった時に、操作者はそのオブジェクトを探して指示する必要がなくなり、直ぐに選択操作をすることができる。
【図面の簡単な説明】
【0083】
【図1】オブジェクト選択方式を実現するパーソナルコンピュータの概略構成の一例を示す図である。
【図2】文書作成ソフトウェアとソフトキーボードが自動実行された直後の画面の一例を示す図である。
【図3】オブジェクトの特定方法の一例を示す図である。
【図4】オブジェクト管理表の一例を示す図である。
【図5】画面座標系と背景座標系の一例を示す図である。
【図6】ソフトキーボード起動時の初期処理のフローの一例を示す図である。
【図7】マウス割り込み処理フローの一例を示す図である。
【図8】設定距離内での処理フローの一例を示す図である。
【図9】オブジェクト特定処理フローの一例を示す図である。
【図10】オブジェクト方向探索処理フローの一例を示す図である。
【図11】設定距離外での処理フローの一例を示す図である。
【図12】プログラムで使用する定数及び変数の一例を示す図である。
【図13】オペレーティングシステム起動後の画面の一例を示す図である。
【図14】ゲームプログラムの画面の一例を示す図である。
【図15】オブジェクトの詳細の一例を示す図である。
【図16】オブジェクトの領域の一例を示す図である。
【図17】オブジェクトの領域へのポインタ自動移動の一例を示す図である。
【図18】オブジェクト番号の割付けの一例を示す図である。
【図19】画面座標系と背景座標系の一例を示す図である。
【図20】ゲームプログラム起動時の初期処理のフローの一例を示す図である。
【図21】マウス割り込み処理フローの一例を示す図である。
【図22】ポインタがオブジェクト上にある場合の処理フローの一例を示す図である。
【図23】領域1進入処理フローの一例を示す図である。
【図24】領域2進入処理フローの一例を示す図である。
【図25】プログラムで使用する定数及び変数の一例を示す図である。
【図26】シミュレーションプログラムの画面の一例を示す図である。
【図27】画面座標系と背景座標系の一例を示す図である。
【図28】マウス割り込み処理フローの一例を示す図である。
【図29】シミュレーションプログラムの処理フローの一例を示す図である。
【図30】ポインタ自動移動の処理フローの一例を示す図である。
【図31】MESSAGEの内容の一例を示す図である。
【図32】プログラムで使用する定数及び変数の一例を示す図である。
【符号の説明】
【0084】
101…入力装置、102…メモリ、103…CPU、104…表示部、105…表示装置、201…文書作成ソフトウェア画面、202…ソフトキーボード、203…ポインタ、204…メニュー、205…文章表示領域、206…文字入力カーソル、207…スクロールバー、301…背景、302…キー、401…文字キー、402…機能キー(カーソル移動)、403…機能キー(動作モード切替)、501…設定距離、502…対角線、503…下の領域、504…下に配置しキー、601…左の領域、901…表示装置画面、902…画面座標系の原点、903…背景座標系の原点、1701…プログラム起動用のアイコン、1702…ゲームプログラム起動用のアイコン、1801…ゲーム画面、1802…背景、1803…アイコン、1901…アイコンと背景との境界、1902…透明部分と不透明部分との境界、1903…透明部分、3101…シミュレーションプログラムの画面、3102…メニューバー、3103…ガイダンス表示エリア、3104…機器運転用ボタン、3105…緊急用ボタン、3106…メーター、3107…インジケーター、3201…背景座標系の原点
【技術分野】
【0001】
表示装置に表示されている複数のオブジェクトからユーザーインタフェースを用いて目的のオブジェクトを選択するためのオブジェクト選択技術に関する。
【背景技術】
【0002】
コンピュータ、テレビ、制御盤等の装置において、ユーザーインタフェースを用いて表示装置に表示されている複数のオブジェクトから目的のオブジェクトを選択するための技術としては、例えば特許第3360347号公報、特開平9-16370号公報、特開平6−324839号公報に開示されている技術がある。
【0003】
第一の文献、特許第3360347号公報に開示されている技術は、小さなアイコンが多数表示されている画面における、ポインティング・デバイスを用いたアイコンの選択を容易にすることを目的としている。具体的には、ポインティング・デバイスの操作に応じ、カーソルを移動させるべきアイコンを探索する。探索方法としては、次の3通りが記載されている。第一は、カーソルとの距離が最も近いアイコンを選定する方法である。第二は、予め各々のアイコンを含む領域に分割して定義しておき、カーソル位置が他の領域に進入すると、移動先の領域に属するアイコンを選択する方法である。第3は、またはポインティング・デバイスが操作された方向や速度に応じて移動すべきアイコンを選択する方法である。
【0004】
第二の文献、特開平9-16370号公報に開示されている技術は、ポイントをポインティング手段を用いて表示オブジェクト上に移動させるものである。具体的には、ポインティング手段により供給される方向データの示す方向にある隣の表示オブジェクト上にポイントを移動させる場合に、ポインタが現在位置と異なる表示オブジェクト上に移動したポインタを見逃してしまうことを防止することを目的としている。そのための構成として、ポインティング装置上の方向キーの押下によってポインタをオブジェクトに近づけ、対象とするオブジェクトの強制移動対象領域に入ったら、オブジェクトの表示色を変えるなどにより領域に入ったことを操作者に知らせる。通知により操作者が所定時間ポインタを静止させたら、ポインタを自動的にオブジェクト上に移動する構成としている。
【0005】
第三の文献、特開平6−324839号公報に開示されている技術は、カーソル移動手段によるメニュー項目の選択時に、メニュー項目の機能領域と、それ以外の非機能領域との判別が困難な場合における機能領域を迅速容易、また、確実に選択することを目的としている。具体的な構成としては、カーソル移動が開始からの移動時間または移動距離が所定値を越えた場合には、機能領域(メニュー項目)にカーソルが重なると、そのカーソルを重なった機能領域に強制停止させる。さらにカーソル移動が継続された場合は、指示方向の機能領域を探索し、発見した機能領域にカーソルを移動させるものである。
【0006】
【特許文献1】特許第3360347号公報
【特許文献2】特開平9−16370号公報
【特許文献3】特開平6−324839号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、上記いずれの文献では、不随意運動を伴う操作者に対する操作の向上についての考慮がなされていない。不随意運動とは、自分の意志に反して手足がふるえてしまう症状をさす。例えば、手足が震えるように細かく動く場合(タイプ1)や、突然大きい動作を起こす場合(タイプ2)がある。この不随意運動は、なんらかの目的のために手足を動かそうと手足に力を入れる場合に生じることがある。
【0008】
第一の文献に開示されている技術では、例えばカーソルを最も近いアイコンに選択移動させる場合や領域分割してアイコンを割り当てておく場合、不随意運動によって意図しないアイコンに移動してしまう可能性がある。また、方向や速度または加速度に応じて移動すべきアイコンを選択する場合、特にタイプ2の不随意運動によって意図したものから遠く離れたアイコンを選択することになってしまう可能性が大きい。さらにオブジェクトが大きくなればなるほど、ポインタを自動移動開始位置まで移動する距離が長くなる構成となっている。従って、タイプ1の不随意運動が生じている場合には、意図するアイコンへの的確な移動が困難である。
【0009】
また、第二の文献に開示されている技術では、強制移動対象領域はアイコンを囲むより広い領域とする必要がある。これは、小さいアイコンが多数並ぶ画面上での操作への適用を考慮していないからである。一方、強制移動対象領域の大きさに関らず不随意運動によって意図しないアイコンの強制移動対象領域に入ってしまった場合、ポインタの移動を継続させて強制移動対象領域から抜け出すことが必要となる。従って、入力装置を動かす運動を休みながら行う必要がある操作者の場合、目的以外のオブジェクトの強制移動対象領域にポインタが入ってから出る間は運動を休むことはできない。
【0010】
さらに、第三の文献に開示されている技術では、カーソルの移動距離または移動時間が設定値を超えることを、メニュー領域間での飛び飛びの強制移動の契機としている。また、移動強制の方向は強制停止した場合の指示方向となっている。従って、継続的に不随意運動を生じる操作者の場合、意図しないメニュー領域間での移動が生じてしまう。さらに、強制移動方向も意図した方向とすることが困難となる。
【0011】
本発明は、不随意運動を伴い操作者の意図に対応可能なオブジェクト選択を実現することを目的とする。
【0012】
または、本発明は、随時小刻みな震えを伴い操作者に対して、対応可能なオブジェクト選択を実現することを目的とする。また、突発的に大きな動きを伴う操作者に対しても、意図に沿ったオブジェクト選択を実現することを目的とする。
【課題を解決するための手段】
【0013】
本発明は、不随意運動を随意運動と区別するために、オブジェクト内の特定の点との相対距離に応じて選択オブジェクトの移動を容認することを特徴とする。
【0014】
もしくは、一定の移動速度あるいは移動距離あるいは加速度を有した動きの場合は、不随意運動であると判断し、選択オブジェクトの移動を制限することを特徴とする。
【発明の効果】
【0015】
本発明のオブジェクト選択装置及びプログラムは、オブジェクト内の特定の点に対する相対距離に応じて選択オブジェクトの移動を判断するため、小刻み運動の場合は不随意運動として動きを無視するという利点がある。
【発明を実施するための最良の形態】
【0016】
図1乃至図12を用いて、オブジェクト選択プログラム及び装置の一実施形態を説明する。
【0017】
図1はオブジェクト選択を行う情報処理装置の概略構成である。入力装置101、処理装置102、表示装置103を有している。入力装置101は、マウス、トラックボール、トラックポイント、タッチパッドなどのポインティング・デバイスである。表示装置103は、メモリ104の中の表示用メモリ106に書き込まれたデータを画面に表示する装置である。CRT装置、液晶モニタ装置、PDP表示装置などで実現することができる。
【0018】
処理装置102は、例えばパーソナルコンピュータによって実現する。具体的には、処理装置は、メモリ104、CPU105を有する。表示制御部は、CPU等の指示を受けて表示装置の表示を制御するコントローラである。CPU105は処理装置102全体をコントロールするものであり、Opereation Systemプログラムを実行する。
【0019】
メモリは主記憶メモリ107と表示用メモリ106に大別される。主記憶メモリは、CPU105が実行するためのプログラムやデータを格納する。例えば、本実施の形態の背景とオブジェクトとポインタを表示するプログラム、表示画面上でポインタを移動するプログラム、各種プログラムを記憶するものである。これらのプログラムは、図示しない処理装置102内のハードディスクドライブに格納されており、システム電源投入時または必要に応じてメモリ104に読み出されるものである。オブジェクト選択プログラムを始め、各種のアプリケーションプログラムを実行する。また、表示用メモリは表示装置103が表示する表示データを格納するものである。なお、表示用メモリは主記憶メモリ107と別個の構成としてもよい。
【0020】
操作者が入力装置101を操作することにより、ポインタの移動量と移動方向などの移動データを処理装置102の中の主記憶メモリ107に送信する。さらにCPU105が主記憶メモリ107に格納されているデータとプログラムを用いて本実施の形態を実行する。
【0021】
図2は、パーソナルコンピュータの電源を投入してオペレーティングシステムが動作した後に、本実施の形態のオブジェクト選択プログラムが自動起動された画面を示す。本実施の形態は、文書作成ソフトウェアに文字を入力するためのソフトキーボードの各々のキーボタンをオブジェクトとし、これらのキーボタンへのポインタ移動や選択する例として説明する。なお、図2では、本実施の形態に係る文書作成ソフトウェアとソフトキーボードのみ示しているが、その他のプログラムをマルチウィンドウとして表示可能である。
【0022】
図2の画面は、文書作成ソフトウェア画面201の上に、ソフトキーボード画面202を重ねて表示した状態である。ポインタ203の位置は、ソフトキーボード202が表示された後に、任意のオブジェクトの規定位置に強制的に移動する。文書作成ソフトウェア画面201は、メニューバー204、文章表示領域205、カーソル206、スクロールバー207を有する。メニューバー204は各種機能を実行する際に使用されるもので、文書読み込みなど各種機能をプルダウン形式で表示し、ポインタにより選択される。文章表示領域205は、ソフトキーボード202から入力された文字を表示する。カーソル206は文字入力位置を示す。スクロールバー207は、文章表示領域205をスクロールする際に使用されるものである。ポインタ203により選択しドラッグすることによってスクロールが実行される。
【0023】
ソフトキーボード202は、背景301と、複数のオブジェクト302を有する。本実施の形態では、オブジェクト302は、文字キーか機能キーのどちらかとする。操作者は入力装置101を動かすことにより、ポインタ203を、オブジェクト302、メニューバー204、スクロールバー207の上に移動して選択する操作を行う。文字キー401を選択した場合は、カーソル206の前にそのキーに割り当てられた文字、例えば「あ」という文字が入力される。機能キー402を選択した場合は、カーソル206を一文字分だけ移動する。また、機能キー403を選択した場合は、請求項1に記載した動作モードを切り替える。この動作モードは目折104の主記憶メモリに設けた変数の値を変更することで行う。ここで、メモリ104の主記憶メモリに設けた変数や定数をまとめて図12に一覧表として示す。
【0024】
図12において、区分1は処理中に定数として扱われるか、変数として扱われるかを示す。区分2は、区分1における属性を示す。すなわち、定数においては、操作者による変更を行う扱いとするか否かを区分けたものである。変数においては、フローに関係する変数であるか、操作者による作業変数かを示すものである。さらに、各々の変数・定数に対する符号・説明を示したものである。特に本実施の形態において重要なものを以下に詳細に説明する。
【0025】
ここで、定数S1612は、ソフトキーボード起動時にポインタ移動先とするオブジェクト番号を指定したものである。通常は、ソフトキーボードの中心付近にあるキーボタンを設定しておくと、その次のオブジェクトまでの距離に偏りがなくなるので作業効率が高くなる。しかしながら、この値は自分の好きなオブジェクトに操作者等が指定することも可能である。番号Sは、オブジェクトに割り当てられた番号であり、指定する際は、図3のようにどのキーボタンにどの番号が割り当てられているかを表示するなどして操作者に判別可能とする。
【0026】
α1613は、ポインタを各オブジェクトに移動する際に、移動先とするポインタの位置を指定するためのものである。図4(1)で指定されているオブジェクトの中心とすることも可能であるが、キーボタン上に文字が併せて表示され、みにくい場合などは、ここで設定するα分だけずらすことも可能である。
【0027】
定数k1615は、オブジェクトの設定距離内にポインタがいる場合、ポインタを移動表示させる速度を規定するものである。この値を決めることによって、オブジェクトでのポインタの移動可能領域が大きくすることができ、操作者の不随意運動によるポインタ位置の影響を表示上減少させることができる。
【0028】
動作モード1608とは、ポインタの入力装置による移動操作中に、隣接するオブジェクトがないために、適切な移動先を見つけられない場合の処理を選択するモードである。1つは、オブジェクト全体領域、本実施の形態の場合は、ソフトキーボードの背景領域から外へ移動する処理を選択するものである。もう1つは、隣接するオブジェクトがない場合は、今あるオブジェクトからポインタを移動させずに、背景領域から外への移動を抑止するモードである。このモード選択は、このようにソフトキーボード上の1つのキーボタンに割り当てることもできるし、ポインタデバイスや、図示しないキーボード上の操作、マウスポインタにおける右クリック等の処理で変更させることも可能である。ソフトキーボード処理中は、後者のモードを選択しておくことによって、意図しない不随意動作によって大きな移動データが入力されてしまった場合においても、ポインタがオブジェクト乃至は、ソフトキーボード領域から離れることを防止することができる。引いては、ポインタをもとの状態に戻す処理を省くことができる。
【0029】
設定距離1609とは、図3に示した円の半径である。ポインタが一度オブジェクトの始点近くに移動し、操作者の操作により入力した移動データを累積させておく。このデータの累積が、設定距離を半径とする円から外にでた場合は、オブジェクトの移動処理を実施するものである。上述したように、直円ではなく、楕円や、多角形等の他の図形や、各方向について距離を変更して設定することも可能である。
【0030】
設定速度1610とは、例えば、前回入力された位置から今回入力された位置までの距離、すなわち1回の入力での変位を示すものとする。後述するように、設定速度以上の入力の場合は、そのデータの累積データへの蓄積を抑止する。これは、タイプ2の不随意運動により、急激にポインタの移動データを変更してしまった場合に、その不随意運動による入力を無視することによって、もとの状態へのリカバリ処理を不要とするためである。ただし、設定速度は、例えば秒速で設定する構成とし、一回あたりの距離を処理中に算出する構成としてもよい。
【0031】
設定時間1611とは、あるオブジェクトにポインタが入ってから、ポインタへの移動処理を許可する最端時間を設定するものである。不随意運動が連続して起こることによって連続的にポインタが移動する場合や、新たなオブジェクトへポインタが入ったため操作者が緊張し、ポインタが大きくずれてしまうことを考慮したものである。
【0032】
また、作業変数において、ポインタの移動量とは、入力された移動データのベクトルの大きさを示すものである。また、ポインタの移動方向とは、移動データのベクトルの方向をさすものである。
【0033】
図3は、ポインタ203がオブジェクトの中心から設定距離を越えた時に自動移動先となるオブジェクトをどのように特定するのかを示す図である。本実施の形態、次のオブジェクトへの移動の要否を判断するための始点を、オブジェクトの中心点として説明する。ただし、始点を中心以外の点とすることも可能である。例えば、オブジェクトが点対称でない場合である。円501はオブジェクトの中心から設定距離だけ離れた位置を示す。なお、図3のように、全方向に対して等距離にするのではなく、各方向において設定距離を変更することも可能である。このようにすることで、操作者が特定の方向への不随意運動がある場合に、不随意運動が生じる方向へ幅をもたせることができるからである。
【0034】
図3の場合において、次のオブジェクトを特定する方法は、2つの対角線502で仕切られた4つの領域のどこにポインタが入ったかにより判断する。すなわち、4つの領域にそれぞれ隣接する上下左右にあるオブジェクトを割り当て、移動すべき一つのオブジェクトを特定する。例えば、ポインタ203が領域503に入った時には、下にあるオブジェクト504を特定する。また、例えば、ポインタ203が領域601に入った場合など、隣接するオブジェクトない場合は、オブジェクトが特定できない。この場合の処理については後述する。4つの領域だけではなく、斜め左上、右上、右下、左下を特定するためにオブジェクトを8つの領域に分割する構成とすることもできる。この構成の場合、オブジェクトがある程度大きい場合には、特に操作性を向上させることができる。
【0035】
このように、オブジェクトを複数の領域に分け、領域毎に割り当てられたオブジェクトへ移動する構成とすることによって、入力角度をたもてない不随意運動を伴う操作者の場合においても、意図する方向のオブジェクトへの移動を行うことが容易となる。すなわち、例えば特開平6-324839号公報に開示された技術のように、入力された移動方向の延長線上にあるメニュー項目を選択するようにすると、不随意運動によって意図しない方向へ移動データを入力してしまった場合、意図しない方向へカーソルを移動させることになってしまう。しかしながら、本実施の形態の場合は、どの方向へ移動させたとしても、結果的に意図するオブジェクトが割り当てられた領域への移動データを入力すれば、意図するオブジェクトへの移動が可能である。
【0036】
なお、各キーボタンの番号は、オブジェクト管理のために各々のオブジェクトに割り当てられたものである。図3の場合、番号を左上から右下のオブジェクトへ向かって順番に割付けている。
【0037】
図4は、図3のように割り付けたことを前提として設けたオブジェクト管理表である。図4(1)のTABLE1は背景上の全てのオブジェクトについて中心座標を記憶したものである。601はオブジェクトの番号である。各々のオブジェクトの中心座標がX座標602とY座標603にわかれて二次元で特定されている。なお、TABLE1の中心座標は後述する背景座標系での値である。
【0038】
図4(2)のTABLE2は、オブジェクト毎に移動先のオブジェクトを特定するためのものである。すなわち、各々のオブジェクトにおいて、分割した領域毎に、移動先となるオブジェクト番号を格納したものである。移動先とすべきオブジェクトがない場合は0を記憶する。なお、本実施の形態では、1つのオブジェクトを4つに分割しているため、移動先のオブジェクトも、上下左右合わせて4つ指定している。
【0039】
図5は、画面座標系と背景座標系を説明する図である。入力されたポインタの移動データは、そのまま表示装置に表示されるわけではない。本実施の形態では、入力された移動データと、表示すべきデータを管理するために、2座標系を用いる。すなわち、移動データを背景座標系で管理し、表示データを座面座標系で管理する。
【0040】
画面座標系は表示装置画面901の左下端を原点902とする座標系である。背景座標系は、背景301の左下端903を原点とする座標系である。背景座標系を設けたのは、ソフトキーボードの表示位置を移動可能とするためである。図9のp,qは左下端903の画面座標系における位置座標、w,hは背景301の各々幅と高さである。以下より本実施例を実現するプログラムの処理フローを説明するが、演算対象としての変数や定数は、その名称の後に番号(図12に記載)を付記する。
【0041】
次に、オブジェクト選択処理内容について説明する。図6は、ソフトキーボートを起動した後に、ポインタを初期位置として登録されたオブジェクトの規定位置に移動する初期処理のフローである。
【0042】
ステップ1001で、指示オブジェクト_1617と、フラグ_1616の初期設定をする。ここで、「指示オブジェクト←s」という表記は、指示オブジェクト_1617にs_1612を代入することを意味する。ステップ1002で、次のポインタ位置(NPX,NPY)_1620を、S番目オブジェクトの中心座標(OX,OY)_1623からX方向にα_1613、Y方向に−α_1613だけ離れた位置とする。ステップ1003で、次のポインタ位置(NPx,NPy)_1621を画面座標系の値にする。ステップ1004で、ポインタを次のポインタ位置に移動、すなわち、(NPx,NPy)_1621を表示用メモリ106へデータを書き込こみ、現在のポインタ位置を更新、すなわち、(CPx,CPy)_1622に(NPx,NPy)_1621を代入する。ステップ1005は、今回時刻をタイマー値(処理装置が常に計測している現在時刻)に、滞留時間_1618の値を0に初期設定する。今回時刻_1624はマウス割り込み処理が一度起動されてから次に起動されるまでの経過時間を測るために、滞留時間_1618はポインタがオブジェクトに自動移動してからの経過時間を積算するために設けた変数で、図8の処理で使用する。
【0043】
図7は、入力装置11割り込み処理のフローを示す。すなわち、操作者が入力装置11を操作したことによって、CPU105へ割り込みが発生して優先動作する処理である。ステップ1101で今回時刻_1624を前回時刻_1625に保存し、今回時刻_1624をタイマーの値とする。ステップ1102で、フラグ_1616の値を見ることによりポインタがオブジェクトの中心から設定距離_1609の内側にあるかどうかを判定する。ステップ1103、ステップ1104の内容は各々図9、図11に示す。
【0044】
図8は設定距離の内側にある時の処理フローである。ステップ1201で、ステップ1203で使用する滞留時間_1618と、ステップ1204で使用する経過時間_1619を求める。ステップ1202で、現在ポインタ位置と、マウス101から送られてくるポインタの移動量δl_1627と、移動方向の角度θ_1628とから、次のポインタ位置を求める。操作者側がk_1615の値を変更することでポインタの移動速度の設定を実現する。ステップ1205で、背景座標における次のポインタ位置を求める。ステップ1206で(OX,OY)_1623に現在ポインタがあるオブジェクトの中心座標を代入する。ステップ1207で、次のポインタ位置が設定距離_1609を越えているかを判定する。越えていない場合は、1209で、次のポインタ位置へ移動し、現在のポインタ位置を更新する。越えている場合はステップ1208へ進み、次のポインタ位置に基づき自動移動すべきオブジェクトを特定する。
【0045】
自動移動すべきオブジェクトの特定フローを図9に示す。1301で、次のポインタ位置が図3の4つの領域のうちどの領域にあるのかを探索する。図10がその処理フローである。まず、1401で、オブジェクト中心から次のポインタ位置までの移動量をx軸、y軸について求める。1402で、オブジェクトを4つに分けた領域のうち、上下または左右のどちらかを判定する。さらに、1403で上下のどちらか、1404で左右のどちらかを判定する。ステップ1405,ステップ1406,ステップ1407、ステップ1408は方向_1626に各々、上、下、左、右を代入する。
【0046】
図9に戻り、ステップ1302で、TABLE2_1602より、指示オブジェクト_1617で指定される行と、方向で指定される列で交差するセルの値、すなわちオブジェクト番号をi_1631に代入する。ステップ1303で、オブジェクトが存在するかを判定する。存在しない場合ステップ1304へ進み、存在する場合はステップ1307へ進む。ステップ1304で、次のポインタ位置を、TABLE1_1601のi番目オブジェクトの中心座標とする。ステップ1305で次のポインタ位置を画面座標系の値にすると共に中心位置を補正する。ステップ1306で、i番目のオブジェクトに移動するので指示オブジェクト_1617にi_1631を代入し、滞留時間_1618に0を代入する。ステップ1312で、次のポインタ位置へ移動し、現在のポインタ位置を更新する。ステップ1307で、ポインタの移動動作モード_1608に制限があるかを判定する。制限があれば終了へ進む。制限がない場合は1308へ進む。ステップ1308で次のポインタ位置がオブジェクト上にあるかを判定する。ここで、H_1606、W_1607はオブジェクトの高さ、幅である。ステップ1309は、ポインタがオブジェクト上にないことを示すための処理である。ここで設定した指示オブジェクト_1617は、図11のステップ1503で使用される。ステップ1310で次のポインタ位置を画面座標系の値にする。ステップ1311はポインタが設定距離_1609を越えたことを示すための処理である。ここで設定したフラグ_1311は、図7のステップ1102で使用される。ステップ1311の次は、ステップ1312へ進み終了する。
【0047】
図11はポインタがオブジェクトの中心から設定距離よりも外側に位置している場合の処理フローである。ステップ1501で、現在ポインタ位置と、マウス101から送られてくる移動量δl_1627と、移動方向の角度θ_1628とから、次のポインタ位置を求める。ステップ1502で、次のポインタが背景上にあるかを判定する。背景上にある場合は、画面上でポインタを移動するステップ1513へ進む。背景上にない場合は、ステップ1503へ進む。ステップ1503で、現在のポインタがオブジェクト上にあるかを判定する。オブジェクト上にある場合は、画面上でポインタを移動するステップ1513へ進む。オブジェクト上にない場合はステップ1504へ進み、次のポインタ位置を背景座標系の値にする。ステップ1505で、繰り返し処理を行うためi_1631の初期値を設定する。ステップ1506で、(OX,OY)_1623にi番目オブジェクトの中心座標を代入する。ステップ1507で、次のポインタ位置がi番目のオブジェクト上にあるかを判定する。ポインタがオブジェクト上にない場合、ステップ1508に進み、i_1631を1だけ増加させる。ステップ1509で、i_1631がn_1603以下の場合はステップ1506へ戻る。i_1631がn_1603より大きい場合は、ステップ1513で、次のポインタ位置へ移動し、現在のポインタ位置を更新する。ステップ1507で、次のポインタ位置がi番目のオブジェクト上にあると判定した場合は、ステップ1510に進む。ステップ1510で、次のポインタ位置を(OX,OY)_1623とし、1511で次のポインタ位置を画面座標系の値にすると共に中心位置を補正する。ステップ1512で、ポインタがi番目のオブジェクト上にあることを示すために指示オブジェクト_1617をi_1631に、ポインタが設定距離に入ったことを示すためにフラグ_1616を0に設定するとともに、滞留時間_1618を0に設定する。次にステップ1513を行った後、終了へ進む。
【0048】
このように、本実施の形態では、始点からの設定距離で判断するため、小さいオブジェクトが多数集まっている場合においても、特許3360347号公報記載の技術のように、領域が重なることを考慮する必要がない。すなわち、始点が含まれるオブジェクトがわかっており、その始点からの位置を測ることによって、ポインタが属するオブジェクトから次のオブジェクトへ移動するかどうかを決めるため、たとえオブジェクト同士の設定距離円が重なっていても移動の如何の判断が可能だからである。特許3360347号公報記載の技術の場合は、1つの領域に1つのアイコン等を割り当て、領域へ入ったか否かのみを拠り所としているため、領域が重なった場合は判断することができない。このように隣の領域との距離が狭い場合でも、操作者の不随意運動の程度に応じた距離を設定することができ、ひいては的確なオブジェクト選択が可能となる。
【0049】
なお、本実施の形態では、入力移動データと、実際の画面上でのポインタの位置データの管理をするために、2つの座標系を用いたが、本発明はこれに限るものではない。すなわち、1つの座標系において、入力移動データ自体を主記憶メモリ107などに累積させておくことも可能である。すなわち、実際ならば座標のどこに表示されているべきであるかという状態を把握するとともに、その情報を用いて、次のオブジェクトに移動すべきか否かを判断する構成とすることも可能である。
【0050】
次に、図13から図25を用いて他の実施の形態について説明をする。本実施の形態では、オブジェクトが多数狭い領域に配列されていた第一の実施の形態と異なり、画面上にオブジェクトが散在する場合を説明する。
【0051】
図13は、パーソナルコンピュータの電源投入によりオペレーティングシステムの起動終了後の画面で、プログラム起動用のアイコンであるオブジェクト1701、1702とポインタ203が表示されている。
【0052】
図14は、操作者がマウスを使用してオブジェクト1702の上にポインタを移動し選択動作を行うことにより、プログラムが起動された後の画面である。このプログラムはゲームプログラムで、ゲーム画面1801の中には、地図が描かれた背景1802と矩形のアイコン1803が6個表示されている。また、オブジェクト内の番号は、オブジェクト管理のために割り付けたものである。番号は左のオブジェクトから順に割り付けている。TABLE1_3001とn_3002は、この番号順にオブジェクトの中心座標を記憶したテーブルとオブジェクトの個数である。この時の中心座標は、図18に示すとおり、背景1802の左下端を原点とする背景座標系での値である。
【0053】
図15は、オブジェクト1803の詳細で、点線1901と五角形1902で区切られる領域1903が透明であることを示す。なお、透明でない部分は、五角形1902ではなく、ゲームの内容に応じて城など様々な形状をとって良い。また、点線1901は実際には画面に表示されない。図16は、これらのオブジェクトが、オブジェクトの中心と同じ位置にある円1と円2により3つの領域に分割されていることを示す。
【0054】
図17は、ポインタをオブジェクトに近づけた時に、ポインタがどのように移動するのかを説明する図である。ポインタを移動して、次のポインタ位置座標が背景1802と領域1の境界を越えたときに(図17(1))、領域1の規定位置へ自動移動する(図17(2))。この規定位置は、次のポインタの位置とオブジェクト中心を通る直線と点線1901との交点をとり、この交点と外側の円周上の一番近い点を結ぶ線分の中点とする。さらに、ポインタを移動して、次のポインタ位置座標が外側にある円を越えた時に(図17(3))、領域2の規定位置へ自動移動する。この規定位置は、次のポインタの位置とオブジェクト中心を通る直線と2つの円の中間にある円周(一点鎖線)上との交点とする(図17(4))。さらに、ポインタを移動して、次のポインタ位置座標が内側にある円を越えた時に(図17(5))、領域3の円の中心へ自動移動する(図17(6))。以上は、ポインタをオブジェクトの外側から中心へ向けて移動したときの動作であるが、ポインタをオブジェクト中心から外側へ移動した時にも、同様に次のポインタ位置が境界を越えた時に、外側の新領域の規定位置へ自動移動する。
【0055】
以上の動作を実現するプログラムの処理について説明するが、プログラムが使用する変数や定数をまとめて図25に一覧表として示す。以下より本実施例を実現するプログラムの処理フローを説明するが、演算対象としての変数や定数は、その名称の後に番号(図25に記載)を付記する。
【0056】
図19はゲームプログラムが起動した直後に動作するプログラムの処理フローである。ステップ2401で、図19のマウス割り込み処理で使用するホッピング_3009に0を代入する。ステップ2402で、現在のポインタ位置が背景1802上にあるかを判定し、なければステップ2404でフラグ_3010に0を、ステップ2412で指示オブジェクト_3011に0を代入する。背景1802上にあれば、ステップ2403に進み、フラグ_3010に1を代入する。ステップ2405で現在ポインタ位置を背景座標系の値にする。ステップ2406で繰り返し処理のためi_3024に1を代入する。ステップ2407で(OX,OY)_3016に、i番目のオブジェクトの中心座標を代入し、現在ポインタ位置と中心座標位置との差をX成分、Y成分毎に求める。ステップ2408で現在ポインタ位置がi番目のオブジェクト上にあるかを判定する。あればステップ2411で指示オブジェクトにi_3024を代入し終了する。オブジェクト上になければ、ステップ2409でi_3024を1増加し、ステップ2410でi_3024がn以下であることを判定する。n以下であればステップ2407へ戻る。i_3024がn_3002より大ならばステップ2411へ進み、指示オブジェクトに0を代入し終了する。
【0057】
図20はマウス割り込み処理のフローである。この割り込み処理はオペレーティングシステムが起動した直後から動作するプログラムである。ステップ2501で、現在ポインタ位置と、マウス101から送られてくる移動量δlと移動方向の角度θとから、次のポインタ位置を求める。ここで、現在ポインタ位置(CPx,CPy)_3014の初期値は、オペレーティングシステムの起動時に設定される。ステップ2502でホッピング_3009が1であるかを判定し、1ならばステップ2503へ進み次のポインタ位置へ移動する。1でなければステップ2507へ進む。ステップ2503で、フラグ_3010が0であるかを判定し、0すなわち現在ポインタが背景上になければステップ2507へ進む。現在ポインタが背景上にあればステップ2504へ移動し、指示オブジェクトが0かを判定する。0でない、すなわち現在ポインタ位置がオブジェクト上にあればステップ2506へ進む。現在ポインタ位置がオブジェクト上になければステップ2505へ進む。ステップ2505,2506の次は、ステップ2507で、次のポインタ位置へ移動し、現在のポインタ位置を更新する。
【0058】
図21は現在ポインタ位置がオブジェクト上にない場合の処理フローである。ステップ2601で次のポインタ位置が背景上にあるかを判定し、なければ終了する。背景上にあればステップ2602に進む。ステップ2602で、次のポインタ位置を背景座標系の値にする。ステップ2603で繰り返し処理のためi_3024に初期値を代入する。ステップ2604で(OX,OY)_3016にi番目オブジェクトの中心座標を代入し、次のポインタ位置とi番目オブジェクトの中心座標との差を、X成分、Y成分毎に求める。ステップ2605で次のポインタ位置がi番目のオブジェクト上にあるかを判定する。オブジェクト上になければステップ2606へ進みi_3024を1だけ増加する。ステップ2607でi_3024がn_3002以下であることを判定する。n_3002以下であればステップ2604へ戻る。i_3024がnより大ならば終了へ進む。ステップ2605で次のポインタ位置がi番目のオブジェクト上にあると判定した場合は、ステップ2608へ進み、指示オブジェクトにi_3024を代入する。ステップ2609でオブジェクト中心から次のポインタ位置までの距離L1_3017を求める。ステップ2610で、L1_3017が円1(図16)の半径r1_3007より小さいかを判定する。小さければステップ2611へ進み、L1_3017が円2(図16)の半径r2_3008より小さいかを判定する。小さければ次のポインタ位置は領域3(図216)に進入したことになるので、次のポインタ位置を(OX,OY)_3016とする。ステップ2610でNOと判定されたらステップ2612へ進む。ステップ2611でNOと判定されたらステップ2614へ進む。
【0059】
図22は、現在のポインタがオブジェクト上にある場合の処理フローである。ステップ2701で次のポインタ位置を背景座標系の値にする。ステップ2702で、(OX,OY)_3016に現在ポインタがあるオブジェクトの中心座標を代入し、この中心座標と次のポインタ位置座標との差を求める。ステップ2703で、次のポインタ位置がオブジェクト上にあるかを判定し、オブジェクト上にない場合は、ステップ2704へ進み、指示オブジェクト_3011に0を代入し終了する。オブジェクト上にある場合は、ステップ2705へ進み、オブジェクト中心から次のポインタ位置までの距離L1_3017を求める。ステップ2706でL1_3017が円1(図16)の半径r1_3007より小さいかを判定する。小さければステップ2707へ進み、L1が円2(図16)の半径r2_3008より小さいかを判定する。小さければステップ2709で現在ポインタ位置が領域3(図16)にあるかを判定し、あれば終了、なければステップ2711へ進み次のポインタ位置をオブジェクトの中心座標とする。ステップ2707でNOと判定された場合は、ステップ2710で現在ポインタ位置が領域2(図16)にあるかを判定し、あれば終了、なければステップ2712へ進む。ステップ2706でNOと判定された場合は、ステップ2708で現在ポインタ位置が領域1(図16)にあるかを判定し、あれば終了、なければステップ2713へ進む。
【0060】
図23は次のポインタ位置が領域1(図16)に進入した時の処理で、次のポインタ位置を求めている。図24は次のポインタ位置が領域2(図16)に進入した時の処理で、次のポインタ位置を求めている。以上で請求項6の実施例を終えるが、本実施例では、ゲームプログラムの画面に表示される領域に分割されたオブジェクトが配置された画面は一つとした。複数の画面を持つ場合には、ゲームソフトプログラムが、画面毎に図25の定数情報を持ち、画面が切り替えられた時に、対応するこれらの定数を主記憶メモリ107に書き込めば良い。
【0061】
次に、第一、第二の実施の形態の中間程度にオブジェクトが散在している場合の実施の形態について説明する。
【0062】
図26は、パーソナルコンピュータの電源を投入してオペレーティングシステムが動作した後に、機器運転のシミュレーションプログラムが自動実行された直後の画面で、表示装置画面901の上にシミュレーションプログラムの画面3101とポインタ203が表示された状態である。ポインタ203は、操作者がマウス101を操作して、画面901上の任意の位置にポインタを移動できるものとする。シミュレーションプログラムの画面3101は、運転コースなどの各種指定を行うためのメニューバー3102、ガイダンス表示エリア3103、16個の機器運転用ボタン3104、2個の緊急用ボタン3105、機器運転速度などを表示する8個のメーター3106、機器の状況を示すためインジケーター3107から構成される。操作者は、ガイダンス表示エリア3103に表示される操作ガイダンスやメーター3106、インジケーター3107を見ながら、機器運転用ボタン3104を選択して機器の運転を行う。また、緊急用ボタン3105は、運転中にある条件を満たした時に、マウスで選択されるべきボタンである。以下より、機器運転用ボタン3104と緊急用ボタン3105は、マウス101による選択対象となるので、その名称をオブジェクトと記して説明する。
【0063】
図32は、本実施例を実現するプログラムが使用する定数と変数である。プログラムの説明で、演算対象としての変数や定数を引用する場合は、その名称の後に番号(図32に記載)を付記する。
【0064】
図28はマウス割り込み処理のフローで、オペレーティングシステムが起動した直後から動作するプログラムである。ここで使用している(CPx,CPy)_3709は、オペレーティングシステムの起動時に現在のポインタ位置に初期設定される。ステップ3301で、現在ポインタ位置と、マウス101から送られてくる移動量δl_3712と移動方向の角度δθ_3713とから次のポインタ位置を求める。ここで、現在のポインタ位置と次のポインタ位置は、図27に示すように、表示装置画面901の左下端902を原点とする画面座標系の値である。ステップ3302で、次のポインタ位置へ移動し、現在のポインタ位置を更新する。
【0065】
図29は、シミュレーションプログラムの処理フローである。ステップ3401で、操作者のマウス101のボタン操作により、オペレーティングシステムからのクリックイベントが発生したかを判定する。イベントが発生していない場合は、ステップ3402で、速度_3714やエンジン回転数_3715などを、現在の運転状態に応じて更新する。また、必要に応じてガイダンス表示エリア3103にメッセージを表示することや、インジケータ3107の点灯表示を行う。ステップ3403で、速度_3714が最低速度_3705よりも下がった場合には、ステップ3404で自動移動先_3709に1を代入する。ステップ3405でエンジン回転数_3715が限界_3706を超えた場合には、ステップ3406で自動移動先_3711に2を代入する。ステップ3404、ステップ3406の次は、ステップ3407へ進み、次に選択すべきオブジェクトへポインタを自動移動する処理を行い、ステップ3401へ戻る。ステップ3401で、クリックイベントが発生した場合は、ステップ3408でメニューがクリックされたかを判定する。
【0066】
メニューでない場合は、ステップ3409でオブジェクトがクリックされたかを判定する。オブジェクトがクリックされた場合は、ステップ3410で選択されたオブジェクトに対応する処理を行う。オブジェクトがクリックされていない場合はステップ3401へ戻る。ステップ3408で、メニューがクリックされた場合は、ステップ3411で、メニュー項目の終了をクリックさたれかを判定する。終了がクリックされた場合は、シミュレーションプログラムを終了する。終了がクリックされていない場合は、ステップ3412で、選択されたメニュー項目に対応する処理を行う。ステップ3410とステップ3412の次は、ステップ3401に戻る。
【0067】
図30は、ポインタ自動移動(ステップ3407)の処理フローである。ステップ3501で、次のポインタ位置を、自動移動先_3711で指定されるオブジェクトの中心座標とする。ここで、TABLE1_3701は、自動移動先となるオブジェクトの中心座標を記憶したテーブルである。この中心座標は、図27に示すとおり、シミュレーションプログラムの画面3101の左下端3201を原点とする背景座標系での値である。ステップ3502で、次のポインタ位置を画面座標系の値にすると共に中心位置を補正する。ステップ3503で、次のポインタ位置へ移動し、現在のポインタ位置を更新する。ステップ3504で、ガイダンス表示エリア3103に、MESSAGE_3704から自動移動先_3711をインデックスとしてメッセージデータを取得して表示する。図31は、MESSAGE_3704の内容である。
【0068】
また、本発明は次のような側面を有する。
【0069】
第一に、ディスプレイ画面上に複数個のオブジェクトが配置されている時に、入力装置を動かして目的のオブジェクトへポインタを合わせる指示操作において、オブジェクト間の距離が遠い場合や、オブジェクトが大きい場合は時間がかかるという課題を解決する。また、オブジェクトが特定できない場合に、ポインタが設定距離の外へ移動することを許可すると、不随意運動のある操作者にとっては、ポインタが背景上に移動してしまうため指示操作が難しくなるという課題がある。許可しない場合は、背景の外にあるオブジェクトを指示できないという課題がある。動作モードの設定は、この2つの課題を解決する。
【0070】
従って、表示装置の画面の左下端を原点とする画面座標系を設け、この座標系における次のポインタ位置座標を、現在ポインタ位置座標と、入力装置からのポインタ移動量と移動方向の情報から求め、次のポインタ位置座標にポインタを移動するステップ(プログラムの処理単位)を処理装置に設ける。表示装置の画面上に表示されている背景の左下端を原点とする背景座標系を設け、この座標系における各々のオブジェクトの中心位置座標と、各々のオブジェクトの形状情報を処理装置のメモリに記憶する。このため、オブジェクトの中心位置座標を参照し、次のポインタ位置座標がオブジェクトの中心から設定距離よりも内側にあるか外側にあるかどうかの判定ステップと、外側にあると判定した場合に、次に選択すべきオブジェクトを特定し、特定したオブジェクトの規定位置を求め、その規程位置にポインタを自動移動させるステップを処理装置に設ける。オブジェクトが特定できない場合は、動作モードを判定し設定距離外への移動を許可している場合にのみ、次のポインタ位置座標へポインタを移動するステップと、この動作モードを変更するためのステップを処理装置に設ける。
【0071】
上記構成により、ポインタがオブジェクト中心から設定距離まで到達した時に、ポインタの位置情報に基づき次に選択すべきオブジェクトを特定し、特定されたオブジェクトの規定位置に自動移動するため、入力装置を大きく移動することなく、ポインタをオブジェクトに合わせることができる。また、特定のオブジェクトが見つからない場合は、ポインタがオブジェクトの外へは出ないようにする動作モードにすることで、入力装置を誤ってオブジェクトが存在しない方向に移動した場合でも、ポインタはオブジェクト上に停止しているため、目的のオブジェクトを選択しやすくなる効果がある。なお、背景の外にある別のオブジェクトを指示するには、動作モードを変更する。
【0072】
第二に、次の2つの課題を解決することを要する。一つめは、手指の不随意運動のある人が操作する場合で、ポインタを目的のオブジェクトとは違った方向へ速く動かしたりすることがあり、意図しないオブジェクトへポインタが自動移動してしまうという課題である。二つめは、手指の動作範囲が狭い人が操作する場合で、ポインタを設定距離の外側に移動するまでに時間がかかるという課題である。
【0073】
従って、ユーザーの運動特性に合わせて設定できる定数を処理装置のメモリに記憶する。ポインタがオブジェクトの中心から設定距離の内側に存在する間は、入力装置からのポインタ移動量にこの定数を乗じて画面座標系上での移動量を求め、この移動量だけポインタを移動するステップを処理装置に設ける。
【0074】
上記構成により、入力装置を速く動かしてしまう人にはポインタ速度を遅く設定する、入力装置をゆっくり動かす人や、早く動かすが手指の移動範囲が狭いために入力装置を初期位置に戻して再び移動する操作を繰り返す人に対しては、ポインタ移動速度を速く設定することにより、容易に設定距離を越える位置にポインタを移動できる。
【0075】
第三に、第一の構成を実施した時に起こる課題で、操作者の中には、緊張が高まる等の原因から、入力装置を急激な速度で意図しない方向へ動かした時に、ポインタは意図しないオブジェクトへ自動移動するという課題を解決する。そのための構成として、入力装置からポインタ移動量が処理装置に送られた時の時刻を処理装置で記憶するステップと、送られて来た移動量を前回移動量が送られてきた時からの経過時間で除して入力装置の移動速度を計算し、この移動速度が設定速度よりも大きい場合はポインタを移動しないことにするステップを処理装置に設ける。この構成により、不随意運動により入力装置を急激な速度で動かした場合でもポインタは停止したままとなるので、目的外のオブジェクトへポインタが自動移動することを防ぐことができる。
【0076】
第四に、第一の構成を実施した時に起こる課題で、操作者は、ポインタが目的のオブジェクトの規定位置に自動移動した直後に、ポインタ移動停止のために入力装置を操作するが、操作者の運動特性によりこの操作が遅れ、さらに別のオブジェクトへポインタが自動移動するという課題を解決する。ポインタをオブジェクトに自動移動させた直後に、タイマーで時間の計測を開始し、設定時間を経過しない間は、入力装置からポインタ移動量の情報が送られてきても、ポインタを移動しないことにするステップを処理装置に設ける。この構成により、操作者は、ポインタが目的のオブジェクトに自動移動したことを確認し入力装置の動きを直ちに止める動作をすることが必要となるが、操作者の運動特性によりこの動作ができない場合がある。このような場合に、無効時間を設けることで、目的のオブジェクトに自動移動した後にまた別のオブジェクトへ移動してしまうことを防ぐ効果がある。
【0077】
第五に、操作者が、背景からオブジェクトにポインタを移動する操作において、ポインタがオブジェクトと背景の境界をわずかに越えた位置に移動した後に、操作者はオブジェクト選択のための動作として例えば入力装置に付いているボタンを押すが、ボタンを押す動作の影響でポインタがオブジェクトの外の方向へ移動してしまい、オブジェクトが選択できないという課題と、ポインタがオブジェクトと背景の境界のわずか手前の位置に来た時に、境界を越えたと誤認識して、オブジェクト選択のための動作をしてしまう課題を解決する。そのための構成として、オブジェクトの形状情報と中心位置座標を参照して、ポインタが背景からオブジェクト上に移動するかどうかの判定ステップと、移動すると判定した場合に、オブジェクト内の規定位置を求め、その規程位置にポインタを自動移動させるステップを処理装置に設ける。
【0078】
第六に、オブジェクトの領域が複数に分割されて、領域によって選択した結果により起こる事象(例えば、属性情報を表示する)が異なり、オブジェクト上に境界線が明示されていない場合は、ポインタが目的の領域に入っているのかどうかが、オブジェクト選択動作をして初めて判別するという課題と、領域の境界を越える位置までポインタを移動した時に、オブジェクトの特定領域を選択するために、入力装置を操作するが、その操作の影響でポインタが元の領域に戻ってしまい、オブジェクトの特定領域が選択できないという課題を解決する。
【0079】
上記課題のため、オブジェクト領域の分割情報を処理装置のメモリに記憶する。次のポインタ位置座標が境界を越えた時に、この分割情報を参照してその領域の規定位置を求めるステップと、求めた規定位置へポインタを自動移動するステップを処理装置に設ける。
【0080】
第五、第六の構成により、ポインタがオブジェクトの境界を越えればオブジェクト規定位置にポインタが移動するので、オブジェクトの選択操作をした時にポインタの位置がずれて選択できない現象や、ポインタがオブジェクト内に入ったという誤認識がなくなる。
【0081】
また、表示画面上に、多くのオブジェクトが表示されていて、通常は操作者が入力装置を使用し、その中から良く使う数個のオブジェクトを選択して操作している時に、処理装置内のプログラムの条件判定により、次に選択すべきオブジェクトが決定されるような場合に、操作者はそのオブジェクトへポインタを移動しなければならないという課題を解決する。
【0082】
上記課題のため、処理装置のプログラムの条件判定により次に選択すべきオブジェクトの中心位置座標を処理装置のメモリに記憶する。プログラムの条件判定を満たした場合に、その中心位置座標から規定位置を求め、その規定位置へポインタを自動移動するステップを処理装置に設ける。この構成により、通常は任意にオブジェクトを指示する操作を行っているが、処理装置の条件判定により指示すべきオブシェクトが決まった時に、操作者はそのオブジェクトを探して指示する必要がなくなり、直ぐに選択操作をすることができる。
【図面の簡単な説明】
【0083】
【図1】オブジェクト選択方式を実現するパーソナルコンピュータの概略構成の一例を示す図である。
【図2】文書作成ソフトウェアとソフトキーボードが自動実行された直後の画面の一例を示す図である。
【図3】オブジェクトの特定方法の一例を示す図である。
【図4】オブジェクト管理表の一例を示す図である。
【図5】画面座標系と背景座標系の一例を示す図である。
【図6】ソフトキーボード起動時の初期処理のフローの一例を示す図である。
【図7】マウス割り込み処理フローの一例を示す図である。
【図8】設定距離内での処理フローの一例を示す図である。
【図9】オブジェクト特定処理フローの一例を示す図である。
【図10】オブジェクト方向探索処理フローの一例を示す図である。
【図11】設定距離外での処理フローの一例を示す図である。
【図12】プログラムで使用する定数及び変数の一例を示す図である。
【図13】オペレーティングシステム起動後の画面の一例を示す図である。
【図14】ゲームプログラムの画面の一例を示す図である。
【図15】オブジェクトの詳細の一例を示す図である。
【図16】オブジェクトの領域の一例を示す図である。
【図17】オブジェクトの領域へのポインタ自動移動の一例を示す図である。
【図18】オブジェクト番号の割付けの一例を示す図である。
【図19】画面座標系と背景座標系の一例を示す図である。
【図20】ゲームプログラム起動時の初期処理のフローの一例を示す図である。
【図21】マウス割り込み処理フローの一例を示す図である。
【図22】ポインタがオブジェクト上にある場合の処理フローの一例を示す図である。
【図23】領域1進入処理フローの一例を示す図である。
【図24】領域2進入処理フローの一例を示す図である。
【図25】プログラムで使用する定数及び変数の一例を示す図である。
【図26】シミュレーションプログラムの画面の一例を示す図である。
【図27】画面座標系と背景座標系の一例を示す図である。
【図28】マウス割り込み処理フローの一例を示す図である。
【図29】シミュレーションプログラムの処理フローの一例を示す図である。
【図30】ポインタ自動移動の処理フローの一例を示す図である。
【図31】MESSAGEの内容の一例を示す図である。
【図32】プログラムで使用する定数及び変数の一例を示す図である。
【符号の説明】
【0084】
101…入力装置、102…メモリ、103…CPU、104…表示部、105…表示装置、201…文書作成ソフトウェア画面、202…ソフトキーボード、203…ポインタ、204…メニュー、205…文章表示領域、206…文字入力カーソル、207…スクロールバー、301…背景、302…キー、401…文字キー、402…機能キー(カーソル移動)、403…機能キー(動作モード切替)、501…設定距離、502…対角線、503…下の領域、504…下に配置しキー、601…左の領域、901…表示装置画面、902…画面座標系の原点、903…背景座標系の原点、1701…プログラム起動用のアイコン、1702…ゲームプログラム起動用のアイコン、1801…ゲーム画面、1802…背景、1803…アイコン、1901…アイコンと背景との境界、1902…透明部分と不透明部分との境界、1903…透明部分、3101…シミュレーションプログラムの画面、3102…メニューバー、3103…ガイダンス表示エリア、3104…機器運転用ボタン、3105…緊急用ボタン、3106…メーター、3107…インジケーター、3201…背景座標系の原点
【特許請求の範囲】
【請求項1】
複数のオブジェクトとオブジェクトを指定するポインタを表示する表示画面を有する表示装置と、
前記ポインタの移動データを入力する入力装置と、
前記移動データおよび前記ポインタの位置情報を格納するメモリと、
オブジェクト内の所定位置を始点として前記ポインタに対する移動データの入力が開始されてからの移動データの累積が前記始点からの設定範囲を超えた場合に、移動すべきオブジェクトを特定し、当該オブジェクトの始点へ前記ポインタの前記表示装置における表示を移動させる処理装置を有することを特徴とするオブジェクト選択装置。
【請求項2】
請求項1記載のオブジェクト選択装置において、
前記処理装置は、前記移動データの累積が前記ポインタが存在するオブジェクトの始点からの設定範囲内にあり、かつ、前記入力装置から入力される一回の移動データの距離が所定距離を越える場合は、前記一回の移動データの前記メモリへの累積を抑止することを特徴とするオブジェクト選択装置。
【請求項3】
請求項1乃至2のいずれか一方に記載されたオブジェクト選択装置において、
前記処理装置は、前記ポインタがオブジェクト外から当該オブジェクトの始点に移動してから所定時間が経過するまでの間は、前記入力装置に移動データが入力された場合も前記ポインタを前記始点に停止表示させることを特徴とするオブジェクト選択装置。
【請求項4】
表示装置に表示されたオブジェクトを入力装置から入力される移動データに従って移動するポインタによって選択させるオブジェクト選択プログラムにおいて、
所定時間毎に入力装置からの移動データをメモリに格納するステップと、
前記ポインタがオブジェクト内の始点に移動または最初に表示されてからの移動データをメモリに累積させるステップと、
前記累積した移動データが前記オブジェクトに対する設定領域を越えた場合に前記ポインタを他のオブジェクト内の始点に移動表示させるステップを有することを特徴とするオブジェクト選択プログラム。
【請求項5】
請求項4記載のオブジェクト選択プログラムにおいて、
前記ポインタが存在するオブジェクトの始点に対する設定範囲内に前記移動データの累積があり、かつ、前記入力装置から入力される一回の移動データが所定距離を越える場合は、前記一回の距離データの前記メモリへの累積を抑止することを表示装置におけるポインタの移動を抑止するステップを有する特徴とするオブジェクト選択プログラム。
【請求項1】
複数のオブジェクトとオブジェクトを指定するポインタを表示する表示画面を有する表示装置と、
前記ポインタの移動データを入力する入力装置と、
前記移動データおよび前記ポインタの位置情報を格納するメモリと、
オブジェクト内の所定位置を始点として前記ポインタに対する移動データの入力が開始されてからの移動データの累積が前記始点からの設定範囲を超えた場合に、移動すべきオブジェクトを特定し、当該オブジェクトの始点へ前記ポインタの前記表示装置における表示を移動させる処理装置を有することを特徴とするオブジェクト選択装置。
【請求項2】
請求項1記載のオブジェクト選択装置において、
前記処理装置は、前記移動データの累積が前記ポインタが存在するオブジェクトの始点からの設定範囲内にあり、かつ、前記入力装置から入力される一回の移動データの距離が所定距離を越える場合は、前記一回の移動データの前記メモリへの累積を抑止することを特徴とするオブジェクト選択装置。
【請求項3】
請求項1乃至2のいずれか一方に記載されたオブジェクト選択装置において、
前記処理装置は、前記ポインタがオブジェクト外から当該オブジェクトの始点に移動してから所定時間が経過するまでの間は、前記入力装置に移動データが入力された場合も前記ポインタを前記始点に停止表示させることを特徴とするオブジェクト選択装置。
【請求項4】
表示装置に表示されたオブジェクトを入力装置から入力される移動データに従って移動するポインタによって選択させるオブジェクト選択プログラムにおいて、
所定時間毎に入力装置からの移動データをメモリに格納するステップと、
前記ポインタがオブジェクト内の始点に移動または最初に表示されてからの移動データをメモリに累積させるステップと、
前記累積した移動データが前記オブジェクトに対する設定領域を越えた場合に前記ポインタを他のオブジェクト内の始点に移動表示させるステップを有することを特徴とするオブジェクト選択プログラム。
【請求項5】
請求項4記載のオブジェクト選択プログラムにおいて、
前記ポインタが存在するオブジェクトの始点に対する設定範囲内に前記移動データの累積があり、かつ、前記入力装置から入力される一回の移動データが所定距離を越える場合は、前記一回の距離データの前記メモリへの累積を抑止することを表示装置におけるポインタの移動を抑止するステップを有する特徴とするオブジェクト選択プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【公開番号】特開2006−113831(P2006−113831A)
【公開日】平成18年4月27日(2006.4.27)
【国際特許分類】
【出願番号】特願2004−300887(P2004−300887)
【出願日】平成16年10月15日(2004.10.15)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
【公開日】平成18年4月27日(2006.4.27)
【国際特許分類】
【出願日】平成16年10月15日(2004.10.15)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
[ Back to top ]