"複数の骨が1つ以上の関節によって連結されている骨格モデルにおいて,捻り軸に対するエフェクタの捻りの角度を制御する方法であって,前記エフェクタは,前記関節又は前記骨の端点であり,三次元空間における位置及び向きのうち少なくともいずれか一方を所望の状態に制御する対象であり,前記方法は,前記骨格モデルにおける1つ以上の固定点の各々の位置を特定する,固定点特定ステップと,前記エフェクタの位置と前記1つ以上の固定点の各々の位置とに基づき,前記捻り軸を決定する,捻り軸決定ステップと,前記捻り軸に略垂直な平面上の第1の閉経路に沿って,前記エフェクタを動かす,第1閉経路移動ステップと,を有する方法。前記第1閉経路移動ステップにおける前記エフェクタの捻り角度を第1の捻り角度として取得する,第1捻り角度取得ステップと,前記第1の閉経路の面積と,前記第1の捻り角度とに基づき,所望の捻り角度を得るために必要な前記平面上の第2の閉経路を決定する,第2閉経路決定ステップと,前記第2の閉経路に沿って,前記エフェクタを動かす,第2閉経路移動ステップと,を更に有する,請求項1記載の方法。前記エフェクタ及び前記1つ以上の固定点のうち少なくとも1つは,オペレータの指示に基づき決定される,請求項1乃至2のうちいずれか1項記載の方法。前記第1の閉経路及び前記第2の閉経路のうち少なくとも一つの閉経路を前記エフェクタが動く際の前記骨格モデルの挙動は,表示画面に表示せず,前記エフェクタが動いた後の時点における骨格モデルを前記表示画面に表示させる,請求項1乃至3のうちいずれか1項記載の方法。二つ以上の前記固定点がある場合において,前記固定点の重心位置とエフェクタとを結ぶ直線を,前記捻り軸とする,請求項1乃至4のうちいずれか1項記載の方法。二つの前記固定点がある場合において,前記二つの固定点を結ぶ直線を,前記捻り軸とする,請求項1乃至4のうちいずれか1項記載の方法。二つ以上の前記固定点がある場合において,前記固定点の各々の位置に質点を配置し,前記エフェクタの回りの慣性モーメントが最小となる回転軸を,前記捻り軸とする,請求項1乃至4のうちいずれか1項記載の方法。前記請求項1乃至7のうちいずれか1項記載の方法をコンピュータに実行させる命令を含む,ソフトウエア。複数の骨が1つ以上の関節によって連結されている骨格モデルにおいて,捻り軸に対するエフェクタの捻りの角度を制御する装置であって,前記エフェクタは,前記関節又は前記骨の端点であり,三次元空間における位置及び向きのうち少なくともいずれか一方を所望の状態に制御する対象であり,前記装置は,前記骨格モデルにおける1つ以上の固定点の各々の位置を特定する,固定点特定部と,前記エフェクタの位置と前記1つ以上の固定点の各々の位置とに基づき,前記捻り軸を決定する,捻り軸決定部と,前記捻り軸に略垂直な平面上の第1の閉経路に沿って,前記エフェクタを動かす,第1閉経路移動部と,を有する装置。前記第1閉経路移動部における前記エフェクタの捻り角度を第1の捻り角度として取得する,第1捻り角度取得部と,前記第1の閉経路の面積と,前記第1の捻り角度とに基づき,所望の捻り角度を得るために必要な前記平面の第2の閉経路を決定する,第2閉経路決定部と,前記第2の閉経路に沿って,前記エフェクタを動かす,第2閉経路移動部と,を更に有する,請求項9記載の装置。上述のCCD法は,関節を中心とした骨の曲げ操作を行うことができるが,骨の捻りの操作を意図した通りに行うことが困難である。また,CCD法以外にも,捻りの操作を意図した通りに行うことが困難であったり,複雑であったりする手法が存在する。本発明は,このような上述の課題を解決することを目的とする。本発明は,複数の骨が1つ以上の関節によって連結されている骨格モデルにおいて,捻り軸に対するエフェクタの捻りの角度を制御する方法であって,前記エフェクタは,前記関節又は前記骨の端点であり,三次元空間における位置及び向きのうち少なくともいずれか一方を所望の状態に制御する対象であり,前記方法は,前記骨格モデルにおける1つ以上の固定点の各々の位置を特定する,固定点特定ステップと,前記エフェクタの位置と前記1つ以上の固定点の各々の位置とに基づき,前記捻り軸を決定する,捻り軸決定ステップと,前記捻り軸に略垂直な平面上の第1の閉経路に沿って,前記エフェクタを動かす,第1閉経路移動ステップと,を有する方法を提供する。また,本発明は,前記第1閉経路移動ステップにおける前記エフェクタの捻り角度を第1の捻り角度として取得する,第1捻り角度取得ステップと,前記第1の閉経路の面積と,前記第1の捻り角度とに基づき,所望の捻り角度を得るために必要な前記平面上の第2の閉経路を決定する,第2閉経路決定ステップと,前記第2の閉経路に沿って,前記エフェクタを動かす,第2閉経路移動ステップと,を更に有してもよい。また,本発明は,前記エフェクタ及び前記1つ以上の固定点のうち少なくとも1つは,オペレータの指示に基づき決定してもよい。また,本発明は,前記第1の閉経路及び前記第2の閉経路のうち少なくとも一つの閉経路を前記エフェクタが動く際の前記骨格モデルの挙動は,表示画面に表示せず,前記エフェクタが動いた後の時点における骨格モデルを前記表示画面に表示させてもよい。また,本発明は,二つ以上の前記固定点がある場合において,前記固定点の重心位置とエフェクタとを結ぶ直線を,前記捻り軸としてもよい。更に,本発明は,二つの前記固定点がある場合において,前記二つの固定点を結ぶ直線を,前記捻り軸としてもよい。また,二つ以上の前記固定点がある場合において,前記固定点の各々の位置に質点を配置し,前記エフェクタの回りの慣性モーメントが最小となる回転軸を,前記捻り軸としてもよい。さらに,本発明は,上記構成を実行するプログラム,及び,これを実現する装置であってもよい。骨格モデルにおいて,所望の捻りを,容易に制御することができる。球面過剰の概念を用いて,本発明の基本的原理を以下に説明する。図3に示すように,二次元空間の平面上の三角形A1B1C1の辺に沿って,矢印v1を有する図形を移動させる。まず、図3aのように点A1から点B1を経由させ,更に図3bのように,点C1を経由させ,点A1に戻す操作を行う。この場合,平面上を移動する矢印v1の向きは常に一定方向を向いている。したがって,矢印v1の向きは,上記の操作を行った前後で変化しない。図4は,球面上に描かれた球面三角形A2B2C2を用いた場合を示している。図4aのように矢印v2を有する図形を点A2から点B2を経由させ,更に図4bのように,点C2を経由させ,点A2に戻す操作を行う。この場合,球面三角形を移動する矢印v2の向きは,上記の操作を行った前後で,v2からv3に変化している。図4の現象は,球面過剰に起因するものとして,知られている。球面過剰とは,球面多角形の内角の和から,この多角形と同じ辺数を有する平面多角形の内角の和を引いた差のことで,常に正の値であることから,このように呼ばれている。球面過剰の値は,その球面の半径を1とした場合,その球面多角形の面積に等しい。また,これは球の中心から見た球面多角形の立体角に等しい。図5に示すように,関節を中心点とする半径1の球面Sを作り,子骨のx軸と球面Sとの交点をPとする。関節の曲げ状態は,図5のように,点Pの位置で表すことができる。捻りの状態は,y軸あるいはz軸の向きで知ることができる。図6に示すように関節を曲げて捻りは加えずに子骨の向きを変え,P1→P2→P3→P1と動かして元の位置に戻すと,球面過剰の効果によりy軸z軸の向きが変わり,捻りが発生する。一般に,IKで動かす位置向きを所望の状態にする関節点をエフェクタと呼ぶ。図7に示すように,骨格モデルの固定点の位置をPrとし,エフェクタの初期位置をP0とする。エフェクタをP0→P1→P2→P3→P4→P1→P0とループするように動かす。このとき,エフェクタとPrとの距離が変わらないようにする即ち,PrP0=PrP1=PrP2=PrP3=PrP4。球面過剰の効果により捻りが発生する。図8のように,分岐した骨格モデルが複数の固定点を持つ場合は,複数の固定点Pr1,Pr2,...の重心Prmを求め,図6のPrの替わりにこのPrmを使う。または,骨格モデルのうちの1本の骨例えば最も根元の骨,あるいは最も末端の骨等の方向を捻り軸の方向としてもよい。[曲がり分布の影響]複数の骨が連結した骨格モデルを上述の手法によって捻る場合,関節の曲がりの分布が結果に影響する点を以下に説明する。エフェクタを図9のようにループ移動させたとする。骨格モデルが図10aのように根元のみで曲がった場合と,図10cのように先端部のみで曲がった場合とを比較する。図10aでは根元の関節のみに捻りが生じ,図10cでは先端の関節のみに捻りが生じる。図10aの根元の関節の曲げ角と,図10cの先端の関節の曲げ角とを比べると,後者のほうが大きい。そのため,生じる捻り角は,図10cのほうが大きくなる。また,図10bは,その中間を示しており,曲げが一つの関節に集中せず,全部の関節が同程度に曲がっている。このような,複数の関節の曲がり具合が異なる現象は,骨格モデルを動かすIKアルゴリズムとして何れのアルゴリズムを採用するかに影響される場合がある。あるいは,各々の関節の曲がり具合に異なる抵抗値を設定している場合にも発生する。このように,関節の曲がりの分布によって,生じる捻りの分布だけでなく,捻りの総量にも違いが出る。そのため,均等な捻りが欲しい場合には,曲がりの分布が均等になるようにIKを調整する必要がある。逆に,曲がりを不均等にすることで,敢えて捻りを不均等にすることもできる。また,所望の捻り角を生じさせるには,以下に述べるような手法を使ってもよい。[定量的操作]上述の手法では,生じる捻りの総量は曲がりの分布によって変わる。そのため,所望の捻り角を生じさせるような移動ループを予め演算により求めることは困難であるあるいは,計算量が膨大となる。そこで以下のように,微小予動作を使って定量的操作を実現する。1微小な移動ループに沿ってエフェクタを動かし,生じた捻り量を調べ,ループ面積と捻り角の比を求める。2この比の値を使って,比例計算により,所望の捻り角を生じさせるループ面積を求める。3得られたループ面積の移動ループを作り,このループに沿ってエフェクタを動かす。なお,上記2におけるループ面積は,球面上の面積であるが,近似的にループを含む平面の面積に置き換えて処理をすることも可能である。なお,ループを含む平面を用いる場合には,捻りの軸に略垂直の平面を用いることにより,捻り軸回りの捻りが発生しやすくなる。また,上記1の微少な移動ループによるエフェクタの捻れをオペレータに表示させ,その後,オペレータの指示に基づいて,同様の微少操作を連続して実行する。オペレータが,所望の捻り量に達したと判断した時点で,オペレータからの指示を受け付け,微少量の操作を停止させる。この一連の操作によって,所望の捻り量を得ることができる。[複数固定点に対する捻り軸の決定]複数個定点に対する捻りの手法については,既に概略を述べたが,以下に,更に詳しく述べる。図8のように,2個の固定点Pr1,Pr2が,エフェクタから見てほぼ同方向にある場合は,前述のようにPr1,Pr2の重心位置Prmを使うことで良好な挙動が得られる。しかし,図11aのように,エフェクタPeから見てPr1,Pr2が互いにほぼ反対方向にある場合は,図11bのようにPr1,Pr2を結ぶ直線を捻り軸の方向とし,この捻り軸に垂直な平面内でエフェクタを動かすほうが自然な操作感になる。固定点の個数が2個の場合には,同方向反対方向の判定は比較的容易である。エフェクタからPr1,Pr2それぞれに向かうベクトルの間の角度を使えばよい。固定点が3個以上になる場合には,オペレータからの指示に基づいて,回転軸を決定してもよい。あるいは,以下の慣性主軸を応用して,決定してもよい。[慣性主軸の応用]固定点の個数が複数個である場合に,捻り軸方向を一貫して決められる方法について以下に説明する。剛体の力学において,慣性モーメントを表すテンソル慣性テンソルの主軸を求める方法がある。この手法を応用する。固定点の位置に質量1の質点を配置し,エフェクタ回りの慣性モーメントが最小になる回転軸を求め,これを捻り軸の方向とする。慣性モーメントを次式のようにIとする。n個の固定点をPrii=1,...,nとする。エフェクタを原点としたときの,固定点Priの座標をxi,yi,ziとする。慣性モーメントIは次式により得られる。Iの固有値I0,I1,I2とこれに対応する固有ベクトルu0,u1,u2を求める。ただし|u0|=|u1|=|u2|=1とする。捻り軸は,次のようにして決定してもよい。I0,I1,I2のうち最小のものをIaとし,これに対応する固有ベクトルをuaとする。uaを捻り軸の方向としてもよい。なお,図7の場合は,上述のようにエフェクタからPrmまでの距離が,エフェクタを動かす際の基準距離となった。これに代わる基準距離laを,以下の式によって求めて用いてもよい。ただしua≡xa,ya,zaとする。[ハードウエア構成]図12は,本願発明の実施例の装置構成を示す図である。コンピュータ1200には,キーボード1205,マウス1206,ペン1208を含むタブレット1207,ディスプレイ1201が接続されている。ディスプレイ1201上には,キャンバス1202が表示され,キャンバス1202上に図形が描画されている1203。また,図13は,本発明の機能構成図である。固定点特定部1301は,前記骨格モデルにおける1つ以上の固定点の各々の位置を特定する。捻り軸決定部1303は,エフェクタの位置と1つ以上の固定点の各々の位置とに基づき,前記捻り軸を決定する。第1閉経路移動部1305は,前記捻り軸に略垂直な平面上の第1の閉経路に沿って,エフェクタを動かす。第1捻り角度取得部1309は,第1閉経路移動部における前記エフェクタの捻り角度を第1の捻り角度として取得する。第2閉経路決定部1311は,第1の閉経路の面積と,第1の捻り角度とに基づき,所望の捻り角度を得るために必要な前記平面の第2の閉経路を決定する。第2閉経路移動部1307は,第2の閉経路に沿って,前記エフェクタを動かす。そして,メモリ1313,入力手段1315,表示手段1317等を有する。図14は,本発明の処理の流れを示した図である。まず,骨格モデルにおける1つ以上の固定点の各々の位置を特定するS1401。そして,エフェクタの位置と前記1つ以上の固定点の各々の位置とに基づき,前記捻り軸を決定するS1403。捻り軸に略垂直な平面上の第1の閉経路に沿って,前記エフェクタを動かすS1405。そして,捻りを有する骨格モデルが表示されるS1507。以上,本発明について,実施例を説明したが,複数の実施例は,排他的なものではない点に留意すべきである。また,請求項に係る本発明は,上述の実施例に限定されるものではない。"