JP5486524B2 - Skeletal angle control method, apparatus, and program - Google Patents

Skeletal angle control method, apparatus, and program Download PDF

Info

Publication number
JP5486524B2
JP5486524B2 JP2011024449A JP2011024449A JP5486524B2 JP 5486524 B2 JP5486524 B2 JP 5486524B2 JP 2011024449 A JP2011024449 A JP 2011024449A JP 2011024449 A JP2011024449 A JP 2011024449A JP 5486524 B2 JP5486524 B2 JP 5486524B2
Authority
JP
Japan
Prior art keywords
angle
skeleton
circle
determination
angle range
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2011024449A
Other languages
Japanese (ja)
Other versions
JP2012164162A (en
Inventor
陽介 川上
兼太郎 山口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Celsys Inc
Original Assignee
Celsys Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Celsys Inc filed Critical Celsys Inc
Priority to JP2011024449A priority Critical patent/JP5486524B2/en
Publication of JP2012164162A publication Critical patent/JP2012164162A/en
Application granted granted Critical
Publication of JP5486524B2 publication Critical patent/JP5486524B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Description

本発明は,骨格モデルにおける各々の骨の角度すなわち回転(曲げ,捻り等)の制御に関する。   The present invention relates to control of the angle, that is, rotation (bending, twisting, etc.) of each bone in a skeleton model.

CGキャラクタ等を動かしてポーズやアニメーションを作る際に,複数の骨を関節で繋いだ骨格モデル(スケルトンモデル)(図1(a))が使われる場合がある。このような骨格モデルは,仮想空間ばかりでなく,ロボット制御等の実空間における対象物を制御する場合にも用いられ得る。   When creating a pose or animation by moving a CG character or the like, a skeleton model (skeleton model) (FIG. 1A) in which a plurality of bones are connected by joints may be used. Such a skeleton model can be used not only in the virtual space but also in the case of controlling an object in a real space such as robot control.

本願明細書では,図1(b)のように関節の両側の骨のうち一方を親骨,他方を子骨と呼ぶことにする。関節の回転(曲げ,捻り)の状態は,親骨を基準とした子骨の向きで表すことができる。骨の向きを表すために,各々の骨に対して図1(b)のように座標系が定められる。図1(b)の座標系では,x軸回転が捻り,y軸回転とz軸回転が曲げとなる。   In the present specification, as shown in FIG. 1B, one of the bones on both sides of the joint is called a parent bone and the other is called a child bone. The state of rotation (bending, twisting) of the joint can be expressed by the orientation of the child bone relative to the parent bone. In order to express the direction of the bone, a coordinate system is defined for each bone as shown in FIG. In the coordinate system of FIG. 1B, the x-axis rotation is twisted, and the y-axis rotation and the z-axis rotation are bending.

三次元(3D)仮想空間又は実空間上で人体モデル,動物,構造物等の姿勢(ポーズ,動き等)を制御する際に用いられるこのような骨格モデルにおいては,図1(a)に示す各々の骨および関節の位置,角度,回転(曲げ,捻り)等を意図したとおりに制御することが必要となる。図1(a)に示される骨格モデルでは,各々の骨は関節で結合されており,各々の骨の動きが他の骨の動きに影響を与える。従来から,骨格をモデル化し,骨格モデルを制御するする手法として,種々のものが提案されている。   In such a skeleton model used for controlling the posture (pose, movement, etc.) of a human body model, animal, structure, etc. in a three-dimensional (3D) virtual space or real space, it is shown in FIG. It is necessary to control the position, angle, rotation (bending, twisting), etc. of each bone and joint as intended. In the skeletal model shown in FIG. 1A, each bone is connected by a joint, and the movement of each bone affects the movement of other bones. Conventionally, various methods for modeling a skeleton and controlling the skeleton model have been proposed.

特開2000−306116JP 2000-306116 A 特開2009−070340JP 2009-070340 A 特開2010−170279JP 2010-170279 A 米国特許公開公報2010182329号明細書US Patent Publication No. 2010182329

例示として,図1(a)の骨格モデルを用いた場合を想定する。この骨格モデルは,人間の骨格をモデル化したものである。したがって,例えば,肘から先の腕の可動範囲には,一定の制限がある。この制限を超えた角度(曲げ,捻り)に腕を曲げるポーズを取らせることは,現実の人間に対するモデルからかけ離れたものになる。人間として自然なポーズを取る骨格モデルを形成するためには,たとえば肘の関節から先の骨の可動範囲に対して,一定の制限を課すことが必要となる。   As an example, assume that the skeleton model of FIG. This skeleton model is a model of the human skeleton. Therefore, for example, the movable range of the arm beyond the elbow has a certain limitation. Making the arm bend at an angle beyond this limit (bending, twisting) is far from the model for real humans. In order to form a skeletal model that takes a natural pose as a human being, it is necessary to impose certain restrictions on the range of movement of the bone from the elbow joint, for example.

従来では,特許文献1に開示されるように,たとえば親骨に対する子骨の向きを親骨の座標系を基準とした3軸(x,y,z)の各軸回りの回転角度で表現するものがある。   Conventionally, as disclosed in Patent Document 1, for example, the orientation of a child bone relative to a parent bone is expressed by rotation angles around three axes (x, y, z) with respect to the parent bone coordinate system. is there.

特許文献2には,関節を中心点とする球面上の所与の点を焦点とし,関節に対応する中心点と焦点とを結ぶ軸に直交する平面を射影面とし,関節の可動範囲を,射影面上において設定する技術が開示されている。   In Patent Document 2, a given point on a sphere centered on a joint is a focal point, a plane perpendicular to an axis connecting the central point corresponding to the joint and the focal point is a projection plane, and the movable range of the joint is A technique for setting on a projection surface is disclosed.

特許文献3及び特許文献4には,子骨の向きが,予め定められた可動範囲内に収まっていない場合には,可動範囲の形状に応じた条件を満たすように,前記親骨に対する前記子骨の向きを補正する発明が開示されている。   In Patent Document 3 and Patent Document 4, when the orientation of the skeleton is not within the predetermined movable range, the skeleton with respect to the parent bone is satisfied so as to satisfy the condition according to the shape of the movable range. An invention for correcting the orientation of the above is disclosed.

上述のような従来の骨格の制御方法では,設計者の意図とはかけ離れた可動範囲となってしまうという問題が指摘されていた。また,この問題をある程度解決する手法として,特許文献2,特許文献3及び特許文献4に開示された技術が提案されている。しかしながら,これらの技術においては,必要な計算量は比較的少ないものの,多関節のモデルをリアルタイムに動かす等の場合には,計算量の更なる軽減が求められる。   In the conventional skeleton control method as described above, a problem has been pointed out that the movable range is far from the intention of the designer. Further, as a technique for solving this problem to some extent, techniques disclosed in Patent Document 2, Patent Document 3 and Patent Document 4 have been proposed. However, although these techniques require a relatively small amount of calculation, when the articulated model is moved in real time, further reduction of the calculation amount is required.

したがって,より多様な骨格モデルに柔軟に対応でき,より簡便な処理で,骨格モデルを制御する手法の実現が望まれている。本発明は,上述のような,従来技術の欠点を解決することを目的としている。なお,ここで取り上げた課題及び本願発明の目的は,例示的なものである。したがって,本願発明の目的が,上述の記載に限定されるものではない点に留意すべきである。   Therefore, it is desired to realize a technique that can flexibly cope with various skeleton models and controls the skeleton model with simpler processing. The object of the present invention is to solve the drawbacks of the prior art as described above. It should be noted that the problems taken up here and the object of the present invention are exemplary. Therefore, it should be noted that the object of the present invention is not limited to the above description.

本願明細書では,便宜上,実施例として仮想空間上に形成され得る骨格モデルの制御を取り上げて説明を行う。しかしながら,本発明の適用範囲は,仮想空間に限られるものではない。たとえば,ロボットの制御等の物理的構造物の位置や角度(曲げ,捻り等を含む)の制御に利用することも当然に意図されている。すなわち,本発明は,仮想空間及び実空間の双方の骨格モデルを対象とするものであることに特に留意すべきである。また,本発明は,本願明細書で取り扱う特定の骨格モデルに限定されるものでもない。   In this specification, for the sake of convenience, control of a skeleton model that can be formed in a virtual space will be described as an example. However, the application range of the present invention is not limited to the virtual space. For example, it is naturally intended to be used for controlling the position and angle (including bending, twisting, etc.) of a physical structure such as robot control. That is, it should be particularly noted that the present invention is intended for both virtual space and real space skeleton models. Further, the present invention is not limited to a specific skeleton model handled in this specification.

本願発明は,親骨と子骨とが関節によって連結された骨格モデルにおいて,前記親骨に対する前記子骨の前記関節における角度範囲を制限することによって前記子骨の動作を制御するための方法であって,前記関節を中心とする球の球面上に,前記子骨の角度範囲の境界を定義する角度範囲境界円を設定する角度範囲境界円設定ステップであって,前記角度範囲境界円は前記関節を中心とする球面と親骨または親骨の延長線との交点1を通るものであり,前記子骨又は前記子骨の延長線と前記球面の交点2の位置が前記角度範囲境界円によって二分される前記球面の何れに存在すべきかによって前記子骨の角度範囲が定められ,前記球の中心と前記角度範囲境界円とで形成される円錐の軸単位ベクトルu及び前記円錐の半頂角α,または,前記軸単位ベクトルu及び前記半頂角αを導くことができる数値をメモリに格納することによって前記角度範囲境界円を設定する,角度範囲境界円設定ステップと,前記メモリに格納された数値を読み出すことによって前記軸単位ベクトルuと前記半頂角αとを得て,前記子骨の向きを表す単位ベクトルvを用いて,u・v−cosαの値を検査値として算出し,前記検査値に基づいて,前記子骨の角度が前記角度範囲の中にあるか否かを判定する,角度範囲判定ステップと,を有する,方法を提供する。なお,上記の式(v・u)の演算は,ベクトルvとベクトルuの内積を意味する。   The present invention is a method for controlling the operation of the skeleton in a skeletal model in which the skeleton is connected to the skeleton by limiting the angular range of the skeleton relative to the parent bone in the joint. , An angle range boundary circle setting step for setting an angle range boundary circle defining a boundary of the angle range of the skeleton on a spherical surface of a sphere centered on the joint, wherein the angle range boundary circle includes the joint Passing through the intersection point 1 between the spherical surface as a center and the extension line of the parent bone or the parent bone, and the position of the intersection point 2 of the spherical surface and the extension line of the child bone and the spherical surface is bisected by the angle range boundary circle The angle range of the skeleton is determined depending on which of the spheres should be present, the cone unit vector u formed by the center of the sphere and the angle range boundary circle and the half apex angle α of the cone, or Previous An angle range boundary circle setting step for setting the angle range boundary circle by storing a numerical value capable of deriving the axis unit vector u and the half apex angle α in a memory, and reading the numerical value stored in the memory To obtain the axis unit vector u and the half apex angle α, calculate the value of u · v-cos α as a test value using the unit vector v representing the orientation of the skeleton, and based on the test value And an angle range determination step of determining whether or not the angle of the skeleton is within the angle range. The calculation of the above equation (v · u) means the inner product of the vector v and the vector u.

また,本願発明は,更に 前記関節を原点とし,前記交点1から前記原点に向かう方向をx軸の正方向とする,三次元直交座標系(x,y,z)から,
μ=2tan−1(−z/(x+1))
ν=2tan−1(y/(x+1))
の関係を有する,モノポーラ球面座標系(μ,ν)を用いて,前記角度範囲境界円が,少なくともμ=μ及びν=νのうち何れか一方を満たす(ここにおいて,μ及びνは定数)ようにしてもよい。
The present invention further includes a three-dimensional orthogonal coordinate system (x, y, z) in which the joint is the origin, and the direction from the intersection 1 to the origin is the positive direction of the x axis.
μ = 2 tan −1 (−z / (x + 1))
ν = 2 tan −1 (y / (x + 1))
The angular range boundary circle satisfies at least one of μ = μ e and ν = ν e using the monopolar spherical coordinate system (μ, ν) having the following relationship (where μ e and ν e may be a constant).

本願発明は,更に,前記交点2の前記モノポーラ球面座標を(μ,ν)とし,μの下限及び上限をそれぞれμ,μとし,νの下限及び上限をそれぞれν,νとした場合に,前記角度範囲が,μ<μ<μ及びν<ν<νを満たすよう前記角度範囲境界円を設定してもよい。 In the present invention, the monopolar spherical coordinates of the intersection point 2 are (μ, ν), the lower and upper limits of μ are μ 0 and μ 1, and the lower and upper limits of ν are ν 0 and ν 1 , respectively. In this case, the angle range boundary circle may be set so that the angle range satisfies μ 0 <μ <μ 1 and ν 0 <ν <ν 1 .

本願発明は,更に,前記角度範囲境界円が,前記交点1を通らない補助角度範囲境界円を更に用いるようにしてもよい。すなわち,この補助角度範囲境界円を角度範囲判定ステップで用いてもよい。   The present invention may further use an auxiliary angle range boundary circle in which the angle range boundary circle does not pass through the intersection point 1. That is, this auxiliary angle range boundary circle may be used in the angle range determination step.

本願発明は,前記角度範囲判定ステップにおいて,前記子骨の角度が前記角度範囲の中に無いと判定された場合,前記交点2から前記角度範囲の中にあることを満たす球面上の点まで前記球面上に沿って測定した距離が最短となる前記球面上の点に,前記交点2を移動させことにより,前記子骨の角度を修正する,角度修正ステップ,を更に有してもよい。   In the present invention, in the angle range determination step, when it is determined that the angle of the skeleton is not within the angle range, the point from the intersection point 2 to a point on the spherical surface that satisfies the angle range. An angle correction step of correcting the angle of the child bone by moving the intersection point 2 to a point on the spherical surface where the distance measured along the spherical surface is the shortest may be further included.

また,本願発明は,上記方法を実行する命令を有するプログラムとして実現されてもよい。あるいは,本願発明は,上記方法を実現する手段を有する装置として実現されてもよい。   Further, the present invention may be realized as a program having instructions for executing the above method. Or this invention may be implement | achieved as an apparatus which has a means to implement | achieve the said method.

本願発明により,骨格の角度を簡便な手法で制御することができる。なお,本願発明の効果は,この点に限定されるものではない。   According to the present invention, the angle of the skeleton can be controlled by a simple method. The effect of the present invention is not limited to this point.

スケルトンモデル,親骨,子骨,及び座標系を示す図。The figure which shows a skeleton model, a master bone, a skeleton, and a coordinate system. モノポーラ球面座標を示す図((b)は,(a)を反対側から見た図)。The figure which shows a monopolar spherical-surface coordinate ((b) is the figure which looked at (a) from the other side). 平面群と単位球面の交線が縦グリッドとなることを示す図。The figure which shows that the intersection of a plane group and a unit spherical surface becomes a vertical grid. 平面群と単位球面の交線が横グリッドとなることを示す図。The figure which shows that the intersection of a plane group and a unit spherical surface becomes a horizontal grid. 平面の向きとφ,θとの関係を示す図。The figure which shows the relationship between the direction of a plane, and (phi) and (theta). xz平面上の点Pのφ,μを示す図。The figure which shows (phi) and (mu) of the point P on xz plane. xy平面上の点Pのθ,νを示す図。The figure which shows (theta) and (nu) of the point P on xy plane. 矩形領域による角度制限を示す図。The figure which shows the angle restriction | limiting by a rectangular area. 小判型領域による角度制限(横長形状)を示す図。The figure which shows the angle restriction | limiting (horizontal shape) by an oval type | mold area | region. 小判型領域による角度制限(縦長形状)を示す図。The figure which shows the angle restriction | limiting (vertically long shape) by an oval type | mold area | region. 矩形領域の内外判定を模式的に示す図。The figure which shows typically the inside / outside determination of a rectangular area. 小判型領域(横長)の補助円を示す図。The figure which shows the auxiliary | assistant circle of an oval type | mold area | region (landscape). 小判型領域(縦長)の補助円を示す図。The figure which shows the auxiliary | assistant circle of an oval type | mold area | region (vertically long). 円領域Cに対する,点Pからの最近点Pnを示す図。The figure which shows the nearest point Pn from the point P with respect to the circular area | region C. FIG. 矩形領域の4頂点を示す図。The figure which shows four vertices of a rectangular area. 球面上で互いに接する3円C,C,Ct0を示す図。Shows a 3 ¥ C 2, C 3, C t0 in contact with each other on the sphere. 球面3角形Ot0と内接円を示す図。It shows an inscribed circle a spherical triangle O 2 O 3 O t0. 矩形領域の内外判定の手順を示す図。The figure which shows the procedure of the inside / outside determination of a rectangular area. 横長の小判型領域の内外判定の手順を示す図。The figure which shows the procedure of the inside / outside determination of a horizontally long oval type | mold area | region. 縦長の小判型領域の内外判定の手順を示す図。The figure which shows the procedure of the inside / outside determination of a vertically long oval type | mold area | region. 矩形領域に対する最近点を求める手順を示す図。The figure which shows the procedure which calculates | requires the nearest point with respect to a rectangular area. 横長の小判型領域に対する最近点求める手順を示す図。The figure which shows the procedure which calculates | requires the nearest point with respect to a horizontally long oval type | mold area | region. 縦長の小判型領域に対する最近点求める手順を示す図。The figure which shows the procedure which calculates | requires the nearest point with respect to a vertically long oval type | mold area | region. 小判型領域形状が縦長か横長かを判定する手順を示す図。The figure which shows the procedure which determines whether an oval type | mold area shape is vertically long or horizontally long. 本発明の実施例の装置構成を示す図。The figure which shows the apparatus structure of the Example of this invention. 本発明の実施例のハードウエア構成を示す図。The figure which shows the hardware constitutions of the Example of this invention. 本発明の実施例の手順を示す図。The figure which shows the procedure of the Example of this invention. 本発明の実施例の構成を示す図。The figure which shows the structure of the Example of this invention. 曲げと捻りの修正の手順を示す図。The figure which shows the procedure of correction of bending and twist.

[1.モノポーラ球面座標]
上述のように,スケルトンモデル(図1(a))の骨の向きを表すために,各骨に対して図1(b)のように座標系を定める。
[1. Monopolar spherical coordinates]
As described above, in order to represent the bone direction of the skeleton model (FIG. 1 (a)), a coordinate system is defined for each bone as shown in FIG. 1 (b).

関節を中心とする単位球面(半径1の球面)を作り,子骨のx軸(x>0の部分)と球面との交点をPとすると,関節の曲げ状態は,球面上の点Pの位置で表すことができる。関節の回転(曲げ,捻り)を表現する方法の一つに,3軸の回転角(オイラー角)を使う方法がある。例として,親骨の座標系を基準にx軸回転,z軸回転,y軸回転の順に回転を掛けた場合,各軸の回転角と点Pの位置との関係に注目すると,y軸回転角が経度に,z軸回転角が緯度に相当する。そこで,y軸回転角,z軸回転角を等間隔にとって球面上にグリッドを作ると,地球儀の経線・緯線と同様の形状になる。北極と南極に相当する2点が角度表現上の特異点となるため,扱いにくいという問題がある。   If a unit spherical surface (spherical surface with a radius of 1) centering on the joint is made and the intersection point between the x-axis of the skeleton (x> 0 part) and the spherical surface is P, the bending state of the joint is the point P on the spherical surface. It can be expressed by position. One method of expressing joint rotation (bending, twisting) is to use a triaxial rotation angle (Euler angle). As an example, when the rotation is performed in the order of x-axis rotation, z-axis rotation, and y-axis rotation with reference to the coordinate system of the parent bone, paying attention to the relationship between the rotation angle of each axis and the position of the point P, the y-axis rotation angle Is equivalent to longitude, and the z-axis rotation angle is equivalent to latitude. Therefore, if a grid is formed on a spherical surface with the y-axis rotation angle and the z-axis rotation angle set at equal intervals, the shape is similar to the meridian / parallel of the globe. Since the two points corresponding to the North Pole and the South Pole are singular points in the angle expression, there is a problem that it is difficult to handle.

これに対して,特異点を1個に減らす手法として,射影を用いる方法(特許文献2,特許文献3,特許文献4)が知られている。この手法の特性を球面上のグリッドで表すと図2のようになる。このグリッドは,球面上に作られた座標系と捉えることができる。極(特異点)が1個であることから,本願明細書では,この座標系を「モノポーラ球面座標」と呼ぶことにする。   On the other hand, as a technique for reducing the number of singular points to one, a method using a projection (Patent Document 2, Patent Document 3, and Patent Document 4) is known. The characteristics of this method are represented by a grid on a spherical surface as shown in FIG. This grid can be regarded as a coordinate system created on a spherical surface. Since there is one pole (singular point), in the present specification, this coordinate system is referred to as “monopolar spherical coordinate”.

以下,このモノポーラ球面座標に関して,次の項目について述べる。
・射影を使わずに球面上にモノポーラ球面座標系を構成する手法
・モノポーラ球面座標を使って関節の角度制限を行なう手法
[2.モノポーラ球面座標系の構成]
一般に2次元の座標系に目盛りをつけるとグリッド(格子)となる。以下の説明では,便宜上「グリッド」という用語を用いる場合があるが,その表すものは,単なる格子ではなく座標系の意味を含むものとする。
The following items regarding the monopolar spherical coordinates are described below.
-Method of constructing a monopolar spherical coordinate system on a spherical surface without using projection-Method of limiting joint angles using monopolar spherical coordinates [2. Configuration of monopolar spherical coordinate system]
Generally, when a scale is added to a two-dimensional coordinate system, a grid is formed. In the following description, the term “grid” may be used for convenience, but the representation represents the meaning of a coordinate system, not a simple grid.

座標(−1,0,0)の点をPとし,「極」と呼ぶことにする。極Pを通りy軸に平行な直線をlとし,図3のように,lを含む等角度間隔の平面群を用意する。この平面群と単位球面との交線をグリッドの縦線とする。 The point of coordinates (-1, 0, 0) is P * and is called “pole”. Pole P * a straight line parallel to the street y-axis and l y, as shown in FIG. 3, to prepare a group of planes of equal angular interval containing a l y. An intersection line between the plane group and the unit spherical surface is defined as a vertical line of the grid.

同様に,極Pを通りz軸に平行な直線をlとし,図4のように,lを含む等角度間隔の平面群を用意する。この平面群と単位球面との交線をグリッドの横線とする。 Similarly, let l z be a straight line passing through the pole P * and parallel to the z-axis, and a plane group having equiangular intervals including l z is prepared as shown in FIG. The intersecting line between the plane group and the unit sphere is defined as a horizontal line of the grid.

図5のように,直線lを含む平面の向きを角度φで表し,直線lを含む平面の向きを角度θで表す。φ,θの符号は,図中に示す方向を正とする。球面上の点Pの位置は,φによって決まる平面,θによって決まる平面,および単位球面の3つの面の交点として決まる。μ≡2φ,ν≡2θとし,μ,νを使って球面上の位置を表す。 As in Figure 5, represents the orientation of the plane containing the straight line l y at an angle phi, it represents the orientation of the plane containing the straight line l z at an angle theta. The signs of φ and θ are positive in the direction shown in the figure. The position of the point P on the spherical surface is determined as an intersection of the three surfaces of the plane determined by φ, the plane determined by θ, and the unit spherical surface. Let μ≡2φ and ν≡2θ, and use μ and ν to represent the position on the sphere.

φ,θをそのまま使わずにμ,νを使うことにより,次のようなメリットがある。図6のように,点Pがxz平面上にある(即ちν=0である)場合を考える。子骨の向きはOPである。座標(1,0,0)の点をQとする。   By using μ and ν without using φ and θ as they are, there are the following advantages. Consider the case where the point P is on the xz plane (ie, ν = 0) as shown in FIG. The orientation of the skeleton is OP. Let Q be the point at coordinates (1, 0, 0).

∠OPP=∠OPP=φ
∠OPP+∠OPP=∠QOP
∴∠QOP=2φ=μ
したがって,ν=0の場合には,μは子骨のy軸回りの回転角となる。同様に,図7のように,点Pがxy平面上にある(即ちμ=0である)場合には,νは子骨のz軸回りの回転角となる。
∠OP * P = ∠OPP * = φ
∠OP * P + ∠OPP * = ∠QOP
∴∠QOP = 2φ = μ
Therefore, when ν = 0, μ is the rotation angle around the y axis of the skeleton. Similarly, as shown in FIG. 7, when the point P is on the xy plane (that is, μ = 0), ν is the rotation angle around the z axis of the skeleton.

このように,μ,νを使うと回転の状態(子骨の向き)を感覚的に把握しやすい。例えば図2は,μ,νの値を10°間隔にとって作ったグリッドであるが,xy平面上およびxz平面上ではグリッドが円周上で10°ずつの等間隔になっていることが分かる。   In this way, if μ and ν are used, the state of rotation (the orientation of the skeleton) can be easily grasped sensuously. For example, FIG. 2 shows a grid formed with μ and ν values set at 10 ° intervals, but it can be seen that the grids are equally spaced by 10 ° on the circumference on the xy plane and the xz plane.

[3.モノポーラ球面座標と子骨の向き]
子骨の向きを表す単位ベクトルをv≡(x,y,z)とし,これをモノポーラ球面座標で表したものを(μ,ν)とする。両者の関係は次式で表される(本明細書においてvはベクトルを表す)。
[3. Monopolar spherical coordinates and orientation of the skeleton]
A unit vector representing the orientation of the skeleton is represented by v≡ (x, y, z), and the unit vector represented by monopolar spherical coordinates is represented by (μ, ν). The relationship between the two is represented by the following equation (in the present specification, v represents a vector).

ただし,M,N,Tは次のとおりである。 However, M, N, and T are as follows.

式の導出方法については,後述する([式の導出方法A]を参照)。 A method for deriving the expression will be described later (see [Expression Deriving Method A]).

以下,具体的な角度(曲げ,捻り)の制御について詳細に述べる。   The specific angle (bending and twisting) control is described in detail below.

[4.可動領域の設定]
[4.1 矩形領域による角度制限]
μ,νの値に上限,下限を設定することで,図8のように可動領域を設定できる。このような可動領域制限を矩形制限と呼ぶことにする。μの上下限値をそれぞれμ,μとし,νの上下限値をそれぞれν,νとする。
[4. Setting of movable area]
[4.1 Angle limitation by rectangular area]
By setting the upper and lower limits for the values of μ and ν, the movable region can be set as shown in FIG. Such a movable area restriction is called a rectangular restriction. Let μ 1 and μ 0 be the upper and lower limits of μ, and let ν 1 and ν 0 be the upper and lower limits of ν, respectively.

式μ=μは単位球面上で1つの円を表す。この円をCとする。円Cによって球の表面は2つの領域に分けられるが,このうち可動領域側(μ>=μの領域)を,円Cの「内側」と呼ぶことにする。球面上の円に対する内外判定の際に,後述のように円錐を使って判定を行なう。そこで,以下のように円錐パラメータを求めておく。 The expression μ = μ 0 represents one circle on the unit sphere. This circle and C 0. The surface of the sphere is divided into two regions by the circle C 0 , and the movable region side (region where μ> = μ 0 ) is called the “inside” of the circle C 0 . When determining inside / outside of a circle on a spherical surface, the determination is performed using a cone as described later. Therefore, the cone parameter is obtained as follows.

円Cと球の中心Oとを結んで作られる円錐をOCとし,円錐OCの軸方向の単位ベクトルをu≡(a,b,c)とする(本明細書においてuはベクトルを表す)。uの方向は可動領域側とする。また,円錐OCの半頂角(軸uと円錐面のなす角)をαとする。これらの値は次式により得られる。 A cone formed by connecting the circle C 0 and the center O of the sphere is OC 0, and an axial unit vector of the cone OC 0 is u 0 ≡ (a 0 , b 0 , c 0 ) (in this specification) u represents a vector). The direction of u 0 is the movable region side. Further, the half apex angle (angle formed between the axis u 0 and the conical surface) of the cone OC 0 is α 0 . These values are obtained by the following equation.

