説明

ゲームプログラムおよびゲーム装置

【課題】射的ゲーム等において、プレイヤが狙っているつもりの照準位置と実際の照準位置とのずれを感じさせずに標的を狙う撃つことができるゲームプログラムおよびゲーム装置を提供すること。
【解決手段】照準の位置を示す照準座標の入力を入力装置から受け付け、当該照準座標に基づいて、オブジェクトに照準が重なったか否かを判定する。重なったと判定されたときは、当該照準の重なったオブジェクトが射撃の標的となっている時間である標的時間を当該オブジェクトに関連づけて設定する。更に、射撃操作を受け付け、オブジェクトに標的時間が設定されてから当該標的時間内に射撃操作を受け付けたときは、照準の位置にかかわらず、当該標的時間が設定されたオブジェクトに対する射撃を行い、更に、当該オブジェクトに当該標的時間を再度設定する。

【発明の詳細な説明】
【技術分野】
【0001】
入力装置からの入力に基づいて、仮想空間内に存在するオブジェクトに対して射撃を行うゲーム装置のコンピュータに実行させるゲームプログラムに関し、より特定的には、射撃対象となるオブジェクトを狙うための照準の補正に関する。
【背景技術】
【0002】
従来、表示装置に表示される標的を模擬銃(銃型のコントローラ等)で狙い撃つようなゲーム装置において、プレイヤがゲーム画面に向かって模擬銃を構えたときに、ゲーム装置が模擬銃の照準位置として認識している位置と、プレイヤが実際に狙った位置とに「ずれ」が発生した場合に、この「ずれ」を補正することができないという問題があった。そのため、この「ずれ」を補正してゲーム処理を行うゲーム装置が開示されている(例えば特許文献1)。当該ゲーム装置では、設定画面を用いて「ずれ」を認識させ、当該「ずれ」を補正するための補正式を設定する。そして、実際のゲーム内の処理では、当該補正式を適用して演算を行うようにしている。これにより、実際にゲーム装置が検出する照準位置とプレイヤが狙った位置との間に感覚的なずれが生じないような処理を行っていた。
【特許文献1】特開平8−117447号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、上記特許文献1に開示されたゲーム装置では、以下のような問題があった。上記のように、補正式を適用してゲーム処理を行っていても、プレイヤは模擬銃を構えた体制でゲームを行っているために、ゲームが進むにつれて腕に疲労が蓄積してくる。その結果、模擬銃の重みにより、無意識のうちに銃口が下がってくる、あるいは手ぶれが発生する等が原因で、ゲーム装置が模擬銃の照準位置として認識している位置(上記補正式が適用された後の位置)と、プレイヤが実際に狙っているつもりである位置との「ずれ」が生じることがあった。つまり、上記のような補正式では補正しきれないような「ずれ」がゲームを進めていくに連れて事後的に発生することがあった。そのため、プレイヤは、ゲームプレイ開始直後では狙い通りに標的を撃てていたが、ゲームが進むにつれて、自身が狙っているつもりの標的を狙い撃つことができなくなってしまっていた。特に、同じ標的を何度も狙い撃つようなときに、プレイヤは同じ箇所を撃っているつもりでも、プレイヤが気付かないうちに照準位置がずれてしまい、弾が思うように命中しなくなることがあった。その結果、ちゃんと標的を狙っているのに弾が命中しない、という印象をプレイヤに抱かせてしまい、プレイヤにストレスが溜まって、当該ゲームに対する興味が薄れてしまうという問題があった。また、3次元の仮想ゲーム空間内において遠方の小さい標的を狙い撃つ際には、精密な照準合わせが必要となるところ、このような標的についてもなかなか狙い撃つことができずにストレスが溜まり、当該ゲームに対する興味が薄れてしまうという問題もあった。
【0004】
それ故に、本発明の目的は、射的ゲーム等において、プレイヤが狙っているつもりの照準位置とゲーム装置で認識されている照準位置とのずれを感じさせずに標的を狙う撃つことができるゲームプログラム、およびゲーム装置を提供することである。
【課題を解決するための手段】
【0005】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係の一例を示したものであって、本発明を何ら限定するものではない。
【0006】
第1の発明は、入力装置からの入力に基づいて、仮想空間内に存在するオブジェクトに対して射撃を行う様子をゲーム画面に表示するゲーム装置のコンピュータに実行させるゲームプログラムであって、コンピュータを、照準座標受付手段(S5)と、照準判定手段(S41)と、標的設定手段(S44)と、射撃操作受付手段(S2)と、射撃処理手段(S63,S65)と、標的再設定手段(S64)として機能させる。照準座標受付手段は、ゲーム画面上における照準の位置を示す照準座標の入力を前記入力装置から受け付ける。照準判定手段は、照準座標受付手段で受け付けた前記照準座標に基づいて、前記オブジェクトに前記照準が重なったか否かを判定する。標的設定手段は、照準判定手段によって照準がオブジェクトに重なったと判定されたとき、当該照準の重なったオブジェクトが射撃の標的となっている時間である標的時間を当該オブジェクトに関連づけて設定する。射撃操作受付手段は、仮想空間内に対する射撃操作を入力装置から受け付ける。射撃処理手段は、標的設定手段がオブジェクトに標的時間を設定してから当該標的時間内に射撃入力受付手段が射撃操作を受け付けたときは、照準の位置にかかわらず、仮想空間内において当該標的時間が設定されたオブジェクトに対する射撃を行う。標的再設定手段は、標的時間内に射撃入力受付手段が射撃操作を受け付けたときは、射撃の標的となっているオブジェクトに当該標的時間を再度設定する。
【0007】
第1の発明によれば、射的ゲーム等において、プレイヤが狙っているつもりの照準の位置と実際の照準の位置とのずれをプレイヤに感じさせないようにすることができる。
【0008】
第2の発明は、第1の発明において、射撃処理手段は、標的時間経過後に射撃操作を受け付けたときは、照準の位置に基づいて射撃を行う、請求項1に記載のゲームプログラム。
【0009】
第2の発明によれば、標的時間経過後は実際の照準の位置に射撃が行われるため、ゲームの興趣性を高めることができる。
【0010】
第3の発明は、第1の発明および第2の発明において、標的設定手段は、ゲームプログラムによって実行されるゲーム処理の内容に応じて、標的時間を変化させる。
【0011】
第3の発明によれば、ゲームの展開が単調になることを防ぎ、ゲームの興趣を高めることができる。
【0012】
第4の発明は、第3の発明において、ゲームプログラムは、前記コンピュータを、射撃道具データ記憶手段(126)と、射撃道具選択手段(S2,S3、S4)として更に機能させる。射撃道具データ記憶手段は、仮想空間内において射撃を行うための道具に関するデータであり、標的時間が当該射撃道具毎に異なる値で設定されている射撃道具データを複数記憶する。射撃道具選択手段は、射撃操作で使用する射撃道具を選択する。更に、標的設定手段は、射撃道具選択手段によって選択された射撃道具に対応する射撃道具データを参照して標的時間を設定する。
【0013】
第4の発明によれば、射撃道具に個性を持たせることができ、ゲームの興趣を高めることが可能となる。
【0014】
第5の発明は、第3の発明において、ゲームプログラムは、コンピュータを、ゲームの難度を設定するための難度設定手段として更に機能させる。また、標的設定手段は、難度設定手段によって設定されたゲームの難度に基づいて、難度毎に異なった時間を標的時間として設定する。
【0015】
第5の発明によれば、プレイヤの腕前に合わせてゲームを楽しめるようにすることができる。
【0016】
第6の発明は、第5の発明において、標的設定手段は、難度設定手段によってゲームの難度が低く設定されるにつれて、標的時間が長くなるように設定する。
【0017】
第6の発明によれば、第5の発明と同様の効果を得ることができる。
【0018】
第7の発明は、第3の発明において、ゲームプログラムは、コンピュータを、オブジェクトの仮想空間内における大きさを示すサイズデータを所定の記憶部に記憶するサイズデータ記憶手段として更に機能させる。また、標的設定手段は、照準が重なったオブジェクトのサイズデータに基づいて標的時間を設定する。
【0019】
第7の発明によれば、射撃対象となるオブジェクトの大きさによって、狙いやすさを変化させることができ、ゲームの興趣を高めることができる。
【0020】
第8の発明は、第7の発明において、標的設定手段は、照準が重なったオブジェクトの大きさが小さいほど、標的時間が長くなるように設定する。
【0021】
第8の発明によれば、狙いの付けにくい小さなオブジェクトに対しても命中させやすくなり、プレイヤに与えるストレスを軽減して、ゲームへの興味を失わせることを防ぐことができる。
【0022】
第9の発明は、第3の発明において、ゲームプログラムは、コンピュータを、仮想空間内で射撃を行うための場面に関する場面データを所定の記憶部に複数記憶する場面データ記憶手段として更に機能させる。更に、標的設定手段は、場面データに応じて標的時間が異なるように設定する。
【0023】
第9の発明によれば、ゲーム中における各場面に個性を持たせることができ、ゲームが単調なものになることを防ぐことができる。
【0024】
第10の発明は、第1乃至第9の発明において、ゲームプログラムは、コンピュータを、仮想空間内において、標的設定されたオブジェクトと照準座標との間に遮蔽物が存在している時間である遮蔽時間を計測する遮蔽時間計測手段(S23)と、遮蔽時間が所定値を越えたとき、標的時間の設定を削除する標的解除手段(S24)として更に機能させる。
【0025】
第10の発明によれば、ゲームのリアリティを高めることができ、興趣性を高めることが可能となる。
【0026】
第11の発明は、入力装置(7)からの入力に基づいて、仮想空間内に存在するオブジェクトに対して射撃を行う様子をゲーム画面に表示するゲーム装置であって、照準座標受付手段(10)と、照準判定手段(10)と、標的設定手段(10)と、射撃操作受付手段(10)と、射撃処理手段(10)と、標的再設定手段(10)とを備える。照準座標受付手段は、ゲーム画面上における照準の位置を示す照準座標の入力を入力装置から受け付ける。照準判定手段は、照準座標受付手段で受け付けた照準座標に基づいて、オブジェクトに照準が重なったか否かを判定する。標的設定手段は、照準判定手段によって照準がオブジェクトに重なったと判定されたとき、当該照準の重なったオブジェクトが射撃の標的となっている時間である標的時間を当該オブジェクトに関連づけて設定する。射撃操作受付手段は、仮想空間内に対する射撃操作を入力装置から受け付ける。射撃処理手段は、標的設定手段がオブジェクトに標的時間を設定してから当該標的時間内に射撃入力受付手段が射撃操作を受け付けたときは、照準の位置にかかわらず、仮想空間内において当該標的時間が設定されたオブジェクトに対する射撃を行う。標的再設定手段は、標的時間内に射撃入力受付手段が射撃操作を受け付けたときは、射撃の標的となっているオブジェクトに当該標的時間を再度設定する。
【0027】
第11の発明によれば、第1の発明と同様の効果を得ることができる。
【発明の効果】
【0028】
本発明によれば、射的ゲーム等において、プレイヤが狙っているつもりの照準の位置と実際の照準の位置とのずれをプレイヤに感じさせずに、標的を狙う撃たせることが可能となる。これにより、プレイヤに上記のずれに基づくストレスを与えることを防ぎ、ゲームに対する興味が失われてしまうことを防ぐことができる。
【発明を実施するための最良の形態】
【0029】
以下、本発明の実施の形態について、図面を参照して説明する。尚、この実施例により本発明が限定されるものではない。
【0030】
(ゲームシステムの全体構成)
図1を参照して、本発明の実施形態に係るゲーム装置を含むゲームシステム1について説明する。図1は、ゲームシステム1の外観図である。以下、据置型のゲーム装置を一例にして、本実施形態のゲーム装置およびゲームプログラムについて説明する。図1において、ゲームシステム1は、テレビジョン受像器(以下、単に「テレビ」と記載する)2、ゲーム装置本体3、光ディスク4、コントローラ7、およびマーカ部8を含む。本システムは、コントローラ7を用いたゲーム操作に基づいてゲーム装置本体3でゲーム処理を実行するものである。
【0031】
ゲーム装置本体3には、当該ゲーム装置本体3に対して交換可能に用いられる情報記憶媒体の一例である光ディスク4が脱着可能に挿入される。光ディスク4には、ゲーム装置本体3において実行されるためのゲームプログラムが記憶されている。ゲーム装置本体3の前面には光ディスク4の挿入口が設けられている。ゲーム装置本体3は、挿入口に挿入された光ディスク4に記憶されたゲームプログラムを読み出して実行することによってゲーム処理を実行する。
【0032】
ゲーム装置本体3には、表示装置の一例であるテレビ2が接続コードを介して接続される。テレビ2には、ゲーム装置本体3において実行されるゲーム処理の結果得られるゲーム画像が表示される。また、テレビ2の画面の周辺(図1では画面の上側)には、マーカ部8が設置される。マーカ部8は、その両端に2つのマーカ8Rおよび8Lを備えている。マーカ8R(マーカ8Lも同様)は、具体的には1以上の赤外LEDであり、テレビ2の前方に向かって赤外光を出力する。マーカ部8はゲーム装置本体3に接続されており、ゲーム装置本体3はマーカ部8が備える各赤外LEDの点灯を制御することが可能である。
【0033】
コントローラ7は、当該コントローラ7自身に対して行われた操作の内容を示す操作データをゲーム装置本体3に与える入力装置である。コントローラ7とゲーム装置本体3とは無線通信によって接続される。本実施形態では、コントローラ7とゲーム装置本体3との間の無線通信には例えばBluetooth(ブルートゥース)(登録商標)の技術が用いられる。なお、他の実施形態においてはコントローラ7とゲーム装置本体3とは有線で接続されてもよい。
【0034】
(ゲーム装置本体3の内部構成)
次に、図2を参照して、ゲーム装置本体3の内部構成について説明する。図2は、ゲーム装置本体3の構成を示すブロック図である。ゲーム装置本体3は、CPU10、システムLSI11、外部メインメモリ12、ROM/RTC13、ディスクドライブ14、およびAV−IC15等を有する。
【0035】
CPU10は、光ディスク4に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。CPU10は、システムLSI11に接続される。システムLSI11には、CPU10の他、外部メインメモリ12、ROM/RTC13、ディスクドライブ14およびAV−IC15が接続される。システムLSI11は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。システムLSIの内部構成について後述する。揮発性の外部メインメモリ12は、光ディスク4から読み出されたゲームプログラムや、フラッシュメモリ17から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、CPU10のワーク領域やバッファ領域として用いられる。ROM/RTC13は、ゲーム装置本体3の起動用のプログラムが組み込まれるROM(いわゆるブートROM)と、時間をカウントするクロック回路(RTC:Real Time Clock)とを有する。ディスクドライブ14は、光ディスク4からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ11eまたは外部メインメモリ12に読み出したデータを書き込む。
【0036】
また、システムLSI11には、入出力プロセッサ11a、GPU(Graphics Processor Unit)11b、DSP(Digital Signal Processor)11c、VRAM11d、および内部メインメモリ11eが設けられる。図示は省略するが、これらの構成要素11a〜11eは内部バスによって互いに接続される。
【0037】
GPU11bは、描画手段の一部を形成し、CPU10からのグラフィクスコマンド(作画命令)に従って画像を生成する。より具体的には、GPU11bは、当該グラフィクスコマンドに従って3Dグラフィックスの表示に必要な計算処理、例えば、レンダリングの前処理にあたる3D座標から2D座標への座標変換などの処理や、テクスチャの張り込みなどの最終的なレンダリング処理を行うことで、ゲーム画像データを生成する。ここで、CPU10は、グラフィクスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラムをGPU11bに与える。VRAM11dは、GPU11bがグラフィクスコマンドを実行するために必要なデータ(ポリゴンデータやテクスチャデータ等のデータ)を記憶する。画像が生成される際には、GPU11bは、VRAM11dに記憶されたデータを用いて画像データを作成する。
【0038】
DSP11cは、オーディオプロセッサとして機能し、内部メインメモリ11eや外部メインメモリ12に記憶されるサウンドデータや音波形(音色)データを用いて、音声データを生成する。また、内部メインメモリ11eは、外部メインメモリ12と同様に、プログラムや各種データを記憶したり、CPU10のワーク領域やバッファ領域としても用いられる。
【0039】
上述のように生成された画像データおよび音声データは、AV−IC15によって読み出される。AV−IC15は、読み出した画像データをAVコネクタ16を介してテレビ2に出力するとともに、読み出した音声データを、テレビ2に内蔵されるスピーカ2aに出力する。これによって、画像がテレビ2に表示されるとともに音がスピーカ2aから出力される。
【0040】
入出力プロセッサ(I/Oプロセッサ)11aは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ11aは、フラッシュメモリ17、無線通信モジュール18、無線コントローラモジュール19、拡張コネクタ20、および外部メモリカード用コネクタ21に接続される。無線通信モジュール18にはアンテナ22が接続され、無線コントローラモジュール19にはアンテナ23が接続される。
【0041】
入出力プロセッサ11aは、無線通信モジュール18およびアンテナ22を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ11aは、定期的にフラッシュメモリ17にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、無線通信モジュール18およびアンテナ22を介してネットワークに送信する。また、入出力プロセッサ11aは、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ22および無線通信モジュール18を介して受信し、受信したデータをフラッシュメモリ17に記憶する。CPU10はゲームプログラムを実行することにより、フラッシュメモリ17に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ17には、ゲーム装置本体3と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置本体3を利用してプレイしたゲームのセーブデータ(ゲームの結果データまたは途中データ)が記憶されてもよい。
【0042】
また、入出力プロセッサ11aは、コントローラ7から送信される操作データをアンテナ23および無線コントローラモジュール19を介して受信し、内部メインメモリ11eまたは外部メインメモリ12のバッファ領域に記憶(一時記憶)する。
【0043】
さらに、入出力プロセッサ11aには、拡張コネクタ20および外部メモリカード用コネクタ21が接続される。拡張コネクタ20は、USBやSCSIのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール18に替えてネットワークとの通信を行ったりすることができる。外部メモリカード用コネクタ21は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ11aは、拡張コネクタ20や外部メモリカード用コネクタ21を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【0044】
ゲーム装置本体3には、電源ボタン24、リセットボタン25、およびイジェクトボタン26が設けられる。電源ボタン24およびリセットボタン25は、システムLSI11に接続される。電源ボタン24がオンにされると、ゲーム装置本体3の各構成要素に対して、図示しないACアダプタを経て電源が供給される。また、一旦電源がオンにされた状態で、再度電源ボタン24を押すと、低電力スタンバイモードへの移行が行われる。この状態でも、ゲーム装置本体3への通電は行われているため、インターネット等のネットワークに常時接続しておくことができる。なお、一旦電源がオンにされた状態で、電源をオフにしたいときは、電源ボタン24を所定時間以上長押しすることで、電源をオフとすることが可能である。リセットボタン25が押されると、システムLSI11は、ゲーム装置本体3の起動プログラムを再起動する。イジェクトボタン26は、ディスクドライブ14に接続される。イジェクトボタン26が押されると、ディスクドライブ14から光ディスク4が排出される。
【0045】
次に、図3および図4を参照して、コントローラ7について説明する。なお、図3は、コントローラ7の上面後方から見た斜視図である。図4は、コントローラ7を下面前方から見た斜視図である。
【0046】
図3および図4において、コントローラ7は、ハウジング71と、当該ハウジング71の表面に設けられた複数個の操作ボタンで構成される操作部72とを備える。本実施例のハウジング71は、その前後方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさであり、例えばプラスチック成型によって形成されている。
【0047】
ハウジング71上面の中央前面側に、十字キー72aが設けられる。この十字キー72aは、十字型の4方向プッシュスイッチであり、4つの方向(前後左右)に対応する操作部分が十字の突出片にそれぞれ90°間隔で配置される。プレイヤが十字キー72aのいずれかの操作部分を押下することによって前後左右いずれかの方向を選択される。例えばプレイヤが十字キー72aを操作することによって、仮想ゲーム世界に登場するプレイヤキャラクタ等の移動方向を指示したり、複数の選択肢から選択指示したりすることができる。
【0048】
なお、十字キー72aは、上述したプレイヤの方向入力操作に応じて操作信号を出力する操作部であるが、他の態様の操作部でもかまわない。例えば、十字方向に4つのプッシュスイッチを配設し、プレイヤによって押下されたプッシュスイッチに応じて操作信号を出力する操作部を設けてもかまわない。さらに、上記4つのプッシュスイッチとは別に、上記十字方向が交わる位置にセンタスイッチを配設し、4つのプッシュスイッチとセンタスイッチとを複合した操作部を設けてもかまわない。また、ハウジング71上面から突出した傾倒可能なスティック(いわゆる、ジョイスティック)を倒すことによって、傾倒方向に応じて操作信号を出力する操作部を上記十字キー72aの代わりに設けてもかまわない。さらに、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部を、上記十字キー72aの代わりに設けてもかまわない。また、タッチパッドを、上記十字キー72aの代わりに設けてもかまわない。
【0049】
ハウジング71上面の十字キー72aより後面側に、複数の操作ボタン72b〜72gが設けられる。操作ボタン72b〜72gは、プレイヤがボタン頭部を押下することによって、それぞれの操作ボタン72b〜72gに割り当てられた操作信号を出力する操作部である。例えば、操作ボタン72b〜72dには、1番ボタン、2番ボタン、およびAボタン等としての機能が割り当てられる。また、操作ボタン72e〜72gには、マイナスボタン、ホームボタン、およびプラスボタン等としての機能が割り当てられる。これら操作ボタン72a〜72gは、ゲーム装置本体3が実行するゲームプログラムに応じてそれぞれの操作機能が割り当てられる。なお、図3に示した配置例では、操作ボタン72b〜72dは、ハウジング71上面の中央前後方向に沿って並設されている。また、操作ボタン72e〜72gは、ハウジング71上面の左右方向に沿って操作ボタン72bおよび72dの間に並設されている。そして、操作ボタン72fは、その上面がハウジング71の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【0050】
また、ハウジング71上面の十字キー72aより前面側に、操作ボタン72hが設けられる。操作ボタン72hは、遠隔からゲーム装置本体3本体の電源をオン/オフする電源スイッチである。この操作ボタン72hも、その上面がハウジング71の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【0051】
また、ハウジング71上面の操作ボタン72cより後面側に、複数のLED702が設けられる。ここで、コントローラ7は、他のコントローラ7と区別するためにコントローラ種別(番号)が設けられている。例えば、LED702は、コントローラ7に現在設定されている上記コントローラ種別をプレイヤに通知するために用いられる。具体的には、コントローラ7から通信ユニット6へ送信データを送信する際、上記コントローラ種別に応じて複数のLED702のうち、種別に対応するLEDが点灯する。
【0052】
また、ハウジング71上面には、操作ボタン72bおよび操作ボタン72e〜72gの間に後述するスピーカ(図5のスピーカ706)からの音を外部に放出するための音抜き孔が形成されている。
【0053】
一方、ハウジング71下面には、凹部が形成されている。後述で明らかとなるが、ハウジング71下面の凹部は、プレイヤがコントローラ7の前面をマーカ8Lおよび8Rに向けて片手で把持したときに、当該プレイヤの人差し指や中指が位置するような位置に形成される。そして、上記凹部の傾斜面には、操作ボタン72iが設けられる。操作ボタン72iは、例えばBボタンとして機能する操作部である。
【0054】
また、ハウジング71前面には、撮像情報演算部74の一部を構成する撮像素子743が設けられる。ここで、撮像情報演算部74は、コントローラ7が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを検出するためのシステムであり、例えば、最大200フレーム/秒程度のサンプリング周期であるため比較的高速なコントローラ7の動きでも追跡して解析することができる。この撮像情報演算部74の詳細な構成については、後述する。また、ハウジング70の後面には、コネクタ73が設けられている。コネクタ73は、例えばエッジコネクタであり、例えば接続ケーブルと嵌合して接続するために利用される。
【0055】
ここで、以下の説明を具体的にするために、コントローラ7に対して設定する座標系について定義する。図3および図4に示すように、互いに直交するxyz軸をコントローラ7に対して定義する。具体的には、コントローラ7の前後方向となるハウジング71の長手方向をz軸とし、コントローラ7の前面(撮像情報演算部74が設けられている面)方向をz軸正方向とする。また、コントローラ7の上下方向をy軸とし、ハウジング71の上面(操作ボタン72a等が設けられた面)方向をy軸正方向とする。さらに、コントローラ7の左右方向をx軸とし、ハウジング71の左側面(図3では表されずに図4で表されている側面)方向をx軸正方向とする。
【0056】
次に、図5および図6を参照して、コントローラ7の内部構造について説明する。なお、図5は、コントローラ7の上ハウジング(ハウジング71の一部)を外した状態を後面側から見た斜視図である。図6は、コントローラ7の下ハウジング(ハウジング71の一部)を外した状態を前面側から見た斜視図である。ここで、図6に示す基板700は、図5に示す基板700の裏面から見た斜視図となっている。
【0057】
図5において、ハウジング71の内部には基板700が固設されており、当該基板700の上主面上に操作ボタン72a〜72h、加速度センサ701、LED702、およびアンテナ754等が設けられる。そして、これらは、基板700等に形成された配線(図示せず)によってマイコン751等(図6、図7参照)に接続される。マイコン751は本願発明のボタンデータ発生手段の一例として、操作ボタン72a等の種類に応じた操作ボタンデータを発生させるように機能する。この仕組みは公知技術であるが、例えばキートップ下側に配置されたタクトスイッチなどのスイッチ機構による配線の接触/切断をマイコン751が検出することによって実現されている。より具体的には、操作ボタンが例えば押されると配線が接触して通電するので、この通電がどの操作ボタンにつながっている配線で発生したかをマイコン751が検出し、操作ボタンの種類に応じた信号を発生させている。
【0058】
また、コントローラ7は、図示しない無線モジュール753(図7参照)およびアンテナ754によって、ワイヤレスコントローラとして機能する。なお、ハウジング71内部には図示しない水晶振動子が設けられており、後述するマイコン751の基本クロックを生成する。また、基板700の上主面上に、スピーカ706およびアンプ708が設けられる。また、加速度センサ701は、操作ボタン72dの左側の基板700上(つまり、基板700の中央部ではなく周辺部)に設けられる。したがって、加速度センサ701は、コントローラ7の長手方向を軸とした回転に応じて、重力加速度の方向変化に加え、遠心力による成分の含まれる加速度を検出することができるので、所定の演算により、検出される加速度データからコントローラ7の回転を良好な感度でゲーム装置本体3等が判定することができる。
【0059】
一方、図6において、基板700の下主面上の前端縁に撮像情報演算部74が設けられる。撮像情報演算部74は、コントローラ7の前方から順に赤外線フィルタ741、レンズ742、撮像素子743、および画像処理回路744によって構成されており、それぞれ基板700の下主面に取り付けられる。また、基板700の下主面上の後端縁にコネクタ73が取り付けられる。さらに、基板700の下主面上にサウンドIC707およびマイコン751が設けられている。サウンドIC707は、基板700等に形成された配線によってマイコン751およびアンプ708と接続され、ゲーム装置本体3から送信されたサウンドデータに応じてアンプ708を介してスピーカ706に音声信号を出力する。
【0060】
そして、基板700の下主面上には、バイブレータ704が取り付けられる。バイブレータ704は、例えば振動モータやソレノイドである。バイブレータ704は、基板700等に形成された配線によってマイコン751と接続され、ゲーム装置本体3から送信された振動データに応じてその作動をオン/オフする。バイブレータ704が作動することによってコントローラ7に振動が発生するので、それを把持しているプレイヤの手にその振動が伝達され、いわゆる振動対応ゲームが実現できる。ここで、バイブレータ704は、ハウジング71のやや前方寄りに配置されるため、プレイヤが把持している状態において、ハウジング71が大きく振動することになり、振動を感じやすくなる。
【0061】
次に、図7を参照して、コントローラ7の内部構成について説明する。なお、図7は、コントローラ7の構成を示すブロック図である。
【0062】
図7において、コントローラ7は、上述した操作部72、撮像情報演算部74、加速度センサ701、バイブレータ704、スピーカ706、サウンドIC707、およびアンプ708の他に、その内部に通信部75を備えている。
【0063】
撮像情報演算部74は、赤外線フィルタ741、レンズ742、撮像素子743、および画像処理回路744を含んでいる。赤外線フィルタ741は、コントローラ7の前方から入射する光から赤外線のみを通過させる。レンズ742は、赤外線フィルタ741を透過した赤外線を集光して撮像素子743へ出射する。撮像素子743は、例えばCMOSセンサやあるいはCCDのような固体撮像素子であり、レンズ742が集光した赤外線を撮像する。したがって、撮像素子743は、赤外線フィルタ741を通過した赤外線だけを撮像して画像データを生成する。撮像素子743で生成された画像データは、画像処理回路744で処理される。具体的には、画像処理回路744は、撮像素子743から得られた画像データを処理して高輝度部分を検知し、それらの位置座標や面積を検出した結果を示す処理結果データを通信部75へ出力する。なお、これらの撮像情報演算部74は、コントローラ7のハウジング71に固設されており、ハウジング71自体の方向を変えることによってその撮像方向を変更することができる。後述により明らかとなるが、この撮像情報演算部74から出力される処理結果データに基づいて、コントローラ7の位置や動きに応じた信号を得ることができる。
【0064】
コントローラ7は、3軸(x、y、z軸)の加速度センサ701を備えていることが好ましい。この3軸の加速度センサ701は、3方向、すなわち、上下方向、左右方向、および前後方向で直線加速度を検知する。また、他の実施形態においては、ゲーム処理に用いる制御信号の種類によっては、上下および左右方向(または他の対になった方向)のそれぞれに沿った直線加速度のみを検知する2軸の加速度検出手段を使用してもよい。例えば、この3軸または2軸の加速度センサ701は、アナログ・デバイセズ株式会社(Analog Devices, Inc.)またはSTマイクロエレクトロニクス社(STMicroelectronics N.V.)から入手可能であるタイプのものでもよい。加速度センサ701は、シリコン微細加工されたMEMS(Micro Electro Mechanical Systems:微小電子機械システム)の技術に基づいた静電容量式(静電容量結合式)であってもよい。しかしながら、既存の加速度検出手段の技術(例えば、圧電方式や圧電抵抗方式)あるいは将来開発される他の適切な技術を用いて3軸または2軸の加速度センサ701が提供されてもよい。
【0065】
当業者には公知であるように、加速度センサ701に用いられるような加速度検出手段は、加速度センサの持つ各軸に対応する直線に沿った加速度(直線加速度)のみを検知することができる。つまり、加速度センサ701からの直接の出力は、その2軸または3軸のそれぞれに沿った直線加速度(静的または動的)を示す信号である。このため、加速度センサ701は、非直線状(例えば、円弧状)の経路に沿った動き、回転、回転運動、角変位、傾斜、位置、または姿勢等の物理特性を直接検知することはできない。
【0066】
しかしながら、加速度センサ701から出力される加速度の信号に基づいて、ゲーム装置のプロセッサ(例えばCPU10)またはコントローラのプロセッサ(例えばマイコン751)などのコンピュータが処理を行うことによって、コントローラ7に関するさらなる情報を推測または算出(判定)することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、加速度センサを搭載するコントローラが静的な状態であることを前提としてコンピュータ側で処理する場合(すなわち、加速度センサによって検出される加速度が重力加速度のみであるとして処理する場合)、コントローラが現実に静的な状態であれば、検出された加速度に基づいてコントローラの姿勢が重力方向に対して傾いているか否か又はどの程度傾いているかを知ることができる。具体的には、加速度センサの検出軸が鉛直下方向を向いている状態を基準としたとき、1G(重力加速度)がかかっているか否かだけで傾いているか否かを知ることができるし、その大きさによってどの程度傾いているかも知ることができる。また、多軸の加速度センサの場合には、さらに各軸の加速度の信号に対して処理を施すことによって、各軸が重力方向に対してどの程度傾いているかをより詳細に知ることができる。この場合において、、加速度センサ701からの出力に基づいて、プロセッサがコントローラ7の傾き角度のデータを算出する処理をおこなってもよいが、当該傾き角度のデータを算出する処理をおこなうことなく、加速度センサ701からの出力に基づいて、おおよその傾き具合を推定するような処理としてもよい。このように、加速度センサ701をプロセッサと組み合わせて用いることによって、コントローラ7の傾き、姿勢または位置を判定することができる。一方、加速度センサが動的な状態であることを前提とする場合には、重力加速度成分に加えて加速度センサの動きに応じた加速度を検出するので、重力加速度成分を所定の処理により除去すれば、動き方向などを知ることができる。具体的には、、加速度センサ701を備えるコントローラ7がユーザの手で動的に加速されて動かされる場合に、加速度センサ701によって生成される加速度信号を処理することによって、コントローラ7のさまざまな動きおよび/または位置を算出することができる。なお、加速度センサが動的な状態であることを前提とする場合であっても、加速度センサの動きに応じた加速度を所定の処理により除去すれば、重力方向対する傾きを知ることが可能である。他の実施例では、加速度センサ701は、信号をマイコン751に出力する前に内蔵の加速度検出手段から出力される加速度信号に対して所望の処理を行うための、組込み式の信号処理装置または他の種類の専用の処理装置を備えていてもよい。例えば、組込み式または専用の処理装置は、加速度センサが静的な加速度(例えば、重力加速度)を検出するためのものである場合、検知された加速度信号をそれに相当する傾斜角(あるいは、他の好ましいパラメータ)に変換するものであってもよい。
【0067】
他の実施形態の例では、コントローラ7の動きを検出する動きセンサとして、回転素子または振動素子などを内蔵したジャイロセンサを用いてもよい。この実施形態で使用されるMEMSジャイロセンサの一例として、アナログ・デバイセズ株式会社から入手可能なものがある。加速度センサ701と異なり、ジャイロセンサは、それが内蔵する少なくとも一つのジャイロ素子の軸を中心とした回転(または角速度)を直接検知することができる。このように、ジャイロセンサと加速度センサとは基本的に異なるので、個々の用途のためにいずれの装置が選択されるかによって、これらの装置からの出力信号に対して行う処理を適宜変更する必要がある。
【0068】
具体的には、加速度センサの代わりにジャイロセンサを用いて傾きや姿勢を算出する場合には、大幅な変更を行う。すなわち、ジャイロセンサを用いる場合、検出開始の状態において傾きの値を初期化する。そして、当該ジャイロセンサから出力される角速度データを積分する。次に、初期化された傾きの値からの傾きの変化量を算出する。この場合、算出される傾きは、角度に対応する値が算出されることになる。一方、加速度センサによって傾きを算出する場合には、重力加速度のそれぞれの軸に関する成分の値を、所定の基準と比較することによって傾きを算出するので、算出される傾きはベクトルで表すことが可能であり、初期化を行わずとも、加速度検出手段を用いて検出される絶対的な方向を検出することが可能である。また、傾きとして算出される値の性質は、ジャイロセンサが用いられる場合には角度であるのに対して、加速度センサが用いられる場合にはベクトルであるという違いがある。したがって、加速度センサに代えてジャイロセンサが用いられる場合、当該傾きのデータに対して、2つのデバイスの違いを考慮した所定の変換を行う必要がある。加速度検出手段とジャイロセンサとの基本的な差異と同様にジャイロセンサの特性は当業者に公知であるので、本明細書ではさらなる詳細を省略する。ジャイロセンサは、回転を直接検知できることによる利点を有する一方、一般的には、加速度センサは、本実施形態で用いるようなコントローラに適用される場合、ジャイロセンサに比べて費用効率が良いという利点を有する。
【0069】
通信部75は、マイクロコンピュータ(Micro Computer:マイコン)751、メモリ752、無線モジュール753、およびアンテナ754を含んでいる。マイコン751は、処理の際にメモリ752を記憶領域として用いながら、送信データを無線送信する無線モジュール753を制御する。また、マイコン751は、アンテナ754を介して無線モジュール753が受信したゲーム装置本体3からのデータに応じて、サウンドIC707およびバイブレータ704の動作を制御する。サウンドIC707は、通信部75を介してゲーム装置本体3から送信されたサウンドデータ等を処理する。また、マイコン751は、通信部75を介してゲーム装置本体3から送信された振動データ(例えば、バイブレータ704をONまたはOFFする信号)等に応じて、バイブレータ704を作動させる。
【0070】
コントローラ7に設けられた操作部72からの操作信号(キーデータ)、加速度センサ701からの加速度信号(x、y、およびz軸方向加速度データ;以下、単に加速度データと記載する)、および撮像情報演算部74からの処理結果データは、マイコン751に出力される。マイコン751は、入力した各データ(キーデータ、加速度データ、処理結果データ)を通信ユニット6へ送信する送信データとして一時的にメモリ752に格納する。ここで、通信部75から通信ユニット6への無線送信は、所定の周期毎に行われるが、ゲームの処理は1/60秒を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。具体的には、ゲームの処理単位は16.7ms(1/60秒)であり、ブルートゥース(Bluetooth;登録商標)で構成される通信部75の送信間隔は例えば5msである。マイコン751は、通信ユニット6への送信タイミングが到来すると、メモリ752に格納されている送信データを一連の操作情報として出力し、無線モジュール753へ出力する。そして、無線モジュール753は、例えばブルートゥース(登録商標)の技術に基づいて、所定周波数の搬送波を用いて操作情報で変調し、その電波信号をアンテナ754から放射する。つまり、コントローラ7に設けられた操作部72からのキーデータ、加速度センサ701からの加速度データ、および撮像情報演算部74からの処理結果データが無線モジュール753で電波信号に変調されてコントローラ7から送信される。そして、ゲーム装置本体3の通信ユニット6でその電波信号を受信し、ゲーム装置本体3で当該電波信号を復調や復号することによって、一連の操作情報(キーデータ、加速度データ、および処理結果データ)を取得する。そして、ゲーム装置本体3のCPU10は、取得した操作情報とゲームプログラムとに基づいて、ゲーム処理を行う。なお、ブルートゥース(登録商標)の技術を用いて通信部75を構成する場合、通信部75は、他のデバイスから無線送信された送信データを受信する機能も備えることができる。
【0071】
次に、図8〜図11を用いて、本実施形態で想定するゲームの概要について説明する。図8は、本実施形態で想定するゲームの画面の一例である。本ゲームは、射的ゲーム(ガンシューティング、あるいは、FPS)であり、コントローラ7を射撃武器(本実施形態にかかるゲームでは、射撃武器はクロスボウとする)に見立てて操作できる。ここで、コントローラ7の操作について説明すると、例えば、プレイヤは、図9に示すように、コントローラ7の前面(撮像情報演算部74が撮像する光の入射口側)がマーカ8aおよび8bの方向を向く状態でコントローラ7を把持する。この状態で、プレイヤは、コントローラ7の傾きを変化させたり、コントローラ7が指し示す画面上の位置(指示位置)を変更したりすることによってゲーム操作を行う。なお、コントローラ7の代わりに、銃やクロスボウ等の射撃武器の形を模した専用のコントローラを用いても良いし、また、例えば、銃やクロスボウを型取ったアタッチメントに上記コントローラ7をはめ込むようにして接続して用いても良い。
【0072】
図8において、3次元仮想ゲーム空間(以下、仮想ゲーム空間と呼ぶ)が映し出されているゲーム画面には、照準カーソル101および敵オブジェクト102が表示されている。照準カーソル101は、上記コントローラ7が指し示す指示位置に表示される。つまり、プレイヤは、コントローラ7の指示位置を動かす操作を行うことで当該照準カーソル101を画面内で移動させることができる。そして、照準カーソル101を敵オブジェクト102に合わせて射撃操作、例えば操作ボタン72iを押す操作を行うと、仮想ゲーム空間内において、プレイヤの武器であるクロスボウから矢が発射され、当該敵オブジェクト102に向けて矢が飛んでいく様子が表示される。当該矢が敵オブジェクト102に命中すれば、それに応じた処理(敵オブジェクトにダメージを与える等)が行われる。このような操作を繰り返すことで、プレイヤは、仮想ゲーム空間内に登場する敵オブジェクト102を射撃していく。
【0073】
ここで、ゲーム中に登場する敵オブジェクトに関しては、HP(HitPoint)というパラメータが設定されており、クロスボウにも「攻撃力」というパラメータが設定されている。そして、ほとんどの敵オブジェクトのHPは、矢が1発当たれば倒すことが可能なように設定されている。しかし、本ゲームでは、このような敵オブジェクトの他、矢を数十発当てないと倒すことのできない大型の敵オブジェクト(以下、強敵オブジェクトと呼ぶ)が登場する。図10は、強敵オブジェクト103が登場したゲーム画面の一例である。当該強敵オブジェクト103を倒そうとする場合、上記のように矢を数十発当てる必要があるため、照準カーソル101の位置を当該強敵オブジェクト103に合わせ続け、且つ、その状態で射撃操作を何度も繰り返して行う必要がある。このような操作を継続していると、腕の疲労や手ぶれ等が原因で、プレイヤが気付かないうちに照準カーソル101の位置がずれてくることがある。そのため、プレイヤは照準カーソル101を強敵オブジェクト103に合わせているつもりであっても、図11に示すように、実際の照準の位置が強敵オブジェクト103からずれている状況も起こり得る。そこで、本発明では、このような多少照準がずれているようなときでも、射撃操作を行いつづけていれば、矢を強敵オブジェクト103に命中させるという補正処理を行う。具体的には、本実施形態では、次のような処理が行われる。まず、プレイヤの操作の結果、照準カーソル101が強敵オブジェクト103に重なると、その時点で、一旦、当該強敵オブジェクト103について「標的設定」が行われる。この「標的設定」とは、照準カーソル101の位置に関わりなく(照準カーソル101が強敵オブジェクト103に合っていなくても)当該強敵オブジェクト103に向けて矢が発射されるようにする設定である。また、当該「標的設定」と同時に、「補正有効時間」(例えば30ミリ秒)が設定される。この「補正有効時間」内に射撃操作が行わなければ、「標的設定」は解除される。「標的設定」が解除された場合、その後の射撃操作では、照準カーソル101の示す方向に矢が発射される。一方、「補正有効時間」内に射撃操作が行われると、上記のように「標的設定」された強敵オブジェクト103に向けて矢が発射される。かつ、このように「補正有効時間」内に射撃操作が行われると、当該「補正有効時間」が再設定される(例えば初期値にリセットされる)。これにより、「補正有効時間」内での射撃操作を繰り返すことで、「標的設定」された敵に向けて矢を発射し続けることができる。そのため、図11に示したように、照準カーソル101が強敵オブジェクト103からずれていても、「補正有効時間」内の射撃操作さえ継続していれば、当該強敵オブジェクト103に向けて矢を発射することが可能となる。その結果、当該強敵オブジェクト103に矢を命中させつづけ、ダメージを与え続けることが可能となる。
【0074】
このような処理を行うことにより、同じ敵を狙っての射撃操作を繰り返しているうちに、プレイヤが気付かないまま照準がずれて弾が当たらなくなることを防ぎ、プレイヤにストレスを感じさせずにゲームをプレイさせることが可能となる。
【0075】
次に、ゲーム装置本体3によって実行されるゲーム処理の詳細を説明する。まず、ゲーム処理の際に外部メインメモリ12(ただし、内部メインメモリ11eでもよいし、両方を使用するようにしてもよい)に記憶されるデータについて説明する。図12は、ゲーム装置本体3の外部メインメモリ12のメモリマップを示す図である。図12において、外部メインメモリ12は、ゲームプログラム記憶領域121およびデータ記憶領域125を含む。ゲームプログラム記憶領域121およびデータ記憶領域125のデータは、光ディスク4に記憶され、ゲームプログラム実行時には外部メインメモリ12に転送されて記憶される。また、ここでは説明の便宜上、各データをテーブルデータの形式で説明するが、これらのデータは、実際にテーブルデータの形式で記憶されている必要はなく、ゲームプログラムにおいて、このテーブルに相当する内容の処理が記憶されていればよい。
【0076】
ゲームプログラム記憶領域121は、CPU10によって実行されるゲームプログラムを記憶し、このゲームプログラムは、メイン処理プログラム122と、標的設定処理プログラム123と、射撃処理プログラム124などによって構成される。メイン処理プログラム122は、後述の図17に示すフローチャートの処理を実行するためのプログラムである。標的設定処理プログラム123は、上述したような「標的設定」を実現するためのプログラムである。射撃処理プログラム124は、上記射撃武器による攻撃操作等に関する処理を実行するためのプログラムである。
【0077】
データ記憶領域125には、武器マスタ126,オブジェクトマスタ127、登場オブジェクトデータ128、標的データ129などのデータが記憶されるとともに、仮想ゲーム空間内における各種場面を示すデータ(「平原」や「森」等の場所・地形データ、「昼」や「夜」等の時間帯を示すデータ等)等、ゲーム処理に必要な各種データやフラグも記憶される。
【0078】
武器マスタ126は、本ゲームでプレイヤが使用できる武器について定義したテーブルである。ここで、本ゲームでは、プレイヤは複数種類の武器を使い分けることが可能となっている。そのため、各武器についての情報やパラメータが武器マスタ126として定義されている。図13は、武器マスタ126のデータ構造の一例を示した図である。武器マスタ126は、武器ID1261と攻撃力1262と最大飛距離1263の集合から構成される。武器ID1261は、上記各武器を一意に識別するためのIDである。攻撃力1262は、各部器の攻撃力について定義したデータであり、例えばクロスボウであれば、矢1発分の攻撃力が示されている。当該攻撃力に応じて、敵オブジェクトのHPが減少される。最大飛距離1263は、各武器の射程を示すデータである。
【0079】
オブジェクトマスタ127は、本ゲーム内に登場するオブジェクト(敵オブジェクト102、強敵オブジェクト103等)について定義したテーブルである。図14はオブジェクトマスタ127のデータ構造の一例を示した図である。オブジェクトマスタ127は、オブジェクトID1271とHP1272との集合から構成される。オブジェクトID1271は、上記のような敵オブジェクト102や強敵オブジェクト103を一意に識別するためのIDである。HP1272は、各オブジェクトの耐久力を示す値である。また、図示はしないが、この他、攻撃力や防御力などの各種パラメータについてもオブジェクトマスタ127に定義されている。
【0080】
登場オブジェクトデータ128は、現在プレイの対象となっている仮想ゲーム空間(例えば、ゲーム進行を複数のステージに分けている場合は、現在のステージ)に登場する敵オブジェクトおよび強敵オブジェクトに関するデータである。図15は、登場オブジェクトデータ128のデータ構造の一例を示した図である。登場オブジェクトデータ128は、オブジェクトID1281と配置座標1282と残りHP1283との集合から構成される。オブジェクトID1281は、各登場オブジェクトを識別するためのIDであり、上記オブジェクトマスタ127のオブジェクトID1271に対応している。配置座標1282は、各登場オブジェクトの仮想ゲーム空間内における位置を示すデータである。残りHP1283は、各登場オブジェクトのHPの残りを示す値である。
【0081】
標的データ129は、上述したような「標的設定」された敵オブジェクト102あるいは強敵オブジェクト103(以下、両オブジェクトをまとめて、単に「敵オブジェクト」と呼ぶ)についてのデータである。換言すれば、「標的設定」された敵オブジェクトに関するデータが、標的データ129に格納される。図16は、標的データ129のデータ構造の一例を示した図である。標的データ129は、オブジェクトID1291と武器ID1292と補正有効時間1293と遮り時間1294との集合から成る。オブジェクトID1291は、「標的設定」された敵オブジェクトのオブジェクトIDを示す。武器ID1292は、当該「標的設定」された敵オブジェクトを攻撃するために用いられる武器を示すデータであり、上記武器マスタ126の武器ID1261に対応するデータである。補正有効時間1293は、上述のような補正がかかる射撃操作の受付時間を示すデータである。補正有効時間が0になる前に射撃操作が行われれば、標的設定された敵オブジェクトに向けて矢が発射されることになる。遮り時間1294は、仮想ゲーム空間内において、当該「標的設定」されたオブジェクトが障害物等によって遮られている時間を示すデータである。
【0082】
次に、図17〜図24を参照して、ゲーム装置本体3によって実行されるゲーム処理の詳細動作について説明する。図17はゲーム装置本体3によって実行されるゲーム処理の全体処理を示すフローチャートである。まず、ステップS1において、以降の処理において用いられるデータの初期化処理が実行される。具体的には、標的データ129が空の状態とされて外部メインメモリ12に記憶される。また、ゲーム開始時においてプレイヤキャラクタが使用する武器(初期使用武器)の設定も行われる。また、後述するチェック処理で用いられる変数であるチェックカウンタに初期値として”20”が設定される。また、ゲーム開始時における登場オブジェクトが設定され、登場オブジェクトデータ128として外部メインメモリ12に記憶される。続いて、ゲーム空間が構築されてテレビ2に表示される。CPU10は、3次元のゲーム空間を構築し、登場オブジェクトデータ128に従って敵オブジェクトが仮想ゲーム空間内に配置される。以上のように構築されたゲーム空間を表すゲーム画像が生成され、生成されたゲーム画像がテレビ2に表示される。以降、ステップS2〜S9の処理ループが1フレーム毎に繰り返されることによって、ゲームが進行していく。
【0083】
次に、コントローラ7を介してプレイヤからの入力が受け付けられる(ステップS2)。具体的には、コントローラ7から送信されてくる操作データが取得される。
【0084】
次に、上記ステップS2で取得された操作データに基づいて、プレイヤからの入力内容が、武器の変更を指示する内容であるか否かが判定される(ステップS3)。武器の変更指示であれば(ステップS3でYES)、指示内容に基づいて、武器マスタ126から該当する武器データが読み込まれる(ステップS4)。武器の変更指示でないときは(ステップS3でNO)、当該処理は実行されずに処理が次に進められる。
【0085】
次に、上記ステップS2で取得された操作データに基づいて、コントローラ7の指示位置(ポインティング座標)が算出される(ステップS5)。ここで、当該指示位置の算出方法はどのようなものであってもよいが、例えば次に示す方法が考えられる。
【0086】
以下、指示位置の算出方法の一例を説明する。コントローラ7から取得される操作データには、上記マーカ座標を示すデータが含まれる。当該データは、マーカ8aおよび8bに対応する2つのマーカ座標を示すので、まず、2つのマーカ座標の中点が算出される。この中点の位置は、撮像画像に対応する平面上の位置を表すための上記xy座標系によって表現される。次に、当該中点の位置を示す座標が、テレビ2の画面上の位置を表すための座標系(x'y'座標系とする)の座標に変換される。この変換は、ある撮像画像から算出される中点の座標を、当該撮像画像が撮像される時のコントローラnの実際の指示位置に対応する画面上の座標に変換する関数を用いて行うことができる。その際、コントローラnの指示位置と、撮像画像内でのマーカ座標の位置とは逆方向に移動することになるので、上下左右が反転するような変換を行う。以上のようにして算出されたx'y'座標値により示される値がコントローラ7の指示座標となる。
【0087】
上記指示座標が算出されれば、次に、標的設定処理が実行される(ステップS6)。当該処理では、指示座標(照準に相当)が敵オブジェクトを指示しているか否かの判定や、指示された敵オブジェクトに「標的設定」を行う処理等が実行される。
【0088】
図18は、上記ステップS6で示した標的設定処理の詳細を示すフローチャートである。図18において、まず、既に「標的設定」されたオブジェクトが存在するか否かが判定される(ステップS11)。具体的には、標的データ129にアクセスし、データが格納されているか否か(標的データ129が空か否か)が判定される。「標的設定」されたオブジェクトが無いときは、標的データ129は空になっている。そのため、データが格納されていないと判定されたときは(ステップS11でNO)、「標的設定」された敵オブジェクトはいないことを示す。この場合は、後述するステップS18へ処理が進められる。
【0089】
一方、データが格納されているときは(ステップS11でYES)、「標的設定」された敵オブジェクトがあることを示すことになる。このときは、補正有効時間内に射撃操作が行われなかったときに「標的設定」を解除するための処理が行われる。まず、補正有効時間1293の値が1減少される(ステップS12)。続いて、補正有効時間1293の値が0であるか否かが判定される(ステップS13)。その結果、補正有効時間1293の値が0になっていれば(ステップS13でYES)、標的データ129がクリアされる(ステップS14)。つまり、補正有効時間が時間切れとなったため、「標的設定」が解除されることになる。一方、補正有効時間1293の値が0になっていないときは(ステップS13でNO)、ステップS14の処理は行われずに、次のステップS15へと処理が進められる。
【0090】
次に、標的設定されている敵オブジェクトが、視界(仮想カメラの視錐台)の外に出たか否かが判定される(ステップS15)。その結果、視界外に出ていると判定されたときは(ステップS15でYES)、標的データ129をクリアする(ステップS16)。つまり、本実施形態では、「標的設定」された敵オブジェクトが画面外に移動したようなときは、「標的設定」を解除する。例えば、画面の端に表示されていた敵オブジェクトが一旦「標的設定」されたものの、すぐに画面外に移動したような場合は、当該敵の「標的設定」は解除される。一方、視界外に出ていないと判定されたときは(ステップS15でNO)、ステップS16の処理は実行されずに、次の処理に進められる。
【0091】
次に、遮り処理が実行される(ステップS17)。この処理では、プレイヤキャラクタ(仮想カメラ)と標的設定された敵オブジェクトとの間に遮蔽物(障害物)があるか否かの判定、および、標的設定された敵オブジェクトが60フレーム以上遮蔽物に遮られている状態が継続したときは、標的設定を解除するための処理が行われる。
【0092】
図19は、上記ステップS17で示した遮り処理の詳細を示すフローチャートである。図19において、まず、仮想ゲーム空間内において、「標的設定」されたオブジェクトと仮想カメラとの間(発射される矢の弾道上)に遮蔽物が存在するか否かが判定される(ステップS21)。遮蔽物が存在していれば(ステップS21でYES)、標的データ129の遮り時間1294に1が加算される(ステップS22)。
【0093】
次に、遮り時間1294が”60”を越えたか否か(つまり、60フレーム分の時間を越えたか否か)が判定される(ステップS23)。当該判定の結果、”60”を越えていれば(ステップS23でYES)、標的データ129をクリアする(ステップS24)。つまり、一旦「標的設定」されたオブジェクトであっても、60フレームの間、遮蔽物で遮られた場合は、「標的設定」が解除されることになる。一方、遮り時間1294が60を越えていないときは(ステップS23でNO)、ステップS24の処理は実行されずに遮り処理が終了する。
【0094】
図18に戻り、遮り処理の次に、チェック処理が実行される(ステップS18)。この処理では、武器の射程判定や指示位置(すなわち、照準カーソル101)が敵オブジェクトに合ったかどうかの判定や、照準が合った場合の標的データ129へのデータの格納(つまり「標的設定」)等の処理が実行される。
【0095】
図20および図21は、上記ステップS18で示したチェック処理の詳細を示すフローチャートである。図20において、まず、敵オブジェクトに照準があっているか否かを判定するための処理が行われる。これは、まず、画面には表示されないチェック用の弾を上記指示位置で示される方向に向けて20フレーム毎に発射する。そして、毎フレーム毎に仮想ゲーム空間内において当該チェック用の弾がいずれかの敵オブジェクトに接触しているか否かを判定し、接触していれば、照準が敵オブジェクトに合っていると判定する。具体的には、まず、上記20フレームをカウントするために用いられる変数であるチェックカウンタから1が減算される(ステップS31)。次に、チェックカウンタが0か否かが判定される(ステップS32)。チェックカウンタが0のときは(ステップS32でYES)、上記指示位置(ポインティング座標)を2次元座標系から3次元座標系に座標変換した後、当該変換後の座標(仮想ゲーム空間内の座標)に向けて、チェック用の弾を発射する処理が実行される(ステップS33)。続いて、チェックカウンタに”20”を設定する(ステップS34)。一方、上記ステップS32の判定で、チェックカウンタが0ではないときは(ステップS32でNO)、ステップS33、S34の処理は実行されずに、ステップS35へ処理が進められる。これにより、20フレーム毎にチェック用の弾を発射するという処理が行われることになる。
【0096】
次に、現在使用中の武器の射程について判定するための処理が行われる。まず、発射されたチェック用の弾の、仮想ゲーム空間内における位置が更新される(ステップS35)。
【0097】
次に、更新後のチェック用の弾の移動距離(弾が発射されてから現在までの移動距離、つまり仮想カメラを基点とする移動距離)が算出される(ステップS36)。
【0098】
次に、算出されたチェック用の弾の移動距離が、現在使用中の武器の射程を越えているか否かが判定される。具体的には、武器マスタ126から現在使用中の武器の最大飛距離1263を取得する(ステップS37)。そして、上記算出された移動距離が最大飛距離1263を越えているか否かが判定される(ステップS38)。
【0099】
当該判定の結果、最大飛距離1263を越えているときは(ステップS38でYES)、現在の武器の射程を越えたことを示すため、仮想ゲーム空間から当該チェック用の弾が削除される(ステップS39)。更に、このとき、標的データ129にデータが格納されていれば、当該標的データ129がクリアされる(ステップS40)。これは、一旦「標的設定」された敵オブジェクトが、武器の射程外に移動したような場合を想定したものである。
【0100】
一方、ステップS38の判定の結果、最大飛距離1263を越えていないと判定されたときは(ステップS38でNO)、ステップS39、S40の処理は実行されずに、次のステップS41へ処理が進められる。
【0101】
次に、チェック用の矢の接触判定、つまり、照準カーソル101がいずれかの敵オブジェクトに合ったか否かを判定するための処理が実行される。まず、チェック用の矢が何れかの登場オブジェクトと接触したか否かが判定される(ステップS41)。接触していないと判定されたときは(ステップS41でNO)、そのままチェック処理が終了する。一方、接触していると判定されたときは(ステップS41でYES)、当該接触している登場オブジェクトに「標的設定」が可能か否かが判定するため標的設定可否判定処理が実行される(ステップS42)。
【0102】
図22は、上記ステップS42で示した標的設定可否判定処理の詳細を示すフローチャートである。図22において、まず、標的データ129が空であるか否か、つまり、既に「標的設定」されている敵が存在するか否かが判定される(ステップS51)。その結果、「標的設定」された敵がいなければ(ステップS51でYES)、「標的設定」が可能と判定される(ステップS54)。一方、「標的設定」された敵が既にいるときは(ステップS51でNO)、今回接触した敵オブジェクトが「標的設定」済の敵オブジェクトと同じであるか否か、オブジェクトID1281等に基づいて判定される(ステップS52)。これは、隣り合っている敵オブジェクトの間で照準カーソル101が動かされるような場合を想定したものである。その結果、同じ敵オブジェクトであると判定されたときは(ステップS52でYES)、「標的設定」は可能と判定される(ステップS54)。一方、同じ敵オブジェクトではないと判定されたときは(ステップS52でNO)、「標的設定」はできないと判定される(ステップS53)。以上で、標的設定可否判定処理は終了する。
【0103】
図21に戻り、ステップS42の標的設定可否判定処理の次に、当該処理の結果に基づいて、接触したオブジェクトに「標的設定」が可能か否かが判定される(ステップS43)。その結果、「標的設定」が可能であると判定されたときは(ステップS43でYES)、標的データ129にデータが設定される(ステップS44)。具体的には、上記接触している敵オブジェクトのオブジェクトID1281および現在使用中の武器の武器ID1261が標的データ129にコピーされる。更に、補正有効時間1293に初期値、ここでは”300”という値が格納される。更に、遮り時間1294に”0”が格納される。
【0104】
一方、ステップS43の判定の結果、接触したオブジェクトに「標的設定」ができないと判定されたときは(ステップS43でNO)、上記ステップS44の処理は実行されずに、チェック処理が終了する。図18に戻り、チェック処理が終了すると、標的設定処理も終了する。
【0105】
図17に戻り、ステップS6の標的設定処理が終われば、次に、射撃処理が実行される(ステップS7)。図23および図24は、上記ステップS7で示した射撃処理の詳細を示すフローチャートである。図23において、まず、ステップS2で取得された操作データに基づき、射撃操作(矢などの、使用中の射撃武器の弾を発射する操作。ここでは、説明の簡略化のため、弾を全て「矢」と表現する)が行われたか否かが判定される(ステップS61)。当該判定の結果、射撃操作が行われていないと判定されたときは(ステップS61でNO)、後述のステップS66へと処理が進められる。
【0106】
一方、ステップS61の判定の結果、射撃操作が行われていると判定されたときは(ステップS61でYES)、次に、標的データ129にデータが格納されているか否かが判定される。つまり、「標的設定」されたオブジェクトが存在するか否かが判定される(ステップS62)。「標的設定」されたオブジェクトが存在しないと判定されたときは(ステップS62でNO)、現在の指示位置(照準の位置)に向けて矢を発射する処理が行われる(ステップS65)。一方、「標的設定」されたオブジェクトが存在すると判定されたときは(ステップS62でYES)、「標的設定」された敵オブジェクトに向けて矢を発射する処理が行われる(ステップS63)。続いて、補正有効時間1293が初期化される(ステップS64)。本実施形態では、上記のように初期値として”300”という値が格納される。このように、補正有効時間を初期化(つまり、再設定)することにより、射撃操作を継続すれば「標的設定」された敵オブジェクトに向けて矢を発射し続けることが可能となる。
【0107】
次に、発射された矢の仮想ゲーム空間内における位置が更新される(ステップS66)。この「発射された矢」には、以前の処理ループにおいて発射された矢も含まれる。換言すれば、現在の処理ループでの仮想ゲーム空間内に残っている矢の全てについて、その位置が更新される。
【0108】
次に、上記仮想ゲーム空間内に残っている、発射された矢のそれぞれの移動距離が算出される(ステップS67)。例えば矢を立て続けに3本連射し、3本ともまだ敵オブジェクトに届いてないような場合は、当該3本の矢のそれぞれの移動距離が算出される。
【0109】
次に、算出されたそれぞれの矢の移動距離について、使用中の武器の最大飛距離を越えたか否かが判定される(ステップS68)。続いて、最大飛距離を越えた矢が1本以上あるか否かが判定される(ステップS69)。1本以上あれば(ステップS69でYES)、飛距離を越えた矢については、仮想ゲーム空間上から削除される(ステップS70)。1本もないときは(ステップS69でNO)、ステップS70の処理は実行されずに、次のステップS71に処理が進められる。
【0110】
次に、発射したそれぞれの矢と敵オブジェクトとの接触を判断するための処理が行われる(ステップS71)。続いて、当該処理の結果、いずれかの矢が敵オブジェクトと接触したか否かが判定される(ステップS72)。その結果、接触していれば(ステップS72でYES)、命中処理が実行される(ステップS73)。この処理では、次のような処理が実行される。まず、敵オブジェクトに接触した矢を仮想ゲーム空間から削除する処理が実行される。また、当該接触した矢を発射した武器の攻撃力に応じて、上記接触した敵オブジェクトのHPが減算される。続けて、当該減算の結果、当該敵オブジェクトのHPが”0”になったか否かが判定され、”0”になったと判定されたときは、標的データ129がクリアされる。更に、登場オブジェクトデータ128から、当該接触した敵オブジェクトのデータが削除される。そして、当該敵オブジェクトが倒される様子を後述の描画処理において複数のフレームにわたってアニメーションで表示するための処理が実行される。
【0111】
一方、ステップS72の判定で、いずれの矢も敵オブジェクトと接触していないと判定されれば、上記ステップS73の処理は実行されずに、射撃処理は終了する。
【0112】
図17に戻り、ステップS7の後、描画処理が行われる(ステップS8)。すなわち、仮想カメラで仮想空間を撮影した画像をゲーム画像としてテレビ2に表示する処理がされる。ステップS8の後、ステップS9において、ゲーム終了か否かが判断され、YESの場合、ゲーム処理を終了し、NOの場合、ステップS2に戻って、ゲーム処理が繰り返される。以上で、ゲーム装置本体3によって実行されるゲーム処理の説明を終了する。
【0113】
このように、本実施形態では、敵オブジェクトに一旦照準が合えば「標的設定」がなされ、所定時間内にプレイヤが射撃操作を行っている間は、当該敵オブジェクトに向けての射撃が行われる。そのため、同じ敵オブジェクトを狙う射撃操作を繰り返しているうちに、プレイヤが気付かないまま照準がずれて弾が当たらなくなることを防ぐことができる。これにより、プレイヤが狙っているつもりの箇所と実際の照準の箇所のずれを感じさせないようにすることができ、プレイヤにストレスを感じさせずにゲームをプレイさせることが可能となる。
【0114】
また、「標的設定」された敵オブジェクトが、所定時間以上遮蔽物で遮られていれば、「標的設定」を解除しているため、ゲーム内容にリアリティをもたせ、ゲームの興趣を高めることが可能となる。
【0115】
なお、上述した実施形態では、例えばステップS44やS64の処理において、補正有効時間として一律に”300”という値を設定する例を示した。この補正有効時間の値については、ゲーム内容などに応じて適宜変更するようにしてもよい。例えば、ゲームの設定の一つとして、ゲームの「難易度」をプレイヤが設定できるようにしておき、ゲームの難度が高く設定されたときは、補正有効時間を”100”とし、ゲームの難度が低く設定されたときは、”500”と設定するようにしてもよい。この場合は、難易度設定が可能な画面を表示して、プレイヤにゲームの難易度を設定させる。そして、当該設定内容を難易度設定データとして外部メインメモリ12に記憶させる。そして、上記ステップS1の初期化処理において、当該難易度設定データから難易度設定を取得し、その内容に応じて、補正有効時間を設定するようにすればよい。これにより、プレイヤの腕前に合わせてゲームを楽しめるようにすることが可能となる。
【0116】
また、使用する武器の種類によって、それぞれ異なる補正有効時間が設定されるようにしても良い。例えば、「クロスボウ」を使用しているときは、”300”、これとは別の武器を使用したときは”400”と設定されるようにしてもよい。この場合は、武器マスタ126に、「補正有効時間」を示す項目を定義するようにしておけばよい。そして、上記ステップS44やS66の処理において、当該項目を読み出して、標的データ129に設定するようにすればよい。これにより、使用する武器に個性を持たせ、使用する武器の使い分け等の戦略性をゲームに持たせて、ゲームの興趣を高めることが可能となる。
【0117】
更に、仮想カメラの動きの変化量に応じて、異なる補正有効時間が設定されるようにしても良い。具体的には、仮想カメラの向きの角度が大きく変わったような場合には、補正有効時間の値を大きくして設定するようにしてもよい。例えば、プレイヤが地上にいる敵オブジェクトを射撃しているときに、急に上を向いて、空を飛んでいる「鳥」のオブジェクトを狙い撃とうとしたような場合には、当該「鳥」オブジェクトを「標的設定」する際に、補正有効時間の値に所定の値を加算して設定するようにしてもよい。この場合は、数フレームの間にかかるカメラの向き(角度)の変化量を検出し、この値が所定値を越えているとき、すなわち、カメラの向きが大きく変化した場合(急に上を向いた場合等)には、その武器の補正有効時間の初期値に所定の値を加算した値を標的データ129に設定するようにすればよい。上記のように急に上を向いた場合は、一般的に狙いが付けにくくなるが、このようにすることで、急に仮想カメラの向きが大きく変わるような操作があった場合でも、敵オブジェクトを狙い撃ちすることが容易になり、プレイヤにストレスを与えることを軽減することができる。
【0118】
また、ゲーム内の場面に応じて、異なる補正有効時間が設定されるようにしても良い。例えば、仮想ゲーム空間内において、「昼」(敵オブジェクトを視認しやすい)のときと「夜」(敵オブジェクトを視認しにくい)のときとでは、「夜」のときのほうが補正有効時間が長くなるように設定してもよい。また、仮想ゲーム空間内において、「平原」(見晴らしがよく、敵オブジェクトを視認しやすい)と「森」(見通しが悪く、敵オブジェクトを視認しにくい)とでは、「森」のほうが補正有効時間が長くなるように設定してもよい。この場合は、「昼」「夜」や、「平原」「森」等のゲーム内の場面を判定するようにし、各場面に応じて、補正有効時間を加減算するようにすればよい。これにより、ゲームの難度を調整することができ、また、ゲーム中の各場面に個性を持たせることができ、プレイヤがゲームに対する興味を失うことを防ぐことが可能となる。
【0119】
更に、敵オブジェクトの大きさに応じて、異なる補正有効時間が設定されるようにしても良い。特に、サイズが小さい敵オブジェクトに対しては、サイズが大きな敵オブジェクトよりも補正有効時間が長くなるように設定することが好ましい。この場合は、敵オブジェクトのサイズについての情報をオブジェクトマスタ127に定義しておき、当該サイズに応じて、補正有効時間の初期値に所定の値を増加あるいは減少してから設定するようにすればよい。これにより、一般的には狙いが付けにくい、サイズの小さな敵オブジェクトであっても、照準カーソル101を一瞬でも合わせることができれば、その後の狙い撃ちが容易となるため、プレイヤにストレスを感じさせることを防いで、ゲームへの興味が失われないようにすることができる。
【0120】
また、補正有効時間内で射撃操作を継続しているときに、使用する射撃武器を変更できるようにしてもよい。この場合は、補正有効時間における操作であることを前提として、武器の変更操作が行われたか否かを判定し、変更が行われたときは、標的データ129の武器ID1292を変更後の武器を示す武器IDに更新するようにすればよい。また、上記のように、武器毎に補正有効時間が設定されるようにした場合は、武器の変更直後は従前の武器の補正有効時間をそのまま引き継ぎ、武器変更後に初めて射撃操作が行われたときに、変更後の武器の補正有効時間を標的データ129に設定するようにすればよい。
【0121】
また、同時に2種類の射撃武器を使用できるようにしてもよい。この場合、照準カーソル101は1つだけ表示しておき、武器の切り替え操作で武器を切り替えれるようにすればよい。例えば、操作ボタン72iを射撃操作に割り当て、操作ボタン72dを武器の切り替え操作に割り当てたとすると、操作ボタン72dを押しながら操作ボタン72iを押すと、第1の射撃武器を用いて射撃し、操作ボタン72iのみを押すと、第2の射撃武器を用いて攻撃できるようにしてもよい。この場合、補正有効時間については、両武器で共用するようにしてもよい。これにより、強敵オブジェクトに対して狙いを外さないまま、2種類の射撃武器で射撃し続けることが可能となり、ゲームの興趣を高めることが可能となる。もちろん、コントローラを2つ用いて、それぞれのコントローラについて上述のような照準を表示するようにして、各コントローラ毎に上述の実施形態で説明した処理を行っても良い。これにより、例えば2体の強敵オブジェクトが同時に出現したような場合に、2体同時に攻撃でき、かつ、2体共に狙いを外さずに弾を命中させ続けることが可能になるため、ゲームの爽快感が増して、よりゲームの興趣を高めることができる。
【0122】
また、ゲーム装置は、上記実施形態に限定されず、モニタが別体に構成されたゲーム装置、モニタが一体に構成されたゲーム装置、ゲームプログラムを実行することによってゲーム装置として機能するパーソナルコンピュータやワークステーションなどにも同様に適用することができる。
【産業上の利用可能性】
【0123】
本発明にかかるゲームプログラムおよびゲーム装置は、射的ゲーム等においてゲームの興趣を高めることができ、ゲーム装置やパーソナルコンピュータ等に有用である。
【図面の簡単な説明】
【0124】
【図1】本発明の一実施形態に係るゲームシステム1を説明するための外観図
【図2】図1のゲーム装置本体3の機能ブロック図
【図3】図1のコントローラ7の上面後方から見た斜視図
【図4】図3のコントローラ7を下面前方から見た斜視図
【図5】図3のコントローラ7の上ハウジングを外した状態を示す斜視図
【図6】図3のコントローラ7の下ハウジングを外した状態を示す斜視図
【図7】図3のコントローラ7の構成を示すブロック図
【図8】本実施形態で想定するゲーム画面の一例
【図9】操作方法の一例を説明するための図
【図10】本実施形態で想定するゲーム画面の一例
【図11】本実施形態で想定するゲーム画面の一例
【図12】外部メインメモリ12のメモリマップを示す図
【図13】武器マスタ126のデータ構造の一例を示した図
【図14】オブジェクトマスタ127のデータ構造の一例を示した図
【図15】登場オブジェクトデータ128のデータ構造の一例を示した図
【図16】標的データ129のデータ構造の一例を示した図
【図17】本実施形態にかかるゲーム処理の全体処理を示すフローチャート
【図18】図17のステップS6で示した標的設定処理の詳細を示すフローチャート
【図19】図18のステップS17で示した遮り処理の詳細を示すフローチャート
【図20】図18のステップS18で示したチェック処理の詳細を示すフローチャート
【図21】図18のステップS18で示したチェック処理の詳細を示すフローチャート
【図22】図21のステップS42で示した標的設定可否判定処理の詳細を示すフローチャート
【図23】図17のステップS7で示した射撃処理の詳細を示すフローチャート
【図24】図17のステップS7で示した射撃処理の詳細を示すフローチャート
【符号の説明】
【0125】
1…ゲームシステム
2…モニタ
2a…スピーカ
3…ゲーム装置本体
4…光ディスク
7…コントローラ
10…CPU
11…システムLSI
11a…入出力プロセッサ
11b…GPU
11c…DSP
11d…VRAM
11e…内部メインメモリ
12…外部メインメモリ
13…ROM/RTC
14…ディスクドライブ
15…AV−IC
16…AVコネクタ
17…フラッシュメモリ
18…無線通信モジュール
19…無線コントローラモジュール
20…拡張コネクタ
21…外部メモリカード用コネクタ
22…アンテナ
23…アンテナ
24…電源ボタン
25…リセットボタン
26…イジェクトボタン
71…ハウジング
72…操作部
73…コネクタ
74…撮像情報演算部
741…赤外線フィルタ
742…レンズ
743…撮像素子
744…画像処理回路
75…通信部
751…マイコン
752…メモリ
753…無線モジュール
754…アンテナ
700…基板
701…加速度センサ
702…LED
703…水晶振動子
704…バイブレータ
707…サウンドIC
708…アンプ

