図面を参照してこの発明のカラオケシステムについて説明する。図1は同カラオケシステムの外観図である。図2は同カラオケシステムを構成するカラオケ装置のブロック図である。図3は同カラオケシステムを構成するゲーム装置のブロック図である。
このカラオケシステムは、カラオケ装置とダンスゲーム装置からなっている。このカラオケシステムが本願発明のカラオケ装置に対応し、この実施形態のカラオケ装置は、カラオケシステムのうち主として曲の演奏機能を担当する装置をいう。なお、この実施形態ではカラオケ装置とダンスゲーム装置をそれぞれ別の装置で構成し、ケーブルで接続するようにしているが、一体の装置または同じラックにマウントされるまたは一緒に縦積みされるコンポーネントとして構成してもよい。また、モニタは外付けであっても、一体型であってもよいが、この発明のカラオケ装置において、モニタは必須ではない。
このカラオケシステムでは、カラオケ装置の演奏する曲に合わせて利用者が歌唱することができるとともに、カラオケ装置の演奏する曲に合わせて利用者がダンスゲームをすることができる。ここで、ダンスゲームとは、モニタ画面の下から音楽にあわせてスクロールするステップ指示映像(4方向矢印(←↓↑→)のパターン)に合わせて同方向のフットパネルをタイミング良く踏んで得点を競うゲームである。このステップ指示映像がこの発明の身振り指示映像に対応する。
カラオケ装置は、本体装置1、コントロールアンプ2、この発明の歌詞用背景映像発生手段であるDVDチェンジャ3、スピーカ5(図2参照)、モニタ6などを備えている。
また、ダンスゲーム装置は、ゲームコントロールユニット4、この発明の身振りセンサであるステップボード9、ゲーム操作パネル11、ビルコインボックス12、照明装置13などを備えている。すなわち、この実施形態では、ダンスの身振りとしてステップのみを指示・検出するようにしている。
利用者が演奏する曲を選曲したとき、それが通常のカラオケ曲(一般曲)であれば、カラオケ装置は、モニタ6に歌詞を表示しながら通常どおりのカラオケ演奏を実行する。一方、ダンスゲーム用の曲(専用曲)が選曲された場合は、利用者がゲーム操作パネル11のスタートボタン11aをオンしたとき曲の演奏をスタートさせ、この演奏と並行してモニタ6にステップ指示映像を表示する(図5参照)。利用者はこのステップ指示映像に合わせてステップし、ステップボード9のフットパネル9a〜9dを踏む。各フットパネル9a〜9dにはスイッチ90(図3参照)が設けられており、このスイッチ90のオンタイミングに基づいて利用者のステップの正確さを採点し、曲の演奏中または曲の終了後にその得点を表示する。また、カラオケ歌唱用の一般曲であっても上記スタートボタン11aを押すことによってダンスゲーム用の曲としてステップ指示映像を表示することも可能である。
図2において、カラオケ本体装置1のCPU20が、このカラオケシステム全体の動作を制御する。このCPU20には、ROM21、RAM22、ハードディスク27、通信制御部26、リモコン受信部23、操作部24、表示部25、この発明の歌詞映像生成手段であるグラフィック回路28、映像ミキサ29、この発明の楽音発生手段である楽音発生部30、この発明の歌唱音声再生手段である音声再生部31が接続されているとともに、インタフェース35、36が接続されている。インタフェース35には、前記コントロールアンプ2およびDVDチェンジャ3が接続されている。インタフェース36には、前記ゲームコントロールユニット4が接続されている。
ROM21には、このカラオケ装置を起動するためのプログラムなどが記憶されている。カラオケ曲(一般曲、専用曲を含めて以下このように呼ぶ。)を演奏するための楽曲データはDVDドライブ3にセットされているDVD3aおよびハードディスク27に記憶されている。また、ハードディスク27には、上記楽曲データのほか、システムプログラム、カラオケ演奏プログラム、通信プログラムなどの各種プログラム、文字パターンデータなどが記憶されている。システムプログラムは、この装置の基本動作を制御するプログラムであり、カラオケ装置の起動時にRAM22に読み込まれる。カラオケ演奏プログラムは、楽曲データに基づいてカラオケ演奏部30や音声再生部31を駆動してカラオケ演奏音を発生するためのプログラムである。通信プログラムは、配信センタから前記楽曲データやこの発明の身振りデータであるステップデータをダウンロードするためのプログラムである。文字パターンデータは、コード情報として与えられる歌詞、曲名などのテキスト情報を文字パターンに展開するためのデータである。
RAM22には、上記プログラムを読み込むエリアのほか、現在演奏中の楽曲データや次に演奏する楽曲データを読み出す実行データ記憶エリア、後述の各種フラグ、レジスタなどが設定される。
楽音発生部30は音源LSIなどを備え、前記楽曲データに基づいてカラオケ曲演奏の楽音を発生する。また、音声再生部31は、TwinVQなどの圧縮方式で記録された音声信号を再生する回路である。この音声再生部31は、カラオケ曲のバックコーラスを再生するほか、特定モード(音多モード)指定に応じて、予め録音されているプロの歌唱を再生する。すなわち、歌唱者が初心者で専門の歌手の歌唱を聴きたい場合や、利用者がダンスゲームをして歌唱をできない場合などに、このプロの歌唱を再生する音多モードが指定される。
楽曲データは、楽音発生部30に楽音を発生させるための楽音トラックのほか、上記予め録音されたプロの歌唱音声のTwinVQデータで構成される音声トラックを有している。CPU20は、カラオケ曲の演奏時、音多モードに応じて、楽音トラックの読み出しと同期してこの音声トラックのデータを音声再生部31に入力する。
音多モードは、音多切換スイッチ50(同図(B)参照)の操作により、音多オフ、音多オン、ダンスゲーム時音多オンの3つのモードに順次設定される。設定されたモードは、RAM22に設定される音多モードレジスタに記憶される。音多モードのデフォルトは、歌詞オフであり、カラオケ曲が選曲されるごとに、音多モードは音多オフに再設定される。なお、前記音多切換スイッチ50は、リモコン8、操作部24、ゲーム操作パネル11のいずれかまたはその他どこに設けてもよく、CPU20にその操作信号を通知できればよい。
楽音発生部30が発生した演奏音および指示に応じて音声再生部31が再生した歌唱音声は、コントロールアンプ2に入力される。コントロールアンプ2には、歌唱者が歌唱音声を入力するためのマイク7が接続されている。コントロールアンプ2は、マイク7から入力されたまたは音声再生部31が再生した歌唱音声および前記カラオケ演奏の楽音をミキシングしてスピーカ5に出力する。
また、コントロールアンプ2は、マイク7から入力された歌唱音声を分析・変換するための回路部であるハモリユニットを備えており、マイク7から入力された歌唱音声の周波数や音量を分析して、MIDIデータに変換したり、マイク7から入力された歌唱音声を他の所定周波数の音声に変換してハーモニー音声を生成することができる。ハーモニー音声を生成した場合には、これを前記楽音、歌唱音声とミキシングしてスピーカ5に出力する。
また、歌唱音声から周波数や音量を抽出して作成されたMIDIデータは、CPU20に入力される。CPU20は、このMIDIデータをリファレンス(楽曲データの楽音トラックに含まれているガイドメロディトラックなど)と比較することによって歌唱者の歌唱を採点する。さらにCPU20は、このMIDIデータにより発声回数、発声音量、単位時間当たりの発声頻度、音高、音高のジャンプ間隔などに基づいて、歌唱者がこの歌唱によってどの程度カロリーを消費したかを算出する。
歌唱によるカロリー消費量の算出は、「音量が大きいほどカロリー消費量が大きい、音高が高いほどカロリー消費量が大きい、連続する2音の音高の間隔(ジャンプ)が大きいほどカロリー消費量が大きい、連続する2音の間隔が短いほどカロリー消費量が大きい、単位時間当たりの発音回数が多いほどカロリー消費量が大きい」などのルールを関数化したものを用いて行う。このルール(関数)は、ハードディスク27に記憶されており、起動時にRAM22に読み出される。
通信制御部26は、通信回路を介して配信センタ19と交信し、楽曲データやステップデータなどをダウンロードするためのコントローラである。通信制御部16は、DMA回路を内蔵しており、ダウンロードされた楽曲データなどを直接ハードディスク27に書き込む。
リモコン受信部23はリモコン8から送られてくる赤外線信号を受信してデータを復元する。リモコン8は、曲番号を入力してカラオケ曲を予約するためのテンキーなど複数のキースイッチを備えている。利用者がキースイッチを操作すると、リモコン8は操作されたキースイッチに対応する赤外線コードの信号を送信する。リモコン受信部23はこの赤外線コード信号を受信してデータに復元し、CPU20に入力する。CPU20はこのデータに基づいてカラオケ曲の予約などの処理を実行する。操作部24は、カラオケ本体装置1のフロントパネルに設けられており、上記リモコン8と同様のキースイッチを備えている。表示部25も上記操作部24と同様カラオケ装置本体のフロントパネルに設けられており、現在演奏中の曲番号や予約曲数などを表示するLEDマトリクス表示器を含んでいる。
グラフィック回路28は、歌詞テロップの映像信号を発生し、映像ミキサ29に入力する。楽曲データは、楽音を発生する楽音トラックに加えて、楽音の発生に同期して歌詞を表示するための歌詞トラックを含んでいる。CPU20は、カラオケ曲の演奏時に、楽音トラックのデータを楽音発生部30に入力するのと同期して歌詞トラックのデータを読み出し、このデータに対応するフォントデータをハードディスク27から読み出して歌詞を文字パターンに展開する。この展開は、グラフィック回路28のVRAM上で行われる。グラフィック回路28は、この文字パターンを映像信号(NTSCコンポジット信号)化して映像ミキサ29に出力する。
映像ミキサ29は、グラフィック回路28から文字テロップを入力するための内部入力端子のほか、2つの外部映像入力端子29a,29bを備えている。外部映像入力端子29aには、前記DVDドライブ3が接続され、外部映像入力端子29bには前記ゲームコントロールユニット4が接続されている。
通常のカラオケ演奏時には、グラフィック回路28から歌詞テロップの映像信号を入力するとともに、外部入力端子29aからDVDドライブ3が再生する背景映像を入力し、背景映像上に歌詞テロップをスーパーインポーズ合成してモニタ6に入力する。DVDドライブ3が再生するDVD3aの背景映像は、カラオケ曲のジャンルや季節などに対応し、カラオケ曲の雰囲気にあった風景などの映像であり、カラオケ歌唱の雰囲気を盛り上げる機能を有している。
また、ダンスゲーム実行時には、外部入力端子29bからゲームコントロールユニット4の発生する映像を入力してモニタ6に出力する。このとき歌詞表示モード(後述)に応じて、グラフィック回路28から入力される歌詞テロップを上記映像にスーパーインポーズ合成する。ゲームコントロールユニット4が出力する映像信号は、図5に示すように、ゲーム用の背景映像上に上方向にスクロールするステップ指示映像がスーパーインポーズ合成されたものである。ゲーム用の背景映像は、CG(コンピュータグラフィック)のキャラクタがダンスをしているというような映像であり、ゲームを盛り上げる機能を有するとともに、ステップ指示映像が見やすい配色になっている。ゲームコントロールユニット4から入力される上記の映像信号に歌詞テロップをスーパーインポーズ合成すると、歌詞テロップが最前景に表示され、ステップ指示映像が見づらくなる可能性があるため、ユーザが歌詞表示モードを選択してこれを消去できるようになっている。
歌詞表示モードは、歌詞表示切換スイッチ51(同図(B)参照)の操作により、歌詞オン、歌詞オフ、ダンスゲーム時歌詞オフの3つのモードに順次設定される。設定されたモードは、RAM22に設定される歌詞表示モードレジスタに記憶される。歌詞表示モードのデフォルトは、歌詞オンであり、カラオケ曲が選曲されるごとに、歌詞表示モードは歌詞オンに再設定される。なお、前記歌詞表示切換スイッチ51は、リモコン8、操作部24、ゲーム操作パネル11のいずれかまたはその他どこに設けてもよく、CPU20にその操作信号を通知できればよい。CPU20は、歌詞表示切換スイッチ51の操作信号に応じて歌詞テロップの生成のオン・オフや映像ミキサ29の切り換えを制御する。
インタフェース36は、ゲームコントロールユニット4のインタフェース43に接続され、ゲームコントロールユニット4に対して種々のデータを送信するとともに、ゲームコントロールユニット4から種々のデータを受信するインタフェースである。ゲームコントロールユニット4に対して送信されるデータは、ダンスゲームを実行するためのステップデータまたは属性情報、カラオケ曲の各拍毎に生成されるビートマーク情報、曲の区間を示す演奏マークなどである。また、ゲームコントロールユニット4から受信するデータは、スタート信号やダンスゲームの得点、カロリー消費量などである。
図3において、ステップ指示映像は、ステップデータに基づいてCPU40が生成する。また、ゲーム用の背景映像は、CD−ROMドライブ42にセットされているCD−ROM42aに記憶されているムービーデータを再生したものである。すなわち、CD−ROMドライブ42がこの発明の身振り用背景映像発生手段に対応する。
ここで、ステップデータとは、曲の進行(特に曲のリズム)にあわせて4方向の矢印(←↓↑→)が描かれているフットパネル9a〜9dのどれを踏むかを示すデータであり、専用曲にはその曲に1対1で対応するステップデータがカラオケ本体装置1のハードディスク27またはDVD3aに記憶されている。また、一般曲のステップデータを生成するための素材となる8ステップ程度のパターンデータが、ゲームコントロールユニット4のCD−ROM42aに複数記憶されている。
ゲームコントロールユニット4は、前記CPU40を備え、このCPU40には、メモリ41、CD−ROMドライブ42、インタフェース43、グラフィックコントローラ44、インタフェース45、46を備えている。
メモリ41には、ダンスゲームを実行するとき、演奏中のカラオケ曲に対応するステップデータが書き込まれる。専用曲が選曲されると、ステップデータはカラオケ本体装置1から送信される。また、一般曲でゲームを行うとき、カラオケ本体装置1から送信されてくるのは、その曲のジャンル、拍子、テンポなどの属性情報であるため、CPU40はこの属性情報に基づいてステップデータを生成する。
CD−ROMドライブ42にセットされているCD−ROM42aには、8ステップ程度のパターンデータが多数記憶されており、CPU40は、属性情報に基づいてこのパターンデータから適当なものを選択・組み合わせすることによってステップデータをリアルタイムに生成する。
インタフェース43はカラオケ本体装置1と通信するためのインタフェースであり、カラオケ本体装置1から専用曲のステップデータ、一般曲の属性情報を受信するほか、1拍毎に発生するビートマーク、曲の切れ目(サビ、コーラス、間奏など)を示す演奏マークを受信する。また、このインタフェース43を介して、ゲームコントロールユニット4からカラオケ本体装置1に向けて、スタートボタン11aのオン信号であるスタート信号やダンスゲームの採点結果(得点)、ゲームによるカロリー消費量などの情報が送信される。
グラフィックコントローラ44は、CPU40から入力されるステップ指示映像を映像信号に変換し、この映像をCD−ROMドライブ42から入力されるゲーム用の背景映像にスーパーインポーズ合成してカラオケ本体装置1(映像ミキサ29の外部映像入力端子29b)に出力する。ここで、前記映像ミキサ29およびこのグラフィックコントローラ44がこの発明の映像出力手段に対応する。
インタフェース45には前記ゲーム操作パネル11およびステップボード9が接続されている。ステップボード9は、前後左右の矢印が付された4枚のフットパネル9a〜9dの内部に設けられた4個のスイッチ90(90a〜90d)、および、該矢印が付されたフットパネル9a〜9dとこれらに囲まれたホームポジションのフットパネル9eの内部に設けられた5つの圧力センサ91(91a〜91e)を備えている。スイッチ90のオン・オフ状態および圧力センサ91の検出値はインタフェース45を介してCPU40に伝達される。
また、ゲーム操作パネル11には、スタートボタン11a、難易度選択ボタン11bが設けられている。難易度選択ボタン11bは、ステップ指示映像として表示されるステップデータの難易度を選択するためのボタンスイッチであり、A、B、Cの3種類が設けられている。Aボタン、Bボタン、Cボタンは、それぞれA(高難易)、B(中難易)、C(低難易)の難易度に対応している。なお、ゲームモード設定時のデフォルトはC(低難易)である。スタートボタン11a,難易度選択ボタン11bのオン操作はインタフェース45を介してCPU40に伝達される。スタートボタン11aがオンされると、CPU40はスタート信号をカラオケ本体装置1のCPU20に送信する。また、難易度選択ボタン11bが操作されると、メモリ41に記憶している3種類のステップデータからその操作された難易度選択ボタンに対応するものを選択する。
インタフェース46には、前記コインボックス12および照明装置13が接続されている。コインボックス12は、CPU40に対して投入されたコインの枚数の情報であるクレジット情報を送信する。ダンスゲームを課金サービスとする場合、CPU40はこのクレジット情報に基づいてダンスゲームを実行するか否かを決定する。また、照明装置13は、ダンスゲームの実行時にCPU40の制御によって点滅制御される。CPU40は、カラオケ本体装置1から入力される拍タイミングの情報であるビートマークに基づいて、照明装置13の点滅制御を行う。
利用者によるリモコン8の操作によって専用曲が選曲されると、カラオケ本体装置1のCPU20は、ハードディスク27またはDVD3aからRAM22へ楽曲データを読み込むとともに、この楽曲データに対応して記憶されているステップデータをインタフェース36を介してゲームコントロールユニット4に送信する。
ゲームコントロールユニット4のCPU40は、カラオケ本体装置1から(インタフェース43を介して)ステップデータが入力されると、これをメモリ41に書き込み、利用者によるスタートボタン11a、難易度選択ボタン11bの操作があるまで待機する。難易度選択ボタン11bが操作されると、操作されたボタンに対応する難易度のステップデータを選択する。また、スタートボタン11aが操作されると、スタートボタン11aがオンされた旨を示すスタート信号をインタフェース43→インタフェース36を介してCPU20に通知する。
CPU20は、このスタート信号の入力をトリガとしてカラオケ曲(専用曲)の演奏をスタートし、曲の拍タイミングに同期したビートマークをインタフェース36→インタフェース43を介してCPU40に入力する。
CPU40は、このビートマークに同期して、ステップ指示映像を生成し、グラフィックコントローラ44に入力する。なお、CD−ROMドライブ42は、カラオケ曲のスタート(最初のビートマークの入力など)をトリガとしてゲーム用の背景映像の再生をスタートする。グラフィックコントローラ44は、CD−ROMドライブ42から入力される背景映像にCPU40から入力されグラフィックコントローラ44のVRAM上に展開したステップ指示映像をスーパーインポーズ合成してその合成映像をカラオケ本体装置1(映像ミキサ29)の外部映像入力端子29bに向けて出力する。この映像信号はNTSCコンポジット信号でよい。
また、CPU40は、ステップデータに基づいてステップ指示映像を生成するとともに、ステップボード9のスイッチ90a〜90dから入力されるオン信号をステップデータと比較し、ステップ指示映像で指示したフットパネルを、その指示タイミングに正確に踏んでいるかを判断し、その正確さに応じた得点を算出する。この得点は、ゲームの進行中にリアルタイムに算出され、メモリ41に蓄積記憶される。
また、このスイッチ90のオン信号の回数、単位時間当たりのオン頻度、および、ステップする毎に各フットパネル(ホームポジションを含む)に加えられる圧力に基づいて、このゲームによるカロリー消費量を算出する。ゲームによるカロリー消費量すなわちダンスによるカロリー消費量は、以下のようなルールに基づいて算出される。
今回のカロリー消費量pは、前回のステップからの時間t、フットパネルに加えられた圧力であるステップの強さa、前回ステップしたフットパネルと今回ステップしたフットパネルの移動距離移動dとして、
p=αad/t
で計算される。ここでαは係数であり、経験的に割り出されたものである。なお、身振りによるカロリー消費量の算出方法は、この式に限定されるものではない。たとえば、tに応じて、すなわち、走っているようなステップか歩いているようなステップかに応じて係数αを切り換えるようにしてもよい。
このカロリー消費量は、ゲームの進行中にリアルタイムに算出され、メモリ41に蓄積記憶される。曲の演奏すなわちゲームが終了すると、CPU40は、上記得点およびカロリー消費量を集計し、カラオケ本体装置1に向けて送信する。カラオケ本体装置は、この得点とカロリー消費量をモニタ6に表示する。
なお、カラオケ曲の演奏に合わせてダンスゲームが実行されているとき、利用者(ダンスゲームをしている者と別人でもよい)が、このカラオケ曲を歌唱することもでき、また、実際の歌唱に代えて楽曲データ中の音声トラックに基づいてプロの歌唱音声を再生するようにしてもよい。音多モード(プロの歌唱音声を再生するか否か)は、音多切換スイッチ50の操作によって切り換えることができる。音多モードがオフの場合には、マイク7が有効になり、マイク7から入力された歌唱が採点され、歌唱によるカロリー消費量が算出される。
カロリー消費量の表示は、直接的に「○○Cal消費しました」と表示してもよく、また「5分間ギョギングしたのと同じカロリーを消費しました」と他の運動に置き換えて表示してもよい。また、歌唱のカロリー消費量とダンスゲームのカロリー消費量を加算して合計の消費量を表示してもよい。歌唱によるカロリー消費量とダンスのステップによるカロリー消費量を別々に表示するとともにその合計を表示した表示例を図12に示しておく。
一方、利用者によって一般曲が選曲されると、カラオケ本体装置1のCPU20は、ハードディスク27またはDVD3aからRAM22へ楽曲データを読み込み、自動的にカラオケ曲の演奏をスタートする。このとき、DVDドライブ3がカラオケ曲用の背景映像を再生し、外部映像入力端子29aから映像ミキサ29にこの映像信号を入力する。映像ミキサ29はこの背景映像にグラフィック回路28から入力された歌詞テロップをスーパーインポーズ合成してモニタ6に出力する。利用者がカラオケ演奏に合わせて歌唱すれば、マイク7からその歌唱音声が入力されてスピーカ5から出力されるとともに、この歌唱が採点され、歌唱によるカロリー消費量が算出される。歌唱終了後、この採点結果(得点)とカロリー消費量がモニタ6に表示される。
上記のように一般曲の演奏がスタートして30秒以内に、ゲーム操作パネル11のスタートボタン11aが操作されると、ゲームコントロールユニット4のCPU40からカラオケ本体装置1のCPU20にスタート信号が通知される。
CPU20は、一般曲の演奏がスタートして30秒以内にスタート信号が通知されると、カラオケ曲の演奏を中止し、ステップ指示映像を表示しながらカラオケ曲を演奏するゲームモードでこのカラオケ曲の演奏を再スタートする。このとき、映像はゲームコントロールユニット4から入力されるものに切り換える。
一般曲には、対応するステップデータが記憶されていないため、CPU20は、このカラオケ曲の属性情報をゲームコントロールユニット4のCPU40に対して送信する。CPU40は、受信した属性情報をメモリ41に記憶するとともに、この属性情報に基づいてCD−ROM42aのステップパターンデータを選択・組み合わせすることによってリアルタイムにステップデータを生成する。CPU20から間奏、サビなど曲の区間を示す演奏マークが入力された場合には、その区間に合うようなステップパターンを選択する。また、利用者が難易度選択ボタン11bを操作すると、その指定された難易度のステップデータを生成するようにしてもよい。
なお、ステップデータを自動生成する場合であっても、同じ曲に対しては毎回(難易度ごとに)同じステップデータが生成されるようにする。これは、利用者が練習によって上達できるようにするためである。
なお、ダンスゲームを実行しているとき、または、ダンスゲームを実行していて且つ音多オンのとき、すなわちプロ歌手の歌唱を再生しているときには、カラオケ曲のイコライジングや各パートのバランスを変更するようにしてもよい。すなわち、カラオケ歌唱時には歌唱が引き立つように全体のバランスをフラットにしてボリュームを控えめにするが、ダンスゲーム時(歌唱しないとき)には、全体のボリュームを上げて、リズムパート(ベースパートを含む)の音量を大きくし、イコライジングも低音・高音が強調されたヘビーなものにすることでゲームを盛り上げることができる。このためには、楽曲データにパートバランス,イコライジングのパラメータを歌唱用とダンスゲーム用で別々に持つか、または、楽曲データには歌唱用のパラメータを記憶しておき、別にパラメータ変更アルゴリズムを持っていて、ダンスゲーム時にはこのパラメータ変更アルゴリズムに基づいてパートバランスやイコライジングを変更するようにすればよい。パラメータ変更アルゴリズムとしては「リズムパート(MIDI第10チャンネル)は、現在のボリューム×1.2」などである。
図4は上記ハードディスクおよびDVDに記憶されている楽曲データの構成を示す図である。楽曲データは、曲のジャンル、拍子、テンポなどの属性情報が書き込まれたヘッダのほか、楽音発生部30に楽音を発生させるためのデータが書き込まれた楽音トラック、演奏に同期して歌詞テロップを表示するためのデータが書き込まれた歌詞トラック、前奏、1番、間奏、サビ、2番、後奏などの曲の区間を示す演奏マークが書き込まれた制御トラックを備えている。楽音トラックは複数トラックで構成されており、複数の演奏パートのトラックのほか、歌唱採点のリファレンスとなるガイドメロディトラックなどが含まれている。
さらに、楽曲データには、プロの歌手がこのカラオケ曲を歌唱した歌唱音声データをTwinVQ方式で圧縮した音声トラックが付属している。この音声トラックは、楽曲データと一体に記憶してもよく、楽曲データの記憶エリアと別の音声トラックの記憶エリアを設け、それぞれを対応づけるようにしてもよい。
さらに、楽曲データのうち専用曲には、1対1で対応するステップデータが付属している。ステップデータとは、上述したように、曲の進行にあわせてフットパネル9a〜9d(←↓↑→)のどれを踏むかを示す時系列のデータである。各専用曲について、ステップデータは、A(高難易)、B(中難易)、C(低難易)の3種類が記憶されている。このステップデータは、楽曲データの一部として一体に記憶してもよく、楽曲データの記憶エリアと別のステップデータの記憶エリアを設け、各楽曲データと各ステップデータを対応づけるテーブルを設けるようにしてもよい。
なお、専用曲であるか一般曲であるかは、楽曲データのヘッダに書き込んでおいてもよく、対応するステップデータが存在するか否かで判断するようにしてもよい。
図5は、ダンスゲームが実行されるゲームモード時のモニタ6の表示例を示す図であり、モニタ6の左側部分の映像の時間変化を表すものである。モニタ6の左側にステップ指示映像が表示されている。ステップ指示映像は、曲のリズムに合ったステップのパターンが上方にスクロールする動画像である矢印群61と、モニタ6の上端に表示される静止画像であり、上方にスクロールしてきた矢印がこれと一致したときステップタイミングであることを示すタイミングマーク60とを合成した画像からなっている。矢印群61は、同図(A)〜(D)に示すように曲のテンポに合わせて下から上にスクロールし、上端のタイミングマーク60と重なり合ったとき、そのタイミングマークが明るく変化し、スクロールしてきた矢印は消滅する。矢印61がモニタ6の最下段に現れるタイミングが、この発明の請求項1の「そのタイミングの所定時間前」に対応する。
CPU40は、カラオケ本体装置1から演奏中のカラオケ曲の拍タイミングと同期したビートマークを受信し、そのビートマークのタイミングにタイミングマーク60と矢印群61中の所定の矢印が重なるように矢印群61を描画するとともに、そのスクロールを制御する。
図6〜図11のフローチャートを参照して同カラオケシステムの動作を説明する。
図6は演奏スタート時の動作を示すフローチャートである。利用者がリモコン8から曲番号を入力すると、その曲番号が予約曲リストに登録される。CPU20は、予約曲リストの先頭に登録されている曲番号を読み出し(s1)、この曲番号で指定される楽曲データをハードディスク27またはDVD3aから読み出す(s2)。そして、この曲が専用曲であるか一般曲であるかを判断する(s3)。専用曲であれば、対応するステップデータを読み出して(楽曲データと一体になっている場合には、楽曲データの読出時に一緒に読み出されている)、これをゲームコントロールユニット4に送信する(s4)。こののち、楽音発生部30のイニシャライズなどの演奏の準備を実行し(s5)、ゲームコントロールユニット4からスタート信号が送られてくるまで待機する(s6)。ゲームコントロールユニット4は、スタートボタン11aがオンされたとき、スタート信号をカラオケ本体装置1に向けて送信する。スタート信号を受信すると(s6)、CPU20は、曲の演奏をスタートする(s7)。
一方、リクエストされた曲が一般曲であった場合には(s3)、演奏の準備を実行したのち(s10)、即座に演奏をスタートする(s11)。そして、30秒以内にゲームコントロールユニット4からスタート信号が入力された場合には(s12,s13)、現在の演奏を停止し(s14)、ステップデータを生成するための曲の属性情報をゲームコントロールユニット4に対して送信する(s15)。こののち、演奏を再スタートする(s16)。
スタートボタンがオンされないまま30秒が経過した場合には(s12)、ゲームコントロールユニット4からのスタート信号の入力を禁止してそのまま演奏を継続する。なお、ダンスゲームに用いることが著作権契約等で禁止されている曲(禁止曲)は、楽曲データのヘッダにその旨が書き込まれており、禁止曲が演奏されているときは、30秒以内にスタートボタンがオンされた場合であってもゲームモードには移行しない。また、s16の演奏の再スタートは、ゲームコントロールユニット4のセットアップが完了するように2秒程度待ってスタートする。
図7はカラオケ曲の演奏中の動作を示すフローチャートである。同図(A)において、音多モードがオンのモードであるか否かを判断する(s20)。オンのモードであれば、すなわち音多オンであるか、または、ゲーム時オンであり且つダンスゲーム実行中であれば音声トラックを曲の演奏に同期して読み出し、音声再生部31に入力することによってこれを再生する(s21)。
次にテンポクロックをカウントし、そのテンポクロックのタイミングのイベントデータを各トラックから読み出す(s22)。読み出したデータが楽音トラックのデータの場合には(s23)、このデータを楽音発生部30に出力する(s26)。読み出したデータが歌詞トラックのデータの場合には(s24)、歌詞表示モードのオン・オフを判断し(s27)、歌詞表示モードがオンの場合のみこの歌詞データをパターン展開してグラフィック回路に出力する(s28)。足し表示モードが歌詞オフまたはダンスゲーム時オフで現在ダンスゲームが実行されているときには歌詞を表示しないため、歌詞データをパターン展開しない。なお、歌詞データの文字パターン展開は常時実行しておき、映像ミキサ29の切り換えで表示しないようにしてもよい。
また、読み出されたデータが演奏マークの場合には(s25)、このマークをゲームコントロールユニット4に送信する(s29)。
同図(B)はビートマーク出力動作を示すフローチャートである。テンポクロックと現在演奏中の曲のテンポ情報に基づいてビート(拍)タイミングを検出する(s31)。そして拍子データ(3拍子、4拍子等)に基づいて強拍のビートマークまたは弱拍のビートマークを作成する(s32)。このビートマークをゲームコントロールユニット4に送信する(s33)。
図8(A)は、カラオケ曲演奏中の採点動作を示すフローチャートである。まず、コントロールアンプ2から歌唱の音量・音高情報を入力する(s40)。この情報はマイク7から入力された歌唱から音量・音高を抽出し、これをMIDIデータに変換したものである。この情報とガイドメロディデータなどのリファレンスデータとを比較して一致度を判定し、これに基づいて歌唱を採点する(s41)。そして、この歌唱の音量、音高、間隔、音高のジャンプ幅などの要素に基づいてこの歌唱によるカロリー消費量を計算する(s42)。算出された得点(採点結果)とカロリー消費量を蓄積記憶する(s43)。以上の動作を曲が終了するまで繰り返し実行する(s44)。
そして曲が終了すると(s44)、歌唱の得点を集計し(s45)、歌唱によって消費したカロリー量を集計する(s46)。次にダンスゲームを実行している場合にはゲームコントロールユニット4からダンスゲームの得点およびダンスゲームによるカロリー消費量を受信する(s47、s48)。そしてこれら得点およびカロリー消費量を順次表示するとともに(s49)、これをログに保存する(s50)。図12はカロリー消費量の表示画面の例である。なお、ログはカラオケ曲の演奏履歴ファイルであり、ハードディスク27に設定される。ログの記録項目は、演奏時刻、曲番号、歌唱得点、歌唱カロリー消費量、ダンスゲーム得点、ダンスゲームカロリー消費量、ダンスゲーム選択難易度などである。
図8(B)は利用者の操作によるモード切換動作を示すフローチャートである。ユーザが音多切換スイッチ50を操作すると(s51)、RAM22に設定されている音多モードフラグの内容をオフ→オン→ダンスゲーム時オンの順に順次切り換える(s52)。また、ユーザが歌詞表示切換スイッチ51を操作すると(s53)、RAM22に設定されている歌詞表示モードフラグの内容をオン→オフ→ダンスゲーム時オフの順に順次切り換える(s54)。上述したように、音多モードのデフォルトはオフであり、歌詞表示モードのデフォルトはオンである。カラオケ装置の電源がオンされたときなど状態がリセットされるときには、これらのモードはデフォルトにセットされる。
図9〜図11はゲームコントロールユニットの動作を示すフローチャートである。図9はカラオケ装置で専用曲が演奏されるときの動作を示すフローチャートである。専用曲が演奏されるとき、カラオケ装置本体からその曲専用のステップデータが送られてくるのでこれを受信し(s60)、これをメモリ41に書き込む(s61)。ステップデータはA(高難易)、B(中難易)、C(低難易)の3種類が送られてくる。そしてユーザが難易度選択スイッチ11bまたはスタートスイッチ11aを操作するまで待機する(s62、s64)。難易度選択スイッチ11bが操作されると、メモリ41に記憶しているステップデータからその難易度に対応するものを選択する(s63)。なお、難易度のデフォルトはC(低難易)である。そして、スタートスイッチ11aがオンされると(s64)、カラオケ本体装置1に対してスタート信号を送信する(s65)。
図10は、カラオケ装置で一般曲が演奏されるときの動作を示すフローチャートである。一般曲の場合、カラオケ本体装置1は、このゲームコントロールユニット4のからの指示を待たないで自動的に演奏をスタートする。このときスタートスイッチ11aがオンされると(s70)、カラオケ本体装置1に対してスタート信号を送信する(s71)。カラオケ曲の演奏がスタートして30秒以内であれば、カラオケ本体装置1は、このスタート信号に応答してカラオケ演奏を停止し、ダンスゲームとして演奏をやり直す。このためカラオケ本体装置1は、ステップデータを生成するための支援情報である属性情報をこの装置に送信してくる。この属性情報を受信して(s72)、メモリ41に記憶する(s73)。そして、この属性情報に基づいてCD−ROM42aからパターンデータを選択して組み合わせることによってステップデータを生成する(s74)。このリアルタイムのステップパターンデータの生成を曲が終了するまで継続する(s77)。そして、曲の途中で曲がサビにはいったか間奏になったかなどの情報である演奏マークを受信すると(s75)、その演奏マークに合わせて生成するステップデータの内容を変更する(s76)。
図11(A)は、ゲームコントロールユニット4の映像生成動作を示すフローチャートである。入力されるビートマークに同期し、ステップパターンに基づいて下から上にスクロールする矢印の映像であるステップ指示映像を生成する(s80)。そして、CD−ROMドライブ42がダンスゲーム用の背景映像を再生する(s81)。グラフィックコントローラ44がこれらをスーパーインポーズ合成して(s82)、カラオケ本体装置1(映像ミキサ29)の外部映像入力端子29bに出力する(s83)。この動作は、ゲームが進行している間、すなわち曲が演奏されている間、繰り返し実行される繰り返す毎にs80で生成される矢印の映像は上に移動している。
同図(B)は、ゲームの採点動作を示すフローチャートである。まずステップボード9のフットスイッチ90a〜90dのオン・オフを検出する(s85)。このオン・オフ状態と現在のビートタイミング、ステップデータとの一致度を判定し、ゲームの得点を算出する(s86)。次に、圧力センサ91a〜91eの検出値を読み取り(s87)、これに基づいてこのゲームによるカロリー消費量を算出する(s88)。算出された得点とカロリー消費量をメモリ41に蓄積記憶する(s89)。以上の動作をゲーム(曲)が終了するまで繰り返し実行する(s90)。
そしてゲームが終了すると(s90)、得点およびカロリー消費量を集計してカラオケ本体装置に送信する(s91)。
なお、ゲーム実行中にテンポが変わるとステップ指示映像が曲に合わなくなるため、ゲームの実行中はカラオケ曲のテンポコントロール機能を禁止する。
上記実施形態において、一般曲のステップパターンデータの生成を、短いパターンをCD−ROM42aに記憶しておき、これを曲の種類、拍子、テンポなどに応じてそれを適宜組み合わせることによって生成しているが、何らかのルールに基づいて自動的に生成するようにしてもよい。
また、上記ダンスゲームは、身振りとして脚のステップを採用し、ステップボード9を設けてステップの正確さを競うゲームとしているが、脚以外に腕や上体の身振りを指示してその正確さを競うゲームとしてもよい。この場合には、腕や上体の振りを検出するセンサを設ける。腕の振りを検出するセンサとしては、本出願人の特願平8−249953号、特願平8−250368号などに記載したものなどを用いることができる。
また、上記実施形態のカラオケシステムでは、ダンスゲームとしてステップの順序パターンを指示する映像を表示しているが、ダンスの身振り(ステップ)によるカロリー消費量を検出するためにこの身振り指示映像は必須ではない。すなわち、カラオケ曲を歌唱しながら利用者が自分の思いどおりに身振り(ステップ)したものをフットパネルなどの身振りセンサで検出し、これに基づいて身振りによるカロリー消費量を検出すればよい。