(57)【特許請求の範囲】
【請求項１】
ラスタ走査型のモニタにシューティング画面を表示するゲーム機と連動し、プレイヤのトリガ操作に基づいて前記ゲーム機に着弾点を指示するシューティングゲーム用コントローラであって、
モニタ画面よりも広い範囲の第１領域の光を検出する第１光センサ、
前記モニタ画面上の着弾点位置を含む狭い範囲の第２領域の光を検出する第２光センサ、
トリガ操作に応答してフラッシュ画面表示要求を前記ゲーム機に送信する第１送信手段、
前記フラッシュ画面表示要求に基づいて前記モニタにフラッシュ画面が描画されるとき、前記第１光センサの出力の時系列変化に基づいて前記フラッシュ画面の描画が開始される第１タイミングを検出する第１検出手段、
前記フラッシュ画面が描画されるとき、前記第２光センサの出力の時系列変化に基づいて前記着弾点位置が明るくなる第２タイミングを検出する第２検出手段、
前記第１タイミングと前記第２タイミングとに基づいて前記着弾点位置の位置情報を作成する作成手段、および
前記位置情報を前記ゲーム機に送信する第２送信手段を備えることを特徴とする、シューティングゲーム用コントローラ。
【請求項２】
前記第１検出手段は、前記第１光センサの出力の時系列変化の中から、前記モニタの垂直ブランキング期間に相当する期間にわたる低輝度を検出し、その後に１ライン分の水平走査期間に相当する期間にわたる高輝度を検出したとき、前記水平走査期間に相当する高輝度の期間の開始時点を前記第１タイミングとして検出する、請求項１記載のシューティングゲーム用コントローラ。
【請求項３】
前記第１光センサの出力をサンプリングする第１サンプリング手段、および前記第２光センサの出力をサンプリングする第２サンプリング手段をさらに備え、
前記第１検出手段は、前記第１サンプリング手段のサンプリング結果が垂直ブランキング期間に相当する期間にわたって低輝度を示し、その後に１ライン分の水平走査期間に相当する期間にわたって高輝度を示すとき、前記水平走査期間に相当する期間の開始時点を前記第１タイミングに決定する第１決定手段を含み、
前記第２検出手段は、前記第２サンプリング手段のサンプリング結果が低輝度から高輝度に変化したときの当該変化時点を前記第２タイミングに決定する第２決定手段を含む、請求項１または２記載のシューティングゲーム用コントローラ。
【請求項４】
前記トリガ操作に応答してカウントを開始するカウンタをさらに備え、
前記作成手段は、前記第１タイミングにおける前記カウンタの第１カウント値と前記第２タイミングにおける前記カウンタの第２カウント値とに基づいて前記位置情報を作成する、請求項１ないし３のいずれかに記載のシューティングゲーム用コントローラ。
【請求項５】
前記第１領域よりも広い範囲の第３領域の光を検出する第３光センサ、および
前記第１タイミングを前記第３光センサの出力に基づいて検出する第３検出手段をさらに備える、請求項１ないし４のいずれかに記載のシューティングゲーム用コントローラ。
【請求項６】
前記第１検出手段によって検出された第１タイミングを前記第３検出手段によって検出された第１タイミングに優先して有効化する有効化手段をさらに備え、
前記作成手段は前記有効化手段によって有効化された第１タイミングと前記第２タイミングとに基づいて前記位置情報を作成する、請求項５記載のシューティングゲーム用コントローラ。
【請求項７】
前記第１送信手段および前記第２送信手段はそれぞれ無線通信方式によって送信する、請求項１ないし６のいずれかに記載のシューティングゲーム用コントローラ。
【請求項８】
ラスタ走査型のモニタにゲーム機によってシューティング画面が表示され、プレイヤのトリガ操作に基づいて着弾点に相当する指示位置が指示されたとき、その指示位置を検出する指示位置検出方法であって、
シューティングゲーム用コントローラのプロセッサは、
モニタ画面よりも広い範囲の第１領域の光を検出し、
前記モニタ画面上の前記指示位置を含む狭い範囲の第２領域の光を検出し、
トリガ操作に応答してフラッシュ画面表示要求を前記ゲーム機に送信し、
前記フラッシュ画面表示要求に基づいて前記モニタにフラッシュ画面が描画されるとき、前記第１領域の光の時系列変化に基づいて前記フラッシュ画面の描画が開始される第１タイミングを検出し、
前記第２領域の光の時系列変化に基づいて前記指示位置が明るくなる第２タイミングを検出し、そして
前記第１タイミングと前記第２タイミングとに基づいて前記指示位置の位置情報を検出する、指示位置検出方法。
【請求項９】
ラスタ走査型のモニタの画面上で所望の位置が指示されるとき、その指示位置を検出する指示位置検出方法であって、
シューティングゲーム用コントローラのプロセッサは、
モニタ画面よりも広い範囲の第１領域の光を検出し、
前記モニタ画面上の前記指示位置を含む狭い範囲の第２領域の光を検出し、
前記所望の位置が指示され、前記モニタにフラッシュ画面が描画されるとき、前記第１領域の光の時系列変化に基づいて前記フラッシュ画面の描画が開始される第１タイミングを検出し、
前記第２領域の光の時系列変化に基づいて前記指示位置が明るくなる第２タイミングを検出し、そして
前記第１タイミングと前記第２タイミングとに基づいて前記指示位置の位置情報を検出する、指示位置検出方法。
【請求項１０】
前記第１タイミングの検出は、前記第１領域の光の時系列変化の中から、前記モニタの垂直ブランキング期間に相当する期間にわたる低輝度を検出し、その後に１ライン分の水平走査期間に相当する期間にわたる高輝度を検出したとき、前記水平走査期間に相当する高輝度の期間の開始時点を前記第１タイミングとして検出する、請求項８または９記載の指示位置検出方法。
【請求項１１】
前記シューティングゲーム用コントローラのプロセッサは、
さらに、前記第１領域より広い範囲の第３領域の光を検出し、
前記所望の位置が指示され、前記モニタにフラッシュ画面が描画されるとき、前記第３領域の光の時系列変化に基づいて前記フラッシュ画面の描画が開始される第１タイミングを検出し、
前記第１領域の光によって検出された第１タイミングを、前記第３領域の光によって検出された第１タイミングに優先して有効化し、
前記位置情報の検出は、前記有効化された第１タイミングと前記第２タイミングとに基づいて位置情報を検出する、請求項８ないし１０のいずれかに記載の指示位置検出方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は、シューティングゲーム用コントローラおよびその指示位置検出方法に関し、特にたとえば、ラスタ走査型のディスプレイにシューティング画面を表示するゲーム機と連動し、プレイヤによってトリガ操作が行われたときゲーム機に着弾点を指定する、シューティングゲーム用コントローラおよびその指示位置検出方法に関する。
【０００２】
【従来の技術】
従来のこの種のシューティングゲーム用コントローラの一例が、平成９年８月２２日付けで登録された特許第２６８６６７５号に開示されている。この従来技術は、トリガ操作が行われたときにラスタ走査方式のＣＲＴにフラッシュ画面を表示し、ガン模型の光センサが捕らえている位置（着弾位置）に出現したラスタ光を当該光センサによって検知し、光センサからの検知信号に基づいて着弾位置のＸＹ座標値を算出しようとするものである。
【０００３】
【発明が解決しようとする課題】
しかし、この従来技術では、ＸＹ座標値の算出はゲーム機側で行われるため、ガン模型の光センサとゲーム機との間の通信状態が悪い場合、特に無線通信の場合には、データ転送中に混信などが起こり、同一データを再送信する必要がある。つまり、同期転送できないため、検知信号の転送に遅延が生じてしまう。したがって、着弾点がプレイヤの狙った位置から外れてしまうという問題があり、ゲーム性を損ねていた。
【０００４】
このような問題を解決したシューティングゲーム用コントローラの一例が、平成１１年１１月２４日付けで出願公開された特開平１１−３１９３１６号公報［Ａ６３Ｆ  ９／２２］に開示されている。この従来技術では、モニタ画面に枠を含む画像が表示され、銃型コントローラによりモニタ画面に対して位置を指示しながら、モニタ画面に表示される画像が撮像される。すると、撮像された画像から枠が検出され、撮像された画像内の枠の位置に基づいて指示した位置（指示位置）が決定され、その指示位置（座標値）がゲーム装置に出力される。
【０００５】
この従来技術では、正確な指示位置すなわち着弾位置をゲーム装置に指示することができるが、人工網膜ユニットのような撮像手段を設けるため、装置自体が高価である。また、撮像されたゲーム画面に所定の画像処理が施され、指示位置が決定されるため、その画像処理をゲームの進行に違和感や不快感を与えないように実行するためには、処理能力の高い演算装置を用いる必要があり、これも高価の要因になっていた。さらに、プレイヤが所定距離より近づいた場合に、人口網膜ユニットで捕らえることができる領域がモニタ画面、特に画像内の枠より小さくなると、画像内の枠を撮像できないために、正確な指示位置を出力できないという問題も生じる。
【０００６】
それゆえに、この発明の主たる目的は、安価な構成で正確な着弾点もしくは指示位置を指示することができる、シューティングゲーム用コントローラおよび指示位置検出方法を提供することである。
【０００７】
この発明の他の目的は、ラスタ走査型のモニタに近づきすぎても着弾位置を検出することができる、シューティングゲーム用コントローラおよび指示位置検出方法を提供することである。
【０００８】
【課題を解決するための手段】
第１の発明は、ラスタ走査型のモニタにシューティング画面を表示するゲーム機と連動し、プレイヤのトリガ操作に基づいてゲーム機に着弾点を指示するシューティングゲーム用コントローラであって、モニタ画面よりも広い範囲の第１領域の光を検出する第１光センサ、モニタ画面上の着弾点位置を含む狭い範囲の第２領域の光を検出する第２光センサ、トリガ操作に応答してフラッシュ画面表示要求をゲーム機に送信する第１送信手段、フラッシュ画面表示要求に基づいてモニタにフラッシュ画面が描画されるとき、第１光センサの出力の時系列変化に基づいてフラッシュ画面の描画が開始される第１タイミングを検出する第１検出手段、フラッシュ画面が描画されるとき、第２光センサの出力の時系列変化に基づいて着弾点位置が明るくなる第２タイミングを検出する第２検出手段、第１タイミングと第２タイミングとに基づいて着弾点位置の位置情報を作成する作成手段、および位置情報をゲーム機に送信する第２送信手段を備えることを特徴とする、シューティングゲーム用コントローラである。
【０００９】
第２の発明は、ラスタ走査型のモニタにゲーム機によってシューティング画面が表示され、プレイヤのトリガ操作に基づいて着弾点に相当する指示位置が指示されたとき、その指示位置を検出する指示位置検出方法であって、モニタ画面よりも広い範囲の第１領域の光を検出し、モニタ画面上の指示位置を含む狭い範囲の第２領域の光を検出し、トリガ操作に応答してフラッシュ画面表示要求をゲーム機に送信し、フラッシュ画面表示要求に基づいてモニタにフラッシュ画面が描画されるとき、第１領域の光の時系列変化に基づいてフラッシュ画面の描画が開始される第１タイミングを検出し、第２領域の光の時系列変化に基づいて指示位置が明るくなる第２タイミングを検出し、そして第１タイミングと第２タイミングとに基づいて指示位置の位置情報を検出する、指示位置検出方法である。
【００１０】
第３の発明は、ラスタ走査型のモニタの画面上で所望の位置が指示されるとき、その指示位置を検出する指示位置検出方法であって、モニタ画面よりも広い範囲の第１領域の光を検出し、モニタ画面上の指示位置を含む狭い範囲の第２領域の光を検出し、所望の位置が指示され、モニタにフラッシュ画面が描画されるとき、第１領域の光の時系列変化に基づいてフラッシュ画面の描画が開始される第１タイミングを検出し、第２領域の光の時系列変化に基づいて指示位置が明るくなる第２タイミングを検出し、そして第１タイミングと第２タイミングとに基づいて指示位置の位置情報を検出する、指示位置検出方法。である。
【００１１】
【作用】
この発明のシューティングゲーム用コントローラ（以下、単に「コントローラ」という。）は、ラスタ走査型のモニタにシューティング画面を表示するゲーム機と連動し、プレイヤのトリガ操作に基づいて、プレイヤが狙った(指示した)指示位置すなわち着弾点をゲーム機に指示する。コントローラには、テレビジョン受像機のようなモニタ画面よりも広い範囲の第１領域の光を検出する第１光センサとそのようなモニタ画面上の着弾点位置を含む狭い範囲の第２領域の光を検出する第２光センサとが設けられる。たとえば、プレイヤがガントリガを操作すると、このトリガ操作に応答してフラッシュ画面表示要求がゲーム機に送信される。すると、ゲーム機は、フラッシュ画面表示要求に応答して、モニタ画面にフラッシュ画面を描画する。このとき、第１検出手段は、第１光センサの出力の時系列変化に基づいて、フラッシュ画面の描画が開始される第１タイミングを検出する。つまり、フラッシュ画面の描画開始位置（モニタの表示画面の左上隅の位置）が検出される。また、第２検出手段は、第２光センサの出力の時系列変化に基づいて、着弾点位置が明るくなる第２タイミングを検出する。この第１タイミング（描画開始位置）と第２タイミング（着弾点位置）とに基づいて、作成手段が着弾点位置の位置情報を作成し、作成された位置情報が第２送信手段によってゲーム機に送信される。具体的には、モニタ画面における着弾点の座標（ＸＹ座標）が検出され、その座標がゲーム機に指示（入力）される。
【００１２】
ただし、このようなコントローラを用いた着弾点の検出は、ライトペンのような入力装置にも適用することができる。たとえば、ライトペンを用いてモニタの画面上における所望の位置が指示されると、その指示位置の位置情報（座標）が第１光センサおよび第２光センサの出力の時系列変化に基づいて検出される。その検出方法は、上述したような方法と同じである。ただし、このような入力装置では、ガントリガを用いるようなトリガ操作は必要ない。
【００１３】
たとえば、第１検出手段は、第１光センサの出力の時系列変化の中から、モニタの垂直ブランキング期間に相当する期間にわたる低輝度を検出し、その後に１ライン分の水平走査期間に相当する期間にわたる高輝度を検出したとき、フラッシュ画面を正常に検出していると判断する。したがって、その水平走査期間に相当する高輝度の期間の開始時点を第１タイミングとして決定（検出）することができる。
【００１４】
また、第１光センサの出力を第１サンプリング手段によってサンプリングするので、そのサンプリング結果が垂直ブランキング期間に相当する期間にわたって低輝度を示し、その後、１ライン分の水平走査期間に相当する期間にわたって高輝度を示すとき、つまり、正常にフラッシュ画面を検出しているとき、第１決定手段は、その水平走査期間に相当する期間の開始時点を第１タイミングに決定できる。また、第２光センサの出力を第２サンプリング手段によってサンプリングするので、そのサンプリング結果が低輝度から高輝度への変化を示すとき、つまり、着弾点位置が明るくなるとき、第２決定手段は、その変化時点を第２タイミングに決定できる。
【００１５】
さらに、トリガ操作に応答してカウントを開始するカウンタを設けるようにすれば、第１タイミングにおける第１カウント値と第２タイミングにおける第２カウント値とを取得し、その２つのカウント値に基づいて位置情報を算出することができる。たとえば、カウンタが水平走査のドットに同期する発振周波数信号のパルスをカウントするようにしておけば、第１カウント値と第２カウント値とに基づいて、フラッシュ画面の描画開始位置から着弾点位置までのカウント値を算出することができる。したがって、算出したカウント値に基づいて着弾点の座標を特定することができる。
【００１６】
なお、カウンタのカウントを第１タイミングから開始するようにしておけば、第２タイミングにおける第２カウント値に基づいて着弾点位置の座標を特定することもできる。
【００１７】
さらにまた、第１領域よりも広い範囲の第３領域の光を検出する第３光センサを設けるようにすれば、第２光センサの出力に基づいて描画開始位置すなわち第１タイミングを検出することができない場合に、第３検出手段が第３光センサの出力に基づいて第１タイミングを検出する。このため、プレイヤがモニタに近づき過ぎた場合やモニタの端部を狙った場合でも、つまりコントローラを構える位置に拘わらず、正確に着弾点位置を検出することができ、ゲーム性を損ねることがない。
【００１８】
具体的には、有効化手段は、第１検出手段によって検出された第１タイミングを、第３検出手段によって検出された第１タイミングに優先して有効化するので、上述したように、第１検出手段で第１タイミングを検出できない場合に第３検出手段で第１タイミングが検出される。つまり、第３検出手段は、第１検出手段よりも広い範囲の光を検出することができるが、第１検出手段に比べて精度が低いため、第１検出手段が優先される。したがって、作成手段は有効化手段によって有効化された第１検出手段或いは第３検出手段によって検出された第１タイミングと第２タイミングとに基づいて、位置情報を作成することができる。
【００１９】
たとえば、第１送信手段および第２送信手段はそれぞれ無線通信方式によってフラッシュ画面表示要求および着弾表示要求を送信するので、コントローラとゲーム機とをケーブル接続した場合に比べてプレイヤは自由に移動することができ、操作性を向上させることができる。
【００２０】
【発明の効果】
この発明によれば、光センサのような安価な素子を用いるので、価格を抑えることができる。また、着弾点の位置情報をゲーム機に送信するので、ゲーム機はプレイヤが狙った着弾点を正確に検出して、ゲームを進行することができる。さらに、モニタに近づきすぎても、モニタ画面上の着弾点の位置情報をゲーム機に指示することができる。
【００２１】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【００２２】
【実施例】
＜第１実施例＞
図１を参照して、第１実施例のガンゲームシステム（以下、単に「システム」という。）１０はシューティングゲーム用コントローラすなわちガンコントローラ（以下、単に「コントローラ」という。）１２を含み、コントローラ１２は拳銃を模して形成される。コントローラ１２には、銃の引き金に相当する部分にガントリガ１４が設けられ、銃口に相当する部分に狭域（第２領域）光センサ１６が設けられる。この狭域光センサ１６の上方には、中域（第１領域）光センサ１８が設けられる。さらに、コントローラ１２には、アンテナ２０が設けられる。
【００２３】
また、システム１０はゲーム機２２を含み、ゲーム機２２にはアンテナ２４が設けられる。ゲーム機２２は、テレビジョン受像機（以下、「ＴＶ受像機」という。）２６に、たとえばＡＶケーブル等のケーブル２８によって接続される。
【００２４】
なお、ＴＶ受像機２６に換えて、受信機等を含まないＣＲＴモニタを接続するようにすることもできる。
【００２５】
図２に示すように、コントローラ１２はＣＰＵ３０を含み、ＣＰＵ３０には狭域光センサ１６および中域光センサ１８が、それぞれ、アンド回路３２およびアンド回路３４を介して接続される。狭域光センサ１６は、コントローラ１２が指定（指示）している指示位置（焦点位置）の光を検出する。中域光センサ１８は、コントローラ１２が指定（指示）している方向のある一定領域（一定範囲）内の光を検出し、この実施例では、ＴＶ受像機２６の表示画面２６ａから１ｍ離れた位置で半径３６インチ程度の範囲についての光を検出することができる。
【００２６】
具体的な構成について説明すると、狭域光センサ１６は、凸レンズ１６ａを含み、凸レンズ１６ａを経た光がフォトダイオード（ＰＤ）１６ｂに入射される。ＰＤ１６ｂにはオペアンプのようなアンプ（ＡＭＰ）１６ｃが接続され、アンプ１６ｃはＰＤ１６ｂに入射された光の強度（明るさ）に応じた電気信号を生成し、その電気信号を２値化する。つまり、アンプ１６は、電気信号のレベルが所定レベル以上であれば、すなわちＰＤ１６ｂに入射された光が高輝度であれば、ハイレベルの信号を出力する。一方、アンプ１６は、電気信号のレベルが所定レベルより小さければ、すなわちＰＤ１６ｂに入射された光が低輝度であれば、ローレベルの信号を出力する。
【００２７】
この実施例では、所定レベルは、フラッシュ光かどうかを判断することができる値であり、実験等により経験的に得られる値である。以下、この実施例において同じである。アンプ１６ｃから出力されるハイレベルまたはローレベル（Ｈ／Ｌ）の信号は、アンド回路３２の一方入力端に入力される。
【００２８】
また、中域光センサ１８は、光学レンズ１６ａよりも厚く形成された広角レンズ１８ａを含み、広角レンズ１８ａを経た光がＰＤ１８ｂに入射される。ＰＤ１８ｂにはアンプ１６ｃと同様のアンプ１８ｃが接続され、アンプ１８ｃはＰＤ１８ｂに入射された光の明るさに応じた電気信号を生成し、その電気信号を２値化する。つまり、アンプ１８ｃは、電気信号のレベルが所定レベル以上であれば、すなわちＰＤ１８ｂに入射された光が高輝度であれば、ハイレベルの信号を出力する。一方、アンプ１８ｃは、電気信号のレベルが所定レベルより小さければ、すなわちＰＤ１８ｂに入射された光が低輝度であれば、ローレベルの信号を出力する。このハイレベルまたはローレベル（Ｈ／Ｌ）の信号は、アンド回路３４の一方入力端に入力される。
【００２９】
上述したように、コントローラ１２はガントリガ１４を含み、図２に示すように、ガントリガ１４はオン／オフを切り換えるためのスイッチ１４ａを含む。このスイッチ１４ａの一方端は、抵抗１４ｂを介して定電圧電源Ｖｃｃに接続され、スイッチ１４ａの他方端は基準電位（接地）に接続される。スイッチ１４ａと抵抗１４ｂとの接続点がＣＰＵ３０に接続される。
【００３０】
ガントリガ１４がオンされると、つまりスイッチ１４ａがオンされると、定電圧電源Ｖｃｃは、抵抗１４ｂおよびスイッチ１４ａを介して接地に与えられる。一方、ガントリガ１４がオフであれば、つまりスイッチ１４ａがオフであれば、定電圧電源Ｖｃｃは、抵抗１４ｂを介してＣＰＵ３０に与えられる。つまり、ガントリガ１４がオフである場合には、ハイレベルの電圧がＣＰＵ３０に印加され、ガントリガ１４がオンである場合には、ローレベル（０Ｖ）の電圧がＣＰＵ３０に印加される。したがって、ＣＰＵ３０は、定電圧電源Ｖｃｃから印加される電圧のレベルに応じてガントリガ１４のオン／オフを判別する。
【００３１】
ＣＰＵ３０は、ガントリガ１４がオフであれば、アンド回路３２およびアンド回路３４の他方入力端にローレベルの信号を出力する。或いは、信号を出力しない。一方、ガントリガ１４がオンされると、ＣＰＵ３０は、アンド回路３２およびアンド回路３４の他方入力端にハイレベルの信号を出力する。アンド回路３２およびアンド回路３４のそれぞれは、一方入力端および他方入力端にハイレベルの信号が入力されると、ハイレベルの信号をＣＰＵ３０に出力し、一方入力端および他方入力端の少なくとも一方にローレベルの信号が入力されると、ローレベルの信号をＣＰＵ３０に出力する。
【００３２】
また、ＣＰＵ３０は、ガントリガ１４がオンされると、ドットカウント用の内部カウンタ３６をリセットおよびスタートする。つまり、内部カウンタ３６のカウント値が０にされ、カウントが開始される。この内部カウンタ３６は、ＣＰＵ３０からカウント停止指令が与えられるまでカウントを続ける。
【００３３】
コントローラ１２は、さらに、ＲＯＭ３８、ＲＡＭ４０、発振器４２および無線通信ユニット４４を含み、ＲＯＭ３８、ＲＡＭ４０、発振器４２および無線通信ユニット４４は、それぞれＣＰＵ３０に接続される。
【００３４】
ＲＯＭ３８は、図３に示すように、着弾点の座標算出プログラム、座標テーブル、垂直ブランキング（ＢＫ）期間情報および水平走査期間情報を記憶する。ここで、座標テーブルとは、内部カウンタ３６のカウント値に対応するＴＶ受像機２６の表示画面２６ａ上における各点（ドット）の位置を示すＸＹ座標のテーブルをいう。また、垂直ＢＫ期間情報とは、垂直ＢＫ期間に相当する内部カウンタ３６のカウント値をいい、水平走査期間情報とは、水平走査期間に相当する内部カウンタ３６のカウント値をいう。
【００３５】
ＲＡＭ４０は、図４に示すように、少なくとも狭域光センサ１６用の領域６０と中域光センサ１８用の領域６２とを有している。狭域光センサ１６用の領域６０には、着弾点検出フラグ６４およびそれに関連づけて着弾点レジスタ６６が設けられる。
【００３６】
中域光センサ１８用の領域６２には、基準点検出済フラグ６８およびそれに関連づけて基準点レジスタ７０が設けられる。また、垂直ブランキング（ＢＫ）期間検出フラグ７２が設けられる。さらに、立ち下がりフラグ７４およびそれに関連づけて立ち下がりレジスタ７６が設けられる。さらにまた、立ち上がりフラグ７８およびそれに関連づけて立ち上がりレジスタ８０が設けられる。
【００３７】
発振器４２は、ＴＶ受像機２６における水平ラインのドットに同期した周波数で発振し、発振周波数信号がＣＰＵ３０に入力される。内部カウンタ３６は、この発振周波数信号におけるパルスの立ち上がりエッジ或いは立ち下がりエッジの数（ドット数）をカウントする。たとえば、内部カウンタ３６は、発振器４２からの発振周波数信号のパルス（立ち上がりエッジ或いは立ち下がりエッジ）を１つ検出するごとにインクリメントされる。
【００３８】
図２に戻って、ゲーム機２２はＣＰＵ４６を含み、ＣＰＵ４６には無線通信ユニット４８、ＲＯＭ５０およびＲＡＭ５２が接続される。無線通信ユニット４８（アンテナ２４を含む。）は、コントローラ１２との間でデータ通信を実行する。
【００３９】
ＲＯＭ５０は、図示は省略するが、ガンゲームのプログラム、フラッシュ画面描画のプログラムおよび表示画面２６ａに表示するシューティング画面におけるキャラクタ（標的）の座標データを記憶する。
【００４０】
なお、ＲＯＭ５０は、ゲーム機２２本体内蔵に限られず、ゲーム機２２本体に着脱可能なＲＯＭカートリッジであってもよい。
【００４１】
ＲＡＭ５２は、ＣＰＵ４６のワーキングメモリおよびバッファメモリとして使用され、主として、ＴＶ受像機２６の表示画面２６ａに表示する画面（シューティング画面およびフラッシュ画面）に対応する画面データを展開するために使用される。
【００４２】
たとえば、ガンゲームが開始されると、ゲーム機２２は、ガントリガ１４のオン／オフに応じて、シューティング画面或いはフラッシュ画面の描画を実行する。つまり、図５（Ａ）に示すように、シューティング画面或いはフラッシュ画面を描画するためのフレーム（ＴＶフレーム）がガントリガ１４のオン／オフに応じて遷移される。このとき、シューティング画面およびフラッシュ画面のそれぞれに対応する映像信号は、図５（Ｂ）のように、示される。ガントリガ１４がオンされると、図５（Ｃ）に示すように、ＣＰＵ３０はハイレベルの信号をアンド回路３２およびアンド回路３４の他方入力端に入力する。また、ＣＰＵ３０は、無線通信ユニット４４を介してフラッシュ画面の描画の指示（以下、「フラッシュ信号」という。）をゲーム機２２に送信する。これと同時に、ＣＰＵ３０は、狭域光センサ１６、中域光センサ１８および内部カウンタ３６を起動する。つまり、狭域光センサ１６および中域光センサ１８を能動化し、つまりアンド回路３２およびアンド回路３４の出力を有効化し、内部カウンタ３６をリセットおよびスタートする。
【００４３】
ゲーム機２２では、無線通信ユニット４８がフラッシュ信号を受けて（受信して）、ＣＰＵ４６に送信する。これに応じて、ＣＰＵ４６はＲＯＭ５０に記憶されたフラッシュ画面の描画プログラムを起動し、ＲＡＭ５２を用いてフラッシュ画面に対応する画面データを展開した後、ラスタ走査（ラスタスキャン）方式で読み出し、ＴＶ受像機２６にケーブル２８を介してフラッシュ画面のテレビジョン信号を送信する。したがって、ＴＶ受像機２６の表示画面２６ａにフラッシュ画面が描画される。
【００４４】
たとえば、図６に示すように、プレイヤがコントローラ１２をＴＶ受像機２６の表示画面２６ａから所定距離（この実施例では、１ｍ）離れた位置で構えて、ガントリガ１４を操作（オン）すると、中域光センサ１８は、ＴＶ受像機２６の表示画面２６ａと同一平面上であり、かつ表示画面２６ａよりも広い範囲の第１領域８２内の光を検出する。また、狭域光センサ１６は、同じく表示画面２６ａと同一平面上であり、第１領域８２よりも狭い範囲の第２領域８４内の光を検出する。
【００４５】
したがって、フラッシュ画面が描画されると、中域光センサ１８によって、表示画面２６ａ全体のフラッシュ光が検出され、狭域光センサ１６によって、プレイヤが指示した所望の位置（着弾点位置）のフラッシュ光が検出される。ＣＰＵ３０は、中域光センサ１８および狭域光センサ１６の出力を検出し、フラッシュ画面の描画が開始されるタイミング（第１タイミング）を検出するとともに、着弾点位置が明るくなるタイミング（第２タイミング）を検出する。
【００４６】
なお、この実施例では、フラッシュ画面の描画が開始される位置（描画開始位置）は、表示画面２６ａの左上隅である。
【００４７】
具体的には、ＣＰＵ３０は、中域光センサ１８の出力すなわちアンド回路３４の出力をサンプリングし、その時系列変化を検出する。アンド回路３４（中域光センサ１８）の出力の時系列変化は、図５（Ｄ）に示すように、少なくとも垂直ＢＫ期間が経過するまで、ローレベルであり、垂直ＢＫ期間が経過すると、ハイレベルとなり、そのハイレベルの状態が水平走査期間（第１ライン）だけ維持される。その後、ローレベルの状態が水平ＢＫ期間だけ維持された後、ハイレベルの状態が水平走査期間（第２ライン）だけ維持され、それが末尾ラインまで交互に繰り返される。
【００４８】
したがって、ＣＰＵ３０は、アンド回路３４の出力の時系列変化が垂直ＢＫ期間以上に相当する期間にわたって低輝度（ローレベル）を示し、その後に１ライン分の水平走査期間に相当する期間にわたって高輝度（ハイレベル）を示すとき、フラッシュ画面の光（フラッシュ光）を正常に検出していると判断する。そして、ＣＰＵ３０は、垂直ＢＫ期間に相当する期間が経過した後の１ライン分の水平走査期間に相当する期間の開始時点、すなわち第１ラインの開始時点を第１タイミングに決定し、その第１タイミングにおける内部カウンタ３６のカウント値をＲＡＭ４０に記憶する。
【００４９】
また、ＣＰＵ３０は、狭域光センサ１６の出力すなわちアンプ３２の出力をサンプリングし、図５（Ｅ）に示すような時系列変化を検出する。ＣＰＵ３０は、その時系列変化が低輝度から高輝度に変化するとき、当該変化時点を着弾点が明るくなる時点（第２タイミング）に決定し、その第２タイミングにおける内部カウンタ３６のカウント値をＲＡＭ４０に記憶する。
【００５０】
ただし、図５（Ｅ）に示すように、狭域光センサ１６の出力すなわちアンド回路３２の出力は、第ｎライン、第ｎ＋１ラインおよび第ｎ＋２ラインでローレベルからハイレベルに変化している。ここで、３ライン分にハイレベルが現われているのは、通常、プレイヤが標的を狙ったことを示す第２領域８４の大きさが走査線の幅よりも大きいためである。また、第ｎ+１ラインの受光時間が最も長くなっているのは、第ｎ+１ラインが第２領域のほぼ中央を通過しているので、第ｎライン，第ｎ+２ラインよりも受光時間が長くなるためである。
【００５１】
このように、狭域光センサ１６の出力がローレベルからハイレベルに変化する水平ラインは複数検出されるが、このように変化する水平ラインは少なくとも１つ検出すれば着弾点の座標を特定することができる。したがって、この実施例では、狭域光センサ１６の出力が最初にローレベルからハイレベルに変化したときに、ＣＰＵ３０は着弾点を検出したと判断し、その時点における内部カウンタ３６のカウント値をＲＡＭ４０に記憶するようにしてある。
【００５２】
なお、狭域光センサ１６の出力がローレベルからハイレベルに変化する水平ラインを検出したときのカウント値のそれぞれをＲＡＭ４０に記憶しておき、複数の座標を特定するようにしてもよい。また、任意の回数目にローレベルからハイレベルに変化する水平ラインを検出したときのカウント値をＲＡＭ４０に記憶したり、ローレベルからハイレベルに変化した複数の水平ラインの中でハイレベルの期間がもっとも長くなる水平ラインを検出したときのカウント値をＲＡＭ４０に記憶したりして、着弾点の座標を特定するようにしてもよい。
【００５３】
ＣＰＵ３０は、ＲＡＭ４０に記憶された第１タイミング（描画開始位置）におけるカウント値と第２タイミング（着弾点位置）におけるカウント値との差分を算出し、その差分で示されるカウント値からＲＯＭ３８に記憶されている座標テーブルを参照して、着弾点の座標を特定（同定）する。座標が特定されると、その座標に対応するデータ（座標データ）がゲーム機２２に送信される。つまり、着弾点の座標がゲーム機２２に指示される。
【００５４】
ゲーム機２２では、受信した座標データと表示画面２６ａに表示した標的の座標データとを比較し、標的に命中したかどうかを判定する。そして、判定した結果（判定結果）に応じて、ゲームの進行やシューティング画面の描画などを決定する。つまり、判定結果がゲームの進行やシューティング画面に反映される。
【００５５】
上述のような動作を、コントローラ１２のＣＰＵ３０とゲーム機２２のＣＰＵ４６とが図７に示すフロー図に従って処理し、ガンゲームを実行する。
【００５６】
図７を参照して、ゲーム機２２の電源がオンされると、ＣＰＵ４６はプレイヤの指示に従ってステップＳ１でガンゲーム処理を実行する。具体的には、ＣＰＵ４６は、ＲＯＭ５０に記憶されたガンゲームのプログラムを実行し、標的を含むシューティング画面をＴＶ受像機２６の表示画面２６ａに表示する。
【００５７】
続くステップＳ３では、コントローラ１２からフラッシュ画面の描画の指示すなわちフラッシュ信号を受信したかどうかを判断する。ステップＳ３で“ＮＯ”であれば、つまりフラッシュ信号を受信しなければ、そのままステップＳ１に戻る。
【００５８】
一方、ステップＳ３で“ＹＥＳ”であれば、つまりフラッシュ信号を受信すれば、ステップＳ５でＲＯＭ５０に記憶されたフラッシュ画面の描画プログラムを起動し、フラッシュ画面を描画する。続くステップＳ７では、コントローラ１２から着弾点の座標データを取得（受信）したかどうかを判断する。ステップＳ７で“ＮＯ”であれば、つまり座標データを受信しなければ、そのままステップＳ１に戻る。
【００５９】
なお、フロー図においては省略してあるが、フラッシュ画面を描画してから座標データを取得するまでには、多少時間がかかるため、実際には、その時間だけ待機した後に座標データを受信したかどうかを判断している。
【００６０】
一方、ステップＳ７で“ＹＥＳ”であれば、つまり座標データを受信すれば、ステップＳ９で標的に命中したかどうかを判定する。つまり、ＣＰＵ４６は、コントローラ１２から取得した着弾点の座標データと標的の座標データとを比較し、それらが互いに一致するかどうかによって、命中したかどうかを判定する。そして、ステップＳ１１で、命中したかどうかの判定結果に応じたシューティング画面を表示してからステップＳ１に戻る。
【００６１】
他方、コントローラ１２では、電源がオンされ、ガンゲームが開始されると、ＣＰＵ３０は処理を開始し、ステップＳ２１でガントリガ１４がオンされたかどうかを判断する。ステップＳ２１で“ＮＯ”であれば、つまりガントリガ１４がオンされなければ、同じステップＳ２１に戻る。一方、ステップＳ２１で“ＹＥＳ”であれば、つまりガントリガ１４がオンされれば、ステップＳ２３で各センサと内部カウンタ３６を起動し、サンプリングを開始する。つまり、狭域光センサ１６および中域光センサ１８を能動化するとともに、内部カウンタ３６をリセットし、発振器４２からの発振周波数信号すなわち水平ラインについてのドット数のカウントを開始する。
【００６２】
次に、ＣＰＵ３０は、ステップＳ２５でフラッシュ信号をゲーム機２２に送信し、ステップＳ２７で後述する着弾点の座標算出処理を実行する。そして、ステップＳ２９で、算出した着弾点の座標データをゲーム機２２に送信し、ステップＳ３１で狭域光センサ１６、中域光センサ１８および内部カウンタ３６を停止（不能化）し、サンプリングを終了してからステップＳ２１に戻る。
【００６３】
図７に示したステップＳ２７の着弾点の座標算出処理が開始されると、図８に示すように、ＣＰＵ３０は、ステップＳ４１で図４で示したＲＡＭ４０内の全てのフラグをクリアする。つまり、着弾点検出済フラグ６４、基準点検出済フラグ６８、垂直ＢＫ期間検出済フラグ７２、立ち下がりフラグ７４および立ち上がりフラグ７８をクリア（オフ）する。
【００６４】
続くステップＳ４３では、ガントリガ１４がオンされてから２フレーム期間経過したかどうかを判断する。ステップＳ４３で“ＹＥＳ”であれば、つまり２フレーム期間が経過すると、そのまま着弾点の座標算出処理をリターンする。
【００６５】
一方、ステップＳ４３で“ＮＯ”であれば、つまり２フレーム期間を経過していなければ、ステップＳ４５で基準点検出済フラグ６８がオンかどうかを判断する。ステップＳ４５で“ＹＥＳ”であれば、つまり基準点検出済フラグ６８がオンであれば、基準点検出処理を終了していると判断し、そのままステップＳ４９に進む。一方、ステップＳ４５で“ＮＯ”であれば、つまり基準点検出済フラグ６８がオフであれば、基準点検出処理を終了していないと判断し、ステップＳ４７で後述する基準点検出処理を実行してからステップＳ４９に進む。
【００６６】
ステップＳ４９では、着弾点検出済フラグ６４がオンかどうかを判断する。ステップＳ４９で“ＹＥＳ”であれば、つまり着弾点検出済フラグ６４がオンであれば、着弾点検出処理を終了していると判断し、そのままステップＳ５３に進む。一方、ステップＳ４９で“ＮＯ”であれば、つまり着弾点検出済フラグ６４がオフであれば、着弾点検出処理を終了していないと判断し、ステップＳ５１で後述する着弾点検出処理を実行してからステップＳ５３に進む。
【００６７】
ステップＳ５３では、基準点検出済フラグ６８および着弾点検出済フラグ６４の両方がオンかどうかを判断する。ステップＳ５３で“ＮＯ”であれば、つまり基準点検出済フラグ６８および着弾点検出済フラグ６４の少なくとも一方がオフであれば、基準点および着弾点の検出処理が終了していないと判断し、ステップＳ４３に戻る。
【００６８】
一方、ステップＳ５３で“ＹＥＳ”であれば、つまり基準点検出済フラグ６８および着弾点検出済フラグ６４の両方がオンであれば、基準点検出処理および着弾点検出処理を終了していると判断し、ステップＳ５５で基準点と着弾点とに基づいて着弾点の座標を算出してからリターンする。つまり、ステップＳ５５では、ＣＰＵ３０は、基準点レジスタ７０に記憶されているカウント値と着弾点レジスタ６６に記憶されているカウント値とを用いて、基準点すなわち表示画面２６ａの描画開始位置から着弾点位置までのドット数を算出する。つまり、カウント値の差分を算出する。そして、ＣＰＵ３０は、ＲＯＭ３８に記憶されている座標テーブルを参照して、算出したカウント値の差分に対応する座標を特定する。このようにして、着弾点の座標が算出される。
【００６９】
図８のステップＳ４７で示した着弾点検出処理が開始されると、図９に示すように、ＣＰＵ３０は、ステップＳ６１で中域光センサ１８の出力を読み取り、続くステップＳ６３で垂直ＢＫ期間検出済フラグ７２がオンかどうかを判断する。ステップＳ６３で“ＹＥＳ”であれば、つまり垂直ＢＫ期間検出済フラグ７２がオンであれば、図１０に示すステップＳ８５に進む。
【００７０】
一方、ステップＳ６３で“ＮＯ”であれば、つまり垂直ＢＫ期間検出済フラグ７２がオフであれば、垂直ＢＫ期間を検出していないと判断し、ステップＳ６５で立ち下がりフラグ７４がオンかどうかを判断する。ステップＳ６５で“ＹＥＳ”であれば、つまり立ち下がりフラグ７４がオンであれば、ステップＳ６７で中域光センサ１８の出力がローレベル（Ｌ）からハイレベル（Ｈ）に変化したかどうかを判断する。つまり、立ち上がりエッジを検出したかどうかを判断する。
【００７１】
ステップＳ６７で“ＮＯ”であれば、つまり立ち上がりエッジを検出しなければ、そのままリターンする。一方、ステップＳ６７で“ＹＥＳ”であれば、つまり立ち上がりエッジを検出すれば、ステップＳ６９で立ち上がりレジスタ８０に内部カウンタ３６のカウント値をセットする。そして、ステップＳ７１で、立ち上がりフラグ７８をオンする。
【００７２】
続いて、ステップＳ７３では、立ち下がりレジスタ７６のレジスタ値と立ち上がりレジスタ８０のレジスタ値との差分が垂直ＢＫ期間以上かどうかを判断する。つまり、立ち上がりレジスタ８０のレジスタ値から立ち下がりレジスタ７６のレジスタ値を減算して得られた値が、ＲＯＭ３８に記憶された垂直ＢＫ期間情報以上かどうかを判断する。
【００７３】
ステップＳ７３で“ＹＥＳ”であれば、つまりレジスタ値の差分が垂直ＢＫ期間以上であれば、垂直ＢＫ期間を検出したと判断し、ステップＳ７５で垂直ＢＫ期間検出済フラグ７２をオンしてから基準点検出処理をリターンする。一方、ステップＳ７３で“ＮＯ”であれば、つまりレジスタ値の差分が垂直ＢＫ期間より短ければ、垂直ＢＫ期間を検出していないと判断し、ステップＳ７７で立ち下がりフラグ７４および立ち上がりフラグ７８をオフしてからリターンする。
【００７４】
また、ステップＳ６５において“ＮＯ”であれば、つまり立ち下がりフラグ７４がオフであれば、ステップＳ７９で中域光センサ１８の出力が「Ｈ」から「Ｌ」に変化したかどうかを判断する。つまり、立ち下がりエッジを検出したかどうかを判断する。ステップＳ７９で“ＮＯ”であれば、つまり立ち下がりエッジを検出しなければ、そのままリターンする。
【００７５】
一方、ステップＳ７９で“ＹＥＳ”であれば、つまり立ち下がりエッジを検出すれば、ステップＳ８１で立ち下がりレジスタ７６に内部カウンタ３６のカウント値をセットし、続いて、ステップＳ８３で立ち下がりフラグ７４をオンしてからリターンする。
【００７６】
上述したように、ステップＳ６３において“ＹＥＳ”であれば、図１０のステップＳ８５に進み、このステップＳ８５では、中域光センサ１８の出力が「Ｈ」から「Ｌ」に変化したかどうかを判断する。つまり、立ち下がりエッジを検出したかどうかを判断する。ステップＳ８５で“ＮＯ”であれば、つまり立ち下がりエッジを検出しなければ、そのままリターンする。
【００７７】
一方、ステップＳ８５で“ＹＥＳ”であれば、つまり立ち下がりエッジを検出すると、ステップＳ８７で立ち下がりレジスタ７６に内部カウンタ３６のカウント値をセットし、続いて、ステップＳ８９で立ち下がりフラグ７４をオンしてからステップＳ９１に進む。
【００７８】
ステップＳ９１では、レジスタ値の差分が水平走査期間と等しいかどうかを判断する。つまり、立ち下がりレジスタ７６のレジスタ値と立ち上がりレジスタ８０のレジスタ値との差分がＲＯＭ３８に記憶されている水平走査期間情報と等しかどうかを判断する。
【００７９】
ステップＳ９１で“ＮＯ”であれば、つまりレジスタ値の差分が水平走査期間と等しくなければ、第１ラインを正常に検出していないと判断し、ステップＳ９７で垂直ＢＫ期間検出済フラグ７２をオフしてからリターンする。
【００８０】
一方、ステップＳ９１で“ＹＥＳ”であれば、つまりレジスタ値の差分が水平走査期間と等しければ、第１ラインを正常に検出したと判断し、立ち上がりレジスタ８０に記憶されているカウント値を基準点レジスタ８０にコピーする。そして、ステップＳ９５で基準点検出済フラグ６８をオンしてからリターンする。このようにして、基準点すなわち描画開始位置が検出される。
【００８１】
また、図８のステップＳ５１の着弾点検出処理が開始されると、図１１に示すよに、ＣＰＵ３０はステップＳ１０１で狭域光センサ１６の出力を読み取り、ステップＳ１０３で狭域光センサ１６の出力が「Ｌ」から「Ｈ」に変化したかどうかを判断する。つまり、立ち上がりエッジを検出したかどうかを判断する。
【００８２】
ステップＳ１０３で“ＮＯ”であれば、つまり立ち上がりエッジを検出しなければ、そのままリターンする。一方、ステップＳ１０３で“ＹＥＳ”であれば、つまり立ち上がりエッジを検出すれば、ステップＳ１０５で着弾点レジスタ６６に内部カウンタ３６のカウント値をセットし、ステップＳ１０７で着弾点検出済フラグ６４をオンしてからリターンする。このようにして、着弾点位置が検出される。
【００８３】
この実施例によれば、光センサの出力の時系列変化に基づいて着弾点位置を特定することができるので、ＣＣＤや人工網膜ユニットような高価な撮像手段を用いる必要がなく、そのような撮像手段によって撮影された画像を画像処理する必要もないので、低価格にすることができる。また、コントローラ側で着弾点の座標を特定し、特定した結果をゲーム機に送信するので、正確な着弾点に従ってゲームを進行することができる。さらに、ガンゲームにのみ用いられる機能をコントローラ側に持たせることができるので、ゲーム機にガンゲームでしか利用しないカウンタ等の余分な機能を持たせる必要がなく、ゲーム機本体の価格を抑えることもできる。また、上述したように、コントローラで算出した座標をゲーム機に送信するので、各種のゲーム機に利用可能な汎用性の高いコントローラを提供することができる。
【００８４】
なお、第１実施例では、コントローラ１２からゲーム機２２に無線でフラッシュ信号および座標データを送信するようにしたが、コントローラ１２とゲーム機２２とを有線接続するようにしてもよい。この場合には、無線通信ユニットに換えてコントローラ１２およびゲーム２２にインターフェイスが設けられ、互いのインターフェイスをケーブルで接続するようにすればよい。
【００８５】
また、第１実施例では、コントローラ１２で座標データを算出してゲーム機２２に送信するようにしたが、コントローラ１２では描画開始位置および着弾点位置のカウント値のみを検出し、そのカウント値のデータをゲーム機２２に送信して、ゲーム機２２側で着弾点の座標を算出するようにするようにしてもよい。或いは、カウント値の差分のデータをゲーム機に送信するようにしてもよい。この場合には、コントローラ１２の構成を比較的簡単にすることができる。
【００８６】
さらに、第１実施例で示したＲＯＭ３８を書き換え可能なＲＯＭを用いて、座標テーブルと垂直ＢＫ期間情報および水平走査期間情報のそれぞれに対応するカウント値のデータとを書き換え可能にしておけは、それらを書き換えることにより、通常のＴＶ受像機２６に限らず、ハイビジョンのＴＶ受像機においても着弾点を検出することができる。
【００８７】
さらにまた、第１実施例では、コントローラ１２は、ガンゲームにおいて着弾点を指示（入力）する装置として説明したが、このようなコントローラ１２はリモコン送信機のような遠隔操作のための入力装置に適用することも考えられる。たとえば、ＴＶ受像機のリモコン送信機に適用した場合には、メニュー画面において、リモコン送信機のカーソルキーを操作せずに、所望のメニューを一発選択することができる。
【００８８】
また、第１実施例におけるコントローラ１２を用いた着弾点位置の検出は、ライトペンのような入力装置にも適用することができる。この場合には、ライトペンでモニタの画面上における所望の位置が指示（指定）されると、その指示位置の座標が狭域光センサ１８および中域光センサ１８の出力の時系列変化に基づいて特定（検出）される。ただし、このような入力装置では、コントローラ１２のようなトリガ操作は必要でない。
【００８９】
＜第２実施例＞
第２実施例のシステム１０は、中域光センサ１８よりもさらに広い範囲の第３領域の光を検出することができる広域光センサをコントローラ１２に設けるようにした以外は、第１実施例と同じであるため、重複した説明は省略する。
【００９０】
図１２を参照して、第２実施例のシステム１０に適用されるコントローラ１２は、広域光センサ８６をさらに備える。この広域光センサ８６は、コントローラ１２の上部に設けられ、プレイヤがコントローラ１２を表示画面２６ａから所定距離（たとえば、１ｍ) だけ離れた位置で構えて、ガントリガ１４をオンしたときに、表示画面２６ａと同一平面上であり、第１領域よりも広い第３領域８８の光を検出する。たとえば、この第２実施例では、広域光センサ８６は、コントローラ１２を表示画面２６ａに接触した状態で半径３６インチ程度の範囲についての光を検出することができる。
【００９１】
コントローラ１２の電気的な構成は、図１３のように示される。広域光センサ８６は、広角レンズ１８ａよりも厚く形成された広角レンズ８６ａを含み、広角レンズ８６ａを経た光はＰＤ８６ｂに入射される。ＰＤ８６ｂにはアンプ（ＡＭＰ）８６ｃが接続され、アンプ８６ｃはＰＤ８６ｂに入射された光の明るさに応じた電気信号を生成し、その電気信号のレベルが所定レベル以上かどうかを判別し、電気信号を２値化する。つまり、アンプ８６ｃは、電気信号のレベルが所定レベル以上であれば、すなわちＰＤ８６ｂに入射された光が高輝度であれば、ハイレベルの信号を出力する。一方、アンプ８６ｃは、電気信号のレベルが所定レベルより小さければ、すなわちＰＤ８６ｂに入射された光が低輝度であれば、ローレベルの信号を出力する。
【００９２】
なお、所定レベルは、上述の実施例と同じくフラッシュ光を検出しているかどうかを判断することができる値であり、実験等により経験的に得られる値である。
【００９３】
アンプ８６ｃから出力されるハイレベルまたはローレベル（Ｈ／Ｌ）の信号は、アンド回路９０の一方入力端に入力される。また、アンド回路９０の他方入力端には、ガントリガ１４のオン／オフに応じてＣＰＵ３０から出力されるハイレベルまたはローレベルの信号が入力される。このアンド回路９０の出力すなわちハイレベルまたはローレベルの信号は、ＣＰＵ３０に入力される。
【００９４】
ＣＰＵ３０は、このハイレベルまたはローレベルの信号の時系列変化を検出（サンプリング）し、フラッシュ画面の描画が開始されるタイミング（第１タイミング）を決定する。
【００９５】
なお、それ以外の構成については、第１実施例（図２）と同じであるため、重複した説明は省略することにする。また、ゲーム機２２およびＴＶ受像機２６についても、図２と同じであるため、図１３においては省略してある。
【００９６】
ただし、ＲＡＭ４０には、広域光センサ８６用の領域９２がさらに設けられ、その領域９２には、基準点検出済フラグ９４およびそれに関連づけて基準点レジスタ９６が設けられる。また、領域９２には、垂直ＢＫ期間検出済フラグ９８が設けられる。さらに、領域９２には、立ち下がりフラグ１００およびそれに関連づけれ立ち下がりレジスタ１０２が設けられる。さらにまた、領域９２には、立ち上がりフラグ１０４およびそれに関連づけて立ち上がりレジスタ１０６が設けられる。
【００９７】
この第２実施例のシステム１０では、中域光センサ１８で描画開始位置を検出できない場合に、広域光センサ８６を用いて描画開始位置が検出される。つまり、広域光センサ８６では、中域光センサ１８よりも広い範囲８８についての光を検出することができるが、その分精度が低くなるため、中域光センサ１８の出力に基づく検出結果が優先される。
【００９８】
たとえば、図１５に示すように、表示画面２６ａ全体を中域光センサ１８および広域光センサ８６の両方で検出することができる場合には、映像信号に対応する中域光センサ１８の出力および広域光センサ８６の出力に基づいて描画開始位置を検出することができる。このような場合には、上述したように、中域光センサ１８の出力に基づいて描画開始位置が検出される。
【００９９】
しかし、プレイヤがコントローラ１２を表示画面２６ａに近づけ過ぎてしまった場合には、図１６に示すように、表示画面２６ａ全体を中域光センサ１８で検出することができない。したがって、この場合には、映像信号に対応する中域光センサ１８の出力の波形から分かるように、水平ラインを正常に検出していない。つまり、第１ラインを正常に検出していないため、描画開始位置を検出することができない。このため、図１６に示すような場合には、表示画面２６ａ全体を検出することができる広域光センサ８６の出力に基づいて描画開始位置が検出される。
【０１００】
また、図１７〜図２０に示すように、着弾点が表示画面２６ａの端近傍である場合にも、中域光センサ１８で表示画面２６ａ全体を検出することができない。
【０１０１】
図１７に示すように、着弾点が表示画面２６ａの上端近傍である場合には、中域光センサ１８は表示画面２６ａの下端部を検出することができない。このような場合には、映像信号の変化に対応する中域光センサ１８の出力は末端ラインに近づくに従ってパルス幅が短くなっている。しかし、第１ラインを含む数ライン分の水平ラインを正常に検出しているので、中域光センサ１８の出力に基づいて描画開始位置を検出することができる。
【０１０２】
しかし、図１８に示すように、着弾点が表示画面２６ａの下端近傍である場合には、中域光センサ１８は表示画面２６ａの上端部を検出することができない。このような場合には、映像信号の変化に対応して中域光センサ１８の出力は第１ラインのパルス幅が短くなり、末端ラインに向かうに従ってパルス幅が広くなる。つまり、第１ラインを正常に検出することができないので、中域光センサ１８の出力に基づいて描画開始位置を検出することもできない。一方、広域光センサ８６は、表示画面２６ａ全体を検出することができるので、この場合には、広域光センサ８６の出力に基づいて描画描画開始位置が検出される。
【０１０３】
さらに、図１９に示すように、着弾点が表示画面２６ａの右端近傍である場合には、中域光センサ１８は表示画面２６ａの左端部分を検出することができない。このため、映像信号の変化に対応して中域光センサ１８の出力は全ラインについてパルス幅が短くなってしまう。つまり、第１ラインを正常に検出することができないので、描画開始位置を検出することもできない。一方、広域光センサ８６は、表示画面２６ａ全体を検出することができるので、この場合にも、広域光センサ８６の出力に基づいて描画開始位置が検出される。
【０１０４】
さらにまた、図２０に示すように、着弾点が表示画面２６ａの左端近傍である場合には、中域光センサ１８は表示画面２６ａの右端部分を検出することができない。このため、映像信号の変化に対応して中域光センサ１８の出力は全ラインについてパルス幅が短くなってしまう。つまり、第１ラインを正常に検出することができないので、描画開始位置を検出することもできない。一方、広域光センサ８６は、表示画面２６ａ全体を検出することができるので、この場合にも、広域光センサ８６の出力に基づいて描画開始位置が検出される。
【０１０５】
このようなシステム１０では、図７で示したように、コントローラ１２のＣＰＵ３０とゲーム機２２のＣＰＵ４６とがそれぞれ処理を実行することにより、ゲームが進行（実行）される。ただし、上述したように、中域光センサ１８または広域光センサ８６のいずれか一方を用いて描画開始位置を検出するので、着弾点の座標算出処理が第１実施例とは異なる。したがって、この着弾点の座標算出処理について説明することにする。
【０１０６】
なお、それ以外の処理については、第１実施例と同じであるため、重複した説明は省略する。
【０１０７】
この第２実施例における着弾点の座標算出処理は、図２１および図２２に示すフロー図で表される。コントローラ１２のＣＰＵ３０は、着弾点の座標算出処理を開始すると、ステップＳ１１１で全フラグをクリア（オフ）する。つまり、図１４で示したＲＡＭ４０内に設けた着弾点検出済フラグ６４、基準点検出済フラグ６８、垂直ＢＫ期間検出済フラグ７２、立ち下がりフラグ７４、立ち上がりフラグ７８、基準点検出済フラグ９４、垂直ＢＫ期間検出済フラグ９８、立ち下がりフラグ１００および立ち上がりフラグ１０４をオフする。
【０１０８】
続いて、ステップＳ１１３でガントリガ１４がオンされてから２フレーム期間経過したかどうかを判断する。ステップＳ１１３で“ＹＥＳ”であれば、つまり２フレーム期間を経過すると、そのまま着弾点の座標検出処理をリターンする。
【０１０９】
一方、ステップＳ１１３で“ＮＯ”であれば、つまり２フレーム期間を経過していなければ、ステップＳ１１５で基準点検出済フラグ６８がオンかどうかを判断する。ステップＳ１１５で“ＹＥＳ”であれば、つまり基準点検出済フラグ６８がオンであれば、そのままステップＳ１１９に進む。一方、ステップＳ１１５で“ＮＯ”であれば、つまり基準点検出済フラグ６８がオフであれば、ステップＳ１１７で図９および図１０に示したフロー図を用いて説明した基準点検出処理を実行してからステップＳ１１９に進む。
【０１１０】
ステップＳ１１９では、基準点検出済フラグ９４がオンかどうかを判断する。ステップＳ１１９で“ＹＥＳ”であれば、つまり基準点検出済フラグ９４がオンであれば、そのままステップＳ１２３に進む。一方、ステップＳ１１９で“ＮＯ”であれば、つまり基準点検出済フラグ９４がオフであれば、ステップＳ１２１で基準点検出処理を実行してからステップＳ１２３に進む。
【０１１１】
なお、このステップＳ１２１の基準点検出処理は、図９および図１０に示したフロー図を用いて説明した処理と同じであるが、ステップＳ６１、Ｓ６７、Ｓ７９、Ｓ８５においては、ＣＰＵ３０は広域光センサ８６の出力を読み取り（検出し）、処理を実行する。また、それら以外のステップでは、ＲＡＭ４０の領域９２に設けられたフラグ（９４、９８、１００および１０４）およびレジスタ（９６、１０２および１０６）を用いて処理が実行される。
【０１１２】
ステップＳ１２３では、着弾点検出済フラグ６４がオンかどうかを判断する。ステップＳ１２３で“ＹＥＳ”であれば、つまり着弾点検出済フラグ６４がオンであれば、そのままステップＳ１２７に進む。一方、ステップＳ１２３で“ＮＯ”であれば、つまり着弾点検出済フラグ６４がオフであれば、ステップＳ１２５で図１１に示したフロー図を用いて説明した着弾点検出処理を実行してからステップＳ１２７に進む。
【０１１３】
ステップＳ１２７では、着弾点検出済フラグ６４および基準点検出済フラグ６８の両方がオンであるかどうかを判断する。ステップＳ１２７で“ＹＥＳ”であれば、つまり着弾点検出済フラグ６４および基準点検出済フラグ６８の両方がオンであれば、ステップＳ１２９で対応するレジスタ値から着弾点の座標を算出してリターンする。つまり、ステップＳ１２９では、着弾点レジスタ６６のレジスタ値と基準点レジスタ７０のレジスタ値との差分が検出され、ＲＯＭ３８に記憶された座標テーブルを参照して、座標が算出（特定）される。
【０１１４】
一方、ステップＳ１２７で“ＮＯ”であれば、つまり着弾点検出済フラグ６４および基準点検出済フラグ６８の少なくとも一方がオフであれば、中域光センサ１８で描画開始位置を検出することができない或いは描画開始位置および着弾点の少なくとも一方を検出していないと判断し、ステップＳ１３１で着弾点検出フラグ６４および基準点検出済フラグ９４の両方がオンかどうかを判断する。
【０１１５】
ステップＳ１３１で“ＮＯ”であれば、つまり着弾点検出フラグ６４および基準点検出済フラグ９４の少なくとも一方がオフであれば、描画開始位置および着弾点位置の少なくとも一方を検出していないと判断し、ステップＳ１１３に戻る。
【０１１６】
一方、ステップＳ１３１で“ＹＥＳ”であれば、つまり着弾点検出フラグ６４および基準点検出済フラグ９４の両方がオンであれば、ステップＳ１３３で対応するレジスタ値から着弾点の座標を算出してからリターンする。つまり、ステップＳ１３３では、着弾点レジスタ６６のレジスタ値と基準点レジスタ９６のレジスタ値との差分が検出され、ＲＯＭ３８に記憶された座標テーブルを参照して、座標が特定される。
【０１１７】
この実施例によれば、広域センサを用いるので、中域センサの出力に基づいて描画開始位置（第１タイミング）を検出することができない場合であっても、描画開始位置を検出することができる。言い換えると、プレイヤが表示画面に近づき過ぎた場合や表示画面の端部を狙った場合であっても、広域センサの出力に基づいて描画開始位置を検出することができる。つまり、プレイヤがコントローラを構える位置に拘わらず、正常に着弾点を検出することができるので、ゲーム性を損ねることがない。
【０１１８】
＜第３実施例＞
第３実施例のシステム１０は、ハードを用いて着弾点の座標を算出するようにした以外は、第２実施例と同じであるため、重複した説明は省略する。
【０１１９】
つまり、この第３実施例では、コントローラ１２の構成が第２実施例で示した構成と異なる。具体的には、図２３に示すように、コントローラ１２は構成される。
【０１２０】
なお、図２３において、狭域光センサ１６、中域光センサ１８および広域光センサ８６の一部については第２実施例と同じものが用いられるため、第２実施例（図１３）と同じ参照番号を付してある。
【０１２１】
図２３を参照して、このコントローラ１２では、広域光センサ８６のアンプ８６ｃには、比較器１１０ａが接続され、同様に、中域光センサ１８のアンプ１８ｃには、比較器１１０ｂが接続され、さらに、狭域光センサ１６のアンプ１６ｃには、比較器１１０ｃが接続される。
【０１２２】
比較器１１０ａの出力端は、サンプリング用カウンタ１１２ａに接続されるとともに、オア（ＯＲ）回路１１４ａの一方入力端に接続される。また、比較器１１０ｂの出力端は、サンプリング用カウンタ１１２ｂに接続されるとともに、オア回路１１４ｂの他方入力端に接続される。比較器１１０ｃの出力端は、アンド回路１１６の入力端に接続され、オア回路１１４ａおよびオア回路１１４ｂの出力端もまたアンド回路１１６の入力端に接続される。
【０１２３】
サンプリング用カウンタ１１２ａの２つの出力端は、比較器１１８ａに接続され、サンプリング用カウンタ１１２ｂの２つの出力端は、比較器１１８ｂに接続される。比較器１１８ａはテーブル１２０ａを含み、比較器１１８ｂはテーブル１２０ｂを含む。このテーブル１２０ａおよびテーブル１２０ｂには、垂直ＢＫ期間、水平走査期間および水平ＢＫ期間のそれぞれに対応するカウント値データが記述される。
【０１２４】
比較器１１８ａの一方出力端はカウンタ１２２ａのリセット端子に接続され、同じ比較器１１８ａの他方出力端はホストインターフェイス（以下、単に「ホストＩＦ」という。）１２４に接続される。また、比較器１１８ｂの一方出力端はカウンタ１２２ｂのリセット端子に接続され、同じ比較器１１８ｂの他方出力端はホストＩＦ１２４に接続される。
【０１２５】
また、カウンタ１２２ａおよびカウンタ１２２ｂには、ラッチ回路１２６の出力端が接続され、ラッチ回路１２６の入力端には上述したアンド回路１１６の出力端が接続される。また、ラッチ回路１２６の出力端は、ホストＩＦ１２４に接続される。このホストＩＦ１２４には、上述の実施例で説明したような座標テーブル１２４ａが設けられる。
【０１２６】
さらに、ホストＩＦ１２４には、ＲＦ回路１２８およびトリガ回路１３０が接続される。なお、ＲＦ回路１２８は、第２実施例の図１３に示した無線通信回路４４（アンテナ２０を含む）と同じであり、トリガ回路１３０は、同じく図１３で示したガントリガ１４と同じである。
【０１２７】
このようなコントローラ１２では、広域光センサ８６の広角レンズ８６ａを経た光がＰＤ８６ｂに入射される。アンプ（ＡＭＰ）８６ｃは、ＰＤ８６ｂに入射された光の明るさに応じた電気信号を生成する。生成された電気信号は、比較器１１０ａに入力され、比較器１１０ａはアンプ８６ｃから入力された電気信号のレベルを所定の閾値（所定レベル）と比較し、ハイレベルまたはローレベル（Ｈ／Ｌ）の信号を出力する。つまり、比較器１１０ａは、電気信号のレベルが所定レベル以上であれば、すなわちＰＤ８６ｂに入射された光が高輝度であれば、ハイレベルの信号を出力する。一方、比較器１１０ａは、電気信号のレベルが所定レベルより小さければ、すなわちＰＤ８６ｂに入射された光が低輝度であれば、ローレベルの信号を出力する。
【０１２８】
なお、所定レベルは、上述の実施例と同様に、フラッシュ光を検出しているかどうかを判断することができる値であり、予め実験等によって経験的に得られる値である。以下、この実施例において同じである。
【０１２９】
比較器１１０ａの出力すなわちハイレベル／ローレベル（Ｈ／Ｌ）の信号は、サンプリング用カウンタ１１２ａおよびオア回路１１４ａの一方入力端に入力される。サンプリング用カウンタ１１２ａは、連続するハイレベルまたはローレベルをカウントし、比較器１１８ａにカウントしている信号のレベル（ＨまたはＬ）およびカウント値を出力する。
【０１３０】
比較器１１８ａは、連続するローレベルのカウント値を受けた後、連続するハイレベルのカウント値を受けると、をテーブル１２０ａを参照して、連続したローレベルのカウント値が垂直ＢＫ期間に相当するカウント値以上であるかどうかを比較する。比較した結果、ローレベルのカウント値すなわち低輝度の状態が少なくとも垂直ＢＫ期間に相当するカウント値以上であれば、つまり垂直ＢＫ期間を検出すれば、比較器１１８ａは、垂直ＢＫ期間の終了時点でリセットパルスをカウンタ１２２ａに出力する。つまり、第１ラインの開始時点（第１タイミング）で、カウンタ１２２ａはリセット（カウント値＝０）され、水平走査に同期したドットのカウントを開始する。その後、カウンタ１２２ａは、カウントの停止信号が入力されるまでカウントし続ける。また、比較機１１８ａは、垂直ＢＫ期間を検出すると、比較器１１８ａはホストＩ／Ｆ１２４にハイレベル（Ｈ）の信号を出力する。
【０１３１】
一方、連続したローレベルのカウント値が垂直ＢＫ期間に相当するカウント値に満たなければ、つまり垂直ＢＫ期間を検出しなければ、比較機１１８ａは、カウンタ１２２ａにリセットパルスを出力せずに、ホストＩ／Ｆ１２４にローレベル（Ｌ）の信号を出力する。
【０１３２】
垂直ＢＫ期間を検出した後では、比較器１１８ａは、引き続きサンプリング用カウンタ１１２ａから出力される信号のレベル（Ｈ／Ｌ）およびカウント値に基づいて、水平走査期間および水平ＢＫ期間を交互に繰り返し検出するかどうかを判断する。具体的には、比較器１１８ａは、連続するハイレベルのカウント値すなわち高輝度の状態が水平走査期間に相当するカウント値と一致するかどうかを、テーブル１２０ａを参照して比較判断する。また、比較器１１８ａは、連続するローレベルのカウント値すなわち低輝度の状態が水平ＢＫ期間に相当するカウント値と一致するかどうかを、テーブル１２０ａを参照して比較判断する。
【０１３３】
正常に水平走査期間および水平ＢＫ期間を交互に繰り返し検出している間では、つまり比較結果が一致を示している間では、比較器１１８ａは、ハイレベルの信号をホストＩＦ１２４およびオア回路１１４ｂの一方入力端に出力し、そのハイレベルの信号を維持する。ホストＩＦ１２４は、このハイレベルの信号を受けて、フラッシュ画面を正常に検出していると判断する。
【０１３４】
しかし、水平走査期間或いは水平ＢＫ期間の検出に一度でも失敗した場合には、つまり比較結果が一致を示さない場合には、比較器１１８ａは、ローレベルの信号をホストＩＦ１２４およびオア回路１１４ｂの一方入力端に出力する。すなわち、フラッシュ画面を正常に検出していない場合には、比較器１１８ａは、ローレベルの信号を出力し、それ以降では、ローレベルの信号を維持して、フラッシュ画面を検出しない。ホストＩＦ１２４は、このローレベルの信号を受けて、フラッシュ画面を正常に検出していないと判断する。
【０１３５】
中域光センサ１８もまた、広角レンズ１８ａを経た光の明るさを検出し、この中域光センサ１８の出力に基づいて、フラッシュ画面が検出される。このフラッシュ画面の検出についての各コンポーネント（比較器１１０ｂ、サンプリング用カウンタ１１２ｂ、比較器１１８ｂおよびカウンタ１２２ｂ）の動作は、上述した広域光センサ８６の場合と同じであるため、重複した説明は省略する。ただし、比較器１１０ｂの出力は、サンプリングカウンタ１１２ｂおよびオア回路１１４ａの他方入力端に入力され、比較器１２０ｂの出力はホストＩＦ１２４およびオア回路１１４ｂの他方入力端に入力される。
【０１３６】
さらに、狭域光センサ１６では、対物レンズ１６ａを経た光がＰＤ１６ｂに入射され、アンプ１６ｃはＰＤ１６ｂに入射された光の明るさに応じた電気信号を生成する。そして、比較器１１０ｃは、電気信号のレベルを所定レベルと比較し、ハイレベルまたはローレベル（Ｈ／Ｌ）の信号を出力する。つまり、比較器１１０ｃは、電気信号のレベルが所定レベル以上であれば、すなわちＰＤ１６ｂに入射された光が高輝度であれば、ハイレベルの信号を出力する。一方、比較器１１０ｃは、電気信号のレベルが所定レベルより小さければ、すなわちＰＤ１６ｂに入射された光が低輝度であれば、ローレベルの信号を出力する。
【０１３７】
したがって、オア回路１１４ａの出力およびオア回路１１４ｂの出力がハイレベルであり、かつ比較器１１０ｃの出力がハイレベルである場合には、アンド回路１１６からハイレベルの信号が出力され、このハイレベルの信号はラッチ回路１２６でラッチされ、カウンタ１２２ａおよびカウンタ１２２ｂに入力されるとともに、ホストＩＦ１２４に入力される。
【０１３８】
カウンタ１２２ａおよびカウンタ１２２ｂでは、ラッチ回路１２６からハイレベルの信号（カウントの停止信号）が入力されると、カウントを停止し、カウント値をホストＩＦ１２４に与える。また、ホストＩＦ１２４は、ラッチ回路１２６からハイレベルの信号を受けて、着弾点を検出したと判断する。
【０１３９】
つまり、カウンタ１２２ａおよびカウンタ１２２ｂは、垂直ＢＫ期間の終了時点すなわち第１ラインの開始時点（描画開始位置）から着弾点位置までのドット数をカウントしている。言い換えると、カウンタ１２２ａおよびカウンタ１２２ｂは、フラッシュ画面の描画が開始される第１タイミングから着弾点が明るくなる第２タイミングまでカウントしている。したがって、ホストＩＦ１２４は、カウンタ１２２ａ或いはカウンタ１２２ｂのカウント値（ドット数）に基づいて、座標テーブル１２４ａを参照して、着弾点の座標を特定（同定）する。着弾点の座標が特定されると、ホストＩＦ１２４はＲＦ回路１２８を介して座標データをゲーム機２２に送信する。
【０１４０】
このように、第３実施例においては、描画開始位置からカウンタ１２２ａおよびカウンタ１２２ｂのカウントを開始するので、上述の実施例で示したように、カウント値の差分を算出する必要がない。
【０１４１】
ただし、カウンタ１２２ａまたはカウンタ１２２ｂのいずれのカウント値を採用するかは、ホストＩＦ１２４は比較器１１８ａまたは比較器１１８ｂの出力がハイレベルであるかどうに応じて決定する。これは、第２実施例で示したように、中域光センサ１８でフラッシュ画面、特に、第１ラインを正確に検出していない場合には、着弾点を正確に検出することができないためである。
【０１４２】
しかし、中域光センサ１８および広域光センサ８６の両方で正確にフラッシュ画面を検出している場合には、つまり比較器１１８ａおよび比較器１１８ｂの両方からハイレベルの信号が入力されている場合には、ホストＩＦ１２４は、中域光センサ１８に設けられたカウンタ１２２ｂのカウント値を採用する。つまり、中域光センサ１８の検出結果が優先される。これは、第２実施例で示したように、広域光センサ８６は、中域光センサ１８よりも広い範囲の光を検出することができるが、精度が低いからである。
【０１４３】
一方、オア回路１１４ａの出力、オア回路１１４ｂの出力および比較器１１０ｃの出力の少なくとも１つの出力がローレベルである場合には、アンド回路１１６からローレベルの信号が出力される。すると、ラッチ回路１１６からもローレベルの信号が出力され、カウンタ１２２ａ、カウンタ１２２ｂおよびホストＩＦ１２４に入力される。したがって、カウンタ１２２ａおよびカウンタ１２２ｂはカウントを続行し、ホストＩＦ１２４は着弾点を検出していないと判断する。
【０１４４】
たとえば、プレイヤがガントリガ１４をオンすると、これに応答して、ホストＩＦ１２４は狭域光センサ１６、中域光センサ１８および広域光センサ８６を起動（能動化）するとともに、ＲＦ回路１２８を介してゲーム機２２にフラッシュ信号を送信する。すると、ゲーム機２２は、ＴＶ受像機２６の表示画面２６ａにフラッシュ画面を描画する。
【０１４５】
フラッシュ画面の描画が開始されると、中域光センサ１８（または／および広域光センサ８６）はフラッシュ光を検出し、その出力すなわち比較器１１０ｂ（または／および比較器１１０ａ）の出力は、図２４（Ａ）のように変化される。中域光センサ１８（または／および広域光センサ８６）の出力に基づいて、垂直ＢＫ期間を検出すると、比較器１１８ｂ（または／および比較器１１８ａ）は、カウンタ１２２ｂ（または／およびカウンタ１２２ａ）にリセットパルスを出力するとともに、正常に水平走査期間および水平ＢＫ期間を交互に繰り返し検出している間は、図２４（Ｂ）に示すようなフラッシュ画面の検出信号すなわちハイレベルの信号をホストＩＦ１２４およびオア回路１１４ｂに出力する。
【０１４６】
また、狭域光センサ１６の出力すなわち比較器１１０ｃの出力は、図２４（Ｃ）のように示され、アンド回路１１６の出力（ＡＮＤ信号）は、図２４（Ｄ）のように示される。つまり、広域光センサ８６および中域光センサ１８の少なくとも一方によって、フラッシュ画面を正常に検出しているときに、狭域光センサ１６の出力が変化すると、つまり比較器１１０ｃからの出力がハイレベルになると、その比較器１１０ｃの出力と同様に変化するＡＮＤ信号が得られる。このＡＮＤ信号がハイレベルに変化した時点が着弾点位置が明るくなった時点であり、そのハイレベルの信号がラッチ回路１２６でラッチされる。そして、カウンタ１２２ａおよびカウンタ１２２ｂはカウントを終了し、ホストＩＦ１２４は着弾点を検出したと判断して、カウンタ１２２ａ或いはカウンタ１２２ｂのカウント値から着弾点位置を特定する。
【０１４７】
このように、ソフトウェアを用いずに、ハードウェアにより着弾点の座標を特定することもできる。
【０１４８】
しかし、図２５（Ａ）に示すように、広域光センサ８６および中域光センサ１８の両方でフラッシュ画面を正常に検出することができない場合には、つまり、水平走査期間および水平ＢＫ期間の少なくとも一方の検出に失敗たり、広域光センナ８６および中域光センサ１８の出力すなわち比較器１１０ａおよび比較器１１０ｂの出力がローレベルになったりすると、図２５（Ｂ）に示すように、フラッシュ画面の検出信号すなわち比較器１１８ａおよび比較器１１８ｂの出力が途中でローレベルになってしまう。このように、フラッシュ画面を正常に検出していない状態では、図２５（Ｃ）に示すように、狭域光センサ１６からハイレベルの信号の入力があっても、図２５（Ｄ）に示すように、アンド回路１２６の出力（ＡＮＤ信号）はローレベルのままである。さらには、図２５（Ｅ）に示すように、ラッチ回路１２６の出力もローレベルのままであるため、ホストＩＦ１２４は着弾点を検出していないと判断する。このように、フラッシュ画面の検出に失敗した場合には、その後に狭域光センサ１６の出力すなわち比較器１１０ｃの出力が変化しても、着弾点の座標を特定することができない。
【０１４９】
なお、第３実施例では、着弾点の座標を算出して、座標データをゲーム機に送信するようにしているが、カウンタ１２２ａ或いはカウンタ１２２ｂから得られるカウント値のデータをゲーム機２２に送信して、ゲーム機２２側で着弾点の座標を特定するようにしてもよい。
【０１５０】
また、第３実施例で示した座標テーブル１２４ａとテーブル１２０ａおよびテーブル１２０ｂに記述された垂直ＢＫ期間、水平ＢＫ期間および水平走査期間のそれぞれに対応するカウント値のデータとは、ホストＩＦ１２４によって書き換えることが可能であるため、それらを書き換えることにより、通常のＴＶ受像機２６に限らず、ハイビジョンのＴＶ受像機においても着弾点を検出することができる。
【図面の簡単な説明】
【図１】この発明の一実施例を示す図解図である。
【図２】図１実施例の構成を示すブロック図である。
【図３】コントローラに設けられたＲＯＭのマッピング状態を示す図解図である。
【図４】コントローラに設けられたＲＡＭのマッピング状態を示す図解図である。
【図５】（Ａ）はＴＶフレームの遷移を示すタイミング図であり、（Ｂ）は映像信号を示す波形図であり、（Ｃ）はトリガがオンされたときの電圧変化を示す波形図であり、（Ｄ）は中域光センサの出力を示す波形図であり、（Ｅ）は狭域光センサの出力を示す波形図である。
【図６】図１実施例に適用される光センサの検知範囲の一例を示す図解図である。
【図７】ゲーム機およびコントローラの動作の一部を示すフロー図である。
【図８】コントローラの動作の他の一部を示すフロー図である。
【図９】コントローラの動作のその他の一部を示すフロー図である。
【図１０】コントローラの動作のさらに他の一部を示すフロー図である。
【図１１】コントローラの動作の他の一部を示すフロー図である。
【図１２】この発明の他の実施例に適用される光センサの検知範囲の一例を示す図解図である。
【図１３】図１２実施例のコントローラの構成を示すブロック図である。
【図１４】図１２実施例のコントローラに設けられたＲＡＭのマッピング状態を示す図解図である。
【図１５】図１２実施例の動作の一部を示す図解図である。
【図１６】図１２実施例の動作の他の一部を示す図解図である。
【図１７】図１２実施例の動作のその他の一部を示す図解図である。
【図１８】図１２実施例の動作のさらに他の一部を示す図解図である。
【図１９】図１２実施例の動作の他の一部を示す図解図である。
【図２０】図１２実施例の動作のその他の一部を示す図解図である。
【図２１】図１２実施例のコントローラの動作の一部を示すフロー図である。
【図２２】図１２実施例のコントローラの動作の他の一部を示すフロー図である。
【図２３】この発明のその他の実施例に適用されるコントローラの構成を示すブロック図である。
【図２４】（Ａ）は広域光センサまたは中域光センサの出力の一例を示す波形図であり、（Ｂ）は比較器の出力の一例を示す波形図であり、（Ｃ）は狭域光センサの出力の一例を示す波形図であり、（Ｄ）はＡＮＤ信号の一例を示す波形図であり、（Ｅ）はラッチ回路の出力の一例を示す波形図である。
【図２５】（Ａ）は広域光センサまたは中域光センサの出力の他の一例を示す波形図であり、（Ｂ）は比較器の出力の他の一例を示す波形図であり、（Ｃ）は狭域光センサの出力の他の一例を示す波形図であり、（Ｄ）はＡＮＤ信号の他の一例を示す波形図であり、（Ｅ）はラッチ回路の出力の他の一例を示す波形図である。
【符号の説明】
１０  …ガンゲームシステム
１２  …ガンコントローラ
１４  …ガントリガ
１６  …狭域光センサ
１８  …中域光センサ
２２  …ゲーム機
２６  …ＴＶ受像機
３０，４６  …ＣＰＵ
４４，４８  …無線通信ユニット
８６  …広域光センサ
１１０ａ，１１０ｂ，１１０ｃ，１１８ａ，１１８ｂ  …比較器
１１２ａ，１１２ｂ  …サンプリング用カウンタ
１２２ａ，１２２ｂ  …カウンタ
１２４  …ホストＩＦ
１２６  …ラッチ回路
【図１】
0004790930.tif 000002
【図２】
0004790930.tif 000003
【図３】
0004790930.tif 000004
【図４】
0004790930.tif 000005
【図５】
0004790930.tif 000006
【図６】
0004790930.tif 000007
【図７】
0004790930.tif 000008
【図８】
0004790930.tif 000009
【図９】
0004790930.tif 000010
【図１０】
0004790930.tif 000011
【図１１】
0004790930.tif 000012
【図１２】
0004790930.tif 000013
【図１３】
0004790930.tif 000014
【図１４】
0004790930.tif 000015
【図１５】
0004790930.tif 000016
【図１６】
0004790930.tif 000017
【図１７】
0004790930.tif 000018
【図１８】
0004790930.tif 000019
【図１９】
0004790930.tif 000020
【図２０】
0004790930.tif 000021
【図２１】
0004790930.tif 000022
【図２２】
0004790930.tif 000023
【図２３】
0004790930.tif 000024
【図２４】
0004790930.tif 000025
【図２５】
0004790930.tif 000026