【特許請求の範囲】
【請求項1】
入力装置からの入力に基づいて、仮想空間内に存在するオブジェクトに対して射撃を行う様子をゲーム画面に表示するゲーム装置のコンピュータに実行させるゲームプログラムであって、
前記コンピュータを、
前記ゲーム画面上における照準の位置を示す照準座標の入力を前記入力装置から受け付ける照準座標受付手段と、
前記照準座標受付手段で受け付けた前記照準座標に基づいて、前記オブジェクトに前記照準が重なったか否かを判定する照準判定手段と、
前記照準判定手段によって照準がオブジェクトに重なったと判定されたとき、当該照準の重なったオブジェクトが射撃の標的となっている時間である標的時間を当該オブジェクトに関連づけて設定する標的設定手段と、
前記仮想空間内に対する射撃操作を前記入力装置から受け付ける射撃操作受付手段と、
前記標的設定手段が前記オブジェクトに前記標的時間を設定してから当該標的時間内に前記射撃入力受付手段が射撃操作を受け付けたときは、前記照準の位置にかかわらず、前記仮想空間内において当該標的時間が設定されたオブジェクトに対する射撃を行う射撃処理手段と、
前記標的時間内に前記射撃入力受付手段が射撃操作を受け付けたときは、前記射撃の標的となっているオブジェクトに当該標的時間を再度設定する標的再設定手段として機能させる、ゲームプログラム。
【請求項2】
前記射撃処理手段は、前記標的時間経過後に射撃操作を受け付けたときは、前記照準の位置に基づいて射撃を行う、請求項1に記載のゲームプログラム。
【請求項3】
前記標的設定手段は、前記ゲームプログラムによって実行されるゲーム処理の内容に応じて、前記標的時間を変化させる、請求項1または請求項2に記載のゲームプログラム。
【請求項4】
前記ゲームプログラムは、前記コンピュータを、
前記仮想空間内において射撃を行うための道具に関するデータであり、前記標的時間が当該射撃道具毎に異なる値で設定されている射撃道具データを所定の記憶部に複数記憶する射撃道具データ記憶手段と、
前記射撃操作で使用する前記射撃道具を選択する射撃道具選択手段として更に機能させ、
前記標的設定手段は、前記射撃道具選択手段によって選択された射撃道具に対応する射撃道具データを参照して前記標的時間を設定する、請求項3に記載のゲームプログラム。
【請求項5】
前記ゲームプログラムは、前記コンピュータを、前記ゲームの難度を設定するための難度設定手段として更に機能させ、
前記標的設定手段は、前記難度設定手段によって設定されたゲームの難度に基づいて、難度毎に異なった時間を前記標的時間として設定する、請求項3に記載のゲームプログラム。
【請求項6】
前記標的設定手段は、前記難度設定手段によってゲームの難度が低く設定されるにつれて、前記標的時間が長くなるように設定する、請求項5に記載のゲームプログラム。
【請求項7】
前記ゲームプログラムは、前記コンピュータを、前記オブジェクトの仮想空間内における大きさを示すサイズデータを所定の記憶部に記憶するサイズデータ記憶手段として更に機能させ、
前記標的設定手段は、前記照準が重なったオブジェクトの前記サイズデータに基づいて前記標的時間を設定する、請求項3に記載のゲームプログラム。
【請求項8】
前記標的設定手段は、前記照準が重なったオブジェクトの大きさが小さいほど、前記標的時間が長くなるように設定する、請求項7に記載のゲームプログラム。
【請求項9】
前記ゲームプログラムは、前記コンピュータを、前記仮想空間内で射撃を行うための場面に関する場面データを所定の記憶部に複数記憶する場面データ記憶手段として更に機能させ、
前記標的設定手段は、前記場面データに応じて前記標的時間が異なるように設定する、請求項3に記載のゲームプログラム。
【請求項10】
前記ゲームプログラムは、前記コンピュータを、
前記仮想空間内において、前記標的設定されたオブジェクトと前記照準座標との間に遮蔽物が存在している時間である遮蔽時間を計測する遮蔽時間計測手段と、
前記遮蔽時間が所定値を越えたとき、前記標的時間の設定を削除する標的解除手段として更に機能させる、請求項1〜9のいずれかに記載のゲームプログラム。
【請求項11】
入力装置からの入力に基づいて、仮想空間内に存在するオブジェクトに対して射撃を行う様子をゲーム画面に表示するゲーム装置であって、
前記ゲーム画面上における照準の位置を示す照準座標の入力を前記入力装置から受け付ける照準座標受付手段と、
前記照準座標受付手段で受け付けた前記照準座標に基づいて、前記オブジェクトに前記照準が重なったか否かを判定する照準判定手段と、
前記照準判定手段によって照準がオブジェクトに重なったと判定されたとき、当該照準の重なったオブジェクトが射撃の標的となっている時間である標的時間を当該オブジェクトに関連づけて設定する標的設定手段と、
前記仮想空間内に対する射撃操作を前記入力装置から受け付ける射撃操作受付手段と、
前記標的設定手段が前記オブジェクトに前記標的時間を設定してから当該標的時間内に前記射撃入力受付手段が射撃操作を受け付けたときは、前記照準の位置にかかわらず、前記仮想空間内において当該標的時間が設定されたオブジェクトに対する射撃を行う、射撃処理手段と、
前記標的時間内に前記射撃入力受付手段が射撃操作を受け付けたときは、前記射撃の標的となっているオブジェクトに当該標的時間を再度設定する標的再設定手段とを備える、ゲーム装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate


【公開番号】特開2009−11657(P2009−11657A)
【公開日】平成21年1月22日(2009.1.22)
【国際特許分類】
【出願番号】特願2007−178714(P2007−178714)
【出願日】平成19年7月6日(2007.7.6)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】