JP2020502709A - ソルバーに複数の力アレイを使用した改良型仮想現実システム - Google Patents

ソルバーに複数の力アレイを使用した改良型仮想現実システム Download PDF

Info

Publication number
JP2020502709A
JP2020502709A JP2019551929A JP2019551929A JP2020502709A JP 2020502709 A JP2020502709 A JP 2020502709A JP 2019551929 A JP2019551929 A JP 2019551929A JP 2019551929 A JP2019551929 A JP 2019551929A JP 2020502709 A JP2020502709 A JP 2020502709A
Authority
JP
Japan
Prior art keywords
avatar
user
program code
virtual
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2019551929A
Other languages
English (en)
Inventor
ジン、ウェイフア
ヒ、カイチャン
Original Assignee
ディープモーション、インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ディープモーション、インコーポレイテッド filed Critical ディープモーション、インコーポレイテッド
Publication of JP2020502709A publication Critical patent/JP2020502709A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/002Specific input/output arrangements not covered by G06F3/01 - G06F3/16
    • G06F3/005Input arrangements through a video camera
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/147Digital output to display device ; Cooperation and interconnection of the display device with other functional units using display panels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/005Tree description, e.g. octree, quadtree
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

対話型アバターディスプレイシステムは、センサによって検知されたユーザの移動に応じて仮想空間内を移動するアバターを含む仮想空間のコンピュータ生成図を提供する。検知された移動の数は、アバターの移動の自由度の数よりも少ない。対話型アバターディスプレイシステムは、アバターの可動身体部分に適用する加速度アレイを計算し、かつ可動身体部分の質量、ならびに可動身体部分の逆動力学力値アレイおよびバランス制御力値アレイまたは歩行制御力値アレイの一方または両方から計算された力アレイから運動方程式を解くことによって加速度アレイを計算し、アバターに対する一組の制約、および仮想空間内における可能な環境オブジェクトも考慮に入れる。

Description

