(57)【要約】異種入力の補間のためのシステムおよび方法が、提供される。放射基底関数ニューラルネットワーク（ＲＢＦＮＮ）が、デジタルキャラクタの姿勢を補間するために使用され得る。ＲＢＦＮＮへの入力パラメータは、データタイプ（例えば、角度対線形）によって分離され、データタイプに特有の距離関数（例えば、角度入力データに関する角距離関数を使用する）によってＲＢＦＮＮ内で操作され得る。加重が、異なる変数（例えば、鎖骨対肩）を表す入力データを補償するために各距離に適用され得る。ＲＢＦＮＮの出力パラメータは、組み合わせ値（例えば、ＳＯ（３）空間内のｘ、ｙ、ｚ、ｗ角度値を表す）に組み合わせられ得る、独立値のセットであり得る。
2021529380.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
少なくとも１つの角度成分および少なくとも１つの線形成分を備える入力データを受信することと、
前記入力データを、入力として、前記少なくとも１つの線形成分と異なるように前記少なくとも１つの角度成分を評価するように訓練されている少なくとも１つのニューラルネットワーク（ＮＮ）に提供することと、
前記少なくとも１つの角度成分および前記少なくとも１つの線形成分の異なる評価に基づいて前記少なくとも１つのＮＮによって生成される出力データを受信することと
を含む、方法。
【請求項２】
前記少なくとも１つの角度成分は、３次元空間内の特殊直交群（ＳＯ（３））内にある、請求項１に記載の方法。
【請求項３】
前記ニューラルネットワークのうちの少なくとも１つは、フィードフォワードニューラルネットワーク（ＦＦＮＮ）である、請求項１に記載の方法。
【請求項４】
前記少なくとも１つのＦＦＮＮは、全結合ネットワークである、請求項３に記載の方法。
【請求項５】
前記ＦＦＮＮは、単一隠れ層を備える、請求項４に記載の方法。
【請求項６】
前記ＦＦＮＮは、正規化線形ユニット活性化関数を備える、請求項５に記載の方法。
【請求項７】
前記隠れ層は、残差ＮＮブロックである、請求項６に記載の方法。
【請求項８】
前記ＮＮのうちの少なくとも１つは、放射基底関数ニューラルネットワーク（ＲＢＦＮＮ）である、請求項１に記載の方法。
【請求項９】
前記入力データは、デジタルキャラクタの姿勢を説明する、請求項１に記載の方法。
【請求項１０】
前記入力データは、デジタルキャラクタの低次骨格を表し、前記出力データは、デジタルキャラクタの高次骨格を表す、請求項１に記載の方法。
【請求項１１】
前記出力データは、デジタルキャラクタの姿勢を説明する、請求項１に記載の方法。
【請求項１２】
前記入力データおよび前記出力データのうちの１つ以上のものはさらに、第３の成分を含む、請求項１に記載の方法。
【請求項１３】
前記角度成分、線形成分、および第３の成分はそれぞれ、運動の異なる成分である、請求項１２に記載の方法。
【請求項１４】
前記少なくとも１つの角度成分は、回転運動を説明し、
前記少なくとも１つの線形成分は、平行移動運動を説明し、
前記第３の成分は、スケールを説明する、
請求項１３に記載の方法。
【請求項１５】
前記少なくとも１つのＮＮは、前記少なくとも１つの角度成分を評価する第１のＦＦＮＮと、前記少なくとも１つの線形成分を評価する第２のＦＦＮＮとを備える、請求項１２に記載の方法。
【請求項１６】
前記少なくとも１つのＮＮは、前記第３の成分を評価する第３のＦＦＮＮを備える、請求項１５に記載の方法。
【請求項１７】
前記少なくとも１つのＮＮは、複数のサンプルノードを備え、各サンプルノードは、訓練姿勢に対応し、前記訓練姿勢のうちの少なくとも１つは、少なくとも１つの角度成分および線形成分を含む、請求項１に記載の方法。
【請求項１８】
前記少なくとも１つのＮＮは、３次元空間内の特殊直交群（ＳＯ（３））内の前記少なくとも１つの角度成分を評価することによって、かつユークリッド距離式を利用して、前記少なくとも１つの線形成分を評価することによって、前記少なくとも１つの線形成分と異なるように前記少なくとも１つの角度成分を評価する、請求項１に記載の方法。
【請求項１９】
前記１つ以上のＮＮを訓練することであって、前記訓練は、
訓練入力データおよび訓練出力データを含む訓練データを受信することであって、前記訓練入力データおよび前記訓練出力データは、１つ以上の訓練姿勢を表し、前記１つ以上の訓練姿勢のうちの少なくとも１つは、入力角度成分、入力線形成分、出力角度成分、および出力線形成分を含む、ことと、
前記１つ以上の姿勢のそれぞれからの前記入力角度成分を入力角度成分群にグループ化することと、
前記１つ以上の姿勢のそれぞれからの前記入力線形成分を入力線形成分群にグループ化することと、
前記訓練入力データを入力として提供し、前記少なくとも１つのＮＮを訓練することであって、前記入力角度成分群は、前記入力線形成分群と異なるように評価され、前記評価は、前記出力角度成分および前記出力線形成分をもたらす、ことと
を含む、こと
をさらに含む、請求項１に記載の方法。
【請求項２０】
システムであって、
少なくとも１つのニューラルネットワーク（ＮＮ）を実行する少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに通信可能に結合されるメモリであって、前記メモリは、命令を記憶しており、前記命令は、前記少なくとも１つのプロセッサによって実行されると、前記少なくとも１つのプロセッサに、
少なくとも１つの角度成分および少なくとも１つの線形成分を備える入力データを受信することと、
前記入力データを、入力として、前記少なくとも１つの線形成分と異なるように前記少なくとも１つの角度成分を評価するように訓練されている少なくとも１つのニューラルネットワーク（ＮＮ）に提供することと、
前記少なくとも１つの角度成分および前記少なくとも１つの線形成分の異なる評価に基づいて前記少なくとも１つのＮＮによって生成される出力データを受信することと
を含む動作を実施させる、メモリと
を備える、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本願は、参照することによってその全体として本明細書に組み込まれる、２０１８年７月２日に出願され、「ＭＥＴＨＯＤＳ  ＡＮＤ  ＳＹＳＴＥＭＳ  ＦＯＲ  ＩＮＴＥＲＰＯＬＡＴＩＯＮ  ＯＦ  ＤＩＳＰＡＲＡＴＥ  ＩＮＰＵＴＳ」と題された、米国特許出願第６２／６９３，２３７号の優先権の利益を主張する。
【０００２】
本開示は、複合現実、結像、および可視化システムを含む、仮想現実および拡張現実に関し、より具体的には、アバタまたは他のデジタルキャラクタ等の仮想キャラクタをアニメーション化するための、リギングシステムおよび方法に関する。
【背景技術】
【０００３】
現代のコンピューティングおよびディスプレイ技術は、いわゆる「仮想現実」、「拡張現実」、および「複合現実」体験のためのシステムの開発を促進しており、デジタル的に再現された画像が、現実であるように見える、またはそのように知覚され得る様式でユーザに提示される。仮想現実（ＶＲ）シナリオは、典型的には、他の実際の実世界の視覚的入力に対する透過性を伴わずに、コンピュータ生成仮想画像情報の提示を伴う。拡張現実（ＡＲ）シナリオは、典型的には、ユーザの周囲の実際の世界の可視化に対する拡張としての仮想画像情報の提示を伴う。複合現実（ＭＲ）は、その中に物理的および仮想オブジェクトが、共存し、リアルタイムで相互作用し得る、拡張現実のタイプである。本明細書に開示されるシステムおよび方法は、ＶＲ、ＡＲ、およびＭＲ技術に関連する種々の課題に対処する。
【発明の概要】
【課題を解決するための手段】
【０００４】
種々の姿勢をとる対象の画像走査が、対象の生きているような３次元（３Ｄ）仮想表現（例えば、アバタまたはデジタルキャラクタ）を作成するために使用されることができる。走査は、典型的には、対象が訓練姿勢をとっている間に行われる（例えば、異なる顔の表情を示している間に、および／または笑顔、眉を顰める、ウインク、挙腕、歩行等の対象のアクションのスナップショットを用いて行われ、各姿勢は、デジタルキャラクタリグパラメータのセットによって表される）。走査は、対象のための仮想アバタをアニメーション化するために使用されることができる。仮想アバタは、単に、デジタルキャラクタの一実施例である。これらの用語は、本開示全体を通して、同義的に使用され得るが、本発明の範囲をいかようにも限定するべきではない。姿勢の各走査は、画像を設定および捕捉するために時間および労力を要求し、データによって表される。リソース制約（例えば、時間、ヒト、モデル等）またはデータ記憶制約に起因して、典型的には、デジタルキャラクタがとり得る、あらゆる可能性として考えられる姿勢を捕捉することは、不可能である。代わりに、全体的姿勢空間（例えば、デジタルキャラクタがとり得る、あらゆる可能性として考えられる姿勢を含有する、体積）を表す、サンプルまたは訓練姿勢のセットが、捕捉され、補間が、正確なキャラクタ姿勢を決定するために使用される。
【０００５】
デジタルキャラクタの姿勢を補間するための方法およびシステムの種々の実施形態は、デジタルキャラクタの姿勢を表す、線形および角度パラメータを分離するステップに基づくことができる。本分離は、補間エンジンのための入力姿勢データが、線形パラメータと角度パラメータとに分離されるときに、開始し得る。いくつかの実施形態では、分離は、補間エンジン内において、線形パラメータが、線形空間のためにより好適な処理（例えば、数学的操作）で操作され、角度パラメータが、角度空間のためにより好適な処理を用いて操作されるとき、継続する。いくつかの実施形態では、異なるタイプ（例えば、鎖骨タイプ、肩タイプ等）のデータのより正確な組み合わせを可能にする、加重が、補間エンジン内で適用されてもよい。補間エンジンは、線形および角度値の両方を表す、複数の独立パラメータを出力してもよい。角度値は、次いで、姿勢の一意の角度値を完全に表すように組み合わせられてもよく、これは、デジタルキャラクタリグをアニメーション化するために使用されてもよい。
【０００６】
方法およびシステムの実施形態は、放射基底関数ニューラルネットワーク（ＲＢＦＮＮ）を使用して、デジタルキャラクタの姿勢を補間してもよい。ＲＢＦＮＮ実装は、ユークリッド距離メトリックに適している、独立線形成分とともに、その距離がＳＯ（３）内で直接計算される、３Ｄ角度の両方から成る、複数の距離メトリックを空間上で使用する。線形および角距離は、別個に計算され、次いで、加重のセットを利用して、単一の全体的距離に組み合わせられ、これは、次いで、補間のために使用される。同様に、本明細書に開示されるＲＢＦＮＮの実施形態は、全ての出力を独立値として規定し、次いで、角度値を完全に定義された角度値のセットに組み合わせることによって、出力を計算する方法を利用する。種々の実施形態では、本明細書に説明される方法およびシステムは、ＲＢＦＮＮ、フィードフォワードニューラルネットワーク（ＦＦＮＮ）、または任意の他の好適なニューラルネットワーク（ＮＮ）等のニューラルネットワークを利用することによって、異なるタイプ（例えば、鎖骨データまたは肩データ）のデータを含む、任意のデータセットを補間するために使用されてもよい。いくつかの実施形態では、補間エンジンの出力は、オーサリングエンジンからリアルタイムエンジンの中に容易に転送され得るようなものである。
【０００７】
いくつかの実施形態では、ＲＢＦＮＮへの入力パラメータを受信するステップを含む、方法が、開示され、入力パラメータは、第１のデータタイプと、第２のデータタイプとを含み、ＲＢＦＮＮは、第１のデータタイプに対応する第１の距離関数と、第２のデータタイプに対応する第２の距離関数とを含む。
【０００８】
いくつかの実施形態では、第１の入力タイプを表す訓練データを第２の入力タイプを表す訓練データから分離するステップと、第１の入力タイプに関する第１の距離関数を定義するステップと、第２の入力タイプに関する第２の距離関数を定義するステップと、第１の入力タイプを表す訓練データおよび第２の入力タイプを表す訓練データをＲＢＦＮＮの中に入力するステップとを含む、方法が、開示され、ＲＢＦＮＮは、第１の距離関数と、第２の距離関数とを含む。
【０００９】
いくつかの実施形態では、ＲＢＦＮＮからの出力として、独立出力値のセットを表すデータを受信するステップと、角度値を表すデータを独立出力値のセットを表すデータから分離するステップと、角度値を表すデータを、ｘ、ｙ、ｚ、およびｗ値を含む、クォータニオン（ｑｕａｔｅｒｎｉｏｎ）ベクトルに組み合わせるステップと、クォータニオンベクトルのセットを回転を駆動するように構成されるシステムに提供するステップとを含む、方法が、開示される。
【００１０】
いくつかの実施形態では、１つ以上のコンピュータと、１つ以上のコンピュータによって実行されると、１つ以上のコンピュータに、姿勢を低次デジタルキャラクタリグから受信するステップと、姿勢を入力としてＲＢＦＮＮに提供するステップと、ＲＢＦＮＮからの出力として、高次デジタルキャラクタリグを表す独立値のデータセットを受信するステップと、独立値のデータセットからの角度値を表すデータサブセットから１つ以上の４成分クォータニオンベクトルを定義するステップとを含む、動作を実施させるように動作可能である、命令を記憶する、１つ以上の記憶デバイスとを備える、システムが、開示される。
【００１１】
いくつかの実施形態では、任意の好適なニューラルネットワーク（ＮＮ）が、角度および線形成分が分離される限り、補間エンジンとして使用されてもよい。いくつかの実施形態では、正規化線形ユニット（ＲｅＬＵ）活性化関数を使用する、単一隠れ層を伴う全結合ネットワーク等のフィードフォワードニューラルネットワーク（ＦＦＮＮ）が、使用されてもよい。いくつかの実施形態では、隠れ層は、残差ニューラルネットワーク（ｒｅｓｎｅｔ）ブロックとして組み込まれてもよい。
【図面の簡単な説明】
【００１２】
本明細書に説明される主題の１つ以上の実装の詳細が、付随の図面および以下の説明に記載される。他の特徴、側面、および利点は、説明、図面、および請求項から明白となるであろう。
【００１３】
【図１】図１は、人物によって視認されるある仮想現実オブジェクトおよびある物理的オブジェクトを伴う、複合現実シナリオの例証を描写する。
【００１４】
【図２】図２は、ウェアラブルシステムの実施例を図式的に図示する。
【００１５】
【図３】図３は、ウェアラブルシステムの例示的コンポーネントを図式的に図示する。
【００１６】
【図４】図４は、画像情報をユーザに出力するためのウェアラブルデバイスの導波管スタックの実施例を図式的に図示する。
【００１７】
【図５】図５は、仮想ユーザインターフェースと相互作用するための方法の実施例のプロセスフロー図である。
【００１８】
【図６Ａ】図６Ａは、アバタ処理およびレンダリングシステムを備え得る、ウェアラブルシステムの別の実施例のブロック図である。
【００１９】
【図６Ｂ】図６Ｂは、アバタ処理およびレンダリングシステムの例示的コンポーネントを図示する。
【００２０】
【図７】図７は、ウェアラブルシステムの中への種々の入力を含む、ウェアラブルシステムの実施例のブロック図である。
【００２１】
【図８】図８は、認識されるオブジェクトに関連して仮想コンテンツをレンダリングする方法の実施例のプロセスフロー図である。
【００２２】
【図９Ａ】図９Ａは、相互に相互作用する複数のウェアラブルシステムを描写する、全体的システム図を図式的に図示する。
【００２３】
【図９Ｂ】図９Ｂは、例示的テレプレゼンスセッションを図示する。
【００２４】
【図１０】図１０は、ウェアラブルシステムのユーザによって知覚されるようなアバタの実施例を図示する。
【００２５】
【図１１】図１１は、いくつかの実施形態による、デジタルキャラクタリグを駆動するプロセスの例示的概要を図示する。
【００２６】
【図１２Ａ】図１２Ａは、いくつかの実施形態による、リグパラメータを伴う例示的低次デジタルキャラクタリグを図示する。
【００２７】
【図１２Ｂ】図１２Ｂは、いくつかの実施形態による、リグパラメータを伴う例示的高次デジタルキャラクタリグを図示する。
【００２８】
【図１３Ａ】図１３Ａは、いくつかの実施形態による、低次デジタルキャラクタの例示的姿勢を図示する。
【００２９】
【図１３Ｂ】図１３Ｂは、いくつかの実施形態による、デジタルキャラクタに関する中立姿勢の実施例を図示する。
【００３０】
【図１４】図１４は、いくつかの実施形態による、ＲＢＦＮＮ内の各サンプルノード内に含有される、種々の成分を図示する。
【００３１】
【図１５】図１５Ａ−１５Ｃは、いくつかの実施形態による、その腕を屈曲させている人物の姿勢のシーケンス内の種々の姿勢を表し得る、３つの潜在的訓練姿勢を図示する。
【００３２】
【図１６】図１６は、いくつかの実施形態による、ＲＢＦＮＮからのデジタルキャラクタの出力姿勢をシステム内で通信される例示的データで補間するための系統図を図示する。
【００３３】
【図１７】図１７は、いくつかの実施形態による、ＲＢＦＮＮを訓練するための例示的プロセスを図示する。
【００３４】
【図１８】図１８は、いくつかの実施形態による、訓練されたＲＢＦＮＮを使用して、デジタルキャラクタに関する新しい姿勢を補間する、例示的プロセスを図示する。
【００３５】
【図１９】図１９は、本発明のいくつかの実施形態による、ＦＦＮＮからのデジタルキャラクタの出力姿勢を補間するための系統図を図示する。
【００３６】
【図２０】図２０は、本発明の少なくともいくつかの実施形態による、ＮＮを訓練するための例示的プロセスを図示する。
【００３７】
【図２１】図２１は、本発明の少なくともいくつかの実施形態による、ＮＮを使用するための例示的プロセスを図示する。
【００３８】
図面全体を通して、参照番号は、参照される要素間の対応を示すために再使用され得る。図面は、本明細書に説明される例示的実施形態を図示するために提供され、本開示の範囲を限定することを意図されない。
【発明を実施するための形態】
【００３９】
概要
仮想アバタは、ＡＲ／ＶＲ／ＭＲ環境内の実際または架空の人物（または創造物または擬人化されたオブジェクト）の仮想表現であってもよい。例えば、その中で２人のＡＲ／ＶＲ／ＭＲユーザが相互に相互作用する、テレプレゼンスセッションの間、視認者は、別のユーザのアバタを視認者の環境内で知覚し、それによって、他のユーザの存在の有形感覚を視認者の環境内に作成することができる。アバタはまた、共有仮想環境内において、ユーザが、相互に相互作用し、ともに物事を行うための方法を提供することができる。例えば、オンラインクラスに出席する生徒は、仮想教室内の他の生徒または教師のアバタを知覚し、彼らと相互作用することができる。別の実施例として、ＡＲ／ＶＲ／ＭＲ環境内でゲームをプレーしているユーザは、ゲーム内の他のプレーヤのアバタを視認し、彼らと相互作用してもよい。
【００４０】
開示されるシステムおよび方法の実施形態は、改良されたアバタおよびウェアラブルシステムのユーザとユーザの環境内のアバタとの間のより現実的相互作用を提供し得る。本開示における実施例は、ヒト形状のアバタをアニメーション化することを説明するが、類似技法はまた、動物、架空の生物、オブジェクト等の他のデジタルキャラクタにも適用されることができる。故に、本明細書に説明される画像走査および整合または安定化技法の対象は、ヒト人物、動物、または他の変形可能オブジェクトまたはキャラクタであることができる。本明細書に説明される実施例の多くでは、対象は、人物（例えば、ヒトのように見えるアバタまたはデジタルキャラクタを作成するため）であるが、これは、例証のためのものであって、開示される方法およびシステムに関する限定ではない。さらに、本明細書に説明される技法の多くは、特に、動物が、動物がとり得る潜在的姿勢の数と比較して、比較的に少数の姿勢のみが、姿勢空間全体を表すために捕捉され得る、限定された注意持続時間を有し得るため、動物対象のために有利であり得る。
【００４１】
人物の説得力のあるデジタルアバタを作成することは、人物の３次元（３Ｄ）肖像を走査し、デジタル幾何学形状を作成することを要求し得る。画像走査は、例えば、対象を、対象を囲繞し、それに向けられている、複数のカメラ（例えば、２つ以上の）を備える、写真測量法捕捉ステージ内に設置することによって行われることができる。カメラは、相互に同期され、ある姿勢をとっている対象の３Ｄ走査に変換され得る、画像を捕捉することができる。
【００４２】
静的バースト（実質的に同時に捕捉された複数の画像）から、単一３Ｄ走査が、生成され得る。しかしながら、移動し、感情を表現し得る、アバタに関して、走査は、基本表現ユニット（例えば、笑顔、眉を顰める等）および事前に定義された静的姿勢を含む、対象が訓練姿勢をとっている間に行われることができ、そのうちのいくつかは、アニメーションシーケンス内の静的姿勢を表し得る（例えば、５つの静的姿勢、すなわち、腕を真っ直ぐに下ろす、腕を４５度挙げる、腕を９０度に真っ直ぐ伸ばす、腕を１３５度挙げる、腕を１８０度挙げる姿勢によって表される、挙腕）。これらの走査は、動いている人物の説得力のあるデジタルアバタを作成するために使用され得る、アニメーションリグ（下記に説明される）を構築するために使用される、訓練セットを作成するために使用されることができる。
【００４３】
本プロセスにおいて遭遇され得る、１つの難点は、デジタルキャラクタの姿勢空間全体を正確に説明するために要求される大量のデータの問題である。大量のデータは、実践可能時間量内に（例えば、いくつかのアプリケーションに関してはリアルタイムで）データを分析するために、実質的コンピューティングリソースを要求し得る。本問題は、いくつかの実施形態では、姿勢空間全体に及ぶが、代表的姿勢を含み、次いで、デジタルキャラクタが中間姿勢をとる必要があるとき、代表的訓練姿勢間を補間する、より小さい姿勢のサブセット（例えば、訓練姿勢またはサンプル姿勢）を利用することによって、解決され得る。ＦＦＮＮまたはＲＢＦＮＮ等のニューラルネットワークが、補間を実行するために利用されてもよい。したがって、種々のそのような実施形態は、有利なこととして、コンピューティング速度を改良する、またはより少ないコンピューティングリソースを利用して、デジタルキャラクタの姿勢を算出し得る。
【００４４】
放射基底関数ニューラルネットワーク（ＲＢＦＮＮ）は、補間するための一般的方法である。ＲＢＦＮＮは、多くの学問分野（地質学、海洋学等）を横断して広く使用されており、したがって、深く理解されており、多くの最適化が、それらをさらにより高速かつより正確に実施させるように開発されている。ＲＢＦＮＮは、高次デジタルキャラクタ姿勢等の複雑系を解決する、比較的に単純な方法である。
【００４５】
しかしながら、ＲＢＦＮＮ等の１つ以上のＮＮを利用して、デジタルキャラクタに関する新しい姿勢を補間することは、その独自の課題のセットを提示する。例えば、ＲＢＦＮＮが、デジタルキャラクタの姿勢を補間するために使用されるとき、ＲＢＦＮＮは、周期的に、姿勢を正しくなく計算するであろう。例えば、ＲＢＦＮＮは、ジッタ（例えば、デジタルキャラクタメッシュ内の単一頂点または頂点のセットの場所または位置のわずかかつ頻繁な変化）、誤った設置における身体部分のポッピング（例えば、デジタルキャラクタメッシュ内の単一頂点または頂点のセットの場所または位置の突然の大変化）、急速にオン／オフするブレンドシェイプ等を導入し得る。言い換えると、ＲＢＦＮＮは、大抵の場合、良好に機能するが、周期的かつ非常に顕著に、正しくない姿勢を出力し、不安定かつ予測不能なシステムの外観を与えるであろう。これらの周期的誤差を修復することは、ヒト介入を要求し、したがって、システムの全体的効率を減少させる。
【００４６】
これらの周期的誤差は、少なくとも部分的に、３つの主要な理由に起因する。第１に、ＲＢＦＮＮは、典型的には、距離をユークリッド距離として計算する。しかしながら、デジタルキャラクタをアニメーション化することは、主として、骨の回転、すなわち、デジタルキャラクタの骨格を平行移動および回転させ、骨格を被覆するメッシュの正しい対応する変形および他の高次パラメータを決定することについてのものである。第２に、ＲＢＦＮＮからの出力は、単一値である。しかしながら、骨格移動からの角度値は、４つの要素（例えば、ｘ、ｙ、ｚ、ｗ）によって表される必要があり得る。第３に、ＲＢＦＮＮは、全ての入力を同一に処理し得る。入力データは、単一デジタルキャラクタを表すが、デジタルキャラクタリグに対していくつかの異なるタイプのデータが存在し得る。開示されるシステムおよび技法の実施形態は、これらの問題に対処することによって、デジタルキャラクタに関する安定しかつ予測可能な中間姿勢を自動的に決定するために使用されることができる。
【００４７】
第１の問題である、線形空間内の角度値の処理は、角度値が線形分析の関数として定義されるであろうため、正しくないＲＢＦＮＮ距離計算につながり得る。ジンバルロック、高速フリップ、符号の変化、および／または単一角回転が複数の方法で現れ得る面積等の挙動が、生じ得る。これは、場所／位置だけではなく、配向も重要であるためである。以下の実施例を検討する。アバタが、その腕がその側面にある状態から開始し、その腕をその正面に真っ直ぐ伸ばすことで終了するという目標を有する。アバタは、その右腕をその側面に下ろし、その掌を平坦にその腰部に付けた状態で、立っている位置から開始する。アバタは、その腕を側面に真っ直ぐに伸ばすように挙げ、次いで、掌を下にして（例えば、掌は、回転全体にわたって地面に向いている）、腕全体をその身体の正面に回転させる。ここで、依然として立っている状態で、アバタは、その左腕をその側面に下ろし、その掌を平坦にその腰部に付けた状態（例えば、同一開始位置）から開始する。アバタは、その腕をその正面に真っ直ぐ挙げる。アバタの両腕が、その正面に真っ直ぐ伸びている（例えば、同一標的終了姿勢を有する）が、アバタの右手は、掌が下に向いているのに対し、アバタの左手は、掌が右に向いていることに気付かれたい。線形空間内の回転（上記に説明されるような腕回転等）を説明する、デジタルキャラクタリグは、角度空間に説明される２つの腕配向対回転のいずれかが１つの配向のみを有し得ることになり得る。
【００４８】
回転は、多くの異なる方法において適切に（例えば、完全に）説明され得る。例えば、オイラー、３次元における特殊直交群（ＳＯ（３）、回転群ＳＯ３としても知られる）、回転行列、軸角度、およびクォータニオン表現は、角度空間のいくつかの実施例である。説明を容易にするために、回転の後続議論は、ＳＯ（３）空間において説明されるが、任意の好適な方法が、使用されてもよい。ＳＯ（３）空間は、４つの値、すなわち、ｘ、ｙ、およびｚによって定義された軸と、軸を中心とする回転ｗとによって定義される。軸は、軸を中心とする回転（例えば、「ｗ」）を伴って、空間内の任意の場所に位置し、したがって、ＳＯ（３）空間内のデジタルキャラクタの全ての変換または操作に関する一意または単一の値の解を可能にし得る。
【００４９】
第２の問題である、角度値に関する単一値出力は、明確に定義されておらず、単一所望の最終姿勢に関して計算される、いくつかの解／出力／配向を有し得る。本問題を解決するために、４つの独立値が、デジタルキャラクタリグを移動させるために必要とされる出力回転毎に計算され得る。４つの独立出力値は、次いで、組み合わせ値（ｘ、ｙ、ｚ、ｗ）に組み合わせられ、これは、直接、デジタルキャラクタリグに回転としてフィードされることができる。
【００５０】
第３の問題である、異なるタイプの回転パラメータの組み合わせは、より大きい運動と比較して、より小さい運動が無視可能となる結果をもたらし得る。異なるタイプの回転パラメータは、鎖骨タイプ、肩関節タイプ、指骨タイプ、中足骨タイプ等であり得る。例示的パラメータタイプのリストは、単に、例証のためのものであって、他のタイプまたは群も、使用され得る。各群は、１つのリギング骨または１つを上回るリギング骨を備え得る。各群は、デジタルキャラクタの全体的移動へのその相対的寄与を表す、加重を割り当てられ、個々のパラメータの重要性の平衡を可能にする。例えば、鎖骨は、その小移動が肩の比較的に大移動と比較して小さく見えないように、より加重され得る。回転間の加重の平衡は、デジタルキャラクタの移動への比較的により小さい影響を有する場合でも、リグの全ての部分が検討されることを確実にすることによって、平滑補間のために必要とされるサンプルの全体的数を低減させることができる。これらの加重は、ユーザ定義される、または少なくとも部分的に、ユーザ定義されてもよい。加重は、いくつかの異なるリグを横断して再使用される、またはリグが使用されるであろう方法またはキャラクタのタイプに応じて、必要に応じて変化されてもよい。例えば、加重の正確に同一のセットが、全てのヒトアバタのために使用されてもよいが、種々の動物または擬人化されたオブジェクトのために若干調節されてもよい。
【００５１】
本明細書に説明されるシステムおよび方法の付加的利点は、複雑系を、オーサリング（例えば、直接コンテンツ作成（ＤＣＣ））アプリケーションからリアルタイムエンジンの中に転送され得る、直列化可能データに抽象化することである。ＮＮの訓練段階の間、特定のパラメータのセットが、デジタルキャラクタの姿勢を説明するために使用される。線形出力は、単一値によって定義され、回転出力は、４つの値（例えば、ＳＯ（３）空間）のセットによって定義される。同一リグ設定が、全てのキャラクタを横断して使用され、したがって、広範囲のデジタルキャラクタを駆動するために使用され得る、標準化された出力セットを作成し得る。典型的リギングシステムが、デジタルキャラクタリグを構築するために使用される、その独自の一意のプログラムおよびシステムのセットを備える、オーサリングアプリケーションにおいて構築される。リグが、例えば、リアルタイムランエンジンに転送される必要がある場合、ＤＣＣアプリケーション機能性のうちのいくつかは、変換中に失われ、転送されたリグは、元々のものと正確に同一ではなく実施される。
【００５２】
ウェアラブルシステムの３Ｄディスプレイの実施例
ウェアラブルシステム（本明細書では、拡張現実（ＡＲ）システムとも称される）は、２Ｄまたは３Ｄ仮想画像をユーザに提示するために構成されることができる。画像は、組み合わせまたは同等物における、静止画像、ビデオのフレーム、またはビデオであってもよい。ウェアラブルシステムの少なくとも一部は、ユーザ相互作用のために、単独で、または組み合わせて、ＶＲ、ＡＲ、またはＭＲ環境を提示し得る、ウェアラブルデバイス上に実装されることができる。ウェアラブルデバイスは、ＡＲデバイス（ＡＲＤ）と同義的に使用されることができる。さらに、本開示の目的のために、用語「ＡＲ」は、用語「ＭＲ」と同義的に使用される。
【００５３】
図１は、人物によって視認される、ある仮想現実オブジェクトおよびある物理的オブジェクトを伴う、複合現実シナリオの例証を描写する。図１では、ＭＲ場面１００が、描写され、ＭＲ技術のユーザには、人々、木々、背景における建物、およびコンクリートプラットフォーム１２０を特徴とする、実世界公園状設定１１０が見える。これらのアイテムに加え、ＭＲ技術のユーザはまた、実世界プラットフォーム１２０上に立っているロボット像１３０と、マルハナバチの擬人化のように見える、飛んでいる漫画のようなアバタキャラクタ１４０とが「見える」と知覚するが、これらの要素は、実世界には存在しない。
【００５４】
３Ｄディスプレイが、真の深度感覚、より具体的には、表面深度のシミュレートされた感覚を生成するために、ディスプレイの視野内の点毎に、その仮想深度に対応する遠近調節応答を生成することが望ましくあり得る。ディスプレイ点に対する遠近調節応答が、収束および立体視の両眼深度キューによって決定されるようなその点の仮想深度に対応しない場合、ヒトの眼は、遠近調節衝突を体験し、不安定な結像、有害な眼精疲労、頭痛、および遠近調節情報の不在下では、表面深度のほぼ完全な欠如をもたらし得る。
【００５５】
ＶＲ、ＡＲ、およびＭＲ体験は、複数の深度平面に対応する画像が視認者に提供されるディスプレイを有する、ディスプレイシステムによって提供されることができる。画像は、深度平面毎に異なってもよく（例えば、場面またはオブジェクトの若干異なる提示を提供する）、視認者の眼によって別個に集束され、それによって、異なる深度平面上に位置する場面に関する異なる画像特徴に合焦させるために要求される眼の遠近調節に基づいて、または合焦からずれている異なる深度平面上の異なる画像特徴を観察することに基づいて、ユーザに深度キューを提供することに役立ち得る。本明細書のいずれかに議論されるように、そのような深度キューは、信用できる深度の知覚を提供する。
【００５６】
図２は、ウェアラブルシステム２００の実施例を図示し、これは、ＡＲ／ＶＲ／ＭＲ場面を提供するように構成されることができる。ウェアラブルシステム２００はまた、ＡＲシステム２００と称され得る。ウェアラブルシステム２００は、ディスプレイ２２０と、ディスプレイ２２０の機能をサポートするための種々の機械的および電子的モジュールおよびシステムとを含む。ディスプレイ２２０は、ユーザ、装着者、または視認者２１０によって装着可能である、フレーム２３０に結合されてもよい。ディスプレイ２２０は、ユーザ２１０の眼の正面に位置付けられることができる。ディスプレイ２２０は、ＡＲ／ＶＲ／ＭＲコンテンツをユーザに提示するができる。ディスプレイ２２０は、ユーザの頭部上に装着される、頭部搭載型ディスプレイ（ＨＭＤ）を備えることができる。
【００５７】
いくつかの実施形態では、スピーカ２４０が、フレーム２３０に結合され、ユーザの外耳道に隣接して位置付けられる（いくつかの実施形態では、示されない別のスピーカが、ユーザの他方の外耳道に隣接して位置付けられ、ステレオ／成形可能音制御を提供する）。ディスプレイ２２０は、環境からオーディオストリームを検出し、周囲音を捕捉するために、オーディオセンサ（例えば、マイクロホン）２３２を含むことができる。いくつかの実施形態では、示されない１つ以上の他のオーディオセンサが、ステレオ音受信を提供するために位置付けられる。ステレオ音受信は、音源の場所を決定するために使用されることができる。ウェアラブルシステム２００は、音声または発話認識をオーディオストリームに実施することができる。
【００５８】
ウェアラブルシステム２００は、ユーザの周囲の環境内の世界を観察する、外向きに向いた結像システム４６４（図４に示される）を含むことができる。ウェアラブルシステム２００はまた、ユーザの眼移動を追跡し得る、内向きに向いた結像システム４６２（図４に示される）を含むことができる。内向きに向いた結像システムは、一方の眼の移動または両方の眼の移動のいずれかを追跡することができる。内向きに向いた結像システム４６２は、フレーム２３０に取り付けられてもよく、内向きに向いた結像システムによって入手された画像情報を処理し、例えば、ユーザ２１０の眼の瞳孔直径または配向、眼の移動、または眼姿勢を決定し得る、処理モジュール２６０または２７０と電気通信してもよい。内向きに向いた結像システム４６２は、１つ以上のカメラを含んでもよい。例えば、少なくとも１つのカメラは、各眼を結像するために使用されてもよい。カメラによって入手された画像は、眼毎に、別個に、瞳孔サイズまたは眼姿勢を決定し、それによって、各眼への画像情報の提示がその眼に対して動的に調整されることを可能にするために使用されてもよい。
【００５９】
実施例として、ウェアラブルシステム２００は、外向きに向いた結像システム４６４または内向きに向いた結像システム４６２を使用して、ユーザの姿勢の画像を入手することができる。画像は、静止画像、ビデオのフレーム、またはビデオであってもよい。
【００６０】
ディスプレイ２２０は、有線導線または無線接続等によって、フレーム２３０に固定して取り付けられる、ユーザによって装着されるヘルメットまたは帽子に固定して取り付けられる、ヘッドホンに内蔵される、または別様にユーザ２１０に除去可能に取り付けられる（例えば、リュック式構成において、ベルト結合式構成において）等、種々の構成において搭載され得る、ローカルデータ処理モジュール２６０に動作可能に結合されることができる（２５０）。
【００６１】
ローカル処理およびデータモジュール２６０は、ハードウェアプロセッサおよび不揮発性メモリ（例えば、フラッシュメモリ）等のデジタルメモリを備えてもよく、その両方とも、データの処理、キャッシュ、および記憶を補助するために利用され得る。データは、（ａ）画像捕捉デバイス（例えば、内向きに向いた結像システムおよび／または外向きに向いた結像システム内のカメラ）、オーディオセンサ（例えば、マイクロホン）、慣性測定ユニット（ＩＭＵ）、加速度計、コンパス、全地球測位システム（ＧＰＳ）ユニット、無線デバイス、またはジャイロスコープ等の（例えば、フレーム２３０に動作可能に結合される、または別様にユーザ２１０に取り付けられ得る）センサから捕捉されるデータ、または、（ｂ）場合によっては処理または読出後にディスプレイ２２０への通過のために、遠隔処理モジュール２７０または遠隔データリポジトリ２８０を使用して入手または処理されるデータを含んでもよい。ローカル処理およびデータモジュール２６０は、これらの遠隔モジュールがローカル処理およびデータモジュール２６０へのリソースとして利用可能であるように、有線または無線通信リンク等を介して、通信リンク２６２または２６４を遠隔処理モジュール２７０または遠隔データリポジトリ２８０に動作可能に結合されてもよい。加えて、遠隔処理モジュール２８０および遠隔データリポジトリ２８０は、相互に動作可能に結合されてもよい。
【００６２】
いくつかの実施形態では、遠隔処理モジュール２７０は、データまたは画像情報を分析および処理するように構成される、１つまたはそれを上回るプロセッサを備えてもよい。いくつかの実施形態では、遠隔データリポジトリ２８０は、デジタルデータ記憶設備を備え得、これは、インターネットまたは「クラウド」リソース構成における他のネットワーキング構成を通して利用可能であってもよい。いくつかの実施形態では、全てのデータが、記憶され、全ての算出が、ローカル処理およびデータモジュールにおいて実施され、遠隔モジュールからの完全に自律的な使用を可能にする。
【００６３】
ウェアラブルシステムの例示的コンポーネント
図３は、ウェアラブルシステムの例示的コンポーネントを図式的に図示する。図３は、ウェアラブルシステム２００を示し、これは、ディスプレイ２２０と、フレーム２３０とを含むことができる。引き伸ばし図２０２は、ウェアラブルシステム２００の種々のコンポーネントを図式的に図示する。ある実装では、図３に図示されるコンポーネントのうちの１つ以上のものは、ディスプレイ２２０の一部であることができる。種々のコンポーネントは、単独で、または組み合わせて、ウェアラブルシステム２００のユーザまたはユーザの環境と関連付けられた種々のデータ（例えば、聴覚的または視覚的データ等）を収集することができる。他の実施形態は、ウェアラブルシステムが使用される用途に応じて、付加的またはより少ないコンポーネントを有してもよいことを理解されたい。なお、図３は、種々のコンポーネントのうちのいくつかと、ウェアラブルシステムを通して収集、分析、および記憶され得る、データのタイプの基本概念とを提供する。
【００６４】
図３は、例示的ウェアラブルシステム２００を示し、これは、ディスプレイ２２０を含むことができる。ディスプレイ２２０は、ユーザの頭部、またはフレーム２３０に対応する、筐体またはフレーム２３０に搭載され得る、ディスプレイレンズ２２６を備えることができる。ディスプレイレンズ２２６は、筐体２３０によって、ユーザの眼３０２、３０４の正面に位置付けられる、１つ以上の透明ミラーまたは回折光学要素を備えてもよく、投影された光３３８を眼３０２、３０４の中に指向させ、ビーム成形を促進しながら、また、ローカル環境からの少なくとも一部の光の透過を可能にするように構成されてもよい。投影された光ビーム３３８の波面は、投影された光の所望の焦点距離と一致するように発散し得る。図示されるように、２つの広視野マシンビジョンカメラ３１６（世界カメラとも称される）が、筐体２３０に結合され、ユーザの周囲の環境を結像することができる。これらのカメラ３１６は、二重捕捉式可視光／非可視（例えば、赤外線）光カメラであることができる。カメラ３１６は、図４に示される外向きに向いた結像システム４６４の一部であってもよい。世界カメラ３１６によって入手された画像は、姿勢プロセッサ３３６によって処理されることができる。例えば、姿勢プロセッサ３３６は、１つ以上のオブジェクト認識装置７０８（例えば、図７に示される）を実装し、ユーザまたはユーザの環境内の別の人物の姿勢を識別する、またはユーザの環境内の物理的オブジェクトを識別することができる。
【００６５】
図３を継続して参照すると、光３３８を眼３０２、３０４の中に指向するように構成される、ディスプレイ光学系およびレンズを伴う、一対の光プロジェクタモジュールが、示される。描写される図はまた、ユーザの眼３０２、３０４を追跡し、レンダリングおよびユーザ入力をサポート可能であるように構成される、赤外線光（発光ダイオード「ＬＥＤ」等）とペアリングされる、２つの小型赤外線カメラ３２４を示す。カメラ３２４は、図４に示される、内向きに向いた結像システム４６２の一部であってもよい。ウェアラブルシステム２００はさらに、センサアセンブリ３３９を特徴とすることができ、これは、Ｘ、Ｙ、およびＺ軸加速度計能力および磁気コンパスおよびＸ、Ｙ、およびＺ軸ジャイロスコープ能力を備え、好ましくは、２００Ｈｚ等の比較的に高周波数でデータを提供し得る。センサアセンブリ３３９は、図２Ａを参照して説明される、ＩＭＵの一部であってもよい。描写されるシステム２００はまた、ＡＳＩＣ（特定用途向け集積回路）、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）、またはＡＲＭプロセッサ（高度縮小命令セット機械）等の頭部姿勢プロセッサ３３６を備えることができ、これは、リアルタイムまたは近リアルタイムユーザ頭部姿勢を捕捉デバイス３１６から出力された広視野画像情報から計算するように構成されてもよい。頭部姿勢プロセッサ３３６は、ハードウェアプロセッサであることができ、図２Ａに示されるローカル処理およびデータモジュール２６０の一部として実装されることができる。
【００６６】
ウェアラブルシステムはまた、１つ以上の深度センサ２３４を含むことができる。深度センサ２３４は、環境内のオブジェクトとウェアラブルデバイスとの間の距離を測定するように構成されることができる。深度センサ２３４は、レーザスキャナ（例えば、ライダ）、超音波深度センサ、または深度感知カメラを含んでもよい。カメラ３１６が深度感知能力を有する、ある実装では、カメラ３１６はまた、深度センサ２３４と見なされ得る。
【００６７】
また、示されるのは、デジタルまたはアナログ処理を実行し、姿勢をセンサアセンブリ３３９からのジャイロスコープ、コンパス、または加速度計データから導出するように構成される、プロセッサ３３２である。プロセッサ３３２は、図２に示される、ローカル処理およびデータモジュール２６０の一部であってもよい。ウェアラブルシステム２００はまた、図３に示されるように、例えば、ＧＰＳ３３７（全地球測位システム）等の測位システムを含み、姿勢および測位分析を補助することができる。加えて、ＧＰＳはさらに、ユーザの環境についての遠隔ベース（例えば、クラウドベース）の情報を提供してもよい。本情報は、ユーザの環境内のオブジェクトまたは情報を認識するために使用されてもよい。
【００６８】
ウェアラブルシステムは、ＧＰＳ３３７および遠隔コンピューティングシステム（例えば、遠隔処理モジュール２７０、別のユーザのＡＲＤ等）によって入手されたデータを組み合わせてもよく、これは、ユーザの環境についてのより多くの情報を提供することができる。一実施例として、ウェアラブルシステムは、ＧＰＳデータに基づいて、ユーザの場所を決定し、ユーザの場所と関連付けられた仮想オブジェクトを含む、世界マップを読み出すことができる（例えば、遠隔処理モジュール２７０と通信することによって）。別の実施例として、ウェアラブルシステム２００は、世界カメラ３１６（図４に示される外向きに向いた結像システム４６４の一部であってもよい）を使用して、環境を監視することができる。世界カメラ３１６によって入手された画像に基づいて、ウェアラブルシステム２００は、環境内のオブジェクトを検出することができる（例えば、図７に示される１つ以上のオブジェクト認識装置７０８を使用することによって）。ウェアラブルシステムはさらに、ＧＰＳ３３７によって入手されたデータを使用して、キャラクタを解釈することができる。
【００６９】
ウェアラブルシステム２００はまた、レンダリングエンジン３３４を備えてもよく、これは、世界のユーザのビューのために、ユーザにローカルなレンダリング情報を提供し、スキャナの動作およびユーザの眼の中への結像を促進するように構成されることができる。レンダリングエンジン３３４は、ハードウェアプロセッサ（例えば、中央処理ユニットまたはグラフィック処理ユニット等）によって実装されてもよい。いくつかの実施形態では、レンダリングエンジンは、ローカル処理およびデータモジュール２６０の一部である。レンダリングエンジン３３４は、ウェアラブルシステム２００の他のコンポーネントに通信可能に結合されることができる（例えば、有線または無線リンクを介して）。例えば、レンダリングエンジン３３４は、通信リンク２７４を介して、眼カメラ３２４に結合され、通信リンク２７２を介して、投影サブシステム３１８（網膜走査ディスプレイに類似する様式において、走査レーザ配列を介して、光をユーザの眼３０２、３０４の中に投影することができる）に結合されることができる。レンダリングエンジン３３４はまた、それぞれ、リンク２７６および２９４を介して、例えば、センサ姿勢プロセッサ３３２および画像姿勢プロセッサ３３６等の他の処理ユニットと通信することができる。
【００７０】
カメラ３２４（例えば、小型赤外線カメラ）は、眼姿勢を追跡し、レンダリングおよびユーザ入力をサポートするために利用されてもよい。いくつかの例示的眼姿勢は、ユーザが見ている場所または合焦させている深度（眼の輻輳・開散運動（ｖｅｒｇｅｎｃｅ）を用いて推定されてもよい）を含んでもよい。ＧＰＳ３３７、ジャイロスコープ、コンパス、および加速度計３３９は、大まかなまたは高速姿勢推定を提供するために利用されてもよい。カメラ３１６のうちの１つ以上のものは、画像および姿勢を入手することができ、これは、関連付けられたクラウドコンピューティングリソースからのデータと併せて、ローカル環境をマッピングし、ユーザビューを他者と共有するために利用されてもよい。
【００７１】
図３に描写される例示的コンポーネントは、例証目的のためだけのものである。複数のセンサおよび他の機能モジュールが、例証および説明の容易性のために、ともに示される。いくつかの実施形態は、これらのセンサまたはモジュールの１つのみまたはサブセットを含んでもよい。さらに、これらのコンポーネントの場所は、図３に描写される位置に限定されない。いくつかのコンポーネントは、ベルト搭載型コンポーネント、ハンドヘルドコンポーネント、またはヘルメットコンポーネント等、他のコンポーネント内に搭載または格納されてもよい。一実施例として、画像姿勢プロセッサ３３６、センサ姿勢プロセッサ３３２、およびレンダリングエンジン３３４は、ベルトパック内に位置付けられ、超広帯域、Ｗｉ−Ｆｉ、Ｂｌｕｅｔｏｏｔｈ（登録商標）等の無線通信を介して、または有線通信を介して、ウェアラブルシステムの他のコンポーネントと通信するように構成されてもよい。描写される筐体２３０は、好ましくは、ユーザによって頭部搭載可能かつ装着可能である。しかしながら、ウェアラブルシステム２００のいくつかのコンポーネントは、ユーザの身体の他の部分に装着されてもよい。例えば、スピーカ２４０が、ユーザの耳の中に挿入され、音をユーザに提供してもよい。
【００７２】
ユーザの眼３０２、３０４の中への光３３８の投影に関して、いくつかの実施形態では、カメラ３２４は、一般に、眼の焦点の位置または「焦点深度」と一致する、ユーザの眼の中心が幾何学的に輻輳・開散される場所を測定するために利用されてもよい。眼が輻輳・開散する全ての点の３次元表面は、「単視軌跡」と称され得る。焦点距離は、有限数の深度をとり得る、または無限に変動し得る。輻輳・開散運動距離から投影された光は、対象の眼３０２、３０４に集束されるように現れる一方、輻輳・開散運動距離の正面または背後の光は、ぼかされる。本開示のウェアラブルシステムおよび他のディスプレイシステムの実施例はまた、米国特許公開第２０１６／０２７０６５６号（参照することによってその全体として本明細書に組み込まれる）に説明される。
【００７３】
ヒト視覚系は、複雑であって、深度の現実的知覚を提供することは、困難である。オブジェクトの視認者は、輻輳・開散運動移動と遠近調節（ａｃｃｏｍｍｏｄａｔｉｏｎ）の組み合わせに起因して、オブジェクトを３次元として知覚し得る。相互に対する２つの眼の輻輳・開散運動移動（例えば、瞳孔が、相互に向かって、またはそこから離れるように移動し、眼の視線を収束させ、オブジェクトを固視するような瞳孔の回転）は、眼の水晶体の合焦（または「遠近調節」）と緊密に関連付けられる。通常条件下、焦点を１つのオブジェクトから異なる距離における別のオブジェクトに変化させるための眼のレンズの焦点の変化または眼の遠近調節は、「遠近調節−輻輳・開散運動反射」として知られる関係下、輻輳・開散運動の整合変化を自動的に同一距離に生じさせるであろう。同様に、輻輳・開散運動の変化は、通常条件下、遠近調節の整合変化を誘起するであろう。遠近調節と輻輳・開散運動との間のより良好な整合を提供するディスプレイシステムは、３次元画像のより現実的かつ快適なシミュレーションを形成し得る。
【００７４】
さらに、約０．７ミリメートル未満のビーム直径を伴う、空間的にコヒーレントな光は、眼が合焦している場所にかかわらず、ヒトの眼によって正しく解決されることができる。したがって、適切な焦点深度の錯覚を作成するために、眼の輻輳・開散運動が、カメラ３２４を用いて追跡されてもよく、レンダリングエンジン３３４および投影サブシステム３１８は、輻輳・開散運動上またはそれに近接する全てのオブジェクトを合焦させてレンダリングし、全ての他のオブジェクトを可変分解能度でレンダリングするために利用されてもよい。好ましくは、システム２２０は、ユーザに、約６０フレーム／秒以上のフレームレートでレンダリングする。上記に説明されるように、好ましくは、カメラ３２４は、眼追跡のために利用されてもよく、ソフトウェアは、輻輳・開散運動幾何学形状だけではなく、また、ユーザ入力としての役割を果たすための焦点場所キューも取り上げるように構成されてもよい。好ましくは、そのようなディスプレイシステムは、昼間または夜間の使用のために好適な明度およびコントラストを用いて構成される。
【００７５】
いくつかの実施形態では、ディスプレイシステムは、好ましくは、視覚的オブジェクト整合のために約２０ミリ秒未満の待ち時間、約０．１度未満の角度整合、および約１弧分の分解能を有し、これは、理論によって限定されるわけではないが、ヒトの眼のほぼ限界であると考えられる。ディスプレイシステム２２０は、位置特定システムと統合されてもよく、これは、ＧＰＳ要素、光学追跡、コンパス、加速度計、または他のデータソースを伴い、位置および姿勢決定を補助し得る。位置特定情報は、関連世界のユーザのビュー内における正確なレンダリングを促進するために利用されてもよい（例えば、そのような情報は、眼鏡が実世界に対する場所を把握することを促進するであろう）。
【００７６】
いくつかの実施形態では、ウェアラブルシステム２００は、ユーザの眼の遠近調節に基づいて、１つ以上の仮想画像を表示するように構成される。ユーザに画像が投影されている場所に合焦させるように強制する、従来の３Ｄディスプレイアプローチと異なり、いくつかの実施形態では、ウェアラブルシステムは、投影された仮想コンテンツの焦点を自動的に変動させ、ユーザに提示される１つ以上の画像のより快適な視認を可能にするように構成される。例えば、ユーザの眼が、１ｍの現在の焦点を有する場合、画像は、ユーザの焦点と一致するように投影されてもよい。ユーザが、焦点を３ｍに偏移させる場合、画像は、新しい焦点と一致するように投影される。したがって、ユーザに所定の焦点を強制するのではなく、いくつかの実施形態のウェアラブルシステム２００は、ユーザの眼がより自然な様式において機能することを可能にする。
【００７７】
そのようなウェアラブルシステム２００は、仮想現実デバイスに対して典型的に観察される、眼精疲労、頭痛、および他の生理学的症状の発生率を排除または低減させ得る。これを達成するために、ウェアラブルシステム２００の種々の実施形態は、１つ以上の可変焦点要素（ＶＦＥ）を通して、仮想画像を可変焦点距離に投影するように構成される。１つ以上の実施形態では、３Ｄ知覚は、画像をユーザから固定された焦点面に投影する、多平面焦点システムを通して達成されてもよい。他の実施形態は、可変平面焦点を採用し、焦点面は、ユーザの焦点の現在の状態と一致するように、ｚ−方向に往復して移動される。
【００７８】
多平面焦点システムおよび可変平面焦点システムの両方において、ウェアラブルシステム２００は、眼追跡を採用し、ユーザの眼の輻輳・開散運動を決定し、ユーザの現在の焦点を決定し、仮想画像を決定された焦点に投影してもよい。他の実施形態では、ウェアラブルシステム２００は、ファイバスキャナまたは他の光生成源を通して、網膜を横断して、可変焦点の光ビームをラスタパターンで可変に投影する、光変調器を備える。したがって、画像を可変焦点距離に投影するウェアラブルシステム２００のディスプレイの能力は、ユーザがオブジェクトを３Ｄにおいて視認するための遠近調節を容易にするだけではなく、また、米国特許公開第２０１６／０２７０６５６号（参照することによってその全体として本明細書に組み込まれる）にさらに説明されるように、ユーザの眼球異常を補償するために使用されてもよい。いくつかの他の実施形態では、空間光変調器は、種々の光学コンポーネントを通して、画像をユーザに投影してもよい。例えば、以下にさらに説明されるように、空間光変調器は、画像を１つ以上の導波管上に投影してもよく、これは、次いで、画像をユーザに伝送する。
【００７９】
導波管スタックアセンブリ
図４は、画像情報をユーザに出力するための導波管スタックの実施例を図示する。ウェアラブルシステム４００は、複数の導波管４３２ｂ、４３４ｂ、４３６ｂ、４３８ｂ、４４００ｂを使用して、３次元知覚を眼／脳に提供するために利用され得る、導波管のスタックまたはスタックされた導波管アセンブリ４８０を含む。いくつかの実施形態では、ウェアラブルシステム４００は、図２のウェアラブルシステム２００に対応してもよく、図４は、そのウェアラブルシステム２００のいくつかの部分をより詳細に概略的に示す。例えば、いくつかの実施形態では、導波管アセンブリ４８０は、図２のディスプレイ２２０の中に統合されてもよい。
【００８０】
図４を継続して参照すると、導波管アセンブリ４８０はまた、複数の特徴４５８、４５６、４５４、４５２を導波管間に含んでもよい。いくつかの実施形態では、特徴４５８、４５６、４５４、４５２は、レンズであってもよい。他の実施形態では、特徴４５８、４５６、４５４、４５２は、レンズではなくてもよい。むしろ、それらは、単に、スペーサであってもよい（例えば、空気間隙を形成するためのクラッディング層または構造）。
【００８１】
導波管４３２ｂ、４３４ｂ、４３６ｂ、４３８ｂ、４４０ｂまたは複数のレンズ４５８、４５６、４５４、４５２は、種々のレベルの波面曲率または光線発散を用いて、画像情報を眼に送信するように構成されてもよい。各導波管レベルは、特定の深度平面と関連付けられてもよく、その深度平面に対応する画像情報を出力するように構成されてもよい。画像投入デバイス４２０、４２２、４２４、４２６、４２８は、それぞれ、眼４１０に向かって出力するために、各個別の導波管を横断して入射光を分散させるように構成され得る、導波管４４０ｂ、４３８ｂ、４３６ｂ、４３４ｂ、４３２ｂの中に画像情報を投入するために利用されてもよい。光は、画像投入デバイス４２０、４２２、４２４、４２６、４２８の出力表面から出射し、導波管４４０ｂ、４３８ｂ、４３６ｂ、４３４ｂ、４３２ｂの対応する入力縁の中に投入される。いくつかの実施形態では、光の単一ビーム（例えば、コリメートされたビーム）が、各導波管の中に投入され、特定の導波管と関連付けられた深度平面に対応する特定の角度（および発散量）において眼４１０に向かって指向される、サンプル射出瞳ビームの場全体を出力してもよい。
【００８２】
いくつかの実施形態では、画像投入デバイス４２０、４２２、４２４、４２６、４２８は、それぞれ、それぞれの対応する導波管４４０ｂ、４３８ｂ、４３６ｂ、４３４ｂ、４３２ｂの中への投入のための画像情報を生成する、離散ディスプレイである。いくつかの他の実施形態では、画像投入デバイス４２０、４２２、４２４、４２６、４２８は、例えば、画像情報を１つ以上の光学導管（光ファイバケーブル等）を介して、画像投入デバイス４２０、４２２、４２４、４２６、４２８のそれぞれに送り得る、単一の多重化されたディスプレイの出力端である。
【００８３】
コントローラ４６０が、ディスプレイおよび画像投入デバイス４２０、４２２、４２４、４２６、４２８の動作を制御する。コントローラ４６０は、導波管４４０ｂ、４３８ｂ、４３６ｂ、４３４ｂ、４３２ｂへの画像情報のタイミングおよび提供を調整する、プログラミング（例えば、非一過性コンピュータ可読媒体内の命令）を含む。いくつかの実施形態では、コントローラ４６０は、単一一体型デバイスまたは有線または無線通信チャネルによって接続される分散型システムであってもよい。コントローラ４６０は、いくつかの実施形態では、処理モジュール２６０または２７０（図２に図示される）の一部であってもよい。
【００８４】
導波管４４０ｂ、４３８ｂ、４３６ｂ、４３４ｂ、４３２ｂは、全内部反射（ＴＩＲ）によって各個別の導波管内で光を伝搬するように構成されてもよい。導波管４４０ｂ、４３８ｂ、４３６ｂ、４３４ｂ、４３２ｂはそれぞれ、主要上部表面および主要底部表面およびそれらの主要上部表面と主要底部表面との間に延在する縁を伴う、平面である、または別の形状（例えば、湾曲）を有してもよい。図示される構成では、導波管４４０ｂ、４３８ｂ、４３６ｂ、４３４ｂ、４３２ｂはそれぞれ、光を回折または別様に再指向させ、各個別の導波管内で伝搬させることによって、光を導波管から外部結合するように構成される、光学要素４４０ａ、４３８ａ、４３６ａ、４３４ａ、４３２ａを含んでもよい。外部結合された光は、例えば、導波管によって、導波管内で伝搬する光が回折格子等の光再指向要素に衝打する場所において出力される。光学要素（４４０ａ、４３８ａ、４３６ａ、４３４ａ、４３２ａ）は、例えば、反射または回折光学特徴であってもよい。説明を容易にし、図面を明確性にするために、導波管４４０ｂ、４３８ｂ、４３６ｂ、４３４ｂ、４３２ｂの底部主要表面に配置されて図示されるが、いくつかの実施形態では、光学要素４４０ａ、４３８ａ、４３６ａ、４３４ａ、４３２ａは、上部主要表面または底部主要表面に配置されてもよい、または導波管４４０ｂ、４３８ｂ、４３６ｂ、４３４ｂ、４３２ｂの容積内に直接配置されてもよい。いくつかの実施形態では、光学要素４４０ａ、４３８ａ、４３６ａ、４３４ａ、４３２ａは、透明基板に取り付けられ、導波管４４０ｂ、４３８ｂ、４３６ｂ、４３４ｂ、４３２ｂを形成する、材料の層内に形成されてもよい。いくつかの他の実施形態では、導波管４４０ｂ、４３８ｂ、４３６ｂ、４３４ｂ、４３２ｂは、モノリシック材料部品であってもよく、光学要素４４０ａ、４３８ａ、４３６ａ、４３４ａ、４３２ａは、その材料部品の表面上および／または内部に形成されてもよい。
【００８５】
図４を継続して参照すると、本明細書に議論されるように、いくつかの実施形態では、各導波管４４０ｂ、４３８ｂ、４３６ｂ、４３４ｂ、４３２ｂは、光を出力し、特定の深度平面に対応する画像を形成するように構成される。例えば、眼の最近傍の導波管４３２ｂは、そのような導波管４３２ｂの中に投入されるにつれて、コリメートされた光を眼４１０に送達するように構成されてもよい。コリメートされた光は、光学無限遠焦点面を表し得る。次の上方の導波管４３４ｂは、眼４１０に到達し得る前に、第１のレンズ４５２（例えば、負のレンズ）を通して通過する、コリメートされた光を送出するように構成されてもよい。第１のレンズ４５２は、眼／脳が、その次の上方の導波管４３４ｂから生じる光を光学無限遠から眼４１０に向かって内向きにより近い第１の焦点面から生じるように解釈するように、若干の凸面波面曲率を生成するように構成されてもよい。同様に、第３の上方の導波管４３６ｂは、眼４１０に到達する前に、その出力光を第１のレンズ４５２および第２のレンズ４５４の両方を通して通過させる。第１および第２のレンズ４５２および４５４の組み合わせられた屈折力は、眼／脳が、第３の導波管４３６ｂから生じる光が次の上方の導波管４３４ｂからの光であったよりも光学無限遠から人物に向かって内向きにさらに近い第２の焦点面から生じるように解釈するように、別の漸増量の波面曲率を生成するように構成されてもよい。
【００８６】
他の導波管層（例えば、導波管４３８ｂ、４４０ｂ）およびレンズ（例えば、レンズ４５６、４５８）も同様に構成され、スタック内の最高導波管４４０ｂを用いて、人物に最も近い焦点面を表す集約焦点力のために、その出力をそれと眼との間のレンズの全てを通して送出する。スタックされた導波管アセンブリ４８０の他側の世界４７０から生じる光を視認／解釈するとき、レンズ４５８、４５６、４５４、４５２のスタックを補償するために、補償レンズ層４３０が、スタックの上部に配置され、下方のレンズスタック４５８、４５６、４５４、４５２の集約力を補償してもよい。そのような構成は、利用可能な導波管／レンズ対と同じ数の知覚される焦点面を提供する。導波管の光抽出光学要素およびレンズの集束側面は両方とも、静的であってもよい（例えば、動的ではないまたは電気活性ではない）。いくつかの代替実施形態では、一方または両方とも、電気活性特徴を使用して動的であってもよい。
【００８７】
図４を継続して参照すると、光抽出光学要素４４０ａ、４３８ａ、４３６ａ、４３４ａ、４３２ａは、導波管と関連付けられた特定の深度平面のために、光をその個別の導波管から再指向し、かつ本光を適切な量の発散またはコリメーションを伴って出力するように構成されてもよい。その結果、異なる関連付けられた深度平面を有する導波管は、関連付けられた深度平面に応じて、異なる量の発散を伴う光を出力する、異なる構成の光抽出光学要素を有してもよい。いくつかの実施形態では、本明細書に議論されるように、光抽出光学要素４４０ａ、４３８ａ、４３６ａ、４３４ａ、４３２ａは、光を具体的角度で出力するように構成され得る、立体または表面特徴であってもよい。例えば、光抽出光学要素４４０ａ、４３８ａ、４３６ａ、４３４ａ、４３２ａは、立体ホログラム、表面ホログラム、および／または回折格子であってもよい。回折格子等の光抽出光学要素は、２０１５年６月２５日に公開された米国特許公開第２０１５／０１７８９３９号（参照することによってその全体として本明細書に組み込まれる）に説明される。
【００８８】
いくつかの実施形態では、光抽出光学要素４４０ａ、４３８ａ、４３６ａ、４３４ａ、４３２ａは、回折パターンを形成する回折特徴または「回折光学要素」（本明細書では、「ＤＯＥ」とも称される）である。好ましくは、ＤＯＥは、ビームの光の一部のみがＤＯＥの各交差部で眼４１０に向かって偏向される一方、残りが、全内部反射を介して、導波管を通して移動し続けるように、比較的に低回折効率を有する。画像情報を搬送する光は、したがって、複数の場所において導波管から出射する、いくつかの関連出射ビームに分割され、その結果、導波管内でバウンスする本特定のコリメートされたビームに関して、眼３０４に向かって非常に均一なパターンの出射放出となることができる。
【００８９】
いくつかの実施形態では、１つ以上のＤＯＥは、能動的に回折する「オン」状態と有意に回折しない「オフ」状態との間で切替可能であってもよい。例えば、切替可能なＤＯＥは、ポリマー分散液晶の層を備えてもよく、その中で微小液滴は、ホスト媒体中に回折パターンを備え、微小液滴の屈折率は、ホスト材料の屈折率に実質的に整合するように切り替えられることができる（その場合、パターンは、入射光を著しく回折させない）、または微小液滴は、ホスト媒体のものに整合しない屈折率に切り替えられることができる（その場合、パターンは、入射光を能動的に回折させる）。
【００９０】
いくつかの実施形態では、深度平面または被写界深度の数および分布は、視認者の眼の瞳孔サイズまたは配向に基づいて、動的に変動されてもよい。被写界深度は、視認者の瞳孔サイズと反比例して変化してもよい。その結果、視認者の眼の瞳孔のサイズが減少するにつれて、被写界深度は、その平面の場所が眼の焦点深度を越えるため判別不能である１つの平面が、判別可能となり、瞳孔サイズの低減および被写界深度の相当する増加に伴って、より合焦して現れ得るように増加する。同様に、異なる画像を視認者に提示するために使用される、離間される深度平面の数は、減少された瞳孔サイズに伴って減少されてもよい。例えば、視認者は、一方の深度平面から他方の深度平面への眼の遠近調節を調節せずに、第１の深度平面および第２の深度平面の両方の詳細を１つの瞳孔サイズにおいて明確に知覚することが可能ではない場合がある。しかしながら、これらの２つの深度平面は、同時に、遠近調節を変化させずに、別の瞳孔サイズにおいてユーザに合焦するには十分であり得る。
【００９１】
いくつかの実施形態では、ディスプレイシステムは、瞳孔サイズまたは配向の決定に基づいて、または特定の瞳孔サイズまたは配向を示す電気信号の受信に応じて、画像情報を受信する導波管の数を変動させてもよい。例えば、ユーザの眼が、２つの導波管と関連付けられた２つの深度平面間を区別不能である場合、コントローラ４６０（ローカル処理およびデータモジュール２６０の実施形態であり得る）は、これらの導波管のうちの１つへの画像情報の提供を停止するように構成またはプログラムされることができる。有利なこととして、これは、システムへの処理負担を低減させ、それによって、システムの応答性を増加させ得る。導波管のためのＤＯＥがオンおよびオフ状態間で切替可能である実施形態では、ＤＯＥは、導波管が画像情報を受信するとき、オフ状態に切り替えられてもよい。
【００９２】
いくつかの実施形態では、出射ビームに視認者の眼の直径未満の直径を有するという条件を満たさせることが望ましくあり得る。しかしながら、本条件を満たすことは、視認者の瞳孔のサイズの変動性に照らして、困難であり得る。いくつかの実施形態では、本条件は、視認者の瞳孔のサイズの決定に応答して出射ビームのサイズを変動させることによって、広範囲の瞳孔サイズにわたって満たされる。例えば、瞳孔サイズが減少するにつれて、出射ビームのサイズもまた、減少し得る。いくつかの実施形態では、出射ビームサイズは、可変開口を使用して変動されてもよい。
【００９３】
ウェアラブルシステム４００は、世界４７０の一部を結像する、外向きに向いた結像システム４６４（例えば、デジタルカメラ）を含むことができる。世界４７０の本部分は、世界カメラの視野（ＦＯＶ）と称され得、結像システム４６４は、時として、ＦＯＶカメラとも称される。世界カメラのＦＯＶは、視認者２１０のＦＯＶと同一である場合とそうではない場合があり、これは、視認者２１０が所与の時間に知覚する、世界４７０の一部を包含する。例えば、いくつかの状況では、世界カメラのＦＯＶは、ウェアラブルシステム４００の視認者２１０の視野より大きくあり得る。視認者による視認または結像のために利用可能な領域全体は、動眼視野（ＦＯＲ）と称され得る。ＦＯＲは、装着者が、その身体、頭部、または眼を移動させ、空間内の実質的に任意の方向を知覚することができるため、ウェアラブルシステム４００を囲繞する４πステラジアンの立体角を含んでもよい。他のコンテキストでは、装着者の移動は、より抑制されてもよく、それに応じて、装着者のＦＯＲは、より小さい立体角に接し得る。外向きに向いた結像システム４６４から得られた画像は、ユーザによって行われるジェスチャ（例えば、手または指のジェスチャ）を追跡し、ユーザの正面における世界４７０内のオブジェクトを検出する等のために、使用されることができる。
【００９４】
ウェアラブルシステム４００は、オーディオセンサ２３２、例えば、マイクロホンを含み、周囲音を捕捉することができる。上記に説明されるように、いくつかの実施形態では、１つ以上の他のオーディオセンサが、発話源の場所の決定に有用なステレオ音受信を提供するために位置付けられることができる。オーディオセンサ２３２は、別の実施例として、指向性マイクロホンを備えることができ、これはまた、オーディオ源が位置する場所に関するそのような有用な指向性情報を提供することができる。ウェアラブルシステム４００は、発話源を位置特定する際、または特定の瞬間におけるアクティブ話者を決定するために等、外向きに向いた結像システム４６４およびオーディオセンサ２３０の両方からの情報を使用することができる。例えば、ウェアラブルシステム４００は、単独で、または話者の反射された画像（例えば、鏡に見られるように）と組み合わせて、音声認識を使用して、話者の識別を決定することができる。別の実施例として、ウェアラブルシステム４００は、指向性マイクロホンから入手された音に基づいて、環境内の話者の位置を決定することができる。ウェアラブルシステム４００は、発話認識アルゴリズムを用いて、話者の位置から生じる音を解析し、発話のコンテンツを決定し、音声認識技法を使用して、話者の識別（例えば、名前または他の人口統計情報）を決定することができる。
【００９５】
ウェアラブルシステム４００はまた、眼移動および顔移動等のユーザの移動を観察する、内向きに向いた結像システム４６６（例えば、デジタルカメラ）を含むことができる。内向きに向いた結像システム４６６は、眼４１０の画像を捕捉し、眼３０４の瞳孔のサイズおよび／または配向を決定するために使用されてもよい。内向きに向いた結像システム４６６は、ユーザが見ている方向（例えば、眼姿勢）を決定する際に使用するため、またはユーザのバイオメトリック識別のため（例えば、虹彩識別を介して）、画像を得るために使用されることができる。いくつかの実施形態では、少なくとも１つのカメラが、眼毎に、独立して、各眼の瞳孔サイズまたは眼姿勢を別個に決定し、それによって、各眼への画像情報の提示がその眼に対して動的に調整されることを可能にするために利用されてもよい。いくつかの他の実施形態では、単一眼４１０のみの瞳孔直径または配向（例えば、対の眼あたり単一カメラのみを使用して）が、決定され、ユーザの両眼に関して類似すると仮定される。内向きに向いた結像システム４６６によって得られる画像は、ユーザに提示されるべきオーディオまたは視覚的コンテンツを決定するためにウェアラブルシステム４００によって使用され得る、ユーザの眼姿勢または気分を決定するために分析されてもよい。ウェアラブルシステム４００はまた、ＩＭＵ、加速度計、ジャイロスコープ等のセンサを使用して、頭部姿勢（例えば、頭部位置または頭部配向）を決定してもよい。
【００９６】
ウェアラブルシステム４００は、ユーザが、コマンドをコントローラ４６０に入力し、ウェアラブルシステム４００と相互作用し得る、ユーザ入力デバイス４６６を含むことができる。例えば、ユーザ入力デバイス４６６は、トラックパッド、タッチスクリーン、ジョイスティック、多自由度（ＤＯＦ）コントローラ、容量感知デバイス、ゲームコントローラ、キーボード、マウス、指向性パッド（Ｄパッド）、ワンド、触知デバイス、トーテム（例えば、仮想ユーザ入力デバイスとして機能する）等を含むことができる。マルチＤＯＦコントローラは、コントローラの一部または全部の可能性として考えられる平行移動（例えば、左／右、前方／後方、または上／下）または回転（例えば、ヨー、ピッチ、またはロール）におけるユーザ入力を感知することができる。平行移動をサポートする、マルチＤＯＦコントローラは、３ＤＯＦと称され得る一方、平行移動および回転をサポートする、マルチＤＯＦコントローラは、６ＤＯＦと称され得る。ある場合には、ユーザは、指（例えば、親指）を使用して、タッチセンサ式入力デバイスを押下またはその上でスワイプし、入力をウェアラブルシステム４００に提供してもよい（例えば、ユーザ入力をウェアラブルシステム４００によって提供されるユーザインターフェースに提供するために）。ユーザ入力デバイス４６６は、ウェアラブルシステム４００の使用の間、ユーザの手によって保持されてもよい。ユーザ入力デバイス４６６は、ウェアラブルシステム４００と有線または無線通信することができる。
【００９７】
ウェアラブルシステムの他のコンポーネント
多くの実装では、ウェアラブルシステムは、上記に説明されるウェアラブルシステムのコンポーネントに加えて、またはその代替として、他のコンポーネントを含んでもよい。ウェアラブルシステムは、例えば、１つ以上の触知デバイスまたはコンポーネントを含んでもよい。触知デバイスまたはコンポーネントは、触覚をユーザに提供するように動作可能であってもよい。例えば、触知デバイスまたはコンポーネントは、仮想コンテンツ（例えば、仮想オブジェクト、仮想ツール、他の仮想構造）に触れると、圧力またはテクスチャの触覚を提供してもよい。触覚は、仮想オブジェクトが表す物理的オブジェクトの感覚を再現してもよい、または仮想コンテンツが表す想像上のオブジェクトまたはキャラクタ（例えば、ドラゴン）の感覚を再現してもよい。いくつかの実装では、触知デバイスまたはコンポーネントは、ユーザによって装着されてもよい（例えば、ユーザウェアラブルグローブ）。いくつかの実装では、触知デバイスまたはコンポーネントは、ユーザによって保持されてもよい。
【００９８】
ウェアラブルシステムは、例えば、ユーザによって操作可能であって、ウェアラブルシステムへの入力またはそれとの相互作用を可能にする、１つ以上の物理的オブジェクトを含んでもよい。これらの物理的オブジェクトは、本明細書では、トーテムと称され得る。いくつかのトーテムは、例えば、金属またはプラスチック片、壁、テーブルの表面等、無生物オブジェクトの形態をとってもよい。ある実装では、トーテムは、実際には、任意の物理的入力構造（例えば、キー、トリガ、ジョイスティック、トラックボール、ロッカスイッチ）を有していなくてもよい。代わりに、トーテムは、単に、物理的表面を提供してもよく、ウェアラブルシステムは、ユーザにトーテムの１つ以上の表面上にあるように見えるように、ユーザインターフェースをレンダリングしてもよい。例えば、ウェアラブルシステムは、トーテムの１つ以上の表面上に常駐するように見えるように、コンピュータキーボードおよびトラックパッドの画像をレンダリングしてもよい。例えば、ウェアラブルシステムは、トーテムとしての役割を果たす、アルミニウムの薄い長方形プレートの表面上に見えるように、仮想コンピュータキーボードおよび仮想トラックパッドをレンダリングしてもよい。長方形プレート自体は、任意の物理的キーまたはトラックパッドまたはセンサを有していない。しかしながら、ウェアラブルシステムは、仮想キーボードまたは仮想トラックパッドを介して行われた選択または入力として、長方形プレートを用いたユーザ操作または相互作用またはタッチを検出し得る。ユーザ入力デバイス４６６（図４に示される）は、トラックパッド、タッチパッド、トリガ、ジョイスティック、トラックボール、ロッカまたは仮想スイッチ、マウス、キーボード、多自由度コントローラ、または別の物理的入力デバイスを含み得る、トーテムの実施形態であってもよい。ユーザは、単独で、または姿勢と組み合わせて、トーテムを使用し、ウェアラブルシステムまたは他のユーザと相互作用してもよい。
【００９９】
本開示のウェアラブルデバイス、ＨＭＤ、およびディスプレイシステムと使用可能な触知デバイスおよびトーテムの実施例は、米国特許公開第２０１５／００１６７７７号（参照することによってその全体として本明細書に組み込まれる）に説明される。
【０１００】
ウェアラブルシステムとのユーザ相互作用の例示的プロセス
図５は、仮想ユーザインターフェースと相互作用するための方法５００の実施例のプロセスフロー図である。方法５００は、本明細書に説明されるウェアラブルシステムによって実施されてもよい。方法５００の実施形態は、ウェアラブルシステムによって使用され、ウェアラブルシステムのＦＯＶ内の人物またはドキュメントを検出することができる。
【０１０１】
ブロック５１０では、ウェアラブルシステムは、特定のＵＩを識別してもよい。ＵＩのタイプは、ユーザによって事前決定されてもよい。ウェアラブルシステムは、ユーザ入力（例えば、ジェスチャ、視覚的データ、オーディオデータ、感覚データ、直接コマンド等）に基づいて、特定のＵＩが取り込まれる必要があることを識別してもよい。ＵＩは、システムの装着者がドキュメントを装着者に提示するユーザを観察している（例えば、旅行者検問所において）、セキュリティシナリオに特有であることができる。ブロック５２０では、ウェアラブルシステムは、仮想ＵＩのためのデータを生成してもよい。例えば、範囲、一般的構造、ＵＩの形状等と関連付けられたデータが、生成されてもよい。加えて、ウェアラブルシステムは、ウェアラブルシステムがＵＩをユーザの物理的場所に関連して表示し得るように、ユーザの物理的場所のマップ座標を決定してもよい。例えば、ＵＩが、身体中心である場合、ウェアラブルシステムは、リングＵＩがユーザの周囲に表示され得る、または平面ＵＩが壁上またはユーザの正面に表示され得るように、ユーザの物理的立ち位置の座標、頭部姿勢、または眼姿勢を決定してもよい。本明細書に説明されるセキュリティコンテキストでは、ＵＩは、装着者が、旅行者および旅行者のドキュメントを見ながら、ＵＩを容易に視認し得るように、ＵＩがドキュメントをシステムの装着者に提示している旅行者を囲繞しているかのように表示されてもよい。ＵＩが、手中心である場合、ユーザの手のマップ座標が、決定されてもよい。これらのマップ点は、ＦＯＶカメラ、感覚入力を通して受信されたデータ、または任意の他のタイプの収集されたデータを通して、導出されてもよい。
【０１０２】
ブロック５３０では、ウェアラブルシステムは、データをクラウドからディスプレイに送信してもよい、またはデータは、ローカルデータベースからディスプレイコンポーネントに送信されてもよい。ブロック５４０では、ＵＩは、送信されたデータに基づいて、ユーザに表示される。例えば、ライトフィールドディスプレイは、仮想ＵＩをユーザの眼の一方または両方の中に投影することができる。いったん仮想ＵＩが作成されると、ウェアラブルシステムは、単に、ブロック５５０において、より多くの仮想コンテンツを仮想ＵＩ上に生成するためのユーザからのコマンドを待機してもよい。例えば、ＵＩは、ユーザの身体またはユーザの環境内の人物（例えば、旅行者）の身体の周囲の身体中心リングであってもよい。ウェアラブルシステムは、次いで、コマンド（ジェスチャ、頭部または眼移動、音声コマンド、ユーザ入力デバイスからの入力等）を待機してもよく、それが認識される場合（ブロック５６０）、コマンドと関連付けられた仮想コンテンツは、ユーザに表示されてもよい（ブロック５７０）。
【０１０３】
複合現実におけるアバタレンダリングの実施例
ウェアラブルシステムは、高被写界深度をレンダリングされたライトフィールド内で達成するために、種々のマッピング関連技法を採用してもよい。仮想世界をマッピングする際、実世界内の全ての特徴および点を把握し、仮想オブジェクトを実世界に関連して正確に描くことが有利である。この目的を達成するために、ウェアラブルシステムのユーザから捕捉されたＦＯＶ画像が、実世界の種々の点および特徴についての情報を伝達する新しい写真を含むことによって、世界モデルに追加されることができる。例えば、ウェアラブルシステムは、マップ点（２Ｄ点または３Ｄ点等）のセットを収集し、新しいマップ点を見出し、世界モデルのより正確なバージョンをレンダリングすることができる。第１のユーザの世界モデルは、第２のユーザが第１のユーザを囲繞する世界を体験し得るように、（例えば、クラウドネットワーク等のネットワークを経由して）第２のユーザに通信されることができる。
【０１０４】
図６Ａは、ウェアラブルシステムの別の実施例のブロック図であって、これは、複合現実環境内へのアバタ処理およびレンダリングシステム６９０を備えることができる。ウェアラブルシステム６００は、図２に示されるウェアラブルシステム２００の一部であってもよい。本実施例では、ウェアラブルシステム６００は、マップ６２０を備えることができ、これは、マップデータベース７１０（図７に示される）内のデータの少なくとも一部を含んでもよい。マップは、部分的に、ウェアラブルシステム上にローカルで常駐してもよく、部分的に、有線または無線ネットワークによってアクセス可能なネットワーク化された記憶場所（例えば、クラウドシステム内）に常駐してもよい。姿勢プロセス６１０は、ウェアラブルコンピューティングアーキテクチャ（例えば、処理モジュール２６０またはコントローラ４６０）上で実行され、マップ６２０からのデータを利用して、ウェアラブルコンピューティングハードウェアまたはユーザの位置および配向を決定してもよい。姿勢データは、ユーザが、システムを体験し、世界内で動作するにつれてオンザフライで収集されたデータから、算出されてもよい。データは、画像、センサ（慣性測定ユニット等、これは、概して、加速度計と、ジャイロスコープコンポーネントとを備える）からのデータ、および実または仮想環境内のオブジェクトと関連する表面情報を含んでもよい。
【０１０５】
疎点表現は、同時位置特定およびマッピング（例えば、入力が画像／視覚専用である構成を指す、ＳＬＡＭまたはｖＳＬＡＭ）プロセスの出力であってもよい。本システムは、種々のコンポーネントが存在する世界内の場所だけではなく、世界が成る内容も見出すように構成されることができる。姿勢は、マップの取込およびマップからのデータの使用を含む、多くの目標を達成する、構築ブロックであり得る。
【０１０６】
一実施形態では、疎点位置は、それだけでは完全に適正ではあり得ず、さらなる情報が、多焦点ＡＲ、ＶＲ、またはＭＲ体験を生産するために必要とされ得る。概して、深度マップ情報を指す、稠密表現が、少なくとも部分的に、本間隙を充填するために利用されてもよい。そのような情報は、ステレオ６４０と称される、プロセスから算出されてもよく、深度情報は、三角測量または飛行時間感知等の技法を使用して決定される。画像情報およびアクティブパターン（アクティブプロジェクタを使用して作成された赤外線パターン等）、画像カメラから入手された画像、または手のジェスチャ／トーテム６５０が、ステレオプロセス６４０への入力としての役割を果たし得る。有意な量の深度マップ情報が、ともに融合され得、そのうちの一部は、表面表現とともに要約され得る。例えば、数学的に定義可能な表面は、効率的（例えば、大点群と比較して）であって、ゲームエンジンのような他の処理デバイスへの理解しやすい入力であり得る。したがって、ステレオプロセス（例えば、深度マップ）６４０の出力は、融合プロセス６３０において組み合わせられてもよい。姿勢６１０も同様に、本融合プロセス６３０への入力であってもよく、融合６３０の出力は、マップ取込プロセス６２０への入力となる。サブ表面は、トポグラフィマッピングにおけるように、相互に接続し、より大きい表面を形成し得、マップは、点および表面の大規模ハイブリッドとなる。
【０１０７】
複合現実プロセス６６０における種々の側面を解決するために、種々の入力が、利用されてもよい。例えば、図６Ａに描写される実施形態では、ゲームパラメータが、入力され、システムのユーザが、種々の場所における１匹以上のモンスター、種々の条件下で死にかけている、または逃げているモンスター（ユーザがモンスターを射撃する場合等）、種々の場所における壁または他のオブジェクト、および同等物を伴った状態で、モンスターバトルゲームをプレーしていることを決定し得る。世界マップは、オブジェクトの場所に関する情報またはオブジェクトの意味論情報（例えば、オブジェクトが、平坦または丸いかどうか、水平または垂直であるか、テーブルまたはランプであるかどうか等の分類）を含んでもよく、世界マップは、複合現実への別の有益な入力であり得る。世界に対する姿勢も同様に、入力となり、ほぼあらゆる双方向システムに対して重要な役割を担う。
【０１０８】
ユーザからの制御または入力は、ウェアラブルシステム６００への別の入力である。本明細書に説明されるように、ユーザ入力は、視覚的入力、ジェスチャ、トーテム、オーディオ入力、感覚入力等を含むことができる。動き回る、またはゲームをプレーするために、例えば、ユーザは、自らが所望する内容に関して、ウェアラブルシステム６００に命令する必要があり得る。単に、自らを空間内で移動させる以外にも利用され得る、種々の形態のユーザ制御が存在する。一実施形態では、トーテム（例えば、ユーザ入力デバイス）または玩具銃等のオブジェクトが、ユーザによって保持され、システムによって追跡されてもよい。本システムは、好ましくは、ユーザがアイテムを保持していることを把握し、ユーザがアイテムと行っている相互作用の種類を理解するように構成されるであろう（例えば、トーテムまたはオブジェクトが、銃である場合、本システムは、場所および配向と、ユーザが、トリガまたは他の感知されるボタンまたは要素（アクティビティがカメラのいずれかの視野内にないときでも、生じている内容を決定することを補助し得る、ＩＭＵ等のセンサを装備し得る）をクリックしているかどうかとを理解するように構成されてもよい）。
【０１０９】
手のジェスチャの追跡または認識もまた、入力情報を提供し得る。ウェアラブルシステム６００は、ボタン押下、左または右、停止、握持、保持のジェスチャ等に関して、手のジェスチャを追跡および解釈するように構成されてもよい。例えば、１つの構成では、ユーザは、非ゲーム用環境において電子メールまたはカレンダをフリップする、または「フィストバンプ」を別の人物またはプレーヤと行うことを所望し得る。ウェアラブルシステム６００は、動的である場合とそうではない場合がある、最小量の手のジェスチャを活用するように構成されてもよい。例えば、ジェスチャは、停止のために手を開く、ＯＫのためのサムズアップ、非ＯＫのためのサムズダウン、または指向性コマンドのための右または左または上／下への手のフリップのような単純静的ジェスチャであってもよい。
【０１１０】
眼追跡は、別の入力である（例えば、ユーザが見ている場所を追跡し、ディスプレイ技術を制御し、具体的深度または範囲にレンダリングする）。一実施形態では、眼の輻輳・開散運動が、三角測量を使用して、決定されてもよく、次いで、その特定の人物に関して開発された輻輳・開散運動／遠近調節モデルを使用して、遠近調節が、決定されてもよい。眼追跡は、眼カメラによって実施され、眼視線（例えば、片眼または両眼の方向または配向）を決定することができる。他の技法は、例えば、眼の近傍に設置された電極による電位の測定（例えば、電気眼球図記録）等の眼追跡のために使用されることができる。
【０１１１】
発話追跡は、別の入力であり得、単独で、または他の入力（例えば、トーテム追跡、眼追跡、ジェスチャ追跡等）と組み合わせて使用され得る。発話追跡は、単独で、または組み合わせて、発話認識、音声認識を含んでもよい。システム６００は、オーディオストリームを環境から受信する、オーディオセンサ（例えば、マイクロホン）を含むことができる。システム６００は、発話している人物（例えば、発話が、ＡＲＤの装着者または別の人物または音声（例えば、環境内のラウドスピーカによって伝送される記録された音声）からのものであるかどうか）を決定するための音声認識技術と、話されている内容を決定するための発話認識技術とを組み込むことができる。ローカルデータおよび処理モジュール２６０または遠隔処理モジュール２７０は、例えば、隠れマルコフモデル、動的時間伸縮法（ＤＴＷ）ベースの発話認識、ニューラルネットワーク、ディープフィードフォワードおよび再帰ニューラルネットワーク等の深層学習アルゴリズム、エンドツーエンド自動発話認識、機械学習アルゴリズム（図７を参照して説明される）、または音響モデル化または言語モデル化を使用する、他のアルゴリズム等の種々の発話認識アルゴリズムを適用することによって、マイクロホンからのオーディオデータ（または、例えば、ユーザによって鑑賞されているビデオストリーム等の別のストリーム内のオーディオデータ）を処理し、発話のコンテンツを識別することができる。
【０１１２】
ローカルデータおよび処理モジュール２６０または遠隔処理モジュール２７０はまた、音声認識アルゴリズムを適用することができ、これは、話者が、ウェアラブルシステム６００のユーザ２１０またはユーザが会話している別の人物であるかどうか等、話者の識別を識別することができる。いくつかの例示的音声認識アルゴリズムは、周波数推定、隠れマルコフモデル、ガウス混合物モデル、パターンマッチングアルゴリズム、ニューラルネットワーク、行列表現、ベクトル量子化、話者ダイアライゼーション、決定ツリー、および動的時間伸縮法（ＤＴＷ）技法を含むことができる。音声認識技法はまた、コホートモデルおよび世界モデル等のアンチ話者技法を含むことができる。スペクトル特徴が、話者特性を表す際に使用されてもよい。ローカルデータおよび処理モジュールまたは遠隔データ処理モジュール２７０は、図７を参照して説明される、種々の機械学習アルゴリズムを使用して、音声認識を実施することができる。
【０１１３】
ウェアラブルシステムの実装は、ＵＩを介したこれらのユーザ制御または入力を使用することができる。ＵＩ要素（例えば、制御、ポップアップウィンドウ、吹き出し、データエントリフィールド等）は、例えば、情報、例えば、オブジェクトのグラフィックまたは意味論情報のディスプレイを閉じるために使用されることができる。
【０１１４】
カメラシステムに関して、図６Ａに示される例示的ウェアラブルシステム６００は、３つの対のカメラ、すなわち、ユーザの顔の側面に配列される、一対の相対的広ＦＯＶまたは受動ＳＬＡＭカメラと、ステレオ結像プロセス６４０をハンドリングし、また、ユーザの顔の正面における手のジェスチャおよびトーテム／オブジェクト追跡を捕捉するために、ユーザの顔の正面に配向される、異なる対のカメラとを含むことができる。ＦＯＶカメラおよびステレオプロセス６４０のための対のカメラは、外向きに向いた結像システム４６４（図４に示される）の一部であってもよい。ウェアラブルシステム６００は、眼ベクトルおよび他の情報を三角測量するために、ユーザの眼に向かって配向される、眼追跡カメラ（図４に示される内向きに向いた結像システム４６２の一部であってもよい）を含むことができる。ウェアラブルシステム６００はまた、１つ以上のテクスチャ加工された光プロジェクタ（赤外線（ＩＲ）プロジェクタ等）を備え、テクスチャを場面の中に投入してもよい。
【０１１５】
ウェアラブルシステム６００は、アバタ処理およびレンダリングシステム６９０を備えることができる。アバタ処理およびレンダリングシステム６９０は、コンテキスト情報に基づいて、アバタを生成、更新、アニメーション化、およびレンダリングするように構成されることができる。アバタ処理およびレンダリングシステム６９０の一部または全部は、単独で、または組み合わせて、ローカル処理およびデータモジュール２６０または遠隔処理モジュール２６２、２６４の一部として実装されることができる。種々の実施形態では、複数のアバタ処理およびレンダリングシステム６９０（例えば、異なるウェアラブルデバイス上に実装されるように）が、仮想アバタ６７０をレンダリングするために使用されることができる。例えば、第１のユーザのウェアラブルデバイスは、第１のユーザの意図を決定するために使用されてもよい一方、第２のユーザのウェアラブルデバイスは、アバタの特性を決定し、第１のユーザのウェアラブルデバイスから受信された意図に基づいて、第１のユーザのアバタをレンダリングすることができる。第１のユーザのウェアラブルデバイスおよび第２のユーザのウェアラブルデバイス（または他のそのようなウェアラブルデバイス）は、例えば、図９Ａ−９Ｂを参照して説明されるであろうように、ネットワークを介して、通信することができる。
【０１１６】
図６Ｂは、例示的アバタ処理およびレンダリングシステム６９０を図示する。例示的アバタ処理およびレンダリングシステム６９０は、単独で、または組み合わせて、３Ｄモデル処理システム６８０と、コンテキスト情報分析システム６８８と、アバタ自動スケーラ６９２と、意図マッピングシステム６９４と、解剖学的構造調節システム６９８と、刺激応答システム６９６とを備えることができる。システム６９０は、アバタ処理およびレンダリングのための機能性を図示するように意図され、限定することを意図するものではない。例えば、ある実装では、これらのシステムのうちの１つ以上のものは、別のシステムの一部であってもよい。例えば、コンテキスト情報分析システム６８８の一部は、個々に、または組み合わせて、アバタ自動スケーラ６９２、意図マッピングシステム６９４、刺激応答システム６９６、または解剖学的構造調節システム６９８の一部であってもよい。
【０１１７】
コンテキスト情報分析システム６８８は、図２および３を参照して説明される、１つ以上のデバイスセンサに基づいて、環境およびオブジェクト情報を決定するように構成されることができる。例えば、コンテキスト情報分析システム６８８は、ユーザまたはユーザのアバタの視認者の外向きに向いた結像システム４６４によって入手された画像を使用して、環境およびユーザの環境のオブジェクト（物理的または仮想オブジェクトを含む）またはその中にユーザのアバタがレンダリングされる環境を分析することができる。コンテキスト情報分析システム６８８は、単独で、または場所データまたは世界マップ（例えば、マップ６２０、７１０、９１０）から入手されたデータと組み合わせて、そのような画像を分析し、環境内のオブジェクトの場所およびレイアウトを決定することができる。コンテキスト情報分析システム６８８はまた、仮想アバタ６７０を現実的にアニメーション化するために、ユーザまたはヒト全般の生物学的特徴にアクセスすることができる。例えば、コンテキスト情報分析システム６８８は、違和感曲線を生成することができ、これは、ユーザのアバタの身体の一部（例えば、頭部）がユーザの身体の他の部分に対して違和感のある（または非現実的）位置にないように（例えば、アバタの頭部は、２７０度方向転換されない）、アバタに適用されることができる。ある実装では、１つ以上のオブジェクト認識装置７０８（図７に示される）は、コンテキスト情報分析システム６８８の一部として実装されてもよい。
【０１１８】
アバタ自動スケーラ６９２、意図マッピングシステム６９４、および刺激応答システム６９６、および解剖学的構造調節システム６９８は、コンテキスト情報に基づいて、アバタの特性を決定するように構成されることができる。アバタのいくつかの例示的特性は、サイズ、外観、位置、配向、移動、姿勢、表現等を含むことができる。アバタ自動スケーラ６９２は、ユーザがアバタを不快な姿勢で見る必要がないように、アバタを自動的にスケーリングするように構成されることができる。例えば、アバタ自動スケーラ６９２は、ユーザが、それぞれ、アバタを見下ろす、またはアバタを見上げる必要がないように、アバタのサイズを増加または減少させ、アバタをユーザの眼の高さに持って来ることができる。意図マッピングシステム６９４は、アバタがその中にレンダリングされる環境に基づいて、ユーザの相互作用の意図を決定し、（正確なユーザ相互作用ではなく）意図をアバタにマッピングすることができる。例えば、第１のユーザの意図は、テレプレゼンスセッションにおいて第２のユーザと通信することであり得る（例えば、図９Ｂ参照）。典型的には、２人が、通信するとき、相互に向かい合う。第１のユーザのウェアラブルシステムの意図マッピングシステム６９４は、テレプレゼンスセッションの間に存在するそのような対面意図を決定することができ、第１のユーザのウェアラブルシステムに、第２のユーザのアバタを第１のユーザに向かってレンダリングさせることができる。第２のユーザが、物理的に方向転換しようとする場合、第２のユーザのアバタを方向転換された位置にレンダリングする代わりに（第２のユーザのアバタの背面を第１のユーザに対してレンダリングさせるであろう）、第１のユーザの意図マッピングシステム６９４は、第２のアバタの顔を第１のユーザに対してレンダリングし続けることができ、これは、テレプレゼンスセッションの推測される意図（例えば、本実施例では、対面意図）である。
【０１１９】
刺激応答システム６９６は、環境内の関心オブジェクトを識別し、関心オブジェクトに対するアバタの応答を決定することができる。例えば、刺激応答システム６９６は、アバタの環境内の音源を識別し、音源を見るようにアバタを自動的に方向転換させることができる。刺激応答システム６９６はまた、閾値終了条件を決定することができる。例えば、刺激応答システム６９６は、音源が消失した後またはある時間周期が経過した後、アバタをそのオリジナル姿勢に戻させることができる。
【０１２０】
解剖学的構造調節システム６９８は、生物学的特徴に基づいて、ユーザの姿勢を調節するように構成されることができる。例えば、解剖学的構造調節システム６９８は、違和感曲線に基づいて、ユーザの頭部とユーザの胴体との間またはユーザの上半身と下半身との間の相対的位置を調節するように構成されることができる。
【０１２１】
３Ｄモデル処理システム６８０は、仮想アバタ６７０をアニメーション化し、ディスプレイ２２０にレンダリングさせるように構成されることができる。３Ｄモデル処理システム６８０は、仮想キャラクタ処理システム６８２と、移動処理システム６８４とを含むことができる。仮想キャラクタ処理システム６８２は、ユーザの３Ｄモデルを生成および更新するように構成されることができる（仮想アバタを作成およびアニメーション化するため）。移動処理システム６８４は、例えば、アバタの姿勢を変化させることによって、アバタをユーザの環境内で移動させることによって、またはアバタの顔の表情をアニメーション化することによって等、アバタをアニメーション化するように構成されることができる。本明細書にさらに説明されるであろうように、仮想アバタは、リギング技法を使用して、アニメーション化されることができる。いくつかの実施形態では、アバタは、２つの部分、すなわち、仮想アバタの外向き外観をレンダリングするために使用される表面表現（例えば、変形可能メッシュ）と、メッシュをアニメーション化するために相互接続された関節の階層セット（例えば、コア骨格）とにおいて表される。いくつかの実装では、仮想キャラクタ処理システム６８２は、表面表現を編集または生成するように構成されることができる一方、移動処理システム６８４は、アバタを移動させる、メッシュを変形させる等によって、アバタをアニメーション化するために使用されることができる。
【０１２２】
アバタ処理およびレンダリングシステム６９０は、本明細書に説明されるニューラルネットワーク（例えば、ＲＢＦＮＮまたはＦＦＮＮ）によって生成されたデジタルキャラクタリグパラメータを受信することができ、これらのパラメータを使用して、少なくとも部分的に、アバタをアニメーション化することができる。例えば、アバタ処理およびレンダリングシステム６９０は、図１１を参照して説明されるプロセス１１００、図１８を参照して説明されるプロセス１８００、または図２１を参照して説明されるプロセス２１００を実施することができる。
【０１２３】
ユーザの環境をマッピングする実施例
図７は、ＭＲ環境７００の実施例のブロック図である。ＭＲ環境７００は、入力（例えば、ユーザのウェアラブルシステムからの視覚的入力７０２、室内カメラ等の定常入力７０４、種々のセンサからの感覚入力７０６、ユーザ入力デバイス４６６からのジェスチャ、トーテム、眼追跡、ユーザ入力等）を、１つ以上のユーザウェアラブルシステム（例えば、ウェアラブルシステム２００またはディスプレイシステム２２０）または定常室内システム（例えば、室内カメラ等）から受信するように構成されてもよい。ウェアラブルシステムは、種々のセンサ（例えば、加速度計、ジャイロスコープ、温度センサ、移動センサ、深度センサ、ＧＰＳセンサ、内向きに向いた結像システム、外向きに向いた結像システム等）を使用して、ユーザの環境の場所および種々の他の属性を決定することができる。本情報はさらに、異なる視点からの画像または種々のキューを提供し得る、部屋内の定常カメラからの情報で補完されてもよい。カメラ（室内カメラおよび／または外向きに向いた結像システムのカメラ等）によって入手された画像データは、マッピング点のセットに低減されてもよい。
【０１２４】
１つ以上のオブジェクト認識装置７０８が、受信されたデータ（例えば、点の集合）を通してクローリングし、点を認識またはマッピングし、画像をタグ付けし、マップデータベース７１０を用いて、意味論情報をオブジェクトに結び付けることができる。マップデータベース７１０は、経時的に収集された種々の点およびその対応するオブジェクトを備えてもよい。種々のデバイスおよびマップデータベースは、ネットワーク（例えば、ＬＡＮ、ＷＡＮ等）を通して相互に接続され、クラウドにアクセスすることができる。
【０１２５】
本情報およびマップデータベース内の点集合に基づいて、オブジェクト認識装置７０８ａ−７０８ｎは、環境内のオブジェクトを認識してもよい。例えば、オブジェクト認識装置は、顔、人物、窓、壁、ユーザ入力デバイス、テレビ、ドキュメント（例えば、本明細書におけるセキュリティ実施例において説明されるような旅券、運転免許証、パスポート）、ユーザの環境内の他のオブジェクト等を認識することができる。１つ以上のオブジェクト認識装置が、ある特性を伴うオブジェクトのために特殊化されてもよい。例えば、オブジェクト認識装置７０８ａは、顔を認識するために使用されてもよい一方、別のオブジェクト認識装置は、ドキュメントを認識するために使用されてもよい。
【０１２６】
オブジェクト認識は、種々のコンピュータビジョン技法を使用して実施されてもよい。例えば、ウェアラブルシステムは、外向きに向いた結像システム４６４（図４に示される）によって入手された画像を分析し、場面再構成、イベント検出、ビデオ追跡、オブジェクト認識（例えば、人物またはドキュメント）、オブジェクト姿勢推定、顔認識（例えば、環境内の人物またはドキュメント上の画像から）、学習、インデックス化、運動推定、または画像分析（例えば、写真、署名、識別情報、旅行情報等のドキュメント内の印を識別する）等を実施することができる。１つ以上のコンピュータビジョンアルゴリズムが、これらのタスクを実施するために使用されてもよい。コンピュータビジョンアルゴリズムの非限定的実施例は、スケール不変特徴変換（ＳＩＦＴ）、スピードアップロバスト特徴（ＳＵＲＦ）、配向ＦＡＳＴおよび回転ＢＲＩＥＦ（ＯＲＢ）、バイナリロバスト不変スケーラブルキーポイント（ＢＲＩＳＫ）、高速網膜キーポイント（ＦＲＥＡＫ）、Ｖｉｏｌａ−Ｊｏｎｅｓアルゴリズム、Ｅｉｇｅｎｆａｃｅｓアプローチ、Ｌｕｃａｓ−Ｋａｎａｄｅアルゴリズム、Ｈｏｒｎ−Ｓｃｈｕｎｋアルゴリズム、Ｍｅａｎ−ｓｈｉｆｔアルゴリズム、視覚的同時位置推定およびマッピング（ｖＳＬＡＭ）技法、シーケンシャルベイズ推定器（例えば、カルマンフィルタ、拡張カルマンフィルタ等）、バンドル調節、適応閾値化（および他の閾値化技法）、反復最近傍点（ＩＣＰ）、セミグローバルマッチング（ＳＧＭ）、セミグローバルブロックマッチング（ＳＧＢＭ）、特徴点ヒストグラム、種々の機械学習アルゴリズム（例えば、サポートベクトルマシン、ｋ最近傍アルゴリズム、単純ベイズ、ニューラルネットワーク（畳み込みまたは深層ニューラルネットワークを含む）、または他の教師あり／教師なしモデル等）等を含む。
【０１２７】
オブジェクト認識は、加えて、または代替として、種々の機械学習アルゴリズムによって実施されることができる。いったん訓練されると、機械学習アルゴリズムは、ＨＭＤによって記憶されることができる。機械学習アルゴリズムのいくつかの実施例は、教師ありまたは教師なし機械学習アルゴリズムを含むことができ、回帰アルゴリズム（例えば、通常の最小２乗回帰等）、インスタンスベースのアルゴリズム（例えば、学習ベクトル量子化等）、決定ツリーアルゴリズム（例えば、分類および回帰ツリー等）、ベイズアルゴリズム（例えば、単純ベイズ等）、クラスタリングアルゴリズム（例えば、ｋ−平均クラスタリング等）、関連付けルール学習アルゴリズム（例えば、アプリオリアルゴリズム等）、人工ニューラルネットワークアルゴリズム（例えば、Ｐｅｒｃｅｐｔｒｏｎ等）、深層学習アルゴリズム（例えば、Ｄｅｅｐ  Ｂｏｌｔｚｍａｎｎ  Ｍａｃｈｉｎｅ、すなわち、深層ニューラルネットワーク等）、次元削減アルゴリズム（例えば、主成分分析等）、アンサンブルアルゴリズム（例えば、Ｓｔａｃｋｅｄ  Ｇｎｅｒａｌｉｚａｔｉｏｎ等）、または他の機械学習アルゴリズムを含む。いくつかの実施形態では、個々のモデルは、個々のデータセットのためにカスタマイズされることができる。例えば、ウェアラブルデバイスは、ベースモデルを生成または記憶することができる。ベースモデルは、開始点として使用され、データタイプ（例えば、テレプレゼンスセッション内の特定のユーザ）、データセット（例えば、テレプレゼンスセッション内のユーザの取得される付加的画像のセット）、条件付き状況、または他の変形例に特有の付加的モデルを生成してもよい。いくつかの実施形態では、ウェアラブルＨＭＤは、複数の技法を利用して、集約されたデータの分析のためのモデルを生成するように構成されることができる。他の技法は、事前に定義された閾値またはデータ値を使用することを含んでもよい。
【０１２８】
マップデータベース内の本情報および点の集合に基づいて、オブジェクト認識装置７０８ａ−７０８ｎは、オブジェクトを認識し、オブジェクトを意味論情報で補完し、生命をオブジェクトに与えてもよい。例えば、オブジェクト認識装置が、点のセットがドアであることを認識する場合、システムは、いくつかの意味論情報を結び付けてもよい（例えば、ドアは、ヒンジを有し、ヒンジを中心として９０度移動を有する）。オブジェクト認識装置が、点のセットが鏡であることを認識する場合、システムは、鏡が、部屋内のオブジェクトの画像を反射させ得る、反射表面を有するという意味論情報を結び付けてもよい。意味論情報は、本明細書に説明されるように、オブジェクトのアフォーダンスを含むことができる。例えば、意味論情報は、オブジェクトの法線を含んでもよい。システムは、ベクトルを割り当てることができ、その方向は、オブジェクトの法線を示す。経時的に、マップデータベースは、システム（ローカルに常駐し得る、または無線ネットワークを通してアクセス可能であり得る）がより多くのデータを世界から累積するにつれて成長する。いったんオブジェクトが認識されると、情報は、１つ以上のウェアラブルシステムに伝送されてもよい。例えば、ＭＲ環境７００は、Ｃａｌｉｆｏｒｎｉａで発生している場面についての情報を含んでもよい。環境７００は、Ｎｅｗ  Ｙｏｒｋにおける１人以上のユーザに伝送されてもよい。ＦＯＶカメラおよび他の入力から受信されたデータに基づいて、オブジェクト認識装置および他のソフトウェアコンポーネントは、場面が世界の異なる部分に存在し得る第２のユーザに正確に「パス」され得るように、種々の画像から収集された点をマッピングし、オブジェクトを認識すること等ができる。環境７００はまた、位置特定目的のために、トポロジマップを使用してもよい。
【０１２９】
図８は、認識されたオブジェクトに関連して仮想コンテンツをレンダリングする方法８００の実施例のプロセスフロー図である。方法８００は、仮想場面がウェアラブルシステムのユーザに提示され得る方法を説明する。ユーザは、その場面から地理的に遠隔に存在してもよい。例えば、ユーザは、Ｎｅｗ  Ｙｏｒｋに存在し得るが、Ｃａｌｉｆｏｒｎｉａで現在起こっている場面を視認することを所望し得る、またはＣａｌｉｆｏｒｎｉａに存在する友人と散歩に行くことを所望し得る。
【０１３０】
ブロック８１０では、ウェアラブルシステムは、ユーザの環境に関する入力をユーザおよび他のユーザから受信してもよい。これは、種々の入力デバイスおよびマップデータベース内にすでに保有されている知識を通して達成されてもよい。ユーザのＦＯＶカメラ、センサ、ＧＰＳ、眼追跡等が、ブロック８１０において、情報をシステムに伝達する。システムは、ブロック８２０において、本情報に基づいて、疎点を決定してもよい。疎点は、ユーザの周囲における種々のオブジェクトの配向および位置を表示および理解する際に使用され得る、姿勢データ（例えば、頭部姿勢、眼姿勢、身体姿勢、または手のジェスチャ）を決定する際に使用されてもよい。オブジェクト認識装置７０８ａ−７０８ｎは、ブロック８３０において、これらの収集された点を通してクローリングし、マップデータベースを使用して、１つ以上のオブジェクトを認識してもよい。本情報は、次いで、ブロック８４０において、ユーザの個々のウェアラブルシステムに伝達されてもよく、所望の仮想場面が、ブロック８５０において、適宜、ユーザに表示されてもよい。例えば、所望の仮想場面（例えば、ＣＡにおけるユーザ）が、Ｎｅｗ  Ｙｏｒｋにおけるユーザの種々のオブジェクトおよび他の周囲に関連して、適切な配向、位置等において表示されてもよい。
【０１３１】
複数のウェアラブルシステム間の例示的通信
図９Ａは、相互に相互作用する複数のユーザデバイスを描写する、全体的システム図を図式的に図示する。コンピューティング環境９００は、ユーザデバイス９３０ａ、９３０ｂ、９３０ｃを含む。ユーザデバイス９３０ａ、９３０ｂ、および９３０ｃは、ネットワーク９９０を通して、相互に通信することができる。ユーザデバイス９３０ａ−９３０ｃはそれぞれ、ネットワークインターフェースを含み、ネットワーク９９０を介して、遠隔コンピューティングシステム９２０（また、ネットワークインターフェース９７１を含んでもよい）と通信することができる。ネットワーク９９０は、ＬＡＮ、ＷＡＮ、ピアツーピアネットワーク、無線、Ｂｌｕｅｔｏｏｔｈ（登録商標）、または任意の他のネットワークであってもよい。コンピューティング環境９００はまた、１つ以上の遠隔コンピューティングシステム９２０を含むことができる。遠隔コンピューティングシステム９２０は、クラスタ化され、異なる地理的場所に位置する、サーバコンピュータシステムを含んでもよい。ユーザデバイス９３０ａ、９３０ｂ、および９３０ｃは、ネットワーク９９０を介して、遠隔コンピューティングシステム９２０と通信してもよい。
【０１３２】
遠隔コンピューティングシステム９２０は、遠隔データリポジトリ９８０を含んでもよく、これは、具体的ユーザの物理および／または仮想世界についての情報を維持することができる。データ記憶装置９８０は、ユーザ、ユーザの環境（例えば、ユーザの環境の世界マップ）、またはユーザのアバタの構成に関連する情報を記憶することができる。遠隔データリポジトリは、図２に示される遠隔データリポジトリ２８０の実施形態であってもよい。遠隔コンピューティングシステム９２０はまた、遠隔処理モジュール９７０を含んでもよい。遠隔処理モジュール９７０は、図２に示される遠隔処理モジュール２７０の実施形態であってもよい。遠隔処理モジュール９７０は、１つ以上のプロセッサを含んでもよく、これは、ユーザデバイス（９３０ａ、９３０ｂ、９３０ｃ）および遠隔データリポジトリ９８０と通信することができる。プロセッサは、ユーザデバイスおよび他の源から取得される情報を処理することができる。いくつかの実装では、処理または記憶の少なくとも一部は、ローカル処理およびデータモジュール２６０（図２に示されるように）によって提供されることができる。遠隔コンピューティングシステム９２０は、所与のユーザが、具体的ユーザ自身の物理的および／または仮想世界についての情報を別のユーザと共有することを可能にしてもよい。
【０１３３】
ユーザデバイスは、単独で、または組み合わせて、ウェアラブルデバイス（ＨＭＤまたはＡＲＤ等）、コンピュータ、モバイルデバイス、または任意の他のデバイスであってもよい。例えば、ユーザデバイス９３０ｂおよび９３０ｃは、図２に示されるウェアラブルシステム２００（または図４に示されるウェアラブルシステム４００）の実施形態であってもよく、これは、ＡＲ／ＶＲ／ＭＲコンテンツを提示するように構成されることができる。
【０１３４】
ユーザデバイスのうちの１つ以上のものは、図４に示されるユーザ入力デバイス４６６と併用されることができる。ユーザデバイスは、ユーザおよびユーザの環境についての情報を取得することができる（例えば、図４に示される外向きに向いた結像システム４６４を使用して）。ユーザデバイスおよび／または遠隔コンピューティングシステム１２２０は、ユーザデバイスから取得される情報を使用して、画像、点、および他の情報の集合を構築、更新、および建造することができる。例えば、ユーザデバイスは、入手された未加工情報を処理し、さらなる処理のために、処理された情報を遠隔コンピューティングシステム１２２０に送信してもよい。ユーザデバイスはまた、処理のために、未加工情報を遠隔コンピューティングシステム１２２０に送信してもよい。ユーザデバイスは、処理された情報を遠隔コンピューティングシステム１２２０から受信し、ユーザに投影させる前に、最終処理を提供してもよい。ユーザデバイスはまた、取得された情報を処理し、処理された情報を他のユーザデバイスに渡してもよい。ユーザデバイスは、入手された情報を処理しながら、遠隔データリポジトリ１２８０と通信してもよい。複数のユーザデバイスおよび／または複数のサーバコンピュータシステムが、入手された画像の構築および／または処理に関与してもよい。
【０１３５】
物理的世界に関する情報は、経時的に展開されてもよく、異なるユーザデバイスによって収集される情報に基づいてもよい。仮想世界のモデルはまた、経時的に展開され、異なるユーザの入力に基づいてもよい。そのような情報およびモデルは、時として、本明細書では、世界マップまたは世界モデルと称され得る。図７および９を参照して説明されるように、ユーザデバイスによって入手された情報は、世界マップ９１０を構築するために使用されてもよい。世界マップ９１０は、図６Ａに説明されるマップ６２０の少なくとも一部を含んでもよい。種々のオブジェクト認識装置（例えば、７０８ａ、７０８ｂ、７０８ｃ…７０８ｎ）が、オブジェクトおよびタグ画像を認識するため、および意味論情報をオブジェクトに付加するために使用されてもよい。これらのオブジェクト認識装置はまた、図７に説明される。
【０１３６】
遠隔データリポジトリ９８０は、データを記憶し、世界マップ９１０の構造を促進するために使用されることができる。ユーザデバイスは、ユーザの環境についての情報を常に更新し、世界マップ９１０についての情報を受信することができる。世界マップ９１０は、ユーザまたは別の人物によって作成されてもよい。本明細書に議論されるように、ユーザデバイス（例えば、９３０ａ、９３０ｂ、９３０ｃ）および遠隔コンピューティングシステム９２０は、単独で、または組み合わせて、世界マップ９１０を構築および／または更新してもよい。例えば、ユーザデバイスは、遠隔処理モジュール９７０および遠隔データリポジトリ９８０と通信してもよい。ユーザデバイスは、ユーザおよびユーザの環境についての情報を入手および／または処理してもよい。遠隔処理モジュール９７０は、遠隔データリポジトリ９８０およびユーザデバイス（例えば、９３０ａ、９３０ｂ、９３０ｃ）と通信し、ユーザおよびユーザの環境についての情報を処理してもよい。遠隔コンピューティングシステム９２０は、例えば、ユーザの画像を選択的にクロッピングする、ユーザの背景を修正する、仮想オブジェクトをユーザの環境に追加する、ユーザの発話に補助情報で注釈を付ける等、ユーザデバイス（例えば、９３０ａ、９３０ｂ、９３０ｃ）によって入手された情報を修正することができる。遠隔コンピューティングシステム９２０は、処理された情報を同一または異なるユーザデバイスに送信することができる。
【０１３７】
テレプレゼンスセッションの実施例
図９Ｂは、個別のウェアラブルシステムの２人のユーザがテレプレゼンスセッションを行っている、実施例を描写する。２人のユーザ（本実施例では、Ａｌｉｃｅ９１２およびＢｏｂ９１４と命名される）が、本図に示される。２人のユーザは、その個別のウェアラブルデバイス９０２および９０４を装着しており、これは、テレプレゼンスセッションにおいて他のユーザの仮想アバタを表すために、図２を参照して説明される、ＨＭＤ（例えば、システム２００のディスプレイデバイス２２０）を含むことができる。２人のユーザは、ウェアラブルデバイスを使用して、テレプレゼンスセッションを行うことができる。２人のユーザを分離する、図９Ｂにおける垂直線は、Ａｌｉｃｅ９１２およびＢｏｂ９１４が、テレプレゼンスを介して彼らが通信する間、２つの異なる場所に存在し得る（但し、その必要はない）（例えば、Ａｌｉｃｅは、Ａｔｌａｎｔａにおけるそのオフィス内に存在し得る一方、Ｂｏｂは、Ｂｏｓｔｏｎの屋外に存在する）ことを図示するように意図されることに留意されたい。
【０１３８】
図９Ａを参照して説明されるように、ウェアラブルデバイス９０２および９０４は、相互または他のユーザデバイスおよびコンピュータシステムと通信してもよい。例えば、Ａｌｉｃｅのウェアラブルデバイス９０２は、例えば、ネットワーク９９０（図９Ａに示される）を介して、Ｂｏｂのウェアラブルデバイス９０４と通信してもよい。ウェアラブルデバイス９０２および９０４は、ユーザの環境および環境内の移動（例えば、個別の外向きに向いた結像システム４６４または１つ以上の場所センサを介して）および発話（例えば、個別のオーディオセンサ２３２を介して）を追跡することができる。ウェアラブルデバイス９０２および９０４はまた、内向きに向いた結像システム４６２によって入手されたデータに基づいて、ユーザの眼移動または視線を追跡することができる。いくつかの状況では、ウェアラブルデバイスはまた、ユーザが反射性表面の近傍に存在する場合、ユーザの顔の表情または他の身体移動（例えば、腕または脚部移動）を捕捉または追跡することができ、外向きに向いた結像システム４６４は、ユーザの反射された画像を取得し、ユーザの顔の表情または他の身体移動を観察することができる。
【０１３９】
ウェアラブルデバイスは、第１のユーザおよび環境の入手された情報を使用して、第２のユーザのウェアラブルデバイスによってレンダリングされ、第２のユーザの環境内における第１のユーザの存在の有形感覚を作成するであろう、仮想アバタをアニメーション化することができる。例えば、ウェアラブルデバイス９０２および９０４および遠隔コンピューティングシステム９２０は、単独で、または組み合わせて、Ｂｏｂのウェアラブルデバイス９０４による提示のために、Ａｌｉｃｅの画像または移動を処理してもよい、またはＡｌｉｃｅのウェアラブルデバイス９０２による提示のために、Ｂｏｂの画像または移動を処理してもよい。本明細書にさらに説明されるように、アバタは、例えば、ユーザの意図、ユーザの環境またはその中にアバタがレンダリングされる環境、またはヒトの他の生物学的特徴等のコンテキスト情報に基づいて、レンダリングされることができる。
【０１４０】
実施例は、２人のみのユーザを参照するが、本明細書に説明される技法は、２人のユーザに限定されるべきではない。ウェアラブルデバイス（または他のテレプレゼンスデバイス）を使用する、複数のユーザ（例えば、２人、３人、４人、５人、６人、またはそれよりも多く）が、テレプレゼンスセッションに参加してもよい。特定のユーザのウェアラブルデバイスは、テレプレゼンスセッションの間、その特定のユーザに、他のユーザのアバタを提示することができる。さらに、本図における実施例は、環境内に立っているユーザを示すが、ユーザは、立っているように要求されない。ユーザのいずれかは、テレプレゼンスセッションの間、立っている、座っている、膝をついている、横になっている、歩いている、または走っていてもよい、または任意の位置または移動状態にあってもよい。ユーザはまた、本明細書の実施例に説明される以外の物理的環境内に存在してもよい。ユーザは、テレプレゼンスセッションを行っている間、別個の環境内に存在してもよい、または同一環境内に存在してもよい。全てのユーザが、テレプレゼンスセッションにおいて、その個別のＨＭＤを装着することが要求されるわけではない。例えば、Ａｌｉｃｅ９１２は、ウェブカメラおよびコンピュータ画面等の他の画像入手およびディスプレイデバイスを使用してもよい一方、Ｂｏｂ９１４は、ウェアラブルデバイス９０４を装着する。
【０１４１】
仮想アバタの実施例
図１０は、ウェアラブルシステムのユーザによって知覚されるようなアバタの実施例を図示する。図１０に示される例示的アバタ１０００は、部屋内の物理的植物の背後に立っている、Ａｌｉｃｅ９１２（図９Ｂに示される）のアバタであることができる。アバタは、例えば、サイズ、外観（例えば、肌色、顔色、髪型、衣類、およびしわ、ほくろ、しみ、にきび、えくぼ等の顔特徴）、位置、配向、移動、姿勢、表現等の種々の特性を含むことができる。これらの特性は、アバタと関連付けられたユーザに基づいてもよい（例えば、Ａｌｉｃｅのアバタ１０００は、実際の人物Ａｌｉｃｅ９１２の一部または全部の特性を有してもよい）。本明細書にさらに説明されるように、アバタ１０００は、コンテキスト情報に基づいて、アニメーション化されることができ、これは、アバタ１０００の特性のうちの１つ以上のものに対する調節を含むことができる。概して、人物（例えば、Ａｌｉｃｅ）の物理的外観を表すように本明細書に説明されるが、これは、限定ではなく、例証のためのものである。Ａｌｉｃｅのアバタは、Ａｌｉｃｅ以外の別の実際または架空のヒト、擬人化されたオブジェクト、創造物、または任意の他の実際または架空の表現の外観を表し得る。さらに、図１０における植物は、物理的である必要はなく、ウェアラブルシステムによってユーザに提示される植物の仮想表現であり得る。また、図１０に示されるものの付加的または異なる仮想コンテンツも、ユーザに提示され得る。
【０１４２】
仮想キャラクタのためのリギングシステムの実施例
ヒトアバタ等のアニメーション化された仮想キャラクタが、全体的または部分的に、コンピュータグラフィック内にポリゴンメッシュとして表されることができる。ポリゴンメッシュ、または略して、単に、「メッシュ」は、モデル化された３次元空間内の点の集合である。メッシュは、その表面が仮想キャラクタ（またはその一部）の身体または形状を定義する、多角形オブジェクトを形成することができる。メッシュは、任意の数の点を含むことができるが（利用可能なコンピューティングパワーによって課され得る、実践的限界内において）、より多くの点を伴うより細かいメッシュは、概して、実在の人々、動物、オブジェクト等により近似し得る、より細かい詳細を伴うより現実的仮想キャラクタを描写することが可能である。図１０は、アバタ１０００の眼の周囲のメッシュ１０１０の実施例を示す。
【０１４３】
メッシュ内の各点は、モデル化された３次元空間内の座標によって定義されることができる。モデル化された３次元空間は、例えば、（ｘ、ｙ、ｚ）座標によってアドレス指定されるデカルト空間であることができる。メッシュ内の点は、ポリゴンの頂点であって、これは、多角形オブジェクトを構成する。各ポリゴンは、多角形オブジェクトの表面、すなわち、面を表し、頂点の順序付けられたセットによって定義され、各ポリゴンの辺は、頂点の順序付けられたセットを接続する、直線縁である。ある場合には、メッシュ内のポリゴン頂点は、それらが必ずしも３Ｄグラフィック内において同一平面にあるわけではないという点で、幾何学的ポリゴンと異なり得る。加えて、メッシュ内のポリゴンの頂点は、共線形であり得、その場合、ポリゴンは、ゼロ面積を有する（縮退ポリゴンと称される）。
【０１４４】
いくつかの実施形態では、メッシュは、３頂点ポリゴン（例えば、略して、三角形または「三角」）または４頂点ポリゴン（例えば、略して、四辺形または「四角」）から成る。しかしながら、高次ポリゴンもまた、いくつかのメッシュでは使用されることができる。メッシュは、直接コンテンツ作成（ＤＣＣ）アプリケーション（例えば、主に、３Ｄコンピュータグラフィックを作成および操作するために設計される、Ｍａｙａ（Ａｕｔｏｄｅｓｋ，  Ｉｎｃ．から利用可能）またはＨｏｕｄｉｎｉ（Ｓｉｄｅ  Ｅｆｆｅｃｔｓ  Ｓｏｆｔｗａｒｅ  Ｉｎｃ．から利用可能）等のアプリケーション）では、典型的には、四角ベースである一方、メッシュは、リアルタイムアプリケーションでは、典型的には、三角ベースである。
【０１４５】
仮想キャラクタをアニメーション化するために、そのメッシュは、その頂点の一部または全部を種々の瞬間における空間内の新しい位置に移動させることによって変形されることができる。変形は、大規模移動（例えば、四肢の移動）および微細移動（例えば、顔移動）の両方を表すことができる。これらおよび他の変形は、実世界モデル（例えば、身体移動、関節運動、顔のゆがみ、表情等を実施する、実際のヒトの写真測量走査）、芸術指向的展開（実世界サンプリングに基づいてもよい）、それらの組み合わせ、または他の技法に基づくことができる。コンピュータグラフィックの初期の段階では、メッシュ変形は、頂点のための新しい位置を独立して設定することによって手動で遂行され得たが、現代のメッシュのサイズおよび複雑性を前提として、典型的には、自動化されたシステムおよびプロセスを使用して変形を生産することが望ましい。これらの変形を生産するための制御システム、プロセス、および技法は、リギング、または単に、「リグ」と称される。図６Ｂの例示的アバタ処理およびレンダリングシステム６９０は、３Ｄモデル処理システム６８０を含み、これは、リギングを実装することができる。
【０１４６】
仮想キャラクタのためのリギングは、骨格系を使用して、メッシュ変形を補助することができる。骨格系は、関節の集合を含み、これは、メッシュの少なくとも一部の関節運動に対応する。リギングのコンテキストでは、関節は、解剖学的意味において使用されるときのこれらの用語間の差異にもかかわらず、時として、「ボーン」とも称される。骨格系内の関節は、関節に適用され得る、変換に従って、相互に対して移動または別様に変化することができる。変換は、空間内の平行移動または回転および他の動作を含むことができる。関節は、相互に対して階層関係（例えば、親−子関係）を割り当てられることができる。これらの階層関係は、ある関節が、別の関節からの変換または他の特性を継承することを可能にすることができる。例えば、骨格系内の子関節は、親関節内の移動に対応する子関節における移動を生じさせるように、その親関節に割り当てられた変換を継承することができる。
【０１４７】
仮想キャラクタのための骨格系は、適切な位置（例えば、解剖学的基準）における関節を用いて、かつ適切な局所回転軸、自由度等を用いて、定義され、所望のセットのメッシュ変形が行われることを可能にすることができる。いったん骨格系が、仮想キャラクタのために定義されると、各関節は、「スキニング」と呼ばれるプロセスにおいて、メッシュ内の種々の頂点に及ぼす影響の量を割り当てられることができる。これは、骨格系内の関節毎に、加重値を各頂点に割り当てることによって行われることができる。変換が、任意の所与の関節に適用されると、その影響下の頂点は、その個別の加重値に依存し得る量だけ、その関節変換に基づいて、自動的に移動または別様に改変されることができる。
【０１４８】
リグは、複数の骨格系を含むことができる。１つのタイプの骨格系は、コア骨格（低次骨格とも称される）であって、これは、仮想キャラクタの大規模移動を制御するために使用され得る。例えば、ヒトアバタの場合、コア骨格は、ヒトの解剖学的骨格に類似し得る。リギング目的のためのコア骨格は、解剖学的に正しい骨格に正確にマッピングされ得ないが、類似配向および移動性質を伴う類似場所における関節のサブセットを有し得る。
【０１４９】
上記に簡単に述べられたように、関節の骨格系は、例えば、関節間の親−子関係を伴う、階層であることができる。変換（例えば、位置および／または配向の変化）が、骨格系内の特定の関節に適用されると、同一変換が、同一階層内の全ての他のより低いレベルの関節に適用されることができる。例えば、ヒトアバタのためのリグの場合、コア骨格は、アバタの肩、肘、および手首のための別個の関節を含んでもよい。これらのうち、肩関節は、階層内で最高レベルを割り当てられてもよい一方、肘関節は、肩関節の子として割り当てられることができ、手首関節は、肘関節の子として割り当てられることができる。故に、特定の平行移動および／または回転変換が、肩関節に適用されると、同一変換がまた、肩と同一方法において平行移動および／または回転されるように、肘関節および手首関節にも適用されることができる。
【０１５０】
その名称の含蓄にもかかわらず、リグ内の骨格系は、必ずしも、解剖学的骨格を表す必要はない。リギングでは、骨格系は、メッシュの変形を制御するために使用される、様々な階層を表すことができる。例えば、髪は、階層連鎖内の一連の関節として表され得、アバタの顔のゆがみに起因する、皮膚の動き（笑顔、眉を顰める、笑う、発話する、瞬目等の表情を表し得る）は、顔リグによって制御される一連の顔関節によって表され得、筋肉変形は、関節によってモデル化されることができ、衣類の動きは、関節のグリッドによって表され得る。
【０１５１】
仮想キャラクタのためのリグは、複数の骨格系を含むことができ、そのうちのいくつかは、その他の移動を駆動し得る。低次骨格系は、１つ以上の高次骨格系を駆動するものである。逆に言えば、高次骨格系は、低次骨格系によって駆動または制御されるものである。例えば、キャラクタのコア骨格の移動は、アニメータによって手動で制御され得るが、コア骨格は、ひいては、高次骨格系の移動を駆動または制御することができる。例えば、高次ヘルパ関節（物理的骨格内の解剖学的類似物を有していなくてもよい）が、コア骨格の移動から生じる、メッシュ変形を改良するために提供されることができる。高次骨格系内のこれらおよび他の関節に適用される変換は、低次骨格に適用される変換からアルゴリズム的に導出されてもよい。高次骨格は、例えば、筋肉、皮膚、脂肪、衣類、髪、または任意の他の骨格系を表すことができ、これは、直接アニメーション制御を要求しない。一般に、いくつかの実施形態では、より低次の骨格系は、デジタルキャラクタの大規模移動を表し得、より高次の骨格系は、デジタルキャラクタの小規模移動を表し得る。
【０１５２】
すでに議論されたように、変換は、メッシュ変形を行うために、骨格系内の関節に適用されることができる。リギングのコンテキストでは、変換は、３Ｄ空間内の１つ以上の所与の点を受け取り、１つ以上の新しい３Ｄ点の出力を生産する、機能を含む。例えば、変換は、関節を定義する、１つ以上の３Ｄ点を受け取ることができ、変換された関節を規定する、１つ以上の新しい３Ｄ点を出力することができる。関節変換は、例えば、平行移動成分、回転成分、およびスケール成分を含むことができる。
【０１５３】
平行移動は、点のセットの配向またはサイズの変化を伴わずに、モデル化された３Ｄ空間内で１つ以上の規定された点のセットを規定された量だけ移動させる、変換である。回転は、規定された量だけ、モデル化された３Ｄ空間内で１つ以上の規定された点のセットを規定された軸を中心として回転させる（例えば、メッシュ内の全ての点をｚ−軸を中心として４５度回転させる）、変換である。アフィン変換（または６自由度（ＤＯＦ）変換）は、平行移動および回転を含むものである。アフィン変換の適用は、そのサイズを変化させずに（但し、配向は、変化することができる）、空間内の１つ以上の点のセットを移動させることであると見なされ得る。
【０１５４】
一方、スケール変換は、その個別の座標を規定された値だけスケーリングすることによって、モデル化された３Ｄ空間内の１つ以上の規定された点を修正するものである。これは、点の変換されたセットのサイズおよび／または形状を変化させる。均一スケール変換は、同一量だけ各座標をスケーリングする一方、非均一スケール変換は、規定された点の（ｘ、ｙ、ｚ）座標を独立してスケーリングすることができる。非均一スケール変換は、例えば、筋肉作用から生じ得るもの等の収縮および伸展効果を提供するために使用されることができる。さらに別のタイプの変換は、剪断変換である。剪断変換は、軸からのその座標の距離に基づいて、異なる量だけ点の座標を平行移動させることによって、モデル化された３Ｄ空間内の１つ以上の規定された点のセットを修正するものである。
【０１５５】
変換が、関節に適用され、それを移動させると、その関節の影響下の頂点もまた、移動される。これは、メッシュの変形をもたらす。上記に議論されるように、加重を割り当て、各関節が各頂点に及ぼす影響を定量化するプロセスは、スキニング（または時として、「加重ペインティング」または「スキン加重」）と呼ばれる。加重は、典型的には、０（無影響を意味する）と１（完全影響を意味する）との間の値である。メッシュ内のいくつかの頂点は、単一関節によってのみ影響され得る。その場合、それらの頂点は、その関節のために、１の加重値を割り当てられ、その位置は、その他ではなく、その具体的関節に割り当てられた変換に基づいて変化される。メッシュ内の他の頂点は、複数の関節によって影響され得る。その場合、０〜１の別個の加重が、影響を及ぼす関節毎に、それらの頂点に割り当てられ、頂点毎の加重の和は、１に等しい。これらの頂点の位置は、その影響を及ぼす関節の全てに割り当てられる変換に基づいて、変化される。例えば、デジタルキャラクタが、その腕を挙げる場合、その合計５０個のより低次の骨／関節（足、脚部、指関節等）のうちの２つ（鎖骨および肩関節）のみが、非ゼロ加重を有し得る。鎖骨は、肩加重（例えば、０．３）より大きい加重（例えば、０．７）を有し、比較的に小鎖骨移動が、鎖骨および肩の両方に割り当てられる、頂点を変形させるために十分であることを確実にし得る。
【０１５６】
メッシュ内の頂点の全てのための加重割当を行うことは、特に、関節の数が増加するにつれて、極度に労働集約的となり得る。関節に適用される変換に応答して、加重を平衡し、所望のメッシュ変形を達成することは、高度に訓練された専門家にとってさえ非常に困難であり得る。リアルタイムアプリケーションの場合、タスクは、多くのリアルタイムシステムがまた、具体的頂点に加重され得る、関節の数（概して、８つまたはより少ない）に関する限界を強いるという事実によって、さらに複雑になり得る。そのような限界は、典型的には、グラフィック処理ユニット（ＧＰＵ）内の効率の目的のために課される。
【０１５７】
用語「スキニング」はまた、骨格系内の関節に適用される変換に基づいて、割り当てられた加重を使用して、メッシュを実際に変形させるプロセスを指す。例えば、一連のコア骨格関節変換が、アニメータによって、所望のキャラクタ移動（例えば、走っている動きまたはダンスステップ）を生産するように規定され得る。変換が、関節のうちの１つ以上のものに適用されると、新しい位置が、変換された関節の影響下の頂点のために計算される。任意の所与の頂点のための新しい位置は、典型的には、その特定の頂点に影響を及ぼす、全ての関節変換の加重平均として算出される。本加重平均を算出するために使用される、多くのアルゴリズムが存在するが、最も一般的であって、かつその単純性および制御の容易性に起因して、大部分のリアルタイムアプリケーションにおいて使用されるものは、線形ブレンドスキニング（ＬＢＳ）である。線形ブレンドスキニングでは、頂点毎の新しい位置が、それに関してその頂点が非ゼロ加重を有する、各関節変換を使用して計算される。次いで、これらの関節変換のそれぞれから生じる、新しい頂点座標が、関節毎のその頂点に割り当てられる個別の加重に比例して平均される。実際は、ＬＢＳに対する周知の限界が存在し、高品質リグを作成する際の作業の多くは、これらの限界を見出し、克服することに費やされる。多くのヘルパ関節システムが、本目的のために具体的に設計される。
【０１５８】
スキニングに加え、「ブレンドシェイプ」はまた、リギングにおいて、メッシュ変形を生産するためにも使用されることができる。ブレンドシェイプ（時として、「モーフ標的」または単に「形状」とも呼ばれる）は、メッシュ内の頂点のセットに適用される変形であって、セット内の各頂点は、加重に基づいて、規定された量だけ規定された方向に移動する。セット内の各頂点は、具体的ブレンドシェイプのためのその独自のカスタム運動を有し得、セット内の頂点を同時に移動させることは、所望の形状を生成するであろう。ブレンドシェイプ内の頂点毎のカスタム運動は、「デルタ」によって規定されることができ、これは、その頂点に適用されるＸＹＺ運動の量および方向を表す、ベクトルである。ブレンドシェイプは、例えば、顔変形を生産し、いくつかの可能性のみを挙げると、眼、唇、眉、鼻、えくぼ等を移動させるために使用されることができる。ブレンドシェイプは、頂点のセットに関して、中立姿勢をゼロとして、標的姿勢を１として定義するステップを含む、任意の方法によって作成されてもよく、ブレンドシェイプ加重は、頂点のセット、加重、または割合、すなわち、中立姿勢と標的姿勢との間の量を移動させる。スキニングおよびブレンドシェイプは両方とも、加重を要求し、それらは両方とも、メッシュを変形させるが、スキニングおよびブレンドシェイプはそれぞれ、その独自の別個の加重を有する。概して、ブレンドシェイプは、付加的メッシュ変形のために、スキニングの上に構築されてもよい。
【０１５９】
ブレンドシェイプは、芸術指向的方法においてメッシュを変形させるために有用である。それらは、正確な形状がモデルの走査からスカルピングまたは捕捉され得るにつれて、大量の制御をもたらす。しかし、ブレンドシェイプの利点は、ブレンドシェイプ内の全ての頂点のためのデルタを記憶する必要があることを代償とする。細かいメッシュおよび多くのブレンドシェイプを伴うアニメーション化されたキャラクタに関して、デルタデータの量は、有意となり得る。
【０１６０】
各ブレンドシェイプは、ブレンドシェイプ加重を使用することによって、規定された程度まで適用されることができる。これらの加重は、典型的には、０（ブレンドシェイプは、全く適用されない）から１（ブレンドシェイプが、完全にアクティブである）に及ぶ。例えば、キャラクタの眼を移動させるためのブレンドシェイプは、眼を小量だけ移動させるための小加重を伴って適用されることができる、またはより大きい眼移動を作成するための大加重を伴って適用されることができる。
【０１６１】
リグは、相互に組み合わせて、所望の複雑な変形を達成するために、複数のブレンドシェイプに適用されてもよい。例えば、笑顔を生産するために、リグは、口角を引っ張り、上唇を持ち上げ、下唇を下げ、および眼、眉、鼻、およびえくぼを移動させるために、ブレンドシェイプに適用されてもよい。２つ以上のブレンドシェイプを組み合わせることからの所望の形状は、組み合わせ形状（または単に、「コンボ」）として知られる。
【０１６２】
２つのブレンドシェイプを組み合わせて適用することから生じ得る、１つの問題は、ブレンドシェイプが、同一頂点のうちのいくつかに作用し得ることである。両ブレンドシェイプが、アクティブであるとき、結果は、二重変換または「離脱モデル」と呼ばれる。これに対するソリューションは、典型的には、補正ブレンドシェイプである。補正ブレンドシェイプは、中立点に対する所望の変形を表すのではなく、現在適用されている変形に対する所望の変形を表す、特殊ブレンドシェイプである。補正ブレンドシェイプ（または単に、「補正」）は、それらが補正するブレンドシェイプの加重に基づいて、適用されることができる。例えば、補正ブレンドシェイプのための加重は、補正ブレンドシェイプの適用をトリガする、下層ブレンドシェイプの加重に比例するように行われることができる。
【０１６３】
補正ブレンドシェイプはまた、スキニング異常を補正する、または変形の品質を改良するために使用されることができる。例えば、関節が、具体的筋肉の運動を表し得るが、単一変換として、皮膚、脂肪、および筋肉の全ての非線形挙動を表すことができない。筋肉がアクティブ化するにつれて、補正または一連の補正を適用することは、より魅力的かつ説得力のある変形をもたらし得る。
【０１６４】
リグは、層内に構築され、より低次かつ単純な層は、多くの場合、高次層を駆動する。これは、骨格系およびブレンドシェイプ変形の両方に適用される。例えば、すでに述べられたように、アニメーション化された仮想キャラクタのためのリギングは、低次骨格系によって制御される、高次骨格系を含んでもよい。制約、論理システム、および姿勢ベースの変形を含む、低次骨格に基づいて、高次骨格またはブレンドシェイプを制御するための多くの方法が存在する。
【０１６５】
制約は、典型的には、特定のオブジェクトまたは関節変換が、別の関節またはオブジェクトに適用される変換の１つ以上の成分を制御する、システムである。多くの異なるタイプの制約が、存在する。例えば、照準制約は、標的変換の回転を変化させ、具体的方向または具体的オブジェクトに向ける。親制約は、対の変換間の仮想親−子関係として作用する。位置制約は、変換を具体的点または具体的オブジェクトに制約する。配向制約は、変換をオブジェクトの具体的回転に制約する。
【０１６６】
論理システムは、入力のセットを前提として、いくつかの出力を生産する、数学的方程式のシステムである。これらは、学習されるのではなく、規定される。例えば、あるブレンドシェイプ値が、２つの他のブレンドシェイプの積として定義され得る（これは、組み合わせまたはコンボ形状として知られる補正形状の実施例である）。
【０１６７】
姿勢ベースの変形もまた、高次骨格系またはブレンドシェイプを制御するために使用されることができる。骨格系の姿勢は、その骨格系内の全ての関節のための変換（例えば、回転および平行移動）の集合によって定義される。姿勢はまた、骨格系内の関節のサブセットのためにも定義されることができる。例えば、腕姿勢が、肩、肘、および手首関節に適用される変換によって定義され得る。姿勢空間デフォーマ（ＰＳＤ）は、特定の姿勢と定義された姿勢との間の１つ以上の「距離」に基づいて、その姿勢のための変形出力を決定するために使用される、システムである。これらの距離は、姿勢のうちの１つが他のものと異なる程度を特性評価する、メトリックであることができる。ＰＳＤは、姿勢補間ノードを含むことができ、これは、例えば、関節回転（姿勢を定義する）のセットを入力パラメータとして受け取り、ひいては、正規化された姿勢毎の加重を出力し、ブレンドシェイプ等のデフォーマを駆動する。姿勢補間ノードは、放射基底関数（ＲＢＦ）を用いたものを含む、種々の方法において実装されることができる。ＲＢＦは、関数の機械学習された数学的近似を実施することができる。ＲＢＦは、入力およびその関連付けられた予期される出力のセットを使用して、訓練されることができる。訓練データは、例えば、関節変換（特定の姿勢を定義する）およびそれらの姿勢に応答して適用されるべき対応するブレンドシェイプの複数のセットであり得る。いったん関数が、学習されると、新しい入力（例えば、姿勢）が、与えられることができ、その予期される出力が、効率的に算出されることができる。ＲＢＦは、人工ニューラルネットワークの亜種である。ＲＢＦは、より低いレベルの成分の状態に基づいて、リグのより高いレベルの成分を駆動するために使用されることができる。例えば、コア骨格の姿勢は、より高いレベルにおいて、ヘルパ関節および補正を駆動することができる。
【０１６８】
これらの制御システムは、ともに連鎖化され、複雑な挙動を実施することができる。実施例として、眼リグは、水平および垂直回転のための２つの「見回し」値を含有し得る。これらの値は、いくつかの論理を通して通過され、眼関節変換の正確な回転を決定することができ、これは、ひいては、眼瞼の形状を変化させ、眼の位置に合致させる、ブレンドシェイプを制御する、ＲＢＦへの入力として使用され得る。これらの形状のアクティブ化値は、付加的論理等を使用して、顔の表情の他の成分を駆動するために使用され得る。
【０１６９】
リギングシステムの目標は、典型的には、単純なヒトが理解可能な制御システムに基づいて、魅力的かつ高忠実性の変形を生産するための機構を提供することである。リアルタイムアプリケーションの場合、目標は、典型的には、最終品質に対して可能な限り少ない妥協点をもたらしながら、例えば、ＶＲ／ＡＲ／ＭＲシステム２００上で、リアルタイムで起動されるために十分に単純である、リギングシステムを提供することである。いくつかの実施形態では、３Ｄモデル処理システム６８０は、（ＶＲ／ＡＲ／ＭＲシステムのユーザと）双方向的であって、ユーザの環境内で適切なコンテキストアバタ挙動（例えば、意図ベースの挙動）を提供するように、リギングシステムを実行し、複合現実環境１００内でアバタをリアルタイムでアニメーション化する。
【０１７０】
ＮＮ方法の概要
図１１は、本明細書に説明されるシステムおよび方法を使用してデジタルキャラクタリグを駆動するプロセス１１００の例示的概要を図示する。プロセス１１００は、例えば、ローカル処理およびデータモジュール２６０、遠隔処理モジュール２７０、遠隔コンピューティングシステム９２０、またはそれらの組み合わせ等のウェアラブルシステム２００と関連付けられるハードウェアプロセッサによって実施されることができる。
【０１７１】
上記に説明されるように、デジタルキャラクタは、デジタルキャラクタリグによって表される。いくつかの実施形態では、アバタは、低次デジタルキャラクタリグによって表される。アバタは、図９Ｂに説明される９０２または９０４等のウェアラブルデバイスを装着しているユーザのアバタであり得る。ユーザは、ウェアラブルデバイスの別のユーザとアバタチャット中であり得、例えば、第１のユーザである、Ａｌｉｃｅには、例えば、第２のユーザである、Ｂｏｂの仮想デジタルアバタが見える。一実施例では、ＡｌｉｃｅおよびＢｏｂは、仮想ダンスパーティを開催し得、アバタは、ＹＭＣＡの曲に合わせてダンスしている。アバタは、図９Ｂに示されるものに類似する、中立、すなわち、Ａ−姿勢において、ダンスセッションを開始し、次いで、文字Ｙをその腕で形成するように移動し、したがって、新しいリグ姿勢を要求し得る。
【０１７２】
システムは、デジタルキャラクタの姿勢（例えば、新しいダンス姿勢）の変化に関するインジケーションを受信する（１１０２）。ダンス姿勢と関連付けられる、低次デジタルキャラクタリグパラメータが、ＮＮの中にフィードされる（１１０４）。ＮＮプロセスが、ＮＮを実行するように構成されるシステム上で実行され（１１０６）、次いで、新しいダンス姿勢を表す、高次デジタルキャラクタリグパラメータを出力する（１１０８）。出力は、次いで、高次デジタルキャラクタリグを駆動するために使用され得（１１１０）、これは、本実施例では、ＡｌｉｃｅおよびＢｏｂのアバタが文字Ｙを形成することを可能にし得る。例えば、ウェアラブルディスプレイシステム２００は、デジタルキャラクタリグパラメータを使用して、ディスプレイ２２０によって、システム２００のユーザ２１０にアバタをレンダリングすることができる。
【０１７３】
入力および出力
図１２Ａは、図１１における１１０４での入力のためのパラメータを提供するであろう、例示的低次デジタルキャラクタリグを図示し、図１２Ｂは、図１１における１１１０で説明されるような例示的高次デジタルキャラクタリグを図示する。上記に説明されるように、低次骨格１２００Ａは、解剖学的骨格に類似して見える、骨格の簡略化されたバージョンを表し得る。骨および関節は、概ね、解剖学的骨格と類似位置に位置する。例えば、ｃとｂとの間の線１２０２は、鎖骨を表し得、ｅ１２０４は、肩関節を表し得る。
【０１７４】
図１２Ａにおける低次骨格は、ａ−ｊとして標識された９つの関節／骨によって表される、９つの入力パラメータを有する。９つの入力パラメータは、例証目的のためだけに示され、本発明の範囲を限定すべきではない。実践では、１、２、５、１０、１００、１，０００、またはそれを上回る、より少ないまたはより多い入力パラメータが、使用され得、他の身体部分から少なくとも半独立的に、移動する必要がある、身体部分の数に依存し得る（故に、操作されている特定のデジタルキャラクタに依存し得る）。入力パラメータは、関節、骨、ブレンドシェイプ、および／または低次骨格を表す任意の他の方法であり得る。
【０１７５】
高次骨格１２００Ｂは、上記に説明されるように、低次骨格上に追加され得る、靱帯、腱、および／または付加的骨を表してもよい。これは、変形が、より良好な筋緊張および全体的形状を伴って、より現実的かつ生きているように現れることを可能にする。図１２Ｂにおける高次骨格は、６つの高次出力パラメータｋ−ｐを有する。６つの高次出力パラメータは、例証目的のためだけに使用され、本発明の範囲を限定すべきではない。実践では、１、５、１０、１００〜１，０００、またはそれを上回る、より少ないまたはより多い入力パラメータが、使用され得る。出力パラメータは、関節、骨、高次補正、および／または高次骨格を表す任意の他の方法であり得る。
【０１７６】
代替実施形態では、入力および出力は両方とも、高次骨格表現を表し得る、またはそれらは両方とも、低次骨格表現を表し得る。いくつかの例示的実施形態では、本明細書における方法およびシステムは、既知の訓練またはサンプル姿勢間を補間する方法として機能する。
【０１７７】
実践では、所与の骨は、複数の線形成分（ｘ、ｙ、ｚにおける平行移動、骨長、スケール、および他のもの）を有することができるが、例証を容易にするために、開示される実施形態は、単一値によって表される線形成分を用いて説明される。加えて、各要求されるデジタルキャラクタ姿勢１１０４は、コンテキストに応じて、パラメータ毎に角度および／または線形成分を有していなくてもよい。例えば、要求されるデジタルキャラクタ姿勢１１０４が、中立姿勢と実質的に同一である場合、値の大部分は、ゼロであって、中立からの関節オフセットのセットのみが、非ゼロ値を有するであろう。
【０１７８】
いくつかの実施形態では、入力は、低次デジタルキャラクタリグパラメータであって、出力は、高次デジタルキャラクタリグパラメータである。低次入力から開始することは、その中に本発明が存在する、より広範なシステムに有益であり得る。典型的には、低次リグパラメータは、高次リグパラメータが低次リグパラメータから計算されるため、高次リグパラメータと比較して、生成がより容易かつより高速である。本明細書に説明される実施形態は、入力または出力が高または低次であるかどうかにかかわらず機能する。低次入力から開始するが、高次出力を有することは、より高速の処理速度の付加的利点を提供し得、したがって、いくつかの実施形態では、リアルタイム性能を可能にする。
【０１７９】
図１３Ａ−１３Ｂはさらに、デジタルキャラクタリグに関する姿勢を図示および定義する。入力姿勢は、所与の姿勢に関する関節、ブレンドシェイプ、および／または骨のセットの値を表すが、いくつかの実施形態では、姿勢は、中立位置に関して説明され得ることが、依然として当てはまる。中立位置は、任意の姿勢であることができるが、Ａ−姿勢（図１２Ａ−１２Ｂに示されるように）またはＴ−姿勢が、一般に、使用される。実践では、ＮＮの中にフィードされる入力姿勢は、姿勢１３００Ａと選定された中立姿勢１３００Ｂとの間の差異であり得る。入力姿勢１３００Ａは、図１１に関して参照されるように、アバタがＹＭＣＡに合わせてダンスしている、したがって、文字Ｙを形成するものであってもよい。したがって、入力姿勢は、中立姿勢に対する姿勢の相対的平行移動および回転を表し得る。
【０１８０】
いくつかの実施形態では、低次キャラクタリグ１３００Ａは、９つの入力パラメータによって表されてもよい。それらの９つの入力パラメータはそれぞれ、角度および線形成分を有し、入力姿勢を説明する合計１８パラメータを与え得る。角度パラメータは、ＳＯ（３）角度空間内で４つの値（ｘ、ｙ、ｚ、ｗ）を含むベクトルとして表され得る。線形パラメータは、線形成分が１つの値によって表され得る、簡略化仮定を使用してもよい。これは、いくつかの実施形態では、中立姿勢に対するデジタルキャラクタの入力姿勢を表す、９つの線形入力パラメータ＋９つの角度パラメータ＊４（ｘ、ｙ、ｚ、ｗ）＝４５個のパラメータが存在し得ることを意味する。
【０１８１】
いくつかの実施形態では、入力姿勢は、中立位置に対するものではなく、代わりに、固定座標系または任意の他の好適な基準系に対するものであり得る。
【０１８２】
ＲＢＦＮＮコンテンツ
１つ以上のデジタルキャラクタ姿勢を補間するように構成される、ニューラルネットワークの第１の例示的実施形態は、下記にさらに詳細に説明されるように、線形および角度成分を分離するように構成される、ＲＢＦＮＮである。
【０１８３】
図１４は、ＲＢＦＮＮ１６０４（図１６を参照して説明される）内の各サンプルノード１４００内に含有される、種々の成分を図示する。４つの主要な成分、すなわち、訓練姿勢のセット１４０２、放射基底関数１４０４、距離加重γのセット１４０６、および基底加重ｗのセット１４０８が、説明されるであろうが、いくつかの実施形態は、より多いまたはより少ない成分を含有してもよい。
【０１８４】
いくつかの実施形態では、各サンプルノードは、訓練姿勢のセット１４０２を含有してもよい。これらの訓練姿勢は、任意のタイプのＮＮのために使用されてもよく、ＲＢＦＮＮに限定されない。これらの訓練姿勢は、姿勢空間を横断したデジタルキャラクタの姿勢のセットを表す。訓練姿勢は、所望のアニメーションシーケンスから得られた静的姿勢のセットとして編成されてもよい、またはそれらは、個々の姿勢であってもよい。例えば、訓練姿勢のうちのいくつかは、挙足を表してもよい。第１の姿勢は、左および右脚部の両方をともに真っ直ぐ下ろすことであり得る。第２、第３、および第４の姿勢は、右脚部を２０度、次いで、６０度、次いで、９０度挙げることであり得る。脚部を真っ直ぐにした状態で、それらの角度を通して脚部を移動させる、１つの一連の訓練姿勢と、膝を曲げた状態で、脚部を以前に述べられた角度で挙げる、異なる一連の訓練姿勢とが、存在し得る。プロセスは、左脚部に関しても同様に繰り返され得る。任意の数の訓練姿勢が、選択および使用されてもよく、本発明の範囲を限定するものではない。上記に述べられたように、理想的には、要求される訓練姿勢が少ないほど、より良好であって、入力を集め、ＮＮを訓練および起動するために要求される、時間量および労力を低減させる。システムがリアルタイムで起動する必要がある、コンテキストでは、訓練姿勢の数を最小限にすることが重要である。しかしながら、これは、少なすぎる訓練姿勢が使用される場合、システムは、姿勢をそれほど正確に補間し得ないことの認識と平衡される必要がある。
【０１８５】
図１５Ａ−１５Ｃは、使用され得る、３つの潜在的訓練姿勢を図示する。図１５Ａ−１５Ｃは、人物がその腕を曲げている、姿勢のシーケンス内の種々の姿勢を表し得る。
【０１８６】
いくつかの実施形態では、各サンプルノードは、放射基底関数１４０４を含有してもよい。本関数は、全てのサンプルノードに関して同一である（１つのサンプルノードが、ＲＢＦ毎に訓練姿勢あたりで作成される）。これは、距離関数と、距離関数の出力に適用される、基底関数とから成る。本関数の合成は、標準ＲＢＦ式である。しかしながら、ＲＢＦにおける距離関数は、典型的には、ユークリッドノルム等の単純関数である。これは、入力が典型的には同一タイプであるため、可能である。しかしながら、デジタルキャラクタリグのための入力は、複数のタイプを有し、線形および角度空間の両方におけるパラメータを含む。
【０１８７】
いくつかの実施形態では、各サンプルノードは、距離加重γのセット１４０６を含有してもよい。ｎ個の入力（低次関節、骨、ブレンドシェイプ等）に関してｎ個の線形およびｎ個の角距離加重、合計２＊ｎ個の距離加重が、存在する。これらの距離加重は、下記に議論されるように、ＲＢＦ距離関数において使用され、ユーザによって割り当てられる、部分的にユーザによって割り当てられる、および／または訓練の間に計算される。これらの距離加重は、複数の入力タイプおよび異なるタイプの入力をともに構成する必要性に起因して、必要とされる。一例示的入力タイプは、足首関節タイプであって、第２の入力タイプは、膝関節である。膝関節は、足首関節より大きい移動範囲を有する。デジタルキャラクタが、例えば、ボールを蹴るために、その下半身を移動させる必要がある場合、本距離加重のセットは、より小さい足首移動が、より大きい膝関節移動と比較して、丸め誤差として包摂されないことを確実にすることに役立つであろう。より多いまたはより少ない加重が、入力の形態に合致するために使用されてもよい。前述のように、１つの簡略化仮定は、線形パラメータが１つのみの値を有する（４つの値を有する角度パラメータとは対照的に）と仮定するものである。代替実施形態では、システムが、代わりに、３つの値から成る線形パラメータで設定される場合、入力パラメータ値あたり１つの等数の距離加重が、要求されるであろう。代替実施形態は、各線形入力および各角度入力を表す、任意の数の値を有してもよく、各入力パラメータ値に対応する等数の距離加重を有してもよい。
【０１８８】
いくつかの実施形態では、各サンプルノードは、基底加重ｗのセット１４０８を含有してもよい。ｍ個の出力（高次関節、骨、高次補正等）に関して、ｍ個の線形および４＊ｍ個の角度基底加重値が存在し得る。本発明のシステムおよび方法のいくつかの実施形態では、４つの値が、角度出力毎に算出され得、したがって、デジタルキャラクタリグを駆動する角度出力毎に、複数の基底加重が存在する。これらの基底加重は、ネットワークの訓練相の間に計算され、評価（例えば、訓練相とは対照的に、ＲＢＦＮＮの使用相）の間、固定される。基底加重計算は、ＲＢＦＮＮの標準的技法を使用して行われる。典型的ＲＢＦＮＮを用いることで、各出力は、独立していると見なされ、出力と同数の基底加重が存在する。我々の出力のうちのいくつかは、角度であって、単一の実数を上回る数（例えば、ｘ、ｙ、ｚ、ｗを表し得る、４つの値）を要求するため、出力毎に複数の基底加重を有し、下記でさらに説明されるように、余剰ステップを実施し、これらの値を角度出力の中に構成する。任意の数の出力が、計算されてもよい。いくつかの実施形態では、１、５、１０、１００、または１，０００、またはそれを上回る出力パラメータが、計算されてもよい。ＲＢＦＮＮシステムによって提供される出力の数にかかわらず、出力あたり１つの基底加重ｗが存在してもよい。
【０１８９】
ＲＢＦＮＮからのデジタルキャラクタの出力姿勢を補間するためのシステムの略図
図１６は、ＲＢＦＮＮからのデジタルキャラクタの出力姿勢をシステム内で通信される例示的データで補間するためのシステムの略図である。略図１６００は、１６０２から開始し、そこで、デジタルキャラクタリグに関する新しい姿勢が、ｎ個の入力パラメータによって表される。新しい姿勢は、アバタがＹＭＣＡダンスシーケンスにおいてＹを作ることであってもよい。いくつかの実施形態では、入力姿勢は、中立基準姿勢との間の線形および角度差として表され得る。いくつかの実施形態では、線形パラメータは、単一実数によって表されてもよく、角度パラメータは、オイラー角等の任意の好適な角度数量、回転行列、軸角度、クォータニオン等によって表されてもよい。入力は、ＲＢＦＮＮの中にフィードされるデータが線形および角度群に分離される限り、システムによって受信されることに先立って、またはシステム内のステップとしてのいずれかにおいて、線形および角度成分のセットに分離されてもよい。ｎ個の入力に関して、姿勢を表す合計２＊ｎ個の入力パラメータのためのｎ個の線形およびｎ個の角度パラメータが、存在する。各パラメータは、４つの値を含む各角度パラメータおよび１つの値を含む各線形パラメータ等、１つ以上の値から成ってもよい。各パラメータは、ここに提供される実施例より多くまたはより少なく含んでもよく、本発明の範囲を限定するものとして解釈されるべきではない。分離された線形および角度入力パラメータは、ＲＢＦＮＮ１６０４に渡され、サンプルノード１６０６のそれぞれに入力される。訓練姿勢あたり１つのサンプルノードが、存在する。ここまでの新規な点の１つは、角度を線形パラメータから分離することである。入力パラメータ（線形および角度パラメータに分離される）は全て、サンプルノードの全てに渡される。
【０１９０】
各サンプルノード１６０６は、図１４を参照して説明されるノード１４００内に規定された４つの成分１４０２、１４０４、１４０６、１４０８を含有してもよいが、より多いまたはより少ない成分を含有してもよい。
【０１９１】
サンプルノード１６０６はそれぞれ、入力値毎に１つずつ、距離のセットを算出してもよい。線形入力に関して、距離は、入力値とＲＢＦＮＮ内に含有される各訓練（例えば、サンプル）姿勢からの対応する値との間のユークリッド距離である。代替実施形態では、任意の他の好適な線形距離方程式が、使用されてもよい。角度入力に関して、距離は、ＳＯ（３）空間内で計算される角距離であってもよい。典型的には、ＲＢＦＮＮは、線形入力のみを有し、ユークリッドノルムのみを使用する。
【０１９２】
サンプルノード１６０６はまたそれぞれ、異なるタイプのデータを考慮する、最終距離を計算してもよい。単一実数である、最終距離は、上記に説明されるように、加重γ１４０６を使用して、加重されたユークリッドノルムとして算出される。本加重は、新規な点であって、典型的ＲＢＦＮＮに見出されないものである。
【０１９３】
サンプルノード１６０６はそれぞれ、基底値を計算してもよい。少なくとも部分的に、最終距離から計算される、本値は、基底関数の出力であって、全てのＲＢＦＮＮに標準である。概して、放射基底関数は、放射関数のネットワークである。本関数のクラスは、距離および放射関数の適切な選択肢を用いて一般的な未知の関数を近似させる際に有用であることが示されている。放射関数は、原点からのその距離に基づいて、その値が定義される、関数であるが、原点以外の基準点が、使用されてもよく、距離は、典型的には、ユークリッド距離に対して定義される。放射基底関数は、複数の放射関数にわたる和であり得る。
【０１９４】
サンプルノード１６０６はまたそれぞれ、ｗによって加重された基底値を計算してもよい。これは、サンプルノード１６０６の出力である。基底値は、ｗの基底加重のそれぞれによって乗算され、対応する累積ノード１６０８または１６１０に渡されてもよい。１つは、線形出力１６０８のためのもであって、１つは、角度出力１６１０のためのものである、２つの累積ノードが、存在してもよい。線形出力は、各サンプルから渡された加重された値の和として計算されてもよい。各サンプルノードは、４つの値を各角度累積ノードに渡す（単一実数値は、図１６では、円形によって表される）。これらの値は、線形出力と同一方法で累積され、４つの和をもたらし得る。最初の３つの和は、回転軸ベクトルのｘ、ｙ、ｚ成分として使用されてもよい。本回転軸ベクトルは、単位長にスケーリングされてもよい。第４および最終値は、回転軸の周囲の角回転値として使用され、３Ｄ回転の共通角度軸表現を提供し得、これは、対応する関節、骨、高次補正、または他の高次リグ表現に角度出力として出力されてもよい。最後に、全ての出力１６１２は、外部システムに渡され、デジタルキャラクタを駆動する。
【０１９５】
ＲＢＦＮＮの例示的訓練
図１７は、本明細書に開示されるＲＢＦＮＮを訓練するための例示的プロセスを図示する。プロセス１７００は、デジタルキャラクタリグのコンテキストにおいてＲＢＦＮＮを訓練するためのプロセスを図示するが、しかしながら、他のコンテキストも、可能性として考えられることを理解されたい。本明細書に開示される本発明から最も利点を享受する、コンテキストは、下記でさらに開示されるであろうように、２つ以上の異なるタイプのデータから成る、および／または角度入力を含むものである。プロセス１７００は、ＮＮを訓練するために好適なハードウェアプロセッサによって実施されることができる。いくつかの実施形態では、訓練は、遠隔処理モジュール２７０または遠隔コンピューティングシステム９２０によって実施されることができる。訓練されたＲＢＦＮＮは、ネットワーク９９０を介して、ウェアラブルシステム２００に通信されることができる。いくつかの実施形態では、ウェアラブルシステム２００は、付加的訓練データを入手することができ、ＲＢＦＮＮはさらに、例えば、ローカル処理およびデータモジュール２６０、遠隔処理モジュール２７０、または遠隔コンピューティングシステム９２０によって訓練されることができ、これは、具体的姿勢またはウェアラブルシステム２００のユーザ２１０によって視認されるデジタルキャラクタに対してＲＢＦＮＮを個人化することに役立ち得る。
【０１９６】
ブロック１７０２では、デジタルキャラクタ姿勢の訓練セットが、受信され、入力は、低次デジタルキャラクタリグ姿勢パラメータを表し得、出力は、高次デジタルリグ姿勢パラメータを表し得る。上記に述べられたように、代替実施形態は、両方とも高次デジタルキャラクタリグを表す入力および出力または両方とも低次デジタルキャラクタリグを表す入力および出力等、他の入力／出力訓練データセットを使用してもよい。代替実施形態では、入力データは、デジタルキャラクタリグを表さない場合があるが、依然として、１つを上回るタイプから成る、および／または角度データを含む、入力を有し得る。
【０１９７】
ブロック１７０４では、訓練データが、角度および線形パラメータに分離される。上記に述べられたように、角度および線形パラメータは、補間結果を改良するために分離される。角度パラメータが、線形方程式または処理を使用して補間されるとき、ジンバルロック、高速フリップ、および／または符号の変化または単一角回転が複数の方法で表され得る面積等、望ましくない出力が、生じ得る。代替実施形態では、訓練データは、例えば、下記に説明されるであろうように、サブセット毎に一意の距離計算を用いて、データのサブセットが後続特殊処理から利点を享受し得る限り、データの２つ以上のサブセットに分離されてもよい。角度および線形データは、任意の好適な方法を使用して分離されてもよい。例えば、スクリプト、コンピュータプログラム、または他の一連のコードが、角度データの形態（例えば、４つの要素を含有する、ベクトル）および線形データの形態（例えば、単一値）を認識し、入力データのフォーマット別にデータを自動的にグループ化し得るように作成されてもよい。代替として、入力データは、入力データソースから事前にタグ付けされてもよく、したがって、システムは、単に、タグを読み取り、事前に定義された方法に従って、入力データを操作することができる。いくつかの実施形態では、入力データのフォーマットは、出力データの所望のフォーマットを定義し、任意の数の前または後処理ステップが、データを操作し、所望のデータフォーマットに合致させるために追加されてもよい。
【０１９８】
ブロック１７０８および１７１０では、ＲＢＦＮＮの距離関数が、定義され得る。ブロック１７１０は、線形パラメータのための距離関数を定義し得る。これは、概して、ユークリッドノルムとして定義されるが、他の距離関数も、可能性として考えられ、Δ（ｑ１，ｑ２）＝||ｑ１−ｑ２||として記述され得る、または代替として（より一般には）、Ψ（ｘ）＝Ψ（||ｘ||）として記述され得る（式中、Ψは、距離が原点に対して定義されるときの放射関数である）、または代替として、距離が原点以外の点に対して定義されるとき、Ψ（ｘ）＝Ψ（||ｘ−ｃ||）として記述され得る。線形距離関数は、代替として、Ψ（ｘ）＝Ψ（Δ（ｘ，ｃ））として任意の距離関数Δを使用して一般化されてもよい。ブロック１７０８は、角度パラメータのための距離関数を定義し得る。２つの回転間の角距離は、０〜１８０度または０〜πラジアンの範囲内であってもよい。２つの角度間の距離は、Δ（ｑ１，ｑ２）＝ａｃｏｓ（２＜ｑ１，ｑ２＞２−１）によって定義されてもよく、式中、ｑ１およびｑ２は、クォータニオンとして表される角度であり得、＜ｑ１，ｑ２＞は、対応するクォータニオンの内積を示し、例えば、ｑ１＝［ｘ１，ｙ１，ｚ１，ｗ１］およびｑ２＝［ｘ２，ｙ２，ｚ２，ｗ２］および＜ｑ１，ｑ２＞＝ｘ１ｘ２＋ｙ１ｙ２＋ｚ１ｚ２＋ｗ１ｗ２である。本実施形態では、距離メトリックは、対称であって、Δ（ｑ１，ｑ２）＋Δ（ｑ２，ｑ３）≠Δ（ｑ１，ｑ３）であって、これは、平行移動／回転の異なるセットが各腕上で行われたため、両腕が、ユーザの正面に挙げられた状態で標的位置にあるが、手が、異なるように配向される状態を実証する、前述に説明される挙腕実施例の数学的表現であり得る。ブロック１７０８および１７１０は、角度および線形距離関数を規定するが、代替実施形態は、操作されているデータのタイプにより良好な好適な他の関数を利用してもよい。
【０１９９】
ブロック１７１２および１７１４は、プロセス１７００における随意のステップであって、線形および角度パラメータに関する距離加重γを割り当てるステップを図示する。図１４の１４０６を参照して上記に述べられたように、ｎ個の入力（低次関節、骨、ブレンドシェイプ等）に関して、ｎ個の線形およびｎ個の角距離加重γ、合計２＊ｎ個の距離加重が存在する。これらの距離加重は、ＲＢＦ距離関数において使用され、最終距離関数を計算し、ユーザによって割り当てられる、部分的にユーザによって割り当てられる、および／または訓練の間に計算される。これらの距離加重は、複数の入力タイプおよび異なるタイプの入力をともに構成する必要性に起因して必要とされる。一例示的入力タイプは、鎖骨タイプであって、第２の入力タイプは、肩関節タイプである。肩関節は、鎖骨より大きい移動範囲を有し、したがって、γの距離加重のセットは、より小さい鎖骨移動がより大きい肩関節移動と比較して無視可能ではないことを確実にすることに役立ち得る。
【０２００】
ブロック１７１６では、最終距離関数が、ブロック１７０８および１７１０において定義された方程式から出力されるであろう、各距離の加重されたγユークリッドノルムとして定義され得る。
【０２０１】
ブロック１７１８では、訓練入力／出力セットが、ＲＢＦＮＮの中に入力される。
【０２０２】
ブロック１７２０では、ＲＢＦＮＮが、対応する入力が使用されるとき、ＲＢＦＮＮから計算された出力を訓練セットからの既知の出力に合致するために、基底加重のセットｗを調節する。基底加重ｗは、ＲＢＦＮＮによって自動的に計算され、訓練相の間のみ調節される。１４０８に関して上記に述べられたように、ｍ個の出力（高次関節、骨、高次補正等）に関して、ｍ個の線形および４＊ｍ個の角度加重値が存在し得る。本発明のいくつかのシステムおよび方法では、角度出力毎に４つの値が、算出され、したがって、デジタルキャラクタリグを駆動する角度出力毎に、複数の基底加重が存在する。基底加重計算は、ＲＢＦＮＮの標準的技法を使用して行われる。
【０２０３】
ブロック１７２０後、ＲＢＦＮＮは、固定される（例えば、訓練セット内の訓練入力／出力対の全てが、ＲＢＦＮＮの中に入力された後）。これは、基底加重ｗが、もはや変動することを可能にされず、ここでは、付加的訓練データが提供されない限り、固定値と見なされることを意味する。ＲＢＦＮＮは、ここで、新しい入力からの新しい出力を補間する準備ができる。いくつかの実施形態では、これは、アバタが、ＹＭＣＡの曲に合わせてダンスしている間、Ｙを形成するとき等、デジタルキャラクタに関する新しい高次姿勢が、低次デジタルキャラクタ入力姿勢に基づいて補間され得ることを意味し得る。
【０２０４】
訓練されたＲＢＦＮＮの使用の例示的プロセス
図１８は、訓練されたＲＢＦＮＮを使用してデジタルキャラクタに関する新しい姿勢を補間する例示的プロセス１８００を図示する。プロセス１８００は、例えば、ローカル処理およびデータモジュール２６０、遠隔処理モジュール２７０、遠隔コンピューティングシステム９２０、またはそれらの組み合わせ等のウェアラブルシステム２００と関連付けられるハードウェアプロセッサによって実施されることができる。
【０２０５】
ブロック１８０２では、ＲＢＦＮＮシステムが、関節、骨、ブレンドシェイプ、またはデジタルキャラクタリグを説明する他の方法によって定義されたデジタルキャラクタリグによって表される、デジタルキャラクタに関する低次姿勢を受信する。図１３に関して上記に述べられたように、これらの入力は、角度パラメータと、線形パラメータとを有し得、各角度または線形パラメータは、１つ以上の値を含有し得る。図１１に関して上記に述べられたように、現在の低次姿勢は、人物が、ＹＭＣＡの曲に合わせてダンスしている間、その腕で文字Ｙを形成することであってもよい。
【０２０６】
ブロック１８０４では、現在の姿勢が、角度および線形パラメータに分離される。ブロック１８０６では、入力パラメータは全て、ＲＢＦＮＮの中に渡され、これは、ブロック１８０８において、入力をサンプルノードのそれぞれの中に渡す。
【０２０７】
ブロック１８１０では、各サンプルノードが、入力姿勢とサンプル姿勢との間の距離を決定する。これは、合計（ｎ＋ｎ＊４）＊Ｓ個の値が計算され得ることを意味し、その２つは、２つのタイプの計算（例えば、１つは、線形のため、１つは、角度のため）が存在するためであって、ｎは、入力（関節、骨、ブレンドシェイプ等）の数であって、Ｓは、ＲＢＦＮＮ内に含有されるサンプルの数である。図１３Ａ−１３Ｂおよび図１６の具体的実施例に関して、これは、（９＋９＊４）＊３＝１３５個の距離値がブロック１８１０において計算されることを意味するであろう。
【０２０８】
ブロック１８１２では、最終距離は、距離加重γを利用して、上記１７１６に議論されるように、加重されたユークリッドノルムを行うことによって計算される。これは、全ての訓練姿勢（例えば、サンプルノード）を横断した単一関節に関する全ての対応する距離が、単一距離メトリックに組み合わせられることを意味する。図１３の実施例に関して、これは、関節ａ−ｊあたり１つの線形および１つの角度値の９つの線形および９つの角度値を有し得ることを意味する。
【０２０９】
ブロック１８１４では、標準的基底関数が、ブロック１８１２からの出力に適用される。本ステップは、値をｎに関する入力値からｍに関する出力値に遷移させる。標準的基底関数は、ガウス基底関数、立方基底関数、多重二乗基底関数、または逆多重二乗基底関数等の多くのオプションのうちの１つであり得る。図１３の実施例に関するプロセスにおける本段階では、６個の線形および４＊６＝２４個の角度独立出力が存在し得る。より広義には、出力パラメータ（関節、骨、高次補正等）毎に５＊ｍ個の独立値が存在し得る。
【０２１０】
ブロック１８１６では、ＲＢＦＮＮ訓練相の間に学習された基底加重ｗが、ブロック１８１４からの出力に適用され得る。
【０２１１】
ブロック１８１８では、値が、出力タイプおよび関節に従ってグループ化される。例えば、角度値は、ベクトルが４つの値＝［ｘ，ｙ，ｚ，ｗ］を含む、ＳＯ（３）空間を表すベクトルに組み合わせられてもよい。随意に、単一関節に関する線形および角度出力は、対合されてもよい。
【０２１２】
ブロック１８２０では、補間された高次デジタルキャラクタ姿勢が、高次キャラクタリグに送信され、キャラクタ変形を駆動する。図１１からの実施例では、これは、デジタルキャラクタが、ＹＭＣＡの曲に合わせてダンスしている際のＹ形状の腕の姿勢にレンダリングされることを意味する。本プロセスは、繰り返し繰り返され、デジタルキャラクタのためのアニメーションを作成する。プロセス１８００の後続ループは、Ｙの形状における腕から、Ｍの形状における腕、Ｃの形状における腕、次いで、Ａの形状における腕に遷移する、デジタルキャラクタを示し得る。
【０２１３】
ＦＦＮＮからデジタルキャラクタの出力姿勢を補間するためのシステムの略図
１つ以上のデジタルキャラクタ姿勢を補間するように構成される、ニューラルネットワークの第２の例示的実施形態は、下記にさらに詳細に説明されるような線形および角度成分を分離するように構成される、フィードフォワードニューラルネットワーク（ＦＦＮＮ）である。
【０２１４】
図１９は、本発明のいくつかの実施形態による、デジタルキャラクタの出力姿勢を補間するためのＦＦＮＮアーキテクチャ１９００の一部を図示する。上記に述べられたように、ドライバ関節（例えば、低次骨格）とヘルパ関節（例えば、高次骨格）との間の関係は、複雑であり得るが、ＮＮを利用することによって解決され得る。いくつかの実施形態では、多層ＦＦＮＮが、使用され得、１つ以上の出力を解決するために有意により少ないパラメータを要求し得る。これは、ＲＢＦＮＮ実施形態に関するフレームあたり４．５ｍｓからＦＦＮＮ実施形態に関するフレームあたり０．９ｍｓ等、低減された算出時間につながり得、これは、特に、算出が限定されたデバイス上において、有意な性能改良をもたらし得る。いくつかの実施形態では、ＦＦＮＮは、運動の成分毎に別個に訓練されてもよい。運動の３つの例示的成分は、回転、平行移動、およびスケールであってもよい。いくつかの実施形態では、ＦＦＮＮへの入力データは、位置パラメータ（例えば、平行移動、スケール）が単位範囲（例えば、０〜１）にスケーリングされ得るように前処理されてもよい。いくつかの実施形態では、回転パラメータは、アニメーションオーサリングシステム（例えば、ＤＣＣシステム）において使用されるオイラー角から単位クォータニオンに変換されてもよい。
【０２１５】
いくつかの実施形態では、ＦＦＮＮは、正規化線形ユニット（ＲｅＬＵ）活性化関数を使用する、単一隠れ層を伴う全結合ネットワークであってもよい。いくつかの実施形態では、隠れ層は、ｒｅｓｎｅｔブロックとして組み込まれてもよい。いくつかの実施形態では、使用すべき隠れ次元数は、ハイパーパラメータ調整によって最良に発見され得る。いくつかの実施形態では、使用すべき隠れ次元数は、以下の方程式を使用して決定されてもよい。
【化１】
2021529380.tif 000003
【０２１６】
実施例として、デジタルキャラクタのリグの脹脛系は、膝および足関節を含み得、これはともに、脹脛中央に位置付けられる単一関節を駆動する。脹脛関節は、デジタルキャラクタの脚部が移動するにつれて、デジタルキャラクタの脹脛を変形させ得る。本実施例では、膝および足関節は、ドライバ関節（代替として、ドライバと呼ばれる）であって、脹脛中央関節は、ヘルパ関節（代替として、ヘルパと呼ばれる）である。各ドライバは、３つの平行移動パラメータＸ、Ｙ、ＺをＮＮに提供し得、単一ヘルパ関節のための３つの平行移動を必要とし得る。したがって、脹脛実施例に関して、入力層は、６つのニューロン（３つのパラメータ×２つのドライバ関節）を有し、隠れ層は、２０ニューロン（１０×２つのドライバ）を有し、出力層は、３つのニューロン（３つのパラメータ×１つのヘルパ関節）を有するであろう。いくつかの実施形態では、スケールネットワークアーキテクチャは、スケールもまた、３つのパラメータ、Ｘ、Ｙ、Ｚを有し得るため、同じであり得る。いくつかの実施形態では、クォータニオン回転であり得る、各回転は、４つの要素を有し得、したがって、回転ネットワークアーキテクチャ１９００の入力層１９０２は、８個のニューロンを有し得る、隠れ層１９０４は、２０個のニューロンを有し得、出力層１９０６は、４個のニューロンを有し得る。
【０２１７】
いくつかの実施形態では、ＦＦＮＮシステムは、はるかに大きいＲＢＦＮＮシステムと同一結果を達成することが可能であり得る。ＲＢＦＮＮと同様に、ＦＦＮＮは、制御パラメータをドライバ関節から受け取り得る、入力層１９０２を有し得る。出力層は、ヘルパ関節が設定され得る値を生産し得る。
【０２１８】
ＮＮの例示的訓練
図２０は、本明細書に開示されるＮＮを訓練するための例示的プロセスを図示する。プロセス２０００は、デジタルキャラクタリグのコンテキストにおいてＮＮを訓練するためのプロセスを図示するが、しかしながら、他のコンテキストも、可能性として考えられることを理解されたい。本明細書に開示される本発明から最も利点を享受する、コンテキストは、上記に議論されるように、２つ以上の異なるタイプのデータから成る、および／または角度入力を含むものである。プロセス２０００は、ＮＮを訓練するために好適なハードウェアプロセッサによって実施されることができる。いくつかの実施形態では、訓練は、遠隔処理モジュール２７０または遠隔コンピューティングシステム９２０によって実施されることができる。訓練されたＮＮは、ネットワーク９９０を介して、ウェアラブルシステム２００に通信されることができる。いくつかの実施形態では、ウェアラブルシステム２００は、付加的訓練データを入手することができ、ＮＮはさらに、例えば、ローカル処理およびデータモジュール２６０、遠隔処理モジュール２７０、または遠隔コンピューティングシステム９２０によって訓練されることができ、これは、ＮＮを具体的姿勢またはウェアラブルシステム２００のユーザ２１０によって視認されるデジタルキャラクタに対して個人化することに役立ち得る。
【０２１９】
ブロック２００２では、デジタルキャラクタ姿勢の訓練セットが、受信され、入力は、低次デジタルキャラクタリグ姿勢パラメータを表し得、出力は、高次デジタルリグ姿勢パラメータを表し得る。上記に述べられたように、代替実施形態は、両方とも高次デジタルキャラクタリグを表す入力および出力または両方とも低次デジタルキャラクタリグを表す入力および出力等、他の入力／出力訓練データセットを使用してもよい。代替実施形態では、入力データは、デジタルキャラクタリグを表さない場合があるが、依然として、１つを上回るタイプから成る、および／または角度データを含む、入力を有し得る。
【０２２０】
ブロック２００４では、訓練データが、運動の各成分に分離される。いくつかの実施形態では、分離は、角度および線形パラメータに対して行われてもよい。いくつかの実施形態では、分離は、回転、平行移動、および／またはスケール成分に対して行われてもよい。上記に述べられたように、パラメータ／成分は、補間結果を改良するために分離される。角度パラメータが、線形方程式または処理を使用して補間されるとき、ジンバルロック、高速フリップ、および／または符号の変化または単一角回転が複数の方法で表され得る面積等の望ましくない出力が、生じ得る。代替実施形態では、訓練データは、下記に説明されるであろうように、例えば、サブセット毎に一意の距離計算を用いて、データのサブセットが後続特殊処理から利点を享受し得る限り、データの２つ以上のサブセットに分離されてもよい。パラメータ／成分は、任意の好適な方法を使用して分離されてもよい。例えば、スクリプト、コンピュータプログラム、または他の一連のコードが、角度データの形態（例えば、４つの要素を含有する、ベクトル）および線形データの形態（例えば、単一値）を認識し、入力データのフォーマット別にデータを自動的にグループ化し得るように作成されてもよい。代替として、入力データは、入力データソースから事前にタグ付けされてもよく、したがって、システムは、単に、タグを読み取り、事前に定義された方法に従って、入力データを操作することができる。いくつかの実施形態では、入力データのフォーマットは、出力データの所望のフォーマットを定義し、任意の数の前または後処理ステップが、データを操作し、所望のデータフォーマットに合致させるために追加されてもよい。
【０２２１】
ブロック２０１８では、訓練入力／出力セットが、ＮＮの中に入力される。
【０２２２】
ブロック２０１８後、ＮＮは、固定され（例えば、訓練セット内の訓練入力／出力対の全てが、ＮＮの中に入力された後）、訓練相は、完了され得る。ＮＮは、ここで、新しい入力からの新しい出力を補間する準備ができる。いくつかの実施形態では、これは、アバタが、ＹＭＣＡの曲に合わせてダンスしている間、Ｙを形成するとき等、デジタルキャラクタに関する新しい高次姿勢が、低次デジタルキャラクタ入力姿勢に基づいて補間され得ることを意味し得る。
【０２２３】
訓練されたＮＮの使用の例示的プロセス
図２１は、訓練されたＮＮを使用してデジタルキャラクタに関する新しい姿勢を補間する例示的プロセス２１００を図示する。いくつかの実施形態では、ＮＮは、ＦＦＮＮまたはＲＢＦＮＮであってもよい。プロセス２１００は、例えば、ローカル処理およびデータモジュール２６０、遠隔処理モジュール２７０、遠隔コンピューティングシステム９２０、またはそれらの組み合わせ等のウェアラブルシステム２００と関連付けられるハードウェアプロセッサによって実施されることができる。
【０２２４】
ブロック２１０２では、ＮＮシステムが、関節、骨、ブレンドシェイプ、またはデジタルキャラクタリグを説明する他の方法によって定義されたデジタルキャラクタリグによって表される、デジタルキャラクタに関する低次姿勢を受信する。図１３に関して上記に述べられたように、これらの入力は、角度パラメータと、線形パラメータとを有し得、各角度または線形パラメータは、１つ以上の値を含有し得る。図１１に関して上記に述べられたように、現在の低次姿勢は、人物が、ＹＭＣＡの曲に合わせてダンスしている間、その腕で文字Ｙを形成することであってもよい。
【０２２５】
ステップ２１０４では、現在の姿勢が、角度および線形パラメータ、運動の成分、または任意の他の好適な分離方法に分離され得る。ブロック２１０６では、入力パラメータは全て、ＮＮの中に渡され得、ＮＮは、次いで、ステップ２１０８において実行され得る。
【０２２６】
ステップ２０１８では、値が、出力タイプおよび関節に従ってグループ化され得る。いくつかの実施形態では、角度および線形出力は、組み合わせられ、単一関節のための運動を表してもよい。いくつかの実施形態では、運動の成分は、組み合わせられ、単一関節の回転、平行移動、および／またはスケール運動を表してもよい。
【０２２７】
ステップ２０２０では、補間された高次デジタルキャラクタ姿勢が、高次キャラクタリグに送信され、キャラクタ変形を駆動し得る。図１１からの実施例では、これは、デジタルキャラクタが、ＹＭＣＡの曲に合わせてダンスする間、Ｙ形状の腕の姿勢にレンダリングされることを意味する。本プロセスは、繰り返し繰り返され、デジタルキャラクタのためのアニメーションを作成し得る。プロセス２０００の後続ループは、デジタルキャラクタが、Ｙの形状における腕から、Ｍの形状における腕、Ｃの形状における腕、次いで、Ａの形状における腕に遷移させることを示し得る。
【０２２８】
リアルタイムポータビリティ
仮想キャラクタのためのリギングは、種々の入力に基づくリギング要素（例えば、より高次のリギング要素）の自動化された制御のための制御システムを伴うことができ、ＲＢＦＮＮ、ＦＦＮＮ、または他のＮＮシステムを備えてもよい。いくつかの実施形態では、特定の仮想キャラクタのためのリギングにおいて、制御システムの複数のインターリーブされた層が存在する。本開示のコンテキストでは、リギング制御システムは、１つ以上のルール（例えば、論理ルール、数学的ルール等）のセットを含み、これは、低次リギング要素または他のソースと関連付けられる入力に基づいて、高次骨格系または高次ブレンドシェイプ等のリギング要素を制御する（例えば、調整する、調節する、規定する、選択する、呼び出す、または別様に影響を及ぼす）ための出力を決定する。リギング制御システムは、非常に複雑であり得るため、種々のツールが、それらをオーサリングおよび実装するために作成されている。これらのツールは、典型的には、特定用途向けリギング制御プロトコルを利用する。特定のリギング制御プロトコルは、データフォーマットの特定用途向けセット、データ構造、関数、算出ユニット（例えば、ノード、クラス等）、および／またはプログラミング言語を含んでもよい。異なるアプリケーションが、異なるリギング制御プロトコルを使用するとき、１つのアプリケーションにおいてオーソライズされている、リギング制御システムを直接転送し、次いで、それを別のアプリケーションにおいて実行することは、不可能である。
【０２２９】
デジタルコンテンツ作成（ＤＣＣ）アプリケーションは、多くの場合仮想キャラクタのための、リギング制御システムを含む、リギングを開発するために使用される。そのようなＤＣＣアプリケーションの一実施例は、Ａｕｔｏｄｅｓｋ  Ｍａｙａ（Ｒ）である。ＤＣＣアプリケーションは、ポリゴンメッシュ、骨格系、ブレンドシェイプ等のリギング要素を定義するため、およびこれらのリギング要素の自動化された制御を実施するための制御システムを定義するため種々のツールを提供することができる。リギング制御システムは、その特定用途向けリギング制御プロトコルを使用して、ＤＣＣアプリケーション内に構築される。
【０２３０】
ＤＣＣアプリケーションは、仮想キャラクタおよびその関連付けられるリギングを作成するために非常に好適であるが、それらは、典型的には、例えば、ゲーム内の仮想キャラクタのリアルタイム表示（関連付けられるキャラクタリギングのリアルタイム実行を含む）またはＶＲ／ＡＲ／ＭＲアプリケーションのためにはあまり好適ではない。代わりに、リアルタイムエンジンが、本目的のために開発されている。そのようなリアルタイムエンジンの一実施例は、Ｅｐｉｃ  Ｇａｍｅｓから利用可能なＵｎｒｅａｌ（Ｒ）エンジンである。リアルタイムエンジンは、主に、完成されたリギングアセットを表示するように設計されており、高度なリギングアセットをオーサリングするためにはあまり好適ではない。リアルタイムエンジンは、リギング要素および／またはリギング制御システムを作成するためのツールを含むことができるが、それらは、通常、ＤＣＣアプリケーション内に存在するものほどロバストではない。ＤＣＣアプリケーション内で、リギング制御システムを含む、新しいリギングアセットを規定する、構築する、および試験することの方が有意に容易である。したがって、リアルタイムエンジンは、典型的には、仮想キャラクタおよびその関連付けられるリギングを提供するために、ＤＣＣアプリケーションに依拠する。これは、リギングアセットがＤＣＣアプリケーションからリアルタイムエンジンに転送されることを要求する。
【０２３１】
Ｆｉｌｍｂｏｘ（ＦＢＸ（Ｒ））フォーマット等のツールが、メッシュ、ブレンドシェイプ、骨格系、およびアニメーションをアプリケーション間で転送するために存在する。しかしながら、リギング制御システムをアプリケーション間で転送するための類似ツールは、存在しない。メッシュ、ブレンドシェイプ、骨格系、およびアニメーションは、アプリケーション間でより容易にポートされ得る、明確に定義されたフォーマットであり得るが、リギング制御システムは、典型的には、具体的アプリケーションのデータ構造および慣例（例えば、オーサリングアプリケーションによって使用されるリギング制御プロトコル）に緊密に結び付けられる。リギング制御システムをオーサリングアプリケーションからリアルタイムアプリケーションに転送することは、したがって、ソフトウェア開発者が複数のアプリケーション内および／または複数のコンピューティングプラットフォーム上で起動させるためにアルゴリズムを複数のソフトウェア言語において再実装し得る場合と同一方法において、制御システムをリアルタイムアプリケーション環境内に再実装することを要求する。しかしながら、仮想キャラクタのためのリギング制御システムを再実装することは、アプリケーション間の当事者を検証するその複雑性および難点に起因して、非常に困難であって、時間がかかり、高価な命題であり得る。
【０２３２】
上記に説明されるＮＮシステムおよび方法は、通常、オフラインレンダリングのために留保される、高忠実性生体力学的アニメーションおよび変形を保存しながら、第１のアプリケーションから第２のアプリケーションに転送する本課題を克服することが可能である。いくつかの実施形態では、いったんＮＮが、設計され、Ｍａｙａ等のＤＣＣアプリケーションにおいて使用されると、加重および他のパラメータは、任意の便宜的データフォーマット（例えば、さらに別のマークアップ言語（ＹＡＭＬ）、ＪａｖａＳｃｒｉｐｔ（登録商標）オブジェクト表記（ＪＳＯＮ）、拡張マークアップ言語（ＸＭＬ）、フィルムボックス（ＦＢＸ）等）に直列化されることができ、したがって、システムは、リアルタイムエンジン等の他のアプリケーションの中に読み込まれることができる。ＮＮが、典型的には基礎とし、次いで、上記に説明される転送問題に直面する、複雑なリギングシステム全体をポートする従来的方法と対照的に、ＲＢＦノードおよびインポート論理のみが、標的アプリケーション内に実装される必要がある。言い換えると、本明細書に説明されるプロセスは、ＮＮを作成する訓練相が、図１７および２０に説明されるように、複雑なリギング論理をＮＮの中に統合したため、複雑なリギングシステムを転送することが可能である。言い換えると、ＮＮを転送することによって、プロセスは、複雑なリギングシステムを転送する。リグカプセル化およびポータビリティはまた、米国特許出願第６２／６５８，４１５号（参照することによってその全体として本明細書に組み込まれる）に説明される。
【０２３３】
ＮＮシステムおよび方法は、アプリケーション間のポータビリティを可能にする。いくつかの実施形態では、これは、複雑な層化階層の特定用途向けリギング制御システムを数学的構造体（例えば、ＮＮ）の中に移動させ、したがって、特定用途向け構造体を排除することによって遂行され得る（言い換えると、数学は、任意のシステムが理解するためにプログラムされ得る、汎用言語である）。
【０２３４】
付加的側面
（側面１）方法であって、少なくとも１つの角度成分および少なくとも１つの線形成分を備える、入力データを受信するステップと、入力データを、入力として、少なくとも１つの線形成分と異なるように少なくとも１つの角度成分を評価するように訓練されている、少なくとも１つのニューラルネットワーク（ＮＮ）に提供するステップと、少なくとも１つの角度成分および少なくとも１つの線形成分の異なる評価に基づいて少なくとも１つのＮＮによって生成される、出力データを受信するステップとを含む、方法。
【０２３５】
（側面２）少なくとも１つの角度成分は、３次元空間内の特殊直交群（ＳＯ（３））内にある、側面１に記載の方法。
【０２３６】
（側面３）ニューラルネットワークのうちの少なくとも１つは、フィードフォワードニューラルネットワーク（ＦＦＮＮ）を備える、側面１または側面２に記載の方法。
【０２３７】
（側面４）少なくとも１つのＦＦＮＮは、全結合ネットワークである、側面３に記載の方法。
【０２３８】
（側面５）フィードフォワードニューラルネットワークは、単一隠れ層を備える、側面３または側面４に記載の方法。
【０２３９】
（側面６）ＦＦＮＮは、正規化線形ユニット活性化関数を備える、側面４または側面５に記載の方法。
【０２４０】
（側面７）隠れ層は、残差ＮＮブロックである、側面５または側面６に記載の方法。
【０２４１】
（側面８）ＮＮのうちの少なくとも１つは、放射基底関数ニューラルネットワーク（ＲＢＦＮＮ）を備える、側面１−７のいずれか１項に記載の方法。
【０２４２】
（側面９）入力データは、デジタルキャラクタの姿勢を説明する、側面１−８のいずれか１項に記載の方法。
【０２４３】
（側面１０）入力データは、デジタルキャラクタの低次骨格を表し、出力データは、デジタルキャラクタの高次骨格を表す、側面１−９のいずれか１項に記載の方法。
【０２４４】
（側面１１）出力データは、デジタルキャラクタの姿勢を説明する、側面１−１０のいずれか１項に記載の方法。
【０２４５】
（側面１２）入力データおよび出力データのうちの１つ以上のものはさらに、第３の成分を含む、側面１−１１のいずれか１項に記載の方法。
【０２４６】
（側面１３）角度成分、線形成分、および第３の成分はそれぞれ、運動の異なる成分である、側面１２に記載の方法。
【０２４７】
（側面１４）少なくとも１つの角度成分は、回転運動を説明し、少なくとも１つの線形成分は、平行移動運動を説明し、第３の成分は、スケールを説明する、側面１２または側面１３に記載の方法。
【０２４８】
（側面１５）少なくとも１つのＮＮは、少なくとも１つの角度成分を評価する、第１のＦＦＮＮと、少なくとも１つの線形成分を評価する、第２のＦＦＮＮとを備える、側面１２−１４のいずれか１項に記載の方法。
【０２４９】
（側面１６）少なくとも１つのＮＮは、第３の成分を評価する、第３のＦＦＮＮを備える、側面１５に記載の方法。
【０２５０】
（側面１７）少なくとも１つのＮＮは、複数のサンプルノードを備え、各サンプルノードは、訓練姿勢に対応し、訓練姿勢のうちの少なくとも１つは、少なくとも１つの角度および線形成分を含む、側面１−１６のいずれか１項に記載の方法。
【０２５１】
（側面１８）少なくとも１つのＮＮは、ＳＯ（３）空間内の少なくとも１つの角度成分を評価することによって、かつユークリッド距離式を利用して、少なくとも１つの線形成分を評価することによって、少なくとも１つの線形成分と異なるように少なくとも１つの角度成分を評価する、側面１−１７のいずれか１項に記載の方法。
【０２５２】
（側面１９）１つ以上のＮＮを訓練するステップであって、訓練は、訓練入力データおよび訓練出力データを含む、訓練データを受信するステップであって、訓練入力データおよび訓練出力データは、１つ以上の訓練姿勢を表し、１つ以上の訓練姿勢のうちの少なくとも１つは、入力角度成分、入力線形成分、出力角度成分、および出力線形成分を含む、ステップと、１つ以上の姿勢のそれぞれからの入力角度成分を入力角度成分群にグループ化するステップと、１つ以上の姿勢のそれぞれからの入力線形成分を入力線形成分群にグループ化するステップと、訓練入力データを入力として提供し、少なくとも１つのＮＮを訓練するステップであって、入力角度成分群は、入力線形成分群と異なるように評価され、評価は、出力角度成分および出力線形成分をもたらす、ステップとを含む、ステップをさらに含む、側面１−１８のいずれか１項に記載の方法。
【０２５３】
（側面２０）入力角度成分および出力角度成分は、ＳＯ（３）またはクォータニオン空間内にある、側面１９に記載の方法。
【０２５４】
（側面２１）ニューラルネットワークは、フィードフォワードニューラルネットワーク（ＦＦＮＮ）である、側面１９または側面２０に記載の方法。
【０２５５】
（側面２２）ＦＦＮＮは、全結合ネットワークである、側面２１に記載の方法。
【０２５６】
（側面２３）ＦＦＮＮは、単一隠れ層を備える、側面２１または側面２２に記載の方法。
【０２５７】
（側面２４）ＦＦＮＮは、正規化線形ユニット活性化関数を備える、側面２１−２３のいずれか１項に記載の方法。
【０２５８】
（側面２５）隠れ層は、残差ＮＮブロックである、側面２３または側面２４に記載の方法。
【０２５９】
（側面２６）ＮＮは、放射基底関数ニューラルネットワーク（ＲＢＦＮＮ）である、側面１９−２５のいずれか１項に記載の方法。
【０２６０】
（側面２７）訓練データは、デジタルキャラクタの姿勢である、側面１９−２６のいずれか１項に記載の方法。
【０２６１】
（側面２８）訓練データは、デジタルキャラクタの低次姿勢と、デジタルキャラクタの高次姿勢とを含む、側面１９−２７のいずれか１項に記載の方法。
【０２６２】
（側面２９）出力角度成分および出力線形成分は、デジタルキャラクタの姿勢を表す、側面１９−２８のいずれか１項に記載の方法。
【０２６３】
（側面３０）１つ以上の訓練姿勢のうちの少なくとも１つは、第３の入力成分と、第３の出力成分とを含む、側面１９−２９のいずれか１項に記載の方法。
【０２６４】
（側面３１）第３の入力成分および第３の出力成分は、スケールである、側面３０に記載の方法。
【０２６５】
（側面３２）入力角度データおよび出力角度データは、デジタルキャラクタに関する運動の回転成分を表す、側面１９−３１のいずれか１項に記載の方法。
【０２６６】
（側面３３）入力線形データおよび出力線形データは、デジタルキャラクタに関する運動の平行移動成分を表す、側面１９−３２のいずれか１項に記載の方法。
【０２６７】
（側面３４）システムであって、少なくとも１つのニューラルネットワーク（ＮＮ）を実行する、少なくとも１つのプロセッサと、少なくとも１つのプロセッサに通信可能に結合される、メモリであって、少なくとも１つのプロセッサによって実行されると、少なくとも１つのプロセッサに、少なくとも１つの角度成分および少なくとも１つの線形成分を備える、入力データを受信するステップと、入力データを、入力として、少なくとも１つの線形成分と異なるように少なくとも１つの角度成分を評価するように訓練されている、少なくとも１つのニューラルネットワーク（ＮＮ）に提供するステップと、少なくとも１つの角度成分および少なくとも１つの線形成分の異なる評価に基づいて少なくとも１つのＮＮによって生成される、出力データを受信するステップとを含む、動作を実施させる、命令を記憶する、メモリとを備える、システム。
【０２６８】
（側面３５）少なくとも１つの角度成分は、３次元空間内の特殊直交群（ＳＯ（３））内にある、側面３４に記載のシステム。
【０２６９】
（側面３６）ニューラルネットワークのうちの少なくとも１つは、フィードフォワードニューラルネットワーク（ＦＦＮＮ）である、側面３４または側面３５に記載のシステム。
【０２７０】
（側面３７）少なくとも１つのＦＦＮＮは、全結合ネットワークである、側面３６に記載のシステム。
【０２７１】
（側面３８）ＦＦＮＮは、単一隠れ層を備える、側面３６または側面３７に記載のシステム。
【０２７２】
（側面３９）ＦＦＮＮは、正規化線形ユニット活性化関数を備える、側面３６−３８のいずれか１項に記載のシステム。
【０２７３】
（側面４０）隠れ層は、残差ＮＮブロックである、側面３８または側面３９に記載のシステム。
【０２７４】
（側面４１）ＮＮのうちの少なくとも１つは、放射基底関数ニューラルネットワーク（ＲＢＦＮＮ）である、側面３４−４０のいずれか１項に記載のシステム。
【０２７５】
（側面４２）入力データは、デジタルキャラクタの姿勢を説明する、側面３４−４１のいずれか１項に記載のシステム。
【０２７６】
（側面４３）入力データは、デジタルキャラクタの低次骨格を表し、出力データは、デジタルキャラクタの高次骨格を表す、側面３４−４２のいずれか１項に記載のシステム。
【０２７７】
（側面４４）出力データは、デジタルキャラクタの姿勢を説明する、側面３４−４３のいずれか１項に記載のシステム。
【０２７８】
（側面４５）入力データおよび出力データのうちの１つ以上のものはさらに、第３の成分を含む、側面３４−４４のいずれか１項に記載のシステム。
【０２７９】
（側面４６）角度成分、線形成分、および第３の成分はそれぞれ、運動の異なる成分である、側面４５に記載のシステム。
【０２８０】
（側面４７）少なくとも１つの角度成分は、回転運動を説明し、少なくとも１つの線形成分は、平行移動運動を説明し、第３の成分は、スケールを説明する、側面４５または側面４６に記載のシステム。
【０２８１】
（側面４８）少なくとも１つのＮＮは、少なくとも１つの角度成分を評価する、第１のＦＦＮＮと、少なくとも１つの線形成分を評価する、第２のＦＦＮＮとを備える、側面４５−４７のいずれか１項に記載のシステム。
【０２８２】
（側面４９）少なくとも１つのニューラルネットワークは、第３の成分を評価する、第３のＦＦＮＮを備える、側面４８に記載のシステム。
【０２８３】
（側面５０）少なくとも１つのＮＮは、複数のサンプルノードを備え、各サンプルノードは、訓練姿勢に対応し、訓練姿勢のうちの少なくとも１つは、少なくとも１つの角度および線形成分を含む、側面３４−４９のいずれか１項に記載のシステム。
【０２８４】
（側面５１）少なくとも１つのＮＮは、ＳＯ（３）空間内の少なくとも１つの角度成分を評価することによって、かつユークリッド距離式を利用して、少なくとも１つの線形成分を評価することによって、少なくとも１つの線形成分と異なるように少なくとも１つの角度成分を評価する、側面３４−５０のいずれか１項に記載のシステム。
【０２８５】
（側面５２）少なくとも１つのプロセッサはさらに、１つ以上のＮＮを訓練するようにプログラムされ、訓練するために、少なくとも１つのプロセッサは、訓練入力データおよび訓練出力データを含む、訓練データを受信し、訓練入力データおよび訓練する出力データは、１つ以上の訓練姿勢を表し、１つ以上の訓練姿勢のうちの少なくとも１つは、入力角度成分、入力線形成分、出力角度成分、および出力線形成分を含み、１つ以上の姿勢のそれぞれからの入力角度成分を入力角度成分群にグループ化し、１つ以上の姿勢のそれぞれからの入力線形成分を入力線形成分群にグループ化し、訓練入力データを入力として少なくとも１つのニューラルネットワーク（ＮＮ）に提供し、入力角度成分群は、入力線形成分群と異なるように評価され、評価は、出力角度成分および出力線形成分をもたらすようにプログラムされる、側面３４−５１のいずれか１項に記載のシステム。
【０２８６】
（側面５３）入力角度成分および出力角度成分は、ＳＯ（３）空間内にある、側面５２に記載のシステム。
【０２８７】
（側面５４）ニューラルネットワークは、フィードフォワードニューラルネットワークである、側面５２または側面５３に記載のシステム。
【０２８８】
（側面５５）フィードフォワードニューラルネットワークは、全結合ネットワークである、側面５４に記載のシステム。
【０２８９】
（側面５６）フィードフォワードニューラルネットワークは、単一隠れ層を備える、側面５４または側面５５に記載のシステム。
【０２９０】
（側面５７）フィードフォワードニューラルネットワークは、正規化線形ユニット活性化関数を備える、側面５４−５６のいずれか１項に記載のシステム。
【０２９１】
（側面５８）隠れ層は、残差ニューラルネットワークブロックである、側面５６または側面５７に記載のシステム。
【０２９２】
（側面５９）ニューラルネットワークは、放射基底関数ニューラルネットワーク（ＲＢＦＮＮ）である、側面５２−５８のいずれか１項に記載のシステム。
【０２９３】
（側面６０）訓練データは、デジタルキャラクタの姿勢である、側面５２−５９のいずれか１項に記載のシステム。
【０２９４】
（側面６１）訓練データは、デジタルキャラクタの低次姿勢と、デジタルキャラクタの高次姿勢とを含む、側面６０に記載のシステム。
【０２９５】
（側面６２）出力角度成分および出力線形成分は、デジタルキャラクタの姿勢を表す、側面５２−６１のいずれか１項に記載のシステム。
【０２９６】
（側面６３）１つ以上の訓練姿勢のうちの少なくとも１つは、第３の入力成分と、第３の出力成分とを含む、側面５２−６２のいずれか１項に記載のシステム。
【０２９７】
（側面６４）第３の入力成分および第３の出力成分は、スケールである、側面６３に記載のシステム。
【０２９８】
（側面６５）入力角度データおよび出力角度データは、デジタルキャラクタに関する運動の回転成分を表す、側面５２−６４のいずれか１項に記載のシステム。
【０２９９】
（側面６６）入力線形データおよび出力線形データは、デジタルキャラクタに関する運動の平行移動成分を表す、側面５２−６５のいずれか１項に記載のシステム。
【０３００】
（側面６７）方法であって、放射基底関数ニューラルネットワーク（ＲＢＦＮＮ）への少なくとも１つの入力パラメータを受信するステップと、ＲＢＦＮＮ内の１つ以上の距離関数からの距離のセットを計算するステップと、距離加重のセットをＲＢＦＮＮ内の１つ以上の距離関数から計算される距離のセットに適用するステップであって、距離加重のセットは、１つ以上の距離加重を含み、加重のセットは、ＲＢＦＮＮへの入力パラメータ毎に距離加重を含む、ステップとを含む、方法。
【０３０１】
（側面６８）距離加重のセットからの少なくとも１つの距離加重は、ユーザによって定義される、側面６７に記載の方法。
【０３０２】
（側面６９）距離加重のセットからの少なくとも１つの距離加重は、ＲＢＦＮＮによって定義される、側面６７または側面６８に記載の方法。
【０３０３】
（側面７０）入力パラメータを第１の入力データタイプと第２の入力データタイプとに分離するステップをさらに含む、側面６７−６９のいずれか１項に記載の方法。
【０３０４】
（側面７１）第１の入力データタイプは、線形パラメータを表すデータである、側面７０に記載の方法。
【０３０５】
（側面７２）第２の入力データタイプは、角度パラメータを表すデータである、側面７０または側面７１に記載の方法。
【０３０６】
（側面７３）１つ以上の距離関数は、少なくとも１つの角距離関数を含む、側面６７−７２のいずれか１項に記載の方法。
【０３０７】
（側面７４）角距離関数は、３次元空間内の特殊直交群（ＳＯ（３））内にある、側面７３に記載の方法。
【０３０８】
（側面７５）角距離関数は、クォータニオン空間内にある、側面７３または側面７４に記載の方法。
【０３０９】
（側面７６）１つ以上の距離関数は、少なくとも１つの線形距離関数を含む、側面６７−７５のいずれか１項に記載の方法。
【０３１０】
（側面７７）線形距離関数は、ユークリッド距離関数である、側面７６に記載の方法。
【０３１１】
（側面７８）少なくとも１つの入力パラメータを第１の入力データタイプと第２の入力データタイプとに分離するステップをさらに含む、側面６７−７７のいずれか１項に記載の方法。
【０３１２】
（側面７９）第１の入力データタイプは、線形パラメータを表すデータである、側面７８に記載の方法。
【０３１３】
（側面８０）第２の入力データタイプは、角度パラメータを表すデータである、側面７８または側面７９に記載の方法。
【０３１４】
（側面８１）第２の入力データタイプおよび角距離関数を使用して、角距離を計算するステップと、第１の入力データタイプおよび線形距離関数を使用して、線形距離を計算するステップとをさらに含む、側面８０に記載の方法。
【０３１５】
（側面８２）ＲＢＦＮＮは、デジタルキャラクタに関する姿勢を補間するように構成される、側面６７−８１のいずれか１項に記載の方法。
【０３１６】
（側面８３）１つ以上の入力パラメータは、低次デジタルキャラクタリグを表す、側面６７−８２のいずれか１項に記載の方法。
【０３１７】
（側面８４）ＲＢＦＮＮは、高次デジタルキャラクタリグを表す、出力パラメータを計算するように構成される、側面６７−８３のいずれか１項に記載の方法。
【０３１８】
（側面８５）ＲＢＦＮＮは、独立値である、複数の出力パラメータを計算するように構成される、側面６７−８４のいずれか１項に記載の方法。
【０３１９】
（側面８６）複数の独立値のうちの少なくとも２つを組み合わせ値にグループ化するステップをさらに含む、側面８５に記載の方法。
【０３２０】
（側面８７）組み合わせ値は、ｘ、ｙ、ｚ、およびｗを含む、クォータニオンベクトルを表す、側面８６に記載の方法。
【０３２１】
（側面８８）システムであって、１つ以上のコンピュータ上に実装される、放射基底関数ニューラルネットワーク（ＲＢＦＮＮ）と、１つ以上のコンピュータによって実行されると、１つ以上のコンピュータに、少なくとも１つの入力パラメータをＲＢＦＮＮへの入力パラメータのセットから受信させ、ＲＢＦＮＮ内の１つ以上の距離関数からの距離のセットを計算させ、距離加重のセットをＲＢＦＮＮ内の１つ以上の距離から計算される距離のセットに適用させ、距離加重のセットは、ＲＢＦＮＮへの入力パラメータ毎に距離加重を含むように動作可能である、命令を記憶する、１つ以上の記憶デバイスとを備える、システム。
【０３２２】
（側面８９）距離加重のセットからの少なくとも１つの距離加重は、ユーザによって定義される、側面８８に記載のシステム。
【０３２３】
（側面９０）距離加重のセットからの少なくとも１つの距離加重は、ＲＢＦＮＮによって定義される、側面８８または側面８９に記載のシステム。
【０３２４】
（側面９１）入力パラメータを第１の入力データタイプと第２の入力データタイプとに分離するステップをさらに含む、側面８８−９０のいずれか１項に記載のシステム。
【０３２５】
（側面９２）第１の入力データタイプは、線形パラメータを表すデータである、側面９１に記載のシステム。
【０３２６】
（側面９３）第２の入力データタイプは、角度パラメータを表すデータである、側面９１または側面９２に記載のシステム。
【０３２７】
（側面９４）１つ以上の距離関数は、少なくとも１つの角距離関数を含む、側面８８−９３のいずれか１項に記載のシステム。
【０３２８】
（側面９５）角距離関数は、３次元空間内の特殊直交群（ＳＯ（３））内にある、側面９４に記載のシステム。
【０３２９】
（側面９６）角距離関数は、クォータニオン空間内にある、側面９４または側面９５に記載のシステム。
【０３３０】
（側面９７）１つ以上の距離関数は、少なくとも１つの線形距離関数を含む、側面８８−９６のいずれか１項に記載のシステム。
【０３３１】
（側面９８）線形距離関数は、ユークリッド距離関数である、側面９７に記載のシステム。
【０３３２】
（側面９９）入力パラメータを第１の入力データタイプと第２の入力データタイプとに分離するステップをさらに含む、側面８８−９８のいずれか１項に記載のシステム。
【０３３３】
（側面１００）第１の入力データタイプは、線形パラメータを表すデータである、側面９９に記載のシステム。
【０３３４】
（側面１０１）第２の入力データタイプは、角度パラメータを表すデータである、側面９９または側面１００に記載のシステム。
【０３３５】
（側面１０２）第２の入力データタイプおよび角距離関数を使用して、角距離を計算するステップと、第１の入力データタイプおよび線形距離関数を使用して、線形距離を計算するステップとをさらに含む、側面９９−１０１のいずれか１項に記載のシステム。
【０３３６】
（側面１０３）ＲＢＦＮＮは、デジタルキャラクタに関する姿勢を補間するように構成される、側面８８−１０２のいずれか１項に記載のシステム。
【０３３７】
（側面１０４）１つ以上の入力パラメータは、低次デジタルキャラクタリグを表す、側面８８−１０３のいずれか１項に記載のシステム。
【０３３８】
（側面１０５）ＲＢＦＮＮは、高次デジタルキャラクタリグを表す、出力パラメータを計算するように構成される、側面８８−１０４のいずれか１項に記載のシステム。
【０３３９】
（側面１０６）ＲＢＦＮＮは、独立値である、複数の出力パラメータを計算するように構成される、側面８８−１０５のいずれか１項に記載のシステム。
【０３４０】
（側面１０７）複数の独立値のうちの少なくとも２つを組み合わせ値にグループ化するステップをさらに含む、側面１０６に記載のシステム。
【０３４１】
（側面１０８）組み合わせ値は、ｘ、ｙ、ｚ、およびｗを含む、クォータニオンベクトルを表す、側面１０７に記載のシステム。
【０３４２】
他の考慮点
本明細書に説明される、および／または添付される図に描写されるプロセス、方法、およびアルゴリズムはそれぞれ、具体的かつ特定のコンピュータ命令を実行するように構成される、１つ以上の物理的コンピューティングシステム、ハードウェアコンピュータプロセッサ、特定用途向け回路、および／または電子ハードウェアによって実行される、コードモジュールにおいて具現化され、それによって完全または部分的に自動化され得る。例えば、コンピューティングシステムは、具体的コンピュータ命令とともにプログラムされた汎用コンピュータ（例えば、サーバ）または専用コンピュータ、専用回路等を含むことができる。コードモジュールは、実行可能プログラムにコンパイルおよびリンクされ得る、動的リンクライブラリ内にインストールされ得る、またはインタープリタ型プログラミング言語において書き込まれ得る。いくつかの実装では、特定の動作および方法が、所与の機能に特有の回路によって実施され得る。
【０３４３】
さらに、本開示の機能性のある実装は、十分に数学的、コンピュータ的、または技術的に複雑であるため、（適切な特殊化された実行可能命令を利用する）特定用途向けハードウェアまたは１つまたはそれを上回る物理的コンピューティングデバイスは、例えば、関与する計算の量または複雑性に起因して、または結果を実質的にリアルタイムで提供するために、機能性を実施する必要があり得る。例えば、アニメーションまたはビデオは、多くのフレームを含み、各フレームは、数百万のピクセルを有し得、具体的にプログラムされたコンピュータハードウェアは、商業的に妥当な時間量において所望の画像処理タスク、ニューラルネットワークタスク、または用途を提供するようにビデオデータを処理する必要がある。
【０３４４】
コードモジュールまたは任意のタイプのデータは、ハードドライブ、ソリッドステートメモリ、ランダムアクセスメモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、光学ディスク、揮発性または不揮発性記憶装置、同一物の組み合わせ、および／または同等物を含む、物理的コンピュータ記憶装置等の任意のタイプの非一過性コンピュータ可読媒体上に記憶され得る。本方法およびモジュール（またはデータ）はまた、無線ベースおよび有線／ケーブルベースの媒体を含む、種々のコンピュータ可読伝送媒体上で生成されたデータ信号として（例えば、搬送波または他のアナログまたはデジタル伝搬信号の一部として）伝送され得、種々の形態（例えば、単一または多重化アナログ信号の一部として、または複数の離散デジタルパケットまたはフレームとして）をとり得る。開示されるプロセスまたはプロセスステップの結果は、任意のタイプの非一過性有形コンピュータ記憶装置内に持続的または別様に記憶され得る、またはコンピュータ可読伝送媒体を介して通信され得る。
【０３４５】
本明細書に説明される、および／または添付される図に描写されるフロー図における任意のプロセス、ブロック、状態、ステップ、または機能性は、プロセスにおいて具体的機能（例えば、論理または算術）またはステップを実装するための１つまたはそれを上回る実行可能命令を含む、コードモジュール、セグメント、またはコードの一部を潜在的に表すものとして理解されたい。種々のプロセス、ブロック、状態、ステップ、または機能性は、組み合わせられる、再配列される、追加される、削除される、修正される、または別様に本明細書に提供される例証的実施例から変更されることができる。いくつかの実施形態では、付加的または異なるコンピューティングシステムまたはコードモジュールが、本明細書に説明される機能性のいくつかまたは全てを実施し得る。本明細書に説明される方法およびプロセスはまた、任意の特定のシーケンスに限定されず、それに関連するブロック、ステップ、または状態は、適切な他のシーケンスで、例えば、連続して、並行して、またはある他の様式で実施されることができる。タスクまたはイベントが、開示される例示的実施形態に追加される、またはそれから除去され得る。さらに、本明細書に説明される実装における種々のシステムコンポーネントの分離は、例証を目的とし、全ての実装においてそのような分離を要求するものとして理解されるべきではない。説明されるプログラムコンポーネント、方法、およびシステムは、概して、単一のコンピュータ製品においてともに統合される、または複数のコンピュータ製品にパッケージ化され得ることを理解されたい。多くの実装変形例が、可能である。
【０３４６】
本プロセス、方法、およびシステムは、ネットワーク（または分散）コンピューティング環境において実装され得る。ネットワーク環境は、企業全体コンピュータネットワーク、イントラネット、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）、クラウドコンピューティングネットワーク、クラウドソースコンピューティングネットワーク、インターネット、およびワールドワイドウェブを含む。ネットワークは、有線または無線ネットワークまたは任意の他のタイプの通信ネットワークであり得る。
【０３４７】
本開示のシステムおよび方法は、それぞれ、いくつかの革新的側面を有し、そのうちのいかなるものも、本明細書に開示される望ましい属性に単独で関与しない、またはそのために要求されない。上記に説明される種々の特徴およびプロセスは、相互に独立して使用され得る、または種々の方法で組み合わせられ得る。全ての可能な組み合わせおよび副次的組み合わせが、本開示の範囲内に該当することが意図される。本開示に説明される実装の種々の修正が、当業者に容易に明白であり得、本明細書に定義される一般原理は、本開示の精神または範囲から逸脱することなく、他の実装に適用され得る。したがって、請求項は、本明細書に示される実装に限定されることを意図されず、本明細書に開示される本開示、原理、および新規の特徴と一貫する最も広い範囲を与えられるべきである。
【０３４８】
別個の実装の文脈において本明細書に説明されるある特徴はまた、単一の実装における組み合わせにおいて実装されることができる。逆に、単一の実装の文脈において説明される種々の特徴もまた、複数の実装において別個に、または任意の好適な副次的組み合わせにおいて実装されることができる。さらに、特徴がある組み合わせにおいて作用するものとして上記に説明され、さらに、そのようなものとして最初に請求され得るが、請求される組み合わせからの１つ以上の特徴は、いくつかの場合では、組み合わせから削除されることができ、請求される組み合わせは、副次的組み合わせまたは副次的組み合わせの変形例を対象とし得る。いかなる単一の特徴または特徴のグループも、あらゆる実施形態に必要または必須ではない。
【０３４９】
とりわけ、「〜できる（ｃａｎ）」、「〜し得る（ｃｏｕｌｄ）」、「〜し得る（ｍｉｇｈｔ）」、「〜し得る（ｍａｙ）」、「例えば（ｅ．ｇ．）」、および同等物等、本明細書で使用される条件文は、別様に具体的に記載されない限り、または使用されるような文脈内で別様に理解されない限り、概して、ある実施形態がある特徴、要素、またはステップを含む一方、他の実施形態がそれらを含まないことを伝えることが意図される。したがって、そのような条件文は、概して、特徴、要素、および／またはステップが、１つまたはそれを上回る実施形態に対していかようにも要求されること、または１つまたはそれを上回る実施形態が、著者の入力または促しの有無を問わず、これらの特徴、要素、および／またはステップが任意の特定の実施形態において含まれる、または実施されるべきかどうかを決定するための論理を必然的に含むことを示唆することを意図されない。用語「〜を備える」、「〜を含む」、「〜を有する」、および同等物は、同義語であり、非限定的方式で包括的に使用され、付加的要素、特徴、行為、動作等を除外しない。また、用語「または」は、その包括的意味において使用され（およびその排他的意味において使用されず）、したがって、例えば、要素のリストを接続するために使用されると、用語「または」は、リスト内の要素のうちの１つ、いくつか、または全てを意味する。加えて、本願および添付される請求項で使用されるような冠詞「ａ」、「ａｎ」、および「ｔｈｅ」は、別様に規定されない限り、「１つ以上の」または「少なくとも１つ」を意味するように解釈されるべきである。
【０３５０】
本明細書で使用されるように、項目のリスト「〜のうちの少なくとも１つ」を指す語句は、単一の要素を含む、それらの項目の任意の組み合わせを指す。ある実施例として、「Ａ、Ｂ、またはＣのうちの少なくとも１つ」は、Ａ、Ｂ、Ｃ、ＡおよびＢ、ＡおよびＣ、ＢおよびＣ、およびＡ、Ｂ、およびＣを網羅することが意図される。語句「Ｘ、Ｙ、およびＺのうちの少なくとも１つ」等の接続文は、別様に具体的に記載されない限り、概して、項目、用語等がＸ、Ｙ、またはＺのうちの少なくとも１つであり得ることを伝えるために使用されるような文脈で別様に理解される。したがって、そのような接続文は、概して、ある実施形態が、Ｘのうちの少なくとも１つ、Ｙのうちの少なくとも１つ、およびＺのうちの少なくとも１つがそれぞれ存在するように要求することを示唆することを意図されない。
【０３５１】
同様に、動作は、特定の順序で図面に描写され得るが、これは、望ましい結果を達成するために、そのような動作が示される特定の順序で、または連続的順序で実施される、または全ての図示される動作が実施される必要はないと認識されるべきである。さらに、図面は、フローチャートの形態で１つ以上の例示的プロセスを図式的に描写し得る。しかしながら、描写されない他の動作も、図式的に図示される例示的方法およびプロセス内に組み込まれることができる。例えば、１つ以上の付加的動作が、図示される動作のいずれかの前に、その後に、それと同時に、またはその間に実施されることができる。加えて、動作は、他の実装において再配列される、または再順序付けられ得る。ある状況では、マルチタスクおよび並列処理が、有利であり得る。さらに、上記に説明される実装における種々のシステムコンポーネントの分離は、全ての実装におけるそのような分離を要求するものとして理解されるべきではなく、説明されるプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品においてともに統合される、または複数のソフトウェア製品にパッケージ化され得ることを理解されたい。加えて、他の実装も、以下の請求項の範囲内である。いくつかの場合では、請求項に列挙されるアクションは、異なる順序で実施され、依然として、望ましい結果を達成することができる。
【図１】
2021529380.tif 000004
【図２】
2021529380.tif 000005
【図３】
2021529380.tif 000006
【図４】
2021529380.tif 000007
【図５】
2021529380.tif 000008
【図６Ａ】
2021529380.tif 000009
【図６Ｂ】
2021529380.tif 000010
【図７】
2021529380.tif 000011
【図８】
2021529380.tif 000012
【図９Ａ】
2021529380.tif 000013
【図９Ｂ】
2021529380.tif 000014
【図１０】
2021529380.tif 000015
【図１１】
2021529380.tif 000016
【図１２Ａ】
2021529380.tif 000017
【図１２Ｂ】
2021529380.tif 000018
【図１３Ａ−１３Ｂ】
2021529380.tif 000019
【図１４】
2021529380.tif 000020
【図１５Ａ】
2021529380.tif 000021
【図１５Ｂ】
2021529380.tif 000022
【図１５Ｃ】
2021529380.tif 000023
【図１６】
2021529380.tif 000024
【図１７】
2021529380.tif 000025
【図１８】
2021529380.tif 000026
【図１９】
2021529380.tif 000027
【図２０】
2021529380.tif 000028
【図２１】
2021529380.tif 000029
【国際調査報告】
2021529380.tif 000030