説明

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

【課題】操作対象の操作状態に応じてプレイヤーの動きを推定する。
【解決手段】ゲーム装置300において、パターン記憶部301には、所定位置に配置される複数の操作対象の順序であって、プレイヤーによって操作されるべき操作対象を指定する当該順序のパターンが予め記憶される。検知部302は、複数の操作対象のそれぞれについて、操作状態を検知する。推定部303は、操作対象が複数操作されたことが検知された場合、検知された操作の順序と、パターン記憶部301に記憶されたパターンとに基づいて、プレイヤーが次に操作しようとする操作対象を推定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、操作対象の操作状態に応じてプレイヤーの動きを推定するために好適なゲーム装置、ゲーム処理方法、ならびに、プログラムに関する。
【背景技術】
【0002】
近年、ボタンやキーなどをプレイヤーが操作して指示を入力するだけでなく、プレイヤーが体全体を動かすことにより指示を与えてプレイできるゲームが普及している。例えば、特許文献1には、プレイヤーが載台の上に立って荷重を与えることにより指示を入力する、いわゆるバランスボードの形をした入力装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2009−109399号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に開示される入力装置では、プレイヤーが載台の上に載ると、内蔵された複数の荷重センサにかかる荷重のバランス状態が変わり、プレイヤーの体重の重心位置などが検出される。しかしながら、プレイヤーの姿勢や動作によっては、荷重の移動が小さく検出誤差範囲内に収まってしまったり、荷重の移動が検出されなかったりするため、プレイヤーが意図した動きなのかどうか判断が難しいことがあった。
【0005】
本発明はこのような課題を解決するものであり、操作対象の操作状態に応じてプレイヤーの動きを推定するために好適なゲーム装置、ゲーム処理方法、ならびに、プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【0007】
本発明の第1の観点に係るゲーム装置は、パターン記憶部、検知部、推定部を備える。
パターン記憶部には、所定位置に配置される複数の操作対象の順序であって、プレイヤーによって操作されるべき操作対象を指定する当該順序のパターンが、予め複数記憶される。
検知部は、複数の操作対象のそれぞれについて、操作対象の操作状態を検知する。
推定部は、操作対象が複数操作されたことが検知された場合、当該検知された操作の順序と、記憶されたパターンとに基づいて、プレイヤーが次に操作しようとする操作対象を推定する。
【0008】
本発明のゲーム装置には、複数の操作対象を有する入力装置(一般には“コントローラ”と呼ばれる)が接続される。
操作対象とは、例えば、プレイヤーが手に持つタッチパッド型の入力装置におけるボタンやキー、プレイヤーが手で握って振り回す把持型の入力装置それ自体、プレイヤーが上に立って足で踏むマット型の入力装置におけるボタンや、荷重センサを内蔵するパネルなどである。
また、操作状態とは、例えば、タッチパッド型の入力装置においてどのボタンが押圧されているかを示す状態、把持型の入力装置における振りの向きや振りの大きさを示す状態、マット型の入力装置においてどのボタンやパネルが踏まれているかを示す状態、あるいは荷重の大きさを示す状態、などのことである。
【0009】
複数の操作対象のうちの幾つかが操作されたことが検知されると、検知された操作の順序と、予め用意されたパターンと、が比較され、比較の結果に応じて、次に検知されるであろう操作対象がどれであるかが推定される。
例えば、2つの操作対象が続けて操作された場合、その後(3番目)にどの操作対象が操作されるかが推定される。
例えば、3つの操作対象が続けて操作された場合、その後(4番目)にどの操作対象が操作されるかが推定される。
例えば、3つの操作対象が続けて操作された場合、1番目と2番目の間や、2番目と3番目の間にどの操作対象が操作されたかが推定される。
ただし、続けて操作される操作対象の数が幾つの場合に次の操作対象を推定するのかは本発明によって限定されない。
【0010】
本発明によれば、検知された順序から、プレイヤーが次に操作しようとする操作対象を適切に推定することができる。ゲーム装置は、プレイヤーがこれから行うであろう動きに合わせてゲームの演出を行うことができる。
例えば、所定個数のボタンがすべて順番通りに押圧されたらゲーム課題が達成されることになるゲームにおいて、ノイズ等によってボタンが順番通りに押圧されたことが検知できなかったときでも、所定の割合以上が合っていればゲーム課題が達成されたとみなす、というような仕様を簡単に実現することができる。
【0011】
検知部により検知される操作に基づいて基準時間が定められてもよい。
そして、推定部による推定がなされてから基準時間内にいずれの操作も検知されない場合、推定された次の操作対象を表す画像を表示し、推定部による推定がなされてから基準時間内にいずれかの操作が検知された場合、当該検知された操作対象を表す画像を表示する表示部を更に備えてもよい。
【0012】
本発明では、操作対象が複数操作された場合であっても、それらの操作同士の間の経過時間が基準時間より長い場合には、それらの操作は一連の操作ではなく別々の操作であるものとして扱われる。
第1の操作が行われた後、基準時間が経過する前に第2の操作が行われると、第1の操作と第2の操作は一連の操作であると見なされる。そして、第1の操作と第2の操作に基づいて、第3の操作が推定される。
本発明によれば、操作対象の操作状態に応じてプレイヤーの動きを適切に推定することができる。
例えば、プレイヤーが複数の操作を行ったとしても、プレイヤーは別個の指示を意図して入力したのか、あるいは一連の操作によって示される1つの指示(例えば必殺技コマンドの指示など)を意図して入力したのか、はっきりしないケースがある。しかし、基準時間を設定することにより、プレイヤーの意図を適切に推定できるようになる。
【0013】
ゲーム装置は、検知された操作の時間間隔に基づいて基準時間を計算する計算部を更に備えてもよい。
【0014】
すなわち、上述の基準時間は、検知結果に応じて求められ、その都度異なる値になることがある。そして、ゲーム装置による推定処理に自由度が与えられることとなり、より柔軟な推定を行うことができるようになる。
なお、基準時間は、予め決められた固定値であってもよい。
【0015】
ゲーム装置は、検知された操作の順序の履歴を記憶する履歴記憶部を更に備えてもよい。
そして、推定部は、推定された操作対象を、記憶される履歴に追加してもよい。
【0016】
例えば、履歴記憶部には、直近の所定回数分の操作の順序が履歴として記憶される。
また、履歴記憶部には、各操作が検知された時刻と対応付けて、操作の順序が履歴として記憶されてもよい。
また、履歴記憶部には、各操作を行ったプレイヤーの識別情報(プレイヤー名など)と対応付けて、操作の順序が履歴として記憶されてもよい。
本発明によれば、ゲーム装置は、より柔軟な推定を行うことができる。
【0017】
推定部は、複数の操作対象のうち第1閾個数以上且つ第2閾個数以下の操作対象が順次操作されたことが検知された場合に、プレイヤーが次に操作しようとする操作対象を推定してもよい。
【0018】
すなわち、推定部による推定を行う条件として、複数の操作対象のうち幾つが操作されたときに推定を行うのかを定めることができる。
本発明によれば、ゲーム装置が行う処理を軽減することができ、且つ、プレイヤーが次に操作しようとする操作対象を適切に推定することができる。
【0019】
検知部は、操作状態として、複数の操作対象のそれぞれについて、プレイヤーによる当該操作対象への荷重の大きさを検知してもよい。
そして、推定部は、検知された荷重の大きさのそれぞれに基づいて、プレイヤーが次に操作しようとする操作対象を推定してもよい。
【0020】
本発明で用いられる入力装置(コントローラ)では、プレイヤーが載台の上に立って体重をかけることにより指示が入力される。
本発明によれば、プレイヤーは、直感的な操作によって指示を入力できる。ゲーム装置は、プレイヤーが次に操作しようとする操作対象を適切に推定することができる。
【0021】
推定部は、検知された荷重の大きさに基づいて、プレイヤーによる複数の操作対象への荷重の中心位置を求め、当該求められた中心位置に基づいて推定してもよい。
【0022】
つまり、複数の操作対象にかかった荷重の重心位置が、プレイヤーによって指示された場所として扱われる。
本発明によれば、プレイヤーは、直感的な操作によって指示を入力できる。ゲーム装置は、プレイヤーが次に操作しようとする操作対象を適切に推定することができる。
【0023】
複数の操作対象が占める領域内には、所定の推定対象領域が設定されていてもよい。
そして、推定部は、求められた中心位置が推定対象領域内にある場合に、プレイヤーが次に操作しようとする操作対象を推定してもよい。
【0024】
つまり、複数の操作対象が占める領域内であっても、重心位置が所定の推定対象領域内に入っていなければ、上述の推定処理は行われない。その場合、検知部による検知結果がゲームの進行に用いられ、推定部による推定処理は省略される。
本発明によれば、ゲーム装置が行う処理を軽減することができ、且つ、プレイヤーが次に操作しようとする操作対象を適切に推定することができる。
【0025】
ゲーム装置は、検知部による検知結果と推定部による推定結果とに基づいてゲームを進行させるゲーム進行部を更に備えていてもよい。
【0026】
つまり、プレイヤーがどのボタンを押したかという検知結果だけでなく、プレイヤーがどのボタンを押そうとしているか、あるいは、どのボタンを押そうとしていたかを推定して、ゲームに反映することができる。
これにより、例えば、ゲーム装置は、検知結果あるいは推定結果に応じてゲームのアドバイスやヒントを提示することができる。また、ゲーム装置は、検知結果あるいは推定結果に応じてプレイヤーの成績を判定してもよい。なお、検知結果あるいは推定結果をどのようにゲームに反映させるのかは、本発明によって限定されない。
【0027】
本発明のその他の観点に係るゲーム処理方法は、記憶部、検知部、推定部を有するゲーム装置にて実行されるゲーム処理方法であって、検知ステップと推定ステップを備える。
記憶部には、所定位置に配置される複数の操作対象の順序であって、プレイヤーによって操作されるべき操作対象を指定する当該順序のパターンが、予め複数記憶される。
検知ステップでは、検知部が、複数の操作対象のそれぞれについて、操作対象の操作状態を検知する。
推定ステップでは、推定部が、検知ステップにおいて操作対象が複数操作されたことが検知された場合、当該検知された操作の順序と、記憶されたパターンとに基づいて、プレイヤーが次に操作しようとする操作対象を推定する。
【0028】
本発明によれば、検知された順序から、プレイヤーが次に操作しようとする操作対象を適切に推定することができる。本発明のゲーム処理方法が実行されるゲーム装置は、プレイヤーがこれから行うであろう動きに合わせてゲームの演出を行うことができる。
【0029】
本発明のその他の観点に係るプログラムは、コンピュータを、パターン記憶部、検知部、推定部として機能させる。
パターン記憶部には、所定位置に配置される複数の操作対象の順序であって、プレイヤーによって操作されるべき操作対象を指定する当該順序のパターンが、予め複数記憶される。
検知部は、複数の操作対象のそれぞれについて、操作対象の操作状態を検知する。
推定部は、操作対象が複数操作されたことが検知された場合、当該検知された操作の順序と、記憶されたパターンとに基づいて、プレイヤーが次に操作しようとする操作対象を推定する。
【0030】
本発明によれば、コンピュータを上述のように動作するゲーム装置として機能させることができる。
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【0031】
本発明によれば、操作対象の操作状態に応じてプレイヤーの動きを推定するために好適なゲーム装置、ゲーム処理方法、ならびに、プログラムを提供することができる。
【図面の簡単な説明】
【0032】
【図1】本発明のゲーム装置が実現される典型的な情報処理装置の概要構成を示す図である。
【図2】(a)バランスボード型コントローラの外観を模して表す図である。(b)マット型コントローラの外観を模して表す図である。
【図3】ゲーム装置の機能的な構成を説明するための図である。
【図4】プレイヤーによって操作されるべき順序のパターンの例を示す図である。
【図5】ゲーム画面の構成例を示す図である。
【図6】ゲーム処理を説明するためのフローチャートである。
【図7】実施形態2において、ゲーム装置の機能的な構成を説明するための図である。
【図8】(a)〜(d)は、ヒップロール判定リングの構成例を示す図である。
【図9】(a)〜(d)は、ヒップロール判定リングの構成例を示す図である。
【図10】実施形態3において、ゲーム装置の機能的な構成を説明するための図である。
【図11】実施形態4において、ゲーム装置の機能的な構成を説明するための図である。
【図12】推定対象領域を説明するための図である。
【図13】ヒップロール判定リングの他の構成例を示す図である。
【発明を実施するための形態】
【0033】
本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下の実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【0034】
(実施形態1)
図1は、プログラムを実行することにより、本発明のゲーム装置の機能を果たす典型的な情報処理装置100の概要構成を示す模式図である。以下、本図を参照して説明する。
【0035】
情報処理装置100は、CPU(Central Processing Unit)101と、ROM(Read Only Memory)102と、RAM(Random Access Memory)103と、インターフェース104と、コントローラ105と、外部メモリ106と、DVD−ROM(Digital Versatile Disk - Read Only Memory)ドライブ107と、画像処理部108と、音声処理部109と、NIC(Network Interface Card)110と、を備える。
【0036】
ゲーム用のプログラムおよびデータを記憶したDVD−ROMをDVD−ROMドライブ107に装着して、情報処理装置100の電源を投入することにより、当該プログラムが実行され、本実施形態のゲーム装置が実現される。
【0037】
CPU 101は、情報処理装置100全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、CPU 101は、レジスタ(図示せず)という高速アクセスが可能な記憶域に対してALU(Arithmetic Logic Unit)(図示せず)を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、CPU 101自身が構成されているものや、コプロセッサを備えて実現するものがある。
【0038】
ROM 102には、電源投入直後に実行されるIPL(Initial Program Loader)が記録され、これが実行されることにより、DVD−ROMに記録されたプログラムをRAM 103に読み出してCPU 101による実行が開始される。また、ROM 102には、情報処理装置100全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【0039】
RAM 103は、データやプログラムを一時的に記憶するためのもので、DVD−ROMから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、CPU 101は、RAM 103に変数領域を設け、当該変数に格納された値に対して直接ALUを作用させて演算を行ったり、RAM 103に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【0040】
インターフェース104を介して接続されたコントローラ105は、プレイヤーがダンスゲームなどの実行の際に行う操作入力を受け付ける。インターフェース104には、複数のコントローラ105が接続されていてもよい。
【0041】
インターフェース104を介して着脱自在に接続された外部メモリ106には、ゲームのプレイ状況(過去の成績等)を示すデータ、ゲームの進行状態を示すデータ、ネットワークを用いたゲームのチャット通信のログ(記録)のデータなどが書き換え可能に記憶される。プレイヤーは、コントローラ105を介して操作入力を行うことにより、これらのデータを適宜外部メモリ106に記録することができる。
【0042】
DVD−ROMドライブ107に装着されるDVD−ROMには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。CPU 101の制御によって、DVD−ROMドライブ107は、これに装着されたDVD−ROMに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはRAM 103等に一時的に記憶される。
【0043】
画像処理部108は、DVD−ROMから読み出されたデータをCPU 101や画像処理部108が備える画像演算プロセッサ(図示せず)によって加工処理した後、これを画像処理部108が備えるフレームメモリ(図示せず)に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部108に接続されるモニター(図示せず)へ出力される。これにより、各種の画像表示が可能となる。
【0044】
画像演算プロセッサは、2次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【0045】
また、仮想3次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Zバッファ法によりレンダリングして、所定の視点位置から仮想3次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【0046】
さらに、CPU 101と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
【0047】
また、ゲームの画像などの情報をDVD−ROMに用意しておき、これをフレームメモリに展開することによって、ゲームの様子などを画面に表示することができるようになる。
【0048】
音声処理部109は、DVD−ROMから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカー(図示せず)から出力させる。また、CPU 101の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカーから出力させる。
【0049】
音声処理部109では、DVD−ROMに記録された音声データがMIDIデータである場合には、これが有する音源データを参照して、MIDIデータをPCMデータに変換する。また、ADPCM(Adaptive Differential Pulse Code Modulation)形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してPCMデータに変換する。PCMデータは、そのサンプリング周波数に応じたタイミングでD/A(Digital/Analog)変換を行って、スピーカーに出力することにより、音声出力が可能となる。
【0050】
NIC 110は、情報処理装置100をインターネット等のコンピュータ通信網(図示せず)に接続するためのものであり、LAN(Local Area Network)を構成する際に用いられる10BASE−T/100BASE−T規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integrated Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとCPU 101との仲立ちを行うインターフェース(図示せず)により構成される。
【0051】
このほか、情報処理装置100は、ハードディスク等の大容量外部記憶装置を用いて、ROM 102、RAM 103、外部メモリ106、DVD−ROMドライブ107に装着されるDVD−ROM等と同じ機能を果たすように構成してもよい。
【0052】
次に、本実施形態で用いられるコントローラ105の概要を説明する。
図2(a)は、コントローラ105の外観を模して表した図である。本実施形態で用いられるコントローラ105は、床に設置され、プレイヤーが載台201の上に立って任意の場所を足で踏んだり体重をかけたりすることにより指示が入力される、いわゆる“バランスボード”の形状をした入力装置である。
【0053】
コントローラ105は複数の荷重センサを備える。荷重センサでは、歪みゲージが荷重の大きさに応じて変形することによる歪みが電圧変化に変換され、この電圧変化により載台201にかかる荷重の大きさが取得される。
【0054】
本実施形態では、載台201は4つの領域202A,202B,202C,202Dに分かれており、それぞれの領域に1つずつ荷重センサが内蔵されている。プレイヤーが載台201の上に立つと、各領域202A〜202Dの内部に備え付けられた各荷重センサによって、荷重の大きさが検出される。
【0055】
仮に、プレイヤーが正確に載台201の中央の位置に立っているならば、各荷重センサにかかる荷重の大きさは等しくなるはずである。
しかし、実際には、プレイヤーが基準立ち位置203A,203Bに両足で立ったとき、足の位置がある方向に偏っていたり、ある方向にプレイヤーの重心の位置が傾いたりする。また、載台201の上に立ったときの姿勢を変えることによってプレイヤーが指示を入力するようなゲームでは、故意に重心の位置が傾くことになる。
このように、プレイヤーが立つ位置やプレイヤーの姿勢によって、各荷重センサにかかる荷重の大きさは変化する。
【0056】
例えば、載台201の上に立つプレイヤーが時計回りに腰を回したときには、荷重センサによって検出される荷重の重心位置が含まれる領域は、例えば、領域202A、領域202B、領域202C、領域202D、の順に移動していくことが予想される。
逆にプレイヤーが反時計回りに腰を回したときには、荷重センサによって検出される荷重の重心位置が含まれる領域は、例えば、領域202D、領域202C、領域202B、領域202A、の順に移動していくことが予想される。
つまり、情報処理装置100は、コントローラ105によって検出される荷重の重心位置の変化から、プレイヤーがとったであろう姿勢の変化を推定することが可能である。
【0057】
ところで、プレイヤーの腰の回し方によっては、つまり重心位置の変化の仕方によっては、重心位置の変化量が、想定される誤差範囲内に収まってしまい、重心位置の変化が十分に捉えきれないことがある。
また、通常の人間の姿勢では、両足を基準立ち位置203A,203Bに置くため、人間の左右方向、つまり領域202A−202B間の重心位置の移動と領域202C−202D間の重心位置の移動は比較的捉えやすいものの、人間の前後方向、つまり領域202A−202D間での重心位置の移動と領域202B−202C間での重心位置の移動は比較的捉えにくいという傾向がある。
そこで、本発明では、重心位置の変化量が十分に検知できなかった場合においても、後述するように重心位置の移動の履歴を使って、プレイヤーがとったであろう姿勢の変化を、より簡単に推定できるようにするのである。
【0058】
本実施形態で用いられるコントローラ105は4つの荷重センサを備え、各荷重センサは載台201の4隅に接するように固定されているが、荷重センサの数や荷重センサの配置の仕方は任意である。
【0059】
図2(a)に示すようなバランスボード型のコントローラ105と、他の形状を有するコントローラとを併用することも可能である。
【0060】
図2(b)は、本実施形態の情報処理装置100に接続して用いられるもう一つのマット型コントローラ(以下「マット」という。)の概略図である。
マットは、コントローラ105と同様、床の上などに設置される。マットには、左ボタン251、下ボタン252、上ボタン253、右ボタン254等が配置されている。マットには、一般にプレイヤーが足で踏むことによって指示が入力される。ただし、プレイヤーは手で各ボタンを押圧することにより指示を入力することも可能である。
【0061】
例えば、図2(a)に示すバランスボード型のコントローラ105を、図2(b)に示すマットの中央部分(図2(b)において点線の円が描かれた部分)に積載して配置することにより、1人のプレイヤーが2つのコントローラを無理なく使い分けることが可能である。
【0062】
なお、図2(a)に示すバランスボード型のコントローラ105や図2(b)に示すマットのほかに、例えば、手で把持して操作するリモコン型のコントローラや、両手で持つタッチパッド型のコントローラなどを更に情報処理装置100に接続して使用できるように構成してもよい。
【0063】
次に、上記構成を有する情報処理装置100により実現される、本実施形態のゲーム装置300の機能的な構成等について説明する。
【0064】
図3は、ゲーム装置300の機能的な構成を示す図である。ゲーム装置300は、パターン記憶部301、検知部302、推定部303を備える。
【0065】
パターン記憶部301は、所定位置に配置される複数の操作対象がプレイヤーによって操作されるべき順序のパターンを、予め複数記憶する。外部メモリ106あるいはRAM 103が、パターン記憶部301として機能する。
【0066】
操作対象とは、一般にはプレイヤーが指示を入力するために用いるボタン、キー、スイッチ等のことであり、本実施形態では、バランスボード型のコントローラ105における4つの領域202A,202B,202C,202Dに相当する。
本発明で言う“プレイヤーによる操作”には、プレイヤーによる操作対象への押圧、押下、切り替え、接触、振り回し等が含まれる。
【0067】
操作対象は所定の位置に配置される。本実施形態では、バランスボード型のコントローラ105における4つの領域202A,202B,202C,202Dは、それぞれ、載台201の4隅に接するように固定されている。
【0068】
プレイヤーによって操作されるべき順序とは、具体的には例えば、「荷重の重心位置が含まれる領域が移動していく順番が、1番目が領域202A、2番目が領域202B、3番目が領域202C、4番目が領域202Dである」、というような順序のことである。
【0069】
図4は、パターン記憶部301に記憶されるパターンの具体例である。領域202Aは“A”、領域202Bは“B”、領域202Cは“C”、領域202Dは“D”と省略して記されている。例えば、グループRには項番1から4までの4つのパターンが含まれ、グループLには項番1から5までの5つのパターンが含まれる。
以下の説明では、パターン記憶部301に記憶されるパターンを、記号{ }を使って、“{A,B,C}”のように表す。
【0070】
同一グループ内には、プレイヤーが行ったと推測される姿勢の動き(モーション)であって互いに似たもの同士の動きのパターンが分類される。
【0071】
図4において、グループRに含まれる各パターンは、右回りの移動、もしくは、おおよそ右回りであると推測できる動きを表し、グループLに含まれる各パターンは、左回りの移動、もしくは、おおよそ左回りであると推測できる動きを表す。
更に言えば、グループRに含まれるパターンは、プレイヤーが右回りに腰を回転したときに検知されるであろう重心位置の動きを表し、グループLに含まれるパターンは、プレイヤーが左回りに腰を回転したときに検知されるであろう重心位置の動きを表す。
【0072】
なお、図4は例示であり、他のパターンを定義することが可能である。また、グループの数や、同じグループに含めることができるパターンの数に、制限はない。
例えば、パターン{B→C→D→A}やパターン{B→C→A}などは、いずれも右回りの動きもしくは右回りに近い動きであるため、グループRに含めてもよい。
【0073】
パターン記憶部301に記憶されるパターンの具体的な構成や、パターンのグループ分けについては、例えば、ゲーム制作者が予めテストを行い、姿勢の変化と重心位置の変化の仕方とを照らし合わせることによって、予め決められることが望ましい。
【0074】
検知部302は、複数の操作対象のそれぞれについて、操作対象の操作状態を検知する。CPU 101とコントローラ105が協働して、検知部302として機能する。
【0075】
操作状態とは、操作対象(ボタンやキー)が押圧されたか否か、操作対象(スイッチ)が動かされたか否か、などの状態のことであり、本実施形態では、操作対象(領域202A,202B,202C,202D)に荷重の重心位置が含まれるか否か、あるいは、荷重の大きさを表す具体的な数値がいくつか、などの状態のことである。
【0076】
CPU 101は、垂直同期割り込み(VSYNC)等の所定の定期的なタイミングで、各荷重センサにかかる荷重の大きさを取得し、検知結果をRAM 103に記憶する。
【0077】
推定部303は、操作対象が複数操作されたことが検知された場合、検知された操作の順序と、パターン記憶部301に記憶されたパターンと、に基づいて、プレイヤーが次に操作しようとする操作対象を推定する。CPU 101が推定部303として機能する。
【0078】
ここで、操作対象が複数操作されたことが検知された場合とは、具体的には、例えば、4つの領域202A〜202Dのうちの2つ以上に、基準時間内に続けて、荷重の重心位置が検知された場合である。
【0079】
この基準時間は、例えば0.5秒といったように、予め設定されていてもよいし、RAM 103に記憶される履歴に基づいて、CPU 101が都度計算して求めてもよい。本実施形態では、基準時間は所定値に固定されているが、基準時間をCPU 101が都度変更する形態については、後述の他の実施形態において説明する。
【0080】
プレイヤーの動作、例えば腰を回すという動作は、一瞬の動作ではなく、時間の経過と共に徐々に行われるのが普通である。しかし、第1の時刻に第1の操作対象が操作された後、第2の時刻に第2の操作対象が操作された場合であっても、それらの操作の時間間隔が非常に長いならば、それら2つの操作は一連の操作ではなく、別々に意図して行われた操作である可能性が高い。このため、プレイヤーによる複数の操作が一連のものであるか否かを判断するために、適切な基準時間を設定することが望ましい。
【0081】
以下、推定部303による推定処理について、幾つかの具体例を提示して説明する。
【0082】
<推定処理の具体例 その1>
荷重の重心位置が領域202A内であることが検知された後、所定の基準時間内に、荷重の重心位置が領域202B内であることが検知され、更に所定の基準時間内に、荷重の重心位置が領域202C内であることが検知された場合、検知された操作の順序は、1番目がA、2番目がB、3番目がC、である。
以下の説明では、検知部302によって検知された操作の順序を、記号[ ]を使って、“[A,B,C]”のように表す。
【0083】
CPU 101は、検知された順序[A,B,C]と、図4に例示されるパターン記憶部301に記憶されるパターンと、を比較し、検知された順序[A,B,C]とパターン記憶部301に記憶される各パターンとの類似度を計算する。
【0084】
検知された順序[A,B,C]は、グループRの項番1のパターン{A,B,C,D}と比較すると、4つ目の操作“D”が欠けていることから、類似度は75%である。
また、検知された順序[A,B,C]は、グループRの項番2のパターン{A,B,C}と比較すると、完全に一致しており、類似度は100%である。
また、検知された順序[A,B,C]は、グループRの項番3のパターン{A,C,D}と比較すると、2つ目と3つ目の操作が異なることから、類似度は33.3%である。
また、検知された順序[A,B,C]は、グループRの項番4のパターン{B,C,D}と比較すると、すべての操作が異なることから、類似度は0%である。
ただし、検知された順序[A,B,C]の一部分[B,C]と、グループRの項番4のパターン{B,C,D}の一部分{B,C}が一致することから、循環配列の考え方を採用し、類似度は66.7%である、としてもよい。
【0085】
同様に、CPU 101は、検知された順序[A,B,C]と、グループLなど他のグループに属するパターンと、の類似度も計算する。
【0086】
CPU 101は、計算された類似度が最大のパターンを求める。上記の場合、類似度が最大のパターンは、グループRの項番2のパターン{A,B,C}である。
従って、CPU 101は、グループRに対応する動き「右回りに腰を回転する」がプレイヤーによってなされた、と推定する。そして、CPU 101は、同一グループ内で指定される操作対象の数が最も多い項番1のパターン{A,B,C,D}に基づいて、プレイヤーが次に操作しようとする操作対象は「D」である、と推定する。CPU 101は、現在プレイ中のプレイヤーが次に操作しようとしている操作対象を推定することができる。
【0087】
なお、CPU 101は他の手法により類似度を計算してもよく、類似度の計算式等は本発明によって限定されない。
【0088】
<推定処理の具体例 その2>
荷重の重心位置が領域202A内であることが検知された後、所定の基準時間内に、荷重の重心位置が領域202B内であることが検知され、更に所定の基準時間内に、荷重の重心位置が領域202D内であることが検知された場合、検知された操作の順序は、[A,B,D]である。
【0089】
CPU 101は、検知された順序[A,B,D]と、図4に例示されるパターン記憶部301に記憶されるパターンと、を比較し、検知された順序[A,B,D]とパターン記憶部301に記憶される各パターンとの類似度を計算する。
【0090】
検知された順序[A,B,D]は、グループRの項番1のパターン{A,B,C,D}と比較すると、3つ目の操作“C”が欠けていることから、類似度は75%である。
また、検知された順序[A,B,D]は、グループRの項番2のパターン{A,B,C}と比較すると、3つ目の操作が異なることから、類似度は66.7%である。
また、検知された順序[A,B,D]は、グループRの項番3のパターン{A,C,D}と比較すると、2つ目の操作が異なることから、類似度は66.7%である。
また、検知された順序[A,B,D]は、グループRの項番4のパターン{B,C,D}と比較すると、1つ目と2つ目の操作が異なることから、類似度は33.3%である。
【0091】
同様に、CPU 101は、検知された順序[A,B,C]と、グループLなど他のグループに属するパターンと、の類似度も計算する。
【0092】
CPU 101は、計算された類似度が最大のパターンを求める。上記の場合、類似度が最大のパターンは、グループRの項番1のパターン{A,B,C,D}である。
従って、CPU 101は、グループRに対応するプレイヤーの動き「右回りに腰を回転」がなされた、と推定する。そして、CPU 101は、同一グループ内で指定される操作対象の数が最も多い項番1のパターン{A,B,C,D}に基づいて、プレイヤーが「B」の次であって「D」の前に操作しようとした操作対象は「C」である、と推定する。CPU 101は、プレイヤーが過去に操作しようとしていた操作対象を推定することができる。
【0093】
例えば、プレイヤーがA,B,C,Dの順に右回りに腰を回転した場合でも、荷重センサによる検知精度やノイズ等の影響により、検知結果が{A,B,D}などのように中抜けになってしまうことがある。しかし、この推定処理によれば、CPU 101は、中抜けしてしまった検知結果を適切に推定することが可能になる。
【0094】
<推定処理の具体例 その3>
荷重の重心位置が領域202D内であることが検知された後、所定の基準時間内に、荷重の重心位置が領域202C内であることが検知された場合、検知された操作の順序は、[D,C]である。
【0095】
CPU 101は、検知された順序[D,C]と、図4に例示されるパターン記憶部301に記憶される各パターンと、を比較し、検知された順序[D,C]とパターン記憶部301に記憶される各パターンとの類似度を計算する。
【0096】
具体的には、まず、CPU 101は、パターン記憶部301に記憶されるすべてのパターンの中から、検知された順序[D,C]を含むパターンを抽出する。ここでは、CPU 101は、グループLの項番1,2,3の3つのパターンを抽出する。
【0097】
抽出された3つのパターンのうち、グループLの項番1,2の2つでは、操作“C”の後に操作“B”が指定されている。一方、グループLの項番3では、操作“C”の後に操作“A”が指定されている。
従って、CPU 101は、検知された順序[D,C]の次に検知されるであろう操作対象は、3分の2の割合で「B」であり3分の1の割合で「A」である、と推定する。
この例のように、CPU 101は、具体的な類似度というパラメータを計算せずに、推定することもできる。
【0098】
CPU 101は、上述の具体例に示したような推定をした後、推定結果に基づいて、ゲームを進行する。
【0099】
次に、ゲーム装置300にて行われるゲームの内容について説明する。
図5は、本実施形態のゲーム装置300において行われるゲームの画面500の構成例である。画面500には、所定位置に固定して描画される静止マーク501〜504、描画位置が時間の経過と共に移動する踏み位置指示マーク510(本図中では510A,510B,510C,510Dの4種類)とヒップロール指示マーク520、プレイヤーの成績を表すゲージ530、検知部302による検知結果又は推定部303による推定結果を表すヒップロール判定リング540、その他の背景画像などが表示される。
【0100】
本ゲームでは、ゲーム装置300によって音楽が再生される。プレイヤーは足譜と呼ばれる指示マーク(以下「課題」ともいう。)に合わせて指示を入力することにより、再生される音楽に合わせてダンスができる。
【0101】
踏み位置指示マーク510とヒップロール指示マーク520は、再生される音楽に合わせてスクロール表示される。踏み位置指示マーク510には、マットの各ボタン251〜254に対応する上下左右のいずれかの矢印が描かれている。
【0102】
静止マーク501〜504は、それぞれ、ボタン251〜254をプレイヤーが押圧すべきタイミング(以下「課題時刻」ともいう。)を指示するマークである。静止マーク501〜504には、上下左右のいずれかの矢印の画像が描かれている。
【0103】
踏み位置指示マーク510は、静止マーク501〜504が描画されている位置に向かって音楽の再生速度に合わせて移動していく。静止マーク501〜504と同じ位置に踏み位置指示マーク510が移動してきたときに、静止マーク501〜504に描かれる矢印の向きに対応するボタン251〜254のいずれかをプレイヤーが押圧すると、プレイヤーの得点に所定点数が加算されたり、ゲージ530が示す値(ダンスメーター)がアップしたりする。
【0104】
CPU 101は、予め決められた課題を、予め対応付けられる課題時刻に、プレイヤーが達成すると、ゲージ530が示す値を増加させたり得点を増加させたりし、ゲーム成績が優れていると評価する。また、CPU 101は、課題が達成された時刻が課題時刻に近いほど、ゲーム成績がより優れていると評価する。
【0105】
例えば、踏み位置指示マーク510が静止マーク501〜504のいずれかと重なる位置に移動してきたときに、移動してきた踏み位置指示マーク510に示される矢印に対応するボタン(ボタン251〜254のいずれか)をプレイヤーが片足で押圧すると、再生されている音楽に合った模範的なダンスステップを踏むことができるようになっている。
【0106】
また、コントローラ105の荷重センサにより検知された重心位置が、図4に示すグループRに含まれるパターンで示すように移動した場合、CPU 101は、プレイヤーが右回りに腰を回した、と判断する。
また、荷重センサにより検知された重心位置が、図4に示すグループLに含まれるパターンで示すように移動した場合、CPU 101は、プレイヤーが左回りに腰を回した、と判断する。
【0107】
そして、CPU 101は、ヒップロール指示マーク520が判定ライン550に到達したときに、プレイヤーがコントローラ105の上で腰を回す動作を行ったと判断すると、プレイヤーの得点に所定点数が加算されたり、ゲージ530が示す値(ダンスメーター)がアップしたりする。
【0108】
本実施形態では、1種類のみのヒップロール指示マーク520が画面500の所定位置に表示されるが、CPU 101は、左回りでヒップロールすべきであることを示す第1種のヒップロール指示マークと、右回りでヒップロールすべきであることを示す第2種のヒップロール指示マークと、を区別して表示してもよい。そして、CPU 101は、第1種のヒップロールマークで表されるゲーム課題と第2種のヒップロールマークで表されるゲーム課題について、別々に成績の判定を行ってもよい。
【0109】
また、CPU 101は、回転の方向の代わりに、もしくは、回転の方向に加えて、回転する回数を区別したヒップロール指示マークを画面に表示してもよい。
【0110】
次に、上述の各部が実行するゲーム処理について、図6のフローチャートを用いて説明する。
【0111】
まず、CPU 101は、各操作対象(領域202A〜202D)の操作状態を取得し、取得した操作状態をRAM 103に記憶する(ステップS601)。CPU 101は、所定回数分の取得した操作状態の履歴をRAM 103に記憶する。
【0112】
CPU 101は、RAM 103に記憶された履歴を参照し、プレイヤーによって操作対象が複数操作されたか否かを判別する(ステップS602)。本実施形態では、CPU 101は、4つの領域202A,202B,202C,202Dのうちの2つ以上が所定の基準時間内に操作されたか否かを判別する。
【0113】
一般的には、
N: 操作対象の総数。2以上の整数。
L: 第1閾個数。2以上、M以下、の整数。
M: 第2閾個数。L以上、N以下、の整数。
の3つの変数を用いて説明すれば、CPU 101は、N個の操作対象のうち、L個以上、且つ、M個以下、の操作対象が操作されたか否かを判別する。
【0114】
CPU 101は、ある操作対象が操作された時刻から、次に他の操作対象が操作された時刻まで、の時間間隔を計算し、計算された時間間隔が基準時間より長い履歴については、ステップS602における判別の対象外とする。すなわち、プレイヤーが複数の操作対象を操作した場合であっても、時間間隔が基準時間より長い場合には、それらの操作はプレイヤーによる一連の操作として扱われず、それぞれ単独の操作として扱われる。
【0115】
複数の操作対象が(一連の流れとして)操作されていないと判別した場合(ステップS602;NO)、CPU 101は、後述のステップS605の処理に移る。一方、複数の操作対象が(一連の流れとして)操作されたと判別した場合(ステップS602;YES)、CPU 101は、検知された操作対象の順序と、パターン記憶部301に記憶されたパターンと、を比較する(ステップS603)。
【0116】
そして、CPU 101は、上述したような推定方法により、ステップS603における比較の結果に基づいて、プレイヤーが次に操作しようとする操作対象を推定する(ステップS604)。
【0117】
例えば、CPU 101は、4つの領域202A,202B,202C,202Dのうちの2つの操作対象「X」と「Y」が操作されたと判別した場合に、検知された順序[X,Y]と、パターン記憶部301に記憶されるパターンと、に基づいて、3番目に操作が検知されるであろう操作対象「P」がどれであるかを推定する。
【0118】
例えば、CPU 101は、4つの領域202A,202B,202C,202Dのうちの3つの操作対象「X」と「Y」と「Z」が操作されたと判別した場合に、検知された順序[X,Y,Z]と、パターン記憶部301に記憶されるパターンと、に基づいて、4番目に操作が検知されるであろう操作対象「Q」がどれであるかを推定する。
【0119】
例えば、CPU 101は、4つの領域202A,202B,202C,202Dのうちの3つの操作対象「X」と「Y」と「Z」が操作されたと判別した場合に、検知された順序[X,Y,Z]と、パターン記憶部301に記憶されるパターンと、に基づいて、1番目に検知された操作と2番目に検知された操作との間にプレイヤーが意図して操作したかったであろう操作対象「R」がどれであるか、を推定する。
あるいは、CPU 101は、2番目に検知された操作と3番目に検知された操作との間にプレイヤーが意図して操作したかったであろう操作対象「S」がどれであるか、を推定する。
【0120】
次に、CPU 101は、ステップS604における推定の結果を用いて、ゲームを進行する(ステップS605)。
【0121】
推定結果の利用の仕方は、本発明によって限定されないが、以下に幾つかを例示する。
【0122】
<推定結果の利用 その1>
検知された順序[X,Y]に基づいて、次に(3番目に)操作が検知されるであろう操作対象を推定した場合:
CPU 101は、プレイヤーが載台201の上で腰を回すモーションを開始したと推定する。そして、CPU 101は、「いい調子だ!もっと回せ!」というようなメッセージをモニターに表示したりスピーカーから音声で出力したりする。これによって、ゲーム装置300は、ゲームのアドバイスやヒント等をプレイヤーに適切に提供することができる。
【0123】
<推定結果の利用 その2>
検知された順序[X,Y,Z]に基づいて、XとYとの間、もしくは、YとZとの間に、プレイヤーが意図して操作したかったであろう操作対象を推定した場合:
CPU 101は、プレイヤーが載台201の上で腰を回すモーションを行ったと推定する。そして、CPU 101は、「GREAT!」というような成績を評価するメッセージをモニターに表示したりスピーカーから音声で出力したりする。これによって、ゲーム装置300は、プレイヤーによる操作対象への操作が完全に検知できなかった場合でも、プレイヤーがとった行動を適切に推測し、ゲームを進めることができる。
また、CPU 101は、本来[X,Y,Z,W]の順にすべての操作が検知されなければ腰を回すという課題をクリアしたことにはならない場合であっても、すべてではないもののある程度合っていれば課題をクリアしたとみなして、プレイヤーに得点を加算したりゲージ530が示す値をアップしたりして、ゲームを進めてもよい。
例えば、ゲームに初心者モードと上級者モードとを用意し、初心者モードでは推定部303による推定結果を用いてプレイヤーの成績を判定することにより難易度を調整し、上級者モードでは推定部303による推定を行わずにプレイヤーの成績を判定する、というように使い分けることができる。
【0124】
<推定結果の利用 その3>
CPU 101は、パターン記憶部301に記憶されたパターンの中から、検知された順序との類似度が大きいパターンを特定し、特定したパターンが分類されるグループに対応するモーションを特定する。例えば、図4に示すパターンの定義を用いる場合、特定したパターンが、右回りの回転に対応するグループRと、左回りの回転に対応するグループLとのどちらに属するかを判別する。
そして、CPU 101は、特定したパターンがグループRに属するのであれば、ヒップロール判定リング540を、右回りを示すアニメーションで表示する。一方、特定したパターンがグループLに属するのであれば、ヒップロール判定リング540を、左回りを示すアニメーションで表示する。これによって、ゲーム装置300は、プレイヤーの動きにマッチした演出を行うことができる。
【0125】
図6に戻り、CPU 101は、ゲームを終了するか否かを判別する(ステップS606)。例えば、CPU 101は、ゲージ530が示す値が所定値以下になった場合には、ゲームを終了すると判別し、そうでない場合には、ゲームを続行すると判別する。
【0126】
ゲームを終了しないと判別した場合(ステップS606;NO)、CPU 101は、ステップS601の処理に戻る。一方、ゲームを終了すると判別した場合(ステップS606;YES)、CPU 101は、ゲーム処理を終了する。
【0127】
本実施形態によれば、ゲーム装置300は、操作対象の操作状態からプレイヤーの動きを適切に推定し、プレイヤーの動きに合わせてゲームを進めることができる。
【0128】
(実施形態2)
次に、本発明のその他の実施形態について説明する。本実施形態では、検知部302による検知結果と推定部303による推定結果が、モニターに表示されることによって、プレイヤーに分かりやすく提示される。
【0129】
図7は、本実施形態のゲーム装置300の機能的な構成を示す図である。ゲーム装置300は、表示部701を更に備える。
【0130】
表示部701は、推定部303による推定がなされてから基準時間内にいずれの操作も検知されない場合、推定部303によって推定された次の操作対象を表す画像を表示する。また、表示部701は、推定部303による推定がなされてから基準時間内にいずれかの操作が検知された場合、検知部302によって検知された操作対象を表す画像を表示する。CPU 101と画像処理部108が協働して、表示部701として機能する。
【0131】
本実施形態では、この基準時間は、少なくとも推定部303による推定が開始される前に、決められる値である。典型的には、基準時間は、リアルタイムクロック(RTC)によって計時される現実世界の時間を用いて定められる。基準時間は、VSYNCの回数によって定められてもよい。
【0132】
あるいは、基準時間は、ゲーム内における経過時間を用いて定められてもよい。例えば、基準時間は、再生される音楽の何拍分か、連続するゲーム課題の何個分か、等によって定められてもよい。
【0133】
CPU 101は、コントローラ105の荷重センサによって荷重が検出され、検出された荷重の重心位置が領域202A,202B,202C,202Dのいずれかに含まれる場合、画像処理部108を制御して、重心位置が含まれる領域に対応付けられる画像をモニターに表示する。
【0134】
図8(a)〜(d)は、図5におけるヒップロール判定リング540を簡略化して表した図である。
ヒップロール判定リング540には、コントローラ105の領域202Aに対応付けられる画像802Aと、コントローラ105の領域202Bに対応付けられる画像802Bと、コントローラ105の領域202Cに対応付けられる画像802Cと、コントローラ105の領域202Dに対応付けられる画像802Dと、がある。
【0135】
CPU 101は、荷重センサによって荷重が検出されると、画像処理部108を制御して、画像802A〜802Dのうち検出された荷重の重心位置が含まれる領域に対応する画像を、他の画像よりも相対的に強調して表示する。
【0136】
図8(a)は、領域202Aに対応付けられる画像802Aを強調したヒップロール判定リング540を表す。
図8(b)は、領域202Bに対応付けられる画像802Bを強調したヒップロール判定リング540を表す。
図8(c)は、領域202Cに対応付けられる画像802Cを強調したヒップロール判定リング540を表す。
図8(d)は、領域202Dに対応付けられる画像802Dを強調したヒップロール判定リング540を表す。
【0137】
CPU 101は、荷重センサによる検出結果に応じて、ヒップロール判定リング540の一部又は全部の色彩(色相,彩度,明度)、形状、大きさ、デザイン等を変化させて表示する。
【0138】
強調の仕方には様々なバリエーションがある。
CPU 101は、検出された荷重の重心位置が含まれる領域に対応する画像を、その他の領域よりも明るく(輝度を大きく)表示してもよい。
【0139】
また、CPU 101は、検出された荷重の重心位置が含まれる領域に対応する画像を点滅させて表示し、その他の領域を点滅させずに表示してもよい。
【0140】
また、CPU 101は、検出された荷重の重心位置が含まれる領域に対応する画像を表示し、その他の領域を表示しないようにしてもよい。
【0141】
例えば、検知された順序が[A,B,C,D]である場合、ヒップロール判定リング540の表示は、図8(a)→図8(b)→図8(c)→図8(d)、のように順々に変化する。すなわち、右回りに腰を回したプレイヤーからは、ヒップロール判定リング540も右回りに回転しているかのように見える。同様に、左回りに腰を回したプレイヤーからは、ヒップロール判定リング540も左回りに回転しているかのように見える。従って、プレイヤーの動きに合ったゲームの演出が行われる。
【0142】
更に、CPU 101は、パターン記憶部301に記憶されるパターンに基づく推定結果に応じて、ヒップロール判定リング540の表示を変更する。CPU 101は、画像処理部108を制御して、画像802A〜802Dのうち推測された領域に対応する画像を、相対的に強調して表示する。
【0143】
例えば、検知された順序が[A,B,C]であり、次に操作される操作対象が「D」であると推定され、その後の基準時間内に次の操作が検出されない場合、ヒップロール判定リング540の表示は、図8(a)→図8(b)→図8(c)→図8(d)、のように順々に変化する。すなわち、右回りに腰を回したと見なされるプレイヤーからは、ヒップロール判定リング540も右回りに回転しているかのように見える。同様に、左回りに腰を回したと見なされるプレイヤーからは、ヒップロール判定リング540も左回りに回転しているかのように見える。従って、プレイヤーの動きに合っていると推測されるゲームの演出が行われる。
【0144】
なお、基準時間内に次の操作が検出された場合、CPU 101は、画像802A〜802Dのうち検出された荷重の重心位置が含まれる領域に対応する画像を、相対的に強調して表示するものとする。つまり、ヒップロール判定リング540の表示については、推測結果よりも、実際に検知された検知結果のほうが優先される。
【0145】
CPU 101は、プレイヤーが腰を回したと推定される向きに応じて、ヒップロール判定リング540の表示を変化させてもよい。
【0146】
図9(a)〜(d)は、ヒップロール判定リング540の他の例を示す図である。図9(a)〜(d)では、画像902A〜902Dは、プレイヤーが回転の向きを容易に認識できるデザインになっている。本例では“矢印”の絵が描かれている。
【0147】
例えば、検知された順序が[A,B,C]であり、プレイヤーが次に操作しようとする操作対象が「D」である、すなわち、プレイヤーは右回りに腰を回している、と推測された場合を考える。
【0148】
CPU 101は、1番目に「A」が操作されたことが検知されると、直ちに図9(a)に示すように画像902Aのみが強調されたヒップロール判定リング540を表示する。画像902A内に回転の向きを示す矢印が描かれることによって、画像902Aが他の画像902B,902C,902Dと比べて相対的に強調されている。
CPU 101は、2番目に「B」が操作されたことが検知されると、直ちに図9(b)に示すように画像902Bのみが強調されたヒップロール判定リング540を表示する。画像902B内に回転の向きを示す矢印が描かれることによって、画像902Bが他の画像902A,902C,902Dと比べて相対的に強調されている。
CPU 101は、3番目に「C」が操作されたことが検知されると、直ちに図9(c)に示すように画像902Cのみが強調されたヒップロール判定リング540を表示する。画像902C内に回転の向きを示す矢印が描かれることによって、画像902Cが他の画像902A,902B,902Dと比べて相対的に強調されている。
【0149】
CPU 101は、続けて検知された操作の順序[A,B,C]と、図4に示すようにパターン記憶部301に記憶された各パターンと、を比較し、最も類似しているパターン(図4の場合、グループRの項番1のパターン)を選択する。CPU 101は、プレイヤーがグループRに対応する動きをしている、つまり、プレイヤーが右回りに腰を回している、と推定する。
【0150】
そして、CPU 101は、プレイヤーが次に操作すると推定した操作対象「D」を表す画像として、図8(d)に示す画像802Dの代わりに、図9(d)に示す画像902Dを表示する。ゲーム画面には、右回転を連想させるデザインのヒップロール判定リング540が表示される。このように、ゲーム装置300は、検知結果もしくは推定結果をより詳しくプレイヤーに提示することができる。
【0151】
図9(a)〜(d)に例示されるヒップロール判定リング540を表す各画像902A〜902Dは、外部メモリ106に予め記憶されている。CPU 101は、推測処理を行った後、適宜画像902A〜902Dを読み出してゲーム画面に表示するものとする。
【0152】
図9(a)〜(d)には、プレイヤーが右回りに腰を回したと推定されるときに用いられるヒップロール判定リング540が示されているが、左回りについても同様であり、左回りを連想させるデザインのヒップロール判定リング540が画面に表示される。プレイヤーが左回りに腰を回したと推定されるときに用いられるヒップロール判定リング540も、外部メモリ106に予め記憶されているものとする。
【0153】
本実施形態によれば、プレイヤーは、荷重の検知結果あるいは推定結果を、明瞭に且つ直感的に認識することができる。また、ゲーム装置300は、プレイヤーに合ったゲームの演出もしくはプレイヤーに合っていると推測されるゲームの演出を行うことができ、ゲームの興趣性が向上する。
【0154】
上記説明では、CPU 101は、荷重の検知結果あるいは推定結果に応じてヒップロール判定リング540の表示を変更しているが、画像のデザインや画像の表示位置等を適宜変更した実施形態を採用することが可能である。
【0155】
なお、CPU 101は、領域202A〜202Dに対応付けられる画像902A〜902Dを、領域202A〜202Dの位置関係と一致するように表示することが望ましい。
【0156】
(実施形態3)
次に、本発明のその他の実施形態について説明する。本実施形態では、ゲーム装置300は、上述の基準時間を適宜変更することができる。
【0157】
図10は、本実施形態のゲーム装置300の機能的な構成を示す図である。ゲーム装置300は、計算部1001を更に備える。
【0158】
計算部1001は、検知部302によって検知された操作の時間間隔に基づいて、上述の基準時間を計算する。CPU 101が計算部1001として機能する。
【0159】
例えば、検知された順序が[A,B,C]であり、1番目の操作「A]が検知された時刻がT(A)、2番目の操作「B」が検知された時刻がT(B)、3番目の操作「C」が検知された時刻がT(C)であるとする。
【0160】
このとき、CPU 101は、時刻T(A)から時刻T(B)までの経過時間T(B−A)と、時刻T(B)から時刻T(C)までの経過時間T(C−B)と、に基づいて、プレイヤーが次に(4番目に)操作しようとする操作対象Xが操作される時刻を推定する。
【0161】
具体的には、CPU 101は、経過時間T(B−A)と経過時間(C−B)の平均値を計算する。そして、CPU 101は、時刻T(C)から、計算された平均値が示す時間が経過した後に、次の操作「X」が検知される、と推定する。
【0162】
あるいは、CPU 101は、時刻T(C)から、経過時間T(B−A)と経過時間T(C−B)のうちいずれか一方の時間が経過した後に、次の操作「X」が検知される、と推定してもよい。
【0163】
そして、CPU 101は、時刻T(C)から基準時間内に、すなわち時刻T(C)から計算された時刻までの間に、いずれの操作も検知部302によって検知されない場合、推定された次の操作対象を表す画像を表示する。
【0164】
例えば、検知された順序[A,B,C]と、パターン記憶部301に記憶された各パターンと、に基づいて、プレイヤーが次に操作しようとしている操作対象が「D」であると推定した場合、CPU 101は、時刻T(C)から基準時間内にいずれの操作も検知されなければ、時刻T(C)から計算された基準時間後に、推定される操作「D」を表す画像をモニターに表示する。
【0165】
なお、CPU 101は、時刻T(C)から基準時間内にいずれかの操作が検知されれば、推定結果をモニターに表示する代わりに、検知された時刻に、検知された操作を表す画像をモニターに表示する。
【0166】
ここでは、検知された3つの操作の時間間隔に基づいて基準時間を計算する例を説明したが、基準時間を計算するために用いる操作の数は3つに限定されない。
一般的な表現を用いれば、CPU 101は、検知されたN個(Nは2以上の整数)の操作に基づいて、N+1個目の操作が検知されるであろう時刻を推定する。
【0167】
CPU 101は、N個の操作同士の時間間隔の平均値、最大値、最小値、偏差、分散等の統計的なパラメータを計算することによって、N+1個目の操作が検知されるであろう時刻を推定することができる。
【0168】
本実施形態によれば、ゲーム装置300は、プレイヤーが行った動作に合わせて適切に次の操作を推定することができる。例えば、プレイヤーによって腰の回し方にクセがあることがあるが、ゲーム装置300は、プレイヤーのクセを考慮して次の操作を推定することができる。
【0169】
(実施形態4)
次に、本発明のその他の実施形態について説明する。本実施形態では、プレイヤーによる操作の履歴がゲーム装置300によって記憶され、推定処理に利用される。
【0170】
図11は、本実施形態のゲーム装置300の機能的な構成を示す図である。ゲーム装置300は、履歴記憶部1101を更に備える。
【0171】
履歴記憶部1101は、検知部302によって検知された操作の履歴を示す情報を記憶する。外部メモリ106もしくはRAM 103が履歴記憶部1101として機能する。
【0172】
より詳細には、CPU 101は、荷重センサによって検出された荷重の大きさを示す情報を、操作の順序の履歴として外部メモリ106もしくはRAM 103に追加して記憶していく。
【0173】
あるいは、CPU 101は、荷重センサによって検出された荷重の大きさを示す情報の直近の所定回数分を外部メモリ106もしくはRAM 103に記憶してもよい。
【0174】
また、CPU 101は、荷重センサによって検出された荷重の大きさを、検出された時刻と対応付けて外部メモリ106もしくはRAM 103に記憶してもよい。
【0175】
CPU 101は、荷重センサによって検出された荷重の大きさを、プレイヤーの識別情報(例えばプレイヤー名など)と対応付けて外部メモリ106もしくはRAM 103に記憶してもよい。この場合、プレイヤーは、コントローラ105等を用いてプレイヤー名等を入力あるいは選択し、CPU 101は、入力結果あるいは選択結果が示すプレイヤー名と対応付けて、検知結果を記憶すればよい。
【0176】
推定部303は、履歴記憶部1101に記憶される履歴に基づいて、プレイヤーが次に操作しようとする操作対象を推定する。
【0177】
具体的には、CPU 101は、上記の推定処理を行う際、履歴記憶部1101に記憶された履歴の中から、今回検知された順序と類似する順序を抽出する。そして、CPU 101は、抽出された履歴から、そのプレイヤーが次に操作しようとしている操作対象を推定する。これにより、ゲーム装置300は、プレイヤーの過去の実績に応じて適した推定を行うことができる。
【0178】
あるいは、CPU 101は、上記の推定処理を行う際、履歴記憶部1101に記憶された履歴のうち、現在ゲームをプレイしているプレイヤーに対応付けられる履歴を抽出する。そして、CPU 101は、抽出された履歴から、そのプレイヤーが次に操作しようとしている操作対象を推定する。これにより、複数のプレイヤーが同じゲーム装置300を使い回す状況においても、ゲーム装置300は、現在プレイしているプレイヤーに対応する履歴に基づいて、そのプレイヤーに適した推定を行うことができる。例えば、プレイヤーがプレイ後にゲーム装置300の電源をオフにし、翌日再びゲームをプレイし始めた場合、ゲーム装置300は、昨日の履歴を使って、そのプレイヤーに適した推定を行うことができる。
【0179】
(実施形態5)
次に、本発明のその他の実施形態について説明する。本実施形態では、操作対象が占める領域には、荷重の重心位置が含まれている場合に上記の推定処理を行う部分と、上記の推定処理を行わない部分とがある。
【0180】
図12は、コントローラ105の載台201を簡単に示した図である。載台201の表面は、4つの領域(領域202A,202B,202C,202D)に分かれている。
【0181】
また、4つの領域全体は、推定対象領域1200とそれ以外の領域とに分かれている。推定対象領域1200は、隣り合う操作対象の境界付近に設定される。推定対象領域1200の形状、数、配置の仕方等は、本発明によって限定されない。
【0182】
領域202A〜202Dには、所定の2次元座標系が予め定義される。推定対象領域1200と重心位置は、この座標系における座標値で表される。
【0183】
推定対象領域1200に荷重の重心位置が含まれている場合、プレイヤーの体重移動が十分ではなく、プレイヤーが意図して重心を移動した結果なのか、あるいは、周囲の振動やプレイヤーの動きのブレによって偶然重心が移動した結果なのか、はっきりしない可能性がある。
従って、ゲーム装置300は、推定対象領域1200に荷重の重心位置が含まれる場合には、上述の推定処理を行ってプレイヤーの動作を推定し、推定対象領域1200以外の部分に荷重の重心位置が含まれる場合には、上述の推定処理を行わずに荷重センサによる検知結果をそのままゲームの進行に使用する。
【0184】
本実施形態では、検知された順序とパターン記憶部301に記憶されるパターンとを常に比較するわけではないので、プレイヤーの動きを適切に推定してゲームを進めることができるだけでなく、CPU 101が行う処理の負荷を軽減することができる。
【0185】
本発明は、上述した実施形態に限定されず、種々の変形及び応用が可能である。また、上述した実施形態の各構成要素を自由に組み合わせることも可能である。
【0186】
上記各実施形態では、プレイヤーが次に操作しようとする操作対象を1つだけ推定しているが、プレイヤーが次以降に操作しようとする2つ以上の操作対象を推定するように構成してもよい。
【0187】
上記各実施形態では、バランスボード型のコントローラ105にかかる荷重の状態からプレイヤーの動きを推定しているが、タッチパッド型、把持型、マット型など他の形態のコントローラにおいて、ボタンやキー等がどの順序で押圧されたかに基づいて、プレイヤーが次に操作しようとする操作対象を推定することもできる。
【0188】
上記各実施形態では、コントローラ105における操作対象の配置(荷重センサの配置)と、ヒップロール判定リング540における画像802A〜802D(又は902A〜902D)の配置と、が一致するようにしているが、必ずしも一致していなくてもよい。
【0189】
図13は、ヒップロール判定リング540の変形例を表す図である。コントローラ105の領域202Aには画像1302Aが対応付けられ、コントローラ105の領域202Bには画像1302Bが対応付けられ、コントローラ105の領域202Cには画像1302Cが対応付けられ、コントローラ105の領域202Dには画像1302Dが対応付けられる。本図に示すように、操作対象の配置と画像1302A〜1302Dの配置とが一致していなくても、プレイヤーが腰を回したと判定されたか否か、腰の回転が右回りか左回りか、といったゲーム状況を、プレイヤーに分かりやすく提示することができる。
【0190】
上記のゲーム装置300の全部又は一部としてコンピュータを動作させるためのプログラムを、メモリカード、CD−ROM、DVD、MO(Magneto Optical disk)などのコンピュータ読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、上述の手段として動作させ、あるいは、上述の工程を実行させてもよい。
【0191】
さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。
【0192】
以上説明したように、本発明によれば、操作対象の操作状態に応じてプレイヤーの動きを推定するために好適なゲーム装置、ゲーム処理方法、ならびに、プログラムを提供することができる。
【符号の説明】
【0193】
100 情報処理装置
101 CPU
102 ROM
103 RAM
104 インターフェース
105 コントローラ
106 外部メモリ
107 DVD−ROMドライブ
108 画像処理部
109 音声処理部
110 NIC
201 載台
202A,202B,202C,202D 領域
203A,203B 基準立ち位置
251〜254 ボタン
300 ゲーム装置
301 パターン記憶部
302 検知部
303 推定部
500 ゲーム画面
501〜504 静止マーク
510A,510B,510C,510D 踏み位置指示マーク
520 ヒップロール指示マーク
530 ゲージ(ダンスメーター)
540 ヒップロール判定リング
701 表示部
802A〜802D、902A〜902D 画像
1001 計算部
1101 履歴記憶部
1200 推定対象領域

