JP2020501261A - 仮想現実におけるオブジェクトの共同操作 - Google Patents

仮想現実におけるオブジェクトの共同操作 Download PDF

Info

Publication number
JP2020501261A
JP2020501261A JP2019529565A JP2019529565A JP2020501261A JP 2020501261 A JP2020501261 A JP 2020501261A JP 2019529565 A JP2019529565 A JP 2019529565A JP 2019529565 A JP2019529565 A JP 2019529565A JP 2020501261 A JP2020501261 A JP 2020501261A
Authority
JP
Japan
Prior art keywords
user
state
request
image
environment
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.)
Granted
Application number
JP2019529565A
Other languages
English (en)
Other versions
JP6782846B2 (ja
Inventor
グリーソン,ティム
マクギリブレー,イアン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of JP2020501261A publication Critical patent/JP2020501261A/ja
Application granted granted Critical
Publication of JP6782846B2 publication Critical patent/JP6782846B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0015Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy
    • H04L1/0017Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy where the mode-switching is based on Quality of Service requirement
    • H04L1/0018Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy where the mode-switching is based on Quality of Service requirement based on latency requirement

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)

Abstract

VR環境における競合を解決する技術では、VR環境の仮想オブジェクトがVR環境で2人以上のユーザによって同時に操作された場合、VRサーバが競合状態を生成する。仮想オブジェクトが競合状態である場合、VRサーバは、各ユーザに自身の操作を見せる。競合が解決されると、提示した操作が選択されなかったユーザには、自身の操作がアニメーション表示されて、その後解決状態になる様子が表示される。このように、各ユーザは、自然でまとまりのあるVR環境のビューを目にし、その環境に没入したままでいる。仮想オブジェクトは、操作があると突然見えなくなって別の場所に異なる形状で再び現れるのではなく、連続的に変化する。

Description

