ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム方法
【課題】入力装置の姿勢に基づいて実行されるゲームにおいて、操作性を向上させること。
【解決手段】入力装置のジャイロセンサユニットから出力される角速度データに基づいて入力装置の姿勢(ピッチ角、ロール角、ヨー角)が検出される。そして、ピッチ角が第1範囲内か第2範囲内かが判断され、ピッチ角が第1範囲内である場合にはロール角に応じてオブジェクトの姿勢が更新され、ピッチ角が第2範囲内である場合にはヨー角に応じてオブジェクトの姿勢が更新される。
【解決手段】入力装置のジャイロセンサユニットから出力される角速度データに基づいて入力装置の姿勢(ピッチ角、ロール角、ヨー角)が検出される。そして、ピッチ角が第1範囲内か第2範囲内かが判断され、ピッチ角が第1範囲内である場合にはロール角に応じてオブジェクトの姿勢が更新され、ピッチ角が第2範囲内である場合にはヨー角に応じてオブジェクトの姿勢が更新される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、入力装置の姿勢に基づいてゲーム処理を行うゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム方法に関する。
【背景技術】
【0002】
従来、プレイヤの操作するコントローラの姿勢に応じて仮想ゲーム世界内におけるオブジェクトを制御するものが知られている。
【0003】
例えば、特許文献1には、多軸加速度センサーと多軸ジャイロセンサーを備えたコントローラを用いてゲームを行うゲーム装置が開示されている。具体的には、多軸加速度センサーの出力に基づいてゲーム内のオブジェクトである刀を振る制御が行われ、多軸ジャイロセンサーの出力に基づいて、刀をひねったり傾けたりする制御が行われる。
【0004】
また、特許文献2には、ジャイロセンサで検出したコントローラの姿勢をゲーム空間内のオブジェクトの姿勢に反映するゲーム装置が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2000−308756号公報(段落[0019]〜[0021])
【特許文献2】特開2010−17389号公報(要約、段落[0195])
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、特許文献1および特許文献2のゲーム装置では、コントローラの姿勢に対するオブジェクトの姿勢が一義的に決められているため、コントローラの自由な操作ができなかった。例えば、オブジェクトに対して所定の動作をさせるために、コントローラをひねる操作を好むプレイヤとコントローラを左右に振る操作を好むプレイヤがいたとしても、特許文献1および特許文献2のゲーム装置では、いずれかの操作のみを許容するしかなかった。
【0007】
それゆえに、この発明の主たる目的は、入力装置の姿勢に基づいて実行されるゲームにおいて、操作性を向上させることである。
【課題を解決するための手段】
【0008】
上記の目的を達成するために、本発明は以下の構成を採用した。
【0009】
本発明のゲームプログラムは、入力装置の姿勢に基づいてゲーム処理を行うゲーム装置のコンピュータを、姿勢検出手段、姿勢判断手段、およびゲーム処理手段として機能させる。上記姿勢検出手段は、上記入力装置の姿勢を検出する。上記姿勢判断手段は、上記入力装置の姿勢が第1条件を満たしているか第2条件を満たしているかを判断する。上記ゲーム処理手段は、上記入力装置の姿勢が上記第1条件を満たしている間は、上記入力装置の第1軸周りの姿勢の変化に応じて特定のゲームパラメータを更新し、上記入力装置の姿勢が上記第2条件を満たしている間は、上記入力装置の第2軸周りの姿勢の変化に応じて上記特定のゲームパラメータを更新する。
これにより、特定のゲームパラメータを入力装置の第1軸周りの姿勢の変化に基づいて更新する第1の入力操作モードと、当該特定のゲームパラメータを入力装置の第2軸周りの姿勢の変化に基づいて更新する第2の入力操作モードが、当該入力装置の姿勢に応じて自動的に切り替わるため、入力装置の姿勢に関わらず、常に良好な操作性が得られるようになる。また、プレイヤは自分の好みにあった入力操作モードで入力操作ができるので、操作の自由度が増す。
【0010】
なお、上記姿勢判断手段は、上記入力装置の第3軸周りの姿勢が上記第1条件を満たしているか上記第2条件を満たしているかを判断してもよい。
これにより、入力装置の第3軸周りの姿勢に基づいて、上記第1の入力操作モードと上記第2の入力操作モードを自動的に切り替えることができる。
【0011】
また、上記ゲーム処理手段は、上記入力装置の姿勢が上記第1条件と上記第2条件のいずれも満たしていない間は、上記入力装置の上記第1軸周りの姿勢の変化も、上記入力装置の上記第2軸周りの姿勢の変化も、上記特定のゲームパラメータに反映させないようにしてもよい。
これにより、入力装置の姿勢が第1条件と第2条件のいずれも満たさないときは、上記第1の入力操作モードも上記第2の入力操作モードも無効にすることができる。
【0012】
また、上記入力装置は角速度センサを含み、上記姿勢検出手段は、上記角速度センサから出力される角速度データに基づいて、上記入力装置の姿勢を検出してもよい。
これにより、入力装置の所定軸周りの姿勢の変化を容易に検出することができる。
【0013】
また、上記角速度センサは、上記入力装置の上記第1軸周りの角速度、上記第2軸周りの角速度、および上記第3軸周りの角速度を検出可能であり、上記姿勢検出手段は、上記角速度センサによって検出される上記入力装置の上記第1軸周りの角速度、上記第2軸周りの角速度、および上記第3軸周りの角速度に基づいて、上記入力装置の上記第1軸周りの姿勢、上記第2軸周りの姿勢、および上記第3軸周りの姿勢を検出してもよい。
【0014】
また、上記ゲーム処理手段は、所定の基準姿勢からの上記入力装置の上記第1軸周りの姿勢の変化量が、所定の閾値を超えたかどうかを判断する第1判断手段と、所定の基準姿勢からの上記入力装置の上記第2軸周りの姿勢の変化量が、所定の閾値を超えたかどうかを判断する第2判断手段とを含み、上記ゲーム処理手段は、上記入力装置の姿勢が上記第1条件を満たしている間は、上記第1判断手段の判断結果が肯定である場合に限り、上記入力装置の第1軸周りの姿勢の変化に応じて上記特定のゲームパラメータを更新し、上記入力装置の姿勢が上記第2条件を満たしている間は、上記第2判断手段の判断結果が肯定である場合に限り、上記入力装置の第2軸周りの姿勢の変化に応じて上記特定のゲームパラメータを更新してもよい。
これにより、基準姿勢からの姿勢の変化量が所定の閾値を超えたときに限って、入力装置の姿勢に応じて特定のゲームパラメータの更新が行われるので、手振れなどによる誤制御を防止することができる。
【0015】
また、上記ゲームプログラムは、上記コンピュータを、上記特定のゲームパラメータに応じたゲーム画像を生成するゲーム画像生成手段としてさらに機能させてもよい。
【0016】
また、上記特定のゲームパラメータは、ゲーム世界の特定のオブジェクト(90)の位置、姿勢及び動作の少なくともいずれか1つに影響を与えるゲームパラメータであり、上記ゲーム画像生成手段は、上記特定のオブジェクトを含むゲーム画像を生成してもよい。
【0017】
また、上記ゲーム画像生成手段は、上記姿勢判断手段の判断結果を示す画像(91)を含む上記ゲーム画像を生成してもよい。
これにより、現在の入力操作モードが上記第1の入力操作モードなのか上記第2の入力操作モードなのかをプレイヤに提示することができる。
【0018】
本発明のゲーム装置は、入力装置の姿勢に基づいてゲーム処理を行うゲーム装置であって、姿勢検出手段、姿勢判断手段、およびゲーム処理手段を備える。上記姿勢検出手段は、上記入力装置の姿勢を検出する。上記姿勢判断手段は、上記入力装置の姿勢が第1条件を満たしているか第2条件を満たしているかを判断する。上記ゲーム処理手段は、上記入力装置の姿勢が上記第1条件を満たしている間は、上記入力装置の第1軸周りの姿勢の変化に応じて特定のゲームパラメータを更新し、上記入力装置の姿勢が上記第2条件を満たしている間は、上記入力装置の第2軸周りの姿勢の変化に応じて上記特定のゲームパラメータを更新する。
【0019】
本発明のゲームシステムは、入力装置の姿勢に基づいてゲーム処理を行うゲームシステムであって、姿勢検出手段、姿勢判断手段、およびゲーム処理手段を備える。上記姿勢検出手段は、上記入力装置の姿勢を検出する。上記姿勢判断手段は、上記入力装置の姿勢が第1条件を満たしているか第2条件を満たしているかを判断する。上記ゲーム処理手段は、上記入力装置の姿勢が上記第1条件を満たしている間は、上記入力装置の第1軸周りの姿勢の変化に応じて特定のゲームパラメータを更新し、上記入力装置の姿勢が上記第2条件を満たしている間は、上記入力装置の第2軸周りの姿勢の変化に応じて上記特定のゲームパラメータを更新する。
【0020】
本発明のゲーム方法は、入力装置の姿勢に基づいてゲーム処理を行うゲーム方法であって、姿勢検出ステップ、姿勢判断ステップ、およびゲーム処理ステップを備える。上記姿勢検出ステップでは、上記入力装置の姿勢を検出する。上記姿勢判断ステップでは、上記入力装置の姿勢が第1条件を満たしているか第2条件を満たしているかを判断する。上記ゲーム処理ステップは、上記入力装置の姿勢が上記第1条件を満たしている間は、上記入力装置の第1軸周りの姿勢の変化に応じて特定のゲームパラメータを更新し、上記入力装置の姿勢が上記第2条件を満たしている間は、上記入力装置の第2軸周りの姿勢の変化に応じて上記特定のゲームパラメータを更新する。
【発明の効果】
【0021】
この発明によれば、入力装置の姿勢に基づいて実行されるゲームにおいて、操作性を向上させることができる。
【図面の簡単な説明】
【0022】
【図1】ゲームシステムの外観図
【図2】ゲーム装置の機能ブロック図
【図3】入力装置の外観構成を示す斜視図
【図4】コントローラの外観構成を示す斜視図
【図5】コントローラの内部構造を示す図
【図6】コントローラの内部構造を示す図
【図7】入力装置の構成を示すブロック図
【図8】ゲーム画像の一例を示す図
【図9】ゲーム画像の一例を示す図
【図10】ゲーム画像の一例を示す図
【図11】メインメモリのメモリマップ
【図12】メイン処理のフローチャート
【図13】第1制御処理のフローチャート
【図14】第2制御処理のフローチャート
【図15】ゲームプレイ時のプレイヤの手を横から見た図
【図16】ゲームプレイ時のプレイヤの手を横から見た図
【図17】第1範囲及び第2範囲の一例を示す図
【図18】ロール角θrを示す図
【図19】ヨー角θyを示す図
【図20】第1範囲及び第2範囲の一例を示す図
【図21】第1範囲及び第2範囲の一例を示す図
【図22】変形例におけるゲーム画像の一例を示す図
【図23】変形例におけるゲーム画像の一例を示す図
【発明を実施するための形態】
【0023】
[ゲームシステムの全体構成]
図1を参照して、本発明の一実施形態に係るゲーム装置を含むゲームシステム1について説明する。図1は、ゲームシステム1の外観図である。以下、据置型のゲーム装置を一例にして、本実施形態のゲーム装置及びゲームプログラムについて説明する。図1において、ゲームシステム1は、テレビジョン受像器(以下、単に「テレビ」と記載する)2、ゲーム装置3、光ディスク4、入力装置8、及びマーカ部6を含む。本システムは、入力装置8を用いたゲーム操作に基づいてゲーム装置3でゲーム処理を実行するものである。
【0024】
ゲーム装置3には、当該ゲーム装置3に対して交換可能に用いられる情報記憶媒体の一例である光ディスク4が脱着可能に挿入される。光ディスク4には、ゲーム装置3において実行されるためのゲームプログラムが記憶されている。ゲーム装置3の前面には光ディスク4の挿入口が設けられている。ゲーム装置3は、挿入口に挿入された光ディスク4に記憶されているゲームプログラムを読み出して実行することによってゲーム処理を実行する。
【0025】
ゲーム装置3には、表示装置の一例であるテレビ2が接続コードを介して接続される。テレビ2は、ゲーム装置3において実行されるゲーム処理の結果得られるゲーム画像を表示する。また、テレビ2の画面の周辺(図1では画面の上側)には、マーカ部6が設置される。マーカ部6は、その両端に2つのマーカ6R及び6Lを備えている。マーカ6R(マーカ6Lも同様)は、具体的には1以上の赤外LEDであり、テレビ2の前方に向かって赤外光を出力する。マーカ部6はゲーム装置3に接続されており、ゲーム装置3はマーカ部6が備える各赤外LEDの点灯を制御することが可能である。
【0026】
入力装置8は、自機に対して行われた操作の内容を示す操作データをゲーム装置3に与えるものである。本実施形態では、入力装置8はコントローラ5とジャイロセンサユニット7とを含む。詳細は後述するが、入力装置8は、コントローラ5に対してジャイロセンサユニット7が着脱可能に接続されている構成である。コントローラ5とゲーム装置3とは無線通信によって接続される。本実施形態では、コントローラ5とゲーム装置3との間の無線通信には例えばBluetooth(ブルートゥース)(登録商標)の技術が用いられる。なお、他の実施形態においてはコントローラ5とゲーム装置3とは有線で接続されてもよい。
【0027】
[ゲーム装置3の内部構成]
次に、図2を参照して、ゲーム装置3の内部構成について説明する。図2は、ゲーム装置3の構成を示すブロック図である。ゲーム装置3は、CPU10、システムLSI11、外部メインメモリ12、ROM/RTC13、ディスクドライブ14、及びAV−IC15等を有する。
【0028】
CPU10は、光ディスク4に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。CPU10は、システムLSI11に接続される。システムLSI11には、CPU10の他、外部メインメモリ12、ROM/RTC13、ディスクドライブ14及びAV−IC15が接続される。システムLSI11は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。システムLSI11の内部構成については後述する。揮発性の外部メインメモリ12は、光ディスク4から読み出されたゲームプログラムや、フラッシュメモリ17から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、CPU10のワーク領域やバッファ領域として用いられる。ROM/RTC13は、ゲーム装置3の起動用のプログラムが組み込まれるROM(いわゆるブートROM)と、時間をカウントするクロック回路(RTC:Real Time Clock)とを有する。ディスクドライブ14は、光ディスク4からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ11e又は外部メインメモリ12に読み出したデータを書き込む。
【0029】
また、システムLSI11には、入出力プロセッサ(I/Oプロセッサ)11a、GPU(Graphics Processor Unit)11b、DSP(Digital Signal Processor)11c、VRAM11d、及び内部メインメモリ11eが設けられる。図示は省略するが、これらの構成要素11a〜11eは内部バスによって互いに接続される。
【0030】
GPU11bは、描画手段の一部を形成し、CPU10からのグラフィクスコマンド(作画命令)に従って画像を生成する。VRAM11dは、GPU11bがグラフィクスコマンドを実行するために必要なデータ(ポリゴンデータやテクスチャデータ等のデータ)を記憶する。画像が生成される際には、GPU11bは、VRAM11dに記憶されたデータを用いて画像データを作成する。
【0031】
DSP11cは、オーディオプロセッサとして機能し、内部メインメモリ11eや外部メインメモリ12に記憶されるサウンドデータや音波形(音色)データを用いて、音声データを生成する。
【0032】
上述のように生成された画像データ及び音声データは、AV−IC15によって読み出される。AV−IC15は、読み出した画像データをAVコネクタ16を介してテレビ2に出力するとともに、読み出した音声データを、テレビ2に内蔵されるスピーカ2aに出力する。これによって、画像がテレビ2に表示されるとともに音がスピーカ2aから出力される。
【0033】
入出力プロセッサ11aは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ11aは、フラッシュメモリ17、無線通信モジュール18、無線コントローラモジュール19、拡張コネクタ20、及びメモリカード用コネクタ21に接続される。無線通信モジュール18にはアンテナ22が接続され、無線コントローラモジュール19にはアンテナ23が接続される。
【0034】
入出力プロセッサ11aは、無線通信モジュール18及びアンテナ22を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ11aは、定期的にフラッシュメモリ17にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、無線通信モジュール18及びアンテナ22を介してネットワークに送信する。また、入出力プロセッサ11aは、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ22及び無線通信モジュール18を介して受信し、受信したデータをフラッシュメモリ17に記憶する。CPU10はゲームプログラムを実行することにより、フラッシュメモリ17に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ17には、ゲーム装置3と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置3を利用してプレイしたゲームのセーブデータ(ゲームの結果データ又は途中データ)が記憶されてもよい。
【0035】
また、入出力プロセッサ11aは、コントローラ5から送信される操作データをアンテナ23及び無線コントローラモジュール19を介して受信し、内部メインメモリ11e又は外部メインメモリ12のバッファ領域に記憶(一時記憶)する。
【0036】
さらに、入出力プロセッサ11aには、拡張コネクタ20及びメモリカード用コネクタ21が接続される。拡張コネクタ20は、USBやSCSIのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール18に替えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ21は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ11aは、拡張コネクタ20やメモリカード用コネクタ21を介して外部記憶媒体にアクセスし、外部記憶媒体にデータを保存したり、外部記憶媒体からデータを読み出したりすることができる。
【0037】
ゲーム装置3には、電源ボタン24、リセットボタン25、及びイジェクトボタン26が設けられる。電源ボタン24及びリセットボタン25は、システムLSI11に接続される。電源ボタン24がオンされると、ゲーム装置3の各構成要素に対して、図示しないACアダプタを経て電源が供給される。リセットボタン25が押されると、システムLSI11は、ゲーム装置3の起動プログラムを再起動する。イジェクトボタン26は、ディスクドライブ14に接続される。イジェクトボタン26が押されると、ディスクドライブ14から光ディスク4が排出される。
【0038】
[入力装置8の構成]
次に、図3〜図6を参照して、入力装置8について説明する。図3は、入力装置8の外観構成を示す斜視図である。図4は、コントローラ5の外観構成を示す斜視図である。図3は、コントローラ5の上側後方から見た斜視図であり、図4は、コントローラ5を下側前方から見た斜視図である。
【0039】
図3及び図4において、コントローラ5は、例えばプラスチック成型によって形成されたハウジング31を有している。ハウジング31は、その前後方向(図3に示すZ軸方向)を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。プレイヤは、コントローラ5に設けられたボタンを押下すること、及び、コントローラ5自体を動かしてその位置や姿勢を変えることによってゲーム操作を行うことができる。
【0040】
ハウジング31には、複数の操作ボタンが設けられる。図3に示すように、ハウジング31の上面には、十字ボタン32a、1番ボタン32b、2番ボタン32c、Aボタン32d、マイナスボタン32e、ホームボタン32f、プラスボタン32g、及び電源ボタン32hが設けられる。一方、図4に示すように、ハウジング31の下面には凹部が形成されており、当該凹部の後面側傾斜面にはBボタン32iが設けられる。これらの各操作ボタン32a〜32iには、ゲーム装置3が実行するゲームプログラムに応じた機能が適宜割り当てられる。また、電源ボタン32hは遠隔からゲーム装置3本体の電源をオン/オフするためのものである。ホームボタン32f及び電源ボタン32hは、その上面がハウジング31の上面に埋没している。これによって、プレイヤがホームボタン32f又は電源ボタン32hを誤って押下することを防止することができる。
【0041】
ハウジング31の後面にはコネクタ33が設けられている。コネクタ33は、コントローラ5に他の機器(例えば、ジャイロセンサユニット7や他のコントローラ)を接続するために利用される。また、ハウジング31の後面におけるコネクタ33の両側には、上記他の機器が容易に離脱することを防止するために係止穴33aが設けられている。
【0042】
ハウジング31上面の後方には複数(図3では4つ)のLED34a〜34dが設けられる。ここで、コントローラ5には、他のメインコントローラと区別するためにコントローラ種別(番号)が付与される。各LED34a〜34dは、コントローラ5に現在設定されている上記コントローラ種別をプレイヤに通知したり、コントローラ5の電池残量をプレイヤに通知したりする等の目的で用いられる。具体的には、コントローラ5を用いてゲーム操作が行われる際、上記コントローラ種別に応じて複数のLED34a〜34dのいずれか1つが点灯する。
【0043】
また、コントローラ5は撮像情報演算部35(図7)を有しており、図4に示すように、ハウジング31前面には撮像情報演算部35の光入射面35aが設けられる。光入射面35aは、マーカ6R及び6Lからの赤外光を少なくとも透過する材質で構成される。
【0044】
ハウジング31上面における1番ボタン32bとホームボタン32fとの間には、コントローラ5に内蔵されるスピーカ49(図5)からの音を外部に放出するための音抜き孔31aが形成されている。
【0045】
次に、図5及び図6を参照して、コントローラ5の内部構造について説明する。図5及び図6は、コントローラ5の内部構造を示す図である。なお、図5は、コントローラ5の上筐体(ハウジング31の一部)を外した状態を示す斜視図である。図6は、コントローラ5の下筐体(ハウジング31の一部)を外した状態を示す斜視図である。図6に示す斜視図は、図5に示す基板30を裏面から見た斜視図となっている。
【0046】
図5において、ハウジング31の内部には基板30が固設されており、当該基板30の上主面上に各操作ボタン32a〜32h、各LED34a〜34d、加速度センサ37、アンテナ45、及びスピーカ49等が設けられる。これらは、基板30等に形成された配線(図示せず)によってマイクロコンピュータ(Micro Computer:マイコン)42(図6参照)に接続される。本実施形態では、加速度センサ37は、X軸方向に関してコントローラ5の中心からずれた位置に配置されている。これによって、コントローラ5をZ軸回りに回転させたときのコントローラ5の動きが算出しやすくなる。また、加速度センサ37は、長手方向(Z軸方向)に関してコントローラ5の中心よりも前方に配置されている。また、無線モジュール44(図7)及びアンテナ45によって、コントローラ5がワイヤレスコントローラとして機能する。
【0047】
一方、図6において、基板30の下主面上の前端縁に撮像情報演算部35が設けられる。撮像情報演算部35は、コントローラ5の前方から順に赤外線フィルタ38、レンズ39、撮像素子40、及び画像処理回路41を備えている。これらの部材38〜41はそれぞれ基板30の下主面に取り付けられる。
【0048】
さらに、基板30の下主面上には、上記マイコン42及びバイブレータ48が設けられている。バイブレータ48は、例えば振動モータやソレノイドであり、基板30等に形成された配線によってマイコン42と接続される。マイコン42の指示によりバイブレータ48が作動することによってコントローラ5に振動が発生する。これによって、コントローラ5を把持しているプレイヤの手にその振動が伝達される、いわゆる振動対応ゲームを実現することができる。本実施形態では、バイブレータ48は、ハウジング31のやや前方寄りに配置される。つまり、バイブレータ48がコントローラ5の中心よりも端側に配置することによって、バイブレータ48の振動によりコントローラ5全体を大きく振動させることができる。また、コネクタ33は、基板30の下主面上の後端縁に取り付けられる。なお、図5及び図6に示す他、コントローラ5は、マイコン42の基本クロックを生成する水晶振動子、スピーカ49に音声信号を出力するアンプ等を備えている。
【0049】
また、ジャイロセンサユニット7は、3軸回りの角速度を検知するジャイロセンサ(図7に示すジャイロセンサ55及び56)を有する。ジャイロセンサユニット7は、コントローラ5のコネクタ33に着脱可能に装着される。ジャイロセンサユニット7の前端(図3に示すZ軸正方向側の端部)には、コネクタ33に接続可能なプラグ(図7に示すプラグ53)が設けられる。さらに、プラグ53の両側にはフック(図示せず)が設けられる。ジャイロセンサユニット7がコントローラ5に対して装着される状態では、プラグ53がコネクタ33に接続されるとともに、上記フックがコントローラ5の係止穴33aに係止する。これによって、コントローラ5とジャイロセンサユニット7とがしっかりと固定される。また、ジャイロセンサユニット7は側面(図3に示すX軸方向の面)にボタン51を有している。ボタン51は、それを押下すれば上記フックの係止穴33aに対する係止状態を解除することができるように構成されている。したがって、ボタン51を押下しながらプラグ53をコネクタ33から抜くことによって、ジャイロセンサユニット7をコントローラ5から離脱することができる。
【0050】
また、ジャイロセンサユニット7の後端には、上記コネクタ33と同形状のコネクタが設けられる。したがって、コントローラ5(のコネクタ33)に対して装着可能な他の機器は、ジャイロセンサユニット7のコネクタに対しても装着可能である。なお、図3においては、当該コネクタに対してカバー52が着脱可能に装着されている。
【0051】
なお、図3〜図6に示したコントローラ5及びジャイロセンサユニット7の形状や、各操作ボタンの形状、加速度センサやバイブレータの数及び設置位置等は単なる一例に過ぎず、他の形状、数、及び設置位置であってもよい。また、本実施形態では、撮像手段による撮像方向はZ軸正方向であるが、撮像方向はいずれの方向であってもよい。すなわち、コントローラ5における撮像情報演算部35の位置(撮像情報演算部35の光入射面35a)は、ハウジング31の前面でなくてもよく、ハウジング31の外部から光を取り入れることができれば他の面に設けられてもかまわない。
【0052】
図7は、入力装置8(コントローラ5及びジャイロセンサユニット7)の構成を示すブロック図である。コントローラ5は、操作部32(各操作ボタン32a〜32i)、コネクタ33、撮像情報演算部35、通信部36、及び加速度センサ37を備えている。コントローラ5は、自機に対して行われた操作内容を示すデータを操作データとしてゲーム装置3へ送信するものである。
【0053】
操作部32は、上述した各操作ボタン32a〜32iを含み、各操作ボタン32a〜32iに対する入力状態(各操作ボタン32a〜32iが押下されたか否か)を示す操作ボタンデータを通信部36のマイコン42へ出力する。
【0054】
撮像情報演算部35は、撮像手段が撮像した画像データを解析してその中で輝度が高い領域を判別してその領域の重心位置やサイズなどを算出するためのシステムである。撮像情報演算部35は、例えば最大200フレーム/秒程度のサンプリング周期を有するので、比較的高速なコントローラ5の動きでも追跡して解析することができる。
【0055】
撮像情報演算部35は、赤外線フィルタ38、レンズ39、撮像素子40、及び画像処理回路41を含んでいる。赤外線フィルタ38は、コントローラ5の前方から入射する光から赤外線のみを通過させる。レンズ39は、赤外線フィルタ38を透過した赤外線を集光して撮像素子40へ入射させる。撮像素子40は、例えばCMOSセンサやあるいはCCDセンサのような固体撮像素子であり、レンズ39が集光した赤外線を受光して画像信号を出力する。ここで、テレビ2の表示画面近傍に配置されるマーカ部6のマーカ6R及び6Lは、テレビ2の前方に向かって赤外光を出力する赤外LEDで構成される。したがって、赤外線フィルタ38を設けることによって、撮像素子40は、赤外線フィルタ38を通過した赤外線だけを受光して画像データを生成するので、マーカ6R及び6Lの画像をより正確に撮像することができる。以下では、撮像素子40によって撮像された画像を撮像画像と呼ぶ。撮像素子40によって生成された画像データは、画像処理回路41で処理される。画像処理回路41は、撮像画像内における撮像対象(マーカ6R及び6L)の位置を算出する。画像処理回路41は、算出された位置を示す座標を通信部36のマイコン42へ出力する。この座標のデータは、マイコン42によって操作データとしてゲーム装置3に送信される。以下では、上記座標を「マーカ座標」と呼ぶ。マーカ座標はコントローラ5自体の向き(傾斜角度)や位置に対応して変化するので、ゲーム装置3はこのマーカ座標を用いてコントローラ5の向きや位置を算出することができる。
【0056】
なお、他の実施形態においては、コントローラ5は画像処理回路41を備えていない構成であってもよく、撮像画像自体がコントローラ5からゲーム装置3へ送信されてもよい。このとき、ゲーム装置3は、画像処理回路41と同様の機能を有する回路あるいはプログラムを有しており、上記マーカ座標を算出するようにしてもよい。
【0057】
加速度センサ37は、コントローラ5の加速度(重力加速度を含む)を検出する、すなわち、コントローラ5に加わる力(重力を含む)を検出する。加速度センサ37は、当該加速度センサ37の検出部に加わっている加速度のうち、センシング軸方向に沿った直線方向の加速度(直線加速度)の値を検出する。例えば、2軸以上の多軸加速度センサの場合には、加速度センサの検出部に加わっている加速度として、各軸に沿った成分の加速度をそれぞれ検出する。なお、加速度センサ37は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。
【0058】
本実施形態では、加速度センサ37は、コントローラ5を基準とした上下方向(図3に示すY軸方向)、左右方向(図3に示すX軸方向)及び前後方向(図3に示すZ軸方向)の3軸方向に関してそれぞれ直線加速度を検出する。加速度センサ37は、各軸に沿った直線方向に関する加速度を検出するものであるため、加速度センサ37からの出力は3軸それぞれの直線加速度の値を表すものとなる。すなわち、検出された加速度は、入力装置8(コントローラ5)を基準に設定されるXYZ座標系(コントローラ座標系)における3次元のベクトル(ax,ay,az)として表される。以下では、加速度センサ37によって検出される3軸に関する各加速度値を各成分とするベクトルを加速度ベクトルと呼ぶ。
【0059】
加速度センサ37が検出した加速度を示すデータ(加速度データ)は、通信部36へ出力される。
【0060】
通信部36は、マイコン42、メモリ43、無線モジュール44、及びアンテナ45を含んでいる。マイコン42は、処理を行う際にメモリ43を記憶領域として用いながら、マイコン42が取得したデータをゲーム装置3へ無線送信する無線モジュール44を制御する。また、マイコン42はコネクタ33に接続されている。ジャイロセンサユニット7から送信されてくるデータは、コネクタ33を介してマイコン42に入力される。以下、ジャイロセンサユニット7の構成について説明する。
【0061】
ジャイロセンサユニット7は、プラグ53、マイコン54、2軸ジャイロセンサ55、及び1軸ジャイロセンサ56を備えている。上述のように、ジャイロセンサユニット7は、3軸(本実施形態では、図3に示すXYZ軸)周りの角速度を検出し、検出した角速度を示すデータ(角速度データ)をコントローラ5へ送信する。
【0062】
2軸ジャイロセンサ55は、X軸周りの角速度及びY軸周りの(単位時間あたりの)角速度を検出する。また、1軸ジャイロセンサ56は、Z軸周りの(単位時間あたりの)角速度を検出する。なお、本明細書では、コントローラ5のZ軸周り、X軸周り、Y軸周りの回転方向を、それぞれ、ロール方向、ピッチ方向、ヨー方向と呼ぶ。すなわち、2軸ジャイロセンサ55は、ピッチ方向(X軸周りの回転方向)及びヨー方向(Y軸周りの回転方向)の角速度を検出し、1軸ジャイロセンサ56は、ロール方向(Z軸周りの回転方向)の角速度を検出する。
【0063】
なお、本実施形態では、3軸回りの角速度を検出するために、2軸ジャイロセンサ55と1軸ジャイロセンサ56とを用いる構成としたが、他の実施形態においては、3軸回りの角速度を検出することができればよく、用いるジャイロセンサの数及び組み合わせはどのようなものであってもよい。
【0064】
また、本実施形態では、各ジャイロセンサ55及び56が角速度を検出する3つの軸は、加速度センサ37が加速度を検出する3つの軸(XYZ軸)と一致するように設定される。ただし、他の実施形態においては、各ジャイロセンサ55及び56が角速度を検出する3つの軸と、加速度センサ37が加速度を検出する3つの軸とは一致しなくてもよい。
【0065】
ジャイロセンサ55及び56で検出された角速度を示すデータは、マイコン54に出力される。したがって、マイコン54には、XYZ軸の3軸回りの角速度を示すデータが入力されることになる。マイコン54は、上記3軸回りの角速度を示すデータを角速度データとしてプラグ53を介してコントローラ5へ送信する。なお、マイコン54からコントローラ5への送信は所定の周期毎に逐次行われるが、ゲームの処理は1/60秒を単位として(1フレーム時間として)行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。
【0066】
コントローラ5の説明に戻り、操作部32、撮像情報演算部35、及び加速度センサ37からマイコン42へ出力されたデータ、ならびに、ジャイロセンサユニット7からマイコン42へ送信されてきたデータは、一時的にメモリ43に格納される。これらのデータは、上記操作データとしてゲーム装置3へ送信される。すなわち、マイコン42は、ゲーム装置3の無線コントローラモジュール19への送信タイミングが到来すると、メモリ43に格納されている操作データを無線モジュール44へ出力する。無線モジュール44は、例えばBluetooth(ブルートゥース)(登録商標)の技術を用いて、所定周波数の搬送波を操作データで変調し、その微弱電波信号をアンテナ45から放射する。つまり、操作データは、無線モジュール44で微弱電波信号に変調されてコントローラ5から送信される。微弱電波信号はゲーム装置3側の無線コントローラモジュール19で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置3は操作データを取得することができる。そして、ゲーム装置3のCPU10は、取得した操作データとゲームプログラムとに基づいて、ゲーム処理を行う。なお、通信部36から無線コントローラモジュール19への無線送信は所定の周期毎に逐次行われるが、ゲームの処理は1/60秒を単位として(1フレーム時間として)行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。コントローラ5の通信部36は、例えば1/200秒に1回の割合で各操作データをゲーム装置3の無線コントローラモジュール19へ出力する。
【0067】
ゲーム装置3では、無線コントローラモジュール19を通じて入力される操作データに基づいて、種々の処理が行われる。例えば、前述のコントローラ5のXYZ軸の3軸回りの角速度を示すデータから、コントローラ5の姿勢が算出され、当該コントローラ5の姿勢に応じて仮想空間内のオブジェクトの動作が制御される。
【0068】
上記コントローラ5を用いることによって、プレイヤは、各操作ボタンを押下する従来の一般的なゲーム操作に加えて、コントローラ5を任意の方向(ロール方向、ピッチ方向、ヨー方向)に傾ける操作を行うことができる。その他、上記コントローラ5によれば、プレイヤは、コントローラ5によって画面上の任意の位置を指示する操作、及び、コントローラ5自体を動かす操作を行うこともできる。
【0069】
[ゲーム処理の詳細]
次に、図8〜図19を参照して、上記ゲームシステム1において実行されるゲーム処理について詳細に説明する。
【0070】
図8〜図10は、本実施形態においてゲームの実行中にテレビ2の画面に表示されるゲーム画像の例を示している。本実施形態において実行されるゲームでは、プレイヤの操作に応じて、ゲーム世界(仮想空間)内の所定のオブジェクトの動作が制御される。より具体的には、図8に示すように、ゲーム世界において、トロッコを模したオブジェクト90が線路上を進んでおり、プレイヤが入力装置8の姿勢を変化させると、それに応じてオブジェクト90が右方向または左方向に傾く。例えば、図9に示すように、線路が右へカーブしている箇所では、カーブの度合いに応じた適切な角度でオブジェクト90を右に傾ける必要がある。さもないとオブジェクト90は脱線してしまう。同様に、図10に示すように、線路が左へカーブしている箇所では、カーブの度合いに応じた適切な角度でオブジェクト90を左に傾ける必要がある。このゲームにおけるプレイヤの目標は、オブジェクト90を脱線させることなくゴール地点までオブジェクト90を導くことである。
【0071】
図11は、ゲームプログラム61の実行時に外部メインメモリ12(または内部メインメモリ11e)に格納されるデータの一例を示している。図11に示すように、外部メインメモリ12には、ゲームプログラム61、操作データ62、入力装置姿勢データ63、オブジェクトデータ64、その他データ65等が格納される。
【0072】
ゲームプログラム61は、ゲーム装置3のCPU10に、後述する図12〜図14のフローチャートで示される各種処理を実行させるためのコンピュータプログラムである。当該ゲームプログラム61は、例えば、光ディスク4から外部メインメモリ12にロードされる。
【0073】
操作データ62は、入力装置8からゲーム装置3へと送信される信号に含まれている、入力装置8に対するプレイヤの操作を示すデータである。操作データ62には、入力装置8のジャイロセンサユニット7から出力された角速度データ(X軸周りの角速度とY軸周りの角速度とZ軸周りの角速度とを示すデータ)が含まれている。
【0074】
入力装置姿勢データ63は、入力装置8の姿勢を示すデータであって、入力装置8のX軸周りの姿勢を表すピッチ角θp、入力装置8のZ軸周りの姿勢を表すロール角θr、および入力装置8のY軸周りの姿勢を表すヨー角θyを含む。ピッチ角θpは、基準姿勢(例えば、図1に示すように、入力装置8のZ軸の正方向をテレビ2に向け、入力装置8のY軸の正方向を鉛直上方に向けたときの入力装置8の姿勢)からのX軸周りの回転角度を示している。ロール角θrは、基準姿勢からのZ軸周りの回転角度を示している。ヨー角θyは、基準姿勢からのY軸周りの回転角度を示している。
【0075】
オブジェクトデータ64は、ゲーム世界におけるオブジェクト90に関するデータであって、オブジェクト90の形状、位置、姿勢、模様等のデータを含む。オブジェクト90の姿勢は、例えば、姿勢ベクトルで表される。
【0076】
次に、図12〜図14のフローチャートを参照して、ゲームプログラム61に基づくCPU10の処理の流れを説明する。
【0077】
ゲームプログラム61の実行が開始されると、図12のステップS10において、CPU10は、初期化処理を行う。ここでは、ゲーム処理に用いられる各種変数に初期値をセットしたり、入力装置8の基準姿勢を取得(すなわち、図1に示すような位置に入力装置8を置くようにプレイヤに指示した後、入力装置姿勢データ63のピッチ角θp、ロール角θr、およびヨー角θyを0にセットする)したり等の処理が行われる。
【0078】
ステップS11において、CPU10は、仮想空間の所定位置にオブジェクト90を配置する。
【0079】
ステップS12において、CPU10は、オブジェクト90の移動制御を行う。すなわち、線路の起伏等に応じて、ゲーム世界におけるオブジェクト90の位置を更新する。
【0080】
ステップS13において、CPU10は、入力装置8から操作データ62を取得して、外部メインメモリ12に格納する。
【0081】
ステップS14において、CPU10は、操作データ62に含まれる角速度データに基づいて、入力装置8の姿勢(X軸周りの姿勢、Y軸周りの姿勢、およびZ軸周りの姿勢)を検出して、入力装置姿勢データ63のピッチ角θp、ロール角θr、およびヨー角θyを更新する。
【0082】
ステップS15において、CPU10は、ピッチ角θpが第1範囲内かどうかを判断する。本実施形態では、ステップS15および後述するステップS17において、ピッチ角θpに基づいて、プレイヤが入力装置8を「前向き持ち」で持っているのか、「上向き持ち」でもっているのかが判断される。「前向き持ち」とは、図15に示すように、入力装置8のZ軸の正方向がプレイヤから見て概ね前方を向くような持ち方であり、「上向き持ち」とは、図16に示すように、入力装置8のZ軸の正方向がプレイヤから見て概ね上方を向くような持ち方である。ステップS15では、CPU10は、ピッチ角θpが第1範囲内かどうかを判断し、第1範囲内である場合には「前向き持ち」であると判断してステップS16に進み、そうでない場合にはステップS17に進む。本実施形態では、第1範囲は、図17に示すように、−90°〜+45°の範囲とする。
【0083】
ステップS16において、CPU10は、第1制御処理を行う。第1制御処理は、ロール角θr(図18参照)に基づいてオブジェクト90の姿勢を制御する処理である。第1制御処理の詳細は後述する。
【0084】
ステップS17において、CPU10は、ピッチ角θpが第2範囲内かどうかを判断し、第2範囲内である場合には「上向き持ち」であると判断してステップS18に進み、そうでない場合にはステップS19に進む。本実施形態では、第2範囲は、図17に示すように、+45°〜+135°の範囲とする。
【0085】
ステップS18において、CPU10は、第2制御処理を行う。第2制御処理は、ヨー角θy(図19参照)に基づいてオブジェクト90の姿勢を制御する処理である。第2制御処理の詳細は後述する。
【0086】
ステップS19において、CPU10は、オブジェクト90の姿勢と、オブジェクト90の現在位置における線路のカーブ度合いとに基づいて、オブジェクト90が転倒するか否かを判定し、転倒すると判定された場合にはステップS20に進み、そうでない場合にはステップS21に進む。
【0087】
ステップS20において、CPU10は、オブジェクトの転倒処理(例えば、オブジェクト90が転倒して脱線してしまうアニメーション表示の開始)を行う。
【0088】
ステップS21において、CPU10は、ステップS12で更新されたオブジェクト90の位置、および、ステップS16またはステップS18で更新されたオブジェクト90の姿勢に基づいて、ゲーム世界のオブジェクト90を描画して、ゲーム画像を生成する。生成されたゲーム画像は、所定のタイミングでテレビ2へと出力され、テレビ2の画面に表示される。
【0089】
ステップS22において、CPU10は、ゲームが終了したかどうかを判断し、ゲームが終了した場合にはゲームプログラム61の実行を終了し、そうでない場合にはステップS12に戻る。
【0090】
次に、図13のフローチャートを参照して、図12のステップS16の第1制御処理について詳細に説明する。
【0091】
図13のステップS40において、CPU10は、ロール角θr(図18参照)の絶対値が第1閾値(例えば10°)以上かどうかを判断し、第1閾値以上である場合にはステップS41に進み、そうでない場合には第1制御処理を終了する。すなわち、ロール角θrの絶対値が第1閾値未満である場合には、ロール角θrに応じたオブジェクト90の姿勢の制御は行われない。この結果、プレイヤがオブジェクト90を傾けようとしていないにも関わらず、手ぶれに過敏に反応してオブジェクト90がふらついてしまうのを防止することができる。
【0092】
ステップS41において、CPU10は、ロール角θrの絶対値が第2閾値(例えば90°)以上かどうかを判断し、第2閾値以上である場合にはステップS43に進み、そうでない場合にはステップS42に進む。
【0093】
ステップS42において、CPU10は、ロール角θrに応じてオブジェクト90の姿勢(姿勢ベクトル)を更新する。
【0094】
ステップS43において、CPU10は、オブジェクトの転倒処理(例えば、オブジェクト90が転倒して脱線してしまうアニメーション表示の開始)を行う。すなわち、ロール角θrの絶対値が第2閾値以上である場合には、オブジェクト90の現在位置における線路のカーブ度合いに関係なく、オブジェクト90が転倒するようにしている。なお、第2閾値はゲーム進行の状況(例えば、線路のカーブの度合い)に応じて動的に変化させてもよい。
【0095】
このように、第1制御処理では、オブジェクト90の姿勢はロール角θrに応じて更新され、ヨー角θyには依存しない。
【0096】
次に、図14のフローチャートを参照して、図12のステップS18の第2制御処理について詳細に説明する。
【0097】
図14のステップS50において、CPU10は、ヨー角θy(図19参照)の絶対値が第3閾値(例えば10°)以上かどうかを判断し、第3閾値以上である場合にはステップS51に進み、そうでない場合には第2制御処理を終了する。すなわち、ヨー角θyの絶対値が第3閾値未満である場合には、ヨー角θyに応じたオブジェクト90の姿勢の制御は行われない。この結果、プレイヤがオブジェクト90を傾けようとしていないにも関わらず、手ぶれに過敏に反応してオブジェクト90がふらついてしまうのを防止することができる。なお、この第3閾値は、前述の第1閾値と同じ値であってもよいし、異なる値であってもよい。
【0098】
ステップS51において、CPU10は、ヨー角θyの絶対値が第4閾値(例えば90°)以上かどうかを判断し、第4閾値以上である場合にはステップS53に進み、そうでない場合にはステップS52に進む。なお、この第4閾値は、前述の第2閾値と同じ値であってもよいし、異なる値であってもよい。
【0099】
ステップS52において、CPU10は、ヨー角θyに応じてオブジェクト90の姿勢(姿勢ベクトル)を更新する。
【0100】
ステップS53において、CPU10は、オブジェクトの転倒処理(例えば、オブジェクト90が転倒して脱線してしまうアニメーション表示の開始)を行う。すなわち、ヨー角θyの絶対値が第4閾値以上である場合には、オブジェクト90の現在位置における線路のカーブ度合いに関係なく、オブジェクト90が転倒するようにしている。なお、第4閾値はゲーム進行の状況(例えば、線路のカーブの度合い)に応じて動的に変化させてもよい。
【0101】
このように、第2制御処理では、オブジェクト90の姿勢はヨー角θyに応じて更新され、ロール角θrには依存しない。
【0102】
[実施形態の効果]
以上のように、本実施形態では、プレイヤが入力装置8をどのように持っているかによって、入力装置8の入力操作モードが自動的に変化する。すなわち、プレイヤが入力装置8を「前向き持ち」しているときには、ロール角θrに応じてオブジェクト90の姿勢を制御する第1の入力操作モードが選択され、プレイヤが入力装置8を「上向き持ち」しているときには、ヨー角θyに応じてオブジェクト90の姿勢を制御する第2の入力操作モードが選択される。入力装置8をオブジェクト90と見立てた場合、プレイヤが入力装置8を「前向き持ち」しているときには、入力装置8をロール方向に傾けることによってオブジェクト90が左右に傾くのが、自然でかつ直感的である。同様に、プレイヤが入力装置8を「上向き持ち」しているときには、入力装置8をヨー方向に傾けることによってオブジェクト90が左右に傾くのが、自然でかつ直感的である。したがって、本実施形態によれば、プレイヤによる入力装置8の持ち方に関わらず、常に良好な操作性(すなわち、自然でかつ直感的な操作性)が得られるようになる。また、プレイヤは自分の好みにあった入力操作モードで入力操作ができるので、操作の自由度が増す。
【0103】
[変形例]
なお、上記実施形態では、ピッチ角θpが図17に示す第1範囲(−90°〜+45°の範囲)内のときには、ロール角θrに応じてオブジェクト90の姿勢が制御される第1の入力操作モードが選択され、ピッチ角θpが図17に示す第2範囲(+45°〜+135°の範囲)内のときには、ヨー角θyに応じてオブジェクト90の姿勢が制御される第2の入力操作モードが選択されるが、これは単なる一例に過ぎない。他の実施形態では、例えば、図20に示すように、ピッチ角θpがθ2をまたいで大きくなった時点で第1の入力操作モードから第2の入力操作モードへと入力操作モードが切り替わり、ピッチ角θpがθ1(ただしθ2>θ1)をまたいで小さくなった時点で第2の入力操作モードから第1の入力操作モードへと入力操作モードが切り替わるようにしてもよい。これにより、図17において例えばピッチ角θpが45°となるような状態でプレイヤが入力装置8を持っている場合に、入力操作モードが第1の入力操作モードと第2の入力操作モードとの間で頻繁に切り替わってしまうことを防止することができ、より良好な操作性が得られる。
【0104】
また、上記実施形態では、入力装置8のX軸周りの姿勢(ピッチ角θp)に応じて、第1の入力操作モードか第2の入力操作モードかを判断しているが、他の実施形態では、入力装置8の姿勢が任意の所定条件を満たすかどうかに応じて、第1の入力操作モードか第2の入力操作モードかを判断してもよい。例えば、図21に示すように、入力装置8の現在方向が、基準方向を中心とした所定の第1範囲に含まれている場合には、ロール角θrに応じてオブジェクト90の姿勢が制御され、入力装置8の現在方向が第1範囲の外側の第2範囲に含まれている場合には、ヨー角θyに応じてオブジェクト90の姿勢が制御されるようにしてもよい。なお、入力装置8の現在方向が第1範囲および第2範囲のいずれであるかの判断は、ピッチ角θpとヨー角θyを用いた演算によって判断してもよいし、ピッチ角θpとヨー角θyの条件を規定したテーブルを予め規定しておき、当該テーブルに基づいて判断してもよい。
【0105】
また、上記実施形態では、現在の入力操作モードが第1の入力操作モードと第2の入力操作モードのいずれであるかは、プレイヤに対して特に提示されていないが、他の実施形態では、現在の入力操作モードが第1の入力操作モードと第2の入力操作モードのいずれであるかをプレイヤに提示してもよい。例えば、現在の入力操作モードが第1の入力操作モードである場合には、図22に示すように、その旨を示す画像91をゲーム画像と同時に表示し、現在の入力操作モードが第2の入力操作モードである場合には、図23に示すように、その旨を示す画像91をゲーム画像と同時に表示してもよい。
【0106】
また、上記実施形態では、入力装置8の姿勢に応じてオブジェクトの姿勢を更新しているが、他の実施形態では、入力装置8の姿勢に応じてオブジェクトの位置または動作を更新してもよい。さらには、オブジェクトの制御に限らず、他の任意のゲームパラメータを入力装置8の姿勢に応じて更新するようにしてもよい。
【0107】
また、上記実施形態では、入力装置8のジャイロセンサユニット7から出力された角速度データ(X軸周りの角速度とY軸周りの角速度とZ軸周りの角速度とを示すデータ)に基づいて入力装置8の姿勢を検出しているが、入力装置8の姿勢の検出方法は任意である。例えば、入力装置8の加速度センサ37から出力される加速度データに基づいて入力装置8の姿勢を検出してもよい。この場合、加速度センサ37の3軸方向のそれぞれの加速度の値を検出することによって、入力装置8の重力加速度がどの向きにかかっているか、つまりは入力装置8の姿勢を判別することができる。また、例えば、入力装置8をカメラで撮影することによって入力装置8の姿勢を検出してもよい。
【0108】
また、上記実施形態では、第1制御処理において入力装置8のZ軸周りの姿勢(ロール角θr)の変化に応じてオブジェクト90の姿勢を更新しているが、他の実施形態では、入力装置8のZ軸とは異なる任意の所定軸周りの姿勢の変化に応じてオブジェクト90の姿勢を更新してもよい。同様に、上記実施形態では、第2制御処理において入力装置8のX軸周りの姿勢(ヨー角θy)の変化に応じてオブジェクト90の姿勢を更新しているが、他の実施形態では、入力装置8のX軸とは異なる任意の所定軸周りの姿勢の変化に応じてオブジェクト90の姿勢を更新してもよい。
【0109】
また、上記実施形態では、第1制御処理においてロール角θrが第1閾値未満のときには、ロール角θrに応じたオブジェクト90の姿勢の更新は行っていないが、他の実施形態では、ロール角θrが第1閾値未満のときにもロール角θrに応じたオブジェクト90の姿勢の更新を行ってもよい。同様に、上記実施形態では、第2制御処理においてヨー角θyが第3閾値未満のときには、ヨー角θyに応じたオブジェクト90の姿勢の更新は行っていないが、他の実施形態では、ヨー角θyが第3閾値未満のときにもヨー角θyに応じたオブジェクト90の姿勢の更新を行ってもよい。
【0110】
また、上記実施形態では、入力装置8とゲーム装置3とが無線通信によって接続されているが、他の実施形態では、入力装置8とゲーム装置3とがケーブルを介して電気的に接続されてもよい。
【0111】
また、上記実施形態では、ゲーム装置3のCPU10がゲームプログラム61を実行することによって、上述したフローチャートの処理が行われたが、他の実施形態では、上述したフローチャートの処理の一部又は全部が、ゲーム装置3が備える専用回路によって行われてもよい。
【0112】
また、上記実施形態では、1台のゲーム装置3によって上記ゲーム処理を実行しているが、他の実施形態では、互いに通信可能な複数のゲーム装置からなるゲームシステムによって上記ゲーム処理を分担して実行するようにしてもよい。例えば、ゲーム装置と、当該ゲーム装置とネットワークを介して通信可能なサーバ装置とを含むゲームシステムにおいて、上記一連の処理のうちの一部の処理(例えば、上記ステップS16の第1制御処理、上記ステップS18の第2制御処理等)がサーバ装置によって実行されてもよい。また、上記ゲームシステムにおいて、サーバ装置は、複数の情報処理装置によって構成され、サーバで実行するべき処理を複数の情報処理装置が分担して実行してもよい。
【0113】
なお、ゲーム装置としては、ゲームプログラム61を実行することによって上記ゲーム処理を実行可能な任意の情報処理装置(例えば、据え置き型ゲーム装置、携帯型ゲーム装置、パーソナルコンピュータ、携帯電話など)を用いることができる。
【符号の説明】
【0114】
1 ゲームシステム
2 テレビジョン受像器(テレビ)
3 ゲーム装置
4 光ディスク
5 コントローラ
6 マーカ部
6R マーカ
6L マーカ
7 ジャイロセンサユニット
8 入力装置
90 オブジェクト
91 現在の入力操作モードを示す画像
【技術分野】
【0001】
本発明は、入力装置の姿勢に基づいてゲーム処理を行うゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム方法に関する。
【背景技術】
【0002】
従来、プレイヤの操作するコントローラの姿勢に応じて仮想ゲーム世界内におけるオブジェクトを制御するものが知られている。
【0003】
例えば、特許文献1には、多軸加速度センサーと多軸ジャイロセンサーを備えたコントローラを用いてゲームを行うゲーム装置が開示されている。具体的には、多軸加速度センサーの出力に基づいてゲーム内のオブジェクトである刀を振る制御が行われ、多軸ジャイロセンサーの出力に基づいて、刀をひねったり傾けたりする制御が行われる。
【0004】
また、特許文献2には、ジャイロセンサで検出したコントローラの姿勢をゲーム空間内のオブジェクトの姿勢に反映するゲーム装置が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2000−308756号公報(段落[0019]〜[0021])
【特許文献2】特開2010−17389号公報(要約、段落[0195])
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、特許文献1および特許文献2のゲーム装置では、コントローラの姿勢に対するオブジェクトの姿勢が一義的に決められているため、コントローラの自由な操作ができなかった。例えば、オブジェクトに対して所定の動作をさせるために、コントローラをひねる操作を好むプレイヤとコントローラを左右に振る操作を好むプレイヤがいたとしても、特許文献1および特許文献2のゲーム装置では、いずれかの操作のみを許容するしかなかった。
【0007】
それゆえに、この発明の主たる目的は、入力装置の姿勢に基づいて実行されるゲームにおいて、操作性を向上させることである。
【課題を解決するための手段】
【0008】
上記の目的を達成するために、本発明は以下の構成を採用した。
【0009】
本発明のゲームプログラムは、入力装置の姿勢に基づいてゲーム処理を行うゲーム装置のコンピュータを、姿勢検出手段、姿勢判断手段、およびゲーム処理手段として機能させる。上記姿勢検出手段は、上記入力装置の姿勢を検出する。上記姿勢判断手段は、上記入力装置の姿勢が第1条件を満たしているか第2条件を満たしているかを判断する。上記ゲーム処理手段は、上記入力装置の姿勢が上記第1条件を満たしている間は、上記入力装置の第1軸周りの姿勢の変化に応じて特定のゲームパラメータを更新し、上記入力装置の姿勢が上記第2条件を満たしている間は、上記入力装置の第2軸周りの姿勢の変化に応じて上記特定のゲームパラメータを更新する。
これにより、特定のゲームパラメータを入力装置の第1軸周りの姿勢の変化に基づいて更新する第1の入力操作モードと、当該特定のゲームパラメータを入力装置の第2軸周りの姿勢の変化に基づいて更新する第2の入力操作モードが、当該入力装置の姿勢に応じて自動的に切り替わるため、入力装置の姿勢に関わらず、常に良好な操作性が得られるようになる。また、プレイヤは自分の好みにあった入力操作モードで入力操作ができるので、操作の自由度が増す。
【0010】
なお、上記姿勢判断手段は、上記入力装置の第3軸周りの姿勢が上記第1条件を満たしているか上記第2条件を満たしているかを判断してもよい。
これにより、入力装置の第3軸周りの姿勢に基づいて、上記第1の入力操作モードと上記第2の入力操作モードを自動的に切り替えることができる。
【0011】
また、上記ゲーム処理手段は、上記入力装置の姿勢が上記第1条件と上記第2条件のいずれも満たしていない間は、上記入力装置の上記第1軸周りの姿勢の変化も、上記入力装置の上記第2軸周りの姿勢の変化も、上記特定のゲームパラメータに反映させないようにしてもよい。
これにより、入力装置の姿勢が第1条件と第2条件のいずれも満たさないときは、上記第1の入力操作モードも上記第2の入力操作モードも無効にすることができる。
【0012】
また、上記入力装置は角速度センサを含み、上記姿勢検出手段は、上記角速度センサから出力される角速度データに基づいて、上記入力装置の姿勢を検出してもよい。
これにより、入力装置の所定軸周りの姿勢の変化を容易に検出することができる。
【0013】
また、上記角速度センサは、上記入力装置の上記第1軸周りの角速度、上記第2軸周りの角速度、および上記第3軸周りの角速度を検出可能であり、上記姿勢検出手段は、上記角速度センサによって検出される上記入力装置の上記第1軸周りの角速度、上記第2軸周りの角速度、および上記第3軸周りの角速度に基づいて、上記入力装置の上記第1軸周りの姿勢、上記第2軸周りの姿勢、および上記第3軸周りの姿勢を検出してもよい。
【0014】
また、上記ゲーム処理手段は、所定の基準姿勢からの上記入力装置の上記第1軸周りの姿勢の変化量が、所定の閾値を超えたかどうかを判断する第1判断手段と、所定の基準姿勢からの上記入力装置の上記第2軸周りの姿勢の変化量が、所定の閾値を超えたかどうかを判断する第2判断手段とを含み、上記ゲーム処理手段は、上記入力装置の姿勢が上記第1条件を満たしている間は、上記第1判断手段の判断結果が肯定である場合に限り、上記入力装置の第1軸周りの姿勢の変化に応じて上記特定のゲームパラメータを更新し、上記入力装置の姿勢が上記第2条件を満たしている間は、上記第2判断手段の判断結果が肯定である場合に限り、上記入力装置の第2軸周りの姿勢の変化に応じて上記特定のゲームパラメータを更新してもよい。
これにより、基準姿勢からの姿勢の変化量が所定の閾値を超えたときに限って、入力装置の姿勢に応じて特定のゲームパラメータの更新が行われるので、手振れなどによる誤制御を防止することができる。
【0015】
また、上記ゲームプログラムは、上記コンピュータを、上記特定のゲームパラメータに応じたゲーム画像を生成するゲーム画像生成手段としてさらに機能させてもよい。
【0016】
また、上記特定のゲームパラメータは、ゲーム世界の特定のオブジェクト(90)の位置、姿勢及び動作の少なくともいずれか1つに影響を与えるゲームパラメータであり、上記ゲーム画像生成手段は、上記特定のオブジェクトを含むゲーム画像を生成してもよい。
【0017】
また、上記ゲーム画像生成手段は、上記姿勢判断手段の判断結果を示す画像(91)を含む上記ゲーム画像を生成してもよい。
これにより、現在の入力操作モードが上記第1の入力操作モードなのか上記第2の入力操作モードなのかをプレイヤに提示することができる。
【0018】
本発明のゲーム装置は、入力装置の姿勢に基づいてゲーム処理を行うゲーム装置であって、姿勢検出手段、姿勢判断手段、およびゲーム処理手段を備える。上記姿勢検出手段は、上記入力装置の姿勢を検出する。上記姿勢判断手段は、上記入力装置の姿勢が第1条件を満たしているか第2条件を満たしているかを判断する。上記ゲーム処理手段は、上記入力装置の姿勢が上記第1条件を満たしている間は、上記入力装置の第1軸周りの姿勢の変化に応じて特定のゲームパラメータを更新し、上記入力装置の姿勢が上記第2条件を満たしている間は、上記入力装置の第2軸周りの姿勢の変化に応じて上記特定のゲームパラメータを更新する。
【0019】
本発明のゲームシステムは、入力装置の姿勢に基づいてゲーム処理を行うゲームシステムであって、姿勢検出手段、姿勢判断手段、およびゲーム処理手段を備える。上記姿勢検出手段は、上記入力装置の姿勢を検出する。上記姿勢判断手段は、上記入力装置の姿勢が第1条件を満たしているか第2条件を満たしているかを判断する。上記ゲーム処理手段は、上記入力装置の姿勢が上記第1条件を満たしている間は、上記入力装置の第1軸周りの姿勢の変化に応じて特定のゲームパラメータを更新し、上記入力装置の姿勢が上記第2条件を満たしている間は、上記入力装置の第2軸周りの姿勢の変化に応じて上記特定のゲームパラメータを更新する。
【0020】
本発明のゲーム方法は、入力装置の姿勢に基づいてゲーム処理を行うゲーム方法であって、姿勢検出ステップ、姿勢判断ステップ、およびゲーム処理ステップを備える。上記姿勢検出ステップでは、上記入力装置の姿勢を検出する。上記姿勢判断ステップでは、上記入力装置の姿勢が第1条件を満たしているか第2条件を満たしているかを判断する。上記ゲーム処理ステップは、上記入力装置の姿勢が上記第1条件を満たしている間は、上記入力装置の第1軸周りの姿勢の変化に応じて特定のゲームパラメータを更新し、上記入力装置の姿勢が上記第2条件を満たしている間は、上記入力装置の第2軸周りの姿勢の変化に応じて上記特定のゲームパラメータを更新する。
【発明の効果】
【0021】
この発明によれば、入力装置の姿勢に基づいて実行されるゲームにおいて、操作性を向上させることができる。
【図面の簡単な説明】
【0022】
【図1】ゲームシステムの外観図
【図2】ゲーム装置の機能ブロック図
【図3】入力装置の外観構成を示す斜視図
【図4】コントローラの外観構成を示す斜視図
【図5】コントローラの内部構造を示す図
【図6】コントローラの内部構造を示す図
【図7】入力装置の構成を示すブロック図
【図8】ゲーム画像の一例を示す図
【図9】ゲーム画像の一例を示す図
【図10】ゲーム画像の一例を示す図
【図11】メインメモリのメモリマップ
【図12】メイン処理のフローチャート
【図13】第1制御処理のフローチャート
【図14】第2制御処理のフローチャート
【図15】ゲームプレイ時のプレイヤの手を横から見た図
【図16】ゲームプレイ時のプレイヤの手を横から見た図
【図17】第1範囲及び第2範囲の一例を示す図
【図18】ロール角θrを示す図
【図19】ヨー角θyを示す図
【図20】第1範囲及び第2範囲の一例を示す図
【図21】第1範囲及び第2範囲の一例を示す図
【図22】変形例におけるゲーム画像の一例を示す図
【図23】変形例におけるゲーム画像の一例を示す図
【発明を実施するための形態】
【0023】
[ゲームシステムの全体構成]
図1を参照して、本発明の一実施形態に係るゲーム装置を含むゲームシステム1について説明する。図1は、ゲームシステム1の外観図である。以下、据置型のゲーム装置を一例にして、本実施形態のゲーム装置及びゲームプログラムについて説明する。図1において、ゲームシステム1は、テレビジョン受像器(以下、単に「テレビ」と記載する)2、ゲーム装置3、光ディスク4、入力装置8、及びマーカ部6を含む。本システムは、入力装置8を用いたゲーム操作に基づいてゲーム装置3でゲーム処理を実行するものである。
【0024】
ゲーム装置3には、当該ゲーム装置3に対して交換可能に用いられる情報記憶媒体の一例である光ディスク4が脱着可能に挿入される。光ディスク4には、ゲーム装置3において実行されるためのゲームプログラムが記憶されている。ゲーム装置3の前面には光ディスク4の挿入口が設けられている。ゲーム装置3は、挿入口に挿入された光ディスク4に記憶されているゲームプログラムを読み出して実行することによってゲーム処理を実行する。
【0025】
ゲーム装置3には、表示装置の一例であるテレビ2が接続コードを介して接続される。テレビ2は、ゲーム装置3において実行されるゲーム処理の結果得られるゲーム画像を表示する。また、テレビ2の画面の周辺(図1では画面の上側)には、マーカ部6が設置される。マーカ部6は、その両端に2つのマーカ6R及び6Lを備えている。マーカ6R(マーカ6Lも同様)は、具体的には1以上の赤外LEDであり、テレビ2の前方に向かって赤外光を出力する。マーカ部6はゲーム装置3に接続されており、ゲーム装置3はマーカ部6が備える各赤外LEDの点灯を制御することが可能である。
【0026】
入力装置8は、自機に対して行われた操作の内容を示す操作データをゲーム装置3に与えるものである。本実施形態では、入力装置8はコントローラ5とジャイロセンサユニット7とを含む。詳細は後述するが、入力装置8は、コントローラ5に対してジャイロセンサユニット7が着脱可能に接続されている構成である。コントローラ5とゲーム装置3とは無線通信によって接続される。本実施形態では、コントローラ5とゲーム装置3との間の無線通信には例えばBluetooth(ブルートゥース)(登録商標)の技術が用いられる。なお、他の実施形態においてはコントローラ5とゲーム装置3とは有線で接続されてもよい。
【0027】
[ゲーム装置3の内部構成]
次に、図2を参照して、ゲーム装置3の内部構成について説明する。図2は、ゲーム装置3の構成を示すブロック図である。ゲーム装置3は、CPU10、システムLSI11、外部メインメモリ12、ROM/RTC13、ディスクドライブ14、及びAV−IC15等を有する。
【0028】
CPU10は、光ディスク4に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。CPU10は、システムLSI11に接続される。システムLSI11には、CPU10の他、外部メインメモリ12、ROM/RTC13、ディスクドライブ14及びAV−IC15が接続される。システムLSI11は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。システムLSI11の内部構成については後述する。揮発性の外部メインメモリ12は、光ディスク4から読み出されたゲームプログラムや、フラッシュメモリ17から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、CPU10のワーク領域やバッファ領域として用いられる。ROM/RTC13は、ゲーム装置3の起動用のプログラムが組み込まれるROM(いわゆるブートROM)と、時間をカウントするクロック回路(RTC:Real Time Clock)とを有する。ディスクドライブ14は、光ディスク4からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ11e又は外部メインメモリ12に読み出したデータを書き込む。
【0029】
また、システムLSI11には、入出力プロセッサ(I/Oプロセッサ)11a、GPU(Graphics Processor Unit)11b、DSP(Digital Signal Processor)11c、VRAM11d、及び内部メインメモリ11eが設けられる。図示は省略するが、これらの構成要素11a〜11eは内部バスによって互いに接続される。
【0030】
GPU11bは、描画手段の一部を形成し、CPU10からのグラフィクスコマンド(作画命令)に従って画像を生成する。VRAM11dは、GPU11bがグラフィクスコマンドを実行するために必要なデータ(ポリゴンデータやテクスチャデータ等のデータ)を記憶する。画像が生成される際には、GPU11bは、VRAM11dに記憶されたデータを用いて画像データを作成する。
【0031】
DSP11cは、オーディオプロセッサとして機能し、内部メインメモリ11eや外部メインメモリ12に記憶されるサウンドデータや音波形(音色)データを用いて、音声データを生成する。
【0032】
上述のように生成された画像データ及び音声データは、AV−IC15によって読み出される。AV−IC15は、読み出した画像データをAVコネクタ16を介してテレビ2に出力するとともに、読み出した音声データを、テレビ2に内蔵されるスピーカ2aに出力する。これによって、画像がテレビ2に表示されるとともに音がスピーカ2aから出力される。
【0033】
入出力プロセッサ11aは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ11aは、フラッシュメモリ17、無線通信モジュール18、無線コントローラモジュール19、拡張コネクタ20、及びメモリカード用コネクタ21に接続される。無線通信モジュール18にはアンテナ22が接続され、無線コントローラモジュール19にはアンテナ23が接続される。
【0034】
入出力プロセッサ11aは、無線通信モジュール18及びアンテナ22を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ11aは、定期的にフラッシュメモリ17にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、無線通信モジュール18及びアンテナ22を介してネットワークに送信する。また、入出力プロセッサ11aは、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ22及び無線通信モジュール18を介して受信し、受信したデータをフラッシュメモリ17に記憶する。CPU10はゲームプログラムを実行することにより、フラッシュメモリ17に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ17には、ゲーム装置3と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置3を利用してプレイしたゲームのセーブデータ(ゲームの結果データ又は途中データ)が記憶されてもよい。
【0035】
また、入出力プロセッサ11aは、コントローラ5から送信される操作データをアンテナ23及び無線コントローラモジュール19を介して受信し、内部メインメモリ11e又は外部メインメモリ12のバッファ領域に記憶(一時記憶)する。
【0036】
さらに、入出力プロセッサ11aには、拡張コネクタ20及びメモリカード用コネクタ21が接続される。拡張コネクタ20は、USBやSCSIのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール18に替えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ21は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ11aは、拡張コネクタ20やメモリカード用コネクタ21を介して外部記憶媒体にアクセスし、外部記憶媒体にデータを保存したり、外部記憶媒体からデータを読み出したりすることができる。
【0037】
ゲーム装置3には、電源ボタン24、リセットボタン25、及びイジェクトボタン26が設けられる。電源ボタン24及びリセットボタン25は、システムLSI11に接続される。電源ボタン24がオンされると、ゲーム装置3の各構成要素に対して、図示しないACアダプタを経て電源が供給される。リセットボタン25が押されると、システムLSI11は、ゲーム装置3の起動プログラムを再起動する。イジェクトボタン26は、ディスクドライブ14に接続される。イジェクトボタン26が押されると、ディスクドライブ14から光ディスク4が排出される。
【0038】
[入力装置8の構成]
次に、図3〜図6を参照して、入力装置8について説明する。図3は、入力装置8の外観構成を示す斜視図である。図4は、コントローラ5の外観構成を示す斜視図である。図3は、コントローラ5の上側後方から見た斜視図であり、図4は、コントローラ5を下側前方から見た斜視図である。
【0039】
図3及び図4において、コントローラ5は、例えばプラスチック成型によって形成されたハウジング31を有している。ハウジング31は、その前後方向(図3に示すZ軸方向)を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。プレイヤは、コントローラ5に設けられたボタンを押下すること、及び、コントローラ5自体を動かしてその位置や姿勢を変えることによってゲーム操作を行うことができる。
【0040】
ハウジング31には、複数の操作ボタンが設けられる。図3に示すように、ハウジング31の上面には、十字ボタン32a、1番ボタン32b、2番ボタン32c、Aボタン32d、マイナスボタン32e、ホームボタン32f、プラスボタン32g、及び電源ボタン32hが設けられる。一方、図4に示すように、ハウジング31の下面には凹部が形成されており、当該凹部の後面側傾斜面にはBボタン32iが設けられる。これらの各操作ボタン32a〜32iには、ゲーム装置3が実行するゲームプログラムに応じた機能が適宜割り当てられる。また、電源ボタン32hは遠隔からゲーム装置3本体の電源をオン/オフするためのものである。ホームボタン32f及び電源ボタン32hは、その上面がハウジング31の上面に埋没している。これによって、プレイヤがホームボタン32f又は電源ボタン32hを誤って押下することを防止することができる。
【0041】
ハウジング31の後面にはコネクタ33が設けられている。コネクタ33は、コントローラ5に他の機器(例えば、ジャイロセンサユニット7や他のコントローラ)を接続するために利用される。また、ハウジング31の後面におけるコネクタ33の両側には、上記他の機器が容易に離脱することを防止するために係止穴33aが設けられている。
【0042】
ハウジング31上面の後方には複数(図3では4つ)のLED34a〜34dが設けられる。ここで、コントローラ5には、他のメインコントローラと区別するためにコントローラ種別(番号)が付与される。各LED34a〜34dは、コントローラ5に現在設定されている上記コントローラ種別をプレイヤに通知したり、コントローラ5の電池残量をプレイヤに通知したりする等の目的で用いられる。具体的には、コントローラ5を用いてゲーム操作が行われる際、上記コントローラ種別に応じて複数のLED34a〜34dのいずれか1つが点灯する。
【0043】
また、コントローラ5は撮像情報演算部35(図7)を有しており、図4に示すように、ハウジング31前面には撮像情報演算部35の光入射面35aが設けられる。光入射面35aは、マーカ6R及び6Lからの赤外光を少なくとも透過する材質で構成される。
【0044】
ハウジング31上面における1番ボタン32bとホームボタン32fとの間には、コントローラ5に内蔵されるスピーカ49(図5)からの音を外部に放出するための音抜き孔31aが形成されている。
【0045】
次に、図5及び図6を参照して、コントローラ5の内部構造について説明する。図5及び図6は、コントローラ5の内部構造を示す図である。なお、図5は、コントローラ5の上筐体(ハウジング31の一部)を外した状態を示す斜視図である。図6は、コントローラ5の下筐体(ハウジング31の一部)を外した状態を示す斜視図である。図6に示す斜視図は、図5に示す基板30を裏面から見た斜視図となっている。
【0046】
図5において、ハウジング31の内部には基板30が固設されており、当該基板30の上主面上に各操作ボタン32a〜32h、各LED34a〜34d、加速度センサ37、アンテナ45、及びスピーカ49等が設けられる。これらは、基板30等に形成された配線(図示せず)によってマイクロコンピュータ(Micro Computer:マイコン)42(図6参照)に接続される。本実施形態では、加速度センサ37は、X軸方向に関してコントローラ5の中心からずれた位置に配置されている。これによって、コントローラ5をZ軸回りに回転させたときのコントローラ5の動きが算出しやすくなる。また、加速度センサ37は、長手方向(Z軸方向)に関してコントローラ5の中心よりも前方に配置されている。また、無線モジュール44(図7)及びアンテナ45によって、コントローラ5がワイヤレスコントローラとして機能する。
【0047】
一方、図6において、基板30の下主面上の前端縁に撮像情報演算部35が設けられる。撮像情報演算部35は、コントローラ5の前方から順に赤外線フィルタ38、レンズ39、撮像素子40、及び画像処理回路41を備えている。これらの部材38〜41はそれぞれ基板30の下主面に取り付けられる。
【0048】
さらに、基板30の下主面上には、上記マイコン42及びバイブレータ48が設けられている。バイブレータ48は、例えば振動モータやソレノイドであり、基板30等に形成された配線によってマイコン42と接続される。マイコン42の指示によりバイブレータ48が作動することによってコントローラ5に振動が発生する。これによって、コントローラ5を把持しているプレイヤの手にその振動が伝達される、いわゆる振動対応ゲームを実現することができる。本実施形態では、バイブレータ48は、ハウジング31のやや前方寄りに配置される。つまり、バイブレータ48がコントローラ5の中心よりも端側に配置することによって、バイブレータ48の振動によりコントローラ5全体を大きく振動させることができる。また、コネクタ33は、基板30の下主面上の後端縁に取り付けられる。なお、図5及び図6に示す他、コントローラ5は、マイコン42の基本クロックを生成する水晶振動子、スピーカ49に音声信号を出力するアンプ等を備えている。
【0049】
また、ジャイロセンサユニット7は、3軸回りの角速度を検知するジャイロセンサ(図7に示すジャイロセンサ55及び56)を有する。ジャイロセンサユニット7は、コントローラ5のコネクタ33に着脱可能に装着される。ジャイロセンサユニット7の前端(図3に示すZ軸正方向側の端部)には、コネクタ33に接続可能なプラグ(図7に示すプラグ53)が設けられる。さらに、プラグ53の両側にはフック(図示せず)が設けられる。ジャイロセンサユニット7がコントローラ5に対して装着される状態では、プラグ53がコネクタ33に接続されるとともに、上記フックがコントローラ5の係止穴33aに係止する。これによって、コントローラ5とジャイロセンサユニット7とがしっかりと固定される。また、ジャイロセンサユニット7は側面(図3に示すX軸方向の面)にボタン51を有している。ボタン51は、それを押下すれば上記フックの係止穴33aに対する係止状態を解除することができるように構成されている。したがって、ボタン51を押下しながらプラグ53をコネクタ33から抜くことによって、ジャイロセンサユニット7をコントローラ5から離脱することができる。
【0050】
また、ジャイロセンサユニット7の後端には、上記コネクタ33と同形状のコネクタが設けられる。したがって、コントローラ5(のコネクタ33)に対して装着可能な他の機器は、ジャイロセンサユニット7のコネクタに対しても装着可能である。なお、図3においては、当該コネクタに対してカバー52が着脱可能に装着されている。
【0051】
なお、図3〜図6に示したコントローラ5及びジャイロセンサユニット7の形状や、各操作ボタンの形状、加速度センサやバイブレータの数及び設置位置等は単なる一例に過ぎず、他の形状、数、及び設置位置であってもよい。また、本実施形態では、撮像手段による撮像方向はZ軸正方向であるが、撮像方向はいずれの方向であってもよい。すなわち、コントローラ5における撮像情報演算部35の位置(撮像情報演算部35の光入射面35a)は、ハウジング31の前面でなくてもよく、ハウジング31の外部から光を取り入れることができれば他の面に設けられてもかまわない。
【0052】
図7は、入力装置8(コントローラ5及びジャイロセンサユニット7)の構成を示すブロック図である。コントローラ5は、操作部32(各操作ボタン32a〜32i)、コネクタ33、撮像情報演算部35、通信部36、及び加速度センサ37を備えている。コントローラ5は、自機に対して行われた操作内容を示すデータを操作データとしてゲーム装置3へ送信するものである。
【0053】
操作部32は、上述した各操作ボタン32a〜32iを含み、各操作ボタン32a〜32iに対する入力状態(各操作ボタン32a〜32iが押下されたか否か)を示す操作ボタンデータを通信部36のマイコン42へ出力する。
【0054】
撮像情報演算部35は、撮像手段が撮像した画像データを解析してその中で輝度が高い領域を判別してその領域の重心位置やサイズなどを算出するためのシステムである。撮像情報演算部35は、例えば最大200フレーム/秒程度のサンプリング周期を有するので、比較的高速なコントローラ5の動きでも追跡して解析することができる。
【0055】
撮像情報演算部35は、赤外線フィルタ38、レンズ39、撮像素子40、及び画像処理回路41を含んでいる。赤外線フィルタ38は、コントローラ5の前方から入射する光から赤外線のみを通過させる。レンズ39は、赤外線フィルタ38を透過した赤外線を集光して撮像素子40へ入射させる。撮像素子40は、例えばCMOSセンサやあるいはCCDセンサのような固体撮像素子であり、レンズ39が集光した赤外線を受光して画像信号を出力する。ここで、テレビ2の表示画面近傍に配置されるマーカ部6のマーカ6R及び6Lは、テレビ2の前方に向かって赤外光を出力する赤外LEDで構成される。したがって、赤外線フィルタ38を設けることによって、撮像素子40は、赤外線フィルタ38を通過した赤外線だけを受光して画像データを生成するので、マーカ6R及び6Lの画像をより正確に撮像することができる。以下では、撮像素子40によって撮像された画像を撮像画像と呼ぶ。撮像素子40によって生成された画像データは、画像処理回路41で処理される。画像処理回路41は、撮像画像内における撮像対象(マーカ6R及び6L)の位置を算出する。画像処理回路41は、算出された位置を示す座標を通信部36のマイコン42へ出力する。この座標のデータは、マイコン42によって操作データとしてゲーム装置3に送信される。以下では、上記座標を「マーカ座標」と呼ぶ。マーカ座標はコントローラ5自体の向き(傾斜角度)や位置に対応して変化するので、ゲーム装置3はこのマーカ座標を用いてコントローラ5の向きや位置を算出することができる。
【0056】
なお、他の実施形態においては、コントローラ5は画像処理回路41を備えていない構成であってもよく、撮像画像自体がコントローラ5からゲーム装置3へ送信されてもよい。このとき、ゲーム装置3は、画像処理回路41と同様の機能を有する回路あるいはプログラムを有しており、上記マーカ座標を算出するようにしてもよい。
【0057】
加速度センサ37は、コントローラ5の加速度(重力加速度を含む)を検出する、すなわち、コントローラ5に加わる力(重力を含む)を検出する。加速度センサ37は、当該加速度センサ37の検出部に加わっている加速度のうち、センシング軸方向に沿った直線方向の加速度(直線加速度)の値を検出する。例えば、2軸以上の多軸加速度センサの場合には、加速度センサの検出部に加わっている加速度として、各軸に沿った成分の加速度をそれぞれ検出する。なお、加速度センサ37は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。
【0058】
本実施形態では、加速度センサ37は、コントローラ5を基準とした上下方向(図3に示すY軸方向)、左右方向(図3に示すX軸方向)及び前後方向(図3に示すZ軸方向)の3軸方向に関してそれぞれ直線加速度を検出する。加速度センサ37は、各軸に沿った直線方向に関する加速度を検出するものであるため、加速度センサ37からの出力は3軸それぞれの直線加速度の値を表すものとなる。すなわち、検出された加速度は、入力装置8(コントローラ5)を基準に設定されるXYZ座標系(コントローラ座標系)における3次元のベクトル(ax,ay,az)として表される。以下では、加速度センサ37によって検出される3軸に関する各加速度値を各成分とするベクトルを加速度ベクトルと呼ぶ。
【0059】
加速度センサ37が検出した加速度を示すデータ(加速度データ)は、通信部36へ出力される。
【0060】
通信部36は、マイコン42、メモリ43、無線モジュール44、及びアンテナ45を含んでいる。マイコン42は、処理を行う際にメモリ43を記憶領域として用いながら、マイコン42が取得したデータをゲーム装置3へ無線送信する無線モジュール44を制御する。また、マイコン42はコネクタ33に接続されている。ジャイロセンサユニット7から送信されてくるデータは、コネクタ33を介してマイコン42に入力される。以下、ジャイロセンサユニット7の構成について説明する。
【0061】
ジャイロセンサユニット7は、プラグ53、マイコン54、2軸ジャイロセンサ55、及び1軸ジャイロセンサ56を備えている。上述のように、ジャイロセンサユニット7は、3軸(本実施形態では、図3に示すXYZ軸)周りの角速度を検出し、検出した角速度を示すデータ(角速度データ)をコントローラ5へ送信する。
【0062】
2軸ジャイロセンサ55は、X軸周りの角速度及びY軸周りの(単位時間あたりの)角速度を検出する。また、1軸ジャイロセンサ56は、Z軸周りの(単位時間あたりの)角速度を検出する。なお、本明細書では、コントローラ5のZ軸周り、X軸周り、Y軸周りの回転方向を、それぞれ、ロール方向、ピッチ方向、ヨー方向と呼ぶ。すなわち、2軸ジャイロセンサ55は、ピッチ方向(X軸周りの回転方向)及びヨー方向(Y軸周りの回転方向)の角速度を検出し、1軸ジャイロセンサ56は、ロール方向(Z軸周りの回転方向)の角速度を検出する。
【0063】
なお、本実施形態では、3軸回りの角速度を検出するために、2軸ジャイロセンサ55と1軸ジャイロセンサ56とを用いる構成としたが、他の実施形態においては、3軸回りの角速度を検出することができればよく、用いるジャイロセンサの数及び組み合わせはどのようなものであってもよい。
【0064】
また、本実施形態では、各ジャイロセンサ55及び56が角速度を検出する3つの軸は、加速度センサ37が加速度を検出する3つの軸(XYZ軸)と一致するように設定される。ただし、他の実施形態においては、各ジャイロセンサ55及び56が角速度を検出する3つの軸と、加速度センサ37が加速度を検出する3つの軸とは一致しなくてもよい。
【0065】
ジャイロセンサ55及び56で検出された角速度を示すデータは、マイコン54に出力される。したがって、マイコン54には、XYZ軸の3軸回りの角速度を示すデータが入力されることになる。マイコン54は、上記3軸回りの角速度を示すデータを角速度データとしてプラグ53を介してコントローラ5へ送信する。なお、マイコン54からコントローラ5への送信は所定の周期毎に逐次行われるが、ゲームの処理は1/60秒を単位として(1フレーム時間として)行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。
【0066】
コントローラ5の説明に戻り、操作部32、撮像情報演算部35、及び加速度センサ37からマイコン42へ出力されたデータ、ならびに、ジャイロセンサユニット7からマイコン42へ送信されてきたデータは、一時的にメモリ43に格納される。これらのデータは、上記操作データとしてゲーム装置3へ送信される。すなわち、マイコン42は、ゲーム装置3の無線コントローラモジュール19への送信タイミングが到来すると、メモリ43に格納されている操作データを無線モジュール44へ出力する。無線モジュール44は、例えばBluetooth(ブルートゥース)(登録商標)の技術を用いて、所定周波数の搬送波を操作データで変調し、その微弱電波信号をアンテナ45から放射する。つまり、操作データは、無線モジュール44で微弱電波信号に変調されてコントローラ5から送信される。微弱電波信号はゲーム装置3側の無線コントローラモジュール19で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置3は操作データを取得することができる。そして、ゲーム装置3のCPU10は、取得した操作データとゲームプログラムとに基づいて、ゲーム処理を行う。なお、通信部36から無線コントローラモジュール19への無線送信は所定の周期毎に逐次行われるが、ゲームの処理は1/60秒を単位として(1フレーム時間として)行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。コントローラ5の通信部36は、例えば1/200秒に1回の割合で各操作データをゲーム装置3の無線コントローラモジュール19へ出力する。
【0067】
ゲーム装置3では、無線コントローラモジュール19を通じて入力される操作データに基づいて、種々の処理が行われる。例えば、前述のコントローラ5のXYZ軸の3軸回りの角速度を示すデータから、コントローラ5の姿勢が算出され、当該コントローラ5の姿勢に応じて仮想空間内のオブジェクトの動作が制御される。
【0068】
上記コントローラ5を用いることによって、プレイヤは、各操作ボタンを押下する従来の一般的なゲーム操作に加えて、コントローラ5を任意の方向(ロール方向、ピッチ方向、ヨー方向)に傾ける操作を行うことができる。その他、上記コントローラ5によれば、プレイヤは、コントローラ5によって画面上の任意の位置を指示する操作、及び、コントローラ5自体を動かす操作を行うこともできる。
【0069】
[ゲーム処理の詳細]
次に、図8〜図19を参照して、上記ゲームシステム1において実行されるゲーム処理について詳細に説明する。
【0070】
図8〜図10は、本実施形態においてゲームの実行中にテレビ2の画面に表示されるゲーム画像の例を示している。本実施形態において実行されるゲームでは、プレイヤの操作に応じて、ゲーム世界(仮想空間)内の所定のオブジェクトの動作が制御される。より具体的には、図8に示すように、ゲーム世界において、トロッコを模したオブジェクト90が線路上を進んでおり、プレイヤが入力装置8の姿勢を変化させると、それに応じてオブジェクト90が右方向または左方向に傾く。例えば、図9に示すように、線路が右へカーブしている箇所では、カーブの度合いに応じた適切な角度でオブジェクト90を右に傾ける必要がある。さもないとオブジェクト90は脱線してしまう。同様に、図10に示すように、線路が左へカーブしている箇所では、カーブの度合いに応じた適切な角度でオブジェクト90を左に傾ける必要がある。このゲームにおけるプレイヤの目標は、オブジェクト90を脱線させることなくゴール地点までオブジェクト90を導くことである。
【0071】
図11は、ゲームプログラム61の実行時に外部メインメモリ12(または内部メインメモリ11e)に格納されるデータの一例を示している。図11に示すように、外部メインメモリ12には、ゲームプログラム61、操作データ62、入力装置姿勢データ63、オブジェクトデータ64、その他データ65等が格納される。
【0072】
ゲームプログラム61は、ゲーム装置3のCPU10に、後述する図12〜図14のフローチャートで示される各種処理を実行させるためのコンピュータプログラムである。当該ゲームプログラム61は、例えば、光ディスク4から外部メインメモリ12にロードされる。
【0073】
操作データ62は、入力装置8からゲーム装置3へと送信される信号に含まれている、入力装置8に対するプレイヤの操作を示すデータである。操作データ62には、入力装置8のジャイロセンサユニット7から出力された角速度データ(X軸周りの角速度とY軸周りの角速度とZ軸周りの角速度とを示すデータ)が含まれている。
【0074】
入力装置姿勢データ63は、入力装置8の姿勢を示すデータであって、入力装置8のX軸周りの姿勢を表すピッチ角θp、入力装置8のZ軸周りの姿勢を表すロール角θr、および入力装置8のY軸周りの姿勢を表すヨー角θyを含む。ピッチ角θpは、基準姿勢(例えば、図1に示すように、入力装置8のZ軸の正方向をテレビ2に向け、入力装置8のY軸の正方向を鉛直上方に向けたときの入力装置8の姿勢)からのX軸周りの回転角度を示している。ロール角θrは、基準姿勢からのZ軸周りの回転角度を示している。ヨー角θyは、基準姿勢からのY軸周りの回転角度を示している。
【0075】
オブジェクトデータ64は、ゲーム世界におけるオブジェクト90に関するデータであって、オブジェクト90の形状、位置、姿勢、模様等のデータを含む。オブジェクト90の姿勢は、例えば、姿勢ベクトルで表される。
【0076】
次に、図12〜図14のフローチャートを参照して、ゲームプログラム61に基づくCPU10の処理の流れを説明する。
【0077】
ゲームプログラム61の実行が開始されると、図12のステップS10において、CPU10は、初期化処理を行う。ここでは、ゲーム処理に用いられる各種変数に初期値をセットしたり、入力装置8の基準姿勢を取得(すなわち、図1に示すような位置に入力装置8を置くようにプレイヤに指示した後、入力装置姿勢データ63のピッチ角θp、ロール角θr、およびヨー角θyを0にセットする)したり等の処理が行われる。
【0078】
ステップS11において、CPU10は、仮想空間の所定位置にオブジェクト90を配置する。
【0079】
ステップS12において、CPU10は、オブジェクト90の移動制御を行う。すなわち、線路の起伏等に応じて、ゲーム世界におけるオブジェクト90の位置を更新する。
【0080】
ステップS13において、CPU10は、入力装置8から操作データ62を取得して、外部メインメモリ12に格納する。
【0081】
ステップS14において、CPU10は、操作データ62に含まれる角速度データに基づいて、入力装置8の姿勢(X軸周りの姿勢、Y軸周りの姿勢、およびZ軸周りの姿勢)を検出して、入力装置姿勢データ63のピッチ角θp、ロール角θr、およびヨー角θyを更新する。
【0082】
ステップS15において、CPU10は、ピッチ角θpが第1範囲内かどうかを判断する。本実施形態では、ステップS15および後述するステップS17において、ピッチ角θpに基づいて、プレイヤが入力装置8を「前向き持ち」で持っているのか、「上向き持ち」でもっているのかが判断される。「前向き持ち」とは、図15に示すように、入力装置8のZ軸の正方向がプレイヤから見て概ね前方を向くような持ち方であり、「上向き持ち」とは、図16に示すように、入力装置8のZ軸の正方向がプレイヤから見て概ね上方を向くような持ち方である。ステップS15では、CPU10は、ピッチ角θpが第1範囲内かどうかを判断し、第1範囲内である場合には「前向き持ち」であると判断してステップS16に進み、そうでない場合にはステップS17に進む。本実施形態では、第1範囲は、図17に示すように、−90°〜+45°の範囲とする。
【0083】
ステップS16において、CPU10は、第1制御処理を行う。第1制御処理は、ロール角θr(図18参照)に基づいてオブジェクト90の姿勢を制御する処理である。第1制御処理の詳細は後述する。
【0084】
ステップS17において、CPU10は、ピッチ角θpが第2範囲内かどうかを判断し、第2範囲内である場合には「上向き持ち」であると判断してステップS18に進み、そうでない場合にはステップS19に進む。本実施形態では、第2範囲は、図17に示すように、+45°〜+135°の範囲とする。
【0085】
ステップS18において、CPU10は、第2制御処理を行う。第2制御処理は、ヨー角θy(図19参照)に基づいてオブジェクト90の姿勢を制御する処理である。第2制御処理の詳細は後述する。
【0086】
ステップS19において、CPU10は、オブジェクト90の姿勢と、オブジェクト90の現在位置における線路のカーブ度合いとに基づいて、オブジェクト90が転倒するか否かを判定し、転倒すると判定された場合にはステップS20に進み、そうでない場合にはステップS21に進む。
【0087】
ステップS20において、CPU10は、オブジェクトの転倒処理(例えば、オブジェクト90が転倒して脱線してしまうアニメーション表示の開始)を行う。
【0088】
ステップS21において、CPU10は、ステップS12で更新されたオブジェクト90の位置、および、ステップS16またはステップS18で更新されたオブジェクト90の姿勢に基づいて、ゲーム世界のオブジェクト90を描画して、ゲーム画像を生成する。生成されたゲーム画像は、所定のタイミングでテレビ2へと出力され、テレビ2の画面に表示される。
【0089】
ステップS22において、CPU10は、ゲームが終了したかどうかを判断し、ゲームが終了した場合にはゲームプログラム61の実行を終了し、そうでない場合にはステップS12に戻る。
【0090】
次に、図13のフローチャートを参照して、図12のステップS16の第1制御処理について詳細に説明する。
【0091】
図13のステップS40において、CPU10は、ロール角θr(図18参照)の絶対値が第1閾値(例えば10°)以上かどうかを判断し、第1閾値以上である場合にはステップS41に進み、そうでない場合には第1制御処理を終了する。すなわち、ロール角θrの絶対値が第1閾値未満である場合には、ロール角θrに応じたオブジェクト90の姿勢の制御は行われない。この結果、プレイヤがオブジェクト90を傾けようとしていないにも関わらず、手ぶれに過敏に反応してオブジェクト90がふらついてしまうのを防止することができる。
【0092】
ステップS41において、CPU10は、ロール角θrの絶対値が第2閾値(例えば90°)以上かどうかを判断し、第2閾値以上である場合にはステップS43に進み、そうでない場合にはステップS42に進む。
【0093】
ステップS42において、CPU10は、ロール角θrに応じてオブジェクト90の姿勢(姿勢ベクトル)を更新する。
【0094】
ステップS43において、CPU10は、オブジェクトの転倒処理(例えば、オブジェクト90が転倒して脱線してしまうアニメーション表示の開始)を行う。すなわち、ロール角θrの絶対値が第2閾値以上である場合には、オブジェクト90の現在位置における線路のカーブ度合いに関係なく、オブジェクト90が転倒するようにしている。なお、第2閾値はゲーム進行の状況(例えば、線路のカーブの度合い)に応じて動的に変化させてもよい。
【0095】
このように、第1制御処理では、オブジェクト90の姿勢はロール角θrに応じて更新され、ヨー角θyには依存しない。
【0096】
次に、図14のフローチャートを参照して、図12のステップS18の第2制御処理について詳細に説明する。
【0097】
図14のステップS50において、CPU10は、ヨー角θy(図19参照)の絶対値が第3閾値(例えば10°)以上かどうかを判断し、第3閾値以上である場合にはステップS51に進み、そうでない場合には第2制御処理を終了する。すなわち、ヨー角θyの絶対値が第3閾値未満である場合には、ヨー角θyに応じたオブジェクト90の姿勢の制御は行われない。この結果、プレイヤがオブジェクト90を傾けようとしていないにも関わらず、手ぶれに過敏に反応してオブジェクト90がふらついてしまうのを防止することができる。なお、この第3閾値は、前述の第1閾値と同じ値であってもよいし、異なる値であってもよい。
【0098】
ステップS51において、CPU10は、ヨー角θyの絶対値が第4閾値(例えば90°)以上かどうかを判断し、第4閾値以上である場合にはステップS53に進み、そうでない場合にはステップS52に進む。なお、この第4閾値は、前述の第2閾値と同じ値であってもよいし、異なる値であってもよい。
【0099】
ステップS52において、CPU10は、ヨー角θyに応じてオブジェクト90の姿勢(姿勢ベクトル)を更新する。
【0100】
ステップS53において、CPU10は、オブジェクトの転倒処理(例えば、オブジェクト90が転倒して脱線してしまうアニメーション表示の開始)を行う。すなわち、ヨー角θyの絶対値が第4閾値以上である場合には、オブジェクト90の現在位置における線路のカーブ度合いに関係なく、オブジェクト90が転倒するようにしている。なお、第4閾値はゲーム進行の状況(例えば、線路のカーブの度合い)に応じて動的に変化させてもよい。
【0101】
このように、第2制御処理では、オブジェクト90の姿勢はヨー角θyに応じて更新され、ロール角θrには依存しない。
【0102】
[実施形態の効果]
以上のように、本実施形態では、プレイヤが入力装置8をどのように持っているかによって、入力装置8の入力操作モードが自動的に変化する。すなわち、プレイヤが入力装置8を「前向き持ち」しているときには、ロール角θrに応じてオブジェクト90の姿勢を制御する第1の入力操作モードが選択され、プレイヤが入力装置8を「上向き持ち」しているときには、ヨー角θyに応じてオブジェクト90の姿勢を制御する第2の入力操作モードが選択される。入力装置8をオブジェクト90と見立てた場合、プレイヤが入力装置8を「前向き持ち」しているときには、入力装置8をロール方向に傾けることによってオブジェクト90が左右に傾くのが、自然でかつ直感的である。同様に、プレイヤが入力装置8を「上向き持ち」しているときには、入力装置8をヨー方向に傾けることによってオブジェクト90が左右に傾くのが、自然でかつ直感的である。したがって、本実施形態によれば、プレイヤによる入力装置8の持ち方に関わらず、常に良好な操作性(すなわち、自然でかつ直感的な操作性)が得られるようになる。また、プレイヤは自分の好みにあった入力操作モードで入力操作ができるので、操作の自由度が増す。
【0103】
[変形例]
なお、上記実施形態では、ピッチ角θpが図17に示す第1範囲(−90°〜+45°の範囲)内のときには、ロール角θrに応じてオブジェクト90の姿勢が制御される第1の入力操作モードが選択され、ピッチ角θpが図17に示す第2範囲(+45°〜+135°の範囲)内のときには、ヨー角θyに応じてオブジェクト90の姿勢が制御される第2の入力操作モードが選択されるが、これは単なる一例に過ぎない。他の実施形態では、例えば、図20に示すように、ピッチ角θpがθ2をまたいで大きくなった時点で第1の入力操作モードから第2の入力操作モードへと入力操作モードが切り替わり、ピッチ角θpがθ1(ただしθ2>θ1)をまたいで小さくなった時点で第2の入力操作モードから第1の入力操作モードへと入力操作モードが切り替わるようにしてもよい。これにより、図17において例えばピッチ角θpが45°となるような状態でプレイヤが入力装置8を持っている場合に、入力操作モードが第1の入力操作モードと第2の入力操作モードとの間で頻繁に切り替わってしまうことを防止することができ、より良好な操作性が得られる。
【0104】
また、上記実施形態では、入力装置8のX軸周りの姿勢(ピッチ角θp)に応じて、第1の入力操作モードか第2の入力操作モードかを判断しているが、他の実施形態では、入力装置8の姿勢が任意の所定条件を満たすかどうかに応じて、第1の入力操作モードか第2の入力操作モードかを判断してもよい。例えば、図21に示すように、入力装置8の現在方向が、基準方向を中心とした所定の第1範囲に含まれている場合には、ロール角θrに応じてオブジェクト90の姿勢が制御され、入力装置8の現在方向が第1範囲の外側の第2範囲に含まれている場合には、ヨー角θyに応じてオブジェクト90の姿勢が制御されるようにしてもよい。なお、入力装置8の現在方向が第1範囲および第2範囲のいずれであるかの判断は、ピッチ角θpとヨー角θyを用いた演算によって判断してもよいし、ピッチ角θpとヨー角θyの条件を規定したテーブルを予め規定しておき、当該テーブルに基づいて判断してもよい。
【0105】
また、上記実施形態では、現在の入力操作モードが第1の入力操作モードと第2の入力操作モードのいずれであるかは、プレイヤに対して特に提示されていないが、他の実施形態では、現在の入力操作モードが第1の入力操作モードと第2の入力操作モードのいずれであるかをプレイヤに提示してもよい。例えば、現在の入力操作モードが第1の入力操作モードである場合には、図22に示すように、その旨を示す画像91をゲーム画像と同時に表示し、現在の入力操作モードが第2の入力操作モードである場合には、図23に示すように、その旨を示す画像91をゲーム画像と同時に表示してもよい。
【0106】
また、上記実施形態では、入力装置8の姿勢に応じてオブジェクトの姿勢を更新しているが、他の実施形態では、入力装置8の姿勢に応じてオブジェクトの位置または動作を更新してもよい。さらには、オブジェクトの制御に限らず、他の任意のゲームパラメータを入力装置8の姿勢に応じて更新するようにしてもよい。
【0107】
また、上記実施形態では、入力装置8のジャイロセンサユニット7から出力された角速度データ(X軸周りの角速度とY軸周りの角速度とZ軸周りの角速度とを示すデータ)に基づいて入力装置8の姿勢を検出しているが、入力装置8の姿勢の検出方法は任意である。例えば、入力装置8の加速度センサ37から出力される加速度データに基づいて入力装置8の姿勢を検出してもよい。この場合、加速度センサ37の3軸方向のそれぞれの加速度の値を検出することによって、入力装置8の重力加速度がどの向きにかかっているか、つまりは入力装置8の姿勢を判別することができる。また、例えば、入力装置8をカメラで撮影することによって入力装置8の姿勢を検出してもよい。
【0108】
また、上記実施形態では、第1制御処理において入力装置8のZ軸周りの姿勢(ロール角θr)の変化に応じてオブジェクト90の姿勢を更新しているが、他の実施形態では、入力装置8のZ軸とは異なる任意の所定軸周りの姿勢の変化に応じてオブジェクト90の姿勢を更新してもよい。同様に、上記実施形態では、第2制御処理において入力装置8のX軸周りの姿勢(ヨー角θy)の変化に応じてオブジェクト90の姿勢を更新しているが、他の実施形態では、入力装置8のX軸とは異なる任意の所定軸周りの姿勢の変化に応じてオブジェクト90の姿勢を更新してもよい。
【0109】
また、上記実施形態では、第1制御処理においてロール角θrが第1閾値未満のときには、ロール角θrに応じたオブジェクト90の姿勢の更新は行っていないが、他の実施形態では、ロール角θrが第1閾値未満のときにもロール角θrに応じたオブジェクト90の姿勢の更新を行ってもよい。同様に、上記実施形態では、第2制御処理においてヨー角θyが第3閾値未満のときには、ヨー角θyに応じたオブジェクト90の姿勢の更新は行っていないが、他の実施形態では、ヨー角θyが第3閾値未満のときにもヨー角θyに応じたオブジェクト90の姿勢の更新を行ってもよい。
【0110】
また、上記実施形態では、入力装置8とゲーム装置3とが無線通信によって接続されているが、他の実施形態では、入力装置8とゲーム装置3とがケーブルを介して電気的に接続されてもよい。
【0111】
また、上記実施形態では、ゲーム装置3のCPU10がゲームプログラム61を実行することによって、上述したフローチャートの処理が行われたが、他の実施形態では、上述したフローチャートの処理の一部又は全部が、ゲーム装置3が備える専用回路によって行われてもよい。
【0112】
また、上記実施形態では、1台のゲーム装置3によって上記ゲーム処理を実行しているが、他の実施形態では、互いに通信可能な複数のゲーム装置からなるゲームシステムによって上記ゲーム処理を分担して実行するようにしてもよい。例えば、ゲーム装置と、当該ゲーム装置とネットワークを介して通信可能なサーバ装置とを含むゲームシステムにおいて、上記一連の処理のうちの一部の処理(例えば、上記ステップS16の第1制御処理、上記ステップS18の第2制御処理等)がサーバ装置によって実行されてもよい。また、上記ゲームシステムにおいて、サーバ装置は、複数の情報処理装置によって構成され、サーバで実行するべき処理を複数の情報処理装置が分担して実行してもよい。
【0113】
なお、ゲーム装置としては、ゲームプログラム61を実行することによって上記ゲーム処理を実行可能な任意の情報処理装置(例えば、据え置き型ゲーム装置、携帯型ゲーム装置、パーソナルコンピュータ、携帯電話など)を用いることができる。
【符号の説明】
【0114】
1 ゲームシステム
2 テレビジョン受像器(テレビ)
3 ゲーム装置
4 光ディスク
5 コントローラ
6 マーカ部
6R マーカ
6L マーカ
7 ジャイロセンサユニット
8 入力装置
90 オブジェクト
91 現在の入力操作モードを示す画像
【特許請求の範囲】
【請求項1】
入力装置の姿勢に基づいてゲーム処理を行うゲーム装置のコンピュータを、
前記入力装置の姿勢を検出する姿勢検出手段、
前記入力装置の姿勢が第1条件を満たしているか第2条件を満たしているかを判断する姿勢判断手段、および
前記入力装置の姿勢が前記第1条件を満たしている間は、前記入力装置の第1軸周りの姿勢の変化に応じて特定のゲームパラメータを更新し、前記入力装置の姿勢が前記第2条件を満たしている間は、前記入力装置の第2軸周りの姿勢の変化に応じて前記特定のゲームパラメータを更新するゲーム処理手段として機能させる、ゲームプログラム。
【請求項2】
前記姿勢判断手段は、前記入力装置の第3軸周りの姿勢が前記第1条件を満たしているか前記第2条件を満たしているかを判断する、請求項1記載のゲームプログラム。
【請求項3】
前記ゲーム処理手段は、前記入力装置の姿勢が前記第1条件と前記第2条件のいずれも満たしていない間は、前記入力装置の前記第1軸周りの姿勢の変化も、前記入力装置の前記第2軸周りの姿勢の変化も、前記特定のゲームパラメータに反映させない、請求項1記載のゲームプログラム。
【請求項4】
前記入力装置は角速度センサを含み、
前記姿勢検出手段は、前記角速度センサから出力される角速度データに基づいて、前記入力装置の姿勢を検出する、請求項1記載のゲームプログラム。
【請求項5】
前記角速度センサは、前記入力装置の前記第1軸周りの角速度、前記第2軸周りの角速度、および前記第3軸周りの角速度を検出可能であり、
前記姿勢検出手段は、前記角速度センサによって検出される前記入力装置の前記第1軸周りの角速度、前記第2軸周りの角速度、および前記第3軸周りの角速度に基づいて、前記入力装置の前記第1軸周りの姿勢、前記第2軸周りの姿勢、および前記第3軸周りの姿勢を検出する、請求項4記載のゲームプログラム。
【請求項6】
前記ゲーム処理手段は、
所定の基準姿勢からの前記入力装置の前記第1軸周りの姿勢の変化量が、所定の閾値を超えたかどうかを判断する第1判断手段と、
所定の基準姿勢からの前記入力装置の前記第2軸周りの姿勢の変化量が、所定の閾値を超えたかどうかを判断する第2判断手段とを含み、
前記ゲーム処理手段は、前記入力装置の姿勢が前記第1条件を満たしている間は、前記第1判断手段の判断結果が肯定である場合に限り、前記入力装置の第1軸周りの姿勢の変化に応じて前記特定のゲームパラメータを更新し、前記入力装置の姿勢が前記第2条件を満たしている間は、前記第2判断手段の判断結果が肯定である場合に限り、前記入力装置の第2軸周りの姿勢の変化に応じて前記特定のゲームパラメータを更新する、請求項1記載のゲームプログラム。
【請求項7】
前記コンピュータを、
前記特定のゲームパラメータに応じたゲーム画像を生成するゲーム画像生成手段としてさらに機能させる、請求項1記載のゲームプログラム。
【請求項8】
前記特定のゲームパラメータは、ゲーム世界の特定のオブジェクトの位置、姿勢及び動作の少なくともいずれか1つに影響を与えるゲームパラメータであり、
前記ゲーム画像生成手段は、前記特定のオブジェクトを含むゲーム画像を生成する、請求項7記載のゲームプログラム。
【請求項9】
前記ゲーム画像生成手段は、前記姿勢判断手段の判断結果を示す画像を含む前記ゲーム画像を生成する、請求項8記載のゲームプログラム。
【請求項10】
入力装置の姿勢に基づいてゲーム処理を行うゲーム装置であって、
前記入力装置の姿勢を検出する姿勢検出手段、
前記入力装置の姿勢が第1条件を満たしているか第2条件を満たしているかを判断する姿勢判断手段、および
前記入力装置の姿勢が前記第1条件を満たしている間は、前記入力装置の第1軸周りの姿勢の変化に応じて特定のゲームパラメータを更新し、前記入力装置の姿勢が前記第2条件を満たしている間は、前記入力装置の第2軸周りの姿勢の変化に応じて前記特定のゲームパラメータを更新するゲーム処理手段を備える、ゲーム装置。
【請求項11】
入力装置の姿勢に基づいてゲーム処理を行うゲームシステムであって、
前記入力装置の姿勢を検出する姿勢検出手段、
前記入力装置の姿勢が第1条件を満たしているか第2条件を満たしているかを判断する姿勢判断手段、および
前記入力装置の姿勢が前記第1条件を満たしている間は、前記入力装置の第1軸周りの姿勢の変化に応じて特定のゲームパラメータを更新し、前記入力装置の姿勢が前記第2条件を満たしている間は、前記入力装置の第2軸周りの姿勢の変化に応じて前記特定のゲームパラメータを更新するゲーム処理手段を備える、ゲームシステム。
【請求項12】
入力装置の姿勢に基づいてゲーム処理を行うゲーム方法であって、
前記入力装置の姿勢を検出する姿勢検出ステップ、
前記入力装置の姿勢が第1条件を満たしているか第2条件を満たしているかを判断する姿勢判断ステップ、および
前記入力装置の姿勢が前記第1条件を満たしている間は、前記入力装置の第1軸周りの姿勢の変化に応じて特定のゲームパラメータを更新し、前記入力装置の姿勢が前記第2条件を満たしている間は、前記入力装置の第2軸周りの姿勢の変化に応じて前記特定のゲームパラメータを更新するゲーム処理ステップを備える、ゲーム方法。
【請求項1】
入力装置の姿勢に基づいてゲーム処理を行うゲーム装置のコンピュータを、
前記入力装置の姿勢を検出する姿勢検出手段、
前記入力装置の姿勢が第1条件を満たしているか第2条件を満たしているかを判断する姿勢判断手段、および
前記入力装置の姿勢が前記第1条件を満たしている間は、前記入力装置の第1軸周りの姿勢の変化に応じて特定のゲームパラメータを更新し、前記入力装置の姿勢が前記第2条件を満たしている間は、前記入力装置の第2軸周りの姿勢の変化に応じて前記特定のゲームパラメータを更新するゲーム処理手段として機能させる、ゲームプログラム。
【請求項2】
前記姿勢判断手段は、前記入力装置の第3軸周りの姿勢が前記第1条件を満たしているか前記第2条件を満たしているかを判断する、請求項1記載のゲームプログラム。
【請求項3】
前記ゲーム処理手段は、前記入力装置の姿勢が前記第1条件と前記第2条件のいずれも満たしていない間は、前記入力装置の前記第1軸周りの姿勢の変化も、前記入力装置の前記第2軸周りの姿勢の変化も、前記特定のゲームパラメータに反映させない、請求項1記載のゲームプログラム。
【請求項4】
前記入力装置は角速度センサを含み、
前記姿勢検出手段は、前記角速度センサから出力される角速度データに基づいて、前記入力装置の姿勢を検出する、請求項1記載のゲームプログラム。
【請求項5】
前記角速度センサは、前記入力装置の前記第1軸周りの角速度、前記第2軸周りの角速度、および前記第3軸周りの角速度を検出可能であり、
前記姿勢検出手段は、前記角速度センサによって検出される前記入力装置の前記第1軸周りの角速度、前記第2軸周りの角速度、および前記第3軸周りの角速度に基づいて、前記入力装置の前記第1軸周りの姿勢、前記第2軸周りの姿勢、および前記第3軸周りの姿勢を検出する、請求項4記載のゲームプログラム。
【請求項6】
前記ゲーム処理手段は、
所定の基準姿勢からの前記入力装置の前記第1軸周りの姿勢の変化量が、所定の閾値を超えたかどうかを判断する第1判断手段と、
所定の基準姿勢からの前記入力装置の前記第2軸周りの姿勢の変化量が、所定の閾値を超えたかどうかを判断する第2判断手段とを含み、
前記ゲーム処理手段は、前記入力装置の姿勢が前記第1条件を満たしている間は、前記第1判断手段の判断結果が肯定である場合に限り、前記入力装置の第1軸周りの姿勢の変化に応じて前記特定のゲームパラメータを更新し、前記入力装置の姿勢が前記第2条件を満たしている間は、前記第2判断手段の判断結果が肯定である場合に限り、前記入力装置の第2軸周りの姿勢の変化に応じて前記特定のゲームパラメータを更新する、請求項1記載のゲームプログラム。
【請求項7】
前記コンピュータを、
前記特定のゲームパラメータに応じたゲーム画像を生成するゲーム画像生成手段としてさらに機能させる、請求項1記載のゲームプログラム。
【請求項8】
前記特定のゲームパラメータは、ゲーム世界の特定のオブジェクトの位置、姿勢及び動作の少なくともいずれか1つに影響を与えるゲームパラメータであり、
前記ゲーム画像生成手段は、前記特定のオブジェクトを含むゲーム画像を生成する、請求項7記載のゲームプログラム。
【請求項9】
前記ゲーム画像生成手段は、前記姿勢判断手段の判断結果を示す画像を含む前記ゲーム画像を生成する、請求項8記載のゲームプログラム。
【請求項10】
入力装置の姿勢に基づいてゲーム処理を行うゲーム装置であって、
前記入力装置の姿勢を検出する姿勢検出手段、
前記入力装置の姿勢が第1条件を満たしているか第2条件を満たしているかを判断する姿勢判断手段、および
前記入力装置の姿勢が前記第1条件を満たしている間は、前記入力装置の第1軸周りの姿勢の変化に応じて特定のゲームパラメータを更新し、前記入力装置の姿勢が前記第2条件を満たしている間は、前記入力装置の第2軸周りの姿勢の変化に応じて前記特定のゲームパラメータを更新するゲーム処理手段を備える、ゲーム装置。
【請求項11】
入力装置の姿勢に基づいてゲーム処理を行うゲームシステムであって、
前記入力装置の姿勢を検出する姿勢検出手段、
前記入力装置の姿勢が第1条件を満たしているか第2条件を満たしているかを判断する姿勢判断手段、および
前記入力装置の姿勢が前記第1条件を満たしている間は、前記入力装置の第1軸周りの姿勢の変化に応じて特定のゲームパラメータを更新し、前記入力装置の姿勢が前記第2条件を満たしている間は、前記入力装置の第2軸周りの姿勢の変化に応じて前記特定のゲームパラメータを更新するゲーム処理手段を備える、ゲームシステム。
【請求項12】
入力装置の姿勢に基づいてゲーム処理を行うゲーム方法であって、
前記入力装置の姿勢を検出する姿勢検出ステップ、
前記入力装置の姿勢が第1条件を満たしているか第2条件を満たしているかを判断する姿勢判断ステップ、および
前記入力装置の姿勢が前記第1条件を満たしている間は、前記入力装置の第1軸周りの姿勢の変化に応じて特定のゲームパラメータを更新し、前記入力装置の姿勢が前記第2条件を満たしている間は、前記入力装置の第2軸周りの姿勢の変化に応じて前記特定のゲームパラメータを更新するゲーム処理ステップを備える、ゲーム方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【公開番号】特開2011−255121(P2011−255121A)
【公開日】平成23年12月22日(2011.12.22)
【国際特許分類】
【出願番号】特願2010−134562(P2010−134562)
【出願日】平成22年6月11日(2010.6.11)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
【公開日】平成23年12月22日(2011.12.22)
【国際特許分類】
【出願日】平成22年6月11日(2010.6.11)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
[ Back to top ]