【文献】
梅田修一、外6名,インバースキネマティクスに基づく手話CGキャラクタの制御技法に関する検討,映像情報メディア学会技術報告 Vol.39 No.7,日本,2015年 2月23日,pp.5-8
(58)【調査した分野】(Int.Cl.,DB名)
【背景技術】
【0002】
従来、CGキャラクタを人間のように動作させるリアルタイムレンダリングの技術では、部品となる動きを予めコンピュータに保持しておき、これらの部品の動きを組み合わせて接続することで、一連の動きを合成する手法が一般的である。
【0003】
部品となる動き(手話CGでは単語を部品とすることが多いので、ここでは単に「単語」という。)は、専用のコンピュータソフトを用いてアニメーションとして作成される。また、現実の人間の正確な動きを得るためには、光学式モーションキャプチャシステム等を利用した手法が用いられることが多い。
【0004】
しかしながら、作成された単語自体の動きが実際の動きに忠実であったとしても、単語を接続した一連の動きが不自然になることがある。これは多くの場合、単語の接続方式に起因する。
【0005】
人間を模したCGキャラクタは、複数の関節をもつ骨格を用いて再現されており、ある時点のCGキャラクタの姿勢は、この骨格に属する関節の回転角度で表される。従来使用されてきた単語の接続方式では、単純に関節回転角の数値を用いて補間することが多い。
【0006】
図7は、単語接続の概念を説明する図である。横軸は時間を示す。
図7に示すように、単語Aと単語Bとを接続する場合、単語Aの最後の関節回転角と単語Bの最初の関節回転角とを用いて、所定の計算により、接続部分の関節回転角の数値を求める。
【0007】
このような補間方法としては、例えば線形補間法及びモーションブレンド法が知られている。関節回転角を用いたいずれの補間方法も、関節回転角を直接計算するものであるが、末端に位置する部分(例えば手または足)がどのような動きをするかは考慮されていない。
【0008】
そこで、末端部分の動きを考慮したIK(Inverse Kinematics:インバースキネマティクス)の技術が用いられる。IKの技術は、関節を複数持つ人間の動きを自然な動きとするための重要な情報が関節回転角でなく、末端部分の手または足の位置であるとした考えに基づくものである。
【0009】
例えば、自然な動きが重要な3Dキャラクタアニメーションでは、IKの技術が用いられることが多い。IKの技術を用いることにより、例えばCGキャラクタの手を、アニメータである制作者が意図するように動かすことができる。
【0010】
従来、IKの技術は、主に手動でアニメーションを付けるために用いられていた。なぜならば、IKの計算は、関節回転角の変化する自由度があまりにも高いため、動きが破綻することがあるからである。動きが破綻すると、関節が不自然に回転したり、あり得ない速度のアニメーションが付いたりする。
【0011】
手動でアニメーションを付ける場合には、動きが破綻したとしても、破綻が起きないように再調整を繰り返すことが可能である。しかし、リアルタイムに動作するアニメーションが必要な場合には、手動の調整によって破綻を回避できないため、結果としてIKの利点を活用できない。
【0012】
この問題を解決するために、動きの破綻を回避するための手法が提案されている(例えば、非特許文献1を参照)。この手法は、IKの技術を用いるものであるが、一般的なオイラー角ではなくクォータニオンを用いて関節回転角を計算する。また、部品のモーションには、組み合わせても動きの破綻を発生させる可能性の少ないモーションのみを使用する。これにより、末端部分の位置の自由度を損ねることなく、動きの破綻を回避できる。
【発明を実施するための形態】
【0023】
以下、本発明を実施するための形態について図面を用いて詳細に説明する。本発明は、IK化した2つの単語を接続する際に、xyz座標で表した手の位置を線形補間し、平滑化することを特徴とする。
【0024】
この線形補間の処理は、日本語テキストをIK化した後に手の位置座標を計算する処理であり、関節回転角の値を線形補間する従来の処理とは異なる。また、平滑化の処理としては、例えば移動平均処理を採用し、各フレームの手の位置をスムーズに変化させることができる。これらの処理を自動で行うことができるから、手の描く軌跡をスムーズで自然な形状とすることができ、動きの自然な手話CGをリアルタイムに生成することが可能となる。
【0025】
〔手話CG生成装置〕
まず、本発明の実施形態による手話CG生成装置について説明する。
図1は、本発明の実施形態による手話CG生成装置の構成例を示すブロック図である。この手話CG生成装置1は、IK化部10、線形補間部11及び平滑化部12を備えている。
【0026】
IK化部10は、当該手話CG生成装置1が生成する手話CGデータに対応する日本語テキストを入力し、日本語テキストを、統計翻訳等の手法を用いて複数の単語(手話単語)に変換する。変換された複数の単語は、日本語テキストに対応する単語を時系列に並べたものである。例えば、日本語テキストが「明日は雨でしょう」の場合、この日本語テキストは、複数の単語「明日は」「雨」「でしょう」に変換される。
【0027】
IK化部10は、日本語テキストに対応して時系列に並べた単語毎に、当該単語に対応する動きが定義されたIKデータを生成する。そして、IK化部10は、単語毎のIKデータを線形補間部11に出力する。
【0028】
前述のとおり、IKデータは、末端部の動きを重要視した、末端部の位置等が設定されたデータであり、関節回転角による制御ではなく、末端部の位置座標による制御を可能にするデータである。IKの技術では、部分的に末端部から起点方向(腰)へ向けて計算が進められる。例えば、手の位置を決めてから、肘の関節回転角が計算される。このような順番で処理を行うIKの技術が用いられるのは、人間の動作において、肘の関節回転角よりも手の位置の方が重要な意味を持つ場合が多いからである。
【0029】
図2は、IK化後の手の軌跡を説明する図である。
図2において、黒点は、フレーム毎の手の位置を示し、黒点を結ぶ曲線は、手の描く軌跡を示す。矢印は、手の動く向きを示す。単語A,Bは、日本語テキストに対応して時系列に並べた複数の単語のうち、前後する2つの単語である。
【0030】
図2の左側に示す黒点を結ぶ曲線は、単語AのIKデータに基づいた手の軌跡であり、右側に示す黒点を結ぶ曲線は、単語BのIKデータに基づいた手の軌跡である。単語Aの手の描く軌跡のうち、所定位置に終点が定義され、単語Bの手の描く軌跡のうち、所定位置に始点が定義される。
【0031】
これらの終点及び始点は、単語毎に固定して設定され、接続する2つの単語A,Bの組み合わせに応じて変更されることはない。例えば、単語A及び単語Bをこの順番に接続する場合の単語Aの終点は、単語A及び単語Xをこの順番に接続する場合の単語Aの終点と同じである。また、単語A及び単語Bをこの順番に接続する場合の単語Bの始点は、単語Y及び単語Bをこの順番に接続する場合の単語Bの始点と同じである。
【0032】
図2においては、単語Aの終点は、手の描く軌跡において動きが終わる付近の所定位置に予め設定され、単語Bの始点は、手の描く軌跡において動きが始まる付近の所定位置に予め設定される。終点は、後述する平滑化の処理を開始する平滑化開始点であり、始点は、後述する平滑化の処理を終了する平滑化終了点である。終点及び始点の設定の詳細については、後述する。
【0033】
図1に戻って、線形補間部11は、IK化部10から、日本語テキストに対応する単語毎のIKデータを入力する。そして、線形補間部11は、前後する2つの単語のうち先の単語の予め設定された終点に基づいて、最終端点を設定し、後の単語の予め設定された始点に基づいて、開始端点を設定する。線形補間部11は、先の単語における最終端点の位置座標及び後の単語における開始端点の位置座標に基づいて、先の単語と後の単語との間を線形補間する。線形補間部11は、線形補間後の日本語テキストに対応する手の描く軌跡を表すデータを手話CGデータとして生成し、平滑化部12に出力する。
【0034】
ここで、最終端点は、単語における手の描く軌跡を表す全てのサンプリング点のうち、その動きが終わる最後のサンプリング点である。また、開始端点は、単語における手の描く軌跡を表す全てのサンプリング点のうち、その動きが始まる最初のサンプリング点である。
【0035】
具体的には、終点始点間フレーム数L及びマージンフレーム数Mが予め設定されているものとする。終点始点間フレーム数Lは、先の単語の終点から後の単語の始点までの間の時間間隔を表すパラメータである。マージンフレーム数Mは、先の単語の終点から最終端点までの間の時間間隔を表すパラメータであり、後の単語の開始端点から始点までの間の時間間隔を表すパラメータでもある。L,Mは正の整数である。
【0036】
線形補間部11は、先の単語の終点から、マージンフレーム数Mだけ後の(進めた)サンプリング点を最終端点に設定すると共に、後の単語の始点から、マージンフレーム数Mだけ前の(遡った)サンプリング点を開始端点に設定する。そして、線形補間部11は、マージンフレーム数Mを2倍した乗算結果2Mを求め、終点始点間フレーム数Lから乗算結果2Mを減算し、接続フレーム数C(=L−2M)を求める。そして、線形補間部11は、接続フレーム数Cから1を減算し、接続点数CC(=C−1)を求める。C,CCは正の整数である。
【0037】
接続フレーム数Cは、先の単語の最終端点から後の単語の開始端点までの間の時間間隔を表すパラメータであり、接続点数CCは、その間のサンプリング点の数(最終端点及び開始端点を含まないサンプリング点の数)である。予め設定された終点始点間フレーム数L及びマージンフレーム数Mから、接続フレーム数C及び接続点数CCが決定され、先の単語(の最終端点)と後の単語(の開始端点)との間の時間間隔が決定される。
【0038】
線形補間部11は、先の単語における最終端点の位置座標及び後の単語における開始端点の位置座標に基づいて、先の単語の最終端点と後の単語の開始端点と間を線形補間し、接続点数CCのサンプリング点の位置座標を算出する。
【0039】
図3は、線形補間後の手の軌跡を説明する図である。終点始点間フレーム数L=9、マージンフレーム数M=3とすると、接続フレーム数C(=L−2M)は3となり、接続点数CC(=C−1)は2となる。最終端点m1の位置は、単語Aの終点からマージンフレーム数M=3だけ進めたサンプリング点に設定され、当該位置が単語Aにおける手の描く軌跡の最終位置となる。また、開始端点m2の位置は、単語Bの始点からマージンフレーム数M=3だけ遡ったサンプリング点に設定され、当該位置が単語Bにおける手の描く軌跡の開始位置となる。
【0040】
線形補間部11により、単語Aの最終端点m1の位置座標及び単語Bの開始端点m2の位置座標に基づいて、単語Aの最終端点m1と単語Bの開始端点m2との間が線形補間され、接続点数CC=2のサンプリング点a,bの位置座標が算出される。
【0041】
最終端点m1及びサンプリング点aの間隔、サンプリング点a,bの間隔、並びにサンプリング点b及び開始端点m2の間隔は、同じである。接続点数CCは、単語A,Bを接続する時間を示す数値であり、終点始点間フレーム数L及びマージンフレーム数Mから導かれる。
図3の例では、接続点数CC=2であり、単語A,B間を接続フレーム数C(=CC+1)=3で接続することを示している。
【0042】
このように、線形補間部11により、単語間が線形補間され、単語間の手の描く軌跡を表したデータが生成される。そして、単語毎の手の描く軌跡を表したデータ、及び単語間の手の描く軌跡を表したデータが、線形補間後の日本語テキストに対応する手の描く軌跡を表す手話CGデータ(
図3の例では、サンプリング点a,bの位置座標を含むデータ)として、平滑化部12に出力される。
【0043】
尚、線形補間部11は、先の単語におけるサンプリング点の数が所定数よりも少ない場合、最終端点に所定数のサンプリング点の位置座標に基づいて線形補間を行い、最終端点の先に所定数のサンプリング点を追加するようにしてもよい。後の単語の開始端点についても同様である。これにより、単語のサンプリング点を増加して最終端点の位置を延長することができ、後述の平滑化部12において、2つの単語の接続部分を、よりスムーズで自然な形状とすることができる。
【0044】
図1に戻って、平滑化部12は、線形補間部11から、線形補間後の日本語テキストに対応する手の描く軌跡を表した手話CGデータを入力する。そして、平滑化部12は、日本語テキストに対応する手の描く軌跡がスムーズで自然な形状となるように、入力した手話CGデータを平滑化する。平滑化部12は、予め設定された回数の平滑化処理を行い、平滑化後の手話CGデータを出力する。
【0045】
図6は、平滑化部12の処理例を示すフローチャートである。移動平均フレーム数N及び平滑化(移動平均)処理数Pが予め設定されているものとする。N,Pは正の整数である。
【0046】
平滑化部12は、終点である平滑化開始点から始点である平滑化終了点までの間の軌跡上の各サンプリング点について順番に、当該サンプリング点のフレームを中心とした移動平均フレーム数Nの位置座標に基づいて、移動平均の計算を行う(ステップS601)。そして、平滑化部12は、当該サンプリング点の位置座標を更新する(ステップS602)。
【0047】
平滑化部12は、このような移動平均処理を、予め設定された移動平均処理数Pだけ行う(ステップS603)。平滑化部12は、移動平均処理の回数が移動平均処理数Pよりも少なく、処理が完了していない場合(ステップS603:N)、ステップS601へ移行する。一方、平滑化部12は、移動平均処理の回数が移動平均処理数Pに達した場合(ステップS603:Y)、処理を終了する。
【0048】
図4は、1回の移動平均処理後における手の軌跡を説明する図である。マージンフレーム数M=3及び移動平均フレーム数N=3とする。マージンフレーム数M=3のマージンに含まれるサンプリング点の数であるマージン点数MM(=M+1)は4となる。単語Aの終点側のマージンに含まれるサンプリング点は、終点、終点と最終端点m1との間の2つのサンプリング点、及び最終端点m1である。また、単語Bの始点側のマージンに含まれるサンプリング点は、開始端点m2、開始端点m2と始点との間の2つのサンプリング点、及び始点である。
【0049】
線形補間部11により、終点(平滑化開始点)からマージンフレーム数M=3のマージンだけ進めた軌跡上のサンプリング点が、単語Aの最終端点m1として設定される。また、始点(平滑化終了点)からマージンフレーム数M=3のマージンだけ遡った軌跡上のサンプリング点が、単語Bの開始端点m2として設定される。
【0050】
また、平滑化部12により、単語Aの終点から単語Bの始点までの間の軌跡上の各サンプリング点(白抜きの丸)について順番に、当該サンプリング点のフレーム位置座標を中心とした移動平均フレーム数N=3のフレームの位置座標に基づいて、移動平均の計算が行われ、当該サンプリング点の位置座標が更新される。これにより、1回の移動平均処理後のサンプリング点n1,n2,・・・,n10(黒点)における位置座標が得られる。
【0051】
例えば、軌跡上のサンプリング点bについて、当該サンプリング点bの位置座標、当該サンプリング点bよりも1つ手前のサンプリング点n5の位置座標(移動平均処理後の位置座標)、及び、当該サンプリング点bよりも1つ後の開始端点m2の位置座標に基づいて、移動平均の計算が行われる。これにより、サンプリング点bの位置座標が更新され、サンプリング点n6の位置座標が得られる。
【0052】
図5は、P回の移動平均処理後における手の軌跡を説明する図である。平滑化部12により、移動平均処理数Pの移動平均処理が行われ、P回の移動平均処理後のサンプリング点n1’,n2’,・・・,n10’(黒点)における位置座標が得られる。
【0053】
図5に示した手の軌跡と
図4に示した手の軌跡とを比較すると、
図5に示した手の軌跡の方がより平滑化されていることがわかる。
【0054】
このように、平滑化部12により、前後する2つの単語の位置座標のうちマージンフレーム数Mのマージンに応じた数の位置座標及び単語間の位置座標が平滑化されるから、2つの単語の接続部分について、手の描く軌跡がスムーズで自然な形状となる。したがって、日本語テキストに対応する手の描く軌跡が、全体としてスムーズで自然な形状となる。
【0055】
また、予め設定された移動平均処理数Pを変更することにより、手の描く軌跡のスムーズさの程度を調整することができる。例えば、予め設定された移動平均処理数Pとして、マージンフレーム数Mと同じ値を用いるようにしてもよい。
【0056】
以上のように、本発明の実施形態の手話CG生成装置1によれば、線形補間部11は、単語毎のIKデータを用いて、前後する2つの単語のうち先の単語の終点から所定マージンだけ後のサンプリング点を最終端点に設定し、後の単語の始点から所定マージンだけ前のサンプリング点を開始端点に設定する。そして、線形補間部11は、先の単語における最終端点の位置座標及び後の単語における開始端点の位置座標に基づいて、先の単語と後の単語との間を線形補間する。
【0057】
平滑化部12は、先の単語の終点から後の単語の始点までの間の軌跡上の各サンプリング点について順番に、移動平均の計算を行い、当該サンプリング点の位置座標を更新する。平滑化部12は、このような移動平均処理を所定の移動平均処理数Pだけ行う。
【0058】
つまり、手話CG生成装置1は、IK化した2つの単語を接続する際に、xyz座標で表した手の位置を線形補間し、平滑化することで、日本語テキストに対応する手話CGデータを生成するようにした。
【0059】
これにより、2つの単語の接続部分について、手の描く軌跡がスムーズで自然な形状となる。これらの線形補間処理及び平滑化処理を自動で行うようにしたから、手の描く軌跡がスムーズで自然な形状となるように、手話CGをリアルタイムに生成することが可能となる。また、移動平均処理数Pを変更することにより、手の描く軌跡のスムーズさの程度を調整し、所望の動きの手話CGを得ることができる。
【0060】
図8は、従来の関節回転角方式を用いて接続した場合の手の軌跡を説明する図である。従来の関節回転角方式は、関節回転角を直接計算して2つの単語を接続するものである。従来の関節回転角方式では、CGキャラクタの作り方に依存して手の位置が決定されることから、
図8に示すように、2つの単語を接続した結果が不定となる。つまり、従来の関節回転角方式では、必ずしも意図する通りの自然な軌跡を得ることができるとは限らない。
【0061】
これに対し、本発明の実施形態では、
図5に示したように、CGキャラクタの作り方に依存することなく、意図する通りの自然な軌跡を得ることができる。
【0062】
また、従来は、2つの単語を接続する際に、先の単語の終点及び後の単語の始点を、2つの単語の組み合わせ毎に、異なる位置に設定していた。
【0063】
これに対し、本発明の実施形態では、これらの終点及び始点は、単語毎に予め固定した位置に設定し、2つの単語の組み合わせ毎に設定する必要がないから、全自動化にて手話CGを生成する際に、処理負荷を低減することができる。
【0064】
また、従来は、2つの単語をスムーズに接続することを優先し、手の描く軌跡がスムーズな形状となるように処理を行うと、2つの単語の時間間隔が変化してしまい、適切な時間間隔とすることができなかった。すなわち、従来は、手の描く軌跡をスムーズな形状にすることはできるが、2つの単語の時間間隔を適切な時間とすることができず、結果として品質の高い手話CGを得ることができなかった。
【0065】
これに対し、本発明の実施形態では、線形補間部11は、予め設定された終点始点間フレーム数L及びマージンフレーム数Mから接続フレーム数C(=L−2M)を求める。そして、線形補間部11は、2つの単語間を線形補間し、接続フレーム数C(=L−2M)に対応する接続点数CC(=C−1)のサンプリング点の位置座標を算出する。本発明の実施形態では、2つの単語の時間間隔は、接続フレーム数Cにより決定される。
【0066】
これにより、予め設定された終点始点間フレーム数L及びマージンフレーム数Mを変更することで、接続フレーム数Cを変更することができ、2つの単語の時間間隔を変更することができる。つまり、手の描く軌跡をスムーズで自然な形状にすることができると共に、2つの単語の時間間隔を所望の時間間隔にすることができる。2つの単語の時間間隔を短くしたり、長くして間をとったりすることを、手の動きのスムーズさを気にすることなく自由に設定することができるため、人間の手話により近い手話CGを生成することができる。
【0067】
以上、実施形態を挙げて本発明を説明したが、本発明は前記実施形態に限定されるものではなく、その技術思想を逸脱しない範囲で種々変形可能である。例えば前記実施形態では、平滑化部12は、予め設定された移動平均処理数Pの移動平均処理を行い、手話CGデータを生成するようにした。
【0068】
これに対し、平滑化部12は、当該手話CG生成装置1が生成する手話CGデータにおける手の速度、加速度、前後する2つの単語の間の時間間隔、前後する2つの単語の間の軌跡の長さ等のパラメータに応じて、移動平均処理数Pを設定するようにしてもよい。これは、現実の人間の手が描く軌跡のスムーズさの度合いは、軌跡の長さや移動時間等に依存すると考えられるからである。適切な移動平均処理数Pを設定することにより、自動的に軌跡のスムーズさの変化を再現することができる。例えば、軌跡の長さをパラメータとして用いる場合、平滑化部12は、サンプリング点の座標位置に基づいて、軌跡の長さを算出し、軌跡の長さが長いほど、移動平均処理数Pの値が大きくなるように設定し、軌跡の長さが短いほど、移動平均処理数Pの値が小さくなるように設定する。
【0069】
また、平滑化部12は、予め設定された複数の移動平均処理数P1,P2,・・・のそれぞれについて、移動平均の計算を行い、位置座標から算出した加速度に基づいて、サンプリング点の位置座標を決定するようにしてもよい。具体的には、平滑化部12は、移動平均処理数P1,P2,・・・のそれぞれについて、移動平均の計算を行ない、移動平均処理数P1,P2,・・・に応じた、移動平均後のサンプリング点における位置座標のパターンを得る。そして、平滑化部12は、移動平均処理数P1,P2,・・・に応じたパターン毎に、移動平均後のサンプリング点の位置座標に基づいて加速度を算出し、加速度のピークが最小となるパターンを選択し、当該パターンにおけるサンプリング点の位置座標を採用する。
【0070】
また、前記実施形態では、平滑化部12による平滑化処理の例として移動平均処理を挙げて説明したが、本発明は、平滑化処理を移動平均処理に限定するものではなく、他の処理を用いるようにしてもよい。要するに、平滑化処理は、手の描く軌跡がスムーズな形状となるような処理であればよい。
【0071】
また、前記実施形態では、線形補間部11は、予め設定された終点始点間フレーム数L及びマージンフレーム数Mに応じて線形補間を行い、平滑化部12は、予め設定された移動平均フレーム数N及び移動平均処理数Pに応じて移動平均の計算を行うようにした。
【0072】
これに対し、線形補間部11は、前後する2つの単語における先の単語の終点と後の単語の始点との間の距離dの値が小さいほど、終点始点間フレーム数L及びマージンフレーム数Mの値が小さくなるように、終点始点間フレーム数L及びマージンフレーム数Mを設定するようにしてもよい。また、線形補間部11は、距離dの値が大きいほど、終点始点間フレーム数L及びマージンフレーム数Mの値が大きくなるように設定する。
【0073】
また同様に、平滑化部12は、距離dの値が小さいほど、移動平均フレーム数N及び移動平均処理数Pの値が小さくなるように、移動平均フレーム数N及び移動平均処理数Pを設定するようにしてもよい。また、平滑化部12は、距離dの値が大きいほど、移動平均フレーム数N及び移動平均処理数Pの値が大きくなるように設定する。これにより、距離dに応じた適切な終点始点間フレーム数L等のパラメータを設定することができるから、2つの単語の接続部分について、手の描く軌跡が、距離dに応じてスムーズな形状となる。
【0074】
尚、本発明の実施形態による手話CG生成装置1のハードウェア構成としては、通常のコンピュータを使用することができる。手話CG生成装置1は、CPU、RAM等の揮発性の記憶媒体、ROM等の不揮発性の記憶媒体、及びインターフェース等を備えたコンピュータによって構成される。手話CG生成装置1に備えたIK化部10、線形補間部11及び平滑化部12の各機能は、これらの機能を記述したプログラムをCPUに実行させることによりそれぞれ実現される。また、これらのプログラムは、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスク等)、光ディスク(CD−ROM、DVD等)、半導体メモリ等の記憶媒体に格納して頒布することもでき、ネットワークを介して送受信することもできる。