ストロボスコープを使った入力システムを備える情報処理装置、入力装置、マンマシンインターフェースシステム、及び、コンピュータプログラム
【課題】 ストロボスコープを用いてコンピュータやゲーム機にリアルタイムで入力を与えることができる情報処理装置を提供する。
【解決手段】 ゴルフゲームシステム10は、情報処理装置であるゲーム機12、ゴルフクラブ型入力装置14を含み、ゲーム機のハウジング16の内部には撮像ユニット28が収納され、この撮像ユニットは、イメージセンサ40と赤外発光ダイオード42が設けられる。赤外発光ダイオードによって撮像ユニットの上方の所定範囲に赤外光が間欠的に照射され、したがって、イメージセンサは、その範囲内で移動するゴルフクラブ型入力装置に設けられた反射体を間欠的に撮影する。このような反射体のストロボ映像を処理することによって、ゲーム機の入力となる速度などを計算する。
【解決手段】 ゴルフゲームシステム10は、情報処理装置であるゲーム機12、ゴルフクラブ型入力装置14を含み、ゲーム機のハウジング16の内部には撮像ユニット28が収納され、この撮像ユニットは、イメージセンサ40と赤外発光ダイオード42が設けられる。赤外発光ダイオードによって撮像ユニットの上方の所定範囲に赤外光が間欠的に照射され、したがって、イメージセンサは、その範囲内で移動するゴルフクラブ型入力装置に設けられた反射体を間欠的に撮影する。このような反射体のストロボ映像を処理することによって、ゲーム機の入力となる速度などを計算する。
【発明の詳細な説明】
【技術分野】
【0001】
この発明はストロボスコープを使った入力システムを備える情報処理装置に関し、特にたとえば、ストロボスコープで照射した対象物の映像信号を処理する情報処理装置に関する。更に、この発明はストロボスコープを使った入力システムを備えるゲーム機等のエンターテインメント装置に関する。更に、この発明はストロボスコープを使った入力システムを備えるマンマシンインターフェースシステムに関する。
【背景技術】
【0002】
本件出願人は、特許文献1などにおいて、圧電ブザーを利用してバットやラケットの実空間中での加速度の変化を検出してゲーム入力しとして使う体感ゲーム装置を提案している。このような体感ゲーム装置では、加速度の変化が所定以上のとき、ゲームプレイヤが対象物(上記の例でいえば、バットやラケット)を実空間中において操作した(振った)と判定するようにしている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2001−104636号公報
【特許文献2】特開2002−231489号公報
【特許文献3】特開平7−141101号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、ゲームの種類によっては、対象物を操作したかどうか、すなわち対象物に加速度が与えられたかどうかだけでなく、どの位置で、あるいはどのような速度で、さらにはどの向きに操作したかを示す情報が欲しい場合もある。特許文献1に開示されるような入力装置では、このような要求を充足することはできない。
【0005】
他方、たとえば特許文献2に開示されるようなストロボスコープを用いて対象物を撮影すれば、その映像信号を解析することによって、上述のような、対象物の位置や速度を把握することができる。しかしながら、この特許文献2にはストロボスコープを開示するのみであり、そのストロボスコープを用いて対象物を撮影することやそれによって得られた映像信号をリアルタイムで解析する具体的な手法はこの特許文献2からはわからない。
【0006】
なお、特許文献3には、撮影した映像信号から対象物を抽出し、その対象物の位置を求め、その位置情報をゲーム装置やコンピュータの入力とすることが開示されているが、この方法は、特定の使用環境ではうまく動作するが、ゲーム機が用いられる一般家庭の室内では正確な位置情報をえるのはかなり困難である。なぜなら、室内の照明、窓、雑多な色の物体、ゲームプレイヤ以外の移動体の存在がすべてノイズや外乱となって検出精度に影響を与えるからである。このようなノイズや外乱の影響を抑えて物体位置を正確に検出するには高速コンピュータが必要であり、プロセサの処理能力が限定される低コストの情報処理装置においては現実的ではない。
【0007】
それゆえに、この発明の主たる目的は、ストロボスコープを用いてコンピュータやゲーム機にリアルタイムで入力を与えることができる、新規な情報処理装置、エンターテインメント装置、およびマンマシンインターフェースシステムを提供することである。
【課題を解決するための手段】
【0008】
請求項1の発明は、ストロボスコープを使った入力システムを備える情報処理装置であって、ストロボスコープ、ストロボスコープの発光時および非発光時にそれぞれ対象物を撮影して発光時映像信号および非発光時映像信号を出力する撮像手段、複数の発光時映像信号と複数の非発光時映像信号とのそれぞれの差に基づいて対象物の位置、大きさ、速度、加速度、運動軌跡パターンの情報の一部または全部を算出する第1の手段、および第1の手段によって算出された情報に基づき情報処理を行う第2の手段を備える、情報処理装置である。
【0009】
請求項1の発明では、ストロボスコープ(42,52:実施例で相当する要素またはコンポーネントの参照符号。以下、同様。)が対象物(14,94,112)を明るく照射すことにより、撮像結果における対象物と対象物以外とのコントラストを高め、対象物の検出を容易にしている。また、第1の手段(52,S59,S129,図35:S61,図22,図25,図33)が複数の発光時映像信号と複数の非発光時映像信号とのそれぞれの差を算出することにより、移動体である対象物以外の静止画像や固定光源等のノイズ成分の影響を抑えて対象物の位置、大きさ、速度、加速度、運動軌跡パターンを正確に、かつ簡単な情報処理で検出することが可能となる。そのようにして算出された情報に基づいて、第2の手段(52,S63)が所定の情報処理を行う。
【0010】
そして、これらの情報を算出するための情報処理とアプリケーション側の情報処理とを分離することにより、アプリケーション側の情報処理が簡便になり、またアプリケーション側の情報処理を別な処理に置き換える際に、対象物の位置、大きさ、速度、加速度、運動軌跡パターンの算出に関する処理を変更することなく用いることが可能となる。
【0011】
請求項2は、請求項1に従属し、第1の手段は、情報が所定の条件に合致するか否かを判定する判定手段を含む、情報処理装置である。
【0012】
請求項2の発明では、判定手段(52,S61,図22,図25,図33)が対象物の位置、大きさ、速度、加速度、運動軌跡パターン等が所定の条件に合致するか否かを判定し、アプリケーション側の情報処理では、判定結果を参照し所定の条件に合致していなければ算出された情報を受取らないようにすることで、簡便なアプリケーション処理が可能となる。
【0013】
請求項3は、請求項2に従属し、第1の手段は、判定手段における判定結果に基づき情報の中から有効な情報のみを検出し、有効な入力が行われたとして第2手段に伝達する有効入力検出手段を含む、情報処理装置である。
【0014】
請求項3の発明では、第1の手段に含まれる有効入力検出手段(52,図22,図25,図33)が判定手段からの判定結果に基づいて情報の取捨選択を行い、ユーザからの有効な入力のみをアプリケーション側の情報処理に伝達する。したがって、簡便なアプリケーション処理が可能となる。
【0015】
請求項4は、請求項1−3のいずれかに従属し、第1の手段は、対象物の大きさを示す情報より対象物と撮像手段の距離を算出する距離算出手段を含む、情報処理装置である。
【0016】
請求項4の発明では、第1の手段に含まれる距離算出手段(52,S111,S113)が、撮像結果より対象物の大きさを算出し、算出された大きさの情報より対象物と撮像手段の距離を算出する。それによって、2次元の撮像結果から対象物の3次元空間中での位置、速度、加速度、運動軌跡パターンを求めることが可能となる。
【0017】
請求項5は、請求項1−4のいずれかに従属し、第1の手段は、発光時映像信号と非発光時映像信号との差より得られる情報を解析し対象物の形状を抽出する解析手段、および形状より対象物と撮像手段の角度を算出する角度算出手段を含む、情報処理装置である。
【0018】
請求項5の発明では、第1の手段が解析手段(52,図24:S159−S167)、および角度算出手段(52,S169)を含み、撮像結果より対象物の形状を解析することで、撮像結果として2次元イメージ上に投影された対象物と、撮像手段との成す角度を求めることが可能となる。
【0019】
請求項6は、請求項5に従属し、解析手段における解析は、対象物中の所定の2点を抽出するものであり、角度算出手段における角度の算出は、所定の2点を結ぶ線分と所定の座標軸との角度を算出するものである、情報処理装置である。
【0020】
請求項6の発明では、解析手段は、対象物中の所定の2点を抽出する解析(S166)を行い、角度算出手段における角度の算出は、所定の2点を結ぶ線分と所定の座標軸との角度を算出するものである(S169)。
【0021】
請求項7は、請求項1−6のいずれかに従属し、ストロボスコープの発光の時間間隔は自在に設定可能である、情報処理装置である。
【0022】
請求項8は、請求項1−6のいずれかに従属し、ストロボスコープの発光期間の長さおよび非発光期間の長さは自在に設定可能である、情報処理装置である。
【0023】
請求項9は、請求項1−6のいずれかに従属し、撮像手段の露光期間は自在に設定可能である、情報処理装置である。
【0024】
たとえば実施例の図6に示すようにプロセサが赤外発光ダイオードの点灯/消灯を制御することによって、請求項7の発明、請求項8の発明あるいは請求項9の発明では、必要な時間間隔で、また必要なタイミングでのみストロボ光源の発光、撮像手段での露光を行うようにすることができ、消費電力の低減を行うことが可能となる。
【0025】
請求項10は、請求項1−9のいずれかに従属し、対象物は反射体を含む、情報処理装置である。
【0026】
請求項10の発明のように対象物が反射体(50,50A,100,116)を含むと、対象物と他の画像とのコントラストがさらに強調されるため、安価な構成で検出精度を高めることが可能となる。
【0027】
請求項11は、請求項1−10のいずれかに従属し、ストロボスコープは特定の波長領域の光を出力する光源を含み、撮像手段は特定の波長領域にのみ応答する、情報処理装置である。
【0028】
請求項12は、請求項11に従属し、撮像手段は特定の波長領域の光のみを透過するフィルタと、フィルタを透過した光で形成される映像を撮影する撮像素子とを含む、情報処理装置である。
【0029】
請求項13は、請求項11に従属し、撮像手段は、特定の波長領域の光で形成される映像のみを撮影する撮像素子を含む、情報処理装置である。
【0030】
請求項11の発明や請求項12の発明あるいは請求項13の発明では、ストロボスコープは特定の波長領域の光を出力する光源(たとえば赤外発光ダイオード42)を含み、撮像手段はたとえば赤外フィルタを用いることによって、特定の波長領域にのみ応答する。そのため、検出を行う対象物以外の移動光源および点滅光源(蛍光灯など)に含まれない波長領域の光をストロボスコープの光源とし、撮像手段がこの波長領域の光にのみ応答するようにすることで、これらのノイズ光源を除去することが可能となる。
【0031】
請求項14は、請求項1−13のいずれかに従属し、第1の手段および第2の手段は、それぞれ単一または複数のプロセサによって処理されるプロセスである、情報処理装置である。
【0032】
請求項14の発明では、第1の手段および第2の手段は、それぞれ単一または複数のプロセサ(52および/またはS63を処理するプロセサ)によって処理されるプロセスである。このように、第1および第2の手段をプロセサのソフトウェアとして処理されるプロセスとすることで、安価でかつ自由度の高いシステムが構築できる。ただし、第1および第2の手段の両方のプロセスが単一のプロセサで実行されることがさらに望ましい。
【0033】
請求項15は、請求項1−14のいずれかにおいて、第2の手段で行われる情報処理がゲーム等のエンターテインメント処理である、エンターテインメント装置である。
【0034】
請求項15の発明は、第2の手段で行われる情報処理をゲーム等のエンターテインメント処理とした、エンターテインメント装置である。
【0035】
請求項16は、ストロボスコープを使った入力システムを備えるマンマシンインターフェースシステムであって、ストロボスコープ、ストロボスコープの発光時および非発光時にそれぞれ対象物を撮影して発光時映像信号および非発光時映像信号を出力する撮像手段、複数の発光時映像信号と複数の非発光時映像信号とのそれぞれの差に基づいて対象物の位置、大きさ、速度、加速度、運動軌跡パターンの情報の一部または全部を算出する第1の手段、および第1の手段によって算出された情報に基づき情報処理を行う第2の手段を備える、マンマシンインターフェースシステムである。
【0036】
請求項16の発明のシステムを、パーソナルコンピュータ、ワークステーション、ゲーム機器、教育機器、医療機器等のマンマシンインターフェースとして用いても、安価且つ精度の高い入力システムが構築できる。
【発明の効果】
【0037】
これらの発明によれば、ストロボスコープによって照射された対象物の撮像結果をディジタル的に解析し、対象物の位置、移動速度、加速度、運動軌跡といった情報をパーソナルコンピュータやビデオゲーム機といった情報処理装置への入力として扱うことが可能となる。
【0038】
また、簡単な情報処理のみで、ノイズや外乱の影響を抑えた精度の高い検出が可能であるので、コスト、許容される消費電力等の条件によりプロセサのパフォーマンスが制限されるシステムの上でも容易に達成が可能である。
【0039】
この発明の上述の目的,その他の目的,特徴,および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【0040】
【図1】図1はストロボスコープで撮影したストロボ映像の一例を示す図解図である。
【図2】図2はこの発明の一実施例のゴルフゲームシステムの全体構成を示す図解図である。
【図3】図3は図2実施例の撮影ユニットの一例を示す図解図である。
【図4】図4は図2実施例のゴルフクラブ型入力装置の一例を示す図解図である。
【図5】図5は図2実施例を示すブロック図である。
【図6】図6は図5実施例においてイメージセンサからゲームプロセサへピクセルデータを取り込む構成およびLED駆動回路を示す回路図である。
【図7】図7は図6実施例の動作を示すタイミング図である。
【図8】図8は図7の一部を拡大して示すタイミング図である。
【図9】図9は図2実施例の状態ないしステートの遷移を示す図解図である。
【図10】図10は図2実施例の全体動作を示すフロー図である。
【図11】図11は図10実施例の初期化処理の一例であるセンサ初期化設定処理動作を示すフロー図である。
【図12】図12は図11のコマンド送信処理動作を示すフロー図である。
【図13】図13は図11のレジスタ設定処理動作を示すフロー図である。
【図14】図14は図13に示すレジスタ設定処理動作を示すタイミング図である。
【図15】図15は図2実施例におけるゲームプロセサの動作を示すフロー図である。
【図16】図16は図15実施例におけるストロボスコープ撮影動作を示すフロー図である。
【図17】図17は図15実施例における画素データ取得処理動作を示すフロー図である。
【図18】図18は図15実施例における注目点抽出処理動作を示すフロー図である。
【図19】図19は実施例において差分データを採用する原理を示す図解図である。
【図20】図20は図15実施例における速度ベクトル算出処理動作を示すフロー図である。
【図21】図21は図20の速度ベクトル算出動作における各座標位置を示す図解図である。
【図22】図22は図15実施例における判定処理動作を示すフロー図である。
【図23】ゴルフゲームシステムに使われるゴルフクラブ型入力装置の変形例を示す図解図である。
【図24】図24は図23のゴルフクラブ型入力装置を利用した場合の図15実施例における注目点抽出処理動作を示すフロー図である。
【図25】図25は図23のゴルフクラブ型入力装置を利用した場合の図15実施例における判定処理動作を示すフロー図である。
【図26】図26は図25の判定処理動作における角度を示す図解図である。
【図27】図27はこの発明の他の実施例のボーリングゲームシステムの全体構成を示す図解図である。
【図28】図28は図27に示すボール型入力装置の内部構造を示す図27の線XXVIII−XXVIIIにおける断面図解図である。
【図29】図29は図27実施例におけるテレビジョンモニタに表示されるゲーム画面の一例を示す図解図である。
【図30】図30は図27実施例におけるテレビジョンモニタに表示されるスコアシートの一例を示す図解図である。
【図31】図31は図27実施例を示すブロック図である。
【図32】図32は図27実施例の全体動作を示すフロー図である。
【図33】図33は図27のボーリングシステムの図15実施例における判定処理動作を示すフロー図である。
【図34】図34は手袋型入力装置の一例を示す図解図である。
【図35】図35は図34の手袋型入力装置を用いる場合の図15実施例に示す動き検出処理動作を示すフロー図である。
【図36】図36は図15実施例における画素データ配列取得処理動作を示すフロー図である。
【発明を実施するための形態】
【0041】
図2を参照して、この発明の一実施例であるゴルフゲームシステム10は、ゲーム機12およびゴルフクラブ型入力装置14を含み、このゴルフクラブ型入力装置14はゲームプレイヤによって、ゲーム機12上で振られる。なお、ゲーム機12は、たとえばACアダプタ(図示せず)または電池のような直流電源によって駆動される。ゲーム機12は、さらに、AVケーブル16を通して、テレビジョンモニタ(図示せず)のAV端子(図示せず)に接続される。
【0042】
ゲーム機12は、また、ハウジング18を含み、このハウジング18上に電源スイッチ20が設けられるとともに、方向ボタン22ならびに決定キー24およびキャンセルキー26が設けられる。方向ボタン22は、4方向(上下左右)の個別のボタンを有し、たとえばテレビジョンモニタの表示画面上においてメニューやゲームモード選択のためにカーソルを移動させたりするために用いられる。
【0043】
決定キー24はゲーム機12への入力を決定するために用いられる。また、キャンセルキー26は、ゲーム機12への入力をキャンセルするために用いられる。
【0044】
ゲーム機12のハウジング16の内部には、図3に詳細に示す撮像ユニット28が収納される。この撮像ユニット28は、たとえばプラスチック成型によって形成されるユニットベース30を含み、このユニットベース30内には支持筒32が取り付けられる。支持筒32の上面には内面が逆円錐形状であるラッパ状の開口34が形成され、その開口34の下方の筒状部内部には、いずれもがたとえば透明プラスチックの成型によって形成された凹レンズ36および凸レンズ38を含む光学系が設けられ、凸レンズ38の下方において、撮像素子としてのイメージセンサ40が固着される。したがって、イメージセンサ40は、開口34からレンズ36および38を通して入射する光に応じた映像を撮影することができる。
【0045】
イメージセンサ40は、低解像度のCMOSイメージセンサ(たとえば32×32画素:グレースケール)である。ただし、このイメージセンサ40は、画素数のもっと多いものでもよいし、CCD等の他の素子からなるものであってよい。
【0046】
また、ユニットベース30には、光出射方向がいずれも上方向とされた複数(この実施例では4つ)の赤外発光ダイオード42が取り付けられる。この赤外発光ダイオード42によって、撮像ユニット28の上方の図3に示す線44aおよび44bで決まる範囲に赤外光が照射される。また、ユニットベース30の上方には、赤外フィルタ(赤外線のみを透過するフィルタ)が上記開口34を覆うように、取り付けられる。そして、赤外発光ダイオード42は後述のように、点灯/消灯が連続的に繰り返されるので、赤外ストロボスコープとして機能する。ただし、「ストロボスコープ」とは、運動体を間欠的に照らす装置の総称である。
【0047】
したがって、上記イメージセンサ40は、線44aおよび44bで示す撮影範囲内で移動する物体、この実施例ではゴルフクラブ型入力装置14に設けられた反射体50(図4参照)を撮影することになる。
【0048】
ゴルフクラブ型入力装置14は、全体がたとえばプラスチック成型によって形成され、図4に示すように、クラブシャフト46とそれの先端に取り付けられたクラブヘッド48とを含み、クラブヘッド48の底面に、たとえば再帰反射シートからなる、円形の反射体50が設けられる。したがって、図2に示すように、ゲームプレイヤがこの入力装置14のクラブシャフト46を持って、普通のゴルフをするときと同じように、ゲーム機12の上方で振れば、ヘッド48の底面の反射体50によって反射された光がイメージセンサ40によって撮影される。このとき、赤外発光ダイオード42は上述のように間欠的に赤外光を照射するため、結果的に、図3に示すように、反射体50が間欠的に撮影される。この実施例のゴルフゲームシステム10では、後述のように、このような反射体のストロボ映像を処理することによって、ゲーム機12の入力となる速度などを計算する。
【0049】
図5を参照して、クラブ型入力装置14は、上述のように、赤外発光ダイオード42の発光に照射され、その赤外光を反射体50で反射する。この反射体50からの反射光がイメージセンサ40によって撮影され、したがって、イメージセンサ40からは反射体50の映像信号が出力される。イメージセンサ40からのこのアナログ映像信号はゲームプロセサ52に内蔵されたA/Dコンバータ(図示せず)によってディジタルデータに変換される。
【0050】
なお、ゲームプロセサ52は、上述のストロボ撮影のために、赤外発光ダイオード42を間欠的に点滅する。
【0051】
このようなゲームプロセサ52としては、任意の種類のプロセサを利用できるが、この実施例では、本件出願人が開発しかつ既に特許出願している高速プロセサを用いる。この高速プロセサは、たとえば特開平10−307790号公報[G06F13/36,15/78]およびこれに対応するアメリカ特許第6,070,205号に詳細に開示されている。
【0052】
ゲームプロセサ52は、図示しないが、演算プロセサ,グラフィックプロセサ,サウンドプロセサおよびDMAプロセサ等の各種プロセサを含むとともに、アナログ信号を取り込むときに用いられる上述のA/Dコンバータやキー操作信号や赤外線信号のような入力信号を受けかつ出力信号を外部機器に与える入出力制御回路を含む。したがって、操作キー22−26からの入力信号がこの入出力制御回路を経て、演算プロセサに与えられる。演算プロセサは、その入力信号に応じて必要な演算を実行し、その結果をグラフィックプロセサ等に与える。したがって、グラフィックプロセサやサウンドプロセサはその演算結果に応じた画像処理や音声処理を実行する。
【0053】
プロセサ52には、図示しないが内部メモリが設けられ、この内部メモリは、ROMまたはRAM(SRAMおよび/またはDRAM)を含む。RAMは一時メモリ,ワーキングメモリあるいはカウンタまたはレジスタ領域(テンポラリデータ領域)およびフラグ領域として利用される。なお、プロセサ52にはROM54が外部バスを通して接続される。このROM54に後に説明するようなゲームプログラムが予め設定される。
【0054】
プロセサ52は、イメージセンサ40からA/Dコンバータを介して入力されるディジタル映像信号を処理してゴルフクラブ型入力装置14の動きを検出するとともに、操作キー22−26からの入力信号に従って演算、グラフィック処理、サウンド処理等を実行し、ビデオ信号およびオーディオ信号を出力する。ビデオ信号はゲーム画面を表示するための画像信号であり、オーディオ信号はゲーム音楽や効果音の信号であり、したがって、テレビジョンモニタ(図示せず)の画面上にゲーム画面表示され、必要なサウンド(効果音、ゲーム音楽)がそれのスピーカから出力される。
【0055】
ここで、図6−図8を参照して、CMOSイメージセンサ40からゲームプロセサ52へピクセルデータを取り込むための構成を詳細に説明する。図6に示すように、実施例のCMOSイメージセンサ40は、ピクセル信号(画素信号)をアナログ信号として出力するタイプのものであるため、このピクセル信号はゲームプロセサ52のアナログ入力ポートに入力される。アナログ入力ポートは、このゲームプロセサ52内においてA/Dコンバータ(図示せず)に接続され、したがって、ゲームプロセサ52は、A/Dコンバータからディジタルデータに変換されたピクセル信号(ピクセルデータ)をその内部に取得する。
【0056】
上述のアナログピクセル信号の中点は、CMOSイメージセンサ40の基準電圧端子Vrefに与えられる基準電圧によって決定される。そのため、この実施例では、イメージセンサ40に関連してたとえば抵抗分圧回路からなる基準電圧発生回路56が設けられ、この回路56から基準電圧端子Vrefに常に一定の大きさの基準電圧が与えられる。
【0057】
CMOSイメージセンサ40を制御するための各ディジタル信号は、ゲームプロセサ52のI/Oポートに与えられ、またはそこから出力される。このI/Oポートは各々入力/出力の制御が可能なディジタルポートであり、このゲームプロセサ52内で入出力制御回路(図示せず)に接続されている。
【0058】
詳しくいうと、ゲームプロセサ52の出力ポートからはイメージセンサ40をリセットするためのリセット信号が出力され、イメージセンサ40に与えられる。また、イメージセンサ40からは、ピクセルデータストローブ信号およびフレームステータスフラグ信号が出力され、それらの信号がゲームプロセサ52の入力ポートに与えられる。ピクセルデータストローブ信号は上述の各ピクセル信号を読み込むための図7(b)に示すようなストローブ信号である。フレームステータスフラグ信号はイメージセンサ40の状態を示すフラグ信号で、図7(a)に示すように、このイメージセンサの露光期間を規定する。つまり、フレームステータスフラグ信号の図7(a)に示すローレベルが露光期間を示し、図7(a)に示すハイレベルが非露光期間を示す。
【0059】
また、ゲームプロセサ52は、CMOSイメージセンサ40内の制御レジスタ(図示せず)に設定するコマンド(またはコマンド+データ)をレジスタデータとしてI/Oポートから出力するとともに、たとえばハイレベルおよびローレベルを繰り返すレジスタ設定クロックを出力し、それらをイメージセンサ40に与える。
【0060】
なお、この実施例では、赤外発光ダイオード42として、図6に示すように互いに並列接続された4つの赤外発光ダイオード42a,42b,42cおよび42dを用いる。この4つの赤外発光ダイオード42a−42dは、上で説明したように、対象物(ゴルフクラブ型入力装置14)を照らすように、イメージセンサ40の視点方向と同一方向に赤外光を照射するようにかつイメージセンサ40を囲むように配置される。ただし、これら個別の赤外発光ダイオード42a−42dは、特に区別する必要がある場合を除いて、単に赤外発光ダイオード42と呼ばれる。この赤外発光ダイオード42はLED駆動回路58によって、点灯されまたは消灯(非点灯)される。LED駆動回路58は、イメージセンサ40から上述のフレームステータスフラグ信号を受け、このフラグ信号は、抵抗62およびコンデンサ64からなる微分回路60を通してPNPトランジスタ68のベースに与えられる。このPNPトランジスタ68にはさらにプルアップ抵抗66が接続されていて、このPNPトランジスタ68のベースは、通常は、ハイレベルにプルアップされている。そして、フレームステータス信号がローレベルになると、そのローレベルが微分回路60を経てベースに入力されるため、PNPトランジスタ68は、フラグ信号がローレベル期間にのみオンする。
【0061】
PNPトランジスタ68のエミッタは抵抗70および72を介して接地される。そして、エミッタ抵抗70および72の接続点がNPNトランジスタ74のベースに接続される。このNPNトランジスタ74のコレクタが各赤外発光ダイオード42a−42dのアノードに共通に接続される。NPNトランジスタ74のエミッタが別のNPNトランジスタ76のベースに直接接続される。NPNトランジスタ74のコレクタが各赤外発光ダイオード42a−42dのカソードに共通接続され、エミッタが接地される。
【0062】
このLED駆動回路58では、ゲームプロセサ52のI/Oポートから出力されるLEDコントロール信号(第2信号に相当する)がアクティブ(ハイレベル)でありかつイメージセンサ40からのフレームステータスフラグ信号がローレベルである期間にのみ赤外発光ダイオード42が点灯される。図7(a)に示すようにフレームステータスフラグ信号がローレベルになると、そのローレベル期間中(実際には微分回路60の時定数での遅れがあるが)、PNPトランジスタ68がオンする。したがって、図7(d)に示すLEDコントロール信号がゲームプロセサ52からハイレベルで出力されると、NPNトランジスタ74のベースがローレベルとなり、このトランジスタ68がオフとなる。トランジスタ68がオフするとトランジスタ74はオンとなる。したがって、電源(図6では小さい白丸で示す)から各赤外発光ダイオード42a−42dおよびトランジスタ76を経て電流が流れ、応じて図7(e)に示すように各赤外発光ダイオード42a−42dが点灯される。
【0063】
実施例のLED駆動回路58では、このように、図7(d)のLEDコントロール信号がアクティブでありかつ図7(a)のフレームステータスフラグ信号がローレベルである期間にのみ赤外発光ダイオード42が点灯されるので、イメージセンサ40の露光期間(図7(f)参照)にのみ赤外発光ダイオード42が点灯されることになる。したがって、この実施例によれば、無駄な電力消費を抑制することができる。さらに、フレームステータスフラグ信号はコンデンサ64によってカップリングされているので、万一イメージセンサ40の暴走等によりそのフラグ信号がローレベルのまま停止した場合でも、一定時間後にはトランジスタ68は必ずオフされ、赤外発光ダイオード42も一定時間後には必ずオフされる。
【0064】
このように、この実施例では、フレームステータス信号の持続期間を変更することによって、イメージセンサ40の露光時間を任意にかつ自在に設定または変更することができる。
【0065】
さらに、フレームステータス信号およびLEDコントロール信号の持続時間や周期を変更することによって、赤外発光ダイオード42すなわちストロボスコープの発光期間、非発光期間、発光/非発光周期などを任意にかつ自在に変更または設定できる。
【0066】
先に説明したように、赤外発光ダイオード42からの赤外光によってゴルフクラブ型入力装置14の反射体50が照射されると、反射体50からの反射光によってイメージセンサ40が露光される。応じて、イメージセンサ40から上述のピクセル信号が出力される。詳しく説明すると、CMOSイメージセンサ40は、上述の図7(a)のフレームステータスフラグ信号がハイレベルの期間(赤外発光ダイオード42の非点灯期間)に図7(b)に示すピクセルデータストローブに同期して、図7(c)に示すようにアナログのピクセル信号を出力する。ゲームプロセサ52では、そのフレームステータスフラグ信号とピクセルデータストローブとを監視しながら、A/Dコンバータを通じて、ディジタルのピクセルデータを取得する。
【0067】
ただし、ピクセルデータ(ピクセル信号)は実施例では、図8(c)に示すように、第0行,第1行,…第31行と行順次に出力される。ただし、後に説明するように、各行の先頭の1ピクセルはダミーデータとなる。
【0068】
ここで、図9および図10を参照して、図2実施例のゴルフゲームシステム10の概略動作を説明する。図2に示す電源スイッチ20をオンしてゲームスタートとなるが、図5に示すゲームプロセサ52は、まず、ステップS1で初期化処理を実行する。具体的には、システムおよび各変数を初期化する。
【0069】
ステップS1での初期化処理は、イメージセンサ40内の制御レジスタへのデータ設定処理を含み、具体的には、図11−図13に示すフロー図に従って、かつ図14に示すタイミングで実行される。
【0070】
図11の最初のステップS11では、ゲームプロセサ52は、設定データとして、コマンド“CONF”を設定する。ただし、このコマンド“CONF”は、イメージセンサ40に、ゲームプロセサ52からコマンドを送信する設定モードに入ることを知らせるためのコマンドである。そして、次のステップS13で、図12に詳細に示すコマンド送信処理を実行する。
【0071】
コマンド送信処理の最初のステップS31では、プロセサ52は、設定データ(ステップS13の場合はコマンド“CONF”)をレジスタデータ(I/Oポート)に設定し、次のステップS33でレジスタ設定クロック(I/Oポート)をローレベルに設定する。その後、ステップS35で規定時間待機した後、ステップS37で、レジスタ設定クロックをハイレベルに設定する。そして、さらにステップS39での規定時間の待機の後、ステップS41でレジスタ設定クロックを再びローレベルに設定する。このようにして、図14に示すように、規定時間の待機を行いながら、レジスタ設定クロックをローレベル,ハイレベルそしてローレベルとすることによって、コマンド(コマンドまたはコマンド+データ)の送信処理が行われる。
【0072】
ステップS15(図11)では、ピクセルモードを設定するとともに、露光時間の設定を行う。この実施例の場合、イメージセンサ40は先に述べたようにたとえば32×32のCMOSセンサであるため、設定アドレス“0”のピクセルモードレジスタに32×32画素であることを示す“0h”を設定する。次のステップS17において、ゲームプロセサ52は、図13に詳細に示すレジスタ設定処理を実行する。
【0073】
レジスタ設定処理の最初のステップS43では、プロセサ52は、設定データとして、コマンド“MOV”+アドレスを設定し、次のステップS45で、図12で先に説明したコマンド送信処理を実行して、それを送信する。次にステップS47において、プロセサ52は、設定データとして、コマンド“LD”+データを設定し、次のステップS49でコマンド送信処理を実行して、それを送信する。そして、ステップS51で、プロセサ52は、設定データとして、コマンド“SET”を設定し、次のステップS53でそれを送信する。なお、コマンド“MOV”は制御レジスタのアドレスを送信することを示すコマンドで、コマンド“LD”はデータを送信することを示すコマンドで、コマンド“SET”はデータをそのアドレスに実際に設定させるためのコマンドである。なお、この処理は、設定する制御レジスタが複数ある場合には、繰り返し実行される。
【0074】
図11に戻って、次のステップS19では、設定アドレスを“1”(露光時間設定レジスタのローニブルのアドレスを示す)とし、最大露光時間を示す“FFh”のローニブルデータ“Fh”を設定すべきデータとして設定する。そして、ステップS21で図13のレジスタ設定処理を実行する。同様にして、ステップS23において、設定アドレスを“2”(露光時間設定レジスタのハイニブルのアドレスを示す)とし、最大露光時間を示す“FFh”のハイニブルデータ“Fh”を設定すべきデータとして設定し、ステップS25でレジスタ設定処理を実行する。
【0075】
その後、ステップS27で設定終了を示しかつイメージセンサ40にデータの出力を開始させるためのコマンド“RUN”を設定し、ステップS29で送信する。このようにして、図10に示すステップS1での初期設定動作が実行される。ただし、図11−図14に示す具体例は、使用されるイメージセンサの仕様に応じて、適宜変更され得るものである。
【0076】
図10のステップS1の後、ゲームプロセサ52は、ステップS2で画像信号を更新してモニタ(図示せず)に表示される画像を更新する。ただし、この表示画像更新は、1フレーム(テレビジョンフレームまたはビデオフレーム)毎に実行される。
【0077】
そして、ゲームプロセサ52は、ステート(状態)に応じた処理を実行する。ただし、最初に処理するのは、ゲームモードの選択である。このゲームモード選択では、ユーザないしゲームプレイヤは、図10のステップS3で、図1に示す選択キー22を操作して、1人プレイモードまたは2人プレイモードなどのゲームモードを選択するとともに、ゲームの難易度等を設定する。
【0078】
実際のゴルフゲームではゴルフクラブを振ってゲーム画面内でゴルフボールを転動させる必要があるが、実施例のゴルフゲームシステム10では、先に述べたように、ゴルフクラブ型入力装置14を用いて実空間中でゴルフクラブスイング動作を行う。そこで、ゲームプロセサ52は、ステップS4でスイング動作の判定処理を実行し、スイング動作が行われたかどうか判定する。そして、スイング動作が行われたのであれば、ついでステップS5で、ゲーム画面内でボールが飛翔しまたは転動しているとき、ボールの軌道を計算するとともに、ボールが停止したときに、ステップS6において、ステップS5での軌道計算処理の結果として、スコア計算および結果判定処理を実行する。
【0079】
その後、ビデオ同期信号による割り込みがあれば、ステップS2(図10)の画像更新を実行する。また、ステップS7の音声処理は、音声割り込みが発生したとき実行され、それによってゲーム音楽やゴルフクラブがボールを叩いた音のような効果音を出力する。
【0080】
図15−図22を参照して、このようなゴルフゲームシステム10の具体的な全体動作を説明する。図15の最初のステップS55では、ゲームプロセサ52は、ゴルフクラブ型入力装置14の移動位置を検出するためのストロボスコープ撮影を実行する。
【0081】
このストロボスコープ撮影処理の詳細が図16に示される。図16の最初のス67では、ゲームプロセサ52は、内部メモリ(図示せず)の適宜の領域の回数レジスタ(図示せず)の回数Nに「1」を代入する。続くステップS69において、ゲームプロセサ52は、ストロボスコープ撮影のために赤外発光ダイオード42を点灯する。具体的には、図7に示すLEDコントロール信号をハイレベルとする。その後、ステップS71で、画素データ配列の取得処理を実行する。
【0082】
図36の最初のステップS301で、ゲームプロセサ52は画素データ配列の要素番号としてXに「−1」、Yに「0」を設定する。本実施例における画素データ配列は、X=0〜31、Y=0〜31の2次元配列であるが、前述のように各行の先頭ピクセルのデータとしてダミーデータが出力されるので、Xの初期値として「−1」が設定される。続くステップS303では、図17に示す要素[Y][X]の画素データの取得処理を実行する。
【0083】
図17の最初のステップS83で、ゲームプロセサ52は、イメージセンサ40からのフレームステータスフラグ信号をチェックし、ステップS85でその立ち上がりエッジ(ローレベルからハイレベルへの)が発生したかどうか判断する。そして、ステップS85でフラグ信号の立ち上がりエッジを検出すると、次のステップS87において、ゲームプロセサ52は、それの内部のA/Dコンバータに入力されてきたアナログのピクセル信号のディジタルデータへの変換の開始を指示する。その後、ステップS89でイメージセンサ40からのピクセルストローブをチェックし、ステップS91でそのストローブ信号のローレベルからハイレベルへの立ち上がりエッジが発生したかどうか判断する。
【0084】
ステップS91で“YES”が判断されると、ゲームプロセサ52は続いて、ステップS93において、X=−1かどうか、すなわち先頭ピクセルかどうか判断する。先に述べたように、各行の先頭ピクセルはダミーピクセルとして設定されているので、このステップS93で“YES”が判断されると、次のステップS95でそのときのピクセルデータを取得しないで、ステップS97で要素番号Xをインクリメントする。
【0085】
ステップS93で“NO”が判断されると、行の第2番目以降のピクセルデータであるので、ステップS99およびS101において、そのときのピクセルデータを取得し、テンポラリレジスタ(図示せず)にそのピクセルデータを格納する。その後、図36のステップS305にリターンする。
【0086】
ステップS305では、テンポラリレジスタに格納されたピクセルデータを画素データ配列の要素[Y][X]として格納する。
【0087】
続くステップS309でXをインクリメントする。Xが32に満たない場合、前述のS303からS307の処理を繰り返し実行する。Xが32の場合、すなわち画素データの取得が行の終端に到達した場合には、続くステップS311Xに「−1」を設定し、ステップS313でYをインクリメントし、次の行の先頭から画素データの取得処理を繰り返す。
【0088】
ステップS315でYが32の場合、すなわち画素データの取得が画素データ配列の終端に到達した場合、図16のステップS73にリターンする。
【0089】
ステップS73では、上記画素データ配列をN回目点灯時取得データとして、たとえば内部RAMのワーキング領域に格納する。
【0090】
続くステップS75で、ゲームプロセサ52は、LEDコントロール信号をローレベルにするなどして、赤外発光ダイオード42を消灯する。その後、ステップS76で、ステップS71と同様にして、図17および図35のサブルーチンに従って、赤外発光ダイオード42が消灯されているときの画素データ配列を取得し、ステップS77においてステップS73と同様にして、内部RAMのワーキング領域に格納する。
【0091】
そして、ステップS79で回数レジスタNをインクリメントし、ステップS81で回数Nが規定値に達したかどうか判断する。このステップS81で“YES”が判断されると、そのまま、図15のステップS57(注目点抽出処理)にリターンする。ただし“NO”のときには、先のステップS69に戻る。
【0092】
注目点抽出処理の詳細が図18に示される。図18の最初のステップS103では、ゲームプロセサ52は、内部メモリ(図示せず)内の回数レジスタ(図示せず)の回数Nに「1」を代入する。そして、次のステップS105で、図16のステップS73およびS77で得た、点灯時取得データおよび消灯時取得データとの差分から、差分データ配列を算出する。
【0093】
つまり、この実施例では、前述のように、ゴルフクラブ型入力装置14の反射体50に赤外光を照射し、赤外フィルタを介してイメージセンサ40に入射した反射赤外光による映像を撮影している。一般的な室内環境で一般的な光源を用いてゴルフクラブ型入力装置14をストロボスコープ撮影をした場合には、イメージセンサ(実施例のイメージセンサ40に相当する)には、図19(A)に示すように、反射体による映像以外に、蛍光灯光源、白熱灯光源、太陽光(窓)のような光源だけでなく、室内のすべてのものの画像がすべて写り込む。したがって、この図19(A)の映像を処理して反射体の映像のみを抽出するのは、かなり高速のコンピュータまたはプロセサが必要である。しかしながら、安価が条件のゲーム装置ではそのような高性能コンピュータを使えない。そこで種々の処理を行って負担を軽減することが考えられる。
【0094】
図19(B)は、図19(A)の映像信号を或る閾値でレベル弁別したときの映像信号である。このようなレベル弁別処理は専用のハードウェア回路でも、ソフトウェア的にでも、実行することができるが、いずれの方法によっても、一定以下の光量の画素データをカットするレベル弁別を実行すると、反射体や光源以外の低輝度画像を除去することができる。この図19(B)の映像では反射体および室内の光源以外の画像の処理を省略でき、したがって、コンピュータの負担を軽減できるが、それでも、光源画像を含む高輝度画像が依然として写り込んでいるので、反射体と他の光源を分別することは難しい。
【0095】
そこで、実施例では、図3に示したように赤外フィルタ44を利用して、イメージセンサ40に赤外光による画像以外の画像が写らないようにした。それによって、図19(C)に示すように、赤外光を殆ど含まない蛍光灯光源の画像は除去できる。しかしながら、それでもなお太陽光や白熱灯が映像信号中に含まれてしまう。したがって、更なる負担軽減のために、赤外ストロボスコープの点灯時の画素データと消灯時の画素データとの差分を計算することとした。
【0096】
そのため、図19(C)の点灯時の映像信号の画素データと、図19(D)の消灯時の映像信号の画素データとの差分を計算した。すると、図19(E)に示すように、その差分だけの映像が取得できる。この差分データによる映像は、図19(A)と対比すれば明らかなように、ゴルフクラブ型入力装置14の反射体によって得られる画像のみを含むことになる。したがって、ゲームプロセサ52の性能があまり高くなくても、ゴルフクラブ型入力装置14のスイングによる、反射体50すなわちクラブヘッド48(図4)の移動軌跡を取得することができる。
【0097】
このような理由で、この実施例では、図18のステップS105において、たとえば図19(E)に示す差分データ配列を算出する。ステップS105で差分データ配列を求めた後、ステップS107で値の最も大きい画素(最大輝度の画素)の座標を取得し、ステップS109で、その座標の画素の輝度が規定値を超えているかどうか判断する。
【0098】
このステップS109で“YES”が判断されると、続くステップS111で、ステップS107で取得した座標の画素に接する画素、さらにはそれに接する画素が上記規定値を超えているかどうかを順次判定し、注目部(実施例でいえば反射体の画像)の直径Φ[N]を計算する。この注目部の直径(または大きさ)を計算するのは、ステップS113で反射体50の高さ(Z座標)を取得するためと、ステップS115でその反射体の中心座標を特定する必要があるからである。
【0099】
図3に示すように、この実施例の撮像ユニット28には単焦点の光学系が用いられている。したがって、反射体50と撮像素子、すなわちイメージセンサ40との間の距離が上記光学系の焦点と合致するとき画像の「ぼけ」が最も少なく、直径が最も大きい。これに対して、その合焦距離と反射体−イメージセンサ間距離との乖離が大きいほど、画像そのものが小さくなる。図19(E)および後述の図21の例では、その反射体−イメージセンサ間距離に応じて画像の大きさ(直径)が変化することを示している。このようにして、反射体画像の直径(大きさ)に基づいて、反射体−イメージセンサ間距離すなわち反射体50の高さ(Z座標)を求めることができる。この実施例のゴルフゲームシステムではこのZ座標は使用していないが、必要に応じてこのZ座標を利用することによって、さらに異なるゲーム入力を与えることができる。
【0100】
このようにして、ステップS113でZ座標を求め、ステップS115で反射体50の中心座標(X,YまたはX,Y,Z)を保存する。
【0101】
その後ステップS117で回数レジスタのN値をインクリメントして、ステップS119で回数Nが規定値を超えたかどうか判断する。ステップS119で“YES”が判断されると、そのまま図15のステップS59にリターンする。しかしながら、“NO”が判断されると、先のステップS105に戻って、ステップS105以下の各ステップを繰り返し実行する。
【0102】
なお、ステップS109で“NO”が判断されたとき、つまり、最大輝度の画素の輝度が規定値を超えないと判断されたときには、次のステップS121で規定個数のデータをすべて検索した結果かどうか判断する。ステップS121で“YES”が判断されると、つまり、規定個数の画素をすべて検索したときには、ステップS123で、注目点がないとして検索結果を保存する。ただし、ステップS121で“NO”が判断されたときには、ステップS125で次に輝度の大きな画素の座標データを取得して、ステップS107に戻る。
【0103】
ステップS57でこのようにして注目点の抽出処理をした後、次のステップS59で、速度ベクトルを計算するなどの動き算出処理を実行する。
【0104】
図20がこの動き算出処理の一例である速度ベクトル算出処理の具体例を詳細図示している。図20のステップS127では上で述べたように、回数レジスタNに「1」を代入する。その後、ステップS129では、N回目の注目点座標(PX[N],PY[N]:図21)からN−1回目の注目点座標(PX[N−1],PY[N−1])を減算してN回目の速度ベクトル(VX[N],VY[N])を算出して内部メモリに格納する。
【0105】
図21には、直径Φ[1]を有する第1回目の注目領域の画像が示され、この第1回目の注目領域の中心座標は(PX[1],PY[1])で、直径Φ[2]を有する第2回目の注目領域の中心座標は(PX[2],PY[2])である。同様に、第3回目および第4回目の注目領域はそれぞれ直径Φ[3]およびΦ[4]を有し、それらの中心座標は、それぞれ(PX[3],PY[3])および(PX[4],PY[4])で示されている。
【0106】
第2回目の注目領域をN回目とした場合、N−1回目のものは第1回目の注目領域である。したがって、ステップS129では、この場合、X方向の速度ベクトルVX[2]は(PX[2]−PX[1])で与えられ、Y方向の速度ベクトルVY[2]は(PY[2]−PY[1])で与えられ。なお、N=1の場合、N−1の座標データはないので、前回の最終結果データを用いるか、あるいはその最終結果データがなければ、規定値を用いて速度ベクトルを計算することになる。
【0107】
なお、図21には、各ストロボ映像の注目点領域(反射体)の画像毎の変化量ΔX,ΔYも併せて図示されている。したがって、必要なら、この変化量を使って変化または変位速度を計算することもできる。
【0108】
ステップS129で速度ベクトルを計算した後、ステップS131で回数Nをインクリメントし、続くステップS133でNが規定値に達したかどうか判断する。ステップSか133で“NO”なら先のステップS129に戻って、ステップS129を繰り返し実行する。
【0109】
ステップS59の後、次のステップS61で、図22に詳細に示す判定処理を実行する。この判定処理では、ゴルフクラブ型入力装置14をスイングしたかどうかを判定する。図22の最初のステップS135では、Nに「1」を代入し、ついで、ステップS137で、N点目の速度ベクトル(VX[N],VY[N])から速度V[N](スカラー値)を算出する。そして、次のステップS139において、そのようにして算出した速度V[N]が第1の閾値を超えているかどうか判断する。このステップS139で“YES”なら、直ちにステップS141で「スイングは行われた」と判定するとともに、ステップS143で、N点目の速度ベクトルから打球時のゴルフボールの初速度ベクトルを求める。したがって、実施例のゴルフゲームシステムの場合であれば、この初速度ベクトル、風向き、風の強さおよび地形のデータからボールの飛距離を計算することができる。
【0110】
ステップS139で“NO”が判断されたとき、つまり、ゴルフクラブのスイングの速度が第1の閾値を下回ったときには、次のステップS145において、N点目とN−1点目とを結ぶ線分が規定の領域と交わっているかどうかを判定する。そして、この判定の結果、ステップS147で“YES”が得られたら、次のステップS149で、今度は、そのN点目の速度(スカラー値)が第2の閾値を超えているかどうか判断する。ただし、第2の閾値は当然第1の閾値より小さい値である。
【0111】
ステップS149で“YES”のときには、先のステップS141に進むが、“NO”なら、ステップS147で“NO”のときと同様に、ステップS151に進み、N値をインクリメントする。そして、N>規定値かどうか判断し、“NO”なら先のステップS137に戻ってそれ以降の各ステップを繰り返し実行する。ただし、ステップS153で“NO”が判断されたときには、すなわち、ステップS145の線分が所定の領域と交わることがなく、あるいは交わっていたとしても、速度が所定値より小さい場合には、ステップS155で、結局、「スイングは行われていない」と判定される。
【0112】
図22の判定処理が終わると、図15のステップS63にリターンするが、このステップS63では、ゲーム等のアプリケーションに応じた処理が行われ」、さらに、ステップS65で処理が終了したかどうか(ゲームの場合であればゲーム終了どうか)判断され、“YES”なら終了する。
【0113】
なお、上述の実施例では、ゴルフクラブ型入力装置14に円形の反射体50を設けて、その移動軌跡から初速度ベクトルを求め、その初速度ベクトルでゴルフボールが打ち出されたものとして、ボールの飛距離を計算した。つまり、ボールに与えられる回転は無視していた。円形の反射体ではゴルフクラブ型入力装置14の向きを特定することができないからである。そこで、次の実施例では、ゴルフクラブ型入力装置14の向きをも計算することができるようにする。
【0114】
そのために、次の実施例では、図23に示すゴルフクラブ型入力装置14を使う。この実施例では、先の図4のゴルフクラブ型入力装置が円形の反射体を用いていたのに対し、長円形または長手の反射体50Aを用いる。
【0115】
そして、図15のステップS55で発光ダイオード42の点灯時および消灯時の各画素データを取得した後、図24で示す注目点抽出処理を実行する。ただし、ステップS157−S163は図18のステップS103−S109と同様である。
【0116】
そして、次のステップS165において、ステップS161で取得した座標の画素に接する画素、さらにはそれに接する画素が規定値を超えているかどうかを順次判定し、注目部(実施例でいえば反射体の画像)の全画素を抽出する。そして、ステップS166で、注目部の全画素の中から、互いの距離が最も離れた2つの画素Pa(Xa,Ya)およびPb(Xb,Yb)を抽出する。この2点は、図26に示すように、長円形の反射体50Aの長手方向両端位置を示すことになる。長手方向両端以外に、2点間距離が最遠となる点はない。
【0117】
そして、ステップS167で、2点Pa,Pbの中点座標をN点目の座標(PX[N],PY[N])としてメモリに格納する。そして、ステップS169において、図26に示す、2点Pa,Pb間の傾きを計算して、角度データθ[N]として格納する。ただし、この傾きθ[N]は、ステップS169に示すように、(Xb-Xa)/(Ya-Yb)のアークタンジェントで計算することができる。
【0118】
このようにして、ゴルフクラブ型入力装置14の撮像素子に対する向きが角度データθ[N]として得られる。
【0119】
図24のステップS171−S179は、図18の対応する各ステップS117−S125と同様である。そして、次の判定処理では、図25に示す各ステップを実行するが、図25のステップS181−S189およびS191−S201は、図22の対応するステップS135−S143およびS145−S155と同様である。
【0120】
図25のステップS203において、図24のステップS169で求めた、N点目の座標およびN−1点目の座標によって、角度θj(図26)を計算する。この角度θjは、ステップS203に示すように、(PY[N]-PY[N−1])/(PX[N]-PX[N−1])のアークタンジェントで計算することができ、ゴルフクラブ型入力装置のスイングの方向を示す。そして、ステップS205において、このステップS205に示す式に従って、ゴルフクラブ型入力装置14のスイングの方向に対するゴルフクラブ型入力装置14の傾きθk(=θ[N]−θj)が算出され、θkより打球時のフック/スライスのパラメータを計算する。このようにして、フック/スライスのパラメータを求めることによって、単純な飛距離だけでなく、球のスピンによる飛翔方向の変化をも加味することができ、実施例のゴルフゲームシステムに一層のリアリティや面白さを与えることができる。
【0121】
図27を参照して、この発明の他の実施例であるボーリングゲームシステム78は、ゲーム機80を含み、このゲーム機80は、図2のシステム10のゲーム機12と同様に、ACアダプタや電池で駆動され、AVケーブル16を通して、テレビジョンモニタ(図示せず)のAV端子(図示せず)に接続される。
【0122】
ゲーム機78は、また、ハウジング82を含み、このハウジング82上に電源スイッチ84が設けられるとともに、方向ボタン86ならびに決定キー88およびキャンセルキー90が設けられる。これらのボタンや操作キーは図2の対応のものと同様の機能を持つ。
【0123】
ゲーム機80のハウジング82の一部が切り欠かれ、その部分に可動体92が俯仰方向に回動可能に軸支され、その可動体92の側面には、先に図3を参照して説明した撮像ユニット28が収納され、したがって、可動体92には、先のものと同様のイメージセンサ40が設けられる。そして、可動体92の側面上であってイメージセンサ40の近傍に、このイメージセンサ40と一体的に俯仰される赤外発光ダイオード42が設けられ、ストロボスコーブ撮像手段を構成する。
【0124】
可動体92は、実施例の場合、俯仰方向に一定の自由度を有するように支持されている。しかしながら、俯仰方向に代えて、あるいは俯仰方向と併用して、旋回方向に自由度を持つようにされてもよい。つまり、可動体92すなわちイメージセンサ40および赤外発光ダイオード42は、任意の方向に変位可能に設けられる。
【0125】
ただし、イメージセンサ40のレンズ(図4に示す凹レンズや凸レンズ)をより広角なレンズとすれば、イメージセンサ40を可動なものにする必要はなく、イメージセンサ40を固定的に取り付けるようにしてもよい。
【0126】
ボール型入力装置94は、実際のボーリングゲームと同様に、ユーザの手の3本の指すなわち親指,中指および薬指をそれぞれ挿入する穴94a,94bおよび94c有するとともに、子供が親指以外の任意の1本または複数の指を挿入できる幅広の孔94dをさらに形成している。そして、ストラップ96が設けられていて、ゲームプレイヤは、このストラップ96を自分の腕(上腕または前腕)に装着することによって、安全が図られている。すなわち、ボール型入力装置94がストラップ96によって自分の腕に連結されているので、ゲームプレイヤが誤ってボール型入力装置94を実際のボーリングゲームのように放しても、ボール型入力装置94がどこかに飛んで行き、結果的に自己または他人に当たるなどの事故は起きない。
【0127】
さらに、この実施例のボール型入力装置94は、図28に示すように、透明または半透明の半球状外殻98Aおよび98Bをボスで連結することによってボール型入力装置94のハウジングを形成していて、その外殻98Aおよび98B中に、同様にボスで連結された半球状内殻100Aおよび100Bを固定している。そして、各半球状内殻100Aおよび100Bの表面に反射性シートを貼付することによって反射体を形成している。つまり、内殻が反射体となる。したがって、この実施例では、反射体100とする。
【0128】
さらに、この実施例のボーリングゲームシステム78では、先に説明したように、ストロボスコープによってボール型入力装置94の動きを検出し、それによって、図29に示すゲーム画面102上でボーリングボール104の位置を制御する。このゲーム画面102は、ユーザまたはプレイヤの視点から見た投影画像(perspective image) として表示される。すなわち、ゲーム画面102には、ボーリングレーン106およびその奥行き方向位置に配置されるピン108が表示され、そのゲーム画面102上でレーン106上をボーリングボール104が移動し、そのボール104の到達位置や強さに応じて、実際のボーリングゲームと同様に、ピンが倒される。ただし、たとえばボーリングボール104がピン108に当たる直前からそのピン部部を拡大した画像をウィンドウ(図示せず)として画面中央に表示すると、一層大きな臨場感をプレイヤに与えることかできる。
【0129】
なお、プレイヤの投球動作が終了する毎に、図29に示すゲーム画面102と図30に示すスコアシート110とが切り替えて表示される。そして、複数のゲームプレイヤがプレイする場合には、各人のスコアが同時に表示される。図30の例は、4人のゲームプレイヤがボーリングゲームに同時に参加している場合のスコアシートの例を示す。
【0130】
このボーリングゲームシステム78では、ボール型入力装置94を用いてプレイヤが実空間中で実際に投球動作をしたとき、ゲームプロセサ52(図31)が、赤外発光ダイオード42を間欠的に点灯し、その点灯時および消灯時毎のCMOSイメージセンサ40の画像を解析または処理することによって、ボール型入力装置94の位置を間欠的に検出する。そして、そのボール型入力装置94の位置(座標)に応じてボーリングボール104の動きを制御し、それによって0本のまたは1本以上のピンを倒す。
【0131】
図31を参照して、ボール型入力装置94は、上述のように、赤外発光ダイオード42の発光に照射され、その赤外光を反射体100で反射する。この反射体100からの反射光がCMOSイメージセンサ40によって撮影され、したがって、CMOSイメージセンサ40からは反射体100の映像信号が出力される。ただし、それ以外の部分は、図5に示すゴルフゲームシステム10の場合と同様である。
【0132】
ここで、図32を参照して、実施例のボーリングゲームシステム78の概略動作を説明する。図27に示す電源スイッチ84をオンしてゲームスタートとなるが、図31に示すゲームプロセサ52は、まず、ステップS1で初期化処理を実行する。具体的には、システムおよび各変数を初期化する。ただし、初期化の具体的方法は先に述べたとおりである。
【0133】
そして、図32のステップS1の後、ゲームプロセサ52は、ステップS2で画像信号を更新してモニタ20に表示される画像を更新する。ただし、この表示画像更新は、1フレーム(テレビジョンフレームまたはビデオフレーム)毎に実行される。
【0134】
そして、ゲームプロセサ52は、ステート(状態)に応じた処理を実行する。ただし、最初に処理するのは、ゲームモードの選択である。このゲームモード選択では、ユーザないしゲームプレイヤは、図32のステップS3で、図27に示す選択キー86を操作して、1人プレイモードまたは2人プレイモードなどのゲームモードを選択するとともに、ゲームの難易度等を設定する。
【0135】
実際のボーリングゲームではレーン上にボールを転動させる必要があるが、実施例のボーリングゲームシステム10では、先に述べたように、ボール型入力装置94を用いて投球動作を行う。そこで、ゲームプロセサ52は、ステップS4で投球動作の判定処理を実行し、投球動作が行われたかどうか判定する。そして、投球動作が行われたのであれば、ついでステップS5で、ボール104がレーン106(いずれも図30)上を移動しているとき、ボールの軌道を計算するとともに、ボール104のピン108(図30)への衝突判定処理を実行する。そして、ボール104がレーン106の終端まで到着したときに、ステップS6において、ステップS5でのピン衝突判断処理の結果として、スコア計算および結果判定処理を実行する。
【0136】
なお、この実施例のボーリングゲームシステム78においても、ストロボスコープによって反射体100を撮影することによって、ゲーム入力とすることは先の実施例と同様である。したがって、先の実施例に比べて図15の判定処理ステップS61が異なるだけである。
【0137】
判定処理ステップが図33に詳細に図示され、それぞれの最初のステップS207はN値を「1」として設定する。そして、ステップS209で、速度ベクトルのY成分(上下方向成分)VY[N](図21)が規定値を超えているかどうか判断する。このステップS209で“YES”の場合には、ステップS211に進み、たとえば内部メモリに形成されたカウンタをインクリメントする。そして、次のステップS213で、そのカウンタのカウント値が規定の定数C(たとえば「3」)になったかどうか判断する。“YES”なら、ステップS215で「投球動作が行われた」と判断し、続くステップS217でN点目のX座標PX[N]を投球位置のX座標とするとともに、ステップS219で、N点目の速度ベクトル(VX[N],VY[N])から投球時のボールの初速度を求める。そして、この初速度に応じてボーリングボールが投げ出されたものとして、ゲーム処理が実行される。
【0138】
なお、ステップS209で“NO”が判断されたときには、ステップS221で上述のカウンタをリセットする。したがって、たとえば3回分連続して速度ベクトルのY成分が規定値を超えないと投球動作があったと判断されることはない。これによって、ゲームプレイヤの不所望の動きがゲームに反映されるが防止されている。
【0139】
ステップS221の後、ステップS223でN値をインクリメントし、ステップS225でそのNが所定値に達したかどうか判定する。“YES”が判断されると、ステップS227で「投球はまだ行われていない」と判断される。そして、ステップS219の後と同じように、図15のステップS63にリターンする。
【0140】
図34はストロボスコープを利用する入力装置の他の実施例を示し、この実施例の入力装置112は、手袋型入力装置である。手袋型入力装置112はゲームプレイヤまたはユーザの左右両手に装着される手袋114Lおよび114Rを含み、この手袋114Lおよび114Rのそれぞれの所定位置(この実施例では先端部分)に再帰反射シートで反射体116Lおよび116Rを設ける。この反射体116Lおよび116Rは、それぞれ、手袋114Lおよび114Rの一部として形成され得るが、手袋114Lおよび114Rの上に貼付するようにしてもよい。
【0141】
そして、入力信号を与えるためには、ユーザは手袋114Lおよび114Rを両手に装着し、両手をたとえば図27に示すようなゲーム機80の撮影ユニット28(図3)の上で移動させる。そうすると、既に説明した図15のステップS55すなわち図16に従って、反射体116Lおよび116Rがともに、赤外発光ダイオード42によって照射され、または照射されないで、イメージセンサ40によって撮影される。そして、図15のステップS57すなわち図18に従って注目点(この実施例では2つの反射体116があるので2つの注目点がある)を抽出する。その後、図15のステップS59を適用して、動き算出または検出処理を実行する。ただし、図34の手袋型入力装置112を利用する場合には、ステップS59は図35に示すように変形される。
【0142】
図35に示すフロー図では、移動平均を検出または算出することによって入力を得る。詳しく説明すると、最初のステップS207では、回数レジスタNに「規定値−M」を設定する。次いで、ステップS209において、変数ΣX,ΣYにそれぞれ「0」を設定する。
【0143】
そして、ステップS211において、N回目の座標(PX[N],PY[N]:図21)を取得する。ただし、このとき、N<1の場合には、前回までの座標情報から座標データを取得する。次のステップS213で、ステップS209で初期化した変数ΣX,ΣYに、ステップS211で取得した座標をそれぞれ加算し、ΣX,ΣYを更新する。このことを、ステップS215でインクリメントした回数Nが規定値に達したとステップS217で検出されるまで、繰り返し実行される。したがって、ゲームプロセサ52はこの時点でM個の座標を加算した変数ΣX,ΣYを保存している。そして、ステップS219において、ΣX,ΣYを個数Mで除算することによって、移動平均(AX,AY)を算出する。この移動平均AX,AYを使って、ゲームプロセサ52は、たとえばゲーム画面上のプレイヤ操作可能な移動体の位置を変化させる。
【0144】
なお、この発明は上で説明した実施例以外に、次のような実施例または変形例が可能である。
【0145】
たとえば、図2に示す実施例では、ゴルフクラブ型入力装置14を用いて入力を行うが、同様のシステムを用いて、野球のバット型の入力装置かつ/または野球のボール型の入力装置を用いる野球ゲーム装置、卓球のラケット型入力装置を用いる卓球ゲーム、テニスのラケット型入力装置を用いるテニスゲーム等の変形が多数考えられる。
【0146】
また、反射体を備える入力装置を下脚部または足首に取り付け、プレイヤの足の位置、速度、運動軌跡のパターンを入力信号として扱うサッカーゲーム装置のような変形も考えられる。
【0147】
また、図34に示す手袋型入力装置を用いる実施例については、図35のフローチャートにて算出する移動平均値を入力信号として用いているが、手袋型入力装置の位置、移動速度、移動軌跡を算出し、これらを入力信号として扱う拳闘ゲーム装置、ダンスゲーム装置のような変形が多数考えられる。また、これらの変形例においては、手袋型入力装置の代りに、手首に巻くリストバンド形状の入力装置によっても手袋型入力装置と同様の効果が期待できる。
【0148】
また、前述の足に取り付ける入力装置を、図34に示す手袋型入力装置、あるいはリストバンド形状の入力装置と組み合わせて用いることにより、四肢を使うダンスゲーム装置のような変形も多数考えられる。
【0149】
また、図23に示すゴルフクラブ型入力装置14のように、細長い形状の反射体50Aを剣の形状をした入力装置に貼付し、剣の角度、位置、移動速度、移動軌跡を入力信号として扱う剣闘ゲーム装置のような変形も多数考えられる。
【0150】
この発明ではストロボスコープと撮像手段を用いて対象物を撮影し、複数の発光時映像信号と複数の非発光時映像信号とのそれぞれの差に基づいて対象物の位置、大きさ、速度、加速度、運動軌跡パターンの情報の一部または全部を算出する。情報処理装置やエンターテインメント装置は、その情報を用いて情報処理やゲーム,その他のエンターテインメント処理を実行する。
【0151】
ただし、上述の例では1つのゲームプロセサによってすべての情報処理を実行するようにしたが、2以上のプロセサやコンピュータを用いて全体の処理を分担させることも当然できる。
【符号の説明】
【0152】
10…ゴルフゲームシステム、78…ボーリングゲームシステム、12,80…ゲーム機、14…ゴルフクラブ型入力装置、28…撮影ユニット、40…イメージセンサ、42…赤外発光ダイオード、50,50A,100…反射体、52…ゲームプロセサ、94…ボール型入力装置、112…手袋型入力装置。
【技術分野】
【0001】
この発明はストロボスコープを使った入力システムを備える情報処理装置に関し、特にたとえば、ストロボスコープで照射した対象物の映像信号を処理する情報処理装置に関する。更に、この発明はストロボスコープを使った入力システムを備えるゲーム機等のエンターテインメント装置に関する。更に、この発明はストロボスコープを使った入力システムを備えるマンマシンインターフェースシステムに関する。
【背景技術】
【0002】
本件出願人は、特許文献1などにおいて、圧電ブザーを利用してバットやラケットの実空間中での加速度の変化を検出してゲーム入力しとして使う体感ゲーム装置を提案している。このような体感ゲーム装置では、加速度の変化が所定以上のとき、ゲームプレイヤが対象物(上記の例でいえば、バットやラケット)を実空間中において操作した(振った)と判定するようにしている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2001−104636号公報
【特許文献2】特開2002−231489号公報
【特許文献3】特開平7−141101号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、ゲームの種類によっては、対象物を操作したかどうか、すなわち対象物に加速度が与えられたかどうかだけでなく、どの位置で、あるいはどのような速度で、さらにはどの向きに操作したかを示す情報が欲しい場合もある。特許文献1に開示されるような入力装置では、このような要求を充足することはできない。
【0005】
他方、たとえば特許文献2に開示されるようなストロボスコープを用いて対象物を撮影すれば、その映像信号を解析することによって、上述のような、対象物の位置や速度を把握することができる。しかしながら、この特許文献2にはストロボスコープを開示するのみであり、そのストロボスコープを用いて対象物を撮影することやそれによって得られた映像信号をリアルタイムで解析する具体的な手法はこの特許文献2からはわからない。
【0006】
なお、特許文献3には、撮影した映像信号から対象物を抽出し、その対象物の位置を求め、その位置情報をゲーム装置やコンピュータの入力とすることが開示されているが、この方法は、特定の使用環境ではうまく動作するが、ゲーム機が用いられる一般家庭の室内では正確な位置情報をえるのはかなり困難である。なぜなら、室内の照明、窓、雑多な色の物体、ゲームプレイヤ以外の移動体の存在がすべてノイズや外乱となって検出精度に影響を与えるからである。このようなノイズや外乱の影響を抑えて物体位置を正確に検出するには高速コンピュータが必要であり、プロセサの処理能力が限定される低コストの情報処理装置においては現実的ではない。
【0007】
それゆえに、この発明の主たる目的は、ストロボスコープを用いてコンピュータやゲーム機にリアルタイムで入力を与えることができる、新規な情報処理装置、エンターテインメント装置、およびマンマシンインターフェースシステムを提供することである。
【課題を解決するための手段】
【0008】
請求項1の発明は、ストロボスコープを使った入力システムを備える情報処理装置であって、ストロボスコープ、ストロボスコープの発光時および非発光時にそれぞれ対象物を撮影して発光時映像信号および非発光時映像信号を出力する撮像手段、複数の発光時映像信号と複数の非発光時映像信号とのそれぞれの差に基づいて対象物の位置、大きさ、速度、加速度、運動軌跡パターンの情報の一部または全部を算出する第1の手段、および第1の手段によって算出された情報に基づき情報処理を行う第2の手段を備える、情報処理装置である。
【0009】
請求項1の発明では、ストロボスコープ(42,52:実施例で相当する要素またはコンポーネントの参照符号。以下、同様。)が対象物(14,94,112)を明るく照射すことにより、撮像結果における対象物と対象物以外とのコントラストを高め、対象物の検出を容易にしている。また、第1の手段(52,S59,S129,図35:S61,図22,図25,図33)が複数の発光時映像信号と複数の非発光時映像信号とのそれぞれの差を算出することにより、移動体である対象物以外の静止画像や固定光源等のノイズ成分の影響を抑えて対象物の位置、大きさ、速度、加速度、運動軌跡パターンを正確に、かつ簡単な情報処理で検出することが可能となる。そのようにして算出された情報に基づいて、第2の手段(52,S63)が所定の情報処理を行う。
【0010】
そして、これらの情報を算出するための情報処理とアプリケーション側の情報処理とを分離することにより、アプリケーション側の情報処理が簡便になり、またアプリケーション側の情報処理を別な処理に置き換える際に、対象物の位置、大きさ、速度、加速度、運動軌跡パターンの算出に関する処理を変更することなく用いることが可能となる。
【0011】
請求項2は、請求項1に従属し、第1の手段は、情報が所定の条件に合致するか否かを判定する判定手段を含む、情報処理装置である。
【0012】
請求項2の発明では、判定手段(52,S61,図22,図25,図33)が対象物の位置、大きさ、速度、加速度、運動軌跡パターン等が所定の条件に合致するか否かを判定し、アプリケーション側の情報処理では、判定結果を参照し所定の条件に合致していなければ算出された情報を受取らないようにすることで、簡便なアプリケーション処理が可能となる。
【0013】
請求項3は、請求項2に従属し、第1の手段は、判定手段における判定結果に基づき情報の中から有効な情報のみを検出し、有効な入力が行われたとして第2手段に伝達する有効入力検出手段を含む、情報処理装置である。
【0014】
請求項3の発明では、第1の手段に含まれる有効入力検出手段(52,図22,図25,図33)が判定手段からの判定結果に基づいて情報の取捨選択を行い、ユーザからの有効な入力のみをアプリケーション側の情報処理に伝達する。したがって、簡便なアプリケーション処理が可能となる。
【0015】
請求項4は、請求項1−3のいずれかに従属し、第1の手段は、対象物の大きさを示す情報より対象物と撮像手段の距離を算出する距離算出手段を含む、情報処理装置である。
【0016】
請求項4の発明では、第1の手段に含まれる距離算出手段(52,S111,S113)が、撮像結果より対象物の大きさを算出し、算出された大きさの情報より対象物と撮像手段の距離を算出する。それによって、2次元の撮像結果から対象物の3次元空間中での位置、速度、加速度、運動軌跡パターンを求めることが可能となる。
【0017】
請求項5は、請求項1−4のいずれかに従属し、第1の手段は、発光時映像信号と非発光時映像信号との差より得られる情報を解析し対象物の形状を抽出する解析手段、および形状より対象物と撮像手段の角度を算出する角度算出手段を含む、情報処理装置である。
【0018】
請求項5の発明では、第1の手段が解析手段(52,図24:S159−S167)、および角度算出手段(52,S169)を含み、撮像結果より対象物の形状を解析することで、撮像結果として2次元イメージ上に投影された対象物と、撮像手段との成す角度を求めることが可能となる。
【0019】
請求項6は、請求項5に従属し、解析手段における解析は、対象物中の所定の2点を抽出するものであり、角度算出手段における角度の算出は、所定の2点を結ぶ線分と所定の座標軸との角度を算出するものである、情報処理装置である。
【0020】
請求項6の発明では、解析手段は、対象物中の所定の2点を抽出する解析(S166)を行い、角度算出手段における角度の算出は、所定の2点を結ぶ線分と所定の座標軸との角度を算出するものである(S169)。
【0021】
請求項7は、請求項1−6のいずれかに従属し、ストロボスコープの発光の時間間隔は自在に設定可能である、情報処理装置である。
【0022】
請求項8は、請求項1−6のいずれかに従属し、ストロボスコープの発光期間の長さおよび非発光期間の長さは自在に設定可能である、情報処理装置である。
【0023】
請求項9は、請求項1−6のいずれかに従属し、撮像手段の露光期間は自在に設定可能である、情報処理装置である。
【0024】
たとえば実施例の図6に示すようにプロセサが赤外発光ダイオードの点灯/消灯を制御することによって、請求項7の発明、請求項8の発明あるいは請求項9の発明では、必要な時間間隔で、また必要なタイミングでのみストロボ光源の発光、撮像手段での露光を行うようにすることができ、消費電力の低減を行うことが可能となる。
【0025】
請求項10は、請求項1−9のいずれかに従属し、対象物は反射体を含む、情報処理装置である。
【0026】
請求項10の発明のように対象物が反射体(50,50A,100,116)を含むと、対象物と他の画像とのコントラストがさらに強調されるため、安価な構成で検出精度を高めることが可能となる。
【0027】
請求項11は、請求項1−10のいずれかに従属し、ストロボスコープは特定の波長領域の光を出力する光源を含み、撮像手段は特定の波長領域にのみ応答する、情報処理装置である。
【0028】
請求項12は、請求項11に従属し、撮像手段は特定の波長領域の光のみを透過するフィルタと、フィルタを透過した光で形成される映像を撮影する撮像素子とを含む、情報処理装置である。
【0029】
請求項13は、請求項11に従属し、撮像手段は、特定の波長領域の光で形成される映像のみを撮影する撮像素子を含む、情報処理装置である。
【0030】
請求項11の発明や請求項12の発明あるいは請求項13の発明では、ストロボスコープは特定の波長領域の光を出力する光源(たとえば赤外発光ダイオード42)を含み、撮像手段はたとえば赤外フィルタを用いることによって、特定の波長領域にのみ応答する。そのため、検出を行う対象物以外の移動光源および点滅光源(蛍光灯など)に含まれない波長領域の光をストロボスコープの光源とし、撮像手段がこの波長領域の光にのみ応答するようにすることで、これらのノイズ光源を除去することが可能となる。
【0031】
請求項14は、請求項1−13のいずれかに従属し、第1の手段および第2の手段は、それぞれ単一または複数のプロセサによって処理されるプロセスである、情報処理装置である。
【0032】
請求項14の発明では、第1の手段および第2の手段は、それぞれ単一または複数のプロセサ(52および/またはS63を処理するプロセサ)によって処理されるプロセスである。このように、第1および第2の手段をプロセサのソフトウェアとして処理されるプロセスとすることで、安価でかつ自由度の高いシステムが構築できる。ただし、第1および第2の手段の両方のプロセスが単一のプロセサで実行されることがさらに望ましい。
【0033】
請求項15は、請求項1−14のいずれかにおいて、第2の手段で行われる情報処理がゲーム等のエンターテインメント処理である、エンターテインメント装置である。
【0034】
請求項15の発明は、第2の手段で行われる情報処理をゲーム等のエンターテインメント処理とした、エンターテインメント装置である。
【0035】
請求項16は、ストロボスコープを使った入力システムを備えるマンマシンインターフェースシステムであって、ストロボスコープ、ストロボスコープの発光時および非発光時にそれぞれ対象物を撮影して発光時映像信号および非発光時映像信号を出力する撮像手段、複数の発光時映像信号と複数の非発光時映像信号とのそれぞれの差に基づいて対象物の位置、大きさ、速度、加速度、運動軌跡パターンの情報の一部または全部を算出する第1の手段、および第1の手段によって算出された情報に基づき情報処理を行う第2の手段を備える、マンマシンインターフェースシステムである。
【0036】
請求項16の発明のシステムを、パーソナルコンピュータ、ワークステーション、ゲーム機器、教育機器、医療機器等のマンマシンインターフェースとして用いても、安価且つ精度の高い入力システムが構築できる。
【発明の効果】
【0037】
これらの発明によれば、ストロボスコープによって照射された対象物の撮像結果をディジタル的に解析し、対象物の位置、移動速度、加速度、運動軌跡といった情報をパーソナルコンピュータやビデオゲーム機といった情報処理装置への入力として扱うことが可能となる。
【0038】
また、簡単な情報処理のみで、ノイズや外乱の影響を抑えた精度の高い検出が可能であるので、コスト、許容される消費電力等の条件によりプロセサのパフォーマンスが制限されるシステムの上でも容易に達成が可能である。
【0039】
この発明の上述の目的,その他の目的,特徴,および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【0040】
【図1】図1はストロボスコープで撮影したストロボ映像の一例を示す図解図である。
【図2】図2はこの発明の一実施例のゴルフゲームシステムの全体構成を示す図解図である。
【図3】図3は図2実施例の撮影ユニットの一例を示す図解図である。
【図4】図4は図2実施例のゴルフクラブ型入力装置の一例を示す図解図である。
【図5】図5は図2実施例を示すブロック図である。
【図6】図6は図5実施例においてイメージセンサからゲームプロセサへピクセルデータを取り込む構成およびLED駆動回路を示す回路図である。
【図7】図7は図6実施例の動作を示すタイミング図である。
【図8】図8は図7の一部を拡大して示すタイミング図である。
【図9】図9は図2実施例の状態ないしステートの遷移を示す図解図である。
【図10】図10は図2実施例の全体動作を示すフロー図である。
【図11】図11は図10実施例の初期化処理の一例であるセンサ初期化設定処理動作を示すフロー図である。
【図12】図12は図11のコマンド送信処理動作を示すフロー図である。
【図13】図13は図11のレジスタ設定処理動作を示すフロー図である。
【図14】図14は図13に示すレジスタ設定処理動作を示すタイミング図である。
【図15】図15は図2実施例におけるゲームプロセサの動作を示すフロー図である。
【図16】図16は図15実施例におけるストロボスコープ撮影動作を示すフロー図である。
【図17】図17は図15実施例における画素データ取得処理動作を示すフロー図である。
【図18】図18は図15実施例における注目点抽出処理動作を示すフロー図である。
【図19】図19は実施例において差分データを採用する原理を示す図解図である。
【図20】図20は図15実施例における速度ベクトル算出処理動作を示すフロー図である。
【図21】図21は図20の速度ベクトル算出動作における各座標位置を示す図解図である。
【図22】図22は図15実施例における判定処理動作を示すフロー図である。
【図23】ゴルフゲームシステムに使われるゴルフクラブ型入力装置の変形例を示す図解図である。
【図24】図24は図23のゴルフクラブ型入力装置を利用した場合の図15実施例における注目点抽出処理動作を示すフロー図である。
【図25】図25は図23のゴルフクラブ型入力装置を利用した場合の図15実施例における判定処理動作を示すフロー図である。
【図26】図26は図25の判定処理動作における角度を示す図解図である。
【図27】図27はこの発明の他の実施例のボーリングゲームシステムの全体構成を示す図解図である。
【図28】図28は図27に示すボール型入力装置の内部構造を示す図27の線XXVIII−XXVIIIにおける断面図解図である。
【図29】図29は図27実施例におけるテレビジョンモニタに表示されるゲーム画面の一例を示す図解図である。
【図30】図30は図27実施例におけるテレビジョンモニタに表示されるスコアシートの一例を示す図解図である。
【図31】図31は図27実施例を示すブロック図である。
【図32】図32は図27実施例の全体動作を示すフロー図である。
【図33】図33は図27のボーリングシステムの図15実施例における判定処理動作を示すフロー図である。
【図34】図34は手袋型入力装置の一例を示す図解図である。
【図35】図35は図34の手袋型入力装置を用いる場合の図15実施例に示す動き検出処理動作を示すフロー図である。
【図36】図36は図15実施例における画素データ配列取得処理動作を示すフロー図である。
【発明を実施するための形態】
【0041】
図2を参照して、この発明の一実施例であるゴルフゲームシステム10は、ゲーム機12およびゴルフクラブ型入力装置14を含み、このゴルフクラブ型入力装置14はゲームプレイヤによって、ゲーム機12上で振られる。なお、ゲーム機12は、たとえばACアダプタ(図示せず)または電池のような直流電源によって駆動される。ゲーム機12は、さらに、AVケーブル16を通して、テレビジョンモニタ(図示せず)のAV端子(図示せず)に接続される。
【0042】
ゲーム機12は、また、ハウジング18を含み、このハウジング18上に電源スイッチ20が設けられるとともに、方向ボタン22ならびに決定キー24およびキャンセルキー26が設けられる。方向ボタン22は、4方向(上下左右)の個別のボタンを有し、たとえばテレビジョンモニタの表示画面上においてメニューやゲームモード選択のためにカーソルを移動させたりするために用いられる。
【0043】
決定キー24はゲーム機12への入力を決定するために用いられる。また、キャンセルキー26は、ゲーム機12への入力をキャンセルするために用いられる。
【0044】
ゲーム機12のハウジング16の内部には、図3に詳細に示す撮像ユニット28が収納される。この撮像ユニット28は、たとえばプラスチック成型によって形成されるユニットベース30を含み、このユニットベース30内には支持筒32が取り付けられる。支持筒32の上面には内面が逆円錐形状であるラッパ状の開口34が形成され、その開口34の下方の筒状部内部には、いずれもがたとえば透明プラスチックの成型によって形成された凹レンズ36および凸レンズ38を含む光学系が設けられ、凸レンズ38の下方において、撮像素子としてのイメージセンサ40が固着される。したがって、イメージセンサ40は、開口34からレンズ36および38を通して入射する光に応じた映像を撮影することができる。
【0045】
イメージセンサ40は、低解像度のCMOSイメージセンサ(たとえば32×32画素:グレースケール)である。ただし、このイメージセンサ40は、画素数のもっと多いものでもよいし、CCD等の他の素子からなるものであってよい。
【0046】
また、ユニットベース30には、光出射方向がいずれも上方向とされた複数(この実施例では4つ)の赤外発光ダイオード42が取り付けられる。この赤外発光ダイオード42によって、撮像ユニット28の上方の図3に示す線44aおよび44bで決まる範囲に赤外光が照射される。また、ユニットベース30の上方には、赤外フィルタ(赤外線のみを透過するフィルタ)が上記開口34を覆うように、取り付けられる。そして、赤外発光ダイオード42は後述のように、点灯/消灯が連続的に繰り返されるので、赤外ストロボスコープとして機能する。ただし、「ストロボスコープ」とは、運動体を間欠的に照らす装置の総称である。
【0047】
したがって、上記イメージセンサ40は、線44aおよび44bで示す撮影範囲内で移動する物体、この実施例ではゴルフクラブ型入力装置14に設けられた反射体50(図4参照)を撮影することになる。
【0048】
ゴルフクラブ型入力装置14は、全体がたとえばプラスチック成型によって形成され、図4に示すように、クラブシャフト46とそれの先端に取り付けられたクラブヘッド48とを含み、クラブヘッド48の底面に、たとえば再帰反射シートからなる、円形の反射体50が設けられる。したがって、図2に示すように、ゲームプレイヤがこの入力装置14のクラブシャフト46を持って、普通のゴルフをするときと同じように、ゲーム機12の上方で振れば、ヘッド48の底面の反射体50によって反射された光がイメージセンサ40によって撮影される。このとき、赤外発光ダイオード42は上述のように間欠的に赤外光を照射するため、結果的に、図3に示すように、反射体50が間欠的に撮影される。この実施例のゴルフゲームシステム10では、後述のように、このような反射体のストロボ映像を処理することによって、ゲーム機12の入力となる速度などを計算する。
【0049】
図5を参照して、クラブ型入力装置14は、上述のように、赤外発光ダイオード42の発光に照射され、その赤外光を反射体50で反射する。この反射体50からの反射光がイメージセンサ40によって撮影され、したがって、イメージセンサ40からは反射体50の映像信号が出力される。イメージセンサ40からのこのアナログ映像信号はゲームプロセサ52に内蔵されたA/Dコンバータ(図示せず)によってディジタルデータに変換される。
【0050】
なお、ゲームプロセサ52は、上述のストロボ撮影のために、赤外発光ダイオード42を間欠的に点滅する。
【0051】
このようなゲームプロセサ52としては、任意の種類のプロセサを利用できるが、この実施例では、本件出願人が開発しかつ既に特許出願している高速プロセサを用いる。この高速プロセサは、たとえば特開平10−307790号公報[G06F13/36,15/78]およびこれに対応するアメリカ特許第6,070,205号に詳細に開示されている。
【0052】
ゲームプロセサ52は、図示しないが、演算プロセサ,グラフィックプロセサ,サウンドプロセサおよびDMAプロセサ等の各種プロセサを含むとともに、アナログ信号を取り込むときに用いられる上述のA/Dコンバータやキー操作信号や赤外線信号のような入力信号を受けかつ出力信号を外部機器に与える入出力制御回路を含む。したがって、操作キー22−26からの入力信号がこの入出力制御回路を経て、演算プロセサに与えられる。演算プロセサは、その入力信号に応じて必要な演算を実行し、その結果をグラフィックプロセサ等に与える。したがって、グラフィックプロセサやサウンドプロセサはその演算結果に応じた画像処理や音声処理を実行する。
【0053】
プロセサ52には、図示しないが内部メモリが設けられ、この内部メモリは、ROMまたはRAM(SRAMおよび/またはDRAM)を含む。RAMは一時メモリ,ワーキングメモリあるいはカウンタまたはレジスタ領域(テンポラリデータ領域)およびフラグ領域として利用される。なお、プロセサ52にはROM54が外部バスを通して接続される。このROM54に後に説明するようなゲームプログラムが予め設定される。
【0054】
プロセサ52は、イメージセンサ40からA/Dコンバータを介して入力されるディジタル映像信号を処理してゴルフクラブ型入力装置14の動きを検出するとともに、操作キー22−26からの入力信号に従って演算、グラフィック処理、サウンド処理等を実行し、ビデオ信号およびオーディオ信号を出力する。ビデオ信号はゲーム画面を表示するための画像信号であり、オーディオ信号はゲーム音楽や効果音の信号であり、したがって、テレビジョンモニタ(図示せず)の画面上にゲーム画面表示され、必要なサウンド(効果音、ゲーム音楽)がそれのスピーカから出力される。
【0055】
ここで、図6−図8を参照して、CMOSイメージセンサ40からゲームプロセサ52へピクセルデータを取り込むための構成を詳細に説明する。図6に示すように、実施例のCMOSイメージセンサ40は、ピクセル信号(画素信号)をアナログ信号として出力するタイプのものであるため、このピクセル信号はゲームプロセサ52のアナログ入力ポートに入力される。アナログ入力ポートは、このゲームプロセサ52内においてA/Dコンバータ(図示せず)に接続され、したがって、ゲームプロセサ52は、A/Dコンバータからディジタルデータに変換されたピクセル信号(ピクセルデータ)をその内部に取得する。
【0056】
上述のアナログピクセル信号の中点は、CMOSイメージセンサ40の基準電圧端子Vrefに与えられる基準電圧によって決定される。そのため、この実施例では、イメージセンサ40に関連してたとえば抵抗分圧回路からなる基準電圧発生回路56が設けられ、この回路56から基準電圧端子Vrefに常に一定の大きさの基準電圧が与えられる。
【0057】
CMOSイメージセンサ40を制御するための各ディジタル信号は、ゲームプロセサ52のI/Oポートに与えられ、またはそこから出力される。このI/Oポートは各々入力/出力の制御が可能なディジタルポートであり、このゲームプロセサ52内で入出力制御回路(図示せず)に接続されている。
【0058】
詳しくいうと、ゲームプロセサ52の出力ポートからはイメージセンサ40をリセットするためのリセット信号が出力され、イメージセンサ40に与えられる。また、イメージセンサ40からは、ピクセルデータストローブ信号およびフレームステータスフラグ信号が出力され、それらの信号がゲームプロセサ52の入力ポートに与えられる。ピクセルデータストローブ信号は上述の各ピクセル信号を読み込むための図7(b)に示すようなストローブ信号である。フレームステータスフラグ信号はイメージセンサ40の状態を示すフラグ信号で、図7(a)に示すように、このイメージセンサの露光期間を規定する。つまり、フレームステータスフラグ信号の図7(a)に示すローレベルが露光期間を示し、図7(a)に示すハイレベルが非露光期間を示す。
【0059】
また、ゲームプロセサ52は、CMOSイメージセンサ40内の制御レジスタ(図示せず)に設定するコマンド(またはコマンド+データ)をレジスタデータとしてI/Oポートから出力するとともに、たとえばハイレベルおよびローレベルを繰り返すレジスタ設定クロックを出力し、それらをイメージセンサ40に与える。
【0060】
なお、この実施例では、赤外発光ダイオード42として、図6に示すように互いに並列接続された4つの赤外発光ダイオード42a,42b,42cおよび42dを用いる。この4つの赤外発光ダイオード42a−42dは、上で説明したように、対象物(ゴルフクラブ型入力装置14)を照らすように、イメージセンサ40の視点方向と同一方向に赤外光を照射するようにかつイメージセンサ40を囲むように配置される。ただし、これら個別の赤外発光ダイオード42a−42dは、特に区別する必要がある場合を除いて、単に赤外発光ダイオード42と呼ばれる。この赤外発光ダイオード42はLED駆動回路58によって、点灯されまたは消灯(非点灯)される。LED駆動回路58は、イメージセンサ40から上述のフレームステータスフラグ信号を受け、このフラグ信号は、抵抗62およびコンデンサ64からなる微分回路60を通してPNPトランジスタ68のベースに与えられる。このPNPトランジスタ68にはさらにプルアップ抵抗66が接続されていて、このPNPトランジスタ68のベースは、通常は、ハイレベルにプルアップされている。そして、フレームステータス信号がローレベルになると、そのローレベルが微分回路60を経てベースに入力されるため、PNPトランジスタ68は、フラグ信号がローレベル期間にのみオンする。
【0061】
PNPトランジスタ68のエミッタは抵抗70および72を介して接地される。そして、エミッタ抵抗70および72の接続点がNPNトランジスタ74のベースに接続される。このNPNトランジスタ74のコレクタが各赤外発光ダイオード42a−42dのアノードに共通に接続される。NPNトランジスタ74のエミッタが別のNPNトランジスタ76のベースに直接接続される。NPNトランジスタ74のコレクタが各赤外発光ダイオード42a−42dのカソードに共通接続され、エミッタが接地される。
【0062】
このLED駆動回路58では、ゲームプロセサ52のI/Oポートから出力されるLEDコントロール信号(第2信号に相当する)がアクティブ(ハイレベル)でありかつイメージセンサ40からのフレームステータスフラグ信号がローレベルである期間にのみ赤外発光ダイオード42が点灯される。図7(a)に示すようにフレームステータスフラグ信号がローレベルになると、そのローレベル期間中(実際には微分回路60の時定数での遅れがあるが)、PNPトランジスタ68がオンする。したがって、図7(d)に示すLEDコントロール信号がゲームプロセサ52からハイレベルで出力されると、NPNトランジスタ74のベースがローレベルとなり、このトランジスタ68がオフとなる。トランジスタ68がオフするとトランジスタ74はオンとなる。したがって、電源(図6では小さい白丸で示す)から各赤外発光ダイオード42a−42dおよびトランジスタ76を経て電流が流れ、応じて図7(e)に示すように各赤外発光ダイオード42a−42dが点灯される。
【0063】
実施例のLED駆動回路58では、このように、図7(d)のLEDコントロール信号がアクティブでありかつ図7(a)のフレームステータスフラグ信号がローレベルである期間にのみ赤外発光ダイオード42が点灯されるので、イメージセンサ40の露光期間(図7(f)参照)にのみ赤外発光ダイオード42が点灯されることになる。したがって、この実施例によれば、無駄な電力消費を抑制することができる。さらに、フレームステータスフラグ信号はコンデンサ64によってカップリングされているので、万一イメージセンサ40の暴走等によりそのフラグ信号がローレベルのまま停止した場合でも、一定時間後にはトランジスタ68は必ずオフされ、赤外発光ダイオード42も一定時間後には必ずオフされる。
【0064】
このように、この実施例では、フレームステータス信号の持続期間を変更することによって、イメージセンサ40の露光時間を任意にかつ自在に設定または変更することができる。
【0065】
さらに、フレームステータス信号およびLEDコントロール信号の持続時間や周期を変更することによって、赤外発光ダイオード42すなわちストロボスコープの発光期間、非発光期間、発光/非発光周期などを任意にかつ自在に変更または設定できる。
【0066】
先に説明したように、赤外発光ダイオード42からの赤外光によってゴルフクラブ型入力装置14の反射体50が照射されると、反射体50からの反射光によってイメージセンサ40が露光される。応じて、イメージセンサ40から上述のピクセル信号が出力される。詳しく説明すると、CMOSイメージセンサ40は、上述の図7(a)のフレームステータスフラグ信号がハイレベルの期間(赤外発光ダイオード42の非点灯期間)に図7(b)に示すピクセルデータストローブに同期して、図7(c)に示すようにアナログのピクセル信号を出力する。ゲームプロセサ52では、そのフレームステータスフラグ信号とピクセルデータストローブとを監視しながら、A/Dコンバータを通じて、ディジタルのピクセルデータを取得する。
【0067】
ただし、ピクセルデータ(ピクセル信号)は実施例では、図8(c)に示すように、第0行,第1行,…第31行と行順次に出力される。ただし、後に説明するように、各行の先頭の1ピクセルはダミーデータとなる。
【0068】
ここで、図9および図10を参照して、図2実施例のゴルフゲームシステム10の概略動作を説明する。図2に示す電源スイッチ20をオンしてゲームスタートとなるが、図5に示すゲームプロセサ52は、まず、ステップS1で初期化処理を実行する。具体的には、システムおよび各変数を初期化する。
【0069】
ステップS1での初期化処理は、イメージセンサ40内の制御レジスタへのデータ設定処理を含み、具体的には、図11−図13に示すフロー図に従って、かつ図14に示すタイミングで実行される。
【0070】
図11の最初のステップS11では、ゲームプロセサ52は、設定データとして、コマンド“CONF”を設定する。ただし、このコマンド“CONF”は、イメージセンサ40に、ゲームプロセサ52からコマンドを送信する設定モードに入ることを知らせるためのコマンドである。そして、次のステップS13で、図12に詳細に示すコマンド送信処理を実行する。
【0071】
コマンド送信処理の最初のステップS31では、プロセサ52は、設定データ(ステップS13の場合はコマンド“CONF”)をレジスタデータ(I/Oポート)に設定し、次のステップS33でレジスタ設定クロック(I/Oポート)をローレベルに設定する。その後、ステップS35で規定時間待機した後、ステップS37で、レジスタ設定クロックをハイレベルに設定する。そして、さらにステップS39での規定時間の待機の後、ステップS41でレジスタ設定クロックを再びローレベルに設定する。このようにして、図14に示すように、規定時間の待機を行いながら、レジスタ設定クロックをローレベル,ハイレベルそしてローレベルとすることによって、コマンド(コマンドまたはコマンド+データ)の送信処理が行われる。
【0072】
ステップS15(図11)では、ピクセルモードを設定するとともに、露光時間の設定を行う。この実施例の場合、イメージセンサ40は先に述べたようにたとえば32×32のCMOSセンサであるため、設定アドレス“0”のピクセルモードレジスタに32×32画素であることを示す“0h”を設定する。次のステップS17において、ゲームプロセサ52は、図13に詳細に示すレジスタ設定処理を実行する。
【0073】
レジスタ設定処理の最初のステップS43では、プロセサ52は、設定データとして、コマンド“MOV”+アドレスを設定し、次のステップS45で、図12で先に説明したコマンド送信処理を実行して、それを送信する。次にステップS47において、プロセサ52は、設定データとして、コマンド“LD”+データを設定し、次のステップS49でコマンド送信処理を実行して、それを送信する。そして、ステップS51で、プロセサ52は、設定データとして、コマンド“SET”を設定し、次のステップS53でそれを送信する。なお、コマンド“MOV”は制御レジスタのアドレスを送信することを示すコマンドで、コマンド“LD”はデータを送信することを示すコマンドで、コマンド“SET”はデータをそのアドレスに実際に設定させるためのコマンドである。なお、この処理は、設定する制御レジスタが複数ある場合には、繰り返し実行される。
【0074】
図11に戻って、次のステップS19では、設定アドレスを“1”(露光時間設定レジスタのローニブルのアドレスを示す)とし、最大露光時間を示す“FFh”のローニブルデータ“Fh”を設定すべきデータとして設定する。そして、ステップS21で図13のレジスタ設定処理を実行する。同様にして、ステップS23において、設定アドレスを“2”(露光時間設定レジスタのハイニブルのアドレスを示す)とし、最大露光時間を示す“FFh”のハイニブルデータ“Fh”を設定すべきデータとして設定し、ステップS25でレジスタ設定処理を実行する。
【0075】
その後、ステップS27で設定終了を示しかつイメージセンサ40にデータの出力を開始させるためのコマンド“RUN”を設定し、ステップS29で送信する。このようにして、図10に示すステップS1での初期設定動作が実行される。ただし、図11−図14に示す具体例は、使用されるイメージセンサの仕様に応じて、適宜変更され得るものである。
【0076】
図10のステップS1の後、ゲームプロセサ52は、ステップS2で画像信号を更新してモニタ(図示せず)に表示される画像を更新する。ただし、この表示画像更新は、1フレーム(テレビジョンフレームまたはビデオフレーム)毎に実行される。
【0077】
そして、ゲームプロセサ52は、ステート(状態)に応じた処理を実行する。ただし、最初に処理するのは、ゲームモードの選択である。このゲームモード選択では、ユーザないしゲームプレイヤは、図10のステップS3で、図1に示す選択キー22を操作して、1人プレイモードまたは2人プレイモードなどのゲームモードを選択するとともに、ゲームの難易度等を設定する。
【0078】
実際のゴルフゲームではゴルフクラブを振ってゲーム画面内でゴルフボールを転動させる必要があるが、実施例のゴルフゲームシステム10では、先に述べたように、ゴルフクラブ型入力装置14を用いて実空間中でゴルフクラブスイング動作を行う。そこで、ゲームプロセサ52は、ステップS4でスイング動作の判定処理を実行し、スイング動作が行われたかどうか判定する。そして、スイング動作が行われたのであれば、ついでステップS5で、ゲーム画面内でボールが飛翔しまたは転動しているとき、ボールの軌道を計算するとともに、ボールが停止したときに、ステップS6において、ステップS5での軌道計算処理の結果として、スコア計算および結果判定処理を実行する。
【0079】
その後、ビデオ同期信号による割り込みがあれば、ステップS2(図10)の画像更新を実行する。また、ステップS7の音声処理は、音声割り込みが発生したとき実行され、それによってゲーム音楽やゴルフクラブがボールを叩いた音のような効果音を出力する。
【0080】
図15−図22を参照して、このようなゴルフゲームシステム10の具体的な全体動作を説明する。図15の最初のステップS55では、ゲームプロセサ52は、ゴルフクラブ型入力装置14の移動位置を検出するためのストロボスコープ撮影を実行する。
【0081】
このストロボスコープ撮影処理の詳細が図16に示される。図16の最初のス67では、ゲームプロセサ52は、内部メモリ(図示せず)の適宜の領域の回数レジスタ(図示せず)の回数Nに「1」を代入する。続くステップS69において、ゲームプロセサ52は、ストロボスコープ撮影のために赤外発光ダイオード42を点灯する。具体的には、図7に示すLEDコントロール信号をハイレベルとする。その後、ステップS71で、画素データ配列の取得処理を実行する。
【0082】
図36の最初のステップS301で、ゲームプロセサ52は画素データ配列の要素番号としてXに「−1」、Yに「0」を設定する。本実施例における画素データ配列は、X=0〜31、Y=0〜31の2次元配列であるが、前述のように各行の先頭ピクセルのデータとしてダミーデータが出力されるので、Xの初期値として「−1」が設定される。続くステップS303では、図17に示す要素[Y][X]の画素データの取得処理を実行する。
【0083】
図17の最初のステップS83で、ゲームプロセサ52は、イメージセンサ40からのフレームステータスフラグ信号をチェックし、ステップS85でその立ち上がりエッジ(ローレベルからハイレベルへの)が発生したかどうか判断する。そして、ステップS85でフラグ信号の立ち上がりエッジを検出すると、次のステップS87において、ゲームプロセサ52は、それの内部のA/Dコンバータに入力されてきたアナログのピクセル信号のディジタルデータへの変換の開始を指示する。その後、ステップS89でイメージセンサ40からのピクセルストローブをチェックし、ステップS91でそのストローブ信号のローレベルからハイレベルへの立ち上がりエッジが発生したかどうか判断する。
【0084】
ステップS91で“YES”が判断されると、ゲームプロセサ52は続いて、ステップS93において、X=−1かどうか、すなわち先頭ピクセルかどうか判断する。先に述べたように、各行の先頭ピクセルはダミーピクセルとして設定されているので、このステップS93で“YES”が判断されると、次のステップS95でそのときのピクセルデータを取得しないで、ステップS97で要素番号Xをインクリメントする。
【0085】
ステップS93で“NO”が判断されると、行の第2番目以降のピクセルデータであるので、ステップS99およびS101において、そのときのピクセルデータを取得し、テンポラリレジスタ(図示せず)にそのピクセルデータを格納する。その後、図36のステップS305にリターンする。
【0086】
ステップS305では、テンポラリレジスタに格納されたピクセルデータを画素データ配列の要素[Y][X]として格納する。
【0087】
続くステップS309でXをインクリメントする。Xが32に満たない場合、前述のS303からS307の処理を繰り返し実行する。Xが32の場合、すなわち画素データの取得が行の終端に到達した場合には、続くステップS311Xに「−1」を設定し、ステップS313でYをインクリメントし、次の行の先頭から画素データの取得処理を繰り返す。
【0088】
ステップS315でYが32の場合、すなわち画素データの取得が画素データ配列の終端に到達した場合、図16のステップS73にリターンする。
【0089】
ステップS73では、上記画素データ配列をN回目点灯時取得データとして、たとえば内部RAMのワーキング領域に格納する。
【0090】
続くステップS75で、ゲームプロセサ52は、LEDコントロール信号をローレベルにするなどして、赤外発光ダイオード42を消灯する。その後、ステップS76で、ステップS71と同様にして、図17および図35のサブルーチンに従って、赤外発光ダイオード42が消灯されているときの画素データ配列を取得し、ステップS77においてステップS73と同様にして、内部RAMのワーキング領域に格納する。
【0091】
そして、ステップS79で回数レジスタNをインクリメントし、ステップS81で回数Nが規定値に達したかどうか判断する。このステップS81で“YES”が判断されると、そのまま、図15のステップS57(注目点抽出処理)にリターンする。ただし“NO”のときには、先のステップS69に戻る。
【0092】
注目点抽出処理の詳細が図18に示される。図18の最初のステップS103では、ゲームプロセサ52は、内部メモリ(図示せず)内の回数レジスタ(図示せず)の回数Nに「1」を代入する。そして、次のステップS105で、図16のステップS73およびS77で得た、点灯時取得データおよび消灯時取得データとの差分から、差分データ配列を算出する。
【0093】
つまり、この実施例では、前述のように、ゴルフクラブ型入力装置14の反射体50に赤外光を照射し、赤外フィルタを介してイメージセンサ40に入射した反射赤外光による映像を撮影している。一般的な室内環境で一般的な光源を用いてゴルフクラブ型入力装置14をストロボスコープ撮影をした場合には、イメージセンサ(実施例のイメージセンサ40に相当する)には、図19(A)に示すように、反射体による映像以外に、蛍光灯光源、白熱灯光源、太陽光(窓)のような光源だけでなく、室内のすべてのものの画像がすべて写り込む。したがって、この図19(A)の映像を処理して反射体の映像のみを抽出するのは、かなり高速のコンピュータまたはプロセサが必要である。しかしながら、安価が条件のゲーム装置ではそのような高性能コンピュータを使えない。そこで種々の処理を行って負担を軽減することが考えられる。
【0094】
図19(B)は、図19(A)の映像信号を或る閾値でレベル弁別したときの映像信号である。このようなレベル弁別処理は専用のハードウェア回路でも、ソフトウェア的にでも、実行することができるが、いずれの方法によっても、一定以下の光量の画素データをカットするレベル弁別を実行すると、反射体や光源以外の低輝度画像を除去することができる。この図19(B)の映像では反射体および室内の光源以外の画像の処理を省略でき、したがって、コンピュータの負担を軽減できるが、それでも、光源画像を含む高輝度画像が依然として写り込んでいるので、反射体と他の光源を分別することは難しい。
【0095】
そこで、実施例では、図3に示したように赤外フィルタ44を利用して、イメージセンサ40に赤外光による画像以外の画像が写らないようにした。それによって、図19(C)に示すように、赤外光を殆ど含まない蛍光灯光源の画像は除去できる。しかしながら、それでもなお太陽光や白熱灯が映像信号中に含まれてしまう。したがって、更なる負担軽減のために、赤外ストロボスコープの点灯時の画素データと消灯時の画素データとの差分を計算することとした。
【0096】
そのため、図19(C)の点灯時の映像信号の画素データと、図19(D)の消灯時の映像信号の画素データとの差分を計算した。すると、図19(E)に示すように、その差分だけの映像が取得できる。この差分データによる映像は、図19(A)と対比すれば明らかなように、ゴルフクラブ型入力装置14の反射体によって得られる画像のみを含むことになる。したがって、ゲームプロセサ52の性能があまり高くなくても、ゴルフクラブ型入力装置14のスイングによる、反射体50すなわちクラブヘッド48(図4)の移動軌跡を取得することができる。
【0097】
このような理由で、この実施例では、図18のステップS105において、たとえば図19(E)に示す差分データ配列を算出する。ステップS105で差分データ配列を求めた後、ステップS107で値の最も大きい画素(最大輝度の画素)の座標を取得し、ステップS109で、その座標の画素の輝度が規定値を超えているかどうか判断する。
【0098】
このステップS109で“YES”が判断されると、続くステップS111で、ステップS107で取得した座標の画素に接する画素、さらにはそれに接する画素が上記規定値を超えているかどうかを順次判定し、注目部(実施例でいえば反射体の画像)の直径Φ[N]を計算する。この注目部の直径(または大きさ)を計算するのは、ステップS113で反射体50の高さ(Z座標)を取得するためと、ステップS115でその反射体の中心座標を特定する必要があるからである。
【0099】
図3に示すように、この実施例の撮像ユニット28には単焦点の光学系が用いられている。したがって、反射体50と撮像素子、すなわちイメージセンサ40との間の距離が上記光学系の焦点と合致するとき画像の「ぼけ」が最も少なく、直径が最も大きい。これに対して、その合焦距離と反射体−イメージセンサ間距離との乖離が大きいほど、画像そのものが小さくなる。図19(E)および後述の図21の例では、その反射体−イメージセンサ間距離に応じて画像の大きさ(直径)が変化することを示している。このようにして、反射体画像の直径(大きさ)に基づいて、反射体−イメージセンサ間距離すなわち反射体50の高さ(Z座標)を求めることができる。この実施例のゴルフゲームシステムではこのZ座標は使用していないが、必要に応じてこのZ座標を利用することによって、さらに異なるゲーム入力を与えることができる。
【0100】
このようにして、ステップS113でZ座標を求め、ステップS115で反射体50の中心座標(X,YまたはX,Y,Z)を保存する。
【0101】
その後ステップS117で回数レジスタのN値をインクリメントして、ステップS119で回数Nが規定値を超えたかどうか判断する。ステップS119で“YES”が判断されると、そのまま図15のステップS59にリターンする。しかしながら、“NO”が判断されると、先のステップS105に戻って、ステップS105以下の各ステップを繰り返し実行する。
【0102】
なお、ステップS109で“NO”が判断されたとき、つまり、最大輝度の画素の輝度が規定値を超えないと判断されたときには、次のステップS121で規定個数のデータをすべて検索した結果かどうか判断する。ステップS121で“YES”が判断されると、つまり、規定個数の画素をすべて検索したときには、ステップS123で、注目点がないとして検索結果を保存する。ただし、ステップS121で“NO”が判断されたときには、ステップS125で次に輝度の大きな画素の座標データを取得して、ステップS107に戻る。
【0103】
ステップS57でこのようにして注目点の抽出処理をした後、次のステップS59で、速度ベクトルを計算するなどの動き算出処理を実行する。
【0104】
図20がこの動き算出処理の一例である速度ベクトル算出処理の具体例を詳細図示している。図20のステップS127では上で述べたように、回数レジスタNに「1」を代入する。その後、ステップS129では、N回目の注目点座標(PX[N],PY[N]:図21)からN−1回目の注目点座標(PX[N−1],PY[N−1])を減算してN回目の速度ベクトル(VX[N],VY[N])を算出して内部メモリに格納する。
【0105】
図21には、直径Φ[1]を有する第1回目の注目領域の画像が示され、この第1回目の注目領域の中心座標は(PX[1],PY[1])で、直径Φ[2]を有する第2回目の注目領域の中心座標は(PX[2],PY[2])である。同様に、第3回目および第4回目の注目領域はそれぞれ直径Φ[3]およびΦ[4]を有し、それらの中心座標は、それぞれ(PX[3],PY[3])および(PX[4],PY[4])で示されている。
【0106】
第2回目の注目領域をN回目とした場合、N−1回目のものは第1回目の注目領域である。したがって、ステップS129では、この場合、X方向の速度ベクトルVX[2]は(PX[2]−PX[1])で与えられ、Y方向の速度ベクトルVY[2]は(PY[2]−PY[1])で与えられ。なお、N=1の場合、N−1の座標データはないので、前回の最終結果データを用いるか、あるいはその最終結果データがなければ、規定値を用いて速度ベクトルを計算することになる。
【0107】
なお、図21には、各ストロボ映像の注目点領域(反射体)の画像毎の変化量ΔX,ΔYも併せて図示されている。したがって、必要なら、この変化量を使って変化または変位速度を計算することもできる。
【0108】
ステップS129で速度ベクトルを計算した後、ステップS131で回数Nをインクリメントし、続くステップS133でNが規定値に達したかどうか判断する。ステップSか133で“NO”なら先のステップS129に戻って、ステップS129を繰り返し実行する。
【0109】
ステップS59の後、次のステップS61で、図22に詳細に示す判定処理を実行する。この判定処理では、ゴルフクラブ型入力装置14をスイングしたかどうかを判定する。図22の最初のステップS135では、Nに「1」を代入し、ついで、ステップS137で、N点目の速度ベクトル(VX[N],VY[N])から速度V[N](スカラー値)を算出する。そして、次のステップS139において、そのようにして算出した速度V[N]が第1の閾値を超えているかどうか判断する。このステップS139で“YES”なら、直ちにステップS141で「スイングは行われた」と判定するとともに、ステップS143で、N点目の速度ベクトルから打球時のゴルフボールの初速度ベクトルを求める。したがって、実施例のゴルフゲームシステムの場合であれば、この初速度ベクトル、風向き、風の強さおよび地形のデータからボールの飛距離を計算することができる。
【0110】
ステップS139で“NO”が判断されたとき、つまり、ゴルフクラブのスイングの速度が第1の閾値を下回ったときには、次のステップS145において、N点目とN−1点目とを結ぶ線分が規定の領域と交わっているかどうかを判定する。そして、この判定の結果、ステップS147で“YES”が得られたら、次のステップS149で、今度は、そのN点目の速度(スカラー値)が第2の閾値を超えているかどうか判断する。ただし、第2の閾値は当然第1の閾値より小さい値である。
【0111】
ステップS149で“YES”のときには、先のステップS141に進むが、“NO”なら、ステップS147で“NO”のときと同様に、ステップS151に進み、N値をインクリメントする。そして、N>規定値かどうか判断し、“NO”なら先のステップS137に戻ってそれ以降の各ステップを繰り返し実行する。ただし、ステップS153で“NO”が判断されたときには、すなわち、ステップS145の線分が所定の領域と交わることがなく、あるいは交わっていたとしても、速度が所定値より小さい場合には、ステップS155で、結局、「スイングは行われていない」と判定される。
【0112】
図22の判定処理が終わると、図15のステップS63にリターンするが、このステップS63では、ゲーム等のアプリケーションに応じた処理が行われ」、さらに、ステップS65で処理が終了したかどうか(ゲームの場合であればゲーム終了どうか)判断され、“YES”なら終了する。
【0113】
なお、上述の実施例では、ゴルフクラブ型入力装置14に円形の反射体50を設けて、その移動軌跡から初速度ベクトルを求め、その初速度ベクトルでゴルフボールが打ち出されたものとして、ボールの飛距離を計算した。つまり、ボールに与えられる回転は無視していた。円形の反射体ではゴルフクラブ型入力装置14の向きを特定することができないからである。そこで、次の実施例では、ゴルフクラブ型入力装置14の向きをも計算することができるようにする。
【0114】
そのために、次の実施例では、図23に示すゴルフクラブ型入力装置14を使う。この実施例では、先の図4のゴルフクラブ型入力装置が円形の反射体を用いていたのに対し、長円形または長手の反射体50Aを用いる。
【0115】
そして、図15のステップS55で発光ダイオード42の点灯時および消灯時の各画素データを取得した後、図24で示す注目点抽出処理を実行する。ただし、ステップS157−S163は図18のステップS103−S109と同様である。
【0116】
そして、次のステップS165において、ステップS161で取得した座標の画素に接する画素、さらにはそれに接する画素が規定値を超えているかどうかを順次判定し、注目部(実施例でいえば反射体の画像)の全画素を抽出する。そして、ステップS166で、注目部の全画素の中から、互いの距離が最も離れた2つの画素Pa(Xa,Ya)およびPb(Xb,Yb)を抽出する。この2点は、図26に示すように、長円形の反射体50Aの長手方向両端位置を示すことになる。長手方向両端以外に、2点間距離が最遠となる点はない。
【0117】
そして、ステップS167で、2点Pa,Pbの中点座標をN点目の座標(PX[N],PY[N])としてメモリに格納する。そして、ステップS169において、図26に示す、2点Pa,Pb間の傾きを計算して、角度データθ[N]として格納する。ただし、この傾きθ[N]は、ステップS169に示すように、(Xb-Xa)/(Ya-Yb)のアークタンジェントで計算することができる。
【0118】
このようにして、ゴルフクラブ型入力装置14の撮像素子に対する向きが角度データθ[N]として得られる。
【0119】
図24のステップS171−S179は、図18の対応する各ステップS117−S125と同様である。そして、次の判定処理では、図25に示す各ステップを実行するが、図25のステップS181−S189およびS191−S201は、図22の対応するステップS135−S143およびS145−S155と同様である。
【0120】
図25のステップS203において、図24のステップS169で求めた、N点目の座標およびN−1点目の座標によって、角度θj(図26)を計算する。この角度θjは、ステップS203に示すように、(PY[N]-PY[N−1])/(PX[N]-PX[N−1])のアークタンジェントで計算することができ、ゴルフクラブ型入力装置のスイングの方向を示す。そして、ステップS205において、このステップS205に示す式に従って、ゴルフクラブ型入力装置14のスイングの方向に対するゴルフクラブ型入力装置14の傾きθk(=θ[N]−θj)が算出され、θkより打球時のフック/スライスのパラメータを計算する。このようにして、フック/スライスのパラメータを求めることによって、単純な飛距離だけでなく、球のスピンによる飛翔方向の変化をも加味することができ、実施例のゴルフゲームシステムに一層のリアリティや面白さを与えることができる。
【0121】
図27を参照して、この発明の他の実施例であるボーリングゲームシステム78は、ゲーム機80を含み、このゲーム機80は、図2のシステム10のゲーム機12と同様に、ACアダプタや電池で駆動され、AVケーブル16を通して、テレビジョンモニタ(図示せず)のAV端子(図示せず)に接続される。
【0122】
ゲーム機78は、また、ハウジング82を含み、このハウジング82上に電源スイッチ84が設けられるとともに、方向ボタン86ならびに決定キー88およびキャンセルキー90が設けられる。これらのボタンや操作キーは図2の対応のものと同様の機能を持つ。
【0123】
ゲーム機80のハウジング82の一部が切り欠かれ、その部分に可動体92が俯仰方向に回動可能に軸支され、その可動体92の側面には、先に図3を参照して説明した撮像ユニット28が収納され、したがって、可動体92には、先のものと同様のイメージセンサ40が設けられる。そして、可動体92の側面上であってイメージセンサ40の近傍に、このイメージセンサ40と一体的に俯仰される赤外発光ダイオード42が設けられ、ストロボスコーブ撮像手段を構成する。
【0124】
可動体92は、実施例の場合、俯仰方向に一定の自由度を有するように支持されている。しかしながら、俯仰方向に代えて、あるいは俯仰方向と併用して、旋回方向に自由度を持つようにされてもよい。つまり、可動体92すなわちイメージセンサ40および赤外発光ダイオード42は、任意の方向に変位可能に設けられる。
【0125】
ただし、イメージセンサ40のレンズ(図4に示す凹レンズや凸レンズ)をより広角なレンズとすれば、イメージセンサ40を可動なものにする必要はなく、イメージセンサ40を固定的に取り付けるようにしてもよい。
【0126】
ボール型入力装置94は、実際のボーリングゲームと同様に、ユーザの手の3本の指すなわち親指,中指および薬指をそれぞれ挿入する穴94a,94bおよび94c有するとともに、子供が親指以外の任意の1本または複数の指を挿入できる幅広の孔94dをさらに形成している。そして、ストラップ96が設けられていて、ゲームプレイヤは、このストラップ96を自分の腕(上腕または前腕)に装着することによって、安全が図られている。すなわち、ボール型入力装置94がストラップ96によって自分の腕に連結されているので、ゲームプレイヤが誤ってボール型入力装置94を実際のボーリングゲームのように放しても、ボール型入力装置94がどこかに飛んで行き、結果的に自己または他人に当たるなどの事故は起きない。
【0127】
さらに、この実施例のボール型入力装置94は、図28に示すように、透明または半透明の半球状外殻98Aおよび98Bをボスで連結することによってボール型入力装置94のハウジングを形成していて、その外殻98Aおよび98B中に、同様にボスで連結された半球状内殻100Aおよび100Bを固定している。そして、各半球状内殻100Aおよび100Bの表面に反射性シートを貼付することによって反射体を形成している。つまり、内殻が反射体となる。したがって、この実施例では、反射体100とする。
【0128】
さらに、この実施例のボーリングゲームシステム78では、先に説明したように、ストロボスコープによってボール型入力装置94の動きを検出し、それによって、図29に示すゲーム画面102上でボーリングボール104の位置を制御する。このゲーム画面102は、ユーザまたはプレイヤの視点から見た投影画像(perspective image) として表示される。すなわち、ゲーム画面102には、ボーリングレーン106およびその奥行き方向位置に配置されるピン108が表示され、そのゲーム画面102上でレーン106上をボーリングボール104が移動し、そのボール104の到達位置や強さに応じて、実際のボーリングゲームと同様に、ピンが倒される。ただし、たとえばボーリングボール104がピン108に当たる直前からそのピン部部を拡大した画像をウィンドウ(図示せず)として画面中央に表示すると、一層大きな臨場感をプレイヤに与えることかできる。
【0129】
なお、プレイヤの投球動作が終了する毎に、図29に示すゲーム画面102と図30に示すスコアシート110とが切り替えて表示される。そして、複数のゲームプレイヤがプレイする場合には、各人のスコアが同時に表示される。図30の例は、4人のゲームプレイヤがボーリングゲームに同時に参加している場合のスコアシートの例を示す。
【0130】
このボーリングゲームシステム78では、ボール型入力装置94を用いてプレイヤが実空間中で実際に投球動作をしたとき、ゲームプロセサ52(図31)が、赤外発光ダイオード42を間欠的に点灯し、その点灯時および消灯時毎のCMOSイメージセンサ40の画像を解析または処理することによって、ボール型入力装置94の位置を間欠的に検出する。そして、そのボール型入力装置94の位置(座標)に応じてボーリングボール104の動きを制御し、それによって0本のまたは1本以上のピンを倒す。
【0131】
図31を参照して、ボール型入力装置94は、上述のように、赤外発光ダイオード42の発光に照射され、その赤外光を反射体100で反射する。この反射体100からの反射光がCMOSイメージセンサ40によって撮影され、したがって、CMOSイメージセンサ40からは反射体100の映像信号が出力される。ただし、それ以外の部分は、図5に示すゴルフゲームシステム10の場合と同様である。
【0132】
ここで、図32を参照して、実施例のボーリングゲームシステム78の概略動作を説明する。図27に示す電源スイッチ84をオンしてゲームスタートとなるが、図31に示すゲームプロセサ52は、まず、ステップS1で初期化処理を実行する。具体的には、システムおよび各変数を初期化する。ただし、初期化の具体的方法は先に述べたとおりである。
【0133】
そして、図32のステップS1の後、ゲームプロセサ52は、ステップS2で画像信号を更新してモニタ20に表示される画像を更新する。ただし、この表示画像更新は、1フレーム(テレビジョンフレームまたはビデオフレーム)毎に実行される。
【0134】
そして、ゲームプロセサ52は、ステート(状態)に応じた処理を実行する。ただし、最初に処理するのは、ゲームモードの選択である。このゲームモード選択では、ユーザないしゲームプレイヤは、図32のステップS3で、図27に示す選択キー86を操作して、1人プレイモードまたは2人プレイモードなどのゲームモードを選択するとともに、ゲームの難易度等を設定する。
【0135】
実際のボーリングゲームではレーン上にボールを転動させる必要があるが、実施例のボーリングゲームシステム10では、先に述べたように、ボール型入力装置94を用いて投球動作を行う。そこで、ゲームプロセサ52は、ステップS4で投球動作の判定処理を実行し、投球動作が行われたかどうか判定する。そして、投球動作が行われたのであれば、ついでステップS5で、ボール104がレーン106(いずれも図30)上を移動しているとき、ボールの軌道を計算するとともに、ボール104のピン108(図30)への衝突判定処理を実行する。そして、ボール104がレーン106の終端まで到着したときに、ステップS6において、ステップS5でのピン衝突判断処理の結果として、スコア計算および結果判定処理を実行する。
【0136】
なお、この実施例のボーリングゲームシステム78においても、ストロボスコープによって反射体100を撮影することによって、ゲーム入力とすることは先の実施例と同様である。したがって、先の実施例に比べて図15の判定処理ステップS61が異なるだけである。
【0137】
判定処理ステップが図33に詳細に図示され、それぞれの最初のステップS207はN値を「1」として設定する。そして、ステップS209で、速度ベクトルのY成分(上下方向成分)VY[N](図21)が規定値を超えているかどうか判断する。このステップS209で“YES”の場合には、ステップS211に進み、たとえば内部メモリに形成されたカウンタをインクリメントする。そして、次のステップS213で、そのカウンタのカウント値が規定の定数C(たとえば「3」)になったかどうか判断する。“YES”なら、ステップS215で「投球動作が行われた」と判断し、続くステップS217でN点目のX座標PX[N]を投球位置のX座標とするとともに、ステップS219で、N点目の速度ベクトル(VX[N],VY[N])から投球時のボールの初速度を求める。そして、この初速度に応じてボーリングボールが投げ出されたものとして、ゲーム処理が実行される。
【0138】
なお、ステップS209で“NO”が判断されたときには、ステップS221で上述のカウンタをリセットする。したがって、たとえば3回分連続して速度ベクトルのY成分が規定値を超えないと投球動作があったと判断されることはない。これによって、ゲームプレイヤの不所望の動きがゲームに反映されるが防止されている。
【0139】
ステップS221の後、ステップS223でN値をインクリメントし、ステップS225でそのNが所定値に達したかどうか判定する。“YES”が判断されると、ステップS227で「投球はまだ行われていない」と判断される。そして、ステップS219の後と同じように、図15のステップS63にリターンする。
【0140】
図34はストロボスコープを利用する入力装置の他の実施例を示し、この実施例の入力装置112は、手袋型入力装置である。手袋型入力装置112はゲームプレイヤまたはユーザの左右両手に装着される手袋114Lおよび114Rを含み、この手袋114Lおよび114Rのそれぞれの所定位置(この実施例では先端部分)に再帰反射シートで反射体116Lおよび116Rを設ける。この反射体116Lおよび116Rは、それぞれ、手袋114Lおよび114Rの一部として形成され得るが、手袋114Lおよび114Rの上に貼付するようにしてもよい。
【0141】
そして、入力信号を与えるためには、ユーザは手袋114Lおよび114Rを両手に装着し、両手をたとえば図27に示すようなゲーム機80の撮影ユニット28(図3)の上で移動させる。そうすると、既に説明した図15のステップS55すなわち図16に従って、反射体116Lおよび116Rがともに、赤外発光ダイオード42によって照射され、または照射されないで、イメージセンサ40によって撮影される。そして、図15のステップS57すなわち図18に従って注目点(この実施例では2つの反射体116があるので2つの注目点がある)を抽出する。その後、図15のステップS59を適用して、動き算出または検出処理を実行する。ただし、図34の手袋型入力装置112を利用する場合には、ステップS59は図35に示すように変形される。
【0142】
図35に示すフロー図では、移動平均を検出または算出することによって入力を得る。詳しく説明すると、最初のステップS207では、回数レジスタNに「規定値−M」を設定する。次いで、ステップS209において、変数ΣX,ΣYにそれぞれ「0」を設定する。
【0143】
そして、ステップS211において、N回目の座標(PX[N],PY[N]:図21)を取得する。ただし、このとき、N<1の場合には、前回までの座標情報から座標データを取得する。次のステップS213で、ステップS209で初期化した変数ΣX,ΣYに、ステップS211で取得した座標をそれぞれ加算し、ΣX,ΣYを更新する。このことを、ステップS215でインクリメントした回数Nが規定値に達したとステップS217で検出されるまで、繰り返し実行される。したがって、ゲームプロセサ52はこの時点でM個の座標を加算した変数ΣX,ΣYを保存している。そして、ステップS219において、ΣX,ΣYを個数Mで除算することによって、移動平均(AX,AY)を算出する。この移動平均AX,AYを使って、ゲームプロセサ52は、たとえばゲーム画面上のプレイヤ操作可能な移動体の位置を変化させる。
【0144】
なお、この発明は上で説明した実施例以外に、次のような実施例または変形例が可能である。
【0145】
たとえば、図2に示す実施例では、ゴルフクラブ型入力装置14を用いて入力を行うが、同様のシステムを用いて、野球のバット型の入力装置かつ/または野球のボール型の入力装置を用いる野球ゲーム装置、卓球のラケット型入力装置を用いる卓球ゲーム、テニスのラケット型入力装置を用いるテニスゲーム等の変形が多数考えられる。
【0146】
また、反射体を備える入力装置を下脚部または足首に取り付け、プレイヤの足の位置、速度、運動軌跡のパターンを入力信号として扱うサッカーゲーム装置のような変形も考えられる。
【0147】
また、図34に示す手袋型入力装置を用いる実施例については、図35のフローチャートにて算出する移動平均値を入力信号として用いているが、手袋型入力装置の位置、移動速度、移動軌跡を算出し、これらを入力信号として扱う拳闘ゲーム装置、ダンスゲーム装置のような変形が多数考えられる。また、これらの変形例においては、手袋型入力装置の代りに、手首に巻くリストバンド形状の入力装置によっても手袋型入力装置と同様の効果が期待できる。
【0148】
また、前述の足に取り付ける入力装置を、図34に示す手袋型入力装置、あるいはリストバンド形状の入力装置と組み合わせて用いることにより、四肢を使うダンスゲーム装置のような変形も多数考えられる。
【0149】
また、図23に示すゴルフクラブ型入力装置14のように、細長い形状の反射体50Aを剣の形状をした入力装置に貼付し、剣の角度、位置、移動速度、移動軌跡を入力信号として扱う剣闘ゲーム装置のような変形も多数考えられる。
【0150】
この発明ではストロボスコープと撮像手段を用いて対象物を撮影し、複数の発光時映像信号と複数の非発光時映像信号とのそれぞれの差に基づいて対象物の位置、大きさ、速度、加速度、運動軌跡パターンの情報の一部または全部を算出する。情報処理装置やエンターテインメント装置は、その情報を用いて情報処理やゲーム,その他のエンターテインメント処理を実行する。
【0151】
ただし、上述の例では1つのゲームプロセサによってすべての情報処理を実行するようにしたが、2以上のプロセサやコンピュータを用いて全体の処理を分担させることも当然できる。
【符号の説明】
【0152】
10…ゴルフゲームシステム、78…ボーリングゲームシステム、12,80…ゲーム機、14…ゴルフクラブ型入力装置、28…撮影ユニット、40…イメージセンサ、42…赤外発光ダイオード、50,50A,100…反射体、52…ゲームプロセサ、94…ボール型入力装置、112…手袋型入力装置。
【特許請求の範囲】
【請求項1】
ストロボスコープを使った入力システムを備える情報処理装置であって、
特定の波長領域の光を出力する光源を含むストロボスコープ、
ユニットベース、
前記特定の波長領域の光のみを透過するフィルタ、
前記ストロボスコープの発光時および非発光時に、それぞれ、第1再帰反射体を含む第1対象物を撮影して発光時映像信号および非発光時映像信号を生成する撮像手段、および
前記発光時映像信号と前記非発光時映像信号との差から前記第1再帰反射体に対応する第1注目部を検出して前記第1対象物の位置、大きさ、速度、加速度、運動軌跡パターンの情報の一部または全部を算出する処理手段、を備え、
前記ユニットベースは、
開口を有する支持筒と、
前記開口の下方であって、前記支持筒内に設けられるレンズと、を含み、
前記フィルタは、前記支持筒の前記開口を覆うように配置され、
前記撮像手段は、前記ユニットベース内に、かつ、前記レンズの下方に配置され、
前記光源は、前記第1対象物を照らすように、かつ、前記フィルタの近傍に配置される、情報処理装置。
【請求項2】
前記処理手段によって前記差に基づいて算出された前記情報に基づき、画面上の移動体の動きを制御する移動体制御手段をさらに備える請求項1記載の情報処理装置。
【請求項3】
前記処理手段は、前記差に基づく前記情報が所定の条件に合致するか否かを判定する判定手段を含み、
前記移動体制御手段は、前記判定手段が前記差に基づく前記情報が前記所定の条件に合致すると判定した場合に、前記画面上の前記移動体に変化を与える、請求項2記載の情報処理装置。
【請求項4】
前記処理手段は、前記差から前記第1注目部を抽出して、その第1注目部の大きさを示す情報に基づいて、前記第1対象物と前記撮像手段との距離を算出する距離算出手段を含む、請求項1から3のいずれかに記載の情報処理装置。
【請求項5】
前記処理手段は、前記発光時映像信号と前記非発光時映像信号との前記差から前記第1注目部の形状を抽出する解析手段、および
前記第1対象物に対応する前記形状の傾きを示す角度を算出する角度算出手段を含む、請求項1から4のいずれかに記載の情報処理装置。
【請求項6】
前記解析手段は、前記第1注目部中の所定の2点を抽出するものであり、
前記角度算出手段における前記角度の算出は、前記所定の2点を結ぶ線分と所定の座標軸との角度を算出するものである、請求項5に記載の情報処理装置。
【請求項7】
俯仰方向及び/又は旋回方向に回動可能な可動体をさらに備え、
前記撮像手段、前記ユニットベース、及び、前記光源は、前記可動体に収納される、請求項1から6のいずれかに記載の情報処理装置。
【請求項8】
前記第1対象物には、ストラップが設けられる、請求項1から7のいずれかに記載の情報処理装置。
【請求項9】
前記第1対象物は、バンド形状である、請求項1から7のいずれかに記載の情報処理装置。
【請求項10】
前記第1対象物は、プレイヤの下脚部又は足首に装着される、請求項1から9のいずれかに記載の情報処理装置。
【請求項11】
前記第1再帰反射体は、透明又は半透明のハウジング内に設けられる、請求項1から10のいずれかに記載の情報処理装置。
【請求項12】
前記第1対象物は、手袋型である、請求項1から7のいずれかに記載の情報処理装置。
【請求項13】
前記第1再帰反射体は、細長い形状を有し、
前記処理手段は、前記差から前記第1注目部を検出して、前記対象物の角度、位置、移動速度、又は、移動軌跡を算出し、
前記情報処理装置は、
前記処理手段が算出した前記第1対象物の角度、位置、移動速度、又は、移動軌跡に基づき、剣闘ゲームを実行する手段をさらに備える請求項1から8のいずれかに記載の情報処理装置。
【請求項14】
前記撮像手段は、前記ストロボスコープの発光時および非発光時の各々において前記第1対象物及び第2再帰反射体を含む第2対象物を撮影して発光時映像信号および非発光時映像信号を生成し、
前記処理手段は、前記発光時映像信号と前記非発光時映像信号との差から前記第1再帰反射体に対応する前記第1注目部及び前記第2再帰反射体に対応する第2注目部を検出して、前記第1対象物及び前記第2対象物のそれぞれの位置、大きさ、速度、加速度、運動軌跡パターンの情報の一部または全部を算出する、請求項1記載の情報処理装置。
【請求項15】
前記第1対象物は、プレイヤの手若しくは手首に取り付けられ、又は、手で持たれ、
前記第2対象物は、前記プレイヤの下脚部又は足首に取り付けられる、請求項14記載の情報処理装置。
【請求項16】
請求項1から15のいずれか一に記載の情報処理装置の撮像手段の被写体としての再帰反射体を含む入力装置。
【請求項17】
請求項1から15のいずれか一に記載の情報処理装置のストロボスコープ、ユニットベース、フィルタ、および、撮像手段を備えたマンマシンインターフェースシステム。
【請求項18】
特定の波長領域の光を出力する光源を含むストロボスコープ、ユニットベース、前記特定の波長領域の光のみを透過するフィルタ、並びに、前記ストロボスコープの発光時および非発光時に、それぞれ、再帰反射体を含む対象物を撮影して発光時映像信号および非発光時映像信号を生成する撮像手段を備え、かつ、前記ユニットベースは、開口を有する支持筒と、前記開口の下方であって、前記支持筒内に設けられるレンズと、を含み、前記フィルタは、前記支持筒の前記開口を覆うように配置され、前記撮像手段は、前記ユニットベース内に、かつ、前記レンズの下方に配置され、前記光源は、前記対象物を照らすように、かつ、前記フィルタの近傍に配置される、マンマシンインターフェースシステムからの入力に応じて、
前記発光時映像信号と前記非発光時映像信号との差から前記再帰反射体に対応する注目部を検出するステップと、
前記注目部の位置、大きさ、速度、加速度、運動軌跡パターンの情報の一部または全部を算出するステップと、をコンピュータに実行させるコンピュータプログラム。
【請求項1】
ストロボスコープを使った入力システムを備える情報処理装置であって、
特定の波長領域の光を出力する光源を含むストロボスコープ、
ユニットベース、
前記特定の波長領域の光のみを透過するフィルタ、
前記ストロボスコープの発光時および非発光時に、それぞれ、第1再帰反射体を含む第1対象物を撮影して発光時映像信号および非発光時映像信号を生成する撮像手段、および
前記発光時映像信号と前記非発光時映像信号との差から前記第1再帰反射体に対応する第1注目部を検出して前記第1対象物の位置、大きさ、速度、加速度、運動軌跡パターンの情報の一部または全部を算出する処理手段、を備え、
前記ユニットベースは、
開口を有する支持筒と、
前記開口の下方であって、前記支持筒内に設けられるレンズと、を含み、
前記フィルタは、前記支持筒の前記開口を覆うように配置され、
前記撮像手段は、前記ユニットベース内に、かつ、前記レンズの下方に配置され、
前記光源は、前記第1対象物を照らすように、かつ、前記フィルタの近傍に配置される、情報処理装置。
【請求項2】
前記処理手段によって前記差に基づいて算出された前記情報に基づき、画面上の移動体の動きを制御する移動体制御手段をさらに備える請求項1記載の情報処理装置。
【請求項3】
前記処理手段は、前記差に基づく前記情報が所定の条件に合致するか否かを判定する判定手段を含み、
前記移動体制御手段は、前記判定手段が前記差に基づく前記情報が前記所定の条件に合致すると判定した場合に、前記画面上の前記移動体に変化を与える、請求項2記載の情報処理装置。
【請求項4】
前記処理手段は、前記差から前記第1注目部を抽出して、その第1注目部の大きさを示す情報に基づいて、前記第1対象物と前記撮像手段との距離を算出する距離算出手段を含む、請求項1から3のいずれかに記載の情報処理装置。
【請求項5】
前記処理手段は、前記発光時映像信号と前記非発光時映像信号との前記差から前記第1注目部の形状を抽出する解析手段、および
前記第1対象物に対応する前記形状の傾きを示す角度を算出する角度算出手段を含む、請求項1から4のいずれかに記載の情報処理装置。
【請求項6】
前記解析手段は、前記第1注目部中の所定の2点を抽出するものであり、
前記角度算出手段における前記角度の算出は、前記所定の2点を結ぶ線分と所定の座標軸との角度を算出するものである、請求項5に記載の情報処理装置。
【請求項7】
俯仰方向及び/又は旋回方向に回動可能な可動体をさらに備え、
前記撮像手段、前記ユニットベース、及び、前記光源は、前記可動体に収納される、請求項1から6のいずれかに記載の情報処理装置。
【請求項8】
前記第1対象物には、ストラップが設けられる、請求項1から7のいずれかに記載の情報処理装置。
【請求項9】
前記第1対象物は、バンド形状である、請求項1から7のいずれかに記載の情報処理装置。
【請求項10】
前記第1対象物は、プレイヤの下脚部又は足首に装着される、請求項1から9のいずれかに記載の情報処理装置。
【請求項11】
前記第1再帰反射体は、透明又は半透明のハウジング内に設けられる、請求項1から10のいずれかに記載の情報処理装置。
【請求項12】
前記第1対象物は、手袋型である、請求項1から7のいずれかに記載の情報処理装置。
【請求項13】
前記第1再帰反射体は、細長い形状を有し、
前記処理手段は、前記差から前記第1注目部を検出して、前記対象物の角度、位置、移動速度、又は、移動軌跡を算出し、
前記情報処理装置は、
前記処理手段が算出した前記第1対象物の角度、位置、移動速度、又は、移動軌跡に基づき、剣闘ゲームを実行する手段をさらに備える請求項1から8のいずれかに記載の情報処理装置。
【請求項14】
前記撮像手段は、前記ストロボスコープの発光時および非発光時の各々において前記第1対象物及び第2再帰反射体を含む第2対象物を撮影して発光時映像信号および非発光時映像信号を生成し、
前記処理手段は、前記発光時映像信号と前記非発光時映像信号との差から前記第1再帰反射体に対応する前記第1注目部及び前記第2再帰反射体に対応する第2注目部を検出して、前記第1対象物及び前記第2対象物のそれぞれの位置、大きさ、速度、加速度、運動軌跡パターンの情報の一部または全部を算出する、請求項1記載の情報処理装置。
【請求項15】
前記第1対象物は、プレイヤの手若しくは手首に取り付けられ、又は、手で持たれ、
前記第2対象物は、前記プレイヤの下脚部又は足首に取り付けられる、請求項14記載の情報処理装置。
【請求項16】
請求項1から15のいずれか一に記載の情報処理装置の撮像手段の被写体としての再帰反射体を含む入力装置。
【請求項17】
請求項1から15のいずれか一に記載の情報処理装置のストロボスコープ、ユニットベース、フィルタ、および、撮像手段を備えたマンマシンインターフェースシステム。
【請求項18】
特定の波長領域の光を出力する光源を含むストロボスコープ、ユニットベース、前記特定の波長領域の光のみを透過するフィルタ、並びに、前記ストロボスコープの発光時および非発光時に、それぞれ、再帰反射体を含む対象物を撮影して発光時映像信号および非発光時映像信号を生成する撮像手段を備え、かつ、前記ユニットベースは、開口を有する支持筒と、前記開口の下方であって、前記支持筒内に設けられるレンズと、を含み、前記フィルタは、前記支持筒の前記開口を覆うように配置され、前記撮像手段は、前記ユニットベース内に、かつ、前記レンズの下方に配置され、前記光源は、前記対象物を照らすように、かつ、前記フィルタの近傍に配置される、マンマシンインターフェースシステムからの入力に応じて、
前記発光時映像信号と前記非発光時映像信号との差から前記再帰反射体に対応する注目部を検出するステップと、
前記注目部の位置、大きさ、速度、加速度、運動軌跡パターンの情報の一部または全部を算出するステップと、をコンピュータに実行させるコンピュータプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【公開番号】特開2009−297539(P2009−297539A)
【公開日】平成21年12月24日(2009.12.24)
【国際特許分類】
【出願番号】特願2009−219534(P2009−219534)
【出願日】平成21年9月24日(2009.9.24)
【分割の表示】特願2002−346052(P2002−346052)の分割
【原出願日】平成14年11月28日(2002.11.28)
【出願人】(396025861)新世代株式会社 (138)
【Fターム(参考)】
【公開日】平成21年12月24日(2009.12.24)
【国際特許分類】
【出願日】平成21年9月24日(2009.9.24)
【分割の表示】特願2002−346052(P2002−346052)の分割
【原出願日】平成14年11月28日(2002.11.28)
【出願人】(396025861)新世代株式会社 (138)
【Fターム(参考)】
[ Back to top ]