説明

音楽ゲーム装置、音楽ゲームシステム、操作物、音楽ゲームプログラム、及び、音楽ゲーム方法

カーソル(105:図12)の操作が、ガイド(G1〜G4,g1〜g5:図12)に適合している場合に、カーソルの操作方向に応じて、ダンスオブジェクト(106:図12)及び背景(110:図12)の表示が制御される。ストロボスコープにより間欠的に赤外光が照射される操作物(150:図1)を撮像ユニット(13:図1)により撮影して、操作物のスクリーン(91:図1)上の位置を求め、これをカーソルの座標とする。ゲーム開始と同時に、プレイヤ(94:図1)と無関係に楽曲が自動演奏される。

【発明の詳細な説明】
【技術分野】
本発明は、操作物の動きに追従した画像を表示する音楽ゲーム装置及びその関連技術に関する。
【背景技術】
特許文献1(特開2002−263360号公報)には、演奏指揮ゲーム装置が開示されている。この演奏指揮ゲーム装置では、指揮棒コントローラの先端に投光ユニットが設けられるとともに、モニタの下部に受光ユニットが設けられる。このような構成により、指揮棒コントローラの動きを検出する。
ゲームが開始されると、指揮棒コントローラを振る方向及びタイミングを指示する操作案内画像が、モニタに表示されるとともに、演奏音が出力される。この演奏音は、指揮棒コントローラの操作に関係なく出力される。そして、プレイヤが、指示された方向及びタイミングで、指揮棒コントローラを操作したときにのみ、指揮棒反応音が出力される。この指揮棒反応音は、ある演奏パートを所定の長さで分断したものである。従って、プレイヤが、指示された方向及びタイミングで、指揮棒コントローラを操作するたびに、対応する指揮棒反応音が出力される。
特許文献2(特開平10−143151号公報)には、指揮装置が開示されている。この指揮装置では、マウスを指揮棒のように操作することで、マウスが描く軌跡からテンポ、アクセント及び強弱などの音楽パラメータを算出する。そして、算出したこれらの音楽パラメータを、出力する音楽や画像に反映させる。例えば、汽車の動画像を表示する際に、汽車のスピードを、算出したテンポに追従させ、スピードの変化を、アクセントに追従させ、汽車の煙の量を、強弱に追従させる。
上述のように、特許文献1の演奏指揮ゲーム装置は、プレイヤが演奏を行うことを主目的とした装置であることは明らかである。また、特許文献2の指揮装置では、プレイヤが演奏を行うことを主目的とするため、マウスの移動情報を音楽パラメータに変換して、この音楽パラメータを音楽及び画像に反映させている。
このように、プレイヤが演奏を行うことを主目的とする従来の装置では、表示される画像(上記の例では、汽車)に面白味がなく、プレイヤが画像を楽しむ、ということが重視されていない。
さらに、プレイヤによる操作物である指揮棒コントローラやマウスについては、次のことが言える。特許文献1の指揮棒コントローラは、投光ユニットを備えているため、電子回路を備えることが必要となる。従って、指揮棒コントローラのコストが高くなるし、また、故障の原因となる。さらに、操作性が低くなる。特に、指揮棒コントローラは、動かされるものであるため、電子回路を備えることなく、簡易な構成とすることが好ましい。また、特許文献2のマウスでは、平面上での操作のみが可能であり、操作の制約が大きいし、また、特許文献1の指揮棒コントローラと同様の問題もある。
【発明の開示】
そこで、本発明は、プレイヤが関与することなく楽曲を自動演奏しながらも、簡易な構成の操作物をプレイヤが操作することにより、楽曲とともに、操作に追従した画像を楽しむことができる音楽ゲーム装置及びその関連技術を提供することを目的とする。
本発明の観点によると、音楽ゲーム装置は、楽曲を自動演奏する音楽ゲーム装置であって、プレイヤによって操作される操作物に、予め定められた周期で、光を照射するストロボスコープと、前記ストロボスコープの発光時及び消灯時のそれぞれにおいて、前記操作物を撮影して、発光時画像信号及び消灯時画像信号を生成する撮像ユニットと、前記発光時画像信号と前記消灯時画像信号との差分信号を生成する差分信号生成ユニットと、前記差分信号に基づいて、前記操作物の状態情報を算出する状態情報算出ユニットと、前記操作物に連動するカーソルの操作のためのガイドの表示を、前記楽曲に基づくタイミングで制御するガイド制御ユニットと、前記カーソルの表示を、前記操作物の前記状態情報に基づいて制御するカーソル制御ユニットと、前記操作物による前記カーソルの操作が、前記ガイドに適合したときに、前記ガイドによる案内に応じて、画像の表示を制御する追従画像制御ユニットと、を備え、前記追従画像制御ユニットは、前記操作物の前記状態情報及び前記ガイドに関する情報に基づいて、前記操作物による前記カーソルの操作が、前記ガイドに適合しているか否かを判断する。
この構成によれば、カーソルの操作がガイドに適合している場合に、ガイドによる案内に応じて画像の表示が制御される。この場合、ガイドによる案内に適合してカーソルの操作が行われているため、カーソルの操作に応じて画像の表示が制御されることになる。つまり、カーソルは操作物と連動しているため、操作物の操作に応じて画像の表示が制御される。また、ストロボスコープにより間欠的に光が照射される操作物を撮像ユニットにより撮影して、操作物の状態情報を求めている。このため、操作物の状態情報を求めるために、操作物に電源により駆動する回路を内蔵する必要がない。さらに、この音楽ゲーム装置は、楽曲を自動演奏する。
以上の結果、プレイヤが関与することなく楽曲を自動演奏しながらも、簡易な構成の操作物をプレイヤが操作することにより、楽曲とともに、操作物の操作に追従した画像を楽しむことができる。
また、楽曲に基づくタイミングでガイドが制御されるため、プレイヤが、ガイドに従ってカーソルを操作すれば、操作物の操作も楽曲に合ったものとなる。従って、プレイヤは、楽曲に合った操作物の操作を楽しむことができる。
ここで、操作物の操作とは、操作物自体を動かすこと(例えば、移動させること)を意味し、スイッチを押下したり、アナログスティックを動かしたり、等は含まない。
上記音楽ゲーム装置において、前記ガイドは、前記カーソルの移動位置及び操作タイミングを案内し、前記追従画像制御ユニットは、前記操作物による前記カーソルの操作が、前記ガイドに適合したときに、前記ガイドが案内する前記移動位置の方向に対応して、前記画像の表示を制御する。
この構成によれば、プレイヤが、操作物を操作して、カーソルを、ガイドが案内する操作タイミングで、ガイドが案内する移動位置に移動させた場合に、ガイドが案内するカーソルの移動位置の方向に対応して、画像の表示が制御される。その結果、楽曲とともに、操作物の操作に連動するカーソルの移動に追従した画像を楽しむことができる。
上記音楽ゲーム装置において、前記状態情報算出ユニットは、前記差分信号に基づいて、前記操作物の前記状態情報としての位置を算出し、前記追従画像制御ユニットは、前記状態情報算出ユニットが算出した前記操作物の前記位置が、前記ガイドが案内する期間内に、前記ガイドが案内する領域内に存在する場合に、前記操作物に連動するカーソルの操作が、前記ガイドに適合していると判断する。
この構成によれば、簡易な処理で算出できる操作物の位置により、カーソルの操作の的確性を判断できる。
上記音楽ゲーム装置において、前記ガイドは、前記カーソルの移動経路、移動方向、及び、操作タイミングを案内する。
この構成によれば、プレイヤが、操作物を操作して、カーソルを、ガイドが案内する操作タイミングで、ガイドが案内する移動方向に、ガイドが案内する移動経路に沿って移動させた場合に、ガイドに応じて、画像の表示が制御される。その結果、楽曲とともに、操作物の操作に連動するカーソルの移動に応じた画像を楽しむことができる。
上記音楽ゲーム装置において、前記状態情報算出ユニットは、前記差分信号に基づいて、前記操作物の前記状態情報としての位置を算出し、前記追従画像制御ユニットは、前記状態情報算出ユニットが算出した前記操作物の前記位置が、前記ガイドが案内する期間内に、前記ガイドが案内する複数の所定領域を、前記ガイドが案内する所定の順序で移動した場合に、前記操作物に連動するカーソルの操作が、前記ガイドに適合していると判断する。
この構成によれば、簡易な処理で算出できる操作物の位置により、カーソルの操作の的確性を判断できる。
上記音楽ゲーム装置において、前記ガイドは、画面上の予め定められた複数の位置の各々に表示され、前記ガイド制御ユニットは、前記ガイドの形態を、前記楽曲にもとづくタイミングで変化させる。
この構成によれば、プレイヤは、ガイドの形態の変化により、カーソルを移動すべき位置及び方向を容易に認識できる。
ここで、本明細書において、ガイドの形態には、ガイドの形状及び色のいずれか、あるいは、その双方が含まれる。
上記音楽ゲーム装置において、前記ガイドは、画面上の第1の予め定められた位置から第2の予め定められた位置への移動が視覚的に認識できる表示により表現され、前記ガイド制御ユニットは、前記ガイドの表示を、前記楽曲にもとづくタイミングで制御する。
この構成によれば、プレイヤは、カーソルを移動すべき方向及び経路をより明確に認識できる。
例えば、前記ガイドは、画面上の前記第1の予め定められた位置を始点とし、前記第2の予め定められた位置を終点とする経路上に配置される複数のオブジェクトの形態の変化により表現することができる。
この構成によれば、プレイヤは、複数のオブジェクトの形態の変化により、カーソルを移動すべき方向及び経路を容易に認識できる。
例えば、前記ガイドは、画面上の前記第1の予め定められた位置から前記第2の予め定められた位置へのオブジェクトの移動により表現できる。
この構成によれば、プレイヤは、オブジェクトの移動により、カーソルを移動すべき方向及び経路を容易に認識できる。
例えば、前記ガイドは、画面上の前記第1の予め定められた位置を始点とし、前記第2の予め定められた位置を終点とする経路の形態の変化により表現できる。
この構成によれば、プレイヤは、経路の形態の変化により、カーソルを移動すべき方向及び経路を容易に認識できる。
上記音楽ゲーム装置において、前記状態情報算出ユニットが算出する前記操作物の前記状態情報は、速さ情報、移動方向情報、移動距離情報、速度ベクトル情報、加速度情報、移動軌跡情報、面積情報、若しくは、位置情報、のいずれか、又は、それらの2以上の組み合わせ、である。
この構成によれば、操作物によるカーソルの操作が、ガイドに適合しているか否かを判断する際の操作物の状態情報として、様々な情報を利用できるため、ガイドの表現の自由度が大きくなり、ひいては、ゲーム内容の設計の自由度も大きくなる。
本発明の新規な特徴は、特許請求の範囲に記載されている。しかしながら、発明そのもの及びその他の特徴と効果は、添付図面を参照して具体的な実施例の詳細な説明を読むことにより容易に理解される。
【図面の簡単な説明】
図1は、本発明の実施の形態における音楽ゲームシステムの全体構成を示す図である。
図2は、図1の操作物の斜視図である。
図3(a)は、図2の反射ボールの上面図である。図3(b)は、図3(a)の矢印A方向からの反射ボールの側面図である。図3(c)は、図3(a)の矢印B方向からの反射ボールの側面図である。
図4は、図2の反射ボールの縦断面図である。
図5は、図1の撮像ユニットの一例を示す図解図である。
図6は、図1の音楽ゲーム装置の電気的な構成を示す図である。
図7は、図6の高速プロセッサのブロック図である。
図8は、図6のイメージセンサから高速プロセッサへピクセルデータを取り込む構成及びLED駆動回路を示す回路図である。
図9(a)は、図8のイメージセンサが出力するフレームステータスフラグ信号FSFのタイミング図である。図9(b)は、図8のイメージセンサが出力するピクセルデータストローブ信号PDSのタイミング図である。図9(c)は、図8のイメージセンサが出力するピクセルデータD(X,Y)のタイミング図である。図9(d)は、図8の高速プロセッサが出力するLEDコントロール信号LEDCのタイミング図である。図9(e)は、図8の赤外発光ダイオードの点灯状態を示すタイミング図である。図9(f)は、図8のイメージセンサの露光期間を示すタイミング図である。
図10(a)は、図9のフレームステータスフラグ信号FSFの拡大図である。図10(b)は、図9のピクセルデータストローブ信号PDSの拡大図である。図10(c)は、図9のピクセルデータD(X,Y)の拡大図である。
図11は、図1のテレビジョンモニタのスクリーンに表示されるゲーム画面の例示図である。
図12は、図1のテレビジョンモニタのスクリーンに表示されるゲーム画面の他の例示図である。
図13は、図1のテレビジョンモニタのスクリーンに表示されるゲーム画面のさらに他の例示図である。
図14は、図1のテレビジョンモニタのスクリーンに表示されるオブジェクトを構成するスプライトの説明図である。
図15は、図1のテレビジョンモニタのスクリーンに表示される全景スクリーンの説明図である。
図16(a)は、図15の全景スクリーンをスクロールする前の説明図である。図16(b)は、図15の全景スクリーンをスクロールした後の説明図である。
図17は、図6のROMに格納されたプログラム及びデータを示す概念図である。
図18は、図17の第1の楽譜データの一例を示す概念図である。
図19は、図17の第2の楽譜データの一例を示す概念図である。
図20(a)は、カーソルを案内する方向とノートナンバとの関係図である。図20(b)は、カーソルを案内する方向とノートナンバとの他の関係図である。図20(c)は、カーソルを案内する方向とノートナンバとのさらに他の関係図である。
図21(a)は、一般的なイメージセンサにより撮影された、特別な処理を施さない画像の例示図である。図21(b)は、図21(a)の画像信号を或る閾値でレベル弁別したときの画像信号の例示図である。図21(c)は、赤外フィルタを介したイメージセンサの点灯時の画像信号を或る閾値でレベル弁別したときの画像信号の例示図である。図21(d)は、赤外フィルタを介したイメージセンサの消灯時の画像信号を或る閾値でレベル弁別したときの画像信号の例示図である。図21(e)は、点灯時の画像信号と消灯時の画像信号との差分信号の例示図である。
図22は、図1の操作物の注目点の座標算出の説明図である。
図23(a)は、最大輝度値を持つピクセルの座標を基に、図1の操作物の注目点座標を算出する際のX方向スキャンの説明図である。図23(b)は、最大輝度値を持つピクセルの座標を基に、図1の操作物の注目点座標を算出する際のY方向スキャンのスタート時の説明図である。図23(c)は、最大輝度値を持つピクセルの座標を基に、図1の操作物の注目点座標を算出する際のY方向スキャンの説明図である。図23(d)は、最大輝度値を持つピクセルの座標を基に、操作物の注目点座標を算出する際の結果の説明図である。
図24は、CPU201による注目点存在領域判定処理(1)の説明図である。
図25は、CPU201による注目点存在領域判定処理(2)の説明図である。
図26は、本実施の形態による、方向ガイドG、位置ガイドg、及び、経路ガイドrg、のアニメーションの登録の説明図である。
図27は、図26のアニメーションテーブル格納位置情報により指定されるアニメーションテーブルの例示図である。
図28は、本実施の形態における、第1の楽譜データ、第2の楽譜データ、方向ガイドG、位置ガイドg、操作判定、及び、ダンスアニメーション、の関係を説明するためのタイミング図である。
図29は、図1の音楽ゲーム装置の全体の処理の流れを示すフローチャートである。
図30は、図29のステップS1の初期設定処理の流れを示すフローチャートである。
図31は、図30のステップS14のセンサ初期設定処理の流れを示すフローチャートである。
図32は、図31のステップS21のコマンド送信処理の流れを示すフローチャートである。
図33は、(a)図8のレジスタ設定クロックCLKのタイミング図である。
(b)図8のレジスタデータのタイミング図である。
図34は、図31のステップS23のレジスタ設定処理の流れを示すフローチャートである。
図35は、図29のステップS2の状態情報算出処理の流れを示すフローチャートである。
図36は、図35のステップS50のピクセルデータ群取得処理の流れを示すフローチャートである。
図37は、図36のステップS61のピクセルデータ取得処理の流れを示すフローチャートである。
図38は、図35のステップS51の注目点抽出処理の流れを示すフローチャートである。
図39は、図38のステップS85の注目点座標算出処理の流れを示すフローチャートである。
図40は、図29のステップS3のゲーム処理の流れを示すフローチャートである。
図41は、本実施の形態における割込み処理の流れを示すフローチャートである。
図42は、図41のステップS150の楽曲再生処理の流れを示すフローチャートである。
図43は、図41のステップS151のガイド登録処理の流れを示すフローチャートである。
図44は、本実施の形態におけるガイドの他の例示図である。
図45は、本実施の形態におけるガイドのさらに他の例示図である。
図46は、本実施の形態におけるガイドのさらに他の例示図である。
【発明を実施するための最良の形態】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、図中、同一または相当部分については同一の参照符号を付してその説明を援用する。
図1は、本発明の実施の形態における音楽ゲームシステムの全体構成を示す図である。図1に示すように、この音楽ゲームシステムは、音楽ゲーム装置1、操作物150、及び、テレビジョンモニタ90、を含む。
音楽ゲーム装置1のハウジング19には、撮像ユニット13が組み込まれる。撮像ユニット13は、4つの赤外発光ダイオード15及び赤外フィルタ17を含む。赤外発光ダイオード15の発光部は、赤外フィルタ17から露出している。
音楽ゲーム装置1には、ACアダプタ92により、直流電源電圧が与えられる。ただし、ACアダプタ92に代えて、電池(図示せず)により、直流電源電圧を与えることもできる。
テレビジョンモニタ90には、その前面にスクリーン91が設けられる。テレビジョンモニタ90と音楽ゲーム装置1とは、AVケーブル93により接続される。なお、音楽ゲーム装置1は、例えば、図1に示すように、テレビジョンモニタ90の上面に載置される。
プレイヤ94が、音楽ゲーム装置1の背面に設けられた電源スイッチ(図示せず)をオンにすると、スクリーン91に、ゲーム画面が表示される。プレイヤ94は、ゲーム画面のガイドに従って、操作物150を操作して、ゲームを実行する。ここで、操作物150の操作とは、操作物自体を動かすこと(例えば、移動させること)を意味し、スイッチを押下したり、アナログスティックを動かしたり、等は含まない。
撮像ユニット13の赤外発光ダイオード15は、間欠的に赤外光を発光する。赤外発光ダイオード15からの赤外光は、この操作物150に取り付けられた反射シート(後述)により反射され、赤外フィルタ17の内部に設けられた撮像素子(後述)に入力される。このようにして、操作物150が間欠的に撮影される。従って、音楽ゲーム装置1は、プレイヤ94により動かされた操作物150の間欠的な映像信号を取得できる。音楽ゲーム装置1は、この映像信号を解析して、その解析結果をゲームに反映する。本実施の形態で使用する反射シートは、例えば、再帰反射シートである。
図2は、図1の操作物150の斜視図である。図2に示すように、操作物150は、スティック152の先端に反射ボール151を固定して構成される。この反射ボール151により、赤外発光ダイオード15からの赤外光が反射される。反射ボール151の詳細を説明する。
図3(a)は、図2の反射ボール151の上面図、図3(b)は、図3(a)の矢印A方向からの反射ボール151の側面図、図3(c)は、図3(a)の矢印B方向からの反射ボール151の側面図、である。
図3(a)〜図3(c)に示すように、反射ボール151は、透明色(半透明、有色透明、及び、無色透明、を含む。)の球状外殻153の内部に球状内殻154を固定してなる。球状内殻154には、反射シート155が取り付けられる。この反射シート155が、赤外発光ダイオード15からの赤外光を反射する。
図4は、図2の反射ボール151の縦断面図である。図4に示すように、球状外殻153は、2つの半球状外殻をボス156及びビス(図示せず)により固定してなる。球状内殻154は、球状外殻153の内部に、2つの半球状内殻をボス157により固定してなる。また、反射ボール151には、スティック152が、挿入して固定される。具体的には、球状外殻153を構成する2つの半球状外殻と、球状内殻154を構成する2つの半球状内殻と、によりスティック152を挟み、2つの半球状外殻をボス156及びビスで固定するとともに、2つの半球状内殻をボス157で固定することで、スティック152を反射ボール151に取り付ける。
図5は、図1の撮像ユニット13の一例を示す図解図である。図5に示すように、この撮像ユニット13は、たとえばプラスチック成型によって形成されるユニットベース35を含み、このユニットベース35内には支持筒36が取り付けられる。支持筒36の上面には内面が逆円錐形状であるラッパ状の開口41が形成され、その開口41の下方の筒状部内部には、いずれもがたとえば透明プラスチックの成型によって形成された凹レンズ39および凸レンズ37を含む光学系が設けられ、凸レンズ37の下方において、撮像素子としてのイメージセンサ43が固着される。したがって、イメージセンサ43は、開口41からレンズ39および37を通して入射する光に応じた画像を撮影することができる。
イメージセンサ43は、低解像度のCMOSイメージセンサ(たとえば32ピクセル×32ピクセル:グレースケール)である。ただし、このイメージセンサ43は、画素数のもっと多いものでもよいし、CCD等の他の素子からなるものであってよい。以下では、イメージセンサ43が、32ピクセル×32ピクセルからなるものとして説明を行う。
また、ユニットベース35には、光出射方向がいずれも上方向とされた複数(実施の形態では4つ)の赤外発光ダイオード15が取り付けられる。この赤外発光ダイオード15によって、撮像ユニット13の上方に赤外光が照射される。また、ユニットベース35の上方には、赤外フィルタ(赤外光のみを透過するフィルタ)17が上記開口41を覆うように、取り付けられる。そして、赤外発光ダイオード15は後述のように、点灯/消灯(非点灯)が連続的に繰り返されるので、ストロボスコープとして機能する。ただし、「ストロボスコープ」とは、運動体を間欠的に照らす装置の総称である。したがって、上記イメージセンサ43は、その撮影範囲内で移動する物体、実施の形態では、操作物150を撮影することになる。なお、後述する図8に示すように、ストロボスコープは、主に、赤外発光ダイオード15、LED駆動回路75、及び、高速プロセッサ200、により構成される。
ここで、撮像ユニット13は、イメージセンサ43の受光面が、水平面から所定角度(例えば、90度)だけ傾くように、ハウジング19に組み込まれる。また、凹レンズ39および凸レンズ37により、イメージセンサ43の撮影範囲は、例えば、60度の範囲である。
図6は、図1の音楽ゲーム装置1の電気的な構成を示す図である。図6に示すように、音楽ゲーム装置1は、イメージセンサ43、赤外発光ダイオード15、映像信号出力端子47、音声信号出力端子49、高速プロセッサ200、ROM(read only memory)51、及び、バス53、を含む。
高速プロセッサ200には、バス53が接続される。さらに、バス53には、ROM51が接続される。従って、高速プロセッサ200は、バス53を介して、ROM51にアクセスすることができるので、ROM51に格納されたゲームプログラムをリードして実行でき、また、ROM51に格納された画像データ及び音楽データをリードして処理し、映像信号及び音声信号を生成して、映像信号出力端子47及び音声信号出力端子49に出力することができる。
操作物150は、赤外発光ダイオード15が発光する赤外光に照射され、その赤外光を反射シート155で反射する。この反射シート155からの反射光がイメージセンサ43によって検知され、したがって、イメージセンサ43からは反射シート155の画像信号が出力される。イメージセンサ43からのこのアナログ画像信号は高速プロセッサ200に内蔵されたA/Dコンバータ(後述)によってデジタルデータに変換される。赤外光消灯時も同様の処理が行われる。高速プロセッサ200は、このデジタルデータを解析して、その解析結果をゲーム処理に反映する。
図7は、図6の高速プロセッサ200のブロック図である。図7に示すように、この高速プロセッサ200は、中央演算処理装置(CPU:central processing unit)201、グラフィックプロセッサ202、サウンドプロセッサ203、DMA(direct memory access)コントローラ204、第1バス調停回路205、第2バス調停回路206、内部メモリ207、A/Dコンバータ(ADC:analog to digital converter)208、入出力制御回路209、タイマ回路210、DRAM(dynamic random access memory)リフレッシュ制御回路211、外部メモリインタフェース回路212、クロックドライバ213、PLL(phase−locked loop)回路214、低電圧検出回路215、第1バス218、及び、第2バス219、を含む。
CPU201は、メモリ(内部メモリ207、又は、ROM51)に格納されたプログラムに従い、各種演算やシステム全体の制御を行う。CPU201は、第1バス218及び第2バス219のバスマスタであり、それぞれのバスに接続された資源にアクセスが可能である。
グラフィックプロセッサ202は、第1バス218及び第2バス219のバスマスタであり、内部メモリ207、又は、ROM51に格納されたデータを基に、映像信号を生成して、映像信号出力端子47へ出力する。グラフィックプロセッサ202は、第1バス218を通じて、CPU201により制御される。また、グラフィックプロセッサ202は、CPU201に対して、割込み要求信号220を発生する機能を有する。
サウンドプロセッサ203は、第1バス218及び第2バス219のバスマスタであり、内部メモリ207、又は、ROM51に格納されたデータを基に、音声信号を生成して、音声信号出力端子49へ出力する。サウンドプロセッサ203は、第1バス218を通じて、CPU201により制御される。また、サウンドプロセッサ203は、CPU201に対して、割込み要求信号220を発生する機能を有する。
DMAコントローラ204は、ROM51から、内部メモリ207へのデータ転送を司る。また、DMAコントローラ204は、データ転送の完了を通知するために、CPU201に対する割込み要求信号220を発生する機能を有する。DMAコントローラ204は、第1バス218及び第2バス219のバスマスタである。DMAコントローラ204は、第1バス218を通じてCPU201により制御される。
内部メモリ207は、マスクROM、SRAM(static random access memory)、及び、DRAMのうち、必要なものを備える。バッテリによるSRAMのデータ保持が必要とされる場合、バッテリ217が必要となる。DRAMが搭載される場合、定期的にリフレッシュと呼ばれる記憶内容保持のための動作が必要とされる。
第1バス調停回路205は、第1バス218の各バスマスタからの第1バス使用要求信号を受け付け、調停を行い、各バスマスタへの第1バス使用許可信号を発行する。各バスマスタは、第1バス使用許可信号を受領することによって第1バス218に対するアクセスが許可される。ここで、第1バス使用要求信号及び第1バス使用許可信号は、図7では、第1バス調停信号222として示されている。
第2バス調停回路206は、第2バス219の各バスマスタからの第2バス使用要求信号を受け付け、調停を行い、各バスマスタへの第2バス使用許可信号を発行する。各バスマスタは、第2バス使用許可信号を受領することによって第2バス219に対するアクセスが許可される。ここで、第2バス使用要求信号及び第2バス使用許可信号は、図7では、第2バス調停信号223として示されている。
入出力制御回路209は、外部入出力装置や外部の半導体素子との通信等を入出力信号を介して行う。入出力信号は、第1バス218を介して、CPU201からリード/ライトされる。また、入出力制御回路209は、CPU201に対して、割込み要求信号220を発生する機能を有する。
この入出力制御回路209から、赤外発光ダイオード15を制御するLEDコントロール信号LEDCが出力される。
タイマ回路210は、設定された時間間隔に基づき、CPU201に対する割込み要求信号220を発生する機能を有する。時間間隔等の設定は、第1バス218を介してCPU201によって行われる。
ADC208は、アナログ入力信号をデジタル信号に変換する。このデジタル信号は、第1バス218を介してCPU201によってリードされる。また、ADC208は、CPU201に対して、割込み要求信号220を発生する機能を有する。
このADC208が、イメージセンサ43からのピクセルデータ(アナログ)を受けて、デジタルデータに変換する。
PLL回路214は、水晶振動子216より得られる正弦波信号を逓倍した高周波クロック信号を生成する。
クロックドライバ213は、PLL回路214より受け取った高周波クロック信号を、各ブロックへクロック信号225を供給するのに十分な信号強度へ増幅する。
低電圧検出回路215は、電源電圧Vccを監視し、電源電圧Vccが一定電圧以下のときに、PLL回路214のリセット信号226、その他のシステム全体のリセット信号227を発行する。また、内部メモリ207がSRAMで構成されており、かつ、SRAMのバッテリ217によるデータ保持が要求される場合、電源電圧Vccが一定電圧以下のときに、バッテリバックアップ制御信号224を発行する機能を有する。
外部メモリインタフェース回路212は、第2バス219を外部バス53に接続するための機能、及び、第2バス219のサイクル終了信号228を発行することにより、第2バスのバスサイクル長を制御する機能、を有する。
DRAMリフレッシュ制御回路211は、一定期間毎に第1バス218の使用権を無条件に獲得し、DRAMのリフレッシュ動作を行う。なお、DRAMリフレッシュ制御回路211は、内部メモリ207がDRAMを含む場合に設けられる。
ここで、図8〜図10を参照して、イメージセンサ43から高速プロセッサ200へピクセルデータを取り込むための構成を詳細に説明する。
図8は、図6のイメージセンサ43から高速プロセッサ200へピクセルデータを取り込む構成及びLED駆動回路を示す回路図である。図9は、図6のイメージセンサ43から高速プロセッサ200へピクセルデータを取り込む際の動作を示すタイミング図である。図10は、図9の一部を拡大して示すタイミング図である。
図8に示すように、イメージセンサ43は、ピクセルデータD(X,Y)をアナログ信号として出力するタイプのものであるため、このピクセルデータD(X,Y)は高速プロセッサ200のアナログ入力ポートに入力される。アナログ入力ポートは、この高速プロセッサ200においてADC208に接続され、したがって、高速プロセッサ200は、ADC208からデジタルデータに変換されたピクセルデータをその内部に取得する。
上述のアナログピクセルデータD(X,Y)の中点は、イメージセンサ43の基準電圧端子Vrefに与えられる基準電圧によって決定される。そのため、イメージセンサ43に関連して例えば抵抗分圧回路からなる基準電圧発生回路59が設けられ、この回路59から基準電圧端子Vrefに常に一定の大きさの基準電圧が与えられる。
イメージセンサ43を制御するための各デジタル信号は、高速プロセッサ200のI/Oポートに与えられ、またはそこから出力される。このI/Oポートは各々入力/出力の制御が可能なデジタルポートであり、この高速プロセッサ200で入出力制御回路209に接続されている。
詳しく言うと、高速プロセッサ200の出力ポートからはイメージセンサ43をリセットするためのリセット信号resetが出力され、イメージセンサ43に与えられる。また、イメージセンサ43からは、ピクセルデータストローブ信号PDSおよびフレームステータスフラグ信号FSFが出力され、それらの信号が高速プロセッサ200の入力ポートに与えられる。
ピクセルデータストローブ信号PDSは上述の各ピクセル信号D(X,Y)を読み込むための図9(b)に示すようなストローブ信号である。フレームステータスフラグ信号FSFはイメージセンサ43の状態を示すフラグ信号で、図9(a)に示すように、このイメージセンサ43の露光期間を規定する。つまり、フレームステータスフラグ信号FSFの図9(a)に示すローレベルが露光期間を示し、図9(a)に示すハイレベルが非露光期間を示す。
また、高速プロセッサ200は、イメージセンサ43の制御レジスタ(図示せず)に設定するコマンド(またはコマンド+データ)をレジスタデータとしてI/Oポートから出力するとともに、たとえばハイレベルおよびローレベルを繰り返すレジスタ設定クロックCLKを出力し、それらをイメージセンサ43に与える。
なお、赤外発光ダイオード15として、図8に示すように互いに並列接続された4つの赤外発光ダイオード15a,15b,15cおよび15dを用いる。この4つの赤外発光ダイオード15a〜15dは、上で説明したように、操作物150を照らすように、イメージセンサ43の視点方向と同一方向に赤外光を照射するようにかつイメージセンサ43を囲むように配置される。ただし、これら個別の赤外発光ダイオード15a〜15dは、特に区別する必要がある場合を除いて、単に赤外発光ダイオード15と呼ばれる。
この赤外発光ダイオード15はLED駆動回路75によって、点灯されまたは消灯(非点灯)される。LED駆動回路75は、イメージセンサ43から上述のフレームステータスフラグ信号FSFを受け、このフラグ信号FSFは、抵抗69およびコンデンサ71からなる微分回路67を通してPNPトランジスタ77のベースに与えられる。このPNPトランジスタ77にはさらにプルアップ抵抗79が接続されていて、このPNPトランジスタ77のベースは、通常は、ハイレベルにプルアップされている。そして、フレームステータス信号FSFがローレベルになると、そのローレベルが微分回路67を経てベースに入力されるため、PNPトランジスタ77は、フラグ信号FSFがローレベル期間にのみオンする。
PNPトランジスタ77のエミッタは抵抗73および65を介して接地される。そして、エミッタ抵抗73および65の接続点がNPNトランジスタ81のベースに接続される。このNPNトランジスタ81のコレクタが各赤外発光ダイオード15a〜15dのアノードに共通に接続される。NPNトランジスタ81のエミッタが別のNPNトランジスタ61のベースに直接接続される。NPNトランジスタ61のコレクタが各赤外発光ダイオード15a〜15dのカソードに共通接続され、エミッタが接地される。
このLED駆動回路75では、高速プロセッサ200のI/Oポートから出力されるLEDコントロール信号LEDCがアクティブ(ハイレベル)でありかつイメージセンサ43からのフレームステータスフラグ信号FSFがローレベルである期間にのみ赤外発光ダイオード15が点灯される。
図9(a)に示すようにフレームステータスフラグ信号FSFがローレベルになると、そのローレベル期間中(実際には微分回路67の時定数での遅れがあるが)、PNPトランジスタ77がオンする。したがって、図9(d)に示すLEDコントロール信号LEDCが高速プロセッサ200からハイレベルで出力されると、NPNトランジスタ81のベースがハイベルとなり、このトランジスタ81がオンとなる。トランジスタ81がオンするとトランジスタ61はオンとなる。したがって、電源(図8では小さい白丸で示す)から各赤外発光ダイオード15a〜15dおよびトランジスタ61を経て電流が流れ、応じて図9(e)に示すように各赤外発光ダイオード15a〜15dが点灯される。
LED駆動回路75では、このように、図9(d)のLEDコントロール信号LEDCがアクティブでありかつ図9(a)のフレームステータスフラグ信号FSFがローレベルである期間にのみ赤外発光ダイオード15が点灯されるので、イメージセンサ43の露光期間(図9(f)参照)にのみ赤外発光ダイオード15が点灯されることになる。
したがって、無駄な電力消費を抑制することができる。さらに、フレームステータスフラグ信号FSFはコンデンサ71によってカップリングされているので、万一イメージセンサ43の暴走等によりそのフラグ信号FSFがローレベルのまま停止した場合でも、一定時間後にはトランジスタ77は必ずオフされ、赤外発光ダイオード15も一定時間後には必ずオフされる。
このように、フレームステータス信号FSFの持続期間を変更することによって、イメージセンサ43の露光時間を任意にかつ自在に設定または変更することができる。
さらに、フレームステータス信号FSFおよびLEDコントロール信号LEDCの持続時間や周期を変更することによって、赤外発光ダイオード15すなわちストロボスコープの発光期間、非発光期間、発光/非発光周期などを任意にかつ自在に変更または設定できる。
先に説明したように、赤外発光ダイオード15からの赤外光によって操作物150が照射されると、操作物150からの反射光によってイメージセンサ43が露光される。応じて、イメージセンサ43から上述のピクセルデータD(X,Y)が出力される。詳しく説明すると、イメージセンサ43は、上述の図9(a)のフレームステータスフラグ信号FSFがハイレベルの期間(赤外発光ダイオード15の非点灯期間)に図9(b)に示すピクセルデータストローブPDSに同期して、図9(c)に示すようにアナログのピクセルデータD(X,Y)を出力する。
高速プロセッサ200では、そのフレームステータスフラグ信号FSFとピクセルデータストローブPDSとを監視しながら、ADC208を通じて、デジタルのピクセルデータを取得する。
ただし、ピクセルデータは、図10(c)に示すように、第0行,第1行,…第31行と行順次に出力される。ただし、後に説明するように、各行の先頭の1ピクセルはダミーデータとなる。
さて、次に、音楽ゲーム装置1によるゲーム内容について、具体例を挙げながら説明する。
図11は、図1のテレビジョンモニタ90のスクリーン91に表示されるゲーム画面の例示図である。図11に示すゲーム画面は、ゲームスタート画面である。図11に示すように、ゲームスタート画面として、スクリーン91には、背景110、位置ガイドG1〜G4、評価オブジェクト107〜109、カーソル105、ダンスオブジェクト106、及び、マスク141,142が表示される。そして、楽曲の自動演奏が開始される。
なお、本実施の形態の例では、位置ガイドG1〜G4は、花の図形で表現され、評価オブジェクト107〜109は、ハートの図形で表現され、ダンスオブジェクト106は、男女がダンスをしている図形で表現され、カーソル105は、操作物150を模した図形で表現される。ここで、位置ガイドG1〜G4を包括的に表現する場合は、「位置ガイドG」と表記する。
カーソル105は、操作物150のスクリーン91上での位置を表しており、操作物150の動きに追従してスクリーン91上を移動する。従って、プレイヤ94から見れば、操作物150の操作とカーソル105の操作とは同義である。位置ガイドGは、カーソル105(操作物150)の操作タイミング及び移動位置を、自動演奏する楽曲のタイミングで案内する。後述の方向ガイドg1〜g5は、カーソル105(操作物150)の操作タイミング及び移動方向を、自動演奏する楽曲のタイミングで案内する。後述の経路ガイドrg1〜rg10は、カーソル105(操作物150)の操作タイミング、移動方向及び移動経路を、自動演奏する楽曲のタイミングで案内する。評価オブジェクト107〜109は、プレイヤ94によるカーソル105(操作物150)の操作の評価を視覚的に表示する。ここで、方向ガイドg1〜g5を包括的に表現するときは、「方向ガイドg」と表記する。また、経路ガイドrg1〜rg10を包括的に表現するときは、「経路ガイドrg」と表記する。
図12は、図1のテレビジョンモニタ90のスクリーン91に表示されるゲーム画面の他の例示図である。図12に示すように、位置ガイドGによる、徐々に花が開くアニメーションは、カーソル105を移動させる位置を示す。これにより、プレイヤ94に対して、花が開くアニメーションを行っている位置ガイドGが表示されている領域に、カーソル105を移動させることが指示される。プレイヤ94は、操作物150を移動させて、花が開くアニメーションを行っている位置ガイドGが表示されている領域にカーソル105を移動させる。花が開くアニメーションの後は、花がしぼむアニメーションにより、位置ガイドGが表現される。さらに、花が開くアニメーションを行っている位置ガイドGの方向が、カーソル105を移動させる方向を示す。これにより、プレイヤ94に対して、花が開くアニメーションを行っている位置ガイドGの方向にカーソル105を移動させることが指示される。
以上のことに加えて、方向ガイドg1〜g5によっても、カーソル105を移動させる方向が案内される。つまり、最初に方向ガイドg1、次に方向ガイドg2、その次に方向ガイドg3、さらにその次に方向ガイドg4、さらにその次に方向ガイドg5、という順番で、方向ガイドg1〜g5は出現する。従って、方向ガイドg1〜g5の出現の方向により、カーソル105を移動させる方向が案内される。ここで、方向ガイドg1〜g5の各々は、出現当初は小さな球を表現した図形であり、その球は時間とともに徐々に大きくなり、大きさが最大となった後は、球が砕けるようなアニメーションが実行される。従って、球の図形が出現する方向が、カーソル105を移動させる方向である。
プレイヤ94は、位置ガイドGによる花が開いた所定時間の間に、カーソル105を、当該位置ガイドGが表示されている領域に移動させなければならない。つまり、位置ガイドGは、花が開くアニメーションにより、カーソル105の操作タイミングを案内する。また、プレイヤ94は、一番最後の方向ガイドgによる球の図形が出現してから所定時間の間に、カーソル105を花が開いた位置ガイドGが表示されている領域に移動させなければならない。つまり、方向ガイドgによっても、カーソル105の操作タイミングが案内される。
また、位置ガイドGは、カーソル105の操作方向を予告する機能をも有する。つまり、位置ガイドGにより、花のつぼみが開き始めることで、プレイヤ94は、次にカーソル105を移動させる方向を知ることができる。さらに、方向ガイドgも、カーソル105の操作方向を予告する機能をも有する。つまり、方向ガイドgは、操作タイミングが到来する前に出現するため、プレイヤ94は、これによっても、次にカーソル105を移動させる方向を知ることができる。
以上の点を具体例を挙げて説明する。図12の例では、位置ガイドG2による、徐々に花が開くアニメーションにより、カーソル105を移動させる位置が案内されている。これにより、プレイヤ94に、花が開くアニメーションを行っている位置ガイドG2が表示されている領域に、カーソル105を移動させることが案内される。また、花が開くアニメーションを行っている位置ガイドG2の方向が、カーソル105を移動させる方向である。これにより、プレイヤ94に、花が開くアニメーションを行っている位置ガイドG2の方向にカーソル105を移動させることが案内される。さらに、方向ガイドg1〜g5による球の図形は、位置ガイドG1から位置ガイドG2へ向かって出現している。このように、方向ガイドg1〜g5によっても、カーソル105を、位置ガイドG1から位置ガイドG2へ移動させることが案内される。
プレイヤ94は、位置ガイドG2による花が開いた所定時間の間に、カーソル105を、当該位置ガイドG2が表示されている領域に移動させなければならない。また、プレイヤ94は、一番最後の方向ガイドg5による球の図形が出現してから所定時間の間に、カーソル105を花が開いた位置ガイドG2が表示されている領域に移動させなければならない。つまり、方向ガイドgによっても、カーソル105の操作タイミングが案内される。
プレイヤ94は、位置ガイドG2及び方向ガイドg1〜5による案内に従って、操作物150を適切に操作して、位置ガイドG1から位置ガイドG2の位置までカーソル105を移動させている。従って、評価オブジェクト107〜109の全てが点滅するアニメーションが実行される。なお、最も適切なタイミングで、カーソル105が操作された場合は、評価オブジェクト107〜109の全てが点滅するアニメーションが実行され、最も適切なタイミングではないが許容範囲のタイミングでカーソル105が操作された場合は、評価オブジェクト108のみが点滅するアニメーションが実行される。なお、位置ガイドG1,G3,G4は、カーソル105の操作タイミング及び移動位置を案内する時間帯でないため、花のつぼみの図形となっている。また、位置ガイドG2と位置ガイドG4との間、位置ガイドG4と位置ガイドG3との間、及び、位置ガイドG3と位置ガイドG1との間、では、カーソル105の操作タイミング及び操作方向を案内する時間帯ではないため、方向ガイドgが出現していない。
プレイヤ94は、位置ガイドG2及び方向ガイドg1〜5による案内に従って、カーソル105を適切に操作しているため、カーソル105の移動方向(位置ガイドG1から位置ガイドG2の方向、つまり、スクリーン91に向かって右方向)に対応した方向にダンスを行うアニメーションが実行される。例えば、ダンスオブジェクト106が、反時計回りに回転するアニメーションを行い、かつ、背景110が、スクリーン91に向かって、左方向にスクロールする。これにより、ダンスオブジェクト106の位置はスクリーン91の中心にありながらも、ダンスオブジェクト106が、右方向に移動しながら反時計回りに回転したように見える。
図13は、図1のテレビジョンモニタ90のスクリーン91に表示されるゲーム画面のさらに他の例示図である。図13では、4つの位置ガイドG1〜G4が同時に、花が開くアニメーションをしている。これを契機として、プレイヤ94に対して、経路ガイドrg1〜rg10に案内される経路及び方向にカーソル105を移動させることが案内される。この場合、経路ガイドrg1〜rg10の出現位置が、カーソル105の案内経路を示す。また、最初に経路ガイドrg1、次に経路ガイドrg2、その次に経路ガイドrg3、さらにその次に経路ガイドrg4、…、最後に経路ガイドrg10、という順番で、経路ガイドrg1〜rg10は出現する。従って、経路ガイドrg1〜rg10の出現の方向により、カーソル105を移動させる方向が案内される。ここで、経路ガイドrg1〜g10の各々は、出現当初は小さな球を表現した図形であり、その球は時間とともに徐々に大きくなり、大きさが最大となった後は、球が砕けるようなアニメーションが実行される。図13では、位置ガイドG3の近傍を出発点として、経路ガイドrg1〜g10に沿って、反時計回りにカーソル105を移動させることが案内されている。
プレイヤ94が、位置ガイドG1〜G4及び経路ガイドrg1〜rg10に従って、操作物150を操作して適切にカーソル105を操作した場合は、ダンスオブジェクト106は、経路ガイドrg1〜rg10に対応したアニメーション(例えば、反時計回りに大きく回転するようなアニメーション)を実行する。
なお、上記のように、図12及び図13に示したダンスオブジェクト106等のオブジェクトは、アニメーションの、あるコマの画像である。例えば、ダンスアニメーションのために、一連のダンスオブジェクト106が用意されている。また例えば、位置ガイドGのアニメーションのために、一連の花の図形のオブジェクト画像が用意されている。また、例えば、方向ガイドg及び経路ガイドrgのアニメーションのために、一連の球の図形のオブジェクト画像が用意されている。
ここで、図11〜図13に示したゲーム画面のダンスオブジェクト106、位置ガイドG、評価オブジェクト107〜109、カーソル105、方向ガイドg、及び、経路ガイドrg、は単数あるいは複数のスプライトからなる。スプライトは、矩形の画素集合であり、スクリーン91の任意の位置に配置できる。なお、位置ガイドG、評価オブジェクト107〜109、カーソル105、方向ガイドg、及び、経路ガイドrg、を総称してオブジェクト(あるいはオブジェクト画像)と呼ぶこともある。
図14は、スクリーン91に表示されるオブジェクトを構成するスプライトの説明図である。図14に示すように、図11のダンスオブジェクト106は、例えば、12個のスプライトSP0〜SP11により構成される。スプライトSP0〜SP11の各々は、例えば、16画素×16画素からなる。ダンスオブジェクト106をスクリーン91上に配置するときは、例えば、左上の角のスプライトSP0の中心を、スクリーン91上のどの座標に配置するかが指定される。そして、指定された座標及びスプライトSP0〜SP11のサイズをもとに、各スプライトSP1〜SP11の中心を配置する座標が算出される。
次に、背景110のスクロールについて説明する。まず、全景スクリーンについて説明する。
図15は、図1のテレビジョンモニタ90のスクリーン91に表示される全景スクリーンの説明図である。図15に示すように、全景スクリーン140は、例えば、32個×32個のブロック「0」〜ブロック「1023」により構成される。ブロック「0」〜ブロック「1023」の各々は、例えば、8画素×8画素からなる矩形要素である。ブロック「0」〜ブロック「1023」に対応して、配列PA[0]〜配列PA[1023]及び配列CA[0]〜配列CA[1023]が用意される。ここで、ブロック「0」〜ブロック「1023」を包括して表現するときは、単に「ブロック」と表記し、配列PA[0]〜配列PA[1023]を包括して表現するときは、「配列PA」と表記し、配列CA[0]〜配列CA[1023]を包括して表現するときは、「配列CA」と表記する。
さて、配列PAには、対応するブロックの画素パターンを指定するデータ(画素パターンデータ)が代入される。この画素パターンデータは、ブロックを構成する8画素×8画素の各画素の色情報である。また、配列CAには、対応するブロックに使用するカラーパレット及びデプス値を指定する情報が代入される。カラーパレットは、所定数の色情報からなる。デプス値は、画素の奥行きを表す情報であり、同じ位置に、複数の画素が存在することとなる場合、最も大きなデプス値を持つ画素だけが表示されることになる。
図16(a)は、全景スクリーン140をスクロールする前の説明図、図16(b)は、全景スクリーン140をスクロールした後の説明図、である。図16(a)に示すように、テレビジョンモニタ90のスクリーン91のサイズは、256画素×224画素であるため、全景スクリーン140のうち、256画素×224画素の範囲がスクリーン91に表示される。ここで、全景スクリーン140の中心位置をk画素だけ左にスクロールすることを考える。そうすると、全景スクリーン140の横方向(水平方向)の幅が、スクリーン91の横方向の幅と同じであるため、図16(b)に示すように、スクリーン91の範囲外となった部分(斜線部分)が、スクリーン91の右端に表示される。つまり、概念的には、横方向にスクロールをする場合は、同じ複数の全景スクリーン140が横方向に連なっていると考えることができる。
例えば、スクリーン91の範囲外となった部分(斜線部分)が、図15のブロック「64」,ブロック「96」,…,ブロック「896」,ブロック「928」とすると、これらのブロックに対応する配列PA[64],…PA[928]及び配列CA[64],…CA[928]によって定まる画像が、スクリーン91の右端に表示される。従って、全景スクリーン140の左スクロールにより、背景が連続的に連なるようにするには、スクリーン91の範囲外となった部分(斜線部分)に含まれるブロックに対応する配列PA及び配列CAに代入されたデータを更新する必要がある。そうすれば、更新された配列PA及び配列CAによって定まる画像が、スクリーン91の右端に表示される。
背景を滑らかに連続するように見せるためには、スクリーン91の右端に表示される前に、該当する配列PA及び配列CAのデータを更新する必要がある。そうすると、スクリーン91の左端に表示中のときに、該当する配列PA及び配列CAのデータを更新する必要が生じ、スクリーン91の左端の表示が不連続なものとなる。従って、このような不都合を回避するため、図11〜図13に示すように、スクリーン91の左端にマスク141をする。同様の理由により、右端にもマスク142をする。
なお、右方向へのスクロール処理も上記の左方向のスクロール処理と同様である。また、本実施の形態では、全景スクリーン140の縦方向(垂直方向)のスクロール範囲を±16画素としているため、スクリーン91の上下端にマスクはしていない。
以上のようにして、全景スクリーン140をスクロールさせることで、背景110をスクロールさせる。
さて、次に、音楽ゲーム装置1によるゲーム処理の詳細を説明する。図17は、図6のROM51に格納されたプログラム及びデータを示す概念図である。図17に示すように、ROM51には、ゲームプログラム300、画像データ301、及び、音楽データ304、が格納される。画像データ302は、オブジェクト画像データ(位置ガイドG、方向ガイドg、経路ガイドrg、評価オブジェクト107〜109、及び、カーソル105、等の画像データを含む。)及び背景画像データを含む。音楽データ304は、第1の楽譜データ305、第2の楽譜データ306、及び、音源データ(波形データ)307、を含む。
図17に示す第1の楽譜データ305は、楽曲制御情報が時系列に配置されたデータである。
図18は、図17の第1の楽譜データ305の一例を示す概念図である。図18に示すように、楽曲制御情報は、コマンド、ノートナンバ/待機時間情報、楽器指定情報、ベロシティ、及び、ゲートタイム、を含む。
ノートオンは、音を出すコマンド、待機は、待機時間を設定するコマンド、である。待機時間は、次のコマンドを読み出すまでの時間(ある音符から次の音符までの時間)である。ノートナンバは、音の高さ(ピッチ)を指定する情報である。待機時間情報は、設定する待機時間を指定する情報である。楽器指定情報は、どの楽器の音色を使うかを指定する情報である。ベロシティは、音の強弱の情報、つまり、音量の情報、である。ゲートタイムは、音が発音される長さである。
図17に戻って、第2の楽譜データ306は、ガイド制御情報が、時系列に配置されたデータである。この第2の楽譜データ306は、ガイド(位置ガイドG、方向ガイドg、及び、経路ガイドrg)を、スクリーン91に表示する際に使用される。つまり、第1の楽譜データ305は、楽曲を自動演奏するための楽譜データであるが、第2の楽譜データ306は、ガイドを楽曲に合ったタイミングで表示させるための楽譜データである。
図19は、図17の第2の楽譜データ306の一例を示す概念図である。図19に示すように、ガイド制御情報は、コマンド、ノートナンバ/待機時間情報、及び、楽器指定情報、からなる。
第2の楽譜データ306では、楽器指定情報は、楽曲を奏でる楽器(音色)を示す番号ではなく、第2の楽譜データ306が、ガイド(位置ガイドG、方向ガイドg、及び、経路ガイドrg)を出現させる楽譜データであることを示す番号である。
従って、ノートオンは、音を出すコマンドではなく、位置ガイドGのアニメーション開始を指示したり、方向ガイドg及び経路ガイドrgの出現開始を指示したりするコマンドである。そして、ノートナンバは、音の高さ(ピッチ)を指定する情報ではなく、どの位置ガイドGのアニメーションを開始するかを示したり、どこに方向ガイドg及び経路ガイドrgを出現させるかを示したりする情報である。この点を詳しく説明する。
図20(a)〜図20(c)は、カーソル105を案内する方向とノートナンバとの関係図である。図20(a)〜図20(c)に示すように、矢印の向きが、カーソル105を案内する方向を示し、矢印の始点が、直前にカーソル105を案内した位置ガイドGの位置を示し、矢印の終点が、カーソル105を案内する位置ガイドGの位置を示している。例えば、図20(a)に示すように、ノートナンバ「55」は、カーソル105を、位置ガイドG1から位置ガイドG2へ案内する場合に使用され、楽譜データポインタが指すノートナンバが「55」の場合は、図12に示す位置ガイドG及び方向ガイドgが出現する。また、例えば、図20(c)に示すように、ノートナンバ「57」は、位置ガイドG3を始点として、カーソル105を反時計回りに回転させることを案内する場合に使用され、楽譜データポインタが指すノートナンバが「57」の場合は、図13に示す位置ガイドG及び経路ガイドrgが出現する。
なお、例えば、ノートナンバ「81」は、第2の楽譜データ306の先頭に配置するダミーデータであり(図19参照)、ガイドの表示を制御する情報ではない。こうすることで、第1の楽譜データ305と第2の楽譜データ306との先頭を揃えている。また、例えば、ノートナンバ「79」は、楽曲終了を意味するデータであり、第2の楽譜データ306の最後尾に配置される(図19参照)。なお、ノートナンバ「79」は、ガイドの表示を制御する情報ではない。
さて、次に、高速プロセッサ200が実行する主な処理について説明する。
[ピクセルデータ群取得処理]CPU201は、イメージセンサ43が出力したアナログのピクセルデータを変換したデジタルのピクセルデータを取得して、配列P[X][Y]に代入する。なお、イメージセンサ43の水平方向(横方向、行方向)をX軸、垂直方向(縦方向、列方向)をY軸とする。
[差分データ算出処理]CPU201は、赤外発光ダイオード15の点灯時のピクセルデータP[X][Y]と、消灯時のピクセルデータP[X][Y]と、の差分を算出して、差分データを配列Dif[X][Y]に代入する。ここで、図面を用いて、差分を求める効果を説明する。ここで、ピクセルデータは輝度を表す。よって、差分データも輝度を表す。
図21(a)は、一般的なイメージセンサにより撮影された、特別な処理を施さない画像の例示図、図21(b)は、図21(a)の画像信号を或る閾値でレベル弁別したときの画像信号の例示図、図21(c)は、赤外フィルタ17を介したイメージセンサ43の点灯時の画像信号を或る閾値でレベル弁別したときの画像信号の例示図、図21(d)は、赤外フィルタ17を介したイメージセンサ43の消灯時の画像信号を或る閾値でレベル弁別したときの画像信号の例示図、図21(e)は、点灯時の画像信号と消灯時の画像信号との差分信号の例示図、である。
上記のように、操作物150に赤外光を照射し、赤外フィルタ17を介してイメージセンサ43に入射した反射赤外光による画像を撮影している。一般的な室内環境で一般的な光源を用いて操作物150をストロボスコープ撮影した場合には、一般的なイメージセンサ(図5のイメージセンサ43に相当する。)には、図21(a)に示すように、操作物150による画像以外に、蛍光灯光源、白熱灯光源、太陽光(窓)のような光源だけでなく、室内のすべてのものの画像がすべて写り込む。したがって、この図21(a)の画像を処理して操作物150の画像のみを抽出するのは、かなり高速のコンピュータまたはプロセサが必要である。しかしながら、安価が条件の装置ではそのような高性能コンピュータを使えない。そこで種々の処理を行って負担を軽減することが考えられる。
なお、図21(a)の画像は、本来ならば、白黒の階調により表される画像であるが、その図示を省略している。また、図21(a)〜図21(e)では、操作物150の反射シート155が撮影されている。
さて、図21(b)は、図21(a)の画像信号を或る閾値でレベル弁別したときの画像信号である。このようなレベル弁別処理は専用のハードウェア回路でも、ソフトウェア的にでも、実行することができるが、いずれの方法によっても、一定以下の光量のピクセルデータをカットするレベル弁別を実行すると、操作物150や光源以外の低輝度画像を除去することができる。この図21(b)の画像では操作物150および室内の光源以外の画像の処理を省略でき、したがって、コンピュータの負担を軽減できるが、それでも、光源画像を含む高輝度画像が依然として写り込んでいるので、操作物150と他の光源を分別することは難しい。
そこで、図5に示したように赤外フィルタ17を利用して、イメージセンサ43に赤外光による画像以外の画像が写らないようにした。それによって、図21(c)に示すように、赤外光を殆ど含まない蛍光灯光源の画像は除去できる。しかしながら、それでもなお太陽光や白熱灯が画像信号中に含まれてしまう。したがって、更なる負担軽減のために、赤外ストロボスコープの点灯時のピクセルデータと消灯時のピクセルデータとの差分を計算することとした。
そのため、図21(c)の点灯時の画像信号のピクセルデータと、図21(d)の消灯時の画像信号のピクセルデータとの差分を計算した。すると、図21(e)に示すように、その差分だけの画像が取得できる。この差分データによる画像は、図21(a)と対比すれば明らかなように、操作物150によって得られる画像のみを含むことになる。したがって、処理の軽減を図りながらも、操作物150の状態情報を取得できる。状態情報とは、例えば、速さ情報、移動方向情報、移動距離情報、速度ベクトル情報、加速度情報、移動軌跡情報、面積情報、若しくは、位置情報、のいずれか、又は、それらの2以上の組み合わせ、等である。
以上のような理由で、CPU201は、赤外発光ダイオード15の点灯時のピクセルデータと、消灯時のピクセルデータと、の差分を算出して、差分データを得る。
[注目点抽出処理]CPU201は、算出した差分データDif[X][Y]を基に、操作物150の注目点の座標を求める。この点を詳細に説明する。
図22は、操作物150の注目点の座標算出の説明図である。なお、図22に示したイメージセンサ43は、32ピクセル×32ピクセルのものとする。
図22に示すように、CPU201は、X方向(水平方向、横方向、行方向)に32ピクセル分の差分データをスキャンし、そして、Y座標をインクリメントし、X方向に32ピクセル分の差分データをスキャンし、そして、Y座標をインクリメントし、というように、Y座標をインクリメントしながら、X方向に32ピクセル分の差分データをスキャンしていく。
この場合、CPU201は、スキャンした32ピクセル×32ピクセル分の差分データから、最大輝度値の差分データを求め、その最大輝度値と所定の閾値Thとを比較する。そして、CPU201は、その最大輝度値が所定の閾値Thより大きい場合は、その最大輝度値を持つピクセルの座標を基に、操作物150の注目点の座標を算出する。この点を詳しく説明する。
図23(a)は、最大輝度値を持つピクセルの座標を基に、操作物150の注目点座標を算出する際のX方向スキャンの説明図、図23(b)は、最大輝度値を持つピクセルの座標を基に、操作物150の注目点座標を算出する際のY方向スキャンのスタート時の説明図、図23(c)は、最大輝度値を持つピクセルの座標を基に、操作物150の注目点座標を算出する際のY方向スキャンの説明図、図23(d)は、最大輝度値を持つピクセルの座標を基に、操作物150の注目点座標を算出する際の結果の説明図、である。
図23(a)に示すように、CPU201は、最大輝度値のピクセルの座標を中心に、X方向に、差分データのスキャンを実行して、所定の閾値Thより大きい輝度値のピクセルを検出する。図23(a)の例では、X=11〜15までが、所定の閾値Thを超えたピクセルである。
次に、図23(b)に示すように、CPU201は、X=11〜15の中心を求める。すると、中心のX座標は、Xc=13である。
次に、図23(c)に示すように、図23(b)で求めたX座標(=13)を中心に、Y方向に、差分データのスキャンを実行して、所定の閾値Thより大きい輝度値のピクセルを検出する。図23(c)の例では、Y=5〜10までが、所定の閾値Thを超えたピクセルである。
次に、図23(d)に示すように、CPU201は、Y=5〜10の中心を求める。すると、中心のY座標は、Yc=7である。
CPU201は、以上のようにして算出した注目点の座標(Xc,Yc)=(13,7)を、スクリーン91上の座標(xc,yc)に変換する。CPU201は、以上のような注目点の座標(xc,yc)を求める処理を、フレームが更新されるたびに実行する。そして、CPU201は、xc及びycをそれぞれ配列Px[M]及びPy[M]に代入する。なお、「M」は整数であり、スクリーン91に表示するフレームが更新されるたびに1つインクリメントされる。
[注目点存在領域判定処理(1)]CPU201は、操作物150の注目点が、スクリーン91上のどの領域a1〜a4に存在するかを判定する。この点を詳細に説明する。
図24は、CPU201による注目点存在領域判定処理(2)の説明図である。図24に示すように、スクリーン91に、位置ガイドG1を含む所定領域a1、位置ガイドG2を含む所定領域a2、位置ガイドG3を含む所定領域a3、及び、位置ガイドG4を含む所定領域a4、を設定する。CPU201は、所定領域a1〜a4の中から、操作物150の注目点(xc,yc)が属する領域を判定し、判定結果を配列J1[M]に格納する。CPU201は、以上のような判定処理を、スクリーン91に表示するフレームが更新されるたびに実行する。
[注目点存在領域判定処理(2)]CPU201は、操作物150の注目点が、スクリーン91上のどの領域A1〜A4に存在するかを判定する。この点を詳細に説明する。
図25は、CPU201による注目点存在領域判定処理(2)の説明図である。図25に示すように、スクリーン91を4分割した領域A1〜A4を設定する。CPU201は、領域A1〜A4の中から、操作物150の注目点(xc,yc)が属する領域を判定し、判定結果を配列J2[M]に格納する。CPU201は、以上のような判定処理を、スクリーン91に表示するフレームが更新されるたびに実行する。
[カーソル制御処理]CPU201は、現在の操作物150の注目点の座標(xc,yc)を、次のフレームで表示するカーソル105の座標として登録する(内部メモリ207に格納する)。
[ガイド種類登録処理]CPU201は、ガイド用の楽譜データポインタに従って、第2の楽譜データ306から読み出したノートナンバ(図19及び図20(a)〜図20(c)参照)を配列NN「0」あるいは配列NN[1]に代入する。このように、配列の要素数を2つにしたのは、ある位置ガイドGによる案内と他の位置ガイドGによる案内とが、違うタイミングで開始されるが、ある期間重複して実行される場合もあるからである。なお、ガイド用の楽譜データポインタは、第2の楽譜データ306の読み出し位置を示すポインタである。
[ガイド制御処理]CPU201は、配列NN[J](ガイド表示番号J=0,1)を参照して、配列NN[J]に代入されているノートナンバに従って、方向ガイドGのアニメーション情報、位置ガイドgのアニメーション情報、及び、経路ガイドrgのアニメーション情報、を登録する。この点を詳細に説明する。
図26は、方向ガイドG、位置ガイドg、及び、経路ガイドrg、のアニメーションの登録処理の説明図である。図26に示すように、ノートナンバと、アニメーション情報(位置ガイドGのアニメーションテーブルの格納位置情報、位置ガイドGのスクリーン91上の表示座標、位置ガイドGの表示タイミング情報、方向ガイドg/経路ガイドrgのアニメーションテーブルの格納位置情報、方向ガイドg/経路ガイドrgのスクリーン91上の表示座標情報、及び、方向ガイドg/経路ガイドrgの表示タイミング情報)と、が関連付けられたテーブルが、ROM51あるいは内部メモリ207に用意される。
このテーブルのノートナンバは、ガイドの表示を制御するためのノートナンバであり、図20(a)〜図20(c)に示したノートナンバである。例えば、CPU201は、配列NN[J]に代入されているノートナンバが「55」の場合は、このテーブルを参照して、ノートナンバ「55」に関連付けられたアニメーション情報(位置ガイドGのアニメーションテーブルの格納位置情報、位置ガイドGのスクリーン91上の表示座標、位置ガイドGの表示タイミング情報、方向ガイドgのアニメーションテーブルの格納位置情報、方向ガイドgのスクリーン91上の表示座標情報、及び、方向ガイドgの表示タイミング情報)を登録する(内部メモリ207の所定領域に格納する。)。
ここで、表示タイミング情報は、スクリーン91にオブジェクトをいつ表示するかを示す情報である。例えば、ガイドナンバ「55」に関しては、位置ガイドGの表示タイミング情報が「0」であるため、現在表示中のフレームの次のフレームにおいて、位置ガイドG2を座標(x1,y1)に表示することを意味する。また、例えば、ガイドナンバ「55」に関しては、方向ガイドgの表示タイミング情報が0,6,12,…,24であるため、現在表示中のフレームの次のフレームにおいて、位置ガイドg1を座標(x3,y1)に表示し、6フレーム後に位置ガイドg2を座標(x4,y1)に表示し、…、24フレーム後に位置ガイドg5を座標(x7,y1)に表示することを意味する。
図27は、図26のアニメーションテーブル格納位置情報により指定されるアニメーションテーブルの例示図である。図27に示すように、アニメーションテーブルは、アニメーション画像データ(複数のオブジェクト画像データを時系列に配置したもの)の格納位置情報、アニメーションを行うオブジェクトの番号を時系列に配置したもの、何フレーム連続して各オブジェクトを表示するかを示す情報(持続フレーム数)、オブジェクトのサイズ、カラーパレットの情報、デプス値の情報、及び、スプライトサイズ、を関連付けたテーブルである。なお、アニメーション画像データは、画素パターンデータである。ここで、画素パターンデータ、カラーパレット、及び、デプス値は、オブジェクトを構成するスプライトに関するものであり、その意味は、図14で説明したブロックに関するものと同様である。
アニメーションテーブル格納位置情報address0が示すアニメーションテーブルは、位置ガイドGのアニメーションテーブルの例示であり、アニメーションテーブル格納位置情報address1が示すアニメーションテーブルは、方向ガイドgのアニメーションテーブルの例示であり、アニメーションテーブル格納位置情報address2が示すアニメーションテーブルは、経路ガイドrgのアニメーションテーブルの例示であり、アニメーションテーブル格納位置情報address3が示すアニメーションテーブルは、プレイヤ94によるカーソル105の操作が成功したときに利用する位置ガイドGのアニメーションテーブルの例示である。
[ダンス制御処理]CPU201は、プレイヤ94によるカーソル105の操作が、位置ガイドG及び方向ガイドg、あるいは、位置ガイドG及び経路ガイドrg、に適合して操作されたか否かを判断する。具体的には、次の通りである。
CPU201は、注目点存在領域判定処理(1)による判定結果J1[M]をもとに、位置ガイドG及び方向ガイドgが現在案内している領域に、カーソル105(つまり、操作物150の注目点)が存在するかどうかを判断する(図24参照)。例えば、CPU201は、位置ガイドG及び方向ガイドgが現在案内している領域が領域a2の場合に、カーソル105が存在する領域が領域a2である場合は、カーソル105が位置ガイドG及び方向ガイドgに適合して操作されたと判断する。
また、CPU201は、注目点存在領域判定処理(2)による判定結果J2[M]をもとに、位置ガイドG及び経路ガイドrgが現在案内している経路に沿って、カーソル105(つまり、操作物150の注目点)が移動したかどうかを判断する(図25参照)。ここで、図20(b)のガイドナンバ「53」が案内する経路は、図25の領域A3→領域A1→領域A2→領域A4である。また、図20(c)のガイドナンバ「57」が案内する経路は、図25の領域A4→領域A2→領域A1→領域A3である。従って、例えば、CPU201は、位置ガイドG及び経路ガイドrgが現在案内している経路がガイドナンバ「53」に対応する経路である場合に、カーソル105が移動した経路が、領域A3→領域A1→領域A2→領域A4、である場合は、カーソル105が位置ガイドG及び経路ガイドrgに適合して操作されたと判断する。
上述の結果、プレイヤ94によるカーソル105の操作が、位置ガイドG及び方向ガイドg、あるいは、位置ガイドG及び経路ガイドrg、に適合して操作されたと判断した場合は、CPU201は、位置ガイドG及び方向ガイドg、あるいは、位置ガイドG及び経路ガイドrg、に対応したダンスアニメーション情報を登録する(内部メモリ207の所定領域に格納する。)。図26のテーブルと同様に、ガイドの表示を制御するノートナンバ(図20(a)〜図20(c)参照)とダンスアニメーション情報とを関連付けたテーブルが、ROM51あるいは内部メモリ207に用意される。ただし、案内方向が同じノートナンバ(例えば、ノートナンバ「55」と「67」)については、ダンスアニメーション情報も同じにしている。
ダンスアニメーション情報は、図26のアニメーション情報と同様のものであり、ダンスアニメーションテーブルの格納位置情報、ダンスオブジェクト106のスクリーン91上の表示座標、及び、ダンスオブジェクト106の表示タイミング情報、を含む。また、ダンスアニメーションテーブルは、図27のアニメーションテーブルと同様のものであり、ダンスアニメーション画像データ(複数のダンスオブジェクト106の画像データを時系列に配置したもの)の格納位置情報、アニメーションを行うダンスオブジェクト106の番号を時系列に配置したもの、何フレーム連続して各ダンスオブジェクト106を表示するかを示す情報(持続フレーム数)、ダンスオブジェクト106のサイズ、カラーパレットの情報、デプス値の情報、及び、スプライトサイズ、を関連付けたテーブルである。ダンスアニメーション画像データは、画素パターンデータである。
なお、図17の第2の楽譜データ306には、速い速度のダンスアニメーションを行うことを指示するノートナンバ、及び、遅い速度のダンスアニメーションを行うことを指示するノートナンバ、を含めることができる。この場合は、ダンスアニメーションテーブルも、速い速度のダンスアニメーションテーブルと遅い速度のダンスアニメーションテーブルとが用意される。また、この場合は、ガイドの表示を制御するノートナンバ及びダンス速度を制御するノートナンバと、ダンスアニメーション情報と、を関連付けたテーブルが、ROM51あるいは内部メモリ207に用意される。同様に、ダンス速度ごとに、ダンスアニメーションテーブルが用意される。
また、プレイヤ94によるカーソル105の操作が、位置ガイドG及び方向ガイドg、あるいは、位置ガイドG及び経路ガイドrg、に適合して操作されたと判断した場合は、CPU201は、操作が成功した際に使用する位置ガイドGのアニメーションテーブルの格納位置情報(図27の例では、address3)を登録する。
また、プレイヤ94によるカーソル105の操作が、位置ガイドG及び方向ガイドg、あるいは、位置ガイドG及び経路ガイドrg、に適合して操作されたと判断した場合は、CPU201は、評価オブジェクト107〜109のためのアニメーション情報を登録する(内部メモリ207の所定領域に格納する。)。このアニメーション情報は、図26のアニメーション情報と同様のものである。従って、このアニメーション情報には、評価オブジェクト107〜109のためのアニメーションテーブルの格納位置情報が含まれる。このアニメーションテーブルは、図27のアニメーションテーブルと同様のものである。
さらに、プレイヤ94によるカーソル105の操作が、位置ガイドG及び方向ガイドg、あるいは、位置ガイドG及び経路ガイドrg、に適合して操作されたと判断した場合は、CPU201は、位置ガイドG及び方向ガイドg、あるいは、位置ガイドG及び経路ガイドrg、に対応したスクロール制御を行う。具体的には、CPU201は、位置ガイドG及び方向ガイドg、あるいは、位置ガイドG及び経路ガイドrg、並びに、ダンス速度を制御するノートナンバ、に対応して、全景スクリーン140の中心位置を変更して(図16(a)及び図16(b)参照)、背景110をスクロールする。また、CPU201は、横方向に全景スクリーン140をスクロールさせる場合は、該当する配列PA及び配列CAのデータを変更する。
さて、図28は、第1の楽譜データ305、第2の楽譜データ306、方向ガイドG、位置ガイドg、操作判定、及び、ダンスアニメーション、の関係を説明するためのタイミング図である。なお、図28において、太い線は、処理の実行期間を示し、太い線の左端の黒丸は処理の開始を示し、太い線の右側の黒丸は処理の終了を示す。
図28に示すように、第2の楽譜データ306の読み出しの開始時点は、第1の楽譜データ305の読み出しの開始時点T1,T2,…、よりも所定時間tだけ早い。従って、方向ガイドgは、第1の楽譜データ305の対応するノートナンバが読み出される時T1〜T3よりも、所定時間tだけ早く表示され、第1の楽譜データ305の対応するノートナンバが読み出される時T1〜T3まで(例えば、60フレームの間)表示される。同様に、位置ガイドGは、第1の楽譜データ305の対応するノートナンバが読み出される時T1〜T3よりも、所定時間tだけ早くアニメーションを開始し、第1の楽譜データ305の対応するノートナンバが読み出される時T1〜T3の少し後までアニメーションを継続する。
CPU201は、カーソル105の操作が、方向ガイドg及び位置ガイドGに適合して行われたか否かの判断を、方向ガイドgの表示開始から、一定期間経過後(例えば、30フレーム経過後)に開始し、第1の楽譜データ305の対応するノートナンバが読み出される時T1〜T3に終了する。そして、CPU201は、カーソル105の操作が、方向ガイドg及び位置ガイドGに適合して行われたと判断した場合は、判断期間の終了時に、ダンスアニメーション情報を登録する。従って、この場合、登録されたダンスアニメーション情報にもとづいて、ダンスアニメーションが実行される。
なお、第2の楽譜データ306の読み出しの開始時点が、第1の楽譜データ305の読み出しの開始時点T1,T2,…、よりも所定時間tだけ早い理由は、次の通りである。つまり、プレイヤ94は、方向ガイドg及び位置ガイドGによる案内開始後に、操作物150の操作を開始するため、その時間誤差を調整するため、方向ガイドg及び位置ガイドGの表示を楽曲のタイミングよりも早くしたのである。
経路ガイドrgの表示タイミングについては、方向ガイドGの表示タイミングと同様である。ただし、例えば、カーソル105の操作が経路ガイドrgに適合するか否かの判断は、経路ガイドrgによる案内開始時から終了時の間(例えば、60フレームの間)に行う。
[画像表示処理]CPU201は、カーソル制御処理、ガイド制御処理、及び、ダンス制御処理、により登録された情報をもとに、描画に必要な情報を垂直ブランキング期間に、図7のグラフィックプロセッサ202に与える。すると、グラフィックプロセッサ202は、与えられた情報をもとに映像信号を生成して、映像信号出力端子47に出力する。これにより、テレビジョンモニタ90のスクリーン91に、位置ガイドGや背景110等を含むゲーム画面が表示される。より具体的には、次の通りである。
CPU201は、カーソル制御処理で登録した座標情報(操作物150の注目点の座標情報)をもとに、カーソル105を構成する各スプライトの表示座標を算出する。そして、CPU201は、カーソル105を構成する各スプライトの、表示座標情報、カラーパレット情報、デプス値、サイズ情報、及び、画素パターンデータ格納位置情報、をグラフィックプロセッサ202に与える。グラフィックプロセッサ202は、これらの情報をもとに、カーソル105を表す映像信号を生成して、映像信号出力端子47に出力する。
また、CPU201は、ガイド制御処理で登録したアニメーション情報に含まれるアニメーションテーブル格納位置情報にもとづいて、アニメーションテーブルを参照し、ガイド(位置ガイドG,方向ガイドg,経路ガイドrg)のアニメーション画像を構成するオブジェクトのサイズ情報、及び、そのオブジェクトを構成するスプライトのサイズ情報、を取得する。そして、CPU201は、これらの情報と、登録されているアニメーション情報に含まれる表示座標情報と、をもとに、当該オブジェクトを構成する各スプライトの表示座標を算出する。また、CPU201は、これから表示する位置ガイドGのオブジェクト番号、アニメーションテーブルに含まれるオブジェクト及びスプライトのサイズ情報、並びに、アニメーションテーブルに含まれる位置ガイドGのアニメーション画像データ格納位置情報、をもとに、オブジェクトを構成する各スプライトの画素パターンデータ格納位置情報を算出する。
そして、さらに、CPU201は、アニメーションテーブルを参照して、位置ガイドGを構成する各スプライトの、カラーパレット情報、デプス値、及び、サイズ情報を、各スプライトの画素パターンデータ格納位置情報及び表示座標情報とともに、グラフィックプロセッサ202に与える。この場合、CPU201は、登録されているアニメーション情報に含まれる位置ガイドGの表示タイミング情報、及び、アニメーションテーブルの持続フレーム数情報、に従って、上記の情報をグラフィックプロセッサ202に与える。
方向ガイドg及び経路ガイドrgに関しても、CPU201がグラフィックプロセッサ202に与える情報の取得及び内容は、位置ガイドGと同様である。ただし、方向ガイドg1〜g4及び経路ガイドrg1〜rg10は、アニメーション情報に含まれる表示タイミング情報が指示するタイミングで、アニメーション情報に含まれる表示座標情報が指示する複数の位置に順次表示されるため、方向ガイドg1〜g4の各々及び経路ガイドrg1〜rg10の各々の表示開始時においては、CPU201は、登録されているアニメーション情報に含まれる表示座標情報及び表示タイミング情報を参照して、方向ガイドg1〜g4及び経路ガイドrg1〜rg10の情報をグラフィックプロセッサ202に与える。
以上のようにして与えられた情報をもとに、グラフィックプロセッサ202は、ガイド(位置ガイドG,方向ガイドg,経路ガイドrg)を表す映像信号を生成して、映像信号出力端子47に出力する。
また、CPU201は、ダンス制御処理で登録したダンスアニメーション情報に含まれるダンスアニメーションテーブル格納位置情報にもとづいて、ダンスアニメーションテーブルを参照し、ダンスアニメーション画像を構成するダンスオブジェクト106のサイズ情報、及び、ダンスオブジェクト106を構成するスプライトのサイズ情報、を取得する。そして、CPU201は、これらの情報と、登録されているダンスアニメーション情報に含まれる表示座標情報と、をもとに、ダンスオブジェクト106を構成する各スプライトの表示座標を算出する。また、CPU201は、これから表示するダンスオブジェクト106の番号、ダンスアニメーションテーブルに含まれるダンスオブジェクト106及びスプライトのサイズ情報、及び、ダンスアニメーションテーブルに含まれるダンスアニメーション画像データ格納位置情報、をもとに、ダンスオブジェクト106を構成する各スプライトの画素パターンデータ格納位置情報を算出する。
そして、さらに、CPU201は、ダンスアニメーションテーブルを参照して、ダンスオブジェクト106を構成する各スプライトの、カラーパレット情報、デプス値、及び、サイズ情報を、各スプライトの画素パターンデータ格納位置情報及び表示座標情報とともに、グラフィックプロセッサ202に与える。この場合、CPU201は、登録されているダンスアニメーション情報に含まれる表示タイミング情報、及び、ダンスアニメーションテーブルの持続フレーム数情報、に従って、上記の情報をグラフィックプロセッサ202に与える。
さらに、CPU201は、ダンス制御処理で登録した、評価オブジェクト107〜109のためのアニメーション情報及びアニメーションテーブルをもとに、映像信号の生成に必要な情報を取得して、グラフィックプロセッサ202に与える。なお、この場合に、CPU201がグラフィックプロセッサ202に与える情報の取得及び内容は、ダンスオブジェクト106の場合と同様である。
以上のようにして与えられた情報をもとに、グラフィックプロセッサ202は、ダンスオブジェクト106及び評価オブジェクト107〜109を表す映像信号を生成して、映像信号出力端子47に出力する。
[楽曲再生]楽曲の再生は、割込み処理により行われる。CPU201は、楽曲用の楽譜データポインタをインクリメントしながら、図18の楽曲制御情報を読み出して解釈する。なお、楽曲用の楽譜データポインタは、第1の楽譜データ305の読み出し位置を示すポインタである。
そして、CPU201は、読み出した楽曲制御情報に含まれるコマンドが、ノートオンであれば、その楽曲制御情報に含まれるノートナンバが示す音の高さ(ピッチ)及び楽器指定情報が示す楽器(音色)に応じた波形データが格納されている先頭アドレスを、サウンドプロセッサ203に与える。さらに、CPU201は、読み出した楽曲制御情報に含まれるコマンドが、ノートオンであれば、必要なエンベロープデータが格納されている先頭アドレスを、サウンドプロセッサ203に与える。さらに、CPU201は、読み出した楽曲制御情報に含まれるコマンドが、ノートオンであれば、その楽曲制御情報に含まれるノートナンバが示す音の高さ(ピッチ)に応じたピッチ制御情報、及び、その楽曲制御情報に含まれるボリューム情報、をサウンドプロセッサ203に与える。
ここで、ピッチ制御情報について説明しておく。ピッチ制御情報は、波形データを読み出す周期を変えることによって行われるピッチ変換に用いられる。つまり、サウンドプロセッサ203は、ピッチ制御情報を一定期間毎に読み出して累算する。そして、サウンドプロセッサ203は、この累算結果を加工して、波形データのアドレスポインタとする。よって、ピッチ制御情報に大きな値が設定されれば、アドレスポインタのインクリメントは早く行われ、波形データの周波数が高くなり、ピッチ制御情報に小さな値が設定されれば、アドレスポインタのインクリメントは遅く行われ、波形データの周波数が低くなる。このようにして、サウンドプロセッサ203は、波形データのピッチ変換を行う。
さて、サウンドプロセッサ203は、与えられたピッチ制御情報に基づいて、アドレスポインタをインクリメントしながら、与えられた先頭アドレスが示す位置に格納されている波形データをROM51から読み出す。そして、サウンドプロセッサ203は、順次読み出される波形データに、エンベロープデータ及びボリューム情報を乗算して、音声信号を生成する。このようにして、第1の楽譜データ305が指示する楽器の音色、音の高さ(ピッチ)、及び、音量、の音声信号が生成され、音声信号出力端子49に出力される。
一方、CPU201は、読み出した楽曲制御情報に含まれるゲートタイムを管理している。従って、CPU201は、ゲートタイムが経過した時に、該当する楽音の発音を終了するように、サウンドプロセッサ203に指示を出す。これを受けて、サウンドプロセッサ203は、指示された楽音の発音を終了する。
以上のようにして、第1の楽譜データ305に基づいて楽曲が再生され、テレビジョンモニタ90のスピーカ(図示せず)から発音される。
さて、次に、図1の音楽ゲーム装置1の全体の処理の流れを、フローチャートを用いて説明する。
図29は、図1の音楽ゲーム装置1の全体の処理の流れを示すフローチャートである。図29に示すように、ステップS1にて、CPU201は、システムの初期設定を実行する。ステップS2にて、CPU201は、操作物150の状態情報を算出する。ステップS3にて、CPU201は、ステップS2で算出した操作物150の状態情報をもとに、ゲーム処理を実行する。ステップS4にて、CPU201は、「M」が所定値「K」より小さいかどうかを判断する。CPU201は、「M」が所定値「K」以上である場合、ステップS5に進み、「M」に「0」を代入して、ステップS6に進む。一方、CPU201は、「M」が所定値「K」より小さい場合、ステップS4からステップS6に進む。この「M」については、後述の説明の中で明らかになる。
ステップS6では、CPU201は、ビデオ同期の割込み待ちかどうかを判断する。CPU201は、テレビジョンモニタ90の表示画面を更新するための画像情報を、垂直ブランキング期間の開始後にグラフィックプロセッサ202に与える(ステップS7)。従って、表示画面を更新するための演算処理が完了したら、ビデオ同期割込みがあるまで処理を進めないようにしている。ステップS6で「YES」であれば、即ち、ビデオ同期の割込み待ちであれば(ビデオ同期信号による割り込みがなければ)、同じステップS6に戻る。一方、ステップS6で「NO」であれば、即ち、ビデオ同期の割込み待ちでなければ(ビデオ同期信号による割り込みがあれば)、ステップS7に進む。ステップS7では、CPU201は、ステップS3のゲーム処理の結果をもとに、ゲーム画面(図11〜図13参照)の生成に必要な画像情報を、垂直ブランキング期間に、グラフィックプロセッサ202に与える(画像表示処理)。
図30は、図29のステップS1の初期設定処理の流れを示すフローチャートである。図30に示すように、ステップS10にて、CPU201は、ガイド用の楽譜データポインタを初期化する。ステップS11にて、CPU201は、ガイド用の実行待機カウンタを「0」にセットする。
ステップS12にて、CPU201は、楽曲用の楽譜データポインタを初期化する。ステップS13にて、CPU201は、楽曲用の実行待機カウンタを「t」にセットする。
ステップS14にて、CPU201は、イメージセンサ43の初期設定処理を実行する。ステップS15にて、CPU201は、各種フラグ及び各種カウンタを初期化する。
ステップS16にて、CPU201は、タイマ回路210を発音のための割込み源としてセットする。なお、割込み処理により、サウンドプロセッサ203による処理が実行されて、テレビジョンモニタ90のスピーカから音声が出力される。
図31は、図30のステップS14のセンサ初期設定処理の流れを示すフローチャートである。図31に示すように、最初のステップS20では、高速プロセッサ200は、設定データとして、コマンド“CONF”を設定する。ただし、このコマンド“CONF”は、イメージセンサ43に、高速プロセッサ200からコマンドを送信する設定モードに入ることを知らせるためのコマンドである。そして、次のステップS21にて、コマンド送信処理を実行する。
図32は、図31のステップS21のコマンド送信処理の流れを示すフローチャートである。図32に示すように、最初のステップS30では、高速プロセッサ200は、設定データ(ステップS21の場合はコマンド“CONF”)をレジスタデータ(I/Oポート)に設定し、次のステップS31でレジスタ設定クロックCLK(I/Oポート)をローレベルに設定する。その後、ステップS32で規定時間待機した後、ステップS33で、レジスタ設定クロックCLKをハイレベルに設定する。そして、さらにステップS34での規定時間の待機の後、ステップS35でレジスタ設定クロックCLKを再びローレベルに設定する。
このようにして、図33に示すように、規定時間の待機を行いながら、レジスタ設定クロックCLKをローレベル,ハイレベルそしてローレベルとすることによって、コマンド(コマンドまたはコマンド+データ)の送信処理が行われる。
図31の説明に戻る。ステップS22では、ピクセルモードを設定するとともに、露光時間の設定を行う。この実施の形態の場合、イメージセンサ43は先に述べたようにたとえば32ピクセル×32ピクセルのCMOSイメージセンサであるため、設定アドレス“0”のピクセルモードレジスタに32ピクセル×32ピクセルであることを示す“0h”を設定する。次のステップS23において、高速プロセッサ200は、レジスタ設定処理を実行する。
図34は、図31のステップS23のレジスタ設定処理の流れを示すフローチャートである。図34に示すように、最初のステップS40では、高速プロセッサ200は、設定データとして、コマンド“MOV”+アドレスを設定し、次のステップS41で、図32で先に説明したコマンド送信処理を実行して、それを送信する。次にステップS42において、高速プロセッサ200は、設定データとして、コマンド“LD”+データを設定し、次のステップS43でコマンド送信処理を実行して、それを送信する。そして、ステップS44で、高速プロセッサ200は、設定データとして、コマンド“SET”を設定し、次のステップS45でそれを送信する。なお、コマンド“MOV”は制御レジスタのアドレスを送信することを示すコマンドで、コマンド“LD”はデータを送信することを示すコマンドで、コマンド“SET”はデータをそのアドレスに実際に設定させるためのコマンドである。なお、この処理は、設定する制御レジスタが複数ある場合には、繰り返し実行される。
図31の説明に戻る。ステップS24では、設定アドレスを“1”(露光時間設定レジスタのローニブルのアドレスを示す)とし、最大露光時間を示す“FFh”のローニブルデータ“Fh”を設定すべきデータとして設定する。そして、ステップS25で図34のレジスタ設定処理を実行する。同様にして、ステップS26において、設定アドレスを“2”(露光時間設定レジスタのハイニブルのアドレスを示す)とし、最大露光時間を示す“FFh”のハイニブルデータ“Fh”を設定すべきデータとして設定し、ステップS27でレジスタ設定処理を実行する。
その後、ステップS28で設定終了を示しかつイメージセンサ43にデータの出力を開始させるためのコマンド“RUN”を設定し、ステップS29で送信する。このようにして、図30に示すステップS14でのセンサ初期設定処理が実行される。ただし、図31〜図34に示す具体例は、使用されるイメージセンサ43の仕様に応じて、適宜変更され得るものである。
図35は、図29のステップS2の状態情報算出処理の流れを示すフローチャートである。図35に示すように、ステップS50にて、CPU201は、ADC208からデジタルのピクセルデータを取得する。このデジタルのピクセルデータは、イメージセンサ43からのアナログのピクセルデータが、ADC208により、デジタルに変換されたものである。
ステップS51にて、注目点抽出処理が実行される。具体的には、CPU201が、赤外発光ダイオード15の発光時のピクセルデータと消灯時のピクセルデータとの差分を算出して、差分データを得る。そして、CPU201は、その差分データの最大値を検出して、所定の閾値Thと比較する。さらに、CPU201は、差分データの最大値が所定の閾値Thを超えている場合は、その最大値の差分データを持つピクセルの座標を、テレビジョンモニタ90のスクリーン91上の座標に変換し、操作物150の注目点の座標とする。
ステップS52にて、CPU201は、操作物150の注目点が、図24のいずれの領域a1〜a4に存在するかを判定して、判定結果を配列J1[M]に格納する。
ステップS53にて、CPU201は、操作物150の注目点が、図25のいずれの領域A1〜A4に存在するかを判定して、判定結果を配列J2[M]格納する。
図36は、図35のステップS50のピクセルデータ群取得処理の流れを示すフローチャートである。図36に示すように、最初のステップS60で、CPU201は、ピクセルデータ配列の要素番号としてXに「−1」、Yに「0」を設定する。本実施の形態におけるピクセルデータ配列は、X=0〜31、Y=0〜31の2次元配列であるが、前述のように各行の先頭ピクセルのデータとしてダミーデータが出力されるので、Xの初期値として「−1」が設定される。続くステップS61では、ピクセルデータの取得処理を実行する。
図37は、図36のステップS61のピクセルデータ取得処理の流れを示すフローチャートである。図37に示すように、最初のステップS70で、CPU201は、イメージセンサ43からのフレームステータスフラグ信号FSFをチェックし、ステップS71でそのアップエッジ(ローレベルからハイレベルへの)が発生したかどうか判断する。そして、ステップS71でフラグ信号FSFのアップエッジを検出すると、次のステップS72において、CPU201は、ADC208に入力されてきたアナログのピクセルデータのデジタルデータへの変換の開始を指示する。その後、ステップS73でイメージセンサ43からのピクセルストローブPDSをチェックし、ステップS74でそのストローブ信号PDSのローレベルからハイレベルへのアップエッジが発生したかどうか判断する。
ステップS74で“YES”が判断されると、CPU201は、ステップS75において、X=−1かどうか、すなわち先頭ピクセルかどうか判断する。先に述べたように、各行の先頭ピクセルはダミーピクセルとして設定されているので、このステップS75で“YES”が判断されると、次のステップS77でそのときのピクセルデータを取得しないで、要素番号Xをインクリメントする。
ステップS75で“NO”が判断されると、行の第2番目以降のピクセルデータであるので、ステップS76およびS78において、そのときのピクセルデータを取得し、テンポラリレジスタ(図示せず)にそのピクセルデータを格納する。その後、図36のステップS62に進む。
図36のステップS62では、テンポラリレジスタに格納されたピクセルデータをピクセルデータ配列P[Y][X]に代入する。
続くステップS63でXをインクリメントする。Xが32に満たない場合、前述のS61からS63の処理を繰り返し実行する。Xが32の場合、すなわちピクセルデータの取得が行の終端に到達した場合には、続くステップS65でXに「−1」を設定し、ステップS66でYをインクリメントし、次の行の先頭からピクセルデータの取得処理を繰り返す。
ステップS67でYが32の場合、すなわちピクセルデータの取得がピクセルデータ配列P[Y][X]の終端に到達した場合、図35のステップS51に進む。
図38は、図35のステップS51の注目点抽出処理の流れを示すフローチャートである。図38に示すように、ステップS80にて、CPU201は、イメージセンサ43からの、赤外発光ダイオード15の点灯時のピクセルデータと、赤外発光ダイオード15の消灯時のピクセルデータと、の差分を算出して、差分データを得る。ステップS81にて、CPU201は、配列Dif[X][Y]に、算出した差分データを代入する。ここで、実施の形態では、32ピクセル×32ピクセルのイメージセンサ43を用いているため、X=0〜31、Y=0〜31、である。
ステップS82にて、CPU201は、配列Dif[X][Y]の全要素をスキャンする。ステップS83にて、CPU201は、配列Dif[X][Y]の全要素の最大値を検出する。CPU201は、その最大値が所定の閾値Thより大きい場合は、ステップS85に進み、所定の閾値Th以下の場合は、図29のステップS4に進む(ステップS84)。
ステップS85にて、CPU201は、その最大値の座標を基に、操作物150の注目点の座標(Xc,Yc)を算出する。ステップS86にて、CPU201は、回数Mの値を1つインクリメントする(M=M+1)。
ステップS87にて、CPU201は、イメージセンサ43上の注目点の座標(Xc,Yc)を、テレビジョンモニタ90のスクリーン91上の座標(xc,yc)に変換する。ステップS88にて、CPU201は、M回目の注目点のx座標として、配列Px[M]にxcを代入し、M回目の注目点のy座標として、配列Py[M]にycを代入する。
図39は、図38のステップS85の注目点座標算出処理の流れを示すフローチャートである。図39に示すように、ステップS100にて、CPU201は、「m」及び「n」にそれぞれ、ステップS83で求めた最大値のX座標及びY座標を代入する。ステップS101にて、CPU201は、「m」を1つインクリメントする(m=m+1)。CPU201は、差分データDif[m][n]が、所定の閾値Thより大きい場合は、ステップS103に進み、そうでない場合は、ステップS104に進む(ステップS102)。ステップS103にて、CPU201は、「mr」にそのときの「m」を代入する。このように、ステップS101〜S103を繰り返しながら、最大値からX軸の正方向にスキャンを実行して、値が所定の閾値Thを超える一番端の差分データのX座標を求める。
ステップS104にて、CPU201は、「m」に、ステップS83で求めた最大値のX座標を代入する。ステップS105にて、CPU201は、「m」を1つデクリメントする。CPU201は、差分データDif[m][n]が、所定の閾値Thより大きい場合は、ステップS107に進み、そうでない場合は、ステップS108に進む(ステップS106)。ステップS107にて、CPU201は、「ml」にそのときの「m」を代入する。このように、ステップS105〜S107を繰り返しながら、最大値からX軸の負方向にスキャンを実行して、値が所定の閾値Thを超える一番端の差分データのX座標を求める。
ステップS108にて、CPU201は、X座標mrとX座標mlとの中心座標を算出して、それを、注目点のX座標(Xc)とする。ステップS109にて、CPU201は、「m」及び「n」にそれぞれ、ステップS108で求めた「Xc」およびステップS83で求めた最大値のY座標を代入する。ステップS110にて、CPU201は、「n」を1つインクリメントする(n=n+1)。CPU201は、差分データDif[m][n]が、所定の閾値Thより大きい場合は、ステップS112に進み、そうでない場合は、ステップS113に進む(ステップS111)。ステップS112にて、CPU201は、「md」にそのときの「n」を代入する。このように、ステップS110〜S112を繰り返しながら、最大値からY軸の正方向にスキャンを実行して、値が所定の閾値Thを超える一番端の差分データのY座標を求める。
ステップS113にて、CPU201は、「n」に、ステップS83で求めた最大値のY座標を代入する。ステップS114にて、CPU201は、「n」を1つデクリメントする。CPU201は、差分データDif[m][n]が、所定の閾値Thより大きい場合は、ステップS116に進み、そうでない場合は、ステップS117に進む(ステップS115)。ステップS116にて、CPU201は、「mu」にそのときの「n」を代入する。このように、ステップS114〜S116を繰り返しながら、最大値からY軸の負方向にスキャンを実行して、値が所定の閾値Thを超える一番端の差分データのY座標を求める。
ステップS117にて、CPU201は、Y座標mdとY座標muとの中心座標を算出して、それを、注目点のY座標(Yc)とする。以上のようにして、操作物150の注目点の座標(Xc,Yc)が算出される。
図40は、図29のステップS3のゲーム処理の流れを示すフローチャートである。図40に示すように、ステップS120にて、CPU201は、楽曲終了フラグをチェックして(図43のステップS196参照)、楽曲終了であれば、ゲーム処理を終了し、楽曲終了でなければ、ステップS121へ進む
ステップS121にて、CPU201は、操作物150の注目点のx座標Px[M]及びy座標Py[M]を、カーソル105のスクリーン91上の表示座標として登録する。
CPU201は、ステップS122とステップS144との間の処理を2回繰り返す。ここで、「j」は、ガイド表示番号Jを意味する(図43参照)。
ステップS123にて、CPU201は、ガイド開始フラグGF[j]をチェックする(図43のステップS194参照)。CPU201は、ガイド開始フラグGF[j]がオンであれば、ステップS125へ進み、オフであれば、ステップS144へ進む(ステップS124)。ステップS125にて、CPU201は、フレームカウンタC[j]をチェックする。CPU201は、フレームカウンタC[j]が「0」より大きい場合は、ステップS128に進み、フレームカウンタC[j]が「0」の場合は、ステップS127に進む(ステップS126)。ステップS127にて、CPU201は、ノートナンバNN[j]に従って、位置ガイドGのアニメーション情報を登録するとともに、方向ガイドgあるいは経路ガイドrgのアニメーション情報を登録する。フレームカウンタC[j]が「0」の場合にのみ、このようなアニメーション情報の登録を行うのは、一旦、アニメーション情報の登録をすれば、その後は、その登録情報に従ってアニメーションが実行されるため、アニメーションの開始時のみ登録するようにしている。
ステップS128にて、CPU201は、ノートナンバNN[j]をチェックして、カーソル105の旋回を指示するノートナンバである場合は(図20(b)及び図20(c)参照)、ステップS131に進み、それ以外のノートナンバであれば(図20(a)参照)、ステップS129に進む。ステップS129にて、CPU201は、フレームカウンタC[j]をチェックする。CPU201は、フレームカウンタ[j]が、規定フレーム数f1以上であれば、ステップS131へ進み、そうでなければ、ステップS141に進む(ステップS130)。ステップS131にて、CPU201は、カーソル105の操作が、ガイド(位置ガイドG/方向ガイドg/経路ガイドrg)に適合しているか否かを判定する(成功判定)。
なお、ステップS128及びステップS131から明らかなように、ノートナンバNN[j]がカーソル105の旋回を指示するノートナンバである場合には、フレームカウンタC[j]に関係なく、位置ガイドG及び経路ガイドrgの表示開始時から(フレームカウンタC[j]が「0」)、カーソル105の操作の成功判定を行っている。一方、ノートナンバNN[j]がカーソル105の旋回を指示するノートナンバ以外である場合は、位置ガイドG及び方向ガイドgの表示開始時から(フレームカウンタC[j]が「0」)、規定フレーム数f1(例えば。30フレーム)経過した後に、カーソル105の操作の成功判定を行っている(図28参照)。
さて、CPU201は、ステップS131での判定の結果、カーソル105の操作が成功であった場合は、ステップS133に進み、成功でない場合は、ステップS140に進む(ステップS132)。ステップS133にて、CPU201は、ノートナンバNN[j]及びダンス速度フラグDFを参照して(図43のステップS193、ステップS190及びステップS192参照)、ダンスアニメーション情報の登録を行う。また、操作成功の場合、背景110をスクロールすべく、CPU201は、ノートナンバNN[j]及びダンス速度フラグDFを参照して、全景スクリーン140の中心位置の変更、並びに、配列PA及び配列CAの該当データの変更を実行する。さらに、CPU201は、操作成功の際に使用する位置ガイドGのアニメーションテーブル格納位置情報を登録する。
ステップS134にて、CPU201は、ノートナンバNN[j]をチェックして、カーソル105の旋回を指示するノートナンバである場合は、ステップS137に進み、それ以外のノートナンバであれば、ステップS135に進む。ステップS135にて、CPU201は、フレームカウンタC[j]をチェックする。CPU201は、フレームカウンタ[j]が、規定フレーム数f2以上であれば、ステップS137へ進み、そうでなければ、ステップS138に進む(ステップS136)。ステップS137にて、CPU201は、スコアSに「3」を加える。一方、ステップS138にて、スコアSに「1」を加える。
なお、ステップS137では、スコアSに「3」を加え、ステップS138では、スコアSに「1」を加えているの次の理由による。位置ガイドG及び方向ガイドgの表示開始時から(フレームカウンタC[j]が「0」)、規定フレーム数f2(例えば、50フレーム)経過した後の所定期間内(例えば、10フレーム)に、カーソル105が位置ガイドGの領域に存在した場合は、ベストなタイミングでカーソル105が操作されたとして、「3」を加える。一方、規定フレーム数f1経過時から、規定フレーム数f2経過前に、カーソル105が位置ガイドGの領域に存在した場合は、通常の成功であるとして、「1」を加える。また、位置ガイドG及び経路ガイドrg(カーソル105の旋回を指示するガイド)に適合した操作が行われた場合は、一律に「3]を加える。
さて、ステップS139にて、CPU201は、フレームカウンタC[j]をチェックする。CPU201は、フレームカウンタC[j]が、規定フレーム数f3(例えば、60フレーム)に等しければ、ステップS142へ進み、そうでなければ、ステップS141に進む(ステップS140)。ステップS141にて、CPU201は、フレームカウンタC[j]を1つインクリメントする。一方、ステップS142にて、CPU201は、フレームカウンタC[j]に「0」をセットする。ステップS143にて、CPU201は、ガイド開始フラグGF[j]をオフにする。なお、規定フレーム数f3は、成功判定の終了時を定めている。
図41は、割込み処理の流れを示すフローチャートである。図41に示すように、ステップS150にて、CPU201は、楽曲の再生処理を実行する。ステップS151にて、CPU201は、ガイド(位置ガイドG、方向ガイドg、経路ガイドrg)の登録処理を実行する。
図42は、図41のステップS150の楽曲再生処理の流れを示すフローチャートである。図42に示すように、ステップS160にて、CPU201は、楽曲用の実行待機カウンタをチェックする。楽曲用の実行待機カウンタの値が「0」ならば、ステップS162へ進み、「0」でないならば、ステップS170へ進む(ステップS161)。ステップS170にて、CPU201は、楽曲用の実行待機カウンタをデクリメントする。
一方、ステップS162にて、CPU201は、楽曲用の楽譜データポインタの指すコマンドを読み出して解釈する。コマンドがノートオンであれば、ステップS164に進む(ステップS163)。一方、コマンドが、ノートオンでなければ、即ち、待機であれば、ステップS165に進む。ステップS165にて、CPU201は、楽曲用の実行待機カウンタに待機時間をセットする。
さて、ステップS164にて、CPU201は、サウンドプロセッサ203に、読み出したノートナンバに応じた発音を開始させる。ステップS166にて、CPU201は、楽曲用の楽譜データポインタをインクリメントする。
ステップS167にて、CPU201は、発音中のノートナンバに対する残りの発音時間をチェックする。残りの発音時間が「0」であれば、ステップS169に進み、そうでなければ、図41のステップS151へ進む(ステップS168)。ステップS169にて、CPU201は、サウンドプロセッサ203に対して、残りの発音時間が「0」のノートナンバの発音終了処理を実行させる。
図43は、図41のステップS151のガイド登録処理の流れを示すフローチャートである。図43に示すように、ステップS180にて、CPU201は、ガイド用の実行待機カウンタをチェックする。ガイド用の実行待機カウンタの値が「0」ならば、ステップS182へ進み、「0」でないならば、ステップS198へ進む(ステップS181)。ステップS198にて、CPU201は、ガイド用の実行待機カウンタをデクリメントする。
一方、ステップS182にて、CPU201は、ガイド用の楽譜データポインタの指すコマンドを読み出して解釈する。CPU201は、コマンドがノートオンであれば、ステップS184に進む(ステップS183)。一方、CPU201は、コマンドが、ノートオンでなければ、即ち、待機であれば、ステップS197に進む。ステップS197にて、CPU201は、ガイド用の実行待機カウンタに待機時間をセットする。
さて、CPU201は、ノートナンバが楽曲終了を意味するものであれば、ステップS196に進み、そうでなければ、ステップS185に進む(ステップS184)。ステップS196にて、CPU201は、楽曲終了フラグをオンにする。
一方、CPU201はノートナンバが楽曲開始を意味するものであれば、ステップS195に進み、そうでなければ、ステップS186に進む(ステップS185)。CPU201は、ガイド表示番号Jが、「1」であれば、ステップS188にて、ガイド表示番号Jを「0」とし、ガイド表示番号Jが、「1」でなければ(「0」であれば)、ステップS187にて、ガイド表示番号Jを「1」とする。なお、ある位置ガイドGによる案内と他の位置ガイドGによる案内とが、違うタイミングで開始されるが、ある期間重複して実行される場合もあるため、ガイド表示番号Jを規定して、図29のステップS3のゲーム処理を実行している。
さて、CPU201は、ノートナンバが、速い速度のダンスアニメーションを行うことを指示するノートナンバであれば、ステップS190に進み、そうでなければ、ステップS191に進む(ステップS189)。ステップS190にて、CPU201は、ダンス速度フラグDFを「1」(速い速度のダンスアニメーション)にセットする。
一方、CPU201は、ノートナンバが、遅い速度のダンスアニメーションを行うことを指示するノートナンバであれば、ステップS192に進み、そうでなければ、ステップS193に進む(ステップS191)。ステップS192にて、CPU201は、ダンス速度フラグDFを「0」(遅い速度のダンスアニメーション)にセットする。
さて、ノートナンバが、楽曲終了を表すノートナンバ、楽曲の開始を表すノートナンバ、速い速度のダンスアニメーションを表すノートナンバ、及び、遅い速度のダンスアニメーションを表すノートナンバ、のいずれでもない場合は、そのノートナンバは、ガイドの種類を表すノートナンバ(図20(a)〜図20(c))であるから、CPU201は、ステップS193にて、配列NN[J]に、そのノートナンバを代入する。ステップS194にて、CPU201は、ガイド開始フラグGF[J]をオンにする。
ステップS195にて、CPU201は、ガイド用の楽譜データポインタをインクリメントする。
さて、次に、方向ガイドgの他の例を説明する。図44は、方向ガイドgの他の例を適用したゲーム画面の例示図である。図44に示すように、位置ガイドG1から位置ガイドG2へ延びるように、帯状の方向ガイドg20が表示される。この方向ガイドg20は、時間の経過とともに、位置ガイドG1から位置ガイドG2まで延びる。この方向ガイドg20が延びる方向によって、カーソル105を操作する方向が案内される。また、方向ガイドg20が位置ガイドG2に到達した時から所定時間を、カーソル105の操作の成功判定の期間とすれば、方向ガイドg20により、カーソル105の操作タイミングを案内することもできる。なお、方向ガイドg20は、位置ガイドG1から位置ガイドG2までの経路の色を徐々に変化させることにより表現されている、ということもできる。
図45は、方向ガイドgのさらに他の例を適用したゲーム画面の例示図である。図45に示すように、ゲーム画面には、位置ガイドGと他の位置ガイドGとの間に、方向ガイドg30が表示される。この方向ガイドg30は、5つの部分経路g31〜g35からなる。そして、図45の例では、位置ガイドG1から位置ガイドG2へ向かって順番に、5つの部分経路g31〜g35の色が変化する。なお、色の変化は、ハッチングで示している。このようにすることで、部分経路g31〜g35の色の変化の方向により、カーソル105の操作方向を案内できる。また、この例において、カーソル105の移動位置を案内する位置ガイドG2に隣接した部分経路g35の色が変化した時から所定時間を、カーソル105の操作の成功判定の期間とすれば、方向ガイドg30により、カーソル105の操作タイミングを案内することもできる。
図46は、方向ガイドgのさらに他の例を適用したゲーム画面の例示図である。図46に示すように、ゲーム画面には、位置ガイドG1と位置ガイドG2との間に、方向ガイドg40が表示される。この方向ガイドg40は、時間の経過とともに、位置ガイドG1から位置ガイドG2まで移動する。この方向ガイドg40が移動する方向によって、カーソル105を操作する方向が案内される。また、方向ガイドg40が位置ガイドG2に到達した時から所定時間を、カーソル105の操作の成功判定の期間とすれば、方向ガイドg40により、カーソル105の操作タイミングを案内することもできる。
さて、以上のように本実施の形態では、カーソル105の操作がガイド(位置ガイドG、方向ガイドg、経路ガイドrg)に適合している場合に、ガイドによる案内に応じて画像(上記例では、ダンスオブジェクト106及び背景110)の表示が制御される。この場合、ガイドによる案内に適合してカーソル105の操作が行われているため、カーソル105の操作に応じて画像の表示が制御されることになる。つまり、カーソル105は操作物150と連動しているため、操作物150の操作に応じて画像の表示が制御される。また、ストロボスコープにより間欠的に光が照射される操作物150を撮像ユニット13により撮影して、操作物150の状態情報を求めている。このため、操作物150の状態情報を求めるために、操作物150に電源により駆動する回路を内蔵する必要がない。さらに、この音楽ゲーム装置1は、楽曲を自動演奏する。
以上の結果、プレイヤ94が関与することなく楽曲を自動演奏しながらも、簡易な構成の操作物150をプレイヤ94が操作することにより、楽曲とともに、操作物150の操作に追従した画像を楽しむことができる。
また、楽曲に基づくタイミングでガイドが制御されるため、プレイヤ94が、ガイドに従ってカーソル105を操作すれば、操作物150の操作も楽曲に合ったものとなる。従って、プレイヤ94は、楽曲に合った操作物150の操作を楽しむことができる。
ここで、例えば、高速プロセッサ200は、ノートナンバ「55」及び「67」に対応して、背景110を左にスクロールさせ、また、ダンスオブジェクト106を反時計回りに回転させるダンスアニメーション情報及びダンスアニメーションテーブルを用意する。また、例えば、高速プロセッサ200は、ノートナンバ「45」及び「64」に対応して、背景110を右にスクロールさせ、また、ダンスオブジェクト106を時計回りに回転させるダンスアニメーション情報及びダンスアニメーションテーブルを用意する。また、例えば、高速プロセッサ200は、ノートナンバ「76」及び「77」に対応して、背景110を下にスクロールさせ、また、ダンスオブジェクト106を反時計回りに回転させるダンスアニメーション情報及びダンスアニメーションテーブルを用意する。また、例えば、高速プロセッサ200は、ノートナンバ「65」及び「74」に対応して、背景110を上にスクロールさせ、また、ダンスオブジェクト106を時計回りに回転させるダンスアニメーション情報及びダンスアニメーションテーブルを用意する。また、例えば、ノートナンバ「53」に対応して、ダンスオブジェクト106を時計回りに大きく回転させるダンスアニメーション情報及びダンスアニメーションテーブルを用意する。また、例えば、ノートナンバ「57」に対応して、ダンスオブジェクト106を反時計回りに大きく回転させるダンスアニメーション情報及びダンスアニメーションテーブルを用意する。
なお、このようなノートナンバ(図20(a)〜図20(c)参照)は、ガイドの表示を制御するノートナンバであるため、背景110及びダンスオブジェクト106は、ガイドに応じて制御されるということになる。さらに言い換えると、背景110及びダンスオブジェクト106は、操作物150の操作に応じて制御されるということになる。
また、本実施の形態では、位置ガイドGは、カーソル105の移動位置及び操作タイミングを案内する。そして、高速プロセッサ200は、操作物150によるカーソル105の操作が、位置ガイドGの案内に適合したときに、位置ガイドGが案内する移動位置の方向に対応して、画像(上記例では、ダンスオブジェクト106及び背景110)の表示を制御する。
従って、プレイヤ94が、操作物150を操作して、カーソル105を、位置ガイドGが案内する操作タイミングで、位置ガイドGが案内する移動位置に移動させた場合に、位置ガイドGが案内する移動位置の方向に対応して、画像の表示が制御される。その結果、楽曲とともに、操作物150の操作に連動するカーソル105の移動に追従した画像を楽しむことができる(図12参照)。
さらに、本実施の形態では、経路ガイドrgは、カーソル105の移動経路、移動方向、及び、操作タイミングを案内する。従って、プレイヤ94が、操作物150を操作して、カーソル105を、経路ガイドrgが案内する操作タイミングで、経路ガイドrgが案内する移動方向に、経路ガイドrgが案内する移動経路に沿って移動させた場合に、経路ガイドrgに応じて、画像(上記例では、ダンスオブジェクト)の表示が制御される。その結果、楽曲とともに、操作物150の操作に連動するカーソル105の移動に応じた画像を楽しむことができる(図13参照)。
さらに、本実施の形態によれば、操作物150の注目点の位置が、位置ガイドGが案内する期間内に、位置ガイドGが案内する領域内に存在する場合に、操作物150に連動するカーソル105の操作が、位置ガイドGの案内に適合していると判断される(図24参照)。また、操作物150の注目点の位置が、経路ガイドrgが案内する期間内に、経路ガイドrgが案内する複数の所定領域を、経路ガイドrgが案内する所定の順序で移動した場合に、操作物150に連動するカーソル105の操作が、経路ガイドrgの案内に適合していると判断される(図25参照)。以上のように、簡易な処理で算出できる操作物150の注目点の位置により、カーソル105の操作の的確性を判断できる。
さらに、本実施の形態では、位置ガイドGは、スクリーン91上の予め定められた複数の位置の各々に表示される。そして、高速プロセッサ200は、位置ガイドGの形態を、楽曲にもとづくタイミングで変化させる(図12の例では、花が開くアニメーション)。従って、プレイヤ94は、位置ガイドGの形態の変化により、カーソル105を移動すべき位置及び方向を容易に認識できる。
さらに、本実施の形態では、方向ガイドg及び経路ガイドrgは、スクリーン91上の第1の予め定められた位置から第2の予め定められた位置への移動が視覚的に認識できる表示により表現される。このように、位置ガイドGに加えて、方向ガイドgおよび経路ガイドrgによっても、カーソル105の操作を案内している。従って、プレイヤ94は、カーソル105を移動すべき方向及び経路をより明確に認識できる。より具体的には次の通りである。
方向ガイドg及び経路ガイドrgは、スクリーン91上の第1の予め定められた位置を始点とし、第2の予め定められた位置を終点とする経路上に配置される複数のオブジェクト(図12及び図13の例では、球の図形)の形態の変化により表現される。この場合、プレイヤ94は、複数のオブジェクトの形態の変化により、カーソル105を移動すべき方向及び経路を容易に認識できる。
また、方向ガイドgは、スクリーン91上の第1の予め定められた位置から第2の予め定められた位置へのオブジェクト(図46の例では、鳥の図形)の移動により表現される。この場合、プレイヤ94は、オブジェクトの移動により、カーソル105を移動すべき方向及び経路を容易に認識できる。
また、方向ガイドgは、スクリーン91上の第1の予め定められた位置を始点とし、第2の予め定められた位置を終点とする経路の形態の変化により表現される(図44及び図45参照)。この場合、プレイヤ94は、経路の形態の変化により、カーソル105を移動すべき方向及び経路を容易に認識できる。
さらに、本実施の形態では、高速プロセッサ200は、操作物150の状態情報として、速さ情報、移動方向情報、移動距離情報、速度ベクトル情報、加速度情報、移動軌跡情報、面積情報、若しくは、位置情報、のいずれか、又は、それらの2以上の組み合わせ、を算出できる。このように、操作物150によるカーソル105の操作が、ガイド(位置ガイドG、方向ガイドg、経路ガイドrg)に適合しているか否かを判断する際の操作物150の状態情報として、様々な情報を利用できるため、ガイドの表現の自由度が大きくなり、ひいては、ゲーム内容の設計の自由度も大きくなる。
さらに、本実施の形態では、反射シート155を取り付けた操作物150に間欠的に赤外光を照射して、これを撮影することにより、操作物150の状態情報を求めることができる。このため、操作物150の状態情報を求めるために、操作物150に電源により駆動する回路を内蔵する必要がない。よって、操作物150の操作性及び信頼性の向上を図ることができ、また、コストの低減を図ることができる。
なお、本発明は、上記の実施の形態に限られるものではなく、その要旨を逸脱しない範囲で種々の態様において実施することが可能であり、例えば、以下のような変形も可能である。
(1)実施の形態では、操作物150に追従して制御される画像(追従画像)の例として、ダンスオブジェクト106及び背景110を挙げた。ただし、本発明は、これに限定されず、追従画像として任意のオブジェクトを選択できる。また、背景110のスクロールにより、ダンスオブジェクト106の移動を表現するのではなく、ダンスオブジェクト106自体を上下左右に移動させることもできる。
(2)実施の形態では、位置ガイドG及び方向ガイドgの双方により、カーソル105の直線操作を案内したが、いずれか一方により案内することもできる。方向ガイドgのみによりカーソル105の操作を案内する場合は、静止画の位置ガイドGを、方向ガイドgの始点と終点とに配置することが好ましい。また、位置ガイドG及び経路ガイドrgの双方により、カーソル105の旋回操作を案内したが、経路ガイドrgのみにより案内することもできる。また、ガイド(位置ガイドG、方向ガイドg、経路ガイドrg)を、アニメーションにより表現したが、本発明は、これに限定されない。また、ガイドの態様は、上記したものに限定されるものではない。
(3)実施の形態では、操作物として、スティック152および反射ボール151からなる操作物150を採用したが、反射体を具備するのもであれば、操作物の形態はこれに限定されない。
(4)実施の形態では、図23(a)〜図23(d)に示すようにして、操作物150の注目点の座標を算出したが、所定の閾値Thを超える最大輝度値を持つピクセルの座標を(図38のステップS83参照)、スクリーン91上の座標に変換して、これを注目点の座標とすることもできる。
(5)図6の高速プロセッサ200として、任意の種類のプロセッサを使用できるが、本件出願人が既に特許出願している高速プロセッサを用いることが好ましい。この高速プロセッサは、例えば、特開平10−307790号公報およびこれに対応するアメリカ特許第6,070,205号に詳細に開示されている。
以上、本発明を実施例により詳細に説明したが、当業者にとっては、本発明が本願中に説明した実施例に限定されるものではないということは明らかである。本発明は、特許請求の範囲の記載により定まる本発明の趣旨及び範囲を逸脱することなく修正及び変更態様として実施することができる。従って、本願の記載は、例示説明を目的とするものであり、本発明に対して何ら制限的な意味を有するものではない。
【図1】

