JP2003196677A - 3次元モデル変形方法およびコンピュータプログラム - Google Patents

3次元モデル変形方法およびコンピュータプログラム

Info

Publication number
JP2003196677A
JP2003196677A JP2001392154A JP2001392154A JP2003196677A JP 2003196677 A JP2003196677 A JP 2003196677A JP 2001392154 A JP2001392154 A JP 2001392154A JP 2001392154 A JP2001392154 A JP 2001392154A JP 2003196677 A JP2003196677 A JP 2003196677A
Authority
JP
Japan
Prior art keywords
data
constituent
muscle
dimensional model
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2001392154A
Other languages
English (en)
Inventor
Osamu Toyama
修 遠山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Minolta Co Ltd
Original Assignee
Minolta Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Minolta Co Ltd filed Critical Minolta Co Ltd
Priority to JP2001392154A priority Critical patent/JP2003196677A/ja
Publication of JP2003196677A publication Critical patent/JP2003196677A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Processing Or Creating Images (AREA)

Abstract

(57)【要約】 【課題】同一の動作に対して状況に応じてそれぞれ異な
った形状に3次元モデルを変形できるようにする。 【解決手段】3次元の構成点群によって皮膚が表現さ
れ、皮膚の内部に配置された1または複数の筋肉を伸縮
させることによって1つまたは複数の構成点が変位する
ように構成された顔モデル3Mを変形するに当たって、
同一の動作指示に対して各筋肉の伸縮に関する動作別筋
肉データ71を複数記憶しておき、これらの動作別筋肉
データ71の中から状況に応じていずれか1つの動作別
筋肉データ71を選択し、選択した動作別筋肉データ7
1に基づいて各構成点を変位させる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、皮膚を表現する3
次元の構成点群の一部が筋肉の伸縮にともなって変位す
るように構成された3次元モデルの変形方法に関する。
【0002】
【従来の技術】従来より、人物の頭部などの3次元モデ
ルを変形し、その3次元モデルを2次元面上に投影する
ことによってアニメーションを生成する方法が知られて
いる。例えば、3次元モデルの形状を言葉に合わせて変
形し、その顔面を平面上に投影することによって、言葉
を喋る顔アニメーションが生成される。その他、瞬きを
したり、笑ったり、あくびをするなど様々な種類の動作
をする顔アニメーションが生成される。
【0003】
【発明が解決しようとする課題】従来の3次元モデルの
変形方法を用いてアニメーションを生成すると、同一の
動作指示に対して同一の結果しか得られない。例えば、
「こんばんは」という言葉を喋るアニメーションを生成
すると、いつも同じ表情で「こんばんは」と喋るアニメ
ーションになってしまう。ところが、同じ言葉を喋る場
合であっても状況などに応じて様々な形状の顔アニメー
ションが得られることが望まれる。
【0004】本発明は、このような問題に鑑みてなされ
たもので、同一の動作に対して状況に応じてそれぞれ異
なった形状に3次元モデルを変形できるようにすること
を目的とする。
【0005】
【課題を解決するための手段】本発明に係る3次元モデ
ル変形方法は、3次元の構成点群によって皮膚が表現さ
れ、皮膚の内部に配置された1または複数の筋肉を伸縮
させることによって1つまたは複数の構成点が変位する
ように構成された3次元モデルを変形する3次元モデル
変形方法であって、同一の動作指示に対して筋肉の伸縮
に基づいて構成点の変位がどのようになるかについての
複数種類の情報を記憶しておき、前記複数種類の情報の
中からいずれか1つの情報を選択し、選択した情報に基
づいて各構成点を変位させる。
【0006】好ましくは、動作の種類ごとに、3次元モ
デルが当該動作を行ったときの形状になるような各筋肉
の変形量を複数組記憶しておき、3次元モデルに対する
動作指示データを取得し、取得した動作指示データが示
す動作に対応する複数組の各筋肉の変形量の中からいず
れか1組を選択し、選択した1組の各筋肉の変形量に基
づいて各構成点を変位させる。
【0007】または、各筋肉の端点の変位によって各構
成点に及ぼされる影響を示す情報を複数記憶しておき、
前記情報の中からいずれか1つの情報を選択し、選択し
た情報に基づいて各構成点を変位させる。
【0008】本発明に係るコンピュータプログラムは、
同一の動作指示に対して筋肉の伸縮に基づいて構成点の
変位がどのようになるかについての複数種類の情報の中
からいずれか1つの情報を選択する処理と、選択した情
報に基づいて各構成点を変位させる処理とをコンピュー
タに実行させる。
【0009】本発明における筋肉には、1つ1つの筋肉
(本発明の実施形態でいうエッジ)、およびそれらの集
合(エッジ群)を含む。本発明における皮膚には、人
間、動物、または他の生物の皮膚、および毛髪を含む。
また、それらの表面を覆っているもの、それらの表面に
適用されて一体と見做せるもの、例えば衣服、毛皮、装
身具、鎧、または兜などを含む。
【0010】
【発明の実施の形態】図1は本発明に係る3次元モデル
の変形方法を適用したアニメーション生成装置1の構成
の例を示す図、図2は磁気記憶装置12に記憶されるプ
ログラムおよびデータの例を示す図、図3はアニメーシ
ョン生成装置1の機能的な構成を示す図である。
【0011】図1に示すように、アニメーション生成装
置1は、処理装置10、ディスプレイ装置11、磁気記
憶装置12、キーボード13、マウス14、マイク1
5、およびスピーカ16などによって構成される。
【0012】処理装置10は、CPU10a、RAM1
0b、ROM10c、各種の入出力ポート10d、およ
び各種のコントローラ10eなどによって構成される。
図2に示すように、磁気記憶装置12には、オペレーテ
ィングシステム(OS)12a、顔画像制御プログラム
12b、およびモデリングプログラム12cなどのプロ
グラム、および後に説明する種々の処理に用いられるデ
ータなどが記憶される。
【0013】磁気記憶装置12に記憶されたプログラム
およびデータは、必要に応じてRAM10bにロードさ
れる。ロードされたプログラムはCPU10aによって
実行される。アニメーション生成装置1をネットワーク
6Nを介して他のコンピュータに接続し、プログラムま
たはデータをダウンロードすることも可能である。フロ
ッピディスク19a、CD−ROM19b、または光磁
気ディスク(MO)19cなどの各種リムーバブルディ
スク(記録媒体)を介してプログラムまたはデータをロ
ードすることも可能である。
【0014】ディスプレイ装置11には、磁気記憶装置
12に記憶されたデータに基づく種々の画像、処理装置
10による処理によって得られた画像などが表示され
る。例えば、人物の頭部の3次元形状モデル(3次元モ
デル)である顔モデル、顔モデルを所定の方向から2次
元面上に投影して得られる顔画像HF、連続して変化す
る顔画像による顔アニメーションなどが表示される。し
たがって、顔アニメーションは、例えばアニメーション
生成装置1に入力された言葉に合わせて口が動くよう
に、顔モデルを言葉の音韻により制御することによって
生成される。
【0015】キーボード13およびマウス14などの操
作入力装置は、処理装置10に指令または命令を与え、
パラメータを設定し、または顔モデルの制御のための言
葉、その他の種々のデータを入力するために用いられ
る。
【0016】マイク15は、処理装置10に対して音声
によって指令を与えたり、顔モデルの制御のための言葉
を入力するのに用いられる。スピーカ16は、顔画像の
動作すなわちリップシンクアニメーションに合わせて、
言葉を音声として出力する。これにより、ユーザは、顔
画像HFが言葉を喋っているように認識する。
【0017】アニメーション生成装置1として、例え
ば、ワークステーションまたはパーソナルコンピュータ
などが用いられる。PDA(Personal Digital Assista
nt)または携帯電話端末などを用いることも可能であ
る。
【0018】図3に示すように、アニメーション生成装
置1には、顔モデル生成部101、データ記憶部10
2、動作指示データ取得部103、顔画像制御部10
4、音声出力部105、およびデータ選択部106など
が設けられる。
【0019】これらの機能によって、指定した人物に対
応する顔モデル(筋肉モデル)を生成し、その顔モデル
を言葉によって制御し、言葉に合わせて喋る顔アニメー
ションを生成することができる。
【0020】顔モデルは、3次元空間に配置された多数
の構成頂点(Model Vertex)Vからなる構成頂点群(構
成点群)を有する。これら構成頂点群によって、外観形
状、つまり皮膚の表面が表現される。「皮膚」は、顔面
では文字通り顔の皮膚であるが、頭の部分では毛髪が
「皮膚」となる。例えば衣服を着ている場合に、特に衣
服として異なった制御を行わないのであれば、その衣服
も皮膚と見做せる。
【0021】筋肉モデルでは、皮膚の内部に筋肉が配置
される。例えば、「笑筋」、「口輪筋」などの筋肉が配
置される。これらの筋肉は、1つまたは複数のエッジ
(Edge)Eによって構成される。つまり、エッジ群が筋
肉である。エッジEは直線によって表される。筋肉の性
質および作用は、その構成要素である各エッジEの性質
および作用の総和であるが、特に区別する必要のない場
合には、「エッジE」を「筋肉E」と記載することがあ
る。筋肉に加えて、さらに骨格が配置されることもあ
る。
【0022】1つまたは複数の構成頂点Vとそれら構成
頂点Vによる影響率とによって、1つのノード(Node)
Nが定義される。つまり、各ノードNの初期位置は、そ
れを定義する構成頂点Vの位置と、それぞれの構成頂点
Vの影響率とによって決定される。骨格上の点によって
ノードNが定義されることもある。
【0023】2つのノードNによって、1つのエッジE
が定義される。つまり、エッジEは、その両端に配置さ
れた端点である2つのノードNによって定義される。両
端のノード間の距離が、そのエッジEの長さである。1
つのノードNが複数のエッジEの端点となることがあ
る。
【0024】エッジEの長さは、例えば後述する式
(5)に関連して与えられる。エッジEの長さは、基本
的には、指定された変形量(収縮量)tに基づいて決定
される。変形量tは、例えば、0〜20の値で与えられ
る。その場合に、t=0であれば、当該エッジEが収縮
していない状態、つまり当該エッジEは自由状態の長さ
となる。t=20であれば、最も収縮した状態となる。
【0025】各エッジEの伸縮量(または長さ)の算出
に当たって、変形量tに伸縮係数Iを乗じる。伸縮係数
Iは、各エッジEに対して指定される変形量tの影響の
強さを示すものであり、各エッジEに対してそれぞれ設
定される。伸縮係数Iの値が大きい程、変形量tの影響
を強く受け、伸縮量は大きくなる。伸縮係数を「強度」
と呼称することも可能である。
【0026】エッジEが伸縮すると、その両端の2つの
ノードNが変位する。2つのノードNの変位の割合は、
各ノードNに設定されたウエイトwによって決定され
る。例えばノードNのウエイトwが「0」である場合に
は、エッジEが伸縮してもそのノードNは変位しない。
1つのノードNが複数のエッジEの端点となっている場
合には、そのノードNの位置は複数のエッジEの伸縮状
態によって決まる。
【0027】ノードNが変位すると、そのノードNから
影響を受けるように設定された構成頂点Vが変位する。
ノードNの影響配下にあるそのような構成頂点Vには、
通常、そのノードN自体を定義する構成頂点Vが含まれ
る。影響配下にある構成頂点Vについて、ノードNの変
位による影響率(影響強度)rがそれぞれ定義される。
影響率rの値が大きい程、構成頂点Vの変位量が大き
い。
【0028】次に、図3に示す各機能についてさらに詳
しく説明する。 〔3次元形状モデル(顔モデル)の生成〕顔モデル生成
部101は、顔画像HFの基となる3次元形状モデルを
生成する。ここでは、アニメーション生成装置1を使用
するユーザ自身の3次元形状モデルを生成する場合につ
いて説明する。
【0029】図4は3次元形状モデルの生成の処理の流
れを説明するフローチャート、図5は標準モデルDSの
例を示す図、図6は変形処理の流れを説明するフローチ
ャート、図7は標準モデルDSの面Sと3次元計測デー
タの点Pとを模式的に示す図、図8は標準モデルDSの
異常変形を防ぐための仮想バネを説明するための図であ
る。
【0030】図4において、まず、標準モデルDSとユ
ーザについての3次元計測データとの概略の位置合わせ
を行う(#101)。本実施形態において、標準モデル
DSは、標準的な人物の頭部の全体を構造化した顔モデ
ル、つまり標準的な頭部の筋肉モデルである。標準モデ
ルDSは、標準的な顔のサイズおよび形状を有する。標
準モデルDSは、上に述べた多数の構成頂点Vを有す
る。また、筋肉配置設定処理によって多数のノードNお
よびエッジEが定義され、影響範囲設定処理によって、
各ノードNの影響配下にある構成頂点Vおよびそれらの
影響率rが定義される。
【0031】3次元計測データは、ユーザの顔について
の点群(構成頂点群)からなる3次元データである。3
次元計測データは、3次元計測装置を用いてユーザを撮
影するなどして予め用意される。
【0032】ステップ#101では、標準モデルDSと
3次元計測データとの距離が最小となるように、標準モ
デルDSの向き、大きさ、および位置を変更する。一般
に、標準モデルDSおよび3次元計測データとして、無
表情の状態のものが用いられる。
【0033】次に、輪郭および特徴点を抽出する(#1
02)。標準モデルDSについての輪郭RKおよび特徴
点TTと同じ位置に配置されるべき輪郭および特徴点
を、3次元計測データ上に、またはそれに対応する2次
元画像上に配置する。
【0034】特徴点として、例えば、目や口の端部、鼻
の頂部、顎の下端部のように実際に特徴のある部分、ま
たは、それらの中間のようなそれ自体では特徴はないが
位置的に特定し易い部分などが選ばれる。輪郭として、
顎のライン、唇のライン、または瞼のラインなどが選ば
れる。
【0035】計算量および誤差を削減するために、3次
元計測データについてデータの削減を行う(#10
3)。標準モデルDSの変形を行う(#104)。すな
わち、3次元計測データの各点と標準モデルDSの面と
の間の距離に関連して定義されたエネルギー関数、また
は過剰な変形を回避するために定義されたエネルギー関
数などを用い、それらが最小となるように標準モデルD
Sの面を変形させる。
【0036】そして、対象とするエネルギー関数および
制御点を変更し、ステップ#104と同様な変更のため
の処理を繰り返す(#105)。次に、ステップ#10
4の変形処理について説明する。
【0037】図7において、3次元計測データを構成す
る点群の1つが点Pkで示される。標準モデルDSの面
Sにおいて、点Pkに最も近い点がQkで示される。点
Qkは、点Pkから面Sに垂線を下ろしたときの交点で
ある。
【0038】点群に面Sをフィッティングする方法は次
の通りである。ここでは、一般的なフィッティングにつ
いて説明する。点群の中の1つの点Pk、それに対応す
る点Qk、および対応点群T={(Pk,Qk),k=
1…n}について、フィッティングエネルギー(Fittin
g Energy) 関数Ff(U)を、次の式(1)のように設
定する。
【0039】
【数1】
【0040】ただし、Qk(U)は、QkがUの関数で
あることを示す。また、面Sの過度の変形を防ぐため
に、図8に示す仮想バネ(elastic bar) KBを導入す
る。仮想バネKBの制約に基づいて、面Sの形状安定化
のための安定化エネルギー関数を導く。
【0041】すなわち、図8において、フィッティング
対象である標準モデルDSの面(曲面)Sの一部が示さ
れている。面Sは、制御点群U=|ui,i=1…n|
で形成されている。隣接する制御点間には、仮想バネK
Bが配置されている。仮想バネKBは、制御点間に引っ
張り力による拘束を与え、面Sの異常変形を防ぐ働きを
する。
【0042】つまり、隣接する制御点uの間隔が大きく
なった場合に、それに応じて仮想バネKBによる引っ張
り力が大きくなる。例えば、点Qkが点Pkに近づく場
合に、その移動にともなって制御点uの間隔が大きくな
ると、仮想バネKBによる引っ張り力が増大する。点Q
kが移動しても制御点uの間隔が変わらなければ、つま
り制御点u間の相対位置関係に変化がなければ、仮想バ
ネKBによる引っ張り力は変化しない。仮想バネKBに
よる引っ張り力を面Sの全体について平均化したもの
を、安定化エネルギーとして定義する。したがって、面
Sの一部が突出して変形した場合に安定化エネルギーは
増大する。面Sの全体が平均して移動すれば安定化エネ
ルギーは零である。
【0043】安定化エネルギー関数Fs(U)は、次の
式(2)で示される。
【0044】
【数2】
【0045】ここで、
【0046】
【数3】
【0047】は、それぞれ、仮想バネKBの初期端点、
変形後の仮想バネKBの端点である。cはバネ係数であ
り、Mは仮想バネKBの本数である。また、次の関係が
成り立つ。
【0048】
【数4】
【0049】したがって、バネ係数cを大きくすると、
仮想バネKBは硬くなって変形し難くなる。このような
安定化エネルギー関数Fs(U)を導入することによ
り、面Sの形状変化に一定の拘束を設けることとなり、
面Sの過度の変形を防ぐことができる。
【0050】上に述べたフィッティングエネルギー関数
Ff(U)、および安定化エネルギー関数Fs(U)を
用い、フィッティングの評価関数F(U)を次の式
(3)のように定義する。
【0051】 F(U)=WfFf(U)+WsFs(U) ……(3) ここで、Wf,Wsは、それぞれ正規化のための重み係
数である。式(3)の評価関数F(U)が十分小さくな
るように、面Sの変形および対応点の探索を繰り返し、
面のフィッティングを行う。例えば、F(U)のUに関
する微分が0に近づく方向にフィッティングを行う。
【0052】図6において、変形処理では、まず、点P
kに対応する点Qkを計算で求め、点Pkと点Qkの組
みを作成する(#111)。面Sを変形し(#11
2)、変形後の評価関数F(U)を計算する(#11
3)。評価関数F(U)が収束するまで(#114でY
es)、処理を繰り返す。
【0053】評価関数F(U)の収束を判定する方法と
して、評価関数F(U)が所定の値よりも小さくなった
ときを収束とする方法、前回の計算と比較べた変化の割
合が所定値以下となったときに収束とする方法など、公
知の方法を用いることが可能である。
【0054】このような処理によって標準モデルDSを
変形し、ユーザの顔の形状をした3次元形状モデルを生
成することができる。生成された3次元形状モデルは、
データ記憶部102に記憶される。以下、3次元形状モ
デルを「顔モデル3M」と記載することがある。
【0055】なお、データ記憶部102には、他の複数
の人物の顔モデル3Mが記憶されている。したがって、
以下に説明する処理によって、様々な人物の顔画像HF
のアニメーションを実現することができる。〔筋肉の定
義〕図9は顔モデル3Mの構成の例を示す図、図10は
ノードデータ72aの例を示す図、図11はノードNと
その位置を定義する構成頂点Vとの関係を示す図、図1
2はエッジデータ74aの例を示す図、図13はエッジ
Eの構成を説明するための図、図14はあるノードNの
変位による影響が及ぶ範囲の例を説明する図、図15は
ノード影響データ73aの例を示す図である。
【0056】図9(a)において、複数の細い直線同士
の交点は、顔モデル3Mの構成頂点Vを示す。顔の表面
すなわち皮膚の位置は、構成頂点Vによって決定され
る。太い直線は、顔モデル3Mのエッジ(筋肉)Eであ
る。黒い丸印は、エッジEの端点を意味するノードNを
示す。つまり、エッジEの位置は、異なる2つのノード
Nによって決定される。ノードN(N1、N2、…)
は、顔全体の各エッジEの端点となる位置に配置されて
いる。なお、エッジEは人間の実際の筋肉に即して配置
されるので、顔の動きをリアルに再現することができ
る。
【0057】図9(b)は、ノードNとエッジEとの関
係を分かりやすくするために、図9(a)から構成頂点
Vを省略して示している。図9(a)(b)は、顔の右
半分のノードNおよびエッジEを省略して示している
が、実際には、右半分にも左半分と同様にノードNおよ
びエッジEが存在する。
【0058】ノードNの位置は、次に示す式(4)のよ
うに、構成頂点Vの相対的位置として表される。
【0059】
【数5】
【0060】ノードNの具体例を説明する。図10に示
すノードデータ72aは、各ノードNのID番号、各ノ
ードNを定義する構成頂点VのID番号、およびそれら
構成頂点Vによる影響率(Rate)を示す。
【0061】例えば、ID=1のノードN1の位置は、
ID=50、43、15の3つの構成頂点V(V50、
V43、V15)によって決まる。それら構成頂点Vの
影響率は、それぞれ、「0.3」「0.5」「0.2」
である。
【0062】図11に示されるように、ノードN1は、
それら3つの構成頂点Vからなる三角形の各辺を影響度
に基づいて内分し、各内分点とその向かい合う構成頂点
Vとを結ぶ3本の直線の交点に位置する。
【0063】エッジEの伸縮にともなうノードNの変位
は、次に示す式(5)によって求められる。
【0064】
【数6】
【0065】エッジEの具体例およびエッジEの伸縮に
ともなうノードNの変位について、上の式(5)を参照
しながら説明する。図12に示すエッジデータ74a
は、各エッジEのID番号、各エッジEを定義するノー
ドNのID番号、各ノードNのウエイトw、および、各
エッジEの伸縮係数Iを示す。ウエイトwは、そのエッ
ジEを伸縮させた場合に、どちらのノードNをどれだけ
の割合で移動させるかを示す。
【0066】例えば、図13に示されるように、ID=
1のエッジE1は、ID=1とID=2の2つのノード
N1,N2によって決まる。ノードN1,N2のウエイ
トwは、それぞれ「1.0」「0.0」である。したが
って、エッジE1が伸縮したときに、ノードN1のみが
変位し、ノードN2は変位しない。もし、両端のノード
Nのウエイトwが「0.7」「0.3」であった場合に
は、エッジEが伸縮したときに、各ノードNがそれぞれ
7対3の割合で変位する。また、エッジE1の伸縮係数
Iは「10」である。
【0067】ただし、実際には複数のエッジEに関係す
るノードNが存在するため、収束演算または連立演算に
よってノードNの変位後の位置が求められる。ノードN
の変位に伴って、そのノードNの周辺の構成頂点Vが影
響を受けて変位する。例えば、図14に示すように、あ
るノードNが変位すると、その周辺の9つの構成頂点V
に影響が及びこれらの構成頂点Vが変位する。
【0068】図15に示すノード影響データ73aによ
ると、例えばノードN1の変位(移動)によって構成頂
点V50、V43、…、V46の6つの構成頂点Vに影
響が及ぶことが分かる。括弧内の各値は、顔モデル3M
の形状が初期状態である場合にノードNの変位によって
各構成頂点Vi(i=1,2…)に及ぼされる影響率r
を示している。この影響率rは、ノードNに近い構成頂
点Vほど大きく設定されている。影響率rが大きいほ
ど、例えば表情が大げさに表現される。
【0069】ノードNの変位に伴って構成頂点Vが移動
する位置は、次に示す式(6)によって求められる。
【0070】
【数7】
【0071】このように、ノードデータ72a、ノード
影響データ73a、およびエッジデータ74aによっ
て、各筋肉Eと各構成点Vとの位置関係および各筋肉E
の変形によって各構成頂点Vに及ぼされる影響の関係な
どが決まる。以下、これら3種類のデータを合わせて
「筋肉配置データ77」と記載することがある。例え
ば、ノードデータ72i、エッジデータ74i、および
ノード影響データ73iを「筋肉配置データ77i」な
どのように記載することがある。筋肉配置データ77は
データ記憶部102に記憶されている。 〔顔モデルの形状を制御するためのデータ〕顔モデル3
Mの各エッジE、各ノードN、および各構成頂点Vは上
に述べたように構成されており、各エッジEに変形量を
与えることによって各ノードNおよび各構成頂点Vを変
位させて顔モデル3Mを動作させる(変形する)ことが
できる。しかし、アニメーションの生成のたびにすべて
のエッジEに対して変形量を与えるのは煩わしい。そこ
で、所定の動作ごとに各エッジEの変形量が予め定義さ
れている。
【0072】図16は動作別筋肉データ71aの例を示
す図、図17は音韻を発した形状に変化したときの顔モ
デル3Mの例を示す図、図18は辞書データ79の例を
示す図である。
【0073】図16に示す動作別筋肉データ71aは、
顔モデル3Mが各音韻を発する動作を行った際の各エッ
ジEの変形量を表している。例えば、この動作別筋肉デ
ータ71aに基づいて「あ」、「え」、「い」、
「お」、「う」の音を発する動作を顔モデル3Mに行わ
せると、それぞれ、図17(a)〜(e)に示すような
形状になる。図16の動作別筋肉データ71aは、図3
のデータ記憶部102に記憶されている。その他、「笑
う」、「怒る」、「あくびをする」、または「瞬きをす
る」などの動作を行ったときの形状について定義してお
いてもよい。
【0074】動作指示データ取得部103は、顔モデル
3Mに行わせる動作を指示する動作指示データ70を取
得する。例えば、顔モデル3Mに言葉を喋らせる場合
は、キーボード13またはマイク15などから入力され
たテキストデータまたは音声データに基づいて、次のよ
うに動作指示データ70を取得する。
【0075】テキストデータが入力された場合は、その
テキストデータに含まれる言葉を音韻ごとに分解する。
日本語の「こんばんは」という言葉の場合は、ローマ字
化されて「konbanwa」の音韻に分解される。
【0076】英語のように表音文字を用いない場合すな
わちスペル中の1文字と音とが一対一に対応していない
場合は、テキストデータの言葉を発音記号に変換するこ
とによって音韻を取得する。すなわち、図18に示す辞
書データ79に基づいて英単語を発音記号(音韻)に変
換する。例えば「good」という英単語は、「gu
d」という音韻に変換される。この辞書データ79は、
データ記憶部102に記憶されている。
【0077】音声データが入力された場合は、音声デー
タから直接音韻を抽出する。または、音声データをテキ
ストデータに変換し、上述のように辞書データ79を用
いるなどして音韻を取得するようにしてもよい。このよ
うにして取得された各音韻が、動作指示データ70とし
て用いられる。 〔複数のデータの準備および選択〕図19は動作別筋肉
データ71bの例を示す図、図20は大げさに音韻を発
したときの顔モデル3Mの例を示す図、図21はノード
データ72bの例を示す図、図22はエッジデータ74
bの例を示す図、図23はノード影響データ73bの例
を示す図である。
【0078】上述のように、各エッジEを変形させてノ
ードNを変位させ、これによって影響配下にある構成頂
点Vの位置を変えることによって、顔モデル3Mを変形
させることができる。さらに、本アニメーション生成装
置1は、同じ音韻を発する場合であっても状況に応じて
顔モデル3Mが異なる形状に変形するように、次のよう
なデータがデータ記憶部102に記憶されている。
【0079】すなわち、データ記憶部102には、図1
6に示す動作別筋肉データ71aのほか、これと同じ役
割を果たす複数の動作別筋肉データ71が記憶されてい
る。そのうちの1つとして、例えば、図19に示す動作
別筋肉データ71bが記憶されている。動作別筋肉デー
タ71a、71bを比較すると、各音韻に対応するエッ
ジEの変形量の組み合わせが異なることが分かる。
【0080】動作別筋肉データ71aに基づいて顔モデ
ル3Mに「あ〜お」音を発音させると図17のように自
然な(標準的な)形状になるが、動作別筋肉データ71
bに基づいて発音させると図20のように大げさな形状
になる。つまり、同じ音韻を発する場合であっても、使
用する動作別筋肉データ71の内容によって顔モデル3
Mに異なる表情をさせることができる。
【0081】同様に、ノードデータ72a、エッジデー
タ74a、およびノード影響データ73a(図10、図
12、図15参照)とそれぞれ同じ役割を果たす複数の
ノードデータ72、エッジデータ74、およびノード影
響データ73が記憶されている。例えば、図21〜図2
3に示すノードデータ72b、エッジデータ74b、お
よびノード影響データ73bが記憶されている。
【0082】ノードデータ72a、72bは、各ノード
Nの初期位置を定義する構成頂点Vおよび各構成頂点V
の影響率がそれぞれ互いに異なる。エッジデータ74
a、74bは、各エッジEを定義する両端点(ノード
N)は互いに同じであるが、伸縮係数Iおよび両端点の
ウエイトwがそれぞれ互いに異なる。ノード影響データ
73a、73bは、各ノードNの変位によって影響が及
ぶ構成頂点Vなどがそれぞれ互いに異なる。
【0083】筋肉配置データ77a(ノードデータ72
a、エッジデータ74a、およびノード影響データ73
a)に基づいて顔モデル3Mを変形すると図17に示す
ように標準的な形状になるが、筋肉配置データ77bに
基づいて顔モデル3Mを変形すると図20に示すような
大げさな形状になる。
【0084】このように、どの動作別筋肉データ71ま
たは筋肉配置データ77を用いるかによって、同一の動
作であっても顔モデル3Mをそれぞれ異なった形状に変
形することができる。なお、動作別筋肉データ71aお
よび筋肉配置データ77aはデフォルト値であり、デー
タの指定がない場合に用いられる。
【0085】その他、眠そうに動作するパターン、嬉し
そうに動作するパターン、または漫画のキャラクタのよ
うに動作するパターンなど種々のパターンについて、動
作別筋肉データ71または筋肉配置データ77を準備し
ておいてもよい。
【0086】図3に戻って、データ選択部106は、上
記の複数のパターンのうちのいずれのパターンのデータ
を用いるのかを選択する。例えば、動作を大げさに表し
たい場合は、動作別筋肉データ71bが選択される。ま
たは、筋肉配置データ77bが選択される。
【0087】データの選択は、ユーザが行うようにして
もよいし、自動的に行うようにしてもよい。例えば、ア
ニメーションの編集を行う場合は、ユーザが指定した表
情または動作に対応するデータを選択するようにしても
よい。テレビゲームのアニメーションを生成する場合
は、ゲームのシーンまたは現在の時刻などに合ったデー
タを選択するようにしてもよい。入力された音声に基づ
いてリアルタイムにアニメーションを生成するのであれ
ば、声のトーンまたは大きさなどに基づいてユーザの感
情を読み取るなどして適当なデータを選択するようにし
てもよい。入力された文章(動作指示データ70)の途
中で状況が変化する場合は、それに合わせてデータを選
択し直すなどしてもよい。
【0088】次に、動作指示データ70およびデータ選
択部106によって選択された各データに基づいて顔モ
デル3Mを変形し、アニメーションを実行する処理につ
いて説明する。 〔顔画像の制御(アニメーションの実行)〕図24はタ
イムテーブルの例を示す図、図25は音韻を示す台形の
例を説明する図である。
【0089】図3の顔画像制御部104は、時間配分部
162、形状取得部163、および動画像生成部164
などによって構成され、動作指示データ70などに基づ
いて顔画像HFを制御し、アニメーションを実行する。
【0090】時間配分部162は、動作指示データ70
に基づいて顔モデル3Mを変形させる際の時間的な配分
に関する設定を行う。例えば、顔モデル3Mに「goo
dbye」という言葉つまり「gud bai」という
音韻を発音させる場合は、図24に示すようなタイムテ
ーブルを生成する。
【0091】図24において、1つの音韻は1つの台形
によって表され、時間軸(横軸)に沿って順番に並べら
れる。各台形の上辺の長さは、図25に示すように、そ
の音韻を発している形状を保つ継続時間T2を意味す
る。継続時間T2は、母音よりも子音のほうが短く、母
音が0.4秒、子音が0.1秒程度である。立ち上がり
時間T1は、ある形状(例えば無表情の形状)から音韻
を発した形状に変化するまでの時間を意味する。終息時
間T3は、音韻を発した形状が無表情の形状に戻るまで
の時間を意味する。立ち上がり時間T1および終息時間
T3は、ともに極めて短い時間であり、例えば0.1秒
以下である。以下、説明の簡単のため、T1=T3とす
る。
【0092】隣り合う2つの台形は、前の台形の形状が
終息したとき(time=tb)に後の台形の形状の立
ち上がりが完了するように配置される。つまり、後の音
韻は、tbよりも前の音韻の終息時間T3だけ前に立ち
上がり始めるように配置される(time=ta)。た
だし、2つの台形が単語と単語の変わり目(例えば
「d」と「b」との境目)にまたがる場合は、前の台形
の形状が終息してから後の台形が立ち上がり始めるよう
に配置される。
【0093】形状取得部163は、時間配分部162に
よって得られたタイムテーブルに基づいて時刻ごとの顔
モデル3Mの形状すなわち各構成頂点Vの位置を算出す
る。例えば、1秒当たり30フレームのアニメーション
を生成する場合であれば、1/30秒ごとの各構成頂点
Vの位置を算出する。なお、各構成頂点Vの算出に当た
っては、データ選択部106によって選択された動作別
筋肉データ71および筋肉配置データ77が用いられ
る。
【0094】図24において、各音韻を発した状態の間
すなわち台形の上辺の時間帯における各エッジEの変形
量は、動作別筋肉データ71を参照して得られる。そし
て、式(5)および式(6)などに基づいて各構成頂点
Vが算出される。
【0095】ある音韻から次の音韻に変化する時間帯す
なわち隣り合う2つの音韻の立ち上がり時間T1と終息
時間T3との重なる時間帯(例えば、ta〜tbの間)
における各構成頂点Vの位置は、次の式(7)によって
補間して求められる。なお、式(7)は、顔モデル3M
の形状が簡単に求められるように、直線近似としてい
る。
【0096】
【数8】
【0097】動画像生成部164は、形状取得部163
によって得られた顔モデル3Mの各構成頂点Vの位置を
タイムテーブルに従って1フレームごと(例えば1/3
0秒ごと)に変化させながら所定の方向から2次元上に
投影することによって顔画像HFを動作させ、リップシ
ンクアニメーションを生成する。
【0098】音声出力部105は、動作指示データ70
の言葉を音声化するなどして、リップシンクアニメーシ
ョンと同期して音声を出力する。例えば、所定の音韻が
立ち上がるときに顔画像制御部104から発せられる信
号(トリガー)に合わせて順次音声を出力する。テキス
トデータを音声化する方法として、公知の音声合成技術
が用いられる。
【0099】次に、言葉を喋る顔画像HFのアニメーシ
ョンを生成する処理の流れを、フローチャートを参照し
て説明する。顔画像HFは、同じ言葉を喋る場合であっ
ても状況に応じて異なる表情をする。このような顔画像
HFのアニメーションを生成する方法として、筋肉の変
形量の設定(動作別筋肉データ71)を変える方法と筋
肉の配置などに関する設定(筋肉配置データ77)を変
える方法とがある。以下、これら2通りの方法をそれぞ
れ「第一の方法」、「第二の方法」と記載することがあ
る。
【0100】図26は第一の方法に基づくアニメーショ
ンを生成する処理の流れを説明するフローチャート、図
27は第二の方法に基づくアニメーションを生成する処
理の流れを説明するフローチャートである。
【0101】第一の方法に基づく場合は、図26に示す
ように、まず、顔モデル3Mの筋肉などの設定を行う。
すなわち、アニメーションとして再現する人物(例えば
アニメーション生成装置1のユーザ)の顔モデル3Mを
生成し、この顔モデル3Mの筋肉(エッジE)の配置の
設定を行い(#11)、皮膚すなわち各構成頂点Vへの
影響範囲の設定を行う(#12)。ただし、筋肉および
皮膚などを標準的な設定にするために、筋肉の配置など
の設定を筋肉配置データ77aのようにしておく。標準
のパターンまたは大げさなパターンなど各パターンにつ
いての動作別筋肉データ71a、71b、…を設定する
(#13)。既に顔モデル3Mを生成し各設定を行って
いる場合は、ステップ#11〜#13を省略し、ステッ
プ#14から処理を開始してもよい。
【0102】顔画像HFに喋らせるテキストデータを取
得して音韻に変換し(#14)、各音韻の時間配置を行
ってタイムテーブルを作成する(#15)。エッジEに
与える動作別筋肉データ71を状況に応じて選択する
(#16)。例えば、入力された音声が通常よりも大き
い場合は、大げさな形状のための動作別筋肉データ71
bを選択する。
【0103】選択された動作別筋肉データ71に基づい
て各音韻に対応する各エッジEの変形量を得て各構成頂
点Vの位置を決め、顔モデル3Mの形状を取得する(#
17)。ある音韻から次の音韻に移る時間帯の形状につ
いては、式(7)に基づいて補間する(#18)。
【0104】そして、ステップ#17、#18によって
得られた顔モデル3Mの形状を時間ごとに変化させ、所
定の方向から2次元面上に投影することによって顔画像
HFのアニメーションを実行する(#19)。
【0105】第二の方法に基づく場合は、図27に示す
ように、顔モデル3Mを生成し、各パターンについての
エッジEの配置および各構成頂点Vへの影響範囲を設定
する(#31、32)。すなわち、筋肉配置データ77
として標準のパターンまたは大げさなパターンなど複数
のノードデータ77a、77b、…を設定する。音韻ご
との筋肉の変形量(動作別筋肉データ71a)を設定す
る(#33)。図26の場合と同様に、ステップ#31
〜#33を省略してステップ#14から処理を開始する
ようにしてもよい。
【0106】取得したテキストデータに含まれる各音韻
に対応する各エッジEの変形量を取得し、時間配置を行
う(#34、#35)。複数の筋肉配置データ77の中
からいずれのデータを用いるのかを状況に応じて選択す
る(#36)。
【0107】選択された筋肉配置データ77bに基づい
て顔モデル3Mの形状を取得し(#37、#38)、顔
画像HFのアニメーションを実行する(#39)。第一
の方法または第二の方法のいずれに基づいてアニメーシ
ョンを生成するかは、アニメーションの利用目的などに
よってユーザが任意に選択できるようにしてもよいし、
シーンなどに応じて自動的に選択するようにしてもよ
い。
【0108】本実施形態によると、同一の動作指示に対
して状況に応じてそれぞれ異なった形状に顔モデル3M
を変形することができる。これにより、バリエーション
に富んだアニメーションを実現することができる。ま
た、複数のパターンの筋肉配置データ77を設定してお
くことによって、1つのパターンの筋肉設定では表現が
困難な動作を3次元モデルに行わせることができる。
【0109】本実施形態では、ユーザの3次元計測デー
タに標準モデルをフィッティングすることにより顔モデ
ルを取得したが、ユーザの2次元画像に標準モデルをフ
ィッティングして顔モデルを取得してもよい。または、
種々のCG(Computer Graphics )プログラムを用いて
顔モデルを作成してもよい。
【0110】本実施形態では、人物の顔を対象にアニメ
ーションを生成したが、他のキャラクタを対象にしても
よい。例えば、犬または猫などの動物、架空の動物、ロ
ボットなどを対象にしてもよい。また、人物または動物
の全身を対象にアニメーションを生成してもよい。
【0111】
【発明の効果】本発明によると、同一の動作に対して状
況に応じてそれぞれ異なった形状に3次元モデルを変形
することができる。
【図面の簡単な説明】
【図1】本発明に係る3次元モデルの変形方法を適用し
たアニメーション生成装置の構成の例を示す図である。
【図2】磁気記憶装置に記憶されるプログラムおよびデ
ータの例を示す図である。
【図3】アニメーション生成装置の機能的な構成を示す
図である。
【図4】3次元形状モデルの生成の処理の流れを説明す
るフローチャートである。
【図5】標準モデルの例を示す図である。
【図6】変形処理の流れを説明するフローチャートであ
る。
【図7】標準モデルの面Sと3次元計測データの点Pと
を模式的に示す図である。
【図8】標準モデルの異常変形を防ぐための仮想バネを
説明するための図である。
【図9】顔モデルの構成の例を示す図である。
【図10】ノードデータの例を示す図である。
【図11】ノードとその位置を定義する構成頂点との関
係を示す図である。
【図12】エッジデータの例を示す図である。
【図13】エッジの構成を説明するための図である。
【図14】あるノードの変位による影響が及ぶ範囲の例
を説明する図である。
【図15】ノード影響データの例を示す図である。
【図16】動作別筋肉データの例を示す図である。
【図17】音韻を発した形状に変化したときの顔モデル
の例を示す図である。
【図18】辞書データの例を示す図である。
【図19】動作別筋肉データの例を示す図である。
【図20】大げさに音韻を発したときの顔モデルの例を
示す図である。
【図21】ノードデータの例を示す図である。
【図22】エッジデータの例を示す図である。
【図23】ノード影響データの例を示す図である。
【図24】タイムテーブルの例を示す図である。
【図25】音韻を示す台形の例を説明する図である。
【図26】第一の方法に基づくアニメーションを生成す
る処理の流れを説明するフローチャートである。
【図27】第二の方法に基づくアニメーションを生成す
る処理の流れを説明するフローチャートである。
【符号の説明】
1 アニメーション生成装置 70 動作指示データ 71 動作別筋肉データ 72 ノードデータ 73 ノード影響データ 74 エッジデータ 103 動作指示データ取得部 104 顔画像制御部 106 データ選択部 3M 顔モデル(3次元モデル) E エッジ(筋肉) V 構成頂点(構成点)

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】3次元の構成点群によって皮膚が表現さ
    れ、皮膚の内部に配置された1または複数の筋肉を伸縮
    させることによって1つまたは複数の構成点が変位する
    ように構成された3次元モデルを変形する3次元モデル
    変形方法であって、 同一の動作指示に対して筋肉の伸縮に基づいて構成点の
    変位がどのようになるかについての複数種類の情報を記
    憶しておき、 前記複数種類の情報の中からいずれか1つの情報を選択
    し、 選択した情報に基づいて各構成点を変位させる、 ことを特徴とする3次元モデル変形方法。
  2. 【請求項2】3次元の構成点群によって皮膚が表現さ
    れ、皮膚の内部に配置された1または複数の筋肉を伸縮
    させることによって1つまたは複数の構成点が変位する
    ように構成された3次元モデルを変形する3次元モデル
    変形方法であって、 動作の種類ごとに、3次元モデルが当該動作を行ったと
    きの形状になるような各筋肉の変形量を複数組記憶して
    おき、 3次元モデルに対する動作指示データを取得し、 取得した動作指示データが示す動作に対応する複数組の
    各筋肉の変形量の中からいずれか1組を選択し、 選択した1組の各筋肉の変形量に基づいて各構成点を変
    位させる、 ことを特徴とする3次元モデル変形方法。
  3. 【請求項3】3次元の構成点群によって皮膚が表現さ
    れ、皮膚の内部に配置された1または複数の筋肉を伸縮
    させることによって1つまたは複数の構成点が変位する
    ように構成された3次元モデルを変形する3次元モデル
    変形方法であって、 各筋肉の端点の変位によって各構成点に及ぼされる影響
    を示す情報を複数記憶しておき、 前記複数の情報の中からいずれか1つの情報を選択し、 選択した情報に基づいて各構成点を変位させる、 ことを特徴とする3次元モデル変形方法。
  4. 【請求項4】3次元の構成点群によって皮膚が表現さ
    れ、皮膚の内部に配置された1または複数の筋肉を伸縮
    させることによって1つまたは複数の構成点が変位する
    ように構成された3次元モデルを変形するためのコンピ
    ュータに用いられるコンピュータプログラムであって、 同一の動作指示に対して筋肉の伸縮に基づいて構成点の
    変位がどのようになるかについての複数種類の情報の中
    からいずれか1つの情報を選択する処理と、 選択した情報に基づいて各構成点を変位させる処理と、 をコンピュータに実行させるコンピュータプログラム。
  5. 【請求項5】請求項4記載のコンピュータプログラムが
    記録されたコンピュータ読み取り可能な記録媒体。
JP2001392154A 2001-12-25 2001-12-25 3次元モデル変形方法およびコンピュータプログラム Pending JP2003196677A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001392154A JP2003196677A (ja) 2001-12-25 2001-12-25 3次元モデル変形方法およびコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001392154A JP2003196677A (ja) 2001-12-25 2001-12-25 3次元モデル変形方法およびコンピュータプログラム

Publications (1)

Publication Number Publication Date
JP2003196677A true JP2003196677A (ja) 2003-07-11

Family

ID=27599554

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001392154A Pending JP2003196677A (ja) 2001-12-25 2001-12-25 3次元モデル変形方法およびコンピュータプログラム

Country Status (1)

Country Link
JP (1) JP2003196677A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100900823B1 (ko) 2006-12-02 2009-06-04 한국전자통신연구원 캐릭터 애니메이션 시 피부의 주름 실시간 표현 방법 및장치
KR20130135020A (ko) * 2012-05-31 2013-12-10 삼성전자주식회사 인체 이미지 분석 장치 및 방법
CN109919121A (zh) * 2019-03-15 2019-06-21 百度在线网络技术(北京)有限公司 一种人体模型的投影方法、装置、电子设备及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100900823B1 (ko) 2006-12-02 2009-06-04 한국전자통신연구원 캐릭터 애니메이션 시 피부의 주름 실시간 표현 방법 및장치
KR20130135020A (ko) * 2012-05-31 2013-12-10 삼성전자주식회사 인체 이미지 분석 장치 및 방법
KR101929498B1 (ko) 2012-05-31 2018-12-14 삼성전자주식회사 인체 이미지 분석 장치 및 방법
CN109919121A (zh) * 2019-03-15 2019-06-21 百度在线网络技术(北京)有限公司 一种人体模型的投影方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
EP1354298B1 (en) Character animation system
Bailly et al. Audiovisual speech synthesis
JP5344358B2 (ja) 演技から作り出される顔アニメーション
US20020024519A1 (en) System and method for producing three-dimensional moving picture authoring tool supporting synthesis of motion, facial expression, lip synchronizing and lip synchronized voice of three-dimensional character
CN113781610B (zh) 一种虚拟人脸的生成方法
Xu et al. A practical and configurable lip sync method for games
KR102509666B1 (ko) 텍스트 및 오디오 기반 실시간 얼굴 재연
KR20120130627A (ko) 아바타를 이용한 애니메이션 생성 장치 및 방법
GB2516965A (en) Synthetic audiovisual storyteller
Wan et al. Photo-realistic expressive text to talking head synthesis.
Kalberer et al. Face animation based on observed 3d speech dynamics
CN110189404B (zh) 基于真实人脸图像的虚拟面部建模方法
Ma et al. Accurate automatic visible speech synthesis of arbitrary 3D models based on concatenation of diviseme motion capture data
KR102152598B1 (ko) 이미지 편집 애플리케이션 제공 장치 및 상기 장치에 의해 수행되는 이미지 내 얼굴 변형 방법
Kalberer et al. Realistic face animation for speech
KR100813034B1 (ko) 캐릭터 형성방법
US20040179043A1 (en) Method and system for animating a figure in three dimensions
JP2003058908A (ja) 顔画像制御方法および装置、コンピュータプログラム、および記録媒体
Brooke et al. Two-and three-dimensional audio-visual speech synthesis
JP2003196677A (ja) 3次元モデル変形方法およびコンピュータプログラム
JP2007299300A (ja) アニメーション作成装置
JP2003141564A (ja) アニメーション生成装置およびアニメーション生成方法
Ma et al. Animating visible speech and facial expressions
JP2003196678A (ja) 3次元モデルシステムおよびコンピュータプログラム
Yotsukura et al. Model-based talking face synthesis for anthropomorphic spoken dialog agent system

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20050613

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20050704

A072 Dismissal of procedure

Effective date: 20050816

Free format text: JAPANESE INTERMEDIATE CODE: A072

A072 Dismissal of procedure

Free format text: JAPANESE INTERMEDIATE CODE: A072

Effective date: 20050913