関連出願の相互参照
本願は、2016年12月2日に出願され、「COLLABORATIVE MANIPULATION OF OBJECTS IN VIRTUAL REALITY(仮想現実におけるオブジェクトの共同操作)」と題された米国特許出願第15/367,953号の継続出願であり、かつ、それに基づく優先権を主張し、そのすべての開示内容を、引用により本明細書に援用する。
技術分野
本明細書は、仮想現実環境のオブジェクトに関する。
背景
複数のユーザは、共同環境においてソフトウェアオブジェクトとやり取りすることができる。ネットワークの遅れおよびその他の要因によって、2人以上のユーザが同時に同じオブジェクトを異なる形に変更しようとするなどの競合が生じる可能性がある。
概要
包括的な一態様では、方法は、VR環境を作り出すように構成された仮想現実(VR)サーバの処理回路が、VR環境におけるオブジェクトを現在の状態から第1状態にする第1操作を行う第1要求を第1ユーザから受け付け、VR環境におけるオブジェクトを現在の状態から第2状態にする第2操作を行う第2要求を第2ユーザから受け付けるステップを含み得る。方法は、第1要求と第2要求との競合を示す競合状態を特定するステップも含み得る。方法は、第1操作を行った後のオブジェクトの画像を第1ユーザに提供するステップと、第2操作を行った後のオブジェクトの画像を第2ユーザに提供するステップとをさらに含み得る。方法は、競合を解決して第1要求の許可および第2要求の拒否を示す解決した状態を生成するステップをさらに含み得る。方法は、解決した状態を生成することに応答して、オブジェクトを第1状態にする操作のアニメーションを第2ユーザに提供するステップをさらに含み得る。
1つ以上の実装形態の詳細を、添付の図面および以下の説明において記載する。その他の特徴は、本明細書および図面から、ならびに請求の範囲から明らかになるだろう。
本明細書に記載の改良技術が実施され得る例示的な電子環境を示す図である。 図1に示す改良技術を実施する方法の例を示すフローチャートである。 図1に示す改良技術に従って競合を解決する前の、VR環境で1つのオブジェクトとやり取りしている一組のユーザ例の図である。 図1に示す改良技術に従って競合を解決する前の、VR環境で1つのオブジェクトとやり取りしている一組のユーザ例の図である。 図1に示す改良技術に従って競合を解決する例示的な工程を説明するフローチャートである。 図1に示す改良技術に従って競合を解決した後の、VR環境でオブジェクトとやり取りしている一組のユーザ例の図である。 図1に示す改良技術に従って競合を解決した後の、VR環境でオブジェクトとやり取りしている一組のユーザ例の図である。 コンピュータデバイス、および本明細書に記載の回路とともに使用できるモバイルコンピュータデバイスの例を示す図である。 例示的なVRヘッドマウントディスプレイ(HMD)を示す図である。 例示的なVR HMDおよびコントローラを示す図である。 例示的なVR HMDおよびコントローラを示す図である。 例示的なVR HMDおよびコントローラを示す図である。
詳細な説明
複数のユーザは、ソフトウェアオブジェクトとやり取りすることができる。ネットワークの遅れおよびその他の要因によって、たとえば、共有ドキュメント編集環境における単語など、2人以上のユーザが同時に同じオブジェクトを異なる形に変更しようとするなどの競合が生じる可能性がある。共有環境における競合を解決するための従来の手法には、変更が承認されるまでオブジェクトを移動するまたはオブジェクトを隠す必要があった。
競合を解決するための従来の手法は、ユーザが没入しない2次元環境、たとえば、共同型文書作成ソフトウェアに応用される。しかしながら、VRなどの3次元没入型環境では、競合を解決するための従来の手法では、ユーザを不快にさせたり、および/またはユーザそれぞれの環境での没入を邪魔してしまったりする可能性がある。
本明細書に記載の実装形態によると、VR環境における競合を解決する改良技術は、VR環境の仮想オブジェクトがVR環境で2人以上のユーザによって同時に操作された場合、VRサーバが競合状態を生成する。仮想オブジェクトが競合状態である場合、VRサーバは、各ユーザにユーザ自身の操作を見せる。競合が解決されると、各ユーザは、仮想オブジェクトがアニメーション表示されて、その後解決状態になる様子を目にする。このように、各ユーザは、自然でまとまりのあるVR環境のビューを目にし、その環境に没入したままでいる。仮想オブジェクトは、操作があり次第突然見えなくなって別の場所に別の形状で再び現れるのではなく、連続的に変化する。
図1は、上述した改良技術が実施され得る例示的な電子環境100を示す図である。図1に示すように、電子環境100は、複数のユーザ112(1)〜112(N)を含む。各ユーザは、ユーザデバイス114(1)〜114(N)によって制御されるそれぞれのVRコントローラ110(1)〜110(N)を介してVR環境に没入する。電子環境100は、VRサーバコンピュータ120およびネットワーク150をも含む。
VRコントローラ110は、ユーザ112が装着するヘッドマウントディスプレイ(HMD)の形をとって、没入型仮想環境を提供してもよい。例示的な電子環境100では、VRコントローラ110(1)を装着したユーザ112(1)は、ユーザデバイス、すなわち、ユーザデバイス114(1)を把持する。ユーザデバイス114(1)は、たとえば、スマートフォン、コントローラ、ジョイスティック、または没入型仮想環境でやり取りするためにVRコントローラ110(1)とペアリングまたは通信できる別の持ち運び可能な携帯電子機器(複数可)であってもよい。ユーザデバイス114(1)は、たとえば、有線接続、または、たとえば、WiFiあるいはBluetooth(登録商標)接続などの無線接続を介してVRコントローラ110(1)と動作可能に連結またはペアリングされてもよい。ユーザデバイス114(1)とVRコントローラ110(1)とのペアリングまたは動作可能な接続によって、ユーザデバイス114(1)とVRコントローラ110(1)との間の通信、およびユーザデバイス114(1)とVRコントローラ110(1)との間のデータのやり取りが可能になってもよい。これによって、没入型仮想環境でやり取りを行うためのVRコントローラ110(1)と通信を行うコントローラとしてユーザデバイス114(1)を機能させることができる。すなわち、たとえば、ユーザデバイス114(1)から発せられ、仮想のオブジェクトまたは特徴に選択のために向けられるビームまたは光線など、ユーザデバイス114(1)の操作、および/またはユーザデバイス114(1)のタッチ面上で受け付けられた入力、および/またはユーザデバイス114(1)の移動は、VRコントローラ110(1)が提供する没入型仮想環境における、対応する選択、移動、またはその他の種類のやり取りに変換されてもよい。
VRサーバコンピュータ120は、没入型仮想環境用のデータを生成し、ネットワーク150によってそのデータをユーザデバイス、たとえば、114(1)に送信するように構成される。図1に示すように、VRサーバコンピュータ120は、ネットワーク150によってユーザデバイス114(1)と通信するコンピュータシステムとして実装されるが、その他の実装形態では、VRサーバコンピュータ120は、ユーザデバイスのうちの1つ、たとえば、ユーザデバイス114(1)に備えられる。
いくつかの実施形態では、VRサーバコンピュータ120の構成要素のうちの1つ以上は、メモリ126に格納された命令を処理するように構成されたプロセッサ(たとえば、処理装置124)であり得、または、当該プロセッサを含み得る。図1に示すこのような命令として、仮想環境(VE:Virtual Environment)通信マネージャ160およびVE競合解決マネージャ170が挙げられる。さらには、図1に示すように、メモリ126は、様々なデータを格納するように構成され、当該データについては、このようなデータを利用するそれぞれのマネージャに関連して説明する。
VE通信マネージャ160は、VEデータ140としてVRサーバコンピュータ120において表される仮想環境に対する変更の要求を受け付けて処理するように構成される。たとえば、仮想環境に没入しているユーザ112(1)が仮想環境において仮想オブジェクト142を移動させると、VRコントローラ/ディスプレイ110(1)は、この変更をユーザ112(1)にローカルで表示する。しかしながら、VEデータ140が表示のために処理されるユーザデバイス114(1)は、VRサーバコンピュータ120に格納されたVEデータが更新されるよう、仮想オブジェクトを移動させることによって生じた仮想環境での変更をネットワーク150によってVRサーバコンピュータ120に送る。このように、1人のユーザによって行われた仮想環境に対する変更を、仮想環境に没入しているすべてのユーザが体験することになる。
いくつかの実装形態では、図1に示すように、仮想環境の仮想オブジェクト142は、メッシュ144として表される。3次元仮想オブジェクト142のメッシュ144は、任意の数の頂点146、エッジ148、およびフェース150を含んでもよい。このように、オブジェクト142に対するいかなる変更も、1つ以上の頂点146、エッジ148、および/またはフェース150に対する具体的な変更として表されてもよい。さらには、VRサーバコンピュータ120は、メッシュ144に対する直接の変更だけでなく、たとえば、オブジェクト142の変形の一部としての頂点146の移動によって、別の頂点146が移動されるなどの二次効果も格納してもよい。
ユーザ、たとえば、ユーザ112(1)が仮想環境の仮想オブジェクト142に対して変更を行った場合、VE通信マネージャ142は、この変更を未処理のオブジェクト変更154としてメモリ126に格納するように構成される。メモリ126に格納された各々の未処理のオブジェクト変更154は、オブジェクト142を変更する要求として表される。ほとんどの場合、未処理のオブジェクト変更154は互いに競合しておらず(すなわち、これらの変更は第1の変更が第2の変更のいずれの部分も取り消さないという点で統計的に独立(orthogonal)している)、オブジェクト142に対する最終的変更(net change)は、当該未処理のオブジェクト変更154の集約である。いくつかの実装形態では、VRサーバコンピュータ120は、未処理のオブジェクト変更154に従ってメッシュ144に対して変更を行うように構成される。次に、VE通信マネージャ160は、各ユーザ112(1)〜112(N)が仮想環境のオブジェクト142に集約された同じ変更を目にするよう、この変更を各ユーザデバイス114(1)〜114(N)に渡すように構成される。
しかしながら、場合によっては、競合する未処理のオブジェクト変更154がある可能性がある。たとえば、未処理のオブジェクト変更154に格納されている、オブジェクト142のエッジ148を右に10cm移動するというユーザ112(1)からの要求を考える。この同じエッジ148を実質的に同時に左に10cm移動する要求もあるとする。このような未処理のオブジェクト変更154は、互いに競合するが、一致していない頂点、エッジ、およびフェースに対する変更であっても、競合が生じる結果になり得る。たとえば、第1フェースおよび隣接する第2フェースの移動は、第2フェースの動きが第1フェースの動きの一部を取り消してしまう場合、互いに競合する動きが生じる結果になり得る。
これらの流れに沿って、VE競合解決マネージャ170は、未処理のオブジェクト変更154において競合するオブジェクト変更の存在を示す競合状態152を生成するように構成される。いくつかの実装形態では、VE競合解決マネージャ170は、同じタイムスタンプを有するすべての未処理のオブジェクト変更154の位置を特定し、これらの変更で指定されたメッシュ144に対する変更にルールセットを適用することによって、競合状態152を生成する。たとえば、1つのこのようなルールとして、同じ頂点146、エッジ148、および/またはフェース150が2つ以上の形に同時に変更される場合は必ず競合状態152を生成するという形をとってもよい。したがって、エッジを右および左に10cm同時に移動する上記例は、競合状態152を生成する。一般に、このような競合状態152は、上述したような競合条件を特定することに応答して、VE競合解決マネージャ170が生成する。
競合状態152の存在に応答して、VE競合解決マネージャ170は、さらに、この競合を解決するように構成される。これに関して、競合を解決することは、通常、競合状態152を生じさせると特定された未処理のオブジェクト変更154のうちの1つを選択することを意味する。いくつかの実装形態では、VE競合解決マネージャ170は、ルールセットを適用し、仮想環境内で適用する未処理のオブジェクト変更154を選択するように構成される。次に、VE通信マネージャ160は、選択されたオブジェクト変更をネットワーク150によってユーザデバイス114(1)〜114(N)に伝達するように構成される。
VRサーバコンピュータ120は、ネットワークインタフェース122と、1つ以上の処理装置124と、メモリ126とを備える。ネットワークインタフェース122は、ネットワーク150から受信した電気信号および/または光信号をVRサーバコンピュータ120が使用するための電子的形式に変換するための、たとえば、Ethernet(登録商標)アダプタ、Token Ringアダプタなどを含む。処理装置124の一式は、1つ以上の処理チップおよび/またはアセンブリを含む。メモリ126は、揮発性メモリ(たとえば、RAM)、および、1つ以上のROM、ディスクドライブ、ソリッドステートドライブなどの不揮発性メモリの両方を含む。処理装置124の一式とメモリ126とは、あわせて制御回路を形成する。制御回路は、本明細書に記載の様々な方法および機能を実行するように構成および配置されている。
ユーザデバイス120の構成要素(たとえば、モジュール、処理装置124)は、1つ以上の種類のハードウェア、ソフトウェア、ファームウェア、オペレーティングシステム、ランタイムライブラリなどを含み得る1つ以上のプラットフォーム(たとえば、1つ以上の同様または異なるプラットフォーム)に基づいて動作するように構成され得る。いくつかの実装形態では、VRサーバコンピュータ120の構成要素は、デバイスのクラスタ(たとえば、サーバファーム)内で動作するように構成され得る。このような実装形態では、VRサーバコンピュータ120の構成要素の機能および処理は、デバイスのクラスタのうちのいくつかのデバイスに分散され得る。
VRサーバコンピュータ120の構成要素は、属性を処理するように構成された任意の種類のハードウェアおよび/またはソフトウェアであり得、または、当該ハードウェアおよび/またはソフトウェアを含み得る。いくつかの実装形態では、図1のVRサーバコンピュータ120の構成要素に示される構成要素のうちの1つ以上の部分は、ハードウェアベースのモジュール(たとえば、デジタル信号プロセッサ(DSP:Digital Signal Processor)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、メモリ)、ファームウェアモジュール、および/またはソフトウェアベースのモジュール(たとえば、コンピュータコードのモジュール、コンピュータにおいて実行され得るコンピュータ読み取り可能な命令のセット)であり得、または当該モジュールを含み得る。たとえば、いくつかの実装形態では、VRサーバコンピュータ120の構成要素のうちの1つ以上の部分は、少なくとも1つのプロセッサ(図示せず)によって実行されるように構成されたソフトウェアモジュールであり得、または、当該ソフトウェアモジュールを含み得る。いくつかの実装形態では、構成要素の機能は、図1に示すモジュールおよび/または構成要素とは異なるモジュールおよび/または構成要素に含まれ得る。
図示しないが、いくつかの実装形態では、ユーザデバイス120の構成要素(または、その一部)は、たとえば、データセンター(たとえば、クラウドコンピューティング環境)、コンピュータシステム、1つ以上のサーバ/ホスト装置内などで動作するように構成され得る。いくつかの実装形態では、VRサーバコンピュータ120の構成要素(または、その一部)は、ネットワーク内で動作するように構成され得る。よって、VRサーバコンピュータ120の構成要素(または、その一部)は、1つ以上の装置および/または1つ以上のサーバ装置を含み得る様々な種類のネットワーク環境内で機能するように構成され得る。たとえば、ネットワークは、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)などであり得、または、当該LANおよびWANを含み得る。ネットワークは、無線ネットワークおよび/または有線ネットワーク、たとえば、ゲートウェイ装置、ブリッジ、スイッチなどを用いて実現されるネットワークであり得、または、当該無線ネットワークおよび/または有線ネットワークを含み得る。ネットワークは、1つ以上のセグメントを含み得、および/または、IP(Internet Protocol)および/またはプロプライエタリプロトコルなど、様々なプロトコルに基づいてセグメントの一部を有し得る。ネットワークは、少なくともインターネットの一部を含み得る。
いくつかの実施形態では、VRサーバコンピュータ120の構成要素のうちの1つ以上は、メモリに格納された命令を処理するように構成されたプロセッサであり得、または当該プロセッサを含み得る。たとえば、VE通信マネージャ160(および/または、その一部)とVE競合解決マネージャ170とは、1つ以上の機能を実現するための工程に関する命令を実行するように構成されたメモリとプロセッサとの組合せであり得る。
いくつかの実装形態では、メモリ126は、RAM、ディスクドライブメモリ、フラッシュメモリなど、任意の種類のメモリであり得る。いくつかの実装形態では、メモリ126は、VRサーバコンピュータ120の構成要素に関連付けられた2つ以上のメモリコンポーネント(たとえば、2つ以上のRAMコンポーネントまたはディスクドライブメモリ)として実現され得る。いくつかの実装形態では、メモリ126は、データベースメモリであり得る。いくつかの実装形態では、メモリ126は、非ローカルメモリであり得、または当該非ローカルメモリを含み得る。たとえば、メモリ126は、複数の装置(図示せず)によって共有されるメモリであり得、または、当該メモリを含み得る。いくつかの実装形態では、メモリ126は、ネットワーク内のサーバ装置(図示せず)に関連付けられ、VRサーバコンピュータ120の構成要素を提供するように構成され得る。図2に示すように、メモリ126は、VEデータ140、競合状態152、および未処理のオブジェクト変更154を含む様々なデータを格納するように構成される。
図2は、仮想環境内の競合を解決する例示的な方法200を示すフローチャートである。方法200は、図1に関して説明したソフトウェア構成によって実行されてもよい。ソフトウェア構成は、VRサーバコンピュータ120のメモリ126に存在し、処理装置124の一式によって実行される。
ステップ202において、VRサーバコンピュータ120は、第1ユーザ、たとえば、ユーザ112(1)から第1要求を受け付け、第2ユーザ、たとえば、ユーザ112(2)から第2要求を受け付ける。たとえば、第1要求は、仮想環境において任意の軸の右側にVRオブジェクトのエッジを第1ユーザが10cm移動させることに起因して生じてもよい。さらには、第2要求は、仮想オブジェクトの同じエッジを第2ユーザが反対方向に10cm移動させることに起因して生じてもよい。これらの要求は、仮想環境でのエッジの移動に応答して、それぞれのユーザデバイス114(1)および114(2)上のインタプリタによって生成される操作変換(operational transform)という形をとってもよい。
ステップ204において、要求を受け付けることに応答して、VRサーバコンピュータ120は、競合状態を生成し、各ユーザに自身のVRオブジェクトに対する操作(すなわち、第1操作および第2操作)の結果を提供する。これは、VRサーバコンピュータ120が第1要求と第2要求との間に競合を検出したと想定している。たとえば、各ユーザ112(1)および112(2)にVRオブジェクトの初期のそれぞれの操作を提供するに当たって、VRサーバコンピュータ120は、ユーザデバイス114(1)および114(2)の各々に、表示されている仮想環境内のVRオブジェクトに対するローカルな変更を表示するように構成されたソフトウェアおよび/またはハードウェアを提供する。したがって、短い間、コントローラ/ディスプレイ110(1)は、コントローラ/ディスプレイ110(2)がユーザ112(2)に示すVRオブジェクトの位置とは異なる位置をユーザ112(1)に示す。しかしながら、いくつかの実装形態では、VRサーバコンピュータ120は、競合が解決されるまで、オブジェクトの異なる位置をユーザデバイス114(1)および114(2)の各々に送信してもよい。
しかしながら、競合条件を最初に検出するために、VRサーバコンピュータ120は、要求をリアルタイムで調べてもよく、要求が、たとえば、未処理のオブジェクト変更154としてメモリに格納されているかどうかを調べてもよい。たとえば、後者の場合、VRサーバ120は、オブジェクトメッシュの同じ頂点、エッジ、および/またはフェースに対する変更について実質的に同じタイムスタンプを有する要求を調べてもよい。このような変更があった場合、VRサーバコンピュータ120は、競合状態152を生成してもよい。
ステップ206において、VRサーバコンピュータ120は、第1要求を許可して第2要求を拒否することによって競合を解決する。いくつかの実装形態では、VRサーバコンピュータ120は、ルールセットを用いてこのような競合を解決する。たとえば、あるルールセットは、右への動きが左への動きよりも好まれることを条件として指定してもよい。この場合、第1要求におけるエッジの右への移動がそのエッジの左への移動よりも好まれ、第1要求が好まれることになる。いくつかの実装形態では、VRサーバコンピュータ120は、すべての要求を、競合解決の際に許可されたどうかに関わらず、メモリ126に保持しておく。
ステップ208において、VRサーバコンピュータ120は、第1ユーザ112(1)によって操作されたVRオブジェクトを第2ユーザ112(2)に提供する。なお、VRサーバコンピュータ120は第1ユーザ112(1)に当該ユーザの操作をすでに提供しているため、その操作を再送する必要はない。いずれにせよ、この操作を第2ユーザに送ることの効果は、自然でまとまりのある仮想環境のビューを当該ユーザに提供することである。たとえば、従来の技術では、共同ワードプロセッサなど、2次元の非没入型環境において利用される種類の技術であったため、仮想環境を保守する制御サーバは、オブジェクトを削除、または、競合が解決されるまで仮想環境でのアクションを停止させていた。このような従来の技術は、仮想環境に没入しているユーザの脳が頼りにする連続性が欠如しているため、ユーザに悪影響をもたらす可能性があるであろう。対照的に、本明細書に記載の改良技術によって、このような連続性が可能になると同時に、競合に対するロバストな解決策を提供することができる。
いくつかの実装形態では、VRサーバコンピュータ120は、第2操作を行った後のオブジェクトの画像を第1ユーザに提供し、第1操作を行った後のオブジェクトの画像を第2ユーザに提供する。この場合、第1ユーザおよび第2ユーザの各々には、オブジェクトを第1状態および第2状態にした操作の画像が提供される。次に、VRサーバコンピュータ120は、第2状態のオブジェクトの画像は、余計であり、もはや必要ないので、削除したものを第1ユーザ112(1)および第2ユーザ112(2)の各々に提供してもよい。
図3Aおよび図3Bは、仮想環境において競合を生成する例を示す図である。図3Aに示すように、コントローラ302および352をそれぞれ持った2人のユーザ300および350がいる。ユーザ300は、ヘッドマウントディスプレイ(HMD)310を介して、仮想環境における自身のアバター304およびオブジェクト320を見る。ユーザ350は、HMD360を介して、仮想環境における自身のアバター370およびオブジェクト320を見る。
図3Bに示すように、ユーザ300は、自身のアバター304を介して、オブジェクト320のエッジ322を少しの距離、たとえば、仮想環境内のある長さ寸法で計測される10単位分だけ右に動かして位置324まで移動させる。同時に、ユーザ350は、ユーザのアバター370を介して、オブジェクト320のエッジ322を左に10単位分だけ動かして位置326まで移動させる。ユーザ300および350によるこれらの操作によって、当該ユーザそれぞれのユーザデバイス(図示せず)は、オブジェクトを変更するための要求を生成する。
図4は、図3に示す操作から生成された上述の要求など、仮想環境のオブジェクトを変更する要求の例示的な処理を示すフローチャートである。はじめに、VRサーバコンピュータ120は、VE通信マネージャ160を介してオブジェクト320に対する変更324および326の要求を受け付ける。次に、VRサーバコンピュータ120は、これらの要求を未処理のオブジェクト変更154としてメモリ126に格納する。
いくつかの実装形態では、未処理のオブジェクト変更154は、操作変換で表現される。操作変換(OT:Operational Transformation)とは、最新の共同型ソフトウェアシステムにおいて共同機能の範囲をサポートするための技術である。OTは、元々、プレーンテキスト文書を共同編集する際の整合性の維持および同時制御のために発明されたが、オブジェクトを含んだ同じ仮想環境を共有する異なるユーザによるそれらのオブジェクトの操作を表すために、本明細書に記載の改良技術の一部としてOTを使用できることが分かった。
図4では、操作は、未処理のオブジェクト変更154としてメモリに格納されている例示的なOT410として示されている。この例では、第1のOTは、動作「Move(移動)」を、機能が作用するある要素(図3に示すエッジ322)の機能として、ならびに、この作用の大きさおよび方向(ここでは、右に10単位を示す)として表現する。また、第1のOTは、第1要求が時間T1に受け付けられたことも表現する。第2のOTは、エッジ322が左へ10単位分だけ移動すること、およびこの要求が時間T2に受信されたことを表現する。
未処理のオブジェクト変更154を表すOTの一貫性のある言語を用いて、VRサーバコンピュータ120は、未処理のオブジェクト変更154の間に競合があるかどうかを判断する。この場合、両方のOT410が、同じ要素に対して異なる方向および異なる大きさの同じ動作を行う。一般的に言えば、時間T2とT1との差がある閾値よりも少ない場合、たとえば、0.1秒であった場合(このような閾値は、これよりも多かったり少なかったりするが)、VRサーバコンピュータ120は、競合状態152を生成する。一例では、競合条件は、複数の異なるユーザが、ある閾値間隔内のそれぞれの時間に同じオブジェクトに対して変更を行おうと試みる場合に、または、図1に関して上述した状態で成立する。
競合状態152がない場合、VRサーバコンピュータ120は、未処理のオブジェクト変更154に対して集約動作を任意のタイミングで行う。たとえば、2つの競合しない変更が実質的に同時に要求された場合、VRサーバコンピュータ120は、これら2つの変更の合成を行う。ほとんどの場合、合成の順序は重要ではない。しかしながら、順序が重要である場合、たとえば、異なる軸を中心とした3次元での回転については、VRサーバコンピュータ120は、競合状態152を生成して、VE競合解決マネージャ170を呼び出し得る。
競合状態152がある場合、VRサーバコンピュータ120は、VE競合解決マネージャ170を呼び出す。VE競合解決マネージャ170は、未処理のオブジェクト変更154のうち、競合状態152にある1つの未処理のオブジェクト変更154を選択することによって競合を解決するように構成される。本明細書に記載されるように、いくつかの実装形態では、VE競合解決マネージャ170は、ルールセット420を参照してこの選択を行う。
ルールセット420は、競合状態のいずれの未処理のオブジェクト変更154を仮想環境における変更として選ぶかを選択するためのルールセットを提供するように構成される。ルールセット420は、未処理のオブジェクト変更154を表すために使用されるのと同じOT言語410で表されてもよい。たとえば、1つのこのようなルールは、「Move(Edge,+)>Move(Edge,−)」と表されてもよく、右への移動が左への移動よりも好まれることを意味する。このようなルールは、第1要求を第2要求よりも好む。
したがって、競合状態では、VRサーバコンピュータ120は、競合状態152にある未処理のオブジェクト変更154のうちの1つを選択する。このように、VRサーバコンピュータ120は、すべてのユーザに一貫性のある仮想環境を実現する。
いずれにしても、競合があろうがなかろうが、VE通信マネージャは、オブジェクトに対するいかなる最終的変更もユーザデバイス114(1)〜114(N)の各々に伝達する。競合があり、1つの変更しか行われなかった場合、要求が許可されなかったユーザは、たとえば、テキストメッセージ、視覚的プロンプト(たとえば、点滅)、および音声メッセージを介して変更を自分に伝達させる。上記例では、ユーザ112(1)が既に変更を表示させているので、ユーザ112(2)のみが、オブジェクト320に対する変更を自分に伝達させる必要がある。
図5Aおよび図5Bは、図3Aおよび図3Bと同様であるが、VRディスプレイ360が変更326ではなく第1の変更324の受け付け結果を表示している点で異なる。図5Aにおいて、各ユーザ300および350は、それぞれの変更をユーザ自身のディスプレイ310および360で目にする。図5Bにおいて、変更326が見えなくなり、変更324と同一の新しい変更524が表示される。ユーザ350は、326でマークされた位置にあったオブジェクトが524でマークされた位置に移動していることに気づくだろう。この動きは、たとえば、中間状態も含むほとんどの場合、なめらかであり、変更がユーザ350にとって不快にならないよう、連続的である。一例では、オブジェクト320の位置326の526への変更は、1つ以上の中間状態で描画され、中間状態の描画は、ユーザ350に表示されるが、ユーザ300には表示されない。そのように、ユーザ350は、仮想オブジェクト320がアニメーション表示されて、その後解決状態になる様子を目にする。
図6は、本明細書に記載の技術とともに利用され得る、汎用コンピュータデバイス600および汎用モバイルコンピュータデバイス650の例を示す図である。
図6に示すように、コンピューティングデバイス600は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、およびその他適切なコンピュータなど、様々な形態のデジタルコンピュータを表すよう意図される。コンピューティングデバイス650は、携帯情報端末、携帯電話、スマートフォン、およびその他同様のコンピューティングデバイスなど、様々な形態のモバイル機器を表すよう意図される。本明細書に示す構成要素、それらの接続および関係、ならびにそれらの機能は、例示に過ぎず、本明細書に記載および/またはクレームされた発明の実装形態を限定するものではない。
コンピューティングデバイス600は、プロセッサ602と、メモリ604と、記憶装置606と、メモリ604および高速拡張ポート610に接続された高速インタフェース608と、低速バス614および記憶装置606に接続された低速インタフェース612とを備える。構成要素602、604、606、608、610、および612の各々は、様々なバスを用いて互いに接続されており、共通のマザーボード上に実装されてもよく、またはその他の方法で適宜実装されてもよい。プロセッサ602は、コンピューティングデバイス600内で実行するための命令を処理することができ、命令は、高速インタフェース608に連結されたディスプレイ616など、外付けの入出力装置上のGUIのためのグラフィック情報を表示するためのメモリ604に格納された命令または記憶装置606上に格納された命令を含む。その他の実装形態では、複数のプロセッサおよび/または複数のバスが複数のメモリおよび複数種類のメモリとともに適宜利用されてもよい。また、(たとえば、サーババンク、ブレードサーバ群、または多重プロセッサシステムなどとしての)必要な動作の一部を各々が提供する複数のコンピューティングデバイス600が接続されてもよい。
メモリ604は、コンピューティングデバイス600内の情報を格納する。一実装形態では、メモリ604は、1つまたは複数の揮発性記憶装置である。別の実装形態では、メモリ604は、1つまたは複数の不揮発性記憶装置である。また、メモリ604は、磁気ディスクまたは光ディスクなど、別の形態のコンピュータ読み取り可能な媒体であってもよい。
記憶装置606は、コンピューティングデバイス600用の大容量ストレージを提供することができる。一実装形態では、記憶装置606は、フロッピー(登録商標)ディスク装置、ハードディスク装置、光ディスク装置、またはテープ装置、フラッシュメモリもしくは他の同様の固体メモリ装置、または、ストレージエリアネットワークもしくはその他の構成に含まれる装置を含む装置のアレイなど、コンピュータ読み取り可能な媒体であってもよく、または、当該コンピュータ読み取り可能な媒体を含んでもよい。情報担体にコンピュータプログラムプロダクトが有形に含まれ得る。また、このコンピュータプログラムプロダクトは、命令を含んでもよく、当該命令は、実行されると、上述した方法など、1つ以上の方法を実行する。情報担体は、メモリ604、記憶装置606、または、プロセッサ602上のメモリなど、コンピュータ読み取り可能な媒体または機械読み取り可能な媒体である。
高速コントローラ608は、コンピューティングデバイス500のための多くの帯域幅を必要とする動作を管理し、低速コントローラ612は、より低い帯域幅の多くを必要とする動作を管理する。このような機能の割振りは、例示に過ぎない。一実装形態では、高速コントローラ608は、(たとえば、グラフィックスプロセッサまたはアクセラレータを通じて)メモリ604、ディスプレイ616に連結され、高速拡張ポート610に接続される。高速拡張ポート610は、様々な拡張カード(図示せず)を受け付けてもよい。この実装形態では、低速コントローラ612は、記憶装置506および低速拡張ポート614に連結される。様々な通信ポート(たとえば、USB、Bluetooth、Ethernet、無線Ethernet)を含み得る低速拡張ポートは、キーボード、ポインティングデバイス、スキャナなどの1つ以上の入出力装置、または、スイッチもしくはルータなどのネットワーク装置に、たとえば、ネットワークアダプタを通じて連結されてもよい。
コンピューティングデバイス600は、図示したような複数の異なる形態で実現されてもよい。たとえば、標準的なサーバ620として、または多くの場合、このようなサーバの群で実現されてもよい。または、ラックサーバシステム624の一部として実現されてもよい。これに加えて、ラップトップコンピュータ622など、パーソナルコンピュータで実現されてもよい。これに代えて、コンピューティングデバイス600の構成要素は、デバイス650など、モバイル機器(図示せず)に含まれるその他の構成要素と組み合わされてもよい。このようなデバイスの各々は、コンピューティングデバイス600、650のうちの1つ以上を含んでよく、互いに通信を行う複数のコンピューティングデバイス600、650によってシステム全体が構成されてもよい。
コンピューティングデバイス650は、特に、プロセッサ652と、メモリ664と、ディスプレイ654などの入出力装置と、通信インタフェース666と、送受信装置668とを備える。デバイス650には、追加ストレージを提供するためのマイクロドライブまたはその他の装置など、記憶装置が提供されてもよい。構成要素650、652、664、654、666、および668の各々は、様々なバスを用いて互いに接続されており、当該構成要素のうちのいくつかは、共通のマザーボード上に実装されてもよく、またはその他の方法で適宜実装されてもよい。
プロセッサ652は、メモリ664に格納された命令を含む命令をコンピューティングデバイス650内で実行できる。プロセッサは、別個の複数のアナログプロセッサおよびデジタルプロセッサを含むチップのチップセットとして実現されてもよい。プロセッサによって、たとえば、ユーザインタフェースの制御、デバイス650によって実行されるアプリケーション、およびデバイス650による無線通信など、デバイス650のその他の構成要素間の協調が可能になってもよい。
プロセッサ652は、ディスプレイ654に連結された制御インタフェース658および表示インタフェース656を通じてユーザと通信してもよい。ディスプレイ654は、たとえば、TFT LCD(Thin−Film−Transistor Liquid Crystal Display)もしくはOLED(Organic Light Emitting Diode)ディスプレイ、またはその他の適切なディスプレイ技術であってもよい。表示インタフェース656は、グラフィック情報およびその他の情報をユーザに提示するためのディスプレイ654を駆動するための適切な回路を備えてもよい。制御インタフェース658は、ユーザからコマンドを受信し、プロセッサ652に実行を依頼するために変換してもよい。これに加えて、デバイス650のその他のデバイスとの近距離通信が可能になるよう、プロセッサ652と通信する外部インタフェース662が提供されてもよい。外部インタフェース662によって、たとえば、いくつかの実装形態では有線通信、その他の実装形態では無線通信が可能になってもよく、また、複数のインタフェースが利用されてもよい。
メモリ664は、コンピューティングデバイス650内の情報を格納する。メモリ664は、1つまたは複数のコンピュータ読み取り可能な媒体、1つまたは複数の揮発性記憶装置、または、1つまたは複数の不揮発性記憶装置、のうちの1つ以上として実現され得る。また、拡張メモリ674は、拡張インタフェース672を通してデバイス650に提供および接続されてもよい。拡張インタフェース672は、たとえば、SIMM(Single In Line Memory Module)カードインタフェースを含んでもよい。このような拡張メモリ674は、デバイス650のための追加の記憶空間を提供してもよく、または、デバイス650のためのアプリケーションまたはその他の情報も格納してもよい。具体的には、拡張メモリ674は、上述した工程を実行または補助するための命令を含んでもよく、セキュアな情報も含んでもよい。よって、たとえば、拡張メモリ674は、デバイス650のためのセキュリティモジュールとして提供されてもよく、デバイス650のセキュアな使用を可能にする命令がプログラムされていてもよい。これに加えて、セキュアなアプリケーションは、ハッキングできない方法でSIMMカード上にID情報を置くなど、追加情報とともにSIMMカードを介して提供されてもよい。
メモリは、たとえば、後述するフラッシュメモリおよび/またはNVRAMメモリを含んでもよい。一実装形態では、情報担体にコンピュータプログラムプロダクトが有形に含まれる。このコンピュータプログラムプロダクトは、命令を含み、当該命令は、実行されると、上述した方法など、1つ以上の方法を実行する。情報担体は、メモリ664、拡張メモリ674、またはプロセッサ652上のメモリなど、コンピュータ読み取り可能な媒体または機械読み取り可能な媒体であり、たとえば、送受信装置668または外部インタフェース662を介して受信されてもよい。
デバイス650は、通信インタフェース666を通して無線通信を行ってもよい。通信インタフェース666は、必要であれば、デジタル信号処理回路を備えてもよい。通信インタフェース666によって、とくに、GSM(登録商標)音声通話、SMS、EMS、もしくはMMSメッセージング、CDMA、TDMA、PDC、WCDMA(登録商標)、CDMA2000、またはGPRSなど、様々なモードまたはプロトコル下の通信が可能になってもよい。このような通信は、たとえば、無線周波数送受信装置668を通して生じてもよい。これに加えて、Bluetooth、WiFi、またはその他のこのような送受信装置(図示せず)を用いるなどして、近距離通信が生じてもよい。これに加えて、GPS(Global Positioning System)受信モジュール670は、追加のナビゲーション関係または位置関係の無線データをデバイス650に提供してもよい。追加のナビゲーション関係または位置関係の無線データは、デバイス650上で実行するアプリケーションによって適宜利用され得てもよい。
また、デバイス650は、オーディオコーデック660を用いて、音声による通信を行ってもよい。オーディオコーデック660は、ユーザからの音声情報を受信し、使用可能なデジタル情報に変換してもよい。同様に、オーディオコーデック660は、たとえば、デバイス650のハンドセットにおいて、スピーカを通してなど、ユーザのために音を生成してもよい。このような音は、音声電話通話からの音声を含んでもよく、録音音声(たとえば、音声メッセージ、音楽ファイルなど)を含んでもよく、デバイス650上で動作するアプリケーションによって生成された音も含んでもよい。
コンピューティングデバイス650は、図示したような複数の異なる形態で実現されてもよい。たとえば、携帯電話680として実現されてもよい。また、スマートフォン682、携帯情報端末、または他の同様のモバイル機器の一部として実現されてもよい。
図7は、図3および図5に示すヘッドマウントディスプレイの例示的な実装形態を示す図である。図7では、HMD700を装着したユーザが、持ち運び可能な携帯電子機器702を把持している。携帯電子機器702は、たとえば、スマートフォン、コントローラ、ジョイスティック、または、HMD700が作り出した没入型仮想環境においてやり取りを行うためのHMD700とペアリングまたは通信を行うことができる別の持ち運び可能な携帯電子機器(複数可)であってもよい。携帯電子機器702は、たとえば、有線接続、または、たとえば、WiFiもしくはBluetooth接続などの無線接続を介してHMD700と動作可能に連結またはペアリングされてもよい。この携帯電子機器702およびHMD700のペアリングまたは動作可能な連結によって、携帯電子機器702とHMD700との間の通信、および携帯電子機器702とHMD700との間のデータ交換が可能になってもよい。これによって、HMD700が作り出した没入型仮想環境においてやり取りを行うためのHMD700と通信を行うコントローラとして携帯電子機器602が機能できるようになってもよい。すなわち、携帯電子機器702から発せられ、仮想のオブジェクトまたは特徴に選択のために向けられるビームまたは光線など、携帯電子機器702の操作、および/または携帯電子機器702のタッチ面上で受け付けられた入力、および/または携帯電子機器702の移動は、HMD700が作り出した没入型仮想環境における、対応する選択、移動、またはその他の種類のやり取りに変換されてもよい。たとえば、HMD700は、携帯電子機器702とともに、上述の仮想環境を作り出してもよく、携帯電子機器702を操作して、ユーザの尺度または見え方についての変更を、上述した仮想環境における仮想の容貌に生じさせてもよい。
図8Aおよび図8Bは、たとえば、図7においてユーザが装着しているHMD700など、例示的なHMDの斜視図であり、図8Cは、たとえば、図7に示す携帯電子機器702など、例示的な携帯電子機器を示す図である。
携帯電子機器802は、機器802の内蔵コンポーネントが収容される筐体803と、筐体803の外側にある、ユーザが利用可能なユーザインタフェース804とを備えてもよい。ユーザインタフェース804は、ユーザのタッチ入力を受け付けるように構成されたタッチ面806を備えてもよい。また、ユーザインタフェース804は、たとえば、実行ボタン、つまみ、ジョイスティックなど、ユーザによる操作のためのその他のコンポーネントを含んでもよい。いくつかの実装形態では、ユーザインタフェース804の少なくとも一部がタッチスクリーンとして構成されてもよく、ユーザインタフェース804の当該一部は、ユーザインタフェースの項目をユーザに表示するように、また、タッチ面806上のユーザからのタッチ入力を受け付けるように構成される。また、携帯電子機器802は、たとえば、ユーザインタフェース804において受け付けたユーザ入力に応答して、たとえば、ビームまたは光線などの光を筐体803のポートを通して選択的に発するように構成された光源808を備えてもよい。
HMD800は、フレーム820に連結された筐体810を備えてもよく、筐体810は、こちらもフレーム820に連結された、たとえばヘッドフォンに実装されたスピーカを含む、音声出力装置830を有する。図8Bでは、筐体810の前方部分810aが、筐体810に収容された構成要素のうちのいくつかが見えるよう、筐体810のベース部810bから離れるように回転する。ディスプレイ840は、筐体810の前方部分810aの内部に面した側に実装されてもよい。レンズ850は、筐体810内の、前方部分810aが筐体810のベース部810bに対して閉位置のときのディスプレイ840とユーザの目との間に実装されてもよい。いくつかの実装形態では、HMD800は、様々なセンサを含む検知システム860、ならびに、プロセッサ890およびHMD800の操作を容易にするための様々な制御システム装置を備える制御システム870を備えてもよい。
いくつかの実装形態では、HMD800は、静止画および動画を撮影するためのカメラ880を備えてもよい。カメラ880が撮影した画像は、実世界、または仮想環境に相対的な実環境におけるユーザおよび/または携帯電子機器802の物理的な位置を追跡するのに役立てるために利用されてもよく、および/または透過(pass through)モードでディスプレイ840上でユーザに表示されてもよく、ユーザは、HMD800を外さずに、または、HMD800の設定を変更して筐体810をユーザの視線から外すことをせずに、一時的に仮想環境を離れて実環境に戻ることができる。
いくつかの実装形態では、HMD800は、ユーザの視線を検出および追跡するための視線追跡装置865を備えてもよい。視線追跡装置865は、ユーザの視線の方向および動きを検出および追跡するために、たとえば瞳孔など、ユーザの目の特定の部分など、ユーザの目を撮影するための、たとえば、1つまたは複数のイメージセンサ865Aを備えてもよい。いくつかの実装形態では、HMD800は、検出された視線が、没入型仮想体験における対応するやり取りに変換されるユーザ入力として処理されるよう、構成されてもよい。
本明細書において説明したシステムおよび技術のさまざまな実装形態は、デジタル電子回路、集積回路、専用に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組み合せで実現することができる。これらのさまざまな実装形態は、データおよび命令を送受信するために連結された特定用途プロセッサまたは汎用プロセッサであり得る少なくとも1つのプログラム可能なプロセッサと、ストレージシステムと、少なくとも1つの入力装置と、少なくとも1つの出力装置とを備えるプログラム可能なシステム上で実行可能および/または解釈可能な1つ以上のコンピュータプログラムでの実装を含み得る。
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られる)は、プログラム可能なプロセッサ用の機械命令を含み、高レベルの手続き形言語および/もしくはオブジェクト指向プログラミング言語で、ならびに/またはアセンブリ言語/機械言語で実現できる。本明細書において使用するとき、用語「機械読み取り可能な媒体」および「コンピュータ読み取り可能な媒体」は、機械命令および/またはデータを、機械読み取り可能な信号として機械命令を受け付ける機械読み取り可能な媒体を含むプログラム可能なプロセッサに提供するために使用される任意のコンピュータプログラムプロダクト、装置、および/またはデバイス(たとえば、磁気ディスク、光学ディスク、メモリ、PLD(Programmable Logic Devices))を指す。用語「機械読み取り可能な信号」は、機械命令および/またはデータをプログラム可能なプロセッサに提供するために使用される任意の信号を指す。
ユーザとのやり取りを可能にするために、本明細書に記載のシステムおよび技術は、ユーザに情報を表示するための表示装置(たとえば、ブラウン管(CRT)または液晶ディスプレイ(LCD)モニタ)と、ユーザがコンピュータに入力を行えるキーボードおよびポインティングデバイス(たとえば、マウスまたはトラックボール)とを備えたコンピュータ上に実装され得る。その他の種類のデバイスを使ってユーザとのやり取りを可能にすることもでき、たとえば、ユーザに提供されるフィードバックは、任意の形式の感覚フィードバック(たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック)であり得、ユーザからの入力は、音響入力、音声入力、触覚入力など、任意の形式で受け付けられ得る。
本明細書に記載のシステムおよび技術は、(たとえば、データサーバとしての)バックエンド・コンポーネントを備えるコンピュータシステム、ミドルウェア・コンポーネント(たとえば、アプリケーションサーバ)を備えるコンピュータシステム、フロントエンド・コンポーネント(たとえば、本明細書に記載のシステムおよび技術の実装形態とユーザがやり取りできるグラフィカルユーザーインターフェースまたはウェブブラウザを有するクライアントコンピュータ)を備えるコンピュータシステム、または、このようなバックエンド・コンポーネント、ミドルウェア・コンポーネント、フロントエンド・コンポーネントの任意の組み合わせを備えるコンピュータシステムで実現され得る。システムの構成要素は、任意の形態または媒体のデジタルデータ通信(たとえば、通信ネットワーク)によって互いに接続され得る。通信ネットワークとして、ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、インターネットなどが挙げられる。
コンピュータシステムは、クライアントとサーバとを含み得る。クライアントおよびサーバは、一般に、互いから離れており、通常、通信ネットワークを通じてやり取りを行う。クライアントとサーバとの関係は、それぞれのコンピュータ上で動作し、クライアントとサーバとの関係を互いに有するコンピュータプログラムによって成り立つ。
いくつかの実施形態を説明したが、本明細書の趣旨および範囲から逸脱することなく、様々な変更がなされてもよいことが理解されるだろう。
一例では、VRサーバコンピュータ120などの電子機器において、オブジェクトは、複数の頂点、エッジ、およびフェースを含んだメッシュとしてVR環境において提供される。
別の例では、VRサーバコンピュータ120などの電子機器において、競合条件を特定するように構成される制御回路は、第1操作および第2操作が行われるオブジェクトのメッシュの共通の頂点、エッジ、またはフェースを特定するようにさらに構成される。
別の例では、VRサーバコンピュータ120などの電子機器において、競合を解決するように構成された制御回路は、(i)第1操作を第1の操作変換として表し、(ii)第2操作を第2の操作変換として表し、所定のルールを第1の操作変換および第2の操作変換に適用して第1操作の許可および第2操作の拒否を生じさせるようにさらに構成される。
別の例では、VRサーバコンピュータ120などの電子機器において、制御回路は、第1操作の二次効果を記録するようにさらに構成される。
ある要素が別の要素の上にある、別の要素に接続される、電気的に接続される、連結される、または電気的に連結されると称される場合、当該要素は、当該別の要素の上に直接あってもよく、接続または連結されてもよく、または、1つ以上の中間要素が存在してもよい、と理解されるだろう。対照的に、ある要素が別の要素の上に直接ある、別の要素に直接接続されるまたは直接連結されると称される場合、中間要素は存在しない。〜の上に直接ある、〜に直接接続される、または、〜に直接連結される、という用語は、詳細な説明を通して使用されていないかもしれないが、〜の上に直接ある、〜に直接接続される、または、〜に直接連結される状態で図示された要素は、そのように称され得る。本願の特許請求の範囲を補正し、明細書で説明または図に示した例示的な関係を記載してもよい。
本明細書に記載したように、上述の実装形態の特定の特徴が例示されたが、当業者であれば、多くの変形例、代替例、変更例、および均等物に想到するだろう。そのため、当然ながら、特許請求の範囲は、実装形態の範囲に含まれるこのような変形例および変更例のすべてを包含するものとする。これらは、ほんの一例として提示されたものであり、限定ではなく、形式および詳細についてさまざまな変更がなされ得ることを理解されたい。本明細書に記載の装置および/または方法のいずれの部分も、相互に排他的な組み合わせを除く、あらゆる組み合わせに組み合わされ得る。本明細書に記載の実装形態は、記載された異なる実装形態の機能、構成要素、および/または特徴のさまざまな組み合わせおよび/または部分的な組み合わせを含み得る。
これに加えて、図示した論理フローは、所望の結果を実現するために、順次または図示した特定の順序である必要はない。これに加えて、記載のフローにその他のステップが提供されてもよく、ステップが排除されてもよく、記載のシステムにその他の構成要素が追加または削除されてもよい。したがって、その他の実施形態は、添付の特許請求の範囲に含まれる。