【図2】

【図3】

【図4】

【図5】

【図6】

【図7】

【図8】

【図9】

【図10】

【図11】

【図12】

【図13】

【図14】

【図15】

【図16】

【図17】

【図18】

【図19】

【図20】

【図21】

【図22】

【図23】

【図24】

【図25】

【図26】

【図27】

【図28】

【図29】

【図30】

【図31】

【図32】

【図33】

【図34】

【図35】

【図36】

【図37】

【図38】

【図39】

【図40】

【図41】

【図42】

【図43】

【図44】

【図45】

【図46】


【特許請求の範囲】
【請求項1】
楽曲を自動演奏する音楽ゲーム装置であって、
プレイヤによって操作される操作物に、予め定められた周期で、光を照射するストロボスコープと、
前記ストロボスコープの発光時及び消灯時のそれぞれにおいて、前記操作物を撮影して、発光時画像信号及び消灯時画像信号を生成する撮像ユニットと、
前記発光時画像信号と前記消灯時画像信号との差分信号を生成する差分信号生成ユニットと、
前記差分信号に基づいて、前記操作物の状態情報を算出する状態情報算出ユニットと、
前記操作物に連動するカーソルの操作のためのガイドの表示を、前記楽曲に基づくタイミングで制御するガイド制御ユニットと、
前記カーソルの表示を、前記操作物の前記状態情報に基づいて制御するカーソル制御ユニットと、
前記操作物による前記カーソルの操作が、前記ガイドに適合したときに、前記ガイドによる案内に応じて、画像の表示を制御する追従画像制御ユニットと、を備え、
前記追従画像制御ユニットは、前記操作物の前記状態情報及び前記ガイドに関する情報に基づいて、前記操作物による前記カーソルの操作が、前記ガイドに適合しているか否かを判断する、音楽ゲーム装置。
【請求項2】
前記ガイドは、前記カーソルの移動位置及び操作タイミングを案内し、
前記追従画像制御ユニットは、前記操作物による前記カーソルの操作が、前記ガイドに適合したときに、前記ガイドが案内する前記移動位置の方向に対応して、前記画像の表示を制御する、請求項1記載の音楽ゲーム装置。
【請求項3】
前記状態情報算出ユニットは、前記差分信号に基づいて、前記操作物の前記状態情報としての位置を算出し、
前記追従画像制御ユニットは、前記状態情報算出ユニットが算出した前記操作物の前記位置が、前記ガイドが案内する期間内に、前記ガイドが案内する領域内に存在する場合に、前記操作物に連動するカーソルの操作が、前記ガイドに適合していると判断する、請求項2記載の音楽ゲーム装置。
【請求項4】
前記ガイドは、前記カーソルの移動経路、移動方向、及び、操作タイミングを案内する、請求項1記載の音楽ゲーム装置。
【請求項5】
前記状態情報算出ユニットは、前記差分信号に基づいて、前記操作物の前記状態情報としての位置を算出し、
前記追従画像制御ユニットは、前記状態情報算出ユニットが算出した前記操作物の前記位置が、前記ガイドが案内する期間内に、前記ガイドが案内する複数の所定領域を、前記ガイドが案内する所定の順序で移動した場合に、前記操作物に連動するカーソルの操作が、前記ガイドに適合していると判断する、請求項4記載の音楽ゲーム装置。
【請求項6】
前記ガイドは、画面上の予め定められた複数の位置の各々に表示され、
前記ガイド制御ユニットは、前記ガイドの形態を、前記楽曲にもとづくタイミングで変化させる、請求項1記載の音楽ゲーム装置。
【請求項7】
前記ガイドは、画面上の第1の予め定められた位置から第2の予め定められた位置への移動が視覚的に認識できる表示により表現され、
前記ガイド制御ユニットは、前記ガイドの表示を、前記楽曲にもとづくタイミングで制御する、請求項1記載の音楽ゲーム装置。
【請求項8】
前記ガイドは、画面上の前記第1の予め定められた位置を始点とし、前記第2の予め定められた位置を終点とする経路上に配置される複数のオブジェクトの形態の変化により表現される、請求項7記載の音楽ゲーム装置。
【請求項9】
前記ガイドは、画面上の前記第1の予め定められた位置から前記第2の予め定められた位置へのオブジェクトの移動により表現される、請求項7記載の音楽ゲーム装置。
【請求項10】
前記ガイドは、画面上の前記第1の予め定められた位置を始点とし、前記第2の予め定められた位置を終点とする経路の形態の変化により表現される、請求項7記載の音楽ゲーム装置。
【請求項11】
前記状態情報算出ユニットが算出する前記操作物の前記状態情報は、速さ情報、移動方向情報、移動距離情報、速度ベクトル情報、加速度情報、移動軌跡情報、面積情報、若しくは、位置情報、のいずれか、又は、それらの2以上の組み合わせ、である、請求項1記載の音楽ゲーム装置。
【請求項12】
楽曲を自動演奏する音楽ゲームシステムであって、
プレイヤによって操作される操作物と、
前記操作物に、予め定められた周期で、光を照射するストロボスコープと、
前記ストロボスコープの発光時及び消灯時のそれぞれにおいて、前記操作物を撮影して、発光時画像信号及び消灯時画像信号を生成する撮像ユニットと、
前記発光時画像信号と前記消灯時画像信号との差分信号を生成する差分信号生成ユニットと、
前記差分信号に基づいて、前記操作物の状態情報を算出する状態情報算出ユニットと、
前記操作物に連動するカーソルの操作のためのガイドの表示を、前記楽曲に基づくタイミングで制御するガイド制御ユニットと、
前記カーソルの表示を、前記操作物の前記状態情報に基づいて制御するカーソル制御ユニットと、
前記操作物による前記カーソルの操作が、前記ガイドに適合したときに、前記ガイドによる案内に応じて、画像の表示を制御する追従画像制御ユニットと、を備え、
前記追従画像制御ユニットは、前記操作物の前記状態情報及び前記ガイドに関する情報に基づいて、前記操作物によるカーソルの操作が、前記ガイドに適合しているか否かを判断する、音楽ゲームシステム。
【請求項13】
請求項1記載の音楽ゲーム装置のプレイヤが操作する操作物であって、
前記プレイヤによって把持される棒状の把持部と、
前記把持部の一方端に設けられ、受けた光を再帰反射する反射部と、を備える、操作物。
【請求項14】
楽曲を自動演奏するステップと、
プレイヤによって操作される操作物に、予め定められた周期で、光を照射するステップと、
前記光の発光時及び消灯時のそれぞれにおいて、前記操作物を撮影して、発光時画像信号及び消灯時画像信号を生成するステップと、
前記発光時画像信号と前記消灯時画像信号との差分信号を生成するステップと、
前記差分信号に基づいて、前記操作物の状態情報を算出するステップと、
前記操作物に連動するカーソルの操作のためのガイドの表示を、前記楽曲に基づくタイミングで制御するステップと、
前記カーソルの表示を、前記操作物の前記状態情報に基づいて制御するステップと、
前記操作物の前記状態情報及び前記ガイドに関する情報に基づいて、前記操作物による前記カーソルの操作が、前記ガイドに適合しているか否かを判断し、前記操作物による前記カーソルの操作が、前記ガイドに適合したときに、前記ガイドによる案内に応じて、画像の表示を制御するステップと、をコンピュータに実行させる音楽ゲームプログラム。
【請求項15】
楽曲を自動演奏するステップと、
プレイヤによって操作される操作物に、予め定められた周期で、光を照射するステップと、
前記光の発光時及び消灯時のそれぞれにおいて、前記操作物を撮影して、発光時画像信号及び消灯時画像信号を生成するステップと、
前記発光時画像信号と前記消灯時画像信号との差分信号を生成するステップと、
前記差分信号に基づいて、前記操作物の状態情報を算出するステップと、
前記操作物に連動するカーソルの操作のためのガイドの表示を、前記楽曲に基づくタイミングで制御するステップと、
前記カーソルの表示を、前記操作物の前記状態情報に基づいて制御するステップと、
前記操作物による前記カーソルの操作が、前記ガイドに適合したときに、前記ガイドによる案内に応じて、画像の表示を制御するステップと、を含み、
画像の表示を制御する前記ステップでは、前記操作物の前記状態情報及び前記ガイドに関する情報に基づいて、前記操作物による前記カーソルの操作が、前記ガイドに適合しているか否かを判断する、音楽ゲーム方法。

【国際公開番号】WO2005/028053
【国際公開日】平成17年3月31日(2005.3.31)
【発行日】平成18年11月30日(2006.11.30)
【国際特許分類】
【出願番号】特願2005−514131(P2005−514131)
【国際出願番号】PCT/JP2004/014025
【国際出願日】平成16年9月17日(2004.9.17)
【出願人】(396025861)新世代株式会社 (138)
【Fターム(参考)】