以下、本発明の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、運動を支援するための運動コンテンツを生成する運動コンテンツ生成システムに本発明を適用した場合の実施形態である。運動コンテンツは、運動を支援するための映像及び音声を含む。
[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は、三次元仮想空間に配置される。運動映像は、本発明における映像の一例である。出力端末5は、スピーカ64から出力される楽曲と、ディスプレイ67に表示されるフィギュア83の動きとが同期するように、信号を出力する。楽曲と運動映像とを出力することは、運動コンテンツを出力することの一例である。利用者41は、スピーカ64により出力される楽曲を聴きながら、ディスプレイ67に表示されるフィギュア83を見て、運動を行うことができる。施設4がカラオケ店舗である場合、ディスプレイ67には、例えば、カラオケの楽曲に対応した踊りの動作を行うフィギュア83が表示される。この場合、利用者41は、スピーカ64により出力される楽曲に合わせて歌唱しながら、ディスプレイ67に表示されるフィギュア83を見て、踊りを踊ることができる。操作者42は、リモコン66等を用いて出力端末5を操作することができる。利用者41と操作者42とは同一人物であってもよい。施設4がスポーツ施設である場合、操作者42は、例えば、インストラクターであってもよい。
[2.運動コンテンツ]
施設4がスポーツ施設である場合、利用者41は、運動レッスンに用いる運動コンテンツを選択することができる。選択可能な運動コンテンツの種類として、運動重視コンテンツと楽曲重視コンテンツとがある。
運動重視コンテンツは、楽曲よりも運動が重視される運動コンテンツである。運動重視コンテンツは、利用者41の身体の訓練を主目的とする。運動重視コンテンツにおいては、運動が動作される運動テンポに従って楽曲が出力される。例えば、利用者41が運動動作ごとに運動テンポを設定する。運動重視コンテンツの内容を決定する場合、例えば、楽曲よりも先に運動動作が選択される。例えば、利用者41又は操作者42が、所望する運動動作を選択する。そして、選択された運動動作ごとに楽曲が割り当てられる。例えば、選択された運動動作や運動テンポに応じた楽曲が割り当てられる。1つの楽曲が複数の運動動作に割り当てられてもよい。運動重視コンテンツでは、楽曲を構成する複数の演奏パートのうち、一部の演奏パートのみが所定回数繰り返し出力される。例えば、楽曲のサビ部分が繰り返し出力されたり、イントロ部分とサビ部分とが繰り返し出力されたりする。
運動重視コンテンツにおいて、運動レッスンは、例えば、複数種類の運動で構成される。運動の種類として、例えば、ウォーミングアップ、メイン運動、クールダウン等がある。複数種類の運動のそれぞれに、1つ以上の運動動作が割り当てられる。運動重視コンテンツにおいて選択可能な運動動作は、例えば、体操の動作である。体操は、例えば、健康の増進、体力の増強、筋力の強化等のために行われる運動である。体操の種類として、例えば、有酸素運動、無酸素運動、ストレッチ等がある。有酸素運動の運動動作として、例えば、マーチ、フロントランジ等がある。無酸素運動の運動動作として、例えば、ショルダープレス、チェストプレス等がある。ストレッチの運動動作として、例えば、上腕部ストレッチ、首ストレッチ等がある。
楽曲重視コンテンツは、運動よりも楽曲が重視される運動コンテンツである。楽曲重視コンテンツにおいても、利用者41の身体を訓練することができる。しかしながら、利用者41が運動を楽しむことの方が重視される。楽曲重視コンテンツにおいては、楽曲のオリジナルのテンポに従って楽曲が出力される。楽曲重視コンテンツの内容を決定する場合、例えば、運動動作よりも先に楽曲が選択される。例えば、利用者41又は操作者42が、所望する楽曲を選択する。そして、選択された楽曲の演奏パートごとに、運動動作が割り当てられる。例えば、利用者41又は操作者42が、所望する運動動作を選択する。楽曲重視コンテンツにおいては、楽曲の構成に従ったパートの順で、楽曲が出力される。例えば、イントロ、Aメロ、Bメロ、サビ、Aメロ、Bメロ、サビ、間奏、サビ、エンディング等の順で、楽曲が出力される。利用者41は、楽曲に適したテンポで楽曲の構成に従って出力される楽曲を聴きながら運動を行うことで、楽曲を楽しむことができる。
楽曲重視コンテンツにおいて選択可能な運動動作として、体操の動作と、楽曲に対応する踊りの動作とがある。踊りの動作は、楽曲に合わせて踊るために楽曲に対して振り付けられた動作である。
施設4がカラオケ施設である場合の運動コンテンツについて説明する。この場合、利用者41は、歌唱する楽曲を選択する。そして、選択された楽曲に対応する運動コンテンツとして、楽曲重視コンテンツが出力される。カラオケの楽曲の運動コンテンツにおいては、運動動作は予め定められている。具体的に、楽曲の演奏パートごとに、演奏パートに対応した踊りの動作が割り当てられている。
[3.利用者41に適した運動レッスンの提示]
運動レッスン中、利用者41は、ディスプレイ67に表示されるフィギュア83を見ながら、フィギュア83が行う運動動作と同じ運動動作を行おうとする。フィギュア83が行う運動動作は、利用者が行うべき模範的な運動動作である。フィギュア83が行う運動動作と利用者41が行う運動動作との間にずれが生じる場合がある。運動レッスンを構成する複数の運動動作のうち、ずれが多い運動動作は、利用者41が苦手な運動動作である蓋然性がある。利用者41は、苦手な運動動作を繰り返し行いたいと考える場合がある。これにより、苦手な運動が上達することが期待される。また、1つの運動動作の中でも、フィギュア83の身体部位の動きと利用者41の身体部位の動きとの間に生じるずれが、身体部位に応じて多かったり少なかったりする。動きのずれが多い身体部位は、利用者41が苦手な身体部位である蓋然性がある。そのため、利用者41は、どの運動動作におけるどの身体部位の運動が苦手であるかを把握して運動レッスンを行いたい場合がある。そこで、出力端末5は、フィギュア83が行う運動動作と利用者41が行う運動動作とのずれを特定する。具体的に、出力端末5は、フィギュア83の複数の身体部位の三次元仮想空間における角度と、利用者41の複数の身体部位の三次元空間における角度とを取得する。出力端末5は、フィギュア83の身体部位の角度と、利用者41の身体部位の角度とのずれを、運動レッスンを構成する運動動作ごとに複数の身体部位のそれぞれについて特定する。そして、出力端末5は、ずれの特定結果をディスプレイ67に表示させる。
フィギュア83の複数の身体部位の三次元仮想空間における角度を取得するため、出力端末5は、モーションデータを用いる。モーションデータは、運動映像を生成するためのデータである。モーションデータは、本発明における動作情報の一例である。モーションデータは、フィギュア83の複数の身体部位の三次元仮想空間における動きを定義するデータである。例えば、モーションデータは、運動動作の進行に応じたフィギュア83の各身体部位の座標を含む。モーションデータは、運動動作ごとに用意されている。出力端末5は、モーションデータに基づいて、運動動作中のフィギュア83の複数の関節部分の三次元仮想空間における三次元座標を、運動動作の進行に沿って所定時間間隔ごとに計算する。例えば、出力端末5は、手首、肘、肩、腰、膝、足首の三次元座標を計算する。出力端末5は、フィギュア83の関節同士を結ぶ線を、角度を取得する身体部位とする。この身体部位を、関節間部位と称する。例えば、右手首−右肘間は右前腕、右肘−右肩間は右上腕、右肩−左肩間は肩、左肩−左肘間は左上腕、左肘−左手首間は左前腕、右足首−右膝間は右足、右膝−右腰間は右腿、右腰−左腰間は腰、左腰−左膝間は左腿、左膝−左足首間は右足である。関節間部位は、本発明における身体部位の一例である。関節間部位の三次元座標は、その関節間部位の両端の関節の三次元座標で表される。
出力端末5は、三次元座標を、例えば、運動映像のフレーム間隔時間で計算する。フレーム間隔時間は、フレームレートの逆数である。ある運動動作について、フィギュア83が運動する時間がTn秒であるとする。Tn=n×フレーム間隔時間である。出力端末5は、運動動作の開始から時間T0、T1、T2と、フレーム間隔時間が経過するごとに、三次元座標を計算する。出力端末5は、運動レッスンを構成する運動動作ごとに、フィギュア83の複数の関節の三次元座標を取得する。出力端末5は、フィギュア83の複数の関節の三次元座標を格納するフィギュア座標テーブルを生成する。図2(A)は、楽曲重視コンテンツにおけるフィギュア座標テーブルの一例を示す図である。楽曲重視コンテンツでは、演奏パートごとに運動動作が割り当てられている。そのため、演奏パートごとに、複数の関節のフレーム時間間隔ごとの三次元座標が格納される。運動重視コンテンツの場合、運動動作ごとに楽曲が割り当てられている。そのため、運動動作ごと又は楽曲ごとに、複数の関節のフレーム時間間隔ごとの三次元座標が格納される。フィギュア座標テーブルには、更にコンテンツIDが格納される。コンテンツIDは、運動コンテンツの識別情報である。フィギュア座標テーブルに格納される三次元座標は、本発明における第1角度情報の一例である。
利用者41の複数の身体部位の三次元仮想空間における角度を取得するため、利用者41は、図1に示すように、複数の加速度センサASを装着する。例えば、加速度センサASは、加速度センサASに対するX軸方向、Y軸方向、Z軸方向のそれぞれの加速度を検出する。利用者41は、フィギュア83において三次元座標が計算される関節部分と同じ関節部分に、加速度センサASを装着する。ディスプレイ67に表示された運動映像を見ながら利用者41が運動動作を行うとき、各加速度センサASは、装着された関節部分の加速度を検出する。加速度センサASは、検出した加速度を含む加速度情報を出力端末5へ送信する。出力端末5は、各加速度センサASから受信した加速度情報に基づいて、運動動作ごとに、利用者41の複数の関節のフレーム間隔時間単位の三次元空間における三次元座標を計算する。そして、出力端末5は、計算した三次元座標を格納する利用者座標テーブルを生成する。図2(B)は、利用者座標テーブルの一例を示す図である。利用者座標テーブルの構成は、フィギュア座標テーブルの構成と基本的に同様である。利用者座標テーブルに格納される三次元座標は、本発明における第2角度情報の一例である。
出力端末5は、フィギュア83の関節間部位の角度と利用者41の関節間部位の角度とのずれ量を、運動動作ごとに複数の関節間部位のそれぞれについて計算する。三次元空間における角度は、例えば、三次元空間の座標軸の1つであるX軸に対する角度と、三次元空間のXY平面に対する角度とを含む。関節間部位の三次元空間における角度は、その関節間部位の両端の関節の三次元座標に基づいて特定される。従って、関節間部位の両端の関節の三次元座標は、関節間部位の三次元空間における角度を示す情報である。右前腕を例として説明する。この場合、出力端末5は、例えば図3(A)に示すように、フィギュア83の右前腕に対する利用者41の右前腕の角度θを、ずれ量として計算する。この場合、出力端末5は、フィギュア83の右手首及び右肘の三次元座標と、利用者41の右手首及び右肘の三次元座標とを用いる。出力端末5は、計算したずれ量を格納したずれ量テーブルを生成する。図3(B)は、楽曲重視コンテンツにおけるずれ量テーブルの一例を示す。楽曲重視コンテンツのずれ量テーブルには、演奏パートごとに、複数の関節間部位の角度のフレーム時間間隔単位のずれが格納される。運動重視コンテンツの場合、運動動作ごと又は楽曲ごとに、複数の関節間部位のフレーム時間間隔単位の角度の変化量のずれ量が格納される。角度のずれを計算することで、出力端末5は、フィギュア83が行う運動動作と利用者41が行う運動動作とのずれを正確に特定することができる。その理由は、関節間部位の角度は、利用者41の体格に影響を受けないからである。例えば、身体部位の三次元座標でずれ量を計算する場合、体格が大きいほど、ずれ量が大きくなる傾向がある。
出力端末5は、時間T0〜Tnのそれぞれで計算された角度のずれ量を平均化する。出力端末5は、運動動作ごとに複数の関節間部位のそれぞれについて平均化を行う。例えば、出力端末5は、単純移動平均を計算してもよい。例えば、151個の値の単純移動平均を計算する場合、出力端末5は、T0〜T150のずれ量に基づいて、T150における単純移動平均を計算する。出力端末5は、T150〜Tnのそれぞれについて単純移動平均を計算する。
出力端末5は、単純移動平均されたずれ量が閾値を超えているとき、実際にずれが生じたと判定する。つまり、出力端末5は、ずれが生じた瞬間を特定する。閾値は、例えば予め設定されている。図3(C)は、楽曲重視コンテンツにおける閾値テーブルの例を示す図である。閾値テーブルは、閾値が設定されたテーブルである。図3(C)に示すように、演奏パートごとに閾値が分けられている。また、各演奏パートにおいて、関節間部位ごとに閾値が分けられている。そして、各関節間部位において、利用者41の年代ごとに閾値が設定される。運動重視コンテンツの場合、楽曲又は運動動作ごとに閾値が分けられている。また、各楽曲又は運動動作において、関節間部位ごとに閾値が分けられている。そして、各関節間部位において、利用者41の年代ごとに閾値が設定される。
出力端末5は、各関節間部位について、フレーム間隔時間ごとに計算されたずれ量の中で、閾値を超えたずれ量の個数を、カウント値としてカウントする。出力端末5は、カウント値を、運動動作ごとに計算する。そして、出力端末5は、カウント値の計算結果として、カウント値テーブルを記憶させる。こうして、出力端末5は、ずれを特定する。図3(D)は、楽曲重視コンテンツにおけるカウント値テーブルの例を示す図である。図3(D)に示すように、演奏パートごとに複数の関節間部位のそれぞれについてカウント値が格納される。運動重視コンテンツの場合、楽曲又は運動動作ごとに複数の関節間部位のそれぞれについてカウント値が格納される。なお、出力端末5は、単純移動平均を計算する前のずれ量テーブルに格納されているずれ量を用いて、カウント値を計算してもよい。
出力端末5は、カウント値テーブルに基づいて、レッスン結果画面をディスプレイ67に表示させる。図4(A)は、楽曲重視コンテンツにおけるレッスン結果画面の表示例を示す図である。図4(A)に示すように、楽曲重視コンテンツにおけるレッスン結果画面には、結果表110、開始ボタン120、戻るボタン130が表示される。結果表は、ずれの特定結果を示す。具体的に、結果表110の行見出しの各セルに、関節間部位の名前が表示される。結果表110の列見出しの各セルに、楽曲を構成する演奏パートの名前が表示される。出力端末5は、見出し以外の各セルに、セルが位置する列に対応する演奏パートにおいて、セルが位置する行に対応する関節間部位の点数を表示させる。例えば、パート1の列と右腕の行が交差するセルに、90点が表示されている。これは、パート1で行われた運動動作において、右腕の運動に対して90点が付けられたことを示す。点数が低いほどずれが多い。つまり、点数が低い演奏パート及び関節間部位の組み合わせほど、利用者41が苦手とする組み合わせである。例えば、出力端末5は、100からカウント値を引いて、点数を計算してもよい。例えば、カウント値テーブルにおいて、パート1における右腕のカウント値が10である場合に、パート1における右腕の点数が90点になる。出力端末5は、最も低い点数が表示されるセルを強調表示する。結果表110の最終列の列見出しのセルには、「全パート」が表示される。出力端末5は、最終列の各セルに、関節間部位ごとの全パートの点数の平均値を表示する。例えば、全パートの列と右腕の行が交差するセルに、95点が表示される。これは、右腕の運動の全パートにおける点数の平均値が95点であることを示す。出力端末5は、全パートにおける点数の平均値が最も低い関節間部位の名前を表示するセルを強調表示する。結果表110の最終行の行見出しのセルには、「全部位」が表示される。出力端末5は、最終行の各セルに、演奏パートごとの全関節間部位の点数の平均値を表示する。例えば、パートnの列と全部位の行が交差するセルに、60点が表示される。これは、パートnにおける全関節間部位の点数の平均値が65点であることを示す。出力端末5は、全関節間部位における点数の平均値が最も低い演奏パートの名前を表示するセルを強調表示する。出力端末5は、強調表示された各セルの補足説明をそれぞれ吹き出しで表示する。利用者41は、角度のずれが最も多い関節間部位及び演奏パートとの組み合わせと、全演奏パートを通して角度のずれが最も多い関節間部位と、全関節間部位を通して角度のずれが最も多い演奏パートを把握することができる。
利用者41は、結果表110からセルを選択することにより、再度運動レッスンを行いたい関節間部位及び演奏パートの組み合わせを選択することができる。利用者41は複数のセルを選択することにより、再度運動レッスンを行う関節間部位及び演奏パートの組み合わせを複数選択することができる。利用者41が関節間部位の名前を表示するセルを選択した場合、選択されたセルが示す関節間部位について、全演奏パートの運動レッスンを行うことを選択したことを示す。利用者41が演奏パートの名前を表示するセルを選択した場合、選択されたセルが示す演奏パートで、全関節間部位の運動レッスンを行うことを選択したことを示す。
開始ボタン120は、利用者41が選択した関節間部位及び演奏パートで運動レッスンを行うためのボタンである。戻るボタン130は、運動レッスンをやめるためのボタンである。開始ボタン120が選択されると、出力端末5は、利用者41に選択された演奏パートを出力させ、出力される演奏パートに割り当てられた運動動作の運動映像を表示させる。このとき、出力端末5は、フィギュア83の各関節間部位のうち、利用者41に選択された関節間部位が強調表示されるように、運動映像を生成する。これにより、利用者41が選択した関節間部位の動きが、運動映像から把握しやすくなる。利用者41が複数のセルを選択した場合、出力端末5は、選択したセルごとに、演奏パートを出力させ、且つ、選択された関節間部位が強調された運動映像を表示させる。
利用者41が関節間部位の名前を表示するセルを選択したとする。この場合、出力端末5は、楽曲を構成する全演奏パートを順次出力させ、出力されている演奏パートに対応する運動動作の運動映像を、演奏パートごとに表示させる。出力端末5は、利用者41の選択に基づいて、楽曲を構成する全演奏パートのうち、点数が所定値以上である演奏パートの出力及び演奏パートに割り当てられた運動動作の運動映像の表示を省略してもよい。所定値は、例えば、90点であってもよい。
利用者41が演奏パートの名前を表示するセルを選択したとする。この場合、出力端末5は、選択された演奏パートを出力させ、選択された演奏パートに割り当てられた運動動作の運動映像を表示させる。このとき、出力端末5は、フィギュア83の全関節間部位が強調された運動映像を表示させる。出力端末5は、利用者41の選択に基づいて、点数が所定値以上である関節間部位を強調表示させなくてもよい。
図4(B)は、運動重視コンテンツにおけるレッスン結果画面の表示例を示す図である。図4(B)に示すように、運動重視コンテンツにおけるレッスン結果画面には、結果表210、開始ボタン120、戻るボタン130が表示される。結果表210の列見出しは3行で構成されている、列見出しのセルに、運動の種類、運動動作及び運動動作に割り当てられた楽曲の名前が表示される。結果表210の行見出しのセルに、関節間部位の名前が表示される。出力端末5は、見出し以外の各セルに、セルが位置する列に対応する運動動作において、セルが位置する行に対応する関節間部位の点数を表示する。例えば、ハーフスクワットの列と右腕の行が交差するセルに、100点が表示されている。これは、ハーフスクワットにおいて、右腕の運動に対して100点が付けられたことを示す。点数の計算方法は、楽曲重視コンテンツの場合と同様である。1つの楽曲が複数の運動動作に割り当てられている場合がある。例えば、図4(B)の例において、楽曲Bは、マーチ及びフロントランジに割り当てられている。この場合、関節間部位ごとに、マーチの点数、フロントランジの点数及び楽曲Bの点数が表示される。楽曲Bの点数は、例えば、マーチの点数とフロントランジの点数との平均値である。出力端末5は、最も低い点数が表示されるセルを強調表示する。結果表210の最終列の列見出しのセルには、「全モーション」が表示される。出力端末5は、最終列の各セルに、関節間部位ごとの全運動動作の点数の平均値を表示する。出力端末5は、全運動動作における点数の平均値が最も低い関節間部位の名前を表示するセルを強調表示する。結果表210の最終行の行見出しのセルには、「全部位」が表示される。最終行の各セルには、運動動作ごとの全関節間部位の点数の平均値が表示される。出力端末5は、全関節間部位における点数の平均値が最も低い運動動作の名前を表示するセルを強調表示する。出力端末5は、強調表示された各セルの補足説明をそれぞれ吹き出しで表示する。利用者41は、角度のずれが最も多い関節間部位及び運動動作との組み合わせと、全運動動作を通して角度のずれが最も多い関節間部位と、全関節間部位を通して角度のずれが最も多い運動動作を把握することができる。楽曲は運動動作に割り当てられているので、利用者41は、角度のずれが多い楽曲を把握することができる。
利用者41は、結果表210からセルを選択することにより、再度運動レッスンを行いたい関節間部位と運動動作との組み合わせや、再度運動レッスンを行いたい関節間部位と楽曲との組み合わせを選択することができる。利用者41が関節間部位の名前を表示するセルを選択した場合、選択されたセルが示す関節間部位について、全運動動作の運動レッスンを行うことを選択したことを示す。利用者41が運動動作の名前を表示するセルを選択した場合、選択されたセルが示す運動動作で、全関節間部位の運動レッスンを行うことを選択したことを示す。利用者41が楽曲の名前を表示するセルを選択した場合、選択されたセルが示す楽曲が割り当てられた運動動作で、全関節間部位の運動レッスンを行うことを選択したことを示す。
利用者41が運動動作に対応する点数を表示するセルを選択した後に開始ボタン120を選択したとする。この場合、出力端末5は、利用者41に選択された運動動作に割り当てられた楽曲を出力させ、選択された運動動作の運動映像を表示させる。利用者41が楽曲に対応する点数を表示するセルを選択した後に開始ボタン120を選択したとする。この場合、出力端末5は、利用者41に選択された楽曲を出力させ、選択された楽曲が割り当てられた1以上の運動動作の運動映像を順次表示させる。出力端末5は、運動映像を表示させるとき、フィギュア83の各関節間部位のうち、利用者41に選択された関節間部位を強調表示させる。
利用者41が関節間部位の名前を表示するセルを選択したとする。この場合、出力端末5は、運動コンテンツを構成する全楽曲を順次出力させ、出力されている楽曲が割り当てられた運動動作の運動映像を表示させる。出力端末5は、利用者41の選択に基づいて、運動レッスンを構成する全運動動作のうち、点数が所定値以上である運動動作に割り当てられた楽曲の出力及びこの運動動作の運動映像の表示を省略してもよい。
利用者41が運動動作の名前を表示するセルを選択したとする。この場合、出力端末5は、選択された運動動作に割り当てられた楽曲を出力させ、選択された運動動作の運動映像を表示させる。利用者41が楽曲の名前を表示するセルを選択したとする。この場合、出力端末5は、選択された楽曲を出力させ、選択された楽曲が割り当てられた運動動作の運動映像を表示させる。何れの場合も、出力端末5は、フィギュア83の全関節間部位が強調された運動映像を表示させる。出力端末5は、利用者41の選択に基づいて、全関節間部位のうち、点数が所定値以上である関節間部位を強調表示させなくてもよい。
[4.各装置の構成]
次に、図1及び図4を参照して、運動コンテンツ生成システムに含まれる各装置の構成について説明する。
[4−1.配信サーバ2の構成]
図1に示すように、配信サーバ2は、CPU21、ROM22、RAM23、バス24、I/Oインタフェイス25、表示制御部26、ディスクドライブ28、ネットワーク通信部30及びHDD(ハードディスクドライブ)37を備える。CPU21は、バス24を介して、ROM22、RAM23、バス24及び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には、モーションデータ、楽曲データ等のデータが登録されている。モーションデータは、運動動作ごとに登録される。モーションデータは、モーション情報と対応付けて登録される。モーション情報は、運動動作を示す識別情報である。体操の動作を示すモーション情報として、例えば、「ハーフスクワット」、「マーチ」等がある。踊りの動作を示すモーション情報として、例えば、「楽曲XのAメロ」、「楽曲XのBメロ」、「楽曲Xのサビ」、「楽曲YのAメロ」等がある。
楽曲データは、スピーカ64により楽曲を出力するための演奏データである。楽曲データは、例えば、MIDI(Musical Instrument Digital Interface)形式のデータであってもよい。楽曲データは、楽曲ID、楽曲名、アーティスト名、オリジナルのテンポ、楽曲の演奏パートの構成、歌詞等の情報を含む。楽曲IDは、楽曲の識別情報である。また、楽曲データは、演奏パートの切り替わりのタイミング、歌詞テロップの表示タイミング、歌詞テロップの色を変化させるタイミング等を規定する。例えば、楽曲データがMIDI形式のデータである場合、楽曲データには、実際の演奏データとしてのMIDIメッセージに加えて、メタメッセージを含めることができる。メタメッセージとしては、例えば、演奏パートを示すマーカーメッセージ、歌詞メッセージ等がある。そのため、演奏パートを識別するパートIDや歌詞をメッセージとして楽曲データに記述することが可能である。例えば、出力端末5には、後述のミュージックシーケンサがインストールされている。出力端末5は、ミュージックシーケンサを実行することにより、楽曲データを再生するとともに、楽曲データからメタメッセージ等を読み出すと、読み出したメッセージを出力する。例えば、マーカーメッセージが出力されるタイミングが、そのマーカーメッセージが示す演奏パートが開始されるタイミングとなる。本実施形態においては、マーカーメッセージを、演奏パート開始メッセージという。演奏パート開始メッセージは、演奏パートの演奏開始を通知するメッセージである。
[4−2.出力端末5の構成]
図1に示すように、出力端末5は、CPU51、ROM52、RAM53、バス54、I/Oインタフェイス55、表示制御部56、ディスクドライブ58、ネットワーク通信部60、音声出力部63、信号受信部65、センサ情報受信部69及びHDD7を備える。CPU51は、バス54を介して、ROM52、RAM53、バス54及びI/Oインタフェイス55に接続されている。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から送信される加速度センサ情報を受信する。
HDD7は、本発明の記憶手段の一例である。HDD7には、配信サーバ2から配信されたモーションデータ、楽曲データ等が記憶される。また、HDD7には、フィギュア座標テーブル、利用者座標テーブル、ずれ量テーブル、閾値テーブル、カウント値テーブルが記憶される。また、HDD7には、レッスン情報が記憶される。レッスン情報は、運動レッスンの構成を定めたリスト情報である。例えば、出力端末5がレッスン情報を生成する。
運動重視コンテンツのレッスン情報は、複数のモーション情報及び複数の楽曲IDを含む。モーション情報は、運動レッスンを構成する運動動作を示す。楽曲IDは、運動動作に割り当てられた楽曲を示す。モーション情報と、モーション情報が示す運動動作に割り当てられた楽曲を示す楽曲IDとが対応付けられている。
運動重視レッスンが開始すると、CPU51は、レッスン情報から、運動レッスンを構成する複数の運動動作のうち、1番目に行われる運動動作のモーション情報及び楽曲IDを取得する。CPU51は、レッスン情報から取得した楽曲IDに対応する楽曲データを取得する。そして、楽曲データの一部の演奏パートを繰り返し再生する。また、CPU51は、レッスン情報に対応するフィギュア座標テーブルから、モーション情報に対応する各関節の三次元座標を取得する。CPU51は、取得した三次元座標に基づいて、モーション情報が示す運動動作をフィギュア83行う運動映像を生成する。そして、CPU51は、生成した運動映像をディスプレイ67に表示させる。CPU51は、一部の演奏パートの繰り返し再生が完了すると、レッスン情報から、次に行われる運動動作のモーション情報及び楽曲IDを取得する。そして、CPU51は、取得した情報に基づいて、楽曲データの再生及び運動映像の生成を行う。
楽曲重視コンテンツのレッスン情報は、1つの楽曲ID、複数のパートID及び複数のモーション情報を含む。楽曲IDは、楽曲重視レッスンが行われている間に出力される楽曲を示す。複数のパートIDは、楽曲IDが示す楽曲の演奏パートの構成を示す。複数のパートIDは、演奏パートの演奏順に並べられている。モーション情報は、演奏パートに割り当てられた運動動作を示す。モーション情報と、モーション情報が示す運動動作が割り当てられた演奏パートのパートIDとが対応付けられている。
楽曲重視レッスンが開始すると、CPU51は、レッスン情報から楽曲IDを取得する。CPU51は、レッスン情報から取得した楽曲IDに対応する楽曲データを取得する。そして、CPU51は、楽曲データ内に設定されているオリジナルのテンポに従って、楽曲データを再生する。CPU51は、ミュージックシーケンサから演奏パート開始メッセージを受信すると、レッスン情報から、演奏パート開始メッセージに含まれるパートIDに対応するモーション情報を取得する。CPU51は、レッスン情報に対応するフィギュア座標テーブルから、モーション情報に対応する各関節の三次元座標を取得する。CPU51は、取得した三次元座標に基づいて、モーション情報が示す運動動作をフィギュア83が行う運動映像を生成する。そして、CPU51は、生成した運動映像をディスプレイ67に表示させる。
運動重視コンテンツ及び楽曲重視コンテンツに共通して、レッスン情報は、コンテンツID、コンテンツ名、コンテンツ種別等を含む。コンテンツ種別は、運動コンテンツが運動重視コンテンツ及び楽曲重視コンテンツの何れであるかを示す情報である。
出力端末5がカラオケ装置である場合、レッスン情報の構成は、楽曲重視コンテンツのレッスン情報の構成と基本的に同じである。ただし、全ての演奏パートにおいて、パートIDに対応付けられるモーション情報は、楽曲IDが示す楽曲の演奏パートに対応する踊りの動作のモーション情報である。
HDD7には、更に、OS、運動支援プログラム、3Dエンジン、ミュージックシーケンサ等の各種プログラム等が記憶されている。運動支援プログラムは、利用者41の運動を支援するためのプログラムである。運動支援プログラムは、コンピュータとしてのCPU51に、第1取得ステップ、第1制御ステップ、第2取得ステップ、特定ステップ及び第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は、演奏パート開始メッセージに基づいて、楽曲の演奏パートの切り替わり及び演奏が開始される演奏パートを検出する。CPU51は、楽曲の演奏パートの切り替わりを検出することにより、運動動作の切り替わりをも検出することができる。
[5.運動コンテンツ生成システム1の動作]
次に、図5及び図6を参照して、運動コンテンツ生成システム1の動作を説明する。なお、図5及び図6は、運動コンテンツが楽曲重視コンテンツである場合の処理例を示す。図5(A)は、出力端末5のCPU51の準備処理の処理例を示すフローチャートである。CPU51は、例えば、楽曲重視コンテンツのレッスン情報を生成すると、レッスン情報に基づいて、準備処理を実行する。CPU51は、フィギュア83の各身体部位の三次元座標をフレーム間隔時間ごとに取得する(ステップS1)。具体的に、CPU51は、レッスン情報に含まれるパートID及びパートIDに対応付けられたモーション情報を取得する。そして、CPU51は、取得したモーション情報に対応するモーションデータに基づいて、演奏パートごとに、フィギュア83の各関節のフレーム間隔時間単位の三次元座標を取得する。そして、CPU51は、取得した三次元座標に基づいて、フィギュア座標テーブルを生成する。CPU51は、ステップS1の処理を終えると、準備処理を終了させる。
運動コンテンツが運動重視コンテンツである場合について説明する。この場合、CPU51は、レッスン情報からモーション情報及びモーション情報に対応付けられた楽曲IDを取得する。そして、CPU51は、運動動作ごと又は楽曲ごとに、フィギュア83の各身体部位のフレーム間隔時間単位の三次元座標を取得する。
図5(B)は、出力端末5のCPU51のレッスン処理の処理例を示すフローチャートである。利用者41又は42は、リモコン66、キーボード61等を操作して、利用者41の年代を選択する。また、利用者41又は42は、複数の運動コンテンツの中から楽曲重視コンテンツを選択する。すると、CPU51は、各関節間部位の長さを入力するよう指示するメッセージをディスプレイ67に表示させる。例えば、CPU51は、「身長、前腕、上腕、肩、股、足の長さを入力してください」というメッセージを表示させる。利用者41は、各関節間部位の長さを入力する。次いで、CPU51は、規定の姿勢で静止するよう利用者41に指示するメッセージをディスプレイ67に表示させる。規定の姿勢は、例えば、気を付けの姿勢である。例えば、CPU51は、規定の姿勢をとったフィギュア83をディスプレイ67に表示させるとともに、「画面に表示された規定のポーズをとってください」というメッセージをディスプレイ67に表示させる。例えば、HDD7には、規定の姿勢をとったフィギュア83の各関節の三次元座標が記憶されている。メッセージの表示から所定秒経過した後、CPU51は、入力された各関節間部位の長さと、規定の姿勢をとったフィギュア83の各関節の三次元座標とに基づいて、利用者41の各関節の三次元座標の初期値を計算する。次いで、CPU51は、図5(B)に示すレッスン処理を開始する。CPU51は、選択された楽曲重視コンテンツのレッスン情報から楽曲IDを取得する。そして、CPU51は、取得した楽曲IDに対応する楽曲データに基づいて、楽曲の再生を開始する(ステップS11)。次いで、CPU51は、前回のフィギュア83の静止画の描画からフレーム間隔時間が経過したか否かを判定する(ステップS12)。このとき、CPU51は、前回の描画からフレーム間隔時間が経過していないと判定した場合には(ステップS12:NO)、ステップS12に進む。一方、CPU51は、前回の描画からフレーム間隔時間が経過したと判定した場合には(ステップS12:YES)、ステップS13に進む。
ステップS13において、CPU51は、各加速度センサASから送信されてくる加速度情報を取得する。次いで、CPU51は、取得した加速度情報と、現在からフレーム間隔時間前の利用者41の各関節の三次元座標とに基づいて、現在の利用者41の各関節の三次元座標を計算する(ステップS14)。次いで、CPU51は、選択された楽曲重視コンテンツに対応するフィギュア座標テーブルから、現在再生中の演奏パート及び現在再生中の演奏パートの再生開始からの経過時間に対応する各関節の三次元座標を取得する(ステップS15)。CPU51は、ミュージックシーケンサから出力される演奏パート開始メッセージに基づいて、現在再生中の演奏パートを特定することができる。次いで、CPU51は、関節間部位ごとに、フィギュア83の関節間部位の角度と利用者41の関節間部位の角度とのずれ量を計算する(ステップS16)。そして、CPU51は、各関節間部位のずれ量を、現在再生中の演奏パートのパートID及び現在再生中の演奏パートの再生開始からの経過時間に対応付けて、HDD7に確保されたずれ量テーブルに記憶させる。
次いで、CPU51は、フィギュア83の静止画を描画する(ステップS17)。具体的に、CPU51は、フィギュア座標テーブルから取得した各関節の三次元座標に基づいて、フィギュア83の静止画を描画する。そして、CPU51は、描画した静止画をディスプレイ67に表示させる。次いで、CPU51は、レッスンが終了したか否かを判定する(ステップS18)。例えば、CPU51は、ミュージックシーケンサから終了メッセージを受信した場合に、レッスンが終了したと判定する。CPU51は、レッスンが終了していないと判定した場合には(ステップS18:NO)、ステップS12に進む。一方、CPU51は、レッスンが終了したと判定した場合には(ステップS18:YES)、レッスン処理を終了させる。
運動コンテンツが運動重視コンテンツである場合について説明する。この場合、ステップS11において、CPU51は、レッスン情報から、1番目に行われる運動動作のモーション情報及びモーション情報に対応付けられた楽曲IDを取得する。そして、CPU51は、取得した楽曲IDに対応する楽曲データに基づいて、楽曲を再生する。ステップS15において、CPU51は、選択された運動重視コンテンツに対応するフィギュア座標テーブルから、現在の運動動作及び現在の運動動作の運動動作の開始からの経過時間に対応する各関節間部位の三次元座標を取得する。ステップS16において、CPU51は、計算した各関節間部位のずれ量を、現在の運動動作のモーション情報及び現在の運動動作の運動動作の開始からの経過時間に対応付けて、HDD7に記憶させる。CPU51は、1つの運動動作についてフィギュア83の全ての静止画の描画が完了した場合には、次に行われる運動動作のモーション情報及びモーション情報に対応付けられた楽曲IDをレッスン情報から取得する。そして、CPU51は、取得した楽曲IDに対応する楽曲データに基づいて、楽曲を再生する。ステップS18において、CPU51は、運動レッスンを構成する全ての運動動作についてフィギュア83の静止画の描画が完了した場合には、レッスンが終了したと判定する。
図5(C)は、出力端末5のCPU51のずれ算出処理の処理例を示すフローチャートである。レッスン処理が終了した後、CPU51は、ずれ算出処理を実行する。CPU51は、演奏パートごとに、各関節間部位についてずれ量テーブルに格納されたずれ量の単純移動平均をフレーム間隔時間単位で計算する(ステップS21)。次いで、CPU51は、演奏パートごとに、各関節間部位について単純移動平均したずれ量のうち、閾値を超えるずれ量の個数をカウントする(ステップS22)。このとき、CPU51は、閾値テーブルから、演奏パート、身体部位及び利用者41の年代に対応する閾値を取得する。そして、CPU51は、カウント値テーブルを生成する。CPU51は、ステップS22の処理を終えると、ずれ算出処理を終了させる。運動コンテンツが運動重視コンテンツである場合、CPU51は、演奏パートごとに処理を行う代わりに、楽曲又は運動動作ごとに処理を行う。
図6は、出力端末5のCPU51のレッスン終了後処理の処理例を示すフローチャートである。ずれ算出処理が終了した後、CPU51は、レッスン終了後処理を実行する。CPU51は、ずれ算出処理で生成されたカウント値テーブルに基づいて、関節間部位と演奏パートとの組み合わせごとの点数を計算する。そして、CPU51は、計算した点数に基づいて、レッスン結果画面をディスプレイ67に表示させる(ステップS31)。次いで、CPU51は、最も点数が低い演奏パート及び関節間部位の組み合わせと、全演奏パートの平均点が最も低い関節間部位と、全関節間部位の平均点が最も低い演奏パートとを特定する。そして、CPU51は、レッスン結果画面内の結果表110において、特定した組み合わせ、関節間部位及び演奏パートに対応するセルを強調表示させる(ステップS32)。
次いで、CPU51は、利用者41が開始ボタン120及び戻るボタン130のうち何れかのボタンを選択したか否かを判定する(ステップS33)。このとき、CPU51は、ボタンが選択されていないと判定した場合には(ステップS33:NO)、ステップS33に進む。一方、CPU51は、ボタンが選択されたと判定した場合には(ステップS33:YES)、ステップS34に進む。ステップS34において、CPU51は、開始ボタンが選択されたか否かを判定する。このとき、CPU51は、開始ボタンが選択されていないと判定した場合には(ステップS34:NO)、レッスン終了後処理を終了させる。一方、CPU51は、開始ボタンが選択されたと判定した場合には(ステップS34:YES)、ステップS35に進む。
ステップS35において、CPU51は、結果表110から選択されたセルの位置に基づいて、利用者41が選択した演奏パート及び関節間部位を特定する。そして、CPU51は、楽曲を構成する全演奏パートのうち特定の演奏パートのみが選択されたか否かを判定する。つまり、CPU51は、結果表110から演奏パートを表示する見出しのセルが選択されたか否かを判定する。このとき、CPU51は、特定の演奏パートのみが選択されていないと判定した場合には(ステップS35:NO)、ステップS37に進む。一方、CPU51は、特定の演奏パートのみが選択されたと判定した場合には(ステップS35:YES)、ステップS36に進む。特定の演奏パートのみが選択された場合、CPU51は、特定の演奏パートについて、全関節間部位が選択されたと判定する。ステップS36において、CPU51は、利用者41の選択に基づいて、全関節間部位のうち点数が所定値以上である関節間部位を、選択対象から除外する。具体的に、CPU51は、全関節間部位のうち、選択された演奏パートの点数が所定値以上である関節間部位があるか否かを判定する。このとき、CPU51は、点数が所定値以上である関節間部位がある場合には、選択除外確認画面をディスプレイ67に表示させる。選択除外確認画面には、点数が所定値以上である関節間部位の名前が表示される。また、選択除外確認画面には、点数が所定値以上である関節間部位の練習を省略するか否かを確認するメッセージが表示される。選択除外確認画面において、利用者41が、点数が所定値以上である関節間部位の練習を省略することを選択すると、CPU51は、点数が所定値以上である関節間部位を選択対象から除外する。CPU51は、ステップS36の処理を終えると、ステップS39に進む。
ステップS37において、CPU51は、全関節間部位のうち特定の関節間部位のみが選択されたか否かを判定する。つまり、CPU51は、結果表110から関節間部位を表示する見出しのセルが選択されたか否かを判定する。このとき、CPU51は、特定の関節間部位のみが選択されていないと判定した場合には(ステップS37:NO)、ステップS39に進む。一方、CPU51は、特定の関節間部位のみが選択されたと判定した場合には(ステップS37:YES)、ステップS38に進む。特定の関節間部位のみが選択された場合、CPU51は、特定の関節間部位について、運動レッスンを構成する全運動動作が選択されたと判定する。ステップS38において、CPU51は、利用者41の選択に基づいて、全運動動作のうち点数が所定値以上である運動動作を、選択対象から除外する。ステップS38の基本的な処理は、ステップS36と同様である。次いで、CPU51は、ステップS39に進む。
ステップS39において、CPU51は、利用者41により選択された演奏パートをスピーカ64により出力させ、選択された演奏パートに割り当てられた運動動作の運動映像をディスプレイ67に表示させる。具体的に、CPU51は、レッスン情報から楽曲IDを取得する。そして、CPU51は、取得した楽曲IDに対応する楽曲データに基づいて、利用者41に選択された演奏パートの音声信号を、音声出力部63からスピーカ64へ出力させる。また、CPU51は、フィギュア座標テーブルから、利用者41に選択された演奏パートに対応する各関節の身体部位の三次元座標を取得する。CPU51は、取得した三次元座標に基づいて、選択された演奏パートに割り当てられた運動動作の運動映像の静止画像を順次生成する。このとき、CPU51は、利用者41に選択された関節間部位が強調表示されるように、静止画像を生成する。そして、CPU51は、生成した静止画像の映像信号を、順次表示制御部56からディスプレイ67へ出力させる。利用者41が複数の演奏パートを選択した場合、CPU51は、演奏パートごとに、演奏パートの出力及び運動映像の表示を制御する。CPU51は、ステップS39の処理を終えると、レッスン終了後処理を終了させる。
運動コンテンツが運動重視コンテンツである場合について説明する。この場合、ステップS31〜S38において、CPU51は、演奏パートごとに処理を行う代わりに、楽曲又は運動動作ごとに処理を行う。ステップS39において、CPU51は、利用者41により選択された運動動作に割り当てられた楽曲又は利用者41により選択された楽曲をスピーカ64により出力させる。また、CPU51は、選択された運動動作の運動映像又は選択された楽曲が割り当てられた運動動作の運動映像をディスプレイ67に表示させる。運動動作が選択された場合、CPU51は、選択された運動動作のモーション情報に対応する楽曲IDをレッスン情報から取得する。そして、CPU51は、取得した楽曲IDに対応する楽曲データをHDD7から取得する。楽曲が選択された場合、CPU51は、選択された楽曲の楽曲データをHDD7から取得する。CPU51は、取得した楽曲IDに対応する楽曲データに基づいて、利用者41に選択された楽曲の音声信号を、音声出力部63からスピーカ64へ出力させる。運動動作が選択された場合、CPU51は、選択された運動動作のモーション情報に対応する各関節の身体部位の三次元座標をフィギュア座標テーブルから取得する。楽曲が選択された場合、CPU51は、選択された楽曲の楽曲IDに対応するモーション情報をレッスン情報から取得する。そして、CPU51は、取得したモーション情報に対応する各関節の身体部位の三次元座標をフィギュア座標テーブルから取得する。CPU51は、取得した三次元座標に基づいて、運動映像の静止画像を順次生成する。このとき、CPU51は、利用者41に選択された関節間部位が強調表示されるように、静止画像を生成する。そして、CPU51は、生成した静止画像の映像信号を、順次表示制御部56からディスプレイ67へ出力させる。
以上説明したように、本実施形態によれば、複数の運動動作を示すリスト情報を記憶する記憶手段と、CPU51が、モーションデータに基づいて、フィギュア83の複数の関節間部位の三次元仮想空間における角度を示す関節の三次元座標報を、レッスン情報が示す複数の運動動作に含まれる運動動作ごとに取得する。CPU51が、レッスン情報が示す複数の運動動作をフィギュア83が行う運動映像をディスプレイ67に表示させる。CPU51が、加速度センサASにより検出された加速度に基づいて、利用者41の複数の関節間部位の三次元空間における角度を示す関節の三次元座標を運動動作ごとに取得する。CPU51が、フィギュア83の関節の三次元座標と、利用者41の関節の三次元座標とに基づいて、フィギュア83の関節間部位と利用者41の関節間部位との角度のずれを、運動動作ごとに複数の関節間部位のそれぞれについて特定する。そして、CPU51がずれの特定結果をディスプレイ67に表示させる。従って、どの運動動作におけるどの身体部位の運動が苦手であるかをユーザが把握することができる。
なお、出力端末5は、運動レッスンの結果、角度のずれが多い関節間部位の動きが大きい運動動作を、利用者41に勧める運動動作として提示してもよい。利用者41が苦手な関節間部位の動きが大きな運動動作を行うことで、苦手な関節間部位の運動が上達することを期待することができる。関節間部位の動きが大きい運動動作は、関節間部位の角度の変化量が大きい運動動作である。例えば、出力端末5は、フィギュア座標テーブルを生成すると、フィギュア座標テーブルに基づいて、運動動作ごとに、複数の関節間部位のフレーム間隔時間単位の角度の変化量を計算する。具体的、出力端末5は、時間Ti−1の関節間部位に対する時間Tiの関節間部位の角度を、角度の変化量として計算する。出力端末5は、時間T1から時間Tnのそれぞれについて、角度の変化量を計算する。楽曲重視コンテンツの場合、出力端末5は、演奏パートごとに計算を行う。運動重視コンテンツの場合、出力端末5は、楽曲ごと又は運動動作ごとに計算を行う。そして、出力端末5は、計算した角度の変化量を格納したフィギュア角度テーブルを生成する。
運動レッスンが終了した後、出力端末5は、例えば、角度のずれが最も多い関節間部位を特定する。角度のずれが最も多い関節間部位を、苦手部位という。例えば、出力端末5は、カウント値テーブルに基づいて、関節間部位ごとに、カウント値の合計値を計算する。そして、出力端末5は、合計値が最も大きい関節間部位を、苦手部位とする。出力端末5は、苦手部位の動きが大きい運動動作を勧める画面をディスプレイ67に表示させる。
楽曲重視コンテンツの場合、出力端末5は、各運動コンテンツに対応するフィギュア角度テーブルに格納された角度の変化量に基づいて、苦手部位の角度の変化量の平均値を運動コンテンツごとに計算する。また、出力端末5は、各運動コンテンツについて、苦手部位の角度の変化量の平均値を演奏パート単位で計算する。出力端末5は、計算した平均値に基づいて、運動コンテンツごと及び演奏パートごとに、点数を計算する。このとき、出力端末5は、角度の変化量の平均値が大きいほど、点数を高くする。出力端末5は、複数の運動コンテンツの中から、点数が高い順に所定数の運動コンテンツを選択する。そして、出力端末5は、楽曲選択画面をディスプレイ67に表示させる。図7(A)は、楽曲選択画面の表示例を示す図である。図7(A)に示すように、楽曲選択画面には、楽曲一覧310、開始ボタン330及び戻るボタン340が表示される。楽曲一覧310には、出力端末5により選択された運動コンテンツに対応する楽曲及び選択された運動コンテンツの点数の一覧が表示される。運動コンテンツに対応する楽曲は、レッスン情報に含まれる楽曲IDが示す楽曲である。点数が最も高い楽曲の楽曲名及び点数は強調表示される。楽曲一覧310から利用者41が何れかの楽曲を選択すると、楽曲選択画面には、演奏パート一覧320が表示される。演奏パート一覧320には、利用者41により選択された楽曲を構成する演奏パート及び点数の一覧が表示される。点数が最も高い演奏パート及び点数は強調表示される。
開始ボタン330は、運動レッスンを行うためのボタンである。戻るボタン130は、運動レッスンをやめるためのボタンである。利用者41が楽曲のみを選択した後、開始ボタン330を選択したとする。この場合、出力端末5は、選択された楽曲に対応する運動コンテンツを再生する。利用者41が楽曲及び演奏パートを選択した後、開始ボタン330を選択したとする。この場合、出力端末5は、選択された楽曲に対応する運動コンテンツのうち、選択された演奏パートと、選択された演奏パートに割り当てられた運動動作の運動映像とを再生する。利用者41は、強調表示された楽曲や演奏パートを選択することにより、運動が苦手な関節間部位の動きが大きい運動を行うことができる。
運動重視コンテンツの場合、出力端末5は、各運動コンテンツに対応するフィギュア角度テーブルに格納された角度の変化量に基づいて、苦手部位の角度の変化量の平均値を運動動作ごとに計算する。出力端末5は、計算した平均値に基づいて、運動動作ごとの点数を計算する。出力端末5は、複数の運動動作の中から、点数が高い順に所定数の運動動作を選択する。そして、出力端末5は、運動選択画面をディスプレイ67に表示させる。図7(B)は、運動選択画面の表示例を示す図である。図7(B)に示すように、運動選択画面には、運動一覧410、開始ボタン330及び戻るボタン340が表示される。運動一覧410には、出力端末5により選択された運動動作及び選択された運動動作の点数の一覧が表示される。点数が最も高い運動動作の名前及び点数は強調表示される。運動一覧410から利用者41が運動動作を選択した後、開始ボタン330を選択したとする。この場合、出力端末5は、選択された運動動作を構成要素とする運動レッスンに対応する運動コンテンツのうち、選択された運動動作の運動映像と、選択された運動動作に割り当てられた楽曲とを再生する。
また、上記実施形態においては、本発明の情報処理装置が出力端末5に適用されていた。しかしながら、本発明の情報処理装置が配信サーバ2に適用されてもよい。例えば、配信サーバ2は、レッスン情報に基づいて、演奏パートごとの音声データと、運動動作ごとの運動映像の動画データとを予め生成してもよい。運動レッスンが行われるとき、配信サーバ2は、音声データ及び動画データを、例えばストリーミング方式で出力端末5に送信する。これにより、配信サーバ2は、出力端末5により楽曲を出力させ、且つ、運動映像を表示させる。また、本発明の情報処理装置が出力端末5及び配信サーバ2に適用されてもよい。そして、出力端末5及び配信サーバ2は協働して処理を行ってもよい。