【特許請求の範囲】
【請求項1】
所定位置に配置される複数の操作対象の順序であって、プレイヤーによって操作されるべき操作対象を指定する当該順序のパターンが、予め複数記憶されるパターン記憶部と、
前記複数の操作対象のそれぞれについて、前記操作対象の操作状態を検知する検知部と、
前記操作対象が複数操作されたことが検知された場合、当該検知された操作の順序と、前記記憶されたパターンとに基づいて、前記プレイヤーが次に操作しようとする操作対象を推定する推定部と、
を備えることを特徴とするゲーム装置。
【請求項2】
請求項1に記載のゲーム装置であって、
前記検知部により検知される操作に基づいて基準時間が定められ、
前記推定部による推定がなされてから前記基準時間内にいずれの操作も検知されない場合、前記推定された次の操作対象を表す画像を表示し、前記推定部による推定がなされてから前記基準時間内にいずれかの操作が検知された場合、当該検知された操作対象を表す画像を表示する表示部を更に備える、
ことを特徴とするゲーム装置。
【請求項3】
請求項2に記載のゲーム装置であって、
前記検知された操作の時間間隔に基づいて前記基準時間を計算する計算部を更に備える、
ことを特徴とするゲーム装置。
【請求項4】
請求項1乃至3のいずれか1項に記載のゲーム装置であって、
前記検知された操作の順序の履歴を記憶する履歴記憶部を更に備え、
前記推定部は、前記推定された操作対象を、前記記憶される履歴に追加する、
ことを特徴とするゲーム装置。
【請求項5】
請求項1乃至4のいずれか1項に記載のゲーム装置であって、
前記推定部は、前記複数の操作対象のうち第1閾個数以上且つ第2閾個数以下の操作対象が順次操作されたことが検知された場合に、前記プレイヤーが次に操作しようとする操作対象を推定する、
ことを特徴とするゲーム装置。
【請求項6】
請求項1乃至5のいずれか1項に記載のゲーム装置であって、
前記検知部は、前記操作状態として、前記複数の操作対象のそれぞれについて、前記プレイヤーによる当該操作対象への荷重の大きさを検知し、
前記推定部は、前記検知された荷重の大きさのそれぞれに基づいて、前記プレイヤーが次に操作しようとする操作対象を推定する、
ことを特徴とするゲーム装置。
【請求項7】
請求項6に記載のゲーム装置であって、
前記推定部は、前記検知された荷重の大きさに基づいて、前記プレイヤーによる前記複数の操作対象への荷重の中心位置を求め、当該求められた中心位置に基づいて、前記プレイヤーが次に操作しようとする操作対象を推定する、
ことを特徴とするゲーム装置。
【請求項8】
請求項7に記載のゲーム装置であって、
前記複数の操作対象が占める領域内には、所定の推定対象領域が設定され、
前記推定部は、前記求められた中心位置が前記推定対象領域内にある場合に推定する、
ことを特徴とするゲーム装置。
【請求項9】
請求項1乃至8のいずれか1項に記載のゲーム装置であって、
前記検知部による検知結果と前記推定部による推定結果とに基づいてゲームを進行させるゲーム進行部を更に備える、
ことを特徴とするゲーム装置。
【請求項10】
記憶部、検知部、推定部を有するゲーム装置にて実行されるゲーム処理方法であって、
前記記憶部には、所定位置に配置される複数の操作対象の順序であって、プレイヤーによって操作されるべき操作対象を指定する当該順序のパターンが、予め複数記憶され、
前記検知部が、前記複数の操作対象のそれぞれについて、前記操作対象の操作状態を検知する検知ステップと、
前記推定部が、前記検知ステップにおいて前記操作対象が複数操作されたことが検知された場合、当該検知された操作の順序と、前記記憶されたパターンとに基づいて、前記プレイヤーが次に操作しようとする操作対象を推定する推定ステップと、
を備えることを特徴とするゲーム処理方法。
【請求項11】
コンピュータを、
所定位置に配置される複数の操作対象の順序であって、プレイヤーによって操作されるべき操作対象を指定する当該順序のパターンが、予め複数記憶されるパターン記憶部、
前記複数の操作対象のそれぞれについて、前記操作対象の操作状態を検知する検知部、
前記操作対象が複数操作されたことが検知された場合、当該検知された操作の順序と、前記記憶されたパターンとに基づいて、前記プレイヤーが次に操作しようとする操作対象を推定する推定部、
として機能させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate