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