(57)【特許請求の範囲】
【請求項１】
少なくとも１つの衣類を伴ったアバタを設計するためのコンピュータ実施方法であって、
Ｓ１）スケルトン（ＳＮ）と該スケルトンを覆うスキン（ＳＫ）とを含むアバタのデジタルモデルを提供するステップであって、前記スケルトンはそれぞれの線分によって表わされる複数のボーン（Ｂ１，Ｂ２）を含み、前記スキンは面を定義する辺によって接続された複数の頂点（ｖｓ１−ｖｓ７）を有するメッシュを含み、前記メッシュの各頂点は前記スケルトンの少なくとも１つのボーンに関連付けられ、前記メッシュは前記スケルトンを含む内側容積を定義する、該提供するステップと、
Ｓ２）面を定義する辺によって接続された複数の頂点（ｖｓ１−ｖｓ７）を有するメッシュを含む衣類（ＧＴ）のデジタルモデルを提供するステップであって、各頂点はそれぞれの加重係数を通じて前記アバタの前記デジタルモデルの前記スケルトンの少なくとも１つのボーンに関連付けられた、該提供するステップ、および、衣類の前記デジタルモデルを、
変形すること無くアバタの前記デジタルモデルに付加するステップと、
Ｓ３）変位方向（ｄｄ１−ｄｄ７）を、前記衣類の変形前のデジタルモデルの前記メッシュの各頂点に関連付けるステップであって、前記変位方向は、前記スケルトンおよび前記加重係数に依存する、該関連付けるステップと、
Ｓ４）前記アバタの前記デジタルモデルの前記スキンと前記衣類の前記変形前のデジタルモデルの前記メッシュとの間の衝突を検出するステップ、および、衝突が検出されたときは常に、前記衣類の前記デジタルモデルの前記メッシュの頂点を、前記変位方向に沿って前記アバタの前記デジタルモデルの前記スケルトンから遠ざけるように変位させるステップと
を具えたことを特徴とするコンピュータ実施方法。
【請求項２】
前記ステップＳ４）は、前記頂点に関連付けられている各ボーンの最も近い点を頂点自体に接続するベクトルの加重平均として、前記変位方向を決定するステップであって、前記加重平均は、前記頂点を前記ボーンに関連付けている加重係数を用いて計算されている、該決定するステップを含むことを特徴とする請求項１記載のコンピュータ実施方法。
【請求項３】
前記ステップＳ４）は、下記のサブステップ：
Ｓ４１）前記内側容積内に存在する前記衣類の前記デジタルモデルの前記メッシュの頂点を識別するステップと、および、それらを外側空間に置くのに十分な変位量（Ｄ３）だけ変位方向に沿ってそれらを変位させるステップと
を含むことを特徴とする請求項１又は２記載のコンピュータ実施方法。
【請求項４】
前記頂点自体に始点を有し、および前記アバタの前記デジタルモデルの前記スケルトンから遠ざかるように方向付けられた、前記頂点の変位領域に沿って横たわる光線が、前記アバタの前記デジタルモデルの前記スキンの面と交差するかどうかを決定し、交差する場合、前記面の前記頂点の少なくとも１つが、前記衣類の前記デジタルモデルの前記メッシュの前記頂点がやはり関連付けられているボーンに関連付けられているかどうかを決定することによって、前記内側容積内に存在する前記衣類の前記モデルの前記メッシュの頂点が識別されることを特徴とする請求項３記載のコンピュータ実施方法。
【請求項５】
下記のサブステップ：
Ｓ４２）前記衣類の前記デジタルモデルの前記メッシュの辺が、前記アバタの前記デジタルモデルの前記スキンの面と交差することに起因する、前記アバタと前記衣類との間の衝突を識別するステップと、および、前記変位方向に沿って前記スケルトンから遠ざかるように、前記衣類の前記デジタルモデルの前記メッシュの前記各辺の頂点を反復的に変位させることによって前記衝突を解決するステップと
をさらに具え、
該サブステップＳ４２）は前記サブステップＳ４１）の後に実行されることを特徴とする請求項３又は４記載のコンピュータ実施方法。
【請求項６】
前記サブステップＳ４２）は、前記アバタの前記デジタルモデルの前記スキンの面と交差する前記衣類の前記デジタルモデルの前記メッシュの前記各辺の頂点の中で、最も低い累積変位だけ変位されている１つを変位させるステップを含むことを特徴とする請求項５記載のコンピュータ実施方法。
【請求項７】
下記のサブステップ：
Ｓ４３）前記衣類の前記デジタルモデルの前記メッシュの面が、前記アバタの前記デジタルモデルの前記スキンの辺と交差することに起因する、前記アバタと前記衣類との間の衝突を識別するステップと、および、前記変位方向に沿って前記スケルトンから遠ざかるように前記デジタルモデルの前記メッシュの前記各面の頂点を反復的に変位させることによって前記衝突を解決するステップと
をさらに具え、
該サブステップＳ４３）は、前記サブステップＳ４２）の後に実行されることを特徴とする請求項３ないし６のいずれか１つに記載のコンピュータ実施方法。
【請求項８】
前記サブステップＳ４３）は、前記アバタの前記デジタルモデルの前記スキンの辺と交差する前記衣類の前記デジタルモデルの前記メッシュの前記各面の頂点の中で、最も低い累積変位だけ変位されている１つを変位させるステップを含むことを特徴とする請求項７記載のコンピュータ実施方法。
【請求項９】
前記サブステップＳ４３）は、前記サブステップＳ４２）の後に実行されることを特徴とする請求項７又は８記載のコンピュータ実施方法。
【請求項１０】
下記のステップ：
Ｓ５）前記衣類の前記デジタルモデルの各頂点（ｖｇ６）について、該累積変位が隣接する頂点（ｖｇ５，ｖｇ７）の平均累積変位（Ｄcum７）よりも低いかどうかを決定するステップと、低い場合に、該累積変位（Ｄ６）が前記平均累積変位に等しくなるように前記頂点をさらに変位させるステップと
をさらに具え、
該ステップＳ５）は、交互に実行されることを特徴とする請求項１ないし９のいずれか１つに記載のコンピュータ実施方法。
【請求項１１】
下記のステップ：
Ｓ６）前記衣類のデジタルモデルの前記メッシュを前記スキンの一部として含むことによって、前記アバタのデジタルモデルを更新するステップ
をさらに具え、
これによって、該方法は一連の衣類を前記アバタに追加することを反復的に実行されることを特徴とする請求項１ないし１０のいずれか１つに記載のコンピュータ実施方法。
【請求項１２】
コンピュータに請求項１ないし１１のいずれか１つに記載のコンピュータ実施方法を実行させることを特徴とするコンピュータプログラム。
【請求項１３】
請求項１２記載のコンピュータプログラムを記録したことを特徴とするコンピュータ可読記憶媒体。
【請求項１４】
メモリおよびグラフィカルユーザインターフェースに結合されたプロセッサを備えたコンピュータ支援設計システムであって、前記メモリは、請求項１ないし１１のいずれか１つに記載のコンピュータ実施方法を当該コンピュータ支援設計システムに実行させるためのコンピュータ実行可能命令を記憶したことを特徴とするコンピュータ支援設計システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、少なくとも１つの衣類を装着したアバタを設計するためのコンピュータ実施方法に関する。
【背景技術】
【０００２】
以下において、単語「アバタ（ａｖａｔａｒ）」とは、人間若しくは動物の体、人間型（ヒューマノイド（ｈｕｍａｎｏｉｄ））若しくは動物型の生物、或いは植物若しくは無生物までもコンピュータで生成される２次元又は（しばしば）３次元表現を示すように幅広く用いられる。しかし、しばしば、アバタとは、人間若しくはヒューマノイドの体を表現する。好ましくは、必ずしもそうとは言えないが、アニメ化することができる。
【０００３】
単語「衣類（ｇａｒｍｅｎｔ）」とは、例えば帽子等のアクセサリーを含む衣服等を示し、アバタに着用されるのに適している。
【０００４】
以下、３次元（又は、３Ｄ）オブジェクトは、３次元（３Ｄ）表現が可能な、オブジェクト又はデジタルモデルのことである。３Ｄ表現は、あらゆる角度から部位を観察できる。例えば、３Ｄアバタ又は衣類は、３Ｄ表現がされたとき、その表現が表示されているスクリーン内の軸のうちのいずれかの軸の回りで又はある軸の周りで処理されおよび調整される。
【０００５】
逆に、２次元（又は、２Ｄ）オブジェクトは、平面などの２次元（２Ｄ）表現のみが可能な、オブジェクト又はデジタルモデルのことである。例えば、２Ｄアバタ又は衣類は、表現が表示されているスクリーンの平面内で移動又はスクリーンに垂直な軸の周りで回転のみをする。
【０００６】
アバタは多くのアプリケーションで使用される。それらの１つが、コンピュータ支援設計（ＣＡＤ）であり、設計者は、例えば飛行機の座席の人間工学を研究するために、人間に対する、建物、オブジェクト、備品の一部、機械などの相互作用をシミュレートすることをＣＡＤに要求する。他のアプリケーションには、ビデオゲームおよび映画アニメーションがある。従って、グラフィック・ソフトウェアは、しばしば、例えばアバタのモフォロジー（ｍｏｒｐｈｏｌｏｇｙ）を変化させることによって、予め定義されたアバタのライブラリ（ｌｉｂｒａｒｙ）およびアバタを設計するツールを提供する。
【０００７】
多くの場合、アバタは、衣服を着用し、およびしばしば帽子又は宝石などのアクセサリーを身に付ける。これは、現実的な表現、および時には機能的な理由も獲得することが要求される（例えば、座席の人間工学は、ユーザが着ている衣服に依存として非常に異なるものとすることができる）。
【０００８】
アバタと衣類の両方は、コンピュータ・グラフィックス・システムのライブラリに記憶されたデジタルモデルによって常に表わされる。
【０００９】
そのため、衣類のデジタルモデルをアバタのモフォロジーおよびサイズに適合させることが可能なツールが必要となる。例えば、ドレスのモデルは、サイズおよびモフォロジーの異なる着用者に適合させなければならない。理想的には、アバタのモフォロジーおよびサイズが変化した場合、衣類は、それ自身素早くかつユーザの介入を最小限若しくは介入させること無く適合させるべきである。特に、そのようなソフトウェアのツールは、「衝突」又は「激突」、すなわち、衣類のいくつかのパーツがアバタの体内に置かれている状況を、識別および解決できるようにすべきである。
【００１０】
このような要求を満たすために、先行技術からいくつかのアプローチが知られている。
【００１１】
論文（例えば、非特許文献１参照）は、「リファレンス」ボディに適合するように設計された衣類を異なる「ターゲット」ボディに移転することを可能にする方法を説明している。この方法の主な難点は、リファレンスボディが知られている必要があることであり、方法は、衣類をライブラリから抽出して、それをアバタに適合させることを可能にしない。さらに、それは、複雑であり、したがって、遅い（かなり複雑な衣類を適合させるには、数分のプロセッサ時間が、必要とされる。
【００１２】
論文（例えば、非特許文献２参照）において説明されているＤＲＡＰＥシステムは、異なる形状およびポーズの合成ボディ上で衣服を動かすための完全なシステムである。それは、物理学ベースのシミュレーションのデータベースから学習された、衣服のモデルを使用する。衣類は限りない数の異なるアバタに適合されなければならないという、ここで考察されている問題にこの方法を適用することは、あまりにも複雑である。さらに、ＤＲＡＰＥは、場合によっては、非現実的な結果をもたらすことがあることが、見出された。衣類のフィットを改善するために使用される、ＤＲＡＰＥのサブセットは、そのような物理学ベースのシミュレーションのデータベースを必要とせず、衣類を表す任意のメッシュに直接的に適用されることができる。しかしながら、それは、アバタの僅かな変更に適合されるにすぎず、例えば、ドレスを妊婦に適合させるために使用されることができない。
【先行技術文献】
【非特許文献】
【００１３】
【非特許文献１】Ｒ．Ｂｒｏｕｅｔ他、「Ｄｅｓｉｇｎ  Ｐｒｅｓｅｒｖｉｎｇ  Ｇａｒｍｅｎｔ  Ｔｒａｎｓｆｅｒ」、ＡＣＭ  Ｔｒａｎｓａｃｔｉｏｎ  ｏｆ  Ｇｒａｐｈｉｃｓ（ＴＯＧ）  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ＡＣＭ、ＳＩＧＧＲＡＰＨ  ２０１２  Ｖｏｌｕｍｅ  ３１  Ｉｓｓｕｅ  ４、２０１２年７月
【非特許文献２】Ｐｅｎｇ  Ｇｕａｎ他、「ＤＲＡＰＥ：ＤＲｅｓｓｉｎｇ  Ａｎｙ  ＰＥｒｓｏｎ」；ＡＣＭ  Ｔｒａｎｓ．  ｏｎ  Ｇｒａｐｈｉｃｓ（Ｐｒｏｃ．  ＳＩＧＧＲＡＰＨ）、３１（４）：３５：１−３５：１０、２０１２年７月
【非特許文献３】Ｍｉｎｇ  Ｃ．Ｌｉｎ、「Ｅｆｆｉｃｉｅｎｔ  Ｃｏｌｌｉｓｉｏｎ  Ｄｅｔｅｃｔｉｏｎ  ｆｏｒ  Ａｎｉｍａｔｉｏｎ  ａｎｄ  Ｒｏｂｏｔｉｃｓ」、ＰｈＤ  Ｔｈｅｓｉｓ、Ｕｎｉｖｅｒｓｉｔｙ  ｏｆ  Ｃａｌｉｆｏｒｎｉａ、Ｂｅｒｋｅｌｅｙ  （１９９３）
【発明の概要】
【発明が解決しようとする課題】
【００１４】
そこで、本発明では、少なくとも１つの衣類を装着したアバタを設計するための改善されたコンピュータ実施方法を提供する。
【課題を解決するための手段】
【００１５】
本発明は、先行技術の上で言及された難点を克服することを目的とする。より詳細には、それは、実施が簡単で高速であり、完全に自動的であり、ほとんどの場合に視覚的に妥当な結果をもたらす、衣類をアバタに適合させる方法を提供することを目的とする。
【００１６】
本発明によれば、この目的は、多くのアプリケーションでキャラクタアニメーションの背景技術である、スキニングおよびスケルタルアニメーションに基づいた方法によって達成される。この技術によれば、アバタは、スケルトンと、表面を定義するメッシュであるスキンとによって構成される。メッシュの各頂点は、スケルトンの１または複数のボーンにアタッチされ、各アタッチは、異なる加重係数（「スキン重み」）を有する頂点に影響を及ぼす。スケルトンが、動かされた場合、スキンの頂点は、ボーンの動きに追随し、各頂点は、それがアタッチされたすべてのボーンの動きの加重平均によって変換された初期位置に対応する変更された位置を取り、加重は、「スキン重み」によって提供される。
【００１７】
本発明の目的は、その場合、少なくとも１つの衣類を着たアバタを設計するためのコンピュータ実施方法であり、方法は、
Ｓ１）スケルトンおよびスケルトンを覆うスキンを含むアバタのデジタルモデルを提供するステップであって、スケルトンは、それぞれの線分によって表される複数のボーンを含み、スキンは、面を定義する辺によって接続される複数の頂点を含むメッシュを含み、メッシュの各頂点は、スケルトンの少なくとも１つのボーンに関連付けられ、メッシュは、スケルトンを包含する内側容積を定義する、ステップと、
Ｓ２）面を定義する辺によって接続される複数の頂点を有するメッシュを含む衣類のデジタルモデルを提供するステップであって、各頂点は、それぞれの加重係数を通して、アバタのモデルのスケルトンの少なくとも１つのボーンに関連付けられる、ステップと、
Ｓ３）変位方向を衣類のモデルのメッシュの各頂点に関連付けるステップであって、前記変位方向は、スケルトンおよび前記加重係数に依存する、ステップと、
Ｓ４）アバタのモデルのスキンと衣類のモデルのメッシュとの間の衝突を検出するステップであって、衝突が検出された場合は常に、衣類のモデルのメッシュの頂点を、前記変位方向に沿ってアバタのモデルのスケルトンから遠ざかるように変位させる、ステップと、
を含む。
【００１８】
そのような方法の具体的な実施形態によれば、
−  前記ステップＳ３）は、前記頂点が関連付けられる各ボーンの最も近い点を頂点自体に接続する方向またはベクトルの加重平均として、前記変位方向を決定するステップを含み、加重平均は、頂点をボーンに関連付ける加重係数を使用して計算される。  
−  前記ステップＳ４）は、以下のサブステップ、すなわち、
Ｓ４１）前記内側容積内にある衣類のモデルのメッシュの頂点を識別し、それらを外側空間内に置くのに十分な変位量だけ、前記変位方向に沿って、それらを変位させるサブステップ
を含む。
【００１９】
この場合、頂点自体の上に始点を有し、アバタのモデルのスケルトンから遠ざかるように方向付けられた、前記頂点の変位領域に沿って横たわる光線が、アバタのモデルのスキンの面と交差するかどうかを決定し、交差する場合、前記面の頂点の少なくとも１つが、衣類のモデルのメッシュの前記頂点がやはり関連付けられるボーンに関連付けられるかどうかを決定することによって、前記内側容積内に存在する衣類のモデルのメッシュの頂点が識別される。  
−  方法は、前記サブステップＳ４１）の後で実施される、以下のサブステップ、すなわち、
Ｓ４２）衣類のモデルのメッシュの辺が、アバタのモデルのスキンの面と交差することに起因する、アバタと衣類との間の衝突を識別し、前記変位方向に沿って、スケルトンから遠ざかるように、衣類のモデルのメッシュの各前記辺の頂点を反復的に変位させることによって、前記衝突を解決するサブステップ
も含む。
【００２０】
さらに、前記サブステップＳ４２）は、アバタのモデルのスキンの面と交差する衣類のモデルのメッシュの各辺の頂点の中で、最短累積距離だけ変位させられた１つを変位させるサブステップを含む。  
−  方法は、前記サブステップＳ４２）の後で実施される、以下のサブステップ、すなわち、
Ｓ４３）衣類のモデルのメッシュの面が、アバタのモデルのスキンの辺と交差することに起因する、アバタと衣類との間の衝突を識別し、前記変位方向に沿って、スケルトンから遠ざかるように、モデルのメッシュの各前記面の頂点を反復的に変位させることによって、前記衝突を解決するサブステップ
をさらに含む。
【００２１】
さらに、前記サブステップＳ４３）は、アバタのモデルのスキンの辺と交差する衣類のモデルのメッシュの各面の頂点の中で、最短累積距離だけ変位させられた１つを変位させるサブステップを含む。  
−  前記サブステップＳ４３）は、前記サブステップＳ４２）の後で実施される。 
−  方法は、反復的に実施される以下のステップ、すなわち、
Ｓ５）衣類のモデルの各頂点について、その累積変位が、近隣頂点の平均累積変位よりも低いかどうかを決定し、低い場合、その累積変位が前記平均累積変位に等しくなるように、前記頂点をさらに変位させるステップ
をさらに含む。 
−  方法は、以下のステップ、すなわち、
Ｓ６）衣類の前記デジタルモデルのメッシュをそのスキンの一部として含むことによって、アバタの前記デジタルモデルを更新するステップ
をさらに含み、
それによって、方法は、一連の衣類を前記アバタに追加するために、反復的に実施される。
【００２２】
本発明の別の目的は、そのような方法をコンピュータシステムに実施させるコンピュータ実行可能命令を含む、コンピュータ可読データ記憶媒体上に記憶される、コンピュータプログラム製品である。
【００２３】
本発明の別の目的は、そのような方法をコンピュータシステムに実施させるコンピュータ実行可能命令を含む、コンピュータ可読データ記憶媒体である。
【００２４】
本発明の別の目的は、メモリおよびグラフィカルユーザインターフェースに結合されたプロセッサを備える、コンピュータ支援設計システムであって、メモリが、そのような方法をコンピュータ支援設計システムに実施させるコンピュータ実行可能命令を記憶する、コンピュータ支援設計システムである。
【００２５】
本発明の別の目的は、そのような方法によって設計されるのに適した、少なくとも１つの衣類を着たアバタである。
【図面の簡単な説明】
【００２６】
本発明の追加の特徴および利点は、添付の図面を併せて読まれる、以降の説明から明らかになる。
【図１】本発明の実施形態による、アバタおよび衣類のデジタルモデルの非常に概略的な図である。
【図２Ａ】図１のデジタルモデルに適用される、本発明の実施形態による方法の異なるステップを示す図である。
【図２Ｂ】図１のデジタルモデルに適用される、本発明の実施形態による方法の異なるステップを示す図である。
【図２Ｃ】図１のデジタルモデルに適用される、本発明の実施形態による方法の異なるステップを示す図である。
【図２Ｄ】図１のデジタルモデルに適用される、本発明の実施形態による方法の異なるステップを示す図である。
【図３Ａ】本発明の技術的結果を示す図である。
【図３Ｂ】本発明の技術的結果を示す図である。
【図３Ｃ】本発明の技術的結果を示す図である。
【図４】本発明の実施形態による方法のフローチャートである。
【図５】複数の重ね着される衣類を同じアバタに適合させることに対する、本発明の実施形態による方法の適用を示すフローチャートである。
【図６】本発明の実施形態による方法を実施するのに適するコンピュータシステムのブロック図である。
【図７】本発明の実施形態による方法を実施するのに適するコンピュータシステムのブロック図である。
【発明を実施するための形態】
【００２７】
図１は、単純な幾何学的形状を有する、例示的な２ＤアバタＡＶおよび衣類ＧＴのデジタルモデルを示している。
【００２８】
アバタのモデルは、スケルトンＳＮと、スケルトンを覆うスキンＳＫとを含む。スケルトンは、連結された直線分によって表されるボーンのセットを含む（例示的な実施形態では、スケルトンは、２つのボーンＢ１、Ｂ２からなる）。スキンは、辺によって接続された頂点のセット（ｖｓ１ないしｖｓ７）を含むメッシュによってモデル化され、または表される。３次元表現では、辺は、多角形面を画定するが、２次元では、辺と面の間に区別はない。スキンは、必ずしも閉じていないが、いかなる場合も、それは、スケルトンを包含するアバタの内側容積を定める。スキンの各頂点は、それぞれの加重係数を通して、スケルトンの１または複数のボーンに関連付けられる。これは、図１では明らかでないが、頂点ｖｓ１、ｖｓ２、ｖｓ７は、ボーンＢ１だけに関連付けられ（すなわち、１に等しい加重係数を有し）、頂点ｖｓ４、ｖｓ５、ｖｓ６は、ボーンＢ２だけに関連付けられ、頂点ｖｓ３は、ボーンＢ１およびボーンＢ２の両方に関連付けられ、それぞれ、０．３および０．７に等しい加重係数を有する（頂点のすべての加重係数の和は、通常は１に等しく取られる）。
【００２９】
一般に、アバタは、ライブラリから選択され、場合によっては、それは、衣類の追加による「着衣」の前に、形態を変えることによって変更される。これは、ボーンの長さおよび向きを変えることによって達成される。上述したように、スキンの頂点は、加重係数に応じて、スケルトンの変化に「追随」する。アバタの提供は、図４および図５のフローチャートでは、ステップＳ１）として示されている。
【００３０】
衣類ＧＴも、辺によって接続された頂点のセット（ｖｇ１ないしｖｇ７）を含むメッシュによって表される。３次元表現では、辺は、多角形面を画定するが、２次元では、辺と面の間に区別はない。スキンＳＫの場合のように、衣類の頂点は、それぞれの加重係数を通して、スケルトンのボーンに関連付けられ、有利には、加重係数は、衣類の設計者によって自由に選択され、衣類モデルの一部である。これは、図１では明らかでないが、頂点ｖｇ１、ｖｇ２、ｖｇ７は、ボーンＢ１だけに関連付けられ（すなわち、１に等しい加重係数を有し）、頂点ｖｇ３、ｖｇ４、ｖｇ５は、ボーンＢ２だけに関連付けられ、頂点ｖｇ６は、ボーンＢ１およびボーンＢ２の両方に関連付けられ、等しい加重係数（０．５）を有する。図１では、衣類ＧＴは、閉じられた多角形曲線として表されているが、たいていは、衣類は、（２Ｄでは）開いた曲線、または（３Ｄでは）面を定め、スキンのような閉じられたものではない。
【００３１】
一般に、衣類は、ライブラリから選択され、アバタに適合させられなければならず、それが、本発明の目的である。衣類の提供は、図４および図５のフローチャートでは、ステップＳ２）として示されている。
【００３２】
アバタのスキンと衣類が、「衝突」すること、すなわち、衣類のいくつかの頂点、辺、および／または面が、少なくとも一部には、内側容積内にあることが、図１において見られることができる。言い換えると、衣類のいくつかの辺は、スキンの面と交差し、および／またはスキンのいくつかの辺は、衣類の面と交差する（これらのケースは、２Ｄでは区別可能ではない）。図３Ｂは、より現実的なケースでの衝突の影響を示している。
【００３３】
ここで説明される実施形態は、アバタがそれを着るには大きすぎる衣類を「縮小する」ことを許可しないことに留意されたい。そのような状況では、（自ずと知られる）追加の縮小ステップは、好ましくは、衝突を検出して解決するステップの前に実施されるべきである。本発明によれば、衣類をアバタに適合させることは、衝突を検出して解決することによって、排他的に、または少なくとも本質的に実行される。対照的に、上で言及された論文（例えば、非特許文献１参照）によって開示された方法では、はるかに複雑な「比例スケーリング」方法が、実施され、衝突の解決だけで、後処理を構成する。
【００３４】
図３Ａは、（「スキン」の一部と見なされる）ズボン、ベルト、および下着を着た女性を表すアバタを示している。図３Ｂでは、衣類が、より正確には、ドレスが、アバタに追加されている。ベルトが衣類と「衝突」していることが、すなわち、それはドレスによって覆われ、したがって、隠されるべきであるのに見えていることが、見られることができる。図３Ｃは、本発明による方法を適用した後の着衣のアバタを示しており、ドレスは、自然で現実的な外観を保ちながら、今ではベルトを覆うように、拡大されている。本発明によれば、これは、完全に自動的な方法で達成される。図３Ｃの結果を達成することを可能にする、本発明の方法によって実施されるアルゴリズムが、図２Ａないし図２Ｄ、図４、および図５を参照して、今から詳細に説明される。
【００３５】
上述したように、図２Ａないし図２Ｄ、図４、および図５の実施形態による方法の最初の２つのステップは、アバタおよび衣類（またはより正確には、それらのデジタルモデル）を提供することにあり、これらのステップは、図４および図５のフローチャートでは、ステップＳ１）およびＳ２）として示されている。
【００３６】
続くステップ（フローチャートでは「Ｓ３」）は、衣類のモデルの頂点の各々についての変位方向を決定することにある。与えられた頂点について、その変位方向は、以下のように計算される。  
−  ０よりも高いスキン重みを有する各ボーンについて、アルゴリズムは、ボーンの最も近い点から頂点自体に対して延びるベクトルを計算する。 
−  このベクトルは、次に、正規化され、次に、スキン重み係数によって乗算される。
−  頂点について計算されたすべてのベクトルが、合算されて、単一のベクトルを作成し、それが、次に、（通常は１である）すべてのスキン重みの和によって除算される。
【００３７】
図２Ａでは、衣類の第ｉの頂点に関連付けられた変位方向は、「ｄｄｉ」でラベル付けされている。頂点ｖｇ１、ｖｇ２、ｖｇ３、ｖｇ４、ｖｇ５、ｖｇ７は、単一のボーンに関連付けられているので、対応する変位方向ｄｄ１、ｄｄ２、ｄｄ３、ｄｄ４、ｄｄ５、ｄｄ７は、関連付けられたボーン（ｖｇ１、ｖｇ２、ｖｇ７についてはＢ１、ｖｇ３、ｖｇ４、ｖｇ５についてはＢ２）の最も近い頂点から単に延びる。頂点ｖｇ６は、等しい重みで両方のボーンに関連付けられ、したがって、変位方向ｄｄ６は、Ｂ１およびＢ２の最も近い点からそれぞれ頂点自体に対して延びるベクトルｄｄ６ａ、ｄｄ６ｂの間の中間である。変位方向は、常にスケルトンから外側に方向付けられることに留意することが大切である。
【００３８】
方法の続くステップ（サブステップ「Ｓ４１」、「Ｓ４２」、「Ｓ４３」を含む、「Ｓ４」）では、衣類の現実的な外観を維持しながら、アバタのスキンとの衝突を解決するために、衣類の頂点が、変位させられる。これらの変位のすべては、ステップＳ３）において識別されたそれぞれの変位方向に沿って、より正確には、頂点の初期位置に始点を有し、アバタから遠ざかるように方向付けられた、変位方向に沿って横たわる「光線」に沿って実行される。衣類の変更中および変更後の頂点の位置が、次に、光線に沿った累積変位（すなわち、すべての個々の変位の和）を表す浮動小数点数によって定められることができる。図面への書き込み過ぎを避けるために、図２Ａないし図２Ｄでは、「変位方向」と「光線」の間の区別は、行われていない。
【００３９】
図２Ｂで説明されるサブステップＳ４１）は、スキンによって画定される内側容積内にある衣類の頂点を識別し、それらを外側空間内に置くのに十分な変位量だけ、変位方向に沿って、それらを変位させることにある。
【００４０】
衣類の頂点が、内側容積内にあるかどうかを決定することは、頂点に関連付けられた光線が、アバタのスキンの面と交差するかどうかを決定することを必要とする。交差する場合、面の頂点の少なくとも１つが、衣類の頂点がやはり関連付けられるボーンに関連付けられるかどうかを決定することも必要である。それ以外の場合、光線が、衣類によって覆われたものとは異なるアバタスキンの一部と交差するとき、「誤検出」が、発生する（すなわち、頂点が、内部空間内にあると誤って見なされることがある）。例えば、ズボンの上部に配置された頂点を発した光線は、アバタの手のスキンを捕える。ズボンは、手のスキンと同じボーンに関連付けられていないので、そのような状況は、容易に検出されることができる。
【００４１】
サブステップＳ４２）は、衣類の辺とアバタのスキンの面との間の衝突を識別して解決することを目的とする。衝突検出は、知られたアルゴリズムによって実行されることができ、文献（例えば、非特許文献３参照）を参照されたい。
【００４２】
交差が、検出されるたびに、衝突する辺の頂点が、対応する光線に沿って、与えられたオフセットだけ動かされる（その累積変位が、増やされる）。好ましくは、衝突する辺の頂点のうち、最も低い累積変位を有する１つが、動かされ、いくつかの辺が、同じ累積変位を有する場合、選択は、疑似ランダムである。このサブステップは、衝突が検出されなくなるまで、繰り返される。このステップが、予め決定された回数（例えば、３０回）よりも多く繰り返される場合、アルゴリズムは、失敗を返す。
【００４３】
サブステップＳ４３）は、アバタのスキンの辺と衣類の面との間の衝突を識別して解決することを目的とする。それは、先行サブステップと基本的に同じであるが、今度は、それは、動かされる衣類の面の頂点である（やはり、好ましくは、衝突する面の頂点のうち、動かされるのは、最も低い累積変位を有する１つである）。このサブステップも、ボディの辺と衣類の面との間のすべての衝突が解決されるまで、または予め決定された最大数の反復が実行されるまで、繰り返される。
【００４４】
サブステップ≪Ｓ４２≫と≪Ｓ４３≫の順序は、逆転されることができるが、しかしながら、≪Ｓ４３≫の前に≪Ｓ４２≫を実行することが、必要とされる反復の回数を減らし、したがって、計算コストを引き下げることが、見出されている。
【００４５】
図２Ｃは、サブステップ≪Ｓ４２≫および≪Ｓ４３≫を示している（２Ｄでは、「辺」と「面」の間に違いはなく、したがって、２種類の衝突の間の区別は、無意味である）。衣類の衝突する辺は、ｖｇ１とｖｇ７の間、およびｖｇ４とｖｇ５の間に構成されるそれらである。これらの衝突を解決するために、頂点ｖｇ７は、累積変位Ｄ７だけ、頂点ｖｇ４は、累積変位Ｄ４だけ、変位させられる。
【００４６】
変形された衣類は、衝突はないけれども、頂点ｖｇ４、ｖｇ７が尖った形状を形成するので、いくぶん不自然な外観を有することが、図２Ｃで見られることができる。したがって、スムージングステップＳ５）が、好ましくは、実行される。これは、各頂点に、近隣頂点のそれらの平均である累積変位を、その平均累積変位が頂点の「元の」累積変位よりも大きいならば、設定することによって行われる。これは、先行ステップにおけるように、頂点が外側にだけ動き、したがって、新しい衝突を生み出すことを回避することを保証する。このスムージングは、予め決定された回数（例えば、１００回）反復される。
【００４７】
図２Ｄは、衣類ＧＴの一部において実施された、スムージングステップＳ５）を示している。ステップＳ４）の終了時では、頂点ｖｇ６の累積変位は、頂点ｖｇ５のそれと同様に、ゼロであり、代わりに、頂点ｖｇ７の累積変位は、ゼロとは異なり（図２Ｃを参照）、その値は、Ｄcum７によって示される。Ｓ５）の最初の反復中に、頂点ｖｇ６は、それ自体の累積変位がゼロであり、近隣頂点ｖｇ５の累積変位とｖｇ７の累積変位の平均、すなわち、（Ｄcum７＋０）／２＝Ｄcum７／２だけ変位させられる。結論として、ｖｇ６は、Ｄ６＝Ｄcum７／２だけ変位させられる。次の反復では、ｖｇ５は、Ｄ６とＤ４の平均だけ変位させられ、以降も同様である。
【００４８】
上で定められたアルゴリズムは、アバタと１つの衣類との間の衝突を解決するために、使用されることができる。これが行われる場合、適合された衣類は、アバタのモデルに、より正確には、そのスキンに組み込まれることができ（図５のフローチャートのステップ「Ｓ６」）、それは、別の衣類の導入を可能にし、以降も同様である。
【００４９】
結論として、本発明の方法は、マルチレベルの衣類適合を、いかなるユーザ介入も必要とせず、また加重係数以外にいかなる追加情報も用いずに、非常に効率的に実行することを可能にする。さらに、衣類が、スキン重み情報を有するので、着衣のアバタは、直接的に動かされることができ、衣類は、スケルトンの動きに追随する。
【００５０】
本発明の方法は、ハードディスク、ソリッドステートディスク、またはＣＤ−ＲＯＭなどのコンピュータ可読媒体上に不揮発形態で適切なプログラムを記憶し、マイクロプロセッサおよびメモリを使用してプログラムを実行する、適切にプログラムされた汎用コンピュータによって、または場合によっては、コンピュータネットワークを含む、コンピュータシステムによって、実行されることができる。
【００５１】
本発明の例示的な実施形態による方法を実施するのに適したコンピュータ、より正確には、コンピュータ支援設計ステーションが、図６を参照して説明される。図６では、コンピュータは、上で説明されたプロセスを実行する中央処理装置（ＣＰＵ）Ｐを含む。プロセスは、実行可能プログラムとして、すなわち、コンピュータ可読命令のセットとして、ＲＡＭ  Ｍ１もしくはＲＯＭ  Ｍ２などのメモリ内に、もしくはハードディスクドライブ（ＨＤＤ）Ｍ３、ＤＶＤ／ＣＤドライブＭ４上に記憶されることができ、またはリモートに記憶されることができる。アバタデータベースおよび衣類データベースは、すなわち、本発明の方法に従って実行可能プログラムによって処理されるのに適した形式のアバタおよび衣類のデジタルモデルの編成されたセットも、メモリデバイスＭ１ないしＭ４の１もしくは複数上に、またはリモートに記憶される。
【００５２】
特許請求される本発明は、本発明のプロセスのコンピュータ可読命令ならびに／またはアバタおよび衣類データベースが記憶される、コンピュータ可読媒体の形態によって制限されない。例えば、命令およびデータベースは、ＣＤ、ＤＶＤ上に、フラッシュメモリ、ＲＡＭ、ＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ハードディスク、またはコンピュータ支援設計ステーションが通信するサーバもしくはコンピュータなどの他の任意の情報処理デバイス内に記憶されることができる。プログラムおよびデータベースは、同じメモリデバイス上に、または異なるメモリデバイス上に記憶されることができる。
【００５３】
さらに、本発明の方法を実施するのに適したコンピュータプログラムは、ＣＰＵ８００、ならびにＭｉｃｒｏｓｏｆｔ  ＶＩＳＴＡ、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ  ７、ＵＮＩＸ（登録商標）、Ｓｏｌａｒｉｓ、ＬＩＮＵＸ（登録商標）、Ａｐｐｌｅ  ＭＡＣ−ＯＳ、および当業者に知られた他のシステムなどのオペレーティングシステムと連携して動作する、ユーティリティアプリケーション、バックグラウンドデーモン、もしくはオペレーティングシステムのコンポーネント、またはそれらの組合せとして提供されることができる。
【００５４】
ＣＰＵ  Ｐは、米国のＩｎｔｅｌが販売するＸｅｎｏｎプロセッサ、もしくは米国のＡＭＤが販売するＯｐｔｅｒｏｎプロセッサであることができ、または米国のＦｒｅｅｓｃａｌｅ  Ｃｏｒｐｏｒａｔｉｏｎが販売するＦｒｅｅｓｃａｌｅ  ＣｏｌｄＦｉｒｅ、ＩＭＸ、もしくはＡＲＭなどの、他のプロセッサ種類であることができる。あるいは、ＣＰＵは、米国のＩｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎが販売するＣｏｒｅ２  Ｄｕｏなどのプロセッサであることができ、または当業者であれば理解するように、ＦＰＧＡ、ＡＳＩＣ、ＰＬＤ上で、もしくは個別論理回路を使用して実施されることができる。さらに、ＣＰＵは、上で説明された本発明のプロセスのコンピュータ可読命令を実行するために協力して働く、複数のプロセッサとして実施されることができる。
【００５５】
図６のコンピュータ支援設計ステーションは、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、およびインターネットなどのネットワークとインターフェースを取るための、米国のＩｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎが販売するＩｎｔｅｌ  Ｅｔｈｅｒｎｅｔ  ＰＲＯネットワークインターフェースカードなどの、ネットワークインターフェースＮＩも含む。コンピュータ支援設計ステーションは、Ｈｅｗｌｅｔｔ  Ｐａｃｋａｒｄ  ＨＰＬ２４４５ｗ  ＬＣＤモニタなどのディスプレイＤＹとインターフェースを取るための、米国のＮＶＩＤＩＡ  Ｃｏｒｐｏｒａｔｉｏｎが販売するＮＶＩＤＩＡ  ＧｅＦｏｒｃｅ  ＧＴＸグラフィックスアダプタなどの、ディスプレイコントローラＤＣをさらに含む。汎用Ｉ／ＯインターフェースＩＦは、キーボードＫＢ、ならびにローラボール、マウス、およびタッチパッドなどのポインティングデバイスＰＤとインターフェースを取る。ディスプレイ、キーボード、およびポインティングデバイスは、ディスプレイコントローラおよびＩ／Ｏインターフェースと一緒に、グラフィカルユーザインターフェースを形成する。
【００５６】
ディスクコントローラＤＫＣは、ＨＤＤ  Ｍ３およびＤＶＤ／ＣＤ  Ｍ４を、コンピュータ支援設計ステーションのコンポーネントのすべてを相互接続するための、ＩＳＡ、ＥＩＳＡ、ＶＥＳＡ、またはＰＣＩなどであることができる、通信バスＣＢＳと接続する。
【００５７】
ディスプレイ、キーボード、ポインティングデバイス、ならびにディスプレイコントローラ、ディスクコントローラ、ネットワークインターフェース、およびＩ／Ｏインターフェースの一般的な特徴および機能についての説明は、これらの特徴は知られているので、簡潔さのために本明細書では省かれる。
【００５８】
図７は、本発明の異なる例示的な実施形態による方法を実施するのに適したコンピュータシステムのブロック図である。
【００５９】
図７では、実行可能プログラムＥＸＰ、アバタデータベースＡＤＢ、および衣類データベースＧＤＢは、サーバＳＣに接続されたメモリデバイス上に記憶される。メモリデバイス、およびサーバの全体的アーキテクチャは、ディスプレイコントローラ、ディスプレイ、キーボード、および／またはポインティングデバイスが、サーバでは欠落していることを除いて、図６を参照して上で説明されたものと同じである。
【００６０】
サーバＳＣは、次に、ネットワークＮＷを介して、管理システムＡＤＳおよびエンドユーザコンピュータＥＵＣに接続される。
【００６１】
管理システムの、およびエンドユーザコンピュータの全体的アーキテクチャは、管理システムおよびエンドユーザコンピュータのメモリデバイスが、実行可能プログラムＥＸＰ、アバタデータベースＡＤＢ、および衣類データベースＧＤＢを記憶しないことを除いて、図６を参照して上で説明されたものと同じである。しかしながら、エンドユーザコンピュータは、以下で説明されるように、サーバの実行可能プログラムと協力するように設計されたクライアントプログラムを記憶する。
【００６２】
理解されることができるように、ネットワークＮＷは、インターネットなどの公衆ネットワーク、もしくはＬＡＮもしくはＷＡＮなどの私設ネットワーク、またはそれらの任意の組合せであることができ、ＰＳＴＮまたはＩＳＤＮサブネットワークも含むことができる。ネットワークＮＷは、イーサネット（登録商標）ネットワークのように、有線接続されることもでき、またはＥＤＧＥ、３Ｇ、および４Ｇ無線セルラシステムを含むセルラネットワークのように、無線であることができる。無線ネットワークは、ＷｉＦｉ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、または知られた他の任意の無線形態の通信であることもできる。したがって、ネットワークＮＷは、例示的なものにすぎず、本発明の範囲を決して限定しない。
【００６３】
エンドユーザコンピュータのメモリデバイス内に記憶され、そのＣＰＵによって実行されるクライアントプログラムは、ネットワークＮＷを介して、サーバ上のアバタデータベースおよび衣類データベースにアクセスする。これは、エンドユーザが、アバタと、そのアバタに適合させられた１または複数の衣類とを選択することを可能にする。それは、エンドユーザが、アバタの形態を変更し、特定の順序で並べられた選択された衣類をそれに着せるための命令を、サーバに送信することも可能にする。サーバは、図４および図５を参照して上で説明された処理を実行し、変更されて衣服を着せられたアバタのデジタルモデルを、再びネットワークＮＷを用いて、エンドユーザコンピュータに送信する。
【００６４】
ただ１つの管理システムＡＤＳおよび１つのエンドユーザシステムＥＵＸが、示されているが、システムは、制限なしに、任意の数の管理システムおよび／またはエンドユーザシステムをサポートすることができる。同様に、複数のサーバ、アバタデータベース、および衣類データベースも、本発明の範囲から逸脱することなく、システムにおいて実施されることができる。
【００６５】
本明細書で説明されたいずれのプロセス、説明、またはフローチャート内のブロックも、プロセス内の特定の論理機能またはステップを実施するための１または複数の実行可能命令を含む、モジュール、セグメント、またはコードの部分を表していると理解されるべきであり、代替的な実施は、本発明の例示的な実施形態の範囲内に含まれる。
【図１】
0006762709.tif 000002
【図２Ａ】
0006762709.tif 000003
【図２Ｂ】
0006762709.tif 000004
【図２Ｃ】
0006762709.tif 000005
【図２Ｄ】
0006762709.tif 000006
【図３Ａ】
0006762709.tif 000007
【図３Ｂ】
0006762709.tif 000008
【図３Ｃ】
0006762709.tif 000009
【図４】
0006762709.tif 000010
【図５】
0006762709.tif 000011
【図６】
0006762709.tif 000012
【図７】
0006762709.tif 000013