(57)【特許請求の範囲】
【請求項１】
楽曲を自動演奏する音楽ゲーム装置であって、
プレイヤによって動かされる被写体を撮像する撮像手段と、
前記撮像手段による撮像画像に基づいて、前記被写体の状態情報を算出する状態情報算出手段と、
画面上の予め定められた複数の位置の各々に表示された位置ガイドの形態を、前記楽曲に基づくタイミングで変化させることによって、前記被写体に連動するカーソルの移動位置を案内するガイド制御手段と、
前記カーソルの表示を、前記被写体の前記状態情報に基づいて制御するカーソル制御手段と、
前記被写体の前記状態情報及び前記位置ガイドに関する情報に基づいて、前記被写体による前記カーソルの操作が、前記位置ガイドに適合しているか否かを判断し、前記被写体による前記カーソルの操作が、前記位置ガイドに適合したときに、前記位置ガイドが案内する前記移動位置の方向に対応して、追従画像の表示を制御する追従画像制御手段と、を備える音楽ゲーム装置。
【請求項２】
複数の前記位置ガイドは、第１のガイド及び第２のガイドを含み、
前記ガイド制御手段は、前記第２のガイドにより、前記第１のガイドの位置から前記第２のガイドの位置へ前記カーソルを案内し、
前記第１のガイドは、前記第２のガイドによる前記案内の直前に、前記カーソルを案内したガイドである、請求項１記載の音楽ゲーム装置。
【請求項３】
前記追従画像制御手段は、前記被写体による前記カーソルの操作が、前記位置ガイドに適合したときに、前記位置ガイドが案内する前記移動位置の方向に対応した方向に動作するように、前記追従画像の表示を制御する、請求項１又は２記載の音楽ゲーム装置。
【請求項４】
前記状態情報算出手段は、前記撮像画像に基づいて、前記被写体の前記状態情報としての位置を算出し、
前記追従画像制御手段は、前記状態情報算出手段が算出した前記被写体の前記位置が、前記位置ガイドが案内する期間内に、前記位置ガイドが案内する領域内に存在する場合に、前記被写体に連動するカーソルの操作が、前記位置ガイドに適合していると判断する、請求項１から３のいずれかに記載の音楽ゲーム装置。
【請求項５】
前記ガイド制御手段は、前記カーソルの移動経路を案内する経路ガイドを、前記楽曲に基づくタイミングで制御し、
前記追従画像制御手段は、前記被写体による前記カーソルの操作が、前記経路ガイドに適合したときに、前記経路ガイドが案内する経路に対応して、前記追従画像の表示を制御する、請求項１から４のいずれかに記載の音楽ゲーム装置。
【請求項６】
前記状態情報算出手段は、前記撮像画像に基づいて、前記被写体の前記状態情報としての位置を算出し、
前記追従画像制御手段は、前記状態情報算出手段が算出した前記被写体の前記位置が、前記経路ガイドが案内する期間内に、前記経路ガイドが案内する複数の所定領域を、前記経路ガイドが案内する所定の順序で移動した場合に、前記被写体に連動するカーソルの操作が、前記経路ガイドに適合していると判断する、請求項５記載の音楽ゲーム装置。
【請求項７】
複数の前記位置ガイドは、第４のガイド及び第５のガイドを含み、
前記ガイド制御手段は、前記第４のガイドの位置から前記第５のガイドの位置への移動が視覚的に認識できるように表現される方向ガイドの表示を、前記楽曲にもとづくタイミングで制御する、請求項１から６のいずれかに記載の音楽ゲーム装置。
【請求項８】
前記方向ガイドは、画面上の第１の予め定められた位置を始点とし、第２の予め定められた位置を終点とする経路上に配置される複数のオブジェクトの形態の変化により表現される、請求項７記載の音楽ゲーム装置。
【請求項９】
前記方向ガイドは、画面上の第１の予め定められた位置から第２の予め定められた位置へのオブジェクトの移動により表現される、請求項７記載の音楽ゲーム装置。
【請求項１０】
前記方向ガイドは、画面上の第１の予め定められた位置を始点とし、第２の予め定められた位置を終点とする経路の形態の変化により表現される、請求項７記載の音楽ゲーム装置。
【請求項１１】
前記状態情報算出手段が算出する前記被写体の前記状態情報は、速さ情報、移動方向情報、移動距離情報、速度ベクトル情報、加速度情報、移動軌跡情報、面積情報、若しくは、位置情報、のいずれか、又は、それらの２以上の組み合わせである、請求項１から１０のいずれかに記載の音楽ゲーム装置。
【請求項１２】
前記追従画像は、ダンスのアニメーションを行なう画像である、請求項１から１１のいずれかに記載の音楽ゲーム装置。
【請求項１３】
楽曲を自動演奏する音楽ゲームシステムであって、
プレイヤによって動かされる被写体を撮像する撮像手段と、
前記撮像手段による撮像画像に基づいて、前記被写体の状態情報を算出する状態情報算出手段と、
画面上の予め定められた複数の位置の各々に表示された位置ガイドの形態を、前記楽曲に基づくタイミングで変化させることによって、前記被写体に連動するカーソルの移動位置を案内するガイド制御手段と、
前記カーソルの表示を、前記被写体の前記状態情報に基づいて制御するカーソル制御手段と、
前記被写体の前記状態情報及び前記位置ガイドに関する情報に基づいて、前記被写体によるカーソルの操作が、前記位置ガイドに適合しているか否かを判断し、前記被写体による前記カーソルの操作が、前記位置ガイドに適合したときに、前記位置ガイドが案内する前記移動位置の方向に対応して、追従画像の表示を制御する追従画像制御手段と、を備える音楽ゲームシステム。
【請求項１４】
請求項１から１２のいずれか一に記載の音楽ゲーム装置の被写体としての、プレイヤが操作する操作物であって、
前記プレイヤによって把持される棒状の把持部と、
前記把持部の一方端に設けられ、受けた光を再帰反射する反射部と、を備え、
前記反射部は、透明色の外殻の内部に固定される、操作物。
【請求項１５】
撮像装置が撮像した、プレイヤによって動かされる被写体の撮像画像を解析して、解析結果をゲーム処理に反映し、表示装置に表示された映像を制御する音楽ゲーム装置のコンピュータに、
楽曲を自動演奏するステップと、
前記撮像装置から前記撮像画像を取得して、その撮像画像に基づいて、前記被写体の状態情報を算出するステップと、
前記表示装置の画面上の予め定められた複数の位置の各々に表示された位置ガイドの形態を、前記楽曲に基づくタイミングで変化させることによって、前記被写体に連動するカーソルの移動位置を案内するステップと、
前記表示装置の画面上の前記カーソルの表示を、前記被写体の前記状態情報に基づいて制御するステップと、
前記被写体の前記状態情報及び前記位置ガイドに関する情報に基づいて、前記被写体による前記カーソルの操作が、前記位置ガイドに適合しているか否かを判断するステップと、
前記被写体による前記カーソルの操作が、前記位置ガイドに適合したときに、前記位置ガイドが案内する前記移動位置の方向に対応して、前記表示装置の画面上の追従画像の表示を制御するステップと、を実行させる音楽ゲームプログラム。
【請求項１６】
撮像装置が撮像した、プレイヤによって動かされる被写体の撮像画像を解析して、解析結果をゲーム処理に反映し、表示装置に表示された映像を制御する音楽ゲーム装置のコンピュータが実行する音楽ゲーム方法であって、
楽曲を自動演奏するステップと、
前記撮像装置から前記撮像画像を取得して、その撮像画像に基づいて、前記被写体の状態情報を算出するステップと、
前記表示装置の画面上の予め定められた複数の位置の各々に表示された位置ガイドの形態を、前記楽曲に基づくタイミングで変化させることによって、前記被写体に連動するカーソルの移動位置を案内するステップと、
前記表示装置の画面上の前記カーソルの表示を、前記被写体の前記状態情報に基づいて制御するステップと、
前記被写体の前記状態情報及び前記位置ガイドに関する情報に基づいて、前記被写体による前記カーソルの操作が、前記位置ガイドに適合しているか否かを判断するステップと、
前記被写体による前記カーソルの操作が、前記位置ガイドに適合したときに、前記位置ガイドが案内する前記移動位置の方向に対応して、前記表示装置の画面上の追従画像の表示を制御するステップと、を含む音楽ゲーム方法。
【発明の詳細な説明】
【技術分野】  本発明は、操作物の動きに追従した画像を表示する音楽ゲーム装置及びその関連技術に関する。
【背景技術】  特許文献１（特開２００２−２６３３６０号公報）には、演奏指揮ゲーム装置が開示されている。この演奏指揮ゲーム装置では、指揮棒コントローラの先端に投光ユニットが設けられるとともに、モニタの下部に受光ユニットが設けられる。このような構成により、指揮棒コントローラの動きを検出する。
ゲームが開始されると、指揮棒コントローラを振る方向及びタイミングを指示する操作案内画像が、モニタに表示されるとともに、演奏音が出力される。この演奏音は、指揮棒コントローラの操作に関係なく出力される。そして、プレイヤが、指示された方向及びタイミングで、指揮棒コントローラを操作したときにのみ、指揮棒反応音が出力される。この指揮棒反応音は、ある演奏パートを所定の長さで分断したものである。従って、プレイヤが、指示された方向及びタイミングで、指揮棒コントローラを操作するたびに、対応する指揮棒反応音が出力される。
特許文献２（特開平１０−１４３１５１号公報）には、指揮装置が開示されている。この指揮装置では、マウスを指揮棒のように操作することで、マウスが描く軌跡からテンポ、アクセント及び強弱などの音楽パラメータを算出する。そして、算出したこれらの音楽パラメータを、出力する音楽や画像に反映させる。例えば、汽車の動画像を表示する際に、汽車のスピードを、算出したテンポに追従させ、スピードの変化を、アクセントに追従させ、汽車の煙の量を、強弱に追従させる。
上述のように、特許文献１の演奏指揮ゲーム装置は、プレイヤが演奏を行うことを主目的とした装置であることは明らかである。また、特許文献２の指揮装置では、プレイヤが演奏を行うことを主目的とするため、マウスの移動情報を音楽パラメータに変換して、この音楽パラメータを音楽及び画像に反映させている。
このように、プレイヤが演奏を行うことを主目的とする従来の装置では、表示される画像（上記の例では、汽車）に面白味がなく、プレイヤが画像を楽しむ、ということが重視されていない。
さらに、プレイヤによる操作物である指揮棒コントローラやマウスについては、次のことが言える。特許文献１の指揮棒コントローラは、投光ユニットを備えているため、電子回路を備えることが必要となる。従って、指揮棒コントローラのコストが高くなるし、また、故障の原因となる。さらに、操作性が低くなる。特に、指揮棒コントローラは、動かされるものであるため、電子回路を備えることなく、簡易な構成とすることが好ましい。また、特許文献２のマウスでは、平面上での操作のみが可能であり、操作の制約が大きいし、また、特許文献１の指揮棒コントローラと同様の問題もある。
【発明の開示】
そこで、本発明は、プレイヤが関与することなく楽曲を自動演奏しながらも、簡易な構成の操作物をプレイヤが操作することにより、楽曲とともに、操作に追従した画像を楽しむことができる音楽ゲーム装置及びその関連技術を提供することを目的とする。
本発明の観点によると、音楽ゲーム装置は、楽曲を自動演奏する音楽ゲーム装置であって、プレイヤによって操作される操作物に、予め定められた周期で、光を照射するストロボスコープと、前記ストロボスコープの発光時及び消灯時のそれぞれにおいて、前記操作物を撮影して、発光時画像信号及び消灯時画像信号を生成する撮像ユニットと、前記発光時画像信号と前記消灯時画像信号との差分信号を生成する差分信号生成ユニットと、前記差分信号に基づいて、前記操作物の状態情報を算出する状態情報算出ユニットと、前記操作物に連動するカーソルの操作のためのガイドの表示を、前記楽曲に基づくタイミングで制御するガイド制御ユニットと、前記カーソルの表示を、前記操作物の前記状態情報に基づいて制御するカーソル制御ユニットと、前記操作物による前記カーソルの操作が、前記ガイドに適合したときに、前記ガイドによる案内に応じて、画像の表示を制御する追従画像制御ユニットと、を備え、前記追従画像制御ユニットは、前記操作物の前記状態情報及び前記ガイドに関する情報に基づいて、前記操作物による前記カーソルの操作が、前記ガイドに適合しているか否かを判断する。
この構成によれば、カーソルの操作がガイドに適合している場合に、ガイドによる案内に応じて画像の表示が制御される。この場合、ガイドによる案内に適合してカーソルの操作が行われているため、カーソルの操作に応じて画像の表示が制御されることになる。つまり、カーソルは操作物と連動しているため、操作物の操作に応じて画像の表示が制御される。また、ストロボスコープにより間欠的に光が照射される操作物を撮像ユニットにより撮影して、操作物の状態情報を求めている。このため、操作物の状態情報を求めるために、操作物に電源により駆動する回路を内蔵する必要がない。さらに、この音楽ゲーム装置は、楽曲を自動演奏する。
以上の結果、プレイヤが関与することなく楽曲を自動演奏しながらも、簡易な構成の操作物をプレイヤが操作することにより、楽曲とともに、操作物の操作に追従した画像を楽しむことができる。
また、楽曲に基づくタイミングでガイドが制御されるため、プレイヤが、ガイドに従ってカーソルを操作すれば、操作物の操作も楽曲に合ったものとなる。従って、プレイヤは、楽曲に合った操作物の操作を楽しむことができる。
ここで、操作物の操作とは、操作物自体を動かすこと（例えば、移動させること）を意味し、スイッチを押下したり、アナログスティックを動かしたり、等は含まない。
上記音楽ゲーム装置において、前記ガイドは、前記カーソルの移動位置及び操作タイミングを案内し、前記追従画像制御ユニットは、前記操作物による前記カーソルの操作が、前記ガイドに適合したときに、前記ガイドが案内する前記移動位置の方向に対応して、前記画像の表示を制御する。
この構成によれば、プレイヤが、操作物を操作して、カーソルを、ガイドが案内する操作タイミングで、ガイドが案内する移動位置に移動させた場合に、ガイドが案内するカーソルの移動位置の方向に対応して、画像の表示が制御される。その結果、楽曲とともに、操作物の操作に連動するカーソルの移動に追従した画像を楽しむことができる。
上記音楽ゲーム装置において、前記状態情報算出ユニットは、前記差分信号に基づいて、前記操作物の前記状態情報としての位置を算出し、前記追従画像制御ユニットは、前記状態情報算出ユニットが算出した前記操作物の前記位置が、前記ガイドが案内する期間内に、前記ガイドが案内する領域内に存在する場合に、前記操作物に連動するカーソルの操作が、前記ガイドに適合していると判断する。
この構成によれば、簡易な処理で算出できる操作物の位置により、カーソルの操作の的確性を判断できる。
上記音楽ゲーム装置において、前記ガイドは、前記カーソルの移動経路、移動方向、及び、操作タイミングを案内する。
この構成によれば、プレイヤが、操作物を操作して、カーソルを、ガイドが案内する操作タイミングで、ガイドが案内する移動方向に、ガイドが案内する移動経路に沿って移動させた場合に、ガイドに応じて、画像の表示が制御される。その結果、楽曲とともに、操作物の操作に連動するカーソルの移動に応じた画像を楽しむことができる。
上記音楽ゲーム装置において、前記状態情報算出ユニットは、前記差分信号に基づいて、前記操作物の前記状態情報としての位置を算出し、前記追従画像制御ユニットは、前記状態情報算出ユニットが算出した前記操作物の前記位置が、前記ガイドが案内する期間内に、前記ガイドが案内する複数の所定領域を、前記ガイドが案内する所定の順序で移動した場合に、前記操作物に連動するカーソルの操作が、前記ガイドに適合していると判断する。
この構成によれば、簡易な処理で算出できる操作物の位置により、カーソルの操作の的確性を判断できる。
上記音楽ゲーム装置において、前記ガイドは、画面上の予め定められた複数の位置の各々に表示され、前記ガイド制御ユニットは、前記ガイドの形態を、前記楽曲にもとづくタイミングで変化させる。
この構成によれば、プレイヤは、ガイドの形態の変化により、カーソルを移動すべき位置及び方向を容易に認識できる。
ここで、本明細書において、ガイドの形態には、ガイドの形状及び色のいずれか、あるいは、その双方が含まれる。
上記音楽ゲーム装置において、前記ガイドは、画面上の第１の予め定められた位置から第２の予め定められた位置への移動が視覚的に認識できる表示により表現され、前記ガイド制御ユニットは、前記ガイドの表示を、前記楽曲にもとづくタイミングで制御する。
この構成によれば、プレイヤは、カーソルを移動すべき方向及び経路をより明確に認識できる。
例えば、前記ガイドは、画面上の前記第１の予め定められた位置を始点とし、前記第２の予め定められた位置を終点とする経路上に配置される複数のオブジェクトの形態の変化により表現することができる。
この構成によれば、プレイヤは、複数のオブジェクトの形態の変化により、カーソルを移動すべき方向及び経路を容易に認識できる。
例えば、前記ガイドは、画面上の前記第１の予め定められた位置から前記第２の予め定められた位置へのオブジェクトの移動により表現できる。
この構成によれば、プレイヤは、オブジェクトの移動により、カーソルを移動すべき方向及び経路を容易に認識できる。
例えば、前記ガイドは、画面上の前記第１の予め定められた位置を始点とし、前記第２の予め定められた位置を終点とする経路の形態の変化により表現できる。
この構成によれば、プレイヤは、経路の形態の変化により、カーソルを移動すべき方向及び経路を容易に認識できる。
上記音楽ゲーム装置において、前記状態情報算出ユニットが算出する前記操作物の前記状態情報は、速さ情報、移動方向情報、移動距離情報、速度ベクトル情報、加速度情報、移動軌跡情報、面積情報、若しくは、位置情報、のいずれか、又は、それらの２以上の組み合わせ、である。
この構成によれば、操作物によるカーソルの操作が、ガイドに適合しているか否かを判断する際の操作物の状態情報として、様々な情報を利用できるため、ガイドの表現の自由度が大きくなり、ひいては、ゲーム内容の設計の自由度も大きくなる。
本発明の新規な特徴は、特許請求の範囲に記載されている。しかしながら、発明そのもの及びその他の特徴と効果は、添付図面を参照して具体的な実施例の詳細な説明を読むことにより容易に理解される。
【図面の簡単な説明】  図１は、本発明の実施の形態における音楽ゲームシステムの全体構成を示す図である。
図２は、図１の操作物の斜視図である。
図３（ａ）は、図２の反射ボールの上面図である。図３（ｂ）は、図３（ａ）の矢印Ａ方向からの反射ボールの側面図である。図３（ｃ）は、図３（ａ）の矢印Ｂ方向からの反射ボールの側面図である。
図４は、図２の反射ボールの縦断面図である。
図５は、図１の撮像ユニットの一例を示す図解図である。
図６は、図１の音楽ゲーム装置の電気的な構成を示す図である。
図７は、図６の高速プロセッサのブロック図である。
図８は、図６のイメージセンサから高速プロセッサへピクセルデータを取り込む構成及びＬＥＤ駆動回路を示す回路図である。
図９（ａ）は、図８のイメージセンサが出力するフレームステータスフラグ信号ＦＳＦのタイミング図である。図９（ｂ）は、図８のイメージセンサが出力するピクセルデータストローブ信号ＰＤＳのタイミング図である。図９（ｃ）は、図８のイメージセンサが出力するピクセルデータＤ（Ｘ，Ｙ）のタイミング図である。図９（ｄ）は、図８の高速プロセッサが出力するＬＥＤコントロール信号ＬＥＤＣのタイミング図である。図９（ｅ）は、図８の赤外発光ダイオードの点灯状態を示すタイミング図である。図９（ｆ）は、図８のイメージセンサの露光期間を示すタイミング図である。
図１０（ａ）は、図９のフレームステータスフラグ信号ＦＳＦの拡大図である。図１０（ｂ）は、図９のピクセルデータストローブ信号ＰＤＳの拡大図である。図１０（ｃ）は、図９のピクセルデータＤ（Ｘ，Ｙ）の拡大図である。
図１１は、図１のテレビジョンモニタのスクリーンに表示されるゲーム画面の例示図である。
図１２は、図１のテレビジョンモニタのスクリーンに表示されるゲーム画面の他の例示図である。
図１３は、図１のテレビジョンモニタのスクリーンに表示されるゲーム画面のさらに他の例示図である。
図１４は、図１のテレビジョンモニタのスクリーンに表示されるオブジェクトを構成するスプライトの説明図である。
図１５は、図１のテレビジョンモニタのスクリーンに表示される全景スクリーンの説明図である。
図１６（ａ）は、図１５の全景スクリーンをスクロールする前の説明図である。図１６（ｂ）は、図１５の全景スクリーンをスクロールした後の説明図である。
図１７は、図６のＲＯＭに格納されたプログラム及びデータを示す概念図である。
図１８は、図１７の第１の楽譜データの一例を示す概念図である。
図１９は、図１７の第２の楽譜データの一例を示す概念図である。
図２０（ａ）は、カーソルを案内する方向とノートナンバとの関係図である。図２０（ｂ）は、カーソルを案内する方向とノートナンバとの他の関係図である。図２０（ｃ）は、カーソルを案内する方向とノートナンバとのさらに他の関係図である。
図２１（ａ）は、一般的なイメージセンサにより撮影された、特別な処理を施さない画像の例示図である。図２１（ｂ）は、図２１（ａ）の画像信号を或る閾値でレベル弁別したときの画像信号の例示図である。図２１（ｃ）は、赤外フィルタを介したイメージセンサの点灯時の画像信号を或る閾値でレベル弁別したときの画像信号の例示図である。図２１（ｄ）は、赤外フィルタを介したイメージセンサの消灯時の画像信号を或る閾値でレベル弁別したときの画像信号の例示図である。図２１（ｅ）は、点灯時の画像信号と消灯時の画像信号との差分信号の例示図である。
図２２は、図１の操作物の注目点の座標算出の説明図である。
図２３（ａ）は、最大輝度値を持つピクセルの座標を基に、図１の操作物の注目点座標を算出する際のＸ方向スキャンの説明図である。図２３（ｂ）は、最大輝度値を持つピクセルの座標を基に、図１の操作物の注目点座標を算出する際のＹ方向スキャンのスタート時の説明図である。図２３（ｃ）は、最大輝度値を持つピクセルの座標を基に、図１の操作物の注目点座標を算出する際のＹ方向スキャンの説明図である。図２３（ｄ）は、最大輝度値を持つピクセルの座標を基に、操作物の注目点座標を算出する際の結果の説明図である。
図２４は、ＣＰＵ２０１による注目点存在領域判定処理（１）の説明図である。
図２５は、ＣＰＵ２０１による注目点存在領域判定処理（２）の説明図である。
図２６は、本実施の形態による、方向ガイドＧ、位置ガイドｇ、及び、経路ガイドｒｇ、のアニメーションの登録の説明図である。
図２７は、図２６のアニメーションテーブル格納位置情報により指定されるアニメーションテーブルの例示図である。
図２８は、本実施の形態における、第１の楽譜データ、第２の楽譜データ、方向ガイドＧ、位置ガイドｇ、操作判定、及び、ダンスアニメーション、の関係を説明するためのタイミング図である。
図２９は、図１の音楽ゲーム装置の全体の処理の流れを示すフローチャートである。
図３０は、図２９のステップＳ１の初期設定処理の流れを示すフローチャートである。
図３１は、図３０のステップＳ１４のセンサ初期設定処理の流れを示すフローチャートである。
図３２は、図３１のステップＳ２１のコマンド送信処理の流れを示すフローチャートである。
図３３は、（ａ）図８のレジスタ設定クロックＣＬＫのタイミング図である。
（ｂ）図８のレジスタデータのタイミング図である。
図３４は、図３１のステップＳ２３のレジスタ設定処理の流れを示すフローチャートである。
図３５は、図２９のステップＳ２の状態情報算出処理の流れを示すフローチャートである。
図３６は、図３５のステップＳ５０のピクセルデータ群取得処理の流れを示すフローチャートである。
図３７は、図３６のステップＳ６１のピクセルデータ取得処理の流れを示すフローチャートである。
図３８は、図３５のステップＳ５１の注目点抽出処理の流れを示すフローチャートである。
図３９は、図３８のステップＳ８５の注目点座標算出処理の流れを示すフローチャートである。
図４０は、図２９のステップＳ３のゲーム処理の流れを示すフローチャートである。
図４１は、本実施の形態における割込み処理の流れを示すフローチャートである。
図４２は、図４１のステップＳ１５０の楽曲再生処理の流れを示すフローチャートである。
図４３は、図４１のステップＳ１５１のガイド登録処理の流れを示すフローチャートである。
図４４は、本実施の形態におけるガイドの他の例示図である。
図４５は、本実施の形態におけるガイドのさらに他の例示図である。
図４６は、本実施の形態におけるガイドのさらに他の例示図である。
【発明を実施するための最良の形態】  以下、本発明の実施の形態について、図面を参照しながら説明する。なお、図中、同一または相当部分については同一の参照符号を付してその説明を援用する。
図１は、本発明の実施の形態における音楽ゲームシステムの全体構成を示す図である。図１に示すように、この音楽ゲームシステムは、音楽ゲーム装置１、操作物１５０、及び、テレビジョンモニタ９０、を含む。
音楽ゲーム装置１のハウジング１９には、撮像ユニット１３が組み込まれる。撮像ユニット１３は、４つの赤外発光ダイオード１５及び赤外フィルタ１７を含む。赤外発光ダイオード１５の発光部は、赤外フィルタ１７から露出している。
音楽ゲーム装置１には、ＡＣアダプタ９２により、直流電源電圧が与えられる。ただし、ＡＣアダプタ９２に代えて、電池（図示せず）により、直流電源電圧を与えることもできる。
テレビジョンモニタ９０には、その前面にスクリーン９１が設けられる。テレビジョンモニタ９０と音楽ゲーム装置１とは、ＡＶケーブル９３により接続される。なお、音楽ゲーム装置１は、例えば、図１に示すように、テレビジョンモニタ９０の上面に載置される。
プレイヤ９４が、音楽ゲーム装置１の背面に設けられた電源スイッチ（図示せず）をオンにすると、スクリーン９１に、ゲーム画面が表示される。プレイヤ９４は、ゲーム画面のガイドに従って、操作物１５０を操作して、ゲームを実行する。ここで、操作物１５０の操作とは、操作物自体を動かすこと（例えば、移動させること）を意味し、スイッチを押下したり、アナログスティックを動かしたり、等は含まない。
撮像ユニット１３の赤外発光ダイオード１５は、間欠的に赤外光を発光する。赤外発光ダイオード１５からの赤外光は、この操作物１５０に取り付けられた反射シート（後述）により反射され、赤外フィルタ１７の内部に設けられた撮像素子（後述）に入力される。このようにして、操作物１５０が間欠的に撮影される。従って、音楽ゲーム装置１は、プレイヤ９４により動かされた操作物１５０の間欠的な映像信号を取得できる。音楽ゲーム装置１は、この映像信号を解析して、その解析結果をゲームに反映する。本実施の形態で使用する反射シートは、例えば、再帰反射シートである。
図２は、図１の操作物１５０の斜視図である。図２に示すように、操作物１５０は、スティック１５２の先端に反射ボール１５１を固定して構成される。この反射ボール１５１により、赤外発光ダイオード１５からの赤外光が反射される。反射ボール１５１の詳細を説明する。
図３（ａ）は、図２の反射ボール１５１の上面図、図３（ｂ）は、図３（ａ）の矢印Ａ方向からの反射ボール１５１の側面図、図３（ｃ）は、図３（ａ）の矢印Ｂ方向からの反射ボール１５１の側面図、である。
図３（ａ）〜図３（ｃ）に示すように、反射ボール１５１は、透明色（半透明、有色透明、及び、無色透明、を含む。）の球状外殻１５３の内部に球状内殻１５４を固定してなる。球状内殻１５４には、反射シート１５５が取り付けられる。この反射シート１５５が、赤外発光ダイオード１５からの赤外光を反射する。
図４は、図２の反射ボール１５１の縦断面図である。図４に示すように、球状外殻１５３は、２つの半球状外殻をボス１５６及びビス（図示せず）により固定してなる。球状内殻１５４は、球状外殻１５３の内部に、２つの半球状内殻をボス１５７により固定してなる。また、反射ボール１５１には、スティック１５２が、挿入して固定される。具体的には、球状外殻１５３を構成する２つの半球状外殻と、球状内殻１５４を構成する２つの半球状内殻と、によりスティック１５２を挟み、２つの半球状外殻をボス１５６及びビスで固定するとともに、２つの半球状内殻をボス１５７で固定することで、スティック１５２を反射ボール１５１に取り付ける。
図５は、図１の撮像ユニット１３の一例を示す図解図である。図５に示すように、この撮像ユニット１３は、たとえばプラスチック成型によって形成されるユニットベース３５を含み、このユニットベース３５内には支持筒３６が取り付けられる。支持筒３６の上面には内面が逆円錐形状であるラッパ状の開口４１が形成され、その開口４１の下方の筒状部内部には、いずれもがたとえば透明プラスチックの成型によって形成された凹レンズ３９および凸レンズ３７を含む光学系が設けられ、凸レンズ３７の下方において、撮像素子としてのイメージセンサ４３が固着される。したがって、イメージセンサ４３は、開口４１からレンズ３９および３７を通して入射する光に応じた画像を撮影することができる。
イメージセンサ４３は、低解像度のＣＭＯＳイメージセンサ（たとえば３２ピクセル×３２ピクセル：グレースケール）である。ただし、このイメージセンサ４３は、画素数のもっと多いものでもよいし、ＣＣＤ等の他の素子からなるものであってよい。以下では、イメージセンサ４３が、３２ピクセル×３２ピクセルからなるものとして説明を行う。
また、ユニットベース３５には、光出射方向がいずれも上方向とされた複数（実施の形態では４つ）の赤外発光ダイオード１５が取り付けられる。この赤外発光ダイオード１５によって、撮像ユニット１３の上方に赤外光が照射される。また、ユニットベース３５の上方には、赤外フィルタ（赤外光のみを透過するフィルタ）１７が上記開口４１を覆うように、取り付けられる。そして、赤外発光ダイオード１５は後述のように、点灯／消灯（非点灯）が連続的に繰り返されるので、ストロボスコープとして機能する。ただし、「ストロボスコープ」とは、運動体を間欠的に照らす装置の総称である。したがって、上記イメージセンサ４３は、その撮影範囲内で移動する物体、実施の形態では、操作物１５０を撮影することになる。なお、後述する図８に示すように、ストロボスコープは、主に、赤外発光ダイオード１５、ＬＥＤ駆動回路７５、及び、高速プロセッサ２００、により構成される。
ここで、撮像ユニット１３は、イメージセンサ４３の受光面が、水平面から所定角度（例えば、９０度）だけ傾くように、ハウジング１９に組み込まれる。また、凹レンズ３９および凸レンズ３７により、イメージセンサ４３の撮影範囲は、例えば、６０度の範囲である。
図６は、図１の音楽ゲーム装置１の電気的な構成を示す図である。図６に示すように、音楽ゲーム装置１は、イメージセンサ４３、赤外発光ダイオード１５、映像信号出力端子４７、音声信号出力端子４９、高速プロセッサ２００、ＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）５１、及び、バス５３、を含む。
高速プロセッサ２００には、バス５３が接続される。さらに、バス５３には、ＲＯＭ５１が接続される。従って、高速プロセッサ２００は、バス５３を介して、ＲＯＭ５１にアクセスすることができるので、ＲＯＭ５１に格納されたゲームプログラムをリードして実行でき、また、ＲＯＭ５１に格納された画像データ及び音楽データをリードして処理し、映像信号及び音声信号を生成して、映像信号出力端子４７及び音声信号出力端子４９に出力することができる。
操作物１５０は、赤外発光ダイオード１５が発光する赤外光に照射され、その赤外光を反射シート１５５で反射する。この反射シート１５５からの反射光がイメージセンサ４３によって検知され、したがって、イメージセンサ４３からは反射シート１５５の画像信号が出力される。イメージセンサ４３からのこのアナログ画像信号は高速プロセッサ２００に内蔵されたＡ／Ｄコンバータ（後述）によってデジタルデータに変換される。赤外光消灯時も同様の処理が行われる。高速プロセッサ２００は、このデジタルデータを解析して、その解析結果をゲーム処理に反映する。
図７は、図６の高速プロセッサ２００のブロック図である。図７に示すように、この高速プロセッサ２００は、中央演算処理装置（ＣＰＵ：ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）２０１、グラフィックプロセッサ２０２、サウンドプロセッサ２０３、ＤＭＡ（ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ）コントローラ２０４、第１バス調停回路２０５、第２バス調停回路２０６、内部メモリ２０７、Ａ／Ｄコンバータ（ＡＤＣ：ａｎａｌｏｇ  ｔｏ  ｄｉｇｉｔａｌ  ｃｏｎｖｅｒｔｅｒ）２０８、入出力制御回路２０９、タイマ回路２１０、ＤＲＡＭ（ｄｙｎａｍｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）リフレッシュ制御回路２１１、外部メモリインタフェース回路２１２、クロックドライバ２１３、ＰＬＬ（ｐｈａｓｅ−ｌｏｃｋｅｄ  ｌｏｏｐ）回路２１４、低電圧検出回路２１５、第１バス２１８、及び、第２バス２１９、を含む。
ＣＰＵ２０１は、メモリ（内部メモリ２０７、又は、ＲＯＭ５１）に格納されたプログラムに従い、各種演算やシステム全体の制御を行う。ＣＰＵ２０１は、第１バス２１８及び第２バス２１９のバスマスタであり、それぞれのバスに接続された資源にアクセスが可能である。
グラフィックプロセッサ２０２は、第１バス２１８及び第２バス２１９のバスマスタであり、内部メモリ２０７、又は、ＲＯＭ５１に格納されたデータを基に、映像信号を生成して、映像信号出力端子４７へ出力する。グラフィックプロセッサ２０２は、第１バス２１８を通じて、ＣＰＵ２０１により制御される。また、グラフィックプロセッサ２０２は、ＣＰＵ２０１に対して、割込み要求信号２２０を発生する機能を有する。
サウンドプロセッサ２０３は、第１バス２１８及び第２バス２１９のバスマスタであり、内部メモリ２０７、又は、ＲＯＭ５１に格納されたデータを基に、音声信号を生成して、音声信号出力端子４９へ出力する。サウンドプロセッサ２０３は、第１バス２１８を通じて、ＣＰＵ２０１により制御される。また、サウンドプロセッサ２０３は、ＣＰＵ２０１に対して、割込み要求信号２２０を発生する機能を有する。
ＤＭＡコントローラ２０４は、ＲＯＭ５１から、内部メモリ２０７へのデータ転送を司る。また、ＤＭＡコントローラ２０４は、データ転送の完了を通知するために、ＣＰＵ２０１に対する割込み要求信号２２０を発生する機能を有する。ＤＭＡコントローラ２０４は、第１バス２１８及び第２バス２１９のバスマスタである。ＤＭＡコントローラ２０４は、第１バス２１８を通じてＣＰＵ２０１により制御される。
内部メモリ２０７は、マスクＲＯＭ、ＳＲＡＭ（ｓｔａｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、及び、ＤＲＡＭのうち、必要なものを備える。バッテリによるＳＲＡＭのデータ保持が必要とされる場合、バッテリ２１７が必要となる。ＤＲＡＭが搭載される場合、定期的にリフレッシュと呼ばれる記憶内容保持のための動作が必要とされる。
第１バス調停回路２０５は、第１バス２１８の各バスマスタからの第１バス使用要求信号を受け付け、調停を行い、各バスマスタへの第１バス使用許可信号を発行する。各バスマスタは、第１バス使用許可信号を受領することによって第１バス２１８に対するアクセスが許可される。ここで、第１バス使用要求信号及び第１バス使用許可信号は、図７では、第１バス調停信号２２２として示されている。
第２バス調停回路２０６は、第２バス２１９の各バスマスタからの第２バス使用要求信号を受け付け、調停を行い、各バスマスタへの第２バス使用許可信号を発行する。各バスマスタは、第２バス使用許可信号を受領することによって第２バス２１９に対するアクセスが許可される。ここで、第２バス使用要求信号及び第２バス使用許可信号は、図７では、第２バス調停信号２２３として示されている。
入出力制御回路２０９は、外部入出力装置や外部の半導体素子との通信等を入出力信号を介して行う。入出力信号は、第１バス２１８を介して、ＣＰＵ２０１からリード／ライトされる。また、入出力制御回路２０９は、ＣＰＵ２０１に対して、割込み要求信号２２０を発生する機能を有する。
この入出力制御回路２０９から、赤外発光ダイオード１５を制御するＬＥＤコントロール信号ＬＥＤＣが出力される。
タイマ回路２１０は、設定された時間間隔に基づき、ＣＰＵ２０１に対する割込み要求信号２２０を発生する機能を有する。時間間隔等の設定は、第１バス２１８を介してＣＰＵ２０１によって行われる。
ＡＤＣ２０８は、アナログ入力信号をデジタル信号に変換する。このデジタル信号は、第１バス２１８を介してＣＰＵ２０１によってリードされる。また、ＡＤＣ２０８は、ＣＰＵ２０１に対して、割込み要求信号２２０を発生する機能を有する。
このＡＤＣ２０８が、イメージセンサ４３からのピクセルデータ（アナログ）を受けて、デジタルデータに変換する。
ＰＬＬ回路２１４は、水晶振動子２１６より得られる正弦波信号を逓倍した高周波クロック信号を生成する。
クロックドライバ２１３は、ＰＬＬ回路２１４より受け取った高周波クロック信号を、各ブロックへクロック信号２２５を供給するのに十分な信号強度へ増幅する。
低電圧検出回路２１５は、電源電圧Ｖｃｃを監視し、電源電圧Ｖｃｃが一定電圧以下のときに、ＰＬＬ回路２１４のリセット信号２２６、その他のシステム全体のリセット信号２２７を発行する。また、内部メモリ２０７がＳＲＡＭで構成されており、かつ、ＳＲＡＭのバッテリ２１７によるデータ保持が要求される場合、電源電圧Ｖｃｃが一定電圧以下のときに、バッテリバックアップ制御信号２２４を発行する機能を有する。
外部メモリインタフェース回路２１２は、第２バス２１９を外部バス５３に接続するための機能、及び、第２バス２１９のサイクル終了信号２２８を発行することにより、第２バスのバスサイクル長を制御する機能、を有する。
ＤＲＡＭリフレッシュ制御回路２１１は、一定期間毎に第１バス２１８の使用権を無条件に獲得し、ＤＲＡＭのリフレッシュ動作を行う。なお、ＤＲＡＭリフレッシュ制御回路２１１は、内部メモリ２０７がＤＲＡＭを含む場合に設けられる。
ここで、図８〜図１０を参照して、イメージセンサ４３から高速プロセッサ２００へピクセルデータを取り込むための構成を詳細に説明する。
図８は、図６のイメージセンサ４３から高速プロセッサ２００へピクセルデータを取り込む構成及びＬＥＤ駆動回路を示す回路図である。図９は、図６のイメージセンサ４３から高速プロセッサ２００へピクセルデータを取り込む際の動作を示すタイミング図である。図１０は、図９の一部を拡大して示すタイミング図である。
図８に示すように、イメージセンサ４３は、ピクセルデータＤ（Ｘ，Ｙ）をアナログ信号として出力するタイプのものであるため、このピクセルデータＤ（Ｘ，Ｙ）は高速プロセッサ２００のアナログ入力ポートに入力される。アナログ入力ポートは、この高速プロセッサ２００においてＡＤＣ２０８に接続され、したがって、高速プロセッサ２００は、ＡＤＣ２０８からデジタルデータに変換されたピクセルデータをその内部に取得する。
上述のアナログピクセルデータＤ（Ｘ，Ｙ）の中点は、イメージセンサ４３の基準電圧端子Ｖｒｅｆに与えられる基準電圧によって決定される。そのため、イメージセンサ４３に関連して例えば抵抗分圧回路からなる基準電圧発生回路５９が設けられ、この回路５９から基準電圧端子Ｖｒｅｆに常に一定の大きさの基準電圧が与えられる。
イメージセンサ４３を制御するための各デジタル信号は、高速プロセッサ２００のＩ／Ｏポートに与えられ、またはそこから出力される。このＩ／Ｏポートは各々入力／出力の制御が可能なデジタルポートであり、この高速プロセッサ２００で入出力制御回路２０９に接続されている。
詳しく言うと、高速プロセッサ２００の出力ポートからはイメージセンサ４３をリセットするためのリセット信号ｒｅｓｅｔが出力され、イメージセンサ４３に与えられる。また、イメージセンサ４３からは、ピクセルデータストローブ信号ＰＤＳおよびフレームステータスフラグ信号ＦＳＦが出力され、それらの信号が高速プロセッサ２００の入力ポートに与えられる。
ピクセルデータストローブ信号ＰＤＳは上述の各ピクセル信号Ｄ（Ｘ，Ｙ）を読み込むための図９（ｂ）に示すようなストローブ信号である。フレームステータスフラグ信号ＦＳＦはイメージセンサ４３の状態を示すフラグ信号で、図９（ａ）に示すように、このイメージセンサ４３の露光期間を規定する。つまり、フレームステータスフラグ信号ＦＳＦの図９（ａ）に示すローレベルが露光期間を示し、図９（ａ）に示すハイレベルが非露光期間を示す。
また、高速プロセッサ２００は、イメージセンサ４３の制御レジスタ（図示せず）に設定するコマンド（またはコマンド＋データ）をレジスタデータとしてＩ／Ｏポートから出力するとともに、たとえばハイレベルおよびローレベルを繰り返すレジスタ設定クロックＣＬＫを出力し、それらをイメージセンサ４３に与える。
なお、赤外発光ダイオード１５として、図８に示すように互いに並列接続された４つの赤外発光ダイオード１５ａ，１５ｂ，１５ｃおよび１５ｄを用いる。この４つの赤外発光ダイオード１５ａ〜１５ｄは、上で説明したように、操作物１５０を照らすように、イメージセンサ４３の視点方向と同一方向に赤外光を照射するようにかつイメージセンサ４３を囲むように配置される。ただし、これら個別の赤外発光ダイオード１５ａ〜１５ｄは、特に区別する必要がある場合を除いて、単に赤外発光ダイオード１５と呼ばれる。
この赤外発光ダイオード１５はＬＥＤ駆動回路７５によって、点灯されまたは消灯（非点灯）される。ＬＥＤ駆動回路７５は、イメージセンサ４３から上述のフレームステータスフラグ信号ＦＳＦを受け、このフラグ信号ＦＳＦは、抵抗６９およびコンデンサ７１からなる微分回路６７を通してＰＮＰトランジスタ７７のベースに与えられる。このＰＮＰトランジスタ７７にはさらにプルアップ抵抗７９が接続されていて、このＰＮＰトランジスタ７７のベースは、通常は、ハイレベルにプルアップされている。そして、フレームステータス信号ＦＳＦがローレベルになると、そのローレベルが微分回路６７を経てベースに入力されるため、ＰＮＰトランジスタ７７は、フラグ信号ＦＳＦがローレベル期間にのみオンする。
ＰＮＰトランジスタ７７のエミッタは抵抗７３および６５を介して接地される。そして、エミッタ抵抗７３および６５の接続点がＮＰＮトランジスタ８１のベースに接続される。このＮＰＮトランジスタ８１のコレクタが各赤外発光ダイオード１５ａ〜１５ｄのアノードに共通に接続される。ＮＰＮトランジスタ８１のエミッタが別のＮＰＮトランジスタ６１のベースに直接接続される。ＮＰＮトランジスタ６１のコレクタが各赤外発光ダイオード１５ａ〜１５ｄのカソードに共通接続され、エミッタが接地される。
このＬＥＤ駆動回路７５では、高速プロセッサ２００のＩ／Ｏポートから出力されるＬＥＤコントロール信号ＬＥＤＣがアクティブ（ハイレベル）でありかつイメージセンサ４３からのフレームステータスフラグ信号ＦＳＦがローレベルである期間にのみ赤外発光ダイオード１５が点灯される。
図９（ａ）に示すようにフレームステータスフラグ信号ＦＳＦがローレベルになると、そのローレベル期間中（実際には微分回路６７の時定数での遅れがあるが）、ＰＮＰトランジスタ７７がオンする。したがって、図９（ｄ）に示すＬＥＤコントロール信号ＬＥＤＣが高速プロセッサ２００からハイレベルで出力されると、ＮＰＮトランジスタ８１のベースがハイベルとなり、このトランジスタ８１がオンとなる。トランジスタ８１がオンするとトランジスタ６１はオンとなる。したがって、電源（図８では小さい白丸で示す）から各赤外発光ダイオード１５ａ〜１５ｄおよびトランジスタ６１を経て電流が流れ、応じて図９（ｅ）に示すように各赤外発光ダイオード１５ａ〜１５ｄが点灯される。
ＬＥＤ駆動回路７５では、このように、図９（ｄ）のＬＥＤコントロール信号ＬＥＤＣがアクティブでありかつ図９（ａ）のフレームステータスフラグ信号ＦＳＦがローレベルである期間にのみ赤外発光ダイオード１５が点灯されるので、イメージセンサ４３の露光期間（図９（ｆ）参照）にのみ赤外発光ダイオード１５が点灯されることになる。
したがって、無駄な電力消費を抑制することができる。さらに、フレームステータスフラグ信号ＦＳＦはコンデンサ７１によってカップリングされているので、万一イメージセンサ４３の暴走等によりそのフラグ信号ＦＳＦがローレベルのまま停止した場合でも、一定時間後にはトランジスタ７７は必ずオフされ、赤外発光ダイオード１５も一定時間後には必ずオフされる。
このように、フレームステータス信号ＦＳＦの持続期間を変更することによって、イメージセンサ４３の露光時間を任意にかつ自在に設定または変更することができる。
さらに、フレームステータス信号ＦＳＦおよびＬＥＤコントロール信号ＬＥＤＣの持続時間や周期を変更することによって、赤外発光ダイオード１５すなわちストロボスコープの発光期間、非発光期間、発光／非発光周期などを任意にかつ自在に変更または設定できる。
先に説明したように、赤外発光ダイオード１５からの赤外光によって操作物１５０が照射されると、操作物１５０からの反射光によってイメージセンサ４３が露光される。応じて、イメージセンサ４３から上述のピクセルデータＤ（Ｘ，Ｙ）が出力される。詳しく説明すると、イメージセンサ４３は、上述の図９（ａ）のフレームステータスフラグ信号ＦＳＦがハイレベルの期間（赤外発光ダイオード１５の非点灯期間）に図９（ｂ）に示すピクセルデータストローブＰＤＳに同期して、図９（ｃ）に示すようにアナログのピクセルデータＤ（Ｘ，Ｙ）を出力する。
高速プロセッサ２００では、そのフレームステータスフラグ信号ＦＳＦとピクセルデータストローブＰＤＳとを監視しながら、ＡＤＣ２０８を通じて、デジタルのピクセルデータを取得する。
ただし、ピクセルデータは、図１０（ｃ）に示すように、第０行，第１行，…第３１行と行順次に出力される。ただし、後に説明するように、各行の先頭の１ピクセルはダミーデータとなる。
さて、次に、音楽ゲーム装置１によるゲーム内容について、具体例を挙げながら説明する。
図１１は、図１のテレビジョンモニタ９０のスクリーン９１に表示されるゲーム画面の例示図である。図１１に示すゲーム画面は、ゲームスタート画面である。図１１に示すように、ゲームスタート画面として、スクリーン９１には、背景１１０、位置ガイドＧ１〜Ｇ４、評価オブジェクト１０７〜１０９、カーソル１０５、ダンスオブジェクト１０６、及び、マスク１４１，１４２が表示される。そして、楽曲の自動演奏が開始される。
なお、本実施の形態の例では、位置ガイドＧ１〜Ｇ４は、花の図形で表現され、評価オブジェクト１０７〜１０９は、ハートの図形で表現され、ダンスオブジェクト１０６は、男女がダンスをしている図形で表現され、カーソル１０５は、操作物１５０を模した図形で表現される。ここで、位置ガイドＧ１〜Ｇ４を包括的に表現する場合は、「位置ガイドＧ」と表記する。
カーソル１０５は、操作物１５０のスクリーン９１上での位置を表しており、操作物１５０の動きに追従してスクリーン９１上を移動する。従って、プレイヤ９４から見れば、操作物１５０の操作とカーソル１０５の操作とは同義である。位置ガイドＧは、カーソル１０５（操作物１５０）の操作タイミング及び移動位置を、自動演奏する楽曲のタイミングで案内する。後述の方向ガイドｇ１〜ｇ５は、カーソル１０５（操作物１５０）の操作タイミング及び移動方向を、自動演奏する楽曲のタイミングで案内する。後述の経路ガイドｒｇ１〜ｒｇ１０は、カーソル１０５（操作物１５０）の操作タイミング、移動方向及び移動経路を、自動演奏する楽曲のタイミングで案内する。評価オブジェクト１０７〜１０９は、プレイヤ９４によるカーソル１０５（操作物１５０）の操作の評価を視覚的に表示する。ここで、方向ガイドｇ１〜ｇ５を包括的に表現するときは、「方向ガイドｇ」と表記する。また、経路ガイドｒｇ１〜ｒｇ１０を包括的に表現するときは、「経路ガイドｒｇ」と表記する。
図１２は、図１のテレビジョンモニタ９０のスクリーン９１に表示されるゲーム画面の他の例示図である。図１２に示すように、位置ガイドＧによる、徐々に花が開くアニメーションは、カーソル１０５を移動させる位置を示す。これにより、プレイヤ９４に対して、花が開くアニメーションを行っている位置ガイドＧが表示されている領域に、カーソル１０５を移動させることが指示される。プレイヤ９４は、操作物１５０を移動させて、花が開くアニメーションを行っている位置ガイドＧが表示されている領域にカーソル１０５を移動させる。花が開くアニメーションの後は、花がしぼむアニメーションにより、位置ガイドＧが表現される。さらに、花が開くアニメーションを行っている位置ガイドＧの方向が、カーソル１０５を移動させる方向を示す。これにより、プレイヤ９４に対して、花が開くアニメーションを行っている位置ガイドＧの方向にカーソル１０５を移動させることが指示される。
以上のことに加えて、方向ガイドｇ１〜ｇ５によっても、カーソル１０５を移動させる方向が案内される。つまり、最初に方向ガイドｇ１、次に方向ガイドｇ２、その次に方向ガイドｇ３、さらにその次に方向ガイドｇ４、さらにその次に方向ガイドｇ５、という順番で、方向ガイドｇ１〜ｇ５は出現する。従って、方向ガイドｇ１〜ｇ５の出現の方向により、カーソル１０５を移動させる方向が案内される。ここで、方向ガイドｇ１〜ｇ５の各々は、出現当初は小さな球を表現した図形であり、その球は時間とともに徐々に大きくなり、大きさが最大となった後は、球が砕けるようなアニメーションが実行される。従って、球の図形が出現する方向が、カーソル１０５を移動させる方向である。
プレイヤ９４は、位置ガイドＧによる花が開いた所定時間の間に、カーソル１０５を、当該位置ガイドＧが表示されている領域に移動させなければならない。つまり、位置ガイドＧは、花が開くアニメーションにより、カーソル１０５の操作タイミングを案内する。また、プレイヤ９４は、一番最後の方向ガイドｇによる球の図形が出現してから所定時間の間に、カーソル１０５を花が開いた位置ガイドＧが表示されている領域に移動させなければならない。つまり、方向ガイドｇによっても、カーソル１０５の操作タイミングが案内される。
また、位置ガイドＧは、カーソル１０５の操作方向を予告する機能をも有する。つまり、位置ガイドＧにより、花のつぼみが開き始めることで、プレイヤ９４は、次にカーソル１０５を移動させる方向を知ることができる。さらに、方向ガイドｇも、カーソル１０５の操作方向を予告する機能をも有する。つまり、方向ガイドｇは、操作タイミングが到来する前に出現するため、プレイヤ９４は、これによっても、次にカーソル１０５を移動させる方向を知ることができる。
以上の点を具体例を挙げて説明する。図１２の例では、位置ガイドＧ２による、徐々に花が開くアニメーションにより、カーソル１０５を移動させる位置が案内されている。これにより、プレイヤ９４に、花が開くアニメーションを行っている位置ガイドＧ２が表示されている領域に、カーソル１０５を移動させることが案内される。また、花が開くアニメーションを行っている位置ガイドＧ２の方向が、カーソル１０５を移動させる方向である。これにより、プレイヤ９４に、花が開くアニメーションを行っている位置ガイドＧ２の方向にカーソル１０５を移動させることが案内される。さらに、方向ガイドｇ１〜ｇ５による球の図形は、位置ガイドＧ１から位置ガイドＧ２へ向かって出現している。このように、方向ガイドｇ１〜ｇ５によっても、カーソル１０５を、位置ガイドＧ１から位置ガイドＧ２へ移動させることが案内される。
プレイヤ９４は、位置ガイドＧ２による花が開いた所定時間の間に、カーソル１０５を、当該位置ガイドＧ２が表示されている領域に移動させなければならない。また、プレイヤ９４は、一番最後の方向ガイドｇ５による球の図形が出現してから所定時間の間に、カーソル１０５を花が開いた位置ガイドＧ２が表示されている領域に移動させなければならない。つまり、方向ガイドｇによっても、カーソル１０５の操作タイミングが案内される。
プレイヤ９４は、位置ガイドＧ２及び方向ガイドｇ１〜５による案内に従って、操作物１５０を適切に操作して、位置ガイドＧ１から位置ガイドＧ２の位置までカーソル１０５を移動させている。従って、評価オブジェクト１０７〜１０９の全てが点滅するアニメーションが実行される。なお、最も適切なタイミングで、カーソル１０５が操作された場合は、評価オブジェクト１０７〜１０９の全てが点滅するアニメーションが実行され、最も適切なタイミングではないが許容範囲のタイミングでカーソル１０５が操作された場合は、評価オブジェクト１０８のみが点滅するアニメーションが実行される。なお、位置ガイドＧ１，Ｇ３，Ｇ４は、カーソル１０５の操作タイミング及び移動位置を案内する時間帯でないため、花のつぼみの図形となっている。また、位置ガイドＧ２と位置ガイドＧ４との間、位置ガイドＧ４と位置ガイドＧ３との間、及び、位置ガイドＧ３と位置ガイドＧ１との間、では、カーソル１０５の操作タイミング及び操作方向を案内する時間帯ではないため、方向ガイドｇが出現していない。
プレイヤ９４は、位置ガイドＧ２及び方向ガイドｇ１〜５による案内に従って、カーソル１０５を適切に操作しているため、カーソル１０５の移動方向（位置ガイドＧ１から位置ガイドＧ２の方向、つまり、スクリーン９１に向かって右方向）に対応した方向にダンスを行うアニメーションが実行される。例えば、ダンスオブジェクト１０６が、反時計回りに回転するアニメーションを行い、かつ、背景１１０が、スクリーン９１に向かって、左方向にスクロールする。これにより、ダンスオブジェクト１０６の位置はスクリーン９１の中心にありながらも、ダンスオブジェクト１０６が、右方向に移動しながら反時計回りに回転したように見える。
図１３は、図１のテレビジョンモニタ９０のスクリーン９１に表示されるゲーム画面のさらに他の例示図である。図１３では、４つの位置ガイドＧ１〜Ｇ４が同時に、花が開くアニメーションをしている。これを契機として、プレイヤ９４に対して、経路ガイドｒｇ１〜ｒｇ１０に案内される経路及び方向にカーソル１０５を移動させることが案内される。この場合、経路ガイドｒｇ１〜ｒｇ１０の出現位置が、カーソル１０５の案内経路を示す。また、最初に経路ガイドｒｇ１、次に経路ガイドｒｇ２、その次に経路ガイドｒｇ３、さらにその次に経路ガイドｒｇ４、…、最後に経路ガイドｒｇ１０、という順番で、経路ガイドｒｇ１〜ｒｇ１０は出現する。従って、経路ガイドｒｇ１〜ｒｇ１０の出現の方向により、カーソル１０５を移動させる方向が案内される。ここで、経路ガイドｒｇ１〜ｇ１０の各々は、出現当初は小さな球を表現した図形であり、その球は時間とともに徐々に大きくなり、大きさが最大となった後は、球が砕けるようなアニメーションが実行される。図１３では、位置ガイドＧ３の近傍を出発点として、経路ガイドｒｇ１〜ｇ１０に沿って、反時計回りにカーソル１０５を移動させることが案内されている。
プレイヤ９４が、位置ガイドＧ１〜Ｇ４及び経路ガイドｒｇ１〜ｒｇ１０に従って、操作物１５０を操作して適切にカーソル１０５を操作した場合は、ダンスオブジェクト１０６は、経路ガイドｒｇ１〜ｒｇ１０に対応したアニメーション（例えば、反時計回りに大きく回転するようなアニメーション）を実行する。
なお、上記のように、図１２及び図１３に示したダンスオブジェクト１０６等のオブジェクトは、アニメーションの、あるコマの画像である。例えば、ダンスアニメーションのために、一連のダンスオブジェクト１０６が用意されている。また例えば、位置ガイドＧのアニメーションのために、一連の花の図形のオブジェクト画像が用意されている。また、例えば、方向ガイドｇ及び経路ガイドｒｇのアニメーションのために、一連の球の図形のオブジェクト画像が用意されている。
ここで、図１１〜図１３に示したゲーム画面のダンスオブジェクト１０６、位置ガイドＧ、評価オブジェクト１０７〜１０９、カーソル１０５、方向ガイドｇ、及び、経路ガイドｒｇ、は単数あるいは複数のスプライトからなる。スプライトは、矩形の画素集合であり、スクリーン９１の任意の位置に配置できる。なお、位置ガイドＧ、評価オブジェクト１０７〜１０９、カーソル１０５、方向ガイドｇ、及び、経路ガイドｒｇ、を総称してオブジェクト（あるいはオブジェクト画像）と呼ぶこともある。
図１４は、スクリーン９１に表示されるオブジェクトを構成するスプライトの説明図である。図１４に示すように、図１１のダンスオブジェクト１０６は、例えば、１２個のスプライトＳＰ０〜ＳＰ１１により構成される。スプライトＳＰ０〜ＳＰ１１の各々は、例えば、１６画素×１６画素からなる。ダンスオブジェクト１０６をスクリーン９１上に配置するときは、例えば、左上の角のスプライトＳＰ０の中心を、スクリーン９１上のどの座標に配置するかが指定される。そして、指定された座標及びスプライトＳＰ０〜ＳＰ１１のサイズをもとに、各スプライトＳＰ１〜ＳＰ１１の中心を配置する座標が算出される。
次に、背景１１０のスクロールについて説明する。まず、全景スクリーンについて説明する。
図１５は、図１のテレビジョンモニタ９０のスクリーン９１に表示される全景スクリーンの説明図である。図１５に示すように、全景スクリーン１４０は、例えば、３２個×３２個のブロック「０」〜ブロック「１０２３」により構成される。ブロック「０」〜ブロック「１０２３」の各々は、例えば、８画素×８画素からなる矩形要素である。ブロック「０」〜ブロック「１０２３」に対応して、配列ＰＡ［０］〜配列ＰＡ［１０２３］及び配列ＣＡ［０］〜配列ＣＡ［１０２３］が用意される。ここで、ブロック「０」〜ブロック「１０２３」を包括して表現するときは、単に「ブロック」と表記し、配列ＰＡ［０］〜配列ＰＡ［１０２３］を包括して表現するときは、「配列ＰＡ」と表記し、配列ＣＡ［０］〜配列ＣＡ［１０２３］を包括して表現するときは、「配列ＣＡ」と表記する。
さて、配列ＰＡには、対応するブロックの画素パターンを指定するデータ（画素パターンデータ）が代入される。この画素パターンデータは、ブロックを構成する８画素×８画素の各画素の色情報である。また、配列ＣＡには、対応するブロックに使用するカラーパレット及びデプス値を指定する情報が代入される。カラーパレットは、所定数の色情報からなる。デプス値は、画素の奥行きを表す情報であり、同じ位置に、複数の画素が存在することとなる場合、最も大きなデプス値を持つ画素だけが表示されることになる。
図１６（ａ）は、全景スクリーン１４０をスクロールする前の説明図、図１６（ｂ）は、全景スクリーン１４０をスクロールした後の説明図、である。図１６（ａ）に示すように、テレビジョンモニタ９０のスクリーン９１のサイズは、２５６画素×２２４画素であるため、全景スクリーン１４０のうち、２５６画素×２２４画素の範囲がスクリーン９１に表示される。ここで、全景スクリーン１４０の中心位置をｋ画素だけ左にスクロールすることを考える。そうすると、全景スクリーン１４０の横方向（水平方向）の幅が、スクリーン９１の横方向の幅と同じであるため、図１６（ｂ）に示すように、スクリーン９１の範囲外となった部分（斜線部分）が、スクリーン９１の右端に表示される。つまり、概念的には、横方向にスクロールをする場合は、同じ複数の全景スクリーン１４０が横方向に連なっていると考えることができる。
例えば、スクリーン９１の範囲外となった部分（斜線部分）が、図１５のブロック「６４」，ブロック「９６」，…，ブロック「８９６」，ブロック「９２８」とすると、これらのブロックに対応する配列ＰＡ［６４］，…ＰＡ［９２８］及び配列ＣＡ［６４］，…ＣＡ［９２８］によって定まる画像が、スクリーン９１の右端に表示される。従って、全景スクリーン１４０の左スクロールにより、背景が連続的に連なるようにするには、スクリーン９１の範囲外となった部分（斜線部分）に含まれるブロックに対応する配列ＰＡ及び配列ＣＡに代入されたデータを更新する必要がある。そうすれば、更新された配列ＰＡ及び配列ＣＡによって定まる画像が、スクリーン９１の右端に表示される。
背景を滑らかに連続するように見せるためには、スクリーン９１の右端に表示される前に、該当する配列ＰＡ及び配列ＣＡのデータを更新する必要がある。そうすると、スクリーン９１の左端に表示中のときに、該当する配列ＰＡ及び配列ＣＡのデータを更新する必要が生じ、スクリーン９１の左端の表示が不連続なものとなる。従って、このような不都合を回避するため、図１１〜図１３に示すように、スクリーン９１の左端にマスク１４１をする。同様の理由により、右端にもマスク１４２をする。
なお、右方向へのスクロール処理も上記の左方向のスクロール処理と同様である。また、本実施の形態では、全景スクリーン１４０の縦方向（垂直方向）のスクロール範囲を±１６画素としているため、スクリーン９１の上下端にマスクはしていない。
以上のようにして、全景スクリーン１４０をスクロールさせることで、背景１１０をスクロールさせる。
さて、次に、音楽ゲーム装置１によるゲーム処理の詳細を説明する。図１７は、図６のＲＯＭ５１に格納されたプログラム及びデータを示す概念図である。図１７に示すように、ＲＯＭ５１には、ゲームプログラム３００、画像データ３０１、及び、音楽データ３０４、が格納される。画像データ３０２は、オブジェクト画像データ（位置ガイドＧ、方向ガイドｇ、経路ガイドｒｇ、評価オブジェクト１０７〜１０９、及び、カーソル１０５、等の画像データを含む。）及び背景画像データを含む。音楽データ３０４は、第１の楽譜データ３０５、第２の楽譜データ３０６、及び、音源データ（波形データ）３０７、を含む。
図１７に示す第１の楽譜データ３０５は、楽曲制御情報が時系列に配置されたデータである。
図１８は、図１７の第１の楽譜データ３０５の一例を示す概念図である。図１８に示すように、楽曲制御情報は、コマンド、ノートナンバ／待機時間情報、楽器指定情報、ベロシティ、及び、ゲートタイム、を含む。
ノートオンは、音を出すコマンド、待機は、待機時間を設定するコマンド、である。待機時間は、次のコマンドを読み出すまでの時間（ある音符から次の音符までの時間）である。ノートナンバは、音の高さ（ピッチ）を指定する情報である。待機時間情報は、設定する待機時間を指定する情報である。楽器指定情報は、どの楽器の音色を使うかを指定する情報である。ベロシティは、音の強弱の情報、つまり、音量の情報、である。ゲートタイムは、音が発音される長さである。
図１７に戻って、第２の楽譜データ３０６は、ガイド制御情報が、時系列に配置されたデータである。この第２の楽譜データ３０６は、ガイド（位置ガイドＧ、方向ガイドｇ、及び、経路ガイドｒｇ）を、スクリーン９１に表示する際に使用される。つまり、第１の楽譜データ３０５は、楽曲を自動演奏するための楽譜データであるが、第２の楽譜データ３０６は、ガイドを楽曲に合ったタイミングで表示させるための楽譜データである。
図１９は、図１７の第２の楽譜データ３０６の一例を示す概念図である。図１９に示すように、ガイド制御情報は、コマンド、ノートナンバ／待機時間情報、及び、楽器指定情報、からなる。
第２の楽譜データ３０６では、楽器指定情報は、楽曲を奏でる楽器（音色）を示す番号ではなく、第２の楽譜データ３０６が、ガイド（位置ガイドＧ、方向ガイドｇ、及び、経路ガイドｒｇ）を出現させる楽譜データであることを示す番号である。
従って、ノートオンは、音を出すコマンドではなく、位置ガイドＧのアニメーション開始を指示したり、方向ガイドｇ及び経路ガイドｒｇの出現開始を指示したりするコマンドである。そして、ノートナンバは、音の高さ（ピッチ）を指定する情報ではなく、どの位置ガイドＧのアニメーションを開始するかを示したり、どこに方向ガイドｇ及び経路ガイドｒｇを出現させるかを示したりする情報である。この点を詳しく説明する。
図２０（ａ）〜図２０（ｃ）は、カーソル１０５を案内する方向とノートナンバとの関係図である。図２０（ａ）〜図２０（ｃ）に示すように、矢印の向きが、カーソル１０５を案内する方向を示し、矢印の始点が、直前にカーソル１０５を案内した位置ガイドＧの位置を示し、矢印の終点が、カーソル１０５を案内する位置ガイドＧの位置を示している。例えば、図２０（ａ）に示すように、ノートナンバ「５５」は、カーソル１０５を、位置ガイドＧ１から位置ガイドＧ２へ案内する場合に使用され、楽譜データポインタが指すノートナンバが「５５」の場合は、図１２に示す位置ガイドＧ及び方向ガイドｇが出現する。また、例えば、図２０（ｃ）に示すように、ノートナンバ「５７」は、位置ガイドＧ３を始点として、カーソル１０５を反時計回りに回転させることを案内する場合に使用され、楽譜データポインタが指すノートナンバが「５７」の場合は、図１３に示す位置ガイドＧ及び経路ガイドｒｇが出現する。
なお、例えば、ノートナンバ「８１」は、第２の楽譜データ３０６の先頭に配置するダミーデータであり（図１９参照）、ガイドの表示を制御する情報ではない。こうすることで、第１の楽譜データ３０５と第２の楽譜データ３０６との先頭を揃えている。また、例えば、ノートナンバ「７９」は、楽曲終了を意味するデータであり、第２の楽譜データ３０６の最後尾に配置される（図１９参照）。なお、ノートナンバ「７９」は、ガイドの表示を制御する情報ではない。
さて、次に、高速プロセッサ２００が実行する主な処理について説明する。
［ピクセルデータ群取得処理］ＣＰＵ２０１は、イメージセンサ４３が出力したアナログのピクセルデータを変換したデジタルのピクセルデータを取得して、配列Ｐ［Ｘ］［Ｙ］に代入する。なお、イメージセンサ４３の水平方向（横方向、行方向）をＸ軸、垂直方向（縦方向、列方向）をＹ軸とする。
［差分データ算出処理］ＣＰＵ２０１は、赤外発光ダイオード１５の点灯時のピクセルデータＰ［Ｘ］［Ｙ］と、消灯時のピクセルデータＰ［Ｘ］［Ｙ］と、の差分を算出して、差分データを配列Ｄｉｆ［Ｘ］［Ｙ］に代入する。ここで、図面を用いて、差分を求める効果を説明する。ここで、ピクセルデータは輝度を表す。よって、差分データも輝度を表す。
図２１（ａ）は、一般的なイメージセンサにより撮影された、特別な処理を施さない画像の例示図、図２１（ｂ）は、図２１（ａ）の画像信号を或る閾値でレベル弁別したときの画像信号の例示図、図２１（ｃ）は、赤外フィルタ１７を介したイメージセンサ４３の点灯時の画像信号を或る閾値でレベル弁別したときの画像信号の例示図、図２１（ｄ）は、赤外フィルタ１７を介したイメージセンサ４３の消灯時の画像信号を或る閾値でレベル弁別したときの画像信号の例示図、図２１（ｅ）は、点灯時の画像信号と消灯時の画像信号との差分信号の例示図、である。
上記のように、操作物１５０に赤外光を照射し、赤外フィルタ１７を介してイメージセンサ４３に入射した反射赤外光による画像を撮影している。一般的な室内環境で一般的な光源を用いて操作物１５０をストロボスコープ撮影した場合には、一般的なイメージセンサ（図５のイメージセンサ４３に相当する。）には、図２１（ａ）に示すように、操作物１５０による画像以外に、蛍光灯光源、白熱灯光源、太陽光（窓）のような光源だけでなく、室内のすべてのものの画像がすべて写り込む。したがって、この図２１（ａ）の画像を処理して操作物１５０の画像のみを抽出するのは、かなり高速のコンピュータまたはプロセサが必要である。しかしながら、安価が条件の装置ではそのような高性能コンピュータを使えない。そこで種々の処理を行って負担を軽減することが考えられる。
なお、図２１（ａ）の画像は、本来ならば、白黒の階調により表される画像であるが、その図示を省略している。また、図２１（ａ）〜図２１（ｅ）では、操作物１５０の反射シート１５５が撮影されている。
さて、図２１（ｂ）は、図２１（ａ）の画像信号を或る閾値でレベル弁別したときの画像信号である。このようなレベル弁別処理は専用のハードウェア回路でも、ソフトウェア的にでも、実行することができるが、いずれの方法によっても、一定以下の光量のピクセルデータをカットするレベル弁別を実行すると、操作物１５０や光源以外の低輝度画像を除去することができる。この図２１（ｂ）の画像では操作物１５０および室内の光源以外の画像の処理を省略でき、したがって、コンピュータの負担を軽減できるが、それでも、光源画像を含む高輝度画像が依然として写り込んでいるので、操作物１５０と他の光源を分別することは難しい。
そこで、図５に示したように赤外フィルタ１７を利用して、イメージセンサ４３に赤外光による画像以外の画像が写らないようにした。それによって、図２１（ｃ）に示すように、赤外光を殆ど含まない蛍光灯光源の画像は除去できる。しかしながら、それでもなお太陽光や白熱灯が画像信号中に含まれてしまう。したがって、更なる負担軽減のために、赤外ストロボスコープの点灯時のピクセルデータと消灯時のピクセルデータとの差分を計算することとした。
そのため、図２１（ｃ）の点灯時の画像信号のピクセルデータと、図２１（ｄ）の消灯時の画像信号のピクセルデータとの差分を計算した。すると、図２１（ｅ）に示すように、その差分だけの画像が取得できる。この差分データによる画像は、図２１（ａ）と対比すれば明らかなように、操作物１５０によって得られる画像のみを含むことになる。したがって、処理の軽減を図りながらも、操作物１５０の状態情報を取得できる。状態情報とは、例えば、速さ情報、移動方向情報、移動距離情報、速度ベクトル情報、加速度情報、移動軌跡情報、面積情報、若しくは、位置情報、のいずれか、又は、それらの２以上の組み合わせ、等である。
以上のような理由で、ＣＰＵ２０１は、赤外発光ダイオード１５の点灯時のピクセルデータと、消灯時のピクセルデータと、の差分を算出して、差分データを得る。
［注目点抽出処理］ＣＰＵ２０１は、算出した差分データＤｉｆ［Ｘ］［Ｙ］を基に、操作物１５０の注目点の座標を求める。この点を詳細に説明する。
図２２は、操作物１５０の注目点の座標算出の説明図である。なお、図２２に示したイメージセンサ４３は、３２ピクセル×３２ピクセルのものとする。
図２２に示すように、ＣＰＵ２０１は、Ｘ方向（水平方向、横方向、行方向）に３２ピクセル分の差分データをスキャンし、そして、Ｙ座標をインクリメントし、Ｘ方向に３２ピクセル分の差分データをスキャンし、そして、Ｙ座標をインクリメントし、というように、Ｙ座標をインクリメントしながら、Ｘ方向に３２ピクセル分の差分データをスキャンしていく。
この場合、ＣＰＵ２０１は、スキャンした３２ピクセル×３２ピクセル分の差分データから、最大輝度値の差分データを求め、その最大輝度値と所定の閾値Ｔｈとを比較する。そして、ＣＰＵ２０１は、その最大輝度値が所定の閾値Ｔｈより大きい場合は、その最大輝度値を持つピクセルの座標を基に、操作物１５０の注目点の座標を算出する。この点を詳しく説明する。
図２３（ａ）は、最大輝度値を持つピクセルの座標を基に、操作物１５０の注目点座標を算出する際のＸ方向スキャンの説明図、図２３（ｂ）は、最大輝度値を持つピクセルの座標を基に、操作物１５０の注目点座標を算出する際のＹ方向スキャンのスタート時の説明図、図２３（ｃ）は、最大輝度値を持つピクセルの座標を基に、操作物１５０の注目点座標を算出する際のＹ方向スキャンの説明図、図２３（ｄ）は、最大輝度値を持つピクセルの座標を基に、操作物１５０の注目点座標を算出する際の結果の説明図、である。
図２３（ａ）に示すように、ＣＰＵ２０１は、最大輝度値のピクセルの座標を中心に、Ｘ方向に、差分データのスキャンを実行して、所定の閾値Ｔｈより大きい輝度値のピクセルを検出する。図２３（ａ）の例では、Ｘ＝１１〜１５までが、所定の閾値Ｔｈを超えたピクセルである。
次に、図２３（ｂ）に示すように、ＣＰＵ２０１は、Ｘ＝１１〜１５の中心を求める。すると、中心のＸ座標は、Ｘｃ＝１３である。
次に、図２３（ｃ）に示すように、図２３（ｂ）で求めたＸ座標（＝１３）を中心に、Ｙ方向に、差分データのスキャンを実行して、所定の閾値Ｔｈより大きい輝度値のピクセルを検出する。図２３（ｃ）の例では、Ｙ＝５〜１０までが、所定の閾値Ｔｈを超えたピクセルである。
次に、図２３（ｄ）に示すように、ＣＰＵ２０１は、Ｙ＝５〜１０の中心を求める。すると、中心のＹ座標は、Ｙｃ＝７である。
ＣＰＵ２０１は、以上のようにして算出した注目点の座標（Ｘｃ，Ｙｃ）＝（１３，７）を、スクリーン９１上の座標（ｘｃ，ｙｃ）に変換する。ＣＰＵ２０１は、以上のような注目点の座標（ｘｃ，ｙｃ）を求める処理を、フレームが更新されるたびに実行する。そして、ＣＰＵ２０１は、ｘｃ及びｙｃをそれぞれ配列Ｐｘ［Ｍ］及びＰｙ［Ｍ］に代入する。なお、「Ｍ」は整数であり、スクリーン９１に表示するフレームが更新されるたびに１つインクリメントされる。
［注目点存在領域判定処理（１）］ＣＰＵ２０１は、操作物１５０の注目点が、スクリーン９１上のどの領域ａ１〜ａ４に存在するかを判定する。この点を詳細に説明する。
図２４は、ＣＰＵ２０１による注目点存在領域判定処理（２）の説明図である。図２４に示すように、スクリーン９１に、位置ガイドＧ１を含む所定領域ａ１、位置ガイドＧ２を含む所定領域ａ２、位置ガイドＧ３を含む所定領域ａ３、及び、位置ガイドＧ４を含む所定領域ａ４、を設定する。ＣＰＵ２０１は、所定領域ａ１〜ａ４の中から、操作物１５０の注目点（ｘｃ，ｙｃ）が属する領域を判定し、判定結果を配列Ｊ１［Ｍ］に格納する。ＣＰＵ２０１は、以上のような判定処理を、スクリーン９１に表示するフレームが更新されるたびに実行する。
［注目点存在領域判定処理（２）］ＣＰＵ２０１は、操作物１５０の注目点が、スクリーン９１上のどの領域Ａ１〜Ａ４に存在するかを判定する。この点を詳細に説明する。
図２５は、ＣＰＵ２０１による注目点存在領域判定処理（２）の説明図である。図２５に示すように、スクリーン９１を４分割した領域Ａ１〜Ａ４を設定する。ＣＰＵ２０１は、領域Ａ１〜Ａ４の中から、操作物１５０の注目点（ｘｃ，ｙｃ）が属する領域を判定し、判定結果を配列Ｊ２［Ｍ］に格納する。ＣＰＵ２０１は、以上のような判定処理を、スクリーン９１に表示するフレームが更新されるたびに実行する。
［カーソル制御処理］ＣＰＵ２０１は、現在の操作物１５０の注目点の座標（ｘｃ，ｙｃ）を、次のフレームで表示するカーソル１０５の座標として登録する（内部メモリ２０７に格納する）。
［ガイド種類登録処理］ＣＰＵ２０１は、ガイド用の楽譜データポインタに従って、第２の楽譜データ３０６から読み出したノートナンバ（図１９及び図２０（ａ）〜図２０（ｃ）参照）を配列ＮＮ「０」あるいは配列ＮＮ［１］に代入する。このように、配列の要素数を２つにしたのは、ある位置ガイドＧによる案内と他の位置ガイドＧによる案内とが、違うタイミングで開始されるが、ある期間重複して実行される場合もあるからである。なお、ガイド用の楽譜データポインタは、第２の楽譜データ３０６の読み出し位置を示すポインタである。
［ガイド制御処理］ＣＰＵ２０１は、配列ＮＮ［Ｊ］（ガイド表示番号Ｊ＝０，１）を参照して、配列ＮＮ［Ｊ］に代入されているノートナンバに従って、方向ガイドＧのアニメーション情報、位置ガイドｇのアニメーション情報、及び、経路ガイドｒｇのアニメーション情報、を登録する。この点を詳細に説明する。
図２６は、方向ガイドＧ、位置ガイドｇ、及び、経路ガイドｒｇ、のアニメーションの登録処理の説明図である。図２６に示すように、ノートナンバと、アニメーション情報（位置ガイドＧのアニメーションテーブルの格納位置情報、位置ガイドＧのスクリーン９１上の表示座標、位置ガイドＧの表示タイミング情報、方向ガイドｇ／経路ガイドｒｇのアニメーションテーブルの格納位置情報、方向ガイドｇ／経路ガイドｒｇのスクリーン９１上の表示座標情報、及び、方向ガイドｇ／経路ガイドｒｇの表示タイミング情報）と、が関連付けられたテーブルが、ＲＯＭ５１あるいは内部メモリ２０７に用意される。
このテーブルのノートナンバは、ガイドの表示を制御するためのノートナンバであり、図２０（ａ）〜図２０（ｃ）に示したノートナンバである。例えば、ＣＰＵ２０１は、配列ＮＮ［Ｊ］に代入されているノートナンバが「５５」の場合は、このテーブルを参照して、ノートナンバ「５５」に関連付けられたアニメーション情報（位置ガイドＧのアニメーションテーブルの格納位置情報、位置ガイドＧのスクリーン９１上の表示座標、位置ガイドＧの表示タイミング情報、方向ガイドｇのアニメーションテーブルの格納位置情報、方向ガイドｇのスクリーン９１上の表示座標情報、及び、方向ガイドｇの表示タイミング情報）を登録する（内部メモリ２０７の所定領域に格納する。）。
ここで、表示タイミング情報は、スクリーン９１にオブジェクトをいつ表示するかを示す情報である。例えば、ガイドナンバ「５５」に関しては、位置ガイドＧの表示タイミング情報が「０」であるため、現在表示中のフレームの次のフレームにおいて、位置ガイドＧ２を座標（ｘ１，ｙ１）に表示することを意味する。また、例えば、ガイドナンバ「５５」に関しては、方向ガイドｇの表示タイミング情報が０，６，１２，…，２４であるため、現在表示中のフレームの次のフレームにおいて、位置ガイドｇ１を座標（ｘ３，ｙ１）に表示し、６フレーム後に位置ガイドｇ２を座標（ｘ４，ｙ１）に表示し、…、２４フレーム後に位置ガイドｇ５を座標（ｘ７，ｙ１）に表示することを意味する。
図２７は、図２６のアニメーションテーブル格納位置情報により指定されるアニメーションテーブルの例示図である。図２７に示すように、アニメーションテーブルは、アニメーション画像データ（複数のオブジェクト画像データを時系列に配置したもの）の格納位置情報、アニメーションを行うオブジェクトの番号を時系列に配置したもの、何フレーム連続して各オブジェクトを表示するかを示す情報（持続フレーム数）、オブジェクトのサイズ、カラーパレットの情報、デプス値の情報、及び、スプライトサイズ、を関連付けたテーブルである。なお、アニメーション画像データは、画素パターンデータである。ここで、画素パターンデータ、カラーパレット、及び、デプス値は、オブジェクトを構成するスプライトに関するものであり、その意味は、図１４で説明したブロックに関するものと同様である。
アニメーションテーブル格納位置情報ａｄｄｒｅｓｓ０が示すアニメーションテーブルは、位置ガイドＧのアニメーションテーブルの例示であり、アニメーションテーブル格納位置情報ａｄｄｒｅｓｓ１が示すアニメーションテーブルは、方向ガイドｇのアニメーションテーブルの例示であり、アニメーションテーブル格納位置情報ａｄｄｒｅｓｓ２が示すアニメーションテーブルは、経路ガイドｒｇのアニメーションテーブルの例示であり、アニメーションテーブル格納位置情報ａｄｄｒｅｓｓ３が示すアニメーションテーブルは、プレイヤ９４によるカーソル１０５の操作が成功したときに利用する位置ガイドＧのアニメーションテーブルの例示である。
［ダンス制御処理］ＣＰＵ２０１は、プレイヤ９４によるカーソル１０５の操作が、位置ガイドＧ及び方向ガイドｇ、あるいは、位置ガイドＧ及び経路ガイドｒｇ、に適合して操作されたか否かを判断する。具体的には、次の通りである。
ＣＰＵ２０１は、注目点存在領域判定処理（１）による判定結果Ｊ１［Ｍ］をもとに、位置ガイドＧ及び方向ガイドｇが現在案内している領域に、カーソル１０５（つまり、操作物１５０の注目点）が存在するかどうかを判断する（図２４参照）。例えば、ＣＰＵ２０１は、位置ガイドＧ及び方向ガイドｇが現在案内している領域が領域ａ２の場合に、カーソル１０５が存在する領域が領域ａ２である場合は、カーソル１０５が位置ガイドＧ及び方向ガイドｇに適合して操作されたと判断する。
また、ＣＰＵ２０１は、注目点存在領域判定処理（２）による判定結果Ｊ２［Ｍ］をもとに、位置ガイドＧ及び経路ガイドｒｇが現在案内している経路に沿って、カーソル１０５（つまり、操作物１５０の注目点）が移動したかどうかを判断する（図２５参照）。ここで、図２０（ｂ）のガイドナンバ「５３」が案内する経路は、図２５の領域Ａ３→領域Ａ１→領域Ａ２→領域Ａ４である。また、図２０（ｃ）のガイドナンバ「５７」が案内する経路は、図２５の領域Ａ４→領域Ａ２→領域Ａ１→領域Ａ３である。従って、例えば、ＣＰＵ２０１は、位置ガイドＧ及び経路ガイドｒｇが現在案内している経路がガイドナンバ「５３」に対応する経路である場合に、カーソル１０５が移動した経路が、領域Ａ３→領域Ａ１→領域Ａ２→領域Ａ４、である場合は、カーソル１０５が位置ガイドＧ及び経路ガイドｒｇに適合して操作されたと判断する。
上述の結果、プレイヤ９４によるカーソル１０５の操作が、位置ガイドＧ及び方向ガイドｇ、あるいは、位置ガイドＧ及び経路ガイドｒｇ、に適合して操作されたと判断した場合は、ＣＰＵ２０１は、位置ガイドＧ及び方向ガイドｇ、あるいは、位置ガイドＧ及び経路ガイドｒｇ、に対応したダンスアニメーション情報を登録する（内部メモリ２０７の所定領域に格納する。）。図２６のテーブルと同様に、ガイドの表示を制御するノートナンバ（図２０（ａ）〜図２０（ｃ）参照）とダンスアニメーション情報とを関連付けたテーブルが、ＲＯＭ５１あるいは内部メモリ２０７に用意される。ただし、案内方向が同じノートナンバ（例えば、ノートナンバ「５５」と「６７」）については、ダンスアニメーション情報も同じにしている。
ダンスアニメーション情報は、図２６のアニメーション情報と同様のものであり、ダンスアニメーションテーブルの格納位置情報、ダンスオブジェクト１０６のスクリーン９１上の表示座標、及び、ダンスオブジェクト１０６の表示タイミング情報、を含む。また、ダンスアニメーションテーブルは、図２７のアニメーションテーブルと同様のものであり、ダンスアニメーション画像データ（複数のダンスオブジェクト１０６の画像データを時系列に配置したもの）の格納位置情報、アニメーションを行うダンスオブジェクト１０６の番号を時系列に配置したもの、何フレーム連続して各ダンスオブジェクト１０６を表示するかを示す情報（持続フレーム数）、ダンスオブジェクト１０６のサイズ、カラーパレットの情報、デプス値の情報、及び、スプライトサイズ、を関連付けたテーブルである。ダンスアニメーション画像データは、画素パターンデータである。
なお、図１７の第２の楽譜データ３０６には、速い速度のダンスアニメーションを行うことを指示するノートナンバ、及び、遅い速度のダンスアニメーションを行うことを指示するノートナンバ、を含めることができる。この場合は、ダンスアニメーションテーブルも、速い速度のダンスアニメーションテーブルと遅い速度のダンスアニメーションテーブルとが用意される。また、この場合は、ガイドの表示を制御するノートナンバ及びダンス速度を制御するノートナンバと、ダンスアニメーション情報と、を関連付けたテーブルが、ＲＯＭ５１あるいは内部メモリ２０７に用意される。同様に、ダンス速度ごとに、ダンスアニメーションテーブルが用意される。
また、プレイヤ９４によるカーソル１０５の操作が、位置ガイドＧ及び方向ガイドｇ、あるいは、位置ガイドＧ及び経路ガイドｒｇ、に適合して操作されたと判断した場合は、ＣＰＵ２０１は、操作が成功した際に使用する位置ガイドＧのアニメーションテーブルの格納位置情報（図２７の例では、ａｄｄｒｅｓｓ３）を登録する。
また、プレイヤ９４によるカーソル１０５の操作が、位置ガイドＧ及び方向ガイドｇ、あるいは、位置ガイドＧ及び経路ガイドｒｇ、に適合して操作されたと判断した場合は、ＣＰＵ２０１は、評価オブジェクト１０７〜１０９のためのアニメーション情報を登録する（内部メモリ２０７の所定領域に格納する。）。このアニメーション情報は、図２６のアニメーション情報と同様のものである。従って、このアニメーション情報には、評価オブジェクト１０７〜１０９のためのアニメーションテーブルの格納位置情報が含まれる。このアニメーションテーブルは、図２７のアニメーションテーブルと同様のものである。
さらに、プレイヤ９４によるカーソル１０５の操作が、位置ガイドＧ及び方向ガイドｇ、あるいは、位置ガイドＧ及び経路ガイドｒｇ、に適合して操作されたと判断した場合は、ＣＰＵ２０１は、位置ガイドＧ及び方向ガイドｇ、あるいは、位置ガイドＧ及び経路ガイドｒｇ、に対応したスクロール制御を行う。具体的には、ＣＰＵ２０１は、位置ガイドＧ及び方向ガイドｇ、あるいは、位置ガイドＧ及び経路ガイドｒｇ、並びに、ダンス速度を制御するノートナンバ、に対応して、全景スクリーン１４０の中心位置を変更して（図１６（ａ）及び図１６（ｂ）参照）、背景１１０をスクロールする。また、ＣＰＵ２０１は、横方向に全景スクリーン１４０をスクロールさせる場合は、該当する配列ＰＡ及び配列ＣＡのデータを変更する。
さて、図２８は、第１の楽譜データ３０５、第２の楽譜データ３０６、方向ガイドＧ、位置ガイドｇ、操作判定、及び、ダンスアニメーション、の関係を説明するためのタイミング図である。なお、図２８において、太い線は、処理の実行期間を示し、太い線の左端の黒丸は処理の開始を示し、太い線の右側の黒丸は処理の終了を示す。
図２８に示すように、第２の楽譜データ３０６の読み出しの開始時点は、第１の楽譜データ３０５の読み出しの開始時点Ｔ１，Ｔ２，…、よりも所定時間ｔだけ早い。従って、方向ガイドｇは、第１の楽譜データ３０５の対応するノートナンバが読み出される時Ｔ１〜Ｔ３よりも、所定時間ｔだけ早く表示され、第１の楽譜データ３０５の対応するノートナンバが読み出される時Ｔ１〜Ｔ３まで（例えば、６０フレームの間）表示される。同様に、位置ガイドＧは、第１の楽譜データ３０５の対応するノートナンバが読み出される時Ｔ１〜Ｔ３よりも、所定時間ｔだけ早くアニメーションを開始し、第１の楽譜データ３０５の対応するノートナンバが読み出される時Ｔ１〜Ｔ３の少し後までアニメーションを継続する。
ＣＰＵ２０１は、カーソル１０５の操作が、方向ガイドｇ及び位置ガイドＧに適合して行われたか否かの判断を、方向ガイドｇの表示開始から、一定期間経過後（例えば、３０フレーム経過後）に開始し、第１の楽譜データ３０５の対応するノートナンバが読み出される時Ｔ１〜Ｔ３に終了する。そして、ＣＰＵ２０１は、カーソル１０５の操作が、方向ガイドｇ及び位置ガイドＧに適合して行われたと判断した場合は、判断期間の終了時に、ダンスアニメーション情報を登録する。従って、この場合、登録されたダンスアニメーション情報にもとづいて、ダンスアニメーションが実行される。
なお、第２の楽譜データ３０６の読み出しの開始時点が、第１の楽譜データ３０５の読み出しの開始時点Ｔ１，Ｔ２，…、よりも所定時間ｔだけ早い理由は、次の通りである。つまり、プレイヤ９４は、方向ガイドｇ及び位置ガイドＧによる案内開始後に、操作物１５０の操作を開始するため、その時間誤差を調整するため、方向ガイドｇ及び位置ガイドＧの表示を楽曲のタイミングよりも早くしたのである。
経路ガイドｒｇの表示タイミングについては、方向ガイドＧの表示タイミングと同様である。ただし、例えば、カーソル１０５の操作が経路ガイドｒｇに適合するか否かの判断は、経路ガイドｒｇによる案内開始時から終了時の間（例えば、６０フレームの間）に行う。
［画像表示処理］ＣＰＵ２０１は、カーソル制御処理、ガイド制御処理、及び、ダンス制御処理、により登録された情報をもとに、描画に必要な情報を垂直ブランキング期間に、図７のグラフィックプロセッサ２０２に与える。すると、グラフィックプロセッサ２０２は、与えられた情報をもとに映像信号を生成して、映像信号出力端子４７に出力する。これにより、テレビジョンモニタ９０のスクリーン９１に、位置ガイドＧや背景１１０等を含むゲーム画面が表示される。より具体的には、次の通りである。
ＣＰＵ２０１は、カーソル制御処理で登録した座標情報（操作物１５０の注目点の座標情報）をもとに、カーソル１０５を構成する各スプライトの表示座標を算出する。そして、ＣＰＵ２０１は、カーソル１０５を構成する各スプライトの、表示座標情報、カラーパレット情報、デプス値、サイズ情報、及び、画素パターンデータ格納位置情報、をグラフィックプロセッサ２０２に与える。グラフィックプロセッサ２０２は、これらの情報をもとに、カーソル１０５を表す映像信号を生成して、映像信号出力端子４７に出力する。
また、ＣＰＵ２０１は、ガイド制御処理で登録したアニメーション情報に含まれるアニメーションテーブル格納位置情報にもとづいて、アニメーションテーブルを参照し、ガイド（位置ガイドＧ，方向ガイドｇ，経路ガイドｒｇ）のアニメーション画像を構成するオブジェクトのサイズ情報、及び、そのオブジェクトを構成するスプライトのサイズ情報、を取得する。そして、ＣＰＵ２０１は、これらの情報と、登録されているアニメーション情報に含まれる表示座標情報と、をもとに、当該オブジェクトを構成する各スプライトの表示座標を算出する。また、ＣＰＵ２０１は、これから表示する位置ガイドＧのオブジェクト番号、アニメーションテーブルに含まれるオブジェクト及びスプライトのサイズ情報、並びに、アニメーションテーブルに含まれる位置ガイドＧのアニメーション画像データ格納位置情報、をもとに、オブジェクトを構成する各スプライトの画素パターンデータ格納位置情報を算出する。
そして、さらに、ＣＰＵ２０１は、アニメーションテーブルを参照して、位置ガイドＧを構成する各スプライトの、カラーパレット情報、デプス値、及び、サイズ情報を、各スプライトの画素パターンデータ格納位置情報及び表示座標情報とともに、グラフィックプロセッサ２０２に与える。この場合、ＣＰＵ２０１は、登録されているアニメーション情報に含まれる位置ガイドＧの表示タイミング情報、及び、アニメーションテーブルの持続フレーム数情報、に従って、上記の情報をグラフィックプロセッサ２０２に与える。
方向ガイドｇ及び経路ガイドｒｇに関しても、ＣＰＵ２０１がグラフィックプロセッサ２０２に与える情報の取得及び内容は、位置ガイドＧと同様である。ただし、方向ガイドｇ１〜ｇ４及び経路ガイドｒｇ１〜ｒｇ１０は、アニメーション情報に含まれる表示タイミング情報が指示するタイミングで、アニメーション情報に含まれる表示座標情報が指示する複数の位置に順次表示されるため、方向ガイドｇ１〜ｇ４の各々及び経路ガイドｒｇ１〜ｒｇ１０の各々の表示開始時においては、ＣＰＵ２０１は、登録されているアニメーション情報に含まれる表示座標情報及び表示タイミング情報を参照して、方向ガイドｇ１〜ｇ４及び経路ガイドｒｇ１〜ｒｇ１０の情報をグラフィックプロセッサ２０２に与える。
以上のようにして与えられた情報をもとに、グラフィックプロセッサ２０２は、ガイド（位置ガイドＧ，方向ガイドｇ，経路ガイドｒｇ）を表す映像信号を生成して、映像信号出力端子４７に出力する。
また、ＣＰＵ２０１は、ダンス制御処理で登録したダンスアニメーション情報に含まれるダンスアニメーションテーブル格納位置情報にもとづいて、ダンスアニメーションテーブルを参照し、ダンスアニメーション画像を構成するダンスオブジェクト１０６のサイズ情報、及び、ダンスオブジェクト１０６を構成するスプライトのサイズ情報、を取得する。そして、ＣＰＵ２０１は、これらの情報と、登録されているダンスアニメーション情報に含まれる表示座標情報と、をもとに、ダンスオブジェクト１０６を構成する各スプライトの表示座標を算出する。また、ＣＰＵ２０１は、これから表示するダンスオブジェクト１０６の番号、ダンスアニメーションテーブルに含まれるダンスオブジェクト１０６及びスプライトのサイズ情報、及び、ダンスアニメーションテーブルに含まれるダンスアニメーション画像データ格納位置情報、をもとに、ダンスオブジェクト１０６を構成する各スプライトの画素パターンデータ格納位置情報を算出する。
そして、さらに、ＣＰＵ２０１は、ダンスアニメーションテーブルを参照して、ダンスオブジェクト１０６を構成する各スプライトの、カラーパレット情報、デプス値、及び、サイズ情報を、各スプライトの画素パターンデータ格納位置情報及び表示座標情報とともに、グラフィックプロセッサ２０２に与える。この場合、ＣＰＵ２０１は、登録されているダンスアニメーション情報に含まれる表示タイミング情報、及び、ダンスアニメーションテーブルの持続フレーム数情報、に従って、上記の情報をグラフィックプロセッサ２０２に与える。
さらに、ＣＰＵ２０１は、ダンス制御処理で登録した、評価オブジェクト１０７〜１０９のためのアニメーション情報及びアニメーションテーブルをもとに、映像信号の生成に必要な情報を取得して、グラフィックプロセッサ２０２に与える。なお、この場合に、ＣＰＵ２０１がグラフィックプロセッサ２０２に与える情報の取得及び内容は、ダンスオブジェクト１０６の場合と同様である。
以上のようにして与えられた情報をもとに、グラフィックプロセッサ２０２は、ダンスオブジェクト１０６及び評価オブジェクト１０７〜１０９を表す映像信号を生成して、映像信号出力端子４７に出力する。
［楽曲再生］楽曲の再生は、割込み処理により行われる。ＣＰＵ２０１は、楽曲用の楽譜データポインタをインクリメントしながら、図１８の楽曲制御情報を読み出して解釈する。なお、楽曲用の楽譜データポインタは、第１の楽譜データ３０５の読み出し位置を示すポインタである。
そして、ＣＰＵ２０１は、読み出した楽曲制御情報に含まれるコマンドが、ノートオンであれば、その楽曲制御情報に含まれるノートナンバが示す音の高さ（ピッチ）及び楽器指定情報が示す楽器（音色）に応じた波形データが格納されている先頭アドレスを、サウンドプロセッサ２０３に与える。さらに、ＣＰＵ２０１は、読み出した楽曲制御情報に含まれるコマンドが、ノートオンであれば、必要なエンベロープデータが格納されている先頭アドレスを、サウンドプロセッサ２０３に与える。さらに、ＣＰＵ２０１は、読み出した楽曲制御情報に含まれるコマンドが、ノートオンであれば、その楽曲制御情報に含まれるノートナンバが示す音の高さ（ピッチ）に応じたピッチ制御情報、及び、その楽曲制御情報に含まれるボリューム情報、をサウンドプロセッサ２０３に与える。
ここで、ピッチ制御情報について説明しておく。ピッチ制御情報は、波形データを読み出す周期を変えることによって行われるピッチ変換に用いられる。つまり、サウンドプロセッサ２０３は、ピッチ制御情報を一定期間毎に読み出して累算する。そして、サウンドプロセッサ２０３は、この累算結果を加工して、波形データのアドレスポインタとする。よって、ピッチ制御情報に大きな値が設定されれば、アドレスポインタのインクリメントは早く行われ、波形データの周波数が高くなり、ピッチ制御情報に小さな値が設定されれば、アドレスポインタのインクリメントは遅く行われ、波形データの周波数が低くなる。このようにして、サウンドプロセッサ２０３は、波形データのピッチ変換を行う。
さて、サウンドプロセッサ２０３は、与えられたピッチ制御情報に基づいて、アドレスポインタをインクリメントしながら、与えられた先頭アドレスが示す位置に格納されている波形データをＲＯＭ５１から読み出す。そして、サウンドプロセッサ２０３は、順次読み出される波形データに、エンベロープデータ及びボリューム情報を乗算して、音声信号を生成する。このようにして、第１の楽譜データ３０５が指示する楽器の音色、音の高さ（ピッチ）、及び、音量、の音声信号が生成され、音声信号出力端子４９に出力される。
一方、ＣＰＵ２０１は、読み出した楽曲制御情報に含まれるゲートタイムを管理している。従って、ＣＰＵ２０１は、ゲートタイムが経過した時に、該当する楽音の発音を終了するように、サウンドプロセッサ２０３に指示を出す。これを受けて、サウンドプロセッサ２０３は、指示された楽音の発音を終了する。
以上のようにして、第１の楽譜データ３０５に基づいて楽曲が再生され、テレビジョンモニタ９０のスピーカ（図示せず）から発音される。
さて、次に、図１の音楽ゲーム装置１の全体の処理の流れを、フローチャートを用いて説明する。
図２９は、図１の音楽ゲーム装置１の全体の処理の流れを示すフローチャートである。図２９に示すように、ステップＳ１にて、ＣＰＵ２０１は、システムの初期設定を実行する。ステップＳ２にて、ＣＰＵ２０１は、操作物１５０の状態情報を算出する。ステップＳ３にて、ＣＰＵ２０１は、ステップＳ２で算出した操作物１５０の状態情報をもとに、ゲーム処理を実行する。ステップＳ４にて、ＣＰＵ２０１は、「Ｍ」が所定値「Ｋ」より小さいかどうかを判断する。ＣＰＵ２０１は、「Ｍ」が所定値「Ｋ」以上である場合、ステップＳ５に進み、「Ｍ」に「０」を代入して、ステップＳ６に進む。一方、ＣＰＵ２０１は、「Ｍ」が所定値「Ｋ」より小さい場合、ステップＳ４からステップＳ６に進む。この「Ｍ」については、後述の説明の中で明らかになる。
ステップＳ６では、ＣＰＵ２０１は、ビデオ同期の割込み待ちかどうかを判断する。ＣＰＵ２０１は、テレビジョンモニタ９０の表示画面を更新するための画像情報を、垂直ブランキング期間の開始後にグラフィックプロセッサ２０２に与える（ステップＳ７）。従って、表示画面を更新するための演算処理が完了したら、ビデオ同期割込みがあるまで処理を進めないようにしている。ステップＳ６で「ＹＥＳ」であれば、即ち、ビデオ同期の割込み待ちであれば（ビデオ同期信号による割り込みがなければ）、同じステップＳ６に戻る。一方、ステップＳ６で「ＮＯ」であれば、即ち、ビデオ同期の割込み待ちでなければ（ビデオ同期信号による割り込みがあれば）、ステップＳ７に進む。ステップＳ７では、ＣＰＵ２０１は、ステップＳ３のゲーム処理の結果をもとに、ゲーム画面（図１１〜図１３参照）の生成に必要な画像情報を、垂直ブランキング期間に、グラフィックプロセッサ２０２に与える（画像表示処理）。
図３０は、図２９のステップＳ１の初期設定処理の流れを示すフローチャートである。図３０に示すように、ステップＳ１０にて、ＣＰＵ２０１は、ガイド用の楽譜データポインタを初期化する。ステップＳ１１にて、ＣＰＵ２０１は、ガイド用の実行待機カウンタを「０」にセットする。
ステップＳ１２にて、ＣＰＵ２０１は、楽曲用の楽譜データポインタを初期化する。ステップＳ１３にて、ＣＰＵ２０１は、楽曲用の実行待機カウンタを「ｔ」にセットする。
ステップＳ１４にて、ＣＰＵ２０１は、イメージセンサ４３の初期設定処理を実行する。ステップＳ１５にて、ＣＰＵ２０１は、各種フラグ及び各種カウンタを初期化する。
ステップＳ１６にて、ＣＰＵ２０１は、タイマ回路２１０を発音のための割込み源としてセットする。なお、割込み処理により、サウンドプロセッサ２０３による処理が実行されて、テレビジョンモニタ９０のスピーカから音声が出力される。
図３１は、図３０のステップＳ１４のセンサ初期設定処理の流れを示すフローチャートである。図３１に示すように、最初のステップＳ２０では、高速プロセッサ２００は、設定データとして、コマンド“ＣＯＮＦ”を設定する。ただし、このコマンド“ＣＯＮＦ”は、イメージセンサ４３に、高速プロセッサ２００からコマンドを送信する設定モードに入ることを知らせるためのコマンドである。そして、次のステップＳ２１にて、コマンド送信処理を実行する。
図３２は、図３１のステップＳ２１のコマンド送信処理の流れを示すフローチャートである。図３２に示すように、最初のステップＳ３０では、高速プロセッサ２００は、設定データ（ステップＳ２１の場合はコマンド“ＣＯＮＦ”）をレジスタデータ（Ｉ／Ｏポート）に設定し、次のステップＳ３１でレジスタ設定クロックＣＬＫ（Ｉ／Ｏポート）をローレベルに設定する。その後、ステップＳ３２で規定時間待機した後、ステップＳ３３で、レジスタ設定クロックＣＬＫをハイレベルに設定する。そして、さらにステップＳ３４での規定時間の待機の後、ステップＳ３５でレジスタ設定クロックＣＬＫを再びローレベルに設定する。
このようにして、図３３に示すように、規定時間の待機を行いながら、レジスタ設定クロックＣＬＫをローレベル，ハイレベルそしてローレベルとすることによって、コマンド（コマンドまたはコマンド＋データ）の送信処理が行われる。
図３１の説明に戻る。ステップＳ２２では、ピクセルモードを設定するとともに、露光時間の設定を行う。この実施の形態の場合、イメージセンサ４３は先に述べたようにたとえば３２ピクセル×３２ピクセルのＣＭＯＳイメージセンサであるため、設定アドレス“０”のピクセルモードレジスタに３２ピクセル×３２ピクセルであることを示す“０ｈ”を設定する。次のステップＳ２３において、高速プロセッサ２００は、レジスタ設定処理を実行する。
図３４は、図３１のステップＳ２３のレジスタ設定処理の流れを示すフローチャートである。図３４に示すように、最初のステップＳ４０では、高速プロセッサ２００は、設定データとして、コマンド“ＭＯＶ”＋アドレスを設定し、次のステップＳ４１で、図３２で先に説明したコマンド送信処理を実行して、それを送信する。次にステップＳ４２において、高速プロセッサ２００は、設定データとして、コマンド“ＬＤ”＋データを設定し、次のステップＳ４３でコマンド送信処理を実行して、それを送信する。そして、ステップＳ４４で、高速プロセッサ２００は、設定データとして、コマンド“ＳＥＴ”を設定し、次のステップＳ４５でそれを送信する。なお、コマンド“ＭＯＶ”は制御レジスタのアドレスを送信することを示すコマンドで、コマンド“ＬＤ”はデータを送信することを示すコマンドで、コマンド“ＳＥＴ”はデータをそのアドレスに実際に設定させるためのコマンドである。なお、この処理は、設定する制御レジスタが複数ある場合には、繰り返し実行される。
図３１の説明に戻る。ステップＳ２４では、設定アドレスを“１”（露光時間設定レジスタのローニブルのアドレスを示す）とし、最大露光時間を示す“ＦＦｈ”のローニブルデータ“Ｆｈ”を設定すべきデータとして設定する。そして、ステップＳ２５で図３４のレジスタ設定処理を実行する。同様にして、ステップＳ２６において、設定アドレスを“２”（露光時間設定レジスタのハイニブルのアドレスを示す）とし、最大露光時間を示す“ＦＦｈ”のハイニブルデータ“Ｆｈ”を設定すべきデータとして設定し、ステップＳ２７でレジスタ設定処理を実行する。
その後、ステップＳ２８で設定終了を示しかつイメージセンサ４３にデータの出力を開始させるためのコマンド“ＲＵＮ”を設定し、ステップＳ２９で送信する。このようにして、図３０に示すステップＳ１４でのセンサ初期設定処理が実行される。ただし、図３１〜図３４に示す具体例は、使用されるイメージセンサ４３の仕様に応じて、適宜変更され得るものである。
図３５は、図２９のステップＳ２の状態情報算出処理の流れを示すフローチャートである。図３５に示すように、ステップＳ５０にて、ＣＰＵ２０１は、ＡＤＣ２０８からデジタルのピクセルデータを取得する。このデジタルのピクセルデータは、イメージセンサ４３からのアナログのピクセルデータが、ＡＤＣ２０８により、デジタルに変換されたものである。
ステップＳ５１にて、注目点抽出処理が実行される。具体的には、ＣＰＵ２０１が、赤外発光ダイオード１５の発光時のピクセルデータと消灯時のピクセルデータとの差分を算出して、差分データを得る。そして、ＣＰＵ２０１は、その差分データの最大値を検出して、所定の閾値Ｔｈと比較する。さらに、ＣＰＵ２０１は、差分データの最大値が所定の閾値Ｔｈを超えている場合は、その最大値の差分データを持つピクセルの座標を、テレビジョンモニタ９０のスクリーン９１上の座標に変換し、操作物１５０の注目点の座標とする。
ステップＳ５２にて、ＣＰＵ２０１は、操作物１５０の注目点が、図２４のいずれの領域ａ１〜ａ４に存在するかを判定して、判定結果を配列Ｊ１［Ｍ］に格納する。
ステップＳ５３にて、ＣＰＵ２０１は、操作物１５０の注目点が、図２５のいずれの領域Ａ１〜Ａ４に存在するかを判定して、判定結果を配列Ｊ２［Ｍ］格納する。
図３６は、図３５のステップＳ５０のピクセルデータ群取得処理の流れを示すフローチャートである。図３６に示すように、最初のステップＳ６０で、ＣＰＵ２０１は、ピクセルデータ配列の要素番号としてＸに「−１」、Ｙに「０」を設定する。本実施の形態におけるピクセルデータ配列は、Ｘ＝０〜３１、Ｙ＝０〜３１の２次元配列であるが、前述のように各行の先頭ピクセルのデータとしてダミーデータが出力されるので、Ｘの初期値として「−１」が設定される。続くステップＳ６１では、ピクセルデータの取得処理を実行する。
図３７は、図３６のステップＳ６１のピクセルデータ取得処理の流れを示すフローチャートである。図３７に示すように、最初のステップＳ７０で、ＣＰＵ２０１は、イメージセンサ４３からのフレームステータスフラグ信号ＦＳＦをチェックし、ステップＳ７１でそのアップエッジ（ローレベルからハイレベルへの）が発生したかどうか判断する。そして、ステップＳ７１でフラグ信号ＦＳＦのアップエッジを検出すると、次のステップＳ７２において、ＣＰＵ２０１は、ＡＤＣ２０８に入力されてきたアナログのピクセルデータのデジタルデータへの変換の開始を指示する。その後、ステップＳ７３でイメージセンサ４３からのピクセルストローブＰＤＳをチェックし、ステップＳ７４でそのストローブ信号ＰＤＳのローレベルからハイレベルへのアップエッジが発生したかどうか判断する。
ステップＳ７４で“ＹＥＳ”が判断されると、ＣＰＵ２０１は、ステップＳ７５において、Ｘ＝−１かどうか、すなわち先頭ピクセルかどうか判断する。先に述べたように、各行の先頭ピクセルはダミーピクセルとして設定されているので、このステップＳ７５で“ＹＥＳ”が判断されると、次のステップＳ７７でそのときのピクセルデータを取得しないで、要素番号Ｘをインクリメントする。
ステップＳ７５で“ＮＯ”が判断されると、行の第２番目以降のピクセルデータであるので、ステップＳ７６およびＳ７８において、そのときのピクセルデータを取得し、テンポラリレジスタ（図示せず）にそのピクセルデータを格納する。その後、図３６のステップＳ６２に進む。
図３６のステップＳ６２では、テンポラリレジスタに格納されたピクセルデータをピクセルデータ配列Ｐ［Ｙ］［Ｘ］に代入する。
続くステップＳ６３でＸをインクリメントする。Ｘが３２に満たない場合、前述のＳ６１からＳ６３の処理を繰り返し実行する。Ｘが３２の場合、すなわちピクセルデータの取得が行の終端に到達した場合には、続くステップＳ６５でＸに「−１」を設定し、ステップＳ６６でＹをインクリメントし、次の行の先頭からピクセルデータの取得処理を繰り返す。
ステップＳ６７でＹが３２の場合、すなわちピクセルデータの取得がピクセルデータ配列Ｐ［Ｙ］［Ｘ］の終端に到達した場合、図３５のステップＳ５１に進む。
図３８は、図３５のステップＳ５１の注目点抽出処理の流れを示すフローチャートである。図３８に示すように、ステップＳ８０にて、ＣＰＵ２０１は、イメージセンサ４３からの、赤外発光ダイオード１５の点灯時のピクセルデータと、赤外発光ダイオード１５の消灯時のピクセルデータと、の差分を算出して、差分データを得る。ステップＳ８１にて、ＣＰＵ２０１は、配列Ｄｉｆ［Ｘ］［Ｙ］に、算出した差分データを代入する。ここで、実施の形態では、３２ピクセル×３２ピクセルのイメージセンサ４３を用いているため、Ｘ＝０〜３１、Ｙ＝０〜３１、である。
ステップＳ８２にて、ＣＰＵ２０１は、配列Ｄｉｆ［Ｘ］［Ｙ］の全要素をスキャンする。ステップＳ８３にて、ＣＰＵ２０１は、配列Ｄｉｆ［Ｘ］［Ｙ］の全要素の最大値を検出する。ＣＰＵ２０１は、その最大値が所定の閾値Ｔｈより大きい場合は、ステップＳ８５に進み、所定の閾値Ｔｈ以下の場合は、図２９のステップＳ４に進む（ステップＳ８４）。
ステップＳ８５にて、ＣＰＵ２０１は、その最大値の座標を基に、操作物１５０の注目点の座標（Ｘｃ，Ｙｃ）を算出する。ステップＳ８６にて、ＣＰＵ２０１は、回数Ｍの値を１つインクリメントする（Ｍ＝Ｍ＋１）。
ステップＳ８７にて、ＣＰＵ２０１は、イメージセンサ４３上の注目点の座標（Ｘｃ，Ｙｃ）を、テレビジョンモニタ９０のスクリーン９１上の座標（ｘｃ，ｙｃ）に変換する。ステップＳ８８にて、ＣＰＵ２０１は、Ｍ回目の注目点のｘ座標として、配列Ｐｘ［Ｍ］にｘｃを代入し、Ｍ回目の注目点のｙ座標として、配列Ｐｙ［Ｍ］にｙｃを代入する。
図３９は、図３８のステップＳ８５の注目点座標算出処理の流れを示すフローチャートである。図３９に示すように、ステップＳ１００にて、ＣＰＵ２０１は、「ｍ」及び「ｎ」にそれぞれ、ステップＳ８３で求めた最大値のＸ座標及びＹ座標を代入する。ステップＳ１０１にて、ＣＰＵ２０１は、「ｍ」を１つインクリメントする（ｍ＝ｍ＋１）。ＣＰＵ２０１は、差分データＤｉｆ［ｍ］［ｎ］が、所定の閾値Ｔｈより大きい場合は、ステップＳ１０３に進み、そうでない場合は、ステップＳ１０４に進む（ステップＳ１０２）。ステップＳ１０３にて、ＣＰＵ２０１は、「ｍｒ」にそのときの「ｍ」を代入する。このように、ステップＳ１０１〜Ｓ１０３を繰り返しながら、最大値からＸ軸の正方向にスキャンを実行して、値が所定の閾値Ｔｈを超える一番端の差分データのＸ座標を求める。
ステップＳ１０４にて、ＣＰＵ２０１は、「ｍ」に、ステップＳ８３で求めた最大値のＸ座標を代入する。ステップＳ１０５にて、ＣＰＵ２０１は、「ｍ」を１つデクリメントする。ＣＰＵ２０１は、差分データＤｉｆ［ｍ］［ｎ］が、所定の閾値Ｔｈより大きい場合は、ステップＳ１０７に進み、そうでない場合は、ステップＳ１０８に進む（ステップＳ１０６）。ステップＳ１０７にて、ＣＰＵ２０１は、「ｍｌ」にそのときの「ｍ」を代入する。このように、ステップＳ１０５〜Ｓ１０７を繰り返しながら、最大値からＸ軸の負方向にスキャンを実行して、値が所定の閾値Ｔｈを超える一番端の差分データのＸ座標を求める。
ステップＳ１０８にて、ＣＰＵ２０１は、Ｘ座標ｍｒとＸ座標ｍｌとの中心座標を算出して、それを、注目点のＸ座標（Ｘｃ）とする。ステップＳ１０９にて、ＣＰＵ２０１は、「ｍ」及び「ｎ」にそれぞれ、ステップＳ１０８で求めた「Ｘｃ」およびステップＳ８３で求めた最大値のＹ座標を代入する。ステップＳ１１０にて、ＣＰＵ２０１は、「ｎ」を１つインクリメントする（ｎ＝ｎ＋１）。ＣＰＵ２０１は、差分データＤｉｆ［ｍ］［ｎ］が、所定の閾値Ｔｈより大きい場合は、ステップＳ１１２に進み、そうでない場合は、ステップＳ１１３に進む（ステップＳ１１１）。ステップＳ１１２にて、ＣＰＵ２０１は、「ｍｄ」にそのときの「ｎ」を代入する。このように、ステップＳ１１０〜Ｓ１１２を繰り返しながら、最大値からＹ軸の正方向にスキャンを実行して、値が所定の閾値Ｔｈを超える一番端の差分データのＹ座標を求める。
ステップＳ１１３にて、ＣＰＵ２０１は、「ｎ」に、ステップＳ８３で求めた最大値のＹ座標を代入する。ステップＳ１１４にて、ＣＰＵ２０１は、「ｎ」を１つデクリメントする。ＣＰＵ２０１は、差分データＤｉｆ［ｍ］［ｎ］が、所定の閾値Ｔｈより大きい場合は、ステップＳ１１６に進み、そうでない場合は、ステップＳ１１７に進む（ステップＳ１１５）。ステップＳ１１６にて、ＣＰＵ２０１は、「ｍｕ」にそのときの「ｎ」を代入する。このように、ステップＳ１１４〜Ｓ１１６を繰り返しながら、最大値からＹ軸の負方向にスキャンを実行して、値が所定の閾値Ｔｈを超える一番端の差分データのＹ座標を求める。
ステップＳ１１７にて、ＣＰＵ２０１は、Ｙ座標ｍｄとＹ座標ｍｕとの中心座標を算出して、それを、注目点のＹ座標（Ｙｃ）とする。以上のようにして、操作物１５０の注目点の座標（Ｘｃ，Ｙｃ）が算出される。
図４０は、図２９のステップＳ３のゲーム処理の流れを示すフローチャートである。図４０に示すように、ステップＳ１２０にて、ＣＰＵ２０１は、楽曲終了フラグをチェックして（図４３のステップＳ１９６参照）、楽曲終了であれば、ゲーム処理を終了し、楽曲終了でなければ、ステップＳ１２１へ進む
ステップＳ１２１にて、ＣＰＵ２０１は、操作物１５０の注目点のｘ座標Ｐｘ［Ｍ］及びｙ座標Ｐｙ［Ｍ］を、カーソル１０５のスクリーン９１上の表示座標として登録する。
ＣＰＵ２０１は、ステップＳ１２２とステップＳ１４４との間の処理を２回繰り返す。ここで、「ｊ」は、ガイド表示番号Ｊを意味する（図４３参照）。
ステップＳ１２３にて、ＣＰＵ２０１は、ガイド開始フラグＧＦ［ｊ］をチェックする（図４３のステップＳ１９４参照）。ＣＰＵ２０１は、ガイド開始フラグＧＦ［ｊ］がオンであれば、ステップＳ１２５へ進み、オフであれば、ステップＳ１４４へ進む（ステップＳ１２４）。ステップＳ１２５にて、ＣＰＵ２０１は、フレームカウンタＣ［ｊ］をチェックする。ＣＰＵ２０１は、フレームカウンタＣ［ｊ］が「０」より大きい場合は、ステップＳ１２８に進み、フレームカウンタＣ［ｊ］が「０」の場合は、ステップＳ１２７に進む（ステップＳ１２６）。ステップＳ１２７にて、ＣＰＵ２０１は、ノートナンバＮＮ［ｊ］に従って、位置ガイドＧのアニメーション情報を登録するとともに、方向ガイドｇあるいは経路ガイドｒｇのアニメーション情報を登録する。フレームカウンタＣ［ｊ］が「０」の場合にのみ、このようなアニメーション情報の登録を行うのは、一旦、アニメーション情報の登録をすれば、その後は、その登録情報に従ってアニメーションが実行されるため、アニメーションの開始時のみ登録するようにしている。
ステップＳ１２８にて、ＣＰＵ２０１は、ノートナンバＮＮ［ｊ］をチェックして、カーソル１０５の旋回を指示するノートナンバである場合は（図２０（ｂ）及び図２０（ｃ）参照）、ステップＳ１３１に進み、それ以外のノートナンバであれば（図２０（ａ）参照）、ステップＳ１２９に進む。ステップＳ１２９にて、ＣＰＵ２０１は、フレームカウンタＣ［ｊ］をチェックする。ＣＰＵ２０１は、フレームカウンタ［ｊ］が、規定フレーム数ｆ１以上であれば、ステップＳ１３１へ進み、そうでなければ、ステップＳ１４１に進む（ステップＳ１３０）。ステップＳ１３１にて、ＣＰＵ２０１は、カーソル１０５の操作が、ガイド（位置ガイドＧ／方向ガイドｇ／経路ガイドｒｇ）に適合しているか否かを判定する（成功判定）。
なお、ステップＳ１２８及びステップＳ１３１から明らかなように、ノートナンバＮＮ［ｊ］がカーソル１０５の旋回を指示するノートナンバである場合には、フレームカウンタＣ［ｊ］に関係なく、位置ガイドＧ及び経路ガイドｒｇの表示開始時から（フレームカウンタＣ［ｊ］が「０」）、カーソル１０５の操作の成功判定を行っている。一方、ノートナンバＮＮ［ｊ］がカーソル１０５の旋回を指示するノートナンバ以外である場合は、位置ガイドＧ及び方向ガイドｇの表示開始時から（フレームカウンタＣ［ｊ］が「０」）、規定フレーム数ｆ１（例えば。３０フレーム）経過した後に、カーソル１０５の操作の成功判定を行っている（図２８参照）。
さて、ＣＰＵ２０１は、ステップＳ１３１での判定の結果、カーソル１０５の操作が成功であった場合は、ステップＳ１３３に進み、成功でない場合は、ステップＳ１４０に進む（ステップＳ１３２）。ステップＳ１３３にて、ＣＰＵ２０１は、ノートナンバＮＮ［ｊ］及びダンス速度フラグＤＦを参照して（図４３のステップＳ１９３、ステップＳ１９０及びステップＳ１９２参照）、ダンスアニメーション情報の登録を行う。また、操作成功の場合、背景１１０をスクロールすべく、ＣＰＵ２０１は、ノートナンバＮＮ［ｊ］及びダンス速度フラグＤＦを参照して、全景スクリーン１４０の中心位置の変更、並びに、配列ＰＡ及び配列ＣＡの該当データの変更を実行する。さらに、ＣＰＵ２０１は、操作成功の際に使用する位置ガイドＧのアニメーションテーブル格納位置情報を登録する。
ステップＳ１３４にて、ＣＰＵ２０１は、ノートナンバＮＮ［ｊ］をチェックして、カーソル１０５の旋回を指示するノートナンバである場合は、ステップＳ１３７に進み、それ以外のノートナンバであれば、ステップＳ１３５に進む。ステップＳ１３５にて、ＣＰＵ２０１は、フレームカウンタＣ［ｊ］をチェックする。ＣＰＵ２０１は、フレームカウンタ［ｊ］が、規定フレーム数ｆ２以上であれば、ステップＳ１３７へ進み、そうでなければ、ステップＳ１３８に進む（ステップＳ１３６）。ステップＳ１３７にて、ＣＰＵ２０１は、スコアＳに「３」を加える。一方、ステップＳ１３８にて、スコアＳに「１」を加える。
なお、ステップＳ１３７では、スコアＳに「３」を加え、ステップＳ１３８では、スコアＳに「１」を加えているの次の理由による。位置ガイドＧ及び方向ガイドｇの表示開始時から（フレームカウンタＣ［ｊ］が「０」）、規定フレーム数ｆ２（例えば、５０フレーム）経過した後の所定期間内（例えば、１０フレーム）に、カーソル１０５が位置ガイドＧの領域に存在した場合は、ベストなタイミングでカーソル１０５が操作されたとして、「３」を加える。一方、規定フレーム数ｆ１経過時から、規定フレーム数ｆ２経過前に、カーソル１０５が位置ガイドＧの領域に存在した場合は、通常の成功であるとして、「１」を加える。また、位置ガイドＧ及び経路ガイドｒｇ（カーソル１０５の旋回を指示するガイド）に適合した操作が行われた場合は、一律に「３］を加える。
さて、ステップＳ１３９にて、ＣＰＵ２０１は、フレームカウンタＣ［ｊ］をチェックする。ＣＰＵ２０１は、フレームカウンタＣ［ｊ］が、規定フレーム数ｆ３（例えば、６０フレーム）に等しければ、ステップＳ１４２へ進み、そうでなければ、ステップＳ１４１に進む（ステップＳ１４０）。ステップＳ１４１にて、ＣＰＵ２０１は、フレームカウンタＣ［ｊ］を１つインクリメントする。一方、ステップＳ１４２にて、ＣＰＵ２０１は、フレームカウンタＣ［ｊ］に「０」をセットする。ステップＳ１４３にて、ＣＰＵ２０１は、ガイド開始フラグＧＦ［ｊ］をオフにする。なお、規定フレーム数ｆ３は、成功判定の終了時を定めている。
図４１は、割込み処理の流れを示すフローチャートである。図４１に示すように、ステップＳ１５０にて、ＣＰＵ２０１は、楽曲の再生処理を実行する。ステップＳ１５１にて、ＣＰＵ２０１は、ガイド（位置ガイドＧ、方向ガイドｇ、経路ガイドｒｇ）の登録処理を実行する。
図４２は、図４１のステップＳ１５０の楽曲再生処理の流れを示すフローチャートである。図４２に示すように、ステップＳ１６０にて、ＣＰＵ２０１は、楽曲用の実行待機カウンタをチェックする。楽曲用の実行待機カウンタの値が「０」ならば、ステップＳ１６２へ進み、「０」でないならば、ステップＳ１７０へ進む（ステップＳ１６１）。ステップＳ１７０にて、ＣＰＵ２０１は、楽曲用の実行待機カウンタをデクリメントする。
一方、ステップＳ１６２にて、ＣＰＵ２０１は、楽曲用の楽譜データポインタの指すコマンドを読み出して解釈する。コマンドがノートオンであれば、ステップＳ１６４に進む（ステップＳ１６３）。一方、コマンドが、ノートオンでなければ、即ち、待機であれば、ステップＳ１６５に進む。ステップＳ１６５にて、ＣＰＵ２０１は、楽曲用の実行待機カウンタに待機時間をセットする。
さて、ステップＳ１６４にて、ＣＰＵ２０１は、サウンドプロセッサ２０３に、読み出したノートナンバに応じた発音を開始させる。ステップＳ１６６にて、ＣＰＵ２０１は、楽曲用の楽譜データポインタをインクリメントする。
ステップＳ１６７にて、ＣＰＵ２０１は、発音中のノートナンバに対する残りの発音時間をチェックする。残りの発音時間が「０」であれば、ステップＳ１６９に進み、そうでなければ、図４１のステップＳ１５１へ進む（ステップＳ１６８）。ステップＳ１６９にて、ＣＰＵ２０１は、サウンドプロセッサ２０３に対して、残りの発音時間が「０」のノートナンバの発音終了処理を実行させる。
図４３は、図４１のステップＳ１５１のガイド登録処理の流れを示すフローチャートである。図４３に示すように、ステップＳ１８０にて、ＣＰＵ２０１は、ガイド用の実行待機カウンタをチェックする。ガイド用の実行待機カウンタの値が「０」ならば、ステップＳ１８２へ進み、「０」でないならば、ステップＳ１９８へ進む（ステップＳ１８１）。ステップＳ１９８にて、ＣＰＵ２０１は、ガイド用の実行待機カウンタをデクリメントする。
一方、ステップＳ１８２にて、ＣＰＵ２０１は、ガイド用の楽譜データポインタの指すコマンドを読み出して解釈する。ＣＰＵ２０１は、コマンドがノートオンであれば、ステップＳ１８４に進む（ステップＳ１８３）。一方、ＣＰＵ２０１は、コマンドが、ノートオンでなければ、即ち、待機であれば、ステップＳ１９７に進む。ステップＳ１９７にて、ＣＰＵ２０１は、ガイド用の実行待機カウンタに待機時間をセットする。
さて、ＣＰＵ２０１は、ノートナンバが楽曲終了を意味するものであれば、ステップＳ１９６に進み、そうでなければ、ステップＳ１８５に進む（ステップＳ１８４）。ステップＳ１９６にて、ＣＰＵ２０１は、楽曲終了フラグをオンにする。
一方、ＣＰＵ２０１はノートナンバが楽曲開始を意味するものであれば、ステップＳ１９５に進み、そうでなければ、ステップＳ１８６に進む（ステップＳ１８５）。ＣＰＵ２０１は、ガイド表示番号Ｊが、「１」であれば、ステップＳ１８８にて、ガイド表示番号Ｊを「０」とし、ガイド表示番号Ｊが、「１」でなければ（「０」であれば）、ステップＳ１８７にて、ガイド表示番号Ｊを「１」とする。なお、ある位置ガイドＧによる案内と他の位置ガイドＧによる案内とが、違うタイミングで開始されるが、ある期間重複して実行される場合もあるため、ガイド表示番号Ｊを規定して、図２９のステップＳ３のゲーム処理を実行している。
さて、ＣＰＵ２０１は、ノートナンバが、速い速度のダンスアニメーションを行うことを指示するノートナンバであれば、ステップＳ１９０に進み、そうでなければ、ステップＳ１９１に進む（ステップＳ１８９）。ステップＳ１９０にて、ＣＰＵ２０１は、ダンス速度フラグＤＦを「１」（速い速度のダンスアニメーション）にセットする。
一方、ＣＰＵ２０１は、ノートナンバが、遅い速度のダンスアニメーションを行うことを指示するノートナンバであれば、ステップＳ１９２に進み、そうでなければ、ステップＳ１９３に進む（ステップＳ１９１）。ステップＳ１９２にて、ＣＰＵ２０１は、ダンス速度フラグＤＦを「０」（遅い速度のダンスアニメーション）にセットする。
さて、ノートナンバが、楽曲終了を表すノートナンバ、楽曲の開始を表すノートナンバ、速い速度のダンスアニメーションを表すノートナンバ、及び、遅い速度のダンスアニメーションを表すノートナンバ、のいずれでもない場合は、そのノートナンバは、ガイドの種類を表すノートナンバ（図２０（ａ）〜図２０（ｃ））であるから、ＣＰＵ２０１は、ステップＳ１９３にて、配列ＮＮ［Ｊ］に、そのノートナンバを代入する。ステップＳ１９４にて、ＣＰＵ２０１は、ガイド開始フラグＧＦ［Ｊ］をオンにする。
ステップＳ１９５にて、ＣＰＵ２０１は、ガイド用の楽譜データポインタをインクリメントする。
さて、次に、方向ガイドｇの他の例を説明する。図４４は、方向ガイドｇの他の例を適用したゲーム画面の例示図である。図４４に示すように、位置ガイドＧ１から位置ガイドＧ２へ延びるように、帯状の方向ガイドｇ２０が表示される。この方向ガイドｇ２０は、時間の経過とともに、位置ガイドＧ１から位置ガイドＧ２まで延びる。この方向ガイドｇ２０が延びる方向によって、カーソル１０５を操作する方向が案内される。また、方向ガイドｇ２０が位置ガイドＧ２に到達した時から所定時間を、カーソル１０５の操作の成功判定の期間とすれば、方向ガイドｇ２０により、カーソル１０５の操作タイミングを案内することもできる。なお、方向ガイドｇ２０は、位置ガイドＧ１から位置ガイドＧ２までの経路の色を徐々に変化させることにより表現されている、ということもできる。
図４５は、方向ガイドｇのさらに他の例を適用したゲーム画面の例示図である。図４５に示すように、ゲーム画面には、位置ガイドＧと他の位置ガイドＧとの間に、方向ガイドｇ３０が表示される。この方向ガイドｇ３０は、５つの部分経路ｇ３１〜ｇ３５からなる。そして、図４５の例では、位置ガイドＧ１から位置ガイドＧ２へ向かって順番に、５つの部分経路ｇ３１〜ｇ３５の色が変化する。なお、色の変化は、ハッチングで示している。このようにすることで、部分経路ｇ３１〜ｇ３５の色の変化の方向により、カーソル１０５の操作方向を案内できる。また、この例において、カーソル１０５の移動位置を案内する位置ガイドＧ２に隣接した部分経路ｇ３５の色が変化した時から所定時間を、カーソル１０５の操作の成功判定の期間とすれば、方向ガイドｇ３０により、カーソル１０５の操作タイミングを案内することもできる。
図４６は、方向ガイドｇのさらに他の例を適用したゲーム画面の例示図である。図４６に示すように、ゲーム画面には、位置ガイドＧ１と位置ガイドＧ２との間に、方向ガイドｇ４０が表示される。この方向ガイドｇ４０は、時間の経過とともに、位置ガイドＧ１から位置ガイドＧ２まで移動する。この方向ガイドｇ４０が移動する方向によって、カーソル１０５を操作する方向が案内される。また、方向ガイドｇ４０が位置ガイドＧ２に到達した時から所定時間を、カーソル１０５の操作の成功判定の期間とすれば、方向ガイドｇ４０により、カーソル１０５の操作タイミングを案内することもできる。
さて、以上のように本実施の形態では、カーソル１０５の操作がガイド（位置ガイドＧ、方向ガイドｇ、経路ガイドｒｇ）に適合している場合に、ガイドによる案内に応じて画像（上記例では、ダンスオブジェクト１０６及び背景１１０）の表示が制御される。この場合、ガイドによる案内に適合してカーソル１０５の操作が行われているため、カーソル１０５の操作に応じて画像の表示が制御されることになる。つまり、カーソル１０５は操作物１５０と連動しているため、操作物１５０の操作に応じて画像の表示が制御される。また、ストロボスコープにより間欠的に光が照射される操作物１５０を撮像ユニット１３により撮影して、操作物１５０の状態情報を求めている。このため、操作物１５０の状態情報を求めるために、操作物１５０に電源により駆動する回路を内蔵する必要がない。さらに、この音楽ゲーム装置１は、楽曲を自動演奏する。
以上の結果、プレイヤ９４が関与することなく楽曲を自動演奏しながらも、簡易な構成の操作物１５０をプレイヤ９４が操作することにより、楽曲とともに、操作物１５０の操作に追従した画像を楽しむことができる。
また、楽曲に基づくタイミングでガイドが制御されるため、プレイヤ９４が、ガイドに従ってカーソル１０５を操作すれば、操作物１５０の操作も楽曲に合ったものとなる。従って、プレイヤ９４は、楽曲に合った操作物１５０の操作を楽しむことができる。
ここで、例えば、高速プロセッサ２００は、ノートナンバ「５５」及び「６７」に対応して、背景１１０を左にスクロールさせ、また、ダンスオブジェクト１０６を反時計回りに回転させるダンスアニメーション情報及びダンスアニメーションテーブルを用意する。また、例えば、高速プロセッサ２００は、ノートナンバ「４５」及び「６４」に対応して、背景１１０を右にスクロールさせ、また、ダンスオブジェクト１０６を時計回りに回転させるダンスアニメーション情報及びダンスアニメーションテーブルを用意する。また、例えば、高速プロセッサ２００は、ノートナンバ「７６」及び「７７」に対応して、背景１１０を下にスクロールさせ、また、ダンスオブジェクト１０６を反時計回りに回転させるダンスアニメーション情報及びダンスアニメーションテーブルを用意する。また、例えば、高速プロセッサ２００は、ノートナンバ「６５」及び「７４」に対応して、背景１１０を上にスクロールさせ、また、ダンスオブジェクト１０６を時計回りに回転させるダンスアニメーション情報及びダンスアニメーションテーブルを用意する。また、例えば、ノートナンバ「５３」に対応して、ダンスオブジェクト１０６を時計回りに大きく回転させるダンスアニメーション情報及びダンスアニメーションテーブルを用意する。また、例えば、ノートナンバ「５７」に対応して、ダンスオブジェクト１０６を反時計回りに大きく回転させるダンスアニメーション情報及びダンスアニメーションテーブルを用意する。
なお、このようなノートナンバ（図２０（ａ）〜図２０（ｃ）参照）は、ガイドの表示を制御するノートナンバであるため、背景１１０及びダンスオブジェクト１０６は、ガイドに応じて制御されるということになる。さらに言い換えると、背景１１０及びダンスオブジェクト１０６は、操作物１５０の操作に応じて制御されるということになる。
また、本実施の形態では、位置ガイドＧは、カーソル１０５の移動位置及び操作タイミングを案内する。そして、高速プロセッサ２００は、操作物１５０によるカーソル１０５の操作が、位置ガイドＧの案内に適合したときに、位置ガイドＧが案内する移動位置の方向に対応して、画像（上記例では、ダンスオブジェクト１０６及び背景１１０）の表示を制御する。
従って、プレイヤ９４が、操作物１５０を操作して、カーソル１０５を、位置ガイドＧが案内する操作タイミングで、位置ガイドＧが案内する移動位置に移動させた場合に、位置ガイドＧが案内する移動位置の方向に対応して、画像の表示が制御される。その結果、楽曲とともに、操作物１５０の操作に連動するカーソル１０５の移動に追従した画像を楽しむことができる（図１２参照）。
さらに、本実施の形態では、経路ガイドｒｇは、カーソル１０５の移動経路、移動方向、及び、操作タイミングを案内する。従って、プレイヤ９４が、操作物１５０を操作して、カーソル１０５を、経路ガイドｒｇが案内する操作タイミングで、経路ガイドｒｇが案内する移動方向に、経路ガイドｒｇが案内する移動経路に沿って移動させた場合に、経路ガイドｒｇに応じて、画像（上記例では、ダンスオブジェクト）の表示が制御される。その結果、楽曲とともに、操作物１５０の操作に連動するカーソル１０５の移動に応じた画像を楽しむことができる（図１３参照）。
さらに、本実施の形態によれば、操作物１５０の注目点の位置が、位置ガイドＧが案内する期間内に、位置ガイドＧが案内する領域内に存在する場合に、操作物１５０に連動するカーソル１０５の操作が、位置ガイドＧの案内に適合していると判断される（図２４参照）。また、操作物１５０の注目点の位置が、経路ガイドｒｇが案内する期間内に、経路ガイドｒｇが案内する複数の所定領域を、経路ガイドｒｇが案内する所定の順序で移動した場合に、操作物１５０に連動するカーソル１０５の操作が、経路ガイドｒｇの案内に適合していると判断される（図２５参照）。以上のように、簡易な処理で算出できる操作物１５０の注目点の位置により、カーソル１０５の操作の的確性を判断できる。
さらに、本実施の形態では、位置ガイドＧは、スクリーン９１上の予め定められた複数の位置の各々に表示される。そして、高速プロセッサ２００は、位置ガイドＧの形態を、楽曲にもとづくタイミングで変化させる（図１２の例では、花が開くアニメーション）。従って、プレイヤ９４は、位置ガイドＧの形態の変化により、カーソル１０５を移動すべき位置及び方向を容易に認識できる。
さらに、本実施の形態では、方向ガイドｇ及び経路ガイドｒｇは、スクリーン９１上の第１の予め定められた位置から第２の予め定められた位置への移動が視覚的に認識できる表示により表現される。このように、位置ガイドＧに加えて、方向ガイドｇおよび経路ガイドｒｇによっても、カーソル１０５の操作を案内している。従って、プレイヤ９４は、カーソル１０５を移動すべき方向及び経路をより明確に認識できる。より具体的には次の通りである。
方向ガイドｇ及び経路ガイドｒｇは、スクリーン９１上の第１の予め定められた位置を始点とし、第２の予め定められた位置を終点とする経路上に配置される複数のオブジェクト（図１２及び図１３の例では、球の図形）の形態の変化により表現される。この場合、プレイヤ９４は、複数のオブジェクトの形態の変化により、カーソル１０５を移動すべき方向及び経路を容易に認識できる。
また、方向ガイドｇは、スクリーン９１上の第１の予め定められた位置から第２の予め定められた位置へのオブジェクト（図４６の例では、鳥の図形）の移動により表現される。この場合、プレイヤ９４は、オブジェクトの移動により、カーソル１０５を移動すべき方向及び経路を容易に認識できる。
また、方向ガイドｇは、スクリーン９１上の第１の予め定められた位置を始点とし、第２の予め定められた位置を終点とする経路の形態の変化により表現される（図４４及び図４５参照）。この場合、プレイヤ９４は、経路の形態の変化により、カーソル１０５を移動すべき方向及び経路を容易に認識できる。
さらに、本実施の形態では、高速プロセッサ２００は、操作物１５０の状態情報として、速さ情報、移動方向情報、移動距離情報、速度ベクトル情報、加速度情報、移動軌跡情報、面積情報、若しくは、位置情報、のいずれか、又は、それらの２以上の組み合わせ、を算出できる。このように、操作物１５０によるカーソル１０５の操作が、ガイド（位置ガイドＧ、方向ガイドｇ、経路ガイドｒｇ）に適合しているか否かを判断する際の操作物１５０の状態情報として、様々な情報を利用できるため、ガイドの表現の自由度が大きくなり、ひいては、ゲーム内容の設計の自由度も大きくなる。
さらに、本実施の形態では、反射シート１５５を取り付けた操作物１５０に間欠的に赤外光を照射して、これを撮影することにより、操作物１５０の状態情報を求めることができる。このため、操作物１５０の状態情報を求めるために、操作物１５０に電源により駆動する回路を内蔵する必要がない。よって、操作物１５０の操作性及び信頼性の向上を図ることができ、また、コストの低減を図ることができる。
なお、本発明は、上記の実施の形態に限られるものではなく、その要旨を逸脱しない範囲で種々の態様において実施することが可能であり、例えば、以下のような変形も可能である。
（１）実施の形態では、操作物１５０に追従して制御される画像（追従画像）の例として、ダンスオブジェクト１０６及び背景１１０を挙げた。ただし、本発明は、これに限定されず、追従画像として任意のオブジェクトを選択できる。また、背景１１０のスクロールにより、ダンスオブジェクト１０６の移動を表現するのではなく、ダンスオブジェクト１０６自体を上下左右に移動させることもできる。
（２）実施の形態では、位置ガイドＧ及び方向ガイドｇの双方により、カーソル１０５の直線操作を案内したが、いずれか一方により案内することもできる。方向ガイドｇのみによりカーソル１０５の操作を案内する場合は、静止画の位置ガイドＧを、方向ガイドｇの始点と終点とに配置することが好ましい。また、位置ガイドＧ及び経路ガイドｒｇの双方により、カーソル１０５の旋回操作を案内したが、経路ガイドｒｇのみにより案内することもできる。また、ガイド（位置ガイドＧ、方向ガイドｇ、経路ガイドｒｇ）を、アニメーションにより表現したが、本発明は、これに限定されない。また、ガイドの態様は、上記したものに限定されるものではない。
（３）実施の形態では、操作物として、スティック１５２および反射ボール１５１からなる操作物１５０を採用したが、反射体を具備するのもであれば、操作物の形態はこれに限定されない。
（４）実施の形態では、図２３（ａ）〜図２３（ｄ）に示すようにして、操作物１５０の注目点の座標を算出したが、所定の閾値Ｔｈを超える最大輝度値を持つピクセルの座標を（図３８のステップＳ８３参照）、スクリーン９１上の座標に変換して、これを注目点の座標とすることもできる。
（５）図６の高速プロセッサ２００として、任意の種類のプロセッサを使用できるが、本件出願人が既に特許出願している高速プロセッサを用いることが好ましい。この高速プロセッサは、例えば、特開平１０−３０７７９０号公報およびこれに対応するアメリカ特許第６，０７０，２０５号に詳細に開示されている。
以上、本発明を実施例により詳細に説明したが、当業者にとっては、本発明が本願中に説明した実施例に限定されるものではないということは明らかである。本発明は、特許請求の範囲の記載により定まる本発明の趣旨及び範囲を逸脱することなく修正及び変更態様として実施することができる。従って、本願の記載は、例示説明を目的とするものであり、本発明に対して何ら制限的な意味を有するものではない。
【図１】
0004701411.tif 000002
【図２】
0004701411.tif 000003
【図３】
0004701411.tif 000004
【図４】
0004701411.tif 000005
【図５】
0004701411.tif 000006
【図６】
0004701411.tif 000007
【図７】
0004701411.tif 000008
【図８】
0004701411.tif 000009
【図９】
0004701411.tif 000010
【図１０】
0004701411.tif 000011
【図１１】
0004701411.tif 000012
【図１２】
0004701411.tif 000013
【図１３】
0004701411.tif 000014
【図１４】
0004701411.tif 000015
【図１５】
0004701411.tif 000016
【図１６】
0004701411.tif 000017
【図１７】
0004701411.tif 000018
【図１８】
0004701411.tif 000019
【図１９】
0004701411.tif 000020
【図２０】
0004701411.tif 000021
【図２１】
0004701411.tif 000022
【図２２】
0004701411.tif 000023
【図２３】
0004701411.tif 000024
【図２４】
0004701411.tif 000025
【図２５】
0004701411.tif 000026
【図２６】
0004701411.tif 000027
【図２７】
0004701411.tif 000028
【図２８】
0004701411.tif 000029
【図２９】
0004701411.tif 000030
【図３０】
0004701411.tif 000031
【図３１】
0004701411.tif 000032
【図３２】
0004701411.tif 000033
【図３３】
0004701411.tif 000034
【図３４】
0004701411.tif 000035
【図３５】
0004701411.tif 000036
【図３６】
0004701411.tif 000037
【図３７】
0004701411.tif 000038
【図３８】
0004701411.tif 000039
【図３９】
0004701411.tif 000040
【図４０】
0004701411.tif 000041
【図４１】
0004701411.tif 000042
【図４２】
0004701411.tif 000043
【図４３】
0004701411.tif 000044
【図４４】
0004701411.tif 000045
【図４５】
0004701411.tif 000046
【図４６】
0004701411.tif 000047