関連出願の相互参照
本出願は、2016年12月13日に出願された「VIRTUAL REALITY SYSTEM」と題する米国仮特許出願第62/433,764号の優先権を主張するものであり、参照によりその全体が本明細書に組み込まれる。
本開示は、概して、仮想現実に関する。本開示は、より具体的には、ユーザからの入力に基づいてユーザのための仮想現実環境を生成し提示するための装置および技術に関する。
仮想現実環境では、ヘッドマウントディスプレイ(「HMD」)またはハンドヘルドVRコントローラなどのVR/AR(仮想現実/拡張現実)入力デバイスから検知される行動などのユーザの行動に応じて、しばしばコンピュータ生成される感覚入力がユーザに提示される。仮想現実コンピュータシステムの出力は、視覚的出力、音声出力、タッチ出力(触覚、圧力、温度など)、および他の出力を含み得る。出力は、ユーザを没入させる方法でユーザに提示される。例えば、ユーザは、ユーザを体験に没入させるためにユーザの目を覆うヘッドギアを着用し得る。ヘッドギアは、頭の移動に関するセンサ入力をプロセッサに提供し得る。視覚的出力を作成するプロセッサが、ユーザがその風景をユーザの頭の移動に対して安定していると知覚するように、センサ入力に基づいて、その視覚的出力を修正することができる場合、それは、体験を没入型にすることができる。視覚的出力は、見かけ上の三次元(3D)図を形成するためにユーザに提示される、2つのビデオフィード(片眼につき1つ)の形態であり得る。
プロセッサは、コンピュータ生成画像(CGI)技術を使用して、視覚的出力を生成する。CGI出力を生成するための1つのアプローチは、プロセッサが、オブジェクトの幾何学モデルおよびシーン記述を含むメモリにアクセスすることである。シーン記述は、様々なオブジェクトに対する仮想空間内の位置を示し得る。オブジェクトは、CGIの技術分野では一般に知られている固体オブジェクト、光源、背景、テクスチャなどとすることができる。プロセッサまたは別個のグラフィックスチップによって実行されるプログラムコードとして実装され得るレンダラは、これらのオブジェクト、それらの場所、および仮想「カメラ」のパラメータ(例えば、仮想カメラが「位置付け」されている仮想空間内の位置である指定の視点、仮想カメラのカメラアングルである指定されたビュー方向、および場合によってはカメラのビューイングウィンドウの境界なども)を取りこむ。それらの要素を表すデータから、レンダラは、シーン内のすべてがカメラパラメータに対して相対的である場所を(おそらく1/90秒ごとに1回)判定し、(3Dビューイングの場合は、各眼に1つずつ)画像を生成する。
没入型体験のために、仮想空間の座標系は、ユーザによって占有されている現実世界の空間の座標系に対して固定されることがしばしば望まれる。ユーザがユーザの頭を回転させる場合、プロセッサは、ユーザの頭の移動に位置合わせしカメラアングルをシフトさせようとするので、その結果、ユーザは風景がユーザに対して移動していないと知覚する。ユーザが現実世界の空間内を移動する(またはユーザが実際に一箇所に固定されている場合でもユーザの移動を可能にする装置上で移動する)能力がある場合、プロセッサは、表示された風景がユーザの現実世界の空間におけるユーザ自身の移動の認識と一致して移動するように、仮想カメラの視点の位置をそれに応じてシフトさせようとする。
プロセッサがカメラの視点と視野角をどのように調整するかを知るために、プロセッサには、移動に関する情報が提供される。これは、ヘッドギアにマウントされた加速度計および/またはジャイロスコープ、ならびに移動を検出するための他のセンサからのセンサデータの形態であり得る。したがって、VRリグは、回転センサを有するヘッドギア、他の運動/配向センサ、プロセッサ、必要な画像を生成するためのプログラムコードなどを含み得る。いくつかのVR HMDは、HMDおよび他のコントローラを部屋の規模の空間に位置決めするために他の技術を使用し得る。
従来のVRおよびアバターのアニメーションシステムにはそれらの用途があるが、依然として改善が望まれている。
対話型アバターディスプレイシステムは、センサによって検知されたユーザの移動に応じて仮想空間内を移動するアバターを含む仮想空間のコンピュータ生成図を提供する。検知された移動の数は、アバターの移動の自由度の数よりも少ない。対話型アバターディスプレイシステムは、アバターの可動身体部分に適用する加速度アレイを計算し、かつ可動身体部分の質量特性、ならびに可動身体部分の逆動力学力値アレイとバランス制御力値アレイおよび歩行制御力値アレイの一方または両方から計算された力アレイから運動方程式を解くことによって加速度アレイを計算し、アバターに対する一組の制約、および仮想空間内における可能な環境オブジェクトも考慮に入れる。
逆動的トルクを示す。 本体フレームに印加されるバランストルクを示す。 歩行トルクを示す。 力アレイベクトルの成分による総和を示す。 合計力アレイベクトルおよび制約を解決するためのソルバーを示す。 物理エンジンを使用してユーザと対話するVRシステムを示す。 本明細書に記載の機能を実行するためにプロセッサによって使用され得る構造を示す。 本明細書に記載されているプロセスを実行するために使用され得るコンピュータの一実施例を示す。
図面は、本明細書に記載の実施形態を理解するために必要ではない。
以下の説明では、様々な実施形態が説明される。説明を目的として、実施形態の完全な理解を提供するために特定の構成および詳細が説明される。しかしながら、実施形態が具体的な詳細なくとも実施することができることも当業者には明らかである。さらに、記載されている実施形態を曖昧にしないために、既知の特徴を省略または簡略化する場合がある。
実施形態が実行される基本ハードウェアは、VRリグとすることができ、ユーザが自分の顔に装着するヘッドギア(ヘッドマウントディスプレイ、または「HMD」)を含み得、かつヘッドギアおよびユーザの手に計装された手袋を装着したときにユーザによって視認可能な視覚的出力を含む。VRリグ(またはより一般的には基本ハードウェア)は、コードを実行し、基本ハードウェアの機能を実行するために、必要に応じて、プロセッサ、プログラムストレージ、データ記憶メモリ、および通信要素を含む。基本ハードウェアの例には、Oculus Touch(tm)コントローラまたはHTC Vive(tm)コントローラまたはPSVRのMOVE(tm)コントローラなど、手袋の代わりにハンドヘルドVR「コントローラ」を使用するユーザが含まれる。
VRリグは、ユーザの頭の6自由度(DOF)運動追跡、および手の配向の1つの手あたり少なくとも3DOFを有することができる。任意選択的に、各手について位置追跡もあり、その結果として、1つの手あたり6DOFとなる。このデータは、VR位置追跡センサから読み取られ、従来の方法でメモリに記憶することができる。いくつかの実施形態では、手の配向に対して3つのDOFのみを有し、位置に対しては何も有しない可能性がある、簡略化されたコントローラが使用される。位置検知は、より困難であるが、ハイエンドのVRで行うことができる。
いくつかの実施形態では、VRリグは、頭および両手以外に骨からのより包括的な位置感覚入力を提供するために、膝および足などのユーザの任意の身体部分に取り付けることができる追加のVR位置トラッカを含むことができ、一般に、「位置」追跡は、並進位置と回転位置(配向とも称される)の両方を含むことができる。一部のVRリグは、3つの配向トラッカを有し、追加のトラッカを追加することができるため、アバターは、3〜6つのトラッカからのセンサ入力を使用してアニメーション化され得る。別途示されない限り、いくつかのトラッカを使用するここでの例では、異なる数のトラッカと共働することができる。
VRリグがそのVRリグの機能を実行するために実行するコードを開発者が作成できる開発システムである、別個のハードウェアシステムもあり得る。以下で説明する機能では、コードは、VRリグによって実行されるが、それらの機能の一部は、開発システムで作成される。開発システムは、開発者のユーザインターフェース、コンパイラや開発ツールなどのプログラム用ストレージ、および開発システムがコード更新をVRリグに送信できる通信リンクを有することになる。
いくつかの実施形態では、開発システムとVRリグとの間にプログラム配信プラットフォームがあり、それによってVRリグはプログラム配信プラットフォームと対話し、これは、オンラインアプリケーション配信ストアまたはサービスであってもよく、その上に、開発システムが以前にプログラム/アプリをロードし、および/またはそれを更新する。
いくつかの実施形態では、VRリグの処理部分は分離しており、ワイヤを介してHMDにつながれる。いくつかの実施形態では、VRリグの処理部分は分離しており、HMDと無線で通信する。いくつかの実施形態では、VRリグの処理部分は、ヘッドギアの内側に埋め込まれる。他の変形例も可能である。
VRリグの視覚的出力は、仮想空間内に存在するようにモデリングされたオブジェクトによって定義の仮想空間のコンピュータ生成画像に対応する。VR効果では、仮想空間でモデリングされた視覚オブジェクトを含むシーンがユーザの物理的基準フレーム内で一定のままであるように見えるように、ユーザがヘッドギアを移動させるにつれて視覚的出力が変化する。
全身アバター
仮想空間内に存在するようモデリングされたオブジェクトは、VRリグのユーザのための全身アバターのモデルを含むことができる。より一般的な場合では、全身アバターは、システムの出力が多数の入力に基づいて移動するアバターのシミュレーションまたは表現であるVRシステムまたは他のシステムの一部とし得るアニメーションプロセスで使用され、そのうちの1つは、人間または他のセンサ付き身体から検知された移動であり、その結果、アバターのアニメーションは、人間または他の身体の検知された移動に追従する、またはそれによって駆動される。別途示されない限り、より一般的な事例が適用されると理解されるべきであるが、本明細書における多くの実施例は、様々な概念を例示するためにVRリグを使用する。そのような図および実施例では、通常は人間であるユーザがおり、ユーザの頭がおそらくは並進、回転においてどのように移動しているか、を示すセンサを含むヘッドマウントディスプレイを装着した頭など、センサ付き身体部分を有し、かつユーザの手がおそらくは並進、回転ならびに手首や指の移動など、個々の関節の移動においてどのように移動しているか、を示すセンサを含むユーザの手に計装された手袋を有している。処理システム、VRリグまたはその他は、それらのセンサ入力を使用して、本明細書ではアバターと称される関節型キャラクタをアニメーション化することが課されている。
アニメーションは、センサの読み取り値が記録および記憶された後に発生する場合があるが、アプリケーションは、しばしばセンサの読み取り後の時間遅延でアニメーションを生成できるなど、リアルタイムまたはほぼリアルタイムで発生するアニメーションを有し、ここで、時間遅延は、毎秒60または90フレーム(FPS)のビデオシーケンスのうちの1フレームであるか、または処理システムが使用される用途にとって許容可能な遅延である少数のフレームである。ある場合には、フレームを生成するために必要なすべての処理を実行するために1/90秒未満が利用可能である。ユーザの移動によってユーザがアバターをアニメーション化しており、アバターがアニメーション化されている仮想空間の環境とアバターを対話させる、という印象を作り出すように、アニメーションは、対話型システムにおいてリアルタイムまたはほぼリアルタイムでユーザに表示され得る。環境は、アバターが対話する環境オブジェクトを含むことができ、これは、ユーザの現実の世界に存在する要素を表すことができる。環境オブジェクトには、アバターが通過できない床環境オブジェクトによって表される、ユーザが立っている床などがあり、環境オブジェクトは、仮想空間には存在するがユーザの現実世界には存在しない仮想の壁、箱、ボール、道具などを含み得る。
本明細書で説明されているように、アバターは、センサの読み取り値よりもはるかに多くの自由度を有し得る。例えば、センサの読み取り値は、ユーザの頭の回転およびユーザの両手の回転および並進の指示のみを提供し得るが、アバターは、頭の回転、両手の回転、両手の並進だけでなく、胴体並進、肘、膝、足の配置、脚の回転などの自由度も有している。
アバターは、頭、首、背中、骨盤、腰、膝、足首、足、肩、肘、手首、手などの身体部分を有する、関節型キャラクタとしてモデリングすることができる。各身体部分は、位置的制約(例えば、それらは、それらが取り付けられた他の身体部分に取り付けられたままでなければならない)および関節制限制約(例えば、肘は限られた範囲の運動を有する)を有する。
全身アバターは、キャラクタモデルとしてメモリに表示される。そのキャラクタモデルには、ソケット関節、ヒンジ関節、ユニバーサル関節、プリズム関節、または別の関節タイプを使用して親となる身体部分にそれぞれ接続されている身体部分がある。キャラクタモデルは、(骨の場合のように)ある程度の剛性と(肌や筋肉の場合のように)ある程度の柔軟性を有する半剛体を含み得る。身体部分は、それぞれゼロ以外の定義可能な質量でモデリングされている(ただし、質量がゼロで、悪影響がないようにモデリングされているものもある)。
キャラクタモデルを処理する際に、基本ハードウェアは、他の身体部分の対話に従って身体部分の移動を制約する物理エンジンを実行し、制約を満たし、身体部分の移動を制御して、仮想世界の他の物理化されたオブジェクトと対話する物理に一致させる。
全身アバターの階層は固定されている場合があり、その結果、VRリグは実行時に変更されない1つの階層の身体部分を操作する。他の実施形態では、ユーザが階層を切り替えることができる場合がある。例えば、ユーザは、身体部分および階層における対応する変化を用いて、仮想の人間から仮想の鳥または8本脚の生物へと変化させることができる。階層は、同じままであり得る(例えば、それぞれの肘に各々接続され、両方とも胴体に接続される2本の腕)が、身体部分のサイズは、ユーザごとに変わり得る。
全身アバターの移動は、(ユーザの頭や手の移動を示すセンサから読み取られたデータによって判定されるように)現実世界の頭や手の移動によって駆動することができる。通常、ユーザは、VRリグのトラッカの真下にある身体部分の移動が、現実の世界での対応するユーザ身体部分の移動と合致すると期待する。しかしながら、VRリグによって直接追跡されない身体部分の移動に対して、アバター追跡システムは、VRディスプレイ出力においてユーザにレンダリングされるべきそれらの位置および配向を判定する。アバター追跡システムは、アバターキャラクタモデルの物理的制約を使用し、他の仮想世界の制約は、全身アバターを定義するのに使用される。これにより、仮想アバターは特定の歩行サイクルに追従し、所望のポーズを追跡し、依然としてバランスを保つ。これは、シミュレートされたアバターの骨格の各関節に特定のトルクを判定して適用することによって行うことができる。
ゴーストの手は、VR HMDおよびハンドコントローラ/手袋によって追跡されるユーザの頭および手に対応するゴーストエンドエフェクタとして実装され得る。
「ゴーストの手」技術は、シミュレートされた手の位置とユーザの実際の手の位置の間の不一致を調整するために使用することができる。アバターシステムは、手のシミュレートされた位置に仮想世界の非常に詳細な手のモデルをレンダリングすることができる。同時に、ゴーストの手は、VR HMDおよびハンドコントローラ/手袋で追跡されるユーザの頭および手に対応するエンドエフェクタに1対1で対応する、邪魔にならないゴーストスタイルとしてレンダリングされ得る。
全身アバター較正
VRリグを使用する際に、ユーザは、所定の体の移動におけるユーザの移動を観察し、ユーザの身体部分についての身体部分の長さ(およびおそらくは他の特性)を計算し、それらの長さと特性を用いて全身アバターのキャラクタモデルを更新する較正プログラムを導入し得る。VRリグは、仮想世界におけるユーザまたはユーザの一部の身体部分をシミュレートするときにその更新されたキャラクタモデルを使用する。したがって、ユーザが背の高い人であれば、ユーザのアバターは仮想世界でより高く立つだろうし、ユーザがより小さな腕の長さを有していれば、仮想世界のアバターはより小さなリーチを持つことになる。
較正プロセスでは、ユーザは特定のポーズを取るように求められる。例えば、以下である。
a)ユーザが胴体を直立させ、両脚を閉じ、両腕を前方にまっすぐかつ水平に保持した状態で、VRリグは、基本ハードウェアの一部である位置検知に利用可能なセンサから、ユーザの頭、手などの位置を記録する。
b)ユーザが胴体を直立させ、両脚を合わせ、上腕を前方にまっすぐ水平に保持し、まっすぐ水平なまま保ち、かつ下腕を直立に曲げた状態で、VRリグはその位置を記録する。
c)ユーザが胴体を直立させ、両脚を閉じ、両腕を体の側面に沿って自然に垂れ下げた状態で、VRリグはその位置を記録する。
他のポーズが要求され得る。要求は、命令に追従するために視覚的出力上でユーザに提示することができる。VRリグプロセッサは、アバター関節のおおよその相対位置を計算し、全身アバター骨格をより正確にユーザの体にフィットするように較正するためのプログラムコードを含む。
物理ソルバーと複数力アレイ
本明細書に記載の仮想現実システムは、高レベルにおいては、仮想現実ハードウェアまたは他のデバイスによって測定されるように、ユーザ身体部分の移動に対応するデータによって表すことができる入力を取り込む。致命的な遅延なく表示できるようにするためには、データは、1/90秒以内または1/90秒単位における数単位以内など、しばしばほぼリアルタイムで取得し、ほぼリアルタイムで処理する必要がある。ユーザ身体部分の移動は記録され、ある座標空間における位置「軌跡」と称され得る。速度軌跡は、時間経過に伴う位置軌跡から、微分または他の方法で得ることができ、加速度軌跡は、時間経過に伴う速度軌跡から、微分または他の方法で得ることができる。
本明細書に記載されるような物理エンジンは、ほんの少数のユーザ身体部分からの入力を使用して、自然に見える移動データ(またはアニメーションビデオ自体)を出力することができる。例えば、仮想現実システムにおけるアニメーション化されたアバターは、ユーザの右手、左手および頭の移動の入力のみに基づいて自然に移動させられ得、一方で、アバターの対応する身体部分をユーザ身体部分と(可能な場合は)合致させる。他の入力が提供され得る。一実施例として、ユーザは、ユーザの計装された右手を屈曲した運動で右上に移動させ得る。その後、物理エンジンは、アバターの右手と一致するためのターゲットとしてその位置軌跡を使用する。ターゲットがアバターのリーチを超えるほどユーザの手が十分に移動した場合、物理エンジンは、その後脚などのアバターの体の他の部分をどのように移動させるかを判定し、その結果、アバターは、たとえ物理エンジンが(移動していない場合さえあり得る)ユーザの脚の移動に関する入力を有していなくても、(アバターの手がアバターから外れることなく)右手がターゲット位置に到達できるように歩き始める。
センサ付きユーザ身体部分に対応するアバター身体部分を移動させること、例えばそれらのアバター身体部分をユーザの移動から判定されたターゲット場所/配向を追跡することに加えて、物理エンジンは、アバターの運動を自然に見せ、運動の法則が現実の世界でどのように操作するかと整合するようにも働く。例えば、アバターの重心がアバターの支持ポリゴン(例えば、アバターの両足を含む凸包である地面上のポリゴン)の外側に達するとき、運動の法則は(粘着性の足がない場合)アバターが倒れるべきだと規定する。代わりに、物理エンジンは、転倒するのではなくバランスを取り戻すためにアバターがそれに応じて脚をシャッフルすべきであると判断する。どのリバランスまたはシャッフリングが必要かを判定する処理は、バランスを保つために脚を駆動する物理エンジンのバランスコントローラによって行うことができる。アバター身体部分を追跡している間、アバターのキャラクタフレームの対応する移動があり得る。物理エンジンは、入力VRデバイスの軌跡から、キャラクタフレームの所望の線速度および角速度を計算し、かつアバターの判定された「歩行ニーズ」を満たすのに必要なトルクを生成してユーザの高度な歩行意図に合致させる歩行コントローラを含む。本明細書に記載の物理エンジンは、アバターアニメーションを生成するための追跡ニーズ、バランスニーズおよび歩行ニーズを同時に合致させることができ、自然に見えるだけでなく、追跡されたエンドエフェクタがどこにあるべきかについてのユーザの期待にも合致させる。
従来技術の手法では、ユーザは、多くのデバイスまたはオブジェクトにセンサ付けされ、仮想現実システムが自然に見える移動のために運動キャプチャ(「モーキャップ」)を実行することを可能にしている。役者の全身の運動をキャプチャするため、モーキャップシステムは通常、役者のすべての重要な身体部分の位置を直接追跡するために、20〜100の範囲のかなりの数量のセンサを必要とする。モーキャップシステムでは物理シミュレーションは使用されていない。また、役者の身体部分の追跡された運動を、役者のヒューマノイドトポロジと同様のトポロジを持つ抽象骨格に再ターゲットするために、運動学的アプローチのみが使用される。これでは扱いにくい場合があるので、そのユーザからのわずかな入力からユーザの移動を追跡するアバター上で自然に見える移動を生成することができるという利点がある。
アニメーションは、関節型骨格データ構造を使用している。関節型骨格データ構造は、骨のリスト、関節が2つ以上の骨を接続する関節のリスト、関節の許容移動範囲をしばしば許容角度に関して特定する関節的制約を含む。この関節型骨格データ構造は、ツリー構造と見なすことができる。アニメーションが行われると、アニメーションプロセスは、ある骨が関節によって別の骨に接続されている場合、骨が非接続にならずに関節がその関節の許容運動範囲内でのみ移動するように制約に従う。
逆運動学(IK)は、一部の身体部分のターゲット位置を取り込み、アバター身体部分がターゲット時間にそれらのターゲット位置に衝突する結果をどの一組の関節の回転がもたらすかを判定する。IKはアバターアニメーションシステムで一般的に使用されている。すべての身体部分が入力データで表されているわけではない場合、つまりそれらの軌跡が入力の一部ではない場合、IKエンジンは、他の身体部分がターゲット位置の制約を満たしているときにそれらの身体部分がどこにあるかを推測することができる。しかし、これは時々不自然に見える。
IKソルバーには、関節型多関節骨構造チェーンが与えられ、そこからエンドエフェクタ骨のいくつかのターゲット位置まで、多関節骨構造のベース部からエンドエフェクタまでの中間関節の中間関節回転を計算し、その結果エンドエフェクタ(ハードウェア位置トラッカに取り付けられたチェーンの最後のセグメント)が入力位置を追跡する。例えば、指先が特定の時間に特定の場所にある必要があるという制約の場合、IKソルバーは、その時点でアバターの指先がその特定の時間その場所にあるという特性を有する骨構造の骨格ポーズおよび位置を判定し、一方で、中間関節タイプで必要とされる幾何学的制約には違反しない。IKベースの追跡システムの制限は、その下にある骨格の運動を支配するすべての動力学および物理法則を無視するため、不自然なポーズ(「ひっくり返された肘」など)の生成を含み、多くの場合、物理的に現実的な方法で結果と不整合すると考えられる環境デジタルオブジェクトとうまく対話せず、より低い胴体の移動または散策などの歩行をうまく処理できない。例えば、IKベースのVRアバターシステムの一般的な問題は、アバターの足および脚をどこに置くかがわからないことであり、下半身のキーフレームアニメーションとIK追跡された上半身を溶け込ませるか、アバターの足が地面に固定して、固定された足から手および頭などの追跡されたエンドエフェクタまでIKチェーンを走らせることができるよう強制するか、どちらかの必要がある。
改良されたアバターアニメーションシステムおよびシミュレーションエンジンは、ユーザの生体力学的全身ヒューマノイドモデルのシミュレーションに基づくことができる。このモデルは、関節的制約(例えば、脚は腰と膝に接続したままにしておく必要がある)、関節的制限(例えば、肘は5度から180度まで曲がってもよい)、ならびに質量特性および身体部分の衝突形状を含むメモリに記憶される。例えば、「ヒンジ」関節は、肘の角度および回転を変更することで解決を可能にする肘をモデリングすることができる。データは、骨格の関節に及ぼされるトルクとしてシミュレートし得る筋肉の詳細も含むことができる。ユーザの生体力学的モデルは、アバターと対話することができるテーブル、壁、障害物などの他の動的にシミュレートされた環境オブジェクトと共に、地面衝突および重力を用いてリアルタイムでシミュレートされる。
シミュレーションエンジンが制限された数の骨(通常1〜6個の骨)のターゲット位置を受け取ると、それらをIKソルバーに渡して残りのユーザ骨がどこに位置付けられているかを推測する代わりに、エンジンはそれらのターゲット位置を複数の力アレイ生成器に入力する。いくつかの実施例では、2つの力アレイ生成器が使用され、他の実施例では、3つ以上が使用される。結果として得られるアバターの画像は、運動がより自然に見え、共有仮想空間内で他のシミュレートされた環境オブジェクトまたは他のユーザのアバターと対話することができる。シミュレーションエンジンはアバターのそれぞれの骨のターゲットを処理し、それらを力アレイ生成器に提供する。
1つの力アレイ生成器は、逆動力学プロセスを使用して、追跡された骨のターゲット位置を満たすようにアバターの全身骨格を駆動するために、アバターの各制御仮想筋肉によって及ぼされるのに必要な力を表す力アレイ(ID力アレイ)を計算する。状況に応じて、その力は、仮想筋肉が身体部分の特定の腱取り付け位置に印加されるトルクであり得る。したがって、力が身体部分上の特定の箇所に印加される場合、これはその身体部分の回転点に印加されるトルクと等価であり得る。
逆動力学を使用して、物理エンジンは、関節型の複数の剛体の下にあるツリー構造のエンドエフェクタを駆動してユーザの身体に取り付けられたVR/ARセンサからの入力位置を合致させる力アレイまたはトルクを計算することができる。
順動力学の計算では、骨格の身体部分に加速度や力が印加された場合に、それらの身体部分が新しい位置や角度にどのように移動するかを考慮する。逆動力学では、位置および角度は入力であり、出力は、適用された加速度および力から理想的な骨格の四肢の位置および角度の軌跡を求める一組の微分方程式を使用してそれらの位置および角度に到達するために必要な加速度および力である。逆動力学を使用して、特定の位置および角度の軌跡に到達するために必要な関節モーメントおよび加速度および力を導出する。
いくつかの実施形態では、物理エンジンは、ニュートン−オイラー運動方程式などのニュートン力学に基づく運動方程式を符号化するデータおよびプログラムコードの記憶された表現を使用し、ここで、オブジェクトに印加される力とオブジェクトの質量にオブジェクトの線形加速度を乗じたものの和は等しくなる。したがって、所望の加速度に必要な力は、加速度の値および記憶された質量の値から計算することができ、印加された力から生じる加速度は、オブジェクトの質量の記憶された値で割った力の値から計算することができる。ニュートン−オイラー方程式では、回転は、そのモーメントをオブジェクトの記憶された質量慣性モーメントに角加速度を乗じたものに等しくすることによって対処される。これらの方程式は、アバターの剛体の骨を数学的にモデリングしたものである。これらの方程式から、物理エンジンは、逆動力学を使用して取り付けられた骨または関節の影響を受ける骨の移動に基づいて各関節のトルク(モーメント)値を導出する。
別の実施形態では、物理エンジンは最初にIKプロセスを実行して、(手追跡などのVR入力によって判定される)ターゲット位置を有するエンドエフェクタに至るIKチェーンの中間関節のターゲット角度位置に対応するターゲット角度アレイを計算して記憶し、その後物理エンジンは、PDコントローラを使用して、ターゲット角度アレイからID力アレイを計算し得る。例えば、物理エンジンはTorque(i)=Kp(i)*(TargetAngle(i)−CurrentAngle(i))+Kd*(TargetAngularVelocity(i)−CurrentAngularVelocity(i))を計算し得、式中、Torque(i)は、ID力アレイのi番目の値、TargetAngle(i)は、IKプロセスによって計算されたターゲット角度アレイのi番目の値、CurrentAngle(i)は、関節の現在の配向のアレイのi番目の値である。TargetAngularVelocityとCurrentAngularVelocityの値は、関節のターゲット角度および現在の角度を微分することで計算できる。Kp(i)およびKd(i)は、関節でIDトルクを生成するために使用されるPDコントローラの剛性とダンパーの項を表すPDコントローラ定数である。
別の実施形態では、物理エンジンは、VR入力追跡の位置および配向を追跡するためにエンドエフェクタで単一のPDコントローラを実行してエンドエフェクタにおいて所望のトルク/力を計算し、その後PDコントローラによって計算されたエンドエフェクタにおいて所望の力およびトルクを誘導するために、ヤコビアン転置変換プロセスを使用してすべての中間関節において必要とされるトルクを計算する。
別の力アレイ生成器は、追跡された位置からアバターの暗黙の歩行速度および方向方角を導出し、歩行制御プロセスを使用して、アバターを動かしてバランスを崩すことなく所望の方向に所望の速度で移動し自然に移動するのに必要なトルクを計算する。そのような歩行力アレイ生成器の一実施形態は、倒立振り子プロセスを使用して歩行ニーズに合致する所望の脚振り角度を生成し、その後上述のIDプロセスを実行して脚を所望の角度に駆動し歩行ニーズを満たすのに必要な一組のトルクを計算する。
さらに別の力アレイ生成器は、バランス制御プロセスを使用して、アバターの胴体を直立に維持し、足のバランスを取るために必要な力のバランスを計算する。バランス力アレイ生成器の一実施形態は、胴体を四肢に接続する関節を見つけるために関節を捜索し、以前のステップで計算されたこれらの関節についてのID力アレイおよび歩行力アレイを合計することによってこれらの関節によって及ぼされる胴体にかかる正味総トルクを計算する。次に、バランス力アレイ生成器は、PDコントローラを使用して、Td=Kp*(所望の胴体の配向−現在の胴体の配向)+Kd*胴体の角速度、を介して所望の正味バランストルクTdを計算することができ、式中、KpとKdはPDコントローラの定数である。その後、生成器は、バランスを実現するために、所望の正味バランストルクTdからID力アレイおよび歩行力アレイによって及ぼされる胴体上の現在の正味トルクを減算して胴体の不足トルクTmを得る。最後に、生成器は、胴体を四肢に接続する関節にTmoverを割り当てることで胴体に不足トルクTmを印加する。
その後、ソルバーは、複数の別個に判定された力アレイを、例えば、説明したそれらの力アレイ生成器のうちの2つまたは3つを使用することによって、1つの力アレイに組み合わせる。接触力、重力などの他の力は、容易に加えることができる。次に、ソルバーは、質量を知って身体部分の運動方程式F=maを解き、アバターおよび他の環境オブジェクト上に構成されている接触的制約、関節的制約、運動的制約などのような物理的制約に対する制約方程式C(a)=0も解く加速度値のアレイを見つけようとする。
既知の加速度値のアレイがあり、かつ前のフレームの位置および速度の値が記憶されば、シミュレーションエンジンは、加速度値を剛体システムで使用し、加速度を1ステップ進めて積分して新しい速度値を求めることができ、速度地をさらに積分してシミュレートされた環境内のアバター身体部分および他の動力学オブジェクトの新しい位置値を得る。
このプロセスは、通常1つのビデオフレームまたは設定された数のビデオフレームに対応して、各クロックサイクルについて繰り返すことができる。
シミュレーションエンジンは、役者が低コストのVR/ARデバイスを装着してデジタル環境で異なるシーンをすばやく演出する、映画の事前視覚化アプリケーションで使用することができる。シミュレーションエンジンは、高価な運動キャプチャ機器を使用せずに、デジタル環境でより自然かつ対話的に移動する役者のデジタル表現を提供することができる。
シミュレーションエンジンは、シミュレートされたアバターがユーザの入力トラッカ位置を追跡するだけでなく、異なるスタイルの運動のもとでのアバターの関節応力や圧力分布などの生体医療情報を表示し得る医療またはトレーニングアプリケーションに使用することができる。
いくつかの実施形態では、VR/ARアバター追跡システムの縮小版は、全身骨格の代わりにユーザの部分骨格のみをシミュレートする。いくつかの実施形態では、VR/ARアバター追跡システムは、ユーザの移動から、動物、ロボットまたは機械などの非ヒューマノイドアバターキャラクタに変換する。アバターは、ユーザの体型や骨格と1対1の対応を有し得るが、部分的または抽象的なものにつなげることができる。アバター追跡システムを使用して、非対称の体型およびスケールにわたって入力運動を再ターゲット化することもできる。
いくつかのARおよびMRアプリケーションでは、アバター追跡システムは、シミュレートされたアバター上のユーザの全身または部分的な身体のレンダリングまたは撮像を含む。
アバター追跡システムは、アニメーターが現実的なキーフレームアニメーションを作成するための低コスト、軽量かつリアルタイムの運動キャプチャ(「モーキャップ」)代替システムとしても使用することができる。
図1は、逆動的トルクが表すものの一実施例を示す。それらは、右手がターゲットコントローラの位置および配向に到達するように3つの右腕関節(肩、肘、手首)を駆動するように計算することができる。対応する身体部分に取り付けられたVR位置トラッカに向かってより多くのエンドエフェクタを追跡するために、左腕、首、および脚などの他の追跡肢に追加のトルクがあってもよい。
図2は、ヒューマノイドの本体フレームの直立配向を維持するために本体フレーム(ここでは、胴体および根骨を含む)に印加されるバランストルクの一実施例を示す。この図では、トルクT1、T4、T7、T8、およびT9が、車体フレームを直立させることに最も大きな影響を与える。バランサ制御プロセスの出力は、車体フレームの直立方向に影響を与えるこれらの関節に印加されるこれらの組のトルクとすることができる。
図3は、歩行トルクの一実施例を示す。これらは主に2本の脚(スイング脚とスタンス脚)の下半身のトルクに集中している。これらのトルクは、キャラクタ全体の線速度に重要な役割を果たすスイング脚の形状とスイング方向に影響を与える。スタンス脚(スタンス腰関節、膝関節、足首関節を含む)のトルクはキャラクタの回転速度を判定し、これは角速度であり、線速度にも影響を与える。全体として、歩行コントローラの出力は、キャラクタ全体を所望の線速度と角速度に駆動するための下半身関節の力アレイである。
図4は、力アレイベクトルの成分による総和を示す。
図5は、合計力アレイベクトルおよび制約を解決するためのソルバーを示しており、F、M(すべての骨の質量と慣性モーメントを含む質量特性行列で表される)、C(システム内の接触的制約と関節的制約の制約関数)を与えられて、A(各関節の加速度ベクトルを含む加速度行列)の連立方程式を解く。これにより、ID、バランシングコントローラ、歩行コントローラ、またはVR/ARアバター追跡を行うためのサブセットの単純な組み合わせが可能になる。
いくつかの実施形態では、IDモジュールが必要とされる。
ゴーストの手
いくつかの実施形態では、全身アバターの移動は、アバターの仮想の手の代わりにゴーストの手を使用する。例えば、アバターの移動(例えば、所望のポーズに対する関節回転)は、仮想の手の位置ではなく、ゴーストの手の位置を使用する。これらの位置を用いて、更新ティックにわたる逆運動学または逆動力学を使用し、その後所望のポーズを使用して必要な関節トルクを導出するなどの従来のキャラクタ制御を実行することができる。
VRリグは全身アバターをモデリングし、物理エンジンでは、キャラクタモデルの要素は、仮想空間の物理的制約と一致して移動し、例えば、ユーザの手の移動が仮想世界の他のオブジェクトによる制約を受けてアバターの胴体の移動を引き起こし得る仮想空間などである。しかしながら、ユーザが自分の手をレンガ壁を通る位置に移動させることができる仮想レンガ壁のように、現実世界には存在しないいくつかの仮想世界の制約がある場合がある。
アバターの手は、基本ハードウェアの手袋など、現実世界の3自由度または6自由度の運動追跡デバイスによってキャプチャされた、ユーザの物理的な手の移動に基づいて位置決めされた視覚的出力(カメラビューである場合)に現れる。アバターの手は仮想空間の制約を受けて移動し、そのような制約は手が固体オブジェクトを通って移動することができないという制約である。ユーザの現実世界の手とアバターの手の位置が分岐する場合(現実世界の対応物の制約を持たない仮想世界の制約のためなど)、仮想の手は制約された位置に表示され、視覚的な出力には、現実世界の手の位置に対応する仮想世界の位置に表示される「ゴーストの手」が含まれる。これは両手で行うことができる。したがって、ゴーストの手は、ユーザの手の実際の位置および配向を反映している。
ゴーストの手はオブジェクトに制約されず、半透明としてレンダリングされる場合があり、一方で、仮想の手は非半透明で他のオブジェクトの衝突の制約に追従する。ゴーストの手と仮想の手の位置は、仮想の手がユーザの手が現実世界のオブジェクトに遭遇しない仮想空間内のオブジェクトに遭遇すると分岐する。ユーザが硬い壁において仮想の手をパンチする実施例では、ユーザの手がその衝突点を越えて移動し続けることができる場合、ゴーストの手は前方に続き、堅い壁の反対側に現れることになる。それらは半透明なので、それらはビューを完全に不明瞭にはしない。それらは、オブジェクトを介在させずにレンダリングすることもできるので、その結果、ユーザは、それらが固体オブジェクトまたは他のオブジェクトの後ろにいてもゴーストの手を見ることができる。
分岐は様々な方法で処理することができる。1つの方法は、すべての身体部分を制約し、衝突点で仮想の手を止めることである。これは、仮想の手が壁にあり、ゴーストの手が壁の向こう側にあるように、ユーザには見え、仮想の肘(そしておそらく仮想/制約およびゴースト/非制約の対応物を有する他の身体部分)は、ゴーストの肘よりやや後ろにある(その結果、両方の場合において、下腕身体部分の長さに対する制約が満たされる)。別のアプローチは、仮想の下腕が必ずしもゴーストの下腕と平行にならないように、いくつかの制約を緩和することである。
別のアプローチでは、具現化されたゴーストの手以外にゴーストの身体部分は存在しない。その場合、他の身体部分を考慮したりレンダリングしたり、関節的制約を考慮する必要はない。逆運動学/動力学コントローラを使用すると、ゴーストの手は仮想の手のターゲットとして扱われ、その結果コントローラによって生成された腕関節のトルクは、ゴーストの手に追従するために特定のポーズに仮想の腕を駆動しようとするが、同時に、仮想の手が壁に衝突して壁から力を受け、その力がアバターの骨格全体に伝搬する。最終的な振る舞いは物理エンジンによってシミュレートされる。壁が関節のトルクを釣り合わせるのに十分な摩擦を提供できない場合、仮想の手は壁の表面に沿って移動し、そうでなければ仮想の手は手と壁の接触場所に留まる。
ゴーストの手と現実世界の手の位置との間には、わずかな待ち時間が許容される。ゴーストの手は、仮想世界の他のオブジェクトの前に現れるのが好ましい。これは乗り物酔いなどの悪影響を減らすことができる。そのため、仮想世界の手を隠すオブジェクトがある場合でも、ゴーストの手は隠すオブジェクトを通して透けて見える。したがって、ゴーストの手は、仮想世界に溶け込むのではなく常に見えるように他のオブジェクトとは異なってレンダリングすることが好ましい。
ゴーストの手は、運動学的オブジェクトとしてモデリングすることができ、ゴーストの手が他のオブジェクトと対話しないように、他の仮想世界オブジェクト間の衝突を無効にする。このように、ゴーストの手は現実世界の運動センサによってキャプチャされたデータに追従するが、動的(可視、仮想)手は、表面の衝突などの仮想世界の物理的な法則に従う。ゴーストの手は、ハンドコントローラの位置を運動学的に追跡し、物理的にシミュレートされない「運動学的な手」とも称され得る。
現実世界からのアバターの転用、すなわち一人称から三人称への切り替え
VRリグの視覚的出力では、キャラクタモデルは一人称として現れる。例えば、一人称視点では、仮想空間におけるカメラの視点は、ユーザの頭と目がどこにあるかに対応し、したがって、(アバターの頭に取り付けられている)キャラクタモデルの胴体は、カメラのすぐ下の仮想空間内に残る。胴体が十分な力で他のキャラクタやオブジェクトによって仮想世界内でぶつかると、VRリグは、物理エンジンの出力に従って、その胴体を力の方向に移動させ、その後胴体に取り付けられた身体部分を移動させ、これは頭およびカメラ位置を含む。これはユーザにとってかなりの混乱を招く場合がある。
基本ハードウェアがアバターにかかる力がアバターの頭がある閾値を超えて移動する場合、そうでなければカメラの移動としてユーザに提示するのが望ましくないと判断した場合を扱うために、基本ハードウェアは、カメラ位置をアバターの頭の位置からリンク解除するようにプログラムされる。それが起こるとき、ユーザは三人称の視覚的出力にアバターを見ることになる。したがって、アバターが十分な力で当たり、物理エンジンがアバターは地面に落ちるべきであると判定する力であるとき、アバターは落ちるように見えるが、ユーザの視点が回転して地面に落ちることはない。
応答は、アバターの頭をカメラ位置への緩やかな再リンクであってもよい。例えば、少量の移動があると、アバターの頭がカメラ位置よりも前方に移動し得、ユーザは、自分のアバターの頭の後ろを見ることができるが、仮想の頭は、以前の位置に戻って移動し、カメラ位置に再位置合わせされる。転倒のような場合には、カメラ位置は、アバターの頭の位置を目指してゆっくりと向くこと、またはユーザによって1つのカメラから別のカメラへの切り替えとして解釈され得るカメラ位置の単一の不連続変化などの、移動するものであり得る。アバターの頭の位置とカメラ位置が再位置合わせされると、それらを再びリンクして、全身アバターが一人称に知覚されるようにすることができる。
関節の掴み/投げ
物理エンジンは、オブジェクトが衝突すると、それらが移動し、他のオブジェクトに取り付けられているオブジェクト(例えば、腕に取り付けられたままの手)およびオブジェクトに割り当てられた質量などの制約に従って衝突の推定力と一致して加速されるようにするなど、仮想空間に存在するオブジェクトのモデルを操作する。オブジェクトは、例えばオブジェクトを仮想の手の指オブジェクトで囲むことによって、仮想空間内で「掴む」ことができる。物理エンジンの制約に頼るだけでは、様々な理由からユーザにとって繊細なものになる場合があり、ユーザが仮想空間で掴んで投げる行動を実行するのに必要な運動を通じてVRリグを操ることを困難にする。これは特に、オブジェクトの把握を知らせるユーザへの触覚フィードバックがほとんどまたは全くない場合に当てはまる。
掴みと投げの操作を単純化するために、自然に見える対話を提供しながら「取り付け条件」が存在するときに、手および掴んで投げられたオブジェクトを手に取り付けたままにする新しい関節が追加される。アタッチメントを使用すると、物理エンジンは、物理エンジンが腕を肩に取り付けたままにするのとほぼ同じ方法で、オブジェクトが手の中にあるよう確実にする。取り付け条件の一実施例は、手の指がオブジェクトに触れ、オブジェクトが手のひらにも触れ、かつ指が閉じている場合である。
「切り離し条件」が存在するとき、関節は取り除かれる。切り離し条件の一実施例は、手が最低速度以上で移動しており、かつ指が開いている場合である。したがって、ユーザが仮想ボールを仮想的に投げるために、最初の掴みでボールを手に固定し、ユーザがワインドアップおよび投げ運動を行った後、関節が消え、その後物理エンジンは、投げられたオブジェクトが手から勢いを増して分離するときのオブジェクトの経路を提供し、自然な投げ運動を表す。
関節は、接続を維持するために無限のインパルスを提供する必要はなく、したがって物理的にもっともらしい方法で壊すことができる。投げは、物理シミュレーションの結果として関節が壊れたときに自然に発生することができ、アプリケーションイベントに接続されてプログラム的に制御することができる。後者の状況では、関節は取り除かれ、新しい線速度および角速度を掴みに設定することができる。
武器の振り回し
武器は一続きのオブジェクトとしてモデリングすることができ、1つ以上の関節を通じて仮想の手に取り付けることができる。あるいは、武器は、「3セグメントスティック」のような多関節ソフトボディとしてモデリングすることができ、アバター骨格の一部として取り付けることができる。後者の場合、武器が仮想世界でターゲットに当たったとき、その衝撃はすべての武器内関節および武器と仮想の手との間の関節に分散される。その後、力は手首、腕、肩および胴体をわたって伝播される。このように、武器およびアバターはそれが存在するという錯覚を壊すことなく物理的に仮想世界のオブジェクトと対話する。武器の衝突は仮想の手とゴーストの手に幾分の分岐をもたらす場合があるが、力が現実的に他の身体部分にわたって伝搬すると、分岐は減少する。
いくつかの実施形態では、武器は動的な手にしっかりと取り付けられている。他の実施形態では、武器は、曲がり得る動的な関節を用いて動的な手に接続される。後者は衝撃時の衝撃吸収に役立つ場合がある。
ハードウェア実装
一実施形態によれば、本明細書に記載の技術は、ファームウェア、メモリ、他のストレージ、またはそれらの組み合わせ内のプログラム命令に従ってその技術を実行するようにプログラムされた1つまたは汎用のコンピューティングシステムによって実装される。デスクトップコンピュータシステム、ポータブルコンピュータシステム、ハンドヘルドデバイス、ネットワーキングデバイス、または本技術を実装するためにハードワイヤードロジックおよび/またはプログラムロジックを組み込んだ他の任意のデバイスなど、特殊用途のコンピューティングデバイスを使用することができる。
実行のため1つ以上の命令の1つ以上のシーケンスをプロセッサに運ぶことにおいて、様々な形態の媒体が関与することができる。例えば、命令は、最初に磁気ディスクまたはリモートコンピュータのソリッドステートドライブ上で運ばれてもよい。リモートコンピュータはその命令をその動的メモリにロードすることができ、ネットワーク接続を介して命令を送信することができる。コンピュータシステムにローカルなネットワークインターフェースは、データを受信することができる。バスは、データをメインメモリに運び、プロセッサはそこから命令を取り出して実行する。メインメモリによって受信された命令は、プロセッサによる実行の前または後のいずれかに任意に記憶することができる。
VRシステムは、ヘッドギア、計装された手袋、プロセッサ、メモリおよびケーブル接続などの基本ハードウェア、あるいはそれらの部分間でデータおよび/または電力を転送するための無線接続を含み得る。通信は、ローカルネットワークまたは内部チャネルに接続されたネットワークリンクに結合している双方向データ通信であり得る。無線リンクも実装することができる。
ネットワークリンクは通常、1つ以上のネットワークを通じて他のデータデバイスへのデータ通信を提供する。例えば、ネットワークリンクは、ローカルネットワークを通じてホストコンピュータまたはインターネットサービスプロバイダ(ISP)によって操作されるデータ機器への接続を提供することができる。このようにして、VRリグは、更新およびプログラミングを取得し、ならびにアップロード情報を提供し得る。コンピュータシステムは、ネットワーク、ネットワークリンク、および通信インターフェースを通じて、メッセージを送信し、プログラムコードを含むデータを受信することができる。インターネットの実施例では、サーバは、インターネットを通じて直接またはアプリケーションストアを通じて、アプリケーションプログラムの要求されたコードを送信し得る。受信されたコードは、本明細書のVRリグに起因する機能を実装するためにプロセッサによって実行することができる。そのコードは、シーンデザイナーやプログラマーによって開発ステーションで作成され得る。
図7は、本明細書に記載の機能を実行するためにプロセッサによって使用され、本明細書に記載の実施形態の要素を実装するためにプロセッサによって使用され得る構造を示す。例えば、機能ブロックが参照される場合、それはメモリに記憶されたプログラムコードとして実装され得る。図7は、コンピュータシステム内のプロセッサによってアクセスし実行することができるアプリケーションを有するストレージデバイス702の簡略化された機能ブロック図である。アプリケーションは、サーバ、クライアント、または他のプラットフォームもしくはデバイス上で実行する、本明細書に記載の1つ以上のアプリケーションとすることができ、他の場所に示されているクライアントおよび/またはサーバのうちの1つのメモリを表し得る。ストレージデバイス702は、プロセッサによってアクセスすることができる1つ以上のメモリデバイスとすることができ、ストレージデバイス702は、その上に1つ以上のプロセッサ可読命令を記憶するように構成し得るアプリケーションコード710を記憶することができる。アプリケーションコード710は、アプリケーションに関連するアプリケーションロジック712、ライブラリ機能714、およびファイルI/O機能716を含むことができる。
ストレージデバイス702は、入力変数714を受け取るように構成された1つ以上の記憶場所を含み得るアプリケーション変数712も含むことができる。アプリケーション変数712は、アプリケーションによって生成されるか、または他の方法でアプリケーションに対してローカルな変数を含むことができる。アプリケーション変数712は、例えば、ユーザまたは外部デバイスもしくはアプリケーションなどの外部ソースから取り出されたデータから生成することができる。プロセッサは、アプリケーションコード710を実行して、ストレージデバイス702に提供されたアプリケーション変数712を生成することができる。
アプリケーション変数720は、本明細書に記載されている機能を実行するために必要とされる操作の詳細を含み得る。アニメーションデータ730は、関節型キャラクタ骨格の要素、身体の構成要素、要素の質量、関節的制約、環境オブジェクト、および必要とされる他の詳細などの詳細を含み得る。
1つ以上のメモリ場所は、デバイスデータ722を記憶するように構成することができる。デバイスデータ722は、記録されたユーザVR入力を含む、ユーザまたは外部デバイスなどの外部ソースによって供給されるデータを含むことができる。
ストレージデバイス702は、アプリケーションの結果またはアプリケーションに提供された入力を記憶するように構成された1つ以上の記憶場所744を有するログファイル740も含むことができる。例えば、ログファイル740は、行動履歴を記憶するように構成することができる。
図8は、例示的なコンピュータシステム800を示す。そこに示されるように、コンピュータシステム800は、バス802または情報を通信するための他の通信機構、およびプロセッサ804に提供されるデータおよびプログラム命令などの情報を処理するためにバス802に結合されたプロセッサ804を含む。プロセッサ804は、例えば、汎用マイクロプロセッサであってもよい。
コンピュータシステム800は、プロセッサ804によって実行される情報および命令を記憶するためにバス802に結合された、ランダムアクセスメモリ(RAM)または他の動的ストレージデバイスなどのメインメモリ806も含む。メインメモリ806はまた、プロセッサ804によって実行される命令の実行中に一時変数または他の中間情報を記憶するために使用することができる。そのような命令は、プロセッサ804にアクセス可能な非一時的記憶媒体に記憶されるとき、命令で指定された操作を実行するようにカスタマイズされた特殊用途機械にコンピュータシステム800をレンダリングする。
コンピュータシステム800は、静的情報およびプロセッサ804用の命令を記憶するためにバス802に結合された読み出し専用メモリ(ROM)808または他の静的ストレージデバイスをさらに含む。磁気ディスクまたは光ディスクなどのストレージデバイス810が提供され、情報および命令を記憶するためにバス802に結合される。
コンピュータシステム800は、情報を表示するために、バス802を介してコンピュータモニタまたはVRヘッドセットなどのディスプレイ812に結合することができる。入力デバイス814は、情報およびコマンド選択をプロセッサ804に通信するためにバス802に結合されており、VR入力の形態とすることができる。別の種類のユーザ入力デバイスは、マウス、トラックボール、または方向情報およびコマンド選択をプロセッサ804と通信し、ディスプレイ812上のカーソル移動を制御するためのカーソル方向キーなどのカーソル制御816である。
コンピュータシステム800は、カスタマイズされたハードワイヤードロジック、1つ以上のASICまたはFPGA、ファームウェアおよび/またはコンピュータシステムと組み合わせてコンピュータシステム800を特殊用途機械にプログラムするプログラムロジックを使用して、本明細書に記載の技術を実装することができる。一実施形態によれば、本明細書の技術は、メインメモリ806に含まれる1つ以上の命令の1つ以上のシーケンスを実行するプロセッサ804に応答してコンピュータシステム800によって実行される。そのような命令は、ストレージデバイス810のような他の記憶媒体からメインメモリ806に読み込まれてもよい。メインメモリ806に含まれる命令のシーケンスを実行すると、プロセッサ804は本明細書に記載のプロセスステップを実行する。別の実施形態では、ソフトウェア命令の代わりにまたはそれと組み合わせてハードワイヤード回路を使用することができる。
本明細書で使用される「記憶媒体」という用語は、機械を特定の方式で操作させるデータおよび/または命令を記憶する任意の非一時的媒体を指す。そのような記憶媒体は、不揮発性媒体および/または揮発性媒体を含むことができる。不揮発性媒体は、例えば、ストレージデバイス810などの光ディスクまたは磁気ディスクを含む。揮発性媒体は、メインメモリ806などの動的メモリを含む。一般的な形態の記憶媒体は、例えば、フロッピーディスク、フレキシブルディスク、ハードディスク、ソリッドステートドライブ、磁気テープ、または任意の他の磁気データ記憶媒体、CD−ROM、任意の他の光学データ記憶媒体、任意のホールパターンを有する物理媒体、RAM、PROM、EPROM、FLASH−EPROM、NVRAM、任意の他のメモリチップまたはカートリッジを含む。
記憶媒体は、伝達媒体とは異なるが伝達媒体と一緒に使用することができる。伝達媒体は、記憶媒体間で情報を転送することに携わる。例えば、伝達媒体は、バス802を含むワイヤを含む、同軸ケーブル、銅線、および光ファイバを含む。伝達媒体はまた、電波および赤外線データ通信中に生成されるものなどの音波または光波の形態を採ることもできる。
実行のため1つ以上の命令の1つ以上のシーケンスをプロセッサ804に運ぶことにおいて、様々な形態の媒体が関与することができる。例えば、命令は、最初に磁気ディスクまたはリモートコンピュータのソリッドステートドライブ上で運ばれてもよい。リモートコンピュータはその命令をその動的メモリにロードすることができ、ネットワーク接続を介して命令を送信することができる。コンピュータシステム800にローカルなモデムまたはネットワークインターフェースは、データを受信することができる。バス802は、データをメインメモリ806に運び、プロセッサ804はそこから命令を取り出して実行する。メインメモリ806によって受信された命令は、プロセッサ804による実行の前または後のいずれかに、ストレージデバイス810に任意に記憶することができる。
コンピュータシステム800は、バス802に結合された通信インターフェース818も含む。通信インターフェース818は、ローカルネットワーク822に接続されたネットワークリンク820に結合している双方向データ通信を提供する。無線リンクも実装することができる。任意のそのような実装において、通信インターフェース818は、様々な種類の情報を表すデジタルデータストリームを運ぶ電気信号、電磁気信号、または光信号を送受信する。
ネットワークリンク820は通常、1つ以上のネットワークを通じて他のデータデバイスへのデータ通信を提供する。例えば、ネットワークリンク820は、ローカルネットワーク822を通じてホストコンピュータ824またはインターネットサービスプロバイダ(ISP)826によって操作されるデータ機器への接続を提供することができる。ISP826は、次に、現在一般に「インターネット」828と称されるワールドワイドパケットデータ通信ネットワークを通じて、データ通信サービスを提供する。ローカルネットワーク822およびインターネット828は、両方ともデジタルデータストリームを運ぶ電気信号、電磁気信号または光信号を使用する。コンピュータシステム800の間でデジタルデータをやり取りする、様々なネットワークを通る信号、ならびにネットワークリンク820上および通信インターフェース818を通る信号は、伝達媒体の形態の実施例である。
コンピュータシステム800は、ネットワーク、ネットワークリンク820、および通信インターフェース818を通じて、メッセージを送信し、プログラムコードを含むデータを受信することができる。インターネットの実施例では、サーバ830は、インターネット828、ISP826、ローカルネットワーク822、および通信インターフェース818を通じてアプリケーションプログラムの要求コードを送信し得る。受信されたコードは、受信時にプロセッサ804によって実行され、および/または後で実行するためにストレージデバイス810もしくは他の不揮発性ストレージに記憶されてもよい。
本明細書に記載の方法の操作は、本明細書に別途示されない限り、または別途文脈によって明らかに矛盾しない限り、任意の好適な順序で実行することができる。本明細書に記載のプロセス(またはその変形例および/または組み合わせ)は、実行可能命令で構成された1つ以上のコンピュータシステムの制御下で実行することができ、ハードウェアまたはその組み合わせによって、1つ以上のプロセッサ上で集合的に実行されるコード(例えば、実行可能命令、1つ以上のコンピュータプログラムまたは1つ以上のアプリケーション)として実装することができる。コードは、例えば、1つ以上のプロセッサによって実行可能な複数の命令を含むコンピュータプログラムの形態で、コンピュータ可読記憶媒体に記憶することができる。コンピュータ可読記憶媒体は、非一時的であってもよい。
別途明記しない限り、または別途文脈と明確に矛盾しない限り、「A、B、およびCのうちの少なくとも1つ」または「A、BおよびCのうちの少なくとも1つ」という形の句などの接続的な文言は、他の点では、一般的に使用されている文脈で、項目、用語などを表すことが理解され、項目、用語などは、AまたはBまたはC、あるいはAおよびBおよびCのセットの空でないサブセットのいずれかであってもよい。例えば、3つのメンバーを有するセットの例示的な実施例では、「A、B、およびCのうちの少なくとも1つ」および「A、BおよびCのうちの少なくとも1つ」という接続的な句は、以下のセットのうちのいずれかを指す:{A}、{B}、{C}、{A、B}、{A、C}、{B、C}、{A、B、C}。したがって、そのような接続的な文言は、特定の実施形態が、少なくとも1つのA、少なくとも1つのB、および少なくとも1つのCがそれぞれ存在することが必要であることを意味することを一般に意図しない。
本明細書に提供されるありとあらゆる実施例、または例示的な文言(例えば、「など」)の使用は、単に本発明の実施形態をよりよく明瞭にすることを意図しており、特に請求しない限り本発明の範囲を限定しない。本明細書中のいかなる文言も、特許請求されていない要素を本発明の実施に必須であると示すと解釈されるべきではない。
前述の明細書において、本発明の実施形態は、実装ごとに異なり得る多数の特定の詳細を参照して説明された。したがって、明細書および図面は、限定的な意味ではなく例示的な意味で見なされるべきである。本発明の範囲の唯一かつ排他的な指標、および本発明の範囲であることが出願人によって意図されているものは、後続の訂正を含め、このような特許請求の範囲が発行する特定の形式における、本願から発行する一連の特許請求の範囲の文字通りの等価な範囲である。
本開示の読後、当業者はさらなる実施形態を想定することができる。他の実施形態では、上記に開示された発明の組み合わせまたは副次的組み合わせが有利になされ得る。構成要素の例示的な構成は、例示の目的で示されており、本発明の代替の実施形態では、組み合わせ、追加、再構成などが企図されることを理解されたい。このように、本発明を例示的な実施形態に関して説明してきたが、当業者であれば、数多くの修正が可能であることを理解する。
例えば、本明細書に記載のプロセスは、ハードウェア構成要素、ソフトウェア構成要素、および/またはそれらの任意の組み合わせを使用して実装することができる。したがって、明細書および図面は、限定的な意味ではなく、例示的な意味で見なされるべきである。しかしながら、より広い精神および範囲から逸脱することなく、様々な修正および変更を加えることができ、特許請求の範囲に記載された本発明の範囲、および本発明は特許請求の範囲の範囲内のすべての修正および均等物を包含することを意図していることは明らかである。
ここで説明したように、本開示は、ユーザによって視認可能であるデバイス上に少なくとも視覚的出力を提供する対話型アバターディスプレイシステムであって、視覚的出力は、カメラ位置およびカメラアングルからの仮想空間のコンピュータ生成図であり、コンピュータ生成図は、ユーザの移動に応じて仮想空間内を移動するアバターを含み、対話型アバターディスプレイは、プロセッサと、プロセッサに結合され、プロセッサによる実行のためのプログラム命令を含む、プログラムメモリと、プロセッサに結合され、プロセッサによってアクセス可能なデータを記憶するためのデータメモリと、ユーザの現実世界の座標系における複数のユーザ身体部分の位置を検知するためのセンサと、を含む、対話型アバターディスプレイシステムを製造し使用することを提供する。プログラムメモリは、a)センサ出力から追跡された身体部分の位置および配向を判定するためのプログラムコードであって、追跡された身体部分は、センサのうちの1つ以上に影響を与えるユーザ身体部分である、プログラムコードと、b)アバターの追跡された要素の運動ターゲットを生成するためのプログラムコードであって、運動ターゲットは、追跡された身体部分のうちの1つ以上のユーザの現実世界の座標系における位置または配向に対応する、仮想空間における位置または配向である、ブログラムコードと、c)力値の第1のアレイを計算するためのプログラムコードであって、第1のアレイ内の力値は、特定のアバター身体部分への力に対応する逆動力学力値であり、第1のアレイは、運動ターゲットによって特定されていない少なくとも1つの自由度を含む、複数のアバター自由度の逆動力学力値に対応する、プログラムコードと、d)第2のアレイの力値を計算するためのプログラムコードであって、第1のアレイの力値は、バランス制御力値または歩行制御力のいずれかであり、第2のアレイは、仮想空間内でアバターのバランスを維持するために必要なバランス制御力、またはアバターを全体として移動させて運動ターゲットが与えられたアバターの追跡された要素の位置合わせを維持するために必要な歩行制御力のいずれかに対応する、プログラムコードと、e)第1のアレイおよび第2のアレイを合計力アレイに組み合わせるためのプログラムコードと、f)アバターに対する一組の制約を判定するためのプログラムコードと、g)合計力アレイおよびアバターに対する一組の制約を与えられたアバターの要素の運動方程式に対する解を計算するためのプログラムコードであって、解は、加速度アレイを含み、加速度アレイ内の加速度値は、剛体システムとして特定のアバター身体部分に適用される加速度である、プログラムコードと、h)加速度アレイに基づいて、アバター身体部分の位置および/または速度を更新するプログラムコードと、を含み得る。
いくつかの実施形態では、それらは、シミュレーションクロックを進めることと、ビデオフレーム出力を生成することと、センサ出力から追跡された身体部分の位置および配向を判定するためのプログラムコードで繰り返すことと、のうちの1つ以上を含み、力アレイを組み合わせることは、構成要素ごとの追加を含み、バランス制御力値および歩行制御力値について、力値の第2のアレイおよび力値の第3のアレイの両方を計算するためのプログラムコードを含み、第1のアレイおよび第2のアレイを合計力アレイに組み合わせるためのプログラムコードは、第3のアレイも合計力アレイに組み合わせる。合計力アレイは、シミュレートされた重力および/またはアバターの対話からの寄与、および/または環境オブジェクトおよび/または他のアバターの対話からの寄与を含むことができる。
一組の制約は、物理的制約、接触制約、関節的制約、および/または運動制約のうちの1つ以上を含み得る。
仮想現実システムは、ユーザによって視認可能であるデバイス上に少なくとも視覚的出力を提供することができ、視覚的出力は、カメラ位置およびカメラアングルからの仮想空間のコンピュータ生成図であり、視覚的出力は、ユーザの頭の移動と共に変化して、仮想空間の仮想座標系が、ユーザの現実世界の座標系に対して静止している外観を作成し、仮想現実システムは、プロセッサと、プロセッサに結合され、プロセッサによる実行のためのプログラム命令を含む、プログラムメモリと、プロセッサに結合され、プロセッサによってアクセス可能なデータを記憶するためのデータメモリと、現実世界の座標系における複数のユーザ身体部分の位置を検知するためのセンサと、を含み、プログラムメモリは、a)仮想空間内に全身アバターを作成するためのプログラムコードであって、全身アバターは、センサによって検知された複数のユーザ身体部分の移動に対応する全身アバターの移動を表すのに十分な複数のアバター身体部分に対応する、プログラムコードと、b)複数のアバター身体部分のうちの1つ以上のものに関して定義された関節的制約および物理的制約に従って、かつ複数のユーザ身体部分のうちの1つ以上の検知された移動に従って、複数のアバター身体部分のうちの1つ以上の移動および/または位置を判定するためのプログラムコードと、を含む。
複数のアバター身体部分は、頭、首、背中、骨盤、腰、膝、足首、足、肩、肘、手首、および手を含み得る。関節的制約は、アバター身体部分の階層ツリーグラフ構造によって定義され得、グラフの端部は、2つのアバター身体部分間の関節に対応し、各関節は、ソケット関節、ヒンジ関節、またはユニバーサル関節を含む。仮想現実システムは、較正データから判定され、較正データは、複数のユーザ身体部分の対応する部分の実際のサイズの推定値に対応するアバター身体部分のサイズと、ユーザの特定のポーズを要求するためのプログラムコードと、ユーザが特定のポーズにあるときに、センサデータを記録するためのプログラムコードと、センサデータに基づいて、アバター身体部分に対するサイズを計算するためのプログラムコードと、アバター身体部分をアニメーション化する際に使用するためのアバター身体部分のサイズとして、計算されたサイズを記憶するためのプログラムコードと、を有し得る。
仮想現実システムは、ユーザによって視認可能であるデバイス上に少なくとも視覚的出力を提供することができ、視覚的出力は、カメラ位置およびカメラアングルからの仮想空間のコンピュータ生成図であり、視覚的出力は、ユーザの頭の移動と共に変化して、仮想空間の仮想座標系が、ユーザの現実世界の座標系に対して静止している外観を作成する。仮想現実システムは、プロセッサと、プロセッサに結合され、プロセッサによる実行のためのプログラム命令を含む、プログラムメモリと、プロセッサに結合され、プロセッサによってアクセス可能なデータを記憶するためのデータメモリと、現実世界の座標系における複数のユーザ身体部分の位置を検知するためのセンサと、を含み得る。プログラムメモリは、a)センサデータに基づいて、ユーザの手の軌跡を計算するためのプログラムコードと、b)ユーザの手の軌跡に対応する仮想空間内の仮想手の場所を判定するためのプログラムコードと、c)仮想手の軌跡をユーザの手の軌跡と一致させることが仮想空間の制約に違反するかどうかを判定するためのプログラムコードと、d)仮想手の場所における仮想手の表現、および制約のない位置における仮想手の別個の表現を表示するためのプログラムコードであって、制約されていない位置は、仮想手が、仮想空間の制約が取り除かれた状態で、ユーザの手の軌跡と位置合わせされている場合に、仮想空間内に存在しているであろう位置である、プログラムコードと、を含み得る。
仮想空間の制約は、固体オブジェクトが他の固体オブジェクトを貫通することができないという制約であり得る。別個の表現は、カメラ位置と制約されていない位置との間にある仮想空間の任意の介在オブジェクトを通して半透明かつ可視的に示される、制約されていない位置における仮想手の表現であり得る。
仮想現実システムは、ユーザによって視認可能であるデバイス上に少なくとも視覚的出力を提供し得、視覚的出力は、カメラ位置およびカメラアングルからの仮想空間のコンピュータ生成図であり、視覚的出力は、ユーザの頭の移動と共に変化して、仮想空間の仮想座標系が、ユーザの現実世界の座標系に対して静止している外観を作成する。仮想現実システムは、プロセッサと、プロセッサに結合され、プロセッサによる実行のためのプログラム命令を含む、プログラムメモリと、プロセッサに結合され、プロセッサによってアクセス可能なデータを記憶するためのデータメモリと、現実世界の座標系における複数のユーザ身体部分の位置を検知するためのセンサと、を含み得る。プログラムメモリは、a)アバター身体部分に対する仮想力を判定するためのプログラムコードと、b)視覚的出力において、ユーザの一人称視点からのアバター身体部分を提示するためのプログラムコードであって、一人称視点において、仮想空間のシーンがレンダリングされるカメラ位置は、アバターの頭の目の位置と位置合わせされている、プログラムコードと、c)仮想力がアバターの頭を閾値量を超えて移動させるかどうかを判定するためのプログラムコードと、d)カメラ位置およびアバターの頭の目の位置をリンク解除するためのプログラムコードと、を含み得る。
仮想現実システムは、アバター身体部分がカメラ視野内にあるときに、視覚的出力において、アバター身体部分を表示するためのプログラムコード、および/またはカメラ位置およびアバターの頭の目の位置を再位置合わせし、再リンクするためのプログラムコードを含み得る。
再位置合わせすることは、連続プロセス、またはカメラ位置の非連続移動を伴う段階的プロセスであり得る。
仮想現実システムは、ユーザによって視認可能であるデバイス上に少なくとも視覚的出力を提供し得、視覚的出力は、カメラ位置およびカメラアングルからの仮想空間のコンピュータ生成図であり、視覚的出力は、ユーザの頭の移動と共に変化して、仮想空間の仮想座標系が、ユーザの現実世界の座標系に対して静止している外観を作成する。仮想現実システムは、プロセッサと、プロセッサに結合され、プロセッサによる実行のためのプログラム命令を含む、プログラムメモリと、プロセッサに結合され、プロセッサによってアクセス可能なデータを記憶するためのデータメモリと、現実世界の座標系における複数のユーザ身体部分の位置を検知するためのセンサと、を含み得、プログラムメモリは、a)取り付け条件が存在するかどうかを判定するためのプログラムコードと、b)アバターキャラクタモデルを修正して、手と把持されたオブジェクトとの間に新しい関節を挿入するためのプログラムコードと、c)切り離し条件が存在するかどうかを判定するためのプログラムコードと、d)アバターキャラクタモデルを修正して、手と把持されたオブジェクトとの間の新しい関節を削除するためのプログラムコードと、を含む。
本明細書で引用した刊行物、特許出願、および特許を含むすべての参考文献は、あたかも各参考文献が個別におよび具体的に参照により組み込まれることが示され、その全体が本明細書に記載されるのと同程度に参照により本明細書に組み込まれる。

