ゲーム装置およびゲームプログラム
【課題】加速度センサ等の速度を検出できる入力装置を用いたゲーム装置において、入力装置の動きが激しい場合であっても、プレイヤの意図に沿った動作を表示できるゲーム装置を提供すること。
【解決手段】入力装置の動きに応じて出力される操作情報を逐次取得し、当該操作情報を用いて入力装置が動いたことを判定して、当該入力装置が動く方向および当該入力装置の移動速度を判定する。次に、移動速度が第1の閾値以上であるかを判定し、第1の閾値以上であれば、予め決められた移動経路の情報に基づいてオブジェクトが仮想ゲーム世界を移動する経路を決定し、第1の閾値未満であれば、判定された移動速度に基づいてオブジェクトが仮想ゲーム世界を移動する経路を決定する。そして、決定された移動経路に基づいてオブジェクトが仮想ゲーム世界における位置を移動する様子を表示する。
【解決手段】入力装置の動きに応じて出力される操作情報を逐次取得し、当該操作情報を用いて入力装置が動いたことを判定して、当該入力装置が動く方向および当該入力装置の移動速度を判定する。次に、移動速度が第1の閾値以上であるかを判定し、第1の閾値以上であれば、予め決められた移動経路の情報に基づいてオブジェクトが仮想ゲーム世界を移動する経路を決定し、第1の閾値未満であれば、判定された移動速度に基づいてオブジェクトが仮想ゲーム世界を移動する経路を決定する。そして、決定された移動経路に基づいてオブジェクトが仮想ゲーム世界における位置を移動する様子を表示する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲーム装置およびゲームプログラムに関し、より特定的には、入力装置自体の動きに応じてゲーム処理を行うゲーム装置およびゲームプログラムに関する。
【背景技術】
【0002】
従来から、ゴルフクラブや野球のバット等のような棒状物を振るゲーム(ゴルフゲームや野球ゲーム)がある。これらのゲームにおいては、棒状物を振る動作を入力するためのコントローラに、スイッチを利用したボタンやレバーを用いていた。また、これとは別に、棒状の形状をしたコントローラ(入力制御装置)も開示されている(例えば特許文献1)。特許文献1に示すコントローラは、加速度センサを備えている。そして、プレイヤは、この棒状のコントローラを手に持ち、実際に振る動作を行う。例えば、剣劇を体感できる3Dゲームのような場合は、当該棒状のコントローラを刀剣に見立て、プレイヤがコントローラで刀剣を振るような動作を行う。すると、加速度センサから出力されるデータに基づいて、ゲーム空間内における刀剣の移動データが決められ、プレイヤの動作に沿ってプレイヤオブジェクトが刀剣を振る動作がゲーム画像として表示されていた。
【特許文献1】特開2000−308756号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、上述したような上記特許文献1に開示された入力制御装置においては、以下に示す問題点があった。例えば、上記棒状のコントローラを激しく振った場合などは、その動きの早さに加速度センサの検出速度が追いつかず、その結果、プレイヤが実際に行った操作とは異なる動きの移動データが求められることがあった。そのため、プレイヤが意図した動作が表現されずに、利用者の動作とはかけ離れた動作が表示されたり、全く反映されていない動作が表示されたりすることがあり、ゲームの興趣を低下させていた。
【0004】
それゆえに、本発明の目的は、加速度センサ等の速度を検出できる入力装置を用いたゲーム装置において、入力装置の動きが激しい場合であっても、プレイヤの意図に沿った動作を表示できるゲーム装置おびゲームプログラムを提供することである。
【課題を解決するための手段】
【0005】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【0006】
第1の発明は、入力装置自体の動きに応じてゲーム処理を行うゲーム装置であって、出力データ取得手段(6,36)と、移動座標決定手段(30)と、オブジェクト移動手段(30)と、表示制御手段(30、37)とを備える。出力データ取得手段は、前記入力装置自体の動きに応じて変化する第1出力データ及び第2出力データを取得する。移動座標決定手段は、第1出力データが第1の閾値以上であるかを判定し、第1の閾値以上であれば所定の経路に沿って予め決められた変化量でオブジェクトを仮想ゲーム空間で次に移動させる座標を決定し、第1の閾値未満であれば第1出力データ、及び第2出力データを用い、所定の経路に沿ってオブジェクトを仮想ゲーム空間で次に移動させる座標を決定する。オブジェクト移動手段は、仮想ゲーム空間でオブジェクトを決定された移動座標へ移動させる。表示制御手段は、オブジェクト移動手段の結果に応じて、仮想ゲーム空間を表示装置に表示させる。ここで、第1出力データとは、例えば、入力装置自体がZ軸方向へ向かう動きについてのデータであり、第2出力データとは、例えば、X軸方向に向かう動きのデータ等が考えられる。
【0007】
第2の発明は、第1の発明において、移動座標決定手段は、前記第1出力データが前記第1の閾値未満の時は、前記第2出力データに基づいた前記入力装置自体の動く方向に対応した前記仮想ゲーム空間の前記所定の経路に沿った方向に前記オブジェクトを移動させる座標を決定する。
【0008】
第3の発明は、第1の発明において、ゲーム装置は、前記第1出力データ、及び第2出力データを用いて前記入力装置自体の傾きを算出する傾き算出手段(30)を更に備える。また、移動経路決定手段は、第1出力データが第1の閾値未満の時は、傾き算出手段で算出された傾きに基づいて仮想ゲーム空間の所定の経路に沿った方向にオブジェクトを移動させる座標を決定する。
【0009】
第4の発明は、第1の発明において、前記移動座標決定手段は、第1出力データが第1の閾値以上であるときに、第2出力データが第2の閾値以上であれば所定の経路に沿って予め決められた変化量でオブジェクトを仮想ゲーム空間で次に移動させる座標を決定し、第2の閾値未満であれば第1出力データ、及び第2出力データを用い、所定の経路に沿ってオブジェクトを仮想ゲーム空間で次に移動させる座標を決定する。
【0010】
第5の発明は、第1の発明において、ゲーム装置は、単位時間毎の第2出力データの値を累積する出力データ累積手段(30)を更に備える。また、移動座標決定手段は、累積された第2出力データの値が第3の閾値以上であるかを単位時間毎に判定し、第3の閾値以上であれば、所定の経路に沿って予め決められた変化量でオブジェクトを仮想ゲーム空間で次に移動させる座標を決定し、第3の閾値未満であれば、第1出力データ、及び第2出力データを用い、所定の経路に沿ってオブジェクトを仮想ゲーム空間で次に移動させる座標を決定する。
【0011】
第6の発明は、第5の発明において、出力データ累積手段は、第1出力データの値が第1の閾値以上である状態が所定時間以上継続しているときにのみ第2出力データの値の累積を開始する。
【0012】
第7の発明は、第6の発明において、ゲーム装置は、出力データ累積手段が第2出力データの値の累積を開始した後、第1出力データが第1の閾値以下になったとき、第2出力データの累積した値を初期化する累積値初期化手段(30)を更に備える。
【0013】
第8の発明は、第5の発明において、ゲーム装置は、プレイヤの利き腕についての情報である利き腕情報を設定して記憶する利き腕情報記憶手段を更に備える。また、出力データ累積手段は、利き腕情報に応じて、入力装置自体の動きの方向別に第2出力データの値の累積を開始する。
【0014】
第9の発明は、第1の発明において、移動座標決定手段は、所定の経路に沿ってオブジェクトを仮想ゲーム空間で次に移動させる座標を決定した後から所定の時間が経過するまでの間は、第1出力データが第1の閾値以上であるかどうかに関わらず所定の経路に沿ってオブジェクトを仮想ゲーム空間で次に移動させる座標を決定する。
【0015】
第10の発明は、第1の発明において、入力装置は、当該入力装置に生じる加速度を検出する加速度センサを備えている。また、第1出力データ、及び第2出力データは、入力装置自体の動きに応じて加速度センサから出力される加速度データである。
【0016】
第11の発明は、第1の発明において、ゲーム処理は、仮想ゲーム世界においてプレイヤキャラクタが所持するアイテムをスイングしてボールを打撃して当該ボールを飛ばすゲームを実行する処理である。また、オブジェクトは、プレイヤキャラクタが所持するアイテムオブジェクトである。また、所定の経路は、プレイヤキャラクタがアイテムをスイングする一連の動作を表示させるための情報である。
【0017】
第12の発明は、入力装置自体の動きに応じてゲーム処理を行うゲーム装置のコンピュータで実行されるゲームプログラムであって、出力データ取得ステップ(S11)と、移動座標決定ステップ(S2)と、オブジェクト移動ステップ(S32、S36)と、表示制御ステップ(S32、S36)とをコンピュータに実行させる。出力データ取得ステップは、入力装置自体の動きに応じて変化する第1出力データ及び第2出力データを取得する。移動座標決定ステップは、第1出力データが第1の閾値以上であるかを判定し、第1の閾値以上であれば所定の経路に沿って予め決められた変化量でオブジェクトを仮想ゲーム空間で次に移動させる座標を決定し、第1の閾値未満であれば第1出力データ、及び第2出力データを用い、所定の経路に沿ってオブジェクトを仮想ゲーム空間で次に移動させる座標を決定する。オブジェクト移動ステップは、仮想ゲーム空間でオブジェクトを決定された移動座標へ移動させる。表示制御ステップは、オブジェクト移動ステップの処理結果に応じて、仮想ゲーム空間を表示装置に表示させる。
【0018】
第13の発明は、第12の発明において、第1出力データが第1の閾値未満の時は、第2出力データに基づいた入力装置自体の動く方向に対応した仮想ゲーム空間の所定の経路に沿った方向にオブジェクトを移動させる座標を決定する。
【0019】
第14の発明は、第12の発明において、ゲームプログラムは、第1出力データ、及び第2出力データを用いて入力装置自体の傾きを算出する傾き算出ステップ(S35)を更に実行させる。また、移動座標決定ステップは、第1出力データが第1の閾値未満の時は、傾き算出手段で算出された傾きに基づいて仮想ゲーム空間の所定の経路に沿った方向にオブジェクトを移動させる座標を決定する。
【0020】
第15の発明は、第12の発明において、移動座標決定ステップは、第1出力データが第1の閾値以上であるときに、第2出力データが第2の閾値以上であれば所定の経路に沿って予め決められた変化量でオブジェクトを仮想ゲーム空間で次に移動させる座標を決定し、第2の閾値未満であれば第1出力データ、及び第2出力データを用い、所定の経路に沿ってオブジェクトを仮想ゲーム空間で次に移動させる座標を決定する。
【0021】
第16の発明は、第12の発明において、ゲームプログラムは、単位時間毎の第2出力データの値を累積する出力データ累積ステップを更に実行させる。また、移動座標決定ステップは、累積された第2出力データの値が第3の閾値以上であるかを単位時間毎に判定し、第3の閾値以上であれば、所定の経路に沿って予め決められた変化量でオブジェクトを仮想ゲーム空間で次に移動させる座標を決定し、第3の閾値未満であれば、第1出力データ、及び第2出力データを用い、所定の経路に沿ってオブジェクトを仮想ゲーム空間で次に移動させる座標を決定する。
【0022】
第17の発明は、第16の発明において、出力データ累積ステップは、第1出力データの値が第1の閾値以上である状態が所定時間以上継続しているときにのみ第2出力データの値の累積を開始する。
【0023】
第18の発明は、第17の発明において、ゲームプログラムは、出力データ累積ステップが第2出力データの値の累積を開始した後、第1出力データが第1の閾値以下になったとき、第2出力データの累積した値を初期化する累積値初期化ステップ(S27)を更に実行させる。
【0024】
第19の発明は、第16の発明において、ゲームプログラムは、プレイヤの利き腕についての情報である利き腕情報を設定してメモリに記憶する利き腕情報記憶ステップを更に実行させる。また、出力データ累積ステップは、利き腕情報に応じて、入力装置自体の動きの方向別に第2出力データの値の累積を開始する。
【0025】
第20の発明は、第12の発明において、移動経路決定ステップは、所定の経路に沿ってオブジェクトを仮想ゲーム空間で次に移動させる座標を決定した後から所定の時間が経過するまでの間は、第1出力データが第1の閾値以上であるかどうかに関わらず所定の経路に沿ってオブジェクトを仮想ゲーム空間で次に移動させる座標を決定する。
【0026】
第21の発明は、第12の発明において、入力装置は、当該入力装置に生じる加速度を検出する加速度センサを備えている。また、第1出力データ、及び第2出力データは、入力装置の動きに応じて加速度センサから出力される加速度データである。
【0027】
第22の発明は、第12の発明において、ゲーム処理は、仮想ゲーム世界においてプレイヤキャラクタが所持するアイテムをスイングしてボールを打撃して当該ボールを飛ばすゲームを実行する処理である。また、オブジェクトとは、プレイヤキャラクタが所持するアイテムオブジェクトである。また、所定の経路は、プレイヤキャラクタがアイテムをスイングする一連の動作を表示させるための経路である。
【発明の効果】
【0028】
上記第1の発明によれば、入力装置の移動速度が速すぎて、プレイヤの腕の動きを正確に反映することができないような場合は、予め用意されている、プレイヤが行うであろう動作のアニメーションを表示する。また、そこまで移動速度が大きくないときは、プレイヤの腕の動きを反映した動作を逐次表示する。これにより、プレイヤの腕の振りが速すぎること等が原因でプレイヤの意図しない動作が表示されてしまうことを防ぐことができる。
【0029】
上記第2の発明によれば、入力装置自体を動かした方向に応じてオブジェクトも移動するため、プレイヤのゲームに対する一体感を高め、感情移入がしやすくなり、ゲームの興趣を高めることができる。
【0030】
上記第3の発明によれば、更に入力装置の傾きに応じてオブジェクトを移動させることができるため、ゲーム空間内におけるオブジェクトの移動具合のリアリティを高め、プレイヤはゲームに対してより強い感情移入を行うことが可能となる。その結果、ゲームの興趣をより高めることができる。
【0031】
上記第4の発明によれば、例えばX軸方向のような傾き判定に用いる方向軸とは異なる方向軸(例えばZ軸方向)を用いて、入力装置の移動座標を決定する。そのため、入力装置の動き、ひいてはプレイヤが腕を振った動作を、より正確に検出することができ、プレイヤの意図しない動作が表示されてしまうことをより適切に防ぐことができる。
【0032】
上記第5の発明によれば、出力データを累積してから判定を行うため、過敏な反応によりプレイヤに与える違和感を低減することができる。
【0033】
上記第6の発明によれば、第1出力データの値がある程度の値のまま継続したとき第2出力データの累積を開始するため、過敏な反応によりプレイヤに与える違和感を低減することができる。
【0034】
上記第7の発明によれば、累積した値を初期化するため、例えば、プレイヤが腕を振っている途中に急に腕の振りを停止したとき等に、プレイヤが入力装置を動かす動作をより正確に反映することができる。
【0035】
上記第8の発明によれば、プレイヤの利き腕に応じた方向別に移動速度を検知する。そのため、右利き・左利きの双方のプレイヤに対応したゲームを提供することができ、より感情移入を行いやすくさせることが可能となる。その結果、ゲームの興趣をより高めることができる。
【0036】
上記第9の発明によれば、一旦決められた経路の動作が始まれば、所定時間内は当該動作が逐次表示されていく。そのため、一旦決められた経路の動作が始まった後の操作ミス等で、プレイヤの意図しない動作が表示されてしまうことを防ぐことができる。
【0037】
上記第10の発明によれば、加速度センサを用いて移動速度を判定することができる。そのため、より正確な移動速度の判定が可能となる。
【0038】
上記第11の発明によれば、入力装置の移動速度が速すぎることによりプレイヤの意図しない動作が行われることを低減することができ、ゴルフゲームにおけるゴルフクラブのスイング動作や野球ゲームにおけるバットのスイング動作等のように、行うべき動作がある程度決まっているようなゲームにおいて、より効果的にゲームの興趣を高めることが可能となる。
【0039】
また、本発明のゲームプログラムによれば、上述した本発明のゲーム装置と同様の効果を得ることができる。
【発明を実施するための最良の形態】
【0040】
以下、本発明の実施の形態について、図面を参照して説明する。尚、この実施例により本発明が限定されるものではない。
【0041】
図1を参照して、本発明の一実施形態に係るゲーム装置について説明する。以下、説明を具体的にするために、当該ゲーム装置を用いたゲームシステム1を一例として説明する。なお、図1は、当該ゲームシステム1を説明するための外観図である。以下、据置型ゲーム装置を一例にして、当該ゲームシステム1について説明する。
【0042】
図1において、当該ゲームシステム1は、家庭用テレビジョン受像機等のスピーカ2aを備えたディスプレイ(以下、モニタと記載する)2に、接続コードを介して接続される据置型ゲーム装置(以下、単にゲーム装置と記載する)3および当該ゲーム装置3に操作情報を与えるコントローラ7によって構成される。ゲーム装置3は、接続端子を介して受信ユニット6が接続される。受信ユニット6は、コントローラ7から無線送信される送信データを受信し、コントローラ7とゲーム装置3とは無線通信によって接続される。また、ゲーム装置3には、当該ゲーム装置3に対して交換可能に用いられる情報記憶媒体の一例の光ディスク4が脱着される。ゲーム装置3の上部主面には、当該ゲーム装置3の電源ON/OFFスイッチ、ゲーム処理のリセットスイッチ、およびゲーム装置3上部の蓋を開くOPENスイッチが設けられている。ここで、プレイヤがOPENスイッチを押下することによって上記蓋が開き、光ディスク4の脱着が可能となる。
【0043】
また、ゲーム装置3には、セーブデータ等を固定的に記憶するバックアップメモリ等を搭載する外部メモリカード5が必要に応じて着脱自在に装着される。ゲーム装置3は、光ディスク4に記憶されたゲームプログラムなどを実行することによって、その結果をゲーム画像としてモニタ2に表示する。さらに、ゲーム装置3は、外部メモリカード5に記憶されたセーブデータを用いて、過去に実行されたゲーム状態を再現して、ゲーム画像をモニタ2に表示することもできる。そして、ゲーム装置3のプレイヤは、モニタ2に表示されたゲーム画像を見ながら、コントローラ7を操作することによって、ゲーム進行を楽しむことができる。
【0044】
コントローラ7は、その内部に備える通信部75(後述)から受信ユニット6が接続されたゲーム装置3へ、例えばBluetooth(ブルートゥース;登録商標)の技術を用いて送信データを無線送信する。コントローラ7は、主にモニタ2に表示されるゲーム空間に登場するプレイヤオブジェクトを操作するための操作手段である。コントローラ7は、複数の操作ボタン、キー、およびスティック等の操作部が設けられている。また、後述により明らかとなるが、コントローラ7は、当該コントローラ7から見た画像を撮像する撮像情報演算部74を備えている。また、撮像情報演算部74の撮像対象の一例として、モニタ2の表示画面近傍に2つのLEDモジュール(以下、マーカと記載する)8Lおよび8Rが設置される。これらマーカ8Lおよび8Rは、それぞれモニタ2の前方に向かって赤外光を出力する。なお、本実施例では、撮像情報演算部74による撮像情報を用いないため、マーカ8Lおよび8Rを設置しなくてもかまわない。
【0045】
次に、図2を参照して、ゲーム装置3の構成について説明する。なお、図2は、ゲーム装置3の機能ブロック図である。
【0046】
図2において、ゲーム装置3は、各種プログラムを実行する例えばリスク(RISC)CPU(セントラルプロセッシングユニット)30を備える。CPU30は、図示しないブートROMに記憶された起動プログラムを実行し、メインメモリ33等のメモリの初期化等を行った後、光ディスク4に記憶されているゲームプログラムを実行し、そのゲームプログラムに応じたゲーム処理等を行うものである。CPU30には、メモリコントローラ31を介して、GPU(Graphics Processing Unit)32、メインメモリ33、DSP(Digital Signal Processor)34、およびARAM(Audio RAM)35が接続される。また、メモリコントローラ31には、所定のバスを介して、コントローラI/F(インターフェース)36、ビデオI/F37、外部メモリI/F38、オーディオI/F39、およびディスクI/F41が接続され、それぞれ受信ユニット6、モニタ2、外部メモリカード5、スピーカ2a、およびディスクドライブ40が接続されている。
【0047】
GPU32は、CPU30の命令に基づいて画像処理を行うものであり、例えば、3Dグラフィックスの表示に必要な計算処理を行う半導体チップで構成される。GPU32は、図示しない画像処理専用のメモリやメインメモリ33の一部の記憶領域を用いて画像処理を行う。GPU32は、これらを用いてモニタ2に表示すべきゲーム画像データやムービ映像を生成し、適宜メモリコントローラ31およびビデオI/F37を介してモニタ2に出力する。
【0048】
メインメモリ33は、CPU30で使用される記憶領域であって、CPU30の処理に必要なゲームプログラム等を適宜記憶する。例えば、メインメモリ33は、CPU30によって光ディスク4から読み出されたゲームプログラムや各種データ等を記憶する。このメインメモリ33に記憶されたゲームプログラムや各種データ等がCPU30によって実行される。
【0049】
DSP34は、ゲームプログラム実行時にCPU30において生成されるサウンドデータ等を処理するものであり、そのサウンドデータ等を記憶するためのARAM35が接続される。ARAM35は、DSP34が所定の処理(例えば、先読みしておいたゲームプログラムやサウンドデータの記憶)を行う際に用いられる。DSP34は、ARAM35に記憶されたサウンドデータを読み出し、メモリコントローラ31およびオーディオI/F39を介してモニタ2に備えるスピーカ2aに出力させる。
【0050】
メモリコントローラ31は、データ転送を統括的に制御するものであり、上述した各種I/Fが接続される。コントローラI/F36は、例えば4つのコントローラI/F36a〜36dで構成され、それらが有するコネクタを介して嵌合可能な外部機器とゲーム装置3とを通信可能に接続する。例えば、受信ユニット6は、上記コネクタと嵌合し、コントローラI/F36を介してゲーム装置3と接続される。上述したように受信ユニット6は、コントローラ7からの送信データを受信し、コントローラI/F36を介して当該送信データをCPU30へ出力する。ビデオI/F37には、モニタ2が接続される。外部メモリI/F38には、外部メモリカード5が接続され、その外部メモリカード5に設けられたバックアップメモリ等とアクセス可能となる。オーディオI/F39にはモニタ2に内蔵されるスピーカ2aが接続され、DSP34がARAM35から読み出したサウンドデータやディスクドライブ40から直接出力されるサウンドデータをスピーカ2aから出力可能に接続される。ディスクI/F41には、ディスクドライブ40が接続される。ディスクドライブ40は、所定の読み出し位置に配置された光ディスク4に記憶されたデータを読み出し、ゲーム装置3のバスやオーディオI/F39に出力する。
【0051】
図3および図4を参照して、本発明の入力装置の一例であるコントローラ7について説明する。なお、図3は、コントローラ7の上面後方から見た斜視図である。図4は、コントローラ7を下面後方から見た斜視図である。
【0052】
図3および図4において、コントローラ7は、例えばプラスチック成型によって形成されたハウジング71を有しており、当該ハウジング71に複数の操作部72が設けられている。ハウジング71は、その前後方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。
【0053】
ハウジング71上面の中央前面側に、十字キー72aが設けられる。この十字キー72aは、十字型の4方向プッシュスイッチであり、矢印で示す4つの方向(前後左右)に対応する操作部分が十字の突出片にそれぞれ90°間隔で配置される。プレイヤが十字キー72aのいずれかの操作部分を押下することによって前後左右いずれかの方向を選択される。例えばプレイヤが十字キー72aを操作することによって、仮想ゲーム世界に登場するプレイヤキャラクタ等の移動方向を指示したり、カーソルの移動方向を指示したりすることができる。
【0054】
なお、十字キー72aは、上述したプレイヤの方向入力操作に応じて操作信号を出力する操作部であるが、他の態様の操作部でもかまわない。例えば、リング状に4方向の操作部分を備えたプッシュスイッチとその中央に設けられたセンタスイッチとを複合した複合スイッチを上記十字キー72aの代わりに設けてもかまわない。また、ハウジング71上面から突出した傾倒可能なスティックを倒すことによって、傾倒方向に応じて操作信号を出力する操作部を上記十字キー72aの代わりに設けてもかまわない。さらに、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部を、上記十字キー72aの代わりに設けてもかまわない。また、タッチパッドを、上記十字キー72aの代わりに設けてもかまわない。また、少なくとも4つの方向(前後左右)をそれぞれ示すスイッチに対して、プレイヤによって押下されたスイッチに応じて操作信号を出力する操作部を上記十字キー72aの代わりに設けてもかまわない。
【0055】
ハウジング71上面の十字キー72aより後面側に、複数の操作ボタン72b〜72gが設けられる。操作ボタン72b〜72gは、プレイヤがボタン頭部を押下することによって、それぞれの操作ボタン72b〜72gに割り当てられた操作信号を出力する操作部である。例えば、操作ボタン72b〜72dには、Xボタン、Yボタン、およびBボタン等としての機能が割り当てられる。また、操作ボタン72e〜72gには、セレクトスイッチ、メニュースイッチ、およびスタートスイッチ等としての機能が割り当てられる。これら操作ボタン72b〜72gは、ゲーム装置3が実行するゲームプログラムに応じてそれぞれの機能が割り当てられるが、本発明の説明とは直接関連しないため詳細な説明を省略する。なお、図3に示した配置例では、操作ボタン72b〜72dは、ハウジング71上面の中央前後方向に沿って並設されている。また、操作ボタン72e〜72gは、ハウジング71上面の左右方向に沿って操作ボタン72bおよび72dの間に並設されている。そして、操作ボタン72fは、その上面がハウジング71の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【0056】
また、ハウジング71上面の十字キー72aより前面側に、操作ボタン72hが設けられる。操作ボタン72hは、遠隔からゲーム装置3本体の電源をオン/オフする電源スイッチである。この操作ボタン72hも、その上面がハウジング71の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【0057】
また、ハウジング71上面の操作ボタン72cより後面側に、複数のLED702が設けられる。ここで、コントローラ7は、他のコントローラ7と区別するためにコントローラ種別(番号)が設けられている。例えば、LED702は、コントローラ7に現在設定されている上記コントローラ種別をプレイヤに通知するために用いられる。具体的には、コントローラ7から受信ユニット6へ送信データを送信する際、上記コントローラ種別に応じて複数のLED702のうち、種別に対応するLEDが点灯する。
【0058】
一方、ハウジング71下面には、凹部が形成されている。後述で明らかとなるが、ハウジング71下面の凹部は、プレイヤがコントローラ7を把持したときに当該プレイヤの人差し指や中指が位置するような位置に形成される。そして、上記凹部の後面側傾斜面には、操作ボタン72iが設けられる。操作ボタン72iは、例えばAボタンとして機能する操作部であり、シューティングゲームにおけるトリガスイッチや、プレイヤオブジェクトを所定オブジェクトに対して注目させる操作等に用いられる。
【0059】
また、ハウジング71前面には、撮像情報演算部74の一部を構成する撮像素子743が設けられる。ここで、撮像情報演算部74は、コントローラ7が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを検出するためのシステムであり、例えば、最大200フレーム/秒程度のサンプリング周期であるため比較的高速なコントローラ7の動きでも追跡して解析することができる。また、ハウジング70の後面には、コネクタ73が設けられている。コネクタ73は、例えば32ピンのエッジコネクタであり、例えば接続ケーブルと嵌合して接続するために利用される。なお、本発明は、この撮像情報演算部74からの情報を使用しなくても実現可能であるため、ここではこれ以上の説明を省略する。
【0060】
ここで、説明を具体的にするために、コントローラ7に対して設定する座標系について定義する。図3および図4に示すように、互いに直交するXYZ軸をコントローラ7に対して定義する。具体的には、コントローラ7の前後方向となるハウジング71の長手方向をZ軸とし、コントローラ7の前面(撮像情報演算部74が設けられている面)方向をZ軸正方向とする。また、コントローラ7の上下方向をY軸とし、ハウジング71の上面(十字キー72a等が設けられた面)方向をY軸正方向とする。さらに、コントローラ7の左右方向をX軸とし、ハウジング71の左側面(図3では表されずに図4で表されている側面)方向をX軸正方向とする。
【0061】
次に、図5を参照して、コントローラ7の内部構造について説明する。なお、図5(a)は、コントローラ7の上筐体(ハウジング71の一部)を外した状態を示す斜視図である。図5(b)は、コントローラ7の下筐体(ハウジング71の一部)を外した状態を示す斜視図である。ここで、図5(b)に示す基板700は、図5(a)に示す基板700の裏面から見た斜視図となっている。
【0062】
図5(a)において、ハウジング71の内部には基板700が固設されており、当該基板700の上主面上に操作ボタン72a〜72h、加速度センサ701、LED702、水晶振動子703、無線モジュール753、およびアンテナ754等が設けられる。そして、これらは、基板700等に形成された配線(図示せず)によってマイコン751(図6参照)に接続される。加速度センサ701は、コントローラ7が配置された3次元空間における傾きや振動等の算出に用いることができる加速度を検出して出力する。
【0063】
より詳細には、図6に示すように、コントローラ7は3軸の加速度センサ701を備えていることが好ましい。この3軸の加速度センサ701は、3方向、すなわち、上下方向(図3に示すY軸)、左右方向(図3に示すX軸)、および前後方向(図3に示すZ軸)で直線加速度を検知する。また、他の実施形態においては、ゲーム処理に用いる制御信号の種類によっては、X軸とY軸(または他の対になった軸)のそれぞれに沿った直線加速度のみを検知する2軸の加速度検出手段を使用してもよい。例えば、この3軸または2軸の加速度センサ701は、アナログ・デバイセズ株式会社(Analog Devices, Inc.)またはSTマイクロエレクトロニクス社(STMicroelectronics N.V.)から入手可能であるタイプのものでもよい。加速度センサ701は、シリコン微細加工されたMEMS(Micro Electro Mechanical Systems:微小電子機械システム)の技術に基づいた静電容量式(静電容量結合式)であることが好ましい。しかしながら、既存の加速度検出手段の技術(例えば、圧電方式や圧電抵抗方式)あるいは将来開発される他の適切な技術を用いて3軸または2軸の加速度センサ701が提供されてもよい。
【0064】
当業者には公知であるように、加速度センサ701に用いられるような加速度検出手段は、加速度センサの持つ各軸に対応する直線に沿った加速度(直線加速度)のみを検知することができる。つまり、加速度センサ701からの直接の出力は、その2軸または3軸のそれぞれに沿った直線加速度(静的または動的)を示す信号である。このため、加速度センサ701は、非直線状(例えば、円弧状)の経路に沿った動き、回転、回転運動、角変位、傾斜、位置、または姿勢等の物理特性を直接検知することはできない。
【0065】
しかしながら、加速度センサ701から出力される加速度の信号に対して追加の処理を行うことによって、コントローラ7に関するさらなる情報を推測または算出(判定)することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、静的な加速度(重力加速度)が検知されると、加速度センサ701からの出力を用いて、傾斜角度と検知された加速度とを用いた演算によって重力ベクトルに対する対象(コントローラ7)の傾きを判定することができる。このように、加速度センサ701をマイコン751(または他のプロセッサ)と組み合わせて用いることによって、コントローラ7の傾き、姿勢または位置を判定することができる。同様に、加速度センサ701を備えるコントローラ7が例えば後述するようにユーザの手で動的に加速されて動かされる場合に、加速度センサ701によって生成される加速度信号を処理することによって、コントローラ7のさまざまな動きおよび/または位置を算出することができる。他の実施例では、加速度センサ701は、信号をマイコン42に出力する前に内蔵の加速度検出手段から出力される加速度信号に対して所望の処理を行うための、組込み式の信号処理装置または他の種類の専用の処理装置を備えていてもよい。例えば、組込み式または専用の処理装置は、加速度センサが静的な加速度(例えば、重力加速度)を検出するためのものである場合、検知された加速度信号をそれに相当する傾斜角(あるいは、他の好ましいパラメータ)に変換するものであってもよい。
【0066】
また、無線モジュール753およびアンテナ754を有する通信部75によって、コントローラ7がワイヤレスコントローラとして機能する。なお、水晶振動子703は、後述するマイコン751の基本クロックを生成する。
【0067】
一方、図5(b)において、基板700の下主面上の前端縁に撮像情報演算部74が設けられる。撮像情報演算部74は、コントローラ7の前方から順に赤外線フィルタ741、レンズ742、撮像素子743、および画像処理回路744によって構成されており、それぞれ基板700の下主面に取り付けられる。また、基板700の下主面上の後端縁にコネクタ73が取り付けられる。そして、操作ボタン72iが撮像情報演算部74の後方の基板700の下主面上に取り付けられていて、それよりさらに後方に、電池705が収容される。電池705とコネクタ73との間の基板700の下主面上には、バイブレータ704が取り付けられる。このバイブレータ704は、例えば振動モータやソレノイドであってよい。バイブレータ704が作動することによってコントローラ7に振動が発生するので、それを把持しているプレイヤの手にその振動が伝達され、いわゆる振動対応ゲームが実現できる。
【0068】
次に、図6を参照して、コントローラ7の内部構成について説明する。なお、図6は、コントローラ7の構成を示すブロック図である。
【0069】
撮像情報演算部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自体の方向を変えることによってその撮像方向を変更することができる。
【0070】
加速度センサ701は、上述したようにコントローラ7の上下方向(Y軸方向)、左右方向(X軸方向)、および前後方向(Z軸方向)の3軸成分に分けてそれぞれ加速度を検知して出力するセンサである。加速度センサ701が検知した3軸成分の加速度を示すデータは、それぞれ通信部75へ出力される。この加速度センサ701から出力される加速度データに基づいて、コントローラ7の動きを判定することができる。なお、加速度センサ701は、特定のアプリケーションで必要なデータに応じて何れか2軸に対してそれぞれ加速度を検出する加速度センサが用いられてもかまわない。
【0071】
通信部75は、マイクロコンピュータ(Micro Computer:マイコン)751、メモリ752、無線モジュール753、およびアンテナ754を含んでいる。マイコン751は、処理の際にメモリ752を記憶領域として用いながら、送信データを無線送信する無線モジュール753を制御する。
【0072】
コントローラ7に設けられた操作部72からの操作信号(キーデータ)、加速度センサ701からの3軸方向の加速度信号(X、Y、およびZ軸方向加速度データ)、および撮像情報演算部74からの処理結果データは、マイコン751に出力される。マイコン751は、入力した各データ(キーデータ、X、Y、およびZ軸方向加速度データ、処理結果データ)を受信ユニット6へ送信する送信データとして一時的にメモリ752に格納する。ここで、通信部75から受信ユニット6への無線送信は、所定の周期毎に行われるが、ゲームの処理は1/60秒を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。具体的には、ゲームの処理単位は16.7ms(1/60秒)であり、ブルートゥース(登録商標)で構成される通信部75の送信間隔は5msである。マイコン751は、受信ユニット6への送信タイミングが到来すると、メモリ752に格納されている送信データを一連の操作情報として出力し、無線モジュール753へ出力する。そして、無線モジュール753は、例えばBluetooth(ブルートゥース;登録商標)の技術を用いて、所定周波数の搬送波を用いて操作情報をその電波信号としてアンテナ754から放射する。つまり、コントローラ7に設けられた操作部72からのキーデータ、加速度センサ701からのX、Y、およびZ軸方向加速度データ、および撮像情報演算部74からの処理結果データがコントローラ7から送信される。そして、ゲーム装置3の受信ユニット6でその電波信号を受信し、ゲーム装置3で当該電波信号を復調や復号することによって、一連の操作情報(キーデータ、X、Y、およびZ軸方向加速度データ、および処理結果データ)を取得する。そして、ゲーム装置3のCPU30は、取得した操作情報とゲームプログラムとに基づいて、ゲーム処理を行う。なお、Bluetooth(登録商標)の技術を用いて通信部75を構成する場合、通信部75は、他のデバイスから無線送信された送信データを受信する機能も備えることができる。
【0073】
次に、図7を用いて、本実施形態で想定するゲームの概要について説明する。本実施形態で想定するゲームはゴルフゲームであり、図7に示すように、ゴルフクラブを構えたプレイヤオブジェクト101を後ろから見た視点でゲーム画面が表示されている。そして、プレイヤは、コントローラ7をゴルフクラブに見立ててスイングする動作を行うと、この動きに連動してプレイヤオブジェクト101がゴルフクラブをスイングする動作が描画される。
【0074】
スイング操作について、図8および図9を用いて、より詳しく説明する。図8は、ゴルフクラブでスイングを行うイメージを示す図であり、図9は、コントローラ7でスイングを行うイメージを示す図である。コントローラ7は、全体として大人や子供の片手でも把持可能な大きさである。そして、ゲームシステム1でコントローラ7を用いてゲームをプレイするためには、コントローラ7の前面が下方方向(重力方向)に向くようにプレイヤが両手でコントローラ7を把持する。例えば、プレイヤは、コントローラ7の前面を下方方向に露出させて、あたかもゴルフクラブを握っているかのようにコントローラ7を把持する。
【0075】
図8に示すような、ゴルフクラブを左上方向81に振り上げ、右下方向82を経由して右方向83へと振る動作をコントローラ7で行う場合は、図9に示すように、コントローラ7の前面を下向けにした状態を基準として、コントローラ7を把持している腕を図9における左上方向81(プレイヤからすれば、右上)に振り上げ、右下方向82、右方向83へと振り下ろす動作を行う。これにより、コントローラ7から操作情報(例えば、X、Y、およびZ軸方向加速度データ)をゲーム装置3に与える。そして、当該操作情報(加速度データ)に基づいて、ゴルフクラブの傾き等が算出され、当該傾き等に基づいてゴルフクラブが移動する。その結果、プレイヤオブジェクト101がゴルフクラブをスイングする様子が描画されることになる。
【0076】
このとき、腕を振る速度が速すぎる場合などは、プレイヤの腕の動きを正確に検出しきれないことがある。そのため、本実施形態では、例えばバックスイング動作中に、加速度が所定の閾値以上になったときは、その時点で、コントローラ7からの操作情報ではなく、予め決められている動作情報に基づいてゴルフクラブが動作する様子を描画する。つまり、バックスイング速度が速すぎて、ゲーム画面上に正確に反映できないようなときは、プレイヤの腕の動作とは関係なしに、予め決められているバックスイング動作を描画する(オートアニメーション処理)。
【0077】
次に、ゲーム装置3において実行されるゲーム処理の流れを図10〜図13を用いて説明する。図10は、ゲーム装置3において実行されるゲーム処理の流れを示すフローチャートである。ゲーム装置3の電源が投入されると、ゲーム装置3のCPU30は、図示しないブートROMに記憶されている起動プログラムを実行し、メインメモリ13等の各ユニットが初期化される。そして、光ディスク4に格納されたゲームプログラムがメインメモリ33に読み込まれ、当該ゲームプログラムの実行が開始される。その結果、GPU12を介してモニタ2にゲーム画像が表示されることによって、ゲームが開始される。この後、図10〜図11に示すフローチャートの処理が実行される。なお、図10に示すステップS1〜ステップS4の処理は、1フレーム毎に繰り返し実行される。また、本実施形態におけるゲームは上述のようにゴルフゲームであり、当該処理は、ゴルフクラブのスイングに関する処理であるが、これ以外の当該ゴルフゲームに関する処理(コース選択やショットされたボールの軌道計算等)については、本発明と直接関連しないため、説明を省略する。
【0078】
図10において、まず、CPU30は、安定状態判定処理を行う(ステップS1)。当該処理は、スイング動作の開始時におけるコントローラ7の握り方やスイング開始位置の個人差を吸収するための処理である。スイング動作開始時のコントローラ7の向きとしては、理想としては、図9に示したように、真下を向いた状態が望ましい。しかし、コントローラ7の握り方やスイング開始位置については、人によって個人差がある。そのため、人によっては、コントローラ7の前面が真下方向を向いておらず、少しだけX軸方向に右あるいは左に傾いた状態からスイングが開始されることもある。このようなときは、スイング開始時の時点で、少し傾いている分だけX軸方向に加速度が既にかかった状態となっている。そのため、このようなスイング開始時点で既にかかっているX軸方向の加速度を無視して、コントローラ7の握り方やスイング開始位置の個人差を吸収できるように、X軸方向の加速度が発生したまま安定しているような状態(少しだけ傾いている状態)は、スイング動作ではなく、安定状態であると判定するための処理が行われる。
【0079】
図11は、上記ステップS1で示した安定状態判定処理の詳細を示すフローチャートである。図11において、まず、CPU30は、コントローラ7より送信されてきた操作情報から加速度データを取得する(ステップS11)。続いて、CPU30は、当該加速度データからX軸方向の加速度値(以下、X軸加速値)を取得する。更に、この値から、X軸方向の比較用加速度値(以下、比較用X軸加速値)を算出する(ステップS12)。当該比較用X軸加速値は、例えば次の式で算出される。
今回フレームの比較用X軸加速値=前回フレームの比較用X軸加速値+(取得したX軸加速値−前回フレームの比較用X軸加速値)×K
ここで、Kは定数であり、例えば0.1という値が入る。
【0080】
続いて、CPU30は、X軸加速値と今回フレームの比較用X軸加速値との差数を算出する(ステップS13)。次に、当該差数が所定値以上か否かを判定する(ステップS14)。その結果、所定値以上であれば(ステップS14でYES)、安定状態であることを示すカウンタである安定フレーム数に所定値を設定する(ステップS15)。一方、所定値以下であれば(ステップS14でNO)、安定フレーム数から1を減算する(ステップS16)。つまり、X軸加速値と比較用X軸加速値との差が所定値以上であれば安定していない状態(コントローラ7に動きがある)、所定値未満であれば、安定している状態(コントローラ7に動きがない)であると判定するものである。以上で、安定状態判定処理が終了する。
【0081】
図10に戻り、安定状態判定処理の次に、CPU30は、オートバックスイング判定処理を行う(ステップS2)。ここでは、X軸方向の加速度を累積しておき、当該累積値が所定閾値を超えたか否かで、コントローラ7からの加速度データに基づいてゴルフクラブを動かすか、予め決められたデータに基づいてゴルフクラブを動かすか(オートアニメーション)の判定を行う。
【0082】
図12は、上記ステップS2で示したオートバックスイング判定処理の詳細を示すフローチャートである。図12において、まず、CPU30は、コントローラ7が振られているかどうかを判定する(ステップS21)。より具体的に説明すると、Z軸方向の加速度データが閾値を越えるZ軸正方向の値を示しているとき、ゲーム装置3は、プレイヤがコントローラ7を振っていると判定する。例えば、コントローラ7が静止状態である場合、加速度センサ701は、重力加速度9.8m/s2を超える加速度を検出することはない。一方、上述したようにプレイヤがコントローラ7を把持して腕を振った場合、コントローラ7の前端部が円弧状の軌跡を描いて移動するため、遠心力の影響によってZ軸正方向(図3参照)の加速度が検出される。本実施例では、重力加速度以上の閾値として1.1という値を設定し、Z軸方向の加速度データが当該閾値を超える加速度を示している場合、プレイヤがコントローラ7を振っていると判定する。
【0083】
ステップS21の判定の結果、Z軸方向の加速度データが所定値以上の場合、つまり、コントローラ7が振られていると判定された場合は(ステップS21でYES)、次に、X軸方向の加速度データを、正方向(コントローラ7を下に向けているため、図9の右方向になる)および負方向(図9の左方向)別に累積する(ステップS22)。ここで、コントローラ7が振られている方向の判定について説明する。コントローラ7を把持して振った場合、振り始めは加速して振り終わりは減速となる。したがって、コントローラ7には、振り始めで振っている方向と同じ方向の加速度が生じた後、徐々に加速度の大きさが減少して、振り終わりで振っている方向とは逆の方向に加速度が生じる。一方、一般的に、加速度センサ701から出力される加速度ベクトル(あるいは、加速度の正負)は、コントローラ7の加速方向とは真逆のベクトルとなる。したがって、加速度センサ701は、コントローラ7の振り始めで振っている方向とは逆の方向に加速度を検出した後、徐々に加速度の大きさが減少して、振り終わりで振っている方向と同じ方向に加速度を検出する。例えば、図9において、コントローラ7の前面を下に向けて図9の左方向に加速(つまり、コントローラ7の加速方向がX軸負方向)したとき、加速度センサ701から得られる加速度ベクトルとしてはX軸正方向のベクトルが得られることになる。そのため、正方向の加速度データを累積していけば、左方向に振り上げている動作の加速度データを累積することができる。また、負方向の加速度データを累積していけば、右方向に振り上げている動作の加速度データを累積することができる。
【0084】
次に、プレイヤの利き腕を判定する(ステップS23)。これは、オプション画面などで、予めプレイヤが設定したユーザ設定値(メインメモリ33に格納されている)を参照することで判定される。ここでは、当該ユーザ設定値は「右利き」「左利き」のうちの何れかであるものとする。当該判定の結果、プレイヤが右利きのときは(ステップS23でYES)、正方向の累積加速度が所定値を超えたかを判定する(ステップS24)。その結果、正方向の累積加速度が所定値以上のときは(ステップS24でYES)、オートフレーム数に所定値を設定する(ステップS25)。当該オートフレーム数とは、後述のオートアニメーションが行われる時間を示すためのカウンタである。所定値以上でないときは(ステップS24でNO)、そのままオートバックスイング処理を終了する。
【0085】
一方、プレイヤが左利きのときは(ステップS23でNO)、負方向の累積加速度が所定値を超えたかを判定する(ステップS25)。その結果、負方向の累積加速度が所定値以上であれば、オートフレーム数に所定値を設定する(ステップS26)。一方、所定値以上でないときは(ステップS25でNO)、そのままオートバックスイング処理を終了する。
【0086】
一方、ステップS21の判定の結果、Z軸方向の加速度データが所定値以下、つまり、コントローラ7が振られていないときは、累積値に0を設定する(ステップS27)。更に、オートフレーム数に0を設定する(ステップS28)。これにより、後述のスイング処理におけるオートアニメーション処理を途中でキャンセルすることができる。以上で、オートバックスイング判定処理が終了する。
【0087】
図10に戻り、ステップS2のオートバックスイング判定処理が終われば、続いてスイング処理が行われる(ステップS3)。図13は、当該ステップS3のスイング処理の詳細を示すフローチャートである。ここでは、オートバックスイング判定処理における処理結果に基づいて、プレイヤオブジェクト101のスイング動作の描画処理が行われる。図13において、まず、CPU30は、オートフレーム数が0より大きいか否かを判定する(ステップS31)。つまり、オートアニメーションの処理を行うか否かを判定する。当該判定の結果、0より大きいときは(ステップS31でYES)、予め決められているゴルフクラブの移動データ(移動経路や移動速度)に沿ってゴルフクラブを移動させるような、プレイヤオブジェクト101のバックスイング動作を描画する(ステップS32)。つまり、X軸方向の加速度が閾値を超えた時点で、それ以降のプレイヤの腕の実際の動きにかかわらずに、ゴルフクラブをバックスイングする動作がオートアニメーションとして描画されることになる。そして、オートフレーム数から1を減算し(ステップS33)、スイング処理を終了する。
【0088】
一方、ステップS31の判定の結果、オートフレーム数が0のときは(ステップS31でNO)、安定フレーム数が0より大きいか否かを判定する(ステップS34)。その結果、0より大きいとき(ステップS34でYES)は、オートアニメーションの処理を行うまでには至らないが、ある程度の速度でコントローラ7が振られている状態であると考えられる。例えば、利き腕が右腕の場合に、右方向にバックスイングするのではなく、反対方向の左方向に腕を振った場合がこれに該当する。この場合は、そのまま処理を終了する。その結果、プレイヤオブジェクト101がゴルフクラブを構えたまま、スイング動作の開始を待っている状態で描画される。
【0089】
一方、安定フレーム数が0であれば(ステップS34でNO)、上記加速度データに基づいて、コントローラの傾きを算出する(ステップS35)。続いて、当該傾きに基づいてゴルフクラブを移動させる座標を決定する。そして、この座標に沿ってゴルフクラブを移動させる様子を描画する(ステップS36)。つまり、プレイヤの実際の入力動作に従って画面内のゴルフクラブを動かすことになる。その結果、プレイヤの腕の動きに連動する形でプレイヤオブジェクト101がゴルフクラブをスイングする動作が描画されることになる。以上で、スイング処理は終了する。
【0090】
図10に戻り、スイング処理が終われば、CPU30は、ショット開始条件が達成されたか否かを判定する(ステップS4)。例えば、コントローラ7のX軸方向の加速度データを、正方向および負方向に累積した上で、ステップS23からS25の判定とは逆の判定で、プレイヤが右利きのときは正方向の累積加速度が所定値を超えたかどうかを判定し、プレイヤが左利きのときは負方向の累積加速度が所定値を超えたかどうかを判定し、所定値を越えた際にはショット開始条件が満たされたと判定する。ショット開始条件が満たされたときは(ステップS4でYES)、CPU30は、ショット処理(ステップS5)を行う。この処理では、ボールの弾道等を計算して、ボールを飛ばす処理が行われる。一方、ショット開始条件が満たされていない場合は(ステップS4でNO)、上記ステップS1に戻って処理を繰り返す。以上で、本実施形態にかかるゲーム処理は終了する。
【0091】
このように、本発明の実施形態では、プレイヤが入力装置を振ったときの加速度がある閾値以上かどうかを判定する。その結果、閾値を超えるような大きな加速度が加わったときは、予め決められた一連の動作が描画されるようにする。これにより、加速度が大きすぎて、プレイヤの腕の動きを正確に反映することができないような場合は、予め用意されている、プレイヤが行うであろう動作(あるいは行いたいと考えられる動作)のアニメーションを表示する。また、そこまで加速度が大きくないときは、プレイヤの腕の動きを反映した動作を表示する。これにより、プレイヤの腕の振りが速すぎること等が原因でプレイヤの意図しない動作が表示されてしまうことを防ぐことができる。
【0092】
なお、上述の実施形態では、X軸方向の加速度を累積して判定を行っていたが、これに限らず、加速度の累積を行わずに、その時点の加速度のみで判定するようにしてもよい。このようにした場合も、プレイヤの腕の振りが速すぎること等が原因でプレイヤの意図しない動作が表示されてしまうことを防ぐことができる。
【0093】
また、図12のステップS21の処理について、Z軸の加速度が所定値以上の状態が所定時間以上継続したときに、X軸方法の加速値を正負別に累積する処理を行うようにしてもよい。これにより、過敏な反応によりプレイヤに与える違和感を低減することができる。
【0094】
また、オートアニメーションの開始後は、一連の動作が終わるまで、入力を受け付けないようにしても良い。例えば、図13のステップS32のオートアニメーションの開始後は、オートフレーム数が0になるまでは、図10のステップS2のオートバックスイング判定処理を行わないようにしてもよい。これにより、一旦オートアニメーションが始まった後の操作ミス等で、プレイヤの意図しない動作が表示されてしまうことを防ぐことができる。更に、オートアニメーションの再生速度(ゴルフクラブを振る速度)を、当該オートアニメーション開始時における加速度の値に応じて変化させるようにしても良い。
【産業上の利用可能性】
【0095】
本発明にかかるゲーム装置およびゲームプログラムは、プレイヤの意図しない動作が表示されてしまうことを防ぐことができ、ゴルフゲーム等の、プレイヤキャラクタが所持するアイテムをスイングするようなゲーム処理を行うゲーム装置およびゲームプログラムに有用である。
【図面の簡単な説明】
【0096】
【図1】本発明の一実施形態に係るゲームシステム1を説明するための外観図
【図2】図1のゲーム装置3の機能ブロック図
【図3】図3のコントローラ7の上面後方から見た斜視図
【図4】図3のコントローラ7を下面後方から見た斜視図
【図5】図3のコントローラ7の上筐体を外した状態を示す斜視図
【図6】図3のコントローラ7の構成を示すブロック図
【図7】本実施形態で想定するゲームのゲーム画面の一例
【図8】ゴルフクラブでスイングを行うイメージを示す図
【図9】コントローラ7でスイングを行うイメージを示す図
【図10】ゲーム装置3において実行されるゲーム処理の流れを示すフローチャート
【図11】図10のステップS1で示した安定状態判定処理の詳細を示すフローチャート
【図12】図10のステップS2で示したオートバックスイング判定処理の詳細を示すフローチャート
【図13】図10のステップS3で示したスイング処理の詳細を示すフローチャート
【符号の説明】
【0097】
1…ゲームシステム
2…モニタ
2a…スピーカ
3…ゲーム装置
30…CPU
31…メモリコントローラ
32…GPU
33…メインメモリ
34…DSP
35…ARAM
36…コントローラI/F
37…ビデオI/F
38…外部メモリI/F
39…オーディオI/F
40…ディスクドライブ
41…ディスクI/F
4…光ディスク
5…外部メモリカード
6…受信ユニット
7…コントローラ
71…ハウジング
72…操作部
73…コネクタ
74…撮像情報演算部
741…赤外線フィルタ
742…レンズ
743…撮像素子
744…画像処理回路
75…通信部
751…マイコン
752…メモリ
753…無線モジュール
754…アンテナ
700…基板
701…加速度センサ
702…LED
703…水晶振動子
704…バイブレータ
705…電池
【技術分野】
【0001】
本発明は、ゲーム装置およびゲームプログラムに関し、より特定的には、入力装置自体の動きに応じてゲーム処理を行うゲーム装置およびゲームプログラムに関する。
【背景技術】
【0002】
従来から、ゴルフクラブや野球のバット等のような棒状物を振るゲーム(ゴルフゲームや野球ゲーム)がある。これらのゲームにおいては、棒状物を振る動作を入力するためのコントローラに、スイッチを利用したボタンやレバーを用いていた。また、これとは別に、棒状の形状をしたコントローラ(入力制御装置)も開示されている(例えば特許文献1)。特許文献1に示すコントローラは、加速度センサを備えている。そして、プレイヤは、この棒状のコントローラを手に持ち、実際に振る動作を行う。例えば、剣劇を体感できる3Dゲームのような場合は、当該棒状のコントローラを刀剣に見立て、プレイヤがコントローラで刀剣を振るような動作を行う。すると、加速度センサから出力されるデータに基づいて、ゲーム空間内における刀剣の移動データが決められ、プレイヤの動作に沿ってプレイヤオブジェクトが刀剣を振る動作がゲーム画像として表示されていた。
【特許文献1】特開2000−308756号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、上述したような上記特許文献1に開示された入力制御装置においては、以下に示す問題点があった。例えば、上記棒状のコントローラを激しく振った場合などは、その動きの早さに加速度センサの検出速度が追いつかず、その結果、プレイヤが実際に行った操作とは異なる動きの移動データが求められることがあった。そのため、プレイヤが意図した動作が表現されずに、利用者の動作とはかけ離れた動作が表示されたり、全く反映されていない動作が表示されたりすることがあり、ゲームの興趣を低下させていた。
【0004】
それゆえに、本発明の目的は、加速度センサ等の速度を検出できる入力装置を用いたゲーム装置において、入力装置の動きが激しい場合であっても、プレイヤの意図に沿った動作を表示できるゲーム装置おびゲームプログラムを提供することである。
【課題を解決するための手段】
【0005】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【0006】
第1の発明は、入力装置自体の動きに応じてゲーム処理を行うゲーム装置であって、出力データ取得手段(6,36)と、移動座標決定手段(30)と、オブジェクト移動手段(30)と、表示制御手段(30、37)とを備える。出力データ取得手段は、前記入力装置自体の動きに応じて変化する第1出力データ及び第2出力データを取得する。移動座標決定手段は、第1出力データが第1の閾値以上であるかを判定し、第1の閾値以上であれば所定の経路に沿って予め決められた変化量でオブジェクトを仮想ゲーム空間で次に移動させる座標を決定し、第1の閾値未満であれば第1出力データ、及び第2出力データを用い、所定の経路に沿ってオブジェクトを仮想ゲーム空間で次に移動させる座標を決定する。オブジェクト移動手段は、仮想ゲーム空間でオブジェクトを決定された移動座標へ移動させる。表示制御手段は、オブジェクト移動手段の結果に応じて、仮想ゲーム空間を表示装置に表示させる。ここで、第1出力データとは、例えば、入力装置自体がZ軸方向へ向かう動きについてのデータであり、第2出力データとは、例えば、X軸方向に向かう動きのデータ等が考えられる。
【0007】
第2の発明は、第1の発明において、移動座標決定手段は、前記第1出力データが前記第1の閾値未満の時は、前記第2出力データに基づいた前記入力装置自体の動く方向に対応した前記仮想ゲーム空間の前記所定の経路に沿った方向に前記オブジェクトを移動させる座標を決定する。
【0008】
第3の発明は、第1の発明において、ゲーム装置は、前記第1出力データ、及び第2出力データを用いて前記入力装置自体の傾きを算出する傾き算出手段(30)を更に備える。また、移動経路決定手段は、第1出力データが第1の閾値未満の時は、傾き算出手段で算出された傾きに基づいて仮想ゲーム空間の所定の経路に沿った方向にオブジェクトを移動させる座標を決定する。
【0009】
第4の発明は、第1の発明において、前記移動座標決定手段は、第1出力データが第1の閾値以上であるときに、第2出力データが第2の閾値以上であれば所定の経路に沿って予め決められた変化量でオブジェクトを仮想ゲーム空間で次に移動させる座標を決定し、第2の閾値未満であれば第1出力データ、及び第2出力データを用い、所定の経路に沿ってオブジェクトを仮想ゲーム空間で次に移動させる座標を決定する。
【0010】
第5の発明は、第1の発明において、ゲーム装置は、単位時間毎の第2出力データの値を累積する出力データ累積手段(30)を更に備える。また、移動座標決定手段は、累積された第2出力データの値が第3の閾値以上であるかを単位時間毎に判定し、第3の閾値以上であれば、所定の経路に沿って予め決められた変化量でオブジェクトを仮想ゲーム空間で次に移動させる座標を決定し、第3の閾値未満であれば、第1出力データ、及び第2出力データを用い、所定の経路に沿ってオブジェクトを仮想ゲーム空間で次に移動させる座標を決定する。
【0011】
第6の発明は、第5の発明において、出力データ累積手段は、第1出力データの値が第1の閾値以上である状態が所定時間以上継続しているときにのみ第2出力データの値の累積を開始する。
【0012】
第7の発明は、第6の発明において、ゲーム装置は、出力データ累積手段が第2出力データの値の累積を開始した後、第1出力データが第1の閾値以下になったとき、第2出力データの累積した値を初期化する累積値初期化手段(30)を更に備える。
【0013】
第8の発明は、第5の発明において、ゲーム装置は、プレイヤの利き腕についての情報である利き腕情報を設定して記憶する利き腕情報記憶手段を更に備える。また、出力データ累積手段は、利き腕情報に応じて、入力装置自体の動きの方向別に第2出力データの値の累積を開始する。
【0014】
第9の発明は、第1の発明において、移動座標決定手段は、所定の経路に沿ってオブジェクトを仮想ゲーム空間で次に移動させる座標を決定した後から所定の時間が経過するまでの間は、第1出力データが第1の閾値以上であるかどうかに関わらず所定の経路に沿ってオブジェクトを仮想ゲーム空間で次に移動させる座標を決定する。
【0015】
第10の発明は、第1の発明において、入力装置は、当該入力装置に生じる加速度を検出する加速度センサを備えている。また、第1出力データ、及び第2出力データは、入力装置自体の動きに応じて加速度センサから出力される加速度データである。
【0016】
第11の発明は、第1の発明において、ゲーム処理は、仮想ゲーム世界においてプレイヤキャラクタが所持するアイテムをスイングしてボールを打撃して当該ボールを飛ばすゲームを実行する処理である。また、オブジェクトは、プレイヤキャラクタが所持するアイテムオブジェクトである。また、所定の経路は、プレイヤキャラクタがアイテムをスイングする一連の動作を表示させるための情報である。
【0017】
第12の発明は、入力装置自体の動きに応じてゲーム処理を行うゲーム装置のコンピュータで実行されるゲームプログラムであって、出力データ取得ステップ(S11)と、移動座標決定ステップ(S2)と、オブジェクト移動ステップ(S32、S36)と、表示制御ステップ(S32、S36)とをコンピュータに実行させる。出力データ取得ステップは、入力装置自体の動きに応じて変化する第1出力データ及び第2出力データを取得する。移動座標決定ステップは、第1出力データが第1の閾値以上であるかを判定し、第1の閾値以上であれば所定の経路に沿って予め決められた変化量でオブジェクトを仮想ゲーム空間で次に移動させる座標を決定し、第1の閾値未満であれば第1出力データ、及び第2出力データを用い、所定の経路に沿ってオブジェクトを仮想ゲーム空間で次に移動させる座標を決定する。オブジェクト移動ステップは、仮想ゲーム空間でオブジェクトを決定された移動座標へ移動させる。表示制御ステップは、オブジェクト移動ステップの処理結果に応じて、仮想ゲーム空間を表示装置に表示させる。
【0018】
第13の発明は、第12の発明において、第1出力データが第1の閾値未満の時は、第2出力データに基づいた入力装置自体の動く方向に対応した仮想ゲーム空間の所定の経路に沿った方向にオブジェクトを移動させる座標を決定する。
【0019】
第14の発明は、第12の発明において、ゲームプログラムは、第1出力データ、及び第2出力データを用いて入力装置自体の傾きを算出する傾き算出ステップ(S35)を更に実行させる。また、移動座標決定ステップは、第1出力データが第1の閾値未満の時は、傾き算出手段で算出された傾きに基づいて仮想ゲーム空間の所定の経路に沿った方向にオブジェクトを移動させる座標を決定する。
【0020】
第15の発明は、第12の発明において、移動座標決定ステップは、第1出力データが第1の閾値以上であるときに、第2出力データが第2の閾値以上であれば所定の経路に沿って予め決められた変化量でオブジェクトを仮想ゲーム空間で次に移動させる座標を決定し、第2の閾値未満であれば第1出力データ、及び第2出力データを用い、所定の経路に沿ってオブジェクトを仮想ゲーム空間で次に移動させる座標を決定する。
【0021】
第16の発明は、第12の発明において、ゲームプログラムは、単位時間毎の第2出力データの値を累積する出力データ累積ステップを更に実行させる。また、移動座標決定ステップは、累積された第2出力データの値が第3の閾値以上であるかを単位時間毎に判定し、第3の閾値以上であれば、所定の経路に沿って予め決められた変化量でオブジェクトを仮想ゲーム空間で次に移動させる座標を決定し、第3の閾値未満であれば、第1出力データ、及び第2出力データを用い、所定の経路に沿ってオブジェクトを仮想ゲーム空間で次に移動させる座標を決定する。
【0022】
第17の発明は、第16の発明において、出力データ累積ステップは、第1出力データの値が第1の閾値以上である状態が所定時間以上継続しているときにのみ第2出力データの値の累積を開始する。
【0023】
第18の発明は、第17の発明において、ゲームプログラムは、出力データ累積ステップが第2出力データの値の累積を開始した後、第1出力データが第1の閾値以下になったとき、第2出力データの累積した値を初期化する累積値初期化ステップ(S27)を更に実行させる。
【0024】
第19の発明は、第16の発明において、ゲームプログラムは、プレイヤの利き腕についての情報である利き腕情報を設定してメモリに記憶する利き腕情報記憶ステップを更に実行させる。また、出力データ累積ステップは、利き腕情報に応じて、入力装置自体の動きの方向別に第2出力データの値の累積を開始する。
【0025】
第20の発明は、第12の発明において、移動経路決定ステップは、所定の経路に沿ってオブジェクトを仮想ゲーム空間で次に移動させる座標を決定した後から所定の時間が経過するまでの間は、第1出力データが第1の閾値以上であるかどうかに関わらず所定の経路に沿ってオブジェクトを仮想ゲーム空間で次に移動させる座標を決定する。
【0026】
第21の発明は、第12の発明において、入力装置は、当該入力装置に生じる加速度を検出する加速度センサを備えている。また、第1出力データ、及び第2出力データは、入力装置の動きに応じて加速度センサから出力される加速度データである。
【0027】
第22の発明は、第12の発明において、ゲーム処理は、仮想ゲーム世界においてプレイヤキャラクタが所持するアイテムをスイングしてボールを打撃して当該ボールを飛ばすゲームを実行する処理である。また、オブジェクトとは、プレイヤキャラクタが所持するアイテムオブジェクトである。また、所定の経路は、プレイヤキャラクタがアイテムをスイングする一連の動作を表示させるための経路である。
【発明の効果】
【0028】
上記第1の発明によれば、入力装置の移動速度が速すぎて、プレイヤの腕の動きを正確に反映することができないような場合は、予め用意されている、プレイヤが行うであろう動作のアニメーションを表示する。また、そこまで移動速度が大きくないときは、プレイヤの腕の動きを反映した動作を逐次表示する。これにより、プレイヤの腕の振りが速すぎること等が原因でプレイヤの意図しない動作が表示されてしまうことを防ぐことができる。
【0029】
上記第2の発明によれば、入力装置自体を動かした方向に応じてオブジェクトも移動するため、プレイヤのゲームに対する一体感を高め、感情移入がしやすくなり、ゲームの興趣を高めることができる。
【0030】
上記第3の発明によれば、更に入力装置の傾きに応じてオブジェクトを移動させることができるため、ゲーム空間内におけるオブジェクトの移動具合のリアリティを高め、プレイヤはゲームに対してより強い感情移入を行うことが可能となる。その結果、ゲームの興趣をより高めることができる。
【0031】
上記第4の発明によれば、例えばX軸方向のような傾き判定に用いる方向軸とは異なる方向軸(例えばZ軸方向)を用いて、入力装置の移動座標を決定する。そのため、入力装置の動き、ひいてはプレイヤが腕を振った動作を、より正確に検出することができ、プレイヤの意図しない動作が表示されてしまうことをより適切に防ぐことができる。
【0032】
上記第5の発明によれば、出力データを累積してから判定を行うため、過敏な反応によりプレイヤに与える違和感を低減することができる。
【0033】
上記第6の発明によれば、第1出力データの値がある程度の値のまま継続したとき第2出力データの累積を開始するため、過敏な反応によりプレイヤに与える違和感を低減することができる。
【0034】
上記第7の発明によれば、累積した値を初期化するため、例えば、プレイヤが腕を振っている途中に急に腕の振りを停止したとき等に、プレイヤが入力装置を動かす動作をより正確に反映することができる。
【0035】
上記第8の発明によれば、プレイヤの利き腕に応じた方向別に移動速度を検知する。そのため、右利き・左利きの双方のプレイヤに対応したゲームを提供することができ、より感情移入を行いやすくさせることが可能となる。その結果、ゲームの興趣をより高めることができる。
【0036】
上記第9の発明によれば、一旦決められた経路の動作が始まれば、所定時間内は当該動作が逐次表示されていく。そのため、一旦決められた経路の動作が始まった後の操作ミス等で、プレイヤの意図しない動作が表示されてしまうことを防ぐことができる。
【0037】
上記第10の発明によれば、加速度センサを用いて移動速度を判定することができる。そのため、より正確な移動速度の判定が可能となる。
【0038】
上記第11の発明によれば、入力装置の移動速度が速すぎることによりプレイヤの意図しない動作が行われることを低減することができ、ゴルフゲームにおけるゴルフクラブのスイング動作や野球ゲームにおけるバットのスイング動作等のように、行うべき動作がある程度決まっているようなゲームにおいて、より効果的にゲームの興趣を高めることが可能となる。
【0039】
また、本発明のゲームプログラムによれば、上述した本発明のゲーム装置と同様の効果を得ることができる。
【発明を実施するための最良の形態】
【0040】
以下、本発明の実施の形態について、図面を参照して説明する。尚、この実施例により本発明が限定されるものではない。
【0041】
図1を参照して、本発明の一実施形態に係るゲーム装置について説明する。以下、説明を具体的にするために、当該ゲーム装置を用いたゲームシステム1を一例として説明する。なお、図1は、当該ゲームシステム1を説明するための外観図である。以下、据置型ゲーム装置を一例にして、当該ゲームシステム1について説明する。
【0042】
図1において、当該ゲームシステム1は、家庭用テレビジョン受像機等のスピーカ2aを備えたディスプレイ(以下、モニタと記載する)2に、接続コードを介して接続される据置型ゲーム装置(以下、単にゲーム装置と記載する)3および当該ゲーム装置3に操作情報を与えるコントローラ7によって構成される。ゲーム装置3は、接続端子を介して受信ユニット6が接続される。受信ユニット6は、コントローラ7から無線送信される送信データを受信し、コントローラ7とゲーム装置3とは無線通信によって接続される。また、ゲーム装置3には、当該ゲーム装置3に対して交換可能に用いられる情報記憶媒体の一例の光ディスク4が脱着される。ゲーム装置3の上部主面には、当該ゲーム装置3の電源ON/OFFスイッチ、ゲーム処理のリセットスイッチ、およびゲーム装置3上部の蓋を開くOPENスイッチが設けられている。ここで、プレイヤがOPENスイッチを押下することによって上記蓋が開き、光ディスク4の脱着が可能となる。
【0043】
また、ゲーム装置3には、セーブデータ等を固定的に記憶するバックアップメモリ等を搭載する外部メモリカード5が必要に応じて着脱自在に装着される。ゲーム装置3は、光ディスク4に記憶されたゲームプログラムなどを実行することによって、その結果をゲーム画像としてモニタ2に表示する。さらに、ゲーム装置3は、外部メモリカード5に記憶されたセーブデータを用いて、過去に実行されたゲーム状態を再現して、ゲーム画像をモニタ2に表示することもできる。そして、ゲーム装置3のプレイヤは、モニタ2に表示されたゲーム画像を見ながら、コントローラ7を操作することによって、ゲーム進行を楽しむことができる。
【0044】
コントローラ7は、その内部に備える通信部75(後述)から受信ユニット6が接続されたゲーム装置3へ、例えばBluetooth(ブルートゥース;登録商標)の技術を用いて送信データを無線送信する。コントローラ7は、主にモニタ2に表示されるゲーム空間に登場するプレイヤオブジェクトを操作するための操作手段である。コントローラ7は、複数の操作ボタン、キー、およびスティック等の操作部が設けられている。また、後述により明らかとなるが、コントローラ7は、当該コントローラ7から見た画像を撮像する撮像情報演算部74を備えている。また、撮像情報演算部74の撮像対象の一例として、モニタ2の表示画面近傍に2つのLEDモジュール(以下、マーカと記載する)8Lおよび8Rが設置される。これらマーカ8Lおよび8Rは、それぞれモニタ2の前方に向かって赤外光を出力する。なお、本実施例では、撮像情報演算部74による撮像情報を用いないため、マーカ8Lおよび8Rを設置しなくてもかまわない。
【0045】
次に、図2を参照して、ゲーム装置3の構成について説明する。なお、図2は、ゲーム装置3の機能ブロック図である。
【0046】
図2において、ゲーム装置3は、各種プログラムを実行する例えばリスク(RISC)CPU(セントラルプロセッシングユニット)30を備える。CPU30は、図示しないブートROMに記憶された起動プログラムを実行し、メインメモリ33等のメモリの初期化等を行った後、光ディスク4に記憶されているゲームプログラムを実行し、そのゲームプログラムに応じたゲーム処理等を行うものである。CPU30には、メモリコントローラ31を介して、GPU(Graphics Processing Unit)32、メインメモリ33、DSP(Digital Signal Processor)34、およびARAM(Audio RAM)35が接続される。また、メモリコントローラ31には、所定のバスを介して、コントローラI/F(インターフェース)36、ビデオI/F37、外部メモリI/F38、オーディオI/F39、およびディスクI/F41が接続され、それぞれ受信ユニット6、モニタ2、外部メモリカード5、スピーカ2a、およびディスクドライブ40が接続されている。
【0047】
GPU32は、CPU30の命令に基づいて画像処理を行うものであり、例えば、3Dグラフィックスの表示に必要な計算処理を行う半導体チップで構成される。GPU32は、図示しない画像処理専用のメモリやメインメモリ33の一部の記憶領域を用いて画像処理を行う。GPU32は、これらを用いてモニタ2に表示すべきゲーム画像データやムービ映像を生成し、適宜メモリコントローラ31およびビデオI/F37を介してモニタ2に出力する。
【0048】
メインメモリ33は、CPU30で使用される記憶領域であって、CPU30の処理に必要なゲームプログラム等を適宜記憶する。例えば、メインメモリ33は、CPU30によって光ディスク4から読み出されたゲームプログラムや各種データ等を記憶する。このメインメモリ33に記憶されたゲームプログラムや各種データ等がCPU30によって実行される。
【0049】
DSP34は、ゲームプログラム実行時にCPU30において生成されるサウンドデータ等を処理するものであり、そのサウンドデータ等を記憶するためのARAM35が接続される。ARAM35は、DSP34が所定の処理(例えば、先読みしておいたゲームプログラムやサウンドデータの記憶)を行う際に用いられる。DSP34は、ARAM35に記憶されたサウンドデータを読み出し、メモリコントローラ31およびオーディオI/F39を介してモニタ2に備えるスピーカ2aに出力させる。
【0050】
メモリコントローラ31は、データ転送を統括的に制御するものであり、上述した各種I/Fが接続される。コントローラI/F36は、例えば4つのコントローラI/F36a〜36dで構成され、それらが有するコネクタを介して嵌合可能な外部機器とゲーム装置3とを通信可能に接続する。例えば、受信ユニット6は、上記コネクタと嵌合し、コントローラI/F36を介してゲーム装置3と接続される。上述したように受信ユニット6は、コントローラ7からの送信データを受信し、コントローラI/F36を介して当該送信データをCPU30へ出力する。ビデオI/F37には、モニタ2が接続される。外部メモリI/F38には、外部メモリカード5が接続され、その外部メモリカード5に設けられたバックアップメモリ等とアクセス可能となる。オーディオI/F39にはモニタ2に内蔵されるスピーカ2aが接続され、DSP34がARAM35から読み出したサウンドデータやディスクドライブ40から直接出力されるサウンドデータをスピーカ2aから出力可能に接続される。ディスクI/F41には、ディスクドライブ40が接続される。ディスクドライブ40は、所定の読み出し位置に配置された光ディスク4に記憶されたデータを読み出し、ゲーム装置3のバスやオーディオI/F39に出力する。
【0051】
図3および図4を参照して、本発明の入力装置の一例であるコントローラ7について説明する。なお、図3は、コントローラ7の上面後方から見た斜視図である。図4は、コントローラ7を下面後方から見た斜視図である。
【0052】
図3および図4において、コントローラ7は、例えばプラスチック成型によって形成されたハウジング71を有しており、当該ハウジング71に複数の操作部72が設けられている。ハウジング71は、その前後方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。
【0053】
ハウジング71上面の中央前面側に、十字キー72aが設けられる。この十字キー72aは、十字型の4方向プッシュスイッチであり、矢印で示す4つの方向(前後左右)に対応する操作部分が十字の突出片にそれぞれ90°間隔で配置される。プレイヤが十字キー72aのいずれかの操作部分を押下することによって前後左右いずれかの方向を選択される。例えばプレイヤが十字キー72aを操作することによって、仮想ゲーム世界に登場するプレイヤキャラクタ等の移動方向を指示したり、カーソルの移動方向を指示したりすることができる。
【0054】
なお、十字キー72aは、上述したプレイヤの方向入力操作に応じて操作信号を出力する操作部であるが、他の態様の操作部でもかまわない。例えば、リング状に4方向の操作部分を備えたプッシュスイッチとその中央に設けられたセンタスイッチとを複合した複合スイッチを上記十字キー72aの代わりに設けてもかまわない。また、ハウジング71上面から突出した傾倒可能なスティックを倒すことによって、傾倒方向に応じて操作信号を出力する操作部を上記十字キー72aの代わりに設けてもかまわない。さらに、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部を、上記十字キー72aの代わりに設けてもかまわない。また、タッチパッドを、上記十字キー72aの代わりに設けてもかまわない。また、少なくとも4つの方向(前後左右)をそれぞれ示すスイッチに対して、プレイヤによって押下されたスイッチに応じて操作信号を出力する操作部を上記十字キー72aの代わりに設けてもかまわない。
【0055】
ハウジング71上面の十字キー72aより後面側に、複数の操作ボタン72b〜72gが設けられる。操作ボタン72b〜72gは、プレイヤがボタン頭部を押下することによって、それぞれの操作ボタン72b〜72gに割り当てられた操作信号を出力する操作部である。例えば、操作ボタン72b〜72dには、Xボタン、Yボタン、およびBボタン等としての機能が割り当てられる。また、操作ボタン72e〜72gには、セレクトスイッチ、メニュースイッチ、およびスタートスイッチ等としての機能が割り当てられる。これら操作ボタン72b〜72gは、ゲーム装置3が実行するゲームプログラムに応じてそれぞれの機能が割り当てられるが、本発明の説明とは直接関連しないため詳細な説明を省略する。なお、図3に示した配置例では、操作ボタン72b〜72dは、ハウジング71上面の中央前後方向に沿って並設されている。また、操作ボタン72e〜72gは、ハウジング71上面の左右方向に沿って操作ボタン72bおよび72dの間に並設されている。そして、操作ボタン72fは、その上面がハウジング71の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【0056】
また、ハウジング71上面の十字キー72aより前面側に、操作ボタン72hが設けられる。操作ボタン72hは、遠隔からゲーム装置3本体の電源をオン/オフする電源スイッチである。この操作ボタン72hも、その上面がハウジング71の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【0057】
また、ハウジング71上面の操作ボタン72cより後面側に、複数のLED702が設けられる。ここで、コントローラ7は、他のコントローラ7と区別するためにコントローラ種別(番号)が設けられている。例えば、LED702は、コントローラ7に現在設定されている上記コントローラ種別をプレイヤに通知するために用いられる。具体的には、コントローラ7から受信ユニット6へ送信データを送信する際、上記コントローラ種別に応じて複数のLED702のうち、種別に対応するLEDが点灯する。
【0058】
一方、ハウジング71下面には、凹部が形成されている。後述で明らかとなるが、ハウジング71下面の凹部は、プレイヤがコントローラ7を把持したときに当該プレイヤの人差し指や中指が位置するような位置に形成される。そして、上記凹部の後面側傾斜面には、操作ボタン72iが設けられる。操作ボタン72iは、例えばAボタンとして機能する操作部であり、シューティングゲームにおけるトリガスイッチや、プレイヤオブジェクトを所定オブジェクトに対して注目させる操作等に用いられる。
【0059】
また、ハウジング71前面には、撮像情報演算部74の一部を構成する撮像素子743が設けられる。ここで、撮像情報演算部74は、コントローラ7が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを検出するためのシステムであり、例えば、最大200フレーム/秒程度のサンプリング周期であるため比較的高速なコントローラ7の動きでも追跡して解析することができる。また、ハウジング70の後面には、コネクタ73が設けられている。コネクタ73は、例えば32ピンのエッジコネクタであり、例えば接続ケーブルと嵌合して接続するために利用される。なお、本発明は、この撮像情報演算部74からの情報を使用しなくても実現可能であるため、ここではこれ以上の説明を省略する。
【0060】
ここで、説明を具体的にするために、コントローラ7に対して設定する座標系について定義する。図3および図4に示すように、互いに直交するXYZ軸をコントローラ7に対して定義する。具体的には、コントローラ7の前後方向となるハウジング71の長手方向をZ軸とし、コントローラ7の前面(撮像情報演算部74が設けられている面)方向をZ軸正方向とする。また、コントローラ7の上下方向をY軸とし、ハウジング71の上面(十字キー72a等が設けられた面)方向をY軸正方向とする。さらに、コントローラ7の左右方向をX軸とし、ハウジング71の左側面(図3では表されずに図4で表されている側面)方向をX軸正方向とする。
【0061】
次に、図5を参照して、コントローラ7の内部構造について説明する。なお、図5(a)は、コントローラ7の上筐体(ハウジング71の一部)を外した状態を示す斜視図である。図5(b)は、コントローラ7の下筐体(ハウジング71の一部)を外した状態を示す斜視図である。ここで、図5(b)に示す基板700は、図5(a)に示す基板700の裏面から見た斜視図となっている。
【0062】
図5(a)において、ハウジング71の内部には基板700が固設されており、当該基板700の上主面上に操作ボタン72a〜72h、加速度センサ701、LED702、水晶振動子703、無線モジュール753、およびアンテナ754等が設けられる。そして、これらは、基板700等に形成された配線(図示せず)によってマイコン751(図6参照)に接続される。加速度センサ701は、コントローラ7が配置された3次元空間における傾きや振動等の算出に用いることができる加速度を検出して出力する。
【0063】
より詳細には、図6に示すように、コントローラ7は3軸の加速度センサ701を備えていることが好ましい。この3軸の加速度センサ701は、3方向、すなわち、上下方向(図3に示すY軸)、左右方向(図3に示すX軸)、および前後方向(図3に示すZ軸)で直線加速度を検知する。また、他の実施形態においては、ゲーム処理に用いる制御信号の種類によっては、X軸とY軸(または他の対になった軸)のそれぞれに沿った直線加速度のみを検知する2軸の加速度検出手段を使用してもよい。例えば、この3軸または2軸の加速度センサ701は、アナログ・デバイセズ株式会社(Analog Devices, Inc.)またはSTマイクロエレクトロニクス社(STMicroelectronics N.V.)から入手可能であるタイプのものでもよい。加速度センサ701は、シリコン微細加工されたMEMS(Micro Electro Mechanical Systems:微小電子機械システム)の技術に基づいた静電容量式(静電容量結合式)であることが好ましい。しかしながら、既存の加速度検出手段の技術(例えば、圧電方式や圧電抵抗方式)あるいは将来開発される他の適切な技術を用いて3軸または2軸の加速度センサ701が提供されてもよい。
【0064】
当業者には公知であるように、加速度センサ701に用いられるような加速度検出手段は、加速度センサの持つ各軸に対応する直線に沿った加速度(直線加速度)のみを検知することができる。つまり、加速度センサ701からの直接の出力は、その2軸または3軸のそれぞれに沿った直線加速度(静的または動的)を示す信号である。このため、加速度センサ701は、非直線状(例えば、円弧状)の経路に沿った動き、回転、回転運動、角変位、傾斜、位置、または姿勢等の物理特性を直接検知することはできない。
【0065】
しかしながら、加速度センサ701から出力される加速度の信号に対して追加の処理を行うことによって、コントローラ7に関するさらなる情報を推測または算出(判定)することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、静的な加速度(重力加速度)が検知されると、加速度センサ701からの出力を用いて、傾斜角度と検知された加速度とを用いた演算によって重力ベクトルに対する対象(コントローラ7)の傾きを判定することができる。このように、加速度センサ701をマイコン751(または他のプロセッサ)と組み合わせて用いることによって、コントローラ7の傾き、姿勢または位置を判定することができる。同様に、加速度センサ701を備えるコントローラ7が例えば後述するようにユーザの手で動的に加速されて動かされる場合に、加速度センサ701によって生成される加速度信号を処理することによって、コントローラ7のさまざまな動きおよび/または位置を算出することができる。他の実施例では、加速度センサ701は、信号をマイコン42に出力する前に内蔵の加速度検出手段から出力される加速度信号に対して所望の処理を行うための、組込み式の信号処理装置または他の種類の専用の処理装置を備えていてもよい。例えば、組込み式または専用の処理装置は、加速度センサが静的な加速度(例えば、重力加速度)を検出するためのものである場合、検知された加速度信号をそれに相当する傾斜角(あるいは、他の好ましいパラメータ)に変換するものであってもよい。
【0066】
また、無線モジュール753およびアンテナ754を有する通信部75によって、コントローラ7がワイヤレスコントローラとして機能する。なお、水晶振動子703は、後述するマイコン751の基本クロックを生成する。
【0067】
一方、図5(b)において、基板700の下主面上の前端縁に撮像情報演算部74が設けられる。撮像情報演算部74は、コントローラ7の前方から順に赤外線フィルタ741、レンズ742、撮像素子743、および画像処理回路744によって構成されており、それぞれ基板700の下主面に取り付けられる。また、基板700の下主面上の後端縁にコネクタ73が取り付けられる。そして、操作ボタン72iが撮像情報演算部74の後方の基板700の下主面上に取り付けられていて、それよりさらに後方に、電池705が収容される。電池705とコネクタ73との間の基板700の下主面上には、バイブレータ704が取り付けられる。このバイブレータ704は、例えば振動モータやソレノイドであってよい。バイブレータ704が作動することによってコントローラ7に振動が発生するので、それを把持しているプレイヤの手にその振動が伝達され、いわゆる振動対応ゲームが実現できる。
【0068】
次に、図6を参照して、コントローラ7の内部構成について説明する。なお、図6は、コントローラ7の構成を示すブロック図である。
【0069】
撮像情報演算部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自体の方向を変えることによってその撮像方向を変更することができる。
【0070】
加速度センサ701は、上述したようにコントローラ7の上下方向(Y軸方向)、左右方向(X軸方向)、および前後方向(Z軸方向)の3軸成分に分けてそれぞれ加速度を検知して出力するセンサである。加速度センサ701が検知した3軸成分の加速度を示すデータは、それぞれ通信部75へ出力される。この加速度センサ701から出力される加速度データに基づいて、コントローラ7の動きを判定することができる。なお、加速度センサ701は、特定のアプリケーションで必要なデータに応じて何れか2軸に対してそれぞれ加速度を検出する加速度センサが用いられてもかまわない。
【0071】
通信部75は、マイクロコンピュータ(Micro Computer:マイコン)751、メモリ752、無線モジュール753、およびアンテナ754を含んでいる。マイコン751は、処理の際にメモリ752を記憶領域として用いながら、送信データを無線送信する無線モジュール753を制御する。
【0072】
コントローラ7に設けられた操作部72からの操作信号(キーデータ)、加速度センサ701からの3軸方向の加速度信号(X、Y、およびZ軸方向加速度データ)、および撮像情報演算部74からの処理結果データは、マイコン751に出力される。マイコン751は、入力した各データ(キーデータ、X、Y、およびZ軸方向加速度データ、処理結果データ)を受信ユニット6へ送信する送信データとして一時的にメモリ752に格納する。ここで、通信部75から受信ユニット6への無線送信は、所定の周期毎に行われるが、ゲームの処理は1/60秒を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。具体的には、ゲームの処理単位は16.7ms(1/60秒)であり、ブルートゥース(登録商標)で構成される通信部75の送信間隔は5msである。マイコン751は、受信ユニット6への送信タイミングが到来すると、メモリ752に格納されている送信データを一連の操作情報として出力し、無線モジュール753へ出力する。そして、無線モジュール753は、例えばBluetooth(ブルートゥース;登録商標)の技術を用いて、所定周波数の搬送波を用いて操作情報をその電波信号としてアンテナ754から放射する。つまり、コントローラ7に設けられた操作部72からのキーデータ、加速度センサ701からのX、Y、およびZ軸方向加速度データ、および撮像情報演算部74からの処理結果データがコントローラ7から送信される。そして、ゲーム装置3の受信ユニット6でその電波信号を受信し、ゲーム装置3で当該電波信号を復調や復号することによって、一連の操作情報(キーデータ、X、Y、およびZ軸方向加速度データ、および処理結果データ)を取得する。そして、ゲーム装置3のCPU30は、取得した操作情報とゲームプログラムとに基づいて、ゲーム処理を行う。なお、Bluetooth(登録商標)の技術を用いて通信部75を構成する場合、通信部75は、他のデバイスから無線送信された送信データを受信する機能も備えることができる。
【0073】
次に、図7を用いて、本実施形態で想定するゲームの概要について説明する。本実施形態で想定するゲームはゴルフゲームであり、図7に示すように、ゴルフクラブを構えたプレイヤオブジェクト101を後ろから見た視点でゲーム画面が表示されている。そして、プレイヤは、コントローラ7をゴルフクラブに見立ててスイングする動作を行うと、この動きに連動してプレイヤオブジェクト101がゴルフクラブをスイングする動作が描画される。
【0074】
スイング操作について、図8および図9を用いて、より詳しく説明する。図8は、ゴルフクラブでスイングを行うイメージを示す図であり、図9は、コントローラ7でスイングを行うイメージを示す図である。コントローラ7は、全体として大人や子供の片手でも把持可能な大きさである。そして、ゲームシステム1でコントローラ7を用いてゲームをプレイするためには、コントローラ7の前面が下方方向(重力方向)に向くようにプレイヤが両手でコントローラ7を把持する。例えば、プレイヤは、コントローラ7の前面を下方方向に露出させて、あたかもゴルフクラブを握っているかのようにコントローラ7を把持する。
【0075】
図8に示すような、ゴルフクラブを左上方向81に振り上げ、右下方向82を経由して右方向83へと振る動作をコントローラ7で行う場合は、図9に示すように、コントローラ7の前面を下向けにした状態を基準として、コントローラ7を把持している腕を図9における左上方向81(プレイヤからすれば、右上)に振り上げ、右下方向82、右方向83へと振り下ろす動作を行う。これにより、コントローラ7から操作情報(例えば、X、Y、およびZ軸方向加速度データ)をゲーム装置3に与える。そして、当該操作情報(加速度データ)に基づいて、ゴルフクラブの傾き等が算出され、当該傾き等に基づいてゴルフクラブが移動する。その結果、プレイヤオブジェクト101がゴルフクラブをスイングする様子が描画されることになる。
【0076】
このとき、腕を振る速度が速すぎる場合などは、プレイヤの腕の動きを正確に検出しきれないことがある。そのため、本実施形態では、例えばバックスイング動作中に、加速度が所定の閾値以上になったときは、その時点で、コントローラ7からの操作情報ではなく、予め決められている動作情報に基づいてゴルフクラブが動作する様子を描画する。つまり、バックスイング速度が速すぎて、ゲーム画面上に正確に反映できないようなときは、プレイヤの腕の動作とは関係なしに、予め決められているバックスイング動作を描画する(オートアニメーション処理)。
【0077】
次に、ゲーム装置3において実行されるゲーム処理の流れを図10〜図13を用いて説明する。図10は、ゲーム装置3において実行されるゲーム処理の流れを示すフローチャートである。ゲーム装置3の電源が投入されると、ゲーム装置3のCPU30は、図示しないブートROMに記憶されている起動プログラムを実行し、メインメモリ13等の各ユニットが初期化される。そして、光ディスク4に格納されたゲームプログラムがメインメモリ33に読み込まれ、当該ゲームプログラムの実行が開始される。その結果、GPU12を介してモニタ2にゲーム画像が表示されることによって、ゲームが開始される。この後、図10〜図11に示すフローチャートの処理が実行される。なお、図10に示すステップS1〜ステップS4の処理は、1フレーム毎に繰り返し実行される。また、本実施形態におけるゲームは上述のようにゴルフゲームであり、当該処理は、ゴルフクラブのスイングに関する処理であるが、これ以外の当該ゴルフゲームに関する処理(コース選択やショットされたボールの軌道計算等)については、本発明と直接関連しないため、説明を省略する。
【0078】
図10において、まず、CPU30は、安定状態判定処理を行う(ステップS1)。当該処理は、スイング動作の開始時におけるコントローラ7の握り方やスイング開始位置の個人差を吸収するための処理である。スイング動作開始時のコントローラ7の向きとしては、理想としては、図9に示したように、真下を向いた状態が望ましい。しかし、コントローラ7の握り方やスイング開始位置については、人によって個人差がある。そのため、人によっては、コントローラ7の前面が真下方向を向いておらず、少しだけX軸方向に右あるいは左に傾いた状態からスイングが開始されることもある。このようなときは、スイング開始時の時点で、少し傾いている分だけX軸方向に加速度が既にかかった状態となっている。そのため、このようなスイング開始時点で既にかかっているX軸方向の加速度を無視して、コントローラ7の握り方やスイング開始位置の個人差を吸収できるように、X軸方向の加速度が発生したまま安定しているような状態(少しだけ傾いている状態)は、スイング動作ではなく、安定状態であると判定するための処理が行われる。
【0079】
図11は、上記ステップS1で示した安定状態判定処理の詳細を示すフローチャートである。図11において、まず、CPU30は、コントローラ7より送信されてきた操作情報から加速度データを取得する(ステップS11)。続いて、CPU30は、当該加速度データからX軸方向の加速度値(以下、X軸加速値)を取得する。更に、この値から、X軸方向の比較用加速度値(以下、比較用X軸加速値)を算出する(ステップS12)。当該比較用X軸加速値は、例えば次の式で算出される。
今回フレームの比較用X軸加速値=前回フレームの比較用X軸加速値+(取得したX軸加速値−前回フレームの比較用X軸加速値)×K
ここで、Kは定数であり、例えば0.1という値が入る。
【0080】
続いて、CPU30は、X軸加速値と今回フレームの比較用X軸加速値との差数を算出する(ステップS13)。次に、当該差数が所定値以上か否かを判定する(ステップS14)。その結果、所定値以上であれば(ステップS14でYES)、安定状態であることを示すカウンタである安定フレーム数に所定値を設定する(ステップS15)。一方、所定値以下であれば(ステップS14でNO)、安定フレーム数から1を減算する(ステップS16)。つまり、X軸加速値と比較用X軸加速値との差が所定値以上であれば安定していない状態(コントローラ7に動きがある)、所定値未満であれば、安定している状態(コントローラ7に動きがない)であると判定するものである。以上で、安定状態判定処理が終了する。
【0081】
図10に戻り、安定状態判定処理の次に、CPU30は、オートバックスイング判定処理を行う(ステップS2)。ここでは、X軸方向の加速度を累積しておき、当該累積値が所定閾値を超えたか否かで、コントローラ7からの加速度データに基づいてゴルフクラブを動かすか、予め決められたデータに基づいてゴルフクラブを動かすか(オートアニメーション)の判定を行う。
【0082】
図12は、上記ステップS2で示したオートバックスイング判定処理の詳細を示すフローチャートである。図12において、まず、CPU30は、コントローラ7が振られているかどうかを判定する(ステップS21)。より具体的に説明すると、Z軸方向の加速度データが閾値を越えるZ軸正方向の値を示しているとき、ゲーム装置3は、プレイヤがコントローラ7を振っていると判定する。例えば、コントローラ7が静止状態である場合、加速度センサ701は、重力加速度9.8m/s2を超える加速度を検出することはない。一方、上述したようにプレイヤがコントローラ7を把持して腕を振った場合、コントローラ7の前端部が円弧状の軌跡を描いて移動するため、遠心力の影響によってZ軸正方向(図3参照)の加速度が検出される。本実施例では、重力加速度以上の閾値として1.1という値を設定し、Z軸方向の加速度データが当該閾値を超える加速度を示している場合、プレイヤがコントローラ7を振っていると判定する。
【0083】
ステップS21の判定の結果、Z軸方向の加速度データが所定値以上の場合、つまり、コントローラ7が振られていると判定された場合は(ステップS21でYES)、次に、X軸方向の加速度データを、正方向(コントローラ7を下に向けているため、図9の右方向になる)および負方向(図9の左方向)別に累積する(ステップS22)。ここで、コントローラ7が振られている方向の判定について説明する。コントローラ7を把持して振った場合、振り始めは加速して振り終わりは減速となる。したがって、コントローラ7には、振り始めで振っている方向と同じ方向の加速度が生じた後、徐々に加速度の大きさが減少して、振り終わりで振っている方向とは逆の方向に加速度が生じる。一方、一般的に、加速度センサ701から出力される加速度ベクトル(あるいは、加速度の正負)は、コントローラ7の加速方向とは真逆のベクトルとなる。したがって、加速度センサ701は、コントローラ7の振り始めで振っている方向とは逆の方向に加速度を検出した後、徐々に加速度の大きさが減少して、振り終わりで振っている方向と同じ方向に加速度を検出する。例えば、図9において、コントローラ7の前面を下に向けて図9の左方向に加速(つまり、コントローラ7の加速方向がX軸負方向)したとき、加速度センサ701から得られる加速度ベクトルとしてはX軸正方向のベクトルが得られることになる。そのため、正方向の加速度データを累積していけば、左方向に振り上げている動作の加速度データを累積することができる。また、負方向の加速度データを累積していけば、右方向に振り上げている動作の加速度データを累積することができる。
【0084】
次に、プレイヤの利き腕を判定する(ステップS23)。これは、オプション画面などで、予めプレイヤが設定したユーザ設定値(メインメモリ33に格納されている)を参照することで判定される。ここでは、当該ユーザ設定値は「右利き」「左利き」のうちの何れかであるものとする。当該判定の結果、プレイヤが右利きのときは(ステップS23でYES)、正方向の累積加速度が所定値を超えたかを判定する(ステップS24)。その結果、正方向の累積加速度が所定値以上のときは(ステップS24でYES)、オートフレーム数に所定値を設定する(ステップS25)。当該オートフレーム数とは、後述のオートアニメーションが行われる時間を示すためのカウンタである。所定値以上でないときは(ステップS24でNO)、そのままオートバックスイング処理を終了する。
【0085】
一方、プレイヤが左利きのときは(ステップS23でNO)、負方向の累積加速度が所定値を超えたかを判定する(ステップS25)。その結果、負方向の累積加速度が所定値以上であれば、オートフレーム数に所定値を設定する(ステップS26)。一方、所定値以上でないときは(ステップS25でNO)、そのままオートバックスイング処理を終了する。
【0086】
一方、ステップS21の判定の結果、Z軸方向の加速度データが所定値以下、つまり、コントローラ7が振られていないときは、累積値に0を設定する(ステップS27)。更に、オートフレーム数に0を設定する(ステップS28)。これにより、後述のスイング処理におけるオートアニメーション処理を途中でキャンセルすることができる。以上で、オートバックスイング判定処理が終了する。
【0087】
図10に戻り、ステップS2のオートバックスイング判定処理が終われば、続いてスイング処理が行われる(ステップS3)。図13は、当該ステップS3のスイング処理の詳細を示すフローチャートである。ここでは、オートバックスイング判定処理における処理結果に基づいて、プレイヤオブジェクト101のスイング動作の描画処理が行われる。図13において、まず、CPU30は、オートフレーム数が0より大きいか否かを判定する(ステップS31)。つまり、オートアニメーションの処理を行うか否かを判定する。当該判定の結果、0より大きいときは(ステップS31でYES)、予め決められているゴルフクラブの移動データ(移動経路や移動速度)に沿ってゴルフクラブを移動させるような、プレイヤオブジェクト101のバックスイング動作を描画する(ステップS32)。つまり、X軸方向の加速度が閾値を超えた時点で、それ以降のプレイヤの腕の実際の動きにかかわらずに、ゴルフクラブをバックスイングする動作がオートアニメーションとして描画されることになる。そして、オートフレーム数から1を減算し(ステップS33)、スイング処理を終了する。
【0088】
一方、ステップS31の判定の結果、オートフレーム数が0のときは(ステップS31でNO)、安定フレーム数が0より大きいか否かを判定する(ステップS34)。その結果、0より大きいとき(ステップS34でYES)は、オートアニメーションの処理を行うまでには至らないが、ある程度の速度でコントローラ7が振られている状態であると考えられる。例えば、利き腕が右腕の場合に、右方向にバックスイングするのではなく、反対方向の左方向に腕を振った場合がこれに該当する。この場合は、そのまま処理を終了する。その結果、プレイヤオブジェクト101がゴルフクラブを構えたまま、スイング動作の開始を待っている状態で描画される。
【0089】
一方、安定フレーム数が0であれば(ステップS34でNO)、上記加速度データに基づいて、コントローラの傾きを算出する(ステップS35)。続いて、当該傾きに基づいてゴルフクラブを移動させる座標を決定する。そして、この座標に沿ってゴルフクラブを移動させる様子を描画する(ステップS36)。つまり、プレイヤの実際の入力動作に従って画面内のゴルフクラブを動かすことになる。その結果、プレイヤの腕の動きに連動する形でプレイヤオブジェクト101がゴルフクラブをスイングする動作が描画されることになる。以上で、スイング処理は終了する。
【0090】
図10に戻り、スイング処理が終われば、CPU30は、ショット開始条件が達成されたか否かを判定する(ステップS4)。例えば、コントローラ7のX軸方向の加速度データを、正方向および負方向に累積した上で、ステップS23からS25の判定とは逆の判定で、プレイヤが右利きのときは正方向の累積加速度が所定値を超えたかどうかを判定し、プレイヤが左利きのときは負方向の累積加速度が所定値を超えたかどうかを判定し、所定値を越えた際にはショット開始条件が満たされたと判定する。ショット開始条件が満たされたときは(ステップS4でYES)、CPU30は、ショット処理(ステップS5)を行う。この処理では、ボールの弾道等を計算して、ボールを飛ばす処理が行われる。一方、ショット開始条件が満たされていない場合は(ステップS4でNO)、上記ステップS1に戻って処理を繰り返す。以上で、本実施形態にかかるゲーム処理は終了する。
【0091】
このように、本発明の実施形態では、プレイヤが入力装置を振ったときの加速度がある閾値以上かどうかを判定する。その結果、閾値を超えるような大きな加速度が加わったときは、予め決められた一連の動作が描画されるようにする。これにより、加速度が大きすぎて、プレイヤの腕の動きを正確に反映することができないような場合は、予め用意されている、プレイヤが行うであろう動作(あるいは行いたいと考えられる動作)のアニメーションを表示する。また、そこまで加速度が大きくないときは、プレイヤの腕の動きを反映した動作を表示する。これにより、プレイヤの腕の振りが速すぎること等が原因でプレイヤの意図しない動作が表示されてしまうことを防ぐことができる。
【0092】
なお、上述の実施形態では、X軸方向の加速度を累積して判定を行っていたが、これに限らず、加速度の累積を行わずに、その時点の加速度のみで判定するようにしてもよい。このようにした場合も、プレイヤの腕の振りが速すぎること等が原因でプレイヤの意図しない動作が表示されてしまうことを防ぐことができる。
【0093】
また、図12のステップS21の処理について、Z軸の加速度が所定値以上の状態が所定時間以上継続したときに、X軸方法の加速値を正負別に累積する処理を行うようにしてもよい。これにより、過敏な反応によりプレイヤに与える違和感を低減することができる。
【0094】
また、オートアニメーションの開始後は、一連の動作が終わるまで、入力を受け付けないようにしても良い。例えば、図13のステップS32のオートアニメーションの開始後は、オートフレーム数が0になるまでは、図10のステップS2のオートバックスイング判定処理を行わないようにしてもよい。これにより、一旦オートアニメーションが始まった後の操作ミス等で、プレイヤの意図しない動作が表示されてしまうことを防ぐことができる。更に、オートアニメーションの再生速度(ゴルフクラブを振る速度)を、当該オートアニメーション開始時における加速度の値に応じて変化させるようにしても良い。
【産業上の利用可能性】
【0095】
本発明にかかるゲーム装置およびゲームプログラムは、プレイヤの意図しない動作が表示されてしまうことを防ぐことができ、ゴルフゲーム等の、プレイヤキャラクタが所持するアイテムをスイングするようなゲーム処理を行うゲーム装置およびゲームプログラムに有用である。
【図面の簡単な説明】
【0096】
【図1】本発明の一実施形態に係るゲームシステム1を説明するための外観図
【図2】図1のゲーム装置3の機能ブロック図
【図3】図3のコントローラ7の上面後方から見た斜視図
【図4】図3のコントローラ7を下面後方から見た斜視図
【図5】図3のコントローラ7の上筐体を外した状態を示す斜視図
【図6】図3のコントローラ7の構成を示すブロック図
【図7】本実施形態で想定するゲームのゲーム画面の一例
【図8】ゴルフクラブでスイングを行うイメージを示す図
【図9】コントローラ7でスイングを行うイメージを示す図
【図10】ゲーム装置3において実行されるゲーム処理の流れを示すフローチャート
【図11】図10のステップS1で示した安定状態判定処理の詳細を示すフローチャート
【図12】図10のステップS2で示したオートバックスイング判定処理の詳細を示すフローチャート
【図13】図10のステップS3で示したスイング処理の詳細を示すフローチャート
【符号の説明】
【0097】
1…ゲームシステム
2…モニタ
2a…スピーカ
3…ゲーム装置
30…CPU
31…メモリコントローラ
32…GPU
33…メインメモリ
34…DSP
35…ARAM
36…コントローラI/F
37…ビデオI/F
38…外部メモリI/F
39…オーディオI/F
40…ディスクドライブ
41…ディスクI/F
4…光ディスク
5…外部メモリカード
6…受信ユニット
7…コントローラ
71…ハウジング
72…操作部
73…コネクタ
74…撮像情報演算部
741…赤外線フィルタ
742…レンズ
743…撮像素子
744…画像処理回路
75…通信部
751…マイコン
752…メモリ
753…無線モジュール
754…アンテナ
700…基板
701…加速度センサ
702…LED
703…水晶振動子
704…バイブレータ
705…電池
【特許請求の範囲】
【請求項1】
入力装置自体の動きに応じてゲーム処理を行うゲーム装置であって、
前記入力装置自体の動きに応じて変化する第1出力データ及び第2出力データを取得する出力データ取得手段と、
前記第1出力データが第1の閾値以上であるかを判定し、第1の閾値以上であれば前記所定の経路に沿って予め決められた変化量で前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定し、第1の閾値未満であれば前記第1出力データ、及び第2出力データを用い、前記所定の経路に沿って前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定する移動座標決定手段と、
前記仮想ゲーム空間で前記オブジェクトを前記決定された移動座標へ移動させるオブジェクト移動手段と、
前記オブジェクト移動手段の結果に応じて、前記仮想ゲーム空間を表示装置に表示させる表示制御手段とを備える、ゲーム装置。
【請求項2】
前記移動座標決定手段は、前記第1出力データが前記第1の閾値未満の時は、前記第2出力データに基づいた前記入力装置自体の動く方向に対応した前記仮想ゲーム空間の前記所定の経路に沿った方向に前記オブジェクトを移動させる座標を決定する、請求項1に記載のゲーム装置。
【請求項3】
前記ゲーム装置は、前記第1出力データ、及び第2出力データを用いて前記入力装置自体の傾きを算出する傾き算出手段を更に備え、
前記移動座標決定手段は、前記第1出力データが前記第1の閾値未満の時は、前記傾き算出手段で算出された前記傾きに基づいて前記仮想ゲーム空間の前記所定の経路に沿った方向に前記オブジェクトを移動させる座標を決定する、請求項1に記載のゲーム装置。
【請求項4】
前記移動座標決定手段は、前記第1出力データが第1の閾値以上であるときに、前記第2出力データが第2の閾値以上であれば前記所定の経路に沿って予め決められた変化量で前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定し、第2の閾値未満であれば前記第1出力データ、及び第2出力データを用い、前記所定の経路に沿って前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定する、請求項1に記載のゲーム装置。
【請求項5】
前記ゲーム装置は、単位時間毎の第2出力データの値を累積する出力データ累積手段を更に備え、
前記移動座標決定手段は、前記累積された第2出力データの値が第3の閾値以上であるかを前記単位時間毎に判定し、第3の閾値以上であれば、前記所定の経路に沿って予め決められた変化量で前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定し、第3の閾値未満であれば、前記第1出力データ、及び第2出力データを用い、前記所定の経路に沿って前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定する、請求項1に記載のゲーム装置。
【請求項6】
前記出力データ累積手段は、前記第1出力データの値が前記第1の閾値以上である状態が所定時間以上継続しているときにのみ前記第2出力データの値の累積を開始する、請求項5に記載のゲーム装置。
【請求項7】
前記ゲーム装置は、前記出力データ累積手段が前記第2出力データの値の累積を開始した後、前記第1出力データが第1の閾値以下になったとき、前記第2出力データの累積した値を初期化する累積値初期化手段を更に備える、請求項6に記載のゲーム装置。
【請求項8】
前記ゲーム装置は、プレイヤの利き腕についての情報である利き腕情報を設定して記憶する利き腕情報記憶手段を更に備え、
前記出力データ累積手段は、前記利き腕情報に応じて、前記入力装置自体の動きの方向別に前記第2出力データの値の累積を開始する、請求項5に記載のゲーム装置。
【請求項9】
前記移動座標決定手段は、前記所定の経路に沿って前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定した後から所定の時間が経過するまでの間は、前記第1出力データが第1の閾値以上であるかどうかに関わらず前記所定の経路に沿って前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定する、請求項1に記載のゲーム装置。
【請求項10】
前記入力装置は、当該入力装置に生じる加速度を検出する加速度センサを備えており、
前記第1出力データ、及び第2出力データは、前記入力装置自体の動きに応じて前記加速度センサから出力される加速度データであることを特徴とする、請求項1に記載のゲーム装置。
【請求項11】
前記ゲーム処理は、仮想ゲーム世界においてプレイヤキャラクタが所持するアイテムをスイングしてボールを打撃して当該ボールを飛ばすゲームを実行する処理であり、
前記オブジェクトは、前記プレイヤキャラクタが所持するアイテムオブジェクトであり、
前記所定の経路は、前記プレイヤキャラクタが前記アイテムをスイングする一連の動作を表示させるための経路である、請求項1に記載のゲーム装置。
【請求項12】
入力装置自体の動きに応じてゲーム処理を行うゲーム装置のコンピュータで実行されるゲームプログラムであって、
前記入力装置自体の動きに応じて変化する第1出力データ及び第2出力データを取得する出力データ取得ステップと、
前記第1出力データが第1の閾値以上であるかを判定し、第1の閾値以上であれば前記所定の経路に沿って予め決められた変化量で前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定し、第1の閾値未満であれば前記第1出力データ、及び第2出力データを用い、前記所定の経路に沿って前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定する移動座標決定ステップと、
前記仮想ゲーム空間で前記オブジェクトを前記決定された移動座標へ移動させるオブジェクト移動ステップと、
前記オブジェクト移動ステップの処理結果に応じて、前記仮想ゲーム空間を表示装置に表示させる表示制御ステップとを前記コンピュータに実行させる、ゲームプログラム。
【請求項13】
前記移動座標決定ステップは、前記第1出力データが前記第1の閾値未満の時は、前記第2出力データに基づいた前記入力装置自体の動く方向に対応した前記仮想ゲーム空間の前記所定の経路に沿った方向に前記オブジェクトを移動させる座標を決定する、請求項12に記載のゲームプログラム。
【請求項14】
前記ゲームプログラムは、前記第1出力データ、及び第2出力データを用いて前記入力装置自体の傾きを算出する傾き算出ステップを更に実行させ、
前記移動座標決定ステップは、前記第1出力データが前記第1の閾値未満の時は、前記傾き算出手段で算出された前記傾きに基づいて前記仮想ゲーム空間の前記所定の経路に沿った方向に前記オブジェクトを移動させる座標を決定する、請求項12に記載のゲームプログラム。
【請求項15】
前記移動座標決定ステップは、前記第1出力データが第1の閾値以上であるときに、前記第2出力データが第2の閾値以上であれば前記所定の経路に沿って予め決められた変化量で前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定し、第2の閾値未満であれば前記第1出力データ、及び第2出力データを用い、前記所定の経路に沿って前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定する、請求項12に記載のゲームプログラム。
【請求項16】
前記ゲームプログラムは、単位時間毎の第2出力データの値を累積する出力データ累積ステップを更に実行させ、
前記移動座標決定ステップは、前記累積された第2出力データの値が第3の閾値以上であるかを前記単位時間毎に判定し、第3の閾値以上であれば、前記所定の経路に沿って予め決められた変化量で前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定し、第3の閾値未満であれば、前記第1出力データ、及び第2出力データを用い、前記所定の経路に沿って前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定する、請求項12に記載のゲームプログラム。
【請求項17】
前記出力データ累積ステップは、前記第1出力データの値が前記第1の閾値以上である状態が所定時間以上継続しているときにのみ前記第2出力データの値の累積を開始する、請求項16に記載のゲームプログラム。
【請求項18】
前記ゲームプログラムは、前記出力データ累積ステップが前記第2出力データの値の累積を開始した後、前記第1出力データが第1の閾値以下になったとき、前記第2出力データの累積した値を初期化する累積値初期化ステップを更に実行させる、請求項17に記載のゲームプログラム。
【請求項19】
前記ゲームプログラムは、プレイヤの利き腕についての情報である利き腕情報を設定してメモリに記憶する利き腕情報記憶ステップを更に実行させ、
前記出力データ累積ステップは、前記利き腕情報に応じて、前記入力装置自体の動きの方向別に前記第2出力データの値の累積を開始する、請求項16に記載のゲーム装置。
【請求項20】
前記移動経路決定ステップは、前記所定の経路に沿って前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定した後から所定の時間が経過するまでの間は、前記第1出力データが第1の閾値以上であるかどうかに関わらず前記所定の経路に沿って前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定する、請求項12に記載のゲームプログラム。
【請求項21】
前記入力装置は、当該入力装置に生じる加速度を検出する加速度センサを備えており、
前記第1出力データ、及び第2出力データは、前記入力装置自体の動きに応じて前記加速度センサから出力される加速度データであることを特徴とする、請求項12に記載のゲームプログラム。
【請求項22】
前記ゲーム処理は、仮想ゲーム世界においてプレイヤキャラクタが所持するアイテムをスイングしてボールを打撃して当該ボールを飛ばすゲームを実行する処理であり、
前記オブジェクトは、前記プレイヤキャラクタが所持するアイテムオブジェクトであり、
前記所定の経路は、前記プレイヤキャラクタが前記アイテムをスイングする一連の動作を表示させるための経路である、請求項12に記載のゲームプログラム。
【請求項1】
入力装置自体の動きに応じてゲーム処理を行うゲーム装置であって、
前記入力装置自体の動きに応じて変化する第1出力データ及び第2出力データを取得する出力データ取得手段と、
前記第1出力データが第1の閾値以上であるかを判定し、第1の閾値以上であれば前記所定の経路に沿って予め決められた変化量で前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定し、第1の閾値未満であれば前記第1出力データ、及び第2出力データを用い、前記所定の経路に沿って前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定する移動座標決定手段と、
前記仮想ゲーム空間で前記オブジェクトを前記決定された移動座標へ移動させるオブジェクト移動手段と、
前記オブジェクト移動手段の結果に応じて、前記仮想ゲーム空間を表示装置に表示させる表示制御手段とを備える、ゲーム装置。
【請求項2】
前記移動座標決定手段は、前記第1出力データが前記第1の閾値未満の時は、前記第2出力データに基づいた前記入力装置自体の動く方向に対応した前記仮想ゲーム空間の前記所定の経路に沿った方向に前記オブジェクトを移動させる座標を決定する、請求項1に記載のゲーム装置。
【請求項3】
前記ゲーム装置は、前記第1出力データ、及び第2出力データを用いて前記入力装置自体の傾きを算出する傾き算出手段を更に備え、
前記移動座標決定手段は、前記第1出力データが前記第1の閾値未満の時は、前記傾き算出手段で算出された前記傾きに基づいて前記仮想ゲーム空間の前記所定の経路に沿った方向に前記オブジェクトを移動させる座標を決定する、請求項1に記載のゲーム装置。
【請求項4】
前記移動座標決定手段は、前記第1出力データが第1の閾値以上であるときに、前記第2出力データが第2の閾値以上であれば前記所定の経路に沿って予め決められた変化量で前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定し、第2の閾値未満であれば前記第1出力データ、及び第2出力データを用い、前記所定の経路に沿って前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定する、請求項1に記載のゲーム装置。
【請求項5】
前記ゲーム装置は、単位時間毎の第2出力データの値を累積する出力データ累積手段を更に備え、
前記移動座標決定手段は、前記累積された第2出力データの値が第3の閾値以上であるかを前記単位時間毎に判定し、第3の閾値以上であれば、前記所定の経路に沿って予め決められた変化量で前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定し、第3の閾値未満であれば、前記第1出力データ、及び第2出力データを用い、前記所定の経路に沿って前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定する、請求項1に記載のゲーム装置。
【請求項6】
前記出力データ累積手段は、前記第1出力データの値が前記第1の閾値以上である状態が所定時間以上継続しているときにのみ前記第2出力データの値の累積を開始する、請求項5に記載のゲーム装置。
【請求項7】
前記ゲーム装置は、前記出力データ累積手段が前記第2出力データの値の累積を開始した後、前記第1出力データが第1の閾値以下になったとき、前記第2出力データの累積した値を初期化する累積値初期化手段を更に備える、請求項6に記載のゲーム装置。
【請求項8】
前記ゲーム装置は、プレイヤの利き腕についての情報である利き腕情報を設定して記憶する利き腕情報記憶手段を更に備え、
前記出力データ累積手段は、前記利き腕情報に応じて、前記入力装置自体の動きの方向別に前記第2出力データの値の累積を開始する、請求項5に記載のゲーム装置。
【請求項9】
前記移動座標決定手段は、前記所定の経路に沿って前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定した後から所定の時間が経過するまでの間は、前記第1出力データが第1の閾値以上であるかどうかに関わらず前記所定の経路に沿って前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定する、請求項1に記載のゲーム装置。
【請求項10】
前記入力装置は、当該入力装置に生じる加速度を検出する加速度センサを備えており、
前記第1出力データ、及び第2出力データは、前記入力装置自体の動きに応じて前記加速度センサから出力される加速度データであることを特徴とする、請求項1に記載のゲーム装置。
【請求項11】
前記ゲーム処理は、仮想ゲーム世界においてプレイヤキャラクタが所持するアイテムをスイングしてボールを打撃して当該ボールを飛ばすゲームを実行する処理であり、
前記オブジェクトは、前記プレイヤキャラクタが所持するアイテムオブジェクトであり、
前記所定の経路は、前記プレイヤキャラクタが前記アイテムをスイングする一連の動作を表示させるための経路である、請求項1に記載のゲーム装置。
【請求項12】
入力装置自体の動きに応じてゲーム処理を行うゲーム装置のコンピュータで実行されるゲームプログラムであって、
前記入力装置自体の動きに応じて変化する第1出力データ及び第2出力データを取得する出力データ取得ステップと、
前記第1出力データが第1の閾値以上であるかを判定し、第1の閾値以上であれば前記所定の経路に沿って予め決められた変化量で前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定し、第1の閾値未満であれば前記第1出力データ、及び第2出力データを用い、前記所定の経路に沿って前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定する移動座標決定ステップと、
前記仮想ゲーム空間で前記オブジェクトを前記決定された移動座標へ移動させるオブジェクト移動ステップと、
前記オブジェクト移動ステップの処理結果に応じて、前記仮想ゲーム空間を表示装置に表示させる表示制御ステップとを前記コンピュータに実行させる、ゲームプログラム。
【請求項13】
前記移動座標決定ステップは、前記第1出力データが前記第1の閾値未満の時は、前記第2出力データに基づいた前記入力装置自体の動く方向に対応した前記仮想ゲーム空間の前記所定の経路に沿った方向に前記オブジェクトを移動させる座標を決定する、請求項12に記載のゲームプログラム。
【請求項14】
前記ゲームプログラムは、前記第1出力データ、及び第2出力データを用いて前記入力装置自体の傾きを算出する傾き算出ステップを更に実行させ、
前記移動座標決定ステップは、前記第1出力データが前記第1の閾値未満の時は、前記傾き算出手段で算出された前記傾きに基づいて前記仮想ゲーム空間の前記所定の経路に沿った方向に前記オブジェクトを移動させる座標を決定する、請求項12に記載のゲームプログラム。
【請求項15】
前記移動座標決定ステップは、前記第1出力データが第1の閾値以上であるときに、前記第2出力データが第2の閾値以上であれば前記所定の経路に沿って予め決められた変化量で前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定し、第2の閾値未満であれば前記第1出力データ、及び第2出力データを用い、前記所定の経路に沿って前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定する、請求項12に記載のゲームプログラム。
【請求項16】
前記ゲームプログラムは、単位時間毎の第2出力データの値を累積する出力データ累積ステップを更に実行させ、
前記移動座標決定ステップは、前記累積された第2出力データの値が第3の閾値以上であるかを前記単位時間毎に判定し、第3の閾値以上であれば、前記所定の経路に沿って予め決められた変化量で前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定し、第3の閾値未満であれば、前記第1出力データ、及び第2出力データを用い、前記所定の経路に沿って前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定する、請求項12に記載のゲームプログラム。
【請求項17】
前記出力データ累積ステップは、前記第1出力データの値が前記第1の閾値以上である状態が所定時間以上継続しているときにのみ前記第2出力データの値の累積を開始する、請求項16に記載のゲームプログラム。
【請求項18】
前記ゲームプログラムは、前記出力データ累積ステップが前記第2出力データの値の累積を開始した後、前記第1出力データが第1の閾値以下になったとき、前記第2出力データの累積した値を初期化する累積値初期化ステップを更に実行させる、請求項17に記載のゲームプログラム。
【請求項19】
前記ゲームプログラムは、プレイヤの利き腕についての情報である利き腕情報を設定してメモリに記憶する利き腕情報記憶ステップを更に実行させ、
前記出力データ累積ステップは、前記利き腕情報に応じて、前記入力装置自体の動きの方向別に前記第2出力データの値の累積を開始する、請求項16に記載のゲーム装置。
【請求項20】
前記移動経路決定ステップは、前記所定の経路に沿って前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定した後から所定の時間が経過するまでの間は、前記第1出力データが第1の閾値以上であるかどうかに関わらず前記所定の経路に沿って前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定する、請求項12に記載のゲームプログラム。
【請求項21】
前記入力装置は、当該入力装置に生じる加速度を検出する加速度センサを備えており、
前記第1出力データ、及び第2出力データは、前記入力装置自体の動きに応じて前記加速度センサから出力される加速度データであることを特徴とする、請求項12に記載のゲームプログラム。
【請求項22】
前記ゲーム処理は、仮想ゲーム世界においてプレイヤキャラクタが所持するアイテムをスイングしてボールを打撃して当該ボールを飛ばすゲームを実行する処理であり、
前記オブジェクトは、前記プレイヤキャラクタが所持するアイテムオブジェクトであり、
前記所定の経路は、前記プレイヤキャラクタが前記アイテムをスイングする一連の動作を表示させるための経路である、請求項12に記載のゲームプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2007−296078(P2007−296078A)
【公開日】平成19年11月15日(2007.11.15)
【国際特許分類】
【出願番号】特願2006−126062(P2006−126062)
【出願日】平成18年4月28日(2006.4.28)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
【公開日】平成19年11月15日(2007.11.15)
【国際特許分類】
【出願日】平成18年4月28日(2006.4.28)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
[ Back to top ]