(57)【要約】【課題】複数の入力手段の切替を高レスポンスで切り替えることができる情報処理装置、情報処理プログラムを提供すること。【解決手段】まず、複数の入力手段のうちポインティングデバイスを含む入力装置筐体自体に加えられた動きに関する情報である動き情報を取得する。次に、動き情報に基づいて入力装置筐体の移動量を算出する。そして、移動量が所定の条件を満たしたか否かを判定し、所定の条件を満たしているときは、ポインティングデバイスからの出力に基づいて位置指示を行う。【選択図】図２０
2010097429.tif 000002
【特許請求の範囲】
【請求項１】
ポインティングデバイスを少なくとも１つは含む複数の入力手段からの出力に基づいて画面上の位置指示を行う情報処理装置のコンピュータに実行させる情報処理プログラムであって、
前記コンピュータを、
前記ポインティングデバイスを含む第１の入力装置筐体自体に加えられた動きに関する情報である動き情報を取得する動き情報取得手段と、
前記動き情報に基づいて前記第１の入力装置筐体の移動量を算出する移動量算出手段と、
前記移動量が所定の閾値を越えたか否かを判定する閾値判定手段と、
前記移動量が前記所定の閾値を越えたと判定されたときに、前記ポインティングデバイスからの出力に基づいて位置指示を行う第１位置指示手段として機能させる情報処理プログラム。
【請求項２】
前記第１の入力装置筐体には、前記複数の入力手段のうち、ポインティングデバイスではない入力手段である非ポインティングデバイスも含まれており、
前記情報処理プログラムは、前記コンピュータを、
前記第１位置指示手段によって位置指示が行われているときに前記非ポインティングデバイスへの入力が発生したか否かを判定する判定手段と、
前記判定手段が前記非ポインティングデバイスへの入力が発生したと判定したとき、当該非ポインティングデバイスからの出力に基づいて位置指示を行う第２位置指示手段として更に機能させる、請求項１に記載の情報処理プログラム。
【請求項３】
前記複数の入力手段のうち、ポインティングデバイスではない入力手段である非ポインティングデバイスが第２の入力装置筐体に含まれており、
前記情報処理プログラムは、前記コンピュータを、
前記第１位置指示手段によって位置指示が行われているときに前記非ポインティングデバイスへの入力が発生したか否かを判定する判定手段と、
前記判定手段が前記非ポインティングデバイスへの入力が発生したと判定したとき、当該非ポインティングデバイスからの出力に基づいて位置指示を行う第２位置指示手段として更に機能させる、請求項１に記載の情報処理プログラム。
【請求項４】
前記情報処理プログラムは、前記コンピュータを、前記第１位置指示手段による第１の位置指示モードと、ポインティングデバイスではない入力手段である非ポインティングデバイスからの出力に基づいて位置指示を行う第２の位置指示モードとの間で位置指示モードを切り替える切替手段として更に機能させ、
前記切替手段は、位置指示モードが前記第２の位置指示モードであるときに前記移動量が所定の閾値を越えたときは前記第１の位置指示モードに切り替え、位置指示モードが前記第１の位置指示モードであるときに前記非ポインティングデバイスへの入力が発生したときは前記第２の位置指示モードに切り替える、請求項１に記載の情報処理プログラム。
【請求項５】
前記情報処理プログラムは、前記コンピュータを、前記位置指示モードが前記第２の位置指示モードであるときに、前記非ポインティングデバイスに対する入力が無いと判定されている期間を計測する無入力期間計測手段として更に機能させ、
前記切替手段は、前記無入力期間計測手段によって計測された期間が所定の値を越えたとき、前記位置指示モードを前記第１の位置指示モードに切り替える、請求項４に記載の情報処理プログラム。
【請求項６】
前記第１の入力装置筐体には、当該第１の入力装置筐体自体に加えられた動きを検出するための動きセンサが含まれており、
前記動き情報取得手段は、前記動きセンサから出力されるデータを動き情報として取得する、請求項１に記載の情報処理プログラム。
【請求項７】
前記動き情報取得手段は、前記ポインティングデバイスによる指示位置を示すデータを動き情報として繰り返し取得し、
前記移動量算出手段は、前記ポインティングデバイスによる指示位置の変化量に基づいて前記移動量を算出する、請求項１に記載の情報処理プログラム。
【請求項８】
前記情報処理プログラムは、前記コンピュータを、前記移動量算出手段が算出した移動量を累積する累積手段として更に機能させ、
前記閾値判定手段は、前記累積手段によって累積された値が所定の閾値を越えたか否かを判定する、請求項１に記載の情報処理プログラム。
【請求項９】
前記累積手段は、現時点までの所定期間分の移動量を累積する、請求項８に記載の情報処理プログラム。
【請求項１０】
前記情報処理プログラムは、前記コンピュータを、前記ポインティングデバイス以外の入力手段に対する入力が発生したとき、累積値をリセットする累積値リセット手段として更に機能させる、請求項８に記載の情報処理プログラム。
【請求項１１】
前記情報処理プログラムは、前記コンピュータを、前記移動量算出手段が算出した移動量の変化量を算出する移動変化量算出手段として更に機能させ、
前記閾値判定手段は、前記移動変化量算出手段によって算出された変化量が所定の閾値を越えたか否かを判定する、請求項１に記載の情報処理プログラム。
【請求項１２】
前記情報処理プログラムは、前記コンピュータを、前記移動変化量算出手段が算出した変化量を累積する変化量累積手段として更に機能させ、
前記閾値判定手段は、前記変化量累積手段によって累積された変化量が所定の閾値を越えたか否かを判定する、請求項１１に記載の情報処理プログラム。
【請求項１３】
前記変化量累積手段は、現時点までの所定期間分の変化量を累積する、請求項１２に記載の情報処理プログラム。
【請求項１４】
前記情報処理プログラムは、前記コンピュータを、前記ポインティングデバイス以外の入力手段に対する入力が発生したとき、前記累積された変化量をリセットする累積値リセット手段として更に機能させる、請求項１２に記載の情報処理プログラム。
【請求項１５】
前記第１の入力装置筐体は、表示装置の近傍に配置された少なくとも１つの撮像対象を撮像するための撮像手段を備え、
前記第１位置指示手段は、
前記撮像手段を備えた入力装置筐体から出力される撮像画像データを取得する撮像画像データ取得手段を含み、
前記撮像画像データで示される撮像画像に写っている撮像対象に基づいて、位置指示を行う、請求項１に記載の情報処理プログラム。
【請求項１６】
画面に表示されている複数のオブジェクトのうちの一つを選択する情報処理装置のコンピュータに実行させる情報処理プログラムであって、
前記コンピュータを、
前記オブジェクトの選択操作に用いられる所定の入力装置筐体自体に加えられた動きに関する情報である動き情報を取得する動き情報取得手段と、
前記画面上の任意の位置を指示可能であり、当該画面に表示されているいずれかのオブジェクトの表示されている位置を指示することで当該オブジェクトを選択可能なポインティング選択モードと、所定のキー入力に応じて、選択されている状態を示すフォーカス状態の設定を当該画面に表示されている複数のオブジェクトの間で所定の順序で切り替えていくことによってオブジェクトの選択が可能なキー選択モードとの間で選択モードを前記動き情報に基づいて切り替える選択モード切替手段として機能させる、情報処理プログラム。
【請求項１７】
前記情報処理プログラムは、前記コンピュータを、
前記選択モードがポインティング選択モードであるときに、前記所定のキー入力が行われたか否かを判定する第１判定手段と、
前記選択モードがキー選択モードであるときに、前記動き情報に基づいて前記入力装置自体の移動量を算出する移動量算出手段として更に機能させ、
前記選択モード切替手段は、前記第１判定手段が前記キー入力が行われたと判定したときは、前記選択モードを前記キー選択モードに切り替え、前記移動量算出手段によって算出された移動量が所定の閾値を越えたときは、当該選択モードを前記ポインティング選択モードに切り替える、請求項１６に記載の情報処理プログラム。
【請求項１８】
前記入力装置筐体には、当該入力装置筐体自体に加えられた動きを検出するための動きセンサが含まれており、
前記動き情報取得手段は、前記動きセンサから出力されるデータを動き情報として取得する、請求項１６に記載の情報処理プログラム。
【請求項１９】
前記情報処理プログラムは、前記コンピュータを、前記移動量算出手段が算出した移動量を累積する累積手段として更に機能させ、
前記選択モード切替手段は、前記累積手段によって累積された値が所定の閾値を越えたときに選択モードを前記ポインティング選択モードに切り替える、請求項１６に記載の情報処理プログラム。
【請求項２０】
前記累積手段は、現時点までの所定期間分の移動量を累積する、請求項１９に記載の情報処理プログラム。
【請求項２１】
前記情報処理プログラムは、前記コンピュータを、前記第１判定手段が前記所定のキー入力が行われたと判定したとき、前記累積値をリセットする累積値リセット手段として更に機能させる、請求項１９に記載の情報処理プログラム。
【請求項２２】
前記情報処理プログラムは、前記コンピュータを、前記移動量算出手段が算出した移動量の変化量を算出する移動変化量算出手段として更に機能させ、
前記選択モード切替手段は、前記移動変化量算出手段によって算出された変化量が所定の閾値を越えたときに選択モードを前記ポインティング選択モードに切り替える、請求項１６に記載の情報処理プログラム。
【請求項２３】
前記情報処理プログラムは、前記コンピュータを、前記移動変化量算出手段が算出した変化量を累積する変化量累積手段として更に機能させ、
前記選択モード切替手段は、前記変化量累積手段によって累積された変化量が所定の閾値を越えたときに選択モードを前記ポインティング選択モードに切り替える、請求項２２に記載の情報処理プログラム。
【請求項２４】
前記変化量累積手段は、現時点までの所定期間分の変化量を累積する、請求項２３に記載の情報処理プログラム。
【請求項２５】
前記情報処理プログラムは、前記コンピュータを、前記ポインティングデバイス以外の入力手段に対する入力が発生したとき、前記累積された変化量をリセットする累積値リセット手段として更に機能させる、請求項２３に記載の情報処理プログラム。
【請求項２６】
前記情報処理プログラムは、前記コンピュータを、前記選択モードが前記キー選択モードであるときに、前記キー入力が行われていないと判定されている期間を計測する無入力期間計測手段として更に機能させ、
前記選択モード切替手段は、前記無入力期間計測手段によって計測された期間が所定の値を越えたとき、前記選択モードを前記ポインティング選択モードに切り替える、請求項１７に記載の情報処理プログラム。
【請求項２７】
ポインティングデバイスを少なくとも１つは含む複数の入力手段からの出力に基づいて画面上の位置指示を行う情報処理装置であって、
前記ポインティングデバイスを含む第１の入力装置筐体自体に加えられた動きに関する情報である動き情報を取得する動き情報取得手段と、
前記動き情報に基づいて前記第１の入力装置筐体の移動量を算出する移動量算出手段と、
前記移動量が所定の閾値を越えたか否かを判定する閾値判定手段と、
前記移動量が前記所定の閾値を越えたと判定されたときに、前記ポインティングデバイスからの出力に基づいて位置指示を行う第１位置指示手段とを備える情報処理装置。
【請求項２８】
画面に表示されている複数のオブジェクトのうちの一つを選択する情報処理装置であって、
前記オブジェクトの選択操作に用いられる所定の入力装置筐体自体に加えられた動きに関する情報である動き情報を取得する動き情報取得手段と、
前記画面上の任意の位置を指示可能であり、当該画面に表示されているいずれかのオブジェクトの表示されている位置を指示することで当該オブジェクトを選択可能なポインティング選択モードと、所定のキー入力に応じて、選択されている状態を示すフォーカス状態の設定を当該画面に表示されている複数のオブジェクトの間で所定の順序で切り替えていくことによってオブジェクトの選択が可能なキー選択モードとの間で選択モードを前記動き情報に基づいて切り替える選択モード切替手段とを備える情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画面上の位置指示を行い、選択処理を実行する情報処理装置および情報処理プログラムに関し、より特定的には、少なくともポインティングデバイスを含む複数の入力手段からの出力に基づき、画面上の位置指示および選択処理を行う情報処理装置および情報処理プログラムに関する。
【背景技術】
【０００２】
従来から、コンピュータシステムなどでは、処理内容（メニュー）や処理内容に対応した指示を行うために、座標入力装置が用いられている。中でも、複数の座標入力装置、例えば、マウスおよびタブレットを接続し、適宜併用するという利用形態がある。このような利用形態の場合、必要に応じて複数の座標入力装置を切り替える必要があり、これら複数の座標入力装置の切り替え装置も知られている（例えば、特許文献１）。上記座標入力装置切り替え装置では、指示座標の変化が所定時間以上継続して発生した座標入力装置が選択されている。つまり、マウス、タブレットの一方が予め設定した一定時間を動作した場合にのみ選択されている。
【特許文献１】特開平０６−２０８４３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上述したような座標入力装置切り替え装置において、座標入力装置を切り替えようとする場合、以下に示す問題点があった。すなわち、上述の切り替え装置では、利用する座標入力装置の選択の判断を、上記のように、予め設定した一定時間以上動作したか否かで判断している。そのため、座標入力装置の切り替えにはある程度の時間がかかってしまうという問題がある。つまり、切り替えのレスポンスが悪く、ユーザが切り替えたいと思ったタイミングにおいて、高レスポンスで座標入力装置を切り替えることができないという問題があった。
【０００４】
それ故に、本発明の目的は、複数の入力手段の切替を高レスポンスで切り替えることができる情報処理装置、情報処理プログラムを提供することである。
【課題を解決するための手段】
【０００５】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係の一例を示したものであって、本発明を何ら限定するものではない。
【０００６】
第１の発明は、ポインティングデバイスを少なくとも１つは含む複数の入力手段からの出力に基づいて画面上の位置指示を行う情報処理装置のコンピュータに実行させる情報処理プログラムであって、コンピュータを、動き情報取得手段（Ｓ４７）と、移動量算出手段（Ｓ４８）と、閾値判定手段（Ｓ５２）と、第１位置指示手段（Ｓ５４，Ｓ２４）として機能させる。動き情報取得手段は、ポインティングデバイスを含む第１の入力装置筐体自体に加えられた動きに関する情報である動き情報を取得する。移動量算出手段は、動き情報に基づいて第１の入力装置筐体の移動量を算出する。閾値判定手段は、移動量が所定の閾値を越えたか否かを判定する。第１位置指示手段は、移動量が所定の閾値を越えたと判定されたときに、ポインティングデバイスからの出力に基づいて位置指示を行う。
【０００７】
第１の発明によれば、ポインティングデバイスを含む入力装置自体に加えられた動きを検出し、当該動きに基づいて当該ポインティングデバイスによる位置指示操作に切り替えることができる。これにより、複数の入力手段を用いて操作を行う場合、プレイヤが用いる入力手段の切替をより高レスポンスで行うことが可能となる。
【０００８】
第２の発明は、第１の発明において、第１の入力装置筐体には、複数の入力手段のうち、ポインティングデバイスではない入力手段である非ポインティングデバイスも含まれている。そして、情報処理プログラムは、コンピュータを、判定手段（Ｓ２３）と、第２位置指示手段（Ｓ２５、Ｓ２６）として更に機能させる。判定手段は、第１位置指示手段によって位置指示が行われているときに非ポインティングデバイスへの入力が発生したか否かを判定する。第２位置指示手段は、判定手段が非ポインティングデバイスへの入力が発生したと判定したとき、当該非ポインティングデバイスからの出力に基づいて位置指示を行う。
【０００９】
第２の発明によれば、同一筐体内にポインティングデバイスと非ポインティングデバイスを含めた入力装置を用いるときに、各デバイスを用いる操作方式の切替を高レスポンスで実現することが可能となる。
【００１０】
第３の発明は、第１の発明において、複数の入力手段のうち、ポインティングデバイスではない入力手段である非ポインティングデバイスが第２の入力装置筐体に含まれている。そして、情報処理プログラムは、コンピュータを、判定手段（Ｓ２３）と、第２位置指示手段（Ｓ２５，Ｓ２６）として更に機能させる。判定手段は、第１位置指示手段によって位置指示が行われているときに非ポインティングデバイスへの入力が発生したか否かを判定する。第２位置指示手段は、判定手段が非ポインティングデバイスへの入力が発生したと判定したとき、当該非ポインティングデバイスからの出力に基づいて位置指示を行う。
【００１１】
第３の発明によれば、ポインティングデバイスと非ポインティングデバイスが別々の筐体に格納されている場合に、それぞれのデバイスを用いた入力方式の切替を高レスポンスで実現することが可能となる。
【００１２】
第４の発明は、第１の発明において、情報処理プログラムは、コンピュータを、第１位置指示手段による第１の位置指示モードと、ポインティングデバイスではない入力手段である非ポインティングデバイスからの出力に基づいて位置指示を行う第２の位置指示モードとの間で位置指示モードを切り替える切替手段（Ｓ２７、Ｓ５４）として更に機能させる。そして、切替手段は、位置指示モードが第２の位置指示モードであるときに移動量が所定の閾値を越えたときは第１の位置指示モードに切り替え、位置指示モードが第１の位置指示モードであるときに非ポインティングデバイスへの入力が発生したときは、第２の位置指示モードに切り替える。
【００１３】
第４の発明によれば、ポインティングデバイスによる位置指示のための操作方式と非ポインティングデバイスによる位置指示のための操作方式との切替を入力装置筐体自体に加えられた動きに応じて高レスポンスで切り替えることが可能となる。
【００１４】
第５の発明は、第４の発明において、情報処理プログラムは、コンピュータを、位置指示モードが第２の位置指示モードであるときに、非ポインティングデバイスに対する入力が無いと判定されている期間を計測する無入力期間計測手段（Ｓ４６，Ｓ５３）として更に機能させる。そして、切替手段は、無入力期間計測手段によって計測された期間が所定の値を越えたとき、位置指示モードを第１の位置指示モードに切り替える。
【００１５】
第５の発明によれば、入力装置の操作性を良くすることができ、ユーザの利便性をより高めることが可能となる。
【００１６】
第６の発明は、第１の発明において、第１の入力装置筐体には、当該第１の入力装置筐体自体に加えられた動きを検出するための動きセンサが含まれている。そして、動き情報取得手段は、動きセンサから出力されるデータを動き情報として取得する。
【００１７】
第６の発明によれば、第１の入力装置筐体自体に加えられた動きの内容をより正確に認識させることができ、操作方式のより正確でレスポンスの高い切り替えが可能となる。
【００１８】
第７の発明は、第１の発明において、動き情報取得手段は、ポインティングデバイスによる指示位置を示すデータを動き情報として繰り返し取得する。また、移動量算出手段は、ポインティングデバイスによる指示位置の変化量に基づいて移動量を算出する。
【００１９】
第７の発明によれば、ポインティングデバイスによる操作方式を用いるか否かの判定にポインティングデバイスの指示位置の変化量を利用するため、入力装置筐体自体に加えられた動きについてより正確に検知することが可能となる。
【００２０】
第８の発明は、第１の発明において、情報処理プログラムは、コンピュータを、移動量算出手段が算出した移動量を累積する累積手段（Ｓ４９）として更に機能させる。そして、閾値判定手段は、累積手段によって累積された値が所定の閾値を越えたか否かを判定する。
【００２１】
第８の発明によれば、ユーザが操作方式を切り替えたいタイミングについて、より正確に判定することが可能となる。
【００２２】
第９の発明は、第８の発明において、累積手段は、現時点までの所定期間分の移動量を累積する。
【００２３】
第９の発明によれば、第１の入力装置筐体に微小な動きが長時間継続して加えられるようなとき、第１位置指示手段へ誤って切り替えられることを防ぐ事ができる。
【００２４】
第１０の発明は、第８の発明において、情報処理プログラムは、コンピュータを、ポインティングデバイス以外の入力手段に対する入力が発生したとき、累積値をリセットする累積値リセット手段（Ｓ２８）として更に機能させる。
【００２５】
第１０の発明によれば、操作方式の切替をより正確に行うことが可能となる。
【００２６】
第１１の発明は、第１の発明において、情報処理プログラムは、コンピュータを、移動量算出手段が算出した移動量の変化量を算出する移動変化量算出手段（Ｓ４８）として更に機能させる。そして、閾値判定手段は、移動変化量算出手段によって算出された変化量が所定の閾値を越えたか否かを判定する。
【００２７】
第１２の発明は、第１１の発明において、情報処理プログラムは、コンピュータを、移動変化量算出手段が算出した変化量を累積する変化量累積手段（Ｓ４９）として更に機能させる。そして、閾値判定手段は、変化量累積手段によって累積された変化量が所定の閾値を越えたか否かを判定する。
【００２８】
第１１乃至第１２の発明によれば、移動の変化量に基づいて入力装置筐体に加えられた動きを検出でき、より正確な移動量の判定が可能となる。
【００２９】
第１３の発明は、第１２の発明において、変化量累積手段は、現時点までの所定期間分の変化量を累積する。
【００３０】
第１３の発明によれば、第１の入力装置筐体に微小な動きが長時間継続して加えられるようなとき、第１位置指示手段へ誤って切り替えられることを防ぐ事ができる。
【００３１】
第１４の発明は、情報処理プログラムは、コンピュータを、ポインティングデバイス以外の入力手段に対する入力が発生したとき、累積された変化量をリセットする累積値リセット手段（Ｓ２８）として更に機能させる。
【００３２】
第１４の発明によれば、操作方式の切替をより正確に行うことが可能となる。
【００３３】
第１５の発明は、第１の発明において、第１の入力装置筐体は、表示装置の近傍に配置された少なくとも１つの撮像対象を撮像するための撮像手段を備える。また、第１位置指示手段は、撮像画像データ取得手段（２１）を含む。撮像画像データ取得手段は、撮像手段を備えた入力装置筐体から出力される撮像画像データを取得する。そして、第１位置指示手段は、撮像画像データで示される撮像画像に写っている撮像対象に基づいて、位置指示を行う。
【００３４】
第１５の発明によれば、入力装置を表示装置に向けて操作するようなポインティングデバイスを用いる場合に、操作方式の切替について、操作性を更に良くすることができ、かつ、高レスポンスで切り替えることが可能となる。
【００３５】
第１６の発明は、画面に表示されている複数のオブジェクトのうちの一つを選択する情報処理装置のコンピュータに実行させる情報処理プログラムであって、コンピュータを、動き情報取得手段（Ｓ４７）と、選択モード切替手段（Ｓ２３，Ｓ２７，Ｓ５２〜Ｓ５４）として機能させる。動き情報取得手段は、オブジェクトの選択操作に用いられる所定の入力装置筐体自体に加えられた動きに関する情報である動き情報を取得する。選択モード切替手段は、画面上の任意の位置を指示可能であり、当該画面に表示されているいずれかのオブジェクトの表示されている位置を指示することで当該オブジェクトを選択可能なポインティング選択モードと、所定のキー入力に応じて、選択されている状態を示すフォーカス状態の設定を当該画面に表示されている複数のオブジェクトの間で所定の順序で切り替えていくことによってオブジェクトの選択が可能なキー選択モードとの間で選択モードを動き情報に基づいて切り替える。
【００３６】
第１６の発明によれば、ポインティング方式を用いた選択方式と用いない選択方式の切替を、入力装置筐体自体に加えられた動きに基づいて切り替えるため、よりレスポンスの高い切替操作を実現することができる。
【００３７】
第１７の発明は、第１６の発明において、情報処理プログラムは、コンピュータを、第１判定手段（Ｓ２３）と、移動量算出手段（Ｓ４８）として更に機能させる。第１判定手段は、選択モードがポインティング選択モードであるときに、所定のキー入力が行われたか否かを判定する。移動量算出手段は、選択モードがキー選択モードであるときに、動き情報に基づいて入力装置自体の移動量を算出する。そして、選択モード切替手段は、第１判定手段がキー入力が行われたと判定したときは、選択モードをキー選択モードに切り替え、移動量算出手段によって算出された移動量が所定の閾値を越えたときは、当該選択モードをポインティング選択モードに切り替える。
【００３８】
第１７の発明によれば、ユーザにとって違和感のない操作を用いて選択方式の切替を実現することができる。
【００３９】
第１８の発明は、第１６の発明において、入力装置筐体には、当該入力装置筐体自体に加えられた動きを検出するための動きセンサが含まれている。そして、動き情報取得手段は、動きセンサから出力されるデータを動き情報として取得する。
【００４０】
第１８の発明によれば、入力装置自体に加えられた動きをより正確に検知することが可能となる。
【００４１】
第１９の発明は、第１６の発明において、情報処理プログラムは、コンピュータを、移動量算出手段が算出した移動量を累積する累積手段（Ｓ４９）として更に機能させる。そして、選択モード切替手段は、累積手段によって累積された値が所定の閾値を越えたときに選択モードをポインティング選択モードに切り替える。
【００４２】
第１９の発明によれば、ユーザが操作方式を切り替えたいタイミングについて、より正確に判定することが可能となる。
【００４３】
第２０の発明は、第１９の発明において、累積手段は、現時点までの所定期間分の移動量を累積する。
【００４４】
第２０の発明によれば、入力装置筐体に微小な動きが長時間継続して加えられるようなとき、選択モードの切替が誤って実行されることを防ぐ事ができる。
【００４５】
第２１の発明は、第１９の発明において、情報処理プログラムは、コンピュータを、第１判定手段が所定のキー入力が行われたと判定したとき、累積値をリセットする累積値リセット手段（Ｓ２８）として更に機能させる。
【００４６】
第２１の発明によれば、選択方式の切替をより正確に行うことが可能となる。
【００４７】
第２２の発明は、第１６の発明において、情報処理プログラムは、コンピュータを、移動量算出手段が算出した移動量の変化量を算出する移動変化量算出手段として更に機能させる。そして、選択モード切替手段は、移動変化量算出手段によって算出された変化量が所定の閾値を越えたときに選択モードをポインティング選択モードに切り替える。
【００４８】
第２３の発明は、第２２の発明において、情報処理プログラムは、コンピュータを、移動変化量算出手段が算出した変化量を累積する変化量累積手段として更に機能させる。そして、選択モード切替手段は、変化量累積手段によって累積された変化量が所定の閾値を越えたときに選択モードをポインティング選択モードに切り替える。
【００４９】
第２２乃至第２３の発明によれば、移動の変化量に基づいて入力装置筐体に加えられた動きを検出でき、より正確な移動量の判定が可能となる。
【００５０】
第２４の発明は、第２３の発明において、変化量累積手段は、現時点までの所定期間分の変化量を累積する。
【００５１】
第２４の発明によれば、入力装置筐体に微小な動きが長時間継続して加えられるようなとき、選択モードの切替が誤って実行されることを防ぐ事ができる。
【００５２】
第２５の発明は、第２３の発明において、情報処理プログラムは、コンピュータを、ポインティングデバイス以外の入力手段に対する入力が発生したとき、累積された変化量をリセットする累積値リセット手段として更に機能させる。
【００５３】
第２５の発明によれば、選択方式の切替をより正確に行うことが可能となる。
【００５４】
第２６の発明は、第１７の発明において、情報処理プログラムは、コンピュータを、選択モードがキー選択モードであるときに、キー入力が行われていないと判定されている期間を計測する無入力期間計測手段（Ｓ４６、Ｓ５３）として更に機能させる。そして、選択モード切替手段は、無入力期間計測手段によって計測された期間が所定の値を越えたとき、選択モードをポインティング選択モードに切り替える。
【００５５】
第２６の発明によれば、ユーザの利便性をより高めることが可能となる。
【００５６】
第２７の発明は、ポインティングデバイスを少なくとも１つは含む複数の入力手段からの出力に基づいて画面上の位置指示を行う情報処理装置であって、動き情報取得手段（１０）と、移動量算出手段（１０）と、閾値判定手段（１０）と、第１位置指示手段（１０）とを備える。動き情報取得手段は、ポインティングデバイスを含む第１の入力装置筐体自体に加えられた動きに関する情報である動き情報を取得する。移動量算出手段は、動き情報に基づいて第１の入力装置筐体の移動量を算出する。閾値判定手段は、移動量が所定の閾値を越えたか否かを判定する。第１位置指示手段は、移動量が所定の閾値を越えたと判定されたときに、ポインティングデバイスからの出力に基づいて位置指示を行う。
【００５７】
第２７の発明によれば、第１の発明と同様の効果を得られる。
【００５８】
第２８の発明は、画面に表示されている複数のオブジェクトのうちの一つを選択する情報処理装置であって、動き情報取得手段（１０）と、選択モード切替手段（１０）とを備える。動き情報取得手段は、オブジェクトの選択操作に用いられる所定の入力装置自体に加えられた動きに関する情報である動き情報を取得する。選択モード切替手段は、画面上の任意の位置を指示可能であり、当該画面に表示されているいずれかのオブジェクトの表示されている位置を指示することで当該オブジェクトを選択可能なポインティング選択モードと、所定のキー入力に応じて、選択されている状態を示すフォーカス状態の設定を当該画面に表示されている複数のオブジェクトの間で所定の順序で切り替えていくことによってオブジェクトの選択が可能なキー選択モードとの間で選択モードを動き情報に基づいて切り替える。
【００５９】
第２８の発明によれば、第１６の発明と同様の効果を得ることができる。
【発明の効果】
【００６０】
本発明によれば、ポインティングデバイスを用いた方法を含む複数の位置指示方式について、高レスポンスで切り替えることができる、プレイヤの操作性、利便性を高めることが可能となる。
【発明を実施するための最良の形態】
【００６１】
以下、本発明の実施の形態について、図面を参照して説明する。尚、この実施例により本発明が限定されるものではない。
【００６２】
（ゲームシステムの全体構成）
図１を参照して、本発明の実施形態に係るゲーム装置を含むゲームシステム１について説明する。図１は、ゲームシステム１の外観図である。以下、据置型のゲーム装置を一例にして、本実施形態のゲーム装置およびゲームプログラムについて説明する。図１において、ゲームシステム１は、テレビジョン受像器（以下、単に「テレビ」と記載する）２、ゲーム装置本体３、光ディスク４、コントローラ７、およびマーカ部８を含む。本システムは、コントローラ７を用いたゲーム操作に基づいてゲーム装置本体３でゲーム処理を実行するものである。
【００６３】
ゲーム装置本体３には、当該ゲーム装置本体３に対して交換可能に用いられる情報記憶媒体の一例である光ディスク４が脱着可能に挿入される。光ディスク４には、ゲーム装置本体３において実行されるためのゲームプログラムが記憶されている。ゲーム装置本体３の前面には光ディスク４の挿入口が設けられている。ゲーム装置本体３は、挿入口に挿入された光ディスク４に記憶されたゲームプログラムを読み出して実行することによってゲーム処理を実行する。
【００６４】
ゲーム装置本体３には、表示装置の一例であるテレビ２が接続コードを介して接続される。テレビ２には、ゲーム装置本体３において実行されるゲーム処理の結果得られるゲーム画像が表示される。また、テレビ２の画面の周辺（図１では画面の上側）には、マーカ部８が設置される。マーカ部８は、その両端に２つのマーカ８Ｒおよび８Ｌを備えている。マーカ８Ｒ（マーカ８Ｌも同様）は、具体的には１以上の赤外ＬＥＤであり、テレビ２の前方に向かって赤外光を出力する。マーカ部８はゲーム装置本体３に接続されており、ゲーム装置本体３はマーカ部８が備える各赤外ＬＥＤの点灯を制御することが可能である。
【００６５】
コントローラ７は、当該コントローラ７自身に対して行われた操作の内容を示す操作データをゲーム装置本体３に与える入力装置である。コントローラ７とゲーム装置本体３とは無線通信によって接続される。本実施形態では、コントローラ７とゲーム装置本体３との間の無線通信には例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース）（登録商標）の技術が用いられる。なお、他の実施形態においてはコントローラ７とゲーム装置本体３とは有線で接続されてもよい。
【００６６】
（ゲーム装置本体３の内部構成）
次に、図２を参照して、ゲーム装置本体３の内部構成について説明する。図２は、ゲーム装置本体３の構成を示すブロック図である。ゲーム装置本体３は、ＣＰＵ１０、システムＬＳＩ１１、外部メインメモリ１２、ＲＯＭ／ＲＴＣ１３、ディスクドライブ１４、およびＡＶ−ＩＣ１５等を有する。
【００６７】
ＣＰＵ１０は、光ディスク４に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。ＣＰＵ１０は、システムＬＳＩ１１に接続される。システムＬＳＩ１１には、ＣＰＵ１０の他、外部メインメモリ１２、ＲＯＭ／ＲＴＣ１３、ディスクドライブ１４およびＡＶ−ＩＣ１５が接続される。システムＬＳＩ１１は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。システムＬＳＩの内部構成について後述する。揮発性の外部メインメモリ１２は、光ディスク４から読み出されたゲームプログラムや、フラッシュメモリ１７から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、ＣＰＵ１０のワーク領域やバッファ領域として用いられる。ＲＯＭ／ＲＴＣ１３は、ゲーム装置本体３の起動用のプログラムが組み込まれるＲＯＭ（いわゆるブートＲＯＭ）と、時間をカウントするクロック回路（ＲＴＣ：Ｒｅａｌ  Ｔｉｍｅ  Ｃｌｏｃｋ）とを有する。ディスクドライブ１４は、光ディスク４からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ１１ｅまたは外部メインメモリ１２に読み出したデータを書き込む。
【００６８】
また、システムＬＳＩ１１には、入出力プロセッサ１１ａ、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）１１ｂ、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）１１ｃ、ＶＲＡＭ１１ｄ、および内部メインメモリ１１ｅが設けられる。図示は省略するが、これらの構成要素１１ａ〜１１ｅは内部バスによって互いに接続される。
【００６９】
ＧＰＵ１１ｂは、描画手段の一部を形成し、ＣＰＵ１０からのグラフィクスコマンド（作画命令）に従って画像を生成する。より具体的には、ＧＰＵ１１ｂは、当該グラフィクスコマンドに従って３Ｄグラフィックスの表示に必要な計算処理、例えば、レンダリングの前処理にあたる３Ｄ座標から２Ｄ座標への座標変換などの処理や、テクスチャの張り込みなどの最終的なレンダリング処理を行うことで、ゲーム画像データを生成する。ここで、ＣＰＵ１０は、グラフィクスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラムをＧＰＵ１１ｂに与える。ＶＲＡＭ１１ｄは、ＧＰＵ１１ｂがグラフィクスコマンドを実行するために必要なデータ（ポリゴンデータやテクスチャデータ等のデータ）を記憶する。画像が生成される際には、ＧＰＵ１１ｂは、ＶＲＡＭ１１ｄに記憶されたデータを用いて画像データを作成する。
【００７０】
ＤＳＰ１１ｃは、オーディオプロセッサとして機能し、内部メインメモリ１１ｅや外部メインメモリ１２に記憶されるサウンドデータや音波形（音色）データを用いて、音声データを生成する。また、内部メインメモリ１１ｅは、外部メインメモリ１２と同様に、プログラムや各種データを記憶したり、ＣＰＵ１０のワーク領域やバッファ領域としても用いられる。
【００７１】
上述のように生成された画像データおよび音声データは、ＡＶ−ＩＣ１５によって読み出される。ＡＶ−ＩＣ１５は、読み出した画像データをＡＶコネクタ１６を介してテレビ２に出力するとともに、読み出した音声データを、テレビ２に内蔵されるスピーカ２ａに出力する。これによって、画像がテレビ２に表示されるとともに音がスピーカ２ａから出力される。
【００７２】
入出力プロセッサ（Ｉ／Ｏプロセッサ）１１ａは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ１１ａは、フラッシュメモリ１７、無線通信モジュール１８、無線コントローラモジュール１９、拡張コネクタ２０、およびメモリカード用コネクタ２１に接続される。無線通信モジュール１８にはアンテナ２２が接続され、無線コントローラモジュール１９にはアンテナ２３が接続される。
【００７３】
入出力プロセッサ１１ａは、無線通信モジュール１８およびアンテナ２２を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ１１ａは、定期的にフラッシュメモリ１７にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、無線通信モジュール１８およびアンテナ２２を介してネットワークに送信する。また、入出力プロセッサ１１ａは、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ２２および無線通信モジュール１８を介して受信し、受信したデータをフラッシュメモリ１７に記憶する。ＣＰＵ１０はゲームプログラムを実行することにより、フラッシュメモリ１７に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ１７には、ゲーム装置本体３と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置本体３を利用してプレイしたゲームのセーブデータ（ゲームの結果データまたは途中データ）が記憶されてもよい。
【００７４】
また、入出力プロセッサ１１ａは、コントローラ７から送信される操作データをアンテナ２３および無線コントローラモジュール１９を介して受信し、内部メインメモリ１１ｅまたは外部メインメモリ１２のバッファ領域に記憶（一時記憶）する。
【００７５】
さらに、入出力プロセッサ１１ａには、拡張コネクタ２０およびメモリカード用コネクタ２１が接続される。拡張コネクタ２０は、ＵＳＢやＳＣＳＩのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール１８に替えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ２１は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ１１ａは、拡張コネクタ２０やメモリカード用コネクタ２１を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【００７６】
ゲーム装置本体３には、電源ボタン２４、リセットボタン２５、およびイジェクトボタン２６が設けられる。電源ボタン２４およびリセットボタン２５は、システムＬＳＩ１１に接続される。電源ボタン２４がオンにされると、ゲーム装置本体３の各構成要素に対して、図示しないＡＣアダプタを経て電源が供給される。また、一旦電源がオンにされた状態で、再度電源ボタン２４を押すと、低電力スタンバイモードへの移行が行われる。この状態でも、ゲーム装置本体３への通電は行われているため、インターネット等のネットワークに常時接続しておくことができる。なお、一旦電源がオンにされた状態で、電源をオフにしたいときは、電源ボタン２４を所定時間以上長押しすることで、電源をオフとすることが可能である。リセットボタン２５が押されると、システムＬＳＩ１１は、ゲーム装置本体３の起動プログラムを再起動する。イジェクトボタン２６は、ディスクドライブ１４に接続される。イジェクトボタン２６が押されると、ディスクドライブ１４から光ディスク４が排出される。
【００７７】
次に、図３および図４を参照して、コントローラ７について説明する。なお、図３は、コントローラ７の上面後方から見た斜視図である。図４は、コントローラ７を下面前方から見た斜視図である。
【００７８】
図３および図４において、コントローラ７は、ハウジング７１と、当該ハウジング７１の表面に設けられた複数個の操作ボタンで構成される操作部７２とを備える。本実施例のハウジング７１は、その前後方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさであり、例えばプラスチック成型によって形成されている。
【００７９】
ハウジング７１上面の中央前面側に、十字キー７２ａが設けられる。この十字キー７２ａは、十字型の４方向プッシュスイッチであり、４つの方向（前後左右）に対応する操作部分が十字の突出片にそれぞれ９０°間隔で配置される。プレイヤが十字キー７２ａのいずれかの操作部分を押下することによって前後左右いずれかの方向を選択される。例えばプレイヤが十字キー７２ａを操作することによって、仮想ゲーム世界に登場するプレイヤキャラクタ等の移動方向を指示したり、複数の選択肢から選択指示したりすることができる。
【００８０】
なお、十字キー７２ａは、上述したプレイヤの方向入力操作に応じて操作信号を出力する操作部であるが、他の態様の操作部でもかまわない。例えば、十字方向に４つのプッシュスイッチを配設し、プレイヤによって押下されたプッシュスイッチに応じて操作信号を出力する操作部を設けてもかまわない。さらに、上記４つのプッシュスイッチとは別に、上記十字方向が交わる位置にセンタスイッチを配設し、４つのプッシュスイッチとセンタスイッチとを複合した操作部を設けてもかまわない。また、ハウジング７１上面から突出した傾倒可能なスティック（いわゆる、ジョイスティック）を倒すことによって、傾倒方向に応じて操作信号を出力する操作部を上記十字キー７２ａの代わりに設けてもかまわない。さらに、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部を、上記十字キー７２ａの代わりに設けてもかまわない。また、タッチパッドを、上記十字キー７２ａの代わりに設けてもかまわない。
【００８１】
ハウジング７１上面の十字キー７２ａより後面側に、複数の操作ボタン７２ｂ〜７２ｇが設けられる。操作ボタン７２ｂ〜７２ｇは、プレイヤがボタン頭部を押下することによって、それぞれの操作ボタン７２ｂ〜７２ｇに割り当てられた操作信号を出力する操作部である。例えば、操作ボタン７２ｂ〜７２ｄには、１番ボタン、２番ボタン、およびＡボタン等としての機能が割り当てられる。また、操作ボタン７２ｅ〜７２ｇには、マイナスボタン、ホームボタン、およびプラスボタン等としての機能が割り当てられる。これら操作ボタン７２ａ〜７２ｇは、ゲーム装置本体３が実行するゲームプログラムに応じてそれぞれの操作機能が割り当てられる。なお、図３に示した配置例では、操作ボタン７２ｂ〜７２ｄは、ハウジング７１上面の中央前後方向に沿って並設されている。また、操作ボタン７２ｅ〜７２ｇは、ハウジング７１上面の左右方向に沿って操作ボタン７２ｂおよび７２ｄの間に並設されている。そして、操作ボタン７２ｆは、その上面がハウジング７１の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【００８２】
また、ハウジング７１上面の十字キー７２ａより前面側に、操作ボタン７２ｈが設けられる。操作ボタン７２ｈは、遠隔からゲーム装置本体３本体の電源をオン／オフする電源スイッチである。この操作ボタン７２ｈも、その上面がハウジング７１の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【００８３】
また、ハウジング７１上面の操作ボタン７２ｃより後面側に、複数のＬＥＤ７０２が設けられる。ここで、コントローラ７は、他のコントローラ７と区別するためにコントローラ種別（番号）が設けられている。例えば、ＬＥＤ７０２は、コントローラ７に現在設定されている上記コントローラ種別をプレイヤに通知するために用いられる。具体的には、コントローラ７からゲーム装置本体３へ送信データを送信する際、上記コントローラ種別に応じて複数のＬＥＤ７０２のうち、種別に対応するＬＥＤが点灯する。
【００８４】
また、ハウジング７１上面には、操作ボタン７２ｂおよび操作ボタン７２ｅ〜７２ｇの間に後述するスピーカ（図５のスピーカ７０６）からの音を外部に放出するための音抜き孔が形成されている。
【００８５】
一方、ハウジング７１下面には、凹部が形成されている。後述で明らかとなるが、ハウジング７１下面の凹部は、プレイヤがコントローラ７の前面をマーカ８Ｌおよび８Ｒに向けて片手で把持したときに、当該プレイヤの人差し指や中指が位置するような位置に形成される。そして、上記凹部の傾斜面には、操作ボタン７２ｉが設けられる。操作ボタン７２ｉは、例えばＢボタンとして機能する操作部である。
【００８６】
また、ハウジング７１前面には、撮像情報演算部７４の一部を構成する撮像素子７４３が設けられる。ここで、撮像情報演算部７４は、コントローラ７が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを検出するためのシステムであり、例えば、最大２００フレーム／秒程度のサンプリング周期であるため比較的高速なコントローラ７の動きでも追跡して解析することができる。この撮像情報演算部７４の詳細な構成については、後述する。また、ハウジング７１の後面には、コネクタ７３が設けられている。コネクタ７３は、例えばエッジコネクタであり、例えば接続ケーブルと嵌合して接続するために利用される。
【００８７】
ここで、以下の説明を具体的にするために、コントローラ７に対して設定する座標系について定義する。図３および図４に示すように、互いに直交するｘｙｚ軸をコントローラ７に対して定義する。具体的には、コントローラ７の前後方向となるハウジング７１の長手方向をｚ軸とし、コントローラ７の前面（撮像情報演算部７４が設けられている面）方向をｚ軸正方向とする。また、コントローラ７の上下方向をｙ軸とし、ハウジング７１の上面（操作ボタン７２ａ等が設けられた面）方向をｙ軸正方向とする。さらに、コントローラ７の左右方向をｘ軸とし、ハウジング７１の左側面（図３では表されずに図４で表されている側面）方向をｘ軸正方向とする。
【００８８】
次に、図５および図６を参照して、コントローラ７の内部構造について説明する。なお、図５は、コントローラ７の上ハウジング（ハウジング７１の一部）を外した状態を後面側から見た斜視図である。図６は、コントローラ７の下ハウジング（ハウジング７１の一部）を外した状態を前面側から見た斜視図である。ここで、図６に示す基板７００は、図５に示す基板７００の裏面から見た斜視図となっている。
【００８９】
図５において、ハウジング７１の内部には基板７００が固設されており、当該基板７００の上主面上に操作ボタン７２ａ〜７２ｈ、加速度センサ７０１、ＬＥＤ７０２、およびアンテナ７５４等が設けられる。そして、これらは、基板７００等に形成された配線（図示せず）によってマイコン７５１等（図６、図７参照）に接続される。マイコン７５１は本願発明のボタンデータ発生手段の一例として、操作ボタン７２ａ等の種類に応じた操作ボタンデータを発生させるように機能する。この仕組みは公知技術であるが、例えばキートップ下側に配置されたタクトスイッチなどのスイッチ機構による配線の接触／切断をマイコン７５１が検出することによって実現されている。より具体的には、操作ボタンが例えば押されると配線が接触して通電するので、この通電がどの操作ボタンにつながっている配線で発生したかをマイコン７５１が検出し、操作ボタンの種類に応じた信号を発生させている。
【００９０】
また、コントローラ７は、無線モジュール７５３（図７参照）およびアンテナ７５４によって、ワイヤレスコントローラとして機能する。なお、ハウジング７１内部には図示しない水晶振動子が設けられており、後述するマイコン７５１の基本クロックを生成する。また、基板７００の上主面上に、スピーカ７０６およびアンプ７０８が設けられる。また、加速度センサ７０１は、操作ボタン７２ｄの左側の基板７００上（つまり、基板７００の中央部ではなく周辺部）に設けられる。したがって、加速度センサ７０１は、コントローラ７の長手方向を軸とした回転に応じて、重力加速度の方向変化に加え、遠心力による成分の含まれる加速度を検出することができるので、所定の演算により、検出される加速度データからコントローラ７の回転を良好な感度でゲーム装置本体３等が判定することができる。
【００９１】
一方、図６において、基板７００の下主面上の前端縁に撮像情報演算部７４が設けられる。撮像情報演算部７４は、コントローラ７の前方から順に赤外線フィルタ７４１、レンズ７４２、撮像素子７４３、および画像処理回路７４４によって構成されており、それぞれ基板７００の下主面に取り付けられる。また、基板７００の下主面上の後端縁にコネクタ７３が取り付けられる。さらに、基板７００の下主面上にサウンドＩＣ７０７およびマイコン７５１が設けられている。サウンドＩＣ７０７は、基板７００等に形成された配線によってマイコン７５１およびアンプ７０８と接続され、ゲーム装置本体３から送信されたサウンドデータに応じてアンプ７０８を介してスピーカ７０６に音声信号を出力する。
【００９２】
そして、基板７００の下主面上には、バイブレータ７０４が取り付けられる。バイブレータ７０４は、例えば振動モータやソレノイドである。バイブレータ７０４は、基板７００等に形成された配線によってマイコン７５１と接続され、ゲーム装置本体３から送信された振動データに応じてその作動をオン／オフする。バイブレータ７０４が作動することによってコントローラ７に振動が発生するので、それを把持しているプレイヤの手にその振動が伝達され、いわゆる振動対応ゲームが実現できる。ここで、バイブレータ７０４は、ハウジング７１のやや前方寄りに配置されるため、プレイヤが把持している状態において、ハウジング７１が大きく振動することになり、振動を感じやすくなる。
【００９３】
次に、図７を参照して、コントローラ７の内部構成について説明する。なお、図７は、コントローラ７の構成を示すブロック図である。
【００９４】
図７において、コントローラ７は、上述した操作部７２、撮像情報演算部７４、加速度センサ７０１、バイブレータ７０４、スピーカ７０６、サウンドＩＣ７０７、およびアンプ７０８の他に、その内部に通信部７５を備えている。
【００９５】
撮像情報演算部７４は、赤外線フィルタ７４１、レンズ７４２、撮像素子７４３、および画像処理回路７４４を含んでいる。赤外線フィルタ７４１は、コントローラ７の前方から入射する光から赤外線のみを通過させる。ここで、テレビ２の表示画面近傍に配置されるマーカ８Ｌおよび８Ｒは、テレビ２の前方に向かって赤外光を出力する赤外ＬＥＤである。したがって、赤外線フィルタ７４１を設けることによってマーカ８Ｌおよび８Ｒの画像をより正確に撮像することができる。レンズ７４２は、赤外線フィルタ７４１を透過した赤外線を集光して撮像素子７４３へ入射させる。撮像素子７４３は、例えばＣＭＯＳセンサやあるいはＣＣＤのような固体撮像素子であり、レンズ７４２が集光した赤外線を撮像する。したがって、撮像素子７４３は、赤外線フィルタ７４１を通過した赤外線だけを撮像して画像データを生成する。以下では、撮像素子７４３によって撮像された画像を撮像画像と呼ぶ。撮像素子７４３によって生成された画像データは、画像処理回路７４４で処理される。画像処理回路７４４は、撮像画像内における撮像対象（マーカ８Ｌおよび８Ｒ）の位置を算出する。以下、図８を用いて撮像対象の位置の算出方法を説明する。
【００９６】
図８は、撮像画像の一例を示す図である。図８に示す撮像画像においては、マーカ８Ｌの画像８Ｌ'およびマーカ８Ｒの画像８Ｒ'が左右に並んでいる。撮像画像が入力されると、まず、画像処理回路７４４は、撮像画像内において所定条件に合致する領域の位置を示す座標を当該領域毎に算出する。ここで、所定条件とは、撮像対象の画像（対象画像）を特定するための条件であり、所定条件の具体的な内容は、輝度が所定値以上の領域（高輝度領域）であり、かつ、領域の大きさが所定範囲内の大きさであることである。なお、所定条件は撮像対象を特定するための条件であればよく、他の実施形態においては、画像の色に関する条件を含んでいてもよい。
【００９７】
対象画像の位置を算出する際、まず、画像処理回路７４４は、撮像画像の領域から上記高輝度領域を対象画像の候補として特定する。撮像画像の画像データにおいて対象画像は高輝度領域として現れるからである。次に、画像処理回路７４４は、特定された高輝度領域の大きさに基づいて、その高輝度領域が対象画像であるか否かを判定する判定処理を行う。撮像画像には、対象画像である２つのマーカ８Ｌおよび８Ｒの画像８Ｌ'および８Ｒ'の他、窓からの太陽光や部屋の蛍光灯の光によって対象画像以外の画像が含まれている場合がある。この場合、マーカ８Ｌおよび８Ｒの画像８Ｌ'および８Ｒ'以外の画像も高輝度領域として現れてしまう。上記の判定処理は、対象画像であるマーカ８Ｌおよび８Ｒの画像８Ｌ'および８Ｒ'とそれ以外の画像とを区別し、対象画像を正確に特定するための処理である。具体的には、当該判定処理においては、特定された高輝度領域が、予め定められた所定範囲内の大きさであるか否かが判定される。そして、高輝度領域が所定範囲内の大きさである場合、当該高輝度領域は対象画像を表すと判定され、高輝度領域が所定範囲内の大きさでない場合、当該高輝度領域は対象画像以外の画像を表すと判定される。
【００９８】
さらに、上記の判定処理の結果、対象画像を表すと判定された高輝度領域について、画像処理回路７４４は当該高輝度領域の位置を算出する。具体的には、当該高輝度領域の重心位置を算出する。なお、重心位置は撮像素子７４３の解像度よりも詳細なスケールで算出することが可能である。ここでは、撮像素子７４３によって撮像された撮像画像の解像度が１２６×９６であるとし、重心位置は１０２４×７６８のスケールで算出されるものとする。つまり、重心位置の座標は、（０，０）から（１０２４，７６８）までの整数値で表現される。なお、撮像画像における位置は、図８に示すように、撮像画像の左上を原点とし、下向きをｙ軸正方向とし、右向きをｘ軸正方向とする座標系（ｘｙ座標系）で表現されるものとする。
【００９９】
以上のようにして、画像処理回路７４４は、撮像画像内において所定条件に合致する領域の位置を示す座標を当該領域毎に算出する。なお、以下では、画像処理回路７４４によって算出される座標をマーカ座標と呼ぶ。マーカ座標は、撮像画像に対応する平面上の位置を表すための座標系において撮像対象の位置を示す座標である。画像処理回路７４４は、マーカ座標を通信部７５のマイコン７５１へ出力する。マーカ座標のデータは、マイコン７５１によって操作データとしてゲーム装置本体３に送信される。マーカ座標はコントローラ７自体の向き（姿勢）や位置に対応して変化するので、ゲーム装置本体３は当該座標値を用いてコントローラ７の向きや位置を算出することができる。なお、本実施形態では、撮像画像からマーカ座標を算出する処理までをコントローラ７の画像処理回路７４４および／またはマイコン７５１で行ったが、例えば撮像画像をゲーム装置本体３に送り、以降の処理と同等の処理をゲーム装置本体３のＣＰＵ１０等で行わせることもできる。
【０１００】
また、コントローラ７は、３軸（ｘ、ｙ、ｚ軸）の加速度センサ７０１を備えていることが好ましい。この３軸の加速度センサ７０１は、３方向、すなわち、上下方向、左右方向、および前後方向で直線加速度を検知する。また、他の実施形態においては、ゲーム処理に用いる制御信号の種類によっては、上下および左右方向（または他の対になった方向）のそれぞれに沿った直線加速度のみを検知する２軸の加速度検出手段を使用してもよい。例えば、この３軸または２軸の加速度センサ７０１は、アナログ・デバイセズ株式会社（Ａｎａｌｏｇ  Ｄｅｖｉｃｅｓ，  Ｉｎｃ．）またはＳＴマイクロエレクトロニクス社（ＳＴＭｉｃｒｏｅｌｅｃｔｒｏｎｉｃｓ  Ｎ．Ｖ．）から入手可能であるタイプのものでもよい。加速度センサ７０１は、シリコン微細加工されたＭＥＭＳ（Ｍｉｃｒｏ  Ｅｌｅｃｔｒｏ  Ｍｅｃｈａｎｉｃａｌ  Ｓｙｓｔｅｍｓ：微小電子機械システム）の技術に基づいた静電容量式（静電容量結合式）であってもよい。しかしながら、既存の加速度検出手段の技術（例えば、圧電方式や圧電抵抗方式）あるいは将来開発される他の適切な技術を用いて３軸または２軸の加速度センサ７０１が提供されてもよい。
【０１０１】
当業者には公知であるように、加速度センサ７０１に用いられるような加速度検出手段は、加速度センサの持つ各軸に対応する直線に沿った加速度（直線加速度）のみを検知することができる。つまり、加速度センサ７０１からの直接の出力は、その２軸または３軸のそれぞれに沿った直線加速度（静的または動的）を示す信号である。このため、加速度センサ７０１は、非直線状（例えば、円弧状）の経路に沿った動き、回転、回転運動、角変位、傾斜、位置、または姿勢等の物理特性を直接検知することはできない。
【０１０２】
しかしながら、加速度センサ７０１から出力される加速度の信号に基づいて、ゲーム装置のプロセッサ（例えばＣＰＵ１０）またはコントローラのプロセッサ（例えばマイコン７５１）などのコンピュータが処理を行うことによって、コントローラ７に関するさらなる情報を推測または算出（判定）することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、加速度センサを搭載するコントローラが静的な状態であることを前提としてコンピュータ側で処理する場合（すなわち、加速度センサによって検出される加速度が重力加速度のみであるとして処理する場合）、コントローラが現実に静的な状態であれば、検出された加速度に基づいてコントローラの姿勢が重力方向に対して傾いているか否か又はどの程度傾いているかを知ることができる。具体的には、加速度センサの検出軸が鉛直下方向を向いている状態を基準としたとき、１Ｇ（重力加速度）がかかっているか否かだけで傾いているか否かを知ることができるし、その大きさによってどの程度傾いているかも知ることができる。また、多軸の加速度センサの場合には、さらに各軸の加速度の信号に対して処理を施すことによって、各軸が重力方向に対してどの程度傾いているかをより詳細に知ることができる。この場合において、加速度センサ７０１からの出力に基づいて、プロセッサがコントローラ７の傾き角度のデータを算出する処理をおこなってもよいが、当該傾き角度のデータを算出する処理をおこなうことなく、加速度センサ７０１からの出力に基づいて、おおよその傾き具合を推定するような処理としてもよい。このように、加速度センサ７０１をプロセッサと組み合わせて用いることによって、コントローラ７の傾き、姿勢または位置を判定することができる。一方、加速度センサが動的な状態であることを前提とする場合には、重力加速度成分に加えて加速度センサの動きに応じた加速度を検出するので、重力加速度成分を所定の処理により除去すれば、動き方向などを知ることができる。具体的には、加速度センサ７０１を備えるコントローラ７がユーザの手で動的に加速されて動かされる場合に、加速度センサ７０１によって生成される加速度信号を処理することによって、コントローラ７のさまざまな動きおよび／または位置を算出することができる。なお、加速度センサが動的な状態であることを前提とする場合であっても、加速度センサの動きに応じた加速度を所定の処理により除去すれば、重力方向対する傾きを知ることが可能である。他の実施例では、加速度センサ７０１は、信号をマイコン７５１に出力する前に内蔵の加速度検出手段から出力される加速度信号に対して所望の処理を行うための、組込み式の信号処理装置または他の種類の専用の処理装置を備えていてもよい。例えば、組込み式または専用の処理装置は、加速度センサが静的な加速度（例えば、重力加速度）を検出するためのものである場合、検知された加速度信号をそれに相当する傾斜角（あるいは、他の好ましいパラメータ）に変換するものであってもよい。
【０１０３】
他の実施形態の例では、コントローラ７の動きを検出する動きセンサとして、回転素子または振動素子などを内蔵したジャイロセンサを用いてもよい。この実施形態で使用されるＭＥＭＳジャイロセンサの一例として、アナログ・デバイセズ株式会社から入手可能なものがある。加速度センサ７０１と異なり、ジャイロセンサは、それが内蔵する少なくとも一つのジャイロ素子の軸を中心とした回転（または角速度）を直接検知することができる。このように、ジャイロセンサと加速度センサとは基本的に異なるので、個々の用途のためにいずれの装置が選択されるかによって、これらの装置からの出力信号に対して行う処理を適宜変更する必要がある。
【０１０４】
具体的には、加速度センサの代わりにジャイロセンサを用いて傾きや姿勢を算出する場合には、大幅な変更を行う。すなわち、ジャイロセンサを用いる場合、検出開始の状態において傾きの値を初期化する。そして、当該ジャイロセンサから出力される角速度データを積分する。次に、初期化された傾きの値からの傾きの変化量を算出する。この場合、算出される傾きは、角度に対応する値が算出されることになる。一方、加速度センサによって傾きを算出する場合には、重力加速度のそれぞれの軸に関する成分の値を、所定の基準と比較することによって傾きを算出するので、算出される傾きはベクトルで表すことが可能であり、初期化を行わずとも、加速度検出手段を用いて検出される絶対的な方向を検出することが可能である。また、傾きとして算出される値の性質は、ジャイロセンサが用いられる場合には角度であるのに対して、加速度センサが用いられる場合にはベクトルであるという違いがある。したがって、加速度センサに代えてジャイロセンサが用いられる場合、当該傾きのデータに対して、２つのデバイスの違いを考慮した所定の変換を行う必要がある。加速度検出手段とジャイロセンサとの基本的な差異と同様にジャイロセンサの特性は当業者に公知であるので、本明細書ではさらなる詳細を省略する。ジャイロセンサは、回転を直接検知できることによる利点を有する一方、一般的には、加速度センサは、本実施形態で用いるようなコントローラに適用される場合、ジャイロセンサに比べて費用効率が良いという利点を有する。
【０１０５】
通信部７５は、マイクロコンピュータ（Ｍｉｃｒｏ  Ｃｏｍｐｕｔｅｒ：マイコン）７５１、メモリ７５２、無線モジュール７５３、およびアンテナ７５４を含んでいる。マイコン７５１は、処理の際にメモリ７５２を記憶領域として用いながら、送信データを無線送信する無線モジュール７５３を制御する。また、マイコン７５１は、アンテナ７５４を介して無線モジュール７５３が受信したゲーム装置本体３からのデータに応じて、サウンドＩＣ７０７およびバイブレータ７０４の動作を制御する。サウンドＩＣ７０７は、通信部７５を介してゲーム装置本体３から送信されたサウンドデータ等を処理する。また、マイコン７５１は、通信部７５を介してゲーム装置本体３から送信された振動データ（例えば、バイブレータ７０４をＯＮまたはＯＦＦする信号）等に応じて、バイブレータ７０４を作動させる。
【０１０６】
コントローラ７に設けられた操作部７２からの操作信号（キーデータ）、加速度センサ７０１からの加速度信号（ｘ、ｙ、およびｚ軸方向加速度データ；以下、単に加速度データと記載する）、および撮像情報演算部７４からの処理結果データは、マイコン７５１に出力される。マイコン７５１は、入力した各データ（キーデータ、加速度データ、処理結果データ）を無線コントローラモジュール１９へ送信する送信データとして一時的にメモリ７５２に格納する。ここで、通信部７５から無線コントローラモジュール１９への無線送信は、所定の周期毎に行われるが、ゲームの処理は１／６０秒を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。具体的には、ゲームの処理単位は１６．７ｍｓ（１／６０秒）であり、ブルートゥース（Ｂｌｕｅｔｏｏｔｈ；登録商標）で構成される通信部７５の送信間隔は例えば５ｍｓである。マイコン７５１は、無線コントローラモジュール１９への送信タイミングが到来すると、メモリ７５２に格納されている送信データを一連の操作情報として出力し、無線モジュール７５３へ出力する。そして、無線モジュール７５３は、例えばブルートゥース（登録商標）の技術に基づいて、所定周波数の搬送波を用いて操作情報で変調し、その電波信号をアンテナ７５４から放射する。つまり、コントローラ７に設けられた操作部７２からのキーデータ、加速度センサ７０１からの加速度データ、および撮像情報演算部７４からの処理結果データが無線モジュール７５３で電波信号に変調されてコントローラ７から送信される。そして、ゲーム装置本体３の無線コントローラモジュール１９でその電波信号を受信し、ゲーム装置本体３で当該電波信号を復調や復号することによって、一連の操作情報（キーデータ、加速度データ、および処理結果データ）を取得する。そして、ゲーム装置本体３のＣＰＵ１０は、取得した操作情報とゲームプログラムとに基づいて、ゲーム処理を行う。なお、ブルートゥース（登録商標）の技術を用いて通信部７５を構成する場合、通信部７５は、他のデバイスから無線送信された送信データを受信する機能も備えることができる。
【０１０７】
ここで、コントローラ７を用いたゲーム操作について説明する。ゲームシステム１でコントローラ７を用いてゲームをプレイする際、プレイヤは、一方の手でコントローラ７を把持する。このとき、図９に示すように、プレイヤは、コントローラ７の前面（撮像情報演算部７４が撮像する光の入射口側）がマーカ８Ｌおよび８Ｒの方向を向く状態でコントローラ７を把持する。この状態で、プレイヤは、コントローラ７の傾きを変化させたり、コントローラ７が指し示す画面上の位置（指示位置）を変更したり、コントローラ７と各マーカ８Ｌおよび８Ｒとの距離を変更したりすることによってゲーム操作を行う。
【０１０８】
次に、上記のように構成された本ゲームシステム１で実行される処理の概要について説明する。本発明は、画面に表示されているオブジェクト等を「選択」する処理について全般に適用可能であるが、本実施形態ではその一例として、複数のミニゲームが楽しめるゲームを想定し、当該ゲームにかかる処理の中でも、プレイヤが所望するミニゲームを選択するためのメニュー画面での処理および操作を一例として説明を行う。
【０１０９】
図１０は、上記メニュー画面の例を示す図である。図１０では、選択対象となるオブジェクト１０１〜１０３と、ポインタ１０４が表示されている。各オブジェクトはそれぞれ上記複数のミニゲームのいずれか一つを示しており、プレイヤは、これらオブジェクト１０１〜１０３のうちいずれかを選択し、所定の決定ボタン（例えば、操作ボタン７２ｂ）を押下することで、所望のミニゲームのプレイを開始することができる。ポインタ１０４は、原則として、コントローラ７が指し示す画面上の位置（指示位置）に表示される。
【０１１０】
次に、本実施形態における選択操作モード（以下、単に操作モードと呼ぶ）について説明する。本実施形態では、”ポインティングモード”と”十字キーモード”という２種類の操作モードを用いる。ポインティングモードは、上記ポインタ１０４を画面上で動かして上記オブジェクトを選択可能な操作モードである。十字キーモードは、十字キー７２ａを押下することで上記オブジェクトを選択することが可能な操作モードである。
【０１１１】
ポインティングモードにおける選択操作について、図１０〜図１５を参照して説明すると、まず、図１０に示すように、ポインタ１０４が画面左上部に表示されている（コントローラ７で指示している）状態であるとする。この状態から、ポインタ１０４（指示位置）をオブジェクト１０１の表示位置に移動させると、図１１に示すように、選択枠１０５がオブジェクト１０１を囲うように表示され、オブジェクト１０１が選択されている状態となる。この状態から、オブジェクトが表示されていない位置を指示すれば、選択状態は解除される（選択枠１０５も表示されなくなる）。また、図１１の状態からポインタ１０４をオブジェクト１０２の表示位置に移動させると、図１２に示すように、選択枠１０５がオブジェクト１０２を囲うように表示され、オブジェクト１０２が選択されている状態となる。
【０１１２】
次に、十字キーモードにおける選択操作について説明する。例えば、上記図１１で示したようなオブジェクト１０１が選択されている状態で、十字キー７２ａの「右」をプレイヤが押下すると、図１２に示すように、オブジェクト１０１の右隣に表示されているオブジェクト１０２が選択された状態となる。つまり、現在選択されているオブジェクトを基準にして、十字キー７２ａの押された方向にあるオブジェクトが選択される処理が実行されることになる。更に、このとき、ポインタ１０４の表示位置が、選択されているオブジェクト１０２の中央やや左下の位置に変更される。
【０１１３】
また、図１１の状態で十字キー７２ａの「左」を押した場合は、図１４のように、一番右端のオブジェクト１０３が選択された状態となり、ポインタ１０４もオブジェクト１０３の中央やや左下の位置に表示される。つまり、本実施形態では、一番右端のオブジェクト１０３が選択されている状態で「右」が押されたときは、左端のオブジェクト１０１が選択された状態となり、一番左端のオブジェクト１０１が選択されている状態のときに「左」が押されたときは右端のオブジェクト１０３が選択された状態となる。
【０１１４】
また、図示は省略するが、オブジェクトが縦方向に並べられて表示されているような場合は、十字キー７２ａの「上」や「下」が押されることで、同様に上下方向に沿ったオブジェクトの選択が可能である。
【０１１５】
なお、上記十字キーモードでの選択の順番制御は一例であって、例えば、右端のオブジェクト１０３が選択されているときに「右」が押されたときは、選択状態を変化させないよう（つまり、オブジェクト１０３が選択されているままの状態）にしてもよい。
【０１１６】
次に、上記２種類の操作モードの切り替え方法について説明する。本実施形態では、ポインティングモードのときに十字キー７２ａを押すことで、十字キーモードに移行する。すなわち、図１０の状態において、プレイヤが十字キー７２ａを押すと、いずれかのオブジェクトが選択された状態（本実施形態では、直前に選択されていたオブジェクトが選択されるものとする）になる。ここで、十字キーモードにある間は、画面の指示位置を変更してもポインタ１０４は移動しない。例えば、図１３のようにオブジェクト１０２が選択されている状態でコントローラ７の指示位置を例えば画面上方に移動したとしても、ポインタ１０４の表示位置は移動せず、オブジェクト１０２の選択状態が維持されたままとなる。
【０１１７】
一方、十字ボタンモードのときにポインティングモードに切り替えるには、コントローラ７を「振る」操作を行う。本実施形態では、この「振る」動作が行われた否かを、加速度センサ７０１から出力される加速度データに基づいて検出する。つまり、十字キーモード中に、所定時間内で所定の大きさ以上の加速度（「振る」ことによって発生する）が検出されれば、操作モードをポインティングモードに切り替える。例えば、図１４のようにオブジェクト１０３が選択されている状態の時にコントローラ７を振ると、ポインティングモードに切り替わると同時に、図１５に示すように、そのときに検出された指示位置にポインタ１０４が表示される。
【０１１８】
なお、十字ボタンモードからポインティングモードへの切替は、加速度データに基づいて算出されるコントローラ７の移動量を累積しておき、当該累積した値が所定の閾値を越えたときにポインティングモードに切り替えるようにしてもよい。また、単位時間（例えば１フレーム）あたりの加速度の変化量が所定の閾値を越えたときにポインティングモードに切り替えるようにしてもよいし、当該変化量を累積しておき、当該変化量の累積値が所定の閾値を越えたときにポインティングモードに切り替えるようにしてもよい。
【０１１９】
このように、コントローラ７を「振る」動作を行うことで２種類の操作モードを切り替えるようにすることで、違和感のない操作で、かつ、レスポンスの高い切り替えを実現することができる。すなわち、本実施形態では、上述の図９のようにコントローラ７を持って操作することから、振る操作（例えば手首を捻るようなスナップ動作）と、ポインティング操作によるコントローラの動かし方とは、コントローラ７の先を画面に向けたまま主に肘・手首を使って動かすという点で共通しており、「振る」操作と「ポインティング操作」との親和性は高い。そのため、十字キーモードからポインティングモードへの切り替えを、違和感のない自然な操作の流れの中で、かつ、瞬時に行うことが可能となる（振る操作を行った後、コントローラ７を持ち直す等することなく、そのままポインティング操作を行うことができる）。また、ポインティングモードから十字ボタンモードへの切り替えも、十字キー７２ａを押下するだけである。そのため、結果的に、ポインティングモードと十字ボタンモードとの切替について、レスポンスの高い切り替え操作が可能となる。
【０１２０】
なお、本実施形態では更に、十字キーモード中に、一定時間以上十字キー７２ａの操作がなく、かつ、コントローラ７で画面内を指し示している状態のときは、自動的にポインティングモードに切り替える処理も行い、プレイヤの利便性をより高めている。
【０１２１】
次に、ゲーム装置本体３によって実行されるゲーム処理の詳細を説明する。まず、ゲーム処理の際に外部メインメモリ１２に記憶されるデータについて説明する。図１６は、ゲーム装置本体３の外部メインメモリ１２のメモリマップを示す図である。図１６において、外部メインメモリ１２は、プログラム記憶領域１２０およびデータ記憶領域１２４を含む。プログラム記憶領域１２０およびデータ記憶領域１２４のデータは、光ディスク４に記憶され、ゲームプログラム実行時には外部メインメモリ１２に転送されて記憶される。
【０１２２】
プログラム記憶領域１２０には、ＣＰＵ１０によって実行されるゲームプログラムが記憶される。このゲームプログラムは、ポインタ制御プログラム１２１と、１フレーム処理プログラム１２２と、十字キーモードプログラム１２３などによって構成される。
【０１２３】
データ記憶領域１２４には、操作データ１２５、前回加速度ベクトル１２６、加速度配列１２７、操作モード１２８、無入力時間１２９などのデータが記憶されるとともに、プログラム実行中に用いられる各種変数やフラグも記憶される。
【０１２４】
操作データ６２は、コントローラ７からゲーム装置本体３へ送信されてくる操作データである。上述したように、コントローラ７からゲーム装置本体３へ１／２００秒に１回の割合で操作データが送信されるので、メインメモリに記憶される操作データ６２はこの割合で更新される。本実施形態においては、メインメモリには、最新の（最後に取得された）操作データのみが記憶されればよい。
【０１２５】
操作データ１２５には、加速度データ１２５１、マーカ座標データ１２５２、および操作ボタンデータ１２５３が含まれる。加速度データ１２５１は、加速度センサ７０１によって検出された加速度（加速度ベクトル）を示すデータである。ここでは、加速度データ１２５１は、図３に示すｘｙｚの３軸の方向に関する加速度を各成分とする３次元の加速度ベクトルＶ１を示す。また、本実施形態においては、コントローラ７が静止している状態で加速度センサ７０１が検出する加速度ベクトルＶ１の大きさを”１”とする。つまり、加速度センサ７０１によって検出される重力加速度の大きさは”１”である。
【０１２６】
マーカ座標データ１２５２は、撮像情報演算部７４の画像処理回路７４４によって算出される座標、すなわち上記マーカ座標を示すデータである。マーカ座標は、撮像画像に対応する平面上の位置を表すための２次元座標系（図８に示すｘｙ座標系）で表現される。なお、撮像素子７４３によって２つのマーカ８Ｒおよび８Ｌが撮像される場合には、２つのマーカ座標が算出される。一方、撮像素子７４３の撮像可能な範囲内にマーカ８Ｒおよび８Ｌのいずれか一方が位置しない場合には、撮像素子７４３によって１つのマーカのみが撮像され、１つのマーカ座標のみが算出される。また、撮像素子７４３の撮像可能な範囲内にマーカ８Ｒおよび８Ｌの両方が位置しない場合には、撮像素子７４３によってマーカが撮像されず、マーカ座標は算出されない。したがって、マーカ座標データ１２５２は、２つのマーカ座標を示す場合もあるし、１つのマーカ座標を示す場合もあるし、マーカ座標がないことを示す場合もある。
【０１２７】
操作ボタンデータ１２５３は、各操作ボタン７２ａ〜７２ｉに対する入力状態を示すデータである。そのため、十字キー７２ａの押下状態（上下左右のいずれの方向を押下したか）を示すデータも当該データに含まれる。
【０１２８】
前回加速度ベクトル１２６は、上記加速度データ１２５１の直前に算出された加速度ベクトルを示すデータである。より具体的には、本実施形態のゲームの処理単位は１／６０秒であり、後述の処理も１／６０秒単位で繰り返される。そして、上記加速度データが現在の処理ループにおいて算出された加速度データであり、前回加速度ベクトル１２６は、直前の処理ループにおいて算出された加速度を示すベクトルデータである。
【０１２９】
加速度配列１２７は、後述する処理において、上記操作モードの切り替え判定に用いられるデータの集合（一次元配列）であり、加速度の変化量の履歴を表すデータである。以下の説明では、配列の要素数をＮとし、”０”からカウントするとして、当該配列を、加速度配列Ｑ［０］〜Ｑ［Ｎ−１］として表すこともある。また、格納方式は、いわゆるＦＩＦＯ（First In First Out）であり、Ｑ［０］に最新のデータが格納され、Ｑ［Ｎ−１］に最も古いデータが格納されるものとする。
【０１３０】
操作モード１２８は、現在の操作モードが”ポインティングモード”か”十字キーモード”かを示すためのフラグである。本実施形態では、“ポインティングモード”のときは”０”が設定され、”十字キーモード”のときは”１”が設定される。
【０１３１】
無入力時間１２９は、上記十字キーモードのときに十字キー７２ａへの入力が行われていない時間（十字キー７２ａが押下されていない時間）をカウントするための変数である。
【０１３２】
次に、図１７〜図２０を参照して、ゲーム装置本体３によって実行されるゲーム処理について説明する。ゲーム装置本体３の電源が投入されると、ゲーム装置本体３のＣＰＵ１０は、ＲＯＭ／ＲＴＣ１３に記憶されている起動プログラムを実行し、これによってメインメモリ３３等の各ユニットが初期化される。そして、光ディスク４に記憶されたゲームプログラムが外部メインメモリ１２に読み込まれ、ＣＰＵ１０によって当該ゲームプログラムの実行が開始される。図１７に示すフローチャートは、以上の処理が完了した後に行われるゲーム処理を示すフローチャートである。また、図１７に示すステップＳ２〜ステップＳ３の処理ループは、１フレーム毎に繰り返し実行される。なお、図１７に示すフローチャートにおいては、処理のうち、ゲームプログラムに含まれるポインタ制御プログラムを実行してコントローラ７に関する操作に基づいて行われるポインタ１０４の制御およびオブジェクトの選択について説明し、本願発明とは直接関連しない他の処理については詳細な説明を省略する。
【０１３３】
図１７において、まず、ＣＰＵ１０は、初期化処理を実行する（ステップＳ１）。図１８は、上記ステップＳ１で示した初期化処理の詳細を示すフローチャートである。図１８において、まず、ＣＰＵ１０は、加速度配列１２７を初期化する（ステップＳ１１）。より具体的には、ＣＰＵ１０は、加速度配列１２７を構成する各変数に”０”を設定する。
【０１３４】
次に、ＣＰＵ１０は、無入力時間１２９を初期化する（ステップＳ１２）。具体的には、ＣＰＵ１０は、無入力時間１２９に”０”を設定する。
【０１３５】
次に、ＣＰＵ１０は、指示座標Ｐｏｓを算出する処理を実行する（ステップＳ１３）。指示座標Ｐｏｓは、コントローラ７が指し示す位置を表すための変数である。このステップＳ１３の処理をより具体的に説明すると、まず、ＣＰＵ１０は、上記操作データ１２５からマーカ座標データ１２５２に基づいて、当該コントローラ７の指示座標Ｐｏｓを算出する。ここで、当該指示座標Ｐｏｓの算出方法はどのようなものであってもよいが、例えば次に示す方法が考えられる。
【０１３６】
以下、指示座標Ｐｏｓの算出方法の一例を説明する。コントローラ７から取得される操作データ１２５には、上記マーカ座標を示すデータであるマーカ座標データ１２５２が含まれる。当該データは、マーカ８ａおよび８ｂに対応する２つのマーカ座標（図８参照）を示すので、まずＣＰＵ１０は、２つのマーカ座標の中点を算出する。この中点の位置は、撮像画像に対応する平面上の位置を表すための上記ｘｙ座標系によって表現される。次に、ＣＰＵ１０は、当該中点の位置を示す座標を、テレビ２の画面上の位置を表すための座標系（ｘ'ｙ'座標系とする）の座標に変換する。この変換は、ある撮像画像から算出される中点の座標を、当該撮像画像が撮像される時のコントローラ７の実際の指示位置に対応する画面上の座標に変換する関数を用いて行うことができる。その際、コントローラ７の指示位置と、撮像画像内でのマーカ座標の位置とは逆方向に移動することになるので、上下左右が反転するような変換を行う。以上のようにして算出されたｘ'ｙ'座標値により示される値がコントローラ７の指示座標Ｐｏｓとなる。但し、上記のように、マーカ座標データ１２５２は、マーカ座標がないことを示す場合もある。このような場合は、指示座標Ｐｏｓにも、マーカ座標が無いことを示すためのデータ、例えばＮＵＬＬ値が設定される。
【０１３７】
次に、ＣＰＵ１０は、上記指示座標Ｐｏｓで示される指示位置が、画面内に含まれているか否かを判定する（ステップＳ１４）。すなわち、コントローラ７の前面（撮像情報演算部７４が撮像する光の入射口側）が画面に向けられているか否かを判定する。より具体的には、上記指示座標Ｐｏｓの内容がマーカ座標がないことを示しているような場合は、指示座標Ｐｏｓで示される指示位置は画面内に含まれていないと判定され、それ以外の場合は、指示座標Ｐｏｓで示される指示位置は画面内に含まれていると判定される。
【０１３８】
次に、ＣＰＵ１０は、操作モードの設定を行う。具体的には、上記ステップＳ１４の判定の結果、指示座標Ｐｏｓで示される指示位置が画面内に含まれていると判定されたときは（ステップＳ１４でＹＥＳ）、ＣＰＵ１０は、操作モード１２８に“ポインティングモード”を示す値である”０”を設定する。（ステップＳ１５）。一方、指示座標Ｐｏｓで示される指示位置が画面内に含まれていないと判定されたときは（ステップＳ１４でＮＯ）、ＣＰＵ１０は、操作モード１２８に“十字キーモード”を示す値である”１”を設定する（ステップＳ１６）。以上で、初期化処理は終了する。
【０１３９】
図１７に戻り、初期化処理が終われば、次に、ＣＰＵ１０は、１フレーム処理を実行する（ステップＳ２）。図１９は、上記ステップＳ２で示した１フレーム処理の詳細を示すフローチャートである。図１９において、まず、ＣＰＵ１０は、上記指示座標Ｐｏｓを算出する処理を実行する（ステップＳ２１）。当該処理の内容は、上記ステップＳ１３と同様の処理であるため、その内容についての説明は省略する。
【０１４０】
次に、ＣＰＵ１０は、上記操作モード１２８を参照し、現在の操作モードが”ポインティングモード”か否かを判定する（ステップＳ２２）。すなわち、ＣＰＵ１０は、操作モード１２８の値が”０”か否かを判定する。当該判定の結果、操作モードが”ポインティングモード”ではないときは（ステップＳ２２でＮＯ）、ＣＰＵ１０は、十字キーモード処理を実行する（ステップＳ３１）。当該処理の詳細は後述する。
【０１４１】
一方、操作モードが”ポインティングモード”のときは（ステップＳ２２でＹＥＳ）、次に、ＣＰＵ１０は、上記操作ボタンデータ１２５３を参照し、十字キー７２ａが押下されたか否かを判定する（ステップＳ２３）。当該判定の結果、十字キー７２ａが押下されていないときは（ステップＳ２３でＮＯ）、ＣＰＵ１０は、指示座標Ｐｏｓで示される画面上の位置にポインタ１０４を移動させる処理を実行する（ステップＳ２４）。つまり、”ポインティングモード”としての処理を継続することになる。このとき、ポインタ１０４の移動先にいずれかのオブジェクトがあるとき（つまり、ポインタ１０４がいずれかのオブジェクトを指示したとき）は、当該オブジェクトを選択状態とする（より具体的には、フォーカスを設定することで、選択状態とする）。更に、ＣＰＵ１０は、当該選択状態にあるオブジェクトに上記選択枠１０５を配置する。その後、後述のステップＳ３０の処理に進むことで当該ポインタ１０４が移動後の位置に描画されることになる（いずれかのオブジェクトが選択されているときは、更に選択枠１０５も描画される）。
【０１４２】
一方、ステップＳ２３の判定の結果、十字キー７２ａが押下されていたときは（ステップＳ２３でＹＥＳ）、ＣＰＵ１０は、画面内のいずれかのオブジェクトを選択状態にする処理を実行する（ステップＳ２５）。具体的には、ＣＰＵ１０は、当該判定が実行されたとき、既にいずれかのオブジェクトが選択されている状態のときは（例えば図１１参照）、当該選択されているオブジェクトの位置を基準として、押された十字キー７２ａの方向に存在するオブジェクトのうち最も指示位置に近いオブジェクトを選択状態とする。また、当該判定が実行されたとき、いずれのオブジェクトも選択されていない状態のときは（例えば図１０参照）、このときの指示位置（上記指示座標Ｐｏｓで示される位置）に最も近い位置にあるオブジェクトを選択状態とする（最も近い位置にあるオブジェクトが複数存在するときは、押された十字キー７２ａの方向に存在するオブジェクトを選択状態とする）。つまり、本処理によって、ポインティングモードのときに十字キーが押下されることで、即時にいずれかのオブジェクトが選択されている状態とすることになる。
【０１４３】
次に、ＣＰＵ１０は、選択状態にあるオブジェクト（フォーカスが設定されているオブジェクト）の中心近傍の位置（図１３および図１４参照）にポインタ１０４を移動させる（ステップＳ２６）。またこのとき、ＣＰＵ１０は、当該選択状態にあるオブジェクトに上記選択枠１０５を配置する。
【０１４４】
次に、ＣＰＵ１０は、操作モード１２８に、十字キーモードであることを示す値である”１”を設定する（ステップＳ２７）。
【０１４５】
次に、ＣＰＵ１０は、加速度配列１２７の初期化（ステップＳ２８）および、無入力時間１２９の初期化（ステップＳ２９）を実行する。
【０１４６】
次に、ＣＰＵ１０は、描画処理を実行する（ステップＳ３０）。すなわち、図１０等に示したような画像を生成し、ゲーム画像としてテレビ２に表示する処理が実行される。そして、ＣＰＵ１０は、１フレーム処理を終了する。
【０１４７】
次に、上記ステップＳ２２の判定の結果、操作モードが”十字キーモード”（操作モード１２８の値が”１”）のときの処理について説明する。この場合は、ＣＰＵ１０は、十字キーモード処理を実行する（ステップＳ３１）。図２０は、上記ステップＳ３１で示した十字キーモード処理の詳細を示すフローチャートである。図２０において、まず、ＣＰＵ１０は、上記操作ボタンデータ１２５３を参照して、十字キー７２ａが押下されたか否かを判定する（ステップＳ４１）。当該判定の結果、十字キー７２ａが押下されていたときは（ステップＳ４１でＹＥＳ）、”十字キーモード”としての処理を継続するための処理を実行する。まず、ＣＰＵ１０は、加速度配列１２７の初期化（ステップＳ４２）および無入力時間１２９の初期化（ステップＳ４３）を実行する。
【０１４８】
次に、ＣＰＵ１０は、押下された十字キー７２ａの方向に応じてオブジェクトを選択する処理を実行する（ステップＳ４４）。すなわち、この時点で選択されているオブジェクトの位置を基準として、押された十字キー７２ａの方向に存在するオブジェクトのうち最も近くにあるオブジェクトを選択状態とする。また、図１１および図１３を用いて上述したように、画面内において一番左端に表示されているオブジェクト１０１が選択されているときに「左」方向が押されたときは、右端に表示されているオブジェクト１０３を選択状態とする。同様に、右端のオブジェクト１０３が選択されているときに「右」方向が押されたときは、左端のオブジェクト１０１を選択状態とする。
【０１４９】
次に、ＣＰＵ１０は、選択状態にあるオブジェクトの中心近傍の位置（図１３等参照）にポインタ１０４を移動させる（ステップＳ４５）。またこのとき、ＣＰＵ１０は、当該選択状態にあるオブジェクトに上記選択枠１０５を配置する。その後、ＣＰＵ１０は、十字キーモード処理を終了する。
【０１５０】
次に、上記ステップＳ４１の判定の結果、十字キー７２ａが、押されていないと判定されたときの処理（ステップＳ４１でＮＯ）について説明する。この場合、コントローラ７が振られたか否か等が判定され、その結果に応じてポインディングモードに切り替える処理が実行される。具体的には、まず、ＣＰＵ１０は、無入力時間１２９に”１”を加算する（ステップＳ４６）。次に、ＣＰＵ１０は、上記加速度データ１２５１を参照して、加速度ベクトルＶ１を取得する（ステップＳ４７）。
【０１５１】
次に、ＣＰＵ１０は、前回加速度ベクトル１２６を取得し、加速度の変化量ｑを算出する（ステップＳ４８）。当該加速度の変化量ｑとは、直前のフレームにかかる処理において算出された加速度ベクトルから現在のフレームにかかる処理で算出された加速度ベクトルまでの変化量である。変化量ｑは、例えば以下のようにして求められる。まず、次の式で変化ベクトルＶｓが算出される。
変化ベクトルＶｓ＝加速度ベクトルＶ１−前回加速度ベクトルＶ２
そして、当該算出された変化ベクトルＶｓの大きさ（スカラー値）を変化量ｑとする。
【０１５２】
次に、ＣＰＵ１０は、加速度配列の更新を行う（ステップＳ４９）。具体的には、ＣＰＵ１０は、加速度配列Ｑ［Ｎ−１］のデータをＱ［Ｎ−２］のデータで更新し、Ｑ［Ｎ−２］のデータをＱ［Ｎ−３］のデータで更新していく。以下、同様に更新を行っていき、最終的に、上記算出した変化量ｑを加速度配列Ｑ［０］に格納する。
【０１５３】
次に、ＣＰＵ１０は、以下の式を用いて、加速度配列１２７の各値の積算値Ｑｔを算出する（ステップＳ５０）。
積算値Ｑｔ＝Ｑ［０］＋Ｑ［１］＋Ｑ［２］＋・・・＋Ｑ［Ｎ−１］
【０１５４】
次に、上記加速度ベクトルＶ１の値で前回加速度ベクトル１２６を更新する（ステップＳ５１）。
【０１５５】
次に、ＣＰＵ１０は、上記ステップＳ５０で算出した積算値Ｑｔが、予め定められている所定の閾値以上か否かを判定する（ステップＳ５２）。つまり、加速度配列１２７の要素数で示される所定の時間内における加速度の変化量が「振り」の操作と言えるほどの大きな変化量か否かを判定する。当該判定の結果、積算値Ｑｔが第１の閾値以上のときは（ステップＳ５２でＹＥＳ）、「振り」操作が行われたと考えられるため、ＣＰＵ１０は、操作モード１２８に”０”（ポインティングモードを示す値）を設定する（ステップＳ５４）。
【０１５６】
一方、積算値Ｑｔが閾値以上ではないときは（ステップＳ５２でＮＯ）、次に、ＣＰＵ１０は、無入力時間１２９が予め定められた第２の閾値以上であり、かつ、指示座標Ｐｏｓで示される位置が画面内に含まれているか否かを判定する（ステップＳ５３）。つまり、一定時間以上十字キー７２ａが押下されておらず、プレイヤがコントローラ７で画面を指し示しているか否かを判定する。当該判定の結果、上記の条件を満たしていたときは（ステップＳ５３でＹＥＳ）、ＣＰＵ１０は、ステップＳ５４に進み、操作モードに”ポインティングモード”を設定する処理を実行する。すなわち、”十字キーモード”のときに、プレイヤがコントローラ７の前面を画面に向けたまま、一定時間十字キー７２ａを押していないときは、操作モードをポインティングモードに切り替えている。
【０１５７】
一方、上記ステップＳ５３の判定の結果、上記の条件が満たされていないときは（ステップＳ５３でＮＯ）、ＣＰＵ１０は、十字キーモード処理を終了する。十字キーモード処理が終了すれば、図１９のステップＳ３０の処理に進み、ポインタ１０４等の描画処理が実行され、１フレーム処理が終了する。
【０１５８】
図１７に戻り、ステップＳ２の１フレーム処理の後、ステップＳ３において、ゲーム終了か否かが判断され、ＹＥＳの場合、ＣＰＵ１０は、ゲーム処理を終了し、ＮＯの場合、ステップＳ２に戻って、ゲーム処理を繰り返す。以上で、本実施形態にかかるゲーム処理は終了する。
【０１５９】
このように、本実施形態では、十字キー７２ａを用いた操作中に「振り」操作を検出されたときに、操作モードをポインティング操作方式に切り替えている。また、ポインティング操作中に十字キーが押されることで、十字キーにより操作方式に切り替えている。換言すれば、これから行おうとする操作に直結するような動き、具体的には、十字キー７２ａを用いて選択操作を行うことを所望した場合は十字キー７２ａを押下し、ポインタ１０４を動かしてポインティング操作を行うことを所望したときは、コントローラ７そのものを振る、という操作を行うことで操作方式を切り替えることができる。これにより、複数の選択操作方式を高レスポンスで、かつ、違和感の無い操作で切り替えることができる。
【０１６０】
また、上記のように、本実施形態では、有限の配列である加速度配列１２７に加速度データの変化量を累積し、積算した値が所定の閾値を越えたか否かで十字キーモードからポインティングモードへの切替判定を行っている。このように、有限の配列に加速度データをバッファすることで、例えば、コントローラ７に加えられた動きが微小ではあるが長時間継続するような場合に、加速度データが長時間かけて累積されていった結果、上記のような操作モードの切替が誤って実行されることを防ぐ事ができる。換言すれば、所定期間内（配列の要素数に対応）に「振り」操作といえるようなある程度の動きが発生しなければ、操作モードの切替は実行されないため、ユーザの意図しない操作モード切替が発生することを防ぐことができる。当該所定期間の長さ（配列の要素数）については、本処理が実行されるゲーム等の処理内容に応じて適宜設定すればよい。
【０１６１】
なお、上述した実施形態では、「振り」操作の検出に加速度センサから出力される加速度データを用いていたが、ジャイロセンサから出力される角速度データに基づいて「振り」操作を検出するようにしてもよい。この場合は、例えば、コントローラ７に３軸のジャイロセンサを内蔵する。あるいは、３軸ジャイロセンサを備えた拡張ユニットをコントローラ７に接続する。そして、角速度を検出し、角速度データとして出力し、上記加速度データの代わり、あるいは加速度データと併用して、「振り」操作の検出を実行するようにしても良い。
【０１６２】
更に、「振り」操作の検出の代わりに、指示位置の変化量を用いるようにしても良い。つまり、所定時間内に指示位置に大きな変化が発生した場合は、コントローラ７に大きな「動き」が加えられたとして、ポインティング操作方式への切替を行うようにしても良い。例えば、上記十字キーモード処理において、上記指示座標Ｐｏｓを１フレーム前の指示位置を示すデータとして外部メインメモリ１２に記憶しておき、次の処理ループにおいて、１フレーム前の指示座標と現在の指示座標との変化量を算出する。そして、当該変化量は所定の閾値を越えていれば、ポインティング操作方式への切替を実行するようにすればよい。もちろん、１フレーム前との指示座標の比較に限らず、数フレーム〜数十フレーム分の期間における指示座標の変化量を算出して、操作方式の切替判定に用いるようにしても良い。
【０１６３】
また、上記のような加速度や角速度、指示位置の変化量に限らず、十字キーモード中にコントローラ７に加えられた「動き」が検出できれば、どのような検出方法を用いても良い。そして、その動きの大きさに基づいてポインティングモードへの切替を実行してもよい。
【０１６４】
また、上記実施形態では、コントローラ７という１つの筐体で十字キーモードとポインティングモードの２種類の操作が可能であったが、これに限らず、複数の筐体を利用した構成であっても良い。例えば、図２１に示すように、コントローラ７のコネクタ７３に拡張コントローラ９を接続する。そして、ゲームをプレイする際には、例えば、図２２に示すように、プレイヤは、その右手でコントローラ７を持ち、その左手で拡張コントローラ９を持つ。このとき、プレイヤは、右手に持ったコントローラ７の前面（撮像情報演算部７４が撮像する光の入射口側）がマーカ８Ｌおよび８Ｒの方向を向く状態でコントローラ７を把持する。拡張コントローラ９には、スティック９１が備えられており、当該スティック９１を操作することで上記十字キーモードと同様の操作が可能とする。そして、プレイヤがスティック９１を用いて操作しているとき（十字キーモードのとき）に、右手に把持しているコントローラ７を振ることで、上記ポインティングモードに切り替わるようにする。また、ポインティングモード中に、左手に把持している拡張コントローラ９のスティック９１を操作することで、十字キーモードに切り替わるように処理する。更に、このとき、コントローラ７の十字キー７２ａを有効にしておいてもよい。つまり、拡張コントローラ９のスティック９１またはコントローラ７の十字キー７２ａで十字キーモードでの操作を可能にしておく。そして、ポインティングモード中に、スティック９１または十字キー７２ａを押下すれば、十字キーモードに切り替えるようにしても良い。
【０１６５】
また、上記のような複数の筐体を利用する場合、双方の筐体にそれぞれ加速度センサを内蔵し、振った側の筐体での操作方式に切り替えるようにしても良い。上記の例であれば、例えば右手に把持しているコントローラ７を振った場合はポインティングモード、左手に把持している拡張コントローラ９を振ったときは、十字キーモードに切り替えるようにしてもよい。この場合は、各コントローラから出力される加速度データと関連づけて出力元を示す識別情報を付すようにすればよい。
【０１６６】
また、複数の筐体を利用するとき、例えば２つの筐体を用いる場合に、それぞれにポインティングデバイスおよび加速度センサを内蔵し、「振り」が検出された側のポインティングデバイスによる操作に切り替えるようにしてもよい。
【０１６７】
また、上述の実施形態では、十字キーモードのときは、画面に表示されているオブジェクトのいずれかが常に選択されている状態となるような制御が行われていたが、これに限らず、十字キー７２ａの押下方向に応じてポインタ１０４を所定の距離だけ移動させるような制御を行っても良い。つまり、十字キーモードのときは、十字キー７２ａでポインタ１０４を動かすような制御を行うようにしても良い。
【０１６８】
また、上記十字キーモードにおける選択操作に関して、十字キー７２ａの代わりに、所定のボタン一つで選択操作を可能にしてもよい。例えば、上記十字キーモードにおいて、操作ボタン７２ｂが押される度に、所定の順番で選択されるオブジェクトが切り替わる（所定の順序でフォーカスを移動させていく）ような処理を実行してもよい。
【０１６９】
また、本発明は、上述したようなゲーム処理のみならず、ゲーム処理以外の情報処理であっても、その情報処理で用いられる選択操作全般について適用可能である。
【産業上の利用可能性】
【０１７０】
本発明にかかる情報処理装置および情報処理プログラムは、複数の操作方式を高レスポンスで切り替えることができ、据置型ゲーム装置やポインティングデバイスを用いて操作を行う情報処理装置等に有用である。
【図面の簡単な説明】
【０１７１】
【図１】本発明の一実施形態に係るゲームシステム１を説明するための外観図
【図２】図１のゲーム装置本体３の機能ブロック図
【図３】図１のコントローラ７の上面後方から見た斜視図
【図４】図３のコントローラ７を下面前方から見た斜視図
【図５】図３のコントローラ７の上ハウジングを外した状態を示す斜視図
【図６】図３のコントローラ７の下ハウジングを外した状態を示す斜視図
【図７】図３のコントローラ７の構成を示すブロック図
【図８】撮像画像の一例を示す図
【図９】コントローラ７を用いたゲーム操作について説明するための図
【図１０】本実施形態で想定するゲーム画面の一例
【図１１】本実施形態で想定するゲーム画面の一例
【図１２】本実施形態で想定するゲーム画面の一例
【図１３】本実施形態で想定するゲーム画面の一例
【図１４】本実施形態で想定するゲーム画面の一例
【図１５】本実施形態で想定するゲーム画面の一例
【図１６】メインメモリ１２のメモリマップを示す図
【図１７】本発明の実施形態に係るゲーム処理を示すフローチャート
【図１８】図１７のステップＳ１で示した初期化処理の詳細を示したフローチャート
【図１９】図１７のステップＳ２で示した１フレーム処理の詳細を示したフローチャート
【図２０】図１９のステップＳ３１で示した十字キーモード処理の詳細を示したフローチャート
【図２１】拡張コントローラ９を接続したコントローラ７の図
【図２２】拡張コントローラ９を接続したコントローラ７の持ち方を示す図
【符号の説明】
【０１７２】
１…ゲームシステム
２…モニタ
２ａ…スピーカ
３…ゲーム装置
４…光ディスク
７…コントローラ
９…拡張コントローラ
１０…ＣＰＵ
１１…システムＬＳＩ
１１ａ…入出力プロセッサ
１１ｂ…ＧＰＵ
１１ｃ…ＤＳＰ
１１ｄ…ＶＲＡＭ
１１ｅ…内部メインメモリ
１２…外部メインメモリ
１３…ＲＯＭ／ＲＴＣ
１４…ディスクドライブ
１５…ＡＶ−ＩＣ
１６…ＡＶコネクタ
１７…フラッシュメモリ
１８…無線通信モジュール
１９…無線コントローラモジュール
２０…拡張コネクタ
２１…外部メモリカード用コネクタ
２２…アンテナ
２３…アンテナ
２４…電源ボタン
２５…リセットボタン
２６…イジェクトボタン
７１…ハウジング
７２…操作部
７３…コネクタ
７４…撮像情報演算部
７４１…赤外線フィルタ
７４２…レンズ
７４３…撮像素子
７４４…画像処理回路
７５…通信部
７５１…マイコン
７５２…メモリ
７５３…無線モジュール
７５４…アンテナ
７００…基板
７０１…加速度センサ
７０２…ＬＥＤ
７０３…水晶振動子
７０４…バイブレータ
７０７…サウンドＩＣ
７０８…アンプ
【図１】
2010097429.tif 000003
【図２】
2010097429.tif 000004
【図３】
2010097429.tif 000005
【図４】
2010097429.tif 000006
【図５】
2010097429.tif 000007
【図６】
2010097429.tif 000008
【図７】
2010097429.tif 000009
【図８】
2010097429.tif 000010
【図９】
2010097429.tif 000011
【図１０】
2010097429.tif 000012
【図１１】
2010097429.tif 000013
【図１２】
2010097429.tif 000014
【図１３】
2010097429.tif 000015
【図１４】
2010097429.tif 000016
【図１５】
2010097429.tif 000017
【図１６】
2010097429.tif 000018
【図１７】
2010097429.tif 000019
【図１８】
2010097429.tif 000020
【図１９】
2010097429.tif 000021
【図２０】
2010097429.tif 000022
【図２１】
2010097429.tif 000023
【図２２】
2010097429.tif 000024