同様に,式μ=μ,ν=ν,ν=νが表す円を,それぞれC,C,Cとする。円錐OC,OC,OCの中心軸をそれぞれu≡(a,b,c),u≡(a,b,c),u≡(a,b,c)とし,半頂角をそれぞれα,α,αとする。これらの値は次式により得られる。 Similarly, the circles represented by the expressions μ = μ 1 , ν = ν 0 , and ν = ν 1 are C 1 , C 2 , and C 3 , respectively. The central axes of the cones OC 1 , OC 2 , and OC 3 are denoted by u 1 ≡ (a 1 , b 1 , c 1 ), u 2 ≡ (a 2 , b 2 , c 2 ), u 3 ≡ (a 3 , b 3 , c 3 ), and the half apex angles are α 1 , α 2 , and α 3 , respectively. These values are obtained by the following equation.

値の範囲が−π<μ<μ<π,−π<ν<ν<πなので,次式が成り立つ。 Since the range of values is −π <μ 01 <π and −π <ν 01 <π, the following equation holds.

なお,今後扱う他の可動領域についても,球面上の円は可動領域側を「内側」とし,円錐の軸ベクトルの向きは可動領域側とする。 As for other movable areas to be handled in the future, the circle on the spherical surface has the movable area side “inside” and the direction of the cone axis vector is the movable area side.

