(57)【特許請求の範囲】
【請求項１】
あらかじめ設定された複数の目標時点のそれぞれにおいてユーザが把持するコントローラを振ったか否かにより、ユーザの操作の正確さを判定するゲーム装置において、
前記複数の目標時点のそれぞれを含むように対応付けられ、互いに重ならないようにあらかじめ設定された複数の測定区間のいずれかに、現在時点が含まれる間、当該コントローラの加速度を計測する計測部、
前記複数の測定区間のそれぞれにおいて計測された加速度が増加しつつ第１閾値に至った時点および減少しつつ当該第１閾値に至った時点を抽出する抽出部、
前記複数の測定区間のそれぞれにおいて抽出された時点のうち、当該測定区間に含まれる目標時点に最も近い時点を選択し、当該目標時点と、当該選択された時点と、の差を求め、前記複数の測定区間のそれぞれにおける差に所定の単調減少関数を適用した結果を集計した結果から、前記ユーザの操作の正確さを判定する判定部
を備えることを特徴とするゲーム装置。
【請求項２】
請求項１に記載のゲーム装置であって、
前記抽出部は、前記計測された加速度が増加しつつ当該第１閾値の符号を反転した第２閾値に至った時点および減少しつつ当該第２閾値に至った時点をさらに抽出する
ことを特徴とするゲーム装置。
【請求項３】
請求項１または２に記載のゲーム装置であって、
前記計測部は、現在時点が当該測定区間に含まれる間、定期的にコントローラの加速度を計測し、
前記抽出部は、前記計測されたコントローラの加速度を補間して、当該閾値に至った時点を抽出する
ことを特徴とするゲーム装置。
【請求項４】
あらかじめ設定された複数の目標時点のそれぞれにおいてユーザが把持するコントローラを振ったか否かにより、ユーザの操作の正確さを判定するゲーム装置が実行するゲーム制御方法であって、当該ゲーム装置は、計測部、抽出部、判定部を有し、
前記計測部が、前記複数の目標時点のそれぞれを含むように対応付けられ、互いに重ならないようにあらかじめ設定された複数の測定区間のいずれかに、現在時点が含まれる間、当該コントローラの加速度を計測する計測工程、
前記抽出部が、前記複数の測定区間のそれぞれにおいて計測された加速度が増加しつつ第１閾値に至った時点および減少しつつ当該第１閾値に至った時点を抽出する抽出工程、
前記判定部が、前記複数の測定区間のそれぞれにおいて抽出された時点のうち、当該目標時点に最も近い時点を選択し、当該目標時点と、当該選択された時点と、の差を求め、前記複数の測定区間のそれぞれにおける差に所定の単調減少関数を適用した結果を集計した結果から、前記ユーザの操作の正確さを判定する判定工程
を備えることを特徴とするゲーム制御方法。
【請求項５】
請求項４に記載のゲーム制御方法であって、
前記抽出工程では、前記計測された加速度が増加しつつ当該第１閾値の符号を反転した第２閾値に至った時点および減少しつつ当該第２閾値に至った時点をさらに抽出する
ことを特徴とするゲーム制御方法。
【請求項６】
あらかじめ設定された複数の目標時点のそれぞれにおいてユーザが把持するコントローラを振ったか否かにより、ユーザの操作の正確さを判定するゲームを実現するプログラムであって、当該コントローラが接続されたコンピュータを、
前記複数の目標時点のそれぞれを含むように対応付けられ、互いに重ならないようにあらかじめ設定された複数の測定区間のいずれかに、現在時点が含まれる間、当該コントローラの加速度を計測する計測部、
前記複数の測定区間のそれぞれにおいて計測された加速度が増加しつつ第１閾値に至った時点および減少しつつ当該第１閾値に至った時点を抽出する抽出部、
前記複数の測定区間のそれぞれにおいて抽出された時点のうち、当該測定区間に含まれる目標時点に最も近い時点を選択し、当該目標時点と、当該選択された時点と、の差を求め、前記複数の測定区間のそれぞれにおける差に所定の単調減少関数を適用した結果を集計した結果から、前記ユーザの操作の正確さを判定する判定部
として機能させることを特徴とするプログラム。
【請求項７】
請求項６に記載のプログラムであって、
前記抽出部は、前記計測された加速度が増加しつつ当該第１閾値の符号を反転した第２閾値に至った時点および減少しつつ当該第２閾値に至った時点をさらに抽出する
ように機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、目標時点にユーザがコントローラを振ることができるか否かにより、ユーザの操作の正確さを競うゲームにおいて、当該操作の正確さを的確に判定するのに好適なゲーム装置、ゲーム制御方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【背景技術】
【０００２】
従来から、画面に表示される楽譜や課題に合わせてフットスイッチを踏んだり、コントローラのボタンを押したりするリズムゲームや旗揚げゲームが提案されている。このようなリズムゲームについては、その技術が以下の文献に開示されている。
【特許文献１】特開２００１−１７８９６５号公報
【０００３】
ここで、[特許文献１]には、音楽に合わせて体全体を利用してリズム感を表現し、順次指示される内容に沿って動作を行うことで、迫力に富みかつリズム感覚を醸し出すダンスゲームを実現するため、ダンスゲーム装置では、リズム設定部で設定されたダンス指示データがダンス指示データメモリから読み出される。そして、表示制御部がダンスガイド用のキャラクタを表示し、モニタ上で音楽に合わせてダンス域での動作指示を行う。このキャラクタの動作によりダンス動作タイミングの指示が行われる。プレイヤーがモニタの表示内容に従ってダンスを行うと、これを検知手段が検出し、ダンス動作監視部が取り込む。ずれ量検出／積算部は、タイミングずれに応じた得点を算出し、次いでリズム設定部が評価を行う。そして評価結果に応じて次のダンス指示データが設定される。
【０００４】
検知手段には、踏み台の前後左右の位置にスイッチが配置され、当該スイッチのオンオフの状態によって、プレイヤーがダンスにおいて、どのようなステップを踏んでいるかが検知される。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
一方で、ダンスにおいては、手の振りも重要な役割を果たす。したがって、手の振りがリズムに合っているか否かによりプレイヤーがうまくダンスできているか否かを判定するゲームを実現したいとの要望は大きい。近年普及が著しい手持ち型のコントローラを利用し、当該コントローラが内蔵している加速度センサの測定値を利用することで、このようなゲームを実現したいとの要望もある。
【０００６】
この際には、たとえば、人が手を振り上げようとする直前に、人は無意識に少しだけ手を下に移動させる等の予備動作に対応する必要がある。さらに、ステップを踏む際に人間の体が受ける加速度の影響も考慮しなければならない。したがって、これらの状況を考慮しつつ、計算負荷を抑制した簡易な判定技術が強く求められている。
【０００７】
本発明は、上記のような課題を解決するもので、目標時点にユーザがコントローラを振ることができるか否かにより、ユーザの操作の正確さを競うゲームにおいて、当該操作の正確さを的確に判定するのに好適なゲーム装置、ゲーム制御方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【０００９】
本発明の第１の観点に係るゲーム装置は、あらかじめ設定された目標時点にユーザがコントローラを動かしたか否かにより、ユーザの操作の正確さを判定し、計測部、抽出部、判定部を備え、以下のように構成する。
【００１０】
すなわち、計測部は、当該コントローラの加速度を計測する。
【００１１】
典型的には、コントローラは、手持ちのものであり、ジャイロや歪ゲージなどを用いた加速度センサが設けられている。したがって、プレイヤーがコントローラを振ると、その加速度を検出することができる。なお、コントローラをブーツ等に固定して、足の振り上げ動作等の加速度を計測することとしても良い。
【００１２】
一方抽出部は、計測された加速度が増加しつつ第１閾値に至った時点および減少しつつ当該第１閾値に至った時点を抽出する。
【００１３】
一般に人間が体の一部を振る場合に、加速度は一定ではなく、次第に増加してから減少する。たとえばコントローラを振り上げる場合を考えると、予備動作を無視すれば、コントローラが基本位置になっているときに、まず上向きの加速度が生じてコントローラに上向きの速度が与えられ、コントローラが上に移動していく。コントローラがある程度上昇すると、コントローラの加速度は減少して負に転じ、これにともなってコントローラの速度も０に近づく。速度０になった時点がコントローラが最も高く振り上げられた時点であり、この後はコントローラの速度は下向きになる。コントローラがある程度下降すると、コントローラの加速度は増加して正に転じ、これにともなってコントローラの速度は０に近づく。速度０になった時点が、元の基本位置になる。
【００１４】
このような過程の中で、目標時点にタイミングを合わせてコントローラを振る場合、一見すると、コントローラが最も高く振り上げられた時点が目標時点と最もタイミングがあっているかのように思えるが、実際には、プレイヤーの体型や動作の癖、コントローラの持ち方、各種測定環境等の影響により、ほとんどの場合には、これは成立しない。また、足でステップを踏みながら手を動かす場合には、足に基づく加速度もコントローラで測定されるため、加速度を積分したとしても、直ちにコントローラの振り上げ位置が取得できるとは限らない。
【００１５】
そこで、加速度のグラフを考えたときに、このグラフの高さが第１閾値を過ぎた瞬間を抽出するのである。人間の動作において加速度が一定であり続けることは事実上ないと考えられるので、増加しつつ第１閾値に至った時点、および、減少しつつ第１閾値に至った時点を抽出する。
【００１６】
さらに、判定部は、抽出された時点のうち、当該目標時点に最も近い時点を選択し、当該目標時点と、当該選択された時点と、の差により、ユーザの操作の正確さを判定する。
【００１７】
すなわち、上記２種類の時点のうち、目標時点に最も近い時点を選択し、選択された時点と目標時点の差が小さければ小さいほど（２つの時点が近ければ近いほど）、正確にプレイしている、と判定する。
【００１８】
プレイヤーは、プレイに慣れるにしたがって、コントローラを操作する際に力の出し方が小さくなっていき、加速度の変化の幅も小さくなっていくことが、発明者の実験で判明している。この場合、抽出部により抽出された２種類の時点の間も、上達につれて次第に短くなることになる。
【００１９】
一方、初心者の場合には、無駄な動きが多いこともあって、加速度が必ずしも上記のような経過を経るとは限らず、加速度がギザギザに何回も変化して、第１閾値を過ぎる瞬間の個数が２個より多くなる場合もままある。
【００２０】
本発明では、所定の閾時間を設け、選択された時点と目標時点との間の時間が当該閾時間より短ければ「成功」、そうでなければ「失敗」として得点を加減する手法が典型的である。さらに、両者の時点の差が小さくなると大きくなるような得点を採用しても良い。
【００２１】
このような判定基準を設けると、上級者が上手に踊る場合にはタイミング判定が厳しくなり、初心者のように動作に無駄が多い場合にはタイミング判定が緩くなることになる。
【００２２】
したがって、本発明によれば、目標時点にユーザがコントローラを振ることができるか否かにより、ユーザの操作の正確さを競うゲームにおいて、当該操作の正確さを的確に判定することができるようになる。
【００２３】
また、本発明のゲーム装置において、抽出部は、計測された加速度が増加しつつ当該第１閾値の符号を反転した第２閾値に至った時点および減少しつつ当該第２閾値に至った時点をさらに抽出するように構成することができる。
【００２４】
上記のように、１回の振り上げ動作で、加速度は、正と負の間を行き来する。また、プレイヤーによっては、タイミングを合わせる際に、振り上げではなく振り下げを採用することも多い。さらに、ダンスゲームにおいては、ある程度振り付けに自由度を持たせる一方で、その動作のタイミングを判定したいこともある。
【００２５】
そこで、第１閾値（A）の符号を反転させた第２閾値（-A）を考え、加速度のグラフが、Aまたは-Aを通過した時点をすべて抽出するのである。
【００２６】
本発明によれば、プレイヤーによる動作にある程度の自由度を持たせた上で、コントローラの振り動作の操作の正確さを判定することができるようになる。
【００２７】
また、本発明のゲーム装置において、計測部は、当該目標時点を含む所定の時間区間の間、定期的にコントローラの加速度を計測し、抽出部は、計測されたコントローラの加速度を補間して、当該閾値に至った時点を抽出するように構成することができる。
【００２８】
[特許文献１]にも開示される通り、ダンスゲームにおいては、目標時点がいつであるか、を、画面などに譜面として表示して、プレイヤーに提示する。したがって、目標時点の前後の一定時間についてのみ、加速度を計測すれば、「目標時点に合わせてコントローラを振る」ことに成功したか否かを判定することが可能である。
【００２９】
本発明によれば、プレイヤーが意識的にコントローラを振る動作以外の動作によって、判定を誤ってしまう可能性を減らすことができる。
【００３０】
本発明のその他の観点に係るゲーム制御方法は、あらかじめ設定された目標時点にユーザがコントローラを動かしたか否かにより、ユーザの操作の正確さを判定するゲーム装置が有する計測部、抽出部、判定部が実行し、計測工程、抽出工程、判定工程を備え、以下のように構成する。
【００３１】
すなわち、計測工程では、計測部が、当該コントローラの加速度を計測する。
【００３２】
一方、抽出工程では、抽出部が、計測された加速度が増加しつつ第１閾値に至った時点および減少しつつ当該第１閾値に至った時点を抽出する。
【００３３】
さらに、判定工程では、判定部が、抽出された時点のうち、当該目標時点に最も近い時点を選択し、当該目標時点と、当該選択された時点と、の差により、ユーザの操作の正確さを判定する。
【００３４】
また、本発明のゲーム制御方法において、抽出工程では、計測された加速度が増加しつつ当該第１閾値の符号を反転した第２閾値に至った時点および減少しつつ当該第２閾値に至った時点をさらに抽出するように構成することができる。
【００３５】
本発明のその他の観点に係るプログラムは、コンピュータを上記のゲーム装置の各部として機能させ、コンピュータに、上記のゲーム制御方法の各工程を実行させるように構成する。
【００３６】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【００３７】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【００３８】
本発明によれば、目標時点にユーザがコントローラを振ることができるか否かにより、ユーザの操作の正確さを競うゲームにおいて、当該操作の正確さを的確に判定するのに好適なゲーム装置、ゲーム制御方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【発明を実施するための最良の形態】
【００３９】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例１】
【００４０】
図１は、プログラムを実行することにより、本実施形態のゲーム装置として機能しうる典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【００４１】
情報処理装置１００は、ＣＰＵ（Central Processing Unit）１０１と、ＲＯＭ  １０２と、ＲＡＭ（Random Access Memory）１０３と、インターフェイス１０４と、コントローラ１０５と、外部メモリ１０６と、画像処理部１０７と、ＤＶＤ−ＲＯＭ（Digital Versatile Disc ROM）ドライブ１０８と、ＮＩＣ（Network Interface Card）１０９と、音声処理部１１０と、マイク１１１と、を備えるように構成することができる。各種の入出力装置は、適宜省略することができる。
【００４２】
ゲーム用のプログラムおよびデータを記憶したＤＶＤ−ＲＯＭをＤＶＤ−ＲＯＭドライブ１０８に装着して、情報処理装置１００の電源を投入することにより、当該プログラムが実行され、本実施形態のゲーム装置が実現される。
【００４３】
また、携帯ゲーム機器においては、携帯可能とするために、ＤＶＤ−ＲＯＭドライブ１０８を利用するのではなく、ＲＯＭカセット用スロットを利用することも可能である。この場合、プログラムが記録されたＲＯＭカセットを挿入して、当該プログラムを実行することで、本実施形態のゲーム装置が実現される。
【００４４】
ＣＰＵ  １０１は、情報処理装置１００全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、ＣＰＵ  １０１は、レジスタ（図示せず）という高速アクセスが可能な記憶域に対してＡＬＵ（Arithmetic Logic Unit）（図示せず）を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、ＣＰＵ  １０１自身が構成されているものや、コプロセッサを備えて実現するものがある。
【００４５】
ＲＯＭ  １０２には、電源投入直後に実行されるＩＰＬ（Initial Program Loader）が記録され、これが実行されることにより、ＤＶＤ−ＲＯＭに記録されたプログラムをＲＡＭ  １０３に読み出してＣＰＵ  １０１による実行が開始される。また、ＲＯＭ  １０２には、情報処理装置１００全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【００４６】
ＲＡＭ  １０３は、データやプログラムを一時的に記憶するためのもので、ＤＶＤ−ＲＯＭから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、ＣＰＵ  １０１は、ＲＡＭ  １０３に変数領域を設け、当該変数に格納された値に対して直接ＡＬＵを作用させて演算を行ったり、ＲＡＭ  １０３に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【００４７】
インターフェイス１０４を介して接続されたコントローラ１０５は、ユーザがゲーム実行の際に行う操作入力を受け付ける。コントローラ１０５の詳細については、後述する。
【００４８】
インターフェイス１０４を介して着脱自在に接続された外部メモリ１０６には、ゲーム等のプレイ状況（過去の成績等）を示すデータ、ゲームの進行状態を示すデータ、ネットワーク対戦の場合のチャット通信のログ（記録）のデータなどが書き換え可能に記憶される。ユーザは、コントローラ１０５を介して指示入力を行うことにより、これらのデータを適宜外部メモリ１０６に記録することができる。
【００４９】
ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。ＣＰＵ  １０１の制御によって、ＤＶＤ−ＲＯＭドライブ１０８は、これに装着されたＤＶＤ−ＲＯＭに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはＲＡＭ  １０３等に一時的に記憶される。
【００５０】
画像処理部１０７は、ＤＶＤ−ＲＯＭから読み出されたデータをＣＰＵ  １０１や画像処理部１０７が備える画像演算プロセッサ（図示せず）によって加工処理した後、これを画像処理部１０７が備えるフレームメモリ（図示せず）に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部１０７に接続されるテレビジョン装置へ出力される。これにより、各種の画像表示が可能となる。
【００５１】
画像演算プロセッサは、２次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【００５２】
また、仮想３次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Ｚバッファ法によりレンダリングして、所定の視点位置から仮想３次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【００５３】
さらに、ＣＰＵ  １０１と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を２次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
【００５４】
ＮＩＣ  １０９は、情報処理装置１００をインターネット等のコンピュータ通信網（図示せず）に接続するためのものであり、ＬＡＮを構成する際に用いられる１０ＢＡＳＥ−Ｔ／１００ＢＡＳＥ−Ｔ規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ＩＳＤＮ（Integrated Services Digital Network）モデム、ＡＤＳＬ（Asymmetric Digital Subscriber Line）モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとＣＰＵ  １０１との仲立ちを行うインターフェース（図示せず）により構成される。
【００５５】
音声処理部１１０は、ＤＶＤ−ＲＯＭから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ（図示せず）から出力させる。また、ＣＰＵ  １０１の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカや、ヘッドホン（図示せず）、イヤフォン（図示せず）から出力させる。
【００５６】
音声処理部１１０では、ＤＶＤ−ＲＯＭに記録された音声データがＭＩＤＩデータである場合には、これが有する音源データを参照して、ＭＩＤＩデータをＰＣＭデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してＰＣＭデータに変換する。ＰＣＭデータは、そのサンプリング周波数に応じたタイミングでＤ／Ａ（Digital/Analog）変換を行って、スピーカに出力することにより、音声出力が可能となる。
【００５７】
さらに、情報処理装置１００には、インターフェイス１０４を介してマイク１１１を接続することができる。この場合、マイク１１１からのアナログ信号に対しては、適当なサンプリング周波数でＡ／Ｄ変換を行い、ＰＣＭ形式のディジタル信号として、音声処理部１１０でのミキシング等の処理ができるようにする。
【００５８】
このほか、情報処理装置１００は、ハードディスク等の大容量外部記憶装置を用いて、ＲＯＭ  １０２、ＲＡＭ  １０３、外部メモリ１０６、ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭ等と同じ機能を果たすように構成してもよい。
【００５９】
また、ユーザからの文字列の編集入力を受け付けるためのキーボードや、各種の位置の指定および選択入力を受け付けるためのマウスなどを接続する形態も採用することができる。また、本実施形態の情報処理装置１００にかえて、汎用のパーソナルコンピュータを利用することもできる。
【００６０】
本実施形態では、現実の空間における加速度、位置や姿勢などの種々のパラメータが測定できるようなコントローラ１０５を採用する。
【００６１】
図２は、現実の空間における位置や姿勢などの種々のパラメータが測定できるようなコントローラ１０５と情報処理装置１００との外観を示す説明図である。以下、本図を参照して説明する。
【００６２】
コントローラ１０５は、把持モジュール２０１と発光モジュール２５１との組合せからなっており、把持モジュール２０１は無線通信によって情報処理装置１００と通信可能に接続されており、発光モジュール２５１は、有線で情報処理装置１００と通信可能に接続されている。情報処理装置１００の処理結果の音声および画像は、テレビジョン装置２９１によって出力表示される。
【００６３】
把持モジュール２０１は、テレビジョン装置２９１のリモートコントローラと類似した外観をしており、その先端には、ＣＣＤカメラ２０２が配置されている。
【００６４】
一方発光モジュール２５１は、テレビジョン装置２９１の上部に固定されている。発光モジュール２５１の両端には、発光ダイオード２５２が配置されており、情報処理装置１００からの電源供給によって発光する。
【００６５】
把持モジュール２０１のＣＣＤカメラ２０２は、この発光モジュール２５１の様子を撮影する。
【００６６】
撮影された画像の情報は、情報処理装置１００に送信され、情報処理装置１００は、当該撮影された画像内において発光ダイオード２５２が撮影された位置に基づいて、発光モジュール２５１に対する把持モジュール２０１の位置を取得する。
【００６７】
このほか、把持モジュール２０１内には、加速度センサ、角加速度センサ、傾きセンサ等が内蔵されており、把持モジュール２０１そのものの加速度、角加速度、速度、角速度、位置、姿勢を測定することが可能となっている。この測定結果も、情報処理装置１００に送信される。
【００６８】
加速度の測定は、ジャイロや歪ゲージなどのセンサを利用して行う。現在は３軸の測定ができるものが安価に提供されているが、必ずしも３軸である必要はない。また、本実施形態においては、コントローラ１０５が振られると想定される方向の加速度を測定するのが典型的であるが、コントローラ１０５が振られる際の遠心力の方向の測定値を採用することとしても良い。
【００６９】
把持モジュール２０１の上面には、十字形キー２０３が配置されており、プレイヤは、十字形キー２０３を押し込み操作することによって、各種の方向指示入力を行うことができる。また、Ａボタン２０４ほか、各種ボタン２０６も上面に配置されており、当該ボタンに対応付けられた指示入力を行うことができる。
【００７０】
一方、Ｂボタン２０５は、把持モジュール２０１の下面に配置されており、把持モジュール２０１の下面に窪みが構成されていることとあいまって、拳銃やマジックハンドにおける引き金を模したものとなっている。典型的には、仮想空間内における拳銃による発砲やマジックハンドによる把持の指示入力は、Ｂボタン２０５を用いて行われる。
【００７１】
また、把持モジュール２０１の上面のインジケータ２０７は、把持モジュール２０１の動作状況や情報処理装置１００との無線通信状況などをプレイヤに提示する。
【００７２】
把持モジュール２０１の上面に用意された電源ボタン２０８は、把持モジュール２０１そのものの動作のオン・オフを行うもので、把持モジュール２０１は内蔵された電池（図示せず。）によって動作する。
【００７３】
このほか、把持モジュール２０１内部には、バイブレータ（図示せず。）が用意されており、情報処理装置１００からの指示に基づいて、振動の有無や強弱を制御することができるようになっている。
【００７４】
以下では、加速度センサが内蔵された把持モジュール２０１を用い、当該把持モジュール２０１を備えるコントローラ１０５からの測定結果をそのまま用いることで、各種の誤差が蓄積しないようにした例を説明する。ただし、上記のような種々の測定手法を採用して、把持モジュール２０１の現実世界における位置や姿勢を測定したり、超音波や赤外線通信、ＧＰＳ（Global Positioning System）等を利用して把持モジュール２０１の現実世界における位置や姿勢を測定して、これらの測定結果から加速度を得る、とした場合であっても、本発明の範囲に含まれる。
【００７５】
また、上記の情報処理装置１００は、いわゆるコンシューマ向けゲーム装置に相当するものであるが、加速度を測定するような機能を有するものであれば、本発明を実現することができる。したがって、加速度センサ付きの携帯電話・携帯ゲーム機器や、マイクに加速度センサが装着されたカラオケ装置、など、種々の計算機上で本発明を実現することが可能である。
【００７６】
なお、本実施形態では、[特許文献１]等に開示される先行技術と同様、画面を目標図形が一定の速度で一定の方向に移動し、目標図形が照準位置に達した時点に合わせてプレイヤーが入力操作を行うと、リズムに合わせて入力ができた、として、成功となり、得点を獲得できるようなゲームを想定する。ユーザは、目標図形が画面に出現すると、入力操作を行う心構えができ、その移動の様子を見ながら入力操作をすることになる。本実施形態では、把持モジュール２０１を振る動作を行うことで、当該入力操作を行うものとする。
【００７７】
図３は、ある目標時点があるプレイヤーに提示されたときに、プレイヤーが把持モジュール２０１を振る様子の一例を時系列順に（ａ）〜（ｇ）で示す説明図であり、
【００７８】
図４は、その際に測定される加速度の変化の様子の一例を表すグラフである。以下、これらの図を参照して説明する。
【００７９】
なお、図３（ａ）〜（ｇ）のそれぞれの時点に相当する時点については、図４のグラフにおいても（ａ）〜（ｇ）の符号を付してある。
【００８０】
これら図に示す例は、把持モジュール２０１を振ると想定される方向（振ったときに遠心力がかかると想定される方向に直交する方向）の加速度を測定した結果であり、横軸は時間経過、縦軸は加速度を表す。
【００８１】
本実施形態では、加速度は一定の時間間隔で離散的に計測されるため、測定グラフは本来飛び飛びの値をとることとなるが、各測定値の表す点を線分で結ぶことにより補間を行っている。
【００８２】
図３（ａ）は、基準位置３０１で基準軸３０２に沿った方向になっている把持モジュール２０１が配置されている様子を示している。
【００８３】
プレイヤーは、目標図形が画面を移動する様子から未来の目標時点Tを推測して、把持モジュール２０１に対する操作を行う。このため、ユーザは、基準位置で構えている把持モジュール２０１を、時刻が目標時点Tに至る以前から振り始める。そこで、測定は、目標時点Tから時間Dだけ以前を開始時点とし、目標時点Tから時間Dだけ以後を終了時点とする。すなわち、測定区間[T-D,T+D]の間、加速度の測定を行う。
【００８４】
以下では、プレイヤーが意図する操作は、把持モジュール２０１の振り上げである、として説明する。なお、振り下げを意図している場合には、以下の説明を逆に考えれば良い。
【００８５】
多くのプレイヤーは、予備動作として、把持モジュール２０１を振りたい方向とは逆方向、すなわち、振り下げ方向に、少しだけ把持モジュール２０１を移動する。
【００８６】
図３（ｂ）は、予備動作によって、把持モジュール２０１が下に微小に振り下げられた様子を示している。
【００８７】
当初、把持モジュール２０１の加速度が負の値をとることになるのはこのためである。
【００８８】
この後、プレイヤーが把持モジュール２０１を意図した方向に振るため、振り上げ方向の加速度が正の値として測定されている。
【００８９】
その後、加速度は減少し始め、値が０になった時点が、把持モジュール２０１の移動速度が最大となった時点である。
【００９０】
図３（ｃ）は、把持モジュール２０１が意図した方向に振り上げられつつある様子を示している。
【００９１】
理論的には、この時点と目標時点Tとが一致するとタイミングが合っている、とすることとなろうが、人間の感性や癖はさまざまであり、このような理論を厳格に適用すると、かえって人間は不自然に感じることがある。そこで、「タイミングが合っている」の判定基準については、各人の癖や感性を、ある程度吸収できるような工夫が必要となる。
【００９２】
さて、この後、加速度は負になって、把持モジュール２０１の移動速度は次第に遅くなり、移動速度が０となると、把持モジュール２０１は一番高く振り上げられたことになる。
【００９３】
図３（ｄ）は、把持モジュール２０１の振り上げ動作が完了した時点を示す。
【００９４】
振り上げが完了すると、把持モジュール２０１は、さらに負の方向に加速されて、移動方向がプレイヤーの意図した方向とは逆向きに移動するようになる。
【００９５】
図３（ｅ）は、把持モジュール２０１を振り下げて、元の基準位置３０１に戻そうとしている途中の時点を示す。
【００９６】
これが続くと、把持モジュール２０１は、元の基準位置３０１に戻るが、多くのプレイヤーでは、元の基準位置３０１を少しだけ行き過ぎる。
【００９７】
図３（ｆ）は、基準位置３０１を行き過ぎた時点を示す。
【００９８】
そして、この後、プレイヤーは、元の基準位置３０１に、把持モジュール２０１の位置を戻す。
【００９９】
図３（ｇ）は、基準位置３０１に戻った時点を示す。
【０１００】
この過程は、ちょうど予備動作と逆の行動になる。
【０１０１】
このように、変化する加速度の様子から、様々なプレイヤーの感性を考慮して、「タイミングが合っている」と判定できる瞬間を設定する必要がある。
【０１０２】
本実施形態では、加速度に対して所定の閾値Aと-Aを設けることとする。本図においても、閾値Aと閾値-Aに相当する横線が点線で描かれている。本実施形態では、この閾値の横線を、加速度のグラフが横切る時点を抽出する。本図では、閾値の横線とグラフとの交点は４つあり、そのそれぞれの時刻はt1，t2，t3，t4である。この中から、目標時点Tとの差の絶対値（e1 = |t1 - T|, e2 = |t2 - T|, e3 = |t3 - T|, e4 = |t4 - T|）、すなわち誤差が最小となる時点を選択する。
【０１０３】
本図に示す例では、t3に対する誤差e3が最小となっている。そこで、本例の場合には、プレイヤーが操作入力をした時点は、t3と判定し、その操作の時間的な誤差は、e3と判定する。
【０１０４】
ゲームとしてどのように得点を与えるか、については、以下のような手法がありうる。
（１）選択された時点の誤差が所定の幅S以下であれば、すなわち、目標時点Tを含む成功区間[T-S,T+S]に、交点の時刻が１つでも含まれていれば、「操作入力成功」として得点を与える。
（２）選択された時点の誤差が０であるときに最大であり、誤差が増加すると急激に減少するような得点表や関数をあらかじめ用意しておき、選択された時点と目標時点Tとの差の絶対値から、この得点表を参照したりこの関数を適用したりして、加算すべき得点を計算する。
【０１０５】
なお、閾値Aは、多数のプレイヤーに対して事前に測定を行って、外乱の影響を受けにくい適切な値を採用するのが典型的である。
【０１０６】
また、習熟したプレイヤーは、把持モジュール２０１を滑らかに動かして、加速度の変化も滑らかにするとともに、把持モジュール２０１を振る力も軽くして、加速度が過度に大きくならないようにプレイするようになる。このようなプレイをした場合には、本図におけるt1，t2は互いに近付き、t3，t4は互いに近付いていく。
【０１０７】
したがって、プレイヤーが習熟するにしたがって、次第に「加速度が閾値に達した時点」と「目標時点」との差によって採点がされるようになる。特に、上記（２）の手法を用いた場合には、初心者プレイヤーでも得点が得られるとともに、上級者プレイヤーでもより正確な操作によって得点を向上させる楽しみが得られ、さまざまな能力のプレイヤーに対応することができる。
【０１０８】
また、上記の説明では、閾値としてAと-Aの２種類を利用しているが、Aのみを利用することとしても良いし、複数の値A，B，...と-A，-B，...を利用することとしても良い。以下では、理解を容易にするため、Aおよび-Aを閾値として採用する場合について説明する。
【０１０９】
図５は、本発明の実施形態に係るゲーム装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【０１１０】
本実施形態に係るゲーム装置４０１は、あらかじめ設定された目標時点にユーザがコントローラ１０５の把持モジュール２０１を動かしたか否かにより、ユーザの操作の正確さを判定するもので、計測部４０２、抽出部４０３、判定部４０４を備える。これらの構成は、プログラムを実行することによって、情報処理装置１００上に実現される。
【０１１１】
ここで、計測部４０２は、当該把持モジュール２０１の加速度を計測するコントローラ１０５であり、上記のように、ジャイロや歪ゲージ等を用いた加速度センサが相当する。
【０１１２】
図６は、本実施形態に係るゲーム装置４０１にて実行されるゲーム処理の制御の流れを示すフローチャートである。本処理は、情報処理装置１００上でプログラムを実行することで実行される。以下、本図を参照して説明する。
【０１１３】
まず、ゲーム用のプログラムが開始されると、ＣＰＵ  １００は、ＲＡＭ  １０３を初期化して、再生する楽曲データと、当該楽曲に合わせて把持モジュール２０１をユーザが振るべき目標時点T[1]，T[2]，…，T[N]、閾値A、許容幅S、抽出時間幅D等の定数をを読み出す（ステップＳ５００）。なお、S < Dとするのが、一般的な設定である。また、目標時点T[1]，T[2]，…，T[N]は、楽曲の再生を開始してからの経過時間によって表現されるのが一般的であるが、楽曲データの中に埋め込むこととしても良い。
【０１１４】
そして、加速度の測定結果を一時的に保存する変数aを０に、それぞれの目標時点に対する誤差を保存する変数w[1]，w[2]，…，w[N]をDに、それぞれ初期化する（ステップＳ５０２）。なお、本図では、「1，2，…，N」のそれぞれについて処理を行うことを、「*」と表記している。また、代入を左向き矢印により表記する。
【０１１５】
ついで、ＣＰＵ  １００は、音声処理部１１０に指示を出して、読み出した楽曲データの再生を開始させるとともに（ステップＳ５０３）、この時点からの経過時間t（現在時刻に対応するものである。）の計測を開始する（ステップＳ５０４）。
【０１１６】
そして、目標時点T[1]，T[2]，…，T[N]のそれぞれについて、いずれかの目標時点T[i]に対応する目標画像を画面に表示すべきか否かを判定する（ステップＳ５０５）。
【０１１７】
高さHの画面内を目標画像が上から下へ速度vで移動し、画面の上端からpだけ離れた場所にある照準位置に達したときが目標時点T[i]に相当するものとすると、経過時間tにおける目標画像の位置は、
v(t-T[i]) + p
と表現できる。
【０１１８】
したがって、目標時点T[i]に対する目標画像を画面に表示する時間帯については、
0≦v(t-T[i]) + p≦H；
が成立する。すなわち、経過時間tが、
T[i]-p/v ≦ t ≦ T[i]+H/v
を満たす間、上記の場所に目標画像を表示するのである。
【０１１９】
なお、本実施形態においては、理解を容易にするため、T[1]，T[2]，…，T[N]に対応する目標画像が画面内に表示される個数は、多くとも１個であるものとしている。すなわち、T[1]，T[2]，…，T[N]の間隔は、少なくともH/vである。しかしながら、本発明の原理にしたがって、これらの間隔を適宜変更することも可能である。
【０１２０】
目標画像を画面内に表示しない場合（ステップＳ５０５；Ｎｏ）、ＣＰＵ  １０１は、ゲームの状況に応じた画像をＲＡＭ  １０３内に生成して（ステップＳ５３１）、垂直同期割込が生じるまで待機し（ステップＳ５３２）、これが生じたら生成した画像をフレームバッファに転送して、テレビジョン装置２９１に表示させ（ステップＳ５３３）、その後にステップＳ５２１に進む。
【０１２１】
一方、目標画像を画面内に表示すべきである場合（ステップＳ５０５；Ｙｅｓ）、ＣＰＵ  １０１は、目標画像を表示すべき場所に配置した画像を、ＲＡＭ  １０３内に生成して（ステップＳ５０６）、垂直同期割込が生じるまで待機し（ステップＳ５０７）、これが生じたら生成した画像をフレームバッファに転送して、テレビジョン装置２９１に表示させる（ステップＳ５０８）。なお、待機中には、コルーチン的に他の処理を実行させることができる。
【０１２２】
そして、経過時間tが、加速度を測定すべき測定区間に含まれるか、すなわち、
T[i]-D ≦ t ≦ T[i]+D
であるか否かを判定する（ステップＳ５０９）。そうでなければ（ステップＳ５０９；Ｎｏ）、変数aを０に設定して（ステップＳ５１０）、ステップＳ５２１に進む。
【０１２３】
このように、加速度を測定すべき時間帯を設けるのは、プレイヤーが意識的に把持モジュール２０１を振る動作以外の動作によって、判定を誤ってしまう可能性を減らすためである。
【０１２４】
一方、加速度を測定する時間帯であれば（ステップＳ５０９；Ｙｅｓ）、加速度センサにより、現在の把持モジュール２０１の加速度bを計測する（ステップＳ５１１）。
【０１２５】
したがって、把持モジュール２０１が備える加速度センサは、ＣＰＵ  １０１の制御の下、計測部４０２として機能する。
【０１２６】
そして、変数aと加速度bとが、閾値Aおよび-Aを挟む位置関係にあるか否か、すなわち、
a<A<b；または、
b<A<a；または、
a<-A<b；または、
b<-A<a
が成立するか否かを判定する（ステップＳ５１２）。これが成立する場合（ステップＳ５１２；Ｙｅｓ）、ＣＰＵ  １０１は、経過時間tを、加速度が増加しつつ閾値に至った時点、もしくは、加速度が減少しつつ閾値に至った時点として抽出する（ステップＳ５１３）。なお、経過時間tをそのまま抽出時点とするのではなく、a，A，bの間隔、もしくはa，-A，bの間隔に応じた内分点を、抽出時点としても良い。
【０１２７】
したがって、ＣＰＵ  １００は、ＲＡＭ  １０３等と共働して、抽出部４０３として機能する。
【０１２８】
そして、抽出時点tと、目標時点T[i]との差の大きさ、すなわち誤差e = |t-T[i]|について、以下の関係
e < w[i]
が成立するか否かを判定する（ステップＳ５１４）。
【０１２９】
これが成立する場合（ステップＳ５１４；Ｙｅｓ）、抽出時点tと目標時点T[i]との差の大きさeを、より小さい誤差として、変数w[i]に格納する（ステップＳ５１５）。
【０１３０】
そして、変数aに加速度bを最新の値として格納し（ステップＳ５１６）、ステップＳ５２１に進む。
【０１３１】
変数a、加速度bが閾値A，-Aを挟まない場合（ステップＳ５１２；Ｎｏ）や、抽出時点の誤差が最小でない場合（ステップＳ５１４；Ｎｏ）も、ステップＳ５１６に進んで変数aを設定し、ステップＳ５２１に進む。
【０１３２】
そして、楽曲再生が完了したか否かを判定し（ステップＳ５２１）、終了していなければ（ステップＳ５２１；Ｎｏ）、ステップＳ５０５に戻る。
【０１３３】
終了していれば（ステップＳ５２１；Ｙｅｓ）、ＲＡＭ  １０３に保存された変数
w[1]，w[2]，…，w[N]
の値に基づいて、プレイヤーの得点を計算する（ステップＳ５２２）。
【０１３４】
スコアの計算には、以下のような手法が考えられる。
（１）w[i]<Sであれば得点１を与え、そうでなければ得点０を与える手法。N個の目標時点のうち、何個がタイミング良く操作できたか、を数えることができる。
（２）単調減少する関数f(x)により、i番目の変数w[i]に対する得点をf(w[i])とする手法。関数f(x)には、通常の解析的な関数を利用しても良いし、あらかじめxの範囲と当該範囲でのf(x)の値を対応付ける表を用意しておき、この表を参照することとしても良い。
【０１３５】
したがって、ＣＰＵ  １０１は、ＲＡＭ  １０３等と共働して、判定部４０４として機能する。
【０１３６】
そして、計算されたスコアを画面に表示して（ステップＳ５２３）、本処理を終了する。
【０１３７】
なお、上記の制御の流れにおいては、スコアの計算をまとめて最後に行ったが、プレイの途中で適宜スコア計算を行って、リアルタイムでプレイヤーに得点を提示することとしても良い。
【０１３８】
また、上記の説明では、把持モジュール２０１の回転に沿った方向の加速度の正負を振り上げ方向を正、振り下げ方向を負としていたが、この方向は任意に定めることができる。
【０１３９】
また、把持モジュール２０１の遠心力方向の加速度を測定することとしても良い。この場合には、把持モジュール２０１の回転速度のほぼ２乗に比例する値が加速度として測定される。すなわち、
（１）基準位置から予備動作までの間（図３（ａ）〜（ｂ））に加速度が０から増加して微小な正の値mになって０に戻り、
（２）予備動作から振り上げ完了までの間（図３（ｂ）〜（ｄ））の間に、加速度が０から増加してかなり大きな値Mになって０に戻り、
（３）振り上げ完了から行き過ぎるまでの間（図３（ｄ）〜（ｆ））の間に、加速度が０から増加してある程度大きな値Nになって０に戻り、
（４）行き過ぎから基準位置に戻るまでの間（図３（ｆ）〜（ｇ））に加速度が０から増加して微小な正の値nになって０に戻る。
【０１４０】
したがって、この場合には、第１閾値としては、典型的なプレイヤーについてのMとNの間の数値を採用すれば良い。さらに、第２閾値を利用する場合には、典型的なプレイヤーについてのNとm,nの間の数値を採用する。
【産業上の利用可能性】
【０１４１】
以上説明したように、本発明によれば、目標時点にユーザがコントローラを振ることができるか否かにより、ユーザの操作の正確さを競うゲームにおいて、当該操作の正確さを的確に判定するのに好適なゲーム装置、ゲーム制御方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【図面の簡単な説明】
【０１４２】
【図１】典型的な情報処理装置の概要構成を示す模式図である。
【図２】コントローラと情報処理装置との外観を示す説明図である。
【図３】コントローラの把持モジュールをプレイヤーが振る様子を時間経過の順に示す説明図であり、（ａ）は、把持モジュールが基準位置にある時点、（ｂ）は、予備動作が完了した時点、（ｃ）は、把持モジュールを振り上げ中の時点、（ｄ）は、把持モジュールの振り上げが完了した時点、（ｅ）は、把持モジュールを振り下げ中の時点、（ｆ）は、把持モジュールの振り下げが完了して基準位置を行き過ぎた時点、（ｇ）は、把持モジュールが基準位置に戻った時点の様子をそれぞれ示す。
【図４】測定される加速度の変化の様子の一例を表すグラフである。
【図５】本発明の実施形態に係るゲーム装置の概要構成を示す模式図である。
【図６】本実施形態に係るゲーム装置にて実行されるゲーム処理の制御の流れを示すフローチャートである。
【符号の説明】
【０１４３】
１００  情報処理装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  インターフェイス
１０５  コントローラ
１０６  外部メモリ
１０７  画像処理部
１０８  ＤＶＤ−ＲＯＭドライブ
１０９  ＮＩＣ
１１０  音声処理部
１１１  マイク
２０１  把持モジュール
２０２  ＣＣＤカメラ
２０３  十字形キー
２０４  Ａボタン
２０５  Ｂボタン
２０６  各種ボタン
２０７  インジケータ
２０８  電源ボタン
２５１  発光モジュール
２５２  発光ダイオード
２９１  テレビジョン装置
３０１  基準位置
３０２  基準軸
４０１  ゲーム装置
４０２  計測部
４０３  抽出部
４０４  判定部
【図１】
0004410284.tif 000002
【図２】
0004410284.tif 000003
【図３】
0004410284.tif 000004
【図４】
0004410284.tif 000005
【図５】
0004410284.tif 000006
【図６】
0004410284.tif 000007