説明

ゲーム装置、ゲーム制御方法、ならびに、プログラム

【課題】目標時点にユーザがコントローラを振ることができるか否かにより、ユーザの操作の正確さを競うゲームにおいて、当該操作の正確さを的確に判定するゲーム装置等を提供する。
【解決手段】ゲーム装置401において、計測部402は、コントローラの加速度を計測し、抽出部403は、計測された加速度が増加しつついぇ閾値に至った時点および減少しつつ閾値に至った時点を抽出し、判定部404は、抽出された時点のうち、当該目標時点に最も近い時点を選択し、当該目標時点と、当該選択された時点と、の差により、ユーザの操作の正確さを判定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、目標時点にユーザがコントローラを振ることができるか否かにより、ユーザの操作の正確さを競うゲームにおいて、当該操作の正確さを的確に判定するのに好適なゲーム装置、ゲーム制御方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【背景技術】
【0002】
従来から、画面に表示される楽譜や課題に合わせてフットスイッチを踏んだり、コントローラのボタンを押したりするリズムゲームや旗揚げゲームが提案されている。このようなリズムゲームについては、その技術が以下の文献に開示されている。
【特許文献1】特開2001−178965号公報
【0003】
ここで、[特許文献1]には、音楽に合わせて体全体を利用してリズム感を表現し、順次指示される内容に沿って動作を行うことで、迫力に富みかつリズム感覚を醸し出すダンスゲームを実現するため、ダンスゲーム装置では、リズム設定部で設定されたダンス指示データがダンス指示データメモリから読み出される。そして、表示制御部がダンスガイド用のキャラクタを表示し、モニタ上で音楽に合わせてダンス域での動作指示を行う。このキャラクタの動作によりダンス動作タイミングの指示が行われる。プレイヤーがモニタの表示内容に従ってダンスを行うと、これを検知手段が検出し、ダンス動作監視部が取り込む。ずれ量検出/積算部は、タイミングずれに応じた得点を算出し、次いでリズム設定部が評価を行う。そして評価結果に応じて次のダンス指示データが設定される。
【0004】
検知手段には、踏み台の前後左右の位置にスイッチが配置され、当該スイッチのオンオフの状態によって、プレイヤーがダンスにおいて、どのようなステップを踏んでいるかが検知される。
【発明の開示】
【発明が解決しようとする課題】
【0005】
一方で、ダンスにおいては、手の振りも重要な役割を果たす。したがって、手の振りがリズムに合っているか否かによりプレイヤーがうまくダンスできているか否かを判定するゲームを実現したいとの要望は大きい。近年普及が著しい手持ち型のコントローラを利用し、当該コントローラが内蔵している加速度センサの測定値を利用することで、このようなゲームを実現したいとの要望もある。
【0006】
この際には、たとえば、人が手を振り上げようとする直前に、人は無意識に少しだけ手を下に移動させる等の予備動作に対応する必要がある。さらに、ステップを踏む際に人間の体が受ける加速度の影響も考慮しなければならない。したがって、これらの状況を考慮しつつ、計算負荷を抑制した簡易な判定技術が強く求められている。
【0007】
本発明は、上記のような課題を解決するもので、目標時点にユーザがコントローラを振ることができるか否かにより、ユーザの操作の正確さを競うゲームにおいて、当該操作の正確さを的確に判定するのに好適なゲーム装置、ゲーム制御方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【0009】
本発明の第1の観点に係るゲーム装置は、あらかじめ設定された目標時点にユーザがコントローラを動かしたか否かにより、ユーザの操作の正確さを判定し、計測部、抽出部、判定部を備え、以下のように構成する。
【0010】
すなわち、計測部は、当該コントローラの加速度を計測する。
【0011】
典型的には、コントローラは、手持ちのものであり、ジャイロや歪ゲージなどを用いた加速度センサが設けられている。したがって、プレイヤーがコントローラを振ると、その加速度を検出することができる。なお、コントローラをブーツ等に固定して、足の振り上げ動作等の加速度を計測することとしても良い。
【0012】
一方抽出部は、計測された加速度が増加しつつ第1閾値に至った時点および減少しつつ当該第1閾値に至った時点を抽出する。
【0013】
一般に人間が体の一部を振る場合に、加速度は一定ではなく、次第に増加してから減少する。たとえばコントローラを振り上げる場合を考えると、予備動作を無視すれば、コントローラが基本位置になっているときに、まず上向きの加速度が生じてコントローラに上向きの速度が与えられ、コントローラが上に移動していく。コントローラがある程度上昇すると、コントローラの加速度は減少して負に転じ、これにともなってコントローラの速度も0に近づく。速度0になった時点がコントローラが最も高く振り上げられた時点であり、この後はコントローラの速度は下向きになる。コントローラがある程度下降すると、コントローラの加速度は増加して正に転じ、これにともなってコントローラの速度は0に近づく。速度0になった時点が、元の基本位置になる。
【0014】
このような過程の中で、目標時点にタイミングを合わせてコントローラを振る場合、一見すると、コントローラが最も高く振り上げられた時点が目標時点と最もタイミングがあっているかのように思えるが、実際には、プレイヤーの体型や動作の癖、コントローラの持ち方、各種測定環境等の影響により、ほとんどの場合には、これは成立しない。また、足でステップを踏みながら手を動かす場合には、足に基づく加速度もコントローラで測定されるため、加速度を積分したとしても、直ちにコントローラの振り上げ位置が取得できるとは限らない。
【0015】
そこで、加速度のグラフを考えたときに、このグラフの高さが第1閾値を過ぎた瞬間を抽出するのである。人間の動作において加速度が一定であり続けることは事実上ないと考えられるので、増加しつつ第1閾値に至った時点、および、減少しつつ第1閾値に至った時点を抽出する。
【0016】
さらに、判定部は、抽出された時点のうち、当該目標時点に最も近い時点を選択し、当該目標時点と、当該選択された時点と、の差により、ユーザの操作の正確さを判定する。
【0017】
すなわち、上記2種類の時点のうち、目標時点に最も近い時点を選択し、選択された時点と目標時点の差が小さければ小さいほど(2つの時点が近ければ近いほど)、正確にプレイしている、と判定する。
【0018】
プレイヤーは、プレイに慣れるにしたがって、コントローラを操作する際に力の出し方が小さくなっていき、加速度の変化の幅も小さくなっていくことが、発明者の実験で判明している。この場合、抽出部により抽出された2種類の時点の間も、上達につれて次第に短くなることになる。
【0019】
一方、初心者の場合には、無駄な動きが多いこともあって、加速度が必ずしも上記のような経過を経るとは限らず、加速度がギザギザに何回も変化して、第1閾値を過ぎる瞬間の個数が2個より多くなる場合もままある。
【0020】
本発明では、所定の閾時間を設け、選択された時点と目標時点との間の時間が当該閾時間より短ければ「成功」、そうでなければ「失敗」として得点を加減する手法が典型的である。さらに、両者の時点の差が小さくなると大きくなるような得点を採用しても良い。
【0021】
このような判定基準を設けると、上級者が上手に踊る場合にはタイミング判定が厳しくなり、初心者のように動作に無駄が多い場合にはタイミング判定が緩くなることになる。
【0022】
したがって、本発明によれば、目標時点にユーザがコントローラを振ることができるか否かにより、ユーザの操作の正確さを競うゲームにおいて、当該操作の正確さを的確に判定することができるようになる。
【0023】
また、本発明のゲーム装置において、抽出部は、計測された加速度が増加しつつ当該第1閾値の符号を反転した第2閾値に至った時点および減少しつつ当該第2閾値に至った時点をさらに抽出するように構成することができる。
【0024】
上記のように、1回の振り上げ動作で、加速度は、正と負の間を行き来する。また、プレイヤーによっては、タイミングを合わせる際に、振り上げではなく振り下げを採用することも多い。さらに、ダンスゲームにおいては、ある程度振り付けに自由度を持たせる一方で、その動作のタイミングを判定したいこともある。
【0025】
そこで、第1閾値(A)の符号を反転させた第2閾値(-A)を考え、加速度のグラフが、Aまたは-Aを通過した時点をすべて抽出するのである。
【0026】
本発明によれば、プレイヤーによる動作にある程度の自由度を持たせた上で、コントローラの振り動作の操作の正確さを判定することができるようになる。
【0027】
また、本発明のゲーム装置において、計測部は、当該目標時点を含む所定の時間区間の間、定期的にコントローラの加速度を計測し、抽出部は、計測されたコントローラの加速度を補間して、当該閾値に至った時点を抽出するように構成することができる。
【0028】
[特許文献1]にも開示される通り、ダンスゲームにおいては、目標時点がいつであるか、を、画面などに譜面として表示して、プレイヤーに提示する。したがって、目標時点の前後の一定時間についてのみ、加速度を計測すれば、「目標時点に合わせてコントローラを振る」ことに成功したか否かを判定することが可能である。
【0029】
本発明によれば、プレイヤーが意識的にコントローラを振る動作以外の動作によって、判定を誤ってしまう可能性を減らすことができる。
【0030】
本発明のその他の観点に係るゲーム制御方法は、あらかじめ設定された目標時点にユーザがコントローラを動かしたか否かにより、ユーザの操作の正確さを判定するゲーム装置が有する計測部、抽出部、判定部が実行し、計測工程、抽出工程、判定工程を備え、以下のように構成する。
【0031】
すなわち、計測工程では、計測部が、当該コントローラの加速度を計測する。
【0032】
一方、抽出工程では、抽出部が、計測された加速度が増加しつつ第1閾値に至った時点および減少しつつ当該第1閾値に至った時点を抽出する。
【0033】
さらに、判定工程では、判定部が、抽出された時点のうち、当該目標時点に最も近い時点を選択し、当該目標時点と、当該選択された時点と、の差により、ユーザの操作の正確さを判定する。
【0034】
また、本発明のゲーム制御方法において、抽出工程では、計測された加速度が増加しつつ当該第1閾値の符号を反転した第2閾値に至った時点および減少しつつ当該第2閾値に至った時点をさらに抽出するように構成することができる。
【0035】
本発明のその他の観点に係るプログラムは、コンピュータを上記のゲーム装置の各部として機能させ、コンピュータに、上記のゲーム制御方法の各工程を実行させるように構成する。
【0036】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【0037】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【0038】
本発明によれば、目標時点にユーザがコントローラを振ることができるか否かにより、ユーザの操作の正確さを競うゲームにおいて、当該操作の正確さを的確に判定するのに好適なゲーム装置、ゲーム制御方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【発明を実施するための最良の形態】
【0039】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例1】
【0040】
図1は、プログラムを実行することにより、本実施形態のゲーム装置として機能しうる典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【0041】
情報処理装置100は、CPU(Central Processing Unit)101と、ROM 102と、RAM(Random Access Memory)103と、インターフェイス104と、コントローラ105と、外部メモリ106と、画像処理部107と、DVD−ROM(Digital Versatile Disc ROM)ドライブ108と、NIC(Network Interface Card)109と、音声処理部110と、マイク111と、を備えるように構成することができる。各種の入出力装置は、適宜省略することができる。
【0042】
ゲーム用のプログラムおよびデータを記憶したDVD−ROMをDVD−ROMドライブ108に装着して、情報処理装置100の電源を投入することにより、当該プログラムが実行され、本実施形態のゲーム装置が実現される。
【0043】
また、携帯ゲーム機器においては、携帯可能とするために、DVD−ROMドライブ108を利用するのではなく、ROMカセット用スロットを利用することも可能である。この場合、プログラムが記録されたROMカセットを挿入して、当該プログラムを実行することで、本実施形態のゲーム装置が実現される。
【0044】
CPU 101は、情報処理装置100全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、CPU 101は、レジスタ(図示せず)という高速アクセスが可能な記憶域に対してALU(Arithmetic Logic Unit)(図示せず)を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、CPU 101自身が構成されているものや、コプロセッサを備えて実現するものがある。
【0045】
ROM 102には、電源投入直後に実行されるIPL(Initial Program Loader)が記録され、これが実行されることにより、DVD−ROMに記録されたプログラムをRAM 103に読み出してCPU 101による実行が開始される。また、ROM 102には、情報処理装置100全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【0046】
RAM 103は、データやプログラムを一時的に記憶するためのもので、DVD−ROMから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、CPU 101は、RAM 103に変数領域を設け、当該変数に格納された値に対して直接ALUを作用させて演算を行ったり、RAM 103に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【0047】
インターフェイス104を介して接続されたコントローラ105は、ユーザがゲーム実行の際に行う操作入力を受け付ける。コントローラ105の詳細については、後述する。
【0048】
インターフェイス104を介して着脱自在に接続された外部メモリ106には、ゲーム等のプレイ状況(過去の成績等)を示すデータ、ゲームの進行状態を示すデータ、ネットワーク対戦の場合のチャット通信のログ(記録)のデータなどが書き換え可能に記憶される。ユーザは、コントローラ105を介して指示入力を行うことにより、これらのデータを適宜外部メモリ106に記録することができる。
【0049】
DVD−ROMドライブ108に装着されるDVD−ROMには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。CPU 101の制御によって、DVD−ROMドライブ108は、これに装着されたDVD−ROMに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはRAM 103等に一時的に記憶される。
【0050】
画像処理部107は、DVD−ROMから読み出されたデータをCPU 101や画像処理部107が備える画像演算プロセッサ(図示せず)によって加工処理した後、これを画像処理部107が備えるフレームメモリ(図示せず)に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部107に接続されるテレビジョン装置へ出力される。これにより、各種の画像表示が可能となる。
【0051】
画像演算プロセッサは、2次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【0052】
また、仮想3次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Zバッファ法によりレンダリングして、所定の視点位置から仮想3次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【0053】
さらに、CPU 101と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
【0054】
NIC 109は、情報処理装置100をインターネット等のコンピュータ通信網(図示せず)に接続するためのものであり、LANを構成する際に用いられる10BASE−T/100BASE−T規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integrated Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとCPU 101との仲立ちを行うインターフェース(図示せず)により構成される。
【0055】
音声処理部110は、DVD−ROMから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ(図示せず)から出力させる。また、CPU 101の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカや、ヘッドホン(図示せず)、イヤフォン(図示せず)から出力させる。
【0056】
音声処理部110では、DVD−ROMに記録された音声データがMIDIデータである場合には、これが有する音源データを参照して、MIDIデータをPCMデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してPCMデータに変換する。PCMデータは、そのサンプリング周波数に応じたタイミングでD/A(Digital/Analog)変換を行って、スピーカに出力することにより、音声出力が可能となる。
【0057】
さらに、情報処理装置100には、インターフェイス104を介してマイク111を接続することができる。この場合、マイク111からのアナログ信号に対しては、適当なサンプリング周波数でA/D変換を行い、PCM形式のディジタル信号として、音声処理部110でのミキシング等の処理ができるようにする。
【0058】
このほか、情報処理装置100は、ハードディスク等の大容量外部記憶装置を用いて、ROM 102、RAM 103、外部メモリ106、DVD−ROMドライブ108に装着されるDVD−ROM等と同じ機能を果たすように構成してもよい。
【0059】
また、ユーザからの文字列の編集入力を受け付けるためのキーボードや、各種の位置の指定および選択入力を受け付けるためのマウスなどを接続する形態も採用することができる。また、本実施形態の情報処理装置100にかえて、汎用のパーソナルコンピュータを利用することもできる。
【0060】
本実施形態では、現実の空間における加速度、位置や姿勢などの種々のパラメータが測定できるようなコントローラ105を採用する。
【0061】
図2は、現実の空間における位置や姿勢などの種々のパラメータが測定できるようなコントローラ105と情報処理装置100との外観を示す説明図である。以下、本図を参照して説明する。
【0062】
コントローラ105は、把持モジュール201と発光モジュール251との組合せからなっており、把持モジュール201は無線通信によって情報処理装置100と通信可能に接続されており、発光モジュール251は、有線で情報処理装置100と通信可能に接続されている。情報処理装置100の処理結果の音声および画像は、テレビジョン装置291によって出力表示される。
【0063】
把持モジュール201は、テレビジョン装置291のリモートコントローラと類似した外観をしており、その先端には、CCDカメラ202が配置されている。
【0064】
一方発光モジュール251は、テレビジョン装置291の上部に固定されている。発光モジュール251の両端には、発光ダイオード252が配置されており、情報処理装置100からの電源供給によって発光する。
【0065】
把持モジュール201のCCDカメラ202は、この発光モジュール251の様子を撮影する。
【0066】
撮影された画像の情報は、情報処理装置100に送信され、情報処理装置100は、当該撮影された画像内において発光ダイオード252が撮影された位置に基づいて、発光モジュール251に対する把持モジュール201の位置を取得する。
【0067】
このほか、把持モジュール201内には、加速度センサ、角加速度センサ、傾きセンサ等が内蔵されており、把持モジュール201そのものの加速度、角加速度、速度、角速度、位置、姿勢を測定することが可能となっている。この測定結果も、情報処理装置100に送信される。
【0068】
加速度の測定は、ジャイロや歪ゲージなどのセンサを利用して行う。現在は3軸の測定ができるものが安価に提供されているが、必ずしも3軸である必要はない。また、本実施形態においては、コントローラ105が振られると想定される方向の加速度を測定するのが典型的であるが、コントローラ105が振られる際の遠心力の方向の測定値を採用することとしても良い。
【0069】
把持モジュール201の上面には、十字形キー203が配置されており、プレイヤは、十字形キー203を押し込み操作することによって、各種の方向指示入力を行うことができる。また、Aボタン204ほか、各種ボタン206も上面に配置されており、当該ボタンに対応付けられた指示入力を行うことができる。
【0070】
一方、Bボタン205は、把持モジュール201の下面に配置されており、把持モジュール201の下面に窪みが構成されていることとあいまって、拳銃やマジックハンドにおける引き金を模したものとなっている。典型的には、仮想空間内における拳銃による発砲やマジックハンドによる把持の指示入力は、Bボタン205を用いて行われる。
【0071】
また、把持モジュール201の上面のインジケータ207は、把持モジュール201の動作状況や情報処理装置100との無線通信状況などをプレイヤに提示する。
【0072】
把持モジュール201の上面に用意された電源ボタン208は、把持モジュール201そのものの動作のオン・オフを行うもので、把持モジュール201は内蔵された電池(図示せず。)によって動作する。
【0073】
このほか、把持モジュール201内部には、バイブレータ(図示せず。)が用意されており、情報処理装置100からの指示に基づいて、振動の有無や強弱を制御することができるようになっている。
【0074】
以下では、加速度センサが内蔵された把持モジュール201を用い、当該把持モジュール201を備えるコントローラ105からの測定結果をそのまま用いることで、各種の誤差が蓄積しないようにした例を説明する。ただし、上記のような種々の測定手法を採用して、把持モジュール201の現実世界における位置や姿勢を測定したり、超音波や赤外線通信、GPS(Global Positioning System)等を利用して把持モジュール201の現実世界における位置や姿勢を測定して、これらの測定結果から加速度を得る、とした場合であっても、本発明の範囲に含まれる。
【0075】
また、上記の情報処理装置100は、いわゆるコンシューマ向けゲーム装置に相当するものであるが、加速度を測定するような機能を有するものであれば、本発明を実現することができる。したがって、加速度センサ付きの携帯電話・携帯ゲーム機器や、マイクに加速度センサが装着されたカラオケ装置、など、種々の計算機上で本発明を実現することが可能である。
【0076】
なお、本実施形態では、[特許文献1]等に開示される先行技術と同様、画面を目標図形が一定の速度で一定の方向に移動し、目標図形が照準位置に達した時点に合わせてプレイヤーが入力操作を行うと、リズムに合わせて入力ができた、として、成功となり、得点を獲得できるようなゲームを想定する。ユーザは、目標図形が画面に出現すると、入力操作を行う心構えができ、その移動の様子を見ながら入力操作をすることになる。本実施形態では、把持モジュール201を振る動作を行うことで、当該入力操作を行うものとする。
【0077】
図3は、ある目標時点があるプレイヤーに提示されたときに、プレイヤーが把持モジュール201を振る様子の一例を時系列順に(a)〜(g)で示す説明図であり、
【0078】
図4は、その際に測定される加速度の変化の様子の一例を表すグラフである。以下、これらの図を参照して説明する。
【0079】
なお、図3(a)〜(g)のそれぞれの時点に相当する時点については、図4のグラフにおいても(a)〜(g)の符号を付してある。
【0080】
これら図に示す例は、把持モジュール201を振ると想定される方向(振ったときに遠心力がかかると想定される方向に直交する方向)の加速度を測定した結果であり、横軸は時間経過、縦軸は加速度を表す。
【0081】
本実施形態では、加速度は一定の時間間隔で離散的に計測されるため、測定グラフは本来飛び飛びの値をとることとなるが、各測定値の表す点を線分で結ぶことにより補間を行っている。
【0082】
図3(a)は、基準位置301で基準軸302に沿った方向になっている把持モジュール201が配置されている様子を示している。
【0083】
プレイヤーは、目標図形が画面を移動する様子から未来の目標時点Tを推測して、把持モジュール201に対する操作を行う。このため、ユーザは、基準位置で構えている把持モジュール201を、時刻が目標時点Tに至る以前から振り始める。そこで、測定は、目標時点Tから時間Dだけ以前を開始時点とし、目標時点Tから時間Dだけ以後を終了時点とする。すなわち、測定区間[T-D,T+D]の間、加速度の測定を行う。
【0084】
以下では、プレイヤーが意図する操作は、把持モジュール201の振り上げである、として説明する。なお、振り下げを意図している場合には、以下の説明を逆に考えれば良い。
【0085】
多くのプレイヤーは、予備動作として、把持モジュール201を振りたい方向とは逆方向、すなわち、振り下げ方向に、少しだけ把持モジュール201を移動する。
【0086】
図3(b)は、予備動作によって、把持モジュール201が下に微小に振り下げられた様子を示している。
【0087】
当初、把持モジュール201の加速度が負の値をとることになるのはこのためである。
【0088】
この後、プレイヤーが把持モジュール201を意図した方向に振るため、振り上げ方向の加速度が正の値として測定されている。
【0089】
その後、加速度は減少し始め、値が0になった時点が、把持モジュール201の移動速度が最大となった時点である。
【0090】
図3(c)は、把持モジュール201が意図した方向に振り上げられつつある様子を示している。
【0091】
理論的には、この時点と目標時点Tとが一致するとタイミングが合っている、とすることとなろうが、人間の感性や癖はさまざまであり、このような理論を厳格に適用すると、かえって人間は不自然に感じることがある。そこで、「タイミングが合っている」の判定基準については、各人の癖や感性を、ある程度吸収できるような工夫が必要となる。
【0092】
さて、この後、加速度は負になって、把持モジュール201の移動速度は次第に遅くなり、移動速度が0となると、把持モジュール201は一番高く振り上げられたことになる。
【0093】
図3(d)は、把持モジュール201の振り上げ動作が完了した時点を示す。
【0094】
振り上げが完了すると、把持モジュール201は、さらに負の方向に加速されて、移動方向がプレイヤーの意図した方向とは逆向きに移動するようになる。
【0095】
図3(e)は、把持モジュール201を振り下げて、元の基準位置301に戻そうとしている途中の時点を示す。
【0096】
これが続くと、把持モジュール201は、元の基準位置301に戻るが、多くのプレイヤーでは、元の基準位置301を少しだけ行き過ぎる。
【0097】
図3(f)は、基準位置301を行き過ぎた時点を示す。
【0098】
そして、この後、プレイヤーは、元の基準位置301に、把持モジュール201の位置を戻す。
【0099】
図3(g)は、基準位置301に戻った時点を示す。
【0100】
この過程は、ちょうど予備動作と逆の行動になる。
【0101】
このように、変化する加速度の様子から、様々なプレイヤーの感性を考慮して、「タイミングが合っている」と判定できる瞬間を設定する必要がある。
【0102】
本実施形態では、加速度に対して所定の閾値Aと-Aを設けることとする。本図においても、閾値Aと閾値-Aに相当する横線が点線で描かれている。本実施形態では、この閾値の横線を、加速度のグラフが横切る時点を抽出する。本図では、閾値の横線とグラフとの交点は4つあり、そのそれぞれの時刻はt1,t2,t3,t4である。この中から、目標時点Tとの差の絶対値(e1 = |t1 - T|, e2 = |t2 - T|, e3 = |t3 - T|, e4 = |t4 - T|)、すなわち誤差が最小となる時点を選択する。
【0103】
本図に示す例では、t3に対する誤差e3が最小となっている。そこで、本例の場合には、プレイヤーが操作入力をした時点は、t3と判定し、その操作の時間的な誤差は、e3と判定する。
【0104】
ゲームとしてどのように得点を与えるか、については、以下のような手法がありうる。
(1)選択された時点の誤差が所定の幅S以下であれば、すなわち、目標時点Tを含む成功区間[T-S,T+S]に、交点の時刻が1つでも含まれていれば、「操作入力成功」として得点を与える。
(2)選択された時点の誤差が0であるときに最大であり、誤差が増加すると急激に減少するような得点表や関数をあらかじめ用意しておき、選択された時点と目標時点Tとの差の絶対値から、この得点表を参照したりこの関数を適用したりして、加算すべき得点を計算する。
【0105】
なお、閾値Aは、多数のプレイヤーに対して事前に測定を行って、外乱の影響を受けにくい適切な値を採用するのが典型的である。
【0106】
また、習熟したプレイヤーは、把持モジュール201を滑らかに動かして、加速度の変化も滑らかにするとともに、把持モジュール201を振る力も軽くして、加速度が過度に大きくならないようにプレイするようになる。このようなプレイをした場合には、本図におけるt1,t2は互いに近付き、t3,t4は互いに近付いていく。
【0107】
したがって、プレイヤーが習熟するにしたがって、次第に「加速度が閾値に達した時点」と「目標時点」との差によって採点がされるようになる。特に、上記(2)の手法を用いた場合には、初心者プレイヤーでも得点が得られるとともに、上級者プレイヤーでもより正確な操作によって得点を向上させる楽しみが得られ、さまざまな能力のプレイヤーに対応することができる。
【0108】
また、上記の説明では、閾値としてAと-Aの2種類を利用しているが、Aのみを利用することとしても良いし、複数の値A,B,...と-A,-B,...を利用することとしても良い。以下では、理解を容易にするため、Aおよび-Aを閾値として採用する場合について説明する。
【0109】
図5は、本発明の実施形態に係るゲーム装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【0110】
本実施形態に係るゲーム装置401は、あらかじめ設定された目標時点にユーザがコントローラ105の把持モジュール201を動かしたか否かにより、ユーザの操作の正確さを判定するもので、計測部402、抽出部403、判定部404を備える。これらの構成は、プログラムを実行することによって、情報処理装置100上に実現される。
【0111】
ここで、計測部402は、当該把持モジュール201の加速度を計測するコントローラ105であり、上記のように、ジャイロや歪ゲージ等を用いた加速度センサが相当する。
【0112】
図6は、本実施形態に係るゲーム装置401にて実行されるゲーム処理の制御の流れを示すフローチャートである。本処理は、情報処理装置100上でプログラムを実行することで実行される。以下、本図を参照して説明する。
【0113】
まず、ゲーム用のプログラムが開始されると、CPU 100は、RAM 103を初期化して、再生する楽曲データと、当該楽曲に合わせて把持モジュール201をユーザが振るべき目標時点T[1],T[2],…,T[N]、閾値A、許容幅S、抽出時間幅D等の定数をを読み出す(ステップS500)。なお、S < Dとするのが、一般的な設定である。また、目標時点T[1],T[2],…,T[N]は、楽曲の再生を開始してからの経過時間によって表現されるのが一般的であるが、楽曲データの中に埋め込むこととしても良い。
【0114】
そして、加速度の測定結果を一時的に保存する変数aを0に、それぞれの目標時点に対する誤差を保存する変数w[1],w[2],…,w[N]をDに、それぞれ初期化する(ステップS502)。なお、本図では、「1,2,…,N」のそれぞれについて処理を行うことを、「*」と表記している。また、代入を左向き矢印により表記する。
【0115】
ついで、CPU 100は、音声処理部110に指示を出して、読み出した楽曲データの再生を開始させるとともに(ステップS503)、この時点からの経過時間t(現在時刻に対応するものである。)の計測を開始する(ステップS504)。
【0116】
そして、目標時点T[1],T[2],…,T[N]のそれぞれについて、いずれかの目標時点T[i]に対応する目標画像を画面に表示すべきか否かを判定する(ステップS505)。
【0117】
高さHの画面内を目標画像が上から下へ速度vで移動し、画面の上端からpだけ離れた場所にある照準位置に達したときが目標時点T[i]に相当するものとすると、経過時間tにおける目標画像の位置は、
v(t-T[i]) + p
と表現できる。
【0118】
したがって、目標時点T[i]に対する目標画像を画面に表示する時間帯については、
0≦v(t-T[i]) + p≦H;
が成立する。すなわち、経過時間tが、
T[i]-p/v ≦ t ≦ T[i]+H/v
を満たす間、上記の場所に目標画像を表示するのである。
【0119】
なお、本実施形態においては、理解を容易にするため、T[1],T[2],…,T[N]に対応する目標画像が画面内に表示される個数は、多くとも1個であるものとしている。すなわち、T[1],T[2],…,T[N]の間隔は、少なくともH/vである。しかしながら、本発明の原理にしたがって、これらの間隔を適宜変更することも可能である。
【0120】
目標画像を画面内に表示しない場合(ステップS505;No)、CPU 101は、ゲームの状況に応じた画像をRAM 103内に生成して(ステップS531)、垂直同期割込が生じるまで待機し(ステップS532)、これが生じたら生成した画像をフレームバッファに転送して、テレビジョン装置291に表示させ(ステップS533)、その後にステップS521に進む。
【0121】
一方、目標画像を画面内に表示すべきである場合(ステップS505;Yes)、CPU 101は、目標画像を表示すべき場所に配置した画像を、RAM 103内に生成して(ステップS506)、垂直同期割込が生じるまで待機し(ステップS507)、これが生じたら生成した画像をフレームバッファに転送して、テレビジョン装置291に表示させる(ステップS508)。なお、待機中には、コルーチン的に他の処理を実行させることができる。
【0122】
そして、経過時間tが、加速度を測定すべき測定区間に含まれるか、すなわち、
T[i]-D ≦ t ≦ T[i]+D
であるか否かを判定する(ステップS509)。そうでなければ(ステップS509;No)、変数aを0に設定して(ステップS510)、ステップS521に進む。
【0123】
このように、加速度を測定すべき時間帯を設けるのは、プレイヤーが意識的に把持モジュール201を振る動作以外の動作によって、判定を誤ってしまう可能性を減らすためである。
【0124】
一方、加速度を測定する時間帯であれば(ステップS509;Yes)、加速度センサにより、現在の把持モジュール201の加速度bを計測する(ステップS511)。
【0125】
したがって、把持モジュール201が備える加速度センサは、CPU 101の制御の下、計測部402として機能する。
【0126】
そして、変数aと加速度bとが、閾値Aおよび-Aを挟む位置関係にあるか否か、すなわち、
a<A<b;または、
b<A<a;または、
a<-A<b;または、
b<-A<a
が成立するか否かを判定する(ステップS512)。これが成立する場合(ステップS512;Yes)、CPU 101は、経過時間tを、加速度が増加しつつ閾値に至った時点、もしくは、加速度が減少しつつ閾値に至った時点として抽出する(ステップS513)。なお、経過時間tをそのまま抽出時点とするのではなく、a,A,bの間隔、もしくはa,-A,bの間隔に応じた内分点を、抽出時点としても良い。
【0127】
したがって、CPU 100は、RAM 103等と共働して、抽出部403として機能する。
【0128】
そして、抽出時点tと、目標時点T[i]との差の大きさ、すなわち誤差e = |t-T[i]|について、以下の関係
e < w[i]
が成立するか否かを判定する(ステップS514)。
【0129】
これが成立する場合(ステップS514;Yes)、抽出時点tと目標時点T[i]との差の大きさeを、より小さい誤差として、変数w[i]に格納する(ステップS515)。
【0130】
そして、変数aに加速度bを最新の値として格納し(ステップS516)、ステップS521に進む。
【0131】
変数a、加速度bが閾値A,-Aを挟まない場合(ステップS512;No)や、抽出時点の誤差が最小でない場合(ステップS514;No)も、ステップS516に進んで変数aを設定し、ステップS521に進む。
【0132】
そして、楽曲再生が完了したか否かを判定し(ステップS521)、終了していなければ(ステップS521;No)、ステップS505に戻る。
【0133】
終了していれば(ステップS521;Yes)、RAM 103に保存された変数
w[1],w[2],…,w[N]
の値に基づいて、プレイヤーの得点を計算する(ステップS522)。
【0134】
スコアの計算には、以下のような手法が考えられる。
(1)w[i]<Sであれば得点1を与え、そうでなければ得点0を与える手法。N個の目標時点のうち、何個がタイミング良く操作できたか、を数えることができる。
(2)単調減少する関数f(x)により、i番目の変数w[i]に対する得点をf(w[i])とする手法。関数f(x)には、通常の解析的な関数を利用しても良いし、あらかじめxの範囲と当該範囲でのf(x)の値を対応付ける表を用意しておき、この表を参照することとしても良い。
【0135】
したがって、CPU 101は、RAM 103等と共働して、判定部404として機能する。
【0136】
そして、計算されたスコアを画面に表示して(ステップS523)、本処理を終了する。
【0137】
なお、上記の制御の流れにおいては、スコアの計算をまとめて最後に行ったが、プレイの途中で適宜スコア計算を行って、リアルタイムでプレイヤーに得点を提示することとしても良い。
【0138】
また、上記の説明では、把持モジュール201の回転に沿った方向の加速度の正負を振り上げ方向を正、振り下げ方向を負としていたが、この方向は任意に定めることができる。
【0139】
また、把持モジュール201の遠心力方向の加速度を測定することとしても良い。この場合には、把持モジュール201の回転速度のほぼ2乗に比例する値が加速度として測定される。すなわち、
(1)基準位置から予備動作までの間(図3(a)〜(b))に加速度が0から増加して微小な正の値mになって0に戻り、
(2)予備動作から振り上げ完了までの間(図3(b)〜(d))の間に、加速度が0から増加してかなり大きな値Mになって0に戻り、
(3)振り上げ完了から行き過ぎるまでの間(図3(d)〜(f))の間に、加速度が0から増加してある程度大きな値Nになって0に戻り、
(4)行き過ぎから基準位置に戻るまでの間(図3(f)〜(g))に加速度が0から増加して微小な正の値nになって0に戻る。
【0140】
したがって、この場合には、第1閾値としては、典型的なプレイヤーについてのMとNの間の数値を採用すれば良い。さらに、第2閾値を利用する場合には、典型的なプレイヤーについてのNとm,nの間の数値を採用する。
【産業上の利用可能性】
【0141】
以上説明したように、本発明によれば、目標時点にユーザがコントローラを振ることができるか否かにより、ユーザの操作の正確さを競うゲームにおいて、当該操作の正確さを的確に判定するのに好適なゲーム装置、ゲーム制御方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【図面の簡単な説明】
【0142】
【図1】典型的な情報処理装置の概要構成を示す模式図である。
【図2】コントローラと情報処理装置との外観を示す説明図である。
【図3】コントローラの把持モジュールをプレイヤーが振る様子を時間経過の順に示す説明図であり、(a)は、把持モジュールが基準位置にある時点、(b)は、予備動作が完了した時点、(c)は、把持モジュールを振り上げ中の時点、(d)は、把持モジュールの振り上げが完了した時点、(e)は、把持モジュールを振り下げ中の時点、(f)は、把持モジュールの振り下げが完了して基準位置を行き過ぎた時点、(g)は、把持モジュールが基準位置に戻った時点の様子をそれぞれ示す。
【図4】測定される加速度の変化の様子の一例を表すグラフである。
【図5】本発明の実施形態に係るゲーム装置の概要構成を示す模式図である。
【図6】本実施形態に係るゲーム装置にて実行されるゲーム処理の制御の流れを示すフローチャートである。
【符号の説明】
【0143】
100 情報処理装置
101 CPU
102 ROM
103 RAM
104 インターフェイス
105 コントローラ
106 外部メモリ
107 画像処理部
108 DVD−ROMドライブ
109 NIC
110 音声処理部
111 マイク
201 把持モジュール
202 CCDカメラ
203 十字形キー
204 Aボタン
205 Bボタン
206 各種ボタン
207 インジケータ
208 電源ボタン
251 発光モジュール
252 発光ダイオード
291 テレビジョン装置
301 基準位置
302 基準軸
401 ゲーム装置
402 計測部
403 抽出部
404 判定部