[4.2 小判型領域による角度制限]
矩形制限を用いて骨格モデルを動かすと,可動領域の角部に引っ掛かり,滑らかでない動きになることがある。この挙動を改善するために,以下のように小判型の可動領域を設定する。
[4.2 Angle limitation by oval area]
Moving the skeletal model using the rectangle restriction may get caught in the corner of the movable area, resulting in non-smooth movement. In order to improve this behavior, an oval movable area is set as follows.

[4.2.1 隅円の作成]
図9,図10のように,矩形領域の3辺に接する隅円を作り,角部を取り除く。元の矩形領域の形状によって,図9のようにC,Cの一部が残る場合と,図10のようにC,Cの一部が残る場合とがある。前者の形状を「横長」,後者の形状を「縦長」と呼ぶことにする。
[4.2.1 Creation of corner circles]
As shown in FIGS. 9 and 10, corner circles in contact with the three sides of the rectangular area are created, and the corners are removed. Depending on the shape of the original rectangular area, a part of C 2 and C 3 remains as shown in FIG. 9 and a part of C 0 and C 1 remains as shown in FIG. The former shape is called “horizontally long” and the latter shape is called “vertically long”.

横長形状の場合,図9のように,μ側の隅円(C,C,Cに接する円)をCt0とし,μ側の隅円(C,C,Cに接する円)をCt1とする。 In the case of the horizontally long shape, as shown in FIG. 9, the corner circle on the μ 0 side (circle contacting C 0 , C 2 , C 3 ) is C t0, and the corner circle on the μ 1 side (C 1 , C 2 , C 3). C t1 is a circle in contact with.

縦長形状の場合,図10のように,ν側の隅円(C,C,Cに接する円)をCt2とし,ν側の隅円(C,C,Cに接する円)をCt3とする。 In the case of the vertically long shape, as shown in FIG. 10, the corner circle on the ν 0 side (circle contacting the C 0 , C 1 , C 2 ) is C t2, and the corner circle on the ν 1 side (C 0 , C 1 , C 3). C t3 is a circle in contact with

[4.2.2 隅円の円錐パラメータ]
隅円の円錐パラメータは,以下の計算によって得られる。まず,次のようにk,k,k,kを定義する。
[4.2.2 Conic parameters of corner circles]
The cone parameter of the corner circle is obtained by the following calculation. First, k 0 , k 1 , k 2 , and k 3 are defined as follows.

−π<μ<μ<π,−π<ν<ν<πなので,k<k,k>kである。次式により領域形状の縦長・横長を決定する。 Since −π <μ 01 <π and −π <ν 01 <π, k 0 <k 1 , k 2 > k 3 . The vertical and horizontal length of the area shape is determined by the following formula.

<0ならば横長,D>0ならば縦長である。D=0の場合には,2つの隅円は連続した1つの円となる。隅円の円錐パラメータは,以下の手順によって求められる。 If D a <0, it is horizontally long, and if D a > 0, it is vertically long. When D a = 0, the two corner circles become one continuous circle. The cone parameter of the corner circle is obtained by the following procedure.

[D<=0の場合(横長または円形状)]
円錐OCt0の軸方向の単位ベクトルをut0≡(at0,bt0,ct0)とし,半頂角をαt0とする。これらの値は,以下の計算によって得られる。
[When D a ≦ = 0 (Landscape or Circular)]
The unit vector in the axial direction of the cone OC t0 is set to u t0 ≡ (a t0 , b t0 , c t0 ), and the half apex angle is set to α t0 . These values are obtained by the following calculation.

円錐OCt1の軸単位ベクトルut1≡(at1,bt1,ct1)および半頂角αt1は,以下の計算によって得られる。 The axial unit vector u t1 ≡ (a t1 , b t1 , c t1 ) and the half apex angle α t1 of the cone OC t1 are obtained by the following calculation.

[D>0の場合(縦長形状)]
円錐OCt2の軸単位ベクトルut2≡(at2,bt2,ct2)および半頂角αt2は,以下の計算によって得
られる。
[When D a > 0 (vertically long shape)]
The axial unit vector u t2 ≡ (a t2 , b t2 , c t2 ) and the half apex angle α t2 of the cone OC t2 are obtained by the following calculation.

円錐OCt3の軸単位ベクトルut3≡(at3,bt3,ct3)および半頂角αt3は,以下の計算によって得られる。 The axial unit vector u t3 ≡ (a t3 , b t3 , c t3 ) and the half apex angle α t3 of the cone OC t3 are obtained by the following calculation.

以上の円錐パラメータ計算式の導出方法については,後述する(「式の導出方法B」を参照)。また,判定式Dの導出方法については,後述する([式の導出方法D]を参照)。 The method for deriving the above cone parameter calculation formula will be described later (see “Formula derivation method B”). Further, a method of deriving a determination formula D a will be described later (see the derivation method D of Expression).

[5.可動領域に対する内外判定]
「5.1 円錐を使った内外判定」
矩形制限,小判型制限のいずれも,可動領域の形状は複数の円を組み合わせたものになっている。そのため,可動領域に対する内外判定は,円領域に対する内外判定の組み合わせとなる。円領域に対する内外判定は,以下のように円錐を使って実現できる。
[5. Inside / outside judgment for movable area]
"5.1 Internal / external judgment using a cone"
The shape of the movable area is a combination of multiple circles for both rectangular and oval restrictions. Therefore, the inside / outside determination for the movable region is a combination of the inside / outside determination for the circular region. The inside / outside judgment for a circular region can be realized using a cone as follows.

子骨の向き(x軸の向き)を表す単位ベクトルをv≡(x,y,z)とする。球面上の円Cが与えられ,円錐OCの軸単位ベクトルがu≡(a,b,c)で,半頂角がαであるとする。ベクトルvの円錐OCに対する内外判定は,以下のように実現できる。   A unit vector representing the orientation of the skeleton (direction of the x axis) is represented by v≡ (x, y, z). It is assumed that a circle C on the spherical surface is given, the axial unit vector of the cone OC is u≡ (a, b, c), and the half apex angle is α. The inside / outside determination with respect to the cone OC of the vector v can be realized as follows.

vとuのなす角がα以下であることが,vが円錐OCの内側にあることの必要十分条件である。この条件を式で表すと,次のようになる。   It is a necessary and sufficient condition for v to be inside the cone OC that the angle formed by v and u is less than α. This condition is expressed as follows.

角度範囲[0,π]においてcosは単調減少なので,次式のように変形できる。 Since cos monotonously decreases in the angle range [0, π], it can be transformed as follows.

判定式Dを次のように定義すると,Dの正負によって円錐OCに対する内外を判定できる。 When the determination formula D is defined as follows, the inside / outside of the cone OC can be determined by the sign of D.

D>=0であれば円錐内,そうでなければ円錐外である。 If D> = 0, it is inside the cone, otherwise it is outside the cone.

この判定式は,平面を使った判定と見ることもできる。法線ベクトルが(a,b,c)で原点からの距離がcosαの平面を,平面κとする。判定式Dの値は,点(x,y,z)の平面κからの符号付きの距離(u方向が正)を意味する。したがって,Dの正負による判定は,点(x,y,z)が平面κの表裏どちら側にあるかを判定していることになる。   This judgment formula can also be viewed as judgment using a plane. A plane whose normal vector is (a, b, c) and whose distance from the origin is cos α is defined as a plane κ. The value of the determination formula D means a signed distance (the u direction is positive) from the plane κ of the point (x, y, z). Therefore, the determination based on whether D is positive or negative means whether the point (x, y, z) is on the front or back side of the plane κ.

判定式Dの平面式としての解釈は,次のように理解できる。一般に,球面上の円は,球と「その円を含む平面」との交線として捉えられる。そのため,球面上の円領域に対する内外判定は,平面による判定を使って実現できる。式D=0が表す平面は,円Cを含む平面になっている。   The interpretation of the judgment formula D as a plane formula can be understood as follows. In general, a circle on a sphere is regarded as a line of intersection between a sphere and a “plane containing the circle”. Therefore, the inside / outside judgment for the circular area on the spherical surface can be realized by using the judgment by plane. The plane represented by the formula D = 0 is a plane including the circle C.

[5.2 矩形領域の内外判定]
図11のように,子骨の向きvが円C,C,C,C全てに対して内側にある場合のみ,矩形領域内となる。図18に示すように,以下の手順によって,領域に対する内外判定を行なう。
[5.2 Determination of inside / outside of rectangular area]
As shown in FIG. 11, the skeleton is within the rectangular region only when the orientation v is inside the circles C 0 , C 1 , C 2 , and C 3 . As shown in FIG. 18, the inside / outside determination for the region is performed according to the following procedure.

S1801において,円Cによる内外判定で,内側か否かの判定を行う。この判定が「いいえ」であれば,領域外と判定される(S1811)。この判定が「はい」であれば,S103に次に進む。 In S1801, and out the determination by the circle C 0, it performs one of determination whether the inside. If this determination is “No”, it is determined that the region is out (S1811). If this determination is “Yes”, the process proceeds to S103.

S1803において,円Cによる内外判定で,内側か否かの判定を行う。この判定が「いいえ」であれば,領域外と判定される(S1811)。この判定が「はい」であれば,S105に次に進む。 In S1803, and out the determination by the circle C 1, it performs one of determination whether the inside. If this determination is “No”, it is determined that the region is out (S1811). If this determination is “Yes”, the process proceeds to S105.

S1805において,円Cによる内外判定で,内側か否かの判定を行う。この判定が「いいえ」であれば,領域外と判定される(S1811)。この判定が「はい」であれば,S107に次に進む。 In S1805, and out the determination by the circle C 2, it performs one of determination whether the inside. If this determination is “No”, it is determined that the region is out (S1811). If this determination is “Yes”, the process proceeds to S107.

S1807において,円Cによる内外判定で,内側か否かの判定を行う。この判定が「いいえ」であれば,領域外と判定される(S1811)。この判定が「はい」であれば,領域内と判定される(S1809)。 In S1807, and out the determination by the circle C 3, it performs one of determination whether the inside. If this determination is “No”, it is determined that the region is out (S1811). If this determination is “Yes”, it is determined to be within the area (S1809).

[5.3 小判型領域の内外判定]
[5.3.1 補助円の作成]
小判型領域の内外判定には,領域形状を構成する円(C〜C,Ct0,〜Ct3)だけでなく,以下に述べる補助円を使う。
[5.3 Determination of inside / outside of oval area]
[5.3.1 Creating auxiliary circles]
For the inside / outside determination of the oval area, not only the circles (C 0 to C 3 , C t0 , to C t3 ) constituting the area shape, but also the following auxiliary circles are used.

