(57)【要約】【解決手段】システム、方法、および非一時的なコンピュータ可読媒体は、仮想変形可能幾何モデルに関連付けられた仮想モデル情報を受信することができる。仮想モデル情報は、複数の変換および第１の複数の頂点を含む複雑なリグと、第２の複数の変換および第１の複数の頂点に対応する第２の複数の頂点を含む単純化されたリグと、を含む。単純化されたリグおよび複雑なリグは、アニメーションに基づいて変形され、仮想変形可能幾何モデルに適用される。オフセットデータのセットが計算される。オフセットデータのセットは、第１の複数の頂点内の各頂点について、頂点と第２の複数の頂点内の対応する頂点との間のオフセットを含む。オフセットデータのセットの圧縮版は、仮想変形可能幾何モデルのリアルタイムのアニメーションのためのリアルタイム処理エンジンにエクスポートされる。【選択図】  図１Ａ
2020529692.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ実装方法であって、
前記コンピュータ実装方法は、コンピュータシステムによって、仮想変形可能幾何モデルに関連付けられた仮想モデル情報を受信することを含み、
前記仮想モデル情報は、デフォルトモデルによって定義される第１の複数の変換および第１の複数の頂点を含む複雑なリグと、
第２の複数の変換および第２の複数の頂点を含み、前記第２の複数の頂点が、前記デフォルトモデルによって定義される前記第１の複数の頂点に対応する、単純化されたリグと、を含み、
前記コンピュータ実装方法は、前記コンピュータシステムによって、前記仮想変形可能幾何モデルに適用されるアニメーションに基づいて、前記単純化されたリグおよび前記複雑なリグを変形することと、
前記コンピュータシステムによって、前記第１の複数の頂点内の各頂点について、前記頂点と前記第２の複数の頂点内の対応する頂点との間のオフセットを含む、オフセットデータのセットを計算することと、
前記コンピュータシステムによって、前記オフセットデータのセットの圧縮版を、前記仮想変形可能幾何モデルのリアルタイムのアニメーションのためのリアルタイム処理エンジンにエクスポートすることと、を含む、コンピュータ実装方法。
【請求項２】
前記オフセットデータのセットの前記圧縮版を生成することをさらに含む、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記オフセットデータのセットの前記圧縮版を生成することは、前記第１の複数の頂点内の各頂点について、前記アニメーションを通して前記頂点のオフセットのＸ、Ｙ、およびＺの最小値および最大値を追跡することにより、前記第１の複数の頂点内の各頂点についてタイトなバウンディングボックスを計算することを含む、請求項２に記載のコンピュータ実装方法。
【請求項４】
前記オフセットデータのセットの前記圧縮版を生成することは、前記タイトなバウンディングボックスに基づいて、１６ビット以下の整数を使用して前記オフセットデータのセットのうちのオフセットを量子化して、オフセットデータの低ビット量子化を生成することをさらに含む、請求項３に記載のコンピュータ実装方法。
【請求項５】
前記オフセットデータのセットの前記圧縮版を生成することは、Ｘ、Ｙ、およびＺのオフセット値を色成分値にマッピングすることにより、前記オフセットデータの低ビット量子化をビデオ圧縮技術と組み合わせることをさらに含む、請求項４に記載のコンピュータ実装方法。
【請求項６】
前記オフセットデータのセットの前記圧縮版を生成することは、前記Ｘ、Ｙ、およびＺのオフセット値をオーディオストリームのチャネルにマッピングすることにより、前記オフセットデータの低ビット量子化を不可逆または可逆のオーディオ圧縮技術と組み合わせることをさらに含む、請求項４に記載のコンピュータ実装方法。
【請求項７】
前記オフセットデータのセットの前記圧縮版を生成することは、前記Ｘ、Ｙ、およびＺのオフセット値を写真内のピクセルの色成分値にマッピングし、連続するアニメーションのフレームについて隣接するピクセルを使用することにより、前記オフセットデータの低ビット量子化を不可逆または可逆の写真圧縮技術と組み合わせることをさらに含む、請求項４に記載のコンピュータ実装方法。
【請求項８】
前記オフセットデータのセットの前記圧縮版を生成することは、前記第１の複数の頂点内の各頂点をビデオストリームのピクセルに相関させることをさらに含む、請求項２に記載のコンピュータ実装方法。
【請求項９】
前記第１の複数の頂点内の各頂点をビデオストリームのピクセルに相関させることは、テクスチャルックアップを使用して、前記第１の複数の頂点内の各頂点をテクスチャ位置にマッピングすることにより、またはインデックススキームを使用することにより、前記第１の複数の頂点内の各頂点をビデオストリームのピクセルに相関させることを含む、請求項８に記載のコンピュータ実装方法。
【請求項１０】
前記オフセットデータのセットの前記圧縮版を生成することは、前記オフセットデータのセットをクラスタリングして複数のクラスタを生成することを含み、さらに、前記オフセットデータのセットをクラスタリングすることは、Ｋ平均法を使用して前記オフセットデータのセットをクラスタリングすることを含む、請求項２に記載のコンピュータ実装方法。
【請求項１１】
前記オフセットデータのセットの前記圧縮版を生成することは、
前記オフセットデータのセットをクラスタリングして複数のクラスタを生成することと、
前記複数のクラスタのうちの各クラスタに主成分分析（ＰＣＡ）を適用することと、を含む、請求項２に記載のコンピュータ実装方法。
【請求項１２】
前記オフセットデータのセットの前記圧縮版を生成することは、
近似パラメータ化分析関数を使用して、前記オフセットデータのセットのうちのオフセットの経時的な変化を表すことと、
前記近似パラメータ化分析関数のパラメータのサブセットのみを保持することと、を含む、請求項２に記載のコンピュータ実装方法。
【請求項１３】
システムであって、
前記システムは、少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサによって実行された場合に、前記システムに方法を実行させる命令を格納するメモリと、を備え、
前記方法は、仮想変形可能幾何モデルに関連付けられた仮想モデル情報を受信することを含み、
前記仮想モデル情報は、デフォルトモデルによって定義される第１の複数の変換および第１の複数の頂点を含む複雑なリグと、
第２の複数の変換および第２の複数の頂点を含み、前記第２の複数の頂点が、前記デフォルトモデルによって定義される前記第１の複数の頂点に対応する、単純化されたリグと、を含み、
前記方法は、前記仮想変形可能幾何モデルに適用されるアニメーションに基づいて、前記単純化されたリグおよび前記複雑なリグを変形することと、
前記第１の複数の頂点内の各頂点について、前記頂点と前記第２の複数の頂点内の対応する頂点との間のオフセットを含む、オフセットデータのセットを計算することと、
前記オフセットデータのセットの圧縮版を、前記仮想変形可能幾何モデルのリアルタイムのアニメーションのためのリアルタイム処理エンジンにエクスポートすることと、を含む、システム。
【請求項１４】
前記命令は、前記少なくとも１つのプロセッサによって実行された場合に、前記オフセットデータのセットの前記圧縮版を生成することを前記システムにさらに実行させる、請求項１３に記載のシステム。
【請求項１５】
前記オフセットデータのセットの前記圧縮版を生成することは、前記第１の複数の頂点内の各頂点について、前記アニメーションを通して前記頂点のオフセットのＸ、Ｙ、およびＺの最小値および最大値を追跡することにより、前記第１の複数の頂点内の各頂点についてタイトなバウンディングボックスを計算することを含む、請求項１４に記載のシステム。
【請求項１６】
前記オフセットデータのセットの前記圧縮版を生成することは、前記タイトなバウンディングボックスに基づいて、１６ビット以下の整数を使用して前記オフセットデータのセットのうちのオフセットを量子化して、オフセットデータの低ビット量子化を生成することをさらに含む、請求項１５に記載のシステム。
【請求項１７】
コンピュータシステムの少なくとも１つのプロセッサによって実行された場合に、前記コンピュータシステムに方法を実行させる命令を含む、非一時的なコンピュータ可読記憶媒体であって、
前記方法は、仮想変形可能幾何モデルに関連付けられた仮想モデル情報を受信することを含み、
前記仮想モデル情報は、デフォルトモデルによって定義される第１の複数の変換および第１の複数の頂点を含む複雑なリグと、
第２の複数の変換および第２の複数の頂点を含み、前記第２の複数の頂点が、前記デフォルトモデルによって定義される前記第１の複数の頂点に対応する、単純化されたリグと、を含み、
前記方法は、前記仮想変形可能幾何モデルに適用されるアニメーションに基づいて、前記単純化されたリグおよび前記複雑なリグを変形することと、
前記第１の複数の頂点内の各頂点について、前記頂点と前記第２の複数の頂点内の対応する頂点との間のオフセットを含むオフセットデータのセットを計算することと、
前記オフセットデータのセットの圧縮版を、前記仮想変形可能幾何モデルのリアルタイムのアニメーションのためのリアルタイム処理エンジンにエクスポートすることと、を含む非一時的なコンピュータ可読記憶媒体。
【請求項１８】
前記命令は、前記コンピュータシステムの前記少なくとも１つのプロセッサによって実行された場合に、前記オフセットデータのセットの前記圧縮版を生成することを前記コンピュータシステムにさらに実行させる、請求項１７に記載の非一時的なコンピュータ可読記憶媒体。
【請求項１９】
前記オフセットデータのセットの前記圧縮版を生成することは、前記第１の複数の頂点内の各頂点について、前記アニメーションを通して前記頂点のオフセットのＸ、Ｙ、およびＺの最小値および最大値を追跡することにより、前記第１の複数の頂点内の各頂点についてタイトなバウンディングボックスを計算することを含む、請求項１８に記載の非一時的なコンピュータ可読記憶媒体。
【請求項２０】
前記オフセットデータのセットの前記圧縮版を生成することは、前記タイトなバウンディングボックスに基づいて、１６ビット以下の整数を使用して前記オフセットデータのセットのうちのオフセットを量子化して、オフセットデータの低ビット量子化を生成することをさらに含む、請求項１９に記載の非一時的なコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願への相互参照）
本出願は、２０１７年７月２８日に出願され、「ＶＲおよびＡＲの複雑なキャラクタアニメーションおよび相互作用のためのシステムおよび方法」と題された米国仮特許出願第６２／５３８，５９０号への優先権を主張し、その全てが参考として本明細書に組み込まれる。
【０００２】
本技術は、デジタルのキャラクタアニメーションの分野に関する。より詳細には、本技術は、リアルタイムの複雑なキャラクタアニメーションおよび相互作用のための技術に関する。
【背景技術】
【０００３】
仮想現実（Virtual Reality：ＶＲ）および拡張現実（Augmented Reality：ＡＲ）は、エンターテイメントおよびストーリーテリングのための新しい媒体であり、これにより、コンテンツ作成者は、他の媒体では不可能な方法で視聴者を没入させることができる。ＶＲおよびＡＲは、文学または映画で経験するのと同じように、観客が共感できるキャラクタで魅力的なストーリーを伝えるための強力な没入型プラットフォームである。ＶＲおよびＡＲ体験で使用されるようなデジタルキャラクタは、多くの場合、中立化された３Ｄモデル（「デフォルトモデル」と呼ばれることが多い）として始まる。キャラクタ「リグ」はデジタルパペットであり、キャラクタモデルが、迫真の方法で移動したり、動き回ったり、感情を表したりして、生きている幻想を与えることができるように、キャラクタモデルをアニメーション化することができるようにする。キャラクタリグは、静的なデフォルトのキャラクタモデルを入力として受け取り、アニメーションの入力制御（肘がどのくらいの角度で曲がるか、またはキャラクタの口がどのくらい笑っているかなど）に基づいて、これらのモデルに一連の手続きの修正を適用し、時間の経過とともに、変形して動く表情豊かなキャラクタを生成する。キャラクタリグは、通常、下にある階層、あるいは、骨格のジョイントまたはボーンの集合を動かす一連のアニメーション制御を含む。このプロセスは、多くの場合、キャラクタのモーションシステムと呼ばれる。次に、様々な手法を使用して、変形層が、キャラクタモデルを、これらのアニメーション化された骨格に取り付けるまたは結び付ける。
【発明の概要】
【０００４】
本開示の様々な実施形態は、仮想変形可能幾何モデルに関連付けられた仮想モデル情報を受信するように構成されたシステム、方法、および非一時的なコンピュータ可読媒体を含むことができる。仮想モデル情報は、デフォルトモデルによって定義される複数の変換および第１の複数の頂点を含む複雑なリグと、第２の複数の変換および第２の複数の頂点を含む単純化されたリグと、を含む。第２の複数の頂点は、デフォルトモデルによって定義される第１の複数の頂点に対応する。単純化されたリグおよび複雑なリグは、仮想変形可能幾何モデルに適用されるアニメーションに基づいて変形される。オフセットデータのセットが計算される。オフセットデータのセットは、第１の複数の頂点内の各頂点について、頂点と第２の複数の頂点内の対応する頂点との間のオフセットを含む。
【０００５】
一実施形態では、アニメーションは、複数のフレームを含み、オフセットデータのセットは、第１の複数の頂点内の各頂点について、および複数のフレーム内の各フレームについて、頂点と第２の複数の頂点内の対応する頂点との間のオフセットを含む。
【０００６】
一実施形態では、アニメーションを、没入型環境においてリアルタイムで仮想変形可能幾何モデルに適用させる指示が受信される。
【０００７】
一実施形態では、単純化されたリグは、アニメーションに基づいてリアルタイムで変形され、複雑なモデルの変形は、単純化されたリグを変形することおよびオフセットデータのセットに基づいて生成される。
【０００８】
一実施形態では、第２の複数の変換は、第１の複数の変換のサブセットを表す。
【０００９】
一実施形態では、第１の複数の変換は、複数の変形変換および複数の制御変換を含み、第２の複数の変換は、複数の変形変換のサブセットを含む。
【００１０】
一実施形態では、第１の複数の変換の少なくとも一部は階層的に配置される。
【００１１】
一実施形態では、第２の複数の変換の少なくとも一部は階層的に配置される。
【００１２】
一実施形態では、単純化されたリグは、第２の複数の変換と第２の複数の頂点との間の関係を定義するスキニングの重みのセットをさらに含む。
【００１３】
一実施形態では、第２の複数の頂点内の各頂点は、第２の複数の変換のうちの４つ以下の変換に関連付けられる。
【００１４】
本開示の様々な実施形態は、仮想変形可能幾何モデルに関連付けられた仮想モデル情報を受信するように構成されたシステム、方法、および非一時的なコンピュータ可読媒体を含むことができる。仮想モデル情報は、デフォルトモデルによって定義される複数の変換および第１の複数の頂点を含む複雑なリグと、第２の複数の変換および第２の複数の頂点を含む単純化されたリグと、を含む。第２の複数の頂点は、デフォルトモデルにより定義される第１の複数の頂点に対応する。単純化されたリグおよび複雑なリグは、仮想変形可能幾何モデルに適用されるアニメーションに基づいて変形される。オフセットデータのセットが計算される。オフセットデータのセットは、第１の複数の頂点内の各頂点について、頂点と第２の複数の頂点内の対応する頂点との間のオフセットを含む。オフセットデータのセットの圧縮版は、仮想変形可能幾何モデルのリアルタイムのアニメーションのためのリアルタイム処理エンジンにエクスポートされる。
【００１５】
一実施形態では、オフセットデータのセットの圧縮版が生成される。
【００１６】
一実施形態では、オフセットデータのセットの圧縮版を生成することは、第１の複数の頂点内の各頂点について、アニメーションを通して頂点のオフセットのＸ、Ｙ、およびＺの最小値および最大値を追跡することにより、第１の複数の頂点内の各頂点についてタイトなバウンディングボックスを計算することを含む。
【００１７】
一実施形態では、オフセットデータのセットの圧縮版を生成することは、タイトなバウンディングボックスに基づいて、１６ビット以下の整数を使用してオフセットデータのセットのうちのオフセットを量子化して、オフセットデータの低ビット量子化を生成することをさらに含む。
【００１８】
一実施形態では、オフセットデータのセットの圧縮版を生成することは、Ｘ、Ｙ、およびＺのオフセット値を色成分値にマッピングすることにより、オフセットデータの低ビット量子化をビデオ圧縮技術と組み合わせることをさらに含む。
【００１９】
一実施形態では、オフセットデータのセットの圧縮版を生成することは、Ｘ、Ｙ、およびＺのオフセット値をオーディオストリームのチャネルにマッピングすることにより、オフセットデータの低ビット量子化を不可逆または可逆のオーディオ圧縮技術と組み合わせることをさらに含む。
【００２０】
一実施形態では、オフセットデータのセットの圧縮版を生成することは、Ｘ、Ｙ、およびＺのオフセット値を写真内のピクセルの色成分値にマッピングし、連続するアニメーションフレームについて隣接するピクセルを使用することにより、オフセットデータの低ビット量子化を不可逆または可逆の写真圧縮技術と組み合わせることをさらに含む。
【００２１】
一実施形態では、オフセットデータのセットの圧縮版を生成することは、第１の複数の頂点内の各頂点をビデオストリームのピクセルに相関させることをさらに含む。
【００２２】
一実施形態では、第１の複数の頂点内の各頂点をビデオストリームのピクセルに相関させることは、テクスチャルックアップを使用して、第１の複数の頂点内の各頂点をテクスチャ位置にマッピングすることにより、またはインデックススキームを使用することにより、第１の複数の頂点内の各頂点をビデオストリームのピクセルに相関させることを含む。
【００２３】
一実施形態では、オフセットデータのセットの圧縮版を生成することは、オフセットデータのセットをクラスタリングして複数のクラスタを生成することを含み、さらに、オフセットデータのセットをクラスタリングすることは、Ｋ平均法を使用してオフセットデータのセットをクラスタリングすることを含む。
【００２４】
一実施形態では、オフセットデータのセットの圧縮版を生成することは、オフセットデータのセットをクラスタリングして複数のクラスタを生成することと、複数のクラスタのうちの各クラスタに主成分分析（Principal Component Analysis：ＰＣＡ）を適用することと、を含む。
【００２５】
一実施形態では、オフセットデータのセットの圧縮版を生成することは、近似パラメータ化分析関数を使用して、オフセットデータのセットのうちのオフセットの経時的な変化を表すことと、近似パラメータ化分析関数のパラメータのサブセットのみを保持することと、を含む。
【００２６】
本開示の様々な実施形態は、リアルタイムの没入環境でアニメーション化される仮想変形可能幾何モデルを識別するように構成されたシステム、方法、および非一時的なコンピュータ可読媒体を含むことができる。仮想変形可能幾何モデルは、複数の頂点と、複数のエッジと、複数の面と、を含む仮想モデルのメッシュを含む。仮想モデルのメッシュは、１つ以上の反復で繰り返し細分化されて、細分化されたメッシュを生成する。１つ以上の反復のうちの各反復により、頂点の数、エッジの数、および／または面の数が増加される。細分化されたメッシュは、リアルタイムの没入環境内において、仮想変形可能幾何モデルのリアルタイムのアニメーション中に表示される。
【００２７】
一実施形態では、リアルタイムの没入環境は、仮想現実環境または拡張現実環境である。
【００２８】
一実施形態では、細分化されたメッシュは第２の複数の頂点を含み、第２の複数の頂点内の各頂点は、複数の頂点内の頂点の線形加重結合である。
【００２９】
一実施形態では、頂点の各線形加重結合は１つ以上の重みを含み、方法は、リアルタイムの没入環境内における仮想変形可能幾何モデルのリアルタイムのアニメーションよりも前に、各線形加重結合の１つ以上の重みを事前に計算することをさらに含む。
【００３０】
一実施形態では、各線形加重結合は、重みの所定の最大数に制限される。
【００３１】
一実施形態では、重みの所定の最大数よりも大きい複数の重みを有する第２の複数の頂点内の各頂点について、重みのサブセットが、線形加重結合に含めるための複数の重みから、重みの絶対的な大きさに基づいて選択される。
【００３２】
一実施形態では、近似法線ベクトルおよび近似接線ベクトルが、第２の複数の頂点内の各頂点について計算される。
【００３３】
一実施形態では、第２の複数の頂点の第１のサブセットの頂点内の各頂点は、ちょうど４つの隣接する頂点を有し、第１のサブセットの頂点内の各頂点について近似法線ベクトルを計算することは、第１のサブセットの頂点内の各頂点について、頂点に隣接する４つの頂点に基づいて近似法線ベクトルを計算することを含み、第１のサブセットの頂点内の各頂点について近似接線ベクトルを計算することは、第１のサブセットの頂点内の各頂点について、頂点に隣接する４つの頂点に基づいて近似接線ベクトルを計算することを含む。
【００３４】
一実施形態では、第２の複数の頂点の第１のサブセットの頂点内の各頂点は、４つを超える隣接する頂点を有し、第１のサブセットの頂点内の各頂点について近似法線ベクトルを計算することは、第１のサブセットの頂点内の各頂点について、頂点に隣接する４つの頂点を選択し、選択された頂点に隣接する４つの頂点に基づいて近似法線ベクトルを計算することを含み、第１のサブセットの頂点内の各頂点について近似接線ベクトルを計算することは、第１のサブセットの頂点内の各頂点について、選択された頂点に隣接する４つの頂点に基づいて近似接線ベクトルを計算することを含む。
【００３５】
一実施形態では、第２の複数の頂点の第１のサブセットの頂点内の各頂点は、４つ未満の隣接する頂点を有し、第１のサブセットの頂点内の各頂点について近似法線ベクトルを計算することは、第１のサブセットの頂点内の各頂点について、頂点に隣接する全ての頂点および任意の欠落している頂点に置換された頂点自体を含む、頂点に関連付けられた４つの頂点のセットを決定することと、４つの頂点のセットに基づいて頂点の近似法線ベクトルを計算することと、を含み、第１のサブセットの頂点内の各頂点について近似接線ベクトルを計算することは、第１のサブセットの頂点内の各頂点について、４つの頂点のセットに基づいて近似接線ベクトルを計算することを含む。
【００３６】
本開示の様々な実施形態は、リアルタイムの没入環境内でユーザに提示されている仮想キャラクタを識別するように構成されたシステム、方法、および非一時的なコンピュータ可読媒体を含むことができる。仮想キャラクタに適用される第１のアニメーションが決定される。第１のアニメーションと同時に仮想キャラクタに適用される非言語コミュニケーションのアニメーションが決定される。仮想キャラクタは、第１のアニメーションおよび非言語コミュニケーションのアニメーションに基づいてリアルタイムでアニメーション化される。
【００３７】
一実施形態では、非言語コミュニケーションのアニメーションは、ユーザに関連付けられたユーザ入力に基づいて決定される。
【００３８】
一実施形態では、ユーザ入力は、没入環境で追跡されるユーザの特徴位置のセットに関連付けられた位置および方向の情報を含む。
【００３９】
一実施形態では、非言語コミュニケーションのアニメーションは、仮想キャラクタが、位置および方向の情報に基づいて、ユーザの特徴位置のセットのうちの１つ以上の特徴位置を見るようにさせるルッキングアニメーションを含む。
【００４０】
一実施形態では、非言語コミュニケーションのアニメーションは、仮想キャラクタが、リアルタイムの没入環境で２つ以上のオブジェクトを交互に見るようにさせるルッキングアニメーションを含み、２つ以上のオブジェクトは、ユーザの頭、ユーザの手、ユーザの身体または顔の特徴位置、リアルタイムの没入環境での別のユーザ、リアルタイムの没入環境での第２の仮想キャラクタ、またはリアルタイムの没入環境でシミュレートされたオブジェクト、のうちの少なくとも２つを含む。
【００４１】
一実施形態では、位置および向きの情報は、ユーザの頭に関連付けられた頭の位置および向きの情報を含み、非言語コミュニケーションのアニメーションは、頭の位置および向きの情報に基づいてユーザによる頭の動きを仮想キャラクタに反映させるミラーリングのアニメーションを含む。
【００４２】
一実施形態では、位置および方向の情報は、１つ以上のユーザの手に関連付けられた手の位置および方向の情報をさらに含む。
【００４３】
一実施形態では、第１のアニメーションおよび非言語コミュニケーションのアニメーションに基づいて仮想キャラクタをリアルタイムでアニメーション化することは、非言語コミュニケーションのアニメーションを第１のアニメーションとレイヤー化することを含む。
【００４４】
一実施形態では、非言語コミュニケーションのアニメーションは、没入環境に関連付けられた仮想環境状態の情報に基づいて決定される。
【００４５】
一実施形態では、非言語コミュニケーションのアニメーションは、仮想環境状態の情報に基づいて仮想キャラクタのアクティビティレベルを増加させることを含む。
【００４６】
開示された技術の他の多くの特徴、用途、実施形態、および／または変形は、添付の図面および以下の詳細な説明から明らかであることを理解すべきである。本明細書で説明される構造、システム、非一時的コンピュータ可読媒体、および方法の追加および／または代替の実装は、開示される技術の原理から逸脱することなく採用することができる。
【図面の簡単な説明】
【００４７】
【図１Ａ】図１Ａは、本開示の一実施形態による、キャラクタアニメーションモジュールを含む一例のシステムを示す。
【図１Ｂ】図１Ｂは、本開示の一実施形態による、アニメーションのクリップデータの一例のブロック図表示を示す。
【図２】図２は、本開示の一実施形態による、一例のデータエクスポータモジュールを示す。
【図３】図３は、本開示の一実施形態による、一例の非言語キャラクタキューモジュールを示す。
【図４】図４は、本開示の一実施形態による、一例の複雑なモデル変形モジュールを示す。
【図５】図５は、本開示の一実施形態による、一例のモデルテッセレーションモジュールを示す。
【図６】図６は、本開示の一実施形態による、モデルテッセレーションに関連付けられた一例のシナリオを示す。
【図７】図７は、本開示の一実施形態による、法線ベクトルの近似に関連付けられた一例のシナリオを示す。
【図８】図８は、本開示の一実施形態による、法線ベクトルの近似に関連付けられた一例のシナリオを示す。
【図９】図９は、本開示の一実施形態による、法線ベクトルの近似に関連付けられた一例のシナリオを示す。
【図１０】図１０は、本開示の一実施形態による、細分割曲面の生成のための一例のフローブロック図を示す。
【図１１】図１１は、本開示の一実施形態による、複雑なおよび単純なキャラクタモデルの頂点間の頂点オフセットデータを計算する一例の方法を示す。
【図１２】図１２は、本開示の一実施形態による、複雑なおよび単純なキャラクタモデルの頂点間の圧縮された頂点オフセットデータを計算する一例の方法を示す。
【図１３】図１３は、本開示の一実施形態による、ベースメッシュから細分化されたメッシュを生成する一例の方法を示す。
【図１４】図１４は、本開示の一実施形態による、仮想キャラクタのアニメーションを非言語コミュニケーションのアニメーションで増強する一例の方法を示す。
【図１５】図１５は、本開示の一実施形態による、様々なシナリオで利用できる一例のコンピュータシステムまたはコンピュータ装置を示す。
【００４８】
図面は、例示のみを目的として、開示された技術の様々な実施形態を示しており、図面は、同様の参照番号を使用して同様の要素を識別する。当業者は、以下の説明から、本明細書に記載の開示技術の原理から逸脱することなく、図示される構造および方法の代替の実施形態を採用できることを容易に認識するであろう。
【発明を実施するための形態】
【００４９】
リアルタイムの複雑なモデルアニメーションおよび相互作用
仮想現実（Virtual Reality：ＶＲ）および拡張現実（Augmented Reality：ＡＲ）は、エンターテイメントおよびストーリーテリングのための新しい媒体であり、これにより、コンテンツ作成者は、他の媒体では不可能な方法で視聴者を没入させることができる。ＶＲおよびＡＲは、文学または映画で経験するのと同じように、観客が共感できるキャラクタで魅力的なストーリーを伝えるための強力な没入型プラットフォームである。しかし、映画体験とは異なり、ＶＲおよびＡＲは、視聴者がストーリーの仮想世界内に完全に没入されるため、デジタルキャラクタがリアルタイムで視聴者と相互に作用し、反応する機会を提供する。
【００５０】
デジタルキャラクタは、多くの場合、中立化された３Ｄモデル（「デフォルトモデル」と呼ばれることが多い）として始まる。キャラクタ「リグ」はデジタルパペットであり、キャラクタモデルが、迫真の方法で移動したり、動き回ったり、感情を表したりして、生きている幻想を与えることができるように、キャラクタモデルをアニメーション化することができるようにする。キャラクタリグは、静的なデフォルトのキャラクタモデルを入力として受け取り、アニメーションの入力制御（肘がどのくらいの角度で曲がるか、またはキャラクタの口がどのくらい笑っているかなど）に基づいて、これらのモデルに一連の手続きの修正を適用し、時間の経過とともに、変形して動く表情豊かなキャラクタを生成する。キャラクタリグは、通常、下にある階層、あるいは、骨格のジョイントまたはボーンの集合を動かす一連のアニメーション制御を含む。このプロセスは、多くの場合、キャラクタのモーションシステムと呼ばれる。次に、様々な手法を使用して、変形層が、キャラクタモデルを、これらのアニメーション化された骨格に取り付けるまたは結び付ける。
【００５１】
キャラクタアニメーションへの従来のアプローチでは、一般に、リアルタイムアプリケーション（ビデオゲーム、ＶＲ、および／またはＡＲなど）と非リアルタイムアプリケーション（長編映画など）との品質レベルが異なる。ほとんどのリアルタイムアプリケーションに固有の計算の制約により、リアルタイムアプリケーションは、一般に、非リアルタイムアプリケーションよりも低品質のアニメーションを使用するという結果になることを理解することができる。ビデオゲームは、通常、３０または６０フレーム／秒（frames per second：ＦＰＳ）で単一の視点をレンダリングする。ＶＲプロジェクトでは、通常、９０ＦＰＳで２つの視点（各目につき１つ）をレンダリングするため、さらに大量の計算が要求される。そのため、ＶＲおよびＡＲへの従来のアプローチは、ほとんどのビデオゲームと同様に、様々なスキニングおよびモーフターゲットを使用する。これらは、低品質のキャラクタアニメーションをもたらすシンプルなキャラクタ変形技術であるが、リアルタイムで実行するために最適化される。リアルタイムアプリケーション向けのキャラクタリグでは、「スキニング」は、デフォルトモデルのスキンをリグのボーンに結び付けるために一般的に使用される手法である。各ボーンは、ボーンの動きによって影響を受けるスキン上の頂点のセットに関連付けられる。各スキンの頂点は、複数のボーンの影響を受ける可能性がある。リアルタイムアプリケーションのためのキャラクタリグは、通常、各スキンの頂点を関連付けることができるボーンの数およびリグ内のボーン全体の数に制限を設けているので、キャラクタをリアルタイムで変形することができる。リアルタイムのキャラクタリグでは、顔のパフォーマンスは、ブレンドシェイプまたはモーフターゲットのセットとしてキャプチャされることがよくある。フェイスリグは、アニメータによってオンまたはオフにブレンドされる多数のモデル化された顔の形状（笑顔のポーズなど）で構成することができる。
【００５２】
逆に、長編映画のためのキャラクタリグでは、リアルタイムのアニメーションに関連付けられた制約は適用されないため、より広範囲な技術を適用して、アニメーション化されたキャラクタモデルを作成することができる。より高性能なデフォーマおよび複数の変形層を使用して、筋肉組織、脂肪、および皮膚の複雑さをキャプチャしたり、あるいはキャラクタの形状またはシルエットの特定の視覚的品質を維持したりできる。顔のパフォーマンスはブレンドシェイプに限定されず、顔の全ての複雑さをキャプチャするために多くの変形層を含むことができる。多くの場合、複雑なキャラクタリグは、物理ベースのシミュレーションを実行して、長い髪、衣服、筋肉、および骨格の上を滑らかに動く皮膚をより正確に描写する。複雑な長編映画のリグは、リアルタイムで実行する必要はなく、分散型のコンピュータの集団を使用して、特にシミュレートされる要素を有する最終的なキャラクタモデルをオフラインで計算するのが一般的である。リアルタイム処理に固有の計算資源の制限により、ゲームおよびＶＲなどのリアルタイムアプリケーションにおけるキャラクタアニメーションへの従来のアプローチは、長編映画などの非リアルタイムアプリケーションにおけるキャラクタアニメーションの品質、複雑さ、豊かさのないアニメーションをもたらす。
【００５３】
コンピュータ技術に根ざした改善されたアプローチは、特にコンピュータ技術の分野で生じる従来のアプローチに関連付けられた前述およびその他の欠点を克服する。一般に、本技術は、ＶＲおよびＡＲを含む、シミュレートされた没入環境向けに設計された革新的なシステムを提供するが、ホログラフィックテクノロジーおよびブレインコンピュータインターフェースなどの他の没入型シナリオにも拡張される。没入環境は、適宜、簡潔にするために総称してＶＲと呼ばれる場合がある。本技術は、エンターテイメント、医療、トレーニング、および教育などの多くの場面に適用できる。ここで説明する多くの機能はＶＲおよびＡＲエンターテインメントを参照して説明するが、本技術は、エンターテインメント以外の幅広いアプリケーションで、任意のシミュレートされた環境または没入型環境に適用することができ、本明細書で説明する機能は特定の例のアプリケーションを表すことが理解されるであろう。様々な実施形態において、本技術は、キャラクタアニメーションを含む高品質のアニメーションを作成するＶＲおよびＡＲのためのエンターテイメント（適宜、簡潔にするためにＶＲと総称される場合がある）向けに設計された革新的なシステムに、長編映画、またはその他の非リアルタイムのアニメーションアプリケーションから期待するが、ＶＲコンピュータ装置でリアルタイムに動作することができる全ての視覚的な忠実度および演技の繊細さを提供する。本技術は、表現力が高く、ユーザ入力への応答性が高いＶＲキャラクタのパフォーマンスを可能にする。本技術は、ユーザがキャラクタであり、他のキャラクタと対話して物語に参加できるストーリーの中にユーザを配置する、真に没入型のＶＲ体験を作成するためのバックボーンとなることができる。本技術は、映画の感情移入と、ゲームの作用とでもあるが、実生活のモチベーションとも組み合わせるＶＲ体験を可能にする。
【００５４】
従来のアプローチと比較した本技術の利点は以下のものを含む。
・動きがシミュレートされた仮想環境のキャラクタおよび他のアスペクトの両方を含む、仮想変形可能幾何モデルの高品質の仮想表現。
・視覚的な忠実度およびアニメーション（動き）の品質の両方で、ＶＲ向けにリアルタイムでレンダリングされた、ユーザ入力に応答できる高品質のキャラクタパフォーマンス。
・ユーザ入力に動的に応答できる、リアルタイムのＶＲ体験で動作する長編映画品質の顔のパフォーマンス。
・リアルタイムのＶＲ体験で動作する、肌、布、および髪のキャラクタシミュレーション。
・リアルタイムのＶＲ体験で動作する、滑らかな細分割曲面モデル。
・キャラクタの視覚的な忠実度は、リアルタイムのゲームエンジンで動作可能な、高速であるが低品質の技術（スキニングなど）によって制限されないこと。
・キャラクタアニメーションのパイプラインをリアルタイムエンジンのパイプラインから分離すること。
・ハイエンドのコンピュータに接続されたＶＲヘッドセットで動作する能力、およびモバイル駆動のＶＲヘッドセットデバイス、ＡＲデバイス、およびその他の没入型テクノロジーなどのパワフルでないデバイスで縮小して動作する能力。
【００５５】
本技術により、アーティストは、長編映画から期待されるが、リアルタイムエンジンでリアルタイムに動作する全ての繊細さを有し、その結果がリアルタイムエンジンによって手続き的に変更される高品質のキャラクタアニメーションを作成することができる。本技術は、アニメーション作成ツールで任意の複雑なキャラクタの設定を可能にすることにより、リアルタイムでアニメーション化されるキャラクタのパフォーマンスに対する制限を取り除く。開示されるリアルタイムエンジンのパイプラインは、ゲームロジックおよびユーザ入力に基づいて、サイクルアニメーションを一緒にブレンドすることにより、完全なキャラクタの相互作用を可能にし、ハードエッジの多角形モデルではなく、滑らかな細分割曲面としてレンダリングされる、変形された複雑なキャラクタモデルを生成する。開示された技術に関連する詳細を以下に示す。
【００５６】
図１Ａは、本開示の一実施形態による、キャラクタアニメーションモジュール１０２を含む一例のシステム１００を示す。キャラクタアニメーションモジュール１０２は、１つ以上のコンピュータ装置上で動作する１つ以上のソフトウェアアプリケーションで実装することができる。この図および本明細書の全ての図に示される構成要素（例えば、モジュール、要素など）は例示にすぎず、他の実装は、追加の、より少ない、統合された、または他の構成要素を含むことができる。一部の構成要素は、関連する詳細を不明瞭にしないために表示されない場合がある。様々な実施形態において、キャラクタアニメーションモジュール１０２に関連して説明される１つ以上の機能は、任意の適切な組み合わせで実装することができる。
【００５７】
図１Ａの例に示されるように、キャラクタアニメーションモジュール１０２は、アニメーション作成モジュール１０４と、リアルタイムエンジンモジュール１１６と、を含むことができる。また、図１Ａの例に示されるように、アニメーション作成モジュール１０４は、複雑なキャラクタリグモジュール１０６と、単純化されたキャラクタリグモジュール１０８と、アニメーションモジュール１１０と、データエクスポータモジュール１１２と、を含むことができる。さらに、図１Ａの例に示すように、リアルタイムエンジンモジュール１１６は、データインポートモジュール１１８と、アニメーションドライバモジュール１２０と、キャラクタ相互作用制約モジュール１２２と、非言語キャラクタキューモジュール１２４と、単純化されたキャラクタリグアニメーションモジュール１２６と、複雑なモデル変形モジュール１２８と、モデルテッセレーションモジュール１３０と、レンダリングパイプラインモジュール１３２と、を含むことができる。一実施形態では、複雑なモデル変形モジュール１２８、モデルテッセレーションモジュール１３０、および／またはレンダリングパイプライン１３２は、グラフィック処理ユニット（ＧＰＵ）１３４を使用して、部分的にまたは全体的に実装することができる。
【００５８】
一部の実施形態では、本明細書で説明される様々なモジュールおよび／またはアプリケーションは、部分的にまたは全体的に、ソフトウェア、ハードウェア、またはそれらの任意の組み合わせとして実装することができる。一般に、モジュールおよび／またはアプリケーションは、本明細書で説明されるように、ソフトウェア、ハードウェア、またはそれらの任意の組み合わせに関連付けることができる。一部の実装形態では、モジュールおよび／またはアプリケーションの１つ以上の機能、タスク、および／または操作は、ソフトウェアルーチン、ソフトウェアプロセス、ハードウェア、および／またはそれらの任意の組み合わせによって実行または遂行することができる。場合によっては、本明細書で説明する様々なモジュールおよび／またはアプリケーションは、部分的にまたは全体的に、ユーザまたはクライアントのコンピュータ装置またはサーバなどの１つ以上のコンピュータ装置またはシステムで動作するソフトウェアとして実装することができる。例えば、本明細書で説明する１つ以上のモジュールおよび／またはアプリケーション、またはその少なくとも一部は、ユーザのコンピュータ装置またはクライアントのコンピュータシステムで動作する、アプリケーション（例えば、アプリ）、プログラム、またはアプレットなどとして、またはその内部で実装することができる。別の例では、１つ以上のモジュールおよび／またはアプリケーション、または少なくともそれらの一部は、ネットワークサーバまたはクラウドサーバなどの１つ以上のサーバを含む、１つ以上のコンピュータ装置またはシステムを使用して実装できる。多くのバリエーションまたは他の可能性があり得ることを理解すべきである。
【００５９】
複雑なキャラクタリグモジュール１０６は、デジタルの仮想キャラクタのための複雑なキャラクタリグを定義するデータを受け取り、保持するように構成することができる。一般に、複雑なキャラクタリグは、複数の頂点を有するデフォルトのキャラクタモデルに関連付けられる、および／または複数の頂点を有するデフォルトのキャラクタモデルを含むことができる。複雑なキャラクタリグは、３Ｄの位置および方向を定義する、変換の基礎となるセット（例えば、階層、コレクション）を駆動する一連のアニメーション制御をさらに含むことができる。前述のように、これらの変換は、通常、キャラクタリグの骨格のジョイントまたはボーンとして表される。複雑な骨格のリグのジョイントは、デフォルトのキャラクタモデルの頂点を変形および移動する。特定の実施形態では、骨格のジョイントは３Ｄ点位置（方向変換情報なし）を含むことができる。特定の実施形態では、骨格のジョイントは、点位置および完全な変換の組み合わせを含むことができる。特定の実施形態では、ジョイントの集合が階層的に構築されてもよい。しかし、他の実施形態では、ジョイントの集合は階層的に配置されない場合がある。さらに、現在開示されている技術は、幾何学的な変形を駆動する任意の点および変換のセットに適用することができる。本明細書で説明する機能の多くは、骨格のジョイントによって駆動されるキャラクタの変形を参照して説明されるが、本技術は、任意の点および変換のセットによって駆動される、任意の変形可能な幾何モデルに適用することができ、本明細書で説明する仮想キャラクタモデルの変形は、１つの特定の適用例を表すことが理解されるであろう。リギングアーティストは、様々な実施形態において、変形の範囲、複数の変形層、および物理ベースのシミュレーションを含む、様々な手法を利用できる複雑なキャラクタリグを作成することができる。特定の実施形態では、変形のジョイントのセットは骨格の制御のジョイントから導出され、これらの変形のジョイントは幾何学的な変形層を駆動する。変形のジョイントは、骨格構成要素からの変形層の分離およびカプセル化を提供する。特定の実施形態では、複雑なキャラクタリグは、複数の変形層を使用して、例えば筋肉組織、脂肪、および皮膚などの様々な素材の複雑さをキャプチャしたり、キャラクタの形状またはシルエットの特定の視覚的品質を維持したりできる。特定の実施形態では、複雑なキャラクタリグは、様々な変形層に対応する変形のジョイントの複数のセットを含む。特定の実施形態では、骨格のジョイントおよび変形のジョイントの組み合わせが幾何学的な変形を駆動する。複雑なキャラクタリグは、顔の全ての複雑さをキャプチャするために多くの変形層を含む可能性のある顔のパフォーマンスを含むこともできる。様々な実施形態では、複雑なキャラクタリグは、物理ベースのシミュレーションを実行して、長い髪、衣服、筋肉、骨格の上を滑らかに動く皮膚などのように、キャラクタの要素をより正確に描写することができる。複雑なキャラクタリグは、精巧な顔のアニメーションの設定を組み込んで、誇張された表情および複雑な細部の両方をキャプチャすることもできる。開示された技術は、本明細書でより詳細に説明するように、フロントエンドのキャラクタの設定、アニメーション、およびパイプライン（すなわち、アニメーション作成モジュール１０４）をリアルタイムの処理エンジンで動作するリアルタイムのキャラクタシステム（すなわち、リアルタイムエンジンモジュール１１６）から分離することにより、キャラクタリグのあらゆる制限を取り除く。そのため、様々な実施形態では、複雑なキャラクタリグは、入力としてのデフォルトのキャラクタモデルおよびジョイントの階層を含むことを除いて、特定のデータ要件を持たない場合がある。
【００６０】
単純化されたキャラクタリグモジュール１０８は、デジタルの仮想キャラクタを表す単純化されたキャラクタリグを定義するデータを受け取る、保持する、および／または生成するように構成することができる。一実施形態では、単純化されたキャラクタリグは、複雑なキャラクタリグモジュール１０６によって生成される、受け取られる、および／または保持される複雑なキャラクタリグに関連付けることができる。一実施形態では、単純化されたキャラクタリグは、骨格のジョイントの変換のセット（複雑なキャラクタリグの骨格のジョイントに類似する）を含むことができる。様々な実施形態では、単純化された骨格のジョイントの変換は、複雑なキャラクタリグとは独立して定義してもよく、階層的であってもなくてもよい。一実施形態では、単純化されたキャラクタリグは、複雑なキャラクタリグの単純化されたバージョンであってもよい。例えば、単純化されたキャラクタリグは、複雑なキャラクタリグの骨格に存在する骨格のジョイントのサブセットを表し、複雑なキャラクタリグの骨格から全てのアニメーション制御データを除外する（例えば、複雑なキャラクタリグの骨格から１つ以上の制御のジョイントを除外する）、単純化された骨格を含むことができる。一実施形態では、単純化されたキャラクタリグは、単純化された骨格のジョイントの階層、デフォルトのキャラクタモデルを定義するデフォルトモデル情報（例えば、これは複雑なキャラクタリグに含まれる同じデフォルトのキャラクタモデルであってもよい）、単純化された骨格とデフォルトのキャラクタモデルの頂点と間の関係を定義するスキニングの重みマップ、および１つ以上のブレンドシェイプを含むことができる。一実施形態では、単純化されたキャラクタリグは、スキニングされた限定的なキャラクタリグであってもよく、デフォルトのキャラクタモデルの各頂点は、単純化された骨格内の最大数以下のボーン、例えば４つ以下のボーンに取り付けることができる。特定の実施形態では、単純化されたキャラクタリグは、リアルタイムエンジンモジュール１１６によってサポートされるスキニング（格子またはスムージングデフォーマなど）に加えて、より複雑なデフォーマで構成することができる。特定の実施形態では、単純化されたキャラクタリグは、リギングアーティストによって手動で作成することができる。特定の実施形態では、単純化されたキャラクタリグは、統計的または機械学習方法を使用することにより、複雑なキャラクタリグから自動的に導出することができる。例えば、トレーニングセットは、体操のアニメーションポーズを使用して、複雑なキャラクタリグのための変形されたモデル制御頂点であるターゲットで構築することができる。複雑な変形された制御頂点と単純化された制御頂点との差を計算するコスト関数を定義することができる。次に、頂点アタッチメントおよびエクスポートリグのスキニングされた重みマップを学習して、コスト関数を最小化することができる。
【００６１】
アニメーションモジュール１１０は、複雑なキャラクタリグおよび／または単純化されたキャラクタリグのためのアニメーションデータを受け取るように構成することができる。特定のプロジェクトのためのアニメーションは、一連のショットまたはクリップに分割することができる。特定のショットまたはクリップは、１つ以上の仮想キャラクタを含むことができ、各仮想キャラクタは、複雑なキャラクタリグおよび単純化されたキャラクタリグによって表される、および／または、複雑なキャラクタリグおよび単純化されたキャラクタリグに関連付けられる。特定のショットについて、アニメータは、時間の経過とともに、１つ以上のキャラクタのキャラクタリグ（複雑なおよび／または単純化された）を手作業でアニメーション化またはキーフレーム化することができ、アニメーションは、俳優によるライブパフォーマンスまたは複数の技術の組み合わせからモーションキャプチャすることができる。特定の実施形態では、１つのショットは、単一のキャラクタの行動（アニメーションサイクルまたはサイクルアニメーションとも呼ばれ得る）を表すことができる。アニメーションモジュール１１０は、１つ以上のショットのアニメーションデータを出力するように構成することができる。ショットの出力アニメーションデータは、各仮想キャラクタについての単純化されたキャラクタのアニメーション化された骨格のジョイントデータと、他の関連するシーンデータ（小道具および環境要素の位置など）と、を含む。本技術で仮想キャラクタをアニメーション化すると、リアルタイムのキャラクタアニメーションへの従来のアプローチとは異なり、上記のように、複雑なキャラクタリグに制限がないという重要な利点がある。そのため、アニメータは、従来のパイプラインよりもはるかに強力なキャラクタパフォーマンスを達成することができる。
【００６２】
データエクスポータモジュール１１２は、単一のまたは複数のキャラクタリグのためのキャラクタリグデータおよびアニメーションのセットのキャラクタアニメーションデータ１１４をエクスポートするように構成することができる。キャラクタリグデータおよびキャラクタアニメーションデータ１１４は、リアルタイム処理エンジン（例えば、リアルタイムエンジンモジュール１１６）による使用のためにエクスポートすることができる。キャラクタリグデータは、例えば、キャラクタのデフォルトモデル情報（頂点の位置、メッシュのトポロジなど）、ジョイントの階層データ、単純化されたキャラクタリグのスキンの重みマップ、単純化されたキャラクタリグのための任意の追加のデフォーマに関するデータなどを含むことができる。一実施形態では、キャラクタリグデータは、キャラクタごとに（すなわち、アニメーションフレームごとではなく）エクスポートすることができる。
【００６３】
一実施形態では、仮想キャラクタに適用される１つ以上のアニメーションに関するキャラクタアニメーションデータは、アニメーションフレームごとのキャラクタごとにエクスポートすることができる。キャラクタアニメーションデータの一部の例は、単純化されたリグのジョイントの階層に関連するローカル空間のアニメーション化されたジョイントの変換と、キャラクタモデルの制御頂点と、を含むことができる。一実施形態では、キャラクタモデルの制御頂点は、各頂点のスキニングされた重みマップのジョイントの加重平均である、空間内の単純化されたキャラクタリグのメッシュに関するオフセット位置として格納される、複雑なキャラクタメッシュデータを含むことができる。以下に、より詳細に説明するように、各アニメーションの各フレームのキャラクタモデルの各頂点についてオフセットを計算することができる。リアルタイムエンジンモジュール１１６はオフセットを使用して、代わりに単純化されたキャラクタリグを変形し、次にキャラクタモデルの頂点にオフセットを適用することにより、複雑なキャラクタリグの変形を実現することができる。データエクスポータモジュール１１２は、このデータをローカルにディスクに保存するか、またはリモートサーバに送信することができる。フレームごとの頂点のオフセットデータをエクスポートすると、大きなデータセットがディスクに保存されたり、またはネットワークを介してリモートサーバに転送されたりする可能性がある。本技術の様々な実施形態は、エクスポートデータのサイズを削減するために複数の形式の不可逆または可逆の圧縮を提供する。圧縮技術の一部の例は、アニメーションフレーム全体で頂点のオフセットをカーブフィッティングすることにより、時間の経過とともにデータを削減したり、または主成分分析（ＰＣＡ）などの統計的または機械学習技術を使用することにより、保存された頂点の数を削減したりすることができる。データエクスポータモジュール１１２に関するさらなる詳細は、図２を参照して以下に提供される。
【００６４】
データインポートモジュール１１８は、キャラクタリグデータおよびキャラクタアニメーションデータ１１４をインポートするように構成することができる。一実施形態では、データインポートモジュール１１８は、非同期データマネージャを介して必要とされる要求に応じてデータエクスポータモジュール１１２によってエクスポートされるキャラクタリグデータおよびキャラクタアニメーションデータ１１４をロードすることができる。様々な実施形態では、非同期データマネージャは、ローカルディスクからまたはリモートサーバからデータをロードすることができる。一実施形態では、非同期データマネージャは、キャラクタのリグデータおよびキャラクタアニメーションデータをリアルタイムゲームエンジン（例えば、リアルタイムエンジンモジュール１１６）にインポートすることができる。
【００６５】
前述のように、キャラクタアニメーションデータは、アニメーションの各フレームの１つ以上のキャラクタについて、オフセットデータなどのデータを含むため、かなりの量のデータを含むことができる。一実施形態では、キャラクタアニメーションデータは、実行時に迅速に使用できるように調整することができる。図１Ｂは、この方法でキャラクタアニメーションデータを調整する方法を示すブロック図である。上記のように、キャラクタアニメーションデータは、１つ以上のアニメーションのクリップに関するデータを含むことができる。図１Ｂの例では、アニメーションのクリップデータのセットは、単純化されたリグのジョイントのアニメーションデータ（例えば、単純化されたリグのジョイントの階層のアニメーション化されたジョイントの変換）および圧縮された頂点のアニメーションデータ（例えば、単純化されたリグに関する各モデルの制御のための頂点のオフセット）を含む。圧縮された頂点のアニメーションデータは、実行中に立ち往生することなく非同期でＧＰＵ（例えば、ＧＰＵ１３４）にストリーミングすることができる小さなチャンク（例えば、２５６フレーム）にスライスされる。このアニメーションのクリップデータは、ローカルマシンから供給したり、クラウドベースのサーバからストリーミングしたりすることができる。ＧＰＵへのキャラクタアニメーションデータのストリーミングが障害を引き起こさないことを保証するために、データインポートモジュール１１８は、集中型のスケジューラを実装して、必要に応じてアニメーションのスライスをキューに入れてストリーミングすることができる。上述のように、キャラクタアニメーションデータは、複数のアニメーションのクリップに関するデータを含むことができる。特定の実施形態では、全てのアニメーションのクリップの第１のチャンク（例えば、２５６フレーム）は、ＶＲアプリケーションの起動時にＧＰＵのメモリにストリーミングすることができる。特定の実施形態では、データインポートモジュール１１８は、最適な負荷性能のためにＶＲ装置にローカルに格納されるキャラクタアニメーションデータをストリーミングすることができる。しかし、これにより、ＶＲアプリケーションのフットプリントが大きくなる可能性がある（例えば、大きなローカルストレージの使用量）。あるいは、データインポートモジュール１１８は、リモートサーバからキャラクタアニメーションデータをストリーミングすることができる。特定の実施形態では、ＶＲアプリケーションの使用中に必要に応じて、追加のチャンクを取得し、ＧＰＵにストリーミングされることを予測してローカルに保存することができるが、不要になったチャンクは、ローカルストレージの有用性と、ローカルマシンおよびクラウドベースのサーバの間のストリーミング速度と、のバランスをとるというやり方で、ローカルストレージから廃棄することができる。
【００６６】
図１Ａに戻ると、アニメーションドライバモジュール１２０は、アニメーションサイクルを駆動するように構成することができる。リアルタイム処理エンジンは、様々なサイクルアニメーション間を駆動するまたはブレンドするための多くのメカニズムを提供する。例えば、タイムラインベースの線形編集ツールを使用して、ゲーム内シネマティクスなどの物語体験を作成することができる。ステートマシンにより、対話型のゲームで様々なサイクル間をブレンドし、ユーザの操作に基づいて複雑なキャラクタの動作を作成することができる。場合によっては、エンジニアはさらに高性能なキャラクタの応答のために手続き的な人工知能（ＡＩ）をプログラムすることもできる。
【００６７】
キャラクタ相互作用制約モジュール１２２は、キャラクタリグのジョイントの位置に制約を与えるように構成することができる。サイクルアニメーション間をブレンドして、信頼できるキャラクタの応答をもたらすために、キャラクタのジョイントの位置に制約を与えることが望ましい場合がある。アニメーションサイクルのセット間をブレンドするために、キャラクタ相互作用制約モジュール１２２は、ジョイントの階層のセット間を線形補間することができる。指定された場所をキャラクタに見せるなどの追加の制約を与えるために、キャラクタ相互作用制約モジュール１２２は、特定のジョイントの位置（首および頭のジョイントなど）を直接変更することができる。また、本技術は、例えば、ジョイントの階層の局所的なレイヤー化をサポートすることを含む、豊富な制約のセットが、アニメーションサイクルを一緒にレイヤー化することを可能にする（すなわち、上下に重ねる）。
【００６８】
非言語キャラクタキューモジュール１２４は、ユーザおよびシーン入力に基づいてキャラクタリグのジョイントの位置を修正および／または調整するように構成することができる。人間は潜在意識のコミュニケーションキューを使用して、感情的なつながりを構築する。これらの非言語のキューは、現実の世界で互いに意味のある関係を構築するために重要である。ＶＲは、視聴者を完全に体験の中に没入させ、視聴者が仮想的な形態での体験の中でキャラクタになることができ、視聴者の動きを忠実に追跡する（例えば、頭および手の位置を使用する）ための独自の能力がある。これらは、意味のある潜在意識のコミュニケーションキューをＶＲシステムに構築するための重要な要素であり、従来の映画またはゲームでは不可能である。一実施形態では、非言語キャラクタキューモジュール１２４は、ユーザの頭および手の入力などのユーザ入力を使用して、複雑な非言語のキャラクタの応答をＶＲアニメーションに組み込むことができる。使用例は、以下を含む。
１．ユーザを見ること／アイコンタクトを維持すること
２．ユーザの動作をミラーリングすること
３．増加されたアクティビティ
４．動的なパフォーマンス
【００６９】
上述のように、非言語キャラクタキューモジュール１２４は、ユーザ入力を受信して、キャラクタリグの１つ以上のジョイントおよび／または頂点を修正することにより、非言語コミュニケーションのアニメーションを生成することができる。一実施形態では、非言語キャラクタキューモジュール１２４は、リアルタイムでユーザを追跡するＶＲプラットフォームからユーザ入力のデータを受信することができる。例えば、非言語キャラクタキューモジュール１２４は、ヘッドマウントディスプレイ（head-mounted display：ＨＭＤ）の位置および方向と、ハンドコントローラの位置および方向と、を使用して、ユーザの頭および手の位置および方向を正確に追跡することができる。別の実施形態では、非言語キャラクタキューモジュール１２４は、ＶＲ体験に組み込まれた追加の実世界のオブジェクトの位置および向きに関するデータなどの追加の追跡された入力を受信することができる。別の実施形態では、非言語キャラクタキューモジュール１２４は、ユーザの全身および顔の追跡を受け取って、より高度なユーザ入力をシステムに提供することができる。別の実施形態では、非言語キャラクタキューモジュール１２４は、舌コントローラ、アイスキャナ、またはブレインコンピュータのインターフェースなどの支援技術を通じて感情を表現するユーザから１つ以上のユーザ入力を受け取ることができる。別の実施形態では、非言語キャラクタキューモジュール１２４は、共有されたソーシャルエクスペリエンスにおける複数のユーザから１つ以上のユーザ入力を受信することができる。
【００７０】
非言語キャラクタキューモジュール１２４は、ＶＲのシーンから入力を受け取り、シーン入力に基づいて非言語コミュニケーションのアニメーションを生成するように構成することもできる。例えば、非言語キャラクタキューモジュール１２４は、ＶＲのシーン内の様々な小道具の位置などの他の環境の入力と同様に、仮想キャラクタのジョイントの位置を入力として利用することができる。システムは、ＶＲ体験に関連付けられた状態情報も使用することができる。
【００７１】
非言語キャラクタキューモジュール１２４によって出力される非言語コミュニケーションのアニメーションデータは、非言語コミュニケーションのアニメーションを、ユーザおよびシーン入力に基づいて仮想キャラクタのアニメーション化されたパフォーマンス上にレイヤー化させることができる。例えば、仮想キャラクタが実行するソースアニメーションまたはベースアニメーションが決定されてもよく、別個の非言語コミュニケーションのアニメーションが決定されてもよい。ソースアニメーションにより、仮想キャラクタが第１の方法でアニメーション化される場合がある（例えば、アニメーションリグのジョイントのセットのための向きおよび／または位置の第１のセットを定義する場合がある）。非言語コミュニケーションのアニメーションデータにより、アニメーションリグの１つ以上のジョイントの位置をさらに調整して、ジョイントの位置の修正されたセットを作成することができる。例えば、ベースアニメーションにより、仮想キャラクタがユーザに向かって歩く場合がある。別のミラーリングする非言語コミュニケーションのアニメーションにより、仮想キャラクタがユーザに向かって歩いている間に、仮想キャラクタがユーザをミラーリングする場合がある。または、別のルッキングする非言語コミュニケーションのアニメーションにより、仮想キャラクタがユーザに向かって歩いている間、仮想キャラクタがユーザとのアイコンタクトを維持する場合がある。手続き的なジョイントの変更は、既存のアニメーションを変更するための直感的で直接的なメカニズムを提供する。別の実施形態では、１つ以上の非言語コミュニケーションのアニメーションおよび層を一つにブレンドすることができる。アニメーションのブレンドまたはレイヤー化は、全てのアニメーションリグのジョイントにわたって、あるいはジョイントの特定のサブセットまたは領域についてのみ行うことができる。このアプローチにより、アーティストは非言語のパフォーマンスを明示的にアニメーション化することができる。ブレンドの性質は、任意に複雑化することができる。キャラクタ非言語コミニュケーションモジュール１２４に関するさらなる詳細は、図３を参照して以下に提供される。
【００７２】
単純化されたキャラクタリグアニメーションモジュール１２６は、アニメーションドライバ（例えば、アニメーションドライバモジュール１２０から）、相互作用の制約（例えば、キャラクタ相互作用制約モジュール１２２から）、および非言語コミュニケーションのアニメーションデータ（例えば、非言語キャラクタキューモジュール１２４から）を入力として受け取り、それらの入力に基づいて、単純化されたキャラクタリグのジョイントの階層をアニメーション化するように構成することができる。単純化されたキャラクタリグアニメーションモジュール１２６は、アニメーションドライバモジュール１２０からアニメーションのクリップ、ブレンドの重み、および時間のセットを受け取ることができる。アニメーションのクリップのセットのためのキャラクタアニメーションデータは、データインポートモジュール１１８から受け取ることができる。アニメーションデータへの変更は、非言語キャラクタキューモジュール１２４から受信してもよい。次に、単純化されたキャラクタリグアニメーションモジュール１２６は、アニメーションおよびブレンドに基づいて単純化されたキャラクタリグのジョイントの階層を更新することができる。最後に、単純化されたキャラクタリグアニメーションモジュール１２６は、キャラクタ相互作用制約モジュール１２２から受け取った相互作用の制約に基づいてジョイントの位置を修正することができる。
【００７３】
単純化されたキャラクタリグアニメーションモジュール１２６は、リアルタイムエンジンで１つ以上のアニメーションをトリガする、ブレンドする、および／またはレイヤー化するように構成することができる。これは、ステートマシン、非線形タイムラインツール、および／またはイベントベースのトリガの使用を含む、様々な方法で実現してもよい。アニメーションは、完全に、または所定のマスクを使用して部分的に、結合およびブレンドすることができる。これにより、レイヤー化されたパフォーマンスを作成する能力を提供することができる。例えば、顔のパフォーマンスまたは手のジェスチャは、ユーザ入力または行動に基づいて変更してもよい。単純化されたキャラクタリグアニメーションモジュール１２６は、ローカルのジョイントの変換をブレンドし、頂点のオフセットの重みを計算して、複雑なモデル変形モジュール１２８を駆動することができる（以下に、より詳細に説明する）。
【００７４】
複雑なモデル変形モジュール１２８は、単純化されたキャラクタリグアニメーションモジュール１２６によって行われる単純化されたキャラクタリグのアニメーションおよび頂点オフセットデータに基づいて、最終的なキャラクタモデルの変形を計算するように構成することができる。上述のように、データエクスポータモジュール１１２によってエクスポートされ、データインポートモジュール１１８によってインポートされるキャラクタアニメーションデータは、アニメーションの全てのフレームのキャラクタモデルの各頂点のフレームごとのオフセットを詳述する、フレームごとの頂点オフセットデータを含むことができる。頂点オフセットデータは、複雑なキャラクタリグの変形をシミュレートするために使用できるが、実際には単純化されたキャラクタリグのみがリアルタイムで変形されている。キャラクタメッシュ上の全ての制御頂点について、複雑なモデル変形モジュール１２８は、単純化されたキャラクタリグのジョイントのスキニングを、修正されたジョイントの階層および任意の追加の単純化されたキャラクタリグのメッシュデフォーマ（格子またはスムージングなど）に適用し、次に、複雑なキャラクタリグのメッシュの頂点のオフセットを適用することができる。これは、様々なアニメーションからの頂点のオフセットのセット間をブレンドし、および／またはアニメーションドライバに基づいて様々なアニメーションからの頂点のオフセットをレイヤー化することを含んでいてもよい。複雑なモデル変形モジュール１２８に関するさらなる詳細は、図４を参照して以下に提供される。
【００７５】
モデルテッセレーションモジュール１３０は、キャラクタモデルをテッセレーションおよびレンダリングするように構成することができる。多角形モデルはテッセレーションおよびレンダリングすることができるが、これにより、最終的なキャラクタの変形は粗くファセット（従来のゲームキャラクタに関連付けられた外観）に見える。最終モデルが滑らかで高忠実度（長編映画のキャラクタに関連付けられた外観）に見えるように、一実施形態では、モデルテッセレーションモジュール１３０は、キャットマル−クラーク細分割曲面をリアルタイムでテッセレーションおよびレンダリングすることができる。モデルテッセレーションモジュール１３０は、変形された複雑なモデル上の１つの細分化の反復をテッセレーションし、頂点の法線および接線を計算することができる。次に、この細分化され、テッセレーションされたモデルは、ラスター化のためにレンダリングパイプラインモジュール１３２に渡すことができる。モデルテッセレーションモジュール１３０に関するさらなる詳細は、図５を参照して以下に提供される。
【００７６】
図２は、本開示の一実施形態による、一例のデータエクスポータモジュール２０２を示す。一部の実施形態では、図１Ａのデータエクスポータモジュール１１２は、データエクスポータモジュール２０２として実装することができる。図２の例に示すように、データエクスポータモジュール２０２は、アニメーションエクスポータモジュール２０４と、データ圧縮モジュール２０６と、を含むことができる。
【００７７】
アニメーションエクスポータモジュール２０４は、リアルタイム処理エンジン（例えば、リアルタイムエンジンモジュール１１６）が使用するためのキャラクタアニメーションデータを生成してエクスポートするように構成することができる。一実施形態では、アニメーションエクスポータモジュール２０４は、少なくとも２つの入力：（１）複雑なキャラクタリグの全ての頂点のワールド空間の位置、および（２）単純化されたキャラクタリグを受け取ることができる。一実施形態では、単純化されたキャラクタリグは、（ａ）制御のジョイントが除外された複雑なキャラクタリグの重要な変形のジョイントのサブセットを表す単純化された骨格、（ｂ）キャラクタモデルの最大解像度のコピー、（ｃ）骨格とモデルとの間の関係を提供するスキニングの重みのセット、（ｄ）スキニングモデル（例えば、線形ブレンドスキニングまたはデュアルクォータニオンスキニング）、を含むことができる。アニメーションの各フレーム、およびモデルの各頂点について、アニメーションエクスポータモジュール２０４は、複雑なキャラクタリグと、重みに関連し、かつ単純化されたキャラクタリグの変形行列に影響を及ぼす、単純化されたキャラクタリグの変形結果と、の間のオフセットを計算するように構成することができる。
【００７８】
一実施形態では、線形ブレンドスキニング方程式（４つのジョイント）は次のように表すことができる：
【数１】
2020529692.tif 000003
ここで、ｖ’は変形された頂点の位置、ｖは頂点の基準位置、ｗは所定のジョイントのスキニングの重み、Ｒは基準状態における所定のジョイントの変換、Ｍは変形された状態における所定のジョイントの変換である。
【００７９】
合計を因数分解して、総合変換Ｓを生成することができる。
【数２】
2020529692.tif 000004
【００８０】
次に、オフセット（ｏ）を計算することができる。
【数３】
2020529692.tif 000005
ここで、ｖ’’は複雑なキャラクタリグからの頂点のワールド空間の位置、Ｓは単純化されたキャラクタリグによって生成される総合変換、ｖは頂点の基準位置である。Ｓは、デュアルクォータニオンスキニングなどの他のスキニング方法によって生成することができることに注意すべきである。Ｓは、格子およびスムージングの操作などの追加のデフォーマから生成することもできる。
【００８１】
データ圧縮モジュール２０６は、データエクスポータモジュール２０２によってエクスポートされるデータを圧縮するように構成することができる。データエクスポータモジュール２０２によってエクスポートされるデータ（例えば、キャラクタリグデータ、キャラクタアニメーションデータ）は、空間的および時間的の両方の整合性を有しており、高い圧縮率を可能にする。
【００８２】
特定の実施形態では、アニメーション中のキャラクタモデルの各頂点についてタイトなバウンディングボックスを計算することができ、サブミリメートルの精度を維持しながら、頂点のオフセットを、低次（例えば、８ビットまたは１６ビット）の整数を使用して量子化することができる。一実施形態では、データ圧縮モジュール２０６は、アニメーション全体にわたって頂点のオフセットのＸ、Ｙ、およびＺの最小値および最大値を追跡することにより、モデル内の各頂点のタイトなバウンディングボックスを計算するように構成することができる。次に、低次の整数を使用して、頂点のオフセットをバウンディングボックスに埋め込むことができる。特定の実施形態では、８ビットの量子化を使用することができる。多くの場合、８ビットの量子化は、目に見える精度の損失はなく、データの３２ビットの単精度浮動小数点表現に比べて４倍の改善が得られる。特定の実施形態では、低次の整数は、現実世界の距離を非線形的に表すことができるため、バイアスがその面と比較してバウンディングボックスの中心に向かって観察されるアニメーション全体の頂点のオフセット分布をよりよくキャプチャする（例えば、８ビット値は整数として解釈されず、代わりに１ビットの符号、５ビットの仮数および２ビットの指数を有する浮動小数点数として扱われる）。特定の実施形態では、低次の整数は、連続するアニメーションフレーム間の現実世界の距離の増分を表してもよい（例えば、値１、２、５、および４の連続するオフセットは、１、＋１（＝２−１）、＋３（＝５−２）、および−１（＝４−５）として表される）。
【００８３】
様々な実施形態では、データ圧縮モジュール２０６は、Ｘ、Ｙ、およびＺの頂点のオフセット値を単一のマルチチャンネルオーディオストリームの３つのチャンネルにマッピングすることにより、キャラクタアニメーションの８ビットまたは１６ビットの量子化と、ＭＰ３およびＷＡＶなどの不可逆または可逆のオーディオ圧縮技術と、を組み合わせるように構成することができる。様々な実施形態では、データ圧縮モジュール２０６は、Ｘ、Ｙ、およびＺの頂点のオフセット値を写真のピクセルのＲ、Ｇ、およびＢのカラー値にマッピングし、連続するアニメーションフレームについて隣接するピクセルを使用することにより、キャラクタアニメーションの８ビットまたは１６ビットの量子化と、ＪＰＥＧおよびＰＮＧなどの不可逆または可逆の写真圧縮技術と、を組み合わせるように構成することができる。様々な実施形態では、データ圧縮モジュール２０６は、Ｘ、Ｙ、およびＺの頂点のオフセット値を、ビデオのフレームのＲ、Ｇ、およびＢの色の値にマッピングすることにより、キャラクタアニメーションの８ビットまたは１６ビットの量子化と、Ｈ．２６４、Ｈ．２６５、およびＶＰ９などの不可逆または可逆のビデオ圧縮技術と、を組み合わせるように構成することができる。モバイルデバイス（例えば、電話、タブレット）およびコンピュータなどの、ＡＲおよびＶＲのために使用される多くのコンピュータ装置は、ＣＰＵまたはＧＰＵのリソースの消費を最小限に抑えながら、一般的な写真、オーディオ、および／またはビデオの圧縮フォーマットをデコードする専用のハードウェアを含む。
【００８４】
様々な実施形態では、データ圧縮モジュール２０６は、統計分析および機械学習技術を適用して、データエクスポータモジュール２０２によってエクスポートされるデータの空間的および時間的な整合性を利用するように構成することができる。一例の実装として、主成分分析（ＰＣＡ）は、低次元の空間を識別して全てのターゲットポーズ（キャラクタアニメーションデータ内のアニメーションフレームデータ）を投影し、キャラクタアニメーションデータを許容レベルの許容誤差内で再作成することができるようにする（例えば、９９％以内の精度）。クラスタ化されたＰＣＡのアプローチは、Ｋ平均法などのクラスタリングアルゴリズムと組み合わせて使用して、より良い結果を得ることができる。特定の実施形態では、時間の経過に伴う頂点のオフセットのパラメータ化された分析的近似表現（例えば、多項式、正弦関数、クランプされた３次ベジエ曲線などのスプライン曲線）は、キーフレーム削減技術により大幅な節約の機会を提供する。特定の実施形態では、スプライン曲線は、時間の経過に伴う頂点のオフセットを近似的に表し、それらの曲線のパラメータ（例えば、スプラインの順序、スプラインの制御点の数および位置）は、パラメータを保存する必要のあるストレージが、公知の曲線あてはめアルゴリズムによって最小化されるように選択される。特定の実施形態では、制御点の数は、削除により、曲線が、指定された許容可能な閾値を超えて適合するオフセットから逸脱しない全ての制御点を削除することにより最小化される。特定の実施形態では、スプライン制御点の削除は、隣接するスプライン制御点を、削除された点の位置に向かって移動することに連動して、削除によるスプライン曲線の形状への影響を最小限に抑える。
【００８５】
一実施形態では、キャラクタモデルの各頂点は、標準のＵＶテクスチャルックアップの技術を使用してテクスチャ位置にマッピングすることができる。これにより、データの空間的な整合性（従って圧縮率）が向上するが、頂点にマッピングされないピクセルのための無駄なテクスチャのメモリ記憶領域が犠牲になる。別の実施形態では、モデルの各頂点とビデオストリームの各ピクセルとの間の１対１の相関は、インデックススキームを介して行うことができる。場合によっては、このスキームの品質および圧縮率はインデックス付けに依存する場合がある。データの空間的な整合性を確保するために、統計分析を使用してクラスタリングおよびソートを実行してもよい。一実施形態では、データは、Ｋ平均法を使用してクラスタ化することができる。次に、ＰＣＡを各クラスタに適用して、時系列をその最大固有ベクトルに投影することにより、頂点をクラスタ内でソートすることができる。
【００８６】
図３は、本開示の実施形態による、一例の非言語キャラクタキューモジュール３０２を示す。一部の実施形態では、図１Ａの非言語キャラクタキューモジュール１２４は、非言語キャラクタキューモジュール３０２として実装することができる。上述のように、非言語キャラクタキューモジュール３０２は、仮想キャラクタにおいて１つ以上の非言語コミュニケーションのアニメーションを実現するための非言語コミュニケーションのアニメーションデータを生成するように構成することができる。非言語キャラクタキューモジュール３０２は、１つ以上のユーザ入力および／またはＶＲ環境状態の情報に基づいて非言語コミュニケーションのアニメーションデータを生成することができる。図３の例に示されるように、非言語キャラクタキューモジュール３０２は、アイコンタクトおよびルッキングモジュール３０４と、ミラーリングモジュール３０６と、増加アクティビティモジュール３０８と、動的パフォーマンスモジュール３１０と、を含むことができる。
【００８７】
アイコンタクトおよびルッキングモジュール３０４は、ユーザ入力および／またはＶＲ環境状態の情報に基づいて、ルッキングアニメーションデータを生成するように構成することができる。ルッキングアニメーションデータを使用して（例えば、単純化されたキャラクタリグアニメーションモジュール１２６によって）、仮想キャラクタにターゲットの位置を見させることができる。非言語コミュニケーションの最も強力な形式の１つはアイコンタクトであり、このアイコンタクトでは、人物は他の人物を見て直接アイコンタクトを行う。これにより、２人の間の関与の感覚およびつながりが生まれる。しかし、長時間のアイコンタクトは不快感を引き起こす場合がある。対照的に、アイコンタクトを避けることは、無関心、関与の欠如、または回避さえも示す反対の効果を与えることができる。
【００８８】
ＶＲは、観客にシーン内での完全な活動を提供する。どこでも見ることができるため、ストーリーの重要な部分を見逃す可能性がある。ＶＲコンテンツの作成者は、視聴者の目を適切な場所に適切なタイミングで向けることが望ましいと感じる場合がある。仮想キャラクタがユーザを直接見てフォローするように手続き的に目の方向を調整すると、ユーザは自然に反応してキャラクタに完全に注意を向ける。仮想キャラクタは、アイコンタクトを維持し、一定の間隔で一時的にアイコンタクトを一時停止して、ユーザを完全に解放することなく不快感を防ぐか、または、アイコンタクトを解除して（例えば、空を見上げる）、ユーザ（すでに彼女を見ている）を次のストーリービートに集中するように導くことができる。一実施形態では、アイコンタクトおよびルッキングモジュール３０４は、キャラクタにユーザを見させるルッキングアニメーションデータを生成するように構成することができる。ユーザがキャラクタを振り返っていると判断された場合、アイコンタクトおよびルッキングモジュール３０４は、アイコンタクトを維持し、アイコンタクトを一時停止するか、またはユーザに他のオブジェクトを見るように指示するために、キャラクタに別のオブジェクトを見るようにさせるルッキングアニメーションデータの第２のセットを生成するように構成することができる。
【００８９】
一実施形態では、アイコンタクトおよびルッキングモジュール３０４は、仮想キャラクタの目、頭、首、および／または身体の構成および位置を調整するように構成することができ（例えば、関連する頂点および／またはキャラクタリグ／モデルのジョイントを調整する）、これにより、キャラクタは、視聴者の頭または手の位置、あるいは他のオブジェクトなどのターゲットの位置を直接見ることができる。アイコンタクトおよびルッキングモジュール３０４は、時間の経過とともに任意の数のターゲットの位置の間をブレンドして、キャラクタのアイコンタクトを動的に調整するように構成することができる。
【００９０】
アイコンタクトおよびルッキングモジュール３０４は、ユーザの頭を仮想キャラクタのアイコンタクトのターゲットとして設定するために、ユーザのＨＭＤの頭部位置を入力として使用するように構成することができる。一実施形態では、アイコンタクトおよびルッキングモジュール３０４は、ＨＭＤの頭部位置および１つ以上のハンドコントローラの位置の両方を入力として使用するように構成することができるため、仮想キャラクタは、時間の経過とともにユーザの頭とユーザの手との間でアイコンタクトを手続き的に切り替えることができる。一実施形態では、ユーザの身体および顔の特徴のセットがコンピュータビジョンおよびモーションキャプチャ技術を使用して追跡される。アイコンタクトおよびルッキングモジュール３０４は、追跡される任意のユーザの特徴を追跡するように構成することができる。別の実施形態では、ユーザの目の方向は、頭の位置および向きとは無関係に追跡される。例えば、ユーザはある方向を向いており、別の方向を見ている場合がある。アイコンタクトおよびルッキングモジュール３０４は、頭の位置および向きとは無関係にユーザの目の方向を追跡するように構成することができる。一実施形態では、アイコンタクトおよびルッキングモジュール３０４は、ユーザのＨＭＤの頭部およびハンドコントローラの位置と、他のキャラクタ（例えば、他のキャラクタの頭）の位置の両方を入力として使用するように構成することができる。これにより、仮想キャラクタは、視聴者とシーン内の他のキャラクタとの間のアイコンタクトを変更することができる。別の実施形態では、システムは、複数のユーザに関連付けられた複数のＨＭＤの頭部およびハンドコントローラの位置を使用して、共有体験で複数のユーザ間の仮想キャラクタによるアイコンタクトを可能にする。
【００９１】
アイコンタクトおよびルッキングモジュール３０４は、ターゲットの位置に基づいて仮想キャラクタのためのアニメーションリグを調整するように構成することができる。最も簡単な調整は、ターゲットの位置に基づいてキャラクタの目のジョイントの位置を手続き的に修正することである。しかし、この解決策は、達成することができるアイコンタクトの範囲、動きのリアル感、またはキャラクタが伝える感情を制限する場合がある（例えば、頭または首の動きのない極端な目の動きは、キャラクタが動けない、または疑いを感じることを示唆し得る）。別の実施形態では、アイコンタクトおよびルッキングモジュール３０４は、ターゲットの位置を見るために目をどれだけ回転する必要があるかに基づいて、目のジョイントの位置に沿って一連の追加のジョイント（例えば、キャラクタの身体、首、および頭の１つ以上のジョイント）を手続き的に修正することができる。また、アイコンタクトおよびルッキングモジュール３０４は、キャラクタが時間の経過とともに様々なオブジェクトを見ることができるように、ターゲットの位置を手順的に修正するように構成することができる。
【００９２】
一例の実施形態では、アニメーションのジョイントは、ターゲットの位置に直接ブレンドするまたはロックすることができる。このアプローチは、場合によっては、これらのアニメーションのジョイントに存在する任意のソースアニメーションを削除し、重要な動作のキューを削除することができるという点で制限される場合がある。別の実施形態では、様々な首、頭、および目のジョイントは、アニメーションのコンテンツ作成ツールでカメラへの視線に関連してアニメーション化することができる。リアルタイム処理エンジンでは、アイコンタクトおよびルッキングモジュール３０４は、カメラへの視線をターゲットの位置に変換し、次に、デフォルトのカメラへの視線とターゲットのカメラへの視線との間で各首、頭、および目のジョイントをブレンドすることができる。このアプローチにより、キャラクタは特定のターゲットの位置を見ることができるが、視線に関連してレイヤー化されるオリジナルのアニメーション化されたパフォーマンスは保持される。このアプローチは、本明細書でより詳細に説明するように、ミラーリングおよび増加されたアクティビティなどの他の相互作用のアニメーションに実装することもできる。
【００９３】
一実施形態では、アイコンタクトおよびルッキングモジュール３０４は、アニメーションリグを修正するルッキングアニメーションのセット（例えば、複数）の間でブレンドするように構成することができる。これにより、アーティストは、ターゲットの位置に基づいてキャラクタがどのように調整されるかを正確に調整することができる。また、アニメータは、見た目の動作に個性を注入することができる。別の実施形態では、アイコンタクトおよびルッキングモジュール３０４は、追加のアニメーションをブレンドして、アイダーツなどの微妙なパフォーマンスをキャプチャするように構成することができる。
【００９４】
ミラーリングモジュール３０６は、ユーザ入力および／または仮想環境状態の情報に基づいてミラーリングのアニメーションデータを生成するように構成することができる。ミラーリングのアニメーションデータを使用して（例えば、単純化されたキャラクタリグアニメーションモジュール１２６によって）、キャラクタとユーザとの間のサイズまたは外観のいかなる違いにもかかわらず、リアル感のあるキャラクタの動きを生成しながら、仮想キャラクタにユーザの動きおよび行動をミラーリングさせることができる。別の強力な非言語のキューは、模倣またはミラーリングである。２人の人物は、互いの行動を、それら無しでも実現することで、無意識のうちにミラーリングすることがよくある。この人間の動作はつながりを構築し、エンターテインメントの場面だけでなく、セラピーまたは子供に教えるなどの臨床的なまたは教育の場面でも採用されている。ミラーリングモジュール３０６により、仮想キャラクタはユーザの行動をミラーリングして、ユーザとの微妙なつながりを構築することができる。
【００９５】
一例では、ミラーリングモジュール３０６は、ＨＭＤの位置および向きの情報を入力として受け取って、頭を傾けるなどの特定の関心動作を頭部の変換から抽出することができる。ミラーリングモジュール３０６は、仮想キャラクタに時間遅延、例えば４秒の時間の遅延でユーザの行動をミラーリングさせるミラーリングのアニメーションデータを生成することができる。ミラーリングモジュール３０６は、仮想キャラクタにユーザが頭を傾けるのを模倣させるミラーリングのアニメーションデータを生成することができる。一実施形態では、頭の傾きの変換は、時間遅れでアニメーションリグの頭のジョイントに手続き的にレイヤー化することができる。別の例では、ミラーリングモジュール３０６は、ＨＭＤの位置およびハンドコントローラの位置を入力として使用して、時間遅れでアニメーションリグの頭および手のジョイントを手続き的に修正することができる。一実施形態では、入力の変換を使用して、次にアニメーションリグを修正するミラーリングのアニメーション間をブレンドすることができる。例えば、頭を傾けるアニメーションには、頭が回転するときに笑っているキャラクタなどの顔の特徴を組み込むことができる。一実施形態では、ミラーリングモジュール３０６は、全身の追跡に基づいてユーザの全身の動きをミラーリングすることができる。別の実施形態では、ミラーリングモジュール３０６は、ユーザの行動をミラーリングする前に時間の遅延を動的に調整することができる。
【００９６】
増加アクティビティモジュール３０８は、ユーザ入力に基づいてアクティビティレベルのアニメーションデータを生成するように構成することができる。アクティビティレベルのアニメーションデータを使用して（例えば、単純化されたキャラクタリグアニメーションモジュール１２６により）、仮想キャラクタのアクティビティレベルを調整することができる。アクティビティレベルの増加は、興味および興奮などの肯定的な感情、神経質、ストレス、および恐怖などの否定的な感情を示す、または低温などの環境要因に対する自律的な反応である可能性がある。子供の場合、この興奮のレベルは非常に明白である。興奮した大人でさえ、もっとそわそわし、もっと話し、より速く話す。アクティビティレベルの上昇は、２人の大人がより密接な関係の可能性を模索しているという潜在意識の手がかりになる可能性がある。増加アクティビティモジュール３０８により、コンテンツ作成者は、ＶＲ体験の状態情報に基づいてアクティビティの増加を手続き的にレイヤー化することができる。この動作は、アニメーションの強さを高速化するか、またはキャラクタのスピーチを高速化してアニメーションリグのジョイントを調整することにより、手続き的にレイヤー化することができる。別の実施形態では、アクティビティの増加は、そわそわする動作または緊張感などの特定のアニメーションをブレンドすることによって達成することができる。
【００９７】
動的パフォーマンスモジュール３１０は、ユーザ入力および／または仮想環境状態の情報に基づいてキャラクタのパフォーマンスを動的に調整するように構成することができる。例えば、動的パフォーマンスモジュール３１０は、ユーザが常にパフォーマンスを明確に見ることができるように、ユーザの位置情報に基づいてキャラクタのステージングを調整するように構成することができる。別の例として、ユーザは、キャラクタが寒さを感じるように見せるなど、レイヤー化されたキャラクタの反応を引き起こすことができる。この例では、動的パフォーマンスモジュール３１０は、キャラクタの既存の動作の上に震えているアニメーションを重ねることができる。
【００９８】
追加の例では、動的パフォーマンスモジュール３１０は、ユーザにウインクする、まばたきする、および／または眉を上げるなど、キャラクタが必要に応じて顔のパフォーマンスを調整することができるように構成することができる。手続き的な非言語の調整は、物語の特定のポイントで、またはユーザの視線またはユーザのタッチなどのユーザの応答に基づいて行うことができる。
【００９９】
動的パフォーマンスモジュール３１０は、キャラクタがパフォーマンス中に操作するまたは使用する小道具の調整および／または交換をサポートすることができる。動的パフォーマンスモジュール３１０は、ユーザについての外部情報に基づいて、コンテンツの小道具を交換することができる。これを使用して、一部のコンテンツ内に製品を配置するための小道具を動的に調整するまたは変更することができる。動的な小道具は、ユーザについての事前の知識に基づいて一部のコンテンツをパーソナライズすることもできる。小道具は、例えば、衣服、および髪の毛または肌の色などのキャラクタの外観の他の要素を含むことができる。
【０１００】
図４は、本開示の実施形態による、一例の複雑なモデル変形モジュール４０２を示す。一部の実施形態では、図１Ａの複雑なモデル変形モジュール１２８は、複雑なモデル変形モジュール４０２として実装することができる。図４の例に示されるように、複雑なモデル変形モジュール４０２は、データ再構成モジュール４０４と、スキンコンピュートシェーダモジュール４０６と、を含むことができる。
【０１０１】
データ再構成モジュール４０４は、実行時に、任意の必要なキャラクタアニメーションデータ（例えば、頂点のアニメーションデータ）を伸張し、単純化されたキャラクタリグのアニメーション中に計算された重みを使用して、保存されたオフセットをブレンドし（例えば、アニメーションモジュール１１０によって）、スキニングの変換を適用するように構成することができる。これは、例えば、コンピュートシェーダを使用して、パフォーマンスを高くして行うことができる。ＰＣＡなどの統計的方法がキャラクタアニメーションデータに適用されている場合、データ再構成モジュール４０４は、低次元のデータ空間から頂点の完全なセットを再構成するように構成することができる。
【０１０２】
スキンコンピュートシェーダモジュール４０６は、以下のように、所定の頂点のための単純化されたキャラクタの変形に基づいて、完全な品質のキャラクタ（つまり、複雑なキャラクタ）の変形を再構築するように構成することができる。
【数４】
2020529692.tif 000006
ここで、ｖ’’は、完全な品質の複雑なキャラクタリグからの頂点の再構築されたワールド空間の位置、Ｓは、単純化されたキャラクタリグによって生成される総合変換、ｖはモデルの基準位置、ｘは所定のアニメーションのクリップの重み、ｏは、アニメーションのクリップの所定のフレームの頂点のオフセットである。その結果、データエクスポータモジュール２０２によって提供されるが、単純化されたキャラクタリグアニメーションモジュール１２６から適用される手続き的なアニメーションを有するデータが再構成される。データエクスポータモジュール２０２によって圧縮が使用されなかった場合、または可逆圧縮が使用された場合、この再構成は完璧である。そうではなく、非可逆圧縮が使用された場合、再構成は近似になる。
【０１０３】
図５は、本開示の一実施形態による、一例のモデルテッセレーションモジュール５０２を示す。一部の実施形態では、図１Ａのモデルテッセレーションモジュール１３０は、モデルテッセレーションモジュール５０２として実装することができる。図５の例に示されるように、モデルテッセレーションモジュール５０２は、サブディビジョンテッセレータモジュール５０４と、法線および接線計算モジュール５０６と、を含むことができる。
【０１０４】
サブディビジョンテッセレータモジュール５０４は、キャラクタアニメーションの形状を滑らかに細分化して、細分化されたメッシュを生成するように構成することができる。一実施形態では、サブディビジョンテッセレータモジュール５０４は、キャットマル−クラーク細分割曲面を使用してキャラクタアニメーションの形状を平滑化することができる。ステンシルの重みは、全ての細分化された頂点の位置について事前に計算することができ、リアルタイムの計算は、ハルの頂点の位置の単純な線形結合になる。一実施形態では、サブディビジョンテッセレータモジュール５０４は、連続的に、より滑らかなバージョンのメッシュを生成する再帰的な細分化の技術を使用してキャラクタアニメーションの形状を滑らかに細分化するように構成することができる。各反復では、
・メッシュの各面は、その重心に追加の頂点（Ｆ）を生成し、
・メッシュの各エッジは、その重心および入射面の重心（Ｆ）の加重結合として追加の頂点（Ｅ）を生成し、
・メッシュの各頂点（Ｖ）は、そのオリジナルの位置、入射エッジの重心（Ｅ）、および入射面の重心（Ｆ）の加重結合に配置される。
図６は、上記の再帰的手法の２つのサンプルの反復を表す一例のシナリオ６００を示す。初期（またはベース）のメッシュ６０２は、第１の反復で細分化されて第１の細分化メッシュ６０４を生成し、第２の反復でさらに細分化されて第２の細分化メッシュ６０６を生成する。各反復の結果、頂点、面、およびエッジの数がより多くなり、メッシュが次第により細かくなることが分かる。（Ｆ）および（Ｅ）に対する（Ｖ）の依存関係、および（Ｆ）に対する（Ｅ）の依存関係は、逆置換によって単純化することができる。この置換を適用することにより、細分化されたメッシュの任意の細分化レベルの任意の頂点は、変形されたベースメッシュの頂点の線形加重結合として表すことができる。線形結合で使用される重みは、実行時に一定のままであるベースメッシュのトポロジのみに依存する。そのため、重みはパイプラインのステップとして一度計算して保存することができる。細分化されたメッシュの特定の頂点を表すために使用される重みの数は、ベースメッシュの頂点の数によってのみ制限される場合があるが、特定の実施形態では、その数は、頂点の価数および各入射面における頂点の数に連動する場合がある。特定の実施形態では、厳しい制限が設定されてもよい。例えば、細分化されたメッシュの各頂点は、１０個以下の重みで表してもよい。特定の実施形態では、保持される重みは、絶対的な大きさが最大のものとしてもよい。例えば、各頂点は、最大の１０個の重みで表してもよい。
【０１０５】
図５に戻ると、法線および接線計算モジュール５０６は、メッシュの双対グラフのアナログを使用して、メッシュの各頂点（例えば、細分化されたメッシュまたはベースメッシュ）のための近似の法線および接線ベクトルを計算するように構成することができる。このアプローチは、任意に変形された形状においても、高品質の法線および接線を生成する。
【０１０６】
各面の周囲に配列された頂点を有する区分的なメッシュでは、幾何学的な法線はメッシュ面に暗黙的に定義される。しかし、滑らかなメッシュの外観を与えるために、各頂点には、入射面の法線の線形結合として法線を割り当て、次に、これらの頂点の法線を、重心の重みを使用して多角形の全体に線形補間することができる。しかし、この手法は、全ての入射面の面法線を所定の頂点に対して事前に計算する必要があるため、計算コストが高くなる。その結果、リアルタイムゲームエンジンは、変形された頂点の位置から頂点の法線を計算することはほとんどない。代わりに、それらは、通常、基準ポーズで一度計算され、次に、スキニングの重みおよび変換を使用して変形される。
【０１０７】
一実施形態では、法線および接線計算モジュール５０６は、４つの等間隔の隣接する頂点を使用して頂点の法線を近似するように構成することができる。キャットマル−クラーク細分割で一般的に使用されるようなクアッドドミナントメッシュの場合、ほとんどの頂点はちょうど４つの隣接点を有し、４つの隣接する頂点Ａ、Ｂ、Ｃ、およびＤの選択を単純で明確にする。図７は、頂点Ｖがちょうど４つの隣接点Ａ、Ｂ、Ｃ、およびＤを有する一例のシナリオ７００を示す。このようなシナリオでは、法線は以下のように計算することができる。
【数５】
2020529692.tif 000007
【０１０８】
４つを超える隣接する頂点を有する例外的な頂点の場合、法線および接線計算モジュール５０６は、隣接する頂点のセットから４つの等間隔の隣接する頂点を選択するように構成することができる。一実施形態では、４つの隣接する頂点は、トポロジ的な考察のみを使用して選択してもよい。例えば、頂点が８つの入射エッジを有する場合、他の全ての隣接する頂点を使用することができる。一実施形態では、４つの隣接する頂点は、メッシュの固有の特性を使用して選択することができる。例えば、４つの隣接する頂点は、頂点を任意の２つの選択された連続する隣接する頂点に接続する２つのエッジによって頂点で形成される角度が、できるだけ９０度に近くなるように選択することができる。図８は、頂点Ｖが４つ以上の隣接する頂点を有する一例のシナリオを示す。シナリオ８００の例では、頂点Ｖは８つの隣接する頂点を有し、４つの隣接する頂点Ａ、Ｂ、Ｃ、およびＤは、隣接する頂点を１つおきに選択することにより選択されている。
【０１０９】
頂点が４つ未満の隣接する頂点を有する境界の頂点の場合、法線および接線計算モジュール５０６は、任意の欠落している頂点の代わりに頂点自体を置換するように構成することができる。図９は、頂点Ｖが４つ未満の隣接する頂点を有する一例のシナリオ９００を示す。シナリオ９００の例では、頂点Ｖは３つの隣接する頂点Ａ、Ｂ、およびＣのみを有する。従って、頂点Ｖ自体は、第４の隣接する頂点Ｄとして置換される。
【０１１０】
一実施形態では、接線ベクトルは同様の構成を採用することができる。所定の頂点（定義された法線に垂直な任意のベクトル）についての無数の接線ベクトルが存在するが、一実施形態では、法線および接線計算モジュール５０６は、メッシュのＵＶパラメータ化のＵ方向に並ぶ接線ベクトルを選択するように構成することができる。好都合なことに、開示された表現では、この接線ベクトルは、基準ベクトル（Ａ−Ｃ）および（Ｂ−Ｄ）の線形結合である。係数は、トポロジおよびＵＶパラメータ化のみに依存し、実行時に固定されたままであり、線形結合の重みをパイプラインのステップとして事前に計算することができる。一実施形態では、接線ベクトルは以下のように計算することができる。
【数６】
2020529692.tif 000008
Ａｖ、Ｂｖ、Ｃｖ、Ｄｖは、頂点Ａ、Ｂ、Ｃ、およびＤでのメッシュのＵＶパラメータ化のＶ成分を表す。
【０１１１】
サブディビジョンテッセレータモジュール５０４によって決定される、細分化されたメッシュの頂点の位置、および法線および接線計算モジュール５０６によって計算される、細分化されたメッシュの各頂点についての近似の法線および接線ベクトルは、頂点シェーダに渡され、図１Ａのレンダーパイプラインモジュール１３２によって使用されることができる。
【０１１２】
図１０は、多角形の制御モデルに基づいて、キャットマル−クラーク細分割曲面の頂点の位置、法線、および接線を生成するための一例のプロセスを詳述する。このパイプラインは、ＧＰＵでのリアルタイムの計算のために最適化されている。
【０１１３】
図１１は、本技術の一実施形態による、一例の方法１１００を示す。ブロック１１０２において、方法１１００は、デフォルトモデルによって定義される第１の複数の変換および第１の複数の頂点を含む複雑なリグと、第２の複数の変換および第２の複数の頂点を含み、第２の複数の頂点が、デフォルトモデルによって定義される第１の複数の頂点に対応する単純化されたリグと、を含む、仮想変形可能幾何モデルに関連付けられた仮想モデル情報を受け取ることができる。ブロック１１０４において、方法１１００は、仮想変形可能幾何モデルに適用されるアニメーションに基づいて、単純化されたリグおよび複雑なリグを変形させることができる。ブロック１１０６において、方法１１００は、第１の複数の頂点内の各頂点について、頂点と第２の複数の頂点内の対応する頂点との間のオフセットを含むオフセットデータのセットを計算することができる。
【０１１４】
図１２は、本技術の一実施形態による、一例の方法１２００を示す。ブロック１２０２において、方法１２００は、デフォルトモデルによって定義される第１の複数の変換および第１の複数の頂点を含む複雑なリグと、第２の複数の変換および第２の複数の頂点を含み、第２の複数の頂点が、デフォルトモデルによって定義される第１の複数の頂点に対応する単純化されたリグと、を含む、仮想変形可能幾何モデルに関連付けられた仮想モデル情報を受け取ることができる。ブロック１２０４において、方法１２００は、仮想変形可能幾何モデルに適用されるアニメーションに基づいて、単純化されたリグおよび複雑なリグを変形させることができる。ブロック１２０６において、方法１２００は、第１の複数の頂点内の各頂点について、頂点と第２の複数の頂点内の対応する頂点との間のオフセットを含むオフセットデータのセットを計算することができる。ブロック１２０８において、方法１２００は、仮想変形可能幾何モデルのリアルタイムのアニメーションのために、オフセットデータのセットの圧縮版をリアルタイム処理エンジンにエクスポートすることができる。
【０１１５】
図１３は、本技術の一実施形態による、一例の方法１３００を示す。ブロック１３０２において、方法１３００は、複数の頂点、複数のエッジ、および複数の面を含む仮想モデルのメッシュを含む、リアルタイムの没入環境でアニメーション化される仮想変形可能幾何モデルを識別することができる。ブロック１３０４において、方法１３００は、１回以上の反復で仮想モデルのメッシュを繰り返し細分化して、細分化されたメッシュを生成することができ、１回以上の反復の各反復は、頂点の数、エッジの数、および／または面の数を増加させる。ブロック１３０６において、方法１３００は、リアルタイムの没入環境内の仮想変形可能幾何モデルのリアルタイムのアニメーション中に、細分化されたメッシュを提示することができる。
【０１１６】
図１４は、本技術の一実施形態による、一例の方法１４００を示す。ブロック１４０２において、方法１４００は、リアルタイムの没入環境内でユーザに提示される仮想キャラクタを識別することができる。ブロック１４０４において、方法１４００は、仮想キャラクタに適用される第１のアニメーションを決定することができる。ブロック１４０６において、方法１４００は、第１のアニメーションと同時に仮想キャラクタに適用される非言語コミュニケーションのアニメーションを決定することができる。ブロック１４０８において、方法１４００は、第１のアニメーションおよび非言語コミュニケーションのアニメーションに基づいて、仮想キャラクタをリアルタイムでアニメーション化することができる。
【０１１７】
方法の例に対する多くのバリエーションが可能である。特に明記しない限り、本明細書で説明する様々な実施形態の範囲内において、類似のまたは代替の順序で、または並行して、追加の、より少ない、または代替のステップを実行することができることを理解すべきである。
【０１１８】
［ハードウェアの実装］
前述のプロセスおよび特徴は、様々な機械およびコンピュータシステムアーキテクチャによって、様々なネットワークおよびコンピューティング環境において実装することができる。図１５は、本開示の実施形態による、本明細書に記載の１つ以上の実施形態を機械に実行させるための命令のセットを実行することができる一例の機械１５００を示す。実施形態は、１つ以上のシステム、方法、またはコンピュータ可読媒体に関連することができる。機械は、他の機械に接続（例えば、ネットワーク）される場合がある。ネットワーク化された配置では、機械は、クライアント−サーバのネットワーク環境におけるサーバまたはクライアントマシンとして動作するか、またはピアツーピア（または分散型）のネットワーク環境におけるピアマシンとして動作することができる。
【０１１９】
コンピュータシステム１５００は、プロセッサ１５０２（例えば、中央処理装置（ＣＰＵ）、グラフィック処理装置（ＧＰＵ）、または両方）、メインメモリ１５０４、および不揮発性メモリ１５０６（例えば、揮発性ＲＡＭおよび不揮発性ＲＡＭのそれぞれ）を含み、バス１５０８を介して互いに通信する。プロセッサ１５０２は、並列処理システムなどの任意の適切な形態で実装することができる。場合によっては、例示の機械１５００は、コンピュータ装置またはシステムに対応する、含む、または含まれることができる。例えば、一部の実施形態では、機械１５００は、デスクトップコンピュータ、ラップトップコンピュータ、携帯情報端末（personal digital assistant：ＰＤＡ）、機器、ウェアラブルデバイス、カメラ、タブレット、または携帯電話などであり得る。一実施形態では、コンピュータシステム１５００はまた、ビデオディスプレイ１５１０、英数字入力装置１５１２（例えば、キーボード）、カーソル制御装置１５１４（例えば、マウス）、ドライブ装置１５１６、信号生成装置１５１８（例えば、スピーカー）およびネットワークインターフェースデバイス１５２０を含む。
【０１２０】
一実施形態において、ビデオディスプレイ１５１０は、ユーザ入力用のタッチセンシティブスクリーンを含む。一実施形態では、キーボードおよびマウスの代わりにタッチセンシティブスクリーンが使用される。ディスクドライブ装置１５１６は、本明細書で説明される方法論または機能のいずれか１つ以上を具体化する１つ以上の命令１５２４のセット（例えば、ソフトウェア）が記憶される機械可読媒体１５２２を含む。命令１５２４は、完全にまたは少なくとも部分的に、コンピュータシステム１５００による実行中にメインメモリ１５０４内におよび／またはプロセッサ１５０２内に常駐することもできる。命令１５２４はさらに、ネットワークインターフェースデバイス１５２０を経由してネットワーク１５４０を介して送信するまたは受信することができる。一部の実施形態では、機械可読媒体１５２２はデータベース１５２５も含む。
【０１２１】
揮発性ＲＡＭは、メモリ内のデータを更新または維持するために、継続的に電力を必要とするダイナミックＲＡＭ（ＤＲＡＭ）として実装することができる。不揮発性メモリは、通常、磁気ハードドライブ、磁気光学ドライブ、光学ドライブ（例えば、ＤＶＤ−ＲＡＭ）、またはシステムの電源を切ってもデータを保持する他のタイプのメモリシステムである。不揮発性メモリ１５０６は、ランダムアクセスメモリであってもよい。不揮発性メモリ１５０６は、コンピュータシステム１５００内の残りの構成要素に直接結合されるローカルデバイスであり得る。モデムまたはイーサネット（登録商標）インターフェースなどのネットワークインターフェースを介して本明細書に記載のいずれかのコンピュータシステムに結合されるネットワーク記憶装置などの、システムから遠く離れた不揮発性メモリも使用することができる。
【０１２２】
機械可読媒体１５２２は、例示の実施形態では単一の媒体であるように示されているが、用語「機械可読媒体」は、１つ以上の命令のセットを保存する単一の媒体または複数の媒体（例えば、集中型または分散型のデータベース、および／または関連するキャッシュおよびサーバ）を含むと理解されるべきである。「機械可読媒体」という用語は、機械による実行のための命令のセットを保存し、エンコードし、または実行することができ、機械に本開示の任意の１つ以上の方法論を実行させる任意の媒体も含むものとする。従って、「機械可読媒体」という用語は、ソリッドステートメモリ、光学および磁気媒体、ならびに搬送波信号を含むものとするが、これらに限定されない。本明細書で使用される「ストレージモジュール」という用語は、機械可読媒体を使用して実装することができる。
【０１２３】
一般に、本発明の実施形態を実装するために実行されるルーチンは、オペレーティングシステムまたは特定のアプリケーション、構成要素、プログラム、オブジェクト、モジュール、あるいは「プログラム」または「アプリケーション」と呼ばれる命令のシーケンスの一部として実装することができる。例えば、１つ以上のプログラムまたはアプリケーションを使用して、本明細書で説明する機能、技術、およびプロセスのいずれかまたは全てを実行することができる。プログラムまたはアプリケーションは、通常、様々な時点で機械の様々なメモリおよび記憶装置に設定される１つ以上の命令を含み、１つ以上のプロセッサによって読み出されて実行されると、コンピュータシステム１５００に、本明細書に記載される実施形態の様々な態様を含む要素を実行する操作を実行させる。
【０１２４】
実行可能なルーチンおよびデータは、例えば、ＲＯＭ、揮発性ＲＡＭ、不揮発性メモリ、および／またはキャッシュメモリを含む、様々な場所に格納されてもよい。これらのルーチンおよび／またはデータの一部は、これらの記憶装置のいずれかに格納してもよい。さらに、ルーチンおよびデータは、集中型のサーバまたはピアツーピアのネットワークから取得することができる。ルーチンおよびデータの他の部分は、様々な時間に、他の通信セッションで、または同じ通信セッションで、様々な集中型のサーバおよび／またはピアツーピアネットワークから取得することができる。ルーチンおよびデータは、アプリケーションの実行前に全部を取得することができる。あるいは、ルーチンおよびデータの一部は、実行に必要なときに、動的にちょうどその時々に取得することができる。従って、ルーチンおよびデータの全部が、特定の時点において機械可読媒体上にある必要はない。
【０１２５】
コンピュータシステムの文脈で実施形態を十分に説明したが、当業者は、様々な実施形態が様々な形態のプログラム製品として配布可能であり、本明細書で説明する実施形態が、実際に配布を行うために使用される特定の種類の機械またはコンピュータ可読媒体に関わらず等しく適用されることを理解するであろう。機械可読媒体の例は、特に、揮発性および不揮発性メモリデバイス、フロッピーおよびその他のリムーバブルディスク、ハードディスクドライブ、光ディスク（例えば、コンパクトディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、など）などの記録型のメディア、ならびにデジタルおよびアナログの通信リンクなどの伝送型のメディアを含むが、これらに限定されない。
【０１２６】
あるいは、または組み合わせて、本明細書に記載の実施形態は、特定用途向け集積回路（Application-Specific Integrated Circuit：ＡＳＩＣ）またはフィールドプログラマブルゲートアレイ（Field-Programmable Gate Array：ＦＰＧＡ）を使用するなど、ソフトウェア命令の有無にかかわらず、専用回路を使用して実装することができる。実施形態は、ソフトウェア命令のないハードワイヤード回路を使用して、またはソフトウェア命令と組み合わせて実装することができる。従って、この技術は、ハードウェア回路およびソフトウェアの特定の組み合わせにも、データ処理システムによって実行される命令の特定のソースにも限定されない。
【０１２７】
説明の目的で、多数の特定の詳細が、記載の完全な理解を提供するために示されている。しかしながら、これらの特定の詳細なしで本開示の実施形態を実施することができることは、当業者には明らかであろう。場合によっては、モジュール、構造、プロセス、特徴、およびデバイスは、記載を不明瞭にしたり、本明細書で説明したりするのを避けるために、ブロック図の形式で示されている。他の例では、データおよびロジックのフローを表す機能的なブロック図およびフロー図が表示される。ブロック図およびフロー図の構成要素（例えば、モジュール、エンジン、ブロック、構造、デバイス、機能、など）は、本明細書で明示的に説明および図示される方法以外の方法で、様々に組み合わせ、分離し、削除し、並べ替え、交換することができる。
【０１２８】
本明細書における「一実施形態」、「実施形態」、「他の実施形態」、「別の実施形態」、「様々な実施形態」などへの言及は、実施形態に関連して説明される特定の特徴、設計、構造、または特性が本開示の少なくとも１つの実施形態に含まれることを意味する。例えば、明細書の様々な場所での「一実施形態による」、「一実施形態では」、「実施形態では」、「様々な実施形態では」、または「別の実施形態では」というフレーズの出現は、必ずしも全て同じ実施形態を参照しているわけでも、他の実施形態と相互に排他的な別個のまたは代替の実施形態を参照しているわけでもない。さらに、「実施形態」などが明確に参照されているか否かに関係なく、一部の実施形態において様々に組み合わされて含まれてもよく、他の実施形態では様々に省略されてもよい、様々な特徴が説明されている。同様に、一部の実施形態のための選択または要件であり、他の実施形態のためではなくてもよい、様々な特徴が説明されている。
【０１２９】
特定の例示の実施形態を参照して実施形態を説明したが、様々な修正および変更を、これらの実施形態に加えることができることは明らかであろう。従って、明細書および図面は、制限の意味ではなく、説明の意味と見なされるべきである。上記の明細書は、特定の代表的な実施形態を参照して説明を提供する。添付の特許請求の範囲に記載されるより広い精神および範囲から逸脱することなく、様々な修正をそれに加えることができることは明らかであろう。従って、明細書および図面は、制限の意味ではなく、説明の意味と見なされるべきである。
【０１３０】
一部の図面は特定の順序で多くの操作または方法のステップを示しているが、順序に依存しないステップは並べ替えてもよく、他のステップは組み合わせるかまたは省略してもよい。一部の並べ替えまたは他のグループ化が具体的に言及されているが、他のものは当業者には明らかであり、従って代替の網羅的なリストを提示しない。さらに、ステージはハードウェア、ファームウェア、ソフトウェア、またはそれらの任意の組み合わせで実装できることを認識すべきである。
【０１３１】
本発明の本質から逸脱することなく、様々な変更を行うことができることも理解すべきである。このような変更も暗黙的に説明に含まれる。それらは依然として本発明の範囲内にある。本開示は、本発明の多数の態様を保護する特許を、単独でおよびシステム全体としての両方、ならびに方法および装置の形式の両方でもたらすことを意図することを理解すべきである。
【０１３２】
さらに、本発明および請求項の様々な要素のそれぞれは、様々な方法で達成することもできる。本開示は、任意の装置の実施形態、方法またはプロセスの実施形態の変形、あるいはこれらの任意の要素の単なる変形であっても、そのような各変形を包含すると理解すべきである。
【０１３３】
さらに、「含む」という移行句の使用は、従来の請求項の解釈に従って、本明細書の「オープンエンド」の請求項を維持するために使用される。従って、文脈で特に必要とされない限り、「含む」という用語あるいは「含み」または「含んでいる」などの変形は、述べられた要素、ステップ、あるいは要素またはステップのグループを含むことを意味することを意図しており、任意の他の要素、ステップ、あるいは要素またはステップのグループを除外することを意味することを意図していないことを理解すべきである。そのような用語は、以下の請求項に従って法的に許容される最も広い範囲が出願人に与えられるように、それらの最も広い形で解釈されるべきである。
【０１３４】
本明細書で使用される言葉は、主に読みやすさおよび説明の目的のために選択されたものであり、本発明の主題を描写または限定するために選択されていない場合がある。従って、本発明の範囲は、この詳細な説明によって制限されるのではなく、本明細書に基づく出願で発行される請求項によって制限されることが意図されている。従って、本発明の実施形態の開示は、添付の特許請求の範囲に記載される本発明の範囲を説明することを意図したものであり、限定することを意図したものではない。
【図１Ａ】
2020529692.tif 000009
【図１Ｂ】
2020529692.tif 000010
【図２】
2020529692.tif 000011
【図３】
2020529692.tif 000012
【図４】
2020529692.tif 000013
【図５】
2020529692.tif 000014
【図６】
2020529692.tif 000015
【図７】
2020529692.tif 000016
【図８】
2020529692.tif 000017
【図９】
2020529692.tif 000018
【図１０】
2020529692.tif 000019
【図１１】
2020529692.tif 000020
【図１２】
2020529692.tif 000021
【図１３】
2020529692.tif 000022
【図１４】
2020529692.tif 000023
【図１５】
2020529692.tif 000024
【国際調査報告】
2020529692.tif 000025
2020529692.tif 000026