(57)【特許請求の範囲】
【請求項１】
ポインティングデバイスおよび当該ポインティングデバイスとは異なる入力デバイスからそれぞれ出力される操作信号が利用可能であり、当該操作信号に応じて所定の情報処理を行う情報処理装置のコンピュータで実行される情報処理プログラムであって、
前記コンピュータを、
前記ポインティングデバイスから出力される第１操作信号を取得する第１操作信号取得手段と、
前記入力デバイスから出力される第２操作信号を取得する第２操作信号取得手段と、
前記第１操作信号に基づいて、所定の平面上に対する指示位置を算出する指示位置算出手段と、
前記第１操作信号に応じて前記情報処理を行う第１操作モード、および前記指示位置が前記平面上における所定の領域内にあるか否かに関わらず前記第２操作信号に応じて前記情報処理を行う第２操作モードの何れか一方の操作モードで前記情報処理を行う処理手段と、
前記第２操作モードにおいて、前記指示位置が前記所定の領域内から一旦当該所定の領域外へ出た後に、当該所定の領域内に入ったか否かを判定する指示位置判定手段と、
前記第２操作モードにおいて前記指示位置判定手段における判定結果が肯定となった場合に、前記第１操作モードに切り替えて前記情報処理に用いる操作信号を前記第２操作信号から前記第１操作信号に切り替える切替手段として機能させる、情報処理プログラム。
【請求項２】
前記第２操作信号に基づいて、前記入力デバイスが入力操作されているか否かを判定する入力判定手段として、さらに前記コンピュータを機能させ、
前記切替手段は、前記第２操作モードにおいて前記入力判定手段における判定結果が否定であり、かつ、前記指示位置判定手段における判定結果が肯定となった場合に、前記第１操作モードに切り替えて前記情報処理に用いる操作信号を前記第２操作信号から前記第１操作信号に切り替える、請求項１に記載の情報処理プログラム。
【請求項３】
前記切替手段は、前記第２操作モードにおいて前記入力判定手段における判定結果が所定時間以上継続して否定であり、かつ、前記指示位置判定手段における判定結果が肯定となった場合に、前記第１操作モードに切り替えて前記情報処理に用いる操作信号を前記第２操作信号から前記第１操作信号に切り替える、請求項２に記載の情報処理プログラム。
【請求項４】
前記ポインティングデバイスと前記入力デバイスとは異なる別の入力デバイスから出力される第３操作信号を取得する第３操作信号取得手段として、さらに前記コンピュータを機能させ、
前記処理手段は、前記第３操作信号に基づいて前記情報処理に関連する情報処理をさらに行い、
前記入力判定手段は、前記入力デバイスおよび前記別の入力デバイスがともに入力操作されているか否かを判定する、請求項２または３に記載の情報処理プログラム。
【請求項５】
前記第２操作信号に基づいて、前記入力デバイスが入力操作されているか否かを判定する入力判定手段として、さらに前記コンピュータを機能させ、
前記切替手段は、前記第１操作モードにおいて前記入力判定手段における判定結果が肯定となった場合に、前記第２操作モードに切り替えて前記情報処理に用いる操作信号を前記第１操作信号から前記第２操作信号に切り替える、請求項１に記載の情報処理プログラム。
【請求項６】
前記処理手段における情報処理結果を示す画像を表示装置に表示する表示制御手段として、さらに前記コンピュータを機能させ、
前記指示位置判定手段は、前記平面上において前記表示装置の表示画面全体に相当する領域を前記所定の領域として設定し、前記指示位置が当該表示画面全体に相当する領域内から一旦当該領域外へ出た後に、当該表示画面全体に相当する領域内に入ったか否かを判定する、請求項１乃至５の何れか１つに記載の情報処理プログラム。
【請求項７】
前記第１操作信号を出力するポインティングデバイスは、入力装置本体に固設されて当該入力装置本体を基準に所定方向の周辺を撮像する、または当該入力装置本体の外部に設けられて当該入力装置本体を撮像する撮像部を含み、当該撮像部によって撮像した撮像画像自体または撮像画像に所定の演算を行った結果を示すデータを前記第１操作信号として出力し、
前記指示位置算出手段は、前記撮像画像の中に撮像された撮像対象の位置に基づいて、前記指示位置を算出し、
前記入力デバイスは、ユーザの方向入力操作によって操作される方向指示部を含み、当該方向指示部が方向入力操作された方向を示すデータを前記第２操作信号として出力する、請求項１乃至６の何れか１つに記載の情報処理プログラム。
【請求項８】
前記処理手段における情報処理結果を示す画像を表示装置に表示する表示制御手段として、さらに前記コンピュータを機能させ、
前記撮像対象は、前記表示装置付近に設けられ、
前記撮像部は、前記入力装置本体に固設され、前記所定方向の周辺に前記表示装置が存在する場合に前記撮像対象を撮像し、
前記方向指示部は、前記所定方向が前記表示装置に表示された表示画像における上方向の方向入力操作に対応するように前記入力装置本体に設けられる、請求項７に記載の情報処理プログラム。
【請求項９】
前記処理手段における情報処理結果を示す画像を表示装置に表示する表示制御手段として、さらに前記コンピュータを機能させ、
前記処理手段は、前記切替手段により前記第２操作モードから前記第１操作モードに切り替えられたときに、前記指示位置を示すポインタを設定し、
前記表示制御手段は、前記ポインタが設定されている場合、前記情報処理結果を示す画像における前記指示位置に当該ポインタを付与して前記表示装置に表示する、請求項１乃至８の何れか１つに記載の情報処理プログラム。
【請求項１０】
前記処理手段における情報処理結果を示す画像を表示装置に表示する表示制御手段として、さらに前記コンピュータを機能させ、
前記処理手段は、前記表示装置に表示された複数の選択肢から前記指示位置または前記第２操作信号に対応する１つの選択肢を選択する処理を前記情報処理として行う、請求項１乃至９の何れか１つに記載の情報処理プログラム。
【請求項１１】
前記処理手段は、前記第１操作モードの場合に前記表示装置に表示された複数の選択肢から前記指示位置と重なる１つの選択肢を選択し、前記第２操作モードの場合に前記複数の選択肢から選択されている選択対象を前記第２操作信号が示す方向入力操作の方向にずらして１つの選択肢を選択する、請求項１０に記載の情報処理プログラム。
【請求項１２】
前記処理手段は、前記第２操作モードの場合に前記複数の選択肢から選択されている１つの選択肢に第１態様の標識を付与して設定し、
前記処理手段は、前記第１操作モードで前記表示装置に表示された複数の選択肢の何れかと前記指示位置とが重なる場合、当該重なる１つの選択肢に当該第１態様の標識を付与して設定し、前記表示装置に表示された複数の選択肢の何れとも前記指示位置が重ならない場合、直前まで選択されていた１つの選択肢に付与されていた標識を当該第１態様とは異なる第２態様の標識に変化させて設定し、
前記表示制御手段は、前記情報処理結果を示す画像における前記１つの選択肢に、前記処理手段が設定した標識を付与して前記表示装置に表示する、請求項１０または１１に記載の情報処理プログラム。
【請求項１３】
ポインティングデバイスおよび当該ポインティングデバイスとは異なる入力デバイスからそれぞれ出力される操作信号が利用可能であり、当該操作信号に応じて所定の情報処理を行う情報処理装置であって、
前記ポインティングデバイスから出力される第１操作信号を取得する第１操作信号取得手段と、
前記入力デバイスから出力される第２操作信号を取得する第２操作信号取得手段と、
前記第１操作信号に基づいて、所定の平面上に対する指示位置を算出する指示位置算出手段と、
前記第１操作信号に応じて前記情報処理を行う第１操作モード、および前記指示位置が前記平面上における所定の領域内にあるか否かに関わらず前記第２操作信号に応じて前記情報処理を行う第２操作モードの何れか一方の操作モードで前記情報処理を行う処理手段と、
前記第２操作モードにおいて、前記指示位置が前記所定の領域内から一旦当該所定の領域外へ出た後に、当該所定の領域内に入ったか否かを判定する指示位置判定手段と、
前記第２操作モードにおいて前記指示位置判定手段における判定結果が肯定となった場合に、前記第１操作モードに切り替えて前記情報処理に用いる操作信号を前記第２操作信号から前記第１操作信号に切り替える切替手段とを備える、情報処理装置。
【請求項１４】
複数の装置が通信可能に構成され、ポインティングデバイスおよび当該ポインティングデバイスとは異なる入力デバイスからそれぞれ出力される操作信号が利用可能であり、当該操作信号に応じて所定の情報処理を行う情報処理システムであって、
前記ポインティングデバイスから出力される第１操作信号を取得する第１操作信号取得手段と、
前記入力デバイスから出力される第２操作信号を取得する第２操作信号取得手段と、
前記第１操作信号に基づいて、所定の平面上に対する指示位置を算出する指示位置算出手段と、
前記第１操作信号に応じて前記情報処理を行う第１操作モード、および前記指示位置が前記平面上における所定の領域内にあるか否かに関わらず前記第２操作信号に応じて前記情報処理を行う第２操作モードの何れか一方の操作モードで前記情報処理を行う処理手段と、
前記第２操作モードにおいて、前記指示位置が前記所定の領域内から一旦当該所定の領域外へ出た後に、当該所定の領域内に入ったか否かを判定する指示位置判定手段と、
前記第２操作モードにおいて前記指示位置判定手段における判定結果が肯定となった場合に、前記第１操作モードに切り替えて前記情報処理に用いる操作信号を前記第２操作信号から前記第１操作信号に切り替える切替手段とを備える、情報処理システム。
【請求項１５】
ポインティングデバイスおよび当該ポインティングデバイスとは異なる入力デバイスからそれぞれ出力される操作信号が利用可能であり、当該操作信号に応じて所定の情報処理が可能な少なくとも１つの情報処理装置により構成される情報処理システムに含まれる１つのプロセッサまたは複数のプロセッサ間の協働により実行される情報処理方法であって、
前記ポインティングデバイスから出力される第１操作信号を取得する第１操作信号取得ステップと、
前記入力デバイスから出力される第２操作信号を取得する第２操作信号取得ステップと、
前記第１操作信号に基づいて、所定の平面上に対する指示位置を算出する指示位置算出ステップと、
前記第１操作信号に応じて前記情報処理を行う第１操作モード、および前記指示位置が前記平面上における所定の領域内にあるか否かに関わらず前記第２操作信号に応じて前記情報処理を行う第２操作モードの何れか一方の操作モードで前記情報処理を行う処理ステップと、
前記第２操作モードにおいて、前記指示位置が前記所定の領域内から一旦当該所定の領域外へ出た後に、当該所定の領域内に入ったか否かを判定する指示位置判定ステップと、
前記第２操作モードにおいて前記指示位置判定ステップにおける判定結果が肯定となった場合に、前記第１操作モードに切り替えて前記情報処理に用いる操作信号を前記第２操作信号から前記第１操作信号に切り替える切替ステップとを含む、情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法に関し、特に例えば、ポインティングデバイスおよび当該ポインティングデバイスとは異なる入力手段を用いた入力操作により所定の情報処理を行う情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法に関する。
【背景技術】
【０００２】
従来、複数の入力装置の一方を用いて、所定の情報処理を行う装置が知られている（例えば、特許文献１参照）。上記特許文献１には、複数の入力装置を用いた入力操作によって得られる複数の座標情報のうち、何れか一方の座標情報を選択し、情報処理を行うための座標情報として当該選択された座標情報を出力する座標入力装置切り替え装置が記載されている。例えば、上記特許文献１に記載された切り替え装置は、マウスを用いた入力操作によって得られる座標情報と、タブレットを用いた入力操作によって得られる座標情報とをそれぞれ取得し、マウスおよびタブレットの何れか一方を用いた入力操作が所定時間以上継続している場合に、当該所定時間以上継続している入力操作によって得られた座標情報を選択して出力している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０６−２０８４３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１に記載されている切り替え装置は、マウスおよびタブレットの一方から他方に入力操作を切り替える場合、当該他方の入力操作を所定時間継続させた後に切り替えられるため、ユーザの意図したタイミングで入力操作を切り替えることができない。
【０００５】
それ故に、本発明の目的は、複数の入力手段を用いて入力操作を行う際、当該入力操作の切り替えをユーザの意図に応じて行うことができる情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法を提供することである。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は例えば以下のような構成を採用し得る。なお、特許請求の範囲の記載を解釈する際に、特許請求の範囲の記載によってのみその範囲が解釈されるべきであることが理解され、特許請求の範囲の記載と本欄の記載とが矛盾する場合には、特許請求の範囲の記載が優先する。
【０００７】
本発明の情報処理プログラムの一構成例は、ポインティングデバイスおよび当該ポインティングデバイスとは異なる入力デバイスからそれぞれ出力される操作信号が利用可能であり、当該操作信号に応じて所定の情報処理を行う情報処理装置のコンピュータで実行される。上記情報処理プログラムは、第１操作信号取得手段、第２操作信号取得手段、指示位置算出手段、指示位置判定手段、切替手段、処理手段、および表示制御手段としてコンピュータを機能させる。第１操作信号取得手段は、ポインティングデバイスから出力される第１操作信号を取得する。第２操作信号取得手段は、入力デバイスから出力される第２操作信号を取得する。指示位置算出手段は、第１操作信号に基づいて、所定の平面上に対する指示位置を算出する。指示位置判定手段は、指示位置が平面上における所定の領域外から当該所定の領域内に入ったか否かを判定する。切替手段は、情報処理に第２操作信号が用いられている状態で指示位置判定手段における判定結果が肯定となった場合に、情報処理に用いる操作信号を第２操作信号から第１操作信号に切り替える。処理手段は、切替手段により情報処理に用いる操作信号が第２操作信号から第１操作信号に切り替えられたときに、指示位置に基づいて情報処理を行う。
【０００８】
上記によれば、ポインティングデバイスを用いた操作や異なる入力デバイスを用いた操作に応じて所定の情報処理を行う場合、ユーザの意図に応じて操作方法を切り替えることができる。
【０００９】
また、上記情報処理プログラムは、入力判定手段として、さらにコンピュータを機能させてもよい。入力判定手段は、第２操作信号に基づいて、入力デバイスが入力操作されているか否かを判定する。この場合、上記切替手段は、情報処理に第２操作信号が用いられている状態で入力判定手段における判定結果が否定であり、かつ、指示位置判定手段における判定結果が肯定となった場合に、情報処理に用いる操作信号を第２操作信号から第１操作信号に切り替えてもよい。
【００１０】
上記によれば、入力デバイスを用いた操作が行われていないことが操作切り替えの条件となっているため、ユーザが意図しない操作方法の切り替えを防止することができる。
【００１１】
また、上記切替手段は、情報処理に第２操作信号が用いられている状態で入力判定手段における判定結果が所定時間以上継続して否定であり、かつ、指示位置判定手段における判定結果が肯定となった場合に、情報処理に用いる操作信号を第２操作信号から第１操作信号に切り替えてもよい。
【００１２】
上記によれば、入力デバイスを用いた操作が所定時間以上行われていないことが操作切り替えの条件となっているため、ユーザが意図しない操作方法の切り替えを防止することができる。
【００１３】
また、上記情報処理プログラムは、第３操作信号取得手段として、さらにコンピュータを機能させてもよい。第３操作信号取得手段は、ポインティングデバイスと入力デバイスとは異なる別の入力デバイスから出力される第３操作信号を取得する。この場合、上記処理手段は、第３操作信号に基づいて情報処理に関連する情報処理をさらに行ってもよい。上記入力判定手段は、入力デバイスおよび別の入力デバイスがともに入力操作されているか否かを判定してもよい。
【００１４】
上記によれば、他の情報処理に用いられる別の入力デバイスを用いた操作も行われていないことが操作切り替えの条件となっているため、ユーザが意図しない操作方法の切り替えを防止することができる。
【００１５】
また、上記情報処理プログラムは、入力判定手段として、さらにコンピュータを機能させてもよい。入力判定手段は、第２操作信号に基づいて、入力デバイスが入力操作されているか否かを判定する。この場合、上記切替手段は、情報処理に第１操作信号が用いられている状態で入力判定手段における判定結果が肯定となった場合に、情報処理に用いる操作信号を第１操作信号から第２操作信号に切り替えてもよい。
【００１６】
上記によれば、入力デバイスを用いた操作が行われると、迅速に当該入力デバイスを用いた操作方法に切り替えることができる。
【００１７】
また、上記情報処理プログラムは、表示制御手段として、さらにコンピュータを機能させてもよい。表示制御手段は、処理手段における情報処理結果を示す画像を表示装置に表示する。この場合、上記指示位置判定手段は、平面上において表示装置の表示画面全体に相当する領域を所定の領域として設定し、指示位置が当該表示画面全体に相当する領域外から当該表示画面全体に相当する領域内に入ったか否かを判定してもよい。
【００１８】
上記によれば、ポインティングデバイスを用いて、表示画面外を指定してから表示画面内を指定するような操作で、当該ポインティングデバイスを用いた操作に切り替えられるため、ユーザによる自然な操作で操作方法の切り替えが可能となる。
【００１９】
また、上記第１操作信号を出力するポインティングデバイスは、入力装置本体に固設されて当該入力装置本体を基準に所定方向の周辺を撮像する、または当該入力装置本体の外部に設けられて当該入力装置本体を撮像する撮像部を含み、当該撮像部によって撮像した撮像画像自体または撮像画像に所定の演算を行った結果を示すデータを第１操作信号として出力してもよい。この場合、上記指示位置算出手段は、撮像画像の中に撮像された撮像対象の位置に基づいて、指示位置を算出してもよい。また、上記入力デバイスは、ユーザの方向入力操作によって操作される方向指示部を含み、当該方向指示部が方向入力操作された方向を示すデータを第２操作信号として出力してもよい。
【００２０】
上記によれば、入力装置本体を用いて指し示すようなポインティング操作と、方向指示部を操作する方向入力操作とを、ユーザの意図に応じて切り替えることができる。
【００２１】
また、上記情報処理プログラムは、表示制御手段として、さらにコンピュータを機能させてもよい。表示制御手段は、処理手段における情報処理結果を示す画像を表示装置に表示する。この場合、上記撮像対象は、表示装置付近に設けられてもよい。また、撮像部は、入力装置本体に固設され、所定方向の周辺に表示装置が存在する場合に撮像対象を撮像してもよい。また、上記方向指示部は、所定方向が表示装置に表示された表示画像における上方向の方向入力操作に対応するように入力装置本体に設けられてもよい。
【００２２】
上記によれば、ポインティングデバイスを操作する入力装置本体の姿勢を維持して、方向指示部を操作する方向入力操作が可能となり、操作方法を切り替える際の入力装置本体の持ち替え等も不要となる。
【００２３】
また、上記情報処理プログラムは、表示制御手段として、さらにコンピュータを機能させてもよい。表示制御手段は、処理手段における情報処理結果を示す画像を表示装置に表示する。この場合、上記処理手段は、切替手段により情報処理に用いる操作信号が第２操作信号から第１操作信号に切り替えられたときに、指示位置を示すポインタを設定してもよい。この場合、上記表示制御手段は、ポインタが設定されている場合、情報処理結果を示す画像における指示位置に当該ポインタを付与して表示装置に表示してもよい。
【００２４】
上記によれば、ポインティングデバイスを用いた操作の場合にその指示位置を示すポインタが表示されるため、当該ポインタによってポインティングデバイスを用いた操作が有効であるか否かをユーザが判別することができる。
【００２５】
また、上記情報処理プログラムは、表示制御手段として、さらにコンピュータを機能させてもよい。表示制御手段は、処理手段における情報処理結果を示す画像を表示装置に表示する。この場合、上記処理手段は、表示装置に表示された複数の選択肢から指示位置または第２操作信号に対応する１つの選択肢を選択する処理を情報処理として行ってもよい。
【００２６】
上記によれば、ポインティングデバイスを用いた操作および異なる入力デバイスを用いた操作の一方を選択して、複数の選択肢から１つの選択肢を選択するような処理において、ユーザの意図に応じて操作方法を切り替えることができる。
【００２７】
また、上記処理手段は、情報処理に第１操作信号が用いられている状態である場合に表示装置に表示された複数の選択肢から指示位置と重なる１つの選択肢を選択し、情報処理に第２操作信号が用いられている状態である場合に複数の選択肢から選択されている選択対象を第２操作信号が示す方向入力操作の方向にずらして１つの選択肢を選択してもよい。
【００２８】
上記によれば、複数の選択肢から１つの選択肢を選択する同じ処理に対して、ポインティングデバイスを用いた操作および異なる入力デバイスを用いた操作の一方をユーザの意図に応じて切り替えることができる。
【００２９】
また、上記処理手段は、情報処理に第２操作信号が用いられている状態である場合に複数の選択肢から選択されている１つの選択肢に第１態様の標識を付与して設定してもよい。また、上記処理手段は、情報処理に第１操作信号が用いられて表示装置に表示された複数の選択肢の何れかと指示位置とが重なる場合、当該重なる１つの選択肢に当該第１態様の標識を付与して設定し、表示装置に表示された複数の選択肢の何れとも指示位置が重ならない場合、直前まで選択されていた１つの選択肢に付与されていた標識を当該第１態様とは異なる第２態様の標識に変化させて設定してもよい。この場合、上記表示制御手段は、情報処理結果を示す画像における１つの選択肢に、処理手段が設定した標識を付与して表示装置に表示してもよい。
【００３０】
上記によれば、ポインティングデバイスを用いた操作において、表示された何れの選択肢とも指示位置が重なっていない場合、直前に選択されていた選択肢にその旨を示す標識が付与されるため、当該操作によって直前に選択されていた選択肢から変更されていないことをユーザに通知することができる。
【００３１】
また、本発明は、上記各手段を備える表示制御装置および表示制御システムや上記各手段で行われる動作を含む表示制御方法の形態で実施されてもよい。
【００３２】
本発明の情報処理プログラムの他の構成例は、ポインティングデバイスおよび当該ポインティングデバイスとは異なる入力デバイスからそれぞれ出力される操作信号が利用可能であり、当該操作信号に応じて所定の情報処理を行う情報処理装置のコンピュータで実行される。上記情報処理プログラムは、第１操作信号取得手段、第２操作信号取得手段、指示位置算出手段、操作モード設定手段、処理手段、指示位置判定手段、および操作モード切替手段として、コンピュータを機能させる。第１操作信号取得手段は、ポインティングデバイスから出力される第１操作信号を取得する。第２操作信号取得手段は、入力デバイスから出力される第２操作信号を取得する。指示位置算出手段は、第１操作信号に基づいて、所定の平面上に対する指示位置を算出する。操作モード設定手段は、情報処理に第１操作信号が用いられる第１操作モードおよび当該情報処理に第２操作信号が用いられる第２操作モードのいずれかを設定する。処理手段は、操作モード設定手段により第１操作モードが設定されている場合、指示位置に基づいて情報処理を行い、操作モード設定手段により第２操作モードが設定されているときには、第２操作信号に基づいて情報処理を行う。指示位置判定手段は、指示位置が平面上における所定の領域外から当該所定の領域内に入ったか否かを判定する。操作モード切替手段は、操作モード設定手段により第２操作モードが設定されている場合に、指示位置判定手段における判定結果が肯定となったときに、操作モード設定手段による設定を第２操作モードから第１操作モードに切り替える。
【発明の効果】
【００３３】
本発明によれば、ポインティングデバイスを用いた操作や異なる入力デバイスを用いた操作に応じて所定の情報処理を行う場合、ユーザの意図に応じて操作方法を切り替えることができる。
【図面の簡単な説明】
【００３４】
【図１】本発明の一実施形態に係るゲームシステム１を説明するための外観図
【図２】図１のゲーム装置本体５の機能ブロック図
【図３】図１のコントローラ７の上面後方から見た斜視図
【図４】図３のコントローラ７を下面前方から見た斜視図
【図５】図３のコントローラ７の上筐体を外した状態を示す斜視図
【図６】図４のコントローラ７の下筐体を外した状態を示す斜視図
【図７】図３のコントローラ７の構成を示すブロック図
【図８】図１のコントローラ７を用いてユーザが操作するときの状態の一例を概説する図解図
【図９】マーカ８Ｌおよび８Ｒと撮像情報演算部７４との視野角の一例を説明するための図
【図１０】十字キー操作モードにおいてモニタ２に表示される画像の一例を概説する図解図
【図１１】ポインティング操作モードにおいてモニタ２に表示される画像の一例を概説する図解図
【図１２】ポインティング操作モードにおいてモニタ２に表示される画像の他の例を概説する図解図
【図１３】ゲーム装置本体５のメインメモリに記憶される主なデータおよびプログラムの一例を示す図
【図１４】ゲーム装置本体５において実行される処理の一例を示すフローチャート
【図１５】図１４におけるステップ４２の十字キー操作処理の一例を示すサブルーチン
【図１６】図１４におけるステップ５１のポインティング操作処理の一例を示すサブルーチン
【図１７Ａ】方向キー操作モードにおいてモニタ２に表示される画像の一例を概説する図解図
【図１７Ｂ】マウス操作モードにおいてモニタ２に表示される画像の一例を概説する図解図
【発明を実施するための形態】
【００３５】
図１を参照して、本発明の一実施形態に係る情報処理プログラムを実行する情報処理装置について説明する。以下、説明を具体的にするために、当該情報処理装置の一例として据置型のゲーム装置本体５を用い、ゲーム装置本体５を含むゲームシステムについて説明する。なお、図１は、据置型のゲーム装置３を含むゲームシステム１の一例を示す外観図である。図２は、ゲーム装置本体５の一例を示すブロック図である。以下、当該ゲームシステム１について説明する。
【００３６】
図１において、ゲームシステム１は、表示手段の一例である家庭用テレビジョン受像機（以下、モニタと記載する）２と、モニタ２に接続コードを介して接続する据置型のゲーム装置３とから構成される。モニタ２は、ゲーム装置３から出力された音声信号を音声出力するためのスピーカ２ａを備える。また、ゲーム装置３は、本願発明の情報処理プログラムの一例となるプログラム（例えば、ゲームプログラム）を記録した光ディスク４と、光ディスク４のプログラムを実行してゲーム画面をモニタ２に表示出力させるためのコンピュータを搭載したゲーム装置本体５と、表示画面に表示されたオブジェクト等を操作するために必要な操作情報をゲーム装置本体５に与えるためのコントローラ７とを備えている。
【００３７】
ゲーム装置本体５は、無線コントローラモジュール１９（図２参照）を内蔵する。無線コントローラモジュール１９は、コントローラ７から無線送信されるデータを受信し、ゲーム装置本体５からコントローラ７へデータを送信して、コントローラ７とゲーム装置本体５とを無線通信によって接続する。また、ゲーム装置本体５には、ゲーム装置本体５に対して交換可能に用いられる情報記憶媒体の一例である光ディスク４が脱着される。
【００３８】
ゲーム装置本体５には、セーブデータ等のデータを固定的に記憶するバックアップメモリとして機能するフラッシュメモリ１７（図２参照）が搭載される。ゲーム装置本体５は、光ディスク４に記憶されたゲームプログラム等を実行することによって、その結果をゲーム画像としてモニタ２に表示する。ゲームプログラム等は、光ディスク４に限らず、フラッシュメモリ１７に予め記録されたものを実行するようにしてもよい。また、ゲーム装置本体５は、フラッシュメモリ１７に記憶されたセーブデータを用いて、過去に実行されたゲーム状態を再現して、ゲーム画像をモニタ２に表示することもできる。そして、ゲーム装置３のユーザは、モニタ２に表示されたゲーム画像を見ながら、コントローラ７を操作することによって、ゲーム進行を楽しむことができる。
【００３９】
コントローラ７は、無線コントローラモジュール１９を内蔵するゲーム装置本体５へ、例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース；登録商標）の技術を用いて操作情報等の送信データを無線送信する。コントローラ７は、主にモニタ２の表示画面に表示されるプレイヤオブジェクト等を操作したり、表示された選択肢を選択したりするための操作手段である。コントローラ７は、片手で把持可能な程度の大きさのハウジングと、当該ハウジングの表面に露出して設けられた複数個の操作ボタン（十字キー等を含む）とが設けられている。また、後述により明らかとなるが、コントローラ７は、コントローラ７から見た画像を撮像する撮像情報演算部７４を備えている。そして、撮像情報演算部７４の撮像対象の一例として、モニタ２の表示画面近傍に２つのＬＥＤモジュール（以下、マーカと記載する）８Ｌおよび８Ｒが設置される。これらマーカ８Ｌおよび８Ｒは、それぞれモニタ２の前方に向かって例えば赤外光を出力する。また、コントローラ７は、ゲーム装置本体５の無線コントローラモジュール１９から無線送信された送信データを通信部７５で受信して、当該送信データに応じた音や振動を発生させることもできる。
【００４０】
次に、図２を参照して、ゲーム装置本体５の内部構成について説明する。図２は、ゲーム装置本体５の構成の一例を示すブロック図である。ゲーム装置本体５は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０、システムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）１１、外部メインメモリ１２、ＲＯＭ／ＲＴＣ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ／Ｒｅａｌ  Ｔｉｍｅ  Ｃｌｏｃｋ）１３、ディスクドライブ１４、およびＡＶ−ＩＣ（Ａｕｄｉｏ  Ｖｉｄｅｏ−Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）１５等を有する。
【００４１】
ＣＰＵ１０は、光ディスク４に記憶されたプログラムを実行することによって処理を実行するものであり、ゲームプロセッサとして機能する。ＣＰＵ１０は、システムＬＳＩ１１に接続される。システムＬＳＩ１１には、ＣＰＵ１０の他、外部メインメモリ１２、ＲＯＭ／ＲＴＣ１３、ディスクドライブ１４、およびＡＶ−ＩＣ１５が接続される。システムＬＳＩ１１は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。なお、システムＬＳＩ１１の内部構成については、後述する。揮発性の外部メインメモリ１２は、光ディスク４から読み出されたプログラムや、フラッシュメモリ１７から読み出されたプログラムを記憶したり、各種データを記憶したりするものであり、ＣＰＵ１０のワーク領域やバッファ領域として用いられる。ＲＯＭ／ＲＴＣ１３は、ゲーム装置本体５の起動用のプログラムが組み込まれるＲＯＭ（いわゆるブートＲＯＭ）と、時間をカウントするクロック回路（ＲＴＣ）とを有する。ディスクドライブ１４は、光ディスク４からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ３５または外部メインメモリ１２に読み出したデータを書き込む。
【００４２】
システムＬＳＩ１１には、入出力プロセッサ３１、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）３２、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）３３、ＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）３４、および内部メインメモリ３５が設けられる。図示は省略するが、これらの構成要素３１〜３５は、内部バスによって互いに接続される。
【００４３】
ＧＰＵ３２は、描画手段の一部を形成し、ＣＰＵ１０からのグラフィクスコマンド（作画命令）に従って画像を生成する。ＶＲＡＭ３４は、ＧＰＵ３２がグラフィクスコマンドを実行するために必要なデータ（ポリゴンデータやテクスチャデータ等のデータ）を記憶する。画像が生成される際には、ＧＰＵ３２は、ＶＲＡＭ３４に記憶されたデータを用いて画像データを作成する。
【００４４】
ＤＳＰ３３は、オーディオプロセッサとして機能し、内部メインメモリ３５や外部メインメモリ１２に記憶されるサウンドデータや音波形（音色）データを用いて、音声データを生成する。
【００４５】
上述のように生成された画像データおよび音声データは、ＡＶ−ＩＣ１５によって読み出される。ＡＶ−ＩＣ１５は、ＡＶコネクタ１６を介して、読み出した画像データをモニタ２に出力するとともに、読み出した音声データをモニタ２に内蔵されるスピーカ２ａに出力する。これによって、画像がモニタ２に表示されるとともに音がスピーカ２ａから出力される。
【００４６】
入出力プロセッサ（Ｉ／Ｏプロセッサ）３１は、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ３１は、フラッシュメモリ１７、無線通信モジュール１８、無線コントローラモジュール１９、拡張コネクタ２０、および外部メモリカード用コネクタ２１に接続される。無線通信モジュール１８にはアンテナ２２が接続され、無線コントローラモジュール１９にはアンテナ２３が接続される。
【００４７】
入出力プロセッサ３１は、無線通信モジュール１８およびアンテナ２２を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ３１は、定期的にフラッシュメモリ１７にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データがある場合には、無線通信モジュール１８およびアンテナ２２を介して当該データをネットワークに送信する。また、入出力プロセッサ３１は、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ２２、および無線通信モジュール１８を介して受信し、受信したデータをフラッシュメモリ１７に記憶する。ＣＰＵ１０は、プログラムを実行することにより、フラッシュメモリ１７に記憶されたデータを読み出してプログラムで利用する。フラッシュメモリ１７には、ゲーム装置本体５と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置本体５を利用してプレイしたゲームのセーブデータ（処理の結果データまたは途中データ）が記憶されてもよい。
【００４８】
入出力プロセッサ３１は、アンテナ２３および無線コントローラモジュール１９を介して、コントローラ７から送信される操作データ等を受信し、内部メインメモリ３５または外部メインメモリ１２のバッファ領域に記憶（一時記憶）する。なお、内部メインメモリ３５には、外部メインメモリ１２と同様に、光ディスク４から読み出されたプログラムや、フラッシュメモリ１７から読み出されたプログラムを記憶したり、各種データを記憶したりしてもよく、ＣＰＵ１０のワーク領域やバッファ領域として用いられてもかまわない。
【００４９】
入出力プロセッサ３１には、拡張コネクタ２０および外部メモリカード用コネクタ２１が接続される。拡張コネクタ２０は、ＵＳＢやＳＣＳＩのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール１８に替えてネットワークとの通信を行ったりすることができる。外部メモリカード用コネクタ２１は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ３１は、拡張コネクタ２０や外部メモリカード用コネクタ２１を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【００５０】
ゲーム装置本体５（例えば、前部主面）には、当該ゲーム装置本体５の電源ボタン２４、ゲーム処理のリセットボタン２５、光ディスク４を脱着する投入口、およびゲーム装置本体５の投入口から光ディスク４を取り出すイジェクトボタン２６等が設けられている。電源ボタン２４およびリセットボタン２５は、システムＬＳＩ１１に接続される。電源ボタン２４がオンされると、ゲーム装置本体５の各構成要素に対して、図示しないＡＣアダプタを介して電力が供給される。リセットボタン２５が押されると、システムＬＳＩ１１は、ゲーム装置本体５の起動プログラムを再起動する。イジェクトボタン２６は、ディスクドライブ１４に接続される。イジェクトボタン２６が押されると、ディスクドライブ１４から光ディスク４が排出される。
【００５１】
図３および図４を参照して、コントローラ７について説明する。なお、図３は、コントローラ７の上面後方から見た一例を示す斜視図である。図４は、コントローラ７を下面前方から見た一例を示す斜視図である。
【００５２】
図３および図４において、コントローラ７は、例えばプラスチック成型によって形成されたハウジング７１を有しており、当該ハウジング７１に複数の操作部７２が設けられている。ハウジング７１は、その前後方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。
【００５３】
ハウジング７１上面の中央前面側に、十字キー７２ａが設けられる。この十字キー７２ａは、十字型の４方向プッシュスイッチであり、４つの方向（前後左右）に対応する操作部分が十字の突出片にそれぞれ９０°間隔で配置される。ユーザが十字キー７２ａの何れかの操作部分を押下することによって上下左右（前後左右）何れかの方向を選択される。例えばユーザが十字キー７２ａを操作することによって、仮想世界に登場するオブジェクト等の移動方向を指示したり、複数の選択肢から選択する指示をしたりすることができる。
【００５４】
なお、十字キー７２ａは、上述したユーザの方向入力操作に応じて操作信号を出力する操作部であるが、他の態様の操作部でもかまわない。例えば、十字方向に４つのプッシュスイッチを配設し、ユーザによって押下されたプッシュスイッチに応じて操作信号を出力する操作部を設けてもかまわない。さらに、上記４つのプッシュスイッチとは別に、上記十字方向が交わる位置にセンタスイッチを配設し、４つのプッシュスイッチとセンタスイッチとを複合した操作部を設けてもかまわない。また、ハウジング７１上面から突出した傾倒可能なスティック（いわゆる、ジョイスティック）を倒すことによって、傾倒方向に応じて操作信号を出力する操作部を十字キー７２ａの代わりに設けてもかまわない。さらに、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部を、上記十字キー７２ａの代わりに設けてもかまわない。また、タッチパッドを、十字キー７２ａの代わりに設けてもかまわない。
【００５５】
ハウジング７１上面の十字キー７２ａより後面側に、複数の操作ボタン７２ｂ〜７２ｇが設けられる。操作ボタン７２ｂ〜７２ｇは、ユーザがボタン頭部を押下することによって、それぞれの操作ボタン７２ｂ〜７２ｇに割り当てられた操作信号を出力する操作部である。例えば、操作ボタン７２ｂ〜７２ｄには、１番ボタン、２番ボタン、およびＡボタン等としての機能が割り当てられる。また、操作ボタン７２ｅ〜７２ｇには、マイナスボタン、ホームボタン、およびプラスボタン等としての機能が割り当てられる。これら操作ボタン７２ａ〜７２ｇは、ゲーム装置本体５が実行するプログラムに応じてそれぞれの操作機能が割り当てられる。なお、図３に示した配置例では、操作ボタン７２ｂ〜７２ｄは、ハウジング７１上面の中央前後方向に沿って並設されている。また、操作ボタン７２ｅ〜７２ｇは、ハウジング７１上面の左右方向に沿って操作ボタン７２ｂおよび７２ｄの間に並設されている。そして、操作ボタン７２ｆは、その上面がハウジング７１の上面に埋没しており、ユーザが不意に誤って押下することのないタイプのボタンである。
【００５６】
ハウジング７１上面の十字キー７２ａより前面側に、操作ボタン７２ｈが設けられる。操作ボタン７２ｈは、遠隔からゲーム装置本体５の電源をオン／オフする電源スイッチである。この操作ボタン７２ｈも、その上面がハウジング７１の上面に埋没しており、ユーザが不意に誤って押下することのないタイプのボタンである。
【００５７】
ハウジング７１上面の操作ボタン７２ｃより後面側に、複数のＬＥＤ７０２が設けられる。ここで、コントローラ７は、他のコントローラ７と区別するためにコントローラ種別（番号）が設けられている。例えば、ＬＥＤ７０２は、コントローラ７に現在設定されている上記コントローラ種別をユーザに通知するために用いられる。具体的には、無線コントローラモジュール１９からコントローラ７へ、複数のＬＥＤ７０２のうち、上記コントローラ種別に対応するＬＥＤを点灯させるための信号が送信される。
【００５８】
また、ハウジング７１上面には、操作ボタン７２ｂおよび操作ボタン７２ｅ〜７２ｇの間に後述するスピーカ（図５に示すスピーカ７０６）からの音を外部に放出するための音抜き孔が形成されている。
【００５９】
ハウジング７１下面には、凹部が形成されている。ハウジング７１下面の凹部は、ユーザがコントローラ７の前面をマーカ８Ｌおよび８Ｒに向けて片手で把持したときに、当該ユーザの人差し指や中指が位置するような位置に形成される。そして、上記凹部の傾斜面には、操作ボタン７２ｉが設けられる。操作ボタン７２ｉは、例えばＢボタンとして機能する操作部である。
【００６０】
ハウジング７１前面には、撮像情報演算部７４の一部を構成する撮像素子７４３が設けられる。ここで、撮像情報演算部７４は、コントローラ７が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを検出するためのシステムであり、例えば、最大２００フレーム／秒程度のサンプリング周期であるため比較的高速なコントローラ７の動きでも追跡して解析することができる。この撮像情報演算部７４の詳細な構成については、後述する。また、ハウジング７１の後面には、コネクタ７３が設けられている。コネクタ７３は、例えばエッジコネクタであり、例えば接続ケーブルと嵌合して接続するために利用される。
【００６１】
次に、図５および図６を参照して、コントローラ７の内部構造について説明する。なお、図５は、コントローラ７の上筐体（ハウジング７１の一部）を外した状態を後面側から見た一例を示す斜視図である。図６は、コントローラ７の下筐体（ハウジング７１の一部）を外した状態を前面側から見た一例を示す斜視図である。ここで、図６に示す基板７００は、図５に示す基板７００の裏面から見た状態となっている。
【００６２】
図５において、ハウジング７１の内部には基板７００が固設されており、基板７００の上主面上に操作ボタン７２ａ〜７２ｈ、加速度センサ７０１、ＬＥＤ７０２、およびアンテナ７５４等が設けられる。これらは、基板７００等に形成された配線（図示せず）によってマイコン７５１等（図６、図７参照）に接続される。そして、無線モジュール７５３（図７参照）およびアンテナ７５４によって、コントローラ７がワイヤレスコントローラとして機能する。なお、ハウジング７１内部には図示しない水晶振動子が設けられており、後述するマイコン７５１の基本クロックを生成する。また、基板７００の上主面上に、スピーカ７０６およびアンプ７０８が設けられる。また、加速度センサ７０１は、操作ボタン７２ｄの左側の基板７００上（つまり、基板７００の中央部ではなく周辺部）に設けられる。したがって、加速度センサ７０１は、コントローラ７の長手方向を軸とした回転に応じて、重力加速度の方向変化に加え、遠心力による成分が含まれる加速度を検出することができるので、所定の演算により、検出される加速度データを用いてコントローラ７の動きを良好な感度でゲーム装置本体５等が判定することができる。
【００６３】
一方、図６において、基板７００の下主面上の前端縁に撮像情報演算部７４が設けられる。撮像情報演算部７４は、コントローラ７の前方から順に赤外線フィルタ７４１、レンズ７４２、撮像素子７４３、および画像処理回路７４４によって構成されており、それぞれ基板７００の下主面に取り付けられる。また、基板７００の下主面上の後端縁にコネクタ７３が取り付けられる。さらに、基板７００の下主面上にサウンドＩＣ７０７およびマイコン７５１が設けられている。サウンドＩＣ７０７は、基板７００等に形成された配線によってマイコン７５１およびアンプ７０８と接続され、ゲーム装置本体５から送信されたサウンドデータに応じてアンプ７０８を介してスピーカ７０６に音声信号を出力する。また、基板７００の下主面上には、バイブレータ７０４が取り付けられる。バイブレータ７０４は、基板７００等に形成された配線によってマイコン７５１と接続され、ゲーム装置本体５から送信された振動データに応じてその作動をオン／オフする。
【００６４】
次に、図７を参照して、コントローラ７の内部構成について説明する。なお、図７は、コントローラ７の構成の一例を示すブロック図である。
【００６５】
図７において、コントローラ７は、上述した操作部７２、撮像情報演算部７４、加速度センサ７０１、スピーカ７０６、サウンドＩＣ７０７、およびアンプ７０８の他に、その内部に通信部７５を備えている。
【００６６】
撮像情報演算部７４は、赤外線フィルタ７４１、レンズ７４２、撮像素子７４３、および画像処理回路７４４を含んでいる。赤外線フィルタ７４１は、コントローラ７の前方から入射する光から赤外線のみを通過させる。レンズ７４２は、赤外線フィルタ７４１を透過した赤外線を集光して撮像素子７４３へ出射する。撮像素子７４３は、例えばＣＭＯＳセンサやあるいはＣＣＤのような固体撮像素子であり、レンズ７４２が集光した赤外線を撮像する。したがって、撮像素子７４３は、赤外線フィルタ７４１を通過した赤外線だけを撮像して画像データを生成する。撮像素子７４３で生成された画像データは、画像処理回路７４４で処理される。具体的には、画像処理回路７４４は、撮像素子７４３から得られた画像データを処理して高輝度部分を検知し、それらの位置座標や面積を検出した結果を示す処理結果データを通信部７５へ出力する。なお、これらの撮像情報演算部７４は、コントローラ７のハウジング７１に固設されており、ハウジング７１自体の方向を変えることによってその撮像方向を変更することができる。
【００６７】
通信部７５は、マイクロコンピュータ（Ｍｉｃｒｏ  Ｃｏｍｐｕｔｅｒ：マイコン）７５１、メモリ７５２、無線モジュール７５３、およびアンテナ７５４を含んでいる。マイコン７５１は、処理の際にメモリ７５２を記憶領域として用いながら、送信データを無線送信する無線モジュール７５３を制御する。また、マイコン７５１は、アンテナ７５４を介して無線モジュール７５３が受信したゲーム装置本体５からのデータに応じて、サウンドＩＣ７０７の動作を制御する。サウンドＩＣ７０７は、通信部７５を介してゲーム装置本体５から送信されたサウンドデータ等を処理する。
【００６８】
コントローラ７に設けられた操作部７２からの操作信号（キーデータ）、加速度センサ７０１からの３軸方向の加速度信号（Ｘ、Ｙ、およびＺ軸方向加速度データ）、および撮像情報演算部７４からの処理結果データは、マイコン７５１に出力される。マイコン７５１は、入力した各データ（キーデータ、Ｘ、Ｙ、およびＺ軸方向加速度データ、処理結果データ）を無線コントローラモジュール１９へ送信する送信データとして一時的にメモリ７５２に格納する。ここで、通信部７５から無線コントローラモジュール１９への無線送信は、所定の周期毎に行われるが、ゲームの処理は１／６０秒を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。具体的には、ゲームの処理単位は１６．７ｍｓ（１／６０秒）であり、ブルートゥース（登録商標）で構成される通信部７５の送信間隔は５ｍｓである。マイコン７５１は、無線コントローラモジュール１９への送信タイミングが到来すると、メモリ７５２に格納されている送信データを一連の操作情報として出力し、無線モジュール７５３へ出力する。そして、無線モジュール７５３は、例えばブルートゥース（登録商標）の技術を用いて、操作情報を示す電波信号を所定周波数の搬送波を用いてアンテナ７５４から放射する。つまり、コントローラ７に設けられた操作部７２からのキーデータ、加速度センサ７０１からのＸ、Ｙ、およびＺ軸方向加速度データ、および撮像情報演算部７４からの処理結果データがコントローラ７から送信される。そして、ゲーム装置本体５の無線コントローラモジュール１９でその電波信号を受信し、ゲーム装置本体５で当該電波信号を復調や復号することによって、一連の操作情報（キーデータ、Ｘ、Ｙ、およびＺ軸方向加速度データ、および処理結果データ）を取得する。そして、ゲーム装置本体５のＣＰＵ１０は、取得した操作情報とプログラムとに基づいて、処理を行う。なお、ブルートゥース（登録商標）の技術を用いて通信部７５を構成する場合、通信部７５は、他のデバイスから無線送信された送信データを受信する機能も備えることができる。
【００６９】
ここで、図８に示すように、ゲームシステム１でコントローラ７を用いてゲームをプレイするためには、ユーザは、一方の手（例えば右手）でコントローラ７を把持する。そして、ユーザは、コントローラ７の前面（撮像情報演算部７４が撮像する光の入射口側）がモニタ２に向くようにコントローラ７を把持する。一方、モニタ２の表示画面近傍には、２つのマーカ８Ｌおよび８Ｒが設置されている。これらマーカ８Ｌおよび８Ｒは、それぞれモニタ２の前方に向かって赤外光を出力し、撮像情報演算部７４の撮像対象となる。
【００７０】
図９に示すように、マーカ８Ｌおよび８Ｒは、それぞれ視野角θ１を有している。また、撮像素子７４３は、視野角θ２を有している。例えば、マーカ８Ｌおよび８Ｒの視野角θ１はともに３４°（半値角）であり、撮像素子７４３の視野角θ２は４１°である。そして、撮像素子７４３の視野角θ２の中にマーカ８Ｌおよび８Ｒがともに存在し、マーカ８Ｌの視野角θ１の中でかつマーカ８Ｒの視野角θ１の中に撮像素子７４３が存在するとき、ゲーム装置本体５は、２つのマーカ８Ｌおよび８Ｒによる高輝度点に関する位置データを用いてコントローラ７が指し示す位置を算出する。
【００７１】
ユーザがその前面がモニタ２に向くようにコントローラ７を把持することによって、撮像情報演算部７４には２つのマーカ８Ｌおよび８Ｒが出力した赤外光が入射する。そして、赤外線フィルタ７４１およびレンズ７４２を介して、入射した赤外光を撮像素子７４３が撮像し、当該撮像画像を画像処理回路７４４が処理する。ここで、撮像情報演算部７４は、マーカ８Ｌおよび８Ｒから出力される赤外線成分を検出することで、上記撮像画像における当該マーカ８Ｌおよび８Ｒの位置情報（対象画像の位置）等を取得する。具体的には、画像処理回路７４４は、撮像素子７４３が撮像した画像データを解析して、まず面積情報からマーカ８Ｌおよび８Ｒからの赤外光ではあり得ない画像を除外し、さらに輝度が高い点をマーカ８Ｌおよび８Ｒそれぞれの位置として判別する。そして、撮像情報演算部７４は、判別されたそれらの輝点の重心位置等の位置情報を取得し、上記処理結果データとして出力する。ここで、上記処理結果データである位置情報は、撮像画像における所定の基準点（例えば、撮像画像の中央や左上隅）を原点とした座標値として出力するものでもよく、所定のタイミングにおける輝点位置を基準点として、当該基準位置からの現在の輝点位置の差をベクトルとして出力するものでもよい。つまり、上記対象画像の位置情報は、撮像素子７４３が撮像した撮像画像に対して所定の基準点を設定した場合に、当該基準点に対する差として用いられるパラメータである。このような位置情報をゲーム装置本体５へ送信することによって、ゲーム装置本体５では、基準からの上記位置情報の差に基づいて、マーカ８Ｌおよび８Ｒに対する撮像情報演算部７４、すなわちコントローラ７の動き、姿勢、位置等に応じた信号の変化量を得ることができる。具体的には、コントローラ７が動かされることによって、通信部７５から送信される画像内の高輝度点の位置が変化するため、高輝度点の位置の変化に対応させた方向入力や座標入力を行うことで、コントローラ７が指し示している位置を操作入力としたり、コントローラ７の移動方向に沿った方向入力や座標入力を行ったりすることができる。なお、後述する情報処理例では、撮像情報演算部７４が撮像画像におけるマーカ８Ｌおよび８Ｒの対象画像それぞれの重心位置の座標を少なくとも取得し、上記処理結果データとして出力する例を用いる。
【００７２】
このように、コントローラ７の撮像情報演算部７４によって、固定的に設置されたマーカ（実施例では、２つのマーカ８Ｌおよび８Ｒからの赤外光）を撮像することによって、ゲーム装置本体５におけるゲーム処理において、コントローラ７から出力されるデータを処理してコントローラ７の動き、姿勢、位置等に対応した操作が可能となり、ボタンを押下するような操作ボタンや操作キーとは異なった直感的な操作入力となる。また、上述したように上記マーカは、モニタ２の表示画面近傍に設置されているため、マーカに対する位置をモニタ２の表示画面に対するコントローラ７の動き、姿勢、位置等に換算することも容易に行うことができる。つまり、コントローラ７の動き、姿勢、位置等による処理結果データは、モニタ２の表示画面に直接作用する操作入力（例えば、コントローラ７が指し示す位置を入力）として用いることができる。
【００７３】
次に、ゲーム装置本体５が行う具体的な処理を説明する前に、図１０〜図１２を用いてゲーム装置本体５で行う情報処理の概要について説明する。図１０は、十字キー操作モードにおいてモニタ２に表示される画像の一例を概説する図解図である。図１１は、ポインティング操作モードにおいてモニタ２に表示される画像の一例を概説する図解図である。図１２は、ポインティング操作モードにおいてモニタ２に表示される画像の他の例を概説する図解図である。以下の説明では、モニタ２に表示された複数の選択肢ボタンから選択して決定する操作を、ユーザがコントローラ７を用いて行う一例を用いる。
【００７４】
図１０〜図１２において、モニタ２には、ユーザに選択操作を促すための複数の選択肢ボタンが表示される。選択肢ボタンは、それぞれユーザに選択されて決定する操作が行われることによって、当該決定された選択肢ボタンが示す情報処理がゲーム装置本体５によって実行される。なお、以下の説明において、ユーザが複数の選択肢ボタンから選択している選択肢ボタンを、単に選択ボタンと記載する。
【００７５】
一方、ユーザは、コントローラ７を用いて、モニタ２に表示された複数の選択肢ボタンから選択ボタンを選択する操作ができる。ここで、複数の選択肢ボタンから選択ボタンを選択する選択操作においては、コントローラ７の操作ボタン７２ａ（十字キー）をユーザが押下操作することによる選択操作モード（十字キー操作モード）と、コントローラ７を用いてモニタ２の表示画面をユーザが指し示す選択操作（ポインティング操作モード）とが用意されている。
【００７６】
図１０において、ゲーム装置本体５が十字キー操作モードで動作している場合、十字キー操作モードであることをユーザに通知するために、例えば十字キーを模した標識を有する操作モード通知がモニタ２に表示される。そして、その時点で選択されている選択ボタンは、当該選択ボタンを示す標識としてその周囲に選択カーソルが付与されるとともに、他の選択肢ボタンに対して相対的に拡大表示される。したがって、ユーザは、選択カーソルが付与されて拡大表示されている選択肢ボタンを、現時点において選択されている選択ボタンであると認識することができる。例えば、選択カーソルは、選択ボタンの少なくとも一部を取り囲む不透明の枠画像で構成されて、モニタ２に表示される。なお、本実施形態においては、モニタ２において透明でも半透明でもない状態で表示される状態を「不透明」と定義し、図１０においては選択カーソルの枠画像が不透明であることを斜線領域で示している。なお、十字キー操作モードであることを示す操作モード通知は、操作モードが十字キー操作モードに切り換わった直後から一定の時間だけ表示して非表示にしてもいいし、操作モードが十字キー操作モードである間は常に十字キー操作モードであることを示す操作モード通知を表示してもよい。
【００７７】
十字キー操作モードにおいて、ユーザが操作ボタン７２ａにおける何れかの方向を押下した場合、当該押下された方向に応じて選択ボタンが変更される。例えば、ユーザが操作ボタン７２ａにおける右方向を押下した場合、押下前に選択されていた選択ボタンの右側に配置されている選択肢ボタンが選択ボタンとなる。そして、押下前に選択されていた選択ボタンに付与されていた選択カーソルが、その右側に配置されている選択肢ボタンの周囲に移動し、当該選択肢ボタンが拡大表示されることによって、新たな選択ボタンが選択されたことがユーザに示される。一方、上記押下操作前に選択されていた旧選択ボタンは、その周囲から選択カーソルが取り除かれるとともに、拡大表示が解除されることによって他の選択肢ボタンと同様の表示態様に戻ることによって、ユーザの選択から外れたことが示される。
【００７８】
図１１および図１２において、ゲーム装置本体５がポインティング操作モードで動作している場合、ポインティング操作モードであることをユーザに通知するために、例えば指差し状態の手を模した標識を有する操作モード通知がモニタ２に表示される。そして、十字キー操作モードと同様に、その時点で選択されている選択ボタンは、その周囲に選択カーソルが付与されるとともに、他の選択肢ボタンに対して相対的に拡大表示される。したがって、ポインティング操作モードにおいても、ユーザは、選択カーソルが付与されて拡大表示されている選択肢ボタンを、現時点において選択されている選択ボタンであると認識することができる。また、ポインティング操作モードにおいては、コントローラ７で指し示されている位置を示すポインタとして、ポインティング位置アイコンがモニタ２に表示される（図１２参照）。なお、ポインティング操作モードであることを示す操作モード通知は、操作モードがポインティング操作モードに切り換わった直後から一定の時間だけ表示して非表示にしてもいいし、操作モードがポインティング操作モードである間は常にポインティング操作モードであることを示す操作モード通知を表示してもよい。
【００７９】
ここで、ポインティング操作モードにおいては、選択カーソルは、不透明の枠画像で表示される場合と半透明の枠画像で表示される場合とがある。例えば、図１１に示すように、ポインティング操作モードにおいて、コントローラ７で指し示されている位置（ポインティング位置）が何れの選択肢ボタン上にもない場合、選択カーソルが半透明の枠画像で表示される。具体的には、ポインティング操作モードにおいて、ユーザのポインティング位置がモニタ２の表示画面外にある場合や表示画面内であっても表示されている選択肢ボタンの画像上にない場合、直前の選択操作によって選択されている選択ボタンの周囲に半透明の選択カーソルが表示され、当該選択ボタンの拡大表示が継続される。一方、図１２に示すように、ポインティング操作モードにおいて、ポインティング位置が選択肢ボタンの何れか１つの上にある場合、当該ポインティング位置に配置されている選択肢ボタンが選択ボタンに設定される。すなわち、ポインティング位置に配置されている選択肢ボタンが新たに選択ボタンとなり、当該選択ボタンの周囲に不透明の選択カーソルが配置され、当該選択ボタンが拡大表示されることによって、新たな選択ボタンが選択されたことがユーザに示される。一方、上記ポインティング操作前に選択されていた旧選択ボタンは、その周囲から選択カーソル（典型的には、半透明の選択カーソル）が取り除かれるとともに、拡大表示が解除されることによって他の選択肢ボタンと同様の表示態様に戻ることによって、ユーザの選択から外れたことが示される。
【００８０】
このように、複数の選択肢ボタンから選択ボタンを選択する選択操作においては、操作ボタン７２ａを押下する選択操作と、コントローラ７で指し示す選択操作とが可能となっている。これらの選択操作は、ユーザの意図に応じて切り替えることができるが、以下のような操作によって一方の操作モードから他方の操作モードへ切り替えることができる。例えば、十字キー操作モードで動作している場合、所定時間以上継続してコントローラ７の操作ボタン７２への操作がない状態で、上記ポインティング位置が所定の範囲外（例えば、モニタ２の表示画面外）から当該所定の範囲内（例えば、モニタ２の表示画面内）に移動すれば、ポインティング操作モードに切り替えられる。一方、ポインティング操作モードで動作している場合、コントローラ７の操作ボタン７２ａ（十字キー）が押下されれば、十字キー操作モードに切り替えられる。つまり、ユーザは、上述した操作モードを意識しない状態であっても、操作ボタン７２ａを押下すれば、当該操作ボタン７２ａを押下することによって選択操作が可能な十字キー操作モードに切り替えることができる。また、ユーザは、コントローラ７で一旦所定の範囲外を指し示した後、当該所定の範囲内を指し示すような動作を、操作ボタン７２を操作することなく行えば、当該コントローラ７で指し示すことによって選択操作が可能なポインティング操作モードに切り替えることができる。特に、ユーザはコントローラ７を用いてモニタ２の表示画面を指し示したい場合に、当該コントローラ７では表示画面を直接指し示すわけではなくユーザが正確に表示画面を指し示しているのか否かを判断しにくいため、ユーザはコントローラ７の向きをいろいろ変化させるような操作を自然に行うことになる。この自然に行われる操作により、一旦所定の範囲外を指し示した後に当該所定の範囲内を指し示すことになり、その結果、十字キー操作モードからポインティング操作モードに移行することになる。すなわち、ユーザがコントローラ７を用いてモニタ２の表示画面を指し示したいという意思が働いたときの自然な操作でポインティング操作モードに切り替わることになる。
【００８１】
次に、ゲームシステム１において行われる処理の詳細を説明する。まず、図１３を参照して、処理において用いられる主なデータについて説明する。なお、図１３は、ゲーム装置本体５の外部メインメモリ１２および／または内部メインメモリ３５（以下、２つのメインメモリを総称して、単にメインメモリと記載する）に記憶される主なデータおよびプログラムの一例を示す図である。
【００８２】
図１３に示すように、メインメモリのデータ記憶領域には、操作データＤａ、指示位置データＤｂ、選択肢ボタンデータＤｃ、選択ボタンデータＤｄ、選択カーソルデータＤｅ、操作モードデータＤｆ、キー未入力時間データＤｇ、画面外フラグデータＤｈ、および画像データＤｉ等が記憶される。なお、メインメモリには、図１３に示す情報に含まれるデータの他、モニタ２に表示される他のオブジェクト等に関するデータ等、処理に必要なデータが記憶される。また、メインメモリのプログラム記憶領域には、情報処理プログラムを構成する各種プログラム群Ｐａが記憶される。
【００８３】
操作データＤａは、コントローラ７から送信データとして送信されてくる一連の操作情報が格納され、最新の操作データに更新される。操作データＤａは、キーデータＤａ１、第１座標データＤａ２、および第２座標データＤａ３等を含んでいる。キーデータＤａ１は、コントローラ７の操作部７２に対する操作を示すデータであり、コントローラ７から送信データとして送信されてくる一連の操作情報に含まれる最新のキーデータが格納される。第１座標データＤａ２および第２座標データＤａ３は、上述の処理結果データの位置情報に相当するデータである。第１座標データＤａ２は、撮像素子７４３が撮像した撮像画像に対して、２つのマーカ８Ｌおよび８Ｒのうちの一方の画像の位置（撮像画像内における位置）を示すデータである。第２座標データＤａ３は、他方のマーカの画像の位置（撮像画像内における位置）を示すデータである。例えば、撮像画像におけるマーカの画像の位置は、撮像画像におけるｘｙ座標系によって表される。
【００８４】
なお、ゲーム装置本体５に備える無線コントローラモジュール１９は、コントローラ７から所定周期（例えば、１／２００秒毎）に送信される操作情報に含まれるキーデータおよび処理結果データを受信し、無線コントローラモジュール１９に備える図示しないバッファに蓄えられる。その後、上記バッファに蓄えられたキーデータおよび加速度データが処理周期である１フレーム毎（例えば、１／６０秒毎）に読み出されて、メインメモリのキーデータＤａ１、第１座標データＤａ２、および第２座標データＤａ３がそれぞれ更新される。
【００８５】
このとき、操作情報を受信する周期と処理周期とが異なるために、上記バッファには複数の時点に受信した操作情報が記述されていることになる。後述する処理の説明においては、後述する各ステップにおいて、複数の時点に受信した操作情報のうち最新の操作情報のみを常に用いて処理して、次のステップに進める態様を用いる。
【００８６】
また、後述する処理フローでは、キーデータＤａ１、第１座標データＤａ２、および第２座標データＤａ３が処理周期である１フレーム毎に更新される例を用いて説明するが、他の処理周期で更新されてもかまわない。例えば、コントローラ７からの送信周期毎にキーデータＤａ１、第１座標データＤａ２、および第２座標データＤａ３をそれぞれ更新し、当該更新されたキーデータＤａ１、第１座標データＤａ２、および第２座標データＤａ３を処理周期毎に利用する態様でもかまわない。この場合、キーデータＤａ１、第１座標データＤａ２、および第２座標データＤａ３を更新する周期と、他の処理周期とが異なることになる。
【００８７】
指示位置データＤｂは、モニタ２の表示画面に表示されている表示画像（仮想世界）において、ユーザがコントローラ７で指し示すポインティング操作に応じて設定されるユーザの指示位置（ポインティング位置）を示すデータである。
【００８８】
選択肢ボタンデータＤｃは、モニタ２に表示する複数の選択肢ボタンおよび選択ボタン（図１０〜図１２参照）に関するデータである。例えば、選択肢ボタンデータＤｃは、複数の選択肢ボタン（選択ボタンを含む）毎に、ボタンの表示位置、表示形状、表示サイズ、表示内容、および対応する情報処理の内容等を示すデータを含んでいる。選択ボタンデータＤｄは、複数の選択肢ボタンから選択されている選択ボタン（図１０〜図１２参照）に関するデータである。例えば、選択ボタンデータＤｄは、選択肢ボタンから選択ボタンとして選択されているボタンを区別するデータを含んでいる。選択カーソルデータＤｅは、モニタ２に表示する選択カーソル（図１０〜図１２参照）に関するデータである。例えば、選択カーソルデータＤｅは、選択カーソルの表示位置、表示形状、表示サイズ、および表示態様（不透明や半透明）等を示すデータを含んでいる。
【００８９】
操作モードデータＤｆは、現時点で設定されている操作モード（例えば、十字キー操作モード、ポインティング操作モード）を示すデータである。キー未入力時間データＤｇは、コントローラ７の操作ボタン７２に対して、操作が行われていない状態が継続している時間（キー未入力時間Ｔ）を示すデータである。画面外フラグデータＤｈは、ユーザの指示位置（ポインティング位置）がモニタ２の表示画面外に出た場合にオンに設定される画面外フラグを示すデータである。
【００９０】
画像データＤｉは、選択肢ボタン画像データＤｉ１、選択カーソル画像データＤｉ２、操作モード通知画像データＤｉ３、および背景画像データＤｉ４等を含んでいる。選択肢ボタン画像データＤｉ１は、表示画面に選択肢ボタンや選択ボタン等を配置して表示画像を生成するためのデータである。選択カーソル画像データＤｉ２は、表示画面に選択カーソルを配置して表示画像を生成するためのデータである。操作モード通知画像データＤｉ３は、表示画面に操作モード通知（図１０〜図１２参照）を配置して表示画像を生成するためのデータである。背景画像データＤｉ４は、表示画面に背景を配置して画像を生成するためのデータである。
【００９１】
次に、図１４〜図１６を参照して、ゲーム装置本体５において行われる処理の詳細を説明する。なお、図１４は、ゲーム装置本体５において実行される処理の一例を示すフローチャートである。図１５は、図１４におけるステップ４２の十字キー操作処理の一例を示すサブルーチンである。図１６は、図１４におけるステップ５１のポインティング操作処理の一例を示すサブルーチンである。ここで、図１４〜図１６に示すフローチャートにおいては、処理のうち、ユーザの操作に応じて、選択肢ボタンから選択ボタンを選択して決定する処理について主に説明し、本願発明と直接関連しない他の処理については詳細な説明を省略する。また、図１４〜図１６では、ＣＰＵ１０が実行する各ステップを「Ｓ」と略称する。
【００９２】
ゲーム装置本体５の電源が投入されると、ゲーム装置本体５のＣＰＵ１０は、ＲＯＭ／ＲＴＣ１３に記憶されている起動用のプログラムを実行し、これによってメインメモリ等の各ユニットが初期化される。そして、光ディスク４に記憶された情報処理プログラムがメインメモリに読み込まれ、ＣＰＵ１０によって当該プログラムの実行が開始される。図１４〜図１６に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。
【００９３】
図１４において、ＣＰＵ１０は、処理の初期設定を行い（ステップ４１）、次のステップに処理を進める。例えば、上記ステップ４１における初期設定において、ＣＰＵ１０は、ユーザに選択を促す表示画面を初期設定して、各パラメータを初期化する。例えば、上記初期設定において、ＣＰＵ１０は、初期配置する選択肢ボタンの表示位置、表示形状、表示サイズ、表示内容、および対応する情報処理の内容等を示すデータを設定し、選択肢ボタンデータＤｃを更新する。また、上記初期設定において、ＣＰＵ１０は、初期配置された選択肢ボタンのうち、所定のデフォルト位置に配置された選択肢ボタンを選択ボタンに初期設定し、当該初期設定された選択ボタンが拡大表示されて周囲に選択カーソルが設定されるように、選択肢ボタンデータＤｃ、選択ボタンデータＤｄ、および選択カーソルデータＤｅを更新する。さらに、上記初期設定において、ＣＰＵ１０は、他のデータを所定の値（例えば、０、空値、またはＮｕｌｌ値）に初期化する。
【００９４】
次に、ＣＰＵ１０は、十字キー操作処理を行い（ステップ４２）、次のステップに処理を進める。以下、図１５を参照して、上記ステップ４２で行う十字キー操作処理について説明する。
【００９５】
図１５において、ＣＰＵ１０は、動作モードを十字キー操作モードに設定し（ステップ６０）、次のステップに処理を進める。例えば、ＣＰＵ１０は、操作モードデータＤｆが示す操作モードを十字キー操作モードに設定する。
【００９６】
次に、ＣＰＵ１０は、選択肢ボタン、選択ボタン、選択カーソル、および操作モード通知等を表示画面に配置して表示する処理を行い（ステップ６１）、次のステップに処理を進める。例えば、ＣＰＵ１０は、選択肢ボタンデータＤｃ、選択ボタンデータＤｄ、選択カーソルデータＤｅ、操作モードデータＤｆ、および画像データＤｉに基づいた表示位置、表示形状、表示サイズ、および表示内容等を用いて、選択肢ボタン、選択ボタン、選択カーソル、および操作モード通知等を配置して、モニタ２に表示する。ここで、上記ステップ６１において、ＣＰＵ１０は、ポインティング位置アイコンを表示画面に表示していない。なお、ＣＰＵ１０は、前回の処理においてポインティング位置アイコンが表示画面に表示されている場合、当該ポインティング位置アイコンを表示画面から削除する。
【００９７】
次に、ＣＰＵ１０は、コントローラ７から操作情報を示すデータを取得し（ステップ６２）、次のステップに処理を進める。例えば、ＣＰＵ１０は、コントローラ７から受信した操作情報を取得し、当該操作情報に含まれる最新のキーデータおよび処理結果データを用いて、キーデータＤａ１、第１座標データＤａ２、および第２座標データＤａ３を更新する。また、ＣＰＵ１０は、更新された第１座標データＤａ２および第２座標データＤａ３を用いて、スクリーン座標系の位置座標を指示位置（ポインティング位置）として算出し、指示位置データＤｂを更新する。なお、撮像情報演算部７４の撮像画像にマーカ８Ｌおよび８Ｒが撮像されていない等によって上記指示位置が算出できない場合、ＣＰＵ１０は、Ｎｕｌｌ値を示すデータを用いて指示位置データＤｂを更新する。以下、操作情報を用いて、指示座標を算出する一例について詳述する。
【００９８】
例えば、ＣＰＵ１０は、第１座標データＤａ２が示す位置から第２座標データＤａ３が示す位置への方向を算出する。具体的には、ＣＰＵ１０は、第１座標データＤａ２および第２座標データＤａ３を参照して、第１座標データＤａ２が示す位置を始点とし第２座標データＤａ３が示す位置を終点とするベクトルを算出する。このベクトルが示す方向と所定の基準方向との差によって、コントローラ７の撮像面に垂直な方向を軸とする回転を算出することができる。
【００９９】
また、ＣＰＵ１０は、第１座標データＤａ２が示す位置と第２座標データＤａ３が示す位置との中点の位置を算出する。この中点の位置は、撮像画像内における対象画像（マーカ８Ｌおよび８Ｒ）の位置を示しており、中点の位置と所定の基準位置との差によって、コントローラ７の位置の変化による画像位置の変化を算出することができる。
【０１００】
ここで、マーカ８Ｌおよび８Ｒと、モニタ２の表示画面と、コントローラ７との位置関係について考える。例えば、モニタ２の上面に２つのマーカ８Ｌおよび８Ｒを設置し（図１参照）、上面が上方向を向いたコントローラ７を用いてユーザがモニタ２の表示画面の中央を指し示した場合（撮像情報演算部７４の撮像画像の中央に表示画面中央が撮像されている状態）を考える。このとき、撮像情報演算部７４の撮像画像において、対象画像の中点（マーカ８Ｌおよび８Ｒの中点）位置と指し示した位置（表示画面中央）とが一致しない。具体的には、上記撮像画像における対象画像の位置は、撮像画像の中心から上方の位置となる。このような位置に対象画像が位置する場合に、表示画面中央を指し示しているという基準位置の設定を行う。一方、コントローラ７の移動に対応して、撮像画像中の対象画像の位置も移動する（移動方向は逆方向となる）ので、撮像画像中の対象画像の位置の移動に対応させて表示画面を指し示す位置を移動させる処理を行うことによって、コントローラ７で指し示された表示画面基準の位置（スクリーン座標系の位置座標）を算出することができる。ここで、基準位置の設定は、予めユーザが表示画面の所定位置を指し示し、そのときの対象画像の位置を当該所定位置と対応させて記憶しておくようにしてもよいし、マーカ８Ｌおよび８Ｒと表示画面との位置関係が固定的であれば、予め設定されていてもよい。また、マーカ８Ｌおよび８Ｒが、モニタ２とは別体で設けられてモニタ２の近く（モニタ２の上や下など）に載置されて使用されるものである場合には、ゲーム開始前に、マーカ８Ｌおよび８Ｒをモニタに対してどの位置に載置しているかをユーザに入力させ（例えば、モニタ２の上に載置したか下に載置したか等の選択肢から選択させ）、光ディスク４やゲーム装置本体５に内蔵された不揮発メモリなどに、モニタの上に載置した場合の基準位置データと、モニタの下に載置した場合の基準位置データをそれぞれ記憶しておいて、それらを選択して使用してもよい。このようなスクリーン座標系の指示位置は、中点の位置からモニタ２の表示画面基準の座標を算出する関数を用いた線形変換で算出される。この関数は、ある撮像画像から算出される中点の位置の値（座標）を、当該撮像画像が撮像されるときのコントローラ７によって指し示される表示画面上の位置（スクリーン座標系の位置座標）を表す座標に変換するものである。この関数によって、中点の位置から表示画面を基準とした指示位置（ポインティング位置）を算出することができる。
【０１０１】
しかしながら、上面が上方向以外（例えば、右方向）を向いたコントローラ７を用いてユーザがモニタ２の表示画面の中央を指し示した場合、上記撮像画像における対象画像の位置は撮像画像の中心から上方以外（例えば、左方）の方向にずれた位置となる。つまり、コントローラ７の傾きによって、コントローラ７の移動方向と、表示画面基準の指示位置の移動方向が一致しないことになる。そこで、上記ベクトルが示す方向に基づいて、中点の位置を補正する。具体的には、中点の位置を、コントローラ７の上面が上方向を向いた状態であるとした場合における中点の位置に補正する。より具体的には、上記基準位置の設定の際には上記ベクトルが示す方向の基準も設定され、中点の位置を、当該方向と当該基準方向との角度差に応じた量だけ、撮像画像の中心を軸として中点の位置を回転移動させて補正する。そして、補正された中点の位置を用いて上述したように指示位置を算出する。
【０１０２】
次に、ＣＰＵ１０は、十字キー（操作ボタン７２ａ）が押下操作されているか否かを判断する（ステップ６３）。そして、ＣＰＵ１０は、十字キーが押下操作されている場合、次のステップ６４に処理を進める。一方、ＣＰＵ１０は、十字キーが押下操作されていない場合、当該サブルーチンによる処理を終了する。例えば、ＣＰＵ１０は、キーデータＤａ１を参照して、十字キー（操作ボタン７２ａ）が押下操作されているか否かを判断する。
【０１０３】
ステップ６４において、ＣＰＵ１０は、十字キーが押下された操作指示方向に応じて、選択ボタンを変更し、次のステップに処理を進める。例えば、ＣＰＵ１０は、キーデータＤａ１、選択肢ボタンデータＤｃ、および選択ボタンデータＤｄを参照して、上記操作指示方向に応じた選択ボタンを設定する。具体的には、十字キーにおける右方向が押下操作されたことをキーデータＤａ１が示している場合、ＣＰＵ１０は、選択ボタンデータＤｄが示す選択ボタンの右側に配置されている選択肢ボタンを、選択肢ボタンデータＤｃを参照して抽出する。そして、ＣＰＵ１０は、上記抽出された選択肢ボタンを新たな選択ボタンに設定して、選択ボタンデータＤｄを更新する。つまり、上記ステップ６４では、選択ボタンデータＤｄが示していた選択ボタンは破棄され、上記抽出された選択肢ボタンが新たな選択ボタンとして設定されることになる。
【０１０４】
なお、十字キーの押下操作に応じて、新たな選択ボタンに変更する方式は、任意の方式を用いればよい。一例として、十字キーが１回押下操作されることによって、当該押下操作された操作指示方向へ１つ選択ボタンをずらす方式が考えられる。この場合、十字キーが押下操作されていない状態から押下操作されている状態に変化したことを契機に、当該押下操作された操作指示方向へ選択ボタンが変更される。他の例として、十字キーが押下操作されることによって、当該押下操作された操作指示方向へ１つ選択ボタンをずらすとともに、十字キーが継続して押下操作されている場合に所定時間毎にさらに当該押下操作されている操作指示方向へ１つ選択ボタンをずらす方式が考えられる。この場合、十字キーが押下操作されていない状態から押下操作されている状態に変化したことを契機および継続して押下操作されている場合の所定時間毎を契機に、当該押下操作された操作指示方向へ選択ボタンが変更される。
【０１０５】
次に、ＣＰＵ１０は、上記ステップ６４で設定された新たな選択ボタンを拡大表示し、それまでに設定されていた旧選択ボタンを通常のサイズに縮小表示する設定を行い（ステップ６５）、次のステップに処理を進める。例えば、ＣＰＵ１０は、上記ステップ６４で設定された新たな選択ボタンに対応する選択肢ボタンの表示サイズを拡大して設定し、選択肢ボタンデータＤｃにおいて対応する選択肢ボタンの表示サイズを、当該拡大後の表示サイズを用いて更新する。また、ＣＰＵ１０は、上記ステップ６４において新たな選択ボタンが設定されるまで設定されていた旧選択ボタンの表示サイズを、他の選択肢ボタンと実質的に同等のサイズに縮小し、選択肢ボタンデータＤｃにおいて対応する選択肢ボタンの表示サイズを、当該縮小後の表示サイズを用いて更新する。
【０１０６】
次に、ＣＰＵ１０は、上記ステップ６４で設定された新たな選択ボタンの周囲に選択カーソルを移動させ（ステップ６６）、当該サブルーチンによる処理を終了する。例えば、ＣＰＵ１０は、上記ステップ６４で設定された新たな選択ボタンの周囲に選択カーソルが配置されるように、スクリーン座標系における選択カーソルの位置を設定し、設定された位置を用いて選択カーソルデータＤｅを更新する。また、ＣＰＵ１０は、選択カーソルの表示態様を不透明に設定して選択カーソルデータＤｅを更新する。
【０１０７】
図１４に戻り、上記ステップ４２における十字キー操作処理の後、ＣＰＵ１０は、決定操作が行われたか否かを判断する（ステップ４３）。ここで、決定操作は、コントローラ７の所定の操作ボタン７２（例えば、操作ボタン７２ｄ（Ａボタン））が押下されることによって行われる。例えば、上記ステップ４３において、ＣＰＵ１０は、キーデータＤａ１を参照し、上記決定操作が行われたか否かを判断する。そして、ＣＰＵ１０は、決定操作が行われていない場合、次のステップ４４に処理を進める。一方、ＣＰＵ１０は、決定操作が行われた場合、次のステップ５４に処理を進める。
【０１０８】
ステップ４４において、ＣＰＵ１０は、コントローラ７における何れかのキー（操作ボタン７２の何れか）が操作されているか否かを判断する。そして、ＣＰＵ１０は、何れのキーも操作されていない場合、次のステップ４５に処理を進める。一方、ＣＰＵ１０は、何れかのキーが操作されている場合、次のステップ４６に処理を進める。例えば、上記ステップ４４において、ＣＰＵ１０は、キーデータＤａ１を参照して操作ボタン７２の何れかが操作されたか否かを判断する。
【０１０９】
ステップ４５において、ＣＰＵ１０は、何れのキーも操作されていない場合にキー未入力時間Ｔに１を加算して、次のステップ４７に処理を進める。例えば、ＣＰＵ１０は、キー未入力時間データＤｇが示すキー未入力時間Ｔに１を加算し、加算後のキー未入力時間Ｔを用いてキー未入力時間データＤｇを更新する。
【０１１０】
一方、ステップ４６において、ＣＰＵ１０は、何れかのキーが操作されている場合にキー未入力時間Ｔを０に初期化して、上記ステップ４２に戻って処理を繰り返す。例えば、ＣＰＵ１０は、キー未入力時間データＤｇが示すキー未入力時間Ｔを０に初期化し、初期化されたキー未入力時間Ｔを用いてキー未入力時間データＤｇを更新する。
【０１１１】
ステップ４７において、ＣＰＵ１０は、キー未入力時間データＤｇが示すキー未入力時間Ｔが閾値Ｔｍａｘ（例えば、２秒）以上か否かを判断する。そして、ＣＰＵ１０は、キー未入力時間Ｔが閾値Ｔｍａｘ以上である場合、次のステップ４８に処理を進める。一方、ＣＰＵ１０は、キー未入力時間Ｔが閾値Ｔｍａｘ未満である場合、上記ステップ４２に戻って処理を繰り返す。
【０１１２】
ステップ４８において、ＣＰＵ１０は、指示位置データＤｂが示す指示位置が表示画面内か否かを判断する。そして、ＣＰＵ１０は、指示位置が表示画面内である場合、次のステップ５０に処理を進める。一方、ＣＰＵ１０は、指示位置が表示画面外である場合や指示位置が算出されていない場合、画面外フラグをオンに設定して画面外フラグデータＤｈを更新し（ステップ４９）、上記ステップ４２に戻って処理を繰り返す。
【０１１３】
なお、上述した処理では、キー未入力時間Ｔが閾値Ｔｍａｘ以上である場合のみ、画面外フラグがオンまたはオフに切り替えられる例を示したが、他のタイミングでも画面外フラグのオン／オフを切り替えてもかまわない。例えば、上記十字キー操作処理（ステップ４２）中や後述するポインティング操作処理（ステップ５１）中において、指示位置が表示画面内である場合に画面外フラグをオフし、指示位置が表示画面外である場合に画面外フラグをオンに切り替える処理を常に行ってもかまわない。
【０１１４】
ステップ５０において、ＣＰＵ１０は、画面外フラグデータＤｈが示す画面外フラグがオンに設定されているか否かを判断する。そして、ＣＰＵ１０は、画面外フラグがオンに設定されている場合、キー未入力時間データＤｇが示すキー未入力時間Ｔを０に初期化し、画面外フラグをオフに設定して画面外フラグデータＤｈを更新して、次のステップ５１に処理を進める。一方、ＣＰＵ１０は、画面外フラグがオフに設定されている場合、上記ステップ４２に戻って処理を繰り返す。
【０１１５】
ステップ５１において、ＣＰＵ１０は、ポインティング操作処理を行い、次のステップに処理を進める。以下、図１６を参照して、上記ステップ５１で行うポインティング操作処理について説明する。
【０１１６】
図１６において、ＣＰＵ１０は、動作モードをポインティング操作モードに設定し（ステップ８１）、次のステップに処理を進める。例えば、ＣＰＵ１０は、操作モードデータＤｆが示す操作モードをポインティング操作モードに設定する。
【０１１７】
次に、ＣＰＵ１０は、コントローラ７から操作情報を示すデータを取得し（ステップ８２）、次のステップに処理を進める。例えば、ＣＰＵ１０は、コントローラ７から受信した操作情報を取得し、当該操作情報に含まれる最新のキーデータおよび処理結果データを用いて、キーデータＤａ１、第１座標データＤａ２、および第２座標データＤａ３を更新する。また、ＣＰＵ１０は、更新された第１座標データＤａ２および第２座標データＤａ３を用いて、スクリーン座標系の位置座標を指示位置（ポインティング位置）として算出し、指示位置データＤｂを更新する。なお、指示位置の算出方法の一例については、上記ステップ６２の処理と同様であるため、ここでは詳細な説明を省略する。
【０１１８】
次に、ＣＰＵ１０は、選択肢ボタン、選択ボタン、選択カーソル、操作モード通知、およびポインティング位置アイコン等を表示画面に配置して表示する処理を行い（ステップ８３）、次のステップに処理を進める。例えば、ＣＰＵ１０は、指示位置データＤｂ、選択肢ボタンデータＤｃ、選択ボタンデータＤｄ、選択カーソルデータＤｅ、操作モードデータＤｆ、および画像データＤｉに基づいた表示位置、表示形状、表示サイズ、および表示内容等を用いて、選択肢ボタン、選択ボタン、選択カーソル、操作モード通知、およびポインティング位置アイコン等を配置して、モニタ２に表示する。ここで、ＣＰＵ１０は、指示位置データＤｂが示す指示位置に対応するスクリーン座標系の位置にポインティング位置アイコンを配置するが、当該位置が表示画面外である場合や指示位置が算出されていない場合、結果的にポインティング位置アイコンが表示画面内に表示されないことになる。
【０１１９】
次に、ＣＰＵ１０は、指示位置が何れかの選択肢ボタン内または選択ボタン内にあるか否かを判断する（ステップ８４）。そして、ＣＰＵ１０は、指示位置が何れかの選択肢ボタン内または選択ボタン内にある場合、次のステップ８５に処理を進める。一方、指示位置が何れの選択肢ボタン内にも選択ボタン内にもない場合や指示位置が算出されていない場合、次のステップ９０に処理を進める。例えば、ＣＰＵ１０は、選択肢ボタンデータＤｃを用いて各選択肢ボタンおよび選択ボタンの位置、表示サイズ、および表示形状を管理しており、当該データおよび指示位置データＤｂを用いて、指示位置が何れかの選択肢ボタン内または選択ボタン内にあるか否かを判断する。
【０１２０】
ステップ８５において、ＣＰＵ１０は、指示位置が選択ボタン内にあるか否かを判断する。そして、ＣＰＵ１０は、指示位置が選択ボタン内にない場合（すなわち、選択肢ボタン内にある場合）、次のステップ８６に処理を進める。一方、指示位置が選択ボタン内にある場合、次のステップ８９に処理を進める。例えば、ＣＰＵ１０は、選択肢ボタンデータＤｃおよび選択ボタンデータＤｄを用いて、指示位置が選択ボタン内にあるか否かを判断する。
【０１２１】
ステップ８６において、ＣＰＵ１０は、指示位置が含まれる選択肢ボタンを新たな選択ボタンに設定し、次のステップに処理を進める。例えば、ＣＰＵ１０は、指示位置データＤｂおよび選択肢ボタンデータＤｃを参照して、指示位置が含まれる選択肢ボタンを抽出する。そして、ＣＰＵ１０は、上記抽出された選択肢ボタンを新たな選択ボタンに設定して、選択ボタンデータＤｄを更新する。つまり、上記ステップ８６では、選択ボタンデータＤｄが示していた選択ボタンは破棄され、上記抽出された選択肢ボタンが新たな選択ボタンとして設定されることになる。
【０１２２】
次に、ＣＰＵ１０は、上記ステップ８６で設定された新たな選択ボタンを拡大表示し、それまでに設定されていた旧選択ボタンを通常のサイズに縮小表示する設定を行い（ステップ８７）、次のステップに処理を進める。例えば、ＣＰＵ１０は、上記ステップ８６で設定された新たな選択ボタンに対応する選択肢ボタンの表示サイズを拡大して設定し、選択肢ボタンデータＤｃにおいて対応する選択肢ボタンの表示サイズを、当該拡大後の表示サイズを用いて更新する。また、ＣＰＵ１０は、上記ステップ６４において新たな選択ボタンが設定されるまで設定されていた旧選択ボタンの表示サイズを、他の選択肢ボタンと実質的に同等のサイズに縮小し、選択肢ボタンデータＤｃにおいて対応する選択肢ボタンの表示サイズを、当該縮小後の表示サイズを用いて更新する。
【０１２３】
次に、ＣＰＵ１０は、上記ステップ８６で設定された新たな選択ボタンの周囲に選択カーソルを移動させ（ステップ８８）、次のステップ８９に処理を進める。例えば、ＣＰＵ１０は、上記ステップ８６で設定された新たな選択ボタンの周囲に選択カーソルが配置されるように、スクリーン座標系における選択カーソルの位置を設定し、設定された位置を用いて選択カーソルデータＤｅを更新する。
【０１２４】
ステップ８９において、ＣＰＵ１０は、選択カーソルの表示態様を不透明に設定して選択カーソルデータＤｅを更新し、当該サブルーチンによる処理を終了する。
【０１２５】
一方、ステップ９０において、ＣＰＵ１０は、選択カーソルの表示態様を半透明に設定して選択カーソルデータＤｅを更新し、当該サブルーチンによる処理を終了する。
【０１２６】
図１４に戻り、上記ステップ５１におけるポインティング操作処理の後、ＣＰＵ１０は、決定操作が行われたか否かを判断する（ステップ５２）。ここで、決定操作は、コントローラ７の所定の操作ボタン７２（例えば、操作ボタン７２ｄ（Ａボタン））が押下されることによって行われる。例えば、上記ステップ５２において、ＣＰＵ１０は、キーデータＤａ１を参照し、上記決定操作が行われたか否かを判断する。そして、ＣＰＵ１０は、決定操作が行われていない場合、次のステップ５３に処理を進める。一方、ＣＰＵ１０は、決定操作が行われた場合、次のステップ５４に処理を進める。
【０１２７】
ステップ５３において、ＣＰＵ１０は、操作ボタン７２ａ（十字キー）が操作されているか否かを判断する。そして、ＣＰＵ１０は、操作ボタン７２ａが操作されていない場合、上記ステップ５１に戻って処理を繰り返す。一方、ＣＰＵ１０は、操作ボタン７２ａが操作されている場合、上記ステップ４２に戻って処理を繰り返す。例えば、上記ステップ５３において、ＣＰＵ１０は、キーデータＤａ１を参照して操作ボタン７２ａが操作されているか否かを判断する。
【０１２８】
ステップ５４において、ＣＰＵ１０は、ユーザによって選択された選択肢に応じた処理を実行し、当該フローチャートによる処理を終了する。ここで、上記ステップ５４の処理は、上記ステップ４３またはステップ５２の判定処理において肯定判定された、すなわちユーザが決定操作を行った場合に行われる。この場合、上記ステップ４２における十字キー操作処理または上記ステップ５１におけるポインティング操作処理において、何れかの選択肢ボタンが選択ボタンとして選択されている。したがって、上記ステップ５４において、ＣＰＵ１０は、決定操作された時点で選択されている選択ボタンに対応する情報処理の内容を選択肢ボタンデータＤｃを参照して取得し、当該情報処理の実行を開始する。
【０１２９】
このように、上述した処理によれば、操作ボタン７２を押下する操作およびコントローラ７で指し示す操作の一方を選択して所定の情報処理を行う場合、ユーザの意図に応じて操作方法を切り替えることができる。
【０１３０】
なお、上述した説明では、コントローラ７の操作ボタン７２ａ（十字キー）をユーザが押下操作することによる選択操作モード（十字キー操作モード）と、コントローラ７を用いてモニタ２の表示画面をユーザが指し示す選択操作（ポインティング操作モード）とが用意されている例を用いたが、他の選択操作の組み合わせでも本発明を実現することができる。例えば、コントローラ７に設けられた他の操作ボタン７２をユーザが押下操作することによる選択操作モードと、上記ポインティング操作モードとを用意して、当該操作モードを同様に切り替えてもかまわない。また、上述したように、十字方向の４つのプッシュスイッチ、４つのプッシュスイッチとセンタスイッチとを複合した操作部、ジョイスティック、円盤状部材をスライドさせる操作部、タッチパッド等がコントローラ７に設けられている場合、これらのデバイスをユーザが操作することによる選択操作モードと、上記ポインティング操作モードとを用意して、当該操作モードを同様に切り替えてもかまわない。
【０１３１】
また、キーボードのキー（例えば、方向キー）をユーザが押下操作することによる選択操作モード（方向キー操作モード）と、マウスを用いて表示画面上の位置を指定する選択操作（マウス操作モード）とを用意して、これらの操作を切り替える態様でもかまわない。以下、図１７Ａおよび図１７Ｂを参照して、上記方向操作モードとマウス操作モードとを切り替える例について説明する。なお、図１７Ａは、方向キー操作モードにおいてモニタ２に表示される画像の一例を概説する図解図である。図１７Ｂは、マウス操作モードにおいてモニタ２に表示される画像の一例を概説する図解図である。
【０１３２】
図１７Ａにおいて、モニタ２には、上述した例と同様に、ユーザに選択操作を促すための複数の選択肢ボタンおよび選択ボタンが表示されている。ゲーム装置本体５が方向キー操作モードで動作している場合、方向キー操作モードであることをユーザに通知するために、例えば方向キーを模した標識を有する操作モード通知がモニタ２に表示される。そして、その時点で選択されている選択ボタンは、その周囲に不透明の選択カーソルが付与されるとともに、他の選択肢ボタンに対して相対的に拡大表示される。
【０１３３】
このような方向キー操作モードでゲーム装置本体５が動作している状態で、ユーザがマウス操作モードに切り替えたい場合、所定時間以上継続してキーボードへのキー入力がない状態で、マウスによる指示位置（ポインティング位置）が所定の範囲外から当該所定の範囲内に移動すれば、マウス操作モードに切り替えられる。ここで、一般的に、マウスを用いて表示画面上の位置を指定する場合、表示画面外を指定できないことが多く、当該指定可能な範囲は表示画面内に限定されている。したがって、マウスを選択操作に用いる場合は、モニタ２の表示画面全体を切り替え判定に用いる上記所定の範囲に設定することはできない。したがって、マウス操作モードへの切り替えに用いる上記所定の範囲を、モニタ２に表示可能な表示領域の内部に設けることによって、上記切り替え判定を行う。例えば、図１７Ａに示すように、モニタ２の表示領域の外縁領域を除いた判定領域Ａｒを設定する。そして、所定時間以上継続してキーボードへのキー入力がない状態で、マウスによる指示位置が判定領域Ａｒ外から判定領域Ａｒ内に移動すれば、マウス操作モードに切り替える。このように、選択操作を切り替える際に用いられる所定の範囲は、表示画面全体と等しい範囲または表示画面全体より大きな範囲に設定してもいいし、表示画面内部の一部に設けてもよい。なお、図１７Ａにおいては、方向キー操作モードにおいて指示位置が記載されているが、これは判定領域Ａｒ外に指示位置が設定されている例をわかりやすくするためであり、モニタ２には指示位置を示す画像が表示されなくてもかまわない。
【０１３４】
上記切り替え操作の後、ゲーム装置本体５がマウス操作モードで動作を開始すれば、マウス操作モードであることをユーザに通知するために、例えばマウスを模した標識を有する操作モード通知がモニタ２に表示される（図１７Ｂ参照）。そして、方向キー操作モードと同様に、その時点で選択されている選択ボタンは、その周囲に選択カーソルが付与されるとともに、他の選択肢ボタンに対して相対的に拡大表示される。また、マウス操作モードにおいては、マウスによる指示位置を示す標識として、ポインティング位置アイコンがモニタ２に表示される。
【０１３５】
ここで、マウス操作モードにおいても、選択カーソルは、不透明の枠画像で表示される場合と半透明の枠画像で表示される場合とがある。例えば、図１７Ｂに示すように、マウス操作モードにおいて、マウスの指示位置が何れの選択肢ボタン上にもない場合、選択カーソルが半透明の枠画像で表示される。具体的には、マウス操作モードにおいて、ユーザの指示位置が表示されている選択肢ボタンの画像上にない場合、直前の選択操作によって選択されている選択ボタンの周囲に半透明の選択カーソルが表示され、当該選択ボタンの拡大表示が継続される。一方、マウス操作モードにおいて、マウスの指示位置が選択肢ボタンの何れか１つの上にある場合、当該指示位置に配置されている選択肢ボタンが選択ボタンに設定される。すなわち、マウスの指示位置と重なって配置されている選択肢ボタンが新たに選択ボタンとなり、当該選択ボタンの周囲に不透明の選択カーソルが配置され、当該選択ボタンが拡大表示されることによって、新たな選択ボタンが選択されたことがユーザに示される。
【０１３６】
また、上述した説明においては、操作ボタン７２ａ（十字キー）をユーザが押下操作することによる選択操作モード（十字キー操作モード）およびコントローラ７を用いてモニタ２の表示画面をユーザが指し示す選択操作（ポインティング操作モード）とを切り替える態様と、キーボードの方向キーをユーザが押下操作することによる選択操作モード（方向キー操作モード）およびマウスを用いて表示画面上の位置を指定する選択操作（マウス操作モード）とを切り替える態様とを用いた。これらは、ボタンを押下操作することによる選択操作モード（十字キー操作モード、方向キー操作モード）と、ポインティングデバイスを用いた選択操作モード（ポインティング操作モード、マウス操作モード）とを切り替えていることになるが、他のデバイスを用いた選択操作を切り替えてもかまわない。例えば、タッチパネルをタッチ操作することによる選択操作モード（タッチ操作モード）と、上記ポインティング操作モードとを切り替えてもよい。これは、ポインティングデバイスを用いた選択操作モード（タッチ操作モード）と当該ポインティングデバイスとは別のポインティングデバイスを用いた選択操作モード（ポインティング操作モード、マウス操作モード）とを切り替えていることになる。なお、本説明で用いたタッチパネルは、他のデバイスでもよい。例えば、上記タッチパネルに代えて、トラックパッド、トラックボール、ペンタブレット、ジョイスティック等でも実現可能である。
【０１３７】
この場合、所定時間以上継続してタッチパネルへのタッチ操作がない状態で、コントローラ７が指し示す位置またはマウスの指示位置が所定の範囲外から当該所定の範囲内に移動すれば、タッチ操作モードからポインティング操作モードまたはマウス操作モードに切り替えられる。一方、タッチパネルがタッチ操作されれば、ポインティング操作モードまたはマウス操作モードからタッチ操作モードに切り替えられる。このように、ユーザは、上述したタッチ操作モード、ポインティング操作モード、およびマウス操作モード等を意識しない状態であっても、タッチパネルをタッチ操作すれば、当該タッチパネルをタッチ操作することによって選択操作が可能なタッチ操作モードに切り替えることができる。また、ユーザは、コントローラ７またはマウスで一旦所定の範囲外を指示した後、当該所定の範囲内を指示するような動作を、タッチパネルをタッチ操作することなく行えば、当該コントローラ７またはマウスで指示することによって選択操作が可能なポインティング操作モードまたはマウス操作モードに切り替えることができる。
【０１３８】
このような操作の切り替えは、表示画面に覆われたタッチパネルを用いた操作と、当該表示画面をコントローラで指し示す操作とを切り替える場合に好適である。すなわち、ユーザは、自身の手が届く範囲に表示画面が配置されている場合は、当該表示画面に覆われたタッチパネルを用いて表示画面を直接タッチする操作を行い、自身の手が届かない位置に表示画面が配置されている場合は、コントローラで表示画面を指し示して遠隔操作することが可能となる。そして、これらの操作の切り替えが、ユーザが意識することなく迅速に行われるため、ユーザの意図に応じてストレスなく２つの操作が切り替えられる。
【０１３９】
また、図１４〜図１６を用いて説明した情報処理例では、当該処理開始時の最初に十字キー操作モードが設定されるが、ポインティング操作モードが最初に設定されてもかまわない。この場合、上記ステップ４１における初期設定の後に上記ステップ５１〜上記ステップ５３の処理を行い、当該ステップ５３で肯定判定された場合に上記ステップ４１〜ステップ５０の処理を行えばよい。また、上記情報処理においてユーザが最後に選択した操作モードを、当該情報処理が次に実行される際に初期設定される操作モードに設定してもかまわない。
【０１４０】
また、上述した説明では、十字キー操作モードからポインティング操作モードへの切り替え、方向キー操作モードからマウス操作モードへの切り替え、およびタッチ操作モードからポインティング操作モードまたはマウス操作モードへの切り替えにおいて、それぞれ十字キー、方向キー、およびタッチパネルに所定時間以上継続して操作が行われていないことを切り替え条件の１つとしている。これは、ユーザが意図しない状態で別の操作モードへ切り替えられることを防止するためである。例えば、十字キー操作モードにおいて、コントローラ７の操作ボタン７２ａを操作している際、ユーザが当該操作中にコントローラ７自体を動かしてしまうことが考えられる。このような場合、上記切り替え条件によってユーザが意図しない操作の切り替えが防止されるが、当該切り替え条件がない場合、操作ボタン７２ａの操作中にポインティング操作モードへ切り替えられてしまう可能性がある。なお、このような効果を期待しない場合、上記切り替え条件を考慮しなくてもよい。一例として、十字キー操作モードからポインティング操作モードへの切り替え、方向キー操作モードからマウス操作モードへの切り替え、およびタッチ操作モードからポインティング操作モードまたはマウス操作モードへの切り替えは、それぞれコントローラ７またはマウスで指示される指示位置が所定の範囲外から当該所定の範囲内に移動した時点において、十字キー、方向キー、およびタッチパネルが操作されていなければ、ポインティング操作モードまたはマウス操作モードに切り替えられる。他の例として、十字キー操作モードからポインティング操作モードへの切り替え、方向キー操作モードからマウス操作モードへの切り替え、およびタッチ操作モードからポインティング操作モードまたはマウス操作モードへの切り替えは、それぞれコントローラ７またはマウスで一旦所定の範囲外を指示した後、当該所定の範囲内を指示するような動作が行われるだけで、ポインティング操作モードまたはマウス操作モードに切り替えられる。
【０１４１】
また、上述した説明では、表示画面に表示された選択肢から選択する操作に対して、切り替え可能な２つの操作を適用させたが、他の操作に対して上述した操作を適用させてもかまわない。例えば、仮想世界に配置されたプレイヤキャラクタを移動させる操作に対して、十字キーの押下方向に応じて当該プレイヤキャラクタを移動させる操作と、コントローラ７で指し示した位置または方向やマウスで指定した位置または方向等を移動目標としてプレイヤキャラクタを移動させる操作とを、上述した処理によって切り替えてもかまわない。なお、この操作の切り替え例においては、さらに当該操作の切り替えを契機として、ゲーム画像の視点も切り替えることも考えられる。例えば、十字キーの押下方向に応じてプレイヤキャラクタを移動させる操作モードでは、当該プレイヤキャラクタを含む仮想世界を客観視点で見たゲーム画像を表示する。一方、コントローラ７で指し示した位置または方向やマウスで指定した位置または方向等を移動目標としてプレイヤキャラクタを移動させる操作モードでは、当該プレイヤキャラクタから仮想世界を見た主観視点でゲーム画像を表示する。このように、操作の切り替えと視点の切り替えとを連動させることによって、さらに興趣度が高いゲームを実現することもできる。
【０１４２】
また、上述した説明では、表示画面に対して遠隔から座標指定するために、コントローラ７に設けられた撮像素子７４３で撮像対象を撮像した画像データを解析することによって、モニタ２の表示画面に対して座標指定する態様を用いた。この態様は、表示画面近傍に撮像対象となる２つのマーカを設置し、撮像手段およびその撮像方向を自在に変更可能なハウジングを備えたデバイスが撮像画像中の２つのマーカを検出し、当該撮像画像におけるマーカの位置に基づいて当該デバイスが指定する座標位置を導出するものである。しかしながら、他の態様で上記座標指定を行ってもかまわない。
【０１４３】
例えば、表示画面近傍に設置する撮像対象は、上述した電気的なマーカ（ＬＥＤモジュール）の他に、光を反射する部材や特定色や特定形状を有する物理的なマーカでもかまわない。また、モニタ２の表示画面に撮像対象を表示してもかまわない。また、コントローラ７が備える撮像手段でラスタスキャン型モニタの走査線を読み取ることによって、当該モニタ自体を撮像対象にしてもかまわない。また、磁気発生装置を設け、当該磁気発生装置から生じる磁気を利用して遠隔から座標指定してもかまわない。この場合、コントローラ７には、上記磁気を検出するための磁気センサを設けることになる。
【０１４４】
また、上述した説明では、２つのマーカ８Ｌおよび８Ｒからの赤外光を、コントローラ７の撮像情報演算部７４の撮像対象としたが、他のものを撮像対象にしてもかまわない。例えば、１つまたは３つ以上のマーカをモニタ２の近傍に設置し、それらのマーカからの赤外光を撮像情報演算部７４の撮像対象としてもかまわない。例えば、所定の長さを有する１つのマーカをモニタ２の近傍に設置しても、本発明を同様に実現することができる。また、モニタ２の表示画面自体や他の発光体（室内灯等）を撮像情報演算部７４の撮像対象としてもかまわない。撮像対象とモニタ２の表示画面との配置関係に基づいて、当該表示画面に対するコントローラ７の位置を演算すれば、様々な発光体を撮像情報演算部７４の撮像対象として用いることができる。
【０１４５】
また、コントローラ７側にマーカ等の撮像対象を設けて、撮像手段をモニタ２側に設けてもかまわない。さらに他の例では、コントローラ７の前面から光を放射する機構を設けてもかまわない。この場合、コントローラ７およびモニタ２とは別の場所にモニタ２の表示画面を撮像する撮像装置を設置し、モニタ２の表示画面にコントローラ７から放射された光が反射した位置を当該撮像装置が撮像した画像から解析することによって、同様に表示画面に対して遠隔から座標指定するためのデータを出力可能なポインティングデバイスを構成することができる。
【０１４６】
また、上記実施例では、据置型のゲーム装置３を用いて説明したが、携帯型のゲーム装置や一般的なパーソナルコンピュータ等の情報処理装置で本発明の情報処理プログラムを実行して、本発明を実現してもかまわない。また、他の実施形態では、ゲーム装置に限らず任意の携帯型電子機器、例えば、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）や携帯電話、パーソナルコンピュータ、カメラ等であってもよい。
【０１４７】
また、上述した説明では情報処理をゲーム装置本体５で行う例を用いたが、上記情報処理における処理ステップの少なくとも一部を他の装置で行ってもかまわない。例えば、ゲーム装置本体５が他の装置（例えば、サーバや他のゲーム装置）と通信可能に構成されている場合、上記情報処理における処理ステップは、ゲーム装置本体５および当該他の装置が協働することによって実行してもよい。一例として、他の装置において、選択肢ボタン等を設定する処理が行われ、ゲーム装置本体５が選択肢ボタンに関するデータを取得して、当該データを利用しながらステップ４１〜ステップ５４の処理を行うことが考えられる。そして、何れかの選択肢が決定される操作が行われた場合、当該決定された旨を示すデータが他の装置へ送信され、他の装置から当該決定された処理に用いられるデータを取得することが考えられる。このように、上記情報処理における処理ステップの少なくとも一部を他の装置で行うことによって、上述した情報処理と同様の処理が可能となる。上述した情報処理は、少なくとも１つの情報処理装置により構成される情報処理システムに含まれる１つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。また、上記実施形態においては、ゲーム装置本体５のＣＰＵ１０が所定のプログラムを実行することによって、上述したフローチャートによる処理が行われたが、ゲーム装置本体５が備える専用回路によって上記処理の一部または全部が行われてもよい。
【０１４８】
また、上述した説明では、コントローラ７とゲーム装置本体５とが無線通信によって接続された態様を用いたが、コントローラ７とゲーム装置本体５とがケーブルを介して電気的に接続されてもかまわない。この場合、コントローラ７に接続されたケーブルをゲーム装置本体５の接続端子に接続する。
【０１４９】
また、上述したゲーム装置本体５の形状や、コントローラ７に設けられている各種操作ボタンの形状、数、および設置位置等は、単なる一例に過ぎず他の形状、数、および設置位置であっても、本発明を実現できることは言うまでもない。また、上述した情報処理で用いられる処理順序、設定値、表示態様、判定に用いられる値等は、単なる一例に過ぎず他の順序、表示態様、値であっても、本発明を実現できることは言うまでもない。例えば、上述した説明では、選択ボタンを囲むように不透明の選択アイコンや半透明の選択アイコンが付与される例を用いたが、他の表示態様や他の形状の選択アイコンを付与してもかまわない。一例として、半透明の選択アイコンの代わりに半透明部に塗りつぶしがない枠画像内部が透明の選択アイコンを、選択アイコンに付与してもかまわない。他の例として、半透明の選択アイコンの代わりに上記不透明の選択アイコンに対して色が異なる不透明の選択アイコンを、選択アイコンに付与してもかまわない。
【０１５０】
また、上記情報処理プログラム（ゲームプログラム）は、光ディスク４等の外部記憶媒体を通じてゲーム装置本体５に供給されるだけでなく、有線または無線の通信回線を通じてゲーム装置本体５に供給されてもよい。また、情報処理プログラムは、ゲーム装置本体５内部の不揮発性記憶装置に予め記録されていてもよい。なお、情報処理プログラムを記憶する情報記憶媒体としては、ＣＤ−ＲＯＭ、ＤＶＤ、あるいはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープなどでもよい。また、上記情報処理プログラムを記憶する情報記憶媒体としては、不揮発性半導体メモリや揮発性メモリでもよい。
【０１５１】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書（定義を含めて）が優先する。
【産業上の利用可能性】
【０１５２】
本発明に係る情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法は、複数の入力手段を用いて入力操作を行う際、当該入力操作の切り替えをユーザの意図に応じて行うことができ、複数の入力手段による操作が可能な情報処理装置および情報処理システム、当該情報処理装置または情報処理システムが実行する情報処理プログラム、当該情報処理装置または情報処理システムに含まれる１つのプロセッサまたは複数のプロセッサ間の協働により実行される情報処理方法等として有用である。
【符号の説明】
【０１５３】
１…ゲームシステム
２…モニタ
２ａ、７０６…スピーカ
３…ゲーム装置
４…光ディスク
５…ゲーム装置本体
１０…ＣＰＵ
１１…システムＬＳＩ
１２…外部メインメモリ
１３…ＲＯＭ／ＲＴＣ
１４…ディスクドライブ
１５…ＡＶ−ＩＣ
１６…ＡＶコネクタ
１７…フラッシュメモリ
１８…無線通信モジュール
１９…無線コントローラモジュール
２０…拡張コネクタ
２１…外部メモリカード用コネクタ
２２、２３…アンテナ
２４…電源ボタン
２５…リセットボタン
２６…イジェクトボタン
３１…入出力プロセッサ
３２…ＧＰＵ
３３…ＤＳＰ
３４…ＶＲＡＭ
３５…内部メインメモリ
７…コントローラ
７１…ハウジング
７２…操作部
７３…コネクタ
７４…撮像情報演算部
７４１…赤外線フィルタ
７４２…レンズ
７４３…撮像素子
７４４…画像処理回路
７５…通信部
７５１…マイコン
７５２…メモリ
７５３…無線モジュール
７５４…アンテナ
７００…基板
７０１…加速度センサ
７０２…ＬＥＤ
７０７…サウンドＩＣ
７０８…アンプ
８…マーカ
【図１】
0005654330.tif 000002
【図２】
0005654330.tif 000003
【図３】
0005654330.tif 000004
【図４】
0005654330.tif 000005
【図５】
0005654330.tif 000006
【図６】
0005654330.tif 000007
【図７】
0005654330.tif 000008
【図８】
0005654330.tif 000009
【図９】
0005654330.tif 000010
【図１０】
0005654330.tif 000011
【図１１】
0005654330.tif 000012
【図１２】
0005654330.tif 000013
【図１３】
0005654330.tif 000014
【図１４】
0005654330.tif 000015
【図１５】
0005654330.tif 000016
【図１６】
0005654330.tif 000017
【図１７Ａ】
0005654330.tif 000018
【図１７Ｂ】
0005654330.tif 000019