[横長形状の場合]
領域形状が横長の場合,図12のように補助円を作る。円Ct0とCの接点をP02とし,円Ct0とCの接点をP03とする。点P,P02,P03の3点を通る円を,補助円Cs0とする。円Cs0の「内側」は,小判型領域の中央の側とする。
[Landscape]
When the area shape is horizontally long, an auxiliary circle is created as shown in FIG. The contact of the circle C t0 and C 2 and P 02, the contact point of the circle C t0 and C 3 and P 03. A circle passing through the three points P * , P 02 and P 03 is defined as an auxiliary circle C s0 . The “inside” of the circle C s0 is the center side of the oval area.

円錐OCs0の軸単位ベクトルを(as0,bs0,cs0)とし,半頂角をαs0とする。これらの値は,以下の計算によって得られる。 The axial unit vector of the cone OC s0 is (a s0 , b s0 , c s0 ), and the half apex angle is α s0 . These values are obtained by the following calculation.

同様に,円Ct1とCの接点をP12とし,円Ct1とCの接点をP13とする。点P,P12,P13の3点を通る補助円をCs1とする。円錐OCs1の軸単位ベクトル(as1,bs1,cs1)と半頂角αs1は,以下の計算によって得られる。 Similarly, the contacts of the circle C t1 and C 2 and P 12, the contact point of the circle C t1 and C 3 to P 13. An auxiliary circle passing through the three points P * , P 12 and P 13 is defined as C s1 . The axis unit vector (a s1 , b s1 , c s1 ) and the half apex angle α s1 of the cone OC s1 are obtained by the following calculation.

[縦長形状の場合]
領域形状が縦長の場合は,図13のように補助円を作る。円Ct2とCの接点をP20とし,円Ct2とCの接点をP21とする。点P,P20,P21の3点を通る補助円をCs2とする。円錐OCs2の軸単位ベクトル(as2,bs2,cs2)と半頂角αs2は,以下の計算によって得られる。
[For vertically long shape]
If the area shape is vertically long, an auxiliary circle is created as shown in FIG. The contact of the circle C t2 and C 0 and P 20, the contact point of the circle C t2 and C 1 to P 21. An auxiliary circle passing through the three points P * , P 20 and P 21 is defined as C s2 . The axis unit vector (a s2 , b s2 , c s2 ) and the half apex angle α s2 of the cone OC s2 are obtained by the following calculation.

円Ct3とCの接点をP30とし,円Ct3とCの接点をP31とする。点P,P30,P31の3点を通る補助円をCs3とする。円錐OCs3の軸単位ベクトル(as3,bs3,cs3)と半頂角αs3は,以下の計算によって得られる。 The contact of the circle C t3 and C 0 and P 30, the contact point of the circle C t3 and C 1 to P 31. An auxiliary circle passing through the three points P * , P 30 and P 31 is defined as C s3 . The axis unit vector (a s3 , b s3 , c s3 ) and the half apex angle α s3 of the cone OC s3 are obtained by the following calculation.

以上の円錐パラメータ計算式の導出方法については,後述する([式の導出方法C]を参照)。 A method for deriving the above cone parameter calculation formula will be described later (see [Formula derivation method C]).

[5.3.2 補助円を使った内外判定]
[横長形状の場合]
横長の小判型領域の内外判定には,Ct0,Ct1,C,C,Cs0,Cs1の6つの円を使う。図19に示すように以下の手順によって,領域に対する内外判定を行なう。
[5.3.2 Internal / external determination using an auxiliary circle]
[Landscape]
Six circles of C t0 , C t1 , C 2 , C 3 , C s0 , and C s1 are used for the inside / outside determination of the horizontally long oval area. As shown in FIG. 19, the inside / outside determination for a region is performed according to the following procedure.

S1901において,円Cによる内外判定で,内側か否かの判定を行う。この判定が「いいえ」であれば,領域外と判定される(S1913)。この判定が「はい」であれば,S1903に次に進む。 In S1901, and out the determination by the circle C 2, it performs one of determination whether the inside. If this determination is “No”, it is determined that the region is out (S1913). If this determination is “Yes”, the process proceeds to S1903.

S1903において,円Cによる内外判定で,内側か否かの判定を行う。この判定が「いいえ」であれば,領域外と判定される(S1913)。この判定が「はい」であれば,S1905に次に進む。 In S1903, and out the determination by the circle C 3, it performs one of determination whether the inside. If this determination is “No”, it is determined that the region is out (S1913). If this determination is “Yes”, the process proceeds to S1905.

S1905において,円Cs0,Cs1による内外判定で,ともに内側か否かの判定を行う。この判定が「はい」であれば,領域内と判定する(S1911)。この判定が「いいえ」であれば,S1907に進む。 In S1905, the inside / outside determination using the circles Cs0 and Cs1 determines whether both are inside. If this determination is “Yes”, it is determined that the area is present (S1911). If this determination is "No", the process proceeds to S1907.

S1907において,円Ct0による内外判定で,内側か否かの判定を行う。この判定が「はい」であれば,領域内と判定する(S1911)。この判定が「いいえ」であれば,S1909に進む。 In S1907, and out the determination by the circle C t0, it performs one of determination whether the inside. If this determination is “Yes”, it is determined that the area is present (S1911). If this determination is "No", the process proceeds to S1909.

S1909において,円Ct1による内外判定で,内側か否かの判定を行う。この判定が「はい」であれば,領域内と判定する(S1911)。この判定が「いいえ」であれば,領域外と判定する(S1913)。
[縦長形状の場合]
縦長の小判型領域の内外判定には,Ct2,Ct3,C,C,Cs2,Cs3の6つの円を使う。図20に示すように以下の手順によって,領域に対する内外判定を行なう。
In S1909, and out the determination by the circle C t1, it performs one of determination whether the inside. If this determination is “Yes”, it is determined that the area is present (S1911). If this determination is “No”, it is determined that the area is out (S1913).
[For vertically long shape]
Six circles of C t2 , C t3 , C 0 , C 1 , C s2 , and C s3 are used for the inside / outside determination of the vertically long oval area. As shown in FIG. 20, the inside / outside determination for the region is performed according to the following procedure.

S2001において,円Cによる内外判定で,内側か否かの判定を行う。この判定が「いいえ」であれば,領域外と判定される(S2013)。この判定が「はい」であれば,S2003に次に進む。 In S2001, and out the determination by the circle C 0, it performs one of determination whether the inside. If this determination is “No”, it is determined that the region is out of the area (S2013). If this determination is “Yes”, the process proceeds to S2003.

S2003において,円Cによる内外判定で,内側か否かの判定を行う。この判定が「いいえ」であれば,領域外と判定される(S2013)。この判定が「はい」であれば,S2005に次に進む。 In S2003, and out the determination by the circle C 1, it performs one of determination whether the inside. If this determination is “No”, it is determined that the region is out of the area (S2013). If this determination is “Yes”, the process proceeds to S2005.

S2005において,円Cs2,Cs3による内外判定で,ともに内側か否かの判定を行う。この判定が「はい」であれば,領域内と判定する(S2011)。この判定が「いいえ」であれば,S2007に進む。 In S2005, the inside / outside determination by the circles C s2 and C s3 determines whether both are inside. If this determination is “Yes”, it is determined that the area is inside (S2011). If this determination is “No”, the process proceeds to S2007.

S2007において,円Ct2による内外判定で,内側か否かの判定を行う。この判定が「はい」であれば,領域内と判定する(S2011)。この判定が「いいえ」であれば,S2009に進む。 In S2007, and out the determination by the circle C t2, it performs one of determination whether the inside. If this determination is “Yes”, it is determined that the area is inside (S2011). If this determination is “No”, the process proceeds to S2009.

S2009において,円Ct3による内外判定で,内側か否かの判定を行う。この判定が「はい」であれば,領域内と判定する(S2011)。この判定が「いいえ」であれば,領域外と判定する(S2013)。 In S2009, and out the determination by the circle C t3, it performs one of determination whether the inside. If this determination is “Yes”, it is determined that the area is inside (S2011). If this determination is “No”, it is determined that the area is out (S2013).

[6.捻り角]
[6.1 曲げと捻りの順序]
子骨の捻り角をλとし,捻りを含めたモノポーラ球面座標をλ,μ,νで表す。曲げと捻りの順序は,次の2とおりが考えられる。
・曲げた後に,子骨のx軸回りに捻る。
・x軸回りに捻り,その後に曲げる。
前者を「元曲げ」,後者を「元捻り」と呼ぶことにする。
[6. Twist angle]
[6.1 Order of bending and twisting]
The torsion angle of the skeleton is λ, and the monopolar spherical coordinates including the torsion are expressed by λ, μ, and ν. The order of bending and twisting can be considered as follows.
・ After bending, twist around the x-axis of the skeleton.
-Twist around the x axis and then bend.
The former is called “original bending” and the latter is called “original twist”.

[6.2 捻り角の定義]
捻り角を扱うには,捻り角λ=0の状態を定義する必要がある。まず,元曲げ方式について説明する。関節の曲げ状態は,球面上の点P(子骨のx軸と単位球面との交点)の位置で表すことができる。これに対して捻りは,軸OP回りの回転として表される。子骨のy軸,z軸がグリッドの向き(それぞれ+ν方向,−μ方向)と合っている状態を,捻り角が0であると定義する。
[6.2 Definition of torsion angle]
In order to handle the twist angle, it is necessary to define a state where the twist angle λ = 0. First, the original bending method will be described. The bending state of the joint can be represented by the position of a point P on the spherical surface (intersection of the x-axis of the skeleton and the unit spherical surface). On the other hand, twist is expressed as rotation around the axis OP. A state in which the y-axis and z-axis of the skeleton are aligned with the grid directions (+ ν direction and −μ direction, respectively) is defined as a twist angle of zero.

元捻り方式の場合は,捻りによってグリッド自体がx軸(親骨のx軸)回りにλだけ回転する。捻りの後に曲げを掛けても,子骨のy軸,z軸は,回転後のグリッドの向き(それぞれ+ν方向,−μ方向)と常に一致するものとする。   In the case of the original twist method, the grid itself is rotated by λ around the x axis (the x axis of the parent bone) by twisting. Even if bending is applied after twisting, the y-axis and z-axis of the skeleton will always coincide with the orientation of the rotated grid (+ ν direction and −μ direction, respectively).

[6.3マトリクスとモノポーラ球面座標の関係]
子骨の向きを表すマトリクスを,次式のようにMとする。マトリクスの要素の並びは,列ベクトルに対して左からマトリクスを掛ける方式とする(本明細書でMはマトリクスを表す)。
[Relationship between 6.3 matrix and monopolar spherical coordinates]
Let M be a matrix that represents the orientation of the skeleton. The matrix elements are arranged in such a way that the matrix is multiplied from the left to the column vector (M represents a matrix in this specification).

マトリクスM,Mを次のように定義する。ただし,M,N,Tは式(6),(7)のとおりとする。 The matrices M b and M t are defined as follows. However, M, N, and T are as shown in equations (6) and (7).

は曲げ,Mは捻りを表すりマトリクスである。曲げだけを作用させたときの,子骨の向きを表す単位ベクトルを,v≡(x,y,z)とする。vはMの第1列(最も左の列)になるので,次式のようになる。 M b is a bend, and M t is a matrix representing torsion. Let v b ≡ (x b , y b , z b ) be a unit vector that represents the orientation of the skeleton when only bending is applied. Since v b is the first column (the leftmost column) of M b , the following equation is obtained.

からT,M,Nを求める式は次のようになる。 v b determined T, M, and N from the equation becomes:.

x≒−1の場合に別の式を使うのは,桁落ちによる精度の低下を避けるためである。 The reason why another formula is used in the case of x≈−1 is to avoid a decrease in accuracy due to a digit loss.

[6.3.1 元曲げ方式]
Mからλ,μ,νを求める手順は,以下のようになる。m00≒−1の場合に別の式を使うのは,桁落ちによる精度の低下を避けるためである。
[6.3.1 Original bending method]
The procedure for obtaining λ, μ, ν from M is as follows. The reason why another formula is used in the case of m 00 ≈−1 is to avoid a decrease in accuracy due to a digit loss.

逆に,λ,μ,νからMを求めるには,式(64),(65)を使ってM,Mを求め,これを次式に代入する。 Conversely, to obtain M from λ, μ, and ν, M b and M t are obtained using equations (64) and (65), and these are substituted into the following equations.

Mからλ,vを求めるには,式(70)および次式を使う。 In order to obtain λ and v b from M, Equation (70) and the following equation are used.

逆に,λ,vからMを求めるには,式(67),(68),(69)を使ってT,M,Nを求め,これを式(64)に代入し,式(65),(74)を使う。 Conversely, to obtain M from λ and v b , T, M, and N are obtained using equations (67), (68), and (69), and these are substituted into equation (64) to obtain equation (65 ), (74).

[6.3.2 元捻り方式]
Mからλ,μ,νを求める手順は,以下のようになる。
[6.3.2 Original twist method]
The procedure for obtaining λ, μ, ν from M is as follows.

逆に,λ,μ,νからMを求めるには,式(64),(65)を使ってM,Mを求め,これを次式に代入する。 Conversely, to obtain M from λ, μ, and ν, M b and M t are obtained using equations (64) and (65), and these are substituted into the following equations.

Mからλ,vを求めるには,式(76)および次式を使う。 In order to obtain λ and v b from M, Equation (76) and the following equation are used.