Claims (15)

  1. VR環境を作り出すように構成された仮想現実(VR)サーバの処理回路が、前記VR環境におけるオブジェクトを現在の状態から第1状態にする第1操作を行う第1要求を第1ユーザから受け付け、前記VR環境における前記オブジェクトを前記現在の状態から第2状態にする第2操作を行う第2要求を第2ユーザから受け付けるステップと、
    前記第1要求と前記第2要求との競合を示す競合状態を生成するステップと、
    前記第1操作を行った後の前記オブジェクトの画像を前記第1ユーザに提供するステップと、
    前記第2操作を行った後の前記オブジェクトの画像を前記第2ユーザに提供するステップと、
    前記競合を解決して前記第1要求の許可および前記第2要求の拒否を示す解決した状態を生成するステップと、
    前記解決した状態を生成することに応答して、前記オブジェクトを前記第1状態にする操作の画像を前記第2ユーザに提供するステップとを含む、方法。
  2. 前記オブジェクトを前記第1状態にする操作の画像を前記第2ユーザに提供するステップは、前記オブジェクトを前記第2状態から中間状態のセットを経て前記第1状態にする操作を生成するステップを含む、請求項1に記載の方法。
  3. 前記第1要求および前記第2要求を受け付けることに応答して、前記第2操作を行った後の前記オブジェクトの画像を前記第1ユーザに提供し、前記第1操作を行った後の前記オブジェクトの画像を前記第2ユーザに提供するステップをさらに含み、前記第1ユーザおよび第2ユーザには、前記オブジェクトを前記第1状態にする前記操作の画像および前記第2状態にする前記操作の画像がそれぞれ提供され、さらに、
    前記解決した状態を生成することに応答して、前記第2状態の前記オブジェクトの削除を前記第1ユーザに提供するステップを含み、
    前記オブジェクトを前記第1状態にする操作の画像を前記第2ユーザに提供するステップは、前記第2状態の前記オブジェクトの前記削除を前記第2ユーザに提供するステップを含む、請求項1に記載の方法。
  4. 前記オブジェクトは、複数の頂点、エッジ、およびフェースを含むメッシュとして前記VR環境において提供され、
    前記競合状態を生成するステップは、前記第1操作および前記第2操作が行われる前記オブジェクトの前記メッシュの共通の頂点、エッジ、またはフェースを特定するステップを含む、請求項1に記載の方法。
  5. 前記競合を解決するステップは、
    (i)前記第1操作を第1の操作変換として表し、(ii)前記第2操作を第2の操作変換として表すステップと、
    前記第1の操作変換および前記第2の操作変換に所定のルールを適用して、前記第1操作の前記許可および前記第2操作の前記拒否を生成するステップとを含む、請求項1に記載の方法。
  6. 前記第1操作の二次効果を記録するステップをさらに含む、請求項1に記載の方法。
  7. 非推移的な記憶媒体を含むコンピュータプログラムプロダクトであって、前記コンピュータプログラムプロダクトは、コードを含み、前記コードは、第1ユーザおよび第2ユーザが没入するVR環境を作り出すように構成された仮想現実(VR:Virtual Reality)サーバの処理回路によって実行されると、前記処理回路に方法を実行させ、前記方法は、
    前記VR環境におけるオブジェクトを現在の状態から第1状態にする第1操作を行う第1要求を第1ユーザから受け付け、前記VR環境における前記オブジェクトを前記現在の状態から第2状態にする第2操作を行う第2要求を第2ユーザから受け付けるステップと、
    前記第1要求と前記第2要求との競合を示す競合状態を生成するステップと、
    前記第1操作を行った後の前記オブジェクトの画像を前記第1ユーザに提供するステップと、
    前記第2操作を行った後の前記オブジェクトの画像を前記第2ユーザに提供するステップと、
    前記競合を解決して前記第1要求の許可および前記第2要求の拒否を示す解決した状態を生成するステップと、
    前記解決した状態を生成することに応答して、前記オブジェクトを前記第1状態にする操作の画像を前記第2ユーザに提供するステップとを含む、コンピュータプログラムプロダクト。
  8. 前記オブジェクトを前記第1状態にする操作の画像を前記第2ユーザに提供するステップは、前記オブジェクトを前記第2状態から中間状態のセットを経て前記第1状態にする操作を生成するステップを含む、請求項7に記載のコンピュータプログラムプロダクト。
  9. 前記方法は、さらに、
    前記第1要求および前記第2要求を受け付けることに応答して、前記第2操作を行った後の前記オブジェクトの画像を前記第1ユーザに提供し、前記第1操作を行った後の前記オブジェクトの画像を前記第2ユーザに提供するステップを含み、前記第1ユーザおよび第2ユーザには、前記オブジェクトを前記第1状態にする前記操作の画像および前記第2状態にする前記操作の画像がそれぞれ提供され、さらに、
    前記解決した状態を生成することに応答して、前記第2状態の前記オブジェクトの削除を前記第1ユーザに提供するステップを含み、
    前記オブジェクトを前記第1状態にする操作の画像を前記第2ユーザに提供するステップは、前記第2状態の前記オブジェクトの前記削除を前記第2ユーザに提供するステップを含む、請求項7に記載のコンピュータプログラムプロダクト。
  10. 前記オブジェクトは、複数の頂点、エッジ、およびフェースを含むメッシュとして前記VR環境において提供され、
    前記競合状態を生成するステップは、前記第1操作および前記第2操作が行われる前記オブジェクトの前記メッシュの共通の頂点、エッジ、またはフェースを特定するステップを含む、請求項7に記載のコンピュータプログラムプロダクト。
  11. 前記競合を解決するステップは、
    (i)前記第1操作を第1の操作変換として表し、(ii)前記第2操作を第2の操作変換として表すステップと、
    前記第1の操作変換および前記第2の操作変換に所定のルールを適用して、前記第1操作の前記許可および前記第2操作の前記拒否を生成するステップとを含む、請求項7に記載のコンピュータプログラムプロダクト。
  12. 前記方法は、前記第1操作の二次効果を記録するステップをさらに含む、請求項7に記載のコンピュータプログラムプロダクト。
  13. 第1ユーザおよび第2ユーザが没入するVR環境を作り出すように構成された電子機器であって、
    メモリと、
    前記メモリに連結された制御回路とを備え、前記制御回路は、
    前記VR環境におけるオブジェクトを現在の状態から第1状態にする第1操作を行う第1要求を第1ユーザから受け付け、前記VR環境における前記オブジェクトを前記現在の状態から第2状態にする第2操作を行う第2要求を第2ユーザから受け付け、
    前記第1要求と前記第2要求との競合を示す競合状態を生成し、
    前記第1操作を行った後の前記オブジェクトの画像を前記第1ユーザに提供し、
    前記第2操作を行った後の前記オブジェクトの画像を前記第2ユーザに提供し、
    前記競合を解決して、前記第1要求の許可および前記第2要求の拒否を示す解決した状態を生成し、
    前記解決した状態を生成することに応答して、前記オブジェクトを前記第1状態にする操作の画像を前記第2ユーザに提供するように構成される、電子機器。
  14. 前記オブジェクトを前記第1状態にする操作の画像を前記第2ユーザに提供するように構成された前記制御回路は、前記オブジェクトを前記第2状態から中間状態のセットを経て前記第1状態にする操作を生成するようにさらに構成される、請求項13に記載の電子機器。
  15. 前記制御回路は、さらに、
    前記第1要求および前記第2要求を受け付けることに応答して、前記第2操作を行った後の前記オブジェクトの画像を前記第1ユーザに提供し、前記第1操作を行った後の前記オブジェクトの画像を前記第2ユーザに提供し、前記第1ユーザおよび第2ユーザには、前記オブジェクトを前記第1状態にする前記操作の画像および前記第2状態にする前記操作の画像をそれぞれ提供し、
    前記解決した状態を生成することに応答して、前記第2状態の前記オブジェクトの削除を前記第1ユーザに提供するように構成され、
    前記オブジェクトを前記第1状態にする操作の画像を前記第2ユーザに提供するように構成された前記制御回路は、前記第2状態の前記オブジェクトの前記削除を前記第2ユーザに提供するようにさらに構成される、請求項13に記載の電子機器。
