以下、本発明の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、運動を支援するための運動コンテンツを生成する運動コンテンツ生成システムに本発明を適用した場合の実施形態である。運動コンテンツは、運動を支援するための映像及び音声を含む。
[1.運動コンテンツ生成システム1の構成]
始めに、図1を参照して、本実施形態の運動コンテンツ生成システム1の構成について説明する。図1は、本実施形態の運動コンテンツ生成システム1の概要構成例を示す図である。図1に示すように、運動コンテンツ生成システム1は、配信サーバ2と1つ以上の出力端末5とを含んで構成されている。配信サーバ2と出力端末5とは、ネットワーク10を介して接続可能になっている。ネットワーク10は、例えば、インターネットを含む。配信サーバ2には、データベース3が接続されている。データベース3には、運動に関する情報や楽曲に関する情報が登録されている。配信サーバ2は、データベース3に登録されている情報等を、定期的に又は出力端末5からの要求に応じて出力端末5に配信する。
出力端末5は、例えば、施設4に設置される端末装置である。出力端末5は、本発明の情報処理装置の一例である。出力端末5は、施設4の利用者41により利用される。施設4は、例えば、スポーツ施設であってもよい。利用者41は、スポーツ施設において、運動レッスンを受ける。運動レッスンは、複数の動作と歌唱により構成されるレッスンである。この場合の出力端末5は、例えばパーソナルコンピュータであってもよい。施設4は、例えば、カラオケ店舗であってもよい。カラオケ店舗において、利用者41は、カラオケの楽曲を歌唱する。この場合の出力端末5は、例えば、カラオケ装置である。以下では、施設4がスポーツ施設である場合を例にして説明する。
出力端末5は、モニタ57と接続可能である。モニタ57は、複数のスピーカ64とディスプレイ67とを備える表示装置であってもよい。この場合、出力端末5は、ディスプレイ67と接続可能である。また、出力端末5は、スピーカ64と接続可能である。ディスプレイ67は、本発明の表示手段の一例である。また、スピーカ64は、本発明の出力手段の一例である。出力端末5がモニタ57へ音声信号を出力することにより、スピーカ64により楽曲等が出力される。出力端末5がモニタ57へ映像信号を出力することにより、ディスプレイ67に運動映像等が表示される。運動映像は、動作を行うフィギュア83を映し出した動画である。フィギュア83は、例えば、人、動物、仮想上の生き物、ロボット等のかたちをした仮想物である。フィギュア83は、三次元仮想空間に配置される。施設4がカラオケ店舗である場合、ディスプレイ67には、例えば、カラオケの楽曲に対応した踊りの動作を行うフィギュア83が表示される。運動映像は、本発明における映像の一例である。出力端末5は、スピーカ64から出力される楽曲と、ディスプレイ67に表示されるフィギュア83の動きとが同期するように、信号を出力する。楽曲と運動映像とを出力することは、運動コンテンツを出力することの一例である。利用者41は、スピーカ64により出力される楽曲を聴きながら、楽曲を歌唱することができる。また、利用者41は、楽曲を聴きながら、ディスプレイ67に表示されるフィギュア83を見て、運動を行うことができる。これにより、利用者41は、歌唱しながら運動を行うことができる。操作者42は、リモコン66等を用いて出力端末5を操作することができる。利用者41と操作者42とは同一人物であってもよい。施設4がスポーツ施設である場合、操作者42は、例えば、インストラクターであってもよい。
運動レッスンを行うとき、利用者41は、例えば、複数の加速度センサASを装着することができる。加速度センサASは、利用者41が運動しているときの利用者41の所定の身体部位の加速度を検出する。例えば、利用者41は、手首、肘、肩、足の付け根、膝、足首等に加速度センサASを装着してもよい。出力端末5は、加速度センサASにより検出された加速度に基づいて、利用者41の運動の評価値と、運動による利用者41の消費カロリーとを計算する。例えば、出力端末5は、利用者41の運動動作が、ディスプレイ67に表示されるフィギュア83の運動動作に近いほど、評価値を高くしてもよい。例えば、利用者41が加速度センサASを装着するのではなく、運動しているときの利用者41を撮影するためのビデオカメラが施設4に設置されてもよい。この場合、出力端末5は、ビデオカメラにより撮影された利用者41の映像に基づいて、評価値及び消費カロリーを計算してもよい。また、運動レッスンを行うとき、利用者41は、マイク68に対して歌唱することができる。出力端末5は、マイク68に入力された歌唱音声に基づいて、利用者41の歌唱の評価値と、歌唱による利用者41の消費カロリーとを計算する。例えば、出力端末5は、利用者41の歌唱音声の音高が、スピーカ64により出力されている楽曲に対応する基準となる歌唱音声の音高に近いほど、評価値を高くしてもよい。運動レッスンが終了すると、出力端末5は、運動の評価値、運動による消費カロリー、歌唱の評価値及び歌唱による消費カロリーを、ディスプレイ67に表示させる。
[2.運動コンテンツ]
運動レッスンが行われるときにモニタ57が出力する運動コンテンツは、少なくとも楽曲と運動映像とを含む。楽曲は、複数の演奏パートで構成される。スピーカ64から、楽曲の構成に従ったパートの順で楽曲が出力される。例えば、Aメロ、Bメロ、サビ、間奏、Aメロ、Bメロ、サビ等の順で、楽曲が出力されてもよい。なお、1つの運動レッスンで複数の楽曲が順次スピーカ64から出力されてもよい。
運動レッスンを構成する動作として、歌唱動作と運動動作とがある。楽曲を構成する各演奏パートに、歌唱動作又は運動動作が割り当てられる。出力端末5は、運動コンテンツを出力するとき、スピーカ64により出力されている演奏パートに割り当てられた動作をフィギュア83が行う運動映像をディスプレイ67に表示させる。
歌唱動作は、利用者41が歌唱する動作である。例えば、利用者41は、口や喉等を動かして歌唱する。歌唱動作に関する運動映像として、例えば、あたかも歌唱しているように、フィギュア83が口を動かす映像が表示されてもよい。また、例えば、フィギュア83が歌唱するための姿勢をとっている映像が表示されてもよい。また、例えば、フィギュア83が楽曲に合わせてリズムをとる動作を行っている映像が表示されてもよい。これらの動作は、歌唱動作そのものではなくてもよい。歌唱動作の場合、利用者41は、ディスプレイ67に表示されるフィギュア83に合わせて動作する必要はない。利用者41は、少なくとも歌唱すればよい。
運動動作は、例えば、身体を鍛えるための動作である。運動動作として、例えば、体操の動作と踊りの動作とがある。体操は、例えば、健康の増進、体力の増強、筋力の強化等のために行われる運動である。体操の種類として、例えば、有酸素運動、無酸素運動、ストレッチ等がある。有酸素運動の運動動作として、例えば、マーチ、フロントランジ等がある。無酸素運動の運動動作として、例えば、ショルダープレス、チェストプレス等がある。ストレッチの運動動作として、例えば、上腕部ストレッチ、首ストレッチ等がある。踊りの動作は、楽曲に合わせて踊るために楽曲に対して振り付けられた動作である。運動動作の場合、利用者41は、ディスプレイ67に表示されるフィギュア83に合わせて動作する。このとき、利用者41は、楽曲に合わせて歌唱してもよいし、歌唱しなくてもよい。例えば、利用者41は、運動動作に慣れてきた場合には、運動動作を行いながら歌唱してもよい。
運動レッスンにおいて利用者41が歌唱しながら運動するとき、利用者41が歌唱を主として行いたい場合と、利用者41が運動を主として行いたい場合とがある。そこで、出力端末5は、例えば、利用者41から練習タイプの指示を受信する。練習タイプとして、歌唱メインと運動メインとがある。歌唱を主として行いたい場合、利用者41は歌唱メインを指示する。運動を主として行いたい場合、利用者41は運動メインを指示する。出力端末5は、練習タイプに応じて運動レッスンの構成を変える。そして、出力端末5は、運動レッスンの構成に基づいて、練習タイプに応じた運動コンテンツをモニタ57により出力させる。
具体的に、出力端末5は、練習タイプが歌唱メインである場合、歌唱動作を運動動作よりも優先的に演奏パートに割り当てる。例えば、出力端末5は、歌唱動作が割り当てられる演奏パートの数を、運動動作が割り当てられる演奏パートの数よりも多くしてもよい。このとき、出力端末5は、例えば、少なくともサビ部分に必ず歌唱動作を割り当ててもよい。これにより、利用者41は、歌唱したい蓋然性が高い演奏パートであるサビ部分を歌唱することができる。そして、出力端末5は、例えば、サビ部分と異なる演奏パートのうち少なくとも1つの演奏パートに、運動動作を割り当ててもよい。一方、出力端末5は、練習タイプが運動メインである場合、運動動作を歌唱動作よりも優先的に演奏パートに割り当てる。例えば、出力端末5は、運動動作が割り当てられる演奏パートの数を、歌唱動作が割り当てられる演奏パートの数よりも多くしてもよい。
また、出力端末5は、利用者41の運動レベルを受信してもよい。そして、出力端末5は、練習タイプと運動レベルとに基づいて、運動レッスンの構成を変えてもよい。運動レベルは、例えば、利用者41の運動の熟練の度合いを示す。運動レベルが高いほど、利用者41は運動に熟練している。例えば、練習タイプが歌唱メインである場合、出力端末5は、運動レベルが高いほど、運動動作が割り当てられる演奏パートの数を多くしてもよい。これにより、利用者41は、運動に慣れてくるに従って、利用者41が歌唱しながら身体を鍛える機会を増やすことができる。一方、練習タイプが運動メインである場合、例えば、出力端末5は、運動レベルが高いほど、運動動作により利用者41の身体にかかる負荷を大きくしてもよい。これにより、利用者41は、利用者41の運動レベルに応じて身体を鍛えることができる。例えば、ある演奏パートにステップ運動が割り当てられているとする。出力端末5は、例えば、運動レベルが高いほど、ステップ運動を行うフィギュア83の動作が大きくなるように、運動映像をディスプレイ67に表示させてもよい。動作が大きいほど、身体にかかる負荷が大きくなる。なお、出力端末5は、例えば、利用者41の過去の運動の評価値に基づいて、運動レベルを決定してもよい。この場合、出力端末5は、評価値が高いほど運動レベルを高くしてもよい。また、出力端末5は、例えば、利用者41が運動レッスンを行った回数に基づいて、運動レベルを決定してもよい。この場合、出力端末5は、回数が多いほど運動レベルを高くしてもよい。
図2(A)を用いて具体例を説明する。図2(A)は、運動レッスンの設定例を示す図である。運動レッスンの設定は、例えば、各演奏パートに割り当てられる動作の種類、運動負荷、歌詞の表示の有無、ナレーション文章の表示の有無、ナレーション音声の出力の有無を決定することである。従って、運動レッスンの設定は、運動コンテンツの内容を決定することでもある。図2(A)の例では、運動レベルとして、初級と上級とがある。上級は初級よりも運動レベルが高い。なお、運動レベルの数は3個以上であってもよい。また、運動負荷として負荷1と負荷2とがある。負荷2の方が、負荷1よりも身体にかかる負荷が大きい。なお、運動負荷の数は3個以上であってもよい。演奏パートの種類として、例えば、Aメロ部分、Bメロ部分、サビ部分及び間奏部分があるとする。
練習タイプが歌唱メインであり、且つ、運動レベルが初級である場合、例えば、Aメロ部分、サビ部分及び間奏部分に歌唱動作が割り当てられ、Bメロ部分に運動動作が割り当てられてもよい。練習タイプが歌唱メインであり、且つ、運動レベルが上級である場合、例えば、Aメロ部分及びサビ部分に歌唱動作が割り当てられ、Bメロ部分及び間奏部分に運動動作が割り当てられてもよい。上級の場合、歌唱動作が割り当てられる演奏パートの種類の数と、運動動作が割り当てられる演奏パートの種類の数とが同一になっている。しかしながら、一般的に、1つの楽曲の中で間奏部分が演奏される回数は、他の種類の演奏パートが演奏される回数よりも少ない。そのため、実際には、歌唱動作が割り当てられる演奏パートの数は、運動動作が割り当てられる演奏パートの数よりも多くなる。なお、歌唱動作をどの演奏パートに割り当て、運動動作をどの演奏パートに割り当てるかは任意に決定されてもよい。練習タイプが歌唱メインである場合、例えば、運動レベルに関係なく、運動動作の運動負荷は負荷1であってもよい。なお、歌唱動作は、身体に負荷をかけるための動作ではない。しかしながら、便宜上、歌唱動作の運動負荷は負荷1に設定される。
練習タイプが運動メインである場合、例えば、運動レベルに関係なく、全ての演奏パートに運動動作が割り当てられてもよい。なお、少なくとも1つの演奏パートに歌唱動作が割り当てられてもよい。練習タイプが運動メインであり、且つ、運動レベルが初級である場合、運動負荷は負荷1である。練習タイプが運動メインであり、且つ、運動レベルが上級である場合、運動負荷は負荷2である。
また、出力端末5は、運動コンテンツに、利用者41の運動動作を指導するナレーションや、楽曲の歌詞等を含めることができる。ナレーションにより、例えば、運動動作が説明されたり、身体の動かし方が指示されたりする。ナレーションとして、ナレーション文章とナレーション音声とがある。ナレーション文章は、ナレーションを示す文章である。ナレーション音声は、ナレーションを示す音声である。歌詞として、歌詞のテロップとガイドボーカルとがある。歌詞のテロップは、歌詞を示す文字である。ガイドボーカルは、例えば、楽曲の歌詞を、模範となる音高で歌手等が歌唱する音声である。出力端末5は、例えば、練習タイプに応じて、ナレーションや歌詞の有無を決定してもよい。また、出力端末5は、例えば、練習タイプと運動レベルとに応じて、ナレーションや歌詞の有無を決定してもよい。なお、本実施形態においては、練習タイプ及び運動レベルに関係なく、ガイドボーカルを出力させるか否かを利用者41が指定することができるようになっている。
先ず、練習タイプが歌唱メインである場合の一例を説明する。この場合、出力端末5は、例えば、運動レベルに関係なく、ナレーション文章を表示させなくてもよい。出力端末5は、運動レベルが、予め設定された第1レベル以下である場合、ナレーション音声を出力させてもよい。出力端末5は、運動レベルが第1レベルより高い場合、ナレーション音声を出力させなくてもよい。歌唱メインの場合、利用者41は運動よりも歌唱を主に行うため、運動メインに比べてナレーションの必要性は低い。しかしながら、運動レベルが低い場合には、利用者41は、運動動作を習得してもよい。そこで、ナレーション音声が出力されるので、利用者41は運動動作を習得することができる。運動レベルが高い場合には、ナレーション音声が出力されないので、運動動作に慣れた利用者が、運動しているときに、歌唱することに集中することができる。ナレーション音声が出力される一方で、ナレーション文章が表示されない理由として、例えば、歌詞が表示されることがある。ディスプレイ67に歌詞及びナレーション文章の両方が表示されると、利用者41は、どれが歌詞でどれがナレーションであるかがわかりにくい。また、例えば、音声の方が文章よりも、利用者41に伝えるナレーションの情報の量を多くすることができる。図2(A)の例では、練習タイプが歌唱メインである場合、初級及び上級の何れに対しても、ナレーション文章が「なし」に設定される。また、練習タイプが歌唱メインである場合、初級に対してナレーション音声が「あり」に設定され、上級に対してナレーション音声が「なし」に設定される。
出力端末5は、練習タイプが歌唱メインである場合、運動レベルに関係なく、歌詞のテロップをディスプレイ67に表示させてもよい。これにより、利用者41は、歌詞を見ながら歌唱することができる。例えば、図2(A)に示すように、練習タイプが歌唱メインである場合、初級及び上級の何れに対しても、歌詞のテロップが「あり」に設定される。
次に、練習タイプが運動メインである場合の一例を説明する。例えば、出力端末5は、運動レベルが、予め設定された第2レベル以下である場合、ナレーション文章を表示させ、且つ、ナレーション音声を出力させてもよい。出力端末5は、運動レベルが第2レベルより高い場合、ナレーション文章を表示させず、且つ、ナレーション音声を出力させなくてもよい。これにより、運動レベルが低い場合、利用者41は、ナレーションを見たり聴いたりしながら、運動動作を習得することができる。運動レベルが高い利用者41は、ナレーションを必要としない蓋然性が高い。また、運動レベルが高い利用者41は、歌唱する余裕がある。そこで、ナレーションが出力されないことにより、利用者41が運動しながら歌唱しやすくなる。例えば、図2(A)に示すように、練習タイプが運動メインである場合、初級に対してナレーション文章及びナレーション音声が「あり」に設定され、上級に対してナレーション文章及びナレーション音声が「なし」に設定される。
出力端末5は、練習タイプが運動メインであり、且つ、運動レベルが第2レベル以下である場合、歌詞のテロップを表示させなくてもよい。出力端末5は、練習タイプが運動メインであり、且つ、運動レベルが第2レベルより高い場合、歌詞のテロップを表示させてもよい。これにより、運動レベルが低いときには歌詞が表示されないので、利用者41は運動動作の習得に集中することができる。運動レベルが高いときには、利用者41は歌詞を見ながら歌唱することにより、運動動作に慣れたユーザが運動しながら歌唱を習得することができる。例えば、図2(A)に示すように、練習タイプが運動メインである場合、初級に対して歌詞のテロップが「なし」に設定され、上級に対して歌詞のテロップが「あり」に設定される。
次に、図3を用いて、運動レッスンの構成例を説明する。例えば、図2(A)に示す設定例に従って、運動レッスンの構成が決定されるものとする。ある楽曲Xは、例えば、Aメロ1、Bメロ1、サビ1、間奏1、Aメロ2、Bメロ2、サビ2の順で、演奏パートが出力されるとする。本実施形態においては、楽曲と演奏パートの種類との組み合わせに対応して、歌唱動作及び運動動作が予め定められている。図3の例では、楽曲XのAメロ1及びAメロ2には、歌唱動作1又は運動動作1が割り当てられる。楽曲XのBメロ1及びBメロ2には、歌唱動作2又は運動動作2が割り当てられる。楽曲Xのサビ1には、歌唱動作3又は運動動作3が割り当てられる。楽曲Xの間奏1には、歌唱動作4又は運動動作4が割り当てられる。楽曲Xのサビ2には、歌唱動作5又は運動動作5が割り当てられる。楽曲の中で演奏順が最後のサビ部分の動作は、他のサビ部分の動作と部分的に異なっていてもよい。また、運動動作と運動負荷との組み合わせごとに、組み合わせに対応するナレーション文章及びナレーション音声がある。また、演奏パートごとに、演奏パートに対応する歌詞がある。
図3(A)は、練習タイプが歌唱メインであり、且つ、運動レベルが初級である場合の運動レッスンの構成例を示す図である。図3(A)に示すように、Aメロ1、サビ1、間奏1、Aメロ2及びサビ2に対して、歌唱動作が割り当てられる。Bメロ1及びBメロ2に対して、運動動作が割り当てられる。このときの運動負荷は負荷1である。全ての演奏パートに対して、歌詞が表示される。何れの演奏パートに対しても、ナレーション文章は表示されない。Bメロ1及びBメロ2に対しては、ナレーション音声が出力される。
図3(B)は、練習タイプが歌唱メインであり、且つ、運動レベルが上級である場合の運動レッスンの構成例を示す図である。図3(B)に示すように、Aメロ1、サビ1、Aメロ2及びサビ2に対して、歌唱動作が割り当てられる。Bメロ1、間奏1及びBメロ2に対して、運動動作が割り当てられる。運動負荷は負荷1である。全ての演奏パートに対して、歌詞が表示される。何れの演奏パートに対しても、ナレーション文章は表示されず、且つ、ナレーション音声は出力されない。
図3(C)は、練習タイプが運動メインであり、且つ、運動レベルが初級である場合の運動レッスンの構成例を示す図である。図3(C)に示すように、全ての演奏パートに対して運動動作が割り当てられる。運動負荷は負荷1である。何れの演奏パートに対しても、歌詞は表示されない。全ての演奏パートに対して、ナレーション文章が表示され、且つ、ナレーション音声が出力される。
図3(D)は、練習タイプが運動メインであり、且つ、運動レベルが上級である場合の運動レッスンの構成例を示す図である。図3(D)に示すように、全ての演奏パートに対して運動動作が割り当てられる。運動負荷は負荷2である。全ての演奏パートに対して、歌詞が表示される。何れの演奏パートに対しても、ナレーション文章は表示されず、且つ、ナレーション音声は出力されない。
[3.各装置の構成]
次に、図1及び図2を参照して、運動コンテンツ生成システムに含まれる各装置の構成について説明する。
[3−1.配信サーバ2の構成]
図1に示すように、配信サーバ2は、CPU21、ROM22、RAM23、バス24、I/Oインタフェイス25、表示制御部26、ディスクドライブ28、ネットワーク通信部30及びHDD(ハードディスクドライブ)37を備える。CPU21は、バス24を介して、ROM22、RAM23及びI/Oインタフェイス25に接続されている。CPU21は、ROM22やHDD37に記憶されプログラムを実行することにより、配信サーバ2の各部を制御する。I/Oインタフェイス25には、データベース3、表示制御部26、ディスクドライブ28、ネットワーク通信部30、キーボード31、マウス32及びHDD37が接続されている。CPU21は、I/Oインタフェイス25を介してデータベース3にアクセスする。表示制御部26は、CPU21の制御に基づいて映像信号をモニタ57に出力する。ディスクドライブ28は、記録媒体29に対するデータの書き込み及び読み出しを行う。ネットワーク通信部30は、配信サーバ2がネットワーク10に接続するための制御を行う。HDD37には、OSや各種制御プログラム等が記憶されている。
データベース3には、楽曲データ、モーションデータ、ナレーション文章データ、ナレーション音声データ、歌詞データ、ガイドボーカルデータ、教師音高データ、教師座標データ、レッスン設定表、動作割当表等のデータが登録されている。
楽曲データは、スピーカ64により楽曲を出力するための演奏データである。楽曲データは、例えば、MIDI(Musical Instrument Digital Interface)形式のデータであってもよい。楽曲データは、楽曲ID、楽曲名、アーティスト名、オリジナルのテンポ、楽曲の演奏パートの構成、歌詞等の情報を含む。楽曲IDは、楽曲の識別情報である。また、楽曲データは、演奏パートの切り替わりのタイミング等を規定する。例えば、楽曲データがMIDI形式のデータである場合、楽曲データには、実際の演奏データとしてのMIDIイベントに加えて、メタイベントを含めることができる。メタイベントとしては、例えば、演奏パートを示すマーカーイベント等がある。そのため、演奏パートを識別するパートIDや演奏パートの種類を示すパート種別をイベントとして楽曲データに記述することが可能である。例えば、出力端末5には、後述のミュージックシーケンサがインストールされている。出力端末5は、ミュージックシーケンサを実行することにより、楽曲データを再生するとともに、楽曲データからメタイベント等を読み出すと、読み出したイベントを出力する。例えば、マーカーイベントが出力されるタイミングが、そのマーカーイベントが示す演奏パートが開始されるタイミングとなる。本実施形態においては、マーカーイベントを、演奏パート開始イベントという。演奏パート開始イベントは、演奏パートの演奏開始を通知するイベントである。演奏パート開始イベントは、パートID及びパート種別を含む。楽曲データは、本発明における楽曲情報の一例である。
モーションデータは、三次元仮想空間におけるフィギュア83の動作を定義するデータである。モーションデータは、ディスプレイ67にフィギュア83の動作を表示させるためのデータである。モーションデータは、動作の進行に応じたフィギュア83の身体の各部の座標を含む。モーションデータは、各動作について運動負荷ごとに登録される。モーションデータは、例えば、モーションIDと対応付けて登録される。モーションIDは、動作と運動負荷との組み合わせを識別する識別情報である。モーションIDは、例えば、動作種別、運動負荷、楽曲ID及びパート種別から構成されてもよい。動作種別は、動作の種類を示す。動作種別として、歌唱動作又は運動動作が設定される。動作種別が歌唱動作であるモーションデータは、歌唱動作に関する動作を示すデータである。例えば、フィギュア83が歌唱するための姿勢をとっている動作であってもよい。つまり、歌唱動作に関する動作は、歌唱動作そのものではなくてもよい。歌唱動作のモーションデータは、本発明における第1動作情報の一例である。動作種別が運動動作であるモーションデータは、フィギュア83が運動動作するときの身体の動きを示すデータである。運動動作のモーションデータは、本発明における第2動作情報の一例である。運動負荷は、動作により身体に与える負荷の大きさを示す。運動負荷として、例えば、負荷1、負荷2等が設定される。楽曲ID及びパート種別は、動作が割り当てられる楽曲及び演奏パートの種類を示す。
ナレーション文章データは、ナレーション文章を表示するためのデータである。ナレーション文章データは、例えば、ナレーション文章のテキスト、テキストの表示タイミング等を含む。表示タイミングは、例えば、ナレーションに対応する運動動作が割り当てられた演奏パートの演奏が開始されてからの経過時間で示されてもよい。ナレーション文章データは、例えば、ナレーション文章IDとモーションIDとに対応付けて登録される。ナレーション文章IDは、ナレーション文章の識別情報である。モーションIDは、ナレーション文章が表示される運動動作を示す。
ナレーション音声データは、ナレーション音声を出力するためのデータである。ナレーション音声データのデータ形式は、例えば、WAV(RIFF waveform Audio Format)、AAC(Advanced Audio Coding)、MP3(MPEG Audio Layer-3)等であってもよい。例えば、ナレーション音声の再生時間が、ナレーション音声に対応する運動動作が割り当てられる演奏パートの再生時間と一致するように、ナレーション音声データが予め作成されてもよい。ナレーション音声データは、例えば、ナレーション音声IDとモーションIDとに対応付けて登録される。ナレーション音声IDは、ナレーション音声の識別情報である。モーションIDは、ナレーション音声が出力される運動動作を示す。ナレーション音声データは、本発明における指導情報の一例である。
歌詞データは、歌詞のテロップを表示するためのデータである。歌詞データは、例えば、歌詞のテキスト、テキストの表示タイミング等を含む。表示タイミングは、例えば、演奏パートの演奏が開始されてからの経過時間で示されてもよい。歌詞データは、例えば、歌詞ID、楽曲ID及びパートIDに対応付けて登録される。歌詞IDは、歌詞の識別情報である。楽曲ID及びパートIDは、歌詞が対応する楽曲及び演奏パートを示す。歌詞データは、本発明における歌詞情報の一例である。
ガイドボーカルデータは、ガイドボーカルを出力するためのデータである。ガイドボーカルデータのデータ形式は、例えば、WAV、AAC、MP3等であってもよい。例えば、ガイドボーカルの再生時間が、ガイドボーカルに対応する演奏パートの再生時間と一致するように、ガイドボーカルデータが予め作成されてもよい。ガイドボーカルデータは、例えば、ガイドボーカルID、楽曲ID及びパートIDに対応付けて登録される。ガイドボーカルIDは、ガイドボーカルの識別情報である。楽曲ID及びパートIDは、ガイドボーカルが対応する楽曲及び演奏パートを示す。
教師音高データは、楽曲を歌唱するときの歌唱音声の音高の基準を示すデータである。教師音高データは、利用者41の歌唱の評価値を計算するために用いられる。教師音高データは楽曲ごとに登録される。例えば、教師音高データには、楽曲の演奏開始からの経過時間と、その経過時間における歌唱音声の正しい音高値とが、予め定められた時間間隔ごとに対応付けて登録される。この時間間隔を、設定時間間隔という。教師音高データは、例えば、楽曲IDに対応付けて登録される。楽曲IDは、教師音高データが用いられる楽曲を示す。
教師座標データは、利用者41が運動するときの身体の動きの基準を示す。教師座標データは、運動動作を行うときの利用者41の各身体部位の三次元空間における座標の基準を示すデータである。教師座標データは、利用者41の運動の評価値を計算するために用いられる。教師座標データは、各運動動作について運動負荷ごとに登録される。例えば、教師座標データには、運動動作の開始からの経過時間と、その経過時間における各身体部位の正しい座標とが、予め定められた時間間隔ごと対応付けて登録される。この間隔は、例えば、教師音高データの設定時間間隔と同じであってもよい。例えば、配信サーバ2が、モーションデータに基づいて、教師座標データを生成してもよい。教師座標データは、例えば、モーションIDに対応付けて登録される。モーションIDは、教師座標データが用いられる運動動作を示す。
レッスン設定表は、運動レッスンを設定するための設定値が登録されるテーブルである。図2(B)は、レッスン設定表の一例を示す図である。図2(B)は、図2(A)に示す運動レッスンの設定に対応するレッスン設定表を示す。レッスン設定表には、各練習タイプについて、運動レベルごとに設定値が登録される。具体的に、設定IDに対応付けて、練習タイプ、運動レベル、割当ID、運動負荷、歌詞有無、ナレーション文章有無、ナレーション音声有無等が登録される。設定IDは、設定内容を識別する識別情報である。練習タイプとして、歌唱メイン又は運動メインが設定される。割当IDは、演奏パートに対する動作の割り当てのパターンを識別する識別情報である。例えば、練習パートが歌唱メインであり、且つ、運動レベルが初級である場合、割当IDとしてa1が設定される。また、練習パートが歌唱メインであり、且つ、運動レベルが上級である場合、割当IDとしてa2が設定される。また、練習パートが運動メインであり場合には、運動レベルが初級及び上級の何れであっても、割当IDとしてa3が設定される。歌詞有無は、歌詞の表示があるかないかを示す。ナレーション文章有無は、ナレーション文章の表示があるかないかを示す。ナレーション音声有無は、ナレーション音声の出力があるかないかを示す。
動作割当表は、各演奏パートの種類に対して割り当てられる動作を示す。図2(C)は、動作割当表の一例を示す図である。図2(C)は、図2(A)に示す運動レッスンの設定に対応する動作割当表を示す。動作割当表には、各割当IDについて、パート種別ごとに、動作種別が設定される。例えば、割当IDがa1である場合、Aメロ部分、サビ部分及び間奏部分に歌唱動作が割り当てられ、Bメロ部分に運動動作が割り当てられる。割当IDがa2である場合、Aメロ部分及びサビ部分に歌唱動作が割り当てられ、Bメロ部分及び間奏部分に運動動作が割り当てられる。割当IDがa3である場合、全ての演奏パートに運動動作が割り当てられる。
[3−2.出力端末5の構成]
図1に示すように、出力端末5は、CPU51、ROM52、RAM53、バス54、I/Oインタフェイス55、表示制御部56、ディスクドライブ58、ネットワーク通信部60、音声出力部63、信号受信部65、センサ情報受信部69及びHDD7を備える。CPU51は、バス54を介して、ROM52、RAM53及びI/Oインタフェイス55に接続されている。CPU51は、時計機能及びタイマー機能を有する。CPU51は、ROM52やHDD7に記憶されプログラムを実行することにより、出力端末5の各部を制御する。I/Oインタフェイス55には、HDD7、表示制御部56、音声出力部63、ディスクドライブ58、ネットワーク通信部60、キーボード61、マウス62、マイク68、信号受信部65及びセンサ情報受信部69が接続されている。表示制御部56は、CPU51の制御に基づいて映像信号をモニタ57に出力する。音声出力部63は、CPU51の制御に基づいて音声信号をモニタ57に出力する。ディスクドライブ58は、記録媒体59に対するデータの書き込み及び読み出しを行う。信号受信部65は、リモコン66から出力される信号を受信する。リモコン66は、操作者42が出力端末5を操作するためのものである。センサ情報受信部69は、各加速度センサASから送信される加速度情報を受信する。加速度情報は、加速度センサASが検出した加速度を含む。
HDD7は、本発明の記憶手段の一例である。HDD7には、配信サーバ2から配信された楽曲データ、モーションデータ、ナレーション文章データ、ナレーション音声データ、歌詞データ、ガイドボーカルデータ、教師音高データ、教師座標データ、レッスン設定表、動作割当表等のデータが登録される。
また、HDD7には、レッスン情報が記憶される。レッスン情報は、運動レッスンの構成及び運動コンテンツの内容を定めた情報である。つまり、レッスン情報は、例えば、図3(A)〜(D)に示すような運動レッスンの構成を表す。例えば、操作者42の操作に基づいて、出力端末5がレッスン情報を生成してもよい。レッスン情報は、例えば、楽曲IDを含む。楽曲IDは、運動レッスンが行われるときに出力される楽曲を示す。また、レッスン情報は、複数のパート情報を含む。パート情報は、楽曲IDが示す楽曲を構成する演奏パートに関連する情報である。パート情報は、演奏パートごとに登録される。パート情報は、例えば、パートID、パート種別、モーションID、歌詞有無、歌詞ID、ナレーション文章有無、ナレーション文章ID、ナレーション音声有無、ナレーション音声ID等を含む。パートIDは、演奏パートの識別情報である。パート種別は、パートIDが示す演奏パートの種類を示す。モーションIDは、演奏パートに割り当てられた動作を示す。歌詞IDは、表示される歌詞の識別情報である。歌詞IDは、歌詞有無が「あり」に設定されている場合に登録される。ナレーション文章IDは、表示されるナレーション文章の識別情報である。ナレーション文章IDは、ナレーション文章有無が「あり」に設定されている場合に登録される。ナレーション音声IDは、出力されるナレーション音声の識別情報である。ナレーション音声IDは、ナレーション音声有無が「あり」に設定されている場合に登録される。
HDD7には、更に、OS、運動支援プログラム、3Dエンジン、ミュージックシーケンサ等の各種プログラム等が記憶されている。運動支援プログラムは、利用者41の運動を支援するためのプログラムである。運動支援プログラムは、コンピュータとしてのCPU51に、受信ステップ、第1割り当てステップ、第2割り当てステップ、第1制御ステップ及び第2制御ステップを少なくとも実行させる。3Dエンジンは、モーションデータに基づいて、三次元仮想空間で運動動作するフィギュア83を二次元平面に投影した画像を生成するためのプログラムである。画像を生成する処理は、射影変換、クリッピング、隠面消去、シェーディング、テクスチャマッピング等を含む。CPU51は、3Dエンジンを実行して、静止画像を順次生成する。生成された静止画像をCPU51が表示制御部56へ順次出力することで、ディスプレイ67には、運動映像が表示される。
ミュージックシーケンサは、楽曲データを再生するためのプログラムである。CPU51は、ミュージックシーケンサを実行することにより、楽曲データに対応する音声信号を生成する。また、CPU51は、ミュージックシーケンサを実行することにより、各種のイベントを発生させる。イベントとして、例えば、テンポに応じて所定時間間隔で発生するイベントがある。このイベントは、MIDIクロックや同期イベントと呼ばれる。また、イベントとして、例えば、演奏パート開始イベントがある。
各種プログラムは、例えば、配信サーバ2等のサーバからネットワーク10を介してダウンロードされるようにしてもよい。また、各種プログラムは、記録媒体59に記録されてディスクドライブ58を介して読み込まれるようにしてもよい。なお、3Dエンジンやミュージックシーケンサは、プログラムではなく、専用のハードウェアであってもよい。そして、出力端末5は、ハードウェアとしての3Dエンジンやミュージックシーケンサを備えてもよい。
CPU51は、設定されたテンポに従って、楽曲データに対応する音声信号を音声出力部63へ出力させるとともに、生成した画像に対応する映像信号を表示制御部56から出力させる。CPU51は、同期イベントに基づいて、楽曲の音声信号の出力タイミングと運動映像の映像信号の出力タイミングとを同期させる。これにより、スピーカ64から出力される楽曲に同期して歌唱動作又は運動動作を行うフィギュア83がディスプレイ67に表示される。また、CPU51は、演奏パート開始イベントに基づいて、楽曲の演奏パートの切り替わり及び演奏が開始される演奏パートを検出する。
[4.運動コンテンツ生成システム1の動作]
次に、図4及び図5を参照して、運動コンテンツ生成システム1の動作を説明する。図4(A)は、出力端末5のCPU51のレッスン処理の処理例を示すフローチャートである。例えば、操作者42が、リモコン66等により、運動レッスンを開始させるための操作を行う。すると、CPU51は、レッスン処理を開始する。
図4(A)に示すように、CPU51は、レッスン生成処理を実行する(ステップS1)。レッスン生成処理において、CPU51は、操作者42の指示に基づいて、レッスン情報を生成する。レッスン生成処理の詳細は後述する。次いで、CPU51は、レッスン実行処理を実行する(ステップS2)。レッスン実行処理において、CPU51は、生成されたレッスン情報に基づいて、運動コンテンツを再生する。利用者41は、再生される運動コンテンツに合わせて、運動レッスンを行う。レッスン実行処理の詳細は後述する。次いで、CPU51は、レッスン評価処理を実行する(ステップS3)。レッスン評価処理において、CPU51は、運動レッスンにおける利用者41の歌唱及び運動を評価する。レッスン評価処理の詳細は後述する。CPU51は、ステップS3の処理を終えると、レッスン処理を終了させる。
図4(B)は、出力端末5のCPU51のレッスン生成処理の処理例を示すフローチャートである。図4(B)に示すように、CPU51は、運動レッスンに用いる楽曲の楽曲IDを取得する(ステップS11)。具体的に、CPU51は、ディスプレイ67に楽曲の一覧を表示させる。操作者42は、例えば、リモコン66を操作して、一覧の中から楽曲を選択する。CPU51は、リモコン66からセンサ情報受信部69を介して受信された信号に基づいて、操作者42が選択した楽曲の楽曲IDを特定する。
次いで、CPU51は、練習タイプを取得する(ステップS12)。具体的に、CPU51は、歌唱メインと運動メインとの中から練習タイプを選択するための画面を表示する。操作者42は、例えば、リモコン66を操作して選択を行う。すると、リモコン66は、操作に応じた信号を送信する。このときの信号は、練習タイプの指示を示す。この信号は、本発明における指示情報の一例である。CPU51は、リモコン66から受信される信号に基づいて、練習タイプを特定する。
次いで、CPU51は、運動レベルを取得する(ステップS13)。具体的に、CPU51は、運動レベルを選択するための画面を表示する。操作者42は、例えば、リモコン66を操作して選択を行う。すると、リモコン66は、操作に応じた信号を送信する。この信号は、利用者41の運動レベルを示す。このときの信号は、本発明におけるレベル情報の一例である。CPU51は、リモコン66から受信される信号に基づいて、運動レベルを特定する。
次いで、CPU51は、運動レッスンの設定値を取得する(ステップS14)。具体的に、CPU51は、レッスン設定表から、ステップS12及びS13で取得した練習タイプ及び運動レベルに対応する割当ID、運動負荷、歌詞有無、ナレーション文章有無、ナレーション音声有無を取得する。次いで、CPU51は、動作割当表から、割当IDに対応する複数の動作種別を取得する。
次いで、CPU51は、レッスン情報を生成する(ステップS15)。具体的に、CPU51は、ステップS11で取得した楽曲IDを含むレッスン情報をHDD7に記憶させる。次いで、CPU51は、取得した楽曲IDに対応する楽曲データから演奏パート開始イベントを順次読み出す。次いで、CPU51は、取得した演奏パート開始イベントからパートID及びパート種別を取得する。次いで、CPU51は、取得したパートID及びパート種別を含むパート情報を生成する。次いで、CPU51は、ステップS14で取得した複数の動作種別の中から、パート種別に対応する動作種別を選択する。次いで、CPU51は、動作種別、運動負荷、楽曲ID及びパート種別から、モーションIDを生成する。次いで、CPU51は、生成したモーションIDをパート情報に追加する。これにより、CPU51は、練習タイプが歌詞メインである場合、歌唱動作を運動動作よりも優先的に演奏パートに割り当てる。また、CPU51は、練習タイプが運動メインである場合、運動動作を歌唱動作よりも優先的に演奏パートに割り当てる。
次いで、CPU51は、取得した歌詞有無をパート情報に追加する。歌詞有無が「あり」に設定されている場合、CPU51は、楽曲ID及びパートIDに対応する歌詞IDをHDD7から取得して、パート情報に追加する。次いで、CPU51は、動作種別が歌唱動作に設定されているか否かを判定する。このとき、CPU51は、動作種別が歌唱動作に設定されている場合、「なし」に設定されたナレーション文章有無及び「なし」に設定されたナレーション音声有無を、パート情報に追加する。一方、CPU51は、動作種別が運動動作に設定されている場合、レッスン設定表から取得したナレーション文章有無及び設定されたナレーション音声有無をそのままパート情報に追加する。ナレーション文章有無が「あり」に設定されている場合、CPU51は、モーションIDに対応するナレーション文章IDをHDD7から取得して、パート情報に追加する。ナレーション音声有無が「あり」に設定されている場合、CPU51は、モーションIDに対応するナレーション音声IDをHDD7から取得して、パート情報に追加する。CPU51は、必要な情報が追加されたパート情報をレッスン情報に追加する。CPU51は、楽曲データから読み出した演奏パート開始イベントごとに、パート情報を追加する。CPU51は、楽曲IDが示す楽曲を構成する全ての演奏パートについてパート情報を追加すると、レッスン生成処理を終了させる。
図5(A)は、出力端末5のCPU51のレッスン実行処理の処理例を示すフローチャートである。図5(A)に示すように、CPU51は、初期設定を行う(ステップS21)。具体的に、CPU51は、センサASを装着して規定の姿勢で静止するよう利用者41に指示するメッセージをディスプレイ67に表示させる。規定の姿勢は、例えば、気を付けの姿勢であってもよい。例えば、HDD7には、規定の姿勢をとった場合の利用者41の各身体部位の三次元空間における座標が予め記憶されている。メッセージの表示から所定秒経過した後、CPU51は、HDD7に記憶されている座標を、利用者41の身体部位の座標の初期値としてRAM53に記憶させる。次いで、CPU51は、時計機能から現在時刻を取得する。そして、CPU51は、現在時刻を、楽曲の再生開始時刻としてRAM53に記憶させる。また、CPU51は、現在時刻を、演奏順が1番目の演奏パートの再生開始時刻としてRAM53に記憶させる。また、CPU51は、生成されたレッスン情報から、演奏順が1番目である演奏パートのパート情報を取得する。また、CPU51は、レッスン情報に含まれる楽曲IDに対応する楽曲データから、楽曲のテンポを取得する。
CPU51は、ステップS21の処理を終えると、運動コンテンツを再生する。先ず、CPU51は、3Dエンジンにより、運動映像表示処理を実行する(ステップS22)。具体的に、CPU51は、取得したパート情報に含まれるモーションIDに対応するモーションデータに基づいて、運動映像の静止画像を生成する。このとき、CPU51は、楽曲のテンポと、演奏パートの再生開始時刻から現時点までの経過時間とに基づいて、生成する静止画像を決定する。CPU51は、生成した静止画像を表示制御部56に出力する。表示制御部56は、静止画像に応じた映像信号をディスプレイ67に出力する。これにより、ディスプレイ67には、フィギュア83が動作する運動映像が表示される。
次いで、CPU51は、歌詞表示処理を実行する(ステップS23)。具体的に、CPU51は、取得したパート情報に含まれる歌詞有無が「あり」に設定されているか否かを判定する。このとき、歌詞有無が「なし」に設定されている場合、CPU51は、歌詞を表示させないで、歌詞表示処理を終了させる。一方、歌詞有無が「あり」に設定されている場合、CPU51は、パート情報に含まれる歌詞IDに対応する歌詞データに基づいて、歌詞のテロップを表示させる。このとき、CPU51は、演奏パートの再生開始時刻から現時点までの経過時間に基づいて、歌詞データに含まれるテキストの中から、表示させるテキストを決定する。そして、CPU51は、決定したテキストを表示制御部56に出力する。この場合、表示制御部56は、テキストが示す文字と運動映像の静止画像とを合成する。そして、CPU51は、合成した画像に応じた映像信号をディスプレイ67に出力する。これにより、ディスプレイ67には、動作するフィギュア83と歌詞とが表示される。
次いで、CPU51は、ナレーション文章表示処理を実行する(ステップS24)。具体的に、CPU51は、取得したパート情報に含まれるナレーション文章有無が「あり」に設定されているか否かを判定する。このとき、ナレーション文章有無が「なし」に設定されている場合、CPU51は、ナレーション文章を表示させないで、ナレーション文章表示処理を終了させる。一方、ナレーション文章有無が「あり」に設定されている場合、CPU51は、パート情報に含まれるナレーション文章IDに対応するナレーション文章データに基づいて、ナレーション文章を表示させる。このとき、CPU51は、演奏パートの再生開始時刻から現時点までの経過時間に基づいて、ナレーション文章データに含まれるテキストの中から、表示させるテキストを決定する。そして、CPU51は、決定したテキストを表示制御部56に出力する。この場合、表示制御部56は、テキストが示す文字と運動映像の静止画像とを合成する。そして、CPU51は、合成した画像に応じた映像信号をディスプレイ67に出力する。これにより、ディスプレイ67には、動作するフィギュア83とナレーション文章とが表示される。
次いで、CPU51は、ミュージックシーケンサにより、楽曲再生処理を実行する(ステップS25)。具体的に、CPU51は、生成されたレッスン情報に含まれる楽曲IDに対応する楽曲データに基づいて、楽曲を出力させる。このとき、CPU51は、楽曲データから、楽曲の再生開始時刻から現時点までの経過時間に対応するイベントを読み出す。そして、CPU51は、読み出したイベントに基づいて、音声出力部63による音声信号の出力を制御する。これにより、CPU51は、音声出力部63からスピーカ64へ、楽曲の音声信号を出力させる。そして、スピーカ64から楽曲が出力される。なお、楽曲データには、例えば、デルタタイムとイベントとの組が記述されている。デルタタイムは、あるイベントを出力してから、次のイベントを出力するまでの時間を示す。そのため、CPU51は、例えば、楽曲データからイベントを読み出すタイミングを、デルタタイムと楽曲のテンポとに従って決定する。
次いで、CPU51は、ナレーション音声再生処理を実行する(ステップS26)。具体的に、CPU51は、取得したパート情報に含まれるナレーション音声有無が「あり」に設定されているか否かを判定する。このとき、ナレーション音声有無が「なし」に設定されている場合、CPU51は、ナレーション音声を出力させないで、ナレーション音声再生処理を終了させる。一方、ナレーション音声有無が「あり」に設定されている場合、CPU51は、パート情報に含まれるナレーション音声IDに対応するナレーション音声データに基づいて、ナレーション音声を出力させる。このとき、CPU51は、ナレーション音声データから、演奏パートの再生開始時刻から現時点までの経過時間に対応するデータ部分を読み出す。そして、CPU51は、読み出したデータ部分に基づいて、音声出力部63による音声信号の出力を制御する。この場合、音声出力部63は、ナレーション音声の音声信号と楽曲の音声信号とを合成する。そして、音声出力部63は、合成された音声信号をスピーカ64に出力する。これにより、スピーカ64から楽曲とナレーション音声とが出力される。
次いで、CPU51は、利用者41の歌唱データ及び運動データの取得タイミングであるか否かを判定する(ステップS27)。歌唱データは、利用者41の歌唱音声の音高値及び音量である。運動データは、利用者41の各身体部位の三次元空間における座標及び各身体部位の移動量である。例えば、利用者41は、予め設定された設定時間間隔が経過するごとに、歌唱データ及び運動データを取得する。このとき、CPU51は、取得タイミングではないと判定した場合には(ステップS27:NO)、ステップS30に進む。一方、CPU51は、取得タイミングであると判定した場合には(ステップS27:YES)、ステップS28に進む。
ステップS28において、CPU51は、利用者41の歌唱データを取得する。具体的に、CPU51は、マイク68から入力された音声信号を分析して、歌唱音声の音高値及び音量を取得する。そして、CPU51は、取得した音高値及び音量を、楽曲の再生開始時刻からの経過時間と対応付けてRAM53に記憶させる。次いで、CPU51は、利用者41の運動データを取得する(ステップS29)。具体的に、CPU51は、取得されたパート情報に含まれるモーションIDから、動作種別を取得する。次いで、CPU51は、動作種別が運動動作であるか否かを判定する。このとき、CPU51は、動作種別が歌唱動作である場合、ステップS30に進む。一方、CPU51は、動作種別が運動動作である場合、各加速度センサASから送信されてくる加速度情報をセンサ情報受信部69を介して取得する。次いで、CPU51は、取得した加速度情報と、設定時間間隔前に取得した利用者41の各身体部位の座標とに基づいて、現在の利用者41の各身体部位の座標及び移動量を計算する。そして、CPU51は、計算した座標及び移動量を、パート情報に含まれるモーションIDと、演奏パートの再生開始時刻からの経過時間と対応付けてRAM53に記憶させる。
次いで、CPU51は、演奏パートが切り替わったか否かを判定する(ステップS30)。例えば、CPU51は、ミュージックシーケンサから演奏パート開始イベントが出力されたとき、演奏パートが切り替わったと判定してもよい。このとき、CPU51は、演奏パートが切り替わっていないと判定した場合には(ステップS30:NO)、ステップS32に進む。一方、CPU51は、演奏パートが切り替わったと判定した場合には(ステップS30:YES)、ステップS31に進む。ステップS31において、CPU51は、レッスン情報から、演奏パート開始イベントに含まれるパートIDに対応するパート情報を取得する。また、CPU51は、時計機能から現在時刻を取得する。そして、CPU51は、取得した現在時刻を、次の演奏パートの再生開始時刻としてRAM53に記憶させる。次いで、CPU51は、ステップS22に進む。CPU51は、新しく取得されたパート情報及び再生開始時刻に基づいて、ステップS22〜29を実行する。
ステップS32において、CPU51は、運動コンテンツの再生が終了したか否かを判定する。例えば、CPU51は、ミュージックシーケンサから、楽曲データの終端が検出されたことを示すイベントが出力された場合には、運動コンテンツの再生が終了したと判定する。このとき、CPU51は、運動コンテンツの再生が終了していないと判定した場合には(ステップS32:NO)、ステップS22に進む。一方、CPU51は、運動コンテンツの再生が終了したと判定した場合には(ステップS32:YES)、レッスン実行処理を終了させる。
図5(B)は、出力端末5のCPU51のレッスン評価処理の処理例を示すフローチャートである。図5(B)に示すように、CPU51は、歌唱の評価値を算出する(ステップS51)。具体的に、CPU51は、RAM53に記憶された利用者41の歌唱音声の音高値と、レッスン情報に含まれる楽曲IDに対応する教師音高データに登録されている音高値との差を、経過時間ごとに計算する。次いで、CPU51は、音高値の差が、HDD7に予め記憶された歌唱閾値以下であるか否かを判定する。そして、CPU51は、差が歌唱閾値以下である利用者41の音高値の数をカウントする。次いで、CPU51は、差が歌唱閾値以下である音高値の数を、利用者41の音高値の総数で割ることにより、差が歌唱閾値以下である音高値の割合を計算する。そして、CPU51は、計算した割合に100を掛けて、評価値を計算する。
次いで、CPU51は、運動の評価値を算出する(ステップS52)。具体的に、CPU51は、RAM53に記憶された利用者41の各身体部位の座標と、教師座標データに登録されている各身体部位の座標との差を、経過時間ごとに計算する。このとき、CPU51は、利用者41の身体部位の座標に対応付けられているモーションIDと同一のモーションIDに対応する教師音高データを用いる。次いで、CPU51は、座標の差が、HDD7に予め記憶された運動閾値以下であるか否かを判定する。そして、CPU51は、差が運動閾値以下である利用者41の身体部位の座標の数をカウントする。次いで、CPU51は、差が運動閾値以下である座標の数を、利用者41の身体部位の座標の総数で割ることにより、差が運動閾値以下である座標の割合を計算する。そして、CPU51は、計算した割合に100を掛けて、評価値を計算する。
次いで、CPU51は、歌唱による消費カロリーを計算する(ステップS53)。具体的に、CPU51は、RAM53に記憶された利用者41の歌唱音声の音量ごとに、音量に対応するカロリーを決定する。このとき、CPU51は、音量が大きいほど、カロリーを高くする。そして、CPU51は、計算したカロリーの合計値を、歌唱による消費カロリーとして計算する。
次いで、CPU51は、運動による消費カロリーを計算する(ステップS54)。具体的に、CPU51は、RAM53に記憶された利用者41の各身体部位の移動量ごとに、移動量に対応するカロリーを決定する。このとき、CPU51は、移動量が大きいほど、カロリーを高くする。そして、CPU51は、計算したカロリーの合計値を、運動による消費カロリーとして計算する。
次いで、CPU51は、ステップS51〜S54で算出した評価値及び消費カロリーをディスプレイ67に表示させる(ステップS55)。CPU51は、ステップS55の処理を終えると、レッスン評価処理を終了させる。
以上説明したように、本実施形態によれば、CPU51が、練習タイプとして歌唱メインが指示された場合、歌唱動作を運動動作よりも優先して演奏パートに割り当てる。また、CPU51が、練習タイプとして運動メインが指示された場合、運動動作を歌唱動作よりも優先して演奏パートに割り当てる。そのため、主に、歌唱したいのか、運動したいのかというユーザの要望に応じた運動コンテンツを出力することができる。
なお、上記実施形態においては、本発明の情報処理装置が出力端末5に適用されていた。しかしながら、本発明の情報処理装置が配信サーバ2に適用されてもよい。例えば、配信サーバ2は、操作者42による出力端末5の操作に基づいて、レッスン情報を生成してもよい。そして、配信サーバ2は、レッスン情報に基づいて、音声データ及び動画データを生成してもよい。この場合の音声データは、楽曲及びナレーション音声を出力するためのデータである。また、動画データは、運動映像、歌詞及びナレーション文章を表示するためのデータである。運動レッスンが行われるとき、配信サーバ2は、音声データ及び動画データを、例えばストリーミング方式で出力端末5に送信する。これにより、配信サーバ2は、出力端末5により楽曲を出力させ、且つ、運動映像を表示させる。また、本発明の情報処理装置が出力端末5及び配信サーバ2に適用されてもよい。そして、出力端末5及び配信サーバ2は協働して処理を行ってもよい。