逆に,λ,vからMを求めるには,式(67),(68),(69)を使ってT,M,Nを求め,これを式(64)に代入し,式(65),(80)を使う。 Conversely, to obtain M from λ and v b , T, M, and N are obtained using equations (67), (68), and (69), and these are substituted into equation (64) to obtain equation (65 ), (80).

計算式の導出方法については,後述する([式の導出方法E]を参照)。   The method for deriving the calculation formula will be described later (see [Formula derivation method E]).

[6.4 四元数とモノポーラ球面座標の関係]
子骨の向きを表す四元数(クォータニオン)を,次式のようにqとする。
[6.4 Relationship between quaternion and monopolar spherical coordinates]
A quaternion representing the orientation of the skeleton is assumed to be q as shown in the following equation.

四元数q,qを次のように定義する。 The quaternions q b and q t are defined as follows.

は曲げ,qは捻りを表す四元数である。 q b is a quaternion representing bending and q t is twisting.

[6.4.1 元曲げ方式]
qからλ,μ,νを求める式は,以下のようになる。
[6.4.1 Original bending method]
The equation for obtaining λ, μ, ν from q is as follows.

逆に,λ,μ,νからqを求めるには,式(83),(84)を使ってq,qを求め,これを次式に代入する。 Conversely, to obtain q from λ, μ, and ν, q b and q t are obtained using equations (83) and (84), and these are substituted into the following equations.

qからλ,vを求めるには,式(85)および次式を使う。 In order to obtain λ and v b from q, equation (85) and the following equation are used.

逆に,λ,vからqを求めるには,式(67),(68),(69)を使ってT,M,Nを求め,これを式(83)に代入し,式(84),(88)を使う。 Conversely, in order to obtain q from λ and v b , T, M, and N are obtained using equations (67), (68), and (69), and these are substituted into equation (83). ), (88).

[6.4.2 元捻り方式]
qからλ,μ,νを求める式は,以下のようになる。
[6.4.2 Original twist method]
The equation for obtaining λ, μ, ν from q is as follows.

逆に,λ,μ,νからqを求めるには,式(83),(84)を使ってq,qを求め,これを次式に代入する。 Conversely, to obtain q from λ, μ, and ν, q b and q t are obtained using equations (83) and (84), and these are substituted into the following equations.

qからλ,vを求めるには,式(85)および次式を使う。 In order to obtain λ and v b from q, equation (85) and the following equation are used.

逆に,λ,vからqを求めるには,式(67),(68),(69)を使ってT,M,Nを求め,これを式(83)に代入し,式(84),(93)を使う。 Conversely, in order to obtain q from λ and v b , T, M, and N are obtained using equations (67), (68), and (69), and these are substituted into equation (83). ), (93).

[7.可動領域外の場合の修正方法]
関節の曲げが可動領域外となった場合に,これを可動領域内に修正する方法について説明する。関節の曲げ状態は,単位球面上の点Pの位置で表される。Pの位置を可動領域内(境界を含む)に修正した点をPとする。
[7. Correction method outside the movable area]
A description will be given of a method for correcting the bending of the joint outside the movable region into the movable region. The bending state of the joint is represented by the position of the point P on the unit sphere. Let P m be the point where the position of P is corrected within the movable region (including the boundary).

球面上の領域Aと,領域A外の球面上の点Pとが与えられたとき,領域境界上の点のうち,Pからの距離(球面上での距離)が最小となる点を,「領域Aに対するPの最近点」と呼ぶことにする。可動領域と点Pのみが与えられた場合,可動領域に対するPの最近点をPとするのが最良であると考えられる。そこで,最近点を用いた修正方法について述べる。 Given a region A on the sphere and a point P on the sphere outside the region A, the point on the region boundary that has the smallest distance from P (the distance on the sphere) is It will be referred to as “P's closest point for region A”. If only a movable region and a point P are given, it is considered best to set P m as the closest point of P with respect to the movable region. Then, the correction method using the latest point is described.

[7.1 円領域に対する最近点]
矩形制限,小判型制限のいずれも,可動領域の形状は複数の円を組み合わせたものになっている。そのため,可動領域に対する最近点を得るには,円領域に対する最近点を求める必要がある。
[7.1 Nearest point to circle area]
The shape of the movable area is a combination of multiple circles for both rectangular and oval restrictions. Therefore, in order to obtain the nearest point for the movable region, it is necessary to obtain the nearest point for the circular region.

図14のように,子骨の向き(x軸の向き)を表す単位ベクトルをv≡(x,y,z)とし,点Pの座標を(x,y,z)とする。球面上の円Cが与えられ,円錐OCの軸単位ベクトルがu≡(a,b,c)で,半頂角がαであるとする。円領域Cに対するPの最近点をPとし,ベクトルOPをwとする。wは次式により求められる。 As shown in FIG. 14, the unit vector representing the orientation of the skeleton (direction of the x axis) is v≡ (x, y, z), and the coordinates of the point P are (x, y, z). It is assumed that a circle C on the spherical surface is given, the axial unit vector of the cone OC is u≡ (a, b, c), and the half apex angle is α. Let P n be the closest point of P with respect to the circle region C, and let w be the vector OP n . w is obtained by the following equation.

ただしβはvとuのなす角で,0<β<=πである。sinβ>=0なので,sinβ,tanβは次式により得られる。 However, β is an angle formed by v and u, and 0 <β <= π. Since sin β> = 0, sin β and tan β are obtained by the following equations.

sinβ=0となるのはv=−uのときで,その場合は円C上の全ての点が最近点となる。 sin β = 0 when v = −u, in which case all the points on the circle C are the closest points.

[7.2円領域までの距離]
単位球面上において,点Pが円領域Cの外にあるとする。Pから円Cまでの距離(単位球面上での距離)をγとする。前述(7.1節)の記号を使うと,γ=∠POP=β−αなので,次式のようになる。
[Distance to 7.2 circle area]
It is assumed that the point P is outside the circular area C on the unit spherical surface. Let γ be the distance from P to circle C (distance on the unit sphere). Using the symbols described above (Section 7.1), γ = ∠POP n = β−α, so the following equation is obtained.

0<γ<πなので,cosγはγに対して単調減少である。したがって,円領域に対する距離の大小判定には,γの替わりにcosγを使うことができる(ただし大小関係は逆になる)。 Since 0 <γ <π, cos γ is monotonically decreasing with respect to γ. Therefore, cos γ can be used in place of γ for determining the distance to the circular region (however, the magnitude relationship is reversed).

[7.3 矩形領域に対する最近点]
矩形領域に対する点Pの最近点Pは,図21に示すように,以下の手順によって得られる。Pは矩形領域の外にあるものとする。また,図15のように,矩形領域の角の4頂点を,それぞれP,P,P,Pとする。
[7.3 Nearest point for rectangular area]
Nearest point P m of the point P with respect to the rectangular region, as shown in FIG. 21, is obtained by the following procedure. Let P be outside the rectangular area. Further, as shown in FIG. 15, the four vertices of the corners of the rectangular area are denoted as P a , P b , P c , and P d , respectively.

S2101において,円CによるPの内外判定で,内側か否かの判定を行う。判定が「はい」であればS2107に進む。判定が「いいえ」であれば,S2103に進む。 In S2101, in and out determination of P with a circle C 0, it performs one of determination whether the inside. If the determination is “Yes”, the process proceeds to S2107. If the determination is “No”, the process proceeds to S2103.

S2103において,円Cに対するPの最近点を求め,PとしS2105に進む。 In S2103, obtains the nearest point P with respect to the circle C 0, the process proceeds to S2105 and P n.

S2105において,円C,CによるPの内外判定で,ともに内側であるか否かの判定を行う。判定が「はい」であれば,PをPとして(S2127),終了する。判定が「いいえ」であれば,S2113に進む。 In S2105, whether or not both are inside is determined by the inside / outside determination of Pn using the circles C 2 and C 3 . If the determination is “yes”, P n is set to P m (S2127), and the process ends. If the determination is “No”, the process proceeds to S2113.

S2107において,円CによるPの内外判定で,内側か否かの判定を行う。判定が「はい」であれば,S2113に進む。判定が「いいえ」であれば,S2109に進む。 In S2107, in and out determination of P with a circle C 1, it performs one of determination whether the inside. If the determination is “Yes”, the process proceeds to S2113. If the determination is “No”, the process proceeds to S2109.

S2109において,円Cに対するPの最近点を求め,PとしS2111に進む。 In S2109, obtains the nearest point P with respect to the circle C 1, the process proceeds to S2111 and P n.

S2111において,円C,CによるPの内外判定で,ともに内側であるか否かの判定を行う。判定が「はい」であれば,PをPとして(S2127)終了する。判定が「いいえ」であれば,S3113に進む。 In S2111, it is determined whether or not both are inside by the inside / outside determination of Pn by the circles C 2 and C 3 . If the determination is “Yes”, P n is set to P m (S2127), and the process ends. If the determination is “No”, the process proceeds to S3113.

S2113において,円CによるPの内外判定で,内側か否かの判定を行う。判定が「はい」であれば,S2119に進む。判定が「いいえ」であればS2115に進む。 In S2113, in and out determination of P with a circle C 2, it performs one of determination whether the inside. If the determination is “Yes”, the process proceeds to S2119. If the determination is “No”, the process proceeds to S2115.

S2115において,円Cに対するPの最近点を求め,PとしS2117に進む。 In S2115, obtains the nearest point P with respect to the circle C 2, the flow proceeds to S2117 and P n.

S2117において,円C,CによるPの内外判定で,ともに内側であるか否かの判定を行う。判定が「はい」であれば,PをPとして(S2127)終了する。判定が「いいえ」であればS2125に進む。 In S2117, it is determined whether or not both are inside by the inside / outside determination of P n by the circles C 0 and C 1 . If the determination is “Yes”, P n is set to P m (S2127), and the process ends. If the determination is “No”, the process proceeds to S2125.

S2119において,Pが円Cの外であることが確定する。S2121に進む。 In S2119, it is determined P is outside the circle C 3. The process proceeds to S2121.

S2121において,円Cに対するPの最近点を求め,PとしS2123に進む。 In S2121, obtains the nearest point P with respect to the circle C 3, the process proceeds to S2123 and P n.

S2123において,円C,CによるPの内外判定で,ともに内側であるか否かの判定を行う。判定が「はい」であれば,PをPとして(S2127)終了する。判定が「いいえ」であれば,S2125に進む。 In S2123, it is determined whether or not both are inside by the inside / outside determination of P n by the circles C 0 and C 1 . If the determination is “Yes”, P n is set to P m (S2127), and the process ends. If the determination is “No”, the process proceeds to S2125.

S2125において,P,P,P,Pの4点のうちPから最も近い(球面上での距離が最小)のものをPとし,終了する。 In S2125, among the four points P a , P b , P c , and P d , the one closest to P (the minimum distance on the spherical surface) is set as P m , and the process ends.

[7.4小判型領域に対する最近点]
[横長形状の場合]
横長の小判型領域に対する点Pの最近点Pは,図22に示すように,以下の手順によって得られる。Pは小判型領域の外にあるものとする。
[7.4 Recent points for the oval area]
[Landscape]
Nearest point P m of the point P with respect to a horizontally long oval region, as shown in FIG. 22, is obtained by the following procedure. Let P be outside the oval area.

S2201において,円CによるPの内外判定で,内側か否かの判定を行う。判定が「はい」であれば,S2207に進む。判定が「いいえ」であればS2203に進む。 In S2201, in and out determination of P with a circle C 2, it performs one of determination whether the inside. If the determination is “Yes”, the process proceeds to S2207. If the determination is “No”, the process proceeds to S2203.

S2203において,円Cに対するPの最近点を求めPとしS2205に進む。 In S2203, the process proceeds to S2205 and P n seek the nearest point P with respect to the circle C 2.

S2205において,円Cs0,Cs1によるPの内外判定で,ともに内側であるか否かの判定を行う。判定が「はい」であれば,PをPとして(S2215)として終了する。判定が「いいえ」であればS2213に進む。 In S2205, in and out determination of P n with a circle C s0, C s1, it performs both of determining whether it is inside. If the determination is “Yes”, P n is set as P m (S2215), and the process ends. If the determination is “No”, the process proceeds to S2213.

S2207において,円CによるPの内外判定で,内側か否かの判定を行う。判定が「はい」であればS2213に進む。判定が「いいえ」であればS2209に進む。 In S2207, in and out determination of P with a circle C 3, it performs one of determination whether the inside. If the determination is “Yes”, the process proceeds to S2213. If the determination is “No”, the process proceeds to S2209.

S2209において,円Cに対するPの最近点を求めPとしS2211に進む。 In S2209, the process proceeds to S2211 and P n seek the nearest point P with respect to the circle C 3.

S2211において,円Cs0,Cs1によるPの内外判定で,ともに内側であるか否かの判定を行う。判定が「はい」であれば,PをPとして(S2215)終了する。判定が「いいえ」であればS2213に進む。 In S2211, it is determined whether or not both are inside by the inside / outside determination of P n by the circles C s0 and C s1 . If the determination is “Yes”, P n is set to P m (S2215) and the process ends. If the determination is “No”, the process proceeds to S2213.

S2213において,円Ct0,Ct1のうち,Pからの距離が小さい方に対するPの最近点をPとし,終了する。 In S2213, the closest point of P with respect to the one of the circles C t0 and C t1 having the smaller distance from P is set as P m , and the process ends.