JP2019529565A 2016-12-02 2017-12-01 仮想現実におけるオブジェクトの共同操作 Active JP6782846B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/367,953 2016-12-02
US15/367,953 US20180158243A1 (en) 2016-12-02 2016-12-02 Collaborative manipulation of objects in virtual reality
PCT/US2017/064148 WO2018102649A1 (en) 2016-12-02 2017-12-01 Collaborative manipulation of objects in virtual reality

Publications (2)

Publication Number Publication Date
JP2020501261A true JP2020501261A (ja) 2020-01-16
JP6782846B2 JP6782846B2 (ja) 2020-11-11

Family

ID=60997526

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019529565A Active JP6782846B2 (ja) 2016-12-02 2017-12-01 仮想現実におけるオブジェクトの共同操作

Country Status (6)

Country Link
US (1) US20180158243A1 (ja)
EP (1) EP3549003B1 (ja)
JP (1) JP6782846B2 (ja)
KR (1) KR102282297B1 (ja)
CN (1) CN109923509B (ja)
WO (1) WO2018102649A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10871934B2 (en) * 2017-05-04 2020-12-22 Microsoft Technology Licensing, Llc Virtual content displayed with shared anchor
US20180359448A1 (en) * 2017-06-07 2018-12-13 Digital Myths Studio, Inc. Multiparty collaborative interaction in a virtual reality environment
JP6848834B2 (ja) * 2017-11-29 2021-03-24 トヨタ自動車株式会社 タンクの搭載構造及び車両
US20190385372A1 (en) * 2018-06-15 2019-12-19 Microsoft Technology Licensing, Llc Positioning a virtual reality passthrough region at a known distance
US11137874B2 (en) 2019-02-22 2021-10-05 Microsoft Technology Licensing, Llc Ergonomic mixed reality information delivery system for dynamic workflows
WO2020240512A1 (en) * 2019-05-31 2020-12-03 Chain Technology Development Co., Ltd. Collaborative immersive cave network
US11790908B2 (en) * 2021-02-09 2023-10-17 International Business Machines Corporation Extended reality based voice command device management
US20240069643A1 (en) * 2022-08-31 2024-02-29 Youjean Cho Physical gesture interaction with objects based on intuitive design
US20240069642A1 (en) * 2022-08-31 2024-02-29 Youjean Cho Scissor hand gesture for a collaborative object

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110078590A1 (en) * 2009-09-25 2011-03-31 Nokia Corporation Method and apparatus for collaborative graphical creation
JP2011065644A (ja) * 2009-09-15 2011-03-31 Palo Alto Research Center Inc 仮想環境においてオブジェクトと対話するためのシステム
JP2011215945A (ja) * 2010-03-31 2011-10-27 Namco Bandai Games Inc プログラム、情報記憶媒体、及び、画像生成装置
JP2016085642A (ja) * 2014-10-27 2016-05-19 富士通株式会社 操作支援方法、操作支援プログラムおよび操作支援装置
US20160323328A1 (en) * 2015-04-30 2016-11-03 AT&T Intellect Property I, LP Apparatus and method for managing events in a computer supported collaborative work environment

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9153074B2 (en) * 2011-07-18 2015-10-06 Dylan T X Zhou Wearable augmented reality eyeglass communication device including mobile phone and mobile computing via virtual touch screen gesture control and neuron command
US8682844B2 (en) * 2005-01-28 2014-03-25 Sap Ag Method and apparatus for collision resolution in an asynchronous database system
US20100302233A1 (en) * 2009-05-26 2010-12-02 Holland David Ames Virtual Diving System and Method
US9560130B2 (en) * 2010-09-30 2017-01-31 Microsoft Technology Licensing, Llc Presenting availability statuses of synchronized objects
US8953890B2 (en) * 2011-12-13 2015-02-10 Sap Se Usage of visual reader as an input provider in portals
US9563265B2 (en) * 2012-01-12 2017-02-07 Qualcomm Incorporated Augmented reality with sound and geometric analysis
US20150222664A1 (en) * 2012-03-28 2015-08-06 Google Inc. Conflict resolution in extension induced modifications to web requests and web page content
US9286597B2 (en) * 2012-03-30 2016-03-15 Microsoft Technology Licensing, Llc Tracking co-authoring conflicts using document comments
US9639984B2 (en) * 2013-06-03 2017-05-02 Daqri, Llc Data manipulation based on real world object manipulation
US9317112B2 (en) * 2013-11-19 2016-04-19 Microsoft Technology Licensing, Llc Motion control of a virtual environment
WO2015102338A1 (ko) * 2014-01-06 2015-07-09 엘지전자 주식회사 이동 단말기 및 그 제어 방법
JP6715826B2 (ja) * 2014-08-25 2020-07-01 ザ エスエスシージー グループ,エルエルシー コンテンツ管理およびプレゼンテーションシステムならびに方法
CN105808079B (zh) * 2014-12-29 2020-02-14 鸿合科技股份有限公司 一种利用手势快速对齐对象的方法和装置
US20160328127A1 (en) * 2015-05-05 2016-11-10 Facebook, Inc. Methods and Systems for Viewing Embedded Videos
US20170359407A1 (en) * 2016-06-08 2017-12-14 Maximum Play, Inc. Methods and systems for processing commands in a distributed computing system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011065644A (ja) * 2009-09-15 2011-03-31 Palo Alto Research Center Inc 仮想環境においてオブジェクトと対話するためのシステム
US20110078590A1 (en) * 2009-09-25 2011-03-31 Nokia Corporation Method and apparatus for collaborative graphical creation
JP2011215945A (ja) * 2010-03-31 2011-10-27 Namco Bandai Games Inc プログラム、情報記憶媒体、及び、画像生成装置
JP2016085642A (ja) * 2014-10-27 2016-05-19 富士通株式会社 操作支援方法、操作支援プログラムおよび操作支援装置
US20160323328A1 (en) * 2015-04-30 2016-11-03 AT&T Intellect Property I, LP Apparatus and method for managing events in a computer supported collaborative work environment

Also Published As

Publication number Publication date
EP3549003A1 (en) 2019-10-09
KR102282297B1 (ko) 2021-07-28
CN109923509A (zh) 2019-06-21
US20180158243A1 (en) 2018-06-07
KR20190056412A (ko) 2019-05-24
JP6782846B2 (ja) 2020-11-11
CN109923509B (zh) 2022-08-09
WO2018102649A1 (en) 2018-06-07
EP3549003B1 (en) 2020-05-13

Similar Documents

Publication Publication Date Title
JP2020501261A (ja) 仮想現実におけるオブジェクトの共同操作
US11151792B2 (en) System and method for creating persistent mappings in augmented reality
CN107850779B (zh) 虚拟位置定位锚
CN108697935B (zh) 虚拟环境中的化身
CN107077548B (zh) 虚拟可穿戴物
KR102233807B1 (ko) 가상 현실 시스템을 위한 입력 제어기 안정화 기법
KR20190103322A (ko) 표면 인식 렌즈
KR20190076034A (ko) 증강 및/또는 가상 현실 환경에서의 제스처들로 가상 표기면들 생성을 위한 시스템 및 방법
KR20170130602A (ko) 증강 현실 및/또는 가상 현실에서의 터치 스크린 호버 검출
US20170329503A1 (en) Editing animations using a virtual reality controller
JP2018530797A (ja) 仮想現実においてハンドヘルド電子装置を追跡するためのシステム
JP6868688B2 (ja) バーチャル環境におけるジェスチャに基づくアクセス制御
CN103105926A (zh) 多传感器姿势识别
US20200342669A1 (en) Managing content in augmented reality
US10636199B2 (en) Displaying and interacting with scanned environment geometry in virtual reality
US11426657B2 (en) Method and system for retargeting a human component of a camera motion
JP2024520999A (ja) 外部の視線検出による光漏れの低減
JP2020509439A (ja) 仮想現実における保持オブジェクトの安定化
US11816759B1 (en) Split applications in a multi-user communication session
US20220270331A1 (en) XR Preferred Movement Along Planes
CN113614793A (zh) 创建增强现实中的持续的映射的系统和方法
KR20230070308A (ko) 웨어러블 장치를 이용한 제어가능한 장치의 위치 식별

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190719

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190719

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200819

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200923

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201020

R150 Certificate of patent or registration of utility model

Ref document number: 6782846

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250