【特許請求の範囲】
【請求項1】
あらかじめ設定された目標時点にユーザがコントローラを動かしたか否かにより、ユーザの操作の正確さを判定するゲーム装置において、
当該コントローラの加速度を計測する計測部、
前記計測された加速度が増加しつつ第1閾値に至った時点および減少しつつ当該第1閾値に至った時点を抽出する抽出部、
前記抽出された時点のうち、当該目標時点に最も近い時点を選択し、当該目標時点と、当該選択された時点と、の差により、ユーザの操作の正確さを判定する判定部
を備えることを特徴とするゲーム装置。
【請求項2】
請求項1に記載のゲーム装置であって、
前記抽出部は、前記計測された加速度が増加しつつ当該第1閾値の符号を反転した第2閾値に至った時点および減少しつつ当該第2閾値に至った時点をさらに抽出する
ことを特徴とするゲーム装置。
【請求項3】
請求項1または2に記載のゲーム装置であって、
前記計測部は、当該目標時点を含む所定の時間区間の間、定期的にコントローラの加速度を計測し、
前記抽出部は、前記計測されたコントローラの加速度を補間して、当該閾値に至った時点を抽出する
ことを特徴とするゲーム装置。
【請求項4】
あらかじめ設定された目標時点にユーザがコントローラを動かしたか否かにより、ユーザの操作の正確さを判定するゲーム装置が有する計測部、抽出部、判定部が実行するゲーム制御方法であって、
前記計測部が、当該コントローラの加速度を計測する計測工程、
前記抽出部が、前記計測された加速度が増加しつつ第1閾値に至った時点および減少しつつ当該第1閾値に至った時点を抽出する抽出工程、
前記判定部が、前記抽出された時点のうち、当該目標時点に最も近い時点を選択し、当該目標時点と、当該選択された時点と、の差により、ユーザの操作の正確さを判定する判定工程
を備えることを特徴とするゲーム制御方法。
【請求項5】
請求項4に記載のゲーム制御方法であって、
前記抽出工程では、前記計測された加速度が増加しつつ当該第1閾値の符号を反転した第2閾値に至った時点および減少しつつ当該第2閾値に至った時点をさらに抽出する
ことを特徴とするゲーム制御方法。
【請求項6】
あらかじめ設定された目標時点にユーザがコントローラを動かしたか否かにより、ユーザの操作の正確さを判定するゲームを実現するプログラムであって、当該コントローラが接続されたコンピュータを、
当該コントローラの加速度を計測する計測部、
前記計測された加速度が増加しつつ第1閾値に至った時点および減少しつつ当該第1閾値に至った時点を抽出する抽出部、
前記抽出された時点のうち、当該目標時点に最も近い時点を選択し、当該目標時点と、当該選択された時点と、の差により、ユーザの操作の正確さを判定する判定部
として機能させることを特徴とするプログラム。
【請求項7】
請求項6に記載のプログラムであって、
前記抽出部は、前記計測された加速度が増加しつつ当該第1閾値の符号を反転した第2閾値に至った時点および減少しつつ当該第2閾値に至った時点をさらに抽出する
ように機能させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate