説明

エンターテインメント装置、位置及びタイミング指示装置、映像制御方法、並びに、位置及びタイミング指示方法

【課題】 同一音声であっても、プレイヤが、音声に合わせて、異なるパターンの入力操作を行うことができるエンターテインメント装置を提供することである。
【解決手段】 プロセッサ31は、撮像されたグローブ7L及び7Rの動きに応じて、テレビジョンモニタ5に表示されたグローブ画像51L及び51Rを移動する。プロセッサ31は、位置指示オブジェクト53を、音楽に合わせて、経路58−1〜58−4のいずれかに出現させ、降下させる。どの経路58−1〜58−4に位置指示オブジェクト53を出現させるかは、ランダムに決定される。位置指示オブジェクト53がタイミング指示バンド55に到達したタイミングで、位置指示オブジェクト53にグローブ画像51L又は51Rを当てると、その位置指示オブジェクト53は画面奥に向かって打ち返され、プレイヤのパンチ動作は音楽に合ったものとなる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プレイヤに画面上で操作の位置及びタイミングを指示して、指示に合った操作をプレイヤに行わせるエンターテインメント装置及びその関連技術に関する。
【背景技術】
【0002】
本件出願人によるボールパドルゲーム装置が特許文献1に開示されている。特許文献1に開示されているボールパドルゲーム装置は、テレビジョンモニタに接続されるゲーム機を有する。このゲーム機には、4つのパドルキーが設けられる。そして、テレビジョンモニタのゲーム画面に、4つのパドルキーに対応して、4つのパドル図形が表示される。4つのパドル図形に対応した4つのボール移動経路を、ボールが移動する。パドルキーが押下されると、対応するパドル図形が、対応する移動経路のボールを打ち返す。パドルキーの位置及び操作タイミングとボールの経路及び移動タイミングとが合致すれば成功、そうでなければ失敗となる。ボールを音楽に合わせて落下させれば、プレイヤは、音楽と一緒にゲームを楽しむことができる。
【0003】
【特許文献1】特開2001−104635号
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、上記のボールパドルゲーム装置では、ボールの出現経路及び出現タイミングは、音楽に合わせて予め設定されている。このように、ボールの出現経路及び出現タイミングが音楽ごとに固定的に設定されているので、同一音楽では、プレイヤの入力操作も固定的になる。プレイヤが異なった入力操作を行いたい場合、音楽を変えればよい。しかしながら、ゲーム機に搭載された音楽の全てがプレイヤの好みに合っているとは限らない。一般に、プレイヤは、好みの音楽でプレイしたいはずである。仮に、カートリッジ等の記録媒体により、音楽及びゲームプログラムを提供したとしても、提供可能な音楽等には限りがある。なぜなら、メーカは、通常、市場に応じて、音楽等を選択・提供するからである。
【0005】
そこで、本発明は、同一音声であっても、プレイヤが、音声に合わせて、異なるパターンの入力操作を行うことができるエンターテインメント装置及びその関連技術を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の第1の観点によれば、エンターテインメント装置は、プレイヤからの入力に応答する操作オブジェクトを表示装置に表示する第1制御手段と、前記操作オブジェクトを合わせるべき位置を指示する位置指示オブジェクトの出現位置又は第1の所定の変化を開始する位置をランダムに決定する位置決定手段と、前記位置決定手段が決定した位置で、音声に応じて、前記位置指示オブジェクトの出現又は前記第1の所定の変化を開始する第2制御手段と、前記位置指示オブジェクトが所定の状態に達するタイミングで、前記操作オブジェクトの位置が、前記位置指示オブジェクトの位置と実質的に一致したか否かを判断する判断手段と、前記判断手段が一致したと判断した場合、エフェクトを生成するエフェクト手段と、を備える。
【0007】
この構成によれば、位置指示オブジェクトの出現位置や変化開始位置がランダムに決定される。つまり、位置指示オブジェクトには、その出現位置や変化開始位置が動的に割り当てられる。従って、同一音声であっても、プレイヤに異なるパターンの入力動作を行わせることができる。しかも、位置指示オブジェクトの出現や変化開始は音声に応じて実行されるので、プレイヤに音声に応じた入力を行わせることができる。以上により、プレイヤは、同一音声であっても、異なるパターンの入力を、音声に合わせて行うことができる。
【0008】
ここで、「第1の所定の変化」とは、位置の所定の変化及び形態の所定の変化を含む意味である。「所定の状態」とは、位置が所定の位置になること及び形態が所定の形態になることを含む意味である。これらの定義において、「形態」とは、形状、模様及び色彩を含む意味である。「音声(audio)」とは、音楽、音響、ボイス及びサウンド等の音を意味する。
【0009】
このエンターテインメント装置は、撮像により得られた画像に基づいて、三次元空間中の前記プレイヤの動きを検出する検出手段をさらに備え、前記第1制御手段は、検出された前記プレイヤの動きに応答する前記操作オブジェクトを表示する。
【0010】
この構成によれば、三次元空間中のプレイヤの動き、つまり、プレイヤの任意の動きに基づいて操作オブジェクトが応答するので、操作オブジェクトは画面の任意の位置に移動又は出現することができる。従って、位置指示オブジェクトの出現位置や変化開始位置がランダムに決定される場合に好適である。
【0011】
このエンターテインメント装置において、前記検出手段は、前記プレイヤの動きを撮像した画像に基づいて、三次元空間中の前記プレイヤの動きを検出する。
【0012】
この構成によれば、プレイヤの動きを撮影して入力とするので、プレイヤは電子機器を操作して入力を行う必要がない。このため、電子機器の把持等が不要であり、身体を動かして入力を行うエンターテインメント装置に好適である。また、プレイヤは撮像範囲内であれば、特に制限を受けることなく、自由に体を動かすことができ、大きな動きをすることができる。その結果、本システムを用いたプレイが運動につながり、ひいては、運動不足の解消や健康の維持・増進に貢献できる。
【0013】
このエンターテインメント装置において、前記検出手段は、前記プレイヤが動かす再帰反射体を撮像する側から所定の光を照射した時に撮像した画像に基づいて、三次元空間中の前記プレイヤの動きを検出する。
【0014】
この構成によれば、光を再帰反射する再帰反射体を撮像するので、撮像画像に写り込んだ再帰反射体の像の抽出が容易になり、再帰反射体、つまり、プレイヤの動きを高速かつ精度良く検出できる。また、再帰反射体には電子機器や機構等が不要であるため、再帰反射体の形状や位置等に制限はなく、それらを任意の決定できる。
【0015】
このエンターテインメント装置において、前記検出手段は、前記所定の光を照射した時に撮像した画像と、前記所定の光を消灯した時に撮像した画像と、の差分画像に基づいて、三次元空間中の前記プレイヤの動きを検出する。
【0016】
この構成によれば、再帰反射体からの反射光以外の光を簡易に除去でき、より高速かつ精度良くプレイヤの動きを検出できる。
【0017】
また、上記エンターテインメント装置において、前記検出手段は、前記表示装置の画面の縁に沿って配置された複数のマーカを前記プレイヤが動かす撮像装置により撮像した画像に基づいて、三次元空間中の前記プレイヤの動きを検出することもできる。
【0018】
この構成によれば、プレイヤが撮像装置を向けている方向が分かるので、その方向に応じた位置に操作オブジェクトを表示できる。
【0019】
上記エンターテインメント装置は、各々前記プレイヤの入力操作を検出する所定数の入力部を有し、前記各入力部からの操作信号を受け付ける検出手段をさらに備え、前記第1制御手段は、前記操作信号に応答する前記操作オブジェクトを表示することもできる。
【0020】
この構成によれば、操作信号により、操作オブジェクトを制御しているので、動きの検知のための画像処理等が不要で、処理負荷を軽減できる。
【0021】
上記エンターテインメント装置は、前記操作オブジェクトを前記位置指示オブジェクトの位置に合わせるタイミングを指示するタイミング指示オブジェクトを表示する第3制御手段をさらに備える。
【0022】
この構成によれば、タイミング指示オブジェクトにより、操作オブジェクトを位置指示オブジェクトの位置に合わせるタイミングが指示されるので、プレイヤにとって、操作オブジェクトの操作タイミングが分かり易くなる。
【0023】
このエンターテインメント装置において、前記第2制御手段は、前記位置指示オブジェクトを、前記タイミング指示オブジェクトの位置に向かって移動又は前記タイミング指示オブジェクトの形態に向かって変化させ、前記所定の状態に達するタイミングは、前記位置指示オブジェクトが前記タイミング指示オブジェクトに達するタイミングであり、前記第2制御手段は、前記位置指示オブジェクトが前記タイミング指示オブジェクトに達するタイミングが前記音声に合うように、前記位置指示オブジェクトを制御する。
【0024】
この構成によれば、プレイヤにとって位置指示オブジェクトの出現や変化開始の時期及び位置を予測することは不可能又は困難であるが、位置指示オブジェクトはタイミング指示オブジェクトに向かって移動又は変化し、指示されるタイミングまで時間があるので、プレイヤは操作オブジェクトを位置指示オブジェクトに合わせる位置及び時期を予測することができる。従って、プレイヤは音声に合わせた滑らかな動きを行い易くなる。ここで、「形態」とは、形状、模様及び色彩を含む意味である。
【0025】
このエンターテインメント装置において、前記第3制御手段は、前記位置指示オブジェクトが前記所定の状態に達するタイミングで、前記タイミング指示オブジェクトに所定の結果を引き起こす。
【0026】
この構成によれば、位置指示オブジェクトが所定の状態に達するタイミングで、つまり、プレイヤに指示する操作タイミングで、所定の結果を引き起こすように、タイミング指示オブジェクトが制御される。このように、タイミング指示オブジェクトの変化により、操作のタイミングが指示されるので、プレイヤは、タイミング指示オブジェクトだけで操作のタイミングを認識できる。このため、位置指示オブジェクトの位置との関連で初めて操作のタイミングを指示できるタイミング指示オブジェクトと比較して、プレイヤは直感的に操作のタイミングを認識でき、操作のリズムないしはテンポをとり易い。操作の位置は、プレイヤは位置指示オブジェクトを見ることで認識できる。
【0027】
上記エンターテインメント装置において、前記音声は予め定められた音声である。
【0028】
この構成によれば、音楽等の音声が予め定められているので、外部から任意の音声を入力する場合と比較して、ソフトウェア及びハードウェアを簡素化できる。ちなみに、外部から任意の音声を入力する場合、音声に合わせて位置指示オブジェクトを制御するためには、音声の解析が必要になり、ソフトウェア及びハードウェアが複雑化する。
【0029】
また、上記エンターテインメント装置において、前記音声は、外部から入力される音声であってもよい。
【0030】
この構成によれば、外部から音楽等の音声を入力できるので、プレイヤは、自分の好きな音声でプレイしたり、また、飽きた場合は異なる音声を入力してプレイできる。
【0031】
このエンターテインメント装置において、前記第2制御手段は、外部から入力される前記音声を解析して、当該音声中の周期的な反復を検出し、当該周期的な反復の起点の発生タイミングを予測する予測手段と、予測された前記発生タイミングで、前記位置指示オブジェクトが前記所定の状態に達するように、前記位置指示オブジェクトの制御を実行する実行手段と、を含む。
【0032】
この構成によれば、外部入力の音声の周期的な反復の起点(例えばビート)の発生タイミングを予測し、予測結果に基づいて位置指示オブジェクトを制御するので、リアルタイム処理が可能となって、音声を一旦格納し分析した後に音声を再生して位置指示オブジェクトを制御する場合と比較して、メモリ等の記憶手段の規模を小さくできるし、また、格納された音声を再生するための装置は不要であり、コストの削減を図ることができる。なお、入力された音声を一旦格納し分析した後に音声を再生して位置指示オブジェクトを制御する場合は、格納、分析、再生のために、遅延が発生し、リアルタイム処理と言えない。
【0033】
また、音声の周期的な反復の起点の発生タイミングを予測しているので、リアルタイム処理を行いながらも、将来発生する、音声の周期的な反復の起点(例えばビート)で、位置指示オブジェクトを所定の状態にすることができる。
【0034】
このエンターテインメント装置において、前記実行手段は、予測された前記発生タイミングで、前記位置指示オブジェクトが前記所定の状態に達するように、前記位置指示オブジェクトの位置及び/又は形態の変化を制御する。ここで、「形態」とは、形状、模様及び色彩を含む意味である。
【0035】
このエンターテインメント装置において、前記実行手段は、予測された前記発生タイミングに基づいて、前記位置指示オブジェクトの変化開始タイミング、画面への出現タイミング、軌道、速度及び加速度のうちの少なくとも1つを決定し、決定結果に基づいて、前記位置指示オブジェクトの位置及び/又は形態の変化を制御する。
【0036】
ここで、「変化開始タイミング」とは、位置の変化開始タイミング及び形態の変化開始タイミングを含む意味である。「形態」とは、形状、模様及び色彩を含む意味である。
【0037】
本発明の第2の観点によれば、位置及びタイミング指示装置は、表示装置の画面上で、操作の位置及びタイミングを指示する位置及びタイミング指示装置であって、前記画面上で前記操作の位置を指示する位置指示オブジェクトを制御する第1制御手段と、前記画面上で前記操作のタイミングを指示するタイミング指示オブジェクトを制御する第2制御手段と、を備え、前記第1制御手段は、前記位置指示オブジェクトの位置又は形態を所定状態に向かって変化させ、前記第2制御手段は、前記位置指示オブジェクトが前記所定状態に達するタイミングで、前記タイミング指示オブジェクトに所定の結果を引き起こし、前記タイミング指示オブジェクトが前記所定の結果を引き起こした時が、前記操作のタイミングである。
【0038】
この構成によれば、プレイヤに指示する操作タイミングで所定の結果を引き起こすように、タイミング指示オブジェクトが制御される。このように、タイミング指示オブジェクトの変化により、操作のタイミングが指示されるので、プレイヤは、タイミング指示オブジェクトだけで操作のタイミングを認識できる。このため、位置指示オブジェクトの位置との関連で初めて操作のタイミングを指示できるタイミング指示オブジェクトと比較して、プレイヤは直感的に操作のタイミングを認識でき、操作のリズムないしはテンポをとり易い。操作の位置は、プレイヤは位置指示オブジェクトを見ることで認識できる。ここで、「形態」とは、形状、模様及び色彩を含む意味である。
【0039】
例えば、前記第2制御手段は、前記位置指示オブジェクトと前記所定状態との間の関係が第1所定関係になった時に、前記タイミング指示オブジェクトを出現又は変化を開始し、前記位置指示オブジェクトが前記所定状態に達したタイミングで前記タイミング指示オブジェクトに前記所定の結果を引き起こし、前記位置指示オブジェクトが前記所定状態を通過した後、前記位置指示オブジェクトと前記所定状態との間の関係が第2所定関係になった時に、前記タイミング指示オブジェクトを消滅又は変化を停止する。
【0040】
上記位置及びタイミング指示装置において、前記第1制御手段は、前記位置指示オブジェクトが前記所定状態に達するタイミングが音声に合うように、前記位置指示オブジェクトを制御する。
【0041】
この構成によれば、位置指示オブジェクトが指示する位置及び所定状態に達するタイミングで操作を行うことにより、音声に合った操作を行うことができる。
【0042】
この位置及びタイミング指示装置において、前記音声は、外部から入力される音声である。
【0043】
この構成によれば、外部から音楽等の音声を入力できるので、プレイヤは、自分の好きな音声でプレイしたり、また、飽きた場合は異なる音声を入力してプレイできる。
【0044】
また、上記位置及びタイミング指示装置において、前記音声は予め定められた音声であってもよい。
【0045】
この構成によれば、音楽等の音声が予め定められているので、外部から任意の音声を入力する場合と比較して、ソフトウェア及びハードウェアを簡素化できる。ちなみに、外部から任意の音声を入力する場合、音声に合わせて位置指示オブジェクトを制御するためには、音声の解析が必要になり、ソフトウェア及びハードウェアが複雑化する。また、音声が予め定められているので、その音声に最適な位置指示オブジェクト及びタイミング指示オブジェクトの表示が可能になる。
【0046】
上記位置及びタイミング指示装置は、プレイヤからの入力に応答する操作オブジェクトを前記表示装置に表示する第3制御手段をさらに備え、前記位置指示オブジェクトは、前記操作オブジェクトを合わせるべき位置を指示し、前記タイミング指示オブジェクトは、前記操作オブジェクトを前記位置指示オブジェクトの位置に合わせるタイミングを指示する。
【0047】
この構成によれば、プレイヤは、操作オブジェクトを、タイミング指示オブジェクトが指示するタイミングで位置指示オブジェクトに合わせることにより、指示に合った入力操作を行うことができる。例えば、位置指示オブジェクトが所定状態に達するタイミングが音声に合うように、位置指示オブジェクトが制御される場合、プレイヤは、操作オブジェクトを、タイミング指示オブジェクトが指示するタイミングで位置指示オブジェクトに合わせることにより、音声に合った入力操作を行うことができる。
【0048】
この位置及びタイミング指示装置は、撮像により得られた画像に基づいて、三次元空間中の前記プレイヤの動きを検出する検出手段をさらに備え、前記第3制御手段は、検出された前記プレイヤの動きに応答する前記操作オブジェクトを表示する。
【0049】
この構成によれば、三次元空間中のプレイヤの動き、つまり、プレイヤの任意の動きに基づいて操作オブジェクトが応答するので、操作オブジェクトは画面の任意の位置に移動又は出現することができる。従って、操作オブジェクトを位置指示オブジェクトに合わせる位置がランダムに決定される場合に好適である。
【0050】
また、上記位置及びタイミング指示装置は、各々前記プレイヤの入力操作を検出する所定数の入力部を有し、前記各入力部からの操作信号を受け付ける検出手段をさらに備え、前記第3制御手段は、前記操作信号に応答する前記操作オブジェクトを表示することもできる。
【0051】
この構成によれば、操作信号により、操作オブジェクトを制御しているので、動きの検知のための画像処理等が不要で、処理負荷を軽減できる。
【0052】
本発明の第3の観点によれば、映像制御方法は、プレイヤからの入力に応答する操作オブジェクトを表示装置に表示するステップと、前記操作オブジェクトを合わせるべき位置を指示する位置指示オブジェクトの出現位置又は第1の所定の変化を開始する位置をランダムに決定するステップと、決定した前記位置で、音声に応じて、前記位置指示オブジェクトの出現又は前記第1の所定の変化を開始するステップと、前記位置指示オブジェクトが所定の状態に達するタイミングで、前記操作オブジェクトの位置が、前記位置指示オブジェクトの位置と実質的に一致したか否かを判断するステップと、一致したと判断した場合、エフェクトを生成するステップと、を含む。
【0053】
この構成によれば、上記第1の観点によるエンターテインメント装置と同様の効果を奏する。
【0054】
本発明の第4の観点によれば、位置及びタイミング指示方法は、表示装置の画面上で、操作の位置及びタイミングを指示する位置及びタイミング指示方法であって、前記画面上で前記操作の位置を指示する位置指示オブジェクトを制御するステップと、前記画面上で前記操作のタイミングを指示するタイミング指示オブジェクトを制御するステップと、を含み、前記位置指示オブジェクトを制御する前記ステップは、前記位置指示オブジェクトの位置又は形態を所定状態に向かって変化させるステップを含み、前記タイミング指示オブジェクトを制御するステップは、前記位置指示オブジェクトが前記所定状態に達するタイミングで、前記タイミング指示オブジェクトに所定の結果を引き起こすステップを含み、前記タイミング指示オブジェクトが前記所定の結果を引き起こした時が、前記操作のタイミングである。
【0055】
この構成によれば、上記第2の観点による位置及びタイミング指示装置と同様の効果を奏する。
【発明を実施するための最良の形態】
【0056】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、図中、同一または相当部分については同一の参照符号を付してその説明を援用する。
【0057】
図1は、本発明の実施の形態によるエンターテインメントシステムの全体構成を示す図である。図1に示すように、このエンターテインメントシステムは、アダプタ1、カートリッジ3、グローブ型入力具7L(図には現れていない。)、グローブ型入力具7R、及びテレビジョンモニタ5を備える。以下、グローブ型入力具7L及び7Rをそれぞれグローブ7L及び7Rと呼ぶ。
【0058】
アダプタ1には、カートリッジ3が装着される。また、アダプタ1には、ケーブル42により、デジタルオーディオプレーヤ44が接続される。従って、デジタルオーディオプレーヤ44が再生したオーディオ信号は、アダプタ1を介してカートリッジ3に与えられる。
【0059】
アダプタ1は、AVケーブル9により、テレビジョンモニタ5に接続される。従って、カートリッジ3からのビデオ信号及びオーディオ信号は、アダプタ1及びAVケーブル9を介して、テレビジョンモニタ5に与えられる。
【0060】
グローブ7L及びグローブ7Rは、それぞれ、プレイヤの左手及び右手に装着される。
【0061】
図2は、図1のグローブ7Rの斜視図である。図2を参照して、グローブ7Rの表面には、受けた光を再帰反射する再帰反射シート11Rが取り付けられる。この再帰反射シート11Rは、グローブ7Rの底部にまわり込んで取り付けられる。なお、図示は省略したが、グローブ7Lの構成は、グローブ7Rと左右対称の構成であり、同様に、その表面に再帰反射シート11Lが取り付けられる。
【0062】
図3は、図1のカートリッジ3の斜視図である。図3を参照して、カートリッジ3は、平たい直方体状の本体および撮像ユニット13からなる。カートリッジ3の本体上面には、撮像ユニット13が取付けられる。この場合、撮像ユニット13の表面が、カートリッジ3の表面に対して所定角度(例えば40度)傾斜するように取り付けられる。撮像ユニット13の表面中央部には、赤外光のみを透過する円形の赤外線フィルタ15が取り付けられ、それを取り囲むように、4個の赤外発光ダイオード17が配置される。なお、赤外線フィルタ15の後ろ側に、後述のイメージセンサ37が配置される。
【0063】
図4は、図1のカートリッジ3の電気的構成を示す図である。図4を参照して、カートリッジ3は、プロセッサ31、外部メモリ33、MCU(Micro Controler Unit)35、イメージセンサ37、赤外発光ダイオード17、ローパスフィルタ(LPF)39、並びに、ミキシング回路41L,41R及び43を含む。プロセッサ31、外部メモリ33、MCU35、ローパスフィルタ39、並びに、ミキシング回路41L,41R及び43は、カートリッジ本体に内蔵される。イメージセンサ37は、撮像ユニット13に内蔵され、赤外発光ダイオード17は、撮像ユニット13に取り付けられ、その発光部が露出している。
【0064】
プロセッサ31には、外部メモリ33が接続される。外部メモリ33は、例えば、フラッシュメモリ、ROM、及び/又はRAM等により構成される。外部メモリ33は、プログラム領域、画像データ領域、および音声データ領域を含む。プログラム領域には、後述のフローチャートに示す各種処理をプロセッサ31に実行させる制御プログラムが格納される。画像データ領域には、テレビジョンモニタ5に表示される画面を構成するすべての画像データや、他の必要な画像データが格納されている。音声データ領域には、効果音等ための音声データが格納されている。プロセッサ31は、プログラム領域の制御プログラムを実行して、画像データ領域の画像データ及び音声データ領域の音声データを読み出し、必要な処理を施して、ビデオ信号VD並びにオーディオ信号ALI及びARIを生成する。ビデオ信号VDは、AVケーブル9を通して、テレビジョンモニタ5に与えられる。オーディオ信号ALI及びARIは、それぞれ、ミキシング回路41L及び41Rに与えられる。
【0065】
プロセッサ31は、図示しないが、CPU(Central Processing Unit)、グラフィックスプロセサ、サウンドプロセサおよびDMAコントローラ等の各種機能ブロックを含むとともに、アナログ信号を取り込むときに用いられるA/Dコンバータ、赤外線信号やキー操作信号のような入力デジタル信号を受けかつ出力デジタル信号を外部機器に与える入出力制御回路、及び内部メモリ等を含む。
【0066】
CPUは、外部メモリ33に格納された制御プログラムを実行する。A/Dコンバータからのデジタル信号および入出力制御回路からのデジタル信号はCPUに与えられ、CPUは、制御プログラムに従って、それらの信号に応じて必要な演算を実行する。グラフィックスプロセサは、外部メモリ33に格納された画像データに対して、CPUの演算結果によって必要になったグラフィック処理を実行して、テレビジョンモニタ5に表示する画像を表すビデオ信号VDを生成する。サウンドプロセサは、外部メモリ33に格納された音声データに対して、CPUの演算結果によって必要になったサウンド処理を実行して、効果音等を表すオーディオ信号ALI及びARIを生成する。内部メモリは、例えば、RAMにより構成され、ワーキング領域、カウンタ領域、レジスタ領域、テンポラリデータ領域、及び/又はフラグ領域等として利用される。
【0067】
イメージセンサ37は、例えば、64画素×64画素のCMOSイメージセンサである。イメージセンサ37は、プロセッサ31からの制御を受けて動作する。具体的には、次の通りである。イメージセンサ37は、赤外発光ダイオード17を間欠的に駆動する。従って、赤外発光ダイオード17は、間欠的に赤外光を発光する。これにより、グローブ7L及び7Rの再帰反射シート11L及び11Rには、間欠的に赤外光が照射される。イメージセンサ37は、赤外光点灯時及び消灯時のそれぞれにおいて、再帰反射シート11L及び11Rを撮影する。そして、イメージセンサ37は、赤外光点灯時の画像信号と赤外光消灯時の画像信号との差分画像信号を生成して、プロセッサ31に出力する。差分画像信号を求めることで、再帰反射シート11L及び11Rからの反射光以外の光によるノイズを極力除去でき、精度良く再帰反射シート11L及び11Rを検出できる。
【0068】
MCU35は、デジタル信号処理の演算を高速に行うためのDSP(Digital Signal Processor)を有する。デジタルオーディオプレーヤ44からのオーディオ信号ALE0及びARE0は、MCU35に与えられる。MCU35は、アナログのオーディオ信号ALE0及びARE0をデジタル信号に変換して、パルス幅変調(PWM:Pulse Width Modulation)を行い、PWM信号としてオーディオ信号ALE1及びARE1を生成し、ローパスフィルタ39に出力する。MCU35は、パルス幅変調を行う際に、プロセッサ31からの要求に応じて、ボリューム調整を行う。
【0069】
PWM信号であるオーディオ信号ALE1及びARE1は、ローパスフィルタ39によって、アナログのオーディオ信号ALE2及びARE2に変換され、それぞれ、ミキシング回路41L及び41Rに与えられる。
【0070】
ミキシング回路41Lは、プロセッサ31からのオーディオ信号ALIとローパスフィルタ39からのオーディオ信号ALE2(デジタルオーディオプレーヤ44から入力されたオーディオ信号ALE0に相当)とをミキシングして、オーディオ信号ALMとして出力する。ミキシング回路41Rは、プロセッサ31からのオーディオ信号ARIとローパスフィルタ39からのオーディオ信号ARE2(デジタルオーディオプレーヤ44から入力されたオーディオ信号ARE0に相当)とをミキシングして、オーディオ信号ARMとして出力する。オーディオ信号ALM及びARMは、AVケーブル9によりテレビジョンモニタ5に与えられる。
【0071】
ミキシング回路43は、デジタルオーディオプレーヤ44からのオーディオ信号ALE0とARE0とをミキシングして、オーディオ信号ALRとして、MCU35に与える。MCU35は、アナログのオーディオ信号ALRをデジタル信号に変換して、その解析を行う。具体的には、MCU35は、オーディオ信号ALRのビート(外部ビート)を検出し、新たにビート(内部ビート)を生成する。なお、一般に、ビートは、拍と呼ばれる。また、MCU35は、オーディオ信号ALRに対して、FFT(Fast Fourier Transform)を実行し、パワースペクトルを求める。さらに、MCU35は、所定時間(以下、この1所定時間を1フレームと呼ぶ。)におけるオーディオ信号ALRの最大値を検出する。なお、本実施の形態では、例えば、1フレームを1/60秒とする。
【0072】
ところで、後述するが、プロセッサ31は、ビデオ同期信号に基づく割り込みに同期して、テレビジョンモニタ5に表示する画面を更新する(図16のステップS15参照)。この場合の割り込みは、一定時間ごとに発生する(以下、この1一定時間を1ビデオフレームと呼ぶ。)。本実施の形態では、例えば、1ビデオフレームを1/60秒とする。このように、本実施の形態では、MCU35における1フレームとプロセッサ31における1ビデオフレームとを一致させている。このため、両者を区別する必要がない場合は、双方を単にフレームと呼ぶこともある。
【0073】
MCU35は、プロセッサ31からの要求に応じて、1フレーム毎に、音声関連データをプロセッサ31に送信する。音声関連データは、ビートビット、パワー及び1フレームにおけるオーディオ信号ALRの最大値を含む。ビートビットは、内部ビート生成時に「1」にセットされ、それ以外では「0」にセットされる。従って、ビートビットの「1」から次の「1」までの時間が、内部ビートの間隔になる。なお、一般に、ビート間隔は、テンポと呼ばれる。また、パワーは、パワースペクトルのうち、プロセッサ31が要求した周波数のパワーである。
【0074】
次に、本エンターテインメントシステムにより提供されるコンテンツの一例を説明する。
【0075】
図5は、図1のテレビジョンモニタ5に表示されたプレイ画面の例示図である。図5を参照して、プロセッサ31がテレビジョンモニタ5に表示するプレイ画面は、グローブ画像51L及び51Rを含む。プロセッサ31は、再帰反射シート11Lの動きに応じて、グローブ画像51Lを移動し、再帰反射シート11Rの動きに応じて、グローブ画像51Rを移動する。従って、プレイヤは、グローブ7L及び7Rを動かすことによって、画面中のグローブ画像51L及び51Rを操作できる。また、実際には表示されないが、プレイ画面には、垂直方向に延びる4本の経路58−1〜58−4及びそれらに垂直な基準線57が設定される。
【0076】
ここで、画面中心を原点とし、水平方向をx軸、垂直方向をy軸とした二次元座標を設定する。グローブ7Lの再帰反射シート11Lの動きが所定の条件を満足すると、プレイヤがパンチを放ったと判断され、画面奥に向かって移動するグローブ画像51Lのアニメーション(パンチアニメーション)が表示される。この場合、グローブ画像51Lのx座標は、差分画像上の再帰反射シート11Lの水平座標に応じて設定される。ただし、グローブ画像51Lのアニメーションの最終的な(一番奥の)y座標は、基準線57のy座標に一致するように設定される。また、グローブ画像51Lの軌道は、パンチの種類(ストレート、クロス)に応じて決定される。
【0077】
グローブ画像51Rの制御は、グローブ7Rに基づき、グローブ画像51Lと同様に行われる。
【0078】
なお、グローブ7L及び7Rを包括してグローブ7と呼ぶこともある。再帰反射シート11L及び11Rを包括して再帰反射シート11と呼ぶこともある。グローブ画像51L及び51Rを包括してグローブ画像51と呼ぶこともある。経路58−1〜58−4を包括して経路58と呼ぶこともある。
【0079】
プロセッサ31は、位置指示オブジェクト53を画面上端に出現させ、基準線57に向かって、経路58に沿って、一定速度で下降させる。この場合、プロセッサ31は、位置指示オブジェクト53が基準線57に到達した時に、デジタルオーディオプレーヤ44からのオーディオ信号ALRのビートに一致するように、位置指示オブジェクト53を画面上端に出現させる。従って、プレイヤが、グローブ7を動かして、位置指示オブジェクト53が基準線57に到達したタイミングで、グローブ画像51を当該位置指示オブジェクト53に当てることができれば、デジタルオーディオプレーヤ44からのオーディオ信号ALRのビートに合っていることになる。言い換えれば、プレイヤが、グローブ7を動かし、グローブ画像51を操作して、基準線57の位置でタイミング良く、位置指示オブジェクト53に当てる動作を繰り返えせば、必然的に、デジタルオーディオプレーヤ44からのオーディオ信号ALRに基づく音楽に合わせて、グローブ7を動かしていることになる。
【0080】
プロセッサ31は、位置指示オブジェクト53を出現させる経路58を4本の中からランダムに決定する。このように、位置指示オブジェクト53には経路58が動的に割り当てられるので、音楽の異同に関係なく、常に、プレイヤに異なるパターンの入力動作を行わせることができる。しかも、位置指示オブジェクト53の出現タイミングは音楽に応じて決定されるので、プレイヤに音楽に応じた入力を行わせることができる。
【0081】
また、プロセッサ31は、グローブ画像51を位置指示オブジェクト53に当てるタイミングをプレイヤに明示すべく、タイミング指示オブジェクト(以下、「タイミング指示バンド」と呼ぶ。)55を表示する。
【0082】
図6は、図5のタイミング指示バンド55の説明図である。図6を参照して、直線Pは、位置指示オブジェクト53の位置Pと時間との関係を示す。折線Wは、タイミング指示バンド55の幅Wと時間との関係を示す。プロセッサ31は、移動開始位置から位置指示オブジェクト53の移動を開始し、画面の消滅位置に向かって、経路58に沿って、一定速度で下降させる。この場合、プロセッサ31は、位置指示オブジェクト53と基準線57との間の距離がLになった時に、タイミング指示バンド55の表示を開始し、位置指示オブジェクト53の基準線57への接近に伴って、その幅Wを大きくし、位置指示オブジェクト53が基準線57に到達した時に、その幅Wを最大とする。そして、さらに、プロセッサ31は、位置指示オブジェクト53が基準線57から離れるに従って、その幅Wを小さくし、位置指示オブジェクト53と基準線57との間の距離がLになった時に、タイミング指示バンド55の表示を終了する。
【0083】
プレイヤは、区間HAのタイミングで、つまり、概ねタイミング指示バンド55が表示されている間に、グローブ7を動かしてグローブ画像51を、タイミング指示バンド55に重なった位置指示オブジェクト53に当てると、位置指示オブジェクト53が画面奥に向かって打ち返される。位置指示オブジェクト53を基準線57に完全に一致したタイミングで打ち返すことができなかった場合でも、区間HAのタイミングで位置指示オブジェクト53を打ち返すことができれば、人間の感覚では、グローブ7を動かす動作は、オーディオ信号ALRのビートに一致する。
【0084】
以上のように、位置指示オブジェクト53は、グローブ画像51による打撃の水平位置(x軸方向)を、下降する経路58によって示す。また、タイミング指示バンド55は、グローブ画像51による打撃のタイミング及び垂直位置(y軸方向)を示す。
【0085】
なお、タイミング指示バンド55の幅Wは、位置指示オブジェクト53と基準線57との間の距離に応じて制御される。また、位置指示オブジェクト53は、それが基準線57に到達するタイミングがオーディオ信号ALRのビートに合うように制御される。よって、タイミング指示バンド55の幅Wもまた、音楽に合わせて制御されると言える。
【0086】
ここで、楽曲の種類に関係なく、位置指示オブジェクト53は一定速度で下降する。そして、位置指示オブジェクト53の移動開始位置から基準線57までの下降時間を、ビート間隔に一致させている。デジタルオーディオプレーヤ44から入力されるオーディオ信号ALRのビートは、再生する楽曲によって異なってくる。従って、プロセッサ31は、オーディオ信号ALRのビート間隔に応じて、位置指示オブジェクト53の移動開始位置を調整する。つまり、オーディオ信号ALRのビート間隔が短いほど、移動開始位置は基準線57に近くなるし、ビート間隔が長いほど、移動開始位置は基準線57から遠くなる。従って、ビート間隔によっては、画面の上端が丁度、移動開始位置になる場合もあるし、画面の中に移動開始位置がある場合もあるし、画面の外に移動開始位置がある場合もある。
【0087】
次に、図面を参照しながら、MCU35によるオーディオ信号ALRの解析方法を説明する。
【0088】
MCU35は、例えば、サンプリング周波数50kHzでオーディオ信号ALRを取り込む。そして、MCU35は、1フレームにおけるオーディオ信号ALRの最大値をフレーム毎に取得する。さらに、MCU35は、今回のフレームにおけるオーディオ信号ALRの最大値から、前回のフレームにおけるオーディオ信号ALRの最大値を減算し、差分音声信号Dfを得る。ただし、得られた差分音声信号Dfのレベルが0以下の場合は、その差分音声信号Dfは0に設定される。従って、前フレームと比較して、オーディオ信号ALRのレベルが上昇した場合にのみ、差分音声信号Dfのレベルは0より大きくなる。
【0089】
図7(a)は、図1のMCU35に入力される音声信号ALRの波形図である。図7(a)を参照して、縦軸はデジタルオーディオプレーヤ44から入力されたオーディオ信号ALRのレベルを示し、横軸は時間tを示す。時間tの単位はフレームである。ただし、図示のオーディオ信号ALRは、1フレームにおける最大値である。図7(b)は、図7(a)の波形から得られた差分音声信号Dfの波形図である。図7(b)を参照して、縦軸は差分音声信号Dfのレベルを示し、横軸は時間tを示す。時間tの単位はフレームである。
【0090】
図7(a)に示すように、MCU35は、オーディオ信号ALRを所定時間Tc(例えば、80フレーム)単位で解析する。すなわち、図7(b)に示すように、MCU35は、所定時間Tcで得られた差分音声信号Dfのうち、最大レベルの差分音声信号Dfの時刻PV1(単位はフレーム)と第2番目に大きいレベルの差分音声信号Dfの時刻PV2(単位はフレーム)との差の絶対値Tv(i),Tv(i+1),…を算出する。この場合、第2番目に大きいレベルの差分音声信号Dfの時刻PV2は、所定時間Tc中、最大レベルの差分音声信号Dfの時刻PV1を中心とした±B(例えば5)フレームの範囲外から取得される。
【0091】
このようにして、MCU35は、所定時間Tc中の最大レベルの差分音声信号Dfと第2番目に大きいレベルの差分音声信号Dfとをオーディオ信号ALRのビートとみなしている。このように、分析の結果得られたオーディオ信号ALRのビートを「外部ビート」と呼ぶ。また、外部ビート及び後述の内部ビートを、オーディオ信号ALRの本来のビートと区別するために、オーディオ信号ALRの本来のビートを「オリジナルビート」と呼ぶこともある。
【0092】
従って、絶対値Tv(i),Tv(i+1),…の各々は、外部ビートの間隔、つまり、外部ビートのテンポである。外部ビート間隔Tv(i),Tv(i+1),…を包括して、外部ビート間隔Tvと呼ぶ。
【0093】
そして、外部ビート間隔Tvを検出する度に、つまり、所定時間Tcごとに、MCU35は、図8(a)に示す発生頻度テーブルを更新する。つまり、MCU35は、外部ビート間隔Tvを検出する度に、発生頻度テーブルにおいて、検出した外部ビート間隔Tvに1ポイントを投票(加算)する。従って、発生頻度テーブルの投票数(ポイント数)は、各外部ビート間隔Tvの発生頻度を表す。発生頻度テーブルをグラフ化すると、図8(b)のようになる。このグラフにより、外部ビート間隔Tvの発生頻度の分布が容易に認識できる。
【0094】
MCU35は、発生頻度テーブルにおいて、最も発生頻度が高い、つまり、最も投票数(ポイント数)が多い外部ビート間隔Tvを暫定内部ビート間隔Tuとする。このように、外部ビート間隔Tvを統計処理して求めた暫定内部ビート間隔Tuを、暫定的にオーディオ信号ALRのオリジナルビートの間隔とみなす。そして、MCU35は、暫定内部ビート間隔Tuに基づいて、直近の将来発生するオリジナルビートの発生時を予測する。MCU35は、このようにして予測したオリジナルビートの発生時に、内部ビートを生成する。このように、内部ビートは、MCU35によって予測された時刻に生成されるビートである。
【0095】
図9は、内部ビートの生成方法の詳細な説明図である。なお、時間tの単位はフレームである。また、暫定内部ビート間隔Tuは、暫定内部ビート間隔Tu(j),Tu(j+1),…を包括した表記である。図9を参照して、MCU35が、時刻t0から、暫定内部ビート間隔Tu(j)が経過した時刻t1に内部ビートを生成したとする。この場合、MCU35は、内部ビートを生成した時刻t1を中心とした±A(例えば5)フレームの範囲から、差分音声信号Dfの最大レベルを検出する。そして、MCU35は、最大レベルの差分音声信号Dfの時刻t2から、その時の最新の暫定内部ビート間隔Tu(j+1)が経過した時刻t3に内部ビートを生成する。従って、時刻t2での内部ビートの生成時から、時刻t3での内部ビートの生成時までの時間は、暫定内部ビート間隔Tuと一致しないことがある。内部ビートの生成時から、次の内部ビートの生成時までの時間を、内部ビート間隔Ttと呼ぶ。
【0096】
このように、内部ビートの生成の度に、暫定内部ビート間隔Tuの起点を調整することにより、最終的な内部ビート間隔Ttを決定し、内部ビートとオリジナルビートとの間に生じる誤差の蓄積を除去する。また、MCU35は、時刻t1の内部ビートの生成時に、次の内部ビートの生成時刻t3を決定している。すなわち、MCU35は、時刻t1の内部ビート生成時の最新の暫定内部ビート間隔Tuを調整した内部ビート間隔Ttをオリジナルビートの間隔とみなして、内部ビートの生成時t1から内部ビート間隔Ttが経過した時点t3を、直近の将来発生するオリジナルビートの発生時であると予測し、時刻t3で次の内部ビートを生成している。
【0097】
次に、グローブ検出処理、左右決定処理、およびグローブ動き判定処理について図面を用いて説明する。
【0098】
図10は、グローブ検出処理の説明図である。図10には、イメージセンサ37が出力する差分画像信号に基づく画像(64×64ピクセル)が図示されている。図中、小さい正方形は1ピクセルを示す。また、左上角をXY座標軸の原点とする。
【0099】
この画像には、輝度値が大きい2つの領域45及び47が含まれる。領域45及び47は、それぞれ、再帰反射シート11L及び11Rの像である。ただし、この時点では、どの領域がどの再帰反射シートに対応するかは判別できない。
【0100】
まず、プロセッサ31は、Y=0を出発点として、X=0からX=63まで、差分画像をスキャンし、次に、Yをインクリメントし、X=0からX=63まで、差分画像をスキャンする。このような処理をY=63まで行い、64×64ピクセルの差分画像をスキャンして、閾値ThLより大きいピクセルデータの上端位置minY、下端位置maxY、左端位置minX、及び右端位置maxXを求める。
【0101】
次に、プロセッサ31は、座標(minX,minY)を出発点として、X軸の正方向にスキャンを実行して、最初に閾値ThLを超えるピクセルまでの距離LTを算出する。また、プロセッサ31は、座標(maxX,minY)を出発点として、X軸の負方向にスキャンを実行して、最初に閾値ThLを超えるピクセルまでの距離RTを算出する。さらに、プロセッサ31は、座標(minX,maxY)を出発点として、X軸の正方向にスキャンを実行して、最初に閾値ThLを超えるピクセルまでの距離LBを算出する。さらに、プロセッサ31は、座標(maxX,maxY)を出発点として、X軸の負方向にスキャンを実行して、最初に閾値ThLを超えるピクセルまでの距離RBを算出する。
【0102】
プロセッサ31は、距離LT>RTのときは、座標(maxX,minY)を第1抽出点とし、距離LT≦RTのときは、座標(minX,minY)を第1抽出点とする。また、プロセッサ31は、距離LB>RBのときは、座標(maxX,maxY)を第2抽出点とし、距離LB≦RBのときは、座標(minX,maxY)を第2抽出点とする。
【0103】
図11は、左右決定処理の説明図である。図11には、前回(1ビデオフレーム前)の再帰反射シート11Lの位置TPL2及び前々回(2ビデオフレーム前)の位置TPL1、並びに、前回(1ビデオフレーム前)の再帰反射シート11Rの位置TPR2及び前々回(1ビデオフレーム前)の位置TPR1が図示されている。位置TPL1,TPL2,TPR1及びTPR2は、差分画像上の位置である。
【0104】
なお、テレビジョンモニタ5のビデオフレームは、一定時間毎に更新されるところ、本実施の形態では、この一定時間は、MCU35の処理で用いた1フレーム時間と一致する。
【0105】
プロセッサ31は、位置TPL1を始点、位置TPL2を終点とする速度ベクトルVLを算出する。そして、位置TPL2を始点とする速度ベクトルVLの終点を、再帰反射シート11Lの予測位置TPLpとする。一方、プロセッサ31は、位置TPR1を始点、位置TPR2を終点とする速度ベクトルVRを算出する。そして、位置TPR2を始点とする速度ベクトルVRの終点を、再帰反射シート11Rの予測位置TPRpとする。
【0106】
プロセッサ31は、第1抽出点TPN1と予測位置TPLpとの距離LD1、第1抽出点TPN1と予測位置TPRpとの距離RD1、第2抽出点TPN2と予測位置TPLpとの距離LD2、及び、第2抽出点TPN2と予測位置TPRpとの距離RD2を求める。
【0107】
プロセッサ31は、距離LD1>RD1ならば、第1抽出点TPN1を再帰反射シート11Rの今回の位置とし、距離LD1≦RD1ならば、第1抽出点TPN1を再帰反射シート11Lの今回の位置とする。また、プロセッサ31は、距離LD2>RD2ならば、第2抽出点TPN2を再帰反射シート11Rの今回の位置とし、距離LD2≦RD2ならば、第2抽出点TPN2を再帰反射シート11Lの今回の位置とする。なお、プレイの開始時点等、左右の予測位置TPLp及びTPRpが算出できない場合は、X座標がminXである第1抽出点TPN1及び第2抽出点TPN2の一方の座標を再帰反射シート11Lの座標とし、X座標がmaxXである他方の抽出点の座標を再帰反射シート11Rの座標とする。
【0108】
このように、左右の予測位置TPLp及びTPRpに基づいて、第1抽出点TPN1及び第2抽出点TPN2に左右を割り当てているため、再帰反射シート11Lと11Rとの左右が入れ替わった場合でも(クロスした場合でも)、プロセッサ31は、差分画像上において、再帰反射シート11L及び11Rの各々を的確に認識できる。
【0109】
図12(a)、図12(c)、図12(e)は、プロセッサ31による速度ベクトル算出の説明図、図12(b)、図12(d)、図12(f)は、プロセッサ31によるグローブ動き判定処理の説明図である。これらの図は、グローブ7Lの再帰反射シート11Lの動き判定の説明図である。
【0110】
図12(a)、図12(c)、図12(e)には、再帰反射シート11Lの位置TPL1〜TPL3が図示されている。位置TPL1〜TPL3は、差分画像上の位置である。これらの図に示すように、プロセッサ31は、2ビデオフレーム前の再帰反射シート11Lの位置(例えば、位置TPL1)を始点とし、今回の位置(例えば、位置TPL3)を終点とする速度ベクトルVを算出する。
【0111】
そして、プロセッサ31は、図12(b)、図12(d)、図12(f)に示すような仮想画面上(64×64ピクセル)で、速度ベクトルVの始点TPL1を原点とし、終点TPL3がどの領域に位置するかを判定する。プロセッサ31は、ベクトルVの終点TPL3が領域「不動」に位置する場合は、プレイヤが左パンチを出さなかったと判断する(図12(b)参照)。つまり、再帰反射シート11Lは動いたが、それをパンチとは判断しない。プロセッサ31は、ベクトルVの終点TPL3が領域「ストレート」に位置する場合は、プレイヤが左のストレートパンチを出したと判断する(図12(d)参照)。つまり、再帰反射シート11Lが、真っ直ぐ動かされたと判断する。プロセッサ31は、ベクトルVの終点TPL3が領域「クロス」に位置する場合は、プレイヤが左のクロスパンチを出したと判断する(図12(f)参照)。つまり、再帰反射シート11Lが、クロスして動かされたと判断する。
【0112】
図12(b)、図12(d)、図12(f)から分かるように、このような動き判定において、プロセッサ31は、速度ベクトルVの始点TPL1を、仮想画面の原点に置く。仮想画面の原点は、その下辺の中央である。
【0113】
グローブ7Rに対しては、図12(b)、図12(d)、図12(f)に示す仮想画面と左右対称の仮想画面が用意され、グローブ7Lと同様にして、動き(不動、ストレート、クロス)判定が行われる。
【0114】
次に、フローチャートを用いて、MCU35の処理の流れを説明する。
【0115】
図13は、図4のMCU35による音声データ取得処理の流れを示すフローチャートである。図13を参照して、ステップS300にて、MCU35は、タイマをセットする。このタイマは、1フレームの経過をMCU35に通知する。ステップS302にて、MCU35は、図4のミキシング回路43が出力したオーディオ信号ALRを取り込む(サンプリング)。ステップS304にて、MCU35は、取り込んだオーディオ信号ALRのレベルと現在の最大音声データAtmxのレベルとを比較する。ステップS306にて、MCU35は、オーディオ信号ALRのレベルが最大音声データAtmxのレベルより大きい場合はステップS308に進み、それ以外はステップS310に進む。ステップS308では、MCU35は、最大音声データAtmxに、オーディオ信号ALRを代入する。
【0116】
ステップS310にて、MCU35は、1フレームが経過したか否かを判断し、経過していない場合は、つまり、タイマから通知を受けていない場合は、ステップS302に戻り、経過した場合は、つまり、タイマから通知を受けた場合は、ステップS312に進む。ここで、ステップS310で1フレームが経過したと判断された時の最大音声データAtmxは、1フレーム間におけるオーディオ信号ALRの最大値である。
【0117】
ステップS310で「YES」が判断された後、ステップS312にて、MCU35は、変数Afmxに、最大音声データAtmxを格納する。ステップS314にて、MCU35は、1フレーム間のオーディオ信号ALRに対して、FFTを実行し、パワースペクトルを求め、ステップS302に戻る。
【0118】
図14は、図4のMCU35による外部ビート検出処理の流れを示すフローチャートである。図14を参照して、ステップS330にて、MCU35は、タイマをセットする。このタイマは、1フレームの経過をMCU35に通知する。ステップS332にて、MCU35は、変数k,n及びmに「0」を代入する。ステップS334にて、MCU35は、1フレームが経過した場合(タイマから通知を受けた場合)ステップS336に進み、経過していない場合(タイマから通知を受けていない場合)ステップS334に戻る。
【0119】
ステップS336にて、MCU35は、最新の変数Afmxの値(最新の1フレーム中の最大音声データAtmx)から、前回の変数Afmxの値(前回の1フレーム中の最大音声データAtmx)を減算し、減算結果を変数(差分)Dfに格納する。ステップS338にて、MCU35は、差分Dfが0より小さいか否かを判断し、小さい場合はステップS340に進み、それ以外はステップS344に進む。ステップS340では、MCU35は、差分Dfに「0」を代入する。
【0120】
ステップS344にて、MCU35は、今回の差分Dfと前回の差分Dfとを比較する。そして、ステップS346にて、今回の差分Dfが前回の差分Dfより大きい場合はステップS348に進み、それ以外はステップS352に進む。ステップS348にて、MCU35は、変数Dmx[n]に今回の差分Dfを代入する。ステップS350では、MCU35は、変数K[n]に変数kの値を代入する。
【0121】
ステップS352にて、MCU35は、変数m及びkをそれぞれ1つインクリメントする。ステップS354にて、MCU35は、変数mが10に到達したか否かを判断し、到達した場合ステップS356に進み、到達していない場合ステップS336に進む。ステップS356では、MCU35は、変数mに「0」を代入する。ステップS358にて、MCU35は、変数nを1つインクリメントする。
【0122】
ステップS360にて、MCU35は、変数kの値が「80」に到達したか否かを判断し、到達した場合はステップS362に進み、到達していない場合はステップS336に進む。ステップS362では、MCU35は、変数n及びkにそれぞれ「0」を代入する。
【0123】
ステップS364にて、MCU35は、変数Dmx[0]〜Dmx[9]から最大値と二番目に大きい値を検出し、最大値に対応する変数K[]の値PV1と、二番目に大きい値に対応する変数K[]の値PV2と、の差の絶対値、つまり、外部ビート間隔Tvを算出する。例えば、最大値がDmx[2]で、二番目に大きい値がDmx[6]の場合、差(K[2]−K[6])の絶対値が、外部ビート間隔Tvである。ステップS366にて、MCU35は、発生頻度テーブル(図8(a)参照)において、ステップS364で算出した外部ビート間隔Tvに1ポイントを投票し、ステップS334に戻る。
【0124】
上記ステップS354の補足説明を行う。このステップは、10フレーム間の差分Dfの最大値を求め(ステップS346)、変数Dmx[n]に格納すると共に、その時の変数kの値(つまり、フレーム時間)を変数K[n]に格納するために設けられる。このため、変数nは10フレームごとにインクリメントされ(ステップS358)、変数mは10フレームごとにリセットされる(ステップS356)。
【0125】
上記ステップS360の補足説明を行う。このステップは、80フレームごとに、つまり、時間Tcごとに(図7参照)、外部ビート間隔Tvを求めるために設けられる(ステップS364)。このため、変数n及びkは80フレームごとにリセットされる(ステップS362)。
【0126】
ところで、ステップS354を設けて、10フレーム単位で差分Dfの最大値を求めるのは、次の理由による。時間Tcにおける差分Dfの最大値と二番目に大きい値を求める必要がある(図7参照)。この場合、上記のように、第2番目に大きいレベルの差分Dfの時刻PV2は、最大レベルの差分Dfの時刻PV1を中心とした±Bフレームの範囲外から取得する。このフローでは、B=5としている。このため、10フレーム単位で差分Dfの最大値を取得し、80フレーム分の差分Dfの最大値Dmx[0]〜Dmx[9]が取得できたところで、ステップS364において、その中から、最大値と二番目に大きい値を求めるのである。
【0127】
図15は、図4のMCU35による内部ビート生成処理の流れを示すフローチャートである。図15を参照して、ステップS380にて、MCU35は、タイマをセットする。このタイマは、1フレームの経過をMCU35に通知する。ステップS382にて、MCU35は、発生頻度テーブル(図8(a)参照)から、最も投票数の多い(最もポイントの高い)外部ビート間隔Tvを取得し、暫定内部ビート間隔Tuに設定する。なお、外部ビート間隔Tv及び暫定内部ビート間隔Tuの単位はフレームである。
【0128】
ステップS384にて、MCU35は、カウンタCbがステップS382で設定した暫定内部ビート間隔Tuに一致したか否かを判断し、一致した場合ステップS386に進み、不一致の場合ステップS390に進む。ステップS386では、MCU35は、ビートフラグを「1」にセットする。ステップS388にて、MCU35は、カウンタCbを「0」にする。一方、ステップS390では、MCU35は、ビートフラグを「0」にセットする。
【0129】
ステップS392にて、MCU35は、1フレームが経過した場合(タイマから通知を受けた場合)ステップS394に進み、経過していない場合(タイマから通知を受けていない場合)ステップS392に戻る。ステップS394にて、MCU35は、ビートビットをビートフラグの値にセットする。この場合、ビートフラグの値が「1」でビートビットに「1」が設定されることは、内部ビートの生成を意味する。ステップS396にて、MCU35は、カウンタCbを1つインクリメントする。
【0130】
ステップS400にて、MCU35は、カウンタCbが定数Aに一致したか否かを判断し、一致した場合ステップS402に進み、それ以外はステップS382に進む。ステップS402では、MCU35は、最新の内部ビートの生成時を中心とした±Aフレームの範囲から、最も大きい差分Dfの時刻tmxを検出する(図9参照)。
【0131】
ここで、時刻tmxの単位はフレームである。また、最新の内部ビートの生成時を「0」として、正方向の時刻を、1,2,…Aとし、負方向の時刻を、−1,−2,…−Aとする。従って、時刻tmxは、正負の符号付きの値である。
【0132】
そして、ステップS404にて、MCU35は、現在のカウンタCbの値から時刻tmxを減算して、ステップS382に戻る。このように、内部ビートの生成の度に、カウンタCbの値を修正して、上述したように、暫定内部ビート間隔Tuの起点を調整し、内部ビートとオリジナルビートとの間に生じる誤差の蓄積を除去する。このような調整によって、結果的に、内部ビート間隔Ttで、内部ビートが生成されることになる。なお、もちろん、カウンタCbを調整する代わりに、暫定内部ビート間隔Tuに時刻tmxを加算することにより、内部ビート間隔Ttを求めてもよい。
【0133】
次に、フローチャートを用いて、プロセッサ31の処理の流れを説明する。
【0134】
図16は、図4のプロセッサ31による処理の流れを示すフローチャートである。図16を参照して、ステップS1にて、プロセッサ31は、初期化処理を実行する。具体的には、システムハードウエア及び各変数を初期化する。
【0135】
ステップS3にて、プロセッサ31は、イメージセンサ37を制御し、グローブ7L及び7Rの再帰反射シート11L及び11Rの撮影処理を実行させる。ステップS5にて、プロセッサ31は、イメージセンサ37からの差分画像信号に基づいて、グローブ7L及び7Rの再帰反射シート11L及び11Rの検出処理を実行する。ステップS7にて、プロセッサ31は、グローブ7L及び7Rの再帰反射シート11L及び11Rの動きに従って、グローブ画像51L及び51Rを制御する。ステップS9にて、プロセッサ31は、位置指示オブジェクト53を制御する。ステップS10にて、プロセッサ31は、タイミング指示バンド55を制御する。ステップS11にて、プロセッサ31は、グローブ画像51L及び51Rが位置指示オブジェクト53に当ったか否かの判定を実行する。
【0136】
ステップS13にて、プロセッサ31は、ビデオ同期信号により割り込み待ちか否かを判断し、割り込み待ちの場合ステップS13に戻り、割り込み待ちでない場合、つまり、ビデオ同期信号による割り込みが発生した場合ステップS15に進む。ビデオ同期信号による割り込みは、例えば、1/60秒間隔で発生する。そして、プロセッサ31は、ステップS15において、ステップS7〜S11での設定に基づき、テレビジョンモニタ5に表示する画像の更新を行うと共に、ステップS17において、音声処理を実行し、ステップS3に戻る。
【0137】
図17は、図16のステップS3の撮影処理の流れを示すフローチャートである。図17を参照して、ステップS20において、プロセッサ31は、イメージセンサ37に赤外発光ダイオード17を点灯させる。ステップS22にて、プロセッサ31は、イメージセンサ37に赤外光点灯時の撮影を実行させる。ステップS24にて、プロセッサ31は、イメージセンサ37に赤外発光ダイオード17を消灯させる。ステップS26にて、プロセッサ31は、イメージセンサ37に赤外光消灯時の撮影を実行させる。ステップS28にて、プロセッサ31は、イメージセンサ37に、赤外光点灯時の画像と赤外光消灯時の画像との差分画像を生成及び出力させる。以上のようにして、プロセッサ31の制御に応答して、イメージセンサ37は、赤外光の点灯時及び消灯時の撮影、つまり、ストロボ撮影を実行する。また、以上の制御により、赤外発光ダイオード17は、ストロボスコープとして機能する。
【0138】
図18は、図16のステップS5の実グローブ検出処理の流れを示すフローチャートである。図18を参照して、ステップS30にて、プロセッサ31は、イメージセンサ37が出力した差分画像を取得し、64×64の差分ピクセルデータを、配列Dif[X][Y]に格納する。本実施の形態では、X=0〜63、Y=0〜63である。
【0139】
ステップS32にて、プロセッサ31は、図10で説明した左右上下端(minX、maxX、minY、maxY)の検出処理を実行する。ステップS34にて、プロセッサ31は、図10で説明した2点位置(第1抽出点(Xtp[0],Ytp[0])、第2抽出点(Xtp[1],Ytp[1]))の決定処理を実行する。ステップS36にて、プロセッサ31は、第1抽出点(Xtp[0],Ytp[0])と第2抽出点(Xtp[1],Ytp[1])との中点座標を算出する。そして、この中点座標をスクリーン座標に変換する。
【0140】
ステップS37にて、プロセッサ31は、第1抽出点及び第2抽出点のうち、どちらが左でどちらが右かを決定する。ステップS39にて、プロセッサ31は、グローブ画像51L及び51Rの動きを判定し、ストレートパンチ、クロスパンチ、あるいはパンチなしの状態を決定する。
【0141】
図19は、図18のステップS32の左右上下端検出処理の流れを示すフローチャートである。このフローチャートは、図10で説明した左右上下端検出処理の流れの一例である。
【0142】
図19を参照して、ステップS40にて、プロセッサ31は、「X」、「Y」、「maxX」、「maxY」、及び「k」に「0」を代入する。また、プロセッサ31は、「minX」及び「minY」に「63」を代入する。
【0143】
ステップS41にて、プロセッサ31は、配列Dif[X][Y]の要素を所定の閾値ThLと比較する。ステップS42にて、プロセッサ31は、配列Dif[X][Y]の要素が所定の閾値ThLより大きい場合は、ステップS43に進み、所定の閾値ThL以下の場合は、ステップS55に進む。
【0144】
ステップS41,S42の処理は、グローブ7L及び7Rが撮影されたか否かを検出するための処理である。グローブ7L及び7Rは、再帰反射シート11L及び11Rを有しているので、グローブ7L及び7Rが撮影されると、差分画像上では、再帰反射シート11L及び11Rに相当するピクセルの輝度値が大きくなる。このため、閾値ThLにより、輝度値の大小を峻別して、閾値ThLより大きい輝度値を持つピクセルを、撮影された再帰反射シート11L及び11Rの一部であると認識する。
【0145】
ステップS43にて、プロセッサ31は、カウント値kを1つインクリメントする。ステップS44にて、プロセッサ31は、カウント値kが「1」か否かを判断し、k=1であれば、ステップS45に進み、それ以外では、ステップS46に進む。
【0146】
ステップS45では、プロセッサ31は、最小Y座標minYに、現在のY座標を代入する。つまり、スキャンは、(X,Y)=(0,0)から開始して、X=0〜63まで行い、Yをインクリメントして、再び、X=0〜63まで行う、という処理を繰り返すので(後述のステップS55〜S59参照)、最初に閾値ThLを超えた要素(つまりピクセル)を持つ配列Dif[X][Y]の「Y」が最小Y座標minYとなる。
【0147】
ステップS46では、プロセッサ31は、現在の最大Y座標maxYと現在のY座標とを比較する。ステップS47にて、プロセッサ31は、現在の最大Y座標maxYより現在のY座標が大きい場合は、ステップS48に進み、それ以外はステップS49に進む。ステップS48では、プロセッサ31は、最大Y座標maxYに、現在のY座標を代入する。
【0148】
ステップS49では、プロセッサ31は、現在の最小X座標minXと現在のX座標とを比較する。ステップS50にて、プロセッサ31は、現在の最小X座標minXより現在のX座標が小さい場合は、ステップS51に進み、それ以外はステップS52に進む。ステップS51では、プロセッサ31は、最小X座標minXに、現在のX座標を代入する。
【0149】
ステップS52では、プロセッサ31は、現在の最大X座標maxXと現在のX座標とを比較する。ステップS53にて、プロセッサ31は、現在の最大X座標maxXより現在のX座標が大きい場合は、ステップS54に進み、それ以外はステップS55に進む。ステップS54では、プロセッサ31は、最大X座標maxXに、現在のX座標を代入する。
【0150】
ステップS55では、プロセッサ31は、「X」を1つインクリメントする。ステップS56にて、プロセッサ31は、X=64のときは(つまり、差分画像のピクセル1行分の処理が終了したときは)ステップS57に進み、それ以外はステップS41に進む。
【0151】
ステップS57では、プロセッサ31は、「X」に「0」を代入する。ステップS58にて、プロセッサ31は、「Y」を1つインクリメントする。ステップS57及びS58の処理は、差分画像の1行分の処理が終了したため、次の1行分の処理を進めるために実行される。
【0152】
ステップS59にて、プロセッサ31は、Y=64のときは(つまり、差分画像の64×64ピクセル分の処理が終了したときは)、図18のルーチンにリターンし、それ以外はステップS41に進む。
【0153】
上記ステップS41〜S59を繰り返すことにより、Y=64となった時点で、最小X座標minX、最大X座標maxX、最小Y座標minY、及び最大Y座標maxYが全て確定する。
【0154】
図20は、図18のステップS34の2点位置決定処理の流れを示すフローチャートである。このフローチャートは、図10で説明した2点位置決定処理の流れの一例である。
【0155】
図20を参照して、プロセッサ31は、ステップS70にて、「M」に「0」を代入して、ステップS71からステップS87までの処理を繰り返す。ここで、ステップS71に示すように、一回目のループのときは、Ytb=minY、二回目のループのときは、Ytb=maxY、である。ステップS72にて、プロセッサ31は、座標(minX,Ytb)を始点としてスキャンを開始する。
【0156】
ステップS73にて、プロセッサ31は、カウント値Clに「0」を代入する。ステップS74にて、プロセッサ31は、差分データDif[X][Y]と閾値ThLとを比較して、差分データが閾値より大きい場合は、ステップS77に進み、それ以外は、ステップS75に進む。ステップS75では、プロセッサ31は、カウント値Clを1つインクリメントする。ステップS76にて、プロセッサ31は、座標Xを1つインクリメントして、ステップS74に進む。
【0157】
ステップS74で、Dif[X][Y]>ThLと判断された時点のカウント値Clは、図10の距離LTあるいはLBに相当する。ステップS72で、Ytb=minYのときは、Cl=LTであり、Ytb=maxYのときは、Cl=LBである。
【0158】
ステップS77にて、プロセッサ31は、座標(maxX,Ytb)を始点としてスキャンを開始する。ステップS78にて、プロセッサ31は、カウント値Crに「0」を代入する。ステップS79にて、プロセッサ31は、差分データDif[X][Y]と閾値ThLとを比較して、差分データが閾値より大きい場合は、ステップS82に進み、それ以外は、ステップS80に進む。ステップS80では、プロセッサ31は、カウント値Crを1つインクリメントする。ステップS81にて、プロセッサ31は、座標Xを1つデクリメントして、ステップS79に進む。
【0159】
ステップS79で、Dif[X][Y]>ThLと判断された時点のカウント値Crは、図10の距離RTあるいはRBに相当する。ステップS72で、Ytb=minYのときは、Cr=RTであり、Ytb=maxYのときは、Cr=RBである。
【0160】
ステップ82では、プロセッサ31は、距離ClとCrとを比較する。ステップS83にて、距離Clが距離Crより大きい場合は、ステップS85に進み、それ以外は、ステップS84に進む。
【0161】
ステップS84では、「Xtp[M]」に「minX」を代入するとともに、「Ytp[M]」に「Ytb」を代入する。一方、ステップS85では、「Xtp[M]」に「maxX」を代入するとともに、「Ytp[M]」に「Ytb」を代入する。
【0162】
ここで、座標(Xtp[0],Ytp[0])は、図10で説明した第1抽出点の座標であり、座標(Xtp[1],Ytp[1])は、第2抽出点の座標である。
【0163】
ステップS86では、プロセッサ31は、「M」を1つインクリメントして、ステップS87へ進む。ステップS71からステップS87までのループが終了すると、図18のルーチンにリターンする。
【0164】
図21は、図18のステップS37の左右決定処理の流れを示すフローチャートである。このフローチャートは、図11で説明した左右決定処理の流れの一例である。なお、再帰反射シート11Lの位置を左抽出点、再帰反射シート11Rの位置を右抽出点と呼ぶ。
【0165】
図21を参照して、ステップS140にて、プロセッサ31は、前回の左抽出点の位置(XL[0],YL[0])からの今回の左抽出点の位置(Xnl,Ynl)を予測する。ステップS141にて、プロセッサ31は、前回の右抽出点の位置(XR[0],YR[0])からの今回の右抽出点の位置(Xnr,Ynr)を予測する。ここで、左抽出点(Xnl,Ynl)は、図11の予測位置TPLpに相当し、右抽出点の位置(Xnr,Ynr)は、予測位置TPRpに相当する。
【0166】
ステップS142にて、プロセッサ31は、「M」に「0」を代入する。ステップS143にて、プロセッサ31は、予測位置(Xnl,Ynl)と抽出点(Xtp[M],Ytp[M])との間の距離Dlを算出する。ステップS144にて、プロセッサ31は、予測位置(Xnr,Ynr)と抽出点(Xtp[M],Ytp[M])との間の距離Drを算出する。
【0167】
ここで、抽出点(Xtp[0],Ytp[0])は、図20のルーチンで求めた第1抽出点であり、抽出点(Xtp[1],Ytp[1])は、図20のルーチンで求めた第2抽出点である。M=0のときは、距離Dlは、図11の距離LD1に相当し、距離Drは、距離RD1に相当する。M=1のときは、距離Dlは、図11の距離LD2に相当し、距離Drは、距離RD2に相当する。
【0168】
ステップS145にて、プロセッサ31は、距離Dlと距離Drとを比較する。ステップS146にて、プロセッサ31は、Dl>DrならばステップS148に進み、それ以外はステップS147に進む。
【0169】
ステップS147では、プロセッサ31は、前々回の左抽出点の位置(XL[1],YL[1])を、位置(XL[2],YL[2])とし、前回の左抽出点の位置(XL[0],YL[0])を、位置(XL[1],YL[1])とする。そして、プロセッサ31は、今回の左抽出点の位置(XL[0],YL[0])を、座標(Xtp[M],Ytp[M])とする。
【0170】
一方、ステップS148では、プロセッサ31は、前々回の右抽出点の位置(XR[1],YR[1])を、位置(XR[2],YR[2])とし、前回の右抽出点の位置(XR[0],YR[0])を、位置(XR[1],YRL[1])とする。そして、プロセッサ31は、今回の右抽出点の位置(XR[0],YR[0])を、座標(Xtp[M],Ytp[M])とする。
【0171】
ステップS149では、プロセッサ31は、「M」を1つインクリメントする。ステップS150にて、プロセッサ31は、M=2か否かを判断し、M=2であれば図20のルーチンにリターンし、それ以外はステップS143に進む。
【0172】
図22は、図18のステップS39のグローブ動き判定処理の流れを示すフローチャートである。このフローチャートは、図12で説明したグローブ動き判定処理の流れの一例である。
【0173】
図22を参照して、プロセッサ31は、ステップS160からステップS169までの処理を繰り返す。i=0では、再帰反射シート11Lの動き判定を行い、i=1では、再帰反射シート11Rの動き判定を行う。
【0174】
ステップS161では、プロセッサ31は、次式により、速度ベクトルViを算出する。
【0175】
Vi=(Xi[0]−Xi[2],Yi[0]−Yi[2])
【0176】
ここで、座標(X0[0],Y0[0])は今回の左抽出点(XL[0],YL[0])(図12の左位置TPL3に相当)であり、座標(X0[2],Y0[2])は前々回の左抽出点(XL[2],YL[2])(図12の左位置TPL1に相当)である。従って、速度ベクトルV0は、図12の速度ベクトルVに相当する。また、座標(X1[0],Y1[0])は今回の右抽出点(XR[0],YR[0])であり、座標(X1[2],Y1[2])は前々回の右抽出点(XR[2],YR[2])である。
【0177】
ステップS162にて、プロセッサ31は、速度ベクトルViの始点を原点として、速度ベクトルViの終点が存在する仮想画面上の領域を判定する(図12(b)、図12(d)、図12(f)参照)。ステップS163にて、プロセッサ31は、速度ベクトルViの終点が不動領域に存在する場合は、ステップS164に進み、不動フラグIFiをオンにし、それ以外は、ステップS165に進む。
【0178】
ステップS165にて、プロセッサ31は、速度ベクトルViの終点がストレート領域に存在する場合は、ステップS167に進み、ストレートフラグSFiをオンにし、それ以外はクロス領域に存在することになるので、ステップS166に進んで、クロスフラグCFiをオンにする。ステップS168にて、プロセッサ31は、パンチの回数をカウントするパンチカウンタNpを1つインクリメントして、ステップS169に進む。このように、パンチ回数のカウントにおいては、ストレート及びクロス、並びに左右は区別していない。
【0179】
ステップS160からS169までの処理が2回行われた後、つまり、左右のグローブ7L及び7Rの判定が完了した後、図18のルーチンにリターンする。
【0180】
図23は、図16のステップS7のグローブ画像制御処理の流れを示すフローチャートである。図23を参照して、プロセッサ31は、ステップS180からS190までの処理を繰り返す。i=0のときは、グローブ画像51Lに関する処理であり、i=1のときは、グローブ画像51Rに関する処理である。
【0181】
ステップS181にて、プロセッサ31は、不動フラグIFiがオンか否かを判断し、オンであればステップS182に進み、該当するグローブ画像51Lあるいは51Rの位置を更新し、それ以外はステップS184に進む。ここで、グローブ画像51L及び51Rの位置は、それぞれ、スクリーン座標への変換後の今回の左抽出点の位置及び今回の右抽出点の位置に設定される。ただし、グローブ画像51L及び51Rは、水平方向には自由に移動可能であるが、垂直方向については、移動可能な位置が制限される(例えば、グローブ画像51L及び51Rの中心がスクリーンの垂直方向下1/3まで)。この場合のグローブ画像51L及び51Rは、プレイヤによる非入力を示す画像(基本的姿態を示す画像)の例である。ステップS183では、プロセッサ31は、不動フラグIFiをオフにする。
【0182】
ステップS184では、プロセッサ31は、ストレートフラグSFiがオンか否かを判断し、オンであればステップS185に進んで、該当するグローブ画像51Lあるいは51Rのストレートパンチのアニメーション(プレイヤによる入力を示す画像(基本的姿態から変化する画像)の例)を設定し、それ以外はステップS187に進む。ここで、ステップS185では、グローブ画像51Lのx座標は、差分画像上の再帰反射シート11Lの水平座標に応じて設定される。ただし、グローブ画像51Lのアニメーションの最終的な(一番奥の)y座標は、基準線57(図5参照)のy座標に一致するように設定される。つまり、ストレートパンチは、必ず最終的には基準線57上に到達する。また、グローブ画像51Lの軌道は、ストレートパンチの軌道に設定される。ステップS186では、プロセッサ31は、ストレートフラグSFiをオフにする。
【0183】
ステップS187では、プロセッサ31は、クロスフラグCFiがオンか否かを判断し、オンであればステップS188に進んで、該当するグローブ画像51Lあるいは51Rのクロスパンチのアニメーション(プレイヤによる入力を示す画像(基本的姿態から変化する画像)の他の例)を設定する。ここで、ステップS188では、グローブ画像51Lのx座標は、差分画像上の再帰反射シート11Lの水平座標に応じて設定される。ただし、グローブ画像51Lのアニメーションの最終的な(一番奥の)y座標は、基準線57(図5参照)のy座標に一致するように設定される。つまり、クロスパンチは、必ず最終的には基準線57上に到達する。また、グローブ画像51Lの軌道は、クロスパンチの軌道に設定される。ステップS189では、プロセッサ31は、クロスフラグCFiをオフにする。
【0184】
ステップS180からS190までの処理が2回行われた後、つまり、左右のグローブ画像51L及び51Rの位置更新が完了した後、ステップS191に進む。ステップS191では、プロセッサ31は、左のグローブ画像51Lと右のグローブ画像51Rとがクロスしているか否か、つまり、左右が入れ替わっているか否かを判断し、クロスしている場合はステップS192に進む。ステップS192にて、プロセッサ31は、クロス後規定時間経過したか否かを判断し、経過したときはステップS193に進んで、右側に表示されたグローブ画像51Lと左側に表示されたグローブ画像51Rとを左右入れ替えるアニメーションを設定する。
【0185】
図24は、図16のステップS9の位置指示オブジェクト制御処理の流れを示すフローチャートである。図24を参照して、ステップS220にて、プロセッサ31は、MCU35から音声関連データを取得する。上述のように、音声関連データは、ビートビット、パワー及び1フレームにおけるオーディオ信号ALRの最大値を含む。ステップS222にて、プロセッサ31は、ビートビットの値をチェックする。ステップS224にて、プロセッサ31は、ビートビットが「1」の場合、つまり、内部ビートが生成された場合、ステップS226に進み、「0」の場合ステップS232に進む。
【0186】
ステップS226では、プロセッサ31は、カウンタCBに基づいて、新たに出現させる位置指示オブジェクト53の移動開始垂直位置(y座標)を決定する。カウンタCBは、ビートビットが「1」になってから、次に「1」になるまでの時間(単位はフレーム)、つまり、内部ビート間隔Ttを計数するカウンタである。従って、ステップS226でのカウンタCBの値は、前回ビートビットが「1」になってから今回ビートビットが「1」になるまでの時間である。このため、言い換えると、ステップS226では、最新の内部ビート間隔Ttに基づいて、位置指示オブジェクト53の移動開始垂直位置を決定している。理由は、次の通りである。
【0187】
位置指示オブジェクト53の下降速度をv、位置指示オブジェクト53の移動開始垂直位置から基準線57までの長さをh、下降速度vで位置指示オブジェクト53が下降して基準線57に到達するまでの時間をtとする。そうすると、次式が成立する。
【0188】
h=v*t …(1)
【0189】
この式において、下降速度vは一定である。また、時間tには、最新の内部ビート間隔Tt、つまり、ステップS226時点でのカウンタCBの値を代入する。そうすると、基準線57からの高さhが分かるので、基準線57のy座標をyrとすると、移動開始垂直位置(y座標)は、yr+hとなる。
【0190】
本実施の形態では、位置指示オブジェクト53が基準線57に到達した時点を、オーディオ信号ALRのオリジナルビートに合わせることを1つの目的としている。従って、最新の内部ビートの生成時(ビートビットが「1」)から、最新の内部ビート間隔Ttが経過した時点で、オーディオ信号ALRの次のオリジナルビートが発生すると予測する。その結果、上記の式に基づき、位置指示オブジェクト53の移動開始垂直位置を決定することにより、予測したオリジナルビートの発生時に、位置指示オブジェクト53が基準線57に到達するように制御できる。
【0191】
さて、ステップS227にて、プロセッサ31は、乱数を生成して、位置指示オブジェクト53の移動開始水平位置(x座標)を、4本の経路58−1〜58−4から、ランダムに1つの経路を選択する。ステップS228にて、プロセッサ31は、ステップS226で決定した移動開始垂直位置及びステップS227で決定した移動開始水平位置に、新たに出現させる位置指示オブジェクト53の座標を設定する。このように、ビートビットが「1」になった時に、新たに出現させる位置指示オブジェクト53を設定する。ステップS230にて、プロセッサ31は、カウンタCBに「0」を代入する。一方、ステップS232では、プロセッサ31は、カウンタCBを1つインクリメントする。
【0192】
ステップS232にて、プロセッサ31は、下降速度vに基づいて、移動経路58−1〜58−4上に存在する全ての位置指示オブジェクト53の垂直座標(y座標)を更新する。ステップS233にて、プロセッサ31は、画面下端の消滅位置に到達した位置指示オブジェクト53が存在するか否かを判断し、存在する場合ステップS234に進み、それ以外はリターンする。ステップS234にて、プロセッサ31は、消滅位置に到達した位置指示オブジェクト53の消滅設定を行いリターンする。
【0193】
図25は、図16のステップS10のタイミング指示バンド制御処理の流れを示すフローチャートである。図25を参照して、ステップS250にて、プロセッサ31は、経路58−1〜58−4上の位置指示オブジェクト53の垂直位置をチェックする。ステップS252にて、プロセッサ31は、位置指示オブジェクト53と基準線57との間の距離が、定数L以内か否かを判断し、定数L以内の場合ステップS254に進み、それ以外はステップS256に進む。ステップS254では、プロセッサ31は、位置指示オブジェクト53と基準線57との間の距離に応じた幅Wのタイミング指示バンド55を設定する(図6参照)。ステップS256にて、プロセッサ31は、経路58−1〜58−4上の全ての位置指示オブジェクト53に対して、ステップS250〜S254の処理が完了したか否かを判断し、完了した場合はリターンし、完了していない場合はステップS250に戻る。
【0194】
図26は、図16のステップS11の当り判定処理の流れを示すフローチャートである。図26を参照して、ステップS290にて、プロセッサ31は、グローブ画像51Lが位置指示オブジェクト53に接触したか否かを判断し、接触した場合ステップS292に進み、それ以外はステップS294に進む。ステップS292では、プロセッサ31は、グローブ画像51Lと接触した位置指示オブジェクト53が画面奥に向かって飛んでいく(弾き返される)アニメーションを設定する。
【0195】
ステップS294にて、プロセッサ31は、経路58−1〜58−4上の全ての位置指示オブジェクト53に対して、ステップS290の処理を行ったか否かを判断し、全てに対して未だ完了していない場合ステップS290に戻り、全てに対して完了した場合はステップS296に進む。ステップS296では、左右のグローブ画像51L及び51Rについて、ステップS290〜S294の処理が完了したか否かを判断し、完了していない場合ステップS290に戻り、グローブ画像51Rに対して、ステップS290〜S294の処理を実行し、完了した場合はリターンする。
【0196】
さて、以上のように、本実施の形態では、位置指示オブジェクト53の出現位置(経路58−1〜58−4)がランダムに決定される。つまり、位置指示オブジェクト53には、その出現位置が動的に割り当てられる。従って、同一音楽であっても、プレイヤに異なるパターンの入力動作を行わせることができる。しかも、位置指示オブジェクト53の制御は音楽に応じて実行されるので、プレイヤに音楽に応じた入力を行わせることができる。以上により、プレイヤは、同一音楽であっても、異なるパターンの入力を、音楽に合わせて行うことができる。
【0197】
また、本実施の形態では、撮像により得られた画像に基づいて、三次元空間中のグローブ7の動きを検出し、グローブ画像51は、グローブ7の動きに応答する。このように、三次元空間中のグローブ7の動き、つまり、グローブ7の任意の動きに基づいてグローブ画像51が応答するので、グローブ画像51は画面の任意の位置に移動又は出現することができる。従って、本実施の形態のように、位置指示オブジェクト53の出現位置がランダムに決定される場合に好適である。
【0198】
具体的には、グローブ7の動きを撮像した画像に基づいて、三次元空間中のグローブ7の動きを検出する。このように、グローブ7の動きを撮影して入力とするので、プレイヤは電子機器を操作して入力を行う必要がない。このため、電子機器の把持等が不要であり、身体を動かして入力を行うエンターテインメントシステムに好適である。また、プレイヤは撮像範囲内であれば、特に制限を受けることなく、自由にパンチを繰り出すことができ、大きな動きをすることができる。その結果、本システムを用いたプレイが運動につながり、ひいては、運動不足の解消や健康の維持・増進に貢献できる。
【0199】
また、グローブ7に取り付けられた、光を再帰反射する再帰反射シート11を撮像するので、撮像画像に写り込んだ被写体(つまり再帰反射シート11)の像の抽出が容易になり、再帰反射シート11、つまり、グローブ7の動きを高速かつ精度良く検出できる。また、再帰反射シート11には電子機器や機構等が不要であるため、再帰反射シート11の形状や取付位置等に制限はなく、それらを任意の決定できる。
【0200】
さらに、赤外光を照射した時に撮像した画像と、赤外光を消灯した時に撮像した画像と、の差分画像に基づいて、グローブ7の動きを検出する。このため、グローブ7の再帰反射シート11からの反射光以外の光を簡易に除去でき、より高速かつ精度良くグローブ7の動きを検出できる。
【0201】
また、本実施の形態では、タイミング指示バンド55により、グローブ画像51を位置指示オブジェクト53の位置に合わせるタイミングが指示されるので、プレイヤにとって、グローブ画像51の操作タイミングが分かり易くなる。
【0202】
さらに、本実施の形態では、プレイヤにとって位置指示オブジェクト53の出現の時期及び位置を予測することは不可能又は困難であるが、位置指示オブジェクト53はタイミング指示バンド55に向かって移動し、指示されるタイミングまで時間があるので、プレイヤはグローブ画像51を位置指示オブジェクト53に合わせる位置及び時期を予測することができる。従って、プレイヤは音声に合わせた滑らかな動きを行い易くなる。
【0203】
さらに、本実施の形態では、タイミング指示バンド55の幅Wの変化により、操作のタイミングが指示されるので、プレイヤは、タイミング指示バンド55だけで操作のタイミングを認識できる。このため、位置指示オブジェクト53の位置との関連で初めて操作のタイミングを指示できるタイミング指示バンドと比較して、プレイヤは直感的に操作のタイミングを認識でき、操作のリズムないしはテンポをとり易い。操作の位置は、プレイヤは位置指示オブジェクト53を見ることで認識できる。
【0204】
ちなみに、静止し、変化しない若しくは変化してもタイミングの指示と無関係に変化するタイミング指示バンドを表示する場合、プレイヤは、そのタイミング指示バンドだけを見ても操作タイミングは分からない。この場合は、位置指示オブジェクト53の位置との関連で初めて操作タイミングが分かる。つまり、位置指示オブジェクト53がタイミング指示バンドに到達するタイミングが、操作タイミングである。
【0205】
さらに、本実施の形態では、音楽は外部(上記例では、デジタルオーディオプレーヤ44)から入力される。このため、プレイヤは、自分の好きな音楽でプレイしたり、また、飽きた場合は異なる音楽を入力してプレイできる。
【0206】
この場合、外部入力の音楽のビートの発生タイミングを予測し、予測結果に基づいて位置指示オブジェクト53を制御するので、リアルタイム処理が可能となって、音楽を一旦格納し分析した後に音楽を再生して位置指示オブジェクト53を制御する場合と比較して、メモリ等の記憶手段の規模を小さくできるし、また、格納された音楽を再生するための装置は不要であり、コストの削減を図ることができる。なお、入力された音楽を一旦格納し分析した後に音楽を再生して位置指示オブジェクト53を制御する場合は、格納、分析、再生のために、遅延が発生し、リアルタイム処理と言えない。
【0207】
また、音楽のビートの発生タイミングを予測しているので、リアルタイム処理を行いながらも、将来のビートの発生タイミングで、位置指示オブジェクト53を基準線57に到達させることができる。
【0208】
さらに、本実施の形態では、プレイヤは、グローブ7を操作して、グローブ画像51を、タイミング指示バンド55が指示するタイミングで位置指示オブジェクト53に合わせることにより、音楽に合った入力操作(パンチ動作)を行うことができる。
【0209】
なお、本発明は、上記の実施の形態に限られるものではなく、その要旨を逸脱しない範囲で種々の態様において実施することが可能であり、例えば、以下のような変形も可能である。
【0210】
(1)上記では、移動経路58を4本としたが、数はこれに限定されず、任意の数とすることができる。また、位置指示オブジェクト53は、画面上端に出現し、垂直に下降した。ただし、位置指示オブジェクト53は、画面下端に出現し、垂直に上昇してもよいし、画面右端に出現し、水平に左端に向かって移動してもよいし、その逆であってもよい。これらの場合、タイミング指示バンド55は、位置指示オブジェクト53の移動方向と直交するように配置する。また、位置指示オブジェクト53は、画面の縁の任意の位置から出現し、斜め方向に直進移動してもよい。例えば、位置指示オブジェクト53は、画面の縁の任意の位置から、画面中央に向かって直進し、出現位置と点対称の位置に向かって移動してもよい。この場合、例えば、円形のタイミング指示オブジェクトを画面中央に表示する。さらに、位置指示オブジェクト53の軌道は、直線に限られず、放物線やジグザグ線などの任意の軌道とすることができる。
【0211】
(2)上記では、位置指示オブジェクト53を移動(下降)させた。ただし、位置の変化である移動に限らず、形態の変化であってもよい。「形態」とは、形状、模様及び色彩を含む意味である。
【0212】
(第1変形例)例えば、画面上のランダムに決定した位置に、所定形状の位置指示オブジェクトを出現させると共に、その位置指示オブジェクトと相似な図形をタイミング指示オブジェクトとして中心位置を同一にして表示する。そして、位置指示オブジェクトをタイミング指示オブジェクトに向かって変化させる。この場合、タイミング指示オブジェクトが位置指示オブジェクトより大きい場合は、位置指示オブジェクトを拡大していき、小さい場合は縮小していく。そして、位置指示オブジェクトがタイミング指示オブジェクトに達したタイミングが、グローブ画像51を位置指示オブジェクトに当てるタイミングである。指示されたタイミングでグローブ画像51が位置指示オブジェクトに当ったか否かが判断され、当ったと判断された場合、エフェクト(音声及び/又は画像)が生成される。もちろん、位置指示オブジェクトがタイミング指示オブジェクトに達した時が、オーディオ信号ALRのビートに合うように、位置指示オブジェクトの変化を制御する。また、位置指示オブジェクトの変化は、タイミング指示オブジェクトに達した時に停止・消滅してもよいし、そこから継続して変化させ、所定条件で停止・消滅してもよい。
【0213】
(第2変形例)また、例えば、画面上のランダムに決定した位置に、第1所定模様の位置指示オブジェクトを出現させると共に、その位置指示オブジェクトに近接して第2所定模様のタイミング指示オブジェクトを表示する。そして、位置指示オブジェクトの模様を第1所定模様から第2所定模様に向かって変化させる。位置指示オブジェクトの模様がタイミング指示オブジェクトの模様、つまり、第2所定模様に達したタイミングが、グローブ画像51を位置指示オブジェクトに当てるタイミングである。指示されたタイミングでグローブ画像51が位置指示オブジェクトに当ったか否かが判断され、当ったと判断された場合、エフェクト(音声及び/又は画像)が生成される。もちろん、位置指示オブジェクトの模様がタイミング指示オブジェクトが指示する第2所定模様に達した時が、オーディオ信号ALRのビートに合うように、位置指示オブジェクトの変化を制御する。また、位置指示オブジェクトの変化は、第2所定模様に達した時に停止・消滅してもよいし、そこから継続して変化させ、所定条件で停止・消滅してもよい。
【0214】
(第3変形例)位置指示オブジェクトの色彩を変化させることもできる。この場合は、位置指示オブジェクトの模様を変化させる場合と同様の例を適用できる。つまり、上記模様の例において、「模様」を「色彩」と読みかえればよい。
【0215】
(3)上記では、音楽に応じて位置指示オブジェクト53を画面に出現(非表示から表示)させた。ただし、各経路58−1〜58−4の画面上端に、予め位置指示オブジェクト53を表示しておき、その中からランダムに位置指示オブジェクト53を選択して、音楽に応じて、移動(位置の変化)を開始させることもできる。この場合も、位置指示オブジェクト53が基準線57に到達した時が、オーディオ信号ALRのビートに合うように、位置指示オブジェクトの移動(位置の変化)開始時期を制御する。
【0216】
この例では、位置指示オブジェクト53を移動させた。ただし、位置の変化である移動に限らず、形態の変化であってもよい。「形態」とは、形状、模様及び色彩を含む意味である。
【0217】
例えば、上記第1変形例の変形を例に挙げる。画面上の任意の複数の位置に予め所定形状の位置指示オブジェクトを表示しておくと共に、その位置指示オブジェクトと相似な図形をタイミング指示オブジェクトとして中心位置を同一にして表示する。そして、複数の位置指示オブジェクトからランダムに位置指示オブジェクトを選択する。そして、選択した位置指示オブジェクトをタイミング指示オブジェクトに向かって変化させる。それ以降は、上記第1変形例と同じである。
【0218】
また、例えば、上記第2変形例の変形を例に挙げる。画面上の任意の複数の位置に予め第1所定模様の位置指示オブジェクトを表示しておくと共に、それぞれに近接して、第2所定模様のタイミング指示オブジェクトを表示する。そして、複数の位置指示オブジェクトからランダムに位置指示オブジェクトを選択する。そして、選択した位置指示オブジェクトの模様を第1所定模様から第2所定模様に向かって変化させる。それ以降は、上記第2変形例と同じである。この例において、「模様」を「色彩」と読みかえることもできる。
【0219】
(4)上記では、グローブ画像51が位置指示オブジェクト53にタイミングよく当った場合、エフェクトとして、位置指示オブジェクト53を画面奥に弾き返した。ただし、エフェクトは、これに限定されず、効果音等の音声であってもよいし、位置指示オブジェクト53に他の変化(移動だけでなく形態等の変化)を与えてもよいし、音声と画像との双方のエフェクトを与えてもよい。
【0220】
(5)上記では、外部から入力する音声(audio)の例として、音楽を挙げた。ただし、音楽に限らず、音響、ボイス及びサウンド等、その他の音でもよい。ただし、それらがビート(拍)を有することが好ましい。
【0221】
また、外部からの音声信号は、デジタルオーディオプレーヤ44から入力された。ただし、CDやDVD等、他の記録媒体に記録された音声を再生する装置から入力することもできる。また、マイクロフォンにより、音声(ボイスや演奏等)を電気信号に変換したものを、外部からの入力音声信号とすることもできる。さらに、外部からの音声信号は、LANやインターネット等の通信回線を介して与えられるものでもよい。
【0222】
(6)上記では、タイミング指示バンド55の幅Wの変化により、操作タイミングを指示した。これは、上記の第1〜第3変形例にも適用できる。具体的には次の通りである。
【0223】
上記第1変形例において、表示はされないが、位置指示オブジェクトと相似な基準図形(基準線57に相当)を、位置指示オブジェクトと中心を同一にして配置する。位置指示オブジェクトの形状が変化して基準図形に達した時が、音楽のビートに一致するように、位置指示オブジェクトの形状を変化させる。そうすると、基準図形と位置指示オブジェクトとの位置関係が第1所定関係(例えば第1所定距離)になった時に、基準図形に重ねてタイミング指示オブジェクトの表示を開始し、その線幅を大きくしていき、基準図形と位置指示オブジェクトとが一致した時に、タイミング指示オブジェクトの線幅を最も大きくし、それを過ぎて位置指示オブジェクトが変化することに応じて、タイミング指示オブジェクトの線幅を小さくしていき、基準図形と位置指示オブジェクトとの位置関係が第2所定関係(例えば第2所定距離)になった時に、タイミング指示オブジェクトを消滅する。
【0224】
また、上記第2変形例において、表示はされないが、位置指示オブジェクトと近接して基準点を配置する。位置指示オブジェクトの模様は第1所定模様から変化するところ、位置指示オブジェクトの模様と第2所定模様との関係が第1所定関係になった時に、基準点に重ねてタイミング指示オブジェクトの表示を開始し、その面積を大きくしていき、位置指示オブジェクトの模様が第2所定模様になった時に、タイミング指示オブジェクトの面積を最も大きくし、それを過ぎて位置指示オブジェクトが変化することに応じて、タイミング指示オブジェクトの面積を小さくしていき、位置指示オブジェクトの模様と第2所定模様との関係が第2所定関係になった時に、タイミング指示オブジェクトを消滅する。この例において、「模様」を「色彩」と読みかえることもできる。
【0225】
(7)上記では、タイミング指示バンド55の幅Wの変化により、操作タイミングを指示した。ただし、タイミング指示バンド55の模様又は色彩といった形態の変化により、操作タイミングを指示することもできる。また、操作タイミングを指示するタイミング指示オブジェクトの一例として、タイミング指示バンド55を挙げたが、タイミング指示オブジェクトの形態はこれに限定されない。また、タイミング指示オブジェクトを経路58ごとに設けることもできる。
【0226】
(8)上記では、位置指示オブジェクト53との位置関係に基づき、タイミング指示バンド55を変化させ、タイミング指示バンド55だけで、操作タイミングが分かるようにした。ただし、位置指示オブジェクト53との関連で始めて操作タイミングが分かるようにしてもよい。例えば、基準線57上にタイミング指示バンド55を予め表示しておき変化を与えない。また、例えば、タイミング指示とは無関係に、演出として変化を与える。
【0227】
また、指示すべきタイミングの時点又はその時点を挟む所定時間だけ、一定のタイミング指示バンド55を表示することもできる。
【0228】
(9)上記では、操作タイミングを明示すべく、タイミング指示バンド55を表示した。ただし、コンテンツによっては、操作タイミングを指示するタイミング指示オブジェクトを表示しなくても、プレイヤが操作タイミングを推測できる場合もあるので、タイミング指示オブジェクトを表示しないこともできる。
【0229】
(10)上記では、位置指示オブジェクト53と基準線57との位置関係に応じて、タイミング指示バンド55を画面に出現(非表示から表示)させた。ただし、基準線57上に、予めタイミング指示バンド55を表示しておき、位置指示オブジェクト53と基準線57との位置関係に応じて、上記の規則に従って、その幅Wを変化させることもできる。模様や色彩といった他の形態を変化させる場合も同様である。また、上記(6)の第1〜第3変形例の変形においても、同様であり、予めタイミング指示オブジェクトを表示しておき、それぞれの規則に従って変化させる。
【0230】
(11)上記では、オーディオ信号ALRのビートの発生タイミングを予測して、その予測結果に基づいて、位置指示オブジェクト53の移動開始垂直位置を決定し(図24のステップS226)、位置指示オブジェクト53が基準線57に到達した時をオーディオ信号ALRのビートに合わせた。このように、移動開始垂直位置を制御して、基準線57にて位置指示オブジェクト53とビートとを合わせた。移動開始垂直位置に応じて、位置指示オブジェクト53の画面への出現時期が変わるので、移動開始垂直位置の制御は、位置指示オブジェクト53の画面への出現タイミングの制御に相当する。また、移動開始垂直位置の制御は、変化開始タイミングの制御と言うこともできるし、また、軌道の制御と言うこともできる。
【0231】
また、上記の式(1)の長さhを一定にして、位置指示オブジェクト53の降下速度vを、内部ビート間隔tに応じて、変化させ、位置指示オブジェクト53が基準線57に到達した時をオーディオ信号ALRのビートに合わせることもできる。つまり、v=h/t、である。さらに、内部ビート間隔に応じて、位置指示オブジェクト53の加速度を制御し、位置指示オブジェクト53が基準線57に到達した時をオーディオ信号ALRのビートに合わせることもできる。
【0232】
以上のように、内部ビート間隔に応じて、位置指示オブジェクト53の出現タイミング、変化開始タイミング、軌道、速度又は加速度を制御することにより、その位置を制御して、位置指示オブジェクト53が基準線57に到達した時をオーディオ信号ALRのビートに合わせることができる。もちろん、出現タイミング、変化開始タイミング、軌道、速度及び加速度のうちの任意の組合せにより、位置指示オブジェクト53が基準線57に到達した時をオーディオ信号ALRのビートに合わせることもできる。なお、軌道は直線に限られず、例えば、放物線等の曲線やジグザグ線など、任意に設定可能である。
【0233】
また、上記第1〜第3変形例では、位置指示オブジェクトの形態が所定状態に達した時が、オーディオ信号ALRのビートに合うように、位置指示オブジェクトの出現や形態の変化を制御した。このような制御は、内部ビート間隔に応じて、位置指示オブジェクト53の出現タイミング、変化開始タイミング、変化速度若しくは変化加速度又はそれらの任意の組合せにより行うことができる。
【0234】
(12)上記では、オーディオ信号ALRは、外部から入力した。ただし、オーディオ信号ALRを外部メモリ33に予め格納しておき、位置指示オブジェクト53を移動する経路58やタイミングを予め設定しておくこともできる。この場合は、オーディオ信号ALRの解析が不要になるので、外部から任意のオーディオ信号ALRを入力する場合と比較して、ソフトウェア及びハードウェアを簡素化できる。もちろん、上記第1〜第3変形例においても同様である。
【0235】
(13)グローブ7に再帰反射シート11を取り付ける代わりに、赤外発光ダイオードのような自発光装置を取り付けることもできる。この場合は、カートリッジ3には、赤外発光ダイオード17は不要である。また、入力装置を使用せずに、イメージセンサやCCDなどの撮像装置により、被写体(例えばプレイヤの拳)を撮影し、画像解析して、動きを検出することもできる。
【0236】
(14)上記のストロボ撮影(赤外発光ダイオード17の点滅)及び差分処理は、好適な例を示しただけであって、本発明に必須の要素ではない。つまり、赤外発光ダイオード17は、点滅させなくてもよいし、また、赤外発光ダイオード17がなくてもよい。照射する光は赤外光に限られない。また、再帰反射シート11は本発明に必須の要素ではなく、撮像画像を解析して、入力装置(例えばグローブ)あるいは身体の特定部位(例えば手)が検知できればよい。撮像素子は、イメージセンサに限られず、CCDなどの他の撮像素子を使用できる。
【0237】
(15)グローブ7に代えて、プレイヤに撮像素子を備えた電子機器を持たせて、これを入力装置とすることもできる。この場合、テレビジョンモニタ5の画面の縁に沿って複数のマーカを取り付ける。このマーカを入力装置の撮像素子で撮影し、プレイヤが、画面のどこを指し示しているかを判断し、そこに操作オブジェクトを表示する。マーカは、例えば、赤外発光ダイオードである。また、マーカを再帰反射シートとすることもできる。この場合は、入力装置に、発光素子を取り付ける。さらに、発光素子を点滅させて、差分画像を処理すれば、上記と同様の効果を得ることができる。
【0238】
(16)上記では、グローブ7に再帰反射シート11を取り付けたが、再帰反射シートを取り付ける対象はグローブに限定されない。また、グローブは1つでもよい。実行する内容によって、入力具の形状や再帰反射シートを取り付ける位置を任意に設定できる。
【0239】
(17)上記では、撮像により得られた画像に基づいて、グローブ7の動きを検出し、グローブ画像51を操作した。ただし、グローブ画像51等の操作オブジェクトの操作は、ジョイスティックや方向キー等を備えた一般的なゲーム機用コントローラで行うこともできる。
【0240】
また、各々プレイヤの入力操作を検出する所定数の入力部(例えばスイッチ)を有し、各入力部からの操作信号を受け付け、それらをプロセッサ31に与えるコントローラを使用することができる。プロセッサ31は、このコントローラからの各入力部の操作信号に応答する操作オブジェクトを表示する。この場合、例えば、4つの入力部を用意し、それぞれを、経路58−1〜58−4に対応させる。経路58−1を移動する位置指示オブジェクト53は、対応する入力部の操作にだけ応答する。他の経路58−2〜58−4の位置指示オブジェクト53についても同じである。
【0241】
これらのようなコントローラを用いれば、操作信号により、操作オブジェクトを制御できるので、動きの検知のための画像処理等が不要で、処理負荷を軽減できる。なお、このようなコントローラは、プレイヤが、各入力部を手で操作するものであってもよいし、マット型にして足で踏み込んで操作するものであってもよい。
【0242】
(18)上記では、カートリッジ方式を採用しているが、これを採用せず、カートリッジ3に搭載した各機能をアダプタ1に搭載することもできる。
【0243】
(19)上記では、グローブ動き判定は、2回だけ過去の位置を原点として行った(図12(a)〜図12(f)参照)。しかし、この回数は、これに限定されず、試行錯誤して、3以上の適切な回数を設定できる。また、図16に示すように、次のビデオ同期信号による割り込みがあるまでに1回の処理を完了している。つまり、1ビデオフレームの表示中に1回の処理を完了している。ただし、1回の処理を、2ビデオフレームなどのN(Nは2以上の整数)ビデオフレームで完了するようにすることもできる。例えば、1回の処理を2ビデオフレームで完了するようにすると、グローブ7L及び7Rの位置は、2ビデオフレームに1回算出されることになる。
【0244】
(20)上記の左右決定処理では、図11に示すように、前々回の位置TPL1,TPR1と前回の位置TPL2,TPR2とから求めた速度ベクトルVL,VRのみに基づいて、グローブ7L,7Rの予測位置TPLp,TPRpを算出した。ただし、前々回の位置TPL1,TPR1のさらに前の位置TPL0,TPR0をも利用して、予測位置TPLp,TPRpを算出することもできる。位置TPL0,TPL1及びTPL2に注目する(左予測)。位置TPL0を始点、位置TPL1を終点とする速度ベクトルVL0、及び、位置TPL1を始点、位置TPL2を終点とする速度ベクトルVL1を算出する。速度ベクトルVL0とVL1とのなす角度と、速度ベクトルVL1と予測ベクトルVLpとのなす角度と、が同じになるように、予測ベクトルVLpの方向を決定する。さらに、比r=(速度ベクトルVL1の大きさ)/(速度ベクトルVL0の大きさ)を求めて、比rを速度ベクトルVL1の大きさに乗算し、その結果を、予測ベクトルVLpの大きさとする。そして、速度ベクトルVL1の終点を予測ベクトルVLpの始点とし、予測ベクトルVLpの終点を、予測位置TPLpとする。右予測についても同様である。このようにすると、より精度良く、予測位置を算出できる。
【0245】
(21)上記では、仮想画面は、不動領域、ストレート領域、及びクロス領域により構成されていた。そして、入力具7L,7Rが位置する領域に応じて、基本的姿態のグローブ、ストレートパンチ、及びクロスパンチが表示された。ただし、仮想画面の構成は、これに限定されず、コンテンツに応じて、領域の数を増減したり、各領域の機能(入力具がその領域に位置したときに、どのような画像を表示するかとか、どのような処理をするかとか)を変更したり、することができる。
【0246】
(22)上記では、左用と右用に、左右対称の2つの仮想画面を用意した。なぜなら、左手用の入力具7Lの機能(パンチのため)と右手用の入力具7Rの機能(パンチのため)とが同じだからである。ただし、必ずしも左右対称の仮想画面を用意する必要はなく、コンテンツに応じて、左右で全く異なる仮想画面を用意することもできる。例えば、左手用の入力具の機能(例えば盾を動かすため)と右手用の入力具の機能(例えば剣を振るため)とが異なる場合、左右の仮想画面を異ならせることができる。仮想画面が異なるとは、仮想画面に形成された領域の数、範囲、及び/又は機能が異なることである。
【0247】
(23)上記では、外部ビート間隔Tvを求める際に定数Bを使用し、その例として、5フレームを挙げた(図7参照)。また、暫定内部ビート間隔Tuの起点を調整するための定数Aの例として、5フレームを例に挙げた(図9参照)。ただし、定数A及びBの値は、適宜変更可能であり、これらに限定されるものではない。
【0248】
(24)上記では、タイミング指示バンド55の出現開始のための距離Lと、タイミング指示バンド55の消滅のための距離Lと、を同一にした(図6参照)。ただし、これらを異ならせることもできる。
【図面の簡単な説明】
【0249】
【図1】本発明の実施の形態によるエンターテインメントシステムの全体構成を示す図である。
【図2】図1のグローブ7Rの斜視図である。
【図3】図1のカートリッジ3の斜視図である。
【図4】図1のカートリッジ3の電気的構成を示す図である。
【図5】図1のテレビジョンモニタ5に表示されたプレイ画面の例示図である。
【図6】図5のタイミング指示バンド55の説明図である。
【図7】(a)図1のMCU35に入力される音声信号ALRの波形図である。(b)図7(a)の波形から得られた差分音声信号Dfの波形図である。
【図8】(a)発生頻度テーブルの例示図である。(b)外部ビート間隔Tvの発生頻度の分布図である。
【図9】内部ビートの生成方法の詳細な説明図である。
【図10】グローブ検出処理の説明図である。
【図11】左右決定処理の説明図である。
【図12】(a)速度ベクトル算出の説明図である。(b)グローブ動き判定処理の説明図である。(c)速度ベクトル算出の説明図である。(d)グローブ動き判定処理の説明図である。(e)速度ベクトル算出の説明図である。(f)グローブ動き判定処理の説明図である。
【図13】図4のMCU35による音声データ取得処理の流れを示すフローチャートである。
【図14】図4のMCU35による外部ビート検出処理の流れを示すフローチャートである。
【図15】図4のMCU35による内部ビート生成処理の流れを示すフローチャートである。
【図16】図4のプロセッサ31による処理の流れを示すフローチャートである。
【図17】図16のステップS3の撮影処理の流れを示すフローチャートである。
【図18】図16のステップS5の実グローブ検出処理の流れを示すフローチャートである。
【図19】図18のステップS32の左右上下端検出処理の流れを示すフローチャートである。
【図20】図18のステップS34の2点位置決定処理の流れを示すフローチャートである。
【図21】図18のステップS37の左右決定処理の流れを示すフローチャートである。
【図22】図18のステップS39のグローブ動き判定処理の流れを示すフローチャートである。
【図23】図16のステップS7のグローブ画像制御処理の流れを示すフローチャートである。
【図24】図16のステップS9の位置指示オブジェクト制御処理の流れを示すフローチャートである。
【図25】図16のステップS10のタイミング指示バンド制御処理の流れを示すフローチャートである。
【図26】図16のステップS11の当り判定処理の流れを示すフローチャートである。
【符号の説明】
【0250】
1…アダプタ、3…カートリッジ、5…テレビジョンモニタ、7L,7R…グローブ、9…AVケーブル、11L,11R…再帰反射シート、13…撮像ユニット、15…赤外線フィルタ、17…赤外発光ダイオード、31…プロセッサ、33…外部メモリ、37…イメージセンサ、35…MCU、44…デジタルオーディオプレーヤ、51L,51R…グローブ画像、53…位置指示オブジェクト、55…タイミング指示バンド、57…基準線、58−1〜58−4…移動経路。

【特許請求の範囲】
【請求項1】
プレイヤからの入力に応答する操作オブジェクトを表示装置に表示する第1制御手段と、
前記操作オブジェクトを合わせるべき位置を指示する位置指示オブジェクトの出現位置又は第1の所定の変化を開始する位置をランダムに決定する位置決定手段と、
前記位置決定手段が決定した位置で、音声に応じて、前記位置指示オブジェクトの出現又は前記第1の所定の変化を開始する第2制御手段と、
前記位置指示オブジェクトが所定の状態に達するタイミングで、前記操作オブジェクトの位置が、前記位置指示オブジェクトの位置と実質的に一致したか否かを判断する判断手段と、
前記判断手段が一致したと判断した場合、エフェクトを生成するエフェクト手段と、を備えるエンターテインメント装置。
【請求項2】
撮像により得られた画像に基づいて、三次元空間中の前記プレイヤの動きを検出する検出手段をさらに備え、
前記第1制御手段は、検出された前記プレイヤの動きに応答する前記操作オブジェクトを表示する、請求項1記載のエンターテインメント装置。
【請求項3】
前記検出手段は、前記プレイヤの動きを撮像した画像に基づいて、三次元空間中の前記プレイヤの動きを検出する、請求項2記載のエンターテインメント装置。
【請求項4】
前記検出手段は、前記プレイヤが動かす再帰反射体を撮像する側から所定の光を照射した時に撮像した画像に基づいて、三次元空間中の前記プレイヤの動きを検出する、請求項3記載のエンターテインメント装置。
【請求項5】
前記検出手段は、前記所定の光を照射した時に撮像した画像と、前記所定の光を消灯した時に撮像した画像と、の差分画像に基づいて、三次元空間中の前記プレイヤの動きを検出する、請求項4記載のエンターテインメント装置。
【請求項6】
前記検出手段は、前記表示装置の画面の縁に沿って配置された複数のマーカを前記プレイヤが動かす撮像装置により撮像した画像に基づいて、三次元空間中の前記プレイヤの動きを検出する、請求項2記載のエンターテインメント装置。
【請求項7】
各々前記プレイヤの入力操作を検出する所定数の入力部を有し、前記各入力部からの操作信号を受け付ける検出手段をさらに備え、
前記第1制御手段は、前記操作信号に応答する前記操作オブジェクトを表示する、請求項1記載のエンターテインメント装置。
【請求項8】
前記操作オブジェクトを前記位置指示オブジェクトの位置に合わせるタイミングを指示するタイミング指示オブジェクトを表示する第3制御手段をさらに備える請求項1から7のいずれかに記載のエンターテインメント装置。
【請求項9】
前記第2制御手段は、前記位置指示オブジェクトを、前記タイミング指示オブジェクトの位置に向かって移動又は前記タイミング指示オブジェクトの形態に向かって変化させ、
前記所定の状態に達するタイミングは、前記位置指示オブジェクトが前記タイミング指示オブジェクトに達するタイミングであり、
前記第2制御手段は、前記位置指示オブジェクトが前記タイミング指示オブジェクトに達するタイミングが前記音声に合うように、前記位置指示オブジェクトを制御する、請求項8記載のエンターテインメント装置。
【請求項10】
前記第3制御手段は、前記位置指示オブジェクトが前記所定の状態に達するタイミングで、前記タイミング指示オブジェクトに所定の結果を引き起こす、請求項9記載のエンターテインメント装置。
【請求項11】
前記音声は予め定められた音声である、請求項1から10のいずれかに記載のエンターテインメント装置。
【請求項12】
前記音声は、外部から入力される音声である、請求項1から10のいずれかに記載のエンターテインメント装置。
【請求項13】
前記第2制御手段は、
外部から入力される前記音声を解析して、当該音声中の周期的な反復を検出し、当該周期的な反復の起点の発生タイミングを予測する予測手段と、
予測された前記発生タイミングで、前記位置指示オブジェクトが前記所定の状態に達するように、前記位置指示オブジェクトの制御を実行する実行手段と、を含む請求項12記載のエンターテインメント装置。
【請求項14】
前記実行手段は、予測された前記発生タイミングで、前記位置指示オブジェクトが前記所定の状態に達するように、前記位置指示オブジェクトの位置及び/又は形態の変化を制御する、請求項13記載のエンターテインメント装置。
【請求項15】
前記実行手段は、予測された前記発生タイミングに基づいて、前記位置指示オブジェクトの変化開始タイミング、画面への出現タイミング、軌道、速度及び加速度のうちの少なくとも1つを決定し、決定結果に基づいて、前記位置指示オブジェクトの位置及び/又は形態の変化を制御する、請求項14記載のエンターテインメント装置。
【請求項16】
表示装置の画面上で、操作の位置及びタイミングを指示する位置及びタイミング指示装置であって、
前記画面上で前記操作の位置を指示する位置指示オブジェクトを制御する第1制御手段と、
前記画面上で前記操作のタイミングを指示するタイミング指示オブジェクトを制御する第2制御手段と、を備え、
前記第1制御手段は、前記位置指示オブジェクトの位置又は形態を所定状態に向かって変化させ、
前記第2制御手段は、前記位置指示オブジェクトが前記所定状態に達するタイミングで、前記タイミング指示オブジェクトに所定の結果を引き起こし、
前記タイミング指示オブジェクトが前記所定の結果を引き起こした時が、前記操作のタイミングである、位置及びタイミング指示装置。
【請求項17】
前記第2制御手段は、前記位置指示オブジェクトと前記所定状態との間の関係が第1所定関係になった時に、前記タイミング指示オブジェクトを出現又は変化を開始し、前記位置指示オブジェクトが前記所定状態に達したタイミングで前記タイミング指示オブジェクトに前記所定の結果を引き起こし、前記位置指示オブジェクトが前記所定状態を通過した後、前記位置指示オブジェクトと前記所定状態との間の関係が第2所定関係になった時に、前記タイミング指示オブジェクトを消滅又は変化を停止する、請求項16記載の位置及びタイミング指示装置。
【請求項18】
前記第1制御手段は、前記位置指示オブジェクトが前記所定状態に達するタイミングが音声に合うように、前記位置指示オブジェクトを制御する、請求項16又は18記載の位置及びタイミング指示装置。
【請求項19】
前記音声は、外部から入力される音声である、請求項18記載の位置及びタイミング指示装置。
【請求項20】
前記音声は予め定められた音声である、請求項18記載の位置及びタイミング指示装置。
【請求項21】
プレイヤからの入力に応答する操作オブジェクトを前記表示装置に表示する第3制御手段をさらに備え、
前記位置指示オブジェクトは、前記操作オブジェクトを合わせるべき位置を指示し、
前記タイミング指示オブジェクトは、前記操作オブジェクトを前記位置指示オブジェクトの位置に合わせるタイミングを指示する、請求項16から20のいずれかに記載の位置及びタイミング指示装置。
【請求項22】
撮像により得られた画像に基づいて、三次元空間中の前記プレイヤの動きを検出する検出手段をさらに備え、
前記第3制御手段は、検出された前記プレイヤの動きに応答する前記操作オブジェクトを表示する、請求項21記載の位置及びタイミング指示装置。
【請求項23】
各々前記プレイヤの入力操作を検出する所定数の入力部を有し、前記各入力部からの操作信号を受け付ける検出手段をさらに備え、
前記第3制御手段は、前記操作信号に応答する前記操作オブジェクトを表示する、請求項21記載の位置及びタイミング指示装置。
【請求項24】
プレイヤからの入力に応答する操作オブジェクトを表示装置に表示するステップと、
前記操作オブジェクトを合わせるべき位置を指示する位置指示オブジェクトの出現位置又は第1の所定の変化を開始する位置をランダムに決定するステップと、
決定した前記位置で、音声に応じて、前記位置指示オブジェクトの出現又は前記第1の所定の変化を開始するステップと、
前記位置指示オブジェクトが所定の状態に達するタイミングで、前記操作オブジェクトの位置が、前記位置指示オブジェクトの位置と実質的に一致したか否かを判断するステップと、
一致したと判断した場合、エフェクトを生成するステップと、を含む映像制御方法。
【請求項25】
表示装置の画面上で、操作の位置及びタイミングを指示する位置及びタイミング指示方法であって、
前記画面上で前記操作の位置を指示する位置指示オブジェクトを制御するステップと、
前記画面上で前記操作のタイミングを指示するタイミング指示オブジェクトを制御するステップと、を含み、
前記位置指示オブジェクトを制御する前記ステップは、前記位置指示オブジェクトの位置又は形態を所定状態に向かって変化させるステップを含み、
前記タイミング指示オブジェクトを制御するステップは、前記位置指示オブジェクトが前記所定状態に達するタイミングで、前記タイミング指示オブジェクトに所定の結果を引き起こすステップを含み、
前記タイミング指示オブジェクトが前記所定の結果を引き起こした時が、前記操作のタイミングである、位置及びタイミング指示方法。

【図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

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate