(57)【要約】【課題】１つ以上の態様に従って、共通バーチャル環境に基づいて種々のバーチャル環境視点を提供するシステム及び方法が、本開示に記載される。【解決手段】バーチャル環境座標に関連付けられた第１のバーチャルオブジェクト、第１のバーチャル環境モードに対応する第１の関数セット、及び第２のバーチャル環境モードに対応する第２の関数セットを含む、バーチャル環境に関連付けられたバーチャル環境モデルを、データベースに格納することができる。バーチャル環境エンジンは、第１のバーチャル環境モードに基づき、第１のバーチャルオブジェクトの第１のバーチャル環境ビューを生成するとともに、第２のバーチャル環境モードに基づき、第１のバーチャルオブジェクトの第２のバーチャル環境ビューを生成することができる。第１のバーチャル環境ビュー及び第２のバーチャル環境ビューは、別々のデバイスで並行してそれぞれレンダリングされる。【選択図】図１
2019087235.tif 000002
【特許請求の範囲】
【請求項１】
共通バーチャル環境に基づいて種々のバーチャル環境視点を提供するシステムであって、
バーチャル環境座標に関連付けられた第１のバーチャルオブジェクト、第１のバーチャル環境モードに対応する第１の関数セット、及び第２のバーチャル環境モードに対応する第２の関数セットを含む、バーチャル環境に関連付けられたバーチャル環境モデルを格納するデータベースと、
１つ以上の命令を格納するメモリと、
前記メモリに格納された前記命令の１つ以上を実行して、
前記第１のバーチャル環境モードに基づいて前記第１のバーチャルオブジェクトの第１のバーチャル環境ビューを生成すること、及び
前記第２のバーチャル環境モードに基づいて前記第１のバーチャルオブジェクトの第２のバーチャル環境ビューを生成することを行うバーチャル環境エンジンを備えるプロセッサとを備え、
前記第１のバーチャル環境ビュー及び前記第２のバーチャル環境ビューが、別々のデバイスでそれぞれ並行してレンダリングされ、
前記第１のバーチャルオブジェクトが、前記第１のバーチャル環境ビュー内の第１のレンダリングと、前記第２のバーチャル環境ビュー内の、前記第１のレンダリングと異なった第２のレンダリングとを有する、前記システム。
【請求項２】
前記第１のバーチャルオブジェクトの前記第１のバーチャル環境ビューが、第１のデバイスでレンダリングされ、
前記第１のバーチャルオブジェクトの前記第２のバーチャル環境ビューが、第２のデバイスでレンダリングされる、請求項１に記載のシステム。
【請求項３】
前記第１のデバイス及び前記第１のバーチャル環境モードが、第１のタイプのユーザに関連付けられ、
前記第２のデバイス及び前記第２のバーチャル環境モードが、第２のタイプのユーザに関連付けられた、請求項２に記載のシステム。
【請求項４】
前記ユーザのタイプが、ユーザに関連付けられた人口統計、またはゲームジャンル、選択したゲーム、選択したアバタ、ゲーム評点、以前のゲームプレイに関連付けられた前記ユーザによってなされた選択に基づいて定義される、請求項３に記載のシステム。
【請求項５】
前記第１のバーチャルオブジェクトが第１のユーザであり、
前記第１のユーザの前記第１のレンダリングが、第１のスキンを用いてレンダリングされ、
前記第１のユーザの前記第２のレンダリングが、第２のスキンを用いてレンダリングされる、請求項１に記載のシステム。
【請求項６】
前記第１の関数セットが第１の対話関数を含み、
前記第２の関数セットが第２の対話関数を含む、請求項５に記載のシステム。
【請求項７】
前記第１のバーチャル環境モード及び前記第２のバーチャル環境モードが、バーチャル環境モードデータ型である、請求項１に記載のシステム。
【請求項８】
前記データベースが、前記第１のバーチャル環境モード及び前記第２のバーチャル環境モードに基づき、前記第１のバーチャル環境ビューまたは前記第２のバーチャル環境ビューを生成する関数を含むビュークラスノードを、それぞれ前記バーチャル環境モードデータ型として格納した、請求項７に記載のシステム。
【請求項９】
前記バーチャル環境が、バーチャル環境座標、前記第１のバーチャル環境モードに対応する第１の関数セット、及び前記第２のバーチャル環境モードに対応する第２の関数セットに関連付けられた第２のバーチャルオブジェクトを含む、請求項１に記載のシステム。
【請求項１０】
前記プロセッサが、
前記第１のバーチャル環境モードに基づき、前記第２のバーチャルオブジェクトの前記第１のバーチャル環境ビューを生成するとともに、
前記第２のバーチャル環境モードに基づき、前記第２のバーチャルオブジェクトの前記第２のバーチャル環境ビューを生成し、
前記第２のバーチャルオブジェクトの前記第１のバーチャル環境ビュー及び前記第２のバーチャル環境ビューが、前記別々のデバイスでそれぞれ並行してレンダリングされる、請求項９に記載のシステム。
【請求項１１】
前記第２のバーチャルオブジェクトが、操作できないキャラクタである、請求項９に記載のシステム。
【請求項１２】
前記第１の関数セットが、前記第２の関数セットと１対１のトリガの対応を有した、請求項１に記載のシステム。
【請求項１３】
前記第１の関数セットが、前記第２の関数セットと１対１のアニメーションの対応を有した、請求項１に記載のシステム。
【請求項１４】
前記第１の関数セットが、前記第２の関数セットと１対１の引数の対応を有した、請求項１に記載のシステム。
【請求項１５】
共通バーチャル環境に基づいて種々のバーチャル環境視点を提供するシステムであって、
バーチャル環境座標に関連付けられたバーチャルオブジェクト、第１のバーチャル環境モードに対応する第１の関数、及び第２のバーチャル環境モードに対応する第２の関数を含む、バーチャル環境に関連付けられたバーチャル環境モデルを格納するデータベースと、
１つ以上の命令を格納するメモリと、
前記メモリに格納された前記命令の１つ以上を実行して、
前記第１のバーチャル環境モードの第１のバーチャル環境スキンに基づいて、前記バーチャルオブジェクトの第１のバーチャル環境ビューを生成すること、及び
前記第１のバーチャル環境スキンとは異なった、前記第２のバーチャル環境モードの第２のバーチャル環境スキンに基づいて、前記バーチャルオブジェクトの第２のバーチャル環境ビューを生成することを行うバーチャル環境エンジンを備えるプロセッサとを備え、
前記第１のバーチャル環境ビュー及び前記第２のバーチャル環境ビューが、別々のデバイスで並行してレンダリングされる、前記システム。
【請求項１６】
前記バーチャルオブジェクトの前記第１のバーチャル環境ビューの前記第１のバーチャル環境スキンが、第１の寸法に関連付けられ、
前記バーチャルオブジェクトの前記第２のバーチャル環境ビューの前記第２のバーチャル環境スキンが、前記第１の寸法と異なった第２の寸法に関連付けられた、請求項１５に記載のシステム。
【請求項１７】
共通バーチャル環境に基づいて種々のバーチャル環境視点を提供するシステムであって、
バーチャル環境座標に関連付けられたバーチャルオブジェクト、第１のバーチャル環境モードに対応する第１の関数、及び第２のバーチャル環境モードに対応する第２の関数を含む、バーチャル環境に関連付けられたバーチャル環境モデルを格納するデータベースと、
１つ以上の命令を格納するメモリと、
前記メモリに格納された前記命令の１つ以上を実行して、前記第１のバーチャル環境モードに基づき、前記バーチャルオブジェクトの第１のバーチャル環境ビューのレンダリングを行うバーチャル環境エンジンを備えた第１のデバイスと、
前記メモリに格納された前記命令の１つ以上を実行して、前記第２のバーチャル環境モードに基づき、前記バーチャルオブジェクトの第２のバーチャル環境ビューのレンダリングを行うバーチャル環境エンジンを備えた第２のデバイスとを備え、
前記第１のバーチャル環境ビュー及び前記第２のバーチャル環境ビューが、それぞれのデバイスによって並行してレンダリングされ、
前記バーチャルオブジェクトが、前記第１のバーチャル環境ビュー内で第１のオブジェクトとしてレンダリングされ、前記バーチャルオブジェクトが、前記第２のバーチャル環境ビュー内で、前記第１のオブジェクトとは異なる第２のオブジェクトとしてレンダリングされる、前記システム。
【請求項１８】
前記第１のデバイスが、第１の入力及び第２の入力に関連付けられ、
前記第２のデバイスが、第１の入力及び第２の入力に関連付けられた、請求項１７に記載のシステム。
【請求項１９】
前記第１のデバイスでの前記第１の入力の受け取りが、前記第１の関数をトリガし、
前記第２のデバイスでの前記第１の入力の受け取りが、前記第２の関数をトリガする、請求項１８に記載のシステム。
【請求項２０】
前記第１の関数及び第２の関数が、対応するアニメーションを有した、請求項１７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、共通バーチャル環境からの種々の視点に関するものである。
【背景技術】
【０００２】
真に没入型のバーチャルリアリティシステム及び拡張現実システムは、ユーザの知覚系統をコンピュータで生成された刺激（例えば、バーチャル世界ビューまたはバーチャル環境ビュー）に没入させる環境を作り出すことができる。一般に、これらの没入型システムは、物質的世界からの刺激を遮断しながら、ユーザの感覚を捕らえることができる。バーチャル世界は、ユーザからの入力及び／またはユーザとバーチャル世界とのインタラクションを受けて、変わることができる。
【０００３】
これらのシステムの目標は、没入型環境を作り出すことであるが、没入型環境のコンテキストを提供するために物質的世界を引き続き使用することができる。特に、ユーザの環境及びコンテキストを考慮に入れることが重要な場合がある。例えば、車両内のユーザというコンテキストの中で、没入型のバーチャルリアリティシステム及び拡張現実システムでは、ユーザ、車両、及び車両との関係を含めたユーザについての情報を考慮に入れることができる。この情報は、ユーザ及びユーザの環境に合わせてカスタマイズされる没入型環境を生成するのに使用され、ユーザが没入型環境を快適に知覚できるようにすることができる。
【発明の概要】
【課題を解決するための手段】
【０００４】
１つ以上の態様によれば、共通バーチャル環境に基づいて種々のバーチャル環境視点を提供するシステムは、データベースと、メモリと、バーチャル環境エンジンを備えたプロセッサとを備えることができる。データベースは、バーチャル環境に関連付けられたバーチャル環境モデルを格納することができる。バーチャル環境モデルは、バーチャル環境座標に関連付けられた第１のバーチャルオブジェクト、第１のバーチャル環境モードに対応する第１の関数セット、及び第２のバーチャル環境モードに対応する第２の関数セットを含む。メモリは、１つ以上の命令を格納することができる。プロセッサのバーチャル環境エンジンは、メモリに格納された命令の１つ以上を実行して、第１のバーチャル環境モードに基づいて第１のバーチャルオブジェクトの第１のバーチャル環境ビューを生成するとともに、第２のバーチャル環境モードに基づいて第１のバーチャルオブジェクトの第２のバーチャル環境ビューを生成することができる。第１のバーチャル環境ビュー及び第２のバーチャル環境ビューは、別々のデバイスでそれぞれ並行してレンダリングされる。第１のバーチャルオブジェクトは、第１のバーチャル環境ビュー内の第１のレンダリングと、第２のバーチャル環境ビュー内の、第１のレンダリングと異なった第２のレンダリングとを有する。
【０００５】
第１のバーチャルオブジェクトの第１のバーチャル環境ビューは第１のデバイスでレンダリングされ、第１のバーチャルオブジェクトの第２のバーチャル環境ビューは第２のデバイスでレンダリングされ得る。第１のデバイス及び第１のバーチャル環境モードは第１のタイプのユーザに関連付けられてもよく、第２のデバイス及び第２のバーチャル環境モードは第２のタイプのユーザに関連付けられてもよい。ユーザのタイプは、ユーザに関連付けられた人口統計、またはゲームジャンル、選択したゲーム、選択したアバタ、ゲーム評点、以前のゲームプレイに関連付けられたユーザによってなされた選択に基づいて定義することができる。
【０００６】
第１のバーチャルオブジェクトは、第１のユーザであってよい。第１のユーザの第１のレンダリングは、第１のスキンを用いてレンダリングすることができ、第１のユーザの第２のレンダリングは、第１のスキンを用いてレンダリングすることができる。第１の関数セットは第１の対話関数を含むことができ、第２の関数セットは第２の対話関数を含むことができる。第１のバーチャル環境モード及び第２のバーチャル環境モードは、バーチャル環境モードデータ型とすることができる。データベースは、第１のバーチャル環境モード及び第２のバーチャル環境モードに基づき、第１のバーチャル環境ビューまたは第２のバーチャル環境ビューを生成する関数を含むビュークラスノードを、それぞれバーチャル環境モードデータ型として格納することができる。
【０００７】
バーチャル環境は、バーチャル環境座標、第１のバーチャル環境モードに対応する第１の関数セット、及び第２のバーチャル環境モードに対応する第２の関数セットに関連付けられた第２のバーチャルオブジェクトを含むことができる。バーチャル環境エンジンまたはプロセッサは、第１のバーチャル環境モードに基づき、第２のバーチャルオブジェクトの第１のバーチャル環境ビューを生成するとともに、第２のバーチャル環境モードに基づき、第２のバーチャルオブジェクトの第２のバーチャル環境ビューを生成することができる。第２のバーチャルオブジェクトの第１のバーチャル環境ビュー及び第２のバーチャル環境ビューは、別々のデバイスでそれぞれ並行してレンダリングすることができる。第２のバーチャルオブジェクトは、操作できないキャラクタとすることができる。
【０００８】
第１の関数セットは、第２の関数セットと１対１のトリガの対応を有することができる。第１の関数セットは、第２の関数セットと１対１のアニメーションの対応を有することができる。第１の関数セットは、第２の関数セットと１対１の引数の対応を有することができる。
【０００９】
１つ以上の態様によれば、共通バーチャル環境に基づいて種々のバーチャル環境視点を提供するシステムは、データベースと、メモリと、バーチャル環境エンジンを備えたプロセッサとを備えることができる。データベースは、バーチャル環境に関連付けられたバーチャル環境モデルを格納することができる。バーチャル環境モデルは、バーチャル環境座標に関連付けられたバーチャルオブジェクト、第１のバーチャル環境モードに対応する第１の関数、及び第２のバーチャル環境モードに対応する第２の関数を含む。メモリは、１つ以上の命令を格納することができる。プロセッサのバーチャル環境エンジンは、メモリに格納された命令の１つ以上を実行して、第１のバーチャル環境モードの第１のバーチャル環境スキンに基づいて、バーチャルオブジェクトの第１のバーチャル環境ビューを生成するとともに、第１のバーチャル環境スキンとは異なった、第２のバーチャル環境モードの第２のバーチャル環境スキンに基づいて、バーチャルオブジェクトの第２のバーチャル環境ビューを生成することができる。第１のバーチャル環境ビュー及び第２のバーチャル環境ビューは、別々のデバイスで並行してレンダリングすることができる。
【００１０】
バーチャルオブジェクトの第１のバーチャル環境ビューの第１のバーチャル環境スキンは、第１の寸法に関連付けることができ、バーチャルオブジェクトの第２のバーチャル環境ビューの第２のバーチャル環境スキンは、第１の寸法と異なった第２の寸法に関連付けることができる。
【００１１】
１つ以上の態様によれば、共通バーチャル環境に基づいて種々のバーチャル環境視点を提供するシステムは、データベースと、メモリと、第１のデバイスと、第２のデバイスとを備えることができる。データベースは、バーチャル環境に関連付けられたバーチャル環境モデルを格納することができる。バーチャル環境モデルは、バーチャル環境座標に関連付けられたバーチャルオブジェクト、第１のバーチャル環境モードに対応する第１の関数、及び第２のバーチャル環境モードに対応する第２の関数を含む。メモリは、１つ以上の命令を格納することができる。第１のデバイスは、メモリに格納された命令の１つ以上を実行して、第１のバーチャル環境モードに基づき、バーチャルオブジェクトの第１のバーチャル環境ビューのレンダリングを行うバーチャル環境エンジンを備えることができる。第２のデバイスは、メモリに格納された命令の１つ以上を実行して、第２のバーチャル環境モードに基づき、バーチャルオブジェクトの第２のバーチャル環境ビューのレンダリングを行うバーチャル環境エンジンを備えることができる。第１のバーチャル環境ビュー及び第２のバーチャル環境ビューは、それぞれのデバイスによって並行してレンダリングすることができる。バーチャルオブジェクトは、第１のバーチャル環境ビュー内で第１のオブジェクトとしてレンダリングすることができるとともに、第２のバーチャル環境ビュー内で、第１のオブジェクトと異なる第２のオブジェクトとしてレンダリングすることができる。
【００１２】
第１のデバイスは、第１の入力及び第２の入力と関連付けることができる。第２のデバイスは、第１の入力及び第２の入力と関連付けることができる。第１のデバイスでの第１の入力の受け取りは、第１の関数をトリガすることができ、第２のデバイスでの第１の入力の受け取りは、第２の関数をトリガすることができる。第１の関数及び第２の関数は、対応するアニメーションを有することができる。
【図面の簡単な説明】
【００１３】
【図１】１つ以上の態様による、共通バーチャル環境に基づいて種々のバーチャル環境視点を提供するシステムの例示的な動作環境の概略図である。
【図２】１つ以上の態様による、共通バーチャル環境に基づいて種々のバーチャル環境視点を提供するシステムの概略図である。
【図３】１つ以上の態様による、図１の例示的なバーチャル環境エンジンのブロック図である。
【図４】１つ以上の態様による、共通バーチャル環境に基づいて種々のバーチャル環境視点を提供する例示的な方法のフローチャートである。
【図５】１つ以上の態様による、共通バーチャル環境に基づいて種々のバーチャル環境視点を提供する例示的な方法のフローチャートである。
【図６】１つ以上の態様による、データの流れを含む、例示的なバーチャル環境のモデル図である。
【図７】１つ以上の態様による、図６のバーチャル環境モデルを含むバーチャル環境の例示的なクラス概略図である。
【図８】１つ以上の態様による、例示的な第１のバーチャル環境ビューである。
【図９】１つ以上の態様による、図８の第１のバーチャル環境ビューに対応する例示的な第２のバーチャル環境ビューである。
【図１０】１つ以上の態様による、別の例示的な第１のバーチャル環境ビューである。
【図１１】１つ以上の態様による、図１０の第１のバーチャル環境ビューに対応する別の例示的な第２のバーチャル環境ビューである。
【図１２】１つ以上の態様による、実世界環境からのバーチャル環境ビューが実世界環境に基づいた、例示的な実世界環境の視界である。
【図１３】１つ以上の態様による、本明細書に記載のバーチャル環境システムを実装した例示的なシステム構築の概略図である。
【図１４Ａ】１つ以上の態様による、共通バーチャル環境の例示的な第１のバーチャル環境ビュー及び第２のバーチャル環境ビューである。
【図１４Ｂ】１つ以上の態様による、共通バーチャル環境の例示的な第１のバーチャル環境ビュー及び第２のバーチャル環境ビューである。
【図１５Ａ】１つ以上の態様による、共通バーチャル環境の例示的な第１のバーチャル環境ビュー及び第２のバーチャル環境ビューである。
【図１５Ｂ】１つ以上の態様による、共通バーチャル環境の例示的な第１のバーチャル環境ビュー及び第２のバーチャル環境ビューである。
【図１６】図１６Ａは、１つ以上の態様による、共通バーチャル環境の例示的な第１のバーチャル環境ビュー及び第２のバーチャル環境ビューである。図１６Ｂは、１つ以上の態様による、共通バーチャル環境の例示的な第１のバーチャル環境ビュー及び第２のバーチャル環境ビューである。
【図１７】１つ以上の態様による、本明細書に述べる機能の１つ以上を具体化するように構成されたプロセッサ実行可能命令を含むコンピュータ可読媒体例またはコンピュータ可読装置例を示す図である。
【図１８】１つ以上の態様による、本明細書に述べる機能の１つ以上が実装されるコンピューティング環境例を示す図である。
【発明を実施するための形態】
【００１４】
図１は、１つ以上の態様による、共通バーチャル環境に基づいて種々のバーチャル環境視点を提供するシステム１００の例示的な動作環境の概略図である。共通バーチャル環境に基づいて種々のバーチャル環境視点を提供するシステム１００は、コンピューティングデバイス１０２を備えることができる。コンピューティングデバイス１０２は、プロセッサ１０４、メモリ１０６、ディスク１０８、全地球測位システム（ＧＰＳ）１１０、入出力インタフェース１１２、及び各コンポーネントを相互に接続するバス１１４を備えることができる。プロセッサ１０４は、バーチャル環境エンジン１１６を備えることができる。ディスク１０８及びバーチャル環境エンジン１１６は、ディスク１０８に格納された単一のバーチャル環境に基づいて、異なったユーザに対して複数のバーチャル環境ビューが提示されるように構成することができる。本明細書で説明するように、メモリ１０６は１つ以上の命令を格納することができ、プロセッサ１０４とそのバーチャル環境エンジン１１６とは、メモリ１０６に格納された命令の１つ以上を実行して、１つ以上のバーチャル環境ビューの生成を行うことができる。システム１００は、動作環境に応じて、他のシステムまたはコンポーネントと接続して動作させるか、または通信することができる。例えば、システム１００は、１つ以上の車両システム１１８、１つ以上の車両センサ１２０と接続して動作させるか、もしくは通信することができ、またはネットワーク１２２を介してサーバなどの他のコンピューティングデバイスと通信することができる。
【００１５】
最終的に、バーチャルリアリティヘッドセットなどの１つ以上のデバイス１２４は、システム１００のバーチャル環境エンジン１１６からレンダリングフィードを受け取ることができる。他の実施形態では、バーチャル環境エンジン１１６は、ネットワーク１２２を介してサーバ（図示せず）の１つに配置されてもよく、関連した計算または処理を遠隔で実行することができる。デバイス１２４は、携帯型のデバイス（例えば、スマートフォンなど）であってもよい。
【００１６】
１つ以上の態様によれば、バーチャル環境は、実世界環境に基づいて生成することができる。例えば、車両センサ１２０は、本明細書の図１２でさらに詳細に説明するように、実世界環境から１つ以上の特徴を捕捉し、検出し、または感知して、それに応じてバーチャル環境を構築することができる。
【００１７】
図２は、１つ以上の態様による、共通バーチャル環境に基づいて種々のバーチャル環境視点を提供するシステム１００の概略図である。図２において、システム１００は、プロセッサ１０４を備え、バーチャル環境エンジン１１６、メモリ１０６、データベース１０８（例えば、図１のディスク１０８として具体化される）、及び通信インタフェース１１２（例えば、図１の入出力インタフェース１１２として具体化される）を備える。通信インタフェース１１２を介して、システム１００は、１つ以上のレンダリングフィードを種々のデバイスに提供することができる。例えば、モバイル機器またはスマートフォン２２４ａなどの第１のデバイスが、第１のレンダリングフィードを受信することができ、タブレット２２４ｂが、第２のレンダリングフィードを受信することができ、バーチャルリアリティヘッドセット２２４ｃが、システム１００のバーチャル環境エンジン１１６から通信インタフェース１１２を介して、第３のレンダリングフィードを受信することができる。図１のデバイス１２４には、他のいろいろなデバイスのうちから、図２のスマートフォン２２４ａ、タブレット２２４ｂ、またはバーチャルリアリティヘッドセット２２４ｃのいずれかを含めることができる。レンダリングフィードには、プロセッサ１０４のバーチャル環境エンジン１１６によって生成された、１つ以上のバーチャル環境ビューを含めることができる（例えば、１つ以上の連続して生成されたバーチャル環境ビューは、レンダリングフィード用のアニメーションを形成することができる）。
【００１８】
図３は、１つ以上の態様による、図１の例示的なバーチャル環境エンジン１１６のブロック図である。バーチャル環境エンジン１１６は、バーチャル環境に関連付けられたデータを管理するか、または生成することができる。このバーチャル環境に関連付けられたデータは、バーチャル環境モデル３１０と呼ばれ、図２のデータベース１０８に格納することができる。したがって、データベース１０８は、バーチャル環境、またはそれに関連付けられた、バーチャル環境モデル３１０などのデータを格納することができる。バーチャル環境モデル３１０は、対応するバーチャル環境座標に関連付けられた１つ以上のバーチャルオブジェクト（例えば、第１のバーチャルオブジェクト、第２のバーチャルオブジェクト、第３のバーチャルオブジェクトなど）を含むことができる。各バーチャルオブジェクトは、第１のバーチャル環境モードに対応する第１の関数セット、及び第２のバーチャル環境モードに対応する第２の関数セットなどの、種々の関数のセットと関連付けることができる。第１の関数セットは第１の関数を含むことができ、第２の関数セットは第２の関数を含むことができる。したがって、第１の関数は第１のバーチャル環境モードに対応することができ、第２の関数は第２のバーチャル環境モードに対応することができる。
【００１９】
例えば、第１のバーチャルオブジェクトは、バーチャル環境座標、第１のバーチャル環境モードに対応する第１の関数セット、及び第２のバーチャル環境モードに対応する第２の関数セットと関連付けることができる。同様に、第２のバーチャルオブジェクトは、バーチャル環境座標、及び第１のバーチャル環境モードに対応する（例えば、第２のバーチャルオブジェクト自体の）第１の関数セット、ならびに第２のバーチャル環境モードに対応する第２の関数セットと関連付けることができる。
【００２０】
バーチャルオブジェクトは、オブジェクト、人物、もしくはキャラクタ（例えば、他のユーザまたは操作できないキャラクタ）を表すか、またはそれらであることを示し、バーチャルオブジェクトに関連付けられた別々の関数またはノードのセットを介して具体化されたプロパティ、特性、反応、対話などの別々のセットに関連付けることができる。
【００２１】
バーチャル環境エンジン１１６は、本明細書でさらに詳細に説明するように、対応するバーチャル環境モードに基づいて、同じバーチャルオブジェクトの異なったバーチャル環境ビューを生成することができる。例えば、プロセッサ１０４のバーチャル環境エンジン１１６は、第１のバーチャル環境モードに基づいて、第１のバーチャルオブジェクトの第１のバーチャル環境ビュー（例えば、第１の視点）を、また、第２のバーチャル環境モードに基づいて、第１のバーチャルオブジェクトの第２のバーチャル環境ビュー（例えば、第２の視点）を生成することができる。したがってバーチャル環境エンジン１１６は、バーチャル環境内の各バーチャルオブジェクトの視界を生成することができる。別の例として、プロセッサ１０４のバーチャル環境エンジン１１６は、第１のバーチャル環境モードに基づいて、第２のバーチャルオブジェクトの第１のバーチャル環境ビューを生成するとともに、第２のバーチャル環境モードに基づいて、第２のバーチャルオブジェクトの第２のバーチャル環境ビューを生成することができる。
【００２２】
つまりプロセッサ１０４のバーチャル環境エンジン１１６は、第１のバーチャル環境モードに関連付けられた第１のバーチャル環境スキンに基づいて、バーチャルオブジェクトの第１のバーチャル環境ビューを生成するとともに、第２のバーチャル環境モードの第２のバーチャル環境スキンに基づいて、バーチャルオブジェクトの第２のバーチャル環境ビューを生成することができる。第２のバーチャル環境モードに関連付けられた第２のバーチャル環境スキンは、第１のバーチャル環境スキンと異なっていてよい。さらに、バーチャル環境スキンは、種々のバーチャルオブジェクトプロパティに関連付けることができる。
【００２３】
例えば、バーチャルオブジェクト用の第１のバーチャル環境スキンは、第１の寸法、第１の形状、第１の色などに関連付けることができる。バーチャルオブジェクトの第２のバーチャル環境ビューの第２のバーチャル環境スキンは、（第１の寸法とは異なる）第２の寸法、（第１の形状とは異なる）第２の形状、（第１の色とは異なる）第２の色などに関連付けることができる。いずれにしても、ユーザ等の各自のバーチャル環境モードが異なっているか、または異なる値を有する場合、異なったユーザの間の知覚、視点、または視界は異なっている（例えば、以下にさらに詳細に説明するように、図８のユーザ８０２は第１のモードを体験していて、図９のユーザ９０２は第２のモードを体験している）。
【００２４】
このようにして、２人のユーザが、同時に、類似装置を使用して、それに応じた同様の入力を与えた（例えば、両方のユーザが「Ａ」ボタンを押した）後などに、バーチャル環境の中で同じ角度から同じバーチャルオブジェクト（例えば、第１のバーチャルオブジェクト）を眺めているにもかかわらず、第１のバーチャル環境ビューを提示された第１のユーザは、第２のバーチャル環境ビューを提示された第２のユーザとは異なる第１のバーチャルオブジェクトを体験する。したがって、バーチャル環境エンジン１１６（及びそのモジュール）は、それぞれのユーザまたはそれぞれのバーチャルリアリティ参加者（例えば、ゲーム選択で第１のセットを選んだ第１のモードを体験する第１のユーザ、及びゲーム選択における第１のセットとは異なる第２のセットをゲーム選択で選んだ第２のモードを体験する第２のユーザ、または年長のティーンエイジャーとは異なるモードを体験する幼児）によって、違うように知覚されるか、または違うように見られる、バーチャル環境の複数のバーチャル環境ビューの生成を可能にすることができる。これらのユーザまたは参加者の一人ひとりは、ユーザ等の（例えば、ユーザ単位で決定される）関連バーチャル環境モードに基づいたユーザ等自身の独自の視点またはバーチャル環境ビューから、バーチャル環境モデル３１０のバーチャル環境を体験する。
【００２５】
言い換えれば、第２のバーチャル環境ビューがタブレット２２４ｂでレンダリングされている間に、同時にまたは並行して第１のバーチャル環境ビューがスマートフォン２２４ａでレンダリングされ得る。このようにして、第１のバーチャル環境ビュー及び第２のバーチャル環境ビューは、個別のデバイス２２４ａ及び２２４ｂ上で、それぞれ並行して行う方法でレンダリングされる。言い換えれば、第１のバーチャルオブジェクトは、（例えば、第１のユーザ用の）第１のバーチャル環境ビュー内の第１のレンダリングと、（例えば、第２のユーザ用の）第２のバーチャル環境ビュー内の、第１のレンダリングと異なった第２のレンダリングとを有し、それによって両方のユーザに、（例えば、同一の、共通の、または単一のバーチャル環境モデル３１０に関連付けられた）共通バーチャル環境とは異なる体験をもたらす。
【００２６】
例えば、第１のバーチャルオブジェクトの第１のバーチャル環境ビューを、スマートフォン２２４ａでレンダリングすることができるとともに、第１のバーチャルオブジェクトの第２のバーチャル環境ビューを、タブレット２２４ｂでレンダリングすることができる。
【００２７】
データベース１０８に格納されたバーチャル環境モデル３１０は、１つ以上の様々なバーチャル環境モード（例えば、第１のバーチャル環境モード、第２のバーチャル環境モード・・・）に基づき、１つ以上の様々なバーチャル環境ビュー（例えば、第１のバーチャル環境ビュー、第２のバーチャル環境ビュー・・・）を生成するデータまたは命令を含むことができる。以下の説明及び図は、（例えば、特に、別個のビュー、レンダリング、キャラクタ、プロパティ、機能、ユーザに関連付けられた）２つの異なるバーチャル環境モードに関連付けられた２つの異なるバーチャル環境ビューを含むものであるが、追加（例えば、第３、第４、第５・・・のバーチャル環境モード）及びバーチャル環境ビューが企図される。
【００２８】
いずれにしても、スマートフォン２２４ａ及び第１のバーチャル環境モードは、第１のタイプのユーザ及びタブレット２２４ｂに関連付けることができ、第２のバーチャル環境モードは、第２のタイプのユーザに関連付けることができる。ユーザのタイプ（例えば、第１のタイプのユーザ、第２のタイプのユーザなど）は、ユーザ３１２に関連付けられた人口統計、ユーザ３１２に関連付けられたアカウント、ユーザ３１２に関連付けられたハードウェア（例えば、スマートフォン２２４ａのハードウェアかタブレット２２４ｂのハードウェアか）によって、または基づいて、定義することができる。人口統計の例には、年齢、性別、教育水準、所得水準、婚姻状況、職業、宗教などが含まれる。さらに、ユーザのタイプは、例えば１つ以上のユーザの選択に基づき、バーチャル環境エンジン１１６によって定義することができる。ユーザの選択は、ゲームプレイに結び付いている可能性があるが、必ずしもゲームスキンを直接選択する必要はない。例えば、ゲームのジャンル、ゲームの種類、選択したゲーム、選択したアバタ、ゲーム中の評点、または以前のゲームプレイといったユーザの選択を使用して、第１のバーチャル環境モードまたは第２のバーチャル環境モードのいずれが使用されるかに影響を及ぼすことができる。
【００２９】
この関連で、バーチャル環境エンジン１１６は、ユーザが第１のゲームを選んだ場合に、第１のバーチャル環境モードを適用することができ、ユーザが第２のゲームを選んだ場合に、第２のバーチャル環境モードを適用することができる。様々なゲーム（例えば、第１のゲーム及び第２のゲーム）の例を、以下の図１４〜図１６に記載する。さらに、バーチャル環境エンジン１１６は、以前にプレイしたゲームのユーザレビューを利用して、対応するバーチャル環境モードを決定することができる。言い換えれば、ユーザが、第１のゲームに関連付けた否定的な意見を残し、第１のゲームが第１のバーチャル環境モードに関連して実行された場合、将来同じゲームが選択されると、バーチャル環境エンジン１１６によって、バーチャル環境モードに関連して第２のゲームを実行させるようにすることができる。同様に、第１のアバタの選択によって、そのユーザを対象にして第１のバーチャル環境モードが使用されるようにすることができ、一方第２のアバタの選択によって、そのユーザを対象にして第２のバーチャル環境モードが使用されるようにすることができる。しかしながら、第１のアバタを選択する別のユーザは、例えば、異なるゲームの選択などの他のユーザ選択が原因で、第２のバーチャル環境モードを体験することができる。
【００３０】
いずれにしても、ユーザ３１２は、車両データ３１８、ユーザデータ３２０、または他のデータ３２２をもたらす車両システム１１８、車両センサ１２０からの入力に基づいて、デバイス（複数可）１２４によってバーチャル環境ビューを体験することができる。車両システム１１８及び車両センサ１２０からの情報は、バーチャル環境エンジン１１６によって処理して、バーチャル環境エンジン１１６のバーチャル環境データモジュール３０２で受信することができる。動的バーチャル環境モジュール３０６は、バーチャル環境ビューを生成することができ、一方レンダリングモジュール３０８は、バーチャル環境ビューをレンダリングすることができる。図３において、バーチャル環境エンジン１１６は、デバイス１２４とは別のコンポーネントであって、例えば、車両に配置することができる。
【００３１】
他の実施形態では、デバイス１２４は、それ自体のバーチャル環境エンジン（例えば、図１３の１３２０）を有することができ、処理、計算、バーチャル環境ビューの生成、またはバーチャル環境ビューのレンダリングは、バーチャル環境エンジン１１６及び／またはシステム１００もしくは車両のプロセッサ１０４と、バーチャル環境エンジン１３２０及び／またはデバイス１２４のプロセッサ１３２４との間で分離または分割してもよい。例えば、バーチャル環境ビューの生成は、システム１００（例えば、車両側）のバーチャル環境エンジン１１６の動的バーチャル環境モジュール３０６で行わせることができ、また、バーチャル環境ビューのレンダリングは、デバイス１２４（例えば、図１３のバーチャル環境エンジンフレームワーク１３２０などの、バーチャル環境デバイス側）のバーチャル環境エンジンのレンダリングモジュールで行わせることができる。
【００３２】
図４は、１つ以上の態様による、共通バーチャル環境に基づいて種々のバーチャル環境視点を提供する例示的な方法４００のフローチャートである。例えば、本方法は、４０２のときに、車両データ及びユーザデータを受信することを含む。ユーザデータは、バーチャル環境エンジン１１６によってバーチャル環境がレンダリングまたは生成される方法を示すバーチャル環境モードを含むことができる。４０４のときに、バーチャル環境ビューを、車両データ及びユーザデータに基づいて生成することができる。４０６のときに、バーチャル環境ビューを、バーチャル環境モードに基づいてレンダリングすることができる。４０８のときに、バーチャル環境ビューを、更新して再レンダリングすることができる。
【００３３】
図５は、１つ以上の態様による、共通バーチャル環境に基づいて種々のバーチャル環境視点を提供する例示的な方法５００のフローチャートである。５０２のときに、本方法は、バーチャル環境を格納すること、またはバーチャル環境にアクセスすることを含むことができる。各バーチャルオブジェクトを、第１及び第２のバーチャル環境モードまたはスキンに対応する関数のセットに関連付けることができる。５０４のときに、本方法は、スマートフォン２２４ａなどのために、第１のバーチャル環境モードまたは第１のバーチャル環境スキンに基づいて、バーチャルオブジェクトの第１のバーチャル環境ビューを生成またはレンダリングすることを含むことができる。５０６のときに、本方法は、タブレット２２４ｂなどのために、（別のオブジェクトとしての）第２のバーチャル環境モードまたは第２のバーチャル環境スキンに基づいて、第１のバーチャル環境ビューと並行して、バーチャルオブジェクトの第２のバーチャル環境ビューを生成またはレンダリングすることを含むことができる。
【００３４】
図６は、１つ以上の態様による、データの流れを含む、例示的なバーチャル環境のモデル図である。図７は、１つ以上の態様による、図６のバーチャル環境モデル３１０を含むバーチャル環境の例示的なクラス概略図７００である。例示的なバーチャル環境モデル３１０を、図６〜図７を参照して説明する。図６〜図７を参照して論じるクラスノード、関数、オブジェクト、プロパティ、参照、メソッド、トリガ、及びイベント（例えば、バーチャル環境ビュー７０６を定義するコンポーネント）は、本質的に例示的なものであり、限定することを意図するものではない。
【００３５】
図６において、バーチャル環境モデル３１０は、バーチャル環境ビュー７０６を定義する１つ以上のコンポーネントを含むことができる。例えば、図６において、モデルは、ビュー（ＶＩＥＷ）クラスノード６０２、環境構造（ＥＮＶＩＲＯＮＭＥＮＴ  ＳＴＲＵＣＴＵＲＥ）クラスノード６０４、ｅｖｅｎｔｓＩｎ（ＥＶＥＮＴＳ  ＩＮ）クラスノード６０６、及びｅｖｅｎｔｓＯｕｔ（ＥＶＥＮＴＳ  ＯＵＴ）クラスノード６０８を含み、これらのノードは、バーチャル環境エンジン１１６にバーチャルイベント６１０を出力させ、生成させ、もしくはレンダリングさせ、またはそれ以外の場合は、上述のクラスノード６０２、６０４、６０６、６０８などの１つ以上に関連付けられた関数を実行させることができる。図６のクラスノードは、図７を参照して説明されるクラスノードと同様のメソッド、プロパティ、フィールド、及び参照を含むことができる。図６は、例えば、クラスノードを拡張するための、クラスノードへの例示的なデータフローも示す。特に、動的バーチャル環境モジュール３０６は、これらの型のデータを使用して、特定のクラスノードを拡張することができる。
【００３６】
図３で説明したように、データには、車両データ３１８、ユーザデータ３２０、及び／または他のデータ３２２を含めることができる。図６に示すデータの型は、図３の車両データ３１８、ユーザデータ３２０、及び／または他のデータ３２２の型である。具体的に、図６において、データには、車両モーションデータ６１２（車両力学データを含む）、ユーザモーションデータ６１３、車両モーション予測データ６１４、ナビゲーションデータ６１６、ビッグデータ６１８、及び運転手行動データ６２０が含まれるが、これに限定されるものではない。
【００３７】
一般に、バーチャル環境モデル３１０は、バーチャル環境７０２と少なくとも２つのバーチャル環境ビュー７０６とを定義する、多数の個別の操作（例えば、関数または関数のセット）とバーチャルオブジェクト７１０との集合であり、それぞれが対応するバーチャル環境モードに関連付けられている。本開示によれば、各バーチャルオブジェクト７１０は、バーチャル環境エンジン１１６、ノード、または関数に（例えば、引数として）渡されたバーチャル環境モードに応じて、またはそれらに基づいて、バーチャル環境エンジン１１６によってレンダリングまたは生成される２つ以上のバーチャル環境ビュー７０６に関連付けられている。１つ以上の態様によれば、バーチャル環境モードは、数値データ型（例えば、ｍｏｄｅ１、ｍｏｄｅ２、ｍｏｄｅ３など）とすることができる。例えば、バーチャル環境モードは、第１のモード、第２のモード、第３のモードなどを含むことができる。他の実施形態では、バーチャル環境モードは、それ自体のデータ型（例えば、バーチャル環境モードデータ型）とすることができる。例えば、バーチャル環境モードは、第１のモード及び第２のモードを含むことができる。別の例では、バーチャル環境モードは、トドラーモード、就学前モード、小学生モード、ティーンモード、若年成人モード、成年者モードなどを含むことができる。
【００３８】
いずれにしても、特定のモード（ＭＯＤＥ）、モード名、または使用されるデータ型にかかわらず、バーチャル環境エンジン１１６は、それに応じて（例えば、クラスノード、クラスノード内のノード、クラスノード内の関数、及び入力としてまたは引数としてのバーチャル環境モードを使用して）バーチャル環境ビュー７０６を生成することができる。本開示は、第１のモード及び第２のモードを例として説明しているが（例えば、第１モードについては図８及び図１０、第２モードについては図９及び図１１）、本明細書で提供されるモードの一覧は、限定することを意図するものではなく、他のモードも企図される。
【００３９】
バーチャル環境モデル３１０は、例えば、バーチャル環境モデリング言語（ＶＲＭＬ）、ＤｉｒｅｃｔＸ、ＯｐｅｎＧＬ、Ｕｎｉｔｙなど、様々なモデリング言語またはプログラミング言語を使用して定義することができる。図７に示すように、バーチャル環境７０２は、１つ以上のバーチャル環境ビュー７０６を含めることができる。バーチャル環境７０２及びバーチャル環境ビュー７０６は、１つ以上のバーチャルオブジェクト７１０を含めることができる。バーチャル環境ビュー７０６及びバーチャルオブジェクト７１０は、例示的なクラスノード７０４などの１つ以上のクラスノードによって定義される。１つ以上の態様によれば、ノードは、グループ化されて、階層構造内の１つ以上のバーチャル環境ビュー７０６及び／またはバーチャルオブジェクト７１０に適用することができる。例えば、クラスノード群７０４は、特定のノード群（例えば、クラスノード群７０４）に関連付けられたバーチャル環境ビュー７０６及び／またはバーチャルオブジェクト７１０の親ノード及び子ノードに適用することができる。
【００４０】
クラスノード７０４のそれぞれは、例えば、他ノード、プロパティ、フィールド、メソッド、関数、及び／または参照など、クラスノードを定義及び／または変更するコンポーネントを含むことができる。１つ以上の態様によれば、ノード、プロパティ、フィールド、メソッド、及び／または参照は、（例えば、特定のテーマ、ゲームなどのための）バーチャル環境７０２に基づいて予め定義することができる。さらに、他の実施形態では、ノード３１２、プロパティ、フィールド、メソッド、及び／または参照は、ユーザ３１２またはユーザ選択に基づいて事前に定義することができる。図６〜図７に含まれていない他のクラスノード、プロパティ、フィールド、メソッド、及び／または参照を実装することができ、これらが本明細書で説明される別のモデリング言語及びプログラミング言語に基づいたものであってもよい。
【００４１】
図７において、クラスノード群７０４は、ビュー（ＶＩＥＷ）クラスノード７１２、環境構造（ＥＮＶＩＲＯＮＭＥＮＴ  ＳＴＲＵＣＴＵＲＥ）クラスノード７１４、ｅｖｅｎｔｓＩｎ（ＥＶＥＮＴＳＩＮ）クラスノード７１６、及びｅｖｅｎｔｓＯｕｔ（ＥＶＥＮＴＳＯＵＴ）クラスノード７１８を含む。１つ以上の態様によれば、プロセッサ１０４のバーチャル環境エンジン１１６は、バーチャル環境モデル３１０、バーチャル環境モデル３１０内で表されるバーチャルオブジェクト７１０、及び対応するバーチャル環境モードに基づいて、バーチャル環境ビュー７０６を生成することができる。例えば、これらの変数を、引数としてビュークラスノード７１２に渡すことができる。
【００４２】
ビュークラスノード７１２は、ビュークラスノード７１２のノードに引数として渡される入力変数または入力パラメータとしてのバーチャル環境モードに基づいて、ビューを生成する関数を含むことができる。ビュークラスノード７１２は、バーチャル環境ビュー７０６、バーチャルオブジェクト７１０、関数、及び／またはバーチャル環境ビュー７０６及び／またはバーチャルオブジェクト７１０に関連付けられた操作の位置及び／または方向を定義することができる。
【００４３】
例えば、図７において、ＴＲＡＮＳＦＯＲＭノードは、配列変換を実行するために使用され、ＴＲＡＮＳＦＯＲＭノードに関連付けられた関数への引数としてバーチャル環境モードに基づいて計算され得る位置（ＰＯＳＩＴＩＯＮ）、回転（ＲＯＴＡＴＩＯＮ）、及び尺度（ＳＣＡＬＥ）に関連付けられたプロパティを含むことができる。ｉｍａｇｅＥｆｆｅｃｔ（ＩＭＡＧＥ  ＥＦＦＥＣＴ）ノードは、同様の方法でバーチャル環境モードに基づいて、画像後処理効果を処理することができる。例示的な画像後処理効果には、被写界深度（ＤＥＰＴＨ  ＯＦ  ＦＩＥＬＤ）、モーション、及びぼかしなどが含まれる。ＢＥＨＡＶＩＯＲノードは、バーチャル環境モードに基づいたアニメーション（ＡＮＩＭＡＴＩＯＮ）やモーションなどの種々の動作を有効または無効にするために使用することができる。ｖｉｓｕａｌＥｆｆｅｃｔｓ（ＶＩＳＵＡＬ  ＥＦＦＥＣＴＳ）ノードは、バーチャル環境モードに基づいて、例えば、ラインレンダラ、ハローエフェクト、トレイルレンダリングなどの視覚効果を定義するために使用することができる。ＲＥＮＤＥＲＩＮＧノードは、バーチャル環境モードに基づいて、ゲーム内及びユーザインタフェース要素をレンダリングするための設定及びコンポーネントを定義するために使用することができる。
【００４４】
例えば、環境構造クラスノード７１４は、バーチャル環境モードに基づいたビューの１つ以上の態様または特性を、その関数の引数として定義する関数を含むことができる。例えば、所与のバーチャルオブジェクト７１０のテクスチャは、バーチャル環境モード（例えば、第１のバーチャル環境モード、第２のバーチャル環境モードなど）に基づいて各様に定義することができる。環境構造クラスノード７１４によって定義される他のプロパティには、寸法、形状、外観、テクスチャ、材質、衝突効果、透明度、有無、配列などを含めることができる。例えば、バーチャルオブジェクト７１０は、第１のバーチャル環境モードでは存在するが、第２のバーチャル環境モードでは存在しないようにすることができる。バーチャルオブジェクト７１０は、第１のバーチャル環境モードでは第１の寸法に関連付けられ、第２のバーチャル環境モードでは第２の寸法に関連付けられてもよい。
【００４５】
環境構造クラスノード７１４は、バーチャル環境ビュー７０６、バーチャルオブジェクト７１０、関数、及び／またはそれらに関連付けられた操作の構造及び外観を定義することができる。ビュークラスノード７１２と同様に、環境構造クラスノード７１４は、引数としてのバーチャル環境モードに基づいて構造を定義または計算することができる。この関連で、ＧＥＯＭＥＴＲＹノードは、バーチャル環境モードに基づいて、バーチャルオブジェクト７１０に関連付けられた形状（ＳＨＡＰＥ）を定義するために使用することができる。ＡＰＰＥＡＲＡＮＣＥノードは、バーチャル環境モードに基づいて、テクスチャ（ＴＥＸＴＵＲＥ）及び材質（ＭＡＴＥＲＩＡＬ）などの可視プロパティを定義するために使用することができる。ＴＥＲＲＡＩＮノードは、図８〜図１１に示すように、バーチャル環境モードに基づいて地形及び風景の態様を定義するために使用することができる。ＣＯＬＬＩＳＩＯＮノードは、バーチャル環境モードに基づいて、バーチャル環境ビュー７０６内のどのオブジェクトが衝突状態に関連付けられているのか（例えば、別のバーチャルオブジェクトがバーチャルオブジェクトと衝突することなくそのバーチャルオブジェクトを通過できるかどうか）を定義することができる。また、バーチャル環境モードは、異なるデバイス１２４に関連付けられて、ユーザの人口統計、ユーザに関連付けられたアカウント、デバイス１２４のハードウェアまたはバーチャルリアリティヘッドセットのハードウェアに基づいて決定されてもよい。
【００４６】
ｅｖｅｎｔｓＩｎクラスノード７１６は、ｅｖｅｎｔｓＯｕｔクラスノード７１８用の１つ以上のトリガを定義する関数を含むことができる。例えば、「Ａ」ボタンのタップの受信は、出力イベントをトリガすることができる。ｅｖｅｎｔｓＩｎクラスノード７１６は、各ノードが受信（例えば、トリガ）または生成するイベントの種類及び名前を定義する。例えば、ＥＶＥＮＴＭＡＮＡＧＥＲノードは、カスタムイベントを定義し、特定のイベントを初期化またはトリガする（例えば、ユーザデータ、ユーザ入力データ、または車両データから決定される）イベントトリガを決定するイベントハンドラ及びイベントリスナを含むことができる。ＴＹＰＥフィールドはイベントの種類を定義し、ＮＯＤＥフィールドはイベントが適用されるノード（複数可）を定義し、ＳＥＴ＿ＦＩＥＬＤＮＡＭＥメソッドはイベント中にフィールドの値を変更するために使用され得る。ｅｖｅｎｔｓＯｕｔクラスノード７１８は、イベントの実行及びルーティングを管理することができる。ＦＩＥＬＤＮＡＭＥ＿ＣＨＡＮＧＥＤフィールドは、イベント中にどのフィールド（複数可）が変更されるかを示し、ＴＹＰＥフィールドはイベントのタイプを定義し、ＮＯＤＥフィールドは、イベントが適用されるノードを定義することができ、ＲＯＵＴＥメソッドは、ノードにイベントが送信される方法と、ノードがイベントを受信及び生成する方法とを定義する。図７の実施形態には示していないが、他のクラスノード７１６及び７１８は、ビュークラスノード７１２及び環境構造クラスノード７１４と同様に、バーチャル環境モードを引数として受け取ることができる。
【００４７】
クラスノード及び／または関連する関数またはノードは、図２のデータベース１０８に格納することができる。したがって、これらのノードまたは関数は、それぞれ、第１のバーチャル環境モードまたは第２のバーチャル環境モードであるバーチャル環境モードに基づいて、第１のバーチャル環境ビューまたは第２のバーチャル環境ビューを生成することができる。１つ以上の態様によれば、バーチャル環境モードは、数値データ型（例えば、ｍｏｄｅ１、ｍｏｄｅ２、ｍｏｄｅ３など）であるか、またはそれ自体のデータ型（例えば、バーチャル環境モードデータ型）を有することができる。
【００４８】
クラスノード及びコンポーネントは、車両データ及びユーザデータの少なくとも１つに従って拡張されて、ユーザ３１２用の動的バーチャル環境７０２及び／またはバーチャル環境ビュー７０６を生成することができる。１つ以上の態様によれば、車両データ６１２、６１４、６１６及びユーザデータ６１３、６２０は、ノードを初期化し、プロパティ及びフィールドを設定し、イベントを初期化及び定義するために使用することができる。
【００４９】
図８は、１つ以上の態様による、例示的な第１のバーチャル環境ビュー８００である。図９は、１つ以上の態様による、図８の第１のバーチャル環境ビュー８００に対応する例示的な第２のバーチャル環境ビュー９００である。
【００５０】
図８において、第１のバーチャル環境ビューには、第１のバーチャル環境モードによる、第１のユーザ８０２用の第１の人物の視点または視界が含まれる。第１のユーザの第１のバーチャル環境ビューは、別のユーザまたは第２のユーザ８０４を含んでいる。ここで、この例では、第１のユーザ８０２は、第１のバーチャル環境ビューを介して、第２のユーザ８０４がドラゴン８０６（例えば、操作できないキャラクタ）としてレンダリングされるバーチャルオブジェクトとインタラクトしていることを見ることができる。例えば、ここでは、第２のユーザ８０４は、ドラゴン８０６と戦っているように見える。バーチャル環境の第１のバーチャル環境ビューは、城８１０などの他のバーチャルオブジェクトを含むことができる。城８１０のバーチャルオブジェクトは、寸法、形状、長さ、高さ８１２、幅８１４などを含むバーチャルオブジェクトプロパティに関連付けられる。このバーチャルオブジェクトプロパティは、クラスノード７０４の１つ以上のノードまたは関数によって定義することができる。
【００５１】
さらに、第１のバーチャル環境ビューは、剣８２０、壁８３０、木８４０などの他のバーチャルオブジェクトを含むことができる。そのうえ、第１のバーチャル環境ビューは、例えば、草８６２、レンガ路８６４、及び小道８６６などのバーチャル環境特徴を含むことができる。バーチャルオブジェクトまたはバーチャル環境特徴の１つ以上は、図９の第２のバーチャル環境ビュー９００などの、第２のバーチャル環境ビューに関連付けられたバーチャルオブジェクトまたはバーチャル環境特徴と１対１対応を有することができる。
【００５２】
図９において、第２のバーチャル環境ビュー９００には、第２のバーチャル環境モードによる、第１のユーザ９０２用の第１の人物の視点または視界が含まれる。第２のバーチャル環境ビューは、第１のユーザ９０２及び第２のユーザ９０４の両方を含んでいる。図９において、第１のユーザ９０２は、第２のバーチャル環境ビューを介して、第２のユーザ９０４がポニー９０６（例えば、操作できないキャラクタ）としてレンダリングされるバーチャルオブジェクトとインタラクトしていることを見ることができる。ここで、この例では、第２のユーザ９０４は、ポニー９０６を撫でているように見える。バーチャル環境の第２のバーチャル環境ビューは、家９１０などの他のバーチャルオブジェクトを含むことができる。家９１０のバーチャルオブジェクトは、寸法、形状、長さ、高さ９１２、幅９１４などを含むバーチャルオブジェクトプロパティに関連付けられる。このバーチャルオブジェクトプロパティは、クラスノードの１つ以上のノードまたは関数によって定義することができる。
【００５３】
図８の城８１０の座標は図９の家９１０の座標に一致するが、家９１０の幅９１４が城８１０の幅８１４と異ならせることができ、家９１０の高さ９１２が城８１０の高さ８１２と異ならせることができる。しかし、中心に関連付けられたバーチャル環境座標（例えば、重心、中点、または水平方向の中心）は、城８１０及び家９１０の両方について同じであってよい。このようにして、バーチャルオブジェクトは、種々のバーチャル環境モード間で違うように知覚させることができる（例えば、図８〜図９の同じバーチャルオブジェクトは、第１のバーチャル環境モードでは第１の寸法と、第２のバーチャル環境モードでは第２の寸法と関連付けられる）。
【００５４】
第２のバーチャル環境ビュー９００は、棒９２０、壁８３０、及び図８の木８４０と異なるレンダリングをされた木９４０などの他のバーチャルオブジェクトを含むことができる。第２のバーチャル環境ビュー９００は、第１及び第２のバーチャル環境モードを異なる方法で解釈するクラスノードに関連付けられた衝突関数に起因して、図８の第１のバーチャル環境ビュー８００において存在しないか、または対応するレンダリングをもたない、納屋９５０と９６０のところの草とを含むことができる。さらに、第２のバーチャル環境ビューは、草９６２、砂利道９６４、及び小道９６６など、バーチャル環境のバーチャル環境特徴を含むことができ、図８の草８６２、レンガ路８６４、及び小道８６６に対応させることができる。バーチャルオブジェクトまたはバーチャル環境特徴の１つ以上は、図８の第１のバーチャル環境ビューなどの、第１のバーチャル環境ビューに関連付けられたバーチャルオブジェクトまたはバーチャル環境特徴と１対１対応を有することができる。
【００５５】
バーチャルオブジェクトの一部は、対応するプロパティ、関数、ノードなどに関連付けられるか、またはそれ以外の場合は第１のバーチャル環境モードと第２のバーチャル環境モードとの間に１対１対応を有するが、他のバーチャルオブジェクトが別々のバーチャル環境モードの間で必ずしも同じ関係を有するとは限らない。例えば、図８の剣８２０と図９の棒９２０とは、同じ動きパターンまたはアニメーション関数、寸法プロパティなどを有することができる。逆に、図９の納屋９５０は、クラスノードの１つ以上の関数への引数としてのバーチャル環境モードに基づいて、図８では不可視であって、衝突しないものとすることができる。すでに述べたように、図８の城８１０と図９の家９１０とは、異なった寸法プロパティまたは特性を有することができる。さらに、他のバーチャルオブジェクトは、第１のバーチャル環境モードと第２のバーチャル環境モードとの間で同一に見えることがある。例えば、壁８３０は、同じように見え、図８〜図９の２つの異なったバーチャル環境モードにまたがって同じ位置に全く同じにレンダリングされる。
【００５６】
バーチャル環境モデル３１０は、１つ以上のバーチャルオブジェクトを含むことができ、それらは（例えば、第１のバーチャル環境モードに関連付けられた）第１のバーチャル環境ビューに従って、それぞれがバーチャル環境内に独自のバーチャル環境座標を有する第１のユーザ８０２、第２のユーザ８０４、ドラゴン８０６、城８１０、剣８２０、壁８３０、及び木８４０として、レンダリングすることができる。同じバーチャルオブジェクトは、（例えば、第２のバーチャル環境モードに関連付けられた）第２のバーチャル環境ビューに従って、それぞれ第１のユーザ９０２、第２のユーザ９０４、ポニー９０６、家９１０、棒９２０、壁８３０、及び木９４０としてレンダリングされ、同一のまたは対応するバーチャル環境座標を有することができる。
【００５７】
１つ以上の態様によれば、第１の関数セットは、第２の関数セットと１対１のトリガの対応を有している。言い換えれば、ユーザからの入力または第１のユーザ入力の受信は、対応する関数を実行させるか、またはトリガして実行させることができる。例えば、データベース１０８は、図示された図８〜図９のバーチャル環境に関連付けられたバーチャル環境モデル３１０を格納することができる。この例では図８のドラゴン８０６と図９のポニー９０６とを第１のバーチャルオブジェクトと見なして、図８のドラゴン８０６を第１の関数に関連付けることができ、一方、図９のポニー９０６として描写された同じ第１のバーチャルオブジェクトを第２の関数に関連付けることができる。例えば、第１の関数と第２の関数とは、ドラゴン８０６またはポニー９０６としての第１のバーチャルオブジェクトの動き、アニメーション、外観、テクスチャなどを指示するアイドル動作関数とすることができる。
【００５８】
図８において、第１のユーザ８０２が第１のバーチャル環境モードに関連付けられている場合、プロセッサ１０４のバーチャル環境エンジン１１６の動的バーチャル環境モジュール３０６は、ドラゴン８０６が、領域の周辺または事前に定義された外周部（図示せず）の内側を徘徊し、火を吐き出して、そしてバーチャル環境内の草８６２を燃やす光景を含む第１のバーチャル環境ビューを生成することができる。それに応じて、図９では、第１のユーザ９０２が第２のバーチャル環境モードに関連付けられている場合、プロセッサ１０４のバーチャル環境エンジン１１６の動的バーチャル環境モジュール３０６は、ポニー９０６が、領域の周辺または事前に定義された外周部（図示せず）の内側を徘徊し、バーチャル環境内の草９６２を食べる光景を含む第２のバーチャル環境ビューを生成することができる。
【００５９】
このようにして、第１のバーチャル環境モードに関連付けられた第１の関数と、第２のバーチャル環境モードに関連付けられた第２の関数とは、（例えば、２つの関数が、変数としてあらかじめ定義された外周部を共有し、ドラゴン８０６かポニー９０６のどちらかとしての第１のバーチャルオブジェクトのアイドル動作の態様を制御することに関わるため）互いに対応することができる。この関連で、第１の関数セットまたは第１の関数は、第２の関数セットまたは第２の関数と１対１の引数の対応を有することができる。例えば、第１の関数及び第２の関数は、両方が同じ個数の引数を受け取り、同数の入力及び出力を有することができ、引数が同じデータ型などを有している。
【００６０】
１つ以上の態様によれば、第１の関数セットまたは第１の関数は、第２の関数セットまたは第２の関数と１対１のアニメーションの対応を有している。例えば、第１のバーチャル環境モードまたは同じ種類のユーザデータに関連付けられた第１のユーザから第１の入力を受信すると、プロセッサ１０４のバーチャル環境エンジン１１６の動的バーチャル環境モジュール３０６は、第１のユーザが剣８２０を振りまわす光景を含む（第１のバーチャル環境モード及びスマートフォン２２４ａに関連付けられた）第１のバーチャル環境ビューを生成することができる。逆にあるいはそれに応じて、第１のユーザから同じ種類の第１の入力を受信すると、プロセッサ１０４のバーチャル環境エンジン１１６の動的バーチャル環境モジュール３０６は、第１のユーザが棒９２０を揺り動かす光景を含む（第２のバーチャル環境モード及びタブレット２２４ｂに関連付けられた）第２のバーチャル環境ビューを生成することができる。１つ以上の態様によれば、クラスノードとクラスノードのノードとは、入力と同じ変数を使用し、対応する計算を行うか、または部分的に同一の特徴及び／または部分的に異なった特徴を含み得る対応する視界を生成することができる。
【００６１】
例えば、上述の剣８２０の振りまわし及び棒の揺り動かしのシナリオでは、１つ以上の態様によれば、剣８２０と棒９２０とは、同一の配列、動作、またはアニメーション（例えば、動きまたはモーション）を有するが、異なったテクスチャまたは外観を有することができる。したがって、第１のバーチャル環境モードに関連付けられたユーザ８０２と、第２のバーチャル環境モードに関連付けられたユーザ９０２とは、剣８２０と棒９２０とを、同じ大きさまたは同じ寸法で、同じ動きのパターンを使用して動かされるバーチャルオブジェクトとして見ることができる。
【００６２】
１つ以上の態様によれば、アニメーション関数またはビュークラスノード７１２のＢＥＨＡＶＩＯＲノードのノードは、バーチャル環境モードに基づいて、多数の剣の振りまわしまたは棒の揺り動かしを実行することができる。例えば、棒の揺り動かしは、ほんの２回だけ発生し得るのに対して、剣の振りまわしは、異なったバーチャル環境モードに基づいて３回発生することができる。さらに他の実施形態では、関数、ノードなどは、キャラクタに関連付けられたレベルに基づいて、異なるように実行させることができる。例えば、レベル１０の戦士８０２は、彼または彼女の剣８２０を１０回振りまわすことができるが、レベル３の戦士８０２は、自身の剣８２０を３回しか振りまわすことができない。
【００６３】
ＡＰＰＥＡＲＡＮＣＥノード（例えば、図７参照）は、剣８２０及び棒９２０用の様々なテクスチャまたは材質のプロパティを生成することができるため、一方には光沢があるように見えるが、他方は暗く艶消しされて見えるようにすることができる。さらに、オーディオ効果ノード（図７に示さず）は、異なるオーディオ効果（例えば、剣８２０用の鋭い音と棒９２０用の魔法の杖の効果音）を生成することができる。
【００６４】
１つ以上の態様によれば、ユーザは報酬を受けることができ、及び／またはバーチャル環境のバーチャルオブジェクトとのインタラクションのため、またはバーチャル環境のバーチャルオブジェクトとインタラクトするために、スコアを追跡するか、または集計することができる。例えば、図８のユーザ８０２がドラゴン８０６を攻撃する場合（例えば、第１のバーチャル環境モードに関連付けられた第１の関数を実行する）、バーチャル環境エンジン１１６は、ユーザ８０２に報酬（例えば、ユーザアカウントに結び付いた評価点など）を与えることができる。第１の関数と第２の関数との間の１対１対応に基づいて、図９のユーザ９０２がポニー９０６のところで棒９２０を使用して合図をする場合（例えば、第２のバーチャル環境モードに関連付けられた第２の関数を実行する）、バーチャル環境エンジン１１６は、図９のユーザ９０２に、同様のまたは相当する報酬（例えば、ユーザアカウントに結び付いた評価点など）を与えることができる。
【００６５】
図１０は、１つ以上の態様による、別の例示的な第１のバーチャル環境ビュー１０００である。図１１は、１つ以上の態様による、図１０の第１のバーチャル環境ビュー１０００に対応する別の例示的な第２のバーチャル環境ビュー１１００である。図１１の第２のバーチャル環境ビューは、図１０の第１のバーチャル環境ビューに対応しているため、図１０〜図１１を相互に参照して説明する。
【００６６】
図１０に見られるように、例示的な第１のバーチャル環境ビュー内に示される２人のユーザ８０２及び８０４（例えば、バーチャルオブジェクトのタイプ）がいる。すなわち第１のユーザ８０２及び第２のユーザ８０４である。第１のバーチャル環境モードに基づいた、この第１のバーチャル環境ビューにおいて、第１のバーチャル環境ビューの第１のレンダリングは、第３のユーザ（図示せず）に提示されており、第１のユーザ８０２は第１のスキンを用いてレンダリングされる。
【００６７】
図１１において、同じ２人のユーザ９０２及び９０４が居合わせている。この第２のバーチャル環境ビューでは、第２のバーチャル環境ビューの第２のレンダリングは、第４のユーザ（図示せず）に提示されており、第１のユーザ９０２は第２のスキンを用いてレンダリングされる。言い換えれば、第２のバーチャル環境ビューが第２のバーチャル環境モードに基づいて選ばれるため、図１１の第１のユーザ９０２と第２のユーザ９０４とは、違うようにレンダリングされていて、別々の関数のセットに関連付けられる。例えば、図１０では第１のユーザ８０２を第１の対話関数に関連付けることができ、図１１では第１のユーザ９０２を第２の対話関数に関連付けることができる。
【００６８】
言い換えれば、第３のユーザが、図１０の第１のユーザ８０２を対象にする入力を与えるとき、第１の対話関数が実行され、それによって第３のユーザに対話の第１セットを提示することができる。逆に、第４のユーザが、図１１の第１のユーザ９０２を対象にする同じまたは対応する入力を与えるとき、第２の対話関数が実行され、それによって第４のユーザに対話の第２セットを提示することができる。このようにして、バーチャル環境エンジン１１６は、クラスノードのノード（例えば、ＢＥＨＡＶＩＯＲ、ＧＥＯＭＥＴＲＹ、及びＡＰＰＥＡＲＡＮＣＥ）を利用して、ユーザが互いにインタラクトすることができるが、別々のスキンまたは別々の視点を介して、それらのインタラクションを違うように知覚することができるようにする。クラスノードの全ての関数またはノードが、上記の１対１対応を有することを要求されるわけではない。例えば、１つの態様によれば、第１の対話には、単にテキストレンダリング及び／またはオーディオを含めるだけであってもよく、一方で第２の対話には、対応するテキストレンダリングとオーディオと、ユーザが花のバーチャルオブジェクトを手渡すなどのアニメーションとを含めることができる。
【００６９】
図１０の第３のユーザは第１のバーチャル環境モードに関連付けられ、図１１の第４のユーザは第２のバーチャル環境モードに関連付けられているにも関わらず、図１０の第３のユーザは、図１１の第４のユーザとインタラクトすることができる。言い換えれば、ユーザは、共通バーチャル環境において互いにインタラクトするが、バーチャル環境の中のバーチャルオブジェクトを違うように知覚して、ユーザ等の関連付けられたバーチャル環境モードに基づく個別のインタラクションを有することができる。
【００７０】
この関連で、図１０は、第３のユーザが第１のモードに従ってバーチャル環境を体験しているシナリオの例示的な図であり、図１１は、第４のユーザが、図１０の第１のモードにあるバーチャル環境モード（例えば、第１のモード）と、図１１の第２のモードにあるバーチャル環境モード（例えば、第２のモード）とを除いて、全てのもの（例えば、位置、座標、ユーザの振る舞い、それぞれのユーザから与えられた入力）が同じである第２のモードに従って、バーチャル環境を体験しているシナリオの例示的な図である。
【００７１】
したがって、ビュークラスノード７１２を使用して、プロセッサ１０４のバーチャル環境エンジン１１６は、（例えば、第２のバーチャル環境モードに関連付けられた）第１のユーザの第２のバーチャル環境ビューを、第４のユーザ用に、棒９２０を所持するプリンセス９０４として生成しながら、第１のユーザの第１のバーチャル環境ビューを、（例えば、第１のバーチャル環境モードに関連付けられた）第３のユーザ用に、剣８２０を所持する戦士８０４として生成することができる。ビュークラスノード７１２及び環境構造クラスノード７１４に関連付けられたノードまたは関数には、対応するユーザのバーチャル環境モードが（図７を参照して説明した）引数として備わっているため、例えばＴＲＡＮＳＦＯＲＭ、ｉｍａｇｅＥｆｆｅｃｔ、ＢＥＨＡＶＩＯＲ、ｖｉｓｕａｌＥｆｆｅｃｔｓ、ＧＥＯＭＥＴＲＹ、及びＡＰＰＥＡＲＡＮＣＥなどの関数またはノードは、バーチャル環境エンジン１１６が、図１０〜図１１のバーチャルオブジェクトを、第３及び第４のユーザ用に、違うようにレンダリングまたは生成すること（及び別々のアニメーション、反応、トリガ、ｅｖｅｎｔｓＩｎ、またはｅｖｅｎｔｓＯｕｔを有すること）を可能にすることができる。
【００７２】
さらに別の方法で説明すると、図１０〜図１１の同じ第１のユーザは、別のユーザによって、そのユーザに関連付けられ、そのユーザによってなされた、必ずしもゲームスキンの選択に直接関連しているとは限らない選択に基づいて決定または選択され得るバーチャル環境モードに基づいて、異なるように知覚され、レンダリングされ、または見られ得る（例えば、第３のユーザは、第１のユーザを男性として知覚し、第４のユーザは、第１のユーザを女性として知覚する）。このように、同一または共通のバーチャル環境の２つの別々のバーチャル環境視点（したがってゲーム）は、バーチャル環境モードに基づいて、バーチャル環境エンジン１１６によって作り出され、または生成され得る。
【００７３】
図１２は、１つ以上の態様による、実世界環境１２００からのバーチャル環境ビューが実世界環境１２００に基づいた、例示的な実世界環境１２００の視界である。実世界環境は、建物１２１０、フェンス１２３０、木１２４０、消火栓１２５０、一時停止標識１２６０、第１の道路１２６２、第２の道路１２６４、及び歩道１２６６を含むことができる。先述のように、システム１００の車両センサ１２０は、実世界環境からのデータを収集、検知、または検出して、このデータをデータベース１０８に格納されたバーチャル環境モデル３１０に与えることができる。このようにして、車両センサ１２０は、バーチャル環境モデル３１０に関連付けられたバーチャル環境の内部の態様を、生成または反映するために使用され得る、実世界環境に由来する特徴を検知または検出することができる。
【００７４】
図１２の例では、建物１２１０は、バーチャル環境モードに応じて、城８１０または家９１０のバーチャルオブジェクトに対応することができる。同様に、フェンス１２３０は、壁８３０のバーチャルオブジェクトに対応することができ、本明細書に記載された例では、バーチャル環境モードに基づいて変化しない。木１２４０は、バーチャル環境モードに基づいて、図８〜図９の木８４０及び９４０としてレンダリングされたバーチャルオブジェクトに対応することができる。同様に、道路及び歩道１２６２、１２６４、及び１２６６は、バーチャル環境モードに応じて、図８〜図９の８６２、８６４、及び８６６または９６２、９６４、及び９６６としてのバーチャル環境の特徴に対応することができる。消火栓１２５０及び一時停止標識１２６０などの他の要素は、バーチャル環境モードの１つ（例えば、第２のバーチャル環境モード）のみで（例えば、納屋９５０及び草９６０として）現れ、他の（例えば、第１の）バーチャル環境モードには現れない場合がある。この例では、対応関係は、バーチャル環境座標、または実世界環境とバーチャル環境との要素間の空間的関係に関連する。
【００７５】
したがって、バーチャル環境エンジン１１６によって、同じバーチャル環境モデル３１０及び／またはバーチャル環境座標を使用して、複数プレーヤ（例えば、複数ユーザ）がバーチャル環境ゲームをすることができる車両内のバーチャル環境体験が提供されるとともに、別々の視点または別々のバーチャル環境が生成される。
【００７６】
図１３は、１つ以上の態様による、本明細書に記載のバーチャル環境システムを実装した例示的なシステム構築の概略図である。例えば、図１３のデバイス１２４は、図２のバーチャルリアリティヘッドセット２２４ｃとすることができる。１つ以上の態様によれば、バーチャルリアリティヘッドセット２２４ｃは、バーチャル環境モードに基づいてバーチャルオブジェクトのバーチャル環境ビューをレンダリングするバーチャル環境エンジン１３２０を備えることができる。１つ以上の態様によれば、図１３のバーチャル環境エンジン１３２０は、上に述べた図１〜図３のバーチャル環境エンジンの関数または計算のうちの少なくとも一部を実行することができる。
【００７７】
図１３において、デバイス１２４は、アプリケーション層１３０２、ミドルウェア層１３０４、オペレーティングシステム（ＯＳ）層１３０６、及びハードウェア層１３０８を含む。例示的なＯＳ層１３０６は、Ａｎｄｒｏｉｄ  ＯＳとすることができる。他のオペレーティングシステムを実装してよいことが理解される。さらに、図１３のコンポーネントの１つ以上は、組み合わされ、省略され、または編成されて別のアーキテクチャになり得ることが理解される。例えば、アプリケーション層１３０２は、ＯＳアプリケーション層のコンポーネントを含むことができる。
【００７８】
アプリケーション層１３０２は、デバイス１２４上で動作するネイティブアプリケーション１３１０、非ネイティブアプリケーション１３１２（例えば、サードパーティ）及び相手先商標製品製造会社（ＯＥＭ）アプリケーション１３１４を含むことができる。ネイティブアプリケーション１３１０は、ローカルにインストールされて、デバイスのオペレーティングシステム（例えば、Ａｎｄｒｏｉｄ）上で動作するようにデバイス１２４の製造業者によって設計される。例えば、ネイティブアプリケーション１３１０には、連絡先アプリケーション、電話アプリケーション、及びブラウザアプリケーションのアプリケーションが含まれ得る。非ネイティブアプリケーション１３１２には、サードパーティによって提供されるアプリケーションが含まれる。ＯＥＭアプリケーション１３１４には、車両（図示せず）及びデバイス１２４とのインタラクション用に、車両ＯＥＭによって提供されるアプリケーションが含まれる。ＯＥＭアプリケーション１３１４は、（例えば、図１のネットワーク１２２に接続された）ＯＥＭサーバによって提供されるデバイス１２４上に、ＯＥＭアプリケーション１３１４を起動するためのグラフィックユーザインタフェース（ＧＵＩ）に関連付けることができる。
【００７９】
ミドルウェア層１３０４は、デバイス１２４とデバイス１２４上のアプリケーションとを動作させるためのライブラリ、フレームワーク、及びアプリケーションプログラミングインタフェース（ＡＰＩ）を含むことができる。例えば、通信フレームワーク（ｃｏｍ  ＦＷ）１３１６は、接続性、外部サーバ及びデバイスとの通信、ならびにアプリケーション認証のための機能を含む。車両フレームワーク（車両ＦＷ）１３１８は、車両（例えば、図２の車両２００）と通信すること、（例えば、図１の車両システム１１８及び／または車両センサ１２０との）車両データ交換を処理すること、及び図１のデバイス１２４とコンピューティングデバイス１０２との間のタッチパネルイベントを提供することのための特定のフレームワークである。バーチャル環境エンジンフレームワーク（バーチャル環境エンジンＦＷ）１３２０は、動的な車両内のバーチャル環境体験を促進するためのフレームワークである。例えば、１つ以上の実施形態において、バーチャル環境エンジンＦＷ１３２０は、図１のバーチャル環境エンジン１１６と通信する。他の実施形態では、バーチャル環境エンジンＦＷ１３２０は、バーチャル環境エンジン１１６の関数（例えば、図３のバーチャル環境データモジュール３０２、動的バーチャル環境モジュール３０６、またはレンダリングモジュール３０８）を含むか、または実行することができる。
【００８０】
ＯＳ層１３０６は、デバイス１２４のハードウェアリソース及びソフトウェアリソースを管理するためのサービスを広く提供し、ＯＳコア１３２２を含む。ＯＳコア１３２２は、例えば、Ａｎｄｒｏｉｄ、ｉＯＳ、Ｍｏｂｉｌｅ  Ｌｉｎｕｘ(登録商標)、Ｓｙｍｂｉａｎ  ＯＳ、Ｗｉｎｄｏｗｓ  Ｍｏｂｉｌｅ、ＢｌａｃｋＢｅｒｒｙ  ＯＳ、Ｗｅｂ  ＯＳ、または他のオペレーティングシステムとすることができる。
【００８１】
さらに、ハードウェア層１３０８は、ハードウェアリソースの直接管理及び直接アクセスのための機能を含むことができる。デバイス１２４は、プロセッサ１３２４、メモリ１３２６、ディスク１３２８、位置センサ及びモーションセンサ１３３０、入出力装置１３３２（例えば、デバイス１２４のタッチスクリーン、デバイス１２４のキーボード、及びデバイス１２４のマイクロフォン）などのハードウェアを備えることができる。ハードウェア層１３０８のコンポーネントは、例えば、バス１３３４を介して、互いに通信することができる。デバイス１２４は、図１のコンピューティングデバイス１０２として同一または類似のコンポーネントを備えることができる。したがって、１つ以上の態様によれば、デバイス１２４、具体的にハードウェア層１３０８のコンポーネントは、図１のバーチャル環境エンジン１１６を参照して説明した１つ以上の関数を実行することができる。例えば、メモリ１３２６は１つ以上の命令を格納することができ、プロセッサ１３２４またはプロセッサ１３２４のバーチャル環境エンジン１３２０は、メモリ１３２４に格納された命令の１つ以上を実行して、本明細書に記載されたバーチャル環境ビューの生成を行うことができる。他の実施形態では、バーチャル環境エンジン１３２０は、システム１００のメモリ１０６に格納された命令の１つ以上を実行して、バーチャル環境ビューの生成を行うことができる。
【００８２】
位置センサ及びモーションセンサ１３３０は、ハードウェアベース及び／またはソフトウェアベースのセンサを備えることができる。例えば、モーションセンサは、ハードウェアベースの加速度計、ジャイロスコープ、磁気計などを備えることができる。モーションセンサは、ソフトウェアベースの重力センサ、線形加速度センサ、及び回転ベクトルセンサを含むこともできる。１つ以上の態様によれば、ソフトウェアベースのセンサは、加速度計及び磁気計からデータを得ることができる。他の実施形態では、ソフトウェアベースのセンサは、このデータを得るためにジャイロスコープを使用することができる。モーションセンサは、傾き、動揺、回転、または振動などのデバイスの動きを監視するのに役立つ。この動きは、直接のユーザ入力を反映したものであり得るが、デバイス１２４が位置している物質的環境を反映したものである可能性もある。例えば、デバイス１２４は、デバイス１２４が設置された及び／または取り付けられた車両の動きを検出することができる。ハードウェア抽象化層のコンポーネントは、例えば、ジャイロモジュール、加速度モジュール、磁気モジュール、回転ベクトルモジュール、線形加速度モジュール、及び重力モジュールなどの上記のセンサからモーションデータを得ることができる。
【００８３】
同様に、位置センサは、ハードウェアベースの地球磁場センサ及び近接センサを備えることができる。方位センサは、ソフトウェアベースとすることができ、そのデータを加速度計及び／または地球磁場センサ、ジャイロスコープ、磁気計などから得ることができる。位置センサは、世界の基準系における、または別の基準系、例えば、車両基準系（例えば、車両のモーション基準系）におけるデバイス１２４の物理的な位置を決定するのに役立つ。別の実施形態では、方位センサ（または類似のセンサベースの方位測定方法）を使用して、アプリケーションの基準系におけるデバイス１２４位置を決定することができる。
【００８４】
デバイス１２４は、例えば環境センサ（例えば、湿度、輝度、周囲圧力、及び周囲温度）などの他のセンサを含むこともできることが理解される。そのうえ、さらなる実施形態では、デバイス１２４のカメラ（図示せず）を、カメラによって取得された画像データから、モーション、位置、ジェスチャ認識などを検出するセンサとして使用することができる。位置センサ及びモーションセンサ１３３０は、位置センサ及びモーションセンサ１３３０を使用することによって、車両システム１１８及びセンサ１２０から独立して、車両動力学データを含む車両データを収集して取得することができる。
【００８５】
図２に関しては、スマートフォン２２４ａは、第１のバーチャル環境モードに基づいて、バーチャルオブジェクトの第１のバーチャル環境ビューをレンダリングすることができ、またタブレット２２４ｂは、第２のバーチャル環境モードに基づいて、バーチャルオブジェクトの第２のバーチャル環境ビューをレンダリングすることができる。同一もしくは共通のバーチャルオブジェクトが、または同一もしくは共通のバーチャルオブジェクトも、第１のバーチャル環境ビュー及び第２のバーチャル環境ビューの中に含まれるように、第１のバーチャル環境ビューが、スマートフォン２２４ａによってレンダリングされ、並行してまたは同時に行う方法で、第２のバーチャル環境ビューが、タブレット２２４ｂによってレンダリングされる。
【００８６】
バーチャルオブジェクトは、第１のバーチャル環境ビュー内で第１のオブジェクトとしてレンダリングされ、バーチャルオブジェクトは、第２のバーチャル環境ビュー内で、第１のオブジェクトとは異なる第２のオブジェクトとしてレンダリングされる。このことの例は、先述のように、図８及び図１０ならびに図９及び図１１に見ることができる。説明のために、図８のドラゴン８０６のバーチャルオブジェクトと、図９のポニー９０６のバーチャルオブジェクトとは、図２のデータベース１０８に格納されたバーチャル環境モデル３１０において、同一または単一のバーチャルオブジェクトとして表される。しかしながら、図８のユーザ８０２が第１のモードに関連付けられ、図９のユーザ９０２が第２のモードに関連付けられるため、このバーチャルオブジェクトは、第１のバーチャル環境ビューでは第１のオブジェクト（例えば、ドラゴン８０６）としてレンダリングされて、第２のバーチャル環境ビューでは第２のオブジェクト（例えば、ポニー９０６）としてレンダリングされる。
【００８７】
デバイス１２４のＩ／Ｏインタフェース１３３２は、コントローラなどのＩ／Ｏデバイスを備えることができる。コントローラは、１つ以上の複数のボタン、ジョイスティック、モーションセンサなどを備えたゲームコントローラとすることができる。いずれにしても、デバイス１２４のＩ／Ｏインタフェース１３３２は、Ｉ／Ｏデバイスまたはコントローラから、ユーザ入力などの１つ以上の入力を受信することができる。例えば、コントローラは、「Ａ」ボタン、「Ｂ」ボタン、「Ｘ」ボタン、及び「Ｙ」ボタンを含むことができる。別の例として、デバイス１２４のＩ／Ｏインタフェース１３３２は、第１の入力、第２の入力、第３の入力、第４の入力などを受信することができる。したがって、図２に関して、スマートフォン２２４ａは、第１の入力及び第２の入力に関連付けることができる。同様に、タブレット２２４ｂは、第１の入力及び第２の入力に関連付けることができる。それぞれのデバイスが第１の入力（例えば、「Ａ」ボタンの押下）を受信すると、対応する関数をトリガさせることができる。
【００８８】
第１の関数が第１のバーチャル環境モードに対応し、第２の関数が第２のバーチャル環境モードに対応するシナリオにおいて、スマートフォン２２４ａでのＩ／Ｏインタフェース１３３２による第１の入力の受信は、第１の関数の実行をトリガし、タブレット２２４ｂでのＩ／Ｏインタフェース１３３２による第１の入力の受信は、第２の関数の実行をトリガする。例えば、図８に関連して、第１の入力が受信されたとき、第１の関数の実行によって、プロセッサのバーチャル環境エンジンは、鋭い音の効果などを伴い得る、剣８２０用の振りまわしアニメーションを生成することができる。逆にあるいはそれに応じて、図９に関連して、第１の入力が受信されたとき、第２の関数の実行によって、プロセッサ１０４のバーチャル環境エンジン１１６は、棒９２０用の揺り動かし（例えば、火花や閃光が棒９２０から飛び散り得る）アニメーションを生成することができる。１つ以上の態様によれば、第１の関数と第２の関数とは、対応するアニメーションを有することができる。例えば、揺り動かし及び振りまわしのアニメーションは、同じ継続時間、同じ動きパターンなどを有してもよく、対応するユーザに関連付けられたバーチャル環境モードに基づくことができる。
【００８９】
図１４Ａ〜図１４Ｂは、１つ以上の態様による、共通バーチャル環境の例示的な第１のバーチャル環境ビュー及び第２のバーチャル環境ビューである。追加として、本明細書に記載される第１及び第２のバーチャル環境モードまたはビューは、単に別々のスキンを提供するよりも、もっと抽象的なレベルで実装することができる。例えば、図１４Ａ〜図１４Ｂに関して、バーチャル環境は、バーチャル環境モードまたはバーチャル環境ビューに基づいて、２Ｄから３Ｄにマッピングまたは再マッピングすることができる。
【００９０】
図１４Ａに関連付けられた第１のバーチャル環境モードでは、様々なバーチャルオブジェクトが第１のユーザを対象にしてレンダリングされる。バーチャルオブジェクトには、第１のバーチャルユーザ１４１０、宝箱１４２０、鳥１４３０、木１４４０、太陽１４５０、及び第２のバーチャルユーザ１４９０が含まれる。本態様によれば、バーチャルオブジェクト１４１０、１４２０、１４３０、１４４０、１４５０、及び１４９０は、バーチャル環境モデル３１０に格納されたバーチャルオブジェクト情報に基づいて、２Ｄビュー内にレンダリングされる。図１４Ｂに関連付けられた第２のバーチャル環境モードでは、第１のバーチャルユーザ１４１０、宝箱１４２０、鳥１４３０、木１４４０、太陽１４５０、及び第２のバーチャルユーザ１４９０は、バーチャル環境エンジン１１６によって、３Ｄビュー内にレンダリングされる。このようにして、バーチャルオブジェクト１４１０、１４２０、１４３０、１４４０、１４５０、及び１４９０を、第１のバーチャル環境ビューにおける第１のレンダリングに基づいてレンダリングすることができるとともに、第１のレンダリングとは異なった、第２のバーチャル環境ビューにおける第２のレンダリングに基づいてレンダリングすることができる。したがって、共通バーチャル環境に基づいて種々のバーチャル環境視点を提供するシステム１００は、単に別々のスキンを提供すること以外の方法で、種々の視点間または視界間で、バーチャルオブジェクトを違うようにレンダリングすることができる。
【００９１】
先述のように、第１のバーチャル環境モードは、第１のユーザ体験に適用することができ、一方第２のバーチャル環境モードは、バーチャル環境エンジン１１６によって、第２のユーザ体験に適用することができる。バーチャル環境は、ゲームジャンル、ゲーム選択、アバタ選択、ゲームに残された評点、以前のゲームプレイなどに関連した選択など、ユーザによってなされた選択に基づいて選択することができる。１つ以上の他の態様によれば、バーチャル環境エンジン１１６は、ユーザの人口統計に基づいて、またはユーザのデバイスのハードウェア能力に基づいて、対応するバーチャル環境をユーザに関連付けることができる。例えば、低級のグラフィックス処理能力を有した第１のデバイス（例えば、スマートフォン）を利用する第１のユーザには、図１４Ａに関連付けられた第１のバーチャル環境モードの要素が提示されるゲームを提供することができ、一方で第１のデバイスよりも高いグラフィックス処理能力を有した第２のデバイス（例えば、タブレット）を利用する第２のユーザには、図１４Ｂに関連付けられた第２のバーチャル環境モードの要素が提示されるゲームを提供することができる。
【００９２】
図１４Ａ〜図１４Ｂのレンダリングの、相違する次元と同じように、それぞれのバーチャルオブジェクトを、体験に関連付けられたモードに基づいて、種々の関数のセットに関連付けることができる。言い換えれば、第１のユーザに関連付けられた図１４Ａのバーチャルオブジェクト１４１０、１４２０、１４３０、１４４０、１４５０、及び１４９０と第１のバーチャル環境モードとは、第１の関数セットに関連付けることができ、一方、第２のユーザに関連付けられた、同一の、対応する図１４Ｂのバーチャルオブジェクトと第２のバーチャル環境モードとは、第２の関数セットに関連付けることができる。
【００９３】
第２の関数のセットは、必ずしも１対１の形で第１の関数のセットに対応していなくてもよい。例えば、図１４Ａ〜図１４Ｂと関係があるデバイスの処理能力の差異に起因して、第２の関数セットに対応する特定の関数は、第１の関数セットの範囲内で使用可能にすることができない。これの例には、バーチャルオブジェクト１４１０、１４２０、１４３０、１４４０、１４５０、及び１４９０の１つ以上とのインタラクションのためのオーディオの提示が含まれ、これらバーチャルオブジェクトは、図１４Ａではテキストまたは字幕として提示されるが、図１４Ｂでは字幕またはテキストではなく、オーディオとして提示することができる。このように、第１の関数セットに対するバーチャルオブジェクト１４１０、１４２０、１４３０、１４４０、１４５０、及び１４９０は、第２の関数セットと１対１のトリガの対応を有する。だが、同じトリガに基づいている場合に、第１の関数及び関数のセットに関連付けられた出力が、異なったユーザインタラクション体験をもたらすことができる。
【００９４】
同様に、レンダリングがそれぞれ図１４Ａ〜図１４Ｂの２Ｄ及び３Ｄで行われるにしても、第１の関数セットは、第２の関数セットと１対１のアニメーションの対応を有することができる。しかしながら、第１の関数セットと第２の関数セットとの間の１対１対応は、第１の関数セットと第２の関数セットとの間のコードが同一であるということを必ずしも意味するものではない（例えば、オーディオを再生することに対してテキストを出力すること）。このようにして、ユーザ１４１０が宝箱１４２０に近づいて第１の入力を与える場合、図１４Ａ〜図１４Ｂの宝箱１４２０は開くようにレンダリングされ、中身がユーザ１４１０に引き渡されるか、またはユーザの所有物リストに追加される。
【００９５】
図１５Ａ〜図１５Ｂは、１つ以上の態様による、共通バーチャル環境の例示的な第１のバーチャル環境ビュー及び第２のバーチャル環境ビューである。バーチャル環境エンジン１１６は、図１５Ａの第１のゲーム（例えば、じゃんけん）と、図１５Ｂの第２のゲームとに関連付けられた得点を保持することができる。第１のゲーム及び第２のゲームは共通バーチャル環境に基づいているため、ユーザの選択は、２つのゲームの間で互いを反映する。例えば、第１のゲームにおいて、紙１５２０が岩１５１０に勝ち、はさみ１５３０が紙１５２０に勝ち、岩１５１０がはさみ１５３０に勝つと仮定して、第２のゲームの犬１５１２が岩１５１０に関連付けられ、ネズミ１５２２が紙１５２０に関連付けられ、猫１５３２がはさみ１５３０に関連付けられているとすれば、第１のゲームと第２のゲームとの間で対応する選択を行うプレーヤまたはユーザには、同じ結果または同じ得点がバーチャル環境エンジン１１６によって与えられ得る。このようにして、第１のゲーム及び第２のゲームは、互いに１対１の対応を有することができ、単にバーチャルオブジェクト１５１０、１５２０、１５３０、１５１２、１５２２、１５３２に対して違うようにスキンを適用しているだけではなく、第１のゲーム及び第２のゲームが違うようにスキンされる。つまり、図１５Ａ〜図１５Ｂのバーチャルオブジェクトは違うようにスキンされるが、プレーヤに提示される意思決定または選択も、相違する形でフレーム化またはレンダリングされる（例えば、動物の選択に対して、岩、紙、及びはさみを選択すること）。この点で、さらなるゲーム要素が、別のゲームに対する片方のゲームでレンダリングされるか、または存在することができる。例えば、じゃんけんでは、上記の通り、勝利は状態マシンによって定義されるが、図１５Ｂでは、動物管理人１５５２というさらなる要素がレンダリングされる。図１５Ａでは、じゃんけんの選択されたものが、第１のユーザと（コンピュータプレーヤまたは別のユーザであり得る）第２のユーザとの両方に対してレンダリングされる。図１５Ｂでは、第２のプレーヤの選択されたものが隠され、ゲームの結果が、違うようにレンダリングされる。例えば、図１５Ａでは、勝利または敗北のメッセージは、バーチャル環境エンジン１１６によって提示されるか、またはレンダリングされるが、動物管理人１５５２は、図１５Ｂにおいてユーザが選択したものを、負ける選択に基づいて「捕獲する」ことができ、一方、第２のユーザが選択したもの（犬、猫、ネズミ）はレンダリングしない。
【００９６】
図１６Ａ〜図１６Ｂは、１つ以上の態様による、共通バーチャル環境の例示的な第１のバーチャル環境ビュー及び第２のバーチャル環境ビューである。図１６Ａにおいて、ダンジョンクローラーゲームを、テキストプロンプト１６０２、１６０４、及び１６０６を介して実行することができる。図１６Ｂでは、同じダンジョンクローラーゲームを、グラフィカルユーザインタフェース（ＧＵＩ）を介して実行することができ、ＧＵＩにはユーザ及び宝箱としてのバーチャルオブジェクト１６１０及び１６１２がそれぞれ含まれる。図１６Ａでは、いかなるバーチャルオブジェクトのレンダリングも行われず、一方、図１６Ｂでは、バーチャルオブジェクトのレンダリングがバーチャル環境エンジン１１６によって提供される。さらに、コントロールパッド１６５０、及び入力ボタン１６５２、１６５４など、第２の関数セットの１つ以上を、ＧＵＩ１６００上でレンダリングすることができる。
【００９７】
さらに別の実施形態では、本明細書で提示される技法の１つ以上の実施形態を実装するように構成されたプロセッサ実行可能命令を含むコンピュータ可読媒体が必要とされる。これらの方法で考案されたコンピュータ可読媒体またはコンピュータ可読装置の実施形態が図１７に示される。実装１７００には、ＣＤ−Ｒ、ＤＶＤ−Ｒ、フラッシュドライブ、ハードディスクドライブのプラッタなどのコンピュータ可読媒体１７０８が含まれ、その上に符号化されたコンピュータ可読データ１７０６がある。１７０６に示すように、複数のゼロ及び１を含むバイナリデータなどの、このコンピュータ可読データ１７０６は、さらには、本明細書に記載された１つ以上の原理に従って動作するように構成されたプロセッサ実行可能コンピュータ命令のセット１７０４を含む。そのような１つの実施形態１７００において、プロセッサ実行可能コンピュータ命令１７０４は、図４の方法４００または図５の方法５００などの方法１７０２を実行するように構成することができる。別の実施形態では、プロセッサ実行可能コンピュータ命令１７０４は、図１〜図２のシステム１００などのシステムを実装するように構成することができる。本明細書で提示される技法に従って動作するように構成された、このようなコンピュータ可読媒体の多くは、当業者によって工夫して作りだすことができるものである。
【００９８】
この出願で使用されているように、「コンポーネント」、「モジュール」、「システム」、「インタフェース」などという語は、全体として、ハードウェア、ハードウェアとソフトウェアとの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかのコンピュータ関連エンティティを指すものとする。例えば、コンポーネントは、プロセッサ上で動作するプロセス、処理ユニット、オブジェクト、実行ファイル、実行スレッド、プログラム、またはコンピュータであってもよいが、これに限定されない。実例として、コントローラ上で動作するアプリケーションとコントローラとの両方がコンポーネントであってもよい。プロセスまたは実行スレッド内に存在する１つ以上のコンポーネントとコンポーネントとは、１つのコンピュータ上に局在してもよく、２つ以上のコンピュータの間に分散していてもよい。
【００９９】
さらに、特許請求される主題は、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組み合わせを生成するために、標準のプログラミング技術またはエンジニアリング技術を使用して、方法、装置、または製品として実装され、開示される主題を実施するコンピュータを制御する。本明細書で使用される「製品」という語は、任意のコンピュータ可読デバイス、搬送波、または媒体からアクセス可能なコンピュータプログラムを含むことが意図されている。当然ながら、特許請求の範囲に記載の主題の範囲または趣旨から逸脱することなく、本構成に多くの変更を加えることができる。
【０１００】
図１８と以下の説明とは、本明細書に記載の規定の１つ以上についての実施形態を実装するための適切なコンピューティング環境の説明を提供する。図１８の運用環境は、適切な運用環境の単なる一例に過ぎず、運用環境の使い方または機能性の範囲に関するいかなる制限も示唆するものではない。コンピューティングデバイスの例には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、例えば、携帯電話、携帯情報端末（ＰＤＡ）、メディアプレーヤなどのモバイル機器、マルチプロセッサシステム、消費者電子機器、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境などが含まれるが、これらに限定されない。
【０１０１】
全般に、実施形態は、１つ以上のコンピューティングデバイスによって実行される一般の「コンピュータ読取り可能命令」との関連で説明される。コンピュータ読取り可能命令は、後述するようにコンピュータ可読媒体を媒介として配布することができる。コンピュータ読取り可能命令は、１つ以上のタスクを実行するか、または１つ以上の抽象データ型を実装する関数、オブジェクト、アプリケーションプログラミングインタフェース（ＡＰＩ）、データ構造などのプログラムモジュールとして実装されてもよい。一般に、コンピュータ読取り可能命令の機能性は、様々な環境の中で要望どおりに組み合わされるか、または分散される。
【０１０２】
図１８は、本明細書で提供される１つ以上の実施形態を実装するように構成されたコンピューティングデバイス１８１２を備えるシステム１８００を示す。１つの構成において、コンピューティングデバイス１８１２は、少なくとも１つの処理ユニット１８１６及びメモリ１８１８を備える。コンピューティングデバイスの正確な構成及び型によるが、メモリ１８１８は、ＲＡＭなどの揮発性のもの、ＲＯＭ、フラッシュメモリなどの不揮発性のもの、またはこれら２つを組み合わせたものとすることができる。この構成は、破線１８１４によって図１８に示される。
【０１０３】
他の実施形態では、コンピューティングデバイス１８１２は、さらなる機能または機能性を備える。例えば、コンピューティングデバイス１８１２は、磁気記憶装置、光学記憶装置などを含むが、これに限定されないリムーバブル記憶装置または非リムーバブル記憶装置などの追加記憶装置を備えることができる。そのような追加記憶装置が、記憶装置１８２０によって図１８に示される。１つ以上の態様によれば、本明細書で提供される１つ以上の実施形態を実装するためのコンピュータ読取り可能命令は、記憶装置１８２０内にある。記憶装置１８２０は、オペレーティングシステム、アプリケーションプログラムなどを実装するための他のコンピュータ読取り可能命令を格納することができる。コンピュータ読取り可能命令は、例えば処理ユニット１８１６による実行のために、メモリ１８１８内にロードすることができる。１つ以上の態様によれば、バーチャル環境エンジン１１６は、処理ユニット１８１６を介して実装され、メモリ１８１８に格納された１つ以上の命令を実行するように構成することができる。
【０１０４】
本明細書で使用する「コンピュータ可読媒体」という語は、コンピュータ記憶媒体を含む。コンピュータ記憶媒体は、コンピュータ読取り可能命令または他のデータなどの情報を記憶するための任意の方法または技術で実装される、揮発性及び不揮発性の、リムーバブル及び非リムーバブルの媒体を含む。メモリ１８１８及び記憶装置１８２０は、コンピュータ記憶媒体の例である。コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）もしくは他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または所望の情報を格納するために使用されるとともに、コンピューティングデバイス１８１２によってアクセスされ得る他のいかなる媒体も含まれるが、これに限定されない。このようなコンピュータ記憶媒体は、いずれもコンピューティングデバイス１８１２の一部である。
【０１０５】
「コンピュータ可読媒体」という語は、通信媒体を含む。通信媒体は、一般に、搬送波または他の搬送機構などの「変調データ信号」内のコンピュータ読取り可能命令または他のデータを具体化する、任意の情報配信媒体を含むものである。「変調されたデータ信号」という語は、その特性の１つ以上が、信号内の情報を符号化するような方式で、設定または変更された信号を含む。
【０１０６】
コンピューティングデバイス１８１２は、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイス、赤外線カメラ、ビデオ入力デバイス、またはその他の入力デバイスなどの入力デバイス（複数可）１８２４を備える。１つ以上のディスプレイ、スピーカ、プリンタ、またはその他の出力デバイスなどの出力デバイス（複数可）１８２２を、コンピューティングデバイス１８１２に含めることができる。入力デバイス１８２４及び出力デバイス１８２２は、有線接続、無線接続、またはそれらの任意の組み合わせを介して、コンピューティングデバイス１８１２に接続することができる。１つ以上の態様によれば、別のコンピューティングデバイスの入力デバイスまたは出力デバイスを、コンピューティングデバイス１８１２用の入力デバイス（複数可）１８２４または出力デバイス（複数可）１８２２として、使用することができる。コンピューティングデバイス１８１２は、例えば、ネットワーク１８２８などを介して、１つ以上の他のデバイス１８３０との通信を促進する通信接続（複数可）１８２６を備えることができる。
【０１０７】
上記で開示された多数の特徴及び機能、並びに他の多数の特徴及び機能、あるいはそれらの代替または変種は、望ましくは他の多くの異なったシステムまたはアプリケーションに組み合わせ得ることが理解されよう。さらに、当業者であれば引き続いて行うことができる、本開示における現在、予期できない、または予期していなかった種々の代替、変更、変形または改良は、以下の特許請求の範囲によって包含されることも意図されている。
【図１】
2019087235.tif 000003
【図２】
2019087235.tif 000004
【図３】
2019087235.tif 000005
【図４】
2019087235.tif 000006
【図５】
2019087235.tif 000007
【図６】
2019087235.tif 000008
【図７】
2019087235.tif 000009
【図８】
2019087235.tif 000010
【図９】
2019087235.tif 000011
【図１０】
2019087235.tif 000012
【図１１】
2019087235.tif 000013
【図１２】
2019087235.tif 000014
【図１３】
2019087235.tif 000015
【図１４Ａ】
2019087235.tif 000016
【図１４Ｂ】
2019087235.tif 000017
【図１５Ａ】
2019087235.tif 000018
【図１５Ｂ】
2019087235.tif 000019
【図１６】
2019087235.tif 000020
【図１７】
2019087235.tif 000021
【図１８】
2019087235.tif 000022