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