(57)【要約】【課題】複数の運動パターンを結合したときでもキャラクタをリアルに動作させる画像生成装置を提供する。【解決手段】複数種類の基本運動パターンを組み合わせたフレーム情報に基づいて、キャラクタの動的な画像を生成する画像生成装置において、各基本運動パターンのフレーム情報と、２種類以上の基本運動パターンの全部又は各一部のフレーム情報を有する複合運動パターンのフレーム情報とをそれぞれ記憶する運動パターン記憶手段と、運動パターンのフレーム情報の結合を行う運動パターン結合手段と、結合したフレーム情報に基づいて、キャラクタの動的な画像を生成する画像生成手段とを備え、運動パターン結合手段は、互いに結合する運動パターンにそれぞれ含まれる同一種類の基本運動パターンのフレーム情報同士を補間したフレーム情報を用いて、運動パターンのフレーム情報の結合を行う。【選択図】図９
2009128923.tif 000002
【特許請求の範囲】
【請求項１】
複数種類の基本運動パターンを組み合わせたフレーム情報に基づいて、複数のパーツが関節で連結されたキャラクタの複数のポイントの座標位置を変化させ、前記キャラクタの動的な画像を生成する画像生成装置において、
各前記基本運動パターンのフレーム情報と、２種類以上の前記基本運動パターンの全部又は各一部のフレーム情報を有する複合運動パターンのフレーム情報とをそれぞれ記憶する運動パターン記憶手段と、
前記基本運動パターンのフレーム情報と前記複合運動パターンのフレーム情報との結合、及び前記複合運動パターン同士のフレーム情報の結合を行う運動パターン結合手段と、
前記運動パターン結合手段によって結合したフレーム情報に基づいて、前記キャラクタの動的な画像を生成する画像生成手段と、を備え、
前記運動パターン結合手段は、前記基本運動パターンのフレーム情報と前記複合運動パターンのフレーム情報との結合、及び前記複合運動パターン同士のフレーム情報の結合を行うときに、互いに結合する運動パターンにそれぞれ含まれる同一種類の基本運動パターンのフレーム情報同士を補間したフレーム情報を用いる
ことを特徴とする画像生成装置。
【請求項２】
前記運動パターン結合手段は、前記基本運動パターン又は前記複合運動パターンを結合先として前記基本運動パターンを結合するとき、当該結合しようとする基本運動パターンの一部のフレーム情報を用いて前記結合先の基本運動パターン又は複合運動パターンによるキャラクタ動作の動作終了前の所定期間におけるフレーム情報を補間して、前記基本運動パターンを結合する
ことを特徴とする請求項１に記載の画像生成装置。
【請求項３】
前記複合運動パターンのフレーム情報は、第１基本運動パターンの後半部分のフレーム情報と第２基本運動パターンの前半部分のフレーム情報とに加え、補間用フレーム情報として第１基本運動パターンの前半部分の一部のフレーム情報が含まれており、
前記運動パターン結合手段は、前記複合運動パターンを結合しようとするときに、前記補間用フレーム情報を用いることを特徴とする請求項１又は請求項２に記載の画像生成装置。
【請求項４】
コンピュータを、請求項１〜３のいずれか１項に記載の前記画像生成装置の各手段として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像生成装置及びそのプログラムに関し、さらに詳細には、複数のパーツが関節で連結されたキャラクタの複数のポイントの座標位置を変化させて当該キャラクタの動的な画像を生成するための画像生成装置及びそのプログラムに関する。
【背景技術】
【０００２】
従来より３次元の仮想的な人型のキャラクタを動的に変化させた画像を生成する画像生成装置が知られており、当該キャラクタのリアルな動作を再現するために、人間の動作をモーションキャプチャ等で計測して複数のフレーム情報からなるモーションデータを作成するようにしている。
【０００３】
この種の画像生成装置においては、キャラクタの運動パターンが少ないときには問題がない。しかし、近年ではキャラクタの動作をよりリアルにかつ多様に行わせることが必要となっており、そのために多数の運動パターンのモーションデータを用意しなければならなくなってきている。
【０００４】
そこで、このようなモーションデータ量の増大を抑える技術として、複数の運動パターンを補間（ブレンド）する技術が提案されている。
【０００５】
この補間技術として、補間用モーションデータを用意しておき、２つの運動パターン同士のモーションデータを結合するときに、この補間用モーションデータを用いることで複数の運動パターンを補間する方法を採用するものがある。
【０００６】
しかし、このような方法では、運動パターンの種類が多くなるにつれてその数に応じた補間用モーションデータを用意しなければならず、よりリアルに複雑な動作を再現しようとすると、無数の補間用モーションデータが必要となる。
【０００７】
そこで、特許文献１には、２つの運動パターンのモーションデータの結合を、一方の運動パターンのモーションデータの後半部分と他方の運動パターンのモーションデータの前半部分とをそれぞれの重み付け（補間度合い）を変化させて補間する演算を行って一つの繋ぎ用のモーションデータを作成し、この繋ぎ用のモーションデータを補間用モーションデータとして用いることにより複数の運動パターンを結合する技術が開示されている。
【０００８】
例えば、図２４に示すように、運動パターンＦのモーションデータ（フレーム(１)〜フレーム(ｎ)のフレーム情報）と運動パターンＧのモーションデータ（フレーム(１)〜フレーム(ｍ）のフレーム情報)とを結合する場合、運動パターンＦの終了付近のモーションデータ（フレーム(ｎ−４)〜フレーム(ｎ) のフレーム情報）と運動パターンＧの開始付近のモーションデータ（フレーム(１)〜フレーム(５) のフレーム情報）を補間することによって繋ぎ用のモーションデータ（フレーム(ａ)〜フレーム(ｅ)のフレーム情報）を作成する。
【０００９】
このときの補間を、図２５に示すように、運動パターンＦのモーションデータのうち最終フレームの数フレーム前のフレーム（フレーム（ｎ−４））から順次最終フレーム（フレーム（ｎ）にかけてこの運動パターンＦのフレーム情報に対する比率を下げ、一方で運動パターンＧの初期フレーム（フレーム（１））のフレーム情報から順次所定期間後のフレーム（フレーム（５））のフレーム情報にかけてこの運動パターンＧのフレーム情報に対する比率を上げて補間することによって行うことで、キャラクタのリアルな動作を再現することができる。
【００１０】
上述のように運動パターンＦと運動パターンＧとを補間して作成した繋ぎ用パターンのモーションデータによって、運動パターンＦと運動パターンＧとを結合して作成したモーションデータによって生成されるキャラクタの動的な画像を図２６に示す。このモーションデータは、同図に示すように、運動パターンＦのフレーム(１)〜（ｎ−５)の各フレーム情報、繋ぎ用パターンのフレーム（ａ）〜（ｅ）の各フレーム情報、運動パターンＧのフレーム（６）〜（ｍ）の各フレーム情報から構成される。
【００１１】
このように、特許文献１の補間技術を用いることによって、キャラクタのリアルな動作を再現しつつも、補間用モーションデータを用意しておく必要がなくなり、予め用意し記憶すべきデータ量を大幅に削減することができる。
【特許文献１】特開２００３−８５５９２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかし、上記特許文献１の補間技術で補間して運動パターン同士を結合した場合、キャラクタの運動パターンによっては、生成したキャラクタ画像においてそのキャラクタ動作が不自然となってしまうことがある。
【００１３】
このようにキャラクタ動作が不自然となると、その画像を見る者に対して違和感や不快感を与えてしまうことになり、キャラクタをリアルに動作させる効果が半減してしまう虞がある。
【課題を解決するための手段】
【００１４】
そこで、かかる課題を解決すべく、請求項１に記載の発明は、複数種類の基本運動パターンを組み合わせたフレーム情報に基づいて、複数のパーツが関節で連結されたキャラクタの複数のポイントの座標位置を変化させ、前記キャラクタの動的な画像を生成する画像生成装置において、各前記基本運動パターンのフレーム情報と、２種類以上の前記基本運動パターンの全部又は各一部のフレーム情報を有する複合運動パターンのフレーム情報とをそれぞれ記憶する運動パターン記憶手段と、前記基本運動パターンのフレーム情報と前記複合運動パターンのフレーム情報との結合、及び前記複合運動パターン同士のフレーム情報の結合を行う運動パターン結合手段と、前記運動パターン結合手段によって結合したフレーム情報に基づいて、前記キャラクタの動的な画像を生成する画像生成手段とを備え、前記運動パターン結合手段は、前記基本運動パターンのフレーム情報と前記複合運動パターンのフレーム情報との結合、及び前記複合運動パターン同士のフレーム情報の結合を行うときに、互いに結合する運動パターンにそれぞれ含まれる同一種類の基本運動パターンのフレーム情報同士を補間したフレーム情報を用いることを特徴とする。
【００１５】
また、請求項２に記載の発明は、請求項１に記載の画像生成装置において、前記運動パターン結合手段は、前記基本運動パターン又は前記複合運動パターンを結合先として前記基本運動パターンを結合するとき、当該結合しようとする基本運動パターンの一部のフレーム情報を用いて前記結合先の基本運動パターン又は複合運動パターンによるキャラクタ動作の動作終了前の所定期間におけるフレーム情報を補間して、前記基本運動パターンを結合することを特徴とする。
【００１６】
また、請求項３に記載の発明は、請求項１又は請求項２に記載の画像生成装置において、前記複合運動パターンのフレーム情報は、第１基本運動パターンの後半部分のフレーム情報と第２基本運動パターンの前半部分のフレーム情報とに加え、補間用フレーム情報として第１基本運動パターンの前半部分の一部のフレーム情報が含まれており、前記運動パターン結合手段は、前記複合運動パターンを結合しようとするときに、前記補間用フレーム情報を用いることを特徴とする。
【００１７】
また、請求項４に記載の発明は、コンピュータを、請求項１〜３のいずれか１項に記載の前記画像生成装置の各手段として機能させることを特徴とするプログラムとした。
【発明の効果】
【００１８】
基本運動パターンのフレーム情報と複合運動パターンのフレーム情報との結合、或いは複合運動パターン同士のフレーム情報の結合を行うときに、結合する運動パターンにそれぞれ含まれる同一種類の基本運動パターンのフレーム情報同士を補間したフレーム情報を用いることにより、キャラクタの動画像が不自然な動作となることを抑制することができ、視覚的な違和感や不快感を与えることを抑えたキャラクタの動的な画像を生成することができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明にかかる画像生成装置の一実施形態について、図面を参照して説明する。本実施形態における画像生成装置は、複数のパーツが関節で連結された３次元の仮想的なキャラクタの複数のポイントの座標位置を変化させ、当該キャラクタの動的な画像を生成する装置である。
【００２０】
本実施形態においては、３次元の仮想的なキャラクタの動的な画像を生成する画像生成装置を用いた運動支援システムを例に挙げて説明する。この運動支援システムは、３次元の仮想的なキャラクタをインストラクターとしてエアロビックスレッスンを行うものである。
【００２１】
［１．運動支援システムの概要］
まず、本発明の実施形態に係る運動支援システムについて図面を参照して説明する。図１は本実施形態に係る運動支援システムの概略構成図である。
【００２２】
本実施形態に係る運動支援システムＳは、スポーツクラブなどの施設に設置され、３次元の仮想的なインストラクター（以下、「バーチャルインストラクター」と呼ぶ。）を表示してエアロビックスレッスンを行うための装置である。
【００２３】
この運動支援システムＳは、図１に示すように、複数の運動パターンを組み合わせて１つの運動プログラムを作成する際に、当該運動プログラム用のバーチャルインストラクター動画情報（以下、「運動プログラム用動画情報」と呼ぶ。）を作成する画像生成装置として機能を有するサーバ装置１と、このサーバ装置１で生成した運動プログラム用動画情報及び楽曲情報に基づいた画像及び音声を再生する端末ユニット２とを備えている。なお、図示していないが、サーバ装置１には端末ユニット２を複数台接続可能となっており、システムの規模に応じて適宜増減可能となっている。
【００２４】
サーバ装置１は、ディスプレイ１０等の表示手段、キーボード１１、マウス１２等の入力手段を接続可能に構成されており、サーバ装置１の管理者は、ディスプレイ１０に表示された画像を見ながらキーボード１１やマウス１２などによりサーバ装置１の操作（例えば、端末ユニット２での運動プログラムの再生許可の設定など）が可能となっており、端末ユニット２からの要求に応じて、運動プログラム用動画情報を作成し、楽曲情報と共に端末ユニット２へネットワークケーブル３を介して送信する。
【００２５】
端末ユニット２は、運動ブースＨに設置されており、端末装置２０と、大型モニタ装置２１と、スピーカ２２と、入力操作器２３とから構成されている。端末装置２０は、ネットワークケーブル３を介してサーバ装置１に接続されており、サーバ装置１から送信される運動プログラム用動画情報及び楽曲情報を再生処理して、当該再生画像を大型モニタ装置２１の画面上に表示し、再生楽曲をスピーカ２２から出力する。
【００２６】
大型モニタ装置２１の表示に従って、ユーザＵ１が運動プログラムの楽曲を入力操作器２３により選択すると、この選択に応じてサーバ装置１により作成されたユーザＵ１専用の運動プログラムが端末装置２０で再生される。そして、ユーザＵ１は、端末装置２０によりスピーカ２２を介して出力されるその運動プログラムの楽曲を聴きながら、端末装置２０により大型モニタ装置２１を介して表示されるバーチャルインストラクターの動画像に合わせて身体運動を行うことになる。
【００２７】
ここで、サーバ装置１は、ユーザＵ１の操作に応じて選択される楽曲の情報を端末ユニット２から取得し、この楽曲の演奏時間の長さで複数の運動パターンを組み合わせた運動プログラムを作成する。この運動プログラムは、複数の運動パターンを組み合わせた動画情報とユーザＵ１によって選択された楽曲情報とからなる。
【００２８】
本実施形態におけるサーバ装置１では、複数の運動パターンの組み合わせの際に、結合する運動パターン同士のモーションデータを一部補間した繋ぎ用のモーションデータ（以下、「ブレンドモーションデータ」と呼ぶ。）を用いて運動パターンを結合することによって、モーションデータのデータ量を削減することとしている。
【００２９】
ここで、サーバ装置１では、ブレンドモーションデータを用いたときにバーチャルインストラクターの動作が不自然とならないように、２種類以上の基本運動パターンの全部又は各一部のフレーム情報を有する複合運動パターンのフレーム情報を備えており、運動パターンのフレーム情報の結合を行うときに、互いに結合する運動パターンにそれぞれ含まれる同一種類の基本運動パターンのフレーム情報同士を補間したフレーム情報を用いるようにしている。これにより、その画像を見る者に対して違和感や不快感を与えてしまうことを回避するようにしている。
【００３０】
［２．サーバ装置の構成及び動作］
以下、このように運動プログラム用動画情報を作成するサーバ装置１について図面を参照して具体的に説明する。図２はサーバ装置の主要な内部構成等を表したブロック図、図３はサーバ装置の運動パターンデータベースの格納情報の内容を示す図、図４はモーションデータのイメージを示す概念図、図５はマーカに対応した点及びボーンの関係を示した図、図６はモーションデータを示す図表、図７はモーションデータに基づいて作成した各カウント位置のバーチャルインストラクター画像の例を示す図、図８は複合運動パターンのモーションデータに基づいて作成した各カウント位置のバーチャルインストラクター画像の例を示す図である。
【００３１】
（サーバ装置の構成）
サーバ装置１は、汎用のサーバコンピュータを適用可能であり、図２に示すように、各種制御処理を行うＭＰＵ（プロセッサ）１００と、ＲＡＭ１０１と、ＲＯＭ１０２と、通信インターフェイス１０３と、ハードディスク装置１０４とを備えており、これらは内部バス１０５によって相互に接続されている。なお、内部バス１０５には、ディスプレイ１０、キーボード１１及びマウス１２も接続されており、ＭＰＵ１００の処理に伴って各処理内容をディスプレイ１０へ表示可能とすると共に、キーボード１１やマウス１２への入力に応じた操作内容をＭＰＵ１００に送信するようにしている。
【００３２】
ＲＡＭ１０１は、ＭＰＵ１００の処理に従ってデータ及びフォルダ等を一時的に記憶するワーキングメモリとして使用されるものであり、ＲＯＭ１０２はＭＰＵ１００が行う基本的な処理内容を規定したプログラム等を予め記憶している。通信インターフェイス１０３は、ＭＰＵ１００の制御によって、ネットワークケーブル３等を介して、端末装置２０へ運動プログラム用動画情報や楽曲情報を送信したり、端末装置２０から送信される制御データなどを受信したりする。この通信インターフェイス１０３は例えば、ＬＡＮ（Local Area Network）インターフェイスを用いることができる。
【００３３】
ハードディスク装置１０４は、サーバ装置１が行う各種処理を規定するプログラム及び各種データを格納するデータベースなどを記憶するものであり、システムプログラム１１０やサーバプログラム１１１などのプログラムデータ、メニューデータベース１１２、ユーザデータベース１１３、運動パターンデータベース（運動パターン記憶手段に相当）１１４及び楽曲データベース１１５などのデータベースを記憶する。
【００３４】
システムプログラム１１０は、サーバ装置１が行う基本的な処理内容を規定したプログラムであり、サーバプログラム１１１は、サーバ装置１の各種機能を実行するための処理内容を規定したプログラムである。ＭＰＵ１００は、システムプログラム１１０を実行した状態で、サーバプログラム１１１を実行することによって、サーバ装置１としての各種機能を実行するようにしている。
【００３５】
メニューデータベース１１２は各種メニューに応じたデータを格納したものであり、これらのデータは端末装置２０へ送信され、大型モニタ装置２１に表示される。ユーザＵ１は、大型モニタ装置２１に表示される楽曲選択メニューを見ながら入力操作器２３を操作して、楽曲を決定する。すなわち、大型モニタ装置２１に楽曲を選択する楽曲選択メニュー画面が表示され、ユーザＵ１はこの楽曲選択メニュー画面に応じて楽曲を決定する。このとき、ユーザＵ１が入力操作器２３への操作によって楽曲を選択すると、この入力操作器２３への操作がネットワークケーブル３を介してＭＰＵ１００に通知され、ＭＰＵ１００は、当該選択された楽曲の演奏時間の長さの運動プログラム用動画情報を作成して、楽曲情報と共に、端末装置２０へ送信するようにしている。このように送信された運動プログラム用動画情報及び楽曲情報は、端末装置２０によって再生される。
【００３６】
このシステムプログラム１１０及びサーバプログラム１１１等は、例えば、ネットワークに接続されたサーバ等からネットワークケーブル３を介してハードディスク装置１０４にダウンロードされるようにしてもよく、また、ＣＤ−ＲやＤＶＤ−Ｒ等の記録媒体に記録して、図示しない記録媒体ドライブを介してハードディスク装置１０４に読み込まれるようにしてもよい。
【００３７】
ＭＰＵ１００は、サーバプログラム１１１を実行することによって、後述のように、運動パターンの結合を行う運動パターン結合手段、結合した複数の運動パターンに基づいてバーチャルインストラクターの動的な画像を生成する画像生成手段等として機能する。
【００３８】
ユーザデータベース１１３は、サーバ装置１への登録を行ったユーザの情報が格納されるものであり、ユーザの会員番号、年齢、体重、身長、運動履歴などが格納される。また、楽曲データベース１１５は運動プログラムで使用可能な複数の楽曲を格納したデータベースである。
【００３９】
運動パターンデータベース１１４は、バーチャルインストラクターが表現する各種運動パターン（以下、任意の運動パターンを表す場合には「モーション」と呼ぶことがある。）に応じたモーションデータが格納されるものであり、これらのモーションデータは、図３に示すように、運動パターン毎にそのパターン番号と対応付けて格納される。運動パターンとしては、例えば、「マーチ」、「サイドステップ１」、「サイドステップ２」、「オープン／クローズ」、「ボクササイズ」などがある。
【００４０】
ここで、運動パターンデータベース１１４に格納されるモーションデータは、複数のマーカを付した現実のインストラクターが行う動作をキャプチャーする等により各マーカの３次元空間の座標位置を計測して作成されるものであり、いわゆるバーチャルインストラクター（動体）を規定した内容となっている。１つのモーションデータは、８カウント（約４秒）の時間帯における各マーカの座標位置の変動内容を規定している。
【００４１】
図４は、具体的なモーションデータのイメージを示したものである。バーチャルインストラクターを表すキャラクタ画像４が、モーションデータに基づいて３次元コンピュータグラフィックス技術によりＸ軸、Ｙ軸、Ｚ軸で構成されるＸＹＺ座標系に位置するように作成されることになる。このＸＹＺ座標系とは異なるカメラ５の撮像方向（動画表示時の視点方向に相当）及び位置を定めるためのＵＶＷ座標系を設け、ＸＹＺ座標系とＵＶＷ座標系との相対関係を規定することで、ユーザが所望する方向及び位置からのバーチャルインストラクターの動画像が表示可能となる。
【００４２】
３次元コンピュータグラフィックス技術により生成されるキャラクタ画像４は、図５に示すように、人体の骨に相当するボーンＢと呼ばれるリンク部材を回動自在に連結したものに、人間の皮膚に相当するスキンを被せて作成されるものであり、これにより脚部Ｄ１ａ，Ｄ１ｂ、腕部Ｄ２ａ，Ｄ２ｂ、腰部Ｄ３、胴部Ｄ４及び頭部Ｄ５のそれぞれのパーツが関節で連結された人型のキャラクタが表現される（図４参照）。なお、人型のキャラクタではなく、猫型、犬型などの動物型のキャラクタとして表現するようにしてもよい。
【００４３】
図５に示すボーンＢの各ポイントに付された点Ｐ１〜Ｐ１７が、上述した現実のインストラクターに付したマーカ位置に相当し、インストラクターが各種動作を行った所定時間（８カウント分）の各点Ｐ１〜Ｐ１７の座標位置が各運動パターンのモーションデータの内容となっている。すなわち、各運動パターンのモーションデータには、図６に示すように、カウント（０）〜カウント（８）までの０．１カウント（１フレーム）毎の各ポイント（点Ｐ１〜Ｐ１７）の座標位置（Ｘ座標位置、Ｙ座標位置、Ｚ座標位置）の情報が含まれており、ＭＰＵ１００は画像生成手段として、このモーションデータのカウント番号の少ないものから順に座標位置を取得していき、バーチャルインストラクターの動的な画像を生成することになる。なお、０．１カウント毎の複数のポイント（点Ｐ１〜Ｐ１７）の座標位置の情報を「フレーム情報」と呼ぶ（図６参照）。また、図５に示す各点Ｐ１〜Ｐ１７の位置及び個数は一例であり、生成するキャラクタ画像４の仕様、要求精度及びハード的なスペック等に応じてマーカの位置及び個数は適宜変更できる。
【００４４】
このようにモーションデータに基づいて作成した各カウント位置（カウント（０）〜カウント（８））のバーチャルインストラクター画像の例を図７に示す。図７（ａ）には運動パターンが「マーチ」であるときの各カウント位置のバーチャルインストラクター画像が示され、図７（ｂ）には運動パターンが「サイドステップ１」であるときの各カウント位置のバーチャルインストラクター画像が示され、図７（ｃ）には運動パターンが「サイドステップ２」であるときの各カウント位置のバーチャルインストラクター画像が示されている。なお、カウント（０）のフレーム情報とカウント（８）のフレーム情報は同様となることから、カウント（０）のフレーム情報に代えてカウント（８）のフレーム情報とすることもできるが、ここでは理解を容易にするためにカウント（０）のフレーム情報とカウント（８）のフレーム情報とを区別して説明するものとする。
【００４５】
本実施形態においては、モーションデータとして、上述の図７に示すようなエアロビックス用のそれぞれの運動の種類に応じた運動パターン（以下、「基本運動パターン」とする。）に加え、少なくとも２種類の基本運動パターンの全部又は各一部を有する運動パターン（以下、「複合運動パターン」と呼ぶ。）を用いるようにしている。
【００４６】
そして、上述のようにサーバ装置１のＭＰＵ１００は、ユーザＵ１によって選択された楽曲の演奏時間の長さに応じて、複数の運動パターンを組み合わせて運動プログラム用動画情報を作成する。
【００４７】
ここで、複合運動パターンの例を、図８に示す。図８（ａ）は基本運動パターン「マーチ」（図７（ａ）参照）に基本運動パターン「サイドステップ１」（図７（ｂ）参照）を連続させた複合運動パターンであり、図８（ｂ）は基本運動パターン「サイドステップ１」（図７（ｂ）参照）に基本運動パターン「マーチ」（図７（ａ）参照）を連続させた複合運動パターンである。
【００４８】
この複合運動パターンも基本運動パターンと同様に現実のインストラクターが行う動作をキャプチャーする等により各マーカの３次元空間の座標位置を計測して作成されるものであり、インストラクターが２つの基本運動パターンの動作を連続して行った所定時間（１５カウント分）の各点Ｐ１〜Ｐ１７の座標位置が各複合運動パターンのモーションデータの内容となっている。
【００４９】
この複合運動パターンは、基本運動パターンをそのまま結合させたものではなく、一方の基本運動パターン（以下、「第１運動パターン」と呼ぶ。）と、他方の基本運動パターン（以下、「第２運動パターン」と呼ぶ。）とを自然な動きで連続させたものである。すなわち、現実のインストラクターが行う動作をキャプチャーする等により第１運動パターンのカウント（７）から第２運動パターンのカウント（０）までをバーチャルインストラクターの動作が自然な動作となるように移行させている。
【００５０】
本実施形態のサーバ装置１においては、上述した基本運動パターンと複合運動パターンとを用いて複数の基本運動パターンの運動を連続させ、バーチャルインストラクターの動的な画像として表現できるように運動プログラム用画像情報を作成するものである。
【００５１】
以下、複数の基本運動パターンを連続させた運動プログラム用画像情報の作成について、具体的に説明する。図９〜図１５は本実施形態のサーバ装置１において複数の運動パターンの結合処理の内容を説明するための図である。
【００５２】
まず、図９を参照して、基本運動パターン「マーチ」と「サイドステップ１」を交互に連続させた５つの基本運動パターンからなる運動プログラム用画像情報（図９（ａ）参照）を作成するときの処理について説明する。
【００５３】
ＭＰＵ１００は、図９（ａ）に示す運動プログラム用画像情報を作成するとき、図８（ａ）に示す「マーチ＋サイドステップ１（Ｍ−Ｓ１）」の複合運動パターンと、図８（ｂ）に示す「サイドステップ１＋マーチ（Ｓ１−Ｍ）」の複合運動パターンとを取り出す。そして、図９（ｂ）に示すように、「マーチ＋サイドステップ１（Ｍ−Ｓ１）」と「サイドステップ１＋マーチ（Ｓ１−Ｍ）」とを結合し、さらに、これに「マーチ＋サイドステップ１（Ｍ−Ｓ１）」を結合し、さらに、これに「サイドステップ１＋マーチ（Ｓ１−Ｍ）」を結合する。
【００５４】
ここで、複合運動パターンの結合方法は、一方の複合運動パターン（以下、「第１複合運動パターン」と呼ぶ。）の後半の基本運動パターンのうちカウント（２）〜（４）の各フレーム情報と、他方の複合運動パターン（以下、「第２複合運動パターン」と呼ぶ。）の前半の基本運動パターンのうちカウント（２）〜（４）の各フレーム情報とを所定比率で補間（ブレンド）したブレンドモーションデータを作成し、第１複合運動パターンの後半の基本運動パターンのカウント（２）〜（４）の各フレーム情報を上記作成したブレンドモーションデータに置き換え、さらにそれ以降のフレームを第２複合運動パターンの前半の基本運動パターンのカウント（４．１）からのフレームに続けることによって行う。以下、このように同一種類の基本運動パターンのカウント（２）〜（４）の各フレーム情報同士を補間したフレーム情報（ブレンドモーションデータ）を用いて結合方法を「第１結合方法」と呼ぶこととする。
【００５５】
例えば、「マーチ＋サイドステップ１」の複合運動パターンに、「サイドステップ１＋マーチ」の複合運動パターンを結合するとき、図１０に示すように、「マーチ＋サイドステップ１」の複合運動パターン（図１０（ａ））の後半の基本運動パターン（「サイドステップ１」）のカウント（２）〜（４）の各フレーム情報と、「サイドステップ１＋マーチ」の複合運動パターン（図１０（ｂ））の前半の基本運動パターン（「サイドステップ１」）のカウント（２）〜（４）の各フレーム情報とを所定比率で補間（ブレンド）してブレンドモーションデータ（図１０（ｃ））を作成する。
【００５６】
そして、「マーチ＋サイドステップ１」の複合運動パターン（図１０（ａ））の後半の基本運動パターン（「サイドステップ１」）のカウント（１．９）までのフレームと、ブレンドモーションデータのフレーム（図１０（ｃ））と、「サイドステップ１＋マーチ」の複合運動パターン（図１０（ｂ））の前半の基本運動パターン（「サイドステップ１」）のフレーム（４．１）からのフレームまでを連続させて、図１０（ｄ）に示すように、「マーチ＋サイドステップ１＋マーチ」となる運動パターンを作成する。
【００５７】
このように複合運動パターン同士で同一種類の基本運動パターンを補間して結合していくことで、３つ以上の基本運動パターンからなる運動プログラム用画像情報を作成することができる。図９に示す例では、このような結合方法で、「マーチ＋サイドステップ１（Ｍ−Ｓ１）」の複合運動パターンと、「サイドステップ１＋マーチ（Ｓ１−Ｍ）」の複合運動パターンとにより、「マーチ＋サイドステップ１＋マーチ＋サイドステップ１＋マーチ（Ｍ―Ｓ１−Ｍ−Ｓ１−Ｍ）」の運動プログラム用画像情報を作成した状態を示している。
【００５８】
ここで、２つの複合運動パターンの同一基本運動パターン同士を補間するのは、各複合運動パターンのフレーム情報が現実のインストラクターが行う動作をキャプチャーして生成したものであり、全く同じではないからであるが、同一基本運動パターン同士であり、また同一カウントのフレーム情報同士を補間することとしているので、補間後のフレーム情報で不自然なものとなることはない。
【００５９】
また、上述した複合運動パターンでは、２つの基本運動パターンを連続させたパターンとなっていることから、運動プログラム用画像情報で一番最初に用いる複合運動パターンではその前半の基本運動パターンの全てを用いることができ（例えば、図９（ｃ）の左端の複合運動パターン参照）、運動プログラム用画像情報の一番最後に用いる複合運動パターンではその後半の運動パターンを全て用いることができる（例えば、図９（ｃ）の右端の複合運動パターン参照）。
【００６０】
なお、２つの複合運動パターンのブレンドモーションデータの作成は、上述のように第１複合運動パターンの後半の基本運動パターンのうちカウント（２）〜（４）における各フレーム情報と、第２複合運動パターンの前半の基本運動パターンのうちカウント（２）〜（４）における各フレーム情報とを所定比率で補間（ブレンド）して行うものであり、例えば、図１０に示す例では、以下のように行うことができる。
【００６１】
第１複合運動パターンの後半の基本運動パターン「サイドステップ１」を第１運動パターンＡと呼び、第２複合運動パターンの前半の基本運動パターン「サイドステップ１」を第２運動パターンＢと呼ぶこととすると、例えば、カウント（２．１）のフレーム情報は、第１運動パターンＡと第２運動パターンＢのブレンド比率を０．９５：０．０５とする。すなわち、第１運動パターンＡのカウント（２．１）のフレーム情報における各ポイント（点Ｐ１〜Ｐ１７）の座標位置のデータに０．９５を積算し、第２運動パターンＢのカウント（２．１）のフレーム情報における各ポイント（点Ｐ１〜Ｐ１７）の座標位置のデータに０．０５を積算して、これらを各ポイント（点Ｐ１〜Ｐ１７）毎に合算することによって、ブレンドモーションデータを作成する。同様にカウント（２．２）〜（４）まで順次、０．１カウント毎に、ブレンド比率（第１運動パターンＡ，第２運動パターンＢ）を（０．９：０．１）→（０．８５，０．１５）→・・・→（０．０５，０．９５）→（０，１）としてブレンドモーションデータを作成する。
【００６２】
すなわち、第１運動パターンＡに第２運動パターンＢを結合するとしたとき、補間するフレームにおいて各ポイント（点Ｐ１〜Ｐ１７）のそれぞれの座標位置が、（ＸAp1，ＹAp1，ＺAp1）〜（ＸAp17，ＹAp17，ＺAp17）である第１運動パターンＡと、（ＸBp1，ＹBp1，ＺBp1）〜（ＸBp17，ＹBp17，ＺBp17）である第２運動パターンＢとに重み付け（α，β）（α＋β＝１）を行って加算し、フレーム情報の各ポイント（点Ｐ１〜Ｐ１７）の位置座標を（αＸAp1＋βＸBp1，αＹAp1＋βＹBp1，αＺAp1＋βＺBp1）〜（αＸAp17＋βＸBp17，αＹAp17＋βＹBp17，αＺAp17＋βＺBp17）とする演算を、重み付け（α，β）を変化（順次αを減少、βを増加）させつつ、カウント（２）〜（４）のそれぞれのフレーム毎（０．１フレーム毎）に行ってブレンドモーションデータを作成する。なお、α≧０，β≧０，α＋β＝１とする。
【００６３】
このように結合する運動パターンにおいて、互いの運動パターンのモーションデータで補間したブレンドモーションデータを作成することによって、バーチャルインストラクターの自然な動作を実行することができる。
【００６４】
ところで、基本運動パターンが例えば１００種類あるとすると，上述した複合運動パターンは１００００種類必要となる。しかし、複合運動パターンのフレーム情報は、基本パターンと同様に現実のインストラクターの動作に基づいて作成されるものであることから、１００００種類も作成するのは困難である。また、フレーム情報のデータ量も多くなり記憶容量も増大してしまう。従って、複合運動パターンの作成にも限界がある。
【００６５】
そのため、例えば、「マーチ＋サイドステップ１＋サイドステップ２＋サイドステップ１＋マーチ（Ｍ―Ｓ１−Ｓ２−Ｓ１−Ｍ）」の運動プログラム用画像情報（図１１（ａ）参照）を作成しようとしたときに、「サイドステップ１＋サイドステップ２（Ｓ１−Ｓ２）」や「サイドステップ２＋サイドステップ１（Ｓ２−Ｓ１）」の複合運動パターンが存在しないような場合、図１１（ｂ），（ｃ）に示すように、「マーチ＋サイドステップ１＋サイドステップ２＋サイドステップ１＋マーチ（Ｍ―Ｓ１−Ｓ２−Ｓ１−Ｍ）」の運動プログラム用画像情報を作成することができない。
【００６６】
このように運動プログラム用画像情報を作成するに当たり、複合運動パターンがないといった状態が生じる。そこで、本実施形態におけるサーバ装置１では、必要な複合運動パターンが存在しないようなときには、基本運動パターンのモーションデータからブレンドモーションデータを作成するようにしている。このように作成されるブレンドモーションデータを以下、「疑似複合モーションデータ」とも呼ぶ。
【００６７】
例えば、図１２に示す例では、「マーチ＋サイドステップ１（Ｍ−Ｓ１）」の複合運動パターンと「サイドステップ１＋マーチ（Ｓ１−Ｍ）」の複合運動パターンに加え、「サイドステップ２（Ｓ２）」の基本運動パターンを用いて、図１２に示すように、「サイドステップ１＋マーチ（Ｍ１−Ｓ）」の複合運動パターンと「サイドステップ２（Ｓ２）」の基本運動パターンとをこれらの一部のフレーム情報で作成した疑似複合モーションデータにより結合し、「サイドステップ２（Ｓ２）」の基本運動パターンと「サイドステップ１＋マーチ（Ｓ１−Ｍ）」の複合運動パターンとをこれらの一部のフレーム情報で作成した疑似複合モーションデータで結合することによって、「マーチ＋サイドステップ１＋サイドステップ２＋サイドステップ１＋マーチ（Ｍ―Ｓ１−Ｓ２−Ｓ１−Ｍ）」の運動プログラム用画像情報を作成することができる。
【００６８】
ここで、「マーチ＋サイドステップ１（Ｍ−Ｓ１）」の複合運動パターン（図８（ａ）参照）に「サイドステップ２（Ｓ２）」の基本運動パターン（図７（ｃ）参照）を結合するときの状態を例に挙げて説明する。
【００６９】
図１３（ａ）に示すように、「マーチ＋サイドステップ１（Ｍ−Ｓ１）」の複合運動パターンの後半の基本運動パターン「サイドステップ１（Ｓ１）」のカウント（７．５）からカウント（８）までのフレーム情報のそれぞれに（図１３（ａ）上段参照）、基本運動パターン「サイドステップ２（Ｓ２）」によるバーチャルインストラクターの動作開始位置のカウント（０）のフレーム情報（図１３（ａ）中段参照）を互いに重み付け（ブレンド比率）を変化させつつ演算（図１３（ｂ）参照）した座標位置に置き換えるようにしている（図１３（ａ）下段参照）。
【００７０】
具体的には、基本運動パターン「サイドステップ１（Ｓ１）」のカウント（７．６）のフレームでは、重み付けを「サイドステップ１（Ｓ１）」が０．８、「サイドステップ２（Ｓ２）」が０．２となるようにそれぞれのフレーム情報に重み付けを行う。すなわち、基本運動パターン「サイドステップ１（Ｓ１）」のカウント（７．６）のフレーム情報（各ポイント（点Ｐ１〜Ｐ１７）の座標位置のデータ）に０．８を積算し、基本運動パターン「サイドステップ１」のカウント（０）のフレーム情報（各ポイント（点Ｐ１〜Ｐ１７）の座標位置のデータ）に０．２を積算して、これらを各ポイント（点Ｐ１〜Ｐ１７）毎に合算することによって、ブレンドモーションデータを作成する。同様にカウント（７．７）〜（８）まで順次、０．１カウント毎に、重み付け（「サイドステップ（Ｓ１）」，「サイドステップ２（Ｓ２）」）を（０．６，０．４）→（０．４，０．６）→（０．２，０．８）→（１，０）としてブレンドモーションデータを作成する。このように作成したブレンドモーションデータが疑似複合モーションデータである。
【００７１】
すなわち、例えば、第３運動パターンＣに第４運動パターンＤを結合するとしたとき、補間するフレームにおいて各ポイント（点Ｐ１〜Ｐ１７）のそれぞれの座標位置が、（ＸCp1，ＹCp1，ＺCp1）〜（ＸCp17，ＹCp17，ＺCp17）である第３運動パターンＣと、（ＸDp1，ＹDp1，ＺDp1）〜（ＸDp17，ＹDp17，ＺDp17）である第４運動パターンＤとに重み付け（α，β）（α＋β＝１）を行って加算し、フレーム情報の各ポイント（点Ｐ１〜Ｐ１７）の位置座標を（αＸCp1＋βＸDp1，αＹCp1＋βＹDp1，αＺCp1＋βＺDp1）〜（αＸCp17＋βＸDp17，αＹCp17＋βＹDp17，αＺCp17＋βＺDp17）とする演算を、重み付け（α，β）を変化（順次αを減少、βを増加）させつつ、第３運動パターンＣのフレーム（７．５）〜（８）のそれぞれのフレーム毎に行って疑似複合モーションデータを作成する。なお、α≧０，β≧０，α＋β＝１とする。
【００７２】
このように結合する運動パターンにおいて、互いの運動パターンのモーションデータで補間したブレンドモーションデータを作成することによって、運動パターンの切り替わり時に、バーチャルインストラクターを自然な切り替わり方で動作させることができる。以下、このように異なる種類の運動パターンをこれらの運動パターンから作成した疑似複合モーションデータを用いて結合する結合方法を「第２結合方法」と呼ぶこととする。
【００７３】
ところで、上述においては、複合運動パターンを第１基本運動パターンと第２基本運動パターンとを連続させた運動パターンとして説明したが、複合運動パターンのモーションデータを、第１基本運動パターンの後半部分のフレーム情報（カウント（４．１）からのフレーム）、第２基本運動パターンの前半部分のフレーム情報（カウント（４）までのフレーム）、さらに第１基本運動パターンの後半部分の開始（カウント（４．１））前のフレームから２．１フレーム分のフレーム情報（カウント（２）〜（４）のフレーム情報。）のみで構成するようにしてもよい。
【００７４】
このように複合運動パターンを構成することで、この複合運動パターンのモーションデータのデータ量を削減することができる。すなわち、２つの基本運動パターンを連続させた運動パターンに比べ、第１基本運動パターンのカウント（１）〜（１．９）のフレーム情報、第２基本運動パターンのカウント（４．１）〜（８）のフレーム情報が不要となるため、データ量を削減することができる。以下、このような複合運動パターンを「スマート複合運動パターン」と呼ぶこととする。
【００７５】
このスマート複合運動パターンにおける結合方法は、上述した第１結合方法及び第２結合方法を用いて行われる。すなわち、基本運動パターンとスマート複合運動パターンとの結合、スマート複合運動パターン同士での結合、スマート複合運動パターンと基本運動パターンとの結合において、同一種類の基本運動パターンのフレーム情報同士を結合するときには第１結合方法を用い、異なる種類の基本運動パターンのフレーム同士を結合するときには第２結合方法を用いる。
【００７６】
例えば、図１４（ａ）に示すように、「マーチ＋サイドステップ１＋マーチ＋サイドステップ１＋マーチ（Ｍ―Ｓ１−Ｍ−Ｓ１−Ｍ）」の運動プログラム用画像情報を作成するときには、「マーチ（Ｍ）」の基本運動パターン、「サイドステップ１＋マーチ（Ｓ１−Ｍ）」、「マーチ＋サイドステップ１（Ｍ−Ｓ１）」のスマート複合運動パターン（図１４（ｂ）参照）を順次第１結合方法で結合する（図１４（ｃ）参照）。
【００７７】
また、図１５（ａ）に示すように、マーチ＋サイドステップ１＋サイドステップ２＋サイドステップ１＋マーチ（Ｍ―Ｓ１−Ｓ２−Ｓ１−Ｍ）」の運動プログラム用画像情報を作成するときにおいて、「サイドステップ１＋サイドステップ２（Ｓ１−Ｓ２）」、「サイドステップ２＋サイドステップ１（Ｓ２−Ｓ１）」のスマート複合運動パターンがないときには、「マーチ（Ｍ）」、「サイドステップ１（Ｓ１）」、「サイドステップ２（Ｓ２）」の基本運動パターンと、「マーチ＋サイドステップ１（Ｍ−Ｓ１）」、「サイドステップ１＋マーチ（Ｓ１−Ｍ）」のスマート複合運動パターンとを用い（図１５（ｂ）参照）、「マーチ（Ｍ）」と「マーチ＋サイドステップ１（Ｍ−Ｓ１）」との間、「マーチ＋サイドステップ１（Ｍ−Ｓ１）」と「サイドステップ１（Ｓ１）」との間、「サイドステップ１（Ｓ１）」と「サイドステップ１＋マーチ（Ｓ１−Ｍ）」との間、「サイドステップ１＋マーチ（Ｓ１−Ｍ）」と「マーチ（Ｍ）」との間をそれぞれ第１結合方法で結合し、「サイドステップ１（Ｓ１）」と「サイドステップ２（Ｓ２）」との間、「サイドステップ２（Ｓ２）」と「サイドステップ１（Ｓ１）」との間をそれぞれ第２結合方法で結合する（図１５（ｃ）参照）。
【００７８】
（サーバ装置１の動作）
以上のように構成されるサーバ装置１の動作のうち、その特徴的部分である画像生成処理動作を中心とした処理について図面を参照して具体的に説明する。図１６はサーバ装置１におけるメイン処理のフローチャート、図１７は図１６に示す動画生成処理のフローチャート、図１８は図１７に示す初期動画生成処理のフローチャート、図１９は図１７に示す第１モーション結合処理のフローチャート、図２０は図１７に示す第２モーション結合処理のフローチャートである。なお、以下の処理は、サーバ装置１のＭＰＵ１００が上述した運動パターン結合手段、画像生成手段等として機能することによって実行されるものである。
【００７９】
まず、サーバ装置１のＭＰＵ１００は、ネットワークケーブル３を介して、運動プログラム用の楽曲選択メニューを表示するための画像情報を端末装置２０へ送信する（ステップＳ１０）。端末装置２０はこの楽曲選択メニューの画像情報を受信すると、大型モニタ装置２１に楽曲選択メニューを表示する。ＭＰＵ１００は、ユーザＵ１が入力操作器２３への操作により楽曲の選択を行うまで待つことになる（ステップＳ１１）。
【００８０】
ユーザが入力操作器２３を操作して運動プログラム用の楽曲を選択すると、端末装置２０からネットワークケーブル３を介してサーバ装置１へ楽曲選択情報が送信される。ＭＰＵ１００は、この楽曲選択情報を受信すると、当該情報に応じた楽曲の演奏時間を楽曲データベース１１５から抽出し、動画生成処理を開始する（ステップＳ１２）。この動画生成処理は、図１７に示すステップＳ２０〜Ｓ２７の処理であり、後で詳述する。
【００８１】
この動画生成処理を終了すると、ＭＰＵ１００は、ステップＳ１２で取得した楽曲選択に応じた楽曲情報を楽曲データベース１１５から取り出し、この楽曲情報と上記動画生成処理で作成した運動プログラム用画像情報とを通信インターフェイス１０３を介して端末装置２０へ送信し、端末装置２０において再生させる（ステップＳ１３）。すなわち、端末装置２０は、ユーザＵ１が入力操作器２３により選択した楽曲に応じた運動プログラム用画像情報及び楽曲情報を受信すると、受信した運動プログラム用画像情報に応じたバーチャルインストラクター動画像を大型モニタ装置２１に表示し、また受信した楽曲情報に応じた音波をスピーカ２２から出力する。これにより、ユーザＵ１は選択した楽曲をスピーカ２２から流しながら、複数の運動パターンでバーチャルインストラクターを動作させた画像を大型モニタ装置２１に表示して、楽曲の音楽に合わせてエアロビックスエクササイズを実行することができることとなる。
【００８２】
ステップＳ１３の処理を終了すると、ＭＰＵ１００は、キーボード１１やマウス１２の操作等によるユーザからの終了指令があったか否かを判定する（ステップＳ１４）。この処理において、ＭＰＵ１００は、ユーザからの終了指令があったと判定すると（ステップＳ１４：Ｙｅｓ）、このメイン処理を終了し、ユーザからの終了指令がないと判定すると（ステップＳ１４：Ｎｏ）、処理をステップＳ１０に移行する。
【００８３】
次に、上記ステップＳ１２における動画生成処理について、図１７を参照して具体的に説明する。
【００８４】
図１７に示すように、動画生成処理を開始すると、ＭＰＵ１００は、ステップＳ１２で取得した楽曲選択に応じた楽曲の演奏時間に応じた長さの運動プログラム用画像情報を作成するために、当該演奏時間の長さに対応するモーション数Ｎを演算し、このモーション数Ｎ分の運動パターンＰ（１），運動パターンＰ（２），・・、運動パターンＰ（Ｎ）を決定する（ステップＳ２０）。例えば、楽曲の演奏時間の長さが、４０カウント分であるとき、モーション数Ｎが５となり、運動パターンＰ（１），運動パターンＰ（２），・・、運動パターンＰ（Ｎ）は、図１４や図１５に示すように５つの基本運動パターンが組み合わされたものとなる。なお、以下において、運動パターンデータベース１１４に格納している基本運動パターンを基本運動パターンｍ（ｉ）などとして表し、複合運動パターンを複合運動パターンｍ（ｉ）ｍ（ｉ＋１）などとして表すこととする。ここで、複合運動パターンｍ（ｉ）ｍ（ｉ＋１）は、当該複合運動パターンの前半の基本運動パターンが第１基本運動パターンｍ（ｉ）であり、当該複合運動パターンの後半の基本運動パターンが基本運動パターンｍ（ｉ＋１）であることを意味する。
【００８５】
次に、ＭＰＵ１００は、初期動画生成処理を実行して、一番最初の運動パターンを基本運動パターンにするのか複合運動パターンにするのかを決定する（ステップＳ２１）。この処理は、図１８におけるステップＳ３０〜Ｓ３２の処理であり、後で詳述する。
【００８６】
次に、ＭＰＵ１００は、カウンタ値ｉを１に設定し（ステップＳ２２）、運動パターンＰ（ｉ）Ｐ（ｉ＋１）に対応する複合運動パターンｍ（ｉ）ｍ（ｉ＋１）が運動パターンデータベース１１４に存在しているか否かを判定する（ステップＳ２３）。例えば、運動パターンＰ（ｉ）が「マーチ」で運動パターンＰ（ｉ＋１）が「サイドステップ１（Ｓ１）」のとき、「マーチ＋サイドステップ１（Ｓ１）」の複合運動パターンが運動パターンデータベース１１４に存在しているか否かを判定することになる。
【００８７】
この処理において、複合運動パターンｍ（ｉ）ｍ（ｉ＋１）が存在すると判定すると（ステップＳ２３：Ｙｅｓ）、ＭＰＵ１００は、第１モーション結合処理を実行する（ステップＳ２４）。この第１モーション結合処理は、図１９に示すステップＳ３５の処理であり、後で詳述する。
【００８８】
一方、複合運動パターンｍ（ｉ）ｍ（ｉ＋１）が存在しないと判定すると（ステップＳ２３：Ｎｏ）、ＭＰＵ１００は、第２モーション結合処理を実行する（ステップＳ２６）。この第２モーション結合処理は、図２０に示すステップＳ４０〜Ｓ４５の処理であり、後で詳述する。
【００８９】
第１モーション結合処理又は第２モーション結合処理を終了すると、ＭＰＵ１００は、カウンタ値ｉに１を加算した値がＮとなるか否かを判定する（ステップＳ２５）。
【００９０】
この処理において、ｉ＋１がＮであると判定すると（ステップＳ２５：Ｙｅｓ）、ＭＰＵ１００は、メイン処理を終了する。一方、ｉ＋１がＮではないと判定すると（ステップＳ２５：Ｎｏ）、ＭＰＵ１００は、カウンタ値ｉに１を加算して（ステップＳ２７）、処理をステップＳ２３に戻し、ステップＳ２４又はステップＳ２６の処理を繰り返し行う。
【００９１】
次に、上記ステップＳ２１における初期動画生成処理について、図１８を参照して具体的に説明する。
【００９２】
図１８に示すように、初期動画生成処理を開始すると、ＭＰＵ１００は、運動パターンＰ（１）Ｐ（２）に対応する複合運動パターンｍ（ｉ）ｍ（ｉ＋１）が存在するか否かを判定する（ステップＳ３０）。
【００９３】
この処理において、運動パターンＰ（１）Ｐ（２）に対応する複合運動パターンｍ（１）ｍ（２）が存在すると判定すると（ステップＳ３０：Ｙｅｓ）、ＭＰＵ１００は、複合運動パターンｍ（１）ｍ（２）を初期動画データとして設定する（ステップＳ３１）。
【００９４】
一方、運動パターンＰ（１）Ｐ（２）に対応する複合運動パターンｍ（１）ｍ（２）が存在しないと判定すると（ステップＳ３０：Ｎｏ）、ＭＰＵ１００は、基本運動パターンｍ（１）を初期動画データとして決定する（ステップＳ３２）。
【００９５】
ステップＳ３１の処理又はステップＳ３２の処理が終了すると、ＭＰＵ１００は、この初期動画生成処理を終了する。
【００９６】
次に、上記ステップＳ２４における第１モーション結合処理について、図１９を参照して具体的に説明する。
【００９７】
図１９に示すように、第１モーション結合処理を開始すると、ＭＰＵ１００は、すでに結合されている運動パターンｍ（ｉ）（以下、運動パターンＭ（ｉ）と表す。）と複合運動パターンｍ（ｉ）ｍ（ｉ＋１）を、第１結合方法で結合する。すなわち、運動パターンＭ（ｉ）とｍ（ｉ）のカウント（２）〜（４）の各フレーム情報を所定比率で補間（ブレンド）してブレンドモーションデータを作成し、このブレンドモーションデータを用いて運動パターンＭ（ｉ）に複合運動パターンｍ（ｉ）ｍ（ｉ＋１）を結合して（ステップＳ３５）、第１モーション結合処理を終了する。
【００９８】
次に、上記ステップＳ２６における第２モーション結合処理について、図２０を参照して具体的に説明する。
【００９９】
図２０に示すように、第２モーション結合処理を開始すると、ＭＰＵ１００は、運動パターンＭ（ｉ）が複合運動パターンの一部となっているか否かを判定する（ステップＳ４０）。すなわち、運動パターンＭ（ｉ）が、複合運動パターンｍ（ｉ−１）ｍ（ｉ）により運動パターンＭ（ｉ−１）Ｍ（ｉ）として形成された複合運動パターンの一部であるか否かを判定する。
【０１００】
この処理において、運動パターンＭ（ｉ）が複合運動パターンの一部であると判定すると（ステップＳ４０：Ｙｅｓ）、ＭＰＵ１００は、基本運動パターンｍ（ｉ）と基本運動パターンｍ（ｉ＋１）とを運動パターンデータベース１１４から取得する（ステップＳ４１）。
【０１０１】
次に、ＭＰＵ１００は、基本運動パターンｍ（ｉ）と基本運動パターンｍ（ｉ＋１）とを第２結合方法で結合する（ステップＳ４２）。すなわち、基本運動パターンｍ（ｉ）のカウント（７．５）〜（８）の各フレーム情報を基本運動パターンｍ（ｉ＋１）の初期(先頭)のフレーム情報でそれぞれ比率を変化させつつ補間（ブレンド）して、基本運動パターンｍ（ｉ）と基本運動パターンｍ（ｉ＋１）とを結合する。
【０１０２】
次に、ＭＰＵ１００は、運動パターンＭ（ｉ）とステップＳ４２で結合した運動パターンｍ（ｉ）ｍ（ｉ＋１）とを第２結合方法で結合する。すなわち、運動パターンＭ（ｉ）とｍ（ｉ）のそれぞれのカウント（２）〜（４）の各フレーム情報を所定比率で補間（ブレンド）してブレンドモーションデータを作成し、このブレンドモーションデータを用いて運動パターンＭ（ｉ）と運動パターンｍ（ｉ）ｍ（ｉ＋１）とを結合する（ステップＳ４３）。
【０１０３】
ステップＳ４０において、運動パターンＭ（ｉ）が複合運動パターンの一部ではないと判定すると（ステップＳ４０：Ｎｏ）、ＭＰＵ１００は、ｍ（ｉ＋１）を運動パターンデータベース１１４から取得する（ステップＳ４４）。
【０１０４】
次に、ＭＰＵ１００は、運動パターンＭ（ｉ）と基本運動パターンｍ（ｉ＋１）とを第２結合方法で結合する。すなわち、運動パターンＭ（ｉ）のカウント（７．５）〜（８）のフレーム情報を基本運動パターンｍ（ｉ＋１）の初期(先頭)のフレーム情報でそれぞれブレンド比率を変化させつつ補間（ブレンド）して、運動パターンＭ（ｉ）と基本運動パターンｍ（ｉ＋１）とを結合する（ステップＳ４５）。
【０１０５】
ステップＳ４３の処理又はステップＳ４５の処理が終了すると、ＭＰＵ１００は、第２モーション結合を終了する。
【０１０６】
以上のように、本実施形態におけるサーバ装置１は、複数の基本運動パターンのフレーム情報と、２種類以上の基本運動パターンのフレーム情報を有する複合運動パターンのフレーム情報とをそれぞれ運動パターンデータベース１１４に記憶しており、ＭＰＵ１００の処理により、基本運動パターンのフレーム情報と複合運動パターンのフレーム情報との結合、及び複合運動パターン同士のフレーム情報の結合を行うようにし、このように結合したフレーム情報に基づいて、キャラクタの動的な画像を生成するようにしている。しかも、これらの運動パターンの結合を行うときに、互いに結合する運動パターンにそれぞれ含まれる同一種類の基本運動パターンのフレーム情報同士を補間するようにしている。
【０１０７】
複合運動パターンは、上述したように、２つの基本運動パターンのフレーム情報を結合させたものではなく、２つの運動パターンを現実のインストラクターが行う動作をキャプチャーする等により生成したものある。そして、同一種類の基本運動パターンのフレーム情報同士を補間（ブレンド）することによって、バーチャルインストラクターの動作をより自然な動作とすることができる。
【０１０８】
次に、上述したスマート複合運動パターンを用いて各運動パターンを結合する処理について、図２１〜図２３を参照して説明する。図２１は図１６に示す動画生成処理のスマート複合運動パターンを用いたときのフローチャート、図２２は図２１に示す第１モーション結合処理のフローチャート、図２３は図２１に示す第２モーション結合処理のフローチャートである。なお、サーバ装置１のメイン処理については、図１６と同様の処理となるため、ここでは、動画生成処理について説明する。
【０１０９】
図２１に示すように、スマート複合運動パターンを用いた動画生成処理を開始すると、ＭＰＵ１００は、上記ステップＳ２０の処理と同様に、ステップＳ１２で取得した楽曲選択に応じた楽曲の演奏時間に応じた長さとなる運動パターンＰ（２），・・、運動パターンＰ（Ｎ）を決定する（ステップＳ５０）。次に、ＭＰＵ１００は、運動パターンＰ（１）に対応する基本モーションｍ（１）（例えば、運動パターンＰ（１）が「マーチ」の時には、「マーチ（Ｍ）」の基本運動パターン）を初期動画Ｍ（１）として（ステップＳ５１）、カウンタ値ｉを１に設定する（ステップＳ５２）。
【０１１０】
次に、ＭＰＵ１００は、ステップＳ２３と同様に、運動パターンＰ（ｉ）Ｐ（ｉ＋１）に対応するスマート複合運動パターンｍ（ｉ）ｍ（ｉ＋１）が運動パターンデータベース１１４に存在しているか否かを判定する（ステップＳ５３）。この処理において、スマート複合運動パターンｍ（ｉ）ｍ（ｉ＋１）が存在すると判定すると（ステップＳ５３：Ｙｅｓ）、ＭＰＵ１００は、第１モーション結合処理を実行する（ステップＳ５４）。この第１モーション結合処理は、図２２に示すステップＳ６０〜Ｓ６２の処理であり、後で詳述する。
【０１１１】
この第１モーション結合処理を終了すると、ＭＰＵ１００は、カウンタ値ｉに１を加算した値がＮとなるか否かを判定する（ステップＳ５５）。すなわち、次に結合すべき運動パターンが最後の運動パターンＰ（Ｎ）であるか否かを判定する。この処理において、ｉ＋１がＮであると判定すると（ステップＳ５５：Ｙｅｓ）、ＭＰＵ１００は、運動パターンＰ（Ｎ）の基本運動パターンｍ（Ｎ）を作成中の運動プログラム用画像情報に結合して運動プログラム用画像情報を完成させて（ステップＳ５６）、本メイン処理を終了する。一方、ｉ＋１がＮではないと判定すると（ステップＳ５５：Ｎｏ）、ＭＰＵ１００は、処理をステップＳ５８に移行する。
【０１１２】
ステップＳ５３において、スマート複合運動パターンｍ（ｉ）ｍ（ｉ＋１）が存在しないと判定すると（ステップＳ５３：Ｎｏ）、ＭＰＵ１００は、第２モーション結合処理を実行する（ステップＳ５７）。この第２モーション結合処理は、図２３に示すステップＳ７０の処理であり、後で詳述する。この第２モーション結合処理を終了すると、ＭＰＵ１００は、カウンタ値ｉに１を加算した値がＮとなるか否かを判定する（ステップＳ５８）。この処理において、ｉ＋１がＮであると判定すると（ステップＳ５８：Ｙｅｓ）、ＭＰＵ１００は、本メイン処理を終了する。一方、ｉ＋１がＮではないと判定すると（ステップＳ５８：Ｎｏ）、ＭＰＵ１００は、カウンタ値ｉに１を加算して（ステップＳ５９）、処理をステップＳ５３に戻し、ステップＳ５４又はステップＳ５７の処理を繰り返し行う。
【０１１３】
このように、サーバ装置１のＭＰＵ１００は、運動パターンＰ（１）〜運動パターンＰ（Ｎ）を結合するときに、最初に運動パターンＰ（１）の基本運動パターンｍ（１）を選択する。また、ＭＰＵ１００は、運動パターンｍ（Ｎ−１）の一部のフレーム情報と運動パターンｍ（Ｎ）の一部のフレーム情報を有するスマート複合運動パターンｍ（Ｎ−１）ｍ（Ｎ）があるときには、そのスマート複合運動パターンを最後に結合する運動パターンとして選択し、スマート複合運動パターンｍ（Ｎ−１）ｍ（Ｎ）がないときには、基本運動パターンｍ（Ｎ）を最後に結合する運動パターンとして選択する。
【０１１４】
次に、上記ステップＳ５４における第１モーション結合処理について、図２２を参照して具体的に説明する。
【０１１５】
図２２に示すように、第１モーション結合処理を開始すると、ＭＰＵ１００は、運動パターンＭ（ｉ）がスマート複合運動パターンの一部となっているか否かを判定する（ステップＳ６０）。すなわち、ｉ＝２以上のときに、すでに結合されている運動パターンＭ（ｉ）が、スマート複合運動パターンｍ（ｉ−１）ｍ（ｉ）により運動パターンＭ（ｉ−１）Ｍ（ｉ）として形成された運動パターンの一部であるか否かを判定する。
【０１１６】
この処理において、運動パターンＭ（ｉ）がスマート複合運動パターンの一部であると判定すると（ステップＳ６０：Ｙｅｓ）、ＭＰＵ１００は、運動パターンＭ（ｉ−１）Ｍ（ｉ）とスマート複合運動パターンｍ（ｉ）ｍ（ｉ＋１）を、第１結合方法で結合する。すなわち、運動パターンＭ（ｉ）とｍ（ｉ）のカウント（２）〜（４）のフレームを補間（ブレンド）してブレンドモーションデータを作成し、このブレンドモーションデータを用いて、運動パターンＭ（ｉ−１）Ｍ（ｉ）にスマート複合運動パターンｍ（ｉ）ｍ（ｉ＋１）を結合する（ステップＳ６１）。
【０１１７】
一方、運動パターンＭ（ｉ）がスマート複合運動パターンの一部ではないと判定すると（ステップＳ６０：Ｎｏ）、ＭＰＵ１００は、運動パターンＭ（ｉ）とスマート複合運動パターンｍ（ｉ）ｍ（ｉ＋１）を、第２結合方法で結合する。すなわち、運動パターンＭ（ｉ）のカウント（７．５）〜（８）のフレームと基本運動パターンｍ（ｉ）の先頭（初期）フレーム（カウント（０）のフレーム）で補間（ブレンド）してブレンドモーションデータを作成し、このブレンドモーションデータを用いて、運動パターンＭ（ｉ）にスマート複合運動パターンｍ（ｉ）ｍ（ｉ＋１）を結合する（ステップＳ６２）。
【０１１８】
ステップＳ６１の処理又はステップＳ６２の処理が終了すると、ＭＰＵ１００は、第１モーション結合処理を終了する。
【０１１９】
このようにサーバ装置１は、前回結合に用いた運動パターンがスマート複合運動パターンのときには、スマート複合運動パターンｍ（ｉ）ｍ（ｉ＋１）を第１結合方法で結合し、基本運動パターンのときには、スマート複合運動パターンｍ（ｉ）ｍ（ｉ＋１）を第２結合方法で結合するようにしている。
【０１２０】
次に、上記ステップＳ５７における第２モーション結合処理について、図２３を参照して具体的に説明する。
【０１２１】
図２３に示すように、第２モーション結合処理を開始すると、ＭＰＵ１００は、運動パターンＭ（ｉ）と基本運動パターンｍ（ｉ）とを、第２結合方法で結合する。すなわち、運動パターンＭ（ｉ）のカウント（７．５）〜（８）のフレーム情報と基本運動パターンｍ（ｉ）の先頭（初期）フレーム情報（カウント（０）のフレーム情報）で補間（ブレンド）してブレンドモーションデータを作成し、このブレンドモーションデータを用いて、運動パターンＭ（ｉ）にスマート複合運動パターンｍ（ｉ）ｍ（ｉ＋１）を結合して（ステップＳ７０）、第２モーション結合を終了する。
【０１２２】
このように  通常の複合運動パターンよりもデータ量が少ないスマート複合運動パターンを用いて運動プログラム用画像情報を作成するようにしているので、複合運動パターンを格納するのに必要な運動パターンデータベース１１４の記憶領域を小さくすることができる。
【０１２３】
以上、本発明の実施形態をいくつかの図面に基づいて詳細に説明したが、これらは例示であり、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【０１２４】
例えば、複合運動パターンを第１基本運動パターンと第２基本運動パターンとを連続させて２種類の基本運動パターンを含む運動パターンとして説明したが、３種類以上の基本運動パターンを連続させた運動パターンであっても良い。
【図面の簡単な説明】
【０１２５】
【図１】本発明の一実施形態に係る運動支援システムの概略構成図である。
【図２】サーバ装置の主要な内部構成等を表したブロック図である。
【図３】サーバ装置の運動パターンデータベースの格納情報の内容を示す図表である。
【図４】モーションデータのイメージを示す概念図である。
【図５】マーカに対応した点及びボーンの関係を示した図である。
【図６】モーションデータを示す図表である。
【図７】基本運動パターンのモーションデータに基づいて作成した各カウント位置のバーチャルインストラクター画像の例を示す図である。
【図８】複合運動パターンのモーションデータに基づいて作成した各カウント位置のバーチャルインストラクター画像の例を示す図である。
【図９】複数の運動パターンの結合処理の説明図である。
【図１０】複数の運動パターンの結合処理の説明図である。
【図１１】複数の運動パターンの結合処理の説明図である。
【図１２】複数の運動パターンの結合処理の説明図である。
【図１３】複数の運動パターンの結合処理の説明図である。
【図１４】複数の運動パターンの結合処理の説明図である。
【図１５】複数の運動パターンの結合処理の説明図である。
【図１６】サーバ装置のメイン処理のフローチャートである。
【図１７】図１６に示す動画生成処理のフローチャートである。
【図１８】図１７に示す初期動画生成処理のフローチャートである。
【図１９】図１７に示す第１モーション結合処理のフローチャートである。
【図２０】図１７に示す第２モーション結合処理のフローチャートである。
【図２１】図１６に示す別の動画生成処理のフローチャートである。
【図２２】図２１に示す第１モーション結合処理のフローチャートである。
【図２３】図２２に示す第２モーション結合処理のフローチャートである。
【図２４】従来の画像生成装置における運動パターンの結合の説明図である。
【図２５】従来の画像生成装置における運動パターンの結合の説明図である。
【図２６】従来の画像生成装置における運動パターンの結合の説明図である。
【符号の説明】
【０１２６】
１  サーバ装置
２  端末ユニット
４  キャラクタ画像
５  カメラ
１０  ディスプレイ
１１  キーボード
１２  マウス
２０  端末装置
２１  大型モニタ装置
２２  スピーカ
２３  入力操作器
１００  ＭＰＵ
１０１  ＲＡＭ
１０２  ＲＯＭ
１０３  通信インターフェイス
１０４  ハードディスク装置
１０５  内部バス
１１０  システムプログラム
１１１  サーバプログラム
１１２  メニューデータベース
１１３  ユーザデータベース
１１４  運動パターンデータベース
１１５  楽曲データベース
【図１】
2009128923.tif 000003
【図２】
2009128923.tif 000004
【図３】
2009128923.tif 000005
【図４】
2009128923.tif 000006
【図５】
2009128923.tif 000007
【図６】
2009128923.tif 000008
【図７】
2009128923.tif 000009
【図８】
2009128923.tif 000010
【図９】
2009128923.tif 000011
【図１０】
2009128923.tif 000012
【図１１】
2009128923.tif 000013
【図１２】
2009128923.tif 000014
【図１３】
2009128923.tif 000015
【図１４】
2009128923.tif 000016
【図１５】
2009128923.tif 000017
【図１６】
2009128923.tif 000018
【図１７】
2009128923.tif 000019
【図１８】
2009128923.tif 000020
【図１９】
2009128923.tif 000021
【図２０】
2009128923.tif 000022
【図２１】
2009128923.tif 000023
【図２２】
2009128923.tif 000024
【図２３】
2009128923.tif 000025
【図２４】
2009128923.tif 000026
【図２５】
2009128923.tif 000027
【図２６】
2009128923.tif 000028