IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ヒューマン モード、エルエルシーの特許一覧

特表2022-543556インタラクティブな仮想現実環境のためのオーサリングシステム
<>
  • 特表-インタラクティブな仮想現実環境のためのオーサリングシステム 図1
  • 特表-インタラクティブな仮想現実環境のためのオーサリングシステム 図2
  • 特表-インタラクティブな仮想現実環境のためのオーサリングシステム 図3
  • 特表-インタラクティブな仮想現実環境のためのオーサリングシステム 図4
  • 特表-インタラクティブな仮想現実環境のためのオーサリングシステム 図5
  • 特表-インタラクティブな仮想現実環境のためのオーサリングシステム 図6
  • 特表-インタラクティブな仮想現実環境のためのオーサリングシステム 図7
  • 特表-インタラクティブな仮想現実環境のためのオーサリングシステム 図8
  • 特表-インタラクティブな仮想現実環境のためのオーサリングシステム 図9
  • 特表-インタラクティブな仮想現実環境のためのオーサリングシステム 図10
  • 特表-インタラクティブな仮想現実環境のためのオーサリングシステム 図11
  • 特表-インタラクティブな仮想現実環境のためのオーサリングシステム 図12
  • 特表-インタラクティブな仮想現実環境のためのオーサリングシステム 図13
  • 特表-インタラクティブな仮想現実環境のためのオーサリングシステム 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-10-13
(54)【発明の名称】インタラクティブな仮想現実環境のためのオーサリングシステム
(51)【国際特許分類】
   G06F 3/0482 20130101AFI20221005BHJP
   G06F 3/04815 20220101ALI20221005BHJP
   G06F 3/01 20060101ALI20221005BHJP
   G09G 5/00 20060101ALI20221005BHJP
   G09G 5/377 20060101ALI20221005BHJP
