以下、本発明の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、運動を支援するための運動コンテンツを生成する運動コンテンツ生成システムに本発明を適用した場合の実施形態である。運動コンテンツは、運動を支援するための映像及び音声を含む。
[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は、例えばパーソナルコンピュータであってもよい。出力端末5は、例えば、カラオケ装置であっても良い。以下では、施設4がスポーツ施設である場合を例にして説明する。
出力端末5は、モニタ57と接続可能である。モニタ57は、複数のスピーカ64とディスプレイ67とを備える表示装置であってもよい。この場合、出力端末5は、ディスプレイ67と接続可能である。ディスプレイ67は、本発明の表示手段の一例である。また、出力端末5は、スピーカ64と接続可能である。スピーカ64は、本発明の出力手段の一例である。出力端末5がモニタ57へ音声信号を出力することにより、スピーカ64により楽曲等が出力される。出力端末5がモニタ57へ映像信号を出力することにより、ディスプレイ67に運動映像等が表示される。運動映像は、動作を行うフィギュア83を映し出した動画である。フィギュア83は、例えば、人、動物、仮想上の生き物、ロボット等のかたちをした仮想物である。フィギュア83は、三次元仮想空間に配置される。運動映像は、本発明における映像の一例である。出力端末5は、スピーカ64から出力される楽曲と、ディスプレイ67に表示されるフィギュア83の動きとが同期するように、信号を出力する。楽曲と運動映像とを出力することは、運動コンテンツを出力することの一例である。利用者41は、楽曲を聴きながら、ディスプレイ67に表示されるフィギュア83を見て、運動を行うことができる。操作者42は、リモコン66等を用いて出力端末5を操作することができる。利用者41と操作者42とは同一人物であってもよい。施設4がスポーツ施設である場合、操作者42は、例えば、インストラクターであってもよい。
[2.運動レッスンを構成する運動動作及び楽曲の決定]
運動レッスンは1以上の運動動作と1以上の楽曲により構成される。なお、以降では、運動レッスンが複数の運動動作と複数の楽曲により構成される場合を例として説明する。運動動作は、例えば、身体を鍛えるための動作である。運動動作として、例えば、体操の動作と踊りの動作とがある。体操は、例えば、健康の増進、体力の増強、筋力の強化等のために行われる運動である。体操の種類として、例えば、有酸素運動、無酸素運動、ストレッチ等がある。踊りの動作は、楽曲に合わせて踊るために楽曲に対して振り付けられた動作である。運動レッスンを構成する複数の運動動作と複数の楽曲とは対応付けられている。出力端末5は、運動レッスンを構成する複数の運動動作が行われる運動映像を、運動動作の実行順に従ってディスプレイ67に表示させる。或る運動動作の運動映像が表示されているとき、出力端末5は、その運動動作に対応付けられた楽曲をスピーカ64により出力させる。
運動映像を表示するためには、モーションデータが必要である。モーションデータは、三次元仮想空間におけるフィギュア83の運動動作を定義するデータである。また、モーションデータは、ディスプレイ67に表示されるフィギュア83に運動動作をさせるためのデータである。モーションデータは、運動動作の進行に応じたフィギュア83の身体の各部の座標を含む。具体的には、モーションデータには、時系列に沿って、運動動作の進行に応じたフィギュア83の身体部位の座標が含まれる。時系列に沿って、フィギュア83の身体部位が、モーションデータに従って表示されることで、所定の運動動作を実行するフィギュア83の映像が、ディスプレイ67に表示される。データベース3には、モーションデータが運動動作ごとに登録される。例えば、モーションデータ、モーションID、及び運動テンポが対応付けてデータベース3に登録される。モーションIDは、運動動作を識別可能な識別情報である。モーションIDは、本発明の運動識別情報の一例である。運動テンポは、モーションIDが示す運動動作を実行するときに適した動作速度を示す。利用者41が運動テンポに従って運動動作を行うことにより、効果的な運動を行うことができる。運動テンポは、本発明の第1速度情報の一例である。本実施形態において、出力端末5は、運動映像としてフィギュア83の三次元画像をディスプレイ67に表示させる。しかしながら、出力端末5は、例えばフィギュア83の二次元画像を表示させてもよい。
楽曲データは、スピーカ64により楽曲を出力するための演奏データである。楽曲データは、例えば、MIDI(Musical Instrument Digital Interface)形式のデータであってもよい。ハードディスク3には、楽曲データが楽曲ごとに登録される。例えば、楽曲データ、楽曲ID、及び原曲テンポが対応付けてデータベース3に登録される。楽曲IDは、楽曲を識別可能な識別情報である。楽曲IDは、本発明の楽曲識別情報の一例である。原曲テンポは、楽曲IDが示す楽曲の原曲のテンポである。すなわち、原曲テンポは、原曲の再生速度を示す。原曲テンポは、本発明の第2速度情報の一例である。
運動レッスンを構成する1以上の運動動作を、コリオグラフィーという。以降では、コリオグラフィーを、コリオという。例えば、運動コンテンツ生成システム1の管理者やインストラクター等が、コリオを構成する運動動作を設定する。運動レッスンが開始されるとき、利用者41は、複数のコリオの中から、運動レッスンで行うコリオを指定することができる。また、利用者41は、コリオを構成する運動動作に対応付ける楽曲を指定することができる。
例えば、出力端末5が備えるHDD7には、コリオテーブルが記憶される。コリオテーブルは、コリオを構成する複数の運動動作をコリオごとに定義するテーブルである。図2(A)は、コリオテーブルの構成例を示す図である。図2(A)に示すように、コリオテーブルには、コリオID、複数の実行順、複数のモーションID、複数の運動テンポ、及びテンポ型が対応付けて登録される。コリオIDは、コリオを識別可能な識別情報である。モーションIDは、コリオを構成する運動動作を示す。実行順は、コリオを構成する複数の運動動作の中で、実行順に対応付けられたモーションIDが示す運動動作が実行される順番を示す。運動テンポは、運動テンポに対応するモーションIDが示す運動動作を実行するときに適した動作速度を示す。テンポ型は、コリオを構成する複数の運動動作がその実行順で実行されるときに運動テンポがどのように変化するかの基準を示す。例えば、テンポ型は、複数の運動動作の運動テンポを実行順に表したグラフの形状の特徴を示す。テンポ型として、例えば、線形上昇型、線形降下型、凹型、凸型等があってもよい。線形上昇型の場合、実行順に沿って運動テンポが上昇する。線形下降型の場合、実行順に沿って運動テンポが下降する。凹型の場合、実行順に沿って運動テンポが一度下降した後に上昇する。凸型の場合、実行順に沿って運動テンポが一度上昇した後に下降する。線形上昇型、線形降下型、凹型、凸型などの特定の型に分類することができない場合、未分類型に分類される。
コリオ及び楽曲が指定されると、出力端末5は、再生用ファイルを生成する。再生用ファイルは、運動コンテンツを再生するために用いられるファイルである。また、再生用ファイルは、運動レッスンを構成する複数の運動動作のモーションIDと複数の楽曲の楽曲IDとを対応付けたリストである。具体的に、再生用ファイルには、例えば、実行順、モーションID、楽曲ID及び再生テンポが、対応付けられた運動動作と楽曲の組み合わせごとに登録される。実行順は、モーションIDが示す運動動作が実行される順番を示すとともに、楽曲IDが示す楽曲の再生順を示す。再生テンポは、モーションIDが示す運動動作の運動映像の再生速度及び楽曲IDが示す楽曲の再生速度を示す。すなわち、出力端末5は、再生テンポに従って運動動作が行われる運動映像を表示させ、且つ、再生テンポに従って楽曲を出力させる。再生用ファイルは、本発明のリストの一例である。なお、再生用ファイルにおいて、1つのモーションIDと複数の楽曲IDとが対応付けられてもよいし、複数のモーションIDと1つの楽曲IDとが対応付けられてもよい。
また、運動レッスンは、1又は複数の運動動作と1又は複数の楽曲により構成されればよい。従って、コンテンツテーブルには、1つのコリオIDに対して1つのモーションIDのみが記憶されてもよいし、1つのコリオIDに対して複数のモーションIDが記憶されてもよい。また、再生用ファイルには、1又は複数のモーションIDと1又は複数の楽曲IDとが含まれればよい。
[3.モードに応じたテンポの決定]
運動レッスンにおいて、出力端末5が、再生テンポとして、運動動作の運動テンポに従って楽曲をスピーカ64に出力させ、運動テンポに従ってその運動動作の運動映像をディスプレイ67に出力させたとする。これにより、利用者41は、運動動作に適したテンポで運動を行うことになるので、効果的に運動することができる。この場合、楽曲のテンポが原曲のテンポから変更されるので、楽曲が編曲されることになる。しかしながら、利用者41は、運動に合わせて楽曲を聴きたい場合もあれば、運動よりも楽曲を編曲しないで聴きたい場合もある。そこで、出力端末5は、運動レッスンが行われるときに楽曲が出力されるモードとして、運動モードと原曲モードとの何れかの指定を受け付ける。運動モードは、運動動作に合わせて楽曲が出力されるモードである。原曲モードは、原曲に合わせて楽曲が出力されるモードである。出力端末5は、指定されたモードに応じて、各楽曲の再生テンポを決定する。
運動モードが指定された場合、出力端末5は、運動動作の運動テンポを、運動動作に対応付けられた楽曲の再生テンポに決定する。具体的に、出力端末5は、コリオテーブルから、利用者41が指定したコリオのコリオIDに対応付けられた1又は複数のモーションIDを全て取得するとともに、取得したモーションIDに対応する運動テンポをコリオテーブルから取得する。出力端末5は、取得した運動テンポを再生テンポに決定する。また、出力端末5は、HDD7に記憶されている楽曲IDの中から、利用者41が指定した楽曲の楽曲IDを取得する。そして、出力端末5は、取得したモーションID、運動テンポ及び楽曲IDを含む再生用ファイルを生成する。この場合、出力端末5は、運動テンポに従って楽曲を出力させ、運動テンポに従って運動映像を表示させる。これにより、利用者41は、効果的な運動を行うことができる。なお、出力端末5は、例えば運動テンポに従って楽曲を出力させる一方で、運動映像は表示させなくてもよい。
原曲モードが指定された場合、出力端末5は、楽曲の原曲テンポをその楽曲の再生テンポに決定する。具体的に、出力端末5は、コリオテーブルから、利用者41が指定したコリオのコリオIDに対応付けられた1又は複数のモーションIDを全て取得する。また、出力端末5は、HDD7に記憶されている楽曲IDの中から、利用者41が指定した楽曲の楽曲IDを取得する。また、出力端末5は、取得した楽曲IDごとに、楽曲IDに対応付けられた原曲テンポをHDD7から取得する。出力端末5は、取得した原曲テンポを再生テンポに決定する。そして、出力端末5は、取得したモーションID、楽曲ID、及び原曲IDを含む再生用ファイルを生成する。この場合、出力端末5は、原曲テンポに従って楽曲を出力させ、原曲テンポに従って運動映像を表示させる。これにより、利用者41は、原曲のテンポで楽曲を聴きながら運動を行うことができる。このようにして、出力端末5は、利用者41の意図に応じた適切な運動コンテンツを出力することができる。なお、出力端末5は、例えば原曲テンポに従って楽曲を出力させる一方で、運動映像は表示させなくてもよい。
以下に具体例を示す。図2(B)は、利用者41が指定したコリオを構成する複数の運動動作の情報を示す図である。図2(B)に示すように、指定されたコリオは、運動動作M1〜M6の6個の運動動作で構成されている。運動動作M1〜M6の順に、運動動作が実行される。図2(C)は、利用者41が指定した複数の楽曲の情報を示す図である。図2(C)に示すように、楽曲A〜Fの6曲が指定されている。ここでは、楽曲A〜Fが運動動作M1〜M6にそれぞれ対応付けられるとする。
図2(D)は、運動モードが指定された場合の再生用ファイルの内容の一例を示す図である。運動モードが指定された場合、図2(D)に示すように、再生用ファイルには、再生テンポとして、運動テンポが登録される。例えば、運動動作M1に対応付けられる楽曲Aの再生テンポとして、運動動作M1の運動テンポである120BPMが登録される。
出力端末5は、運動テンポと原曲テンポの中間の値を、再生テンポに決定してもよい。これにより、中間のテンポに従って楽曲が出力されるので、利用者41は、運動を行いつつ楽曲も楽しむことができる。例えば、出力端末5は、運動テンポと原曲テンポの平均値を、再生テンポに決定してもよい。
図2(E)は、運動モードが指定された場合の再生用ファイルの内容の他の例を示す図である。楽曲Aのテンポは、118BPMである。従って、図2(E)に示すように、楽曲Aの再生テンポとして、運動動作M1の運動テンポと楽曲Aの原曲テンポの平均値である119BPMが登録される。
図2(F)は、原曲モードが指定された場合の再生用ファイルの内容の一例を示す図である。原曲モードが指定された場合、図2(F)に示すように、再生用ファイルには、再生テンポとして、原曲テンポが登録される。例えば、楽曲Aの再生テンポとして、楽曲Aの原曲テンポである118BPMが登録される。
原曲モードの場合、運動動作に対応付けられる楽曲によって、その運動動作を行うテンポが変化する。そのため、利用者41が運動の効果を得にくい場合がある。そこで、出力端末5は、運動レッスンを構成する複数の運動動作の実行順に基づいて、各運動動作の運動レベルを決定してもよい。運動レベルは、運動動作をするときに身体にかかる負荷の大きさ、又は運動動作の難易度を示す。身体にかかる負荷を運動負荷という。運動レベルが高くなるほど、運動負荷が大きくなり、又は難易度が高くなる。運動コンテンツを再生するとき、出力端末5は、決定した運動レベルの運動動作が行われる運動映像をディスプレイ67に表示させる。これにより、楽曲を編曲しなくても、運動の効果を高めることができる。この場合、モーションデータは、例えば運動レベルごとにデータベース3に登録される。例えば、モーションIDと運動テンポに対応付けて、複数の運動レベル及び複数のモーションデータが登録される。この場合のモーションデータは、モーションIDが示す運動動作が運動テンポに従って行われるとき、対応付けられた運動レベルで運動動作が行われる運動映像を表示するためのデータである。
例えば、出力端末5は、複数の運動動作の実行順に沿って運動レベルが次第に上昇するように、各運動動作の運動レベルを決定してもよい。或いは、出力端末5は、例えば、複数の運動動作の実行順に沿って運動レベルが次第に上昇し、最後の運動動作で運動レベルが下降するように、各運動動作の運動レベルを決定してもよい。また、運動動作の実行順に沿って運動レベルがどのように変化するかが予め定められてもよい。例えば、データベース3には、運動レベルテーブルが登録されていてもよい。例えば、運動レベルテーブルには、運度動作の実行順と運動レベルとが複数対応付けて格納されている。例えば、動作数ごとに運動レベルテーブルが登録されてもよい。動作数は、運動レッスンを構成する運動動作の総数である。出力端末5は、運動レッスンを構成する運動動作の総数に対応する運動レベルテーブルに従って、各運動動作の運動レベルを決定する。再生用ファイルを生成するとき、出力端末5は、決定した運動レベルを再生用ファイルに登録する。
図2(G)は、原曲モードが指定された場合の再生用ファイルの内容の他の例を示す図である。例えば、図2(G)に示すように、運動動作M1〜M6に対して運動レベル1〜6がそれぞれ対応付けられてもよい。
出力端末5が決定した運動レベルに対応するモーションデータを用いて出力端末5が運動映像を表示させる場合であっても、原曲テンポに従って運動映像が表示される。従って、利用者41は原曲テンポに従って運動動作を行うことになる。テンポが速くなるほど、運動負荷又は難易度が高くなる傾向がある。そのため、原曲テンポによっては、決定した運動レベルが示す運動負荷又は難易度とは異なる運動負荷又は難易度で利用者41が実際には運動を行うことになる場合がある。そこで、出力端末5は、例えば再生順が隣り合う楽曲の原曲テンポの差に基づいて、運動レベルを決定してもよい。例えば、出力端末5は、原曲テンポの差に基づいて、運動レベルの上昇量又は下降量を決定してもよい。例えば、運動動作の実行順に沿って、実際の運動負荷又は難易度が上昇するように運動レベルを決定するとする。出力端末5は、例えば運動動作の実行順と同じ順に、運動動作の運動レベルを決定する。例えば、出力端末5は、実行順が1番目の運動動作に対して、予め設定された運動レベルを決定する。次いで、出力端末5は、再生順が2番目の原曲テンポから再生順が1番目の楽曲の原曲テンポを引いて差Dを計算する。例えば、−α<差D≦αであるとする。αは、予め定められた正の値である。この場合、出力端末5は、運動レベルの上昇量を例えば1に決定する。実行順が1番目の運動動作の運動レベルがレベル3である場合、出力端末5は、2番目の運動動作の運動レベルをレベル4に決定する。差Dが−α以下である場合、出力端末5は、差Dの絶対値が大きいほど、運動レベルの上昇量を大きくする。また、α<差D≦2αである場合、出力端末5は、運動レベルの上昇量を例えば0に決定する。従って、1番目の運動動作の運動レベルがレベル3である場合、出力端末5は、2番目の運動動作の運動レベルをレベル3に決定する。差Dが2α<差D≦3αである場合、出力端末5は、運動レベルの下降量を例えば1に決定する。従って、1番目の運動動作の運動レベルがレベル3である場合、出力端末5は、2番目の運動動作の運動レベルをレベル2に決定する。出力端末5は、差Dが大きくなるほど、運動レベルの下降量を大きくする。出力端末5は、3番目以降の運動動作の運動レベルについても同様に決定する。
出力端末5は、運動モード又は原曲モードに応じて、例えば楽曲の再生方法を変えてもよい。例えば、運動モードが指定された場合、出力端末5は、例えば楽曲の原曲を構成する複数の演奏パートのうちサビ部分から出力させてもよい。最も盛り上がる演奏パートで楽曲の出力が開始されるので、利用者41の気分が高揚して利用者41が活発に運動を行うことができる。この場合、出力端末5は、例えばサビ、Aメロ、Bメロなどの順序で演奏パートを出力させてもよい。また例えば、出力端末5は、サビ部分のみを繰り返し出力させてもよい。原曲モードが指定された場合、出力端末5は、例えば原曲を構成する複数の演奏パートの構成順に従って演奏パートを出力させてもよい。例えば、出力端末5は、前奏、Aメロ、Bメロ、サビ、間奏、Aメロ、Bメロ、サビ、後奏などの順序で演奏パートを出力させてもよい。これにより、利用者41は、楽曲を楽しみながら運動を行うことができる。
また、原曲モードが指定された場合に、出力端末5は、楽曲の歌詞をディスプレイ67に表示させ、又は楽曲のガイドボーカルをスピーカ64により出力させてもよい。これにより、利用者41は、歌唱しながら運動を行うことができる。一方、運動モードが指定された場合、出力端末5は、歌詞を表示させず、且つガイドボーカルを出力させなくてもよい。これにより、利用者は、運動に集中することができる。
[4.原曲モードの場合の楽曲の入れ替え]
原曲モードの場合、指定されて楽曲の原曲テンポに合わせて、利用者41は運動動作を行うことになる。そのため、運動動作ごとにテンポがばらばらとなってしまい、運動レッスンが適切に進行しない場合がある。そこで、出力端末5は、複数の運動動作のモーションIDに対応付けられる複数の楽曲の楽曲IDの順序を入れ替えてもよい。順序が入れ替えられた後の複数の楽曲IDの順序は、複数の楽曲の最終的な再生順を示す。運動コンテンツの再生時において、出力端末5は、或る運動動作の運動映像をディスプレイ67に表示させているとき、再生順序を入れ替えた結果としてその運動動作のモーションIDに対応付けられた楽曲IDに対応する楽曲をスピーカ64により出力させる。
出力端末5は、例えば、原曲テンポが低い順に、楽曲IDの順序を入れ替えてもよい。この場合、運動コンテンツが再生されるとき、原曲テンポが低い順に楽曲が出力される。そのため、運動レッスンの進行に従って運動動作の速度が速くなっていくので、運動の効果を高めることができる。
或いは、出力端末5は、運動レッスンを構成する複数の運動動作の運動テンポと、複数の楽曲の原曲テンポに基づいて、複数の運動動作のモーションIDに対応付けられる複数の楽曲の楽曲IDの順序を入れ替えてもよい。例えば、出力端末5は、複数の楽曲の再生順に沿った原曲テンポの変化が、運動レッスンを構成する複数の運動動作の実行順に沿った運動テンポの変化と類似するように、再生順を入れ替える。これにより、原曲モードであっても運動効果を高めることができる。
上述したように、コリオテーブルには、テンポ型が格納されている。出力端末5は、例えば、原曲テンポの変化が、指定されたコリオのテンポ型が示す運動テンポの変化の基準に合致するように、楽曲IDの順序を入れ替えてもよい。また、出力端末5は、例えば未分類型以外のテンポ型と未分類型とで、楽曲の再生順を入れ替える方法を変えてもよい。
未分類型以外のテンポ型の場合、出力端末5は、例えば、運動テンポが遅い順に、指定されたコリオを構成する複数の運動動作のモーションIDの順位を決定する。また、出力端末5は、原曲テンポが遅い順に、指定された複数の楽曲の楽曲IDの順位を決定する。決定された順位をテンポ順位とする。テンポが遅いほどテンポ順位が高い。出力端末5は、楽曲IDのテンポ順位と同じテンポ順位のモーションIDを特定する。そして、出力端末5は、特定したモーションIDが示す運動動作の実行順と同じ再生順を、特定した楽曲IDが示す楽曲の再生順に決定する。
未分類型の場合、出力端末5は、例えば、複数の楽曲の楽曲IDの順序を、利用者41が指定した再生順から入れ替えて楽曲IDを並べた配列を複数生成する。この配列を、入替パターン配列という。配列の各要素には楽曲IDが格納される。例えば、出力端末5は、順列を列挙する方法と同じ方法で全ての入替パターン配列を生成してもよい。出力端末5は、生成した複数の入替パターン配列の各パターン配列について、入替パターン配列が示す複数の楽曲の再生順に沿った原曲テンポの変化と、実行順に沿った運動テンポの変化との相関を決定する。例えば、出力端末5は、下記の式により相関係数CCを計算してもよい。
上記式において、Nは動作数である。また、x
iは、実行順がi番目の運動動作の運動テンポであり、av(x)は、コリオを構成する全ての運動動作の運動テンポの平均値である。また、y
iは、再生順がi番目の楽曲の原曲テンポであり、av(y)は、指定された全ての楽曲の原曲テンポの平均値である。
出力端末5は、複数の入替パターン配列のうち、相関が所定の条件を満たす入替パターン配列を、再生順の入れ替えに用いるパターン配列に決定する。例えば、出力端末5は、相関係数の値が最も大きい入替パターン配列を決定してもよい。そして、出力端末5は、決定した入替パターン配列が示す複数の楽曲の再生順に、利用者41が指定した再生順を入れ替える。
ここで、出力端末5は、ユーザが指定した入れ替え前の再生順と、入れ替え後の再生順とで順序が一致する度合いが極力高くなるように、入れ替えを行ってもよい。再生順が一致する度合いを一致度という。例えば、一致度は、ユーザが指定した複数の楽曲の中で、再生順が隣り合う2つの楽曲の順序が一致する数を示す。図3(A)は、各入替パターン配列の一致度と相関係数の一例を示す図である。例えば、利用者41が、楽曲A〜Eを、楽曲A、B、C、D、Eの再生順で指定したとする。入替パターン配列の中で、再生順が楽曲A、B、C、D、Eの順であるパターン配列が最も一致度が高い。具体的に、このパターン配列において、楽曲Aの次に楽曲Bという再生順、楽曲Bの次に楽曲Cという再生順、楽曲Cの次に楽曲Dという再生順、及び楽曲Dの次に楽曲Eという再生順が、利用者が指定した再生順と一致する。従って、このパターン配列の一致度は4である。楽曲数がNの場合の一致度の最大値は、N−1である。再生順が楽曲E、A、B、C、Dの順であるパターン配列の一致度は次の通りとなる。すなわち、楽曲Aの次に楽曲Bという再生順、楽曲Bの次に楽曲Cという再生順、及び楽曲Cの次に楽曲Dという再生順は、利用者が指定した再生順と一致する。一方、楽曲Eの次に楽曲Aという再生順は、利用者が指定した再生順と一致しない。従って、このパターン配列の一致度は3である。
出力端末5は、一致度が高い入替パターン配列から優先して、原曲テンポの変化と運動テンポの変化との相関が所定の条件を満たす入替パターン配列を決定する。例えば、出力端末5は、一致度が高い順に、相関係数が予め設定された閾値以上である入替パターン配列があるか否かを判定する。相関係数が閾値以上である入替パターン配列がある場合、出力端末5は、相関係数が閾値以上である入替パターン配列のうち、相関係数が最も高い入替パターン配列を決定する。相関係数が閾値以上である入替パターン配列がない場合、出力端末5は、次に一致度が高い入替パターン配列の中から、相関係数が閾値以上である入替パターン配列があるか否かを判定する。例えば、閾値が0.5であるとする。例えば、図3(A)に示すように、一致度が4である入替パターン配列に対して計算された相関係数は0.45である。従って、相関係数が閾値よりも低い。そこで、出力端末5は、一致度が3である入替パターン配列のうち相関係数が0.5以上である入替パターン配列があるか否かを判定する。例えば、再生順がC、D、E、A、Bの順である入替パターン配列の相関係数は0.6であり、再生順がB、C、D、F、Aの順である入替パターン配列の相関係数は0.55である。従って、相関係数が0.5以上である入替パターン配列がある。一致度が3である入替パターン配列の中で相関係数が最も高い入替パターン配列の再生順は、C、D、E、A、Bの順である。従って、利用者41が指定した再生順は、C、D、E、A、Bの順に入れ替えられる。なお、図3(A)に示す閾値フラグは、相関係数が閾値以上であるか否かを示す。
[5.画面遷移]
図3(B)は、出力端末5がディスプレイ67に表示する画面の遷移の一例を示す図である。出力端末5の電源がONにされると、出力端末5は、モード選択画面を表示する。モード選択は、モードを指定するための画面である。モード選択画面は、例えば、運動モードボタン101及び原曲モードボタン102を含む。運動モードボタン101は、運動モードを指定するためのボタンであり、原曲モードボタン102は、原曲モードを指定するためのボタンである。本実施形態では、出力端末5は、先に運動モード又は原曲モードの指定を受け付け、その後、利用者41の指定操作に基づいて運動コンテンツを構成するコリオ及び楽曲を決定する。これにより、利用者41は、運動モードか原曲モードかに応じてコリオ及び楽曲を適切に指定することができる。なお、出力端末5は、例えば、コリオ及び楽曲の指定と同時に、又は、コリオ及び楽曲が指定された後に、利用者41から運動モード又は原曲モードの指定を受け付けてもよい。
出力端末5が運動モードボタン101の指定を受け付けると、出力端末5は、運動モード用コリオ・楽曲選択画面を表示する。運動モード用コリオ・楽曲選択画面は、運動モードの運動レッスンで行うコリオ及び再生する楽曲を利用者41が指定するための画面である。運動モード用コリオ・楽曲選択画面は、例えば、電源OFFボタン103、一覧104を含む。一覧104には、指定可能なコリオや楽曲の一覧が表示される。運動モードの場合、出力端末5は、例えば、先にコリオの一覧を表示させ、一覧の中からユーザがコリオを指定した後に、楽曲の一覧を表示させてもよい。また、出力端末5は、例えば全楽曲のうち、指定されたコリオを構成する運動動作の運動テンポと原曲テンポの差が所定値以下である楽曲のみ指定可能となるように、楽曲の一覧を表示させてもよい。その理由は、運動テンポと原曲テンポとの差を小さくするためである。
出力端末5が原曲モードボタン102の指定を受け付けると、出力端末5は、原曲モード用コリオ・楽曲選択画面を表示する。原曲モード用コリオ・楽曲選択画面は、原曲モードの運動レッスンで行うコリオ及び再生する楽曲を利用者41が指定するための画面である。原曲モード用コリオ・楽曲選択画面は、例えば、電源OFFボタン105、一覧106、再生順変更許可ボタン107、再生順変更禁止ボタン108を含む。一覧106には、指定可能なコリオや楽曲が表示される。再生順変更許可ボタン107は、楽曲の再生順が、利用者41が指定した再生順から変更されてもよいことを指定するためのボタンである。再生順変更禁止ボタン108は、楽曲の再生順を、利用者41が指定した再生順から変更させないことを指定するためのボタンである。再生順変更禁止ボタン108が選択された場合、出力端末5は、例えば、先に楽曲の一覧を表示させ、一覧の中からユーザが楽曲を指定した後に、コリオの一覧を表示させてもよい。再生順変更許可ボタン107の指定が受け付けられた場合、出力端末5は、例えば先にコリオの一覧を表示させ、一覧の中からユーザがコリオを指定した後に、楽曲の一覧を表示させてもよい。
また、出力端末5は、例えばコリオ及び楽曲の指定前に、テンポの最小値と最大値との指定を受け付けてもよい。そして、出力端末5は、全楽曲のうち、原曲テンポが、指定された最小値から最大値までの範囲内にある楽曲のみが指定可能となるように、楽曲の一覧を表示させてもよい。また、出力端末5は、全コリオのうち、例えばコリオを構成する運動動作の運動テンポが、指定された最小値から最大値までの範囲内にあるコリオのみが指定可能となるように、コリオの一覧を表示させてもよい。
出力端末5は、一覧104又は106においてコリオ及び楽曲の指定を受け付けると、出力端末5は、利用者による指定操作に基づいて、コリオを構成する複数の運動動作のモーションID及び複数のモーションIDに対応付けられる複数の楽曲IDを決定する。また、出力端末5は、運動モード又は原曲モードに応じて再生テンポを決定する。また、出力端末5は、原曲モードが指定され、且つ、再生順変更許可ボタン107の指定を受け付けた場合、複数の運動動作のモーションIDに対応付けられる複数の楽曲IDの再生順を入れ替える。一方、原曲モードが指定され、且つ、再生順変更禁止ボタン108が選択された場合、出力端末5は、複数の楽曲IDの再生順を入れ替えず、各モーションIDに対応付けられる運動レベルを決定する。モーションID及び楽曲IDを決定すると、出力端末5は、モーションID、楽曲ID、及び再生テンポを対応付けた再生用ファイルを生成する。出力端末5は、再生用ファイルに基づいて運動コンテンツを再生し、運動映像を表示させる。運動コンテンツの再生が終了すると、出力端末5は、最初にモード選択画面で指定されたモードに応じて、運動モード用コリオ・楽曲選択画面又は運動モード用コリオ・楽曲選択画面を表示する。
[6.各装置の構成]
次に、図1を参照して、運動コンテンツ生成システムに含まれる各装置の構成について説明する。
[6−1.配信サーバ2の構成]
図1に示すように、配信サーバ2は、CPU21、ROM22、RAM23、バス24、I/Oインタフェイス25、表示制御部26、ディスクドライブ28、ネットワーク通信部30及びHDD37を備える。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の制御に基づいて映像信号をモニタ27に出力する。ディスクドライブ28は、記録媒体29に対するデータの書き込み及び読み出しを行う。ネットワーク通信部30は、配信サーバ2がネットワーク10に接続するための制御を行う。HDD37には、OSや各種制御プログラム等が記憶されている。
データベース3には、楽曲データ、モーションデータ、コリオテーブル、運動レベルテーブル、歌詞データ等が登録される。歌詞データは、歌詞のテロップを表示するためのデータである。歌詞データは、例えば、歌詞のテキスト、テキストの表示タイミング等を含む。歌詞データは、歌詞が対応する楽曲の楽曲IDに対応付けて記憶される。
[6−2.出力端末5の構成]
図1に示すように、出力端末5は、CPU51、ROM52、RAM53、バス54、I/Oインタフェイス55、表示制御部56、ディスクドライブ58、ネットワーク通信部60、音声出力部63、信号受信部65、及びHDD7を備える。CPU51は、バス54を介して、ROM52、RAM53及びI/Oインタフェイス55に接続されている。CPU51は、時計機能及びタイマー機能を有する。CPU51は、ROM52やHDD7に記憶されプログラムを実行することにより、出力端末5の各部を制御する。I/Oインタフェイス55には、HDD7、表示制御部56、音声出力部63、ディスクドライブ58、ネットワーク通信部60、キーボード61、マウス62、及び信号受信部65が接続されている。表示制御部56は、CPU51の制御に基づいて映像信号をモニタ57に出力する。音声出力部63は、CPU51の制御に基づいて音声信号をモニタ57に出力する。ディスクドライブ58は、記録媒体59に対するデータの書き込み及び読み出しを行う。信号受信部65は、リモコン66から出力される信号を受信する。リモコン66は、操作者42が出力端末5を操作するためのものである。
HDD7は、本発明の第1記憶手段及び第2記憶手段の一例である。第1記憶手段及び第2記憶手段が同一の記憶デバイスであってもよいし、互いに異なる記憶デバイスであってもよい。HDD7には、配信サーバ2からダウンロードされた楽曲データ、モーションデータ、コリオテーブル、運動レベルテーブル、歌詞データ等のデータが記憶される。また、HDD7には、モード情報が記憶される。モード情報は、指定されたモードが運動モードであるか又は原曲モードであるかを示す。
HDD7には、更に、OS、運動支援プログラム、3Dエンジン、ミュージックシーケンサ等の各種プログラム等が記憶されている。運動支援プログラムは、利用者41の運動を支援するためのプログラムである。運動支援プログラムは、コンピュータとしてのCPU51に、受付ステップ、第1決定ステップ、第2決定ステップ、生成ステップ、第1制御ステップ、第2制御ステップ、第3制御ステップを少なくとも実行させる。3Dエンジンは、モーションデータに基づいて、三次元仮想空間で運動動作するフィギュア83を二次元平面に投影した画像を生成するためのプログラムである。画像を生成する処理は、射影変換、クリッピング、隠面消去、シェーディング、テクスチャマッピング等を含む。CPU51は、3Dエンジンを実行して、静止画像を順次生成する。生成された静止画像をCPU51が表示制御部56へ順次出力することで、ディスプレイ67には、運動映像が表示される。
ミュージックシーケンサは、楽曲データを再生するためのプログラムである。CPU51は、ミュージックシーケンサを実行することにより、楽曲データに対応する音声信号を生成する。また、CPU51は、ミュージックシーケンサを実行することにより、各種のイベントを発生させる。イベントとして、例えば、テンポに応じて所定時間間隔で発生するイベントがある。このイベントは、MIDIクロックや同期イベントと呼ばれる。
各種プログラムは、例えば、配信サーバ2等のサーバからネットワーク10を介してダウンロードされるようにしてもよい。また、各種プログラムは、記録媒体59に記録されてディスクドライブ58を介して読み込まれるようにしてもよい。なお、3Dエンジンやミュージックシーケンサは、プログラムではなく、専用のハードウェアであってもよい。そして、出力端末5は、ハードウェアとしての3Dエンジンやミュージックシーケンサを備えてもよい。
CPU51は、設定されたテンポに従って、楽曲データに対応する音声信号を音声出力部63へ出力させるとともに、生成した画像に対応する映像信号を表示制御部56から出力させる。CPU51は、同期イベントに基づいて、楽曲の音声信号の出力タイミングと運動映像の映像信号の出力タイミングとを同期させる。これにより、スピーカ64から出力される楽曲に同期して運動動作を行うフィギュア83がディスプレイ67に表示される。
[7.運動コンテンツ生成システム1の動作]
次に、図4乃至図8を参照して、出力端末5の動作を説明する。図4は、出力端末5のCPU51のメイン処理の一例を示すフローチャートである。例えば、出力端末5の電源がONとされると、CPU51は、モード選択画面をディスプレイ67に表示させて、メイン処理を開始する。モード選択画面において、利用者41は、リモコン66等を操作して、運動モードボタン101又は原曲モードボタン102を選択する。これにより、利用者41は、運動モード又は原曲モードを指定する。リモコン66は、指定された運動モード又は原曲モードを示す信号を出力端末5へ送信する。
CPU51は、信号受信部65を介してリモコン66からの信号を受信すると、図4に示すように、受信した信号に基づいて、運動モードの指定を受け付けたか否かを判定する(ステップS1)。このとき、CPU51は、運動モードの指定を受け付けたと判定した場合には(ステップS1:YES)、ステップS2に進む。ステップS2において、CPU51は、モード情報を運動モードに設定する。次いで、CPU51は、ステップS4に進む。一方、CPU51は、運動モードの指定を受け付けていないと判定しなかった場合、すなわち原曲モードの指定を受け付けたと判定した場合には(ステップS1:NO)、ステップS3に進む。ステップS3において、CPU51は、モード情報を原曲モードに設定する。次いで、CPU51は、ステップS4に進む。
ステップS4において、CPU51は、コリオ・楽曲選択画面をディスプレイ67に表示させる。具体的に、CPU51は、運動モードが指定された場合、運動モード用コリオ・楽曲選択画面を表示させ、原曲モードが指定された場合、原曲モード用コリオ・楽曲選択画面を表示させる。次いで、CPU51は、リモコン66から受信された信号に基づいて、コリオ・楽曲選択画面から電源OFFボタンの指定を受け付けたか否かを判定する(ステップS5)。このとき、CPU51は、電源OFFボタンの指定を受け付けていないと判定した場合には(ステップS5::NO)、ステップS6に進む。
ステップS6において、CPU51は、モード情報が運動モードに設定されているか否かを判定する。このとき、CPU51は、モード情報が運動モードに設定されていると判定した場合には(ステップS6:YES)、ステップS8に進む。一方、CPU51は、モード情報が運動モードに設定されていないと判定した場合には(ステップS6:NO)、ステップS7に進む。ステップS7において、CPU51は、利用者41による再生順変更許可ボタン107又は再生順変更許可ボタン108の選択操作に基づいて、楽曲の再生順が許可を受け付けたか否かを判定する。このとき、CPU51は、再生順変更許可ボタン107の指定を受け付けた場合には、楽曲の再生順が許可されると判定し(ステップS7:YES)、ステップS8に進む。一方、CPU51は、再生順変更許可ボタン108の指定を受け付けた場合には、楽曲の再生順が許可されないと判定し(ステップS7:NO)、ステップS10に進む。
ステップS8において、CPU51は、利用者41によるコリオの指定操作に基づいて、指定されたコリオID及び再生用ファイルに登録するモーションIDを決定する。具体的に、CPU51は、利用者41が指定したコリオのコリオIDを、コリオテーブルから決定する。次いで、CPU51は、決定したコリオIDに対応付けられた全てのモーションID及びモーションIDに対応付けられた実行順及び運動テンポを、コリオテーブルから取得する。そして、CPU51は、取得したモーションID、実行順及び運動テンポを対応付けた運動動作リストを生成して、HDD7に記憶させる。また、CPU51は、取得したモーションIDの数を数えて、動作数Nを計算する。
次いで、CPU51は、利用者41による楽曲の指定操作に基づいて、再生用ファイルに登録する楽曲IDを決定する(ステップS9)。このとき、CPU51は、決定したモーションIDの数と同数の楽曲IDを決定する。具体的に、CPU51は、利用者41が指定した楽曲に対応する楽曲IDを特定する。次いで、CPU51は、HDD7から、楽曲IDに対応付けられた原曲テンポを取得する。そして、CPU51は、取得した楽曲ID及び原曲IDと、利用者41が指定した再生順とを対応付けた利用者指定楽曲リストを生成して、HDD7に記憶させる。次いで、CPU51は、ステップS12に進む。運動動作リストと利用者指定楽曲リストは、本発明のリストの一例である。
ステップS10において、CPU51は、利用者41による楽曲の指定操作に基づいて、再生用ファイルに登録する楽曲IDを決定する。このとき、利用者41は、所望の数分の楽曲を指定することができる。従って、CPU51は、利用者41が所望する数分の楽曲IDを決定する。その他の点において、ステップS10の処理はステップS9と同様である。
次いで、CPU51は、利用者41が指定したコリオのコリオID及び再生用ファイルに登録するモーションIDを決定する(ステップS11)。このとき、CPU51は、楽曲の利用者41が指定した楽曲の数と同数の運動動作で構成されるコリオのみの一覧を、コリオ・楽曲選択画面に表示させる。従って、CPU51は、楽曲の数と同数の運動動作で構成されるコリオのコリオIDの中から、指定されたコリオIDを決定する。その他の点において、ステップS11の処理はステップS8と同様である。次いで、CPU51は、ステップS12に進む。
ステップS12において、CPU51は、モード情報が運動モードに設定されているか否かを判定する。このとき、CPU51は、モード情報が運動モードに設定されていると判定した場合には(ステップS12:YES)、ステップS13に進む。ステップS13において、CPU51は、運動モード再生用ファイル生成処理を実行する。運動モード再生用ファイル生成処理において、CPU51は、運動モード用の再生用ファイルを生成する。運動モード再生用ファイル生成処理の詳細は後述する。次いで、CPU51は、ステップS17に進む。
一方、CPU51は、モード情報が運動モードに設定されていないと判定した場合には(ステップS12:NO)、ステップS14に進む。ステップS14において、CPU51は、楽曲の再生順が許可されるか否かを判定する。このとき、CPU51は、楽曲の再生順の変更が許可されると判定した場合には(ステップS14:YES)、ステップS15に進む。ステップS15において、CPU51は、原曲モード第1再生用ファイル生成処理を実行する。原曲モード第1再生用ファイル生成処理において、CPU51は、原曲モード用の再生用ファイルとして、楽曲の再生順を入れ替えた再生用ファイルを生成する。原曲モード第1再生用ファイル生成処理の詳細は後述する。次いで、CPU51は、ステップS17に進む。
一方、CPU51は楽曲の再生順の変更が許可されないと判定した場合には(ステップS14:NO)、ステップS16に進む。ステップS16において、CPU51は、原曲モード第2再生用ファイル生成処理を実行する。原曲モード第2再生用ファイル生成処理において、CPU51は、原曲モード用の再生用ファイルとして、楽曲の再生順を入れ替えない再生用ファイルを生成する。原曲モード第2再生用ファイル生成処理の詳細は後述する。次いで、CPU51は、ステップS17に進む。
ステップS17において、CPU51は、生成された再生用ファイルをHDD7から読み込み、再生用ファイルに基づいて運動コンテンツを再生する。具体的に、CPU51は、実行順iを1に設定する。次いで、CPU51は、再生用ファイルから、実行順iに対応するモーションID、楽曲ID及び再生テンポを取得する。
再生用ファイルに運動レベルが登録されている場合、CPU51は、再生用ファイルから実行順iに対応する運動レベルを更に取得する。そして、CPU51は、取得したモーションIDに対応するモーションデータのうち、取得した運動レベルに対応するモーションデータをHDD7から取得する。一方、再生用ファイルに運動レベルが登録されていない場合、CPU51は、取得したモーションIDに対応するモーションデータのうち、例えば予め定められた運動レベルに対応するモーションデータをHDD7から取得する。例えば、CPU51は、運動レベルが1であるモーションデータを取得してもよい。
モーションデータを取得すると、CPU51は、モーションデータに基づいて、運動映像を再生させる。このとき、CPU51は、取得した再生テンポに従って、運動映像の静止画像を順次生成し、静止画像を順次表示制御部56へ順次出力する。これにより、再生テンポに従ってモーションIDに対応する運動動作が行われる運動映像がディスプレイ67に表示される。
また、CPU51は、取得した楽曲IDに対応する楽曲データをHDD7から取得する。そして、CPU51は、楽曲データに基づいて、楽曲の音声信号を音声出力部63からスピーカ64へ出力させる。このとき、CPU51は、取得した再生テンポに従って音声信号を音声出力部63に出力する。これにより、再生テンポに従って楽曲がスピーカ64から出力される。モード情報が原曲モードに設定されている場合、CPU51は、楽曲IDに対応する原曲の演奏パートの構成順に従って、楽曲を出力させる。また、CPU51は、楽曲IDに対応する歌詞データをHDD7から取得する。そして、CPU51は、歌詞データに基づいて、歌詞のテロップをディスプレイ67に表示させる。一方、モード情報が運動モードに設定されている場合、CPU51は、サビ部分から楽曲を出力させる。また、CPU51は、歌詞のテロップを表示させない。
運動映像の表示が終了すると、CPU51は、実行順iが動作数Nと一致するか否かを判定する。実行順iが動作数Nと一致しない場合、CPU51は、実行順iに1を加算する。そして、CPU51は、前述と同様に、再生用ファイルから実行順iに対応する情報を取得して、運動映像をディスプレイ67に表示させ、楽曲をスピーカ64により出力させる。一方、実行順iが動作数Nと一致する場合、CPU51は、運動コンテンツの再生を終了させる。
運動コンテンツの再生が終了すると、CPU51は、ステップS4を実行する。そして、ステップS5において、CPU51は、電源OFFボタンが選択されたと判定した場合には(ステップS5:YES)、メイン処理を終了させる。
図5(A)は、出力端末5のCPU51の運動モード再生用ファイル生成処理の一例を示すフローチャートである。図5(A)に示すように、CPU51は、実行順iを1に設定する(ステップS21)。次いで、CPU51は、HDD7に記憶された運動動作リストから実行順iに対応するモーションID及び運動テンポを取得する(ステップS22)。次いで、CPU51は、HDD7に記憶された利用者指定楽曲リストから、再生順iに対応する楽曲IDを取得する(ステップS23)。次いで、CPU51は、再生用ファイルに、実行順i、取得したモーションID、運動テンポ、及び楽曲IDを対応付けて登録する(ステップS24)。このとき、CPU51は、運動テンポを再生テンポとして登録する。次いで、CPU51は、実行順iが動作数Nと一致するか否かを判定する(ステップS25)。このとき、CPU51は、実行順iが動作数Nと一致しないと判定した場合には(ステップS25:NO)、ステップS26に進む。ステップS26において、CPU51は、実行順iに1を加算する。次いで、CPU51は、ステップS22に進む。一方、CPU51は、実行順iが動作数Nと一致すると判定した場合には(ステップS25:YES)、運動モード再生用ファイル生成処理を終了させる。
図5(B)は、出力端末5のCPU51の原曲モード第1再生用ファイル生成処理の一例を示すフローチャートである。図5(B)に示すように、CPU51は、楽曲入替処理を実行する(ステップS31)。楽曲入替処理において、CPU51は、利用者指定楽曲リストに登録された楽曲IDの再生順を入れ替えて、再生順入替楽曲リストを生成する。再生順入替楽曲リストには、楽曲ID、原曲テンポ及び入れ替え後の再生順が複数対応付けて登録される。楽曲入替処理の詳細は後述する。
次いで、CPU51は、実行順iを1に設定する(ステップS32)。次いで、CPU51は、HDD7に記憶された運動動作リストから実行順iに対応するモーションIDを取得する(ステップS33)。次いで、CPU51は、HDD7に記憶された再生順入替楽曲リストから、再生順iに対応する楽曲ID及び原曲テンポを取得する(ステップS34)。次いで、CPU51は、再生用ファイルに、実行順i、取得したモーションID、楽曲ID及び原曲テンポを対応付けて登録する(ステップS35)。このとき、CPU51は、原曲テンポを再生テンポとして登録する。次いで、CPU51は、実行順iが動作数Nと一致するか否かを判定する(ステップS36)。このとき、CPU51は、実行順iが動作数Nと一致しないと判定した場合には(ステップS36:NO)、ステップS37に進む。ステップS37において、CPU51は、実行順iに1を加算する。次いで、CPU51は、ステップS33に進む。一方、CPU51は、実行順iが動作数Nと一致すると判定した場合には(ステップS36:YES)、原曲モード第1再生用ファイル生成処理を終了させる。
図5(C)は、出力端末5のCPU51の原曲モード第2再生用ファイル生成処理の一例を示すフローチャートである。図5(C)に示すように、CPU51は、実行順iを1に設定する(ステップS41)。次いで、CPU51は、HDD7に記憶された運動動作リストから実行順iに対応するモーションIDを取得する(ステップS42)。次いで、CPU51は、運動レベルを決定する(ステップS43)。例えば、CPU51は、HDD7に記憶されている複数の運動レベルテーブルの中から、動作数Nに対応する運動レベルテーブルを特定する。そして、CPU51は、特定した運動レベルテーブルから、実行順iに対応する運動レベルを取得する。
次いで、CPU51は、HDD7に記憶された利用者指定楽曲リストから、再生順iに対応する楽曲ID及び原曲テンポを取得する(ステップS44)。次いで、CPU51は、再生用ファイルに、実行順i、取得したモーションID、楽曲ID、原曲テンポ及び運動レベルを対応付けて登録する(ステップS45)。このとき、CPU51は、原曲テンポを再生テンポとして登録する。次いで、CPU51は、実行順iが動作数Nと一致するか否かを判定する(ステップS46)。このとき、CPU51は、実行順iが動作数Nと一致しないと判定した場合には(ステップS46:NO)、ステップS47に進む。ステップS47において、CPU51は、実行順iに1を加算する。次いで、CPU51は、ステップS42に進む。一方、CPU51は、実行順iが動作数Nと一致すると判定した場合には(ステップS46:YES)、原曲モード第2再生用ファイル生成処理を終了させる。
図6は、出力端末5のCPU51の楽曲入替処理の一例を示すフローチャートである。図6に示すように、CPU51は、メイン処理で決定したコリオIDに対応するテンポ型を、コリオテーブルから取得する。そして、CPU51は、取得したテンポ型が未分類型であるか否かを判定する(ステップS51)。このとき、CPU51は、テンポ型が未分類型ではないと判定した場合には(ステップS51:NO)、ステップS52に進む。
ステップS52において、CPU51は、運動動作リストに登録されたモーションIDを、モーションIDに対応付けられた運動テンポが遅い順にソートする。そして、CPU51は、運動テンポが遅い順にモーションIDのテンポ順位を決定する。次いで、CPU51は、利用者指定楽曲リストに登録された楽曲IDを、楽曲IDに対応付けられた原曲テンポが遅い順にソートする。そして、CPU51は、原曲テンポが遅い順に楽曲IDのテンポ順位を決定する(ステップS53)。
次いで、CPU51は、実行順iを1に設定する(ステップS54)。次いで、CPU51は、運動動作リストから、実行順iに対応するモーションIDに対応するソート順位を取得する。そして、CPU51は、取得したソート順位と同じソート順位が決定された楽曲ID及び原曲テンポを利用者指定楽曲リストから取得する(ステップS55)。次いで、CPU51は、取得した楽曲ID、原曲テンポ、及び実行順iを対応付けて再生順入替楽曲リストに登録する(ステップS56)。このとき、CPU51は、実行順iを、取得した楽曲IDの再生順として登録する。
次いで、CPU51は、実行順iが動作数Nと一致するか否かを判定する(ステップS57)。このとき、CPU51は、実行順iが動作数Nと一致しないと判定した場合には(ステップS57:NO)、ステップS58に進む。ステップS58において、CPU51は、実行順iに1を加算する。次いで、CPU51は、ステップS55に進む。一方、CPU51は、実行順iが動作数Nと一致すると判定した場合には(ステップS57:YES)、楽曲入替処理を終了させる。
ステップS51において、CPU51は、テンポ型が未分類型であると判定した場合には(ステップS51:YES)、ステップS59に進む。ステップS59において、CPU51は、未分類型楽曲入替処理を実行する。未分類型楽曲入替処理において、CPU51は、相関係数に基づいて、利用者指定楽曲リストに登録された楽曲IDの再生順を入れ替える。未分類型楽曲入替処理の詳細は後述する。未分類型楽曲入替処理を終えると、CPU51は、楽曲入替処理を終了させる。
図7は、出力端末5のCPU51の未分類型楽曲入替処理の一例を示すフローチャートである。図7に示すように、CPU51は、利用者指定楽曲リストに登録された楽曲IDの再生順を入れ替えて楽曲IDを並べた入替パターン配列を、全パターン生成する(ステップS61)。次いで、CPU51は、一致度計算処理を実行する(ステップS62)。一致度計算処理において、CPU51は、各入替パターン配列と利用者指定楽曲リストに登録された楽曲IDの再生順との一致度を計算する。一致度計算処理の詳細は後述する。
次いで、CPU51は、動作数Nから1を減算して、一致度jを計算する(ステップS63)。次いで、CPU51は、生成された入替パターン配列の中から、一致度がjであるパターン配列を全て取得する(ステップS64)。次いで、CPU51は、取得した入替パターン配列のうち最初のパターン配列を選択する(ステップS65)。次いで、CPU51は、運動動作リストに登録された運動テンポの変化と、選択したパターン配列に対応する原曲テンポとの相関係数を計算する(ステップS66)。例えば、CPU51は、上述した式1を計算する。このとき、CPU51は、計算に用いる変数x1〜xn、y1〜ynを決定する。具体的に、CPU51は、変数xiとして、実行順iに対応する運動テンポを運動動作リストから取得する。また、CPU51は、変数yiとして、選択した入替パターン配列のi番目に格納されている楽曲IDに対応する原曲テンポを、利用者指定楽曲リストから取得する。
次いで、CPU51は、計算した相関係数がHDD7に予め記憶されている閾値以上であるか否かを判定する(ステップS67)。このとき、CPU51は、相関係数が閾値以上であると判定した場合には(ステップS67:YES)、ステップS68に進む。ステップS68において、CPU51は、TRUEに設定された閾値フラグを、選択した入替パターン配列に対応付けてHDD7に記憶させる。次いで、CPU51は、ステップS70に進む。一方、CPU51は、相関係数が閾値以上ではないと判定した場合には(ステップS67:NO)、ステップS69に進む。ステップS69において、CPU51は、FALSEに設定された閾値フラグを、選択した入替パターン配列に対応付けてHDD7に記憶させる。次いで、CPU51は、ステップS70に進む。
ステップS70において、CPU51は、一致度がjである入替パターン配列の中に、次に選択する入替パターン配列があるか否かを判定する。このとき、CPU51は、次の入替パターン配列があると判定した場合には(ステップS70:YES)、ステップS71に進む。ステップS71において、CPU51は、次の入替パターン配列を選択する。次いで、CPU51は、ステップS66に進む。
一方、CPU51は、次の入替パターン配列がないと判定した場合には(ステップS70:NO)、ステップS72に進む。ステップS72において、CPU51は、一致度がjである入替パターン配列のうち閾値フラグがTRUEである入替パターン配列が少なくとも1つあるか否かを判定する。このとき、CPU51は、閾値フラグがTRUEである入替パターン配列があると判定した場合には(ステップS72:YES)、ステップS73に進む。ステップS73において、CPU51は、閾値フラグがTRUEである入替パターン配列のうち、計算された相関係数の値が最も高い入替パターン配列を決定する。次いで、CPU51は、ステップS77に進む。
一方、CPU51は、閾値フラグがTRUEである入替パターン配列がないと判定した場合には(ステップS72:NO)、ステップS74に進む。ステップS74において、CPU51は、一致度jが1より大きいか否かを判定する。このとき、CPU51は、一致度jが1より大きいと判定した場合には(ステップS74:YES)、ステップS75に進む。ステップS75において、CPU51は、一致度jから1を減算する。次いで、CPU51は、ステップS64に進む。一方、CPU51は、一致度jが1より大きくはないと判定した場合には(ステップS74:NO)、ステップS76に進む。ステップS76において、CPU51は、生成した全ての入替パターン配列のうち、計算された相関係数の値が最も高い入替パターン配列を決定する。
ステップS77において、CPU51は、ステップS73又は76で決定された入替パターン配列に基づいて、再生順入替楽曲リストを生成する。具体的に、CPU51は、決定した入替パターン配列に各楽曲IDが格納されている順番を、各楽曲IDの再生順に決定する。また、CPU51は、楽曲IDに対応する原曲IDを、利用者指定楽曲リストから取得する。そして、CPU51は、楽曲IDごとに、楽曲ID、再生順及び原曲IDを再生順入替楽曲リストに登録する。ステップS77を終えると、CPU51は、未分類型楽曲入替処理を終了させる。
なお、CPU51は、ステップS73、S76において、所定数の入替パターン配列を決定してもよい。例えば、CPU51は、相関係数が高い順に各入替パターン配列の順位を決定し、決定した順位が所定順位以上である複数の入替パターン配列を決定してもよい。この場合、CPU51は、例えば入替パターン配列ごとに再生順入替楽曲リストを生成してもよい。また、CPU51は、図5(A)に示す原曲モード第1再生用ファイル生成処理において、例えば入替パターン配列ごとに再生用ファイルを生成してもよい。そして、CPU51は、例えば利用者41による再生用ファイルの選択操作等に基づいて、運動コンテンツの再生に用いる再生用ファイルを決定してもよい。
図8は、出力端末5のCPU51の一致度計算処理の一例を示すフローチャートである。図8に示すように、CPU51は、利用者指定楽曲リストから、再生順が隣り合う2つの楽曲IDを抽出する。そして、CPU51は、抽出した楽曲IDを格納した連結部分リストを生成する(ステップS81)。例えば、利用者41が楽曲A、B、C、D、Eの再生順で楽曲を指定したとする。この場合、CPU51は、楽曲A及びBの楽曲IDを格納した連結部分リスト、楽曲B及びCの楽曲IDを格納した連結部分リスト、楽曲C及びDの楽曲IDを格納した連結部分リスト、及び楽曲D及びEの楽曲IDを格納した連結部分リストを生成する。このとき、CPU51は、連結部分リストにおける楽曲IDの順序を、利用者41が指定した再生順と一致させる。
次いで、CPU51は、生成された入替パターン配列のうち最初の入替パターンを選択する(ステップS82)。次いで、CPU51は、再生順iを1に設定し、一致度Xを0に設定する(ステップS83)。次いで、CPU51は、再生順iが動作数N未満であるか否かを判定する(ステップS84)。このとき、CPU51は、再生順iが動作数N未満であると判定した場合には(ステップS84:YES)、ステップS85に進む。ステップS85において、CPU51は、選択した入替パターン配列から、i番目に格納されている楽曲IDと、i+1番目に格納されている楽曲IDを取得する。そして、CPU51は、生成した連結部分リストのうち、取得した2つの楽曲IDを、i番目の楽曲ID、i+1番目の楽曲IDの順で格納する連結部分リストがあるか否かを判定する(ステップS85)。このとき、CPU51は、連結部分リストがないと判定した場合には(ステップS85:NO)、ステップSステップS87に進む。一方、CPU51は、連結部分リストがあると判定した場合には(ステップS85:YES)、ステップSステップS86に進む。ステップS86において、CPU51は、一致度Xに1を加算する。次いで、CPU51は、ステップS87に進む。
ステップS87において、CPU51は、再生順iが動作数N−1未満であるか否かを判定する。このとき、CPU51は、再生順iが動作数N−1未満であると判定した場合には(ステップS87:YES)、ステップS88に進む。ステップS88において、CPU51は、再生順iに1を加算する。次いで、CPU51は、ステップS85に進む。一方、CPU51は、再生順iが動作数N−1未満ではないと判定した場合には(ステップS87:NO)、ステップS89に進む。ステップS89において、CPU51は、一致度Xを、選択した入替パターン配列の一致度に決定する。次いで、CPU51は、生成した入替パターン配列の中に、次に選択する入替パターン配列があるか否かを判定する(ステップS90)。このとき、CPU51は、次の入替パターン配列があると判定した場合には(ステップS90:YES)、ステップS91に進む。ステップS91において、CPU51は、次の入替パターン配列を選択する。次いで、CPU51は、ステップS83に進む。一方、CPU51は、次の入替パターン配列がないと判定した場合には(ステップS90:NO)、一致度計算処理を終了させる。
以上説明したように、本実施形態によれば、CPU51が、運動モードと原曲モードとの何れかの指定を受け付ける。また、CPU51が、モーションIDと楽曲IDとを決定し、決定されたモーションIDと楽曲IDとを対応付けた再生用ファイルを生成する。また、CPU51が決定されたモーションIDが示す運動が行われる運動映像をディスプレイ67に表示させる。原曲モードが受け付けられた場合、CPU51が、運動映像がディスプレイ67に表示されるときに、モーションIDに対応付けられた楽曲IDに対応する楽曲を、楽曲IDに対応する原曲テンポに従ってスピーカ64によりにより出力させる。一方、運動モードが受け付けられた場合、CPU51が、運動映像がディスプレイ67に表示されるときに、モーションIDに対応付けられた楽曲IDに対応する楽曲を、モーションIDに対応する運動テンポに従ってスピーカ64により出力させる。そのため、運動に合わせて楽曲を聴きたいのか、或いは運動よりも楽曲を編曲しないで聴きたいのかという意図に応じた適切な運動コンテンツを出力することができる。
[8.変形例]
上記実施形態では、原曲モードの場合には、運動レッスンを構成する複数の運動動作の実行順は変更されなかった。しかしながら、出力端末5は、予め定められた条件に基づいて、運動動作リストに登録されたモーションIDの実行順を入れ替えることにより、運動動作の実行順を変更してもよい。例えば、出力端末5は、複数の運動動作の運動テンポの変化が、複数の楽曲の再生順に沿った原曲テンポの変化に類似するように、モーションIDの実行順を入れ替えてもよい。これにより、運動レッスンの進行に従って、運動テンポと類似した態様で再生テンポが変化するので、運動レッスンを適切に進行させることができる。このとき、出力端末5は、例えば相関係数を用いてもよい。すなわち、出力端末5は、複数のモーションIDの順序を入れ替えてモーションIDを並べた入替パターン配列を複数生成する。次いで、出力端末5は、入替パターン配列が示す複数の運動動作の実行順に沿った運動テンポの変化と、再生順に沿った原曲テンポの変化との相関を決定する。そして、出力端末5は、生成した入替パターン配列のうち、相関が所定の条件を満たす入替パターン配列を決定する。このとき、出力端末5は、例えば入替前の実行順との一致度が高い入替パターン配列から優先して、相関が所定の条件を満たす入替パターン配列を決定してもよい。また、出力端末5は、一致度に関係なく、相関が所定の条件を満たす入替パターン配列を決定してもよい。
図4に示すように、出力端末5は、楽曲の再生順が許可されていない場合に、原曲モード第2再生用ファイル生成処理を実行する。例えばこのときに、出力端末5は、モーションIDの実行順を入れ替える。この場合、出力端末5は、モーションIDごとの運動レベルを決定する必要はない。
図9は、出力端末5のCPU51の原曲モード第2再生用ファイル生成処理の変形例を示すフローチャートである。図9に示すように、CPU51は、運動動作リストに登録されたモーションIDの実行順を入れ替えてモーションIDを並べた入替パターン配列を、全パターン生成する(ステップS101)。
次いで、CPU51は、生成された入替パターン配列のうち最初のパターン配列を選択する(ステップS102)。次いで、CPU51は、利用者指定楽曲リストに登録された原曲テンポの変化と、選択したパターン配列に対応する運動テンポとの相関係数を計算する(ステップS103)。ステップS103の処理内容は、図7に示すステップS66と同様である。
次いで、CPU51は、生成された入替パターン配列の中に、次に選択する入替パターン配列があるか否かを判定する(ステップS104)。このとき、CPU51は、次の入替パターン配列があると判定した場合には(ステップS104:YES)、ステップS105に進む。ステップS105において、CPU51は、次の入替パターン配列を選択する。次いで、CPU51は、ステップS103に進む。
一方、CPU51は、次の入替パターン配列がないと判定した場合には(ステップS104:NO)、ステップS106に進む。ステップS106において、CPU51は、生成した全ての入替パターン配列のうち、計算された相関係数の値が最も高い入替パターン配列を決定する。
次いで、CPU51は、実行順iを1に設定する(ステップS107)。次いで、CPU51は、決定した入替パターン配列からi番目に格納されているモーションIDを取得する(ステップS108)。次いで、CPU51は、利用者指定楽曲リストから、再生順iに対応する楽曲ID及び原曲テンポを取得する(ステップS109)。次いで、CPU51は、再生用ファイルに、実行順i、取得したモーションID、楽曲ID及び原曲テンポを対応付けて登録する(ステップS110)。このとき、CPU51は、原曲テンポを再生テンポとして登録する。次いで、CPU51は、実行順iが動作数Nと一致するか否かを判定する(ステップS111)。このとき、CPU51は、実行順iが動作数Nと一致しないと判定した場合には(ステップS111:NO)、ステップS112に進む。ステップS112において、CPU51は、実行順iに1を加算する。次いで、CPU51は、ステップS108に進む。一方、CPU51は、実行順iが動作数Nと一致すると判定した場合には(ステップS111:YES)、原曲モード第2再生用ファイル生成処理を終了させる。
なお、上記実施形態においては、本発明の情報処理装置が出力端末5に適用されていた。しかしながら、本発明の情報処理装置が配信サーバ2に適用されてもよい。例えば、配信サーバ2が、再生用ファイルを生成してもよい。そして、配信サーバ2が、再生用ファイルに基づいて、音声データ及び動画データを生成してもよい。この場合の音声データは、再生用ファイルに登録された再生テンポに従って楽曲等を出力するためのデータである。また、動画データは、再生用ファイルに登録された再生テンポに従って運動映像等を表示するためのデータである。運動レッスンが行われるとき、配信サーバ2は、音声データ及び動画データを、例えばストリーミング方式で出力端末5に送信する。これにより、配信サーバ2は、出力端末5により楽曲を出力させ、且つ、運動映像を表示させる。また、本発明の情報処理装置が出力端末5及び配信サーバ2に適用されてもよい。そして、出力端末5及び配信サーバ2は協働して処理を行ってもよい。