(57)【特許請求の範囲】
【請求項１】
固定設置される表示部に表示させる表示画像を生成する処理を実行し、ゲームに用いられるプログラムであって、
実空間上の物体に光を照射し、当該物体の反射光を受光する入力部の入力画像を取得する取得部と、
前記入力部におけるプレーヤの入力タイミングを判定する入力判定部と、
前記入力画像に基づいて特定される前記入力部から前記物体までの距離に基づいて、仮想空間に配置されるオブジェクトであって前記プレーヤの入力タイミングを指示するオブジェクトの大きさを制御するオブジェクト制御部と、
前記オブジェクトを含む表示画像を生成する処理を行う画像生成部と、
仮想３次元空間における仮想カメラの視線方向を制御する仮想カメラ制御部と、
前記仮想空間において、前記オブジェクトを配置させる処理を行う配置部として、コンピュータを更に機能させ、
前記仮想カメラ制御部が、前記入力画像に基づいて特定される前記入力部を基準とする前記実空間上の物体の存在する方向に基づいて、前記仮想カメラの視線方向を制御し、
前記画像生成部が、前記仮想カメラから見える画像を前記表示画像として生成する処理を実行し、
前記配置部が、前記入力画像に基づいて特定される前記入力部を基準とする前記実空間上の物体の存在する方向に基づいて、前記仮想空間における前記オブジェクトの配置位置を決定することを特徴とするプログラム。
【請求項２】
請求項１において、
前記オブジェクト制御部が、
前記距離が長くなるにつれて、前記オブジェクトをスケーリングする倍率を拡大することを特徴とするプログラム。
【請求項３】
請求項１又は２において、
前記オブジェクト制御部が、
前記距離が短くなるにつれて、前記オブジェクトをスケーリングする倍率を縮小させる
ことを特徴とするプログラム。
【請求項４】
請求項１〜３のいずれかにおいて、
前記オブジェクト制御部が、
時間経過に応じて変化させる前記オブジェクトのスケーリング倍率値の変化度合いを、前記距離に基づいて制御することを特徴とするプログラム。
【請求項５】
請求項１〜４のいずれかにおいて、
前記画像生成部は、 
複数のオブジェクトを含む表示画像を生成する処理を行い、
前記オブジェクト制御部が、
所定のオブジェクトに対して、前記距離に基づくオブジェクトの大きさを制御することを特徴とするプログラム。
【請求項６】
請求項１〜５のいずれかにおいて、
入力部の入力を判定する処理を行う判定部として、コンピュータを更に機能させ、
前記判定部が、
前記距離に基づいて、前記入力を判定する処理を行うことを特徴とするプログラム。
【請求項７】
請求項１〜６のいずれかにおいて、
前記仮想空間において、前記オブジェクトを移動させる処理を行う移動処理部として、コンピュータを更に機能させ、
前記移動処理部が、
前記距離に基づいて、前記オブジェクトを移動させる移動速度を制御することを特徴とするプログラム。
【請求項８】
請求項１〜７のいずれかにおいて、
仮想３次元空間における仮想カメラの位置を制御する仮想カメラ制御部として、コンピュータを更に機能させ、
前記仮想カメラ制御部が、
前記距離に基づいて、前記仮想カメラの位置を制御し、
前記画像生成部が、 
前記仮想カメラから見える画像を前記表示画像として生成する処理を行うことを特徴とするプログラム。
【請求項９】
請求項１〜８のいずれかにおいて、
仮想３次元空間における仮想カメラの画角を制御する仮想カメラ制御部として、コンピュータを更に機能させ、
前記仮想カメラ制御部が、
前記距離に基づいて、前記仮想カメラの画角を制御し、
前記画像生成部が、
前記仮想カメラから見える画像を前記表示画像として生成する処理を行うことを特徴とするプログラム。
【請求項１０】
請求項１〜９のいずれかにおいて、
前記仮想空間において、前記オブジェクトを移動させる処理を行う移動処理部として、コンピュータを更に機能させ、
前記移動処理部が、
前記入力画像に基づいて特定される前記入力部を基準とする実空間上の前記物体の存在する方向に基づいて、前記オブジェクトを移動させる移動方向を制御することを特徴とす
るプログラム。
【請求項１１】
固定設置される表示部に表示させる表示画像を生成する処理を行うゲームシステムであって、
実空間上の物体に光を照射し、当該物体の反射光を受光する入力部の入力画像を取得する取得部と、
前記入力部におけるプレーヤの入力タイミングを判定する入力判定部と、
前記入力画像に基づいて特定される前記入力部から前記物体までの距離に基づいて、仮想空間に配置されるオブジェクトであって前記プレーヤの入力タイミングを指示するオブジェクトの大きさを制御するオブジェクト制御部と、
前記オブジェクトを含む表示画像を生成する処理を行う画像生成部と、
仮想３次元空間における仮想カメラの視線方向を制御する仮想カメラ制御部と、
前記仮想空間において、前記オブジェクトを配置させる処理を行う配置部と、
を含み、
前記仮想カメラ制御部が、前記入力画像に基づいて特定される前記入力部を基準とする実空間上の前記物体の存在する方向に基づいて、前記仮想カメラの視線方向を制御し、
前記画像生成部が、前記仮想カメラから見える画像を前記表示画像として生成する処理を実行し、
前記配置部が、前記入力画像に基づいて特定される前記入力部を基準とする実空間上の前記物体の存在する方向に基づいて、前記仮想空間における前記オブジェクトの配置位置を決定することを特徴とするゲームシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体、ゲームシステムに関する。
【背景技術】
【０００２】
従来から、フィットネスゲームに関するゲームシステムが存在する（例えば、特許文献１参照）。例えば、このようなゲームシステムは、プレーヤに動きを指示する画像を表示部に表示させる処理を行っている。
【０００３】
しかし、従来のゲームシステムでは、実空間におけるプレーヤの位置によって、表示画像に表示されるオブジェクトを確認することが難しい場合があった。例えば、実空間において表示部から遠くにプレーヤが位置する場合には、表示部の近くに位置する場合よりもオブジェクトが小さく見えてしまう。フィットネスゲームでは、身体を動かすための空間がある程度必要になるため、表示部から距離をおいてしまうことが多く、表示画像において指示される指示内容を確認することが難しくなる傾向にあった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−２０７６１９
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、上記課題に鑑みてなされたものであり、プレーヤにとって視認し易い表示画像を生成することができるプログラム、情報記憶媒体、ゲームシステムを提供することにある。
【課題を解決するための手段】
【０００６】
（１）本発明は、表示部に表示させる表示画像を生成する処理を行うプログラムであって、物体に光を照射し、当該物体の反射光を受光する入力部の入力画像を取得する取得部と、入力画像に基づいて特定される前記入力部から前記物体までの距離に基づいて、仮想空間におけるオブジェクトの大きさを制御するオブジェクト制御部と、前記オブジェクトを含む表示画像を生成する処理を行う画像生成部として、コンピュータを機能させるプログラムに関する。また、本発明は、上記プログラムを記憶した情報記憶媒体、上記各部として構成するゲームシステムに関係する。
【０００７】
本発明によれば、入力画像に基づいて特定される入力部から物体までの距離に基づいて、仮想空間におけるオブジェクトの大きさを制御するので、プレーヤにとって視認し易い表示画像を生成することができる。
【０００８】
（２）本発明のプログラム、情報記憶媒体及びゲームシステムは、前記オブジェクト制御部が、前記距離が長くなるにつれて、前記オブジェクトをスケーリングする倍率を拡大するようにしてもよい。本発明は、プレーヤが入力部から遠くに位置するにつれて、オブジェクトを拡大して表示されるので、視認し易い表示画像を生成することができる。
【０００９】
（３）本発明のプログラム、情報記憶媒体及びゲームシステムは、前記オブジェクト制御部が、前記距離が短くなるにつれて、前記オブジェクトをスケーリングする倍率を縮小させるようにしてもよい。本発明は、プレーヤが入力部の近くに位置するにつれて、オブジェクトを縮小して表示されるので、入力部の近くにいてもプレーヤが視認し易い適切な大きさのオブジェクトを含む表示画像を生成することができる。
【００１０】
（４）本発明のプログラム、情報記憶媒体及びゲームシステムは、前記オブジェクト制御部が、時間経過に応じて変化させる前記オブジェクトのスケーリング倍率値の変化度合いを、前記距離に基づいて制御するようにしてもよい。本発明によれば、時間経過に応じて変化させるオブジェクトのスケーリング倍率値の変化度合いを、距離に基づいて制御するので、プレーヤにとって、見やすい変化度合いでオブジェクトの大きさを変化させることができる。
【００１１】
（５）本発明のプログラム、情報記憶媒体及びゲームシステムは、前記画像生成部は、複数のオブジェクトを含む表示画像を生成する処理を行い、前記オブジェクト制御部が、所定のオブジェクトに対して、前記距離に基づくオブジェクトの大きさを制御するようにしてもよい。
【００１２】
本発明によれば、所定のオブジェクトに対して、入力画像に基づいて特定される当該入力部と当該物体との距離に基づくオブジェクトの大きさを制御するので、例えば、プレーヤにとって必要な情報であるオブジェクトを制御対象とすれば、そのオブジェクトについて視認し易い画像を生成できる。
【００１３】
（６）本発明のプログラム、情報記憶媒体及びゲームシステムは、入力部の入力を判定する処理を行う判定部として、コンピュータを更に機能させ、前記判定部が、前記距離に基づいて、前記入力を判定する処理を行うようにしてもよい。
【００１４】
本発明によれば、入力画像に基づいて特定される物体の位置と入力部との距離に基づいて入力判定処理を行うので、プレーヤにとって適切な入力処理を行うことができる。例えば、プレーヤが入力部から遠ざかるにつれて、難易度を低くするように入力判定処理を行えば、プレーヤにとって納得できる入力判定処理を行うことができる。
【００１５】
（７）本発明のプログラム、情報記憶媒体及びゲームシステムは、前記仮想空間において、前記オブジェクトを移動させる処理を行う移動処理部として、コンピュータを更に機能させ、前記移動処理部が、前記距離に基づいて、前記オブジェクトを移動させる移動速度を制御するようにしてもよい。
【００１６】
本発明によれば、入力画像に基づいて特定される物体の位置と入力部との距離に基づいて、オブジェクトを移動させる移動速度を制御するので、適切な移動速度で移動するオブジェクトを含む表示画像を提供することができる。
【００１７】
例えば、プレーヤが入力部から遠ざかるにつれてオブジェクトの移動速度を減速するようにすれば、オブジェクトを視認しやすくすることができる。
【００１８】
（８）本発明のプログラム、情報記憶媒体及びゲームシステムは、仮想３次元空間における仮想カメラの位置を制御する仮想カメラ制御部として、コンピュータを更に機能させ、前記仮想カメラ制御部が、前記距離に基づいて、前記仮想カメラの位置を制御し、前記画像生成部が、前記仮想カメラから見える画像を前記表示画像として生成する処理を行うようにしてもよい。本発明によれば、入力画像に基づいて特定される当該入力部から当該物体までの距離に仮想カメラの位置を制御するので、プレーヤにとって、見やすい適切な画像を提供することができる。例えば、プレーヤが入力部から遠ざかるにつれて、仮想カメラがオブジェクトに近づくように仮想カメラの位置を制御すれば、透視投影変換処理によりオブジェクトが拡大して見えるようになり、プレーヤにとって見やすい画像を生成することができる。
【００１９】
（９）本発明のプログラム、情報記憶媒体及びゲームシステムは、仮想３次元空間における仮想カメラの画角を制御する仮想カメラ制御部として、コンピュータを更に機能させ、前記仮想カメラ制御部が、前記距離に基づいて、前記仮想カメラの画角を制御し、前記画像生成部が、前記仮想カメラから見える画像を前記表示画像として生成する処理を行うようにしてもよい。
【００２０】
本発明によれば、入力画像に基づいて特定される入力部から物体までの距離に基づいて仮想カメラの画角を制御するので、プレーヤにとって見やすい適切な画像を生成することができる。例えば、プレーヤが入力部に近づくにつれて、画角を広げるズームアウトの制御を行い、プレーヤが入力部から遠ざかるにつれて、画角を狭めるズームインの制御を行う。このようにすれば、プレーヤが入力部に近づくにつれて、オブジェクトが縮小されて見えるような表示画像を生成することができ、また、プレーヤが入力部から遠ざかるにつれて、オブジェクトが拡大して見るような表示画像を生成することができるので、結果的にプレーヤにとって見やすい適切な画像を生成することができる。
【００２１】
（１０）本発明のプログラム、情報記憶媒体及びゲームシステムは、仮想３次元空間における仮想カメラの視線方向を制御する仮想カメラ制御部として、コンピュータを更に機能させ、前記仮想カメラ制御部が、入力画像に基づいて特定される前記物体と当該入力部との位置関係に基づいて、前記仮想カメラの視線方向を制御し、前記画像生成部が、前記仮想カメラから見える画像を前記表示画像として生成する処理を行うようにしてもよい。
【００２２】
本発明によれば、入力画像に基づいて特定される物体と入力部との位置関係に基づいて、仮想カメラの視線方向を制御するので、プレーヤにとって見やすい適切な表示画像を生成することができる。また、本発明によれば、プレーヤが表示部を見る方向で、仮想カメラの視線方向を制御することができ、現実感のある表示画像を提供することができる。
【００２３】
（１１）本発明のプログラム、情報記憶媒体及びゲームシステムは、前記仮想空間において、前記オブジェクトを配置させる処理を行う配置部として、コンピュータを更に機能させ、前記配置部が、入力画像に基づいて特定される前記物体と前記入力部との位置関係に基づいて、前記仮想空間における前記オブジェクトの配置位置を決定するようにしてもよい。本発明によれば、仮想空間においてプレーヤが見やすい適切な位置に配置されるオブジェクトの表示画像を提供することができる。
【００２４】
（１２）本発明のプログラム、情報記憶媒体及びゲームシステムは、前記仮想空間において、前記オブジェクトを移動させる処理を行う移動処理部として、コンピュータを更に機能させ、前記移動処理部が、入力画像に基づいて特定される前記物体と前記入力部との位置関係に基づいて、前記オブジェクトを移動させる移動方向を制御するようにしてもよい。
【００２５】
本発明によれば、入力画像に基づいて特定される物体と入力部との位置関係に基づいて、オブジェクトを移動させる移動方向を制御するので、プレーヤが見やすい適切な移動方向で移動するオブジェクトを含む表示画像を生成することができる。
【図面の簡単な説明】
【００２６】
【図１】本実施形態の第１のゲームシステムの説明図。
【図２】本実施形態の第１のゲームシステムで使用されるコントローラの一例を示す説明図。
【図３】本実施形態の第１のゲームシステムで使用されるコントローラを用いて行われるポインティング指示の原理説明図。
【図４】本実施形態の第１のゲームシステムの機能ブロック図。
【図５】ゲーム画面の一例を示す説明図。
【図６】本実施形態の入力判定処理の説明図。
【図７】本実施形態の入力判定処理の説明図。
【図８】本実施形態の入力判定処理の説明図。
【図９】本実施形態の入力判定処理の説明図。
【図１０】図１０（Ａ）〜（Ｃ）は、本実施形態の入力定義情報の説明図。
【図１１】本実施形態の判定情報の説明図。
【図１２】本実施形態の判定情報の説明図。
【図１３】本実施形態のオブジェクトを含む画像生成に関する説明図。
【図１４】本実施形態のオブジェクトを含む画像生成に関する説明図。
【図１５】本実施形態のオブジェクトを含む画像生成に関する説明図。
【図１６】本実施形態の第１の実施形態のフローチャート図。
【図１７】本実施形態の第２のゲームシステムの説明図。
【図１８】本実施形態の第２のゲームシステムの機能ブロック図。
【図１９】図１９（Ａ）（Ｂ）は、本実施形態の入力部に入力される入力画像の説明図。
【図２０】本実施形態の深度センサの説明図。
【図２１】本実施形態の深度センサの説明図。
【図２２】本実施形態の実空間における物体の位置と入力部の位置関係を示す説明図。
【図２３】図２３（Ａ）（Ｂ）は、ゲーム画面の一例を示す説明図。
【図２４】本実施形態の実空間における物体の位置と入力部の位置関係を示す説明図。
【図２５】図２５（Ａ）（Ｂ）は、仮想カメラ制御を説明するための図。
【図２６】図２６（Ａ）（Ｂ）は、仮想カメラ制御を説明するための図。
【図２７】本実施形態の第２の実施形態のフローチャート図。
【図２８】本実施形態の実空間における物体の位置と入力部の位置関係を示す説明図。
【図２９】図２９（Ａ）（Ｂ）は、ゲーム画面の一例を示す説明図。
【図３０】本実施形態の実空間における物体の位置と入力部の位置関係を示す説明図。
【図３１】図３１（Ａ）（Ｂ）は、仮想カメラ制御を説明するための図。
【図３２】本実施形態の応用例におけるゲーム画面の一例を示す図。
【図３３】本実施形態の応用例におけるゲーム画面の一例を示す図。
【図３４】図３４（Ａ）〜（Ｄ）は、本実施形態の第２のゲームシステムの詳細な説明図。
【発明を実施するための形態】
【００２７】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。以下の実施形態では、本発明をゲームシステムに適用する場合を例に取り説明する。
【００２８】
１．第１の実施形態
１−１．第１のゲームシステム
図１は、第１の実施形態における第１のゲームシステム（第１の画像生成システム、第２の入力判定システム）の概略外観図である。本実施形態の第１のゲームシステムは、ゲーム画像を表示させる表示部９０と、ゲーム処理等を行うゲーム機１０（ゲーム機本体）と、プレーヤＰが両手に把持して位置、向きを任意に変更可能な第１のコントローラ２０Ａ、第２のコントローラ２０Ｂ（入力部の一例）とを含む。なお、図１の例では、ゲーム機１０と各コントローラ２０Ａ、２０Ｂとの間では無線通信により種々の情報を送受信する。
【００２９】
図２は、本実施形態のコントローラ２０の概略外観図である。コントローラ２０には、十字キー２７１とボタン２７２が設けられている。さらに、コントローラ２０には、コントローラの傾きや動きに応じて変化する情報を検出する物理センサとして加速度センサ２１０を備える。
【００３０】
本実施形態の加速度センサ２１０は、３軸加速度センサ２１０として形成され、３軸それぞれの加速度ベクトルを検出する。つまり、加速度センサ２１０は、コントローラにかかる３軸それぞれについて、一定時間における速度及び向きの変化を、加速度ベクトルとして検出する。
【００３１】
例えば、図１に示すように、プレーヤＰが第１、第２のコントローラ２０Ａ、２０Ｂを把持しながらコントローラを動すと、各コントローラ自体の傾き、動きを変化することになる。そして、各コントローラは、傾き、動きに応じて変化する加速度ベクトルを検出して、ゲーム機１０に加速度ベクトルを無線送信し、ゲーム機１０では、各コントローラ自体の加速度ベクトルに基づいて、所与の処理を行う。
【００３２】
また、コントローラ２０には、表示画面９１上の任意の位置を指示（ポインティング）する指示機能が設けられている。
【００３３】
このため、図１に示すように、表示部９０の周囲には、表示画面９１と関連付けた位置に基準位置認識体として一対の光源３０Ｒ、３０Ｌが配置されている。ここでは、表示部９０の上辺に沿って所定間隔で一対の光源３０Ｒ、３０Ｌが配置され、非可視光である赤外線が物体（被写体）にむけて投射される。また、図２に示すように、コントローラ２０の前面側には、コントローラ前方を撮像する撮像部２２０が設けられている。
【００３４】
コントローラ２０による表示画面９１内の指示位置を求める手法を、図３を用いて説明する。まず、図３に示す矩形の領域は、撮像部２２０（イメージセンサ）が取得した撮像画像ＰＡである。撮像画像ＰＡは、コントローラ２０の位置、向きに応じた画像となる。まず、撮像画像ＰＡに含まれる光源３０Ｒを撮像した領域ＲＡ、光源３０Ｌを撮像した領域ＬＡのそれぞれの位置ＲＰ、ＬＰを求める。なお、位置ＲＰ、ＬＰは、撮像画像ＰＡにおける２次元座標系（ＸＹ軸の座標系）によって特定できる位置座標である。一対の光源３０Ｒ、３０Ｌの距離と、表示画面９１と関連付けた一対の光源３０Ｒ、３０Ｌの相対位置は予め判明している。従って、ゲーム機１０は、求められた位置ＲＰ、ＬＰの座標から、コントローラ２０を用いた表示画面９１内における指示位置（ポインティング位置）を求めることができる。
【００３５】
すなわち、本実施形態では、撮像画像ＰＡの原点Ｏをコントローラ２０が指示する指示位置として求める。この指示位置は、撮像画像ＰＡの原点Ｏと、撮像画像ＰＡにおける特定位置ＲＰ、ＬＰと、撮像画像ＰＡにおける表示画面９１に対応する領域である表示画面領域ＤＡとの相対的な位置関係から求める。
【００３６】
図３の例では、特定位置ＲＰ、ＬＰが、撮像領域ＰＡの中央よりもやや上方において、撮像領域ＰＡの基準線ＬＸ（Ｘ軸）に対して時計回りにθ°回転された状態で形成されている。従って、図３の例では、原点Ｏは表示画面領域ＤＡの右下部の所定位置に対応させることができ、表示画面９１上における撮像部２２０を用いたコントローラ２０の指示位置の座標を求めることができる。
【００３７】
基準位置認識体は、コントローラのゲーム画面内の指示位置が特定できるものであればよい。光源は、必ずしも２個必要ではなく、表示画面９１との相対位置関係が特定できる形状をしたものであればよく、その数は１個又は３個以上でもよい。
【００３８】
１−２．構成
図４は、第１の実施形態の第１のゲームシステムの機能ブロック図の一例である。なお第１のゲームシステムでは、図１の各部を全て含む必要はなく、その一部を省略した構成としてもよい。第１のゲームシステムは、ゲーム機１０と、コントローラ２０（入力部の一例）と、表示部（表示装置）９０、スピーカー９２、光源３０Ｒ、３０Ｌとを含む。
【００３９】
光源３０Ｒ、３０Ｌは、非可視光である赤外線を発光する例えばＬＥＤであり、表示部９０に関連付けられて配置される。なお、本実施形態は、光源３０Ｒと光源３０Ｌとの距離は所定間隔を有するように設置されている。
【００４０】
コントローラ２０は、加速度センサ２１０、撮像部２２０、スピーカー２３０、振動部２４０、マイコン２５０、通信部２６０によって構成されている。
【００４１】
本実施形態では、入力部の一例としてコントローラ２０を挙げているが、例えば、画像入力部、音入力部、加圧センサを入力部としてもよい。
【００４２】
加速度センサ２１０は、３軸（Ｘ軸、Ｙ軸、Ｚ軸）の加速度を検出する。すなわち、加速度センサ２１０は、上下方向（Ｙ軸方向）、左右方向（Ｘ軸方向）、及び、前後方向（Ｚ軸方向）の加速度を検出することができる。なお、加速度センサ２１０は、５ｍｓｅｃ（５ミリ秒）毎に加速度を検出している。また、加速度センサは、１軸、２軸、６軸の加速度を検出するものであってもよい。なお、加速度センサから検出された加速度は、通信部２６０によってゲーム機１０に送信される。
【００４３】
撮像部２２０は、赤外線フィルタ２２２、レンズ２２４、撮像素子（イメージセンサ）２２６、画像処理回路２２８を含む。赤外線フィルタ２２２は、コントローラの前方に配置され、表示部９０に関連付けられて配置されている光源３０Ｒ、３０Ｌから入射する光から赤外線のみを通過させる。レンズ２２４は、赤外線フィルタ２２２を透過した赤外線を集光して撮像素子２２６へ出射する。撮像素子２２６は、例えば、ＣＭＯＳセンサやＣＣＤのような固体撮像素子であり、レンズ２２４が集光した赤外線を撮像して撮像画像を生成する。撮像素子２２６で生成された撮像画像は、画像処理回路２２８で処理される。例えば、撮像素子２２６から得られた撮像画像を処理して高輝度部分を検知し、撮像画像における光源の位置情報（特定位置）を検出する。また、検出した位置情報は、通信部２６０によって、ゲーム機１０に送信される。
【００４４】
スピーカー２３０は、ゲーム機１０から通信部２６０を介して取得した音を出力する。本実施形態では、ゲーム機１０から送信された確認音、効果音を出力する。
【００４５】
振動部（バイブレータ）２４０は、ゲーム機１０から送信された振動信号を受信して、振動信号に基づいて作動する。
【００４６】
マイコン（マイクロコンピュータ）２５０は、受信したゲーム機１０からのデータに応じて、音を出力する制御や、バイブレータを作動させる制御を行う。また、加速度センサ２１０が検出した加速度を通信部２６０を介してゲーム機に送信させる処理を行ったり、撮像部２２０によって検出された位置情報を、通信部２６０を介してゲーム機１０に送信させる処理を行う。
【００４７】
通信部２６０は、アンテナ、無線モジュールを含み、例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース；登録商標）の技術を用いて、ゲーム機１０とデータを無線で送信受信する。なお、本実施形態の通信部２６０は、加速度センサ２１０によって検出された加速度や撮像部２２０において検出した位置情報等を、４ｍｓｅｃ、６ｍｓｅｃの交互の間隔でゲーム機１０に送信している。なお、通信部２６０は、ゲーム機１０と通信ケーブルで接続し、当該通信ケーブルを介して情報の送受信を行うようにしてもよい。
【００４８】
なお、コントローラ２０は、十字キー２７１、ボタン２７２の他、レバー（アナログパッド）、マウス、タッチパネル型ディスプレイなどの操作子を更に設けてもよい。また、コントローラ２０は、コントローラ自体にかかる角速度を検出するジャイロセンサを備えていてもよい。
【００４９】
次に、本実施形態のゲーム機１０について説明する。本実施形態のゲーム機１０は、記憶部１７０、処理部１００、情報記憶媒体１８０、通信部１９６によって構成される。
【００５０】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などのハードウェアにより実現できる。
【００５１】
特に、本実施形態の記憶部１７０は、主記憶部１７１、描画バッファ１７２、判定情報記憶部１７３、音データ記憶部１７４を含む。描画バッファ１７２は、画像生成部１２０において生成された画像を記憶する。
【００５２】
また、判定情報記憶部１７３には、判定情報が記憶される。判定情報は、楽曲データの再生時間にあわせて、タイミング判定部１１４Ａで判定処理を行うための、基準開始・終了タイミングや、基準開始から終了までの期間を示す基準判定期間（判定期間の一例）、及び、予備開始・終了タイミングや、予備開始から終了までの期間を示す予備判定期間（判定期間の一例）を含む。例えば、判定情報記憶部１７３は、再生開始時点を０とした場合における再生時間に合わせて、基準判定期間の基準開始・終了タイミング、予備判定期間の予備開始・終了タイミングを記憶する。
【００５３】
また、判定情報記憶部１７３に記憶される判定情報は、入力情報判定部１１４Ｂで判定処理を行うための、各判定処理に対応する入力定義情報を含む。入力定義情報は、各判定処理の判定期間に対応づけて、ｘ、ｙ、ｚ各軸の複数の加速度値の集合（定義加速度群）とすることができる。
【００５４】
なお、予備判定期間に対応する基準判定期間の終了タイミングに合わせて、予備判定期間が終了するようにしてもよい。また、第１の基準開始タイミングから開始する第１の基準判定期間と、第１の基準開始タイミングの後に発生する第２の基準開始タイミングから開始する第２の基準判定期間とが、互いに重複しないように定義されている場合には、第１の基準判定期間に対応する予備判定期間は、第２の基準開始タイミングよりも前に終了するようにしてもよい。
【００５５】
また、音データ記憶部１７４は、楽曲データや効果音などを記憶する。
【００５６】
そして、処理部１００は、この情報記憶媒体１８０に格納されるプログラムから読み出されたデータに基づいて本実施形態の種々の処理を行う。即ち、情報記録媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００５７】
通信部１９６は、ネットワーク（インターネット）を介して他のゲーム機と通信することができる。その機能は、各種プロセッサまたは通信用ＡＳＩＣ、ネットワーク・インタフェース・カードなどのハードウェアや、プログラムなどにより実現できる。また、通信部１９６は、有線、無線いずれの通信も行うことができる。
【００５８】
また、通信部１９６は、アンテナ、無線モジュールを含み、例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース；登録商標）の技術を用いて、コントローラ２０の通信部２６０を介して、コントローラ２０とデータを送受信する。例えば、通信部１９６は、確認音、効果音等の音データ、及び、振動信号を、コントローラに送信し、コントローラ２０において、加速度センサや撮像画像センサによって検出された情報（加速度ベクトル値や、ポインティング位置など）を、４ｍｓｅｃ、６ｍｓｅｃの交互の間隔で受信する。
【００５９】
なお、本実施形態の各部としてコンピュータを機能させるためのプログラムは、サーバが有する、記憶部、情報記憶媒体からネットワークを介して情報記憶媒体１８０（または、記憶部１７０）に配信するようにしてもよい。このようなサーバの情報記憶媒体の使用も本発明の範囲に含まれる。
【００６０】
処理部１００（プロセッサ）は、コントローラ２０から受信した情報や情報記憶媒体１８０から記憶部１７０に展開されたプログラム等に基づいて、ゲーム処理、画像生成処理、或いは音制御の処理を行う。
【００６１】
本実施形態の処理部１００は、種々のゲーム処理を行う。例えば、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲーム終了条件が満たされた場合にゲームを終了する処理、最終ステージをクリアした場合にはエンディングを進行させる処理を行う。また、処理部１００は、音データ記憶部１７４に記憶されている楽曲データを再生する処理を行う。
【００６２】
また、本実施形態の処理部１００は、取得部１１０、配置部１１１、移動・動作処理部１１２、オブジェクト制御部１１３、判定部１１４、画像生成部１２０、音制御部１３０として機能する。
【００６３】
取得部１１０は、入力部（コントローラ２０）からの入力情報を取得する処理を行う。例えば、加速度センサ２１０から検出された３軸の加速度値を取得する。
【００６４】
配置部１１１は、オブジェクトを仮想空間（仮想３次元空間（オブジェクト空間）、仮想２次元空間）に配置する処理を行う。例えば、配置部１１１は、キャラクタ、指示オブジェクトの他に、建物、球場、車、樹木、柱、壁、マップ（地形）などの表示物を、仮想空間に配置する処理を行う。ここで仮想空間とは、仮想的なゲーム空間であり、例えば、仮想３次元空間の場合、ワールド座標系、仮想カメラ座標系のように、３次元座標（Ｘ，Ｙ，Ｚ）においてオブジェクトが配置される空間である。
【００６５】
例えば、配置部１１１は、ワールド座標系にオブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト）を配置する。また、例えば、ワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。なお、配置部１１１は、スケーリングされたオブジェクトを仮想空間に配置する処理を行ってもよい。
【００６６】
移動・動作処理部１１２は、仮想空間にあるオブジェクトの移動・動作演算を行う。すなわち入力部から受け付けた入力情報、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、オブジェクトを仮想空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させたりする処理を行う。具体的には、オブジェクトの移動情報（移動速度、移動加速度、位置、向きなど）や動作情報（オブジェクトを構成する各パーツの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求める処理を行う。なお、フレームは、オブジェクトの移動・動作処理や画像生成処理を行う時間の単位である。
【００６７】
なお、移動・動作処理部１１２は、仮想２次元空間においてオブジェクトを移動させる場合には、オブジェクト（例えば、指示マーク）を、所与の移動方向に所定の移動速度で移動させる制御を行うようにしてもよい。
【００６８】
オブジェクト制御部１１３は、オブジェクトの大きさを制御する処理を行う。例えば、オブジェクト制御部１１３は、予めモデリングされた（倍率１の大きさの）オブジェクトについて、スケーリング（拡大或いは縮小）する処理を行う。また、オブジェクト制御部１１３は、時間経過に応じてオブジェクトをスケーリングする倍率を変化させる処理を行う。
【００６９】
より具体的に説明すると、オブジェクト制御部１１３は、基準判定期間の開始タイミングから終了タイミングにかけてオブジェクトの倍率を１倍から２倍に変化させて、変化させた倍率に基づいてオブジェクトをスケーリングする処理を行う。なお、オブジェクト制御部１１３は、時間経過に応じて変化させるオブジェクトのスケーリングの倍率を変化させる変化度合を制御するようにしてもよい。例えば、基準判定期間の開始タイミングから終了タイミングにかけて、オブジェクトの倍率を１倍から２倍に変化させるように制御してもよいし、オブジェクトの倍率を１倍から３倍に変化させるように制御してもよい。
【００７０】
判定部１１４は、タイミング判定部１１４Ａ、入力情報判定部１１４Ｂを含む。
【００７１】
タイミング判定部１１４Ａは、基準開始タイミングと入力開始タイミングとが一致しているか否かを判定する処理を行う。また、タイミング判定部１１４Ａは、基準開始タイミングに基づいて定義された、基準開始タイミングとは異なる予備開始タイミングと入力開始タイミングとが一致しているか否かを判定する処理を行う。
【００７２】
また、タイミング判定部１１４Ａは、互いに異なる複数の予備開始タイミングが、基準開始タイミングに対応づけられている場合には、複数の予備開始タイミングそれぞれと、入力開始タイミングとが一致しているか否かを判定する処理を行う。つまり、複数の予備開始タイミングそれぞれのタイミングにおいて、当該予備開始タイミングと入力開始タイミングとが一致しているか否かを判定する処理を行う。なお、複数の予備開始タイミングのうち少なくとも１つのタイミングにおいて、当該予備開始タイミングと入力開始タイミングとが一致しているか否かを判定する処理を行ってもよい。また、複数の予備開始タイミングのうちいずれか１つのタイミングにおいて、当該予備開始タイミングと入力開始タイミングとが一致しているか否かを判定する処理をおこなってもよい。
【００７３】
また、タイミング判定部１１４Ａは、基準開始タイミングと入力開始タイミングとが一致している場合に、基準判定期間の終了タイミングと入力終了タイミングとが一致しているか否かを判定する処理を行い、予備開始タイミングと入力開始タイミングとが一致している場合に、予備判定期間の終了タイミングと入力終了タイミングとが一致しているか否かを判定する処理を行う。
【００７４】
入力情報判定部１１４Ｂは、基準開始タイミングから所与の基準判定期間に入力された入力情報と入力定義情報とが一致しているか否かを判定する処理を行う。なお、基準開始タイミングと入力開始タイミングとが一致している場合に、基準開始タイミングから所与の基準判定期間に入力された入力情報と入力定義情報とが一致しているか否かを判定する処理を行うようにしてもよい。
【００７５】
また、入力情報判定部１１４Ｂは、予備開始タイミングから所与の予備判定期間に入力された入力情報と入力定義情報とが一致しているか否かを判定する処理を行う。なお、予備開始タイミングと入力開始タイミングとが一致している場合に、予備開始タイミングから所与の予備判定期間に入力された入力情報と入力定義情報とが一致しているか否かを判定する処理を行うようにしてもよい。
【００７６】
また、入力情報判定部１１４Ｂは、互いに異なる複数の予備開始タイミングが、基準開始タイミングに対応づけられている場合に、タイミング判定部１１４Ａにおいて入力開始タイミングと一致していると判定された予備開始タイミングから所与の予備判定期間に入力された入力情報と入力定義情報とが一致しているか否かを判定する処理を行う。
【００７７】
また、入力情報判定部１１４Ｂは、互いに異なる複数の入力定義情報が、基準判定期間に対応づけられている場合には、タイミング判定部１１４Ａにおいて基準開始タイミングと入力開始タイミングとが一致している場合に、基準開始タイミングから基準判定期間に入力された入力情報と、複数の入力定義情報の少なくとも１つと一致しているか否かを判定する処理を行う。
【００７８】
入力情報判定部１１４Ｂは、互いに異なる複数の入力定義情報が、予備判定期間に対応づけられている場合には、予備開始タイミングと入力開始タイミングとが一致している場合に、当該予備開始タイミングから予備判定期間に入力された入力情報と、複数の入力定義情報の少なくとも１つと一致しているか否かを判定する処理を行う。
【００７９】
また、複数の加速度からなる定義加速度群を、入力定義情報としている場合には、入力情報判定部１１４Ｂは、次のように処理を行う。つまり、入力情報判定部１１４Ｂは、基準開始タイミングと入力開始タイミングとが一致している場合に、基準判定期間に入力部から検出される複数の加速度からなる加速度群と、定義加速度群とが一致しているか否かを判定する処理を行い、予備開始タイミングと入力開始タイミングとが一致している場合に、予備判定期間に入力部から検出される複数の加速度からなる加速度群と、定義加速度群とが一致しているか否かを判定する処理を行うようにしてもよい。
【００８０】
また、移動軌跡を定義した移動定義軌跡を、前記入力定義情報としている場合には、入力情報判定部１１４Ｂは、次のように処理を行う。つまり、入力情報判定部１１４Ｂは、基準開始タイミングと入力開始タイミングとが一致している場合に、基準判定期間に入力部から検出される移動軌跡と、移動定義軌跡とが一致しているか否かを判定する処理を行い、予備開始タイミングと入力開始タイミングとが一致している場合に、予備判定期間に入力部から検出される入力移動軌跡と、移動定義軌跡とが一致しているか否かを判定する処理を行うようにしてもよい。
【００８１】
また、画像間における特徴点の移動量及び移動方向を定義した移動定義ベクトルを、入力定義情報としている場合には、入力情報判定部１１４Ｂは、次のように処理を行う。つまり、入力情報判定部１１４Ｂは、基準開始タイミングと入力開始タイミングとが一致している場合に、基準判定期間に入力部から取得される複数の入力画像間における移動ベクトルと、移動定義ベクトルとが一致しているか否かを判定する処理を行い、予備開始タイミングと入力開始タイミングとが一致している場合に、予備判定期間に入力部から取得される複数の入力画像間における移動ベクトルと、移動定義ベクトルとが一致しているか否かを判定する処理を行うようにしてもよい。
【００８２】
画像生成部１２０は、処理部１００で行われる種々の処理の結果に基づいて描画処理を行い、これにより画像を生成し、表示部９０に出力する。例えば、本実施形態の画像生成部１２０は、基準開始タイミングと基準判定期間とを指示する画像を生成する。
【００８３】
画像生成部１２０は、オブジェクト（モデル）の各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）を含むオブジェクトデータ（モデルデータ）が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理（頂点シェーダによるシェーディング）が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。
【００８４】
頂点処理では、頂点処理プログラム（頂点シェーダプログラム、第１のシェーダプログラム）に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換（カメラ座標変換）、クリッピング処理、透視変換（投影変換）、ビューポート変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。
【００８５】
そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセル処理（ピクセルシェーダによるシェーディング、フラグメント処理）が行われる。ピクセル処理では、ピクセル処理プログラム（ピクセルシェーダプログラム、第２のシェーダプログラム）に従って、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を画像バッファ１７２（ピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ、レンダリングターゲット）に出力（描画）する。すなわち、ピクセル処理では、画像情報（色、法線、輝度、α値等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として１画面に表示できるように画像を生成することができる。
【００８６】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン（プリミティブ）の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ（頂点シェーダやピクセルシェーダ）により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【００８７】
そして画像生成部１２０は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【００８８】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後（透視投影変換後）のオブジェクトデータ（オブジェクトの頂点の位置座標、テクスチャ座標、色データ（輝度データ）、法線ベクトル、或いはα値等）は、記憶部１７０に保存される。
【００８９】
テクスチャマッピングは、記憶部１７０に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定（付与）されるテクスチャ座標等を用いて記憶部１７０からテクスチャ（色（ＲＧＢ）、α値などの表面プロパティ）を読み出す。そして、２次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【００９０】
隠面消去処理としては、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ（奥行きバッファ）を用いたＺバッファ法（奥行き比較法、Ｚテスト）による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファに格納されるＺ値を参照する。そして参照されたＺバッファのＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファのＺ値を新たなＺ値に更新する。
【００９１】
αブレンディング（α合成）は、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）のことである。
【００９２】
例えば、αブレンディングでは、これから画像バッファ１７２に描画する描画色（上書きする色）Ｃ１と、既に画像バッファ１７２（レンダリングターゲット）に描画されている描画色（下地の色）Ｃ２とを、α値に基づいて線形合成処理を行う。つまり、最終的な描画色をＣとすると、Ｃ＝Ｃ１＊α＋Ｃ２＊（１−α）によって求めることができる。
【００９３】
なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００９４】
音制御部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、スピーカー９２に出力する。
【００９５】
なお、本実施形態の端末は、１人のプレーヤのみがプレイできるシングルプレーヤモード、或いは、複数のプレーヤがプレイできるマルチプレーヤモードでゲームプレイできるように制御してもよい。例えば、マルチプレーヤモードで制御する場合には、ネットワークを介して他の端末とデータを送受信してゲーム処理を行うようにしてもよいし、１つの端末が、複数の入力部からの入力情報に基づいて処理を行うようにしてもよい。
【００９６】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などのハードウェアにより実現できる。
【００９７】
表示部９０は、処理部１００により生成された画像を出力するものであり、その機能は、ＣＲＴディスプレイ、ＬＣＤ（液晶ディスプレイ）、ＯＥＬＤ（有機ＥＬディスプレイ）、ＰＤＰ（プラズマディスプレイパネル）、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などのハードウェアにより実現できる。
【００９８】
スピーカー９２は、音制御部１３０により再生する音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどのハードウェアにより実現できる。なお、スピーカー９２は、表示部に備えられたスピーカーとしてもよい。例えば、テレビ（家庭用テレビジョン受像機）を表示部としている場合には、テレビのスピーカーとすることができる。
【００９９】
１−３．第１の実施形態の概要
第１の実施形態では、図５に示すように、空手の動きを指示させるための指示オブジェクトＯＢ１を含む画像を表示部９０に表示させる処理を行う。つまり、指示オブジェクトＯＢ１は、コントローラ２０を把持したプレーヤに対しての実空間内におけるコントローラ２０の移動態様を指示するオブジェクトである。
【０１００】
そして、プレーヤは、表示部９０に表示された指示画像を見ながら、両手それぞれに把持するコントローラ２０Ａ、２０Ｂを実空間内で移動させることによって、プレーヤ自身が空手の技を実演するようなフィットネス運動を行うことができる。
【０１０１】
本実施形態では、空手の１つの動き（例えば、「左腕半回転」の動き）を入力判定処理の１単位とし、複数の空手の動きを予め定義している。また、本実施形態では、１つの動き（例えば、「左腕半回転」）について基準判定期間を設け、基準判定期間の開始タイミング（基準開始タイミング）と、入力開始タイミングとが一致しているか否か、基準判定期間中に入力された入力情報で特定される動作が、特定の動き（例えば、「左腕半回転」）をしているか否か、基準判定期間の終了タイミング（基準終了タイミング）と入力終了タイミングとが一致しているか否かを判定する処理を行う。
【０１０２】
また、本実施形態では、図５に示すように、ゲーム画面内に、両手にコントローラを持ったキャラクタＣが、プレーヤに対して手本となる空手の動きを指示する。また、本実施形態では、ゲームの進行に伴い、プレーヤが持つコントローラ２０の移動態様を指示する指示オブジェクトＯＢ１を含む画像を生成する。指示オブジェクトは、移動軌跡を線で移動方向を矢印で示し、基準判定期間中の移動スピードを、移動タイミングマークＡ１で示している。図５の例では、指示オブジェクトＯＢ１、移動タイミングマークＡ１によって、プレーヤの左腕を半回転させる動きを指示している。
【０１０３】
なお、本実施形態では、時間経過に応じて、順次、空手の動きについて入力判定処理を行う。なお、図５に示すように、基準開始タイミングに先立って、次回の動きを示す予告指示オブジェクトＯＢ２を含む画像を生成して表示する。
【０１０４】
また、本実施形態では、仮想３次元空間に、キャラクタＣを配置させて、仮想カメラから見える画像を生成し、生成された画像上に、２次元の指示オブジェクトＯＢ１、予告指示オブジェクトＯＢ２、移動タイミングマークＡ１、Ａ２を合成し、表示画像を生成している。
【０１０５】
１−４．入力判定処理の詳細
本実施形態のゲーム機１０は、コントローラ２０の加速度センサ２１０から検出された加速度値を、入力情報として取得し、入力情報に基づいて入力判定処理（入力評価処理）を行う。つまり、プレーヤが、画像で指示した空手の動きを行っているか否かを判断する。本実施形態の入力判定処理の詳細について説明する。
【０１０６】
なお、図５の例では、右手に把持するコントローラ２０Ａの入力判定処理に対応づけて右側に指示オブジェクトを表示し、左手に把持するコントローラ２０Ｂの入力判定処理に対応づけて左側に指示オブジェクトを表示している。このように、本実施形態では、２つのコントローラ２０に対応づけて入力判定処理を行っているが、以下では、説明の便宜上、１つのコントローラに対する入力判定処理について説明する。
【０１０７】
１−４−１．タイミング判定
本実施形態では、基準開始タイミングが到来すると、コントローラ２０から取得した加速度ベクトルに基づいて、基準開始タイミングと入力開始タイミングとが一致しているか否かを判定する処理を行う。
【０１０８】
例えば、図６に示すように、本実施形態では、所定周期で加速度センサで検出されたｘ、ｙ、ｚ各軸の加速度値を取得する。
【０１０９】
そして、本実施形態では、基準開始タイミングＢＳにおいて取得したｘ、ｙ、ｚ各軸の加速度値が、基準開始タイミングＢＳに対応する加速度値（加速度値域）と照合し、基準開始タイミングと入力開始タイミングとが一致しているか否かを判定する処理を行う。
【０１１０】
例えば、基準開始タイミングＢＳにおいて取得したｘ、ｙ、ｚ各軸の加速度値が、基準開始タイミングＢＳに対応する加速度値である場合には、基準開始タイミングと入力開始タイミングとが一致していると判定し、基準開始タイミングＢＳにおいて取得したｘ、ｙ、ｚ各軸の加速度値が、基準開始タイミングＢＳに対応する加速度値でない場合には、不一致と判定する。
【０１１１】
また、本実施形態では、基準終了タイミングＢＥにおいても、基準開始タイミングと同じように、入力終了タイミングＩＥとが一致しているか否かを判定する処理を行う。
【０１１２】
１−４−２．入力情報判定
本実施形態では、図６に示すように、基準判定期間ＢＰの基準開始タイミングＢＳと、入力開始タイミングＩＳとが一致している場合に、基準判定期間ＢＰにおいて入力された入力情報ＩＤが、予め定めた入力定義情報ＭＤと一致しているか否かを判定する処理を行う。言い換えると、プレーヤがコントローラを移動させた移動態様と、画面に表示される指示内容の移動態様とが一致しているか否かを判定する。なお、入力定義情報ＭＤは、基準判定期間ＢＰの時間経過に応じて入力されるべきｘ、ｙ、ｚ軸の加速度値の集合（定義加速度群）である。
【０１１３】
本実施形態では、基準判定期間ＢＰの所定周期で（各フレームにおいて）加速度センサによって検出されたｘ、ｙ、ｚ各軸の複数の加速度からなる加速度群と、入力定義情報の加速度群とを照合し、基準判定期間ＢＰにおいて、入力情報が入力定義情報と一致しているか否かを判定する処理を行う。
【０１１４】
例えば、基準判定期間ＢＰにおいて、入力定義情報ＭＤの加速度群のうち、加速度センサによって検出された加速度と入力定義情報ＭＤの加速度と一致していると判定された割合が、６０％以上である場合に、この基準判定期間ＢＰにおいて、入力情報と、入力定義情報とが一致していると判定してもよい。
【０１１５】
１−４−３．予備開始タイミング
ところで、図７に示すように、プレーヤが、コントローラ２０を遅く振ってしまった場合、入力開始タイミングＩＳと、基準開始タイミングＢＳとが僅差でずれてしまい、入力開始タイミングが「不一致」であると判定されてしまうことがある。また、プレーヤが、コントローラ２０を早く振ってしまった場合においても、同様に入力開始タイミングと基準開始タイミングとが「不一致」であると判定されてしまうことがある。
【０１１６】
かかる場合、プレーヤにとってみれば、入力のタイミング判定と基準開始タイミングとを合わせることが難しいと感じてしまい、強い不満を与えてしまうおそれがある。そこで、本実施形態では、図８に示すように、基準開始タイミングＢＳに対応する、複数の予備開始タイミングＰＳ１、ＰＳ２、ＰＳ３を用意し、基準開始タイミングＢＳとずれても、予備開始タイミングＰＳ１、ＰＳ２、ＰＳ３のいずれかと入力開始タイミングＩＳとが一致していれば、入力タイミングが「一致」すると判定する処理を行っている。
【０１１７】
つまり、本実施形態では、１つの動き（例えば、「左腕半回転」）について基準判定期間ＢＰだけでなく、複数の予備判定期間ＰＰ１、ＰＰ２、ＰＰ３を設けている。そして、基準判定期間ＢＰの基準開始タイミングＢＳ、予備判定期間ＰＰ１の予備開始タイミングＰＳ１、予備判定期間ＰＰ２の予備開始タイミングＰＳ２、予備判定期間ＰＰ３の予備開始タイミングＰＳ３のうち、いずれかのタイミングと、入力開始タイミングＩＳとが一致しているか否かを判定する処理を行う。そして、いずれかのタイミングと入力開始タイミングＩＳとが一致している場合には、そのタイミングから終了タイミングまでの入力情報ＩＥが、入力定義情報ＭＤと一致しているか否かを判定する処理を行う。
【０１１８】
例えば、図８に示すように、１つの動きの入力判定処理において、入力開始タイミングＩＳが、予備判定期間ＰＰ３の予備開始タイミングＰＳ３と一致していれば、基準判定期間ＢＰの基準開始タイミングＢＳと入力開始タイミングＩＳとが一致していなくても、「一致」と判定する。
【０１１９】
このようにすれば、入力開始タイミング判定に余裕を持たせることができるので、プレーヤはコントローラ２０を振るタイミングが少し早まったり、或いは、少し遅れたりしても柔軟に入力タイミング判定を行うことができる。
【０１２０】
なお、本実施形態では、複数の動きの入力判定処理を行うので、各予備判定期間が、他の入力判定処理に影響を及ぼさないようにする必要がある。つまり、図９に示すように、第１の入力判定処理の基準判定期間ＢＰａに対応する予備判定期間ＰＰ１ａ、ＰＰ２ａ、ＰＰ３ａの各予備終了タイミングＰＥ１ａ、ＰＥ２ａ、ＰＥ３ａは、基準判定期間ＢＰａの終了タイミングＢＥａに合わせる。本実施形態では、各予備終了タイミングＰＥ１ａ、ＰＥ２ａ、ＰＥ３ａは、基準判定期間ＢＰａの終了タイミングＢＥａと同じタイミングにしているが、必ずしも同じでなくてもよい。
【０１２１】
例えば、各予備終了タイミングＰＥ１ａ、ＰＥ２ａ、ＰＥ３ａは、第２次の入力判定処理の基準判定期間ＢＰｂの開始タイミングＢＳｂよりも前であって、基準判定期間ＢＰｂに対応する各予備開始タイミングＰＳ１ｂ、ＰＳ２ｂ、ＰＳ３ｂよりも前であればよい。
【０１２２】
別の言い方をすれば、各予備開始タイミングＰＳ１ｂ、ＰＳ２ｂ、ＰＳ３ｂは、第１の入力判定処理の基準判定期間ＢＰａの終了タイミングＢＥａよりも後であって、基準判定期間ＢＰａに対応する各予備終了タイミングＰＥ１ａ、ＰＥ２ａ、ＰＥ３ａよりも後であればよい。
【０１２３】
このようにすれば、一の入力判定処理が他の入力判定処理に影響を及ぼさないようにすることができる。
【０１２４】
なお、基準開始・終了タイミング、予備開始・終了タイミング、基準判定期間、予備判定期間は、再生する楽曲データの再生開始時点からの経過時間によって定義される。例えば、楽曲データの再生開始時点を０としたときの経過時間によって定義される。
【０１２５】
なお、本実施形態では、予め基準開始タイミングと入力開始タイミングとのずれ期間を計測し、ずれ期間に基づいて、予備開始タイミング、予備判定期間を設定してもよい。例えば、図７に示すように、基準開始タイミングＢＳと入力開始タイミングＩＳとのずれ期間ＺＰを取得する。そして、基準開始タイミングＢＳから、期間ＺＰずれたタイミングを予備判定期間ＰＰの開始タイミングＰＳとして設定する。このように、開始タイミングＰＳ、予備判定期間ＰＰを、ずれ期間ＺＰに応じて設定することによって、プレーヤの癖などを考慮した予備開始タイミングを設定することができる。
【０１２６】
なお、本実施形態では、複数の基準判定期間それぞれについて、当該基準判定期間に対応する予備判定期間を期間ＺＰに基づいて設定するようにしてもよい。
【０１２７】
１−４−４．複数の入力定義情報
本実施形態では、図１０に示すように、１つの入力判定処理において、複数の入力定義情報ＭＤ１、ＭＤ２、ＭＤ３をあらかじめ定義してもよい。このようにすれば、入力情報判定において一致する機会を高めることができる。
【０１２８】
１−４−５．判定情報
本実施形態では、図１１に示すように、１つの入力判定処理それぞれのＩＤに対応づけて、基準判定期間（基準開始・終了タイミング）、予備判定期間１（予備開始・終了タイミング）、予備判定期間２（予備開始・終了タイミング）、予備判定期間３（予備開始・終了タイミング）、入力定義情報を、判定情報記憶部１７３に記憶して管理する。
【０１２９】
例えば、ＩＤ＝１の入力判定処理を行う場合には、基準開始タイミングＢＳａ、予備開始タイミングＰＳ１ａ、予備開始タイミングＰＳ２ａ、予備開始タイミングＰＳ３ａのいずれかのタイミングで、入力開始タイミングが一致しているか否かを判定する。そして、いずれかのタイミングと入力開始タイミングとが一致している場合には、その一致していると判定されたタイミングから開始する判定期間中の入力情報と、入力定義情報ＭＤ１ａ、ＭＤ２ａ、ＭＤ３ａのいずれかと一致しているか否かを判定する処理を行う。
【０１３０】
このようにすれば、より高い確率で、入力タイミング判定が一致していると判定され、より高い確率で、入力情報が一致していると判定されることになり、プレーヤが満足する入力判定処理を提供できるようになる。
【０１３１】
１−４−６．画像生成処理
本実施形態の画像生成部１２０は、図５に示すように、ゲームの進行に伴い、プレーヤが持つコントローラ２０の入力定義情報ＭＤ１に対応する指示内容を示す、指示オブジェクトＯＢ１及び移動タイミングマークＡ１を含む画像を生成する処理を行う。
【０１３２】
本実施形態では、例えば、図１２に示すように、指示オブジェクトＯＢ１は、基準判定期間ＢＰの基準開始タイミングＢＳにおいて、移動タイミングマークＡ１が移動軌跡の開始位置（移動軌跡の一端側）に位置させるように制御する。そして、基準判定期間ＢＰ中、移動軌跡に沿って移動タイミングマークＡ１が移動方向に移動し、基準終了タイミングＢＥに、移動タイミングマークＡ１が移動軌跡の終了位置（移動軌跡の他端側）に位置するように制御する。つまり、基準開始タイミングＢＳから終了タイミングＢＥにかけて、移動タイミングマークＡ１を移動軌跡に沿って、移動方向に向け移動させるように制御する。
【０１３３】
これにより、プレーヤは、基準判定期間ＢＰの基準開始タイミングＢＳ及び移動終了タイミングＢＥを知ることができる。また、基準判定期間ＢＰにかけて、入力定義情報ＭＤ１に対応するコントローラ２０を移動させる移動軌跡および移動方向を知ることができる。
【０１３４】
また、本実施形態では、キャラクタＣの動きも、入力定義情報ＭＤ（指示オブジェクトＯＢ１の移動軌跡）に連動して動くように動作制御を行うようにしてもよい。
【０１３５】
１−５．オブジェクトのスケーリング
本実施形態では、オブジェクトの指示内容を簡易に視認できるようにするために、オブジェクトを時間経過に応じてオブジェクトをスケーリングする処理を行う。
【０１３６】
１−５−１．予告期間のスケーリング
図１３に示すように、本実施形態では、基準判定期間ＢＰ以前に予告期間（ＤＴからＢＳまでの期間）を設け、基準開始タイミングに先立って指示する予告指示オブジェクトＯＢ１ａを含む画像を生成する。そして、基準開始タイミングＢＳが到来すると、予告指示オブジェクトＯＢ１ａから指示オブジェクトＯＢ１に切り替える。このようにすれば、プレーヤは、事前に、基準開始タイミングの到来、次の動きの移動軌跡を把握することができる。また、予告指示オブジェクトＯＢ１ａから指示オブジェクトＯＢ１に切り替わるタイミングが入力開始タイミングであるので、入力開始タイミングを把握しやすくなる。
【０１３７】
また、図１３に示すように、予告指示オブジェクトＯＢ１ａは、予告期間の時間経過に応じて、スケーリング（拡大）するようにしてもよい。例えば、予めモデリングされた予告指示オブジェクトＯＢ１ａの倍率を１倍とすると、予告期間の開始タイミングＤＴでは大きさ０．５倍にし、予告期間の終了タイミング（基準開始タイミング）ＢＳで大きさ１倍になるように、時間経過に応じてスケーリングする倍率を変化させる。
【０１３８】
そして、時間経過に応じて変化する倍率に基づいて予告指示オブジェクトＯＢ１ａをスケーリングする。このようにすれば、予告指示オブジェクトＯＢ１ａが最大の大きさになったタイミングが入力開始タイミングであるので、プレーヤは入力開始タイミングをことを瞬時に把握することができる。なお、予告移動タイミングマークＡ１ａも、予告指示オブジェクトＯＢ１ａの倍率に応じてスケーリングしてもよい。
【０１３９】
１−５−２．判定期間のスケーリング
また、本実施形態では、図１４に示すように、基準判定期間ＢＰの時間経過に応じて、指示オブジェクトＯＢ１を拡大するようにしてもよい。例えば、予めモデリングされた指示オブジェクトＯＢ１の倍率を１倍とすると、基準開始タイミングＢＳで大きさ１倍にし、基準終了タイミングＢＥで大きさ１．５倍になるように、時間経過に応じてスケーリングする倍率を変化させる。そして、時間経過に応じて変化する倍率に基づいて、指示オブジェクトＯＢ１をスケーリングする。なお、移動タイミングマークＡ１も、指示オブジェクトＯＢ１の倍率に応じてスケーリングしてもよい。このようにすれば、基準判定期間ＢＰ中に入力すべき動作を容易に認識することができる。
【０１４０】
図１５は、実空間において奥行き方向（Ｚ方向）の動作（例えば奧から手前に動かす動作）を指示するための指示オブジェクトＯＢ３及び移動タイミングマークＡ３の例を示す。例えば、図１５に示すように、基準判定期間ＢＰの時間経過に応じて、指示オブジェクトＯＢ３、移動タイミングマークＡ３のスケーリング倍率を１倍から１．５倍に増加させる。そして、基準判定期間ＢＰの時間経過に応じて増加する倍率に基づいて、指示オブジェクトＯＢ３、移動タイミングマークＡ３をスケーリング（拡大）する。このようにすれば、奥行き方向の指示がより極端に表現することができるので、プレーヤは容易に奥行き方向の動作を確認することができる。
【０１４１】
なお、本実施形態の指示オブジェクトは２次元のオブジェクトであるが、これを３次元オブジェクトに適用してもよい。
【０１４２】
例えば、仮想カメラから見て、奥行き方向に（例えば奥から手前に）動かす内容を示す指示オブジェクトを、３次元仮想空間に配置して画像を生成する場合には、基準判定期間ＢＰの基準開始タイミングＢＳで、１倍の倍率でスケーリングされた指示オブジェクトを配置する。そして、基準判定期間ＢＰの時間経過に応じて倍率を増加させて、増加させた倍率に基づきスケーリングする。そして、基準判定期間ＢＰの終了タイミングＢＥで１．５倍の倍率で指示オブジェクトをスケーリングする。このようにすれば、仮想カメラの視線方向（奥行き方向）に対応する動きを指示する場合には、奥行き方向の指示を極端に表すことができるので、プレーヤは容易に奥行き方向の動作を確認することができる。
【０１４３】
１−６．入力判定処理の流れ
本実施形態において、１つの動作における入力判定処理の流れについて、図１６を用いて説明する。まず、基準開始タイミング及び予備開始タイミングのいずれか１つのタイミングと、入力開始タイミングとが一致しているか否かを判定する（ステップＳ１）。例えば、図８を例にとると、時間経過に応じて、予備開始タイミングＰＳ１、基準開始タイミングＢＳ、予備開始タイミングＰＳ２、予備開始タイミングＰＳ３のいずれかのタイミングと、入力部から入力された入力開始タイミングと一致したかを判定する。
【０１４４】
そして、入力開始タイミングと基準開始タイミングとが一致している場合（ステップＳ１のＹ）、プレーヤのスコアを加算する処理を行う（ステップＳ２）。
【０１４５】
次に、入力情報と入力定義情報とが一致しているか否かを判定する（ステップＳ３）。例えば、複数の入力定義情報ＭＤ１、ＭＤ２、ＭＤ３のうちいずれか１つの入力定義情報と入力情報とが一致している場合には、一致していると判定する。
【０１４６】
なお、入力開始タイミング判定において、基準開始タイミングＢＳ、予備開始タイミングＰＳ１、予備開始タイミングＰＳ２、予備開始タイミングＰＳ３のうち、一致したと判定されたタイミングから開始する判定期間に入力された入力情報と、複数の入力定義情報ＭＤ１、ＭＤ２、ＭＤ３とを比較して判定する。例えば、図８の例によれば、予備開始タイミングＰＳ３と入力開始タイミングＩＳとが一致したと判定されるので、予備判定期間ＰＰ３において入力された入力情報と、入力定義情報ＭＤ１、ＭＤ２、ＭＤ３とを比較して判定する。
【０１４７】
そして、入力情報と入力定義情報とが一致していると判定されると（ステップＳ３のＹ）、プレーヤのスコアを加算する処理を行う（ステップＳ４）。
【０１４８】
最後に、入力終了タイミングと、判定期間による終了タイミングとが一致しているか否かを判定する（ステップＳ５）。例えば、図８の例によれば、判定期間は予備期間ＰＰ３となるので、予備終了タイミングＰＥ３と、入力終了タイミングＩＥとが一致したか否かを判定する。
【０１４９】
そして、入力終了タイミングと、判定期間による終了タイミングとが一致していると判定されると（ステップＳ５のＹ）、プレーヤのスコアを加算する処理を行う（ステップＳ６）。
【０１５０】
１−７．応用例
（１）本実施形態では、コントローラ２０から入力される十字キー２７１、ボタン２７２の信号を入力情報として、入力判定処理を行うようにしてもよい。例えば、基準判定期間に、所定の組み合わせによる複数の信号（十字キーの上、下、右、右などの信号の組み合わせ）を検出することが入力定義情報として予め定義されている場合には、基準開始タイミングに、最初の信号（上）が入力されたか否かを判定し、基準終了タイミングまでの基準判定期間に入力定義情報に合わせて入力信号が入力されたか否かを判定し、基準終了タイミングに、最後の信号（右）が入力されたか否かを判定するようにしてもよい。
【０１５１】
（２）本実施形態では、プレーヤの接触位置を検出するためのタッチパネルとが積層されたタッチパネル型ディスプレイや、ポインティングデバイスなどの入力部に応用してもよい。つまり、本実施形態では、判定期間（基準判定期間又は予備判定期間）に入力されるべき移動軌跡を定義した移動定義軌跡を、入力定義情報とする。
【０１５２】
そして、タッチパネル型ディスプレイや、ポインティングデバイスなどで検出された２次元の移動軌跡を入力情報とし、基準開始タイミングと入力開始タイミングとが一致している場合に、基準判定期間に入力部から検出される移動軌跡と、移動定義軌跡とが一致しているか否かを判定する処理を行ってもよい。また、予備開始タイミングと入力開始タイミングとが一致している場合に、予備判定期間に入力部から検出される入力移動軌跡と、移動定義軌跡とが一致しているか否かを判定する処理を行うようにしてもよい。
【０１５３】
２．第２の実施形態
次に、本実施形態の第２の実施形態について説明する。なお、第２の実施形態は、第１の実施形態を応用したものである。第２の実施形態では、第１の実施形態と共通する点について説明を省略し、第１の実施形態と相違する点や第２の実施形態で追加した点等について説明する。
【０１５４】
２−１．第２のゲームシステム
図１７は、第２の実施形態における第２のゲームシステム（第２の画像生成システム、第２の入力判定システム）の概略外観図である。本実施形態の第２のゲームシステムは、ゲーム画像を表示させる表示部９０と、ゲーム処理等を行うゲーム機５０（ゲーム機本体）と、入力部６０とを含む。そして、図１７に示すように、表示部９０（表示画面９１）の周囲には、表示部９０（表示画面９１）と関連付けた位置に入力部６０が配置されている。例えば、入力部６０は、表示部９０（表示画面９１）の下部に配置してもよいし、表示部９０（表示画面９１）の上部に配置してもよい。
【０１５５】
第２のゲームシステムは、プレーヤＰの手や体の動きを認識することができる入力部６０（センサの一例）を備えている。この入力部６０は、発光部６１０、深度センサ６２０、ＲＧＢカメラ６３０、音入力部６４０（マルチアレイマイクロフォン）とを備え、プレーヤＰ（物体）と非接触で、実空間におけるプレーヤＰの手や体の３次元の位置や、形の情報をとらえることができる。第２の実施形態では、この入力部６０を用いた第２のゲームシステムの処理例について説明する。
【０１５６】
２−２．構成
図１８は、第２のゲームシステムの機能ブロック図の一例である。なお、第１のゲームシステムの構成例との共通する点については説明を省略し、第１のゲームシステムの構成例と相違する点について説明する。なお、第２のゲームシステムでは、図１８の各部を全て含む必要はなく、その一部を省略した構成としてもよい。
【０１５７】
第２のゲームシステムは、ゲーム機５０と、入力部６０と、表示部９０、スピーカー９２を含む。
【０１５８】
入力部６０は、発光部６１０、深度センサ６２０、ＲＧＢカメラ６３０、音入力部６４０、処理部６５０、記憶部６６０によって構成されている。
【０１５９】
発光部６１０は、光を物体（プレーヤ、被写体）に照射する処理を行う。例えば、発光部６１０は、ＬＥＤなどの発光素子による赤外線などの光を対象の物体に照射する。
【０１６０】
深度センサ６２０は、物体から反射光を受光する受光部を有する。深度センサ６２０は、発光部６１０が発光しているときに受光した光量と、発光部６１０が発光していないときに受光した光量の差をとることによって、発光部６１０から照射される物体の反射光を取り出す処理を行う。つまり、深度センサ６２０は、図１９（Ａ）に示すように、発光部６１０から照射される物体の反射光を取り出した反射光画像（入力画像の一例）を、所定単位時間で（例えば、１／６０秒単位で）、記憶部６６０に出力する処理を行う。反射光画像は画素単位で、入力部６０から物体までの距離（深度値）を取得することができる。
【０１６１】
ＲＧＢカメラ６３０は、物体（プレーヤＰ）から発した光をレンズなどの光学系によって撮像素子の受光平面に結像させ、その像の光による明暗を電荷の量に光電変換し、それを順次読み出して電気信号に変換する。そして、ＲＧＢ化（カラー化）されたＲＧＢ画像（入力画像の一例）を記憶部６６０に出力する処理を行う。例えば、図１９（Ｂ）に示すようなＲＧＢ画像を生成する。ＲＧＢカメラ６３０は、所定単位時間で（例えば、１／６０秒単位で）、記憶部６６０に出力する処理を行う。
【０１６２】
なお、深度センサ６２０とＲＧＢカメラ６３０とは、共通の受光部から光を受光するようにしてもよい。かかる場合、２つの受光部を有していてもよい。また、深度センサ６２０用の受光部と、ＲＧＢカメラ６３０用の受光部とをそれぞれ異ならせてもよい。
【０１６３】
音入力部６４０は、音声認識処理を行うものであり、例えばマルチアレイマイクロフォンとすることができる。
【０１６４】
処理部６５０は、発光部６１０に発光するタイミングを指示したり、深度センサ６２０によって出力された反射光画像や、ＲＧＢカメラ６３０で撮像されたＲＧＢ画像を、ゲーム機５０に送信する処理などを行う。
【０１６５】
記憶部６６０は、深度センサ６２０によって出力された反射光画像や、ＲＧＢカメラ６３０によって出力されたＲＧＢ画像を逐次記憶する。
【０１６６】
次に、本実施形態のゲーム機５０について説明する。本実施形態のゲーム機５０は、記憶部５７０、処理部５００、情報記憶媒体５８０、通信部５９６によって構成される。
【０１６７】
特に、第２のゲームシステムの判定情報記憶部５７３に記憶される入力定義情報は、判定期間中に入力画像（反射光画像、ＲＧＢ画像）の特徴点の移動ベクトル（動きベクトル）を判定するための、予め定義した移動ベクトル（動きベクトル）を記憶する。
【０１６８】
そして、処理部５００は、この情報記憶媒体５８０に格納されるプログラムから読み出されたデータに基づいて本実施形態の種々の処理を行う。即ち、情報記録媒体５８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【０１６９】
通信部５９６は、ネットワーク（インターネット）を介して他のゲーム機と通信することができる。その機能は、各種プロセッサまたは通信用ＡＳＩＣ、ネットワーク・インタフェース・カードなどのハードウェアや、プログラムなどにより実現できる。
【０１７０】
なお、本実施形態の各部としてコンピュータを機能させるためのプログラムは、サーバが有する、記憶部、情報記憶媒体からネットワークを介して情報記憶媒体５８０（または、記憶部５７０）に配信するようにしてもよい。このようなサーバの情報記憶媒体の使用も本発明の範囲に含まれる。
【０１７１】
処理部５００（プロセッサ）は、入力部６０から受信した情報や情報記憶媒体５８０から記憶部５７０に展開されたプログラム等に基づいて、ゲーム処理、画像生成処理、或いは音制御の処理を行う。
【０１７２】
特に、第２のゲームシステムの処理部５００は、取得部５１０、配置部５１１、移動・動作処理部５１２、オブジェクト制御部５１３、判定部５１４、画像生成部５２０、音制御部５３０として機能する。
【０１７３】
第２の実施形態の取得部５１０は、入力部６０から反射光画像、ＲＧＢ画像などの入力画像情報を取得する処理を行う。
【０１７４】
配置部５１１は、入力画像（反射光画像及びＲＧＢ画像の少なくとも一方）に基づいて特定される物体と入力部６０との位置関係に基づいて、仮想空間におけるオブジェクトの配置位置を決定する。
【０１７５】
移動・動作処理部５１２の移動処理部は、入力画像に基づいて特定される入力部６０と物体との距離に基づいて、オブジェクトを移動させる移動速度を制御するようにしてもよい。
【０１７６】
オブジェクト制御部５１３は、入力画像に基づいて特定される入力部６０と物体との距離に基づいて、仮想空間におけるオブジェクトの大きさを制御する。例えばオブジェクト制御部５１３は、この距離が短くなるにつれて、オブジェクトをスケーリングする倍率を縮小させたり、或いは、この距離が長くなるにつれて、オブジェクトをスケーリングする倍率を拡大させる。
【０１７７】
また、オブジェクト制御部５１３、時間経過に応じて変化させるオブジェクトのスケーリングする倍率値の変化度合いを、入力画像に基づいて特定される入力部６０と物体との距離に基づいて制御するようにしてもよい。
【０１７８】
判定部５１４は、タイミング判定部５１４Ａ、入力情報判定部５１４Ｂを含む。タイミング判定部５１４Ａは、入力画像に基づいて特定される特徴点（特定領域）の移動量、移動方向を示す移動ベクトルが、予め定義された判定期間（基準判定期間、予備判定期間Ａ）の開始タイミングに対応する移動ベクトルと一致しているか否かを判定する。
【０１７９】
入力情報判定部５１４Ｂは、判定期間中に取得した、入力画像に基づいて特定される特徴点（特定領域）の移動量、移動方向を示す移動ベクトル（移動ベクトル群）が、予め定義された判定期間（基準判定期間、予備判定期間Ａ）の移動ベクトル（移動定義ベクトル群）と一致しているか否かを判定する処理を行う。
【０１８０】
なお、タイミング判定部５１４Ａ、入力判定部５１４Ｂは、入力画像に基づいて特定される入力部６０と物体との距離に基づいて難易度を調整して判定処理を行うようにしてもよい。
【０１８１】
仮想カメラ制御部５１５は、仮想３次元空間における仮想カメラの位置を制御する。仮想カメラ制御部５１５は、入力画像（反射光画像）に基づいて特定される当該入力部６０と物体との距離に基づいて、仮想カメラの位置を制御してもよい。また、仮想カメラ制御部５１５は、この距離に基づいて、仮想カメラの画角を制御してもよい。また、仮想カメラ制御部５１５は、反射光画像に基づいて特定される物体の位置と入力部６０との位置関係に基づいて、仮想カメラの視線方向を制御してもよい。
【０１８２】
２−３．入力部の説明
第２のゲームシステムの入力部６０は、深度センサ６２０と、ＲＧＢカメラ６３０とを備え、コントローラなどの入力機器を必要とせず、物体（プレーヤ、プレーヤの手など）の物体を画像処理することにより入力を受け付けることができる。これにより、従来にはない様々なゲーム処理を行うことができる。まず、入力部６０の深度センサ６２０、ＲＧＢカメラ６３０について説明する。
【０１８３】
２−３−１．深度センサ
本実施形態の深度センサ６２０について、図２０を用いて説明する。まず、図２０に示すように、入力部６０が備える発光部６１０は、タイミング信号にしたがって時間的に強度変動する光を発光する。発光される光は、光源の前方に位置するプレーヤＰ（物体）に照射される。
【０１８４】
そして、深度センサ６２０は、発光部６１０が発光した光の反射光を受光する。つまり、深度センサ６２０は、反射光の空間的な強度分布を抽出した反射像画像を生成する。例えば、深度センサ６２０は、発光部６１０が発光しているときに受光した光量と、発光部６１０が発光していないときに受光した光量の差をとることによって、発光部６１０からの光の物体による反射光を取り出して反射光画像を得る。この反射光画像の各画素の値は、深度センサ６２０の入力部６０の位置ＧＰから物体までの距離（深度値）に対応する。なお、入力部６０の位置ＧＰは、深度センサ６２０の位置、深度センサ６０が備える受光位置と同義である。
【０１８５】
例えば、図２０の例では、プレーヤＰの手の部分が入力部６０の位置ＧＰに最も近くにあるので、図１９（Ａ）に示すようなプレーヤＰの手を示す領域が、もっとも受光量多い部分（高輝度部分）となる反射像画像を得ることになる。
【０１８６】
本実施形態では、反射光画像の各画素について、輝度値（受光量、画素値）が所定値以上である画素を、入力部６０の位置ＧＰに近い画素として抽出する。例えば、反射光画像の階調が２５６階調であれば、所定値（例えば２００）以上の画素を、高輝度の部分として抽出する。
【０１８７】
この深度センサで得られる反射光画像は、物体までの距離（深度値）に関係する。つまり、図２１に示すように、入力部６０の位置ＧＰから１メートル離れたところでプレーヤＰが位置する場合は、位置ＧＰから２メートル離れたところでプレーヤＰが位置する場合よりも、反射光画像の手の領域部分が高輝度となる（受光量が多くなる）。また、入力部６０の位置ＧＰから２メートル離れたところでプレーヤＰが位置する場合は、位置ＧＰから３メートル離れたところでプレーヤＰが位置する場合よりも、反射光画像の手の領域部分が高輝度となる（受光量が多くなる）。
【０１８８】
このような原理に基づき、本実施形態では、反射光画像で高輝度部分として抽出された画素の輝度値に基づいて、実空間におけるプレーヤＰの位置を算出する。例えば、反射光画像のうち、輝度値が最も高い画素を特徴点とし、特徴点の輝度値に基づいて位置ＧＰからプレーヤＰまでの距離を算出する。なお、特徴点は、予め用意された形状パターンや移動ベクトル等に基づいて特定される手の領域の重心画素としてもよい。なお、反射光画像において高輝度部分が広い場合には、高輝度部分が狭い場合よりも例えば物体が入力部の近くに存在すると判定することもできる。
【０１８９】
また、本実施形態では、反射光画像に基づいて、入力部６０を基準とする実空間における物体の位置を特定することができる。例えば、反射光画像の中心に、特徴点がある場合には、物体が入力部６０の光源の発射方向上に位置しているものと特定できる。また、特徴点が反射光画像の上部にある場合には、入力部６０を基準に物体が上部にあるものと特定できる。また、特徴点が反射光画像の下部にある場合には、入力部６０を基準に物体が下部にあるものと特定できる。また、特徴点が反射光画像の左部にある場合には、入力部６０を基準に（入力部の正面（光源側）からみて）物体が右部にあるものと特定できる。また、特徴点が反射光画像の左部にある場合には、入力部６０を基準に物体が（入力部の正面（光源側）からみて）右部にあるものと特定できる。このように、本実施形態では、反射光画像に基づいて、物体と入力部６０との位置関係を特定できる。
【０１９０】
また、本実施形態では、反射光画像に基づいて、実空間における物体の移動方向を特定することができる。例えば、反射光画像の中心に特徴点があり、当該特徴点の輝度値が高くなる場合、物体が入力部６０の光源方向に近づいているものと特定できる。また、特徴点が反射光画像の上部から下部に移動している場合には、入力部６０を基準に物体が上部から下部に移動しているものと特定できる。また、特徴点が反射光画像の左部から右部に移動している場合には、入力部６０を基準に物体が右部から左部に移動しているものと特定できる。このように、本実施形態では、反射光画像に基づいて、入力部６０を基準に物体の移動方向を特定できる。
【０１９１】
なお、物体の反射光は、入力部６０の位置ＧＰから物体の距離が大きくなるにつれ大幅に減少する。例えば、反射光画像の１画素あたりの受光量は、物体までの距離の２乗に反比例して小さくなる。したがって、プレーヤＰが入力部６０から２０メートル程離れて位置する場合には、プレーヤＰからの反射光はほぼ無視できるくらいに受光量が小さくなり、プレーヤＰを特定できるような高輝度部分を抽出することができない。かかる場合には、入力がないものとして制御してもよい。また、高輝度部分を抽出することができない場合には、スピーカーから警告音を出力するようにしてもよい。
【０１９２】
２−３−２．ＲＧＢカメラの説明
本実施形態は、ＲＧＢカメラ（撮影部）６３０によりＲＧＢ画像を入力情報として取得する。ＲＧＢ画像は、反射光画像に対応しているため、物体の移動ベクトル（動きベクトル）や形状領域の抽出処理の精度を高めることができる。
【０１９３】
本実施形態では、例えば、描画のフレームレート（例えば６０ｆｐｓｆｐｓは、Ｆｒａｍｅ  Ｐｅｒ  Ｓｅｃｏｎｄの略）に応じて、ＲＧＢカメラからデジタル化されたＲＧＢ画像を取得する。そして、ＲＧＢカメラ６３０によって撮影された動画像を構成する２枚の画像間における特徴点の移動量、移動方向を示す移動ベクトル（動きベクトル）を算出する。ここで、画像の特徴点は、コーナー検出やエッジ抽出よって求めることができる１又は複数の画素である。また、移動ベクトルは、前画像における特徴点（特徴点を含む領域でもよい）が現画像において、どの方向にどの程度移動するかを示すベクトルであり、いわゆるオプティカルフローである。オプティカルフローは、例えば、勾配法やブロックマッチング法によって求めることができる。本実施形態では、例えば、撮影された画像からエッジ抽出によってプレーヤＰの輪郭線、手の輪郭線を検出し、検出した輪郭線の画素の移動ベクトルを求めている。
【０１９４】
そして、本実施形態では、特徴点の移動量が所定移動量以上になった場合に、入力があったと判定する。そして、特徴点の移動ベクトルと、予め用意された移動定義ベクトルとをマッチングし、プレーヤＰの手の領域を抽出する処理を行う。また、本実施形態では、ＲＧＢカメラ６３０によって取得したＲＧＢ画像の各画素のＲＧＢカラー値に基づいて、物体を抽出する処理を行うようにしてもよい。
【０１９５】
また、本実施形態では、深度センサ６２０によって、入力部６０からの物体までの距離（深度値）を特定でき、反射光画像やＲＧＢ画像の２次元平面上において高輝度部分の特徴点の位置座標（Ｘ、Ｙ）、特徴点の移動ベクトルを抽出できる。したがって、入力部６０から物体までの距離（Ｚ）と、反射光画像及びＲＧＢ画像の位置座標（Ｘ、Ｙ）とに基づいて、実空間における入力部６０を基準とする物体の位置Ｑを特定できる。
【０１９６】
２−４．オブジェクト制御
本実施形態では、入力部６０によって得られた入力画像（反射光画像、ＲＧＢ画像）に基づいて、表示部に表示させる表示画像を生成する処理を行う。詳細を以下に述べる。
【０１９７】
２−４−１．オブジェクトの大きさを制御する手法
まず、本実施形態では、反射光画像に基づいて算出された、入力部６０の位置ＧＰから物体までの距離Ｌに基づいて、仮想空間に配置するオブジェクトの大きさを制御する処理を行う。
【０１９８】
例えば、図２２に示すように、入力部６０の位置ＧＰから物体までの距離Ｌ１が所定距離ＬＤ以下（Ｌ１≦ＬＤ）である場合には、指示オブジェクトＯＢ１や、移動タイミングマークＡ１、予告指示オブジェクトＯＢ２、移動タイミングマークＡ２、キャラクタＣなどのオブジェクトを予め決められた倍率（例えば倍率１）でスケーリングして画像を生成する。例えば、表示画像は図２３（Ａ）が表示される。
【０１９９】
一方、図２４に示すように、入力部６０の位置ＧＰから物体までの距離Ｌ２が所定距離ＬＤより大きい（Ｌ１≦ＬＤ＜Ｌ２）である場合は、距離Ｌ１の場合よりも、オブジェクトをスケーリングする倍率を増加させる。例えば、図２３（Ｂ）に示すように、オブジェクトを２倍の倍率でスケーリングして画像を生成する。
【０２００】
つまり、本実施形態では、入力部６０の位置ＧＰから物体までの距離Ｌの変化に応じて、オブジェクトのスケーリング倍率を制御している。例えば、距離Ｌが短くになるにつれて、オブジェクトのスケーリング倍率を小さくし、距離Ｌが長くなるにつれてキャラクタＣのスケーリング倍率を大きくする。
【０２０１】
なお、本実施形態では、所定間隔（例えば描画のフレームレート（６０ｆｐｓ））で反射光画像を取得するので、リアルタイムに入力部６０の位置ＧＰから物体までの距離Ｌを算出することができる。したがって、本実施形態では、リアルタイムに距離Ｌの変化に応じて、オブジェクトをスケーリングするための倍率を制御するようにしてもよい。
【０２０２】
なお、本実施形態では、記憶部５７０に、予めモデリングされたオブジェクトを１倍として記憶している。また、記憶部５７０には、オブジェクト制御対象（スケーリング対象）となるオブジェクト、オブジェクト制御対象（スケーリング対象）とはならないオブジェクトとを、それぞれ識別して記憶する。
【０２０３】
より具体的には、オブジェクト制御対象となるキャラクタＣ、指示オブジェクトＯＢ１、予告指示オブジェクトＯＢ２、移動タイミングマークＡ１、Ａ２については制御フラグを「１」とし、オブジェクト制御対象とはならないスコアＳ１、Ｓ２などのオブジェクトの制御フラグを「０」として、各オブジェクトのＩＤに対応づけて記憶する。
【０２０４】
そして、制御フラグが「１」であるオブジェクトについて、オブジェクトを距離Ｌに基づいてスケーリング倍率を算出し、算出された倍率に基づいてオブジェクトをスケーリングする処理を行う。このようにすれば、プレーヤにとって必要な情報となるオブジェクトについて、スケーリング対象とすることができて有益である。なお、本実施形態では、入力評価判定を行うために入力を指示するオブジェクトを、オブジェクト制御対象としている。
【０２０５】
以上のように、本実施形態では、入力部６０の位置ＧＰから物体までの距離Ｌに基づいて、オブジェクトの大きさを制御するので、プレーヤＰにとって適切な大きさのオブジェクトを含む表示画像を生成することができる。例えば、プレーヤＰが入力部６０から遠ざかっても、オブジェクト、キャラクタが拡大して表示されるようになるので、入力判定で求められる指示内容を容易に確認することができる。また、プレーヤＰが入力部６０に近づくと、指示オブジェクトＯＢ１、キャラクタＣが縮小して表示されるようになるので、適切なサイズのオブジェクトで指示内容を容易に確認することができる。
【０２０６】
なお、本実施形態では、タイミング判定や、入力情報判定の入力判定結果に基づいて、オブジェクトの大きさを制御するようにしてもよい。つまり、入力部６０から物体までの距離Ｌと、入力判定結果とに基づいてオブジェクトの大きさを制御するようにしてもよい。
【０２０７】
例えば、判定期間の開始タイミング（基準開始タイミング又は予備開始タイミング）と入力開始タイミングとが一致している場合には、オブジェクトをスケーリングする倍率を距離Ｌに基づいて制御し（例えば２倍）、判定期間の基準タイミングと入力開始タイミングとが一致していない場合には、オブジェクトをスケーリングする倍率を距離Ｌに基づいて算出された倍率を更に増加させる（例えば３倍）にする。このようにすれば、入力タイミング判定に誤りが生じやすいプレーヤに対して、更に、オブジェクトを視認し易くすることができる。
【０２０８】
また、判定期間（基準判定期間又は予備判定期間）に入力される入力情報が、入力定義情報と一致している場合には、オブジェクトをスケーリング倍率を距離Ｌに基づいて制御し（例えば２倍）、入力情報が入力定義情報と一致していない場合には、オブジェクトをスケーリングする倍率を距離Ｌに基づいて算出された倍率を更に増加させる（例えば３倍）にする。このようにすれば、プレーヤはオブジェクトを視認しやすくなり、判定期間において入力情報が一致していると判定される可能性を高めることができる。
【０２０９】
また、プレーヤのスコアＳ１が、所定スコア値以上である場合には、オブジェクトをスケーリングする倍率を距離Ｌに基づいて算出し、プレーヤのスコアＳ１が、所定スコア値よりも低い場合には、オブジェクトをスケーリングする倍率を、距離Ｌに基づいて算出する倍率よりも増加させた倍率にする。このようにすれば、プレーヤは高得点を狙いやすくなり、プレーヤのレベルにあったサイズでオブジェクトを制御することができる。
【０２１０】
２−４−２．スケーリング倍率値の変化度合い
本実施形態では、例えば、図１３、図１４で示すように予告期間や基準判定期間の時間経過に応じて、指示オブジェクトＯＢ１を拡大する処理を行っている。例えば、基準判定期間の拡大処理を例にとると、予めモデリングされた指示オブジェクトＯＢ１の倍率を１倍とすると、基準開始タイミングＢＳで大きさ１倍にし、基準終了タイミングＢＥで大きさ１．５倍になるように、時間経過に応じてスケーリングする倍率を変化させる。そして、時間経過に応じて変化する倍率に基づいて、指示オブジェクトＯＢ１をスケーリングする。
【０２１１】
そこで、本実施形態では、予告期間や基準判定期間の時間経過に応じて変化させる指示オブジェクトのスケーリング倍率値の変化度合いを、反射光画像に基づいて特定される物体と入力部６０との距離に基づいて制御する。
【０２１２】
例えば、図２２に示すように、入力部６０の位置ＧＰから物体までの距離Ｌ１が所定距離ＬＤ以下（Ｌ１≦ＬＤ）である場合には、指示オブジェクトＯＢ１を「１倍」から「２倍」の変化度合い（１〜２の値域）で、時間経過に応じてスケーリング倍率を変化させる。
【０２１３】
一方、図２４に示すように、入力部６０の位置ＧＰから物体までの距離Ｌ２が所定距離ＬＤより大きい（Ｌ１≦ＬＤ＜Ｌ２）である場合は、距離Ｌ１の場合よりも、変化度合いを大きくする。例えば、指示オブジェクトＯＢ１を「１倍」から「３倍」の変化度合い（１〜３の値域）で、時間経過に応じてスケーリング倍率を変化させる。このようにすれば、入力部６０から遠くに位置している場合であっても、プレーヤは予告期間や、判定期間を容易に確認することができる。
【０２１４】
２−５．仮想カメラ制御
本実施形態では、反射光画像に基づいて算出された、入力部６０の位置ＧＰから物体までの距離Ｌ、物体の位置Ｑに基づいて、仮想カメラの位置、画角を制御してもよい。
【０２１５】
なお、本実施形態では、所定間隔に応じて、リアルタイムに距離Ｌを算出することができる。したがって、本実施形態では、リアルタイムに、距離Ｌに基づいて、仮想カメラの位置、画角を制御してもよい。
【０２１６】
２−５−１．視点位置の制御
本実施形態において、仮想カメラＶＣの視点位置を制御する手法について説明する。例えば、図２２に示すように、入力部６０の位置ＧＰと物体（プレーヤＰ）までの距離がＬ１（Ｌ１≦ＬＤ）である場合において、図２５（Ａ）に示すように、仮想３次元空間において、仮想カメラＶＣを位置ＤＰ１に配置させる。
【０２１７】
そして、図２４に示すように、入力部６０の位置ＧＰと物体までの距離ＬがＬ２（Ｌ１≦ＬＤ＜Ｌ２）である場合は、図２５（Ｂ）に示すように、距離Ｌ＝Ｌ１の場合よりも、仮想カメラＶＣの位置を視線方向ＣＶに向かって移動させた位置ＤＰ２に配置させる。
【０２１８】
例えば、ＤＰ１に位置する仮想カメラＶＣの前方の視野範囲内にキャラクタＣが定位置にある場合には、仮想カメラＶＣを位置ＤＰ１から位置ＤＰ２に移動させることによって、生成される表示画像においてキャラクタＣが拡大して表示するように見える。つまり、透視投影変換処理によって、キャラクタＣが拡大して見えるようになり、プレーヤにとって適切な大きさのオブジェクトを含む表示画像を生成することができる。
【０２１９】
２−５−２．画角の制御
本実施形態において、仮想カメラＶＣの画角を制御する手法について説明する。例えば、図２２に示すように、入力部６０の位置ＧＰと物体（プレーヤＰ）までの距離がＬ１（Ｌ１≦ＬＤ）である場合において、図２６に示すように、仮想カメラの画角がθ１に設定されていたとする。
【０２２０】
そして、図２４に示すように、入力部６０の位置ＧＰと物体（プレーヤＰ）までの距離ＬがＬ２（Ｌ１≦ＬＤ＜Ｌ２）である場合は、図２６（Ｂ）に示すように、距離Ｌ＝Ｌ１の場合よりも、仮想カメラＶＣの画角をθ２にして、画角を狭くする。つまり、視野を縮小させる処理を行う（ズームインする）。このようにすれば、キャラクタＣが拡大して見えるようになり、プレーヤにとって、見やすい画像を提供することができる。逆に、距離ＬがＬ２からＬ１になると、画角を広くすることによって視野を広げる処理を行う（ズームアウトする）。このようにすれば、キャラクタＣが縮小して見えるようになり、プレーヤにとって、見やすい画像を提供することができる。
【０２２１】
２−６．入力判定処理
第２の実施形態では、反射光画像、ＲＧＢ画像に基づいて入力タイミング、入力情報（移動ベクトル（動きベクトル）、移動軌跡）を特定し、入力判定処理を行う。
【０２２２】
例えば、反射光画像及びＲＧＢ画像による動画像の画像間の移動ベクトルの移動量が所定量以上であって、移動方向が予め定めた移動定義ベクトルに一致している場合に、入力があると判断する。
【０２２３】
また、反射光画像、ＲＧＢ画像に基づいて特定される特徴点（特定領域）の移動量、移動方向を示す移動ベクトルが、予め定義された判定期間（基準判定期間又は予備判定期間Ａ）の開始タイミングに対応する移動ベクトルと一致しているか否かを判定することによって、入力開始タイミングＩＳと判定期間の開始タイミング（例えば基準開始タイミングＢＳ）とが一致していると判定する。
【０２２４】
また、判定期間（基準判定期間又は予備判定期間）に取得した、入力画像（反射光画像、ＲＧＢ画像）に基づいて特定される特徴点（特定領域）の移動量、移動方向を示す移動ベクトル（３つ以上の入力画像において各画像間における特徴点（特定領域）を抽出する場合には、移動ベクトル群）が、予め定義された判定期間（基準判定期間又は予備判定期間）の画像間における特徴点の移動定義ベクトル（３つ以上の画像において各画像間における特徴点の移動を定義する場合には移動定義ベクトル群）と一致しているか否かを判定する処理を行うことによって、判定期間に入力された入力情報と、入力定義情報ＭＤとが一致しているか否かを判定する。
【０２２５】
また、第２の実施形態においても、図８に示すように、基準開始タイミングＢＳに対応する、複数の予備開始タイミングＰＳ１、ＰＳ２、ＰＳ３を定義し、いずれかと入力開始タイミングＩＳとが一致しているか否かを判定する。例えば、複数の予備開始タイミングそれぞれのタイミングにおいて、予備開始タイミングと入力開始タイミングとが一致しているか否かを判定し、ＰＳ１、ＰＳ２、ＰＳ３のうちいずれかの予備開始タイミングと入力開始タイミングとが一致しているか否かを判定する。
【０２２６】
ところで、第２の実施形態では、入力部６０の位置ＧＰから物体までの距離Ｌに応じて、入力のタイミング判定処理の難易度を調整してもよい。例えば、図２２に示すように、位置ＧＰから物体までの距離がＬ１（Ｌ１≦ＬＤ）である場合は、基準開始タイミングＢＳに対応する予備開始タイミングはＰＳ１のみにし、図２４に示すように、位置ＧＰから物体までの距離がＬ２（Ｌ１≦ＬＤ＜Ｌ２）である場合は、基準開始タイミングＢＳに対応する予備開始タイミングはＰＳ１、ＰＳ２、ＰＳ３にする。つまり、物体と入力部６０の位置ＧＰとの距離が長くなるにつれて、予備基準タイミングを増加させてタイミング判定の難易度を低くし、物体が入力部６０に近づくほど、タイミング判定の難易度を高くする。
【０２２７】
第２の実施形態では、入力部６０の位置ＧＰから物体までの距離に応じて、入力情報判定処理の難易度を調整してもよい。例えば、図２２に示すように、位置ＧＰから物体までの距離ＬがＬ１（Ｌ１≦ＬＤ）である場合は、基準判定期間あるいは予備判定期間に入力される入力情報が、入力定義情報ＭＤ１のみに一致しているか否かを判定し、図２４に示すように、位置ＧＰから物体までの距離Ｌ２（Ｌ１≦ＬＤ＜Ｌ２）である場合は、基準判定期間あるいは予備判定期間に入力される入力情報が、入力定義情報ＭＤ１、ＭＤ２、ＭＤ３のいずれかと一致しているか否かを判定する。つまり、物体と入力部６０の位置ＧＰとの距離が長くなるにつれて、入力定義情報を増加させて入力情報判定の難易度を低くし、物体が入力部６０に近づくほど、入力情報判定の難易度を高くする。
【０２２８】
つまり、プレーヤＰが入力部６０から遠ざかるにつれて、プレーヤは指示オブジェクトを視認することが難しくなり、また、反射光画像やＲＧＢ画像に基づき抽出される特徴点の精度が落ちてしまう。このように、プレーヤＰが入力部６０から遠ざかると、プレーヤにとって不利になりやすいので、本実施形態では入力判定処理の難易度を調整するようにしている。
【０２２９】
なお、本実施形態では、所定間隔（例えば描画のフレームレート（６０ｆｐｓ））に応じて、リアルタイムに距離Ｌを取得することができる。したがって、本実施形態では、リアルタイムに距離Ｌに基づいて、入力情報判定処理の難易度を調整してもよい。
【０２３０】
２−７．第２の実施形態の処理の流れ
第２の実施形態の処理の流れについて、図２７を用いて説明する。まず、入力部６０からプレーヤまでの距離を取得する処理を行う（ステップＳ１０）。次に、入力部６０からプレーヤまでの距離に基づいて、仮想空間における指示オブジェクトの大きさを決定する処理を行う（ステップＳ１１）。そして、決定された大きさの指示オブジェクトに基づいて画像を生成する処理を行う（ステップＳ１２）。
【０２３１】
２−８．応用例
２−８−１．第１の応用例
本実施形態では、反射光画像に基づいて、物体と入力部６０との位置関係を特定できるので、第１の応用例では、物体と入力部との位置関係に基づく処理例について説明する。
【０２３２】
（１）オブジェクトの配置位置
本実施形態では、反射光画像に基づいて特定される物体と入力部６０との位置関係に基づいて、仮想空間におけるオブジェクトの配置位置を決めてもよい。例えば、図２８に示すように、プレーヤＰが入力部６０の位置ＧＰに対して左側に位置している場合には、反射像画像の高輝度部分が反射像画像中心より右側で抽出される。したがって、プレーヤＰが入力部６０に対して左側に位置していると特定できる。そして、本実施形態では、図２９（Ａ）に示すように、オブジェクトを、画面の中心より左側に移動させて配置させる。
【０２３３】
また、図３０に示すように、プレーヤＰが入力部６０の位置ＧＰに対して右側に位置している場合には、反射像画像の高輝度部分が反射像画像中心より左側で抽出される。したがって、プレーヤＰが入力部６０に対して右側に位置していると特定できる。そして、本実施形態では、図２９（Ｂ）に示すように、オブジェクトを、画面の中心より右側に移動させて配置させる。
【０２３４】
このようにすれば、入力画像に基づいて特定される物体と入力部６０との位置関係に基づいて、仮想空間におけるオブジェクトの配置位置を決めることができるので、プレーヤにとって見やすい位置に配置されるオブジェクトの表示画像を提供することができる。なお、本実施形態では、リアルタイムにオブジェクトの配置位置を決めてもよい。
【０２３５】
（２）移動方向
本実施形態では、反射光画像に基づいて特定される物体と入力部６０との位置関係に基づいて、仮想空間におけるオブジェクト移動方向を制御するようにしてもよい。例えば、図２８の例では、反射像画像に基づき、プレーヤＰが入力部６０に対して左側に位置していると特定できる。したがって、本実施形態では、オブジェクトを、画面の中心より左側に移動させるようにしてもよい。
【０２３６】
また、図３０の例では、反射像画像に基づき、プレーヤＰが入力部６０に対して右側に位置していると特定できる。したがって、本実施形態では、オブジェクトを画面の中心より右側に移動させるようにしてもよい。
【０２３７】
このようにすれば、入力画像に基づいて特定される物体と入力部６０との位置関係に基づいて、仮想空間におけるオブジェクトの移動方向を決めることができるので、プレーヤにとって見やすい位置に配置されるオブジェクトの表示画像を提供することができる。なお、本実施形態では、リアルタイムにオブジェクトの配置位置を決めてもよい。
【０２３８】
（３）視線方向
本実施形態では、反射光画像に基づいて特定される物体と入力部６０との位置関係に基づいて、仮想空間における仮想カメラの視線方向を制御するようにしてもよい。
【０２３９】
例えば、図３１（Ａ）（Ｂ）に示すように、反射光画像やＲＧＢ画像に基づき特定されるプレーヤＰの位置Ｑから入力部６０の位置ＧＰに向かうベクトルＲＶを求め、ベクトルＲＶに基づいて、仮想カメラの視線方向ＣＶを制御するようにしてもよい。つまり、仮想カメラの視線方向ＣＶを、ベクトルＲＶの方向に追従させるようにする。このようにすれば、プレーヤ自身から入力部６０を結ぶ方向で、仮想３次元空間における仮想カメラの視線方向ＣＶを制御することができるので現実味を感じる表示画像を提供することができる。
【０２４０】
２−８−２．第２の応用例
本実施形態は、楽曲データの再生処理にあわせて、入力タイミング判定を行う音楽ゲームに応用してもよい。例えば、楽曲データの基準タイミングに合わせて、プレーヤが擬似的・仮想的に太鼓等の打楽器を叩く入力を行い、楽曲データのリズムに合わせた演奏を行うことが可能なゲームシステムに応用してもよい。
【０２４１】
図３２は、表示部１９０に表示される表示画像の一例を示す。具体的に、本実施形態では、楽曲データの再生処理に連動して、ゲーム空間において、基準タイミングそれぞれに対応する指示マークＯＢ５、ＯＢ６を移動経路上において移動させる処理を行う。つまり、指示マークＯＢ５、ＯＢ６が基準タイミングにおいて固定的な所定位置Ｏに位置するように移動させる処理を行う。そして、基準タイミングと、プレーヤの入力タイミングとを比較して、プレーヤの入力判定処理を行う。
【０２４２】
本実施形態では、判定基準オブジェクトＯＢ４、指示マークＯＢ５、ＯＢ６を含む領域Ｉの大きさを、入力画像に基づき特定される物体と入力部６０との距離Ｌに基づいて制御してもよい。例えば、距離Ｌが長くなるほど、領域Ｉをスケーリングする倍率を増加させ、距離Ｌが短くなるほど、領域Ｉをスケーリングする倍率を減少させる。
【０２４３】
また、本実施形態では、指示マークＯＢ５、ＯＢ６の移動速度ｖを、入力画像に基づき特定される物体と入力部６０との距離Ｌに基づいて制御してもよい。
【０２４４】
例えば、図２２に示すように、入力部６０の位置ＧＰから物体までの距離がＬ１（Ｌ１≦ＬＤ）である場合は、指示マークＯＢ５、ＯＢ６の移動速度をｖ１（０＜ｖ１）に設定する。一方、図２４に示すように、入力部６０の位置ＧＰから物体までの距離がＬ２（Ｌ１≦ＬＤ＜Ｌ２）である場合は、指示マークＯＢ５、ＯＢ６の移動速度をｖ２（０＜ｖ２＜ｖ１）とする。つまり、プレーヤが入力部６０から離れるほど指示マークＯＢ５、ＯＢ６の移動速度を遅くする。このようにすれば、プレーヤが入力部６０から離れて位置している場合にも、基準タイミングの到来を認識することができる。
【０２４５】
また、本実施形態では、本実施形態では、反射光画像に基づいて特定される物体と入力部６０との位置関係に基づいて、指示マークの移動方向を制御するようにしてもよい。
【０２４６】
例えば、図２８の例では、反射像画像に基づき、プレーヤＰが入力部６０に対して左側に位置していると特定できる。したがって、図３２に示すように、指示マークＯＢ５、ＯＢ６の移動方向を左方向にして移動させる。
【０２４７】
また、図３０の例では、反射像画像に基づき、プレーヤＰが入力部６０に対して右側に位置していると特定できる。したがって、本実施形態では、図３３に示すように、指示マークＯＢ５、ＯＢ６の移動方向を右方向にして移動させる。
【０２４８】
このようにすれば、入力画像に基づいて特定される物体と入力部６０との位置関係に基づいて、仮想空間におけるオブジェクトの移動方向を決めることができるので、プレーヤにとって見やすい位置に配置される指示マークＯＢ５、ＯＢ６を含む表示画像を生成することができる。
【０２４９】
２−９．第２のゲームシステムの詳細説明
本実施形態の第２のゲームシステムのプレーヤのモーション（動き）について詳細に説明する。例えば、図３４（Ａ）に示すように、深度カメラ６２０によって、発光部から照射された物体の反射光を受光した反射光画像（赤外線の反射結果）を取得する。
【０２５０】
そして、図３４（Ｂ）に示すように、反射光画像から、人物のシルエット（形状）を切り出す処理を行う。そして、図３４（Ｃ）に示すように、予め記憶部６６０等で記憶されている複数のボーン（スケルトン、骨格）と、シルエットとを照合し、最もシルエットに合致するボーンを設定する。図３４（Ｄ）の例では、シルエットが、ボーンＢＯ１、ＢＯ２、ＢＯ３のうち、ボーンＢＯ１と最も合致すると判断され、ボーンＢＯ１の動きを演算する処理を行う。つまり、ボーンＢＯ１の動きを、プレーヤＰの動作とする処理を行なう。本実施形態では、各フレーム毎に、ボーンを特定しプレーヤＰの動作を取得する処理を行っている。
【０２５１】
なお、本実施形態では、腕のボーン、足のボーンのように、人物を構成する部位単位で処理を行ってもよい。かかる場合は、部位単位で予め複数のボーンを定義し、部位単位で、抽出されたシルエットが複数のボーンのうちいずれと合致するかを判定してもよい。
【符号の説明】
【０２５２】
１０  ゲーム機、
２０、２０Ａ、２０Ｂ  コントローラ、
３０Ｌ、３０Ｒ  光源、
９０  表示部、９１  表示画面、９２  スピーカー、
１００  処理部、１１０  取得部、１１１  配置部、１１２  移動・動作処理部、
１１３  オブジェクト制御部、１１４  判定部、１１４Ａ  タイミング判定部、
１１４Ｂ  入力情報判定部、１２０  画像生成部、１３０  音制御部、
１７０  記憶部、１７１  主記憶部、１７２  描画バッファ、１７３  判定情報記憶部、
１７４  音データ記憶部、１８０  情報記憶媒体、１９６  通信部、
２１０  加速度センサ、２２０  撮像部、２２２  赤外線フィルタ、２２４  レンズ、
２２６  撮像素子、２２８  画像処理部、２３０  スピーカー、２４０  振動部、
２５０  マイコン、２６０  通信部、
５０  ゲーム機、６０  入力部、５００  処理部、
５１０  取得部、５１１  配置部、５１２  移動・動作処理部、
５１３  オブジェクト制御部、５１４  判定部、５１４Ａ  タイミング判定部、
５１４Ｂ  入力情報判定部、５１５  仮想カメラ制御部、
５２０  画像生成部、５３０  音制御部、
５７０  記憶部、５７１  主記憶部、５７２  描画バッファ、５７３  判定情報記憶部、
５７４  音データ記憶部、５８０  情報記憶媒体、５９６  通信部、
６１０  発光部、６１１  光源、６２０  深度センサ、６３０  ＲＧＢカメラ、
６５０  処理部、６６０  記憶部、
Ｐ  物体（プレーヤ）、
Ｃ  キャラクタ、
ＯＢ１  指示オブジェクト、
ＯＢ２  予告指示オブジェクト、
Ａ１、Ａ２  移動タイミングマーク、
Ｓ１、Ｓ２  スコア、
ＢＰ、ＢＰａ、ＢＰｂ  基準判定期間、
ＢＳ  基準開始タイミング、予告期間の終了タイミング
ＢＥ  基準終了タイミング、
ＩＰ  入力期間、ＩＳ  入力開始タイミング、ＩＥ  入力終了タイミング、
ＺＰ  ズレ期間（期間）
ＰＰ、ＰＰ１、ＰＰ２、ＰＰ３  予備判定期間、
ＰＰ１ａ、ＰＰ２ａ、ＰＰ３ａ  予備判定期間、
ＰＰ１ｂ、ＰＰ２ｂ、ＰＰ３ｂ  予備判定期間、
ＰＳ、ＰＳ１、ＰＳ２、ＰＳ３  予備開始タイミング、
ＰＳ１ａ、ＰＳ２ａ、ＰＳ３ａ  予備開始タイミング、
ＰＳ１ｂ、ＰＳ２ｂ、ＰＳ３ｂ  予備開始タイミング、
ＰＥ、ＰＥ１、ＰＥ２、ＰＥ３  予備終了タイミング、
ＰＥ１ａ、ＰＥ２ａ、ＰＥ３ａ  予備終了タイミング、
ＰＥ１ｂ、ＰＥ２ｂ、ＰＥ３ｂ  予備終了タイミング、
ＭＤ、ＭＤ１、ＭＤ２、ＭＤ３  入力定義情報、
ＤＴ  予告期間の開始タイミング、
ＧＰ  入力部の位置、
Ｑ、Ｑ１、Ｑ２、Ｑ３、Ｑ４  物体（プレーヤ）の位置、
Ｌ、Ｌ１、Ｌ２  入力部の位置から物体までの距離、
Ｖ１、Ｖ２  入力部から物体へ向く方向、
ＢＶ  入射方向（照射方向）、
ＶＣ  仮想カメラ、
ＤＰ、ＤＰ１、ＤＰ２  仮想カメラの位置（視点）、ＣＶ  視線方向、
ＯＰ  オブジェクトの位置、
ＲＶ  物体から入力部へ向く方向、
θ１、θ２  画角、ＯＢ４  判定基準オブジェクト、ＯＢ５、ＯＢ６  指示マーク、
ＢＯ１、ＢＯ２、ＢＯ３  ボーン
【図１】
0005491217.tif 000002
【図３】
0005491217.tif 000003
【図４】
0005491217.tif 000004
【図５】
0005491217.tif 000005
【図６】
0005491217.tif 000006
【図７】
0005491217.tif 000007
【図８】
0005491217.tif 000008
【図９】
0005491217.tif 000009
【図１０】
0005491217.tif 000010
【図１１】
0005491217.tif 000011
【図１２】
0005491217.tif 000012
【図１３】
0005491217.tif 000013
【図１４】
0005491217.tif 000014
【図１５】
0005491217.tif 000015
【図１６】
0005491217.tif 000016
【図１８】
0005491217.tif 000017
【図２０】
0005491217.tif 000018
【図２１】
0005491217.tif 000019
【図２３】
0005491217.tif 000020
【図２５】
0005491217.tif 000021
【図２６】
0005491217.tif 000022
【図２７】
0005491217.tif 000023
【図２９】
0005491217.tif 000024
【図３１】
0005491217.tif 000025
【図３２】
0005491217.tif 000026
【図３３】
0005491217.tif 000027
【図２】
0005491217.tif 000028
【図１７】
0005491217.tif 000029
【図１９】
0005491217.tif 000030
【図２２】
0005491217.tif 000031
【図２４】
0005491217.tif 000032
【図２８】
0005491217.tif 000033
【図３０】
0005491217.tif 000034
【図３４】
0005491217.tif 000035