JP3241310B2 - Shape deformation method of skeleton model, image synthesizing device, and information storage medium - Google Patents
Shape deformation method of skeleton model, image synthesizing device, and information storage mediumInfo
- Publication number
- JP3241310B2 JP3241310B2 JP27652197A JP27652197A JP3241310B2 JP 3241310 B2 JP3241310 B2 JP 3241310B2 JP 27652197 A JP27652197 A JP 27652197A JP 27652197 A JP27652197 A JP 27652197A JP 3241310 B2 JP3241310 B2 JP 3241310B2
- Authority
- JP
- Japan
- Prior art keywords
- skeleton model
- node
- arc
- expression
- basic
- 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
Links
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/66—Methods for processing data by generating or executing the game program for rendering three dimensional images
- A63F2300/6607—Methods for processing data by generating or executing the game program for rendering three dimensional images for animating game characters, e.g. skeleton kinematics
Landscapes
- Processing Or Creating Images (AREA)
Description
【0001】[0001]
【発明の属する技術分野】本発明はスケルトンモデルの
形状変形方法、画像合成装置及び情報記憶媒体に関す
る。The present invention relates to a method for deforming the shape of a skeleton model, an image synthesizing apparatus, and an information storage medium.
【0002】[0002]
【背景技術及び発明が解決しようとする課題】従来よ
り、インバース・キネマティクス(逆運動学)と呼ばれ
る技術が公知である。この技術では、まず図22(A)
に示すようなスケルトン(骨格)モデル20をコンピュ
ータ内に用意する。そしてユーザーは、CRT等に表示
されたスケルトンモデル20の形状を見ながら、マウス
等の入力装置を用いてこのスケルトンモデル20を変形
させ、ユーザーが意図する動き又は姿勢を作る作業を行
う。なお以下の説明においては、スケルトンモデル20
の関節点及び端点をノード、ノード同士を結ぶ骨をアー
クと呼ぶことにする。2. Description of the Related Art A technique called inverse kinematics (inverse kinematics) has been known. In this technique, first, FIG.
A skeleton (skeleton) model 20 as shown in FIG. The user performs an operation of deforming the skeleton model 20 using an input device such as a mouse while looking at the shape of the skeleton model 20 displayed on a CRT or the like, and creating a motion or a posture intended by the user. In the following description, the skeleton model 20
Are referred to as nodes, and bones connecting the nodes are referred to as arcs.
【0003】このようなインバース・キネマティクスの
従来技術としては、例えば「人体の形状モデリングとア
ニメーション」(福井一夫、情報処理学会「人物のモデ
リングと表示技術」セミナー資料 平成3年9月)等が
ある。この従来技術では図22(B)に示すように、ス
ケルトンモデルの形状を表す基本変数としてアーク間の
角度θ1、θ2、θ3を使用する。そして従来のインバー
ス・キネマティクスが解くべき問題は、固定ノード40
を持つ直鎖状スケルトンの他端のノード42の位置
(x、y、z)を指定した時に、これを実現するアーク
間角度θ1、θ2、θ3を求めることである。そしてこの
問題は、関数f(θ1x、θ1y、θ1z、θ2x・・・・)の
逆関数f-1(x、y、z)を求めることに相当する。し
かしながら関数fは非線形となるため、この逆関数を求
めることは容易ではない。そこでx、y、zの微少変化
量△x、△y、△zを、アーク間角度の微少変化量△θ
1x、△θ1y、△θ1z、△θ2x・・・の一次式で近似す
る。これにより解くべき問題は、図22(C)に示す連
立方程式を解くことに帰着することになる。しかしなが
ら図22(C)の行列Mは正方行列ではなく、変数の数
が式の数よりも多いため、解が無数に存在する。そこで
アーク間角度の変化量の二乗和が極小になるという条件
を付加するという数学的手法を用いて、図22(C)の
連立方程式を解く。[0003] As a conventional technique of such inverse kinematics, for example, "Human body shape modeling and animation" (Fukui Kazuo, Information Processing Society of Japan "person modeling and display technology" seminar material, September 1991) and the like. is there. In this prior art, as shown in FIG. 22B, angles θ 1 , θ 2 , and θ 3 between arcs are used as basic variables representing the shape of a skeleton model. And the problem that conventional inverse kinematics should solve is the fixed node 40
When the position (x, y, z) of the node 42 at the other end of the linear skeleton having is specified, the angles between the arcs θ 1 , θ 2 , θ 3 that realize this are obtained. This problem corresponds to obtaining the inverse function f -1 (x, y, z) of the function f (θ 1x , θ 1y , θ 1z , θ 2x ...). However, since the function f is nonlinear, it is not easy to find the inverse function. Therefore, the small change amount xx, △ y, △ z of x, y, z is changed to the small change amount △ θ of the angle between arcs.
1x , △ θ 1y , △ θ 1z , △ θ 2x ... Thus, the problem to be solved is reduced to solving the simultaneous equations shown in FIG. However, since the matrix M in FIG. 22C is not a square matrix and the number of variables is larger than the number of equations, there are countless solutions. Therefore, the simultaneous equation of FIG. 22C is solved by using a mathematical method of adding a condition that the sum of squares of the change amount between the arcs is minimized.
【0004】しかしながら上記従来技術では、一端固定
の直鎖状スケルトンを対象とし、形状を表す基本変数と
してアーク間角度を用いるため、以下のような問題点が
あった。However, in the above-mentioned prior art, since the angle between arcs is used as a basic variable representing a shape for a linear skeleton fixed at one end, there are the following problems.
【0005】多分岐構造を扱いにくい 従来技術において、多分岐構造(1つのノードに3本以
上のアークが接続される構造)のスケルトンモデルを扱
うためには、これを例えば図22(A)に示すように複
数の直鎖構造23〜27に分解し、更に図23(A)、
(B)に示すような親子関係を設定する必要がある。そ
して例えばスケルトンモデル20の一方の手を動かした
い場合には、ノード30をルートに設定しエフェクタと
なるノード32を動かし、他方の手を動かしたい場合に
は、ノード30をルートに設定しエフェクタとなるノー
ド34を動かす。また一方の足を動かしたい場合には、
今度はノード36をルートに設定し、エフェクタとなる
ノード38を動かすことになる。従ってユーザーは、ル
ートがどのノードでエフェクタがどのノードかを常に気
にしながら作業を行う必要があり、作業が繁雑化してい
た。It is difficult to handle a multi-branch structure. In the prior art, in order to handle a skeleton model of a multi-branch structure (a structure in which three or more arcs are connected to one node), for example, FIG. As shown in FIG.
It is necessary to set a parent-child relationship as shown in FIG. For example, if one hand of the skeleton model 20 is to be moved, the node 30 is set to the root and the node 32 which is an effector is moved. If the other hand is to be moved, the node 30 is set to the root and the effector is set. Node 34 is moved. If you want to move one foot,
This time, the node 36 is set as the root, and the node 38 serving as an effector is moved. Therefore, it is necessary for the user to perform the operation while always minding which node is the root and which node is the effector, and the operation is complicated.
【0006】複雑な拘束条件を扱うのが困難 例えば複数のノードに対して拘束条件が設定されている
場合、これに応じてスケルトンを直鎖構造に分解して扱
う必要があり、処理が複雑になる。また一般に拘束条件
はノード座標の式として表される。例えば図22(A)
のノード38をポリゴンに拘束する場合には、ノード3
8がポリゴン上に常に位置することを規定する式を用い
ることになる。しかしながら従来技術では、基本変数が
アーク間の角度となるため、上記のような式を用いるこ
とが難しく、拘束条件を扱いにくかった。It is difficult to handle complicated constraints. For example, when constraints are set for a plurality of nodes, it is necessary to disassemble the skeleton into a linear structure in accordance with the constraints, and the processing becomes complicated. Become. In general, the constraint condition is expressed as an expression of node coordinates. For example, FIG.
In the case where the node 38 of FIG.
An expression that specifies that 8 is always located on the polygon will be used. However, in the prior art, since the basic variable is the angle between arcs, it is difficult to use the above equation, and it is difficult to handle the constraint condition.
【0007】複数のノードを同時に異なる方向に移動
させるのが困難 即ち従来の技術では、例えばノード38とノード39を
異なる方向に移動させようとした場合、処理が極めて複
雑化する。It is difficult to move a plurality of nodes in different directions at the same time. That is, in the prior art, for example, when trying to move nodes 38 and 39 in different directions, the processing becomes extremely complicated.
【0008】本発明は、以上のような技術的課題に鑑み
てなされたものであり、その目的とするところは、多分
岐構造のスケルトンモデルも容易に扱え、複雑な拘束条
件も容易に設定することができるスケルトンモデルの形
状変形方法、画像合成装置及び情報記憶媒体を提供する
ことにある。The present invention has been made in view of the above technical problems, and an object of the present invention is to easily handle a skeleton model having a multi-branch structure and to easily set a complicated constraint condition. It is an object of the present invention to provide a skeleton model shape deformation method, an image synthesizing device, and an information storage medium that can be used.
【0009】[0009]
【課題を解決するための手段】上記課題を解決するため
に本発明は、スケルトンモデルの形状変形方法であっ
て、スケルトンモデルを、スケルトンモデルのノードの
座標を含む基本変数により表し、スケルトンモデルのア
ークの長さが所与の値となることを規定する式を含み前
記基本変数を未知数とする基本式と、前記基本式を満た
す解を一意的に特定するための評価式の少なくとも一方
を、所与の情報に基づいて変化させ、基本式をほぼ満た
し且つ評価式の値をほぼ極小、ほぼ極大及びほぼ停留の
いずれかにする基本変数の解を求め、求められた解に基
づいてスケルトンモデルの形状を変形することを特徴と
する。SUMMARY OF THE INVENTION In order to solve the above problems, the present invention relates to a method of deforming the shape of a skeleton model, wherein the skeleton model is represented by basic variables including the coordinates of the nodes of the skeleton model. At least one of a basic expression including an expression that defines that the arc length is a given value and the basic variable as an unknown, and an evaluation expression for uniquely specifying a solution that satisfies the basic expression, A skeleton model is determined based on the determined solution by changing based on given information to obtain a solution of a basic variable that substantially satisfies the basic expression and makes the value of the evaluation expression substantially minimum, approximately maximum, or almost stationary. Is characterized by deforming the shape of.
【0010】本発明によれば、スケルトンモデルが、ノ
ード座標を含む基本変数により表されると共に、評価式
の値をほぼ極小等にする条件の付加により基本式をほぼ
満たす解が一意的に特定され、スケルトンモデルの形状
が決定される。従って、本発明によれば、全てのノード
を対等に扱うことが可能となり、多分岐構造のスケルト
ンモデルの取り扱いが容易になる。また拘束条件はノー
ドの座標に基づいて規定される場合が多いため、本発明
によれば、複雑な拘束条件の設定にも容易に対応でき
る。According to the present invention, a skeleton model is represented by basic variables including node coordinates, and a solution that substantially satisfies the basic expression is uniquely identified by adding a condition for making the value of the evaluation expression substantially minimum. Then, the shape of the skeleton model is determined. Therefore, according to the present invention, it becomes possible to treat all nodes equally, and it becomes easy to handle a skeleton model having a multi-branch structure. Further, since the constraint condition is often defined based on the coordinates of the node, the present invention can easily cope with the setting of a complicated constraint condition.
【0011】また本発明は、前記基本変数が、アークに
垂直なアーク法線ベクトルの成分を含み、前記基本式
が、前記アーク法線ベクトルの長さが所与の値となるこ
とを規定する式と、前記アーク法線ベクトルがアークに
垂直になることを規定する式とを含むことを特徴とす
る。Further, according to the present invention, the basic variable includes a component of an arc normal vector perpendicular to the arc, and the basic expression specifies that the length of the arc normal vector has a given value. An equation and an equation defining that the arc normal vector is perpendicular to the arc are included.
【0012】本発明によれば、基本変数としてアーク法
線ベクトルが使用されるため、全てのアークを対等に扱
うことが可能となり、多分岐構造のスケルトンモデルの
取り扱いが容易となる。According to the present invention, since the arc normal vector is used as the basic variable, it is possible to treat all arcs equally, and it is easy to handle a skeleton model having a multi-branch structure.
【0013】また本発明は、前記基本変数が、アークに
垂直なアーク法線ベクトルの成分を含み、前記アーク法
線ベクトルの成分の変化量を所与の1つの変数により表
して基本変数の解を求めることを特徴とする。Further, according to the present invention, the basic variable includes a component of an arc normal vector perpendicular to the arc, and the variation of the component of the arc normal vector is represented by a given variable to solve the basic variable. Is obtained.
【0014】本発明によれば、アーク法線ベクトルの成
分の変化量が所与の1つの変数により表されるため、解
くべき未知数の数を減らすことができ、処理の高速化を
図れる。なおアーク法線ベクトルの成分の変化量は、所
与の1つの変数の1次式で表すことが特に望ましい。According to the present invention, since the amount of change in the component of the arc normal vector is represented by one given variable, the number of unknowns to be solved can be reduced, and the processing can be speeded up. It is particularly desirable that the amount of change in the component of the arc normal vector is represented by a linear expression of one given variable.
【0015】また本発明は、前記基本変数が、アークに
垂直なアーク法線ベクトルの成分を含み、アーク間のな
す角度の変化量、ノードと所与の点との間の距離、端部
に固定ノードを持つアークの向きの変化量、ノード座標
の変化量及びノード座標の速度変化量の少なくとも1つ
を含む評価式の値がほぼ極小、ほぼ極大及びほぼ停留の
いずれかになるように基本変数の解を求めることを特徴
とする。Further, in the present invention, the basic variables include a component of an arc normal vector perpendicular to the arc, a change amount of an angle between the arcs, a distance between a node and a given point, and Basically, the value of the evaluation expression including at least one of the change amount of the direction of the arc having the fixed node, the change amount of the node coordinates, and the change amount of the speed of the node coordinates becomes one of substantially minimum, substantially maximum, and substantially stationary. It is characterized by finding the solution of a variable.
【0016】評価式に、アーク間角度の変化量を含ませ
ることで、スケルトンモデルをバランス良く変形させる
ことが可能となり、ノードと所与の点との間の距離を含
ませることで、ラバーバンド等の設定が可能となる。ま
た評価式にノード座標の変化量や速度変化量を含ませる
ことで、解不定や、スケルトンモデルに暴れが生じたり
することを防止できる。By including the variation of the angle between arcs in the evaluation formula, the skeleton model can be deformed in a well-balanced manner. By including the distance between a node and a given point, the rubber band Etc. can be set. Also, by including the change amount of the node coordinates and the speed change amount in the evaluation formula, it is possible to prevent the solution from being undefined and the skeleton model from being violent.
【0017】また本発明は、前記基本変数の解を反復計
算により求めると共に、前記基本式、前記評価式の少な
くとも一方を反復ループの終了又は開始に同期させて所
与の情報に基づいて次々に変化させることを特徴とす
る。Further, the present invention provides a solution of the basic variables by iterative calculation, and synchronizes at least one of the basic formula and the evaluation formula with the end or start of an iterative loop and successively based on given information. It is characterized by changing.
【0018】ニュートン法等の反復法を用いる場合、通
常、計算が収束するまで式の既知数や形は変化しない。
本発明によれば、計算が収束する前に、例えば1反復ル
ープ毎或いは2、3反復ループ毎に、基本式、評価式が
次々に変化する。このようにすることで、例えば所与の
情報が、ユーザの操作するマウスのカーソル位置座標で
あった場合には、ユーザーの入力に対して十分な追従性
を持った形状変形が可能となり、ユーザーの利便性を向
上できる。なお誤差が大きくなる場合には、スケーリン
グによる補正を行うことが望ましい。When an iterative method such as the Newton's method is used, the known number and shape of the expression usually do not change until the calculation converges.
According to the present invention, before the calculation converges, for example, every one iteration loop or every two or three iteration loops, the basic formula and the evaluation formula change one after another. By doing so, for example, when given information is the coordinates of the cursor position of the mouse operated by the user, it is possible to deform the shape with sufficient followability to the user's input, Convenience can be improved. When the error becomes large, it is desirable to perform correction by scaling.
【0019】また本発明は、固定されたノードの座標又
は固定されたアーク法線ベクトルの成分を既知数とする
ことを特徴とする。Further, the present invention is characterized in that the coordinates of the fixed nodes or the components of the fixed arc normal vector are known numbers.
【0020】このようにすることで、ノードの座標、ア
ークの方向を簡易に固定することが可能となり、ユーザ
ーの利便性の向上を図れる。また未知数の数を減らすこ
とができ、処理を高速化できる。In this way, the coordinates of the nodes and the direction of the arc can be easily fixed, and the convenience of the user can be improved. Also, the number of unknowns can be reduced, and the processing can be speeded up.
【0021】また本発明は、前記評価式が、アーク間の
なす角度を所与の範囲に拘束する式、ノードを所与の面
又は所与の線に拘束する式及びスケルトンモデル又はこ
れに付随して動く第1のオブジェクトと他の第2のオブ
ジェクトとの干渉時にスケルトンモデル又は第1のオブ
ジェクトを第2のオブジェクトに拘束する式の少なくと
も1つを含むことを特徴とする。Further, according to the present invention, the evaluation formula may be a formula for constraining an angle formed between arcs to a given range, a formula for constraining a node to a given surface or a given line, and a skeleton model or an accompanying model. The method includes at least one of a skeleton model or a formula for constraining the first object to the second object when the first object moves and interferes with another second object.
【0022】このように本発明によれば、評価式に上記
のような種々の式を含ませるだけで、アーク間角度の可
動範囲の制限やノードの所与の面等へのアタッチやスケ
ルトンモデルとオブジェクトとの干渉等の拘束条件を、
簡易に設定できる。As described above, according to the present invention, just by including the above-mentioned various expressions in the evaluation expression, the movable range of the angle between arcs can be limited, the node can be attached to a given surface or the like, and the skeleton model can be used. Constraints such as interference between the
It can be easily set.
【0023】また本発明は、スケルトンモデルの形状変
形方法であって、スケルトンモデルを、スケルトンモデ
ルのノードの座標、スケルトンモデルのアークに垂直な
アーク法線ベクトルの成分を含む基本変数により表し、
アーク間のなす角度の変化量、ノードと所与の点との間
の距離、端部に固定ノードを持つアークの向きの変化
量、ノード座標の変化量及びノード座標の速度変化量の
少なくとも1つを含む式の値がほぼ極小、ほぼ極大及び
ほぼ停留のいずれかになるようにスケルトンモデルの形
状を変形することを特徴とする。The present invention also relates to a method for deforming the shape of a skeleton model, wherein the skeleton model is represented by basic variables including coordinates of nodes of the skeleton model and components of an arc normal vector perpendicular to an arc of the skeleton model.
At least one of a change in angle between arcs, a distance between a node and a given point, a change in direction of an arc having a fixed node at an end, a change in node coordinates, and a change in speed of node coordinates. The shape of the skeleton model is modified so that the value of the expression including the two is substantially minimum, approximately maximum, or substantially stationary.
【0024】本発明によれば、ノード座標、アーク法線
ベクトルの成分が基本変数となるため、全てのノード、
アークを対等に扱え、多分岐構造の扱いが容易になる。
またアーク間角度の変化量を含む式を極小化すること等
により、バランスの良い形状変形が可能となる。According to the present invention, since the components of the node coordinates and the arc normal vector are the basic variables, all nodes,
Arcs can be handled equally, making it easier to handle multi-branch structures.
In addition, by minimizing the expression including the amount of change in the angle between arcs, a well-balanced shape deformation can be achieved.
【0025】また本発明は、スケルトンモデルの形状変
形方法であって、スケルトンモデルを、スケルトンモデ
ルのノードの座標を含む基本変数により表し、スケルト
ンモデルの形状変形を制御する所与の点の座標が変化し
た場合に、ノードと前記所与の点との間の距離が極小に
なるようにスケルトンモデルの形状を変形することを特
徴とする。The present invention also relates to a method for deforming the shape of a skeleton model, wherein the skeleton model is represented by basic variables including the coordinates of the nodes of the skeleton model, and the coordinates of a given point for controlling the shape deformation of the skeleton model are determined. In the case of a change, the shape of the skeleton model is modified so that the distance between the node and the given point is minimized.
【0026】本発明によれば、いわゆるラバーバンドの
設定等が可能となり、適正な形状を初期状態として形状
変形を行うことができるため、バランスの良い形状変形
が可能となる。According to the present invention, it is possible to set a so-called rubber band and the like, and the shape can be deformed with an appropriate shape as an initial state, so that a well-balanced shape deformation can be performed.
【0027】また本発明は、2個以上のノードとこれら
の各々に関連づけられる2個以上の所与の点との間の距
離が極小になるようにスケルトンモデルの形状を変形す
ることを特徴とする。Further, the present invention is characterized in that the shape of the skeleton model is modified so that the distance between two or more nodes and two or more given points associated with each of the nodes is minimized. I do.
【0028】本発明によれば、2個以上の所与の点を制
御点としてスケルトンモデルの形状を変形することが可
能となり、ユーザの利便性を向上できる。According to the present invention, it is possible to change the shape of the skeleton model using two or more given points as control points, thereby improving user convenience.
【0029】また本発明は、スケルトンモデルの形状変
形方法であって、スケルトンモデルを、スケルトンモデ
ルのノードの座標を含む基本変数により表し、前記基本
変数を含む式の解を反復計算により求めると共に、前記
式を反復ループの終了又は開始に同期させて所与の情報
に基づいて次々に変化させることを特徴とする。The present invention also relates to a method of deforming the shape of a skeleton model, wherein the skeleton model is represented by basic variables including the coordinates of the nodes of the skeleton model, and the solution of the expression including the basic variables is obtained by iterative calculation. The formula is characterized in that it is changed one after another based on given information in synchronization with the end or start of the iterative loop.
【0030】本発明によれば、計算が収束する前に、例
えば1反復ループ毎或いは2、3反復ループ毎に、基本
式、評価式が次々に変化するため、スケルトンモデルの
素早い形状変形が要求された場合でも、見た目の形状が
それほど不自然にならない状態で、これに対応すること
ができる。According to the present invention, before the calculation converges, for example, the basic formula and the evaluation formula change one after another for each iteration loop or every two or three iteration loops, so that a quick shape deformation of the skeleton model is required. Even if it is done, it is possible to cope with this in a state where the appearance does not become so unnatural.
【0031】また本発明は、スケルトンモデルの形状変
形方法であって、スケルトンモデル又はこれに付随して
動くオブジェクトが所与の境界を越えた場合に、スケル
トンモデル又はオブジェクトを前記境界側に戻す拘束条
件の下でスケルトンモデルの形状を変形し、スケルトン
モデルの形状を求める反復計算の1の反復ループが前記
拘束条件が無効な状態で行われ且つスケルトンモデル又
はオブジェクトが前記境界を越えていない場合には、次
の反復ループにおいても前記拘束条件を無効な状態にし
て計算を行い、前記1の反復ループが前記拘束条件が無
効な状態で行われ且つスケルトンモデル又はオブジェク
トが前記境界を越えている場合には、次の反復ループに
おいては前記拘束条件を有効な状態にして計算を行い、
前記1の反復ループが前記拘束条件が有効な状態で行わ
れ且つスケルトンモデル又はオブジェクトが前記境界を
越えている場合には、次の反復ループにおいても前記拘
束条件を有効な状態にして計算を行い、前記1の反復ル
ープが前記拘束条件が有効な状態で行われ且つスケルト
ンモデル又はオブジェクトが前記境界を越えていない場
合には、次の反復ループにおいては前記拘束条件を無効
な状態にして計算を行うことを特徴とする。The present invention also relates to a method for deforming the shape of a skeleton model, wherein when a skeleton model or an object accompanying the skeleton model exceeds a given boundary, the skeleton model or the object is returned to the boundary side. One iterative loop of an iterative calculation for deforming the shape of the skeleton model under conditions and determining the shape of the skeleton model is performed with the constraints disabled and the skeleton model or object does not exceed the boundary. Performs the calculation in the next iteration loop with the constraints disabled, and when the first iteration loop is performed with the constraints disabled and the skeleton model or object exceeds the boundary In the next iterative loop, the above conditions are made valid and the calculation is performed.
If the first iteration loop is performed with the constraint conditions valid and the skeleton model or object is beyond the boundary, the calculation is performed with the constraint conditions also valid in the next iteration loop. If the one iteration loop is performed with the constraints enabled and the skeleton model or object does not cross the boundary, then in the next iteration loop the calculations are performed with the constraints disabled. It is characterized by performing.
【0032】本発明によれば、スケルトンモデル等が境
界にスプリング的に拘束されるため、例えばユーザー
が、スケルトンモデルを境界の方に移動させているの
か、境界から離れる方に移動させているのかを容易に判
断できる。そして拘束条件を決定するための繰り返し計
算が必要なくなるため、処理速度を格段に向上できる。According to the present invention, since the skeleton model or the like is constrained by the boundary as a spring, for example, whether the user is moving the skeleton model toward the boundary or away from the boundary Can be easily determined. Since the repetitive calculation for determining the constraint condition is not required, the processing speed can be remarkably improved.
【0033】また本発明は、スケルトンモデル又はオブ
ジェクトと前記境界との距離を含む式の値をほぼ極小、
ほぼ極大及びほぼ停留のいずかにする拘束条件の下でス
ケルトンモデルの形状を変形させること特徴とする。Further, according to the present invention, the value of the expression including the distance between the skeleton model or the object and the boundary is substantially minimized,
It is characterized in that the shape of the skeleton model is deformed under a constraint condition of being substantially maximal or substantially stationary.
【0034】このようにすることで、スケルトンモデル
とオブジェクトとの干渉機能等の実現が容易になる。By doing so, it becomes easy to realize the function of interfering with the skeleton model and the object.
【0035】また本発明は、前記境界から所与の間隔だ
け離れた位置に仮想境界を設け、スケルトンモデル又は
オブジェクトが前記境界を越えている場合にスケルトン
モデル又はオブジェクトを前記仮想境界まで戻すと共
に、前記境界の代わりに前記仮想境界を用いて拘束条件
の有効、無効の判断を行うことを特徴とする。Further, the present invention provides a virtual boundary at a position separated by a predetermined distance from the boundary, and when the skeleton model or the object exceeds the boundary, returns the skeleton model or the object to the virtual boundary. It is characterized in that the validity / invalidity of the constraint condition is determined using the virtual boundary instead of the boundary.
【0036】このようにすることで、例えばノード等と
オブジェクトとの多重衝突時の問題を簡易に解消でき
る。By doing so, for example, the problem at the time of multiple collision between a node or the like and an object can be easily solved.
【0037】また本発明は、スケルトンモデルの形状変
形方法であって、スケルトンモデルの形状を規定する少
なくとも1つの第1の変数の変域が、第1の変数を含む
不等式により表される場合において、前記不等式の全て
の式及び数を左辺及び右辺のいずれか一方の辺に移項し
他方の辺を第2の変数の恒常的に正又は負又は非負又は
非正になる関数で置き換えた等式を導入し、前記不等式
に代えて前記等式により第1の変数の変域を規定するこ
とで不連続な拘束条件の下でのスケルトンモデルの形状
変形を行うことを特徴とする。The present invention also relates to a method for deforming the shape of a skeleton model, wherein the domain of at least one first variable defining the shape of the skeleton model is represented by an inequality including the first variable. , An equation in which all the expressions and numbers of the inequality are transposed to one of the left side and the right side, and the other side is replaced by a function of the second variable that is constantly positive or negative or non-negative or non-positive. And defining the domain of the first variable by the equation in place of the inequality, thereby deforming the shape of the skeleton model under discontinuous constraints.
【0038】例えばアーク間の角度、ノード座標、アー
ク法線ベクトルの成分等の第1の変数の変域の設定は、
通常は不等式を用いて行うことができる。本発明によれ
ば、この不等式が、変域の設定に関してこの不等式と同
等の効果を持つ等式に置き換えられる。そして、この等
式に基づいて第1の変数の変域が規定され、スケルトン
モデルの形状変形に対して不連続な拘束条件が与えられ
ることになる。このように不等式を等式に置き換えるこ
とで、不等式を用いる場合に必要な場合分け等の手間を
省くことができ、処理を高速化できる。また等式であれ
ば、例えばスケルトンモデルに拘束条件を課すための式
に容易に組み込むことができ、処理を簡易化できる。For example, the setting of the domain of the first variable such as the angle between arcs, the node coordinates, the component of the arc normal vector, etc.
Usually this can be done using inequalities. According to the present invention, this inequality is replaced by an equation having the same effect as the inequality in setting the domain. Then, the domain of the first variable is defined based on this equation, and a discontinuous constraint condition is given to the shape deformation of the skeleton model. By replacing the inequalities with the equations in this way, it is possible to save the time and labor required when using the inequalities and to speed up the processing. If the equation is an equation, for example, it can be easily incorporated into an equation for imposing a constraint condition on the skeleton model, and the processing can be simplified.
【0039】また本発明は、前記第2の変数の変化量を
含む式の値が、ほぼ極小、ほぼ極大及びほぼ停留のいず
れかになるようにスケルトンモデルの形状を変形するこ
とを特徴とする。Further, the present invention is characterized in that the shape of the skeleton model is deformed such that the value of the expression including the variation of the second variable is one of substantially minimum, substantially maximum, and substantially stationary. .
【0040】本発明によれば、第2の変数の値が大きく
変動することを防止できる。これにより、第2の変数に
暴れが生じ第1の変数が変域内に拘束されなくなるとい
う事態を効果的に防止できる。According to the present invention, it is possible to prevent the value of the second variable from greatly changing. Thus, it is possible to effectively prevent a situation in which the second variable is rampant and the first variable is not restricted within the domain.
【0041】また本発明は、前記第2の変数が所与の収
束値の付近の値になった際に、前記第2の変数に所与の
値を加えることを特徴とする。Further, the present invention is characterized in that when the second variable has a value near a given convergence value, a given value is added to the second variable.
【0042】第2の変数が所与の収束値に収束し、その
収束状態から抜けるのに多くの時間を要してしまうと、
例えばユーザーの入力に対するスケルトンモデルの応答
速度が低下する。本発明によれば、第2の変数が収束値
に収束する前に第2の変数に所与の微少量の値が加えら
れる。従って、第2の変数が収束値に収束することが防
止され、上記のような応答速度の低下の問題を解消でき
る。なお第2の変数に加える所与の値としては乱数を用
いることが望ましい。If the second variable converges to a given convergence value and takes much time to get out of the convergence state,
For example, the response speed of the skeleton model to a user input is reduced. According to the present invention, a given minute value is added to the second variable before the second variable converges to a convergence value. Therefore, it is possible to prevent the second variable from converging to the convergence value, and it is possible to solve the above-described problem of a decrease in response speed. It is desirable to use a random number as the given value to be added to the second variable.
【0043】また本発明は、スケルトンモデルの形状変
形方法であって、スケルトンモデルの形状を求める反復
計算の1の反復ループにおいて、スケルトンモデル又は
これに付随して動くオブジェクトを所与の境界に拘束す
る拘束条件が無効な状態で第1の計算を行い、前記1の
反復ループにおいて、前記第1の計算の後に、スケルト
ンモデル又はオブジェクトと前記境界が所与の位置関係
にある場合にスケルトンモデル又はオブジェクトを前記
境界に引き寄せる第2の計算を行うことを特徴とする。The present invention also relates to a method for deforming the shape of a skeleton model, wherein in one iterative loop of an iterative calculation for obtaining the shape of the skeleton model, the skeleton model or an object moving therewith is constrained to a given boundary. Performing a first calculation in a state in which the constraint is invalid, and in the first iteration loop, after the first calculation, when the skeleton model or an object and the boundary have a given positional relationship, the skeleton model or A second calculation for drawing an object to the boundary is performed.
【0044】本発明によれば、まず拘束条件が無効な状
態で第1の計算が行われ、その後に、スケルトンモデル
等を境界に引き寄せる第2の計算が行われる。従って、
1の反復ループにおいて2回の計算を行うだけで、スケ
ルトンモデル等を境界に拘束することができる。このた
め、1の反復ループにもう1つの反復ループが含まれて
しまう従来の手法に比べ、反復計算の際の処理速度を格
段に向上できる。なおスケルトンモデル等を境界に引き
寄せる第2の計算は、スケルトンモデル等と境界との位
置関係を判断材料にして、必要に応じて行えばよい。According to the present invention, first, the first calculation is performed in a state where the constraint condition is invalid, and then, the second calculation for drawing the skeleton model or the like to the boundary is performed. Therefore,
The skeleton model or the like can be constrained to the boundary by performing only two calculations in one iteration loop. Therefore, the processing speed at the time of iterative calculation can be remarkably improved as compared with the conventional method in which one iterative loop includes another iterative loop. The second calculation for drawing the skeleton model or the like to the boundary may be performed as necessary, using the positional relationship between the skeleton model or the like and the boundary as a judgment material.
【0045】また本発明は、前記第1の計算において、
スケルトンモデル又はオブジェクトの前記境界方向への
移動量を含む式の値がほぼ極小、ほぼ極大及びほぼ停留
のいずれかになるように計算を行い、前記第2の計算に
おいて、スケルトンモデル又はオブジェクトと前記境界
との距離を含む式の値がほぼ極小、ほぼ極大及びほぼ停
留のいずれかになるように計算を行うことを特徴とす
る。Further, according to the present invention, in the first calculation,
Calculation is performed such that the value of the expression including the amount of movement of the skeleton model or object in the boundary direction is substantially minimum, approximately maximum, or substantially stationary, and in the second calculation, the skeleton model or object and the The calculation is performed so that the value of the expression including the distance to the boundary is substantially minimum, approximately maximum, or substantially stationary.
【0046】本発明によれば、境界方向への移動量を含
む式をほぼ極小等にすることで、境界に拘束されるべき
スケルトンモデル等が境界から離れすぎて引き戻し不能
になるという事態を防止できる。また境界との距離を含
む式をほぼ極小等にすることで、スケルトンモデル等の
境界への引き戻しを簡易に実現できる。According to the present invention, it is possible to prevent a skeleton model or the like to be constrained by a boundary from being too far away from the boundary to be unable to be pulled back by making the expression including the amount of movement in the boundary direction substantially minimal. it can. Further, by making the expression including the distance to the boundary substantially equal to the minimum, it is possible to easily return the skeleton model or the like to the boundary.
【0047】また本発明は、前記境界が、有限の面又は
有限の線であることを特徴とする。Further, the present invention is characterized in that the boundary is a finite surface or a finite line.
【0048】このように有限の面、有限の線(例えば有
限の大きさのポリゴン、有限の長さのポリゴンエッジ
等)にスケルトンモデルを拘束できることで、ユーザー
の利便性を向上できる。なお無限の面、無限の線に拘束
する場合は、例えばポリゴンの大きさやエッジの長さを
十分に大きくすることで対応できる。As described above, since the skeleton model can be constrained to a finite surface or a finite line (for example, a polygon having a finite size, a polygon edge having a finite length, etc.), user convenience can be improved. In the case of constraining to an infinite surface or an infinite line, for example, the size and the length of the edge of the polygon can be sufficiently increased.
【0049】また本発明は、スケルトンモデルの形状変
形方法であって、スケルトンモデルを、スケルトンモデ
ルのノードの座標を含む基本変数により表し、前記基本
変数の変化量を未知数とする第1の連立方程式が縮退又
はそれに近い状態にあるか否かを判断し、前記第1の連
立方程式が縮退又はそれに近い状態にあると判断された
場合に、前記第1の連立方程式を式の数を減らした独立
な第2の連立方程式に再構成し、再構成された第2の連
立方程式の解を求めることでスケルトンモデルの形状変
形を行うことを特徴とする。The present invention also relates to a method of deforming the shape of a skeleton model, wherein the skeleton model is represented by basic variables including the coordinates of the nodes of the skeleton model, and a first simultaneous equation in which the amount of change of the basic variables is unknown. Is determined to be in a state of degeneracy or close to it, and if it is determined that the first simultaneous equation is in a state of degenerate or close to it, the first simultaneous equation is converted to an independent It is characterized in that the shape of the skeleton model is deformed by reconstructing the second simultaneous equation and obtaining a solution of the reconstructed second simultaneous equation.
【0050】例えば第1の連立方程式が従属な式を含み
縮退した状態になると、第1の連立方程式の解が不定に
なるという事態が生じる。このような場合に、本発明に
よれば、式の数を減らした独立な第2の連立方程式が再
構成される。従って、上記のような解不定の事態が生じ
ても、解を一意的に定めることが可能となり、ノード座
標を基本変数として含むスケルトンモデルの適正な形状
変形が可能となる。For example, when the first system of equations is in a degenerate state including dependent equations, a situation arises in which the solution of the first system of equations becomes indefinite. In such a case, according to the present invention, an independent second simultaneous equation with a reduced number of equations is reconstructed. Therefore, even if the above-mentioned uncertain solution situation occurs, the solution can be uniquely determined, and the skeleton model including the node coordinates as a basic variable can be appropriately deformed.
【0051】また本発明は、前記第1の連立方程式が、
スケルトンモデルのアークの長さが所与の値となること
を規定する式の解を求めるための式であることを特徴と
する。Further, according to the present invention, the first simultaneous equation is:
It is an equation for finding a solution of an equation that defines that the arc length of the skeleton model has a given value.
【0052】例えば一端が固定ノードに接続される第1
のアークの長さを規定する第1の式と、一端が固定ノー
ドに接続され他端が第1のアークの他端に接続される第
2のアークの長さを規定する第2の式がある場合を考え
る。この場合、第1、第2の式は共に、第1、第2のア
ークの接続点にある第1のノードの座標を規定するもの
となる。しかしながら第1の式による規定と第2の式に
よる規定が同じ意味になる場合があり、この場合には第
1の式と第2の式は互いに従属な関係になってしまう。
第1、第2の式が従属な関係になると、これらの第1、
第2の式の解を求めるための第1の連立方程式は縮退し
た状態になってしまう。本発明によれば、このような場
合にも、独立な第2の連立方程式を再構成することで、
適正な解を得ることが可能となる。For example, a first terminal having one end connected to a fixed node
And a second equation defining the length of a second arc having one end connected to the fixed node and the other end connected to the other end of the first arc. Consider a case. In this case, both the first and second equations define the coordinates of the first node at the connection point of the first and second arcs. However, the definition by the first expression and the definition by the second expression may have the same meaning, and in this case, the first expression and the second expression are dependent on each other.
When the first and second equations have a dependent relationship, these first,
The first simultaneous equation for finding the solution of the second equation is in a degenerated state. According to the present invention, even in such a case, by reconstructing an independent second simultaneous equation,
An appropriate solution can be obtained.
【0053】また本発明に係る画像合成装置は、上記の
いずれかの形状変形方法により変形されるスケルトンモ
デルの形状を出力する手段と、操作者がスケルトンモデ
ルの変形を指示するための操作手段とを含むことを特徴
とする。The image synthesizing apparatus according to the present invention further comprises means for outputting the shape of the skeleton model deformed by any one of the above-described shape deformation methods, and operation means for allowing the operator to instruct the skeleton model to be deformed. It is characterized by including.
【0054】これにより、本発明の形状変形方法を用い
た形状データ作成ツール等の実現が可能となる。This makes it possible to realize a shape data creation tool and the like using the shape deformation method of the present invention.
【0055】また本発明に係る画像合成装置は、上記の
いずれかの形状変形方法により変形されるスケルトンモ
デルに付随して動くオブジェクトの画像を出力する手段
を含むことを特徴とする。Further, the image synthesizing apparatus according to the present invention is characterized by including means for outputting an image of a moving object accompanying a skeleton model deformed by any one of the above-mentioned shape deforming methods.
【0056】これにより、本発明の形状変形方法により
得られた形状データを使用したゲーム装置等の実現が可
能となる。Thus, it is possible to realize a game device or the like using the shape data obtained by the shape deformation method of the present invention.
【0057】[0057]
【発明の実施の形態】以下、本発明の実施例について、
図面に基づいて詳細に説明する。BEST MODE FOR CARRYING OUT THE INVENTION Hereinafter, embodiments of the present invention will be described.
This will be described in detail with reference to the drawings.
【0058】1.実施例の概要 基本原理 本実施例では、図1(A)に示すように、スケルトンモ
デル18を表す基本変数として、ノード2、3、4の座
標(x、y、z)、アーク6、7、8に垂直なアーク法
線ベクトル10、11、12の成分(u、v、w)を使
用する。例えばアーク間角度を基本変数とする図22
(A)、(B)、(C)の従来例では、親子関係を設定
する必要があり、ノード、アークを対等に扱えないが、
基本変数としてノード座標、アーク法線ベクトルを用い
る本実施例では、全てのノード、アークを対等なものと
して扱うことが可能となる。なお例えばアーク法線ベク
トルを他の変数で代替えすることも可能である。1. Overview of Embodiment Basic Principle In the present embodiment, as shown in FIG. 1A, coordinates (x, y, z) of nodes 2, 3, 4 and arcs 6, 7 are used as basic variables representing a skeleton model 18. , 8, the components (u, v, w) of the arc normal vectors 10, 11, 12 are used. For example, FIG. 22 using the angle between arcs as a basic variable
In the conventional examples (A), (B), and (C), it is necessary to set a parent-child relationship, and nodes and arcs cannot be treated equally.
In the present embodiment using node coordinates and arc normal vectors as basic variables, all nodes and arcs can be treated as equal. For example, it is also possible to substitute the arc normal vector with another variable.
【0059】次に図1(B)に示すように、上記基本変
数を未知数とする基本式として、アークの長さが所与の
値となることを規定する式、アーク法線ベクトルの長さ
が所与の値となることを規定する式、アーク法線ベクト
ルがアークに垂直になることを規定する式を用意する。
なお例えば基本式g=0、h=0を他の式で代替えする
ことも可能である。Next, as shown in FIG. 1 (B), as a basic expression in which the above-mentioned basic variables are unknowns, an expression for defining that the arc length has a given value, the length of the arc normal vector Is provided, and an equation is provided that specifies that the arc normal vector is perpendicular to the arc.
For example, the basic expressions g = 0 and h = 0 can be replaced with other expressions.
【0060】ここで図1(B)に示す基本式は非線形と
なる。そこで本実施例ではニュートン法等の反復計算法
により解を求める。このようにニュートン法等を用いる
ことで、基本式を、基本変数の変化量の1次式で表すこ
とが可能となる。これにより解くべき連立方程式は図1
(C)に示すものになる。Here, the basic equation shown in FIG. 1B is nonlinear. Therefore, in this embodiment, a solution is obtained by an iterative calculation method such as the Newton method. By using the Newton method or the like in this manner, it is possible to express the basic expression by a linear expression of the amount of change of the basic variable. The simultaneous equations to be solved by this are
(C).
【0061】しかしながら図1(C)の式では、変数の
数が式の数よりも多い。そこで本実施例では、基本式を
満たす解を一意的に特定するための評価式を用意する。
そして評価式の値をほぼ極小、ほぼ極大及びほぼ停留の
いずれかにするという条件を付加し、ラグランジュの乗
数法を適用して基本変数の解を求める。ラグランジュの
乗数法を用いることで、解くべき式は図1(D)のよう
になり、変数の数が式の数と一致するため、解を一意的
に定めることが可能となる。However, in the equation of FIG. 1C, the number of variables is larger than the number of equations. Therefore, in this embodiment, an evaluation formula for uniquely specifying a solution satisfying the basic formula is prepared.
Then, a condition that the value of the evaluation expression is substantially minimum, approximately maximum, or substantially stationary is added, and the 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. 1D, and the number of variables matches the number of equations, so that the solution can be uniquely determined.
【0062】なお本実施例では、ユーザーが動かすマウ
スのカーソル位置の座標等に基づいてスケルトンモデル
を変形させる。この時、所与の情報である上記カーソル
位置の座標等に基づいて基本式、評価式が変化する。具
体的にはカーソル位置の座標等に基づいて基本式や評価
式に含まれる既知数、式自体の形が変化し、これにより
スケルトンモデルの形状が変形する。なお上記所与の情
報としては、カーソル位置の座標のみならず、予め用意
されたデータ等、種々のものを用いることができる。In the present embodiment, the skeleton model is deformed based on the coordinates of the cursor position of the mouse moved by the user. At this time, the basic formula and the evaluation formula change based on the given information such as the coordinates of the cursor position. Specifically, based on the coordinates of the cursor position and the like, the known number included in the basic expression and the evaluation expression, and the shape of the expression itself change, thereby changing the shape of the skeleton model. As the given information, not only the coordinates of the cursor position but also various kinds of data such as data prepared in advance can be used.
【0063】アーク法線ベクトルの変化量の一次近似 さて本実施例では、図2(A)に示すように、アーク法
線ベクトルn(u、v、w)の変化量を、所与の1つの
変数であるρにより表して基本変数の解を求めている
(後述するアルゴリズム2を参照)。より具体的には、
アーク法線ベクトルnの変化量を、変数ρの一次式で近
似する。アーク法線ベクトルnはu、v、wの3変数で
表されるが、図2(A)に示すようにnはアーク50に
垂直且つ大きさが一定であるため、実際にはnの自由度
は1である。従ってnの変化量も1つの変数ρで表すこ
とが可能であり、これにより解くべき基本変数の数を減
らすことができ、処理の高速化を図れる。First-Order Approximation of Variation of Arc Normal Vector In this embodiment, as shown in FIG. 2A, the variation of the arc normal vector n (u, v, w) is given by 1 The solution of the basic variable is obtained by expressing the two variables as ρ (see Algorithm 2 described later). More specifically,
The variation of the arc normal vector n is approximated by a linear expression of a variable ρ. Although the arc normal vector n is represented by three variables u, v, and w, since n is perpendicular to the arc 50 and has a constant size as shown in FIG. The degree is one. Therefore, the amount of change in n can be represented by one variable ρ, whereby the number of basic variables to be solved can be reduced, and the processing can be speeded up.
【0064】評価式 また本実施例では好ましいスケルトンモデルの変形を得
るために、アーク間角度の変化量、ノードと所与の点と
の間の距離、端部に固定ノードを持つアークの向きの変
化量、ノード座標の変化量及びノード座標の速度変化量
等を評価式に含ませている。より具体的には、図2
(B)に示すように評価式に種々の条件を加えている。
例えば評価式にアーク間角度の変化量を含ませ、アーク
間角度の変化量の2乗和を極小化等することにより、あ
る1組のアーク間だけが突出して曲がる等の事態を防止
し、アーク間の曲げを全体的にバランスの良いものにす
ることができる。また評価式にノードと所与の点との間
の距離を含ませ、後述するラバーバンド等の設定を行う
ことにより、適正な形状を初期状態にして変形を開始す
ることができ、バランスの良いスケルトンモデルの形状
変形を実現できる。また端部に固定ノードを持つアーク
の向きの変化量、ノード座標の変化量を評価式に含ま
せ、固定ノード周りのアーク回転ダンパー、ノードダン
パー等を設定することで、解が不定になることを防止で
きる。またノード座標の変化量、ノード座標の速度変化
量を評価式に含ませ、ノードダンパー、ノードイナーシ
ャを設定することで、計算の収束が安定しないことに起
因するアークの暴れを防止できる。Evaluation Formula In this embodiment, in order to obtain a preferable deformation of the skeleton model, the amount of change in the angle between the arcs, the distance between the node and a given point, and the direction of the arc having a fixed node at the end are obtained. The change amount, the change amount of the node coordinates, the speed change amount of the node coordinates, and the like are included in the evaluation formula. More specifically, FIG.
Various conditions are added to the evaluation formula as shown in FIG.
For example, by including the change amount of the angle between the arcs in the evaluation formula and minimizing the sum of squares of the change amount of the angle between the arcs, it is possible to prevent a situation such that only a certain set of arcs protrudes and bends. The bending between the arcs can be made generally well balanced. In addition, by including the distance between the node and a given point in the evaluation expression and setting a rubber band or the like described later, it is possible to start deformation with an appropriate shape in an initial state, and to achieve a good balance. The shape deformation of the skeleton model can be realized. Also, by including the change amount of the direction of the arc having the fixed node at the end and the change amount of the node coordinates in the evaluation formula, and setting the arc rotation damper around the fixed node, the node damper, etc., the solution becomes indefinite. Can be prevented. In addition, by including the change amount of the node coordinates and the speed change amount of the node coordinates in the evaluation formula and setting the node damper and the node inertia, it is possible to prevent a ramp of an arc due to unstable calculation convergence.
【0065】反復ループ毎の基本式、評価式の更新 本実施例の使用法としては、リアルタイム、非リアルタ
イムの両方が考えられる。非リアルタイム使用の場合
は、計算を十分に収束させてから、スケルトンモデルの
形状を更新すればよい。一方、リアルタイム使用の場合
は、ユーザーの入力に対して十分な追従性が必要とな
る。Updating of Basic Expression and Evaluation Expression for Each Iterative Loop Both real-time and non-real-time can be considered as the usage of this embodiment. In the case of non-real-time use, the shape of the skeleton model may be updated after the calculation is sufficiently converged. On the other hand, in the case of real-time use, sufficient followability to user input is required.
【0066】そこで本実施例では、図3(A)に示すニ
ュートン法等の反復計算により基本変数の解を求めると
共に、基本式、評価式の少なくとも一方を、反復ループ
の終了又は開始に同期させて所与の情報に基づいて次々
に変化させている。Therefore, in this embodiment, the solution of the basic variable is obtained by iterative calculation such as the Newton method shown in FIG. 3A, and at least one of the basic expression and the evaluation expression is synchronized with the end or start of the iterative loop. Are sequentially changed based on given information.
【0067】例えば計算処理において、マウスカーソル
の座標値を得てから、これをもとにスケルトンモデルの
変形を行い、その結果を表示するまでの処理過程を1イ
ベントサイクルと呼ぶことにする。ユーザーは、ピック
されたノードの位置を、時々刻々マウスをドラッグする
ことで移動させるので、これに追従してスケルトンモデ
ルを変形させるには、1イベントサイクル中の計算量を
なるべく小さくする必要がある。そこで本実施例では、
マウスドラッグ中は、1イベントサイクルの間にニュー
トン法等の反復計算を例えば1反復ループだけ実行する
手法を用いる。具体的には図3(B)に示すように、マ
ウスカーソルの位置座標を得ると、この位置座標に基づ
いて基本式や評価式の既知数や式自体の形を変化させ、
例えば1反復ループ分だけ反復計算を実行する。For example, in the calculation process, the process from obtaining the coordinate value of the mouse cursor, deforming the skeleton model based on the coordinate value, and displaying the result is referred to as one event cycle. Since the user moves the position of the picked node by dragging the mouse from time to time, it is necessary to reduce the amount of calculation in one event cycle as much as possible to deform the skeleton model following this . Therefore, in this embodiment,
During mouse dragging, a method of performing an iterative calculation such as the Newton method during one event cycle, for example, only one iterative loop is used. Specifically, as shown in FIG. 3B, when the position coordinates of the mouse cursor are obtained, the known number of the basic expression and the evaluation expression and the shape of the expression itself are changed based on the position coordinates.
For example, an iterative calculation is performed for one iterative loop.
【0068】この手法を採用すると、マウスドラッグ中
は計算は収束せず基本式が満たされないため、例えばア
ークの長さが本来の長さより伸びる等の可能性がある。
しかしながら、その伸び量は実用上問題のないレベルで
ある。またスケルトンモデルの形状を微妙に調整する際
には、マウスの動きは遅くなるため、スケルトンモデル
は収束形状に近い状態で変形する。そしてマウスの動き
が止まれば、計算は収束し、正確なスケルトンモデルの
形状を得ることができる。When this method is adopted, the calculation does not converge during mouse dragging, and the basic formula is not satisfied. For example, there is a possibility that the arc length is longer than the original length.
However, the elongation is at a level where there is no practical problem. In addition, when the shape of the skeleton model is finely adjusted, the movement of the mouse is slowed, so that the skeleton model deforms in a state close to the convergent shape. When the movement of the mouse stops, the calculation converges and an accurate skeleton model shape can be obtained.
【0069】なお本実施例では、反復計算の1反復ルー
プでの変数の変化量が大きい場合には、スケーリング補
正を行う。これにより反復ループ毎に基本式、評価式を
変化させる上記手法を用いても、スケルトンモデルが不
自然な形状になることを防止できる。また上記では、1
反復ループ毎に基本式等を変化させたが、本実施例はこ
れに限らず、例えば2反復ループ毎、3反復ループ毎に
基本式等を変化させてもよい。即ち少なくとも反復ルー
プの終了又は開始に同期させて基本式等を次々に変化さ
せるものであればよい。In this embodiment, when the amount of change of the variable in one iteration loop of the iterative calculation is large, the scaling correction is performed. This can prevent the skeleton model from having an unnatural shape even when the above-described method of changing the basic expression and the evaluation expression for each iteration loop is used. In the above, 1
Although the basic expression and the like are changed for each iteration loop, the present embodiment is not limited to this. For example, the basic expression and the like may be changed for every two iteration loops and every three iteration loops. That is, it is sufficient that the basic formulas and the like are changed one after another in synchronization with at least the end or start of the repetitive loop.
【0070】固定ノード、固定アーク法線ベクトル また本実施例では、固定されたノードの座標又は固定さ
れたアーク法線ベクトルの成分を既知数として扱ってい
る。例えば図4に本実施例によるスケルトンモデル52
の形状変形の例を示す。ここでノード54、56が固定
ノードとなる。一方、ノード58はユーザーがピックし
たノードであり、ユーザーがマウスをドラッグしノード
58を移動させることでスケルトンモデルの形状が変形
する。そして固定ノード54、56の座標は基本式等の
既知数となり、他のノードの座標やアーク法線ベクトル
の成分が求めるべき未知数となる。従ってノード58を
動かすと、スケルトンモデル52のノード58の部分の
みならずスケルトンモデル52の全体が滑らかに変形す
ることになる。Fixed Node, Fixed Arc Normal Vector In this embodiment, the coordinates of the fixed node or the components of the fixed arc normal vector are treated as known numbers. For example, FIG. 4 shows a skeleton model 52 according to this embodiment.
2 shows an example of the shape deformation. Here, the nodes 54 and 56 are fixed nodes. On the other hand, the node 58 is a node picked by the user, and the shape of the skeleton model is deformed when the user moves the node 58 by dragging the mouse. The coordinates of the fixed nodes 54 and 56 are known numbers such as basic expressions, and the coordinates of the other nodes and components of the arc normal vector are unknown numbers to be obtained. Therefore, when the node 58 is moved, not only the portion of the skeleton model 52 at the node 58 but also the entire skeleton model 52 is smoothly deformed.
【0071】なお図4では、ノードを固定しているが、
アークの向く方向を固定する、即ちアーク法線ベクトル
の方向を固定することも可能である。この場合には固定
されたアーク法線ベクトルの成分が既知数になる。In FIG. 4, the nodes are fixed.
It is also possible to fix the direction of the arc, that is, fix the direction of the arc normal vector. In this case, the component of the fixed arc normal vector becomes a known number.
【0072】図22(A)、(B)、(C)に示す従来
例では、固定ノードはルート、移動可能ノードはエフェ
クタに限定されていたが、本実施例によれば、ユーザー
は、親子関係等を気にせず、所望のノード、アークを自
由に固定したり移動したりすることができる。これは本
実施例では基本変数としてノード座標、アーク法線ベク
トルを採用しており、全てのノード、アークを対等に扱
うことができるからである。In the conventional example shown in FIGS. 22A, 22B, and 22C, the fixed node is limited to the root and the movable node is limited to the effector. A desired node or arc can be freely fixed or moved without concern for a relationship or the like. This is because in the present embodiment, node coordinates and arc normal vectors are adopted as basic variables, and all nodes and arcs can be treated equally.
【0073】ラバーバンド 本実施例では、ラバーバンドという概念を導入してスケ
ルトンモデルの形状変形を行っている。即ちスケルトン
モデルの形状変形を制御する所与の点の座標が変化した
場合に、ノードと前記所与の点との間の距離が極小にな
るようにスケルトンモデルの形状を変形させている。例
えば図5(A)において、ノード58を固定しノード6
0を移動させる場合を考える。ラバーバンドは根と先を
持ち、根は、マウスの動きに合わせて移動し、先は、ピ
ックされたノードに固定される。そしてユーザーがマウ
スをクリックしマウスカーソルが点62からまだ動いて
いない状態では、ラバーバンドの根及び先はノード60
の位置にある。図5(B)に示すように、ユーザーがマ
ウスをドラッグしマウスカーソルを点62から点64に
動かすと、ラバーバンド66の根がノード60の位置か
ら点68に移動する。この時、ラバーバンド66の先は
ノード60の位置に固定されたままとなる。このラバー
バンド66は縮もうとする性質、即ちノード60と所与
の点68との間の距離を極小にしようとする性質を持っ
ている。これにより図5(C)に示すように、ノード6
0は点68まで移動し、スケルトンモデルの形状が変形
する。Rubber Band In this embodiment, the shape of the skeleton model is deformed by introducing the concept of a rubber band. That is, when the coordinates of a given point that controls the shape deformation of the skeleton model are changed, the shape of the skeleton model is deformed so that the distance between the node and the given point is minimized. For example, in FIG.
Consider the case where 0 is moved. The rubber band has a root and a tip, and the root moves according to the movement of the mouse, and the tip is fixed to the picked node. If the user clicks the mouse and the mouse cursor has not yet moved from point 62, the root and tip of the rubber band are at node 60.
In the position. As shown in FIG. 5B, when the user drags the mouse and moves the mouse cursor from point 62 to point 64, the root of rubber band 66 moves from the position of node 60 to point 68. At this time, the tip of the rubber band 66 remains fixed at the position of the node 60. The rubber band 66 has a property of shrinking, that is, a property of trying to minimize the distance between the node 60 and a given point 68. As a result, as shown in FIG.
0 moves to the point 68, and the shape of the skeleton model is deformed.
【0074】なお図4のノード58の移動をラバーバン
ドを用いて行った場合には、ノード58の座標は未知数
となる。一方、ラバーバンドを介さず直接にユーザーが
ノード58を動かす場合や、予め用意されたデータに基
づいてノード58の座標を変化させる場合には、ノード
58の座標は既知数になる。When the movement of the node 58 in FIG. 4 is performed using a rubber band, the coordinates of the node 58 are unknown. On the other hand, when the user moves the node 58 directly without going through the rubber band, or when the coordinates of the node 58 are changed based on data prepared in advance, the coordinates of the node 58 become a known number.
【0075】また本実施例では、図6に示すように、2
個以上のノード、例えばノード58、59を同時に移動
させることもできる。この場合には、図5(D)、
(E)に示すように、2つのラバーバンド66、67が
生成され、ノード60、61と所与の点68、69の間
の距離が極小になるようにラバーバンド66、67が変
形する。In this embodiment, as shown in FIG.
More than one node, eg, nodes 58, 59, can be moved simultaneously. In this case, FIG.
As shown in (E), two rubber bands 66, 67 are generated, and the rubber bands 66, 67 are deformed so that the distance between the nodes 60, 61 and the given points 68, 69 is minimized.
【0076】図7に、より複雑な多分岐構造を持つスケ
ルトンモデル70の形状変形の例を示す。ここではノー
ド72、74及びアーク73が固定され、ノード76が
ラバーバンドを介して動かされている。このように本実
施例によれば、従来例と異なり、多分岐構造の複雑さに
依存せずにスケルトンモデルを滑らかに形状変形でき
る。FIG. 7 shows an example of the shape deformation of the skeleton model 70 having a more complicated multi-branch structure. Here, the nodes 72 and 74 and the arc 73 are fixed, and the node 76 is moved via a rubber band. As described above, according to the present embodiment, unlike the conventional example, the skeleton model can be smoothly deformed without depending on the complexity of the multi-branch structure.
【0077】拘束条件 -1 拘束条件の種類 本実施例では、以下に示すように、スケルトンモデルの
形状変形に対して種々の拘束条件の設定が可能となって
いる。Constraint Conditions -1 Kinds of Constraint Conditions In this embodiment, various constraint conditions can be set for the shape deformation of the skeleton model as described below.
【0078】第1に本実施例では、ノードの位置やアー
クの方向を固定する拘束条件の設定が可能であり、これ
は上述したように、固定ノードの座標や固定アークのア
ーク法線ベクトルを既知数として扱うことで実現でき
る。First, in the present embodiment, it is possible to set a constraint condition for fixing the position of the node and the direction of the arc, and as described above, the coordinates of the fixed node and the arc normal vector of the fixed arc can be set. It can be realized by treating it as a known number.
【0079】第2に本実施例では、スケルトンモデルの
アーク間のなす角度に可動範囲を設ける拘束条件の設定
が可能となっている。例えば図8(A)、(B)では、
スケルトンモデル77のアーク78、80間の角度θが
180度以下となるような不連続な拘束条件が設定され
ている。即ちスケルトンモデルの形状変形の際に肘関節
が逆に折れしてしまうと不自然であり、このような拘束
条件を設定することでユーザーの利便性を高めることが
できる。なおこの拘束条件は、例えばアーク間のなす角
度を所与の範囲に拘束する式を評価式に含ませることで
実現できる。Second, in the present embodiment, it is possible to set a constraint condition for providing a movable range in the angle between the arcs of the skeleton model. For example, in FIGS. 8A and 8B,
A discontinuous constraint condition is set such that the angle θ between the arcs 78 and 80 of the skeleton model 77 is 180 degrees or less. In other words, it is unnatural if the elbow joint is bent at the time of shape deformation of the skeleton model, and the user's convenience can be improved by setting such a constraint condition. Note that this constraint condition can be realized, for example, by including in the evaluation expression an expression that restricts the angle between the arcs within a given range.
【0080】第3に本実施例では、スケルトンモデルの
ノードを所与の面又は線、例えばポリゴンやそのエッジ
に拘束する条件の設定が可能となっている。以下、特定
のノードを、指定されたポリゴンまたはエッジの上に拘
束する操作をアタッチと呼ぶことにする。例えば図9
(A)では、スケルトンモデル81のノード82がユー
ザーの指定によりポリゴン84にアタッチされており、
図9(B)では、ノード82がエッジ86にアタッチさ
れている。ここで本実施例の特徴は、ノード82を、ポ
リゴン84或いはエッジ86に不連続に拘束できる点で
ある。即ち図9(A)では、ノード82は、ポリゴン8
4の面内でのみで移動可能となっており、ポリゴン84
のエッジを越えて移動することはできない。また図9
(B)では、ノード82は、エッジ86の線内でのみで
移動可能となっており、頂点を越えて移動することはで
きない。このようにポリゴン、エッジにノードを不連続
に拘束できることで、ユーザーの利便性を向上できる。Third, in this embodiment, it is possible to set conditions for restricting the nodes of the skeleton model to a given surface or line, for example, a polygon or its edge. Hereinafter, an operation of restraining a specific node on a specified polygon or edge is referred to as “attach”. For example, FIG.
In (A), a node 82 of a skeleton model 81 is attached to a polygon 84 by a user's specification.
In FIG. 9B, the node 82 is attached to the edge 86. Here, a feature of this embodiment is that the node 82 can be discontinuously bound to the polygon 84 or the edge 86. That is, in FIG. 9A, the node 82 is the polygon 8
4 can be moved only within the plane of the polygon 84.
Can not move beyond the edge of. FIG.
In (B), the node 82 can move only within the line of the edge 86, and cannot move beyond the vertex. Since the nodes can be discontinuously bound to polygons and edges in this way, user convenience can be improved.
【0081】図10に、上記のアタッチ機能を利用して
スケルトンモデルに壁登りを行わせた例を示す。スケル
トンモデル88のノード90、91、92、93(手足
の先に相当)は第1の壁オブジェクト96にアタッチさ
れている。一方、スケルトンモデル88のノード94、
95(背中に相当)は、第1の壁オブジェクト96と所
与の間隔だけ離して置かれている第2の壁オブジェクト
98にアタッチされている。このように第2の壁オブジ
ェクト98を設けることで、胴体を第1の壁オブジェク
ト96からほど良い距離だけ保った状態でスケルトンモ
デル88を変形移動できる。なお図11に、スケルトン
モデル88、第1、第2の壁オブジェクト96、98の
位置関係を明らかにするための図を示す。図10では、
ノード91は第1の壁オブジェクト96にアタッチされ
ると共にその座標が固定されている。またノード89も
座標が固定されている。そしてユーザーがノード87及
び90をピックして移動すると、その移動に伴いスケル
トンモデル88が形状変形しながら壁を登る。この時、
ノード92、93、94、95は、第1、第2の壁オブ
ジェクト96、98にアタッチされているため、これら
の壁オブジェクトの面内に拘束されながら移動すること
になる。FIG. 10 shows an example in which the skeleton model climbs a wall using the above-mentioned attach function. Nodes 90, 91, 92, 93 (corresponding to the tips of the limbs) of the skeleton model 88 are attached to the first wall object 96. On the other hand, the node 94 of the skeleton model 88,
95 (corresponding to the back) is attached to a second wall object 98 that is placed at a given distance from the first wall object 96. By providing the second wall object 98 in this manner, the skeleton model 88 can be deformed and moved while keeping the body at a moderate distance from the first wall object 96. FIG. 11 shows a diagram for clarifying the positional relationship between the skeleton model 88 and the first and second wall objects 96 and 98. In FIG.
The node 91 is attached to the first wall object 96 and its coordinates are fixed. The coordinates of the node 89 are also fixed. Then, when the user picks and moves the nodes 87 and 90, the skeleton model 88 climbs the wall while deforming the shape in accordance with the movement. At this time,
Since the nodes 92, 93, 94, and 95 are attached to the first and second wall objects 96 and 98, they move while being constrained within the plane of these wall objects.
【0082】第4に、本実施例では、スケルトンモデル
とオブジェクトの干渉時に、スケルトンモデルがオブジ
ェクトに侵入したり通り抜けたりしないようにする拘束
条件の設定が可能となっている。例えば図12に示すよ
うに、鞭を表すスケルトンモデル100と円柱オブジェ
クト102との干渉時において、スケルトンモデル10
0は、円柱オブジェクト102の中に侵入せずに巻き付
くように形状変形する。このような拘束条件は、スケル
トンモデルとオブジェクトの干渉時にスケルトンモデル
をオブジェクトに拘束する式を評価式に含ませることで
実現できる。Fourth, in this embodiment, it is possible to set a constraint condition for preventing the skeleton model from invading or passing through the object when the skeleton model and the object interfere with each other. For example, as shown in FIG. 12, when a skeleton model 100 representing a whip and a cylindrical object 102 interfere with each other, the skeleton model 10
0 is deformed so as to wind around the cylindrical object 102 without entering the cylindrical object 102. Such a constraint condition can be realized by including, in the evaluation expression, an expression for restricting the skeleton model to the object when the skeleton model and the object interfere with each other.
【0083】-2 不連続拘束条件の改良 以上のような不連続な拘束条件を扱う場合には、以下の
ような問題がある。即ちこれまでの一般的な手法では、
図13(A)に示すように、まず拘束条件が無効な状態
(フリー)で計算を行い、例えばスケルトンモデルのノ
ードとオブジェクトがぶつかったと判断されると、拘束
条件を有効な状態(ノードをオブジェクトに完全に拘
束)にして計算をやり直す。計算の結果、オブジェクト
にぶつかる他のノードが検出されたら、再度計算をやり
直す。この手法では、拘束条件が有効な状態の時にノー
ドはオブジェクトに完全に拘束される。従って、ユーザ
ーが、スケルトンモデルをオブジェクトの方向に移動さ
せたのか、オブジェクトから離れる方向に移動させたの
かを判別するため、初めに拘束条件が無効な状態で計算
を行う必要がある。逆に初めに拘束条件が有効な状態で
計算を行うと、ノードはオブジェクトに完全に拘束され
てしまうため、ユーザーがどちらの方向にオブジェクト
を移動させているのかを判別できない。-2 Improvement of Discontinuous Constraint Conditions When handling such discontinuous constraint conditions, there are the following problems. That is, in the general method so far,
As shown in FIG. 13A, first, the calculation is performed in a state in which the constraint condition is invalid (free). For example, when it is determined that the node of the skeleton model and the object have collided, the condition in which the constraint condition is valid (the node is And completely repeat the calculation. As a result of the calculation, if another node that hits the object is detected, the calculation is performed again. In this method, the node is completely constrained to the object when the constraining condition is valid. Therefore, in order to determine whether the user has moved the skeleton model in the direction of the object or in the direction away from the object, it is necessary to first perform the calculation with the constraint conditions invalid. Conversely, if the calculation is first performed in a state where the constraint condition is valid, the node is completely constrained by the object, so that it is impossible to determine in which direction the user is moving the object.
【0084】このように上記手法によると、1つの反復
ループの中で、拘束条件が無効な状態での計算と、拘束
条件を決定するための反復計算が必要になる。即ち、1
つの反復ループの中にもう1つの反復ループが含まれ、
反復ループが2重になってしまうため、処理速度が大幅
に低下する。As described above, according to the above-described method, calculation in a state where the constraint condition is invalid and iterative calculation for determining the constraint condition are required in one iteration loop. That is, 1
One iterative loop contains another iterative loop,
Since the iteration loop is duplicated, the processing speed is greatly reduced.
【0085】そこで本実施例では、図13(B)に示す
ような手法により不連続な拘束条件を扱っている。まず
スケルトンモデル(或いはこれに付随して動くオブジェ
クト)が、所与の境界を越えた場合に、スケルトンモデ
ルを境界側に戻す拘束条件の下でスケルトンモデルの変
形を行う。即ち拘束条件が有効な状態ではノード等は境
界に完全拘束されず、いわゆるスプリング(バネ)拘束
される。スプリング拘束により境界に拘束することで、
ユーザーがスケルトンモデルを、オブジェクト等の境界
の方向に移動させているのか或いは境界から離す方向に
移動させているのかを判断できる。Therefore, in this embodiment, discontinuous constraint conditions are handled by a method as shown in FIG. First, when the skeleton model (or a moving object accompanying the skeleton model) crosses a given boundary, the skeleton model is deformed under the constraint of returning the skeleton model to the boundary side. That is, in a state where the constraint condition is valid, the nodes and the like are not completely restricted to the boundary but are so-called spring (spring) restricted. By restraining to the boundary by spring restraint,
It is possible to determine whether the user is moving the skeleton model in the direction of the boundary of the object or the like or in the direction away from the boundary.
【0086】スケルトンモデルの形状を求める反復ルー
プが拘束条件が無効な状態で行われ且つスケルトンモデ
ルのノード106やアークが境界104を越えていない
場合には、次の反復ループにおいても拘束条件を無効な
状態にして計算を行う。When the iterative loop for obtaining the shape of the skeleton model is performed in a state where the constraints are invalid and the nodes 106 and the arcs of the skeleton model do not exceed the boundary 104, the constraints are invalidated in the next iterative loop as well. The calculation is performed with the state as follows.
【0087】一方、反復ループが拘束条件が無効な状態
で行われ且つノード106等が境界104を越えている
場合には、境界104の方向にユーザーがスケルトンモ
デルを移動させていると判断できるため、次の反復ルー
プにおいては拘束条件を有効な状態にして計算を行う。
この場合、必要に応じて、計算結果をスケーリングし、
ノード106を位置107に戻す補正を行う。On the other hand, when the iterative loop is performed in a state where the constraint condition is invalid and the node 106 or the like is beyond the boundary 104, it can be determined that the user is moving the skeleton model in the direction of the boundary 104. In the next iteration loop, the calculation is performed with the constraint conditions being valid.
In this case, scale the calculation as needed,
A correction for returning the node 106 to the position 107 is performed.
【0088】また反復ループが拘束条件が有効な状態で
行われ且つノード106等が境界104を越えている場
合には、次の反復ループにおいても拘束条件を有効な状
態にして計算を行う。なお拘束条件が有効な状態では強
力なスプリング拘束が付加されるため、ノード104の
突き抜けは、ユーザに気づかれないほどの微少なものと
なる。When the iterative loop is performed in a state where the constraint condition is valid and the node 106 or the like exceeds the boundary 104, the calculation is performed in the next iterative loop with the constraint condition being valid. In a state in which the constraint condition is valid, a strong spring constraint is added, so that the penetration of the node 104 is so small that the user does not notice it.
【0089】一方、反復ループが拘束条件が有効な状態
で行われ且つノード106等が境界104を越えていな
い場合には、境界104から離れる方向にユーザーがス
ケルトンモデルを移動させていると判断できるため、次
の反復ループにおいては拘束条件を無効な状態にして計
算を行う。この場合、拘束条件を無効な状態にして再計
算を行う。但し、境界104から離れる方向にスケルト
ンモデルを移動している場合には、次の反復ループで適
正な計算結果を得ることができるため、この再計算は省
略することができる。On the other hand, when the iterative loop is performed in a state where the constraint condition is valid and the node 106 or the like does not exceed the boundary 104, it can be determined that the user moves the skeleton model in a direction away from the boundary 104. Therefore, in the next iterative loop, the calculation is performed with the constraint condition being invalid. In this case, re-calculation is performed with the constraint condition invalid. However, when the skeleton model is moving in a direction away from the boundary 104, an appropriate calculation result can be obtained in the next iteration loop, so that this recalculation can be omitted.
【0090】以上のような手法で不連続な拘束条件を扱
うことで、反復ループでの計算の処理量を、図13
(A)に比べて格段に減らすことができ、処理の高速化
を図れる。By treating discontinuous constraints in the manner described above, the amount of calculation in the iterative loop can be reduced as shown in FIG.
Compared with (A), the number can be significantly reduced, and the processing speed can be increased.
【0091】-3 不連続拘束条件を規定する不等式の
等式への置き換え 本実施例では、後述のアルゴリズム1の(アーク間角
度範囲の設定)及び図18(A)〜(C)で詳述するよ
うに、不連続拘束条件を規定する不等式(50)を、これと
同等の効果を持つ等式(48)に置き換えている。例えばア
ーク間角度等の第1の変数の変域は、不等式(50)で規定
できるが、不等式は、場合分け等を必要とするため基本
式や評価式として使用すると処理が煩雑化する。そこで
本実施例では、不等式(50)の式及び数を左辺に(或いは
右辺)に移項すると共に、新たな第2の変数(tX等)
の関数であり恒常的に正又は負又は非負又は非正になる
関数(tX 2等)で右辺(或いは左辺)を置き換えた等式
(48)を導入する。そしてこの等式(48)により第1の変数
の変域を規定して、スケルトンモデルの形状変形を行
う。等式は不等式に比べて基本式や評価式に組み込むこ
とが容易であるため、本実施例によれば処理の簡易化を
図れる。-3 Replacement of Inequalities that Define Discontinuity Constraints with Equations In this embodiment, details of algorithm 1 (setting of angle range between arcs) and FIGS. 18A to 18C will be described in detail. Thus, the inequality (50) defining the discontinuous constraint condition is replaced by the equation (48) having the same effect. For example, the domain of the first variable such as the angle between arcs can be defined by the inequality (50). However, if the inequality is used as a basic expression or an evaluation expression because it needs to be classified, the processing becomes complicated. Therefore, in the present embodiment, the equation and the number of the inequality (50) are shifted to the left side (or the right side), and a new second variable (t X or the like) is added.
An equation that replaces the right-hand side (or the left-hand side) with a function (such as t X 2 ) that is always positive or negative or non-negative or non-positive.
(48) is introduced. Then, the domain of the first variable is defined by the equation (48), and the shape of the skeleton model is deformed. Since the equations are easier to incorporate into the basic equations and the evaluation equations than the inequalities, according to the present embodiment, the processing can be simplified.
【0092】なお第2の変数が大きく変動し拘束条件が
機能しなくなることを防止するために、アルゴリズム1
の-2の式(58)に示すような、第2の変数の変化量を含
む式を導入することが望ましい。また第2の変数が所与
の収束値に収束し、スケルトンモデルの変形の応答速度
が低下するのを防止するために、収束前に第2の変数に
所与の値を加えることが望ましい。更に、不等式を等式
に置き換えるこの手法は、アーク間角度の可動範囲を設
定する不連続拘束条件のみならず、ポリゴンやエッジへ
のノードのアタッチや、スケルトンモデルとオブジェク
トとの干渉等の他の不連続拘束条件にも適用できる。In order to prevent the second variable from greatly fluctuating and the constraint condition from functioning, the algorithm 1
It is desirable to introduce an equation including the amount of change of the second variable as shown in equation (58) of -2. In order to prevent the second variable from converging to a given convergence value and reducing the response speed of the deformation of the skeleton model, it is desirable to add the given value to the second variable before convergence. Furthermore, this method of replacing inequalities with equations is not only a discontinuous constraint condition that sets the movable range of the angle between arcs, but also other techniques such as attaching nodes to polygons and edges, and interference between skeleton models and objects. It can also be applied to discontinuous constraints.
【0093】-4 Drag back法 本実施例では、後述するアルゴリズム1ので詳しく説
明するDrag back法という手法を採用して不連続拘束条
件を取り扱っている。この手法では、1の反復ループに
おいて、スケルトンモデルのノード、アーク等をポリゴ
ンやエッジ等の境界に拘束する拘束条件が無効な状態で
第1の計算を行う。次に、同じ1の反復ループにおい
て、上記の第1の計算の後に、スケルトンモデルのノー
ド、アーク等を境界に引き寄せる第2の計算を行う。こ
のようにすることで、1の反復ループで必要となる計算
を2回で済ますことが可能となり、1の反復ループが別
のもう1つの反復ループを含んでしまう従来の手法(図
13(A))に比べて、処理を格段に高速化できる。-4 Drag back Method In this embodiment, the discontinuous constraint condition is handled by employing a method called the Drag back method which will be described in detail in Algorithm 1 described later. In this method, in one iterative loop, the first calculation is performed in a state in which a constraint condition for restricting a node, an arc, or the like of a skeleton model to a boundary such as a polygon or an edge is invalid. Next, in the same one iterative loop, after the above-described first calculation, a second calculation for drawing nodes, arcs, and the like of the skeleton model to the boundary is performed. By doing so, it is possible to perform the calculation required for one iteration loop twice, and the conventional method in which one iteration loop includes another iteration loop (FIG. 13 (A) The processing can be remarkably speeded up as compared with)).
【0094】なお上記第1の計算においては、アルゴリ
ズム1の-1、-2の式(62)、(65)に示すような、面垂
直ダンパーや線垂直ダンパーを働かせることが望まし
い。即ちスケルトンモデルのノード、アーク等の境界方
向への移動量を含む式を極小等にする。このようにすれ
ば、ノード、アーク等が境界から離れすぎて引き戻し不
能になるという事態を防止できる。また上記第2の計算
においては、アルゴリズム1の-3、-4、-5に示す
ような、face magnet、line magnet、point magnetを働
かせることが望ましい。即ちノード、アーク等と境界と
の距離を含む式を極小等にする。このようにすること
で、ノード、アーク等の境界への引き戻しを簡易に実現
できる。更に、Drag back法は、ポリゴンやエッジへノ
ードをアタッチする際の不連続拘束条件のみならず、ア
ーク間角度の可動範囲設定、スケルトンモデルとオブジ
ェクトとの干渉等の他の不連続拘束条件にも適用でき
る。In the above first calculation, it is desirable to use a surface-perpendicular damper or a line-perpendicular damper as shown in equations (62) and (65) of -1 and -2 of Algorithm 1. That is, the expression including the amount of movement of the nodes and arcs of the skeleton model in the boundary direction is minimized. In this way, it is possible to prevent a situation in which nodes, arcs, and the like are too far from the boundary and cannot be pulled back. In the second calculation, it is desirable to use a face magnet, a line magnet, and a point magnet as shown in -3, -4, and -5 of Algorithm 1. That is, the expression including the distance between the node, arc, etc. and the boundary is minimized. By doing so, it is possible to easily return the nodes, arcs, and the like to the boundaries. In addition, the Drag back method is applicable not only to discontinuous constraint conditions when attaching nodes to polygons and edges, but also to other discontinuous constraint conditions such as setting the movable range of the angle between arcs and interference between the skeleton model and the object. Applicable.
【0095】特異値分解(連立方程式の再構成) 本実施例では、後述のアルゴリズム1の(特異状態と
その対応方法)及び図17(B)、(C)で詳述するよ
うに、連立方程式が縮退又はそれに近い状態にある場合
に、独立な新たな連立方程式を再構成して解を求める手
法を採用している。連立方程式が従属な式を含み縮退し
た状態になると解が不定になり、適正な形状変形ができ
なくなる。特にアルゴリズム1の式(4)のFijのよう
に、アークの長さを規定する式の解を求めるための式に
おいて、このような解不定が生じる可能性があるが、本
実施例によればこのような解不定の事態を有効に防止で
きる。Singular Value Decomposition (Reconstruction of Simultaneous Equations) In this embodiment, as will be described in detail later with reference to Algorithm 1 (singular states and corresponding methods) and FIGS. 17B and 17C, simultaneous equations Is a degenerate state or a state close to the degenerate state, a method of reconstructing an independent new simultaneous equation to obtain a solution is adopted. If the simultaneous equations are in a degenerate state including dependent equations, the solution becomes indefinite, and proper shape deformation cannot be performed. In particular, there is a possibility that such a solution indefinite may occur in an equation for finding a solution of an equation that defines the arc length, such as F ij in Equation (4) of Algorithm 1, but according to the present embodiment, Such an indeterminate situation can be effectively prevented.
【0096】次に本実施例の詳細なアルゴリズムの2つ
の例について説明する。なお以下の説明において使用さ
れる総和符号の意味は下記の通りである。なお下記にお
いて、アーク間の角度をアングルと呼び、アングルを構
成する2本のアーク及びその端点である3つのノードを
アングルの構成要素と呼ぶ。Next, two examples of the detailed algorithm of this embodiment will be described. The meaning of the sum code used in the following description is as follows. In the following, the angle between the arcs is called an angle, and the two arcs that make up the angle and the three nodes that are the endpoints are called angle components.
【数1】 また添え字の順序と符号との関係は以下の通りである。(Equation 1) The relationship between the subscript order and the sign is as follows.
【数2】 2.アルゴリズム1 基本式 図14において、ノードNiの座標を(xi、yi、zi)
とする。またアークには、3次元空間内での回転を表す
ために、アーク法線ベクトルを設ける。アークAij(ノ
ードNi、ノードNjを結ぶアーク)の法線ベクトルをn
ij(uij、vij、wij)とする。本実施例では、これら
の基本変数を用いてスケルトンモデルの形状を表す。ア
ークごとに次の基本式が成り立つ。(Equation 2) 2. In algorithm 1 basic diagram 14, the coordinates of the node N i (x i, y i , z i)
And The arc is provided with an arc normal vector to represent rotation in a three-dimensional space. Arc A ij normal vectors (the node N i, arc connecting the node N j) n
ij (u ij , v ij , w ij ). In the present embodiment, the shape of the skeleton model is represented using these basic variables. The following basic equation holds for each arc.
【数3】 第1式は、アークAijの長さがLijであることを意味す
る。第2式は、法線ベクトルの大きさが1であることを
意味する。第3式は、アーク法線ベクトルとアークが垂
直であることを意味する。また、スケルトンモデルの相
似変形に対し式が不変となるように、スケールファクタ
ーλを用いる。即ち第1のスケルトンモデルを形状変形
した場合と、これの2倍の大きさを持つ第2のスケルト
ンモデルを上記の2倍だけ形状変形した場合とで、得ら
れる結果が相似形になるようにする。λの値として、各
スケルトンモデルが有するアークの長さの平均値を用い
ることにする。(Equation 3) The first expression means that the length of the arc A ij is L ij . The second expression means that the magnitude of the normal vector is 1. The third equation means that the arc normal vector and the arc are perpendicular. Further, a scale factor λ is used so that the equation is invariant with respect to the similar deformation of the skeleton model. That is, when the shape of the first skeleton model is deformed, and when the shape of the second skeleton model having twice the size of the first skeleton model is deformed by the above-described twice, the obtained results are similar. I do. As the value of λ, an average value of the arc length of each skeleton model is used.
【0097】基本式の解法 インバース・キネマティクスによるスケルトンの動きを
得るには、ユーザーがノードをピックし移動させたと
き、これに伴って変化する他のノードの座標及びアーク
の法線ベクトルの値を求めねばならない。これらの値
は、式(1)の解として得られる。しかし、式(1)は非線形
方程式であり、また式の数が変数の数より少ない。そこ
で、ニュートン法とラグランジュの乗数法を組み合わせ
て解くことにする。Solving the Basic Equations In order to obtain the skeleton movement by inverse kinematics, when the user picks and moves a node, the coordinates of the other nodes and the value of the normal vector of the arc change with the picking and moving of the node. Must be asked. These values are obtained as a solution of equation (1). However, equation (1) is a non-linear equation, 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.
【0098】なお、特に指示する必要のない場合は、変
数の添え字を省略して表記する。When it is not necessary to indicate otherwise, the variable is omitted from the suffix.
【0099】-1 ニュートン法の適用 ループ1回ごとの各変数の変化量を、次のように定義す
る。-1 Application of Newton's Method The amount of change of each variable for each loop is defined as follows.
【数4】 上記の基本式(1)にニュートン法を適用すると、次式が
得られる。(Equation 4) By applying the Newton method to the above basic equation (1), the following equation is obtained.
【数5】 これを整理すると、次式になる。(Equation 5) This can be rearranged into the following equation.
【数6】 式(4)では、式の数が変数の数より少ないため、これだ
けでは解を一意的に定めることは出来ない。そこで次に
述べるように、極小化条件を付加し、ラグランジュの乗
数法を適用して解を求める。(Equation 6) In equation (4), the number of equations is smaller than the number of variables, so that this alone cannot uniquely determine a solution. Therefore, as described below, a solution is obtained by adding a minimization condition and applying the Lagrange multiplier method.
【0100】なお本実施例では、図3(B)にて既に説
明したように、反復ループ毎に基本式等をマウスのカー
ソル位置等に基づいて変化させている。In this embodiment, as already described with reference to FIG. 3B, the basic expression and the like are changed for each repetition loop based on the mouse cursor position and the like.
【0101】-2 ラグランジュの乗数法の適用 評価式U1、U2、U3、・・・・を用意し、これらの総
和を極小化する条件を式(4)に付加し、ラグランジュの
乗数法を用いて、ξ、η、ζ、p、q、rを求める。各
Ukは、後に定義する。未定乗数αij、βij、γijを導
入し、次式のようにUを定義する。-2 Application of Lagrange's Multiplier Method Evaluation expressions U 1 , U 2 , U 3 ,... Are prepared, and a condition for minimizing the sum is added to expression (4). Ξ, η, ζ, p, q, and r are obtained by using the method. Each U k is defined later. The undetermined multipliers α ij , β ij , and γ ij are introduced, and U is defined as in the following equation.
【数7】 式(4)と次式(6)を連立させて、ξ、η、ζ、p、q、r
の解を得る。(Equation 7) Equation (4) and the following equation (6) are combined to obtain ξ, η, ζ, p, q, r
To get the solution.
【数8】 得られた解に基づいて、次式(7)により新しいx、y、
z、u、v、wを求め、ニュートン法の1反復ループ分
の計算が終了する。(Equation 8) Based on the obtained solution, new x, y,
z, u, v, w are obtained, and the calculation for one iteration loop of the Newton method is completed.
【数9】 評価式の作成 前述のように、ラグランジュの乗数法を適用するには、
極小化すべき評価式を用意する必要がある。ここではス
ケルトンモデルが好ましい変形をするような評価式を作
成する。(Equation 9) Creating an evaluation formula As mentioned earlier, to apply Lagrange's multiplier method,
It is necessary to prepare an evaluation formula to be minimized. Here, an evaluation formula is created such that the skeleton model is preferably deformed.
【0102】-1 アーク間角度変化量の2乗和 アーク間角度(関節角度)変化量の2乗和をU1とす
る。U1を極小化することで、各関節がバランス良く曲
がるようになる。また、アーク間角度の各成分毎に異な
る重み付けをすることで、関節の曲がり易さに差をつけ
ることができる。-1 Sum of squares of change in angle between arcs Let U 1 be the sum of squares of change in angle between arcs (joint angle). By minimizing U 1, so that the joints bend good balance. Also, by assigning different weights to each component of the angle between arcs, it is possible to make a difference in the ease of bending of the joint.
【0103】-1-1 アーク間角度と回転マトリクス ワールド座標系からアークAij座標系への回転マトリク
スMijは、次式で表される。ただし、アークAij座標系
は、図15に示すように、アーク法線ベクトルの方向を
x軸、ノードNiからノードNjに向かう方向をy軸と
し、右手系とする。なお、マトリクス要素の並びは、列
ベクトルに対して左からマトリクスを掛ける方式に従
う。-1-1 Inter-Angle Angle and Rotation Matrix The rotation matrix M ij from the world coordinate system to the arc A ij coordinate system is represented by the following equation. However, the arc A ij coordinate system is a right-handed system, as shown in FIG. 15, where the direction of the arc normal vector is the x axis, the direction from the node Ni to the node N j is the y axis. The arrangement of the matrix elements follows a method of multiplying a column vector by a matrix from the left.
【数10】 アークAij座標系からアークAjk座標系への回転マトリ
クスをMijkとする。(Equation 10) A rotation matrix from the arc A ij coordinate system to the arc A jk coordinate system is defined as Mijk .
【数11】 なお特に指示する必要のない場合は、添え字ijkを省
略する。[Equation 11] Note that the subscript ijk is omitted when it is not necessary to specify otherwise.
【0104】Mijkは、次式で表される。M ijk is expressed by the following equation.
【数12】 一方、アークAij座標系からアークAjk座標系への回転
角をθx、θy、θzとし、回転順序をy軸、x軸、z軸
の順とすると、マトリクスMijkは次式のように表すこ
とができる。(Equation 12) On the other hand, if the rotation angles from the arc A ij coordinate system to the arc A jk coordinate system are θ x , θ y , and θ z , and the rotation order is the order of the y-axis, x-axis, and z-axis, the matrix Mijk becomes Can be expressed as
【数13】 従って、式(11), (12), (14)より次式が成り立つ。(Equation 13) Therefore, the following equation holds from equations (11), (12), and (14).
【数14】 -1-2 角度変化量に関する1次式 θx、θy、θzの変化量を下記のように各々φx、φy、
φzと定義する。[Equation 14] -1-2 The linear equations θ x , θ y , and θ z relating to the angle change are expressed as φ x , φ y ,
φ z is defined.
【数15】 ここではφx、φy、φzとξi、ηi、ζi、pij、qij、
rijとの関係を、1次近似式で表すことを試みる。但し
下記のように、amnの変化量をbmnと定義する。(Equation 15) Here, φ x , φ y , φ z and ξ i , η i , ζ i , p ij , q ij ,
An attempt is made to represent the relationship with r ij by a first-order approximation. However, as described below, to define the amount of change in a mn and b mn.
【数16】 式(15)を変形し微分することによりφxを得る。(Equation 16) Obtain phi x by modifying the equation (15) differentiation.
【数17】 同様に、以下のようにしてφy、φzを得る。[Equation 17] Similarly, φ y and φ z are obtained as follows.
【数18】 b02、b10、b11、b12、b22は、式(15)を微分するこ
とで以下のように得られる。(Equation 18) b 02 , b 10 , b 11 , b 12 , and b 22 are obtained as follows by differentiating Expression (15).
【数19】 [Equation 19]
【数20】 (Equation 20)
【数21】 (Equation 21)
【数22】 (Equation 22)
【数23】 以上のようにして、角度変化量φx、φy、φzを、ξ、
η、ζ、p、q、rの1次式で表すことができた。(Equation 23) As described above, the angle change amounts φ x , φ y , φ z are represented by ξ,
It could be expressed by a linear expression of η, 表 す, p, q, and r.
【0105】-1-3 角度変化量の2乗和の偏微分 U1は、アーク間角度変化量の2乗和として、次式で表
される。但し、Wx、Wy、Wzは、関節の曲がり易さを
調整するための重み係数であり、それぞれx軸、y軸、
z軸回転に対応する。-1-3 Partial Differentiation of Sum of Squares of Angle Change Amount U 1 is expressed by the following equation as the sum of squares of angle change between arcs. Here, W x , W y , and W z are weighting factors for adjusting the ease of bending of the joint, and are x-axis, y-axis,
Corresponds to z-axis rotation.
【数24】 式(6)を計算する際に必要になるため、以下にφx 2、φy
2、φz 2の偏微分を求めておく。これらはξ、η、ζ、
p、q、rの1次式となる。但し、ωは変数ξ、η、
ζ、p、q、rを表す。(Equation 24) Since it is necessary when calculating equation (6), φ x 2 and φ y
2. Find the partial derivative of φ z 2 . These are ξ, η, ζ,
It becomes a linear expression of p, q, and r. Where ω is the variables ξ, η,
ζ, p, q, r.
【数25】 -2 ラバーバンドの設定 -2-1 ラバーバンドの必要性 ピックされたノードNiを直接動かすと、スケルトンモ
デルは図16(A)の形状を初期状態として変形するた
め、図16(B)に示すような好ましくない形状にな
る。そこで、ノードNiを、図5(A)〜(E)にて説
明したラバーバンドを介して動かすことにする。ラバー
バンドは、収縮しようとする性質を持った仮想的なアー
クであり、この一端をノードNi(xi、yi、zi)に連
結し、他端(xci、yci、zci)をマウスのカーソルの
動きに合わせて移動させる。これにより、スケルトンモ
デルは、図16(C)の形状を初期状態として変形する
ので、図16(D)に示すように好ましい形状を得るこ
とができる。図16(A)、(B)では、ピックされた
ノードが初期状態で点110にあるとして反復計算が開
始されるのに対して、図16(C)、(D)では初期状
態で点112にあるとして反復計算が開始されるからで
ある。(Equation 25) Moving -2 directly the need picked node N i rubberband settings -2-1 rubber band, because the skeleton model to deform the shape shown in FIG. 16 (A) as an initial state, FIG. 16 (B) The result is an undesirable shape as shown. Therefore, the nodes N i, to be moved through the rubber band explained in FIG. 5 (A) ~ (E) . The rubber band is a virtual arc having a property of contracting, one end of which is connected to a node N i (x i , y i , z i ) and the other end (x ci , y ci , z ci). ) Is moved according to the movement of the mouse cursor. Thus, the skeleton model is deformed with the shape of FIG. 16C as an initial state, so that a preferable shape can be obtained as shown in FIG. 16D. In FIGS. 16A and 16B, iterative calculation is started assuming that the picked node is at the point 110 in the initial state, whereas in FIGS. 16C and 16D, the point 112 is in the initial state. , And the iterative calculation is started.
【0106】-2-2 ラバーバンドの設定 下記のU2を評価式Uに加えることで、ラバーバンドの
収縮性を表現できる。Wrは収縮性の強さを表すための
重み係数、Npickはピックされたノードの個数である。-2-2 Setting of Rubber Band By adding the following U 2 to the evaluation formula U, the contractility of the rubber band can be expressed. W r is a weighting factor for representing the strength of contractility, and N pick is the number of picked nodes.
【数26】 U2を評価式に加えることで、ピックされたノードと、
ラバーバンドの他端(xci、yci、zci)との距離の2
乗和が極小化するようにスケルトンモデルを変形でき
る。また図5(D)、(E)、図6で既に説明したよう
に、或いは式(28)から明らかなように、本実施例では複
数のノードをラバーバンドを介して移動することができ
る。(Equation 26) By adding U 2 to the evaluation formula, the picked node and
2 of the distance from the other end of the rubber band ( xci , yci , zci )
The skeleton model can be transformed so that the sum of squares is minimized. Further, as already described with reference to FIGS. 5 (D), (E) and FIG. 6, or as is clear from the equation (28), in this embodiment, a plurality of nodes can be moved via a rubber band.
【0107】U2iの偏微分は以下のようになる。The partial differentiation of U 2i is as follows.
【数27】 -2-3 ラバーバンド・リミットの設定 マウスを大きくドラッグし、ラバーバンドを引っ張り過
ぎると、ニュートン法の計算が収束せずスケルトンモデ
ルに暴れが生じる場合がある。そこで、ラバーバンドの
長さlrubが所与の値l* rubを超えた場合、Wrに、l*
rub/lrubを掛けてラバーバンドの張力を補正する。ま
た複数のノードがピックされると、全体としてのラバー
バンドの張力が大きくなってしまうので、これを補正す
るために、式(28)はNpickで割ってある。[Equation 27] -2-3 Setting of rubber band limit If the mouse is dragged greatly and the rubber band is pulled too much, the calculation of Newton's method does not converge and the skeleton model may run wild. Therefore, if the length l rub of the rubber band has exceeded a given value l * rub, in W r, l *
Apply rub / l rub to correct the rubber band tension. In addition, when a plurality of nodes are picked, the tension of the rubber band as a whole increases. Therefore, in order to correct this, Expression (28) is divided by N pick .
【0108】-3 固定ノード周りのアークの回転 図17(A)のような場合、アークの軸回りに無数の解
が存在する。そこで、固定ノードNiを端点とするアー
クAijに、回転抵抗を付加する。下記のU3を評価式U
に加えることで、この抵抗を表現できる。振れ回転(swi
ng)に対する重み係数をWs、捻り回転(twist)に対する
重み係数をWtとする。-3 Rotation of Arc around Fixed Node In the case of FIG. 17A, there are countless solutions around the axis of the arc. Accordingly, the arc A ij for a fixed node N i and the end point, adds the rotation resistance. The following U 3 is evaluated by U
, This resistance can be expressed. Swing rotation (swi
The weight coefficient W s for ng), the weighting factor for twisting rotation (twist) and W t.
【数28】 U3を評価式に加えることで、端部に固定ノードを持つ
アークの向きの変化量の2乗和が極小化するようにスケ
ルトンモデルを変形できる。[Equation 28] By adding U 3 to the evaluation formula, the skeleton model can be deformed so that the sum of squares of the change in the direction of the arc having the fixed node at the end is minimized.
【0109】U3ijの偏微分は以下のようになる。The partial differentiation of U 3ij is as follows.
【数29】 -4 ノードイナーシャの設定 スケルトンモデルの形状によっては、暴れが生じる場合
がある。ノードに、イナーシャ(慣性)及び後述するダ
ンパーを付加することで、暴れを低減できる。下記のU
4を評価式Uに加えることで、ノードのイナーシャを表
現できる。(Equation 29) -4 Setting node inertia Rampage may occur depending on the shape of the skeleton model. Rampage can be reduced by adding inertia (inertia) and a damper described later to the node. U below
By adding 4 to the evaluation expression U, the inertia of the node can be expressed.
【数30】 U4iはノードNiのイナーシャに対応する。(ξ"、
η"、ζ")は、前回のイベントサイクルにおけるノード
Niの移動ベクトルである。WIはイナーシャの強さを表
す重み係数である。U4を評価式に加えることで、ノー
ド座標の速度変化量の2乗和が極小化されるようにスケ
ルトンモデルを変形できる。[Equation 30] U 4i corresponds to the inertia of the node N i. (Ξ ",
eta ", zeta") is a movement vector of the node N i in the previous event cycle. W I is a weighting coefficient representing the strength of inertia. By adding U 4 to the evaluation formula can be modified to skeleton model as the sum of squares of speed variation of the node coordinates are minimized.
【0110】U4iの偏微分は以下のようになる。The partial differentiation of U 4i is as follows.
【数31】 -5 ノードダンパーの設定 下記のU5を評価式Uに加えることで、ノードのダンパ
ーを表現できる。(Equation 31) By adding configure U 5 below -5 node damper evaluation formula U, it can be expressed nodes damper.
【数32】 U5iはノードNiのダンパーに対応する。Wdはダンパー
の強さを表す重み係数である。U5を評価式に加えるこ
とで、ノード座標の変化量の2乗和が極小化されるよう
にスケルトンモデルを変形できる。(Equation 32) U 5i corresponds to the damper of the node N i. W d is a weight coefficient representing the strength of the damper. By adding U 5 in the evaluation formula can be modified to skeleton model as the square sum of the node coordinates of the variation is minimized.
【0111】U5iの偏微分は以下のようになる。The partial differentiation of U 5i is as follows.
【数33】 特異状態とその対応方法 -1 特異状態の発生 スケルトンモデルの形状によっては、式(4)の中に従属
な式が含まれる場合がある。これは図17(B)、
(C)に示すような場合であり、式Fijが従属になる。
式Gij、Hijについては従属になることはない。[Equation 33] Singular state and its correspondence method -1 Occurrence of singular state Depending on the shape of the skeleton model, subordinate formula may be included in formula (4). This is shown in FIG.
This is the case as shown in (C), where equation F ij is dependent.
The expressions G ij and H ij do not depend.
【0112】例えば図17(B)の場合、式(4)はアー
ク120、122に関する式Fij(以下、各々、式
F1、F2と呼ぶ)を含む。ここで式F1は、アーク12
0の長さが一定値であることを一次近似的に規定するも
のであり、ノード124がアークに垂直な面126内に
あることを規定する。一方、式F2は、アーク122の
長さが一定値であることを一次近似的に規定するもので
あり、F1と同様に、ノード124が面126内にある
ことを規定する。即ちF1とF2は同じ意味の式になり、
F1、F2は互いに従属な式になる。そして式(4)が従属
な式を含むと、ラグランジュの乗数法を用いて式の数と
変数の数を同じにしても、解を一意に決めることができ
なくなる。同様に図17(C)の場合は、例えばアーク
128、130、132に関する式Fijにより、ノード
136の位置は一意に定まってしまうため、アーク13
4に関する式Fijは従属な式になってしまう。For example, in the case of FIG. 17B, Expression (4) includes Expressions F ij (hereinafter, referred to as Expressions F 1 and F 2 , respectively) regarding the arcs 120 and 122. Here, the equation F 1 is the arc 12
The first-order approximation specifies that the length of 0 is a constant value, and specifies that the node 124 is in a plane 126 perpendicular to the arc. On the other hand, Formula F 2 is for the length of the arc 122 defines a first approximation to the constant value, in the same manner as F 1, node 124 provides that in the plane 126. That is, F 1 and F 2 have the same meaning,
F 1 and F 2 are mutually dependent equations. If Equation (4) includes a dependent equation, the solution cannot be uniquely determined even if the number of equations is equal to the number of variables using the Lagrange multiplier method. Similarly, in the case of FIG. 17C, the position of the node 136 is uniquely determined by the expression F ij relating to the arcs 128, 130, and 132, for example.
The expression F ij regarding 4 becomes a dependent expression.
【0113】このように式(4)に従属な式が含まれる場
合、そのままラグランジュの乗数法を適用しても、解は
一意に定まらない。そこで、以下に述べる特異値分解の
手法を用いて、連立方程式Fijを独立な連立方程式に再
構成する。As described above, when the equation dependent on the equation (4) is included, the solution is not uniquely determined even if the Lagrange multiplier method is applied as it is. Therefore, the simultaneous equations F ij are reconstructed into independent simultaneous equations by using a singular value decomposition technique described below.
【0114】-2特異値分解 特異値分解とは、m×nの行列Aを次式のように分解す
る手法である。Singular Value Decomposition Singular value decomposition is a method of decomposing an m × n matrix A as shown in the following equation.
【数34】 但し、Uはm×nの行列、Vはn×nの行列、Wはn×
nの対角行列であり、U、Vは次式を満たす。(Equation 34) Where U is an m × n matrix, V is an n × n matrix, and W is an n × n matrix.
n is a diagonal matrix, and U and V satisfy the following equation.
【数35】 特異値分解を用いると、以下に説明するように、従属な
連立方程式を、式の個数を減らした独立な連立方程式に
再構成することができる。例えばもとの方程式が次式で
表されていたとする。(Equation 35) By using singular value decomposition, as described below, dependent simultaneous equations can be reconstructed into independent simultaneous equations with a reduced number of equations. For example, assume that the original equation was represented by the following equation.
【数36】 m≧nの場合は、行列Aを式(41)の形に分解し変形する
ことで次式を得ることができる。[Equation 36] When m ≧ n, the following equation can be obtained by decomposing and transforming the matrix A into the form of equation (41).
【数37】 一方、m<nの場合は、行列Atを次式(45)のように特
異値分解する。ここでUはn×mの行列、Vはm×mの
行列、Wはm×mの対角行列であり、U、Vは式(42)を
満たす。(37) On the other hand, in the case of m <n, singular value decomposition as following equation matrix A t (45). Here, U is an n × m matrix, V is an m × m matrix, W is an m × m diagonal matrix, and U and V satisfy Expression (42).
【数38】 これにより式(43)は次式に変形される。(38) As a result, equation (43) is transformed into the following equation.
【数39】 式(44)、(46)において、Wの対角要素が0となる行を取
り除くことで、独立な連立方程式を得ることができる。[Equation 39] In Equations (44) and (46), by removing rows where the diagonal element of W is 0, independent simultaneous equations can be obtained.
【0115】なお連立方程式が従属な式を含むか否か、
即ち連立方程式が縮退又はそれに近い状態になっている
か否かは、上記の対角行列Wの対角成分が、0又は0に
近い値を含んでいるか否かで判断できる。Whether the simultaneous equations include subordinate equations,
That is, whether or not the simultaneous equations are in a degenerate state or a state close to it can be determined based on whether or not the diagonal components of the diagonal matrix W include 0 or a value close to 0.
【0116】アーク間角度可動範囲の設定 -1 基本式の追加 図8(A)、(B)にて説明したように、アーク間角度
の可動範囲に制限を設ける。アーク間角度θx、θy、θ
zの下限、上限を次のように設定する。Setting of movable range of arc angle -1 addition of basic formula As described with reference to FIGS. 8A and 8B, the movable range of the angle between arcs is limited. Arc angles θ x , θ y , θ
Set the lower and upper limits of z as follows.
【数40】 新たな変数tx、ty、tzを導入し、以下に示す式ex、
ey、ezを基本式(1)に追加することで、θx、θy、θz
の可動範囲制限が可能になる。(Equation 40) New variable t x, t y, introducing t z, equation e x below,
By adding e y and ez to the basic equation (1), θ x , θ y , θ z
Can be limited.
【数41】 但し、式(48)の各係数は以下のとおりである。[Equation 41] Here, each coefficient of the equation (48) is as follows.
【数42】 式(48)の意味するところは以下のとおりである。図1
8(A)に示すように、次式(50)は、cosθx、sinθxの
存在範囲を斜線部領域に限定する。そのため、θxは、
θx0≦θx≦θx1の範囲に限定される。(Equation 42) The meaning of equation (48) is as follows. FIG.
As shown in FIG. 8A, the following expression (50) limits the range of existence of cos θ x and sin θ x to the shaded area. Therefore, θ x is
It is limited to the range of θ x0 ≦ θ x ≦ θ x1 .
【数43】 そしてtx 2≧0であるため、式(48)の第1式は式(50)と
同じ効果を持つ。同様に、式(48)の第2式、第3式は、
θy、θzの範囲を限定する効果を持つ。[Equation 43] Since t x 2 ≧ 0, the first expression of Expression (48) has the same effect as Expression (50). Similarly, the second and third expressions of Expression (48) are
This has the effect of limiting the range of θ y and θ z .
【0117】変数tx、ty、tzの変化量を次のように
定義する。[0117] variable t x, t y, the variation of t z is defined as follows.
【数44】 基本式にニュートン法を適用すると式(4)に以下の式が
追加されることになる。[Equation 44] When the Newton method is applied to the basic equation, the following equation is added to the equation (4).
【数45】 式(5)の基本式に対応する部分には、次式が加わる。
Ψx、Ψy、Ψzは新たに導入された未定乗数である。[Equation 45] The following equation is added to the portion corresponding to the basic equation in equation (5).
Ψ x , Ψ y , Ψ z are newly introduced undetermined multipliers.
【数46】 UALの偏微分は次式のようになる。但し、ωiは変数
ξi、ηi、ζiを、Ωiは変数xi、yi、ziを表し、ωi
≡△Ωiである。また、ωijは変数pij、qij、r
ijを、Ωijは変数uij、vij、wijを表し、ωij≡△Ω
ijである。[Equation 46] Partial differentiation of U AL is as follows. Here, ω i represents variables ξ i , η i , ζ i , Ω i represents variables x i , y i , z i , and ω i
≡ △ Ω i . Ω ij is a variable p ij , q ij , r
ij , Ω ij represents variables u ij , v ij , w ij , and ω ij ≡ △ Ω
ij .
【数47】 ex、ey、ezの偏微分は次式のようになる。但し、Ω
は変数x、y、z、u、v、w、tx、ty、tzを表
す。[Equation 47] e x, e y, partial differential of e z is expressed by the following equation. Where Ω
Represents the variable x, y, z, u, v, w, t x, t y, t z.
【数48】 -2 変数値の発散 以上の設定だけでは、アーク間角度の可動範囲制限は全
く機能しない。変数tx、ty、tzの値が大きく変動し
収束しないためである。そこで、tx、ty、tzの変化
量である変数τx、τy、τzにダンパーを作用させて計
算を収束させる。即ち下記のU6を評価式Uに加えるこ
とで、ダンパーを働かせる。[Equation 48] -2 Divergence of variable values With only the above settings, the movable range limitation of the angle between arcs does not function at all. This is because the values of the variables t x , t y , and t z vary greatly and do not converge. Therefore, t x, t y, t z variables tau x is the amount of change, tau y, to converge the calculated by the action of damper tau z. That is, the damper is activated by adding the following U 6 to the evaluation formula U.
【数49】 U6の偏微分は次式のようになる。[Equation 49] The partial derivative of U 6 is as follows:
【数50】 -3 上限、下限への張り付き 以上の設定で、アーク間角度の可動範囲制限を働かせる
と、次のような張り付き現象が起きる。ある関節のアー
ク間角度が大きくなる方向に、スケルトンモデルを変形
させ、可動範囲上限に押し付けた状態をしばらく保った
後、アーク間角度が小さくなる方向に動かすと、アーク
間角度はすぐには変化せず、しばらく上限角度に張り付
いたような挙動を示す。張り付いている時間は、上限に
押し付けていた時間にほぼ比例する。角度制限の下限に
おいても同様である。これは次の理由による。変数
tx、ty、tzは、値が0に近づくにつれて収束が遅く
なる。そのため、逆に一旦0に十分近い値にまで収束し
てしまうと、再び元の値に戻るのにも多くの計算ループ
を必要としてしまう。[Equation 50] -3 Sticking to the upper and lower limits With the above settings, if the movable range of the angle between arcs is activated, the following sticking phenomenon occurs. If the skeleton model is deformed in the direction in which the angle between arcs of a certain joint increases, and is kept pressed against the upper limit of the movable range for a while, and then moved in the direction in which the angle between arcs decreases, the angle between arcs changes immediately. Instead, it behaves like it sticks to the upper limit angle for a while. The sticking time is almost proportional to the time you were pressing on the upper limit. The same applies to the lower limit of the angle limit. This is for the following reason. Variable t x, t y, t z is the convergence becomes slow as the value approaches zero. Therefore, once it converges to a value sufficiently close to 0, many calculation loops are required to return to the original value again.
【0118】そこで、この不具合を回避するため、変数
tx、ty、tzがある程度以上に小さくなった場合、
tx、ty、tzの値に微小量の修正を加え、0に収束し
ないようにする。具体的には、乱数を発生しtx、ty、
tzに加える。Therefore, in order to avoid this problem, if the variables t x , t y , t z become smaller than a certain value,
t x, t y, the small amount of modification of the value of t z is added, so as not to converge to 0. Specifically, random numbers are generated and t x , t y ,
Add to t z.
【0119】-4 複数条件の設定 アーク角度の可動範囲(上限値−下限値)がある程度以
上に小さい場合や大きい場合は、計算が収束せずスケル
トンモデルの暴れを生じる。そして安定して計算が収束
する範囲が所与の範囲に限られる。そこで、可動範囲
が、前記所与の範囲よりも狭い場合や広い場合には以下
に述べる方法を用いる。-4 Setting of Multiple Conditions When the movable range (upper limit value-lower limit value) of the arc angle is smaller or larger than a certain value, the calculation does not converge and the skeleton model becomes unsteady. The range in which the calculation converges stably is limited to a given range. Therefore, when the movable range is narrower or wider than the given range, the following method is used.
【0120】-4-1 可動範囲が狭い場合の対応 図18(B)に示すように、2つの可動範囲制限A、B
を同時に使用する。A、Bそれぞれの可動範囲はa1度
である。-4-1 Correspondence when the movable range is narrow As shown in FIG. 18B, two movable range limits A and B
Use at the same time. The movable range of each of A and B is a 1 degree.
【0121】-4-2 可動範囲が広い場合の対応 図18(C)に示すように2つの可動範囲制限A、Bを
用意し、状態によりA、B、Free(角度制限なし)
を切り替えて使用する。アーク間角度が上限、下限より
a2度の範囲内にある場合はA又はB、それ以外の場合
はFreeとする。A、Bそれぞれの可動範囲はa3度
である。 ノードをポリゴン、エッジにアタッチする手法 図9(A)〜(D)、図10、図11に示すように、特
定のノードを、指定されたポリゴンまたはエッジの上に
アタッチする。基本式(1)に次式を追加することで、ノ
ードNiを平面ax+by+cz+d=0にアタッチで
きる。-4-2 Correspondence when the movable range is wide As shown in FIG. 18C, two movable range limits A and B are prepared, and A, B and Free (no angle limit) depending on the state.
Switch to use. A or B when the arc-to-arc angle is within a 2 degrees from the upper limit and the lower limit, and Free otherwise. A, B respectively of the movable range is a 3 degrees. Method of Attaching Node to Polygon or Edge As shown in FIGS. 9A to 9D, 10 and 11, a specific node is attached on a specified polygon or edge. By adding the following equation to the basic formula (1), can attach the node N i to the plane ax + by + cz + d = 0.
【数51】 また、直線は2平面の交線として表現できるので、平面
の式を2個用意し連立することで、ノードを直線にアタ
ッチすることができる。(Equation 51) In addition, since a straight line can be expressed as an intersection of two planes, nodes can be attached to a straight line by preparing and combining two plane expressions.
【0122】以上の方法で、ノードを任意の無限平面ま
たは無限直線にアタッチすることはできるが、ノードの
移動範囲を、有限の大きさのポリゴン或いは有限長さの
エッジに限定することはできない。また、基本式が増え
ると、ラグランジュの乗数法を適用した際に連立方程式
のサイズが大きくなり、計算速度の点で好ましくない。
そこで、アタッチを実現する方法として、ここで述べた
方法ではなく、次に述べるdrag back法を用いることに
する。With the above method, a node can be attached to an arbitrary infinite plane or an infinite straight line, but the movement range of the node cannot be limited to a polygon having a finite size or an edge having a finite length. When the number of basic equations increases, the size of the simultaneous equations increases when the Lagrange multiplier method is applied, which is not preferable in terms of calculation speed.
Therefore, instead of the method described here, the drag back method described below is used as a method for realizing the attachment.
【0123】Drag back法 ノードをポリゴンまたはエッジ上にアタッチするには、
ここで述べるdrag back法を用いる。この手法では、1
イベントサイクル間に、本来のノード移動の操作(drag
forward)と、アタッチされたノードを引き戻す操作
(drag back)の2回の計算を行う。Drag back method To attach a node on a polygon or an edge,
The drag back method described here is used. In this method, 1
During the event cycle, the original node movement operation (drag
forward) and an operation of dragging back the attached node (drag back).
【0124】ノードNiをポリゴンFにアタッチする場
合の計算は、次のようになる。まず、ノードNiのノー
ドダンパーの特性を、ポリゴンFに垂直な方向の移動に
対してのみ抵抗が大きくなるように設定する。このダン
パーを面垂直ダンパー(facedamper)と呼ぶ。このよう
なダンパーを働かせるのは、ノードがポリゴンから離れ
すぎると誤差の影響でその後の挙動が悪くなるからであ
る。この設定で、通常のノード移動の計算、即ち拘束条
件を無効な状態にした計算を行い、ノードNiとポリゴ
ンFとの距離Ldistを求める。Ldistが所与の値L*以
下の場合は、計算結果どおりに、ノード座標とアーク法
線ベクトルを変化させる。Ldist>L*の場合は、全て
のノード座標、アーク法線ベクトルの変化量に、スケー
ルL*/Ldistを掛けた値を用いる。[0124] Calculation in the case of attaching the node N i to the polygon F is as follows. First, the characteristics of the node damper node N i, set so that only the resistance to the movement in the direction perpendicular to the polygon F increases. This damper is called a face-perpendicular damper. The reason why such a damper works is that if the node is too far away from the polygon, the subsequent behavior will be poor due to the influence of the error. With this setting, calculation of normal node movement, that is, calculation in which the constraint condition is invalidated, is performed, and the distance L dist between the node Ni and the polygon F is obtained. If L dist is equal to or less than a given value L * , the node coordinates and the arc normal vector are changed as calculated. When L dist > L * , a value obtained by multiplying the change amount of all node coordinates and the arc normal vector by the scale L * / L dist is used.
【0125】次に、拘束条件を有効にして、ノードNi
をポリゴンF上に引き戻す操作(drag back)を行う。
この時、ノードとポリゴンFとの位置関係により、3通
りの方法を使い分ける。Next, the constraint condition is validated, and the node N i
(Drag back) is returned to the polygon F.
At this time, three methods are properly used depending on the positional relationship between the node and the polygon F.
【0126】ポリゴンF上にありノードNiに最も近い
点をPとする。ノードNiとポリゴンFとの位置関係に
より、点Pは次のいずれかになる。[0126] and P the point closest to the located nodes N i on the polygon F. Depending on the positional relationship between the node Ni and the polygon F, the point P is one of the following.
【0127】(A)ノードNiからポリゴンFに下ろした垂
線の足 (B)ノードNiからポリゴンFのエッジの1つに下ろした
垂線の足 (C)ポリゴンFの頂点の1つ (C)の場合には、ノードNiをその頂点に向かって引き戻
す。この引き戻し力をpoint magnetと呼ぶ。[0127] (A) one of the vertices of the node N i perpendicular foot drawn down to the polygon F from (B) the node N i from the polygon F edge of one the down was perpendicular foot (C) polygon F (C ), Pull node N i back toward its vertex. This retraction force is called a point magnet.
【0128】(B)の場合には、ノードNiをそのエッジに
近づく方向に引き戻す。この引き戻し力をline magnet
と呼ぶ。[0128] In the case of (B) is pulled back in the direction toward the node N i to the edge. This pullback force is line magnet
Call.
【0129】(A)の場合には、ノードNiをポリゴン平面
に近づく方向に引き戻す。この引き戻し力をface magne
tと呼ぶ。[0129] In the case of (A) is pulled back in the direction toward the node N i to the polygon plane. Face magne
Call it t.
【0130】例えば図9(A)の状態ではface magnet
が働き、図9(B)の状態ではlinemagnetが働く。ノー
ド82に最も近い点が頂点である場合にはpoint magnet
が働く。このようにすることで、ノードの移動範囲を有
限面積のポリゴンに限定でき、ユーザの利便性を向上で
きる。なおノードの無限平面へのアタッチは、ポリゴン
を十分に大きくすることで容易に対応できる。For example, in the state of FIG.
Works, and in the state of FIG. 9B, the linemagnet works. Point magnet if the point closest to node 82 is the vertex
Works. By doing so, the movement range of the node can be limited to a polygon having a finite area, and user convenience can be improved. The attachment of the node to the infinite plane can be easily dealt with by making the polygon sufficiently large.
【0131】図9(B)に示すように、ノードNiをポ
リゴンのエッジにアタッチする場合は、面垂直ダンパー
の代わりに線垂直ダンパー(line damper)を作用させ
る。これは、エッジに垂直な方向の移動に対してのみ働
くダンパーである。またdragback時には、ノードとエッ
ジの位置関係により、 point magnet, line magnetのい
ずれかを使い分ける。これによりノードの移動範囲を有
限長さのエッジに限定できる。As shown in FIG. 9B, when attaching the node Ni to the edge of the polygon, a line vertical damper is used instead of the surface vertical damper. This is a damper that works only for movement in the direction perpendicular to the edge. At the time of dragback, either point magnet or line magnet is used depending on the positional relationship between the node and the edge. Thereby, the movement range of the node can be limited to an edge having a finite length.
【0132】-1 面垂直ダンパー(face damper) ポリゴン平面が次式で表されるとする。-1 Face Vertical Damper It is assumed that a polygon plane is represented by the following equation.
【数52】 ノードNiに対する面垂直ダンパーは、評価式Uに次式
Ufdを加えることで実現できる。Ufdは、ノードNiの
ポリゴン平面垂直方向の移動量の2乗に比例する。従っ
て評価式UにUfdを加えることで、ポリゴン平面に垂直
な方向へのノードNiの移動が抵抗を受けることにな
る。一方、ポリゴン平面に平行な方向へのノードNiの
移動は何ら抵抗を受けない。Wfdはダンパーの強さを表
す重み係数である。(Equation 52) Plane perpendicular damper for node N i can be realized by adding the following equation U fd evaluation formula U. U fd is proportional to the square of polygon planes vertical movement of the node N i. Therefore, by the evaluation formula U Add U fd, the mobile node N i in the direction perpendicular to the polygon plane will experience resistance. On the other hand, the movement of the node N i to a direction parallel to the polygon plane is not subject to any resistance. W fd is a weight coefficient representing the strength of the damper.
【数53】 Ufdの偏微分は、次のようになる。(Equation 53) The partial derivative of U fd is as follows.
【数54】 -2 線垂直ダンパー(line damper) エッジ直線が、点(xp、yp、zp)を通り、その方向
がベクトル(a、b、c)で表されるとする。ただし、(Equation 54) -2 line vertical damper (line damper) It is assumed that an edge straight line passes through a point (x p , y p , z p ) and its direction is represented by a vector (a, b, c). However,
【数55】 とする。ノードNiに対する線垂直ダンパーは、評価式
Uに次式Uldを加えることで実現できる。Wldはダンパ
ーの強さを表す重み係数である。[Equation 55] And Line vertical damper for node N i can be realized by adding the following equation U ld evaluation formula U. W ld is a weight coefficient representing the strength of the damper.
【数56】 上式のdi0、di1はそれぞれ、移動前、移動後のノード
Niとエッジ直線との距離を意味する。従って評価式U
にUldを加えることで、エッジ直線に垂直な方向へのノ
ードNiの移動が抵抗を受けることになる。一方、エッ
ジ直線に平行な方向へのノードNiの移動は何ら抵抗を
受けない。Uldの偏微分は、次のようになる。[Equation 56] D of the above equation i0, d i1 respectively, before the movement, means the distance between the node N i and the edge straight after the movement. Therefore, the evaluation expression U
A By adding U ld, so that the movement of the node N i in the direction perpendicular to the edge straight line resisted. On the other hand, the movement of the node N i to a direction parallel to the edge line is not subject to any resistance. The partial differential of U ld is as follows.
【数57】 -3 Face magnet ポリゴン平面が次式で表されるとする。[Equation 57] -3 Face magnet Suppose the polygon plane is expressed by the following equation.
【数58】 ノードNiに対するface magnetは、評価式Uに次式Ufm
を加えることで実現できる。Wfmはmagnetの強さを表す
重み係数である。[Equation 58] The face magnet for the node N i is calculated by the following expression U fm
Can be realized by adding W fm is a weight coefficient representing the strength of the magnet.
【数59】 上式のdiは、移動後のノードNiとポリゴン平面との距
離を意味する。従って評価式UにUfmを加えることで、
移動後のノードNiとポリゴン平面との距離の2乗が極
小化され、移動後のノードNiがポリゴン平面に引き寄
せられる。Ufmの偏微分は、次のようになる。[Equation 59] D i in the above equation means the distance between the moved node Ni and the polygon plane. Therefore, by adding U fm to the evaluation expression U,
The square of the distance between the node N i and the polygon plane after the movement are minimized, the node N i after movement are attracted to the polygon plane. The partial derivative of U fm is as follows.
【数60】 -4 Line magnet エッジ直線が、点(xp、yp、zp)を通り、その方向
がベクトル(a、b、c)で表されるとする。ただし、[Equation 60] -4 Line magnet Suppose that an edge straight line passes through a point (x p , y p , z p ) and its direction is represented by a vector (a, b, c). However,
【数61】 とする。line magnetは、評価式Uに次式Ulmを加える
ことで表現される。 Wlmはmagnetの強さを表す重み係
数である。[Equation 61] And The line magnet is expressed by adding the following expression U lm to the evaluation expression U. W lm is a weight coefficient representing the strength of the magnet.
【数62】 上式のdiは移動後のノードNiとエッジ直線との距離を
意味する。従って評価式UにUlmを加えることで、移動
後のノードNiとエッジ直線との距離が極小化され、移
動後のノードNiがエッジ直線に引き寄せられる。Ulm
の偏微分は、次のようになる。(Equation 62) D i in the above equation means the distance between the moved node N i and the edge straight line. Therefore, by the evaluation formula U Add U lm, the distance between the node N i and the edge straight after the movement are minimized, the node N i after movement are attracted to the edge line. U lm
Is as follows.
【数63】 -5 Point magnet ノードNiに対し、点(xp、yp、zp)に向かうpoint
magnetを作用させる。point magnetは、ラバーバンドと
同様のものであるが、ラバーバンドのように長く伸びる
ことはないので、リミットは設けない。[Equation 63] -5 Point magnet Point toward the point (x p , y p , z p ) for the node N i
Make magnet work. A point magnet is similar to a rubber band, but does not extend as long as a rubber band, so there is no limit.
【0133】point magnetは、評価式Uに次式Upmを加
えることで実現できる。Wpmはmagnetの強さを表す重み
係数である。[0133] point magnet can be realized by adding the following equation U pm on the evaluation formula U. W pm is a weight coefficient representing the strength of the magnet.
【数64】 Upmの偏微分は以下のようになる。[Equation 64] The partial derivative of U pm is as follows.
【数65】 3.アルゴリズム2 アルゴリズム2では、上記アルゴリズム1と異なり、図
2(A)に示すように、変数u、v、wの変化量を1つ
の変数ρにより1次近似する。また不連続拘束条件を、
図13(B)で説明した手法により取り扱う。[Equation 65] 3. Algorithm 2 Unlike algorithm 1 described above, algorithm 2 uses a single variable ρ to first-order approximate the amount of change in variables u, v, and w, as shown in FIG. The discontinuous constraint condition is
This is handled by the method described with reference to FIG.
【0134】基本式 基本式はアルゴリズム1と同様であり、以下の通りとな
る。Basic Formula The basic formula is the same as in Algorithm 1, and is as follows.
【数66】 基本式の解法 -1 ニュートン法の適用 基本式(75)にニュートン法を適用すると、次の式が得ら
れる。[Equation 66] Solution of basic equation -1 Application of Newton's method By applying Newton's method to basic equation (75), the following equation is obtained.
【数67】 これを整理すると、次式になる。[Equation 67] This can be rearranged into the following equation.
【数68】 式(76)、(77)については、解くべき方程式の未知数を減
らすために、ニュートン法を使わず、以下に述べる1変
数ρによる1次近似を用いる。[Equation 68] For equations (76) and (77), the following first-order approximation using one variable ρ is used without using the Newton method in order to reduce the unknowns of the equations to be solved.
【0135】-2 アーク法線ベクトル変化量の1次近
似 アーク法線ベクトルnijはアークAijに垂直で、大きさ
1であるため、成分uij、vij、wijは、3変数であり
ながら、図2(A)に示すように変化の自由度は1であ
る。そこで、解くべき方程式の未知数を減らすために
1変数による1次近似を行う。-2 First-Order Approximation of Variation of Arc Normal Vector Since the arc normal vector ni j is perpendicular to the arc A ij and has a magnitude of 1, the components u ij , v ij and w ij are represented by three variables. However, the degree of freedom of the change is 1 as shown in FIG. So, to reduce the unknowns of the equations to be solved
Performs first-order approximation using one variable.
【0136】図14に示すように、アークAijの軸方向
単位ベクトルをaijとし、sij≡nij×aijなるベクト
ルを作る。As shown in FIG. 14, the unit vector in the axial direction of the arc A ij is a ij, and a vector s ij ≡n ij × a ij is created.
【数69】 式(76)、(77)を微分して次式を得る。[Equation 69] The following equation is obtained by differentiating equations (76) and (77).
【0137】[0137]
【数70】 △uij、△vij、△wijは、式(82)、(83)の拘束を受け
る。△uij、△vij、△wijを直交座標軸とする3次元
空間を考えると、△uij、△vij、△wijは、式(82)に
より表される平面と、式(83)により表される平面の交線
L上の値のみをとることができる。従って、△uij、△
vij、△wijは次式のように表すことができる。[Equation 70] Δu ij , Δv ij , and Δw ij are restricted by the equations (82) and (83). Considering a three-dimensional space in which Δu ij , △ v ij and △ w ij are orthogonal coordinate axes, △ u ij , △ v ij and △ w ij are represented by a plane expressed by the equation (82) and an equation (83) ) Can be taken only on the intersection line L of the plane represented by Therefore, △ u ij , △
v ij and △ w ij can be represented by the following equations.
【数71】 (k1、k2、k3)は、交線Lの方向を表すベクトルで
あり、式(82)で表される平面の法線ベクトル(uij、v
ij、wij)に垂直且つ式(83)で表される平面の法線ベク
トル(xj−xi、yj−yi、zj−zi)に垂直である。
即ちベクトル(k1、k2、k3)の方向は式(81)のベク
トルsijの方向と一致する。このように式(84)のk1、
k2、k3、l1、l2、l3を、幾何学的にとらえて解く
ことで次式(85)を得る。即ちnij(uij、vij、wij)
の変化量△nij(△uij、△vij、△wij)を、新たに
導入した未知変数ρijの1次式として近似できる。[Equation 71] (K 1 , k 2 , k 3 ) is a vector representing the direction of the intersection line L, and is a normal vector (u ij , v
ij , w ij ) and perpendicular to the normal vector (x j −x i , y j −y i , z j −z i ) of the plane represented by equation (83).
That is, the direction of the vector (k 1 , k 2 , k 3 ) matches the direction of the vector s ij in equation (81). Thus, k 1 in equation (84),
By solving k 2 , k 3 , l 1 , l 2 , and l 3 geometrically, the following equation (85) is obtained. That is, n ij (u ij , v ij , w ij )
変 化 ij (△ u ij , △ v ij , △ w ij ) can be approximated as a linear expression of a newly introduced unknown variable ρ ij .
【0138】[0138]
【数72】 nijが、次のイベントサイクルでとる値をn'ijとす
る。n'ijは本来アークAijに垂直で大きさ1となるべ
きであるが、変化量の2乗のオーダーで誤差を生じてし
まう。そこで、まず次式(86)の第1式で方向を修正し、
第2式で大きさを1に修正したものをn'ijとする。但
し、a'ijは、aijが次のイベントサイクルでとる値で
ある。[Equation 72] n ij is, the value to take in the next event cycle with n 'ij. Although n ′ ij should originally have a size of 1 perpendicular to the arc A ij , an error occurs in the order of the square of the change amount. Therefore, first, the direction is corrected by the first expression of the following expression (86),
The value obtained by correcting the size to 1 in the second equation is defined as n ′ ij . Here, a ′ ij is a value that a ij takes in the next event cycle.
【数73】 -3 ラグランジュの乗数法の適用 式(79)は、式の数が変数の数より少なく、また変数ρを
含まないので、これだけではスケルトンモデルの変形形
状を一意に定めることは出来ない。そこで、ρを含む評
価式の極小化という条件を付加し、ラグランジュの乗数
法を適用して解を求める。評価式としてU1、U2、
U3、・・・・を用意し、これらの総和に対し極小化を
行う。未定乗数αijを導入し、次式のようにUを定義す
る。[Equation 73] -3 Application of Lagrange's multiplier method In equation (79), since the number of equations is smaller than the number of variables and does not include the variable ρ, the deformation shape of the skeleton model cannot be uniquely determined by this alone. Therefore, a condition of minimizing the evaluation expression including ρ is added, and a solution is obtained by applying the Lagrange multiplier method. U 1 , U 2 ,
U 3 ,... Are prepared, and the sum of these is minimized. An undetermined multiplier α ij is introduced, and U is defined as in the following equation.
【数74】 式(79)と次式(88)を連立させて、解ξ、η、ζ、ρを得
る。[Equation 74] Equation (79) and the following equation (88) are made simultaneous to obtain a solution ξ, η, ζ, ρ.
【数75】 得られた解をもとに、次式(89)によりx、y、zの新し
い値x'、y'、z'を求め、前述の式(86)によりn
(u、v、w)の新しい値n'(u'、v'、w')を求め
ることで、イベントサイクル1回分の計算が終了する。[Equation 75] Based on the obtained solution, new values x ′, y ′, z ′ of x, y, z are obtained by the following equation (89), and n is obtained by the above equation (86).
By calculating a new value n ′ (u ′, v ′, w ′) of (u, v, w), the calculation for one event cycle is completed.
【数76】 -4 アーク振れ角に対するリミットの設定 ユーザーがマウスを速く動かすことで、イベントサイク
ル1回のスケルトンモデルの形状変形が大きくなると、
それに伴い計算誤差も大きくなる。本実施例では、図3
(B)に示すように、反復ループ毎に基本式、評価式を
更新する手法を採用しているからである。変形によりア
ークが平行移動した場合には、アークの長さが伸びる誤
差は生じない。誤差が生じるのはアークの向きが変わる
時である。即ち誤差の大きさは、アークの振れ角に依存
し、アーク長さの誤差という形で現れる。そこで、アー
ク振れ角に許容限界値を設定し、計算結果にスケーリン
グを行う。[Equation 76] -4 Setting of limit for arc deflection angle When the user moves the mouse fast, the shape deformation of the skeleton model in one event cycle increases.
Accordingly, the calculation error increases. In this embodiment, FIG.
This is because, as shown in (B), a method of updating the basic expression and the evaluation expression for each iteration loop is employed. When the arc is translated by the deformation, there is no error in extending the length of the arc. An error occurs when the direction of the arc changes. That is, the magnitude of the error depends on the deflection angle of the arc, and appears as an error in the arc length. Therefore, an allowable limit value is set for the arc deflection angle, and scaling is performed on the calculation result.
【0139】アークAijの振れ角Φijは、次式で表され
る。The swing angle Φ ij of the arc A ij is represented by the following equation.
【数77】 Φijの最大値max(Φij)が、許容限界値Φ*を超え
た場合には、次式によりスケーリング係数μ1を求め、
すべてのξ、η、ζ、ρの値にμ1を掛けて使用する。[Equation 77] The maximum value of Φ ij max (Φ ij) is, if it exceeds the allowable limit value [Phi * determines a scaling factor mu 1 by the following equation,
All values of μ, η, ζ, ρ are multiplied by μ 1 and used.
【数78】 これにより、アークの最大振れ角を、Φ*以下に抑える
ことができる。なお、実用上は式(90)を次式(93)で代用
できる。なおアーク振れ角に対するリミットの設定は、
アルゴリズム1においても行っている。[Equation 78] Thereby, the maximum deflection angle of the arc can be suppressed to Φ * or less. In practice, equation (90) can be substituted with equation (93). The limit setting for the arc deflection angle is
Algorithm 1 is also used.
【数79】 評価式の作成 -1 アーク間角度変化量の2乗和 アルゴリズム1と同様に、アーク間角度の変化量の2乗
和をU1とすると、U1を極小化することで各関節をバラ
ンス良く曲げることができる。[Expression 79] Similar to the sum of squares algorithm first evaluation formula created -1 arc between angle variation, when the square sum of the arc between the angular variation to U 1, good balance each joint by minimizing U 1 Can be bent.
【0140】-1-1 アーク間の角度と回転マトリクス アルゴリズム1に示した式(8)〜(14)より、次式(94)が
成り立つ。-1-1 Angle between arcs and rotation matrix From equations (8) to (14) shown in Algorithm 1, the following equation (94) holds.
【数80】 -1-2 角度変化量に関する1次式 角度変化量φx、φy、φzには、アルゴリズム1と同様
に式(18)、(19)、(20)の関係が成り立つ。また式(94)を
微分等することで次式(95)〜(99)が得られる。[Equation 80] -1-2 Linear Expression Regarding the Angle Change Amount The relationship of Expressions (18), (19), and (20) holds for the angle change amounts φ x , φ y , and φ z as in Algorithm 1. The following equations (95) to (99) are obtained by differentiating equation (94).
【0141】[0141]
【数81】 [Equation 81]
【数82】 (Equation 82)
【数83】 [Equation 83]
【数84】 [Equation 84]
【数85】 以上から明らかなように、角度変化量φx、φy、φ
zを、11個の変数ξi、ξj、ξk、ηi、ηj、ηk、
ζi、ζj、ζk、ρij、ρjkの1次結合で表すことがで
きる。[Equation 85] As is clear from the above, the angle change amounts φ x , φ y , φ
Let z be the eleven variables ξ i , j , k , η i , η j , η k ,
It can be represented by a linear combination of ζ i , ζ j , ζ k , ρ ij , and ρ jk .
【0142】-1-3 角度変化量の2乗和の偏微分 角度変化量の2乗和U1及びφx 2、φy 2、φz 2の偏微分
はアルゴリズム1の式(26)、(27)と同様である。但しこ
の場合、式(27)のωは、ξ、η、ζに加えてρも表す。-1-3 Partial Differentiation of Sum of Squares of Angle Change A partial sum of squares of angle change U 1 and partial derivatives of φ x 2 , φ y 2 , φ z 2 can be obtained by Equation (26) of Algorithm 1, Same as (27). However, in this case, ω in equation (27) represents ρ in addition to ξ, η, and ζ.
【0143】-2 ラバーバンドの設定 ラバーバンドの設定は、アルゴリズム1と同様であるた
め説明を省略する。-2 Setting of rubber band Setting of the rubber band is the same as that of the algorithm 1, and therefore the description is omitted.
【0144】-3 固定ノード周りのアークの回転 固定ノード周りのアークの回転に抵抗を付加するため、
下記のU3を評価式に加える。-3 Rotation of arc around fixed node In order to add resistance to the rotation of the arc around the fixed node,
Add U 3 below the formulas.
【数86】 アルゴリズム1の式(32)と異なり、式(101)では、捻り
回転(twist)の部分が変数ρijにより表される。また式
(90)を式(93)に近似したのと同様の考えで、振れ回転(s
wing)の部分を近似している。U3ijの偏微分は以下のよ
うになる。[Equation 86] Unlike Equation (32) of Algorithm 1, in Equation (101), the portion of twist rotation (twist) is represented by a variable ρ ij . Also the formula
Based on the same idea as approximating (90) to equation (93), run-out rotation (s
wing). The partial derivative of U 3ij is as follows.
【数87】 -4 ノードイナーシャ、ノードダンパーの設定 ノードイナーシャ、ノードダンパーの設定はアルゴリズ
ム1と同様であるため説明を省略する。[Equation 87] -4 Setting of node inertia and node damper The setting of the node inertia and node damper is the same as that of the algorithm 1, and the description is omitted.
【0145】特異状態とその対応方法 特異状態とその対応方法もアルゴリズム1と同様である
ため説明を省略する。 アーク間角度の可動範囲の設定 -1 角度スプリングによる可動範囲制限 アーク間角度に可動範囲を設定し、この範囲内でのみ動
くようにする。一般に、このような不連続拘束条件下で
の変形問題を解く場合、図13(A)に示すように拘束
条件を決定するために繰り返し計算が必要となる。計算
量を極力減らすために、次のような方法を用いる。な
お、以下の説明では、可動範囲の上限についてのみ述べ
るが、下限についても方法は同様である。Singular States and Their Corresponding Methods The singular states and their corresponding methods are the same as in Algorithm 1 and will not be described. Setting the movable range of the angle between arcs -1 Limiting the movable range by the angle spring Set the movable range of the angle between the arcs, and move only within this range. Generally, when solving a deformation problem under such a discontinuous constraint condition, iterative calculation is required to determine the constraint condition as shown in FIG. The following method is used to minimize the amount of calculation. In the following description, only the upper limit of the movable range will be described, but the same applies to the lower limit.
【0146】アーク間角度の値θが可動範囲上限θ*を
超えた場合は、θをθ*に近づけるような強いスプリン
グを働かせる。完全な拘束ではなくスプリング拘束なの
で、厳密にθ=θ*とはならないが、スプリングの強さ
を十分大きな値に設定することで、実用上θをθ*に固
定するのと同等の効果が得られる。When the value θ of the angle between arcs exceeds the upper limit of the movable range θ * , a strong spring is applied so as to make θ close to θ * . Since it is not a complete constraint but a spring constraint, θ = θ * is not strictly set, but by setting the spring strength to a sufficiently large value, an effect equivalent to fixing θ to θ * practically can be obtained. Can be
【0147】θの値に応じて、θ≧θ*でスプリング有
効、θ<θ*でスプリング無効に条件設定し、計算を行
う。スプリングの状態と、計算結果との組み合わせは4
通りになるが、それぞれの場合において、図13(B)
と同様に、次のように処理を行う。 (A)スプリング無効状態で計算し結果が可動範囲内:結
果をそのまま使用 (B)スプリング無効状態で計算し結果が可動範囲外:結
果をスケーリングし使用 (C)スプリング有効状態で計算し結果が可動範囲内:ス
プリング無効にし再計算 (D)スプリング有効状態で計算し結果が可動範囲外:結
果をそのまま使用 上記(B)の場合、スケーリングは以下の方法で行う。計
算の結果得られた、θの変化量φに対して、図19及び
次式に示すようなオーバーシュート量Ψを定義する。According to the value of θ, the condition is set such that the spring is valid when θ ≧ θ * and the spring is invalid when θ <θ * , and the calculation is performed. The combination of the state of the spring and the calculation result is 4
FIG. 13B in each case.
The processing is performed as follows. (A) Calculate with the spring disabled and the result is within the movable range: Use the result as is. (B) Calculate with the spring disabled and the result is out of the movable range: Scale and use the result. (C) Calculate with the spring enabled and calculate the result. Within the movable range: re-calculate with the spring disabled. (D) Calculate with the spring valid and the result is outside the movable range: use the result as it is. In the case of (B) above, scaling is performed by the following method. An overshoot amount よ う な as shown in FIG. 19 and the following equation is defined for the change amount φ of θ obtained as a result of the calculation.
【数88】 オーバーシュートの許容限界値Ψ*を、図19に示すよ
うに前もって設定しておき、次式によりスケーリング係
数μ2を求める。このようにオーバーシュートをある程
度許容することにより、スケーリングの効きすぎによる
スケルトンモデルの変形速度の低下を防止できる。[Equation 88] The allowable limit value of the overshoot [psi *, may be set in advance as shown in FIG. 19, it obtains a scaling factor mu 2 by the following equation. By allowing the overshoot to some extent in this way, it is possible to prevent a reduction in the deformation speed of the skeleton model due to excessive scaling.
【数89】 すべてのξ、η、ζ、ρの値に上記μ2を掛けて使用す
る。これにより、オーバーシュート量をΨ*以下に抑え
ることができる。スケルトンモデルの複数箇所でオーバ
ーシュートが起きた場合には、各箇所のμ2の値のうち
最小のものをμ2の値として用いる。また、オーバーシ
ュート発生後のスケルトンモデルの暴れを抑えるには、
角度ダンパーを作用させるのが効果的である。[Equation 89] All ξ, η, ζ, use over the mu 2 to the value of [rho. As a result, the amount of overshoot can be suppressed to Ψ * or less. When the overshoot occurs at a plurality of positions of the skeleton model is used as the smallest mu 2 values ones of the mu 2 values of each location. Also, to suppress the skeleton model from rampaging after overshoot occurs,
It is effective to operate the angle damper.
【0148】以上の方法により、上記(C)以外の場合
は、再計算が不要になる。また上記(C)の場合でも、再
計算をせずに結果をそのまま使用しても良好な挙動が得
られることがある。By the above method, in cases other than the above (C), recalculation becomes unnecessary. Also in the case of the above (C), good behavior may be obtained even if the result is used as it is without recalculation.
【0149】-2 角度制限の評価式 評価式Uに次式U6を加えることで、角度制限が有効に
なる。ただし、θ* x、θ* y、θ* zは、各々、θx、θy、
θzの上限値または下限値を表す。[0149] By adding the following equation U 6 to evaluate expression evaluation formula U -2 angle limiting, the angle limiting is enabled. Where θ * x , θ * y , θ * z are θ x , θ y ,
Indicates the upper limit or lower limit of θ z .
【数90】 Was、Wadは、それぞれスプリング、ダンパーの強さを
表す重み係数である。Uax、Uay、Uazの偏微分は次の
ようになる。但し、ωは変数ξ、η、ζ、ρを表す。[Equation 90] W as and W ad are weight coefficients representing the strength of the spring and the damper, respectively. The partial derivatives of U ax , U ay , and U az are as follows. Here, ω represents variables ξ, η, ζ, and ρ.
【数91】 ポリゴン、エッジに対するノードのアタッチ 図9(A)、(B)〜図11に示すように、ノードをポ
リゴンまたはエッジ上にアタッチするには、そのノード
をアタッチ対象に引き寄せるような評価式を用意し、こ
れをUに加える。ノードは、厳密にはアタッチ対象上に
拘束されないが、引き寄せの強さを十分大きな値に設定
することで、実用上十分なアタッチ効果が得られる。[Equation 91] Attachment of Nodes to Polygons and Edges As shown in FIGS. 9A and 9B to 11, in order to attach a node to a polygon or an edge, an evaluation formula for attracting the node to an attachment target is prepared. Add this to U. Although the node is not strictly restricted on the object to be attached, a practically sufficient attachment effect can be obtained by setting the pulling strength to a sufficiently large value.
【0150】ノードをポリゴンにアタッチする場合、両
者の位置関係により、次の3通りの方法を使い分ける。
即ちアルゴリズム1で説明したpoint magnet、line mag
net、face magnetを使い分ける。When a node is attached to a polygon, the following three methods are selectively used depending on the positional relationship between the two.
That is, the point magnet, line mag described in Algorithm 1
Use net and face magnet properly.
【0151】ノードの移動に伴い引き寄せ条件が変化す
る際に、アーク間角度の可動範囲制限の場合と同様にオ
ーバーシュートを起こすことがある。このような場合、
ノードNiがポリゴン から離れ過ぎないよう、計算結果
に対しスケーリングを行う。When the attracting condition changes with the movement of the node, an overshoot may occur as in the case where the movable range of the angle between arcs is limited. In such a case,
The calculation result is scaled so that the node Ni is not too far from the polygon.
【0152】なお、point magnet、line magnet、face
magnetについてはアルゴリズム1において既に詳述した
ため、ここでは説明を省略する。Note that point magnet, line magnet, face
Since the magnet has already been described in detail in the algorithm 1, the description is omitted here.
【0153】ポリゴンオブジェクトとの干渉機能 -1 干渉機能 図12に示すように、スケルトンモデルがポリゴンオブ
ジェクトに衝突した場合に、ポリゴンオブジェクトにス
ケルトンモデルが侵入したり通り抜けたりせず、自然な
挙動をするような機能を追加する。このような機能を、
干渉機能と呼ぶことにする。Interference Function with Polygon Object-1 Interference Function As shown in FIG. 12, when the skeleton model collides with the polygon object, the skeleton model does not intrude or pass through the polygon object and behaves naturally. Add such functions. Such a function,
Let's call it interference function.
【0154】干渉機能として次の3種類が考えられる。The following three types of interference functions can be considered.
【0155】(a)ノードとポリゴンオブジェクトとの干
渉。(A) Interference between nodes and polygon objects.
【0156】(b)アークとポリゴンオブジェクトとの干
渉 (c)スケルトンモデルに付随して動くポリゴンオブジェ
クトと、他のポリゴンオブジェクトとの干渉。(B) Interference between an arc and a polygon object (c) Interference between a polygon object moving accompanying a skeleton model and another polygon object.
【0157】ここでは、上記(a)のノード対ポリゴンオ
ブジェクトの干渉機能について説明する。Here, the node-to-polygon object interference function (a) will be described.
【0158】-2 衝突検出 干渉機能を実現するには、まずスケルトンモデルとポリ
ゴンオブジェクトとの衝突を検出する必要がある。衝突
検出には、次の2つの方法が考えられる。-2 Collision Detection In order to realize the interference function, it is necessary to first detect a collision between the skeleton model and the polygon object. The following two methods can be considered for collision detection.
【0159】(a-1)ノードの位置による検出。ノードが
ポリゴンオブジェクトの内側に在る場合に、衝突と判定
する。(A-1) Detection by Node Position If the node is inside the polygon object, it is determined that the collision occurs.
【0160】(a-2)ノードの軌跡による検出。ノードの
軌跡がポリゴンオブジェクトと交差した場合に、衝突と
判定する。(A-2) Detection based on the locus of the node. If the locus of the node intersects the polygon object, it is determined that the collision occurs.
【0161】図20(A)に示すようにポリゴンオブジ
ェクト140に対してノード142が移動した場合、上
記(a-1)では衝突を検出できない。そこで、上記(a-2)の
方法を採用し、ノード142の軌跡144とポリゴンオ
ブジェクト140との交差判定により、衝突を検出す
る。また、この方法によれば、閉じていないオブジェク
トも扱えるうえ、ポリゴンの裏表にかかわらず衝突検出
が可能である。When the node 142 moves with respect to the polygon object 140 as shown in FIG. 20A, a collision cannot be detected in the above (a-1). Then, the collision is detected by determining the intersection of the trajectory 144 of the node 142 and the polygon object 140 by employing the method (a-2). In addition, according to this method, an object that is not closed can be handled, and collision can be detected regardless of the front and back of the polygon.
【0162】-3 拘束条件の設定 干渉機能を働かせるには、ノードがポリゴンに押し付け
られるときは、ポリゴン平面上に拘束し、逆にポリゴン
から離れようとするときは、拘束を解除する必要があ
る。ポリゴン平面への拘束は、アルゴリズム1で既に説
明したface magnetを用いる。また、拘束条件の切り替
えには、アーク間角度の可動範囲制限と同様の手法、即
ち図13(B)で説明した手法を用いる。つまり下記の
ようにfacemagnetのON/OFFを切り替える。 (A)face magnet OFFで計算し結果が衝突なし:結果をそ
のまま使用 (B)face magnet OFFで計算し結果が衝突発生:結果をス
ケーリングして使用 (C)face magnet ONで計算し結果が非衝突状態:face ma
gnetをOFFにして再計算 (D)face magnet ONで計算し結果が衝突状態 :結果を
そのまま使用 ポリゴンの裏表両面のうち、衝突発生の直前にノードが
位置した側の面を衝突面とし、ノードがポリゴンの衝突
面と逆側に位置する状態を衝突状態とする。-3 Setting of Constraint Conditions In order to operate the interference function, it is necessary to restrain the node on the polygon plane when the node is pressed against the polygon, and to release the constraint when the node is going to leave the polygon. . For the constraint on the polygon plane, the face magnet already described in Algorithm 1 is used. Further, the switching of the constraint condition uses the same method as that for limiting the movable range of the arc-to-arc angle, that is, the method described with reference to FIG. In other words, facemagnet is switched on / off as follows. (A) Calculate with face magnet OFF and result is no collision: Use result as it is (B) Calculate with face magnet OFF and result collision occurs: Scale and use result (C) Calculate with face magnet ON and result is non- Collision state: face ma
Turn off gnet and recalculate (D) face magnet ON and the result is a collision state: Use the result as it is The surface on the side where the node was located immediately before the collision out of both sides of the polygon is the collision surface, and the node is the collision surface Is located on the opposite side of the collision surface of the polygon as a collision state.
【0163】-4 多重衝突の扱い 前述のように、拘束条件としてface magnetを用いてい
るため、ノードは、わずかではあるが、ポリゴンを突き
抜ける。この突き抜けを見ることで、face magnetのON/
OFFを切り替えている。しかしながら、図20(B)に
示すように、ノード150がポリゴン152を突き抜け
たままでは、ノード150が矢印156の方向に移動し
たときに不具合が生じる。即ち、本来ならばノード15
0が、2枚のポリゴン152、154に衝突すべきなの
に、ポリゴン154との衝突を検出できない。-4 Handling of Multiple Collision As described above, since the face magnet is used as the constraint condition, the node penetrates through the polygon, albeit slightly. By seeing this penetration, ON / OFF of the face magnet
Switching OFF. However, as shown in FIG. 20B, if the node 150 passes through the polygon 152, a problem occurs when the node 150 moves in the direction of the arrow 156. That is, node 15 should be
Although 0 should collide with the two polygons 152 and 154, a collision with the polygon 154 cannot be detected.
【0164】そこで、図20(C)に示すように、ポリ
ゴン(境界)152を、衝突面側に微小量dだけオフセ
ットした仮想面(仮想境界)158を作る。そしてノー
ド150が衝突状態にあった場合は、ノード150をこ
の仮想面158に垂直投影し、新たなノード160の位
置とする。また、face magnet及び衝突検出にも、ポリ
ゴン152の面ではなく、この仮想面158を用いるこ
とにする。この方法によりノードの多重衝突に対応でき
る。Therefore, as shown in FIG. 20C, a virtual surface (virtual boundary) 158 is created by offsetting the polygon (boundary) 152 by a small amount d toward the collision surface. If the node 150 is in a collision state, the node 150 is perpendicularly projected onto the virtual plane 158, and is set as a new node 160 position. The virtual surface 158 is used for the face magnet and the collision detection instead of the surface of the polygon 152. This method can cope with multiple collisions of nodes.
【0165】4.画像合成装置、情報記憶媒体 図21(A)、(B)、(C)に、本実施例のスケルト
ンモデル形状変形方法を利用した画像合成装置、情報記
憶媒体の種々の実施形態を示す。[0165] 4. Image Synthesizing Apparatus and Information Storage Medium FIGS. 21A, 21B and 21C show various embodiments of an image synthesizing apparatus and an information storage medium using the skeleton model shape deformation method of this embodiment.
【0166】図21(A)は、画像合成装置の1つであ
る形状データ作成ツールに本実施例を適用した例であ
る。スケルトンモデルの初期形状データの入力、固定ノ
ード或いは固定アークの指定、アーク間角度の可動範囲
の指定、ポリゴン或いはエッジへのノードのアタッチの
指定、ノードのピック及び移動の指示等は、例えばキー
ボード200、ポインティングデバイスであるマウス2
02を用いて行われる。処理部210は、本実施例の形
状変形方法によりスケルトンモデルの形状変形を行い形
状データを生成する形状データ生成部212と、この形
状データ生成部212で生成された形状データに基づい
てスケルトンモデルの画像を合成する画像合成部214
とを含む。処理部210は、ハードウェア的には、CP
U、DSP、メモリ、必要であれば画像合成専用IC等
により構成される。FD、CDROM、DVD、ICカ
ード、メモリ等で構成される情報記憶媒体216には、
本実施例の形状変形方法を実現する形状データ作成プロ
グラム、このプログラムの実行のために必要なデータ等
の種々の情報が格納されている。処理部210は、キー
ボード200、マウス202からの入力情報、情報記憶
媒体216に格納される情報に基づいて処理を行い、こ
れにより表示部218上にスケルトンモデル画像219
等が表示される。この形状データ作成ツールによれば、
表示されるスケルトンモデル画像219の形状を確認し
ながら、形状データの作成を行うことができ、設計作業
の効率化を図れる。FIG. 21A shows an example in which this embodiment is applied to a shape data creation tool which is one of image synthesizing apparatuses. The input of the initial shape data of the skeleton model, the designation of a fixed node or a fixed arc, the designation of the movable range of the angle between arcs, the designation of the attachment of a node to a polygon or an edge, the instruction of picking and moving a node, etc. , Mouse 2 as a pointing device
02. The processing unit 210 includes a shape data generation unit 212 that deforms the shape of the skeleton model by the shape deformation method of the present embodiment to generate shape data, and a skeleton model based on the shape data generated by the shape data generation unit 212. Image combining unit 214 for combining images
And The processing unit 210 has a hardware
U, DSP, memory, and if necessary, an image synthesis IC, etc. An information storage medium 216 including an FD, a CDROM, a DVD, an IC card, a memory, and the like includes:
Various information such as a shape data creation program for realizing the shape deformation method of the present embodiment and data necessary for executing the program are stored. The processing unit 210 performs processing based on input information from the keyboard 200 and the mouse 202 and information stored in the information storage medium 216, and thereby a skeleton model image 219 is displayed on the display unit 218.
Are displayed. According to this shape data creation tool,
The shape data can be created while confirming the shape of the displayed skeleton model image 219, and the design work can be made more efficient.
【0167】図21(B)は、画像合成装置の1つであ
るゲーム装置に本実施例を適用した例である。ゲームコ
ントローラ220、222は、プレーヤが操作情報を入
力するためのものである。処理部230は、プレーヤか
らの操作情報に基づいてゲーム画像を合成するための演
算等を行うゲーム演算部232と、このゲーム演算部2
32からの演算結果に基づいて画像合成を行う画像合成
部234とを含み、ハードウェア的には、CPU、DS
P、メモリ、必要であれば画像合成専用のIC等により
構成される。情報記憶媒体236には、本実施例の形状
変形方法により作成された形状データ或いはこの形状デ
ータに基づき生成された種々の情報、及びゲームプログ
ラム等が格納されている。表示部238上には、上記形
状データ等に基づいて動作するゲームキャラクタの画像
239、240等が表示される。ゲーム装置が業務用の
ものであれば、形状データ、ゲームプログラムはROM
等から成る情報記憶媒体に格納され、ゲーム装置が家庭
用のものであれば、形状データ、ゲームプログラムはC
D−ROM、ゲームカセット等から成る情報記憶媒体に
格納される。また複数の端末をホスト装置を介して通信
回線で接続し、ゲームプログラム等を配給するタイプの
ゲーム装置においては、形状データ、ゲームプログラム
はホスト装置の情報記憶媒体、例えば磁気ディスク装
置、メモリ等に格納される。FIG. 21B shows an example in which this embodiment is applied to a game device which is one of the image synthesizing devices. The game controllers 220 and 222 are for the player to input operation information. The processing unit 230 includes a game calculation unit 232 that performs calculation for synthesizing a game image based on operation information from the player, and a game calculation unit 2.
And an image synthesizing unit 234 for synthesizing an image based on the calculation result from the CPU 32.
P, a memory, and if necessary, an IC dedicated to image synthesis. The information storage medium 236 stores shape data created by the shape deformation method according to the present embodiment, various information generated based on the shape data, a game program, and the like. On the display unit 238, images 239 and 240 of the game character operating 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 ROM
If the game device is for home use, the shape data and the game program are stored in C
It is stored in an information storage medium such as a D-ROM and a game cassette. In a game device of a type in which a plurality of terminals are connected by 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, for example, a magnetic disk device, a memory, or the like. Is stored.
【0168】一方、図21(C)は、ゲーム演算部24
2が形状データ生成部243を含む場合のゲーム装置の
例である。この場合、情報記憶媒体246には、形状デ
ータの代わりに、本実施例の形状変形方法を実現する形
状データ生成プログラムが格納され、形状データの生成
はゲーム装置に内蔵される形状データ生成部243がリ
アルタイムに行う。例えばゲームコントローラ220、
222等によりプレーヤが、スケルトンモデルに所望の
動作を行わせる。これによりスケルトンモデルに付随し
て動くオブジェクトの画像239、240が表示部23
8に表示されることになる。On the other hand, FIG.
2 is an example of a game device including a shape data generation unit 243. In this case, instead of the shape data, the information storage medium 246 stores a shape data generation program for realizing the shape deformation method of the present embodiment, and the shape data is generated by the shape data generation unit 243 incorporated in the game device. Do in real time. For example, the game controller 220,
The player causes the skeleton model to perform a desired operation by 222 or the like. As a result, the images 239 and 240 of the moving object accompanying the skeleton model are displayed on the display unit 23.
8 will be displayed.
【0169】なお本発明は上記実施例で説明したものに
限らず、種々の変形実施が可能である。The present invention is not limited to the embodiments described above, and various modifications can be made.
【0170】例えば、スケルトンモデルを、ノード座
標、アーク法線ベクトルの成分を含む基本変数により表
し、アーク間のなす角度の変化量等を含む式を極小化す
る発明は、ニュートン法、ラグランジュの乗数法以外に
も、例えばニュートン法やラグランジュの乗数法を改良
した手法等、種々の数学的手法を用いて実現でき、種々
の変形実施が可能である。特に本実施例のように、解く
べき式を未知数である変数の1次式で表した場合には、
線形代数の手法により解を求めることもできる。For example, the invention in which a skeleton model is represented by basic variables including components of node coordinates and arc normal vectors, and an expression including a change amount of an angle between arcs is minimized includes the Newton method, the Lagrange multiplier, and the like. In addition to the method, for example, it can be realized using various mathematical methods such as a method obtained by improving the Newton method or the Lagrange multiplier method, and various modifications can be made. In particular, when the equation to be solved is represented by a linear equation of an unknown variable as in the present embodiment,
The solution can also be obtained by the method of linear algebra.
【0171】同様に、ノードの座標等の基本変数を含む
式の解を反復計算により求めると共に前記式を反復ルー
プの終了又は開始に同期させて所与の情報に基づいて次
々に変化させる発明や、スケルトンモデルを境界にスプ
リング拘束し、1の反復ループで拘束条件が有効・無効
のいずれで行われたか及びスケルトンモデル等が境界を
越えているか否かに基づいて次の反復ループの拘束条件
の有効・無効を決める発明についても、ニュートン法と
ラグランジュの乗数法の組み合わせ以外の種々の数学的
手法を用いて実現でき、種々の変形実施が可能である。Similarly, it is possible to obtain the solution of an expression including basic variables such as the coordinates of nodes by iterative calculation and to change the expression one after another based on given information in synchronization with the end or start of the iterative loop. , The skeleton model is spring-bound to the boundary, and the constraint conditions for the next iteration loop are determined based on whether the constraint conditions were enabled or disabled in one iteration loop and whether the skeleton model, etc., exceeded the boundary. The invention that determines validity / invalidity can be realized using various mathematical methods other than the combination of the Newton method and the Lagrange multiplier method, and various modifications can be made.
【0172】[0172]
【図1】図1(A)〜(D)は、本実施例の原理を説明
するための図である。FIGS. 1A to 1D are diagrams for explaining the principle of the present embodiment.
【図2】図2(A)は、アーク法線ベクトルの変化量を
1変数で表す手法について説明するための図であり、図
2(B)は、評価式の種々の例を示す図である。FIG. 2A is a diagram for explaining a method of expressing a change amount of an arc normal vector by one variable, and FIG. 2B is a diagram showing various examples of an evaluation expression; is there.
【図3】図3(A)はニュートン法について説明するた
めの図であり、図3(B)は、反復ループ毎に基本式等
を変化させる手法について説明するための図である。FIG. 3A is a diagram for explaining the Newton method, and FIG. 3B is a diagram for explaining a method of changing a basic expression or the like for each iteration loop.
【図4】ノードをピックしてスケルトンモデルを形状変
形させた例について示す図である。FIG. 4 is a diagram illustrating an example in which a skeleton model is deformed by picking a node;
【図5】図5(A)〜(E)は、ラバーバンドについて
説明するための図である。FIGS. 5A to 5E are views for explaining a rubber band; FIG.
【図6】2つのノードをピックしてスケルトンモデルを
形状変形させた例について示す図である。FIG. 6 is a diagram illustrating an example in which two nodes are picked and the skeleton model is deformed in shape.
【図7】複雑な多分岐構造を有するスケルトンモデルを
形状変形させた例について示す図である。FIG. 7 is a diagram illustrating an example in which a skeleton model having a complicated multi-branch structure is deformed in shape.
【図8】図8(A)、(B)は、アーク間角度の可動範
囲の設定について説明するための図である。FIGS. 8A and 8B are diagrams for explaining setting of a movable range of an angle between arcs.
【図9】図9(A)、(B)は、ノードのポリゴン、エ
ッジへのアタッチ機能について説明するための図であ
る。FIGS. 9A and 9B are diagrams for explaining a function of attaching nodes to polygons and edges.
【図10】アタッチ機能を用いてスケルトンモデルに壁
登りを行わせる例について説明するための図である。FIG. 10 is a diagram for describing an example in which a skeleton model climbs a wall using an attach function.
【図11】アタッチ機能を用いてスケルトンモデルに壁
登りを行わせる例について説明するための図である。FIG. 11 is a diagram for explaining an example in which a skeleton model climbs a wall using an attach function.
【図12】スケルトンモデルとオブジェクトとの干渉機
能について説明するための図である。FIG. 12 is a diagram for explaining an interference function between a skeleton model and an object.
【図13】図13(A)、(B)は、拘束条件の取り扱
い手法について説明するための図である。FIGS. 13A and 13B are diagrams for explaining a method of handling a constraint condition.
【図14】アーク、ノード、アーク法線ベクトル等の関
係について説明するための図である。FIG. 14 is a diagram for explaining the relationship among arcs, nodes, arc normal vectors, and the like.
【図15】アーク座標系について説明するための図であ
る。FIG. 15 is a diagram for describing an arc coordinate system.
【図16】図16(A)〜(D)は、ラバーバンドの有
効性について説明するための図である。FIGS. 16A to 16D are diagrams for explaining the effectiveness of a rubber band.
【図17】図17(A)は固定ノード周りのアーク回転
について、図17(B)、(C)は、特異状態の発生に
ついて説明するための図である。17A is a diagram for explaining an arc rotation around a fixed node, and FIGS. 17B and 17C are diagrams for explaining occurrence of a singular state.
【図18】図18(A)、(B)、(C)は、アーク間
角度の可動範囲の設定について説明するための図であ
る。FIGS. 18A, 18B, and 18C are diagrams for explaining setting of a movable range of an angle between arcs.
【図19】アーク間角度のオーバーシュートとその許容
限界値の設定について説明するための図である。FIG. 19 is a diagram for describing overshooting of an angle between arcs and setting of an allowable limit value thereof.
【図20】図20(A)、(B)、(C)は、スケルト
ンモデルとオブジェクトとの干渉機能について説明する
ための図である。FIGS. 20A, 20B, and 20C are diagrams for explaining an interference function between a skeleton model and an object;
【図21】図21(A)、(B)、(C)は、画像合成
装置、情報記憶媒体の種々の実施形態について示す図で
ある。FIGS. 21A, 21B, and 21C are diagrams showing various embodiments of an image synthesizing apparatus and an information storage medium.
【図22】図22(A)、(B)、(C)は、従来のス
ケルトンモデルの形状変形方法について説明するための
図である。FIGS. 22A, 22B, and 22C are diagrams for explaining a conventional skeleton model shape deformation method;
【図23】図23(A)、(B)は、親子関係の設定に
ついて説明するための図である。FIGS. 23A and 23B are diagrams for describing setting of a parent-child relationship.
2、3、4 ノード 6、7、8 アーク 10、11、12 アーク法線ベクトル 18 スケルトンモデル 2, 3, 4 nodes 6, 7, 8 arc 10, 11, 12 arc normal vector 18 skeleton model
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06T 15/00 - 17/50 ──────────────────────────────────────────────────続 き Continuation of front page (58) Field surveyed (Int.Cl. 7 , DB name) G06T 15/00-17/50
Claims (16)
スケルトンモデルの形状変形を行い形状データを生成す
る形状データ生成部と、前記形状データ生成部で生成さ
れた形状データに基づいて、スケルトンモデル又はスケ
ルトンモデルに付随して動くオブジェクトの画像を合成
し表示部に出力する画像合成部とを含む画像合成装置に
使用されるスケルトンモデルの形状変形方法であって、 スケルトンモデルを、スケルトンモデルのノードの座標
を含む基本変数により表し、 スケルトンモデルのアークの長さが所与の値となること
を規定する式を含み前記基本変数を未知数とする基本式
と、前記基本式を満たす解を一意的に特定するための評
価式の少なくとも一方を、所与の情報に基づいて変化さ
せ、 基本式をほぼ満たし且つ評価式の値をほぼ極小、ほぼ極
大及びほぼ停留のいずれかにする基本変数の解を求め、 求められた解である少なくともノードの座標の解に基づ
いてスケルトンモデルの形状を変形し、 前記評価式が、アーク間のなす角度の変化量、ノードと
所与の点との間の距離、端部に固定ノードを持つアーク
の向きの変化量、ノード座標の変化量及びノード座標の
速度変化量の少なくとも1つを含む ことを特徴とするス
ケルトンモデルの形状変形方法。1. A method for deforming a shape of a skeleton model.
Generate shape data by deforming the shape of the skeleton model
A shape data generating unit,
Skeleton model or skeleton model based on the
Combines images of moving objects accompanying the Luton model
And an image synthesizing unit for outputting to the display unit.
A method for deforming the shape of a skeleton model to be used , wherein the skeleton model is represented by basic variables including the coordinates of nodes of the skeleton model, and an expression defining that the arc length of the skeleton model has a given value is given by: At least one of a basic expression including the basic variable as an unknown and an evaluation expression for uniquely specifying a solution satisfying the basic expression is changed based on given information, and the basic expression is substantially satisfied and evaluated. substantially minimum value of the expression, computes the solution to a basic variables that about any of maxima and substantially stationary, by modifying the shape of the skeleton model based on the solutions of the at least node coordinates a solution obtained, the evaluation formula Is the change in angle between the arcs, the node and
Arc with a fixed node at the end, distance to a given point
Direction change, node coordinate change and node coordinate
A shape deformation method for a skeleton model, comprising at least one of a speed change amount .
成分を含み、 前記基本式が、前記アーク法線ベクトルの長さが所与の
値となることを規定する式と、前記アーク法線ベクトル
がアークに垂直になることを規定する式とを含むことを
特徴とするスケルトンモデルの形状変形方法。2. The method according to claim 1, wherein the basic variable includes a component of an arc normal vector perpendicular to the arc, and the basic expression indicates that the length of the arc normal vector is a given value. A method for deforming the shape of a skeleton model, comprising: a formula that defines a formula and a formula that defines that the arc normal vector is perpendicular to an arc.
成分を含み、 前記アーク法線ベクトルの成分の変化量を所与の1つの
変数により表して基本変数の解を求めることを特徴とす
るスケルトンモデルの形状変形方法。3. The method according to claim 1, wherein the basic variable includes a component of an arc normal vector perpendicular to an arc, and a variation of the component of the arc normal vector is represented by a given one variable. A method for deforming the shape of a skeleton model, wherein a solution of a basic variable is obtained.
成分を含み、 アーク間のなす角度の変化量、ノードと所与の点との間
の距離、端部に固定ノードを持つアークの向きの変化
量、ノード座標の変化量及びノード座標の速度変化量の
少なくとも1つを含む評価式の値がほぼ極小、ほぼ極大
及びほぼ停留のいずれかになるように基本変数の解を求
めることを特徴とするスケルトンモデルの形状変形方
法。4. The method according to claim 1, wherein the basic variables include a component of an arc normal vector perpendicular to the arc, a change amount of an angle between the arcs, and a difference between a node and a given point. The values of the evaluation formulas including at least one of the distance between them, the amount of change in the direction of the arc having a fixed node at the end, the amount of change in the node coordinates, and the amount of change in the speed of the node coordinates are substantially minimum, substantially maximum, and substantially stationary. A method for deforming the shape of a skeleton model, wherein a solution of a basic variable is obtained so as to be any one of them.
基本式、前記評価式の少なくとも一方を反復ループの終
了又は開始に同期させて所与の情報に基づいて次々に変
化させることを特徴とするスケルトンモデルの形状変形
方法。5. The method according to claim 1, wherein a solution of the basic variable is obtained by iterative calculation, and at least one of the basic expression and the evaluation expression is given in synchronization with the end or start of an iterative loop. A method for deforming the shape of a skeleton model, wherein the shape is changed one after another based on the information of
トルの成分を既知数とすることを特徴とするスケルトン
モデルの形状変形方法。6. The method for deforming a shape of a skeleton model according to claim 1, wherein the coordinates of the fixed nodes or the components of the fixed arc normal vector are known numbers.
する式、ノードを所与の面又は所与の線に拘束する式及
びスケルトンモデル又はこれに付随して動く第1のオブ
ジェクトと他の第2のオブジェクトとの干渉時にスケル
トンモデル又は第1のオブジェクトを第2のオブジェク
トに拘束する式の少なくとも1つを含むことを特徴とす
るスケルトンモデルの形状変形方法。7. The expression according to claim 1, wherein the evaluation expression is an expression that constrains an angle between arcs to a given range, and an expression that constrains a node to a given surface or a given line. And at least one of a formula for constraining the skeleton model or the first object to the second object when the skeleton model or the first object moving therewith interferes with another second object. Shape deformation method of the skeleton model.
法によりスケルトンモデルの形状変形を行い形状データ
を生成する形状データ生成部と、 前記形状データ生成部で生成された形状データに基づい
て、スケルトンモデル又はスケルトンモデルに付随して
動くオブジェクトの画像を合成し表示部に出力する画像
合成部と を含む ことを特徴とする画像合成装置。8. Shape data of a skeleton model is deformed by the shape deformation method according to any one of claims 1 to 7.
A shape data generating unit for generating the shape data based on the shape data generated by the shape data generating unit.
The skeleton model or the skeleton model
Image that combines images of moving objects and outputs them to the display
Image synthesizing device which comprises a synthetic portion.
手段を含むことを特徴とする画像合成装置。9. The image synthesizing apparatus according to claim 8, further comprising an operation means for allowing an operator to instruct deformation of the skeleton model.
りスケルトンモデル の形状変形を行い形状データを生成
する形状データ生成部と、前記形状データ生成部で生成
された形状データに基づいて、スケルトンモデル又はス
ケルトンモデルに付随して動くオブジェクトの画像を合
成し表示部に出力する画像合成部とを含む画像合成装置
に使用される情報記憶媒体であって、 スケルトンモデルを、スケルトンモデルのノードの座標
を含む基本変数により表し、 スケルトンモデルのアークの長さが所与の値となること
を規定する式を含み前記基本変数を未知数とする基本式
と、前記基本式を満たす解を一意的に特定するための評
価式の少なくとも一方を、所与の情報に基づいて変化さ
せ、 基本式をほぼ満たし且つ評価式の値をほぼ極小、ほぼ極
大及びほぼ停留のいずれかにする基本変数の解を求め、 求められた解である少なくともノードの座標の解に基づ
いてスケルトンモデルの形状を変形する形状変形方法を
実現するためのプログラムを含み、前記評価式が、アーク間のなす角度の変化量、ノードと
所与の点との間の距離、端部に固定ノードを持つアーク
の向きの変化量、ノード座標の変化量及びノード座標の
速度変化量の少なくとも1つを含む ことを特徴とする情
報記憶媒体。10. A method for deforming a shape of a skeleton model.
Shape data of the skeleton model and generate shape data
And a shape data generating unit for generating the shape data.
Skeleton model or model based on the
Merge images of moving objects accompanying the skeleton model
Image synthesizing apparatus including an image synthesizing unit configured to output the image to a display unit
An information storage medium used in the skeleton model, and the table by the basic variables that contain the coordinates of the nodes of the skeleton model includes equations that define the length of the arc of the skeleton model is given value At least one of a basic expression having the basic variable as an unknown and an evaluation expression for uniquely identifying a solution satisfying the basic expression is changed based on given information, and the basic expression is substantially satisfied and the evaluation expression substantially minimum value, computes the solution to a basic variables that about any of maxima and substantially stationary, the shape deformation method for deforming the shape of the skeleton model based on the solutions of the coordinates of at least a solution obtained node
A program for realizing the method , wherein the evaluation formula is a method of calculating an angle change between arcs, a node,
Arc with a fixed node at the end, distance from a given point
Direction change, node coordinate change and node coordinate
An information storage medium comprising at least one of a speed change amount .
成分を含み、 前記基本式が、前記アーク法線ベクトルの長さが所与の
値となることを規定する式と、前記アーク法線ベクトル
がアークに垂直になることを規定する式とを含むことを
特徴とする情報記憶媒体。 11. The method according to claim 10, wherein the basic variable is an arc normal vector perpendicular to the arc.
Component, and the basic equation is such that the length of the arc normal vector is given.
An expression defining the value and the arc normal vector
And an expression that defines that it is perpendicular to the arc.
Characteristic information storage medium.
成分を含み、 前記アーク法線ベクトルの成分の変化量を所与の1つの
変数により表して基本変数の解を求めることを特徴とす
る情報記憶媒体。 12. The method according to claim 10, wherein the basic variable is an arc normal vector perpendicular to the arc.
Component, and the variation of the component of the arc normal vector is given by one given
It is characterized by finding the solution of the basic variable by expressing it by a variable
Information storage medium.
て、前記基本変数が、アークに垂直なアーク法線ベクトルの
成分を含み、 アーク間のなす角度の変化量、ノードと所与の点との間
の距離、端部に固定ノードを持つアークの向きの変化
量、ノード座標の変化量及びノード座標の速度変 化量の
少なくとも1つを含む評価式の値がほぼ極小、ほぼ極大
及びほぼ停留のいずれかになるように基本変数の解を求
めることを特徴とする情報記憶媒体。 13. The method according to claim 10, wherein the basic variable is an arc normal vector perpendicular to the arc.
Component, the amount of change in angle between arcs, between a node and a given point
Distance, change in direction of arc with fixed node at end
The amount, speed change amount of the change amount and the node coordinates of the node coordinates
The value of the evaluation formula including at least one is almost minimum and almost maximum
And the solution of the basic variables so that
An information storage medium characterized in that:
て、前記基本変数の解を反復計算により求めると共に、前記
基本式、前記評価式の少なくとも一方を反復ループの終
了又は開始に同期させて所与の情報に基づいて次々に変
化させることを特徴とする情報記憶媒体。 14. The method according to claim 10, wherein a solution of the basic variable is obtained by iterative calculation, and
At least one of the basic expression and the evaluation expression
Changes based on given information in synchronization with
An information storage medium characterized by being converted into an information storage medium.
て、固定されたノードの座標又は固定されたアーク法線ベク
トルの成分を既知数とすることを特徴とする情報記憶媒
体。 15. A fixed node coordinate or a fixed arc normal vector according to claim 10, wherein:
An information storage medium characterized in that the components of the torque are a known number.
body.
て、前記評価式が、アーク間のなす角度を所与の範囲に拘束
する式、ノードを所与の面又は所与の線に拘束する式及
びスケルトンモデル又はこれに付随して動く第1のオブ
ジェクトと他の第2のオブジェクトとの干渉時にスケル
トンモデル又は第1のオブジェクトを第2のオブジェク
トに拘束する式の少なくとも1つを含むことを特徴とす
る情報記憶媒体。 16. The evaluation method according to claim 10, wherein the evaluation expression restricts an angle between the arcs to a given range.
Expressions that constrain nodes to a given surface or a given line
And the skeleton model or the first object that moves with it
Skeleton when the object interferes with another second object
Ton model or a first object to a second object
Including at least one of the following expressions:
Information storage medium.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27652197A JP3241310B2 (en) | 1996-11-19 | 1997-09-24 | Shape deformation method of skeleton model, image synthesizing device, and information storage medium |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8-323457 | 1996-11-19 | ||
JP32345796 | 1996-11-19 | ||
JP27652197A JP3241310B2 (en) | 1996-11-19 | 1997-09-24 | Shape deformation method of skeleton model, image synthesizing device, and information storage medium |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP31834998A Division JP3265271B2 (en) | 1996-11-19 | 1998-10-21 | Shape deformation method of skeleton model, image synthesizing device, and information storage medium |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10208072A JPH10208072A (en) | 1998-08-07 |
JP3241310B2 true JP3241310B2 (en) | 2001-12-25 |
Family
ID=26551952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP27652197A Expired - Fee Related JP3241310B2 (en) | 1996-11-19 | 1997-09-24 | Shape deformation method of skeleton model, image synthesizing device, and information storage medium |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3241310B2 (en) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002319036A (en) * | 2001-02-13 | 2002-10-31 | Sega Corp | Animation generation program |
JP4508776B2 (en) * | 2004-08-18 | 2010-07-21 | 任天堂株式会社 | Image processing program and image processing apparatus |
KR100945037B1 (en) | 2008-04-29 | 2010-03-05 | 연세대학교 산학협력단 | Method and system for creating exaggeration image using rubber-like exaggeration algorithm |
JP5602043B2 (en) * | 2011-02-08 | 2014-10-08 | 株式会社セルシス | Control device, method, and program for difficulty in bending joint angle of skeleton model |
JP5118220B2 (en) | 2011-02-16 | 2013-01-16 | 株式会社スクウェア・エニックス | Motion modeling apparatus and method, and program |
JP5618926B2 (en) * | 2011-07-11 | 2014-11-05 | 株式会社セルシス | Multipointing device control method and program |
JP7005788B2 (en) * | 2018-10-22 | 2022-01-24 | 株式会社ソニー・インタラクティブエンタテインメント | Skeleton model update device, skeleton model update method and program |
CN114359469B (en) * | 2022-01-07 | 2023-06-09 | 腾讯科技(深圳)有限公司 | Method, device, equipment and medium for generating master control object projection |
-
1997
- 1997-09-24 JP JP27652197A patent/JP3241310B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH10208072A (en) | 1998-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6320988B1 (en) | Skeleton model shape transformation method, image synthesizing apparatus, and information storage medium | |
EP1288867B1 (en) | Method for generating motion | |
Starke et al. | Memetic evolution for generic full-body inverse kinematics in robotics and animation | |
Hadap | Oriented strands: dynamics of stiff multi-body system | |
US6191798B1 (en) | Limb coordination system for interactive computer animation of articulated characters | |
Choi et al. | Online motion retargetting | |
Welman | Inverse kinematics and geometric constraints for articulated figure manipulation | |
Aristidou et al. | Inverse kinematics: a review of existing techniques and introduction of a new fast iterative solver | |
Riley et al. | Methods for motion generation and interaction with a humanoid robot: Case studies of dancing and catching | |
GB2555605A (en) | Animating a virtual object in a virtual world | |
Mohr et al. | Deformation sensitive decimation | |
EP2022012A2 (en) | Musculo-skeletal shape skinning | |
JP3241310B2 (en) | Shape deformation method of skeleton model, image synthesizing device, and information storage medium | |
US20020196258A1 (en) | Rendering collisions of three-dimensional models | |
Abe et al. | Interactive animation of dynamic manipulation | |
JP3265271B2 (en) | Shape deformation method of skeleton model, image synthesizing device, and information storage medium | |
JPH0887609A (en) | Image processor | |
JP2004062692A (en) | Motion generating system using multiple structure | |
Tak et al. | Spacetime sweeping: An interactive dynamic constraints solver | |
Huang et al. | An efficient energy transfer inverse kinematics solution | |
Huang et al. | Motion parameterization with inverse blending | |
JP5602043B2 (en) | Control device, method, and program for difficulty in bending joint angle of skeleton model | |
Kry et al. | Inverse kinodynamics: Editing and constraining kinematic approximations of dynamic motion | |
KR101699930B1 (en) | Method and Device for Generating Behavior of Avatar | |
Choi et al. | Image morphing using mass-spring system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20010918 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071019 Year of fee payment: 6 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081019 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091019 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091019 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091019 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101019 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101019 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111019 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111019 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111019 Year of fee payment: 10 |
|
LAPS | Cancellation because of no payment of annual fees |