(57)【要約】  クロース上に位置した複数の頂点の前の時間段階での位置を用いて、次の時間段階での隣接する上記頂点の相対的な位置を算出する位置算出モジュールと、上記相対的な位置を用いて上記各頂点の運動方程式を作成する分析モジュール、及び上記運動方程式を適用して上記各頂点の位置を更新する更新モジュールと、を含むことを特徴とするクロース・シミュレーションシステムが開示される。本発明によるクロース・シミュレーションシステム及び方法を用いて、クロースの質感とリアリティーを一層増加させ、リアルタイムでクロースの運動を計算することができ、表現対象の動作の数に応じて衣装アニメーションを予め手作業で製作しなければならないという不具合がないため、コンピューターゲームなどの製作コスト及び製作期間を著しく減少させることができるという効果を奏する。
2010515995.tif 000002
【特許請求の範囲】
【請求項１】
クロース上に位置した複数の頂点の前の時間段階での位置を用いて、次の時間段階での隣接する前記頂点の相対的な位置を算出する位置算出モジュールと、
前記相対的な位置を用いて前記各頂点の運動方程式を作成する分析モジュール、及び
前記運動方程式を適用して前記各頂点の位置を更新する更新モジュールと、を含むことを特徴とするクロース・シミュレーションシステム。
【請求項２】
前記位置算出モジュールは、
前の時間段階での前記頂点の速度を求める速度算出部、及び
算出された速度に基づいて次の時間段階での隣接する前記頂点の相対的な位置を求める位置算出部を含むことを特徴とする請求項１に記載のクロース・シミュレーションシステム。
【請求項３】
前記位置算出部は、次の時間段階において前記頂点のうちｉ番目頂点の位置を
【数２６】
2010515995.tif 000028
、ｊ番目頂点の位置を
【数２７】
2010515995.tif 000029
、前記ｉ番目頂点と前記ｊ番目頂点との間の初期の長さをＬ、前記ｉ番目頂点と前記ｊ番目頂点の相対的な位置を
【数２８】
2010515995.tif 000030
とした場合、次式によって前記相対的な位置を求めることを特徴とする請求項２に記載のクロース・シミュレーションシステム。
【数２９】
2010515995.tif 000031
【請求項４】
前記位置算出部は、前の時間段階（ｎ）において前記頂点のうちｉ番目頂点の位置を
【数３０】
2010515995.tif 000032
、前の時間段階（ｎ）において前記ｉ番目頂点の速度を
【数３１】
2010515995.tif 000033
、前の時間段階（ｎ−１）において前記ｉ番目頂点の速度を
【数３２】
2010515995.tif 000034
、前記時間段階の間の時間間隔をΔｔ、次の時間段階において前記ｉ番目頂点の位置を
【数３３】
2010515995.tif 000035
とした場合、次式によって次の時間段階において前記ｉ番目頂点の位置を求めることを特徴とする請求項２に記載のクロース・シミュレーションシステム。
【数３４】
2010515995.tif 000036
【請求項５】
前記分析モジュールは、
隣接する前記頂点間のエネルギーを用いて前記各頂点に印加される力を算出する力算出部、及び
算出された力を用いて前記各頂点の運動方程式を作成する方程式作成部を含むことを特徴とする請求項１に記載のクロース・シミュレーションシステム。
【請求項６】
前記力算出部は、前の時間段階において前記頂点のうちｉ番目頂点とｊ番目頂点との間の相対的な位置を
【数３５】
2010515995.tif 000037
、次の時間段階において前記ｉ番目頂点と前記ｊ番目頂点の相対的な位置を
【数３６】
2010515995.tif 000038
、予め設定された弾性係数をｋ、前記ｉ番目頂点及び前記ｊ番目頂点との間のエネルギーをＥｉ,ｊとした場合、次式によって前記エネルギーを求めることを特徴とする請求項５に記載のクロース・シミュレーションシステム。
【数３７】
2010515995.tif 000039
【請求項７】
前記更新モジュールは、
前記頂点の運動によって値が異ならないシステム行列の値を算出して記憶する記憶部、及び
前記システム行列を用いて前記運動方程式を演算し、該演算結果によって前記各頂点の位置を更新する積分部を含むことを特徴とする請求項１に記載のクロース・シミュレーションシステム。
【請求項８】
前記記憶部は、コレスキー分解によって前記システム行列を算出し記憶することを特徴とする請求項７に記載のクロース・シミュレーションシステム。
【請求項９】
前記積分部は、半分暗黙的積分によって前記運動方程式を演算することを特徴とする請求項７に記載のクロース・シミュレーションシステム。
【請求項１０】
クロース上に位置した複数の頂点の前の時間段階での位置を用いて、次の時間段階での隣接する前記頂点の相対的な位置を算出する段階と、
前記相対的な位置を用いて前記各頂点の運動方程式を作成する段階、及び
前記運動方程式を適用して前記各頂点の位置を更新する段階と、を含むことを特徴とするクロース・シミュレーション方法。
【請求項１１】
前記相対的な位置を算出する段階は、
前の時間段階での前記頂点の速度を求める段階、及び
求められた速度に基づいて次の時間段階での隣接する前記頂点の相対的な位置を求める段階を含むことを特徴とする請求項１０に記載のクロース・シミュレーション方法。
【請求項１２】
前記相対的な位置を求める段階は、次の時間段階において前記頂点のうちｉ番目頂点の位置を
【数３８】
2010515995.tif 000040
、ｊ番目頂点の位置を
【数３９】
2010515995.tif 000041
、前記ｉ番目頂点と前記ｊ番目頂点との間の初期の長さをＬ、前記ｉ番目頂点と前記ｊ番目頂点の相対的な位置を
【数４０】
2010515995.tif 000042
とした場合、次式によって前記相対的な位置を求める段階を含むことを特徴とする請求項１１に記載のクロース・シミュレーション方法。
【数４１】
2010515995.tif 000043
【請求項１３】
前記相対的な位置を求める段階は、前の時間段階（ｎ）において前記頂点のうちｉ番目頂点の位置を
【数４２】
2010515995.tif 000044
、前の時間段階（ｎ）において前記ｉ番目頂点の速度を
【数４３】
2010515995.tif 000045
、前の時間段階（ｎ−１）において前記ｉ番目頂点の速度を
【数４４】
2010515995.tif 000046
、前記時間段階間の時間間隔をΔｔ、次の時間段階において前記ｉ番目頂点の位置を
【数４５】
2010515995.tif 000047
とした場合、次式によって次の時間段階において前記ｉ番目頂点の位置を求める段階を含むことを特徴とする請求項１１に記載のクロース・シミュレーション方法。
【数４６】
2010515995.tif 000048
【請求項１４】
前記方程式を作成する段階は、
隣接する前記頂点間のエネルギーを用いて前記各頂点に印加される力を算出する段階、及び
算出された力を用いて前記各頂点の運動方程式を作成する段階を含むことを特徴とする請求項１０に記載のクロース・シミュレーション方法。
【請求項１５】
前記各頂点に印加される力を算出する段階は、前の時間段階において前記頂点のうちｉ番目頂点とｊ番目頂点との間の相対的な位置を
【数４７】
2010515995.tif 000049
、次の時間段階において前記ｉ番目頂点と前記ｊ番目頂点の相対的な位置を
【数４８】
2010515995.tif 000050
、予め設定された弾性係数をｋ、前記ｉ番目頂点と前記ｊ番目頂点との間のエネルギーをＥｉ,ｊとした場合、次式によって前記エネルギーを求める段階を含むことを特徴とする請求項１４に記載のクロース・シミュレーション方法。
【数４９】
2010515995.tif 000051
【請求項１６】
前記更新する段階は、
前記頂点の運動によって値が異ならないシステム行列の値を算出する段階、及び
前記システム行列を用いて前記運動方程式を演算し、該演算結果によって前記各頂点の位置を更新する段階を含むことを特徴とする請求項１０に記載のクロース・シミュレーション方法。
【請求項１７】
前記算出する段階は、コレスキー分解によって前記システム行列の値を算出する段階を含むことを特徴とする請求項１６に記載のクロース・シミュレーション方法。
【請求項１８】
前記更新する段階は、半暗黙的積分によって前記運動方程式を演算する段階を含むことを特徴とする請求項１６に記載のクロース・シミュレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リアルタイムでクロース（ｃｌｏｔｈ）の運動をシミュレートするシステム及び方法に係り、より詳しくは、コンピューターを使ってシミュレートされるクロースの質感及び運動を表現するために、表現対象クロースに設定された複数の頂点の時間経過による位置変化を予測し、予測された位置を用いて定義されたエネルギーに基づいて各頂点の運動を計算することにより、高速且つリアルにクロースをシミュレートすることができるリアルタイム・クロース・シミュレーションシステム及び方法に関する。
【背景技術】
【０００２】
コンピューター関連ハードウェアの発展に伴い、一つ以上のコアを使って並列で演算を遂行することができるハードウェアが続々と登場している。ＣＰＵのクロックを増加させて演算速度の増加を図る既存の方式とは異なり、並列演算環境は、複数のプロセッサを使って演算を並列化、またはベクトル演算化して演算速度を増加させる仕組みとなっており、これは、多数の物理オブジェクトを高速で演算する作業に好適である。
【０００３】
並列演算環境を提供するハードウェアの発展に伴い、これらハードウェアを使って演算するコンピュータープログラムである物理エンジンもハードウェアと歩調をあわせて発展しつつある。並列演算環境で現在使われているＨａｖｏｋまたはＰｈｙｓｘなどの物理エンジンは、剛体や流体（ｐａｒｔｉｃｌｅ）のシミュレーション及び衝突処理を加速するのに主に使われる。しかしながら、これら物理エンジンは、剛体の運動を描写する上で優れた性能を示すのに対し、衣装を表現するためのクロースの運動及び質感に関するシミュレーションは、単純な形態にとどまっている。
【０００４】
上述した従来技術によるクロース・シミュレーション方法は、描写したい対象であるクロースにおいて複数の頂点を設定し、各頂点の時間経過による位置変化を計算して、全体クロースの運動及び質感を表現している。各頂点の位置変化を計算するために、従来技術では、各頂点位置を時間に対してベレー積分（ｖｅｒｌｅｔ  ｉｎｔｅｇｒａｔｉｏｎ）と、積分された値をクロースの長さが一定に保持されるという制約条件を満足するように収斂させる過程を施して頂点の位置を計算する。
【０００５】
しかしながら、上述したベレー積分を使う従来技術では、プロセッサの数が非常に多い環境でのみ最適に遂行でき、各頂点位置に対する積分値の収斂速度が遅く、積分値の収斂が保障されないことから安全性が落ちるという短所がある。また、頂点の数が多くなるにつれて演算負荷が増加し過ぎ、クロースの長さが必ず一定に保持されるという制約条件が適用されているので、クロースの物性表現が自由ではない。
【０００６】
スポーツゲームや対戦ゲーム、ＭＭＯＲＰＧ（Ｍｕｌｔｉ−ｍｅｄｉａ  Ｏｎｌｉｎｅ  Ｒｏｌｅ−Ｐｌａｙｉｎｇ  Ｇａｍｅ）など、人と類似のキャラクターが登場する全てのゲームを含むリアルタイム３Ｄアプリケーションにおいて衣装は重要な要素である。しかしながら、上述した如く、従来技術はクロースの運動及び質感を表現するには不向きである。したがって、現在、衣装などに含まれたクロースの表現に関しては、予め演算され記憶されているデータを読み込んでアニメーションする方法を用いるか、或いは衣装アニメーションを初めから用いない実情である。
【０００７】
また、最近は、ヨーロッパ（Ｅ−ｔａｉｌｏｒ  ｐｒｏｊｅｃｔ、Ｆｒａｕｈｏｆｅｒ、Ｍｉｒａｌａｂ）、日本（Ｄｉｇｉｔａｌ  Ｆａｓｈｉｏｎ  Ｌｔｄ．）及び国内（Ｉ−ｆａｓｈｉｏｎ）において、服を直接着用してみるのではなく３次元仮想環境で着用してみることができるシステムに関する開発が進められている。着用者が選んだ衣装をリアルタイムで表現するためのリアルタイム・クロース・シミュレーション技術は、当該システムにおいて核心的な要素であるが、現在までリアルタイム・クロース・シミュレーション技術が適用されたシステムはなかった。よって、リアルタイムで処理可能で且つ高い品質を有するリアルタイム・クロース・シミュレーション技術の開発が急がれている。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
そこで、本発明は、上述した従来技術の問題点を解決するためになされたものであって、その目的は、ベレー積分ではない半暗黙的積分法（ｓｅｍｉ−ｉｍｐｌｉｃｉｔ  ｉｎｔｅｇｒａｔｉｏｎ）を用いてクロースの運動及び質感をシミュレートすることにより、様々な環境に応じて最適化可能であり、収斂速度が高速で且つクロースの物性表現が自在なリアルタイム・クロース・シミュレーションシステム及び方法を提供することである。
【課題を解決するための手段】
【０００９】
上記目的を達成するための本発明によるクロース・シミュレーションシステムは、クロース上に位置した複数の頂点の前の時間段階での位置を用いて、次の時間段階での隣接する上記頂点の相対的な位置を算出する位置算出モジュールと、上記相対的な位置を用いて上記各頂点の運動方程式を作成する分析モジュール、及び上記運動方程式を適用して上記各頂点の位置を更新する更新モジュールと、を含むことを特徴とする。
【発明の効果】
【００１０】
本発明のクロース・シミュレーションシステム及び方法を用いると、ゲームを含むリアルタイム３Ｄアプリケーションにおいてコンピューターグラフィックにて表現されるクロースの質感とリアリティーを一層増加させ、リアルタイムでクロースの運動を計算することができ、表現対象の動作の数に応じて衣装アニメーションを予め手作業で製作しなければならないという不具合がないため、製作コスト及び製作期間を著しく減少させることができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施例によるリアルタイム・クロース・シミュレーションシステムの構成を示すブロック図である。
【図２】本発明の一実施例によるリアルタイム・クロース・シミュレーション方法の各段階を示すフローチャートである。
【発明を実施するための最良の形態】
【００１２】
以下、添付した図面を参照して本発明の好適な実施例について詳しく説明する。
【００１３】
図１は、本発明の一実施例によるクロース・シミュレーションシステムの構成を示す構成図である。同図に示すクロース・シミュレーションシステムは、クロース上に設定された複数の頂点に対して、次の時間段階での位置を予測し計算する位置算出モジュール１０と、予測された結果を用いて定義されたエネルギーから各頂点の運動方程式を求める分析モジュール２０と、運動方程式を解いて各頂点の位置を更新する更新モジュールとを含んで構成される。
【００１４】
図２は、本発明の一実施例によるクロース・シミュレーション方法の各段階を示すフローチャートである。上記実施例によるクロース・シミュレーション方法は、コンピューターを利用して表現されるクロース上に、クロースの質感を表現し運動を演算するために設定された複数の頂点を用いて遂行される。本明細書において一つのクロース上に設定された複数の頂点は、ｉという下付き文字にて表現され、各頂点の３次元的位置を表すベクトルであるｘiは、次式１で表される。ｕi、ｖi及びｗiのそれぞれは、頂点位置のｘ座標、ｙ座標、及びｚ座標を表す。Δｘiは、各時間段階の間のｘiの変化量を表す。
【００１５】
式１
【００１６】
【数１】
2010515995.tif 000003
【００１７】
位置算出モジュール
位置算出モジュール１０では、前の時間段階での各頂点の位置を用いて次の時間段階の隣接する頂点の相対的な位置を予測し計算する。このために、位置算出モジュール１０に含まれた速度算出部１１において、各時間段階において各頂点の速度を表す速度ベクトルとしてのｖを次式２によって計算する（Ｓ２０１）。各時間段階は、０、１、２、…、ｎ−１、ｎのインデックスで表され、Δｔは、各時間段階の間の時間間隔を意味する。
【００１８】
式２
【００１９】
【数２】
2010515995.tif 000004
【００２０】
位置算出部１２では、前の時間段階（ｎ）とその前の時間段階（ｎ−１）の速度を用いて次の時間段階（ｎ＋１）での各頂点の相対的な位置を計算する（Ｓ２０２）。各頂点の相対的な位置は、各頂点の予測された位置ベクトルの差として求められ、エッジベクトルにて表される。先ず、ｉ番目頂点及びｊ番目頂点の予測された位置ベクトル
【００２１】
【数３】
2010515995.tif 000005
【００２２】
及び
【００２３】
【数４】
2010515995.tif 000006
【００２４】
は、次式３によって計算される。
【００２５】
式３
【００２６】
【数５】
2010515995.tif 000007
【００２７】
予測された位置ベクトルが計算されると、ｊ番目頂点の位置ベクトルとｉ番目頂点の位置ベクトルの差を表すエッジベクトルｅｉ,ｊは、次式４のように定義される。
【００２８】
式４
【００２９】
【数６】
2010515995.tif 000008
【００３０】
次の時間段階（ｎ＋１）でのエッジベクトルｅｉ,ｊの予測値である
【００３１】
【数７】
2010515995.tif 000009
【００３２】
は、次式５によって計算される。式５におけるＬは、ｊ番目頂点とｉ番目頂点との間の初期の長さを表すスカラー量である。
【００３３】
式５
【００３４】
【数８】
2010515995.tif 000010
【００３５】
位置算出部１２では、上記式３ないし式５によって隣接する頂点間の相対的な位置を表すエッジベクトルの値を予測し計算する。計算された
【００３６】
【数９】
2010515995.tif 000011
【００３７】
の値は、分析モジュール２０に送られる。
【００３８】
分析モジュール
分析モジュール２０に含まれた力算出部２１は、上記位置算出モジュール１０で計算された
【００３９】
【数１０】
2010515995.tif 000012
【００４０】
を用いて、それぞれの頂点に印加される力を計算する（Ｓ２０３）。例えば、ｉ番目頂点とｊ番目頂点との間の内部的力によるエネルギーは、次式６によって定義される。
【００４１】
式６
【００４２】
【数１１】
2010515995.tif 000013
【００４３】
上記式６において、ｋは、ｊ番目頂点とｉ番目頂点との間の弾性を表す弾性係数であって、ｋの大きさは、表現対象クロースの硬さによって変わる。例えば、伸縮し難いクロースの場合、ｋの値は非常に大きくなり、伸縮し易いクロースの場合は、ｋの値が小くなる。
【００４４】
上記式６に含まれたｅｉ,ｊをクロースに含まれる頂点全体に対して拡張したベクトルｅを、次式７のように定義する。ここで、ｅｉ,ｊは、上記式４のように定義されるので、それぞれのｅｉ,ｊに対して、各頂点の位置ベクトルｘで解きなおすと、次式７の右辺のように表し得る。
【００４５】
式７
【００４６】
【数１２】
2010515995.tif 000014
【００４７】
上記式７によって定義されたｅを、上記式６に代入し、ｉ番目頂点とｊ番目頂点との間のエネルギーＥｉ,ｊを、クロースに含まれた頂点全体に対して合算すると、全体クロースのエネルギーＥが、次式８によって計算される。
【００４８】
式８
【００４９】
【数１３】
2010515995.tif 000015
【００５０】
上記式８によって計算されたエネルギーを位置に応じて積分すると、それぞれの頂点に印加される力ベクトルＦを次式９によって計算することができる。
【００５１】
式９
【００５２】
【数１４】
2010515995.tif 000016
【００５３】
上記式９によって計算された力のほか、重力などの各頂点に印加される外力がある場合は、力ベクトルＦに外力によるベクトルを加える必要がある。
【００５４】
力算出部２１においてクロース全体に印加される力ベクトルが計算されると、方程式作成部２２では、それを用いてクロース全体の線形運動方程式を作成する（Ｓ２０４）。先ず、計算された力ベクトルをさらに位置ベクトルによって積分すれば、頂点全体のジャコビアン（Ｊａｃｏｂｉａｎ）Ｊを得ることができる。
【００５５】
式１０
【００５６】
【数１５】
2010515995.tif 000017
【００５７】
上記式１０において、ｋは弾性係数で定数であり、ベクトルＴも上記式７にて定義されたように定数行列であるので、ジャコビアン全体も定数行列になる。
【００５８】
方程式作成部２２では、計算されたジャコビアンを代入して半暗黙的積分のための運動方程式を作成する。作成された運動方程式は、次式１１のように表される。
【００５９】
式１１
【００６０】
【数１６】
2010515995.tif 000018
【００６１】
上記式１１において、（ｎ）と（ｎ＋１）は、時間段階を表すインデックスである。したがって、ｘ（ｎ）、Ｆ（ｎ）及びｖ（ｎ）のそれぞれは、ｎ時間段階での全体頂点の位置、頂点に印加される力、及び速度を表すベクトルである。また、ｍは、各頂点の質量を表し、Ｉは、単位行列を表し、ｈは、各時間段階の間の時間間隔（Δｔ）を表す。上記式１１をｍで割ると、次式１２を得ることができる。
【００６２】
式１２
【００６３】
【数１７】
2010515995.tif 000019
【００６４】
上記式１２にて表された運動方程式において、右辺に位置した算式及び左辺に位置したそれぞれの括弧中の計算式を、次式１３ないし式１５によって一つの文字にてまとめることができる。
【００６５】
式１３
【００６６】
【数１８】
2010515995.tif 000020
【００６７】
式１４
【００６８】
【数１９】
2010515995.tif 000021
【００６９】
式１５
【００７０】
【数２０】
2010515995.tif 000022
【００７１】
上記式１３ないし式１５に定義された文字を用いて、上記式１２を線形方程式に定義すると、次式１６のとおりである。
【００７２】
式１６
【００７３】
【数２１】
2010515995.tif 000023
【００７４】
更新モジュール
更新モジュール３０では、分析モジュール２０において作成された上述の線形方程式を解いて、各頂点位置の座標変化量を計算する（Ｓ２０５）。本発明の一実施例において、更新モジュール３０は、計算過程を高速化するために、各頂点の運動によって値が異ならないシステム行列を予め計算し、記憶部３１に記憶しておくことができる。
【００７５】
記憶部３１に記憶されるシステム行列について説明すれば、次のとおりである。クロースに含まれる全体頂点の位置変化量をベクトルｘで表すことができる。ｘでは、各頂点毎に座標変化量が表されるが、適切な置換行列をかけることにより、各頂点のｘ座標、ｙ座標、及びｚ座標に対し、それぞれの座標軸毎に座標変化量を一緒に表すことが可能である。上述した過程が次式１７によって遂行される。
【００７６】
式１７
【００７７】
【数２２】
2010515995.tif 000024
【００７８】
分析モジュール２０において計算された線形方程式としての上記式１６において、Ａ及びｂ行列に置換行列Ｐを適用すれば、次式１８が得られる。
【００７９】
式１８
【００８０】
【数２３】
2010515995.tif 000025
【００８１】
Ａｕ、Ａｖ及びＡｗのそれぞれは、ｘ座標、ｙ座標、及びｚ座標に対して分離されたＡ行列を表し、それぞれの行列は、いずれも同じ値を有するようになる。上記式１８を線形方程式としての上記式１６に代入すると、次式１９が得られる。
【００８２】
式１９
【００８３】
【数２４】
2010515995.tif 000026
【００８４】
置換行列を適用した結果、既存のＡ行列より１／３の列と行の個数を有するＡｐ行列によって各座標毎に分離して計算される運動方程式が作成された。Ａｐの値は、コレスキー分解を用いて、次式２０によって予め計算することができる。
【００８５】
式２０
【００８６】
【数２５】
2010515995.tif 000027
【００８７】
コレスキー分解は、よく知られた方法であるので、本明細書では詳しい説明を略する。記憶部３１では、上記コレスキー分解によってシステム行列Ｌを予め計算して記憶する。システム行列Ｌの値は、クロースの運動による頂点の位置変化に関係なく一定に保持される。したがって、計算されたシステム行列の値を記憶部３１に記憶しておき、各時間段階毎にそれをさらに計算することなく、記憶部３１から読み込んで運動方程式を計算するのに用いることができる。このようにシステム行列の値を予め計算し記憶しておくことにより、クロースをシミュレートする速度を著しく高めることができるようになる。
【００８８】
更新モジュール３０に含まれた積分部３２では、記憶部３１に記憶された行列Ｌの値を用いて上記式１８の右辺に表された線形方程式のそれぞれを解く（Ｓ２０５）。ｂｕ、ｂｖ、ｂｗのそれぞれの値は、上記式１５を用いて半暗黙的積分によって計算することができる。上述した積分過程において、それぞれの座標に関する運動方程式は、並列演算環境下で複数のプロセッサを使って並列的に遂行することができる。半暗黙的積分方法は、よく知られた方法であるので、本明細書では詳しい説明を略する。積分部３２は、半暗黙的積分によって全体頂点に関する各座標値の変化量であるｕ、ｖ、ｗを計算することができ、前の時間段階での全体頂点の位置を表すベクトルとしてのｘ（ｎ）に変化量を加えることにより、更新された位置ベクトルｘ（ｎ＋１）を得るようになる（Ｓ２０６）。
【００８９】
上述した過程によって、表現対象であるクロース上の各頂点の時間経過による位置変化を予測し、予測された位置を用いて導出したエネルギーを用いて力を計算し、計算された力を適用した運動方程式を解いて各頂点の位置を正確にシミュレートすることができる。本発明によるクロース・シミュレーションシステム及び方法は、各頂点の位置が積分によって収斂される速度が早く、収斂が保障されるため、安定的にクロースをシミュレートすることができる。また、各頂点間のエネルギーを新たに定義することにより、従来技術と異なって、クロースの物性表現を自由に調節することができ、クロース表現において質感とリアリティーが増大する。
【００９０】
本発明によるリアルタイム・クロース・シミュレーションシステム及び方法は、ゲームを含むリアルタイム３Ｄアプリケーションにおいて活用可能であり、既存のアニメーション及び特殊効果にも効率よく利用可能である。本発明は、現在アニメーションプロダクションなどで使用中のシミューレーターの性能を遥かに超えつつも、同じレベルのシミュレーション品質を有することから、既存の低速シミュレーション・ソフトウェアからは得られないリアリティーの増大、製作期間の短縮、及び製作コストの節減効果を奏し得る。また、本発明によるリアルタイム・クロース・シミュレーションシステム及び方法は、服を直接着用してみるのではなく仮想環境で着用してみることができるリアルタイム仮想着用システムにも活用可能である。
【００９１】
以上、本発明の特定実施例を図示し説明したが、本発明の技術思想は、添付した図面と上記した説明内容に限定されず、本発明の思想を逸脱しない範囲内で種々の形態の変形が可能であることは、当該分野における通常の知識を有する者には自明な事実であり、このような形態の変形は、本発明の精神に違反しない範囲内で本発明の特許請求の範囲に属するであろう。
【符号の説明】
【００９２】
１０：位置算出モジュール
１１：速度算出部
１２：位置算出部
２０：分析モジュール
２１：力算出部
２２：方程式作成部
３０：更新モジュール
３１：記憶部
３２：積分部
【図１】
2010515995.tif 000052
【図２】
2010515995.tif 000053
【手続補正書】
【提出日】平成20年9月22日(2008.9.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
クロース上に位置した複数の頂点の前の時間段階での位置を用いて、次の時間段階での隣接する前記頂点の相対的な位置の予測値を算出する位置算出モジュールと、
前記相対的な位置の予測値を用いて前記各頂点の運動方程式を作成する分析モジュール、及び
前記運動方程式を適用して前記各頂点の位置を更新する更新モジュールと、を含むことを特徴とするクロース・シミュレーションシステム。
【請求項２】
前記位置算出モジュールは、
前の時間段階での前記頂点の速度を求める速度算出部、及び
算出された速度に基づいて次の時間段階での隣接する前記頂点の相対的な位置の予測値を求める位置算出部を含むことを特徴とする請求項１に記載のクロース・シミュレーションシステム。
【請求項３】
前記位置算出部は、次の時間段階において前記頂点のうちｉ番目頂点の予測された位置を
【数１】
2010515995.tif 000054
、ｊ番目頂点の予測された位置を
【数２】
2010515995.tif 000055
、前記ｉ番目頂点と前記ｊ番目頂点との間の初期の長さをＬ、前記ｉ番目頂点と前記ｊ番目頂点の相対的な位置の予測値を
【数３】
2010515995.tif 000056
とした場合、次式によって前記相対的な位置の予測値を求めることを特徴とする請求項２に記載のクロース・シミュレーションシステム。
【数４】
2010515995.tif 000057
【請求項４】
前記位置算出部は、前の時間段階（ｎ）において前記頂点のうちｉ番目頂点の位置を
【数５】
2010515995.tif 000058
、前の時間段階（ｎ）において前記ｉ番目頂点の速度を
【数６】
2010515995.tif 000059
、前の時間段階（ｎ−１）において前記ｉ番目頂点の速度を
【数７】
2010515995.tif 000060
、前記時間段階の間の時間間隔をΔｔ、次の時間段階において前記ｉ番目頂点の予測された位置を
【数８】
2010515995.tif 000061
とした場合、次式によって次の時間段階において前記ｉ番目頂点の予測された位置を求めることを特徴とする請求項２に記載のクロース・シミュレーションシステム。
【数９】
2010515995.tif 000062
【請求項５】
前記分析モジュールは、
隣接する前記頂点間のエネルギーを用いて前記各頂点に印加される力を算出する力算出部、及び
算出された力を用いて前記各頂点の運動方程式を作成する方程式作成部を含むことを特徴とする請求項１に記載のクロース・シミュレーションシステム。
【請求項６】
前記力算出部は、前の時間段階において前記頂点のうちｉ番目頂点とｊ番目頂点との間の相対的な位置を
【数１０】
2010515995.tif 000063
、次の時間段階において前記ｉ番目頂点と前記ｊ番目頂点の相対的な位置の予測値を
【数１１】
2010515995.tif 000064
、予め設定された弾性係数をｋ、前記ｉ番目頂点及び前記ｊ番目頂点との間のエネルギーをＥｉ,ｊとした場合、次式によって前記エネルギーを求めることを特徴とする請求項５に記載のクロース・シミュレーションシステム。
【数１２】
2010515995.tif 000065
【請求項７】
前記更新モジュールは、
前記頂点の運動によって値が異ならないシステム行列の値を算出して記憶する記憶部、及び
前記システム行列を用いて前記運動方程式を演算し、該演算結果によって前記各頂点の位置を更新する積分部を含むことを特徴とする請求項１に記載のクロース・シミュレーションシステム。
【請求項８】
前記記憶部は、コレスキー分解によって前記システム行列を算出し記憶することを特徴とする請求項７に記載のクロース・シミュレーションシステム。
【請求項９】
前記積分部は、半分暗黙的積分によって前記運動方程式を演算することを特徴とする請求項７に記載のクロース・シミュレーションシステム。
【請求項１０】
クロース上に位置した複数の頂点の前の時間段階での位置を用いて、次の時間段階での隣接する前記頂点の相対的な位置の予測値を算出する段階と、
前記相対的な位置の予測値を用いて前記各頂点の運動方程式を作成する段階、及び
前記運動方程式を適用して前記各頂点の位置を更新する段階と、を含むことを特徴とするクロース・シミュレーション方法。
【請求項１１】
前記相対的な位置の予測値を算出する段階は、
前の時間段階での前記頂点の速度を求める段階、及び
求められた速度に基づいて次の時間段階での隣接する前記頂点の相対的な位置の予測値を求める段階を含むことを特徴とする請求項１０に記載のクロース・シミュレーション方法。
【請求項１２】
前記相対的な位置の予測値を求める段階は、次の時間段階において前記頂点のうちｉ番目頂点の予測された位置を
【数１３】
2010515995.tif 000066
、ｊ番目頂点の予測された位置を
【数１４】
2010515995.tif 000067
、前記ｉ番目頂点と前記ｊ番目頂点との間の初期の長さをＬ、前記ｉ番目頂点と前記ｊ番目頂点の相対的な位置の予測値を
【数１５】
2010515995.tif 000068
とした場合、次式によって前記相対的な位置の予測値を求める段階を含むことを特徴とする請求項１１に記載のクロース・シミュレーション方法。
【数１６】
2010515995.tif 000069
【請求項１３】
前記相対的な位置の予測値を求める段階は、前の時間段階（ｎ）において前記頂点のうちｉ番目頂点の位置を
【数１７】
2010515995.tif 000070
、前の時間段階（ｎ）において前記ｉ番目頂点の速度を
【数１８】
2010515995.tif 000071
、前の時間段階（ｎ−１）において前記ｉ番目頂点の速度を
【数１９】
2010515995.tif 000072
、前記時間段階間の時間間隔をΔｔ、次の時間段階において前記ｉ番目頂点の予測された位置を
【数２０】
2010515995.tif 000073
とした場合、次式によって次の時間段階において前記ｉ番目頂点の予測された位置を求める段階を含むことを特徴とする請求項１１に記載のクロース・シミュレーション方法。
【数２１】
2010515995.tif 000074
【請求項１４】
前記方程式を作成する段階は、
隣接する前記頂点間のエネルギーを用いて前記各頂点に印加される力を算出する段階、及び
算出された力を用いて前記各頂点の運動方程式を作成する段階を含むことを特徴とする請求項１０に記載のクロース・シミュレーション方法。
【請求項１５】
前記各頂点に印加される力を算出する段階は、前の時間段階において前記頂点のうちｉ番目頂点とｊ番目頂点との間の相対的な位置を
【数２２】
2010515995.tif 000075
、次の時間段階において前記ｉ番目頂点と前記ｊ番目頂点の相対的な位置の予測値を
【数２３】
2010515995.tif 000076
、予め設定された弾性係数をｋ、前記ｉ番目頂点と前記ｊ番目頂点との間のエネルギーをＥｉ,ｊとした場合、次式によって前記エネルギーを求める段階を含むことを特徴とする請求項１４に記載のクロース・シミュレーション方法。
【数２４】
2010515995.tif 000077
【請求項１６】
前記更新する段階は、
前記頂点の運動によって値が異ならないシステム行列の値を算出する段階、及び
前記システム行列を用いて前記運動方程式を演算し、該演算結果によって前記各頂点の位置を更新する段階を含むことを特徴とする請求項１０に記載のクロース・シミュレーション方法。
【請求項１７】
前記算出する段階は、コレスキー分解によって前記システム行列の値を算出する段階を含むことを特徴とする請求項１６に記載のクロース・シミュレーション方法。
【請求項１８】
前記更新する段階は、半暗黙的積分によって前記運動方程式を演算する段階を含むことを特徴とする請求項１６に記載のクロース・シミュレーション方法。
【国際調査報告】
2010515995.tif 000078
2010515995.tif 000079