(57)【要約】【課題】ＦＦＤの操作点の影響範囲を限定できる３次元モデル変形システムの提供。【解決手段】３次元モデルの変形において、発明者らが従来提案してきたガウス関数に基づくＦＦＤの手法（ＧＦＦＤ）を用いた場合、局所制御値（標準偏差）を変更することで、局所的な変形にも大局的な変形にも対応することができる。しかしながら、このＧＦＦＤを用いた場合、操作点の影響範囲は無限となる。そこで、発明者らは、ＦＦＤの基底関数にｃｏｓｉｎｅ関数やｃｏｓｉｎｅ−ｎ乗関数（ｎは２以上の整数）を用いる手法を提案する。ｃｏｓｉｎｅ関数やｃｏｓｉｎｅ−ｎ乗関数に基づくＦＦＤの手法によれば、局所制御値により操作点の影響範囲を限定することができる。このため、この手法を３次元モデル変形システムに利用すれば、利用範囲の拡大が期待できる。【選択図】なし【特許請求の範囲】
【請求項１】
３次元モデルから、目標とする３次元モデルに変形する３次元モデル変形システムであって、
前記３次元モデルを表示させる表示手段と、
前記表示させた３次元モデルの表面上に操作点を設定する操作点設定手段と、
設定した前記操作点を目標とする３次元モデルの表面上に移動するための操作点移動手段と、
前記３次元モデルを移動した操作点に合うように、ｃｏｓｉｎｅ関数又はｃｏｓｉｎｅ−ｎ乗関数（ｎは２以上の整数）を用いて、ＦＤＤによる大局的変形により変形する変形手段と
を備えることを特徴とする３次元モデル変形システム。
【請求項２】
請求項１に記載の３次元モデル変形システムにおいて、
前記操作点設定手段は、所定の平面と前記３次元モデルの表面とが交わる線上に操作点を設定することを特徴とする３次元モデル変形システム。
【請求項３】
請求項１に記載の３次元モデル変形システムにおいて、
前記操作点設定手段は、前記３次元モデルの表面上の所定の線上に操作点を設定することを特徴とする３次元モデル変形システム。
【請求項４】
請求項１〜３のいずれかに記載の３次元モデル変形システムをコンピュータ・システムに構築させるプログラムを記録した記録媒体。
【請求項５】
請求項１〜３のいずれかに記載の３次元モデル変形システムをコンピュータ・システムに構築させるプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、Ｆｒｅｅ−Ｆｏｒｍ　Ｄｅｆｏｒｍａｔｉｏｎ（ＦＦＤ）の手法を用いて３次元モデルの変形を行なうシステムに関する。
【０００２】
【従来の技術】
対話的かつ直感的にモデリングができる手法は、長く望まれている。しかしながら、複雑な形状を対話的かつ直感的に作成することは、依然として困難な問題である。従来、スプライン曲面の制御点の位置を変更する方法が一般に用いられているが、曲面が非常に多くの制御点で構成され曲面全体を変形する場合には、多数の制御点を操作しなくてはならない。
【０００３】
いっぽう、Ｆｒｅｅ−Ｆｏｒｍ　Ｄｅｆｏｒｍａｔｉｏｎ（ＦＦＤ）は、物体の埋め込まれている空間を変形することによって物体を変形する手法である。ＦＦＤは、形状モデルに独立な変形手法であるので、スプライン曲面、ポリゴン曲面、陰関数曲面など任意の曲面を変形することができる。また、空間の変形を定義する格子点の数も、変形される物体に独立であるので、スプライン曲面のように多くの制御点を変更する必要はない。しかしながら、ＦＦＤは、空間の変形を定義する格子の形状に制限が設けられている等の問題点をもつ。
【０００４】
この問題を解決するために、発明者らは、従来、ガウス関数に基づくＦｒｅｅ−Ｆｏｒｍ　Ｄｅｆｏｒｍａｔｉｏｎ（ＧＦＦＤ）を用いて形状モデルを変形する手法を提案してきた。なお、このＧＦＦＤに関しては「吉田典正，加納顕也，北嶋克寛：ガウス関数に基づくＦｒｅｅ−Ｆｏｒｍ　Ｄｅｆｏｒｍａｔｉｏｎ−対話的なモデル変形のための基礎理論−，精密工学会誌，Ｖｏｌ．６５．　Ｎｏ．７，（１９９９）　９７１−９７５」を参照されたい。
以降、従来発明者らが提案してきたＧＦＦＤについて、図を用いて説明する。ここでは、まずＧＦＦＤの基礎となるＦＦＤについて説明し、次にＧＦＦＤについて説明する。
【０００５】
＜ＦＦＤ＞
まず、ＧＦＦＤの基礎となるＦｒｅｅ−Ｆｏｒｍ　Ｄｅｆｏｒｍａｔｉｏｎ（ＦＦＤ）について説明する。
図１は平行六面体形状の格子点を示す図である。ＦＦＤでは、この図１のような平行六面体形状に配置された格子点を制御点とし、その制御点を移動して空間変形を行うことで、その３次元の空間の変形具合に応じてモデルも変形する。
ＦＦＤは非線形の写像であり、グローバル座標系における点の座標を、図１に示される様な平行六面体によって定められるｓ，ｔ，ｕ局所座標系に変換し、局所座標系で座標（ｓ，ｔ，ｕ）の点は次式によってＰ（ｓ，ｔ，ｕ）へと変換される。
【数１】
2004078309.tif 000002
ただし、Ｂｉ（ｘ）はＢｅｒｎｓｔｅｉｎ関数またはＢ−ｓｐｌｉｎｅ関数であり、Ｖｉｊｋはｓ，ｔ，ｕ方向にｉ，ｊ，ｋ番目の制御点である。
【０００６】
＜ＧＦＦＤ＞
次に、ガウス関数に基づくＦＦＤ（ＧＦＦＤ）について説明する。
ＧＦＦＤは有理ガウス（Ｒａｔｉｏｎａｌ　Ｇａｕｓｓｉａｎ：ＲａＧ）曲面を基礎としている。以下ではまず、ＲａＧ曲面について説明する。
【０００７】
（ＲａＧ曲面）
ＲａＧ曲面は、平面・球・楕円体・円柱・円錐・円環等の生成を行え、閉曲面、半閉曲面も生成できる。さらに、曲面に関して制御点は格子を形成する必要はなく、任意の位置に制御点を配置できるという特徴がある。
このＲａＧ曲面は、本来密でノイズのある点の集合の構築物を復元するために用いられるものであるが、３次元の形状をデザインするのにも使われている。
制御点ベクトルＶｉ（ｉ＝１，…，ｎ）で構成されるＲａＧ曲面は、次のように表すことができる。
【数２】
2004078309.tif 000003
ただし、
【数３】
2004078309.tif 000004
はｉ番目の基底関数で、Ｗｉはｉ番目の制御点の重みである。そして、
【数４】
Ｇｉ（ｓ，ｔ）＝ｅｘｐ｛−（（ｓ−ｓｉ）２／２σｉ２＋（ｔ−ｔｉ）２／２σｉ２）｝　　　…（１）
は、高さ１の２次元ガウス関数である。この公式において、（ｓｉ，ｔｉ）は、ｓｔパラメータ空間における、曲面上のｉ番目となる点の位置で、パラメータ空間におけるｉ番目のガウス関数の位置を示している。σｉはｉ番目のガウス関数の標準偏差である。σｉの値を大きくするにつれ、生成された曲面上におけるｉ番目の制御点の及ぼす影響の範囲は広くなり、σｉの値を小さくすると、曲面上におけるｉ番目の制御点の及ぼす影響の範囲はより局所的になる。
なお、このσを、以降「局所制御値」と呼ぶ。上述したように、局所制御値σは、ガウス関数の場合には標準偏差を用いる。
ＲａＧ曲面の制御点は一定の格子を形づくる必要はなく、自由な点で曲面を生成することができる。
【０００８】
図２は５つの点を通るように生成されたＲａＧ補間曲面を示す図である。この図２（ａ）〜（ｃ）は、正方形の平面の各頂点に１つずつ、計４つの制御点と、平面上の任意の点に１点の制御点を置いている。その平面上の任意の１点だけに固定の移動量を与え、他の制御点には移動量を与えず、また、全制御点の重みは変化させない。そして、その平面上の任意の１点だけの局所制御値（この場合、標準偏差）を変化させたものである。図２（ａ）が局所制御値を最も小さくした場合の曲面であり、（ｃ）が局所制御値を最も大きくした場合の曲面である。
ここで、さらにｓｔ方向別に変化を付けられるように、式（１）を次のように変形する。
【数５】
Ｇｉ（ｓ，ｔ）＝ｅｘｐ｛−（（ｓ−ｓｉ）２／２σｉ，ｓ２＋（ｔ−ｔｉ）２／２σｉ，ｔ２）｝　　　…（２）
【０００９】
図３は、式（２）を用いて、前述の図２と同じ５つの制御点の位置を変えずに、重みと局所制御値（この場合、標準偏差）を変えたときのＲａＧ曲面の変化を示す図である。
この図３は、図２と同様に、正方形の平面の各頂点に１つずつ、計４つの制御点と、平面上の任意の点に１点の制御点を置いている。各頂点に置いた４つの制御点には移動量を与えず、局所制御値は変化させない。そして、平面状の任意の１点には固定の移動量を与え、ｔ方向の局所制御値は変化させず、重みとｓ方向の局所制御値を変化させる。
図３からわかるように、ｓ方向の局所制御値の値を変化させると、その影響がｓ方向だけに現れている。また、重みを変化させることで、その重みを変化した点の影響力の大きさが変化している。重みを大きくすればするほど、モデル全体がその点に集まっていっている。
【００１０】
（３次元ガウス関数によるＧＦＦＤ）
次に、２次元ガウス関数による手法を拡張した手法として、３次元ガウス関数による方法について説明する。
なお、以降は、重みＷについては、省略するものとする。
ＧＦＦＤでは、操作点を変形したい近傍に配置し、それらを移動させることによって変形を行う。局所制御値は、操作点ごとに指定され、操作点移動による変形の局所性を決定する。制御点は、操作点の移動から陰に計算される。
【００１１】
ｎ（≧４）個の操作点Ｐｉ（１≦ｉ≦ｎ）（座標を（ｓｉ，ｔｉ，ｕｉ）とする）、移動後の操作点Ｐｉ’（座標を（ｓｉ’，ｔｉ’，ｕｉ’）とする）、各操作点の局所制御値σｉ（これらは、各軸方向ごとに与えることも可）が与えられたとする。Ｐｉのうちのいくつかは、Ｐｉ’と同じ座標である場合もある。点座標（ｓ，ｔ，ｕ）は、ＧＦＦＤにより、次式を用いて変換される。
【数６】
2004078309.tif 000005
ただし、Ｖｉは制御点ベクトルであり、
【数７】
2004078309.tif 000006
はｉ番目の基底関数であり、
【数８】
Ｇｉ（ｓ，ｔ，ｕ）＝ｅｘｐ｛−（（ｓ−ｓｉ）２／２σｉ２＋（ｔ−ｔｉ）２／２σｉ２＋（ｕ−ｕｉ）２／２σｉ２）｝　　　…（４）
は、高さ１でｉ番目の操作点（座標は（ｓｉ，ｔｉ，ｕｉ）である）を中心とする３次元ガウス関数である。局所制御値σは、ここでは標準偏差である。
【００１２】
式（４）における局所制御値は、ｓ，ｔ，ｕの各軸方向ごとに設けることも可能であり、この場合、式（４）は
【数９】
Ｇｉ（ｓ，ｔ，ｕ）＝ｅｘｐ｛−（（ｓ−ｓｉ）２／２σｉ，ｓ２＋（ｔ−ｔｉ）２／２σｉ，ｔ２＋（ｕ−ｕｉ）２／２σｉ，ｕ２）｝
となる。
ｉ番目の局所制御値は、ｉ番目の操作点の移動による変形の局所性を制御する。局所制御値の値が大きいほど対応する操作点の移動による変形は大局的になり、小さいほど変形は局所的になる。局所制御値は、ｓ，ｔ，ｕと同じ単位である必要がある。
【００１３】
次に、制御点ベクトルの計算法を述べる。操作点Ｐｉが移動後の操作点Ｐｉ’に変換されるような変形が望まれる。これは、次式によって表される。
【数１０】
2004078309.tif 000007
…（５）
ただし、Ｐｊ’はｊ番目の移動後の操作点ベクトルであり、（ｓｊ，ｔｊ，ｕｊ）はｊ番目の操作点の座標である。式（５）をＶｉに関して解くことで、制御点が計算される。式（５）は、各座標成分に関してｎ個の連立方程式で表され、ｇｉ（ｓｊ，ｔｊ，ｕｊ）はｎ×ｎ行列を構成する。制御点を計算するためにはｎ×ｎ行列がｗｅｌｌ−ｃｏｎｄｉｔｉｏｎｅｄでなければならない。ＬＵ分解によって正常に逆行列が計算されるが、行列の条件数がある決められた値以下になるような局所制御値が選ばれるべきである。式（３）からわかるように、ＧＦＦＤは、制御点ベクトルの線形結合で表される。従って、すくなくとも４個の線形独立な制御点ベクトル（すなわち４点の線形独立な操作点）が必要であり、４個以下の場合には結果が平面、直線、または点に縮退してしまう。制御点が計算できたら、変換後の点座標は式（３）によって計算される。
【００１４】
上述で説明したように、ＧＦＦＤは次のような特徴を持つ。
（１）形状の面上に任意の数だけ操作点を配置できる。
（２）操作点の移動によって空間の変形が行われる。
（３）操作点は、与えられた移動量だけ移動するが、その他の点の移動量は、操作点の数に対応する数の連立方程式を解くことにより決められる。
（４）ガウス関数の局所制御値（標準偏差）を変えることにより、変形の影響範囲を変えられる。
すなわち、任意の数の操作点を対象形状上に配置し、それらを移動させることにより、それらに引っ張られるように形状全体を滑らかに変形させることが可能である。その際、各操作点に与える局所制御値（標準偏差）や重みを変えることによって、操作点以外の場所における形状変化の滑らかさを制御することができる。
【００１５】
【発明が解決しようとする課題】
本発明の目的は、３次元モデルを変形することにより、複雑な形状を対話的かつ直感的に作成できるシステムを提供することである。
また、上述のガウス関数に基づくＦＦＤ（ＧＦＦＤ）の場合は、操作点の影響範囲が無限となってしまうので、操作点の影響範囲を限定することができる形状モデルの変形手法の提供も本発明の目的である。
【００１６】
【課題を解決するための手段】
上記の課題を解決するために、本発明は、３次元モデルから、目標とする３次元モデルに変形する３次元モデル変形システムであって、前記３次元モデルを表示させる表示手段と、前記表示させた３次元モデルの表面上に操作点を設定する操作点設定手段と、設定した前記操作点を目標とする３次元モデルの表面上に移動する操作点移動手段と、前記３次元モデルを移動した操作点に合うように、ｃｏｓｉｎｅ関数又はｃｏｓｉｎｅ−ｎ乗関数（ｎは２以上の整数）を用いて、ＦＤＤによる大局的変形により変形する変形手段とを備えることを特徴とする３次元モデル変形システムである。
前記操作点設定手段は、所定の平面と前記３次元モデルの表面とが交わる線上に操作点を設定するものであってもよい。
また、前記操作点設定手段は、前記３次元モデルの表面上の所定の線上に操作点を設定するものであってもよい。
上記の３次元モデル変形システムをコンピュータ・システムに構築させるプログラムや、そのプログラムをを記録した記録媒体も、本発明である。
【００１７】
【発明の実施の形態】
以降、本発明の実施形態を、図を用いて詳細に説明する。まずｃｏｓｉｎｅ関数やｃｏｓｉｎｅ−ｓｑｕａｒｅｄ関数に基づくＦＦＤについて説明した後、ｃｏｓｉｎｅ−ｓｑｕａｒｅｄ関数に基づくＦＦＤを用いた本実施形態の３次元モデル変形システムについて説明する。
【００１８】
＜ｃｏｓｉｎｅ関数やｃｏｓｉｎｅ−ｓｑｕａｒｅｄ関数に基づくＦＦＤ＞
上述で説明した、ガウス関数に基づくＦＦＤ（ＧＦＦＤ）において、基底関数として、ガウス関数以外の３次元関数を考えることができる。このうち、ｃｏｓｉｎｅ関数やｃｏｓｉｎｅ−ｓｑｕａｒｅｄ関数を用いると、局所制御値によって、操作点の影響を影響範囲外では完全になくすことができる。
以降、ガウス関数やｃｏｓｉｎｅ関数、ｃｏｓｉｎｅ−ｓｑｕａｒｅｄ関数などの３次元関数を用いたＦＦＤを総称して「大局的空間変形手法」と呼ぶものとする。
【００１９】
ｃｏｓｉｎｅ関数Ｃｉ（ｓ，ｔ，ｕ）は、
【数１１】
ｄ＝（ｓ−ｓｉ）２／σｉ２＋（ｔ−ｔｉ）２／σｉ２＋（ｕ−ｕｉ）２／σｉ２
…（６）
【数１２】
2004078309.tif 000008
と定義される。同様に、式（６）のｄを用いてｃｏｓｉｎｅ−ｓｑｕａｒｅｄ関数は、
【数１３】
2004078309.tif 000009
で定義される。Ｃｉ（ｓ，ｔ，ｕ）は、ｃｏｓｉｎｅ−ｓｑｕａｒｅｄ関数に限らず、ｃｏｓｉｎｅ−ｎ乗関数（ｎは２以上の整数）を用いることができる。
ガウス関数と異なり、ｃｏｓｉｎｅ関数およびｃｏｓｉｎｅ−ｎ乗関数はローカルサポートを持つ。すなわち、式（６）でｄ＝１とした時に表される球の外側の点で、ｃｏｓｉｎｅ関数およびｃｏｓｉｎｅ−ｎ乗関数は完全に０になる。操作点の局所制御値σは式（６）の球の半径を表し、この球内に操作点は影響する。
【００２０】
式（６）では局所制御値を各操作点に対して一つだけ設けているが、これを各軸方向ごとに設けることも可能である。この場合、式（６）は、
【数１４】
ｄ＝（ｓ−ｓｉ）２／σｉ，ｓ２＋（ｔ−ｔｉ）２／σｉ，ｔ２＋（ｕ−ｕｉ）２／σｉ，ｕ２
…（７）
となる。これによって、操作点の移動による変形の度合いを、各軸方向ごとに制御することも可能である。
なお、上述で説明した大局的空間変形の各手法は、３次元に限らず、ｎ次元のモデルに対して適用可能である。また、基底関数として、上述のガウス関数やｃｏｓｉｎｅ関数、ｃｏｓｉｎｅ−ｎ乗関数以外の他の関数を利用することも可能である。
【００２１】
前述したように、大局的空間変形を行うためには、少なくとも４点の操作点が必要である。本実施形態の３次元モデル変形システムでは、単位立方体（辺の長さが１の立方体）のコーナーに８個の操作点をおく。単位立方体は、原点が中心になるように配置する。これらの８つの操作点は、常に配置されているものと仮定する（この仮定はこのシステムに限りそうしたもので、実際には操作点は４つ以上で線形独立であればよい）。これら８つの操作点を、以降「コーナー操作点」と呼ぶことにする。
変形の対象となるモデル（ここではポリゴンモデルを想定している）は、単位立方体の内部にあると仮定する。８つのコーナー操作点の局所制御値を決定するために、等間隔にパラメータ化された立方体を、大局的空間変形手法を用いて変形する。
【００２２】
図４は、大局的空間変形手法を用いて、コーナー操作点の位置は変えずに、局所制御値のみを変更して変形した立方体である。図４（ａ）〜（ｃ）は、基底関数としてガウス関数を用いた場合の局所制御値σ（すなわち、標準偏差）が、（ａ）はσ＝１０．０の場合、（ｂ）はσ＝０．５の場合、（ｃ）はσ＝０．３５の場合における、変形後の立方体である。図４に見るように、局所制御値が大きいほど、変形後の立方体はオリジナルの立方体に近いことが分かる。
基底関数にｃｏｓｉｎｅ関数やｃｏｓｉｎｅ−ｓｑｕａｒｅｄ関数を用いた場合は、局所制御値は操作点の影響範囲となる球領域を決定する。コーナー操作点の局所制御値は、少なくとも変形対象となる物体のすべての頂点を含むように設定されるべきである。そうでないと、物体の頂点のうち、最低でも４個の操作点の影響を受けない点がでてくる可能性があるからである。ガウス関数を用いた場合と同様に、コーナー操作点の局所制御値が大きくなればなるほど、等間隔にパラメータ化された立方体はオリジナルの立方体に近づいていく。
【００２３】
等間隔にパラメータ化された立方体が、コーナー操作点の局所制御値によってどのように変形されるのかを調べるために、変形後とオリジナルの立方体の頂点位置の変化の最大値を表１に示す。変形は、コーナー操作点の局所制御値のみを変えることによって行なった。局所制御値を同じにとった場合、ｃｏｓｉｎｅ関数とｃｏｓｉｎｅ−ｓｑｕａｒｅｄ関数を用いた場合には、ガウス関数を用いた場合よりも、頂点位置の誤差がやや大きいことがわかる。立方体の頂点の最大誤差は、操作点から最も離れている頂点のいずれかで生じた。表１に示す結果より、局所制御値が１０００の場合に最も頂点位置の誤差が小さいことがわかる。したがって、本実施形態の３次元モデル変形システムでは、局所制御値を１０００として処理を行うものとする。
【表１】
2004078309.tif 000010
【００２４】
図５は、図５（ａ）に示す位置に１個の操作点を配置し、その操作点を上に持ち上げて立方体の変形を行ったものである。図５（ｂ），（ｃ），（ｄ）はガウス関数を利用し局所制御値をそれぞれ０．０２，０．１５，０．３としたものであり、図５（ｅ），（ｆ），（ｇ）はｃｏｓｉｎｅ関数を利用し局所制御値をそれぞれ０．０５，０．３，０．７としたものであり、図５（ｈ），（ｉ），（ｊ）はｃｏｓｉｎｅ−ｓｑｕａｒｅｄ関数を利用し局所制御値を０．０７，０．５，０．９として変形を行った図である。立方体の８つのコーナーには、コーナー操作点が配置されている。
図５によれば、例えば（ｃ），（ｆ），（ｉ）を比較するとわかるように、ガウス関数とｃｏｓｉｎｅ−ｓｑｕａｒｅｄ関数を用いた場合のほうが、ｃｏｓｉｎｅ関数を用いた場合よりも、より滑らかに変形している。
基本的に、物体を変形する場合には、操作点を追加し、移動させ、局所制御値を決定することによって行う。もちろん、必要であれば、コーナー操作点を移動させたり、コーナー操作点の局所制御値を変更することによる変形も可能である。
【００２５】
大局的空間変形のより複雑な例として、図６に示すように、立方体の可視の３つの面上にそれぞれ１６個の操作点（合計で４８個の操作点）を置いて変形した例を示す。操作点は、立方体の面の法線方向に移動させている。図６（ａ），（ｂ），（ｃ）は、４８個の操作点の局所制御値が異なる例であり、それぞれ０．０５，０．０８，０．１２である。変形にはガウス関数を用いたが、ｃｏｓｉｎｅ関数やｃｏｓｉｎｅ−ｓｑｕａｒｅｄ関数を用いても同様の変形が可能である。
【００２６】
これらの操作点の移動や局所制御値の変更などの操作は、ユーザがキーボードやマウスなどの入力装置を用いて対話的に行うことが可能である。大局的空間変形の計算速度は、主に、変形する頂点数、および操作点の数に依存するが、通常のパーソナル・コンピュータで充分対応することができる。
【００２７】
上述したように、大局的空間変形手法において、ｃｏｓｉｎｅ関数およびｃｏｓｉｎｅ−ｓｑｕａｒｅｄ関数に基づく手法は、従来のガウス関数に基づく手法と異なり、局所制御値によって操作点の影響範囲を限定することができる。また、上記図５に示したように、ｃｏｓｉｎｅ−ｓｑｕａｒｅｄ関数を用いた場合のほうが、ｃｏｓｉｎｅ関数を用いた場合よりも、形状をより滑らかに変形させることができる。
したがって、以降、本実施形態の３次元モデル変形システムを、ｃｏｓｉｎｅ−ｓｑｕａｒｅｄ関数を用いた例として説明する。
【００２８】
＜３次元モデル変形システム＞
本実施形態の３次元モデル変形システムは、上述で説明した、ｃｏｓｉｎｅ−ｓｑｕａｒｅｄ関数に基づくＦＦＤを用いて３次元モデルの変形を行なうシステムである。なお、ここでは、３次元モデル変形システムを衣服のデザインシステムとして説明するが、用途は衣服のデザインに限られず、意匠デザインやその他様々なモデルの変形に利用することができる。
【００２９】
さて、衣服のデザインシステムには、次のような機能が必要となる。
（１）衣服の基本的な形体を決定する操作
これは、シルエットの変形や、ネックラインなどの首周りの変形、バストやウエストなどの周囲長の変形などの操作である。
（２）切取りおよび付加操作
これは、衣服の一部を切り取ったり、ボタンやポケットを付加するなどの操作である。
（３）その他、人台に衣服を着せたり、衣服へのテクスチャマッピングなどを行なう操作
上記（１）〜（３）において、ｃｏｓｉｎｅ−ｓｑｕａｒｅｄ関数に基づくＦＦＤの手法を用いるのは、形状変形操作を対象としている（１）である。したがって、以降、（１）の操作に関する処理について説明する。
具体的には、まず上記（１）の処理の流れを説明した後、上記（１）の代表的な例である次の（Ａ）〜（Ｄ）の処理について、順に説明する。
（Ａ）基本的変形操作
（Ｂ）ネックラインなどの境界部の変形
（Ｃ）バストなどの周囲長を変更する変形
（Ｄ）操作点群の移動による変形
【００３０】
（衣服の形状変形操作の流れ）
まず最初に、図１１を用いて、本実施形態の３次元モデル変形システムが衣服モデルの形状を変形する処理を説明する。
図１１は、処理の流れを示すフローチャートである。まず、基本の衣服モデルなどに対して、操作点を配置する（Ｓ１１０）。基本の衣服モデルとは、本実施形態の３次元モデル変形システムにあらかじめ準備しておく基本的な形状の衣服モデルである。衣服モデルはこれに限らず、本実施形態の３次元モデル変形システムで作成した衣服モデルなどを保存しておき、利用してもよい。また、操作点の配置は、システムで自動的に配置することも、ユーザがマウスなどの入力装置を用いて配置することもできる。
次に、上記Ｓ１１０で配置された操作点を移動する（Ｓ１２０）。例えば、システムのユーザが、操作点をマウスなどを用いて目的の位置へ移動する。または、ユーザが変形後のラインを線で入力したり、変形後の周囲長を入力すると、システムが自動的に操作点を移動する。さらに、ここで局所制御値の変更を行なうこともできる。
最後に、本実施形態の３次元モデル変形システムが、上記Ｓ１２０で行なわれた操作点の移動に従って、ｃｏｓｉｎｅ−ｓｑｕａｒｅｄ関数に基づくＦＦＤを用いて、衣服モデルの形状を変形する（Ｓ１３０）。
【００３１】
（基本的変形操作）
次に、図７を用いて、上記（Ａ）の基本的変形操作について説明する。
基本的変形操作では、本実施形態の３次元モデル変形システムのユーザが個々の操作点を配置し、移動させることによって変形を行う。
ユーザは、局所制御値を変更することによって、変形の範囲（局所性）を制御することができる。操作点の移動や局所制御値の変更は、キーボードやマウスなどの入力装置からの入力によって、対話的に指定することが可能である。
図７に、基本変形操作の例を示す。図７（ａ）は基本の衣服モデルである。まず、基本の衣服モデルに対して、図７（ａ）に四角で示される位置（矢印の始点）に操作点を配置する。次に、それぞれの操作点をユーザが図７（ａ）に示す矢印方向に移動させると、ｃｏｓｉｎｅ−ｓｑｕａｒｅｄ関数に基づくＦＦＤを用いて衣服モデルを図７（ｂ）に示すように変形する。このとき、局所制御値は、変形が適切になるように対話的に設定される。図７（ｃ）は、図７（ｂ）にテクスチャマッピングを施した衣服モデルである。
【００３２】
（境界部の変形）
次に、図８を用いて、上記（Ｂ）の境界部の変形について説明する。
ネックラインやスカートの裾などの衣服の境界部は、衣服のデザインにおいて非常に重要である。図８に、境界部の変形の例を示す。境界部を変形するためには、まず、図８（ａ）に示すように、操作点を指定した間隔で境界部に自動的に配置させる。これらの操作点を移動させることによって、境界部を変形させる。
ユーザは、図８（ａ）に示すように、衣服モデル上に、変形後のネックラインを線で描く。描画の操作は、マウスなどで行なうことができる。次に、システムが自動的に、操作点をユーザが描いた線にあわせる位置に移動させる。操作点の移動は、図８（ａ）の操作点と、描かれた線を平面に投影し、対応をとることによって行うことができる。その結果、衣服モデルは図８（ｂ）のようになる。最後に、衣服モデルをｃｏｓｉｎｅ−ｓｑｕａｒｅｄ関数に基づくＦＦＤを用いて図８（ｃ）に示すように変形する。
【００３３】
（周囲長を変更する変形）
次に、図９を用いて、上記（Ｃ）の周囲長の変更による変形について説明する。
衣服のデザインにおいては、バスト、ウエスト、ヒップ、その他人体の各部位の周囲長の変更が不可欠である。図９に、バストの周囲長を変更する例を示す。
図９（ａ）では、平面がバストの位置におかれている。この平面と衣服モデルとの交点を算出し、指定された間隔で操作点を図９（ｂ）のように配置する。次に、ユーザが変更後の周囲長を指定（例えば、○○ｃｍといった数値で入力）すると、ｃｏｓｉｎｅ−ｓｑｕａｒｅｄ関数に基づくＦＦＤを用いて、これらの操作点群を、重心位置から移動させることによって衣服モデルを変形する。図９（ｃ）は、変形後の衣服モデルの例である。
【００３４】
（操作点群の移動による変形）
最後に、図１０を用いて、上記（Ｄ）の操作点群の移動による変形について説明する。
複数のグループの操作点群を移動させることによって、より複雑な変形が可能となる。図１０は、図１０（ａ）の衣服モデルからタートルネックを作成する例を示している。４つのグループの操作点群を図１０（ｂ）に示すようにネックラインに配置する。変形は、まず最も下のグループの操作点群を周囲長を縮めるように移動させ（図１０（ｃ））、最も上の操作点を図１０（ｄ）に示すように折り曲げる。次に、中間の２つの操作点群を調整する（図１０（ｅ））ことによって、タートルネックが作成される。
図１０（ｆ）は、作成されたタートルネックをバーチャルヒューマンに着せたときの図である。
【００３５】
【発明の効果】
従来のガウス関数に基づくＦＦＤ（ＧＦＦＤ）の場合は、操作点の影響範囲が無限であるが、本発明のｃｏｓｉｎｅ関数やｃｏｓｉｎｅ−ｎ乗関数に基づくＦＦＤでは、操作点の影響範囲を局所制御値により制限することができる。この局所制御値は、３次元モデル変形システムにおいてユーザが自由に設定したり、システムで自動的に調整したりすることができる。
このため、本発明により、３次元モデル変形の利用範囲を拡大することができる。
【図面の簡単な説明】
【図１】平行六面体形状の格子を示す図である。
【図２】ＲａＧ補間曲面を示す図である。
【図３】重みと標準偏差を変えたときのＲａＧ曲面の変化を示す図である。
【図４】局所制御値のみを変更して立方体の変形を行なった例を示す図である。
【図５】立方体に配置した１点の操作点を上に持ち上げて変形を行った例を示す図である。
【図６】立方体の可視の３つの面上にそれぞれ１６個の操作点を置いて変形した例を示す図である。
【図７】衣服モデルの基本変形操作の例を示す図である。
【図８】ネックラインの境界部を変形する例を示す図である。
【図９】周囲長の変更によりバストラインを変形する例を示す図である。
【図１０】操作点群の移動によりタートルネックを作成する例を示す図である。
【図１１】本実施形態の３次元モデル変形システムが衣服モデルを変形する処理を示すフローチャートである。
【図１】
2004078309.tif 000011
【図２】
2004078309.tif 000012
【図３】
2004078309.tif 000013
【図４】
2004078309.tif 000014
【図５】
2004078309.tif 000015
【図６】
2004078309.tif 000016
【図７】
2004078309.tif 000017
【図８】
2004078309.tif 000018
【図９】
2004078309.tif 000019
【図１０】
2004078309.tif 000020
【図１１】
2004078309.tif 000021