説明

画像生成装置及びそのプログラム

【課題】複数の運動パターンを結合したときでもキャラクタをリアルに動作させる画像生成装置を提供する。
【解決手段】複数種類の基本運動パターンを組み合わせたフレーム情報に基づいて、キャラクタの動的な画像を生成する画像生成装置において、各基本運動パターンのフレーム情報と、2種類以上の基本運動パターンの全部又は各一部のフレーム情報を有する複合運動パターンのフレーム情報とをそれぞれ記憶する運動パターン記憶手段と、運動パターンのフレーム情報の結合を行う運動パターン結合手段と、結合したフレーム情報に基づいて、キャラクタの動的な画像を生成する画像生成手段とを備え、運動パターン結合手段は、互いに結合する運動パターンにそれぞれ含まれる同一種類の基本運動パターンのフレーム情報同士を補間したフレーム情報を用いて、運動パターンのフレーム情報の結合を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像生成装置及びそのプログラムに関し、さらに詳細には、複数のパーツが関節で連結されたキャラクタの複数のポイントの座標位置を変化させて当該キャラクタの動的な画像を生成するための画像生成装置及びそのプログラムに関する。
【背景技術】
【0002】
従来より3次元の仮想的な人型のキャラクタを動的に変化させた画像を生成する画像生成装置が知られており、当該キャラクタのリアルな動作を再現するために、人間の動作をモーションキャプチャ等で計測して複数のフレーム情報からなるモーションデータを作成するようにしている。
【0003】
この種の画像生成装置においては、キャラクタの運動パターンが少ないときには問題がない。しかし、近年ではキャラクタの動作をよりリアルにかつ多様に行わせることが必要となっており、そのために多数の運動パターンのモーションデータを用意しなければならなくなってきている。
【0004】
そこで、このようなモーションデータ量の増大を抑える技術として、複数の運動パターンを補間(ブレンド)する技術が提案されている。
【0005】
この補間技術として、補間用モーションデータを用意しておき、2つの運動パターン同士のモーションデータを結合するときに、この補間用モーションデータを用いることで複数の運動パターンを補間する方法を採用するものがある。
【0006】
しかし、このような方法では、運動パターンの種類が多くなるにつれてその数に応じた補間用モーションデータを用意しなければならず、よりリアルに複雑な動作を再現しようとすると、無数の補間用モーションデータが必要となる。
【0007】
そこで、特許文献1には、2つの運動パターンのモーションデータの結合を、一方の運動パターンのモーションデータの後半部分と他方の運動パターンのモーションデータの前半部分とをそれぞれの重み付け(補間度合い)を変化させて補間する演算を行って一つの繋ぎ用のモーションデータを作成し、この繋ぎ用のモーションデータを補間用モーションデータとして用いることにより複数の運動パターンを結合する技術が開示されている。
【0008】
例えば、図24に示すように、運動パターンFのモーションデータ(フレーム(1)〜フレーム(n)のフレーム情報)と運動パターンGのモーションデータ(フレーム(1)〜フレーム(m)のフレーム情報)とを結合する場合、運動パターンFの終了付近のモーションデータ(フレーム(n−4)〜フレーム(n) のフレーム情報)と運動パターンGの開始付近のモーションデータ(フレーム(1)〜フレーム(5) のフレーム情報)を補間することによって繋ぎ用のモーションデータ(フレーム(a)〜フレーム(e)のフレーム情報)を作成する。
【0009】
このときの補間を、図25に示すように、運動パターンFのモーションデータのうち最終フレームの数フレーム前のフレーム(フレーム(n−4))から順次最終フレーム(フレーム(n)にかけてこの運動パターンFのフレーム情報に対する比率を下げ、一方で運動パターンGの初期フレーム(フレーム(1))のフレーム情報から順次所定期間後のフレーム(フレーム(5))のフレーム情報にかけてこの運動パターンGのフレーム情報に対する比率を上げて補間することによって行うことで、キャラクタのリアルな動作を再現することができる。
【0010】
上述のように運動パターンFと運動パターンGとを補間して作成した繋ぎ用パターンのモーションデータによって、運動パターンFと運動パターンGとを結合して作成したモーションデータによって生成されるキャラクタの動的な画像を図26に示す。このモーションデータは、同図に示すように、運動パターンFのフレーム(1)〜(n−5)の各フレーム情報、繋ぎ用パターンのフレーム(a)〜(e)の各フレーム情報、運動パターンGのフレーム(6)〜(m)の各フレーム情報から構成される。
【0011】
このように、特許文献1の補間技術を用いることによって、キャラクタのリアルな動作を再現しつつも、補間用モーションデータを用意しておく必要がなくなり、予め用意し記憶すべきデータ量を大幅に削減することができる。
【特許文献1】特開2003−85592号公報
【発明の開示】
【発明が解決しようとする課題】
【0012】
しかし、上記特許文献1の補間技術で補間して運動パターン同士を結合した場合、キャラクタの運動パターンによっては、生成したキャラクタ画像においてそのキャラクタ動作が不自然となってしまうことがある。
【0013】
このようにキャラクタ動作が不自然となると、その画像を見る者に対して違和感や不快感を与えてしまうことになり、キャラクタをリアルに動作させる効果が半減してしまう虞がある。
【課題を解決するための手段】
【0014】
そこで、かかる課題を解決すべく、請求項1に記載の発明は、複数種類の基本運動パターンを組み合わせたフレーム情報に基づいて、複数のパーツが関節で連結されたキャラクタの複数のポイントの座標位置を変化させ、前記キャラクタの動的な画像を生成する画像生成装置において、各前記基本運動パターンのフレーム情報と、2種類以上の前記基本運動パターンの全部又は各一部のフレーム情報を有する複合運動パターンのフレーム情報とをそれぞれ記憶する運動パターン記憶手段と、前記基本運動パターンのフレーム情報と前記複合運動パターンのフレーム情報との結合、及び前記複合運動パターン同士のフレーム情報の結合を行う運動パターン結合手段と、前記運動パターン結合手段によって結合したフレーム情報に基づいて、前記キャラクタの動的な画像を生成する画像生成手段とを備え、前記運動パターン結合手段は、前記基本運動パターンのフレーム情報と前記複合運動パターンのフレーム情報との結合、及び前記複合運動パターン同士のフレーム情報の結合を行うときに、互いに結合する運動パターンにそれぞれ含まれる同一種類の基本運動パターンのフレーム情報同士を補間したフレーム情報を用いることを特徴とする。
【0015】
また、請求項2に記載の発明は、請求項1に記載の画像生成装置において、前記運動パターン結合手段は、前記基本運動パターン又は前記複合運動パターンを結合先として前記基本運動パターンを結合するとき、当該結合しようとする基本運動パターンの一部のフレーム情報を用いて前記結合先の基本運動パターン又は複合運動パターンによるキャラクタ動作の動作終了前の所定期間におけるフレーム情報を補間して、前記基本運動パターンを結合することを特徴とする。
【0016】
また、請求項3に記載の発明は、請求項1又は請求項2に記載の画像生成装置において、前記複合運動パターンのフレーム情報は、第1基本運動パターンの後半部分のフレーム情報と第2基本運動パターンの前半部分のフレーム情報とに加え、補間用フレーム情報として第1基本運動パターンの前半部分の一部のフレーム情報が含まれており、前記運動パターン結合手段は、前記複合運動パターンを結合しようとするときに、前記補間用フレーム情報を用いることを特徴とする。
【0017】
また、請求項4に記載の発明は、コンピュータを、請求項1〜3のいずれか1項に記載の前記画像生成装置の各手段として機能させることを特徴とするプログラムとした。
【発明の効果】
【0018】
基本運動パターンのフレーム情報と複合運動パターンのフレーム情報との結合、或いは複合運動パターン同士のフレーム情報の結合を行うときに、結合する運動パターンにそれぞれ含まれる同一種類の基本運動パターンのフレーム情報同士を補間したフレーム情報を用いることにより、キャラクタの動画像が不自然な動作となることを抑制することができ、視覚的な違和感や不快感を与えることを抑えたキャラクタの動的な画像を生成することができる。
【発明を実施するための最良の形態】
【0019】
以下、本発明にかかる画像生成装置の一実施形態について、図面を参照して説明する。本実施形態における画像生成装置は、複数のパーツが関節で連結された3次元の仮想的なキャラクタの複数のポイントの座標位置を変化させ、当該キャラクタの動的な画像を生成する装置である。
【0020】
本実施形態においては、3次元の仮想的なキャラクタの動的な画像を生成する画像生成装置を用いた運動支援システムを例に挙げて説明する。この運動支援システムは、3次元の仮想的なキャラクタをインストラクターとしてエアロビックスレッスンを行うものである。
【0021】
[1.運動支援システムの概要]
まず、本発明の実施形態に係る運動支援システムについて図面を参照して説明する。図1は本実施形態に係る運動支援システムの概略構成図である。
【0022】
本実施形態に係る運動支援システムSは、スポーツクラブなどの施設に設置され、3次元の仮想的なインストラクター(以下、「バーチャルインストラクター」と呼ぶ。)を表示してエアロビックスレッスンを行うための装置である。
【0023】
この運動支援システムSは、図1に示すように、複数の運動パターンを組み合わせて1つの運動プログラムを作成する際に、当該運動プログラム用のバーチャルインストラクター動画情報(以下、「運動プログラム用動画情報」と呼ぶ。)を作成する画像生成装置として機能を有するサーバ装置1と、このサーバ装置1で生成した運動プログラム用動画情報及び楽曲情報に基づいた画像及び音声を再生する端末ユニット2とを備えている。なお、図示していないが、サーバ装置1には端末ユニット2を複数台接続可能となっており、システムの規模に応じて適宜増減可能となっている。
【0024】
サーバ装置1は、ディスプレイ10等の表示手段、キーボード11、マウス12等の入力手段を接続可能に構成されており、サーバ装置1の管理者は、ディスプレイ10に表示された画像を見ながらキーボード11やマウス12などによりサーバ装置1の操作(例えば、端末ユニット2での運動プログラムの再生許可の設定など)が可能となっており、端末ユニット2からの要求に応じて、運動プログラム用動画情報を作成し、楽曲情報と共に端末ユニット2へネットワークケーブル3を介して送信する。
【0025】
端末ユニット2は、運動ブースHに設置されており、端末装置20と、大型モニタ装置21と、スピーカ22と、入力操作器23とから構成されている。端末装置20は、ネットワークケーブル3を介してサーバ装置1に接続されており、サーバ装置1から送信される運動プログラム用動画情報及び楽曲情報を再生処理して、当該再生画像を大型モニタ装置21の画面上に表示し、再生楽曲をスピーカ22から出力する。
【0026】
大型モニタ装置21の表示に従って、ユーザU1が運動プログラムの楽曲を入力操作器23により選択すると、この選択に応じてサーバ装置1により作成されたユーザU1専用の運動プログラムが端末装置20で再生される。そして、ユーザU1は、端末装置20によりスピーカ22を介して出力されるその運動プログラムの楽曲を聴きながら、端末装置20により大型モニタ装置21を介して表示されるバーチャルインストラクターの動画像に合わせて身体運動を行うことになる。
【0027】
ここで、サーバ装置1は、ユーザU1の操作に応じて選択される楽曲の情報を端末ユニット2から取得し、この楽曲の演奏時間の長さで複数の運動パターンを組み合わせた運動プログラムを作成する。この運動プログラムは、複数の運動パターンを組み合わせた動画情報とユーザU1によって選択された楽曲情報とからなる。
【0028】
本実施形態におけるサーバ装置1では、複数の運動パターンの組み合わせの際に、結合する運動パターン同士のモーションデータを一部補間した繋ぎ用のモーションデータ(以下、「ブレンドモーションデータ」と呼ぶ。)を用いて運動パターンを結合することによって、モーションデータのデータ量を削減することとしている。
【0029】
ここで、サーバ装置1では、ブレンドモーションデータを用いたときにバーチャルインストラクターの動作が不自然とならないように、2種類以上の基本運動パターンの全部又は各一部のフレーム情報を有する複合運動パターンのフレーム情報を備えており、運動パターンのフレーム情報の結合を行うときに、互いに結合する運動パターンにそれぞれ含まれる同一種類の基本運動パターンのフレーム情報同士を補間したフレーム情報を用いるようにしている。これにより、その画像を見る者に対して違和感や不快感を与えてしまうことを回避するようにしている。
【0030】
[2.サーバ装置の構成及び動作]
以下、このように運動プログラム用動画情報を作成するサーバ装置1について図面を参照して具体的に説明する。図2はサーバ装置の主要な内部構成等を表したブロック図、図3はサーバ装置の運動パターンデータベースの格納情報の内容を示す図、図4はモーションデータのイメージを示す概念図、図5はマーカに対応した点及びボーンの関係を示した図、図6はモーションデータを示す図表、図7はモーションデータに基づいて作成した各カウント位置のバーチャルインストラクター画像の例を示す図、図8は複合運動パターンのモーションデータに基づいて作成した各カウント位置のバーチャルインストラクター画像の例を示す図である。
【0031】
(サーバ装置の構成)
サーバ装置1は、汎用のサーバコンピュータを適用可能であり、図2に示すように、各種制御処理を行うMPU(プロセッサ)100と、RAM101と、ROM102と、通信インターフェイス103と、ハードディスク装置104とを備えており、これらは内部バス105によって相互に接続されている。なお、内部バス105には、ディスプレイ10、キーボード11及びマウス12も接続されており、MPU100の処理に伴って各処理内容をディスプレイ10へ表示可能とすると共に、キーボード11やマウス12への入力に応じた操作内容をMPU100に送信するようにしている。
【0032】
RAM101は、MPU100の処理に従ってデータ及びフォルダ等を一時的に記憶するワーキングメモリとして使用されるものであり、ROM102はMPU100が行う基本的な処理内容を規定したプログラム等を予め記憶している。通信インターフェイス103は、MPU100の制御によって、ネットワークケーブル3等を介して、端末装置20へ運動プログラム用動画情報や楽曲情報を送信したり、端末装置20から送信される制御データなどを受信したりする。この通信インターフェイス103は例えば、LAN(Local Area Network)インターフェイスを用いることができる。
【0033】
ハードディスク装置104は、サーバ装置1が行う各種処理を規定するプログラム及び各種データを格納するデータベースなどを記憶するものであり、システムプログラム110やサーバプログラム111などのプログラムデータ、メニューデータベース112、ユーザデータベース113、運動パターンデータベース(運動パターン記憶手段に相当)114及び楽曲データベース115などのデータベースを記憶する。
【0034】
システムプログラム110は、サーバ装置1が行う基本的な処理内容を規定したプログラムであり、サーバプログラム111は、サーバ装置1の各種機能を実行するための処理内容を規定したプログラムである。MPU100は、システムプログラム110を実行した状態で、サーバプログラム111を実行することによって、サーバ装置1としての各種機能を実行するようにしている。
【0035】
メニューデータベース112は各種メニューに応じたデータを格納したものであり、これらのデータは端末装置20へ送信され、大型モニタ装置21に表示される。ユーザU1は、大型モニタ装置21に表示される楽曲選択メニューを見ながら入力操作器23を操作して、楽曲を決定する。すなわち、大型モニタ装置21に楽曲を選択する楽曲選択メニュー画面が表示され、ユーザU1はこの楽曲選択メニュー画面に応じて楽曲を決定する。このとき、ユーザU1が入力操作器23への操作によって楽曲を選択すると、この入力操作器23への操作がネットワークケーブル3を介してMPU100に通知され、MPU100は、当該選択された楽曲の演奏時間の長さの運動プログラム用動画情報を作成して、楽曲情報と共に、端末装置20へ送信するようにしている。このように送信された運動プログラム用動画情報及び楽曲情報は、端末装置20によって再生される。
【0036】
このシステムプログラム110及びサーバプログラム111等は、例えば、ネットワークに接続されたサーバ等からネットワークケーブル3を介してハードディスク装置104にダウンロードされるようにしてもよく、また、CD−RやDVD−R等の記録媒体に記録して、図示しない記録媒体ドライブを介してハードディスク装置104に読み込まれるようにしてもよい。
【0037】
MPU100は、サーバプログラム111を実行することによって、後述のように、運動パターンの結合を行う運動パターン結合手段、結合した複数の運動パターンに基づいてバーチャルインストラクターの動的な画像を生成する画像生成手段等として機能する。
【0038】
ユーザデータベース113は、サーバ装置1への登録を行ったユーザの情報が格納されるものであり、ユーザの会員番号、年齢、体重、身長、運動履歴などが格納される。また、楽曲データベース115は運動プログラムで使用可能な複数の楽曲を格納したデータベースである。
【0039】
運動パターンデータベース114は、バーチャルインストラクターが表現する各種運動パターン(以下、任意の運動パターンを表す場合には「モーション」と呼ぶことがある。)に応じたモーションデータが格納されるものであり、これらのモーションデータは、図3に示すように、運動パターン毎にそのパターン番号と対応付けて格納される。運動パターンとしては、例えば、「マーチ」、「サイドステップ1」、「サイドステップ2」、「オープン/クローズ」、「ボクササイズ」などがある。
【0040】
ここで、運動パターンデータベース114に格納されるモーションデータは、複数のマーカを付した現実のインストラクターが行う動作をキャプチャーする等により各マーカの3次元空間の座標位置を計測して作成されるものであり、いわゆるバーチャルインストラクター(動体)を規定した内容となっている。1つのモーションデータは、8カウント(約4秒)の時間帯における各マーカの座標位置の変動内容を規定している。
【0041】
図4は、具体的なモーションデータのイメージを示したものである。バーチャルインストラクターを表すキャラクタ画像4が、モーションデータに基づいて3次元コンピュータグラフィックス技術によりX軸、Y軸、Z軸で構成されるXYZ座標系に位置するように作成されることになる。このXYZ座標系とは異なるカメラ5の撮像方向(動画表示時の視点方向に相当)及び位置を定めるためのUVW座標系を設け、XYZ座標系とUVW座標系との相対関係を規定することで、ユーザが所望する方向及び位置からのバーチャルインストラクターの動画像が表示可能となる。
【0042】
3次元コンピュータグラフィックス技術により生成されるキャラクタ画像4は、図5に示すように、人体の骨に相当するボーンBと呼ばれるリンク部材を回動自在に連結したものに、人間の皮膚に相当するスキンを被せて作成されるものであり、これにより脚部D1a,D1b、腕部D2a,D2b、腰部D3、胴部D4及び頭部D5のそれぞれのパーツが関節で連結された人型のキャラクタが表現される(図4参照)。なお、人型のキャラクタではなく、猫型、犬型などの動物型のキャラクタとして表現するようにしてもよい。
【0043】
図5に示すボーンBの各ポイントに付された点P1〜P17が、上述した現実のインストラクターに付したマーカ位置に相当し、インストラクターが各種動作を行った所定時間(8カウント分)の各点P1〜P17の座標位置が各運動パターンのモーションデータの内容となっている。すなわち、各運動パターンのモーションデータには、図6に示すように、カウント(0)〜カウント(8)までの0.1カウント(1フレーム)毎の各ポイント(点P1〜P17)の座標位置(X座標位置、Y座標位置、Z座標位置)の情報が含まれており、MPU100は画像生成手段として、このモーションデータのカウント番号の少ないものから順に座標位置を取得していき、バーチャルインストラクターの動的な画像を生成することになる。なお、0.1カウント毎の複数のポイント(点P1〜P17)の座標位置の情報を「フレーム情報」と呼ぶ(図6参照)。また、図5に示す各点P1〜P17の位置及び個数は一例であり、生成するキャラクタ画像4の仕様、要求精度及びハード的なスペック等に応じてマーカの位置及び個数は適宜変更できる。
【0044】
このようにモーションデータに基づいて作成した各カウント位置(カウント(0)〜カウント(8))のバーチャルインストラクター画像の例を図7に示す。図7(a)には運動パターンが「マーチ」であるときの各カウント位置のバーチャルインストラクター画像が示され、図7(b)には運動パターンが「サイドステップ1」であるときの各カウント位置のバーチャルインストラクター画像が示され、図7(c)には運動パターンが「サイドステップ2」であるときの各カウント位置のバーチャルインストラクター画像が示されている。なお、カウント(0)のフレーム情報とカウント(8)のフレーム情報は同様となることから、カウント(0)のフレーム情報に代えてカウント(8)のフレーム情報とすることもできるが、ここでは理解を容易にするためにカウント(0)のフレーム情報とカウント(8)のフレーム情報とを区別して説明するものとする。
【0045】
本実施形態においては、モーションデータとして、上述の図7に示すようなエアロビックス用のそれぞれの運動の種類に応じた運動パターン(以下、「基本運動パターン」とする。)に加え、少なくとも2種類の基本運動パターンの全部又は各一部を有する運動パターン(以下、「複合運動パターン」と呼ぶ。)を用いるようにしている。
【0046】
そして、上述のようにサーバ装置1のMPU100は、ユーザU1によって選択された楽曲の演奏時間の長さに応じて、複数の運動パターンを組み合わせて運動プログラム用動画情報を作成する。
【0047】
ここで、複合運動パターンの例を、図8に示す。図8(a)は基本運動パターン「マーチ」(図7(a)参照)に基本運動パターン「サイドステップ1」(図7(b)参照)を連続させた複合運動パターンであり、図8(b)は基本運動パターン「サイドステップ1」(図7(b)参照)に基本運動パターン「マーチ」(図7(a)参照)を連続させた複合運動パターンである。
【0048】
この複合運動パターンも基本運動パターンと同様に現実のインストラクターが行う動作をキャプチャーする等により各マーカの3次元空間の座標位置を計測して作成されるものであり、インストラクターが2つの基本運動パターンの動作を連続して行った所定時間(15カウント分)の各点P1〜P17の座標位置が各複合運動パターンのモーションデータの内容となっている。
【0049】
この複合運動パターンは、基本運動パターンをそのまま結合させたものではなく、一方の基本運動パターン(以下、「第1運動パターン」と呼ぶ。)と、他方の基本運動パターン(以下、「第2運動パターン」と呼ぶ。)とを自然な動きで連続させたものである。すなわち、現実のインストラクターが行う動作をキャプチャーする等により第1運動パターンのカウント(7)から第2運動パターンのカウント(0)までをバーチャルインストラクターの動作が自然な動作となるように移行させている。
【0050】
本実施形態のサーバ装置1においては、上述した基本運動パターンと複合運動パターンとを用いて複数の基本運動パターンの運動を連続させ、バーチャルインストラクターの動的な画像として表現できるように運動プログラム用画像情報を作成するものである。
【0051】
以下、複数の基本運動パターンを連続させた運動プログラム用画像情報の作成について、具体的に説明する。図9〜図15は本実施形態のサーバ装置1において複数の運動パターンの結合処理の内容を説明するための図である。
【0052】
まず、図9を参照して、基本運動パターン「マーチ」と「サイドステップ1」を交互に連続させた5つの基本運動パターンからなる運動プログラム用画像情報(図9(a)参照)を作成するときの処理について説明する。
【0053】
MPU100は、図9(a)に示す運動プログラム用画像情報を作成するとき、図8(a)に示す「マーチ+サイドステップ1(M−S1)」の複合運動パターンと、図8(b)に示す「サイドステップ1+マーチ(S1−M)」の複合運動パターンとを取り出す。そして、図9(b)に示すように、「マーチ+サイドステップ1(M−S1)」と「サイドステップ1+マーチ(S1−M)」とを結合し、さらに、これに「マーチ+サイドステップ1(M−S1)」を結合し、さらに、これに「サイドステップ1+マーチ(S1−M)」を結合する。
【0054】
ここで、複合運動パターンの結合方法は、一方の複合運動パターン(以下、「第1複合運動パターン」と呼ぶ。)の後半の基本運動パターンのうちカウント(2)〜(4)の各フレーム情報と、他方の複合運動パターン(以下、「第2複合運動パターン」と呼ぶ。)の前半の基本運動パターンのうちカウント(2)〜(4)の各フレーム情報とを所定比率で補間(ブレンド)したブレンドモーションデータを作成し、第1複合運動パターンの後半の基本運動パターンのカウント(2)〜(4)の各フレーム情報を上記作成したブレンドモーションデータに置き換え、さらにそれ以降のフレームを第2複合運動パターンの前半の基本運動パターンのカウント(4.1)からのフレームに続けることによって行う。以下、このように同一種類の基本運動パターンのカウント(2)〜(4)の各フレーム情報同士を補間したフレーム情報(ブレンドモーションデータ)を用いて結合方法を「第1結合方法」と呼ぶこととする。
【0055】
例えば、「マーチ+サイドステップ1」の複合運動パターンに、「サイドステップ1+マーチ」の複合運動パターンを結合するとき、図10に示すように、「マーチ+サイドステップ1」の複合運動パターン(図10(a))の後半の基本運動パターン(「サイドステップ1」)のカウント(2)〜(4)の各フレーム情報と、「サイドステップ1+マーチ」の複合運動パターン(図10(b))の前半の基本運動パターン(「サイドステップ1」)のカウント(2)〜(4)の各フレーム情報とを所定比率で補間(ブレンド)してブレンドモーションデータ(図10(c))を作成する。
【0056】
そして、「マーチ+サイドステップ1」の複合運動パターン(図10(a))の後半の基本運動パターン(「サイドステップ1」)のカウント(1.9)までのフレームと、ブレンドモーションデータのフレーム(図10(c))と、「サイドステップ1+マーチ」の複合運動パターン(図10(b))の前半の基本運動パターン(「サイドステップ1」)のフレーム(4.1)からのフレームまでを連続させて、図10(d)に示すように、「マーチ+サイドステップ1+マーチ」となる運動パターンを作成する。
【0057】
このように複合運動パターン同士で同一種類の基本運動パターンを補間して結合していくことで、3つ以上の基本運動パターンからなる運動プログラム用画像情報を作成することができる。図9に示す例では、このような結合方法で、「マーチ+サイドステップ1(M−S1)」の複合運動パターンと、「サイドステップ1+マーチ(S1−M)」の複合運動パターンとにより、「マーチ+サイドステップ1+マーチ+サイドステップ1+マーチ(M―S1−M−S1−M)」の運動プログラム用画像情報を作成した状態を示している。
【0058】
ここで、2つの複合運動パターンの同一基本運動パターン同士を補間するのは、各複合運動パターンのフレーム情報が現実のインストラクターが行う動作をキャプチャーして生成したものであり、全く同じではないからであるが、同一基本運動パターン同士であり、また同一カウントのフレーム情報同士を補間することとしているので、補間後のフレーム情報で不自然なものとなることはない。
【0059】
また、上述した複合運動パターンでは、2つの基本運動パターンを連続させたパターンとなっていることから、運動プログラム用画像情報で一番最初に用いる複合運動パターンではその前半の基本運動パターンの全てを用いることができ(例えば、図9(c)の左端の複合運動パターン参照)、運動プログラム用画像情報の一番最後に用いる複合運動パターンではその後半の運動パターンを全て用いることができる(例えば、図9(c)の右端の複合運動パターン参照)。
【0060】
なお、2つの複合運動パターンのブレンドモーションデータの作成は、上述のように第1複合運動パターンの後半の基本運動パターンのうちカウント(2)〜(4)における各フレーム情報と、第2複合運動パターンの前半の基本運動パターンのうちカウント(2)〜(4)における各フレーム情報とを所定比率で補間(ブレンド)して行うものであり、例えば、図10に示す例では、以下のように行うことができる。
【0061】
第1複合運動パターンの後半の基本運動パターン「サイドステップ1」を第1運動パターンAと呼び、第2複合運動パターンの前半の基本運動パターン「サイドステップ1」を第2運動パターンBと呼ぶこととすると、例えば、カウント(2.1)のフレーム情報は、第1運動パターンAと第2運動パターンBのブレンド比率を0.95:0.05とする。すなわち、第1運動パターンAのカウント(2.1)のフレーム情報における各ポイント(点P1〜P17)の座標位置のデータに0.95を積算し、第2運動パターンBのカウント(2.1)のフレーム情報における各ポイント(点P1〜P17)の座標位置のデータに0.05を積算して、これらを各ポイント(点P1〜P17)毎に合算することによって、ブレンドモーションデータを作成する。同様にカウント(2.2)〜(4)まで順次、0.1カウント毎に、ブレンド比率(第1運動パターンA,第2運動パターンB)を(0.9:0.1)→(0.85,0.15)→・・・→(0.05,0.95)→(0,1)としてブレンドモーションデータを作成する。
【0062】
すなわち、第1運動パターンAに第2運動パターンBを結合するとしたとき、補間するフレームにおいて各ポイント(点P1〜P17)のそれぞれの座標位置が、(XAp1,YAp1,ZAp1)〜(XAp17,YAp17,ZAp17)である第1運動パターンAと、(XBp1,YBp1,ZBp1)〜(XBp17,YBp17,ZBp17)である第2運動パターンBとに重み付け(α,β)(α+β=1)を行って加算し、フレーム情報の各ポイント(点P1〜P17)の位置座標を(αXAp1+βXBp1,αYAp1+βYBp1,αZAp1+βZBp1)〜(αXAp17+βXBp17,αYAp17+βYBp17,αZAp17+βZBp17)とする演算を、重み付け(α,β)を変化(順次αを減少、βを増加)させつつ、カウント(2)〜(4)のそれぞれのフレーム毎(0.1フレーム毎)に行ってブレンドモーションデータを作成する。なお、α≧0,β≧0,α+β=1とする。
【0063】
このように結合する運動パターンにおいて、互いの運動パターンのモーションデータで補間したブレンドモーションデータを作成することによって、バーチャルインストラクターの自然な動作を実行することができる。
【0064】
ところで、基本運動パターンが例えば100種類あるとすると,上述した複合運動パターンは10000種類必要となる。しかし、複合運動パターンのフレーム情報は、基本パターンと同様に現実のインストラクターの動作に基づいて作成されるものであることから、10000種類も作成するのは困難である。また、フレーム情報のデータ量も多くなり記憶容量も増大してしまう。従って、複合運動パターンの作成にも限界がある。
【0065】
そのため、例えば、「マーチ+サイドステップ1+サイドステップ2+サイドステップ1+マーチ(M―S1−S2−S1−M)」の運動プログラム用画像情報(図11(a)参照)を作成しようとしたときに、「サイドステップ1+サイドステップ2(S1−S2)」や「サイドステップ2+サイドステップ1(S2−S1)」の複合運動パターンが存在しないような場合、図11(b),(c)に示すように、「マーチ+サイドステップ1+サイドステップ2+サイドステップ1+マーチ(M―S1−S2−S1−M)」の運動プログラム用画像情報を作成することができない。
【0066】
このように運動プログラム用画像情報を作成するに当たり、複合運動パターンがないといった状態が生じる。そこで、本実施形態におけるサーバ装置1では、必要な複合運動パターンが存在しないようなときには、基本運動パターンのモーションデータからブレンドモーションデータを作成するようにしている。このように作成されるブレンドモーションデータを以下、「疑似複合モーションデータ」とも呼ぶ。
【0067】
例えば、図12に示す例では、「マーチ+サイドステップ1(M−S1)」の複合運動パターンと「サイドステップ1+マーチ(S1−M)」の複合運動パターンに加え、「サイドステップ2(S2)」の基本運動パターンを用いて、図12に示すように、「サイドステップ1+マーチ(M1−S)」の複合運動パターンと「サイドステップ2(S2)」の基本運動パターンとをこれらの一部のフレーム情報で作成した疑似複合モーションデータにより結合し、「サイドステップ2(S2)」の基本運動パターンと「サイドステップ1+マーチ(S1−M)」の複合運動パターンとをこれらの一部のフレーム情報で作成した疑似複合モーションデータで結合することによって、「マーチ+サイドステップ1+サイドステップ2+サイドステップ1+マーチ(M―S1−S2−S1−M)」の運動プログラム用画像情報を作成することができる。
【0068】
ここで、「マーチ+サイドステップ1(M−S1)」の複合運動パターン(図8(a)参照)に「サイドステップ2(S2)」の基本運動パターン(図7(c)参照)を結合するときの状態を例に挙げて説明する。
【0069】
図13(a)に示すように、「マーチ+サイドステップ1(M−S1)」の複合運動パターンの後半の基本運動パターン「サイドステップ1(S1)」のカウント(7.5)からカウント(8)までのフレーム情報のそれぞれに(図13(a)上段参照)、基本運動パターン「サイドステップ2(S2)」によるバーチャルインストラクターの動作開始位置のカウント(0)のフレーム情報(図13(a)中段参照)を互いに重み付け(ブレンド比率)を変化させつつ演算(図13(b)参照)した座標位置に置き換えるようにしている(図13(a)下段参照)。
【0070】
具体的には、基本運動パターン「サイドステップ1(S1)」のカウント(7.6)のフレームでは、重み付けを「サイドステップ1(S1)」が0.8、「サイドステップ2(S2)」が0.2となるようにそれぞれのフレーム情報に重み付けを行う。すなわち、基本運動パターン「サイドステップ1(S1)」のカウント(7.6)のフレーム情報(各ポイント(点P1〜P17)の座標位置のデータ)に0.8を積算し、基本運動パターン「サイドステップ1」のカウント(0)のフレーム情報(各ポイント(点P1〜P17)の座標位置のデータ)に0.2を積算して、これらを各ポイント(点P1〜P17)毎に合算することによって、ブレンドモーションデータを作成する。同様にカウント(7.7)〜(8)まで順次、0.1カウント毎に、重み付け(「サイドステップ(S1)」,「サイドステップ2(S2)」)を(0.6,0.4)→(0.4,0.6)→(0.2,0.8)→(1,0)としてブレンドモーションデータを作成する。このように作成したブレンドモーションデータが疑似複合モーションデータである。
【0071】
すなわち、例えば、第3運動パターンCに第4運動パターンDを結合するとしたとき、補間するフレームにおいて各ポイント(点P1〜P17)のそれぞれの座標位置が、(XCp1,YCp1,ZCp1)〜(XCp17,YCp17,ZCp17)である第3運動パターンCと、(XDp1,YDp1,ZDp1)〜(XDp17,YDp17,ZDp17)である第4運動パターンDとに重み付け(α,β)(α+β=1)を行って加算し、フレーム情報の各ポイント(点P1〜P17)の位置座標を(αXCp1+βXDp1,αYCp1+βYDp1,αZCp1+βZDp1)〜(αXCp17+βXDp17,αYCp17+βYDp17,αZCp17+βZDp17)とする演算を、重み付け(α,β)を変化(順次αを減少、βを増加)させつつ、第3運動パターンCのフレーム(7.5)〜(8)のそれぞれのフレーム毎に行って疑似複合モーションデータを作成する。なお、α≧0,β≧0,α+β=1とする。
【0072】
このように結合する運動パターンにおいて、互いの運動パターンのモーションデータで補間したブレンドモーションデータを作成することによって、運動パターンの切り替わり時に、バーチャルインストラクターを自然な切り替わり方で動作させることができる。以下、このように異なる種類の運動パターンをこれらの運動パターンから作成した疑似複合モーションデータを用いて結合する結合方法を「第2結合方法」と呼ぶこととする。
【0073】
ところで、上述においては、複合運動パターンを第1基本運動パターンと第2基本運動パターンとを連続させた運動パターンとして説明したが、複合運動パターンのモーションデータを、第1基本運動パターンの後半部分のフレーム情報(カウント(4.1)からのフレーム)、第2基本運動パターンの前半部分のフレーム情報(カウント(4)までのフレーム)、さらに第1基本運動パターンの後半部分の開始(カウント(4.1))前のフレームから2.1フレーム分のフレーム情報(カウント(2)〜(4)のフレーム情報。)のみで構成するようにしてもよい。
【0074】
このように複合運動パターンを構成することで、この複合運動パターンのモーションデータのデータ量を削減することができる。すなわち、2つの基本運動パターンを連続させた運動パターンに比べ、第1基本運動パターンのカウント(1)〜(1.9)のフレーム情報、第2基本運動パターンのカウント(4.1)〜(8)のフレーム情報が不要となるため、データ量を削減することができる。以下、このような複合運動パターンを「スマート複合運動パターン」と呼ぶこととする。
【0075】
このスマート複合運動パターンにおける結合方法は、上述した第1結合方法及び第2結合方法を用いて行われる。すなわち、基本運動パターンとスマート複合運動パターンとの結合、スマート複合運動パターン同士での結合、スマート複合運動パターンと基本運動パターンとの結合において、同一種類の基本運動パターンのフレーム情報同士を結合するときには第1結合方法を用い、異なる種類の基本運動パターンのフレーム同士を結合するときには第2結合方法を用いる。
【0076】
例えば、図14(a)に示すように、「マーチ+サイドステップ1+マーチ+サイドステップ1+マーチ(M―S1−M−S1−M)」の運動プログラム用画像情報を作成するときには、「マーチ(M)」の基本運動パターン、「サイドステップ1+マーチ(S1−M)」、「マーチ+サイドステップ1(M−S1)」のスマート複合運動パターン(図14(b)参照)を順次第1結合方法で結合する(図14(c)参照)。
【0077】
また、図15(a)に示すように、マーチ+サイドステップ1+サイドステップ2+サイドステップ1+マーチ(M―S1−S2−S1−M)」の運動プログラム用画像情報を作成するときにおいて、「サイドステップ1+サイドステップ2(S1−S2)」、「サイドステップ2+サイドステップ1(S2−S1)」のスマート複合運動パターンがないときには、「マーチ(M)」、「サイドステップ1(S1)」、「サイドステップ2(S2)」の基本運動パターンと、「マーチ+サイドステップ1(M−S1)」、「サイドステップ1+マーチ(S1−M)」のスマート複合運動パターンとを用い(図15(b)参照)、「マーチ(M)」と「マーチ+サイドステップ1(M−S1)」との間、「マーチ+サイドステップ1(M−S1)」と「サイドステップ1(S1)」との間、「サイドステップ1(S1)」と「サイドステップ1+マーチ(S1−M)」との間、「サイドステップ1+マーチ(S1−M)」と「マーチ(M)」との間をそれぞれ第1結合方法で結合し、「サイドステップ1(S1)」と「サイドステップ2(S2)」との間、「サイドステップ2(S2)」と「サイドステップ1(S1)」との間をそれぞれ第2結合方法で結合する(図15(c)参照)。
【0078】
(サーバ装置1の動作)
以上のように構成されるサーバ装置1の動作のうち、その特徴的部分である画像生成処理動作を中心とした処理について図面を参照して具体的に説明する。図16はサーバ装置1におけるメイン処理のフローチャート、図17は図16に示す動画生成処理のフローチャート、図18は図17に示す初期動画生成処理のフローチャート、図19は図17に示す第1モーション結合処理のフローチャート、図20は図17に示す第2モーション結合処理のフローチャートである。なお、以下の処理は、サーバ装置1のMPU100が上述した運動パターン結合手段、画像生成手段等として機能することによって実行されるものである。
【0079】
まず、サーバ装置1のMPU100は、ネットワークケーブル3を介して、運動プログラム用の楽曲選択メニューを表示するための画像情報を端末装置20へ送信する(ステップS10)。端末装置20はこの楽曲選択メニューの画像情報を受信すると、大型モニタ装置21に楽曲選択メニューを表示する。MPU100は、ユーザU1が入力操作器23への操作により楽曲の選択を行うまで待つことになる(ステップS11)。
【0080】
ユーザが入力操作器23を操作して運動プログラム用の楽曲を選択すると、端末装置20からネットワークケーブル3を介してサーバ装置1へ楽曲選択情報が送信される。MPU100は、この楽曲選択情報を受信すると、当該情報に応じた楽曲の演奏時間を楽曲データベース115から抽出し、動画生成処理を開始する(ステップS12)。この動画生成処理は、図17に示すステップS20〜S27の処理であり、後で詳述する。
【0081】
この動画生成処理を終了すると、MPU100は、ステップS12で取得した楽曲選択に応じた楽曲情報を楽曲データベース115から取り出し、この楽曲情報と上記動画生成処理で作成した運動プログラム用画像情報とを通信インターフェイス103を介して端末装置20へ送信し、端末装置20において再生させる(ステップS13)。すなわち、端末装置20は、ユーザU1が入力操作器23により選択した楽曲に応じた運動プログラム用画像情報及び楽曲情報を受信すると、受信した運動プログラム用画像情報に応じたバーチャルインストラクター動画像を大型モニタ装置21に表示し、また受信した楽曲情報に応じた音波をスピーカ22から出力する。これにより、ユーザU1は選択した楽曲をスピーカ22から流しながら、複数の運動パターンでバーチャルインストラクターを動作させた画像を大型モニタ装置21に表示して、楽曲の音楽に合わせてエアロビックスエクササイズを実行することができることとなる。
【0082】
ステップS13の処理を終了すると、MPU100は、キーボード11やマウス12の操作等によるユーザからの終了指令があったか否かを判定する(ステップS14)。この処理において、MPU100は、ユーザからの終了指令があったと判定すると(ステップS14:Yes)、このメイン処理を終了し、ユーザからの終了指令がないと判定すると(ステップS14:No)、処理をステップS10に移行する。
【0083】
次に、上記ステップS12における動画生成処理について、図17を参照して具体的に説明する。
【0084】
図17に示すように、動画生成処理を開始すると、MPU100は、ステップS12で取得した楽曲選択に応じた楽曲の演奏時間に応じた長さの運動プログラム用画像情報を作成するために、当該演奏時間の長さに対応するモーション数Nを演算し、このモーション数N分の運動パターンP(1),運動パターンP(2),・・、運動パターンP(N)を決定する(ステップS20)。例えば、楽曲の演奏時間の長さが、40カウント分であるとき、モーション数Nが5となり、運動パターンP(1),運動パターンP(2),・・、運動パターンP(N)は、図14や図15に示すように5つの基本運動パターンが組み合わされたものとなる。なお、以下において、運動パターンデータベース114に格納している基本運動パターンを基本運動パターンm(i)などとして表し、複合運動パターンを複合運動パターンm(i)m(i+1)などとして表すこととする。ここで、複合運動パターンm(i)m(i+1)は、当該複合運動パターンの前半の基本運動パターンが第1基本運動パターンm(i)であり、当該複合運動パターンの後半の基本運動パターンが基本運動パターンm(i+1)であることを意味する。
【0085】
次に、MPU100は、初期動画生成処理を実行して、一番最初の運動パターンを基本運動パターンにするのか複合運動パターンにするのかを決定する(ステップS21)。この処理は、図18におけるステップS30〜S32の処理であり、後で詳述する。
【0086】
次に、MPU100は、カウンタ値iを1に設定し(ステップS22)、運動パターンP(i)P(i+1)に対応する複合運動パターンm(i)m(i+1)が運動パターンデータベース114に存在しているか否かを判定する(ステップS23)。例えば、運動パターンP(i)が「マーチ」で運動パターンP(i+1)が「サイドステップ1(S1)」のとき、「マーチ+サイドステップ1(S1)」の複合運動パターンが運動パターンデータベース114に存在しているか否かを判定することになる。
【0087】
この処理において、複合運動パターンm(i)m(i+1)が存在すると判定すると(ステップS23:Yes)、MPU100は、第1モーション結合処理を実行する(ステップS24)。この第1モーション結合処理は、図19に示すステップS35の処理であり、後で詳述する。
【0088】
一方、複合運動パターンm(i)m(i+1)が存在しないと判定すると(ステップS23:No)、MPU100は、第2モーション結合処理を実行する(ステップS26)。この第2モーション結合処理は、図20に示すステップS40〜S45の処理であり、後で詳述する。
【0089】
第1モーション結合処理又は第2モーション結合処理を終了すると、MPU100は、カウンタ値iに1を加算した値がNとなるか否かを判定する(ステップS25)。
【0090】
この処理において、i+1がNであると判定すると(ステップS25:Yes)、MPU100は、メイン処理を終了する。一方、i+1がNではないと判定すると(ステップS25:No)、MPU100は、カウンタ値iに1を加算して(ステップS27)、処理をステップS23に戻し、ステップS24又はステップS26の処理を繰り返し行う。
【0091】
次に、上記ステップS21における初期動画生成処理について、図18を参照して具体的に説明する。
【0092】
図18に示すように、初期動画生成処理を開始すると、MPU100は、運動パターンP(1)P(2)に対応する複合運動パターンm(i)m(i+1)が存在するか否かを判定する(ステップS30)。
【0093】
この処理において、運動パターンP(1)P(2)に対応する複合運動パターンm(1)m(2)が存在すると判定すると(ステップS30:Yes)、MPU100は、複合運動パターンm(1)m(2)を初期動画データとして設定する(ステップS31)。
【0094】
一方、運動パターンP(1)P(2)に対応する複合運動パターンm(1)m(2)が存在しないと判定すると(ステップS30:No)、MPU100は、基本運動パターンm(1)を初期動画データとして決定する(ステップS32)。
【0095】
ステップS31の処理又はステップS32の処理が終了すると、MPU100は、この初期動画生成処理を終了する。
【0096】
次に、上記ステップS24における第1モーション結合処理について、図19を参照して具体的に説明する。
【0097】
図19に示すように、第1モーション結合処理を開始すると、MPU100は、すでに結合されている運動パターンm(i)(以下、運動パターンM(i)と表す。)と複合運動パターンm(i)m(i+1)を、第1結合方法で結合する。すなわち、運動パターンM(i)とm(i)のカウント(2)〜(4)の各フレーム情報を所定比率で補間(ブレンド)してブレンドモーションデータを作成し、このブレンドモーションデータを用いて運動パターンM(i)に複合運動パターンm(i)m(i+1)を結合して(ステップS35)、第1モーション結合処理を終了する。
【0098】
次に、上記ステップS26における第2モーション結合処理について、図20を参照して具体的に説明する。
【0099】
図20に示すように、第2モーション結合処理を開始すると、MPU100は、運動パターンM(i)が複合運動パターンの一部となっているか否かを判定する(ステップS40)。すなわち、運動パターンM(i)が、複合運動パターンm(i−1)m(i)により運動パターンM(i−1)M(i)として形成された複合運動パターンの一部であるか否かを判定する。
【0100】
この処理において、運動パターンM(i)が複合運動パターンの一部であると判定すると(ステップS40:Yes)、MPU100は、基本運動パターンm(i)と基本運動パターンm(i+1)とを運動パターンデータベース114から取得する(ステップS41)。
【0101】
次に、MPU100は、基本運動パターンm(i)と基本運動パターンm(i+1)とを第2結合方法で結合する(ステップS42)。すなわち、基本運動パターンm(i)のカウント(7.5)〜(8)の各フレーム情報を基本運動パターンm(i+1)の初期(先頭)のフレーム情報でそれぞれ比率を変化させつつ補間(ブレンド)して、基本運動パターンm(i)と基本運動パターンm(i+1)とを結合する。
【0102】
次に、MPU100は、運動パターンM(i)とステップS42で結合した運動パターンm(i)m(i+1)とを第2結合方法で結合する。すなわち、運動パターンM(i)とm(i)のそれぞれのカウント(2)〜(4)の各フレーム情報を所定比率で補間(ブレンド)してブレンドモーションデータを作成し、このブレンドモーションデータを用いて運動パターンM(i)と運動パターンm(i)m(i+1)とを結合する(ステップS43)。
【0103】
ステップS40において、運動パターンM(i)が複合運動パターンの一部ではないと判定すると(ステップS40:No)、MPU100は、m(i+1)を運動パターンデータベース114から取得する(ステップS44)。
【0104】
次に、MPU100は、運動パターンM(i)と基本運動パターンm(i+1)とを第2結合方法で結合する。すなわち、運動パターンM(i)のカウント(7.5)〜(8)のフレーム情報を基本運動パターンm(i+1)の初期(先頭)のフレーム情報でそれぞれブレンド比率を変化させつつ補間(ブレンド)して、運動パターンM(i)と基本運動パターンm(i+1)とを結合する(ステップS45)。
【0105】
ステップS43の処理又はステップS45の処理が終了すると、MPU100は、第2モーション結合を終了する。
【0106】
以上のように、本実施形態におけるサーバ装置1は、複数の基本運動パターンのフレーム情報と、2種類以上の基本運動パターンのフレーム情報を有する複合運動パターンのフレーム情報とをそれぞれ運動パターンデータベース114に記憶しており、MPU100の処理により、基本運動パターンのフレーム情報と複合運動パターンのフレーム情報との結合、及び複合運動パターン同士のフレーム情報の結合を行うようにし、このように結合したフレーム情報に基づいて、キャラクタの動的な画像を生成するようにしている。しかも、これらの運動パターンの結合を行うときに、互いに結合する運動パターンにそれぞれ含まれる同一種類の基本運動パターンのフレーム情報同士を補間するようにしている。
【0107】
複合運動パターンは、上述したように、2つの基本運動パターンのフレーム情報を結合させたものではなく、2つの運動パターンを現実のインストラクターが行う動作をキャプチャーする等により生成したものある。そして、同一種類の基本運動パターンのフレーム情報同士を補間(ブレンド)することによって、バーチャルインストラクターの動作をより自然な動作とすることができる。
【0108】
次に、上述したスマート複合運動パターンを用いて各運動パターンを結合する処理について、図21〜図23を参照して説明する。図21は図16に示す動画生成処理のスマート複合運動パターンを用いたときのフローチャート、図22は図21に示す第1モーション結合処理のフローチャート、図23は図21に示す第2モーション結合処理のフローチャートである。なお、サーバ装置1のメイン処理については、図16と同様の処理となるため、ここでは、動画生成処理について説明する。
【0109】
図21に示すように、スマート複合運動パターンを用いた動画生成処理を開始すると、MPU100は、上記ステップS20の処理と同様に、ステップS12で取得した楽曲選択に応じた楽曲の演奏時間に応じた長さとなる運動パターンP(2),・・、運動パターンP(N)を決定する(ステップS50)。次に、MPU100は、運動パターンP(1)に対応する基本モーションm(1)(例えば、運動パターンP(1)が「マーチ」の時には、「マーチ(M)」の基本運動パターン)を初期動画M(1)として(ステップS51)、カウンタ値iを1に設定する(ステップS52)。
【0110】
次に、MPU100は、ステップS23と同様に、運動パターンP(i)P(i+1)に対応するスマート複合運動パターンm(i)m(i+1)が運動パターンデータベース114に存在しているか否かを判定する(ステップS53)。この処理において、スマート複合運動パターンm(i)m(i+1)が存在すると判定すると(ステップS53:Yes)、MPU100は、第1モーション結合処理を実行する(ステップS54)。この第1モーション結合処理は、図22に示すステップS60〜S62の処理であり、後で詳述する。
【0111】
この第1モーション結合処理を終了すると、MPU100は、カウンタ値iに1を加算した値がNとなるか否かを判定する(ステップS55)。すなわち、次に結合すべき運動パターンが最後の運動パターンP(N)であるか否かを判定する。この処理において、i+1がNであると判定すると(ステップS55:Yes)、MPU100は、運動パターンP(N)の基本運動パターンm(N)を作成中の運動プログラム用画像情報に結合して運動プログラム用画像情報を完成させて(ステップS56)、本メイン処理を終了する。一方、i+1がNではないと判定すると(ステップS55:No)、MPU100は、処理をステップS58に移行する。
【0112】
ステップS53において、スマート複合運動パターンm(i)m(i+1)が存在しないと判定すると(ステップS53:No)、MPU100は、第2モーション結合処理を実行する(ステップS57)。この第2モーション結合処理は、図23に示すステップS70の処理であり、後で詳述する。この第2モーション結合処理を終了すると、MPU100は、カウンタ値iに1を加算した値がNとなるか否かを判定する(ステップS58)。この処理において、i+1がNであると判定すると(ステップS58:Yes)、MPU100は、本メイン処理を終了する。一方、i+1がNではないと判定すると(ステップS58:No)、MPU100は、カウンタ値iに1を加算して(ステップS59)、処理をステップS53に戻し、ステップS54又はステップS57の処理を繰り返し行う。
【0113】
このように、サーバ装置1のMPU100は、運動パターンP(1)〜運動パターンP(N)を結合するときに、最初に運動パターンP(1)の基本運動パターンm(1)を選択する。また、MPU100は、運動パターンm(N−1)の一部のフレーム情報と運動パターンm(N)の一部のフレーム情報を有するスマート複合運動パターンm(N−1)m(N)があるときには、そのスマート複合運動パターンを最後に結合する運動パターンとして選択し、スマート複合運動パターンm(N−1)m(N)がないときには、基本運動パターンm(N)を最後に結合する運動パターンとして選択する。
【0114】
次に、上記ステップS54における第1モーション結合処理について、図22を参照して具体的に説明する。
【0115】
図22に示すように、第1モーション結合処理を開始すると、MPU100は、運動パターンM(i)がスマート複合運動パターンの一部となっているか否かを判定する(ステップS60)。すなわち、i=2以上のときに、すでに結合されている運動パターンM(i)が、スマート複合運動パターンm(i−1)m(i)により運動パターンM(i−1)M(i)として形成された運動パターンの一部であるか否かを判定する。
【0116】
この処理において、運動パターンM(i)がスマート複合運動パターンの一部であると判定すると(ステップS60:Yes)、MPU100は、運動パターンM(i−1)M(i)とスマート複合運動パターンm(i)m(i+1)を、第1結合方法で結合する。すなわち、運動パターンM(i)とm(i)のカウント(2)〜(4)のフレームを補間(ブレンド)してブレンドモーションデータを作成し、このブレンドモーションデータを用いて、運動パターンM(i−1)M(i)にスマート複合運動パターンm(i)m(i+1)を結合する(ステップS61)。
【0117】
一方、運動パターンM(i)がスマート複合運動パターンの一部ではないと判定すると(ステップS60:No)、MPU100は、運動パターンM(i)とスマート複合運動パターンm(i)m(i+1)を、第2結合方法で結合する。すなわち、運動パターンM(i)のカウント(7.5)〜(8)のフレームと基本運動パターンm(i)の先頭(初期)フレーム(カウント(0)のフレーム)で補間(ブレンド)してブレンドモーションデータを作成し、このブレンドモーションデータを用いて、運動パターンM(i)にスマート複合運動パターンm(i)m(i+1)を結合する(ステップS62)。
【0118】
ステップS61の処理又はステップS62の処理が終了すると、MPU100は、第1モーション結合処理を終了する。
【0119】
このようにサーバ装置1は、前回結合に用いた運動パターンがスマート複合運動パターンのときには、スマート複合運動パターンm(i)m(i+1)を第1結合方法で結合し、基本運動パターンのときには、スマート複合運動パターンm(i)m(i+1)を第2結合方法で結合するようにしている。
【0120】
次に、上記ステップS57における第2モーション結合処理について、図23を参照して具体的に説明する。
【0121】
図23に示すように、第2モーション結合処理を開始すると、MPU100は、運動パターンM(i)と基本運動パターンm(i)とを、第2結合方法で結合する。すなわち、運動パターンM(i)のカウント(7.5)〜(8)のフレーム情報と基本運動パターンm(i)の先頭(初期)フレーム情報(カウント(0)のフレーム情報)で補間(ブレンド)してブレンドモーションデータを作成し、このブレンドモーションデータを用いて、運動パターンM(i)にスマート複合運動パターンm(i)m(i+1)を結合して(ステップS70)、第2モーション結合を終了する。
【0122】
このように 通常の複合運動パターンよりもデータ量が少ないスマート複合運動パターンを用いて運動プログラム用画像情報を作成するようにしているので、複合運動パターンを格納するのに必要な運動パターンデータベース114の記憶領域を小さくすることができる。
【0123】
以上、本発明の実施形態をいくつかの図面に基づいて詳細に説明したが、これらは例示であり、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【0124】
例えば、複合運動パターンを第1基本運動パターンと第2基本運動パターンとを連続させて2種類の基本運動パターンを含む運動パターンとして説明したが、3種類以上の基本運動パターンを連続させた運動パターンであっても良い。
【図面の簡単な説明】
【0125】
【図1】本発明の一実施形態に係る運動支援システムの概略構成図である。
【図2】サーバ装置の主要な内部構成等を表したブロック図である。
【図3】サーバ装置の運動パターンデータベースの格納情報の内容を示す図表である。
【図4】モーションデータのイメージを示す概念図である。
【図5】マーカに対応した点及びボーンの関係を示した図である。
【図6】モーションデータを示す図表である。
【図7】基本運動パターンのモーションデータに基づいて作成した各カウント位置のバーチャルインストラクター画像の例を示す図である。
【図8】複合運動パターンのモーションデータに基づいて作成した各カウント位置のバーチャルインストラクター画像の例を示す図である。
【図9】複数の運動パターンの結合処理の説明図である。
【図10】複数の運動パターンの結合処理の説明図である。
【図11】複数の運動パターンの結合処理の説明図である。
【図12】複数の運動パターンの結合処理の説明図である。
【図13】複数の運動パターンの結合処理の説明図である。
【図14】複数の運動パターンの結合処理の説明図である。
【図15】複数の運動パターンの結合処理の説明図である。
【図16】サーバ装置のメイン処理のフローチャートである。
【図17】図16に示す動画生成処理のフローチャートである。
【図18】図17に示す初期動画生成処理のフローチャートである。
【図19】図17に示す第1モーション結合処理のフローチャートである。
【図20】図17に示す第2モーション結合処理のフローチャートである。
【図21】図16に示す別の動画生成処理のフローチャートである。
【図22】図21に示す第1モーション結合処理のフローチャートである。
【図23】図22に示す第2モーション結合処理のフローチャートである。
【図24】従来の画像生成装置における運動パターンの結合の説明図である。
【図25】従来の画像生成装置における運動パターンの結合の説明図である。
【図26】従来の画像生成装置における運動パターンの結合の説明図である。
【符号の説明】
【0126】
1 サーバ装置
2 端末ユニット
4 キャラクタ画像
5 カメラ
10 ディスプレイ
11 キーボード
12 マウス
20 端末装置
21 大型モニタ装置
22 スピーカ
23 入力操作器
100 MPU
101 RAM
102 ROM
103 通信インターフェイス
104 ハードディスク装置
105 内部バス
110 システムプログラム
111 サーバプログラム
112 メニューデータベース
113 ユーザデータベース
114 運動パターンデータベース
115 楽曲データベース

【特許請求の範囲】
【請求項1】
複数種類の基本運動パターンを組み合わせたフレーム情報に基づいて、複数のパーツが関節で連結されたキャラクタの複数のポイントの座標位置を変化させ、前記キャラクタの動的な画像を生成する画像生成装置において、
各前記基本運動パターンのフレーム情報と、2種類以上の前記基本運動パターンの全部又は各一部のフレーム情報を有する複合運動パターンのフレーム情報とをそれぞれ記憶する運動パターン記憶手段と、
前記基本運動パターンのフレーム情報と前記複合運動パターンのフレーム情報との結合、及び前記複合運動パターン同士のフレーム情報の結合を行う運動パターン結合手段と、
前記運動パターン結合手段によって結合したフレーム情報に基づいて、前記キャラクタの動的な画像を生成する画像生成手段と、を備え、
前記運動パターン結合手段は、前記基本運動パターンのフレーム情報と前記複合運動パターンのフレーム情報との結合、及び前記複合運動パターン同士のフレーム情報の結合を行うときに、互いに結合する運動パターンにそれぞれ含まれる同一種類の基本運動パターンのフレーム情報同士を補間したフレーム情報を用いる
ことを特徴とする画像生成装置。
【請求項2】
前記運動パターン結合手段は、前記基本運動パターン又は前記複合運動パターンを結合先として前記基本運動パターンを結合するとき、当該結合しようとする基本運動パターンの一部のフレーム情報を用いて前記結合先の基本運動パターン又は複合運動パターンによるキャラクタ動作の動作終了前の所定期間におけるフレーム情報を補間して、前記基本運動パターンを結合する
ことを特徴とする請求項1に記載の画像生成装置。
【請求項3】
前記複合運動パターンのフレーム情報は、第1基本運動パターンの後半部分のフレーム情報と第2基本運動パターンの前半部分のフレーム情報とに加え、補間用フレーム情報として第1基本運動パターンの前半部分の一部のフレーム情報が含まれており、
前記運動パターン結合手段は、前記複合運動パターンを結合しようとするときに、前記補間用フレーム情報を用いることを特徴とする請求項1又は請求項2に記載の画像生成装置。
【請求項4】
コンピュータを、請求項1〜3のいずれか1項に記載の前記画像生成装置の各手段として機能させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate


【公開番号】特開2009−128923(P2009−128923A)
【公開日】平成21年6月11日(2009.6.11)
【国際特許分類】
【出願番号】特願2007−299591(P2007−299591)
【出願日】平成19年11月19日(2007.11.19)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【出願人】(396004833)株式会社エクシング (394)
【Fターム(参考)】