(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-13
(54)【発明の名称】下層のボディおよび/または衣服レイヤに適合する重ねられた衣服
(51)【国際特許分類】
G06T 19/00 20110101AFI20240306BHJP
【FI】
G06T19/00 A
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023556822
(86)(22)【出願日】2022-02-04
(85)【翻訳文提出日】2023-09-14
(86)【国際出願番号】 US2022015246
(87)【国際公開番号】W WO2022197385
(87)【国際公開日】2022-09-22
(32)【優先日】2021-03-15
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-07-14
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520317055
【氏名又は名称】ロブロックス・コーポレーション
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】セルゲイ・マケエフ
(72)【発明者】
【氏名】サティーシュ・ガナパティ・スブラマニアン
(72)【発明者】
【氏名】デイヴィッド・ビー・バシュッキ
【テーマコード(参考)】
5B050
【Fターム(参考)】
5B050BA07
5B050BA09
5B050BA12
5B050BA13
5B050CA07
5B050DA10
5B050EA07
5B050EA12
5B050EA18
5B050EA19
5B050EA27
5B050EA28
5B050FA02
5B050GA08
(57)【要約】
自動ケージ間フィッティング技術が、オンラインゲームなどの3次元(3D)環境内の3Dアバターのために、任意の3Dジオメトリを任意の目標3Dジオメトリにフィッティングするために使用される。衣服のアイテムの各グラフィック表現が、内側ケージおよび外側ケージを備えている。衣服アイテム(現在のレイヤ)の内側ケージが、3Dアバターに既にフィッティングされている別の衣服アイテム(前の/下層のレイヤ)の外側ケージにマッピングされる。このマッピングは、現在のレイヤが前のレイヤの形状に適合することを可能にする。本技術は、衣服のレイヤが衣服の下層のレイヤの上にフィッティングされることを可能にすることを含め、任意のボディのジオメトリが任意の衣服のジオメトリとフィッティングされることを可能にし、それによって、カスタマイズを提供する。
【特許請求の範囲】
【請求項1】
3次元(3D)アバター上の重ねられた衣服を提供するためのコンピュータによって実装される方法であって、
アバターボディを有する3Dアバターのボディケージのボディの特徴点を特定するステップと、
前記アバターボディに適合する変形された第1の衣服を取得するために、第1の衣服の内側ケージの内側特徴点を前記ボディケージの前記ボディの特徴点にマッピングするステップと、
前記変形された第1の衣服で前記アバターボディを少なくとも部分的に包むことによって、前記アバターボディの上に前記変形された第1の衣服をフィッティングするステップと、
前記第1の衣服の外側ケージに適合する変形された第2の衣服を取得するために、第2の衣服の内側ケージの内側特徴点を前記変形された第1の衣服の前記外側ケージの外側特徴点にマッピングするステップと、
上にフィッティングされた前記変形された第1の衣服を有する前記アバターボディを前記変形された第2の衣服で少なくとも部分的に包むことによって、前記アバターボディの上に前記変形された第2の衣服をフィッティングするステップとを含む、方法。
【請求項2】
前記第1の衣服の表面の特徴の視覚的外観が少なくとも部分的に維持されるように、前記第1の衣服の前記内側ケージの前記内側特徴点のうちの少なくとも1つと、前記変形された第1の衣服の前記外側ケージの前記外側特徴点のうちの対応する外側特徴点との間の距離を保つステップをさらに含む請求項1に記載の方法。
【請求項3】
アバターボディの第1のライブラリから前記アバターボディを取得するステップと、
衣服の第2のライブラリから前記第1の衣服および前記第2の衣服を取得するステップであって、前記第1のライブラリの前記アバターボディと前記第2のライブラリの前記衣服が、互いに独立している、ステップとをさらに含む請求項1に記載の方法。
【請求項4】
前記第2の衣服の前記内側ケージの前記内側特徴点を前記変形された第1の衣服の前記外側ケージの前記外側特徴点にマッピングするステップが、
前記第1の衣服の前記内側ケージの少なくとも1つの内側特徴点の位置に対応する第1のキー、および前記第1の衣服の前記外側ケージの対応する外側特徴点の位置に対応する第1の値を有する第1の放射基底関数(RBF)を提供することと、
前記第1のRBFに第2のRBFを連鎖させることであって、前記第2のRBFが、前記第2の衣服の前記内側ケージの少なくとも1つの内側特徴点の位置に対応する第2のキー、および前記第2の衣服の外側ケージの少なくとも1つの外側特徴点の位置に対応する第2の値を有する、連鎖させることとを含み、
前記第2のRBFの前記第2のキーが、前記第1のRBFの前記第1の値に等しい請求項1に記載の方法。
【請求項5】
前記ボディケージの前記ボディの特徴点が、前記アバターボディの外面を定義し、
前記変形された第1の衣服の前記外側ケージの前記外側特徴点が、前記変形された第1の衣服の外面を定義し、
前記変形された第2の衣服の外側ケージが、前記変形された第2の衣服の外面を定義する外側特徴点を含む請求項1に記載の方法。
【請求項6】
マッピングするステップおよびフィッティングするステップが、ソフトウェアアプリケーションの実行時間中にクライアントデバイスの前記ソフトウェアアプリケーションによって実行される請求項1に記載の方法。
【請求項7】
前記アバターボディが、グラフィカルなスキンを有し、前記アバターボディの上に前記変形された第1の衣服をフィッティングするステップが、前記アバターボディの前記グラフィカルなスキンの上に前記変形された第1の衣服をフィッティングすることを含む請求項1に記載の方法。
【請求項8】
プロセッサによる実行に応じて前記プロセッサに、
アバターボディを有する3Dアバターのボディケージのボディの特徴点を特定することと、
前記アバターボディに適合する変形された第1の衣服を取得するために、第1の衣服の内側ケージの内側特徴点を前記ボディケージの前記ボディの特徴点にマッピングすることと、
前記変形された第1の衣服で前記アバターボディを少なくとも部分的に包むことによって、前記アバターボディの上に前記変形された第1の衣服をフィッティングすることと、
前記第1の衣服の外側ケージに適合する変形された第2の衣服を取得するために、第2の衣服の内側ケージの内側特徴点を前記変形された第1の衣服の前記外側ケージの外側特徴点にマッピングすることと、
上にフィッティングされた前記変形された第1の衣服を有する前記アバターボディを前記変形された第2の衣服で少なくとも部分的に包むことによって、前記アバターボディの上に前記変形された第2の衣服をフィッティングすることと、
を含む動作を実行させるか、または前記動作の実行を制御させる命令を記憶させた非一時的コンピュータ可読媒体。
【請求項9】
前記動作が、
前記第1の衣服の表面の特徴の視覚的外観が少なくとも部分的に維持されるように、前記第1の衣服の前記内側ケージの前記内側特徴点のうちの少なくとも1つと、前記変形された第1の衣服の前記外側ケージの前記外側特徴点のうちの対応する外側特徴点との間の距離を保つ動作をさらに含む請求項8に記載の非一時的コンピュータ可読媒体。
【請求項10】
前記動作が、
アバターボディの第1のライブラリから前記アバターボディを取得する動作と、
衣服の第2のライブラリから前記第1の衣服および前記第2の衣服を取得する動作であって、前記第1のライブラリの前記アバターボディと前記第2のライブラリの前記衣服が、互いに独立している、動作とをさらに含む請求項8に記載の非一時的コンピュータ可読媒体。
【請求項11】
前記第2の衣服の前記内側ケージの前記内側特徴点を前記変形された第1の衣服の前記外側ケージの前記外側特徴点にマッピングする動作が、
前記第1の衣服の前記内側ケージの少なくとも1つの内側特徴点の位置に対応する第1のキー、および前記第1の衣服の前記外側ケージの対応する外側特徴点の位置に対応する第1の値を有する第1の放射基底関数(RBF)を提供する動作と、
前記第1のRBFに第2のRBFを連鎖させる動作であって、前記第2のRBFが、前記第2の衣服の前記内側ケージの少なくとも1つの内側特徴点の位置に対応する第2のキー、および前記第2の衣服の外側ケージの少なくとも1つの外側特徴点の位置に対応する第2の値を有する、動作とを含み、
前記第2のRBFの前記第2のキーが、前記第1のRBFの前記第1の値に等しい請求項8に記載の非一時的コンピュータ可読媒体。
【請求項12】
前記ボディケージの前記ボディの特徴点が、前記アバターボディの外面を定義し、
前記変形された第1の衣服の前記外側ケージの前記外側特徴点が、前記変形された第1の衣服の外面を定義し、
前記変形された第2の衣服の外側ケージが、前記変形された第2の衣服の外面を定義する外側特徴点を含む請求項8に記載の非一時的コンピュータ可読媒体。
【請求項13】
マッピングする動作およびフィッティングする動作が、ソフトウェアアプリケーションの実行時間中にクライアントデバイスの前記ソフトウェアアプリケーションによって実行される請求項8に記載の非一時的コンピュータ可読媒体。
【請求項14】
前記アバターボディが、グラフィカルなスキンを有し、前記アバターボディの上に前記変形された第1の衣服をフィッティングする動作が、前記アバターボディの前記グラフィカルなスキンの上に前記変形された第1の衣服をフィッティングする動作を含む請求項8に記載の非一時的コンピュータ可読媒体。
【請求項15】
重ねられた衣服を有する3次元(3D)アバターを提示するように動作可能なディスプレイデバイスと、
ゲームアプリケーションを記憶させたメモリと、
前記ディスプレイデバイスおよび前記メモリに結合され、前記メモリに記憶された前記ゲームアプリケーションを実行するように動作可能なプロセッサであって、前記ゲームアプリケーションが、前記プロセッサに
アバターボディを有する3Dアバターのボディケージのボディの特徴点を特定することと、
前記アバターボディに適合する変形された第1の衣服を取得するために、第1の衣服の内側ケージの内側特徴点を前記ボディケージの前記ボディの特徴点にマッピングすることと、
前記変形された第1の衣服で前記アバターボディを少なくとも部分的に包むことによって、前記アバターボディの上に前記変形された第1の衣服をフィッティングすることと、
前記第1の衣服の外側ケージに適合する変形された第2の衣服を取得するために、第2の衣服の内側ケージの内側特徴点を前記変形された第1の衣服の前記外側ケージの外側特徴点にマッピングすること、および、
上にフィッティングされた前記変形された第1の衣服を有する前記アバターボディを前記変形された第2の衣服で少なくとも部分的に包むことによって、前記アバターボディの上に前記変形された第2の衣服をフィッティングすることと、
を含む動作を実行させるか、または前記動作の実行を制御させるために前記プロセッサによって実行可能である、プロセッサとを含む装置。
【請求項16】
前記動作が、
前記第1の衣服の表面の特徴の視覚的外観が少なくとも部分的に維持されるように、前記第1の衣服の前記内側ケージの前記内側特徴点のうちの少なくとも1つと、前記変形された第1の衣服の前記外側ケージの前記外側特徴点のうちの対応する外側特徴点との間の距離を保つ動作をさらに含む請求項15に記載の装置。
【請求項17】
前記動作が、
アバターボディの第1のライブラリから前記アバターボディを取得する動作と、
衣服の第2のライブラリから前記第1の衣服および前記第2の衣服を取得する動作であって、前記第1のライブラリの前記アバターボディと前記第2のライブラリの前記衣服が、互いに独立している、動作とをさらに含む請求項15に記載の装置。
【請求項18】
前記第2の衣服の前記内側ケージの前記内側特徴点を前記変形された第1の衣服の前記外側ケージの前記外側特徴点にマッピングする動作が、
前記第1の衣服の前記内側ケージの少なくとも1つの内側特徴点の位置に対応する第1のキー、および前記第1の衣服の前記外側ケージの対応する外側特徴点の位置に対応する第1の値を有する第1の放射基底関数(RBF)を提供する動作と、
前記第1のRBFに第2のRBFを連鎖させる動作であって、前記第2のRBFが、前記第2の衣服の前記内側ケージの少なくとも1つの内側特徴点の位置に対応する第2のキー、および前記第2の衣服の外側ケージの少なくとも1つの外側特徴点の位置に対応する第2の値を有する、動作とを含み、
前記第2のRBFの前記第2のキーが、前記第1のRBFの前記第1の値に等しい請求項15に記載の装置。
【請求項19】
前記ボディケージの前記ボディの特徴点が、前記アバターボディの外面を定義し、
前記変形された第1の衣服の前記外側ケージの前記外側特徴点が、前記変形された第1の衣服の外面を定義し、
前記変形された第2の衣服の外側ケージが、前記変形された第2の衣服の外面を定義する外側特徴点を含む請求項15に記載の装置。
【請求項20】
前記アバターボディが、グラフィカルなスキンを有し、前記アバターボディの上に前記変形された第1の衣服をフィッティングする動作が、前記アバターボディの前記グラフィカルなスキンの上に前記変形された第1の衣服をフィッティングする動作を含む請求項15に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年7月14日に出願した米国特許出願第17/375,066号の優先権を主張するものであり、米国特許出願第17/375,066号は、2021年3月15日に出願した米国特許仮出願第63/161,376号の、米国特許法第119条(e)項の下での優先権を主張する非仮出願であり、これらの出願の両方は、参照によりその全体が本明細書に組み込まれる。
【0002】
本開示は、概して、コンピュータグラフィックスに関し、より詳細には、ただし、非排他的に、電子ゲームまたはその他の3次元(3D)環境における3Dアバターのための重ねられた衣服などの、下層のグラフィックオブジェクト上の重ねられた衣服のグラフィック表現を提供するための方法、システム、およびコンピュータ可読媒体に関する。
【背景技術】
【0003】
マルチユーザ電子ゲーム環境は、通常、電子ゲーム内でプレイヤーを表すアバターの使用をともなう。アバターは、多くの場合、3次元(3D)アバターであり、それらの3Dアバターは、アバターごとにジオメトリ(geometry)/形状が異なる。たとえば、アバターは、様々なボディ形状(たとえば、背が高い、背が低い、筋肉質、痩せている、男性、女性、人間、動物、エイリアンなど)、手足の数および種類を有する場合があり、アバターによって着用される複数の衣服および/またはアクセサリ(たとえば、胴体の上に着用されるシャツ、シャツの上に着用されるジャケット、ジャケットの上に着用されるスカーフ、頭の上に着用される帽子など)によってカスタマイズ可能である。
【0004】
アバターのための衣服および/またはアクセサリを提供するために、ゲーム開発者は、従来、衣服のジオメトリがボディのジオメトリに合うように、ボディおよび衣服のために統一されたトポロジーを使用する。したがって、これらの技術は、予め定義された形状を使用して、衣服とボディとの間の何らかの基本的なジオメトリ同士のマッチングを実現する。しかし、そのような技術は(予め定義された形状の存在が原因で)、ボディ形状および衣服をカスタマイズする限られた能力を提供する。
【0005】
(たとえば、アバターの一様でないボディ形状および衣服が原因で)さらなるカスタマイズが必要とされるときには、より集中的なユーザ入力および図形処理プログラミングが必要とされる。たとえば、これらの技術は、ボディのジオメトリに一致するジオメトリを有する衣服をグラフィカルに生成するために、作成者ユーザ(たとえば、衣服アイテムおよび/または異なるボディ形状を提供する者)が複雑な計算を実行することを必要とする。これらのプロセスは、複雑であり、ボディ形状作成者と衣服作成者との間の緊密な連携および協力も必要とする。
【発明の概要】
【課題を解決するための手段】
【0006】
第1の態様によれば、コンピュータによって実装される方法が、3次元(3D)アバター上の重ねられた衣服を提供する。方法は、
アバターボディを有する3Dアバターのボディケージ(cage)のボディの特徴点を特定するステップと、
アバターボディに適合する変形された第1の衣服を取得するために、第1の衣服の内側ケージの内側特徴点をボディケージのボディの特徴点にマッピングするステップと、
変形された第1の衣服でアバターボディを少なくとも部分的に包むことによって、アバターボディの上に変形された第1の衣服をフィッティングするステップと、
第1の衣服の外側ケージに適合する変形された第2の衣服を取得するために、第2の衣服の内側ケージの内側特徴点を変形された第1の衣服の外側ケージの外側特徴点にマッピングするステップと、
上にフィッティングされた変形された第1の衣服を有するアバターボディを変形された第2の衣服で少なくとも部分的に包むことによって、アバターボディの上に変形された第2の衣服をフィッティングするステップとを含む。
【0007】
別の態様によれば、プロセッサによる実行に応じてプロセッサに動作を実行させるか、または動作の実行を制御させる命令を記憶させた非一時的コンピュータ可読媒体が、提供される。動作は、
アバターボディを有する3Dアバターのボディケージのボディの特徴点を特定することと、
アバターボディに適合する変形された第1の衣服を取得するために、第1の衣服の内側ケージの内側特徴点をボディケージのボディの特徴点にマッピングすることと、
変形された第1の衣服でアバターボディを少なくとも部分的に包むことによって、アバターボディの上に変形された第1の衣服をフィッティングすることと、
第1の衣服の外側ケージに適合する変形された第2の衣服を取得するために、第2の衣服の内側ケージの内側特徴点を変形された第1の衣服の外側ケージの外側特徴点にマッピングすることと、
上にフィッティングされた変形された第1の衣服を有するアバターボディを変形された第2の衣服で少なくとも部分的に包むことによって、アバターボディの上に変形された第2の衣服をフィッティングすることとを含む。
【0008】
さらに別の態様によれば、
重ねられた衣服を有する3次元(3D)アバターを提示するように動作可能なディスプレイデバイスと、
ゲームアプリケーションを記憶させたメモリと、
ディスプレイデバイスおよびメモリに結合され、メモリに記憶されたゲームアプリケーションを実行するように動作可能なプロセッサであって、ゲームアプリケーションが、プロセッサに
アバターボディを有する3Dアバターのボディケージのボディの特徴点を特定すること、
アバターボディに適合する変形された第1の衣服を取得するために、第1の衣服の内側ケージの内側特徴点をボディケージのボディの特徴点にマッピングすること、
変形された第1の衣服でアバターボディを少なくとも部分的に包むことによって、アバターボディの上に変形された第1の衣服をフィッティングすること、
第1の衣服の外側ケージに適合する変形された第2の衣服を取得するために、第2の衣服の内側ケージの内側特徴点を変形された第1の衣服の外側ケージの外側特徴点にマッピングすること、および
上にフィッティングされた変形された第1の衣服を有するアバターボディを変形された第2の衣服で少なくとも部分的に包むことによって、アバターボディの上に変形された第2の衣服をフィッティングすることを含む動作を実行させるか、または動作の実行を制御させるためにプロセッサによって実行可能である、プロセッサとを含む装置が、提供される。
【図面の簡単な説明】
【0009】
【
図1】一部の実装による例示的なボディケージを示す図である。
【
図2】一部の実装による別の例示的なボディケージを示す図である。
【
図3】一部の実装による、対応するボディパーツにグループ分けされるボディケージの部分の例を示す図である。
【
図4】一部の実装による、ボディケージ上で変形された衣服レイヤの例を示す図である。
【
図5】一部の実装による、
図4の衣服レイヤおよびボディケージの部分に基づいて形成された外側ケージの例を示す図である。
【
図6A】一部の実装による、アバターのボディ形状上で変形された衣服の例を示す図である。
【
図6B】一部の実装による、アバターのボディ形状上で変形された衣服の例を示す図である。
【
図6C】一部の実装による、アバターのボディ形状上で変形された衣服の例を示す図である。
【
図6D】一部の実装による、アバターのボディ形状上で変形された衣服の例を示す図である。
【
図7】一部の実装による、レイヤの初期状態を表す図である。
【
図8】一部の実装による、別のレイヤの上に形成されているレイヤを表す図である。
【
図9】一部の実装による、アバターボディ上の衣服などのオブジェクトの論理的な階層的重なりを表す図である。
【
図10】一部の実装による、アバターボディ上で変形されている衣服レイヤの例を示す図である。
【
図11】一部の実装による、重ねられた衣服を持つ3Dアバターをサポートすることができる3D環境プラットフォームを含む例示的なシステムアーキテクチャの図である。
【
図12】一部の実装による、3Dアバター上の重ねられた衣服を提供するためのコンピュータによって実装される方法を示す流れ図である。
【
図13】一部の実装による例示的なコンピューティングデバイスを示すブロック図である。
【発明を実施するための形態】
【0010】
以下の詳細な説明において、本明細書の一部をなす添付の図面に対する参照がなされる。図面において、概して、同様の符号は、文脈がそうでないことを示さない限り、同様の構成要素を特定する。詳細な説明、図面、および請求項に記載の例示的な実施形態は、限定的であるように意図されていない。本明細書において提示される対象の精神または範囲を逸脱することなく、その他の実施形態が利用される場合があり、その他の変更がなされる場合がある。本明細書において全体的に説明され、図に図示される本開示の態様は、多種多様な異なる構成で配置され、置き換えられ、組み合わされ、分割され、設計されることが可能であり、それらの構成のすべては、本明細書において想定されている。
【0011】
「一実施形態」、「実施形態」、「例示的な実施形態」などの本明細書における言及は、説明された実施形態が特定の特徴、構造、または特性を含む可能性があるが、あらゆる実施形態が特定の特徴、構造、または特性を含むとは限らない可能性があることを示す。その上、そのような語句は、必ずしも同じ実施形態への言及であるとは限らない。さらに、特定の特徴、構造、または特性が実施形態に関連して説明されるとき、そのような特徴、構造、または特性は、明示的に説明されているか否かにかかわらずその他の実施形態に関連して実現される場合がある。
【0012】
本開示は、3Dアバターのための自動ケージ間フィッティング(cage-to-cage fitting)技術を使用することによって、3D環境における上述の欠点に対処する。本技術は、衣服のレイヤが衣服の下層のレイヤの上にフィッティングされることを可能にすることを含め、任意のボディのジオメトリが任意の衣服のジオメトリとフィッティングされることを可能にし、それによって、予め定義されたジオメトリによって課せられる制限、またはアバターの任意のボディ形状もしくはその他の衣服アイテムに衣服アイテムを適合させるための複雑な計算を必要とすることなく、カスタマイズを提供する。また、ケージ間フィッティングは、アバター作成者(アバターボディ作成者もしくはボディ作成者とも呼ばれる)または衣服アイテム作成者が複雑な計算を実行することを必要とすることなく、ゲームプラットフォームまたはゲームソフトウェア(または3D環境を提供するために動作するその他のプラットフォーム/ソフトウェア)によってアルゴリズム的に実行される。本明細書において使用される用語「衣服」または「衣服アイテム」は、衣服およびアクセサリ、ならびにアバターケージの特定の部分に関連してアバター上に配置され得る任意のその他のアイテムを含むと理解される。
【0013】
本明細書において説明する実装は、アバターボディ作成者の作業が衣服作成者の作業から切り離されることを可能にする。たとえば、アバターボディ作成者は、任意の所望の/カスタマイズされた形状およびサイズのジオメトリを有するボディを作成し、3Dプラットフォームによってホストされるボディライブラリにボディを公開することができる。衣服作成者は、シャツ、ズボンなどの任意の衣服の汎用的なテンプレートを独自に作成し、3Dプラットフォームによってホストされる衣服ライブラリに衣服のテンプレートを公開することができる。
【0014】
純粋に例示および説明の目的で、様々な実施形態が、本明細書においては、ゲームプラットフォームによって提供される3Dゲームで使用される3Dアバターの文脈で説明される。そのようなゲーム環境が例であるに過ぎないことは理解される。本明細書において説明されるケージ同士を重ねる技術(cage-to-cage layering technique)のその他の実装は、仮想現実(VR)会議、3Dセッション(たとえば、3Dアバターを含むオンライン講義もしくはその他の種類のプレゼンテーション)、拡張現実(AR)セッションなどのその他の種類の3D環境に、または1つもしくは複数の3Dアバターによって3D環境内に表される1人もしくは複数のユーザを含む場合があるその他の種類の3D環境において適用されてよい。
【0015】
ゲームまたはその他の3Dセッション中の実行時に、プレイヤー/ユーザは、ボディライブラリにアクセスして特定のボディを選択し、衣服ライブラリにアクセスして、選択されたボディ上に配置する衣服を選択する。それから、アバターを提示する3D環境プラットフォームは、ケージ間フィッティング技術を実施して、ボディの形状に適合するように衣服を(自動的に決定された好適な変形によって)調整し、それによって、衣服をボディ(およびアバターによって着用されている場合は任意の中間レイヤ)に自動的にフィッティングする。ユーザは、さらに、下層の衣服の上にフィッティングする追加の衣服を選択することができ(重ねられた衣服)、追加の衣服は、下層の衣服のジオメトリに一致するように変形する。
【0016】
本明細書において説明される実装は、「ケージ」および「メッシュ」の概念に基づく。ボディのメッシュは、アバターの実際の可視のジオメトリである。ボディのメッシュは、腕、脚、胴体、頭部などのグラフィック表現を含み、任意の形状、サイズ、および幾何学的トポロジーであることが可能である。同様に、衣服メッシュは、シャツ、ズボン、帽子、靴などの衣服、またはその一部をグラフィカルに表すいかなる任意のメッシュであることも可能である。
【0017】
比較すると、ケージは、ボディのメッシュよりもはるかに単純で、ボディのメッシュの対応する頂点との弱い対応を有する、アバターボディの周りの特徴点のエンベロープ(envelope)を表す。下でさらに詳細に説明されるように、ケージは、アバターボディ上の1組の特徴点だけでなく、衣服上の1組の特徴点も表すために使用されてもよい。
【0018】
図1は、一部の実装による例示的なボディケージ100を示す。
図1の例のボディケージ100は、マネキンとして働く人型ボディ形状の外面/輪郭を包むか、またはそのような外面/輪郭の上に重ね合わされる外側ケージである。
【0019】
ボディケージ100は、マネキンの形状を定義するか、またはそうでなければ特定するか、またはマネキンの形状に対応する複数の特徴点102を含む。一部の実装において、特徴点102は、マネキン上の複数のポリゴン(またはその他の幾何学的形状)の線分/辺104の頂点によって形成される。一部の実装において、特徴点102は、必ずしもいずれかのポリゴンの頂点によって形成されず、離散点である場合がある。
【0020】
図1のボディケージ100は、指を除いた人型のボディのジオメトリに関する642個の特徴点(または何らかのその他の数の特徴点)を持つ低解像度のボディケージの例を提供する。その他の例は、475個の特徴点を持つボディケージを使用する場合がある。たとえば、指を含む人型ジオメトリのボディケージは、1164個の特徴点(または何らかのその他の数の特徴点)を有する可能性がある。より高い解像度のボディケージは、2716個の特徴点(または何らかのその他の数の特徴点)を含む場合がある。特徴点のこれらの数(およびその範囲)は、単なるいくつかの例である--特徴点の数は、所望の解像度、3Dプラットフォームの処理能力、ユーザの好み、マネキンのサイズ/形状などの要因に依存して実装ごとに異なってよい。
【0021】
ケージは、いかなる任意のアバターのボディ形状または衣服の形状にも提供される場合がある。たとえば、
図2は、一部の実装による別の例示的なボディケージ200を示す。
図2の例のボディケージ200は、汎用的なゲームアバターのボディ形状の外面/輪郭を包むか、またはそのような外面/輪郭の上に重ね合わされる外側ケージである。
図1のボディケージ100と比較して、
図2のボディケージ200は、同じ数の特徴点を有していてよい。その他の実装において、ボディケージ200は、ゲームアバターの異なる(より単純またはより複雑な)幾何学的形状の結果として、および/またはその他の要因に基づいて、より少ないまたはより多い数の特徴点202など、ボディケージ100と比較して数が異なる多数の特徴点の数を有する場合がある。したがって、ボディケージごとの特徴点の数は、異なるボディ形状またはその他のボディのプロパティのために適宜選択されてよい。
【0022】
一部の実装においては、帯域幅および性能/効率の目的でまたはその他の理由で、特徴点の数が、475個の特徴点(または何らかのその他の数の特徴点)など、上で与えられた数よりも少ない数に減らされる場合がある。さらに、一部の実装において、ボディケージ内の特徴点(頂点)は、それぞれがボディ形状の一部を表す15個のグループに配置される場合がある。
図3は、一部の実装による、対応するボディパーツにグループ分けされるボディケージ300の部分の例を示す。
【0023】
より詳細には、
図3に示される15個のボディパーツは、(人型マネキンに関して)頭、胴体、股関節部(hip)、右足、左足、左下腿(lower leg)、右下腿、左上腿(upper leg)、右上腿、左手、右手、左前腕、右前腕、左上腕、および右上腕である場合がある。いずれのボディ形状のパーツの数も、示された15個のボディパーツよりも多いまたは少ない場合がある。たとえば、「片腕の」アバターキャラクタは、手、前腕、および上腕が省略されているため、(15個ではなく)12個のボディパーツを有する可能性がある。さらに、その他のボディ形状は、ボディのジオメトリ、所望の解像度、処理能力、アバターキャラクタの種類(たとえば、動物、エイリアン、モンスターなど)などの要因に応じて、より少ないまたはより多い数のボディパーツを含む場合がある。
【0024】
図3の15個のグループ/パーツの各々は、アバターボディのそのパーツを定義する特徴点を含む。そして今度は、特徴点のそのようなグループが、対応する衣服にマッピングされ得る。たとえば、左/右の前腕、左/右の上腕、および胴体を定義するボディケージ300内の特徴点は、ジャケットのグラフィック表現が、アバターボディの左/右の腕および胴体に論理的におよび対応して合うジャケットの左/右の腕および胴体をレンダリングするグラフィカルなメッシュからなるという点で、ジャケットの内側ケージにマッピングされる外側ケージとして使用されてよい。
【0025】
さらに、(
図3に示されたような)複数のグループへのこの分割は、典型的でないボディ形状への衣服のカスタマイズされたフィッティングを可能にする。たとえば、3Dアバターは、左腕がない「片腕の」アバターキャラクタの形態であってよい。したがって、その3Dアバターのボディケージは、左手、左前腕、および左上腕に対応する特徴点のグループを欠いている。その後、ジャケットが3Dアバターの上にフィッティングするために選択されるとき、ジャケットの右前腕、右上腕、および胴体は、3Dアバター(ボディマネキン)の対応する右前腕、右上腕、および胴体に合うように変形されることが可能であり、ジャケットの左前腕および左上腕は、変形の対象となるべきボディマネキンの左腕のケージが存在しないので変形されない(たとえば、その親空間(parent space)からのその元の形態で固まったままである)。
【0026】
図4は、一部の実装による、(
図3に示されたボディケージ300などの)ボディケージの上で変形された衣服レイヤ400の例を示す。衣服レイヤ400は、頂点、辺、および面の集合からなるポリゴンメッシュ402を使用して生成/レンダリングされてよいパーツを有する(
図4において灰色の色分けで示される)ジャケットのグラフィック表現である。
【0027】
衣服レイヤ400は、ボディケージ300の特徴点に対応する特徴点を有する内側ケージ(
図4に示さず)を含む。特に、衣服レイヤ400の内側ケージの特徴点は、左および右の前腕、左および右の上腕、ならびに胴体を構成するボディケージ300の特徴点にマッピングされる。一部の実装において、このマッピングは、衣服レイヤ400の内側ケージの特徴点を、ボディケージ300の腕および胴体の対応する特徴点の座標位置に直接マッピングすることを含む。そのようなマッピングは、両方のケージが同じ数の特徴点を有するときには1:1の対応を含む場合があり、マッピングは、n:1または1:n(nは1よりも大きい整数である)である場合があり、その場合は、一方のケージ内の複数の特徴点が、他方のケージの同じ特徴点にマッピングされる場合がある(または一部の特徴点がマッピングされない場合がある)。
【0028】
衣服レイヤ400は、衣服レイヤ400のその内側ケージの対応する特徴点から離間され、それらの対応する特徴点にリンクされる特徴点を有する外側ケージを含む。衣服レイヤ400の外側ケージの特徴点は、ジャケットのフード404、袖口406、ストレートカットの胴体408などの特徴を定義するように、ジャケットの外面の輪郭/ジオメトリを定義するか、またはそうでなければジャケットの外面の輪郭/ジオメトリに沿って位置する。
【0029】
様々な実装によれば、空間的距離(たとえば、衣服レイヤ400の内側ケージの特徴点と衣服レイヤ400の外側ケージの対応する特徴点との間の空間的距離)は、既存のレイヤ(またはアバターボディ)の外側ケージへの衣服レイヤ400のフィッティング中、一定に保たれる。このようにして、衣服レイヤ400の内側ケージの特徴点が、アバターの胴体および腕にジャケットの内側を「フィッティングする」ように、ボディケージ300の特徴点にマッピングされてよい。そして、衣服レイヤ400の内側ケージの特徴点と衣服レイヤ400の外側ケージの対応する特徴点との間の距離が一定に保たれるようにして、ジャケットの外側の輪郭も、アバターボディの形状に一致するように変形され、それによって、
図4に示されるように、アバターボディの形状に同時に一致しながら、ジャケットのフード、袖口、ストレートカットの胴体、およびその他の表面の特徴の視覚的外観(グラフィック表現)を少なくとも部分的に維持する結果をもたらすことができる。このようにして、衣服レイヤ400は、背が高い、背が低い、スリム、筋肉質、人型、動物、エイリアンなどの、アバターボディ(ボディケージ)のいかなる任意の形状/サイズにも合うように、任意の適切な方法で変形され得る。
【0030】
一部の実装においては、その他の衣服レイヤの上の追加の衣服レイヤが、(たとえば、ユーザの選択に応答して)配置され得る。
図5は、一部の実装による、
図4の衣服レイヤおよびボディケージ300の一部が外側ケージ500を形成するために使用される例を示す。より詳細には、
図4の衣服レイヤ400の外側ケージの特徴点が、ボディケージ300の露出した部分の特徴点およびジャケットの外面に沿った特徴点からなる複合外側ケージ500をもたらすように、今や、ボディケージ300の特徴点と組み合わされる。たとえば、(ジャケットの本体、フード、および袖によって形成される)ジャケットの露出した外面が、1組の特徴点を提供し、ジャケットによって覆われていない露出した脚、手、頭、およびボディの胸の一部が、別の1組の特徴点を提供し、(組み合わされた)これら2組の特徴点が、外側ケージ500の特徴点を提供する。
【0031】
ジャケットの外面/形状に対応し、ジャケットの外面/形状を定義する
図5の外側ケージ500の特徴点は、
図4の衣服レイヤ400の外側ケージの特徴点と同じであってよい。一部の実装においては、
図4のジャケット(衣服レイヤ400)の外側ケージの特徴点と比較して、異なる、および/または追加の、および/またはより少ない特徴点が、
図5の外側ケージ500のジャケットの領域のために使用される場合がある。たとえば、外側ケージ500の上の衣服の次のレイヤのためにより高い解像度またはより厳密なフィッティングが望まれる場合、(
図4の衣服レイヤ400の外側ケージと比較して)ジャケットのエリアによって包含される外側ケージ500に関して、追加の特徴点が計算される場合がある。同様に、外側ケージ500の上の衣服の次のレイヤのためにより低い解像度もしくはより厳密でないフィッティングが望まれる場合、および/または可能な限り少ない特徴点を使用することによって提供される処理/帯域幅の効率の改善などのその他の考慮事項が原因で、(衣服レイヤ400の外側ケージと比較して)ジャケットのエリアに包含される外側ケージ500に関して、特徴点が計算される場合がある。
【0032】
動作中、ユーザがジャケット(衣服レイヤ400)の上および/またはアバターボディのその他の部分の上に(オーバーコートまたはその他の衣服などの)追加の衣服レイヤをフィッティングしたい場合、そのような追加の衣服レイヤの内側ケージの特徴点が、外側ケージ500の対応する特徴点にマッピングされる。したがって、変形(たとえば、フィッティング)が、
図4に関連して説明された方法と同様の方法で実行され得る。
【0033】
したがって、衣服を重ねることに関する
図4および
図5の例によれば、アバターボディの「外側ケージ」(ボディケージ300)の特徴点を、衣服の第1のレイヤの「内側ケージ」の特徴点とマッチングすることによって、衣服の第1のレイヤ(衣服レイヤ400)が、ボディに巻き付けられる。このマッチングは、内側ケージと外側ケージとの間で厳密に一致する特徴点の数に依存する必要がないように、ケージのUV空間で行われてよい。たとえば、特徴点は、位置とテクスチャ空間座標との両方を持つ頂点であってよい。テクスチャ空間座標は、通常、U、V座標に関してそれぞれ[0,1]の範囲で表される。テクスチャ空間は、頂点に関する「ラップされていない(unwrapped)」正規化された座標空間と考えられてよい。UV空間において頂点の2つの組の対応を実行し、それらの頂点の位置を使用しないことによって、頂点間の対応が、正規化された空間において行われ、それによって、厳密な頂点間のインデックスのマッピングという難しい要件を取り除くことができる。
【0034】
本明細書において説明される技術によれば、各アバターボディおよび衣服アイテムは、したがって、「内側ケージ」および「外側ケージ」に関連付けられる。アバターボディの場合、内側ケージは、デフォルトの「マネキン」を表し(異なるアバターのボディ形状のために異なるマネキンが提供されてよい)、アバターボディの「外側ケージ」は、アバターボディの形状の周りのエンベロープを表す。衣服アイテムに関して、「内側ケージ」は、衣服アイテムがどのように下層のボディを(または前の衣服レイヤがその上に既にフィッティングされているボディを)包むかを定義するために使用される内側のエンベロープを表し、「外側ケージ」は、アバターボディに着用されるときに、次の衣服レイヤがこの特定の衣服アイテムに巻き付けられる方法を表す。
【0035】
図6A~
図6Dは、一部の実装による、様々なアバターのボディ形状上で変形された重ねられた衣服の例を示す。
図6Aは、
図3に関連して上で説明されたような特徴点の15個のグループからなる外側ケージを有する、汎用的なゲームプレイヤーの形状をしたマネキン600を示す。そして、
図6Aは、マネキン600の形状/サイズにぴったりフィッティングされる異なる種類の衣服、すなわち、602(シャツおよびショートパンツ)、604(シャツ、ズボン、およびスニーカー)、606(ドレス)、608(ブラウス、スカート、および靴)、610(サマードレス)、ならびに612(鎧)を示す。さらに、マネキン600は、
図6Aにおける灰色の肌および笑顔などのその他の外面的なグラフィカルな特徴の「スキンを設定される(skinned)」ことも可能である。
【0036】
図6Bは、
図6Aのマネキン600とは異なる形状/サイズ(たとえば、筋肉質な体格およびデフィニション(definition))を有するマネキン614を示す。さらに、616~626は、マネキン614の上にぴったりフィッティングされた防護服を示し、それから、防護服の上に追加のレイヤとして適合するようにフィッティングするために変形されている
図6Aの衣服の同じアイテムを示す。
【0037】
図6Bは、マネキン614とは異なる(たとえば、よりスリムな)形状/サイズを有する別のマネキン628を示す。マネキン628は、630~640に示されるように、その上にぴったりフィッティングされた黒っぽいシャツ、黒っぽいレギンス、およびブーツを有し、それから、黒っぽいシャツ、黒っぽいレギンス、およびブーツの上に追加のレイヤとしてぴったり合うように変形されている
図6Aの衣服の同じアイテムを有する。
【0038】
図6Cは、異なる形状およびサイズのマネキン642および656を示し、両マネキンは、「モンスター」(たとえば、角、爪、牙、獰猛な動物のような顔、およびその他の装飾を持つアバター)に見えるように、644~654および658~666においてそれぞれスキンを設定されている。そして、さらに、644~654および658~666は、モンスターの表面形状/特徴の上に衣服レイヤとしてぴったり合うように変形されている
図6Aの衣服の同じアイテムを示す。
【0039】
図6Dは、
図6Bのマネキン628とは異なる形状/サイズ(たとえば、より大きな体格)を有するマネキン668を示す。マネキン668は、670~680に示されるように、その上にぴったりフィッティングされた黒っぽいシャツ、黒っぽいズボン、およびスニーカーを有し、それから、黒っぽいシャツ、黒っぽいズボン、およびスニーカーの上に追加のレイヤとしてぴったり合うように変形されている
図6Aの衣服の同じアイテムを有する。
【0040】
図6Dは、「エイリアン」(たとえば、人型でない頭/腕/脚の形状を有するアバター)の形態の別のマネキン682も示し、684~694は、エイリアンの特徴および/またはエイリアンの衣服のスキンを設定されているマネキン682をさらに示す。それから、684~694は、モンスターの特徴/衣服の上に衣服レイヤとしてぴったり合うように変形されている
図6Aの衣服の同じアイテムを示す。
【0041】
様々な実装によれば、内側ケージおよび外側ケージの特徴点の間のマッピングは、放射基底関数(RBF)補間技術を使用して実行され得る。1組のRBF(たとえば、出力が入力と何らかの固定点との間の距離に依存する関数)は、メッシュの頂点(外側ケージの特徴点)と内側ケージの1組の特徴点によって定義される暗黙的な表面(implicit surface)との間の距離を計算し、保存する。
【0042】
ケージは、対応する正規化された2D UV座標を持つ3D空間内の点の組として数学的に表される場合がある。計算は、連立一次方程式を解くことによって最適化される場合があり、連立一次方程式を解くことは、高度にベクトル化された計算構造(compute structure)を使用することができる。技術的利点は、少なくとも以下を含む場合がある。
- 実施形態が、ケージを基準として独立して構築され得る共有されたトポロジーのない任意のボディへの衣服の巻き付けをサポートすること、
- 距離の維持(たとえば、ボディの頂点と衣服の頂点との間の相対距離が、中間ケージによって、RBF変形ステップ中に維持される)、ならびに
- 実施形態が、3Dメッシュの平行移動、回転、および変形によって生じる大きなメッシュの変形を扱うことができること。
【0043】
RBFは、辞書<key, value>データ構造によって表されるか、または辞書<key, value>データ構造に類比され得る。たとえば、
Key = 1、Value = 100
Key = 2、Value = 200
rbf(1) = 100
rbf(2) = 200
rbf(1.5) = 150
【0044】
様々な実装において、キー・値ペア<key, value>を持つRBF関数は、特徴点の各ペアに関して、rbf<key, value>の形態を有し、key = 内側ケージの頂点位置であり、value = 外側ケージの頂点位置である。
【0045】
例として、rbf<key, value> = 100が、RBF関数の出力として設定され、「100」の出力が、次のレイヤの内側ケージ内の特徴点と既存のレイヤの外側ケージの対応する特徴点とのすべてのペアに適用されるすべてのRBF関数に関して維持される(一定に保たれる)。したがって、(既存のレイヤの)外側ケージ内の特徴点1の頂点位置がこのRBF関数への入力として与えられる場合、(次のレイヤの)内側ケージ内の対応する特徴点1の値は、RBF関数によって、rbf<内側ケージ内の特徴点1の頂点位置、外側ケージ内の対応する特徴点1の頂点位置> = 100となるように計算される。そして、RBF関数(計算)は、(次のレイヤの)内側ケージの対応する特徴点の頂点位置が外側ケージ内の既存の特徴点の知られている頂点位置から特定/補間されるように、およびRBF関数の出力「100」がRBF関数のすべてにおいて維持されるように、既存のレイヤのそれぞれの外側ケージの頂点位置(特徴点)に対して連続的に実行される。このようにして、次のレイヤは、既存のレイヤに合うように変形され得る。
【0046】
図7および
図8を参照することによって、例示的なRBF技術のさらなる詳細が確かめられてよい。まず
図7から始めると、
図7は、一部の実装による、レイヤの初期状態を表す
図700を示す。それぞれの4つのレイヤ(たとえば、レイヤ0~レイヤ3、レイヤ0が最下位レイヤであり、最上位レイヤのレイヤ3に向かって上がっていく)の内側ケージが、702に示され、一方、レイヤ0~レイヤ3の外側ケージが、704に示される。最下位レイヤ0は、ボディケージ、またはボディケージの上に配置される衣服の第1のレイヤである場合がある。
図7の初期状態において、内側ケージ702および外側ケージ704の頂点(特徴点)の位置の点で、あらゆるレイヤは同じである(たとえば、レイヤを超えて頂点位置に関して同じ値を有する)。したがって、レイヤ0の外側ケージ内の頂点(特徴点)の位置は、レイヤ1からレイヤ3の外側ケージ内の頂点(特徴点)の位置と同じである。同様に、レイヤ0の内側ケージ内の頂点(特徴点)の位置は、レイヤ1からレイヤ3の内側ケージ内の頂点(特徴点)の位置と同じである。
【0047】
図7の例に示されたように、レイヤの各々(内側ケージと外側ケージとの両方)は、突出部706を含み、突出部706は、レイヤの概ね平面的な表面と異なる/そのような表面から突出する構造である。アバターのマネキンの観点から言えば、たとえば、突出部706は、ボディ形状の不規則な輪郭(たとえば、指、耳、鼻、肘、角など)を表す場合がある。衣服の観点から言えば、突出部706は、スパイク(spike)、ボタン、服のふわふわした/だぶだぶした部分などを表す場合がある。
【0048】
次に
図7の副次的
図708を参照すると、個々のレイヤの表現が示される。各レイヤは、内側/外側ケージのペアによって定義される。副次的
図708のレイヤは、突出部706を、塗りつぶされたドットとして示された特徴点(頂点)を有する外側ケージ、および塗りつぶされていないドットとして示された特徴点(頂点)を有する内側ケージと一緒に含む。対応するドット(内側ケージおよび外側ケージからそれぞれ1つずつ)の各ペアは、rbf<key, value>という形態のRBF関数によって表され、key = 内側ケージの頂点位置である、value = 外側ケージの頂点位置である。内側ケージ内の特徴点と外側ケージ内の特徴点との間に1対1の対応がない(たとえば、特徴点の一方が存在しないかまたは位置が合っていない)場合がある一部のレイヤのジオメトリにおいては、RBF補間が、欠落した特徴点を定義する(たとえば、欠落した値を再構築するかまたは埋める)ために使用されてよい。
【0049】
(突出部706の外の)対応するドットの間の距離D1は、外側ケージ内の特徴点と内側ケージ内の対応する特徴点との間の距離である。距離D1は、たとえば、0ピクセル以上の値を有することができる。距離D2は、突出部706に沿った外側ケージ内の特徴点と内側ケージ内の対応する特徴点との間の距離である。距離D2は、たとえば、距離D2が距離D1より大きくなるように、1ピクセル、2ピクセル、またはそれよりも多い数のピクセルの値を有することができる。
【0050】
本開示全体を通じて説明されるように、距離D1およびD2は、新しいレイヤが既存のレイヤの上にぴったりフィッティングされるときに維持され得る(
図8に関連して次に説明される)。このようにして、衣服のレイヤの表面の特徴の視覚的外観が、少なくとも部分的に維持され得る。たとえば、アバターの上にフィッティングされた「だぶだぶ」のズボンは、たとえアバターボディまたは下層の衣服レイヤが(スリムであるか、またはそれ以外の形でだぶだぶでない)異なる形状/輪郭を有する場合があるとしても、依然として「だぶだぶ」に見える。別の例として、「スパイク付きジャケット」がアバターの上にフィッティングされることが可能であり、それから、スカーフが、各スパイクの山および谷に追従するのではなくジャケットの「スパイク」によって吊り下げられているスカーフの視覚的外観を提供するようにスパイク付きジャケットの上にぴったりフィッティングされることが可能である。
【0051】
次に
図8を参照すると、
図8は、一部の実装による、既存のレイヤの上に形成されている新しいレイヤを表す
図800を示す。
図800に示されるようにおよび次に説明されるように、それぞれの後続の(新しい)レイヤは、前の(既存の)レイヤを収容するためにますます膨らまされる。
【0052】
さらに、新しいレイヤの内側ケージは、直前の(既存の)レイヤの外側ケージに等しい。たとえば、レイヤ0は、内側ケージ802および外側ケージ804を含む。レイヤ0は、たとえば、アバターボディ/マネキンの上にフィッティングされた衣服の第1のレイヤであってよい。あるいは、レイヤ0は、標準的なボディテンプレートを現在のアバターボディに変換するために使用されるベースレイヤであってよい。
【0053】
レイヤ1(第1のレイヤ0の上にフィッティングされた衣服の第2のレイヤ)は、前にフィッティングされたレイヤ0の外側ケージ804と(たとえば、形状、サイズ、輪郭などの点で)等しくなるように変形される(膨らまされる)内側ケージ806を含み、レイヤ1の外側ケージ808も、それに対応して(たとえば、ケージ806および808の対応する特徴点の間の距離を維持するように)膨らまされる。
【0054】
レイヤ2(第2のレイヤ1の上にフィッティングされた衣服の第3のレイヤ)は、前にフィッティングされたレイヤ1の外側ケージ808と等しくなるように変形される(膨らまされる)内側ケージ810を含み、レイヤ2の外側ケージ812も、それに対応して膨らまされる。レイヤ3(第3のレイヤ2の上にフィッティングされた衣服の第4のレイヤ)は、前にフィッティングされたレイヤ2の外側ケージ812と等しくなるように変形される(膨らまされる)内側ケージ814を含み、レイヤ3の外側ケージ816も、それに対応して膨らまされる。
【0055】
図8の
図800に示されたレイヤの逐次的な重ね合わせのためのステップは、以下のように説明される場合がある。
1. 衣服レイヤN:
A. レイヤNが、アバターボディの外側ケージと衣服レイヤNの内側ケージとをマッチングすることによって、アバターボディの周りで変形する。
B. 衣服レイヤNの外側ケージも変形されて、今や、組み合わされたボディを衣服で包む。
2. 衣服レイヤN + 1:
A. 衣服レイヤN + 1が、ステップ1Bからの新しい外側ケージと衣服レイヤN + 1の内側ケージとをマッチングすることによって、ボディ+衣服レイヤNの周りで変形する。
B. 組み合わされたボディおよび衣服の上記2つのレイヤの外側ケージが、ボディ+衣服の2つのレイヤの組み合わされたジオメトリを包むように衣服レイヤN + 1の外側ケージを変形することによって計算される。
3. アバターによって着用される衣服レイヤN + 2などの数だけ、上述のとおりに同じ手法を継続する。
【0056】
したがって、上述のことに従って、あらゆるレイヤは、現在のレイヤから次のレイヤにどのようにして至るかに関する(RBF補間を使用した)規則を定義する。
図8の例において、RBF補間が、上向きの重なりの方向(衣服のレイヤを纏っているアバターケージの場合は、マネキンを起点とする外向きの方向に対応する可能性がある)に任意のレベルから任意のその他のレベルに至るために順番に連鎖させられる。一部の実装において、RBF補間は、(たとえば、膨張し、ふわふわのジャケットの上に合うのではなく、装甲板の下のレイヤを圧縮する装甲板のようなアイテムに適した変形を提供するために)上のレイヤから下のレイヤに至るために逆方向に連鎖させられ得る。
【0057】
図9は、一部の実装による、アバターボディ902上の衣服などのオブジェクトの論理的な階層的重なりを表す
図900を示す。異なるレイヤの間の記号的分割は、
図9において破線によって描かれており、最下位(ベース)レイヤは、
図900の一番下にあり、最上位レイヤは、
図900の一番上にある。衣服レイヤおよびその他のグラフィックオブジェクトがアバターボディ902上に配置される順序/順番は、論理的な配置に基づく場合がある。たとえば、靴下は、足の上に直接配置されるべきであり、(靴下の上に配置される場合がある)靴の前のレイヤに配置されるアイテムとして定義される場合がある。
【0058】
図900に示された例においては、アバターボディ902が、ベース(第1のレベル)のグラフィックオブジェクトを形成する。このベースのグラフィックオブジェクトの上に、靴下904、手のアクセサリ(たとえば、指輪)906、化粧908などの第2のレベルのグラフィックオブジェクトが配置されてよい。
【0059】
第2のレベルの後に、衣服(インナーウェア)910、靴912、衣服(アウターウェア)914、アクセサリ916(たとえば、スカーフのような首用、耳、鼻、眉用のピアスなど)、髪918、およびアクセサリ920(たとえば、前/後/肩アクセサリ、帽子など)などの階層内の後続のレベルのグラフィックオブジェクトが順に続く場合がある。
【0060】
図9に描かれたグラフィックオブジェクトおよびグラフィックオブジェクトの様々なレベルの順番は、例であるに過ぎないことを理解されたい。その他の実装は、
図9に描かれたグラフィックオブジェクトとは異なる/より少ない/追加のグラフィックオブジェクトを含むことが可能であり、そのようなグラフィックオブジェクトは、異なるレベルに、
図9に描かれているものに関連した順序で(または順序から外れて)配置される場合がある。
【0061】
図10は、一部の実装による、アバターボディ上で変形されている衣服の例を示す。
図10は、上記の
図7~
図9およびそれらの付随する説明と併せて検討され得る。
【0062】
まず1000から始めると、ユーザが、概してがっしりした体格を有するアバターボディを選択済みである。アバターボディは、たとえば、アバター作成者によって提供されるアバターのライブラリから選択される場合がある。また、1000において、ユーザは、(
図11および
図13に関連して後述される)1つまたは複数のツールを使用して、衣服の第1のレイヤを選択し、衣服の第1のレイヤの靴、ズボン、ベルト、およびコートがアバターボディのがっしりした体格に適合するように変形されるように、アバターボディの上に衣服の第1のレイヤをフィッティング済みである。衣服の第1のレイヤ内のこれらの衣服アイテムは、たとえば、衣服作成者によって提供される衣服アイテムのライブラリから選択される場合がある。
【0063】
1000において、アバターボディ上に示された衣服アイテムのうちの1つまたは複数は、代替的に、本明細書において説明される技術を使用してアバターボディの上にフィッティング/変形される衣服アイテムではなく、アバター作成者によってアバターのために提供されるスキンである可能性があることに留意されたい。
【0064】
次に、1002において、汎用的なマネキン1006に纏わせたジャケット1004が、衣服のライブラリから選択するために利用可能である。1002のジャケット1004は、(汎用的なマネキン1006に着用されているように示されている)ジャケットの汎用的なテンプレートであることが可能である。1002のジャケット1004は、グラフィカルなメッシュによって形成される場合がある。1002のジャケット1004は、衣服のライブラリにある間にそのジャケット1004のために既に構成された内側/外側ケージを有する場合があり、または内側/外側ケージは、ユーザが衣服のライブラリからジャケットを選択した後の実行時に後で計算する場合がある。ジャケットは、たとえば、1000に示された衣服の上に重ねる別の衣服としてユーザによって選択される場合がある。
【0065】
次に、1008において、1000からの前の衣服をジャケットで包むように、1002からのジャケット1004の内側ケージを1000からの衣服の外側ケージにマッピングすることと、ジャケット1004の外側ケージと内側ケージとの間の頂点の距離を維持するように、1002からジャケット1004の外側ケージを変形させることとを含む上述のステップが、実行される。
【0066】
1008での変形の結果が、1010に示される。1010において、1002からのジャケット1004は、(1000からの)がっしりしたアバターと前の衣服レイヤとに合うように変形済みである。たとえば、ジャケット1004のサイズは、アバターと前の/下層の衣服レイヤとを合わせたサイズに一致するように拡大されており、ジャケット1004の形状は、アバターと前の/下層の衣服とを合わせた形状に適合され(たとえば、膨らまされ)ている。さらに、ジャケット1004は、内側/外側ケージ内の特徴点の間の距離を維持した結果として、その様々な輪郭/特徴(たとえば、フード、袖口など)の視覚的外観を保った。見て取れるように、1000に示された衣服の一部が、ジャケットの下に見えている(たとえば、首から始まり胴体へと降りていく直線上に見える円形のアイテム)。
【0067】
図11は、一部の実装による、重ねられた衣服を持つ3Dアバターをサポートすることができる3D環境プラットフォームを含む例示的なシステムアーキテクチャ1100の図である。
図11の例において、3D環境プラットフォームは、純粋に説明の目的でゲームプラットフォーム1102の文脈で説明され、様々なその他の実装は、オンライン会議プラットフォーム、仮想現実(VR)もしくは拡張現実(AR)プラットフォーム、または3Dコンテンツを提供することができるその他の種類のプラットフォームなどのその他の種類の3D環境プラットフォームを提供し得る。システムアーキテクチャ1100のゲームプラットフォーム1102およびその他の要素に関して本明細書において提供される説明は、そのようなその他の種類の3D環境プラットフォームで使用可能であるように適合され得る。
【0068】
オンラインゲームプラットフォーム(「ユーザ生成コンテンツプラットフォーム」または「ユーザ生成コンテンツシステム」とも呼ばれる)は、ユーザが電子ゲームをプレイしている間などにユーザが互いにインタラクションするための様々な方法を提供する。たとえば、オンラインゲームプラットフォームのユーザは、共通の目標に向かって一緒に働く、様々な仮想的なゲームアイテムを共有する、互いに電子メッセージを送信するなどする場合がある。オンラインゲームプラットフォームのユーザは、ユーザが電子ゲームのレンダリングされた3D世界の中をナビゲートすることができる上述の重ねられた衣服を有する3Dアバターのようなキャラクタを使用してゲームをプレイする場合がある。
【0069】
また、オンラインゲームプラットフォームは、プラットフォームのユーザがアバターを作成し、アニメーションさせることを可能にし、ユーザが3D世界に配置するためのその他のグラフィックオブジェクトを作成することを可能にする場合がある。たとえば、オンラインゲームプラットフォームのユーザは、アバターを作成し、設計し、カスタマイズすることと、様々な衣服を作成し、設計し、アバターにフィッティングすることとを可能にされる場合がある。
【0070】
図11において、例示的なシステムアーキテクチャ1100(本明細書においては「システム」とも呼ばれる)は、オンラインゲームプラットフォーム1102、第1のクライアントデバイス1110A、および少なくとも1つの第2のクライアントデバイスX 1110X(本明細書においては概して「クライアントデバイス1110」と呼ばれる)を含む。オンラインゲームプラットフォーム1102は、とりわけ、ゲームエンジン1104および1つまたは複数の電子ゲーム1106を含み得る。システムアーキテクチャ1100は、1つの可能な実装の説明のために提供される。その他実装において、システムアーキテクチャ1100は、
図11に示されたのと同じまたは異なる方法で構成された同じ、より少ない、より多い、または異なる要素を含んでよい。
【0071】
オンラインゲームプラットフォーム1102とクライアントデバイス1110との間、および/またはシステムアーキテクチャ1100のその他の要素の間の通信のために、通信ネットワーク1122が使用されてよい。ネットワーク1122は、パブリックネットワーク(たとえば、インターネット)、プライベートネットワーク(たとえば、ローカルエリアネットワーク(LAN)もしくは広域ネットワーク(WAN))、有線ネットワーク(たとえば、イーサネットネットワーク)、ワイヤレスネットワーク(たとえば、802.11ネットワーク、Wi-Fiネットワーク、もしくはワイヤレスLAN(WLAN))、セルラネットワーク(たとえば、ロングタームエボリューション(LTE)ネットワーク)、ルータ、ハブ、スイッチ、サーバコンピュータ、またはこれらの組合せを含んでよい。
【0072】
クライアントデバイス1110Aは、ゲームアプリケーション1112および1つまたは複数のユーザインターフェース1114(たとえば、オーディオ/ビデオ入力/出力デバイス)を含み得る。同様に、クライアントデバイスX 1100Xは、ゲームアプリケーション1120およびユーザインターフェース1118(たとえば、オーディオ/ビデオ入力/出力デバイス)を含み得る。オーディオ/ビデオ入力/出力デバイスは、マイクロフォン、スピーカ、ヘッドフォン、ディスプレイデバイス、カメラなどのうちの1つまたは複数を含み得る。
【0073】
システムアーキテクチャ1100は、1つまたは複数のストレージデバイス1124をさらに含んでよい。ストレージデバイス1124は、たとえば、オンラインゲームプラットフォーム1102内にあるか、または(
図11に示されるように)ネットワーク1122を介してオンラインゲームプラットフォーム1102に通信可能なように結合されたストレージデバイスであってよい。ストレージデバイス1124は、たとえば、ゲームエンジン1104またはゲームアプリケーション1112/1120によってゲーム1106内でレンダリングされるグラフィックオブジェクトと、(ケージを生成するためおよび上述のような変形のために使用可能な特徴点の座標情報、サイズ寸法などの)グラフィックオブジェクトの構成/プロパティ情報とを記憶してよい。
【0074】
一部の実施形態において、ストレージデバイス1124は、ゲーム1106内でレンダリングされるグラフィックオブジェクトを提供する1つまたは複数の別個のコンテンツ配信ネットワークの一部であることが可能である。たとえば、アバター作成者は、第1のストレージデバイスにおいてアクセス可能なライブラリにアバターのテンプレートを公開することができ、衣服作成者は、(アバター作成者とは別に独立して)第2のストレージデバイスにおいてアクセス可能なライブラリに衣服のテンプレートを公開することができる。そして、ゲームアプリケーション1112は、ゲームをプレイしている最中に提示するために実行時に計算/コンパイル/変形するために、第1の/第2のストレージデバイスに記憶されたグラフィックオブジェクト(アバターおよび衣服アイテム)をプルしてよい(またはゲームアプリケーション1112にプッシュさせてよい)。
【0075】
一部の実装において、ストレージデバイス1124は、非一時的コンピュータ可読メモリ(たとえば、ランダムアクセスメモリ)、キャッシュ、ドライブ(たとえば、ハードドライブ)、フラッシュドライブ、データベースシステム、またはデータおよびその他の内容を記憶することができる別の種類の構成要素もしくはデバイスであってよい。また、ストレージデバイス1124は、複数のコンピューティングデバイス(たとえば、複数のサーバコンピュータ)に広がる場合もある複数のストレージ構成要素(たとえば、複数のドライブまたは複数のデータベース)を含んでよい。
【0076】
一部の実装において、オンラインゲームプラットフォーム1102は、1つまたは複数のコンピューティングデバイスを有するサーバ(たとえば、クラウドコンピューティングシステム、ラックマウントサーバ、サーバコンピュータ、物理サーバのクラスタなど)を含み得る。一部の実装において、サーバは、オンラインゲームプラットフォーム1102に含まれるか、独立したシステムであるか、または別のシステムもしくはプラットフォームの一部であってよい。
【0077】
一部の実装において、オンラインゲームプラットフォーム1102は、オンラインゲームプラットフォーム1102上で動作を実行し、ユーザにオンラインゲームプラットフォーム1102へのアクセスを提供するために使用されてよい(ラックマウントサーバ、ルータコンピュータ、サーバコンピュータ、パーソナルコンピュータ、メインフレームコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータなどの)1つまたは複数のコンピューティングデバイス、データストア(たとえば、ハードディスク、メモリ、データベース)、ネットワーク、ソフトウェア構成要素、および/またはハードウェア構成要素を含んでよい。また、オンラインゲームプラットフォーム1102は、ユーザにオンラインゲームプラットフォーム1102によって提供されるコンテンツへのアクセスを提供するために使用されてよいウェブサイト(たとえば、ウェブページ)またはアプリケーションバックエンドソフトウェアを含んでよい。たとえば、ユーザは、クライアントデバイス1110上のゲームアプリケーション1112を使用してオンラインゲームプラットフォーム1102にアクセスしてよい。
【0078】
一部の実装において、オンラインゲームプラットフォーム1102は、ユーザ間のつながりを提供するある種のソーシャルネットワーク、またはユーザ(たとえば、エンドユーザもしくはコンシューマ)がオンラインゲームプラットフォーム1102上でその他のユーザとコミュニケーションすることを可能にするある種のユーザ生成コンテンツシステムであってよく、コミュニケーションは、音声チャット(たとえば、同期および/もしくは非同期音声コミュニケーション)、ビデオチャット(たとえば、同期および/もしくは非同期ビデオコミュニケーション)、またはテキストチャット(たとえば、同期および/もしくは非同期のテキストに基づくコミュニケーション)を含んでよい。本開示の一部の実装において、「ユーザ」は、1人の個人として表される場合がある。しかし、本開示のその他の実装は、「ユーザ」(たとえば、作成ユーザ)が1組のユーザによって制御されるエンティティ(entity)または自動化されたソースであることを包含する。たとえば、ユーザ生成コンテンツシステム内のコミュニティまたはグループとして連合した1組の個人ユーザが、「ユーザ」とみなされる場合がある。
【0079】
一部の実装において、オンラインゲームプラットフォーム1102は、仮想ゲームプラットフォームである場合がある。たとえば、ゲームプラットフォームは、ネットワーク1122を介してクライアントデバイス1110を使用してゲームにアクセスするかまたはゲームとインタラクションしてよいユーザのコミュニティにシングルプレイヤーゲームまたはマルチプレイヤーゲームを提供する場合がある。一部の実装において、ゲーム(本明細書においては「ビデオゲーム」、「オンラインゲーム」、または「仮想ゲーム」とも呼ばれる)は、たとえば、2次元(2D)ゲーム、3次元(3D)ゲーム(たとえば、3Dのユーザによって生成されたゲーム)、仮想現実(VR)ゲーム、または拡張現実(AR)ゲームであってよい。一部の実装において、ユーザは、その他のユーザとともにゲームプレイに参加する場合がある。一部の実装において、ゲームは、ゲームのその他のユーザと一緒にリアルタイムでプレイされる場合がある。
【0080】
一部の実装において、ゲームプレイは、ゲーム(たとえば、ゲーム1106)内のクライアントデバイス(たとえば、クライアントデバイス1110)を使用する1人もしくは複数のプレイヤーのインタラクション、またはクライアントデバイス1110のディスプレイもしくはその他のユーザインターフェース(たとえば、ユーザインターフェース1114/1118)上のインタラクションの提示を指す場合がある。
【0081】
一部の実装において、ゲーム1106は、エンティティにゲームコンテンツ(たとえば、デジタルメディアアイテム)を提示するように構成されたソフトウェア、ファームウェア、またはハードウェアを使用して実行またはロードされることが可能である電子ファイルを含み得る。一部の実装においては、ゲームアプリケーション1112が、ゲームエンジン1104に関連して実行される場合があり、ゲーム1106が、ゲームエンジン1104に関連してレンダリングされる場合がある。一部の実装において、ゲーム1106は、共通の1組の規則または共通の目標を有する場合があり、ゲーム1106の環境は、共通の1組の規則または共通の目標を共有する。一部の実装において、異なるゲームは、互いに異なる規則または目標を有する場合がある。
【0082】
一部の実装において、ゲームは、(本明細書においては「ゲーム環境」または「仮想環境」とも呼ばれる)1つまたは複数の環境を有する場合があり、複数の環境が、リンクされる場合がある。環境の例は、3D環境である可能性がある。ゲーム1106の1つまたは複数の環境は、本明細書においては集合的に「世界」または「ゲーム世界」または「仮想世界」または「ユニバース」と呼ばれる場合がある。たとえば、ユーザは、別のユーザによって作成された別の仮想環境にリンクされる仮想環境を構築してよい。(本明細書において説明されるように重ねられた衣服を有する3Dアバターなどの)仮想ゲームのキャラクタは、隣接する仮想環境に入るために仮想的な境界を越える場合がある。
【0083】
3D環境または3D世界は、ゲームコンテンツを表す幾何学データの3次元表現を提供する(または少なくとも、幾何学データの3D表現が使用されるか否かにかかわらず3Dコンテンツに見えるようにゲームコンテンツを提示する)グラフィックスを使用することが留意されてよい。2D環境または2D世界は、ゲームコンテンツを表す幾何学データの2次元表現を提供するグラフィックスを使用する。
【0084】
一部の実装において、オンラインゲームプラットフォーム1102は、1つまたは複数のゲーム1106をホストすることができ、クライアントデバイス1110のゲームアプリケーション1112を使用してユーザがゲーム1106とインタラクションすることを可能にし得る。オンラインゲームプラットフォーム1102のユーザは、ゲーム1106をプレイするか、ゲーム1106を作成するか、ゲーム1106とインタラクションするか、もしくはゲーム1106を構築する、その他のユーザとコミュニケーションする、および/またはゲーム1106のオブジェクト(たとえば、本明細書においては「アイテム」もしくは「ゲームオブジェクト」もしくは「仮想ゲームアイテム」もしくは「グラフィックオブジェクト」とも呼ばれる)を作成し、構築する場合がある。たとえば、ユーザ生成仮想アイテムを生成する際、ユーザは、とりわけ、キャラクタ、キャラクタのためのアニメーション、キャラクタのための装飾(たとえば、衣服、スキン、アクセサリなど)、インタラクティブゲームのための1つもしくは複数の仮想環境を作成するか、またはゲーム1106内で使用される構造物を構築する場合がある。一部の実装において、ユーザは、プラットフォーム内通貨(たとえば、仮想的な通貨)などのゲームの仮想ゲームオブジェクトを買うか、売るか、またはオンラインゲームプラットフォーム1102のその他のユーザと取引する場合がある。
【0085】
一部の実装において、オンラインゲームプラットフォーム1102は、ゲームアプリケーション(たとえば、ゲームアプリケーション1112)にゲームコンテンツを送信してよい。一部の実装において、ゲームコンテンツ(本明細書においては「コンテンツ」とも呼ばれる)は、オンラインゲームプラットフォーム1102またはゲームアプリケーションに関連する任意のデータまたはソフトウェア命令(たとえば、ゲームオブジェクト、ゲーム、ユーザ情報、ビデオ、画像、コマンド、メディアアイテムなど)を指す場合がある。一部の実装において、ゲームオブジェクト(たとえば、本明細書においては「アイテム」または「オブジェクト」または「仮想ゲームアイテム」とも呼ばれる)は、オンラインゲームプラットフォーム1102のゲーム1106またはクライアントデバイス1110のゲームアプリケーション1112もしくは1120において使用されるか、作成されるか、共有されるか、またはそうでなければ示されるオブジェクトを指す場合がある。たとえば、ゲームオブジェクトは、パーツ、モデル、キャラクタまたは(顔、腕、唇などのような)その構成要素、ツール、武器、衣類、建物、乗り物、通貨、植物相、動物相、上述のものの構成要素(たとえば、建物の窓)などを含んでよい。
【0086】
ゲーム1106をホストするオンラインゲームプラットフォーム1102は、説明を目的として与えられることが留意されてよい。一部の実装において、オンラインゲームプラットフォーム1102は、1人のユーザから1人または複数のその他のユーザへのコミュニケーションメッセージを含み得る1つまたは複数のメディアアイテムをホストする場合がある。メディアアイテムは、デジタルビデオ、デジタルムービー、デジタル写真、デジタル音楽、オーディオコンテンツ、メロディー、ウェブサイトコンテンツ、ソーシャルメディアの最新記事、電子ブック、電子雑誌、デジタル新聞、デジタルオーディオブック、電子ジャーナル、ウェブブログ、リアルシンプルシンジケーション(RSS: real simple syndication)フィード、電子漫画、ソフトウェアアプリケーションなどを含み得るがこれらに限定されない。一部の実装において、メディアアイテムは、エンティティにデジタルメディアアイテムを提示するように構成されたソフトウェア、ファームウェア、またはハードウェアを使用して実行またはロードされることが可能である電子ファイルであってよい。
【0087】
一部の実装において、ゲーム1106は、特定のユーザまたはユーザの特定のグループに関連付けられる場合があり(たとえば、非公開のゲーム)、またはオンラインゲームプラットフォーム1102のユーザに広く利用され得るようにされる場合がある(たとえば、公開されたゲーム)。オンラインゲームプラットフォーム1102が1つまたは複数のゲーム1106を特定のユーザまたはユーザのグループに関連付ける一部の実装において、オンラインゲームプラットフォーム1102は、ユーザアカウント情報(たとえば、ユーザ名およびパスワードなどのユーザアカウント識別子)を使用して特定のユーザをゲーム1106に関連付ける場合がある。
【0088】
一部の実装において、オンラインゲームプラットフォーム1102またはクライアントデバイス1110は、ゲームエンジン1104またはゲームアプリケーション1112/1120を含んでよい。一部の実装において、ゲームエンジン1104は、ゲーム1106の開発または実行のために使用されてよい。たとえば、ゲームエンジン1104は、特徴の中でもとりわけ、2D、3D、VR、もしくはARグラフィックスのためのレンダリングエンジン(「レンダラ」)、物理エンジン、衝突検出エンジン(および衝突応答(collision response))、サウンドエンジン、スクリプティング機能、アニメーションエンジン、人工知能エンジン、ネットワーキング機能、ストリーミング機能、メモリ管理機能、スレッディング機能、シーングラフ機能、または映画製作技術(cinematics)のためのビデオサポートを含んでよい。ゲームエンジン1104の構成要素は、アバターを選択するコマンド、アバターをカスタマイズするコマンド、衣服アイテムを選択するコマンド、衣服アイテムをアバター上のレイヤとして変形するコマンド、および本明細書において説明される様々なその他の動作を含む、ゲームを計算し、レンダリングするのに役立つコマンド(たとえば、レンダリングコマンド、衝突コマンド、アニメーションコマンド、物理コマンドなど)を生成する場合がある。一部の実装において、クライアントデバイス1110のゲームアプリケーション1112/1120は、実行時に重ねられた衣服を変形およびレンダリングすることに関連する本明細書において説明される動作を実行するために、独立して、オンラインゲームプラットフォーム1102のゲームエンジン1104と協力して、またはそれら両方の組合せで働く場合がある。
【0089】
一部の実装においては、オンラインゲームプラットフォーム1102とクライアントデバイス1110との両方が、ゲームエンジンまたはゲームアプリケーション(それぞれ1104、1112、1120)を実行する。ゲームエンジン1104を使用するオンラインゲームプラットフォーム1102は、一部のもしくはすべてのゲームエンジンの機能を実行する(たとえば、上述の衣服レイヤの変形を含め、物理コマンド、アニメーションコマンド、レンダリングコマンドなどを生成する)か、または一部のもしくはすべてのゲームエンジンの機能をクライアントデバイス1110のゲームアプリケーション1112にオフロードする場合がある。一部の実装において、各ゲーム1106は、オンラインゲームプラットフォーム1102において実行されるゲームエンジンの機能とクライアントデバイス1110において実行されるゲームエンジンの機能との間の異なる比率を有してよい。
【0090】
たとえば、オンラインゲームプラットフォーム1102のゲームエンジン1104が、少なくとも2つのゲームオブジェクトの間の衝突が存在する場合に物理コマンドを生成するために使用される場合がある一方、さらなるゲームエンジンの機能(たとえば、重ねられた衣服を変形し、表示することを含む、レンダリングコマンドの生成)は、クライアントデバイス1110にオフロードされる場合がある。一部の実装において、オンラインゲームプラットフォーム1102において実行されるゲームエンジンの機能とクライアントデバイス1110において実行されるゲームエンジンの機能との比率は、ゲームプレイの条件に基づいて(たとえば、動的に)変更されてよい。たとえば、特定のゲーム1106のゲームプレイに参加するユーザの数が閾値の数を超える場合、オンラインゲームプラットフォーム1102は、クライアントデバイス1110によって前に実行された1つまたは複数のゲームエンジンの機能を実行する場合がある。
【0091】
たとえば、ユーザは、クライアントデバイス1110上でゲーム1106をプレイしている可能性があり、オンラインゲームプラットフォーム1102に制御命令(たとえば、右、左、上、下、ユーザ選択、またはキャラクタ位置および速度情報など)を送信する可能性がある。クライアントデバイス1110から制御命令を受信した後、オンラインゲームプラットフォーム1102は、制御命令に基づいてクライアントデバイス1110にゲームプレイ命令(たとえば、グループゲームプレイに参加するキャラクタの位置および速度情報、またはレンダリングコマンド、衝突コマンドなどのコマンド)を送信してよい。たとえば、オンラインゲームプラットフォーム1102は、クライアントデバイス1110のためのゲームプレイ命令を生成するために制御命令に関して(たとえば、ゲームエンジン1104を使用して)1つまたは複数の論理的な動作を実行してよい。その他の場合、オンラインゲームプラットフォーム1102は、1つのクライアントデバイス1110からゲーム1106に参加するその他のクライアントデバイスに制御命令のうちの1つまたは複数を渡してよい。クライアントデバイス1110は、ゲームプレイ命令を使用し、上述の重ねられた衣服を持つアバターを含め、クライアントデバイス1110のディスプレイ上に提示するためにゲームプレイをレンダリングしてよい。
【0092】
一部の実装において、制御命令は、ユーザのキャラクタのゲーム内アクションを示す命令を指す場合がある。たとえば、制御命令は、右、左、上、下、ユーザ選択、ジャイロスコープの位置および向きデータ、力センサデータなどの、ゲーム内アクションを制御するためのユーザ入力を含んでよい。制御命令は、キャラクタ位置および速度情報を含んでよい。一部の実装において、制御命令は、オンラインゲームプラットフォーム1102に直接送信される。その他の実装において、制御命令は、クライアントデバイス1110から別のクライアントデバイスに送信される場合があり、別のクライアントデバイスが、ローカルのゲームエンジンアプリケーション1120を使用してゲームプレイ命令を生成する。制御命令は、オーディオデバイス(たとえば、スピーカ、ヘッドフォンなど)で別のユーザからの音声コミュニケーションメッセージまたはその他の音、たとえば、本明細書において説明されるようにオーディオ空間化(audio spatialization)技術を使用して生成された音声コミュニケーションまたはその他の音を再生するための命令を含んでよい。
【0093】
一部の実装において、ゲームプレイ命令は、クライアントデバイス1110がマルチプレイヤーゲームなどのゲームのゲームプレイをレンダリングすることを可能にする命令を指す場合がある。ゲームプレイ命令は、ユーザ入力(たとえば、制御命令)、キャラクタ位置および速度情報、またはコマンド(たとえば、物理コマンド、アニメーションコマンド、レンダリングコマンド、衝突コマンドなど)のうちの1つまたは複数を含んでよい。
【0094】
一部の実装において、クライアントデバイス1110は、パーソナルコンピュータ(PC)、モバイルデバイス(たとえば、ラップトップ、モバイル電話、スマートフォン、タブレットコンピュータ、またはネットブックコンピュータ)、ネットワークに接続されたテレビ、ゲームコンソールなどのコンピューティングデバイスをそれぞれ含んでよい。一部の実装において、クライアントデバイス1110は、「ユーザデバイス」とも呼ばれる場合がある。一部の実装において、1つまたは複数のクライアントデバイス1110は、いつでもオンラインゲームプラットフォーム1102に接続する可能性がある。クライアントデバイス1110の数は、限定ではなく例示として与えられることが留意されてよい。一部の実装においては、任意の数のクライアントデバイス1110が使用される場合がある。
【0095】
一部の実装において、各クライアントデバイス1110は、ゲームアプリケーション1112または1120のインスタンスをそれぞれ含んでよい。1つの実装において、ゲームアプリケーション1112または1120は、オンラインゲームプラットフォーム1102によってホストされる仮想ゲームの仮想的なキャラクタを制御するか、またはゲーム1106、画像、ビデオアイテム、ウェブページ、ドキュメントなどのコンテンツを見るもしくはアップロードするなど、ユーザがオンラインゲームプラットフォーム1102を使用し、オンラインゲームプラットフォーム1102とインタラクションすることを可能にしてよい。一例において、ゲームアプリケーションは、ウェブサーバによって提供されるコンテンツ(たとえば、仮想環境内の仮想的なキャラクタなど)にアクセスするか、そのようなコンテンツを取り出すか、提示するか、またはナビゲートすることができるウェブアプリケーション(たとえば、ウェブブラウザと連携して動作するアプリケーション)であってよい。別の例において、ゲームアプリケーションは、クライアントデバイス1110のローカルにインストールされ、実行され、ユーザがオンラインゲームプラットフォーム1102とインタラクションすることを可能にするネイティブアプリケーション(たとえば、モバイルアプリケーション、アプリ、またはゲームプログラム)であってよい。ゲームアプリケーションは、ユーザに対してコンテンツ(たとえば、ウェブページ、メディアビュワー)をレンダリングするか、表示するか、または提示する場合がある。実装において、ゲームアプリケーションは、ウェブページに埋め込まれる埋め込みメディアプレイヤー(たとえば、Flash(登録商標)プレイヤー)も含む場合がある。
【0096】
本開示の態様によれば、ゲームアプリケーション1112/1120は、ユーザがコンテンツを構築し、作成し、編集し、オンラインゲームプラットフォーム1102にアップロードし、オンラインゲームプラットフォーム1102とインタラクションする(たとえば、オンラインゲームプラットフォーム1102によってホストされるゲーム1106をプレイする)ためのオンラインゲームプラットフォームアプリケーションであってよい。したがって、ゲームアプリケーション1112/1120は、オンラインゲームプラットフォーム1102によってクライアントデバイス1110に提供されてよい。別の例において、ゲームアプリケーションは、サーバからダウンロードされるアプリケーションである場合がある。
【0097】
一部の実装において、ユーザは、ゲームアプリケーションを介してオンラインゲームプラットフォーム1102にログインする場合がある。ユーザは、ユーザアカウント情報(たとえば、ユーザ名およびパスワード)を提供することによってユーザアカウントにアクセスする場合があり、ユーザアカウントは、オンラインゲームプラットフォーム1102の1つまたは複数のゲーム1106に参加するために利用可能な1つまたは複数のキャラクタに関連付けられる。
【0098】
概して、オンラインゲームプラットフォーム1102によって実行されるものとして1つの実装において説明される機能は、その他の実装において、適宜、クライアントデバイス1110またはサーバによって実行されることも可能である。加えて、特定の構成要素に帰せられる機能が、一緒に動作する異なるまたは複数の構成要素によって実行されることが可能である。また、オンラインゲームプラットフォーム1102は、適切なアプリケーションプログラミングインターフェース(API)を通じてその他のシステムまたはデバイスに提供されるサービスとしてアクセスされることが可能であり、したがって、ウェブサイトにおける使用に限定されない。
【0099】
図12は、一部の実装による、3Dアバター上の重ねられた衣服を提供するためのコンピュータによって実装される方法1200を示す流れ図である。簡単にするために、方法1200の様々な動作は、クライアントデバイス1110のゲームアプリケーション1112が動作を実行する文脈で説明される。しかし、
図11に関連して上で既に説明されたように、動作の一部は、代替的または追加的に、ゲームプラットフォーム1102においてゲームエンジン1104によってすべてまたは一部が実行されてよい。例示的な方法1200は、ブロック1202から1212などの1つまたは複数のブロックによって示される1つまたは複数の動作を含む可能性がある。本明細書において説明される方法1200および/または任意のその他のプロセスの様々なブロックは、所望の実施に基づいて、より少ないブロックに組み合わされる、追加のブロックに分割される、さらなるブロックによって補足される、および/または削除される場合がある。
【0100】
図12の方法1200は、
図1~
図11に示された要素に関連して本明細書において説明され得る。一実施形態において、方法1200の動作は、パイプライン化された逐次的な方法で実行されてよい。その他の実施形態において、一部の動作は、順不同、並列などで実行される場合がある。
【0101】
ブロック1202(「3Dアバターのボディケージのボディの特徴点を特定する」)において、ユーザは、ゲームアプリケーション1112を起動し、アバターボディのライブラリにアクセスして、(オンラインゲームなどの)3D環境内で使用するアバターを選択した。選択されたアバターは、一般的な形状/サイズを持つ汎用的なテンプレートである場合があり、またはスキンを設定した特定の種類(人型、エイリアン、動物など)のより詳細なアバターのテンプレートである場合がある。ライブラリから選択されたアバターは、その上に構成されたボディケージ(たとえば、
図1~
図3参照)を既に有している場合があり、および/またはゲームアプリケーション1112が、実行時にボディケージの少なくとも一部を生成する場合がある。ゲームアプリケーションは、アバターの形状を定義するボディケージの特徴点を特定する。ブロック1202は、後にブロック1204が続く場合がある。
【0102】
ブロック1204(「第1の衣服の内側ケージの内側特徴点をボディケージのボディの特徴点にマッピングする」)において、ユーザは、衣服アイテムのライブラリにアクセスし、第1の衣服を選択した。ブロック1202におけるアバターボディと同様に、ライブラリの第1の衣服は、その上に構成されたケージを有する場合があり、および/またはゲームアプリケーション1112が、実行時にケージの少なくとも一部を生成する場合がある。第1の衣服のそのようなケージは、内側ケージおよび外側ケージ(たとえば、
図7および
図8参照)を含む。ブロック1204において、ゲームアプリケーション1112は、アバターボディに適合するように第1の衣服を変形するように、RBF技術を利用して第1の衣服の内側ケージの内側特徴点をボディケージのボディの特徴点にマッピングしてよい。ブロック1204は、後にブロック1206が続く場合がある。
【0103】
ブロック1206(「第1の衣服をアバターボディにフィッティングする」)において、ゲームアプリケーション1112は、第1の衣服をアバターボディにフィッティングする。このフィッティングは、ブロック1206において、変形された第1の衣服でアバターボディを少なくとも部分的に包むことによってゲームアプリケーション1112により実行される場合がある。たとえば、(第1の衣服の内側ケージの)内側特徴点の少なくとも一部の座標位置は、ボディケージのボディの特徴点の座標位置の値を取る。ブロック1206は、後にブロック1208が続く場合がある。
【0104】
ブロック1208(「第2の衣服の内側ケージの内側特徴点を第1の衣服の外側ケージの外側特徴点にマッピングする」)において、ユーザは、ライブラリから第2の衣服を選択する。ブロック1204の第1の衣服と同様に、ブロック1208の第2の衣服は、内側ケージおよび外側ケージを有する。ゲームアプリケーション1112は、上にフィッティングされた第1の衣服を有するアバターボディに適合するように第2の衣服を変形するように、(第2の衣服の内側ケージの)内側特徴点を、アバターボディに既にフィッティングされている変形された第1の衣服の外側ケージの外側特徴点にマッピングする。ブロック1208は、後にブロック1210が続く場合がある。
【0105】
ブロック1210(「第2の衣服をアバターボディにフィッティングする」)において、ゲームアプリケーション1112は、第2の衣服を、(上に既にフィッティングされた第1の衣服を有する)アバターボディにフィッティングする。このフィッティングは、ブロック1210において、変形された第2の衣服で(上に既にフィッティングされた第1の衣服を有する)アバターボディを少なくとも部分的に包むことによってゲームアプリケーション1112により実行される場合がある。たとえば、(第2の衣服の内側ケージの)内側特徴点の少なくとも一部の座標位置は、変形された第1の衣服の外側ケージの外側特徴点の座標位置の値を取る。ブロック1210は、後にブロック1212が続く場合がある。
【0106】
ブロック1212(「反復する」)において、既存のレイヤの上に追加の衣服を重ね、変形するように、上述の動作に類似した動作が実行されてよい。たとえば、ブロック1202~1210に関連して上で説明された最初の反復においては、第1の衣服がボディケージの上にフィッティングされる。ブロック1212において実行されてよい2回目の反復においては、追加の衣服が、ボディケージの上に纏っている第1の衣服の上にフィッティングされてよい。反復は、任意の数のアイテムに関して、追加の衣服アイテムをフィッティングするために実行され得る。一部の実装において(たとえば、連続したフィッティングにおける衣服アイテムが、その段階で、外側ケージの異なる重なり合わない部分に関連するとき)、フィッティングは、並行して実行されてよい(たとえば、帽子のフィッティングが靴のフィッティングと同時に実行されてよく、シャツのフィッティングがズボンのフィッティングと同時に実行されてよく、靴下のフィッティングが手袋のフィッティングと同時に実行されてよいなど)。
【0107】
図13は、本明細書において説明された1つまたは複数の特徴を実装するために使用されてよい例示的なコンピューティングデバイス1300のブロック図である。
図11のクライアントデバイス1110ならびに/またはゲームプラットフォーム1102は、
図13のコンピューティングデバイス1300の形態で提供されてよい。一例において、コンピューティングデバイス1300は、本明細書において説明された方法を実行するために使用されてよい。コンピューティングデバイス1300は、任意の好適なコンピュータシステム、サーバ、またはその他の電子もしくはハードウェアデバイスであることが可能である。たとえば、コンピューティングデバイス1300は、メインフレームコンピュータ、デスクトップコンピュータ、ワークステーション、ポータブルコンピュータ、または電子デバイス(ポータブルデバイス、モバイルデバイス、セル電話、スマートフォン、タブレットコンピュータ、テレビ、TVセットトップボックス、携帯情報端末(PDA)、メディアプレイヤー、ゲームデバイス、ウェアラブルデバイスなど)であることが可能である。一部の実装において、コンピューティングデバイス1300は、プロセッサ1302、メモリ1304、入力/出力(I/O)インターフェース1306、およびオーディオ/ビデオ入力/出力デバイス1314を含む。
【0108】
プロセッサ1302は、プログラムコードを実行し、コンピューティングデバイス1300の基本動作を制御するための1つまたは複数のプロセッサおよび/または処理回路であることが可能である。「プロセッサ」は、データ、信号、またはその他の情報を処理する任意の好適なハードウェアおよび/またはソフトウェアシステム、メカニズム、または構成要素を含む。プロセッサは、汎用中央演算処理装置(CPU)、複数の処理ユニット、機能を実現するための専用回路を有するシステム、またはその他のシステムを含んでよい。処理は、特定の地理的場所に限定されるまたは時間的な制限を有するとは限らない。たとえば、プロセッサは、「リアルタイム」、「オフライン」、「バッチモード」などでそのプロセッサの機能を実行する場合がある。処理の一部は、異なる(または同じ)処理システムによって異なる時間に異なる場所で実行される場合がある。コンピュータは、メモリと通信する任意のプロセッサであってよい。
【0109】
メモリ1304は、プロセッサ1302によるアクセスのためにコンピューティングデバイス1300内に設けられてよく、プロセッサによる実行のために命令を記憶するのに好適であり、プロセッサ1302と分けて置かれたおよび/またはプロセッサ1302と統合された任意の好適なプロセッサ可読ストレージ媒体、たとえば、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電気的消去可能読み出し専用メモリ(EEPROM)、フラッシュメモリなどであってよい。メモリ1304は、オペレーティングシステム1308、1つまたは複数のアプリケーション310、およびその関連するデータ1312を含む、プロセッサ1302によってコンピューティングデバイス1300上で実行され得るソフトウェアを記憶することができる。アプリケーション1310は、ゲームアプリケーション1112/1120またはゲームエンジン1104を具現化するために使用され得るツールの例である。一部の実装において、アプリケーション1310は、プロセッサ1302による実行に応じて、アバターボディの上で重ねられた衣服を変形/フィッティングすることに関連して本明細書において説明された動作をプロセッサ1302が実行するかまたはそれらの動作の実行を制御することを可能にする命令を含み得る。
【0110】
メモリ1304内のソフトウェアのいずれも、代替的に、任意のその他の好適な記憶場所またはコンピュータ可読媒体に記憶され得る。さらに、メモリ1304(および/またはその他の接続されたストレージデバイス)は、本明細書において説明された特徴において使用される命令およびデータを記憶することができる。メモリ1304および任意のその他の種類のストレージ(磁気ディスク、光ディスク、磁気テープ、またはその他の有形の媒体)は、「ストレージ」または「ストレージデバイス」とみなされ得る。
【0111】
I/Oインターフェース1306は、コンピューティングデバイス1300とその他のシステムおよびデバイスとのインターフェースを取ることを可能にするための機能を提供することができる。たとえば、ネットワーク通信デバイス、ストレージデバイス、および入力/出力デバイスは、I/Oインターフェース1306を介してコンピューティングデバイス1300と通信することができる。一部の実装において、I/Oインターフェース1306は、入力デバイス(キーボード、ポインティングデバイス、タッチスクリーン、マイクロフォン、カメラ、スキャナなど)および/または出力デバイス(ディスプレイデバイス、スピーカデバイス、プリンタ、モニタなど)を含むインターフェースデバイスに接続することができ、それらのインターフェースデバイスは、集合的に、少なくとも1つのオーディオ/ビデオ入力/出力デバイス1314として示される。
【0112】
オーディオ/ビデオ入力/出力デバイス1314は、オーディオメッセージを入力として受け取るために使用され得るオーディオ入力デバイス(たとえば、マイクロフォンなど)、オーディオ出力デバイス(たとえば、スピーカ、ヘッドフォンなど)、ならびに/または上述の重ねられた衣服を持つ例示的なレンダリングされた3Dアバターなどのグラフィカルなおよび視覚的な出力を提供するために使用され得るディスプレイデバイスを含むことが可能である。
【0113】
図示を容易にするために、
図13は、プロセッサ1302、メモリ1304、I/Oインターフェース1306、アプリケーションの1310などの各々に関して1つのブロックを示す。これらのブロックは、1つまたは複数のプロセッサもしくは処理回路、オペレーティングシステム、メモリ、I/Oインターフェース、アプリケーション、および/またはソフトウェアモジュールを表す場合がある。その他の実装において、コンピューティングデバイス1300は、示された構成要素のすべてを有するわけではない可能性があり、および/または本明細書に示された要素の代わりにもしくは本明細書に示された要素に加えてその他の種類の要素を含むその他の要素を有する可能性がある。
【0114】
ユーザデバイスが、本明細書において説明された特徴を実装するおよび/または本明細書において説明された特徴とともに使用されることも可能である。例示的なユーザデバイスは、コンピューティングデバイス1300と同様のいくつかの構成要素、たとえば、プロセッサ1302、メモリ1304、およびI/Oインターフェース1306を含むコンピュータデバイスであることが可能である。クライアントデバイスに好適なオペレーティングシステム、ソフトウェア、およびアプリケーションが、メモリに備えられ、プロセッサによって使用され得る。クライアントデバイスのためのI/Oインターフェースは、ネットワーク通信デバイスならびに入力および出力デバイス、たとえば、音をキャプチャするためのマイクロフォン、画像もしくはビデオをキャプチャするためのカメラ、音を出力するためのオーディオスピーカデバイス、画像もしくはビデオを出力するためのディスプレイデバイス、またはその他の出力デバイスに接続され得る。たとえば、オーディオ/ビデオ入力/出力デバイス1314内のディスプレイデバイスは、本明細書において説明されるように画像の前および後処理を表示するためにコンピューティングデバイス1300に接続される(または含まれる)ことが可能であり、そのようなディスプレイデバイスは、任意の好適なディスプレイデバイス、たとえば、LCD、LED、またはプラズマディスプレイスクリーン、CRT、テレビ、モニタ、タッチスクリーン、3-Dディスプレイスクリーン、プロジェクタ、またはその他の視覚表示デバイスを含み得る。一部の実装は、オーディオ出力デバイス、たとえば、テキストをしゃべる音声出力または合成を提供し得る。
【0115】
本明細書において説明された1つまたは複数の方法(たとえば、方法1200)は、コンピュータ上で実行され得るコンピュータプログラム命令またはコードによって実装されることが可能である。たとえば、コードは、1つまたは複数のデジタルプロセッサ(たとえば、マイクロプロセッサまたはその他の処理回路)によって実施されることが可能であり、非一時的コンピュータ可読媒体(たとえば、ストレージ媒体)、たとえば、半導体またはソリッドステートメモリ、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、硬質磁気ディスク、光ディスク、ソリッドステートメモリドライブなどを含む磁気式、光学式、電磁式、または半導体ストレージ媒体を含むコンピュータプログラム製品に記憶されることが可能である。プログラム命令は、たとえば、サーバ(たとえば、分散型システムおよび/またはクラウドコンピューティングシステム)から配信されるサービスとしてのソフトウェア(SaaS)の形態で電子信号に含まれ、電子信号として提供されることも可能である。代替的に、1つまたは複数の方法は、ハードウェア(論理ゲートなど)に、またはハードウェアとソフトウェアとの組合せに実装され得る。例示的なハードウェアは、プログラミング可能なプロセッサ(たとえば、フィールドプログラマブルゲートアレイ(FPGA)、複合プログラマブルロジックデバイス)、汎用プロセッサ、グラフィックスプロセッサ、特定用途向け集積回路(ASIC)などであることが可能である。1つまたは複数の方法は、システム上で実行されるアプリケーションの一部もしくは構成要素として、またはその他のアプリケーションおよびオペレーティングシステムと連携して実行されるアプリケーションもしくはソフトウェアとして実行され得る。
【0116】
本明細書において説明された1つまたは複数の方法は、任意の種類のコンピューティングデバイス上で実行され得るスタンドアロンのプログラム、ウェブブラウザ上で実行されるプログラム、モバイルコンピューティングデバイス(たとえば、セル電話、スマートフォン、タブレットコンピュータ、ウェアラブルデバイス(腕時計、腕章、装身具、帽子、ゴーグル、眼鏡など)、ラップトップコンピュータなど)上で実行されるモバイルアプリケーション(「アプリ」)内で実行され得る。一例においては、クライアント/サーバアーキテクチャが、使用されることが可能であり、たとえば、(クライアントデバイスとしての)モバイルコンピューティングデバイスが、サーバデバイスにユーザ入力データを送信し、出力するための(たとえば、表示するための)最終出力データをサーバから受信する。別の例においては、すべての計算が、モバイルコンピューティングデバイス上のモバイルアプリ(および/またはその他のアプリ)内で実行され得る。別の例においては、計算が、モバイルコンピューティングデバイスと1つまたは複数のサーバデバイスとの間に分けられ得る。
【0117】
説明がその特定の実装に関連して説明されたが、これらの特定の実装は例示的であるに過ぎず、限定的でない。例において示された概念は、その他の例および実装に適用される場合がある。
【0118】
本開示において説明された機能ブロック、動作、特徴、方法、デバイス、およびシステムは、当業者に知られているようにシステム、デバイス、および機能ブロックの異なる組合せに統合されるかまたは分けられる場合があることに留意されたい。任意の好適なプログラミング言語およびプログラミング技術が、特定の実装のルーチンを実装するために使用されてよい。異なるプログラミング技術、たとえば、手続き型またはオブジェクト指向プログラミング技術が、使用される場合がある。ルーチンは、単一の処理デバイスまたは複数のプロセッサ上で実行される場合がある。ステップ、動作、または計算が特定の順序で示される場合があるが、順序は異なる特定の実装において変更されてよい。一部の実装では、本明細書において逐次的であるものとして示された複数のステップまたは動作が、同時に実行される場合がある。
【符号の説明】
【0119】
100 ボディケージ
102 特徴点
104 線分/辺
200 ボディケージ
202 特徴点
300 ボディケージ
400 衣服レイヤ
402 ポリゴンメッシュ
404 フード
406 袖口
408 ストレートカットの胴体
500 複合外側ケージ
600 マネキン
614 マネキン
628 マネキン
642 マネキン
656 マネキン
668 マネキン
682 マネキン
700 図
702 内側ケージ
704 外側ケージ
706 突出部
708 副次的図
800 図
802 内側ケージ
804 外側ケージ
806 内側ケージ
808 外側ケージ
810 内側ケージ
812 外側ケージ
814 内側ケージ
816 外側ケージ
900 図
902 アバターボディ
904 靴下
906 手のアクセサリ
908 化粧
910 衣服(インナーウェア)
912 靴
914 衣服(アウターウェア)
916 アクセサリ
918 髪
920 アクセサリ
1004 ジャケット
1006 汎用的なマネキン
1100 システムアーキテクチャ
1102 オンラインゲームプラットフォーム
1104 ゲームエンジン
1106 ゲーム
1110A 第1のクライアントデバイス
1110X 第2のクライアントデバイスX
1112/1120 ゲームアプリケーション
1124 ストレージデバイス
1200 方法
1310 アプリケーション
1314 オーディオ/ビデオ入力/出力デバイス
【国際調査報告】