(57)【要約】      （修正有）【課題】点滅光源や疑似振動光源のノイズ光源をゲーム処理の中で検出することで、指示位置を適切に反映したゲーム用の画像生成を可能とする画像生成システムを提供すること。【解決手段】表示部１９０の上下位置に配置された一対の赤外線発光源としての識別体８ａ、８ｂをガン型コントローラ１０に内蔵された赤外線カメラ１８で撮影し、この撮像画像に含まれる光点の位置から検出された前記各識別体の位置に基づき、前記表示部１９０上における前記ガン型コントローラ１０の指示位置３０を特定し、特定された前記指示位置を反映したゲーム用の画像を生成する画像生成システムである。  このシステムは、前記撮像画像に含まれる光点の中から点滅光源及び疑似振動光源の少なくとも一方をノイズ光源として特定することで、前記撮像画像に含まれる光点の中から前記複数の識別体の光源を特定する識別体光源特定処理を行う識別体光源特定部１１６を含む。【選択図】図２
2007330534.tif 000002
【特許請求の範囲】
【請求項１】
ゲーム用の画像を生成するためのプログラムであって、
非可視光を発する光源を光点として撮影可能な撮像手段を有するポインティングデバイスによる表示部上における指示位置を特定するために、前記撮像手段で撮影した撮像画像に含まれる前記光点の位置から前記表示部に関連づけられて配置された非可視光を発する複数の識別体の位置を検出する識別体位置検出部と、
前記検出された前記複数の識別体の位置に基づき、前記表示部上における前記ポインティングデバイスの指示位置を特定する位置特定処理を行う指示位置特定部と、
してコンピュータを機能させ、特定された前記指示位置を反映したゲーム画像を生成するとともに、
前記識別体位置検出部は、
前記撮像画像に含まれる光点の中から点滅光源及び疑似振動光源の少なくとも一方をノイズ光源として特定することで、前記撮像画像に含まれる光点の中から前記複数の識別体の光源を特定する識別体光源特定処理を行う識別体光源特定部を含むことを特徴とするプログラム。
【請求項２】
請求項１において、
前記識別体光源特定部は、
前記撮像手段から１フレーム内に前記撮像画像を複数回取得し、前記識別体光源特定処理を行うことを特徴とするプログラム。
【請求項３】
請求項２において、
前記識別体光源特定部は、
前記撮像手段から前記撮像画像を取得する毎に、前記撮像画像に含まれている光点の光点生存時間を求める生存時間算定部を含み、
前記識別体光源特定処理では、
前記光点生存時間が所定時間に達していない光点を前記点滅光源として特定することで、前記撮像画像に含まれる光点の中から前記複数の識別体の光源を特定することを特徴とするプログラム。
【請求項４】
請求項２、３のいずれかにおいて、
前記識別体光源特定部は、
前記撮像手段から前記撮像画像を取得する毎に、前記撮像画像に含まれている光点の加速度の変化量を求める加速度変化量算定部を含み、
前記識別体光源特定処理では、
前記光点の加速度の変化量が閾値を超えた回数が高い光点を前記疑似振動光源として特定することで、前記撮像画像に含まれる光点の中から前記複数の識別体の光源を特定することを特徴とするプログラム。
【請求項５】
請求項４において、
前記加速度変化量算定部は、
前記撮像手段から前記撮像画像を取得する毎に、前記撮像画像に含まれる前記光点の少なくとも位置を含む情報を光点情報として履歴する光点情報履歴部を含み、
前記光点情報の履歴に基づき、前記光点の加速度の変化量を求めることを特徴とするプログラム。
【請求項６】
請求項５において、
前記光点情報履歴部は、
前記撮像手段から前記撮像画像を取得する毎に、光点履歴バッファに格納された前記光点情報を更新することを特徴とするプログラム。
【請求項７】
請求項１〜６のいずれかにおいて、
前記識別体位置検出部は、
前記撮像画像に含まれる前記光点の位置から前記表示部の外部に設置された前記複数の識別体の位置を検出することを特徴とするプログラム。
【請求項８】
請求項１〜７のいずれかにおいて、
前記ポインティングデバイスはシューティングデバイスとして形成され、
前記指示位置特定部は、
前記指示位置をシューティングデバイスの照準位置とすることを特徴とするプログラム。
【請求項９】
ゲーム用の画像を生成するためのプログラムであって、
電磁波発生源を撮影可能な撮像手段を有するポインティングデバイスによる表示部上における指示位置を特定するために、前記撮像手段で撮影した撮像画像に含まれる電磁波発生源の位置から前記表示部に関連づけられて配置された電磁波を発する複数の識別体の位置を検出する識別体位置検出部と、
前記検出された前記複数の識別体の位置に基づき、前記表示部上における前記ポインティングデバイスの指示位置を特定する位置特定処理を行う指示位置特定部と、
してコンピュータを機能させ、特定された前記指示位置を反映したゲーム画像を生成するとともに、
前記識別体位置検出部は、
前記撮像画像に含まれる電磁波発生源の中から点滅電磁波発生源及び疑似振動電磁波発生源の少なくとも一方をノイズ源として特定することで、前記撮像画像に含まれる電磁波発生源の中から前記複数の識別体の電磁波発生源を特定する識別体特定処理を行う識別体特定部を含むことを特徴とするプログラム。
【請求項１０】
請求項１〜９のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項１１】
ゲーム用の画像を生成するための画像生成システムであって、
非可視光を発する光源を光点として撮影可能な撮像手段を有するポインティングデバイスによる表示部上における指示位置を特定するために、前記撮像手段で撮影した撮像画像に含まれる前記光点の位置から前記表示部に関連づけられて配置された非可視光を発する複数の識別体の位置を検出する識別体位置検出部と、
前記検出された前記複数の識別体の位置に基づき、前記表示部上における前記ポインティングデバイスの指示位置を特定する位置特定処理を行う指示位置特定部と、
を含み、特定された前記指示位置を反映したゲーム画像を生成するとともに、
前記識別体位置検出部は、
前記撮像画像に含まれる光点の中から点滅光源及び疑似振動光源の少なくとも一方をノイズ光源として特定することで、前記撮像画像に含まれる光点の中から前記複数の識別体の光源を特定する識別体光源特定処理を行う識別体光源特定部を含むことを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体、及び画像生成システムに関する。
【背景技術】
【０００２】
従来より、ガン型コントローラ（広義にはシューティングデバイス。更に広義にはポインティングデバイス）を用いて画面上のターゲットオブジェクトをシューティングして楽しむガンゲームと呼ばれる分野のゲームが人気を博している。このガンゲームでは、プレーヤ（操作者）がガン型コントローラのトリガを引くと、ショットの着弾位置（広義には指示位置）が、ガン型コントローラが内蔵するカメラ（撮像手段）を利用して光学的に検出される。そして、検出された着弾位置にターゲット（標的）オブジェクトが存在する場合には当たりと判定され、ターゲットオブジェクトが存在しない場合には外れと判定される。このようなガンゲームをプレイすることによりプレーヤは、現実世界における射撃を仮想体験できるようになる。
【０００３】
このようなガンゲームにおいては、ゲーム画面内の所定位置に非可視光である２つの赤外光スポットを投写し、これをガン型コントローラに内蔵された赤外線撮像手段で撮影し、この撮像画像データに含まれる２つの赤外光スポットの位置に基づき、着弾位置を検出する構成を採用していた。
【０００４】
このような着弾位置検出のための従来技術としては、例えば特開平８−２２６７９３号公報に記載のものがある。
【０００５】
しかし、このような従来技術では、表示画面の周囲に、赤外光を発する他のノイズ光源が存在する場合やノイズ光源が表示部上に映り込んだ場合、着弾位置の検出の妨げになるという問題があった。
【０００６】
特に、このようなガンゲームを屋内で行う場合、蛍光灯や各種照明器具等の所定の周期で点滅する点滅光源や疑似振動光源が前記ノイズ光源として、着弾位置の検出の妨げとなる。
【特許文献１】特開平８−２２６７９３号
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、このような課題に鑑みてなされたものであり、その目的は、ポインティングデバイスによる表示部上における指示位置の特定の妨げとなる点滅光源及び疑似振動光源の少なくとも一方がノイズ光源として存在する場合でも、当該ノイズ光源をゲーム処理の中で検出することで、指示位置を適切に反映したゲーム用の画像生成を可能とする画像生成システム、プログラム及び情報記憶媒体を提供することにある。
【課題を解決するための手段】
【０００８】
（１）本発明は、ゲーム用の画像を生成するための画像生成システムであって、
非可視光を発する光源を光点として撮影可能な撮像手段を有するポインティングデバイスによる表示部上における指示位置を特定するために、前記撮像手段で撮影した撮像画像に含まれる前記光点の位置から前記表示部に関連づけられて配置された非可視光を発する複数の識別体の位置を検出する識別体位置検出部と、
前記検出された前記複数の識別体の位置に基づき、前記表示部上における前記ポインティングデバイスの指示位置を特定する位置特定処理を行う指示位置特定部と、
を含み、特定された前記指示位置を反映したゲーム画像を生成するとともに、
前記識別体位置検出部は、
前記撮像画像に含まれる光点の中から点滅光源及び疑似振動光源の少なくとも一方をノイズ光源として特定することで、前記撮像画像に含まれる光点の中から前記複数の識別体の光源を特定する識別体光源特定処理を行う識別体光源特定部を含む画像生成システムに関係する。
【０００９】
また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。
【００１０】
また本発明は、ゲーム用の画像を生成するための画像生成システムであって、
電磁波発生源を撮影可能な撮像手段を有するポインティングデバイスによる表示部上における指示位置を特定するために、前記撮像手段で撮影した撮像画像に含まれる電磁波発生源の位置から前記表示部に関連づけられて配置された電磁波を発する複数の識別体の位置を検出する識別体位置検出部と、
前記検出された前記複数の識別体の位置に基づき、前記表示部上における前記ポインティングデバイスの指示位置を特定する位置特定処理を行う指示位置特定部と、
を含み、特定された前記指示位置を反映したゲーム画像を生成するとともに、
前記識別体位置検出部は、
前記撮像画像に含まれる電磁波発生源の中から点滅電磁波発生源及び疑似振動電磁波発生源の少なくとも一方をノイズ源として特定することで、前記撮像画像に含まれる電磁波発生源の中から前記複数の識別体の電磁波発生源を特定する識別体特定処理を行う識別体特定部を含む画像生成システムに関係する。
【００１１】
また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。
【００１２】
ここにおいて、非可視光を発する複数の識別体は、表示部に表示される画面内に含まれるように表示してもよく、又は表示部の外に配置するように構成してもよい。
【００１３】
非可視光を発する複数の識別体としては、例えば赤外光を発する光源を識別体として用いてもよい。また、非可視光を発する複数の識別体に代えて、電磁波を発する複数の識別体を用いてもよい。
【００１４】
本発明は、ポインティングデバイスを用いて、ゲーム用の画面が表示される表示部の所望位置を指示することを可能とするものである。この際、ポインティングデバイスに設けられた非可視光を撮影可能な撮像手段から出力される撮像画像データを基に指示位置を特定する。また、電磁波を発する複数の識別体を用いる場合には、電磁波発生源を撮影可能な撮像手段が、非可視光を撮影可能な撮像手段に相当する。
【００１５】
識別体位置検出部は、前記複数の識別体の位置をこの撮像画像に含まれる非可視光を発する光源の光点の位置として検出する。前記複数の識別体は、表示部に関連付けられて配置されているため、指示位置特定部では、検出された前記複数の識別体の位置から表示部上におけるポインティングデバイスの指示位置を位置特定処理により特定することが可能であり、特定された支持位置を反映したゲーム用の画像を生成することができる。また、電磁波を発する複数の識別体を用いる場合には、撮像画像に含まれる電磁波発生源の位置から前記表示部に関連づけられて配置された電磁波を発する複数の識別体の位置を検出し、検出された前記複数の識別体の位置から表示部上におけるポインティングデバイスの指示位置を位置特定処理により特定する。
【００１６】
ここで、前記識別体の光源以外にノイズ光源が存在する場合には、前記撮像手段で撮影される撮像画像中に前記識別体の光源と前記ノイズ光源が光点として含まれるため、ポインティングデバイスの指示位置を正確に検出することができない。そこで、本発明では、複数の識別体の光源以外にノイズ光源が存在する場合でも、識別体位置検出部が、前記撮像画像に含まれる前記光点の中から前記複数の識別体の光源を特定可能な識別体光源特定部を含む。また、電磁波を発する複数の識別体を用いる場合には、識別体光源特定部に相当する識別体特定部が、複数の識別体の電磁波発生源以外にノイズ源が存在する場合でも、前記撮像画像に含まれる電磁波発生源の中から前記複数の識別体の電磁波発生源を特定する識別体特定処理を行う。
【００１７】
具体的には、識別体光源特定部は、撮像画像に含まれる光点の中から点滅光源及び疑似振動光源の少なくとも一方をノイズ光源として特定し、前記点滅光源及び前記疑似振動光源と特定された光点以外の光点を複数の識別体の光源として特定する識別体光源特定処理を行う。また、電磁波を発する複数の識別体を用いる場合には、点滅電磁波発生源が点滅光源に相当し、疑似振動電磁波発生源が疑似振動光源に相当し、撮像画像に含まれる電磁波発生源の中から点滅電磁波発生源及び疑似振動電磁波発生源の少なくとも一方をノイズ源として特定することで、前記撮像画像に含まれる電磁波発生源の中から前記複数の識別体の電磁波発生源を特定する識別体特定処理が識別体光源特定処理に相当する。
【００１８】
なお、本発明において点滅光源とは、所定の周期で点滅する光源をいい、例えば、蛍光灯やネオン等が該当する。
【００１９】
なお、本発明において疑似振動光源とは、点滅周期は同一であるが、点滅のタイミングが異なる一組の点滅光源が存在する場合に、一の光源が発光する場合には他の光源が発光せず、一の光源が発光しない場合には他の光源が発光するため、点滅光源の発光のタイミングにあわせて一の光源が点滅光源間を高速で移動しているように認識される光源をいう。
【００２０】
このように、本発明によれば、ポインティングデバイスを用いた指示位置特定の妨げとなる点滅光源及び疑似振動光源が存在する場合であっても、ノイズ光源として特定することができる。この結果、撮像画像に含まれる光点の中から複数の識別体の光源を検出でき、検出された識別体の位置に基づき、ポインティングデバイスによる表示部上における指示位置を特定し、その特定された指示位置を反映したゲーム画像を生成し表示することが可能となる。
【００２１】
特に、本発明によれば、周囲に点滅光源及び疑似振動光源が複数のノイズ光源として存在するような環境下においてゲームを行う場合であっても、これらのノイズ光源の影響を受けることなく、良好なゲーム実行環境を整え、ゲームを楽しむことが可能となる。
【００２２】
加えて、ノイズ光源を識別体の光源と誤って認識することを防止できるため、ポインティングデバイスを振り回し、撮像手段が識別体ではなくノイズ光源を撮像している状態においても、前記ノイズ光源を前記識別体の光源と誤認識して誤った指示位置を表示部上に表示することを防ぐことができる。
【００２３】
なお、本発明においてノイズ光源は、それ自身がノイズ光を発する光源、他の光源からのノイズ光を反射して光る光源、表示部に映り込む他の光源等からのノイズ光、その他のノイズ光を発する部分など、自発光のタイプも反射光のタイプも含むノイズ源を幅広く意味する。
【００２４】
（２）また、本発明のプログラム、情報記憶媒体、及び画像生成システムにおいて、
前記識別体光源特定部は、
前記撮像手段から１フレーム内に前記撮像画像を複数回取得し、前記識別体光源特定処理を行う構成を採用するようにしてもよい。
【００２５】
本発明によれば、識別体光源特定部は、撮像手段、例えばＣＣＤカメラから１フレーム内に撮像画像を複数回取得するため、フレーム周期と同程度の周期またはそれより短い周期で点滅する点滅光源及び疑似振動光源と識別体の光源とを判別可能な撮像画像を取得することが可能となる。
【００２６】
加えて、識別体光源特定部は、撮像手段から前記撮像画像を取得する毎に識別体光源特定処理を行うため、より高い精度で、点滅光源及び疑似振動光源と識別体の光源を判別することが可能となる。
【００２７】
フレーム周期と同程度の周期で点滅する点滅光源として、例えば、商用電源（５０Ｈｚ〜６０Ｈｚで供給）を電力源とする蛍光灯等がある。また、一般的に蛍光灯は並んで配置されていることが多く、それぞれの蛍光灯の発光タイミングが異なれば疑似振動光源にもなる。
【００２８】
本実施の形態において、撮像手段は１フレーム内に撮像画像を４〜５回程度取得するように設定されている。一般的に蛍光灯は５０Ｈｚ〜６０Ｈｚで点滅するため、１フレーム内に撮像画像を４〜５回程度取得すると、蛍光灯の点滅光源が光点として画像に含まれている撮像画像もあれば、点滅光源が光点として画像に含まれていない撮像画像もある。
【００２９】
そのため、取得した各撮像画像データから得られる光点の点滅の有無から点滅光源を特定することが可能であり、点滅光源と識別体の光源を判別することができる。なお、識別体光源特定部は、各撮像画像の光点位置を追跡していくことで、撮像画像毎の光点の対応関係を導き出すことができる。
【００３０】
加えて、取得した各撮像画像データから得られる光点の点滅の有無、移動態様等から疑似振動光源を特定することが可能であり、疑似振動光源と識別体の光源を判別することができる。
【００３１】
以上のように、点滅光源及び疑似振動光源の点滅周期を考慮して撮像画像の取得タイミング、回数を決定することで、点滅光源及び疑似振動光源と識別体の光源を判別する精度を高めることが可能となる。
【００３２】
（３）また、本発明のプログラム、情報記憶媒体、及び画像生成システムにおいて、
前記識別体光源特定部は、
前記撮像手段から前記撮像画像を取得する毎に、前記撮像画像に含まれている光点の光点生存時間を求める生存時間算定部を含み、
前記識別体光源特定処理では、
前記光点生存時間が所定時間に達していない光点を前記点滅光源として特定することで、前記撮像画像に含まれる光点の中から前記複数の識別体の光源を特定する構成を採用するようにしてもよい。
【００３３】
本発明において点滅光源は、所定の周期で点滅を繰り返す光源であるため、非発光時は撮像画像内に光点として表示されない。そのため、点滅光源は所定時間以上、撮像画像内に同一光点として表示されることはできない。
【００３４】
この点滅光源の特性により、本発明では、光点生存時間が所定時間に達していない光点を点滅光源と特定することで、前記撮像画像に含まれる光点の中から前記複数の識別体の光源を特定することができる。
【００３５】
（４）また、本発明のプログラム、情報記憶媒体、及び画像生成システムにおいて、
前記識別体光源特定部は、
前記撮像手段から前記撮像画像を取得する毎に、前記撮像画像に含まれている光点の加速度の変化量を求める加速度変化量算定部を含み、
前記識別体光源特定処理では、
前記光点の加速度の変化量が閾値を超えた回数が高い光点を前記疑似振動光源として特定することで、前記撮像画像に含まれる光点の中から前記複数の識別体の光源を特定する構成を採用するようにしてもよい。
【００３６】
本発明において疑似振動光源は、点滅光源の発光のタイミングにあわせて一の光源が点滅光源間を高速で移動しているように認識される光源であるため、識別体の光源に比べ、加速度が急激に変化する回数が多くなる。
【００３７】
この疑似振動光源の特性により、本発明では、光点の加速度の変化量が閾値を超えた回数が高い光点を前記疑似振動光源として特定することで、前記撮像画像に含まれる光点の中から前記複数の識別体の光源を特定することができる。
【００３８】
（５）また、本発明のプログラム、情報記憶媒体、及び画像生成システムにおいて、
前記加速度変化量算定部は、
前記撮像手段から前記撮像画像を取得する毎に、前記撮像画像に含まれる前記光点の少なくとも位置を含む情報を光点情報として履歴する光点情報履歴部を含み、
前記光点情報の履歴に基づき、前記光点の加速度の変化量を求める構成を採用するようにしてもよい。
【００３９】
これにより、履歴された光点の位置情報から撮像時間単位における光点の加速度の変化量を求めることができる。
【００４０】
（６）また、本発明のプログラム、情報記憶媒体、及び画像生成システムにおいて、
前記光点情報履歴部は、
前記撮像手段から前記撮像画像を取得する毎に、光点履歴バッファに格納された前記光点情報を更新する構成を採用するようにしてもよい。
【００４１】
（７）また、本発明のプログラム、情報記憶媒体、及び画像生成システムにおいて、
前記識別体位置検出部は、
前記撮像画像に含まれる前記光点の位置から前記表示部の外部に設置された前記複数の識別体の位置を検出する構成を採用するようにしてもよい。
【００４２】
（８）また、本発明のプログラム、情報記憶媒体、及び画像生成システムにおいて、
前記ポインティングデバイスはシューティングデバイスとして形成され、
前記指示位置特定部は、
前記指示位置をシューティングデバイスの照準位置とする構成を採用するようにしてもよい。
【発明を実施するための最良の形態】
【００４３】
以下、本発明の好適な実施形態について図面を用いて説明する。なお以下では、本発明を、ガン型コントローラを用いたガンゲーム（シューティングゲーム）に適用した場合を例にとり説明するが、本発明はこれに限定されず、種々のゲームに適用できる。また、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００４４】
１．構成
図１に、本実施形態を家庭用ゲームシステムに適用した場合の例について示す。
【００４５】
実施例のゲームシステムは、家庭用ゲーム機２と、テレビ４及び銃を模して作られたガン型ゲームコントローラ１０（広義にはシューティングデバイス更に広義にはポインティングデバイス他の説明でも同様）とを含む。
【００４６】
前記家庭用ゲーム機２には、画像生成用のプログラム及び当該プログラムを使用したシューティングゲーム用のプログラムが記憶された情報記憶媒体１８０がセットされ、前記プログラム等を用いてシューティングゲーム用のゲーム演算が実行され、テレビ４の表示部１９０上にゲーム画面が生成表示される。
【００４７】
プレーヤは前記ガン型コントローラ１０を用い、表示部１９０のゲーム画面上に映し出されるターゲット（標的）オブジェクトを狙って、トリガ１４を引く。
【００４８】
すると、ガン型コントローラ１０が内蔵するカメラ（撮像手段）により、銃身方向の画像が撮像され、この撮像画像データに基づき、ガン型コントローラ１０の指示位置３０が検出される。この指示位置３０は、本実施の形態ではガン型コントローラ１０の照準位置を表す。
【００４９】
そして、プレーヤがトリガ１４を引くタイミングで検出された指示位置３０が、画面上
に表示されるターゲットオブジェクトの表示位置と一致した場合に当たりと判定され、一致しなかった場合には外れと判定される。
【００５０】
本実施の形態で、前記表示部１９０の外部には、複数の識別体８ａ、８ｂが着脱可能に取付けられており、表示部１９０の中心位置を挟んで点対象となる位置に一対の識別体８ａ、８ｂが取付けられている。これら各識別体８ａ、８ｂは、コントローラに内蔵されたカメラによって識別可能なものとして形成すればよく、本実施の形態では、非可視光である赤外線を発光する発光源を識別体８ａ、８ｂとして用いる。
【００５１】
ここでは、前記識別体８ａ、８ｂは、その中間地点が表示部１９０の中央部と一致するような配置となっている。
【００５２】
これにより、識別体８ａ、８ｂの位置をコントローラ１０に内蔵されたＣＣＤカメラ１８の撮像画像に含まれる非可視光を発する光源の光点の位置として検出することが可能となり、検出された両識別体８ａ、８ｂの中間位置が表示部１９０の中心位置として特定される。そのため、各識別体８ａ、８ｂの位置を撮像画像に含まれる光点の位置として特定することにより、ガン型コントローラ１０によって指示される表示部１９０上における指示位置３０を特定することができる。
【００５３】
図２に、本実施形態の画像生成システム（ゲームシステム、位置検出システム）のブロック図を示す。なお本実施形態の画像生成システムは図２の構成要素（各部）の一部を省略した構成としてもよい。
【００５４】
ガン型コントローラ１０は、銃の形を模して形成されたポインティングデバイス１２（ケーシング）と、ポインティングデバイス１２の握り部に設けられたトリガ１４と、ポインティングデバイス１２の銃口付近に内蔵されるレンズ１６（光学系）及びＣＣＤカメラ１８を含む。
【００５５】
前記ＣＣＤカメラ１８は、前記識別体８ａ、８ｂの発する非可視光を検出可能なＣＣＤセンサー素子をマトリックス状に配置して構成されたものであり、本実施の形態では赤外線領域の光を十分な感度を持って検出可能なＣＣＤセンサー素子をマトリックス状に配置して構成されている。
【００５６】
そして、前記ＣＣＤカメラ１８は、受光面の中心部の法線が前記ポインティングデバイスの銃口方向に向くように設置され、銃口方向の画像を、所定の周期、好ましくは１／３００秒周期（１フレーム内に５回程度）で取得可能に構成されている。
【００５７】
また、前記ガン型コントローラ１０の内部には、コントローラ全体の制御を行う処理部２０と、家庭用ゲーム機との間のインターフェースとして機能する通信部２２とを含む。
【００５８】
前記家庭用ゲーム機２の本体装置９０は、処理部１００、記憶部１７０、通信部１９６を含んで構成され、更にこの本体装置９０には、前述した表示部１９０及び音出力部１９２が接続されている。
【００５９】
本実施の形態において表示部１９０及び音出力部１９２は、図１に示すテレビ４として一体的に設けられている。
【００６０】
処理部１００は、ゲーム演算部１１０、画像生成部１２０、音生成部１３０として機能する。
【００６１】
ゲーム演算部１１０は、情報記憶媒体１８０に記憶されるプログラム、データや、ガン
型コントローラ１０との間の通信情報（撮像画像情報、トリガ操作情報等）に基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの各種の処理を行う。この場合、処理部１００は、記憶部１７０をワーク領域として使用して各種の処理を行う。
【００６２】
ゲーム演算部１１０が行う処理としては、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、オブジェクト（１又は複数のプリミティブ）の位置や回転角度（Ｘ、Ｙ又はＺ軸回り回転角度）を求める処理、オブジェクトを動作させる処理（モーション処理）、仮想カメラを制御する処理（仮想カメラの位置や回転角度を求める処理）、マップ、建物などのオブジェクトをオブジェクト空間へ配置する処理、ヒットチェック処理、ゲーム結果（成果、成績）を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバー処理などがある。
【００６３】
記憶部１７０は、処理部１００のワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。
【００６４】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、ハードディスク、メモリカード、メモリーカセット、磁気ディスク、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００６５】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、テレビ、ＣＲＴなどにより実現できる。
【００６６】
音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００６７】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（記憶部１７０）に配信してもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００６８】
前記ゲーム演算部１１０は、識別体位置検出部１１２、指示位置特定部１１４として機能する。
【００６９】
識別体位置検出部１１２は、ＣＣＤカメラ１８からゲーム処理用の撮像画像データを、例えば、１フレーム（１／６０）周期で読込み、記憶部１７０の撮像画像用メモリ１７６に書込む処理を行う。そして、この撮像画像用メモリ１７６に記憶された撮像画像データは、ＣＣＤカメラ１８から撮像画像データが出力される毎に順次更新される。
【００７０】
本実施の形態では、赤外線領域に高い感度を持つＣＣＤカメラ１８が用いられており、例えば図３に示すように、撮像画像において一対の識別体８ａ、８ｂは、光点Ｌａ、Ｌｂとして表示される。
【００７１】
そして、識別体位置検出部１１２は、ＣＣＤカメラ１８の撮像画像に含まれる前記光点Ｌａ、Ｌｂの位置から前記各識別体８ａ、８ｂの位置を検出する。
【００７２】
本実施の形態において、識別体位置検出部１１２は、識別体８ａ、８ｂの光源以外にノイズ光源が存在する場合においても、これらの光源の中から前記各識別体８ａ、８ｂの光源を特定する識別体光源特定部１１６を含む。
【００７３】
識別体光源特定部１１６は、撮像画像に含まれる光点の中から点滅光源及び疑似振動光源の少なくとも一方をノイズ光源として特定することで、前記撮像画像に含まれる光点の中から各識別体８ａ、８ｂの光源を特定する識別体光源特定処理を行う。
【００７４】
識別体光源特定部１１６は、ＣＣＤカメラ１８から１フレーム内に複数回、識別体の光源特定用の撮像画像データを読込み、その都度、識別体光源特定処理を行う。なお、本実施の形態では、識別体光源特定部１１６が読込む撮像画像データについても、記憶部１７０の撮像画像用メモリ１７６に記憶しているが、識別体位置検出部１１２が読込む撮像画像データと識別体光源特定部１１６が読込む撮像画像データを別々のメモリ（記憶部）に記憶するようにしてもよい。
【００７５】
本実施形態において、識別体光源特定部１１６は、ＣＣＤカメラ１８から、例えば、１／３００秒周期（１フレーム内に５回程度）で撮像画像を読込むため、フレーム周期と同程度の周期またはそれより短い周期で点滅する点滅光源及び疑似振動光源と識別体の光源を判別可能な撮像画像データを取得できる。
【００７６】
そして、識別体光源特定部１１６は、撮像画像データの中から点滅光源を特定する生存時間算定部１１６ａと撮像画像データの中から疑似点滅光源を特定する加速度変化量算定部１１６ｂを含む。
【００７７】
本実施の形態において、点滅光源は、所定の周期で点滅を繰り返す光源であるため、非発光時は撮像画像内に光点として表示されない。そのため、点滅光源は所定時間以上、撮像画像内に同一光点として表示されることはできない。
【００７８】
この点滅光源の特性により、生存時間算定部１１６ａは、光点生存時間が所定時間に達していない光点を点滅光源と特定することで、前記撮像画像に含まれる光点の中から前記複数の識別体の光源を特定する。
【００７９】
本実施の形態において、疑似振動光源は、点滅光源の発光のタイミングにあわせて一の光源が複数の点滅光源間を高速で移動しているように認識される光源であるため、識別体の光源に比べ、加速度が急激に変化する回数が多くなる。
【００８０】
この疑似振動光源の特性により、加速度変化量算定部１１６ｂは、光点の加速度の変化量が閾値を超えた回数が高い光点を前記疑似振動光源として特定することで、前記撮像画像に含まれる光点の中から前記複数の識別体の光源を特定する。
【００８１】
また、加速度変化量算定部１１６ｂは、撮像画像に含まれる光点の少なくとも位置を含む情報を光点情報として履歴する光点情報履歴部１１７を含んでいる。
【００８２】
光点情報履歴部１１７は、識別体光源特定部１１６が撮像画像データを取得する毎に、光点情報を記憶部１７０の光点情報記憶部１７８に書込む処理を行い、光点情報は随時更新される。
【００８３】
これにより、位置情報を含む光点情報の履歴に基づき、撮像時間単位における光点の加速度の変化量を求めることができる。
【００８４】
指示位置特定部１１４は、撮像画像に含まれる前記光点Ｌａ、Ｌｂを基に位置特定処理を行う。そして、指示位置３０が特定されると、特定された指示位置を反映した画像を生成するための演算処理として、例えば、画面上に指示位置３０を示す所与の特定オブジェクト、例えばカーソルなどを表示させる処理を行う。
【００８５】
画像生成部１２０は、処理部１００で行われる種々の処理の結果に基づいて画像処理を行い、ゲーム画像を生成し、表示部１９０に出力する。例えば、いわゆる３次元ゲームの画像を生成する場合には、まず、座標変換、クリッピング処理、透視変換、或いは光源計算等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ（プリミティブ面の頂点（構成点）に付与される位置座標、テクスチャ座標、色（輝度）データ、法線ベクトル或いはα値等）が作成される。そして、この描画データ（プリミティブ面データ）に基づいて、ジオメトリ処理後のオブジェクト（１又は複数プリミティブ面）の画像が、描画バッファ１７２（フレームバッファ、ワークバッファ等の画素単位で画像情報を記憶できるバッファ）に描画される。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成されるようになる。なお、本実施形態により生成されて表示部１９０に表示される画像は、３次元画像であってもよいし、２次元画像であってもよい。
【００８６】
画像生成部１２０は、テクスチャ記憶部１７４に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングするための処理を行う。具体的には、オブジェクト（プリミティブ面）の頂点に設定（付与）されるテクスチャ座標等を用いてテクスチャ記憶部１７４からテクスチャ（色、α値などの表面プロパティ）を読み出す。そして、２次元の画像又はパターンであるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理やバイリニア補間（テクセル補間）などを行う。
【００８７】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２（スピーカ）に出力する。
【００８８】
また、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【００８９】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて生成してもよい。
【００９０】
２．本実施形態の手法
２−１：識別体位置と表示部上の指示位置の関連付け
ゲーム開始に先立ちゲーム画面が表示される表示部１９０の外側に複数の識別体８ａ、８ｂを設置する。本実施の形態では、図１に示すように表示部１９０の上方及び下方に２つの識別体８ａ、８ｂを、表示部１９０の中心を挟んで点対称となるように配置する。
【００９１】
従って、２つの識別体８ａ、８ｂの上を結んだ線の中心位置が、表示部１９０の中心位置と一致することになる。なお、本実施の形態では２つの識別体８ａ、８ｂを表示部１９０の周囲に配置する場合を例にとり説明するが、必要に応じて３つ以上の識別体を表示部１９０の周囲に配置してもよい。
【００９２】
前述したように各識別体８ａ、８ｂは、非可視光である赤外光を発する光源として形成されており、ガン型コントローラ１０を表示部１９０方向に向けると、図３に示すように各識別体８ａ、８ｂに対応した光点Ｌａ、Ｌｂが撮像画像中に含まれる。
【００９３】
本実施の形態のゲームシステムでは、前記ガン型コントローラ１０の銃身方向と表示部１９０上における指示位置を一致させるために、表示部１９０上に図４（Ａ）に示す初期設定画面５０を表示する。
【００９４】
この初期設定画面５０には、「照準の初期設定を行います」というメッセージＡ１と、「マーカを基準位置に移動しトリガを引いてください」とメッセージＡ２が表示される。
【００９５】
また、各識別体８ａ、８ｂに対応した光点Ｌａ、ＬｂがマーカＭａ、Ｍｂとして撮像画像５２中に表示される。
【００９６】
また、撮像画像５２にはその中心点を挟んで点対称の位置に各マーカＭａ、Ｍｂの基準位置を表すターゲットマーカＴａ、Ｔｂも表示される。
【００９７】
そして、プレーヤはメッセージＡ２に従い、マーカＭａ、ＭｂがターゲットマーカＴａ、Ｔｂに重なるようにガン型コントローラ１０の向きを調整し、これらが重なったタイミングでトリガ１４を操作する。
【００９８】
これにより、現在の状態で、ガン型コントローラ１０の指示位置３０が表示部１９０の中心位置を指していると指示位置特定部１１４が認識し、指示位置特定用の初期条件の設定が終了する。
【００９９】
即ち、マーカＭａ、ＭｂがターゲットマーカＴａ、Ｔｂと重なっている状態では、図４（Ｂ）に示すように、ＣＣＤカメラ１８の撮像画像のｘ、ｙ座標の原点Ｏが、表示部１
９０の中心位置と一致し、更にこの時、撮像画像のｙ軸上に前記マーカＭａ、Ｍｂが位置していると初期設定される。これにより、撮像画像内におけるマーカＭａ、Ｍｂの位置と表示部１９０の各位置との関連付けを行うことができる。
【０１００】
２−２：指示位置３０の特定
図５には、撮像画像５２に含まれる光点Ｌａ、Ｌｂの位置に基づき、ガン型コントローラ１０の指示位置３０（図５ではｐで表される）を特定する処理が示されている。
【０１０１】
図５（Ａ）には、その処理の手順を示すフローチャートが示され、図５（Ｂ１）〜（Ｂ３）には、撮像画像５２を用いた指示位置（Ｐ）を特定する処理の説明図が示されている。
【０１０２】
まず、図３に示す撮像画像５２が得られた場合には、図５（Ａ）に示すように、この撮像画像５２に含まれる各光点Ｌａ、Ｌｂの重心位置ｑ１、ｑ２の（ｘ、ｙ）座標を求め、次に重心位置ｑ１、ｑ２を結ぶ直線のｙ軸に対する傾きθを求める処理を行う。
【０１０３】
図５（Ｂ１）は、その処理の具体例が示されている。
【０１０４】
次に、このようにして求めた重心位置ｑ１、ｑ２のｘｙ座標及び前記傾きθに基づき、ステップＳ１２、Ｓ１４では、ガン型コントローラ１０の指示位置３０を特定する処理が行われる。
【０１０５】
即ちステップＳ１２では、図５（Ｂ２）に示すように、ガン型コントローラ１０の銃身の傾きを補正する処理として、撮像画像５２に含まれる重心位置ｑ１、ｑ２を結ぶ直線を、原点Ｏを中心としてθ回転変換し、新たな重心位置ｑ１’、ｑ２’を求める処理を行う。
【０１０６】
次に、ステップＳ１４では、新たな重心位置ｑ１’、ｑ２’を結ぶ直線の中点ｈのｘｙ座標を求め、原点Ｏを介して、前記中点ｈと点対称の位置Ｐを表示部１９０上における指示位置３０として特定する処理を行う。
【０１０７】
以上のようにして、本実施の形態によれば、撮像画像５２に含まれる光点Ｌａ、Ｌｂの位置に基づき、ガン型コントローラ１０の指示位置３０を特定することができる。
【０１０８】
従って、このように特定された指示位置３０を反映したゲーム演算処理が行われ、ゲーム画面を生成することが可能となる。
【０１０９】
２−３：光点の追跡
図６には、撮像画像毎の光点の対応関係を導き出す光点追跡処理の概念図が示されている。
【０１１０】
図６（Ｂ）は新規に撮像された撮像画像内における光点の位置を表す図である。また、図６（Ａ）は前回撮像された撮像画像内における光点の位置、即ち、本実施形態において、ＣＣＤカメラ１８は１／３００秒毎に撮像画像の撮像を行うため１／３００秒前の時点における光点位置を表す図である。
【０１１１】
図６（Ｂ）に表示された光点αは図６（Ａ）に表示された光点α’が移動したものであり、図６（Ｂ）に表示された光点βは図６（Ｂ）の時点で新規に発生した光点であり、図６（Ａ）に表示された光点γは図６（Ｂ）の時点では消滅している。以下、これら光点の移動、発生、消滅の判別手法について説明する。
【０１１２】
本実施の形態においては、次回の撮像までの間（１／３００秒間）に光点が移動可能距離を、例えば、８０ドットと予め定義している。そのため、光点の位置を中心に半径８０ドットの円で描かれるエリアが移動可能エリアとなる。
【０１１３】
そして、前回撮像時に存在した光点の光点位置を中心に移動可能エリアを設定し、新規に撮像された光点が移動可能エリア内に存在するか否かを判別する。その結果、新規に撮像された光点が移動可能エリアに存在すれば光点の移動を意味し、移動可能エリアに新規に撮像された光点が存在しなければ光点の消滅を意味し、移動可能エリア内に存在しない新規に撮像された光点は光点の発生を意味する。
【０１１４】
具体的に、図６（Ｂ）と図６（Ａ）を合成して表した図である図６（Ｃ）を用いて説明すると、前回撮像時に存在した光点α’を中心に斜線で表したエリアＡα’が光点α’の移動可能エリアであり、光点γを中心に斜線で表したエリアＡγが光点γの移動可能エリアである。
【０１１５】
新規に撮像された光点αはエリアＡα’内に存在するため、光点α’が光点αの位置に移動したことがわかる。そのため、図６（Ａ）の光点α’と図６（Ｂ）の光点αは同一光点であり、いずれの時点においてもＩＤ０が割り振られる。
【０１１６】
また、エリアＡγ内には、新規に撮像された光点は存在しないため、新規撮像の時点までに光点γは消滅したことがわかる。そのため、図６（Ａ）の時点では光点γにはＩＤ１が割り振られているが、図６（Ａ）の時点でＩＤは割り振られていない。
【０１１７】
また、エリアＡα’、エリアＡγのいずれの領域内にも存在しない新規に撮像された光点βは新規に発生した光点であることがわかる。そのため、図６（Ａ）の時点でＩＤは割り振られていないが、図６（Ｂ）の時点で光点βにはＩＤ２が割り振られている。
【０１１８】
本実施の形態においては、このような撮像画像毎の光点の対応関係を導き出す光点追跡処理を行った上で、点滅光源と識別体光源を判別するための光点生存時間、疑似振動光源と識別体光源を判別するための光点の加速度の変化量を求める。
【０１１９】
図７に、ＩＤによって対応付けられた光点の撮像画像毎の光点情報の格納例を示す。本実施の形態においては、光点情報として光点の位置座標及び光点サイズを格納する。なお、光点サイズとは光点の面積を意味するものであるが、光点の直径や半径として表してもよい。
【０１２０】
２−４：識別体と点滅光源の判別
図８は、ガン型コントローラ１０を固定した状態で識別体８ａ、８ｂの光源及び点滅光源を１／３００秒周期で撮像した撮像画像であり、１フレームの間に図８（Ａ）〜図８（Ｅ）の画像を（Ａ）→（Ｅ）の順に撮像したものである。
【０１２１】
撮像画像に含まれる光点Ｌａ、光点Ｌｂは識別体８ａ、８ｂの光源を示しており、光点ＢＬは蛍光灯等の点滅光源を示している。なお、実線で示された光点ＢＬは点滅光源が発光している状態を表しており、破線で示された光点ＢＬ’は点滅光源が発光していない状態を表している。
【０１２２】
識別体の光源である光点Ｌａ、光点Ｌｂについては、図８（Ａ）〜（Ｅ）のいずれの時点においても一定のサイズの光点として撮像されている。一方、光点ＢＬ、光点ＢＬ’については、図８（Ａ）、（Ｄ）、（Ｅ）の時点では光点として撮像されているが、図８（Ｂ）、（Ｃ）の時点では光点として撮像されていない。
【０１２３】
このように、蛍光灯等の５０Ｈｚ〜６０Ｈｚで点滅する点滅光源が、連続して発光できる期間は１フレーム以下の期間であるため、本発明においては、この点滅光源の特性を利用して識別体光源と点滅光源を判別する。
【０１２４】
具体的には、撮像画像を取得する毎に、同一光点として撮像画像内に存在する時間を光点生存時間としてカウントする。そして、予め設定されている光点の最低生存時間に達していない光点を点滅光源と特定することで、前記撮像画像に含まれる光点の中から前記複数の識別体の光源を特定する。
【０１２５】
２−５：識別体と疑似振動光源の判別
図９は、ガン型コントローラ１０を固定した状態で識別体８ａ、８ｂの光源及び疑似振動光源を１／３００秒周期で撮像した撮像画像であり、１フレームの間に図９（Ａ）〜図９（Ｅ）の画像を（Ａ）→（Ｅ）の順に撮像したものである。
【０１２６】
撮像画像に含まれる光点Ｌａ、光点Ｌｂは識別体８ａ、８ｂの光源を示しており、光点ＶＬａ、光点ＶＬｂは隣接して配置された２本の蛍光灯等の互いに発光のタイミングが異なる点滅光源である。従って、これら一組の点滅光源が疑似振動光源となる。なお、実線で示された光点ＶＬａ、光点ＶＬｂは点滅光源が発光している状態を表しており、破線で表された光点ＶＬａ’、光点ＶＬｂ’は点滅光源が発光していない状態を表している。
【０１２７】
識別体の光源である光点Ｌａ、光点Ｌｂについては、図９（Ａ）〜（Ｅ）のいずれの時点においても一定のサイズの光点として撮像されている。一方、光点ＶＬａ、光点ＶＬａ’については、図９（Ａ）、（Ｄ）、（Ｅ）の時点では光点として撮像されているが、図９（Ｂ）、（Ｃ）の時点では光点として撮像されていない。また、光点ＶＬｂ、光点ＶＬｂ’については、図９（Ｂ）、（Ｃ）の時点では光点として撮像されているが、図９（Ａ）、（Ｄ）、（Ｅ）の時点では光点として撮像されていない。
【０１２８】
そのため、本実施の形態において光点ＶＬａ、光点ＶＬｂは、図９（Ａ）、（Ｄ）、（Ｅ）の時点では光点ＶＬａの位置で発光し、図９（Ｂ）、（Ｃ）の時点では光点ＶＬｂの位置で発光する一の光源として検出される。
【０１２９】
図１０は、実際にガン型コントローラ１０を振り回した場合における、識別体の光源の移動経路ＬＲと疑似振動光源の移動経路ＶＬＲを示したものである。なお、ＧＲはガン型コントローラ１０の移動経路、ＶＬＲ−１、ＶＬＲ−２はそれぞれ発光タイミングの異なる一組の点滅光源の移動経路を表している。
【０１３０】
これにより、識別体の光源はガン型コントローラ１０を振りました方向に移動することがわかる。また、疑似振動光源は振動しながらガン型コントローラ１０を振りました方向に移動することがわかる。
【０１３１】
図１１は、ガン型コントローラ１０を振り回した場合の時間軸に対する識別体の光源と疑似振動光源のｘ座標軸方向における座標位置を表したものであり、図１１（Ａ）が疑似振動光源、図１１（Ｂ）が識別体の光源を表している。
【０１３２】
図１１（Ａ）の疑似振動光源と図１１（Ｂ）の識別体の光源をフレーム周期Ｔで対比する。すると、加速から減速、減速から加速という加速度の急激な変化を起こす箇所が、図１１（Ａ）ではＡ１〜Ａ３の合計３箇所であるのに対し、図１１（Ｂ）ではＢ１の１箇所しかないことがわかる。
【０１３３】
また、図示しないがｙ座標軸方向についても同様の結果が得られる。
【０１３４】
このように、疑似振動光源は一組の点滅光源間を点滅光源の発光のタイミングに合わせて高速に動いているように認識されるため、通常の識別体の光源に対して、光点の加速度の変化量が多くなる。
【０１３５】
そのため、本発明においては、この疑似振動光源の特性を利用して疑似振動光源と点滅光源とを判別する。
【０１３６】
具体的には、撮像画像を取得する毎に、同一光点として撮像画像内に存在する光点の加速度の変化量が閾値を超えた回数を光点毎にカウントする。そして、閾値を超えた回数が多い光点を疑似振動光源と特定することで、前記撮像画像に含まれる光点の中から前記複数の識別体の光源を特定する。
【０１３７】
３．本実施の形態の処理
次に、本実施の形態の詳細な処理例について、図１２〜図１４に示すフローチャートを用いて説明する。
【０１３８】
３−１：ゲーム演算処理
本実施の形態におけるゲーム演算処理の具体的な手順について図１２のフローチャートを用いて説明する。
【０１３９】
まず、ステップＳ１００では、ゲーム演算処理で使用する各種データを初期化する処理を行う。
【０１４０】
続いて、ステップＳ２００では、図１３で詳述する点滅光源判別処理を行い、ステップＳ３００では、図１４で詳述する疑似振動光源判別処理を行う。なお、本実施の形態において、これらの処理を１フレーム内に５回程度行うため、ステップＳ２００、ステップＳ３００の処理は１／３００秒周期で行われる。
【０１４１】
続いて、ステップＳ４００では、ゲーム処理を行うか否かの判別処理を行う。ここで、ゲーム処理は、点滅光源判別処理や疑似振動光源判別処理と異なり、１フレーム毎に行われる。そのため、ゲーム処理を行う場合は、ステップＳ５００に移行し、ゲーム処理を行わない場合は、ステップＳ２００に移行する。
【０１４２】
最後に、ステップＳ５００では、検出された識別体の位置に基づき、指示点の座標を計算する処理を行い、ステップＳ６００では、特定された指示位置を反映したゲーム画像の生成等するゲーム処理を行う。ステップＳ５００の指示点の座標計算処理の詳細は、前述した図５（Ａ）に示すフローチャートで説明したため、説明は省略する。なお、本実施の形態において、これらの処理をフレーム周期に合わせて行うため、ステップＳ５００、ステップＳ６００の処理は１／６０秒周期（１フレーム毎）で行われる。
【０１４３】
そして、このような一連の処理をゲームが終了するまで繰り返し行う（ステップＳ７００）。
【０１４４】
３−２：光点の生存時間に基づく判別処理
光点の生存時間に基づき識別体と点滅光源を判別する処理について図１３のフローチャートを用いて説明する。
【０１４５】
まず、ステップＳ２１０では、ＣＣＤカメラ１８によって撮像された光点の光点データを１／３００秒周期でバッファｐ［０］．．．ｐ［Ｎ−１］に格納する処理を行う。本実施形態における光点データには、光点の位置情報を示すｘ座標成分、ｙ座標成分及び、光点サイズが含まれている。
【０１４６】
続いて、ステップＳ２１２〜ステップＳ２２８では、バッファｐに格納された光点の生存時間を算出し、識別体と点滅光源を判別する処理を行う。
【０１４７】
具体的には、ステップＳ２１２で、ループ処理に用いるカウンタ変数ｉを０で初期化する処理を行う。
【０１４８】
ステップＳ２１４では、光点の存続の有無を確認するため、光点サイズが０より大きいか否か判別する処理を行う。０より大きい場合には、ステップＳ２１６で光点の生存時間が格納されたバッファｔ［ｉ］の値をインクリメントする処理を行う。また、０より小さい場合には、ステップＳ２１８でバッファｔ［ｉ］の値を０に初期化する処理を行う。なお、ゲーム開始時に、バッファｔ［０］．．．ｔ［Ｎ−１］（Ｎは追跡する最大光点数を表し、本実施形態ではＮ＝４）は初期化されている（図１２のステップ１００）。
【０１４９】
次に、ステップＳ２２０では、光点の生存時間が格納されたバッファｔ［ｉ］の値が光点の最低生存時間Ｔ（本実施形態ではＴ＝５。正確には撮像周期（１／３００秒）にＴを乗じた値が光点の最低生存時間となる。）よりも大きいか否か判別する処理を行う。Ｔより大きい場合には、ステップＳ２２２でバッファｆ［ｉ］に有効光点（識別体）を意味する１を格納する処理を行う。Ｔより小さい場合には、ステップＳ２２４でバッファｆ［ｉ］に無効光点（ノイズ光源）を意味する０を格納する処理を行う。
【０１５０】
ステップＳ２２６では、ループ処理に用いるカウンタ変数ｉをインクリメントする処理を行い、ステップＳ２２８では、インクリメントされたカウンタ変数ｉが追跡する光点数を表すＮよりも大きいか否か判別する処理を行う。そして、カウンタ変数ｉの値がＮよりも大きくなるまで、ステップＳ２１４〜ステップＳ２２８の処理を繰り返し行う。即ち、追跡する全ての光点について、ステップＳ２１４〜ステップＳ２２８の処理を行うことになる。
【０１５１】
最後に、ステップＳ２３０では、バッファｐ［ｎ］（ｎ  ＝  ０．．．Ｎ−１）に格納された光点のうち、対応するｆ［ｎ］  ＝  １のものを識別体の光源の光点として優先的に採用する。
【０１５２】
なお、本実施形態では、光点サイズを用いて光点の生存の有無を判別しているが、光点の位置情報のみからこれらを判別するようにしてもよい。
【０１５３】
３−３：光点の加速度の変化量に基づく判別処理
光点の加速度の変化量に基づき識別体と疑似振動光源を判別する処理について図１４のフローチャートを用いて説明する。
【０１５４】
まず、ステップＳ３１０〜ステップＳ３１４では、光点データを履歴バッファに格納し、履歴された光点データから光点の加速度の変化量を求める。
【０１５５】
具体的にはステップＳ３１０で、１／３００秒周期で光点データを取得する毎に、光点データを格納する履歴バッファｐ［０］［０］．．．ｐ［Ｎ−１］［Ｍ−１］（Ｎは追跡する最大光点数、Ｍは光点データの履歴数を表し、本実施形態ではＮ＝４、Ｍ＝１６）から、最新の光点データを格納するために最も古い光点データを消去し、履歴バッファをずらす処理を行う。なお、ゲーム開始時に、履歴バッファｐ［０］［０］．．．ｐ［Ｎ−１］［Ｍ−１］は初期化されている（図１２のステップ１００）。
【０１５６】
ステップＳ３１２では、ＣＣＤカメラ１８によって撮像された最新の光点データをバッファｐ［０］［Ｍ−１］．．．ｐ［Ｎ−１］［Ｍ−１］に格納する処理を行う。本実施形態における光点データには、光点の位置情報を示すｘ座標成分、ｙ座標成分が含まれている。なお、光点データには光点サイズを含めてもよい。
【０１５７】
ステップＳ３１４では、履歴バッファｐ［０］［０］．．．ｐ［Ｎ−１］［Ｍ−１］に格納された光点データから光点の加速度の変化量を求める。
【０１５８】
ここで、加速度ベクトルの時間変化の絶対値は、位置ベクトルを３回微分することによって求められる。
【０１５９】
【数１】
2007330534.tif 000003
また、微分式は離散近似を行うことによって以下のように近似することができる。
【０１６０】
【数２】
2007330534.tif 000004
【０１６１】
そのため、単位時間あたりの加速度の変化量ｂは、ｂ［ｎ］［ｍ］＝｜ａ［ｎ］［ｍ］−ａ［ｎ］［ｍ−１］｜に近似することができる。なお、加速度ａは、ａ［ｎ］［ｍ］＝ｖ［ｎ］［ｍ］−ｖ［ｎ］［ｍ−１］に近似でき、単位時間あたりの速度ｖはｖ［ｎ］［ｍ］＝ｐ［ｎ］［ｍ］−ｐ［ｎ］［ｍ−１］に近似することができる。
【０１６２】
以上より、単位時間あたりの加速度の変化量を求める計算式は、ｂ［ｎ］［ｍ］＝｜ｐ［ｎ］［ｍ］−３ｐ［ｎ］［ｍ−１］＋３ｐ［ｎ］［ｍ−２］−ｐ［ｎ］［ｍ−３］｜となる。
【０１６３】
続いて、ステップＳ３１６〜ステップＳ３３０では、追跡したすべての光点について、求められた光点の加速度の変化量が閾値を超えた回数を求める。なお、ステップＳ３１８〜ステップＳ３２６の処理にて、追跡した一の光点における、加速度の変化量が閾値を超えた回数を求める。
【０１６４】
具体的には、ステップＳ３１６で、ループ処理に用いるカウンタ変数ｉを０で初期化する処理を行う。
【０１６５】
ステップＳ３１８では、ループ処理に用いるカウンタ変数ｊを３で初期化する処理及び、追跡する光点毎に加速度の変化量が閾値を超えた回数を格納するバッファｄ［ｉ］を０で初期化する処理を行う。
【０１６６】
ステップＳ３２０では、求められた加速度の変化量が閾値を超えたか否か判別し、閾値を超えた場合は、ステップＳ３２２でバッファｄ［ｉ］の値をインクリメントする。
【０１６７】
ステップＳ３２４では、ループ処理に用いるカウンタ変数ｊをインクリメントする処理を行う。
【０１６８】
ステップＳ３２６では、ステップＳ３２４でインクリメントされたカウンタ変数ｊが光点データの履歴数を表すＭよりも大きいか否か判別する処理を行う。そして、カウンタ変数ｊの値がＭよりも大きくなるまで、ステップＳ３２０〜ステップＳ３２６の処理を繰り返し行う。即ち、追跡した一の光点における履歴された全ての光点データについて、ステップＳ３２０〜ステップＳ３２６の処理を行うことになる。
【０１６９】
ステップＳ３２８では、ループ処理に用いるカウンタ変数ｉをインクリメントする処理を行う。
【０１７０】
ステップＳ３３０では、ステップＳ３２８でインクリメントされたカウンタ変数ｉが追跡する光点数を表すＮよりも大きいか否か判別する処理を行う。そして、カウンタ変数ｉの値がＮよりも大きくなるまで、ステップＳ３１８〜ステップＳ３３０の処理を繰り返し行う。即ち、追跡する全ての光点について、ステップＳ３１８〜ステップＳ３３０の処理を行うことになる。
【０１７１】
最後に、ステップＳ３３２では、有効な光点データのうち、加速度の変化量が閾値を超えた回数の小さい順（ｄ［０］．．．ｄ［Ｎ−１］の小さい順）に識別体の光源の光点として優先的に採用する。
【０１７２】
４．ハードウェア構成
図１２に本実施の形態を実現できるハードウェア構成の例を示す。メインプロセッサ９００は、ＤＶＤ９８２（情報記憶媒体。ＣＤでもよい。）に格納されたプログラム、通信インターフェース９９０を介してダウンロードされたプログラム、或いはＲＯＭ９５０に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、マトリクス演算（ベクトル演算）を高速に実行する。例えばオブジェクトを移動させたり動作（モーション）させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０１７３】
ジオメトリプロセッサ９０４は、メインプロセッサ９００上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ９０６は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセラレートする。これにより、オープニング画面やゲーム画面においてＭＰＥＧ方式等で圧縮された動画像を表示できる。
【０１７４】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を実行する。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０を利用して、描画データ（頂点データや他のパラメータ）を描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると描画プロセッサ９１０は、描画データやテクスチャに基づいて、Ｚバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ９２２に描画する。また描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエイリアシング、シェーディング処理なども行う。
【０１７５】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などのゲーム音を生成し、スピーカ９３２を介して出力する。ゲームコントローラ９４２やメモリカード９４４からのデータはシリアルインターフェース９４０を介して入力される。
【０１７６】
ＲＯＭ９５０にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納さ
れる。なおＲＯＭ９５０の代わりにハードディスクを利用してもよい。ＲＡＭ９６０は各種プロセッサの作業領域となる。ＤＭＡコントローラ９７０は、プロセッサ、メモリ間でのＤＭＡ転送を制御する。ＤＶＤドライブ９８０（ＣＤドライブでもよい。）は、プログラム、画像データ、或いは音データなどが格納されるＤＶＤ９８２（ＣＤでもよい。）にアクセスする。通信インターフェース９９０はネットワーク（通信回線、高速シリアルバス）を介して外部との間でデータ転送を行う。
【０１７７】
なお本実施の形態の各部（各手段）の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【０１７８】
そして、本実施の形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施の形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【０１７９】
以上のように、本発明には、本実施の形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。
【０１８０】
また本発明は種々のゲーム（格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等）に適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々の画像生成システムに適用できる。
【０１８１】
本実施の形態では、シューティングゲームにおけるガン型コントローラ１０の照準位置検出に用いる場合を例にとり説明したが、本発明はこれに限らず、これ以外の各種用途に適用することができる。例えば、ゲームの種類によっては、プレーヤオブジェクトの移動する方向や、各種アイテムを、前記ポインティングデバイスを用いて指示し、当該指示位置を反映したゲーム画像を生成するような構成を採用することも可能である。
【０１８２】
又、単に表示部１９０上における位置を指示するだけではなく、前記識別体８ａ、８ｂが複数設けられているため、コントローラの表示部に対する回転や傾き等の検出にも用いることができる。
【０１８３】
又、本実施の形態では識別体８ａ、８ｂを２個用いる場合を例にとり説明したが、より制度の高い指示位置の検出を行うためには、３個以上の識別体を用いる構成を採用してもよい。
【０１８４】
又、本実施の形態では、識別体を表示部の周囲に設けたが、表示部と関連の無い所望の位置に複数の識別体を配置してもよい。この場合でも、当該各識別体をポインティングデバイスの撮像手段で撮影した撮像画像内におけるマーカＭａ、Ｍｂの位置と表示部の各位置とを関連付けておくことによって、ポインティングデバイスにより表示部の所望位置を指示することができる。
【０１８５】
又、本実施の形態では、識別体として、赤外光を発光する光源を用いる場合を例にとり
説明したが、本発明はこれに限らず、例えば、これ以外の非可視光を発する識別体、電磁波を発する識別体、音波を発する識別体等を用いてもよい。また、ノイズ光源の影響を最小限に抑えられる本発明では、プレーヤに視認される点を考慮すれば、可視光を発する識別体を用いてもよい。特に、表示部と関連の無い所望の位置に複数の識別体を配置した場合には、プレーヤに視認されてもゲームに与える影響は少ない。
【０１８６】
又、本実施の形態では、点滅光源として蛍光灯を対象に処理を行ったが、本発明はこれに限らず、所定の周期で点滅する光源であれば点滅光源となる。
【０１８７】
又、本実施の形態では、疑似振動光源として隣接して配置される２つの蛍光灯を対象に処理を行ったが、本発明はこれに限らず、３つ以上の蛍光灯が隣接して配置されるものでも疑似振動光源となる。
【０１８８】
又、本実施の形態では、疑似振動光源と識別体の光源の判別を加速度の変化量の回数を基に行ったが、本発明はこれに限らず、例えば、ポインティングデバイスの移動速度に対する相対速度等を基に行ってもよい。識別体の光源は、ポインティングデバイスの移動方向に動いているものと認識されるが、疑似振動光源は、振動しながらポインティングデバイスの移動方向に動いているものと認識されるため、このような処理方法でも識別体の光源と疑似振動光源を判別可能である。
【図面の簡単な説明】
【０１８９】
【図１】本実施の形態を家庭用ゲームシステムに適用した場合の例。
【図２】本実施の形態の画像生成システムのブロック図の例。
【図３】撮像画像の一例を示す説明図。
【図４】初期設定画面の一例を示す説明図。
【図５】撮像画像を用いて指示位置を検出する処理の説明図。
【図６】本実施の形態の光点追跡処理の説明図。
【図７】撮像画像毎の光点情報の格納例を示す説明図。
【図８】点滅光源の一例を示す説明図。
【図９】疑似振動光源の一例を示す説明図。
【図１０】疑似振動光源の移動経路の一例を示す説明図。
【図１１】時間軸に対する識別体の光源と疑似振動光源のｘ座標軸方向における座標位置を示す説明図。
【図１２】本実施の形態の具体的な処理のフローチャート図。
【図１３】本実施の形態における点滅光源と識別体の光源を判別する処理のフローチャート図。
【図１４】本実施の形態における疑似振動光源と識別体の光源を判別する処理のフローチャート図。
【図１５】本実施の形態を実現できるハードウェア構成の一例を示す図。
【符号の説明】
【０１９０】
２  家庭用のゲーム機
４  テレビ
８ａ、８ｂ  識別体
１０  ガン型コントローラ
１２  ポインティングデバイス（ケーシング）
１４  トリガ
１６  レンズ
１８  カメラ
２０  処理部
２２  通信部
３０  指示位置
５０  初期設定画面
５２  撮像画像
９０  本体装置
１００  処理部
１１０  ゲーム演算部
１１２  識別体位置検出部
１１４  指示位置特定部
１１６  識別体光源特定部
１１６ａ  生存時間算定部
１１６ｂ  加速度変化量算定部
１１７  光点情報履歴部
１２０  画像生成部
１３０  音生成部
１７０  記憶部
１７２  描画バッファ
１７４  テクスチャ記憶部
１７６  撮像画像用メモリ
１７８  光点情報記憶部
１８０  情報記憶媒体
１９０  表示部
１９２  音出力部
１９６  通信部
Ｌａ、Ｌｂ  識別体の光源を示す光点
Ｍａ、Ｍｂ  マーカ
Ｔａ、Ｔｂ  ターゲットマーカ
ＢＬ、ＢＬ’  点滅光源を示す光点
ＶＬａ、ＶＬａ’、ＶＬｂ、ＶＬｂ’  疑似振動光源を示す光点
ＧＲ  ガン型コントローラの移動経路
ＬＲ  識別体の光源の移動経路
ＶＬＲ  疑似振動光源の移動経路
【図１】
2007330534.tif 000005
【図２】
2007330534.tif 000006
【図３】
2007330534.tif 000007
【図４】
2007330534.tif 000008
【図５】
2007330534.tif 000009
【図６】
2007330534.tif 000010
【図７】
2007330534.tif 000011
【図８】
2007330534.tif 000012
【図９】
2007330534.tif 000013
【図１０】
2007330534.tif 000014
【図１１】
2007330534.tif 000015
【図１２】
2007330534.tif 000016
【図１３】
2007330534.tif 000017
【図１４】
2007330534.tif 000018
【図１５】
2007330534.tif 000019