【FI】
G06F3/0482
G06F3/04815
G06F3/01 510
G09G5/00 510A
G09G5/00 555G
G09G5/00 530M
G09G5/36 520L
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022505558
(86)(22)【出願日】2020-08-07
(85)【翻訳文提出日】2022-03-28
(86)【国際出願番号】 US2020045344
(87)【国際公開番号】W WO2021026422
(87)【国際公開日】2021-02-11
(31)【優先権主張番号】62/884,020
(32)【優先日】2019-08-07
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/549,609
(32)【優先日】2019-08-23
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】522035454
【氏名又は名称】ヒューマン モード、エルエルシー
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】ケルバー、ウィリアム ザビエル ザ・サード
(72)【発明者】
【氏名】ソ、ヨーン ジョーン
(72)【発明者】
【氏名】チョイ、ジェ リム
【テーマコード(参考)】
5C182
5E555
【Fターム(参考)】
5C182AA31
5C182AB33
5C182AC02
5C182AC03
5C182BA14
5C182BA57
5C182BB01
5C182BB03
5C182BB11
5C182BC01
5C182BC22
5C182BC25
5C182BC26
5C182CB13
5C182CB14
5C182CB32
5C182CB42
5C182CB47
5C182CB52
5C182CC21
5C182DA02
5C182DA65
5E555AA27
5E555AA44
5E555AA76
5E555BA02
5E555BB02
5E555BC04
5E555BC21
5E555BE16
5E555BE17
5E555DB11
5E555DB18
5E555DB32
5E555DB53
5E555DB57
5E555FA00
(57)【要約】
非一時的コンピュータ可読媒体は、プロセッサにより実行される場合、プロセッサに、複合現実環境をヘッドセットに投影する手順であって、複合現実環境は、オブジェクトを有し、オブジェクトのそれぞれは、オブジェクトが複合現実環境内でどのように相互作用するかを定義する特性を有するオブジェクトコンピュータコードにより作成される、手順と、少なくとも1つのユーザインタフェースデバイスからの第1の入力に応じて、予め規定されたアクションモジュールのリストを有する仮想フィードバックスクリーン上にアクションメニューを表示する手順であって、アクションモジュールは、1つ又は複数の機能を有するコンピュータ実行可能コードのモジュールを含み、1つ又は複数の機能は、複合現実環境内のオブジェクトのうちの第1のオブジェクトの1つ又は複数の属性に影響を与えるように構成される、手順と、選択されたアクションモジュールを含むように、第1のオブジェクトのオブジェクトコンピュータコードを更新する手順とを実行させるコンピュータ実行可能コードを格納する。
【特許請求の範囲】
【請求項1】
プロセッサと、
仮想フィードバックスクリーンを有するヘッドセットと、
1つ又は複数のユーザインタフェースデバイスと、
コンピュータ実行可能コードを格納する非一時的コンピュータ可読媒体と
を備え、
前記コンピュータ実行可能コードは、前記プロセッサにより実行される場合、前記プロセッサに、
複合現実環境を前記ヘッドセットに投影する手順であって、前記複合現実環境は、1つ又は複数のオブジェクトを有し、前記1つ又は複数のオブジェクトのそれぞれは、前記1つ又は複数のオブジェクトが前記複合現実環境内でどのように相互作用するかを定義する特性を有するオブジェクトコンピュータコードにより作成される、手順と、
少なくとも1つのユーザインタフェースデバイスからの第1の入力に応じて、予め規定されたアクションモジュールのリストを有する前記仮想フィードバックスクリーン上にアクションメニューを表示する手順であって、前記アクションモジュールは、1つ又は複数の機能を有するコンピュータ実行可能コードのモジュールを含み、前記1つ又は複数の機能は、前記複合現実環境内の前記1つ又は複数のオブジェクトの第1のオブジェクトの1つ又は複数の属性に影響を与えるように構成される、手順と、
選択されたアクションモジュールを含むように、前記第1のオブジェクトの前記オブジェクトコンピュータコードを更新する手順と
を実行させる、電子デバイス。
【請求項2】
前記第1のオブジェクトは、前記第1の入力の前に識別される、請求項1に記載の電子デバイス。
【請求項3】
前記第1のオブジェクトは、前記第1の入力の後に識別される、請求項1に記載の電子デバイス。
【請求項4】
前記非一時的コンピュータ可読媒体は、前記プロセッサにより実行される場合、前記プロセッサに、トリガイベントに応じて、選択されたアクションモジュールを含むように前記第1のオブジェクトの前記オブジェクトコンピュータコードを更新する手順を実行させるコンピュータ実行可能コードを格納する、請求項1から3のいずれか一項に記載の電子デバイス。
【請求項5】
ユーザがトリガオブジェクトと相互作用することにより、予め決定されたトリガ条件を満たす場合、前記トリガイベントがあげられる、請求項4に記載の電子デバイス。
【請求項6】
前記非一時的コンピュータ可読媒体は、前記プロセッサにより実行される場合、前記プロセッサに、トリガメニューから特定のトリガオブジェクトを選択する少なくとも1つのユーザインタフェースデバイスからの第2の入力に応じて、前記トリガオブジェクトに対する1つ又は複数のトリガ条件のリストを有するトリガ条件メニューを表示する手順と、前記トリガオブジェクトに対する第1のトリガ条件の選択に応じて、ユーザが前記トリガオブジェクトを前記複合現実環境に配置することを可能にする手順とを実行させるコンピュータ実行可能コードを格納し、前記第1のトリガ条件は、満たされた場合、前記プロセッサに、選択されたアクションモジュールを含むように、前記第1のオブジェクトの前記オブジェクトコンピュータコードを更新させる、請求項1から5のいずれか一項に記載の電子デバイス。
【請求項7】
プロセッサと、
仮想フィードバックスクリーンを有するヘッドセットと、
1つ又は複数のユーザインタフェースデバイスと、
コンピュータ実行可能コードを格納する非一時的コンピュータ可読媒体と
を備え、
前記コンピュータ実行可能コードは、前記プロセッサにより実行される場合、前記プロセッサに、
複合現実環境を前記ヘッドセットに投影する手順であって、前記複合現実環境は、1つ又は複数のオブジェクトを有し、前記1つ又は複数のオブジェクトのそれぞれは、前記1つ又は複数のオブジェクトが前記複合現実環境内でどのように相互作用するかを定義する特性を有するオブジェクトコンピュータコードにより作成される、手順と、
トリガメニューから特定のトリガオブジェクトを選択する少なくとも1つのユーザインタフェースデバイスからの第1の入力に応じて、前記トリガオブジェクトに対する1つ又は複数のトリガ条件のリストを有するトリガ条件メニューを表示する手順と、前記トリガオブジェクトに対する第1のトリガ条件の選択に応じて、ユーザが前記トリガオブジェクトを前記複合現実環境に配置することを可能にする、手順と
を実行させる、電子デバイス。
【請求項8】
前記トリガオブジェクトは、前記第1の入力の前に識別される、請求項7に記載の電子デバイス。
【請求項9】
前記トリガオブジェクトは、前記第1の入力の後に識別される、請求項7に記載の電子デバイス。
【請求項10】
前記非一時的コンピュータ可読媒体は、前記プロセッサにより実行される場合、前記プロセッサに、トリガイベントに応じて、選択されたアクションモジュールを含むように、前記トリガオブジェクトの前記オブジェクトコンピュータコードを更新する手順を実行させるコンピュータ実行可能コードを格納する、請求項7から9のいずれか一項に記載の電子デバイス。
【請求項11】
ユーザが前記トリガオブジェクトと相互作用することにより、予め決定されたトリガ条件を満たす場合、前記トリガイベントがあげられる、請求項10に記載の電子デバイス。
【請求項12】
プロセッサに、
複合現実環境をヘッドセットに投影する手順であって、前記複合現実環境は、1つ又は複数のオブジェクトを有し、前記1つ又は複数のオブジェクトのそれぞれは、前記1つ又は複数のオブジェクトが前記複合現実環境内でどのように相互作用するかを定義する特性を有するオブジェクトコンピュータコードにより作成される、手順と、
少なくとも1つのユーザインタフェースデバイスからの第1の入力に応じて、予め規定されたアクションモジュールのリストを有する仮想フィードバックスクリーン上にアクションメニューを表示する手順であって、前記アクションモジュールは、1つ又は複数の機能を有するコンピュータ実行可能コードのモジュールを含み、前記1つ又は複数の機能は、前記複合現実環境内の前記1つ又は複数のオブジェクトのうちの第1のオブジェクトの1つ又は複数の属性に影響を与えるように構成される、手順と、
選択されたアクションモジュールを含むように、前記第1のオブジェクトの前記オブジェクトコンピュータコードを更新する手順と
を実行させるためのコンピュータプログラム。
【請求項13】
前記第1のオブジェクトは、前記第1の入力の前に識別される、請求項12に記載のコンピュータプログラム。
【請求項14】
前記第1のオブジェクトは、前記第1の入力の後に識別される、請求項12に記載のコンピュータプログラム。
【請求項15】
前記プロセッサに、トリガイベントに応じて、選択されたアクションモジュールを含むように、前記第1のオブジェクトの前記オブジェクトコンピュータコードを更新する手順を実行させる、請求項12から14のいずれか一項に記載のコンピュータプログラム。
【請求項16】
ユーザがトリガオブジェクトと相互作用することにより、予め決定されたトリガ条件を満たす場合、前記トリガイベントがあげられる、請求項15に記載のコンピュータプログラム。
【請求項17】
前記プロセッサに、トリガメニューから特定のトリガオブジェクトを選択する少なくとも1つのユーザインタフェースデバイスからの第2の入力に応じて、前記トリガオブジェクトに対する1つ又は複数のトリガ条件のリストを有するトリガ条件メニューを表示する手順と、前記トリガオブジェクトに対する第1のトリガ条件の選択に応じて、ユーザが前記トリガオブジェクトを前記複合現実環境に配置することを可能にする手順と、を実行させ、前記第1のトリガ条件は、満たされた場合、前記プロセッサに、選択されたアクションモジュールを含むように、前記第1のオブジェクトの前記オブジェクトコンピュータコードを更新させる、請求項12から16のいずれか一項に記載のコンピュータプログラム。
【請求項18】
プロセッサと、
仮想フィードバックスクリーンを有するヘッドセットと、
1つ又は複数のユーザインタフェースデバイスと、
コンピュータ実行可能コードを格納する非一時的コンピュータ可読媒体と
を備え、
前記コンピュータ実行可能コードは、前記プロセッサにより実行される場合、前記プロセッサに、
仮想現実環境を前記ヘッドセットに投影する手順であって、前記仮想現実環境は、1つ又は複数のオブジェクトを有し、前記1つ又は複数のオブジェクトのそれぞれは、前記1つ又は複数のオブジェクトが前記仮想現実環境内でどのように相互作用するかを定義する特性を有するコンテナにより作成され、前記1つ又は複数のオブジェクトは、前記1つ又は複数のオブジェクトの境界を定義する座標を有する3次元メッシュを有する、手順と、
前記1つ又は複数のオブジェクトの第1のオブジェクトを選択する手順と、
少なくとも1つのユーザインタフェースデバイスからの第1の入力に応じて、前記仮想フィードバックスクリーン上に、前記仮想現実環境内のアクションメニューを表示する手順であって、前記アクションメニューは、予め定義されたアクションスクリプトのリストを有し、前記アクションスクリプトは、1つ又は複数の機能を有するコンピュータ実行可能コードのモジュールを含み、前記1つ又は複数の機能は、前記仮想現実環境内の前記1つ又は複数のオブジェクトのうちの前記第1のオブジェクトの1つ又は複数の属性に影響を与えるように構成される、手順と、
選択されたアクションスクリプトを含むように、前記第1のオブジェクトの前記コンテナを更新する手順と
を実行させる、電子デバイス。
【請求項19】
前記第1のオブジェクトは、前記第1の入力の前に識別される、請求項18に記載の電子デバイス。
【請求項20】
前記第1のオブジェクトは、前記第1の入力の後に識別される、請求項18に記載の電子デバイス。
【請求項21】
前記非一時的コンピュータ可読媒体は、前記プロセッサにより実行される場合、前記プロセッサに、トリガイベントに応じて、選択されたアクションスクリプトを含むように、前記第1のオブジェクトの前記コンテナを更新する手順を実行させるコンピュータ実行可能コードを格納する、請求項18から20のいずれか一項に記載の電子デバイス。
【請求項22】
ユーザがトリガオブジェクトと相互作用することにより、予め決定されたトリガ条件を満たす場合、前記トリガイベントがあげられる、請求項21に記載の電子デバイス。
【請求項23】
前記非一時的コンピュータ可読媒体は、前記プロセッサにより実行される場合、前記プロセッサに、トリガメニューから特定のトリガオブジェクトを選択する少なくとも1つのユーザインタフェースデバイスからの第2の入力に応じて、前記トリガオブジェクトに対する1つ又は複数のトリガ条件のリストを有するトリガ条件メニューを表示する手順と、前記トリガオブジェクトに対する第1のトリガ条件の選択に応じて、ユーザが前記トリガオブジェクトを前記仮想現実環境に配置することを可能にする手順とを実行させるコンピュータ実行可能コードを格納し、前記第1のトリガ条件は、満たされた場合、前記プロセッサに、選択されたアクションスクリプトを含むように、前記第1のオブジェクトの前記コンテナを更新させる、請求項18から22のいずれか一項に記載の電子デバイス。
【請求項24】
プロセッサと、
仮想フィードバックスクリーンを有するヘッドセットと、
1つ又は複数のユーザインタフェースデバイスと、
コンピュータ実行可能コードを格納する非一時的コンピュータ可読媒体と
を備え、
前記コンピュータ実行可能コードは、前記プロセッサにより実行される場合、前記プロセッサに、
仮想現実環境を前記ヘッドセットに投影する手順であって、前記仮想現実環境は、1つ又は複数のオブジェクトを有し、前記1つ又は複数のオブジェクトのそれぞれは、前記1つ又は複数のオブジェクトが前記仮想現実環境内でどのように相互作用するかを定義する特性を有するコンテナにより作成される、手順と、
少なくとも1つのユーザインタフェースデバイスからの入力に応じて、トリガメニューから選択されたトリガオブジェクトを、前記1つ又は複数のオブジェクトのうちの特定のオブジェクトに接続することで、複合オブジェクトを形成する手順であって、前記複合オブジェクトは、1つ又は複数のアクションスクリプトを含み、前記トリガオブジェクトに対する1つ又は複数のトリガスクリプタブルアクションを有するスクリプタブルメニューを、前記仮想フィードバックスクリーン上の前記仮想現実環境に表示する、手順と、
前記トリガオブジェクトに対するトリガスクリプタブルアクションの選択に応じて、ユーザが前記トリガオブジェクトを前記仮想現実環境に配置することを可能にし、前記複合オブジェクトの前記1つ又は複数のアクションスクリプトに前記トリガスクリプタブルアクションを関連付ける手順と
を実行させる、電子デバイス。
【請求項25】
前記トリガオブジェクトは、前記入力の前に識別される、請求項24に記載の電子デバイス。
【請求項26】
前記トリガオブジェクトは、前記入力の後に識別される、請求項24に記載の電子デバイス。
【請求項27】
前記非一時的コンピュータ可読媒体は、前記プロセッサにより実行される場合、前記プロセッサに、トリガイベントに応じて、アクションスクリプトをアクティブにするように前記複合オブジェクトを更新する手順を実行させるコンピュータ実行可能コードを格納する、請求項24から26のいずれか一項に記載の電子デバイス。
【請求項28】
前記ユーザが前記トリガオブジェクトと相互作用することにより、予め決定されたトリガ条件を満たす場合、前記トリガイベントがあげられる、請求項27に記載の電子デバイス。
【請求項29】
プロセッサに、
仮想現実環境をヘッドセットに投影する手順であって、前記仮想現実環境は、1つ又は複数のオブジェクトを有し、前記1つ又は複数のオブジェクトのそれぞれは、前記1つ又は複数のオブジェクトが前記仮想現実環境内でどのように相互作用するかを定義する特性を有するコンテナにより作成され、前記1つ又は複数のオブジェクトは、前記1つ又は複数のオブジェクトの境界を定義する座標を有する3次元メッシュを有する、手順と、
前記仮想現実環境内の前記1つ又は複数のオブジェクトのうちの第1のオブジェクトを選択する少なくとも1つのユーザインタフェースデバイスからの第1の入力に応じて、予め定義されたアクションスクリプトのリストを有する仮想フィードバックスクリーン上にアクションメニューを表示する手順であって、前記アクションスクリプトは、1つ又は複数の機能を有するコンピュータ実行可能コードのモジュールを含み、前記1つ又は複数の機能は、前記仮想現実環境内の前記1つ又は複数のオブジェクトのうちの第1のオブジェクトの1つ又は複数の属性に影響を与えるように構成される、手順と、
選択されたアクションスクリプトを含むように、前記第1のオブジェクトの前記コンテナを更新する手順と
を実行させるためのコンピュータプログラム。
【請求項30】
前記第1のオブジェクトは、前記第1の入力の前に識別される、請求項29に記載のコンピュータプログラム。
【請求項31】
前記第1のオブジェクトは、前記第1の入力の後に識別される、請求項29に記載のコンピュータプログラム。
【請求項32】
前記プロセッサに、トリガイベントに応じて、選択されたアクションスクリプトを含むように前記第1のオブジェクトの前記コンテナを更新する手順を実行させる、請求項29から31のいずれか一項に記載のコンピュータプログラム。
【請求項33】
ユーザがトリガオブジェクトと相互作用することにより、予め決定されたトリガ条件を満たす場合、前記トリガイベントがあげられる、請求項32に記載のコンピュータプログラム。
【請求項34】
前記プロセッサに、トリガメニューから特定のトリガオブジェクトを選択する少なくとも1つのユーザインタフェースデバイスからの第2の入力に応じて、前記トリガオブジェクトに対する1つ又は複数のトリガ条件のリストを有するトリガ条件メニューを表示する手順と、前記トリガオブジェクトに対する第1のトリガ条件の選択に応じて、ユーザが前記トリガオブジェクトを前記仮想現実環境に配置することを可能にする手順とを実行させ、前記第1のトリガ条件は、満たされた場合、前記プロセッサに、選択されたアクションスクリプトを含むように前記第1のオブジェクトの前記コンテナを更新させる、請求項29から33のいずれか一項に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
[参照による組み込み]
本特許出願は、2019年8月23日に出願された米国特許出願第16/549,609号に対する優先権を主張し、2019年8月7日に出願された米国仮特許出願第62/884,020号により識別される仮特許出願に対する優先権を主張し、両方の特許出願の内容全体が、ここで、参照により本明細書に組み込まれる。
【背景技術】
【0002】
仮想現実ハードウェアは、進歩し、より有能になっており、仮想現実ハードウェアの費用が低下してきており、仮想現実における関心及び様々な産業におけるその利用性が高まっているが、しかしながら、コンピュータプログラミング分野以外の多くの人々は、仮想現実環境をプログラミングするのに必要なスキルを有していない。
【0003】
仮想現実(VR)は、3次元環境のコンピュータで生成されたシミュレーションであり、仮想現実システムを用いて、一見すると現実的又は物理的な方法で、人により相互作用され得る物理エンジンを含む。仮想現実システムは、仮想環境におけるユーザの物理的な存在をシミュレートするマルチプロジェクション環境が画像、サウンド及び他の感覚を生成するスクリーンを含み、ユーザが仮想環境に入力を提供できるインターフェースデバイスを含み得る。仮想現実システムは、ユーザが人工世界を見回し、その周りを移動し、仮想オブジェクトと相互作用することを可能にする。この効果は、一般的に、目の前に小型スクリーンを有するヘッドマウントディスプレイで構成されるVRヘッドセットにより作成されるが、複数の大型スクリーンを有する特別に設計されたルームを通じて作成されることもできる。仮想現実は、一般的に、聴覚的及びビデオフィードバックを組み込むが、触覚技術を通じて感覚及び力フィードバックなどの他の環境シミュレーションもまた含み得る。
【0004】
仮想環境及びVRアプリケーションとも称される仮想現実環境は、例えば、ゲーム及びマルチメディアなどの娯楽、又は、クラスルーム教育又は仮想訓練などの訓練を含み得る。仮想現実環境をプログラミングすることは、2次元コンピュータモニタ上に複合3次元環境をレンダリングすることによりさらに複雑な複雑で非常に時間のかかる作業である。さらに、高度な3次元モデリング、テクスチャリング及びライティングは、熟練した技能が必要であり、時間のかかる処理である。
【0005】
現在、仮想現実環境を構築することは、一般的に、少なくともグラフィックアート設計、コンピュータプログラミング、3次元数学及び物理学、並びに、音響工学の理解を含む広くて高度な知識や技能を有する人のチームを必要としている。これらの技能のいずれか1つを有する人を加えることは、需要及び必要により費用がかかる。さらに、仮想現実環境を構築するのに必要とされる広くて高度な知識や技能に起因して、仮想現実の採用は、これらの技能を有する人、又は、これらの技能を有するチームを構築することが可能なエリアに限定されている。
【0006】
必要とされることは、シンプルでもありかつ、編集される仮想現実環境内にもある仮想現実環境を作成及び修正するための能力をユーザに提供するシステム及び方法である。そのようなシステムが、本開示が対象にするシンプルでもありかつ、編集される仮想現実環境内にもある仮想現実環境を作成及び修正するための能力をユーザに提供する。
【発明の概要】
【0007】
シンプルでもありかつ、編集される仮想現実環境内にもある仮想現実環境を作成し、修正するという問題が、本明細書で説明されるシステムを用いて解決される。
【0008】
1つの実施形態において、本開示は、プロセッサと、ヘッドセットと、1つ又は複数のユーザインタフェースデバイスと、非一時的コンピュータ可読媒体とを備える電子デバイスを説明する。ヘッドセットは、仮想フィードバックスクリーンを有する。非一時的コンピュータ可読媒体は、プロセッサにより実行される場合、プロセッサに、複合現実環境をヘッドセットに投影させるコンピュータ実行可能コードを格納する。複合現実環境は、1つ又は複数のオブジェクトを有する。1つ又は複数のオブジェクトのそれぞれは、1つ又は複数のオブジェクトが複合現実環境内でどのように相互作用するかを定義する特性を有するオブジェクトコンピュータコードにより作成される。少なくとも1つのユーザインタフェースデバイスからの第1の入力に応じて、アクションメニューは、予め規定されたアクションモジュールのリストを有する仮想フィードバックスクリーン上に表示される。アクションモジュールは、1つ又は複数の機能を有するコンピュータ実行可能コードのモジュールを含み、1つ又は複数の機能は、複合現実環境内の1つ又は複数のオブジェクトの第1のオブジェクトの1つ又は複数の属性に影響を与えるように構成される。第1のオブジェクトのオブジェクトコンピュータコードは、選択されたアクションモジュールを含むように更新される。
【図面の簡単な説明】
【0009】
本明細書の一部に組み込まれ、その一部を構成する添付の図面は、本明細書で説明される1つ又は複数の実装を示し、説明と共に、これらの実装を説明する。図面は、正確な縮尺にすることを意図しておらず、図の特定の特徴及び特定の見方は、縮尺に対して、又は、明瞭性及び簡潔性の関心のある概略図を誇張して示され得る。コンポーネントが図面ごとにラベリングされ得るわけではない。図における同様の参照番号は、同一又は類似の要素又は機能を表し、これを指し得る。
【0010】
図1】仮想現実世界オーサリングシステムの例示的な実施形態である。
【0011】
図2】車両オブジェクトの例示的な実施形態のブロック図である。
【0012】
図3】オブジェクト構成処理の例示的な実施形態のフロー図である。
【0013】
図4】ホイールオブジェクトの例示的な実施形態のブロック図である。
【0014】
図5図2の車両オブジェクト及び図4のホイールオブジェクトの形状を成す複合オブジェクトの上面図である。
【0015】
図6図5の複合オブジェクトを形成するオブジェクト関係モデルの例示的な実施形態のブロック図である。
【0016】
図7図5の複合オブジェクトを形成する階層オブジェクト関係モデルの例示的な実施形態である。
【0017】
図8】例示的なルーム設定メニューを示す仮想環境の例示的な実施形態のスクリーンショットである。
【0018】
図9】例示的なツール選択メニューを示す仮想環境の例示的な実施形態のスクリーンショットである。
【0019】
図10】仮想環境へのマルチユーザアクセスのためのネットワーク図の例示的な実施形態である。
【0020】
図11】例示的なスクリプタブルメニューを示す仮想環境の例示的な実施形態のスクリーンショットである。
【0021】
図12】スクリプトビルダの例示的な実施形態の概略図である。
【0022】
図13】仮想環境の例示的な実施形態の概略図である。
【0023】
図14】本開示に従う仮想現実世界オーサリングシステムを実装するコンピュータシステムの例示的な実施形態である。
【発明を実施するための形態】
【0024】
本開示の少なくとも1つの実施形態を詳細に説明する前に、本開示は、そのアプリケーションにおいて、特段の記載がない限り、以下の説明において記載される、又は、図面において示されるコンポーネントの構造、実験、例示的なデータ及び/又は配置の詳細に限定されることはないことが理解されるべきである。
【0025】
本開示は、他の実施形態ができ、様々な方法で訓練又は実行されることができる。例えば、住宅構造の規模の変更が例として用いられてよいが、方法及びシステムは、他の人工的なオブジェクトの他の特性(例として、限定されることはないが、構造設置面積又は構造エリアの変更)を評価するために用いられてよく、その非排他的な例は、工業用建物又は商業用建物などの他のタイプの建物を含み、道路、橋、ユーティリティライン、ユーティリティタワーなどのインフラストラクチャを含む。また、本明細書で採用される語句及び用語は、説明のためであり、限定するものとみなされるべきではないことが理解されるべきである。
【0026】
本明細書の説明で用いられるような「備える(comprises)」、「備える(comprising)」、「含む(includes)」、「含む(including)」、「有する(has)」、「有する(having)」という用語又はその任意の他の変形例は、非排他的包含をカバーすることが意図されている。例えば、特段の記載がない限り、要素のリストを有するプロセス、方法、物品又は装置は、必ずしもこれらの要素のみに限定されることはないが、明示的に記載されていない、又は、このようなプロセス、方法、物品又は装置に固有の他の要素も含んでよい。
【0027】
さらに、明示的に反対のことが述べられていない限り、「又は(or)」は、包括を指し、除外の「又は(or)」ではない。例えば、条件A又はBは、Aが真であり(又は、存在し)、Bが偽である(又は、存在しない)、Aが偽であり(又は、存在しない)、Bが真である(又は、存在する)、及び、A及びBの両方が真である(又は、存在する)のうちの1つにより満たされる。
【0028】
さらに「a」又は「an」の使用は、本明細書における実施形態の要素及びコンポーネントを説明するために採用される。これは、単に利便性のために、かつ、本発明の概念の一般的な意味を与えるために行われる。本説明は、1つ又は複数を含むものと読み取られるべきであり、それが別の意味であることが明らかでない限り、単数は複数も含む。さらに、用語「複数の」の使用は、明示的に反対のことが述べられていない限り、「1つより多く」を伝えることを意味する。
【0029】
本明細書で用いられるように、「実質的に(substantially)」、「について(about)」、「約(approximately)」及びこれらの組み合わせ及び変形形態のような修飾語句は、それらが修飾する正確な量又は値だけでなく、例えば、計算許容範囲、計算誤差、製造公差、測定誤差、損傷、様々な部分に及ぶ応力、及び、それらの組み合わせに起因し得るそれらからの多少のずれを含むことが意図されている。
【0030】
本明細書で用いられるように、「一実施形態」、「実施形態」、「いくつかの実施形態」、「一例」、「例えば」又は「例」への何らかの言及は、実施形態に関連して説明される特定の要素、機能、構造又は特性が、少なくとも1つの実施形態において含まれており、他の実施形態に関連して用いられてよいことを意味する。本明細書内の様々な箇所において、「いくつかの実施形態において」、又は、「一例」という語句の出現は、例えば、必ずしも、同一の実施形態をすべて参照しているわけではない。
【0031】
序数の専門用語(すなわち、「第1」、「第2」、「第3」、「第4」など)の使用は、2つ又はそれより多くの項目間を区別の目的のためだけであり、特に明記されていない限り、ある項目よりも上の別の項目、又は、任意の追加順序に対する任意のシーケンス又は順序又は重要度を示唆することを意味しているわけではない。
【0032】
「少なくとも1つ」又は「1つ又は複数」という用語の使用は、1つ、並びに、1よりも多い任意の数を含むものと理解される。さらに、「X、V及びZのうちの少なくとも1つ」という語句の使用は、X単体、V単体及びZ単体、並びに、X、V及びZの組み合わせを含むものと理解される。
【0033】
本明細書で用いられるように、回路は、アナログ及び/又はデジタルコンポーネント、又は、1つ又は複数の好適にプログラムされたプロセッサ(例えば、マイクロプロセッサ)及び関連するハードウェア及びソフトウェア、又は、ハードワイヤードロジックであってよい。また、「コンポーネント」は、1つ又は複数の機能を実行してよい。「コンポーネント」という用語は、プロセッサ(例えば、マイクロプロセッサ)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ハードウェア及びソフトウェアの組み合わせ、及び/又は、同様のものなどのハードウェアを含んでよい。本明細書で用いられるような「プロセッサ」という用語は、タスクを集合的に実行すべく、独立して又は共に動作するシングルプロセッサ又は複数のプロセッサを意味する。
【0034】
プログラミング言語は、ソフトウェアを作成するために用いられるコマンド、命令及び他のシンタックスのセットである。プログラマがコードを書き込むために用いられる言語は、「高水準言語」と呼ばれる。高水準言語コードは、プログラマにより読まれて理解されるために設計され、コンピュータ可読命令としてコンピュータハードウェアにより直接認識される「低水準言語」にコンパイルされる。これは、論理語及びシンボルを用いて、プログラマが、より自然なやり方でソースコードを書き込むことを可能にする。高水準言語の例は、C++、Java(登録商標)、Perl及びPHPを含む。低水準言語は、アセンブリ言語及び機械語を含む。
【0035】
ソフトウェアは、1つ又は複数のコンポーネントにより実行される場合、コンポーネントに、特定の機能を実行させる1つ又は複数のコンピュータ可読命令を含んでよい。本明細書で説明されるアルゴリズムは、1つ又は複数の非一時的コンピュータ可読媒体上に格納され得ることを理解されたい。例示的な非一時的コンピュータ可読媒体は、ランダムアクセスメモリ、リードオンリメモリ、フラッシュメモリ及び/又は同様のものを含み得る。そのような非一時的コンピュータ可読媒体は、電気ベース、磁気ベース、光学ベース及び/又は同様のものであってよい。ソフトウェアモジュールは、1つ又は複数の特定の機能を有するコンピュータ実行可能コードの再利用可能な部分である。
【0036】
仮想現実システムは、投影される環境が、仮想環境においてユーザの物理的な存在をシミュレートする画像、サウンド及び他の感覚を生成するデバイスを含み、ユーザは、仮想環境への入力を提供できるインターフェースデバイスを含んでよい。仮想現実システムは、処理コンポーネント、及び、ユーザの五感のうちの1つに影響を与えるように構成される任意の環境シミュレータ、例えば、限定されることはないが、嗅覚刺激、方向刺激又は力刺激を生成するように構成される機器をさらに含んでよい。仮想現実システムは、限定されることはないが、Oculus Quest、Oculus Go及びOculus Rift(カリフォルニア州メンローパークにあるFacebook(登録商標)Inc.の一部門であるOculus VR)、SAMSUNG(登録商標) HMD Odyssey+(サムスングループ及びサムスン電子、カリフォルニア州、サンノゼ)、又は、Google(登録商標) Cardboard VRプラットフォーム(Google、LLC、カリフォルニア州マウンテンビュー)を含んでよい。拡張現実システムは、限定されることはないが、Microsoft(登録商標) HoloLens(マイクロソフト(登録商標)コーポレーション、ワシントン州、レドモンド)又はVuzix Blade(Vuzixコーポレーション、ニューヨーク州、ウェストヘンリエッタ)を含んでよい。仮想現実ヘッドセットという用語は、仮想現実ヘッドセットが単独でヘッドセットユニットを指すことが意図されていることが文脈により明らかでない限り、仮想現実システムを含むと読み取られるべきである。
【0037】
仮想環境は、アバター、すなわち、仮想環境内のユーザの描写を含んでよい。アバターは、仮想現実オブジェクトであり、ユーザの写真のような現実感のある描写であってよい、ユーザの一般的描写であってよい、又は、ユーザにより制御されるデバイスの描写であってよい。いくつかの実施形態において、アバターは、ユーザの動きをミラーリングする、又は、当該動きに近づけるやり方で移動し得る。ユーザの動きをミラーリングする、又は、当該動きに近づけることにより、アバターは、ユーザの現実世界の動きに対する視覚的フィードバックを提供することり、ユーザに対してより没入感のある体験を創造することにより、仮想環境をさらに向上させる。
【0038】
仮想環境は、物理エンジンを含んでよい。物理エンジンは、仮想環境内のオブジェクトに対する物理的及び質量的な相互作用をシミュレートするコンピュータコードのモジュールである。物理エンジンは、衝突検出を提供してよく、すなわち、第1のオブジェクトが、第2のオブジェクトと交差しているか否かを決定するために用いられるコンピュータコードのモジュールを提供し、交差のステータスが変化した場合にイベントをあげる。例えば、衝突トリガスクリプタブルアクションを有する付属の第1のオブジェクト(以下でさらに詳細に説明される)が第2のオブジェクトと交差している場合、衝突検出が入力イベントをあげ、第1のオブジェクト及び第2のオブジェクトのそれぞれが、もはや交差していない場合、衝突検出が終了イベントをあげる。各イベントは、衝突の場所並びに衝突の際のオブジェクトのそれぞれの特性、例えば、オブジェクトの速度、オブジェクトの質量及びオブジェクトの材料を含み得る1つ又は複数の属性を有する。さらに、物理エンジンは、動的なシミュレーション、すなわち、仮想環境内で1つ又は複数のオブジェクトに対して作用する力のシミュレーション、例えば、限定されることはないが、重力、又は、材料の構造のシミュレーションを提供する。
【0039】
本明細書で用いられるように、仮想現実という用語は、拡張現実及び混合現実などの補足現実をさらに含む。拡張現実、現実世界に存在するオブジェクトが、コンピュータにより生成された、場合により、視覚、聴覚的、触覚、体性感覚及び嗅覚を含む複数の感覚モダリティにわたるコンピュータにより生成された知覚情報により強化される現実世界の環境のインタラクティブな体験、混合現実、新しい環境を生成する現実世界及び仮想世界の融合、及び、物理オブジェクト及びデジタルオブジェクトがリアルタイムに共存して相互作用する視覚化は、仮想現実システムとして同一又は同様の設備を用いてよい。さらに、仮想環境は、補足現実及び仮想現実システムのそれぞれにわたって交換可能であり得る。
【0040】
リポジトリは、仮想環境生成コンポーネントにおいてローカルに、ローカルネットワーク内のコンピュータ上で、又は、インターネットに接続されるコンピュータ又はサーバ上で格納されるデータベース又は他のファイルストレージシステムであり、そうでなければ、リポジトリオーナからの許可を伴ってユーザ14がアクセスして利用可能である。リポジトリオーナは、リポジトリを削除し、リポジトリをコピーし、リポジトリを編集し、又は、ユーザ14に対する許可の程度変えつつ、リポジトリを共有する権利を含むリポジトリに対するすべての権利を作成又は有するエンティティである。リポジトリのタイプは、オンラインリポジトリ304、パーソナルリポジトリ及びコアリポジトリを含む。オンラインリポジトリ304(以下で詳細に説明される)は、オーナにより任意のユーザに提供されるアクセスによる再利用のために利用可能なルーム、オブジェクト及び/又はアイテムを格納できるリポジトリである。オンラインリポジトリ304は、インターネットに接続されてよく、又は、接続されていなくてよいが、しかしながら、それはネットワーク420(以下で詳細に説明される)を介して利用可能である。オンラインリポジトリ304は、ローカルネットワーク内又はインターネット上のいずれかのサーバに配置されてよい。パーソナルリポジトリは、ユーザ14がオーナであり、ユーザ14がアクセスを許可しない限り、他のユーザがアクセス可能ではないリポジトリであり、さらに、オブジェクト、アクションスクリプト、スクリプタブルアクション及び他のアイテムは、オーナ、ユーザ14からの許可なく他のユーザによりコピー又は編集されなくてよい。仮想現実世界オーサリングシステム10はまた、コアリポジトリを含む。コアリポジトリは、仮想現実世界オーサリングシステム10より提供され、所有され、及び、デフォルトで含まれるユーザ14に利用可能なルーム、オブジェクト及び/又はアイテムのリポジトリである。ユーザ14は、ユーザが仮想環境を作成している間、コアリポジトリ内のオブジェクトをコピーし、次に、修正及び使用するための許可を有する。
【0041】
ここで、図1を参照すると、参照番号10によりそこに示され、指定されているものは、オブジェクト26と共に仮想環境22を表示するVRヘッドセット18を用いたユーザ14を有する仮想現実世界オーサリングシステムの例示的な実施形態である。また、示されるものは、オブジェクトビルダ30、環境構築ツール34、スクリプトビルダ38、トリガオブジェクト42、物理エンジン46及び双方向状態API50を含むVR設計特性を有する1つ又は複数のコンピュータアプリケーションを格納する仮想環境生成コンポーネント28である。
【0042】
1つの実施形態において、ユーザ14は、プログラマではなく、プログラミング言語を知らない。ユーザ14は、VR世界オーサリングシステムを用いて、コンピュータコードを書くことなく仮想環境22を構築する。ユーザ14は、単独で仮想環境22を構築し得る、又は、追加のユーザ14と共に作業し得る。他と共に作業する場合、ユーザ14は、仮想環境22のローカルコピー上で作業してよい、又は、他のユーザ14と共に共有される仮想環境22内で作業してよい。
【0043】
VRヘッドセット18は、没入感のある3次元体験のために、ユーザの目を覆う頭部装着型装置である。VRヘッドセット18は、自己完結型であり得る、すなわち、VRヘッドセット18は、コンピュータコードを格納する非一時的メモリと、コンピュータコードを実行する場合、仮想環境22を生成するプロセッサとを有する仮想環境生成コンポーネントを有してよい。他の実施形態において、VRヘッドセット18は、仮想環境生成コンポーネントから分離されていてよいが、代わりに、通信コンポーネントを通じて仮想環境生成コンポーネントと通信されてよい。VRヘッドセット18は、ヒューマンインタフェースデバイス又は環境シミュレータなどの他のコンポーネントを含んでよい。
【0044】
通信コンポーネントは、VRヘッドセット18と他のコンポーネントとの間の通信を提供する通信プロトコルを実装する回路又は他のハードウェアを有するVRヘッドセットのコンポーネントである。通信プロトコルは、限定されることはないが、有線通信、WiFi(登録商標)、Bluetooth(登録商標)、無線PAN、IR、もしくは、他の無線ベース又は光ベースの通信協定のうちの1つ又は複数を含んでよい。
【0045】
ある環境において、ユーザ14は、VRヘッドセット18を用いて仮想環境22を表示するが、一方で、別の環境では、ユーザ14は、1つ又は複数のスクリーン上に表示される仮想環境22がユーザ14を仮想環境22に没頭させるように、1つ又は複数の他のスクリーン上に仮想環境22を表示する。
【0046】
仮想環境22は、仮想環境生成コンポーネントにより確立及び実行される。仮想環境22は、ユーザ14のみに利用可能であってよい、又は、1人より多くのユーザ14に同時に利用可能であってよい。1つの実施形態において、仮想環境22は、ユーザ14によりアクセス可能なサーバ上にホストされる。サーバは、ローカル(イントラネット)又は外部(インターネット)のいずれかのネットワーク接続を介してヘッドセットに接続されてよい。
【0047】
仮想環境22は、少なくとも実行モード又は設計モードでユーザにより実行されてよい。設計モードにおいて、ユーザ14は、より静的なシミュレーションで仮想環境22を体験する、すなわち、ユーザ14は、仮想環境22にオブジェクトを加える、又は、仮想環境22からオブジェクトを除去することができる、又は、物理学及び他のオブジェクト特性を有効又は無効にし得る。実行モードにおいて、ユーザ14は、まるで、ユーザ14が仮想環境22の一部であるかのように有効にされたシミュレーションで仮想環境22を体験する。ユーザ14が実行モードを可能にするために、仮想環境22は、まず設計モードで作成されなければならない。シミュレーションが有効にされている場合、物理エンジンが完全に有効にされる。
【0048】
1つの実施形態において、仮想環境22は、1つ又は複数のシミュレーションパラメータ及び複数の仮想現実オブジェクト26(オブジェクト26)を備える。オブジェクトは、アイテムの空きのコンテナである。各アイテムは、オブジェクトと関連付けられた関連ファイル及びコンテンツデータに対するポインタを有する基準であり、埋め込みファイル、すなわち、オブジェクトは、特定のアイテム又は別のオブジェクトに対するファイルデータを含む。オブジェクト、及び、オブジェクトに含まれるアイテムのそれぞれは、オブジェクトが、互いに順番に兄弟であるアイテムのそれぞれに対する親が検討され得るような階層的関係を禁止する。別の実施形態において、アイテムはまた、アイテムに対するコンテナ、又は、アイテムがサブアイテムに対する親であり、オブジェクトに対する子であるようなサブアイテムであってよい。1つの実施形態において、オブジェクト26は、メタデータアイテム、すなわち、オブジェクト26の質量、オブジェクト26の弾力性及びオブジェクト26の材料などのオブジェクト26の特性を格納するファイルを含む。メタデータアイテムにおける特性のそれぞれは、仮想環境内のオブジェクト26と任意の他のオブジェクトとの間の相互作用を適切にシミュレートする物理エンジンにより必要とされ得る。
【0049】
ここで、図2を参照すると、示されるものは、親コンテナ74と、3dメッシュ78、テクスチャ82、オーディオ86及びアクションスクリプト90を含む複数のアイテムとを有する車両オブジェクト70の例示的な実施形態である。図2に見られるように、車両オブジェクト70の親コンテナ74に付属するアイテムのそれぞれは、車両オブジェクト70を拡張する。識別される複数のアイテムは、例示の目的のみであり、限定することを意図するものではない。上記で定義されるように、アイテムは、オブジェクト26について追加の情報を拡張又は提供し得る任意のファイルである。例えば、アイテムはまた、限定されることはないが、doc、docx、ppt、pptx、pdf及びtxtなどのドキュメントファイル、ハイパーリンク、限定されることはないが、mp4、avi、mpegもしくはmov又は専用アイテムなどの、限定されることはないが、URL、ビデオファイルなどを含んでよい。
【0050】
3Dメッシュ78は、車両オブジェクト70の3次元ワイヤフレーム表現である。それは、任意のテクスチャ又はスムージングが適用される前のオブジェクトのベースモデルである。例示的な3Dメッシュファイルのタイプは、限定されることはないが、stl、obj、fbx、collada、3ds、vrml及びx3dを含む。
【0051】
テクスチャ82は、車両オブジェクト70の視覚テクスチャを含む2次元グラフィックスファイルである。車両オブジェクト70がグラフィックプロセッサにより3次元でレンダリングされる場合、テクスチャ82は、3Dメッシュ78に適用される。例示的な2Dグラフィックスファイルタイプは、限定されることはないが、jpg、gif、png、bmp及びtiffを含む。
【0052】
オーディオ86は、車両オブジェクト70と関連付けられるオーディオクリップである。オーディオ86は、車両オブジェクト70が発する任意のサウンドを含んでよく、又は、別のオブジェクトが車両オブジェクト70と相互作用する場合に再生され得る別のサウンドファイルに対する任意のサウンド修正を含んでよい。例示的なオーディオファイルのタイプは、限定されることはないが、midi、mp3、wav及びoggを含む。
【0053】
専用アイテムは、そうでなければ、プログラミングなしでは取得するのが困難な複合機能を示すアイテムであり、その他のアイテムに類似するオブジェクトに取り付けられ得る。専用アイテムは、ユーザ14がプログラミングすることなく機能が豊富な仮想環境を構築することを可能にする。1つの実施形態において、専用アイテムは、限定されることはないが、ビデオプレーヤアイテム、オーディオプレーヤアイテム、ドキュメントビューアーアイテム又はクイズアイテムなどのアイテムを含んでよい。
【0054】
ビデオプレーヤアイテムは、オブジェクトに付属するものなどのビデオファイルアイテム、又は、ハイパーリンクオブジェクトのエンドポイントにあるものなどのビデオストリームを再生する機能を提供する。このアイテムを提供することにより、ユーザは、このアイテムを3Dメッシュ上に広げて、限定されることはないが、仮想TVスクリーン、映画のスクリーン又はコンピュータモニタなどの仮想ディスプレイを形成できる。
【0055】
同様に、オーディオプレーヤアイテムは、オブジェクトに取り付けられているものなどのオーディオファイルアイテム、又は、ハイパーリンクオブジェクトのエンドポイントにあるものなどのオーディオストリームを再生する機能を提供する。ユーザ14は、車両オブジェクト70内のラジオなどの単純な特徴にこのアイテムを実装してよい。
【0056】
ドキュメントビューアーアイテムは、ユーザ14がメッシュ上にドキュメント表示アイテムを実装することにより、プレゼンテーションを実装することを可能にするコードを提供する。同様に、クイズアイテムは、各要素が回答に関連するメッシュに対する複数の要素を有するクイズアイテムを取り付けることによって、ユーザ14により実装されてよく、クイズアイテムの出力は、選択された解答のインデックスであり得る。
【0057】
アイテムのファイルデータがオブジェクトに対するファイルデータと共にセーブされる場合、アイテムは、オブジェクトに埋め込まれる。例えば、3dメッシュ78は、例えば、3dメッシュ78データがシリアル化され、エンコードが用いられるか否かに関わらず、親コンテナ74として同じファイル内にセーブされる場合、車両オブジェクト70に埋め込まれる。したがって、親コンテナ74のファイルロケーションを移動させると、3dメッシュ78のためのデータも移動させることになる。同様に、親コンテナ74を削除すると、3dメッシュ78のためのデータを含む埋め込みデータも削除することになる。
【0058】
リンク又は参照が車両オブジェクト70の親コンテナ74内に格納されている場合、オブジェクトにより、アイテムが参照される。リンク又は参照は、例示の目的のみで、メモリの場所、ファイルシステム、ハイパーリンクなどのウェブリソース、又は、データベースのいずれかに対するポインタであってよい。アイテムが参照された場合、アイテムのエンコードされるデータは、親コンテナ74と共に格納されておらず、親コンテナ74と共にシリアル化及び圧縮されていない。したがっては、コンピュータメモリ上のより小さなサイズの親コンテナ74だけでなく、親コンテナ74も削除された場合、アイテムへのポインタは削除されるが、しかしながら、アイテムデータは削除されない。
【0059】
仮想環境22内にオブジェクト26を実装すべく、オブジェクト26がまず構成されなければならない。ここで、図3を参照すると、オブジェクト構成処理100の例示的な実施形態が示される。一般に、オブジェクト構成処理は、選択されたリポジトリから3dメッシュをロードする段階(段階104)、親オブジェクトを自動的に作成する段階(段階108)、及び、1つ又は複数のアイテムを親コンテナに追加する段階(段階112)を備える。1つの実施形態において、1つ又は複数のアイテムを親コンテナに追加する段階(段階112)は、さらに、複合オブジェクトを形成すべく、座標リンクを用いて、互いにオブジェクトをリンクさせる段階を含んでよい。
【0060】
ここで、図4を参照すると、ホイール親コンテナ124、3dメッシュ128、テクスチャ132及びアクションスクリプト136を有するホイールオブジェクト120の例示的な実施形態がそこに示される。ホイール親コンテナ124は、3dメッシュ128、テクスチャ132及びアクションスクリプト136に対する参照又はこれらのコピーを含む。3dメッシュ128は、ホイールを表す3次元ワイヤフレーム構造である。ワイヤフレーム構造は、線又はエッジにより結合されるポイント又は頂点で構成されている。頂点のそれぞれは、少なくとも1つのエッジにより別の頂点に接続されている。テクスチャ132は、3Dメッシュ128を用いて処理される場合に、画像に3Dメッシュ128をラップ(wrap)するテクスチャファイルである。例えば、テクスチャ132は、3Dメッシュ128をラップして、3dメッシュ128が実際のホイールのように見えさせてよい。他の実施形態において、テクスチャ132は、オブジェクトの材料及びその材料の特性などのオブジェクトお他の特性に基づいて計算される。
【0061】
ここで、図5を参照すると、1つの車両オブジェクト70及び4つのホイールオブジェクト120a-dを有する複合車両オブジェクト150の例示的な実施形態がそこに示される。車両オブジェクト70の3dメッシュ78は、3次元空間に存在し、3dメッシュワイヤフレームの境界を定義する座標を有し、座標は、例えば、(X、Y、Z)形態のデカルト座標により定義される3次元における場所である。第1の座標リンク154aがホイールオブジェクト120aの座標を車両オブジェクト70の第1の座標にリンクさせ、第2の座標リンク154bがホイールオブジェクト120bの座標を車両オブジェクト70の第2の座標にリンクさせ、第3の座標リンク154cがホイールオブジェクト120cの座標を車両オブジェクト70の第3の座標にリンクさせ、第4の座標リンク154dがホイールオブジェクト120dの座標を車両オブジェクト70の第4の座標にリンクさせるように、ホイールオブジェクト120a-dは、座標リンク154a-dにより車両オブジェクト70に取り付けられる。1つの実施形態において、座標リンクは、接続強度とも称される3次元範囲を含み、3次元範囲は、オブジェクトが互いに接続される範囲を提供する。
【0062】
座標リンク154a-dは、ホイールオブジェクト120a-dのそれぞれと車両オブジェクト70との間の相対距離を保持することにより、ホイールオブジェクト120a-dのそれぞれを車両オブジェクト70に取り付ける。複合車両オブジェクト150のアイテム、車両オブジェクト70及びホイールオブジェクト120a-dのそれぞれは、接続リンク154a-dとの物理的な接続を保持しつつ、互いに独立して動作し得る。
【0063】
図6の例示的なオブジェクト関係モデル158に示されるように、親コンテナ74及びホイールコンテナ124a及び124b(図示されていない124c及び124dも同様)は、複合車両オブジェクト150を形成すべく、階層的関係ではなく、むしろ、接続リンク154a-dを通じた横の関係で結合される。
【0064】
別の例示的な階層オブジェクト関係モデル158aに示されるように、複合車両オブジェクト150は、図7に示されるように、車両オブジェクト70(親)と、ホイールオブジェクト120a-dのそれぞれ(子)との間の階層的な親-子関係を通じて形成され得る。繰り返しになるが、ホイールオブジェクト120c及び120dは分かりやすくするために図示されていない。階層オブジェクト関係モデル158aは、3dメッシュ78、テクスチャ82、オーディオ86及びアクションスクリプト90などの親コンテナ74における他のアイテムと同じ階層レベルにあり、一方、ホイールコンテナ124a、124bのそれぞれ内のアイテムは、親コンテナ74内のアイテムより低い階層レベルのものであるホイールコンテナ124a及び124bを示す。
【0065】
1つの実施形態において、複合オブジェクトを形成する親-子関係におけるオブジェクトは、オブジェクトのそれぞれの能力を保持して、アクションスクリプトアイテムの使用を通じて複合オブジェクトとは独立して相互作用しつつ、親オブジェクトの任意の方向への移動は、同様にすべての子オブジェクトを移動させるように、子オブジェクトが親オブジェクトに取り付けられるよりも、むしろ、オブジェクト間の接続強度により決定されるような相対距離を保持しない。
【0066】
ユーザ14は、環境構築システムを用いて仮想環境内に1つ又は複数のオブジェクトを配置する。図8に示されるように、ルーム160において、環境構築システムは、ルーム名フィールド174、重力制御178、スケール制御182、プライベート制御186、編集可能な制御190、匿名公開制御194、実行制御198、リセット制御202、破壊制御206、公開制御210又は設定メニュー214を含む制御を列挙するルーム設定メニュー170をユーザ14に提供する。また、バーチャルハンド220a及び220b及びカーソル224が仮想環境22に示される。
【0067】
カーソル224は、ユーザ14からの入力により影響を受け、ユーザ14により移動可能である仮想環境22内のポイントの仮想環境表現である。例えば、カーソル224は、ユーザの手と一致するものとユーザ14が解釈する仮想環境22内の第1の位置から、ユーザの手により選択される仮想環境22内のポイントであるものとユーザ14が解釈する仮想環境22内の第2の位置へと延びる線であり得る。別の実施形態において、カーソル224は、ユーザ14がユーザの手に対応する仮想環境22内のポイントとして解釈する仮想環境22内の第2の位置に配置される幾何学的図形である。
【0068】
ルーム160は、ユーザ14が作成又はダウンロードした特定の仮想環境22である。ルーム160は、仮想環境22の初期構造を提供し、ルーム160内のオブジェクトに適用可能な環境設定を格納できる。例えば、ユーザ14は、ルーム設定メニュー170内の重力制御178を用いて、ルーム内の重力を調節し得る。重力制御178を用いることにより、ユーザ14は、この特定の仮想環境22内のすべてのオブジェクトに対して、重力がどのような反応を示すかを調節する。さらに、ユーザ14は、スケール制御182を用いて、ルームをスケーリングできる。1つの実施形態において、スケール制御182は、ユーザの視点から、ユーザが拡大又は縮小するように見えるように、ルーム160内のすべてのオブジェクトの相対的なサイズを調節する。プライベート制御186を選択することにより、ユーザ14は、ルーム160がリポジトリ内で検索可能になることを防止できる。ユーザ14はまた、編集可能な制御190をトグルすることにより、彼らのルーム160が他のユーザにより編集可能であるか否かを調節できる。ユーザ14はまた、匿名公開制御194を用いることにより、1つ又は複数のリポジトリに対して匿名で彼らのルーム160を公開するオプションを有する。リセット制御202を用いることにより、ユーザ14は、変更を直近のセーブに戻すことができる。ルーム設定メニュー170はまた、破壊制御206を選択することにより、ユーザ14が、ルーム160、及び、ルーム160内のオブジェクトのすべてのインスタンスを削除することを可能にすることで、新しいルームを初期化すると、環境に類似する空の仮想環境にルームを戻す。選択すると、公開制御210は、ユーザ14が、匿名公開、ルームがプライベートであるか否か、ルームが編集可能か否かなど、ルーム設定メニュー170内の他の設定と一致する1つ又は複数のリポジトリにルーム160を公開することを可能にする。さらに、ルームを公開することにより、ルーム内のすべてのオブジェクトも公開され、これにより、サードパーティユーザが、すべてのカスタムオブジェクトを用いて十分に機能的なルームをダウンロード及び開設し、ユーザ14によりごく最近公開されたルームをミラーリングすることを可能にする。別の実施形態において、公開制御210を選択すると、ユーザ14には、リポジトリメニューが提示され、これにより、ルーム160が公開されているリポジトリをユーザが選択することを可能にする。ルーム設定メニュー170はまた、ユーザ14が環境構築システム内の異なるメニューを選択することを可能にする設定メニュー214、例えば、限定されることはないが、以下でさらに詳細に説明されるこれらのメニューを提供する。
【0069】
1つの実施形態において、ルーム160は、ルームに対するすべての設定、例えば、ルーム設定メニュー170内で調節されるこれらの設定、並びに、ルーム内のオブジェクトのすべてに対する参照を含むルームセーブファイルとしてセーブされ得る。ルーム内の各オブジェクトについて、ルームセーブファイルは、限定されることはないが、オブジェクトに対する開始位置、オブジェクトに対する開始ローテーション、オブジェクトに対する開始スケーリング、オブジェクトが重力による影響を受けるか否か、及び、オブジェクトが、掴むことが可能か否か、などを含むデフォルト設定を格納する。開始位置、開始ローテーション、開始スケーリング、及び、他の同様の特性などのオブジェクトのデフォルト設定は、位置決め又はスケーリングに関するX値、Y値、Z値などの3次元に対応する値、及び、オブジェクトに対する開始ローテーションの角回転値を有してよい。ルーム160は、ルーム名フィールド174の値でセーブされることにより、ユーザ14が、シンプルに認識可能なラベル、ルーム名を通じて、ルームを検索することを可能にする。
【0070】
1つの実施形態において、ルーム設定メニュー170は、さらに、ユーザ14が、セーブ名を有するセーブファイルに対するその現在の状態でルーム160をセーブすることを可能にするセーブ制御を含む。セーブ制御が選択された場合、セーブファイル場所スクリーンがロードされてよい、又は、ロードされなくてよく、ユーザ14が直近のセーブファイルとは異なるファイル場所にルーム160をセーブすることを可能にする。代替的に、ユーザ14がルーム160をセーブするセーブ制御を選択した場合、ルーム160は、直近のセーブファイルと同じセーブファイルに対してセーブされる。セーブファイルは、ルーム名フィールド174値と同一の名称が付されてよい、又は、セーブファイルは、さらに、セーブ名に日付スタンプを含んでよく、これにより、仮想環境を選択したユーザ14が、必要に応じて、前にセーブしたファイルを選択するためにロードすることを可能にする。1つの実施形態において、公開制御210が選択された場合、ルーム160は自動的にセーブされる、又は、セーブ確認スクリーンが出現して、セーブ制御が行うのと少なくとも同じオプションをユーザ14に提供する。
【0071】
ここで、図9を参照すると、仮想環境22内のルーム160のためのツールメニュー230の例示的な実施形態がそこに示される。ツールメニュー230は、一組の3次元オブジェクト操作ツールをリストアップしており、移動ツール234、回転ツール238、スケールツール242、インフォツール246、ワイヤツール250、グループ化ツール254、グループ化解除ツール258、複製ツール262、及び、消去ツール266を含む。ツールメニュー230はまた、取り消しツール270及び設定メニュー214を提供する。また、バーチャルハンド220a及び220b並びにカーソル224がルーム160内に示される。上記のツールのみがツールメニュー230にあげられる一方、ツールメニュー230は、ユーザ14に利用可能なツールの完全なリストではない。他のツールは、ユーザが、あるオブジェクトから別のオブジェクトへの寸法をコピーする、あるオブジェクトから別のオブジェクトへのテクスチャ又は色などの特性をコピーする、あるオブジェクトから別のオブジェクトへの1つ又は複数のオブジェクトアイテムをコピーする、その基本設定及び/又は他のオブジェクト操作に対するオブジェクトをリセットすることを可能にするものを含んでよい。さらに、ツールメニュー230内のツールの組織は、利便性のためのみであり、ツールは、他の構成において編成され得る。1つの実施形態において、ユーザ14は、ツールメニュー230内の1つ又は複数のツールを移動して、ユーザ14が最も便利だと思う順番にツールを再編成できる。
【0072】
移動ツール234は、ユーザ14がルーム160内のオブジェクトを選択し、そのオブジェクトをルーム160内の別の場所に移動させることを可能にする。同様に、回転ツール238は、ユーザ14が3次元空間内で選択されたオブジェクトを回転させることを可能にし、スケールツール242は、ユーザがルーム160内のオブジェクトをスケーリング、すなわち、そのサイズを拡大又は縮小することを可能にする。他のツールは、選択されたオブジェクトの特性及びメタデータを表示するインフォツール246、選択されたオブジェクト及びその子を複製する複製ツール262、及び、選択されたオブジェクト及びその子アイテムを消去する消去ツール266を含む。複合オブジェクトと共に作業する又はこれを作成するのに利用可能なツールは、さらに、座標リンク154を用いて共にワイヤオブジェクトを配線する方法をユーザに提供するワイヤツール250と、ユーザが、選択されたオブジェクトを有する複合オブジェクトを共に形成するオブジェクトの選択をグループ化することを可能にするグループ化ツール254と、複合オブジェクトをその構成オブジェクトに分離するグループ化解除ツール258とを含む。1つの実施形態において、グループ化解除ツール258はまた、オブジェクト及びそのアイテムを分離できる、すなわち、親コンテナから1つ又は複数のアイテムを除去でき、その結果、アイテムは、オブジェクトから独立し、オブジェクト自体とみなされる。ツールメニュー230はまた、ユーザ14がルーム160内の1つ又は複数のオブジェクトに対する直近の変更を取り消す、又は、無効にすることを可能にする取り消しツール270を提供する。同様に、ツールメニュー230は、設定メニュー214を含み、設定メニュー214は、環境構築システム内の異なるメニュー、例えば、限定されることはないが、(以下で詳細に説明される)ルーム設定メニュー170又はスクリプト化可能なメニュー340を、ユーザ14が選択することを可能にする。
【0073】
ここで、図10を参照すると、第2ユーザ316及び第3ユーザ320g、ユーザ14により展開及び所有される仮想環境22に接続することを可能する1つ又は複数のサーバ312上にホストされるオンラインリポジトリ304及び仮想環境コンポーネント308を有するネットワーク図300の例示的な実施形態を示す。仮想環境コンポーネント308は、ホストされる環境324及びユーザ状態同期コンポーネント328を備える。ホストされる環境324は、ユーザ14により所有される仮想環境であり、仮想現実世界オーサリングシステム10内からアップロード及びホストされるオンラインであってよい。ユーザ14は、他人、この場合、第2ユーザ316及び第3ユーザ320が、ホストされる環境324を結合することを可能にし得る。ユーザ14はまた、第2ユーザ316及び、第3ユーザ320が、ホストされる環境324、仮想環境22、仮想環境内の1つ又は複数のオブジェクトのいずれか、又は、仮想環境内の1つ又は複数のアイテムのいずれかを、そのユーザの個人リポジトリへ、又は、ユーザがアクセスした任意の他の環境へコピーするのを禁止し得る。ホストされる環境324又は仮想環境22などへのアクセスを制御することの許可は、例えば、アクセス制御リストなどの標準的なコンピュータ技術を用いて実装され得る。
【0074】
作成される任意のルームが永続的だと言われる、すなわち、ルームは、セーブされた場合、第1の時点でルーム内のすべてのオブジェクトの状況及び場所を格納し、ユーザが第2の時点でルームを開けた場合、ルーム内のすべてのオブジェクトの状況及び場所が、第1の時点と同じである。第1の時点の後の第2の時点において、ユーザ14は、設計モードでルーム160をロードし、ルーム160を編集できる。さらに、ユーザ14は、ルーム160をコピーして、第2のルームを作成できる。第2のルームにあるオブジェクト及びアイテムは、第2のルームが作成された時点でルーム160にあるすべてのオブジェクト及びアイテムと同じ状態及び場所を有する。
【0075】
1つの実施形態において、人が、ユーザ14に1つ又は複数のアクションモジュールを与え、又は、販売する、又は、1つ又は複数のリポジトリにアクションを提出することができるオンラインマーケットプレイスがある。新たなアクションモジュール又はアクションモジュールのセットを必要としているユーザ14は、追加のアクションモジュール又はアクションモジュールのセットが利用可能な1つ又は複数の追加のリポジトリに接続できる。リポジトリに接続することにより、ユーザ14は、ユーザの仮想環境22内での使用のためにリポジトリにおいて利用可能なアクションモジュール又はアクションモジュールのセットにアクセスする。
【0076】
ユーザ14又は他のユーザ14は、検索可能な1つ又は複数のルーム160を1つ又は複数のリポジトリ内で検索できる。1つの実施形態において、ユーザ14が匿名公開制御194を選択していなかった場合、ルーム名フィールド174及び/又はユーザのユーザ名又はハンドルに基づいて検索が実行され得る。他の実施形態において、ルーム160の重力レベル、テーマ及び/又は任意の他の検索可能な特性などの環境設定に対して、検索が行われ得る。
【0077】
第2ユーザ316又は第3ユーザ320がホストされる環境324に接続する場合、接続するユーザ316又は320は、オンラインリポジトリ304に自動的に接続して、ルーム160を結合する前に、ホストされる環境324を仮想化する必要があるルーム、オブジェクト及びアイテムをダウンロードする。接続するユーザ316及び/又は320がルーム160を結合する許可を有する場合、同様に、それぞれは、ルーム160内のオブジェクト及びアイテムのそれぞれに対する少なくとも読み取り許可を有する。
【0078】
さらに、第2ユーザ316又は第3ユーザ320がホストされる環境324に接続するために、仮想環境22内の接続するユーザの座標のそれぞれ、接続するユーザの必要な状態パラメータのそれぞれ、及び、すべてのオブジェクト及びアイテムは、ユーザ状態同期コンポーネント328を通じて同期され、ホストされる環境324内の1つ又は複数のユーザのそれぞれに送信される。したがって、ユーザ14がホストされる環境324内を移動する場合、第2ユーザ316及び第3ユーザ320の両方が、まるで、ユーザのそれぞれが他の人に直接会うことができたかのようなユーザ14の動きを観察する。ユーザ状態同期コンポーネント328は、さらに、互いに会って、ホストされる環境324の周りを移動し、音声又はオーディオ通信コンポーネントを利用して、互いにチャットし、オブジェクトを処理し、あるユーザから別のユーザにオブジェクトを伝送し、ホストされる環境324内の特定の3次元座標点で表示するノートを作成する能力を任意の接続されているユーザに提供する。
【0079】
1つの実施形態において、サーバ312は、ユーザの仮想環境生成コンポーネントのコンポーネントである。ここで、第2ユーザ316及び第3ユーザ320は、ネットワークを通じて、ユーザの仮想現実環境コンポーネントに接続する。以下でさらに論じられるように、ネットワークは、第2ユーザ316又は第3ユーザ320によるユーザの仮想環境生成コンポーネントへのアクセスを提供するインターネット、ローカルエリアネットワーク、又は、任意の他のデータ接続プロトコルとすることができる。
【0080】
仮想現実世界オーサリングシステム10は、ユーザ14が仮想環境22内のインタラクティブな複合オブジェクトを作成することを可能にするスクリプトビルダ38をユーザ14に提供する。仮想現実世界オーサリングシステム10は、アクションスクリプトの使用を通じて複合オブジェクトを作成すべく、ユーザ14にプログラミングコードを書き込ませる必要がない。
【0081】
ここで、図11を参照すると、スクリプト化可能なメニュー340の例示的な実施形態を有するルーム160の仮想環境22がそこに示されており、スクリプト化可能なメニュー340は、複数のスクリプタブル機能344a-nを有する。スクリプタブル機能は、少なくとも1つの入力及び少なくとも1つの出力を有するコンピュータ機能である。スクリプタブル機能は、アニメーション効果で、ある場所から別の場所へオブジェクトを移動させる移動スクリプタブル、3次元でオブジェクトの回転を記述するローテータスクリプタブル、オブジェクトの3次元位置を即座に設定するオブジェクト位置クリプタブル、オブジェクトに取り付けられるアクションスクリプトを無効にする無効スクリプタブルなどの動的な3次元オブジェクトを操作するために用いられる機能を含み得る。スクリプタブル機能はまた、数学関数を含んでよく、入力は、評価対象の値を含んでよく、出力は、数学関数の結果である。数学関数は、加算、乗算、論理積、論理和、排他的論理和、及び、論理否定を含んでよい。1つ又は複数の数学関数は、入力又は出力値をそれぞれ修正すべく、別のスクリプタブルの入力又は出力に接続され得る。他のスクリプタブル機能は、遅延又は常にオンなどの時間又は時間の経過に関連する機能を含んでよい。利用可能なスクリプタブル機能は、拡張され得る。例えば、ユーザ14が定型的にNAND論理演算を用いる場合、ユーザ14は、論理スクリプタブルでない機能出力を論理ANDスクリプタブル機能入力にリンクし、組み合わせられたスクリプタブル機能を新しいNANDスクリプタブル機能にセーブすることにより、新しいスクリプタブル機能を形成してよい。スクリプト化可能なメニュー340は、さらに、設定メニュー214を有し、設定メニュー214は、上述したようにユーザ14が、環境構築システム内の異なるメニュー、例えば、限定されることはないが、ルーム設定メニュー170又はツールメニュー230を選択することを可能にする。
【0082】
アクションスクリプトは、1つ又は複数のスクリプタブル機能を有するTuring-completeコンピュータプログラマブルコードのモジュールである。アクションスクリプトを利用することにより、ユーザ14は、コンピュータプログラミング言語を理解することなく、アクションモジュールと共に配線することにより複合オブジェクトを構築できる。
【0083】
ここで、図12を参照すると、スクリプトビルダの略図360の例示的な実施形態がそこに示される。ここで、(以下のさらなる詳細で論じられる)トリガオブジェクト42は、ルーム160内利用可能になる。トリガスクリプタブルアクション362がトリガオブジェクト42と関連付けられる。トリガスクリプタブルアクション出力364aは、スクリタブルコネクタ368aにより、ローテータスクリプタブルアクション344aに接続される。スクリタブルコネクタ368aは、トリガスクリプタブルアクション出力364aからローテータスクリプタブルアクションアクティブ入力372aへのパスの視覚的表現である。スクリタブルコネクタ368aを用いて第1の入力に第1の出力を接続することにより、ユーザ14は、第1の入力への入力値として、第1の出力の値を用いるように、スクリプトビルダ38に指示している。また、45度の静的ローテータスクリプタブルアクションX372bが示される、すなわち、45度は、3次元座標空間内の「x」方向に回転する度合いの数を表すローテータスクリプタブルアクション344aへの予め設定された入力である。ローテータスクリプタブルアクション344aはまた、「y」方向及び「z」方向への入力を受け入れる。ローテータスクリプタブルアクションオブジェクト出力364bは、スクリタブルコネクタ368aにより、バスタブオブジェクト26aのバスタブオブジェクト入力372cに接続される。ローテータスクリプタブルアクションオブジェクト出力364bを、バスタブオブジェクト26aのバスタブオブジェクト入力372cに接続することにより、ユーザ14は、ローテータスクリプタブルアクション344aが、バスタブオブジェクト26aに適用されること示すにより、トリガオブジェクト42がローテータスクリプタブルアクション344aを呼び出す場合、バスタブオブジェクト26aに、「x」方向に45度回転させる。トリガスクリプタブルアクション362をローテータスクリプタブルアクションアクティブ入力372aに接続することにより、ユーザ14は、ローテータスクリプタブルアクション344aがアクティブである場合、かつ、ローテータスクリプタブルアクション344aが、トリガスクリプタブルアクション362の出力に基づいて非アクティブである場合に構成することができる。接続されたトリガスクリプタブルアクション362、ローテータスクリプタブルアクション344a及びオブジェクト特性376は、バスタブオブジェクト26aの親コンテナにあるアイテムとして格納される第1のアクションスクリプトを作成する。スクリプトビルダの略図360がセーブされる場合、仮想現実世界オーサリングシステム10は、スクリプトビルダの略図360を処理し、当該略図をコンピュータ言語にコンパイルする。
【0084】
スクリプトビルダの略図360により示される同じ複合オブジェクトの挙動は、テキストスクリプトビルダを用いて作成され得る。ユーザ14が非常に傾いている場合、ユーザ14は、テキストスクリプトビルダを用いて、スクリプトビルダ38を用いて作成されるのと同じバスタブオブジェクト26aをプログラミングできる。第1のアクションスクリプトは、テキストエディタに書き込まれ、仮想環境22のルーム160にテキストファイルを後でインポートできる。仮想環境22がテキストファイルを受信した場合、仮想環境22は、第1のアクションスクリプトをスクリプトビルダの略図360に変換する。例示的なテキストファイルは、
//TriggeredRotator.act-commented out filename
[fActivated]>Trigger>[fTriggerCheck]
[fTriggerCheck 45 $ $]>Rotate>[aRotateAction]
であってよい。
【0085】
上記のコードにおいて、「fActivated」は、トリガスクリプタブルアクションに対する条件を受信し、fActivated機能結果を出力し、fTriggerCheck機能を呼び出す機能である。fTriggerCheck機能は、3つのパラメータ45 $ $を受信し、$はnull又は何もない値を表す。ローテートスクリプタブルアクションへの入力値は、バスタブオブジェクト26aのアクション入力への入力として、aRotateActionへの出力が処理される。
【0086】
いくつかの実施形態において、スクリプトビルダの略図360は、任意の他のスクリプタブルアクションに接続されていないスクリプタブルアクションを示してよい。この場合、その出力への接続がないスクリプタブルアクションは、オブジェクト26に対する効果が全くない。例えば、スクリプトビルダの略図360において、スクリタブルコネクタ368aがそこに無かった場合、トリガスクリプタブルアクション362の出力は、バスタブオブジェクト26aに対する効果はなく、これより、ローテータスクリプタブルアクションアクティブ入力372aが真に設定されていた場合、バスタブオブジェクト26aに連続的に回転させる。
【0087】
さらに、ユーザ14は、多くの別個のスクリプタブルアクションが関連する複合アクションスクリプトを作成することを望むかもしれない。1つの解決手段は、ユーザ14が、望ましいアクションスクリプトに類似する第2のアクションスクリプトを選択して、第2のアクションスクリプトをダウンロードし、軽微な変更を行い、望ましい結果を実現することである。さらに、ユーザ14がアクションスクリプトを検索して発見した場合、ユーザ14は、検索からアクションスクリプトを、ユーザ14がアクションを追加することを望む仮想環境22内のオブジェクト上にドラッグし得る。他の実施形態において、アクションスクリプトは、他の複雑な3次元アクションの間で、衝突回避及び/又はA*アルゴリズム経路追従などの複合アクションを含み得る。
【0088】
トリガオブジェクト42は、アクティブな場合、1つ又は複数のオブジェクト26に取り付けられる1つ又は複数のスクリプタブルアクションをアクティブにさせるトリガスクリプタブルアクション362を有するオブジェクトである。トリガスクリプタブルアクション362は、ユーザのアバターを含むオブジェクト26が、トリガオブジェクト42、又は、トリガオブジェクト42に着陸又はこれを通過するオブジェクト26に基づくユーザのアバターなどの予め規定された方式でトリガオブジェクト42と相互作用する場合にアクティブにされ得る。1つの実施形態において、相互作用は、1つ又は複数のオブジェクト26がトリガオブジェクト42条に積層され、1つ又は複数のオブジェクト26がトリガ閾値を上回る全質量又は重量を有する場合、トリガスクリプタブルアクション362がアクティブにされるように、物理エンジンにより決定され得る。このシナリオにおいて、オブジェクトの質量合計は、トリガスクリプタブルアクション362の入力に向けられる。他の実施形態において、トリガオブジェクト42と相互作用する1つ又は複数のオブジェクト26の任意の特性は、トリガスクリプタブルアクション362への入力として用いられてよい。
【0089】
アクションスクリプトは、スクリプトビルダ38により作成され、仮想環境22に対話性を追加するために用いられる。トリガスクリプタブルアクションを含むアクションスクリプトを作成することにより、ユーザ14は、プログラミングの知識を用いることなく、仮想環境内に複合オブジェクトを迅速かつ容易に作成できる。トリガの幅広く様々な使用がユーザの想像力のみにより拘束される一方、トリガを用いて、インタラクティブな複合オブジェクトを作成するいくつかの他の例は、押された場合、エレベータのドアが開くようなボタントリガオブジェクトにトリガを追加すること、銃の引き金が引かれた場合、銃が発砲するような銃の引き金にトリガを追加すること、又は、ユーザのアバターが出入り口閾値と交差する場合、クイズオブジェクトが閲覧可能になり、クイズオブジェクトにより存在するクイズに対する回答をユーザ14に要求するような交差トリガを出入り口に追加することを含む。別の実施形態において、トリガスクリプタブルアクション362への入力は、時間遅延が終了した場合、アクティブ信号が時間遅延スクリプタブルアクションの出力からトリガスクリプタブルアクションの入力へ送信されるような時間遅延スクリプタブルアクションであってよい。
【0090】
1つの実施形態において、衝突検出は、デフォルトでオブジェクト26に対して有効になっていない。衝突検出を有効にする代わりに、トリガオブジェクトが、オブジェクト26に対する階層的な又は親-子関係に加えられ、スケーリングされ、接続される。トリガオブジェクト42を追加して、オブジェクト26を取り囲むことにより、オブジェクト26と相互作用する任意のトリガオブジェクトは、まず、トリガオブジェクト42を通過して、次に、トリガスクリプタブルアクション362をアクティブにしなければならない。トリガオブジェクトがトリガオブジェクト42を入力した場合、そのトリガに対してentered()イベントがあげられ、entered()イベントメッセージが作成される。同様に、トリガオブジェクトがもはや交差していない場合、トリガオブジェクトは、exited()イベントが発生する。イベントハンドラ、及び、又は、メッセージレシーバは、entered()又はexited()イベント又はメッセージを処理し、トリガスクリプタブルアクションをアクティブにする。
【0091】
1つの実施形態において、物理エンジンの動的なシミュレーションは、物理学の計算された法則を衝突検出、ニュートンの第2法則及び重力、並びに、剛体力学に限定している。仮想環境22内のオブジェクト26が、物理特性がオンに設定され、かつ、有効な質量特性を有する場合、物理エンジンは、オブジェクト26を物理学シミュレーションにかける。物理エンジンの剛体力学シミュレーションは、オブジェクト26の角回転挙動を説明しなければならない。物理学の計算された法則の併用効果は、ほとんどの使用条件にリアルなシミュレーションを提供する。別の実施形態において、追加の物理シミュレーション、例えば、限定されることはないが、軟体力学及び/又は電磁力が利用される。
【0092】
いくつかの実施形態において、仮想現実世界オーサリングシステム10は、さらに、双方向状態API50を提供する。双方向状態API50は、実世界から仮想環境22に、及び、仮想環境22から実世界に双方向状態情報を提供する。双方向状態API50を実装する場合、実世界のオブジェクトは、仮想環境22内のプロキシとして動作するモデルオブジェクトにモデル化されてよい。1つの実施形態において、心拍モニタが、ユーザ14に取り付けされてよい。心拍モニタは、次に、双方向状態APIに接続され、心拍モニタから仮想環境22に心拍データを送信してよい。仮想環境22内の心拍モデルオブジェクトは、心拍データを入力として受信し、心拍モデルオブジェクトからの出力をディスプレイオブジェクトの入力に接続してよく、これにより、仮想環境22内のユーザの現実世界の心拍の表示をユーザ14に提供する。同様に、仮想環境22内からの情報は、仮想環境22の外部及び現実世界の内部へ伝送されることができる。例えば、ユーザのアバターのアーム動作データは、双方向状態API50を通じて、実世界に記録及び伝送されてよい。現実世界において、アーム動作データが収集され、仮想環境内のユーザのアバターの動きが現実世界内のロボットアームによりミラーリングされるように、ロボットアームに送信されてよい。
【0093】
双方向状態API50についてのそのような必要性の1つは、危険なエリア内でのリモートロボット操作である。1又は複数のカメラを有するロボットは、人間がアクセス不可能な、又は、人間に有害な危険なエリアに配備され得る。ロボット上の1又は複数のカメラは、現実世界からイメージを収集し、仮想環境にイメージを伝送することができる。仮想環境22は、次に、生成されるオブジェクトに対するテクスチャファイルとして現実世界のイメージを用いて、現実世界のイメージのオブジェクトを反映することができる。ロボットのアバターを有するユーザ14は、次に、オブジェクトと相互作用でき、そのような相互作用は、次に、ロボットのアバターの運動データを収集し、そのデータを双方向状態API50を通じてロボットに送り返することにより、現実世界にミラーリングされることができ、これにより、ロボットに、ロボットのアバターの動きを現実世界にミラーリングさせる。
【0094】
双方向状態API50は、イベント処理システムであり、それは、イベントをキューに置く。APIイベントは、システムにより送信及び受信されるべきメッセージに関連する。例えば、APIイベントハンドラは、以下の疑似コードを実装してよく、受信されたメッセージは、message_received機能と呼ばれ、送信されたメッセージは、message_sent機能と呼ばれる。
【0095】
switch(event.type)
{ case: "api_message_received:" api_message_recv(state);
case: "api_message_send" : api_message_send(object);
【0096】
上記機能の例示的な疑似コードは、
api_message_recv(state)
{ objectname = state.objectname
object = getobjectwithname(objectname)
object.property1 = state.property1
object.property2 = state.property2
object.property3 = state.property3
・・・..

api_message_send(object)
{ state = new state
state.objectname=object.name;
state.property1 = object.property1
state.property2 = object.property2
state.property3 = object.property3
・・・.
send_state(state)

として表現され得る。
【0097】
送信状態機能は、api_message_sendイベントが発生した場合に状態情報を送信する。それは、メッセージをラップ(wrap)し、それをシリアル化し、ネットワークを通じて送信することにより、接続型及びステートレス型の両方の様々なプロトコルのうちの任意の1つ又は複数を通じて、これを行うことができる。1つ又は複数のプロトコルは、http、https、telnet、web sockets、signalr、sockiet.io又はtcp/ipソケットを含んでよい。
【0098】
ここで、図13を参照すると、仮想現実世界オーサリングシステム10の例示的な実施形態がそこに示され、ユーザ14は、仮想環境22内にあり、仮想環境22は、複合バスケットボールオブジェクト380、バスケットボールオブジェクト382、バスケットボールトリガオブジェクト384、バスケットボールのゴールオブジェクト388及び複合バスケットボールリングオブジェクト392を有するバスケットボールのコートである。
【0099】
複合バスケットボールオブジェクト380を作成するために、ユーザ14は、バスケットボールの質感、バスケットボールの弾み音、例えば、質量及び弾力性などのバスケットボールの物理的な特定を格納するバスケットボールのメタデータアイテム、及び、弾みアクションスクリプトを含むアイテムを有するバスケットボールオブジェクト382を作成する ユーザ14はまた、バスケットボールトリガオブジェクト384を作成し、バスケットボールトリガオブジェクト384は、バスケットボールオブジェクトの半径より大きい半径を有する楕円体である。ユーザ14は、バスケットボールオブジェクト382及びバスケットボールトリガオブジェクト384をそれらの中心点に接続することにより、バスケットボールトリガオブジェクト384に、仮想環境22内にバスケットボールオブジェクト382を完全に包含させ、複合バスケットボールオブジェクト380を作成する。弾みアクションスクリプトは、弾みアクションを計算するために、質量及び弾力性、並びに、速度の値を含むバスケットボール用ボールの物理的特性を入力値として取り得る。
【0100】
複合バスケットボールオブジェクト380が弾むためには、複合バスケットボールオブジェクト380に対して作用する力がなければならず、したがって、バスケットボールトリガオブジェクト384に取り付けられるトリガスクリプタブルアクションと共に、衝突検出が実装される。衝突検出について、干渉するオブジェクトがバスケットボールトリガオブジェクト384と交差する場合、トリガイベントがあげられる。トリガハンドラは、イベントに応答して、トリガスクリプタブルアクションの入力を呼び出すことによりトリガスクリプタブルアクションをアクティブにする。ユーザ14がスクリプタブルメニューからトリガスクリプタブルアクションを選択した場合、衝突検出及びイベント処理が、トリガスクリプタブルアクションに対して自動的に実装される。ユーザ14は、次に、スクリプトビルダ38を入力できる。ここで、ユーザ14は、スクリタブルコネクタを用いて、バスケットボールトリガオブジェクト384のトリガスクリプタブルアクションの出力を、バスケットボールオブジェクト382の弾みスクリプタブルアクション上の入力に接続できる。弾みスクリプタブルアクションの他の入力は、干渉するオブジェクトの速度及び/又は質量を含んでよく、それにより、複合バスケットボールオブジェクトに影響を与えるべきではないトリガオブジェクト又は別のオブジェクトと、複合バスケットボールオブジェクト380が交差する場合に、弾みスクリプタブルアクションが、複合バスケットボールオブジェクト380を弾ませることを防止する。弾みスクリプタブルアクションの出力は、次に、第2のスクリプタブルコネクタによりバスケットボールオブジェクトに対して入力されるアクションに接続されることができ、トリガスクリプタブルアクションからバスケットボールオブジェクトに対する弾みスクリプタブルアクションへの接続により、トリガスクリプタブルアクションが衝突検出によりアクティブになった場合に、バスケットボール用ボールを弾ませる。
【0101】
同様に、複合バスケットボールリングオブジェクト392は、バスケットボールリングオブジェクトと、リムトリガスクリプタブルアクションを有するバスケットボールリングのトリガオブジェクトとの間の階層的関係を形成することにより作成され、バスケットボールリングのトリガオブジェクトは、リムにより囲まれる円形平面であり、両方のオブジェクトの中心点が接続される。ここで、衝突検出は、1つ又は複数の干渉するオブジェクトがバスケットボールリングのトリガオブジェクトと交差するか否かを再びテストする必要がある。トリガスクリプタブルアクションは、トリガスクリプタブルアクションが次のスクリプタブルアクションをアクティブにするため、交差するオブジェクトが複合バスケットボールオブジェクトであるという条件を有し得る。ユーザ14は、次に、スクリプトビルダ38を入力できる。ここで、ユーザ14は、スクリタブルコネクタを用いて、バスケットボールリングのトリガオブジェクトのリムトリガスクリプタブルアクションの出力を、スコアボードオブジェクトのゴールのスクリプタブルアクション上の入力に接続できる。ゴールのスクリプタブルアクションに対する他の入力は、どちらのチームが最後にボールのコントロールをしたのか、複合バスケットボールオブジェクト380がリリースされたコート上の場所などの複合バスケットボールオブジェクト380の特性である。ゴールのスクリプタブルアクションからの出力は、スコアを入れるポイントの数、及び、スコアを入れるチームを含んでよい。ゴールのスクリプタブルアクションの出力は、次に、第2のスクリプタブルコネクタにより、スコアボードオブジェクト上に入力されるアクションに接続されることができ、リムトリガスクリプタブルアクションからスコアボードオブジェクトに対するゴールのスクリプタブルアクションへの接続により、リムトリガスクリプタブルアクションが衝突検出によりアクティブになった場合に、スコアボードにスコアを変更させる。
【0102】
ここで、図14を参照すると、1つ又は複数のコンピュータシステム400上で実行される仮想現実世界オーサリングシステム10の例示的な実施形態が示される。コンピュータシステム400は、それぞれがコンピュータプロセッサ408を有する1つ又は複数の処理コンポーネント404と、1つ又は複数の非一時的メモリ412とを備えてよく、1つ又は複数の通信コンポーネント416を含んでよい(又は、これらと通信可能に連結される)。非一時的メモリ412は、仮想現実世界オーサリングシステム10を実装するコンピュータコードを格納してよい。コンピュータシステム400は、処理コンポーネント404間の双方向通信を可能にするネットワーク420、1つ又は複数のVRヘッドセット18、及び/又は、サーバシステム424を含んでよい。コンピュータプロセッサ408又は複数のコンピュータプロセッサ408は、単一の物理的な場所に配置されてよい、又は、必ずしも、単一の物理的な場所に配置されていなくてよい。1つの実施形態において、処理コンポーネント404は、VRヘッドセット18と統合される。
【0103】
1つの実施形態において、ネットワーク420は、インターネットであり、VRヘッドセット18は、通信コンポーネント416を介してコンピュータプロセッサ408とインタフェース接続する。しかしながら、ネットワーク420は、ほぼすべてのタイプのネットワークであってよく、ワールドワイドウェブ(又は、インターネット)として、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンネットワーク、無線ネットワーク、セルラーネットワーク、Bluetoothネットワーク、グローバルシステムフォーモバイルコミュニケーションズ(GSM(登録商標))ネットワーク、符号分割多元接続(CDMA)ネットワーク、3Gネットワーク、4Gネットワーク、5Gネットワーク、衛星ネットワーク、無線ネットワーク、光ネットワーク、ケーブルネットワーク、公衆交換電話網、イーサネット(登録商標)ネットワーク、それらの組み合わせ、及び/又は同様のものを実装してよいことを留意されたい。近い将来、本開示の実施形態が、より高度なネットワーキングトポロジーを用い得ることが考えられる。
【0104】
1つの実施形態において、コンピュータプロセッサ408及び非一時的メモリ412を有する処理コンポーネント404は、商用ウェブサイト及び/又はデータセンタなどの商用コンピュータベースのビジネスシステムを提供するのに適切な構成で複数のサーバを有するサーバシステム424を用いて実装されてよい。
【0105】
以下は、本明細書で開示される本発明の概念の非限定的で例示的な実施形態の番号リストである。
【0106】
1.プロセッサと、
仮想フィードバックスクリーンを有するヘッドセットと、
1つ又は複数のユーザインタフェースデバイスと、
コンピュータ実行可能コードを格納する非一時的コンピュータ可読媒体と
を備え、
コンピュータ実行可能コードは、プロセッサにより実行される場合、プロセッサに、
複合現実環境をヘッドセットに投影する手順であって、複合現実環境は、1つ又は複数のオブジェクトを有し、1つ又は複数のオブジェクトのそれぞれは、1つ又は複数のオブジェクトが複合現実環境内でどのように相互作用するかを定義する特性を有するオブジェクトコンピュータコードにより作成される、手順と、
少なくとも1つのユーザインタフェースデバイスからの第1の入力に応じて、予め規定されたアクションモジュールのリストを有する仮想フィードバックスクリーン上にアクションメニューを表示する手順であって、アクションモジュールは、1つ又は複数の機能を有するコンピュータ実行可能コードのモジュールを含み、1つ又は複数の機能は、複合現実環境内の1つ又は複数のオブジェクトの第1のオブジェクトの1つ又は複数の属性に影響を与えるように構成される、手順と、
選択されたアクションモジュールを含むように、第1のオブジェクトのオブジェクトコンピュータコードを更新する手順と
を実行させる、電子デバイス。
【0107】
2.第1のオブジェクトは、第1の入力の前に識別される、例示的な実施形態1の電子デバイス。
【0108】
3.第1のオブジェクトは、第1の入力の後に識別される、例示的な実施形態1の電子デバイス。
【0109】
4.非一時的コンピュータ可読媒体は、プロセッサにより実行される場合、プロセッサに、トリガイベントに応じて、選択されたアクションモジュールを含むように第1のオブジェクトのオブジェクトコンピュータコードを更新する手順を実行させるコンピュータ実行可能コードを格納する、例示的な実施形態1-3のいずれか1つの電子デバイス。
【0110】
5.ユーザがトリガオブジェクトと相互作用することにより、予め決定されたトリガ条件を満たす場合、トリガイベントがあげられる、例示的な実施形態4の電子デバイス。
【0111】
6.非一時的コンピュータ可読媒体は、プロセッサにより実行される場合、プロセッサに、トリガメニューから特定のトリガオブジェクトを選択する少なくとも1つのユーザインタフェースデバイスからの第2の入力に応じて、トリガオブジェクトに対する1つ又は複数のトリガ条件のリストを有するトリガ条件メニューを表示する手順と、トリガオブジェクトに対する第1のトリガ条件の選択に応じて、ユーザがトリガオブジェクトを複合現実環境に配置することを可能にする手順を実行させるコンピュータ実行可能コードを格納し、トリガ条件は、満たされた場合、プロセッサに、選択されたアクションモジュールを含むように、第1のオブジェクトのオブジェクトコンピュータコードを更新させる、例示的な実施形態1-5のいずれか1つの電子デバイス。
【0112】
7.プロセッサと、
仮想フィードバックスクリーンを有するヘッドセットと、
1つ又は複数のユーザインタフェースデバイスと、
コンピュータ実行可能コードを格納する非一時的コンピュータ可読媒体と
を備え、
コンピュータ実行可能コードは、プロセッサにより実行される場合、プロセッサに、
複合現実環境をヘッドセットに投影する手順であって、複合現実環境は、1つ又は複数のオブジェクトを有し、1つ又は複数のオブジェクトのそれぞれは、1つ又は複数のオブジェクトが複合現実環境内でどのように相互作用するかを定義する特性を有するオブジェクトコンピュータコードにより作成される、手順と、
トリガメニューから特定のトリガオブジェクトを選択する少なくとも1つのユーザインタフェースデバイスからの第1の入力に応じて、トリガオブジェクトに対する1つ又は複数のトリガ条件のリストを有するトリガ条件メニューを表示する手順と、トリガオブジェクトに対する第1のトリガ条件の選択に応じて、ユーザがトリガオブジェクトを複合現実環境に配置することを可能にする、手順と
を実行させる、電子デバイス。
【0113】
8.トリガオブジェクトは、第1の入力の前に識別される、例示的な実施形態7の電子デバイス。
【0114】
9.トリガオブジェクトは、第1の入力の後に識別される、例示的な実施形態7の電子デバイス。
【0115】
10.非一時的コンピュータ可読媒体は、プロセッサにより実行される場合、プロセッサに、トリガイベントに応じて、選択されたアクションモジュールを含むように、トリガオブジェクトのオブジェクトコンピュータコードを更新する手順を実行させるコンピュータ実行可能コードを格納する、例示的な実施形態7-9のいずれか1つの電子デバイス。
【0116】
11.ユーザがトリガオブジェクトと相互作用することにより、予め決定されたトリガ条件を満たす場合、トリガイベントがあげられる、例示的な実施形態10の電子デバイス。
【0117】
12.プロセッサにより実行される場合、プロセッサに、
複合現実環境をヘッドセットに投影する手順であって、複合現実環境は、1つ又は複数のオブジェクトを有し、1つ又は複数のオブジェクトのそれぞれは、1つ又は複数のオブジェクトが複合現実環境内内でどのように相互作用するかを定義する特性を有するオブジェクトコンピュータコードにより作成される、手順と、
少なくとも1つのユーザインタフェースデバイスからの第1の入力に応じて、予め規定されたアクションモジュールのリストを有する仮想フィードバックスクリーン上にアクションメニューを表示する手順であって、アクションモジュールは、1つ又は複数の機能を有するコンピュータ実行可能コードのモジュールを含み、1つ又は複数の機能は、複合現実環境内の1つ又は複数のオブジェクトの第1のオブジェクトの1つ又は複数の属性に影響を与えるように構成される、手順と、
選択されたアクションモジュールを含むように、第1のオブジェクトのオブジェクトコンピュータコードを更新する手順と
を実行させるコンピュータ実行可能コードを格納する非一時的コンピュータ可読媒体。
【0118】
13.第1のオブジェクトは、第1の入力の前に識別される、例示的な実施形態12の非一時的コンピュータ可読媒体。
【0119】
14.第1のオブジェクトは、第1の入力の後に識別される、例示的な実施形態12の非一時的コンピュータ可読媒体。
【0120】
15.非一時的コンピュータ可読媒体は、プロセッサにより実行される場合、プロセッサに、トリガイベントに応じて、選択されたアクションモジュールを含むように第1のオブジェクトのオブジェクトコンピュータコードを更新する手順を実行させるコンピュータ実行可能コードを格納する、例示的な実施形態12-14のいずれか1つの非一時的コンピュータ可読媒体。
【0121】
16.ユーザがトリガオブジェクトと相互作用することにより、予め決定されたトリガ条件を満たす場合、トリガイベントがあげられる、例示的な実施形態15の非一時的コンピュータ可読媒体。
【0122】
17.非一時的コンピュータ可読媒体は、プロセッサにより実行される場合、プロセッサに、トリガメニューから特定のトリガオブジェクトを選択する少なくとも1つのユーザインタフェースデバイスからの第2の入力に応じて、トリガオブジェクトに対する1つ又は複数のトリガ条件のリストを有するトリガ条件メニューを表示する手順と、トリガオブジェクトに対する第1のトリガ条件の選択に応じてユーザがトリガオブジェクトを複合現実環境に配置することを可能にする手順と、を実行させるコンピュータ実行可能コードを格納し、トリガ条件は、満たされた場合、プロセッサに、選択されたアクションモジュールを含むように、第1のオブジェクトのオブジェクトコンピュータコードを更新させる、例示的な実施形態12-16のいずれか1つの非一時的コンピュータ可読媒体。
【0123】
18. プロセッサと、
仮想フィードバックスクリーンを有するヘッドセットと、
1つ又は複数のユーザインタフェースデバイスと、
コンピュータ実行可能コードを格納する非一時的コンピュータ可読媒体と
を備え、
コンピュータ実行可能コードは、プロセッサにより実行される場合、プロセッサに、
仮想現実環境をヘッドセットに投影する手順であって、仮想現実環境は、1つ又は複数のオブジェクトを有し、1つ又は複数のオブジェクトのそれぞれは、1つ又は複数のオブジェクトが仮想現実環境内でどのように相互作用するかを定義する特性を有するコンテナにより作成され、1つ又は複数のオブジェクトは、1つ又は複数のオブジェクトの境界を定義する座標を有する3次元メッシュを有する、手順と、
1つ又は複数のオブジェクトの第1のオブジェクトを選択する手順と、
少なくとも1つのユーザインタフェースデバイスからの第1の入力に応じて、仮想フィードバックスクリーン上に、仮想現実環境内のアクションメニューを表示する手順であって、アクションメニューは、予め定義されたアクションスクリプトのリストを有し、アクションスクリプトは、1つ又は複数の機能を有するコンピュータ実行可能コードのモジュールを含み、1つ又は複数の機能は、仮想現実環境内の1つ又は複数のオブジェクトのうちの第1のオブジェクトの1つ又は複数の属性に影響を与えるように構成される、手順と、
選択されたアクションスクリプトを含むように、第1のオブジェクトのコンテナを更新する手順と
を実行させる、電子デバイス。
【0124】
19.第1のオブジェクトは、第1の入力の前に識別される、例示的な実施形態18の電子デバイス。
【0125】
20.第1のオブジェクトは、第1の入力の後に識別される、例示的な実施形態18の電子デバイス。
【0126】
21.非一時的コンピュータ可読媒体は、プロセッサにより実行される場合、プロセッサに、トリガイベントに応じて、選択されたアクションスクリプトを含ように第1のオブジェクトのコンテナを更新する手順を実行させるコンピュータ実行可能コードを格納する、例示的な実施形態18-20のいずれか1つの電子デバイス。
【0127】
22.ユーザがトリガオブジェクトと相互作用することにより、予め決定されたトリガ条件を満たす場合、トリガイベントがあげられる、例示的な実施形態21の電子デバイス。
【0128】
23.非一時的コンピュータ可読媒体は、プロセッサにより実行される場合、プロセッサに、トリガメニューから特定のトリガオブジェクトを選択する少なくとも1つのユーザインタフェースデバイスからの第2の入力に応じて、トリガオブジェクトに対する1つ又は複数のトリガ条件のリストを有するトリガ条件メニューを表示する手順と、トリガオブジェクトに対する第1のトリガ条件の選択に応じて、ユーザがトリガオブジェクトを仮想現実環境に配置することを可能にする手順とを実行させるコンピュータ実行可能コードを格納し、トリガ条件は、満たされた場合、プロセッサに、選択されたアクションスクリプトを含むように、第1のオブジェクトのコンテナを更新させる、例示的な実施形態18-22のいずれか1つの電子デバイス。
【0129】
24.プロセッサと、
仮想フィードバックスクリーンを有するヘッドセットと、
1つ又は複数のユーザインタフェースデバイスと、
コンピュータ実行可能コードを格納する非一時的コンピュータ可読媒体と
を備え、
コンピュータ実行可能コードは、プロセッサにより実行される場合、プロセッサに、
仮想現実環境をヘッドセットに投影する手順であって、仮想現実環境は、1つ又は複数のオブジェクトを有し、1つ又は複数のオブジェクトのそれぞれは、1つ又は複数のオブジェクトが仮想現実環境内でどのように相互作用するかを定義する特性を有するコンテナにより作成される、手順と、
少なくとも1つのユーザインタフェースデバイスからの入力に応じて、トリガメニューから選択されたトリガオブジェクトを、1つ又は複数のオブジェクトのうちの特定のオブジェクトに接続することで、複合オブジェクトを形成する手順であって、複合オブジェクトは、1つ又は複数のアクションスクリプトを含み、トリガオブジェクトに対する1つ又は複数のトリガスクリプタブルアクションを有するスクリプタブルメニューを、仮想フィードバックスクリーン上の仮想現実環境に表示する、手順と、
トリガオブジェクトに対するトリガスクリプタブルアクションの選択に応じて、ユーザがトリガオブジェクトを仮想現実環境に配置することを可能にし、複合オブジェクトの1つ又は複数のアクションスクリプトにトリガスクリプタブルアクションを関連付ける手順と
を実行させる、電子デバイス。
【0130】
25.トリガオブジェクトは、入力の前に識別される、例示的な実施形態24の電子デバイス。
【0131】
26.トリガオブジェクトは、入力の後に識別される、例示的な実施形態24の電子デバイス。
【0132】
27. 非一時的コンピュータ可読媒体は、プロセッサにより実行される場合、プロセッサに、トリガイベントに応じて、アクションスクリプトをアクティブにするように複合オブジェクトを更新する手順を実行させるコンピュータ実行可能コードを格納する、例示的な実施形態24-26のいずれか1つの電子デバイス。
【0133】
28.ユーザがトリガオブジェクトと相互作用することにより、予め決定されたトリガ条件を満たす場合、トリガイベントがあげられる、例示的な実施形態27の電子デバイス。
【0134】
29.プロセッサにより実行される場合、プロセッサに、
仮想現実環境をヘッドセットに投影する手順であって、仮想現実環境は、1つ又は複数のオブジェクトを有し、1つ又は複数のオブジェクトのそれぞれは、1つ又は複数のオブジェクトが仮想現実環境内でどのように相互作用するかを定義する特性を有するコンテナにより作成され、1つ又は複数のオブジェクトは、1つ又は複数のオブジェクトの境界を定義する座標を有する3次元メッシュを有する、手順と、
仮想現実環境内の1つ又は複数のオブジェクトのうちの第1のオブジェクトを選択する少なくとも1つのユーザインタフェースデバイスからの第1の入力に応じて、予め定義されたアクションスクリプトのリストを有する仮想フィードバックスクリーン上にアクションメニューを表示する手順であって、アクションスクリプトは、1つ又は複数の機能を有するコンピュータ実行可能コードのモジュールを含み、1つ又は複数の機能は、仮想現実環境内の1つ又は複数のオブジェクトのうちの第1のオブジェクトの1つ又は複数の属性に影響を与えるように構成される、手順と、
選択されたアクションスクリプトを含むように、第1のオブジェクトのコンテナを更新する手順と
を実行させるコンピュータ実行可能コードを格納する非一時的コンピュータ可読媒体。
【0135】
30.第1のオブジェクトは、第1の入力の前に識別される、例示的な実施形態29の非一時的コンピュータ可読媒体。
【0136】
31.第1のオブジェクトは、第1の入力の後に識別される、例示的な実施形態29の非一時的コンピュータ可読媒体。
【0137】
32.非一時的コンピュータ可読媒体は、プロセッサにより実行される場合、プロセッサに、トリガイベントに応じて、選択されたアクションスクリプトを含むように第1のオブジェクトのコンテナを更新する手順を実行させるコンピュータ実行可能コードを格納する例示的な実施形態29-31のいずれか1つの非一時的コンピュータ可読媒体。
【0138】
33.ユーザがトリガオブジェクトと相互作用することにより、予め決定されたトリガ条件を満たす場合、トリガイベントがあげられる、例示的な実施形態32の非一時的コンピュータ可読媒体。
【0139】
34.非一時的コンピュータ可読媒体は、プロセッサにより実行される場合、プロセッサに、トリガメニューから特定のトリガオブジェクトを選択する少なくとも1つのユーザインタフェースデバイスからの第2の入力に応じて、トリガオブジェクトに対する1つ又は複数のトリガ条件のリストを有するトリガ条件メニューを表示する手順と、トリガオブジェクトに対する第1のトリガ条件の選択に応じて、ユーザがトリガオブジェクトを仮想現実環境に配置することを可能にする手順とを実行させるコンピュータ実行可能コードを格納し、トリガ条件は、満たされた場合、プロセッサに、選択されたアクションスクリプトを含むように第1のオブジェクトのコンテナを更新させる、例示的な実施形態29-33のいずれか1つの非一時的コンピュータ可読媒体。
【0140】
上記の説明及び例から、本明細書において開示され請求される本発明の概念は、本明細書で言及される利点を獲得するために十分に適合される。本発明の概念の例示的な実施形態が、本開示の目的のために説明されてきたが、当業者にそれら自体を容易に示唆し、本明細書において開示及び請求される本発明の概念の主旨の範囲内で遂行される多数の変更が行われ得ることが理解される。例示的な目的として、バスケットボールのコートのVR環境の例、及び、車両の複合オブジェクトの例が用いられているが、しかしながら、例は、例示的な目的のみのためであり、本発明の範囲を限定するものとして解釈されるべきではないことが理解されるべきである。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
【国際調査報告】