JP4155425B2 - Skeleton model intermediate frame shape derivation method, skeleton model shape deformation method, image generation apparatus, and information storage medium - Google Patents

Skeleton model intermediate frame shape derivation method, skeleton model shape deformation method, image generation apparatus, and information storage medium Download PDF

Info

Publication number
JP4155425B2
JP4155425B2 JP32127298A JP32127298A JP4155425B2 JP 4155425 B2 JP4155425 B2 JP 4155425B2 JP 32127298 A JP32127298 A JP 32127298A JP 32127298 A JP32127298 A JP 32127298A JP 4155425 B2 JP4155425 B2 JP 4155425B2
Authority
JP
Japan
Prior art keywords
skeleton model
arc
shape
node
vector
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.)
Expired - Fee Related
Application number
JP32127298A
Other languages
Japanese (ja)
Other versions
JP2000132709A5 (en
JP2000132709A (en
Inventor
兼太郎 山口
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.)
Namco Ltd
Bandai Namco Entertainment Inc
Original Assignee
Namco Ltd
Namco Bandai Games Inc
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 Namco Ltd, Namco Bandai Games Inc filed Critical Namco Ltd
Priority to JP32127298A priority Critical patent/JP4155425B2/en
Publication of JP2000132709A publication Critical patent/JP2000132709A/en
Publication of JP2000132709A5 publication Critical patent/JP2000132709A5/ja
Application granted granted Critical
Publication of JP4155425B2 publication Critical patent/JP4155425B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明はスケルトンモデルの中間フレーム形状導出方法、スケルトンモデルの形状変形方法、画像生成装置及び情報記憶媒体に関する。
【0002】
【背景技術及び発明が解決しようとする課題】
コンピュータグラフィックス等の分野においては、人や動物等のキャラクタのモーション(アニメーション)を作成する際に、次のような手順が多く用いられる。
【0003】
(D1)まず、図1(A)に示すようなスケルトンモデル10を用意する。なお、以下では、スケルトンモデル10の関節点12や端点14をノードと呼び、ノード同士を結ぶ骨16をアークと呼ぶことにする。
【0004】
(D2)次に、図1(B)に示すように、スケルトンモデル10を変形してスケルトンモデルのキーフレームの形状20、22を作成する。
【0005】
(D3)次に、図1(C)に示すように、キーフレームの形状20、22を補間して、スケルトンモデルの中間フレームの形状24を作成する。
【0006】
さて、一般的な作業手順においては、上記の工程(D2)のキーフレームの形状20、22は、ユーザー(広義には操作者)がマウスやキーボード等の入力装置を用いて手作業で作成する。一方、工程(D3)の中間フレームの形状24は、プログラムが自動的に生成する。
【0007】
また通常、工程(D3)の前に、ユーザーは、幾つかのノードに対して、ノードの固定あるいはパスカーブ(広義には移動経路)の指定を行う。
【0008】
ここでノード固定とは、補間すべき2つのキーフレーム間の全ての中間フレームにおいて、そのノードを同じ位置に保つよう指示することである。このようなノード固定は、例えば、キャラクタの肩を固定しながら腕を振らす場合等に必要になる。
【0009】
またパスカーブの指定とは、キーフレーム間で、そのノードが、指定されたパスカーブ上を動くよう指示することである。このパスカーブの指定は、単なる経路そのものの指定のみならず、キーフレーム間の各中間フレームにおける、そのノード(パスカーブが指定されたノード)の位置を指定することに相当する。このようなパスカーブの指定は、例えば、キャラクタの手や足の先を、ユーザーの所望する軌道上で移動させたい場合等に必要になる。
【0010】
図2(A)に示す例では、スケルトンモデル26は4個のノードN1,N2,N3,N4と3本のアークA12,A23,A34から構成されている。各アークA12,A23,A34には、各アークの捻りの向きを表すために、アーク法線ベクトルNV12,NV23,NV34が付されている。これらの各アーク法線ベクトルは大きさが1で、各アークに垂直になっている。
【0011】
この例では、スケルトンモデル26に対して、2つのキーフレームの形状が用意されている。更に、ノードN1は固定され、ノードN4にはパスカーブ28が指定されている。そして、このような指定がなされても、フレーム(キーフレーム)f0,f4の形状を滑らかに補間し、図2(B)に示すような中間フレームf1,f2,f3におけるスケルトンモデルの形状を生成することが望まれる。即ち、指定されたパスカーブ28上をノードN4が通りながらも、中間フレームにおけるスケルトンモデルの形状も滑らかに変化することが望まれる。
【0012】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、ノードの移動経路が指定されている場合にも、滑らかに補間されたスケルトンモデルの中間フレーム形状を得ることができるスケルトンモデルの中間フレーム形状導出方法、スケルトンモデルの形状変形方法、画像生成装置及び情報記憶媒体を提供することにある。
【0013】
【課題を解決するための手段】
上記課題を解決するために本発明は、スケルトンモデルのキーフレームの形状から、スケルトンモデルの中間フレームの形状を導出する中間フレーム形状導出方法であって、移動経路が指定されたスケルトンモデルのノードが、該移動経路上の所与の位置に引っ張られるように、スケルトンモデルの形状を変形する第1の変形ステップと、スケルトンモデルのアーク方向ベクトルの向きが、キーフレームでのアーク方向ベクトルに基づき得られる中割りアーク方向ベクトルの方向に近づくように、スケルトンモデルの形状を変形する第2の変形ステップと、スケルトンモデルのアーク法線ベクトルの向きが、キーフレームでのアーク法線ベクトルに基づき得られる中割りアーク法線ベクトルの方向に近づくように、スケルトンモデルの形状を変形する第3の変形ステップとを含むことを特徴とする。
【0014】
本発明では、第1の変形ステップにより、移動経路が指定されたノードが移動経路上の位置に引っ張られるようにスケルトンモデルが変形し、第2の変形ステップにより、アーク方向ベクトルの向きが中割りアーク方向ベクトルの方向に近づくようにスケルトンモデルが変形する。また、第3の変形ステップにより、アーク法線ベクトルの向きが中割りアーク法線ベクトルの方向に近づくようにスケルトンモデルが変形する。従って、本発明によれば、移動経路が指定されたノードを移動経路上の位置に近づけながら、アーク方向ベクトルやアーク法線ベクトルの向きを中割りアーク方向ベクトルや中割りアーク法線ベクトルの方向に近づけることが可能になる。この結果、ノードの移動経路の指定と、スケルトンモデルの中間フレーム形状の滑らかな補間とを両立できるようになる。
【0015】
なお、第1、第2、第3の変形ステップの順序は任意である。また、ノードの位置、アーク方向ベクトルの向き、アーク法線ベクトルの向きは、各々、移動経路上の位置、中割りアーク方向ベクトルの方向、中割りアーク法線ベクトルの方向に少なくとも近づけばよく、完全に一致する必要はない。また、中割りアーク方向ベクトル、中割りアーク法線ベクトルは、各々、キーフレームでのアーク方向ベクトル、アーク法線ベクトルを少なくとも用いて得ることができるものであればよい。
【0016】
また本発明は、スケルトンモデルを、スケルトンモデルのノードの座標を含む基本変数により表し、スケルトンモデルのアークの長さが所与の値となることを規定する式を含み前記基本変数を未知数とする基本式と、前記基本式を満たす解を一意的に特定するための評価式の少なくとも一方を、所与の情報に基づいて変化させ、基本式をほぼ満たし且つスケルトンモデルのアーク方向ベクトルの方向と中割りアーク方向ベクトルの方向との差を含む評価式の値がほぼ極小、ほぼ極大及びほぼ停留のいずれかになるように基本変数の解を求め、求められた解に基づいてスケルトンモデルの形状を変形することを特徴とする。このようにすれば、アーク方向ベクトルの方向と中割りアーク方向ベクトルの方向との差を含む評価式をほぼ極小等にする条件の付加により、基本式を満たす解が一意的に特定され、スケルトンモデルの形状が決定される。従って、アーク方向ベクトルの向きを中割りアーク方向ベクトルの方向に近づけるようなスケルトンモデルの変形を、簡易に実現できるようになる。
【0017】
また本発明は、スケルトンモデルを、スケルトンモデルのノードの座標を含む基本変数により表し、スケルトンモデルのアークの長さが所与の値となることを規定する式を含み前記基本変数を未知数とする基本式と、前記基本式を満たす解を一意的に特定するための評価式の少なくとも一方を、所与の情報に基づいて変化させ、基本式をほぼ満たし且つスケルトンモデルのアーク法線ベクトルの方向と中割りアーク法線ベクトルの方向との差を含む評価式の値がほぼ極小、ほぼ極大及びほぼ停留のいずれかになるように基本変数の解を求め、求められた解に基づいてスケルトンモデルの形状を変形することを特徴とする。このようにすれば、アーク法線ベクトルの方向と中割りアーク法線ベクトルの方向との差を含む評価式をほぼ極小等にする条件の付加により、基本式を満たす解が一意的に特定され、スケルトンモデルの形状が決定される。従って、アーク法線ベクトルの向きを中割りアーク法線ベクトルの方向に近づけるようなスケルトンモデルの変形を、簡易に実現できるようになる。
【0018】
また本発明は、移動経路が指定されたスケルトンモデルのノードの位置を制御するための制御点を用意し、前記第1の変形ステップにおいて、移動経路が指定されたスケルトンモデルの前記ノードと前記制御点との間に、該ノードと該制御点との距離に応じて変化する張力を働かせてスケルトンモデルの形状を変形することを特徴とする。このようにすれば、指定された移動経路上をノードが通ることが不可能な場合にも、計算に破綻が生じるのを回避できるようになる。
【0019】
また本発明は、移動経路が指定されたスケルトンモデルの複数のノードの位置を制御するために、少なくとも1つの制御点を用意し、前記第1の変形ステップにおいて、移動経路が指定された前記複数のノードと前記少なくとも1つの制御点との間に、該複数のノードと該少なくとも1つの制御点との距離に応じて変化する張力を働かせると共に、該張力の総和が所与の値以下になるような条件の下でスケルトンモデルの形状を変形することを特徴とする。このようにすれば、複数のノードが少なくとも1つの制御点により引っ張られることにより張力の総和が過大になりスケルトンモデルに暴れが生じてしまう事態を防止できる。そして更に、本発明によれば、各張力は、ノードと制御点との距離に応じた強さになる。従って、スケルトンモデルの形状に複数の釣り合い状態が生じてしまう事態も防止できる。
【0020】
また本発明は、前記第1の変形ステップの後に前記第2の変形ステップを行うと共に、前記第1の変形ステップの第1の反復計算の初期段階において、スケルトンモデルのアーク方向ベクトルの向きを中割りアーク方向ベクトルの方向に近づける演算を行うことを特徴とする。このようにすれば、第1の変形ステップの第1の反復計算の初期段階において、第2の変形ステップでの変形に好適な形状にスケルトンモデルを変形することが可能になる。この結果、適正形状へのスケルトンモデルの変形が、第2の変形ステップにおいて不能になる事態を防止できる。
【0021】
また本発明は、前記第2の変形ステップの後に前記第1の変形ステップを行うと共に、前記第2の変形ステップの第2の反復計算の初期段階において、移動経路が指定されたスケルトンモデルのノードを、該移動経路上の所与の位置に引っ張る演算を行うことを特徴とする。このようにすれば、第2の変形ステップの第2の反復計算の初期段階において、第1の変形ステップでの変形に好適な形状にスケルトンモデルを変形することが可能になる。この結果、適正形状へのスケルトンモデルの変形が、第1の変形ステップにおいて不能になる事態を防止できる。
【0022】
また本発明は、スケルトンモデルの形状変形方法であって、スケルトンモデルの複数のノードの位置を制御するために、少なくとも1つの制御点を用意し、スケルトンモデルの前記複数のノードと前記少なくとも1つの制御点との間に、該複数のノードと該少なくとも1つの制御点との距離に応じて変化する張力を働かせると共に、該張力の総和が所与の値以下になるような条件の下でスケルトンモデルの形状を変形することを特徴とする。
【0023】
本発明によれば、複数のノードが少なくとも1つの制御点により引っ張られることによりスケルトンモデルに暴れが生じてしまう事態を防止できると共に、スケルトンモデルの形状に複数の釣り合い状態が生じてしまう事態も防止できる。
【0024】
また本発明は、スケルトンモデルの形状変形方法であって、所与の第1の条件に従った第1の反復計算によりスケルトンモデルの形状を変形する第1の変形ステップと、所与の第2の条件に従った第2の反復計算によりスケルトンモデルの形状を変形する第2の変形ステップとを含み、前記第1の変形ステップの後に前記第2の変形ステップを行うと共に、前記第1の変形ステップの前記第1の反復計算での初期段階において、前記第2の変形ステップの前記第2の条件が加味された演算を行うことを特徴とする。
【0025】
本発明によれば、第1の変形ステップの第1の反復計算の初期段階において、第2の変形ステップでの変形に好適な形状にスケルトンモデルを変形することが可能になる。この結果、適正形状へのスケルトンモデルの変形が、第2の変形ステップにおいて不能になる事態を防止できる。
【0026】
また本発明に係る画像生成装置は、上記のいずれかの方法により得られるスケルトンモデルの形状を出力する手段と、操作者がスケルトンモデルの形状の作成のための指示を行う操作手段とを含むことを特徴とする。これにより、本発明の方法を用いた形状データ作成ツール等の実現が可能となる。
【0027】
また本発明に係る画像生成装置は、上記のいずれかの方法により得られるスケルトンモデルに付随して動くオブジェクトの画像を出力する手段を含むことを特徴とする。これにより、本発明の方法により得られた形状データを使用したゲーム装置等の実現が可能となる。
【0028】
【発明の実施の形態】
以下、本発明の実施形態について、図面に基づいて詳細に説明する。
【0029】
1.比較例の説明
まず、本実施形態の比較例について説明する。
【0030】
図2(B)に示すような中間フレームf1、f2、f3のスケルトンモデルの形状を求める比較例として、関節角補間を用いる手法とインバースキネマティクスを用いる手法が考えられる。
【0031】
1.1 関節角補間
この比較例1では、スケルトンモデルの各関節角を補間して中間フレームの形状を求める。
【0032】
図3(A)を例にとれば、キーフレームf0でのアークA12の関節角θ10と、キーフレームf4でのアークA12の関節角θ14とを補間し、中間フレームf2での関節角θ12を求めている。より具体的には、θ12=(θ10+θ14)/2としている。同様に、θ20とθ24を補間することでθ22を求め、θ30とθ34を補間することでθ32を求めている。
【0033】
しかしながら、この比較例1では、ノードN4が、指定されたパスカーブ28上を移動しなくなる。即ち、ノードN4は、パスカーブ28上の位置30ではなく、位置32を通るようになる。従って、中間フレームの形状を滑らかに変化させることはできるが、ノードN4をパスカーブ28上で移動させたいというユーザーの要望には応えることができない。
【0034】
1.2 インバースキネマティクス
この比較例2では、固定されたノードをルートとし、パスカーブが指定されたノードをエフェクタとして、インバースキネマティクスを用いて中間フレームの形状を求める。図3(B)を例にとれば、固定ノードN1がルートになり、パスカーブ28が指定されたノードN4がエフェクタになる。そして、ノードN4をつまんでパスカーブ28に沿って動かしながら、中間フレームでのスケルトンモデルの形状をインバースキネマティクスにより求める。
【0035】
しかしながら、この比較例2では、インバースキネマティクスにより得られたフレームf4での形状34が、本来のキーフレームでの形状36とは異なったものになってしまう。従って、ノードN4をパスカーブ28上で移動させることはできるが、キーフレームの形状を所望の形状にしたいというユーザーの要望には応えることができない。
【0036】
以上のような比較例1、2の問題を解決するために、本実施形態では、以下のような手法によりスケルトンモデルの中間フレーム形状を導出している。
【0037】
2.本実施形態の概要
2.1 前提条件
まず、ユーザーが次のような手順でキャラクタのモーション(アニメーション)を作成するものとする。即ち、まず、ユーザーは、キャラクタの幾つかのポーズを作成し、これをキーフレームとして登録する。次に、幾つかのノードに対して、キーフレーム間のパスカーブ(広義には移動経路)を指定する。このパスカーブの指定により、キーフレーム間の各中間フレームにおけるノードの位置が指定されることになる。なお、中間フレームにおけるノードの位置は、ユーザーが明示的に指定するようにしてもよいし、ユーザーが指定したパスカーブやユーザーが指定したノードの移動速度に基づき、プログラムが計算により求めるようにしてもよい。
【0038】
さて、ユーザーがキャラクタのモーションを作成する際に、あるキーフレームから次のキーフレームまでの間、ノードの位置を固定したい場合がある。このようなノードの固定は、パスカーブが直線であって、しかもそのパスカーブの始点と終点が一致している場合として捉えることができる。
【0039】
そこで、本実施形態では、ノードの固定をパスカーブの指定により行うようにしている。即ち、ユーザーは、ノードを固定したい場合には、始点と終点とが一致する直線のパスカーブをそのノードに指定することになる。このようにすれば、パスカーブ指定の他に、ノード固定の指定というユーザーインターフェースを別に設ける必要がなくなる。これにより、ユーザーの矛盾したノード固定指定により計算が破綻する等の事態を防止できる。
【0040】
さて、本実施形態では、次の2つの要件を満たし、キーフレーム間を滑らかに補間するような中間フレームを生成することを目指している。
【0041】
第1に、出来上がったスケルトンモデルのモーションは、キーフレームのポーズを必ず通るようにする。但し、スケルトンモデルがポリゴンオブジェクトと干渉する場合は、この限りでない。
【0042】
第2に、パスカーブが指定されたノードは、形状的に不可能な場合を除き、必ず指定された通りの動きをするようにする。ここで、形状的に不可能とは、アークの長さ、関節角の可動範囲、ポリゴンオブジェクトとの干渉等の制約により、指定されたパスカーブ上をノードが移動することが不可能な状態を言う。
【0043】
2.2 3ステップのpullerによる中間フレーム形状の導出方法
本実施形態では、3ステップのpullerにより、スケルトンモデルの中間フレームの形状を導出している。この導出方法を、図4のPAD(Program Analysis Diagram)を用いて詳細に説明する。
【0044】
なお、以下の説明では、補間すべき2つのキーフレームを、第kフレーム、第k+nフレームとする。また、これらのキーフレームでのスケルトンモデルの形状を補間し、中間フレームである第k+1〜k+n-1フレームでの形状を導出するものとする。
【0045】
2.2.1 中割りアーク方向ベクトルの導出
まず、スケルトンモデルの各アークについて、中割りアーク方向ベクトルを導出する(図4のステップU1)。より具体的には、第kフレームのアーク方向ベクトルの向きと、第k+nフレームのアーク方向ベクトルの向きとを均等に中割りし、第k+1〜第k+n-1フレーム用の中割りアーク方向ベクトルを求める。
【0046】
なおアークの一端から他端に向かう単位ベクトルをアーク方向ベクトルと呼ぶことにする。中割りアーク方向ベクトルとは、キーフレームでのアーク方向ベクトルの向きを均等に中割りしたものである。
【0047】
図5のアークA12を例にとれば、キーフレームf0でのアーク方向ベクトル40の向きと、キーフレームf4でのアーク方向ベクトル42の向きを4等分することで、中割りアーク方向ベクトルが導出される。アークA23、A34についての中割りアーク方向ベクトルも同様にして導出される。
【0048】
導出された中割りアーク方向ベクトルは、後述するように、中間フレームの形状導出の際のStep2で使用される。
【0049】
2.2.2 ノードpuller、AV pullerによる変形
中割りアーク方向ベクトルの導出後、以下の手順で、第k+1フレームから第k+nフレームまでのスケルトンモデルの形状を順次導出する。即ち、i-1フレームのスケルトンモデルの形状(1フレーム前の形状)を読み込み(図4のステップU2)、次の2ステップ(Step1,Step2)の変形を行い(ステップU3、U4)、iフレームの形状として保存する(ステップU5)。
【0050】
Step1:パスカーブが指定されていないノードを非固定にし、パスカーブが指定されたノードをパスカーブ上の所与の位置に引っ張り、計算が収束するまでスケルトンモデルを変形させる(図4のステップU3)。このStep1でノードに作用させる引っ張りを、ノードpullerと呼ぶことにする。
【0051】
例えば図6には、キーフレームf0の形状に対してノードpullerを作用させ、フレームf1の形状を導出する過程が示されている。図6では、ノードN2,N3は非固定になっており、ノードN1,N4に対してノードpullerを作用させている。ここでノードN4はパスカーブが指定されたノードである。ノードN4は、このノードpullerにより、パスカーブ上の位置44に引っ張られることになる。一方、ノードN1は固定ノードである。固定ノードN1については、前述のように、始点と終点が一致した直線のパスカーブ指定がなされたとして取り扱う。即ち、ノードN1に作用するノードpullerは初期状態において長さが0になる。
【0052】
Step2:パスカーブが指定されたノードをStep1終了時の位置に固定し、パスカーブが指定されていないノードは非固定のままにする。そして、アーク方向ベクトルの向きが、それぞれの中割りアーク方向ベクトルの方向になるべく近づくような捻りを作用させ、計算が収束するまでスケルトンモデルを変形させる(図4のステップU4)。このアークに作用させる捻りを、AV puller (arc vector puller)と呼ぶことにする。
【0053】
例えば図7では、ノードN1,N4を固定し、ノードN2、N3を非固定にして、AV pullerを作用させている。これにより、アークA12,A23,A34(アーク方向ベクトル)の向きが、各々、中割りアーク方向ベクトル46、48、50の方向に近づくように、スケルトンモデルが変形されることになる。
【0054】
なお、ノードpuller、AV pullerによるスケルトンモデルの変形は、例えば、本出願人により出願された特開平10-208072の手法によるインバースキネマティクスにより実現できる。
【0055】
また、各アーク方向ベクトルの方向と各中割りアーク方向ベクトルの方向とは、一般的には完全には一致しない。例えば図7では、ノードN1,N4は固定されており、このような条件の下で各アーク方向ベクトルの方向と各中割りアーク方向ベクトルの方向を完全に一致させることは、幾何学的には不可能な場合が多いからである。しかしながら、ノードpuller、AV pullerによる変形を、特開平10-208072に示されるようなインバースキネマティクスを用いて行えば、中間フレームの形状を滑らかに変化させることは可能になる。
【0056】
以上のノードpuller、AV pullerによる変形処理(図4のステップU2〜U5)が、i=k+1からi=k+nになるまで繰り返され、第kフレームの形状から第k+1フレームの形状、第k+1フレームの形状から第k+2フレームの形状、第k+2フレームの形状から第k+3フレームの形状、第k+3フレームの形状から第k+4フレームの形状というように、スケルトンモデルの形状が順次導出される。そして第K+nフレームのスケルトンモデルの形状が導出されると、各アーク法線ベクトルの向きの修正処理が行われる。
【0057】
即ち、ノードpuller、AV pullerによる変形により最終的に得られた第k+nフレームでのアーク法線ベクトルの向きは、キーフレームとして登録した時の向きとは異なっている。
【0058】
図8(A)を例にとれば、ノードpuller、AV pullerによる変形により得られたフレームf4(第k+nフレーム)のアーク法線ベクトル52の向きは、キーフレームとして登録した時のアーク法線ベクトル54の向きとは異なっている。そこで、アークの法線ベクトル52の向きの修正処理が必要になる。
【0059】
2.2.3 中割りアーク法線ベクトルの導出
まず、スケルトンモデルの各アークについて、中割りアーク法線ベクトルを導出する(図4のステップU6)。
【0060】
より具体的には、ノードpuller、AV pullerによる変形により最終的に得られた第k+nフレームのアーク法線ベクトルと、キーフレーム登録時の第k+nフレームのアーク法線ベクトルとを比較し、そのアーク方向ベクトル回りの回転角度φNVを求める。図8(A)を例にとれば、アーク法線ベクトル52から54への、アーク方向ベクトル回りの回転角度φNVを求める。
【0061】
次に、このφNVをフレーム数nで均等割りする。そして、各フレームのアーク法線ベクトルを、そのアークのアーク方向ベクトル回りに捻ったものを中割りアーク法線ベクトルとする。即ち、第k+iフレームでは、アーク法線ベクトルをφNV・i/nだけ捻ったものが中割りアーク法線ベクトルとなる。
【0062】
図8(B)を例にとれば、フレームf1では、アーク法線ベクトル56をφNV/4だけアーク方向ベクトル回りに捻ったものが中割りアーク法線ベクトル58になる。一方、フレームf2ではφNV/2、フレームf3では3φNV/4だけ、アーク法線ベクトルを捻ったものが中割りアーク法線ベクトルになる。
【0063】
なお、アーク法線ベクトルはアーク方向ベクトルに直交し、中割りアーク法線ベクトルは、アーク法線ベクトルをアーク方向ベクトル回りに所与の角度だけ回転させたものである。従って、中割りアーク法線ベクトルもアーク方向ベクトルに直交し、アークの法線ベクトルとしての要件を満たすことになる。
【0064】
2.2.4 NV pullerによる変形
中割りアーク法線ベクトルの導出後、以下の手順で、第k+1フレームから第k+n-1フレームまでのスケルトンモデルの形状を順次修正する。即ち、iフレームのスケルトンモデルの形状を読み込み(図4のステップU7)、次のStep3の変形を行い(ステップU8)、iフレームの形状として保存する(ステップU9)。
【0065】
Step3:全てのノードを固定する。そして、アーク法線ベクトルの向きが、当該フレームのそれぞれの中割りアーク法線ベクトルの方向になるべく近づくような捻りを作用させ、計算が収束するまでスケルトンを変形させる(図4のステップU8)。このアーク法線ベクトルに作用させる捻りを、NV puller (normal vector puller)と呼ぶことにする。このNV pullerによる変形処理(図4のステップU7〜U9)が、i=k+1からi=k+n-1になるまで繰り返され、第k+1フレームから第k+n-1フレームまでのスケルトンモデルのアーク法線ベクトルの向きが順次修正される。
【0066】
図8(B)を例にとれば、フレームf1では、アークA12のアーク法線ベクトル56の向きを、中割りアーク法線ベクトル58の方向に近づけるNV pullerを作用させる。フレームf2、f3、f4についても同様である。例えばフレームf4では、図8(A)において、アーク法線ベクトル52の向きを、中割りアーク法線ベクトル54の向きになるべく近づけるNV pullerが作用する。これにより、アーク法線ベクトル52の向きが、キーフレーム登録時のアーク法線ベクトル(中割りアーク法線ベクトル)54の向きと異なってしまうという事態を解消できる。
【0067】
以上のように、ノードpuller、AV puller、NV pullerの3ステップのpullerを順次作用させ中間フレームの形状を導出することで、前述の2.1の2つの要件(出来上がったスケルトンモデルのモーションは、キーフレームのポーズを必ず通り、パスカーブが指定されたノードは、形状的に不可能な場合を除き、必ず指定された通りの動きをするようにする)を満足するキーフレーム補間を実現できるようになる。
【0068】
2.3 ラバーバンドによるノードpuller
本実施形態では、上述のStep1のノードpullerとして、特開平10-208072に開示されるラバーバンドの手法を用いている。
【0069】
図9(A)を例にとれば、パスカーブが指定されたノードN4はノードpuller、即ちラバーバンド62によりパスカーブ上の位置(制御点)60に引っ張られる。ここで、ラバーバンド62は根と先を持ち、ラバーバンド62の根は制御点60と共に動き、ラバーバンド62の先はノードN4に固定されたままになる。ラバーバンド62は縮もうとする性質を有し、ノードN4と制御点60との間には、例えば、ノードN4と制御点60との距離に応じて変化する張力(距離を極小にしようとする力)が働くことになる。この張力により、図9(A)に示すように、ノードN4が制御点60の方に引っ張られ、スケルトンモデルが変形することになる。
【0070】
ノードpullerとしてラバーバンドを用いることで次のような利点を得ることができる。例えばユーザーが図9(B)に示すようなパスカーブ64を指定した場合、フレームf2において、ノードN4をパスカーブ64上の位置66に移動させることは不可能である。このような場合にラバーバンドを用いないと、計算が破綻してしまう。しかしながら、ラバーバンド68を用いてフレームf2のノードN4を、制御点である位置66に引っ張るようにすれば、上記のような計算の破綻を回避できるようになる。
【0071】
2.4 ラバーバンドの張力の適応可変
本実施形態では、複数のノードに対してパスカーブの指定が可能である。例えば図10(A)に示すように、2つのノードN4、N5にパスカーブが指定された場合には、これらの2つのノードN4、N5の位置を制御するための2つの制御点70、72が用意される。そして、ノードN4、N5と制御点70、72との間にはラバーバンド74、76が作用する。
【0072】
このように、本実施形態では、複数のノードに複数のラバーバンドが作用する場合がある。
【0073】
ラバーバンドの張力が強くなると、スケルトンモデルに暴れが生じやすくなるが、この暴れは、ラバーバンドの張力に上限を設けることである程度解消できる。しかしながら、上記のように複数のノードに複数のラバーバンドが作用すると(スケルトンモデルに複数のラバーバンドが作用すると)、ラバーバンドの張力に上限を設けただけでは、次のような問題が生じてしまう。
【0074】
例えば図10(A)のように、ラバーバンド74、76によりノードN4、N5が同一方向に引っ張られると、個々のラバーバンド74、76の張力は小さくても、全ラバーバンドの張力の総和は大きくなる。このため、各ラバーバンド74、76の張力に上限を設けても、スケルトンモデルに暴れが生じてしまう。
【0075】
また、図10(B)に示すように、ノードN13に対してパスカーブ78、80が指定され、中間フレームf2において、ラバーバンド82、84が伸びたまた釣り合い状態になった場合を考える。この場合、ラバーバンド82、84の張力に単に上限を設けただけでは、図10(B)、(C)、(D)の全ての状態が釣り合い状態になる。ラバーバンドは、その長さが例えばlr *の時に張力が上限になり、図10(B)、(C)、(D)の全ての場合において、ラバーバンド82、84の張力は上限に達しており等しくなっているからである。即ち、ユーザーにとっては図10(B)の釣り合い状態が最も望ましいのに、図10(C)、(D)のように釣り合い状態になってしまう可能性がある。
【0076】
そこで、本実施形態では、このように複数のノードと複数(1つでもよい)の制御点との間に複数の張力(ラバーバンド)が働く場合に、ノードと制御点との間にその距離に応じた張力を働かせると共に、その張力の総和が所与の値以下になるような条件の下でスケルトンモデルを変形している。
【0077】
本実施形態によれば、図10(A)のように複数のノードN4、N5に対して複数のラバーバンド74、76による張力が働いても、これらの張力の総和は所与の値以下になる。従って、スケルトンモデルに暴れが生じる事態を回避できる。また、各張力は、固有の上限値を持たず、ノードと制御点との距離に応じてその強さが変化する。従って、図10(C)、(D)のような釣り合い状態になる事態も回避できる。図10(C)ではラバーバンド82よりも84の張力が強くなり、図10(D)ではラバーバンド84よりも82の張力が強くなり、共に釣り合い状態が崩れるからである。
【0078】
2.5 Step1におけるAV pullerの追加
図11(A)のように、フレーム(キーフレーム)f0、f4を補間する場合において、ノードN4に対して86に示すようなパスカーブ指定がなされたとする。この場合、フレームf1におけるスケルトンモデルの形状は、本来、図11(B)に示す形状87になるべきである。
【0079】
しかしながら、図11(C)において、フレームf0のスケルトンモデルの形状に対して上述したStep1のノードpullerのみを作用させると、スケルトンモデルの形状は、図11(C)の形状88、90のいずれに変形するかは不定となる。この場合、形状88に変形すれば問題は生じない。しかし、形状90に変形してしまった場合には、その後のStep2においてAV pullerを作用させても、アークA12に作用するAV pullerとアークA34に作用するAV pullerとが互いに釣り合ってしまう。このため、形状90は、それ以上変形せず、図11(B)の本来の形状87に到達できなくなってしまう。
【0080】
そこで、本実施形態では、図4のステップU3を、図12のPADに示すように修正し、Step1の反復計算の第1のループ(広義には反復計算の初期段階)においては、ノードpullerだけでなく、AV pullerも同時に作用させてスケルトンモデルを変形している(ステップV1)。即ち、反復計算の第1のループにおいて、パスカーブが指定されたノードをパスカーブ上の所与の位置に引っ張る演算のみならず、アーク法線ベクトルの向きを中割りアーク方向ベクトルの方向に近づける演算も行う。一方、第2のループ以降は、ノードpullerのみを作用させて、計算が収束するまでスケルトンモデルを変形している(ステップV2)。
【0081】
以上のようにすることで、フレームf1でのスケルトンモデルの形状を、図11(B)の本来の形状87にすることが可能になる。
【0082】
なお、図12では、第1のループにおいてのみ、ノードpuller及びAV pullerの両方を作用させているが、例えば第2、第3のループ等においても、ノードpuller及びAV pullerの両方を作用させてもよい。また、第1のループではノードpullerのみを作用させて、第2のループでノードpuller及びAV pullerの両方を作用させることも可能である。
【0083】
3.スケルトンモデルの形状変形方法
ノードpuller、AV puller、NV pullerによるスケルトンモデルの変形の際には、例えば特開平10-208072に開示されたスケルトンモデルの形状変形方法を用いることができる。以下、このスケルトンモデルの形状変形方法について簡単に説明する。
【0084】
3.1 基本原理
本実施形態の形状変形方法では、図13(A)に示すように、スケルトンモデル118を表す基本変数として、ノード102、103、104の座標(x、y、z)、アーク106、107、108に垂直なアーク法線ベクトル110、111、112の成分(u、v、w)を使用する。このように、基本変数としてノード座標、アーク法線ベクトルを用いることで、全てのノード、アークを対等なものとして扱うことが可能となる。なお、アーク法線ベクトルを他の変数で代替えすることも可能である。
【0085】
次に図13(B)に示すように、上記基本変数を未知数とする基本式として、アークの長さが所与の値となることを規定する式、アーク法線ベクトルの長さが所与の値となることを規定する式、アーク法線ベクトルがアークに垂直になることを規定する式を用意する。なお例えば基本式g=0、h=0を他の式で代替えすることも可能である。
【0086】
ここで図13(B)に示す基本式は非線形となる。そこで本実施形態ではニュートン法等の反復計算法により解を求める。このようにニュートン法等を用いることで、基本式を、基本変数の変化量の1次式で表すことが可能となる。これにより解くべき連立方程式は図13(C)に示すものになる。
【0087】
しかしながら図13(C)の式では、変数の数が式の数よりも多い。そこで本実施形態では、基本式を満たす解を一意的に特定するための評価式を用意する。そして評価式の値をほぼ極小、ほぼ極大及びほぼ停留のいずれかにするという条件を付加し、ラグランジュの乗数法を適用して基本変数の解を求める。ラグランジュの乗数法を用いることで、解くべき式は図13(D)のようになり、変数の数が式の数と一致するため、解を一意的に定めることが可能となる。
【0088】
なお本実施形態では、パスカーブ上の所与の位置の座標、中割りアーク方向ベクトル、中割りアーク法線ベクトルなどの所与の情報に基づいてスケルトンモデルを変形させる。この時、上記所与の情報に基づいて基本式、評価式が変化する。具体的には、上記所与の情報に基づいて基本式や評価式に含まれる既知数、式自体の形が変化し、これによりスケルトンモデルの形状が変形することになる。
【0089】
3.2 アーク法線ベクトルの変化量の一次近似
さて本実施形態では、図14(A)に示すように、アーク法線ベクトルn(u、v、w)の変化量を、所与の1つの変数であるρにより表して基本変数の解を求めている。より具体的には、アーク法線ベクトルnの変化量を、変数ρの一次式で近似する。アーク法線ベクトルnはu、v、wの3変数で表されるが、図14(A)に示すようにnはアーク150に垂直且つ大きさが一定であるため、実際にはnの自由度は1である。従ってnの変化量も1つの変数ρで表すことが可能であり、これにより解くべき基本変数の数を減らすことができ、処理の高速化を図れる。
【0090】
3.3 評価式
また本実施形態では好ましいスケルトンモデルの変形を得るために、アーク間角度の変化量、ノードと所与の制御点との間の距離、端部に固定ノードを持つアークの向きの変化量、ノード座標の変化量及びノード座標の速度変化量等を評価式に含ませている。より具体的には、図14(B)に示すように評価式に種々の条件を加えている。例えば評価式にアーク間角度の変化量を含ませ、アーク間角度の変化量の2乗和を極小化等することにより、ある1組のアーク間だけが突出して曲がる等の事態を防止し、アーク間の曲げを全体的にバランスの良いものにすることができる。また評価式にノードと所与の制御点との間の距離を含ませることで、ラバーバンドを実現できる。また端部に固定ノードを持つアークの向きの変化量、ノード座標の変化量を評価式に含ませ、固定ノード回りのアーク回転ダンパー、ノードダンパー等を設定することで、解が不定になることを防止できる。またノード座標の変化量、ノード座標の速度変化量を評価式に含ませ、ノードダンパー、ノードイナーシャを設定することで、計算の収束が安定しないことに起因するアークの暴れを防止できる。
【0091】
4.詳細なアルゴリズム
次に本実施形態の詳細なアルゴリズムの例について説明する。なお以下の説明において使用される総和符号の意味は下記の通りである。なお下記において、アーク間の角度をアングルと呼び、アングルを構成する2本のアーク及びその端点である3つのノードをアングルの構成要素と呼ぶ。
【0092】
【数1】

Figure 0004155425
また添え字の順序と符号との関係は以下の通りである。
【0093】
【数2】
Figure 0004155425
4.1 基本式
図15において、ノードNiの座標を(xi、yi、zi)とする。またアークには、3次元空間内での回転を表すために、アーク法線ベクトルを設ける。アークAij(ノードNi、ノードNjを結ぶアーク)の法線ベクトルをnij(uij、vij、wij)とする。本実施形態では、これらの基本変数を用いてスケルトンモデルの形状を表す。アークごとに次の基本式が成り立つ。
【0094】
【数3】
Figure 0004155425
式(1)は、アークAijの長さがLijであることを意味する。式(2)は、法線ベクトルの大きさが1であることを意味する。式(3)は、アーク法線ベクトルとアークが垂直であることを意味する。
【0095】
4.2 基本式の解法
式(1)(2)(3)は非線形方程式であり、また式の数が変数の数より少ない。そこで、ニュートン法とラグランジュの乗数法を組み合わせて解くことにする。
【0096】
なお、特に指示する必要のない場合は、変数の添え字を省略して表記する。
【0097】
4.2.1 ニュートン法の適用
ループ1回ごとの各変数の変化量を、次のように定義する。
【0098】
【数4】
Figure 0004155425
上記の基本式(1)にニュートン法を適用すると、次式が得られる。
【0099】
【数5】
Figure 0004155425
これを整理すると、次式になる。
【0100】
【数6】
Figure 0004155425
ijはアーク長さの現在値で、次式で表される。計算が収束した状態では、lij=Lijとなる。
【0101】
【数7】
Figure 0004155425
また、λはスケールファクターである。λの値としては、次式のようにアーク長Lijの平均値を用いることにする。なおNarcは、スケルトンを構成するアークの本数である。
【0102】
【数8】
Figure 0004155425
式(2),(3)及び変数u,v,wについては、解くべき方程式の未知数を減らすために、ニュートン法を使わず、以下に述べる1変数ρによる1次近似を用いる。
【0103】
4.2.2 アーク法線ベクトル変化量の1次近似
アーク法線ベクトルnijはアークAijに垂直で、大きさ1であるため、成分uij、vij、wijは、3変数でありながら、図14(A)に示すように変化の自由度は1である。そこで、解くべき方程式の未知数を減らすために、1変数による1次近似を行う。
【0104】
図15に示すように、アークの始点ノードNiから終点ノードNjに向かう単位ベクトルを、アーク方向ベクトルaijと定義する。また、同図に示すようにアークAij上にベクトルsijを作る。
【0105】
【数9】
Figure 0004155425
式(2),(3)を微分して整理すると、次式のように、nij(uij,vij,wij) の変化量Δnij(Δuij,Δvij,Δwij)を、新たに導入した未知変数ρijの1次式として近似できる。
【0106】
【数10】
Figure 0004155425
ijが、次のイベントサイクルでとる値をn′ijとする。n′ijは、本来アークAijに垂直で大きさ1となるべきであるが、変化量の2乗のオーダーで誤差を生じてしまう。そこで、次式のように、まず方向を修正し、更に大きさを1に修正したものをn′ijとする。ただし、a′ijは、aijが次のイベントサイクルでとる値である。
【0107】
【数11】
Figure 0004155425
4.2.3 ラグランジュの乗数法の適用
式(6)は、式の数が変数の数より少なく、また変数ρを含まないので、これだけではスケルトンモデルの変形を一意的に定めることはできない。そこで、ρを含む評価式を用意し、この式を極小化するという条件のもとで、ラグランジュの乗数法を適用して解を求める。評価式は、式U1,U2,U3,… の総和Ueとして構成する。未定乗数αijを導入し、次式のようにUを定義する。
【0108】
【数12】
Figure 0004155425
式(6)と次式(14)を連立させて、これを解くことにより、解ξ,η,ζ,ρを得る。
【0109】
【数13】
Figure 0004155425
得られた解に基づき、次式によりx,y,zの新しい値x′,y′,z′を求め、ノードの座標が決まる。
【0110】
【数14】
Figure 0004155425
そして式(11), (12)によりn(u,v,w)の新しい値n′(u′,v′,w′)を求め、アーク法線ベクトルが決まる。
【0111】
4.3 アークの方向固定
4.3.1 アークの方向固定の意味
アークの方向を固定した場合、そのアークは次のような拘束を受けるものとする。
【0112】
即ち、両端のノードが固定されていない場合には、平行移動のみが可能になる(アーク法線ベクトルの向きも変化できない)。一方、両端のノードのうち少なくとも一方が固定されている場合には、移動も回転もできない(完全固定状態)。
【0113】
4.3.2 Trans group
隣接する複数のアークが方向固定されており、これらのアークが移動する場合には、これらのアークは一体となって平行移動することになる。このような1本以上のアーク(あるいは2個以上のノード)のグループをtrans groupと呼ぶことにする。
【0114】
trans groupの中のノードの1つを代表ノードとすると、trans groupの中の代表ノード以外のノードの移動量は、代表ノードの移動量と等しくなる。
【0115】
方向固定されたアークについては、式(1)、(6)は不要となり、変数ρも消え去る。trans groupの中の代表ノード以外のノードについては、式(14)から変数ξ,η,ζが消え去る。このように変数の数が減ることで、計算負荷を軽くすることができる。
【0116】
4.4 評価式の作成
前述のように、ラグランジュの乗数法を適用するには、極小化すべき評価式を用意する必要がある。評価式としては、図14(B)で説明したように、アーク間角度の変化量、ノード座標の変化量、ノード座標の速度変化量等を含む種々の評価式を考えることができる。これらの評価式の詳細については特開平10-208072に開示されている。
【0117】
4.4.1 ラバーバンドの設定
ラバーバンドは、収縮しようとする性質を持った仮想的なアークである。ここで、ラバーバンドの一端を(xi,yi,zi)とし、他端を(xci,yci,zci)とする。特開平10-208072に開示されるように、このラバーバンドを用いて、ユーザーは、スケルトンモデルを所望の形状に変形できる。この場合に、ラバーバンドの一端(xi,yi,zi)は、ユーザーがマウス等でピックしたノードNiになり、他端(xci,yci,zci)は、ユーザーのマウスの動きに合わせて移動する。
【0118】
また、このラバーバンドは、前述のようにノードpullerにも利用できる。この場合には、一端(xi,yi,zi)は、パスカーブ指定されたノードNiになり、他端(xci,yci,zci)は、制御点(パスカーブ上の所与の位置)になる。
【0119】
式(13)の評価式Ueに、次式U2を加えることで、ラバーバンドの収縮性を表現できる。Wrは、ラバーバンドの収縮性(張力)の強さを表すウェイト値(重み係数)である。
【0120】
【数15】
Figure 0004155425
2iの偏微分は以下のようになる。
【0121】
【数16】
Figure 0004155425
4.4.2 ラバーバンドのウェイト値の適応可変
ラバーバンドの張力が強くなると暴れが発生する傾向がある。そこで、ラバーバンドのウェイト値Wrを、スケルトンモデルの状態に応じて可変にする。この際、単にウェイト値に上限を設けるだけでは不十分であり、次の場合を考慮する必要がある。
【0122】
第1に、複数のノードをピックし、同一方向に引っ張った場合には、個々のラバーバンドの張力は小さくても、全ラバーバンドの張力の総和は大きくなってしまう(図10(A)参照)。
【0123】
第2に、複数のノードを異なる方向に引っ張った場合には、単純にラバーバンドの張力に上限を設けたのでは、次のような不具合が生じる。即ち、ラバーバンドが伸びた状態でスケルトンモデルの形状が収束した場合に、釣り合い状態が一意的に定まらない場合が生じる。例えば図16(A)のように、1本のアークを左右に引っ張ったとする。ここで、ラバーバンド120、122のリミット長をlr *とすると、図16(B)、(C)、(D)は全て釣り合い状態となる。図16(B)、(C)、(D)では、ラバーバンド120、122の長さは全てlr *以上になっており、ラバーバンド120、122の張力が全て等しく上限値になっているからである。
【0124】
そこでラバーバンドのウェイト値Wrを、次式に示すように、ラバーバンドの長さlriの総和の逆数に比例した値にする。
【0125】
【数17】
Figure 0004155425
但し、ラバーバンド長の総和が小さいときに、ウェイト値Wrが大きくなりすぎないように、Wrには上限値Wr *を設定しておく。
【0126】
rを式(19)のように可変制御することで、複数のノードと複数の制御点との間に働くラバーバンドの張力の総和が所与の値以下になるような条件の下で、スケルトンモデルの形状を変形できるようになる。また、各ラバーバンドの張力には固有の上限値が設けられていなく、式(17)のように、ラバーバンドの張力は、パスカーブが指定されたノードNi(xi,yi,zi)と、制御点(xci,yci,zci)との距離に応じて変化する。従って、図16(B)、(C)、(D)のような釣り合い状態が一意的に定まらないという事態を回避できるようになる。
【0127】
4.4.3 ノードpuller
ノードpullerは、4.4.1、4.4.2節で説明したラバーバンドを利用して実現する。ノードpullerを作用させて収束計算を行うことで、ノードpullerによるスケルトンモデルの変形を実現できる。
【0128】
4.4.4 AV puller
AV pullerを作用させた際に、各アークのアーク方向ベクトルと中割りアーク方向ベクトルとの向きの差の2乗和が極小になるよう、スケルトンモデルを変形させる。式(13)の評価式Ueに、次式UAを加えて収束計算を行うことで、この変形を実現できる。
【0129】
【数18】
Figure 0004155425
ここでWAは、AV pullerの強さを表すウェイト値(重み係数)である。図17に示すように、アークAijのアーク方向ベクトルaijと中割りアーク方向ベクトルapijとのなす角をθpijとする。また、θpijの変化量を次式のようにφpijとする。
【0130】
【数19】
Figure 0004155425
φpijを、ξ,η,ζの1次近似式で表すことにする。まず、次式が成り立つ。
【0131】
【数20】
Figure 0004155425
上式を、φpijの2次以上の項を無視して変形すると、次式が得られる。
【0132】
【数21】
Figure 0004155425
図17に示すように、aijとapijが作る平面内でaijに垂直な単位ベクトルaqijを作る。
【0133】
【数22】
Figure 0004155425
式(26)を式(27)等を用いて変形し、ξi,ξj,ηi,ηj,ζi,ζj,ρijによるUAijの偏微分を求めると、次式のようになる。
【0134】
【数23】
Figure 0004155425
以上の方法では、θpij=0の場合に、ベクトルaqijが不定となり計算不能となる。そこで、θpij<<1の場合は、次式を用いる。
【0135】
【数24】
Figure 0004155425
式(30)を変形し、ξi,ξj,ηi,ηj,ζi,ζj,ρijによるUAijの偏微分を求めると、下式のようになる。
【0136】
【数25】
Figure 0004155425
4.4.5 NV puller
NV pullerを作用させた際に、各アークのアーク法線ベクトルと中割りアーク法線ベクトルとの向きの差の2乗和が極小になるよう、スケルトンモデルを変形させる。式(13)の評価式Ueに次式UNを加えることで、これを実現できる。
【0137】
【数26】
Figure 0004155425
Nは、NV pullerの強さを表すウェイト値(重み係数)である。また、アークAijの法線ベクトルnij(uij,vij,wij)に対する中割りアーク法線ベクトルをnpij(upij,vpij,wpij)とする。
【0138】
ξi,ξj,ηi,ηj,ζi,ζj,ρijによるUNijの偏微分を求めると、次式のようになる。
【0139】
【数27】
Figure 0004155425
5.画像生成装置、情報記憶媒体
図18(A)、(B)、(C)に、本実施形態のスケルトンモデルの中間フレーム形状導出方法、形状変形方法を利用した画像生成装置、情報記憶媒体の種々の実施形態を示す。
【0140】
図18(A)は、画像生成装置の1つである形状データ作成ツールに本実施形態を適用した例である。スケルトンモデルのキーフレームの形状の作成のための指示、パスカーブの指定等は、例えばキーボード200、ポインティングデバイスであるマウス202を用いて行われる。処理部210は、本実施形態の方法によりスケルトンモデルの形状変形を行い形状データを生成する形状データ生成部212と、この形状データ生成部212で生成された形状データに基づいてスケルトンモデルの画像を合成する画像生成部214とを含む。処理部210は、ハードウェア的には、CPU、DSP、メモリ、必要であれば画像生成用のASIC等により構成される。FD、CD、DVD、ICカード、メモリ等で構成される情報記憶媒体216には、本実施形態の方法を実現する形状データ作成プログラム、このプログラムの実行のために必要なデータ等の種々の情報が格納されている。処理部210は、キーボード200、マウス202からの入力情報、情報記憶媒体216に格納される情報に基づいて処理を行い、これにより表示部218上にスケルトンモデル画像219等が表示される。この形状データ作成ツールによれば、表示されるスケルトンモデル画像219の形状を確認しながら、形状データの作成を行うことができ、設計作業の効率化を図れる。
【0141】
図18(B)は、画像生成装置の1つであるゲーム装置に本実施形態を適用した例である。ゲームコントローラ220、222は、プレーヤが操作情報を入力するためのものである。処理部230は、プレーヤからの操作情報に基づいてゲーム画像を合成するための演算等を行うゲーム演算部232と、このゲーム演算部232からの演算結果に基づいて画像生成を行う画像生成部234とを含み、ハードウェア的には、CPU、DSP、メモリ、必要であれば画像生成用のASIC等により構成される。情報記憶媒体236には、本実施形態の方法により作成された形状データ或いはこの形状データに基づき生成された種々の情報、及びゲームプログラム等が格納されている。表示部238上には、上記形状データ等に基づいて動作するゲームキャラクタの画像239、240等が表示される。ゲーム装置が業務用のものであれば、形状データ、ゲームプログラムは、半導体メモリ、ハードディスク等から成る情報記憶媒体に格納され、ゲーム装置が家庭用のものであれば、形状データ、ゲームプログラムは、CD、DVD、ゲームカセット等から成る情報記憶媒体に格納される。また複数の端末をホスト装置を介して通信回線で接続し、ゲームプログラム等を配給するタイプのゲーム装置においては、形状データ、ゲームプログラムはホスト装置の情報記憶媒体、例えば磁気ディスク、CD、DVD、半導体メモリ等に格納される。
【0142】
一方、図18(C)は、ゲーム演算部242が形状データ生成部243を含む場合のゲーム装置の例である。この場合、情報記憶媒体246には、形状データの代わりに、本実施形態の方法を実現する形状データ生成プログラムが格納され、形状データの生成はゲーム装置に内蔵される形状データ生成部243がリアルタイムに行う。例えばゲームコントローラ220、222等によりプレーヤが、スケルトンモデルに所望の動作を行わせる。これによりスケルトンモデルに付随して動くオブジェクトの画像239、240が表示部238に表示されることになる。
【0143】
なお本発明は上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【0144】
例えば本実施形態では、ノードpullerによる変形の後にAV pullerによる変形を行う場合について説明したが、本発明では、AV pullerによる変形の後にノードpullerによる変形を行うようにしてもよい。例えば、指定ノードがパスカーブ上を通ることよりも、アークが指定方向に向くことを優先する場合には、AV pullerによる変形の後にノードpullerによる変形を行うことが望ましい。この場合には、4.3節で説明したアークの方向固定の手法により、アークの向く方向を固定することになる。
【0145】
また、ノードpuller、AV puller、NV pullerによる変形は、図13(A)〜図13(D)で説明した手法(基本式や評価式を所与の情報に基づき変化させながら基本変数の解を求める手法)により実現することが特に望ましい。しかしながら、本発明はこれに限定されず、これらの変形を、別の手法により実現するようにしてもよい。
【0146】
また、2.4節で説明したラバーバンドの張力の適応可変の手法は、ノードpullerにおけるラバーバンドのみならず、スケルトンモデルの変形に使用する種々のラバーバンドに対して広く適用できる。例えば特開平10-208072に開示されるような、ユーザのマウス操作によるスケルトンモデルの変形の際に使用するラバーバンドに対しても、ラバーバンドの張力の適応可変の手法は適用できる。
【0147】
また、第1の変形ステップの反復計算での初期段階において、第2の変形ステップの第2の条件が加味された演算を行う手法の適用例は、ノードpullerによる変形の初期段階にAV pullerを作用させる適用例(図12参照)に限定されるものではない。例えば、AV pullerによる変形の初期段階にノードpullerを作用させる適用例など、種々の適用例を考えることができる。
【0148】
【図面の簡単な説明】
【図1】図1(A)、(B)、(C)は、キャラクタのモーション作成の手順について説明するための図である。
【図2】図2(A)、(B)は、パスカーブ指定や中間フレームの形状導出について説明するための図である。
【図3】図3(A)、(B)は、本実施形態の比較例について説明するための図である。
【図4】本実施形態の処理について説明するためのPADである。
【図5】中割りアーク方向ベクトルの導出について説明するための図である。
【図6】ノードpullerによる変形について説明するための図である。
【図7】 AV pullerによる変形について説明するための図である。
【図8】図8(A)、(B)は、中割りアーク法線ベクトルの導出について説明するための図である。
【図9】図9(A)、(B)は、ノードpullerとしてラバーバンドを用いる手法について説明するための図である。
【図10】図10(A)、(B)、(C)、(D)は、ラバーバンドの張力の適応可変について説明するための図である。
【図11】図11(A)、(B)、(C)は、ノードpullerを作用させて行う反復計算の初期段階において、AV pullerを作用させる手法について説明するための図である。
【図12】ノードpullerを作用させて行う反復計算の初期段階において、AV pullerを作用させる手法について説明するためのPADである。
【図13】図13(A)、(B)、(C)、(D)は、基本式や評価式を所与の情報に基づき変化させながら基本変数の解を求める手法について説明するための図である。
【図14】図14(A)は、アーク法線ベクトルの変化量を1変数で表す手法について説明するための図であり、図14(B)は、評価式の種々の例を示す図である。
【図15】アーク、ノード、アーク法線ベクトル等の関係について説明するための図である。
【図16】図16(A)、(B)、(C)、(D)は、ラバーバンドの張力の適応可変について説明するための図である。
【図17】アーク方向ベクトル、中割りアーク方向ベクトル等の関係について説明するための図である。
【図18】図18(A)、(B)、(C)は、画像生成装置、情報記憶媒体の種々の実施形態について示す図である。
【符号の説明】
10 スケルトンモデル
12 関節点(ノード)
14 端点(ノード)
16 骨(アーク)
20、22 キーフレームの形状
24 中間フレームの形状
26 スケルトンモデル
28 パスカーブ
40、42 アーク方向ベクトル
44 パスカーブ上の位置
46、48、50 中割りアーク方向ベクトル
52 ノードpuller、AV pullerによる変形後のアーク法線ベクトル
54 キーフレーム登録時のアーク法線ベクトル
56 アーク法線ベクトル
58 中割りアーク法線ベクトル
60 制御点(パスカーブ上の位置)
62 ラバーバンド
64 パスカーブ
66 制御点(パスカーブ上の位置)
68 ラバーバンド[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a skeleton model intermediate frame shape deriving method, a skeleton model shape deforming method, an image generating apparatus, and an information storage medium.
[0002]
[Background Art and Problems to be Solved by the Invention]
In the field of computer graphics and the like, the following procedure is often used when creating motion (animation) of characters such as people and animals.
[0003]
(D1First, a skeleton model 10 as shown in FIG. In the following, the joint points 12 and end points 14 of the skeleton model 10 are referred to as nodes, and the bone 16 connecting the nodes is referred to as an arc.
[0004]
(D2Next, as shown in FIG. 1B, the skeleton model 10 is deformed to create key frame shapes 20 and 22 of the skeleton model.
[0005]
(DThree) Next, as shown in FIG. 1C, the key frame shapes 20 and 22 are interpolated to create the intermediate frame shape 24 of the skeleton model.
[0006]
Now, in a general work procedure, the above steps (D2) Key frame shapes 20 and 22 are manually created by a user (operator in a broad sense) using an input device such as a mouse or a keyboard. On the other hand, the process (DThreeThe intermediate frame shape 24) is automatically generated by the program.
[0007]
Usually, the process (DThree), The user fixes nodes or designates path curves (moving paths in a broad sense) for several nodes.
[0008]
Here, the node fixation is an instruction to keep the node at the same position in all intermediate frames between two key frames to be interpolated. Such node fixing is necessary, for example, when the arm is shaken while fixing the character's shoulder.
[0009]
The designation of the path curve is to instruct the node to move on the designated path curve between key frames. The designation of the path curve corresponds to designation of the position of the node (the node for which the path curve is designated) in each intermediate frame between the key frames as well as the designation of the path itself. Such a path curve designation is necessary, for example, when it is desired to move the tip of the character's hand or foot on the trajectory desired by the user.
[0010]
In the example shown in FIG. 2A, the skeleton model 26 has four nodes N.1, N2, NThree, NFourAnd 3 arcs A12, Atwenty three, A34It is composed of Each arc A12, Atwenty three, A34Includes an arc normal vector NV to indicate the direction of twist of each arc.12, NVtwenty three, NV34Is attached. Each of these arc normal vectors has a size of 1 and is perpendicular to each arc.
[0011]
In this example, two key frame shapes are prepared for the skeleton model 26. In addition, node N1Is fixed and node NFourA path curve 28 is designated. Even if such a designation is made, the frame (key frame) f0, FFourSmoothly interpolate the shape of the intermediate frame f as shown in FIG.1, F2, FThreeIt is desirable to generate the shape of the skeleton model at. That is, the node N is moved on the designated path curve 28.FourHowever, it is desired that the shape of the skeleton model in the intermediate frame also changes smoothly.
[0012]
The present invention has been made in view of the technical problems as described above, and an object thereof is to provide an intermediate frame of a skeleton model that is smoothly interpolated even when a movement path of a node is designated. An object of the present invention is to provide an intermediate frame shape derivation method of a skeleton model capable of obtaining a shape, a shape deformation method of a skeleton model, an image generation apparatus, and an information storage medium.
[0013]
[Means for Solving the Problems]
In order to solve the above-described problems, the present invention provides an intermediate frame shape derivation method for deriving the shape of an intermediate frame of a skeleton model from the shape of a key frame of the skeleton model. A first deformation step for deforming the shape of the skeleton model to be pulled to a given position on the movement path, and an orientation of the arc direction vector of the skeleton model based on the arc direction vector at the key frame. A second deformation step for deforming the shape of the skeleton model so as to approach the direction of the intermediate arc direction vector, and the direction of the arc normal vector of the skeleton model is obtained based on the arc normal vector at the key frame Shape the skeleton model so that it approaches the direction of the mid-arc normal vector. Characterized in that it comprises a third modification step of the form.
[0014]
In the present invention, in the first deformation step, the skeleton model is deformed so that the node whose movement path is specified is pulled to a position on the movement path, and in the second deformation step, the direction of the arc direction vector is divided. The skeleton model is deformed so as to approach the direction of the arc direction vector. Further, the skeleton model is deformed by the third deformation step so that the direction of the arc normal vector approaches the direction of the intermediate arc normal vector. Therefore, according to the present invention, the direction of the arc direction vector or the arc normal vector is set to the direction of the middle arc direction vector or the middle arc normal vector while bringing the node for which the movement route is designated closer to the position on the movement route. It becomes possible to approach. As a result, it is possible to achieve both the designation of the movement path of the node and the smooth interpolation of the intermediate frame shape of the skeleton model.
[0015]
The order of the first, second, and third deformation steps is arbitrary. Also, the position of the node, the direction of the arc direction vector, and the direction of the arc normal vector may be at least close to the position on the moving path, the direction of the intermediate arc direction vector, and the direction of the intermediate arc normal vector, There is no need to match exactly. Further, the intermediate arc direction vector and the intermediate arc normal vector only need to be obtained using at least the arc direction vector and the arc normal vector in the key frame, respectively.
[0016]
Further, the present invention represents the skeleton model by a basic variable including the coordinates of the nodes of the skeleton model, and includes an expression defining that the arc length of the skeleton model becomes a given value, and the basic variable is an unknown. At least one of the basic expression and an evaluation expression for uniquely identifying a solution satisfying the basic expression is changed based on given information, and the direction of the arc direction vector of the skeleton model is substantially satisfied with the basic expression. Find the solution of the basic variable so that the value of the evaluation formula including the difference from the direction of the intermediate arc direction vector is almost minimal, almost maximal, and almost stationary, and the shape of the skeleton model based on the obtained solution It is characterized by deforming. In this way, by adding a condition that makes the evaluation expression including the difference between the direction of the arc direction vector and the direction of the middle arc direction vector almost minimal, a solution satisfying the basic expression is uniquely identified, and the skeleton The shape of the model is determined. Therefore, the deformation of the skeleton model that makes the direction of the arc direction vector close to the direction of the intermediate arc direction vector can be easily realized.
[0017]
Further, the present invention represents the skeleton model by a basic variable including the coordinates of the nodes of the skeleton model, and includes an expression defining that the arc length of the skeleton model becomes a given value, and the basic variable is an unknown. At least one of the basic expression and the evaluation expression for uniquely identifying a solution satisfying the basic expression is changed based on given information, and the direction of the arc normal vector of the skeleton model is satisfied substantially by satisfying the basic expression. The basic variable solution is calculated so that the value of the evaluation expression including the difference between the direction of the normal vector and the intermediate arc normal vector is almost minimal, almost maximal, or almost stationary, and the skeleton model is based on the obtained solution. It is characterized by deforming the shape of. In this way, a solution that satisfies the basic formula is uniquely identified by adding a condition that makes the evaluation formula including the difference between the direction of the arc normal vector and the direction of the intermediate arc normal vector almost minimal. The shape of the skeleton model is determined. Therefore, the deformation of the skeleton model that makes the direction of the arc normal vector close to the direction of the intermediate arc normal vector can be easily realized.
[0018]
The present invention also provides a control point for controlling the position of the node of the skeleton model in which the movement path is designated. In the first deformation step, the node and the control in the skeleton model in which the movement path is designated are provided. The shape of the skeleton model is deformed by applying a tension that changes according to the distance between the node and the control point between the nodes. In this way, it is possible to avoid the failure of the calculation even when the node cannot pass on the designated movement route.
[0019]
The present invention also provides at least one control point for controlling the positions of a plurality of nodes of a skeleton model in which a movement path is specified, and the plurality of the movement paths specified in the first deformation step. A tension that varies depending on the distance between the plurality of nodes and the at least one control point is applied between the node and the at least one control point, and the sum of the tensions is less than a given value. The shape of the skeleton model is deformed under such conditions. In this way, it is possible to prevent a situation in which the total sum of tensions becomes excessive due to the plurality of nodes being pulled by at least one control point, and the skeleton model is violated. Furthermore, according to the present invention, each tension has a strength corresponding to the distance between the node and the control point. Accordingly, it is possible to prevent a situation where a plurality of balanced states occur in the shape of the skeleton model.
[0020]
According to the present invention, the second deformation step is performed after the first deformation step, and the orientation of the arc direction vector of the skeleton model is set to the middle in the initial stage of the first iterative calculation of the first deformation step. The calculation is performed so as to approach the direction of the split arc direction vector. In this way, the skeleton model can be deformed into a shape suitable for deformation in the second deformation step in the initial stage of the first iterative calculation of the first deformation step. As a result, it is possible to prevent a situation in which the deformation of the skeleton model into an appropriate shape is disabled in the second deformation step.
[0021]
In the present invention, the first deformation step is performed after the second deformation step, and at the initial stage of the second iterative calculation of the second deformation step, the node of the skeleton model in which the movement path is designated It is characterized by performing an operation of pulling a point to a given position on the movement route. By doing so, it is possible to deform the skeleton model into a shape suitable for deformation in the first deformation step in the initial stage of the second iterative calculation of the second deformation step. As a result, it is possible to prevent a situation in which the deformation of the skeleton model into an appropriate shape is disabled in the first deformation step.
[0022]
The present invention is also a method for deforming a shape of a skeleton model, wherein at least one control point is prepared to control positions of a plurality of nodes of the skeleton model, and the plurality of nodes of the skeleton model and the at least one of the at least one A tension that varies depending on the distance between the plurality of nodes and the at least one control point is applied between the control points and a skeleton is obtained under a condition that the sum of the tensions is less than or equal to a given value. It is characterized by changing the shape of the model.
[0023]
According to the present invention, it is possible to prevent a situation in which the skeleton model is violated due to a plurality of nodes being pulled by at least one control point, and to prevent a situation in which a plurality of balanced states are generated in the shape of the skeleton model. it can.
[0024]
The present invention is also a method for deforming a shape of a skeleton model, wherein a first deformation step of deforming the shape of the skeleton model by a first iterative calculation according to a given first condition, a given second And a second deformation step for deforming the shape of the skeleton model by a second iterative calculation according to the above condition, and performing the second deformation step after the first deformation step and the first deformation In an initial stage of the first iterative calculation of a step, an operation is performed in consideration of the second condition of the second deformation step.
[0025]
According to the present invention, in the initial stage of the first iterative calculation of the first deformation step, the skeleton model can be deformed into a shape suitable for the deformation in the second deformation step. As a result, it is possible to prevent a situation in which the deformation of the skeleton model into an appropriate shape is disabled in the second deformation step.
[0026]
Further, the image generation apparatus according to the present invention includes means for outputting the shape of the skeleton model obtained by any one of the above methods, and operation means for giving an instruction for the operator to create the shape of the skeleton model. It is characterized by. As a result, a shape data creation tool or the like using the method of the present invention can be realized.
[0027]
The image generation apparatus according to the present invention includes means for outputting an image of a moving object accompanying the skeleton model obtained by any one of the methods described above. As a result, it is possible to realize a game device or the like using the shape data obtained by the method of the present invention.
[0028]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
[0029]
1. Explanation of comparative example
First, a comparative example of this embodiment will be described.
[0030]
Intermediate frame f as shown in FIG.1, F2, FThreeAs a comparative example for obtaining the shape of the skeleton model, a method using joint angle interpolation and a method using inverse kinematics can be considered.
[0031]
1.1 Joint angle interpolation
In Comparative Example 1, the shape of the intermediate frame is obtained by interpolating the joint angles of the skeleton model.
[0032]
Taking FIG. 3A as an example, the key frame f0Arc A at12Joint angle θTenAnd key frame fFourArc A at12Joint angle θ14And the intermediate frame f2Joint angle at12Seeking. More specifically, θ12= (ΘTen+ Θ14) / 2. Similarly, θ20And θtwenty fourBy interpolatingtwenty twoAnd θ30And θ34By interpolating32Seeking.
[0033]
However, in this comparative example 1, the node NFourHowever, it does not move on the designated path curve 28. That is, node NFourPasses through the position 32 instead of the position 30 on the path curve 28. Therefore, the shape of the intermediate frame can be changed smoothly, but the node NFourIt is impossible to meet the user's desire to move the path on the path curve 28.
[0034]
1.2 Inverse Kinematics
In this comparative example 2, the shape of the intermediate frame is obtained using inverse kinematics with the fixed node as the root and the node with the specified path curve as the effector. Taking FIG. 3B as an example, the fixed node N1Becomes the root and the node N where the path curve 28 is specifiedFourBecomes an effector. And node NFourThe shape of the skeleton model at the intermediate frame is obtained by inverse kinematics while pinching and moving along the path curve 28.
[0035]
However, in Comparative Example 2, the frame f obtained by inverse kinematicsFourThe shape 34 in FIG. 5 becomes different from the shape 36 in the original key frame. Therefore, node NFourCan be moved on the path curve 28, but cannot satisfy the user's desire to change the key frame shape to a desired shape.
[0036]
In order to solve the problems of Comparative Examples 1 and 2 as described above, in this embodiment, the intermediate frame shape of the skeleton model is derived by the following method.
[0037]
2. Overview of this embodiment
2.1 Preconditions
First, it is assumed that the user creates a character motion (animation) in the following procedure. That is, first, the user creates several poses of the character and registers them as key frames. Next, a path curve (moving path in a broad sense) between key frames is designated for some nodes. By specifying the path curve, the position of the node in each intermediate frame between the key frames is specified. Note that the position of the node in the intermediate frame may be explicitly specified by the user, or may be calculated by a program based on the path curve specified by the user or the moving speed of the node specified by the user. Good.
[0038]
Now, when a user creates a motion of a character, there is a case where the position of a node is desired to be fixed from one key frame to the next key frame. Such node fixing can be understood as a case where the path curve is a straight line and the start point and end point of the path curve coincide with each other.
[0039]
Therefore, in this embodiment, the node is fixed by specifying a path curve. In other words, when the user wants to fix a node, the user designates a straight path curve whose start point and end point coincide with the node. In this way, in addition to specifying the path curve, there is no need to provide a separate user interface for specifying fixed nodes. As a result, it is possible to prevent a situation in which the calculation fails due to the inconsistent node fixing designation by the user.
[0040]
The present embodiment aims to generate an intermediate frame that satisfies the following two requirements and smoothly interpolates between key frames.
[0041]
First, make sure the motion of the completed skeleton model passes through the keyframe pose. However, this does not apply when the skeleton model interferes with the polygon object.
[0042]
Secondly, a node for which a path curve is specified always moves as specified unless the shape is impossible. Here, “impossible in terms of shape” means a state in which a node cannot move on a specified path curve due to constraints such as arc length, movable range of joint angles, interference with polygon objects, and the like. .
[0043]
2.2 Method for deriving intermediate frame shape by 3-step puller
In this embodiment, the shape of the intermediate frame of the skeleton model is derived by a three-step puller. This derivation method will be described in detail using a PAD (Program Analysis Diagram) in FIG.
[0044]
In the following description, it is assumed that the two key frames to be interpolated are the kth frame and the k + n frame. Also, the shape of the skeleton model at these key frames is interpolated to derive the shape at the (k + 1) th to (k + n-1) th frames which are intermediate frames.
[0045]
2.2.1 Derivation of mid-arc direction vector
First, a middle arc direction vector is derived for each arc of the skeleton model (step U1 in FIG. 4). More specifically, the direction of the arc direction vector of the kth frame and the direction of the arc direction vector of the k + n frame are equally divided, and the k + 1 to k + n-1 frames are used. Find the middle arc direction vector.
[0046]
A unit vector from one end of the arc to the other end is referred to as an arc direction vector. The middle arc direction vector is obtained by equally dividing the direction of the arc direction vector in the key frame.
[0047]
Arc A in FIG.12For example, the key frame f0Direction of the arc direction vector 40 and the key frame fFourBy dividing the direction of the arc direction vector 42 at 4 into four equal parts, a middle arc direction vector is derived. Arc Atwenty three, A34The intermediate arc direction vector for is similarly derived.
[0048]
The derived mid-arc direction vector is used in Step 2 when deriving the shape of the intermediate frame, as will be described later.
[0049]
2.2.2 Deformation by node puller and AV puller
After deriving the intermediate arc direction vector, the shape of the skeleton model from the (k + 1) th frame to the (k + n) th frame is sequentially derived by the following procedure. That is, the shape of the skeleton model of the i-1 frame (the shape one frame before) is read (step U2 in FIG. 4), the next two steps (Step1, Step2) are modified (step U3, U4), and the i frame (Step U5).
[0050]
Step 1: Unfix the node for which the path curve is not specified, pull the node for which the path curve is specified to a given position on the path curve, and deform the skeleton model until the calculation converges (step U3 in FIG. 4). The pull applied to the node in Step 1 is called a node puller.
[0051]
For example, in FIG.0The node puller acts on the shape of the frame f1The process of deriving the shape of is shown. In FIG. 6, node N2, NThreeIs unfixed and node N1, NFourThe node puller is made to act on. Where node NFourIs a node for which a path curve is specified. Node NFourIs pulled to a position 44 on the path curve by this node puller. On the other hand, node N1Is a fixed node. Fixed node N1As described above, it is assumed that a straight path curve having the same start point and end point is designated. That is, node N1The length of the node puller acting on is 0 in the initial state.
[0052]
Step2: Fix the node where the path curve is specified at the position at the end of Step1, and leave the node where the path curve is not specified unfixed. Then, a twist is applied so that the direction of the arc direction vector is as close as possible to the direction of each intermediate arc direction vector, and the skeleton model is deformed until the calculation converges (step U4 in FIG. 4). This twist acting on the arc is referred to as AV puller (arc vector puller).
[0053]
For example, in FIG.1, NFourIs fixed, nodes N2 and N3 are not fixed, and AV puller is operated. As a result, Arc A12, Atwenty three, A34The skeleton model is deformed so that the direction of (arc direction vector) approaches the direction of the middle arc direction vector 46, 48, 50, respectively.
[0054]
The deformation of the skeleton model by the node puller and AV puller can be realized, for example, by inverse kinematics according to the technique of Japanese Patent Application Laid-Open No. 10-208072 filed by the present applicant.
[0055]
Also, the direction of each arc direction vector and the direction of each middle arc direction vector generally do not completely coincide. For example, in FIG.1, NFourThis is because it is often impossible geometrically to make the direction of each arc direction vector and the direction of each arc direction vector perfectly match under such conditions. . However, if the deformation by the node puller and AV puller is performed using inverse kinematics as disclosed in JP-A-10-208072, the shape of the intermediate frame can be smoothly changed.
[0056]
The above-described transformation processing (steps U2 to U5 in FIG. 4) by the nodes puller and AV puller is repeated until i = k + 1 to i = k + n, and the k + 1th frame is changed from the shape of the kth frame. Shape, shape of k + 1 frame to shape of k + 2 frame, shape of k + 2 frame to shape of k + 3 frame, shape of k + 3 frame to shape of k + 4 frame In this way, the shape of the skeleton model is sequentially derived. When the shape of the skeleton model of the (K + n) th frame is derived, the process of correcting the direction of each arc normal vector is performed.
[0057]
That is, the direction of the arc normal vector in the (k + n) th frame finally obtained by the deformation by the nodes puller and AV puller is different from the direction when registered as the key frame.
[0058]
Taking FIG. 8A as an example, the frame f obtained by the deformation by the nodes puller and AV puller.FourThe direction of the arc normal vector 52 of (k + n frame) is different from the direction of the arc normal vector 54 when registered as a key frame. Therefore, it is necessary to correct the direction of the normal vector 52 of the arc.
[0059]
2.2.3 Derivation of mid-arc normal vector
First, an intermediate arc normal vector is derived for each arc of the skeleton model (step U6 in FIG. 4).
[0060]
More specifically, the arc normal vector of the k + n frame finally obtained by the deformation by the node puller and AV puller is compared with the arc normal vector of the k + n frame at the time of key frame registration. Rotation angle φ around the arc direction vectorNVAsk for. Taking FIG. 8A as an example, the rotation angle φ around the arc direction vector from the arc normal vector 52 to 54.NVAsk for.
[0061]
Next, this φNVIs divided evenly by the number of frames n. Then, the arc normal vector of each frame, twisted around the arc direction vector of the arc, is defined as a middle-arc normal vector. That is, in the k + i frame, the arc normal vector is φNV-The twisted i / n is the middle arc normal vector.
[0062]
Taking FIG. 8B as an example, the frame f1Then, let the arc normal vector 56 be φNVAn intermediate arc normal vector 58 is twisted about the arc direction vector by / 4. On the other hand, the frame f2Then φNV/ 2, frame fThreeThen 3φNVAn arc normal vector twisted by / 4 becomes a middle arc normal vector.
[0063]
The arc normal vector is orthogonal to the arc direction vector, and the intermediate arc normal vector is obtained by rotating the arc normal vector by a given angle around the arc direction vector. Therefore, the intermediate arc normal vector is also orthogonal to the arc direction vector and satisfies the requirement as an arc normal vector.
[0064]
2.2.4 Deformation by NV puller
After deriving the intermediate arc normal vector, the shape of the skeleton model from the (k + 1) th frame to the (k + n-1) th frame is sequentially corrected in the following procedure. That is, the shape of the skeleton model of the i frame is read (step U7 in FIG. 4), the next step 3 is transformed (step U8), and the shape is stored as the shape of the i frame (step U9).
[0065]
Step3: Fix all nodes. Then, a twist is applied so that the direction of the arc normal vector is as close as possible to the direction of each middle arc normal vector of the frame, and the skeleton is deformed until the calculation converges (step U8 in FIG. 4). This torsion acting on the arc normal vector is called NV puller (normal vector puller). The deformation processing by the NV puller (steps U7 to U9 in FIG. 4) is repeated from i = k + 1 to i = k + n-1, from the k + 1 frame to the k + n-1 frame. The direction of the arc normal vector of the skeleton model is sequentially corrected.
[0066]
Taking FIG. 8B as an example, the frame f1Then Arc A12An NV puller is applied to make the direction of the arc normal vector 56 close to the direction of the intermediate arc normal vector 58. Frame f2, FThree, FFourThe same applies to. For example, frame fFourThen, in FIG. 8A, an NV puller acts to make the direction of the arc normal vector 52 as close as possible to the direction of the intermediate arc normal vector 54. As a result, it is possible to eliminate the situation in which the direction of the arc normal vector 52 is different from the direction of the arc normal vector (intermediate arc normal vector) 54 at the time of key frame registration.
[0067]
As described above, the three requirements of node puller, AV puller, and NV puller are sequentially applied to derive the shape of the intermediate frame, so that the above two requirements of 2.1 (the motion of the completed skeleton model is The key frame pose must be passed, and the node with the specified path curve must move as specified unless the shape is impossible. Become.
[0068]
2.3 Node puller by rubber band
In the present embodiment, the rubber band technique disclosed in Japanese Patent Laid-Open No. 10-208072 is used as the node puller of Step 1 described above.
[0069]
Taking FIG. 9A as an example, node N with a specified path curve.FourIs pulled to a position (control point) 60 on the path curve by a node puller, that is, a rubber band 62. Here, the rubber band 62 has a root and a tip, the root of the rubber band 62 moves with the control point 60, and the tip of the rubber band 62 is a node N.FourWill remain fixed. The rubber band 62 has the property of trying to shrink, and the node NFourBetween the control point 60 and, for example, the node NFourTherefore, a tension (force for minimizing the distance) that changes in accordance with the distance between the control point 60 and the control point 60 acts. Due to this tension, as shown in FIG.FourIs pulled toward the control point 60, and the skeleton model is deformed.
[0070]
The following advantages can be obtained by using a rubber band as the node puller. For example, when the user designates a path curve 64 as shown in FIG.2Node NFourCannot be moved to a position 66 on the path curve 64. In such a case, if the rubber band is not used, the calculation is broken. However, using the rubber band 68, the frame f2Node NFourIs pulled to the position 66 which is the control point, the above-described calculation failure can be avoided.
[0071]
2.4 Variable adjustment of rubber band tension
In this embodiment, it is possible to specify a path curve for a plurality of nodes. For example, as shown in FIG.Four, NFiveIf a path curve is specified for these two nodes NFour, NFiveTwo control points 70 and 72 are prepared for controlling the position of. And node NFour, NFiveAnd rubber bands 74 and 76 act between the control points 70 and 72.
[0072]
Thus, in this embodiment, a plurality of rubber bands may act on a plurality of nodes.
[0073]
When the rubber band tension is increased, the skeleton model is likely to be ramped, but this rampage can be solved to some extent by setting an upper limit on the rubber band tension. However, when a plurality of rubber bands act on a plurality of nodes as described above (when a plurality of rubber bands act on a skeleton model), the following problem occurs only by setting an upper limit on the tension of the rubber band. End up.
[0074]
For example, as shown in FIG.Four, NFiveAre pulled in the same direction, even if the tension of the individual rubber bands 74 and 76 is small, the total sum of the tensions of all the rubber bands becomes large. For this reason, even if an upper limit is set for the tension of each rubber band 74, 76, the skeleton model will be rampant.
[0075]
In addition, as shown in FIG.,NThreePass curves 78 and 80 are specified for the intermediate frame f2Suppose that the rubber bands 82 and 84 are stretched and balanced. In this case, all the states shown in FIGS. 10B, 10C, and 10D are balanced by simply setting an upper limit on the tension of the rubber bands 82 and 84. The rubber band has a length of, for example, lr *This is because the tension becomes the upper limit at the time of (1) and the tensions of the rubber bands 82 and 84 reach the upper limit and are equal in all cases of FIGS. 10 (B), (C), and (D). That is, for the user, the balanced state of FIG. 10B is most desirable, but there is a possibility that the balanced state is obtained as shown in FIGS. 10C and 10D.
[0076]
Therefore, in this embodiment, when a plurality of tensions (rubber bands) act between a plurality of nodes and a plurality (or one) of control points as described above, the distance between the nodes and the control points is as follows. The skeleton model is deformed under the condition that the tension according to is applied and the total sum of the tensions is less than a given value.
[0077]
According to this embodiment, a plurality of nodes N as shown in FIG.Four, NFiveHowever, even if tension is applied by a plurality of rubber bands 74 and 76, the total sum of these tensions is less than a given value. Therefore, it is possible to avoid a situation in which the skeleton model is rampant. Further, each tension does not have a specific upper limit value, and its strength changes according to the distance between the node and the control point. Therefore, a situation where a balanced state as shown in FIGS. 10C and 10D can be avoided. This is because the tension of 84 is stronger than that of the rubber band 82 in FIG. 10C, and the tension of 82 is stronger than that of the rubber band 84 in FIG.
[0078]
2.5 Addition of AV puller in Step1
As shown in FIG. 11A, the frame (key frame) f0, FFour, The node NFourSuppose that a path curve as shown in 86 is designated. In this case, the frame f1The shape of the skeleton model should be the shape 87 shown in FIG.
[0079]
However, in FIG. 11C, the frame f0When only the node puller of Step 1 described above is applied to the shape of the skeleton model, it is undefined whether the shape of the skeleton model is deformed to the shape 88 or 90 in FIG. In this case, there is no problem if the shape 88 is deformed. However, if the shape 90 is deformed, the arc A will be applied even if the AV puller is applied in the subsequent Step 2.12AV puller and arc A34AV puller acting on the balance is balanced with each other. For this reason, the shape 90 is not further deformed and cannot reach the original shape 87 of FIG.
[0080]
Therefore, in the present embodiment, step U3 in FIG. 4 is modified as shown in the PAD in FIG. 12, and only the node puller is used in the first loop of the iterative calculation in Step 1 (in the broader sense, the initial stage of the iterative calculation). In addition, the skeleton model is deformed by simultaneously operating the AV puller (step V1). That is, in the first loop of the iterative calculation, not only an operation for pulling a node with a specified path curve to a given position on the path curve, but also an operation for bringing the direction of the arc normal vector closer to the direction of the intermediate arc direction vector. Do. On the other hand, after the second loop, only the node puller is applied to deform the skeleton model until the calculation converges (step V2).
[0081]
By doing so, the frame f1It is possible to change the shape of the skeleton model to the original shape 87 of FIG.
[0082]
In FIG. 12, both the node puller and the AV puller are operated only in the first loop. However, for example, both the node puller and the AV puller are operated in the second and third loops. Also good. It is also possible to operate only the node puller in the first loop and to operate both the node puller and AV puller in the second loop.
[0083]
3. Skeleton model shape deformation method
When the skeleton model is deformed by the node puller, AV puller, or NV puller, for example, the shape deformation method of the skeleton model disclosed in JP-A-10-208072 can be used. Hereinafter, a method for deforming the shape of the skeleton model will be briefly described.
[0084]
3.1 Basic principle
In the shape deforming method of the present embodiment, as shown in FIG. 13A, the coordinates (x, y, z) of the nodes 102, 103, 104, the arcs 106, 107, 108 are used as basic variables representing the skeleton model 118. Use the components (u, v, w) of the arc normal vectors 110, 111, 112 perpendicular to. Thus, by using node coordinates and arc normal vectors as basic variables, it becomes possible to treat all nodes and arcs as equivalent. It is also possible to substitute the arc normal vector with another variable.
[0085]
Next, as shown in FIG. 13B, as a basic expression with the above-mentioned basic variables as unknowns, an expression that specifies that the length of the arc is a given value, and the length of the arc normal vector is given. And an expression that prescribes that the arc normal vector is perpendicular to the arc. For example, the basic expressions g = 0 and h = 0 can be replaced by other expressions.
[0086]
Here, the basic equation shown in FIG. 13B is nonlinear. Therefore, in this embodiment, a solution is obtained by an iterative calculation method such as Newton's method. By using the Newton method or the like in this way, the basic expression can be expressed by a linear expression of the change amount of the basic variable. Thus, the simultaneous equations to be solved are as shown in FIG.
[0087]
However, in the equation of FIG. 13C, the number of variables is larger than the number of equations. Therefore, in this embodiment, an evaluation formula for uniquely identifying a solution that satisfies the basic formula is prepared. Then, a condition that the value of the evaluation formula is made to be almost minimum, almost maximum or almost stopped is added, and a solution of the basic variable is obtained by applying the Lagrange multiplier method. By using the Lagrange multiplier method, the equation to be solved is as shown in FIG. 13D, and the number of variables matches the number of equations, so that the solution can be uniquely determined.
[0088]
In the present embodiment, the skeleton model is deformed based on given information such as the coordinates of a given position on the path curve, the middle arc direction vector, and the middle arc normal vector. At this time, the basic formula and the evaluation formula change based on the given information. Specifically, based on the given information, the known number included in the basic formula and the evaluation formula, and the shape of the formula itself change, thereby deforming the shape of the skeleton model.
[0089]
3.2 First order approximation of change in arc normal vector
In the present embodiment, as shown in FIG. 14A, the change amount of the arc normal vector n (u, v, w) is represented by a given variable ρ, and the solution of the basic variable is obtained. Seeking. More specifically, the change amount of the arc normal vector n is approximated by a linear expression of the variable ρ. The arc normal vector n is represented by three variables u, v, and w. However, as shown in FIG. 14A, n is perpendicular to the arc 150 and has a constant size. The degree is 1. Therefore, the amount of change of n can also be expressed by one variable ρ, thereby reducing the number of basic variables to be solved and speeding up the processing.
[0090]
3.3 Evaluation formula
Also, in this embodiment, in order to obtain a preferred skeleton model deformation, the amount of change in arc-to-arc angle, the distance between a node and a given control point, the amount of change in the direction of an arc having a fixed node at the end, The amount of change in coordinates and the amount of change in velocity of node coordinates are included in the evaluation formula. More specifically, as shown in FIG. 14B, various conditions are added to the evaluation formula. For example, by including the change amount of the arc-to-arc angle in the evaluation formula and minimizing the sum of squares of the change amount of the arc-to-arc angle, it is possible to prevent a situation such that only one set of arcs protrude and bend, The bending between the arcs can be balanced overall. In addition, a rubber band can be realized by including the distance between the node and a given control point in the evaluation formula. In addition, the amount of change in the direction of an arc having a fixed node at the end and the amount of change in node coordinates are included in the evaluation formula, and the arc rotation damper, node damper, etc. around the fixed node can be set to make the solution undefined. Can be prevented. Further, by including the node coordinate change amount and the node coordinate speed change amount in the evaluation formula and setting the node damper and the node inertia, it is possible to prevent the arc from being unstable due to unstable calculation convergence.
[0091]
4). Detailed algorithm
Next, an example of a detailed algorithm of the present embodiment will be described. In addition, the meaning of the sum code used in the following description is as follows. In the following, the angle between the arcs is referred to as an angle, and the two arcs constituting the angle and the three nodes that are the end points thereof are referred to as angle components.
[0092]
[Expression 1]
Figure 0004155425
The relationship between the order of the subscripts and the sign is as follows.
[0093]
[Expression 2]
Figure 0004155425
4.1 Basic formula
In FIG. 15, node NiThe coordinates of (xi, Yi, Zi). The arc is provided with an arc normal vector to represent rotation in a three-dimensional space. Arc Aij(Node Ni, Node NjNormal vector of arc)ij(Uij, Vij, Wij). In the present embodiment, the shape of the skeleton model is represented using these basic variables. The following basic formula holds for each arc.
[0094]
[Equation 3]
Figure 0004155425
Equation (1) is the arc AijLength of LijIt means that. Equation (2) means that the size of the normal vector is 1. Equation (3) means that the arc normal vector and the arc are perpendicular.
[0095]
4.2 Solving the basic equation
Equations (1), (2), and (3) are nonlinear equations, and the number of equations is less than the number of variables. Therefore, the Newton method and the Lagrange multiplier method are combined to solve.
[0096]
If there is no need to instruct, the variable suffix is omitted.
[0097]
4.2.1 Application of Newton's method
The amount of change of each variable per loop is defined as follows.
[0098]
[Expression 4]
Figure 0004155425
When the Newton method is applied to the above basic equation (1), the following equation is obtained.
[0099]
[Equation 5]
Figure 0004155425
To summarize this, the following formula is obtained.
[0100]
[Formula 6]
Figure 0004155425
lijIs the current value of the arc length and is expressed by the following equation. When the calculation is converged, lij= LijIt becomes.
[0101]
[Expression 7]
Figure 0004155425
Λ is a scale factor. The value of λ is the arc length L as in the following equation:ijThe average value of is used. NarcIs the number of arcs constituting the skeleton.
[0102]
[Equation 8]
Figure 0004155425
For the equations (2), (3) and the variables u, v, w, in order to reduce the unknowns of the equations to be solved, the Newton method is not used, but the first-order approximation using the one variable ρ described below is used.
[0103]
4.2.2 First order approximation of arc normal vector variation
Arc normal vector nijIs Arc AijComponent u since it is perpendicular toij, Vij, WijAlthough there are three variables, the degree of freedom of change is 1 as shown in FIG. Therefore, in order to reduce the number of unknown equations to be solved, linear approximation with one variable is performed.
[0104]
As shown in FIG. 15, the starting node N of the arciTo end node NjA unit vector heading to the arc direction vector aijIt is defined as In addition, as shown in FIG.ijVector s onijmake.
[0105]
[Equation 9]
Figure 0004155425
Differentiating and organizing equations (2) and (3), nij(Uij, Vij, Wij) Of change Δnij(Δuij, Δvij, Δwij) Is a newly introduced unknown variable ρijIt can be approximated as a linear expression of
[0106]
[Expression 10]
Figure 0004155425
nijN 'is the value to be taken in the next event cycleijAnd n 'ijIs originally Arc AijIt should be perpendicular to the size of 1 and have an error in the order of the square of the amount of change. Therefore, as shown in the following equation, the direction is first corrected, and the size is further corrected to 1, n ′ijAnd However, a 'ijIs aijIs the value taken in the next event cycle.
[0107]
[Expression 11]
Figure 0004155425
4.2.3 Application of Lagrange's multiplier method
In Equation (6), since the number of equations is smaller than the number of variables and the variable ρ is not included, it is not possible to uniquely determine the deformation of the skeleton model by itself. Therefore, an evaluation expression including ρ is prepared, and a solution is obtained by applying the Lagrange multiplier method under the condition that the expression is minimized. The evaluation formula is the formula U1, U2, UThree, ... Sum of UeConfigure as. Undetermined multiplier αijAnd U is defined as follows:
[0108]
[Expression 12]
Figure 0004155425
By solving the equation (6) and the following equation (14) simultaneously, solutions ξ, η, ζ, and ρ are obtained.
[0109]
[Formula 13]
Figure 0004155425
Based on the obtained solution, new values x ′, y ′, z ′ of x, y, z are obtained by the following equations, and the coordinates of the node are determined.
[0110]
[Expression 14]
Figure 0004155425
Then, new values n ′ (u ′, v ′, w ′) of n (u, v, w) are obtained from the equations (11), (12), and the arc normal vector is determined.
[0111]
4.3 Fixed arc direction
4.3.1 Meaning of fixed arc direction
When the direction of the arc is fixed, the arc is subject to the following constraints.
[0112]
That is, when the nodes at both ends are not fixed, only translation is possible (the direction of the arc normal vector cannot be changed). On the other hand, when at least one of the nodes at both ends is fixed, neither movement nor rotation is possible (completely fixed state).
[0113]
4.3.2 Trans group
When a plurality of adjacent arcs are fixed in direction, and these arcs move, these arcs move together in parallel. Such a group of one or more arcs (or two or more nodes) is called a trans group.
[0114]
If one of the nodes in the trans group is a representative node, the movement amount of the nodes other than the representative node in the trans group is equal to the movement amount of the representative node.
[0115]
For arcs with a fixed direction, equations (1) and (6) are not required, and the variable ρ disappears. For nodes other than the representative node in the trans group, the variables ξ, η, and ζ disappear from Equation (14). Thus, the calculation load can be reduced by reducing the number of variables.
[0116]
4.4 Creating an evaluation formula
As described above, in order to apply the Lagrange multiplier method, it is necessary to prepare an evaluation formula to be minimized. As the evaluation formula, as described with reference to FIG. 14B, various evaluation formulas including a change amount of the arc-to-arc angle, a change amount of the node coordinate, a speed change amount of the node coordinate, and the like can be considered. Details of these evaluation formulas are disclosed in JP-A-10-208072.
[0117]
4.4.1 Rubber band setting
A rubber band is a virtual arc with the property of shrinking. Here, one end of the rubber band (xi, Yi, Zi) And the other end (xci, Yci, Zci). As disclosed in Japanese Patent Laid-Open No. 10-208072, using this rubber band, the user can transform the skeleton model into a desired shape. In this case, one end of the rubber band (xi, Yi, Zi) Is the node N picked by the user with the mouse etc.iAnd the other end (xci, Yci, Zci) Move according to the movement of the user's mouse.
[0118]
The rubber band can also be used for the node puller as described above. In this case, one end (xi, Yi, Zi) Is the node N with the specified path curveiAnd the other end (xci, Yci, Zci) Becomes a control point (a given position on the path curve).
[0119]
Evaluation formula U of formula (13)eAnd U2By adding, the shrinkage of the rubber band can be expressed. WrIs a weight value (weighting coefficient) representing the strength of the contractibility (tension) of the rubber band.
[0120]
[Expression 15]
Figure 0004155425
U2iThe partial derivative of is as follows.
[0121]
[Expression 16]
Figure 0004155425
4.4.2 Variable adjustment of rubber band weight value
When the rubber band tension is increased, rampage tends to occur. Therefore, rubber band weight value WrIs made variable according to the state of the skeleton model. At this time, it is not sufficient to simply set an upper limit on the weight value, and it is necessary to consider the following cases.
[0122]
First, when a plurality of nodes are picked and pulled in the same direction, even if the tension of each rubber band is small, the total sum of tensions of all rubber bands becomes large (see FIG. 10A). ).
[0123]
Second, when a plurality of nodes are pulled in different directions, simply setting an upper limit on the rubber band tension causes the following problems. That is, when the shape of the skeleton model converges with the rubber band extended, the balance state may not be uniquely determined. For example, assume that one arc is pulled left and right as shown in FIG. Here, the limit length of the rubber bands 120 and 122 is set to lr *Then, FIGS. 16B, 16C, and 16D are all in a balanced state. In FIGS. 16B, 16C, and 16D, the lengths of the rubber bands 120 and 122 are all l.r *This is because the tensions of the rubber bands 120 and 122 are all equal to the upper limit value.
[0124]
Therefore, rubber band weight value WrIs the rubber band length l as shown in the following equation:riThe value is proportional to the reciprocal of the sum of.
[0125]
[Expression 17]
Figure 0004155425
However, when the total rubber band length is small, the weight value WrW should not be too largerHas an upper limit Wr *Is set in advance.
[0126]
WrIs controlled variably as shown in Equation (19), under the condition that the sum of the tensions of the rubber bands acting between multiple nodes and multiple control points is less than a given value. The shape of can be deformed. Also, there is no specific upper limit for the tension of each rubber band, and the tension of the rubber band is expressed by the node N where the path curve is specified as shown in equation (17).i(Xi, Yi, Zi) And the control point (xci, Yci, Zci) And changes according to the distance. Accordingly, it is possible to avoid a situation in which the balanced state as shown in FIGS. 16B, 16C, and 16D is not uniquely determined.
[0127]
4.4.3 Node puller
The node puller is realized using the rubber band described in Section 4.4.1 and 4.4.2. By performing the convergence calculation by applying the node puller, the deformation of the skeleton model by the node puller can be realized.
[0128]
4.4.4 AV puller
When the AV puller is applied, the skeleton model is deformed so that the sum of squares of the difference between the arc direction vectors of the arcs and the middle arc direction vector is minimized. Evaluation formula U of formula (13)eAnd UAThis transformation can be realized by performing convergence calculation by adding.
[0129]
[Expression 18]
Figure 0004155425
Where WAIs a weight value (weighting coefficient) representing the strength of the AV puller. As shown in FIG.ijArc direction vector aijAnd middle arc direction vector apijThe angle betweenpijAnd And θpijThe amount of change inpijAnd
[0130]
[Equation 19]
Figure 0004155425
φpijIs expressed by a first-order approximation of ξ, η, ζ. First, the following equation holds.
[0131]
[Expression 20]
Figure 0004155425
The above formulapijIf the second and higher order terms are ignored and transformed, the following equation is obtained.
[0132]
[Expression 21]
Figure 0004155425
As shown in FIG.ijAnd apijA in the planeijA unit vector a perpendicular toqijmake.
[0133]
[Expression 22]
Figure 0004155425
Equation (26) is transformed using Equation (27) etc.i, Ξj, Ηi, Ηj, Ζi, Ζj, ΡijBy UAijWhen the partial derivative of is obtained, the following equation is obtained.
[0134]
[Expression 23]
Figure 0004155425
In the above method, θpijIf = 0, vector aqijBecomes indefinite and cannot be calculated. Where θpijIn the case of << 1, the following formula is used.
[0135]
[Expression 24]
Figure 0004155425
Equation (30) is transformed and ξi, Ξj, Ηi, Ηj, Ζi, Ζj, ΡijBy UAijWhen the partial derivative of is obtained, the following equation is obtained.
[0136]
[Expression 25]
Figure 0004155425
4.4.5 NV puller
When the NV puller is applied, the skeleton model is deformed so that the sum of squares of the difference in direction between the arc normal vector and the middle arc normal vector of each arc is minimized. Evaluation formula U of formula (13)eThe following formula UNThis can be realized by adding.
[0137]
[Equation 26]
Figure 0004155425
WNIs a weight value (weight coefficient) representing the strength of the NV puller. Arc AijNormal vector nij(Uij, Vij, Wij) For the mid-arc normal vectorpij(Upij, Vpij, Wpij).
[0138]
ξi, Ξj, Ηi, Ηj, Ζi, Ζj, ΡijBy UNijWhen the partial derivative of is obtained, the following equation is obtained.
[0139]
[Expression 27]
Figure 0004155425
5. Image generating apparatus and information storage medium
18A, 18B, and 18C show various embodiments of an image generation apparatus and an information storage medium using the skeleton model intermediate frame shape derivation method and shape deformation method of the present embodiment.
[0140]
FIG. 18A shows an example in which the present embodiment is applied to a shape data creation tool that is one of image generation apparatuses. An instruction for creating the key frame shape of the skeleton model, designation of a path curve, and the like are performed using, for example, the keyboard 200 and the mouse 202 which is a pointing device. The processing unit 210 deforms the shape of the skeleton model by the method of the present embodiment to generate shape data, and the image of the skeleton model based on the shape data generated by the shape data generation unit 212. And an image generation unit 214 to be combined. The processing unit 210 is configured by a CPU, a DSP, a memory, and an ASIC for image generation if necessary, in terms of hardware. An information storage medium 216 composed of an FD, a CD, a DVD, an IC card, a memory, and the like has various information such as a shape data creation program for realizing the method of the present embodiment and data necessary for executing the program. Is stored. The processing unit 210 performs processing based on information input from the keyboard 200 and the mouse 202 and information stored in the information storage medium 216, thereby displaying a skeleton model image 219 or the like on the display unit 218. According to this shape data creation tool, shape data can be created while confirming the shape of the displayed skeleton model image 219, and the efficiency of design work can be improved.
[0141]
FIG. 18B shows an example in which the present embodiment is applied to a game device which is one of image generation devices. The game controllers 220 and 222 are for the player to input operation information. The processing unit 230 performs a game calculation unit 232 that performs a calculation for synthesizing a game image based on operation information from the player, and an image generation unit 234 that generates an image based on a calculation result from the game calculation unit 232. In terms of hardware, it includes a CPU, a DSP, a memory, and an ASIC for image generation if necessary. The information storage medium 236 stores shape data created by the method of the present embodiment or various information generated based on the shape data, a game program, and the like. On the display unit 238, game character images 239, 240 and the like that are operated based on the shape data and the like are displayed. If the game device is for business use, the shape data and the game program are stored in an information storage medium such as a semiconductor memory and a hard disk. If the game device is for home use, the shape data and the game program are It is stored in an information storage medium consisting of a CD, DVD, game cassette or the like. In a game device of a type in which a plurality of terminals are connected via a communication line via a host device and a game program or the like is distributed, the shape data and the game program are stored in an information storage medium of the host device such as a magnetic disk, CD, DVD, It is stored in a semiconductor memory or the like.
[0142]
On the other hand, FIG. 18C is an example of a game device when the game calculation unit 242 includes a shape data generation unit 243. In this case, the information storage medium 246 stores a shape data generation program that implements the method of the present embodiment instead of the shape data, and the shape data generation unit 243 built in the game device generates the shape data in real time. To do. For example, the player causes the skeleton model to perform a desired operation using the game controllers 220 and 222 and the like. As a result, the images 239 and 240 of the moving object accompanying the skeleton model are displayed on the display unit 238.
[0143]
The present invention is not limited to that described in the above embodiment, and various modifications can be made.
[0144]
For example, in the present embodiment, the case where the deformation by the AV puller is performed after the deformation by the node puller has been described. However, in the present invention, the deformation by the node puller may be performed after the deformation by the AV puller. For example, when priority is given to the direction of the arc in the specified direction rather than the specified node passing on the path curve, it is desirable to perform the deformation by the node puller after the deformation by the AV puller. In this case, the direction of the arc is fixed by the method of fixing the direction of the arc described in Section 4.3.
[0145]
In addition, the deformation by the nodes puller, AV puller, and NV puller is performed by changing the basic variables and the solutions described in FIGS. 13 (A) to 13 (D) based on given information. It is particularly desirable to achieve this by a desired method. However, the present invention is not limited to this, and these modifications may be realized by another method.
[0146]
The method of adaptively changing the rubber band tension described in Section 2.4 can be widely applied not only to the rubber band in the node puller but also to various rubber bands used for deformation of the skeleton model. For example, a technique for adaptively changing the rubber band tension can be applied to a rubber band used when a skeleton model is deformed by a user's mouse operation as disclosed in Japanese Patent Laid-Open No. 10-208072.
[0147]
In addition, an application example of a technique for performing an operation in consideration of the second condition of the second deformation step in the initial stage of the iterative calculation of the first deformation step is that AV puller is used in the initial stage of deformation by the node puller. It is not limited to the application example (refer FIG. 12) made to act. For example, various application examples such as an application example in which a node puller is operated in the initial stage of deformation by AV puller can be considered.
[0148]
[Brief description of the drawings]
FIGS. 1A, 1B, and 1C are diagrams for explaining a procedure for creating a motion of a character.
FIGS. 2A and 2B are diagrams for explaining path curve designation and intermediate frame shape derivation. FIG.
FIGS. 3A and 3B are diagrams for explaining a comparative example of the present embodiment.
FIG. 4 is a PAD for explaining processing of the present embodiment.
FIG. 5 is a diagram for explaining derivation of a middle arc direction vector.
FIG. 6 is a diagram for explaining deformation by a node puller.
FIG. 7 is a diagram for explaining deformation by an AV puller.
FIGS. 8A and 8B are diagrams for explaining the derivation of the mid-arc normal vector. FIGS.
FIGS. 9A and 9B are diagrams for explaining a method using a rubber band as a node puller. FIG.
FIGS. 10A, 10B, 10C, and 10D are diagrams for explaining an adaptive variable of the rubber band tension. FIG.
FIGS. 11A, 11B, and 11C are diagrams for explaining a method of operating an AV puller in an initial stage of iterative calculation performed by operating a node puller.
FIG. 12 is a PAD for explaining a method of operating an AV puller in an initial stage of iterative calculation performed by operating a node puller.
FIGS. 13A, 13B, 13C, and 13D are diagrams for explaining a method for obtaining a solution of a basic variable while changing a basic expression or an evaluation expression based on given information. FIG.
FIG. 14A is a diagram for explaining a technique for expressing the change amount of the arc normal vector by one variable, and FIG. 14B is a diagram showing various examples of the evaluation formulas. is there.
FIG. 15 is a diagram for explaining the relationship among arcs, nodes, arc normal vectors, and the like.
16 (A), (B), (C), and (D) are diagrams for explaining an adaptive variable of the rubber band tension. FIG.
FIG. 17 is a diagram for explaining a relationship between an arc direction vector, an intermediate arc direction vector, and the like.
FIGS. 18A, 18B, and 18C are diagrams illustrating various embodiments of an image generation apparatus and an information storage medium.
[Explanation of symbols]
10 Skeleton model
12 Joint points (nodes)
14 End point (node)
16 Bone (Arc)
20, 22 Key frame shape
24 Intermediate frame shape
26 Skeleton model
28 Path curve
40, 42 arc direction vector
44 Position on the path curve
46, 48, 50 Middle arc direction vector
52 Arc normal vector after deformation by node puller and AV puller
54 Arc normal vector for keyframe registration
56 arc normal vector
58 Medium Arc Normal Vector
60 control points (positions on the path curve)
62 Rubber Band
64 path curve
66 Control points (positions on the path curve)
68 Rubber Band

Claims (10)

スケルトンモデルのキーフレームの形状を変形させて、スケルトンモデルの中間フレームの形状を生成するための画像生成装置であって、An image generating device for generating a shape of an intermediate frame of a skeleton model by deforming a shape of a key frame of the skeleton model,
移動経路が指定されたスケルトンモデルのノードが、該移動経路上の所与の位置に引っ張られるように、スケルトンモデルの形状を変形させ、Transform the shape of the skeleton model so that the node of the skeleton model with the specified movement path is pulled to a given position on the movement path;
スケルトンモデルのアーク方向ベクトルの向きが、キーフレームでのアーク方向ベクトルに基づき得られる中割りアーク方向ベクトルの方向に近づくように、スケルトンモデルの形状を変形させ、Deform the shape of the skeleton model so that the direction of the arc direction vector of the skeleton model approaches the direction of the intermediate arc direction vector obtained based on the arc direction vector at the key frame,
スケルトンモデルのアーク法線ベクトルの向きが、キーフレームでのアーク法線ベクトルに基づき得られる中割りアーク法線ベクトルの方向に近づくように、スケルトンモデルの形状を変形させる形状データ生成部を含むことを特徴とする画像生成装置。Includes a shape data generator that deforms the shape of the skeleton model so that the orientation of the arc normal vector of the skeleton model approaches the direction of the intermediate arc normal vector obtained based on the arc normal vector at the key frame An image generation apparatus characterized by the above.
請求項1において、
前記形状データ生成部が、
スケルトンモデルを、スケルトンモデルのノードの座標を含む基本変数により表し、
スケルトンモデルのアークの長さが所与の値となることを規定する式を含み前記基本変数を未知数とする基本式と、前記基本式を満たす解を一意的に特定するための評価式の少なくとも一方を、所与の情報に基づいて変化させ、
基本式をほぼ満たし且つスケルトンモデルのアーク方向ベクトルの方向と中割りアーク方向ベクトルの方向との差を含む評価式の値がほぼ極小、ほぼ極大及びほぼ停留のいずれかになるように基本変数の解を求め、
求められた解に基づいてスケルトンモデルの形状を変形させることを特徴とする画像生成装置。
In claim 1,
The shape data generator
A skeleton model is represented by a basic variable that contains the coordinates of the nodes of the skeleton model,
A basic expression including an expression defining that the arc length of the skeleton model has a given value and having the basic variable as an unknown, and at least an evaluation expression for uniquely identifying a solution satisfying the basic expression Change one based on given information,
The basic variables are set so that the value of the evaluation formula that satisfies the basic formula and that includes the difference between the direction of the arc direction vector of the skeleton model and the direction of the intermediate arc direction vector is almost minimal, almost maximal, and almost stationary. Seeking a solution
Image generation apparatus characterized by causing deformation of the shape of the skeleton model based on the obtained solutions.
請求項1又は2において、
前記形状データ生成部が、
スケルトンモデルを、スケルトンモデルのノードの座標を含む基本変数により表し、
スケルトンモデルのアークの長さが所与の値となることを規定する式を含み前記基本変数を未知数とする基本式と、前記基本式を満たす解を一意的に特定するための評価式の少なくとも一方を、所与の情報に基づいて変化させ、
基本式をほぼ満たし且つスケルトンモデルのアーク法線ベクトルの方向と中割りアーク法線ベクトルの方向との差を含む評価式の値がほぼ極小、ほぼ極大及びほぼ停留のいずれかになるように基本変数の解を求め、
求められた解に基づいてスケルトンモデルの形状を変形させることを特徴とする画像生成装置。
In claim 1 or 2,
The shape data generator
A skeleton model is represented by a basic variable that contains the coordinates of the nodes of the skeleton model,
A basic expression including an expression defining that the arc length of the skeleton model has a given value and having the basic variable as an unknown, and at least an evaluation expression for uniquely identifying a solution satisfying the basic expression Change one based on given information,
Basic so that the value of the evaluation formula including the difference between the direction of the arc normal vector of the skeleton model and the direction of the intermediate arc normal vector is almost minimal, almost maximal, and almost stationary. Find the solution of the variable
Image generation apparatus characterized by causing deformation of the shape of the skeleton model based on the obtained solutions.
請求項1乃至3のいずれかにおいて、
前記形状データ生成部が、
移動経路が指定されたスケルトンモデルのノードと、移動経路が指定されたスケルトンモデルの前記ノードの位置を制御するための制御点との間に、該ノードと該制御点との距離に応じて変化する張力を働かせてスケルトンモデルの形状を変形させることを特徴とする画像生成装置。
In any one of Claims 1 thru | or 3,
The shape data generator
And a node of the moving path is specified skeleton model, between the control point for controlling the position of the node of the moving path is specified skeleton model, according to the distance between said node and said control point change An image generating apparatus that deforms the shape of a skeleton model by applying a tension to be applied .
請求項1乃至4のいずれかにおいて、
前記形状データ生成部が、
移動経路が指定されたスケルトンモデルの複数のノードと、移動経路が指定されたスケルトンモデルの前記複数のノードの位置を制御するための少なくとも 1 つの制御点との間に、該複数のノードと該少なくとも1つの制御点との距離に応じて変化する張力を働かせると共に、該張力の総和が所与の値以下になるような条件の下でスケルトンモデルの形状を変形させることを特徴とする画像生成装置。
In any one of Claims 1 thru | or 4,
The shape data generator
A plurality of nodes of the moving path is specified skeleton model, between at least one control point for controlling the position of said plurality of nodes of the moving path is specified skeleton model, said plurality of nodes and the Generating an image characterized by applying a tension that changes according to the distance to at least one control point and deforming the shape of the skeleton model under a condition that the total sum of the tensions is less than or equal to a given value apparatus.
請求項1乃至5のいずれかにおいて、
前記形状データ生成部が、
移動経路が指定されたスケルトンモデルのノードが、該移動経路上の所与の位置に引っ 張られるように、スケルトンモデルの形状を変形させた後に、スケルトンモデルのアーク方向ベクトルの向きが、キーフレームでのアーク方向ベクトルに基づき得られる中割りアーク方向ベクトルの方向に近づくように、スケルトンモデルの形状を変形させると共に、
移動経路が指定されたスケルトンモデルのノードが、該移動経路上の所与の位置に引っ張られるように、スケルトンモデルの形状を変形させる際の第1の反復計算の初期段階において、スケルトンモデルのアーク方向ベクトルの向きを中割りアーク方向ベクトルの方向に近づける演算を行うことを特徴とする画像生成装置。
In any one of Claims 1 thru | or 5,
The shape data generator
Node moving route is specified skeleton model, as tensioned hit in a given position on the movement path, after deforming the shape of the skeleton model, the direction of the arc direction vector of the skeleton model, keyframes While deforming the shape of the skeleton model so as to approach the direction of the intermediate arc direction vector obtained based on the arc direction vector at
In the initial stage of the first iteration when transforming the shape of the skeleton model so that the node of the skeleton model with the specified movement path is pulled to a given position on the movement path, the arc of the skeleton model An image generating apparatus characterized by performing a calculation to bring the direction of a direction vector closer to the direction of a middle arc direction vector .
請求項1乃至5のいずれかにおいて、
前記形状データ生成部が、
スケルトンモデルのアーク方向ベクトルの向きが、キーフレームでのアーク方向ベクトルに基づき得られる中割りアーク方向ベクトルの方向に近づくように、スケルトンモデルの形状を変形させた後に、移動経路が指定されたスケルトンモデルのノードが、該移動経路上の所与の位置に引っ張られるように、スケルトンモデルの形状を変形させると共に、
スケルトンモデルのアーク方向ベクトルの向きが、キーフレームでのアーク方向ベクトルに基づき得られる中割りアーク方向ベクトルの方向に近づくように、スケルトンモデルの形状を変形させる際の第2の反復計算の初期段階において、移動経路が指定されたスケルトンモデルのノードを、該移動経路上の所与の位置に引っ張る演算を行うことを特徴とする画像生成装置。
In any one of Claims 1 thru | or 5,
The shape data generator
After the shape of the skeleton model is deformed so that the direction of the arc direction vector of the skeleton model approaches the direction of the intermediate arc direction vector obtained based on the arc direction vector at the key frame, the skeleton whose movement path is specified Transforming the shape of the skeleton model so that the model node is pulled to a given position on the path of travel ;
Initial stage of second iterative calculation when deforming the shape of the skeleton model so that the direction of the arc direction vector of the skeleton model approaches the direction of the intermediate arc direction vector obtained based on the arc direction vector at the key frame The image generating apparatus according to claim 1, wherein a calculation is performed to pull a skeleton model node to which a movement path is designated to a given position on the movement path .
請求項1乃至7のいずれかにおいて、In any one of Claims 1 thru | or 7,
スケルトンモデルの中間フレームの形状に基づいて、スケルトンモデルの画像を生成する画像生成部を更に含むことを特徴とする画像生成装置。An image generation apparatus, further comprising: an image generation unit configured to generate an image of a skeleton model based on a shape of an intermediate frame of the skeleton model.
コンピュータにより情報の読み取りが可能であり、スケルトンモデルのキーフレームの形状を変形させて、スケルトンモデルの中間フレームの形状を生成するための情報記憶媒体であって、
移動経路が指定されたスケルトンモデルのノードが、該移動経路上の所与の位置に引っ張られるように、スケルトンモデルの形状を変形させ、
スケルトンモデルのアーク方向ベクトルの向きが、キーフレームでのアーク方向ベクトルに基づき得られる中割りアーク方向ベクトルの方向に近づくように、スケルトンモデルの形状を変形させ、
スケルトンモデルのアーク法線ベクトルの向きが、キーフレームでのアーク法線ベクトルに基づき得られる中割りアーク法線ベクトルの方向に近づくように、スケルトンモデルの形状を変形させる形状データ生成部として、コンピュータを機能させるためのプログラムを記憶したことを特徴とする情報記憶媒体。
An information storage medium capable of reading information by a computer and generating a shape of an intermediate frame of a skeleton model by deforming a shape of a key frame of the skeleton model,
Node moving route is specified skeleton model, as pulled by the given position on the movement path, to deform the shape of the skeleton model,
Deform the shape of the skeleton model so that the direction of the arc direction vector of the skeleton model approaches the direction of the intermediate arc direction vector obtained based on the arc direction vector at the key frame ,
As a shape data generator that deforms the shape of the skeleton model so that the direction of the arc normal vector of the skeleton model approaches the direction of the intermediate arc normal vector obtained based on the arc normal vector at the key frame, An information storage medium storing a program for functioning a computer.
画像生成装置が、形状データ生成部を備え、スケルトンモデルのキーフレームの形状を変形させて、スケルトンモデルの中間フレームの形状を導出する中間フレーム形状導出方法であって、
前記形状データ生成部が、
移動経路が指定されたスケルトンモデルのノードが、該移動経路上の所与の位置に引っ張られるように、スケルトンモデルの形状を変形させ、
スケルトンモデルのアーク方向ベクトルの向きが、キーフレームでのアーク方向ベクトルに基づき得られる中割りアーク方向ベクトルの方向に近づくように、スケルトンモデルの形状を変形させ、
スケルトンモデルのアーク法線ベクトルの向きが、キーフレームでのアーク法線ベクトルに基づき得られる中割りアーク法線ベクトルの方向に近づくように、スケルトンモデルの形状を変形させることを特徴とするスケルトンモデルの中間フレーム形状導出方法。
The image generation apparatus includes a shape data generation unit, deforms the shape of the key frame of the skeleton model, and derives the shape of the intermediate frame of the skeleton model,
The shape data generator
Node moving route is specified skeleton model, as pulled by the given position on the movement path, to deform the shape of the skeleton model,
Deform the shape of the skeleton model so that the direction of the arc direction vector of the skeleton model approaches the direction of the intermediate arc direction vector obtained based on the arc direction vector at the key frame ,
Skeleton model characterized by deforming the shape of the skeleton model so that the direction of the arc normal vector of the skeleton model approaches the direction of the intermediate arc normal vector obtained based on the arc normal vector at the key frame Intermediate frame shape derivation method.
JP32127298A 1998-10-26 1998-10-26 Skeleton model intermediate frame shape derivation method, skeleton model shape deformation method, image generation apparatus, and information storage medium Expired - Fee Related JP4155425B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP32127298A JP4155425B2 (en) 1998-10-26 1998-10-26 Skeleton model intermediate frame shape derivation method, skeleton model shape deformation method, image generation apparatus, and information storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32127298A JP4155425B2 (en) 1998-10-26 1998-10-26 Skeleton model intermediate frame shape derivation method, skeleton model shape deformation method, image generation apparatus, and information storage medium

Publications (3)

Publication Number Publication Date
JP2000132709A JP2000132709A (en) 2000-05-12
JP2000132709A5 JP2000132709A5 (en) 2005-12-02
JP4155425B2 true JP4155425B2 (en) 2008-09-24

Family

ID=18130728

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32127298A Expired - Fee Related JP4155425B2 (en) 1998-10-26 1998-10-26 Skeleton model intermediate frame shape derivation method, skeleton model shape deformation method, image generation apparatus, and information storage medium

Country Status (1)

Country Link
JP (1) JP4155425B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6482620B1 (en) * 2017-09-04 2019-03-13 株式会社セルシス Method and program for generating an image obtained by interpolating a plurality of images
CN108280833B (en) * 2018-01-18 2021-09-24 华南农业大学 Skeleton extraction method for plant root system bifurcation characteristics

Also Published As

Publication number Publication date
JP2000132709A (en) 2000-05-12

Similar Documents

Publication Publication Date Title
JP7061238B2 (en) Reinforcement learning to train characters using heterogeneous target animation data
US10297066B2 (en) Animating a virtual object in a virtual world
Yamane et al. Natural motion animation through constraining and deconstraining at will
Welman Inverse kinematics and geometric constraints for articulated figure manipulation
Park et al. On‐line motion blending for real‐time locomotion generation
Ho et al. Character motion synthesis by topology coordinates
US6320988B1 (en) Skeleton model shape transformation method, image synthesizing apparatus, and information storage medium
JP2003058907A (en) Method for generating pose and motion in tree structure link system
Ota et al. Trajectory optimization for unknown constrained systems using reinforcement learning
Chen et al. Trajectotree: Trajectory optimization meets tree search for planning multi-contact dexterous manipulation
Huang et al. Planning humanlike actions in blending spaces
Chen et al. Virtual-joint based motion similarity criteria for human–robot kinematics mapping
US20090251462A1 (en) System and method for mesh distance based geometry deformation
Wang et al. An energy-driven motion planning method for two distant postures
Xia et al. Learning-based sphere nonlinear interpolation for motion synthesis
JP4155425B2 (en) Skeleton model intermediate frame shape derivation method, skeleton model shape deformation method, image generation apparatus, and information storage medium
Nierhoff et al. Spatial adaption of robot trajectories based on laplacian trajectory editing
JPH10208072A (en) Skeleton model shape deforming method, picture composing device, and information storage medium
JP3265271B2 (en) Shape deformation method of skeleton model, image synthesizing device, and information storage medium
CN111310641A (en) Motion synthesis method based on spherical nonlinear interpolation
JP3735187B2 (en) Data conversion apparatus and method for encoding and editing time-series data
CN114362595B (en) Particle swarm self-adaption-based multi-motor control method and device and electronic equipment
Engell-Nørregård et al. A projected back-tracking line-search for constrained interactive inverse kinematics
Laezza et al. Shape control of elastoplastic deformable linear objects through reinforcement learning
Menon et al. Efficient simulation and rendering of realistic motion of one-dimensional flexible objects

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051018

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080409

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080606

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080702

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080703

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110718

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110718

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110718

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120718

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120718

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120718

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees