以下、本発明の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、運動を支援するための運動コンテンツを生成する運動コンテンツ生成システムに本発明を適用した場合の実施形態である。運動コンテンツは、運動を支援するための映像及び音声を含む。
[1.運動コンテンツ生成システム1の構成]
始めに、図1を参照して、本実施形態の運動コンテンツ生成システム1の構成について説明する。図1は、本実施形態の運動コンテンツ生成システム1の概要構成例を示す図である。図1に示すように、運動コンテンツ生成システム1は、配信サーバ2と、1つ以上の出力端末5と、インストラクター端末6と、閲覧端末11とを含んで構成されている。配信サーバ2、出力端末5、インストラクター端末6及び閲覧端末11は、ネットワーク10を介して接続可能になっている。ネットワーク10は、例えば、インターネットを含む。配信サーバ2は、本発明の情報処理装置の一例である。配信サーバ2には、データベース3が接続されている。データベース3には、運動に関する情報や楽曲に関する情報が登録されている。配信サーバ2は、データベース3に登録されている情報等を、定期的に又は出力端末5からの要求に応じて出力端末5に配信する。データベース3は、本発明の記憶手段の一例である。
出力端末5は、例えば、施設4に設置される端末装置である。出力端末5は、例えばパーソナルコンピュータであってもよい。出力端末5は、施設4の利用者41により利用される。施設4は、例えば、スポーツ施設であってもよい。施設4においては、複数の利用者41が運動レッスンを受ける。運動レッスンは、複数の運動動作から構成される運動のレッスンである。施設4の中には、スタジオ8と個人ブース9とがある。スタジオ8及び個人ブース9のそれぞれに、出力端末5及びモニタ57が設置される。スタジオ8に設置された出力端末5は、本発明の集団利用端末の一例である。また、個人ブース9に設置された出力端末5は、本発明の個人利用端末の一例である。スタジオ8では、インストラクターの指導のもと、利用者41が運動レッスンを受ける。スタジオ8で行われるレッスンをスタジオレッスンという。スタジオ8では、複数の利用者41がスタジオレッスンに参加することができる。スタジオ8で行われる運動をスタジオ運動という。個人ブース9で行われるレッスンを個人レッスンという。個人ブース9では、利用者41が単独で運動を行う。つまり、インストラクターの指導がない状態で、利用者41が運度動作を行う。個人ブース9では、1人の利用者41が運動を行ってもよいし、複数の利用者41が運動を行ってもよい。個人ブース9で行われる運動を個人運動という。スタジオ運動及び個人運動を総称して、レッスン運動と称する。
出力端末5は、モニタ57と接続可能である。モニタ57は、複数のスピーカ64とディスプレイ67とを備える表示装置であってもよい。この場合、出力端末5は、ディスプレイ67と接続可能である。また、出力端末5は、スピーカ64と接続可能である。出力端末5がモニタ57へ音声信号を出力することにより、スピーカ64により楽曲等が出力される。ディスプレイ67は、本発明の出力手段の一例である。出力端末5がモニタ57へ映像信号を出力することにより、ディスプレイ67に運動映像等が表示される。運動映像は、運動動作を行うフィギュア83を映し出した動画である。フィギュア83は、例えば、人、動物、仮想上の生き物、ロボット等のかたちをした仮想物である。出力端末5は、スピーカ64から出力される楽曲と、ディスプレイ67に表示されるフィギュア83の動きとが同期するように、信号を出力する。楽曲と運動映像とを出力することは、運動コンテンツを出力することの一例である。利用者41は、スピーカ64により出力される楽曲を聴きながら、ディスプレイ67に表示されるフィギュア83を見て、運動を行うことができる。なお、スタジオレッスンでは、出力端末5により再生された運動コンテンツを視聴しながら利用者41が運動を行ってもよい。あるいは、スタジオレッスンでは、出力端末5が運動コンテンツを再生せずに、利用者41が運動を行ってもよい。何れの場合でも、インストラクターの指導のもとで利用者41は運動を行うことができる。操作者42は、リモコン66等を用いて出力端末5を操作することができる。操作者42は、例えば、利用者41であってもよいし、インストラクターであってもよい。
インストラクター端末6は、インストラクターが利用する端末装置である。例えば、インストラクター端末6を操作することにより、インストラクターは、運動レッスンの内容を設定する。閲覧端末11は、利用者41が利用可能な端末装置である。例えば、閲覧端末11は、運動レッスンに関する情報を表示する。インストラクター端末6や閲覧端末11は、例えばパーソナルコンピュータであってもよい。
[2.運動の紹介]
利用者41は、自分が既に実行した個人運動やスタジオ運動などのレッスン運動をより上手に行えるようにしたいために、実行した運動の基礎となる運動を行いたいという要望がある。レッスン運動に対して、基礎となる運動を基礎運動という。そこで、配信サーバ2は、レッスン運動とレッスン運動の基礎となる運動との対応関係を示す運動対応表を管理する。例えば、インストラクターが、出力端末5又はインストラクター端末6を操作することにより、対応関係を登録してもよい。運動対応表の詳細は後述する。配信サーバ2は、運動対応表に基づいて、特定のレッスン運動の基礎となる運動に関する情報を、利用者41に紹介する運動の情報として、個人ブース9に設置された出力端末5に出力させる。基礎となる運動に関する情報は、例えば、運動の名称や運動を構成する複数の運動動作の一覧であってもよい。配信サーバ2は、例えば、出力端末5を制御して、紹介する運動の情報をディスプレイ67に表示させてもよいし、スピーカ64から出力させてもよい。また、紹介する運動の情報は、例えば運動コンテンツであってもよい。つまり、配信サーバ2は、出力端末5を制御して、紹介する運動の運動コンテンツの運動映像をディスプレイ67に表示させ、運動コンテンツの楽曲をスピーカ64により出力させてもよい。また、配信サーバ2は、紹介する運動の情報を閲覧端末11に出力させてもよい。
なお、例えば出力端末5が運動対応表を記憶し、出力端末5が運動対応表に基づいて、紹介する運動に関する情報を出力してもよい。また例えば、出力端末5及び配信サーバ2が協働して処理を行ってもよい。
基礎運動は、例えば、レッスン運動を構成する運動動作のうち少なくとも1つの運動動作の基礎となる複数の運動動作で構成されてもよい。例えば、個人運動が運動動作A〜Cで構成され、基礎運動が運動動作a及びbで構成されているとする。基礎運動を構成する運動動作を基礎運動動作という。レッスン運動を構成する運動動作を、レッスン運動動作という。基本的に、基礎運動動作は、レッスン運動動作よりも難易度が低い運動動作である。難易度とは、運動動作の難しさを示す。例えば、基礎運動動作は、レッスン運動動作の動きと基本的に同じ動きをする運動動作であって、且つ、レッスン運動動作の運動負荷よりも運動負荷が小さい運動動作であってもよい。運動負荷は、運動を行うときに利用者41の身体にかかる負荷である。運動負荷は、例えば、運動テンポによって調節することができる。運動テンポは、運動を行う速さを示すテンポである。例えば、エアロビクスなどの有酸素運動の運動動作では、運動テンポが速いほど運動負荷が大きくなる。また例えば、バーベル運動などの筋力トレーニングの運動動作では、運動テンポが遅いほど運動負荷が大きくなる。また、基礎運動動作は、例えば、利用者41の複数の身体部位のうち、レッスン運動動作で実際に動かす身体部位よりも少ない身体部位を動かす運動動作であって、且つ、基礎運動動作で動かす身体部位の動作は、レッスン運動動作で動かす身体部位の動作と基本的に同じであってもよい。例えば、レッスン運動動作が体全体を動かす運動動作である場合、基礎運動動作が例えば上半身のみを動かす運動動作であり、レッスン運動動作における上半身の動きと基礎運動動作における上半身の動きとが同じであってもよい。
図2(A)は、運動対応表において、個人運動と基礎運動の対応関係の一例を示す図である。また、図2(B)は、スタジオ運動と基礎運動の対応関係の一例を示す図である。例えば、データベース3に運動対応表が登録されている。図2(A)及び(B)に示すように、運動対応表には、レッスン運動の運動IDと基礎運動の運動IDとが対応付けて記憶される。運動IDは、運動を識別可能な識別情報である。運動IDは、本発明の第1運動情報、第2運動情報、特定運動情報の一例である。図2(A)及び(B)に示すように、レッスン運動は、複数の基礎運動と対応付けられてもよい。また、基礎運動は、複数のレッスン運動と対応付けられてもよい。例えば、図2(A)において、個人運動P2は、基礎運動B2及びB4と対応付けられている。また、図2(A)及び(B)に示すように、基礎運動B4は、個人運動P2及びP3、スタジオ運動T2及びT4と対応付けられている。
図2(C)は、運動対応表により定義された運動の対応関係を概念的に表す運動マップの一例を示す図である。図2(C)において、円は運動を表し、円同士を結ぶ線は、対応関係があることを示す。例えば、個人運動P1と基礎運動B1とが対応付けられている。図2(C)に示すように、個人運動同士を対応付けたり、スタジオ運動同士を対応付けたりすることが可能になっていてもよい。例えば、難易度別にレッスン運動が分けられる。例えば、難易度として上級、中級及び初級があってもよい。従って、個人運動として、上級の個人運動、中級の個人運動及び初級の個人運動がある。また、スタジオ運動として、上級のスタジオ運動、中級のスタジオ運動及び初級のスタジオ運動がある。なお、難易度は2段階あってもよいし、4段階以上あってもよい。対応付けられた運動の組み合わせにおいて、難易度が低い方の運動は難易度が高い方の運動の基礎となる運動である。一方、難易度が高い方の運動は難易度が低い方の運動の応用となる運動である。例えば、初級のスタジオ運動T1と中級のスタジオ運動T5が対応付けられている。この場合、スタジオ運動T1はスタジオ運動T5の基礎であり、スタジオ運動T5はスタジオ運動T1の応用である。配信サーバ2は、運動対応表に基づいて、特定のレッスン運動の応用となる別のレッスン運動を出力端末5のディスプレイ67に表示させてもよい。
初級の運動は、中級の運動及び上級の運動の基礎となることができる。また、中級の運動は、上級の運動の基礎となることができる。また、基礎運動は、何れの難易度の運動に対しても基礎となることができる。例えば、図2(C)において、初級の個人運動P1は、中級の個人運動P5と上級の個人運動P8のそれぞれの基礎である。また、中級の個人運動P6は、上級の個人運動P8及びP9のそれぞれの基礎である。また、基礎運動B5は、初級の個人運動P4、中級の個人運動P6及び初級のスタジオ運動T3の基礎である。
配信サーバ2は、利用者41に紹介する運動を決定するため、利用者41が実行した運動の運動IDの取得する必要がある。この運動IDを、特定実行運動の運動IDという。配信サーバ2は、利用者41の運動の実行ログを記憶する。例えば、利用者41が個人ブース9に設置された出力端末5を利用するとき、利用者41のユーザIDを出力端末5に入力する。ユーザIDは、利用者41を識別可能な識別情報である。例えば、運動コンテンツ生成システム1から利用者41にIDカードが付与されてもよい。IDカードには、ユーザIDが記憶されている。出力端末5は、カードリーダ68を備える。利用者41がIDカードをカードリーダ68に近づけることにより、出力端末5は、カードリーダ68によりIDカードからユーザIDを取得する。または、利用者41がキーボード61を操作してユーザIDを入力してもよい。次いで、利用者41は、出力端末5やリモコン66等を操作して、実行したい個人運動を選択する。出力端末5は、選択された個人運動の運動コンテンツを再生し、利用者41は、再生される運動コンテンツに合わせて運動を実行する。出力端末5は、運動コンテンツを再生した個人運動の運動IDを取得し、運動ID及びユーザID等を含む実行ログを配信サーバ2へ送信する。配信サーバ2は、出力端末5から送信されてきた実行ログをデータベース3に登録する。
利用者41がユーザIDを入力した後、利用者41は、出力端末5やリモコン66等を操作して、基礎又は応用となる運動の紹介を選択したとする。すると、出力端末5は、入力されたユーザIDを含む紹介要求を配信サーバ2へ送信する。配信サーバ2は、紹介要求に含まれるユーザIDで実行ログを検索し、検索された実行ログから運動IDを取得する。このとき、配信サーバ2は、取得した運動IDを特定実行運動の運動IDに決定してもよい。そして、配信サーバ2は、運動対応表において、実行ログから取得した運動IDに対応付けられた運動IDを、利用者41に紹介する運動の運動IDとして決定してもよい。この場合、利用者41が少なくとも1回実行したことがある運動の基礎又は応用となる運動が紹介される。
また、配信サーバ2は、実行ログから取得した運動IDに基づいて、利用者41が運動を実行した回数に基づく順位を決定し、順位に基づいて、特定実行運動の運動IDを取得してもよい。例えば、各運動には、運動の属性が付与されている。運動の属性として、運動のジャンル、運動を構成する運動動作、運動の識別情報である運動ID等がある。配信サーバ2は、ジャンルごとの実行回数、運動動作ごとの実行回数及び運動ごとの実行回数を計算する。配信サーバ2は、ジャンル、運動動作及び運動ごとに順位を決定する。このとき、配信サーバ2は、実行回数が多いほど高い順位を決定する。配信サーバ2は、複数のジャンルのうち順位が所定順位以上であるジャンル、複数の運動動作のうち順位が所定順位以上である運動動作、及び複数の運動のうち順位が所定順位以上である運動をそれぞれ特定する。配信サーバ2は、所定順位以上のジャンルの運動の運動ID、所定順位以上の運動動作を含む運動の運動ID、及び所定順位以上の運動の運動IDを、特定実行運動の運動IDとして取得する。この場合、利用者41がこれまでに多く実行したジャンルの運動、多く実行した運動動作を含む運動、又は多く実行した運動の何れかの基礎又は応用となる運動が紹介される。なお、配信サーバ2は、3つの属性について順位を決定するのではなく、例えば、1つ又は2つの属性のみについて順位を決定して、特定実行運動の運動IDを取得してもよい。
特定実行運動の運動IDが取得された後、配信サーバ2は、運動対応表において、特定実行運動に対応付けられた運動IDを、基礎又は応用となる運動の運動IDとして決定する。このときに決定された運動IDを、第1紹介運動の運動IDという。配信サーバ2は、第1紹介運動の運動IDを決定した後、運動対応表において、第1紹介運動の運動IDに対応付けられた運動IDを、第2紹介運動の運動IDとして決定してもよい。そして、配信サーバ2は、第2紹介運動の運動IDを、利用者41に紹介する運動の運動IDに決定してもよい。このとき、配信サーバ2は、特定実行運動の運動IDとは異なる運動IDを、第2紹介運動の運動IDに決定してもよい。例えば、配信サーバ2は、個人運動の基礎となる基礎運動を第1紹介運動に決定し、決定した基礎運動を基礎とする個人運動を第2紹介運動に決定してもよい。また、配信サーバ2は、個人運動の基礎となる基礎運動を第1紹介運動に決定し、決定した基礎運動を基礎とするスタジオ運動を第2紹介運動に決定してもよい。
[3.各装置の構成]
次に、図1を参照して、運動コンテンツ生成システムに含まれる各装置の構成について説明する。
[3−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は、時計機能及びタイマー機能を有する。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や各種制御プログラム等が記憶されている。制御プログラムは、コンピュータとしてのCPU21に、取得ステップと、決定ステップと、制御ステップとを少なくとも実行させる。各種プログラムは、例えば、所定のサーバからネットワーク10を介してダウンロードされるようにしてもよい。また、各種プログラムは、記録媒体29に記録されてディスクドライブ28を介して読み込まれるようにしてもよい。
データベース3には、モーションデータ、楽曲データ、運動リスト情報、運動対応表、実行ログ、紹介運動情報等のデータが登録されている。モーションデータは、三次元仮想空間におけるフィギュア83の運動動作を定義するデータである。モーションデータは、ディスプレイ67にフィギュア83の運動動作を表示させるためのデータである。モーションデータは、運動動作の進行に応じたフィギュア83の身体の各部の座標を含む。なお、モーションデータは、2次元平面におけるフィギュア83の運動動作を定義するデータであってもよい。そして、出力端末5は、モーションデータに基づいて、フィギュア83の二次元画像をディスプレイ67に表示させてもよい。モーションデータは、モーション情報、運動動作名、運動テンポ、ジャンル情報、難易度、部位情報と対応付けて登録される。モーション情報は、運動動作を示す識別情報である。モーション情報は、本発明の第1動作情報、第2動作情報及び特定動作識別情報の一例である。運動動作名は、運動動作の名称である。運動テンポは、運動動作を行う速度を示す。部位情報は、利用者41の複数の身体部位のうち運動動作で動かす身体部位を示す情報である。
楽曲データは、スピーカ64により楽曲を出力するための演奏データである。楽曲データは、例えば、MIDI(Musical Instrument Digital Interface)形式のデータであってもよい。楽曲データは、楽曲ID、楽曲名、アーティスト名、オリジナルのテンポ、楽曲の演奏パートの構成、歌詞等の情報を含む。楽曲IDは、楽曲の識別情報である。また、楽曲データは、演奏パートの切り替わりのタイミング等を規定する。
運動リスト情報は、運動の構成を定めた情報である。例えば、運動リスト情報は、インストラクターによる操作に基づいて、出力端末5やインストラクター端末6が生成する。具体的に、運動リスト情報は、運動ID、運動名、運動種別、ジャンル情報、難易度、複数のユニット情報等を含む。運動名は、運動の名称である。運動種別は、運動の種別として、スタジオ運動、個人運動及び基礎運動の何れかを示す。ユニット情報は、運動を構成する運動動作ごとに運動リスト情報に格納される。ユニット情報は、モーション情報、順序番号及び楽曲ID等を含む。モーション情報は、運動を構成する運動動作を示す。順序番号は、運動を構成する複数の運動動作の中でモーション情報が示す運動動作が行われる順番を示す。楽曲IDは、運動に割り当てられた楽曲を示す。楽曲IDは、モーション情報が示す運動動作が行われる運動映像がディスプレイ67に表示されているとき、出力端末5がスピーカ64から出力させる楽曲を示す。運動リスト情報に含まれる運動ID、ジャンル情報及びモーション情報は、本発明の属性情報の一例である。
紹介運動情報は、利用者41に紹介する運動として決定された運動に関する情報である。具体的に、紹介運動情報は、ユーザID、紹介する運動として決定された基礎運動、個人運動、スタジオ運動のそれぞれの運動IDと、紹介日を含む。ユーザIDは、運動が紹介された利用者41を示す。紹介日は、運動が紹介された日付を示す。
[3−2.出力端末5の構成]
図1に示すように、出力端末5は、CPU51、ROM52、RAM53、バス54、I/Oインタフェイス55、表示制御部56、ディスクドライブ58、ネットワーク通信部60、音声出力部63、信号受信部65及びHDD7を備える。CPU51は、バス54を介して、ROM52、RAM53、バス54及びI/Oインタフェイス55に接続されている。CPU51は、時計機能及びタイマー機能を有する。CPU51は、ROM52やHDD7に記憶されたプログラムを実行することにより、出力端末5の各部を制御する。I/Oインタフェイス55には、HDD7、表示制御部56、音声出力部63、ディスクドライブ58、ネットワーク通信部60、キーボード61、マウス62、信号受信部65及びカードリーダ68が接続されている。表示制御部56は、CPU51の制御に基づいて映像信号をモニタ57に出力する。音声出力部63は、CPU51の制御に基づいて音声信号をモニタ57に出力する。ディスクドライブ58は、記録媒体59に対するデータの書き込み及び読み出しを行う。信号受信部65は、リモコン66から出力される信号を受信する。リモコン66は、操作者42が出力端末5を操作するためのものである。
HDD7には、配信サーバ2から配信されたモーションデータ、楽曲データ、運動リスト情報、運動対応表等が記憶される。また、HDD7には、場所種別が記憶される。場所種別は、出力端末5が、スタジオに設置されているか、個人ブースに設置されているかを示す。
HDD7には、更に、OS、運動支援プログラム、3Dエンジン、ミュージックシーケンサ等の各種プログラム等が記憶されている。運動支援プログラムは、利用者41の運動を支援するためのプログラムである。3Dエンジンは、モーションデータに基づいて、三次元仮想空間で運動動作するフィギュア83を二次元平面に投影した画像を生成するためのプログラムである。画像を生成する処理は、射影変換、クリッピング、隠面消去、シェーディング、テクスチャマッピング等を含む。CPU51は、3Dエンジンを実行して、像を順次生成する。CPU51は、順次生成した複数の静止画像から動画データを生成する。CPU51が動画データに含まれる静止画像を表示制御部56へ順次出力することで、ディスプレイ67には、運動映像が表示される。
ミュージックシーケンサは、楽曲データを再生するためのプログラムである。CPU51は、ミュージックシーケンサを実行することにより、楽曲データに対応する音声信号を生成する。また、CPU51は、ミュージックシーケンサを実行することにより、各種のイベントを発生させる。イベントとして、例えば、テンポに応じて所定時間間隔で発生するメッセージがある。このメッセージは、MIDIクロックや同期メッセージと呼ばれる。
各種プログラムは、例えば、配信サーバ2等のサーバからネットワーク10を介してダウンロードされるようにしてもよい。また、各種プログラムは、記録媒体59に記録されてディスクドライブ58を介して読み込まれるようにしてもよい。なお、3Dエンジンやミュージックシーケンサは、プログラムではなく、専用のハードウェアであってもよい。そして、出力端末5は、ハードウェアとしての3Dエンジンやミュージックシーケンサを備えてもよい。
CPU51は、設定されたテンポに従って、楽曲データに対応する音声信号を音声出力部63へ出力させるとともに、生成した画像に対応する映像信号を表示制御部56から出力させる。CPU51は、同期メッセージに基づいて、楽曲の音声信号の出力タイミングと運動映像の映像信号の出力タイミングとを同期させる。これにより、スピーカ64から出力される楽曲に同期して運動動作を行うフィギュア83がディスプレイ67に表示される。
[4.運動コンテンツ生成システム1の動作]
次に、図3乃至図5を参照して、運動コンテンツ生成システム1の動作を説明する。なお、以下においては、レッスン運動の運動IDと基礎運動の運動IDとを対応付けて運動対応表に記憶し、レッスン運動の基礎となる基礎運動を第1紹介運動として決定する場合の例を説明する。
図3は、出力端末5のCPU51の対応付け処理の処理例を示すフローチャートである。例えば、インストラクターが運動レッスンの運動リスト情報を作成するための操作を行ったときに、対応付け処理が開始される。なお、インストラクター端末6が対応付け処理を実行してもよい。インストラクターは、キーボード61やマウス62を操作して、運動種別を選択する。すると図3に示すように、CPU51は、選択された運動種別が個人運動であるか否かを判定する(ステップS1)。このとき、CPU51は、運動種別が個人運動ではないと判定した場合には(ステップS1:NO)、ステップS5に進む。一方、CPU51は、運動種別が個人運動であると判定した場合には(ステップS1:YES)、ステップS2に進む。
ステップS2において、CPU51は、個人運動の運動リスト情報を生成する。例えば、インストラクターは、運動名、ジャンル情報、難易度等を入力する。CPU51は、新しい運動IDを生成し、運動ID、入力された運動名、ジャンル情報、難易度、個人運動を示す運動種別等を含む運動リスト情報を生成する。また、CPU21は、運動動作の一覧をディスプレイ67に表示する。このとき、CPU21は、例えば、運動動作名、運動動作のジャンル、難易度、運動テンポ、運動動作で動かす身体部位等を表示してもよい。インストラクターは、一覧の中から所望の運動動作を複数選択する。CPU51は、インストラクターが選択した運動のモーション情報をHDD7から取得する。また、CPU51は、モーション情報ごとに、楽曲IDを決定する。例えば、インストラクターが楽曲を選択し、選択された楽曲の楽曲IDをCPU51が取得してもよいし、CPU51が自動的に楽曲IDを決定してもよい。CPU51は、モーション情報、楽曲ID及び順序番号を含むユニット情報を生成する。そして、CPU51はユニット情報を運動リスト情報に追加する。CPU51は、このようにして生成された運動リスト情報を配信サーバ2へ送信する。配信サーバ2は、受信した運動リスト情報をデータベース3に登録する。CPU51は、ステップS2を終えると、ステップS3に進む。
ステップS3において、CPU51は、個人運動の基礎となる基礎運動の運動IDを決定する。例えば、CPU21は、基礎運動の一覧をディスプレイ67に表示させる。このとき、CPU21は、例えば、運動名、運動のジャンル、難易度等を表示してもよい。また、CPU21は、例えば、基礎運動を構成する運動動作の運動動作名、ジャンル、難易度、運動テンポ、運動動作で動かす身体部位等を表示してもよい。インストラクターは、一覧の中から所望の基礎運動を1又は複数選択する。CPU51は、選択された基礎運動の運動IDをHDD7から取得する。次いで、CPU51は、個人運動の運動IDと基礎運動の運動IDとを対応付けて配信サーバ2へ送信する(ステップS4)。配信サーバ2は、受信した個人運動の運動IDと基礎運動の運動IDとを対応付けて運動対応表に登録する。CPU51は、ステップS4を終えると、対応付け処理を終了させる。
ステップS5において、CPU51は、選択された運動種別がスタジオ運動であるか否かを判定する。このとき、CPU51は、運動種別がスタジオ運動ではないと判定した場合には(ステップS5:NO)、対応付け処理を終了させる。一方、CPU51は、運動種別がスタジオ運動であると判定した場合には(ステップS5:YES)、ステップS6に進む。
ステップS6において、CPU51は、スタジオ運動の運動リスト情報を生成する。運動種別がスタジオ運動であることを除き、ステップS6の処理はステップS2と同様であってもよい。次いで、CPU51は、ステップS3と同様に、スタジオ運動の基礎となる基礎運動の運動IDを決定する(ステップS7)。次いで、CPU51は、スタジオ運動の運動IDと基礎運動の運動IDとを対応付けて配信サーバ2へ送信する(ステップS8)。配信サーバ2は、受信したスタジオ運動の運動IDと基礎運動の運動IDとを対応付けて運動対応表に登録する。CPU51は、ステップS8を終えると、対応付け処理を終了させる。
図4は、個人ブース9に設置された出力端末5のCPU51の紹介処理の処理例を示すフローチャートである。例えば、利用者41が出力端末5にユーザIDを入力したときに開始される。図4に示すように、CPU51は、入力されたユーザIDをカードリーダ68から取得する(ステップS11)。次いで、利用者41は、リモコン66を操作して、運動の紹介を利用するか否かを選択する。そこで、CPU51は、利用者が運動の紹介を利用するか否かを判定する(ステップS12)。このとき、CPU51は、利用者が運動の紹介を利用しないと判定した場合には(ステップS12:NO)、ステップS13に進む。ステップS13において、CPU51は、運動コンテンツを再生する運動を決定する。具体的に、CPU51は、個人運動の一覧をディスプレイ67に表示させる。利用者41は、一覧の中から所望の個人運動を選択する。CPU51は、選択された個人運動の運動IDを、運動コンテンツを再生する運動の運動IDとしてHDD7から取得する。次いで、CPU51は、ステップS19に進む。
一方、CPU51は、利用者が運動の紹介を利用すると判定した場合には(ステップS12:YES)、ステップS14に進む。ステップS14において、CPU51は、配信サーバ2から紹介運動情報を取得する。具体的に、CPU51は、取得したユーザIDを含む紹介要求を送信する。紹介要求を受信した配信サーバ2は、利用者41に紹介する運動の運動IDを決定し、決定した運動IDを含む紹介運動情報を出力端末5に送信する。この処理の詳細は後述する。CPU51は、配信サーバ2から送信された紹介運動情報を受信する。CPU51は、ステップS14を終えると、ステップS15に進む。ステップS15において、CPU51は、紹介する運動の運動種別が基礎運動又は個人運動であるか否かを判定する。例えば、CPU51は、運動種別として、基礎運動、個人運動及びスタジオ運動をディスプレイ67に表示させる。利用者は、表示された運動種別の中から何れかの運動種別を選択する。CPU51は、スタジオ運動が選択された場合、紹介する運動の運動種別が基礎運動及び個人運動の何れでもないと判定する(ステップS15:NO)。この場合、CPU51は、ステップS16に進む。ステップS16において、CPU51は、スタジオ運動に関する情報をディスプレイ67に一覧表示させる。具体的に、CPU51は、受信した紹介運動情報に含まれる運動IDの中からスタジオ運動の運動IDを取得する。次いで、CPU51は、取得した運動IDに対応する運動リスト情報をHDD7から取得する。次いで、CPU51は、運動リスト情報から運動名及びモーション情報を取得する。次いで、CPU51は、取得したモーション情報に対応する運動動作名をHDD7から取得する。次いで、CPU51は、運動名、スタジオ運動を構成する運動動作の一覧等を表示させる。CPU51は、ステップS16を終えると、紹介処理を終了させる。
一方、CPU51は、基礎運動又は個人運動が選択された場合、紹介する運動の運動種別が基礎運動又は個人運動であると判定する(ステップS15:YES)。この場合、CPU51は、ステップS17に進む。ステップS17において、CPU51は、ステップS16の場合と同様に、基礎運動又は個人運動に関する情報をディスプレイ67に一覧表示させる。次いで、CPU51は、運動コンテンツを再生する運動を決定する。具体的に、CPU51は、一覧の中から利用者41により選択された運動の運動IDを、運動コンテンツを再生する運動の運動IDとしてHDD7から取得する(ステップS18)。次いで、CPU51は、ステップS19に進む。
ステップS19において、CPU51は、選択された運動の運動コンテンツを再生する。具体的に、CPU51は、取得した運動IDに対応する運動リスト情報をHDD7から取得する。次いで、CPU51は、運動リスト情報から順序番号が1であるユニット情報を取得する。CPU51は、ユニット情報に含まれるモーション情報に対応するモーションデータ及び運動テンポに基づいて、運動映像の映像信号を表示制御部56からディスプレイ67へ出力させる。また、CPU51は、取得したユニット情報に含まれる楽曲IDに対応する楽曲データに基づいて、楽曲の音声信号を、音声出力部63からスピーカ64へ出力させる。CPU51は、運動テンポに従って、映像信号及び音声信号を出力させる。運動映像の映像信号の出力が終了すると、CPU51は、運動リスト情報から順序番号が2であるユニット情報を取得する。そして、CPU51は、順序番号が1であるユニット情報の場合と同様の処理を実行する。こうして、CPU51は、順序番号に従ってユニット情報を順次取得して運動コンテンツを再生する。そして、CPU51は、運動リスト情報に含まれる全てのユニット情報について映像信号及び音声信号の出力が終了すると、運動コンテンツの再生を終了させる。
次いで、CPU51は、運動コンテンツが再生された運動の運動ID、カードリーダ68から取得したユーザID、現在日時等を含む実行ログを配信サーバ2へ送信する(ステップS20)。CPU51は、ステップS20を終えると、紹介処理を終了させる。なお、閲覧端末11が、利用者41の操作に基づいて、ステップS11〜S17と同様の処理を実行してもよい。
図5は、配信サーバ2のCPU21の紹介制御処理の処理例を示すフローチャートである。紹介制御処理は、例えば、配信サーバ2の電源がONとされたときに開始される。図5に示すように、CPU21は、電源OFFが要求されたか否かを判定する(ステップS31)。このとき、CPU21は、電源OFFが要求されていないと判定した場合には(ステップS31:NO)、ステップS32に進む。ステップS32において、CPU21は、出力端末5から紹介要求を受信したか否かを判定する。このとき、CPU21は、紹介要求を受信したと判定した場合には(ステップS32:YES)、ステップS35に進む。一方、CPU21は、紹介要求を受信していないと判定した場合には(ステップS32:NO)、ステップS33に進む。ステップS33において、CPU21は、出力端末5から実行ログを受信したか否かを判定する。このとき、CPU21は、実行ログを受信したと判定した場合には(ステップS33:YES)、ステップS34に進む。ステップS34において、CPU21は、受信した実行ログをデータベース3に登録する。CPU21は、ステップS34を終えた場合、又は、実行ログを受信していないと判定した場合には(ステップS33:NO)、ステップS31に進む。
ステップS35において、CPU21は、受信した紹介要求からユーザIDを取得する。次いで、CPU21は、取得したユーザIDを含む紹介運動情報をデータベース3から検索する。また、CPU21は、時計機能から今日の日付を取得する。そして、CPU21は、紹介運動情報に含まれる紹介日から、HDD37に予め記憶された所定期間が経過しているか否かを判定する(ステップS35)。このとき、CPU21は、紹介日から所定期間が経過していないと判定した場合には(ステップS35:NO)、ステップS36に進む。ステップS36において、CPU21は、検索した紹介運動情報を、紹介要求を送信してきた出力端末5へ送信する。CPU21は、ステップS36を終えると、ステップS31に進む。
一方、CPU21は、紹介日から所定期間が経過したと判定した場合には(ステップS35:YES)、ステップS37に進む。また、CPU21は、ステップS35で紹介運動情報を検索することができなかった場合も、ステップS37に進んでも良い。ステップS37において、CPU21は、運動の属性の順位を決定する。具体的に、CPU21は、紹介要求から取得したユーザIDを含む実行ログをデータベース3から検索する。次いで、CPU21は、各実行ログから個人運動の運動IDを取得する。次いで、CPU21は、個人運動ごとに、その個人運動を示す運動IDが実行ログから取得された回数を、実行回数としてカウントする。次いで、CPU21は、実行回数に応じて各個人運動の順位を決定する。このとき、CPU21は、実行回数が多い個人運動ほど順位を高くする。また、CPU21は、取得した各運動IDに対応する運動リスト情報をそれぞれデータベース3から取得する。次いで、CPU21は、取得した各運動リスト情報からジャンル情報を取得する。次いで、CPU21は、ジャンルごとに、そのジャンルを示すジャンル情報が運動リスト情報から取得された回数を、実行回数としてカウントする。次いで、CPU21は、実行回数に応じて各ジャンルの順位を決定する。このとき、CPU21は、実行回数が多いジャンルほど順位を高くする。また、CPU21は、取得した各運動リスト情報から複数のモーション情報を取得する。次いで、CPU21は、運動動作ごとに、その運動動作を示すモーション情報が運動リスト情報から取得された回数を、実行回数としてカウントする。次いで、CPU21は、実行回数に応じて各運動動作の順位を決定する。このとき、CPU21は、実行回数が多い運動動作ほど順位を高くする。
次いで、CPU21は、順位が上位である属性に対応する個人運動を、特定実行運動として特定する(ステップS38)。具体的に、CPU21は、HDD7から予め設定された所定順位を取得する。次いで、CPU21は、順位が決定された複数の個人運動のうち、所定順位以上である個人運動を決定する。そして、CPU21は、所定順位以上である個人運動の運動IDを特定実行運動の運動IDとして取得する。また、CPU21は、順位が決定された複数のジャンルのうち、所定順位以上であるジャンルを決定する。次いで、CPU21は、ステップS37で検索された運動リスト情報のうち、所定順位以上であるジャンルのジャンル情報を含む運動リスト情報を特定する。そして、CPU21は、特定した運動リスト情報に含まれる運動IDを、特定実行運動の運動IDとして取得する。また、CPU21は、順位が決定された複数の運動動作のうち、所定順位以上である運動動作を決定する。次いで、CPU21は、ステップS37で検索された運動リスト情報のうち、所定順位以上である運動動作のモーション情報を含む運動リスト情報を特定する。そして、CPU21は、特定した運動リスト情報に含まれる運動IDを、特定実行運動の運動IDとして取得する。
次いで、CPU21は、第1紹介運動として利用者41に紹介する基礎運動を決定する(ステップS39)。具体的に、CPU21は、ステップS37で取得された特定実行運動の運動IDと一致する運動IDを、運動対応表から検索する。次いで、CPU21は、運動対応表において、検索された運動IDに対応付けられた基礎運動の運動IDを、第1紹介運動の運動IDとして決定する。
次いで、CPU21は、第2紹介運動として利用者41に紹介する個人運動を決定する(ステップS40)。具体的に、CPU21は、第1紹介運動に決定された基礎運動の運動IDと一致する運動IDを運動対応表から検索する。次いで、CPU21は、運動対応表から、検索された運動IDに対応付けられた運動IDを取得する。次いで、CPU21は、取得された運動IDを含む運動リスト情報を、データベース3から取得する。次いで、CPU21は、運動対応表から取得した運動IDのうち、運動リスト情報に含まれる運動種別が個人運動である運動IDを、第2紹介運動としての個人運動の運動IDに決定する。このとき、CPU21は、第2紹介運動の運動IDから、特定実行運動の運動IDを除外する。
次いで、CPU21は、第2紹介運動として利用者41に紹介するスタジオ運動を決定する(ステップS41)。具体的に、CPU21は、ステップS40において運動対応表から取得した運動IDのうち、運動リスト情報に含まれる運動種別がスタジオ運動である運動IDを、第2紹介運動としてのスタジオ運動の運動IDに決定する。
次いで、CPU21は、紹介運動情報を送信する(ステップS42)。具体的に、CPU21は、紹介要求から取得したユーザID、ステップS39〜41で決定した運動ID、及び今日の日付を含む紹介運動情報を生成する。そして、CPU21は、生成した紹介運動情報を、紹介要求を送信してきた出力端末5へ送信する。CPU21は、紹介運動情報を送信することにより、基礎又は応用となる運動を出力端末5に表示させる。次いで、CPU21は、生成した紹介運動情報をデータベース3に登録する(ステップS43)。CPU21は、ステップS43の処理を終えると、ステップS31に進む。ステップS31において、CPU21は、電源OFFが要求されたと判定した場合には(ステップS31:YES)、紹介制御処理を終了させる。
次に、運動対応表において、レッスン運動と、そのレッスン運動の基礎又は応用となるレッスン運動とを対応付けする場合の処理の概要について説明する。図3の対応付け処理のステップS3及びS7において、CPU51は、インストラクターの選択に基づき、運動リスト情報が生成されたレッスン運動の基礎となるレッスン運動の運動IDや、運動リスト情報が生成されたレッスン運動の応用となるレッスン運動の運動IDを決定してもよい。そして、CPU51は、ステップS4及びS8において、運動リスト情報が生成されたレッスン運動の運動IDと、決定した運動IDとを対応付けて送信してもよい。この場合、CPU51は、基礎となる方の運動の運動IDと、応用となる方の運動の運動IDとが区別可能となるように送信する。例えば、CPU51は、基礎となる方の運動の運動IDに、基礎を示す識別情報を付加し、応用となる方の運動の運動IDに、応用を示す識別情報を付加して、配信サーバ2に送信する。配信サーバ2は、受信した運動IDを識別情報とともに運動対応表に登録する。図5に示す紹介制御処理のステップS39において、CPU21は、特定実行運動の運動IDと一致する運動IDを、運動対応表から運動対応表から検索する。そして、CPU21は、運動対応表において、検索された運動IDに対応付けられた運動IDを、第1紹介運動の運動IDとして決定する。このときに、CPU21は、特定実行運動の基礎となる運動の運動IDや応用となる運動の運動IDを取得することができる。図4に示す紹介処理のステップS15において、基礎となる運動、応用となる運動等を利用者41が選択することができるようになっていてもよい。CPU51は、利用者41の選択に応じた運動に関する情報をディスプレイ67に表示させる。
以上説明したように、本実施形態によれば、CPU21が、特定実行運動の運動IDを取得する。またCPU21が、運動対応表に記憶されている運動IDのうち、特定実行運動の運動IDと一致する運動IDを決定する。また、CPU21が、決定した運動IDに対応する運動IDを第1紹介運動の運動IDとして決定する。また、CPU21が、決定された運動IDが表す第1紹介運動を出力端末5に表示させる。従って、利用者41が実行した運動の基礎となる運動を利用者41に提示することができる。
なお、上記実施形態においては、複数の運動動作で構成された運動に対して本発明が適用されている。しかしながら、運動動作に対して本発明が適用されてもよい。例えば、運動動作の対応関係を示す運動動作対応表を配信サーバ2等が記憶する。具体的に、運動動作対応表には、運動動作のモーション情報と、その運動動作の基礎又は応用となる運度動作のモーション情報とが対応付けて登録される。配信サーバ2は、例えば、実行ログに含まれる運動IDに対応する運動リスト情報から、利用者41が実行した運動動作のモーション情報を取得する。配信サーバ2は、運動動作対応表から、取得したモーション情報と一致するモーション情報を検索する。次いで、配信サーバ2は、運動動作対応表において、検索したモーション情報に対応付けられたモーション情報を決定する。配信サーバ2は、決定したモーション情報を含む運動紹介情報を出力端末5へ送信する。出力端末5は、運動紹介情報に含まれるモーション情報が表す運動動作に関する情報をディスプレイ67に表示させる。
また、上記実施形態においては、出力端末5が運動コンテンツを生成していた。しかしながら、配信サーバ2が運動コンテンツを生成してもよい。例えば、配信サーバ2は、運動リスト情報に基づいて、楽曲の音声データと運動映像の動画データとを予め生成してもよい。そして、配信サーバ2は、音声データ及び動画データを、例えばストリーミング方式で出力端末5に送信する。これにより、配信サーバ2は、出力端末5により楽曲を出力させ、且つ、運動映像を表示させる。