[縦長形状の場合]
縦長の小判型領域に対する点Pの最近点は,図23に示すように,以下の手順によって得られる。Pは小判型領域の外にあるものとする。
[For vertically long shape]
As shown in FIG. 23, the closest point of the point P with respect to the vertically long oval area is obtained by the following procedure. Let P be outside the oval area.

S2301において,円CによるPの内外判定で,内側か否かの判定を行う。判定が「はい」であればS2307に進む。判定が「いいえ」であればS2303に進む。 In S2301, in and out determination of P with a circle C 0, it performs one of determination whether the inside. If the determination is “Yes”, the process proceeds to S2307. If the determination is “No”, the process proceeds to S2303.

S2303において,円Cに対するPの最近点を求めPとし,S2205に進む。 In S2303, the P n seek the nearest point P with respect to the circle C 0, the process proceeds to S2205.

S2305において,円Cs2,Cs3によるPの内外判定で,ともに内側であるか否かの判定を行う。判定が「はい」であればPをPとして(S2315)終了する。判定が「いいえ」であれば,S2313に進む。 In S2305, it is determined whether or not both are inside by the inside / outside determination of Pn by the circles Cs2 and Cs3 . If the determination is “Yes”, P n is set to P m (S2315), and the process ends. If the determination is “No”, the process proceeds to S2313.

S2307において,円CによるPの内外判定で,内側か否かの判定を行う。判定が「はい」であれば,S2313に進む。判定が「いいえ」であればS2309に進む。 In S2307, in and out determination of P with a circle C 1, it performs one of determination whether the inside. If the determination is “Yes”, the process proceeds to S2313. If the determination is “No”, the process proceeds to S2309.

S2309において,円Cに対するPの最近点を求めPとする。 In S2309, the P n seek the nearest point P with respect to the circle C 1.

S2311において,円Cs2,Cs3によるPの内外判定で,ともに内側であるか否かの判定を行う。判定が「はい」であれば,PをPとして(S2315)終了する。判定が「いいえ」であればS2313に進む。 In S2311, in and out determination of P n with a circle C s2, C s3, it performs both of determining whether it is inside. If the determination is “Yes”, P n is set to P m (S2315) and the process ends. If the determination is “No”, the process proceeds to S2313.

S2313において,円Ct2,Ct3のうち,Pからの距離が小さい方に対するPの最近点をPとし,終了する。 In S2313, among the circle C t2, C t3, the nearest point P and P m for better distance from P is small, it ends.

[7.5 曲げと捻りの修正方法]
関節の回転(曲げ捻り)の状態がマトリクス(または四元数)で与えられ,これを角度制限範囲内に修正する手順は,図29に示すように以下のようになる。
[7.5 How to correct bending and twisting]
The state of joint rotation (bending and twisting) is given by a matrix (or quaternion), and the procedure for correcting this within the angle limit range is as follows, as shown in FIG.

S2901で,マトリクス(または四元数)からλ,vを求める(6.3節,6.4節参照)。 In S2901, λ and v b are obtained from the matrix (or quaternion) (see sections 6.3 and 6.4).

S2903で,vが可動領域内かどうかを調べる(5.2節,5.3節参照)。可動領域外であればvを修正する(7.3節,7.4節参照)(S2905)。 In S2903, v b investigate whether the movable region (Section 5.2, see section 5.3). If outside the movable region to correct v b (Section 7.3, see Section 7.4) (S2905).

S2907で,λに上下限が設定されていれば,この範囲内にあるかどうかを調べる。この範囲外であればλが上下限の範囲内になるようλを修正する(S2909)。   In S2907, if an upper and lower limit is set for λ, it is checked whether the value is within this range. If it is out of this range, λ is corrected so that λ is within the upper and lower limits (S2909).

S2911で,λ,vからマトリクス(または四元数)を求める(6.3節,6.4節参照)。 In S2911, a matrix (or quaternion) is obtained from λ and v b (see Sections 6.3 and 6.4).

[式の導出方法A]方向ベクトルとモノポーラ球面座標との関係式の導出
子骨の向きを表す単位ベクトルを(x,y,z)とし,これをモノポーラ球面座標で表したものを(μ,ν)とする。モノポーラ球面座標系の構成方法より,座標(x,y,z)の点は,次の2平面上にある。
[Expression Derivation Method A] Derivation of Relational Expression between Direction Vector and Monopolar Spherical Coordinates The unit vector representing the orientation of the skeleton is (x, y, z), and this is expressed in monopolar spherical coordinates (μ, v). According to the construction method of the monopolar spherical coordinate system, the point of coordinates (x, y, z) is on the following two planes.

