トップ :: G 物理学 :: G01 測定;試験

【発明の名称】 検出装置
【発明者】 【氏名】上島 拓

【要約】 【課題】撮影された入力装置の像が、手及び足のいずれに装着されたものであるかを区別できる検出装置を提供することである。

【構成】手に装着された入力装置3及び足に装着された入力装置5が赤外線フィルタ9の背面側に配置されたイメージセンサ26により撮影される。イメージセンサ26が生成する画像を上半分の領域30と下半分の領域32とに分割する。上半分の領域30に写り込んだ像を手に装着された入力装置3であるとみなし、下半分の領域32に写り込んだ像を足に装着された入力装置5であるとみなす。
【特許請求の範囲】
【請求項1】
少なくともプレイヤの一方の手に装着される、第1反射体を備える第1入力装置、及び、少なくとも前記プレイヤの一方の足に装着される、第2反射体を備える第2の入力装置を検出するための検出装置であって、
前記第1入力装置及び前記第2入力装置を撮影する撮像手段と、
前記撮像手段が生成した画像の第1領域に写り込んだ像を前記第1反射体の像とみなし、当該画像の第2領域に写り込んだ像を前記第2反射体の像とみなす情報処理手段と、を備え、
前記撮像手段が生成する前記画像は、向かい合う第1の辺及び第2の辺を有すると共に、前記第1の辺及び前記第2の辺に垂直な向かい合う第3の辺及び第4の辺を有し、
前記第1領域は、前記第1の辺から前記第2の辺に向かって拡がっており、前記第2領域は、前記第2の辺から前記第1の辺に向かって拡がっており、
前記第1入力装置を装着した腕を曲げた状態で、前記第1入力装置が撮影されたときに、前記第1反射体の像の位置を第1の位置とし、前記プレイヤが前記第1入力装置を装着した腕を伸ばした状態で、前記第1入力装置が撮影されたときに、前記第1反射体の像の位置を第2の位置としたときに、前記第1の辺から前記第2の辺に向かう方向は、前記第2の位置から前記第1の位置に向かう方向であり、前記第2の辺から前記第1の辺に向かう方向は、前記第1の位置から前記第2の位置に向かう方向である、検出装置。
【請求項2】
前記検出装置は、床面に載置され、前記撮像手段の撮像面は、鋭角である所定角度だけ水平面から傾いて固定される、請求項1記載の検出装置。
【請求項3】
前記情報処理手段は、前記第1反射体であるとみなした前記像の位置情報に基づいて、表示装置に第1映像を表示し、かつ、前記第2反射体であるとみなした前記像の位置情報に基づいて、前記表示装置に第2映像を表示する、請求項1又は2記載の検出装置。
【発明の詳細な説明】【技術分野】
【0001】
本発明は、プレイヤの手足にそれぞれ装着された、反射体を備えた入力装置を、それらを撮影することによって検出するための検出装置及びその関連技術に関する。
【背景技術】
【0002】
本件出願人による特許文献1に開示されているゴルフゲームシステムは、ゲーム機及びゴルフクラブ型入力装置を含み、ゲーム機のハウジングの内部には撮像ユニットが収納され、この撮像ユニットは、イメージセンサ及び赤外発光ダイオード等から構成される。赤外発光ダイオードによって撮像ユニットの前方の所定範囲に赤外光が間欠的に照射され、したがって、イメージセンサは、その範囲内で移動するゴルフクラブ型入力装置に設けられた反射体を間欠的に撮影する。このような反射体のストロボ映像を処理することによって、入力装置の動きを検出する。
【0003】
ところで、特許文献1には、反射体を備えた入力装置をプレイヤの手足に装着して、四肢を利用したダンスゲームを行うことができる旨の記載がある。
【0004】
【特許文献1】特開2004−85524号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1には、撮影された入力装置の像が、手及び足のいずれに装着されたものであるかを区別する手法の記載はない。
【0006】
そこで、本発明の目的は、撮影された入力装置の像が、手及び足のいずれに装着されたものであるかを区別できる検出装置及びその関連技術を提供することである。
【課題を解決するための手段】
【0007】
本発明の観点によると、検出装置は、少なくともプレイヤの一方の手に装着される、第1反射体を備える第1入力装置、及び、少なくとも前記プレイヤの一方の足に装着される、第2反射体を備える第2の入力装置を検出するための検出装置であって、前記第1入力装置及び前記第2入力装置を撮影する撮像手段と、前記撮像手段が生成した画像の第1領域に写り込んだ像を前記第1反射体の像とみなし、当該画像の第2領域に写り込んだ像を前記第2反射体の像とみなす情報処理手段と、を備え、前記撮像手段が生成する前記画像は、向かい合う第1の辺及び第2の辺を有すると共に、前記第1の辺及び前記第2の辺に垂直な向かい合う第3の辺及び第4の辺を有し、前記第1領域は、前記第1の辺から前記第2の辺に向かって拡がっており、前記第2領域は、前記第2の辺から前記第1の辺に向かって拡がっており、前記第1入力装置を装着した腕を曲げた状態で、前記第1入力装置が撮影されたときに、前記第1反射体の像の位置を第1の位置とし、前記プレイヤが前記第1入力装置を装着した腕を伸ばした状態で、前記第1入力装置が撮影されたときに、前記第1反射体の像の位置を第2の位置としたときに、前記第1の辺から前記第2の辺に向かう方向は、前記第2の位置から前記第1の位置に向かう方向であり、前記第2の辺から前記第1の辺に向かう方向は、前記第1の位置から前記第2の位置に向かう方向である。
【0008】
この構成によれば、第1領域及び第2領域を設定することにより、画像に写り込んだ像が、手に装着された第1反射体であるのか、あるいは、足に装着された第2反射体であるのか、を簡易に区別できる。
【0009】
上記検出装置において、前記検出装置は、床面に載置され、前記撮像手段の撮像面は、鋭角である所定角度だけ水平面から傾いて固定される。
【0010】
上記検出装置において、前記情報処理手段は、前記第1反射体であるとみなした前記像の位置情報に基づいて、表示装置に第1映像を表示し、かつ、前記第2反射体であるとみなした前記像の位置情報に基づいて、前記表示装置に第2映像を表示する。
【発明を実施するための最良の形態】
【0011】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、図中、同一または相当部分については同一の参照符号を付してその説明を援用する。
【0012】
図1は、本発明の実施の形態によるゲームシステムの全体構成を示すブロック図である。図1に示すように、このゲームシステムは、ゲーム機1、プレイヤの両手にそれぞれ装着される入力装置3、プレイヤの右足に装着される入力装置5、及びテレビジョンモニタ100を備える。本実施の形態では、このシステムを利用して、バトルゲームを実行する例を挙げる。
【0013】
ゲーム機1は、床面に載置される。そして、ゲーム機1は、A/Vケーブル102により、テレビジョンモニタ100に接続される。さらに、ゲーム機1には、図示していないが、ACアダプタあるいは電池により電源電圧が供給される。
【0014】
図2(a)は、図1の入力装置3の斜視図である。図2(a)を参照して、入力装置3は、化学繊維あるいは布製のベルト11を含む。ベルト11の表面には、帯状の再帰反射シート13が取り付けられる。図示しないが、ベルト11には、ベルクロ(商標)テープが取り付けられている。プレイヤは、このベルクロ(商標)テープにより、手首にベルト11を装着する。
【0015】
ここで、プレイヤの右手に装着される入力装置3を入力装置3R、プレイヤの左手に装着される入力装置3を入力装置3Lと表記することもある。また、入力装置3Rの再帰反射シート13を再帰反射シート13R、入力装置3Lの再帰反射シート13を再帰反射シート13Lと表記することもある。
【0016】
図2(b)は、図1の入力装置5の斜視図である。図2(b)を参照して、入力装置5は、化学繊維あるいは布製のベルト15を含む。ベルト15には、化学繊維あるいは布製で内部にクッションを備えた円柱状部材17が取り付けられる。円柱状部材17の一方の底面には、再帰反射シート19が取り付けられる。図示しないが、ベルト15には、ベルクロ(商標)テープが取り付けられている。プレイヤは、このベルクロ(商標)テープにより、足首にベルト15を装着する。ただし、この場合、再帰反射シート19が床面を向くように、かつ、円柱状部材17が外側のくるぶしの側にくるように、ベルト15が装着される。
【0017】
図1に戻って、ゲーム機1は、その前面側に、赤外光のみを透過する赤外線フィルタ9が設けられ、さらに、赤外線フィルタ9を囲むように、赤外光を発生する4つの赤外発光ダイオード7が露出している。
【0018】
図3は、図1のゲーム機1の電気的構成を示す図である。図3に示すように、ゲーム機1は、赤外線フィルタ9の背面側に配置されるイメージセンサ26、赤外発光ダイオード7、プロセッサ20、ROM(read only memory)22、及びバス24を含む。
【0019】
プロセッサ20は、4つの赤外発光ダイオード7を間欠的に駆動して、赤外線フィルタ9の前方に、間欠的に赤外光を照射する。そして、赤外発光ダイオード7からの赤外光は、その照射範囲に入った手の再帰反射シート13及び/又は足の再帰反射シート19により反射される。従って、イメージセンサ26の撮影範囲内に入った再帰反射シート13及び/又は19からの反射赤外光は、イメージセンサ26に入力される。このようにして、イメージセンサ26により、その撮影範囲内に入った入力装置3及び/又は5が撮影される。赤外光は間欠的に照射されるところ、赤外光の消灯時においても、イメージセンサ26による撮影処理は行われている。
【0020】
イメージセンサ26が出力する点灯時及び消灯時のそれぞれのアナログ画像信号は、プロセッサ20に内蔵されたA/Dコンバータ(図示せず)によってデジタル画像信号に変換される。そして、プロセッサ20は、点灯時のデジタル画像信号と消灯時のデジタル画像信号との差分を求めて、この差分信号(差分画像)DIを基に、入力装置3及び5の動きを検出し、ゲーム処理に反映する。
【0021】
プロセッサ20の内部構成を簡単に説明する。プロセッサ20は、図示しないが、CPU(central processing unit)、グラフィックスプロセッサ、サウンドプロセッサおよびDMAコントローラ等の各種機能ブロックを含むとともに、アナログ信号を取り込むときに用いられる上記A/Dコンバータや、外部の電子回路や電子部品等から入力信号を受け、かつ出力信号をそれらに与える入出力制御回路を含む。イメージセンサ26や赤外発光ダイオード7は、入出力制御回路を介してCPUにより制御される。
【0022】
CPUは、ROM22に格納されたゲームプログラムを実行し、各種演算(入力装置3及び5の動き検出を含む。)を行う。グラフィックスプロセッサやサウンドプロセッサは、CPUによる演算結果に従って、ROM22に格納された画像データや音声データを読み込んで、ビデオ信号やオーディオ信号を生成し、A/Vケーブル102に出力する。ビデオ信号およびオーディオ信号は、A/Vケーブル102によりテレビジョンモニタ100に与えられ、応じて、テレビジョンモニタ100に映像が表示され、そのスピーカ(図示せず)から音声が出力される。さらに、プロセッサ20には、図示しないが内部メモリが設けられ、この内部メモリは、例えば、RAM(random access memory)により構成される。内部メモリは、ワーキング領域、カウンタ領域、レジスタ領域、テンポラリデータ領域、及び/又はフラグ領域等として利用される。
【0023】
次に、本発明の特徴の1つである。手足の判別方法について説明する。
【0024】
図4は、手足の判別方法の説明図である。図4を参照して、プロセッサ20が生成した差分画像DIに基づいて、手足の判別を行う。なお、この差分画像DIは、イメージセンサ26が出力した点灯時画像と消灯時画像との差分画像である。
【0025】
差分画像DIの左上角を原点Oとし、水平右方向をX軸の正、垂直下方向をY軸の正とする。また、座標値の単位はピクセルとする。差分画像DIは、半分よりやや下の所定位置で2分割され、領域30(右上斜め斜線部)と領域32(右下斜め斜線部)とが設定される。
【0026】
ここで、差分画像DIの、X軸に沿った辺を第1の辺、第1の辺に向かい合う辺を第2の辺、Y軸に沿った辺を第3の辺、第3の辺に向かい合う辺を第4の辺とする。そうすると、領域30は、第1の辺から第2の辺に向かって拡がっており、領域32は、第2の辺から第1の辺に向かって拡がっている。
【0027】
プレイヤが、ゲーム機1の前に起立して、入力装置3を装着した腕を曲げた状態で、入力装置3が撮影されたときに、再帰反射シート13の像の位置を第1の位置とし、プレイヤが入力装置3を装着した腕を伸ばした状態で、入力装置3が撮影されたときに、再帰反射シート13の像の位置を第2の位置とする。そうしたときに、差分画像DIの第1の辺から第2の辺に向かう方向は、第2の位置から第1の位置に向かう方向であり、差分画像DIの第2の辺から第1の辺に向かう方向は、第1の位置から第2の位置に向かう方向である。
【0028】
プレイヤが自分の前方に腕を伸ばす動作(例えばパンチ)が撮影された場合、連続して得られた差分画像DI上では、再帰反射シート13が、Y軸の負方向に大きく動いていく。一方、プレイヤが右手を右から左に水平に腕を振る動作(例えば右チョップ)が撮影された場合、連続して得られた差分画像DI上では、再帰反射シート13が、X軸の負方向に大きく動いていく。また、プレイヤが左手を左から右に水平に腕を振る動作(例えば左チョップ)が撮影された場合、連続して得られた差分画像DI上では、再帰反射シート13が、X軸の正方向に大きく動いていく。
【0029】
再帰反射シート13は手に装着されるので、これが撮影されたとき、通常、その像は、領域30に写りこむはずである。従って、プレイヤが、二本の足で起立して、手を振り動かしてゲームを行っているときは、通常、再帰反射シート13の像は領域30に存在することになる。一方、再帰反射シート19は足に装着されるので、これが撮影されたとき、通常、その像は、領域32に写りこむはずである。従って、プレイヤが、入力装置5を装着した足を蹴り上げたときは、通常、再帰反射シート19の像は領域32に存在することになる。なお、再帰反射シート19は、床面を向いているので、入力装置5を装着した足を蹴り上げないと、再帰反射シート19は撮影されない。
【0030】
再帰反射シート13の像が領域32に存在したり、再帰反射シート19の像が領域30に存在することは、稀であるため、本実施の形態では、差分画像DIの領域30に写りこんだ像は、入力装置3の再帰反射シート13であるとみなし、領域32に写りこんだ像は、入力装置5の再帰反射シート19であるとみなす。
【0031】
本実施の形態では、差分画像DIから、再帰反射シート13L、13R、及び19のうちの1つ又は2つを抽出する。つまり、差分画像DIに、これら3つが写っていたとしても、抽出するのは、2つである。従って、再帰反射シート13L、13R、及び19の全てが、差分画像DIに写りこんでいた場合、領域32に写りこんだ像、つまり、再帰反射シート19を優先して抽出する。従って、この場合、再帰反射シート13L及び13Rのうちの一方は、捨てられることになる。この詳細は、後述のフローチャートの説明で明らかになる。
【0032】
図5は、図3のプロセッサ20が実行する処理の全体的な流れを示すフローチャートである。図5を参照して、電源スイッチ(図示せず)がオンされると、ステップS1にて、プロセッサ20は、システムの初期設定を実行する。この処理で、各種変数や各種カウンタがクリア(0)される。ステップS3にて、プロセッサ20は、ROM22に格納されたアプリケーションプログラムに従った処理を実行する。このアプリケーションプログラムは、複数のプログラムを含む。ステップS5にて、プロセッサ20は、ビデオ同期信号による割り込みが発生するまで待機する。つまり、プロセッサ20は、ビデオ同期信号による割り込みが発生していない場合は、同じステップS5に戻り、ビデオ同期信号による割り込みが発生した場合は、ステップS7に進む。例えば、ビデオ同期信号による割り込みは、1/60秒ごとに発生する。この割り込みに同期して、ステップS7及びステップS9にて、プロセッサ20は、テレビジョンモニタ100に表示する画像を更新すると共に、音声の再生を行う。そして、プロセッサ20は、ステップS3に戻る。
【0033】
図6は、図5のステップS3のアプリケーションプログラムが実行する処理の1つである撮影処理を示すフローチャートである。図6を参照して、ステップS21において、プロセッサ20は、赤外発光ダイオード7を点灯する。ステップS23で、プロセッサ20は、イメージセンサ26から、赤外光点灯時の画像データを取得して、内部メモリに格納する。
【0034】
ここで、本実施の形態では、イメージセンサ26の例として、32ピクセル×32ピクセルのCMOSイメージセンサを使用する。従って、イメージセンサ26からは、画像データとして、32ピクセル×32ピクセルのピクセルデータが出力される。このピクセルデータは、A/Dコンバータにより、デジタルデータに変換されて、内部メモリ上の二次元配列P1[X][Y]の要素として格納される。
【0035】
ステップS25で、プロセッサ20は、赤外発光ダイオード7を消灯する。ステップS27にて、プロセッサ20は、イメージセンサ26から、赤外光消灯時の画像データ(32ピクセル×32ピクセルのピクセルデータ)を取得して、内部メモリに格納する。この場合、このピクセルデータは、内部メモリ上の二次元配列P2[X][Y]の要素として格納される。
【0036】
以上のようにして、ストロボ撮影が行われる。イメージセンサ26が出力する画像を構成する各ピクセルの位置を表す二次元座標系では、水平方向をX軸、垂直方向をY軸とし、1ピクセルを座標値の1単位とする。本実施の形態では、32ピクセル×32ピクセルのイメージセンサ26を用いているため、X=0〜31、Y=0〜31である。この点、上記のように、差分画像DIについても同じである。また、ピクセルデータは輝度値である。
【0037】
プロセッサ20は、撮影ルーチンによる撮影結果から、差分画像DIを算出して、差分画像DIから2つの注目点(第1注目点及び第2注目点)を抽出する。ここで、差分画像DIに再帰反射シートが写りこんでいるときは、その部分の輝度値は、他の部分より大きくなるので、経験的に定めた所定の閾値Thを超える輝度値を持つピクセルの領域を、再帰反射シートの像とする。そして、その像を形成するピクセルのうち、最大輝度値を持つピクセルを再帰反射シートの注目点とする。この点をフローチャートを用いて詳細に説明する。
【0038】
図7は、図5のステップS3のアプリケーションプログラムが実行する処理の1つである注目点抽出処理を示すフローチャートである。図7を参照して、ステップS41にて、プロセッサ20は、イメージセンサ26からの、赤外光点灯時のピクセルデータと、赤外光消灯時のピクセルデータと、の差分を算出して、配列Dif[X][Y]の要素として格納する。ここで、実施の形態では、32ピクセル×32ピクセルのイメージセンサ26を用いているため、X=0〜31、Y=0〜31、である。ステップS43にて、プロセッサ20は、変数nに「0」を代入する。
【0039】
ステップS45にて、プロセッサ20は、配列の要素Dif[n][0]〜Dif[n][31]をスキャンして、最大値を検出する。ステップS47にて、プロセッサ20は、検出した最大値が、所定の閾値Thより大きい場合は、ステップS49に進み、所定の閾値Th以下の場合は、ステップS51に進む。ステップS49では、プロセッサ20は、配列の要素max[n]として、所定の閾値Thを超えた最大値を代入する。一方、ステップS51にて、プロセッサ20は、配列の要素max[n]として、所定値(例えば、「0」)を代入する。
【0040】
ステップS53では、プロセッサ20は、変数nを1つインクリメントする。ステップS53にて、プロセッサ20は、変数nが「32」の場合、ステップS57に進み、そうでない場合は、ステップS45に戻る。このようにして、32ピクセル×32ピクセルの要素Dif[X][Y]に対して、列単位(32ピクセル)のスキャンを32回繰り返して、列毎に最大値を求め、配列の要素max[0]〜max[31]に格納する。そして、ステップS57にて、プロセッサ20は、2点抽出処理を実行する。
【0041】
図8は、図7のステップS57の2点抽出処理を示すフローチャートである。図8を参照して、ステップS71にて、プロセッサ20は、配列の要素max[0]〜max[31]をスキャンして、最大値を検出する。ステップS73にて、プロセッサ20は、検出した最大値を持つピクセルの座標を第1注目点の座標として保存する。ステップS75にて、プロセッサ20は、配列の要素max[0]〜max[31]のうち、ステップS73で検出した最大値を中心に所定範囲をマスクする。
【0042】
ステップS77にて、プロセッサ20は、配列の要素max[0]〜max[31]のうち、マスクされた所定範囲を除いてスキャンを実行し、最大値を検出する。ステップS79にて、プロセッサ20は、ステップS77で検出した最大値を持つピクセルの座標を第2注目点の座標として保存する。
【0043】
ステップS81にて、プロセッサ20は、X座標が小さい方を、第1注目点の座標とし、X座標が大きい方を、第2注目点の座標として、再設定する。つまり、差分画像DI上で、左の注目点を第1注目点とし、右の注目点を第2注目点とする。ステップS83にて、プロセッサ20は、第1注目点及び第2注目点の座標をスクリーン座標系に変換する。スクリーン座標系は、テレビジョンモニタ100への実際の表示に用いられる二次元座標系である。スクリーン座標系では、画面の中心を原点とし、水平右方向をx軸の正、垂直下方向をy軸の正とする。後述のバトルゲームでは、スクリーン座標系の第1及び第2注目点の座標が処理に使用される。
【0044】
図9は、図3のプロセッサ20が実行するゲーム処理の状態遷移図である。図9を参照して、ステップS100では、プロセッサ20は、プレイヤからの入力に基づいて、敵キャラクタ及びプレイヤキャラクタの選択処理を行う。その後、ステップS102にて、プロセッサ20は、敵キャラクタが出現するアニメーションをテレビジョンモニタ100に表示する。その後、ステップS104にて、プロセッサ20は、人物がプレイヤキャラクタへ変身するアニメーションをテレビジョンモニタ100に表示する。
【0045】
その後、ステップS106にて、プロセッサ20は、バトルゲームのためのインタラクティブな映像をテレビジョンモニタ100に表示する。プレイヤは、テレビジョンモニタ100を見ながら、入力装置3及び5が装着された手足を動かして、表示された敵キャラクタを攻撃したり、敵キャラクタの攻撃を回避することができる。つまり、プロセッサ20は、入力装置3及び5の動きを検出して、検出結果に応じて、敵キャラクタに対する様々な攻撃アニメーションを表示したり、敵の攻撃を回避するアニメーション表示する。
【0046】
ステップS108にて、プロセッサ20は、当該バトルゲームをクリアしたか否かを判断して、クリアの場合ステップS110に進み、負けの場合ステップS114に進む。ステップS108でクリアが判断された後、ステップS110では、プロセッサ20は、プレイヤキャラクタが敵キャラクタに止めを刺すアニメーションをテレビジョンモニタ100に表示する。その後、ステップS112にて、プロセッサ20は、プレイヤキャラクタが帰還するアニメーションをテレビジョンモニタ100に表示して、その終了後、ステップS100に戻る。一方、ステップS108で負けが判断された後、ステップS114にて、プロセッサ20は、プレイヤがゲームを続ける操作を行ったか否かを判断し、YESの場合ステップS100に戻り、NOの場合バトルゲームを終了する。
【0047】
図10は、図9のステップS110のバトルゲームで実行されるキック判定処理の流れを示すフローチャートである。図10を参照して、ステップS120にて、プロセッサ20は、第1注目点及び第2注目点のいずれかが、図4の領域(キックエリア)32に存在するか否かを判断し、存在しない場合、この処理を終了し、存在する場合、プレイヤがキックを行ったとみなして、ステップS122に進む。
【0048】
ステップS122にて、プロセッサ20は、プレイヤのステートをキックに設定する。ステップS124にて、プロセッサ20は、敵キャラクタがプレイヤキャラクタにキックされるアニメーションをテレビジョンモニタ100に表示する。ステップS126にて、プロセッサ20は、第1注目点及び第2注目点の過去及び現在のxy座標をクリアして、この処理を終了する。このように、第1注目点及び第2注目点のいずれかが、図4の領域(キックエリア)32に存在する場合、領域30に存在する他方の注目点は無視される。つまり、パンチ及びチョップより、キックが優先される。従って、このキック判定は、後述のパンチ・チョップ・つかみ判定処理の前に実行される。また、このキック判定は、プレイヤのステートが、必殺技のときや、つかみのときは実行されない。さらに、このキック判定により、キックされたとみなしたときは、後述のパンチ・チョップ・つかみ判定処理は実行されない。
【0049】
図11及び図12は、図9のステップS106のバトルゲームで実行されるパンチ・チョップ・つかみ判定処理の流れを示すフローチャートである。図11を参照して、ステップS140にて、プロセッサ20は、変数iに「0」を代入する。ステップS142にて、プロセッサ20は、所定ビデオフレーム数分だけ過去のy座標データ及び現在のy座標データに基づいて、第(i+1)注目点のy方向の移動距離を算出して、配列の要素yd[i]に代入する。ステップS144にて、プロセッサ20は、変数iを1つインクリメントする。ステップS146にて、プロセッサ20は、変数iが「2」か否かを判断して、YESの場合ステップS148に進み、NOの場合ステップS142に戻る。このようにして、第1注目点のy方向の移動距離yd[0]及び第2注目点のy方向の移動距離yd[1]が算出される。なお、ビデオフレームの更新の度に、第1及び第2注目点の座標が求められる(図5、図7、及び図8参照)。
【0050】
ステップS148にて、プロセッサ20は、移動距離yd[0]及びyd[1]の双方について、それらの絶対値が閾値yT1より大、かつ、それらの符合が負、か否かを判断し、これらの条件が満足されている場合、プレイヤが両腕を同時に前方に伸ばしたとみなしてステップS154に進み、それ以外は、ステップS150に進む。ステップS150にて、プロセッサ20は、移動距離yd[0]及びyd[1]の一方について、その絶対値が閾値yT1より大、かつ、その符合が負、か否かを判断し、これらの条件が満足されている場合、プレイヤが一方の腕を前方に伸ばしたとみなしてステップS152に進み、それ以外は、プレイヤがいずれの腕も前方に伸ばしていないとみなして図12のステップS164に進む。
【0051】
ステップS152にて、プロセッサ20は、移動距離yd[0]及びyd[1]の他方について、つまり、ステップS150の条件を満足していない方の移動距離について、その絶対値が閾値yT2(<yT1)より大、かつ、その符合が負、か否かを判断し、これらの条件が満足されている場合、プレイヤが他方の腕を前方に伸ばしたとみなしてステップS154に進み、それ以外は、プレイヤが一方の腕のみを前方に伸ばした(例えばパンチ動作を行った)とみなしてステップS158に進む。
【0052】
ステップS150及びS152の処理は、プレイヤが同時に両腕を前方に伸ばした場合に限らず、一方の腕が他方の腕より多少遅れて前方に伸ばされた場合でも、プレイヤが同時に両腕を前方に伸ばしたと判断するために設けられる。
【0053】
従って、ステップS148又はステップS152でYESが判断された後、ステップS154にて、プロセッサ20は、プレイヤのステートをつかみに設定する。そして、ステップS156にて、プロセッサ20は、プレイヤキャラクタが敵キャラクタをつかむアニメーションをテレビジョンモニタ100に表示する。
【0054】
一方、ステップS152でNOが判断された後、ステップS158にて、プロセッサ20は、プレイヤキャラクタが敵キャラクタにパンチを打つアニメーションをテレビジョンモニタ100に表示する。もちろん、プロセッサ20は、第1注目点の移動距離yd[0]がステップS150の条件を満足している場合は左パンチを表示し、第2注目点の移動距離yd[1]がステップS150の条件を満足している場合は右パンチを表示する。ステップS160にて、プロセッサ20は、プレイヤのステートをパンチに設定する。
【0055】
ステップS156又はS160の後、ステップS162にて、プロセッサ20は、第1注目点及び第2注目点の過去及び現在のxy座標をクリアして、この処理を終了する。
【0056】
図12を参照して、ステップS164にて、プロセッサ20は、変数jに「0」を代入する。ステップS166にて、プロセッサ20は、所定ビデオフレーム数分だけ過去のx座標データ及び現在のx座標データに基づいて、第(j+1)注目点のx方向の移動距離を算出して、配列の要素xd[i]に代入する。ステップS168にて、プロセッサ20は、変数jを1つインクリメントする。ステップS170にて、プロセッサ20は、変数jが「2」か否かを判断して、YESの場合ステップS172に進み、NOの場合ステップS166に戻る。このようにして、第1注目点のx方向の移動距離xd[0]及び第2注目点のx方向の移動距離xd[1]が算出される。なお、ビデオフレームの更新の度に、第1及び第2注目点の座標が求められる(図5、図7、及び図8参照)。
【0057】
ステップS172にて、プロセッサ20は、移動距離xd[0]について、その絶対値が閾値xTより大、かつ、その符合が正、か否かを判断し、これらの条件が満足されている場合、プレイヤが左腕を水平に左から右に動かした(例えば左チョップ動作を行った)とみなしてステップS178に進み、それ以外は、ステップS174に進む。ステップS178では、プロセッサ20は、プレイヤキャラクタが敵キャラクタに対して左チョップを与えるアニメーションをテレビジョンモニタ100に表示する。一方、ステップS174では、プロセッサ20は、移動距離xd[1]について、その絶対値が閾値xTより大、かつ、その符合が負、か否かを判断し、これらの条件が満足されている場合、プレイヤが右腕を水平に右から左に動かした(例えば右チョップ動作を行った)とみなしてステップS176に進み、それ以外は、この処理を終了する。ステップS176では、プロセッサ20は、プレイヤキャラクタが敵キャラクタに対して右チョップを与えるアニメーションをテレビジョンモニタ100に表示する。
【0058】
ステップS178又はステップS176の後、ステップS180では、プロセッサ20は、プレイヤのステートをチョップに設定する。そして、ステップS182にて、プロセッサ20は、第1注目点及び第2注目点の過去及び現在のxy座標をクリアして、この処理を終了する。
【0059】
なお、このパンチ・チョップ・つかみ判定処理は、プレイヤのステートが、キックのときや、必殺技のときや、つかみのときは実行されない。
【0060】
図13は、図9のステップS106のバトルゲームで実行される当たり判定処理の流れを示すフローチャートである。図13を参照して、ステップS270にて、プロセッサ20は、プレイヤのステートをチェックして、ステートがキック又はパンチの場合はステップS272に進み、ステートがチョップの場合はステップS280に進み、ステートがつかみの場合ステップS288に進み、ステートが必殺技の場合ステップS290に進み、ステートがノーマルの場合この処理を終了する。
【0061】
ステートがキック又はパンチの場合、ステップS272にて、プロセッサ20は、キック又はパンチに対応する注目点(第1注目点及び第2注目点のどちらか)のx座標が、敵キャラクタが位置するx座標の範囲内か否かを判断し、範囲内の場合は攻撃(キック又はパンチ)がヒットしたとみなしてステップS274に進み、攻撃がヒットしたときのエフェクトアニメーションを表示する。一方、プロセッサ20は、範囲外の場合は攻撃が外れたとみなしてステップS276に進み、攻撃が外れたときのエフェクトアニメーションを表示する。ステップS274又はS276の後、ステップS278では、プロセッサ20は、プレイヤのステートをノーマルに設定して、この処理を終了する。
【0062】
ステートがチョップの場合、ステップS280にて、プロセッサ20は、チョップに対応する注目点(第1注目点及び第2注目点のどちらか)のy座標が、敵キャラクタが位置するy座標の範囲内か否かを判断し、範囲内の場合は攻撃(チョップ)がヒットしたとみなしてステップS282に進み、攻撃がヒットしたときのエフェクトアニメーションを表示する。一方、プロセッサ20は、範囲外の場合は攻撃が外れたとみなしてステップS284に進み、攻撃が外れたときのエフェクトアニメーションを表示する。ステップS282又はS284の後、ステップS286では、プロセッサ20は、プレイヤのステートをノーマルに設定して、この処理を終了する。
【0063】
ステートがつかみの場合、ステップS288にて、プロセッサ20は、投げ判定処理を実行した後、この処理を終了する。ステートがつかみに設定されると、プロセッサ20は、敵キャラクタがプレイヤキャラクタにつかまれるアニメーション(つかみ画面)を表示する(ステップS154)。
【0064】
図14は、つかみ画面の例示図である。図14を参照して、このつかみ画面は、敵キャラクタ50、プレイヤキャラクタの左手52L、プレイヤキャラクタの右手52R、及び矢印54を含む。このように、ステートがつかみに設定されると、敵キャラクタ50がプレイヤキャラクタ52L及び52Rにつかまれるアニメーションが表示される。このとき、プレイヤが、入力装置3を装着した両腕を、矢印54が示す方向に動かすと、敵キャラクタ50が投げ飛ばされるアニメーションが表示される。この場合の判定が、次に説明する投げ判定である。
【0065】
なお、バトルゲームでは、プレイヤキャラクタの全体像は表示されず、腕や足の一部のみが必要に応じて表示されるだけである。つまり、プロセッサ20は、プレイヤの視点で、テレビジョンモニタ100に映像を表示する。
【0066】
図15は、図13のステップS288の投げ判定処理の流れを示すフローチャートである。図15を参照して、ステップS200にて、プロセッサ20は、変数kに「0」を代入する。ステップS202にて、プロセッサ20は、所定ビデオフレーム数分だけ過去のx座標データ及び現在のx座標データに基づいて、第(k+1)注目点のx方向の移動距離を算出して、配列の要素D[k]に代入する。ステップS204にて、プロセッサ20は、変数kを1つインクリメントする。ステップS206にて、プロセッサ20は、変数kが「2」か否かを判断して、YESの場合ステップS208に進み、NOの場合ステップS202に戻る。このようにして、第1注目点のx方向の移動距離D[0]及び第2注目点のx方向の移動距離D[1]が算出される。なお、ビデオフレームの更新の度に、第1及び第2注目点の座標が求められる(図5、図7、及び図8参照)。
【0067】
ステップS208にて、プロセッサ20は、移動距離D[0]及びD[1]の双方について、それらの絶対値が閾値DTh1より大、かつ、それらの向きが矢印54(図14参照)の方向と一致するか否かを判断し、これらの条件が満足されている場合、プレイヤが両腕を同時に矢印54の方向に動かしたとみなしてステップS214に進み、それ以外は、ステップS210に進む。ステップS210にて、プロセッサ20は、移動距離D[0]及びD[1]の一方について、その絶対値が閾値DTh1より大、かつ、その向きが矢印54(図14参照)の方向と一致するか否かを判断し、これらの条件が満足されている場合、プレイヤが一方の腕を矢印54の方向に動かしたとみなしてステップS212に進み、それ以外は、プレイヤがいずれの腕も矢印54の方向に動かしていないとみなしてステップS218に進む。
【0068】
ステップS212にて、プロセッサ20は、移動距離D[0]及びD[1]の他方について、つまり、ステップS210の条件を満足していない方の移動距離について、その絶対値が閾値DTh2(<DTh1)より大、かつ、その向きが矢印54(図14参照)の方向と一致するか否かを判断し、これらの条件が満足されている場合、プレイヤが他方の腕を矢印54の方向に動かしたとみなしてステップS214に進み、それ以外は、プレイヤが一方の腕のみを矢印54の方向に動かしたとみなしてステップS216に進む。
【0069】
ステップS216では、プロセッサ20は、第1注目点及び第2注目点の過去及び現在のxy座標をクリアして、ステップS218に進む。ステップS218にて、プロセッサ20は、ステートがつかみに設定されてから所定時間が経過したか否かを判断し、経過していない場合はステップS200に戻り、経過した場合はステップS220に進む。そして、ステップS220にて、プロセッサ20は、プレイヤキャラクタが敵キャラクタをつかんでいるアニメーションを終了する。つまり、この所定時間内に、ステップS208又はS210及びS212を満足する動作をプレイヤが行わない場合には、つかみ画面は終了し、通常の戦闘画面に戻る。
【0070】
一方、ステップS208又はステップS212でYESが判断された後、ステップS214にて、プロセッサ20は、プレイヤキャラクタが敵キャラクタを投げ飛ばすアニメーションを表示する。ここで、ステップS212の処理は、プレイヤが同時に両腕を矢印54の方向に動かした場合に限らず、一方の腕が他方の腕より多少遅れて矢印54の方向に動かされた場合でも、プレイヤが同時に両腕を矢印54の方向に動かしたと判断するために設けられる。
【0071】
ステップS214又はS220の後、ステップS222にて、プロセッサ20は、第1注目点及び第2注目点の過去及び現在のxy座標をクリアする。そして、ステップS224にて、プロセッサ20は、プレイヤのステートをノーマルに設定して、この処理を終了する。
【0072】
図13に戻って、ステートが必殺技の場合、ステップS290にて、プロセッサ20は、必殺技判定処理を実行した後、この処理を終了する。ステートは、例えば、敵キャラクタの体力値が0であり、かつ、プレイヤキャラクタの必殺パラメータが最大値の場合に、必殺技に設定される。体力値は相手の攻撃を受けると小さくなり、必殺パラメータは、相手の攻撃を受けたり、相手に攻撃を加えたりすることで大きくなる。必殺パラメータは、ステートが必殺技になると0になる。ステートが必殺技に設定されると、プロセッサ20は、必殺技が発動可能なアニメーション(必殺技画面)を表示する。
【0073】
図16は、必殺技画面の例示図である。図16を参照して、この必殺技画面は、敵キャラクタ50、プレイヤキャラクタの左手62L、プレイヤキャラクタの右手62R、左固定アーム60L、及び右固定アーム60Rを含む。プロセッサ20は、左手62Lを第1注目点の動きに連動させるため、プレイヤは、入力装置3Lを装着した左手を動かすことで、左手62Lを操作できる。また、プロセッサ20は、右手62Rを第2注目点の動きに連動させるため、プレイヤは、入力装置3Rを装着した右手を動かすことで、右手62Rを操作できる。
【0074】
プレイヤは、両手を動かして、左手62Lを左固定アーム60Lに重ね、かつ、右手62Rを右固定アーム60Rに重ねることを試みる。左手62Lが左固定アーム60Lに重ねられ、かつ、右手62Rが右固定アーム60Rに重ねられたとき、プロセッサ20は、必殺技のアニメーションをテレビジョンモニタ100に表示する。この場合の判定が、次に説明する必殺技判定である。
【0075】
図17は、図13のステップS290の必殺技判定処理の流れを示すフローチャートである。図17を参照して、ステップS240にて、プロセッサ20は、第1注目点が左固定アーム60Lを含む所定範囲内に存在するか否かを判断し、存在する場合は、左手62Lが左固定アーム60Lに重ねられたとみなしてステップS242に進み、それ以外はステップS246に進む。
【0076】
ステップS242では、プロセッサ20は、第2注目点が右固定アーム60Rを含む所定範囲内に存在するか否かを判断し、存在する場合は、右手62Rが右固定アーム60Rに重ねられたとみなしてステップS244に進み、それ以外はステップS246に進む。
【0077】
ステップS244では、プロセッサ20は、左手62Lが左固定アーム60Lに重ねられ、かつ、右手62Rが右固定アーム60Rに重ねられたとみなして、必殺技のアニメーションを表示する。
【0078】
一方、ステップS240又はステップS242でNOが判断された後、ステップS246では、プロセッサ20は、ステートが必殺技に設定されてから所定時間が経過したか否かを判断し、経過していない場合はステップS240に戻り、経過した場合はステップS248に進む。つまり、この所定時間内に、ステップS240及びS242を満足する動作をプレイヤが行わない場合には、必殺技画面は終了し、通常の戦闘画面に戻る。
【0079】
ステップS244又はS246の後、ステップS248にて、プロセッサ20は、ステートをノーマルに設定する。そして、ステップS250にて、プロセッサは、第1注目点及び第2注目点の過去及び現在のxy座標をクリアして、この処理を終了する。
【0080】
さて、以上のように、本実施の形態では、差分画像DIを領域30及び領域32に分割して、領域30に含まれる像を入力装置3の再帰反射シート13の像とみなし、領域32に含まれる像を入力装置5の再帰反射シート19の像とみなしている。このように、差分画像DIを領域30及び領域32に分割することにより、手に装着された再帰反射シート13であるのか、足に装着された再帰反射シート19であるのか、を簡易に区別できる。
【0081】
また、本実施の形態では、ステートがつかみに設定されているときに、プレイヤが所定の動作をすることにより、画面上の敵キャラクタが投げ飛ばされるアニメーションが表示される。従って、プレイヤは、あたかも実際に敵を投げ飛ばしたかのような体感を得ることができる。
【0082】
さらに、本実施の形態では、ステートが必殺技に設定されているときに、プレイヤが両手を動かして、プレイヤキャラクタの左手62L及び右手62Rを操作して、これらを左固定アーム60L及び右固定アーム60Rに重ねることにより、画面上の敵キャラクタに対して必殺技のアニメーションが表示される。従って、プレイヤは、あたかも実際に必殺技を敵に繰り出したかのような体感を得ることができる。
【0083】
なお、本発明は、上記の実施の形態に限られるものではなく、その要旨を逸脱しない範囲で種々の態様において実施することが可能であり、例えば、以下のような変形も可能である。
【0084】
(1)再帰反射シートを取り付けた物を入力装置として、これをプレイヤが把持するような構成とすることもできる。
【図面の簡単な説明】
【0085】
【図1】図1は、本発明の実施の形態によるゲームシステムの全体構成を示すブロック図である。
【図2】図2(a)は、図1の入力装置3の斜視図である。図2(b)は、図1の入力装置5の斜視図である。
【図3】図3は、図1のゲーム機1の電気的構成を示す図である。
【図4】図4は、手足の判別方法の説明図である。
【図5】図5は、図3のプロセッサ20が実行する処理の全体的な流れを示すフローチャートである。
【図6】図6は、図5のステップS3のアプリケーションプログラムが実行する処理の1つである撮影処理を示すフローチャートである。
【図7】図7は、図5のステップS3のアプリケーションプログラムが実行する処理の1つである注目点抽出処理を示すフローチャートである。
【図8】図8は、図7のステップS57の2点抽出処理を示すフローチャートである。
【図9】図9は、図3のプロセッサ20が実行するゲーム処理の状態遷移図である。
【図10】図10は、図9のステップS106のバトルゲームで実行されるキック判定処理の流れを示すフローチャートである。
【図11】図11は、図9のステップS106のバトルゲームで実行されるパンチ・チョップ・つかみ判定処理の前半部分の流れを示すフローチャートである。
【図12】図12は、図9のステップS106のバトルゲームで実行されるパンチ・チョップ・つかみ判定処理の後半部分の流れを示すフローチャートである。
【図13】図13は、図9のステップS106のバトルゲームで実行される当たり判定処理の流れを示すフローチャートである。
【図14】図14は、投げ画面の例示図である。
【図15】図15は、図13のステップS288の投げ判定処理の流れを示すフローチャートである。
【図16】図16は、必殺技画面の例示図である。
【図17】図17は、図13のステップS290の必殺技判定処理の流れを示すフローチャートである。
【符号の説明】
【0086】
1…ゲーム機、3,5…入力装置、7…赤外発光ダイオード、13,19…再帰反射シート、20…プロセッサ、22…ROM、24…バス、26…イメージセンサ、30,32…領域、DI…差分画像、100…テレビジョンモニタ。
【出願人】 【識別番号】396025861
【氏名又は名称】新世代株式会社
【出願日】 平成18年6月24日(2006.6.24)
【代理人】
【公開番号】 特開2008−3013(P2008−3013A)
【公開日】 平成20年1月10日(2008.1.10)
【出願番号】 特願2006−174665(P2006−174665)