Claims (22)

  1. ユーザによって視認可能であるデバイス上に少なくとも視覚的出力を提供する対話型アバターディスプレイシステムであって、前記視覚的出力は、カメラ位置およびカメラアングルからの仮想空間のコンピュータ生成図であり、前記コンピュータ生成図は、前記ユーザの移動に応じて前記仮想空間内を移動するアバターを含み、前記対話型アバターディスプレイシステムは、
    プロセッサと、
    前記プロセッサに結合され、前記プロセッサによる実行のためのプログラム命令を含む、プログラムメモリと、
    前記プロセッサに結合され、前記プロセッサによってアクセス可能なデータを記憶するためのデータメモリと、
    前記ユーザの現実世界の座標系における複数のユーザ身体部分の位置を検知するためのセンサと、を含み、前記プログラムメモリは、
    a)センサ出力から追跡された身体部分の位置および配向を判定するためのプログラムコードであって、追跡された身体部分は、前記センサのうちの1つ以上に影響を与えるユーザ身体部分である、プログラムコードと、
    b)前記アバターの追跡された要素の運動ターゲットを生成するためのプログラムコードであって、運動ターゲットは、前記追跡された身体部分のうちの1つ以上の前記ユーザの前記現実世界の座標系における位置または配向に対応する、前記仮想空間における位置または配向である、ブログラムコードと、
    c)力値の第1のアレイを計算するためのプログラムコードであって、前記第1のアレイ内の力値は、特定のアバター身体部分への力に対応する逆動力学力値であり、前記第1のアレイは、前記運動ターゲットによって特定されていない少なくとも1つの自由度を含む、複数のアバター自由度の逆動力学力値に対応する、プログラムコードと、
    d)第2のアレイの力値を計算するためのプログラムコードであって、前記第1のアレイの力値は、バランス制御力値または歩行制御力のいずれかであり、前記第2のアレイは、前記仮想空間内で前記アバターのバランスを維持するために必要なバランス制御力、または前記アバターを全体として移動させて前記運動ターゲットが与えられた前記アバターの前記追跡された要素の位置合わせを維持するために必要な歩行制御力のいずれかに対応する、プログラムコードと、
    e)前記第1のアレイおよび前記第2のアレイを合計力アレイに組み合わせるためのプログラムコードと、
    f)前記アバターに対する一組の制約を判定するためのプログラムコードと、
    g)前記合計力アレイおよび前記アバターに対する一組の制約を与えられた前記アバターの要素の運動方程式に対する解を計算するためのプログラムコードであって、前記解は、加速度アレイを含み、前記加速度アレイ内の加速度値は、剛体システムとして特定のアバター身体部分に適用される加速度である、プログラムコードと、h)前記加速度アレイに基づいて、前記アバター身体部分の位置および/または速度を更新するプログラムコードと、を含む、対話型アバターディスプレイシステム。
  2. シミュレーションクロックを進めることと、
    ビデオフレーム出力を生成することと、前記センサ出力から前記追跡された身体部分の位置および配向を判定するための前記プログラムコードで繰り返すことと、をさらに含む、請求項1に記載の対話型アバターディスプレイシステム。
  3. 力アレイを組み合わせることは、構成要素ごとの追加を含む、請求項1または2に記載の対話型アバターディスプレイシステム。
  4. バランス制御力値および歩行制御力値について、前記力値の第2のアレイおよび前記力値の第3のアレイの両方を計算するためのプログラムコードをさらに含み、前記第1のアレイおよび前記第2のアレイを合計力アレイに組み合わせるための前記プログラムコードは、前記第3のアレイも合計力アレイに組み合わせる、請求項1〜3の何れか一項に記載の対話型アバターディスプレイシステム。
  5. 前記合計力アレイは、シミュレートされた重力からの寄与を含む、請求項1〜4の何れか一項に記載の対話型アバターディスプレイシステム。
  6. 前記合計力アレイは、前記アバターの対話からの寄与を含む、請求項1〜5の何れか一項に記載の対話型アバターディスプレイシステム。
  7. 前記合計力アレイは、環境オブジェクトおよび/または他のアバターの対話からの寄与を含む、請求項6に記載の対話型アバターディスプレイシステム。
  8. 前記一組の制約は、物理的制約、接触制約、関節的制約、および/または運動制約のうちの1つ以上を含む、請求項1〜7の何れか一項に記載の対話型アバターディスプレイシステム。
  9. ユーザによって視認可能であるデバイス上に少なくとも視覚的出力を提供する仮想現実システムであって、前記視覚的出力は、カメラ位置およびカメラアングルからの仮想空間のコンピュータ生成図であり、前記視覚的出力は、前記ユーザの頭の移動と共に変化して、前記仮想空間の仮想座標系が、前記ユーザの現実世界の座標系に対して静止している外観を作成し、前記仮想現実システムは、
    プロセッサと、
    前記プロセッサに結合され、前記プロセッサによる実行のためのプログラム命令を含む、プログラムメモリと、
    前記プロセッサに結合され、前記プロセッサによってアクセス可能なデータを記憶するためのデータメモリと、
    前記現実世界の座標系における複数のユーザ身体部分の位置を検知するためのセンサと、を含み、前記プログラムメモリは、
    a)前記仮想空間内に全身アバターを作成するためのプログラムコードであって、前記全身アバターは、前記センサによって検知された前記複数のユーザ身体部分の移動に対応する前記全身アバターの移動を表すのに十分な複数のアバター身体部分に対応する、プログラムコードと、b)前記複数のアバター身体部分のうちの1つ以上のものに関して定義された関節的制約および物理的制約に従って、かつ前記複数のユーザ身体部分のうちの1つ以上の検知された移動に従って、前記複数のアバター身体部分のうちの1つ以上の移動および/または位置を判定するためのプログラムコードと、を含む、仮想現実システム。
  10. 前記複数のアバター身体部分は、頭、首、背中、骨盤、腰、膝、足首、足、肩、肘、手首、および手を含む、請求項9に記載の仮想現実システム。
  11. 前記関節的制約は、アバター身体部分の階層ツリーグラフ構造によって定義され、グラフの端部は、2つのアバター身体部分間の関節に対応し、各関節は、ソケット関節、ヒンジ関節、またはユニバーサル関節を含む、請求項9または10に記載の仮想現実システム。
  12. アバター身体部分のサイズは、較正データから判定され、前記較正データは、前記複数のユーザ身体部分の対応する部分の実際のサイズの推定値に対応する、請求項9〜11の何れか一項に記載の仮想現実システム。
  13. 前記ユーザの特定のポーズを要求するためのプログラムコードと、
    前記ユーザが前記特定のポーズにあるときに、センサデータを記録するためのプログラムコードと、
    前記センサデータに基づいて、前記アバター身体部分に対する前記サイズを計算するためのプログラムコードと、前記アバター身体部分をアニメーション化する際に使用するためのアバター身体部分のサイズとして、計算されたサイズを記憶するためのプログラムコードと、をさらに含む、請求項12に記載の仮想現実システム。
  14. ユーザによって視認可能であるデバイス上に少なくとも視覚的出力を提供する仮想現実システムであって、前記視覚的出力は、カメラ位置およびカメラアングルからの仮想空間のコンピュータ生成図であり、前記視覚的出力は、前記ユーザの頭の移動と共に変化して、前記仮想空間の仮想座標系が、前記ユーザの現実世界の座標系に対して静止している外観を作成し、前記仮想現実システムは、
    プロセッサと、
    前記プロセッサに結合され、前記プロセッサによる実行のためのプログラム命令を含む、プログラムメモリと、
    前記プロセッサに結合され、前記プロセッサによってアクセス可能なデータを記憶するためのデータメモリと、
    前記現実世界の座標系における複数のユーザ身体部分の位置を検知するためのセンサと、を含み、前記プログラムメモリは、
    a)センサデータに基づいて、ユーザの手の軌跡を計算するためのプログラムコードと、
    b)前記ユーザの手の前記軌跡に対応する前記仮想空間内の仮想手の場所を判定するためのプログラムコードと、
    c)前記仮想手の軌跡を前記ユーザの手の前記軌跡と一致させることが前記仮想空間の制約に違反するかどうかを判定するためのプログラムコードと、d)前記仮想手の前記場所における前記仮想手の表現、および制約のない位置における前記仮想手の別個の表現を表示するためのプログラムコードであって、前記制約されていない位置は、前記仮想手が、前記仮想空間の前記制約が取り除かれた状態で、前記ユーザの手の前記軌跡と位置合わせされている場合に、前記仮想空間内に存在しているであろう位置である、プログラムコードと、を含む、仮想現実システム。
  15. 前記仮想空間の前記制約は、固体オブジェクトが他の固体オブジェクトを貫通することができないという制約である、請求項14に記載の仮想現実システム。
  16. 前記別個の表現は、前記カメラ位置と前記制約されていない位置との間にある前記仮想空間の任意の介在オブジェクトを通して半透明かつ可視的に示される、前記制約されていない位置における前記仮想手の表現である、請求項14または15に記載の仮想現実システム。
  17. ユーザによって視認可能であるデバイス上に少なくとも視覚的出力を提供する仮想現実システムであって、前記視覚的出力は、カメラ位置およびカメラアングルからの仮想空間のコンピュータ生成図であり、前記視覚的出力は、前記ユーザの頭の移動と共に変化して、前記仮想空間の仮想座標系が、前記ユーザの現実世界の座標系に対して静止している外観を作成し、前記仮想現実システムは、
    プロセッサと、
    前記プロセッサに結合され、前記プロセッサによる実行のためのプログラム命令を含む、プログラムメモリと、
    前記プロセッサに結合され、前記プロセッサによってアクセス可能なデータを記憶するためのデータメモリと、
    前記現実世界の座標系における複数のユーザ身体部分の位置を検知するためのセンサと、を含み、前記プログラムメモリは、
    a)アバター身体部分に対する仮想力を判定するためのプログラムコードと、
    b)前記視覚的出力において、前記ユーザの一人称視点からの前記アバター身体部分を提示するためのプログラムコードであって、前記一人称視点において、前記仮想空間のシーンがレンダリングされるカメラ位置は、アバターの頭の目の位置と位置合わせされている、プログラムコードと、
    c)前記仮想力が前記アバターの頭を閾値量を超えて移動させるかどうかを判定するためのプログラムコードと、d)前記カメラ位置および前記アバターの頭の前記目の位置をリンク解除するためのプログラムコードと、を含む、仮想現実システム。
  18. 前記アバター身体部分がカメラ視野内にあるときに、前記視覚的出力において、アバター身体部分を表示するためのプログラムコードをさらに含む、請求項17に記載の仮想現実システム。
  19. 前記カメラ位置および前記アバターの頭の前記目の位置を再位置合わせし、再リンクするためのプログラムコードをさらに含む、請求項17または18に記載の仮想現実システム。
  20. 前記再位置合わせすることは、連続プロセスである、請求項19に記載の仮想現実システム。
  21. 前記再位置合わせは、前記カメラ位置の非連続移動を伴う段階的プロセスである、請求項19に記載の仮想現実システム。
  22. ユーザによって視認可能であるデバイス上に少なくとも視覚的出力を提供する仮想現実システムであって、前記視覚的出力は、カメラ位置およびカメラアングルからの仮想空間のコンピュータ生成図であり、前記視覚的出力は、前記ユーザの頭の移動と共に変化して、前記仮想空間の仮想座標系が、前記ユーザの現実世界の座標系に対して静止している外観を作成し、前記仮想現実システムは、
    プロセッサと、
    前記プロセッサに結合され、前記プロセッサによる実行のためのプログラム命令を含む、プログラムメモリと、
    前記プロセッサに結合され、前記プロセッサによってアクセス可能なデータを記憶するためのデータメモリと、
    前記現実世界の座標系における複数のユーザ身体部分の位置を検知するためのセンサと、を含み、前記プログラムメモリは、
    a)取り付け条件が存在するかどうかを判定するためのプログラムコードと、
    b)アバターキャラクタモデルを修正して、手と把持されたオブジェクトとの間に新しい関節を挿入するためのプログラムコードと、
    c)切り離し条件が存在するかどうかを判定するためのプログラムコードと、
    d)前記アバターキャラクタモデルを修正して、前記手と前記把持されたオブジェクトとの間の前記新しい関節を削除するためのプログラムコードと、を含む、仮想現実システム。
