(57)【特許請求の範囲】
【請求項１】
撮像画像から特定色領域を抽出する抽出手段と、
表示画面上に表示される複数の背景画像を発生する画像発生手段と、
前記画像発生手段によって前記表示画面上に表示された複数の背景画像の表示領域の各々に対応させて検出領域を割り当てる割当手段と、
複数種の楽音信号を記憶する楽音信号記憶手段と、
前記検出領域と前記楽音信号記憶手段に記憶される楽音信号の音色を指定する情報とを夫々対応付けて記憶する記憶手段と、
前記割当手段によって割り当てられた複数の検出領域の何れかと前記抽出手段によって抽出された特定色領域とが重なった時に、この重なった検出領域に基づいて前記記憶手段に記憶されている複数種の音色を指定する情報から音色を指定する情報を選択する選択手段と、
前記重なった検出領域の重心位置と前記抽出された特定色領域の重心位置との離間距離に基づいて、前記選択手段によって選択された音色を指定する情報の出力音量を指定する情報を生成する生成手段と、
前記選択手段によって選択された音色を指定する情報と前記生成手段によって生成された出力音量を指定する情報とに従って前記楽音信号記憶手段より対応する楽音信号を読み出して出力する出力手段と
を具備することを特徴とする画像制御装置。
【請求項２】
撮像画像から特定色領域を抽出する抽出ステップと、
表示画面上に表示される複数の背景画像を発生する画像発生ステップと、
前記画像発生ステップにて前記表示画面上に表示された複数の背景画像の表示領域の各々に対応させて検出領域を割り当てる割当ステップと、
前記割当ステップにて割り当てられた複数の検出領域の何れかと前記抽出ステップにて抽出された特定色領域とが重なった時に、この重なった検出領域に基づいて予め検出領域と楽音信号の音色を指定する情報とを夫々対応付けて記憶した第１のメモリより対応する音色を指定する情報を選択する選択ステップと、
前記重なった検出領域の重心位置と前記抽出された特定色領域の重心位置との離間距離に基づいて、前記選択ステップにて選択された音色を指定する情報の出力音量を指定する情報を生成する生成ステップと、
前記選択ステップにて選択された音色を指定する情報と前記生成ステップにて生成された出力音量を指定する情報とに従って予め複数種の楽音信号を記憶する第２のメモリより対応する楽音信号を読み出して出力する出力ステップと
からなることを特徴とする画像制御方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、例えば、バーチャルリアリティ（仮想現実感）を創出するビデオゲームなどに用いて好適な画像制御装置および画像制御方法に関する。
【０００２】
【従来の技術】
従来より、操作パッド等の操作に応じてオブジェクト画像を動画制御したり、効果音を発生させたりする画像制御装置が各種実用化されている。なお、ここで言うオブジェクト画像とは、ゲーム画面に表示される「キャラクタ」を指し、背景となるバックグラウンド画面上に移動表示されるものである。この種の装置は、ビデオゲームあるいはＴＶゲームと呼ばれ、遊戯者の反射神経を問うシューティングゲームや、仮想的な現実感をシミュレートするゲーム等が知られている。
【０００３】
このようなビデオゲームは、ゲーム操作に対応したビデオ信号を発生する画像処理部と、この画像処理部から供給されるビデオ信号を映像表示するディスプレイとから構成される。画像処理部は、ＣＰＵ、ＲＯＭおよびＲＡＭ等から構成され、例えば、ＲＯＭパックに記憶された画像情報および制御情報を順次読み出し、画面背景となるバックグラウンド画像をディスプレイに表示すると共に、ゲーム操作に応じて対応するキャラクタ（オブジェクト画像）を画面背景上を動画表示し、その動きに応じた効果音を発音するようにしている。
【０００４】
【発明が解決しようとする課題】
さて、上述したように、従来の画像制御装置では、操作パッドの操作に応じてオブジェクト画像を表示制御する態様が一般的であり、仮想的な現実感をシミュレートするゲームでは不向きになることが多い。つまり、仮想的な現実感を追求するには、実際の行動（行為）に即した形態で画像制御にする必要がある。例えば、画面に投手が球を投げるシーンを表示し、この表示画面に基づいて遊戯者が打撃操作するようにしたシミュレーションゲームでは、操作パッドに替えて「バット」が操作子となり、この「バット」の位置あるは動きに応じて画像制御することになる。
【０００５】
このような画像制御を行う場合には、周知のクロマキー検出処理により操作子の位置や動きを検出する手法が採られている。ここで言うクロマキー検出処理とは、この場合、予め「バット（操作子）」を特定の色で色付けしておき、遊戯者を撮像した画像からこの特定色のクロマキー像を抽出し、これによって、遊戯者が持つ操作子の位置や動きを画面上から検出するものである。
【０００６】
ところで、このクロマキー検出処理を用いて表示画面内に設定される「アイコン」を、クロマキー像によってポインティングし、当該「アイコン」にアサインされる情報を取り込むクロマキー入力処理が考えられる。例えば、表示画面の所定エリアに動作モードを指定する「アイコン」を割り付けておき、その「アイコン」にクロマキー像が位置することを認識した時点で対応する動作モードに変更する等の処理を実現する。
【０００７】
こうしたクロマキー入力処理において、複数のクロマキー像によるポインティング操作を行う場合には、各クロマキー像毎にその画面上の位置や動きを検出し、それら検出結果に基づいて実際に「アイコン」をポインティングしたクロマキー像の有無を判別することになる。このため、画像制御に係わる処理全体が煩雑化する上、メモリ消費も増大することから、装置構成の複雑化や処理速度の遅れなどの弊害を招いてしまう。換言すれば、従来の画像制御装置では、複数のクロマキー像によるポインティング操作を実現することができないという欠点を備える。
【０００８】
そこで本発明は、上述した事情に鑑みてなされたもので、容易に複数の操作子を検出し、これらの操作子によるポインティング操作を実現し得る画像制御装置および画像制御方法を提供することを目的としている。
【０００９】
【課題を解決するための手段】
上記目的を達成するため、請求項１に記載の発明では、撮像画像から特定色領域を抽出する抽出手段と、表示画面上に表示される複数の背景画像を発生する画像発生手段と、前記画像発生手段によって前記表示画面上に表示された複数の背景画像の表示領域の各々に対応させて検出領域を割り当てる割当手段と、複数種の楽音信号を記憶する楽音信号記憶手段と、前記検出領域と前記楽音信号記憶手段に記憶される楽音信号の音色を指定する情報とを夫々対応付けて記憶する記憶手段と、前記割当手段によって割り当てられた複数の検出領域の何れかと前記抽出手段によって抽出された特定色領域とが重なった時に、この重なった検出領域に基づいて前記記憶手段に記憶されている複数種の音色を指定する情報から音色を指定する情報を選択する選択手段と、前記重なった検出領域の重心位置と前記抽出された特定色領域の重心位置との離間距離に基づいて、前記選択手段によって選択された音色を指定する情報の出力音量を指定する情報を生成する生成手段と、前記選択手段によって選択された音色を指定する情報と前記生成手段によって生成された出力音量を指定する情報とに従って前記楽音信号記憶手段より対応する楽音信号を読み出して出力する出力手段とを具備することを特徴とする。
【００１０】
また、請求項２に記載の発明では、撮像画像から特定色領域を抽出する抽出ステップと、表示画面上に表示される複数の背景画像を発生する画像発生ステップと、前記画像発生ステップにて前記表示画面上に表示された複数の背景画像の表示領域の各々に対応させて検出領域を割り当てる割当ステップと、前記割当ステップにて割り当てられた複数の検出領域の何れかと前記抽出ステップにて抽出された特定色領域とが重なった時に、この重なった検出領域に基づいて予め検出領域と楽音信号の音色を指定する情報とを夫々対応付けて記憶した第１のメモリより対応する音色を指定する情報を選択する選択ステップと、前記重なった検出領域の重心位置と前記抽出された特定色領域の重心位置との離間距離に基づいて、前記選択ステップにて選択された音色を指定する情報の出力音量を指定する情報を生成する生成ステップと、前記選択ステップにて選択された音色を指定する情報と前記生成ステップにて生成された出力音量を指定する情報とに従って予め複数種の楽音信号を記憶する第２のメモリより対応する楽音信号を読み出して出力する出力ステップとからなることを特徴とする。
【００１４】
【作用】
本発明では、予め複数種の楽音信号を記憶するとともに、検出領域とこの記憶されている楽音信号の音色を指定する情報とを夫々対応付けて記憶しておき、表示画面上に表示される複数の背景画像の表示領域の各々に対応させて複数の検出領域を割り当て、これらの複数の検出領域の何れかと撮像画像から抽出した特定色領域とが重なった時に、この重なった検出領域に基づいて音色を指定する情報を選択し、更に重なった検出領域の重心位置と抽出された特定色領域の重心位置との離間距離に基づいて、選択された音色を指定する情報の出力音量を指定する情報を生成する。そして、これらの情報に従って対応する楽音信号を読み出して出力する。これにより、例えば身振りを撮影することにより演奏制御を行うような場合であっても、特定色領域との位置関係に関わる処理速度の遅延などの障害を起こすことなく、極めて容易に特定色領域検出によるポインティング操作を実現し得る。
【００１５】
【実施例】
以下、図面を参照して本発明の実施例について説明する。
Ａ．実施例の概要
図１は、本発明による画像制御装置の全体構成を示す外観図である。この図に示す実施例は、遊戯者Ｐの身体動作に応じて楽音制御するゲームに適用した一例を図示している。図１において、１はＣＣＤ等の固体撮像素子を備える撮像部であり、遊戯者Ｐを撮像する。ここで、遊戯者Ｐは、両手両足にそれぞれクロマキー検出用として青色に着色されたグローブＧとブーツＢとを装着している。２は装置本体であり、撮像部１から供給される撮像信号にクロマキー検出を施し、実画像におけるグローブＧおよびブーツＢの位置を判別する。ここで言う実画像とは、撮像部１によって撮像される画像を指す。
【００１６】
また、装置本体２は、表示画面の背景となるバックグラウンド画像ＢＧと、このバックグラウンド画像ＢＧ上に表示される上記実画像ＲＩとを合成してディスプレイ３に表示する。バックグラウンド画像ＢＧは、図２（イ）に示すように、画面両サイドに表示される画像であって、各種リズム楽器の形状を模した「アイコン」ＢＥ１〜ＢＥ６を形成する。ここで、「アイコン」ＢＥ１〜ＢＥ６は、それぞれ「シンバル」、「スネアドラム」、「バスドラム」、「トランペット」、「カウベル」および「ボンゴ」を表わしている。また、実画像ＲＩは、同図（ロ）に示すように、両手両足にそれぞれグローブＧとブーツＢとを装着した遊戯者Ｐを撮像したものである。装置本体２は、これら画像ＢＧ，ＲＩを合成して同図（ハ）に示すＣＧ画像を形成する。
さらに、装置本体２は、遊戯者ＰがグローブＧあるいはブーツＢによって「アイコン」ＢＥ１〜ＢＥ６のいずれかをポインティング操作した場合、後述する動作に基づきクロマキー入力処理がなされ、ポインティングされた「アイコン」ＢＥ１〜ＢＥ６にアサインされたリズム楽器音を楽音合成するようにしており、これにより、遊戯者Ｐの身振りに応じたリズム演奏がなされる。
【００１７】
Ｂ．実施例の構成
次に、図３を参照して撮像部１および装置本体２の電気的構成について説明する。
（１）撮像部１の構成
撮像部１は、構成要素１０〜１３から構成されている。１０は発振回路であり、８倍オーバーサンプリング信号８ｆSCを発生して出力する。１１は撮像信号処理部である。撮像信号処理部１１は、８倍オーバーサンプリング信号８ｆSCを次段のクロックドライバ１２に供給すると共に、ＣＣＤ１３から出力される撮像信号ＳＳをサンプリング画像データＤSに変換する。クロックドライバ１２は、発振回路１２から供給される８倍オーバーサンプリング信号８ｆSCに基づき、水平駆動信号、垂直駆動信号、水平／垂直同期信号および帰線消去信号等の各種タイミング信号を発生する一方、上記水平駆動信号および垂直駆動信号に対応する撮像駆動信号を発生してＣＣＤ１３に供給する。ＣＣＤ１３は、この撮像駆動信号に従って対象物を撮像して撮像信号ＳＳを発生する。
【００１８】
ここで、図４を参照して撮像信号処理部１１の概略構成について説明する。図４において、１１ａはサンプリング回路であり、上述したクロックドライバ１２から供給される４倍オーバーサンプリング信号４ｆSCに応じて撮像信号ＳＳをサンプルホールドして次段へ出力する。１１ｂはサンプリングされた撮像信号ＳＳを所定レベルに変換して出力するＡＧＣ（自動利得制御）回路である。１１ｃは、撮像信号ＳＳのガンマ特性をγ＝１／２．２に補正して出力するγ補正回路である。１１ｄは、このガンマ補正された撮像信号ＳＳを８ビット長のサンプリング画像データＤSに変換して出力するＡ／Ｄ変換回路である。サンプリング画像データＤSは、後述するビデオ信号処理部２０に供給される。１１ｅはビデオ信号処理部２０から供給されるコンポジット映像信号ＤCVをアナログビデオ信号ＳVに変換して前述したディスプレイ３に出力するＤ／Ａ変換回路である。
【００１９】
（２）装置本体２の構成
次に、図３〜図１１を参照して装置本体２の構成について説明する。装置本体２は、ビデオ信号処理部２０、画像処理部３０、位置検出処理部４０および制御部５０から構成されており、以下、これら各部について詳述する。
▲１▼ビデオ信号処理部２０の構成
ビデオ信号処理部２０は、撮像部１から供給されるサンプリング画像データＤSに対して色差変換処理とクロマキー検出処理とを施し、その結果を後述する位置検出処理部４０に供給する。また、この処理部２０は、後述する画像処理部３０から供給される画像処理データＤSPをコンポジット映像信号ＤCVに変換し、前述したＤ／Ａ変換回路１１ｅ（図４参照）に供給する。なお、画像処理データＤSPとは、前述した「アイコン」ＢＥ１〜ＢＥ６（図２参照）を形成するバックグラウンド画像データＤBG（ＲＧＢ信号）を指す。
【００２０】
ここで、図５を参照して上記各処理を具現するビデオ信号処理部２０の構成について説明する。図５において、２０ａは色分離フィルタであり、サンプリング画像データＤSを信号Ｙｅ（イエロー）、信号Ｃｙ（シアン）および信号Ｇ（グリーン）に色分離して次段へ出力する。２０ｂは撮像信号ＳＳ中における変化点の前後に対して輝度変調を施して画質調整する輪郭補正回路である。２０ｃはホワイトバランス回路であり、各信号Ｙｅ，Ｃｙ，Ｇを規定レベルに設定して出力する。２０ｄはバンドパスフィルタで構成される分別フィルタであり、各信号Ｙｅ，Ｃｙを信号Ｒ（赤）および信号Ｂ（青）に分別して出力する。２０ｅは三原色を表わす信号Ｒ，Ｇ，Ｂを各８ビット長の輝度信号Ｙ、色差信号Ｂ−Ｙ，Ｒ−Ｙに変換するマトリクス回路である。
【００２１】
２０ｆはクロマキー信号発生回路であり、色差信号Ｂ−Ｙ，Ｒ−Ｙが所定レベルに達した場合に「Ｈ」レベルのクロマキー検出信号ＣＲＯを発生する。すなわち、この回路２０ｆでは、図６に示すように、色差Ｂ−Ｙの最大／最小レベルＢ−ＹMAX，Ｂ−ＹMINと、色差Ｒ−Ｙの最大／最小レベルＲ−ＹMAX，Ｒ−ＹMINとが予め定められており、これらレベルによって規定された色差領域Ｅに色差信号Ｂ−Ｙ，Ｒ−Ｙが収る場合、特定色を検出した旨を表わす「Ｈ」レベルのクロマキー検出信号ＣＲＯを出力する。なお、この実施例においては、上記領域Ｅを「青色」としており、具体的には遊戯者Ｐが両手両足に装着する青色のクローブＧあるいはブーツＢを撮像した時に「Ｈ」レベルのクロマキー検出信号ＣＲＯが生成される。
【００２２】
２０ｇは、ＶＤＰ３１（後述する）から供給される画像処理データＤSP（ＲＧＢ信号）を輝度信号Ｙ、色差信号Ｂ−Ｙ，Ｒ−Ｙに変換するマトリクス回路である。２０ｈはセレクタであり、位置検出処理部４０から供給される選択信号ＳＬに応じてマトリクス回路２０ｅの出力、あるいはマトリクス回路２０ｈの出力のいずれか一方を選択して次段へ供給する。２０ｉはモジュレータである。モジュレータ２０ｉは、セレクタ２０ｈを介して供給される輝度信号Ｙ、色差信号Ｂ−Ｙ，Ｒ−Ｙに各種同期信号（水平／垂直同期信号および帰線消去信号）を重畳したディジタルコンポジット映像信号ＤCVを生成する。
【００２３】
上記構成によれば、ビデオ信号処理部２０は、撮像部１から供給されるサンプリング画像データＤSに対して特定色のクロマキー検出を施し、その結果をクロマキー検出信号ＣＲＯとして画像処理部３０（後述する）側へ供給する。また、この処理部２０は、画像処理部３０側から入力される画像処理データＤSP（ＲＧＢ信号）、あるいは撮像部１から供給されるサンプリング画像データＤSのいずれかを選択信号ＳＬに応じて切替え、これにより、バックグラウンド画像ＢＧと実画像ＲＩとを合成したコンポジット映像信号ＤCVを発生する。なお、選択信号ＳＬは、後述する位置検出処理部４０から供給される信号である。
【００２４】
▲２▼画像処理部３０の構成
次に、画像処理部３０の構成について説明する。画像処理部３０は、ビデオデータプロセッサ（以下、ＶＤＰと略す）３１とＶＲＡＭ３２とから構成される。このＶＤＰ３１の基本的機能は、ＶＲＡＭ３２に格納されるバックグラウンド画像データＤBGを制御部５０（後述する）側から供給される制御信号ＳＣに応じて読み出し、これを１走査ライン毎のドット表示色を表わす画像処理データＤSPに変換することにある。以下、図７を参照して画像処理部３０を構成する各部について詳述する。
【００２５】
図において、３１ａはＣＰＵインタフェース回路であり、後述する制御部５０（ＣＰＵ５１）のバスを介して供給される制御信号ＳＣに応じて構成要素３１ｂ〜３１ｄに各種制御指示を与える。制御信号ＳＣは、バックグラウンド画像ＢＧを表示制御する各種コマンドや、ＶＲＡＭ３２にＤＭＡ転送されるバックグラウンド画像データＤBGから形成される。３１ｂはＶＲＡＭコントロール回路であり、構成要素３１ａ，３１ｃおよび３１ｄから供給される制御信号に対応してＶＲＡＭ３２とのデータ授受を行う。
【００２６】
すなわち、上記ＣＰＵインタフェース回路３１ａからＤＭＡ転送する旨の制御信号ＳＣを受けた場合には、当該回路３１ａを介してＤＭＡ転送されるバックグラウンド画像データＤBGを所定の記憶エリアに格納する。また、バックグラウンドコントロール回路３１ｃからバックグラウンド画像データＤBGを読み出す旨の指示を受けた場合、対応するデータＤBGを読み出して回路３１ｃ側に返送する。これと同様に、オブジェクトコントロール回路３１ｄからオブジェクト画像データＤOBを読み出す旨の指示を受けた場合、対応するデータＤOBを読み出して回路３１ｄ側に返送する。なお、オブジェクト画像データＤOBとは、バックグラウンド画像ＢＧ上に移動表示される画像を形成するデータである。この実施例では、バックグラウンド画面ＢＧのみを表示する動作が主体となるが、ＶＤＰ３１においては、当該バックグラウンド画面ＢＧ上を移動するオブジェクト画面ＯＢＪをも発生し得る構成を備えている。
【００２７】
バックグラウンドコントロール回路３１ｃは、回路３１ａを介して制御部５０側から与えられるバックグラウンド表示制御コマンドに基づき、ＶＲＡＭコントロール回路３１ｂを経由して読み出されたバックグラウンド画像データＤBGに対して表示位置を指定した後、色差データ処理回路３１ｅへ供給する。オブジェクトコントロール回路３１ｄは、回路３１ａを介して制御部５０側から与えられるオブジェクトテーブルデータＴOBをオブジェクトテーブルＲＡＭ３１ｆに書き込む。このオブジェクトテーブルデータＴOBとは、表示画面におけるオブジェクト画像データＤOBの表示位置を指定する座標データである。
【００２８】
また、当該回路３１ｄは、オブジェクト表示制御コマンドに応じてＶＲＡＭ３２から読み出されたオブジェクト画像データＤOBに対し、上記オブジェクトテーブルデータＴOBを参照して表示位置を求めると共に、１走査ライン分のオブジェクト画像データＤOBをラインバッファＲＡＭ３１ｇに一時記憶する。ラインバッファＲＡＭ３１ｇに一時記憶されるオブジェクト画像データＤOBは、１走査毎に更新される。このＲＡＭ３１ｇから読み出されたオブジェクト画像データＤOBは、色差データ処理回路３１ｅに供給される。
【００２９】
色差データ処理回路３１ｅは、バックグラウンドコントロール回路３１ｃおよびオブジェクトコントロール回路３１ｄから供給される８ビット長の画像データＤBG，ＤOBを、周知のカラールックアップテーブルＲＡＭ３１ｈを参照して各４ビット長のＲ信号，Ｇ信号およびＢ信号から形成される画像処理データＤSPに変換して出力する。また、この回路３１ｅは、画像処理データＤSP（ＲＧＢ信号）を参照して信号ＹＳＢＧおよび信号ＹＳＯＢＪを発生する。信号ＹＳＢＧおよび信号ＹＳＯＢＪは、現在出力している画像処理データＤSPがバックグラウンド画像データＤBGに対応するものであるか、あるいはオブジェクト画像データＤOBに対応するものであるかを表わす信号である。例えば、現在出力している画像処理データＤSPがバックグラウンド画像データＤBGに対応するものである時には、信号ＹＳＢＧが「Ｈ（ハイ）」となり、信号ＹＳＯＢＪが「Ｌ（ロウ）」になる。一方、これとは逆に画像処理データＤSPがオブジェクト画像データＤOBに対応するものであれば、信号ＹＳＢＧが「Ｌ」となり、信号ＹＳＯＢＪが「Ｈ」になる。
【００３０】
このように、ＶＤＰ３１では、制御部５０側からＤＭＡ転送されるバックグラウンド画像データＤBG（オブジェクト画像データＤOB）をＶＲＡＭ３２に格納しておき、ＣＰＵ５１から供給される制御信号ＳＣ（各種表示制御コマンド）に応じてこのＶＲＡＭ３２から画像データＤBG（画像データＤOB）を読み出し、これを１走査ライン毎のドット表示色を表わす画像処理データＤSPを発生すると共に、当該画像処理データＤSPの属性を表わす信号ＹＳＢＧおよびＹＳＯＢＪを出力する。
【００３１】
▲３▼位置検出処理部４０の構成
位置検出処理部４０は、複数のロジック素子を配列してなるゲートアレイ、ラインバッファおよびワークＲＡＭとから構成されており、後述する制御部５０の指示の下にサンプリング画像データＤS中に含まれるクロマキー像と、バックグラウンド画像データＤBGによって形成されるバックグラウンド画像ＢＧとの衝突座標位置や、これら画像の重心位置等を予め定められたロジックに基づいて論理演算する。上記ラインバッファ（図示略）は、ビデオ信号処理部２０から供給されるクロマキー検出信号ＣＲＯを一時記憶する。ワークＲＡＭには、ゲートアレイによって論理演算された各種演算結果が一時記憶される。
【００３２】
この位置検出処理部４０は、上述したＶＤＰ３１から供給される信号ＹＳＢＧに基づき、前述した選択信号ＳＬを発生してビデオ信号処理部２０に与え、サンプリング画像データＤS（実画像）と画像処理データＤSP（バックグラウンド画像ＢＧ）との重なり具合、つまり、画面表示される画像の優先順位（前後関係）を制御する。さらに、処理部４０は、制御部５０の指示の下に前述した撮像信号処理部１１、ビデオ信号処理部２０およびＶＤＰ３１へそれぞれレジスタコントロール信号ＳREGを供給し、各部レジスタのデータセット／リセットを制御する
。
【００３３】
次に、図８を参照して位置検出処理部４０における各種演算結果が格納されるワークＲＡＭについて説明する。この図において、Ｅ１は初期画面エリアであり、水平方向（走査ライン）当り９６ドット、垂直方向に９６ラインから形成される初期画面のデータを一時記憶する。初期画面のデータとは、ゲーム開始に先立って撮像されたシーン内に存在するクロマキー検出結果を指す。シーン内にクロマキー検出色（例えば、青色）の物体が存在した場合、前述したグローブＧあるいはブーツＢ（図１参照）の一部と誤認する虞がある。そこで、初期画面エリアＥ１に一時記憶されるデータは、クロマキー検出されたドット位置をグローブＧあるいはブーツＢと誤認しないようにするため、当該ドット位置を不感帯とする際に用いられる。
【００３４】
Ｅ２は水平方向９６ドット、垂直方向９６ラインで形成される処理画面エリアであり、実画像において検出されるクロマキー像（グローブＧあるいはブーツＢの画像）が１フレーム毎に更新記憶される。Ｅ３〜Ｅ４は、ＣＰＵ５１によって指示される検出枠内にて検出されるクロマキー像の上端／下端位置を一時記憶する上端座標エリア、下端座標エリアである。なお、検出枠とは、上記処理画面エリア上で規定される矩形領域を指し、前述した「アイコン」ＢＥ１〜ＢＥ６にそれぞれ対応するエリアである。また、検出枠は、１フレーム毎に「アイコン」ＢＥ１〜ＢＥ６に対応するよう、その枠位置が変化する。
【００３５】
Ｅ５〜Ｅ６は、それぞれ１フレーム毎に更新される検出枠内にて検出されるクロマキー像の左端／右端位置を一時記憶する左端座標エリア、右端座標エリアである。Ｅ７は第１の衝突座標エリアである。第１の衝突座標エリアＥ１とは、検出枠内におけるクロマキー像とバックグラウンド画像ＢＧとの重なり（衝突）が最初に検出される走査ライン中の交点を、処理画面上の座標として表現したものである。また、第２の衝突座標エリアＥ８は、クロマキー像とバックグラウンド画像ＢＧとの重なり（衝突）が最後に検出される走査ライン中の交点を、処理画面上の座標として表現したものである。
【００３６】
Ｅ９は重心座標エリアであり、クロマキー像の面積に基づき算出される重心位置が処理画面上の座標位置として記憶される。Ｅ１０は、クロマキー像の面積が記憶される面積エリアである。面積エリアＥ１０にセットされる面積は、ブロック個数で表わされる。ここで言うブロックとは、処理画面において水平方向６ドット、垂直方向２ラインからなる１２ドット領域を指す。この１２ドット領域から形成されるブロック中に、「６ドット」以上のクロマキー検出があった場合、そのブロックがクロマキー像の面積として見做される。
【００３７】
▲４▼制御部５０の構成
次に、再び図３を参照して制御部５０の構成について説明する。制御部５０は、構成要素５１〜５７から構成される。ＣＰＵ５１は装置本体２の操作パネルに配設される各種操作子をキースキャンし、これに応じて生成される操作子信号ＫＳに基づいて装置各部を制御するものであり、その動作の詳細については後述する。また、ＣＰＵ５１は、周知のＤＭＡコントローラを備えており、ゲーム動作に必要な各種データ（バックグラウンド画像データＤBG等）を前述した画像処理部３０へＤＭＡ転送するよう構成されている。さらに、ＣＰＵ５１は、画像制御に必要な制御信号ＳＣを発生して各処理部へ動作指示を与える。５２はＲＡＭであり、ＣＰＵ５１のワークエリアとして各種演算結果やフラグ値が一時記憶される。５３はＣＰＵ５１の動作を管理するＯＳ（オペレーションシステム）プログラムが記憶されるＲＯＭである。５４はＣＰＵ５１の制御の下に装置全体の動作を規定するシステムクロックを発生するシステムクロック回路である。
【００３８】
５５は装置本体２に対して挿脱自在に装着されるゲームカートリッジであり、ＲＯＭ５５ａと第１音源回路５５ｂとから構成されている。ＲＯＭ５５ａは、ＣＰＵ５１にロードされるアプリケーションプログラムや、バックグラウンド画像データＤBG等を記憶する。なお、この実施例においては、前述したように、遊戯者Ｐの身振りに応じてリズム音を楽音合成するゲームプログラムが記憶されている。５５ｂは第１音源回路であり、ＣＰＵ５１側から位置検出処理部４０を介して供給されるイベントデータに基づき、ゲーム動作に対応したリズム音を合成し、これを楽音信号としてＣＰＵ５１へ出力する。なお、ここで言うイベントデータとは、リズム音を指定する音色データ、発音音量を指定するベロシティデータおよび発音を指示するキーオン信号とから形成される。５６は第２音源回路であり、ゲーム進行に対応して順次内部ＲＯＭから読み出される演奏情報に基づいて所定のメロディ音を楽音合成して出力する。５７はサウンドシステムであり、上記第１音源回路５５ｂおよび第２音源回路５６から供給される楽音信号に対してノイズ除去等のフィルタリングを施した後、これを増幅して出力する。
【００３９】
Ｃ．実施例の動作
次に、上記構成による実施例の動作について説明する。ここでは、まず、前述した位置検出処理部４０の動作について説明した後、制御部５０（ＣＰＵ５１）の動作について説明する。
（１）位置検出処理部４０の動作
ここでは、ゲートアレイによって構成される位置検出処理部４０の動作について図９〜図１４を参照して説明する。この処理部４０では、制御部５０の指示の下に、サンプリング画像データＤS中のクロマキー像を、ビデオ信号処理部２０から供給されるクロマキー検出信号ＣＲＯに基づいて検出し、検出したクロマキー像とバックグラウンド画像ＢＧとの衝突座標位置や、クロマキー像の重心位置およびその面積を算出する。以下、こうした動作の詳細について説明する。
【００４０】
▲１▼メインルーチンの動作
まず、装置本体２に電源が投入され、ＣＰＵ５１側からシステムリセットを表わす制御信号ＳＣが位置検出処理部４０に供給されたとする。そうすると、位置検出処理部４０は、上記制御信号ＳＣに基づき、図９に示すメインルーチンを実行してステップＳＡ１へ処理を進める。ステップＳＡ１では、自身の内部レジスタをリセット、あるいは初期値をセットするイニシャライズを行う一方、撮像信号処理部１１、ビデオ信号処理部２０およびＶＤＰ３１へそれぞれレジスタセットを指示するレジスタコントロール信号ＳREGを供給し、次のステップＳＡ２に進む。
【００４１】
ステップＳＡ２では、「初期画面マップ」が作成されているか否かを判断する。ここで、例えば、「初期画面マップ」が作成されていない場合、判断結果は「ＮＯ」となり、次のステップＳＡ３に処理を進める。なお、この「初期画面マップ」とは、ゲーム開始に先立って、撮像部１が撮像する実画面ＲＩ内に、グローブＧおよびブーツＢ（図１参照）と同色（この実施例では青色）の物体が存在するか否かを確認するためのものである。そして、ステップＳＡ３に進むと、複数フレーム分のクロマキー検出結果を重ね合わせ、これをワークＲＡＭの初期画面エリアＥ１（図１２参照）に格納し、初期画面内に存在するクロマキー検出ブロックを「不感帯」と見做す「初期画面マップ」を作成する。
【００４２】
このようにして「初期画面マップ」の作成がなされると、位置検出処理部４０は、次のステップＳＡ４に処理を進める。なお、「初期画面マップ」が予め用意されている場合には、上記ステップＳＡ２の判断結果は「ＹＥＳ」となり、ステップＳＡ４に進む。ステップＳＡ４では、検出枠座標（ｘ1，ｙ1），（ｘ2，ｙ2）をワークエリアから読み込む。この検出枠座標とは、ＣＰＵ５１からワークエリアに転送されるものであり、処理画面上（後述する）においてクロマキー検出する領域を表す。座標（ｘ1，ｙ1），（ｘ2，ｙ2）は、検出枠サイズを指定する対角要素に相当する。そして、次のステップＳＡ５に進むと、レジスタＸ，Ｙの値をゼロリセットする。なお、このレジスタＸ，Ｙには、水平方向９６ドット、垂直方向９６ラインで形成される画面座標に相当する値が処理内容に応じて順次セットされる。
【００４３】
次に、ステップＳＡ６に進むと、位置検出処理部４０は、ラインバッファに一時記憶されたクロマキー検出信号ＣＲＯに対してブロック単位毎にクロマキー検出を施す。ブロック単位のクロマキー検出とは、ラインバッファから読み出したクロマキー検出信号ＣＲＯを水平方向６ドット、垂直方向２ラインからなるブロックに区分けし、「Ｈ」レベルのクロマキー検出信号ＣＲＯがブロック当り「６ドット」以上存在した時に、当該ブロックの属性を「クロマキー有り」と見做す処理である。こうしたクロマキー検出の結果は、前述した処理画面エリアＥ２（図１２参照）にブロック属性としてストアされ、これが「処理画面マップ」となる。
【００４４】
次いで、ブロック単位毎のクロマキー検出がなされると、位置検出処理部４０は、次のステップＳＡ７に進み、クロマキー検出されたグローブＧあるいはブーツＢのクロマキー像とバックグラウンド画像ＢＧとの衝突（重なり）の有無を検出し、衝突する場合にはその衝突座標を求める。そして、ステップＳＡ８に進むと、処理部４０は、レジスタＸの値を１インクリメントし、続いて、ステップＳＡ９ではレジスタＸの値が「９６」、つまり、１走査ライン分の処理が完了したか否かを判断する。ここで、レジスタＸの値が「９６」に達していない場合には、判断結果が「ＮＯ」となり、１走査ライン分の処理が完了する迄、上記ステップＳＡ６〜ＳＡ８を繰り返す。
【００４５】
一方、１走査ライン分の処理が完了すると、ここでの判断結果が「ＹＥＳ」となり、ステップＳＡ１０に進み、レジスタＸの値を再びゼロリセットすると共に、レジスタＹの値を１インクリメントして走査ラインを垂直方向に更新する。そして、ステップＳＡ１１に進むと、処理部４０はレジスタＹの値が「９６」であるか否かを判断する。ここで、レジスタＹの値が「９６」に達していない場合には、判断結果が「ＮＯ」となり、上述したステップＳＡ６〜ＳＡ８を繰り返す。そして、１フレーム分の走査が完了すると、ここでの判断結果が「ＹＥＳ」となり、ステップＳＡ１２に処理を進める。
【００４６】
ステップＳＡ１２では、上記ステップＳＡ６においてクロマキー検出されたブロックに基づき、クロマキー像の左端／右端座標および上端／下端座標を算出し、これらをワークＲＡＭの記憶エリアＥ３〜Ｅ６（図８参照）に記憶する一方、クロマキー検出されたブロック個数から当該クロマキー像の面積を求める。なお、記憶エリアＥ３〜Ｅ４は、それぞれ１フレーム毎に更新される検出枠内でのクロマキー像の上端／下端位置を一時記憶し、記憶エリアＥ５〜Ｅ６は、それぞれ１フレーム毎に更新される検出枠内でのクロマキー像の左端／右端位置を一時記憶する。また、ブロック個数から算出される面積は、記憶エリアＥ１０に格納される。
【００４７】
こうしてＣＰＵ５１によって指定された検出枠からクロマキー像が検出されると、位置検出処理部４０は、ステップＳＡ１３に進み、当該クロマキー像の重心位置を求め、続いて、ステップＳＡ１４において割込みフラグＣＦが「１」かどうかを判定し、「１」であればＣＰＵ５１に対して割込み信号を出力する（ステップＳＡ１５）。この後、ステップＳＡ１６に進み、衝突フラグＣＦを「０」にセットする。この衝突フラグＣＦとは、実画像ＲＩから検出されるクロマキー像とバックグラウンド画像ＢＧとが衝突状態、すなわち、重なり合う場合に「１」となる。そして、このステップＳＡ１６以後、位置検出処理部４０はその処理をステップＳＡ４に戻し、上述した動作を繰り返し、指定された検出枠毎にクロマキー像とバックグラウンド画像ＢＧとの対応関係を１フレーム毎に求める。
【００４８】
▲２▼初期画面マップ作成ルーチンの動作
次に、図１０を参照して初期画面マップ作成ルーチンの動作について説明する。上述したように、初期画面マップが作成されていない場合、位置検出処理部４０はステップＳＡ３を介して図１０に示す初期画面マップ作成ルーチンを実行してステップＳＢ１に処理を進める。ステップＳＢ１では、内部レジスタにセットされるサンプリング回数ｎを読み出す。サンプリング回数ｎとは、撮像部１から供給されるクロマキー検出信号ＣＲＯを何フレーム分取り込むかを表わすものである。次いで、ステップＳＢ２に進むと、レジスタＸ，Ｙの値をゼロリセットし、次のステップＳＢ３に進む。ステップＳＢ３では、ラインバッファに書き込まれたクロマキー検出信号ＣＲＯの内、Ｘ方向（水平方向）の６ドット分、Ｙ方向（垂直方向）の２ライン分、すなわち、１ブロック分を読み出す。
【００４９】
次いで、ステップＳＢ４に進むと、この読み出した１ブロック中に「６ドット」以上の「Ｈ」レベルのクロマキー検出信号ＣＲＯが存在するか否かを判断する。ここで、「６ドット」以上存在しなければ、「クロマキー無し」として判断結果が「ＮＯ」となり、ステップＳＢ５に進む。ステップＳＢ５では、そのブロック属性を「０」として次のステップＳＢ７へ処理を進める。一方、これに対し、「６ドット」以上存在すると、「クロマキー有り」とされて、判断結果が「ＹＥＳ」となり、ステップＳＢ６に進む。ステップＳＢ６では、そのブロック属性を「１」にセットし、次のステップＳＢ７へ処理を進める。ステップＳＢ７では、最初のフレームであるか否かを判断する。ここで、最初にサンプリングしたフレームであると、判断結果は「ＹＥＳ」となり、ステップＳＢ８に進む。
【００５０】
ステップＳＢ８に進むと、位置検出処理部４０は、現レジスタＸ，Ｙの値に応じて初期画面エリアＥ１へ判定したブロック属性をストアする。そして、この後、ステップＳＢ９に進み、レジスタＸの値を１インクリメントし、指定ブロックの番号を歩進させる。次に、ステップＳＢ１０に進むと、この歩進された指定ブロックの番号が「９６」、つまり、１走査（水平）ライン分完了したか否かを判断する。ここで、完了していない場合には、判断結果が「ＮＯ」となり、ステップＳＢ１１に進む。ステップＳＢ１１では、レジスタＹの値が「９６」、つまり、１フレーム分終了したか否かを判断する。ここで、１フレーム分の処理が終了していない場合には、判断結果が「ＮＯ」となり、前述したステップＳＢ３に戻る。これにより、ステップＳＢ３〜ＳＢ６が繰り返され、次のブロック属性が判定される。
【００５１】
そして、例えば、いま、１走査（水平）ライン分のブロック属性の判定が完了したとする。そうすると、ステップＳＢ１０の判断結果が「ＹＥＳ」となり、処理部４０はステップＳＢ１３へ処理を進める。ステップＳＢ１３では、レジスタＸをゼロリセットする一方、レジスタＹの値を１インクリメントして走査ラインを更新する。そして、この後、再び、ステップＳＢ１１を介してステップＳＢ３以降のブロック判定がなされる。次いで、１フレーム分のブロック属性について判定が完了すると、上述したステップＳＢ１１の判断結果が「ＹＥＳ」となり、ステップＳＢ１２に進む。ステップＳＢ１２では、サンプリング回数ｎが設定回数に達したか否かを判断する。
【００５２】
ここで、設定回数に達していない場合には、判断結果が「ＮＯ」となり、ステップＳＢ１４へ処理を進める。ステップＳＢ１４では、サンプリング回数ｎを歩進させ、再び前述したステップＳＢ２以降を実行する。こうして１回目の初期画面マップが作成され、２回目の初期画面マップの作成を行う過程で、ステップＳＢ７に進むと、ここでの判断結果が「ＮＯ」となり、ステップＳＢ１５に進む。ステップＳＢ１５では、先にストアされた対応ブロック属性をレジスタＸ，Ｙの値に応じて初期画面エリアＥ１から読み出す。そして、ステップＳＢ１６に進むと、先のブロック属性と、現在判定されたブロック属性との論理和を求める。続いて、ステップＳＢ８では、この論理和を新たなブロック属性としてレジスタＸ，Ｙの値に基づき初期画面エリアＥ１にストアする。そして、所定フレーム分の論理和が生成されると、上述したステップＳＢ１２の判断結果が「ＹＥＳ」となり、このルーチンを終了し、位置検出処理部４０の処理は前述したメインルーチンへ復帰する。
【００５３】
▲３▼処理画面マップ作成ルーチンの動作
以上のようにして初期画面マップが作成されると、位置検出処理部４０はステップＳＡ６を介して図１１に示す処理画面マップ作成ルーチンを実行してステップＳＣ１に処理を進める。ステップＳＣ１では、ラインバッファに書き込まれたクロマキー検出信号ＣＲＯの内、Ｘ方向（水平方向）６ドット、Ｙ方向（垂直方向）２ラインからなる１ブロックを読み出す。次いで、ステップＳＣ２に進むと、その読み出した１ブロック内に「６ドット」以上の「Ｈ」レベルのクロマキー検出信号ＣＲＯが存在するか否かを判断する。ここで、「６ドット」以上存在しなければ、「クロマキー無し」として判断結果が「ＮＯ」となり、ステップＳＣ３に進む。ステップＳＣ３では、そのブロック属性を「０」として次のステップＳＣ４へ処理を進める。ステップＳＣ４では、この判定されたブロック属性をレジスタＸ，Ｙの値に基づき処理画面エリアＥ２（図８参照）にストアする。
【００５４】
一方、上記ステップＳＣ２の判断結果が「ＹＥＳ」となった場合、すなわち、１ブロック内に「６ドット」以上の「Ｈ」レベルのクロマキー検出信号ＣＲＯが存在する時には、処理部４０はステップＳＣ５に処理を進める。ステップＳＣ５では、リジェクトスイッチＳＲがオン操作されているか否かを判断する。このリジェクトスイッチＳＲとは、装置本体２の操作パネルに配設されるスイッチであり、そのスイッチ操作に応じて「不感帯」を設けるか否かを設定するものである。ここで、当該スイッチＳＲがオン設定されている場合には、初期画面マップに記憶されたクロマキー検出ブロックを「不感帯」と見做すようにする。
【００５５】
すなわち、上記ステップＳＣ５において、リジェクトスイッチＳＲがオン設定されている場合には、判断結果が「ＹＥＳ」となり、次のステップＳＣ６に進む。ステップＳＣ６では、初期画面エリアＥ１からレジスタＸ，Ｙの値に応じて対応するブロック属性を読み出す。次いで、ステップＳＣ７に進むと、初期画面エリアＥ１から読み出したブロック属性が「１」であるか否かを判断する。ここで、当該ブロック属性が「１」である時、その判断結果は「ＹＥＳ」となり、上述したステップＳＣ３に進み、ブロック属性を「０」に変更し、その後、ステップＳＣ４を介して、この変更されたブロック属性をレジスタＸ，Ｙの値に応じて処理画面エリアＥ２に書き込む。この結果、初期画面マップに記憶されたクロマキー検出ブロックが「不感帯」に設定される訳である。
【００５６】
なお、上記リジェクトスイッチＳＲがオン設定されない場合、つまり、「不感帯」を設定しない時には、ステップＳＣ５の判断結果が「ＮＯ」となり、ステップＳＣ８に進む。ステップＳＣ８では、上述したステップＳＣ２において判定された結果に基づき、対応するブロックの属性を「１」に設定し、続いて、ステップＳＣ４を介してそのブロック属性をレジスタＸ，Ｙの値に応じて処理画面エリアＥ２に書き込む。
【００５７】
▲４▼衝突座標検出ルーチンの動作
次に、図１２を参照して衝突座標検出ルーチンの動作について説明する。上述したように「処理画面マップ」が作成されると、位置検出処理部４０はステップＳＡ７（図９参照）を介して衝突座標検出ルーチンを実行する。このルーチンでは、クロマキー像とバックグラウンド画像ＢＧとの衝突の有無を検出する。まず、当該ルーチンが実行されると、処理部４０はステップＳＤ１に処理を進め、検出枠の位置を指定する検出枠座標（ｘ1，ｙ1），（ｘ2，ｙ2）をワークエリアから読み出し、テンポラリレジスタにセットする。次いで、ステップＳＤ２に進むと、処理部４０は処理画面エリアＥ２からレジスタＸ，Ｙの値に対応するブロック属性を読み出す。
【００５８】
次いで、ステップＳＤ３，ＳＤ４では、レジスタＸ，Ｙの値に応じて読み出されるブロック属性が、検出枠座標（ｘ1，ｙ1），（ｘ2，ｙ2）によって指定される検出枠内にあるか否かを判断する。ここで、レジスタＸ，Ｙの値が検出枠内でなければ、ステップＳＤ３，ＳＤ４の判断結果は「ＮＯ」となる。この場合、クロマキー像とバックグラウンド画像ＢＧとの衝突の有無を検出する必要がないから、一旦、このルーチンを終了する。一方、レジスタＸ，Ｙの値が検出枠内にある時には、ステップＳＤ３，ＳＤ４の判断がいずれも「ＹＥＳ」となり、ステップＳＤ５に処理を進める。そして、ステップＳＤ５に進むと、レジスタＸ，Ｙの値に応じて読み出されたブロック属性が「１」、すなわち、クロマキー像であるか否かを判断する。ここで、ブロック属性が「１」でない場合には、判断結果が「ＮＯ」となり、衝突が起こり得ないとして一旦このルーチンを終了する。
【００５９】
これに対し、読み出したブロック属性が「１」である時には、判断結果が「ＹＥＳ」となり、次のステップＳＤ６に処理を進める。ステップＳＤ６では、ラインバッファに書き込まれたＣＧデータをレジスタＸ，Ｙの値に応じて読み出す。ここで言うＣＧデータとは、バックグラウンド画像データＤBGの有無を表わす信号ＹＳＢＧを指す。なお、信号ＹＳＢＧは、ＶＤＰ３１（図３参照）から処理部４０に供給されるものである。
そして、次のステップＳＤ７に進むと、処理部４０は読み出したＣＧデータ（信号ＹＳＢＧ）が「１」であるか否かを判断する。この時、当該ＣＧデータが「１」でなければ、レジスタＸ，Ｙの値に対応するブロックがバックグラウンド画像ＢＧと重ならないことになるから、衝突しないとして判断結果が「ＮＯ」となり、このルーチンを終了する。
【００６０】
一方、読み出したＣＧデータが「１」であると、ステップＳＤ７の判断結果が「ＹＥＳ」となり、ステップＳＤ８に進む。ステップＳＤ８では、衝突フラグＣＦが「０」であるか否かを判断する。衝突フラグＣＦは、実画像から抽出されるクロマキー像とバックグラウンド画像ＢＧとが重なり合う場合に「１」となるものである。ここで、当該フラグＣＦが「０」である場合、つまり、初めて両画像の衝突が認知された状態では、判断結果が「ＹＥＳ」となり、次のステップＳＤ９に処理を進める。ステップＳＤ９では、最初に検出された第１のＸ座標を衝突座標エリアＥ７にストアし、続いてステップＳＤ１０では、これに対応する第１のＹ座標を同エリアＥ７にストアする。次いで、ステップＳＤ１１に進むと、衝突フラグＣＦを「１」にセットする。
一方、これに対して上記ステップＳＤ８の判断結果が「ＮＯ」の場合、すなわち、既に両画像の衝突が認知されている状態では、ステップＳＤ１２に進み、最後に検出された第２のＸ座標を衝突座標エリアＥ８にストアし、続いてステップＳＤ１３では、これに対応する第２のＹ座標を同エリアＥ７にストアする。
【００６１】
▲５▼座標検出ルーチンの動作
次に、図１３を参照して座標検出ルーチンの動作について説明する。上述した衝突座標検出ルーチンによって、クロマキー像とバックグラウンド画像ＢＧとの衝突座標位置が検出されると、位置検出処理部４０はステップＳＡ１２（図９参照）を介して座標検出ルーチンを実行し、ステップＳＥ１に処理を進める。ステップＳＥ１では、レジスタＸ，ＹおよびレジスタＳをそれぞれゼロリセットして初期化する。なお、レジスタＳには、クロマキー像を形成するブロック個数を累算した面積が格納される。
【００６２】
次いで、ステップＳＥ２に進むと、処理部４０は、処理画面エリアＥ２からレジスタＸ，Ｙの値に応じて対応するブロック属性を読み出し、ステップＳＥ３に処理を進める。ステップＳＥ３，ＳＥ４では、現在のレジスタＸ，Ｙの値が、検出枠座標（ｘ1，ｙ1），（ｘ2，ｙ2）によって指定される検出枠内にあるか否かを判断する。ここで、現在のレジスタＸ，Ｙの値が検出枠内になければ、ステップＳＥ３，ＳＥ４の判断結果は「ＮＯ」となり、後述するステップＳＥ６へ進む。一方、レジスタＸ，Ｙの値が検出枠内にある時には、ステップＳＥ３，ＳＥ４の判断がいずれも「ＹＥＳ」となり、ステップＳＥ５に処理を進める。
【００６３】
ステップＳＥ５では、上記ステップＳＥ２において読み出されたブロック属性が「１」、すなわち、クロマキー像であるか否かを判断する。ここで、ブロック属性が「１」でない場合には、判断結果が「ＮＯ」となり、ステップＳＥ６に進む。ステップＳＥ６では、レジスタＸの値を１インクリメントして歩進させる。そして、ステップＳＥ７に進むと、歩進されたレジスタＸの値が「９６」、つまり、１水平（走査）ライン分のブロック属性を読み出したか否かを判断する。ここで、１水平ライン分の読み出しが完了していない場合には、判断結果が「ＮＯ」となり、再び上記ステップＳＥ２へ処理を戻す。
【００６４】
そして、例えば、いま、読み出したブロック属性が「１」であると、ステップＳＥ５の判断結果が「ＹＥＳ」となり、ステップＳＥ８に処理を進める。ステップＳＥ８では、レジスタＸの値がレジスタＸ’の値より大であるか否かを判断する。レジスタＸ’には、前回検出したＸ座標がセットされており、この先の座標値と今回の座標値との比較結果に応じて右端／左端座標を更新するようにしている。つまり、ここでの判断結果が「ＮＯ」になると、ステップＳＥ９に進み、レジスタＸの値を左端座標エリアＥ５（図８参照）にストアしてクロマキー像の左端座標を更新する。一方、ステップＳＥ８の判断結果が「ＹＥＳ」になると、ステップＳＥ１０に進み、レジスタＸの値を右端座標エリアＥ６（図８参照）にストアしてクロマキー像の右端座標を更新する。
【００６５】
次いで、ステップＳＥ１１に進むと、処理部４０は、レジスタＹの値がレジスタＹ’の値より大であるか否かを判断する。ここで、レジスタＹ’は、上記レジスタＸ’と同様、前回検出したＹ座標がセットされており、この先の座標値と今回の座標値との比較結果に応じて上端／下端座標を更新するようにしている。つまり、判断結果が「ＮＯ」になると、ステップＳＥ１２に進み、レジスタＹの値を上端座標エリアＥ３（図８参照）にストアしてクロマキー像の上端座標を更新する。一方、ステップＳＥ１１の判断結果が「ＹＥＳ」になると、ステップＳＥ１３に進み、レジスタＹの値を下端座標エリアＥ４（図８参照）にストアしてクロマキー像の下端座標を更新する。
【００６６】
そして、この後、ステップＳＥ１４に進むと、処理部４０はレジスタＳの値を１インクリメントし、面積を１ブロック分加算する。続いて、ステップＳＥ１５に進むと、レジスタＸ，Ｙに格納されている現在の座標値を、それぞれレジスタＸ’，Ｙ’にセットし直し前回の座標値とする。
こうして上記ステップＳＥ２〜ＳＥ１５の処理が１水平ライン分なされると、上述したステップＳＥ７の判断結果が「ＹＥＳ」となり、ステップＳＥ１６に進み、レジスタＸの値をゼロリセットすると共に、レジスタＹの値を１歩進させる。次いで、ステップＳＥ１７に進むと、レジスタＹの値が「９６」、つまり、１フレーム分の座標検出がなされたか否かを判断する。そして、１フレーム分の座標検出が完了していない場合には、前述したステップＳＥ２以降が繰り返される。一方、完了した時には、このルーチンから前述したメインルーチン（図９参照）へ処理を戻す。
【００６７】
▲６▼重心計算ルーチンの動作
上記座標検出ルーチンによって、クロマキー像の左端／右端座標および上端／下端座標が検出されると、位置検出処理部４０は前述したステップＳＡ１３（図９参照）を介して図１４に示す重心計算ルーチンを実行し、ステップＳＦ１に処理を進める。まず、ステップＳＦ１では、レジスタＸＧ，ＹＧをゼロリセットする。レジスタＸＧ，ＹＧは、それぞれクロマキー検出されたブロックに基づいて算出されるクロマキー像の重心座標が格納されるものである。次に、ステップＳＦ２に進むと、レジスタＸ，Ｙを初期化し、続いて、ステップＳＦ３では、処理画面エリアＥ２からレジスタＸ，Ｙの値に対応するブロック属性を読み出す。
【００６８】
次に、ステップＳＦ４，ＳＦ５では、現在のレジスタＸ，Ｙの値が、前述した検出枠座標（ｘ1，ｙ1），（ｘ2，ｙ2）によって指定される検出枠内にあるか否かを判断する。ここで、現在のレジスタＸ，Ｙの値が検出枠内になければ、ステップＳＦ４，ＳＦ５の判断結果は「ＮＯ」となり、後述するステップＳＦ７へ進む。一方、レジスタＸ，Ｙの値が検出枠内にある時には、ステップＳＦ４，ＳＦ５の判断がいずれも「ＹＥＳ」となり、ステップＳＦ６に処理を進める。ステップＳＦ６に進むと、処理部４０は、この読み出したブロック属性が「１」、すなわち、クロマキー像であるか否かを判断する。ここで、ブロック属性が「１」でない場合には、判断結果が「ＮＯ」となり、ステップＳＦ７に進む。ステップＳＦ７では、レジスタＸの値を１インクリメントして歩進させる。そして、ステップＳＦ８に進むと、レジスタＸの値が「９６」、つまり、１水平（走査）ライン分のブロック属性を読み出したか否かを判断する。ここで、１水平ライン分の読み出しが完了していない場合には、判断結果が「ＮＯ」となり、再び上記ステップＳＦ３に処理を戻す。
【００６９】
そして、例えば、次に読み出したブロック属性が「１」であるとする。そうすると、ステップＳＦ６の判断結果が「ＹＥＳ」となり、処理部４０はステップＳＦ９に処理を進める。ステップＳＦ９では、クロマキー検出されたブロックを質点と見做し、このブロックの座標（Ｘ，Ｙ）と面積Ｓとの比を順次累算する重心計算を行う。なお、この面積Ｓは上述した座標検出ルーチンにおいてレジスタＳに格納されるものである。次いで、ステップＳＦ１０に進むと、上記ステップＳＦ９の重心計算結果に応じて重心座標を更新し、続いて、ステップＳＦ７においてレジスタＸの値を歩進させる。
【００７０】
ここで、１水平ライン分の読み出しが完了したとすると、ステップＳＦ８の判断結果が「ＹＥＳ」となり、ステップＳＦ１１に進み、レジスタＸの値をゼロリセットすると共に、レジスタＹの値を１歩進させる。次いで、ステップＳＦ１２に進むと、レジスタＹの値が「９６」、つまり、１フレーム分の重心計算がなされたか否かを判断する。そして、１フレーム分の重心計算が完了していない場合には、判断結果が「ＮＯ」となり、前述したステップＳＦ３以降の処理を繰り返す。一方、１フレーム分の重心計算が完了した時には、判断結果が「ＹＥＳ」となり、このルーチンを終了してメインルーチン（図９参照）に復帰する。
【００７１】
以上のように、位置検出処理部４０においては、ビデオ信号処理部２０から供給されるクロマキー検出信号ＣＲＯに基づいて１フレーム毎に処理画面マップを作成する。そして、この処理画面マップ上でＣＰＵ５１が指定する検出枠内から読み出したブロック属性に従ってクロマキー像とバックグラウンド画像ＢＧとの衝突座標位置や、当該クロマキー像の左端／右端座標および上端／下端座標を求めると共に、その面積と重心位置とを算出するようにしている。
【００７２】
ここで、図１５〜図１６を参照し、上述した位置検出処理部４０の動作を具体的に説明する。まず、例えば、図１５に示す「アイコン」ＢＥ１が検出枠として指定されている状態では、遊戯者Ｐの両手足に装着されるグローブＧおよびブーツＢがその検出枠内の存在しないため、このグローブＧあるいはブーツＢに対応するクロマキー像は検出されない。したがって、「アイコン」ＢＥ１を形成するバックグラウンド画像ＢＧとクロマキー像との衝突も生ぜず、当該「アイコン」ＢＥ１がポインティング操作されないことになる。
【００７３】
そして、遊戯者Ｐの身振りに応じて右手側のグローブＧが検出枠とされている「アイコン」ＢＥ１の領域に入ったとする。そうすると、図１６に示すように、このグローブＧに対応するクロマキー像と「アイコン」ＢＥ１を形成するバックグラウンド画像ＢＧとの衝突座標位置や、当該クロマキー像の左端／右端座標および上端／下端座標が求められ、かつ、その面積と重心位置とが算出される。
しかして、位置検出処理部４０の動作によれば、各検出枠における衝突位置等の検出を時分割に行うから、複数のクロマキー像によるポインティング操作が極めて容易に実現し得る訳である。なお、こうして得られる各検出枠毎のクロマキー像の重心位置は、後述する楽音制御パラメータとして扱われる。
【００７４】
（２）制御部５０（ＣＰＵ５１）の動作
次に、上述した位置検出処理部４０から供給される各種データに基づいて画像制御および楽音制御を指示するＣＰＵ５１の動作について図１７〜図１８を参照して説明する。以下では、ＣＰＵ５１の概略動作としてＣＰＵメインルーチンについて説明した後、ＣＰＵ５１において実行される衝突割込み処理ルーチンについて順次説明する。
▲１▼メインルーチンの動作
まず、装置本体２に電源が投入されると、ＣＰＵ５１はＲＯＭ５３に記憶されたオペレーションシステムプログラムを読み出してロードした後、ゲームカートリッジ５５に内蔵されるＲＯＭ５５ａからアプリケーションプログラムを読み出し、ＲＡＭ５２に展開する。これにより、図１７に示すＣＰＵメインルーチンが起動され、ＣＰＵ５１の処理はステップＳＧ１に進む。
【００７５】
ステップＳＧ１では、ＲＡＭ５２に確保される各種レジスタを初期化すると共に、ＶＤＰ３１および位置検出処理部４０へイニシャライズを指定する制御信号ＳＣを供給する。次いで、ステップＳＧ２に進むと、各部へ割込み許可を与える制御信号ＳＣを供給する一方、自身の割込みマスクを解除した後、ＣＰＵ５１内部に設けられる監視タイマＷＴをスタートさせる。なお、監視タイマＷＴとは、動作タイミングを規定するシステムクロックを計時するものであり、そのタイマ値に応じて装置各部の動作がＣＰＵ５１によって制御されるようになっている。
【００７６】
次に、ＣＰＵ５１は、ステップＳＧ３〜ステップＳＧ４を介してディスプレイ３にオブジェクト画像ＢＧを表示する。すなわち、ステップＳＧ３に進むと、ＣＰＵ５１は、ＲＯＭ５５ａ（図３参照）に格納されるバックグラウンド画像データＤBGをＶＤＰ３１へＤＭＡ転送するため、ＤＭＡコントローラに転送先アドレスおよび転送元アドレスをセットする。次いで、ステップＳＧ４では、当該ＤＭＡコントローラに対してＤＭＡ転送を指示する。転送命令を受けたＤＭＡコントローラは、転送セットされた転送元アドレスに従ってＲＯＭ５５ａからバックグラウンド画像データＤBGを読み出し、これをＶＤＰ３１（ＶＲＡＭ３２）へＤＭＡ転送する。これにより、ディスプレイ３（図１参照）には、各リズム楽器の形状を模した「アイコン」ＢＥ１〜ＢＥ６が表示される。
【００７７】
次に、ステップＳＧ５に進むと、ＣＰＵ５１はＤＭＡ転送が完了する迄待機する。そして、ＤＭＡコントローラ側から転送完了の旨を表わす信号を受領した時、このステップＳＧ５における判断結果が「ＹＥＳ」となり、次のステップＳＧ６へ処理を進める。ステップＳＧ６では、レジスタｎに格納される検出枠番号を「１」にセットする。この検出枠番号とは、「アイコン」ＢＥ１〜ＢＥ６に対応する値であり、各検出枠番号には前述した検出枠座標（ｘ1，ｙ1），（ｘ2，ｙ2）がそれぞれ対応付けられている。次いで、ステップＳＧ７に進むと、ＣＰＵ５１は、レジスタｎに格納される検出枠番号に対応する検出枠座標（ｘ1，ｙ1），（ｘ2，ｙ2）を読み出し、これを転送バッファエリアにセットする。
【００７８】
ステップＳＧ８では、位置検出処理部４０からの転送要求があるか否かを判断する。ここで、処理部４０から転送要求が来ない場合には、判断結果が「ＮＯ」となり、上記ステップＳＧ７へ処理を戻し、転送要求待ちとなる。一方、処理部４０から転送要求を受けると、判断結果が「ＹＥＳ」となり、次のステップＳＧ９へ処理を進める。ステップＳＧ９に進むと、ＣＰＵ５１は転送バッファエリアにセットした検出枠座標（ｘ1，ｙ1），（ｘ2，ｙ2）を処理部４０のワークエリアに転送する。これにより、位置検出処理部４０側は、ＣＰＵ５１によって指定される検出枠に従って前述した衝突位置検出等を行う。
【００７９】
次に、ステップＳＧ１０に進むと、上述した監視タイマＷＴを遅延させる。遅延タイマＷＴを遅延させることにより、ＣＰＵ５１は先に転送した検出枠座標（ｘ1，ｙ1），（ｘ2，ｙ2）に基づく位置検出処理部４０側の処理が完了するまで待機することになる。そして、位置検出処理部４０側の処理が完了すると、再び遅延タイマＷＴを計時させる一方、ステップＳＧ１１に進み、レジスタｎの値を１インクリメントし、検出枠番号を歩進させる。続いて、ステップＳＧ１２に進むと、レジスタｎに格納される検出枠番号が「７」、すなわち、「アイコン」ＢＥ１〜ＢＥ６に対応する全検出枠に関する処理が完了したか否かを判断する。ここで、完了していない場合には、判断結果が「ＮＯ」となり、上述したステップＳＧ７〜ＳＧ１１を繰り返す。一方、全検出枠に関する処理が完了した時には、判断結果が「ＹＥＳ」となり、次のステップＳＧ１３に進む。ステップＳＧ１３では、レジスタｎに格納される検出枠番号を「１」にリセットし、再びステップＳＧ７以降を繰り返す。
【００８０】
このように、ＣＰＵメインルーチンでは、電源投入後のイニシャライズを経て、ＲＯＭ５５ａから「アイコン」ＢＥ１〜ＢＥ６を形成するバックグラウンド画像データＤBGをＤＭＡ転送し、この後、位置検出処理部４０の処理に同期して１フレーム毎に検出枠座標（ｘ1，ｙ1），（ｘ2，ｙ2）を指定する。この結果、位置検出処理部４０は、各「アイコン」ＢＥ１〜ＢＥ６に対応する検出枠を時分割に衝突位置検出等の処理を実行することが可能になっている。
【００８１】
▲２▼衝突割込み処理ルーチンの動作
次に、図１８を参照し、ＣＰＵ５１において実行される衝突割込み処理ルーチンの動作について説明する。
前述したように、位置検出処理部４０では、衝突座標検出処理ルーチン（図１２参照）の動作に基づき、指定された検出枠内においてクロマキー像とバックグラウンド像との衝突の有無を検出しており、衝突を検出した場合に衝突フラグＣＦを「１」に設定している。そして、ＣＰＵ５１では、この衝突フラグＣＦが「１」となった時点で、その指定された検出枠に対応する「アイコン」がクロマキー像によってポインティング操作されたと見做して図１８に示す衝突割込み処理ルーチンを実行し、ステップＳＨ１へ処理を進める。
【００８２】
まず、ステップＳＨ１では、衝突検出がなされた検出枠に対応するバックグラウンド画像ＢＧの重心位置（ＸＧ1，ＹＧ1）をＲＯＭ５５ｂから読み込む。例えば、いま、「アイコン」ＢＥ１に対応する検出枠において、クロマキー像とバックグラウンド画像ＢＧとの衝突が検出されたとすると、「アイコン」ＢＥ１である「シンバル」像を形成するバックグラウンド画像ＢＧの重心位置（ＸＧ1，ＹＧ1）をＲＯＭ５５ｂから読み込む。なお、各「アイコン」ＢＥ１〜ＢＥ６に各々対応する重心位置は、予めバックグラウンド画像データＤBGに対応してＲＯＭ５５ｂに記憶されているものとする。次に、ステップＳＨ２に進むと、ＣＰＵ５１はバックグラウンド画像ＢＧと衝突したクロマキー像の重心座標（ＸＧ2，ＹＧ2）を、位置検出処理部４０におけるワークＲＡＭの記憶エリアＥ９（図８参照）から読み込む。なお、当該記憶エリアＥ９には、前述した重心計算処理ルーチンによって算出されたクロマキー像の重心座標が書き込まれている。
【００８３】
そして、ステップＳＨ３に進むと、バックグラウンド画像ＢＧの重心位置（ＸＧ1，ＹＧ1）とクロマキー像の重心座標（ＸＧ2，ＹＧ2）との間の離間距離Ｇを算出し、次のステップＳＨ４へ処理を進める。ステップＳＨ４では、現在指定している検出枠、すなわち、レジスタｎに格納される検出枠番号に対応して割り付けられる音色データを読み出す。ここで、例えば、現在指定されている検出枠が「１」であるとすると、当該検出枠に相当する「アイコン」ＢＥ１の楽器形状に合わせて、「シンバル」の音色を指定する音色データが読み出される。次いで、ステップＳＨ５では、上記ステップＳＨ３にて算出された離間距離Ｇに対応するベロシティデータを作成し、続いて、ステップＳＨ６では、楽音発生を指示するキーオン信号を発生すると共に、上記音色データ、ベロシティデータおよびキーオン信号を第１音源回路５５ｂへ送出する。
【００８４】
これにより、第１音源回路５５ｂは、ＣＰＵ５１から送出される音色データ、ベロシティデータおよびキーオン信号に基づき「リズム音」を楽音合成してサウンドシステム５７へ供給する。この結果、上記例のように、「アイコン」ＢＥ１がポインティング操作された場合には、ベロシティデータに応じた音量で「シンバル音」が発音される。つまり、離間距離Ｇが短い程、音量が大きくなるよう音量制御される。
【００８５】
このように、上記実施例によれば、遊戯者Ｐの両手両足に装着されるグローブＧあるいはブーツＢによって、「アイコン」ＢＥ１〜ＢＥ６のいずれかをポインティング操作すると、これら「アイコン」ＢＥ１〜ＢＥ６に対応する各検出枠が時分割でクロマキー入力処理の対象となるから、処理画面に複数のクロマキー像が存在する場合でも容易にポインティング操作することが可能になる。そして、この実施例では、グローブＧあるいはブーツＢによってポインティングされた「アイコン」に割り当てられたリズム楽器音が、ポインティングの仕方に応じて音量制御されるようになっている。これにより、例えば、従来の演奏態様とは異なり、ダンスなどの身振りでリズム演奏することも可能になる。
【００８６】
なお、上述した実施例にあっては、１フレーム毎に生成される処理画面マップにおいて指定された検出枠内でクロマキー像とバックグラウンド画像ＢＧとの衝突位置等を検出するようにしている。すなわち、フレーム更新に合わせて検出枠位置も更新することによって、複数のクロマキー像を時分割に検出する態様としているが、これに替えて、１フレーム当りに生成される処理画面マップ上で、例えば、図１９に図示するように、検出枠の位置およびサイズを時分割に変化させて、複数のクロマキー像を検出する態様としても良い。こうした場合においても、複数のクロマキー像によるポインティング操作が容易に実現し得る。
【００８７】
【発明の効果】
以上説明したように、本発明によれば、予め複数種の楽音信号を記憶するとともに、検出領域とこの記憶されている楽音信号の音色を指定する情報とを夫々対応付けて記憶しておき、表示画面上に表示される複数の背景画像の表示領域の各々に対応させて複数の検出領域を割り当て、これらの複数の検出領域の何れかと撮像画像から抽出した特定色領域とが重なった時に、この重なった検出領域に基づいて音色を指定する情報を選択し、更に重なった検出領域の重心位置と抽出された特定色領域の重心位置との離間距離に基づいて、選択された音色を指定する情報の出力音量を指定する情報を生成する。そして、これらの情報に従って対応する楽音信号を読み出して出力する。これにより、例えば身振りを撮影することにより演奏制御を行うような場合であっても、特定色領域との位置関係に関わる処理速度の遅延などの障害を起こすことなく、極めて容易に特定色領域検出によるポインティング操作を実現し得る。
【図面の簡単な説明】
【図１】本発明の一実施例による画像制御装置の全体構成を示す外観図である。
【図２】同実施例の概要を説明するための図である。
【図３】同実施例による画像制御装置の電気的構成を示すブロック図である。
【図４】同実施例における撮像信号処理部１１の構成を示すブロック図である。
【図５】同実施例におけるビデオ信号処理部２０の構成を示すブロック図である。
【図６】同実施例におけるクロマキー信号発生回路２０ｆの構成を示すブロック図である。
【図７】同実施例におけるＶＤＰ３１の構成を示すブロック図である。
【図８】同実施例における位置検出処理部４０のワークＲＡＭの内容を説明するためのメモリマップである。
【図９】位置検出処理部４０におけるメインルーチンの動作を示すフローチャートである。
【図１０】位置検出処理部４０における初期画面マップ作成ルーチンの動作を示すフローチャートである。
【図１１】位置検出処理部４０における処理画面マップ作成ルーチンの動作を示すフローチャートである。
【図１２】位置検出処理部４０における衝突座標検出処理ルーチンの動作を示すフローチャートである。
【図１３】位置検出処理部４０における座標検出処理ルーチンの動作を示すフローチャートである。
【図１４】位置検出処理部４０における重心計算処理ルーチンの動作を示すフローチャートである。
【図１５】位置検出処理部４０の動作例を示す図である。
【図１６】位置検出処理部４０の動作例を示す図である。
【図１７】ＣＰＵ５１におけるＣＰＵメインルーチンの動作を示すフローチャートである。
【図１８】ＣＰＵ５１における衝突割込み処理メインルーチンの動作を示すフローチャートである。
【図１９】処理画面マップ上において複数のクロマキー像を時分割に検出する際の一態様を説明するための図である。
【符号の説明】
１  撮像部
２  装置本体
３  ディスプレイ
２０  ビデオ信号処理部（画像表示手段）
３０  画像処理部（画像表示手段）
４０  位置検出処理部（動作指示手段）
５０  制御部
５１  ＣＰＵ（検出枠指定手段、動作指示手段）
【図１】
0003766981.tif 000002
【図２】
0003766981.tif 000003
【図３】
0003766981.tif 000004
【図４】
0003766981.tif 000005
【図５】
0003766981.tif 000006
【図６】
0003766981.tif 000007
【図７】
0003766981.tif 000008
【図８】
0003766981.tif 000009
【図９】
0003766981.tif 000010
【図１０】
0003766981.tif 000011
【図１１】
0003766981.tif 000012
【図１２】
0003766981.tif 000013
【図１３】
0003766981.tif 000014
【図１４】
0003766981.tif 000015
【図１５】
0003766981.tif 000016
【図１６】
0003766981.tif 000017
【図１７】
0003766981.tif 000018
【図１８】
0003766981.tif 000019
【図１９】
0003766981.tif 000020