以下、本発明の実施形態を図面に基づいて説明する。
[1.再生システムSの構成及び動作概要]
はじめに、図1を参照して、本実施形態の再生システムSの構成及び動作概要について説明する。再生システムSは、図1に示すように、楽曲再生装置1、表示・操作デバイス2、カメラ3、プロジェクター4、及び制御装置5等を備えて構成される。制御装置5は、本発明の動作評価装置の一例である。再生システムSは、例えばカラオケ店舗等のアミューズメント施設における部屋で利用される。楽曲再生装置1、表示・操作デバイス2、カメラ3、及びプロジェクター4は、有線または無線を介して制御装置5と接続される。また、楽曲再生装置1と制御装置5の少なくとも何れか一方には、有線または無線を介してディスプレイD、マイクM、及びスピーカSPが接続される。
楽曲再生装置1は、楽曲を再生する曲再生手段の一例である。楽曲再生装置1は、例えば、楽曲の一例であるカラオケ曲を再生するカラオケコマンダである。ここで、楽曲は、再生開始から再生終了まで時系列で並べられた複数の演奏パートから構成される。一般に、楽曲を、前半部分(楽曲の始まり部分)、中間部分、及び後半部分(楽曲の終わり部分)に分けると、それぞれの部分には、1つ以上の演奏パートが含まれる。演奏パートは、パート種別として、メロディパートと、伴奏パートとに区別することができる。メロディパートは、楽曲中で例えば歌唱がある部分(例えば、ボーカル部分)である。メロディパートは、さらに、Aメロ(Aメロパート)、Bメロ(Bメロパート)、Cメロ(Cメロパート)、及びサビ(サビパート)に区別することができる。Aメロは、楽曲の最初(例えば、歌い出し)のメロディ部分である。Bメロは、楽曲の調子が変わってサビに繋ぐメロディ部分である。Cメロは、最後のサビに繋ぐメロディ部分である。サビは、楽曲の中で最も印象的な(換言すると、盛り上がる)メロディ部分である。一方、伴奏パートは、楽曲中で例えば楽器の演奏のみで歌唱がない部分である。伴奏パートは、さらに、前奏(前奏パート)、間奏(間奏パート)、及び後奏(後奏パート)に区別することができる。例えば、楽曲の前半部分に含まれる伴奏パートは前奏であり、楽曲の後半部分に含まれる伴奏パートは後奏であり、楽曲の中間部分に含まれる伴奏パートは間奏である。
また、楽曲再生装置1は、複数の楽曲ファイルを記憶部に記憶する。楽曲ファイルは、楽曲の曲データを格納する。楽曲ファイルには、例えば、楽曲IDが対応付けられる。楽曲IDは、楽曲を識別するための識別情報である。楽曲ファイルのファイル名に楽曲IDが含まれてもよい。楽曲再生装置1は、制御装置5からの楽曲再生コマンドを受信すると、楽曲再生コマンドに含まれる楽曲IDが示す楽曲を再生し、再生された楽曲のオーディオ信号をスピーカSPへ出力する。このとき、楽曲再生装置1は、再生された楽曲の歌詞テロップをディスプレイDに表示させる。ユーザは、楽曲再生装置1による楽曲の再生中に、ディスプレイDに表示された歌詞テロップを見ながら、マイクMを持って歌唱することができる。この場合、楽曲再生装置1は、楽曲のオーディオ信号と、マイクMにより集音されたユーザの歌唱音声信号とをミキシングしてスピーカSPへ出力する。
表示・操作デバイス2は、ユーザから操作指示を受け付け、その操作指示を示す指示信号を制御装置5へ出力する機器である。表示・操作デバイス2には、例えば、表示画面を備えるタッチパネルディスプレイが用いられる。表示・操作デバイス2は、例えば、楽曲再生装置1のリモコンであってもよい。表示・操作デバイス2は、楽曲再生装置1で再生される候補となる楽曲の楽曲リストを表示画面に表示する。表示・操作デバイス2の表示画面に表示される楽曲リストは、例えば楽曲ID、楽曲名、アーティスト名、再生時間、及び楽曲パート構成情報等の楽曲情報を楽曲毎に示す。再生時間は、楽曲の再生開始から再生終了までの時間長である。楽曲パート構成情報は、楽曲の演奏パートの時系列的な構成を示す情報である。楽曲を構成する各演奏パートには、再生開始から再生終了まで時系列で並べられた順番を示す構成番号が付与されている。例えば、楽曲αは、図2(A)に示すように、12個の演奏パートから構成されており、前奏から始まり、後奏で終わるように構成されている。なお、楽曲パート構成情報には、演奏パート毎の時間長が含まれるとよい。ユーザが表示・操作デバイス2を操作して楽曲リストから所望の楽曲を選択すると、選択された楽曲の再生指示を示す指示信号が制御装置5へ出力される。
カメラ3には、例えば、RGBカメラ及び深度カメラが用いられる。カメラ3は、例えばRGBカメラにより、上記部屋内における撮像範囲を連続的に撮像することでRGB画像を連続的に取得する。深度カメラは、赤外線レーザなどによる深度センサーである。カメラ3は、深度カメラにより、上記部屋内における撮像範囲を連続的に撮像することでデプス画像を連続的に取得する。デプス画像は、上記撮像範囲に存在する人物及び人物の背景における各位置までの深度を示す。カメラ3は、取得したデプス画像から人物を検出(認識)し、検出した人物に対応する検出IDと、検出した人物の輪郭や骨格を形成する各部位の位置を示す部位情報とを対応付けて生成する。この人物は、楽曲再生装置1により再生された楽曲を聴取するユーザ(システム利用者)である。検出IDは、検出された人物を識別するための識別情報である。ここで、連続して取得されるデプス画像から人物(つまり、同じ人物)が検出されている間、この人物に対応する検出IDは変化しないが、この人物の上記部位情報はこの人物の動作に応じて変化することになる。一方、この人物が上記撮像範囲外に移動したり、大きく動作することなどにより検出不能となった(つまり、ロストした)場合において、再びこの人物が上記撮像範囲内に移動することなどにより検出される場合がある。この場合に検出された人物に対しては、新たな検出ID(上記とは異なる検出ID)が生成される。撮像範囲内に複数の人物が存在する場合、それぞれの人物が検出され、それぞれの人物に対応する検出IDと、それぞれの人物の輪郭や骨格を形成する各部位の位置を示す部位情報とがそれぞれ対応付けられて生成されることになる。カメラ3は、取得したRGB画像と、検出した人物に対応する検出ID及び部位情報とを連続的に制御装置5へ送信する。なお、制御装置5が、カメラ3からデプス画像を連続的に取得して人物を検出し、検出した人物に対応する検出ID及び部位情報を生成してもよい。
また、上記部位情報は、例えば、人物の輪郭や骨格を形成する部位毎に、位置座標(X,Y,Z)が対応付けられた情報であり、デプス画像に示される各位置までの深度から特定することが可能である。具体的には、深度カメラにより取得された各位置までの深度を、人物の輪郭や骨格を形成する各部位の位置を判断するための人物位置パターンデータと比較することにより、人物の輪郭や骨格を形成する各部位が特定される。人物位置パターンデータは、例えば、予め所定のデータベース等に記憶された多数の種類の人物位置パターンから、デプス画像に示される各位置の深度に応じた所定のパターンデータを読み出して用いられる。人物の輪郭や骨格を形成する各部位の例として、頭部、左肩部、右肩部、左肘部、右肘部、左手部、右手部、首部、胴部、腰部、左尻部、右尻部、左膝部、右膝部、左足部、及び右足部等が挙げられる。このような部位情報には、部位の回転角Θが含まれる場合もある。部位の回転角Θとは、その部位に連結される他の部位を基準とする回転角Θである。もしくは、部位の回転角Θとは、その部位と間接的に連結される特定の部位の位置を基準とした回転角Θであってもよい。例えば、頭部の回転角Θは、頭部に連結される首部を基準とする回転角Θである。首部の回転角Θは、首部に連結される胴部を基準とする回転角Θである。回転角Θを含む部位情報は(X,Y,Z,Θ)というように表される。
プロジェクター4は、制御装置5から再生出力された画像信号に応じた光を発光部から発することにより画像を投影面(例えば上記部屋の壁面)に投影する。画像には、静止画像と動画像とがある。制御装置5は、楽曲再生装置1、カメラ3、及びプロジェクター4を制御する。制御装置5は、図1に示すように、IF51a〜51d、記憶部52、及び制御部53等を備える。IF51a〜51d、記憶部52、及び制御部53は、バス54に接続されている。IF51aは、楽曲再生装置1と制御装置5との間のインターフェースである。IF51bは、表示・操作デバイス2と制御装置5との間のインターフェースである。IF51cは、カメラ3と制御装置5との間のインターフェースである。IF51dは、プロジェクター4と制御装置5との間のインターフェースである。なお、制御装置5は、例えば、インターネット等により構成されるネットワークに接続するための通信部を備えてもよい。
記憶部52は、例えばハードディスクドライブにより構成される。記憶部52には、OS(Operating System)、及び本発明のプログラム等が記憶される。このプログラムは、後述する処理をCPUに実行させるプログラムである。また、記憶部52には、楽曲再生装置1で再生される候補となる複数の楽曲それぞれの楽曲情報が記憶される。楽曲情報は、例えば楽曲再生装置1から取得される。また、記憶部52には、応援動作情報設定テーブルが記憶される。例えば、応援動作情報設定テーブルには、図2(B)に示すように、応援動作ID、既定動作データ、パート種別、及び応援ポイントが応援動作毎に対応付けられて登録されている。図2(B)に示す応援動作は、楽曲再生装置1により再生された楽曲についての盛り上げ動作としての既定動作の一例である。応援動作IDは、応援動作を識別するための識別情報である。既定動作データは、上記既定動作を示す。例えば、前を向く動作データは、基準となる人物が前を向く動作を行っているときにおいて、その人物の輪郭や骨格を形成する部位毎に対応付けられた位置座標の時系列的な変化を示す。既定動作データに対応付けられたパート種別は、その既定動作データが示す既定動作が人物により行われたときに、その人物の動作を上記応援動作として評価する応援パート(つまり、評価対象パート)の候補となる演奏パートを示す。既定動作データに対応付けられた応援ポイントは、上記人物の動作を上記応援動作として評価するにあたって、その人物(人物の識別情報)に対して付与される評価点である。既定動作データごとに、既定動作が応援動作として相応しいパート種別の演奏パートが対応付けられている。例えば、拍手動作データは、パート種別として伴奏パートである前奏、間奏、後奏が対応づけられている。これは、歌唱者の歌唱中に拍手動作が行われると、歌唱者が歌唱中に楽曲の音を聞くことを妨げる騒音となるおそれがあるため、歌唱者の歌唱中に相当する演奏パートでは、拍手動作を応援動作として評価しないことが好ましいためである。一方、前奏、間奏、後奏などの伴奏パートにおいて、拍手動作が行われたときは、歌唱がされていなくても楽曲を聞いていることを示す応援動作として評価する。また、例えば、口ずさむ動作データは、Aメロ、Bメロ、Cメロ、サビのメロディパートが対応付けられている。これにより、口ずさむ動作は、歌唱者が歌唱中である演奏パートにおいて、一緒に口ずさむことで歌唱を応援する応援動作と評価することができる。また、記憶部52には、プロジェクター4により投影面に投影(表示)される候補となる複数のキャラクタ画像それぞれの画像データが応援キャラクタIDに対応付けられて記憶される。応援キャラクタIDは、キャラクタを識別するための識別情報である。キャラクタ画像は、上述したように部屋内で検出された人物に対して割り当てられる画像であり、例えば動物の画像が用いられる。キャラクタ画像は、例えば、三次元コンピュータグラフィックス(3DCG)のモデルデータと、モーションデータとを用いて形成され、投影される。また、キャラクタ画像は、例えばキャラクタが上述した既定動作を行う動画像であるとよい。この場合、1つのキャラクタ画像には、上述した既定動作毎の動画像がある。上述したように部屋内で検出された人物が複数である場合、それぞれの人物に対して異なるキャラクタ画像が割り当てられる。人物に対して割り当てられたキャラクタ画像の表示数は、その人物に付与された応援ポイントが増加することに応じて増加する。
制御部53は、コンピュータとしてのCPU(Center Processing Unit)、ROM(Read Only Memory)、及びRAM(Random Access Memory)等により構成される。制御部53は、本発明の検出手段、決定手段、判断手段、評価手段、及び表示制御手段の一例である。制御部53のRAMの所定領域には、RGB画像の画像フレームを時系列で格納するためのフレームバッファと、検出ID及び部位情報を時系列で格納するためのモーションバッファとが確保される。制御部53は、記憶部52に記憶されたプログラムに従って処理を実行する。具体的には、制御部53は、楽曲再生装置1により再生される楽曲の一部の演奏パートを、応援動作の応援パートに決定する。応援パートは、例えば、種々の決定方式(種々の決定方式による応援パート決定処理)で決定される。このような決定方式の例として、直接指定方式、パート種別指定方式、自動分散決定方式、及び音量判定方式が挙げられる。例えば、楽曲αには直接指定方式が、楽曲βにはパート種別指定方式が、楽曲γには自動分散決定方式が、それぞれ設定されているというように、楽曲毎に決定方式が予め設定されていてもよい。これにより、制御部53は、複数の演奏パートの中から、楽曲中の盛り上がりに関する指標が高く設定された演奏パートを応援パートに決定する。これにより、楽曲の曲構成に適した演奏パートを応援パートに決定することができる。また、例えば、制御部53は、メロディパートと、伴奏パートのそれぞれ少なくとも1つの演奏パートを応援パートに決定しても、楽曲の曲構成に適した演奏パートを応援パートに決定することができる。なお、直接指定方式、パート種別指定方式、自動分散決定方式、及び音量判定方式による応援パート決定処理の詳細は後述する。
また、制御部53は、カメラ3から取得(受信)したRGB画像の画像フレームを時系列でフレームバッファに格納し、且つ、カメラ3から取得(受信)した検出ID及び部位情報を時系列でモーションバッファに格納する。制御部53は、例えばモーションバッファに時系列で格納された複数の部位情報に基づいて、部屋内で検出された人物の動作を検出する。そして、制御部53は、上記決定した応援パートの再生中に、上記検出した人物の動作を、上記既定動作データが示す、再生中の応援パートと対応付けられた既定動作と比較し、その人物により既定動作が行われたか否かを判断する。例えば、制御部53は、上記検出された人物の動作と上記既定動作との類似度を算出し、その類似度が所定値以上であれば、既定動作が行われたと判断する。ここで類似度は、例えば、人物の動作における各部位の位置座標の変化の軌跡と、既定動作における各部位の位置座標の変化の軌跡との一致度合を部位毎に求めることで算出することができる。制御部53は、上記既定動作が行われたと判断したとき、その人物の動作を、上記再生された楽曲についての応援動作(盛り上げ動作の一例)として評価する。これにより、例えば、その人物に対して、上記既定動作に応じた応援ポイントが付与される。換言すると、その人物の識別情報に対応付けられた応援ポイント(つまり、累積ポイント)に、上記既定動作に応じた応援ポイントが加算される。これにより、その人物の識別情報に対応付けられた累積ポイントが増していくことになる。なお、制御部53は、上記検出された人物のうち、検出された人物がマイクMを持っているか否かを判別可能である場合には、マイクMを所持していない人物の動作について、既定動作が行われたか否かを判断してもよい。
また、制御部53は、楽曲の少なくとも前半部分と後半部分とを含む複数の部分からそれぞれ少なくとも1つの演奏パートを応援パートに決定した場合において、既定動作が行われたと判断されたときの既定動作に応じた応援ポイントを、決定した応援パート毎に算出し、算出した各応援ポイントの総和である累積ポイント(総合評価点の一例)を算出する。そして、制御部53は、上記複数の部分からそれぞれ決定された応援パートのそれぞれにおける応援ポイントが時系列で増加しているとき、累積ポイントに追加ポイントを加算する。また、制御部53は、評価した結果を表示部に出力させる。例えば、制御部53は、累積ポイントに応じた数のキャラクタ画像を複製し、複製したキャラクタ画像の画像信号をプロジェクター4(表示部の一例)へ再生出力することで、図3(A)に示すようなキャラクタ画像C1〜C4を投影面に投影(表示)させる。
[2.再生システムSの動作]
次に、本実施形態の再生システムSで実施される動作内容について説明する。
(2.1 応援パート制御処理)
先ず、図4及び図5を参照して、制御部53により実行される応援パート制御処理の一例について説明する。例えば、ユーザが表示・操作デバイス2を操作して楽曲リストから所望の楽曲を選択すると、選択された楽曲の再生指示を示す指示信号が制御装置5へ出力される。制御部53は、表示・操作デバイス2からの楽曲の再生指示を示す指示信号を受信すると、選択された楽曲の楽曲IDを含む楽曲再生コマンドを楽曲再生装置1へ送信し、図4(A)に示す処理を開始する。図4(A)に示す処理が開始されると、制御部53は、選択された楽曲の再生開始を検知したか否かを判定する(ステップS1)。例えば、楽曲再生装置1は、制御装置5から受信した楽曲再生コマンドに含まれる楽曲IDが示す楽曲の再生を開始すると、再生開始信号を制御装置5へ送信する。制御部53は、楽曲再生装置1からの再生開始信号を受信すると、選択された楽曲の再生開始を検知したと判定し(ステップS1:YES)、ステップS2へ進む。一方、制御部53は、選択された楽曲の再生開始を検知していないと判定した場合(ステップS1:NO)、ステップS4へ進む。
ステップS2では、制御部53は、再生開始された楽曲の楽曲パート構成情報(つまり、再生開始された楽曲の楽曲IDに対応付けられた楽曲パート構成情報)を取得する。この楽曲パート構成情報には、例えば、演奏パート毎の構成番号、パート種別、及び時間長が含まれる。次いで、制御部53は、例えば再生開始された楽曲に対して予め設定された方式による応援パート決定処理を実行し(ステップS3)、ステップS1に戻る。以下、直接指定方式、パート種別指定方式、自動分散決定方式、及び音量判定方式による応援パート決定処理の詳細を説明する。
先ず、直接指定方式が設定されている場合の応援パート決定処理では、制御部53は、例えば図5(A)に示すような応援パートリストを取得する。例えば、制御部53は、通信部(図示せず)よりネットワークを介して所定のサーバにアクセスし、再生開始された楽曲の楽曲IDをキーとして、上記サーバから、既に作成済の応援パートリストを取得する。図5(A)に示す応援パートリストでは、12個の演奏パートのうち、前奏、サビ1、サビ2、及び後奏の4つの演奏パートが応援パート(丸印)として指定されている。このように指定される演奏パートは、楽曲中の盛り上がりに関する指標が高く設定された演奏パートである。この指定は、例えば楽曲の提供者(例えば、レーベル会社、作詞者、または作曲者)等により行われる。制御部53は、上記サーバから取得した応援パートリストが示す応援パート(つまり、直接指定された応援パート)を決定する。これにより、楽曲に適した応援パートを決定することができる。なお、応援パートリストは、再生開始された楽曲の楽曲情報に含まれるように構成してもよい。この場合、制御部53は、再生開始された楽曲の楽曲情報から応援パートリストを取得して応援パートを決定する。
次に、パート種別指定方式が設定されている場合の応援パート決定処理では、図4(B)に示すように、制御部53は、図5(B)に示すような応援パート種別情報を例えば記憶部52から取得する(ステップS301)。このような応援パート種別情報は、例えばシステム管理者やユーザ等により作成され、記憶部52に予め記憶される。また、応援パート種別情報は、楽曲間で共通に用いることができる。図5(B)に示す応援パート種別情報では、サビ、間奏、及び後奏の3つの演奏パートが応援パート(丸印)として指定されている。次いで、制御部53は、構成番号i(変数)に“1”を代入する(ステップS302)。次いで、制御部53は、構成番号iが、ステップS2で取得された楽曲パート構成情報に示される演奏パート数M(例えば、12)以下であるか否かを判定する(ステップS303)。制御部53は、構成番号iが演奏パート数M以下であると判定した場合(ステップS303:YES)、ステップS304へ進む。一方、制御部53は、構成番号iが演奏パート数M以下でないと判定した場合(ステップS303:NO)、ステップS307へ進む。
ステップS304では、制御部53は、構成番号iの演奏パートのパート種別が、ステップS301で取得された応援パート種別情報において応援パートとして指定されているか否かを判定する。制御部53は、構成番号iの演奏パートのパート種別が応援パートとして指定されていないと判定した場合(ステップS304:NO)、ステップS306へ進む。一方、制御部53は、構成番号iの演奏パートのパート種別が応援パートとして指定されていると判定した場合(ステップS304:YES)、構成番号iの演奏パートを応援パートに決定し(ステップS305)、ステップS306へ進む。これにより、メロディパートと、伴奏パートのそれぞれ少なくとも1つの演奏パートを応援パートに決定することができる。また、パート種別単位で迅速に応援パートを決定することができる。また、直接指定方式に比べて、応援パートリストの作成コストを低減することができる。ステップS306では、制御部53は、構成番号iを1インクリメントし、ステップS303に戻り、上記と同様の処理を行う。ステップS307では、制御部53は、ステップS305で決定された応援パートを示す応援パートリストを、図5(C)に示すように生成する。図5(C)に示す応援パートリストでは、12個の演奏パートのうち、サビ1、間奏1、サビ2、間奏2、サビ3、及び後奏の6つの演奏パートが応援パート(丸印)として示されている。
次に、自動分散決定方式が設定されている場合の応援パート決定処理では、図4(C)に示すように、制御部53は、応援割り当て番号i(変数)に“1”を代入する(ステップS311)。次いで、制御部53は、応援割り当て番号iが、予め定められた割り当て数N(評価対象パート数の一例)以下であるか否かを判定する(ステップS312)。制御部53は、応援割り当て番号iが割り当て数N以下であると判定した場合(ステップS312:YES)、ステップS313へ進む。一方、制御部53は、応援割り当て番号iが割り当て数N以下でないと判定した場合(ステップS312:NO)、ステップS320へ進む。ステップS313では、制御部53は、ステップS2で取得された楽曲パート構成情報に示される複数の演奏パートにおいて、応援パートとして決定済の演奏パートがあるか否か判定する。制御部53は、決定済の演奏パートがないと判定した場合(ステップS313:NO)、ステップS314へ進む。一方、制御部53は、決定済の演奏パートがあると判定した場合(ステップS313:YES)、ステップS315へ進む。ステップS314では、制御部53は、ステップS2で取得された楽曲パート構成情報に示される複数の演奏パートにおいて、例えば先頭(構成番号“1”)の演奏パートから最も離れた演奏パートを応援パートに決定し、ステップS319へ進む。
ステップS315では、制御部53は、ステップS2で取得された楽曲パート構成情報に示される複数の演奏パートにおいて、応援パートとして決定されていない演奏パートのうち、応援パートとして決定済の演奏パートから最も離れた演奏パートを選択する。次いで、制御部53は、ステップS315で選択された演奏パートが複数あるか否かを判定する(ステップS316)。制御部53は、ステップS315で選択された応援パートが複数ないと判定した場合(ステップS316:NO)、ステップS315で選択された演奏パートを応援パートに決定し(ステップS317)、ステップS319へ進む。一方、制御部53は、ステップS315で選択された演奏パートが複数あると判定した場合(ステップS316:YES)、選択された複数の演奏パートのうち、時系列で後にある演奏パート(つまり、構成番号が最も大きい演奏パート)を応援パートに決定し(ステップS318)、ステップS319へ進む。このように、応援パートとして決定済の演奏パートから最も離れた演奏パートが複数ある場合、時系列で後にある演奏パートが優先して応援パートに決定される。このため、より盛り上がることが期待される方の演奏パートを優先して応援パートとして決定することができる。
ステップS319では、制御部53は、応援割り当て番号iを1インクリメントし、ステップS312に戻り、上記と同様の処理を行う。このように、制御部53は、時系列で並べられた複数の演奏パートから、割り当て数Nに達するまで応援パートを複数回繰り返し決定する繰り返し処理を行う。制御部53は、1回の上記繰り返し処理において、応援パートとして決定されていない演奏パートのうち、応援パートとして決定済の演奏パートから最も離れた演奏パートを応援パートに決定する。これにより、なるべく応援パートが散らばる(偏らない)ように決定することができる。また、また、直接指定方式に比べて、応援パートリストの作成コストを低減することができる。このような繰り返し処理において、例えば、図5(D)に示すように、先ず、構成番号“12”の後奏が決定され、続いて、構成番号“1”の前奏が決定される。続いて、図5(E)に示すように、構成番号“7”のBメロ2が決定され、続いて、構成番号“4”のサビ1が決定される。続いて、図5(F)に示すように、構成番号“10”のCメロ1が決定され、最後に、構成番号“9”の間奏2が決定され、これで割り当て数N(この例では、N=6としている)に達するので、応援パートの決定は完了する。なお、図5(E)に示す段階では、構成番号“9”の間奏2と、構成番号“10”のCメロ1とは、それぞれ、応援パートとして決定済の演奏パートから最も離れているので、2つの演奏パートのうち、時系列で後にあるCメロ1が優先して応援パートに決定されることになる。ステップS320では、制御部53は、ステップS314で決定された応援パートと、ステップS317及びS318の少なくとも何れかで決定された応援パートとを示す応援パートリスト(図5(F))を生成する。
次に、音量判定方式が設定されている場合の応援パート決定処理では、制御部53は、演奏パート別音量情報を例えば記憶部52から取得する。演奏パート別音量情報は、例えば演奏パート毎の音量を示す。この音量は、例えば、楽曲の曲データが示す時系列の音圧振幅値を演奏パート毎に平均化(二乗平均平方根を算出)することで求めることができる。例えば、制御部53が楽曲の曲データに基づき演奏パート別音量情報を生成してもよい。制御部53は、演奏パート別音量情報を参照して、例えば予め定められた割り当て数(演奏パート数より少ない数)に達するまで、音量が大きい順に演奏パートを応援パートとして複数決定する。そして、制御部53は、決定された応援パートを示す応援パートリストを生成する。楽曲には、例えば、サビなどのメロディパートが、他の演奏パートである伴奏パートより音圧振幅値が大きく設定されている場合がある。これは、その楽曲が、サビなどのメロディパートが、伴奏パートより盛り上がることを示す。すなわち、音圧振幅値が大きく設定されている演奏パートは、音圧振幅値が小さい他の演奏パートより、盛り上がるべき演奏パートであることを示す指標となる。この音量判定方式を用いた応援パート決定処理を行うと、サビなどのメロディパートが盛り上がる演奏パートとして、伴奏パートに比べて音圧振幅値が大きく設定されている場合には、盛り上がるべき演奏パートの応援動作を有効に評価することが可能となる。
ステップS4では、制御部53は、選択された楽曲の再生終了を検知したか否かを判定する。例えば、楽曲再生装置1は、選択された楽曲の再生を終了すると、再生終了信号を制御装置5へ送信する。制御部53は、楽曲再生装置1からの再生終了信号を受信すると、選択された楽曲の再生終了を検知したと判定し(ステップS4:YES)、ステップS5へ進む。一方、制御部53は、楽曲の再生終了を検知していないと判定した場合(ステップS4:NO)、ステップS1に戻る。ステップS5では、制御部53は、再生終了が検知された楽曲の応援パートリストを削除し、図4(A)に示す処理を終了する。
(2.2 応援ユニット制御処理)
次に、図6乃至図9を参照して、制御部53により実行される応援ユニット制御処理の一例について説明する。図6に示す処理は、例えば制御装置5の電源入により開始され、電源切により終了する。図6に示す処理が開始されると、制御部53は、人物が検出されたか否かを判定する(ステップS10)。例えば、カメラ3は、上記部屋内で人物を検出すると、人物検出信号を制御装置5へ送信する。制御部53は、カメラ3からの人物検出信号を受信すると、人物が検出されたと判定し(ステップS10:YES)、ステップS11へ進む。一方、制御部53は、人物が検出されていないと判定した場合(ステップS10:NO)、ステップS17へ進む。
ステップS11では、制御部53は、カメラ3からRGB画像、検出ID及び部位情報を取得する。次いで、制御部53は、ステップS11で取得されたRGB画像の画像フレームを検出IDに対応付けてフレームバッファに格納し、且つ、ステップS11で取得された部位情報を検出IDに対応付けてモーションバッファに格納する(ステップS12)。次いで、制御部53は、生成済の応援ユニット(応援ユニットテーブル)があるか否かを判定する(ステップS13)。例えば、生成済の応援ユニットが例えばRAMの所定領域に記憶されているか否か判定される。制御部53は、生成済の応援ユニットがないと判定した場合(ステップS13:NO)、応援ユニット生成処理を実行し(ステップS14)、ステップS10に戻る。一方、制御部53は、生成済の応援ユニットがあると判定した場合(ステップS13:YES)、ステップS15へ進む。
応援ユニット生成処理では、図7(A)に示すように、制御部53は、検出された全ての人物の動作が安定状態になってから所定秒数以上経過したか否かを判定する(ステップS141)。ここで、安定状態とは、例えばステップS11において、一定時間以上、同じ数の検出IDが継続して取得(例えば、4つのUID1,UID2,UID3,UID4が継続して取得)される状態を意味する。制御部53は、検出された全ての人物の動作が安定状態になってから所定秒数以上経過していないと判定した場合(ステップS141:NO)、図6に示す処理に戻る。一方、制御部53は、検出された全ての人物の動作が安定状態になってから所定秒数以上経過したと判定した場合(ステップS141:YES)、応援ユニットを生成し(ステップS142)、ステップS143へ進む。
ここで、応援ユニットには、例えば図9(A)に示すように、安定して検出されるようになった人物の数分のレコードが設けられる。図9(A)の例では、4人分のレコードが設けられている。各レコードには、応援ユニットID、平均人物特徴量、応援キャラクタID、累積ポイント、割当キャラクタ数、再生曲中の応援ポイント、及び割当検出ID等がレコード毎に対応付けられて登録される。応援ユニットIDは、検出された人物の識別情報の一例である。人物特徴量は、例えば、フレームバッファに格納された画像フレームから抽出される人物の顔の特徴量である。人物の顔の特徴量は、例えば、目、鼻、口等のパーツの配置の特徴や顔の表面の凹凸の特徴を定量化した値である。また、平均人物特徴量は、連続して抽出される複数の人物特徴量を平均化した値である。平均人物特徴量を用いることで、人物を特定する精度を向上することができる。応援キャラクタIDは、検出された人物に対して割り当てられるキャラクタ画像を識別するための識別情報である。例えば複数の人物が検出された場合、それぞれの人物に対して異なるキャラクタ画像が例えばランダムに割り当てられる。累積ポイントは、複数の楽曲を跨いで累積された応援ポイントである。割当キャラクタ数は、累積ポイントに応じた「キャラクタ画像の数」である。図9(A)の例では、累積ポイントが“500”増える毎にキャラクタ画像が1つ複製されるようになっている。再生曲中の応援ポイントは、現在再生中の楽曲において積算された応援ポイントである。再生曲中の応援ポイントは、現在再生中の楽曲についての応援動作としての総合評価点の一例である。また、再生曲中の応援ポイントは、例えば図9(B)に示すように、応援パート決定処理で決定された応援パート毎に区別されて登録されるとよい。割当検出IDは、検出された人物に対応付けられてステップS11で取得された検出IDであるが、常に一定であるとは限らない。つまり、上述したように、人物が検出不能となることで割当検出IDが取得されなくなった後、新たな検出IDが取得された場合に、平均人物特徴量に基づいて、新たな検出IDが登録済の応援ユニットIDに対応する人物の検出IDであることが特定できたとき、新たな検出IDがその人物の割当検出IDとして登録される。
ステップS143では、制御部53は、キャラクタ画像の投影処理を開始し、図6に示す処理に戻る。この投影処理では、例えば、制御部53は、応援ユニットに登録された応援ユニットIDそれぞれに対応付けられた累積ポイントに応じた数のキャラクタ画像の画像信号を、プロジェクター4へ再生出力することで、図3(A)に示すようなキャラクタ画像C1〜C4を投影面に投影させる。
ステップS15では、制御部53は、更新タイミンングになったか否かを判定する。更新タイミングは、例えば1秒程度毎に到来するようにタイマーにより設定される。制御部53は、更新タイミンングになったと判定した場合(ステップS15:YES)、応援ユニット更新処理を実行し(ステップS16)、ステップS10に戻る。応援ユニット更新処理の詳細は後述する。一方、制御部53は、更新タイミンングになっていないと判定した場合(ステップS15:NO)、ステップS10に戻る。
ステップS17では、制御部53は、生成済の応援ユニットがあるか否かを判定する。制御部53は、生成済の応援ユニットがないと判定した場合(ステップS17:NO)、所定時間待機した後にステップS10に戻る。一方、制御部53は、生成済の応援ユニットがあると判定した場合(ステップS17:YES)、応援ユニット削除処理を実行し(ステップS18)、ステップS10に戻る。
応援ユニット削除処理では、図7(B)に示すように、制御部53は、検出された人物の数が“0”である状態が所定秒数以上経過したか否かを判定する(ステップS181)。制御部53は、検出された人物の数が“0”である状態が所定秒数以上経過していないと判定した場合(ステップS181:NO)、図6に示す処理に戻る。一方、制御部53は、検出された人物の数が“0”である状態が所定秒数以上経過したと判定した場合(ステップS181:YES)、応援ユニットを全て削除し(ステップS182)、図6に示す処理に戻る。
応援ユニット更新処理では、図8(A)に示すように、制御部53は、検出ID・平均特徴量更新処理を実行する(ステップS161)。応援ユニットに登録されている割当検出IDがステップS11で取得されている場合の検出ID・平均特徴量更新処理では、制御部53は、割当検出IDに対応付けられた画像フレームに基づいて人物の特徴量を算出し、平均人物特徴量を更新する。一方、応援ユニットに登録されている割当検出IDがステップS11で取得されなくなった場合の検出ID・平均特徴量更新処理では、制御部53は、新たな検出IDを取得すると、新たな検出IDに対応付けられた画像フレームに基づいて人物の特徴量を算出する。そして、制御部53は、算出した人物の特徴量と所定値内と近い平均人物特徴量を応援ユニットから検索し、発見できた場合、発見された平均人物特徴量に、新たな検出IDを割当検出IDとして対応付けて応援ユニットに登録する。
次いで、制御部53は、上記応援パート決定処理で決定された応援パートのうち、何れかの応援パートの再生終了を検知したか否かを判定する(ステップS162)。例えば、制御部53は、楽曲の再生開始から計測している経過時間と、各演奏パートの時間長とに基づいて応援パートの再生終了を検知する。制御部53は、応援パートの再生終了を検知していないと判定した場合(ステップS162:NO)、ステップS163へ進む。一方、制御部53は、応援パートの再生終了を検知したと判定した場合(ステップS162:YES)、ステップS166へ進む。
ステップS163では、制御部53は、上記ステップS162で判定された応援パートの再生中であるか否かを判定する。制御部53は、応援パートの再生中でないと判定した場合(ステップS163:NO)、図6に示す処理に戻る。一方、制御部53は、応援パートの再生中であると判定した場合(ステップS163:YES)、ステップS164へ進む。
ステップS164では、制御部53は、図3(B)に示すように、応援タイミング(盛り上げタイミングの一例)を示すメッセージ100をプロジェクター4へ出力することで、例えば図3(B)に示すようにキャラクタ画像とともに投影面に投影させる。これにより、制御部53は、評価対象のタイミングであることを報知する。これにより、適切なタイミングで、部屋のユーザに対して、応援動作を促すことができる。なお、制御部53は、応援タイミングを示すメッセージ100をディスプレイDに表示させてもよい。また、制御部53は、評価対象のタイミングであることをスピーカSPから音声出力することで報知してもよい。制御部53は、評価対象のタイミングであることに加え、評価対象の応援動作を報知してもよい。次いで、制御部53は、応援動作判定処理を実行し(ステップS165)、図6に示す処理に戻る。
応援動作判定処理では、図8(B)に示すように、制御部53は、応援ユニットIDに対応付けられた割当検出IDに対応する直近の部位情報を、モーションバッファから応援ユニットID毎に取得する(ステップS1651)。ここで、直近の部位情報とは、例えば現時点(つまり、ステップS15における更新タイミング)から3秒〜5秒程度遡った時点までの間にある複数の部位情報を意味する。次いで、制御部53は、ステップS1651で取得された複数の部位情報に基づいて人物の動作(例えば、上半身の動作)を検出する(ステップS1652)。なお、人物の動作を検出するにあたりRGB画像が用いられてもよい。これにより、人物の顔のパーツ(例えば口)の動きを特定することができる。なお、人物の動作は、応援ユニットに登録されている応援ユニットID毎に検出され、検出された動作を示す動作データが応援ユニットID毎に区別されてRAMの所定領域に記憶される。
次いで、制御部53は、RAMに記憶された動作データが示す人物の動作と、各既定動作データが示す既定動作それぞれとの類似度(類似性)を算出し、類似度が最も高い既定動作を応援ユニットID毎に特定する(ステップS1653)。例えば、人物の動作と、既定動作の一つである「手を振る動作」との類似度が最も高ければ、「手を振る動作」が特定されることになる。次いで、制御部53は、ステップS1653で特定された既定動作との類似度が所定値以上であるか否かを応援ユニットID毎に判定する(ステップS1654)。制御部53は、上記類似度が所定値以上でないと判定した場合(ステップS1654:NO)、図6に示す処理に戻る。一方、制御部53は、上記類似度が所定値以上であると判定した場合(ステップS1654:YES)、上記既定動作が行われたと判断し、ステップS1655へ進む。
ステップS1655では、制御部53は、ステップS1653で特定された既定動作に応じた応援ポイントを、上記類似度が所定値以上であると判定された応援ユニットIDに対応付けられた累積ポイント及び再生曲中の応援ポイント等に加算する。このとき、図9(B)に示すように、再生中の応援パートに対応付けられた応援ポイントに、上記既定動作に応じた応援ポイントが加算される。これにより、上記既定動作が行われたと判断されたときの既定動作に応じた応援ポイントが、応援パート毎に算出されることになる。また、応援パート毎に算出された各応援ポイントの総和が再生曲中の応援ポイントとなる。例えば、ステップS1653で特定された既定動作が「手を振る動作」である場合、図2(B)に示すように、手を振る動作を示す動作データに対応付けられた応援ポイントが、累積ポイント及び再生曲中の応援ポイント等に加算される。こうして、検出された人物の動作が再生中の楽曲についての応援動作として評価される。なお、例えば、上記ステップS163で再生中であると判定された応援パートのパート種別が「サビ」であり、且つ、ステップS1653で特定された既定動作が「拍手動作」である場合を想定する。この場合、図2(B)に示す応援動作情報設定テーブルでは拍手動作データに対応付けられたパート種別にはサビが含まれていないため(つまり、サビに対する応援ポイントは“0”であるため)、ステップS1655では応援ポイントは累積ポイントには加算されないことになる。
次いで、制御部53は、ポイント加算演出処理を実行する(ステップS1656)。ポイント加算演出処理では、制御部53は、応援ポイントが加算されたことを演出する効果映像をプロジェクター4へ出力することで、そのような効果映像を投影面に投影させる。このような効果映像は、上記類似度が所定値以上であると判定された応援ユニットIDに対応付けられたキャラクタ画像の付近に投影(表示)される。次いで、制御部53は、上記類似度が所定値以上であると判定された応援ユニットIDに対応付けられたキャラクタ画像に対して、ステップS1653で特定された既定動作を設定し(ステップS1657)、図6に示す処理に戻る。キャラクタ画像に対して既定動作を設定することで、キャラクタが上記既定動作を行う動画像が投影(表示)されることになる。
ステップS166では、制御部53は、上記ステップS162で再生終了が検知された応援パートが、最後の応援パートであるか否かを判定する。最後の応援パートは、上記応援パート決定処理で決定された応援パートのうち、構成番号が最も大きい応援パートである。制御部53は、最後の応援パートでないと判定した場合(ステップS166:NO)、ステップS170へ進む。一方、制御部53は、最後の応援パートであると判定した場合(ステップS166:YES)、ステップS167へ進む。
ステップS167では、制御部53は、応援技術加点処理を実行する。応援技術加点処理は、例えば、最後の応援パートの再生が終了した楽曲の少なくとも前半部分と後半部分とを含む複数の部分からそれぞれ少なくとも1つの演奏パート(例えば、伴奏パート)が応援パートに決定された場合に実行されるとよい。この場合、制御部53は、上記応援パート決定処理で決定された前半部分の応援パートと、後半部分の応援パートのそれぞれにおける応援ポイントが時系列で増加しているとき、その応援ユニットIDに対応付けられた累積ポイント(再生曲中の応援ポイントでもよい)に、応援技術加点として、追加応援ポイント(例えば、50点)を加算(加点)する。図9(C)の例では、決定された6つの応援パートが、序盤応援パート(前半部分の応援パート)と、中盤応援パート(中間部分の応援パート)と、終盤応援パート(後半部分の応援パート)との何れかに分類され、分類後の序盤応援パート、中盤応援パート、及び終盤応援パートそれぞれの応援ポイントが集計されている。そして、図9(C)の例では、序盤応援パートの応援ポイント<中盤応援パートの応援ポイント<終盤応援パートの応援ポイントの条件を満たす応援ユニットID“LOB2”に対応付けられた累積ポイントに追加応援ポイントが加算されることになる。これにより、楽曲の再生が前半部分から後半部分に進むにつれて、ユーザが応援量を増やしているなど、(一瞬の応援とは異なる)全体的な応援の仕方が上手なユーザに加点をすることができる。
次いで、制御部53は、再生曲中の応援ポイント(つまり、確定した応援ポイント)に基づいて、最後の応援パートの再生が終了した楽曲における応援ランキング(検出された人物の応援ランキング)を決定する(ステップS168)。つまり、再生曲中の応援ポイントが高い順に高順位が応援ユニットIDに与えられ、応援ランキングが決定される。なお、制御部53は、決定した応援ランキングを示す効果映像をプロジェクター4へ出力することで応援ランキングを示す効果映像(演出)を投影面に投影させる。応援ランキングにおける各順位は、例えば、それぞれに対応するキャラクタ画像に対応付けられて投影面に投影(表示)される。
次いで、制御部53は、ステップS168で決定された応援ランキングに応じた加点処理を実行する(ステップS169)。応援ランキングに応じた加点処理では、制御部53は、応援ランキングにおける順位が高いほど高い追加応援ポイント(例えば、1位に50点、2位に30点、3位に10点)を、それぞれの応援ユニットIDに対応付けられた累積ポイントに加算(加点)する。次いで、制御部53は、それぞれの応援ユニットIDに対応付けられた累積ポイントに応じて、キャラクタ画像の数を更新し(ステップS170)、図6に示す処理に戻る。この更新により、キャラクタ画像の数が増加すれば、投影中(表示中)のキャラクタ画像が増加することになる。
以上説明したように、上記実施形態によれば、制御装置5は、楽曲再生装置1により再生される楽曲の一部の演奏パートを、応援動作の応援パートに決定し、上記決定した応援パートの再生中に、検出された人物により既定動作が行われたと判断したとき、その人物の動作を、上記再生された楽曲についての応援動作として評価して、その結果を表示部に出力させるように構成したので、曲構成に合った盛り上げ動作を適切に評価することができる。つまり、1曲の再生中に局所的に盛り上げ動作が多く行われた場合と、1曲を通して盛り上げ動作が継続して少なく行われた場合とが、同様の判定をされてしまうことなどを回避することができる。
本発明の実施形態は、上記実施形態に限らない。応援パートの決定方法は、上記実施形態に限らない。例えば、応援パートと決定する演奏パートは、楽曲の曲調や楽曲のジャンルに応じて、異ならせてもよい。また、上記実施形態において、応援動作は、応援パートと決定された演奏パートにおいて、既定動作が行われたと判断したとき、運動動作が行われたこととして、応援ポイントに加算する処理が行われていたが、応援ポイントに加算することに限らず、応援パートと決定されていない演奏パートにおいて、所定の動作を禁止する禁止動作を設定し、禁止動作が行われたと判断したとき、歌唱の邪魔をしたとして、応援ポイントから減算する処理が行われてもよい。また、応援パートと決定された演奏パート以外の演奏パートにおいても、既定動作が行われたか否かを判断し、応援パートでない演奏パートにおいても、応援パートにおける既定動作が行われた場合の加点より低い応援ポイントを加算するものであってもよい。