以下、本発明の実施形態を図面に基づいて説明する。以下に説明する実施の形態は、運動を支援するための運動コンテンツを生成する運動コンテンツ生成システムに本発明を適用した実施形態である。運動コンテンツは、運動を支援するための映像及び音声を含む。
[1.運動コンテンツ生成システム1の構成]
始めに、図1を参照して、本実施形態の運動コンテンツ生成システム1の構成について説明する。図1は、本実施形態の運動コンテンツ生成システム1の概要構成例を示す図である。運動コンテンツ生成システム1は、配信サーバ2と1つ以上の出力端末5とを含んで構成される。図1では、一例として、出力端末5を3つ含む構成のコンテンツ生成システム1を示す。図1に示す3つの出力端末5は、それぞれの構成は同じである。そのため、本実施形態では、3つの出力端末5のうち、1つの出力端末5について、図1を用いて詳細を説明する。配信サーバ2と出力端末5とは、インターネット等のネットワーク10を介して接続可能である。配信サーバ2には、データベース3が接続されている。データベース3には、運動に関する情報や楽曲に関する情報が登録されている。配信サーバ2は、データベース3に登録された情報等を、定期的に又は出力端末5からの要求に応じて出力端末5に配信する。
出力端末5は、例えば、施設4に設置される端末装置である。出力端末5は、本発明の情報処理装置の一例である。出力端末5は、例えばパーソナルコンピュータである。
[1−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には、運動映像、楽曲データ等が登録される。運動映像は、所定の拍数または所定の長さで実行される運動を、1つの運動の単位と規定した運動動作を行うフィギュア83をディスプレイに映し出す動画である。フィギュア83は、例えば、人、ロボット等のかたちをした仮想物である。フィギュア83は、三次元仮想空間に配置される。運動映像は、本発明における映像の一例である。複数の運動映像が、後述する出力端末5により順に再生されることにより、運動レッスンが実行される。本実施形態において、運動レッスンを構成する一連の運動を例えばコリオグラフィーという。また、運動レッスンを構成する一連の運動の各運動を例えばミニコリオという。ミニコリオは、本発明の運動の一例である。データベース3には、運動映像が、ミニコリオごとに、ミニコリオIDと対応付けて登録される。ミニコリオIDは、ミニコリオを識別可能な識別情報である。ミニコリオIDは、本発明の運動識別情報の一例である。本実施形態におけるミニコリオは、例えば、健康の増進、体力の増強、筋力の強化等のために行われる運動である有酸素運動、無酸素運動、ストレッチ等の体操の動作と、楽曲に合わせて踊るために楽曲に対して振り付けられた踊りの動作とのいずれかの内容を示す1または複数の運動で構成される運動動作である。ミニコリオごとに、構成される運動の数は異なっていてもよい。ミニコリオを構成する運動動作は、例えば、運動コンテンツ生成システム1の管理者が設定する。
楽曲データは、スピーカ64により楽曲を出力するための演奏データである。楽曲データは、例えば、MIDI(Musical Instrument Digital Interface)形式のデータである。楽曲データは、楽曲を識別可能な識別情報である楽曲IDと対応付けられる。
[1−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は、本発明の記憶手段、第2記憶手段の一例である。記憶手段及び第2記憶手段が同一の記憶デバイスであってもよいし、互いに異なる記憶デバイスであってもよい。HDD7には、配信サーバ2からダウンロードされた楽曲データ、運動映像等のデータが記憶される。また、HDD7には、運動映像、マッチ度テーブル、ミニコリオ割当表、運動ブロック内訳表等が記憶される。運動映像は、ミニコリオごとに、ミニコリオIDと対応付けて記憶される。マッチ度テーブル、ミニコリオ割当表、運動ブロック内訳表の詳細は、後述にて説明する。また、HDD7には、ミニコリオ決定方法フラグが記憶される。ミニコリオ決定方法フラグは、後述により説明するミニコリオ決定方法が、第1決定方法であるか又は第2決定方法であるかを示すデータである。なお、これらHDD7に記憶される情報は、いずれも出力端末5が配信サーバ2からダウンロードしてもよい。
図1に示す出力端末5のHDD7には、更に、OS、運動支援プログラム、ミュージックシーケンサ等の各種プログラム等が記憶されている。運動支援プログラムは、利用者41の運動を支援するためのプログラムである。運動支援プログラムは、コンピュータとしてのCPU51に、受付ステップ、第1決定ステップ、第2決定ステップ、第3決定ステップ、4決定ステップ、生成ステップを少なくとも実行させる。また、運動支援プログラムが実行されることにより、ディスプレイ67には、運動映像が表示される。
ミュージックシーケンサは、楽曲データを再生するためのプログラムである。CPU51は、ミュージックシーケンサを実行することにより、楽曲データに対応する音声信号を生成し、各種のイベントを発生させる。イベントとして、例えば、テンポに応じて所定時間間隔で発生するイベントがある。
各種プログラムは、例えば、配信サーバ2等のサーバからネットワーク10を介してダウンロードされるようにしてもよい。また、各種プログラムは、記録媒体59に記録されてディスクドライブ58を介して読み込まれるようにしてもよい。
出力端末5は、モニタ57と接続可能である。モニタ57は、複数のスピーカ64とディスプレイ67とを備える表示装置である。出力端末5がモニタ57へ映像信号を出力することにより、ディスプレイ67に運動映像等が表示される。ディスプレイ67は、本発明の表示手段の一例である。出力端末5がモニタ57へ音声信号を出力することにより、スピーカ64により楽曲等が出力される。
CPU51は、スピーカ64から出力される楽曲と、ディスプレイ67に表示されるフィギュア83の動きとが同期するように、運動映像の信号を出力する。これにより、スピーカ64から出力される楽曲に同期して運動動作を行うフィギュア83がディスプレイ67に表示される。楽曲と運動映像とを出力することは、運動コンテンツを出力することの一例である。利用者41は、楽曲を聴きながら、ディスプレイ67に表示されるフィギュア83を見て、運動を行うことができる。こうして、利用者41は運動レッスンを行う。本実施形態では、運動レッスンにおいて行われる複数の運動動作の種類および運動順序を定めたメニュー情報又はリスト情報を、運動メニューとする。運動メニューの構成の詳細は、後述する。出力端末5のCPU51は、運動メニューに従って、楽曲と運動動作を示す運動映像とを順に出力し、運動レッスンを実行させる。また、操作者42は、リモコン66等を用いて出力端末5を操作することができる。利用者41と操作者42とは同一人物であってもよい。施設4がスポーツ施設である場合、操作者42は、例えば、インストラクターであってもよい。
次に、出力端末5のHDD7に記憶されるマッチ度テーブル、ミニコリオ割当表、運動ブロック内訳表を、図2、図3(A)〜図3(D)を用いて説明する。マッチ度テーブル、ミニコリオ割当表、運動ブロック内訳表は、運動メニューを決定するために用いられる。
[1−3.マッチ度テーブルの構成]
図2は、HDD7に記憶されるマッチ度テーブルの一例を示す図である。マッチ度テーブルは、複数のレッスン目的それぞれに対するミニコリオ及び運動ジャンルのマッチ度を定義するテーブルである。図2に示すように、マッチ度テーブルには、複数の運動ジャンルを示す複数のジャンルIDが記憶される。運動ジャンルとして、例えばエアロビクス、格闘、バーベル運動、ストレッチ、ヨガ等の運動の種類が挙げられる。ジャンルIDは、本発明の種類識別情報の一例である。
マッチ度テーブルには、ジャンルIDごとに、複数のミニコリオIDが対応付けて記憶される。図2に示すように、マッチ度テーブルにおいて、ミニコリオは、運動ジャンルごとに複数用意される。例えば、ジャンルID「エアロビクス」には、ミニコリオID「AERO_A」〜「AERO_D」が対応付けて記憶される。ジャンルID「格闘」には、ミニコリオID「KAKUTO_A」〜「KAKUTO_D」が対応付けて記憶される。ジャンルIDに対応付けられたミニコリオIDは、そのジャンルIDが示す運動ジャンルに属するミニコリオを示す。言い換えれば、ジャンルIDは、対応付けられたミニコリオIDが示すミニコリオの運動が属する運動ジャンルを示す情報である。
また、図2に示すように、マッチ度テーブルには複数の目的IDが記憶される。目的IDは、レッスン目的を識別可能な識別情報である。目的IDは、本発明の目的識別情報の一例である。目的IDには、レッスン目的の選択肢として、例えば、「持久力をつける」、「パワーをつける」、「ストレス発散」、「肩腰背中をスッキリ」等が記憶される。
さらに、マッチ度テーブルには、ミニコリオIDごとに、複数の目的IDそれぞれについて、ミニコリオの適合度を示すマッチ度が対応付けて記憶される。マッチ度は、1.000〜5.00の範囲で、適合度が定められる。マッチ度の値は、高いほど目的IDに対するミニコリオの適合度が高いことを示す。例えば、ミニコリオID「AERO_A」の目的ID「持久力をつける」についてのマッチ度は、「4.17」である。」ミニコリオID「AERO_A」の目的ID「パワーをつける」についてのマッチ度は、「2.83」である。ミニコリオID「AERO_A」の目的ID「ストレス発散」についてのマッチ度は、「3.00」である。
更に、マッチ度テーブルには、ジャンルIDごとに、複数の目的IDが示すレッスン目的それぞれについて、平均マッチ度が記憶される。平均マッチ度は、運動ジャンルごとに、目的IDそれぞれについて、各ジャンルIDに対応付けられた複数のミニコリオIDが示すミニコリオの総合的な適合度を示すマッチ度である。具体的には、平均マッチ度は、ジャンルIDで区別される運動ジャンルごとに、各目的IDについてその運動ジャンルに属するミニコリオのマッチ度の総計を、その運動ジャンルに属するミニコリオの数で除して算出した値である。例えば、ジャンルID「エアロビクス」の目的ID「持久力をつける」についての平均マッチ度は、「4.21」である。これは、ジャンルID「エアロビクス」に対応付けられたミニコリオID「AERO_A」〜「AERO_D」の目的ID「持久力をつける」と対応付けられた各マッチ度「4.17」、「4.33」、「4.17」、「4.17」を平均した値である。また、例えば、ジャンルID「格闘」の目的ID「持久力をつける」についての平均マッチ度は、「4.25」である。これは、ジャンルID「格闘」に対応付けられたミニコリオID「KAKUTO_A」〜「KAKUTO_D」の目的ID「持久力をつける」と対応付けられた各マッチ度「4.00」、「4.00」、「5.00」、「4.00」を平均した値である。
ミニコリオのマッチ度は、例えば、ミニコリオごとに、身体部位の動きに基づいて運動ジャンルに応じた適性から決定される。具体的には、運動映像をあらかじめ解析して、運動動作中の各身体部位の動きを検知することにより、決定される。また、マッチ度は、運動コンテンツ生成システム1の管理者等が設定する場合や、配信サーバ2等の情報処理装置が、自動で決定してもよい。マッチ度は、言い換えれば、或る運動ジャンルの運動であるミニコリオが或るレッスン目的にどれほど適合するか或いはどれほど適切であるか等を示す値である。マッチ度が高い運動ジャンルであるほど、レッスン目的に対して効果が高い運動のジャンルである。運動ジャンルごとのマッチ度は、平均マッチ度のほか、各運動ジャンルに対して一義的に抽出される値であってもよい。例えば、各運動ジャンルに属するミニコリオにおけるマッチ度の中央値、最高値、最低値などがある。
また、図2に示すように、マッチ度テーブルには、各目的IDに対応付けて最大ミックス数が記憶される。例えば、目的ID「持久力をつける」に対応付けて、最大ミックス数「3」が記憶される。目的ID「パワーをつける」に対応付けて、最大ミックス数「2」が記憶される。最大ミックス数とは、運動メニューを構成するミニコリオが属する運動ジャンルの種類の最大数である。運動メニューを多数の運動ジャンルのミニコリオで構成すると、運動メニューを構成するミニコリオの運動ジャンルが多種にわたってしまい、レッスン目的を達成するために効果的な運動メニューとならない可能性がある。本実施形態では、レッスン目的を達成するために、運動メニュー内に含まれる運動ジャンルの種類の上限を示す最大ミックス数が設定される。これにより、運動メニューには、マッチ度テーブルから、最大ミックス数の範囲内で、1または複数の運動ジャンルに対応付けられた複数のミニコリオが選択される。
[1−4.ミニコリオ割当表の構成]
次に、HDD7に記憶されるミニコリオ割当表を説明する。図3(A)および図3(B)は、ミニコリオ割当表の一例を示す図である。
ミニコリオ割当表には、複数のレッスン時間と、各レッスン時間で実行するミニコリオの数を定めたミニコリオ数リストと、各レッスン時間に対応する運動ブロック数とが対応付けられている。ミニコリオ割当表には、レッスン時間として、「15分」、「20分」、「25分」、「30分」が記憶されている。ミニコリオ割当表のミニコリオ数リストには、各レッスン時間と対応付けて、複数階層ごとに、運動メニューに設定するミニコリオ数が定められている。ミニコリオ数割当表には、レッスン時間ごとに、複数階層の各階層のミニコリオ数を定めた組み合わせが複数通り定められている。なお、複数階層とは、運動ジャンルを、選択されたレッスン目的についての平均マッチ度が高い順に順位化し、運動ジャンルを順位ごとに階層に振り分けた複数の階層を示す。
例えば、図3(A)に示すミニコリオ割当表のミニコリオ数リストでは、選択されたレッスン目的についての平均マッチ度が1位〜3位までの運動ジャンルを振り分けた1位〜3位の3階層が定められている。そして、具体的には、図3(A)のミニコリオ割当表のミニコリオ数リストには、レッスン時間「15分」に対応して、選択されたレッスン目的についての平均マッチ度が1位〜3位の運動ジャンルについて、ミニコリオ数の組み合わせが、運動ジャンルの順位「1位、2位、3位」に対応して、「2、1、0」、「1、1、1」、「2、0、1」、「3、0、0」の4通り定められている。
例えば、図3(B)に示すミニコリオ割当表のミニコリオ数リストでは、選択されたレッスン目的についての平均マッチ度が高い順に順位化し、所定の上位以内の運動ジャンルを上位層とし、所定の上位以内の運動ジャンルを上位層とし、所定の上位より下位の運動ジャンルを下位層とした2階層が定められている。そして、具体的には、図3(B)のミニコリオ割当表のミニコリオ数リストには、レッスン時間「15分」に対応して、選択されたレッスン目的についての平均マッチ度により上位および下位に分けた運動ジャンルについて、ミニコリオ数の組み合わせが、運動ジャンルの順位「上位、下位」に対応して、「2、1」、「3、0」の2通り定められている。
さらに、本実施形態では、ミニコリオ割当表のミニコリオ数リストに定められた複数階層について、選択されたレッスン目的に対する平均マッチ度が最も高い運動ジャンルを含む1または複数の階層の運動ジャンルを第1ジャンルと設定し、選択されたレッスン目的に対する平均マッチ度が第1ジャンルと決定した運動ジャンルの平均マッチ度よりも低い運動ジャンルを含む1または複数の階層の運動ジャンルを第2ジャンルとを設定する。例えば、図3(A)に示すミニコリオ割当表のミニコリオ数リストにおいては、1位の運動ジャンルを第1ジャンルと決定し、2位および3位の運動ジャンルを第2ジャンルと決定する。図3(B)に示すミニコリオ割当表のミニコリオ数リストにおいては、上位の運動ジャンルを第1ジャンルと決定し、下位の運動ジャンルを第2ジャンルと決定する。
ミニコリオ割当表のミニコリオ数リストに従って決定される運動メニューは、第1ジャンルのミニコリオと第2ジャンルのミニコリオを含んで構成される。本実施形態では、運動メニューのミニコリオにおいて、第1ジャンルに属するミニコリオを第1ミニコリオとし、第2ジャンルに属するミニコリオを第2ミニコリオと定義して以下を説明する。
また、ミニコリオ割当表のミニコリオ数リストには、レッスン時間ごとに、運動メニューにより実行するミニコリオ数の合計が定められている。運動メニューで実行されるミニコリオの数の合計は、レッスン時間が長いほど多く定められている。例えば、図3(A)のミニコリオ割当表の例では、レッスン時間が15分である場合、1位から3位までに定められたミニコリオ数の4通りの組み合わせ、「2、1、0」、「1、1、1」、「2、0、1」、「3、0、0」は、いずれも1位から3位までのミニコリオ数の合計が3である。また、同様に、図3(A)に示すミニコリオ割当表において、レッスン時間が20分である場合、1位から3位までに定められたミニコリオ数の組み合わせは、「2、1、0」、「3、1,0」、「3、0、1」の3通りであり、いずれも1位から3位までのミニコリオ数の合計は4である。
図3(B)のミニコリオ割当表の例では、レッスン時間が15分である場合、上位および下位に定められたミニコリオ数の2通りの組み合わせ、「2、1」「3、0」は、いずれも上位および下位のミニコリオ数の合計が3である。また、同様に、図3(B)に示すミニコリオ割当表において、レッスン時間が20分である場合、上位および下位に定められたミニコリオ数の組み合わせは、「3、1」、「2、2」の2通りであり、いずれも上位および下位のミニコリオ数の合計は4である。
ミニコリオ数リストに定められる複数階層のミニコリオ数は、かならず、下位のミニコリオ数が、上位のミニコリオ数以下となる数に定められている。例えば、図3(A)に示すミニコリオ割当表のミニコリオ数リストにおいて、レッスン時間が15分である場合の4通りの組み合わせのうち、1行目に示す組み合わせでは、15分のレッスン時間に対応するミニコリオ数として、1位のミニコリオ数が2、2位のミニコリオ数が1、3位のミニコリオ数が0と定められている。この組み合わせでは、ミニコリオ数に1が定められた2位よりも上位である1位のミニコリオ数は2である。ミニコリオ数が0と定められた3位よりも上位である1位と2位とのミニコリオ数の総数は3である。例えば、図3(B)に示すミニコリオ割当表のミニコリオ数リストでは、レッスン時間が20分である場合の組み合わせのうち、1行目に示す組み合わせでは、20分のレッスン時間に対応するミニコリオ数として、上位のミニコリオ数が3、下位のミニコリオ数が1と定められている。この組み合わせでは、下位のミニコリオ数に1が定められているのに対し、上位のミニコリオ数は3が定められている。
さらに、ミニコリオ割当表には、レッスン時間と対応して、運動レッスンを構成する運動ブロックの数が定められる。例えば、図3(A)および図3(B)に示すミニコリオ割当表には、レッスン時間「15分」、「20分」、「25分」と対応してブロック数に「1」が定められる。図3(A)および図3(B)に示すミニコリオ割当表には、レッスン時間「30分」と対応してブロック数に「2」が定められる。運動レッスンを構成する複数のミニコリオは、レッスン時間に応じて1又は複数の運動ブロックに分けられる。各運動ブロックは1又は複数のミニコリオで構成される。運動レッスンでは、運動ブロックごとに、各運動ブロックに対応付けられたミニコリオが連続して実行される。運動ブロックは、本発明の運動組の一例である。本実施形態では、レッスン時間が長いほど運動ブロック数が多くなるように定められている。レッスン時間が短い場合のほか、運動レッスンを構成するミニコリオの総数が少ない場合には、運動ブロック数は1であってもよい。
[1−5.運動ブロック内訳表の構成]
次に、HDD7に記憶される運動ブロック内訳表について、図3(C)および図3(D)を用いて説明する。運動ブロック内訳表は、前述したミニコリオ割当表によって、運動レッスンを構成する運動ブロックの数に2以上が定められている場合に用いられる。レッスン時間に関わらず運動ブロック数が1であるミニコリオ数の組み合わせには、運動ブロック内訳表は不要である。運動ブロックの数が2以上と定められている場合に、各運動ブロックに割当てられるミニコリオの数が、運動ブロック内訳表に従って決定される。運動ブロック内訳表では、ミニコリオ割当表に定められる運動ブロック数に対応する複数の運動ブロック番号のそれぞれに対し、複数階層に定められたミニコリオ数が対応付けられる。運動ブロック番号は、運動ブロックを識別可能な識別番号である。
図3(C)は、図3(A)に示すミニコリオ割当表のうち、レッスン時間「30分」と対応する運動ブロック数と定められた2つの運動ブロック1および2について、1位から3位に定められたそれぞれのミニコリオ数を割当てた運動ブロック内訳表の一例である。例えば、図3(A)に示すミニコリオ割当表において、レッスン時間「30分」である場合に、運動ジャンルの順位「1位、2位、3位」に定められたミニコリオ数の組み合わせが「4、1、1」であるとき、図3(C)の運動ブロック内訳表では、運動ブロック1に対して、運動ジャンルの順位「1位、2位、3位」に定められたミニコリオ数の組み合わせが「2、0、1」と設定され、運動ブロック2に対して、運動ジャンルの順位「1位、2位、3位」に定められたミニコリオ数の組み合わせが「2、1、0」に設定されている。
図3(D)は、図3(B)に示すミニコリオ割当表のうち、レッスン時間「30分」と対応する運動ブロック数と定められた2つの運動ブロック1および2について、上位および下位に定められたそれぞれのミニコリオ数を割当てた運動ブロック内訳表の一例である。例えば、図3(A)に示すミニコリオ割当表において、レッスン時間「30分」である場合に、運動ジャンルの順位「上位、下位」に定められたミニコリオ数の組み合わせが「4,2」であるとき、図3(D)の運動ブロック内訳表では、運動ブロック1および2に対して、運動ジャンルの順に「上位、下位」に定められたミニコリオ数の組み合わせが「2、1」に設定されている。
また、運動ブロック内訳表の複数の運動ブロックそれぞれにおいても、ミニコリオ数リストと同様に、複数階層のミニコリオ数は、かならず、下位のミニコリオ数が、上位のミニコリオ数以下となる数に定められている。例えば、図3(C)に示す運動ブロック内訳表において、運動ジャンルの順位「1位、2位、3位」に定められたミニコリオ数の組み合わせが「4、1、1」であるとき、運動ブロック1では、1位のミニコリオ数が2、2位のミニコリオ数が0、3位のミニコリオ数が1と定められている。この組み合わせでは、ミニコリオ数に0が定められた2位よりも上位である1位のミニコリオ数は2である。ミニコリオ数が1と定められた3位よりも上位である1位と2位とのミニコリオ数の総数は2である。例えば、図3(B)に示す運動ブロック内訳表において、運動ジャンルの順位「上位、下位」に定められたミニコリオ数の組み合わせが「4、2」であるとき、運動ブロック1および2では、上位のミニコリオ数が2、下位のミニコリオ数が1と定められている。この組み合わせでは、ミニコリオ数に1が定められた下位に対し、上位のミニコリオ数は2である。
なお、前述した本実施形態のほか、複数の運動ブロックそれぞれにおいて、複数階層の各階層のミニコリオの割当数は、下位のミニコリオ数が、上位のミニコリオ数の総計未満となるように設定されてもよい。運動ブロック内訳表は、上述した図3(C)および図3(D)に示す例の他に、ミニコリオ割当表のレッスン時間と運動ブロック数との組み合わせごとにそれぞれ作成され、HDD7に記憶される。
本実施形態では、運動ブロック数が2以上である場合、図3(C)および図3(D)の運動ブロック内訳表に示すように、運動ブロックごとに、第1ジャンルに属するミニコリオである第1ミニコリオが半数以上を占めるように設定されているので、レッスン目的の達成のために効果的な運動が運動ブロック単位で可能な運動メニューを生成することができる。なお、運動ブロック内訳表において、一部の運動ブロックは第1ミニコリオのみで構成される設定がされていてもよい。また、運動ブロック内訳表を用いて複数の運動ブロックを設ける理由は、例えば後述する運動メニューの生成方法にしたがって生成され、実行される運動レッスンにおいて、第1ミニコリオの全てが先に連続して実行され、運動レッスンの最後に、第2ジャンルに属するミニコリオである第2ミニコリオが実行される順番になることを防止するためである。また、先に全ての第2ミニコリオを実行した後に全ての第1ミニコリオを実行するような場合も同様の問題がある。運動ブロックが少なくとも2つ以上あり、各運動ブロックに第1ミニコリオと、第2ミニコリオとが含まれることで、先に全ての第1ミニコリオを実行した後に、全ての第2ミニコリオを実行するといったような事態を避けることができる。これにより、利用者41は第1ミニコリオを実行することで目的を達成することができ、且つ、利用者41は第2ミニコリオを実行することで例えば気分転換になる。これにより、運動レッスンに飽きが生じにくくなる。
[2.運動メニューの構成]
次に、出力端末5により実行される運動メニューの構成について説明する。本実施形態において、運動レッスンで行われる複数の運動を示すメニュー情報又はリスト情報を運動メニューという。出力端末5は、運動メニューに基づいて運動コンテンツを生成する。図4(B)および図4(D)は、運動メニューの一例である。図4(B)および図4(D)に示すように、運動メニューは、複数のミニコリオIDと、複数の実行順と、複数の楽曲IDとを含む。実行順及び楽曲IDはミニコリオIDに対応付けられている。実行順は、ミニコリオIDが示すミニコリオが実行される順番を示す。例えば、図4(B)に示す運動メニューにおいては、KAKUTO_A、KAKUTO_B、AERO_A、KAKUTO_C、AERO_B、BA_Aの順に、1〜6の実行順が対応付けられている。例えば、図4(D)に示す運動メニューにおいては、KAKUTO_A、KAKUTO_B、YOGA_A、KAKUTO_C、KAKUTO_D、YOGA_Cの順に、1〜6の実行順が対応付けられている。出力端末5は、運動メニューに基づいて、運動レッスンを構成する複数のミニコリオを示すミニコリオIDと対応付けられた運動映像を、ミニコリオIDと対応付けられた実行順に従ってディスプレイ67に表示させる。出力端末5は、運動映像を表示するとともに、運動メニューにおいて、表示される運動映像のミニコリオIDに対応付けられた楽曲IDが示す楽曲をスピーカ64により出力させる。
[3.運動メニューの生成方法]
次に、運動メニューの生成方法について、図2〜図4を用いて説明する。運動メニューの生成方法は、以下に説明するミニコリオの決定方法に従って、運動メニューを構成するミニコリオを決定し、決定されたミニコリオについて、実行順を定める方法である。
まず、運動メニューを構成するミニコリオの決定方法について、図2のマッチ度テーブル、図3(A)および図3(B)のミニコリオ割当表を用いて説明する。
本実施形態の運動メニューの決定方法では、まず初めに、利用者41によりレッスン目的とレッスン時間とが選択される。運動メニューを構成するミニコリオの種類は、利用者41により選択されるレッスン目的に基づいて決定される。運動メニューを構成するミニコリオの数は、利用者41により選択されるレッスン時間に基づいて決定される。利用者41が運動レッスンを行うとき、ディスプレイ67に、レッスン目的の選択肢として、図2のマッチ度テーブルに記憶された複数の目的IDに対応する複数のレッスン目的が表示され、レッスン時間の選択肢として、図2のマッチ度テーブルに記憶された複数のレッスン時間が表示される。利用者41は、ディスプレイ67に表示された複数のレッスン目的の中から何れかのレッスン目的を選択し、複数のレッスン時間の中から何れかのレッスン時間を選択する。なお、選択されたレッスン目的を選択目的という。レッスン目的は、運動レッスンで運動を行う目的である。レッスン目的は、本発明の運動目的の一例である。
本実施形態において、出力端末5は、利用者41により選択された選択目的およびレッスン時間に応じて運動メニューを生成し、運動メニューに基づいて運動コンテンツを再生する。選択目的に応じた運動メニューを生成する場合に、選択目的に対して運動効果が高い運動のみを選択すると、生成される運動メニューには、選択目的に対する運動効果が最も高い特定のジャンルIDに対応する運動ばかりが選択されるおそれがある。同じジャンルIDが対応付けられた複数の運動は、運動内容が類似する可能性が高い。そのため、特定のジャンルIDに対応する運動ばかりが選択された運動メニューでは、利用者41は、運動内容が類似する複数の運動動作のみを実行することになる可能性がある。内容が類似する運動動作のみを行うと、利用者は運動レッスンに飽きてしまうことがある。そこで、本実施形態では、出力端末5は、図2のマッチ度テーブルにおいて、複数のレッスン目的それぞれに対応付けて記憶された運動ジャンルのマッチ度を利用して、運動メニューを作成する。具体的には、出力端末5は、図2のマッチ度テーブルにしたがって、選択目的に対するマッチ度が所定の条件を満たす運動ジャンルを、第1ジャンルとして複数の運動ジャンルの中から決定するとともに、選択目的に対するマッチ度が第1ジャンルのマッチ度よりも低い第2ジャンルを決定する。そして、決定された第1ジャンルおよび第2ジャンルに示されるジャンルIDと対応するミニコリオが選択される。
本実施形態において、ミニコリオの決定方法には、後述により説明する第1決定方法と第2決定方法との2通りがある。第1決定方法と第2決定方法とにおいて、図2に示すマッチ度テーブルを共通に使用する。さらに、第1決定方法では、図3(A)のミニコリオ割当表を用いる。第2決定方法では、図3(b)に示すミニコリオ割当表を用いる。なお、ミニコリオの決定方法として、第1決定方法と第2決定方法との何れの決定方法を用いるかは、出力端末5の利用者等により予め定められる。例えば、設置者は、レッスン目的の達成を重視する場合には第1決定方法を選択し、利用者41が運動に飽きないことを重視する場合には第2決定方法を選択してもよい。出力端末5は、予め定められた第1決定方法と第2決定方法とのいずれかのミニコリオの決定方法に従って、ミニコリオを決定し、運動メニューを生成する。
ここで、第1ジャンルおよび第2ジャンルのジャンルIDの決定方法として、第1決定方法と第2決定方法との2種類の決定方法を説明する。第1決定方法は、マッチ度テーブルの複数のジャンルIDを、選択目的についてのマッチ度が高い順に順位をつけ、1位を含む上位のジャンルIDを第1ジャンルと決定し、第1ジャンルと決定したジャンルIDより下位のジャンルIDを第2ジャンルと決定する方法である。第2決定方法は、マッチ度テーブルの複数のジャンルIDを、選択目的についてのマッチ度が所定の閾値以上か否かにより分け、マッチ度が所定の閾値以上のジャンルIDを上位ジャンルと決定し、所定の閾値未満のマッチ度のジャンルIDを下位ジャンルと決定する方法である。なお、第1決定方法における上位および第2決定方法における所定の閾値は、予め定められた値であり、運動コンテンツ生成システム1の管理者等により設定される。
次に、出力端末5は、決定された第1ジャンルのジャンルIDと、第2ジャンルのジャンルIDとに基づいて、図2のマッチ度テーブルから、第1ジャンルのジャンルIDと対応付けられたミニコリオIDの中から第1ミニコリオを決定し、決定された第2ジャンルの運動ジャンルIDと対応付けられたミニコリオIDの中から第2ミニコリオを決定する。
選択目的に対する第1ジャンルの運動ジャンルのマッチ度は所定の条件を満たすので、第1ミニコリオのミニコリオは選択目的に対して効果的な運動である。そして、運動メニューを構成するミニコリオのうち半数以上の第1ミニコリオが、第1ジャンルの運動ジャンルに属するミニコリオであるので、生成される運動メニューは、選択目的の達成のために効果的である。また、選択目的に対する第2ジャンルの運動ジャンルのマッチ度は、選択目的に対する第1ジャンルの運動ジャンルのマッチ度よりも低いので、第2ジャンルの運動ジャンルに属する第2ミニコリオの運動内容は、第1ジャンルの運動ジャンルに属する第1ミニコリオの運動内容と類似しない蓋然性がある。従って、生成される運動メニューに基づいて行われる運動レッスンは飽きが生じにくい。また、出力端末5は、第1ミニコリオのミニコリオIDの数未満の第2ミニコリオのミニコリオIDを決定してもよい。これにより、レッスン目的の達成のためにより効果的な運動メニューを生成することができる。なお、本実施形態の第1ミニコリオのミニコリオIDは、本発明の第1運動識別情報の一例である。本実施形態の第2ミニコリオのミニコリオIDは、本発明の第2運動識別情報の一例である。
[3−1.第1決定方法]
ここで、運動メニューを構成するミニコリオの決定方法に第1決定方法を用いた運動メニューの決定方法の一例を、図2、図3(A)、図3(C)、図4(A)および図4(B)を用いて説明する。第1決定方法は、利用者41により選択された選択目的についてのマッチ度が最上位から所定順位以上のジャンルIDから、第1ジャンルと第2ジャンルとを決定する。そして、選択目的についてのマッチ度が、1位のジャンルIDを第1ジャンルと決定し、2位および3位のジャンルIDを第2ジャンルと決定する。なお、第1ジャンルと第2ジャンルを決定するために判定するマッチ度は、図2のマッチ度テーブルに記憶された複数のマッチ度のうち、ジャンルIDと対応付けられた平均マッチ度を用いる。所定順位の一例として、図2に示すマッチ度テーブルにおいて、選択されたレッスン目的を示す目的IDと対応付けられた最大ミックス数を例に用いる。
ここで、第1決定方法を用いた運動メニューの決定方法を、利用者41が、ディスプレイ67に表示されるレッスン目的とレッスン時間の選択肢から、目的ID「持久力を付ける」と、レッスン時間「30分」とを選択した場合を例に説明する。図2に示すように、選択されたレッスン目的「持久力を付ける」の最大ミックス数は「3」である。従って、出力端末5は、図2に示すマッチ度テーブルから、「持久力を付ける」の平均マッチ度が上位3位までのジャンルIDを、第1ジャンルおよび第2ジャンルのジャンルIDと決定する。図2に示すように、「持久力を付ける」の平均マッチ度が最も高いジャンルIDは「格闘」であり、平均マッチ度が2番目に高いジャンルIDは「エアロビクス」であり、平均マッチ度が3番目に高いジャンルIDは「バーベル運動」である。そこで、出力端末5は、図3(A)に示すミニコリオ割当表のミニコリオ数リストに従って、ジャンルID「格闘」を第1ジャンルのジャンルIDと決定し、ジャンルID「エアロビクス」と「バーベル運動」とを第2ジャンルのジャンルIDと決定する。また、第1ジャンルと第2ジャンルとは、上述に説明した各ジャンルIDと対応付けられた平均マッチ度から決定する例のほか、図2のマッチ度テーブルに従って、「持久力を付ける」のマッチ度が最も高いミニコリオIDと対応付けられたジャンルIDと、マッチ度が2番目に高いミニコリオIDと対応付けられたジャンルIDと、マッチ度が3番目に高いミニコリオIDと対応付けられたジャンルIDと、から決定してもよい。
また、出力端末5は、図3(A)に示すミニコリオ割当表から、レッスン時間「30分」と対応付けて1位から3位までのミニコリオ数が定められた1つのリストを取得する。出力端末5は、例えば、レッスン時間「30分」と対応付けられた4つのリストのうち、「1位、2位、3位」に「3、2、1」が対応付けられたリストを取得する。そして、ミニコリオ割当表から取得されたリストに従って、第1ジャンルのミニコリオIDと、第2ジャンルのミニコリオIDとを決定する。具体的には、出力端末5が、ミニコリオ割当表から、「1位、2位、3位」に「3、2、1」が対応付けられたリストを取得したとき、図2に示すマッチ度テーブルにおいて、「持久力を付ける」の平均マッチ度が1位であり、第1ジャンルに決定したジャンルID「格闘」のミニコリオIDの中から、例えば「KAKUTO_A」〜「KAKUTO_C」の3つを第1ミニコリオのミニコリオIDに決定する。「持久力を付ける」の平均マッチ度が2位であり、第2ジャンルに決定したジャンルID「エアロビクス」のミニコリオIDの中から、例えば「AERO_A」及び「AERO_B」の2つを第2ミニコリオのミニコリオIDに決定する。「持久力を付ける」の平均マッチ度が3位であり、第2ジャンルに決定したジャンルID「バーベル運動」のミニコリオIDの中から、例えば「BA_A」を第2ジャンルのミニコリオIDに決定する。なお、本実施形態のほか、ミニコリオ割当表において、「持久力を付ける」の平均マッチ度が2位の運動ジャンルは第1ジャンルとすることが定められている場合には、平均マッチ度が2番目に高いジャンルID「エアロビクス」のミニコリオIDである「AERO_A」及び「AERO_B」が、第1ジャンルのミニコリオIDに決定されてもよい。
さらに、出力端末5は、図3(C)に示す運動ブロック内訳表から、ミニコリオ数の「1位、2位、3位」に「3、2、1」が対応付けらえている運動ブロック内の割当数を取得する。具体的には、出力端末5は、ミニコリオ数の「1位、2位、3位」に「3、2、1」の対応付けがある運動ブロック内の割当数として、運動ブロック1において、「1位、2位、3位」の割当数に「2、1、0」が定められ、運動ブロック2において、「1位、2位、3位」の割当数に「1、1、1」と定められた割当数を取得する。
出力端末5は、取得した各運動ブロックの1位から3位までの割当数から、運動メニューを構成する各運動ブロックにおける運動の実行順を決定する。図4(A)は、平均マッチ度についての各運動ジャンルの順位と、運動レッスン内における実行順との対応関係の一例を示す図である。出力端末5は、図4(A)の対応関係に従って、各実行順に、その実行順と対応して定められた平均マッチ度の順位のジャンルIDと対応するミニコリオIDを定める。例えば、出力端末5は、各運動ブロックにおいて、マッチ度の順位が高い順に実行順を決定する。2つの運動ブロックは、運動ブロック番号が小さい順に実行順を決定する。
具体的には、出力端末5は、運動ブロック1における実行順が1番目および2番目のミニコリオに、マッチ度の順位が1位のジャンルIDが対応付けられたミニコリオIDを決定する。具体的には、図4(B)に示すように、運動ブロック1の1番目および2番目には、「持久力を付ける」の平均マッチ度が1位であり、第1ジャンルに決定したジャンルID「格闘」のミニコリオID「KAKUTO_A」および「KAKUTO_B」を決定する。これにより、最も飽きが生じにくい1番目にマッチ度の順位が1位のミニコリオを利用者41に実行させ、レッスン目的の達成のための運動の効果をより高めることができる。また、運動ブロック1における実行順が3番目のミニコリオに、平均マッチ度の順位が2位のジャンルID「エアロビクス」が対応付けられたミニコリオID「AERO_A」を決定する。運動ブロック2における実行順が1番目のミニコリオに、平均マッチ度の順位が1位のジャンルID「格闘」が対応付けられたミニコリオID「KAKUTO_C」を決定する。運動ブロック2における実行順が2番目のミニコリオに、平均マッチ度の順位が2位のジャンルID「AERO_B」が対応付けられたミニコリオIDを決定する。運動ブロック2における実行順が3番目のミニコリオに、平均マッチ度の順位が3位のジャンルID「バーベル」が対応付けられたミニコリオID「BA_A」を決定する。最終的に、出力端末5は、図4(B)の例に示すように、KAKUTO_A、KAKUTO_B、AERO_A、KAKUTO_C、AERO_B、BA_Aの順に、各ミニコリオIDが示すミニコリオが実行される運動メニューを生成する。
また、出力端末5は、運動メニューの各ミニコリオIDに楽曲IDを対応付ける。出力端末5は、ユーザの選択に基づいて楽曲IDを決定してもよいし、自動的に楽曲IDを決定してもよい。このようにして、出力端末5は、運動メニューを生成する。なお、運動レッスンがウォーミングアップ及びクールダウンを含む場合、運動メニューは、例えば、ウォーミングアップ及びクールダウンのそれぞれのミニコリオIDを含み且つ、ウォーミングアップ及びクールダウンのそれぞれに対応付けられた楽曲の楽曲IDを含む。
第1決定方法で運動メニューを決定する方法は、1位の運動ジャンルは必ず第1ジャンルであり、2位以下の運動ジャンルは必ず1位の運動ジャンルより順位が低い第1ジャンルまたは第2ジャンルであれば、上述した例に限らない。例えば、選択されたレッスン目的に対するマッチ度が1位及び2位の運動ジャンルを第1ジャンルであるとし、3位の運動ジャンルを第2ジャンルとしてもよい。また、複数の運動ジャンルのジャンルIDまたはミニコリオのミニコリオIDに対し、選択目的についてのマッチ度を順位付けする場合、2つ以上の運動ジャンルまたはミニコリオのマッチ度が同一であり、選択されたレッスン目的に対するマッチ度が同じ順位の運動ジャンルが2つ存在する場合も考えられる。その場合、同じ順位の運動ジャンルである2つ以上のジャンルIDの中からランダムに選択されたいずれかのジャンルIDを、第1ジャンルまたは第2ジャンルのジャンルIDとしてもよい。また、例えば、選択されたレッスン目的に対するマッチ度が同じ1位の運動ジャンルが2つ存在する場合は、出力端末5は、例えば1位の2つのジャンルIDを第1ジャンルのジャンルIDに決定し、3位のジャンルIDを第2ジャンルのジャンルIDに決定してもよい。
[3−2.第2決定方法]
次に、運動メニューを構成するミニコリオの決定方法に第2決定方法を用いた運動メニューの決定方法の一例を、図2、図3(B)、図3(D)、図4(C)および図4(D)を用いて説明する。第2決定方法では、利用者41により選択された選択目的を示す目的IDに対応するマッチ度が所定の基準を超えているジャンルIDのうちいずれかのジャンルIDを第1ジャンルと決定し、選択目的を示す目的IDに対応するマッチ度が基準以下であるジャンルIDのうちいずれかのジャンルIDを第2ジャンルと決定する。なお、第1ジャンルと第2ジャンルを決定するために判定するマッチ度には、ジャンルIDと対応付けられた平均マッチ度を用いる。所定の基準の一例として、平均マッチ度が「4」をこえるか否かにより分ける場合を例に用いる。なお、第1ジャンルおよび第2ジャンルを決定するために判定するマッチ度の基準は、例えば運動コンテンツ生成システム1の管理者等が予め設定する。
ここで、第2決定方法を用いた運動メニューの決定方法を、利用者41が、ディスプレイ67に表示される複数のレッスン目的と複数のレッスン時間とから、レッスン目的「ストレス発散」と、レッスン時間「30分」とを選択した場合を例に説明する。図2のマッチ度テーブルによれば、選択されたレッスン目的「ストレス発散」の平均マッチ度が「4」を超えるジャンルIDは「格闘」のみである。そこで、出力端末5は、ジャンルID「格闘」を上位ジャンルのジャンルIDと決定する。また、出力端末5は、平均マッチ度が「4」を超えない運動として、選択されたレッスン目的「ストレス発散」の平均マッチ度が「4」を超えない複数のジャンルID「エアロビクス」、「バーベル」、「ストレッチ」、「ヨガ」のうち、例えばジャンルID「ヨガ」を下位ジャンルのジャンルIDに決定する。なお、選択されたレッスン目的「ストレス発散」の平均マッチ度が「4」を超えるジャンルID、および平均マッチ度が「4」を超えないジャンルIDが、それぞれ複数ある場合は、該当するすべてのジャンルIDを決定してもよい。また、出力端末5は、図3(B)に示すミニコリオ割当表から、レッスン時間「30分」の場合の上位ジャンルと下位ジャンルのミニコリオ数が定められたリストを1つ取得する。例えば、レッスン時間「30分」と対応付けられた2つのリストのうち、「上位、下位」に、「4、2」が対応付けられたリストを取得する。そしてミニコリオ割当表から取得されたリストに従って、第1ジャンルのミニコリオIDと、第2ジャンルのミニコリオIDとを決定する。具体的には、出力端末5が、ミニコリオ割当表から「上位、下位」に「4、2」が対応付けられたリストを取得したとき、図2のマッチテーブルにおいて、目的ID「ストレス発散」に対応する平均マッチ度が「4」を超えるジャンルID「格闘」のミニコリオIDの中から、例えばミニコリオID「KAKUTO_A」〜「KAKUTO_D」を、上位のミニコリオとして第1ジャンルのミニコリオIDに決定する。一方、ジャンルID「ヨガ」のミニコリオID「ST_A」〜「ST_D」のそれぞれの目的ID「ストレス発散」に対するマッチ度は、「3、5、3、3」である。出力端末5は、ジャンルID「ヨガ」のミニコリオIDのうち、平均マッチ度が「4」未満のミニコリオID「ST_A」、「ST_C」及び「ST_D」の中から、2つのミニコリオIDを選択し、下位のミニコリオとして第2ジャンルのミニコリオに決定する。例えばミニコリオID「ST_A」、「ST_C」を第2ジャンルのミニコリオIDに決定する。
さらに、出力端末5は、図3(D)に示す運動ブロック内訳表から、ミニコリオ数の「上位、下位」に「4、2」の対応付けがある運動ブロック内の割当数を取得する。図3(D)の運動ブロック内訳表は、運動ブロック数が2である場合の各運動ブロック内の割当数を定めた表である。具体的には、出力端末5は、ミニコリオ数の「上位、下位」に「4、2」の対応付けがある運動ブロック内の割当数として、運動ブロック1及び2のそれぞれのミニコリオ数「上位、下位」に「2、1」が定められた割当数を取得する。出力端末5は、取得した各運動ブロックの上位と下位との割当数から、運動メニューを構成する各運動ブロックにおける運動の実行順を決定する。図4(C)は、上位ジャンル及び下位ジャンルと運動レッスン内における実行順との対応関係の一例を示す図である。出力端末5は、各実行順に、その実行順に対応する上位または下位のジャンルIDが対応付けられたミニコリオIDを決定する。例えば、各運動ブロックにおいて、上位ジャンル、下位ジャンルの順に、ミニコリオの実行順を決定する。具体的には、各運動ブロックにおける実行順が1番目および2番目のミニコリオに、上位ジャンルであるジャンルID「格闘」のミニコリオを決定し、3番目の実行順にジャンルID「ヨガ」のミニコリオを決定してもよい。図4(D)は、図4(C)に示す対応関係に従って実行順が決定された運動メニューの構成例を示す図である。最終的に、出力端末5は、図4(D)の例に示すように、ミニコリオID「KAKUTO_A」、「KAKUTO_B」、「YOGA_A」、「KAKUTO_C」、「KAKUTO_D」、「YOGA_C」の順に、ミニコリオが実行される運動メニューを生成する。さらに、出力端末5は、各実行順に、その実行順に対応する運動ジャンルのミニコリオIDと楽曲IDを対応付ける。
なお、上述した第2決定方法において、ミニコリオ割当表に、レッスン時間に対応するミニコリオ数リストが複数存在する場合、出力端末5は、例えば所定に条件に基づいてミニコリオ数リストを決定してもよいし、レッスン時間に対応するミニコリオ数リストの中からランダムに1つのミニコリオ数リストを決定してもよい。第1ジャンルまたは第2ジャンルのいずれかにおいて、複数のミニコリオIDを決定する場合、例えば複数のミニコリオIDの中に同一のミニコリオIDが含まれてもよい。第2決定方法において、出力端末5は、下位ジャンルのミニコリオとして、例えば上位ジャンルにおいて決定されたミニコリオの選択目的に対するマッチ度よりも、選択目的に対するマッチ度が低いミニコリオを決定してもよい。上位ジャンルのミニコリオはレッスン目的を達成するためのミニコリオであり、下位ジャンルのミニコリオは飽きを生じさせないためのミニコリオである。
運動メニューのミニコリオを決定するために、平均マッチ度などの代表値が用いられる場合、下位ジャンルに対応付けられている複数のミニコリオのうち、何れかのミニコリオは、選択目的についてのマッチ度が、上位ジャンルのミニコリオのマッチ度より高い可能性がある。この場合、選択目的について、運動メニューを構成する上位ジャンルのミニコリオのマッチ度よりもマッチ度が高い下位ジャンルのミニコリオは、上位ジャンルのミニコリオよりもレッスン目的のために効果的であるということになる。そうすると、運動レッスンを構成するミニコリオのうち効果的なミニコリオが全体の半数以下となってしまい、運動レッスン全体として利用者41が効果的な運動が行えない可能性がある。このような可能性を防止するため、出力端末5は上述のように、下位ジャンルのミニコリオは、上位ジャンルにおいて決定されたミニコリオの選択目的に対するマッチ度よりもマッチ度が低いミニコリオを決定する。さらに、出力端末5は、下位ジャンルのミニコリオは、上位ジャンルにおいて決定されたミニコリオの選択目的に対するマッチ度の代表値よりもマッチ度が低いミニコリオを決定してもよい。この場合の代表値は、例えば最小値である。また代表値は、例えば平均値、中央値等であってもよい。
[4.運動コンテンツ生成システム1の動作]
次に、図5乃至図7を参照して、出力端末5の動作を説明する。図5は、出力端末5のCPU51のメイン処理の一例を示すフローチャートである。例えば、出力端末5の電源がONとされると、CPU51は、メイン処理を実行する。図5に示すように、CPU51は、キーボード61等の操作に基づき電源OFFが要求されたか否かを判定する(ステップS1)。このとき、CPU51は、電源OFFが要求されていないと判定した場合には(ステップS1:NO)、ステップS2に進む。ステップS2において、CPU51は、レッスン目的及びレッスン時間の選択を受け付ける。具体的に、CPU51は、利用者41によるマウス62、リモコン66等の選択操作に基づき、選択目的の目的ID及びレッスン時間を特定する。または、レッスン時間は、出力端末5において自動で決定されてもよいし、または予め定められていてもよい。次いで、CPU51は、ミニコリオ決定処理を実行する(ステップS3)。
図6は、出力端末5のCPU51のミニコリオ決定処理の一例を示すフローチャートである。図6に示すように、CPU51は、選択ミニコリオリストを初期化する。そして、CPU51は、HDD7に記憶されているミニコリオ決定方法フラグに基づき、ミニコリオ決定方法が第1決定方法であるか否かを判定する(ステップS11)。このとき、CPU51は、ミニコリオ決定方法が第1決定方法であると判定した場合には(ステップS11:YES)、ステップS12に進む。一方、CPU51は、ミニコリオ決定方法が第1決定方法ではないと判定した場合には(ステップS11:NO)、ステップS20に進む。
ステップS12において、CPU51は、マッチ度テーブルから、各ジャンルIDに対応付けられた平均マッチ度のうち、選択目的の目的IDに対応する平均マッチ度を取得する。また、CPU51は、マッチ度テーブルから選択目的の目的IDに対応する最大ミックス数を取得する。そして、CPU51は、Xに最大ミックス数を設定する。次いで、CPU51は、取得した平均マッチ度をソートする。そしてCPU51は、平均マッチ度が大きい順に1位からX位までのジャンルIDをマッチ度テーブルから取得する(ステップS13)。次いで、CPU51は、第1決定方法と取得した最大ミックス数に対応するミニコリオ割当表から、選択されたレッスン時間に対応するミニコリオ数リストに登録されている各順位のミニコリオ数を取得する(ステップS14)。また、CPU51は、ミニコリオ割当表からレッスン時間に対応する運動ブロック数を取得する。レッスン時間に対応するミニコリオ数リストが複数ある場合、出力端末5は、例えばランダムにミニコリオ数リストを決定し、決定したミニコリオ数リストからミニコリオ数を取得する。
次いで、CPU51は、順位番号iを1に設定する(ステップS15)。次いで、CPU51は、順位番号iの値がX+1未満であるか否かを判定する(ステップS16)。このとき、CPU51は、順位番号iの値がX+1未満であると判定した場合には(ステップS16:YES)、ステップS17に進む。一方、CPU51は、順位番号iの値がX+1未満ではないと判定した場合には(ステップS16:NO)、ステップS19に進む。ステップS17において、CPU51は、マッチ度テーブルから、i位のジャンルIDに対応するミニコリオIDのうち、i位のミニコリオ数分のミニコリオIDを取得する。CPU51は、取得したミニコリオIDを順位番号iと対応付けて選択ミニコリオリストに登録する。次いで、CPU51は、順位番号iに1を加算して(ステップS18)、ステップS16に進む。ステップS19において、CPU51は、第1実行順決定処理を実行する。
図7は、出力端末5のCPU51の第1実行順決定処理の一例を示すフローチャートである。先ず、CPU51は、運動メニューを初期化する。次いで、CPU51は、ミニコリオ割当表から取得した運動ブロック数が2以上であるか否かを判定する(ステップS31)。このとき、CPU51は、運動ブロック数が2以上ではないと判定した場合には(ステップS31:NO)、ステップS32に進む。一方、CPU51は、運動ブロック数が2以上であると判定した場合には(ステップS31:YES)、ステップS34に進む。
ステップS32において、CPU51は、選択ミニコリオリストにおいて順位番号1に対応するミニコリオIDの中から、運動ブロック1における実行順が1番目となるミニコリオのミニコリオIDを、例えばランダムに決定する。CPU51は、決定したミニコリオIDと実行順番号1とを対応付けて運動メニューに登録する。そして、CPU51は、決定したミニコリオIDを選択ミニコリオリストから削除する。
次いで、CPU51は、運動ブロック1における2番目以降の実行順に対応付けるミニコリオIDを、現時点で選択ミニコリオリストに登録されているミニコリオIDの中から決定する(ステップS33)。例えば、CPU51は、実行順番号Jを2に設定する。次いで、CPU51は、選択ミニコリオリストからミニコリオIDをランダムに取得する。次いで、CPU51は、取得したミニコリオIDと実行順番号Jとを対応付けて運動メニューに登録する。次いで、CPU51は、選択ミニコリオリストから取得したミニコリオIDを、選択ミニコリオリストから削除する。また、CPU51は、実行順番号Jに1を加算する。CPU51は、これらの処理を、選択ミニコリオリストから全てのミニコリオIDが削除されるまで繰り返す。CPU51は、ステップS33を終えると、第1実行順決定処理を終了させる。
ステップS34において、CPU51は、第1決定方法、選択されたレッスン時間及びマッチ度テーブルから取得した最大ミックス数に対応するブロック内訳表から、ミニコリオ決定処理のステップS14で取得した1位からX位までのミニコリオ数に対応する各運動ブロックの1位からX位までの割当数を取得する。次いで、CPU51は、ブロック番号iを1に設定する。(ステップS35)。また、CPU51は、実行順番号Jを1に設定する。次いで、CPU51は、ブロック番号iの値が、ミニコリオ割当表から取得した運動ブロック数+1未満であるか否かを判定する(ステップS36)。このとき、CPU51は、ブロック番号iの値が運動ブロック数+1未満であると判定した場合には(ステップS36:YES)、ステップS37に進む。ステップS37において、CPU51は、ブロック番号iが1であるか否かを判定する。CPU51は、ブロック番号iが1であると判定した場合には(ステップS37:YES)、ステップS38に進む。一方、CPU51は、ブロック番号iが1ではないと判定した場合には(ステップS37:NO)、ステップS41に進む。
ステップS38において、CPU51は、選択ミニコリオリストにおいて順位番号1に対応するミニコリオIDの中から、運動ブロック1における実行順が1番目となるミニコリオのミニコリオIDを、例えばランダムに決定する。CPU51は、決定したミニコリオIDと実行順番号Jとを対応付けて運動メニューに登録する。また、CPU51は、運動ブロック1における1位の割当数から1を減算する。次いで、CPU51は、実行順番号Jに1を加算する。そして、CPU51は、決定したミニコリオIDを選択ミニコリオリストから削除する。
次いで、CPU51は、ブロック内訳表に従い、運動ブロック1における2番目以降の実行順に対応付けるミニコリオIDを、現時点で選択ミニコリオリストに登録されているミニコリオIDの中から決定する(ステップS39)。例えば、CPU51は、選択ミニコリオリストからミニコリオIDをランダムに取得する。このとき、CPU51は、1位からX位までのミニコリオIDのうち、運動ブロック1における現時点での割当数が1以上である順位に対応付けられたミニコリオIDの中から取得する。次いで、CPU51は、取得したミニコリオIDと実行順番号Jとを対応付けて運動メニューに登録する。次いで、CPU51は、取得したミニコリオIDに対応付けられた順位の割当数から1を減算する。また、CPU51は、実行順番号Jに1を加算する。次いで、CPU51は、選択ミニコリオリストから取得したミニコリオIDを、選択ミニコリオリストから削除する。CPU51は、これらの処理を、運動ブロック1における1位からX位までの全ての割当数が0になるまで繰り返す。ステップS39を終えると、CPU51は、ブロック番号iに1を加算して(ステップS40)、ステップS36に進む。
ステップS41において、CPU51は、ブロック内訳表に従い、運動ブロックiにおける各実行順に対応付けるミニコリオIDを、現時点で選択ミニコリオリストに登録されているミニコリオIDの中から決定する。例えば、CPU51は、選択ミニコリオリストからミニコリオIDをランダムに取得する。このとき、CPU51は、1位からX位までのミニコリオIDのうち、運動ブロックiにおける現時点での割当数が1以上である順位に対応付けられたミニコリオIDの中から取得する。CPU51は、取得したミニコリオIDと実行順番号Jとを対応付けて運動メニューに登録する。次いで、CPU51は、取得したミニコリオIDに対応付けられた順位の割当数から1を減算する。また、CPU51は、実行順番号Jに1を加算する。次いで、CPU51は、選択ミニコリオリストから取得したミニコリオIDを、選択ミニコリオリストから削除する。CPU51は、これらの処理を、運動ブロックiにおける1位からX位までの全ての割当数が0になるまで繰り返す。ステップS41を終えると、CPU51は、ステップS40を実行する。
ステップS36において、CPU51は、ブロック番号iの値が運動ブロック数+1未満ではないと判定した場合には(ステップS36:NO)、第1実行順決定処理を終了させる。第1実行順決定処理を終えると、CPU51は、ミニコリオ決定処理を終了させる。
図6に示すステップS20において、CPU51は、第2決定方法に対応するミニコリオ割当表から、選択されたレッスン時間に対応するミニコリオ数リストに登録されている上位と下位のミニコリオ数を取得する。また、CPU51は、ミニコリオ割当表からレッスン時間に対応する運動ブロック数を取得する。レッスン時間に対応するミニコリオ数リストが複数ある場合、出力端末5は、例えばランダムにミニコリオ数リストを決定し、決定したミニコリオ数リストからミニコリオ数を取得する。
次いで、CPU51は、マッチ度テーブルから、各ジャンルIDに対応付けられた平均マッチ度のうち、選択目的の目的IDに対応する平均マッチ度を取得する。次いで、CPU51は、取得した平均マッチ度が閾値を超えているジャンルIDの中からランダムに上位のジャンルIDを決定する(ステップS22)。次いで、CPU51は、マッチ度テーブルから、上位のジャンルIDに対応するミニコリオIDのうち、上位のミニコリオ数分のミニコリオIDを取得する(ステップS23)。そして、CPU51は、取得したミニコリオIDを、上位を示す識別情報と対応付けて選択ミニコリオリストに登録する。次いで、CPU51は、取得したミニコリオIDと選択目的の目的IDとに対応付けられたマッチ度のうち最小値をマッチ度テーブルから取得する(ステップS24)。
次いで、CPU51は、取得した平均マッチ度が閾値以下であるジャンルIDの中からランダムに下位のジャンルIDを決定する(ステップS25)。次いで、CPU51は、マッチ度テーブルから、下位のジャンルIDに対応するミニコリオIDのうち、下位のミニコリオ数分のミニコリオIDを取得する(ステップS26)。このとき、CPU51は、下位のジャンルIDに対応するミニコリオIDのうち、選択目的の目的IDに対応付けられたマッチ度が、ステップS24で取得された最小値よりも低いミニコリオIDを取得する。そして、CPU51は、取得したミニコリオIDを、下位を示す識別情報と対応付けて選択ミニコリオリストに登録する。次いで、CPU51は、第2実行順決定処理を実行する。
第2実行順決定処理の内容は、第1実行順決定処理の内容と基本的に同様である。そのため、図7を用いて第2実行順決定処理を説明する。ステップS31において運動ブロック数が2以上ではない場合、CPU51は、ステップS32に進む。ステップS32において、CPU51は、選択ミニコリオリストにおいて上位に対応するミニコリオIDの中から、運動ブロック1における実行順が1番目となるミニコリオのミニコリオIDを、例えばランダムに決定する。CPU51は、決定したミニコリオIDと実行順番号1とを対応付けて運動メニューに登録する。そして、CPU51は、決定したミニコリオIDを選択ミニコリオリストから削除する。そして、CPU51は、第1実行順決定処理の場合と同様にステップS33を実行して、第2実行順決定処理を終了させる。
ステップS31において運動ブロック数が2以上である場合、CPU51は、ステップS34に進む。ステップS34において、CPU51は、第2決定方法及び選択されたレッスン時間に対応するブロック内訳表から、ミニコリオ決定処理のステップS20で取得し上位と下位のミニコリオ数に対応する各運動ブロックの上位と下位の割当数を取得する。次いで、CPU51は、第1実行順決定処理の場合と同様にステップS35〜S37を実行する。ステップS37においてブロック番号iが1である場合、CPU51は、ステップS38に進む。ステップS38において、CPU51は、選択ミニコリオリストにおいて上位に対応するミニコリオIDの中から、運動ブロック1における実行順が1番目となるミニコリオのミニコリオIDを、例えばランダムに決定する。CPU51は、決定したミニコリオIDと実行順番号Jとを対応付けて運動メニューに登録する。また、CPU51は、運動ブロック1における上位の割当数から1を減算する。次いで、CPU51は、実行順番号Jに1を加算する。そして、CPU51は、決定したミニコリオIDを選択ミニコリオリストから削除する。
次いで、CPU51は、ブロック内訳表に従って、運動ブロック1における2番目以降の実行順に対応付けるミニコリオIDを、現時点で選択ミニコリオリストに登録されているミニコリオIDの中から決定する(ステップS39)。例えば、CPU51は、選択ミニコリオリストからミニコリオIDをランダムに取得する。このとき、CPU51は、上位と下位のうち、運動ブロック1における現時点での割当数が1以上である上位又は下位に対応するミニコリオIDの中から取得する。次いで、CPU51は、取得したミニコリオIDと実行順番号Jとを対応付けて運動メニューに登録する。次いで、CPU51は、取得したミニコリオIDに対応付けられた上位又は下位の割当数から1を減算する。また、CPU51は、実行順番号Jに1を加算する。次いで、CPU51は、選択ミニコリオリストから取得したミニコリオIDを、選択ミニコリオリストから削除する。CPU51は、これらの処理を、運動ブロック1における上位と下位の全ての割当数が0になるまで繰り返す。ステップS39を終えると、CPU51は、ステップS40を実行する。
ステップS37においてブロック番号iが1ではない場合、CPU51は、ステップS41に進む。ステップS41において、CPU51は、ブロック内訳表に従って、運動ブロックiにおける上位と下位に対応付けるミニコリオIDを、現時点で選択ミニコリオリストに登録されているミニコリオIDの中から決定する。例えば、CPU51は、選択ミニコリオリストからミニコリオIDをランダムに取得する。このとき、CPU51は、上位と下位のうち、運動ブロックiにおける現時点での割当数が1以上である上位又は下位に対応付けられたミニコリオIDの中から取得する。次いで、CPU51は、取得したミニコリオIDと実行順番号Jとを対応付けて運動メニューに登録する。次いで、CPU51は、取得したミニコリオIDに対応付けられた上位又は下位の割当数から1を減算する。また、CPU51は、実行順番号Jに1を加算する。次いで、CPU51は、選択ミニコリオリストから取得したミニコリオIDを、選択ミニコリオリストから削除する。CPU51は、これらの処理を、運動ブロックiにおける上位と下位の全ての割当数が0になるまで繰り返す。ステップS41を終えると、CPU51は、ステップS40を実行する。
ステップS36においてブロック番号iの値が運動ブロック数+1未満ではない場合(ステップS36:NO)、CPU51は、第2実行順決定処理を終了させる。第2実行順決定処理を終えると、CPU51は、ミニコリオ決定処理を終了させる。
ミニコリオ決定処理を終えると、CPU51は、図5に示すように、生成された運動メニューの内容をディスプレイ67に表示させる(ステップS4)。具体的に、CPU51は、運動レッスンを構成するミニコリオのジャンル名等を表示させる。例えば、「エアロビクス、格闘、ヨガで作成されました。」といったメッセージが表示される。次いで、CPU51は、運動メニューを再度生成するか否かを判定する(ステップS5)。このとき、CPU51は、利用者41がマウス62、リモコン66等により再生成を選択する操作を行ったと判定した場合には、運動メニューを再度生成すると判定する(ステップS5:YES)。この場合、CPU51は、ミニコリオ決定処理を再度実行する(ステップS3)。一方、CPU51は、利用者が運動レッスンを開始させる操作を行ったと判定した場合には、運動メニューを再度生成しないと判定する(ステップS5:NO)。この場合、CPU51は、ステップS6に進む。
ステップS6において、CPU51は、ウォーミングアップ及びクールダウンのそれぞれのミニコリオIDを決定する。そして、CPU51は、決定されたミニコリオIDを、生成された運動メニューに追加する。また、CPU51は、追加されたミニコリオIDに対応付ける楽曲IDを決定する。そして、CPU51は、決定した楽曲IDを運動メニューに追加する。また、CPU51は、運動メニューに含まれる各ミニコリオIDに対応付ける楽曲IDを決定する。そして、CPU51は、決定した楽曲IDを運動メニューに追加する。
次いで、CPU51は、運動コンテンツ再生処理を実行する(ステップS7)。先ず、CPU51は、運動メニューからウォーミングアップのミニコリオID及びこのミニコリオIDに対応付けられた楽曲IDを取得する。次いで、CPU51は、取得した楽曲IDに対応する楽曲データに基づいて、音声信号を音声出力部63に出力する。これにより、楽曲IDに対応する楽曲がスピーカ64から出力される。また、CPU51は、取得したミニコリオIDに対応する運動映像の静止画像を順次生成して表示制御部56に出力する。これにより、ミニコリオIDに対応する運動動作の運動映像がディスプレイ67に出力される。
ウォーミングアップの運動映像の出力が終了すると、CPU51は、実行順番号iを1に設定する。次いで、CPU51は、運動メニューから実行順番号iに対応するミニコリオID及び楽曲IDを取得する。次いで、CPU51は、取得した楽曲IDに対応する楽曲データに基づいて、音声信号を音声出力部63に出力する。また、CPU51は、取得したミニコリオIDに対応する運動映像の静止画像を順次生成して表示制御部56に出力する。
実行順番号iに対応するミニコリオの運動映像の出力を終えると、CPU51は、実行順番号iの値が、運動メニューに含まれるミニコリオIDの数未満であるか否かを判定する。実行順番号iの値がミニコリオIDの数未満である場合、CPU51は、実行順番号iに1を加算する。そして、CPU51は、上述と同様に、実行順番号iに対応するミニコリオの運動映像及び楽曲を出力させる。実行順番号iがミニコリオIDの数未満ではない場合、CPU51は、ウォーミングアップの場合と同様に、クールダウンの運動映像及び楽曲を出力させる。
運動コンテンツ再生処理を終えると、CPU51は、ステップS1に進む。ステップS1において、CPU51は、電源OFFが要求されたと判定した場合には(ステップS1:YES)、メイン処理を終了させる。
以上説明したように、本実施形態によれば、CPU51が、マッチ度テーブルに記憶された複数のジャンルIDのうち選択目的の目的IDに対応するマッチ度が所定の条件を満たすジャンルIDを第1ジャンルのジャンルIDとしてマッチ度テーブルから決定する。また、CPU51が、選択目的の目的IDに対応するマッチ度が、第1ジャンルのジャンルIDに対応するマッチ度よりも低いジャンルIDを第2ジャンルのジャンルIDとしてマッチ度テーブルから決定する。また、CPU51が、第1ジャンルのジャンルIDに対応する複数のミニコリオIDの中から第1ミニコリオのミニコリオIDを複数決定する。また、CPU51が、第2ジャンルのジャンルIDに対応する複数のミニコリオIDの中から、第1ミニコリオのミニコリオIDの数以下の数の第2ミニコリオのミニコリオIDを決定する。そして、CPU51が、第1ミニコリオのミニコリオIDと第2ミニコリオのミニコリオIDとを含む運動メニューを生成する。従って、運動目的の達成のために効果的でありながら、飽きが生じにくい運動メニューを生成することができる。
次に変形例を説明する。上記実施形態において出力端末5は、各運動ブロックにおいて、第2ミニコリオの数が第1ミニコリオの数よりも少なくなるように、各運動ブロックを構成する第1ミニコリオ及び第2ミニコリオを決定していた。これに加えて、出力端末5は、各運動ブロックにおいて、第2ミニコリオの運動時間の合計が第1ミニコリオの運動時間の合計よりも短くなるように、各運動ブロックを構成する第1ミニコリオ及び第2ミニコリオを決定してもよい。運動時間は運動に要する時間である。各運動ブロックにおいて第1ミニコリオを実行する時間が運動ブロック全体の半分を超えているので、運動目的の達成のためにより効果的な運動が運動ブロック単位で可能である。
例えば、運動動作ごとに運動時間が設定されている。例えば、データベース3には、運動動作ごとに、運動映像と運動時間とが対応付けて登録されている。各ミニコリオの運動時間は、ミニコリオを構成する運動動作の運動時間の合計である。例えば、HDD7には、ミニコリオIDに対応付けてミニコリオの運動時間が記憶される。
図6に示すミニコリオ決定処理において、出力端末5は、運動レッスンを構成する第1ミニコリオ及び第2ミニコリオのミニコリオIDを決定する。例えばこのときに、CPU51は、各運動ブロックを構成する第1ミニコリオ及び第2ミニコリオのミニコリオIDを決定してもよい。このとき、出力端末5は、第2ミニコリオの運動時間の合計が第1ミニコリオの運動時間の合計よりも短くなるように、第1ミニコリオ及び第2ミニコリオを決定する。例えば、出力端末5は、或る運動ブロックにおいて、割当数分の第1ミニコリオを例えばランダムに決定する。そして、出力端末5は、決定した第1ミニコリオに対応する運動時間をHDD7から取得する。そして、出力端末5は、運動時間の合計を計算する。また、CPU51は、割当数分の第2ミニコリオを例えばランダムに決定する。そして、出力端末5は、決定した第2ミニコリオに対応する運動時間をHDD7から取得する。そして、出力端末5は、運動時間の合計を計算する。第2ミニコリオの運動時間の合計が第1ミニコリオの運動時間以上である場合、出力端末5は、例えば第2ミニコリオを決定し直す。或いは、出力端末5は、第1ミニコリオを決定し直してもよい。こうして、出力端末5は、各運動ブロックを構成するミニコリオを決定する。
また、上記実施形態においては、本発明の情報処理装置が出力端末5に適用されていた。しかしながら、本発明の情報処理装置が配信サーバ2に適用されてもよい。例えば、配信サーバ2が、運動メニューを生成し、出力端末5が配信サーバ2から運動メニューをダウンロードしてもよい。また例えば、配信サーバ2が、生成した運動メニューに基づいて、音声データ及び動画データを生成してもよい。この場合の音声データは楽曲等を出力するためのデータであり、動画データは運動映像等を表示するためのデータである。運動レッスンが行われるとき、配信サーバ2は、音声データ及び動画データを、例えばストリーミング方式で出力端末5に送信する。これにより、配信サーバ2は、出力端末5により楽曲を出力させ、且つ、運動映像を表示させる。また、本発明の情報処理装置が出力端末5及び配信サーバ2に適用されてもよい。そして、出力端末5及び配信サーバ2は協働して処理を行ってもよい。