(57)【要約】      （修正有）【課題】  小刻みの震えなどの不随意運動を伴う操作者が、表示画面に表示されている複数のオブジェクトから目的のオブジェクトをポインティングデバイスで選択する場合、操作者の意図するオブジェクトを選択するのを容易にする。【解決手段】  ポインタの速度や位置の移動状況からポインタ操作が不随意運動によるものか随意運動のよるものかを区別する。そして、オブジェクト内の特定の点とポインタとの相対距離に応じて、選択オブジェクトの移動を容認することを特徴とする。【選択図】  図１
2006113831.tif 000002
【特許請求の範囲】
【請求項１】
複数のオブジェクトとオブジェクトを指定するポインタを表示する表示画面を有する表示装置と、
前記ポインタの移動データを入力する入力装置と、
前記移動データおよび前記ポインタの位置情報を格納するメモリと、
オブジェクト内の所定位置を始点として前記ポインタに対する移動データの入力が開始されてからの移動データの累積が前記始点からの設定範囲を超えた場合に、移動すべきオブジェクトを特定し、当該オブジェクトの始点へ前記ポインタの前記表示装置における表示を移動させる処理装置を有することを特徴とするオブジェクト選択装置。
【請求項２】
請求項１記載のオブジェクト選択装置において、
前記処理装置は、前記移動データの累積が前記ポインタが存在するオブジェクトの始点からの設定範囲内にあり、かつ、前記入力装置から入力される一回の移動データの距離が所定距離を越える場合は、前記一回の移動データの前記メモリへの累積を抑止することを特徴とするオブジェクト選択装置。
【請求項３】
請求項１乃至２のいずれか一方に記載されたオブジェクト選択装置において、
前記処理装置は、前記ポインタがオブジェクト外から当該オブジェクトの始点に移動してから所定時間が経過するまでの間は、前記入力装置に移動データが入力された場合も前記ポインタを前記始点に停止表示させることを特徴とするオブジェクト選択装置。
【請求項４】
表示装置に表示されたオブジェクトを入力装置から入力される移動データに従って移動するポインタによって選択させるオブジェクト選択プログラムにおいて、
所定時間毎に入力装置からの移動データをメモリに格納するステップと、
前記ポインタがオブジェクト内の始点に移動または最初に表示されてからの移動データをメモリに累積させるステップと、
前記累積した移動データが前記オブジェクトに対する設定領域を越えた場合に前記ポインタを他のオブジェクト内の始点に移動表示させるステップを有することを特徴とするオブジェクト選択プログラム。
【請求項５】
請求項４記載のオブジェクト選択プログラムにおいて、
前記ポインタが存在するオブジェクトの始点に対する設定範囲内に前記移動データの累積があり、かつ、前記入力装置から入力される一回の移動データが所定距離を越える場合は、前記一回の距離データの前記メモリへの累積を抑止することを表示装置におけるポインタの移動を抑止するステップを有する特徴とするオブジェクト選択プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
表示装置に表示されている複数のオブジェクトからユーザーインタフェースを用いて目的のオブジェクトを選択するためのオブジェクト選択技術に関する。
【背景技術】
【０００２】
コンピュータ、テレビ、制御盤等の装置において、ユーザーインタフェースを用いて表示装置に表示されている複数のオブジェクトから目的のオブジェクトを選択するための技術としては、例えば特許第３３６０３４７号公報、特開平９-１６３７０号公報、特開平６−３２４８３９号公報に開示されている技術がある。
【０００３】
第一の文献、特許第３３６０３４７号公報に開示されている技術は、小さなアイコンが多数表示されている画面における、ポインティング・デバイスを用いたアイコンの選択を容易にすることを目的としている。具体的には、ポインティング・デバイスの操作に応じ、カーソルを移動させるべきアイコンを探索する。探索方法としては、次の３通りが記載されている。第一は、カーソルとの距離が最も近いアイコンを選定する方法である。第二は、予め各々のアイコンを含む領域に分割して定義しておき、カーソル位置が他の領域に進入すると、移動先の領域に属するアイコンを選択する方法である。第3は、またはポインティング・デバイスが操作された方向や速度に応じて移動すべきアイコンを選択する方法である。
【０００４】
第二の文献、特開平９-１６３７０号公報に開示されている技術は、ポイントをポインティング手段を用いて表示オブジェクト上に移動させるものである。具体的には、ポインティング手段により供給される方向データの示す方向にある隣の表示オブジェクト上にポイントを移動させる場合に、ポインタが現在位置と異なる表示オブジェクト上に移動したポインタを見逃してしまうことを防止することを目的としている。そのための構成として、ポインティング装置上の方向キーの押下によってポインタをオブジェクトに近づけ、対象とするオブジェクトの強制移動対象領域に入ったら、オブジェクトの表示色を変えるなどにより領域に入ったことを操作者に知らせる。通知により操作者が所定時間ポインタを静止させたら、ポインタを自動的にオブジェクト上に移動する構成としている。
【０００５】
第三の文献、特開平６−３２４８３９号公報に開示されている技術は、カーソル移動手段によるメニュー項目の選択時に、メニュー項目の機能領域と、それ以外の非機能領域との判別が困難な場合における機能領域を迅速容易、また、確実に選択することを目的としている。具体的な構成としては、カーソル移動が開始からの移動時間または移動距離が所定値を越えた場合には、機能領域（メニュー項目）にカーソルが重なると、そのカーソルを重なった機能領域に強制停止させる。さらにカーソル移動が継続された場合は、指示方向の機能領域を探索し、発見した機能領域にカーソルを移動させるものである。
【０００６】
【特許文献１】特許第３３６０３４７号公報
【特許文献２】特開平９−１６３７０号公報
【特許文献３】特開平６−３２４８３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記いずれの文献では、不随意運動を伴う操作者に対する操作の向上についての考慮がなされていない。不随意運動とは、自分の意志に反して手足がふるえてしまう症状をさす。例えば、手足が震えるように細かく動く場合（タイプ１）や、突然大きい動作を起こす場合（タイプ２）がある。この不随意運動は、なんらかの目的のために手足を動かそうと手足に力を入れる場合に生じることがある。
【０００８】
第一の文献に開示されている技術では、例えばカーソルを最も近いアイコンに選択移動させる場合や領域分割してアイコンを割り当てておく場合、不随意運動によって意図しないアイコンに移動してしまう可能性がある。また、方向や速度または加速度に応じて移動すべきアイコンを選択する場合、特にタイプ２の不随意運動によって意図したものから遠く離れたアイコンを選択することになってしまう可能性が大きい。さらにオブジェクトが大きくなればなるほど、ポインタを自動移動開始位置まで移動する距離が長くなる構成となっている。従って、タイプ１の不随意運動が生じている場合には、意図するアイコンへの的確な移動が困難である。
【０００９】
また、第二の文献に開示されている技術では、強制移動対象領域はアイコンを囲むより広い領域とする必要がある。これは、小さいアイコンが多数並ぶ画面上での操作への適用を考慮していないからである。一方、強制移動対象領域の大きさに関らず不随意運動によって意図しないアイコンの強制移動対象領域に入ってしまった場合、ポインタの移動を継続させて強制移動対象領域から抜け出すことが必要となる。従って、入力装置を動かす運動を休みながら行う必要がある操作者の場合、目的以外のオブジェクトの強制移動対象領域にポインタが入ってから出る間は運動を休むことはできない。
【００１０】
さらに、第三の文献に開示されている技術では、カーソルの移動距離または移動時間が設定値を超えることを、メニュー領域間での飛び飛びの強制移動の契機としている。また、移動強制の方向は強制停止した場合の指示方向となっている。従って、継続的に不随意運動を生じる操作者の場合、意図しないメニュー領域間での移動が生じてしまう。さらに、強制移動方向も意図した方向とすることが困難となる。
【００１１】
本発明は、不随意運動を伴い操作者の意図に対応可能なオブジェクト選択を実現することを目的とする。
【００１２】
または、本発明は、随時小刻みな震えを伴い操作者に対して、対応可能なオブジェクト選択を実現することを目的とする。また、突発的に大きな動きを伴う操作者に対しても、意図に沿ったオブジェクト選択を実現することを目的とする。
【課題を解決するための手段】
【００１３】
本発明は、不随意運動を随意運動と区別するために、オブジェクト内の特定の点との相対距離に応じて選択オブジェクトの移動を容認することを特徴とする。
【００１４】
もしくは、一定の移動速度あるいは移動距離あるいは加速度を有した動きの場合は、不随意運動であると判断し、選択オブジェクトの移動を制限することを特徴とする。
【発明の効果】
【００１５】
本発明のオブジェクト選択装置及びプログラムは、オブジェクト内の特定の点に対する相対距離に応じて選択オブジェクトの移動を判断するため、小刻み運動の場合は不随意運動として動きを無視するという利点がある。
【発明を実施するための最良の形態】
【００１６】
図１乃至図１２を用いて、オブジェクト選択プログラム及び装置の一実施形態を説明する。
【００１７】
図１はオブジェクト選択を行う情報処理装置の概略構成である。入力装置１０１、処理装置１０２、表示装置１０３を有している。入力装置１０１は、マウス、トラックボール、トラックポイント、タッチパッドなどのポインティング・デバイスである。表示装置１０３は、メモリ１０４の中の表示用メモリ１０６に書き込まれたデータを画面に表示する装置である。ＣＲＴ装置、液晶モニタ装置、ＰＤＰ表示装置などで実現することができる。
【００１８】
処理装置１０２は、例えばパーソナルコンピュータによって実現する。具体的には、処理装置は、メモリ１０４、ＣＰＵ１０５を有する。表示制御部は、ＣＰＵ等の指示を受けて表示装置の表示を制御するコントローラである。ＣＰＵ１０５は処理装置１０２全体をコントロールするものであり、Ｏｐｅｒｅａｔｉｏｎ Ｓｙｓｔｅｍプログラムを実行する。
【００１９】
メモリは主記憶メモリ１０７と表示用メモリ１０６に大別される。主記憶メモリは、ＣＰＵ１０５が実行するためのプログラムやデータを格納する。例えば、本実施の形態の背景とオブジェクトとポインタを表示するプログラム、表示画面上でポインタを移動するプログラム、各種プログラムを記憶するものである。これらのプログラムは、図示しない処理装置１０２内のハードディスクドライブに格納されており、システム電源投入時または必要に応じてメモリ１０４に読み出されるものである。オブジェクト選択プログラムを始め、各種のアプリケーションプログラムを実行する。また、表示用メモリは表示装置１０３が表示する表示データを格納するものである。なお、表示用メモリは主記憶メモリ１０７と別個の構成としてもよい。
【００２０】
操作者が入力装置１０１を操作することにより、ポインタの移動量と移動方向などの移動データを処理装置１０２の中の主記憶メモリ１０７に送信する。さらにＣＰＵ１０５が主記憶メモリ１０７に格納されているデータとプログラムを用いて本実施の形態を実行する。
【００２１】
図２は、パーソナルコンピュータの電源を投入してオペレーティングシステムが動作した後に、本実施の形態のオブジェクト選択プログラムが自動起動された画面を示す。本実施の形態は、文書作成ソフトウェアに文字を入力するためのソフトキーボードの各々のキーボタンをオブジェクトとし、これらのキーボタンへのポインタ移動や選択する例として説明する。なお、図２では、本実施の形態に係る文書作成ソフトウェアとソフトキーボードのみ示しているが、その他のプログラムをマルチウィンドウとして表示可能である。
【００２２】
図２の画面は、文書作成ソフトウェア画面２０１の上に、ソフトキーボード画面２０２を重ねて表示した状態である。ポインタ２０３の位置は、ソフトキーボード２０２が表示された後に、任意のオブジェクトの規定位置に強制的に移動する。文書作成ソフトウェア画面２０１は、メニューバー２０４、文章表示領域２０５、カーソル２０６、スクロールバー２０７を有する。メニューバー２０４は各種機能を実行する際に使用されるもので、文書読み込みなど各種機能をプルダウン形式で表示し、ポインタにより選択される。文章表示領域２０５は、ソフトキーボード２０２から入力された文字を表示する。カーソル２０６は文字入力位置を示す。スクロールバー２０７は、文章表示領域２０５をスクロールする際に使用されるものである。ポインタ２０３により選択しドラッグすることによってスクロールが実行される。
【００２３】
ソフトキーボード２０２は、背景３０１と、複数のオブジェクト３０２を有する。本実施の形態では、オブジェクト３０２は、文字キーか機能キーのどちらかとする。操作者は入力装置１０１を動かすことにより、ポインタ２０３を、オブジェクト３０２、メニューバー２０４、スクロールバー２０７の上に移動して選択する操作を行う。文字キー４０１を選択した場合は、カーソル２０６の前にそのキーに割り当てられた文字、例えば「あ」という文字が入力される。機能キー４０２を選択した場合は、カーソル２０６を一文字分だけ移動する。また、機能キー４０３を選択した場合は、請求項１に記載した動作モードを切り替える。この動作モードは目折１０４の主記憶メモリに設けた変数の値を変更することで行う。ここで、メモリ１０４の主記憶メモリに設けた変数や定数をまとめて図１２に一覧表として示す。
【００２４】
図１２において、区分１は処理中に定数として扱われるか、変数として扱われるかを示す。区分２は、区分１における属性を示す。すなわち、定数においては、操作者による変更を行う扱いとするか否かを区分けたものである。変数においては、フローに関係する変数であるか、操作者による作業変数かを示すものである。さらに、各々の変数・定数に対する符号・説明を示したものである。特に本実施の形態において重要なものを以下に詳細に説明する。
【００２５】
ここで、定数Ｓ１６１２は、ソフトキーボード起動時にポインタ移動先とするオブジェクト番号を指定したものである。通常は、ソフトキーボードの中心付近にあるキーボタンを設定しておくと、その次のオブジェクトまでの距離に偏りがなくなるので作業効率が高くなる。しかしながら、この値は自分の好きなオブジェクトに操作者等が指定することも可能である。番号Ｓは、オブジェクトに割り当てられた番号であり、指定する際は、図3のようにどのキーボタンにどの番号が割り当てられているかを表示するなどして操作者に判別可能とする。
【００２６】
α1613は、ポインタを各オブジェクトに移動する際に、移動先とするポインタの位置を指定するためのものである。図４（１）で指定されているオブジェクトの中心とすることも可能であるが、キーボタン上に文字が併せて表示され、みにくい場合などは、ここで設定するα分だけずらすことも可能である。
【００２７】
定数ｋ１６１５は、オブジェクトの設定距離内にポインタがいる場合、ポインタを移動表示させる速度を規定するものである。この値を決めることによって、オブジェクトでのポインタの移動可能領域が大きくすることができ、操作者の不随意運動によるポインタ位置の影響を表示上減少させることができる。
【００２８】
動作モード１６０８とは、ポインタの入力装置による移動操作中に、隣接するオブジェクトがないために、適切な移動先を見つけられない場合の処理を選択するモードである。１つは、オブジェクト全体領域、本実施の形態の場合は、ソフトキーボードの背景領域から外へ移動する処理を選択するものである。もう１つは、隣接するオブジェクトがない場合は、今あるオブジェクトからポインタを移動させずに、背景領域から外への移動を抑止するモードである。このモード選択は、このようにソフトキーボード上の１つのキーボタンに割り当てることもできるし、ポインタデバイスや、図示しないキーボード上の操作、マウスポインタにおける右クリック等の処理で変更させることも可能である。ソフトキーボード処理中は、後者のモードを選択しておくことによって、意図しない不随意動作によって大きな移動データが入力されてしまった場合においても、ポインタがオブジェクト乃至は、ソフトキーボード領域から離れることを防止することができる。引いては、ポインタをもとの状態に戻す処理を省くことができる。
【００２９】
設定距離1609とは、図３に示した円の半径である。ポインタが一度オブジェクトの始点近くに移動し、操作者の操作により入力した移動データを累積させておく。このデータの累積が、設定距離を半径とする円から外にでた場合は、オブジェクトの移動処理を実施するものである。上述したように、直円ではなく、楕円や、多角形等の他の図形や、各方向について距離を変更して設定することも可能である。
【００３０】
設定速度1610とは、例えば、前回入力された位置から今回入力された位置までの距離、すなわち１回の入力での変位を示すものとする。後述するように、設定速度以上の入力の場合は、そのデータの累積データへの蓄積を抑止する。これは、タイプ２の不随意運動により、急激にポインタの移動データを変更してしまった場合に、その不随意運動による入力を無視することによって、もとの状態へのリカバリ処理を不要とするためである。ただし、設定速度は、例えば秒速で設定する構成とし、一回あたりの距離を処理中に算出する構成としてもよい。
【００３１】
設定時間1611とは、あるオブジェクトにポインタが入ってから、ポインタへの移動処理を許可する最端時間を設定するものである。不随意運動が連続して起こることによって連続的にポインタが移動する場合や、新たなオブジェクトへポインタが入ったため操作者が緊張し、ポインタが大きくずれてしまうことを考慮したものである。
【００３２】
また、作業変数において、ポインタの移動量とは、入力された移動データのベクトルの大きさを示すものである。また、ポインタの移動方向とは、移動データのベクトルの方向をさすものである。
【００３３】
図３は、ポインタ２０３がオブジェクトの中心から設定距離を越えた時に自動移動先となるオブジェクトをどのように特定するのかを示す図である。本実施の形態、次のオブジェクトへの移動の要否を判断するための始点を、オブジェクトの中心点として説明する。ただし、始点を中心以外の点とすることも可能である。例えば、オブジェクトが点対称でない場合である。円５０１はオブジェクトの中心から設定距離だけ離れた位置を示す。なお、図３のように、全方向に対して等距離にするのではなく、各方向において設定距離を変更することも可能である。このようにすることで、操作者が特定の方向への不随意運動がある場合に、不随意運動が生じる方向へ幅をもたせることができるからである。
【００３４】
図３の場合において、次のオブジェクトを特定する方法は、２つの対角線５０２で仕切られた４つの領域のどこにポインタが入ったかにより判断する。すなわち、４つの領域にそれぞれ隣接する上下左右にあるオブジェクトを割り当て、移動すべき一つのオブジェクトを特定する。例えば、ポインタ２０３が領域５０３に入った時には、下にあるオブジェクト５０４を特定する。また、例えば、ポインタ２０３が領域６０１に入った場合など、隣接するオブジェクトない場合は、オブジェクトが特定できない。この場合の処理については後述する。４つの領域だけではなく、斜め左上、右上、右下、左下を特定するためにオブジェクトを８つの領域に分割する構成とすることもできる。この構成の場合、オブジェクトがある程度大きい場合には、特に操作性を向上させることができる。
【００３５】
このように、オブジェクトを複数の領域に分け、領域毎に割り当てられたオブジェクトへ移動する構成とすることによって、入力角度をたもてない不随意運動を伴う操作者の場合においても、意図する方向のオブジェクトへの移動を行うことが容易となる。すなわち、例えば特開平6-324839号公報に開示された技術のように、入力された移動方向の延長線上にあるメニュー項目を選択するようにすると、不随意運動によって意図しない方向へ移動データを入力してしまった場合、意図しない方向へカーソルを移動させることになってしまう。しかしながら、本実施の形態の場合は、どの方向へ移動させたとしても、結果的に意図するオブジェクトが割り当てられた領域への移動データを入力すれば、意図するオブジェクトへの移動が可能である。
【００３６】
なお、各キーボタンの番号は、オブジェクト管理のために各々のオブジェクトに割り当てられたものである。図３の場合、番号を左上から右下のオブジェクトへ向かって順番に割付けている。
【００３７】
図４は、図３のように割り付けたことを前提として設けたオブジェクト管理表である。図４（１）のＴＡＢＬＥ１は背景上の全てのオブジェクトについて中心座標を記憶したものである。６０１はオブジェクトの番号である。各々のオブジェクトの中心座標がＸ座標６０２とＹ座標６０３にわかれて二次元で特定されている。なお、ＴＡＢＬＥ１の中心座標は後述する背景座標系での値である。
【００３８】
図４（２）のＴＡＢＬＥ２は、オブジェクト毎に移動先のオブジェクトを特定するためのものである。すなわち、各々のオブジェクトにおいて、分割した領域毎に、移動先となるオブジェクト番号を格納したものである。移動先とすべきオブジェクトがない場合は０を記憶する。なお、本実施の形態では、１つのオブジェクトを４つに分割しているため、移動先のオブジェクトも、上下左右合わせて４つ指定している。
【００３９】
図５は、画面座標系と背景座標系を説明する図である。入力されたポインタの移動データは、そのまま表示装置に表示されるわけではない。本実施の形態では、入力された移動データと、表示すべきデータを管理するために、２座標系を用いる。すなわち、移動データを背景座標系で管理し、表示データを座面座標系で管理する。
【００４０】
画面座標系は表示装置画面９０１の左下端を原点９０２とする座標系である。背景座標系は、背景３０１の左下端９０３を原点とする座標系である。背景座標系を設けたのは、ソフトキーボードの表示位置を移動可能とするためである。図９のｐ，ｑは左下端９０３の画面座標系における位置座標、ｗ，ｈは背景３０１の各々幅と高さである。以下より本実施例を実現するプログラムの処理フローを説明するが、演算対象としての変数や定数は、その名称の後に番号（図１２に記載）を付記する。
【００４１】
次に、オブジェクト選択処理内容について説明する。図６は、ソフトキーボートを起動した後に、ポインタを初期位置として登録されたオブジェクトの規定位置に移動する初期処理のフローである。
【００４２】
ステップ１００１で、指示オブジェクト_1617と、フラグ_1616の初期設定をする。ここで、「指示オブジェクト←ｓ」という表記は、指示オブジェクト_1617にｓ_1612を代入することを意味する。ステップ１００２で、次のポインタ位置（ＮＰＸ，ＮＰＹ）_1620を、Ｓ番目オブジェクトの中心座標（ＯＸ，ＯＹ）_1623からＸ方向にα_1613、Ｙ方向に−α_1613だけ離れた位置とする。ステップ１００３で、次のポインタ位置（ＮＰｘ，ＮＰｙ）_1621を画面座標系の値にする。ステップ１００４で、ポインタを次のポインタ位置に移動、すなわち、（ＮＰｘ，ＮＰｙ）_1621を表示用メモリ１０６へデータを書き込こみ、現在のポインタ位置を更新、すなわち、（ＣＰｘ，ＣＰｙ）_1622に（ＮＰｘ，ＮＰｙ）_1621を代入する。ステップ１００５は、今回時刻をタイマー値（処理装置が常に計測している現在時刻）に、滞留時間_1618の値を０に初期設定する。今回時刻_1624はマウス割り込み処理が一度起動されてから次に起動されるまでの経過時間を測るために、滞留時間_1618はポインタがオブジェクトに自動移動してからの経過時間を積算するために設けた変数で、図８の処理で使用する。
【００４３】
図７は、入力装置１１割り込み処理のフローを示す。すなわち、操作者が入力装置１１を操作したことによって、ＣＰＵ１０５へ割り込みが発生して優先動作する処理である。ステップ１１０１で今回時刻_1624を前回時刻_1625に保存し、今回時刻_1624をタイマーの値とする。ステップ１１０２で、フラグ_1616の値を見ることによりポインタがオブジェクトの中心から設定距離_1609の内側にあるかどうかを判定する。ステップ１１０３、ステップ１１０４の内容は各々図９、図１１に示す。
【００４４】
図８は設定距離の内側にある時の処理フローである。ステップ１２０１で、ステップ１２０３で使用する滞留時間_1618と、ステップ１２０４で使用する経過時間_1619を求める。ステップ１２０２で、現在ポインタ位置と、マウス１０１から送られてくるポインタの移動量δｌ_1627と、移動方向の角度θ_1628とから、次のポインタ位置を求める。操作者側がｋ_1615の値を変更することでポインタの移動速度の設定を実現する。ステップ１２０５で、背景座標における次のポインタ位置を求める。ステップ１２０６で（ＯＸ，ＯＹ）_1623に現在ポインタがあるオブジェクトの中心座標を代入する。ステップ１２０７で、次のポインタ位置が設定距離_1609を越えているかを判定する。越えていない場合は、１２０９で、次のポインタ位置へ移動し、現在のポインタ位置を更新する。越えている場合はステップ１２０８へ進み、次のポインタ位置に基づき自動移動すべきオブジェクトを特定する。
【００４５】
自動移動すべきオブジェクトの特定フローを図９に示す。１３０１で、次のポインタ位置が図３の４つの領域のうちどの領域にあるのかを探索する。図１０がその処理フローである。まず、１４０１で、オブジェクト中心から次のポインタ位置までの移動量をｘ軸、ｙ軸について求める。１４０２で、オブジェクトを４つに分けた領域のうち、上下または左右のどちらかを判定する。さらに、１４０３で上下のどちらか、１４０４で左右のどちらかを判定する。ステップ１４０５，ステップ１４０６，ステップ１４０７、ステップ１４０８は方向_1626に各々、上、下、左、右を代入する。
【００４６】
図９に戻り、ステップ１３０２で、ＴＡＢＬＥ２_1602より、指示オブジェクト_1617で指定される行と、方向で指定される列で交差するセルの値、すなわちオブジェクト番号をｉ_1631に代入する。ステップ１３０３で、オブジェクトが存在するかを判定する。存在しない場合ステップ１３０４へ進み、存在する場合はステップ１３０７へ進む。ステップ１３０４で、次のポインタ位置を、ＴＡＢＬＥ１_1601のｉ番目オブジェクトの中心座標とする。ステップ１３０５で次のポインタ位置を画面座標系の値にすると共に中心位置を補正する。ステップ１３０６で、ｉ番目のオブジェクトに移動するので指示オブジェクト_1617にｉ_1631を代入し、滞留時間_1618に０を代入する。ステップ１３１２で、次のポインタ位置へ移動し、現在のポインタ位置を更新する。ステップ１３０７で、ポインタの移動動作モード_1608に制限があるかを判定する。制限があれば終了へ進む。制限がない場合は１３０８へ進む。ステップ１３０８で次のポインタ位置がオブジェクト上にあるかを判定する。ここで、Ｈ_1606、Ｗ_1607はオブジェクトの高さ、幅である。ステップ１３０９は、ポインタがオブジェクト上にないことを示すための処理である。ここで設定した指示オブジェクト_1617は、図１１のステップ１５０３で使用される。ステップ１３１０で次のポインタ位置を画面座標系の値にする。ステップ１３１１はポインタが設定距離_1609を越えたことを示すための処理である。ここで設定したフラグ_1311は、図７のステップ１１０２で使用される。ステップ１３１１の次は、ステップ１３１２へ進み終了する。
【００４７】
図１１はポインタがオブジェクトの中心から設定距離よりも外側に位置している場合の処理フローである。ステップ１５０１で、現在ポインタ位置と、マウス１０１から送られてくる移動量δｌ_1627と、移動方向の角度θ_1628とから、次のポインタ位置を求める。ステップ１５０２で、次のポインタが背景上にあるかを判定する。背景上にある場合は、画面上でポインタを移動するステップ１５１３へ進む。背景上にない場合は、ステップ１５０３へ進む。ステップ１５０３で、現在のポインタがオブジェクト上にあるかを判定する。オブジェクト上にある場合は、画面上でポインタを移動するステップ１５１３へ進む。オブジェクト上にない場合はステップ１５０４へ進み、次のポインタ位置を背景座標系の値にする。ステップ１５０５で、繰り返し処理を行うためｉ_1631の初期値を設定する。ステップ１５０６で、（ＯＸ，ＯＹ）_1623にｉ番目オブジェクトの中心座標を代入する。ステップ１５０７で、次のポインタ位置がｉ番目のオブジェクト上にあるかを判定する。ポインタがオブジェクト上にない場合、ステップ１５０８に進み、ｉ_1631を１だけ増加させる。ステップ１５０９で、ｉ_1631がｎ_1603以下の場合はステップ１５０６へ戻る。ｉ_1631がｎ_1603より大きい場合は、ステップ１５１３で、次のポインタ位置へ移動し、現在のポインタ位置を更新する。ステップ１５０７で、次のポインタ位置がｉ番目のオブジェクト上にあると判定した場合は、ステップ１５１０に進む。ステップ１５１０で、次のポインタ位置を（ＯＸ，ＯＹ）_1623とし、１５１１で次のポインタ位置を画面座標系の値にすると共に中心位置を補正する。ステップ１５１２で、ポインタがｉ番目のオブジェクト上にあることを示すために指示オブジェクト_1617をｉ_1631に、ポインタが設定距離に入ったことを示すためにフラグ_1616を０に設定するとともに、滞留時間_1618を０に設定する。次にステップ１５１３を行った後、終了へ進む。
【００４８】
このように、本実施の形態では、始点からの設定距離で判断するため、小さいオブジェクトが多数集まっている場合においても、特許3360347号公報記載の技術のように、領域が重なることを考慮する必要がない。すなわち、始点が含まれるオブジェクトがわかっており、その始点からの位置を測ることによって、ポインタが属するオブジェクトから次のオブジェクトへ移動するかどうかを決めるため、たとえオブジェクト同士の設定距離円が重なっていても移動の如何の判断が可能だからである。特許3360347号公報記載の技術の場合は、1つの領域に1つのアイコン等を割り当て、領域へ入ったか否かのみを拠り所としているため、領域が重なった場合は判断することができない。このように隣の領域との距離が狭い場合でも、操作者の不随意運動の程度に応じた距離を設定することができ、ひいては的確なオブジェクト選択が可能となる。
【００４９】
なお、本実施の形態では、入力移動データと、実際の画面上でのポインタの位置データの管理をするために、２つの座標系を用いたが、本発明はこれに限るものではない。すなわち、１つの座標系において、入力移動データ自体を主記憶メモリ１０７などに累積させておくことも可能である。すなわち、実際ならば座標のどこに表示されているべきであるかという状態を把握するとともに、その情報を用いて、次のオブジェクトに移動すべきか否かを判断する構成とすることも可能である。
【００５０】
次に、図１３から図２５を用いて他の実施の形態について説明をする。本実施の形態では、オブジェクトが多数狭い領域に配列されていた第一の実施の形態と異なり、画面上にオブジェクトが散在する場合を説明する。
【００５１】
図１３は、パーソナルコンピュータの電源投入によりオペレーティングシステムの起動終了後の画面で、プログラム起動用のアイコンであるオブジェクト１７０１、１７０２とポインタ２０３が表示されている。
【００５２】
図１４は、操作者がマウスを使用してオブジェクト１７０２の上にポインタを移動し選択動作を行うことにより、プログラムが起動された後の画面である。このプログラムはゲームプログラムで、ゲーム画面１８０１の中には、地図が描かれた背景１８０２と矩形のアイコン１８０３が６個表示されている。また、オブジェクト内の番号は、オブジェクト管理のために割り付けたものである。番号は左のオブジェクトから順に割り付けている。ＴＡＢＬＥ１_3001とｎ_3002は、この番号順にオブジェクトの中心座標を記憶したテーブルとオブジェクトの個数である。この時の中心座標は、図１８に示すとおり、背景１８０２の左下端を原点とする背景座標系での値である。
【００５３】
図１５は、オブジェクト１８０３の詳細で、点線１９０１と五角形１９０２で区切られる領域１９０３が透明であることを示す。なお、透明でない部分は、五角形１９０２ではなく、ゲームの内容に応じて城など様々な形状をとって良い。また、点線１９０１は実際には画面に表示されない。図１６は、これらのオブジェクトが、オブジェクトの中心と同じ位置にある円１と円２により３つの領域に分割されていることを示す。
【００５４】
図１７は、ポインタをオブジェクトに近づけた時に、ポインタがどのように移動するのかを説明する図である。ポインタを移動して、次のポインタ位置座標が背景１８０２と領域１の境界を越えたときに（図１７（１））、領域１の規定位置へ自動移動する（図１７（２））。この規定位置は、次のポインタの位置とオブジェクト中心を通る直線と点線１９０１との交点をとり、この交点と外側の円周上の一番近い点を結ぶ線分の中点とする。さらに、ポインタを移動して、次のポインタ位置座標が外側にある円を越えた時に（図１７（３））、領域２の規定位置へ自動移動する。この規定位置は、次のポインタの位置とオブジェクト中心を通る直線と２つの円の中間にある円周（一点鎖線）上との交点とする（図１７（４））。さらに、ポインタを移動して、次のポインタ位置座標が内側にある円を越えた時に（図１７（５））、領域３の円の中心へ自動移動する（図１７（６））。以上は、ポインタをオブジェクトの外側から中心へ向けて移動したときの動作であるが、ポインタをオブジェクト中心から外側へ移動した時にも、同様に次のポインタ位置が境界を越えた時に、外側の新領域の規定位置へ自動移動する。
【００５５】
以上の動作を実現するプログラムの処理について説明するが、プログラムが使用する変数や定数をまとめて図２５に一覧表として示す。以下より本実施例を実現するプログラムの処理フローを説明するが、演算対象としての変数や定数は、その名称の後に番号（図２５に記載）を付記する。
【００５６】
図１９はゲームプログラムが起動した直後に動作するプログラムの処理フローである。ステップ２４０１で、図１９のマウス割り込み処理で使用するホッピング_3009に０を代入する。ステップ２４０２で、現在のポインタ位置が背景１８０２上にあるかを判定し、なければステップ２４０４でフラグ_3010に０を、ステップ２４１２で指示オブジェクト_3011に０を代入する。背景１８０２上にあれば、ステップ２４０３に進み、フラグ_3010に１を代入する。ステップ２４０５で現在ポインタ位置を背景座標系の値にする。ステップ２４０６で繰り返し処理のためｉ_3024に１を代入する。ステップ２４０７で（ＯＸ，ＯＹ）_3016に、ｉ番目のオブジェクトの中心座標を代入し、現在ポインタ位置と中心座標位置との差をＸ成分、Ｙ成分毎に求める。ステップ２４０８で現在ポインタ位置がｉ番目のオブジェクト上にあるかを判定する。あればステップ２４１１で指示オブジェクトにｉ_3024を代入し終了する。オブジェクト上になければ、ステップ２４０９でｉ_3024を１増加し、ステップ２４１０でｉ_3024がｎ以下であることを判定する。ｎ以下であればステップ２４０７へ戻る。ｉ_3024がｎ_3002より大ならばステップ２４１１へ進み、指示オブジェクトに０を代入し終了する。
【００５７】
図２０はマウス割り込み処理のフローである。この割り込み処理はオペレーティングシステムが起動した直後から動作するプログラムである。ステップ２５０１で、現在ポインタ位置と、マウス１０１から送られてくる移動量δｌと移動方向の角度θとから、次のポインタ位置を求める。ここで、現在ポインタ位置（ＣＰｘ，ＣＰｙ）_3014の初期値は、オペレーティングシステムの起動時に設定される。ステップ２５０２でホッピング_3009が１であるかを判定し、１ならばステップ２５０３へ進み次のポインタ位置へ移動する。１でなければステップ２５０７へ進む。ステップ２５０３で、フラグ_3010が０であるかを判定し、０すなわち現在ポインタが背景上になければステップ２５０７へ進む。現在ポインタが背景上にあればステップ２５０４へ移動し、指示オブジェクトが０かを判定する。０でない、すなわち現在ポインタ位置がオブジェクト上にあればステップ２５０６へ進む。現在ポインタ位置がオブジェクト上になければステップ２５０５へ進む。ステップ２５０５，２５０６の次は、ステップ２５０７で、次のポインタ位置へ移動し、現在のポインタ位置を更新する。
【００５８】
図２１は現在ポインタ位置がオブジェクト上にない場合の処理フローである。ステップ２６０１で次のポインタ位置が背景上にあるかを判定し、なければ終了する。背景上にあればステップ２６０２に進む。ステップ２６０２で、次のポインタ位置を背景座標系の値にする。ステップ２６０３で繰り返し処理のためｉ_3024に初期値を代入する。ステップ２６０４で（ＯＸ，ＯＹ）_3016にｉ番目オブジェクトの中心座標を代入し、次のポインタ位置とｉ番目オブジェクトの中心座標との差を、Ｘ成分、Ｙ成分毎に求める。ステップ２６０５で次のポインタ位置がｉ番目のオブジェクト上にあるかを判定する。オブジェクト上になければステップ２６０６へ進みｉ_3024を１だけ増加する。ステップ２６０７でｉ_3024がｎ_3002以下であることを判定する。ｎ_3002以下であればステップ２６０４へ戻る。ｉ_3024がｎより大ならば終了へ進む。ステップ２６０５で次のポインタ位置がｉ番目のオブジェクト上にあると判定した場合は、ステップ２６０８へ進み、指示オブジェクトにｉ_3024を代入する。ステップ２６０９でオブジェクト中心から次のポインタ位置までの距離Ｌ１_3017を求める。ステップ２６１０で、Ｌ１_3017が円１（図１６）の半径ｒ１_3007より小さいかを判定する。小さければステップ２６１１へ進み、Ｌ１_3017が円２（図１６）の半径ｒ２_3008より小さいかを判定する。小さければ次のポインタ位置は領域３（図２１６）に進入したことになるので、次のポインタ位置を（ＯＸ，ＯＹ）_3016とする。ステップ２６１０でＮＯと判定されたらステップ２６１２へ進む。ステップ２６１１でＮＯと判定されたらステップ２６１４へ進む。
【００５９】
図２２は、現在のポインタがオブジェクト上にある場合の処理フローである。ステップ２７０１で次のポインタ位置を背景座標系の値にする。ステップ２７０２で、（ＯＸ，ＯＹ）_3016に現在ポインタがあるオブジェクトの中心座標を代入し、この中心座標と次のポインタ位置座標との差を求める。ステップ２７０３で、次のポインタ位置がオブジェクト上にあるかを判定し、オブジェクト上にない場合は、ステップ２７０４へ進み、指示オブジェクト_3011に０を代入し終了する。オブジェクト上にある場合は、ステップ２７０５へ進み、オブジェクト中心から次のポインタ位置までの距離Ｌ１_3017を求める。ステップ２７０６でＬ１_3017が円１（図１６）の半径ｒ１_3007より小さいかを判定する。小さければステップ２７０７へ進み、Ｌ１が円２（図１６）の半径ｒ２_3008より小さいかを判定する。小さければステップ２７０９で現在ポインタ位置が領域３（図１６）にあるかを判定し、あれば終了、なければステップ２７１１へ進み次のポインタ位置をオブジェクトの中心座標とする。ステップ２７０７でＮＯと判定された場合は、ステップ２７１０で現在ポインタ位置が領域２（図１６）にあるかを判定し、あれば終了、なければステップ２７１２へ進む。ステップ２７０６でＮＯと判定された場合は、ステップ２７０８で現在ポインタ位置が領域１（図１６）にあるかを判定し、あれば終了、なければステップ２７１３へ進む。
【００６０】
図２３は次のポインタ位置が領域１（図１６）に進入した時の処理で、次のポインタ位置を求めている。図２４は次のポインタ位置が領域２（図１６）に進入した時の処理で、次のポインタ位置を求めている。以上で請求項６の実施例を終えるが、本実施例では、ゲームプログラムの画面に表示される領域に分割されたオブジェクトが配置された画面は一つとした。複数の画面を持つ場合には、ゲームソフトプログラムが、画面毎に図２５の定数情報を持ち、画面が切り替えられた時に、対応するこれらの定数を主記憶メモリ１０７に書き込めば良い。
【００６１】
次に、第一、第二の実施の形態の中間程度にオブジェクトが散在している場合の実施の形態について説明する。
【００６２】
図２６は、パーソナルコンピュータの電源を投入してオペレーティングシステムが動作した後に、機器運転のシミュレーションプログラムが自動実行された直後の画面で、表示装置画面９０１の上にシミュレーションプログラムの画面３１０１とポインタ２０３が表示された状態である。ポインタ２０３は、操作者がマウス１０１を操作して、画面９０１上の任意の位置にポインタを移動できるものとする。シミュレーションプログラムの画面３１０１は、運転コースなどの各種指定を行うためのメニューバー３１０２、ガイダンス表示エリア３１０３、１６個の機器運転用ボタン３１０４、２個の緊急用ボタン３１０５、機器運転速度などを表示する８個のメーター３１０６、機器の状況を示すためインジケーター３１０７から構成される。操作者は、ガイダンス表示エリア３１０３に表示される操作ガイダンスやメーター３１０６、インジケーター３１０７を見ながら、機器運転用ボタン３１０４を選択して機器の運転を行う。また、緊急用ボタン３１０５は、運転中にある条件を満たした時に、マウスで選択されるべきボタンである。以下より、機器運転用ボタン３１０４と緊急用ボタン３１０５は、マウス１０１による選択対象となるので、その名称をオブジェクトと記して説明する。
【００６３】
図３２は、本実施例を実現するプログラムが使用する定数と変数である。プログラムの説明で、演算対象としての変数や定数を引用する場合は、その名称の後に番号（図３２に記載）を付記する。
【００６４】
図２８はマウス割り込み処理のフローで、オペレーティングシステムが起動した直後から動作するプログラムである。ここで使用している（ＣＰｘ，ＣＰｙ）_3709は、オペレーティングシステムの起動時に現在のポインタ位置に初期設定される。ステップ３３０１で、現在ポインタ位置と、マウス１０１から送られてくる移動量δｌ_3712と移動方向の角度δθ_3713とから次のポインタ位置を求める。ここで、現在のポインタ位置と次のポインタ位置は、図２７に示すように、表示装置画面９０１の左下端９０２を原点とする画面座標系の値である。ステップ３３０２で、次のポインタ位置へ移動し、現在のポインタ位置を更新する。
【００６５】
図２９は、シミュレーションプログラムの処理フローである。ステップ３４０１で、操作者のマウス１０１のボタン操作により、オペレーティングシステムからのクリックイベントが発生したかを判定する。イベントが発生していない場合は、ステップ３４０２で、速度_3714やエンジン回転数_3715などを、現在の運転状態に応じて更新する。また、必要に応じてガイダンス表示エリア３１０３にメッセージを表示することや、インジケータ３１０７の点灯表示を行う。ステップ３４０３で、速度_3714が最低速度_3705よりも下がった場合には、ステップ３４０４で自動移動先_3709に１を代入する。ステップ３４０５でエンジン回転数_3715が限界_3706を超えた場合には、ステップ３４０６で自動移動先_3711に２を代入する。ステップ３４０４、ステップ３４０６の次は、ステップ３４０７へ進み、次に選択すべきオブジェクトへポインタを自動移動する処理を行い、ステップ３４０１へ戻る。ステップ３４０１で、クリックイベントが発生した場合は、ステップ３４０８でメニューがクリックされたかを判定する。
【００６６】
メニューでない場合は、ステップ３４０９でオブジェクトがクリックされたかを判定する。オブジェクトがクリックされた場合は、ステップ３４１０で選択されたオブジェクトに対応する処理を行う。オブジェクトがクリックされていない場合はステップ３４０１へ戻る。ステップ３４０８で、メニューがクリックされた場合は、ステップ３４１１で、メニュー項目の終了をクリックさたれかを判定する。終了がクリックされた場合は、シミュレーションプログラムを終了する。終了がクリックされていない場合は、ステップ３４１２で、選択されたメニュー項目に対応する処理を行う。ステップ３４１０とステップ３４１２の次は、ステップ３４０１に戻る。
【００６７】
図３０は、ポインタ自動移動（ステップ３４０７）の処理フローである。ステップ３５０１で、次のポインタ位置を、自動移動先_3711で指定されるオブジェクトの中心座標とする。ここで、ＴＡＢＬＥ１_3701は、自動移動先となるオブジェクトの中心座標を記憶したテーブルである。この中心座標は、図２７に示すとおり、シミュレーションプログラムの画面３１０１の左下端３２０１を原点とする背景座標系での値である。ステップ３５０２で、次のポインタ位置を画面座標系の値にすると共に中心位置を補正する。ステップ３５０３で、次のポインタ位置へ移動し、現在のポインタ位置を更新する。ステップ３５０４で、ガイダンス表示エリア３１０３に、ＭＥＳＳＡＧＥ_3704から自動移動先_3711をインデックスとしてメッセージデータを取得して表示する。図３１は、ＭＥＳＳＡＧＥ_3704の内容である。
【００６８】
また、本発明は次のような側面を有する。
【００６９】
第一に、ディスプレイ画面上に複数個のオブジェクトが配置されている時に、入力装置を動かして目的のオブジェクトへポインタを合わせる指示操作において、オブジェクト間の距離が遠い場合や、オブジェクトが大きい場合は時間がかかるという課題を解決する。また、オブジェクトが特定できない場合に、ポインタが設定距離の外へ移動することを許可すると、不随意運動のある操作者にとっては、ポインタが背景上に移動してしまうため指示操作が難しくなるという課題がある。許可しない場合は、背景の外にあるオブジェクトを指示できないという課題がある。動作モードの設定は、この２つの課題を解決する。
【００７０】
従って、表示装置の画面の左下端を原点とする画面座標系を設け、この座標系における次のポインタ位置座標を、現在ポインタ位置座標と、入力装置からのポインタ移動量と移動方向の情報から求め、次のポインタ位置座標にポインタを移動するステップ（プログラムの処理単位）を処理装置に設ける。表示装置の画面上に表示されている背景の左下端を原点とする背景座標系を設け、この座標系における各々のオブジェクトの中心位置座標と、各々のオブジェクトの形状情報を処理装置のメモリに記憶する。このため、オブジェクトの中心位置座標を参照し、次のポインタ位置座標がオブジェクトの中心から設定距離よりも内側にあるか外側にあるかどうかの判定ステップと、外側にあると判定した場合に、次に選択すべきオブジェクトを特定し、特定したオブジェクトの規定位置を求め、その規程位置にポインタを自動移動させるステップを処理装置に設ける。オブジェクトが特定できない場合は、動作モードを判定し設定距離外への移動を許可している場合にのみ、次のポインタ位置座標へポインタを移動するステップと、この動作モードを変更するためのステップを処理装置に設ける。
【００７１】
上記構成により、ポインタがオブジェクト中心から設定距離まで到達した時に、ポインタの位置情報に基づき次に選択すべきオブジェクトを特定し、特定されたオブジェクトの規定位置に自動移動するため、入力装置を大きく移動することなく、ポインタをオブジェクトに合わせることができる。また、特定のオブジェクトが見つからない場合は、ポインタがオブジェクトの外へは出ないようにする動作モードにすることで、入力装置を誤ってオブジェクトが存在しない方向に移動した場合でも、ポインタはオブジェクト上に停止しているため、目的のオブジェクトを選択しやすくなる効果がある。なお、背景の外にある別のオブジェクトを指示するには、動作モードを変更する。
【００７２】
第二に、次の２つの課題を解決することを要する。一つめは、手指の不随意運動のある人が操作する場合で、ポインタを目的のオブジェクトとは違った方向へ速く動かしたりすることがあり、意図しないオブジェクトへポインタが自動移動してしまうという課題である。二つめは、手指の動作範囲が狭い人が操作する場合で、ポインタを設定距離の外側に移動するまでに時間がかかるという課題である。
【００７３】
従って、ユーザーの運動特性に合わせて設定できる定数を処理装置のメモリに記憶する。ポインタがオブジェクトの中心から設定距離の内側に存在する間は、入力装置からのポインタ移動量にこの定数を乗じて画面座標系上での移動量を求め、この移動量だけポインタを移動するステップを処理装置に設ける。
【００７４】
上記構成により、入力装置を速く動かしてしまう人にはポインタ速度を遅く設定する、入力装置をゆっくり動かす人や、早く動かすが手指の移動範囲が狭いために入力装置を初期位置に戻して再び移動する操作を繰り返す人に対しては、ポインタ移動速度を速く設定することにより、容易に設定距離を越える位置にポインタを移動できる。
【００７５】
第三に、第一の構成を実施した時に起こる課題で、操作者の中には、緊張が高まる等の原因から、入力装置を急激な速度で意図しない方向へ動かした時に、ポインタは意図しないオブジェクトへ自動移動するという課題を解決する。そのための構成として、入力装置からポインタ移動量が処理装置に送られた時の時刻を処理装置で記憶するステップと、送られて来た移動量を前回移動量が送られてきた時からの経過時間で除して入力装置の移動速度を計算し、この移動速度が設定速度よりも大きい場合はポインタを移動しないことにするステップを処理装置に設ける。この構成により、不随意運動により入力装置を急激な速度で動かした場合でもポインタは停止したままとなるので、目的外のオブジェクトへポインタが自動移動することを防ぐことができる。
【００７６】
第四に、第一の構成を実施した時に起こる課題で、操作者は、ポインタが目的のオブジェクトの規定位置に自動移動した直後に、ポインタ移動停止のために入力装置を操作するが、操作者の運動特性によりこの操作が遅れ、さらに別のオブジェクトへポインタが自動移動するという課題を解決する。ポインタをオブジェクトに自動移動させた直後に、タイマーで時間の計測を開始し、設定時間を経過しない間は、入力装置からポインタ移動量の情報が送られてきても、ポインタを移動しないことにするステップを処理装置に設ける。この構成により、操作者は、ポインタが目的のオブジェクトに自動移動したことを確認し入力装置の動きを直ちに止める動作をすることが必要となるが、操作者の運動特性によりこの動作ができない場合がある。このような場合に、無効時間を設けることで、目的のオブジェクトに自動移動した後にまた別のオブジェクトへ移動してしまうことを防ぐ効果がある。
【００７７】
第五に、操作者が、背景からオブジェクトにポインタを移動する操作において、ポインタがオブジェクトと背景の境界をわずかに越えた位置に移動した後に、操作者はオブジェクト選択のための動作として例えば入力装置に付いているボタンを押すが、ボタンを押す動作の影響でポインタがオブジェクトの外の方向へ移動してしまい、オブジェクトが選択できないという課題と、ポインタがオブジェクトと背景の境界のわずか手前の位置に来た時に、境界を越えたと誤認識して、オブジェクト選択のための動作をしてしまう課題を解決する。そのための構成として、オブジェクトの形状情報と中心位置座標を参照して、ポインタが背景からオブジェクト上に移動するかどうかの判定ステップと、移動すると判定した場合に、オブジェクト内の規定位置を求め、その規程位置にポインタを自動移動させるステップを処理装置に設ける。
【００７８】
第六に、オブジェクトの領域が複数に分割されて、領域によって選択した結果により起こる事象（例えば、属性情報を表示する）が異なり、オブジェクト上に境界線が明示されていない場合は、ポインタが目的の領域に入っているのかどうかが、オブジェクト選択動作をして初めて判別するという課題と、領域の境界を越える位置までポインタを移動した時に、オブジェクトの特定領域を選択するために、入力装置を操作するが、その操作の影響でポインタが元の領域に戻ってしまい、オブジェクトの特定領域が選択できないという課題を解決する。
【００７９】
上記課題のため、オブジェクト領域の分割情報を処理装置のメモリに記憶する。次のポインタ位置座標が境界を越えた時に、この分割情報を参照してその領域の規定位置を求めるステップと、求めた規定位置へポインタを自動移動するステップを処理装置に設ける。
【００８０】
第五、第六の構成により、ポインタがオブジェクトの境界を越えればオブジェクト規定位置にポインタが移動するので、オブジェクトの選択操作をした時にポインタの位置がずれて選択できない現象や、ポインタがオブジェクト内に入ったという誤認識がなくなる。
【００８１】
また、表示画面上に、多くのオブジェクトが表示されていて、通常は操作者が入力装置を使用し、その中から良く使う数個のオブジェクトを選択して操作している時に、処理装置内のプログラムの条件判定により、次に選択すべきオブジェクトが決定されるような場合に、操作者はそのオブジェクトへポインタを移動しなければならないという課題を解決する。
【００８２】
上記課題のため、処理装置のプログラムの条件判定により次に選択すべきオブジェクトの中心位置座標を処理装置のメモリに記憶する。プログラムの条件判定を満たした場合に、その中心位置座標から規定位置を求め、その規定位置へポインタを自動移動するステップを処理装置に設ける。この構成により、通常は任意にオブジェクトを指示する操作を行っているが、処理装置の条件判定により指示すべきオブシェクトが決まった時に、操作者はそのオブジェクトを探して指示する必要がなくなり、直ぐに選択操作をすることができる。
【図面の簡単な説明】
【００８３】
【図１】オブジェクト選択方式を実現するパーソナルコンピュータの概略構成の一例を示す図である。
【図２】文書作成ソフトウェアとソフトキーボードが自動実行された直後の画面の一例を示す図である。
【図３】オブジェクトの特定方法の一例を示す図である。
【図４】オブジェクト管理表の一例を示す図である。
【図５】画面座標系と背景座標系の一例を示す図である。
【図６】ソフトキーボード起動時の初期処理のフローの一例を示す図である。
【図７】マウス割り込み処理フローの一例を示す図である。
【図８】設定距離内での処理フローの一例を示す図である。
【図９】オブジェクト特定処理フローの一例を示す図である。
【図１０】オブジェクト方向探索処理フローの一例を示す図である。
【図１１】設定距離外での処理フローの一例を示す図である。
【図１２】プログラムで使用する定数及び変数の一例を示す図である。
【図１３】オペレーティングシステム起動後の画面の一例を示す図である。
【図１４】ゲームプログラムの画面の一例を示す図である。
【図１５】オブジェクトの詳細の一例を示す図である。
【図１６】オブジェクトの領域の一例を示す図である。
【図１７】オブジェクトの領域へのポインタ自動移動の一例を示す図である。
【図１８】オブジェクト番号の割付けの一例を示す図である。
【図１９】画面座標系と背景座標系の一例を示す図である。
【図２０】ゲームプログラム起動時の初期処理のフローの一例を示す図である。
【図２１】マウス割り込み処理フローの一例を示す図である。
【図２２】ポインタがオブジェクト上にある場合の処理フローの一例を示す図である。
【図２３】領域１進入処理フローの一例を示す図である。
【図２４】領域２進入処理フローの一例を示す図である。
【図２５】プログラムで使用する定数及び変数の一例を示す図である。
【図２６】シミュレーションプログラムの画面の一例を示す図である。
【図２７】画面座標系と背景座標系の一例を示す図である。
【図２８】マウス割り込み処理フローの一例を示す図である。
【図２９】シミュレーションプログラムの処理フローの一例を示す図である。
【図３０】ポインタ自動移動の処理フローの一例を示す図である。
【図３１】ＭＥＳＳＡＧＥの内容の一例を示す図である。
【図３２】プログラムで使用する定数及び変数の一例を示す図である。
【符号の説明】
【００８４】
１０１…入力装置、１０２…メモリ、１０３…ＣＰＵ、１０４…表示部、１０５…表示装置、２０１…文書作成ソフトウェア画面、２０２…ソフトキーボード、２０３…ポインタ、２０４…メニュー、２０５…文章表示領域、２０６…文字入力カーソル、２０７…スクロールバー、３０１…背景、３０２…キー、４０１…文字キー、４０２…機能キー（カーソル移動）、４０３…機能キー（動作モード切替）、５０１…設定距離、５０２…対角線、５０３…下の領域、５０４…下に配置しキー、６０１…左の領域、９０１…表示装置画面、９０２…画面座標系の原点、９０３…背景座標系の原点、１７０１…プログラム起動用のアイコン、１７０２…ゲームプログラム起動用のアイコン、１８０１…ゲーム画面、１８０２…背景、１８０３…アイコン、１９０１…アイコンと背景との境界、１９０２…透明部分と不透明部分との境界、１９０３…透明部分、３１０１…シミュレーションプログラムの画面、３１０２…メニューバー、３１０３…ガイダンス表示エリア、３１０４…機器運転用ボタン、３１０５…緊急用ボタン、３１０６…メーター、３１０７…インジケーター、３２０１…背景座標系の原点
【図１】
2006113831.tif 000003
【図２】
2006113831.tif 000004
【図３】
2006113831.tif 000005
【図４】
2006113831.tif 000006
【図５】
2006113831.tif 000007
【図６】
2006113831.tif 000008
【図７】
2006113831.tif 000009
【図８】
2006113831.tif 000010
【図９】
2006113831.tif 000011
【図１０】
2006113831.tif 000012
【図１１】
2006113831.tif 000013
【図１２】
2006113831.tif 000014
【図１３】
2006113831.tif 000015
【図１４】
2006113831.tif 000016
【図１５】
2006113831.tif 000017
【図１６】
2006113831.tif 000018
【図１７】
2006113831.tif 000019
【図１８】
2006113831.tif 000020
【図１９】
2006113831.tif 000021
【図２０】
2006113831.tif 000022
【図２１】
2006113831.tif 000023
【図２２】
2006113831.tif 000024
【図２３】
2006113831.tif 000025
【図２４】
2006113831.tif 000026
【図２５】
2006113831.tif 000027
【図２６】
2006113831.tif 000028
【図２７】
2006113831.tif 000029
【図２８】
2006113831.tif 000030
【図２９】
2006113831.tif 000031
【図３０】
2006113831.tif 000032
【図３１】
2006113831.tif 000033
【図３２】
2006113831.tif 000034