(57)【要約】仮想世界の相互作用、操作、インプレメンテーション、インスタンス化、生成、および他の仮想世界関連機能のシステムおよび方法（本明細書中用いられる「仮想世界」という用語については、現実的構造、シミュレートされた構造、空想構造または他の構造を反映した仮想世界システム、仮想環境を指すものとして理解されるべきであり、３Ｄ環境内の相互作用を用いた情報システムを含む点に留意されたい）。多様な実施形態により、仮想世界間および仮想世界内の相互運用が促進され、仮想世界を操作するための一貫した構造が得られる。開示の実施形態により、個人がフレームワークを用いて新規の仮想世界を構築することがさらに可能になり、サードパーティユーザが仮想世界とより良く相互作用することが可能になる。【選択図】図１
2014529792.tif 000002
【特許請求の範囲】
【請求項１】
仮想世界システム間においてユーザデータを通信する方法であって、前記方法は仮想ワールドサーバ上において行われ、前記方法は、
１つ以上のプロセッサを含む仮想ワールドサーバにおいて、外部仮想ワールドサーバからのアバターの転送についてのリクエストを受信することと、
前記アバターの前記仮想ワールドサーバへのアクセスを認証する権利を判別することと、
前記外部仮想ワールドサーバと共に転送プロトコルを完了することと、
前記仮想ワールドサーバと関連付けられた１つ以上の変換規則に基づいて、前記アバターと関連付けられた特性を変換することと、
前記仮想ワールドサーバ上の１つ以上の世界との相互作用に前記アバターを参加させることと、
を備える、方法。
【請求項２】
前記転送プロトコルを完了することは、暗号的にセキュアな転送を行うことを備え、前記セキュアな転送は、前記アバターが複数の仮想世界中に同時に出現することを抑制するように構成される、上記請求項のうちいずれかの方法。
【請求項３】
前記特性を変換することは、前記特性と、前記仮想ワールドサーバによって許容された相当する特性とを整合させることを含む、上記請求項のうちいずれかの方法。
【請求項４】
前記特性を変換することは、前記特性と前記相当する特性との間の値の差を判別することと、前記値の差についてクレジット精算を提供することとをさらに備える、請求項３の方法。
【請求項５】
前記特性を整合させることは、前記特性の１つ以上の属性および前記相当する特性の１つ以上の属性を分析することを含む、請求項３〜４の方法。
【請求項６】
前記特性を整合させることは、前記仮想ワールドサーバおよび前記外部仮想ワールドサーバと関連付けられた１つ以上のローカルツーローカル変換同意規則を処理することを備える、請求項３〜５の方法。
【請求項７】
前記外部仮想ワールドサーバは、前記仮想ワールドサーバと同じコンピューティングデバイス上に収容される、上記請求項のうちいずれかの方法。
【請求項８】
前記特性を変換することは、前記特性変換を反映するように前記アバターと関連付けられたグローバルアバター状態を変更することを備える、上記請求項のうちいずれかの方法。
【請求項９】
前記特性を変換することは、前記特性変換を反映するように前記アバターと関連付けられたローカルアバター状態を保存して、前記アバターと関連付けられたグローバルアバター状態は、変更する必要が無くなることを備える、上記請求項のうちいずれかの方法。
【請求項１０】
前記特性を変換することは、前記アバターと関連付けられた以前保存されたローカルアバター状態に基づいて、前記特性のうち１つ以上を変更することを含み、これにより、前記仮想ワールドサーバ上における前記アバターの以前の活動の効果が前記アバターへ回復される、上記請求項のうちいずれかの方法。
【請求項１１】
上記請求項のうちいずれかの方法を行うように構成されたコンピュータシステム。
【請求項１２】
仮想世界システム間でユーザデータを通信させるように構成されたコンピュータシステムであって、前記システムは、
コンピュータによって読み出し可能な記憶装置であって、前記記憶装置上に、実行可能な命令としてインプリメントされる複数のモジュールが保存される、記憶装置と、
前記複数のモジュールを実行するように構成された１つ以上のコンピュータプロセッサと、
外部仮想ワールドサーバからのアバターの転送についてのリクエストを受信するように構成された転送受信モジュールと、
前記アバターの前記仮想ワールドサーバへのアクセスを認証する権利を判別するように構成された認証モジュールと、
前記外部仮想ワールドサーバとの転送プロトコルを完了するように構成された転送モジュールと、
前記仮想ワールドサーバと関連付けられた１つ以上の変換規則に基づいて、前記アバターと関連付けられた特性を変換するように構成された変換モジュールと、
前記仮想ワールドサーバ上の１つ以上の世界との相互作用に前記アバターを参加させるように構成された相互作用モジュールと、
を備える、コンピュータシステム。
【発明の詳細な説明】
【優先権および関連出願】
【０００１】
本明細書は、米国仮特許出願第６１／５２４，９５６号（出願日：２０１１年８月１８日）に対する非仮出願として優先権を主張する。上記の出願全体を、あたかも本明細書中に記載されているかのように、参考のため援用する。
【発明の分野】
【０００２】
今日、インターネット上の情報、グラフィカルおよび他のコンテンツは、主に２次元形態で提示されている（例えば、ウェブページ（「フラットウェブ」）。既存の技術に３次元世界を導入するための努力が為されているものの、３次元環境をゲームまたは限られたアプリケーションユーティリティとして取り扱っている（例えば、車製造業者のウェブサイトへ為されたユーザ入力に基づいた車の３次元レンディング）。さらに、３次元世界システムの範囲はモノリシックであり、典型的には制御、操作および管理は単一のエンティティによって行われ、フラットウェブよりもずっと狭い範囲に限定されている。そのため、仮想世界システムとして命名されたものであれまたは「３Ｄウェブ」として命名されたものであれ、これらのシステムの狭い範囲や、これらのシステムの管理者によって実行されるしばしば特異的な方針およびインターフェースや、実行に対する技術的障壁を解消するための革新的な技術的ソリューションの不在により、より範囲の広い３次元情報システムの開発が阻まれている。
【０００３】
よって、本明細書中開示されるのは、仮想世界の相互作用、操作、インプレメンテーション、インスタンス化、生成および他の仮想世界関連機能のシステムおよび方法である（本明細書中用いられる「仮想世界」という用語は、現実的構造、シミュレートされた構造、空想構造または他の構造を反映した仮想世界システム、仮想環境を指すものとして理解されるべきであり、３Ｄ環境内の相互作用を用いた情報システムを含む点に留意されたい）。多様な実施形態により、仮想世界間および仮想世界内の相互運用が促進され、仮想世界を操作するための一貫した構造が得られる。開示の実施形態により、個人がフレームワークを用いて新規の仮想世界を構築することがさらに可能になり、サードパーティユーザが仮想世界とより良く相互作用することが可能になる。
【０００４】
実施形態は、仮想世界システム間においてユーザデータを通信する方法である。方法は、仮想ワールドサーバ上において実行される。仮想ワールドサーバは、１つ以上のプロセッサを含み、外部仮想ワールドサーバからのアバターの転送についてのリクエストを受信する。仮想ワールドサーバは、アバターの仮想ワールドサーバへのアクセスを認証する権利を判別する。仮想ワールドサーバは、外部仮想ワールドサーバと共に転送プロトコルを完了する。仮想ワールドサーバは、仮想ワールドサーバと関連付けられた１つ以上の変換規則に基づいて、アバターと関連付けられた特性を変換する。仮想ワールドサーバは、仮想ワールドサーバ上の１つ以上の世界との相互作用にアバターを参加させる
【０００５】
任意選択的に、上記した実施形態のうち任意の実施形態において、転送プロトコルを完了することは、暗号的にセキュアな転送を行うことを備える。暗号的にセキュアな転送は、アバターが複数の仮想世界中に同時に出現することを抑制することを行うように構成される。
【０００６】
任意選択的に、上記した実施形態のうち任意の実施形態において、特性を変換することは、特性と、仮想ワールドサーバによって許容された相当する特性とを整合させることを備える。
【０００７】
任意選択的に、上記した実施形態のうち任意の実施形態において、特性を変換することは、特性と相当する特性との間の値の差を判別することと、値の差についてクレジット精算を提供することとをさらに備える。
【０００８】
任意選択的に、上記した実施形態のうち任意の実施形態において、特性を整合させることは、特性の１つ以上の属性および相当する特性の１つ以上の属性を分析することを備える。
【０００９】
任意選択的に、上記した実施形態のうち任意の実施形態において、特性を整合させることは、仮想ワールドサーバおよび外部仮想ワールドサーバと関連付けられた１つ以上のローカルツーローカル変換同意規則を処理することを備える。
【００１０】
任意選択的に、上記した実施形態のうち任意の実施形態において、外部仮想ワールドサーバは、仮想ワールドサーバと同じコンピューティングデバイス上に収容される。
【００１１】
任意選択的に、上記した実施形態のうち任意の実施形態において、特性を変換することは、特性変換を反映するようにアバターと関連付けられたグローバルアバター状態を変更することを備える。
【００１２】
任意選択的に、上記した実施形態のうち任意の実施形態において、特性を変換することは、特性変換を反映するようにアバターと関連付けられたローカルアバター状態を保存することを備える。アバターと関連付けられたグローバルアバター状態は、変更する必要は無い。
【００１３】
任意選択的に、上記した実施形態のうち任意の実施形態において、特性を変換することは、アバターと関連付けられた以前保存されたローカルアバター状態に基づいて、特性のうち１つ以上を変更することを備える。仮想ワールドサーバ上におけるアバターの以前の活動の効果は、アバターへ回復することができる。
【００１４】
実施形態として、コンピュータシステムがある。このコンピュータシステムは、仮想世界システム間のユーザデータと通信するように構成される。コンピュータシステムは、コンピュータによって読み出し可能な記憶装置を含む。コンピュータによって読み出し可能な記憶装置上には、実行可能な命令としてインプリメントされる複数のモジュールが保存される。コンピュータシステムは、複数のモジュールを実行するように構成された１つ以上のコンピュータプロセッサを含む。コンピュータシステムは、外部仮想ワールドサーバからのアバターの転送についてのリクエストを受信するように構成された転送受信モジュールを含む。コンピュータシステムは、アバターの仮想ワールドサーバへのアクセスを認証する権利を判別するように構成された認証モジュールを含む。コンピュータシステムは、外部仮想ワールドサーバとの転送プロトコルを完了するように構成された転送モジュールを含む。コンピュータシステムは、変換モジュールを含む。変換モジュールは、仮想ワールドサーバと関連付けられた１つ以上の変換規則に基づいて、アバターと関連付けられた特性を変換するように、構成される。コンピュータシステムは、仮想ワールドサーバ上の１つ以上の世界との相互作用にアバターを参加させるように構成された相互作用モジュールを含む。
【００１５】
実施形態として、仮想世界内におけるアクションの許可可能性を判別する方法がある。サービスプロバイダは、コンピューティングハードウェアを備えるサービスプロバイダにより、仮想世界内のオブジェクトに対するアクションの仮想世界エンティティによる試行を特定する。サービスプロバイダは、１つ以上のゲートキーパーオブジェクトを選択する。１つ以上のゲートキーパーオブジェクトが有する許可規則は、仮想世界エンティティがオブジェクトに対してとるべきアクションの許可可能性を判別するように構成される。許可規則は、アバター整合コンポーネント、アクション整合コンポーネントおよびオブジェクト整合コンポーネントのうち１つ以上を含む。サービスプロバイダは、ゲートキーパーオブジェクトのうち１つ以上を通じて反復して、仮想世界エンティティ、とられるべきアクション、およびアクションの対象となるべきオブジェクトに基づいて、１つ以上の適用可能な許可規則を特定する。サービスプロバイダは、１つ以上の適用可能な許可規則に基づいて、アクションを許可すべきかを判別する。サービスプロバイダは、アクションを許可すべきかについての判別に基づいて、アクションを自動的に許可または不許可にする。
【００１６】
任意選択的に、上記した実施形態のうち任意の実施形態において、ゲートキーパーオブジェクトは、サービスプロバイダ、仮想世界および仮想世界内のシーンを備える。
【００１７】
任意選択的に、上記した実施形態のうち任意の実施形態において、ゲートキーパーオブジェクトは、アクションの対象となるオブジェクトを含む。
【００１８】
任意選択的に、上記した実施形態のうち任意の実施形態において、許可規則は、親ゲートキーパーオブジェクトからの許可可能性を引き継ぐかの通知をさらに含む。
【００１９】
任意選択的に、上記した実施形態のうち任意の実施形態において、許可規則は、各許可規則を後続の許可規則によってオーバーライドすべきかをさらに示す。
【００２０】
任意選択的に、上記した実施形態のうち任意の実施形態において、試行を特定することは、オブジェクト上へのアクションを行うためのリクエストをユーザコンピュータから受信することを備える。
【００２１】
任意選択的に、上記した実施形態のうち任意の実施形態において、リクエストは、実行すべきスクリプトを特定する。スクリプトは、オブジェクトと関連付けられる。
【００２２】
任意選択的に、上記した実施形態のうち任意の実施形態において、リクエストは、オブジェクトと関連付けられた文書構造の要素に対する変更を特定する。
【００２３】
実施形態として、コンピュータシステムは、仮想世界内におけるアクションの許可可能性を判別するように構成される。コンピュータシステムは、コンピュータによって読み出し可能な記憶装置を含む。記憶装置上には、実行可能な命令としてインプリメントされる複数のモジュールが保存される。コンピュータシステムは、複数のモジュールを実行するように構成された１つ以上のコンピュータプロセッサを含む。コンピュータシステムは、アクション特定モジュールを含む。アクション特定モジュールは、仮想世界内のオブジェクトに対するアクションの仮想世界エンティティによる試行を特定するように、構成される。コンピュータシステムは、ゲートキーパー選択モジュールを含む。このゲートキーパー選択モジュールは、仮想世界エンティティがオブジェクトに対してとるべきアクションの許可可能性を判別するように構成された許可規則を有する１つ以上のゲートキーパーオブジェクトを選択するように、構成される。許可規則は、アバター整合コンポーネント、アクション整合コンポーネントおよびオブジェクト整合コンポーネントのうち１つ以上を含む。コンピュータシステムは、規則アプリケーションモジュールを含む。この規則アプリケーションモジュールは、ゲートキーパーオブジェクトのうち１つ以上を通じて反復して、仮想世界エンティティ、とられるべきアクション、およびアクションの対象となるべきオブジェクトに基づいて１つ以上の適用可能な許可規則を特定するように、構成される。コンピュータシステムは、許可決定モジュールを含む。許可決定モジュールは、１つ以上の適用可能な許可規則に基づいてアクションを許可すべきかを判別するように、構成される。コンピュータシステムは、規則実行モジュールを含む。規則実行モジュールは、アクションを許可すべきかについての判別に基づいてアクションを自動的に許可または不許可するように、構成される。
【００２４】
実施形態として、実行可能なスクリプトを仮想世界システム上において操作して、仮想世界システム上におけるアクションの自動化をイネーブルする方法がある。仮想世界システムは、コンピュータによって読み出し可能な媒体上に仮想空間のデータ表現を維持する。データ表現は、オブジェクトの階層表現を仮想空間内に含む。階層表現は、階層表現内の第１のオブジェクトと関連付けられた実行可能なスクリプトを含む。仮想世界システムは、コンピュータによって読み出し可能な媒体と通信する１つ以上のコンピュータプロセッサ上に実行可能なスクリプトを実行する。仮想世界システムは、第２のオブジェクトが実行可能なスクリプトと関連付けられた第１のオブジェクトの子孫と同じであるかまたはそのものであるという決定に基づいて、実行可能なスクリプトが階層表現内の第２のオブジェクトを変更することをイネーブルする。仮想世界システムにより、第３のオブジェクトが実行可能なスクリプトと関連付けられた第１のオブジェクトの子孫と同じであるかまたはそのものであるという決定に基づいて実行可能なスクリプトが階層表現内の第３のオブジェクトを変更することが回避される。
【００２５】
任意選択的に、上記した実施形態のうち任意の実施形態において、オブジェクトの階層表現は、文書オブジェクトモデルと関連付けられる。
【００２６】
任意選択的に、上記した実施形態のうち任意の実施形態において、スクリプトは、階層表現内の第１のオブジェクトのサブ要素として維持される。
【００２７】
任意選択的に、上記した実施形態のうち任意の実施形態において、方法は、第３のオブジェクトと関連付けられた第２の実行可能なスクリプトを実行可能なスクリプトが呼び出すことをイネーブルすることも含む。実行可能なスクリプトは、第２の実行可能なスクリプトの呼び出しを通じて、第３のオブジェクトを間接的に変更し得る。
【００２８】
任意選択的に、上記した実施形態のうち任意の実施形態において、実行可能なスクリプトは、第２の実行可能なスクリプトと関連付けられたアクション識別子を指定する機能を実行することにより、第２の実行可能なスクリプトを呼び出す。
【００２９】
実施形態として、コンピュータシステムは、実行可能なスクリプトを仮想世界システム上において操作して、仮想世界システム上でのアクションの自動化をイネーブルするように、構成される。コンピュータシステムは、実行可能な命令としてインプリメントされる複数のモジュールを保存する、コンピュータによって読み出し可能な記憶装置を含む。コンピュータシステムは、複数のモジュールを実行するように構成された１つ以上のコンピュータプロセッサを含む。コンピュータシステムは、仮想空間のデータ表現を含む保存されたコンピュータデータを含む。データ表現は、オブジェクトの階層表現を仮想空間内に含む。階層表現は、階層表現内の第１のオブジェクトと関連付けられた実行可能なスクリプトを含む。コンピュータシステムは、スクリプト実行モジュールを含む。スクリプト実行モジュールは、コンピュータによって読み出し可能な媒体と通信する１つ以上のコンピュータプロセッサ上において実行可能なスクリプトを実行するように、構成される。コンピュータシステムは、オブジェクト変更モジュールを含む。このオブジェクト変更モジュールは、第２のオブジェクトが実行可能なスクリプトと関連付けられた第１のオブジェクトの子孫と同じであるかまたはそのものであるという決定に基づいて、実行可能なスクリプトが階層表現内の第２のオブジェクトを変更することをイネーブルするように構成される。オブジェクト変更モジュールは、第３のオブジェクトが実行可能なスクリプトと関連付けられた第１のオブジェクトの子孫と同じであるかまたはそのものではないという決定に基づいて、実行可能なスクリプトが階層表現内の第３のオブジェクトを変更することを回避するように、さらに構成される。
【００３０】
実施形態として、３次元空間をコンピュータネットワークを介して表現する方法がある。３次元仮想世界を操作するように構成された仮想世界サービスプロバイダは、３次元仮想世界をアクセスするためのリクエストを受信する。仮想世界サービスプロバイダは、リクエストに３次元仮想世界データまたは３次元仮想世界データの２次元表現供給すべきかを判別する。判別は、アクセスのためのリクエストのコンテンツに基づく。仮想世界サービスプロバイダは、リクエストの決定に応答して、３次元仮想世界データの供給を受け、３次元仮想世界データを送信する。仮想世界サービスプロバイダは、リクエストが３次元仮想世界データの２次元表現の供給を受けるべきとの決定に応答して、３次元仮想世界の既存の状態に基づいて２次元表現を生成し、２次元表現を含むユーザインターフェースデータを送信する。ユーザインターフェースデータは、実行可能なコードを含む。実行可能なコードは、ユーザが２次元インターフェースを用いて３次元仮想世界と相互作用することをイネーブルするように、構成される。
【００３１】
任意選択的に、上記した実施形態のうち任意の実施形態において、リクエストが３次元仮想世界データまたは３次元仮想世界データの２次元表現の供給を受けるべきかを判別することは、リクエストと関連付けられたプロトコルを判別することを備える。
【００３２】
任意選択的に、上記した実施形態のうち任意の実施形態において、リクエストが３次元仮想世界データまたは３次元仮想世界データの２次元表現の供給を受けるべきかを決定することは、リクエストと関連付けられたユーザエージェントを決定することを備える。
【００３３】
任意選択的に、上記した実施形態のうち任意の実施形態において、２次元表現を生成することは、３次元仮想世界内のバンテージポイントを特定することと、特定されたバンテージポイントに基づいて仮想世界の２次元レンダリングを送信することとを含む。
【００３４】
任意選択的に、上記した実施形態のうち任意の実施形態において、バンテージポイントは、リクエスト中の識別子に基づいて特定される。
【００３５】
任意選択的に、上記した実施形態のうち任意の実施形態において、実行可能なコードは、チャットインターフェースを提示するように構成される。このチャットインターフェースにより、ユーザは、３次元仮想世界内においてメッセージを送受信することができる。
【００３６】
任意選択的に、上記した実施形態のうち任意の実施形態において、方法は、リクエストが２次元表現の供給を受けるべきであるとの判別に応答して、アバター表現を３次元仮想世界に挿入することも含む。アバター表現は、アバターと関連付けられたユーザが２次元表現にアクセスしていることを通知するように、構成される。
【００３７】
任意選択的に、上記した実施形態のうち任意の実施形態において、ユーザインターフェースデータは、サーチエンジンによってインデックス付与されるように、構成される。
【００３８】
実施形態として、コンピュータシステムは、３次元空間をコンピュータネットワークを介して表現するように構成される。コンピュータシステムは、コンピュータによって読み出し可能な記憶装置を含む。記憶装置上に、実行可能な命令としてインプリメントされる複数のモジュールが保存される。コンピュータシステムは、複数のモジュールを実行するように構成された１つ以上のコンピュータプロセッサを含む。コンピュータシステムは、３次元仮想世界へアクセスするためのリクエストを受信するように構成されたリクエスト処理モジュールを含む。コンピュータシステムは、次元評価モジュールを含む。次元評価モジュールは、リクエストが３次元仮想世界データまたは３次元仮想世界データの２次元表現の供給を受けるべきかを判別するように、構成される。判別は、アクセスのためのリクエストのコンテンツに基づく。コンピュータシステムは、３次元コンテンツモジュールを含む。３次元コンテンツモジュールは、３次元仮想世界データを送信することにより、リクエストが３次元仮想世界データの供給を受けるべきとの決定に応答するように、構成される。コンピュータシステムは、２次元コンテンツモジュールを含む。２次元コンテンツモジュールは、リクエストが３次元仮想世界データの２次元表現の供給を受けるべきとの決定に応答するように、構成される。応答は、３次元仮想世界の既存の状態に基づいて２次元表現を生成することと、２次元表現を含むユーザインターフェースデータを送信することとにより、行われる。ユーザインターフェースデータは、ユーザが２次元インターフェースを用いて３次元仮想世界と相互作用することをイネーブルするように構成された、実行可能なコードを含む。
【００３９】
実施形態として、３次元仮想空間内にオブジェクトを配置する方法がある。方法は、仮想世界サービスプロバイダ上に行われる。仮想世界サービスプロバイダは、１つ以上のコンピュータプロセッサを含むサービスプロバイダ上において、第１の空間配置内に複数のオブジェクトを含む仮想世界シーンのインスタンスを維持する。仮想世界サービスプロバイダは、複数のオブジェクトの第１のオブジェクトを特定する。第１のオブジェクトは、第１の空間位置を有する。仮想世界サービスプロバイダは、第１のオブジェクトの第１の空間位置と、第１のオブジェクトと関連付けられた元々の空間位置とを比較する。仮想世界サービスプロバイダは、第１のオブジェクトの第１の空間位置と元々の空間位置との比較に基づいて、第１のオブジェクトを第１の空間位置から元々の空間位置に戻す変換経路を計算する。仮想世界サービスプロバイダは、計算された変換経路に基づいて、第１のオブジェクトを自動的に遷移させる。
【００４０】
任意選択的に、上記した実施形態のうち任意の実施形態において、第１のオブジェクトを自動的に遷移させることは、第１のオブジェクトを計算された変換経路に沿って自立的に移送することを備える。
【００４１】
任意選択的に、上記した実施形態のうち任意の実施形態において、第１のオブジェクトを自動的に遷移させることは、非プレーヤキャラクターを導入して、第１のオブジェクトを計算された変換経路に基づいて移送することを備える。
【００４２】
任意選択的に、上記した実施形態のうち任意の実施形態において、非プレーヤキャラクターは、３次元仮想空間のオペレータによって構成することができる。
【００４３】
任意選択的に、上記した実施形態のうち任意の実施形態において、元々の空間位置は、仮想世界シーンと関連付けられる。
【００４４】
任意選択的に、上記した実施形態のうち任意の実施形態において、第１のオブジェクトを自動的に遷移させることは、第１のオブジェクトを遷移させる際の速度を決定することと、決定された速度に基づいて第１のオブジェクトを遷移させることとを備える。
【００４５】
任意選択的に、上記した実施形態のうち任意の実施形態において、速度は、仮想世界シーンのインスタンス中に存在するアバター数に基づいて、少なくとも部分的に決定される。
【００４６】
実施形態として、コンピュータシステムは、オブジェクトを３次元仮想空間内に配置するように、構成される。コンピュータシステムは、コンピュータによって読み出し可能な記憶装置を含む。記憶装置上に、実行可能な命令としてインプリメントされる複数のモジュールが保存される。コンピュータシステムは、複数のモジュールを実行するように構成された１つ以上のコンピュータプロセッサを含む。コンピュータシステムは、複数のオブジェクトのインスタンスの保存されたデータを第１の空間配置において含む仮想世界シーンを含む。コンピュータシステムは、オブジェクト特定モジュールを含む。オブジェクト特定モジュールは、複数のオブジェクトの第１のオブジェクトを特定するように、構成される。第１のオブジェクトは、第１の空間位置を有する。コンピュータシステムは、位置比較モジュールを含む。位置比較モジュールは、第１のオブジェクトの第１の空間位置と、第１のオブジェクトと関連付けられた元々の空間位置とを比較するように、構成される。コンピュータシステムは、経路計算モジュールを含む。経路計算モジュールは、第１のオブジェクトの第１の空間位置と元々の空間位置との間の比較に基づいて、第１のオブジェクトを第１の空間位置から元々の空間位置に戻すための変換経路を計算するように、構成される。コンピュータシステムは、経路実行モジュールを含む。経路実行モジュールは、計算された変換経路に基づいて第１のオブジェクトを自動的に遷移させるように、構成される。
【００４７】
実施形態として、仮想世界の２次元表現および３次元表現間を相互運用する方法がある。システムは、仮想世界へアクセスするためのリクエストをクライアントコンピュータから受信する。リクエストは、仮想世界内におけるアクセスすべき位置を示す。システムは、受信されたアクセスリクエストのコンテンツに基づいて、仮想世界の２次元表現をクライアントコンピュータへ供給すべきであると決定する。システムは、仮想世界を表現する２次元コンテンツをクライアントコンピュータへ送信する。２次元コンテンツは、インジケータを含む。インジケータは、クライアントコンピュータに３次元コンテンツを処理するように構成された仮想世界ブラウザを呼び出させるように、構成される。インジケータは、受信されたアクセスリクエスト中に示される仮想世界の位置に対応する仮想世界中の位置に仮想世界ブラウザをアクセスさせるように、さらに構成される。
【００４８】
任意選択的に、上記した実施形態のうち任意の実施形態において、インジケータは、クライアントコンピュータへ送られるＨＴＭＬコンテンツ内のタグを備える。
【００４９】
任意選択的に、上記した実施形態のうち任意の実施形態において、タグは、仮想世界ブラウザと関連付けられたプロトコルを特定するＵＲＬを含む。
【００５０】
任意選択的に、上記した実施形態のうち任意の実施形態において、インジケータは、仮想世界ブラウザに３次元コンテンツをフリップ可能なインターフェース中に表示させるように構成され、これにより、クライアントコンピュータのユーザが２次元表現と３次元コンテンツとの間で切り換えることがイネーブルされる。
【００５１】
任意選択的に、上記した実施形態のうち任意の実施形態において、仮想世界の２次元表現が供給を受けるべきと決定することは、アクセスのためのリクエストと関連付けられたユーザエージェントを決定することを備える。
【００５２】
任意選択的に、上記した実施形態のうち任意の実施形態において、仮想世界の２次元表現が供給を受けるべきと決定することは、アクセスのためのリクエストと関連付けられたプロトコルを決定することを備える。
【００５３】
実施形態として、コンピュータシステムは、仮想世界の２次元表現および３次元表現間を相互運用するように、構成される。コンピュータシステムは、コンピュータによって読み出し可能な記憶装置を含む。記憶装置上に、実行可能な命令としてインプリメントされる複数のモジュールが保存される。コンピュータシステムは、複数のモジュールを実行するように構成された１つ以上のコンピュータプロセッサを含む。コンピュータシステムは、リクエスト処理モジュールを含む。リクエスト処理モジュールは、仮想世界へアクセスするためのリクエストをクライアントコンピュータから受信するように、構成される。リクエストは、仮想世界内におけるアクセスすべき位置を示す。コンピュータシステムは、次元評価モジュールを含む。次元評価モジュールは、受信されたアクセスリクエストのコンテンツに基づいて、仮想世界の２次元表現をクライアントコンピュータへ供給すべきであると決定するように、構成される。コンピュータシステムは、２次元コンテンツモジュールを含む。２次元コンテンツモジュールは、仮想世界を表現する２次元コンテンツをクライアントコンピュータへ送るように、構成される。２次元コンテンツは、インジケータを含む。このインジケータは、クライアントコンピュータに３次元コンテンツを処理するように構成された仮想世界ブラウザを呼び出させるように、構成される。インジケータは、受信されたアクセスリクエスト中に示される仮想世界の位置に対応する仮想世界中の位置へ仮想世界ブラウザをアクセスさせるように、さらに構成される。
【００５４】
実施形態として、例えばコンピュータシステムによって実行することが可能な方法がある。この方法は、例えばコンピュータシステムによって実行することが可能である。システムは、１つ以上のコンピュータメモリ中に、文書オブジェクトの集合によって規定された３次元シーンのインスタンスをインスタンス化する。文書オブジェクトは、記述言語で符号化され、各３次元モデル化オブジェクトまたは空間を規定する。システムは、１つ以上のクライアントデバイスからプロセッサが受信した信号に応答して、文書オブジェクトの集合のコンテンツを制御する。システムは、連続する時間系列（例えば、少なくともシーン中の３次元オブジェクトモデル化の位置および方向）におけるシーンの各状態に基づいて、１つ以上のコンピュータメモリ中に一連の３次元シーン状態を記録する。システムは、一連の３次元シーン状態を示すデータを１つ以上のクライアントへと提供する。
【００５５】
任意選択的に、上記した実施形態のうち任意の実施形態において、方法は、シーンのインスタンスを少なくとも部分的にインスタンス化することも含む。インスタンス化は、集合中の文書オブジェクトのうち１つをインスタンス化することにより、行われる。
【００５６】
任意選択的に、上記した実施形態のうち任意の実施形態において、方法は、文書オブジェクトを少なくとも部分的にインスタンス化することも含む。インスタンス化は、プロセッサによって受信された文書テンプレートから文書オブジェクトの集合中の文書オブジェクトのうち少なくとも１つのコピーを生成することにより、行われる。
【００５７】
任意選択的に、上記した実施形態のうち任意の実施形態において、方法は、文書オブジェクト特性に基づいて文書オブジェクトの集合を階層ツリーに分類することも含む。
【００５８】
任意選択的に、上記した実施形態のうち任意の実施形態において、方法は、サーバからの命令に応答して、シーンのインスタンスをサポートするように適合された１つ以上のコンピュータメモリ中に１つ以上のコンポーネントをインストールすることも含む。
【００５９】
任意選択的に、上記した実施形態のうち任意の実施形態において、方法は、文書オブジェクトの集合を少なくとも部分的に制御することも含む。制御は、プロセッサによる１つ以上のコンポーネント実行を用いて、文書オブジェクトのうち１つに対応する信号シグニファイイングイベントの１つを検出することにより、行われる。
【００６０】
任意選択的に、上記した実施形態のうち任意の実施形態において、方法は、信号シグニファイイングイベントのうちの１つの検出に応答して情報信号を生成し、情報信号をサーバへ送ることも含む。
【００６１】
任意選択的に、上記した実施形態のうち任意の実施形態において、方法は、プロセッサによって実行されるより多くのコンポーネントのうちの１つを用いてサーバと通信して、イベントの各結果を判別することも含む。
【００６２】
任意選択的に、上記した実施形態のうち任意の実施形態において、方法は、各結果に応じて、集合中の１つ以上の文書オブジェクトの状態を更新することも含む。
【００６３】
任意選択的に、上記した実施形態のうち任意の実施形態において、方法は、１つ以上のクライアントのユーザインターフェースのシーンの３次元動画をイネーブルするフォーマットにデータをフォーマットすることも含む。
【００６４】
任意選択的に、上記した実施形態のうち任意の実施形態において、方法は、マークアップ言語に従って文書オブジェクトを解釈することも含む。マークアップ言語は、ハイパーテキストマークアップ言語（ＨＴＭＬ）オブジェクト、拡張ハイパーテキストマークアップ言語（ＸＨＴＭＬ）または拡張マークアップ言語（ＸＭＬ）からなる群から選択される。
【００６５】
実施形態として、メモリへ接続されたプロセッサを含む装置がある。メモリは、命令を保持する。これらの命令がプロセッサによって実行されると、装置は操作を行う。装置は、文書オブジェクトの集合によって規定された３次元シーンのインスタンスをインスタンス化する。文書オブジェクトは、マークアップ言語で符号化され、各３次元モデル化オブジェクトまたは空間を規定する。装置は、１つ以上のクライアントデバイスからの信号に応答して、文書オブジェクトの集合のコンテンツを制御する。装置は、連続する時間系列におけるシーンの各状態（例えば、シーンにおける３次元オブジェクトモデル化の少なくとも位置および方向）に基づいて、一連の３次元シーン状態を記録する。装置は、一連の３次元シーン状態を示すデータを１つ以上のクライアントへ提供する。
【００６６】
任意選択的に、上記した実施形態のうち任意の実施形態において、メモリは、集合中の文書オブジェクトのうちの１つをインスタンス化することにより、シーンのインスタンスを少なくとも部分的にインスタンス化するためのさらなる命令を保持する。
【００６７】
任意選択的に、上記した実施形態のうち任意の実施形態において、メモリは、プロセッサによって受信された文書テンプレートから文書オブジェクトの集合中の文書オブジェクトのうち少なくとも１つのコピーを生成することにより、文書オブジェクトの少なくとも１つを少なくとも部分的にインスタンス化するためのさらなる命令を保持する。
【００６８】
任意選択的に、上記した実施形態のうち任意の実施形態において、メモリは、文書オブジェクト特性に基づいて文書オブジェクトの集合を階層ツリーに分類するためのさらなる命令を保持する。
【００６９】
任意選択的に、上記した実施形態のうち任意の実施形態において、メモリは、サーバからの命令の受信に応答して、シーンのインスタンスをサポートするように適合された１つ以上のコンピュータメモリ中に１つ以上のコンポーネントをインストールするためのさらなる命令を保持する。
【００７０】
任意選択的に、上記した実施形態のうち任意の実施形態において、メモリは、プロセッサによる１つ以上のコンポーネント実行を用いて文書オブジェクトのうちの１つに対応する信号シグニファイイングイベントのうちの１つを検出することにより、文書オブジェクトの集合を少なくとも部分的に制御するためのさらなる命令を保持する。
【００７１】
任意選択的に、上記した実施形態のうち任意の実施形態において、メモリは、信号シグニファイイングイベントのうちの１つの検出に応答して情報信号を生成するためのさらなる命令を保持し、情報信号をサーバへと送る。
【００７２】
任意選択的に、上記した実施形態のうち任意の実施形態において、メモリは、プロセッサによる１つ以上のコンポーネント実行を用いてサーバと通信するためのさらなる命令を保持して、イベントの各結果を決定する。
【００７３】
任意選択的に、上記した実施形態のうち任意の実施形態において、メモリは、各結果に従って、集合中の文書オブジェクトの１つ以上の状態を更新するためのさらなる命令を保持する。
【００７４】
任意選択的に、上記した実施形態のうち任意の実施形態において、メモリは、１つ以上のクライアントのユーザインターフェースのシーンの３次元動画をイネーブルするフォーマットにデータをフォーマットするためのさらなる命令を保持する。
【００７５】
任意選択的に、上記した実施形態のうち任意の実施形態において、メモリは、マークアップ言語に従って文書オブジェクトを解釈するためのさらなる命令を保持する。マークアップ言語は、ハイパーテキストマークアップ言語（ＨＴＭＬ）オブジェクト、拡張ハイパーテキストマークアップ言語（ＸＨＴＭＬ）または拡張マークアップ言語（ＸＭＬ）からなる群から選択される。
【００７６】
実施形態として、システムがある。システムは、仮想環境のためのプロトコルに従って規定された１つ以上のオブジェクトを含む。システムは、仮想環境内の１つ以上のシーンを含む。システムは、１つ以上の仮想環境を含む。１つ以上の仮想環境のうちサブセットは、サブセット中に無い仮想環境のうち少なくとも１つの一部として規定される。システムは、許可を規定する情報を含むデータベースを含み、許可により、オブジェクト、シーンおよび仮想環境それぞれが、その他のオブジェクト、シーンまたは仮想環境のうち１つ以上について許可される。
【００７７】
任意選択的に、上記した実施形態のうち任意の実施形態において、システムは、オブジェクト、シーンおよび仮想環境が範囲許可と適合する相互作用と相互作用する能力を限定することにより、１つ以上のシーンのインスタンス中のデータの許可を実現する手段も含む。仮想環境は、階層よりも下側にあるシーンの許可について要求、許可、排除またはこれらの組み合わせを行うことができ、シーンは、階層よりも下側にあるオブジェクトの許可について要求、許可、排除またはこれらの組み合わせを行うことができる。
【００７８】
任意選択的に、上記した実施形態のうち任意の実施形態において、データベースに含まれるデータは、オブジェクトそのものに符号化され、中心的に保存されない。
【００７９】
実施形態として、コンピュータシステムがある。システムに含まれるオブジェクトまたは層は、仮想環境内の１つ以上の他のオブジェクトまたは層を生成するためのテンプレートを保持する仮想環境内に含まれる。システムは、１つ以上のオブジェクトまたは層を生成する手段を含む。システムは、１つ以上のユーザが１つ以上のオブジェクトまたは層と相互作用する手段を含み、その結果、少なくとも１つの修正がオブジェクトまたは層に対して行われる。システムは、許可データを参照することにより、１つ以上の他のオブジェクト、他の層またはユーザについて１つ以上のこのような修正持続させるべきかを決定する手段を含む。
【００８０】
任意選択的に、上記した実施形態のうち任意の実施形態において、システムはまた、オブジェクトまたは層の範囲状態を記録する手段も含む。
【００８１】
任意選択的に、上記した実施形態のうち任意の実施形態において、システムはまた、記録された状態を変更するオブジェクト、層またはユーザが第２のユーザ、オブジェクトまたは層についてこのようなオブジェクトまたは層のインストレーションの変更を許可したかを判別する手段も含む。第２のユーザ、オブジェクトまたは層は、テンプレート上にだけでなく記録された状態で保存されたオブジェクトまたは層のインスタンスのインスタンス化を試行する。
【００８２】
任意選択的に、上記した実施形態のうち任意の実施形態において、システムは、このような許可が不十分である場合にテンプレートバージョンをインスタンス化するかまたはこのような許可が充分である場合に記録されたバージョンをインスタンス化する手段も含む。
【００８３】
任意選択的に、上記した実施形態のうち任意の実施形態において、修正の持続性は、イベントによって時間制限されるかまたは終了され得る。
【図面の簡単な説明】
【００８４】
【図１】は、実施形態において用いられるような、ＶＷＷへ接続されたネットワークコンポーネントのブロック図である。
【００８５】
【図２】は、実施形態において用いられるような、仮想世界システムのネットワークコンポーネントのブロック図である。
【００８６】
【図３】は、アバターが２つの位置間を横断することを可能にするプロセスのフローチャートである。
【００８７】
【図４】は、一実施形態において用いられるような、世界または他の位置間においてアイテムを変換するプロセスのフローチャートである。
【００８８】
【図５】は、一実施形態において用いられるような、グローバル状態からローカル状態へのマッピング特性のプロセスのフローチャートである。
【００８９】
【図６】は、一実施形態において用いられるような、グローバルアバター状態およびローカル世界データのデータ構造のブロック図である。
【００９０】
【図７】は、一実施形態において用いられるような、アバターが仮想世界と相互作用しているときにアバターの特性を変更するプロセスのフローチャートである。
【００９１】
【図８】は、一実施形態において用いられるような、特性の永久変換を必要とする世界に入ったときに、特性を変更するプロセスのフローチャートである。
【００９２】
【図９】は、一実施形態において用いられるような、仮想世界サービスプロバイダおよびユーザを接続するコンピュータネットワークシステムのブロック図である。
【００９３】
【図１０】は、一実施形態において用いられるような、サービスプロバイダ上の仮想世界データの例示的配置構成の階層図である。
【００９４】
【図１１】は、一実施形態において用いられるような、仮想世界内のオブジェクトの例示的配置構成の階層図である。
【００９５】
【図１２】は、一実施形態において用いられるような、許可を示すデータ構造のブロック図である。
【００９６】
【図１３】は、一実施形態において用いられるような、エンティティがアクションをとる許可を決定するプロセスのフローチャートである。
【００９７】
【図１４】は、一実施形態において用いられるような、関連付けられた許可記録を有する例示的ゲートキーパーのブロック図である。
【００９８】
【図１５】は、一実施形態において用いられるような、複数のゲートキーパーオブジェクトにわたるの許可決定の一例の図である。
【００９９】
【図１６】は、一実施形態において用いられるような、仮想世界内のシーンのインスタンスのレイアウトの一例である。
【０１００】
【図１７】は、一実施形態において用いられるような、スクリプトを実行するプロセスのフローチャートである
【０１０１】
【図１８】は、一実施形態において用いられるような、サービスプロバイダシステムおよび関連ンコンピュータシステムのブロック図である。
【０１０２】
【図１９】は、一実施形態において用いられるような、ネームスペースに基づいてコンテンツを供給するプロセスのフローチャートである。
【０１０３】
【図２０】は、シーンのインスタンスをクリーンアップするプロセスのフローチャートである。
【０１０４】
【図２１】は、一実施形態において用いられるような、クリーンアップされるべきシーンのインスタンスを示すサンプルユーザインターフェースである。
【０１０５】
【図２２】は、一実施形態において用いられるような、仮想世界オブジェクトクラウドを示すサンプルユーザインターフェースである。
【０１０６】
【図２３】は、一実施形態において用いられるような、オブジェクトクラウドを構築するプロセスのフローチャートである。
【０１０７】
【図２４】は、一実施形態において用いられるようなコンピューティングシステムのブロック図である。
【０１０８】
【図２５】は、多層コンポーネントおよびインターフェースシステムをインプリメントするコールフローの一例を示す。
【０１０９】
【図２６】は、実施形態において行われる多様なプロセスのフローチャートである。
【図２７】は、実施形態において行われる多様なプロセスのフローチャートである。
【図２８】は、実施形態において行われる多様なプロセスのフローチャートである。
【０１１０】
【図２９】に示す例示的装置２９００は、コンピュータサーバ、クライアントデバイスまたはクライアントおよびサーバの組み合わせとして構成され得、３次元シーンをインスタンス化する。
【詳細な説明】
【０１１１】
本開示の局面は、ホストされる仮想現実プロセスに参加するクライアントアプリケーションおよびデバイスに対する向上および変更に関する。既存のワールドワイドウェブ（本明細書中、「ウェブ」、「フラットウェブ」または「ｗｗｗ」とも呼ぶ）は、情報の表示と、２次元におけるユーザとの相互作用とを行うように、設計される。既存のウェブクライアントは、準３次元オブジェクト（例えば、３Ｄでレンダリングされるグラフィックス、またはさらにはオブジェクト（例えば、適切なハードウェア（例えば、赤色／青色眼鏡、偏光眼鏡、ＬＣＤシャッター眼鏡または同様の技術）を通して見た場合に３次元を実際に表示する画像）を表示することができる。しかし、ユーザは、データの３次元アレイ、オブジェクト、および他のユーザをナビゲートすることはできない。本明細書中に開示されるのは、クライアントアプリケーションに関する詳細である。このクライアントアプリケーションは、エンドユーザが実行することが可能である（かまたはレンダリングされる表示送達機構（例えば、送達可能なプログラム）であり得、また、３次元情報および相互作用空間について、２次元データおよび相互作用についてのウェブブラウザ（例えば、インターネットエクスプローラまたはグーグルクローム）と同様に機能する。クライアントアプリケーションは、ブラウザプラグイン、既存のソフトウェアに対する拡張機能、スタンドアロンアプリケーション、ウェブアプリケーション（例えば、Ｊａｖａ（登録商標）スクリプトまたはフラッシュを通じたもの）、モバイルデバイスアプリケーションなど（本明細書中、「新規クライアント」と総称する場合がある）としてインプリメントされ得る。
【０１１２】
既存のＨＴＴＰプロトコルインフラストラクチャーは、複雑な連結配置構成に参加させる能力を含み、本明細書中に記載される新規クライアントにより、ユーザは、３次元空間の複雑なウェブをナビゲートすることができる。本明細書中、この３次元空間連結システムを「仮想世界ウェブ」または「ＶＷＷ」と呼ぶ。
【０１１３】
図１は、実施形態において用いられる、ＶＷＷ内において接続されたネットワークコンポーネントのブロック図である。多様な実施形態において、さらなるブロックを設けてもよいし、いくつかのブロックを除去してもよいし、かつ／またはブロックを図示の様態と異なる様態で接続または配置してもよい。図１の実施形態は、サービスプロバイダを含む（例えば、ワールドサーバ１０、データベースサーバ２０を含み得るルートサーバ、クライアントコンピュータ３０、クライアント電話または他のポータブルデバイス４０、クライアントコンピュータ５０、ネットワーク６０（例えば、インターネット、広域ネットワーク、および／またはＬＡＮ）、ソフトウェアサーバ７０、サードパーティサービスプロバイダ（例えば、ワールドサーバ８０、および／またはサードパーティデータベースサーバ９０）。上記したサーバのうちいずれかを組み合わせて単一のコンピューティングデバイスとし、かつ／または上記したサーバのうちいずれかを別個のコンピューティングデバイス上に収容することが可能であり、さらなるコンピューティングデバイスも同様に設けることができる。同様に、任意の１つ以上の機能を仮想マシンによって行ってもよいし、あるいは複数のマシン間でタスクを共有する分散コンピューティングを用いて行ってもよい。上記のうち任意のものをピアツーピアソリューションとしてインプリメントすることもでき、その場合、特定のタスク（例えば、オブジェクトのレンダリングに関連する計算）を、他のマシン上において（例えば、１つ以上のマシン上において実行する新規クライアントソフトウェアを用いて新規クライアントソフトウェアを実行するマシンのうち別のものによってリクエストされるレンダリング計算を行うかまたは新規クライアントソフトウェアのコピーを分配することにより）行うことができる。
【０１１４】
システムの物理的レイアウトは、いくつかの要素を含み得る。実施形態において、クライアントソフトウェアをダウンロードするためのリクエストを広域ネットワーク６０を介してソフトウェアサーバ７０へと送る。ソフトウェアサーバ７０は、実行可能なパッケージを広域ネットワーク６０を介してエンドユーザコンピュータ３０へ送ることにより、リクエストに応答する。エンドユーザコンピュータ３０のオペレータは、実行可能なクライアントをエンドユーザコンピュータ３０上にインストールする。
【０１１５】
その後、エンドユーザコンピュータ３０のオペレータは、クライアントソフトウェアを開始する。クライアントソフトウェアは、広域ネットワーク６０を介してワールドサーバ１０にアクセスし、カスタマーアカウントをデータベース２０に対して認証するか、または、データベース２０中にカスタマーアカウントを生成する。ワールドサーバ１０は、２次元仮想世界サービスおよび／または３次元仮想世界サービスを提供する（例えば、アバターのホスティングおよびアバター間の相互作用が可能な空間およびオブジェクトの維持）。ワールドサーバ１０は、本明細書中全体に記載の多様な方法を行うことができ、サービスプロバイダまたは他のデバイスとも呼ばれる。ワールドサーバ１０は、さらなるサービスを提供することができる（例えば、トランザクションサービス、仮想通貨サービス、認証サービス、グラフィック設計サービス）。ユーザコンピュータ３０は、ワールドサーバ１０から送られてきた仮想環境パラメータと相互作用し、ワールドサーバ１０は、データベース２０へアクセスして、ユーザ、仮想環境および環境中の仮想オブジェクトについての情報を得る。
アバターの境界横断
【０１１６】
クライアントコンピュータ３０のオペレータは、仮想環境に対する制御がワールドサーバ１０のオペレータ以外のオペレータによって実行されている仮想環境の領域に遭遇する場合がある。このようなシステム境界は、ウェブページ上のハイパーリンクに類似しており、クライアントウェブブラウザは、ハイパーリンクを含むコンテンツを供給したサイトのオペレータと異なるサードパーティオペレータから新規のコンテンツをダウンロードするように方向付けられる。同様に、アバターは、仮想ワールドサーバ内の境界（例えば、２つの部屋または建物間の境界）を横断することができる。このような場合、この技術は、いくつかの代替的方法を含み得る。一実施形態において、ワールドサーバ１０は、サードパーティオペレータのワールドサーバ８０と通信する。ワールドサーバ１０は、任意の必要な情報をデータベース２０から収集し、エンドユーザアバターおよびデータの制御をサードパーティワールドサーバ８０へと転送し、その後サードパーティワールドサーバ８０は、このようなデータをデータベースサーバ９０に記録し、転送が成功した旨をワールドサーバ１０に対して確認する。このような確認後、ワールドサーバ１０は、データベース２０から「チェックアウトした」（かまたは別の実施形態においてアバターデータまたはその一部をデータベース２０から実際に除去した）旨をデータベース２０に入力する。データの「チェックアウト」は、暗号的にセキュアな制御転送の形態をとり得る（例えば、「ビットコイン」として知られる、仮想通貨のために用いられるもの）。
【０１１７】
元々のワールドサーバ１０からサードパーティワールドサーバ８０へのアバター制御の転送は、「境界イベント」と呼ばれ得る。境界イベントはシステム全体に及ぶ必要は無いが、システム内において発生し得る。例えば、単一のワールドサーバ１０の単一のオペレータによって操作されるシステム内において、境界イベントが発生し得る。同様に、単一の仮想世界の単一の領域内における動きに起因して、境界イベントが発生し得る。そのため、例えば、ユーザが仮想バンクーバー世界内において円形競技場からコーヒーショップへ移動する場合、境界イベントに遭遇し得る。単一の位置内においても、一次元から別の次元へ移動するユーザは、境界イベントに遭遇し得る。境界イベントは、一時的動きも含み得る（例えば、アバターが或る位置に一定期間留まる場合またはアバターが過去のイベントのリプレーのシミュレーションに参加する場合）。よって、「境界イベント」は、異なる規則セット、異なる属性、異なる所有権、異なるオペレータおよび／または他の差を有する領域間のアバターの動きも包含し得る。
【０１１８】
以下に詳述する多様な実施形態において、境界イベントを取り扱う際、エンドユーザにとって積極的な経験が得られ、エンドユーザ所有の値を保護し、受信側のワールドサーバによって操作されるインテグリティが保護されるかまたは通常は不適合であるかまたは相互運用が困難な環境間のユーザ、データ、オブジェクト、および他の要素の交換を可能とするように、取り扱いが行われる。
【０１１９】
境界イベントは、いくつかの現実世界構成物（例えば、海外旅行の「税関」および「入国管理」、「生命維持」要素）（例えば、スキューバダイビングまたは高所登山に必要となるようなもの）、法令順守（例えば、不慣れな法域における逮捕を回避するために必要なもの）、および「遵法行動」（例えば、新規の場所において訪問者に要求される社会規範）と同様に取り扱われる。アバターが境界を横断しようとする場合、クライアントまたはサーバソフトウェアは、これらの要求のうち任意のものと適合するよう執行、指導または促進するように動作する。一局面において、境界イベント目的などのために、アバターのオペレータの現実世界特性（例を非限定的に挙げると、年齢、性別および地理的位置）をアバターそのものの中に符号化してもよいしアバターと関連付けられてもよいし、かつ／またはアバターに入力してもよい。
【０１２０】
ＶＷＷ内における通過は、多様な方法で同時に達成することができる。いくつかの異なるレイアウト例を以下に示すが、レイアウト内の隣接位置は、領域が文字通りに保存されるかまたは隣接するデバイス上において操作される必要が無い場合でも、隣接領域間の動きを可能にする機能を示すことが理解される。同様に、レイアウト機能は、各ユーザに対して同じである必要はないため、例えば、成人ユーザは、車世界に隣接するギャンブル世界を発見し得、子供は、車世界に隣接する空き地しか発見できない。領域間に移動する際の境界、ハイパーリンクおよび他の機構の可視性は、世界および／またはアバターの属性に依存し得る。例えば、成人用テーマの領域へと繋がる境界は子供からは見えず、アバターが進入を許可されていない領域への境界は隠蔽することができる。
【０１２１】
例えば、１つの仮想世界システムは、複数の仮想世界へ接続された中央移送センターまたはハブを含み得る。このような仮想世界の例示的な例を挙げると、仮想バンクーバー世界、ビジネス地区世界、スウォードファイト世界、宇宙戦争世界、子供遊び場世界、車世界、および／または赤信号センター世界がある。
【０１２２】
中央移送ハブは、全てのアバターを１つの仮想領域から別の仮想領域へと移動させることが可能な場所として機能し得る。ハブにおいて有効化機能を行うことにより、例えば、ユーザの特定領域への進入の許可を有効にすることができる。例えば、ユーザはＶＷＷシステムにログインし、ログイン時にシステムへ提供されたアドレスに応じて、ハブまたはＶＷＷ環境内のその他の領域のうち任意の領域に出現し得る。アドレスは、ＨＴＴＰプロトコルのＵＲＬに類似するものであるが、多様な実施形態において多様な形態をとり得る。
【０１２３】
ハブから仮想バンクーバー世界へ移動したいと思っているユーザは、仮想バンクーバー領域内にアドレスを入力することにより、ハブと仮想バンクーバー世界との間の境界までアバターを徒歩または走行させ、当該領域へと「ワープ」することができる。仮想バンクーバー領域からは、ユーザは、移送ハブを通過する必要なく隣接領域へと徒歩移動することができる。そのため、例えば、仮想バンクーバー領域は、ビジネス地区領域または赤信号センター領域への直接的アクセスを持ち得る。
【０１２４】
実施形態において、適合する領域は隣接領域として取り扱われるため、例えば、子供遊び場は宇宙戦争および車領域には隣接するが、赤信号センター（例えば、赤信号地区に類似するもの）またはビジネス地区領域には隣接しない。特定の領域から他の領域へのアクセス可能性は、物理的レイアウトおよび空間間の隣接性に基づき得るが、必ずしもそうではない。ユーザおよび／またはオペレータは、別のレイアウトまたはカスタマイズされたレイアウトを生成することが許されるため、例えば、隣接していない宇宙戦争領域と特許法領域との間を通常行き来しているユーザは、このような領域間を隣接させることができる。
【０１２５】
一実施形態において用いられるシステムにより、進入基準を満たしていないユーザは、（アクセスが所望されている領域が隣接領域としてユーザへ提示されている場合でも、）アクセスを拒否される。多様な要素（例えば、隣接したものとして図示、非直線移送機構（例えば、次元間の移動または「ワープ」）によりすぐにアクセス可能、または隣接していることを示す他の印）に基づいて、領域を相互に隣接させることができる。物理的トポロジーに起因して通常であれば隣接性が不可能な場合も、領域を隣接させることが可能である（例えば、５個の別個の領域を同時に相互に隣接させることができる）。別の例として、第１の領域の側部は長さが１０単位であり得るが、それぞれ長さが８単位である第２の領域、第３の領域および第４の領域の側部において隣接し得る。
【０１２６】
図２は、実施形態において用いられる、仮想世界システムのネットワークコンポーネントのブロック図である。システムは、ワールドサーバ１０、データベースサーバ２０、ネットワーク６０、サードパーティワールドサーバ８０、サードパーティデータベースサーバ９０、移送センター／ハブ１１０、仮想バンクーバー世界１２０、ビジネス地区世界１３０、スウォードファイト世界１４０、宇宙戦争世界１５０、子供遊び場世界１６０、車世界１７０、赤信号センター世界１８０、移送センター／ハブ３１０、仮想世界領域３２０、仮想世界領域３３０、および仮想世界領域３４０を含み得る。
【０１２７】
図２の仮想世界システムは、世界間の多様な関連付け（例えば、ハイパーリンク）をさらに含み得、これにより、世界を「隣接」させるかまたはアクセス可能とする。例えば、システムは、仮想バンクーバー世界と赤信号センター世界との間のハイパーリンク３５０、宇宙戦争世界と子供遊び場世界との間のハイパーリンク３６０、および／または仮想バンクーバー世界とスウォードファイト世界との間のハイパーリンク３７０を含み得る。仮想世界内のハイパーリンクは、ウェブページ上のハイパーリンクと同様にインプリメントすることができるが、３次元仮想世界の能力により、ハイパーリンクを他の多様な方法でインプリメントすることができる（例えば、アバターが徒歩で通過することが可能なドアまたは壁、移送車両、ワープトンネルまたはデバイス、テレポーテーションシステム、街路など）。
【０１２８】
世界間のさらなる接続を、図２のサンプルシステム内に設けることができる。ワールドサーバ１０と関連付けられた移送ハブ１１０は、本実施形態において５個の仮想世界１２０、１３０、１８０、３２０および３３０へと接続され得る。本実施形態において、サードパーティワールドサーバ８０と関連付けられた移送ハブ３１０は、５個の仮想世界１４０、１５０、１６０、１７０および３４０へと接続され得る。ワールドサーバ１０は、データベース２０へとさらに接続され得る。データベース２０は、ワールドサーバ１０の内部または外部に設けられ得る。本実施形態において、サードパーティワールドサーバ８０は、データベース９０へと接続される。データベース９０も、サーバ８０の内部または外部に設けられ得る。２つのワールドサーバ１０および８０は、ネットワークリンク６０を通じて通信し得る。
【０１２９】
一実施形態において、ワールドサーバ１０および８０は、世界間の一部または全ての接続には不要である。例えば、仮想バンクーバー世界１２０は、スウォードファイト世界１４０へ通じるハイパーリンク３７０を含み得る。このような場合、一実施形態において、暗号的にセキュアな分散型システムが用いられ、これにより、１つの世界から別の世界へアバターの制御の直接転送が可能となる。ビットコイン技術の背景にあるシステムに類似するシステムは、暗号的にセキュアな分散型システムの一例である。このような場合、クライアントコンピュータ３０は、目的地ワールドサーバ８０および任意選択的に出発地ワールドサーバ１０を担当するワールドサーバとのトランザクションを開始し得、これにより、アバターと関連付けられたデータがクライアントから目的地ワールドサーバ８０へと転送され、２つのワールドサーバ１０および８０間の任意の直接的通信は不要である。
【０１３０】
別の実施形態において、単一のワールドサーバ１０によって通常制御される世界により、アバターが集中ハブ１１０に出現または通過させる必要無く、世界間におけるアバターの連結および転送３５０が可能となる。集中ハブ１１０を通じて転送が発生する場合でもまたは異なるワールドサーバ１０および８０間において転送が発生する場合でも、エンドユーザから見ることが可能な通過機構を用いずに転送を行うことができ、これにより、例えば、通過プロセス時においてエンドユーザはハブ１１０に示されない。この転送プロセスを用いて、ユーザは、移送するアバターを通過ハブ以外の標的領域へ直接移送したい旨を示すリンクまたは他の移送機構を作動させる。
【０１３１】
ユーザが集中ハブ１１０または３１０を通じて通過を通知されているか否かに関わらず、集中ハブ１１０または３１０は、有効化、適法性および／または他の試験を行って、ユーザが所望のアクションの実行を許可されているかを判別する。さらに、集中ハブ１１０または３１０は、以下にさらに記載するような出発世界および進入世界間のアバター特性を翻訳し得る。別の実施形態において、出発世界および／または進入世界は、さらなるまたは代替的な試験および／またはアバター特性翻訳を行い得る。
【０１３２】
実施形態において、世界間の通過プロセスは、第１の世界に適した特性（例えば、出発世界）から第２の世界（例えば、進入世界）に適した特性への翻訳または変更を含む。例えば、アバターが宇宙戦争世界１５０から車世界１７０へと移動する場合を考える。全アバターが車として出現するように車世界１７０が構成されている場合、宇宙戦争世界１５０からの軍人アバターは、車世界１７０から外れているか、または、車世界１７０の操作または車世界１７０への移動が禁じられている。同様に、宇宙戦争世界１５０においてレーザー銃を所有するアバターがスウォードファイト世界１４０へ移動しようとする場合、機能しないアイテムを所有しているかまたはこの領域への進入が許可されない。所有が無い場合、値、機能、状態および／または他の所望の属性の損失に繋がり得る
【０１３３】
技術の局面において、１つの世界またはテーマから別の世界またはテーマ内の対応するアバターまたはオブジェクトへ、アバターまたはオブジェクトがマッピングされる。例えば、現実世界特性を追跡することを意図する現実の世界において、身長の高い男性アバターが、単車および銃を所有し得る。スウォードファイト世界１４０へと通過する際、所有／アバターマッピングシステムは、単車を有する高身長男性は、馬に乗った高身長の騎士に相当すると判別し得る（例えば、現実の世界において所有されている単車に相当するもの）および刀（現実の世界において所有する銃に相当する）。マッピングは、データベース（例えば、ＳＱＬ）または他のルックアップテーブルまたはシステムを介して達成してもよいし、あるいは、プログラミング的規則セットによって達成することもできる。
【０１３４】
マッピングは、アバターまたはオブジェクトの特性の発見的解析または他の分析に基づいて設定することができる。マッピングは、関与する世界のうち片方または両方によって設定された明確なユーザ選好または選好または規則を通じて、達成することができる。一実施形態において、オブジェクトは、任意の移行全体において、特性を保持する。よって、例えば、高身長の男性騎士の馬がスウォードファイト領域１４０内において殺された場合、ユーザは、現実のアバター世界に戻ったとき、当該領域内において機能しない馬を所有することとなるか、または、機能しない単車を所有することとなる。ユーザの刀が販売された場合、その刀は購入者の財産であり続け、別の領域への移動後も、その刀（または新規領域に入ったあらゆるオブジェクト）も購入者の財産であり続ける。
【０１３５】
実施形態において、世界、領域または時間スライスは、恐らくは各オブジェクト単位および／または各アバター単位で「非現実的」なものとして特定される（例えば、オブジェクトＸおよびＹおよびアバターＺのみについて非現実的なものとして特定される）。これは、例えばスウォードファイト領域１４０内に練習場がある場合に極めて有用であり得る。ユーザがスウォードファイトに参加して、自身の刀が壊れた場合、刀は非現実的なものとしてマーク付けされたものであるため、ユーザがその領域から退出した場合（またはユーザがなんらかのアクションをとるかまたは時間が経過した場合）、当該刀を自動的に回復させることができる。同様の非現実的な挙動を、資金の支出に適用することができる（例えば、現実のお金をカジノまたは立会場において用いることができるが、この現実のお金と共にとられたアクションの結果は無いため、現実のお金を有効に偽金にクローンすることができる）。同様の非現実的挙動を、アバター、オブジェクトまたはエンティティの健康、展開または福祉に適用することができる。これは、例えば疾病挙動をモデル化する場合に特に有用である。
【０１３６】
非現実世界、領域または時間スライスへのアクセスを、支払または仮想通貨、現実的通貨、または他の仮想または現実的価値のある物品などに合わせて調節することができる。非現実的領域内におけるイベントにおいて、アクセスのコストをさらに偶発的にすることができる。その結果、領域を部分的に非現実的にする効果が得られ（例えば、ユーザが仮想カジノにアクセスするのに仮想通貨単位を１時間で１０個支払ったのに対し、利益または損失は１０パーセントのみである場合）。別の実施形態において、特定のイベントにおいて部分的に現実的な領域を持続させる（例えば、仮想通貨の支出）一方、他のイベントを非現実的とする（例えば、アバターの死亡または刀の損失）。
【０１３７】
１つの世界における刀を別の世界において銃とすることができ、その際、例えば「個人的に有効な武器」というオブジェクト種類としてのグローバル状態は失われない。よって、アバターの居住に適した世界の特性を表示しつつ、同一のアバター種類が存在し得る。例えば、仮想バンクーバー世界１２０内のアバターは、車世界１７０内へと移動し得る。車世界１７０がアバターとして車のみを有するものとして規定される場合、アバターば自動的に車に変更される。あるいは、アバターが車にレンダリングされる旨がユーザへ警告され、移行前に許可が求められ得る。新規アバターレンダリングに適していないアイテム（例えば、仮想バンクーバー世界１２０からのアバターの車が、車世界１７０における車アバターの所有として意味をなさない場合）は、サーバ上に残留するかまたは新規環境において表示されない。
【０１３８】
同様に、ユーザ、システムのオペレータ、世界のオペレータおよび／または他の世界のオペレータによって設定された規則に基づいて、新規アバターに対応するオブジェクトを恐らくは自動的に変換することができる。本例において、豪華な腕時計および豪華な靴を有する人間アバターは、車世界１７０に移動すると、腕時計が豪華な車に取り付けられた置き時計に代わり、豪華な靴が豪華なタイヤに変わるのを見る。いくつかの実施形態において、美観的要素を含む衣類およびアイテムは美観的テーマを保持し得るため、赤い衣服を着た人間アバターは、仮想バンクーバー世界１２０から車世界１７０へ移動すると、例えば赤色の塗装の車アバターに変換し得る。
【０１３９】
図３は、実施形態において用いられる、２つの位置（例えば、世界、シーン、インスタンス、領域）を横断することをイネーブルするプロセスのフローチャートである。これらの位置は、異なるコンピューティングハードウェア上において動作する２つの異なるサービスプロバイダ、単一のサーバ上において動作する２つの仮想世界、仮想世界内の２つの位置またはシーンおよび／またはシーンの２つのインスタンスであり得る。（「シーン」については以下にさらに説明し、「シーン」とは、主に仮想世界の一部（例えば、建物または部屋）を指す）プロセスは、各位置において、コンピューティングシステム（例えば、図２のワールドサーバ１０および８０）によって行うことができる。多様な実施形態において、さらなるブロックが設けられ得、いくつかのブロックが除去され得、かつ／または図示と異なる様態でブロックが接続または配置され得る。
【０１４０】
ブロック３０１において、位置１のコンピューティングシステムは、アバターが世界境界を横断しようとする試行を特定する。世界境界は、アバターが異なる位置へアクセスすることをイネーブルする点においてウェブページ上のリンクと同様であり得る。世界境界は、仮想世界内において、経路、ドア、窓、壁上のテキスト、触れることが可能なオブジェクトなどであり得る。世界境界は、ユーザが感知できなくすることもできるし、境界を横断する許可を有するユーザが感知できなくすることもできるし、所有権についての実質的修正無しに境界を横断することができるユーザが感知できなくすることもできるし、あるいはこれらの組み合わせを行うこともできる。同様に、このような上記の要素に基づいて、ブロック３０１において世界境界にアクセスしようとする試行をシステムが検出することに基づいて、アバターが世界境界上において移動、通過、接触、押圧、把持、操作または相互作用するのに基づいておよび／またはアバターのユーザが境界を横断するためのリクエストを示す適切なコマンドを仮想世界へ送るのに基づいて、世界境界をより大型にするか、小型にするか、より感知可能とするか、より感知不可能とすることができる。
【０１４１】
ブロック３０２において、システムは、境界と関連付けられた第２の位置の決定を試行する。ウェブページ上のハイパーリンクは、ウェブブラウザがアクセスする第２の位置を示すため、世界境界は、図３中に位置２として示す位置をアバターがアクセスすべき位置として示す。この位置は、位置１の適切なデータ構造内に示されるような世界境界と関連付けられ得、かつ／または、位置は外部データソース（例えば、位置テーブルまたはデータベース）にアクセスしている位置１のコンピュータシステムによって決定され得る。
【０１４２】
ブロック３０３において、図１のコンピュータシステムは、位置２のコンピュータシステムと通信して、アバターの転送を開始する。この転送は、独占所有権のあるかまたは周知のネットワークプロトコルによって行われ得る（例えば、ＨＴＴＰ、ＦＴＰ、ＳＳＨ、ＳＦＴＰ、ＳＳＬ、ＴＬＳまたはこれらの組み合わせ）。実施形態において、位置１は、アバターデータの転送をブロック３０３において開始する。アバターデータは、データ交換に適した多様なフォーマットで表現することができる（例えば、ＨＴＭＬ、ＸＭＬ、ＣＳＶ、ＲＰＣオブジェクト、ＣＯＲＢＡオブジェクト、ＹＡＭＬデータ）。位置２は、ブロック３０４において転送リクエストを受信する。転送されたデータはアバターデータを含み得、あるいは、アバターデータをプロセス時の後の時点（例えば、ブロック３０６〜３０７）において転送してもよい。
【０１４３】
ブロック３０５において、位置２のコンピュータシステムは、アバターを転送対象として認証する。認証を用いて、アバターが新規位置へのアクセスが許可されているかを決定することができる。例えば、位置２がパスワード認証または他の認証を必要とする場合、問い合わせ位置１のアバターのユーザおよび／またはコンピュータシステムに問い合わせをして、このような認証認証情報を得る。追加的にまたは代替的に、位置２は、アバターおよび／または関連付けられたユーザおよび／またはアバターまたはユーザ特性のホワイトリストまたはブラックリストを維持して、例えば追放中のエンティティ、禁止されたエンティティまたは他の場合における不要なエンティティを追跡し続ける。位置についての管理者設定および／または自動化プロセス（例えば、挙動分析）に基づいて、アバターを位置から拒絶することができる。例えば、位置２がアバターが他者に対してセキュリティリスクを持っている場合、位置の規則を遵守していない場合、望ましくない挙動の履歴を持っているなどと決定した場合、位置２はアバターの進入を許可しない。このようなデータが転送された場合、認証は、ブロック３０３および３０４において転送されたアバターデータおよび／または他のデータに基づき得、位置２において利用することが可能な他のデータにも基づき得る。
【０１４４】
アバターがブロック３０５において転送対象として認証された場合、ブロック３０６および３０７において、位置１および２間において転送プロトコルが完了する。実施形態において、転送プロトコルは、これらの位置のうちの１つのみにアバターが存在することを保証することができるため、アバターが２つの位置において同時に作用する事態を回避することができる（ただし、これがシステムにとって所望される場合）。別の実施形態において、アバターが同時に２つの場所に存在することが許可され、その場合、転送プロトコルは、アバターが１つの位置のみに存在することを保証しなくてよい。実施形態において、暗号プロトコル（例えば、ビットコインプロトコル）を用いて、アバターが１つの位置のみに存在することを保証する。あるいは、中央データベースまたはアバター位置の記録を用いて、アバターの一意性を保証することができる。
【０１４５】
転送プロトコルはまた、ブロック３０８に示すように、アバターのアイテムおよび／または特性の転送および／または変換も行うことができる。以下に詳述するように、アバターは、特性（例えば、所有されるアイテム、外観フィーチャ、パーソナリティフィーチャ、社会的関係など）と関連付けることができる。世界または他の位置間において移動する際、アバターは、これらの特性を自動的に転送させることができる。いくつかの実施形態において、これらの特性を、目的地位置へ適したものへとさらに翻訳または変換することができる。例えば、目的地位置が必要かつ／または許可された所有についての特定の規則を有する場合において、アバターが新規世界において許可されていない所有を有する場合、アバターの所有を交換、変換、改変、移転、除去または他の場合に影響付与をすることができる。多様な実施形態において、転送プロセスは、位置１におけるコンピュータシステムによって、位置２におけるコンピュータシステムによって、クライアントコンピューティングデバイス、中央サーバなどならびにこれらの任意の組み合わせによって行うことができる。
【０１４６】
一実施形態において、アバターの転送は部分的な方法で行うことができ、これにより、アバターと関連付けられた１つ以上の要素（例えば、所有）からアバターを分離することができる。このようにして、境界を超えることが許可されていない所有を元々のシステムに保持し、アバターが戻ってきたときに再要求することが可能になる。別の実施形態において、アバターの複製またはクローンが境界を超えることを許可し、このような複製が境界を超えて戻ることを任意選択的に禁止することができる。複製および元々のアバターは連結されたままであるため、仮想通貨またはアイテムを共有し、例えば１つのアバターへの損傷は他方にも生じる。一実施形態において、複製アバターが境界を超えて戻ってくると、アバターはマージされ、行われた複製はマージされたアバターに反映されるため、変更のうち一部または全てがそのときのの１つまたは双方のアバターに対して行われる。
【０１４７】
ブロック３０９において、位置１のコンピュータシステムは、アバターを不参加にさせる。並列的または直列的に、ブロック３１０において、位置２のコンピュータシステムは、アバターを相互作用に参加させる。これは、位置１および／または２のコンピュータシステムによって反映されて、適切なデータがアバターのユーザのコンピューティングデバイスへと送られ、これにより、新規位置を反映するアバターのためのグラフィカル表示が更新される。実施形態において、多様な移行をこの転送時に用いて、アバターに位置変更を示すことができる。実施形態において、ユーザインターフェースをブロック３０１〜３１０のプロセス時において提示して、アバターのユーザにプロセスを通知することおよび／またはユーザがプロセスへ影響付与を行うことが可能にすることができる。例えば、ユーザインターフェースをブロック３０８において提示じて、ユーザがアイテムまたは他の特性の変換を制御または他の場合に影響付与をすることが可能になる。例えば、いくつかの場合において、ユーザは、特性またはアイテムについて、現在保持されているアイテムまたは特性を位置２において翻訳するための１つよりも多くの選択肢を持ち得る。転送分岐が他の理由のために望ましくない場合、ユーザは、世界境界横断をキャンセルする選択肢もさらに持ち得る。１つのインプレメンテーションにおいて、ユーザ経験をよりシームレスにするためまたは他の理由のために、位置２のコンピュータシステムは、アバターを暫定的に参加させた後、位置１のコンピュータシステムがアバターを不参加にさせる。これは、位置それぞれの評判、位置間の契約または他の関係、位置間の待ち時間、位置間のアバターの動きについての履歴データまたは他の要素上について調節することができる。
【０１４８】
図４は、一実施形態において用いられる世界または他の位置間のアイテム変換プロセスのフローチャートである。プロセスは、例えば、図３について述べたようなコンピュータシステムによって行うことができる。プロセスは、図３のブロック３０８において行うことができる。多様な実施形態において、さらなるブロックを含めてもよいし、いくつかのブロックを除去してもよいし、かつ／または図示と異なる様態でブロックが接続または配置され得る。
【０１４９】
上述したように、アバターを特性と関連付けることができる（例えば、所有、外観フィーチャ、パーソナリティフィーチャ）。これらの特性のうちいくつかまたは全ては、１つの世界において適切であり得るが、相互に適切ではない。例えば、アバターは、宇宙テーマ世界において動作し得、アバターは、宇宙服を着用し、宇宙船を飛ばし、レーザー銃で戦う。第２の世界は中世世界であり得、アバターは甲冑を着用し、馬にまたがり、幅広剣で戦う。宇宙テーマ世界に適したアイテムは、中世世界においては存在せずかつさらには動作不可能であり、またその逆も成り立つことが容易に理解される。アバターが境界を超えるたびにアバターのユーザに１つの世界用のアイテムを破棄し、別の世界用のアイテムを取得するようユーザに要求することは時間がかかり、非効率であり、またユーザにとって望ましくない。そのため、システムは、図４に示すような自動化変換プロセスをイネーブルする。
【０１５０】
ブロック４０１において、システムは、アバターの特性を決定する。特性は、データファイル中に示される（例えば、図３のブロック３０３および３０４について述べたもの）。あるいは、特性を特性の外部および／または内部保存部から得てもよい。
【０１５１】
その後、システムは、特性を検査し、適切な変換を決定する。ブロック４０２において、システムは、アバターの特性のうち１つを特定し、特性の属性がブロック４０３において決定される。特性の属性を挙げると、タグ、フィーチャ、記述、メタデータ、または特性と関連付けられた他の情報がある。例えば、宇宙テーマ世界における宇宙船の属性は、サイズ、速度、パワー、年齢などであり得る。同様に、中世世界における馬の属性は、品種、スタミナ、年齢、血統などであり得る。実施形態において、属性は共通オブジェクト属性モデルに基づくため、異なるオブジェクト間の属性の比較を容易に行うことができる。新規領域と無関係の特性は検査する必要は無く、要検査の特性をホワイトリストまたはブラックリストを用いて特定することができる。
【０１５２】
実施形態において、属性のうち１つは、オブジェクト種類を示すクラス属性であり、これにより、同じおよび／または同様のクラスのオブジェクトの交換が可能になる。例えば、宇宙世界の宇宙船および中世世界の馬はどちらとも「移送」クラスであり、双方のアイテムが各世界において移送モードにあることを示す。クラス属性は、複数の世界間において一貫する必要は無い。例えば、幅広剣は中世世界においては「武器」として分類されるが、考古学または探検世界においては「遺物」として分類される。一実施形態において、分類翻訳テーブルを維持することにより、異なる世界において用いられる異なるクラス名間の相関を追跡する。
【０１５３】
１つのインプレメンテーションにおいて、クラスシステムにおいて用いられ得る命名および／または階層システムにより、変換の促進およびユーザによる変換の理解が可能となる。１つのこのようなインプレメンテーションにおいて、命名は、ＤＮＳシステムにおいて用いられるものと同様であり得、最終オブジェクトについてのデータへのポインタとして任意選択的に機能する。
【０１５４】
一例として、宇宙船オブジェクトについて考える。宇宙船オブジェクトは、以下のテーブルに示すような属性を持ち得る。
2014529792.tif 000003
【０１５５】
上記宇宙船の分類の要素は、階層的であり得る（上記表において、これらの要素は一般的にはより具体的なものからより一般的なものの順に配置される）。これらの要素は、ＤＮＳシステムにおいて期間毎に分離されるサブドメインまたはファイルシステムにおいてスラッシュによって分離されるフォルダの配置構成と同様に、階層的に表現される。
【０１５６】
ブロック４０４において、コンピュータシステムは、ブロック４０２の特性を入力されている世界にマッピングするかを判別する。この判別は、ブロック４０３において評価された属性に基づいて、行われ得る。いくつかの場合において、特性は、マッピング不可能である。例えば、幅広剣またはレーザー銃などの武器については、平和な世界において相当するものが存在しない。本例において、判別は、オブジェクトのクラスに基づき得る。すなわち、平和な世界は、「武器」クラス（および／または他の同様のクラス）の特性を禁止するという規則を含み得る。コンピュータシステムがブロック４０４においてマッピングが不可能と判別した場合、ブロック４０５において、コンピュータシステムは、次の特性の検査へと進む。
【０１５７】
マッピングが不可能と判別された場合、オブジェクトは任意選択的に記憶装置サーバへとチェックインし得、少なくとも当該オブジェクトが使用可能であるかまたはマッピング可能となる領域に入るまでかつ／または仮想または現実的通貨、物品またはサービスがオブジェクトと交換に提供されるまで、アバターと共に使用不可能な形態で（例えば、オブジェクトの仮想写真の形態で）記憶装置サーバ中に留まる。このような提案は、オブジェクトが短時間を超える期間にわたってマッピング不可能である領域内にアバターが留まる場合において、特に適している。あるいは、オブジェクトを、オブジェクトと同様または異なって選択された複数のユーザまたはオペレータのうちの１つへマッピングすることもできる（例えば、刀から鍬への変換）。または、特定のオブジェクトを類似のまたは異なるオブジェクトに自動変換することもできる。グローバルおよび／またはローカル状態を用いて、使用不可能なまたは乗算マッピングされたオブジェクトの記憶装置を維持することができる。
【０１５８】
特性が世界へマッピング可能である場合、ブロック４０６において、マッピング対象となる適切な特性を決定し、アバターを新規特性と関連付ける。新規特性の判別は、ブロック４０３において決定された属性に基づいて行うことができ、世界において既知であるかまたは世界において利用可能である特性の属性データにさらに基づく。実施形態において、世界は、充分に類似する属性の特性の選択を、発見的解析、最大化、最適化、整合、回帰および／または他の特性比較アルゴリズムに基づいて行う。実施形態において、ユーザは、マッピングされた特性の選択への入力を持ち得る。
【０１５９】
実施形態において、特性は、現実のお金、仮想マネーおよび／または他の交換可能な有価通貨またはアイテムと関連付けられる。いくつかの場合において、アバターの元々の特性は、マッピングされた特性よりも高いかまたは低い。適切である場合、次に、システムは、アバターと関連付けられたアカウントにブロック４０７に示すように課金または返金する。実施形態において、課金または返金が行われるのは、特性変換が永久である場合のみである。よって、いくつかの場合において、アバターが世界内に存在している間、アバターの特性は一時的にしか変換されず、アバターがその世界から退出すると、元々の特性が回復される。このような場合、値変更についての清算は不要である。
【０１６０】
あるいは、余剰値をユーザの代わりにアカウント中に保持しておき、値における不足額をユーザに課金するかまたは不足額に等しい額をユーザアカウントにおいて凍結することもでき、これらは全て、オブジェクトが変換から回復するかまたはこれら２つのイベントよりも早期に、一定期間にわたって保持される。別の実施形態において、オブジェクトを一定期間において一定の交換レートで変換から戻すという同意の下、オブジェクトの変換を（値不足の場合に）ユーザに課金するかまたは（値余剰の場合は）ユーザに貸方記入することができる。これらのシナリオのうち任意のものにおいて、利息が発生するかまたは課金され得る。
【０１６１】
多様な実施形態において、特性変換は、一時的なものではなく、永久的なものである。そのような場合、ブロック４０８において、アバターのグローバル状態を適切に更新して、アバターの特性変更を反映する。詳細には、このブロックにおいて、アバターの古い特性をグローバル状態において呼び出し、アバターの新規特性をグローバル状態へ追加することができる。グローバル状態は、実施形態において、アバターの特性を全世界にわたって反映する。よって、グローバル状態がアバターの特性について更新された場合、当該アバターが世界から出発すると、当該アバターは以前の特性を受信しない。実施形態において、アバターの元々の特性は、グローバル状態の更新後の世界と関連付けられ得る。例えば、アバターが中世世界に入って宇宙服を甲冑服と交換した場合、宇宙服は中世世界の所有となるため、中世世界の販売または他の場合に中世世界からの値調節がイネーブルされる。あるいは、特性を世界またはサービスプロバイダのための共通プールへ戻すことも可能である。任意選択的に、所有権のこのような変換および変更は、何らかの値（仮想または現実的）との交換に行われる（例えば、世界への進入）。任意選択的に、このような変換は経時的に発生し得、これにより、ユーザが当該世界にいる間、ユーザのアイテムへの興味が経時的に薄れていく。
【０１６２】
実施形態において、いくつかの特性は永久変換が可能であり、他の特性は一時的に変換することができる。このような変換手順は、アバターが進入した世界および／または進入先の世界の規則からのアクセスおよび／または退出元の世界によって規定され得る。例えば、世界は、外観関連特性は一時的に変換し、所有関連特性は永久変換すると指定し得る。一実施形態において、ユーザに対し、永久変換が可能な特性および／または一時的に変換される特性および／または影響を受けない特性についての視覚的表現が提示され得る。このような提示は変換前に行うことができ、変換をこのような変換についてのユーザの同意に合わせて調節することができる。帽子、シャツおよび刀を着用したアバターの簡単な例において、帽子は影響を受けず、シャツは一時的に影響を受け、刀は永久に影響を受け、帽子は白色表示（かまたは強調表示）され、シャツは黄色であり、刀は赤色である。
【０１６３】
属性全てがブロック４０５を通じて処理された場合、ブロック４０６において、コンピュータシステムは他のデフォルト特性を必要に応じてアバターへ付加する。１つの世界は、特定の特性を必須のものとしてまたは他の場合にデフォルトとしてアバターについて規定し得る。例えば、宇宙世界は、アバターに酸素タンクを呼吸のために所有するよう要求し得る。アバターが宇宙世界へと進入すると、システムは、進入時においてアバターに酸素タンクを供給する。多様な実施形態において、アバターは、世界への全ての入力時、アバターの世界への初回進入時および／またはアバターがアイテムまたはデフォルトアイテムへマッピング可能な別のアイテムを既に有しているかに基づいて、デフォルトアイテムを受け取る。実施形態において、アバターは、デフォルトアイテムについて課金され得る。別の実施形態において、アイテムは、「レンタル」または「貸与」ベースで提供することができる。
【０１６４】
ブロック４１０において、世界によって保存されたローカル状態に基づいて、アバターの特性をさらに更新することができる。世界は、ローカル状態を用いて、特定の世界に関連するがグローバルアバター状態には関連しない情報を維持することができる。例えば、ローカル状態は、当該世界に特有の特性の情報を維持することができる。追加、除去または変更により、特性更新をブロック４１０において行うことができる。
【０１６５】
ローカル状態更新を用いて、世界への進入および世界からの出発についての戦略を通じて、望ましくないアイテム更新を回避することができる。上記の宇宙世界の例において、酸素タンクは経時的に枯渇し得、酸素タンクを（恐らくは有料で）定期的に補充するようアバターに要求することができる。しかし、宇宙世界進入時においてアバターが自動的に酸素タンクを付与される場合、アバターは、宇宙世界を退出し、酸素タンクを廃棄し、宇宙世界に戻る際に新規タンクを受け取ることにより、アバターは購入を免れる。宇宙世界は、アバターの酸素タンクレベルを記録することにより、これを回避するためにローカル状態を用い得、これにより、アバターが戻ってきた場合、酸素タンクは以前のレベルまで設定される。別の例において、アバターは世界におけるアイテムを紛失する場合があるが、世界はアイテム紛失を永久としていないため、アバターが世界から退出すると、当該アイテムは回復される。その後、ローカル状態を用いて、アバターが世界へと戻ってきたとき、「紛失された」アイテムはアバターにとってアクセス不可能となる。よって、ローカル状態を用いることにより、世界への進入および世界からの退出を通じて、アバターの特性の持続性を必要に応じて保証することが可能になる。
【０１６６】
ローカル状態に加えて、ローカル状態とは別個に、またはローカル状態と関連して、システムは、ユーザが最終マッピング後に１つ以上のアイテムまたは任意のアイテムを領域間において一定期間にわたってマッピングさせることを回避することができ、マッピングを行う能力を以下の式を用いて任意選択的に徐々に戻す（例えば、Ｍ＝Ｎ／Ｔ（Ｍは、マッピング可能なアイテムのパーセンテージであり、Ｎは、最終マッピングから経過した秒数であり、Ｔは、フルマッピング間にシステムにとって必要な時間長さである）。このような式を用いたアプローチを代替的または追加的に用いて、マッピングコストを決定した後、設定時間長さが経過する（すなわち、コストとは、早期マッピングまたは他のマッピングを１マイナスＭで乗算したフルコストである）。
【０１６７】
図５は、一実施形態において用いられる、グローバル状態からの特性をローカル状態へとマッピングするプロセスのフローチャートである。このプロセスは、例えば図４のブロック４０６においてコンピュータシステムによって行われ得る。多様な実施形態において、さらなるブロックが設けられ得、いくつかのブロックが除去され得、かつ／または図示と異なる様態でブロックが接続または配置され得る。
【０１６８】
ブロック５０１において、コンピュータシステムは、変換手順（例えば、図４について述べたようなもの）時において、処理されているアバターの１つの特性を特定する。特性は、アバターの特性を特定するグローバル状態から抽出され得る。ブロック５０２において、コンピュータシステムは、当該特性にローカル変更があるかを判別する。ローカル変更とは、特定の世界に適用可能な変更であり、世界のローカル状態と共に（例えば、上記に述べた酸素タンクおよび紛失アイテム例と共に）保存され得る。このようなローカル状態変更の後、ローカル状態変更はブロック５０３において適用される。
【０１６９】
ローカル状態変更が無い場合、ブロック５０４において、システムは、アイテムの別の世界または位置への変換に同意があるかを判別する。２つの世界は、特定のアイテムまたは特性が変換可能であるとの同意を持ち得、これにより、これらの特性の交換が可能となる。例えば、宇宙世界および中世世界は、特定の種類のレーザー銃を特定の種類の幅広剣と交換することができるとの同意を持ち得る。同意は、スクリプト、コード、または同意している世界の他のローカル状態中に保存され得る。このような同意が見つかった場合、同意された変換がブロック５０５において用いられる。変換が呼び出されると、ネットワーク接続または他の通信による同意している世界との接触が行われる。
【０１７０】
同意が見つからない場合、ブロック５０６において、世界のデフォルト変換手順が行われる。この変換手順は、変換されている特性の属性、多様な許可された特性の属性、特性の仮想通貨値、特性の供給および／または需要などを担当し得る。さらに、変換は、世界によって指定されたように、一時的または永久的なものであり得る。
【０１７１】
図６は、実施形態において用いられる、グローバルアバター状態およびローカル世界データの例示的データ構造のブロック図である。データ構造は、コンピュータによって読み出し可能な媒体（例えば、ハードドライブ、ＳＳＤ、テープバックアップ、分散記憶装置、クラウド記憶装置）上に保存され得、関連データベーステーブル、フラットファイル、Ｃ構造、プログラミング言語オブジェクト、データベースオブジェクトなどとして構造化され得る。多様な実施形態において、さらなる要素を含めてもよいし、いくつかの要素を除去してもよいし、および／または図示と異なる様態で要素を配置してもよい。
【０１７２】
グローバルアバター状態６０１は、サービスプロバイダまたは他のデータ保存部によって保存され得、１つ以上のアバターに関連する記録を保持し得る。グローバルアバター状態は、情報を維持し得る（例えば、アバターの特性（例えば、属性６０２（例えば、外観、パーソナリティ、社会的関係）および所有６０３））。さらに、グローバルアバター状態は、認証データ６０４を維持し得る。認証データ６０４は、例えば図３のブロック３０５において用いられ得る。
【０１７３】
上述したように、特性と、各特性の局面を規定する属性とを関連付けることができる。属性は、例えば、図４のブロック４０６のマッピングプロセスにおいて用いることができる。これらの特性は、グローバルアバター状態６０１の一部として保存することができる。あるいは、属性は、アバター特性の属性の別個のデータ保存部中に保存してもよい。実施形態において、各世界は、特性の属性を維持し、これにより、（上記の幅広剣の「武器対遺物」の例について説明したように）世界が特性を異なって解釈することが可能になる。
【０１７４】
仮想世界データ６０５は、仮想世界を操作するための情報を含み得る。変換プロセスに関連する規則（例えば、図４について述べたもの）を、仮想世界データ６０５中に含めることができる。例えば、必要な特性６０６を図４のブロック４０９において用いて、必要な特性またはデフォルト特性および／または特性の属性を決定することができる。変換規則６０７は、特性および／または特性の属性を変換するプロセスを規定し得る。
【０１７５】
仮想世界は、特性（例えば、変換プロセス時に取得される特性）を維持する。これらの特性は、所有６０８として仮想世界中に保存され得る。仮想世界はまた、図５のブロック３０５について述べたように、進入時におけるアバターの認証および許可を決定するための認証データ６０９も維持し得る。
【０１７６】
上述したように、各仮想世界は、ローカルアバター状態を維持し得る。ローカルアバター状態は、世界特有の変更を特性へ反映するように進入時におけるアバターのグローバル状態を変更するために用いられる。これらの変更は、データ構造６１０において維持され得る。データ構造６１０は、属性変更６１１および所有および他の特性変更６１２についての情報を含む。保存された変更は、アバターへ追加されるべきさらなる特性、アバターから除去されるべき特性および／またはアバターの特性の属性の変更を含み得る。さらに、図５のブロック５０４について述べたように、仮想世界は、特性交換についての１つ以上のワールドツーワールドローカル同意を維持し得る。
【０１７７】
図７は、実施形態において用いられる、アバターが仮想世界と相互作用している際にアバターの特性を変更するプロセスのフローチャートである。プロセスは、上述したように、仮想世界を操作するコンピュータシステムによって行われ得る。多様な実施形態において、さらなるブロックを含めてもよいし、いくつかのブロックを除去してもよいし、および／または図示と異なる様態でブロックを接続または配置してもよい。
【０１７８】
ここまで、本開示において、仮想世界への進入または仮想環境内における通過時におけるアバター特性の取り扱いについて述べてきた。アバターが仮想世界と相互作用すると、アバターの特性が変化し得る（すなわち、アバターは、新規アイテムを取得し、アイテムを販売または廃棄し、外観を自然にまたはユーザの命令により変更するなどする）。アバターは、特性を得るかまたは失い得る（例えば、アバターは、アイテムを取得するかまたは失い得る）あるいは特性の属性が変化し得る（例えば、アバターの刀が損傷を受ける）。同様に、アバターそのものが変化し得る（例えば、加齢による変化、新規スキルの獲得による変化）。これらの変化は、特定の世界の構成に応じて、アバターのグローバル状態に反映される場合もあるし、反映されない場合もある。例えば、「試験」世界の場合、アバターの特性は出発時に回復されるが、「現実の」世界の場合、アバターの変更は永久に継続される。さらに、仮想世界は、変換システムの望ましくない賭博に関連し得る。例えば、アバターは、世界への出入りを繰り返すことにより、変換プロセスの呼び出しにより不法または望ましくない利益を得ようとする場合がある。
【０１７９】
さらに、イベント発生時において、ユーザが以前の状態に戻りたいと思う場合がある。例えば、宇宙世界からの退出時において、アバターは、アバターが宇宙世界に進入しようとしたときの状態に戻ることを望み得る。過去状態の情報は、システムによって（またはローカルにクライアント側に）維持され得、このような情報を用いて、このような復帰のコストを決定する（または購入可能な要素（例えば、新規の武器）および購入不可能な要素（例えば腕）の混合物の場合）。一実施形態において、ユーザは、ゲームにおいて状態をセーブするのと同様に、複数の復帰ポイントを選択するかまたは付与され得る。一実施形態において、特定の状態に復帰するためのコストは、ユーザへ継続的または断続的に提示され、および／または、ユーザは、１つ以上のトリガコストを選択することができる。これらのトリガコストにおいて、ユーザは警告を受けかつ／または自動的に復帰が可能な場所および／または自動復帰の場所まで移送され得、このような移送全てにおいて、アイテム購入コストがユーザアカウントから任意選択的に自動減算される。一実施形態において、コスト（および／または復帰に必要な時間）は、アイテムの市販価格の変動および利用可能性について連続的または定期的に調節される。
【０１８０】
ブロック７０１において、アバターは、仮想世界と相互作用する。相互作用の結果、アバターの特性がブロック７０２において変更され得る。変更は、アバターがとるアクションおよび／または自動プロセス（例えば、加齢）に応答して発生し得る。
【０１８１】
ブロック７０３において、アバターのローカル状態が更新され得る。ローカル状態は、世界内のアバターの特性に影響付与するように、構成され得る。その結果、特性変更についてアバターへフィードバックを迅速に提供することができる。
【０１８２】
ブロック７０４において、システムは、対応する変更がグローバル状態に為されたかを決定する。決定において、いくつかの実施形態において複雑なプロセスがシステム構成および仮想世界に応じて行われ得る。例えば、システムは、変更された特性そのものがグローバル状態中に存在しないが、変更された特性がグローバル状態中に存在する別の特性と交換されたことを決定し得る。このような場合、世界ベースの特性の変更が、対応してグローバル特性に対して行われる。
【０１８３】
例えば、元々は宇宙世界から来たアバターがレーザー銃を有しており、中世世界へ進入した場合、アバターのレーザー銃を幅広剣へ変換することができる。中世世界において、アバターが幅広剣を別のアバターへ売った場合、システムは、幅広剣がレーザー銃に対応することを検出し、アバターのグローバル状態を更新して、レーザー銃の所有を除去する。
【０１８４】
上述したように特性が永久変換される場合、上記した逆マッピング手順は不要であり得る。逆マッピング手順が行われる場合、仮想世界は、手順を促進するために適切なデータ構造を維持することができる（例えば、変換の変換）ことが理解される。１つのインプレメンテーション（例えば、特性が永久変換されない場合）において、レーザー銃などのアイテムを転送するには、当該アイテムの状態を開示する必要があり得る（またはシステムがそのようにする）（例えば、「レーザー銃が幅広剣に一時的に変換されている」）。
【０１８５】
グローバル状態への特性変更のマッピングにおいては、同様の複雑度が関連し得る。例えば、上記からのアバターの幅広剣が戦闘時において屈曲または欠損した場合、グローバル状態におけるアバターのレーザー銃に対する対応する変更を行うことができる。同一の変更は不適切である場合がある。本例において、レーザー銃の欠損は、レーザー銃の機能性を損なう可能性が低いのに対し、幅広剣の欠損は、剣の機能を損なう。よって、グローバル状態の変更は、仮想世界および／またはサービスプロバイダによって規定されるように、マッピングプロセスを通じても行うことが可能である。これらの変更は、上述したように特性の属性に基づき得る。例えば、幅広剣の欠損は、「武器」クラスアイテムの「パワー」属性の低下として解釈され得るため、レーザー銃の「パワー」属性の対応する低下がグローバル状態においても設定される（例えば、レーザー銃の発射時間を短縮する）。
【０１８６】
ブロック７０４においてグローバル状態が変更された場合、当該変更はブロック７０６において行われ、ブロック７０７において保存される。システムがブロック７０４において当該変更が不可能であると決定した場合、ブロック７０５において、システムは、適切なローカル状態変更を保存し得る。ローカル状態変更を用いて、世界から退出するかまたは再進入するアバターが変更された特性を復帰できないようにする。例えば、上記からの幅広剣の例について、幅広剣の欠損は、中世世界のローカル状態中に保存され得る。欠損した幅広剣を有するアバターが中世世界から退出すると、アバターの元々のレーザー銃が回復され得る。その後、アバターは中世世界へと戻り、レーザー銃を再度幅広剣へと変換させ、ローカル状態に起因して、当該幅広剣は自動的に欠損を含むようになる。
【０１８７】
図８は、実施形態において用いられる、特性の永久変換を要求する世界に進入する際の特性変更プロセスのフローチャートである。プロセスは、仮想世界を操作するコンピュータシステムによって行われ得る。多様な実施形態において、さらなるブロックを含めてもよいし、いくつかのブロックを除去してもよいし、および／または図示と異なる様態でブロックを接続または配置してもよい。
【０１８８】
ブロック８０１において、システムは、アバターの特性を決定する。ブロック８０２において、システムは、世界に適した対応する特性を特定する。対応する特性は、図５について述べたようなマッピングプロセスにより、決定することができる。
【０１８９】
ブロック８０３において、システムは、特性の交換をアバターのユーザへ提案する。提案は、ユーザインターフェースとして表示され、受信されるべき特性、必要な値、没収されるべき特性などを示す。実施形態において、複数の交換選択肢がアバターへ提示され得る。実施形態において、アバターに対し、交換可能アイテムの選択肢が提示されるため、完全な提案パッケージの形成は不要である。その後、ユーザは、ブロック８０４において交換を受容するよう促される。ユーザが交換を拒否した場合、ブロック８０５において、世界は、アバターの世界への進入の許可を拒否する。
【０１９０】
ユーザがブロック８０４において交換を受容した場合、ブロック８０６において、アバターの特性は、適切に無効化され得る。このような無効化は、アバターのグローバル状態へと書き込まれて、永久性が確保される。ブロック８０７において、アバターに対し、ブロック８０３において提案されたような新規特性が付与される。無効化された特性とおよび付与された特性との間に差が発生し得るため、ブロック８０８において、アバターのアカウントに対し、適切に課金または貸方記入が行われ得る。
セキュアラブルオブジェクトおよび許可決定
【０１９１】
アバターを特定のアクションを世界シーンまたはインスタンス内においてとる能力に限定することが望まれる場合がある。例えば、壁への落書きを回避することが望まれる場合がある。空間の所有者または経営者は、オブジェクトに多様な許可をマーク付けすることで、特定の人々、特定クラスのアバターおよびオブジェクト、または他のアクターが特定のアクションを実行できるかまたはできないようにすることを望み得る。許可は、持続性規則も含み得る。例えば、変更または移動が可能であるオブジェクトがあり得るが、これらのアクションは、一定時間または特定のイベント後に期限切れとなる（例えば、人が部屋から退出した後、全アバターがある領域を退出した後、特定のスタッフユーザ以外の全アバターが領域から退出した後）。一実施形態において、アバターについての履歴情報を用いて、例えば以前壁に落書きしたことのある任意のアバターの部屋への進入を禁止することにより、アバターの領域への進入についてリスクおよび望ましさを評価する。
【０１９２】
図９は、実施形態において用いられる、仮想世界サービスプロバイダおよびユーザを接続するコンピュータネットワークシステムのブロック図である。多様な実施形態において、さらなるブロックを含めてもよいし、いくつかのブロックを除去してもよいし、および／または図示と異なる様態でブロックを接続または配置してもよい。
【０１９３】
サービスプロバイダ９０１は、仮想世界サービスを提案するコンピューティングデバイスおよびシステムを含む。サービスプロバイダ９０１は、本明細書中に記載されるプロセスのうち１つ以上を行うように構成されたコンピューティングハードウェアおよび／またはソフトウェアを含み得る。実施形態において、複数のサービスプロバイダ９０１が、単一のコンピューティングデバイス上に収容され得る。サービスプロバイダ９０１はまた、クラウドコンピューティングまたは分散システムの場合と同様に、複数のデバイスにわたって分散され得る。
【０１９４】
サービスプロバイダ９０１は、１つ以上のネットワーク９０２を介してユーザ９０３と通信する。ネットワークは、例えば、インターネットネットワーク、セルラーネットワーク、ローカル領域ネットワーク、広域ネットワーク、無線ネットワーク、イーサネット（登録商標）ネットワークなどと、これらの組み合わせとを含み得る。ユーザ９０３は、ユーザコンピューティングデバイスを含み得る（例えば、デスクトップコンピュータ、ラップトップコンピュータ、モバイルコンピューティングデバイス、携帯電話、タブレット）。本明細書中、「ユーザ」という用語は、当該用語の文脈において適切なものとして、ユーザデバイス（例えば、上記したおよび／またはエンティティ（例えば、このようなデバイスを操作する個人））を指し得る。
【０１９５】
さらなるデバイスおよびシステムが、図９のシステムに含まれ得る。例えば、サービスプロバイダ９０１は、共通データ保存部（アカウントデータベース、登録サーバ、管理サーバなど）と通信し得る。このように中央システムを用いることにより、サービスプロバイダ９０１が相互に容易に同期および協調することが可能になる（例えば、アバター位置の移行の協調、ユーザアカウントの同期）。
【０１９６】
図１０は、実施形態において用いられる、サービスプロバイダ上の仮想世界データの例示的配置構成の階層図である。ブロックは、データオブジェクトの種類を示し、相互接続は、データ要素（例えば、ポインタ、参照、サブクラス関係）間の関係を示し得る。データ構造は、コンピュータによって読み出し可能な媒体（例えば、ハードドライブ、ＳＳＤ、テープバックアップ、分散記憶装置、クラウド記憶装置）上へ保存され得、関連データベーステーブル、フラットファイル、Ｃ構造、プログラミング言語オブジェクト、データベースオブジェクトなどとして構造され得る。多様な実施形態において、さらなる要素を含めてもよいし、いくつかの要素を除去してもよいし、および／または図示と異なる様態で要素を配置してもよい。
【０１９７】
サービスプロバイダ１００１は、サービスプロバイダに関連する一般的データを含むデータオブジェクトとして表現され得る。サービスプロバイダは、サービスプロバイダのユーザのために、アカウント１００２を維持し得る。アカウントオブジェクトは、ユーザに関連する関連データ（例えば、ユーザ名、認証情報、属性情報、個人情報）を含み得る。各アカウントは、１つ以上のアバター１００４とさらに関連付けられ得、これらのアバター１００４中から、仮想世界中に出現させるものをユーザが選択することができる。多様な実施形態において、サービスプロバイダは、ユーザが複数のアバターを維持することを可能にするか、または、ユーザを単一のアバターに制限する。ユーザが複数のアバターを維持することを可能にすることにより、サービスプロバイダは、ユーザが（ユーザおよび／またはサービスプロバイダが選択した）異なる外観および仮面を異なる状況においてとることを可能にする。
【０１９８】
サービスプロバイダ１００１は、世界１００３をさらに維持し得る。各世界が示し得る仮想空間において、アバターが相互作用することができる。サービスプロバイダは、複数の仮想世界１００３を維持し得、各仮想世界は、サービスプロバイダ１００１の異なるユーザまたは管理者によって操作され得る。よって、サービスプロバイダは同様に国にリンクされ得、各世界は世界内の都市にリンクされ得る。一実施形態において、仮想世界は、別個の規則、フィーチャ、コミュニティなどを持ち得、これらは全て、サービスプロバイダの一般的方針に従う。
【０１９９】
仮想世界１００３は、シーン１００５を含み得る。上記と同様に、各シーンは、都市の中の建物または部屋へとリンクされ得る。シーンは、アバターが訪問および進入することが可能な仮想位置を示す。１つのシーンは、多様な属性（例えば、外観、サイズ、家具、含まれるアイテム、アーキテクチャ）によって規定され得る。
【０２００】
いくつかの状況において、単一のシーン１００５を利用可能とし、かつ、アバターを当該シーンの異なるコピーに進入させることが望ましい場合がある。例えば、仮想テニスコートのように配置されたシーンを生成し、（テニスプレーヤが同一仮想空間を用いるのではなく）複数のペアのテニスプレーヤにこのシーンの別個のコピーを提供することが所望され得る。このようなコピーは、インスタンス１００６によってインプリメントされる。あるインスタンスは、走っているシーンを示し、アバターは、シーンのインスタンス内において相互作用する。
【０２０１】
アバターがシーンを発見し、そのシーンに進入を試行すると、サービスプロバイダは、当該アバターのために新規インスタンスを生成するかまたはアバターを既存のインスタンスに入れるかを決定する。決定は、シーンについて指定された規則に基づき得る。例えば、いくつかのシーンは、インスタンス毎に最大数のアバターが可能となるように（例えば、テニスシーンにおいてインスタンス毎に２人のプレーヤが可能となるように）、構成される。新規インスタンスは、時間間隔、アバターユーザリクエスト、各インスタンス内におけるオブジェクトの利用可能性などに基づいて生成することも可能である。一実施形態において、閾値イベントが発生した場合、環境は自動的に変化し得るか、または、アバターが自動的に移送され得る。例えば、８人のアバターがテーブルにサインアップした場合、ポーカーをしようと待機しているアバターを、ポーカー部屋へ自動的に移送することができる。別の例において、予想されるテニスプレーヤは、別のテニスプレーヤが到着するまで待機部屋において待機することができ、その後待機部屋はテニスコートへ変換される。
【０２０２】
インスタンスは元々は、基盤となるシーンの仕様に基づいて構成され得る。例えば、１つのシーンについて、新規生成されたインスタンスを同じ内蔵アイテム、同じ外観、同じサイズなどで配置することができる。別の実施形態において、シーンは、各新規インスタンスの本質をランダム化または他の場合に変更する命令を含み得る。アバターがシーンのインスタンスと相互作用すると、これらのアバターに起因して、含まれるアイテム、外観などが変更される。このような変更は、恐らくはシーンの構成に応じて、元々のシーンを反映する場合もあれば、反映しない場合もある。さらに、実施形態において、新規インスタンスは、元々のシーンに基づくのではなく、既存のインスタンスに基づき得る。
【０２０３】
サービスプロバイダ内において、世界１００３、シーン１００５およびインスタンス１００６がデータ構造オブジェクトとして表現され得る（例えば、ＸＭＬ文書、関連データベース記録、プログラミング言語オブジェクト）。サービスプロバイダは、これらのオブジェクトをグラフィカルまたは他の表現へ変換するためのソフトウェアモジュールを含み得る。ソフトウェアは、サービスプロバイダ上において操作されて、これらの表現を生成する。さらにまたはあるいは、ユーザデバイス上において動作するクライアントソフトウェアは、データ構造オブジェクトをグラフィカル表現へと翻訳し得る。
【０２０４】
図１１は、実施形態において用いられる、仮想世界内のオブジェクトの例示的配置構成の階層図である。ブロックは、データオブジェクトの種類を示し得、相互接続は、データ要素（例えば、ポインタ、参照、サブクラス関係など）間の関係を示し得る。データ構造は、コンピュータによって読み出し可能な媒体（例えば、ハードドライブ、ＳＳＤ、テープバックアップ、分散記憶装置、クラウド記憶装置）上に保存され得、関連データベーステーブル、フラットファイル、Ｃ構造、プログラミング言語オブジェクト、データベースオブジェクトなどとして構築され得る。多様な実施形態において、さらなる要素を含めてもよいし、いくつかの要素を除去してもよいし、および／または図示と異なる様態で要素を配置してもよい。
【０２０５】
実施形態において用いられるセキュアラブルオブジェクト１１０１は、一般的クラスまたはサービスプロバイダによって用いられるオブジェクトの種類である。セキュアラブルオブジェクトは、サービスプロバイダデータオブジェクト１１０２、仮想世界データオブジェクト１１０３、シーンデータオブジェクト１１０４、およびアイテム１１０５を含み得る。サービスプロバイダ、仮想世界、およびシーンデータオブジェクトは、図１０について述べたオブジェクトに対応し得、インスタンスは、セキュアラブルオブジェクトとして表現することができる。アイテム１１０５は、仮想世界内のアイテムを示し得る（例えば、アバターが所有するアイテム、シーン内のアイテム、建物、構造、植物、動物、および仮想世界の他のコンポーネント）。
【０２０６】
セキュアラブルオブジェクトは一般的には、仮想世界内において作用を受けることが可能なオブジェクトとしてみなされ得る。サービスプロバイダ、仮想世界シーン、インスタンスまたは他の適切な機関によって規定されたセキュアラブルオブジェクト上に、多様なアクションが行われ得る。仮想世界内において理解されるアクションの種類は、異なる種類のセキュアラブルオブジェクトによって異なり得る。例えば、「とる」というアクションは、小型オブジェクト（例えば、鉛筆）においては利用可能であるが、大型オブジェクト（例えば、木）に対しては利用できない。同様に、許可されるアクションは、１つ以上のアバターまたはオブジェクトまたはアバターまたはオブジェクト種類のうちに対して相対的であり得る。例えば、木を「とる」というアクションは、トラクターを運転しているアバターが当該アクションを試行する場合には利用することができるが、何らかの種類のヘルパーオブジェクト無しではアバターは利用することができない。
【０２０７】
実施形態において、１つの特定の種類のセキュアラブルオブジェクトはエンティティ１１０６である。エンティティは、仮想世界内においてアクションを起こすことが可能なユーザまたは他の個人を指す。エンティティの例を挙げると、ユーザアカウント１１０７、仮面オブジェクト１１０８、およびアバターオブジェクト１１０９がある。エンティティはセキュアラブルオブジェクトの種類であるため、任意の他のセキュアラブルオブジェクトと同様に、エンティティに対して作用を及ぼすことが可能である。別の実施形態において、エンティティは、セキュアラブルオブジェクトの種類ではない場合がある。
【０２０８】
アバター（または他のエンティティ）が仮想世界と相互作用すると、アバターは、当該世界においてアクションをとることができる。例えば、アバターは、鉛筆に対して「とる」アクションを実行することにより、仮想世界内の地面上にある鉛筆を取得することができる。このようなアクションは、ネットワークプロトコルまたは他の通信システムを介してサービスプロバイダへ提供されるデータリクエストとして表現され得、このアクションは、サービスプロバイダおよび／またはユーザのコンピュータ上において実行するクライアントソフトウェアによりグラフィカル表現へ翻訳される。
【０２０９】
いくつかの場合において、仮想世界内においてとることが可能なアクションの種類を制限することが所望される場合がある。よって、実施形態において、サービスプロバイダは、「許可決定」プロセスをインプリメントして、どのエンティティによってどのセキュアラブルオブジェクトに対してどのアクションをとるべきかを判別する。別の実施形態において、特定のオブジェクトクライアント上において完全にローカルに生成および利用され、他のクライアントには送信されず、要旨の形態で他のクライアントへも送られない。例えば、ユーザが芝生を有する場合、他のクライアントは、（芝生の特定の状態局面（例えば、専有面積または欠陥）を複製することなく）「芝生」を生成せよとの旨のみが伝えられる。いくつかの場合において、このような「要旨形態」の伝達を用いて、ユーザは、例えば要旨形態アイテムを各ユーザの地理的位置からみられる夜空の外観を反映する「夜空」とすることにより、自身が好む一般的オブジェクトの種類（例えば、草の種類）を指定することおよび／またはこのような共通オブジェクトをローカライズすることができる。
【０２１０】
図１２は、実施形態において用いられる、許可を示すデータ構造のブロック図である。データ構造は、サービスプロバイダによって保存され得、許可決定プロセスにおいて用いられる。データ構造は、コンピュータによって読み出し可能な媒体（例えば、ハードドライブ、ＳＳＤ、テープバックアップ、分散記憶装置、クラウド記憶装置）上に保存され得、関連データベーステーブル、フラットファイル、Ｃ構造、プログラミング言語オブジェクト、データベースオブジェクトなどとして構築され得る。多様な実施形態において、さらなる要素を含めてもよいし、いくつかの要素を除去してもよいし、および／または図示と異なる様態で要素を配置してもよい。
【０２１１】
許可記録１２０１は、１つ以上の「ゲートキーパー」オブジェクト１２０２と関連付けられ得る。ゲートキーパーはオブジェクトであり、許可すべきアクションを決定する権限または管轄権を有する。実施形態において、ゲートキーパーは、サービスプロバイダ、仮想世界シーン、および／または（内部においてアバターがアクションを行う）インスタンスを含み得る。よって、各ゲートキーパーは、以下に述べるように、アバターが所望するアクションを行うことを許可するかについて影響を付与することができる。
【０２１２】
許可記録１２０１は、エンティティパターン１２０３、アクションパターン１２０４、および／またはセキュアラブルパターン１２０５をさらに含み得る。これらのパターンを用いて、特定の許可記録が行われているアクションに関連するかを判別することができる。実施形態において、アクションを試行しているエンティティがエンティティパターン１２０３と整合する場合、試行されているアクションがアクションパターン１２０４に整合する場合、作用を受けるべきセキュアラブルオブジェクトがセキュアラブルパターン１２０５と整合する場合、許可記録をアクションに適用することができる。これらのパターンは、オブジェクトとの整合に用いられる特定のオブジェクトまたは特定の規則に用いられ得る。パターンは、例えば、正規表現、カテゴリー、実行可能なコードなどを含み得る。
【０２１３】
許可記録１２０１は、許可インジケータ１２０６をさらに含み得る。許可インジケータは、パターンに整合するアクションを許可または不許可にすべきかを特定し得る。実施形態において、許可インジケータ１２０６は、「はい」、「いいえ」および「引き継ぐ」という値を持ち得る。これらの選択肢のうち最終の選択肢を用いて、以下に示すように、アクションの許可可能性を別のゲートキーパーから送達すべきである旨を示すことができる。
【０２１４】
許可記録１２０１はまた、「オーバーライド可能な」フラグ１２０７も含み得る。このフラグを用いて、アクションを許可すべきかについてさらなるゲートキーパーに相談すべきかを判別することができる。例えば、サービスプロバイダは、許可記録を含み得る。この許可記録により、特定のアクションが許可される。許可記録がオーバーライド可能である場合、許可決定プロセスは、当該サービスプロバイダ内の仮想世界にさらに相談して、アクションを許可すべきかを判別することができるが、許可記録がオーバーライド不可能である場合、許可決定プロセスは決定プロセスを終了し得る。
【０２１５】
図１３は、実施形態において用いられる、エンティティがアクションをとることについての許可を決定するプロセスのフローチャートである。このプロセスは、例えばサービスプロバイダシステム上に行われ得る。多様な実施形態において、さらなるブロックを含めてもよいし、いくつかのブロックを除去してもよいし、および／または図示と異なる様態でブロックを接続または配置してもよい。
【０２１６】
ブロック１３０１において、サービスプロバイダは、セキュアラブルオブジェクトに対してアクションをとろうとしているエンティティを特定する。試行は、ユーザのアバターまたは他のエンティティに所望のアクションをとらせようとしているユーザから提出されたリクエストに応答して、特定され得る。
【０２１７】
ブロック１３０２において、ゲートキーパーの階層が特定される。実施形態において、ゲートキーパーの階層は、エンティティが作用を及ぼすサービスプロバイダ、内部においてエンティティが作用している仮想世界、内部においてエンティティが作用しているシーン、内部においてエンティティが作用しているインスタンス、エンティティによる作用を受けるセキュアラブルオブジェクトを含む。別の実施形態において、他のゲートキーパーが含まれ得、ゲートキーパーのサブセットが用いられ得、および／またはゲートキーパーが異なる順序で配置される。
【０２１８】
その後、システムは、ゲートキーパーの許可を決定する。ブロック１３０３において、階層内の最高位ゲートキーパーが選択される。その後、ゲートキーパーと関連付けられた許可記録を、ブロック１３０１のエンティティ、アクション、およびセキュアラブルオブジェクトと整合させることができる。整合許可記録が見つからない場合、システムは、ブロック１３０５において階層中のさらなるオブジェクトを検討する。
【０２１９】
整合許可記録が見つかった場合、整合許可記録の許可識別子をブロック１３０６において内部バッファに適用および記録することができる。許可識別子が「引き継ぐ」である場合、内部バッファの既存の値が保持され、その結果、以前の許可設定が引き継がれる。許可記録がブロック１３０７においてオーバーライド可能である場合、システムは、ブロック１３０５において階層内の次のゲートキーパーを検討する。
【０２２０】
ブロック１３０５において検討対象となるゲートキーパーが無い場合またはオーバーライド不可能な許可記録がブロック１３０７において適用された場合、許可決定はブロック１３０８へと進み、最終記録された許可がブロック１３０６から適用される。
【０２２１】
いくつかの場合において、ブロック１３０６において、許可は記録されていない。例えば、ゲートキーパーのうちいずれも整合許可記録を持たなくすることもできるし、あるいは、整合許可記録全ての許可識別子を「引き継」にすることもできる。このような場合において、デフォルト許可を適用することができる。あるいは、特定のゲートキーパーは、「全てを受け取る」許可記録を含み得、これにより、少なくとも１つの許可記録が常に整合するかまたは「全てを受け取る」ゲートキーパーを階層の端部に設けることが可能になる。
【０２２２】
上記アルゴリズムの変更例を、いくつかの実施形態において適用することができる。例えば、ゲートキーパーは、ゲートキーパーに他のゲートキーパーおよび／または許可記録に相談するよう指示する許可記録を含み得、これにより、ブロック１３０２からのゲートキーパーの階層は厳密に遵守する必要は無い。例えば、仮想世界は、（仮想世界シーンおよびインスタンスのうちのものを検討する代わりに）セキュアラブルオブジェクトの許可記録にすぐに相談すべきである旨を示す許可記録を含み得る。これを用いて、例えば、特定の世界およびシーンのインプレメンテーションに関係無く、作用を受けているセキュアラブルオブジェクトの利益を全ての場合において遵守すべきである旨を示すサービスプロバイダ方針をインプリメントすることができる。
【０２２３】
図１４は、実施形態において用いられる、関連付けられた許可記録を有する例示的ゲートキーパーのブロック図である。このブロック図は、ひとえに例示的なものであり、特定のゲートキーパーまたはゲートキーパーの種類の必要な構成を示すものではない。
【０２２４】
ゲートキーパー１４０１は、３つの許可記録を含む。第１の許可記録１４０２は、「Ｂｏｂ」という名称のエンティティは、木であるセキュアラブルオブジェクトを叩くアクションをとることを許可されていない旨を示す。よって、許可記録１４０２が許可された場合、「Ｂｏｂ」という名称のエンティティは、木を叩く試行が自動的にできなくなる。許可記録１４０２はオーバーライド可能であるため、階層のさらに下方にある別のゲートキーパーがＢｏｂが当該アクションを行うことを許可することが可能であり得る。
【０２２５】
第２の許可記録１４０３は、種類が「ウィザード」であるエンティティは、任意のセキュアラブルオブジェクト上に魔力を働きかけるアクションをとることが許可される。この許可記録はオーバーライド不可能であると示されているため、階層上のさらに下方にある他のゲートキーパーは、この許可記録が行われることを回避することができない。記録１４０３中のエンティティパターンフィールドは、特定のエンティティを示すのではなく、或るクラスのエンティティを示すのであり、これにより、許可記録の表現出力が大幅に増加する点に留意されたい。
【０２２６】
第３の許可記録１４０４は、エンティティが植物であるセキュアラブルオブジェクトを叩くアクションを試行している場合、許可値が以前のゲートキーパーから引き継がれるべきであることを示す。
【０２２７】
実施形態において、各ゲートキーパーは、いくつかのまたは全てのアバターまたはオブジェクトについてのいくつかのタスクまたは全てのタスクを他のゲートキーパーへ永久的に、一時的または取消可能な様態で委託し得る。
【０２２８】
実施形態において、許可記録は、特定の順序にあるものとしてみなされ、この特定の順序は、ゲートキーパー１４０１またはシステムの適切な管理者またはユーザによって規定され得る。例えば、「Ｂｏｂ」という名称のエンティティが木を叩こうと試行した場合、許可記録１４０１および１４０４双方が整合することが分かる。最初に発生するのは記録１４０１であるため、記録１４０１が優先される。別の実施形態において、いくつかの優先されるべき許可記録を決定するための異なるアルゴリズムが用いられ得る。
【０２２９】
ゲートキーパー１４０１から許可記録１４０４全てを省略することにより、相当する結果を得ることができることが分かる。なぜならば、ゲートキーパーが整合する許可記録を持たない場合、以前のゲートキーパーの許可設定が自動的に引き継がれるからである。しかし、引き継がれた許可を指定する能力を用いて、例えば、別の許可記録が以前のゲートキーパーの設定にオーバーライトされる事態を回避することができる。例えば、ゲートキーパー１４０１は、任意のセキュアラブルオブジェクトを叩くもの全てを拒否するための第４の許可記録を含み得る。このような場合、このようなアクションが以前のゲートキーパーによって許可されている場合、許可記録１４０４を用いて、植物を叩くことを可能にすることができる。
【０２３０】
図１５は、実施形態において用いられる、複数のゲートキーパーオブジェクトにわたる許可決定の一例の図である。この図は、ひとえに例示的なものであり、許可決定の必要なプロセスを示すものではない。図１５の例は、エンティティがいくつかのセキュアラブルオブジェクトに対していくつかのアクションを行おうとする試行を示す。
【０２３１】
図１５の例において、ゲートキーパーの階層は、サービスプロバイダ、仮想世界、シーン、インスタンス、およびセキュアラブルオブジェクトを含む。ブロック１５０１において、サービスプロバイダの許可記録を調査することにより、アクションを許可すべきかが判別される。図１５の例において、整合許可が発見されない場合、システムは、当該階層上の次のゲートキーパーへ進む。
【０２３２】
ブロック１５０２において、仮想世界の許可記録を調査し、仮想世界が試行アクションを許可していると判別される。よって、現在の許可設定として「許可」が記録される。仮想世界は許可がオーバーライド可能であることを示しているため、システムは、階層上の次のゲートキーパーへ進む。
【０２３３】
ブロック１５０３において、シーンの許可記録を調査し、シーンが許可設定を引き継ぐことが判別される。よって、ブロック１５０２からの許可設定として保持されている「許可」が記録される。仮想世界は許可がオーバーライド可能であることを示しているため、システムは、階層上の次のゲートキーパーへ進む。
【０２３４】
ブロック１５０４において、インスタンスの許可記録を調査し、インスタンスが試行されたアクションを拒否することが判別される。よって、ブロック１５０３から保持されてきた「許可」という許可設定は、「拒否」という設定と共に移転される。このインスタンスは、許可がオーバーライド不可能であることを示しているため、システムは、許可決定を結論付ける。詳細には、セキュアラブルオブジェクトの許可記録１５０５は調査されず、セキュアラブルオブジェクトがアクションを許可するであろうということに関わらず、試行されたアクションは拒否される。
実行可能なスクリプト
【０２３５】
仮想世界サービスプロバイダは、実行可能なスクリプトをアップロードしサービスプロバイダ上に実行することを可能にする機能を含み得る。これらのスクリプトを用いて、多様なタスクを自動的に行うことができる（例えば、アクションの実行、オブジェクトの変更、外観の変更、さらなる機能のイネーブル）。
【０２３６】
以下に述べるようなサーバ側スクリプトは、クライアントデバイス上において動作するクライアント側スクリプトと区別される。このようなクライアント側スクリプトを用いて、クライアントデバイス上のユーザへ表示される仮想世界のグラフィカル表現を操作することができる。クライアント側操作は一般的には、サービスプロバイダ上の状態またはデータに影響を与えない。しかし、クライアント側スクリプトを生成することにより、サービスプロバイダへのリクエストを自動的に送ることができる。クライアント側スクリプトをさらに生成することで、サーバ側のスクリプトの事項および／またはアプリケーションプログラミングインターフェース、ネットワークプロトコルまたはサービスプロバイダによって提案される他の通信方法を通じて他のアクションを行うことができ、これにより、サービスプロバイダ上の状態またはデータに影響を与えることができる。サービスプロバイダは、このようなクライアント側スクリプトの検出と、恐らくはクライアント側スクリプトのディセーブルまたは他の場合にその有効性の低減とを行うためのソフトウェアコンポーネントを含み得る。
【０２３７】
仮想世界サービスプロバイダ上のサーバ側スクリプトは、多様な機能を提供し得る。これらのサーバ側スクリプトは、ユーザの経験を向上させるために、ソフトウェア開発者によって開発され得、仮想世界サービスプロバイダのユーザへと分配される。スクリプトは、スタンドアロン形態で分配され得、ユーザによってインストールされ得、かつ／または、スクリプトをオブジェクト、アイテムおよび仮想世界サービスプロバイダ上の他の要素と共にバンドルすることも可能である。実施形態において、現実的通貨および／または仮想通貨、物品またはアイテムのために、スクリプトを仮想ストアを通じて分配および／または販売することができる。
【０２３８】
スクリプトは、サービスプロバイダ上のデータ構造を操作することにより、サービスプロバイダ上において動作することができるよって、サービスプロバイダは、デジタル世界のコンポーネントを示す一貫したインターフェースを提供することができ、これによりスクリプトの動作が可能となる。実施形態において、デジタル世界のコンポーネントは、ＨＴＭＬまたはＸＭＬ文書の表現に用いられる文書オブジェクトモデルと同様に、ツリー型構造で表現される。以下の例は、文書ツリーを表現するＸＭＬマークアップの変形例として示すものであるが、デジタル世界のコンポーネントは、多様なフォーマットおよびデータ構造でインプリメントされ得る。
【０２３９】
図１６は、実施形態において用いられる、仮想世界中のシーンのインスタンスのレイアウトの一例である。この図は、ひとえに一例であり、シーンまたはインスタンス中のアイテムの必要な配置構成を示すものではない。
【０２４０】
インスタンス１６０１のグラフィカル表現は、ピアノ１６０２、ソファ１６０３および植物１６０４を含む。オブジェクトは、ユーザインターフェース１６０１中にグラフィカルに示される。実施形態において、オブジェクトは、３次元で表現され得る。サービスプロバイダ内において、インスタンスは、データ構造として表現され得る（例えば、以下のテーブルのデータ構造）。
2014529792.tif 000004
【０２４１】
コード表現は、シーンおよびインスタンス中のオブジェクトと、多様な属性およびサブオブジェクトとを示す。例えば、上記リスト中のオブジェクトはそれぞれ、位置属性を含む。位置属性は、シーンまたはインスタンス中のオブジェクトの位置に対応し得る。
【０２４２】
特定のオブジェクトは、シーンまたはインスタンスと特異的に関連付けられ得る。例えば、上記リストにおいて、ピアノオブジェクトはシーンと関連付けられ、ソファおよび植物オブジェクトはインスタンスと関連付けられる。よって、同じシーンの他のインスタンスは、ソファまたは植物を含むかまたは含まない場合があるが、ピアノはデフォルトで含む。別の実施形態において、＜シーン＞データ中の別個のサブツリー（例えば、＜デフォルト−レイアウト＞ツリー）下においてシーンのデフォルト属性を維持することができ、新規生成されたインスタンスは、生成時においてデフォルト属性からのオブジェクトをコピーすることができる。
【０２４３】
その後、実施形態において、スクリプトを文書ツリーの部分に取り付けることができる。スクリプトは、解釈されるコード（例えば、Ｊａｖａスクリプトコード）としてインプリメントされ得、文書ツリー内に埋設され得る。以下のテーブルは、ツリー構造の多様なレベルにおいてスクリプトが埋設されたサンプル文書ツリーを示す。
2014529792.tif 000005
【０２４４】
この表の例において、シーンはオブジェクト１および２を含むインスタンスを含み、オブジェクト２はサブオブジェクト３を含む。オブジェクト１は、２つのスクリプト１および２を含み、オブジェクト２はスクリプト３を含み、オブジェクト３はスクリプト４を含む。さらに、インスタンスはさらなるスクリプトを有し、シーンはさらなるスクリプトを有する。
【０２４５】
スクリプトは、移転先の文書ツリーを操作するための多様な機能を実行することができる。例えば、スクリプトは、ノードの追加、ノードの除去、ノードの属性の操作、ノードの再整理などを行うことができる。セキュリティおよびユーザビリティ上の理由により、スクリプトが文書ツリーを変更することが可能な範囲を制限することが所望される場合がある。例えば、システムは、スクリプトがオブジェクトに取り付けられるように構成され得、これにより、スクリプトはオブジェクト外観は操作できるが、アバターまたはシーン中の他のオブジェクトの外観は操作できないようにすることができる。
【０２４６】
実施形態において、スクリプトは、スクリプトの親であるノードの文書ツリーと、関連付けられたサブノードとの変更に限定される。上記の例において、スクリプト１および２は、オブジェクト１の変更は許可されているが、オブジェクト２または３の変更もインスタンスまたはシーンの変更も一般的には許可されていない。スクリプト３は、オブジェクト２および３を変更することができ、スクリプト４は、オブジェクト３は変更することができが、オブジェクト２は変更することができない（スクリプト４の親はオブジェクト３であるため）。本実施形態において、インスタンススクリプトは、インスタンスおよび内部の全オブジェクトを変更することができるが、シーンを変更することはできない。これは、インスタンスの管理者またはリーダーがインスタンスの再配置またはクリーンアップを行う際に有用であり得る。シーンスクリプトは、シーンと、内部の全てのインスタンスおよびオブジェクトとを変更することができる。これは、動作している全インスタンスソファシーン上にわたるグローバル変更を行う際に有用であり得る。
【０２４７】
それでも、１つのオブジェクトに取り付けられたスクリプトが別のオブジェクトに特定の様態で影響を与えることが所望される場合がある。例えば、犬は、犬がシーン内において走り回るスクリプトを含み得る。その結果、犬は、最終的にオブジェクト（例えば、テーブル）と衝突する。なぜならば、スクリプトは犬には取り付けられているがテーブルには取り付けられておらず、スクリプト単独では、テーブルがひっくり返った様子を反映するようにテーブルオブジェクトを変更することはできないからである。
【０２４８】
よって、実施形態において、システムは、スクリプトが他のスクリプトの実行をトリガすることをイネーブルするスクリプト内メッセージングサービスを提供する。上記の例において、犬スクリプトに起因して犬がテーブルと衝突した場合、犬スクリプトは、テーブル上のスクリプトを呼び出し得、その結果、テーブルは「衝突受信」機能を行う。その結果、このような機能に起因して、テーブルオブジェクトにおいて変更が為される（例えば、落下または破壊）。
【０２４９】
一実施形態において、１つの種類から別の種類へのオブジェクト変換および／または境界イベントにおける変換および／または領域への進入により、スクリプト適合性チェックが呼び出され、その結果、オブジェクトの導入が別のスクリプトまたはスクリプトされたオブジェクトと矛盾するかについて判別される。上記例を用いて、アバターが犬と共に部屋に入ろうとした場合、メッセージ「犬」スクリプト（例えば、「犬」が走り込む）を受信することができないオブジェクトがその部屋にあるかどうかについて問い合わせることができる。上記例において、テーブルがこのようなメッセージを受信することができない場合、犬に対する入力が拒否され得、犬の特定の機能がディセーブルされるかまたは制限され、かつ／または、例えばテーブルを地面に「ボルト留め」することにより、特定の不適合オブジェクトが変更される。別の実施形態において、オブジェクトは、他のオブジェクト（例えば、「犬が走り込む」スクリプトを１つ以上の種類の他のオブジェクトについて送達することが可能な犬）によって操作されるスクリプトと関連付けられ得る。このような場合、犬の入力は、このようなスクリプトの送信が成功した場合において調節され得る。
【０２５０】
テーブルオブジェクトについてのスクリプトはテーブルと関連付けられるため、テーブルの設計者は、予期せぬアクションを行うスクリプトをインプリメントすることができる。例えば、犬がテーブルに衝突した場合、テーブル上の呼び出されたスクリプトに起因して、テーブルのサイズが二倍になる。実施形態において、システムは、このような予期せぬアクションを検出および回避するように構成される。例えば、システムは、スクリプト実行時において、予測される挙動の断定を含み得、予測される挙動の断定に違反する変更の原因となるスクリプトを回避する。実施形態において、断定は、インスタンス、シーン、仮想世界および／またはサービスプロバイダ上のスクリプトを通じてプログラムされ得る。
【０２５１】
図１７は、実施形態において用いられる、スクリプトを実行するプロセスのフローチャートである。このプロセスは、サービスプロバイダによって行われ得る。多様な実施形態において、さらなるブロックを含めてもよいし、いくつかのブロックを除去してもよいし、および／または図示と異なる様態でブロックを接続または配置してもよい。
【０２５２】
ブロック１７０１において、システムは、実行すべきスクリプトを特定する。スクリプトの実行は、別のスクリプト、ユーザ、自動化プロセッサなどによって呼び出され得る。ブロック１７０２において、システムは、スクリプトの親オブジェクトを決定し、スクリプトがブロック１７０３において親オブジェクトを変更することをイネーブルする。スクリプトを実行する際、システムは、実行を観測して、親オブジェクト外の変更を回避しかつ／または望ましくない変更を回避する。
【０２５３】
ブロック１７０４において、システムは、外部スクリプトへと送達されたメッセージを受信する。メッセージは、システムに対して特殊な機能呼を行い、呼び出されるべきオブジェクトおよびスクリプトを特定することにより、呼び出され得る。実施形態において、メッセージは、外部スクリプトについての１つ以上のパラメータをさらに含み得る。パラメータは、呼び出されているスクリプトと整合され得る。例えば、上記のコードリストに示すように、スクリプト１は、２つのパラメータ（すなわち、整数およびストリング）を含む。実施形態において、外部スクリプトの適切なパラメータがメッセージ中に含まれるパラメータと整合しない場合、システムはエラーを発生する。
【０２５４】
ブロック１７０５において、システムは、外部スクリプトを実行するための認証を判別する。スクリプトは、多様な理由に起因して、外部スクリプトの呼び出しから遮断され得る。例えば、スクリプトは、異なるインスタンス、シーン、仮想世界および／またはサービスプロバイダ内に存在する別のスクリプトを呼び出すことができない場合がある。さらに、スクリプトは、上記した許可システムに基づいて、別のスクリプトを呼び出すことができない場合がある。実施形態において、外部スクリプトへの呼び出しはアクションの形態をとり得るため、許可決定プロセスを行うことが可能となる。
【０２５５】
ブロック１７０５においてスクリプトが外部スクリプトを呼び出すことが認証された場合、ブロック１７０６において、システムは外部スクリプトを実行し、ブロック１７０１においてプロセスが外部スクリプトについて繰り返される。いくつかの場合において、例えば、外部スクリプトが異なるサービスプロバイダ中に有る場合、外部スクリプトは、異なるサービスプロバイダまたはシステムによって実行され得る。
【０２５６】
スクリプトの実行は反復的であるため、エラーを含むかまたは悪意を以て設計されたスクリプト、非合理的な数の外部スクリプトを呼び出そうとする試行または他の場合にサービスプロバイダ上における仮想世界システムの通常の実行の遅延または回避を無限にループさせることができる。よって、いくつかの実施形態において、サービスプロバイダは、リソース制限をインプリメントすることができる（例えば、時間および／またはメモリ利用制限）。これにより、スクリプトが境界を越えて実行される事態を回避する。サービスプロバイダは、現実的または仮想通貨、物品またはサービスを実行時間と交換に課金するシステムをさらにインプリメントする。
サービスプロバイダシステム
【０２５７】
図１８は、実施形態において用いられる、サービスプロバイダシステムおよび関連コンピュータシステムのブロック図である。サービスプロバイダシステムは、例えば図９のサービスプロバイダ９０１として用いることができる。多様な実施形態において、さらなるブロックを含めてもよいし、いくつかのブロックを除去してもよいし、および／または図示と異なる様態でブロックを接続または配置してもよい。
【０２５８】
サービスプロバイダシステム１８０１は、いくつかのコンピュータシステムを含み得る。含まれるコンピュータシステムは、単一のデバイスおよび／または別個のデバイス上に収容され得、コンピュータシステムはそれぞれ、分散またはクラウドコンピューティングと同様に、複数のコンピューティングデバイスを同様に含み得る。コンピュータシステムは、別個のデバイス上に収容された場合、ローカルまたは広域ネットワークおよび／または他の通信システムによって接続され得る。
【０２５９】
サービスプロバイダシステム１８０１の１つのコンポーネントは、サービスプロバイダ進入ポイント１８０２であり得る。進入ポイントは、外部ネットワークへのネットワーク接続を備えたサーバまたは他のデバイスであり得、これにより、外部クライアント（例えば、ユーザ）のための外側を向いたインターフェースが得られる。実施形態において、サービスプロバイダシステム１８０１へ向けられた外部ネットワークリクエストは、先ず進入ポイント１８０２へと方向付けられる。実施形態において、複数の進入ポイント１８０２を設けることにより、分散コンピューティングを促進し、高ユーザロードの取り扱いが可能となる。
【０２６０】
進入ポイントシステム１８０２は、サービスプロバイダシステム１８０１へ多様なフィーチャを提供することができる。例えば、進入ポイントシステム１８０２は、２次元レンダリングサービスを提供することができ、これにより、従来のウェブベースのブラウザクライアントが（３次元レンダリング能力を用いることなく）サービスプロバイダシステムによって提案されたコンテンツにアクセスすることが可能になる。このようなリクエストは、例えば標準ＨＴＴＰウェブリクエストとして検出され得、進入ポイントシステム１８０２または他のコンピューティングシステムは、ＨＴＭＬ、ＸＭＬ、平文テキスト、ＲＴＦ、ストリーミング音声／ビデオ、画像および／または他の適切にフォーマットされたコンテンツと共に応答することができる。２次元レンダリングを提案することにより、コンテンツ（例えば、３次元仮想世界コンテンツ）をサーチエンジンによってインデックス化し、身体障害者がアクセスすることができ、または、３次元レンダリングされた世界の利用ができないコンピューティングシステムを用いてアクセスすることができる。
【０２６１】
インスタンスホスト１８０３は、上記したように仮想世界のインスタンスを操作する。各インスタンスホスト１８０３は、多様な実施形態において、単一のインスタンスまたは複数のインスタンスを供給し得る。インスタンスホストは、別個のコンピューティングデバイス、仮想サーバであってもよいし、あるいは、サーバ上において動作するモジュールであってもよい。インスタンスホストのうち一部または全てが、進入ポイント１８０２と同じコンピューティングデバイス上において動作し得る。
【０２６２】
進入ポイントシステム１８０２は、負荷均衡サービスをサービスプロバイダシステム１８０１へさらに提供し得る。例えば、進入ポイント１８０２は、要素（例えば、サービスプロバイダ、仮想世界、および／またはシーンの構成、各インスタンス中のユーザ数、リクエスト側のユーザの特性および／またはリクエスト（例えば、特定のインスタンスをリクエストしている特殊な位置識別子）、ハードウェア能力およびインスタンスホストの能力）に応じて、仮想世界ユーザを特定のインスタンスホスト１８０３へと方向付けることができる。進入ポイント１８０２は、これらのおよび他の要素に基づいて、インスタンスホスト１８０３をさらに開始および／またはシャットダウンすることができる。
【０２６３】
進入ポイント１８０２および／またはインスタンスホスト１８０３は、サービスプロバイダデータベース１８０４とさらに通信することができる。データベースは、情報を維持し得る（例えば、仮想世界データ、シーンデータ、インスタンスデータ、ユーザデータ、アバターデータ）。データベースは、図１０〜１２に示すようなデータ構造および本明細書中上記したような他のデータ構造（例えば、上記したＤＯＭフォーマット中の仮想世界文書）を含み得る。
【０２６４】
サービスプロバイダシステム１８０１は、外部エンティティと例えばネットワーク１８０７を介してさらに通信し得る。ルートサーバ１８０５は、複数のサービスプロバイダにわたる一般的サービスを提供することができる（例えば、図３について述べたようなユーザ清算サービス、現実的通貨および／または仮想通貨の清算、アバター転送サービス）。よって、サービスプロバイダ１８０１は、ルートサーバ１８０５と通信して、これらのサービスを用いることができる。通信を暗号化および／または認証することにより、認証されていないユーザがルートサーバ１８０５からの情報を不法に得ることができないようにすることができる。
【０２６５】
サービスプロバイダシステム１８０１は、ユーザ１８０６とさらに通信して、クライアントソフトウェアおよびユーザ１８０６の他の選好に基づいて、仮想世界サービスを２次元および／または３次元で提供することができる。ユーザは、多様な目的（例えば、動作サービスプロバイダのディレクトリおよび管理アカウントおよび／またはファイナンスの視認）のために、ルートサーバ１８０５とさらに通信することができる。
現実世界データへの接続
【０２６６】
サービスプロバイダシステム１８０１は、外部データソース１８０８と通信することもできる。これらのソースにより、サービスプロバイダシステム１８０１は、現実世界を仮想世界中にリンクさせることができる。オブジェクト、グラフィックス、アバターおよび／または仮想空間は、外部データソース１８０８または他のソースから得られた仮想データを用いることができる。例えば、仮想世界中の１つのシーンとして仮想ストアがあり得、ここで、アバターは、商品を探すためにショップをブラウズすることができる。ストアは、外部データから得られた実際の製品の仮想表現を含み得、これらの製品の価格および利用可能性は、実際のストアの在庫に関連付けられ得るため、ストア内で製品を見ているアバターは、実際の購入情報へのアクセスを持つ。実施形態において、外部データを用いて、サービスプロバイダシステム１８０１上のコンテンツをリアルタイムで更新する。
【０２６７】
実施形態において、サービスプロバイダシステム１８０１は、さらにデータを外部システムへ送信することができる。例えば、上記した仮想ストアにおいて、アバターは、仮想世界中のアイテムを現実の通貨または仮想通貨を用いて購入することにより、このアイテムを取得し得る。このような状況において、サービスプロバイダシステム１８０１は、進入ポイント１８０２、インスタンスホスト１８０３および／または別の機構を通じて、コマンドまたは命令を外部システムへと送信して対応する製品を注文することができ、これにより、実際の製品が、アバターと関連付けられた人間へと発送され得る。サービスプロバイダシステム１８０１が外部システム上においてとり得る他のアクションを挙げると、金銭転送、財産転送、外部サイト（例えば、ソーシャルネットワーク）へのコンテンツ提示、ｅメール送信などがある。
【０２６８】
サービスプロバイダシステム１８０１、外部データソース１８０８および他の外部システム間の通信により、システムのうちの１つにおけるセキュリティの妥協に起因して別のシステムのインテグリティが影響を受ける可能性が発生する。よって、サービスプロバイダシステム１８０１は、外部システムからのセキュリティ違反を制御するためのファイヤウォールおよび／または他のセキュリティ対策を含み得る。さらに、サービスプロバイダシステム１８０１は、特定のプロトコルに対する通信の制限、認証および暗号化の利用および／または（例えば２要素認証を用いた）ユーザの有効化により、セキュリティ増強を提供することができる。
【０２６９】
仮想世界の３次元表現は、３次元表現をレンダリングするように構成された特殊なクライアントソフトウェア上に表示され得る。サービスプロバイダおよび他のシステムは、従来の２次元ブラウザおよび関連ソフトウェアへコンテンツをさらに供給し得る。双方の表現を提供する場合、いくつかの恩恵が得られる（例えば、後方適合性、サーチエンジンインデックス付与能力、身体障害者への対応）。
【０２７０】
２次元または３次元サービスを適切な状況において提供するために、いくつかの実施形態において、サービスを区別するための別個のネームスペースが用いられる。よって、３次元仮想世界のレンダリングが可能なクライアントに対し、２次元コンテンツをリクエストするクライアントに供給されるコンテンツと異なる適切なコンテンツを供給することが可能になる。
【０２７１】
図１９は、実施形態において用いられる、ネームスペースに基づいてコンテンツを供給するプロセスのフローチャートである。プロセスのうち一部は、図１８のサービスプロバイダシステム１８０１によって行われ得る（例えば、進入ポイント１８０２およびインスタンスホスト１８０３）。多様な実施形態において、さらなるブロックを含めてもよいし、いくつかのブロックを除去してもよいし、および／または図示と異なる様態でブロックを接続または配置してもよい。
【０２７２】
ブロック１９０１において、ユーザは、リクエストをサービスプロバイダへ送る。リクエストは、ブロック１９０２においてサービスプロバイダ進入ポイントによって受信される。リクエストは、ユーザが進入することを望んでいる特定のシーンを特定し得る。リクエストは、さらなる情報を含み得る（例えば、アバター情報、認証情報）。リクエストは、単一のネットワークトランザクションで送ってもよいし、あるいは複数のネットワークトランザクションに分けて送ってもよい。
【０２７３】
実施形態において、リクエストは、Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ（ＵＲＬ）としてフォーマットされる。リクエストは、以下の形態をとり得る。
［ｐｒｏｔｏｃｏｌ］：／／［ｓｅｒｖｉｃｅｐｒｏｖｉｄｅｒ］／［ｓｃｅｎｅ］？［ｑｕｅｒｙ］＃［ｌｏｃａｔｉｏｎ］
【０２７４】
この［プロトコル］要素は、リクエストがブロック１９０１において通信される通信形態を特定し得る。実施形態において、プロトコルは、標準ウェブリクエストを示す「ｈｔｔｐ」であり得るか、または、仮想世界ウェブリクエストを示す「ｖｗｗ」であり得る。他のプロトコル識別子も、サービスプロバイダによって仕様および理解され得る。［サービスプロバイダ］
要素は、例えばドメイン名称またはＩＰアドレスにより、サービスプロバイダのネットワーク位置を特定することができる。［シーン］識別子は、アクセスすべきサービスプロバイダ上の特定のシーンを特定し得る。実施形態において、シーンは、例えば上述したようなサービスプロバイダ内の仮想世界により、階層構造として分類され得る。その場合、例えばスラッシュなどの文字によって階層要素を分離することにより、［シーン］識別子も階層構造とされる。
【０２７５】
［問い合わせ］識別子は、アクセスすべきシーンの局面に関連するパラメータを含み得る。識別子は、１つ以上の鍵値対の形態をとり得、例えば、各鍵および値は等号によって接合され、これらの対はアンパーサンドによって接合される。実施形態において、１つのこのようなパラメータは、リクエスト側のユーザが参加すべきシーンの特定のインスタンスを特定し得る。これを用いることにより、例えば、他の対象ユーザ（例えば、ユーザの友人）が存在するインスタンスにユーザが参加することが可能になる。サービスプロバイダは、インスタンスのためのリクエストを考慮し得るが、負荷均衡、容量および／または他の理由のため、選択されたインスタンスは無視し得る。よって、シーンの特定のインスタンスをＵＲＬによってアクセスすることが可能な能力をユーザに提供することにより、サービスプロバイダは、ユーザが位置を（例えば、ウェブサイト、ソーシャルメディア、ｅメール通信上において）公開することを可能にし、これにより、他のユーザは、同じＵＲＬにアクセスすることにより同じインスタンスに参加することができる。
【０２７６】
［位置］識別子は、ユーザがアクセスすべきシーン内の場所を特定することができる。例えば、ユーザは、シーン内の部屋の片側に出現することを望み得、この識別子を用いて位置を指定することができる。実施形態において、識別子は、文書オブジェクトモデル中に挿入されたアンカータグに対応し得る。例えば、以下のテーブルは、図１６に示すシーンに関連するサンプルＤＯＭを示す。
2014529792.tif 000006
位置識別子が「＃ｓｏｆａ」であるＵＲＬにアクセスすることにより、シーン進入時において、ユーザのアバターをソファ上に配置することができる。同様に、位置識別子が「＃ｐｌａｎｔ−ｒｉｇｈｔ」であるＵＲＬにアクセスすることにより、ユーザのアバターを植物の右側に配置することができる。
【０２７７】
多様な実施形態において、ＵＲＬは、サービスプロバイダの構成に合わせて異なる様態で構造または分類され得る。さらに、ＵＲＬは、アクセスすべき位置をクライアントコンピュータ側からみたものとして表現し得、ＵＲＬのコンポーネントを異なる形態で（例えば、ＨＴＴＰにおいて行われるように）送ることができる。
【０２７８】
ブロック１９０３において、進入ポイントは、リクエストが仮想世界クライアントリクエストであるかを決定する。この決定は、クライアントが２次元または３次元コンテンツをリクエストしているかを特定することができる。リクエストは、複数の要素に基づき得る。例えば、プロトコル識別子は、このようなリクエストを区別することができ、ＨＴＴＰリクエストは、２次元コンテンツについてのリクエストを示し、ＶＷＷリクエストは、３次元コンテンツについてのリクエストを示す。このような区別は、リクエストをしているクライアントソフトウェアの識別子（例えば、ユーザエージェントヘッダ）に追加的にまたは代替的に基づき得る。
【０２７９】
一実施形態において、クライアントの能力および／またはクライアントが利用することが可能な帯域幅が、ユーザエージェントヘッダまたは同様のリクエスト変更子を作成するクライアントエンド上でまたは供給すべきデータを決定するサーバエンド上において用いられる。１つのインプレメンテーションにおいて、フル３Ｄコンテンツ未満のコンテンツでありかつ２Ｄコンテンツを超えるコンテンツを、ユーザマシンまたは帯域幅の能力を超えることを回避することにより、ユーザ経験を最大化するために送ることができる。
【０２８０】
進入ポイントがリクエストが２次元コンテンツのためであると決定した場合、ブロック１９０４において、サービスプロバイダは、標準ウェブコンテンツをリクエスト側のユーザへ送ることができる。標準コンテンツは、静的コンテンツ（例えば、本明細書中のサービスプロバイダおよび仮想世界に関連する一般的情報）を含み得る。標準コンテンツは、動的コンテンツ（例えば、仮想世界および／または世界中のシーンの２次元レンダリングに関連する情報）を追加的にまたは代替的に含み得る。実施形態において、２次元レンダリングは、リアルタイムで生成される。これらのレンダリングは、ビデオおよび／またはストリーミングコンテンツであり得、これにより、２次元コンテンツのビューワが仮想世界中の活動コンテンツをライブで見ることが可能になる。レンダリングは、３次元コンテンツを２次元に翻訳するための特定の規則に基づいて、サービスプロバイダによって決定され得る。これらの決定は、コンテンツ（例えば、シーンおよび／またはインスタンスの内部表現内の「ａｌｔ」タグ）によって制御され得る。
【０２８１】
２次元レンダリングは、仮想世界における活動を記述するテキストコンテンツをさらに含み得る。テキストコンテンツは、オペレータまたはサービスプロバイダ上のユーザによって手動で生成され得る。追加的にまたは代替的に、テキストコンテンツは、仮想世界内のメタデータのグラフィカル分析によって自動生成され得、その結果、恐らくはライブのトランスクリプトまたは活動のフィードが生成される。テキストコンテンツを提供することにより、サービスプロバイダは、自動サーチエンジンインデックス化プロセスを促進することができ、これにより、サーチエンジン最適化（ＳＥＯ）の対策が得られ、外部の個人による仮想世界訪問が促進される。
【０２８２】
一実施形態において、テキストコンテンツは、視覚障害者のための自動読み上げに適した様態で提供される（例えば、テキストコンテンツの音声フォーマットでの送信）。このようなコンテンツは、特定の様態でフォーマットされ得る（例えば、恐らくはユーザ選好に基づいたスクリーン読み上げソフトウェア）。
【０２８３】
２次元レンダリングは、３次元仮想世界内への進入を促進するための情報をさらに含み得る。例えば、コンテンツは、３次元表現へのリンクを含み得る（例えば、「ｖｗｗ：／／」ｐｒｏｔｏｃｏｌｌｉｎｋ）。コンテンツは、ソフトウェア（例えば、デスクトップアプリケーション、モバイルデバイスアプリケーション、ブラウザプラグイン）へのリンクもさらに含み得、これにより、クライアントコンピュータは３次元コンテンツを見ることができる。
【０２８４】
２次元コンテンツ中の情報により、３次元コンテンツへの自動アクセスがさらに可能となる。例えば、３次元表現へのリンクを、＜ＭＥＴＡ＞タグ、Ｊａｖａスクリプトまたは他の更新コマンドなどに含めることができる。クライアントコンピュータのブラウザは、このようなリンクを認識し、適切な仮想世界ブラウザを自動的に実行して、リンクされた位置へとアクセスするように、構成され得る。実施形態において、ブラウザは、３次元コンテンツを窓システム内に表示することができ、これにより、ユーザは、２次元コンテンツと３次元コンテンツとの間をフリップで行き来することができる。
【０２８５】
２次元コンテンツは、ユーザが（仮想世界を直接見ることなく）仮想世界と相互作用することを可能にする相互作用フィーチャをさらに含み得る。例えば、２次元コンテンツは、チャット機能を含み得、これにより、ユーザは、仮想世界内で通信することができる。このような実施形態において、仮想世界内において離されるかまたは他の場合に行われる通信は、チャット機能によってテキストに翻訳されて、２次元コンテンツにアクセスするユーザが見ることが可能となり、チャット機能に入力されたテキストは読み上げられるかまたは他の場合に３次元表現世界において他のアバターへ提示される。実施形態において、２次元表現は、音声通信を含む（例えば、Ｖｏｉｃｅ−ｏｖｅｒ−ＩＰ）。これにより、アバターとのさらなる通信が３次元表現において可能となる。
【０２８６】
さらに、２次元表現にアクセスするユーザは、３次元表現のアバターによって表現され得、これにより、ユーザが他のアバターから視認可能となる。２次元表現にアクセスしているユーザの場合、アクセスまたは機能が制限されることが多い（例えば、容易に移動または通信することができないなど）。本実施形態において、これを示すために、２次元表現にアクセスしているユーザを特殊なアバターとして示すことができる（例えば、光る球体）。これにより、（例えば人間に似た形で表現される）他のアバターとの区別が可能となる。一実施形態において、アバターの表現は、例えば２Ｄブラウザを用いたアバターの外観を３Ｄレンダリングよりも平坦に見せることにより、アバターを操作しているユーザの制限を追跡する。
【０２８７】
２次元表現および３次元表現はどちらとも、多様な実施形態において、ユーザ選好を満たすように構成することができる。例えば、ビュー選好は、ユーザが望む特定の２次元表現を示し得る（例えば、オーバーヘッド表現、シーン内の特定のバンテージポイントからの表現）。他の選好は、言語、サイズ、外観、饒舌、および本明細書中に記載の他の情報を決定し得る。これらの選好は、ユーザアカウント、ユーザのブラウザ上のクッキーなどと関連付けられた状態でユーザによって通知され、保存され得る。選好は、例えばデフォルト選好および／または同様のユーザに関連する選好（例えば、地理的に類似するユーザ、ユーザの友人、同じ言語のユーザ）に基づいて、サービスプロバイダが追加的にまたは代替的に決定することも可能である。
【０２８８】
上記したような２次元コンテンツは、ブロック１９０５においてユーザによって受信され得る。上述したように、コンテンツは、特定のタグおよび／または３次元コンテンツへの自動移行を可能にするデータを任意選択的に含み得、例えばブラウザプラグインを通じてこれらのタグおよび／またはデータを検出するように、ユーザのブラウザまたは他のソフトウェアを構成することができる。ブロック１９１１において、ブラウザプラグインまたは他のソフトウェアは、このようなタグおよび／またはデータを検出し、仮想世界クライアントを呼び出して、仮想世界クライアントがアクセスすべき適切なＵＲＬまたは他の識別子を特定する。これに応答して、仮想世界クライアントは、ブロック１９０１においてサービスプロバイダに対する第２のリクエストを開始する。
【０２８９】
ブロック１９０３において、進入ポイントが３次元コンテンツをユーザへ供給すべきと決定した場合、ブロック１９０６において、サービスプロバイダは、インスタンスホストおよび／またはリクエストされたシーンのインスタンスを生成および／または選択して、ユーザへ供給する。インスタンスホストおよび／またはインスタンスは、上述したような進入ポイントによって適用された要素に基づいて選択され得る（例えば、負荷均衡、インスタンスのアバター能力、ＵＲＬ中の特定のインスタンスへのリクエスト）。サービスプロバイダは、新規インスタンスを生成すべきと決定し得、その場合、新規インスタンスホストを必要に応じて開始する。いくつかの実施形態において、特定のシーンのためにインスタンスホストを１つだけ用いており、その場合、インスタンスホストの選択は不要である。
【０２９０】
適切なインスタンスホストが特定された場合、ブロック１９０７において、ユーザは、インスタンスホストへアクセスするよう指示される。実施形態において、進入ポイントは、リダイレクトメッセージをユーザへと送り、例えば第２のＵＲＬを通じて、アクセスすべきインスタンスホストを特定する。このＵＲＬは、ワンタイムＵＲＬとしてコードされるかまたは他の場合に（例えば、クッキー中に保存されたセッション識別子を通じて）当該ユーザのみに対してアクセス可能とされ、これにより、ユーザまたは他のユーザが進入ポイントを迂回し、その後インスタンスホストへ直接アクセスする事態が回避される。あるいは、進入ポイントは、ユーザとインスタンスホストとの間のプロキシおよび直接ネットワークトラフィックとしても機能することができ、これにより、ユーザは、特定のインスタンスホストがアクセスされていることを認識しなくてよくなり、さらには、インスタンスホストに直接アクセスすることができる。
【０２９１】
ブロック１９０８において、ユーザは、インスタンスホストへアクセスせよとの指示を受け、ブロック１９０９において、ユーザはインスタンスホストと接触する。インスタンスホストは、ブロック１９１０において、ユーザがシーンのインスタンスと相互作用することをイネーブルすることにより、応答する。実施形態において、さらなるセキュリティ警戒のため、インスタンスホストは、進入ポイントまたはサービスプロバイダデータベースを参照して、ユーザが特定のインスタンスとの相互作用が認証されているかを確認する。
オブジェクトのクリーンアップ
【０２９２】
上述したように、仮想世界は複数のインスタンスソファシーンを含み得、各インスタンスは、シーンの初期レイアウトに基づいたオブジェクトおよび他の特性を含む。アバターがインスタンスと相互作用すると、これらのオブジェクトおよび特性が（例えば、移動、取得、破壊、変更、追加または他の場合に操作されることにより）改変され得る。その結果、アバターは、シーンの第１のインスタンスに進入した後、同一シーンの第２のインスタンスに進入することができ、その結果、外観が混乱し得、同一の「シーン」が大幅に変更され得る。さらに、いくつかの実施形態において、シーンのインスタンスが半透明の表示または他の機構を通じて重畳され得、例えばシーンの１つのインスタンス中のアバターが他のインスタンス中のアバター全てを同時に見ることが可能になる。シーンのオブジェクト間に実質的な差がある場合、これらの差をアバターが視認することができ、経験から低減することができる。
【０２９３】
例えば、アバターが領域から退出するとき特定のアクションを起こすことが望まれ得る。例えば、全アバターが退出したとき（またはショップスタッフ以外の全アバターが退出したとき）、コーヒーショップシーンをクリーンアップすることが望まれ得る。その場合、領域は、（各オブジェクトが有する命令またはオブジェクトが他のオブジェクトまたは領域から引き継いだ命令に応じて全体的または部分的に）「クリーン」な状態に戻され得る。１つの用途において、これは、クラブの最終客が退出した後すぐに清掃係をクラブに入れるのに類似し得る。任意選択的に、復帰アクションは、経営者によって手動トリガされ得る。任意選択的に、特定の条件（例えば、特定のカテゴリ（例えば、施設所有者）以外の任意のアバターがいない場合）が満たされた場合にのみ、このような手動トリガが動作し得る。このような制限は、ユーザが存在しているときに仮想空間が変更されて混乱するような事態を回避する機能を果たす。
【０２９４】
よって、実施形態において、シーンのインスタンスは、シーンの元々のレイアウトに対応するようにオブジェクトおよび他の特性を自動的に「クリーンアップ」する機能を含む。クリーンアップ手順は、以下に述べるように、手順の可視性を自然にまたは最小化するように構成され得、これにより、クリーンアップ手順が仮想現実環境内において異常に見えることが無くなる。
【０２９５】
図２０は、シーンのインスタンスをクリーンアップするプロセスのフローチャートである。プロセスは、例えば図１８のサービスプロバイダ１８０１（例えば、インスタンスホスト１８０３）によって行われ得る。多様な実施形態において、さらなるブロックを含めてもよいし、いくつかのブロックを除去してもよいし、および／または図示と異なる様態でブロックを接続または配置してもよい。
【０２９６】
ブロック２００１において、シーンのインスタンスがサービスプロバイダ内において生成される。複数のインスタンスが生成され得、ブロック２００２において表示され得る。上述したように、インスタンスは、例えば部分的な透明性を通じて２次元および／または３次元表現上にグラフィカルに重畳され得る。その後、ユーザは、各インスタンス内のオブジェクトまたは他の特性を追加、変更および／または除去することにより、ブロック２００３においてインスタンスを操作することができる。よって、インスタンスは、シーンの元々のレイアウトと大幅に異なり得る。
【０２９７】
ブロック２００４において、インスタンス中の１つ以上のオブジェクトまたは他の特性をクリーンアップせよとの命令が受信される。この特定のクリーンアップルーチンは、サービスプロバイダ、仮想世界および／またはシーンによって規定され得る。いくつかのシーンは、インスタンス間のいくつかのまたは全ての矛盾が受容可能であことを発見し得、その場合、クリーンアップは不要である。さらに、ブロック２００４における命令のタイミングは、インスタンスの状態に基づき得る。実施形態において、最少数のアバター（例えば、ゼロ個のアバター）がシーン中に存在する場合に命令が送信され、これにより、クリーンアップ活動がより気づかれにくくなる。
【０２９８】
ブロック２００４において命令が受信されると、システムは、クリーンアップすべきオブジェクトが元々の位置および／または他の状態にあるかをブロック２００５において判別する。オブジェクトが元々の位置および状態にある場合、システムはブロック２００６へ進み、このオブジェクトに対するクリーンアップ手順を終了する。その後、システムは、別のオブジェクトまたは特性のクリーンアップへと進み得る。さらに、一定レベルの変更がシーン内のオブジェクトに対して受容可能であるため、ブロック２００５における判別は、オブジェクトが受容可能な位置および／または状態にあるかであり得る。
【０２９９】
ブロック２００５においてシステムがオブジェクトが受容可能位置に無いと判別した場合、ブロック２００７において、システムは、オブジェクトを交換および／または元々の状態へ復帰させるための経路を決定する。オブジェクトは、元々の位置に配置、追加、変更および／または除去することができる。経路は、オブジェクトを移動させる方向、オブジェクトの外観に対する修正、オブジェクトのフェードインまたはフェードアウトなどを含み得る。１つのインプレメンテーションにおいて、「受容可能な位置」は、同一環境の複数の他の表現中の同様のオブジェクトの平均位置として決定され得る。
【０３００】
経路は、変更を行わせるアクターをさらに含み得る。オブジェクトは、修正を自動的に行い得る。例えば、フロアにわたって移動させることが必要な植物は、アバタによってピックアップされ移動され得るか、または、植物が自身でフロア上をスライドし得る。自動修正の場合、変更は徐々に行われるため、観察者には気づかれにくい。追加的または代替的には、非プレーヤキャラクター（例えば、ボット）を、所望の変更が得られるように導入することができる。例えば、仮想レストランシーンにおいて、椅子および／またはテーブルを移動させることができ、クリーンアップ手順は、自動化スクリプトおよび／またはプログラムによって操作されるウェイターを含み得る。これらのウェイターは、椅子および／またはテーブルを所望の位置へと移転させる。
【０３０１】
オブジェクト交換のための選択された経路は、インスタンスの条件にも基づき得る。例えば、インスタンスがアバターで混雑している場合、クリーンアップルーチンをより徐々に行うことができる一方、インスタンスが空である場合、クリーンアップを高速で行うことができる。さらに、アバターおよび／または他の要素がインスタンス内に配置される位置に基づいて、移転が行われるルートを選択することができる。この経路を計算するために、アルゴリズム（例えば、ダイクストラのアルゴリズム）を用いることができる。
【０３０２】
ブロック２００８において、ブロック２００７において決定された経路に基づいて、オブジェクトを移動させかつ／または変更する。さらなる修正を行うべきである場合、プロセスはブロック２００５へと戻り、所望の状態に到達するまで、調節を継続する。
【０３０３】
図２１は、実施形態において用いられるサンプルユーザインターフェースであり、クリーンアップすべきシーンのインスタンスを示す。ユーザインターフェースは、仮想世界ブラウザにおいて操作され得るため、図２１の２次元オーバーヘッドビューではなく、３次元表現が示され得る。
【０３０４】
シーン２１０１のグラフィカル表現は、多様な要素を含み得る（例えば、植物２１０２、ピアノ２１０３、ソファ２１０４、および／またはドア２１０５）。クリーンアップ手順に従って、これらのオブジェクトを変更することができる。例えば、植物２１０２を位置２１０６まで回復させることができる。非プレーヤキャラクター（例えば、仮想バトラーまたはメイド）が植物２１０２をフロア上において自動的にスライドさせる（例えば、数分間またはさらには数時間かけて徐々にスライドさせ）、元々の位置にフェードアウトおよびフェードインさせ、かつ／または元々の位置へと搬送させる。ピアノ２１０３の蓋がさらに上げられ、ドア２１０５が閉められ得る。これらの変更のタイミングは、シーンおよび／またはインスタンスの局面に基づき得る（例えば、存在するアバター数、日数、インスタンスホストおよび／またはサービスプロバイダへの負荷）。
オブジェクトクラウド
【０３０５】
仮想世界には膨大な量の情報が含まれ得るため、どの世界を訪問しようか考えているアバターは、このような決断および／または他の理由のための決断を行うための情報の要旨が欲しい場合がある。非仮想世界の状況（例えば、ＨＴＭＬコンテンツ）においては、タグクラウドなどの構造を用いて、情報の要旨を得ることができる。
【０３０６】
よって、実施形態において、オブジェクトクラウドをアバターへ提示することにより、仮想世界シーンおよび／またはインスタンスに関連する情報を要約する。オブジェクトクラウドは、世界シーンおよび／またはインスタンスの多様な特性を示し得、仮想世界システムの３次元能力を用いて、情報を有効に提示する。
【０３０７】
本明細書中に記載される実施形態は、仮想世界システム中の情報に関連するが、本明細書中に記載されるオブジェクトクラウドの実施形態は、これに限定されない。例えば、拡張現実システムは、例えば頭部に取り付けられたディスプレイを通じて、オブジェクトクラウドを現実世界上に重畳させる。よって、現実世界データを用いて、仮想世界データに加えてまたは仮想世界データの代替としてオブジェクトクラウドを構築することができる。
【０３０８】
オブジェクトクラウドは、仮想世界システム内の多様な位置において表示することができる。例えば、アバターは、仮想世界間の通過時においてオブジェクトクラウドを視認することができる。或る位置に対するオブジェクトクラウドを、当該位置行きへの仮想トレインまたはバス上の位置に提示することができる。仮想旅行会社は、これらの位置の冒険として、異なる位置のオブジェクトクラウドを表示し得る。さらに、オブジェクトクラウドは２次元ビューで表現され得るため、３次元ビューレンダリングが可能なブラウザを持たないユーザが同様の情報を得ることが可能となる。オブジェクトクラウドは、個人についての情報を表示することもできる。すなわち、アバターは、例えば全てのアバターの所有および／または別のアバターの所有のオブジェクトクラウドを視認することができる。このようなオブジェクトクラウドは、ロールプレイングゲームをプレイする際に有用であり得るため、アバターは、自身にとって利用可能なアイテムを迅速に決定することができる。
【０３０９】
実際、オブジェクトクラウドは、２次元ウェブ内においてインプリメントされ得る。ワードクラウドを用いる代わりに、ワードとストックまたは他の写真を代替することができるが、ワードのうちいくつかまたは全ての画像を代替するだけで、従来のワードクラウドの相対的サイズおよび場所は維持され得る。従来のワードクラウド要素に加えて、画像透明性も用いて、要旨にまとめられたデータの画像の重要性を示すことができる。
【０３１０】
図２２は、実施形態において用いられる仮想世界オブジェクトクラウドを表示するサンプルユーザインターフェースである。インターフェースは、仮想世界ブラウザ上に提示され得、例えばサービスプロバイダ進入ポイントおよび／またはインスタンスホストによって提供されたデータに基づき得る。図２２中の表現は２次元となっているが、多様な実施形態において３次元表現を用いることができ、その結果以下のような特定の利点を得ることができる。
【０３１１】
オブジェクトクラウド表示２２０１は、いくつかの図形を含む（例えば、ピアノ２２０２、買い物アイコン２２０３、カクテルアイコン２２０４、および／または車アイコン２２０５）。これらのアイコンは、特定の仮想世界シーンおよび／またはインスタンスに関連する情報を示し得る。例えば、オブジェクトクラウドは、特定の仮想位置において、現在のイベントに含まれるのはピアノ音楽、買い物、飲み物および自動車レースであることを示し得る。オブジェクトクラウドは、現在の情報、過去情報、未来情報、および／または任意の他の情報を示し得、表示される特定の情報は、ユーザ選択に基づき得る。
【０３１２】
オブジェクトクラウドの例示は、表示アイテムそれぞれについての情報をさらに搬送することができ、これにより、オブジェクトクラウドの情報容量がさらに増強される。例えば、オブジェクトクラウド中のアイテムのサイズは、関連イベントの人気、入場者数、サイズおよび／または他の属性を示し得る。オブジェクトクラウド表示２２０１においてより小型の買い物アイコン２２０３は、買い物は仮想世界内の特定の位置においてあまり人気の無い活動である一方、ピアノ音楽は（大型のピアノアイコン２２０２によって示すように）より人気が高い選択肢であることを示し得る。表示の他の局面（例えば、クラウド中のオブジェクト位置）から、さらなる情報を得ることができる。例えば、車アイコン２２０５を視認中のアバターのより近隣に配置し、ピアノアイコン２２０２をアバターからさらに離隔位置に配置することにより、アバターの現在位置からみて自動車レースがより近隣に存在することを示すことができる。サイズおよび／または位置を用いて、他の情報（例えば、イベントの時間、イベントの所要時間、コスト、興味および／または人気）を伝達することができる。クラウドの他の寸法（例えば、高さ、水平伝播、動き）により、さらなる情報を示すことができる。
【０３１３】
図２３は、実施形態において用いられる、オブジェクトクラウドを構築するプロセスのフローチャートである。このプロセスは、例えば図１８のサービスプロバイダシステム１８０１によって行われ得、例えば図２２に示すようなオブジェクトクラウドを構築することができる。多様な実施形態において、さらなるブロックを含めてもよいし、いくつかのブロックを除去してもよいし、および／または図示と異なる様態でブロックを接続または配置してもよい。
【０３１４】
ブロック２３０１において、システムは、現実空間または仮想空間中のオブジェクトおよび／または現実空間または仮想空間の他の特性を特定する。判別の規則は、オブジェクトクラウドをリクエストしているユーザによる選択に基づき得、これらの規則は、特定されたオブジェクトの位置および特性、オブジェクト種類および特定されるべき特性、行われるべき集約の種類などを含み得る。他のアイテムも特定することができる（例えば、イベント、空間ｓ、アバター、製品、サービス）。
【０３１５】
ブロック２３０２において、特定されたオブジェクトは、グループに集約され得る。集約により、オブジェクトクラウドは、多数のオブジェクトおよび／または特性についての要旨として機能することができる。集約は、メタデータおよび／または関連オブジェクトおよび／または特性（例えば、特性、タグ、属性）についての情報に基づき得る。ブロック２３０２の集約プロセスにより、オブジェクトクラウドの構築において用いられるべき情報がさらに特定され得る。例えば、ブロック２３０１においてイベントが特定された場合、これらのイベントにおける人気および／または入場者数を、ブロック２３０２において特定することができる。
【０３１６】
ブロック２３０３において、ブロック２３０２において特定されたグループを、グラフィカル表現としてまとめる。これは、グループをアイコン、グラフィックスなどにマッピングすることを含み得る。マッピングは、サービスプロバイダデータベース内のアイコンへマッピングされたグループの保存に基づき得る。マッピングは、サービスプロバイダ、世界、シーンおよび／またはインスタンスにとって特定のものであり得る。
【０３１７】
ブロック２３０４において、グラフィカル表現をクラウドとして配置する。配置構成手順により、多様なグラフィカル表現の局面（例えば、位置、サイズ、動き、回転）が判別され得る。この局面判別は、例えば、ブロック２３０２において特定された属性および他の情報に基づき得る。
【０３１８】
グラフィカル表現がクラウドとして配置されると、ブロック２３０５において、構築されたオブジェクトクラウドが表示のためにユーザへ表示および／または送信される。この表示プロセスは、ユーザが２次元が可能なビューワ上でオブジェクトクラウドを視認している場合、クラウドの３次元表現を２次元にレンダリングすることを含み得る。別の実施形態において、オブジェクトクラウドをテキスト、音声、ビデオ、および／または他の表現へと変換することにより、例えば表示を交代させかつ／またはオブジェクトクラウドのサーチエンジンインデックス化の可能化が行われる。
コンピューティングシステム
【０３１９】
図２４は、実施形態において用いられるコンピューティングシステムのブロック図である。多様な実施形態において、さらなるブロックを含めてもよいし、いくつかのブロックを除去してもよいし、および／または図示と異なる様態でブロックを接続または配置してもよい。
【０３２０】
図２４のコンピューティングシステムは、例えば、サービスプロバイダ、ルートサーバ、仮想ワールドサーバ、進入ポイント、インスタンスホストおよび／または別のコンピューティングシステムであり得る。コンピューティングシステム２４０１は、１つ以上のコンピューティングデバイスであり得る（例えば、コンピュータハードウェア）。コンピューティングシステム２４０１は、ソフトウェアおよび／またはハードウェア（例えば、回路）中の実行可能な命令としてインプリメントされ得る１つ以上のモジュールをさらに含み得る。コンピューティングシステム２４０１は、データ記憶装置システムをさらに含み得る（例えば、ハードディスク、リードオンリーメモリ、ランダムアクセスメモリ、フラッシュメモリ、リムーバブル記憶装置媒体）。
【０３２１】
コンピューティングシステム２４０１は、１つ以上のマイクロプロセッサ（例えば、Ｉｎｔｅｌ（登録商標）Ｐｅｎｔｉｕｍ（登録商標）プロセッサ、ａｎＩｎｔｅｌ（登録商標）Ｐｅｎｔｉｕｍ（登録商標）ＩＩプロセッサ、Ｉｎｔｅｌ（登録商標）Ｐｅｎｔｉｕｍ（登録商標）プロプロセッサ、Ｉｎｔｅｌ（登録商標）Ｐｅｎｔｉｕｍ（登録商標）ＩＶプロセッサ、Ｉｎｔｅｌ（登録商標）Ｐｅｎｔｉｕｍ（登録商標）Ｄプロセッサ、Ｉｎｔｅｌ（登録商標）Ｃｏｒｅ（ＴＭ）プロセッサ、ｘｘ８６プロセッサ、８０５１プロセッサ、ＭＩＰＳプロセッサ、パワーＰＣプロセッサ、ＳＰＡＲＣプロセッサ、Ａｌｐｈａプロセッサ）を用いた汎用コンピュータであり得る。コンピュータは、標準オペレーティングシステム機能（例えば、ファイルを開く、読む、書き込む、および閉じる）を行う多様なオペレーティングシステムを実行し得る。他のオペレーティングシステムも用いることが可能である（例えば、Ｍｉｃｒｏｓｏｆｔ（登録商標）ウィンドウズ（登録商標）３．Ｘ、Ｍｉｃｒｏｓｏｆｔ（登録商標）ウィンドウズ９８、Ｍｉｃｒｏｓｏｆｔ（登録商標）ウィンドウズ（登録商標）２０００、Ｍｉｃｒｏｓｏｆｔ（登録商標）ウィンドウズ（登録商標）ＮＴ、Ｍｉｃｒｏｓｏｆｔ（登録商標）ウィンドウズ（登録商標）ＣＥ、Ｍｉｃｒｏｓｏｆｔ（登録商標）ウィンドウズ（登録商標）ＭＥ、Ｍｉｃｒｏｓｏｆｔ（登録商標）ウィンドウズ（登録商標）ＸＰ、ウィンドウズ（登録商標）７、Ｐａｌｍ  ＰｉｌｏｔＯＳ、Ａｐｐｌｅ（登録商標）ＭａｃＯＳ（登録商標）、ディスクオペレーティングシステム（ＤＯＳ）、ＵＮＩＸ（登録商標）、ＩＲＩＸ、Ｓｏｌａｒｉｓ、ＳｕｎＯＳ、ＦｒｅｅＢＳＤ、Ｌｉｎｕｘ（登録商標）、またはＩＢＭ（登録商標）ＯＳ／２（登録商標）オペレーティングシステム）。他の実施形態において、コンピューティングシステム２４０１は、独占所有権のあるオペレーティングシステムによって制御され得る。従来のオペレーティングシステムは、実行のためのコンピュータプロセスを制御およびスケジューリングし、メモリ管理を行い、ファイルシステム、ネットワーキング、Ｉ／Ｏサービスを提供し、ユーザインターフェースを提供する（例えば、グラフィカルユーザインターフェース（「ＧＵＩ」））。
【０３２２】
コンピューティングシステム２４０１は、１つ以上の中央処理ユニット（「ＣＰＵ」）２４０１を含み得る。これらの中央処理ユニットはそれぞれ、１つ以上の従来のまたは独占所有権のあるマイクロプロセッサ（単数または複数）を含み得る。コンピューティングシステム２４０１は、１つ以上のメモリ２４０２をさらに含み得る（例えば、情報の一時的保存のためのランダムアクセスメモリ（「ＲＡＭ」）、情報の永久保存のためのリードオンリーメモリ（「ＲＯＭ」）、および／または大量記憶装置デバイス２４０３（例えば、ハードドライブ、ディスケット、または光学媒体記憶装置デバイス）。メモリ２４０２は、プロセッサ２４０１によって実行されるべきソフトウェアコードまたは命令を保存し得、これにより、コンピューティングデバイスが特定の操作（例えば、センサー関連データの収集、統計および／または予測モデルを用いたデータ処理、ユーザデバイスまたは他の提示のデータのフォーマッティング、データ送信、または本明細書中において記載および使用される他の操作）を行う。
【０３２３】
本明細書中において記載および特許請求の範囲に記載される方法は、任意の適切なコンピューティングデバイス（例えば、コンピューティングシステム２４０１）によって行うことができる。方法は、タンジブルなコンピュータによって読み出し可能な媒体またはコンピュータ記憶装置デバイスから読み出されたソフトウェア命令または他の実行可能なコードの実行に応答して、このような適切なコンピューティングデバイス上において行われ得る。コンピュータによって読み出し可能な媒体は、データ記憶装置デバイスであり、コンピュータシステムによる読み出しが可能なデータを保存することができる。コンピュータによって読み出し可能な媒体の例を挙げると、リードオンリーメモリ、ランダムアクセスメモリ、他の揮発性または不揮発性メモリデバイス、ＣＤ−ＲＯＭ、磁気テープ、フラッシュドライブ、および光学データ記憶装置デバイスがある。
【０３２４】
コンピューティングシステム２４０１は、１つ以上の入力／出力（Ｉ／Ｏ）デバイスおよびインターフェース２４０４を含み得る（例えば、キーボード、トラックボール、マウス、ドローイングタブレット、ジョイスティック、ゲームコントローラ、タッチスクリーン（例えば、容量または抵抗タッチスクリーン）、タッチパッド、加速度計および／またはプリンタ）。コンピューティングシステム２４０１はまた、１つ以上のマルチメディアデバイス２４０５も含み得る（例えば、表示デバイス（本明細書中、表示画面とも呼ぶ））。例えばタッチスクリーンの場合、このようなマルチメディアデバイス２４０５は、Ｉ／Ｏデバイス２４０４のうちの１つであり得る。表示デバイスは、ＬＣＤ、ＯＬＥＤ、または他の肉薄画面表示面、モニタ、テレビ、プロジェクタ、または（ユーザインターフェースおよびデータをビューワへ視覚的に示す）任意の他のデバイスを含み得る。コンピューティングシステム２４０１はまた、１つ以上のマルチメディアデバイスも含み得る（例えば、スピーカ、ビデオカード、グラフィックスアクセラレータ、およびマイクロホン）。
【０３２５】
一実施形態において、Ｉ／Ｏデバイスおよびインターフェース２４０４は、ネットワーク（例えば、図１のネットワーク１０３）を介して通信インターフェースを多様な外部デバイスへ提供する。例えば、コンピューティングシステム２４０１は、有線、無線または有線および無線の組み合わせ、通信リンク（単数または複数）を介して、ネットワーク１０３へ電子的に接続される。ネットワーク１０３により、多様な他のコンピューティングデバイスおよび／または他の電子デバイスとの通信を有線または無線通信リンクを介して行うことが可能になる。
【０３２６】
コンピューティングシステム２４０１はまた、１つ以上のモジュールを含み得る。１つ以上のモジュールは、実行可能な命令を含むハードウェアまたはソフトウェアとしてインプリメントされ得る。実施形態において、コンピューティングシステム２４０１は、仮想世界モジュール２４０６、アカウントモジュール２４０７、および認証モジュール２４０８を含む。多様な実施形態において、さらなるモジュールを含めかつまたはこれらのモジュールの任意のサブセットを含めることができる。多様な実施形態において、仮想世界モジュール２４０６、アカウントモジュール２４０７および認証モジュール２４０８のうち１つ以上を、ネットワークまたは他の通信システムを介して接続された別個のコンピューティングデバイス上に収容することができる。実施形態において、モジュールはそれぞれ、別個のコンピューティングデバイス上に収容され、これにより、異なるセキュリティ設定をモジュールそれぞれに対してインプリメントすることが可能になる。モジュールは、本明細書中に記載のような多様なプロセスおよび操作を行う。
多層コンポーネントおよびインターフェースシステム
【０３２７】
本技術の局面は、コンポーネントおよびインターフェースの別個の層のシステム内において配置されたものとして、概念化され得る。図２５を参照して、システム内の各層は、サービスプロバイダ２５０４および／またはインスタンスホスト２５０６へインポートおよび／またはエクスポートすることが可能なコンポーネントおよびインターフェースを提案する。第１の層（「層１」、「Ｌ１」、「層１インターフェース」または「Ｌ１インターフェース」）は、一般的または高レベルコンポーネントまたはワークフローインターフェースを指し、仮想世界システムのサービス操作に用いられ、コンピュータのオペレーティングシステムに類似し得る。第２の層（「層１」、「Ｌ１」、「層２コンポーネント」、または「Ｌ２コンポーネント」）は、１つ以上のインターフェースを層１インターフェースからエクスポートすることにより、特定のコンポーネント（すなわち、仮想世界システム中の３次元シーンおよびオブジェクト）のインストレーションを制御する。層２コンポーネントは、例えばＭａｎａｇｅｄ  Ｅｘｔｅｎｓｉｂｉｌｉｔｙ  Ｆｒａｍｅｗｏｒｋ（ＭＥＦ）に基づいたプラグインとしてインプリメントされ得る。第３の層（「層３」または「Ｌ３」）は、仮想世界システムの特定のインスタンスを指し得、１つ以上のクライアント２５０８は、モデル化３次元シーン内のイベントおよびオブジェクトに参加および制御する。
【０３２８】
層１は、仮想世界システムのエンティティ、空間、能力、許可、コンポーネントおよび他のオブジェクトの規定、生成および維持する機能を含み得る。例えば、Ｌ１は、以下の種類のエクスポートされたインターフェースを提供し得る。
【０３２９】
ＩＣｏｍｐｏｎｅｎｔＳｙｓｔｅｍにより、コンポーネントは、他のインストールされたコンポーネントについての情報を得ることができる。
【０３３０】
ＩｐｅｒｍｉｓｓｉｏｎＳｙｓｔｅｍにより、コンポーネントは、許可の規定、許可の生成、エンティティへの許可の割当、および多様なクライアントの文脈において多様なオブジェクトにとって利用可能な許可があるかの決定を行う。
【０３３１】
ＩＡｂｉｌｉｔｙＳｙｓｔｅｍにより、コンポーネントは、能力の規定、エンティティへの能力の割当、および多様なクライアントの文脈において多様なオブジェクトにとって利用可能な能力があるかの決定を行う。
【０３３２】
ＩＥｎｔｉｔｙＳｙｓｔｅｍにより、コンポーネントは、エンティティおよびエンティティとのインターフェースを生成することができる。仮面、ソーシャルグループ、アバターなどをこの種のインターフェース中に生成することができる。
【０３３３】
ＩＷｏｒｌｄＳｐａｃｅＳｙｓｔｅｍにより、コンポーネントは、世界空間（例えば、世界、シーン、インスタン）中のオブジェクトを生成し、インターフェースをとることができる。
【０３３４】
ＩＣｈａｔＳｙｓｔｅｍにより、コンポーネントは、チャットチャンネルの生成、チャットチャンネルへのユーザの付加、チャットチャンネルへのメッセージ送信、およびチャットチャンネルの他の局面の操作を行うことができる。
【０３３５】
ＩＲｅｌａｔｉｏｎｓｈｉｐＳｙｓｔｅｍにより、コンポーネントは、エンティティ間の社会的関係を規定および管理することができる。例えば交友関係、ソーシャルグループなどを生成することができる。
【０３３６】
オブジェクト管理システムにより、コンポーネントは、オブジェクト種類（すなわち、世界またはシーン内に存在し得るオブジェクト）およびオブジェクトテンプレート（すなわち、生成されたオブジェクトおよび世界またはシーン内の位置において回復されたオブジェクト）を規定および生成することができる。
【０３３７】
層２は、インスタンスホスト（単数または複数）およびサービスプロバイダを用いて、インターフェースを層１からインポートおよび／または層１へとエクスポートすることができる。よって、インスタンスホストおよびサービスプロバイダは、サーバアプリケーションプログラムインターフェース（「ＡＰＩ」）として機能することができる。サーバアプリケーションプログラムインターフェースは、層２が層１と相互作用する様態を決定する。よって、Ｌ２コンポーネントは、Ｌ１中にインポートされたエクスポートインターフェースとして用いられる。Ｌ２コンポーネントを用いて、仮想世界内における多様なプロセス時においてイベントを「ファイヤ」または開始することができる。これらのイベントの例を非限定的に挙げると、能力、許可、および仮想世界内における他の種類の通知がある。
【０３３８】
層１は、一連のワークフローインターフェースとしてみなすこともでき、各ワークフローインターフェースはタスクを示し、層化システムインフラストラクチャーを実行することができる。ワークフローインターフェースを非限定的に挙げると、「ログインワークフロー」、ＵＲＬ閲覧のための「ナビゲートワークフロー」、「再接続ワークフロー」、「世界生成」インターフェース、「仮面生成」インターフェースがある。これらの種類のワークフローインターフェースは、１つ以上の接続またはフックポイントを有し、このようなポイントにおいて、Ｌ２はイベントをファイアまたは開始し、イベント挙動を延ばすことができる。Ｌ２コンポーネントは、適切なインターフェースをＬ１からエクスポートすることにより、例えば特定のＬ１ワークフローインターフェースに関与し得る。Ｌ２がワークフローインターフェース中のフックポイントにおいてイベントをファイアまたは開始すると、Ｌ１は、対象コンポーネントを列挙する。対象コンポーネントは、ワークフローインターフェースと整合するものである。Ｌ１はまた、列挙されたコンポーネントを呼び出し、ワークフローインターフェースのための文脈を送り、ここで、文脈は、Ｌ２コンポーネントが利用することが可能な情報を含む。
【０３３９】
Ｌ２コンポーネントは、以下の種類のインターフェースをエクスポートすることができる。
【０３４０】
ＩＬｏｇｉｎＷｏｒｋフローは、ユーザログインワークフロー時においてサーバが呼び出すことが可能な方法を有するインターフェースである。
【０３４１】
ＩＮａｖｉｇａｔｅＷｏｒｋフローはインターフェースであり、所与の仮想世界ウェブ（ＶＷＷ）ＵＲＬへのナビゲート試行を取り扱う。
【０３４２】
ＩＡｂｉｌｉｔｙＷｏｒｋフローはインターフェースであり、能力が別のユーザまたはクライアントによって使用中である旨をコンポーネントに通知する。
【０３４３】
ＩＰｒｏｖｉｄｅｒＬｉｆｅｔｉｍｅＥｖｅｎｔは、Ｌ２コンポーネントのインストール時、取り外し時、またはアップグレード（単数または複数）時ににサービスプロバイダが呼び出すことが可能なインターフェースである。
【０３４４】
ＩＨｏｓｔＬｉｆｅｔｉｍｅＥｖｅｎｔは、システム開始および終了時においてインスタンスホストが呼び出すことが可能なインターフェースであり、コンポーネントの初期化を可能にする。
【０３４５】
上記において局面および列挙した層化システムコンポーネントおよびインターフェースは、限定的なものとして解釈されるべきではない。上記したコンポーネントおよびインターフェースのうち１つ以上の組み合わせに基づいて、さらなるコンポーネントおよびインターフェースを得ることができる。
多層コンポーネントおよびインターフェースシステムの操作を示すコールフロー
【０３４６】
図２５は、多層コンポーネントおよびインターフェースシステムをインプリメントするコールフローの一例を示す。多層コンポーネントおよびインターフェースシステムは、ルートサーバ２５０２、サービスプロバイダ２５０４、インスタンスホスト２５０６、およびクライアント２５０８を含む。ルートサーバ２５０２は、コンポーネントライブラリおよびコンポーネントインターフェースを供給し得、データベースサーバ（図示せず）へと接続され得る。データベースサーバは、例えば仮面およびオブジェクトの定義を含み得る。ルートサーバ２５０４も、１つ以上のサービスプロバイダ２５０４上における一般的サービスを提供し得る。これらの種類のサービスを上げると、ユーザログイン／ログアウトサービス、ユーザ清算サービス、現実通貨および／または仮想通貨の清算などがある。これらのサービスの使用時に送受信された通信が暗号化および／または認証されることにより、非認証のユーザがルートサーバ２５０４からの情報を入手することができなくなる。
【０３４７】
サービスプロバイダ２５０４はまた、データベースを含むかまたはデータベースへ接続され、このデータベースは、人間およびオブジェクトの定義を提供する。しかし、サービスプロバイダは、仮想世界システム内におけるコンポーネントおよびインスタンスも管理する。よって、Ｌ２コンポーネント選択２５１０は、ルートサーバ２５０２およびサービスプロバイダ２５０４双方において発生し得る。
【０３４８】
Ｌ２コンポーネントは、サービスプロバイダ２５０４においてインストールされ得（２５１４）、インスタンスホスト２５０６においてインストールされ得る（２５１８）。インスタンスホスト２５０６は、インストールされたコンポーネントを用いて、インスタンスを供給する。このようにすることで、インスタンスホストは、サービスプロバイダから供給されるコンテンツ（すなわち、３次元シーン中の世界空間およびオブジェクトについての情報）を全て表現することができる。
【０３４９】
クライアント２５０８は、インスタンスホスト２５０６によってホストされた３次元シーンのインスタンスのためにユーザインターフェースを操作し得る。クライアントはまた、入力／出力デバイスを含み得る（例えば、入力デバイス（例えば、キーボードまたはキーパッド、タッチスクリーン、カメラおよび／またはマイクロホン）、および出力デバイス（例えば、表示デバイスおよび音声システム））。クライアント２５０８は、他のコンポーネント（例えば、２次元（２Ｄ）ウェブコンテンツと３次元（３Ｄ）仮想世界シーンとの間のシームレス移行を可能にするための、ユーザインターフェースへリンクされたブラウザ）を含み得る。
【０３５０】
２５１０に示すように、仮想世界を構成するプロセスにおけるサービスプロバイダは、仮想世界の所望の機能をサポートするために必要な１組のコンポーネントを選択し得る。ルートサーバ２５０２は、仮想世界操作のサポートに用いられる全コンポーネントのライブラリを維持し得る。このライブラリから、サービスプロバイダは、適切なコンポーネントを選択することができる。サービスプロバイダ２５０４は、各選択されたＬ２コンポーネントを受信し、仮想世界インスタンスにおいて発生するイベントを供給するためのＬ２コンポーネントをローカルに２５１６に示すようにインストールする（２５１４）。サービスプロバイダ２５０４は、Ｌ２コンポーネントのコピーをインスタンスホスト２５０６へ提供し得る。インスタンスホスト２５０６も、同様にＬ２コンポーネントをインストールする（２５１８）。上記の操作は、仮想世界を設定するための操作の一部として行われ得、インスタンスホスト上の仮想世界の特定のインスタンスを設定するために行われる。
【０３５１】
２Ｄウェブブラウザを操作するクライアント２５０８は、入力デバイスからのユーザ入力を受信すると、サービスプロバイダ２５０４への２Ｄページリクエストを例えばＨＴＴＰＧＥＴリクエストを用いて開始する。これに応答して、サービスプロバイダ２５０４は、リクエストされた２Ｄページをクライアント２５０８へと送り、クライアント２５０８は、表示デバイスおよびブラウザインターフェースを用いてこのページを出力する。クライアント上において動作するウェブブラウザは、３Ｄプラグインコンポーネント２５２４を含み得る。３Ｄプラグインコンポーネント２５２４は、クライアント２５０８へのユーザ入力（Ｕ／Ｉ）に応答して選択的に活性化される。例えば、ユーザは、「ボタン」または同様の相互作用オブジェクトを選択して、３Ｄプラグインを活性化させることができる。
【０３５２】
活性化後、３Ｄプラグインは、３Ｄページリクエスト２５２６をサービスプロバイダ２５０４へと送り得る。３Ｄページリクエストは、クライアントが２Ｄページに対応する３Ｄ仮想世界シーンにアクセスを求めている旨を示す命令またはメッセージを含み得る。３Ｄページリクエストの受信に応答して、サービスプロバイダ２５０４は、２５２８に示すようにＬ１インターフェースを用いてルートサーバ２５０２と通信し得る。ルートサーバにおけるＬ１ワークフローを用いて、一般的操作（例えば、認証およびユーザアカウント管理）を取り扱うことができる。例えば、Ｌ１通信２５２８を用いて、クライアント２５０８内において特定されたユーザが３Ｄページリクエストによってリクエストされた３Ｄシーンへのアクセスを認証されているかを確認し、ユーザリクエストを清算または他の目的のために追跡し、他の一般的機能を行うことができる。
【０３５３】
特定されたユーザが３Ｄシーンへのアクセスが認証されていることが確認された場合、サービスプロバイダは、リクエストされた仮想世界シーンの適切なインスタンスのインスタンスホストを選択するためのプロセス２５３０を実行し得る。現在利用可能なインスタンスが無い場合、サービスプロバイダは、選択されたインスタンスホスト２５０６へ信号を送って、２５３２に示すように、リクエストされた３Ｄシーンのインスタンスを開く（インスタンス化する）。加えて、サービスプロバイダ２５０４は、クライアント２５０８へメッセージを送って、インスタンスホスト２５０６においてインスタンス化された（かまたはされるであろう）インスタンスへクライアントを２５３４に示すように方向付ける。
【０３５４】
インスタンスホスト２５０６は、２５３８によって示すように、例えば仮想世界の供給のためにインストールされたＬ２コンポーネントのうち１つ以上を実行することにより、仮想世界シーンのインスタンスをインスタンス化することができる。このようなコンポーネントは、シーンを規定する文書の集合をデータベースから抽出した後、文書コンテンツを受信した１つ以上のコンポーネントを実行し、文書コンテンツを処理して、シーンをインスタンス化する。インストレーションは、一連の３次元シーン状態を生成する状態マシンを含み得、シーン内のオブジェクトに対し、文書中に規定されたパラメータおよび規則セットおよび／またはオブジェクトの相互作用時にＬ２コンポーネント間で交渉されたパラメータおよび規則セットに従って、特性および挙動が割り当てられる。インストレーションのプロセスは、Ｌ１インターフェースを用いてルートサーバ２５０２と通信して、上記において例示したような一般的Ｌ１機能を行うことを含み得る。任意選択的に、インスタンスホストは、２５３６によって示すように、インスタンス化されたシーンの利用可能性をクライアント２５０８へ確認し得る。
【０３５５】
３Ｄシーンのインスタンスをインスタンス化した後、クライアントデバイス２５０８は、インスタンスと相互作用し、入力デバイスを介してユーザ入力２５４０を受信することにより、シーン内のイベントを発生させ、この入力に応答して、１つ以上のオブジェクト関連リクエストを２５４２に示すようにインスタンスホストへと送る。複数のさらなるクライアント（図示せず）も、同様にユーザ入力を受信し、シーンと相互作用することができる。インスタンスホスト２５０６は、インスタンスを操作するＬ２コンポーネントを用いて、１つ以上のクライアントからのメッセージを受信および処理することができる。これを挙げると、例えば、Ｌ２イベント処理２５４４と、サービスプロバイダ２５０４上において動作する対応するＬ２コンポーネントとの協働がある。上述したように、Ｌ２コンポーネントは、３Ｄシーンのインストレーション時において、ルートサーバとのＬ１インターフェース通信（図示せず）を含むＬ１ワークフローにフックしこれによってトリガすることができる。代替的にまたは追加的に、Ｌ２コンポーネントは、任意のＬ１ワークフローとのインターフェースを含まないイベントを取り扱うことができる。
【０３５６】
インスタンスホスト２５０６は、３Ｄシーンを視認するためのデータを２５４６に示すように生成することができる。例えば、インスタンスホスト２５０６は、連続する時間系列におけるシーンの各状態をコンピュータメモリへ書き込むことができる（例えば、シーン内における３次元オブジェクトモデル化の少なくとも位置および方向）。コンピュータメモリは、時間関連データのストリームをインストレーションからキャッシュし得、インスタンスホストは、２５４８に示すようにクライアント２５０８へ提供され得る。例えば、インスタンスホスト２５０６は、クライアント２５０８に対する時間関連データをストリーミングプロトコルを用いてストリーミングする。クライアント２５０８は、シーンデータを受信し、ユーザインターフェースコンポーネントを用いてこのデータを処理して、シーンの動画３Ｄビューを生成し、ビューを表示デバイスを介してユーザへ出力する。よって、フロー２５００の局面は、状態マシンを含む。この状態マシンは、ユーザ入力デバイスからの物理的入力を示すデータを受信し、これらの物理的入力を３Ｄモデル中のオブジェクトおよびイベントへマッピングし、得られた３Ｄシーンを物理的出力デバイスへと出力する。フロー２５００の操作（例えば、２５３８に示すインストレーション）は、物理的出力を提供するための物理的入力に依存し、最終的には、このような入力および出力が無くては機能または有効化しなくなる。
【０３５７】
例示的方法および装置
【０３５８】
図２６に示すように、コンピュータサーバシステムは、図２５中の多層コンポーネントおよびインターフェースシステムを用いて、３次元シーンのインスタンスを生成するための方法２６００を行うことができる。方法２６００は、２６１０において、１つ以上のコンピュータメモリにおいて、文書オブジェクトの集合によって規定された３次元シーンのインスタンスをインスタンス化することを含み得、ここで、文書オブジェクトはマークアップ言語として符号化され、各３次元モデル化オブジェクトまたは空間によって規定される。例えば、インスタンスホストは、状態マシンとして機能する１つ以上のＬ２コンポーネントを用いて、サービスプロバイダによって特定された文書集合を取り出し、これらの文書を処理する。
【０３５９】
方法２６００は、２６２０において、プロセッサが１つ以上のクライアントデバイスから受信した信号に応答して、文書オブジェクトの集合のコンテンツを制御することをさらに含み得る。例えば、インスタンスサーバは、クライアントデバイスからの（仮面または所有オブジェクトがシーンを進入または退出すべき旨を示す）信号に応答してまたはユーザ入力およびイベント結果決定のための規則セットに応答してＬ２コンポーネントによって決定されたイベント結果に応答して、集合からの文書を追加または除去し得る。
【０３６０】
方法２６００は、２６３０において、連続する時間系列におけるｆシーンの各状態に基づいた一連の３次元シーン状態（例えば、少なくともシーンにおける３次元オブジェクトモデル化の位置および方向）を１つ以上のコンピュータメモリ中に記録することをさらに含み得る。例えば、インスタンスサーバは、データストリームをメモリキャッシュ中へ書き込み得る。
【０３６１】
方法は、２６４０において、一連の３次元シーン状態を示すデータを１つ以上のクライアントへ提供することをさらに含み得る。例えば、インスタンスサーバは、データを１つ以上のクライアントへストリーミングし得る。
【０３６２】
図２７〜２８を参照して、操作２７００および２８００のうち１つ以上を、方法２６００の一部として任意選択的に行うことができる。要素２７００および２８００は、任意の動作順序で行うことができるし、あるいは、（特定の経過順序を必要とすることなく）開発アルゴリズムによって包含することもできる。操作は、独立的に行うことができ、相互に排他的なものではない。よって、別の下流または上流操作が行われるかに関係無く、このような操作のうち任意の１つを行うことが可能である。例えば、方法２６００が操作２７００および２８００のうち少なくとも１つを含む場合、方法２６００は、図示され得る任意の後続の下流操作（単数または複数）を必ずしも含む必要無く、少なくとも１つの操作後に終了し得る。
【０３６３】
局面において、図２７を参照して、方法２６００は、シーンのインスタンスをインスタンス化するためのさらなる操作２７００をさらに含み得る。さらなる操作は、２７１０において、集合中の各文書をインスタンス化することにより、シーンのインスタンスを少なくとも部分的にインスタンス化することを含み得る。方法２６００は、２７２０において、プロセッサによって受信された文書テンプレート、文書オブジェクトの集合中の文書オブジェクトのうち少なくとも１つのコピーから生成された文書オブジェクトを少なくとも部分的にインスタンス化することをさらに含み得る。方法２６００は、２７３０において、文書オブジェクトの集合を文書オブジェクト特性に従って階層ツリー状に分類することをさらに含み得る。方法２６００は、２７４０において、１つ以上のクライアントのユーザインターフェースのためのシーンの３次元動画を可能にするためにデータをフォーマットすることをさらに含み得る。
【０３６４】
他の局面において、図２８を参照して、方法２６００は、さらなるコンポーネントのインストールに関連するさらなる操作２８００をさらに含み得る。これらのさらなる操作は、２８１０において、１つ以上のコンポーネントを１つ以上のコンピュータメモリ中にインストールすることを含み得る。これら１つ以上のコンピュータメモリは、サーバからの命令の受信に応答してシーンのインスタンスをサポートするように、適合される。別の局面において、方法２６００は、２８２０において、プロセッサによって実行される１つ以上のコンポーネントを用いて文書オブジェクトのうちの１つに対応するイベントを示す信号のうちの１つを検出することにより、文書オブジェクトの集合を少なくとも部分的に制御することをさらに含み得る。加えて、方法２６００は、２８３０、２８４０および２８５０それぞれにおいて、信号シグニファイイングイベントのうちの１つを検出するのに応答して情報信号を生成することと、情報信号をサーバへ送信することと、プロセッサによって実行される１つ以上のコンポーネントを用いてサーバと通信して、イベントの各結果を決定することと、集合中の文書オブジェクトの１つ以上の状態を各結果に従って更新することと、集合中の文書オブジェクトの１つ以上の状態を各結果に従って更新することと、をさらに含み得る。
【０３６５】
図２９を参照して、例示的装置２９００が図示されている。この装置２９００は、３次元シーンをインスタンス化するためのコンピュータサーバ、クライアントデバイス、またはクライアントおよびサーバの組み合わせとして構成され得る。装置２９００は、機能ブロックを含み得る。この機能ブロックは、プロセッサ、ソフトウェアまたはこれらの組み合わせ（例えば、ファームウェア）によってインプリメントされる機能を示し得る。
【０３６６】
図示のように、一実施形態において、装置２９００は、文書オブジェクトの集合によって規定された３次元シーンのインスタンスをインスタンス化するための電気コンポーネントまたはモジュール２９０２を含み得る。文書オブジェクトは、マークアップ言語として符号化され、各３次元モデル化オブジェクトまたは空間を規定する。例えば、電気コンポーネントまたは手段２９０２は、メモリコンポーネント２９１６へ接続された少なくとも１つの制御プロセッサ２９１０を含み得る。制御プロセッサは、アルゴリズムを操作し得る。このアルゴリズムは、メモリコンポーネント中のプログラム命令として保持され得る。アルゴリズムは、例えば、サービスプロバイダによって特定された文書集合を取り出すことと、集合を処理して３Ｄシーンを規定する情報を抽出することと、情報に基づいて現在のシーン状態を維持することとを含み得る。
【０３６７】
装置２９００は、１つ以上のクライアントデバイスからの信号に応答して文書オブジェクトの集合のコンテンツを制御する電気コンポーネントまたはモジュール２９０３を含み得る。例えば、電気コンポーネントまたは手段２９０３は、メモリコンポーネント２９１６へ接続された少なくとも１つの制御プロセッサ２９１０を含み得る。この制御プロセッサは、アルゴリズムを操作し得る。このアルゴリズムは、メモリコンポーネント中のプログラム命令として保持され得る。アルゴリズムは、例えば、１つ以上のクライアントシグニファイイングからのメッセージストリームがオブジェクト集合に含まれる仮面およびオブジェクトの操作をリクエストするのに応答して、現在のシーン状態を維持することを含み得る。アルゴリズムは、入力を用いてシーン状態を計算して、シーン中に発生しているイベントと、イベント結果を決定するための規則セットとを検出することをさらに含み得る。
【０３６８】
装置２９００は、連続する時間系列におけるシーンの各状態（例えば、シーンにおける３次元オブジェクトモデル化の少なくとも位置および方向）に基づいて一連の３次元シーン状態を記録する電気コンポーネントまたはモジュール２９０４をさらに含み得る。例えば、電気コンポーネントまたは手段２９０４は、メモリコンポーネント２９１６へ接続された少なくとも１つの制御プロセッサ２９１０を含み得る。制御プロセッサは、アルゴリズムを操作し得る。このアルゴリズムは、メモリコンポーネント中のプログラム命令として保持され得る。アルゴリズムは、例えば、連続する状態をキャッシュメモリに書き込んでデータストリームを規定することを含み得る。
【０３６９】
装置２９００は、一連の３次元シーン状態を示すデータを１つ以上のクライアントへ提供する電気コンポーネントまたはモジュール２９０６をさらに含み得る。例えば、電気コンポーネントまたは手段２９０６は、このようなデータを提供するようにメモリコンポーネント２９１６へ接続された少なくとも１つの制御プロセッサ２９１０を含み得る。制御プロセッサは、アルゴリズムを操作し得る。このアルゴリズムは、メモリコンポーネント中のプログラム命令として保持され得る。アルゴリズムを挙げると、例えば、データストリームを１つ以上のクライアントへとストリーミングすることがある。装置２９００は、図２７〜２８に関連して述べたさらなる操作２７００および２８００のうち任意のものまたは全てを行う同様の電気コンポーネントを含み得る。図２７〜２８に関連して述べたさらなる操作２７００および２８００については、例示を簡潔にするため、図２９中では図示していない。
【０３７０】
関連局面において、装置２９００は、少なくとも１つのプロセッサを有するプロセッサコンポーネント２９１０を任意選択的に含み得る（ネットワークエンティティとして構成された装置２９００の場合）。プロセッサ２９１０は、このような場合、コンポーネント２９０２〜２９０６または同様のコンポーネントとバス２９１２または同様の通信接続を介して通信して動作することができる。プロセッサ２９１０は、電気コンポーネント２９０２〜２９０６によって行われるプロセスまたは機能の開始およびスケジューリングを行い得る。
【０３７１】
さらなる関連局面において、装置２９００は、クライアントおよびサーバ間の通信をイネーブルするネットワークインターフェースコンポーネント２９１４を含み得る。装置２９００は、情報保存のためのコンポーネントを任意選択的に含み得る（例えば、メモリデバイス／コンポーネント２９１６）。コンピュータによって読み出し可能な媒体またはメモリコンポーネント２９１６は、バス２９１２などを介して装置２９００の他のコンポーネントへ動作可能に接続される。メモリコンポーネント２９１６は、コンポーネント２９０２〜２９０６およびそのサブコンポーネントのプロセスおよび挙動をインプリメントするためのコンピュータによって読み出し可能な命令およびデータ、またはプロセッサ２９１０、または本明細書中に開示の方法を保存するように、適合される。メモリコンポーネント２９１６は、コンポーネント２９０２〜２９０６と関連付けられた機能を実行するための命令を保持し得る。メモリ２９１６の外部にあるものとして図示しているが、コンポーネント２９０２〜２９０６はメモリ２９１６内に存在してもよいことが理解される。
さらなる実施形態
【０３７２】
条件的言語（例えば、「ｃａｎ」、「ｃｏｕｌｄ」、「ｍｉｇｈｔ」または「ｍａｙ」）は、他に明記無き限りまたは他の場合に文脈から明らかでない限り、特定のフィーチャ、要素および／またはステップが特定の実施形態に含まれるが、他の実施形態には含まれないことを主に意味する。よって、このような条件的言語は一般的には、フィーチャ、要素および／またはステップが１つ以上の実施形態において必要であることを全く暗示せず、また、１つ以上の実施形態は、ユーザ入力またはプロンプトを用いてまたは用いずに、これらのフィーチャ、要素および／またはステップが任意の特定の実施形態において含まれるかまたは実行されるかを決定する論理を必ずしも含まない。
【０３７３】
本明細書中および／または添付図面中に示されるフロー図中の任意のプロセス記述、要素またはブロックは、恐らくは、プロセスにおける特定の論理機能またはステップをインプリメントするための１つ以上の実行可能な命令を含むモジュール、セグメント、コード部分を示すものとして理解されるべきである。別のインプレメンテーションが本明細書中に記載の実施形態に含まれ、実施形態において、用いられる機能に応じて、要素または機能を除去してもよいし、図示および記載の順序と異なる順序で実行してもよい（実質的にに同時または逆の順序を含む）ことが当業者によって理解される。
【０３７４】
本明細書中に記載される方法およびタスクは全て、コンピュータシステムによって実行および全自動化される。コンピュータシステムは、いくつかの場合において、複数の別個のコンピュータまたはコンピューティングデバイスを含む（例えば、物理的サーバ、ワークステーション、記憶装置アレイ）。これらのコンピューティングデバイスは、ネットワークを介して、電子的に通信し、相互運用して、記載の機能を行う。各このようなコンピューティングデバイスは典型的には、メモリまたは他のコンピュータによって読み出し可能な記憶装置媒体中に保存されたプログラム命令またはモジュールを実行するプロセッサ（または複数のプロセッサ）を含む。このシステムが複数のコンピューティングデバイスを含む場合、これらのデバイスを同一の場所に設置することができる（ただし、必ずしも必要ではない）。開示の方法およびタスクの結果は、物理的記憶装置デバイス（例えば、固体状態メモリチップおよび／または磁気ディスク）を異なる状態に変換することによち、持続的に保存される。
【０３７５】
上記した方法およびプロセスは全て、１つ以上の汎用コンピュータによって実行されるソフトウェアコードモジュールを介して全自動化で具現化され得る。コードモジュールは、任意の種類のコンピュータによって読み出し可能な媒体または他のコンピュータ記憶装置デバイスへ保存することができる。あるいは、上記方法のうち一部または全てを特殊なコンピュータハードウェアとして具現化することも可能である。開示の方法の結果は、任意の種類のコンピュータデータ保存部中へ保存される（例えば、磁気ディスク記憶装置および／または固体状態ＲＡＭを用いる関連データベースおよびフラットファイルシステム）。
【０３７６】
上記実施形態において多数の改変および変更が可能であり、その要素は、他の受容可能な例に含まれるものとして理解されるべきである。このような変更および改変は全て、本開示の範囲内において本明細書中に含まれるものである。上記の記述は、本発明の特定の実施形態を詳述する。しかし、上記記載がいかに詳細に見えるとしても、本発明は任意の方法で実行することができることが理解される。また、やはり上述したように、本発明の特定のフィーチャまたは局面を記述する際に用いた特定の用語は、当該用語が関連する本発明のフィーチャまたは局面の任意の特定の特性を含むものとして限定されるよう再定義されたものとして解釈されるべきではない。
【図１】
2014529792.tif 000007
【図２】
2014529792.tif 000008
【図３】
2014529792.tif 000009
【図４】
2014529792.tif 000010
【図５】
2014529792.tif 000011
【図６】
2014529792.tif 000012
【図７】
2014529792.tif 000013
【図８】
2014529792.tif 000014
【図９】
2014529792.tif 000015
【図１０】
2014529792.tif 000016
【図１１】
2014529792.tif 000017
【図１２】
2014529792.tif 000018
【図１３】
2014529792.tif 000019
【図１４】
2014529792.tif 000020
【図１５】
2014529792.tif 000021
【図１６】
2014529792.tif 000022
【図１７】
2014529792.tif 000023
【図１８】
2014529792.tif 000024
【図１９】
2014529792.tif 000025
【図２０】
2014529792.tif 000026
【図２１】
2014529792.tif 000027
【図２２】
2014529792.tif 000028
【図２３】
2014529792.tif 000029
【図２４】
2014529792.tif 000030
【図２５】
2014529792.tif 000031
【図２６】
2014529792.tif 000032
【図２７】
2014529792.tif 000033
【図２８】
2014529792.tif 000034
【図２９】
2014529792.tif 000035
【国際調査報告】
2014529792.tif 000036
2014529792.tif 000037
2014529792.tif 000038