式(100)は,xy平面を直線l回りに角度μ/2だけ回転させた平面で,式(101)は,xz平面を直線l回りに角度ν/2だけ回転させた平面である。μ,νの取り得る値の範囲は,−π<μ<π,−π<ν<πである。また,(x,y,z)は単位ベクトルなので, Equation (100) is a plan where the xy plane is rotated in a straight line l y around an angle mu / 2, equation (101) is a plane xz-plane is rotated in a straight line l z around an angle [nu / 2 . The range of values that μ and ν can take are −π <μ <π and −π <ν <π. Since (x, y, z) is a unit vector,

である。以上の3つの式を連立させて解く。 It is. Solve the above three equations simultaneously.

cos(ν/2)≠0なので,式(101)より次式が得られる。ただし,N≡tan(ν/2)である。   Since cos (ν / 2) ≠ 0, the following equation is obtained from equation (101). However, N≡tan (ν / 2).

an(μ/2)である。 an (μ / 2).

式(103),(104)を式(102)に代入すると,xの2次方程式が得られる。これを解いて,解のうちx=−1でないほうを選ぶと,次式のようにxが得られる。ただし,T≡2/(M+N+1)である。 Substituting equations (103) and (104) into equation (102) yields a quadratic equation for x. Solving this, and selecting the solution that is not x = −1, x is obtained as in the following equation. However, T≡2 / (M 2 + N 2 +1).

これを式(103),(104)に代入すると,次式のようにy,zが得られる。 Substituting this into equations (103) and (104) yields y and z as in the following equations.

[式の導出方法B]小判型領域隅円の円錐パラメータの導出
円C,C,Cに接する円Ct0を求める。円錐OCt0の軸方向単位ベクトルを未知ベクトルw≡(x,y,z)とし,半頂角を未知数τとする(本明細書において,wはベクトルを表す)。
[Formula derivation method B] Derivation of conical parameters of the oval-shaped area corner circle A circle C t0 in contact with the circles C 0 , C 2 , C 3 is obtained. An axial unit vector of the cone OC t0 is an unknown vector w≡ (x, y, z), and a half apex angle is an unknown τ (in this specification, w represents a vector).

円錐OCの軸単位ベクトルはu≡(a,b,c),半頂角はαである。円Ct0は円Cの内側(可動領域側)に接するので,uとwのなす角はα−τとなる。したがって, The axis unit vector of the cone OC 0 is u 0 ≡ (a 0 , b 0 , c 0 ), and the half apex angle is α 0 . Since the circle C t0 is in contact with the inner side (movable region side) of the circle C 0, the angle formed by u 0 and w is α 0 −τ. Therefore,

となる。cosα=−a,sinα=−c,b=0を代入すると It becomes. Substituting cosα 0 = −a 0 , sinα 0 = −c 0 , b 0 = 0

となり,k≡a/cとおくと,次式が得られる。 If k 0 ≡a 0 / c 0 , the following equation is obtained.

同様に,円錐OCとOCt0に対してcosα=−a,sinα=b,c=0を利用し,k≡a/bとおくと,次式が得られる。 Similarly, if cos α 2 = −a 2 , sin α 2 = b 2 , and c 2 = 0 are used for the cones OC 2 and OC t0 , and k 2 ≡a 2 / b 2 , the following equation is obtained. .

同様に,円錐OCとOCt0に対してcosα=−a,sinα=−b,c=0を利用し,k≡a/bとおくと,次式が得られる。 Similarly, using cos α 3 = −a 3 , sin α 3 = −b 3 , c 3 = 0 for the cones OC 3 and OC t0 , and setting k 3 ≡a 3 / b 3 , the following equation is obtained. It is done.

式(109),(110)より次式が得られる。 From the equations (109) and (110), the following equation is obtained.

式(108),(112)より次式が得られる。 From the equations (108) and (112), the following equation is obtained.

式(111),(113),(112)より From formulas (111), (113), and (112)

となり,x+y+z=1を利用して式を整理し,右辺をkとおくと,次式が得られる。 If x 2 + y 2 + z 2 = 1 is used to organize the equations and the right side is set to k 4 , the following equation is obtained.

式(112),(114)より From equations (112) and (114)

となる。sinτ>0,k>kなので,式(112)よりx+cosτ>0である。よって,上式(115)より次式が得られる。 It becomes. Since sin τ> 0 and k 2 > k 3 , x + cos τ> 0 from the equation (112). Therefore, the following equation is obtained from the above equation (115).

式(114),(116)より,次式が得られる。 From the equations (114) and (116), the following equation is obtained.

ただし,lは次式のとおりである。 However, l 4 is as follows.

得られたcosτを使って,式(114)より,次式のようにxが得られる。 Using the obtained cos τ, x is obtained from the equation (114) as in the following equation.

得られたx,cosτを使って,式(111),(113)より,次式のようにy,zが得られる。 Using the obtained x and cos τ, y and z can be obtained from the equations (111) and (113) as follows.

以上により,隅円の円錐OCt0が得られる。 Thus, the corner cone OC t0 is obtained.

残りの3つの隅円Ct1,Ct2,Ct3についても,同様の方法で円錐パラメータを求めることができる。 For the remaining three corner circles C t1 , C t2 , C t3 , the cone parameter can be obtained by the same method.

[式の導出方法C]補助円の円錐パラメータの導出
図16のように,球面上の3つの円C,C,Ct0は互いに接しており,円C,C,の接点は極P,円C,Ct0の接点はP02,円C,Ct0の接点はP03である。3点P,P02,P03を通る円をCs0とする。円錐OCs0の軸方向単位ベクトルを未知ベクトルw≡(x,y,z)とし,半頂角を未知数τとする。
[Expression Derivation Method C] Derivation of Conical Parameters of Auxiliary Circle As shown in FIG. 16, the three circles C 2 , C 3 , C t0 on the spherical surface are in contact with each other, and the contact points of the circles C 2 , C 3 are The contact point between the pole P * and the circles C 2 and C t0 is P 02 , and the contact point between the circles C 3 and C t0 is P 03 . A circle passing through the three points P * , P 02 and P 03 is defined as C s0 . An axial unit vector of the cone OC s0 is an unknown vector w≡ (x, y, z), and a half apex angle is an unknown τ.

座標−u≡(−a,−b,−c)の点をOとする。同様に,座標−u,ut0の点をそれぞれO,Ot0とする。O,O,Ot0は,それぞれ円C,C,Ct0の球面上での中心となる。 A point with coordinates −u 2 ≡ (−a 2 , −b 2 , −c 2 ) is defined as O 2 . Similarly, the points at coordinates −u 3 and u t0 are O 3 and O t0 , respectively. O 2 , O 3 , and O t0 are the centers on the spherical surfaces of the circles C 2 , C 3 , and C t0 , respectively.

図17のように,球面3角形Ot0を作る。点P,P02,P03は,それぞれ辺O,辺Ot0,辺Ot0の上にある。座標−w≡(−x,−y,−z)の点をOs0とする。Os0は,図のように球面上における円Cs0の中心となる。 As shown in FIG. 17, a spherical triangle O 2 O 3 O t0 is created. The points P * , P 02 and P 03 are on the side O 2 O 3 , the side O 2 O t0 and the side O 3 O t0 , respectively. Coordinates -w≡ (-x, -y, -z) points to O s0. O s0 is the center of a circle C s0 on the spherical surface as shown in the figure.

円Cs0は,3点P,P02,P03を通る円であるが,それと同時に球面3角形Ot0の内接円でもある。 The circle C s0 is a circle that passes through the three points P * , P 02 , and P 03 , and at the same time is an inscribed circle of the spherical triangle O 2 O 3 O t0 .

上述のように内接円であることは以下の点から明らかである。
・3辺相等により,△Os0≡△Os003,ゆえに∠Os0=∠Os003である。同様に,∠Os003t0=∠Os002t0,∠Os002=∠Os0となる。
・また,∠Os003=π−∠Os003t0,∠Os002t0=π−∠Os002,∠Os0=π−∠Os0である。
・∠Os003=ρとして,これを以上の関係に当てはめると,ρ=π−ρとなりρ=π/2が得られる。したがって,Os0⊥O,Os002⊥Ot0,Os003⊥Ot0である。
・よって,円Cs0は球面3角形Ot0に接する。
As described above, the inscribed circle is apparent from the following points.
· The three sides phases like, △ O s0 P * O 3 ≡ △ O s0 P 03 O 3, thus a ∠O s0 P * O 3 = ∠O s0 P 03 O 3. Similarly, ∠O s0 P 03 O t0 = ∠O s0 P 02 O t0, the ∠O s0 P 02 O 2 = ∠O s0 P * O 2.
· In addition, ∠O s0 P 03 O 3 = π-∠O s0 P 03 O t0, ∠O s0 P 02 O t0 = π-∠O s0 P 02 O 2, ∠O s0 P * O 2 = π-∠ O is a s0 P * O 3.
When ∠O s0 P 03 O 3 = ρ and applying this to the above relationship, ρ = π−ρ is obtained, and ρ = π / 2 is obtained. Therefore, it is O s0 P * ⊥O 2 O 3 , O s0 P 02 ⊥O 2 O t0, O s0 P 03 ⊥O 3 O t0.
Therefore, the circle C s0 is in contact with the spherical triangle O 2 O 3 O t0 .

したがって,円錐OCs0は,平面OOと平面OOt0に接する。そのため,ベクトル−wと平面OOがなす角は,ベクトル−wと平面OOt0がなす角に等しい(ともにπ−τである)。 Therefore, the conical OC s0 is in contact with the plane OO 2 O 3 and the plane OO 2 O t0. Therefore, the angle formed by the vector −w and the plane OO 2 O 3 is equal to the angle formed by the vector −w and the plane OO 2 O t0 (both are π−τ).

平面OOはxy平面である。よって,ベクトル−wとz軸のなす角は,ベクトル−wと平面OOt0の法線がなす角に等しい(ともにτ−π/2である)。これを式で表すと次のようになる。ただしe≡(0,0,1)である(本明細書において,eはベクトルを表す)。 The plane OO 2 O 3 is an xy plane. Therefore, the angle formed by the vector −w and the z-axis is equal to the angle formed by the normal line of the vector −w and the plane OO 2 O t0 (both are τ−π / 2). This is expressed as follows. However, e z ≡ (0, 0, 1) (in the present specification, e represents a vector).

平面OOs0は,点P≡(−1,0,0)を通り,平面OOに垂直である。したがって,ベクトルw≡(x,y,z)はxz平面内にあるので The plane OO s0 P * passes through the point P * ≡ (−1, 0, 0) and is perpendicular to the plane OO 2 O 3 . Therefore, the vector w≡ (x, y, z) is in the xz plane.

となり,w=(x,0,z)である。また,u=(a,b,0),ut0=(at0,bt0,ct0)なので,式(122)は次のようになる。 And w = (x, 0, z). Since u 2 = (a 2 , b 2 , 0) and u t0 = (a t0 , b t0 , c t0 ), Expression (122) is as follows.

一方,|u×ut0|は次のように表される。 On the other hand, | u 2 × u t0 | is expressed as follows.

さらに,k≡a/bなので,式(124)は次のようになる。 Furthermore, since k 2 ≡a 2 / b 2 , the equation (124) is as follows.

また,sinαt0>0,k>kなので,式(21)より次式が得られる。 Since sin α t0 > 0 and k 2 > k 3 , the following equation is obtained from equation (21).

式(21),(126)を式(125)に代入して整理すると,次式が得られる。この式をlとする。 Substituting equations (21) and (126) into equation (125) and rearranging results in the following equation. Let this equation be l 0 .

|w|=1からx+z=1である。z<0なので,x,zは次式のようになる。 | W | = 1 to x 2 + z 2 = 1. Since z <0, x and z are as follows.

円錐面Cs0はPを通るので,以下のようにしてcosτが得られる。ただしe≡(1,0,0)である。 Since the conical surface C s0 passes through P *, cosτ is obtained as follows. However, e x ≡ (1, 0, 0).

残りの3つの補助円Cs1,Cs2,Cs3についても,同様の方法で円錐パラメータを求めることができる。 For the remaining three auxiliary circles C s1 , C s2 , and C s3 , the cone parameter can be obtained by the same method.

[式の導出方法D]小判型形状の縦長・横長判定式の導出
小判型形状の形状を変化させて,横長から縦長へと切り替わる瞬間を考える。この状態では,円Ct0とCt1が一致するので,ut0=ut1かつαt0=αt1である。
・ut0=ut1であればbt0=bt1であり,式(19),(25)よりl=lとなり,更に式(17),(23)よりk=kとなる。
・逆に,k=kであれば,式(17),(23)よりl=lとなり,ut0=ut1かつαt0=αt1となる。
[Formula Derivation Method D] Derivation of Oval Shape Vertical / Horizontal Judgment Formula Consider the moment when the shape of the oval shape is changed to switch from landscape to portrait. In this state, since the circles C t0 and C t1 coincide, u t0 = u t1 and α t0 = α t1 .
If u t0 = u t1 , then b t0 = b t1 , l 4 = l 5 from equations (19) and (25), and k 4 = k 5 from equations (17) and (23). .
On the contrary, if k 4 = k 5 , l 4 = l 5 from equations (17) and (23), u t0 = u t1 and α t0 = α t1 .

よって,円Ct0とCt1が一致することの必要十分条件はk=kである。これに式(16),(22)を代入し整理すると,次式が得られる。この式を判定式Dとする。 Therefore, the necessary and sufficient condition for the circles C t0 and C t1 to coincide is k 4 = k 5 . Substituting the formulas (16) and (22) into this, the following formula is obtained. This equation is a determination formula D a.

式(13)よりk,kはそれぞれμ,μに対して単調増加である。そのため,可動領域を横に広げると(μ減少,またはμ増加),Dの値は減少する。 From equation (13), k 0 and k 1 monotonically increase with respect to μ 0 and μ 1 , respectively. Therefore, when extending the movable range in the horizontal (mu 0 reduction, or mu 1 increases), the value of D a is reduced.

同様に,式(14)よりk,kはそれぞれν,νに対して単調減少である。そのため,可動領域を縦に広げると(ν減少,またはν増加),Dの値は増加する。 Similarly, k 2 and k 3 are monotonically decreasing with respect to ν 0 and ν 1 from the equation (14). Therefore, when extending the movable range in the vertical ([nu 0 reduction, or [nu 1 increases), the value of D a is increased.

したがって,Dの値を使って,図24に示すように,次のように小判型領域形状の縦長・横長を判定できる。 Thus, using the value of D a, as shown in FIG. 24, can determine portrait-landscape oval area shape as follows.

S2401において,D<0が成り立てば,横長であると判断される(S2405)。 If D a <0 holds in S2401, it is determined to be horizontally long (S2405).

S2403において,D>0が成り立てば,縦長であると判断される(S2407)。 If D a > 0 holds in S2403, it is determined to be vertically long (S2407).

S2403において,「いいえ」であれば,連続した1つの円であると判断される(S2409)。   If “NO” in S2403, it is determined to be one continuous circle (S2409).

[式の導出方法E]マトリクスとモノポーラ球面座標の関係式の導出
捻りが0の状態における子骨のy軸およびz軸の方向の単位ベクトルを,それぞれv,vとする。v,vは,それぞれモノポーラグリッドの+ν方向および−μ方向である。
子骨の向きを表す単位ベクトルをv≡(x,y,z)とする。vの偏微分を次のようにvμ,vνとする。
[Expression Derivation Method E] Derivation of the relational expression between the matrix and the monopolar spherical coordinate The unit vectors in the y-axis and z-axis directions of the skeleton in the state where the torsion is 0 are respectively v y and v z . v y and v z are the + ν direction and −μ direction of the monopolar grid, respectively.
A unit vector representing the orientation of the skeleton is assumed to be v≡ (x, y, z). Let v μ and v ν be partial derivatives of v as follows.

,vは,それぞれvν,−vμを正規化したものなので,次式で表される。 v y, v z are each v [nu, since the -v mu things normalized, is expressed by the following equation.

,vを求めるにあたり,まず下記のようにM,Nの偏微分を計算しておく。 In obtaining v y and v z , first, partial differentials of M and N are calculated as follows.

これらを利用してT≡2/(M+N+1)の偏微分を求めると,次のようになる。 Using these, the partial differentiation of T≡2 / (M 2 + N 2 +1) is obtained as follows.

これらを利用してx=T−1,y=TN,z=−TMの偏微分を求めると,それぞれ次のようになる。 Using these, partial differentials of x = T-1, y = TN, and z = -TM are obtained as follows.

T(M+N+1)=2を利用して計算すると,次式が得られる。 When calculating using T (M 2 + N 2 +1) = 2, the following equation is obtained.

同様に次式が得られる。 Similarly, the following equation is obtained.

よって,v,vは次式のようになる。 Therefore, v y and v z are as follows.

子骨の向きを表すマトリクスを次のようにMとする。 Let M be the matrix that represents the orientation of the skeleton.

曲げおよび捻りを表すマトリクスを,それぞれM,Mとする。マトリクスの要素の並びは,列ベクトルに対して左からマトリクスを掛ける方式とする。 Matrixes representing bending and twisting are denoted as M b and M t , respectively. The matrix elements are arranged by multiplying the column vector from the left by the matrix.

曲げマトリクスMの要素は,式(3),(4),(5),(150),(151)より次のようになる。 Elements of the bending matrix M b has the formula (3), (4), (5), (150), as follows from (151).

捻りマトリクスMの要素は次式のようになる。ただし,Sλ≡sinλ,Cλ≡cosλである。 The elements of the twist matrix M t are as follows: However, S λ ≡sin λ and C λ ≡cos λ .

[元曲げ方式の場合]
曲げの後に捻りを掛けるので,Mは次のようになる。この式を使えばλ,μ,νからMを求めることができる。
[For the original bending method]
Since a twist is applied after bending, M is as follows. If this equation is used, M can be obtained from λ, μ, and ν.

逆にMからλ,μ,νを求める手順は,以下のようになる。まずTを求めると, Conversely, the procedure for obtaining λ, μ, ν from M is as follows. First, T is calculated.

となるが,この式はm00≒−1の場合に桁落ちにより精度が悪くなる。そのような場合には, However, the accuracy of this equation deteriorates due to a digit loss when m 00 ≈-1. In such cases,

を利用して Using

によりTを求める。μ,νは次式により得られる。 T is obtained by μ and ν are obtained by the following equations.

次に,λを求めるに次式を利用する。 Next, the following equation is used to obtain λ.

すると, Then

となり,次式が得られる。 The following equation is obtained.

よって,次式のようにλが得られる。 Therefore, λ is obtained as in the following equation.

[元捻り方式の場合]
捻りの後に曲げを掛けるので,Mは次のようになる。この式を使えばλ,μ,νからMを求めることができる。
[In the case of the original twist method]
Since bending is applied after twisting, M is as follows. If this equation is used, M can be obtained from λ, μ, and ν.

Mからλ,μ,νを求める式は,元曲げ方式の場合と同様の方法により得られる。 Expressions for obtaining λ, μ, and ν from M are obtained by the same method as in the original bending method.

[本発明の実施例の処理および構成例]
図25は,本願発明の実施例の装置構成を示す図である。コンピュータ2500には,キーボード2505,マウス2506,ペン2508を含むタブレット2507,ディスプレイ2501が接続されている。ディスプレイ2501上には,キャンバス2502が表示され,キャンバス2502上に図形が描画されている(2503)。
[Processing and Configuration Example of the Embodiment of the Present Invention]
FIG. 25 is a diagram showing a device configuration of the embodiment of the present invention. To the computer 2500, a keyboard 2505, a mouse 2506, a tablet 2507 including a pen 2508, and a display 2501 are connected. A canvas 2502 is displayed on the display 2501, and a figure is drawn on the canvas 2502 (2503).

図26は,本願発明の実施例のハードウエア構成を示す図である。CPU2601にバス2607が接続されている。バス2607には,メモリ2602,種々の入力装置2603,ディスプレイ等の表示装置2604及びプリンタ2605が接続されている。   FIG. 26 is a diagram showing a hardware configuration of the embodiment of the present invention. A bus 2607 is connected to the CPU 2601. A memory 2602, various input devices 2603, a display device 2604 such as a display, and a printer 2605 are connected to the bus 2607.

図27に本願発明の実施例を示す。図27を参照すると,まず,モノポーラ球面座標系によって,子骨の角度範囲を構成する境界円を設定する(S2701)。具体的には,例えばμ,νの上下限,形状(矩形か小判型か)等を指定する。そして,子骨の角度が,角度範囲の中(すなわち内側)にあるか否かを判定する(S2703)。子骨の角度が角度範囲の外にあると判定された場合には,上述の最近点を求める手法を用いて,子骨の角度を修正する(S2705)。そして,骨格モデルを画面に表示する。なお,ロボット等の実空間の対象物の制御を行う場合は,所望の角度に子骨を向ける制御を行う(S2707)。   FIG. 27 shows an embodiment of the present invention. Referring to FIG. 27, first, a boundary circle constituting the angle range of the skeleton is set by the monopolar spherical coordinate system (S2701). Specifically, for example, upper and lower limits of μ, ν, shape (rectangular or oval type), etc. are designated. Then, it is determined whether or not the angle of the skeleton is within the angle range (that is, inside) (S2703). When it is determined that the angle of the skeleton is out of the angle range, the angle of the skeleton is corrected using the above-described method for obtaining the nearest point (S2705). Then, the skeleton model is displayed on the screen. Note that when controlling an object in real space such as a robot, control is performed to direct the skeleton to a desired angle (S2707).

図28は,子骨の制御を行う制御装置の実施例を示す。まず,モノポーラ球面座標系によって,子骨の角度範囲を構成する境界円を設定する(2801)。そして,子骨の角度が,角度範囲の中(すなわち内側)にあるか否かを判定する(2803)。子骨の角度が角度範囲の外にあると判定された場合には,上述の最近点を求める手法を用いて,子骨の角度を修正する(2805)。そして,骨格モデルを画面に表示する(2807)。なお,ロボット等の実空間の対象物の制御を行う場合は,所望の角度に子骨を向ける制御を行う(2808)。また,各種の数値を設定するための入力手段(2806)を設けてもよい。   FIG. 28 shows an embodiment of a control device for controlling the skeleton. First, a boundary circle constituting the angle range of the skeleton is set by the monopolar spherical coordinate system (2801). Then, it is determined whether or not the angle of the skeleton is within the angle range (that is, inside) (2803). If it is determined that the angle of the skeleton is outside the angle range, the angle of the skeleton is corrected using the above-described method for obtaining the nearest point (2805). Then, the skeleton model is displayed on the screen (2807). Note that when controlling an object in real space such as a robot, control is performed to direct the skeleton to a desired angle (2808). Further, input means (2806) for setting various numerical values may be provided.

本願明細書では,親骨に対する子骨の角度の制御を例示して,説明を行った。なお,本願発明は,3つ以上の骨が関節によって連結された骨格モデルに拡張して適用できることは言うまでもない。   In the specification of the present application, the control of the angle of the phalanx relative to the parent bone has been described as an example. Needless to say, the present invention can be applied to a skeleton model in which three or more bones are connected by joints.

以上,本願発明について説明したが,本願発明の範囲は,本願明細書における上記実施例に限定されるものではない。当業者は,本願明細書の説明から,本願発明の変形態様を理解することができる。そして,これらの変形態様及びその均等物も,特許請求の範囲に係る技術的範囲に属することは言うまでもない。   Although the present invention has been described above, the scope of the present invention is not limited to the above-described embodiments in the present specification. Those skilled in the art can understand variations of the present invention from the description of the present specification. Needless to say, these modifications and equivalents also belong to the technical scope according to the claims.

また,請求項に定義された各々のステップは,記載された順序通りに実行される必要はなく,矛盾の生じない範囲で,請求項に定義されたステップは,順番を変更して実行できる。そして,請求項のステップの順番を変更したものも,当該請求項の技術的範囲に包含されることは言うまでもない。   Further, the steps defined in the claims do not have to be executed in the order described, and the steps defined in the claims can be executed in a different order as long as no contradiction arises. Needless to say, changes in the order of the steps of the claims are also included in the technical scope of the claims.

モノポーラ球面座標系の極
v 子骨の向きを表す単位ベクトル
最近点
P * Unit vector P m nearest point of pole v of monopolar spherical coordinate system

Claims (7)

親骨と子骨とが関節によって連結された骨格モデルにおいて,前記親骨に対する前記子骨の前記関節における角度範囲を制限することによって前記子骨の動作を制御するための方法であって,
前記関節を中心とする球の球面上に,前記子骨の角度範囲の境界を定義する角度範囲境界円を設定する角度範囲境界円設定ステップであって,前記角度範囲境界円は前記関節を中心とする球面と親骨または親骨の延長線との交点1を通るものであり,前記子骨又は前記子骨の延長線と前記球面の交点2の位置が前記角度範囲境界円によって二分される前記球面の何れに存在すべきかによって前記子骨の角度範囲が定められ,前記球の中心と前記角度範囲境界円とで形成される円錐の軸単位ベクトルu及び前記円錐の半頂角α,または,前記軸単位ベクトルu及び前記半頂角αを導くことができる数値をメモリに格納することによって前記角度範囲境界円を設定する,角度範囲境界円設定ステップと,
前記メモリに格納された数値を読み出すことによって前記軸単位ベクトルuと前記半頂角αとを得て,前記子骨の向きを表す単位ベクトルvを用いて,u・v−cosαの値を検査値として算出し,前記検査値に基づいて,前記子骨の角度が前記角度範囲の中にあるか否かを判定する,角度範囲判定ステップと,
を有する,方法。
In a skeletal model in which a parent bone and a skeleton are connected by a joint, a method for controlling the movement of the skeleton by limiting an angle range in the joint of the skeleton relative to the parent bone,
An angular range boundary circle setting step for setting an angular range boundary circle defining a boundary of the angular range of the skeleton on a spherical surface of a sphere centered on the joint, the angular range boundary circle being centered on the joint; The spherical surface, which passes through the intersection point 1 of the spherical surface and the parent bone or the extension line of the parent bone, and the position of the intersection point 2 of the spherical surface and the extension line of the child bone and the spherical surface is bisected by the angular range boundary circle The angle range of the skeleton is determined depending on which of the cones, and the cone unit vector u formed by the center of the sphere and the angle range boundary circle and the half apex angle α of the cone, or the An angular range boundary circle setting step for setting the angular range boundary circle by storing in a memory numerical values from which an axis unit vector u and the half apex angle α can be derived;
The axis unit vector u and the half apex angle α are obtained by reading the numerical values stored in the memory, and the value of u · v-cos α is inspected using the unit vector v representing the orientation of the skeleton. Calculating an angle range, and determining whether or not the angle of the skeleton is within the angle range based on the inspection value; and
Having a method.
前記関節を原点とし,前記交点1から前記原点に向かう方向をx軸の正方向とする,三次元直交座標系(x,y,z)から,
μ=2tan−1(−z/(x+1))
ν=2tan−1(y/(x+1))
の関係を有する,モノポーラ球面座標系(μ,ν)を用いて,
前記角度範囲境界円が,少なくともμ=μ及びν=νのうち何れか一方を満たす,
(ここにおいて,μ及びνは定数である),
請求項1記載の方法。
From the three-dimensional orthogonal coordinate system (x, y, z), where the joint is the origin, and the direction from the intersection 1 to the origin is the positive direction of the x axis,
μ = 2 tan −1 (−z / (x + 1))
ν = 2 tan −1 (y / (x + 1))
Using a monopolar spherical coordinate system (μ, ν) having the relationship
The angular range boundary circle satisfies at least one of μ = μ e and ν = ν e ,
(Where μ e and ν e are constants),
The method of claim 1.
前記交点2の前記モノポーラ球面座標を(μ,ν)とし,μの下限及び上限をそれぞれμ,μとし,νの下限及び上限をそれぞれν,νとした場合に,前記角度範囲が,
μ<μ<μ及びν<ν<ν
を満たすよう前記角度範囲境界円を設定する,
請求項2記載の方法。
When the monopolar spherical coordinates of the intersection 2 are (μ, ν), the lower and upper limits of μ are μ 0 and μ 1, and the lower and upper limits of ν are ν 0 and ν 1 , respectively, the angular range But,
μ 0 <μ <μ 1 and ν 0 <ν <ν 1
Set the angle range boundary circle to satisfy
The method of claim 2.
前記角度範囲境界円が,前記交点1を通らない補助角度範囲境界円を更に用いる,
請求項1乃至3のうちいずれか1項記載の方法。
The angle range boundary circle further uses an auxiliary angle range boundary circle that does not pass through the intersection point 1;
4. A method according to any one of claims 1 to 3.
前記角度範囲判定ステップにおいて,
前記子骨の角度が前記角度範囲の中に無いと判定された場合,
前記交点2から前記角度範囲の中にあることを満たす球面上の点まで前記球面上に沿って測定した距離が最短となる前記球面上の点に,前記交点2を移動させることにより,前記子骨の角度を修正する,角度修正ステップ,
を更に有する請求項1乃至4のうちいずれか1項記載の方法。
In the angle range determination step,
If it is determined that the angle of the bone is not within the angular range,
By moving the intersection point 2 from the intersection point 2 to a point on the sphere that satisfies the angle range, the point measured on the sphere has the shortest distance on the sphere. An angle correction step to correct the angle of the bone,
The method according to any one of claims 1 to 4, further comprising:
請求項1乃至5のうちいずれか1項記載の方法をコンピュータに実行させるための命令を含む,プログラム。   A program comprising instructions for causing a computer to execute the method according to any one of claims 1 to 5. 親骨と子骨とが関節によって連結された骨格モデルにおいて,前記親骨に対する前記子骨の前記関節における角度範囲を制限することによって前記子骨の動作を制御するための装置であって,
前記関節を中心とする球の球面上に,前記子骨の角度範囲の境界を定義する角度範囲境界円を設定する角度範囲境界円設定手段であって,前記角度範囲境界円は前記関節を中心とする球面と親骨または親骨の延長線との交点1を通るものであり,前記子骨又は前記子骨の延長線と前記球面の交点2の位置が前記角度範囲境界円によって二分される前記球面の何れに存在すべきかによって前記子骨の角度範囲が定められ,前記球の中心と前記角度範囲境界円とで形成される円錐の軸単位ベクトルu及び前記円錐の半頂角α,または,前記軸単位ベクトルu及び前記半頂角αを導くことができる数値をメモリに格納することによって前記角度範囲境界円を設定する,角度範囲境界円設定手段と,
前記メモリに格納された数値を読み出すことによって前記軸単位ベクトルuと前記半頂角αとを得て,前記子骨の向きを表す単位ベクトルvを用いて,u・v−cosαの値を検査値として算出し,前記検査値に基づいて,前記子骨の角度が前記角度範囲の中にあるか否かを判定する,角度範囲判定手段と,
を有する,装置。
In a skeletal model in which a master bone and a skeleton are connected by a joint, an apparatus for controlling the operation of the skeleton by limiting an angle range of the joint to the parent bone in the joint,
Angle range boundary circle setting means for setting an angle range boundary circle defining a boundary of the angle range of the skeleton on a spherical surface of a sphere centered on the joint, wherein the angle range boundary circle is centered on the joint The spherical surface, which passes through the intersection point 1 of the spherical surface and the parent bone or the extension line of the parent bone, and the position of the intersection point 2 of the spherical surface and the extension line of the child bone and the spherical surface is bisected by the angular range boundary circle The angle range of the skeleton is determined depending on which of the cones, and the cone unit vector u formed by the center of the sphere and the angle range boundary circle and the half apex angle α of the cone, or the An angle range boundary circle setting means for setting the angle range boundary circle by storing in a memory a numerical value capable of deriving the axis unit vector u and the half apex angle α;
The axis unit vector u and the half apex angle α are obtained by reading the numerical values stored in the memory, and the value of u · v-cos α is inspected using the unit vector v representing the orientation of the skeleton. An angle range determination means for calculating as a value and determining whether the angle of the skeleton is within the angle range based on the inspection value;
Having a device.
JP2011024449A 2011-02-07 2011-02-07 Skeletal angle control method, apparatus, and program Expired - Fee Related JP5486524B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011024449A JP5486524B2 (en) 2011-02-07 2011-02-07 Skeletal angle control method, apparatus, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011024449A JP5486524B2 (en) 2011-02-07 2011-02-07 Skeletal angle control method, apparatus, and program

Publications (2)

Publication Number Publication Date
JP2012164162A JP2012164162A (en) 2012-08-30
JP5486524B2 true JP5486524B2 (en) 2014-05-07

Family

ID=46843488

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011024449A Expired - Fee Related JP5486524B2 (en) 2011-02-07 2011-02-07 Skeletal angle control method, apparatus, and program

Country Status (1)

Country Link
JP (1) JP5486524B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5490080B2 (en) 2011-12-06 2014-05-14 株式会社セルシス Skeleton model attitude control method and program
JP7475618B1 (en) 2023-12-04 2024-04-30 株式会社セルシス Method and program for determining posture of skeletal model

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4162798B2 (en) * 1999-04-20 2008-10-08 株式会社バンダイナムコゲームス Method for deriving continuous rotation angle from continuous rotation matrix, and storage medium storing program related to the method
JP2009070340A (en) * 2007-09-18 2009-04-02 Namco Bandai Games Inc Skeleton operation control system, program, and information storage medium
JP2010170279A (en) * 2009-01-21 2010-08-05 Namco Bandai Games Inc Skeleton motion control system, program, and information storage medium

Also Published As

Publication number Publication date
JP2012164162A (en) 2012-08-30

Similar Documents

Publication Publication Date Title
JP6137155B2 (en) Interference avoidance method, control device, and program
CN109676606B (en) Method for calculating arm angle range of mechanical arm, mechanical arm and robot
Pappalardo et al. Use of independent volume parameters in the development of new large displacement ANCF triangular plate/shell elements
US9311745B2 (en) Systems and methods of analysis of granular elements
US7499050B2 (en) Method and system for mesh-free analysis of general three-dimensional shell structures
Hyatt et al. Developable mechanisms on right conical surfaces
US20120232848A1 (en) Method for creating finite element model of rubber composite
CN104866722A (en) Inverse kinematics solution method for seven-shaft industrial robot arm
KR20150073859A (en) Cad-based initial surface geometry correction
Gonçalves et al. A benchmark study on accuracy-controlled distance calculation between superellipsoid and superovoid contact geometries
Liu Lindquist-Wheeler formulation of lattice universes
CN104933225A (en) Method for realizing computational fluid dynamics large-scale real-time simulation
JP5486524B2 (en) Skeletal angle control method, apparatus, and program
Schwarz The overlapping grid technique for the time accurate simulation of rotorcraft flows
US8990057B1 (en) Representing geometry of a system in a modeling environment
CN113119102B (en) Humanoid robot modeling method and device based on floating-base flywheel inverted pendulum
Xiong et al. Geometric isotropy indices for workspace analysis of parallel manipulators
JP2017131990A (en) Interference avoidance method
US20220083702A1 (en) Techniques for designing structures using torsion-deformable spatial beam elements
Chen et al. Kernel modeling for molecular surfaces using a uniform solution
Pereira Generalized finite element methods for three-dimensional crack growth simulations
Willis et al. A quadratic basis function, quadratic geometry, high order panel method
CN118171547B (en) Automatic grid generation method, device, equipment and storage medium
Misztal Deformable simplicial complexes
Anitescu Modeling rigid multibody dynamics with contact and friction

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130301

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140129

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140221

R150 Certificate of patent or registration of utility model

Ref document number: 5486524

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees