(57)【要約】  赤外発光ダイオード１１は間欠的に赤外光を発光する。赤外光は、操作物３−Ｎの再帰反射シート４により再帰反射され、イメージセンサ２１に入力される。イメージセンサ２１は点灯時画像と消灯時画像との差分画像を生成し、ＭＣＵ２３は差分画像を解析して、操作物３−Ｎの動きを検出し、検出結果（トリガ、位置、面積）を端末５に送信する。端末５−Ｎは、受け取った検出結果をオンラインゲーム処理に反映すると共に、ホストコンピュータ３１に送信する。ホストコンピュータ３１は、受信した検出結果を処理に反映すると共に、他の端末５−Ｎに送信する。当該他の端末５−Ｎは、受信した検出結果をオンラインゲーム処理に反映する。
2009093461.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータとは別体で設けられる撮像装置であって、
ユーザが操作する操作物を撮像する撮像手段と、
前記撮像手段から与えられた撮像画像を解析して、前記操作物による入力を検出し、入力情報を生成する検出手段と、
前記入力情報を前記コンピュータに送信する送信手段と、を備えた撮像装置。
【請求項２】
前記検出手段は、前記撮像画像を解析して前記操作物の状態情報を算出し、前記状態情報を前記入力情報として前記送信手段に与える、請求項１記載の撮像装置。
【請求項３】
前記操作物の前記状態情報は、位置情報、速さ情報、移動方向情報、移動距離情報、速度ベクトル情報、加速度情報、移動軌跡情報、面積情報、傾斜情報、動き情報若しくは、形態情報のいずれか、又は、それらの２以上の組み合わせ、である、請求項２記載の撮像装置。
【請求項４】
前記操作物の前記状態情報は、前記操作物に装着された単数又は複数のマーカの状態情報である、請求項２又は３記載の撮像装置。
【請求項５】
前記送信手段は、前記状態情報をコマンドとして、前記コンピュータに送信する、請求項２から４のいずれかに記載の撮像装置。
【請求項６】
前記操作物に、予め定められた周期で、光を照射するストロボスコープをさらに備え、
前記撮像手段は、前記ストロボスコープの点灯時及び消灯時のそれぞれにおいて、前記操作物を撮影して、発光時画像及び消灯時画像を取得し、前記発光時画像と前記消灯時画像との差分信号を生成する差分信号生成手段を含む請求項１から５のいずれかに記載の撮像装置。
【請求項７】
前記操作物は、受けた光を再帰反射する再帰反射手段を含む、請求項１から６のいずれかに記載の撮像装置。
【請求項８】
前記検出手段は、
前記撮像手段により得られた前記撮像画像から、前記マーカの像が包含され、前記撮像画像の画素数より少ない画素からなる一次の候補領域を決定する第１の候補領域決定手段と、
前記マーカの数が１又は２である場合、前記一次の候補領域をスキャンして、前記マーカの前記状態情報を算出する第１の状態算出手段と、
前記マーカの数が少なくとも３である場合、前記一次の候補領域から、前記マーカの像を包含し、前記一次の候補領域の画素数より少ない画素からなる二次の候補領域を決定する第２の候補領域決定手段と、
前記マーカの数が少なくとも３である場合、前記二次の候補領域をスキャンして、前記マーカの前記状態情報を算出する第２の状態算出手段と、を含む請求項４記載の撮像装置。
【請求項９】
各々が、対応する端末に接続され、対応する前記端末とは別体で設けられる複数の撮像装置を備え、
前記撮像装置は、
ユーザによって操作される操作物を撮像する撮像手段と、
前記撮像手段から与えられた撮像画像を解析して、前記操作物による入力を検出し、入力情報を生成する検出手段と、
前記入力情報を前記端末に送信する送信手段と、を含み、
ネットワーク経由で複数の前記端末が相互に接続されて、前記入力情報を相互に交換することにより、ゲームを進行する、オンラインゲームシステム。
【請求項１０】
撮像装置の被写体であり、ユーザに保持されて動きが与えられる操作物であって、
複数の反射手段と、  少なくとも１つの前記反射手段の露光状態と非露光状態とを切り替える切替手段と、を備え、  少なくとも１つの他の前記反射手段は、露光状態を維持する、操作物。
【請求項１１】
撮像装置の被写体であり、ユーザに保持されて動きが与えられる操作物であって、
第１反射手段と、  第２反射手段と、  前記第１反射手段と前記第２反射手段との間で、露光及び非露光状態が逆になるように、前記第１反射手段及び前記第２反射手段の状態を切り替える切替手段と、を備える操作物。
【請求項１２】
前記反射手段は、受けた光を再帰反射する、請求項１０又は１１記載の操作物。
【請求項１３】
コンピュータとは別体で設けられる撮像装置が実行する入力方法であって、
ユーザが操作する操作物を撮像するステップと、
撮像する前記ステップから与えられた撮像画像を解析して、前記操作物による入力を検出し、入力情報を生成するステップと、
前記入力情報を前記コンピュータに送信するステップと、を含む入力方法。
【請求項１４】
請求項１３記載の入力方法を撮像装置に搭載されたコンピュータに実行させるコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１５】
単数又は複数の被写体を撮像する撮像手段と、
前記撮像手段により得られた画像から、前記被写体の像が包含され、前記画像の画素数より少ない画素からなる一次の候補領域を決定する第１の候補領域決定手段と、
前記被写体の数が１又は２である場合、前記一次の候補領域をスキャンして、前記被写体の状態情報を算出する第１の状態算出手段と、
前記被写体の数が少なくとも３である場合、前記一次の候補領域から、前記被写体の像を包含し、前記一次の候補領域の画素数より少ない画素からなる二次の候補領域を決定する第２の候補領域決定手段と、
前記被写体の数が少なくとも３である場合、前記二次の候補領域をスキャンして、前記被写体の状態情報を算出する第２の状態算出手段と、を備える画像解析装置。
【請求項１６】
前記第１の候補領域決定手段は、
前記画像の画素値の水平軸への正射影である第１配列を生成する第１配列手段と、
前記画像の前記画素値の垂直軸への正射影である第２配列を生成する第２配列手段と、
前記第１配列及び前記第２配列に基づいて、前記一次の候補領域を決定する手段と、を含み、
前記第２の候補領域決定手段は、
前記一次の候補領域の前記画素値の前記水平軸への正射影である第３配列を生成する第３配列手段と、
前記一次の候補領域の前記画素値の前記垂直軸への正射影である第４配列を生成する第４配列手段と、
前記第３配列及び前記第４配列に基づいて、前記二次の候補領域を決定する手段と、を含む請求項１５記載の画像解析装置。
【請求項１７】
前記操作物に、予め定められた周期で、光を照射するストロボスコープをさらに備え、
前記撮像手段は、前記ストロボスコープの点灯時及び消灯時のそれぞれにおいて、前記操作物を撮影して、発光時画像及び消灯時画像を取得し、前記発光時画像と前記消灯時画像との差分信号を生成する差分信号生成手段を含み、
前記第１の候補領域決定手段、前記第１の状態算出手段、前記第２の候補領域決定手段、及び前記第２の状態算出手段は、前記差分信号に基づいて処理を実行する、請求項１５又は１６記載の画像解析装置。
【請求項１８】
単数又は複数の被写体を撮像する撮像装置により得られた画像に基づく画像解析方法であって、
前記画像から、前記被写体の像が包含され、前記画像の画素数より少ない画素からなる一次の候補領域を決定するステップと、
前記被写体の数が１又は２である場合、前記一次の候補領域をスキャンして、前記被写体の状態情報を算出するステップと、
前記被写体の数が少なくとも３である場合、前記一次の候補領域から、前記被写体の像を包含し、前記一次の候補領域の画素数より少ない画素からなる二次の候補領域を決定するステップと、
前記被写体の数が少なくとも３である場合、前記二次の候補領域をスキャンして、前記被写体の状態情報を算出するステップと、を含む画像解析方法。
【請求項１９】
請求項１８記載の画像解析方法をコンピュータに実行させるコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータとは別体で設けられ、かつ、コンピュータに接続して使用される撮像装置及びそれらの関連技術に関する。
【背景技術】
【０００２】
特許文献１には、カメラを入力装置として利用する通信対戦型バーチャルリアリティテニスゲームシステムが開示されている。このシステムでは、カメラでプレイヤを撮影し、コンピュータ本体が得られた画像を解析して、プレイヤの入力としてのスイングを検出する。そして、コンピュータ本体は検出したスイングに応じて、返球データを作成する。【０００３】
【特許文献１】特開２００５−２５３８７１号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
このように、カメラからコンピュータ本体に与えられるのは、プレイヤの入力情報ではなく、画像そのものである。従って、カメラを入力装置として利用する場合、ゲームプログラマーは、ゲームの進行を制御するアプリケーションプログラムに加えて、画像を解析するプログラムをも作成しなければならず、コンピュータ本体への入力装置としてのカメラは非常に使い難い。【０００５】
そこで、本発明の目的は、コンピュータ本体のプログラマーにとって、入力装置として使い易い撮像装置及びその関連技術を提供することである。
【課題を解決するための手段】
【０００６】
本発明の第１の観点によれば、撮像装置は、コンピュータとは別体で設けられる撮像装置であって、ユーザが操作する操作物を撮像する撮像手段と、前記撮像手段から与えられた撮像画像を解析して、前記操作物による入力を検出し、入力情報を生成する検出手段と、前記入力情報を前記コンピュータに送信する送信手段と、を備える。【０００７】
この構成によれば、撮像装置からコンピュータに与えられるのは、従来と異なり、撮像画像ではなく、その解析結果である操作物による入力情報、つまり、ユーザの入力情報である。従って、撮像装置を入力装置として利用する場合でも、ゲームプログラマーにとって、撮像画像を解析するプログラムの作成は不要であり、撮像装置を、一般的な入力装置であるキーボード等と同様に扱うことができる。その結果、ゲームプログラマーにとって、入力装置として使い易い撮像装置を提供できる。ひいては、操作物を三次元空間中で動かすといったダイナミックな動きを入力としたオンラインゲーム（体感型のオンラインゲーム）を簡易に実現できる。【０００８】
この撮像装置において、前記検出手段は、前記撮像画像を解析して前記操作物の状態情報を算出し、前記状態情報を前記入力情報として前記送信手段に与える。【０００９】
この構成によれば、コンピュータは、操作物の状態情報に基づく処理を実行できる。【００１０】
この撮像装置において、前記操作物の前記状態情報は、位置情報、速さ情報、移動方向情報、移動距離情報、速度ベクトル情報、加速度情報、移動軌跡情報、面積情報、傾斜情報、動き情報若しくは、形態情報のいずれか、又は、それらの２以上の組み合わせ、である。【００１１】
ここで、本明細書において、形態は、形状、模様若しくは色彩またはそれらの２以上の組合せを含む。また、形態は、数字、記号及び文字を含む。【００１２】
上記撮像装置において、前記操作物の前記状態情報は、前記操作物に装着された単数又は複数のマーカの状態情報である。【００１３】
この場合、複数のマーカの状態情報は、それぞれのマーカの状態情報の他、複数のマーカの位置関係を示す情報（配置情報）及び数情報、並びに、複数のマーカ全体によって形成される形態の情報及びその形態の位置情報、速さ情報、移動方向情報、移動距離情報、速度ベクトル情報、加速度情報、移動軌跡情報、面積情報、傾斜情報及び動き情報を含む。【００１４】
上記撮像装置において、前記送信手段は、前記状態情報をコマンドとして、前記コンピュータに送信する。【００１５】
この構成によれば、コンピュータは、操作物の状態情報に対応した撮像装置からのコマンドに応答した処理を実行できる。【００１６】
上記撮像装置は、前記操作物に、予め定められた周期で、光を照射するストロボスコープをさらに備え、前記撮像手段は、前記ストロボスコープの点灯時及び消灯時のそれぞれにおいて、前記操作物を撮影して、発光時画像及び消灯時画像を取得し、前記発光時画像と前記消灯時画像との差分信号を生成する差分信号生成手段を含む。【００１７】
この構成によれば、点灯時画像と消灯時画像との差分画像を生成するといった簡単な処理で、ノイズや外乱の影響を極力抑えた精度の高い操作物の検出が可能である。【００１８】
上記撮像装置において、前記操作物は、受けた光を再帰反射する再帰反射手段を含む。【００１９】
この構成によれば、より精度良く、操作物の検出を行うことができる。【００２０】
本発明の第２の観点によれば、オンラインゲームシステムは、各々が、対応する端末に接続され、対応する前記端末とは別体で設けられる複数の撮像装置を備え、前記撮像装置は、ユーザによって操作される操作物を撮像する撮像手段と、前記撮像手段から与えられた撮像画像を解析して、前記操作物による入力を検出し、入力情報を生成する検出手段と、前記入力情報を前記端末に送信する送信手段と、を含み、ネットワーク経由で複数の前記端末が相互に接続されて、前記入力情報を相互に交換することにより、ゲームを進行する。【００２１】
この構成によれば、撮像装置から端末に与えられるのは、従来と異なり、撮像画像ではなく、その解析結果である操作物による入力情報、つまり、ユーザの入力情報である。従って、撮像装置を入力装置として利用する場合でも、ゲームプログラマーにとって、撮像画像を解析するプログラムの作成は不要であり、撮像装置を、一般的な入力装置であるキーボード等と同様に扱うことができる。その結果、ゲームプログラマーにとって、入力装置として使い易い撮像装置を提供することができる。ひいては、操作物を三次元空間中で動かすといったダイナミックな動きを入力としたオンラインゲーム（体感型のオンラインゲーム）を簡易に実現できる。【００２２】
本発明の第３の観点によれば、操作物は、撮像装置の被写体であり、ユーザに保持されて動きが与えられる操作物であって、複数の反射手段と、少なくとも１つの前記反射手段の露光状態と非露光状態とを切り替える切替手段と、を備え、少なくとも１つの他の前記反射手段は、露光状態を維持する。【００２３】
この構成によれば、露光状態を常に維持する反射手段を設けているので、その反射手段の撮像画像に基づいて、操作物による入力の有無及び／又は入力の形態を常に検出できる。また、露光状態と非露光状態とが切り替えられる反射手段を設けているので、その反射手段が撮像された時と撮像されなかった時とで、異なる入力を与えることができ、反射手段を利用した入力の種類を多様化できる。  【００２４】
本発明の第４の観点によれば、操作物は、撮像装置の被写体であり、ユーザに保持されて動きが与えられる操作物であって、第１反射手段と、第２反射手段と、前記第１反射手段と前記第２反射手段との間で、露光及び非露光状態が逆になるように、前記第１反射手段及び前記第２反射手段の状態を切り替える切替手段と、を備える。【００２５】
この構成によれば、第１反射手段と第２反射手段とは、露光及び非露光状態が互いに逆になるので、それぞれの撮像画像に基づいて、操作物による入力の有無及び／又は入力の形態を検出できる。また、第１反射手段と第２反射手段との間の露光及び非露光の切り替えに基づいて、操作物による入力の有無及び／又は入力の形態を検出することもできる。【００２６】
上記第３及び第４の観点による操作物において、前記反射手段は、受けた光を再帰反射する。【００２７】
本発明の第５の観点によれば、入力方法は、コンピュータとは別体で設けられる撮像装置が実行する入力方法であって、ユーザが操作する操作物を撮像するステップと、撮像する前記ステップから与えられた撮像画像を解析して、前記操作物による入力を検出し、入力情報を生成するステップと、前記入力情報を前記コンピュータに送信するステップと、を含む。【００２８】
この構成によれば、上記第１の観点による撮像装置と同様の効果を奏する。【００２９】
本発明の第６の観点によれば、記録媒体は、上記第５の観点による入力方法を、撮像装置に搭載されたコンピュータに実行させるコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体である。【００３０】
この構成によれば、上記第１の観点による撮像装置と同様の効果を奏する。【００３１】
本発明の第７の観点によれば、画像解析装置は、単数又は複数の被写体を撮像する撮像手段と、前記撮像手段により得られた画像から、前記被写体の像が包含され、前記画像の画素数より少ない画素からなる一次の候補領域を決定する第１の候補領域決定手段と、前記被写体の数が１又は２である場合、前記一次の候補領域をスキャンして、前記被写体の状態情報を算出する第１の状態算出手段と、前記被写体の数が少なくとも３である場合、前記一次の候補領域から、前記被写体の像を包含し、前記一次の候補領域の画素数より少ない画素からなる二次の候補領域を決定する第２の候補領域決定手段と、前記被写体の数が少なくとも３である場合、前記二次の候補領域をスキャンして、前記被写体の状態情報を算出する第２の状態算出手段と、を備える。【００３２】
この構成によれば、被写体が３を超える場合でも、それらの状態情報を求めることができる一方、被写体が１又は２の場合は、第２の候補領域決定手段及び第２の状態算出手段の処理を省くことができ、処理負荷を軽減できる。【００３３】
ここで、包含とは、被写体の像が一次の候補領域に完全に収まり、はみ出ていない事、及び、被写体の像が二次の候補領域に完全に収まり、はみ出ていない事を意味する。【００３４】
この画像解析装置において、前記第１の候補領域決定手段は、前記画像の画素値の水平軸への正射影である第１配列を生成する第１配列手段と、前記画像の前記画素値の垂直軸への正射影である第２配列を生成する第２配列手段と、前記第１配列及び前記第２配列に基づいて、前記一次の候補領域を決定する手段と、を含み、前記第２の候補領域決定手段は、前記一次の候補領域の前記画素値の前記水平軸への正射影である第３配列を生成する第３配列手段と、前記一次の候補領域の前記画素値の前記垂直軸への正射影である第４配列を生成する第４配列手段と、前記第３配列及び前記第４配列に基づいて、前記二次の候補領域を決定する手段と、を含む。【００３５】
上記画像解析装置は、前記操作物に、予め定められた周期で、光を照射するストロボスコープをさらに備え、前記撮像手段は、前記ストロボスコープの点灯時及び消灯時のそれぞれにおいて、前記操作物を撮影して、発光時画像及び消灯時画像を取得し、前記発光時画像と前記消灯時画像との差分信号を生成する差分信号生成手段を含み、前記第１の候補領域決定手段、前記第１の状態算出手段、前記第２の候補領域決定手段、及び前記第２の状態算出手段は、前記差分信号に基づいて処理を実行する。【００３６】
この構成によれば、点灯時画像と消灯時画像との差分画像を生成するといった簡単な処理で、ノイズや外乱の影響を極力抑えた精度の高い操作物の検出が可能である。【００３７】
本発明の第８の観点によれば、画像解析方法は、単数又は複数の被写体を撮像する撮像装置により得られた画像に基づく画像解析方法であって、前記画像から、前記被写体の像が包含され、前記画像の画素数より少ない画素からなる一次の候補領域を決定するステップと、前記被写体の数が１又は２である場合、前記一次の候補領域をスキャンして、前記被写体の状態情報を算出するステップと、前記被写体の数が少なくとも３である場合、前記一次の候補領域から、前記被写体の像を包含し、前記一次の候補領域の画素数より少ない画素からなる二次の候補領域を決定するステップと、前記被写体の数が少なくとも３である場合、前記二次の候補領域をスキャンして、前記被写体の状態情報を算出するステップと、を含む。【００３８】
この構成によれば、上記第７の観点による画像解析装置と同様の効果を奏する。【００３９】
本発明の第９の観点によれば、記録媒体は、上記第８の観点による画像解析方法をコンピュータに実行させるコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体である。【００４０】
この構成によれば、上記第７の観点による画像解析装置と同様の効果を奏する。【００４１】
なお、本明細書及び請求の範囲において、記録媒体は、例えば、フレキシブルディスク、ハードディスク、磁気テープ、光磁気ディスク、ＣＤ（ＣＤ−ＲＯＭ、Ｖｉｄｅｏ−ＣＤを含む）、ＤＶＤ（ＤＶＤ−Ｖｉｄｅｏ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭを含む）、ＲＯＭカートリッジ、バッテリバックアップ付きのＲＡＭメモリカートリッジ、フラッシュメモリカートリッジ、不揮発性ＲＡＭカートリッジ等を含む。
【図面の簡単な説明】
【００４２】
本発明の新規な特徴は、特許請求の範囲に記載されている。しかしながら、発明そのもの及びその他の特徴と効果は、添付図面を参照して具体的な実施例の詳細な説明を読むことにより容易に理解される。【００４３】
【図１】本発明の実施の形態によるゲームシステムの全体構成を示す外観斜視図である。
【図２】図１のカメラユニット１−Ｎの電気的構成を示す図である。
【図３】（ａ）図１の操作物３Ａ−Ｎの外観斜視図である。（ｂ）操作物の他の例の外観斜視図である。（ｃ）操作物のさらに他の例の外観斜視図である。
【図４】イメージセンサ２１が出力した差分画像ＤＩに基づく再帰反射シート４の検出処理の説明図である。
【図５】操作物３Ｃ−Ｎをプレイヤが使用する場合における再帰反射シート４の追加検出処理の説明図である。
【図６】操作物３Ａ−Ｎの傾き検出処理の説明図である。
【図７】操作物３Ａ−Ｎのスイング検出処理の説明図である。
【図８】操作物３Ａ−Ｎのスイング方向の説明図である。
【図９】操作物３Ａ−Ｎのスイング位置の説明図である。
【図１０】操作物３Ａ−Ｎによる特殊操作の説明図である。
【図１１】操作物３Ｂ−Ｎに基づくスペシャルトリガの説明図である。
【図１２】操作物３Ｃ−Ｎに基づく各種トリガの説明図である。
【図１３】図３（ｃ）の操作物３Ｃ−Ｎの変形例である。
【図１４】図２のＭＣＵ２３の処理の全体流れを示すフローチャートである。
【図１５】図１４のステップＳ３の撮影処理の流れを示すフローチャートである。
【図１６】図１４のステップＳ５の再帰反射シートの検出処理の流れの一部を示すフローチャートである。
【図１７】図１４のステップＳ５の再帰反射シートの検出処理の流れの他の一部を示すフローチャートである。
【図１８】図１４のステップＳ５の再帰反射シートの検出処理の流れのさらに他の一部を示すフローチャートである。
【図１９】図１４のステップＳ５の再帰反射シートの検出処理の流れのさらに他の一部を示すフローチャートである。
【図２０】図１４のステップＳ５の再帰反射シートの検出処理の流れのさらに他の一部を示すフローチャートである。
【図２１】図１４のステップＳ５の再帰反射シートの検出処理の流れのさらに他の一部を示すフローチャートである。
【図２２】図１４のステップＳ５の再帰反射シートの検出処理の流れのさらに他の一部を示すフローチャートである。
【図２３】図２１のステップＳ３４９の４端点検出処理の流れを示すフローチャートである。
【図２４】図１４のステップＳ９のトリガ検出処理（剣に基づく）の流れを示すフローチャートである。
【図２５】図２４のステップＳ４４３のシールドトリガ検出処理の流れを示すフローチャートである。
【図２６】図２４のステップＳ４４５のスペシャルトリガ検出処理の流れの一部を示すフローチャートである。
【図２７】図２４のステップＳ４４５のスペシャルトリガ検出処理の流れの他の一部を示すフローチャートである。
【図２８】図２４のステップＳ４４７のスイングトリガ検出処理の流れを示すフローチャートである。
【図２９】図１４のステップＳ９のトリガ検出処理（メイスに基づく）の流れの一部を示すフローチャートである。
【図３０】図１４のステップＳ９のトリガ検出処理（メイスに基づく）の流れの他の一部を示すフローチャートである。
【図３１】図１４のステップＳ９のトリガ検出処理（クロスボウに基づく）の流れを示すフローチャートである。
【図３２】図３１のステップＳ７６５のチャージトリガ検出処理の流れを示すフローチャートである。
【図３３】図３１のステップＳ７６９のシールドトリガ検出処理の流れを示すフローチャートである。
【図３４】図３１のステップＳ７７１のスイッチトリガ検出処理の流れを示すフローチャートである。
【図３５】図３１のステップＳ７７７のシューティングトリガ検出処理の流れを示すフローチャートである。
【符号の説明】
【００４４】
１−Ｎ（１−１〜１−ｎ）…カメラユニット、３−Ｎ（３−１〜３−ｎ），３Ａ−Ｎ（３Ａ−１〜３Ａ−ｎ），３Ｂ−Ｎ（３Ｂ−１〜３Ｂ−ｎ），３Ｃ−Ｎ（３Ｃ−１〜３Ｃ−ｎ）…操作物、５−Ｎ（５−１〜５−ｎ）…端末、４，４Ａ〜４Ｇ…再帰反射シート、１１…赤外発光ダイオード、２１…イメージセンサ、２３…ＭＣＵ、２９…ネットワーク、３１…ホストコンピュータ。
【発明を実施するための最良の形態】
【００４５】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、図中、同一または相当部分については同一の参照符号を付してその説明を援用する。【００４６】
図１は、本発明の実施の形態によるゲームシステムの全体構成を示す外観斜視図である。図１を参照して、このゲームシステムは、プレイヤが把持して動かす剣型の操作物（以下、「剣」と呼ぶ。）３Ａ−Ｎ、端末５−Ｎ、及び、端末５−Ｎのモニタ７の上縁に載置されるカメラユニット１−Ｎを含む。なお、Ｎは、１以上の整数である。【００４７】
カメラユニット１−Ｎは、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ケーブル９により、端末５−Ｎに接続される。カメラユニット１−Ｎは、赤外光のみを透過する赤外線フィルタ１３及びその周りに配置される赤外光を発光する４個の赤外発光ダイオード（ＩＲＥＤ）１１を含む。赤外線フィルタ１３の裏側には、後述のイメージセンサ２１が配置される。【００４８】
図１の剣３Ａ−Ｎは、図３（ａ）に示すように、その刀身部３３の両面には、再帰反射シート４Ａが取り付けられる。また、剣３Ａ−Ｎの鍔部３５の両面には、半円柱状部材３７が取り付けられる。この半円柱状部材３７の曲面には、再帰反射シート４Ｂが取り付けられる。  【００４９】
本実施の形態では、剣３Ａ−Ｎの他に、２つの操作物を用意している。図３（ｂ）に、メイス（ｍａｃｅ）型の操作物（以下、「メイス」と呼ぶ。）３Ｂ−Ｎを示す。メイス３Ｂ−Ｎは、プレイヤが把持するスティック４５及びスティック４５の一方端部に固定されたボール４７を含む。ボール４７には、表面全体に再帰反射シート４Ｃが取り付けられる。  【００５０】
また、図３（ｃ）に、クロスボウ型の操作物（以下、「クロスボウ」と呼ぶ。）３Ｃ−Ｎを示す。クロスボウ３Ｃ−Ｎの左右の弓部３９の側面には、円形の再帰反射シート４Ｅ及び４Ｆ（図には表れていない。）が左右対称に取り付けられる。左右の再帰反射シート４Ｅ及び４Ｆの間であって、台座４１の先端部に、円形の再帰反射シート４Ｄが取り付けられる。  【００５１】
また、台座４１の先端部には、開閉自在に蓋４９が取り付けられる。トリガ５１が引かれていない状態では、蓋４９は閉じている。従って、この場合、再帰反射シート４Ｄは、蓋４９に覆われて露出しない。一方、トリガ５１が引かれた状態では、図示のように、蓋４９は開いている。従って、この場合、再帰反射シート４Ｄは、露出している。  【００５２】
さらに、台座４１の底部にも、再帰反射シート４Ｇが取り付けられる。再帰反射シート４Ｇは、その反射面が台座４１の長手方向に対して鋭角（トリガ５１の側から見て）になるように取り付けられる。従って、台座４１の先端部がカメラユニット１のほうを向いている場合、再帰反射シート４Ｇは撮影されず、台座４１の先端部が斜め上方向を向いている場合、再帰反射シート４Ｇは撮影される。  【００５３】
なお、再帰反射シート４Ａ〜４Ｇを包括して、再帰反射シート４と表記することもある。再帰反射シート４は、マーカ４と呼ぶこともできる。また、剣３Ａ−Ｎ、メイス３Ｂ−Ｎ及びクロスボウ３Ｃ−Ｎを包括して、操作物３−Ｎと表記することもある。操作物３−Ｎは、被写体３−Ｎと呼ぶこともできる。  【００５４】
図１に戻って、カメラユニット１−Ｎの赤外発光ダイオード１１は、予め定められた周期で間欠的に赤外光を発光する。このように、赤外発光ダイオード１１はストロボスコープとして機能する。赤外発光ダイオード１１からの赤外光は、剣３Ａ−Ｎの再帰反射シート４Ａ又は４Ｂにより再帰反射され、赤外線フィルタ１３の裏側に設けられたイメージセンサ２１に入力される。このようにして、剣３Ａ−Ｎが間欠的に撮影される。メイス３Ｂ−Ｎ及びクロスボウ３Ｃ−Ｎについても同様である。  【００５５】
ただし、赤外光の消灯時においても、イメージセンサ２１による撮影処理は行われている。従って、カメラユニット１は、赤外光点灯時の画像信号と消灯時の画像信号との差分を求めて、この差分信号ＤＩ（差分画像ＤＩ）を基に、剣３Ａ−Ｎの動きを検出し、ＵＳＢケーブル９を介して検出結果を端末５−Ｎに送信する。そして、端末５−Ｎは、剣３Ａ−Ｎの動きをオンラインゲーム処理に反映する。メイス３Ｂ−Ｎ及びクロスボウ３Ｃ−Ｎについても同様である。【００５６】
なお、カメラユニット１は、差分信号ＤＩを求めることで、再帰反射シート４からの反射光以外の光によるノイズを極力除去でき、精度良く再帰反射シート４を検出できる。【００５７】
オンラインゲームの参加者（プレイヤ）は、それぞれ図１のゲームシステムを保有している。【００５８】
図２を参照して、本実施の形態では、ホストコンピュータ３１が、ネットワーク２９を通じて、各端末５−１〜５―ｎにオンラインゲームを提供する。端末５−１〜５―ｎには、それぞれカメラユニット１−１〜１−ｎが接続される。カメラユニット１−１〜１−ｎは、それぞれ操作物３−１〜３−ｎの再帰反射シート４を撮影する。図１の端末５−Ｎは、端末５−１〜５―ｎを包括して表記したものである。図１のカメラユニット１−Ｎは、カメラユニット１−１〜１−ｎを包括して表記したものである。図３（ａ）〜図３（ｃ）の操作物３−Ｎ（３Ａ−Ｎ，３Ｂ−Ｎ，３Ｃ−Ｎ）は、操作物３−１〜３−ｎを包括して表記したものである。【００５９】
さて、カメラユニット１−Ｎは、ＵＳＢコントローラ２５、ＭＣＵ（Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌｅｒ  Ｕｎｉｔ）２３、イメージセンサ２１及び赤外発光ダイオード（ＩＲＥＤ）１１を含む。【００６０】
ＵＳＢコントローラ２５は、ＭＣＵ２３の制御を受けて、ＵＳＢケーブル９及び端末５−ＮのＵＳＢポート２７を介して、端末５−Ｎと通信し、データの送受信を行う。イメージセンサ２１は、ＭＣＵ２３の制御を受けて、赤外発光ダイオード１１の点灯時および消灯時のそれぞれにおいて撮影処理を実行する。そして、イメージセンサ２１は、点灯時の画像信号と消灯時の画像信号との差分信号ＤＩをＭＣＵ２３に出力する。また、イメージセンサ２１は、赤外発光ダイオード１１を間欠的に点灯する。なお、イメージセンサ２１の解像度は、本実施の形態では、例えば、６４画素×６４画素とする。【００６１】
ＭＣＵ２３は、イメージセンサ２１から与えられた差分信号ＤＩに基づいて、再帰反射シート４の像を検出し、その状態情報を算出する。【００６２】
状態情報は、単数又は複数の再帰反射シート４の位置情報、速さ情報、移動方向情報、移動距離情報、速度ベクトル情報、加速度情報、移動軌跡情報、面積情報、傾斜情報、動き情報若しくは、形態情報のいずれか、又は、それらの２以上の組み合わせ、である。形態は、形状、模様若しくは色彩またはそれらの２以上の組合せを含む。また、形態は、数字、記号及び文字を含む。さらに、複数の再帰反射シート４の状態情報は、それぞれの再帰反射シート４の状態情報の他、複数の再帰反射シート４の位置関係を示す情報（配置情報）及び数情報、並びに、複数の再帰反射シート４全体によって形成される形態の情報及びその形態の位置情報、速さ情報、移動方向情報、移動距離情報、速度ベクトル情報、加速度情報、移動軌跡情報、面積情報、傾斜情報及び動き情報を含む。以下、具体例を挙げながら説明する。【００６３】
図４は、イメージセンサ２１が出力した差分画像（差分信号）ＤＩに基づく再帰反射シート４の検出処理の説明図である。図４を参照して、ＭＣＵ２３は、（Ｘ，Ｙ）＝（０，０）から、Ｙをインクリメントしながら、各画素の輝度値（以下、「画素値」と呼ぶ。）と所定の閾値Ｔｈｌとを比較して、閾値Ｔｈｌを超える画素を検出するまで又はＹ＝６３まで、その列の走査を行う。当該列の走査を完了すると、ＭＣＵ２３は、Ｙを０にし、Ｘを１つインクリメントした後、再びＹをインクリメントしながら、各画素値と所定の閾値Ｔｈｌとを比較して、閾値Ｔｈｌを超える画素を検出するまで又はＹ＝６３まで、その列の走査を行う。このような処理を、Ｘ＝６３になるまで行い、差分画像ＤＩの各列の画素を走査する。【００６４】
この走査においては、ＭＣＵ２３は、ある列で閾値Ｔｈｌ以下の画素が検出された後、その次の列で閾値Ｔｈｌを超える画素を検出した場合、その画素のＸ座標（図４では、Ｘ０，Ｘ２）を内部メモリ（図示せず）に格納し、及び、ある列で閾値Ｔｈｌを超える画素が検出された後、その次の列で閾値Ｔｈｌ以下の画素を検出した場合、その画素を含む列の左隣の列に含まれる画素のＸ座標（図４では、Ｘ１，Ｘ３）を内部メモリに格納する。【００６５】
次に、ＭＣＵ２３は、（Ｘ，Ｙ）＝（０，０）から、Ｘをインクリメントしながら、各画素値と所定の閾値Ｔｈｌとを比較して、閾値Ｔｈｌを超える画素を検出するまで又はＸ＝６３まで、その行の走査を行う。当該行の走査を完了すると、ＭＣＵ２３は、Ｘを０にし、Ｙを１つインクリメントした後、再びＸをインクリメントしながら、各画素値と所定の閾値Ｔｈｌとを比較して、閾値Ｔｈｌを超える画素を検出するまで又はＸ＝６３まで、その行の走査を行う。このような処理を、Ｙ＝６３になるまで行い、差分画像ＤＩの各行の画素を走査する。【００６６】
この走査においては、ＭＣＵ２３は、ある行で連続して閾値Ｔｈｌ以下の画素が検出された後、その次の行で閾値Ｔｈｌを超える画素を検出した場合、その画素のＹ座標（図４では、Ｙ０，Ｙ２）を内部メモリに格納し、及び、ある行で閾値Ｔｈｌを超える画素が検出された後、その次の行で閾値Ｔｈｌ以下の画素を検出した場合、その画素を含む行の１つ上の行に含まれる画素のＹ座標（図４では、Ｙ１，Ｙ３）を内部メモリに格納する。【００６７】
この時点で、ＭＣＵ２３は、Ｘ＝Ｘ０、Ｘ＝Ｘ１、Ｙ＝Ｙ０及びＹ＝Ｙ１で表される直線で囲まれた候補領域ａ０、Ｘ＝Ｘ２、Ｘ＝Ｘ３、Ｙ＝Ｙ０及びＹ＝Ｙ１で表される直線で囲まれた候補領域ａ１、Ｘ＝Ｘ０、Ｘ＝Ｘ１、Ｙ＝Ｙ２及びＹ＝Ｙ３で表される直線で囲まれた候補領域ａ２、およびＸ＝Ｘ２、Ｘ＝Ｘ３、Ｙ＝Ｙ２及びＹ＝Ｙ３で表される直線で囲まれた候補領域ａ３のいずれかに、２つの像ＩＭ０及びＩＭ１が存在することを認識できる。ただし、この時点では、ＭＣＵ２３は、像ＩＭ０及びＩＭ１が、どの候補領域ａ０〜ａ３に存在するか特定できない。【００６８】
そこで、ＭＣＵ２３は、候補領域ａ０〜ａ３ごとに、画素値と閾値Ｔｈｌとを比較して、閾値Ｔｈｌを超えている画素を含む候補領域に、像ＩＭ０及びＩＭ１が存在すると判断する。図４では、ＭＣＵ２３は、像ＩＭ０及びＩＭ１が、それぞれ候補領域ａ０及びａ３に存在すると判断する。ＭＣＵ２３は、閾値Ｔｈｌを超えている画素を含む候補領域の数を写りこんだ像の数であると認識する。【００６９】
そして、ＭＣＵ２３は、像ＩＭ０及びＩＭ１が存在すると判断した候補領域ａ０及びａ３ごとに、（数１）を計算し、像ＩＭ０及びＩＭ１のＸＹ座標（Ｘｒ，Ｙｒ）を求める。
【数１】
2009093461.tif 000003
【００７０】
Ｐｊは、再帰反射シート４が存在する候補領域の画素値であり、Ｘｊは、画素値ＰｊのＸ座標であり、Ｙｊは、画素値ＰｊのＹ座標であり、添え字ｊは、再帰反射シート４が存在する候補領域の画素を表す。Ｒは、解像度を規定する定数である。イメージセンサ２１の解像度が６４画素×６４画素であるとすると、Ｒ＝８の場合、算出されたＸＹ座標（Ｘｒ，Ｙｒ）が配置される画像の解像度は、５１２画素×５１２画素となる。なお、ＭＣＵ２３は、閾値Ｔｈｌ以下の画素値Ｐｊは０として計算を実行する。なお、閾値Ｔｈｌ以下の画素値Ｐｊを無視して、閾値Ｔｈｌを超える画素値Ｐｊのみで、（数１）を計算してもよい。【００７１】
ＭＣＵ２３は、（数１）を計算すると同時に、像ＩＭ０及びＩＭ１が存在する候補領域ａ０及びａ３ごとに、閾値Ｔｈｌを超える画素の数を計数する。図４では、候補領域ａ０において、閾値Ｔｈｌを超えている画素の数は、像ＩＭ０の面積に相当し、候補領域ａ３において、閾値Ｔｈｌを超えている画素の数は、像ＩＭ１の面積に相当する。【００７２】
再帰反射シート４は、赤外光を再帰反射するので、閾値Ｔｈｌを超える画素の領域、つまり、像ＩＭ０及びＩＭ１が、再帰反射シート４に対応する。図４では、２枚の再帰反射シート４が写り込んでいることになる。【００７３】
以上のようにして、ＭＣＵ２３は、再帰反射シート４の像ＩＭ０及びＩＭ１のＸＹ座標及び面積を算出する。【００７４】
ここで、候補領域ａ０〜ａ３の別の算出方法を説明する。なお、後述のフローチャートではこの方法により候補領域を検出している。配列Ｈ[Ｘ]及びＶ[Ｙ]を用意する。Ｘ＝０〜６３、Ｙ＝０〜６３、である。図４では、配列Ｈ[Ｘ]及びＶ[Ｙ]がそれぞれ長方形により模式的に表されている。ＭＣＵ２３は、（Ｘ，Ｙ）＝（０，０）から、Ｘをインクリメントしながら、Ｘ＝６３まで、その行の走査を行う。当該行の走査を完了すると、ＭＣＵ２３は、Ｘを０にし、Ｙを１つインクリメントした後、再びＸをインクリメントしながら、Ｘ＝６３まで、その行の走査を行う。このような処理を、Ｙ＝６３になるまで行い、差分画像ＤＩの各行の画素を走査する。【００７５】
この走査において、ＭＣＵ２３は、閾値Ｔｈｌを超える画素のＸＹ座標に対応する配列Ｈ[Ｘ]及びＶ[Ｙ]に「１」を代入する。一方、ＭＣＵ２３は、閾値Ｔｈｌ以下の画素のＸＹ座標に対応する配列Ｈ[Ｘ]及びＶ[Ｙ]に「０」を代入する。ただし、配列Ｈ[Ｘ]に「１」が既に代入されている場合は、その「１」を維持し、配列Ｖ[Ｘ]に「１」が既に代入されている場合は、その「１」を維持する。図４では、「１」が格納された配列Ｈ［Ｘ］及びＶ[Ｙ]を斜線により模式的に示している。【００７６】
「１」が格納された配列Ｈ[Ｘ]の左端の要素番号ＸがＸ座標Ｘ０及びＸ２であり、「１」が格納された配列Ｈ[Ｘ]の右端の要素番号ＸがＸ座標Ｘ１及びＸ３である。また、「１」が格納された配列Ｖ[Ｙ]の上端の要素番号ＹがＹ座標Ｙ０及びＹ２であり、「１」が格納された配列Ｖ[Ｙ]の下端の要素番号ＹがＹ座標Ｙ１及びＹ３である。このようにして、候補領域ａ０〜ａ３を決定できる。【００７７】
なお、配列Ｈ［Ｘ］には、差分画像の画素値の水平軸（Ｘ軸）への正射影が格納されるといえる。また、配列Ｖ［Ｙ］には、差分画像の画素値の垂直軸（Ｙ軸）への正射影が格納されるといえる。【００７８】
さて、差分画像ＤＩに写り込んでいる再帰反射シート４が１枚の場合及び３枚以上の場合でも、２枚の場合と同様にして、再帰反射シート４の像のＸＹ座標及び面積が求められる。ただし、差分画像ＤＩに写り込む再帰反射シート４が３枚以上になり得る場合、つまり、プレイヤがクロスボウ３Ｃ−Ｎを使用する場合は、以下の処理が追加される。【００７９】
図５（ａ）及び図５（ｂ）は、クロスボウ３Ｃ−Ｎをプレイヤが使用する場合における再帰反射シート４の追加検出処理の説明図である。図５（ａ）に示すように、差分画像ＤＩに３つの像ＩＭ０〜ＩＭ２が写り込んでいる場合でも、上述の検出処理では、Ｘ＝Ｘ０、Ｘ＝Ｘ１、Ｙ＝Ｙ０及びＹ＝Ｙ１で表される直線で囲まれた候補領域ａ０、及び、Ｘ＝Ｘ０、Ｘ＝Ｘ１、Ｙ＝Ｙ２及びＹ＝Ｙ３で表される直線で囲まれた候補領域ａ２といった２つの候補領域しか検出されない。従って、この場合、ＭＣＵ２３は、像、つまり、再帰反射シート４が２つであると認識してしまう。【００８０】
従って、ＭＣＵ２３は、写りこんだ再帰反射シート４が２枚であると認識した場合は、候補領域ａ０及びａ１ごとに、上述の検出処理を実行する。すなわち、ＭＣＵ２３は、（Ｘ，Ｙ）＝（Ｘ０，Ｙ０）から、Ｙをインクリメントしながら、各画素値と所定の閾値Ｔｈｌとを比較して、閾値Ｔｈｌを超える画素を検出するまで又はＹ＝Ｙ１まで、その列の走査を行う。当該列の走査を完了すると、ＭＣＵ２３は、ＹをＹ０にし、Ｘを１つインクリメントした後、再びＹをインクリメントしながら、各画素値と所定の閾値Ｔｈｌとを比較して、閾値Ｔｈｌを超える画素を検出するまで又はＹ＝Ｙ１まで、その列の走査を行う。このような処理を、Ｘ＝Ｘ１になるまで行い、候補領域ａ０の各列の画素を走査する。【００８１】
この走査においては、ＭＣＵ２３は、Ｘ＝Ｘ０の列で閾値Ｔｈｌを超える画素を検出した場合、若しくは、ある列で閾値Ｔｈｌ以下の画素が検出された後、その次の列で閾値Ｔｈｌを超える画素を検出した場合、その画素のＸ座標（図５（ｂ）では、ｘ０，ｘ２）を内部メモリに格納し、Ｘ＝Ｘ１の列で閾値Ｔｈｌを超える画素を検出した場合、その画素のＸ座標を内部メモリに格納し、及び、ある列で閾値Ｔｈｌを超える画素が検出された後、ある列で閾値Ｔｈｌ以下の画素を検出した場合、その画素を含む列の左隣の列に含まれる画素のＸ座標（図５（ｂ）では、ｘ１，ｘ３）を内部メモリに格納する。【００８２】
次に、ＭＣＵ２３は、（Ｘ，Ｙ）＝（Ｘ０，Ｙ０）から、Ｘをインクリメントしながら、各画素値と所定の閾値Ｔｈｌとを比較して、閾値Ｔｈｌを超える画素を検出するまで又はＸ＝Ｘ１まで、その行の走査を行う。当該行の走査を完了すると、ＭＣＵ２３は、ＸをＸ０にし、Ｙを１つインクリメントした後、再びＸをインクリメントしながら、各画素値と所定の閾値Ｔｈｌとを比較して、閾値Ｔｈｌを超える画素を検出するまで又はＸ＝Ｘ１まで、その行の走査を行う。このような処理を、Ｙ＝Ｙ１になるまで行い、候補領域ａ０の各行の画素を走査する。【００８３】
この走査においては、ＭＣＵ２３は、Ｙ＝Ｙ０の行で閾値Ｔｈｌを超える画素を検出した場合、若しくは、ある行で閾値Ｔｈｌ以下の画素が検出された後、その次の行で閾値Ｔｈｌを超える画素を検出した場合、その画素のＹ座標（図５（ｂ）では、ｙ０）を内部メモリに格納し、Ｙ＝Ｙ１の行で閾値Ｔｈｌを超える画素を検出した場合、その画素のＹ座標（図５（ｂ）では、ｙ１）を内部メモリに格納し、及び、ある行で閾値Ｔｈｌを超える画素が検出された後、その次の行で閾値Ｔｈｌ以下の画素を検出した場合、その画素を含む行の１つ上の行に含まれる画素のＹ座標を内部メモリに格納する。【００８４】
この時点で、図５（ｂ）に示すように、ＭＣＵ２３は、Ｘ＝ｘ０、Ｘ＝ｘ１、Ｙ＝ｙ０及びＹ＝ｙ１で表される直線で囲まれた候補領域ｂ０、及び、Ｘ＝ｘ２、Ｘ＝ｘ３、Ｙ＝ｙ０及びＹ＝ｙ１で表される直線で囲まれた候補領域ｂ１を認識する。【００８５】
そして、ＭＣＵ２３は、候補領域ｂ０及びｂ１ごとに、画素値と閾値Ｔｈｌとを比較して、閾値Ｔｈｌを超えている画素を含む候補領域に、像ＩＭ０及びＩＭ１が存在すると判断する。図５（ｂ）では、ＭＣＵ２３は、像ＩＭ０及びＩＭ１が、それぞれ候補領域ｂ０及びｂ１に存在すると判断する。ＭＣＵ２３は、このような、閾値Ｔｈｌを超えている画素を含む候補領域の数を、候補領域ａ０（図５（ａ）参照）に写りこんだ像の数であると認識する。【００８６】
さらに、ＭＣＵ２３は、像ＩＭ０及びＩＭ１が存在すると判断した候補領域ｂ０及びｂ１ごとに、（数１）を計算し、像ＩＭ０及びＩＭ１のＸＹ座標（Ｘｒ，Ｙｒ）を求める。【００８７】
ＭＣＵ２３は、（数１）を計算すると同時に、像ＩＭ０及びＩＭ１が存在する候補領域ｂ０及びｂ１ごとに、閾値Ｔｈｌを超える画素の数を計数する。図５（ｂ）では、候補領域ｂ０において、閾値Ｔｈｌを超えている画素の数は、像ＩＭ０の面積に相当し、候補領域ｂ１において、閾値Ｔｈｌを超えている画素の数は、像ＩＭ１の面積に相当する。【００８８】
再帰反射シート４は、赤外光を再帰反射するので、閾値Ｔｈｌを超える画素の領域、つまり、像ＩＭ０及びＩＭ１が、再帰反射シート４に対応する。図５（ｂ）では、２枚の再帰反射シート４が候補領域ａ０に写り込んでいることになる。【００８９】
以上のようにして、ＭＣＵ２３は、再帰反射シート４の像ＩＭ０及びＩＭ１のＸＹ座標及び面積を算出する。【００９０】
また、ＭＣＵ２３は、領域ｂ０を走査して、像ＩＭ０の最大Ｘ座標ｍｘＸ[０]、最大Ｙ座標ｍｘＹ[０]、最小Ｘ座標ｍｎＸ[０]及び最小Ｙ座標ｍｎＹ[０]を求める。また、ＭＣＵ２３は、領域ｂ１を走査して、像ＩＭ１の最大Ｘ座標ｍｘＸ[１]、最大Ｙ座標ｍｘＹ[１]、最小Ｘ座標ｍｎＸ[１]及び最小Ｙ座標ｍｎＹ[１]を求める。【００９１】
ＭＣＵ２３は、図５（ａ）の候補領域ａ０で行った上記処理を、候補領域ａ１でも実行して、再帰反射シート４の像ＩＭ２のＸＹ座標及び面積を算出する。【００９２】
ここで、候補領域ｂ０及びｂ１の別の算出方法を説明する。なお、後述のフローチャートではこの方法により候補領域を検出している。配列ＨｃＸ[Ｘ][０]及びＶｃＹ[Ｙ][０]を用意する。Ｘ＝Ｘ０〜Ｘ１、Ｙ＝Ｙ０〜Ｙ１、である。図５（ｂ）では、配列ＨｃＸ[Ｘ][０]及びＶｃＹ[Ｙ][０]がそれぞれ長方形により模式的に表されている。ＭＣＵ２３は、（Ｘ，Ｙ）＝（Ｘ０，Ｙ０）から、Ｘをインクリメントしながら、Ｘ＝Ｘ１まで、その行の走査を行う。当該行の走査を完了すると、ＭＣＵ２３は、ＸをＸ１にし、Ｙを１つインクリメントした後、再びＸをインクリメントしながら、Ｘ＝Ｘ１まで、その行の走査を行う。このような処理を、Ｙ＝Ｙ１になるまで行い、候補領域ａ０の各行の画素を走査する。【００９３】
この走査において、ＭＣＵ２３は、閾値Ｔｈｌを超える画素のＸＹ座標に対応する配列ＨｃＸ[Ｘ][０]及びＶｃＹ[Ｙ][０]に「１」を代入する。一方、ＭＣＵ２３は、閾値Ｔｈｌ以下の画素のＸＹ座標に対応する配列ＨｃＸ[Ｘ][０]及びＶｃＹ[Ｙ][０]に「０」を代入する。ただし、配列ＨｃＸ[Ｘ][０]に「１」が既に代入されている場合は、その「１」を維持し、配列ＶｃＹ[Ｙ][０]に「１」が既に代入されている場合は、その「１」を維持する。図５（ｂ）では、「１」が格納された配列ＨｃＸ[Ｘ][０]及びＶｃＹ[Ｙ][０]を斜線により模式的に示している。【００９４】
「１」が格納された配列ＨｃＸ[Ｘ][０]の左端の要素番号ＸがＸ座標ｘ０及びｘ２であり、「１」が格納された配列ＨｃＸ[Ｘ][０]の右端の要素番号ＸがＸ座標ｘ１及びｘ３である。また、「１」が格納された配列ＶｃＹ[Ｙ][０]の上端の要素番号ＹがＹ座標ｙ０であり、「１」が格納された配列ＶｃＹ[Ｙ][０]の下端の要素番号ＹがＹ座標ｙ１である。このようにして、候補領域ｂ０及びｂ１を決定できる。【００９５】
なお、ＭＣＵ２３は、図５（ｂ）の候補領域ａ０で行った上記処理を、候補領域ａ１でも実行する。【００９６】
なお、配列Ｈｃ［Ｘ］［０］には、一次の候補領域の画素値の水平軸（Ｘ軸）への正射影が格納されるといえる。また、配列Ｖｃ［Ｙ］［０］には、一次の候補領域の画素値の垂直軸（Ｙ軸）への正射影が格納されるといえる。【００９７】
さて、次に、操作物（剣３Ａ−Ｎ、メイス３Ｂ−Ｎ、クロスボウ３Ｃ−Ｎ）ごとに、状態情報の検出処理を説明する。なお、使用する操作物の情報（どの操作物を使用するかの情報）は、プレイヤが予め端末５−Ｎに入力する。従って、使用する操作物の情報は、端末５−Ｎからカメラユニット１に予め与えられる。【００９８】
［剣３Ａ−Ｎ］【００９９】
まず、剣３Ａ−Ｎの２つの再帰反射シート４Ｂが、差分画像ＤＩにどのように写り込むかを説明する。本実施の形態では、プレイヤは一定距離以上カメラユニット１から離れて剣３Ａ−Ｎを操作することを前提とする。この場合、本実施の形態のイメージセンサ２１の解像度では、差分画像ＤＩに写り込む２つの再帰反射シート４Ｂ間の距離が１画素より小さくなる。従って、２つの再帰反射シート４Ｂの像は、１つの像として差分画像ＤＩに写り込む。その結果、剣３Ａ−Ｎを操作物として用いる場合は、差分画像ＤＩに写り込む再帰反射シート４の像は、必ず１つ（再帰反射シート４Ａ又は４Ｂのいずれか）である。【０１００】
もちろん、より高解像度のイメージセンサ２１を用いることもできる。この場合、例えば、２つの半円柱状部材３７及び２枚の再帰反射シート４Ｂを設ける代わりに、剣先に１枚の再帰反射シートを取り付けることができる。もちろん、より低解像度のイメージセンサ２１を用いることもできる。【０１０１】
さて、ＭＣＵ２３は、シールドトリガの生成条件、スペシャルトリガの生成条件、及び、スイングトリガの生成条件の順で判定処理を実行する。ただし、以下では、説明の便宜のため、シールドトリガ、スイングトリガ及びスペシャルトリガの順に説明する。【０１０２】
［シールドトリガ］【０１０３】
ＭＣＵ２３は、差分画像ＤＩに写った再帰反射シートの像の面積が、所定の閾値Ｔｈａ１を超えた場合、面積の大きい再帰反射シート４Ａが撮影されたと判断する。ＭＣＵ２３は、５枚の差分画像ＤＩにおいて、連続して、再帰反射シート４Ａが撮影されたと判断した場合、シールドトリガを生成し、傾き検出処理を実行する。【０１０４】
図６は、剣３Ａ−Ｎの傾き検出処理の説明図である。図６を参照して、ＭＣＵ２３は、最新の差分画像ＤＩの候補領域ａ（再帰反射シート４Ａの像ＩＭに外接する四角形）の垂直方向の辺長ΔＹ（＝Ｙ１−Ｙ０）と水平方向の辺長ΔＸ（＝Ｘ１−Ｘ０）との比ｒ＝ΔＹ／ΔＸを求める。そして、ＭＣＵ２３は、比ｒの大きさに基づいて、剣３Ａ−Ｎの傾きを、水平Ｂ０、斜めＢ１及び垂直Ｂ２のいずれかに分類する。【０１０５】
［スイングトリガ］【０１０６】
ＭＣＵ２３は、再帰反射シートの像の面積が、所定の閾値Ｔｈａ１以下の場合、再帰反射シート４Ｂが撮影されたと判断する。そして、ＭＣＵ２３は、スイング検出処理を実行する。【０１０７】
図７は、剣３Ａ−Ｎのスイング検出処理の説明図である。図７を参照して、ＭＣＵ２３は、５枚の差分画像ＤＩにおいて、連続して、再帰反射シート４Ｂの像ＩＭ０〜ＩＭ４が検出されたか否かを判断する。検出された場合、ＭＣＵ２３は、５つの像ＩＭ０〜ＩＭ４のＸＹ座標（Ｘｒ，Ｙｒ）に基づく、各速度ベクトルＶ０〜Ｖ３の方向を、図８の８つの方向Ａ０〜Ａ４のいずれかに分類する。この場合、方向Ａ０を中心とした時計回り方向２２．５度と反時計回り方向２２．５度の範囲の方向が、方向Ａ０に分類される。方向Ａ１〜Ａ７についても同様である。【０１０８】
全ての速度ベクトルＶ０〜Ｖ３の方向が、同一方向に分類された場合、ＭＣＵ２３は、各速度ベクトルＶ０〜Ｖ４の大きさと所定の閾値Ｔｈｖ１と比較する。そして、ＭＣＵ２３は、速度ベクトルＶ０〜Ｖ４の大きさが、閾値Ｔｈｖ１を超えた場合、プレイヤが剣３Ａ−Ｎを振ったと判断し、スイングトリガを生成する。この場合、ＭＣＵ２３は、速度ベクトルＶ０〜Ｖ３が分類された同一方向を剣３Ａ−Ｎのスイング方向とする。【０１０９】
また、ＭＣＵ２３は、プレイヤが剣３Ａ−Ｎを振ったと判断した場合、５つの像ＩＭ０〜ＩＭ４のうち中央の像ＩＭ２のＸＹ座標（Ｘｒ，Ｙｒ）に基づいて、スイング位置を求める。この場合、図９（ａ）〜図９（ｈ）に示すように、ＭＣＵ２３は、スイング方向Ａ０〜Ａ７ごとに、７つの位置のいずれかに、スイング位置を分類する。【０１１０】
［スペシャルトリガ］【０１１１】
ＭＣＵ２３は、今回及び前回において、シールドトリガが生成されたか否かを判断する。ＭＣＵ２３は、両者でシールドトリガが生成されたと判断した場合、剣３Ａ−Ｎによる特殊操作の有無を検出し、検出した場合にスペシャルトリガを生成する。【０１１２】
図１０は、剣３Ａ−Ｎによる特殊操作の説明図である。図１０を参照して、ＭＣＵ２３は、まず、再帰反射シート４Ａが垂直上方向に移動し、その後、再帰反射シート４Ａ又は４Ｂが垂直下方向に移動したか否か、つまり、特殊操作を行ったか否かを判断する。具体的には、次の通りである。【０１１３】
ＭＣＵ２３は、前回及び今回において、シールドトリガが生成されたと判断した場合、第１フラグをオンにする。そして、ＭＣＵ２３は、第１フラグがオンになった後オフになるまでの間に、５枚の差分画像ＤＩにおいて、連続して再帰反射シート４Ａの像ＩＭ０〜ＩＭ４が検出されたか否かを判断する。この場合、再帰反射シート４Ａの像であるから、それぞれの像ＩＭ０〜ＩＭ４の面積は、閾値Ｔｈａ１を超えている必要がある。【０１１４】
そして、ＭＣＵ２３は、５枚連続して再帰反射シート４Ａの像ＩＭ０〜ＩＭ４が検出されたと判断した場合、５つの像ＩＭ０〜ＩＭ４のＸＹ座標（Ｘｒ，Ｙｒ）に基づく、各速度ベクトルＶ０〜Ｖ３の方向を、８つの方向Ａ０〜Ａ７（図８参照）のいずれかに分類する。【０１１５】
ＭＣＵ２３は、速度ベクトルＶ０〜Ｖ３の方向が全て方向Ａ１に分類された場合、各速度ベクトルＶ０〜Ｖ４の大きさと所定の閾値Ｔｈｖ２とを比較する。そして、ＭＣＵ２３は、速度ベクトルＶ０〜Ｖ３の大きさが全て閾値Ｔｈｖ２を超えている場合、第２フラグをオンにする。【０１１６】
そして、ＭＣＵ２３は、第２フラグがオンになった後オフになるまでの間に、５枚の差分画像ＤＩにおいて、連続して再帰反射シート４Ｂの像ＩＭ０〜ＩＭ４が検出されたか否かを判断する。ＭＣＵ２３は、５枚連続して再帰反射シート４Ｂの像ＩＭ０〜ＩＭ４が検出されたと判断した場合、５つの像ＩＭ０〜ＩＭ４のＸＹ座標（Ｘｒ，Ｙｒ）に基づく、各速度ベクトルＶ０〜Ｖ３の方向を、８つの方向Ａ０〜Ａ７（図８参照）のいずれかに分類する。【０１１７】
ＭＣＵ２３は、速度ベクトルＶ０〜Ｖ３の方向が全て方向Ａ０に分類された場合、各速度ベクトルＶ０〜Ｖ４の大きさと所定の閾値Ｔｈｖ３とを比較する。そして、ＭＣＵ２３は、速度ベクトルＶ０〜Ｖ３の大きさが全て閾値Ｔｈｖ３を超えている場合、プレイヤが特殊操作を行ったと判断して、スペシャルトリガを生成する。なお、Ｔｈｖ２＜Ｔｈｖ３、である。【０１１８】
なお、第１フラグがオンになった時から第１所定時間経過後に、第１フラグはオフにされる。また、第２フラグがオンになった時から第２所定時間経過後に、第２フラグはオフにされる。【０１１９】
本実施の形態では、ＭＣＵ２３は、トリガ情報（シールドトリガ、スペシャルトリガ、スイングトリガ、待機状態）、再帰反射シート４の像のＸＹ座標及び面積、並びにスイングトリガが生成された時のスイング方向及び位置情報を、端末５−Ｎに送信する。なお、ＭＣＵ２３は、シールドトリガ、スペシャルトリガ及びスイングトリガのいずれの生成条件も満足しない場合、トリガ情報として待機状態を設定する。【０１２０】
端末５−Ｎは、これらの情報に応じたゲーム処理を実行する。また、これらの情報は、端末５−Ｎからホストコンピュータ３１へ送信される。ホストコンピュータ３１は、これらの情報に応じたゲーム処理を実行し、及び／又は、これらの情報を他の端末５−Ｎに送信する。当該他の端末５−Ｎは、これらの情報に応じたゲーム処理を実行する。【０１２１】
［メイス３Ｂ−Ｎ］【０１２２】
図１１（ａ）及び図１１（ｂ）は、メイス３Ｂ−Ｎに基づくスペシャルトリガの説明図である。図１１（ａ）を参照して、ＭＣＵ２３は、メイス３Ｂ−Ｎが時計回り（反時計回りを条件とすることも可能）の円を描くように操作され、その後、メイス３Ｂ−Ｎが垂直下方向に振り下ろされた場合に、スペシャルトリガを生成する。具体的には次の通りである。【０１２３】
図１１（ｂ）を参照して、ＭＣＵ２３は、３枚の差分画像ＤＩにおいて、連続して再帰反射シート４Ｃの像ＩＭ０〜ＩＭ２が検出された場合、３つの像ＩＭ０〜ＩＭ２のＸＹ座標（Ｘｒ，Ｙｒ）に基づく、２つの速度ベクトルＶ０及びＶ１の方向が全て同一方向Ａ２に分類された場合、第１フラグをオンにする。【０１２４】
第１フラグがオンの場合、ＭＣＵ２３は、３枚の差分画像ＤＩにおいて、連続して再帰反射シート４Ｃの像ＩＭ０〜ＩＭ２が検出された場合、３つの像ＩＭ０〜ＩＭ２のＸＹ座標（Ｘｒ，Ｙｒ）に基づく、２つの速度ベクトルＶ０及びＶ１の方向が全て同一方向Ａ７に分類された場合、第２フラグをオンにする。【０１２５】
第２フラグがオンの場合、ＭＣＵ２３は、３枚の差分画像ＤＩにおいて、連続して再帰反射シート４Ｃの像ＩＭ０〜ＩＭ２が検出された場合、３つの像ＩＭ０〜ＩＭ２のＸＹ座標（Ｘｒ，Ｙｒ）に基づく、２つの速度ベクトルＶ０及びＶ１の方向が全て同一方向Ａ０に分類された場合、第３フラグをオンにする。【０１２６】
第３フラグがオンの場合、ＭＣＵ２３は、３枚の差分画像ＤＩにおいて、連続して再帰反射シート４Ｃの像ＩＭ０〜ＩＭ２が検出された場合、３つの像ＩＭ０〜ＩＭ２のＸＹ座標（Ｘｒ，Ｙｒ）に基づく、２つの速度ベクトルＶ０及びＶ１の方向が全て同一方向Ａ５に分類された場合、第４フラグをオンにする。【０１２７】
第４フラグがオンの場合、ＭＣＵ２３は、３枚の差分画像ＤＩにおいて、連続して再帰反射シート４Ｃの像ＩＭ０〜ＩＭ２が検出された場合、３つの像ＩＭ０〜ＩＭ２のＸＹ座標（Ｘｒ，Ｙｒ）に基づく、２つの速度ベクトルＶ０及びＶ１の方向が全て同一方向Ａ３に分類された場合、第５フラグをオンにする。【０１２８】
第５フラグがオンの場合、ＭＣＵ２３は、３枚の差分画像ＤＩにおいて、連続して再帰反射シート４Ｃの像ＩＭ０〜ＩＭ２が検出された場合、３つの像ＩＭ０〜ＩＭ２のＸＹ座標（Ｘｒ，Ｙｒ）に基づく、２つの速度ベクトルＶ０及びＶ１の方向が全て同一方向Ａ６に分類された場合、第６フラグをオンにする。【０１２９】
第６フラグがオンの場合、ＭＣＵ２３は、３枚の差分画像ＤＩにおいて、連続して再帰反射シート４Ｃの像ＩＭ０〜ＩＭ２が検出された場合、３つの像ＩＭ０〜ＩＭ２のＸＹ座標（Ｘｒ，Ｙｒ）に基づく、２つの速度ベクトルＶ０及びＶ１の方向が全て同一方向Ａ１に分類された場合、第７フラグをオンにする。【０１３０】
第７フラグがオンの場合、ＭＣＵ２３は、３枚の差分画像ＤＩにおいて、連続して再帰反射シート４Ｃの像ＩＭ０〜ＩＭ２が検出された場合、３つの像ＩＭ０〜ＩＭ２のＸＹ座標（Ｘｒ，Ｙｒ）に基づく、２つの速度ベクトルＶ０及びＶ１の方向が全て同一方向Ａ４に分類された場合、第８フラグをオンにする。【０１３１】
第８フラグがオンの場合、ＭＣＵ２３は、３枚の差分画像ＤＩにおいて、連続して再帰反射シート４Ｃの像ＩＭ０〜ＩＭ２が検出された場合、３つの像ＩＭ０〜ＩＭ２のＸＹ座標（Ｘｒ，Ｙｒ）に基づく、２つの速度ベクトルＶ０及びＶ１の方向が全て同一方向Ａ２に分類された場合、第９フラグをオンにする。【０１３２】
ただし、ＭＣＵ２３は、第１フラグがオンになった時点から第３所定時間内に第９フラグがオンにならない場合は、第１〜第８フラグを全てオフにする。【０１３３】
第９フラグがオンの場合、ＭＣＵ２３は、メイス３Ｂ−Ｎにより描かれた円の大きさが所定値より大きいか否かを判断し、大きい場合は第１０フラグをオンにし、それ以外は、第１〜第９フラグを全てオフにする。具体的には次の通りである。【０１３４】
図１１（ａ）を参照して、ＭＣＵ２３は、再帰反射シート４Ｃの像のＸ座標Ｘｒのうちの最大座標Ｘ１と最小座標Ｘ０との差ΔＸと、再帰反射シート４Ｃの像のＹ座標Ｙｒのうちの最大座標Ｙ１と最小座標Ｙ０との差ΔＹと、を算出する。そして、ＭＣＵ２３は、和ｓ＝ΔＸ＋ΔＹを計算する。ＭＣＵ２３は、和ｓが一定値より大きい場合は第１０フラグをオンにする。【０１３５】
第１０フラグがオンの場合、ＭＣＵ２３は、３枚の差分画像ＤＩにおいて、連続して再帰反射シート４Ｃの像ＩＭ０〜ＩＭ２が検出された場合、３つの像ＩＭ０〜ＩＭ２のＸＹ座標（Ｘｒ，Ｙｒ）に基づく、２つの速度ベクトルＶ０及びＶ１の方向を、８つの方向Ａ０〜Ａ７のいずれかに分類する。ＭＣＵ２３は、２つの速度ベクトルＶ０及びＶ１の方向が全て同一方向Ａ０に分類された場合、２つの速度ベクトルＶ０及びＶ１の大きさが全て所定の閾値Ｔｈｖ４を超えたか否かを判断する。ＭＣＵ２３は、２つの速度ベクトルＶ０及びＶ１の大きさが全て閾値Ｔｈｖ４を超えた場合、プレイヤが特殊操作を行ったと判断して、スペシャルトリガを生成する。なお、第１０フラグがオンになった時点から第４所定期間内にスペシャルトリガが生成されない場合は、第１〜第１０フラグを全てオフにする。【０１３６】
本実施の形態では、ＭＣＵ２３は、トリガ情報（スペシャルトリガ、待機状態）、再帰反射シート４の像のＸＹ座標及び面積を、端末５−Ｎに送信する。なお、ＭＣＵ２３は、スペシャルトリガの生成条件を満足しない場合、トリガ情報として待機状態を設定する。【０１３７】
端末５−Ｎは、これらの情報に応じたゲーム処理を実行する。また、これらの情報は、端末５−Ｎからホストコンピュータ３１へ送信される。ホストコンピュータ３１は、これらの情報に応じたゲーム処理を実行し、及び／又は、これらの情報を他の端末５−Ｎに送信する。当該他の端末５−Ｎは、これらの情報に応じたゲーム処理を実行する。【０１３８】
［クロスボウ３Ｃ−Ｎ］【０１３９】
ＭＣＵ２３は、まず、差分画像ＤＩに写り込んだ再帰反射シート４の数を検出し、その数に応じて処理を進める。再帰反射シート４の数の検出方法は、上記のとおりである（図４及び図５参照）。【０１４０】
ＭＣＵ２３は、再帰反射シート４の数が１つの場合、チャージトリガの生成条件を満足するか否かを判断する。また、ＭＣＵ２３は、再帰反射シート４の数が２つの場合、シールドトリガの生成条件を満足するか否かを判断し、満足しなかった場合に、スイッチトリガの生成条件を満足するか否かを判断する。さらに、ＭＣＵ２３は、再帰反射シート４の数が３つの場合、シューティングトリガの生成条件を満足するか否かを判断する。なお、４つのトリガのうち、２つ以上が重複して生成条件を満たす場合、優先順位は、高い方から、チャージトリガ、シールドトリガ、スイッチトリガ及びシューティングトリガである。以下、チャージトリガ、シールドトリガ、スイッチトリガ及びシューティングトリガの順に説明する。【０１４１】
［チャージトリガ］【０１４２】
図１２（ａ）は、クロスボウ３Ｃ−Ｎに基づくチャージトリガの説明図である。図１２（ａ）を参照して、ＭＣＵ２３は、差分画像ＤＩに写り込んだ再帰反射シート４が１つの場合、その像の面積が閾値Ｔｈａ２より大きいか否かを判断する。大きい場合、ＭＣＵ２３は、再帰反射シート４Ｇが撮影されたと判断して、チャージトリガを生成する。【０１４３】
［シールドトリガ］【０１４４】
図１２（ｂ）は、クロスボウ３Ｃ−Ｎに基づくシールドトリガの説明図である。図１２（ｂ）を参照して、ＭＣＵ２３は、差分画像ＤＩに写り込んだ再帰反射シート４が２つの場合、再帰反射シート４Ｅ及び４Ｆが撮影されたと判断して、それらのＸＹ座標（Ｘｒ，Ｙｒ）に基づいて、それらを結ぶ直線の傾きを算出する。ＭＣＵ２３は、その傾きが一定値より大きい場合は、シールドトリガを生成する。また、ＭＣＵ２３は、差分画像ＤＩに写り込んだ再帰反射シート４が２つの場合、それらのＸＹ座標（Ｘｒ，Ｙｒ）に基づいて、それらの中点座標を算出する。【０１４５】
［スイッチトリガ］【０１４６】
ＭＣＵ２３は、差分画像ＤＩに写り込んだ再帰反射シート４が２つの場合であって、シールドトリガの生成条件を満足していない場合、剣３Ａ−Ｎのスイングトリガの検出と同様にして、スイッチトリガの生成条件を満足するか否かを判断する。ただし、判断においては、それぞれの再帰反射シート４Ｅ及び４ＦのＸＹ座標（Ｘｒ，Ｙｒ）を用いるのではなく、それらの中点座標を用いる。具体的には次の通りである。【０１４７】
図１２（ｃ）は、クロスボウ３Ｃ−Ｎに基づくスイッチトリガの説明図である。図１２（ｃ）を参照して、ＭＣＵ２３は、５枚の差分画像ＤＩにおいて、連続して再帰反射シート４Ｅ及び４Ｆの像が検出された場合、それらに対応する５つの中点座標に基づく、４つの速度ベクトルの方向が全て同一方向Ａ１に分類されたか否かを判断する。全て同一方向Ａ１に分類された場合、ＭＣＵ２３は、４つの速度ベクトルの大きさが全て所定の閾値Ｔｈｖ５を超えたか否かを判断する。ＭＣＵ２３は、４つの速度ベクトルの大きさが全て閾値Ｔｈｖ５を超えた場合、所定フラグをオンにする。【０１４８】
所定フラグがオンになった後オフになるまでの間に、ＭＣＵ２３は、５枚の差分画像ＤＩにおいて、連続して再帰反射シート４Ｅ及び４Ｆの像が検出された場合、それらに対応する５つの中点座標に基づく、４つの速度ベクトルの方向が全て同一方向Ａ０に分類されたか否かを判断する。全て同一方向Ａ０に分類された場合、ＭＣＵ２３は、４つの速度ベクトルの大きさが全て所定の閾値Ｔｈｖ６を超えたか否かを判断する。ＭＣＵ２３は、４つの速度ベクトルの大きさが全て閾値Ｔｈｖ６を超えた場合、スイッチトリガをオンにする。【０１４９】
なお、ＭＣＵ２３は、所定フラグがオンになった時点から第５所定期間内にスイッチトリガが生成されない場合は、所定フラグをオフにする。【０１５０】
［シューティングトリガ］【０１５１】
図１２（ｄ）は、クロスボウ３Ｃ−Ｎに基づくシューティングトリガの説明図である。図１２（ｄ）を参照して、ＭＣＵ２３は、差分画像ＤＩに３つの再帰反射シート４が写り込んでいる場合、それらが、再帰反射シート４Ｄ，４Ｅ及び４Ｆであると判断する。そして、ＭＣＵ２３は、前回の差分画像に写り込んだ再帰反射シート４が、再帰反射シート４Ｅ及び４Ｆのみであるか否かを判断し、２つの再帰反射シート４Ｅ及び４Ｆのみが写り込んでいた場合、シューティングトリガを生成する。ただし、ＭＣＵ２３は、前回の差分画像に写り込んだ再帰反射シート４が、３つの再帰反射シート４Ｄ，４Ｅ及び４Ｆである場合、シューティングトリガを生成しない。つまり、差分画像ＤＩに写り込んだ再帰反射シート４の数が２つから３つに遷移した時に、シューティングトリガを生成する。【０１５２】
ただし、ＭＣＵ２３は、差分画像ＤＩに３つの再帰反射シート４が写り込んでいる場合、シューティングトリガの生成条件の判断の前に、３つの再帰反射シート４の面積ａｒ０，ａｒ１及びａｒ２の差｜ａｒ０−ａｒ１｜，｜ａｒ１−ａｒ２｜及び｜ａｒ２−ａｒ０｜を求める。そして、ＭＣＵ２３は、求めた面積の差が最も小さい２つの再帰反射シート４の面積の平均と、面積が一番大きい再帰反射シート４の面積と、の差を求める。ＭＣＵ２３は、その差が一定値より大きい場合、面積が一番大きい再帰反射シート４が再帰反射シート４Ｇであると判断し、チャージトリガを生成する。【０１５３】
また、ＭＣＵ２３は、差分画像ＤＩに３つの再帰反射シート４が写り込んでいる場合において、チャージトリガの生成条件を満足しなかった場合、シューティングトリガの生成条件の判断の前に、両端の再帰反射シート４Ｅ及び４Ｆが、シールドトリガの生成条件を満足しているか否かを判断し、満足していれば、シールドトリガを生成する。【０１５４】
従って、ＭＣＵ２３は、差分画像ＤＩに３つの再帰反射シート４が写り込んでいる場合、チャージトリガ及びシールドトリガの生成条件を満足しなかった場合に、シューティングトリガの生成条件を判断する。【０１５５】
本実施の形態では、ＭＣＵ２３は、トリガ情報（チャージトリガ、シールドトリガ、スイッチトリガ、シューティングトリガ及び待機状態）、再帰反射シート４の像のＸＹ座標及び面積を、端末５−Ｎに送信する。また、ＭＣＵ２３は、差分画像ＤＩに写り込んだ再帰反射シート４の数が２つの場合、その中点座標を端末５−Ｎに送信する。さらに、ＭＣＵ２３は、差分画像ＤＩに写り込んだ再帰反射シート４の数が３つの場合、その両端の再帰反射シート４の中点座標を端末５−Ｎに送信する。ただし、差分画像ＤＩに写り込んだ再帰反射シート４の数が３つの場合であっても、その１つが再帰反射シート４Ｇであると判断した場合は、再帰反射シート４ＧのＸＹ座標（Ｘｒ，Ｙｒ）を送信する。なお、ＭＣＵ２３は、チャージトリガ、シールドトリガ、スイッチトリガ及びシューティングトリガのいずれの生成条件も満足しない場合、トリガ情報として待機状態を設定する。【０１５６】
端末５−Ｎは、これらの情報に応じたゲーム処理を実行する。また、これらの情報は、端末５−Ｎからホストコンピュータ３１へ送信される。ホストコンピュータ３１は、これらの情報に応じたゲーム処理を実行し、及び／又は、これらの情報を他の端末５−Ｎに送信する。当該他の端末５−Ｎは、これらの情報に応じたゲーム処理を実行する。【０１５７】
以上のように、クロスボウ３Ｃ−Ｎでは、露光状態を常に維持する再帰反射シート４Ｅ及び４Ｆを設けているので、その再帰反射シート４Ｅ及び４Ｆの撮像画像に基づいて、クロスボウ３Ｃ−Ｎによる入力の有無及び入力の形態を常に検出できる。また、露光状態と非露光状態とが切り替えられる再帰反射シート４Ｄを設けているので、その再帰反射シート４Ｄが撮像された時と撮像されなかった時とで、異なる入力を与えることができ、再帰反射シートを利用した入力の種類を多様化できる。【０１５８】
さて、図１３は、図３（ｃ）のクロスボウ３Ｃ−Ｎの変形例である。図１３を参照して、変形例のクロスボウ３Ｃ−Ｎでは、シャッター５０及び再帰反射シート４Ｇの取り付け位置が、図３（ｃ）のクロスボウ３Ｃ−Ｎと異なる。【０１５９】
台座４１の先端部には、開閉自在にシャッター５０が取り付けられる。そして、台座４１の先端部であって、シャッター５０の背面側に、再帰反射シート４Ｄが取り付けられる。トリガ５１が引かれていない状態では、シャッター５０は閉じている。従って、この場合、再帰反射シート４Ｄは、シャッター５０に隠れて露出しない。一方、トリガ５１が引かれた状態では、シャッター５０は開いている。従って、この場合、再帰反射シート４Ｄは、露出している。  【０１６０】
また、台座４１の先端部には、部材４０が、台座４１の長手方向に対して鈍角（トリガ５１の側から見て）になるように取り付けられる。この部材４０の背面、つまり、トリガ５１に面している面に、再帰反射シート４Ｇが取り付けられる。従って、台座４１の先端部がカメラユニット１のほうを向いている場合、再帰反射シート４Ｇは撮影されず、台座４１の先端部が上方向を向いている場合、再帰反射シート４Ｇは撮影される。  【０１６１】
再帰反射シート４Ｇが台座４１の長手方向に対して鈍角に取付けられるので、再帰反射シート４Ｇが台座４１の長手方向に対して鋭角に取付けられる図３（ｃ）のクロスボウ３Ｃ−Ｎよりも、より台座４１の先端部を上方向に向けないと、再帰反射シート４Ｇは撮影されない。従って、プレイヤが意図しない再帰反射シート４Ｇの撮影をより防止できる。【０１６２】
図１４は、図２のＭＣＵ２３の処理の全体流れを示すフローチャートである。図１４を参照して、ステップＳ１にて、ＭＣＵ２３は、変数等の初期化処理を実行する。ステップＳ３にて、ＭＣＵ２３は、イメージセンサ３７を制御し、再帰反射シート４の撮影処理を実行させる。ステップＳ５にて、ＭＣＵ２３は、イメージセンサ２１からの差分画像信号に基づいて、再帰反射シート４の検出処理を実行して、再帰反射シート４の状態情報を算出する。ステップＳ９にて、ＭＣＵ２３は、ステップＳ５の検出結果に基づいて、トリガの検出処理を実行する。ステップＳ１１にて、ＭＣＵ２３は、トリガ（つまり、後述のトリガフラグ）及び状態情報を端末５−Ｎに送信する。【０１６３】
すると、ステップＳ２１にて、端末５−Ｎは、トリガ及び状態情報を受信する。ステップＳ２３にて、端末５−Ｎは、受信したトリガ及び状態情報に応じたゲーム処理を実行する。また、ステップＳ２５にて、端末５−Ｎは、トリガ及び状態情報をネットワーク２９経由でホストコンピュータ３１に送信する。ホストコンピュータ３１は、トリガ及び状態情報に応じたゲーム処理を実行し、及び／又は、トリガ及び状態情報を他の端末５−Ｎに送信する。当該他の端末５−Ｎは、これらの情報に応じたゲーム処理を実行する。複数の端末５−Ｎ間で、このような処理が行われ、オンラインゲームが実行される。もちろん、端末５−Ｎが、ネットワーク経由で直接、他の端末５−Ｎへ、トリガ及び状態情報を送信して、オンラインゲームを実行することもできる。【０１６４】
図１５は、図１４のステップＳ３の撮影処理の流れを示すフローチャートである。図１５を参照して、ステップＳ４１にて、ＭＣＵ２３は、イメージセンサ２１に赤外発光ダイオード１１を点灯させる。ステップＳ４３にて、ＭＣＵ２３は、イメージセンサ２１に赤外光点灯時の撮影を実行させる。ステップＳ４５にて、ＭＣＵ２３は、イメージセンサ２１に赤外発光ダイオード１１を消灯させる。ステップＳ４７にて、ＭＣＵ２３は、イメージセンサ２１に赤外光消灯時の撮影を実行させる。ステップＳ４９にて、ＭＣＵ２３は、イメージセンサ２１に、赤外光点灯時の画像と赤外光消灯時の画像との差分画像を生成及び出力させる。以上のようにして、ＭＣＵ２３の制御に応答して、イメージセンサ２１は、赤外光の点灯時及び消灯時の撮影、つまり、ストロボ撮影を実行する。また、以上の制御により、赤外発光ダイオード１１は、ストロボスコープとして機能する。【０１６５】
図１６〜図２２は、図１４のステップＳ５の再帰反射シートの検出処理の流れを示すフローチャートである。図１６を参照して、ステップＳ７１にて、ＭＣＵ２３は、変数Ｘ及びＹに０を代入する。ステップＳ７３にて、ＭＣＵ２３は、差分画像の画素値Ｐ（Ｘ，Ｙ）と閾値Ｔｈｌとを比較する。画素値は、例えば、輝度値である。ステップＳ７５にて、ＭＣＵ２３は、画素値Ｐ（Ｘ，Ｙ）が閾値Ｔｈｌを超えている場合、ステップＳ７７に進み、それ以外はステップＳ７９に進む。【０１６６】
ステップＳ７７にて、ＭＣＵ２３は、変数Ｈ[Ｘ]及びＶ[Ｙ]にそれぞれ１を代入する。一方、ステップＳ７９にて、ＭＣＵ２３は、変数Ｈ[Ｘ]の値が１の場合ステップＳ８３へ進み、それ以外はステップＳ８１に進む。ステップＳ８１にて、ＭＣＵ２３は、変数Ｈ[Ｘ]に０を代入する。ステップＳ８３にて、ＭＣＵ２３は、変数Ｖ[Ｙ]の値が１の場合ステップＳ８７に進み、それ以外はステップＳ８５に進む。ステップＳ８５にて、ＭＣＵ２３は、変数Ｖ[Ｙ]に０を代入する。【０１６７】
ステップＳ８７にて、ＭＣＵ２３は、変数Ｘの値を１つインクリメントする。ステップＳ８９にて、ＭＣＵ２３は、変数Ｘの値が６４の場合ステップＳ９１に進み、それ以外はステップＳ７３に戻る。ステップＳ９１にて、ＭＣＵ２３は、変数Ｘに０を代入する。ステップＳ９３にて、ＭＣＵ２３は、変数Ｙの値を１つインクリメントする。ステップＳ９５にて、ＭＣＵ２３は、変数Ｙの値が６４の場合図１７のステップＳ１０１に進み、それ以外はステップＳ７３に戻る。【０１６８】
このようにして、差分画像がスキャンされ、一次の候補領域を規定する配列Ｈ［Ｘ］及びＶ［Ｙ］に値が設定される（図４及び図５（ａ）参照）。一次の候補領域は、例えば、図４では、領域ａ０〜ａ３、図５（ａ）では、領域ａ０及びａ１である。【０１６９】
図１７を参照し、ステップＳ１０１にて、ＭＣＵ２３は、変数Ｘ，ｍ，Ｈｍｘ[][]及びＨｍｎ[][]にそれぞれ０を代入する。ステップＳ１０３にて、ＭＣＵ２３は、変数Ｈ[Ｘ]の値が１の場合ステップＳ１０５に進み、それ以外はステップＳ１０９に進む。ステップＳ１０５にて、ＭＣＵ２３は、変数Ｈ[Ｘ−１]の値が０の場合ステップＳ１１５に進み、それ以外はステップＳ１１７に進む。ステップＳ１１５にて、ＭＣＵ２３は、変数Ｈｍｎ[ｍ][０]に変数Ｘの値を代入する。【０１７０】
ステップＳ１０９にて、ＭＣＵ２３は、変数Ｈ[Ｘ−１]の値が１の場合ステップＳ１１１に進み、それ以外はステップＳ１１７に進む。ステップＳ１１１にて、ＭＣＵ２３は、変数Ｈｍｘ[ｍ][０]に変数Ｘの値を代入する。ステップＳ１１３にて、ＭＣＵ２３は、変数ｍの値を１つインクリメントする。【０１７１】
ステップＳ１１７にて、ＭＣＵ２３は、変数Ｘの値を１つインクリメントする。ステップＳ１１９にて、ＭＣＵ２３は、変数Ｘの値が６４の場合ステップＳ１２１に進み、それ以外はステップＳ１０３に戻る。ステップＳ１２１にて、ＭＣＵ２３は、変数Ｈｎに変数ｍの値から１を減算した値を代入する。【０１７２】
上記ステップＳ１０１〜Ｓ１２１までの処理は、「１」が格納された配列Ｈ[Ｘ]の左端の要素番号Ｘ（Ｘ座標）、及び、「１」が格納された配列Ｈ[Ｘ]の右端の要素番号Ｘ（Ｘ座標）を求める処理である。【０１７３】
ステップＳ１２３にて、ＭＣＵ２３は、変数Ｙ，ｎ，Ｖｍｘ[][]及びＶｍｎ[][]にそれぞれ０を代入する。ステップＳ１２５にて、ＭＣＵ２３は、変数Ｖ［Ｙ］の値が１の場合ステップＳ１２７に進み、それ以外はステップＳ１３５に進む。ステップＳ１２７にて、ＭＣＵ２３は、変数Ｖ[Ｙ−１]の値が０の場合ステップＳ１２９に進み、それ以外はステップＳ１３１に進む。ステップＳ１２９にて、ＭＣＵ２３は、変数Ｖｍｎ[ｍ][０]に変数Ｙの値を代入する。【０１７４】
ステップＳ１３５にて、ＭＣＵ２３は、変数Ｖ[Ｙ−１]の値が１の場合ステップＳ１３７に進み、それ以外はステップＳ１３１に進む。ステップＳ１３７にて、ＭＣＵ２３は、変数Ｖｍｘ[ｍ][０]に変数Ｙの値を代入する。ステップＳ１３９にて、ＭＣＵ２３は、変数ｎの値を１つインクリメントする。【０１７５】
ステップＳ１３１にて、ＭＣＵ２３は、変数Ｙの値を１つインクリメントする。ステップＳ１３３にて、ＭＣＵ２３は、変数Ｙの値が６４の場合ステップＳ１４１に進み、それ以外はステップＳ１２５に戻る。ステップＳ１４１にて、ＭＣＵ２３は、変数Ｖｎに変数ｎの値から１を減算した値を代入する。【０１７６】
上記ステップＳ１２３〜Ｓ１４１までの処理は、「１」が格納された配列Ｖ[Ｙ]の上端の要素番号Ｙ（Ｙ座標）、及び、「１」が格納された配列Ｖ[Ｙ]の下端の要素番号Ｙ（Ｙ座標）を求める処理である。【０１７７】
以上により、差分画像がスキャンされ、一次の候補領域が決定される（図４及び図５（ａ）参照）。【０１７８】
ステップＳ１４３にて、ＭＣＵ２３は、変数ｍに０を代入する。ステップＳ１４５にて、ＭＣＵ２３は、変数Ｈｍ［ｍ］に変数Ｈｍｎ［ｍ］［０］の値を代入し、変数Ｈｘ［ｍ］に変数Ｈｍｘ［ｍ］［０］の値を代入する。ステップＳ１４７にて、ＭＣＵ２３は、変数ｍの値が値Ｈｎの場合ステップＳ１５１に進み、それ以外はステップＳ１４９に進む。ステップＳ１４９にて、ＭＣＵ２３は、変数ｍの値を１つインクリメントしてステップＳ１４５に戻る。ステップＳ１５１にて、ＭＣＵ２３は、変数ｎに０を代入する。ステップＳ１５３にて、ＭＣＵ２３は、変数Ｖｎ［ｍ］に変数Ｖｍｎ［ｎ］［０］の値を代入し、変数Ｖｘ［ｎ］に変数Ｖｍｘ［ｎ］［０］の値を代入する。ステップＳ１５５にて、ＭＣＵ２３は、変数ｎの値が値Ｖｎの場合図１８のステップＳ１７１に進み、それ以外はステップＳ１５７に進む。ステップＳ１５７にて、ＭＣＵ２３は、変数ｎの値を１つインクリメントする。【０１７９】
図１８を参照して、ステップＳ１７１にて、ＭＣＵ２３は、差分画像に写り込んだ再帰反射シート４が３つ以上の可能性がある場合、つまり、操作物としてクロスボウ３Ｃ−Ｎが使用されている場合、ステップＳ１７７に進み、それ以外はステップＳ１７３に進む。ステップＳ１７３にて、ＭＣＵ２３は、変数Ｊに０を代入する。ステップＳ１７５にて、ＭＣＵ２３は、変数Ｍ［０］に変数Ｈｎの値を代入し、変数Ｎ［０］に変数Ｖｎの値を代入して、図２１のステップＳ３３１に進む。【０１８０】
図２１を参照して、ステップＳ３３１にて、ＭＣＵ２３は、変数ＣＡ，Ａ，Ｂ，Ｃ，ｍｉｎＸ，ｍｉｎＹ，ｍａｘＸ，ｍａｘＹ，ｓ，ｍｎＸ［］，ｍｎＹ［］，ｍｘＸ［］，ｍｘＹ［］，Ｘｒ［］，Ｙｒ［］及びＣ［］を初期化する。そして、ＭＣＵ２３は、ステップＳ３３３と図２２のステップＳ３８９との間を、変数ｊを更新しながら繰り返す。また、ＭＣＵ２３は、ステップＳ３３５と図２２のステップＳ３８７との間を、変数ｎを更新しながら繰り返す。さらに、ＭＣＵ２３は、ステップＳ３３７と図２２のステップＳ３８５との間を、変数ｍを更新しながら繰り返す。【０１８１】
ステップＳ３３９にて、ＭＣＵ２３は、変数Ｘに変数Ｈｍｎ［ｍ］［ｊ］の値を代入し、変数Ｙに変数Ｖｍｎ［ｎ］［ｊ］の値を代入する。ステップＳ３４１にて、ＭＣＵ２３は、差分画像の画素値Ｐ（Ｘ，Ｙ）と閾値Ｔｈｌとを比較する。ステップＳ３４３にて、ＭＣＵ２３は、画素値Ｐ（Ｘ，Ｙ）が閾値Ｔｈｌを超えている場合、ステップＳ３４５に進み、それ以外はステップＳ３５１に進む。【０１８２】
ステップＳ３４５にて、ＭＣＵ２３は、再帰反射シートの像の面積を計算するカウンタＣＡの値を１つインクリメントする。ステップＳ３４７にて、ＭＣＵ２３は、次式により、変数Ａ，Ｂ及びＣの値を更新する。【０１８３】
Ａ←Ａ＋Ｐ（Ｘ，Ｙ）＊Ｘ
Ｂ←Ｂ＋Ｐ（Ｘ，Ｙ）＊Ｘ
Ｃ←Ｃ＋Ｐ（Ｘ，Ｙ）【０１８４】
ステップＳ３４９にて、ＭＣＵ２３は、再帰反射シート４の像の４端点（最大Ｘ座標、最大Ｙ座標、最小Ｘ座標、最小Ｙ座標）を検出する。ステップＳ３５１にて、ＭＣＵ２３は、変数Ｘの値を１つインクリメントする。ステップＳ３５３にて、ＭＣＵ２３は、変数Ｘの値が変数Ｈｍｘ［ｍ］［ｊ］の値に１を加算した値に等しい場合ステップＳ３５５に進み、それ以外はステップＳ３４１に戻る。ステップＳ３５５にて、ＭＣＵ２３は、変数Ｘに変数Ｈｍｎ［ｍ］［ｊ］の値を代入する。ステップＳ３５７にて、ＭＣＵ２３は、変数Ｙの値を１つインクリメントする。ステップＳ３５９にて、ＭＣＵ２３は、変数Ｙの値が変数Ｖｍｘ［ｎ］［ｊ］の値に１を加算した値に等しい場合図２２のステップＳ３７１に進み、それ以外はステップＳ３４１に戻る。【０１８５】
上記ステップＳ３３９〜Ｓ３５９の処理によって、再帰反射シートの像の４端点と面積が求められる。【０１８６】
図２２を参照して、ステップＳ３７１にて、ＭＣＵ２３は、カウンタＣＡの値が０を超えている場合ステップＳ３７３に進み、それ以外はステップＳ３８５に進む。カウンタＣＡの値が０を超えているということは、その候補領域に再帰反射シートの像が存在することを意味し、その座標（Ｘｒ，Ｙｒ）の算出と結果の保存のため、ステップＳ３７３に進むのである。ステップＳ３７３にて、ＭＣＵ２３は、変数Ｃ［ｓ］にカウンタＣＡの値を代入する。ステップＳ３７５にて、ＭＣＵ２３は、変数Ｘｒ［ｓ］に、Ａ＊Ｒ／Ｃの値を代入し、変数Ｙｒ［ｓ］に、Ｂ＊Ｒ／Ｃの値を代入する。ステップＳ３７７にて、ＭＣＵ２３は、変数ｍｎＸ［ｓ］に変数ｍｉｎＸの値を代入し、変数ｍｎＹ［ｓ］に変数ｍｉｎＹの値を代入し、変数ｍｘＸ［ｓ］に変数ｍａｘＸの値を代入し、変数ｍｘＹ［ｓ］にｍａｘＹの値を代入する。【０１８７】
ステップＳ３７９にて、ＭＣＵ２３は、変数ＳＮに、撮影された再帰反射シートの数を計数するカウンタｓの値を代入する。ステップＳ３８１にて、ＭＣＵ２３は、カウンタｓの値を１つインクリメントする。ステップＳ３８３にて、ＭＣＵ２３は、変数ＣＡ，Ａ，Ｂ，Ｃ，ｍｉｎＸ，ｍｉｎＹ，ｍａｘＸ及びｍａｘＹをリセットして、ステップＳ３８５に進む。【０１８８】
図２１に戻って、ステップＳ３４９の詳細を説明する。【０１８９】
図２３は、図２１のステップＳ３４９の４端点検出処理の流れを示すフローチャートである。図２３を参照して、ステップＳ４０１にて、ＭＣＵ２３は、変数ｍｉｎＸの値と変数Ｘの値とを比較する。ステップＳ４０３にて、ＭＣＵ２３は、変数ｍｉｎＸの値が変数Ｘの値より大きい場合ステップＳ４０５に進み、それ以外はステップＳ４０７に進む。ステップＳ４０５にて、ＭＣＵ２３は、変数ｍｉｎＸに変数Ｘの値を代入する。【０１９０】
ステップＳ４０７にて、ＭＣＵ２３は、変数ｍａｘＸの値と変数Ｘの値とを比較する。ステップＳ４０９にて、ＭＣＵ２３は、変数ｍａｘＸの値が変数Ｘの値より小さい場合ステップＳ４１１に進み、それ以外はステップＳ４１３に進む。ステップＳ４１１にて、ＭＣＵ２３は、変数ｍａｘＸに変数Ｘの値を代入する。【０１９１】
ステップＳ４１３にて、ＭＣＵ２３は、変数ｍｉｎＹの値と変数Ｙの値とを比較する。ステップＳ４１５にて、ＭＣＵ２３は、変数ｍｉｎＹの値が変数Ｙの値より大きい場合ステップＳ４１７に進み、それ以外はステップＳ４１９に進む。ステップＳ４１７にて、ＭＣＵ２３は、変数ｍｉｎＹに変数Ｙの値を代入する。【０１９２】
ステップＳ４１９にて、ＭＣＵ２３は、変数ｍａｘＹの値と変数Ｙの値とを比較する。ステップＳ４２１にて、ＭＣＵ２３は、変数ｍａｘＹの値が変数Ｙの値より小さい場合ステップＳ４２３に進み、それ以外はリターンする。【０１９３】
図１８に戻って、ステップＳ１７７にて、ＭＣＵ２３は、変数ｍ，ｎ及びｋにそれぞれ０を代入する。ステップＳ１７９にて、ＭＣＵ２３は、変数Ｘに変数Ｈｎ[ｍ]の値を代入し、変数Ｙに変数Ｖｎ[ｎ]の値を代入する。ステップＳ１８１にて、ＭＣＵ２３は、差分画像の画素値Ｐ（Ｘ，Ｙ）と閾値Ｔｈｌとを比較する。ステップＳ１８３にて、ＭＣＵ２３は、画素値Ｐ（Ｘ，Ｙ）が閾値Ｔｈｌを超えている場合、ステップＳ１８５に進み、それ以外はステップＳ１８７に進む。【０１９４】
ステップＳ１８５にて、ＭＣＵ２３は、変数Ｈｃ[Ｘ][ｋ]及びＶｃ[Ｙ][ｋ]にそれぞれ１を代入する。一方、ステップＳ１８７にて、ＭＣＵ２３は、変数Ｈｃ[Ｘ][ｋ]の値が１の場合ステップＳ１９１へ進み、それ以外はステップＳ１８９に進む。ステップＳ１８９にて、ＭＣＵ２３は、変数Ｈｃ[Ｘ][ｋ]に０を代入する。ステップＳ１９１にて、ＭＣＵ２３は、変数Ｖｃ[Ｙ][ｋ]の値が１の場合ステップＳ１９５に進み、それ以外はステップＳ１９３に進む。ステップＳ１９３にて、ＭＣＵ２３は、変数Ｖｃ[Ｙ][ｋ]に０を代入する。【０１９５】
ステップＳ１９５にて、ＭＣＵ２３は、変数Ｘの値を１つインクリメントする。ステップＳ１９７にて、ＭＣＵ２３は、変数Ｘの値が変数Ｈｘ[ｍ]の値に１を加算した値に等しい場合ステップＳ１９９に進み、それ以外はステップＳ１８１に戻る。ステップＳ１９９にて、ＭＣＵ２３は、変数Ｘに変数Ｈｎ[ｍ]の値を代入する。ステップＳ２０１にて、ＭＣＵ２３は、変数Ｙの値を１つインクリメントする。ステップＳ２０３にて、ＭＣＵ２３は、変数Ｙの値が変数Ｖｘ[ｎ]に１を加算した値に等しい場合ステップＳ２０５に進み、それ以外はステップＳ１８１に戻る。【０１９６】
ステップＳ２０５にて、ＭＣＵ２３は、変数ｍの値が値Ｈｎに等しい場合ステップＳ２０９に進み、それ以外はステップＳ２０７に進む。ステップＳ２０７にて、ＭＣＵ２３は、変数ｍ及びｋのそれぞれの値を１つインクリメントしてステップＳ１７９に戻る。ステップＳ２０９にて、ＭＣＵ２３は、変数ｎの値が値Ｖｎに等しい場合図１８のステップＳ２１５に進み、それ以外はステップＳ２１１に進む。ステップＳ２１１にて、ＭＣＵ２３は、変数ｍに０を代入する。ステップＳ２１３にて、ＭＣＵ２３は、変数ｎ及びｋのそれぞれの値を１つインクリメントしてステップＳ１７９に戻る。【０１９７】
ステップＳ２１５では、ＭＣＵ２３は、変数Ｋに変数ｋの値を代入して、図１９のステップＳ２３１に進む。【０１９８】
以上のようにして、一次の各候補領域がスキャンされ、二次の候補領域を規定する配列Ｈｃ［Ｘ］［ｋ］及びＶｃ［Ｙ］［ｋ］に値が設定される（図５（ｂ）参照）。二次の候補領域は、例えば、図５（ｂ）では、領域ｂ０及びｂ１である。【０１９９】
図１９を参照して、ステップＳ２３１にて、ＭＣＵ２３は、変数ｐ，ｍ，ｋ，Ｈｍｘ[][]及びＨｍｎ[][]にそれぞれ０を代入する。ステップＳ２３３にて、ＭＣＵ２３は、変数Ｘに変数Ｈｎ[ｍ]の値を代入する。ステップＳ２３５にて、ＭＣＵ２３は、変数Ｈｃ[Ｘ][ｋ]の値が１の場合ステップＳ２３７に進み、それ以外はステップＳ２４３に進む。ステップＳ２３７にて、ＭＣＵ２３は、変数Ｈｃ[Ｘ−１][ｋ]の値が０の場合ステップＳ２３９に進み、それ以外はステップＳ２４１に進む。ステップＳ２３９にて、ＭＣＵ２３は、変数Ｈｍｎ[ｐ][ｋ]に変数Ｘの値を代入する。【０２００】
ステップＳ２４３にて、ＭＣＵ２３は、変数Ｈｃ[Ｘ−１][ｋ]の値が１の場合ステップＳ２４５に進み、それ以外はステップＳ２４１に進む。ステップＳ２４５にて、ＭＣＵ２３は、変数Ｈｍｘ[ｐ][ｋ]に変数Ｘの値を代入する。ステップＳ２４７にて、ＭＣＵ２３は、変数ｐの値を１つインクリメントする。【０２０１】
ステップＳ２４１にて、ＭＣＵ２３は、変数Ｘの値を１つインクリメントする。ステップＳ２４９にて、ＭＣＵ２３は、変数Ｘの値がＨｘ[ｍ]の値に１を加算した値に等しい場合ステップＳ２５１に進み、それ以外はステップＳ２３５に戻る。ステップＳ２５１にて、ＭＣＵ２３は、変数Ｍ[ｋ]に変数ｐの値から１を減算した値を代入する。【０２０２】
ステップＳ２５３にて、ＭＣＵ２３は、変数ｐに０を代入する。ステップＳ２５５にて、ＭＣＵ２３は、変数ｍの値が変数Ｈｍの値に等しい場合ステップＳ２５９に進み、それ以外はステップＳ２５７に進む。ステップＳ２５７にて、ＭＣＵ２３は、変数ｍ及びｋの値をそれぞれ１つインクリメントしてステップＳ２３３に戻る。一方、ステップＳ２５９では、ＭＣＵ２３は、変数ｋの値が変数Ｋの値に等しい場合図２０のステップＳ２８１に進み、それ以外はステップＳ２６１に進む。ステップＳ２６１にて、ＭＣＵ２３は、変数ｍに０を代入する。ステップＳ２６３にて、ＭＣＵ２３は、変数ｋを１つインクリメントしてステップＳ２３３に進む。【０２０３】
図１９の処理は、二次の候補領域に関し、「１」が格納された配列Ｈｃ[Ｘ][ｋ]の左端の要素番号Ｘ（Ｘ座標）、及び、「１」が格納された配列Ｈｃ[Ｘ][ｋ]の右端の要素番号Ｘ（Ｘ座標）を求める処理である。【０２０４】
図２０を参照して、ステップＳ２８１にて、ＭＣＵ２３は、変数ｒ，ｎ，ｍ，ｋ，Ｖｍｘ[][]及びＶｍｎ[][]にそれぞれ０を代入する。ステップＳ２８３にて、ＭＣＵ２３は、変数Ｙに変数Ｖｎ[ｎ]の値を代入する。ステップＳ２８５にて、ＭＣＵ２３は、変数Ｖｃ[Ｙ][ｋ]の値が１の場合ステップＳ２８７に進み、それ以外はステップＳ２９１に進む。ステップＳ２８７にて、ＭＣＵ２３は、変数Ｖｃ[Ｙ−１][ｋ]の値が０の場合ステップＳ２８９に進み、それ以外はステップＳ２９７に進む。ステップＳ２８９にて、ＭＣＵ２３は、変数Ｖｍｎ[ｒ][ｋ]に変数Ｙの値を代入する。【０２０５】
ステップＳ２９１にて、ＭＣＵ２３は、変数Ｖｃ[Ｙ−１][ｋ]の値が１の場合ステップＳ２９３に進み、それ以外はステップＳ２９７に進む。ステップＳ２９３にて、ＭＣＵ２３は、変数Ｖｍｘ[ｒ][ｋ]に変数Ｙの値を代入する。ステップＳ２９５にて、ＭＣＵ２３は、変数ｒの値を１つインクリメントする。【０２０６】
ステップＳ２９７にて、ＭＣＵ２３は、変数Ｙの値を１つインクリメントする。ステップＳ２９９にて、ＭＣＵ２３は、変数Ｙの値がＶｘ[ｎ]の値に１を加算した値に等しい場合ステップＳ３０１に進み、それ以外はステップＳ２８５に戻る。ステップＳ３０１にて、ＭＣＵ２３は、変数Ｎ[ｋ]に変数ｒの値から１を減算した値を代入する。【０２０７】
ステップＳ３０３にて、ＭＣＵ２３は、変数ｒに０を代入する。ステップＳ３０５にて、ＭＣＵ２３は、変数ｍの値が変数Ｈｍの値に等しい場合ステップＳ３０９に進み、それ以外はステップＳ３０７に進む。ステップＳ３０７にて、ＭＣＵ２３は、変数ｍ及びｋの値をそれぞれ１つインクリメントしてステップＳ２８３に戻る。一方、ステップＳ３０９では、ＭＣＵ２３は、変数ｋの値が変数Ｋの値に等しい場合ステップＳ３１１に進むみ、それ以外はステップＳ３１３に進む。ステップＳ３１３にて、ＭＣＵ２３は、変数ｍに０を代入する。ステップＳ３１５にて、ＭＣＵ２３は、変数ｋ及びｎをそれぞれ１つインクリメントしてステップＳ２８３に進む。【０２０８】
ステップＳ３１１では、ＭＣＵ２３は、変数Ｊに変数Ｋの値を代入して、図２１のステップＳ３３１に進む。【０２０９】
図２０の処理は、二次の候補領域に関し、「１」が格納された配列Ｖｃ[Ｙ]［ｋ］の上端の要素番号Ｙ（Ｙ座標）、及び、「１」が格納された配列Ｖｃ[Ｙ]［ｋ］の下端の要素番号Ｙ（Ｙ座標）を求める処理である。【０２１０】
以上により、一次の各候補領域がスキャンされ、二次の候補領域が決定される（図５（ｂ）参照）。【０２１１】
図２４は、図１４のステップＳ９のトリガ検出処理（剣３Ａ−Ｎに基づく）の流れを示すフローチャートである。図２４を参照して、ステップＳ４４１にて、ＭＣＵ２３は、トリガフラグをクリアする。トリガフラグには、発生したトリガの種類を示す情報が設定される。ステップＳ４４３にて、ＭＣＵ２３は、シールドトリガの検出処理を実行する。ステップＳ４４５にて、ＭＣＵ２３は、スペシャルトリガの検出処理を実行する。ステップＳ４４７にて、ＭＣＵ２３は、スイングトリガの検出処理を実行する。【０２１２】
図２５は、図２４のステップＳ４４３のシールドトリガ検出処理の流れを示すフローチャートである。図２５を参照して、ステップＳ４６１にて、ＭＣＵ２３は、再帰反射シートの面積Ｃ[０]と閾値Ｔｈａ１とを比較する。ステップＳ４６３にて、ＭＣＵ２３は、面積Ｃ[０]が閾値Ｔｈａ１より大きい場合、再帰反射シート４Ａが撮影されたと判断してステップＳ４６５に進み、それ以外はステップＳ４６７に進む。ステップＳ４６５にて、ＭＣＵ２３は、変数Ｑ０の値を１つインクリメントする。ステップＳ４６９にて、ＭＣＵ２３は、変数Ｑ０の値が５に等しい場合、つまり、５回連続して、再帰反射シート４Ａが撮影された場合、ステップＳ４７１に進み、それ以外はリターンする。一方、ステップＳ４６７では、ＭＣＵ２３は、変数Ｑ０，ΔＸ，ΔＹ及びｒのそれぞれに０を代入してリターンする。【０２１３】
ステップＳ４７１では、ＭＣＵ２３は、トリガフラグをシールドを示す値に設定する（シールドトリガが発生）。ステップＳ４７３にて、ＭＣＵ２３は、変数ΔＸにｍｘＸ[０]−ｍｎＸ[０]（つまり、候補領域の水平方向の辺長）を代入し、変数ΔＹにｍｘＹ[０]−ｍｎＹ[０]（つまり、候補領域の垂直方向の辺長）を代入する。ステップＳ４７５にて、ＭＣＵ２３は、比ｒを次式により求める。【０２１４】
ｒ←ΔＸ／ΔＹ【０２１５】
ステップＳ４７７にて、ＭＣＵ２３は、比ｒに基づいて、剣３Ａ−Ｎの傾きを傾きＢ０〜Ｂ２のいずれかに分類し、登録（格納）する。ステップＳ４７９にて、ＭＣＵ２３は、変数Ｑ０に０を代入してリターンする。【０２１６】
図２６及び図２７は、図２４のステップＳ４４５のスペシャルトリガ検出処理の流れを示すフローチャートである。図２６を参照して、ステップＳ５０１にて、ＭＣＵ２３は、第２フラグがオンの場合図２７のステップＳ５６１に進み、オフの場合ステップＳ５０３に進む。ステップＳ５０３にて、ＭＣＵ２３は、第１フラグがオンの場合ステップＳ５１１に進み、オフの場合ステップＳ５０５に進む。【０２１７】
ステップＳ５０５にて、ＭＣＵ２３は、前回及び今回においてトリガフラグがシールドに設定されている場合ステップＳ５０７に進み、それ以外はリターンする。ステップＳ５０７にて、ＭＣＵ２３は、第１フラグをオンにする。ステップＳ５０９にて、ＭＣＵ２３は、第１タイマをスタートして、リターンする。【０２１８】
ステップＳ５１１にて、ＭＣＵ２３は、第１タイマを参照して第１所定時間が経過した場合ステップＳ５４１に進み、それ以外はステップＳ５１３に進む。ステップＳ５１３では、ＭＣＵ２３は、再帰反射シート４の面積Ｃ[０]と閾値Ｔｈａ１とを比較する。ステップＳ５１５にて、ＭＣＵ２３は、面積Ｃ[０]が閾値Ｔｈａ１より大きい場合、再帰反射シート４Ａが検出されたと判断して、ステップＳ５１７に進み、それ以外はステップＳ５４３に進む。ステップＳ５１７にて、ＭＣＵ２３は、変数Ｑ１の値を１つインクリメントする。【０２１９】
ステップＳ５２３にて、ＭＣＵ２３は、変数Ｑ１の値が５に等しい場合、つまり、再帰反射シート４Ａが５回連続して検出された場合、ステップＳ５２５に進み、それ以外はリターンする。ステップＳ５２５にて、ＭＣＵ２３は、再帰反射シート４Ａの現在及び過去４つの像ＩＭ０〜ＩＭ４のＸＹ座標（Ｘｒ，Ｙｒ）に基づいて、速度ベクトルＶ０〜Ｖ３を算出する。ステップＳ５２７にて、ＭＣＵ２３は、速度ベクトルＶ０〜Ｖ３の各々を、方向Ａ０〜Ａ７のいずれかに分類する。ステップＳ５２９にて、ＭＣＵ２３は、全ての速度ベクトルＶ０〜Ｖ３が同一方向Ａ１に分類された場合ステップＳ５３１に進み、それ以外はリターンする。【０２２０】
ステップＳ５３１にて、ＭＣＵ２３は、速度ベクトルＶ０〜Ｖ３の各々の大きさを、閾値Ｔｈｖ２と比較する。ステップＳ５３５にて、全ての速度ベクトルＶ０〜Ｖ３の大きさが閾値Ｔｈｖ２より大きい場合ステップＳ５３７に進み、それ以外はリターンする。ステップＳ５３７では、ＭＣＵ２３は、第２フラグをオンにする。ステップＳ５３９にて、ＭＣＵ２３は、第２タイマをスタートしてリターンする。【０２２１】
ステップＳ５４１では、ＭＣＵ２３は、第１タイマ及び第１フラグをリセットする。ステップＳ５４３にて、ＭＣＵ２３は、変数Ｑ１に０を代入してリターンする。【０２２２】
図２７を参照して、ステップＳ５６１にて、ＭＣＵ２３は、第２タイマを参照して第２所定時間が経過した場合ステップＳ５７１に進み、それ以外はステップＳ５６３に進む。ステップＳ５７１では、ＭＣＵ２３は、第１タイマ、第２タイマ、第１フラグ及び第２フラグをリセットする。ステップＳ５７３では、ＭＣＵ２３は、変数Ｑ１及びＱ２のそれぞれに０を代入してリターンする。【０２２３】
一方、ステップＳ５６３では、ＭＣＵ２３は、再帰反射シート４の面積Ｃ[０]と閾値Ｔｈａ１とを比較する。ステップＳ５６５にて、ＭＣＵ２３は、面積Ｃ[０]が閾値Ｔｈａ１以下の場合、再帰反射シート４Ｂが検出されたと判断して、ステップＳ５６７に進み、それ以外はステップＳ５７３に進む。ステップＳ５６７にて、ＭＣＵ２３は、変数Ｑ２の値を１つインクリメントする。【０２２４】
ステップＳ５６９にて、ＭＣＵ２３は、変数Ｑ２の値が５に等しい場合、再帰反射シート４Ｂが連続して５回検出されたと判断して、ステップＳ５７５に進み、それ以外はリターンする。ステップＳ５７５にて、ＭＣＵ２３は、再帰反射シート４Ｂの現在及び過去４つの像ＩＭ０〜ＩＭ４のＸＹ座標（Ｘｒ，Ｙｒ）に基づいて、速度ベクトルＶ０〜Ｖ３を算出する。ステップＳ５７７にて、ＭＣＵ２３は、速度ベクトルＶ０〜Ｖ３の各々を、方向Ａ０〜Ａ７のいずれかに分類する。ステップＳ５７９にて、ＭＣＵ２３は、全ての速度ベクトルＶ０〜Ｖ３が同一方向Ａ０に分類された場合ステップＳ５８１に進み、それ以外はリターンする。【０２２５】
ステップＳ５８１にて、ＭＣＵ２３は、速度ベクトルＶ０〜Ｖ３の各々の大きさを、閾値Ｔｈｖ３と比較する。ステップＳ５８３にて、全ての速度ベクトルＶ０〜Ｖ３の大きさが閾値Ｔｈｖ３より大きい場合ステップＳ５８５に進み、それ以外はリターンする。ステップＳ５８５では、ＭＣＵ２３は、トリガフラグをスペシャルに設定する（スペシャルトリガの発生）。ステップＳ５８７にて、ＭＣＵ２３は、第１タイマ、第２タイマ、第１フラグ及び第２フラグをリセットする。ステップＳ５８９にて、ＭＣＵ２３は、変数Ｑ１及びＱ２にそれぞれ０を代入して、図１４のステップＳ１１に進む。【０２２６】
図２８は、図２４のステップＳ４４７のスイングトリガ検出処理の流れを示すフローチャートである。図２８を参照して、ステップＳ６０１では、ＭＣＵ２３は、再帰反射シートの面積Ｃ[０]と閾値Ｔｈａ１とを比較する。ステップＳ６０３にて、ＭＣＵ２３は、面積Ｃ[０]が閾値Ｔｈａ１以下の場合、再帰反射シート４Ｂが検出されたと判断して、ステップＳ６０５に進み、それ以外はステップＳ６３１に進む。ステップＳ６３１では、ＭＣＵ２３は、変数Ｑ３に０を代入してステップＳ６２７に進む。ステップＳ６０５にて、ＭＣＵ２３は、変数Ｑ３の値を１つインクリメントする。【０２２７】
ステップＳ６０７にて、ＭＣＵ２３は、変数Ｑ３の値が５に等しい場合、５回連続して、再帰反射シート４Ｂが撮影されたと判断して、ステップＳ６０９に進み、それ以外はステップＳ６２７に進む。ステップＳ６０９にて、ＭＣＵ２３は、再帰反射シート４Ｂの現在及び過去４つの像ＩＭ０〜ＩＭ４のＸＹ座標（Ｘｒ，Ｙｒ）に基づいて、速度ベクトルＶ０〜Ｖ３を算出する。ステップＳ６１１にて、ＭＣＵ２３は、速度ベクトルＶ０〜Ｖ３の各々を、方向Ａ０〜Ａ７のいずれかに分類する。ステップＳ６１３にて、ＭＣＵ２３は、全ての速度ベクトルＶ０〜Ｖ３が同一方向に分類された場合ステップＳ６１５に進み、それ以外はステップＳ６２７に進む。【０２２８】
ステップＳ６１５にて、ＭＣＵ２３は、速度ベクトルＶ０〜Ｖ３の方向を登録（格納）する。ステップＳ６１７にて、ＭＣＵ２３は、速度ベクトルＶ０〜Ｖ３の各々の大きさを、閾値Ｔｈｖ１と比較する。ステップＳ６１９にて、全ての速度ベクトルＶ０〜Ｖ３の大きさが閾値Ｔｈｖ１より大きい場合、剣３Ａ−Ｎが振られたと判断して、ステップＳ６２１に進み、それ以外はステップＳ６２７に進む。ステップＳ６２１では、ＭＣＵ２３は、トリガフラグをスイングに設定する（スイングトリガの発生）。ステップＳ６２３にて、ＭＣＵ２３は、５つの像ＩＭ０〜ＩＭ４のうち中央の像ＩＭ２のＸＹ座標に基づいて、スイング位置を求め、登録（格納）する。この場合、図９（ａ）〜図９（ｈ）に示すように、ＭＣＵ２３は、スイング方向Ａ０〜Ａ７ごとに、７つの位置のいずれかに、スイング位置を分類する。ステップＳ６２５にて、ＭＣＵ２３は、変数Ｑ３に０を代入する。【０２２９】
ステップＳ６２７にて、ＭＣＵ２３は、トリガフラグがシールドに設定されてない場合ステップＳ６２９に進み、シールドに設定されている場合リターンする。ステップＳ６２９では、ＭＣＵ２３は、トリガフラグに待機を設定してリターンする。【０２３０】
図２９及び図３０は、図１４のステップＳ９のトリガ検出処理（メイス３Ｂ−Ｎに基づく）の流れを示すフローチャートである。図２９を参照して、ＭＣＵ２３は、ステップＳ６５１とステップＳ６８３との間を、変数ｑを更新しながら繰り返す。ステップＳ６５３にて、ＭＣＵ２３は、第ｑフラグがオンの場合ステップＳ６８３に進み、オフの場合ステップＳ６５５に進む。ステップＳ６５５にて、ＭＣＵ２３は、第３タイマを参照して第３所定時間が経過した場合ステップＳ６５７に進み、それ以外はステップＳ６６１に進む。【０２３１】
ステップＳ６５７にて、ＭＣＵ２３は、第３タイマをリセットする。ステップＳ６５９にて、ＭＣＵ２３は、第１〜第８フラグをオフにし、かつ、変数Ｑ４に０を代入して、図３０のステップＳ７１５に進む。【０２３２】
ステップＳ６６１にて、ＭＣＵ２３は、面積Ｃ[０]が０より大きい場合、つまり、再帰反射シート４Ｃが検出された場合、ステップＳ６６５に進み、それ以外はステップＳ６６３に進む。ステップＳ６６３では、ＭＣＵ２３は、変数Ｑ４に０を代入して、図３０のステップＳ７１５に進む。【０２３３】
ステップＳ６６５では、ＭＣＵ２３は、変数Ｑ４を１つインクリメントする。ステップＳ６６７にて、ＭＣＵ２３は、変数Ｑ４の値が３に等しい場合、つまり、再帰反射シート４Ｃが連続して３回検出された場合、ステップＳ６６９に進み、それ以外は、図３０のステップＳ７１５に進む。【０２３４】
ステップＳ６６９にて、ＭＣＵ２３は、再帰反射シート４Ｃの現在及び過去２回の像ＩＭ０〜ＩＭ２のＸＹ座標（Ｘｒ，Ｙｒ）に基づいて、速度ベクトルＶ０及びＶ２を算出する。ステップＳ６７１にて、ＭＣＵ２３は、速度ベクトルＶ０及びＶ２の各々を、方向Ａ０〜Ａ７のいずれかに分類する。ステップＳ６７３にて、ＭＣＵ２３は、全ての速度ベクトルＶ０及びＶ１が同一方向ＳＤに分類された場合ステップＳ６７５に進み、それ以外は、図３０のステップＳ７１５に進む。【０２３５】
なお、方向ＳＤには、ｑ＝１〜９に対して、それぞれ、方向Ａ２，Ａ７，Ａ０，Ａ５，Ａ３，Ａ６，Ａ１，Ａ４及びＡ２が割り当てられる。【０２３６】
ステップＳ６７５にて、ＭＣＵ２３は、第ｑフラグをオンする。ステップＳ６７７にて、ＭＣＵ２３は、変数Ｑ４に０を代入する。ステップＳ６７９にて、ＭＣＵ２３は、変数ｑの値が１の場合第３タイマをスタートするためステップＳ６８１に進み、それ以外は、図３０のステップＳ７１５に進む。ステップＳ６８１にて、ＭＣＵ２３は、第３タイマをスタートして、図３０のステップＳ７１５に進む。【０２３７】
図３０を参照して、ステップＳ７０１にて、ＭＣＵ２３は、第９フラグがオンの場合ステップＳ７１７に進み、オフの場合ステップＳ７０３に進む。ステップＳ７０３では、ＭＣＵ２３は、第１フラグ〜第９フラグをオンにした再帰反射シート４Ｃの９つの像のＸ座標Ｘｒのうちの最大座標Ｘ１と最小座標Ｘ０との差ΔＸと、当該９つの像のＹ座標Ｙｒのうちの最大座標Ｙ１と最小座標Ｙ０との差ΔＹと、を算出する（図１１（ａ）参照）。【０２３８】
ステップＳ７０５にて、ＭＣＵ２３は、変数ｓに、ΔＸ＋ΔＹを代入する。ステップＳ７０７にて、ＭＣＵ２３は、変数ｓの値が一定値を超えている場合ステップＳ７０９に進み、それ以外はステップＳ７１３に進む。ステップＳ７１３にて、ＭＣＵ２３は、第１〜第９フラグをオフにし、かつ、変数Ｑ４及びＱ５のそれぞれに０を代入し、かつ、第３タイマをリセットする。【０２３９】
ステップＳ７０９にて、ＭＣＵ２３は、第１０フラグをオンにする。ステップＳ７１１にて、第４タイマをスタートして、ステップＳ７１５に進む。ステップＳ７１５では、ＭＣＵ２３は、トリガフラグを待機に設定してリターンする。【０２４０】
ステップＳ７１７では、ＭＣＵ２３は、第１０フラグがオンの場合ステップＳ７１９に進み、オフの場合ステップＳ７３９に進む。ステップＳ７１９では、ＭＣＵ２３は、面積Ｃ[０]と閾値Ｔｈａ１とを比較する。ステップＳ５６５にて、ＭＣＵ２３は、面積Ｃ[０]が０より大きい場合、つまり、再帰反射シート４Ｃが撮影された場合、ステップＳ７２１に進み、それ以外はステップＳ７４２に進む。ステップＳ７４２では、ＭＣＵ２３は、変数Ｑ５に０を代入する。一方、ステップＳ７２１にて、ＭＣＵ２３は、変数Ｑ５の値を１つインクリメントする。【０２４１】
ステップＳ７２３にて、ＭＣＵ２３は、変数Ｑ５の値が３に等しい場合、つまり、再帰反射シート４Ｃが連続して３回検出された場合、ステップＳ７２５に進み、それ以外はステップＳ７１５に進む。ステップＳ７２５にて、ＭＣＵ２３は、再帰反射シート４Ｃの現在及び過去２回の像ＩＭ０〜ＩＭ２のＸＹ座標（Ｘｒ，Ｙｒ）に基づいて、速度ベクトルＶ０及びＶ１を算出する。ステップＳ７２７にて、ＭＣＵ２３は、速度ベクトルＶ０及びＶ１の各々を、方向Ａ０〜Ａ７のいずれかに分類する。ステップＳ７２９にて、ＭＣＵ２３は、全ての速度ベクトルＶ０及びＶ１が同一方向Ａ０に分類された場合ステップＳ７３１に進み、それ以外はステップＳ７１５に進む。【０２４２】
ステップＳ７３１にて、ＭＣＵ２３は、速度ベクトルＶ０及びＶ１の各々の大きさを、閾値Ｔｈｖ４と比較する。ステップＳ７３３にて、全ての速度ベクトルＶ０及びＶ１の大きさが閾値Ｔｈｖ４より大きい場合ステップＳ７３５に進み、それ以外はステップＳ７１５に進む。ステップＳ７３５では、ＭＣＵ２３は、トリガフラグをスペシャルに設定する（スペシャルトリガの発生）。ステップＳ７３７にて、ＭＣＵ２３は、第１〜第１０フラグをオフにし、かつ、変数Ｑ４及びＱ５にそれぞれ０を代入し、かつ、第３及び第４タイマをリセットしてリターンする。【０２４３】
ステップＳ７３９では、ＭＣＵ２３は、第４タイマを参照して、第４所定時間が経過した場合ステップＳ７４１に進み、それ以外はステップＳ７１５に進む。ステップＳ７４１では、ＭＣＵ２３は、第１〜第９フラグをオフにし、かつ、変数Ｑ４及びＱ５にそれぞれ０を代入し、かつ、第３及び第４タイマをリセットしてステップＳ７１５に進む。【０２４４】
図３１は、図１４のステップＳ９のトリガ検出処理（クロスボウ３Ｃ−Ｎに基づく）の流れを示すフローチャートである。図３１を参照して、ステップＳ７６１にて、ＭＣＵ２３は、差分画像に写り込んだ再帰反射シートの数を示す変数ＳＮの値が１の場合、再帰反射シート４Ｇが撮影された可能性があると判断して、ステップＳ７６３に進み、それ以外はステップＳ７６７に進む。ステップＳ７６３では、ＭＣＵ２３は、後述の変数Ｑ６及びＱ７のそれぞれに０を代入する。ステップＳ７６５にて、ＭＣＵ２３は、チャージトリガの検出処理を実行してリターンする。【０２４５】
ステップＳ７６７にて、ＭＣＵ２３は、変数ＳＮの値が２の場合、再帰反射シート４Ｅ及び４Ｆが撮影されたと判断して、ステップＳ７６９に進み、それ以外はステップＳ７７３に進む。ステップＳ７６９では、ＭＣＵ２３は、シールドトリガの検出処理を実行する。ステップＳ７７１では、ＭＣＵ２３は、スイッチトリガの検出処理を実行してリターンする。【０２４６】
ステップＳ７７３では、ＭＣＵ２３は、変数Ｑ６及びＱ７にそれぞれ０を代入する。ステップＳ７７５にて、ＭＣＵ２３は、変数ＳＮの値が３の場合、再帰反射シート４Ｄ，４Ｅ及び４Ｆが撮影されたと判断して、ステップＳ７７７に進み、それ以外はステップＳ７７９に進む。ステップＳ７７７にて、ＭＣＵ２３は、シューティングトリガの検出処理を実行してリターンする。ステップＳ７７９では、ＭＣＵ２３は、トリガフラグを待機に設定してリターンする。【０２４７】
図３２は、図３１のステップＳ７６５のチャージトリガ検出処理の流れを示すフローチャートである。図３２を参照して、ステップＳ８０１にて、再帰反射シートの面積Ｃ[０]と閾値Ｔｈａ２とを比較する。ステップＳ８０３にて、ＭＣＵ２３は、面積Ｃ[０]がＴｈａ２より大きい場合、再帰反射シート４Ｇが撮影されたと判断して、ステップＳ８０５に進み、それ以外はステップＳ８０７に進む。ステップＳ８０５にて、ＭＣＵ２３は、トリガフラグをチャージに設定して（チャージトリガの発生）リターンする。ステップＳ８０７にて、ＭＣＵ２３は、トリガフラグを待機に設定してリターンする。【０２４８】
図３３は、図３１のステップＳ７６９のシールドトリガ検出処理の流れを示すフローチャートである。図３３を参照して、ステップＳ８２１にて、ＭＣＵ２３は、再帰反射シート４Ｅ及び４Ｆが撮影されたと判断して、それらのＸＹ座標（Ｘｒ，Ｙｒ）に基づいて、それらを結ぶ直線の傾きＴ１を算出する。ステップＳ８２３にて、ＭＣＵ２３は、それらのＸＹ座標（Ｘｒ，Ｙｒ）の中点を算出して、登録（格納）する。ステップＳ８２５にて、ＭＣＵ２３は、傾きＴ１が一定値より大きい場合ステップＳ８２７に進み、それ以外はリターンする。ステップＳ８２７にて、ＭＣＵ２３は、トリガフラグをシールドに設定して（シールドトリガの発生）、図１４のステップＳ１１に進む。【０２４９】
図３４は、図３１のステップＳ７７１のスイッチトリガ検出処理の流れを示すフローチャートである。図３４を参照して、ステップＳ８５１にて、ＭＣＵ２３は、再帰反射シート４Ｅ及び４Ｆが撮影されたと判断して、それらのＸＹ座標（Ｘｒ，Ｙｒ）の中点を算出し、登録（格納）する。ステップＳ８５３にて、ＭＣＵ２３は、所定フラグがオンの場合ステップＳ８７３に進み、オフの場合ステップＳ８５５に進む。【０２５０】
ステップＳ８５５にて、ＭＣＵ２３は、変数Ｑ６の値を１つインクリメントする。ステップＳ８５７にて、ＭＣＵ２３は、変数Ｑ６の値が５の場合ステップＳ８５９に進み、それ以外はステップＳ８７１に進む。ステップＳ８５９にて、ＭＣＵ２３は、ステップＳ８５１で求めた中点に基づいて、４つの速度ベクトルを算出する。ステップＳ８６１にて、ＭＣＵ２３は、４つの速度ベクトルの各々を方向Ａ０〜Ａ７のいずれかに分類する。ステップＳ８６３にて、ＭＣＵ２３は、全ての速度ベクトルが方向Ａ１に分類された場合ステップＳ８６５に進み、それ以外はステップＳ８７１に進む。【０２５１】
ステップＳ８６５にて、ＭＣＵ２３は、全ての速度ベクトルの大きさが閾値Ｔｈｖ５より大きい場合ステップＳ８６７に進み、それ以外はステップＳ８７１に進む。ステップＳ８６７にて、ＭＣＵ２３は、所定フラグをオンにする。ステップＳ８６９にて、ＭＣＵ２３は、第５タイマをスタートしてステップＳ８７１に進む。ステップＳ８７１では、ＭＣＵ２３は、トリガフラグを待機に設定してリターンする。【０２５２】
ステップＳ８７３にて、ＭＣＵ２３は、第５タイマを参照して第５所定時間が経過した場合ステップＳ８９１に進み、それ以外はステップＳ８７５に進む。ステップＳ８９１にて、ＭＣＵ２３は、変数Ｑ６及びＱ７のそれぞれに０を代入し、かつ、所定フラグをオフにし、かつ、第５タイマをリセットしてステップＳ８７１に進む。【０２５３】
ステップＳ８７５にて、ＭＣＵ２３は、変数Ｑ７の値を１つインクリメントする。ステップＳ８７７にて、ＭＣＵ２３は、変数Ｑ７の値が５の場合ステップＳ８７９に進み、それ以外はステップＳ８７１に進む。ステップＳ８７９にて、ＭＣＵ２３は、ステップＳ８５１で求めた中点に基づいて、４つの速度ベクトルを算出する。ステップＳ８８１にて、ＭＣＵ２３は、４つの速度ベクトルの各々を方向Ａ０〜Ａ７のいずれかに分類する。ステップＳ８６３にて、ＭＣＵ２３は、全ての速度ベクトルが方向Ａ０に分類された場合ステップＳ８８５に進み、それ以外はステップＳ８７１に進む。ステップＳ８８５にて、ＭＣＵ２３は、全ての速度ベクトルの大きさが閾値Ｔｈｖ６より大きい場合ステップＳ８８７に進み、それ以外はステップＳ８７１に進む。ステップＳ８８７にて、ＭＣＵ２３は、トリガフラグをスイッチに設定する（スイッチトリガの発生）。ステップＳ８８９にて、ＭＣＵ２３は、変数Ｑ６及びＱ７のそれぞれに０を代入し、かつ、所定フラグをオフにし、かつ、第５タイマをリセットしてリターンする。【０２５４】
図３５は、図３１のステップＳ７７７のシューティングトリガ検出処理の流れを示すフローチャートである。図３５を参照して、ステップＳ９１１にて、ＭＣＵ２３は、再帰反射シート４Ｅ及び４Ｆの中点座標を算出し、登録（格納）する。ステップＳ９１３にて、ＭＣＵ２３は、３つの再帰反射シート４Ｄ，４Ｅ及び４Ｆの面積Ｃ［０］，Ｃ［１］及びＣ［２］の差｜Ｃ［０］−Ｃ［１］｜，｜Ｃ［１］−Ｃ［２］｜及び｜Ｃ［２］−Ｃ［０］｜を求める。【０２５５】
ステップＳ９１５にて、ＭＣＵ２３は、面積の差が最小の２つの再帰反射シートの面積の平均値を算出する。ステップＳ９１７にて、ＭＣＵ２３は、ステップＳ９１５で算出した平均値と、最大面積の再帰反射シートの面積と、の差を算出する。ステップＳ９１９にて、ＭＣＵ２３は、ステップＳ９１７で算出した差が一定値より大きい場合、面積が一番大きい再帰反射シートが再帰反射シート４Ｇであると判断して、ステップＳ９２１に進み、それ以外はステップＳ９２３に進む。ステップＳ９２１では、ＭＣＵ２３は、トリガフラグをチャージに設定してリターンする（チャージトリガの発生）。ステップＳ９２３にて、ＭＣＵ２３は、再帰反射シート４Ｅ及び４Ｆがシールドトリガの生成条件を満足しているか否かをチェックする。【０２５６】
ステップＳ９２５にて、ＭＣＵ２３は、シールドトリガの生成条件を満足している場合ステップＳ９２７に進み、それ以外はステップＳ９２９に進む。ステップＳ９２７では、ＭＣＵ２３は、トリガフラグをシールドに設定してリターンする（シールドトリガの発生）。【０２５７】
ステップＳ９２９にて、ＭＣＵ２３は、前回に検出された２つの再帰反射シートが再帰反射シート４Ｅ及び４Ｆの場合ステップＳ９３１に進み、それ以外はステップＳ９３３に進む。ステップＳ９３１にて、ＭＣＵ２３は、トリガフラグをシューティングに設定してリターンする（シューティングトリガの発生）。ステップＳ９３３では、ＭＣＵ２３は、トリガフラグを待機に設定してリターンする。【０２５８】
さて、以上のように、本実施の形態では、カメラユニット１−Ｎから端末５−Ｎに与えられるのは、従来と異なり、撮像画像ではなく、その解析結果である操作物３−Ｎによる入力情報（操作物３−Ｎ（再帰反射シート４）の状態情報）、つまり、ユーザの入力情報である。従って、カメラユニット１−Ｎを入力装置として利用する場合でも、ゲームプログラマーにとって、撮像画像を解析するプログラムの作成は不要であり、カメラユニット１−Ｎを、一般的な入力装置であるキーボード等と同様に扱うことができる。その結果、ゲームプログラマーにとって、入力装置として使い易いカメラユニット１を提供できる。ひいては、操作物３−Ｎを三次元空間中で動かすといったダイナミックな動きを入力としたオンラインゲーム（体感型のオンラインゲーム）を簡易に実現できる。【０２５９】
また、カメラユニット１−Ｎは、端末５−Ｎに、操作物３−Ｎ、つまり、再帰反射シート４の状態情報、例えば、ＸＹ座標（Ｘｒ，Ｙｒ）及び面積情報を与える。従って、端末５−Ｎは、操作物３−Ｎの状態情報に基づく処理を実行できる。例えば、端末５は、操作物３−ＮのＸＹ座標（Ｘｒ，Ｙｒ）に対応するモニタ７上の位置にカーソルを表示する。【０２６０】
さらに、カメラユニット１−Ｎは、操作物３−Ｎ、つまり、再帰反射シート４の状態情報をコマンドとして端末５−Ｎに与える。従って、端末５−Ｎは、操作物３−Ｎの状態情報に対応したコマンドに基づく処理を実行できる。例えば、カメラユニット１から端末５へのコマンドは、スイングトリガ（動き情報）、シールドトリガ（剣３Ａ−Ｎは面積情報、クロスボウ３Ｃ−Ｎは配置情報）、スペシャルトリガ（剣３Ａ−Ｎは面積情報・動き情報、メイス３Ｂ−Ｎは動き情報）、チャージトリガ（面積情報）、スイッチトリガ（動き情報）及びシューティングトリガ（数情報）である。【０２６１】
例えば、端末５−Ｎは、スイングトリガに応じて、モニタ７に剣軌跡を表示する。例えば、端末５−Ｎは、シールドトリガに応じて、モニタ７に盾画像を表示する。例えば、端末５−Ｎは、剣３Ａ−Ｎによるスペシャルトリガに応じて、モニタ７に第１所定エフェクトを表示する。例えば、端末５−Ｎは、メイス３Ｂ−Ｎによるスペシャルトリガに応じて、モニタ７に第２所定エフェクトを表示する。例えば、端末５−Ｎは、チャージトリガに応じて、ゲームキャラクタのエネルギーをチャージする。例えば、端末５−Ｎは、スイッチトリガに応じて、矢の発射モード（連射、単発）を切り替える。例えば、端末５−Ｎは、シューティングトリガに応じて、モニタ７上で矢を発射する。【０２６２】
また、本実施の形態では、再帰反射シート４が３を超える場合でも、それらの状態情報を求めることができる一方、再帰反射シート４が１又は２の場合は、図１８〜図２０の処理（二次の候補領域を決定する処理）を省くことができ、処理負荷を軽減できる。
【産業上の利用可能性】
【０２６３】
ユーザインタフェースとして広く利用可能である。例えば、人間の身体の動きを入力とするビデオゲーム等に利用可能である。【０２６４】
なお、本発明は、上記の実施の形態に限られるものではなく、その要旨を逸脱しない範囲で種々の態様において実施することが可能であり、例えば、以下のような変形も可能である。【０２６５】
（１）上記では、オンラインゲームにカメラユニット１を適用したが、オフラインゲーム、つまり、スタンドアローンタイプのゲームに使用することもできる。【０２６６】
（２）上記では、ホストコンピュータ３１を介してオンラインゲームを提供したが、ホストコンピュータ３１を介することなく、端末５−Ｎ同士で状態情報を直接送受信して、オンラインゲームを行うこともできる。【０２６７】
（３）上記のクロスボウ３Ｃ−Ｎでは、トリガ５１を引いた時に蓋４９が開く構成とした。ただし、トリガ５１を引かない時に蓋４９が開いており、トリガ５１を引いた時に蓋４９が閉じるように構成することもできる。【０２６８】
（４）操作物に、第１再帰反射シート及び第２再帰反射シートと、第１再帰反射シートと第２再帰反射シートとの間で、露光及び非露光状態が逆になるように、第１再帰反射シート及び第２再帰反射シートの状態を切り替える切替手段と、を設けることができる。【０２６９】
この場合、第１再帰反射シートと第２再帰反射シートとは、露光及び非露光状態が互いに逆になるので、それぞれの撮像画像に基づいて、操作物による入力の有無及び／又は入力の形態を検出できる。また、第１再帰反射シートと第２再帰反射シートとの間の露光及び非露光の切り替えに基づいて、操作物による入力の有無及び／又は入力の形態を検出することもできる。【０２７０】
（５）上記では、ストロボスコープ（赤外発光ダイオード１１の点滅）を用い、差分画像ＤＩを生成して、再帰反射シート４を検出した。ただし、これは、好適な例を示しただけであって、本発明に必須の要素ではない。つまり、赤外発光ダイオード１１は、点滅させなくてもよいし、また、赤外発光ダイオード１１がなくてもよい。照射する光は赤外光に限られない。また、再帰反射シート４は本発明に必須の要素ではなく、撮像画像を解析して、操作物３−Ｎが検知できればよい。撮像素子は、イメージセンサに限られず、ＣＣＤなどの他の撮像素子を使用できる。【０２７１】
以上、本発明を実施例により詳細に説明したが、当業者にとっては、本発明が本願中に説明した実施例に限定されるものではないということは明らかである。本発明は、特許請求の範囲の記載により定まる本発明の趣旨及び範囲を逸脱することなく修正及び変更態様として実施することができる。
【図１】
2009093461.tif 000004
【図２】
2009093461.tif 000005
【図３】
2009093461.tif 000006
【図４】
2009093461.tif 000007
【図５】
2009093461.tif 000008
【図６】
2009093461.tif 000009
【図７】
2009093461.tif 000010
【図８】
2009093461.tif 000011
【図９】
2009093461.tif 000012
【図１０】
2009093461.tif 000013
【図１１】
2009093461.tif 000014
【図１２】
2009093461.tif 000015
【図１３】
2009093461.tif 000016
【図１４】
2009093461.tif 000017
【図１５】
2009093461.tif 000018
【図１６】
2009093461.tif 000019
【図１７】
2009093461.tif 000020
【図１８】
2009093461.tif 000021
【図１９】
2009093461.tif 000022
【図２０】
2009093461.tif 000023
【図２１】
2009093461.tif 000024
【図２２】
2009093461.tif 000025
【図２３】
2009093461.tif 000026
【図２４】
2009093461.tif 000027
【図２５】
2009093461.tif 000028
【図２６】
2009093461.tif 000029
【図２７】
2009093461.tif 000030
【図２８】
2009093461.tif 000031
【図２９】
2009093461.tif 000032
【図３０】
2009093461.tif 000033
【図３１】
2009093461.tif 000034
【図３２】
2009093461.tif 000035
【図３３】
2009093461.tif 000036
【図３４】
2009093461.tif 000037
【図３５】
2009093461.tif 000038
【国際調査報告】
2009093461.tif 000039
2009093461.tif 000040
2009093461.tif 000041
2009093461.tif 000042
2009093461.tif 000043