(57)【要約】      （修正有）【課題】姿勢を取る人間または動物の身体を模擬する。【解決手段】少なくとも１つの運動学的連鎖を形成するように回転ジョイントによって連結された複数のボーンを備えるスケルトンを含む、人間または動物の身体のモデルを提供し、スケルトンの各回転ジョイントについての開始位置及び開始回転状態と、目標点と、能動的運動学的連鎖と呼ばれる運動学的連鎖のエンドボーンと呼ばれるボーンとを定義し、エンドボーンを含む能動的運動学的連鎖のボーンのセットについて、ボーンに関して固定された向きを有する少なくとも１つの軸を定義し、能動的運動学的連鎖のジョイントのセットの束縛された回転を実行することによって、身体の第１の姿勢を決定し、エンドボーンの選択された軸を目標に向けるために、能動的運動学的連鎖のジョイントのセットの束縛された回転を反復的に実行することによって、身体の第２の姿勢を決定することを含む。【選択図】図６Ｂ
2018085115.tif 000002
【特許請求の範囲】
【請求項１】
姿勢を取る人間または動物の身体をシミュレートするためのコンピュータ実施方法であって、
ａ）少なくとも１つの運動学的連鎖を形成するように回転ジョイント（ＡないしＤ）によって連結された複数のボーン（ｂ０ないしｂ４）を備えるスケルトンを含む、前記人間または動物の身体のモデル（ＡＶ）を提供するステップであって、各回転ジョイントは、２つのボーンを接続し、１つないし３つの間に含まれるいくつかの回転軸を有する、該ステップと、
ｂ）前記スケルトンの各回転ジョイントについての開始位置および開始回転状態と、目標点（Ｔ）と、能動的運動学的連鎖と呼ばれる運動学的連鎖のエンドボーンと呼ばれるボーン（ｂ４）とを定義するステップと、
ｃ）前記エンドボーンを含む前記能動的運動学的連鎖のボーンのセットについて、前記ボーンに関して固定された向きを有する少なくとも１つの軸（Ｘ２、Ｙ４、ＧＺ）を定義するステップと、
ｄ）前記身体の第１の姿勢を決定するステップであって、
ｄ１）前記能動的運動学的連鎖のジョイントからなる第１の順序付けられたリストと、前記回転ジョイントの各々についての回転軸と、前記ジョイントの各々によって連結されたボーンと、前記ボーンの各々についての軸とを選択するステップと、
ｄ２）前記回転軸の各々について、目標回転に対する最大分数寄与と、最大回転角とを定義するステップと、
ｄ３）前記リストの順序通りに、前記選択された回転ジョイントの各々に、前記対応するボーンの前記選択された軸を前記目標に向けるための、前記対応する回転軸の周りの回転を適用するステップであって、前記回転は、前記対応する最大回転角と、前記選択された軸を前記目標に向かって正確に方向付ける前記目標回転に対する前記対応する最大分数寄与とのうちの１つによって束縛される、該ステップと
によって、前記身体の第１の姿勢を決定するステップと、
ｅ）前記身体の第２の姿勢を決定するステップであって、
ｅ１）前記エンドボーンの軸を選択するステップと、
ｅ２）前記能動的運動学的連鎖のジョイントからなる第２の順序付けられたリストを選択するステップと、
ｅ３）前記回転ジョイントの各々について、回転軸と、目標回転に対する最大分数寄与と、最大回転角とを定義するステップと、
ｅ４）前記リストの順序通りに、前記選択された回転ジョイントの各々に、前記エンドボーンの前記選択された軸を前記目標に向けるための、前記対応する回転軸の周りの回転を反復的に適用するステップであって、前記回転は、前記対応する最大回転角と、前記軸を前記目標に向かって正確に方向付ける前記目標回転に対する前記対応する最大分数寄与とのうちの１つによって束縛される、該ステップと
によって、前記身体の第２の姿勢を決定するステップと
を含むことを特徴とするコンピュータ実施方法。
【請求項２】
ステップｄ３）において、回転軸の周りのジョイントの各回転は、エフェクタとそれの目標位置との間の距離を最小化する、前記対応する最大回転角と、前記目標回転に対する前記対応する最大分数寄与とのうちの最も大きいものによって束縛されることを特徴とする請求項１に記載のコンピュータ実施方法。
【請求項３】
ステップｅ４）において、回転軸の周りのジョイントの各回転は、エフェクタとそれの目標位置との間の距離を最小化する、前記対応する最大回転角と、前記目標回転に対する前記対応する最大分数寄与とのうちの最も大きいものによって束縛されることを特徴とする請求項１または２に記載のコンピュータ実施方法。
【請求項４】
ステップｅ）において、少なくとも１つの回転は、前記人間または動物の身体の生理的制約をモデル化した少なくとも１つの制約によって束縛されることを特徴とする請求項１ないし３のいずれかに記載のコンピュータ実施方法。
【請求項５】
ステップｅ）の後に実施される以下のステップ、すなわち、
ｆ）前記エンドボーンの前記選択された軸を前記目標に向かって正確に方向付けるために、前記人間または動物の身体の生理的制約をモデル化した前記制約または前記制約の各々によってだけ束縛される、前記能動的運動学的リストの前記ジョイントの回転を適用するステップ
をさらに含むことを特徴とする請求項４に記載のコンピュータ実施方法。
【請求項６】
前記目標は、前記人間または動物の身体の前記モデルを含む３次元空間内において動いており、ステップｅ）は、前記目標の複数の連続する位置に対してリアルタイムに繰り返し実施されることを特徴とする請求項１ないし５のいずれかに記載のコンピュータ実施方法。
【請求項７】
前記人間または動物の身体のグラフィカル表現を表示するステップをさらに含むことを特徴とする請求項１ないし６のいずれかに記載のコンピュータ実施方法。
【請求項８】
前記エンドボーンの前記選択された軸（ＧＺ）は、前記人間または動物の身体の凝視方向を表すことを特徴とする請求項１ないし７のいずれかに記載のコンピュータ実施方法。
【請求項９】
コンピュータシステムに請求項１ないし８のいずれかに記載の方法を実施させるためのコンピュータ実行可能命令を含む、非一時的コンピュータ可読データ記憶媒体（Ｍ１ないしＭ４）上に記憶されたことを特徴とするコンピュータプログラム製品。
【請求項１０】
コンピュータシステムに請求項１ないし８のいずれかに記載の方法を実施させるためのコンピュータ実行可能命令（ＥＸＰ）を含むことを特徴とする非一時的コンピュータ可読データ記憶媒体（Ｍ１ないしＭ４）。
【請求項１１】
メモリ（Ｍ１ないしＭ４）およびグラフィカルユーザインターフェース（ＫＢ、ＰＤ、ＤＣ、ＤＹ）に結合されたプロセッサ（Ｐ）とを備え、前記メモリはコンピュータシステムに請求項１ないし８のいずれかに記載の方法を実施させるためのコンピュータ実行可能命令（ＥＸＰ）を記憶したことを特徴とするコンピュータシステム。
【請求項１２】
請求項１ないし８のいずれかに記載の前記方法を用いてシミュレートされる姿勢を取ることを特徴とする人間または動物の身体のモデル。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特に目標を見るための姿勢、またはより一般に、それに身体部位を向けた姿勢を取る人間（または動物）の動作をシミュレートするためのコンピュータ実施方法に関する。
【０００２】
それは、コンピュータグラフィックスの分野に関し、それは、コンピュータ支援設計（ＣＡＤ）、人間工学、ビデオゲームなど、いくつかのアプリケーションに役立つ。
【背景技術】
【０００３】
「スキン（skin）」によって覆われた「スケルトン（skeleton）」を備えるデジタルモデルによって、人間または動物の身体を表すことが、知られている。スケルトンは、セグメントのセットによって構成され、それらは、実際の解剖学的な骨に必ずしも対応しない場合であっても、「ボーン（bones）」と呼ばれ、１、２、または３の回転自由度を有する回転ジョイントによって連結（articulate）される。「アバタ（avatars）」としても知られる、そのようなモデルは、人間の身体モデルについては、（脚を少し開き、腕を水平に伸ばした）いわゆる「Ｔポーズ」などの標準的な姿勢で通常は提供される。
【０００４】
アバタに元のものとは異なる特定の姿勢を取らせるためには、所望の結果をもたらすように、それのスケルトンのボーンを連結するジョイントの回転のセットを決定する必要がある。これは、容易な課題ではない。
【０００５】
多くのケースにおいては、所望の姿勢を完全に指定する代わりに、スケルトンの（「エフェクタ（effectors）」と呼ばれる）１つまたは複数の特定のポイントに、制約を課すだけである。例えば、（例えば、それの前腕を表すボーンのエンドポイントに対応する）アバタの手が、特定の位置を取ることを強制してよい。理論的な見地からは、これは、逆運動学（ＩＫ）の問題に対応する。この問題を解くためのいくつかのアルゴリズムが、存在する。
【０００６】
本発明は、身体が、それの凝視を特定の方向に向けるために、または目標を見るために、特定の姿勢を取る、異なるケースに対処する。特に、人間の身体については、これは、頭部、脊柱、ならびに時には下半身および／または眼を回転させることを含む。理論的な見地からは、これは、運動学的連鎖の特定のセグメント（一般に最後のもの）に取り付けられた軸の所望の向きを提供する、ジョイントの回転を決定する問題に対応する。以下においては、方向付けられるセグメントは、それが運動学的連鎖の最後のボーンでは必ずしもない場合であっても、「エンドボーン（ｅｎｄ  ｂｏｎｅ）」と呼ばれる。
【０００７】
標準的な逆運動学におけるように、所望の向きを達成するのを可能にするジョイント回転の無数のセット（「解空間」）が、通常は存在し、要件の特定のセットを満たす解を選択しなければならない。本発明は、凝視方向に対する、必ずしも解剖学的に正確ではないが、現実的な解を提供することを目指す。実際に、本発明の範囲は、アバタが、それの身体の部位を目標に向かって、必ずしもそれに近づくことなく、方向付けなければならないたびに、それが適用されることができるので、より大きい。
【発明の概要】
【課題を解決するための手段】
【０００８】
この目的を達成することを可能にする、本発明の目的は、姿勢を取る人間または動物の身体をシミュレートするためのコンピュータ実施方法であって、それは、
ａ）少なくとも１つの運動学的連鎖を形成するように回転ジョイントによって連結された複数のボーンを備えるスケルトンを含む、前記人間または動物の身体のモデルを提供するステップであって、各回転ジョイントは、２つのボーンを接続し、１つないし３つの間に含まれるいくつかの回転軸を有する、ステップと、
ｂ）スケルトンの各回転ジョイントについての開始位置および開始回転状態と、目標点と、能動的運動学的連鎖と呼ばれる運動学的連鎖のエンドボーンと呼ばれるボーンとを定義するステップと、
ｃ）エンドボーンを含む能動的運動学的連鎖のボーンのセットについて、ボーンに関して固定された向きを有する少なくとも１つの軸を定義するステップと、
ｄ）身体の第１の姿勢を決定するステップであって、
ｄ１）能動的運動学的連鎖のジョイントからなる第１の順序付けられたリストと、前記回転ジョイントの各々についての回転軸と、前記ジョイントの各々によって連結されたボーンと、前記ボーンの各々についての軸とを選択するステップと、
ｄ２）前記回転軸の各々について、目標回転に対する最大分数寄与と、最大回転角とを定義するステップと、
ｄ３）リストの順序通りに、選択された回転ジョイントの各々に、対応するボーンの選択された軸を目標に向けるための、対応する回転軸の周りの回転を適用するステップであって、回転は、対応する最大回転角と、選択された軸を目標に向かって正確に方向付ける目標回転に対する対応する最大分数寄与とのうちの１つによって束縛される、ステップと
によって、身体の第１の姿勢を決定するステップと、
ｅ）身体の第２の姿勢を決定するステップであって、
ｅ１）エンドボーンの軸を選択するステップと、
ｅ２）能動的運動学的連鎖のジョイントからなる第２の順序付けられたリストを選択するステップと、
ｅ３）前記回転ジョイントの各々について、回転軸と、目標回転に対する最大分数寄与と、最大回転角とを定義するステップと、
ｅ４）リストの順序通りに、選択された回転ジョイントの各々に、エンドボーンの選択された軸を目標に向けるための、対応する回転軸の周りの回転を反復的に適用するステップであって、回転は、対応する最大回転角と、軸を目標に向かって正確に方向付ける目標回転に対する対応する最大分数寄与とのうちの１つによって束縛される、ステップと
によって、身体の第２の姿勢を決定するステップと
を含む。
【０００９】
本発明の別の目的は、コンピュータシステムにそのような方法を実施させるためのコンピュータ実行可能命令を含む、非一時的なコンピュータ可読データ記憶媒体上に記憶されたコンピュータプログラム製品である。
【００１０】
本発明のまた別の目的は、コンピュータシステムにそのような方法を実施させるためのコンピュータ実行可能命令を含む非一時的なコンピュータ可読データ記憶媒体である。
【００１１】
本発明のさらに別の目的は、メモリおよびグラフィカルユーザインターフェースに結合されたプロセッサであって、メモリがコンピュータシステムにそのような方法を実施させるためのコンピュータ実行可能命令を記憶する、プロセッサを備えるコンピュータシステムである。
【００１２】
本発明の別の目的は、そのような方法を用いてシミュレートされる姿勢を取る人間または動物の身体のモデルである。
【図面の簡単な説明】
【００１３】
本発明のさらなる特徴および利点は、添付の図面と併せて以降の説明から明らかになる。
【図１】本発明の方法の例示的な実施形態に従った、スケルトンの運動学的連鎖に適用される、それのエンドセグメントに取り付けられた軸を目標に向かって方向付けるための、回転のシーケンスを示す図である。
【図２Ａ】本発明の方法の例示的な実施形態に従った、スケルトンの運動学的連鎖に適用される、それのエンドセグメントに取り付けられた軸を目標に向かって方向付けるための、回転のシーケンスを示す図である。
【図２Ｂ】本発明の方法の例示的な実施形態に従った、スケルトンの運動学的連鎖に適用される、それのエンドセグメントに取り付けられた軸を目標に向かって方向付けるための、回転のシーケンスを示す図である。
【図３Ａ】本発明の方法の例示的な実施形態に従った、スケルトンの運動学的連鎖に適用される、それのエンドセグメントに取り付けられた軸を目標に向かって方向付けるための、回転のシーケンスを示す図である。
【図３Ｂ】本発明の方法の例示的な実施形態に従った、スケルトンの運動学的連鎖に適用される、それのエンドセグメントに取り付けられた軸を目標に向かって方向付けるための、回転のシーケンスを示す図である。
【図４Ａ】本発明の方法の例示的な実施形態に従った、スケルトンの運動学的連鎖に適用される、それのエンドセグメントに取り付けられた軸を目標に向かって方向付けるための、回転のシーケンスを示す図である。
【図４Ｂ】本発明の方法の例示的な実施形態に従った、スケルトンの運動学的連鎖に適用される、それのエンドセグメントに取り付けられた軸を目標に向かって方向付けるための、回転のシーケンスを示す図である。
【図５Ａ】本発明の方法の例示的な実施形態に従った、スケルトンの運動学的連鎖に適用される、それのエンドセグメントに取り付けられた軸を目標に向かって方向付けるための、回転のシーケンスを示す図である。
【図５Ｂ】本発明の方法の例示的な実施形態に従った、スケルトンの運動学的連鎖に適用される、それのエンドセグメントに取り付けられた軸を目標に向かって方向付けるための、回転のシーケンスを示す図である。
【図６Ａ】本発明の方法の例示的な適用を示す図である。
【図６Ｂ】本発明の方法の例示的な適用を示す図である。
【図６Ｃ】本発明の方法の例示的な適用を示す図である。
【図７】本発明の異なる実施形態に従った方法を実施するのに適したそれぞれのコンピュータシステムのブロック図である。
【図８】本発明の異なる実施形態に従った方法を実施するのに適したそれぞれのコンピュータシステムのブロック図である。
【発明を実施するための形態】
【００１４】
本発明は、図１に示される非常に簡単な例、すなわち、４つのボーンｂ１、ｂ２、ｂ３、ｂ４と、（ボーンであると見なされることができる）固定された基台ｂ０と、各々が単一の回転軸を有する４つの回転ジョイントＡ、Ｂ、Ｃ、Ｄとからなる運動学的連鎖を参照して説明される。回転軸は、互いに平行であり、したがって、連鎖の動きは、平面内に制約される。基台以外の各ボーンは、それに関して固定された向きを有する１つまたは複数の軸に関連付けられる。本発明の例示的な実施形態においては、各ボーン「ｂｉ」（ｉ＝１ないし４）は、それに垂直な軸Ｘｉと、それに平行な軸Ｙｉとに関連付けられ、すなわち、ｂ１は、Ｘ１およびＹ１に関連付けられ、ｂ２は、Ｘ２およびＹ２に関連付けられ、ｂ３は、Ｘ３およびＹ３に関連付けられ、ｂ４は、Ｘ４およびＹ４に関連付けられ（一般に、軸は、ボーンに関して任意の向きを有してよく、それらは、この例におけるように、それらに平行または垂直である必要はない）。この特定のケースにおいては、目的は、エンドボーンｂ４に平行なＹ４軸を、目標点Ｔに向かって方向付けることである。標準的な逆運動学問題とは対照的に、このボーンのエンドポイントが目標に触れることは、必要とされず、向きだけが、問題となる。
【００１５】
図１は、すべてのジョイントが０°の初期回転角を有し、すべてのボーンが一直線に並んだ、初期姿勢における運動学的連鎖を表す。
【００１６】
本発明の方法は、３つのフェーズを含み、それらのうちの第３のものは、任意選択であってよい。
【００１７】
第１のフェーズは、第２のもののための開始点として役立つ、第１の「中間」姿勢をもたらす。
【００１８】
実際に、この第１のフェーズを実施する前に、簡単なデータ構造、すなわち、各要素が、
−ジョイントおよびそれの回転軸の識別子と、
−ジョイントによって連結されるボーンに関連付けられた軸の識別子と、
−目標回転に対するジョイントの最大分数寄与を示す数値と、
−ジョイントの最大回転角を示す数値と
を含む、要素の順序付けられたリストを生成する必要がある。
【００１９】
以下の表１は、そのようなリストの例を提供するが、しかしながら、図１の例においては、１自由度のジョイントだけが、考察されるので、ジョイントの回転軸の識別子は、存在しない。
【００２０】
【表１】
2018085115.tif 000003
【００２１】
この例示的な実施形態においては、本発明の方法の第１のフェーズの目的は、第２のフェーズのための初期姿勢を生成することである。それを行うために、このフェーズは、ボーンｂ２のＸ軸（第１のステップ）と、ボーンｂ４（エンドボーン）のＹ軸とを、目標Ｔに向けるが、関連するジョイントの回転は、「最大分数寄与（MAX. fractional contribution）」および「最大回転角（Max. rotation angle）」パラメータによって束縛されるので、完全に向けるわけではない。
【００２２】
リストの第１の要素は、ジョイントＢに対応する。第１のフェーズの第１のステップは、その場合、ボーンｂ２のＸ２軸を目標Ｔに向けるために、このジョイントを回転させることにある。図２Ａにおいて、破線２０は、ジョイントＢを目標に接続する。ジョイントの「完全な」回転は、ボーンｂ２の軸Ｘ２を直線２０に平行にする。しかしながら、リストは、ジョイントＢが、３０％の最大分数寄与および２０°の最大回転角によって特徴付けられることを示している。これは、ジョイントの実際の回転が、「完全な」回転の３０％（破線２１を参照）、または２０°の回転（図示されず）のいずれかに制限されることを意味する。ルールとして、２つの束縛のうちのより大きい方が選択される。このケースにおいては、実際には、Ｘ２軸を目標に対して一直線にするには、１０°の回転で十分であり、したがって、実際には、完全な回転が、実行される。結果の構成（「姿勢」）が、図２Ｂに示されている。
【００２３】
ボーンｂ４のＹ４軸を目標に向けるために、次に駆動されるジョイントは、Ｄである。図３Ａにおいて、直線３０は、ジョイントＤを目標に接続する。ジョイントの「完全な」回転は、ボーンｂ４の軸Ｙ４を直線３０に平行にする（実際には、重ね合わせる）。しかしながら、リストは、ジョイントＤが、５０％の最大分数寄与および２０°の最大回転角によって特徴付けられることを示している。これは、ジョイントの実際の回転が、「完全な」回転の５０％（破線３１を参照）、または２０°の回転（破線３２を参照）のいずれかに制限されることを意味する。２つの束縛のうちのより大きい方が選択され、それは、このケースにおいては最大分数寄与であり、したがって、図３Ｂに示されるように、軸Ｙ２は直線３１と一直線にされる。
【００２４】
第１のフェーズの終了時において、運動学的連鎖は、所望の姿勢からまだ遠いことが分かる。第２のフェーズは、それに近づくことを可能にする（が、常に到達するとは限らない）。
【００２５】
実際に、この第２のフェーズを実施する前に、別の簡単なデータ構造を生成する必要がある。それは、各要素が、
−ジョイントおよびそれの回転軸の識別子と、
−目標回転に対するジョイントの最大分数寄与を示す数値と、
−ジョイントの最大回転角を示す数値と
を含む、要素の順序付けられたリストである。
【００２６】
以下の表２は、そのようなリストの例を提供するが、しかしながら、本例においては、１自由度のジョイントだけが、考察されるので、ジョイントの回転軸の識別子は、存在しない。
【００２７】
【表２】
2018085115.tif 000004
【００２８】
基本的に、第２のリストの要素は、ボーンに取り付けられた軸の識別情報を除いて、第１のリストの要素と同じ情報の項目を含む。しかしながら、２つのリストに属するジョイントおよび回転軸は、必ずしも同じではなく、最大分数寄与および最大回転角の数値も、同様である。
【００２９】
第２のフェーズは、エンドボーン（ｂ４）の１つの軸（ここでは、Ｙ軸）を目標に向けることだけを目指す。それは、「最大分数寄与」および「最大回転角」パラメータによって表される束縛を計算に入れながら、リストの順序でジョイントを回転させることによって、反復的に実施される。
【００３０】
リストの第１の要素は、ジョイントＤに対応する。第２のフェーズの第１のステップは、Ｙ４軸を目標に向けるために、このジョイントを回転させることにある。図４Ａにおいて、破線４０は、完全な回転を表し、破線４１は、最大分数寄与（完全な回転の３０％）によって束縛された回転を表し、破線４２は、最大の回転角（１０°）によって束縛された回転を表す。２つの束縛のうちのより大きい方が選択され、それは、このケースにおいては最大分数寄与である。したがって、軸Ｙ４は、直線４１と一直線にされる（図４Ｂを参照）。
【００３１】
リストの第２の要素は、ジョイントＢに対応する。第２のフェーズの第２のステップは、Ｙ４軸を目標に向けるために、このジョイントを回転させることにある。図５Ａにおいて、破線５０は、３０°の大きさを有する完全な回転を表し、破線５１は、最大分数寄与（完全な回転の５０％）によって束縛された回転を表し、破線５２は、最大の回転角（５０°）によって束縛された回転を表すが、完全な回転の大きさ（すなわち、３０°）を超えることはない。２つの束縛のうちのより大きい方が選択され、それは、このケースにおいては最大回転の角である。したがって、軸Ｙ４は、直線５２と一直線にされる（図５Ｂを参照）。
【００３２】
本発明のこの例示的な実施形態においては、アルゴリズムの第２のフェーズは、ここで終了する。より複雑な実施形態においては、ジョイントＡおよびＣも、駆動されることができ、ならびに／またはいくつかの反復が、実行されることができ、すなわち、リストのジョイントは、複数回処理されることができる。いずれのケースにおいても、収束は、保証されない。これが、第３の最終フェーズが、実施されることがある理由であり、それは、単純に、Ｙ４軸を目標に向かって正確に方向付けるための完全な（束縛されない）回転を実行することにある。実際に、最も実際的な実施においては、「厳格な束縛」が、スケルトンの各ジョイントの各回転軸に関連付けられ、それは、いずれのケースにおいても、超えられることはできない。この制約のせいで、ジョイントＤの単一の回転を用いて、Ｙ４軸を目標に向かって正確に方向付けることが不可能であることが分かる。このケースにおいては、最後のもの（Ｄ）から開始して、第１のもの（Ａ）に向かい、所望の向きが達成されたときに停止する、ジョイントの完全な（上述の「厳格な束縛」だけによって制限される）回転を実行する、第３の最終フェーズが、一般に反復的に実施される。
【００３３】
今までは、「抽象的な」運動学的連鎖のケースだけが、考察された。本発明の実際の実施においては、運動学的連鎖は、例えば、アバタの脊柱および頭部に対応する、スケルトンの部位を表す。
【００３４】
今までは、さらに、最大回転角と、目標回転に対する対応する最大分数寄与とのうちのより大きい方が、ジョイントの回転を束縛するために選択されるケースだけであった。この選択は、収束を加速する。しかしながら、反対の選択（すなわち、最大回転角と、目標回転に対する対応する最大分数寄与とのうちのより小さい方）も、可能である。「ハイブリッド」手法を採用すること、例えば、第１のフェーズについてはより大きい束縛を選択し、第２のフェーズについてはより小さい束縛を選択すること、またはその反対とすることも、可能である。第２のフェーズの第１の反復についてはより大きい束縛を選択し、最後のものについてはより小さいものを選択することも、可能である。
【００３５】
方法が、アバタに適用されるとき、さらに、モデル化された人間または動物の身体の生理的制約を反映して、ジョイントの回転にさらなる制約を課すことが必要なことがある。これらの制約は、上で言及された回転に対する「厳格な束縛」によって実施される。
【００３６】
図６Ａないし図６Ｃは、複数の運動学的連鎖を含むスケルトン（図示されず）を有するアバタＡＶを示している。脊柱および頭部を含む連鎖だけが、考察され、身体の残りは、固定された基台を構成する。エンドボーンは、頭部を表し、凝視方向を表す垂直軸ＧＺを有する。
【００３７】
目標Ｔは、アバタを含む３次元シーン内において、例えば、マウスを使用して、ユーザによって動かされるカーソルからなる。分かるように、目標の連続する位置に対して本発明の方法を繰り返し実施することは、凝視方向がリアルタイムにそれを追跡することを可能にし、アバタの姿勢は、常に非常に自然らしく見える。
【００３８】
最終的な姿勢は、現実的であるが、それに到達するために運動学的連鎖によって実行される動きは、向きの小さい変化を除いて、必ずしもそうではないことに留意することが重要である。したがって、本発明の方法が、アニメーションを実行するために使用される場合、初期凝視方向とほぼ一直線に並んだ目標点を用いて開始し、それをそれの最終位置に向かって徐々に動かすことが推奨される。
【００３９】
本発明の方法は、ハードディスク、ソリッドステートディスク、またはＣＤ−ＲＯＭなどのコンピュータ可読媒体上に、非一時的形態で、適切なプログラムを記憶し、マイクロプロセッサおよびメモリを使用してプログラムを実行する、適切にプログラムされた汎用コンピュータ、またはおそらくはコンピュータネットワークを含むコンピュータシステムによって実行されることができる。
【００４０】
本発明の例示的な実施形態に従った方法を実施するのに適したコンピュータが、図７を参照して説明される。図７においては、コンピュータは、上で説明されたプロセスを実行する中央処理装置ＣＰＵを含む。プロセスは、実行可能プログラム、すなわち、コンピュータ可読命令のセットとして、ＲＡＭ  Ｍ１もしくはＲＯＭ  Ｍ２などのメモリ内に、もしくはハードディスクドライブ（ＨＤＤ）Ｍ３、ＤＶＤ／ＣＤドライブＭ４上に記憶されることができ、またはリモートに記憶されることができる。さらに、少なくとも１つの人間もしくは動物の身体のデジタルモデル（アバタ）、および／またはモデルが入れられる３次元シーンを定義する、１つまたは複数のコンピュータファイルも、１つまたは複数のメモリデバイスＭ１ないしＭ４上に、またはリモートに記憶されてよい。
【００４１】
特許請求される本発明は、本発明のプロセスのコンピュータ可読命令および／またはデジタルファイルが記憶されるコンピュータ可読媒体の形態によって限定されない。例えば、命令およびファイルは、ＣＤ、ＤＶＤ上に、フラッシュメモリ、ＲＡＭ、ＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ハードディスク、またはサーバもしくはコンピュータなど、コンピュータ支援設計もしくはイラストレーションオーサリングステーションが通信する他の任意の情報処理デバイス内に記憶されることができる。プログラムおよびファイルは、同じメモリデバイス上に、または異なるメモリデバイス上に記憶されることができる。
【００４２】
さらに、本発明の方法を実施するのに適したコンピュータプログラムは、ＣＰＵ８００、ならびにＭｉｃｒｏｓｏｆｔ  ＶＩＳＴＡ、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ  ８、ＵＮＩＸ、Ｓｏｌａｒｉｓ、ＬＩＮＵＸ、Ａｐｐｌｅ  ＭＡＣ−ＯＳ、および当業者に知られた他のシステムなどのオペレーティングシステムと連携して動作する、ユーティリティアプリケーション、バックグラウンドデーモン、もしくはオペレーティングシステムのコンポーネント、またはそれらの組み合わせとして提供されることができる。
【００４３】
中央処理装置ＣＰＵは、米国のＩｎｔｅｌ製のＸｅｎｏｎプロセッサ、もしくは米国のＡＭＤ製のＯｐｔｅｒｏｎプロセッサとすることができ、または米国のＦｒｅｅｓｃａｌｅ  Ｃｏｒｐｏｒａｔｉｏｎ製のＦｒｅｅｓｃａｌｅ  ＣｏｌｄＦｉｒｅ、ＩＭＸ、もしくはＡＲＭプロセッサなどの他のプロセッサ種類とすることができる。あるいは、中央処理装置は、米国のＩｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎ製のＣｏｒｅ２  Ｄｕｏなどのプロセッサとすることができ、または当業者が認識するように、ＦＰＧＡ、ＡＳＩＣ、ＰＬＤ上に、もしくは個別論理回路を使用して実施されることができる。さらに、中央処理装置は、上で説明された本発明のプロセスのコンピュータ可読命令を実行するために協力して作業する、複数のプロセッサとして実施されることができる。
【００４４】
図７におけるコンピュータは、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、およびインターネットなどのネットワークとインターフェースを取るための、米国のＩｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎ製のＩｎｔｅｌ  Ｅｔｈｅｒｎｅｔ  ＰＲＯネットワークインターフェースカードなどのネットワークインターフェースＮＩも含む。コンピュータ支援設計ステーションは、Ｈｅｗｌｅｔｔ  Ｐａｃｋａｒｄ  ＨＰＬ２４４５ｗ  ＬＣＤモニタなどのディスプレイＤＹとインターフェースを取るための、米国のＮＶＩＤＩＡ  Ｃｏｒｐｏｒａｔｉｏｎ製のＮＶＩＤＩＡ  ＧｅＦｏｒｃｅ  ＧＴＸグラフィックスアダプタなどのディスプレイコントローラＤＣをさらに含む。汎用Ｉ／ＯインターフェースＩＦは、キーボードＫＢ、ならびにローラボール、マウス、およびタッチパッドなどのポインティングデバイスＰＤとインターフェースを取る。ディスプレイ、キーボード、およびポインティングデバイスは、ディスプレイコントローラおよびＩ／Ｏインターフェースと一緒に、入力コマンドを提供して、例えば、目標点の移動、パラメータの定義などを行うために、ユーザによって使用される、およびアバタを含む３次元シーンを表示するために、コンピュータ支援設計ステーションによって使用される、グラフィカルユーザインターフェースを形成する。
【００４５】
ディスクコントローラＤＫＣは、ＨＤＤ  Ｍ３およびＤＶＤ／ＣＤ  Ｍ４を、通信バスＣＢＳと接続し、通信バスＣＢＳは、コンピュータ支援設計ステーションのコンポーネントのすべてを相互接続するための、ＩＳＡ、ＥＩＳＡ、ＶＥＳＡ、またはＰＣＩなどとすることができる。
【００４６】
ディスプレイ、キーボード、ポインティングデバイス、ならびにディスプレイコントローラ、ディスクコントローラ、ネットワークインターフェース、およびＩ／Ｏインターフェースの一般的な特徴および機能性についての説明は、これらの特徴は知られているので、簡潔にするために、本明細書においては省略される。
【００４７】
図８は、本発明の異なる例示的な実施形態に従った方法を実施するのに適したコンピュータシステムのブロック図である。
【００４８】
図８においては、実行可能プログラムＥＸＰ、ならびにアバタおよびおそらくは３次元シーンを定義するコンピュータファイルは、サーバＳＣに接続されたメモリデバイス上に記憶される。メモリデバイス、およびサーバの全体的なアーキテクチャは、ディスプレイコントローラ、ディスプレイ、キーボード、および／またはポインティングデバイスが、サーバにはなくてよいことを除いて、図７を参照して上で説明されたのと同じであってよい。
【００４９】
サーバは、その場合、ネットワークＮＷを介して、アドミニストレータシステムＡＤＳおよびエンドユーザコンピュータＥＵＣに接続される。
【００５０】
アドミニストレータシステムおよびエンドユーザコンピュータの全体的なアーキテクチャは、アドミニストレータシステムおよびエンドユーザコンピュータのメモリデバイスが、実行可能プログラムＥＸＰ、ならびに／またはアバタおよび／もしくは３次元シーンを定義するコンピュータファイルを記憶しないことを除いて、図６を参照して上で説明されたのと同じであってよい。しかしながら、エンドユーザコンピュータは、以下で説明されるように、サーバの実行可能プログラムと協力するように設計されたクライアントプログラムを記憶する。
【００５１】
理解されることができるように、ネットワークＮＷは、インターネットなどのパブリックネットワーク、またはＬＡＮもしくはＷＡＮネットワークなどのプライベートネットワーク、またはそれらの任意の組み合わせとすることができ、ＰＳＴＮまたはＩＳＤＮサブネットワークも含むことができる。ネットワークＮＷは、Ｅｔｈｅｒｎｅｔネットワークなどの有線とすることもでき、またはＥＤＧＥ、３Ｇおよび４Ｇ無線セルラシステムを含む、セルラネットワークなどの無線とすることができる。無線ネットワークは、Ｗｉ−Ｆｉ、Ｂｌｕｅｔｏｏｔｈ、または知られた他の任意の無線形態の通信とすることもできる。したがって、ネットワークＮＷは、例示的であるにすぎず、本進歩の範囲を決して限定しない。
【００５２】
エンドユーザコンピュータのメモリデバイス内に記憶され、エンドユーザコンピュータのＣＰＵによって実行されるクライアントプログラムは、サーバＳＣによって記憶され、３次元シーンまたはそれの要素を定義するファイルを含むデータベースＤＢに、ネットワークＮＷを介してアクセスする。サーバは、上で説明されたような処理を実行し、シーンの所望の表現に対応する画像ファイルを、やはりネットワークＮＷを使用して、エンドユーザコンピュータに送信する。
【００５３】
ただ１つのアドミニストレーションシステムＡＤＳおよびエンドユーザシステムＥＵＸしか、示されていないが、システムは、制限なしに、任意の数のアドミニストレーションシステムＡＤＳおよび／またはエンドユーザシステムをサポートすることができる。同様に、本発明の範囲から逸脱することなく、複数のサーバが、システム内において実施されることもできる。
【００５４】
本明細書において説明されたいずれのプロセスも、プロセス内の特定の論理機能またはステップを実施するための１つまたは複数の実行可能命令を含む、モジュール、セグメント、またはコードの一部を表すと理解されるべきであり、代替的な実施は、本発明の例示的な実施形態の範囲内に含まれる。
【図１】
2018085115.tif 000005
【図２Ａ】
2018085115.tif 000006
【図２Ｂ】
2018085115.tif 000007
【図３Ａ】
2018085115.tif 000008
【図３Ｂ】
2018085115.tif 000009
【図４Ａ】
2018085115.tif 000010
【図４Ｂ】
2018085115.tif 000011
【図５Ａ】
2018085115.tif 000012
【図５Ｂ】
2018085115.tif 000013
【図６Ａ】
2018085115.tif 000014
【図６Ｂ】
2018085115.tif 000015
【図６Ｃ】
2018085115.tif 000016
【図７】
2018085115.tif 000017
【図８】
2018085115.tif 000018
【手続補正書】
【提出日】平成30年1月17日(2018.1.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
姿勢を取る人間または動物の身体をシミュレートするためのコンピュータ実施方法であって、
ａ）少なくとも１つの運動学的連鎖を形成するように回転ジョイント（ＡないしＤ）によって連結された複数のボーン（ｂ０ないしｂ４）を備えるスケルトンを含む、前記人間または動物の身体のモデル（ＡＶ）を提供するステップであって、各回転ジョイントは、２つのボーンを接続し、１つないし３つの間に含まれるいくつかの回転軸を有する、該ステップと、
ｂ）前記スケルトンの各回転ジョイントについての開始位置および開始回転状態と、目標点（Ｔ）と、能動的運動学的連鎖と呼ばれる運動学的連鎖のエンドボーンと呼ばれるボーン（ｂ４）とを定義するステップと、
ｃ）前記エンドボーンを含む前記能動的運動学的連鎖のボーンのセットについて、前記ボーンに関して固定された向きを有する少なくとも１つの軸（Ｘ２、Ｙ４、ＧＺ）を定義するステップと、
ｄ）前記身体の第１の姿勢を決定するステップであって、
ｄ１）前記能動的運動学的連鎖のジョイントからなる第１の順序付けられたリストと、前記回転ジョイントの各々についての回転軸と、前記ジョイントの各々によって連結されたボーンと、前記ボーンの各々についての軸とを選択するステップと、
ｄ２）前記回転軸の各々について、目標回転に対する最大分数寄与と、最大回転角とを定義するステップと、
ｄ３）前記リストの順序通りに、前記選択された回転ジョイントの各々に、前記対応するボーンの前記選択された軸を前記目標に向けるための、前記対応する回転軸の周りの回転を適用するステップであって、前記回転は、前記対応する最大回転角と、前記選択された軸を前記目標に向かって正確に方向付ける前記目標回転に対する前記対応する最大分数寄与とのうちの１つによって束縛される、該ステップと
によって、前記身体の第１の姿勢を決定するステップと、
ｅ）前記身体の第２の姿勢を決定するステップであって、
ｅ１）前記エンドボーンの軸を選択するステップと、
ｅ２）前記能動的運動学的連鎖のジョイントからなる第２の順序付けられたリストを選択するステップと、
ｅ３）前記回転ジョイントの各々について、回転軸と、目標回転に対する最大分数寄与と、最大回転角とを定義するステップと、
ｅ４）前記リストの順序通りに、前記選択された回転ジョイントの各々に、前記エンドボーンの前記選択された軸を前記目標に向けるための、前記対応する回転軸の周りの回転を反復的に適用するステップであって、前記回転は、前記対応する最大回転角と、前記軸を前記目標に向かって正確に方向付ける前記目標回転に対する前記対応する最大分数寄与とのうちの１つによって束縛される、該ステップと
によって、前記身体の第２の姿勢を決定するステップと
を含むことを特徴とするコンピュータ実施方法。
【請求項２】
ステップｄ３）において、回転軸の周りのジョイントの各回転は、エフェクタとそれの目標位置との間の距離を最小化する、前記対応する最大回転角と、前記目標回転に対する前記対応する最大分数寄与とのうちの最も大きいものによって束縛されることを特徴とする請求項１に記載のコンピュータ実施方法。
【請求項３】
ステップｅ４）において、回転軸の周りのジョイントの各回転は、エフェクタとそれの目標位置との間の距離を最小化する、前記対応する最大回転角と、前記目標回転に対する前記対応する最大分数寄与とのうちの最も大きいものによって束縛されることを特徴とする請求項１または２に記載のコンピュータ実施方法。
【請求項４】
ステップｅ）において、少なくとも１つの回転は、前記人間または動物の身体の生理的制約をモデル化した少なくとも１つの制約によって束縛されることを特徴とする請求項１ないし３のいずれかに記載のコンピュータ実施方法。
【請求項５】
ステップｅ）の後に実施される以下のステップ、すなわち、
ｆ）前記エンドボーンの前記選択された軸を前記目標に向かって正確に方向付けるために、前記人間または動物の身体の生理的制約をモデル化した前記制約または前記制約の各々によってだけ束縛される、前記能動的運動学的リストの前記ジョイントの回転を適用するステップ
をさらに含むことを特徴とする請求項４に記載のコンピュータ実施方法。
【請求項６】
前記目標は、前記人間または動物の身体の前記モデルを含む３次元空間内において動いており、ステップｅ）は、前記目標の複数の連続する位置に対してリアルタイムに繰り返し実施されることを特徴とする請求項１ないし５のいずれかに記載のコンピュータ実施方法。
【請求項７】
前記人間または動物の身体のグラフィカル表現を表示するステップをさらに含むことを特徴とする請求項１ないし６のいずれかに記載のコンピュータ実施方法。
【請求項８】
前記エンドボーンの前記選択された軸（ＧＺ）は、前記人間または動物の身体の凝視方向を表すことを特徴とする請求項１ないし７のいずれかに記載のコンピュータ実施方法。
【請求項９】
コンピュータに、請求項１ないし８のいずれかに記載のコンピュータ実施方法を実行させることを特徴とするコンピュータプログラム。
【請求項１０】
請求項９記載のコンピュータプログラムを記録したことを特徴とする非一時的コンピュータ可読媒体。
【請求項１１】
メモリ（Ｍ１ないしＭ４）およびグラフィカルユーザインターフェース（ＫＢ、ＰＤ、ＤＣ、ＤＹ）に結合されたプロセッサ（Ｐ）とを備え、前記メモリはコンピュータシステムに請求項１ないし８のいずれかに記載の方法を実施させるためのコンピュータ実行可能命令（ＥＸＰ）を記憶したことを特徴とするコンピュータシステム。
【請求項１２】
請求項１ないし８のいずれかに記載の前記方法を用いてシミュレートされる姿勢を取ることを特徴とする人間または動物の身体のモデル。
【外国語明細書】
2018085115000001.pdf