説明

CGキャラクタ生成装置及びCGキャラクタ生成プログラム

【課題】CGキャラクタを容易且つ効率的に生成する。
【解決手段】3次元仮想空間上で所定の動作を行うCGキャラクタを生成するCGキャラクタ生成装置において、前記CGキャラクタに対するポリゴン情報を所定のパーツ単位で分割し、分割したパーツ情報と関節情報とを対応付けるポリゴン設定手段と、前記ポリゴン設定手段により得られる複数のパーツ情報に対する関節情報を用いてパーツ間の接続関係を設定する関節接続関係設定手段と、前記ポリゴン設定手段により得られるパーツ情報と、前記関節接続関係設定手段により得られる接続関係とを用いて、前記パーツ情報に対する関節の回転量を制御して前記CGキャラクタの動作を生成するCGキャラクタ動作生成手段とを有することにより、上記課題を解決する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、CGキャラクタ生成装置及びCGキャラクタ生成プログラムに係り、特に、3次元仮想空間上のCGキャラクタの動作を容易且つ効率的に生成するためのCGキャラクタ生成装置及びCGキャラクタ生成プログラムに関する。
【背景技術】
【0002】
従来、3次元仮想空間上のCG(Computer Graphics)キャラクタ等を使ったアニメーション等の制作は、高い専門性と長い制作時間を必要とする。そこで、従来では、簡単なスクリプトを記述するだけで、3次元仮想空間上のカメラワークやCGキャラクタの動きを指定してアニメーション映像を出力する手法が提案され、実用化されている(例えば、非特許文献1参照)。
【0003】
非特許文献1に示すような手法によれば、テレビ番組のような映像コンテンツ制作全般に使うことのできるスクリプトで、CGキャラクタのしゃべりや動作の他、照明、カメラ、セット、小道具、スーパーインポーズ、ムービー、BGM(Back Ground Music)等、テレビ番組のスタジオ制作に必要な機能を記述することができる。
【0004】
また、CGキャラクタの動作の制作については、従来では専門家に委ねられている。例えば、CGキャラクタがじっと立っている場合には、何も動きがないと非常に不自然である。その場合、通常では、腕や足の部分を回転させると動きを表現できるが、機械的に動かすと不自然となる。したがって、実際の人のように動かすには、人の動きをデータ化して利用する必要がある。
【0005】
従来のCGキャラクタは、形状データとテクスチャデータ、骨(以下、適宜「ボーン」、「骨格」等という。)データ等から構成され、骨を動かすとそれに応じて形状が変化する仕組みが存在する。形状データは、複数の頂点で囲まれた面の情報と、そこにマッピングされるテクスチャ情報とを有している。また、形状の変形は、頂点の移動で実現することができる。
【0006】
また、CGキャラクタを実際に動作させるアニメーションを生成する場合には、まず手足の動きを生成し、それに合わせて形状を変化させる必要がある。自然で滑らかな動きを実現するには、骨の動きと多くの頂点データが骨の動きに応じて動く複雑な処理が必要となる。
【0007】
以上のことから、多くの骨格が複雑に動くCGキャラクタアニメーションの制作では、CGキャラクタの制作や自然な動作の入力に熟練した技術や高価なソフトウェアを必要とする(例えば、非特許文献2,3参照)。
【0008】
ここで、上述した従来のCGキャラクタの構造について、図を用いて説明する。図1は、従来のCGキャラクタの構造例を示す図である。なお、図1(a)は、CGキャラクタの表面データ例を示し、図1(b)は、図1(a)のCGキャラクタに対応する頂点とCGキャラクタの骨との関係を示し、図1(c)は、図1(b)からボーン(骨格)部分のみを表示させた例を示し、図1(d)は、形状を変形させた例を示している。
【0009】
CGキャラクタ10は、図1(b)や図1(d)に示すようにポリゴン11の集合で表される。なお、図1に示すポリゴン11は、一例として四角形の集合として表されている。また、各四角形は、4つの頂点から構成され、それらの頂点は、図1(b)のように表すことができる。
【0010】
つまり、図1(b)に示すように、CGキャラクタ10の体の中心にボーン(骨格)12があり、そのボーン12が回転し、それに応じて頂点が移動することにより、アニメーションが生成される。図1(d)の例では、CGキャラクタが左腕を挙げた例を示している。
【0011】
ここで、図1(d)に示す動作は、例えばモーションキャプチャと呼ばれる技術を利用することができる。モーションキャプチャでは、実際の人の動きを複数のカメラを使って取得し、その取得したデータや人体の移動の軌跡から各ボーンの回転量を取得する。つまり、従来では、CGキャラクタ10を自然に動作させるために、CGキャラクタ10のボーン12の動きを基準とし、そのボーン12の動きに合わせて図1(a)に示す皮膚表面の動きを制御することで、滑らかで自然な動きを実現させている。
【0012】
なお、図1(a)に示すような表面データの貼り付けは、専用のスキニング手法やその編集ツール等を用いて、CGキャラクタの動作の生成において、例えばCGキャラクタ10のボーン12等に対して、皮膚や衣服との関係付け(スキニング)等が行われる(例えば、特許文献1,2参照)。
【先行技術文献】
【特許文献】
【0013】
【特許文献1】特開2005−71182号公報
【特許文献2】特開2007−148856号公報
【非特許文献】
【0014】
【非特許文献1】TVML:http://www.nhk.or.jp/strl/tvml/japanese/player2/index.html
【非特許文献2】田中健二/有限会社B3Design/芦野健太郎/南奥敬文/工藤芳邦/鈴木幹彦/鈴木靖生/阿部知弘,「Autodesk Maya ビジュアルリファレンス」,株式会社ワークスコーポレーション,2006年3月
【非特許文献3】Maya:http://www.autodesk.co.jp/adsk/servlet/pc/index?id=14515239&siteID=1169823
【発明の概要】
【発明が解決しようとする課題】
【0015】
上述したように、従来におけるCGキャラクタの動作の生成には、例えばボーンに対応した頂点に重み付けをしたり、ボーンの回転に応じた変形を複雑に計算する等といった処理が必要となる。しかしながら、このような処理には、多くの調整が必要である。したがって、CGキャラクタの生成には、専用ソフトウェアが必要であったり、制作技術の熟練、長時間の作業等が必要となる。
【0016】
また、既存の高機能なCGソフトは、作業効率を向上させるものではあるが、それでもスキニング作業等にはCGソフトに関する専門知識が必要であり、CGソフトも高価である。そのため、一般ユーザや非専門のユーザでは、CGキャラクタの動作等を生成することができなかった。
【0017】
また、CGキャラクタの一部を修正したり、変更する際にも再調整等が必要となるため、同様に、熟練と長時間の作業が必要となる。具体的には、従来では、CGキャラクタの形状情報の変更に伴い、上述したスキニング、スキニング解除、再スキニング等が繰り返される。この作業は、CGキャラクタ全体を基準に行われるため、変更の必要がないパーツについてもスキニング情報を解除して再スキニングする必要があるため、作業が膨大となる。そのため、一般ユーザや非専門家では、容易にCGキャラクタやアニメーションを生成することができなかった。
【0018】
本発明は、上述した問題点に鑑みなされたものであり、3次元仮想空間上のCGキャラクタの動作等を容易且つ効率的に生成するためのCGキャラクタ生成装置及びCGキャラクタ生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【0019】
上記課題を解決するために、本件発明は、以下の特徴を有する課題を解決するための手段を採用している。
【0020】
本発明は、3次元仮想空間上で所定の動作を行うCGキャラクタを生成するCGキャラクタ生成装置において、前記CGキャラクタに対するポリゴン情報を所定のパーツ単位で分割し、分割したパーツ情報と関節情報とを対応付けるポリゴン設定手段と、前記ポリゴン設定手段により得られる複数のパーツ情報に対する関節情報を用いてパーツ間の接続関係を設定する関節接続関係設定手段と、前記ポリゴン設定手段により得られるパーツ情報と、前記関節接続関係設定手段により得られる接続関係とを用いて、前記パーツ情報に対する関節の回転量を制御して前記CGキャラクタの動作を生成するCGキャラクタ動作生成手段とを有することを特徴とする。
【0021】
また、本発明は、コンピュータを、上述したCGキャラクタ生成装置が有する各手段として機能させるためのCGキャラクタ生成プログラムである。
【発明の効果】
【0022】
本発明によれば、3次元仮想空間上のCGキャラクタの動作を容易且つ効率的に生成することができる。
【図面の簡単な説明】
【0023】
【図1】従来のCGキャラクタの構造例を示す図である。
【図2】CGキャラクタ生成装置の機能構成の一例を示す図である。
【図3】本実施形態におけるCGキャラクタ動作生成の一例を示す図である。
【図4】本実施形態におけるテキスト編集可能なデータ例を示す図である。
【図5】本実施形態におけるCGキャラクタ動作結果の一例を示す図である。
【図6】画面生成手段により生成されるCGキャラクタ編集画面の一例を示す図である。
【図7】CGキャラクタを用いたアニメーション表示画面の一例を示す図である。
【図8】例文表示の記述例を示す図である。
【図9】BVHデータの一例を示す図である。
【図10】TVMLスクリプトの一例を示す図である。
【図11】CGキャラクタ生成処理の処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0024】
<本発明について>
本発明は、例えばCGで3次元仮想空間上に表示させる人や動物、植物、昆虫、ロボット等の通常考えられる動作可能な物体(オブジェクト)であるCGキャラクタの動作の生成(編集も含む)に関する。具体的には、CGキャラクタの動作アニメーションの実現に関し、各関節用及び人体等の形状用にポリゴン(多面体)を用意し、例えばポリゴン毎に設定した識別情報(例えば、ポリゴン名)によって、例えば関節用ポリゴンや人体等の形状用ポリゴンの区別、関節と付属ポリゴンとの関係、表示/非表示の区別等を行う。
【0025】
また、本発明では、上述した内容とは別に、各関節の接続関係を記述したデータを用意し、CGキャラクタの制作者等であるユーザがCGキャラクタに所望する動作をさせるために各関節に与えられた回転量により、付属する形状用ポリゴン(例えば、人体形状用ポリゴン等)を回転させることにより、アニメーションの映像生成等を簡単且つ容易に実現する。
【0026】
以下に、上述したような特徴を有する本発明におけるCGキャラクタ生成装置及びCGキャラクタ生成プログラムを好適に実施した形態について、図面を用いて詳細に説明する。
【0027】
なお、本実施形態において生成されたCGキャラクタの一例として人(人体)を用いることとするが、本発明においてはこれに限定されるものではない。また、そのCGキャラクタが適用されるコンテンツの一例としては、例えばTVML(TV program Making Language)スクリプトを読み込み、リアルタイムCGと音声合成を使用して制作されるCG番組等があるが、本発明においてはこれに限定されるものではない。
【0028】
ここで、TVMLとは、テレビ番組を制作するための記述言語であり、テレビ番組の映像や音声等を、素材データと台本(演出内容等)とに分けて記述することができ、制作側で台本を記述することで、パソコン等で動作するソフトウェア等がこれをスクリプトとして読み取り、台本に記述された素材データを取得して即座にテレビ番組として再生・視聴することができる。なお、スクリプトの中には、番組に出演させるCGキャラクタ情報等を記述することができる。
【0029】
<CGキャラクタ生成装置:機能構成例>
本実施形態におけるCGキャラクタ生成装置の機能構成例について図を用いて説明する。図2は、CGキャラクタ生成装置の機能構成の一例を示す図である。図2に示すCGキャラクタ生成装置20は、入力手段21と、出力手段22と、蓄積手段23と、CGキャラクタ読込手段24と、ポリゴン設定手段25と、関節接続関係設定手段26と、画面生成手段27と、CGキャラクタ動作生成手段28と、テキスト編集手段29と、再生手段30と、送受信手段31と、制御手段32とを有するよう構成されている。
【0030】
入力手段21は、ユーザ等からの指示により、本実施形態において動作可能なCGキャラクタを生成するために、CGキャラクタ読み込み指示や、ポリゴン設定指示、関節接続関係設定指示、画面生成指示、CGキャラクタ動作生成指示、テキスト編集指示、再生指示、送受信指示等のCGキャラクタ生成における各入力を受け付ける。なお、入力手段21は、例えばキーボードや、マウス等のポインティングデバイス、マイク等の音声入力デバイス等からなる。
【0031】
出力手段22は、入力手段21から入力された指示内容と、これらの各指示内容に基づいて生成されるCGキャラクタと、そのCGキャラクタに対する動作を表示させる機能を有する。また、出力手段22は、上述したCGキャラクタ及び動作に関するテキストデータをTVMLスクリプトに記述し、そのTVMLスクリプトを、例えばTVMLプレイヤー等で構成される再生手段30にて再生させる機能を有する。これにより、本実施形態では、例えば番組等の映像コンテンツ、CGキャラクタ情報、テキスト情報等に基づいて、本実施形態におけるCGキャラクタやCGキャラクタの動作を生成するための画面等を表示する。
【0032】
また、出力手段22は、必要に応じてCGキャラクタの動作に対応した音声を出力する。このため、出力手段22は、ディスプレイ等による画面表示デバイスやスピーカ等による音声出力デバイス等からなる。したがって、出力手段22は、再生手段30により再生されたスクリプト(例えば、TVMLスクリプト等)に対応する映像又は音声を上述の画面表示デバイスや音声出力デバイスを用いて出力する。
【0033】
蓄積手段23は、ポリゴン設定データベース(以下、「データベース」を単に「DB」と略称する)や、関節接続関係設定DB、CGキャラクタDB等を備えている。ポリゴン設定DBは、CGキャラクタ毎に形状を特定するポリゴンの設定データ等を含む。また、CGキャラクタDBは、人体や動物等の複数のCGキャラクタに関するポリゴン情報、関節情報、及び皮膚や衣服等(テクスチャ)の形状情報等がCGキャラクタ毎に設定された情報等を含む。
【0034】
ここで、ポリゴン設定DBにおける部位(パーツ)情報には、そのパーツの表面の形状情報、材質情報、各パーツに対応する画像情報等が含まれる。なお、ポリゴンの形状は、例えば四角形でもよく、三角形や五角形以上でもよい。
【0035】
また、ポリゴン設定DBは、各パーツに含まれる構成や構造等に関する詳細情報や複数のパーツの組を纏めたパーツグループ情報等も蓄積し、必要に応じて読み込みと、書き込みを行うことができる。
【0036】
また、蓄積手段23は、上述した情報の他にも本実施形態を実施することで得られるCGキャラクタ情報や、生成された画面、再生した番組、番組を再生するためのTVMLスクリプトや、台本データ、素材データ、番組制作エンジン等のTVML用の番組を制作するための各種情報等を蓄積する。なお、蓄積手段23に蓄積されている各種データは、必要に応じて読み出しや書き込みが行われる。
【0037】
また、蓄積手段23は、例えば送受信手段31を介して、上述した各種データを通信ネットワーク等に接続された外部装置等から取得することもできる。したがって、例えば上述したポリゴン設定DBや関節接続関係設定DB、CGキャラクタDBは、必要に応じて通信ネットワーク等に接続された外部装置等から取得することができ、これにより、ユーザ自らがメンテナンス等を行う必要がなく、外部装置から更新済みの最新のポリゴン設定DB、関節接続関係設定DB、CGキャラクタDBを取得することができる。
【0038】
CGキャラクタ読込手段24は、蓄積手段23等に蓄積されているCGキャラクタDB等から所望するCGキャラクタの生成(動作の生成も含む)に必要となるCGキャラクタ情報を読み込む。なお、CGキャラクタ読込手段24は、蓄積手段23等に蓄積されているポリゴン設定DBから所望するCGキャラクタの動作の生成に必要となる上述した各種パーツ情報群や各詳細情報群等に対応するポリゴン設定情報等を読み込む。
【0039】
ポリゴン設定手段25は、CGキャラクタの動作の設定を行うために、CGキャラクタに対応するポリゴンの設定を行う。具体的には、ポリゴン設定手段25は、CGキャラクタを、所定のパーツ(ポリゴン(ポリゴン群を含む))毎に分割する。なお、分割は、例えば複数の所定のパーツ単位で行ってもよく、複数のパーツで纏めて分割してもよい。
【0040】
また、ポリゴン設定手段25は、ポリゴン設定DBやCGキャラクタDB等から得られる各関節用や人体形状用に用意されたポリゴン(多面体)に識別情報(例えば、ポリゴン名等)を設定し、設定したポリゴン名によって、例えば関節用/人体形状用のポリゴンを区別し、関節用ポリゴンと関節用ポリゴンに付属する人体形状用ポリゴンとの関係、及び/又は各パーツ(ポリゴン)の表示/非表示の区別等の設定を行う。また、各ポリゴンには、位置情報等も含む。また、ポリゴン設定手段25において設定された各種情報は、例えばポリゴン設定DB等として蓄積手段23に蓄積することができる。
【0041】
関節接続関係設定手段26は、各関節の接続関係を記述する。また、関節接続関係設定手段26は、動作の際に回転の中心となる関節位置に対して所定の大きさからなる小さなポリゴンを配置する。なお、関節位置は、ユーザ(CGキャラクタの制作者等)が予め設定してもよく、関節用ポリゴンの頂点データ等から計算して求めることもできる。また、人体形状用ポリゴンと関節用ポリゴンとは、上述したポリゴン設定手段25で設定された各ポリゴン名(識別情報)で区別する。
【0042】
ここで、本実施形態におけるポリゴンの描画(表示)の際には、人体形状用ポリゴンのみ描画し、関節用ポリゴンは描画しないように設定することもできる。
【0043】
また、関節接続関係設定手段26は、各関節の親子関係を示すデータを設定する。例えば、肘の関節は、肩の関節が回転するとその影響を受けるため、肘の関節は肩の関節の子供とする。更に、関節接続関係設定手段26は、各関節が直接影響する人体形状ポリゴンを指定する。例えば、肘から腕の部分の人体形状ポリゴンは、肘関節の回転の影響を直接受ける。この場合には、例えば関節用/人体形状用ポリゴンの関係についてもポリゴン名(識別情報)等で区別できるようにすることが好ましい。これにより、編集対象のポリゴンが関節用であるか、又は人体形状用であるかを容易に把握することができる。
【0044】
また、関節接続関係設定手段26は、CGキャラクタ毎の動作内容に基づいて、関節の回転を表すモーションデータを用いて、対応する人体形状用ポリゴンを回転させるための設定を行う。なお、関節接続関係設定手段26で設定された回転設定情報等の各種情報は、例えば関節接続関係設定DB等として蓄積手段23に蓄積することができる。
【0045】
画面生成手段27は、本実施形態における人体等のCGキャラクタの生成において、上述したCGキャラクタ読込手段24、ポリゴン設定手段25、関節接続関係設定手段26等により読み込まれた情報のうち、ユーザが所望するCGキャラクタ情報及びパーツ情報等を選択させるための画面や、生成されたCGキャラクタを動作可能に表示するための画面を生成する。
【0046】
なお、画面生成手段27は、生成された画面をディスプレイ等の出力手段22により出力すると共に、ユーザ等から入力手段21により入力された情報に基づいて画面の表示内容を逐次対応させるための画面を生成する。
【0047】
CGキャラクタ動作生成手段28は、画面生成手段27により生成され、出力手段22により表示されている情報に基づいて、ユーザ等が入力手段21により入力された情報からCGキャラクタの動作を生成する。その場合には、ユーザ等が入力手段21により選択された移動対象のパーツを関節情報に基づいて移動させ、CGキャラクタの動作を生成する。つまり、CGキャラクタ動作生成手段28は、例えば関節の回転を表すモーションデータに応じて、対応する人体形状用ポリゴンを回転させることで、CGキャラクタアニメーションを制作することができる。本実施形態において、ポリゴン同士は、直接的に連結するのではなく、関節ポリゴンによって連結され一体となって動作が行われる。なお、CGキャラクタ動作生成手段28におけるCGキャラクタ生成の具体例については後述する。
【0048】
また、CGキャラクタ動作生成手段28は、CGキャラクタに他の衣服等を着用させる等の編集を行ってもよい。また、CGキャラクタ動作生成手段28により生成されたCGキャラクタは、画面生成手段27により生成された画面に表示され、ユーザに確認させることができる。また、CGキャラクタ動作生成手段28は、生成されたCGキャラクタ情報を、例えばCGキャラクタDBとして蓄積手段23に蓄積することができる。
【0049】
テキスト編集手段29は、本実施形態におけるポリゴン名や関節用ポリゴンの親子関係をテキスト情報ファイルとし、各ポリゴン情報(部品)はテキストデータの塊(ブロック)として表現することで、テキストエディタ等のテキスト編集ツール等を用いて関節ポリゴンや親子関係等の編集を行うことができる。
【0050】
具体的には、本実施形態におけるCGキャラクタの生成、編集等において、テキスト編集手段29は、パーツ情報毎に生成されたテキスト情報の各ブロックをファイル内で結合したり、削除したり、挿入したりすることにより、パーツ情報に含まれる形状情報、材質情報のうち、何れかの情報をCGキャラクタの所定の部位で分割されたパーツ単位のポリゴンをテキスト情報により編集する。
【0051】
なお、テキスト編集手段29は、画面生成手段27により生成されたアイコン等により表示されるパーツ情報を選択することで、その選択したパーツ情報に対応するテキスト情報を別画面等に表示し、表示されたテキスト情報に対してユーザが入力手段21等により入力された情報を反映させることで、容易にユーザにパーツ情報の編集等を行わせることができる。
【0052】
なお、テキスト編集手段29は、予め蓄積手段23に蓄積されているスクリプト(例えば、TVMLスクリプト等)のテキスト情報を編集することもできる。これにより、例えば、既存のTVMLスクリプトに記述されている番組に登場するCGキャラクタに対して新たに生成した動作を行わせることができる。
【0053】
再生手段30は、ブラウザ機能を有し、CGキャラクタ動作生成手段28又はテキスト編集手段29により生成されたCGキャラクタ情報のテキストファイルを読み込み、CGキャラクタ動作を再生してディスプレイ等の出力手段22に出力させる。
【0054】
送受信手段31は、通信ネットワークを介してポリゴン設定DB、関節接続関係設定DB、CGキャラクタDB、CGキャラクタ情報、画面情報、CGキャラクタデータ、ポリゴンデータ、パーツデータ、テキスト編集情報、生成されたCGキャラクタやそのCGキャラクタを用いた番組、素材データ、台本データ、番組制作エンジン等の各種データを、送信することができ、また外部装置から受信することもできる通信インターフェイスである。
【0055】
制御手段32は、本実施形態におけるCGキャラクタ生成装置20の各機能構成全体の制御を行う。具体的には、制御手段32は、ユーザ等から入力手段21により入力された各種情報に基づいて、例えばCGキャラクタ情報を読み込んだり、ポリゴン設定情報を読み込んだり、関節接続関係情報を読み込んだり、画面を生成したり、CGキャラクタ動作を生成したり、テキスト情報を編集したり、TVMLスクリプトを再生させたり、送受信手段31を介して他の端末に送信させる等の各種制御を行う。
【0056】
上述したように、本実施形態によれば、3次元仮想空間上のCGキャラクタの動作を容易且つ効率的に生成することができる。また、本実施形態によれば、例えば、頂点データ、面データ、及び面データに貼り付けるテクスチャ画像データ等から構成されるCGキャラクタを使って動作を実現するCGキャラクタアニメーション制作システムにおいて、各関節位置及び人体形状用にポリゴン(多面体)を用意し、そのポリゴン名によって関節用/人体形状用のポリゴンの区別、関節と付属ポリゴンの関係、表示/非表示の区別を行い、各関節の接続関係を記述し、関節の回転を表すモーションデータに応じて対応する人体形状用ポリゴンを回転させることで、CGキャラクタアニメーションを制作することができる。
【0057】
<CGキャラクタ動作生成手段28におけるCGキャラクタ動作生成について>
ここで、上述したCGキャラクタ動作生成手段28におけるCGキャラクタ動作生成の具体例について図を用いて説明する。図3は、本実施形態におけるCGキャラクタ動作生成の一例を示す図である。また、図4は、本実施形態におけるテキスト編集可能なデータ例を示す図である。また、図5は、本実施形態におけるCGキャラクタ動作結果の一例を示す図である。
【0058】
なお、図3(a)は、テクスチャ(皮膚や衣服等)の付いた人体モデルのCGキャラクタの一例を示し、図3(b)は、CGキャラクタの面表示の一例を示し、図3(c)は、関節用ポリゴンの一例を示し、図3(d)は、人体形状用ポリゴンの一例を示している。また、図4(a)は、テキスト編集可能なポリゴン名(識別情報)の一例を示し、図4(b)は、関節用ポリゴンの親子関係の一例を示し、図4(c)は、ポリゴンデータの具体例を示している。更に、図5(a)は、関節の移動(回転)例を示し、図5(b),図5(c)は、CGキャラクタの動作(アニメーション)の一例を示している。
【0059】
本実施形態では、上述したように、CGキャラクタを例えば複数の変形しないパーツ(ポリゴン)に分割し、また動作の際に回転中心となる関節位置にも小さなポリゴンを配置する。また、人体形状用ポリゴンと関節用ポリゴンとは、ポリゴン名(識別情報)で区別する。更に、描画(表示)の際には、人体形状用ポリゴンのみを描画し、関節用ポリゴンは描画しないようにすることができる。
【0060】
また、本実施形態では、各関節の親子関係を示すデータを設定する。例えば、肘の関節は、肩の関節が回転するとその影響を受けるため、肘の関節は肩の関節の子供として接続関係を設定する。次に、本実施形態では、各関節が直接影響する人体形状ポリゴンを指定する。例えば、肘から腕の部分の人体形状ポリゴンは、肘関節の回転の影響を直接受けるため、これらの関節の関係も設定する。更に、本実施形態では、関節/人体形状ポリゴンの関係も識別情報により判別できるようにする。
【0061】
上述したように、本実施形態では、ポリゴンの配置、ポリゴン名(名前)での識別、関節の親子関係のデータを作成するだけでよいため、一般ユーザでも、例えば簡易なCGツール(例えば、metasequoia:「http://www.metaseq.net/metaseq/」)等を使ってCGキャラクタを制作することができる。また、本実施形態によれば、例えばパーツの変更や追加も容易に行うことができる。
【0062】
ここで、図3(a)に示すCGキャラクタ40は、図3(b)に示すように複数のポリゴン41から構成されている。なお、図3(b)では、面が分かるように表示した図を示している。また、図3(c)は、図3(b)の一部の拡大画面を示しており、具体的には肩の関節用ポリゴン42−1と肘の関節用ポリゴン42−2を示している。関節用ポリゴンは、小さな立方体で表現しているが、本発明においては、この形状や大きさ等は特に制限されるものではなく、例えば関節用ポリゴンを球状等で示してもよく、また関節用ポリゴンであることが容易に分かるように画面上の色を人体形状用ポリゴンの色と異なる色で表示してもよい。また、関節用ポリゴンは、上述した表示/非表示の設定により表示又は非表示にすることができる。
【0063】
更に、図3(d)では、上腕部分の人体形状用ポリゴン43−1及び下腕部分の人体形状用ポリゴン43−2を示している。つまり、上腕部分の人体形状用ポリゴン43−1及び下腕部分の人体形状用ポリゴン43−2は、肘の関節用ポリゴン42−2により接続されており、人体形状用ポリゴン43−2は、肘の関節用ポリゴン42−2の回転等により移動がスムーズに行われるよう制御される。
【0064】
図4(a)では、各ポリゴンを識別する識別情報(ポリゴン名)が示されている。ここで、本実施形態では、一例として、ポリゴン名の先頭に「p」の文字が付いているポリゴン名が関節ポリゴンを示し、「p」の付いていないポリゴン名が人体形状用ポリゴンを示している。なお、本発明におけるポリゴン名の種類や記述内容は、これに限定されるものではない。
【0065】
例えば、図4(a)において、「pLeftElbow」は、肘関節のポリゴンを示し、「LeftElbow」は、肘関節から直接影響を受ける人体形状ポリゴン、つまり下腕を示している。
【0066】
したがって、図3(c)に示す肩の関節用ポリゴン42−1のポリゴン名は、「pLeftShoulder」となり、肘の関節用ポリゴン42−2のポリゴン名は、「pLeftElbow」となる。また、図3(d)に示す下腕部分の人体形状用ポリゴン43−2のポリゴン名は、「LeftElbow」となる。
【0067】
このように、ポリゴン名に関節用ポリゴンと人体形状用ポリゴンとを識別し易い情報(上述の例では「p」)を付与しておくことにより、ユーザは容易にポリゴンを区別することができる。なお、上述した区別情報は、1文字(例えば、「p」)に限定されるものではなく、複数文字や、1又は複数の記号(例えば「@@@」、「**」等)、又は数字(例えば「9」、「000」)等であってもよく、これらの文字、記号、数字を任意に組み合わせた情報であってもよい。また、本実施形態では、ポリゴンの識別情報のどこに区別情報を付加するかについても特に限定されるものではなく、例えば識別情報の最後等に付加させてもよい。
【0068】
図4(b)に示す関節用ポリゴンの親子関係では、各ポリゴン名を階層付きのタグで記述する。つまり、図4(b)の例では、「pLeftCollar」の下位(子供)に「pLeftShoulder」があり、更に「pLeftShoulder」の下位に「pLeftElbow」があり、更に「pLeftElbow」の下位に「pLeftWrist」があることを示している。本実施形態では、上述のように記述することで、関節用ポリゴンの親子関係を容易に把握することができる。
【0069】
また、図4(c)に示すポリゴンデータの具体例では、首部分の関節用ポリゴン(pNeck)のデータ例(立法体)を示している。ここで、図4(c)の(i)は、ポリゴンの頂点データ(8点)の位置情報(座標)を示し、図4(c)の(ii)は、ポリゴンの面データ(立方体のため面合計は6面)を示している。
【0070】
なお、本実施形態におけるポリゴンの面データは、各面の角の頂点(図4(c)の(iii)の例では、頂点番号が(0、2、3、1))から構成されていることを示している。このように、図4(a)〜図4(c)に示される各データは、データファイルをして蓄積され、上述したテキスト編集手段29等により任意に編集することができる。
【0071】
また、本実施形態におけるCGキャラクタの動作を表すモーションデータは、各関節の回転量の時間変化を示す。例えば、図5(a)は、肩と肘の関節が回転している例である。関節位置は、関節ポリゴンの1つの頂点又は全ての頂点の平均から計算することができる。
【0072】
なお、本実施形態では、肩関節を回転すると肩関節に直接影響を受けるのは、人体形状ポリゴン(上腕)だけでなく、子供の関係にある関節から影響を受ける人体形状ポリゴン(下腕等)も回転させることができる。これにより、例えば図5(a)に示すように、CGキャラクタ40の下腕は、肩と肘の両方の回転の影響を受けてスムーズに動作させることができる。これにより、図5(b)に示すように、CGキャラクタ40に手話等のアニメーション動作を行わせることができる。
【0073】
更に、本実施形態では、図5(c)に示すように、CGキャラクタ40の顔のパーツとして開閉2種類の状態の瞼を用意し、所定のタイミングで切り替えることにより、瞬きの表現を行うこともできる。これにより、CGキャラクタ40が静止状態にいたとしても自然な表現を演出することができる。
【0074】
このように、本実施形態によれば、CGキャラクタ制作者は、関節用及び人体形状用ポリゴンを適当な位置に配置するだけで、3次元仮想空間上のCGキャラクタの動作を容易且つ効率的に生成することができる。また、人体形状については、ポリゴンを変形したり、テクスチャを変更することにより、CGキャラクタを変更することができる。なお、上述の説明では、1つの関節が1つの人体形状用ポリゴンに直接影響を与えるように説明したが、1つの関節ポリゴンが複数の人体形状ポリゴンに直接影響を与えてもよい。更に、本実施形態では、1つで複雑な形状ポリゴンを利用してもよいし、単純な形状のポリゴンを複数使って複雑な形状を表現することもできる。
【0075】
<編集画面例>
次に、画面生成手段27により生成されるCGキャラクタ編集画面の一例について説明する。図6は、画面生成手段により生成されるCGキャラクタ編集画面の一例を示す図である。また、図7は、CGキャラクタを用いたアニメーション表示画面の一例を示す図である。
【0076】
図6(a)に示す画面50には、CGキャラクタが表示され、図6(b)に示す画面60には、関節の回転角度制御等の設定情報が表示されている。なお、画面50,60は、1つのディスプレイ上に同時に表示させてもよく、1つずつ表示させてもよい。
【0077】
図6(a)の例では、図6(b)に示す画面60を用いて肩の関節を32度回転させ、肘の関節を−28度回転させる例を示している。このように、本実施形態では、所定の画面を用いて関節単位で設定することで、一般ユーザであっても分かり易く、容易にCGキャラクタ40の動作設定を行うことができる。
【0078】
また、本実施形態では、図7に示すように、例えば、CGキャラクタ40に手話等をさせたアニメーション(映像)を生成することもできる。ここで、図7(a)は、検索画面例を示し、図7(b)は、アニメーション表示例を示し、図7(c)は、アニメーション操作例を示し、図7(d)は、音声入力例を示し、図7(e)は、例文表示例を示す。なお、これらの各画面は、複数の画面を1画面上に同時に表示させてもよく、1つずつ表示させてもよい。
【0079】
例えば、図7の例では、「学校」という文字(日本語)を入力し「検索開始」ボタンを押すと、図7(a)に示すように検索結果が一覧表示される。なお、検索元のデータベースは、予め蓄積手段に蓄積されていてもよく、通信ネットワーク等を介して外部装置に蓄積されたデータを用いてもよい。
【0080】
次に、その検索結果の中から、例えば1行目の「学校」を選択すると、図7(b)に示すように選択した内容に対応して設定されている手話アニメーションが表示される。
【0081】
なお、本実施形態では、アニメーション表示の際に、図7(c)に示すように視点を変更して表示することも可能であり、回転の他にも、例えば拡大や縮小、移動等の制御が可能である。また、本実施形態では、図7(c)に示すように、アニメーションの再生速度を変更(例えば、コマ戻し、コマ送り等)することも可能である。これらの制御は、例えば図7(c)に示す画面に表示される各種ボタンやタッチパネルの操作等を用いて実現することができる。
【0082】
また、本実施形態は、図7(d)に示すように、マイク等の音声入力デバイス等を用いてユーザが直接音声を入力することもできる。これにより、音声による検索を行ったり、入力した音声をCGキャラクタがしゃべっているように演出することができる。なお、入力される音声は日本語に限定されず、外国語であってもよい。
【0083】
また、本実施形態は、図7(e)に示すように、例文を表示して、その中から1つを選択することで、対応する手話等の動作をCGキャラクタに行わせることができる。なお、例文等は、元となるデータベースを予め蓄積手段に蓄積しておいてもよく、通信ネットワーク等を介して外部装置から取得したデータを用いてもよい。
【0084】
ここで、図8は、例文表示の記述例を示す図である。本実施形態では、図8に示すような例文データ(例えば、私の名前は加藤です。)、BVHファイル(例えば、ex01.bvh)、サムネール画像(例えば、ex01.jpg)等の対応関係を記述しておくことにより、一般ユーザであっても図7(e)に示すインターフェイスを構築できる。例文を選択することで、対応するBVHファイルやサムネール画像等を容易に抽出することができ、それらの情報を用いてCGキャラクタアニメーションの表示等を容易に行うことができる。なお、例文の種類等については、図8の例に限定されるものではない。
【0085】
また、本実施形態では、例えば、予め設定されたファイル又は上述したテキスト編集手段29等により編集された別ファイルを用いて、その文章の内容を機械音声により、音声出力デバイスを用いて出力することもできる。
【0086】
上述したように、本実施形態によれば、例えば一般ユーザが、簡単なポリゴン編集ツールを使って容易にCGキャラクタを制作することができる。また、本実施形態では、変形しないポリゴンが関節位置を中心に回転する処理を実現でき、処理量を少なくして、アニメーションを制作することができる。そのため、本発明は、例えば携帯端末等への実装が容易である。つまり、本実施形態の具体例として、例えば日本語の手話CG対訳辞書等を携帯端末に実装して、CGキャラクタにより手話を表示させるといったサービス等を提供することができる。
【0087】
<具体例:携帯端末への実装>
ここで、上述した本実施形態の具体例として、携帯端末への実装について説明する。ここで、携帯端末としては、例えば携帯電話、Personal Digital Assistant(PDA、携帯情報端末)、ノート型パーソナルコンピュータ、電子書籍端末、音楽再生装置、ゲーム機器等があるが、本発明においてはこれに限定されるものではない。また、以下の説明では、本実施形態を適用したCGキャラクタの動作を生成するまでの過程等についても適宜説明する。
【0088】
<モーションキャプチャ>
例えば、CGキャラクタを使って手話の細かい手や指の動きを再現するには、正確なモーションデータとモーションデータに対応して変形する高品質な3次元人体CGキャラクタが必要になる。例えば、手や指のモーションを取得する方法としては、人が装着するグローブ型のモーションキャプチャ装置があるが、指の曲がり具合を取得するもので、各指間の広がり等、手話の動きを正確に取り込むことができない。
【0089】
そこで、本実施形態では、光学式モーションキャプチャシステムを利用する。全身の動きと手指動作を記録するため片手に26点のマーカーを取り付け、例えば、「VICOM MX−40」等の装置を12台使用して撮影し、マーカーの3次元位置から各関節の回転量を求め、BVH形式のモーションキャプチャデータに変換する。
【0090】
ここで、図9は、BVHデータの一例を示す図である。BVHは、Biovision社によって開発されたモーションキャプチャデータ用のファイル形式であり、テキスト形式で関節ノードに関する記述に続いて各フレームでの関節回転量が記述されている。
【0091】
なお、図9の例では、「Hips−Chest1−Chest2」の階層構造を示している。また、図9に示す「MOTION」以下が関節の回転量等を示し、「Frame Time」の次の行から、関節ノード「Hips」の移動量(Xposition Yposition Zposition)に続いて各関節ノードの回転量(Zrotation Xrotation Yrotation)が記述されている。これらは、3次元仮想空間上における各座標(X,Y,Z)に対して設定されている。
【0092】
<TVMLによるアニメーション生成>
ここで、手話のアニメーション生成には、モーションデータを忠実に再現するCGキャラクタ及びアニメーション生成が必要となる。また、アニメーション映像を生成するには、CGキャラクタだけでなく、背景セット、視点位置の指定等が必要となる。本実施形態では、上述したCGキャラクタ及びアニメーション等の生成にTVMLを利用する。
【0093】
ここで、図10は、TVMLスクリプトの一例を示す図である。図10では、スタジオセット(Set)、CGキャラクタ(Character)、カメラ(Camera)に対するスクリプトが記述されている。
【0094】
図10において、「character:openkeyframe」コマンド、及び「character:keyframe」コマンドが、それぞれBVH形式のモーションデータファイルの読み込み、再生を行うことができる機能を有する。また、図10では、「set:openmode」コマンドを用いてオブジェクト形式の背景セットを読み込むことができる。
【0095】
このようにして生成したスクリプトは、例えば上述した再生手段30により再生され、これにより、図7(b)に示すようなCGキャラクタのアニメーションが生成される。
【0096】
<辞書システムの実装>
日本語を入力し、手話単語を検索、アニメーション表示するシステムを携帯端末上に構築した。入力部に検索したい日本語を入力し、検索ボタンを押すと検索結果が表示される。例えば、上述した図7に示すように、日本語語彙「学校」を入力して検索ボタンを押すと、対応する手話単語が複数検索される。見たい手話単語のサムネール画像をクリックすると、別画面が表示され手話アニメーションが始まる。また、アニメーションは、TVMLを使って表示しているので、リアルタイムに視点を変更することができる。このように、手話CG対訳辞書が携帯端末上で動作させることで、利用場所が飛躍的に拡大する。
【0097】
<携帯端末で使用されるCGキャラクタ>
また、携帯端末で使用されるCGキャラクタは、上述したように、CGキャラクタは変形しないパーツ(ポリゴン)の集合として表現される。本実施形態では、ボーンの代わりに、関節位置に関節用ポリゴンを配置する。
【0098】
つまり、関節用ポリゴンは、小さな立方体で表現され、上述したように、「LeftElbow」がパーツポリゴンで、関節用ポリゴン「pLeftElbow」 を回転中心として回転する。その他のパーツについても、同様に、パーツポリゴンと回転中心の関節用ポリゴンの名前をBVHの関節ノード名に合わせておく。また、本実施形態では、上述したBVHデータに基づき、関節用ポリゴンの位置を回転の中心として、付属の人体形状用ポリゴン(パーツポリゴン)が回転することによりアニメーションを実現することができる。
【0099】
また、TVML用CGキャラクタでは、顔のパーツとして開閉2種類の状態の瞼を用意し、適当なタイミングで切り替えることにより図5(c)に示すようにCGキャラクタの瞬きの表現等を可能とする。
【0100】
<実行プログラム>
ここで、上述したCGキャラクタ生成装置20は、例えば、CPU(Central Processing Unit)、RAM(Random Access Memory)等の揮発性の記憶媒体、ROM(Read Only Memory)等の不揮発性の記憶媒体、マウスやキーボード、ポインティングデバイス等の入力装置、画像やデータを表示する表示部、並びに外部と通信するためのインターフェイスを備えたコンピュータによって構成することができる。
【0101】
したがって、CGキャラクタ生成装置が有する各機能は、これらの機能を記述したプログラムをCPUに実行させることによりそれぞれ実現可能となる。また、これらのプログラムは、磁気ディスク(フロッピィーディスク、ハードディスク等)、光ディスク(CD−ROM、DVD等)、半導体メモリ等の記録媒体に格納して頒布することもできる。
【0102】
つまり、上述した各構成における処理をコンピュータに実行させるための実行プログラム(CGキャラクタ生成プログラム)を生成し、例えば、汎用のパーソナルコンピュータやサーバ等にそのプログラムをインストールすることにより、CGキャラクタ生成処理を実現することができる。
【0103】
次に、本発明における実行プログラムによる処理手順についてコンテンツ制作システムにおけるCGキャラクタ生成処理についてフローチャートを用いて説明する。
【0104】
<CGキャラクタ生成処理手順について>
図11は、CGキャラクタ生成処理の処理手順の一例を示すフローチャートである。図11において、まず、CGキャラクタ生成装置20は、キャラクタの読込みを行い(S01)、読み込んだキャラクタに対応するポリゴンデータの設定を行う(S02)。次に、CGキャラクタ生成装置20は、上述したように、ポリゴン名等のポリゴンの識別情報等によってポリゴンの区別、関節用ポリゴンと付属ポリゴン(例えば、人体形状用ポリゴン等)との関係、表示/非表示の区別を設定する(S03)。また、CGキャラクタ生成装置20は、各関節の接続関係を設定する(S04)。なお、上述したS02〜S04の処理は、既に設定がされている場合には、設定された情報を読み出すだけでよく、これらの処理は行わなくてもよい。
【0105】
次に、CGキャラクタ生成装置20は、ユーザ等の指示により、移動対象として、1又は複数のポリゴン等からなるパーツを選択し(S05)、選択されたパーツに接続される各関節に与えられた回転量により付属ポリゴンを回転させて(S06)、アニメーション(映像)を生成する(S07)。つまり、本実施形態では、ボーンやポリゴンによる繋ぎの設定等ではなく、関節の回転量を設定することで、CGキャラクタの動作を容易に行うことができる。なお、S06の処理における関節の回転量の設定は、例えばユーザ等の入力手段による指示により行われる。
【0106】
次に、S07の処理にて生成されたアニメーションを再生し(S08)、アニメーションが希望通りであるか否かを判断する(S09)。希望通りでない場合(S09において、NO)、S05の処理に戻り、例えばパーツの選択や回転量等を変えて、後段の処理を行う。
【0107】
また、S09の処理において、ユーザ等の指示等に基づき希望通りであると判断された場合(S09において、YES)、例えば、そのアニメーション(CGキャラクタ情報等も含む)等を蓄積手段23等に登録して蓄積する(S10)。
【0108】
ここで、CGキャラクタ生成処理が処理終了であるか否かを判断し(S11)、ユーザ等の指示等に基づき終了しないと判断された場合(S11において、NO)、S01に戻り、後続の処理を行う。また、ユーザ等の指示等に基づき終了すると判断された場合(S11において、YES)、CGキャラクタ生成処理を終了する。
【0109】
上述したように本発明によれば、3次元仮想空間上のCGキャラクタの動作を容易且つ効率的に生成することができる。したがって、一般ユーザが、簡単なポリゴン編集ツールを使って容易にCGキャラクタを制作することができる。また、本発明によれば、モーションデータ等を用いて手話等のアニメーションを容易に制作することができる。また、本発明によれば、変形しないポリゴンが関節位置を中心に回転する処理で実現でき、アニメーションの計算量が少ないため、携帯端末等への実装が容易となる。
【0110】
以上本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
【符号の説明】
【0111】
10,40 CGキャラクタ
11,41 ポリゴン
12 骨(ボーン)
20 CGキャラクタ生成装置
21 入力手段
22 出力手段
23 蓄積手段
24 CGキャラクタ読込手段
25 ポリゴン設定手段
26 関節接続関係設定手段
27 画面生成手段
28 CGキャラクタ動作生成手段
29 テキスト編集手段
30 再生手段
31 送受信手段
32 制御手段
42 関節用ポリゴン
43 人体形状用ポリゴン
50,60 画面

【特許請求の範囲】
【請求項1】
3次元仮想空間上で所定の動作を行うCGキャラクタを生成するCGキャラクタ生成装置において、
前記CGキャラクタに対するポリゴン情報を所定のパーツ単位で分割し、分割したパーツ情報と関節情報とを対応付けるポリゴン設定手段と、
前記ポリゴン設定手段により得られる複数のパーツ情報に対する関節情報を用いてパーツ間の接続関係を設定する関節接続関係設定手段と、
前記ポリゴン設定手段により得られるパーツ情報と、前記関節接続関係設定手段により得られる接続関係とを用いて、前記パーツ情報に対する関節の回転量を制御して前記CGキャラクタの動作を生成するCGキャラクタ動作生成手段とを有することを特徴とするCGキャラクタ生成装置。
【請求項2】
前記ポリゴン設定手段は、
関節用ポリゴンと形状用ポリゴンとを識別するための識別情報を設定することを特徴とする請求項1に記載のCGキャラクタ生成装置。
【請求項3】
前記ポリゴン設定手段は、
前記識別情報により、前記関節用ポリゴンと前記形状用ポリゴンとを区別し、関節ポリゴンに付属する形状用ポリゴンの設定及び/又は各パーツの表示/非表示の設定を行うことを特徴とする請求項2に記載のCGキャラクタ生成装置。
【請求項4】
前記関節接続関係設定手段は、
各関節の親子関係を設定し、前記各関節が直接影響する形状用ポリゴンを指定することで、前記パーツ間の接続関係を設定することを特徴とする請求項1乃至3の何れか1項に記載のCGキャラクタ生成装置。
【請求項5】
前記CGキャラクタのパーツ情報を選択させるための表示画面、又は前記CGキャラクタ動作生成手段により生成されたCGキャラクタを動作させるための表示画面を生成する画面生成手段とを有することを特徴とする請求項1乃至4の何れか1項に記載のCGキャラクタ生成装置。
【請求項6】
コンピュータを、請求項1乃至5の何れか1項に記載のCGキャラクタ生成装置が有する各手段として機能させるためのCGキャラクタ生成プログラム。

【図2】
image rotate

【図4】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図1】
image rotate

【図3】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2013−33316(P2013−33316A)
【公開日】平成25年2月14日(2013.2.14)
【国際特許分類】
【出願番号】特願2011−168014(P2011−168014)
【出願日】平成23年8月1日(2011.8.1)
【出願人】(000004352)日本放送協会 (2,206)
【Fターム(参考)】