JP2019551929A 2016-12-13 2017-12-13 ソルバーに複数の力アレイを使用した改良型仮想現実システム Pending JP2020502709A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662433764P 2016-12-13 2016-12-13
US62/433,764 2016-12-13
PCT/US2017/066226 WO2018112112A1 (en) 2016-12-13 2017-12-13 Improved virtual reality system using multiple force arrays for a solver

Publications (1)

Publication Number Publication Date
JP2020502709A true JP2020502709A (ja) 2020-01-23

Family

ID=62489984

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019551929A Pending JP2020502709A (ja) 2016-12-13 2017-12-13 ソルバーに複数の力アレイを使用した改良型仮想現実システム

Country Status (6)

Country Link
US (1) US10657696B2 (ja)
EP (1) EP3552199A4 (ja)
JP (1) JP2020502709A (ja)
KR (1) KR20190110539A (ja)
CA (1) CA3045908A1 (ja)
WO (1) WO2018112112A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102464437B1 (ko) 2022-05-04 2022-11-09 주식회사 엠펀치 기가 픽셀 미디어 객체 감상 및 거래를 제공하는 메타버스 기반 크로스 플랫폼 서비스 시스템
JP7513262B2 (ja) 2020-07-16 2024-07-09 Popopo株式会社 端末装置、仮想オブジェクト操作方法、及び仮想オブジェクト操作プログラム

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10096133B1 (en) 2017-03-31 2018-10-09 Electronic Arts Inc. Blendshape compression system
US10497163B1 (en) * 2017-05-16 2019-12-03 Electronic Arts Inc. Computer architecture for animation of a character in a simulation based on muscle activation data
US10535174B1 (en) 2017-09-14 2020-01-14 Electronic Arts Inc. Particle-based inverse kinematic rendering system
US10386938B2 (en) * 2017-09-18 2019-08-20 Google Llc Tracking of location and orientation of a virtual controller in a virtual reality system
US10477186B2 (en) * 2018-01-17 2019-11-12 Nextvr Inc. Methods and apparatus for calibrating and/or adjusting the arrangement of cameras in a camera pair
ES2725128B2 (es) * 2018-03-15 2020-07-22 Univ Rey Juan Carlos Método implementado por ordenador, sistema y producto del programa de ordenador para simular el comportamiento de una mano que interactúa con objetos en un entorno virtual.
GB201813450D0 (en) * 2018-08-17 2018-10-03 Hiltermann Sean Augmented reality doll
WO2020054954A1 (en) * 2018-09-11 2020-03-19 Samsung Electronics Co., Ltd. Method and system for providing real-time virtual feedback
US11386604B2 (en) 2018-09-27 2022-07-12 Apple Inc. Moving an avatar based on real-world data
JP7271251B2 (ja) * 2019-03-22 2023-05-11 日産自動車株式会社 情報処理装置及び情報処理方法
US10978019B2 (en) * 2019-04-15 2021-04-13 XRSpace CO., LTD. Head mounted display system switchable between a first-person perspective mode and a third-person perspective mode, related method and related non-transitory computer readable storage medium
GB201906420D0 (en) 2019-05-07 2019-06-19 Farley Adam Virtual augmented and mixed reality systems with physical feedback
US10748350B1 (en) * 2019-05-17 2020-08-18 Roblox Corporation Modification of animated characters
CN110174951B (zh) * 2019-05-30 2022-06-21 郑州爱普锐科技有限公司 基于vr实训设备的人物动作识别方法
US10902618B2 (en) * 2019-06-14 2021-01-26 Electronic Arts Inc. Universal body movement translation and character rendering system
CN111857367B (zh) * 2019-07-10 2023-06-27 深圳市工匠社科技有限公司 虚拟角色控制方法及装置
CA3150004A1 (en) * 2019-09-06 2021-03-11 Vivek KHARE SIMULATED ANIMAL MODEL AND DATA PRODUCTION SYSTEM
CN110721473B (zh) * 2019-10-10 2022-10-04 深圳市瑞立视多媒体科技有限公司 物体抛出方法、装置、设备及计算机可读存储介质
EP3813023A1 (en) * 2019-10-21 2021-04-28 Dassault Systèmes Computer-implemented method for making a skeleton of a modeled body take a posture
CN113052781B (zh) * 2019-12-26 2024-04-12 华为技术有限公司 图像检测方法、装置、设备、系统和存储介质
US11972353B2 (en) 2020-01-22 2024-04-30 Electronic Arts Inc. Character controllers using motion variational autoencoders (MVAEs)
US11504625B2 (en) 2020-02-14 2022-11-22 Electronic Arts Inc. Color blindness diagnostic system
US11648480B2 (en) 2020-04-06 2023-05-16 Electronic Arts Inc. Enhanced pose generation based on generative modeling
US11232621B2 (en) 2020-04-06 2022-01-25 Electronic Arts Inc. Enhanced animation generation based on conditional modeling
US11776193B1 (en) * 2020-04-28 2023-10-03 Apple Inc. Granular motion control for a virtual agent
US20230215102A1 (en) * 2020-05-25 2023-07-06 Sony Group Corporation Media distribution device, media distribution method, and program
CN112000228B (zh) * 2020-09-04 2024-04-05 河北大学 一种沉浸式虚拟现实中控制移动的方法及系统
CN116830167A (zh) * 2020-12-21 2023-09-29 伊虎智动有限责任公司 用于开放式运动技能的评估和增强系统
US11830121B1 (en) 2021-01-26 2023-11-28 Electronic Arts Inc. Neural animation layering for synthesizing martial arts movements
KR20220111918A (ko) 2021-02-03 2022-08-10 삼성전자주식회사 캐릭터 애니메이션 동작 제어 방법 및 장치
US11887232B2 (en) 2021-06-10 2024-01-30 Electronic Arts Inc. Enhanced system for generation of facial models and animation
US11670030B2 (en) 2021-07-01 2023-06-06 Electronic Arts Inc. Enhanced animation generation based on video with local phase
US11562523B1 (en) 2021-08-02 2023-01-24 Electronic Arts Inc. Enhanced animation generation based on motion matching using local bone phases
KR102641519B1 (ko) * 2021-08-11 2024-02-29 한국전자기술연구원 메타버스 제공 방법, 메타버스 제공 장치, 및 메타버스 제공 시스템
CN114089833B (zh) * 2021-11-23 2024-08-13 清华大学 一种虚拟现实身体所有权的量化方法、系统及电子设备
US20240346751A1 (en) * 2023-04-17 2024-10-17 Qualcomm Incorporated Generating and/or displaying virtual interactions with virtual objects
CN116652971A (zh) * 2023-07-31 2023-08-29 江苏云幕智造科技有限公司 一种不同刚度物体识别与机械手抓取力控制方法
CN118378389B (zh) * 2024-06-25 2024-09-17 山东捷瑞数字科技股份有限公司 一种基于物理引擎的铰链结构仿真方法及系统

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL119082A (en) * 1996-08-16 2001-04-30 Virtue Ltd A method for creating graphic characters
US7135003B2 (en) * 2001-06-29 2006-11-14 Honda Giken Kogyo Kabushiki Kaisha Feedback estimation of joint forces and joint moments
US7333111B2 (en) * 2003-04-25 2008-02-19 Honda Giken Kogyo Kabushiki Kaisha Joint component framework for modeling complex joint behavior
US20060277466A1 (en) * 2005-05-13 2006-12-07 Anderson Thomas G Bimodal user interaction with a simulated object
US7573477B2 (en) * 2005-06-17 2009-08-11 Honda Motor Co., Ltd. System and method for activation-driven muscle deformations for existing character motion
US7403202B1 (en) * 2005-07-12 2008-07-22 Electronic Arts, Inc. Computer animation of simulated characters using combinations of motion-capture data and external force modelling or other physics models
JP4682791B2 (ja) * 2005-10-12 2011-05-11 ソニー株式会社 操作空間物理量算出装置及び操作空間物理量算出方法、並びにコンピュータ・プログラム
US9067097B2 (en) * 2009-04-10 2015-06-30 Sovoz, Inc. Virtual locomotion controller apparatus and methods
US8253746B2 (en) * 2009-05-01 2012-08-28 Microsoft Corporation Determine intended motions
KR101671900B1 (ko) * 2009-05-08 2016-11-03 삼성전자주식회사 가상 세계에서의 객체를 제어하는 시스템, 방법 및 기록 매체
US20100302253A1 (en) * 2009-05-29 2010-12-02 Microsoft Corporation Real time retargeting of skeletal data to game avatar
US9245177B2 (en) * 2010-06-02 2016-01-26 Microsoft Technology Licensing, Llc Limiting avatar gesture display
US9401178B2 (en) * 2010-08-26 2016-07-26 Blast Motion Inc. Event analysis system
US8860732B2 (en) * 2010-09-27 2014-10-14 Adobe Systems Incorporated System and method for robust physically-plausible character animation
US9381426B1 (en) 2013-03-15 2016-07-05 University Of Central Florida Research Foundation, Inc. Semi-automated digital puppetry control
US9536138B2 (en) 2014-06-27 2017-01-03 Microsoft Technology Licensing, Llc Dynamic remapping of components of a virtual skeleton
US9984505B2 (en) * 2014-09-30 2018-05-29 Sony Interactive Entertainment Inc. Display of text information on a head-mounted display

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7513262B2 (ja) 2020-07-16 2024-07-09 Popopo株式会社 端末装置、仮想オブジェクト操作方法、及び仮想オブジェクト操作プログラム
KR102464437B1 (ko) 2022-05-04 2022-11-09 주식회사 엠펀치 기가 픽셀 미디어 객체 감상 및 거래를 제공하는 메타버스 기반 크로스 플랫폼 서비스 시스템

Also Published As

Publication number Publication date
EP3552199A1 (en) 2019-10-16
US20180165864A1 (en) 2018-06-14
EP3552199A4 (en) 2020-06-24
US10657696B2 (en) 2020-05-19
WO2018112112A1 (en) 2018-06-21
CA3045908A1 (en) 2018-06-21
KR20190110539A (ko) 2019-09-30

Similar Documents

Publication Publication Date Title
US10657696B2 (en) Virtual reality system using multiple force arrays for a solver
Caserman et al. Real-time body tracking in virtual reality using a Vive tracker
US11113860B2 (en) Particle-based inverse kinematic rendering system
US11928765B2 (en) Animation implementation method and apparatus, electronic device, and storage medium
CN112001989B (zh) 虚拟对象的控制方法及装置、存储介质、电子装置
US7403202B1 (en) Computer animation of simulated characters using combinations of motion-capture data and external force modelling or other physics models
Borst et al. Realistic virtual grasping
Shum et al. Real-time physical modelling of character movements with microsoft kinect
Borst et al. A spring model for whole-hand virtual grasping
Feng et al. An example-based motion synthesis technique for locomotion and object manipulation
Khundam First person movement control with palm normal and hand gesture interaction in virtual reality
US20170003738A1 (en) Systems and methods for immersive physical interaction with a virtual environment
Kenwright Generating responsive life-like biped characters
Kenwright Real-time physics-based fight characters
TW201215435A (en) Visual target tracking
US11816772B2 (en) System for customizing in-game character animations by players
Tao et al. Human modeling and real-time motion reconstruction for micro-sensor motion capture
WO2022159660A1 (en) Method, system, and apparatus for full-body tracking with magnetic fields in virtual reality and augmented reality applications
WO2016188551A1 (en) Animating a virtual object in a virtual world
Kim et al. Realtime performance animation using sparse 3D motion sensors
White et al. A virtual reality application for stroke patient rehabilitation
US20120223953A1 (en) Kinematic Engine for Adaptive Locomotive Control in Computer Simulations
Charles Real-time human movement mapping to a virtual environment
Friðriksson et al. Become your Avatar: Fast Skeletal Reconstruction from Sparse Data for Fully-tracked VR.
Komura et al. Real‐time locomotion control by sensing gloves