(57)【特許請求の範囲】
【請求項１】
１つ以上の仮想エリア（３２）を含み、該１つ以上の仮想エリア（３２）内のユーザと他のコミュニカントとの間のリアルタイムコミュニケーションをサポートする仮想コミュニケーション環境を共有しており、個々のネットワークノードで動作する前記ユーザと前記コミュニカントとの間のリアルタイム対話を場所属性値と関連付けるステップであって、前記対話ごとに、前記対話が行われた前記仮想エリアを識別する個々の場所属性値と、前記対話に参加した前記コミュニカントの何人かを識別する１以上のコミュニカント識別子属性値とを含む、個々の履歴の対話レコード（３８）を生成することを含むものである、関連付けるステップと、
前記対話レコードに基づき、前記ネットワークコミュニケーション環境（１０）を管理するステップと
を含んでなり、
前記管理するステップは、
前記ユーザを識別するコミュニカント識別子属性値と、特定の仮想エリアを識別する場所識別子属性値とを含む問い合わせに基づいて、前記対話レコードを問い合わせることと、
前記問い合わせの結果から、前記特定の仮想エリアにおいて前記少なくとも１人のコミュニカントと対話している前記コミュニカントの集合を決定することと
を含むものである、方法。
【請求項２】
前記関連付けるステップが、前記対話レコード（３８）のそれぞれの中に前記個々の１以上の対話の開始時間および終了時間を包含することを含み、前記問い合わせは少なくとも１つの特別な開始時間および終了時間を含む、請求項１に記載の方法。
【請求項３】
前記関連付けるステップが、
１以上の対話レコード（３８）のそれぞれに、前記個々の対話中に前記ネットワークノードの個々のものから共有されたデータをそれぞれ識別する１以上のデータストリーム識別子の値を包含することを含み、前記問い合わせの結果は１以上の前記データストリーム識別子を含み、
前記問い合わせの結果における１以上の前記データストリーム識別子に基づいてデータを検索することをさらに含む、請求項１に記載の方法。
【請求項４】
少なくとも１つの前記場所属性値は、個々の前記対話が行われた個々の前記仮想エリアのゾーンを識別し、前記問い合わせは、前記特定の仮想エリアの前記ゾーンを識別する前記場所属性値を含む、請求項１に記載の方法。
【請求項５】
前記問い合わせることが、前記特定の仮想エリアを特定するユーザ入力に応じて実行されるものである、請求項１に記載の方法。
【請求項６】
前記管理するステップが、コミュニカントの集合内の前記コミュニカントのそれぞれのリストを、前記ユーザの前記ネットワークノードに送信することを含む、請求項５に記載の方法。
【請求項７】
前記問い合わせの結果に基づき、前記コミュニカントにランクをつけるステップと、前記コミュニカントをランクごとに前記リストの形で順序よく並べるステップとをさらに含む、請求項６に記載の方法。
【請求項８】
１つ以上の仮想エリア（３２）を含み、該１つ以上の仮想エリア（３２）内のユーザと他のコミュニカントと間のリアルタイムコミュニケーションをサポートする仮想コミュニケーション環境を共有しており、個々のネットワークノードで動作する前記ユーザと前記コミュニカントとの間のリアルタイム対話を場所属性値と関連付けるステップであって、前記対話ごとに、前記対話が行われた前記仮想エリアを識別する個々の場所属性値と、前記対話に参加した前記コミュニカントの何人かを識別する１以上のコミュニカント識別子属性値とを含む、個々の履歴の対話レコード（３８）を生成することを含むものである、関連付けるステップと、
前記対話レコードに基づき、前記ネットワークコミュニケーション環境（１０）を管理するステップと
を含んでなり、
前記管理するステップは、
前記仮想エリアのうちの特定の仮想エリアを特定するユーザ入力に応じて、前記ユーザを識別するコミュニカント識別子属性値と、前記特定の仮想エリアを識別する場所識別子属性値とを含む問い合わせに基づいて、前記対話レコードを問い合わせることと、
前記対話レコード（３８）の問い合わせの結果から得られる少なくとも１つの統計値に基づき、前記特定の仮想エリア内の前記ユーザのプレゼンスを確立することと
を含むものである方法。
【請求項９】
前記対話レコードの問い合わせの結果に基づいて、前記特定の仮想エリア内の前記ユーザの対話の頻度を決定することをさらに含み、前記確立することが、前記ユーザの対話の頻度に基づき、前記特定の仮想エリアで決定される前記プレゼンスを確立することを含む、請求項８に記載の方法。
【請求項１０】
前記確立することが、
前記特定の仮想エリア内の決定される前記対話の頻度が、指定された限界レベルを満たすという判断に基づいて、前記特定の仮想エリア内で前記ユーザの前記個々のプレゼンスを自動的に確立し、
前記決定される前記対話の頻度が前記指定された限界レベルを満たさないという判断に基づいて、前記特定の仮想エリア内に前記ユーザの前記プレゼンスを確立する前に、権限が与えられたコミュニカントによる確認を要求する、
ことを含む、請求項９に記載の方法。
【請求項１１】
前記決定することは、前記対話レコード（３８）の問い合わせの結果から抽出した少なくとも１つの統計値に基づき、前記コミュニカントの集合内の個々の前記コミュニカントのために、個々の関連性のあるスコアを決定すること
を含む、請求項１に記載の方法。
【請求項１２】
個々の前記コミュニカントが個々のオブジェクトに関連付けられており、前記管理するステップが、前記ユーザの前記ネットワークノードに、前記特定の仮想エリアのグラフィック表現の仕様と、前記特定の仮想エリア内の個々の位置に存在し前記特定の仮想エリアに存在する個々の前記コミュニカントに関連する前記オブジェクトの仕様とを送信することを含むものである請求項１１に記載の方法。
【請求項１３】
前記特定の仮想エリアを識別する前記場所属性値を含む前記対話レコードから、前記少なくとも１つの統計値を抽出することをさらに含む、請求項１１に記載の方法。
【請求項１４】
前記仮想エリアの特定のものを識別する前記場所属性値を含む前記対話レコードから、前記少なくとも１つの統計値と前記コミュニカントの特定の１人を識別する個々のコミュニカント属性値とを抽出するステップをさらに含む、請求項１１に記載の方法。
【請求項１５】
前記問い合わせることが、１つ以上の時間属性値をさらに含む、請求項１３に記載の方法。
【請求項１６】
プロセッサに読み取り可能な命令を記憶しているメモリと、
前記メモリに接続され、前記命令を動作可能に実行することができるプロセッサと
を含んでなる装置であって、
少なくとも一部の前記命令を動作可能に実行することは、
１つ以上の仮想エリア（３２）を含み、該１つ以上の仮想エリア（３２）内のユーザと他のコミュニカントとの間のリアルタイムコミュニケーションをサポートする仮想コミュニケーション環境を共有しており、個々のネットワークノードで動作する前記ユーザと前記コミュニカントとの間のリアルタイム対話を場所属性値と関連付けることであって、前記対話ごとに、前記対話が行われた前記仮想エリアを識別する個々の場所属性値と、前記対話に参加した前記コミュニカントの何人かを識別する１以上のコミュニカント識別子属性値とを含む、個々の履歴の対話レコード（３８）を生成することを含むものである、関連付けることと、
前記対話レコードに基づき、前記ネットワークコミュニケーション環境（１０）を管理することとを含み、
前記管理することは、
前記ユーザを識別するコミュニカント識別子属性値と、特定の仮想エリアを識別する場所識別子属性値とを含む問い合わせに基づいて、前記対話レコードを問い合わせることと、
前記問い合わせの結果から、前記特定の仮想エリアにおいて前記少なくとも１人のコミュニカントと対話している前記コミュニカントの集合を決定することと
を含むものである、装置。
【請求項１７】
前記決定することは、前記対話レコード（３８）の問い合わせの結果から抽出した少なくとも１つの統計値に基づき、前記コミュニカントの集合内の個々の前記コミュニカントのために、個々の関連性のあるスコアを決定することを含む、請求項１６に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
米国特許法第１１９条（ｅ）の下で、本願は、引用することにより本明細書の一部をなすものとする、２００８年４月５日に出願された米国特許仮出願第６１／０４２７１４号明細書の利益を主張する。
【０００２】
本願は、引用することにより本明細書の一部をなすものとする以下の同時係属中の特許出願である、２００９年１月１５日に出願された米国特許出願第１２／３５４，７０９号明細書、２００７年１０月２４日に出願された米国特許出願第１１／９２３，６２９号明細書、および、２００７年１０月２４日に出願された米国特許出願第１１／９２３，６３４号明細書にも関係する。
【背景技術】
【０００３】
面と向かってコミュニケーションをとることが実行できないとき、人々はしばしば自分自身のコミュニケーションの必要性を満たすために１以上の技術的な解決策に頼る。これらの解決策は、一般に面と向かってコミュニケーションをとることの１以上の態様をシミュレートするように設計される。従来の電話システムにより電話のかけ手間の音声コミュニケーションが可能になる。インスタント・メッセージング（「チャット」とも呼ばれる）・コミュニケーションシステムによりユーザが、インスタント・メッセージ・サーバにより相互接続されるインスタント・メッセージ・コンピュータ・クライアントを介してリアルタイムでテキストメッセージを伝達することができるようになる。さらに、ユーザが仮想環境でユーザ制御可能なグラフィックオブジェクト（「アバタ」と呼ばれる）により表されることができるようにするインスタント・メッセージング・システムがある。対話型仮想現実コミュニケーションシステムにより、遠隔の場所にいるユーザが多数のリアルタイムチャネルを介してコミュニケーションをとり、３次元仮想空間内でユーザの個々のアバタを操作することにより互いに対話することができるようになる。必要とされるのは、仮想コミュニケーション環境とインタフェースをとる改良されたシステムおよび方法である。
【発明の概要】
【０００４】
一態様では、本発明は、仮想コミュニケーション環境でのユーザの個々の対話を記述する対話レコードを含む少なくとも１つの対話データベースに問い合わせた結果から対話選択肢が決定される方法を特徴として持つ。仮想コミュニケーション環境は仮想エリアを含み、ユーザと別のコミュニカント（ｃｏｍｍｕｎｉｃａｎｔ）の間のリアルタイムコミュニケーションをサポートする。対話レコードは、対話の個々の１つが行われた仮想エリアの個々の１つを識別する個々の場所属性値と、個々の仮想エリア内の対話に参加したコミュニカントの個々の何人かを識別する１以上のコミュニカント識別子属性値とそれぞれを含む。表示装置上にユーザインタフェースが提示される。ユーザインタフェースは、１以上のユーザ選択可能コントロールの個々の１組に関連する対話オプションのグラフィック表示を含む。ユーザ選択可能コントロールの個々の１つをユーザが選択したことに応答して、仮想コミュニケーション環境でユーザの対話が開始される。
【０００５】
別の態様では、本発明は、仮想コミュニケーション環境における仮想エリアの表現が表示装置上に表示される方法を特徴として持つ。仮想コミュニケーション環境は、ユーザと別のコミュニカントの間のリアルタイムコミュニケーションをサポートする。表示装置上に、ユーザが仮想エリア、および別のコミュニカントの何人かとの対話を管理することができるようにするユーザ選択可能コントロールが提示される。ユーザ選択可能コントロールを介してユーザから受信される入力に応答して、仮想エリア内でユーザの個々のプレゼンスが確立される。表示装置上に、仮想エリア内にプレゼンスを有するコミュニカントのそれぞれの個々のグラフィック表現が描かれる。この処理では、コミュニカントの個々のグラフィック表現が、仮想エリア内の個々の位置に、仮想エリア内でのユーザの注意の中心の方向を示す可変の向きを有する方向性グラフィック視野要素をサポートする３次元球体要素を使ってそれぞれ描画される。
【０００６】
別の態様では、本発明は、仮想コミュニケーション環境における仮想エリアの表現が表示装置上に表示される方法を特徴として持つ。仮想コミュニケーション環境は、ユーザと他のコミュニカントの間のリアルタイムコミュニケーションをサポートする。表示装置上に、ユーザが仮想エリア、および別のコミュニカントの何人かとの対話を管理することができるようにするユーザ選択可能コントロールが提示される。この処理では、没入（ｉｍｍｅｒｓｉｏｎ）コントロールインタフェースが表示される。没入コントロールインタフェースにより、ユーザは１組の異なる対話レベルから特定の仮想エリアとの対話のレベルを選択することができるようになる。ユーザ選択可能コントロールを介しユーザから受信される入力に応答して、仮想エリア内でユーザの個々のプレゼンスが確立される。表示装置上に、仮想エリア内にプレゼンスを有するコミュニカントのそれぞれの個々のグラフィック表現が描かれる。
【０００７】
別の態様では、本発明は、場所属性値が、ユーザ、および個々のネットワークノードで動作し、かつ仮想コミュニケーション環境を共有する別のコミュニカントとのリアルタイム対話に関連付けられる方法を特徴として持つ。仮想コミュニケーション環境は、１以上の仮想エリアと、ユーザおよび別のコミュニカントの間のリアルタイムコミュニケーションのサポートとを含む。１以上の仮想エリアの個々の１つ内でコミュニカントの個々の１人を伴う対話ごとに、場所属性値を関連付ける処理は、対話が行われた仮想エリアを識別する個々の場所属性値と、対話に参加したコミュニカントの個々の何人かを識別する１以上のコミュニカント識別子属性値とを含む個々の対話レコードを生成することを伴う。ユーザおよび別のコミュニカントは、関連付けられた場所属性値に基づき仮想コミュニケーション環境にインタフェースされる。
【０００８】
別の態様では、本発明は、所定の時間に会議に参加するように招待し、そして招待を受け入れるように制御する方法を特徴として持つ。会議は仮想コミュニケーション環境の仮想エリア内で行われるように予定され、表示装置上に提示される。仮想コミュニケーション環境は、ユーザと、個々のネットワークノード上で動作する別のコミュニカントの間のリアルタイムコミュニケーションをサポートする。ユーザがコントロールを選択したことに応答して、ユーザの個々のプレゼンスが仮想エリア内で確立される。表示装置上に、仮想エリアの表現、および仮想エリア内にプレゼンスを有するコミュニカントのそれぞれの個々のグラフィック表現が描かれる。
【０００９】
別の態様では、本発明は、仮想コミュニケーション環境における仮想エリアの表現が表示装置上に表示される方法を特徴として持つ。仮想コミュニケーション環境は、ユーザと、個々のネットワークノード上で動作する別のコミュニカントの間のリアルタイムコミュニケーションをサポートする。表示装置上に、ユーザが仮想エリアおよび別のコミュニカントの何人かとの対話を管理することができるようにするユーザ選択可能コントロールが提示される。表示装置上に、仮想エリア内にプレゼンスを有するコミュニカントのそれぞれの個々のグラフィック表現が描かれる。この処理で、仮想エリア内のオブジェクトの動きを記述する個々のリアルタイム差動運動（ｄｉｆｆｅｒｅｎｔｉａｌ  ｍｏｔｉｏｎ）ストリームに基づき、仮想エリア内のオブジェクトの個々の位置が決定され、ネットワークノードから受信される。仮想エリア内の特定のグラフィック表現の所定の場所、および特定のグラフィック表現が仮想エリア内のコミュニカントの少なくとも１つの別のグラフィック表現に接近することのうちの少なくとも１つに基づき、コミュニカントのグラフィック表現の少なくとも特定の１つが自動的に再配置される。
【００１０】
別の態様では、本発明は、仮想コミュニケーション環境における仮想エリアの表現が表示装置上に表示される方法を特徴として持つ。仮想コミュニケーション環境は、ユーザと別のコミュニカントの間のリアルタイムコミュニケーションをサポートする。表示装置上に、ユーザが仮想エリア、および別のコミュニカントの何人かとの対話を管理することができるようにするユーザ選択可能コントロールが提示される。ユーザ選択可能コントロールは、ユーザが要求に応じて仮想エリアの修正を開始することができるようにする修正コントロールを含む。ユーザ選択可能コントロールを介してユーザから受信される入力に応答して、ユーザの個々のプレゼンスが仮想エリア内で確立される。表示装置上に、仮想エリア内にプレゼンスを有するコミュニカントのそれぞれの個々のグラフィカル表現が描かれる。
【００１１】
別の態様では、本発明は、個々のネットワークノード上で動作し、かつ１以上の仮想エリアを含みコミュニカント間のリアルタイムコミュニケーションをサポートする仮想コミュニケーション環境を共有するコミュニカントから受信されるデータファイルに、場所属性値が関連付けられる方法を特徴として持つ。１以上の仮想エリアの個々の１つ内のコミュニカントの個々の１人により共有されるデータファイルのそれぞれに対して、場所属性値を関連付ける処理は、データファイルが共有された個々の仮想エリアを識別する場所属性値の個々の１つと、個々のデータファイルを識別する個々のデータファイル識別子とを含む、個々の対話レコードを生成するステップを含む。関連付けられた場所属性値に基づき、コミュニカント間でのデータファイルの共有が管理される。
【００１２】
別の態様では、本発明は、仮想コミュニケーション環境における仮想エリアのグラフィック表現が表示装置上に表示される方法を特徴として持つ。仮想コミュニケーション環境は、第１のネットワークノード上で動作する第１のコミュニカントと、第２のネットワークノード上で動作する第２のコミュニカントとの間のリアルタイムコミュニケーションをサポートする。第１のネットワークノードと第２のネットワークノードとの間の第１のリアルタイム・データ・ストリーム接続を確立する第１のソフトウェアアプリケーションが第１のネットワークノード上で実行される。第１のリアルタイム・データ・ストリーム接続は、仮想エリアへの参照に関連付けられる。第１のソフトウェアアプリケーションの実行と同時に、第１のネットワークノードと、第３のコミュニカントが動作している第３のネットワークノードとの間の第２のリアルタイム・データ・ストリーム接続を確立する第２のソフトウェアアプリケーションが、第１のネットワークノード上で実行される。第２のリアルタイム・データ・ストリーム接続は、仮想エリアへのいかなる参照もない。第１のリアルタイム・データ・ストリーム接続および第２のリアルタイム・データ・ストリーム接続を介して交換されるリアルタイム・データ・ストリームから、１以上の統合リアルタイム・データ・ストリームが生成される。
【００１３】
別の態様では、本発明は、サーバ・ネットワーク・ノードが以下の動作を含む動作を行うように動作される方法を特徴として持つ。クライアント・ソフトウェア・アプリケーションのインスタンスが、個々のクライアント・ネットワーク・ノード上で動作するコミュニカント間のリアルタイムコミュニケーションをサポートする仮想コミュニケーション環境で仮想エリアに関連して実行される。リアルタイム入力データストリームが、仮想エリア内で対話しているコミュニカントに関連するクライアント・ネットワーク・ノードの個々のいくつかから受信される。リアルタイム入力データストリームから合成データストリームが生成される。合成データストリームは、クライアント・ソフトウェア・アプリケーションの実行するインスタンスに入力される。出力データストリームの個々のインスタンスが、少なくとも一部は合成データストリームの入力に応答して、クライアント・ソフトウェア・アプリケーションの実行するインスタンスにより生成される出力から生成される。出力データストリームのインスタンスは、仮想エリア内で対話するコミュニカントに関連するクライアント・ネットワーク・ノードの個々のいくつかに送信される。
【００１４】
別の態様では、本発明は、仮想コミュニケーション環境で仮想エリアが確立される方法を特徴として持つ。仮想コミュニケーション環境は、個々のネットワークノード上で動作するコミュニカント間のリアルタイムコミュニケーションをサポートする。コミュニカントの１人以上のそれぞれに対する仮想エリア内に個々のプレゼンスが生成される。仮想エリア内にプレゼンスを有するコミュニカントの個々の１人に関連するネットワークノードの個々の１つから受信される入力に応答して、仮想エリアに関連するファイルストアとｗｉｋｉ資源との間で情報が伝送される。
【００１５】
別の態様では、本発明は、ユーザと、個々のネットワークノード上で動作し、かつ少なくとも１つの仮想エリアを含みユーザと別のコミュニカントとの間のリアルタイムコミュニケーションをサポートする仮想コミュニケーション環境を共有する別のコミュニカントとのリアルタイム対話と、場所属性値が関連付けられる方法とを特徴として持つ。ユーザおよび別のコミュニカントは、仮想エリア内の個々のオブジェクトとそれぞれ関連付けられる。方法はさらに、関連する場所属性値に基づき、ユーザおよび別のコミュニカントを仮想コミュニケーション環境にインタフェースするステップを含む。
【００１６】
本発明はまた、上記で説明される方法を実現するように動作可能な装置と、上記で説明される方法をコンピュータに実行させるコンピュータに読み取り可能な命令を記憶するコンピュータ読み取り可能な媒体とを特徴として持つ。
【図面の簡単な説明】
【００１７】
【図１】第１のクライアント・ネットワーク・ノードと、第２のクライアント・ネットワーク・ノードと、仮想環境創造者とを含むネットワークコミュニケーション環境の一実施形態の概略図である。
【図２】仮想エリアの描写を表すグラフィカル・ユーザ・インタフェースを含むネットワークノードの一実施形態の概略図である。
【図３】クライアント・ネットワーク・ノードの一実施形態の構成要素を示す、図１のネットワークコミュニケーション環境の構造図である。
【図４】ネットワーク・インフラストラクチャ・サービス環境３０が共有データファイルを処理する方法の一実施形態の流れ図である。
【図５Ａ】ネットワークノードがピア・ツー・ピア・アーキテクチャでコミュニケーションをとる共有仮想エリアコミュニケーション環境の一実施形態の概略図である。
【図５Ｂ】ネットワークノードがサーバ介在（ｓｅｒｖｅｒ−ｍｅｄｉａｔｅｄ）アーキテクチャでコミュニケーションをとる共有仮想エリアコミュニケーション環境の一実施形態の概略図である。
【図６】３つのネットワークノードのソースとシンクとの間の例示的な１組のリアルタイム・データ・ストリーム接続を含む共有仮想エリアコミュニケーション環境の一実施形態の構造図である。
【図７】例示的な１組のソースと例示的な１組のシンクとを含むネットワークノードの一実施形態の構造図である。
【図８】共有仮想エリアコミュニケーション環境の一実施形態において、エリア・サーバ・ネットワーク・ノードと２つの別のエリア・クライアント・ネットワーク・ノードとに接続されるエリア・クライアント・ネットワーク・ノードの一実施形態の構造図である。
【図９】図８に示される共有仮想エリアコミュニケーション環境の一実施形態の概略図である。
【図１０】仮想環境でリアルタイムのコミュニカント対話をサポートするシステムアーキテクチャの一実施形態を示す。
【図１１】ネットワーク・インフラストラクチャ・サービス環境が、ユーザと空間コミュニケーション環境のインタフェースをとる方法の一実施形態の流れ図である。
【図１２】コミュニケーションアプリケーションがユーザと空間コミュニケーション環境のインタフェースをとる方法の一実施形態の流れ図である。
【図１３】連絡先（ｃｏｎｔａｃｔ）および場所を見るためのヘッドアップ表示装置（ＨＵＤ）グラフィカル・ユーザ・インタフェースの一実施形態を示す。
【図１４】場所単位で連絡先を表示する図１３のＨＵＤグラフィカル・ユーザ・インタフェースを示す。
【図１５】ユーザにより図１４で示される対応する場所タイル（ｔｉｌｅ）上をクリックすることにより入力される場所での連絡先（すなわち、Ｓｏｃｏｃｏ  Ｍａｉｎ）を表示する図１３のＨＵＤグラフィカル・ユーザ・インタフェースを示す。
【図１６】ユーザのＳｋｙｐｅ履歴に対する問合せに基づき抽出される、ユーザのリアルタイム連絡先の第１の選択された連絡先に関連するデータを表示する図１３のＨＵＤグラフィカル・ユーザ・インタフェースを示す。
【図１７】ユーザのスカイプ（Ｓｋｙｐｅ）履歴に対する問合せに基づき抽出される、ユーザのリアルタイム連絡先の第２の選択された連絡先に関連するデータを表示する図１３のＨＵＤグラフィカル・ユーザ・インタフェースを示す。
【図１８】ユーザのリアルタイム連絡先の選択された１つがプレゼンスを有するＳｏｃｏｃｏの場所の２次元表現を表示する図１３のＨＵＤグラフィカル・ユーザ・インタフェースを示す。
【図１９】ユーザのリアルタイム連絡先の選択された１つにより現在占有されるＳｏｃｏｃｏの場所の３次元表現を表示する図１８のＨＵＤグラフィカル・ユーザ・インタフェースを示す。
【図２０】ユーザが、共有Ｓｏｃｏｃｏの場所で第１のリアルタイム連絡先と対話していると同時に、ＭＭＯＧミニマップにより表されるオンラインゲームを現在している第２のリアルタイム連絡先と対話している図１９のＨＵＤグラフィカル・ユーザ・インタフェースを示す。
【図２１】ユーザが図２０でＨＵＤを介して対話している第２のリアルタイム連絡先により体験される現在のゲーム環境の３次元可視化の一実施形態を示す。
【図２２】ユーザのＨｏｍｅＳｐａｃｅの場所の３次元可視化の一実施形態を示す。
【図２３】ＯｆｆｉｃｅＳｐａｃｅの場所の２次元可視化の一実施形態を示す。
【図２４Ａ】デスクトップモードの動作でのヘッドアップ表示装置（ＨＵＤ）グラフィカル・ユーザ・インタフェースの一実施形態を示す。
【図２４Ｂ】図２４Ａに示されるＨＵＤの拡大図を示す。
【図２５】事前に予定された会議に対する警報（すなわち、「８ａｍ−Ｐｒｅ  ｆｏｒ  Ｏｐｓ  Ｒｅｖｉｅｗ（午前８時−業績概況の事前準備）」）を表示する図２４ＡのＨＵＤグラフィカル・ユーザ・インタフェースを示す。
【図２６】現在ユーザがその場所の唯一のコミュニカントであるＳｏｃｏｃｏの場所にユーザが入った後の、デスクトップモードの可視化での図２４ＡのＨＵＤグラフィカル・ユーザ・インタフェースを示す。
【図２７】２人の別のコミュニカントがＳｏｃｏｃｏの場所に入った後の、デスクトップモードの可視化での図２６のＨＵＤグラフィカル・ユーザ・インタフェースを示す。
【図２８】ユーザがその場所に入った直前の、３次元モードの可視化での図２７のＨＵＤグラフィカル・ユーザ・インタフェースを示す。
【図２９】ユーザがその場所に入った後、かつその場所に現在いるコミュニカントを表すアバタが自動的に向きを変えてユーザの方へ向いた後の、３次元モードの可視化での図２７のＨＵＤグラフィカル・ユーザ・インタフェースを示す。
【図３０】ユーザが場所の壁をクリックしてＳｏｃｏｃｏの場所に新しい部屋を追加することにより場所の定義を修正した直前の、図２９のＨＵＤグラフィカル・ユーザ・インタフェースを示す。
【図３１】ユーザがＳｏｃｏｃｏの場所に新しい部屋を追加した直後の、図３０のＨＵＤグラフィカル・ユーザ・インタフェースを示す。
【図３２】ユーザがＳｏｃｏｃｏの場所に追加した新しい部屋にユーザが入った後の、図３１のＨＵＤグラフィカル・ユーザ・インタフェースを示す。
【図３３】Ｓｏｃｏｃｏの場所内の別のユーザを表すアバタがユーザにより占有されている新しい部屋に入った後の、図３２のＨＵＤグラフィカル・ユーザ・インタフェースを示す。
【図３４】ＯｆｆｉｃｅＳｐａｃｅの場所の可視化の一実施形態を示す。
【図３５】クライアント・ネットワーク・ノード上で実行されている別個のソフトウェアアプリケーションにより確立されるリアルタイム・データ・ストリーム接続を介して交換されるリアルタイム・データ・ストリームから、１以上の統合リアルタイム・データ・ストリームを生成する方法の一実施形態の流れ図である。
【図３６】人々が異なるコミュニケーションアプリケーションを介してＳｏｃｏｃｏプラットフォームのユーザとコミュニケーションをとることができるようにする、コミュニケーションインフラストラクチャの一実施形態の構造図である。
【図３７】ネットワーク・インフラストラクチャ・サービス環境３０が、１人以上のコミュニカントのためのクライアントソフトウェアを多重化する方法の一実施形態の流れ図である。
【図３８】Ｓｏｃｏｃｏプラットフォームがｗｉｋｉ資源と統合される方法の一実施形態の方法図である。
【図３９】ｗｉｋｉからの情報が、ｗｉｋｉコンテンツとのリアルタイム対話を可能にするｗｉｋｉ掲示板にインポートされるＯｆｆｉｃｅＳｐａｃｅの場所の可視化の一実施形態を示す。
【発明を実施するための形態】
【００１８】
以下の説明では、同様の要素を識別するために同じ参照番号が使用される。さらに、図面は図式の手法で例示的実施形態の主要な特徴を例示するものである。図面は、実際の実施形態のあらゆる特徴を描いたものではなく、描かれた要素の相対的な寸法を描くものでもなく、縮尺どおりに描かれてはいない。
Ｉ．用語の定義
【００１９】
「コミュニカント」は、１以上のネットワーク接続を介して別の人とコミュニケーションをとる、または別の方法で対話する人であり、この場合、コミュニケーションまたは対話は、仮想エリアに関連して行われることも、行われないこともある。「ユーザ」は、記述する目的で特定の眺めを定義する特定のネットワークノードを動作させているコミュニカントである。ユーザの「リアルタイム連絡先」は、リアルタイム・コミュニケーション・プラットフォームを介してユーザとコミュニケーションをとったコミュニカントまたは別の人である。
【００２０】
「コミュニカント対話」は、コミュニカントと別のネットワークエンティティの間の任意のタイプの直接または間接の動作あるいは作用であり、このエンティティはたとえば別のコミュニカント、仮想エリア、またはネットワークサービスを含みうる。コミュニカント対話の例示的なタイプは、リアルタイムで互いにコミュニケーションをとるコミュニカントと、仮想エリアに入場するコミュニカントと、ネットワークサービスから資源へのアクセスを要求するコミュニカントとを含む。
【００２１】
「プレゼンス」は、ネットワーク接続されたエンティティ（たとえば、コミュニカント、サービス、または装置）のコミュニケーションをとる能力および意志を指し、この場合、そのような意志は、ネットワーク上のエンティティの状態に関する情報を検出して得る能力と、エンティティに接続する能力とに影響を及ぼす。コミュニカントが特定の仮想エリア内にプレゼンスを有するとき、そのコミュニカントはその仮想エリア「内」にいると言われる。
【００２２】
「仮想コミュニケーション環境」は、少なくとも１つの仮想エリアを含み、かつコミュニカント間のリアルタイムコミュニケーションをサポートするコンピュータに管理された空間の表現である。
【００２３】
「場所属性値」は、仮想コミュニケーション環境内部の場所の態様を特徴付ける値を指し、この場合、「場所」は、１組の仮想エリア、単一の仮想エリア、仮想エリア内部の１以上の部屋、仮想エリアの部屋内部のゾーンもしくは別の領域、または仮想エリア内部の特定の位置を含むがそれらに限定されない、仮想コミュニケーション環境の空間的態様を指すことがある。場所識別子は、たとえば仮想環境内部の場所を指示し、識別し、または位置を定める場所属性である。
【００２４】
「インタフェースする」という用語は、コミュニカントが仮想コミュニケーション環境と物理的に、機能的に、または論理的に対話することができるようにする１以上の設備を提供することを意味する。これらの設備は、コンピュータハードウェアと、コンピュータファームウェアと、コンピュータソフトウェアとの１以上を含みうる。
【００２５】
「コンピュータ」は、一時的または恒久的にコンピュータに読み取り可能な媒体上に記憶されるコンピュータに読み取り可能な命令に従ってデータを処理する任意の機器、デバイス、または装置である。「コンピュータ・オペレーティング・システム」は、タスクの性能、ならびにコンピューティング資源およびハードウェア資源の共有を管理し、協調させるコンピュータシステムのソフトウェア構成要素である。「ソフトウェアアプリケーション」（ソフトウェア、アプリケーション、コンピュータソフトウェア、コンピュータアプリケーション、プログラム、およびコンピュータプログラムとも呼ばれる）は、コンピュータが解釈し実行して、１以上の特定のタスクを行うことができる１組の命令である。「データファイル」は、ソフトウェアアプリケーションにより使用するためにデータを永続的に記憶する情報のブロックである。
【００２６】
「ウィンドウ」は、一般にユーザインタフェースを含む表示装置の視覚的エリアである。ウィンドウは、一般にソフトウェア処理の出力を表示し、一般にユーザがソフトウェア処理のための指令またはデータを入力できるようにする。親を有するウィンドウは「子ウィンドウ」と呼ばれる。親を有しない、または親がデスクトップウィンドウであるウィンドウは「トップ・レベル・ウィンドウ」と呼ばれる。「デスクトップ」はグラフィカル・ユーザ・インタフェース（ＧＵＩ）の背景を描き、かつすべてのソフトウェア処理により表示されるすべてのウィンドウのための基底の役割を果たすシステム定義ウィンドウである。
【００２７】
「ネットワークノード」（単に「ノード」とも呼ばれる）は、コミュニケーションネットワーク内の連結点または接続点である。例示的なネットワークノードは、端末、コンピュータ、およびネットワークスイッチを含むが、それらに限定されない。「サーバ」・ネットワークノードは、情報またはサービスの要求に応答するネットワーク上のホストコンピュータである。「クライアント」・ネットワークノードは、サーバからの情報またはサービスを要求するネットワーク上のコンピュータである。「ネットワーク接続」は、２つのコミュニケーションをとるネットワークノード間のリンクである。「ローカル・ネットワーク・ノード」という用語は現在、議論の主要な対象となっているネットワークノードを指す。「遠隔ネットワークノード」という用語は、ネットワーク・コミュニケーション・リンクによりローカル・ネットワーク・ノードに接続されるネットワークノードを指す。「接続ハンドル」は、ネットワークノード上のコミュニカント、資源、またはサービスとのネットワーク接続を確立するために使用されることができるポインタまたは識別子（たとえば、ＵＲＩ（ｕｎｉｆｏｒｍ  ｒｅｓｏｕｒｃｅ  ｉｄｅｎｔｉｆｉｅｒ））である。「ネットワークコミュニケーション」は、ネットワーク接続を介して、あるネットワークノードから別のネットワークノードに伝送されるまたは別の方法で運ばれる任意のタイプの情報（たとえば、テキスト、音声、オーディオ、ビデオ、電子メールメッセージ、データファイル、動きデータストリーム、およびデータパケット）を含みうる。
【００２８】
「データベース」は、コンピュータにより検索されることができる標準化形式で提示される記録の組織化された集合である。データベースは、単一のコンピュータ上の単一のコンピュータに読み取り可能なデータ記憶媒体上に記憶されていてもよく、１以上のコンピュータ上の多数のコンピュータに読み取り可能なデータ記憶媒体にわたって分散されてもよい。
【００２９】
「ファイルストア」は、ネットワークの１以上のノード上に記憶されるデータファイルへのネットワークアクセスを可能にするデータファイル記憶システムである。
【００３０】
「マルチトラック記録」は、同じまたは異なるデータタイプ（たとえば、オーディオ、動き、ビデオ、チャット）のデータストリームの多数の分離可能なトラック（またはレイヤ）を記憶するデータファイルであり、この場合、トラックのそれぞれが別個にアクセスされ処理されることができる。
【００３１】
「識別子」は、ローカルに一意なまたは大域的に一意な方法でエンティティを識別する。資源識別子は資源を識別し、資源の表現と対話する（たとえば、作用を及ぼす、または得る）ためのハンドルを提供する。「資源」は、ネットワークを介してアクセス可能な任意のタイプの情報（たとえば、Ｗｅｂページ、ファイル、ストリーミングデータ、およびプレゼンスデータ）またはサービス（たとえば、別のユーザとのコミュニケーションリンクを確立するサービス）を指す。資源がＵＲＩ（ｕｎｉｆｏｒｍ  ｒｅｓｏｕｒｃｅ  ｉｄｅｎｔｉｆｉｅｒ）により識別されることがある。「ハンドル」は、ネットワークノード上のコミュニカント、資源、またはサービスとネットワーク接続を確立するために使用されることができるポインタまたは識別子（たとえば、ＵＲＩ（ｕｎｉｆｏｒｍ  ｒｅｓｏｕｒｃｅ  ｉｄｅｎｔｉｆｉｅｒ））である。
【００３２】
「データソース」（本明細書では単に「ソース」と呼ばれる）は、データを発生する装置、装置の一部（たとえば、コンピュータ）、またはソフトウェアのいずれかである。
【００３３】
「データシンク」（本明細書では単に「シンク」と呼ばれる）は、データを受信する装置、装置の一部（たとえば、コンピュータ）、またはソフトウェアのいずれかである。
【００３４】
「切替（ｓｗｉｔｃｈｉｎｇ）規則」は、１以上のリアルタイム・データ・ソースと１以上のリアルタイム・データ・シンクを接続または切断するために満足されなければならない１以上の条件を指定する命令である。
【００３５】
「ストリーム混合（ｍｉｘ）」は、同じタイプ、または意味的に無矛盾のタイプ（たとえば、オーディオ、ビデオ、チャット、および動きのデータ）の２つ以上のリアルタイム・データ・ストリームの組合せである。たとえば、１組の音声ストリームが単一の音声ストリームに混合されることも、音声ストリームがビデオストリームのオーディオ部分に混合されることもある。
【００３６】
「ストリーム処理トポロジ」は、リアルタイム・データ・ストリーム（そのそれぞれが、混合されたストリームのことも、混合されていないストリームのこともある）が１以上のネットワークノードに届けられるネットワーク経路の構成である。
【００３７】
「ｗｉｋｉ」は、ユーザが一括してコンテンツを追加および編集することができるようにするＷｅｂサイトまたは同様のオンライン資源である。Ｗｅｂサイトベースのｗｉｋｉの場合、ユーザは一般に個々のＷｅｂブラウザアプリケーションを使用して共同作業する。
【００３８】
「リアルタイム・データ・ストリーム」は、連続した流れで構成され処理され、かつ遅延なしに、またはほんのわずかな遅延だけで受信されるように設計されるデータである。リアルタイム・データ・ストリームは、音声、ビデオ、ユーザの動き、顔の表情、および別の物理的現象のデジタル表現だけでなく、たとえばアバタ移動命令、テキストチャット、リアルタイム・データ・フィード（たとえば、センサデータ、機器制御命令、トランザクションストリーム、および株価情報の供給）、およびファイル転送を含む高速伝送、高速実行、または高速伝送と高速実行の両方から利益を得ることがある、コンピューティング環境内部のデータを含む。
【００３９】
「仮想エリア」（本明細書では「エリア」または「場所」とも呼ばれる）は、コンピュータに管理される空間または場面の表現である。仮想エリアは、２次元表現のことも、３次元表現のこともある。多くの場合、仮想エリアは物理的実世界空間をシミュレートするように設計される。たとえば、従来のコンピュータモニタを使用して、仮想エリアがコンピュータに生成された３次元空間の２次元グラフィックとして可視化されることがある。しかし、仮想エリアは、関連する可視化に切替規則を実装することを求めない。
【００４０】
「仮想エリアアプリケーション」（「仮想エリア仕様」とも呼ばれる）は、仮想環境を生成する際に使用される仮想エリアの記述である。仮想エリアアプリケーションは、一般に仮想エリアの１以上のゾーンに関連する幾何形状、物理的性質、およびリアルタイム切替規則の規定を含む。
【００４１】
「仮想環境」は、少なくとも１つの仮想エリアを含み、かつコミュニカント間のリアルタイムコミュニケーションをサポートする、コンピュータに管理された空間の表現である。
【００４２】
「ゾーン」は、少なくとも１つの切替規則または管理規則（ｇｏｖｅｒｎａｎｃｅ  ｒｕｌｅ）に関連する仮想エリアの領域である。切替規則は、共有仮想エリアを介してコミュニケーションをとるネットワークノード間のリアルタイム・データ・ストリームの切替（たとえば、ルーティング、接続、および切断）を制御する。管理規則は、資源（たとえば、エリア、エリアの領域、あるいはそのエリアまたは領域のコンテンツ）へのコミュニカントのアクセス、そのアクセスの範囲、およびそのアクセスのその後の結果（たとえば、そのアクセスに関連する監査が記録される要件）を制御する。
【００４３】
仮想エリアに関連して、「オブジェクト」は、仮想エリアの幾何形状と切り離されたものとして有益に扱われることがある仮想エリア内の任意のタイプの個別の要素である。例示的オブジェクトは、ドア、表玄関、ウィンドウ、ビュースクリーンおよびスピーカフォンを含む。オブジェクトには、一般に仮想エリアの属性およびプロパティとは切り離された個別の属性またはプロパティがある。「アバタ」は仮想エリア内のコミュニカントを表すオブジェクトである。
【００４４】
仮想エリア内の「位置」は、仮想エリア内の点または面積または体積の場所を指す。点は一般に仮想エリア内の場所を規定する単一の１組の２次元または３次元の座標（たとえば、ｘ、ｙ、ｚ）により表される。面積は一般に仮想エリア内の閉じた２次元形状の境界を規定する同一平面上の３つ以上の頂点の３次元座標により表される。体積は一般に仮想エリア内の３次元形状の閉じた境界を規定する同一平面上にない４つ以上の頂点の３次元座標により表される。
【００４５】
「統計値」は、サンプル内のデータから統計的分析で計算され、サンプルの態様を特徴付ける量である。「統計的分析」という用語は、一般化または推測を行う処理、予測モデルの変数の値を決定する処理、データを要約する１以上のメトリクスを決定する処理、またはデータの１以上の側面または主題を分類する目的でデータを分析する処理を指す。
【００４６】
「第三者」は、Ｓｏｃｏｃｏプラットフォームを所有または制御するエンティティと密接な関係にないエンティティを指す。第三者は一般にコミュニカントとＳｏｃｏｃｏプラットフォームの所有者の間のどんな契約とも無関係である。
【００４７】
本明細書で使用されるように、「含む（ｉｎｃｌｕｄｅ）」という用語は、含むを意味するがそれに限定されず、「含むこと（ｉｎｃｌｕｄｉｎｇ）」は含むことを意味するがそれに限定されず、「基づく」は少なくとも一部は基づくことを意味する。
【００４８】
ＩＩ．概要
Ａ．例示的動作環境
１．はじめに
本明細書で説明される実施形態は、仮想コミュニケーション環境で移動し対話するための改良されたシステムおよび方法を提供する。これらの実施形態は、ユーザが仮想エリアを移動できるようにする移動（ｎａｖｉｇａｔｉｏｎ）コントロール、およびユーザが仮想エリア内の別のコミュニカントと対話できるようにする対話コントロールを含む対話を提供する。
【００４９】
図１は、ネットワーク１８により相互接続される第１のクライアント・ネットワーク・ノード１２と、第２のクライアント・ネットワーク・ノード１４と、仮想環境創造者１６とを含む例示的ネットワークコミュニケーション環境１０の一実施形態を示す。第１のクライアント・ネットワーク・ノード１２は、コンピュータに読み取り可能なメモリ２０と、プロセッサ２２と、入出力（Ｉ／Ｏ）ハードウェア２４とを含む。プロセッサ２２は、メモリ２０内に記憶される少なくとも１つのコミュニケーションアプリケーション２６を実行する。第２のクライアント・ネットワーク・ノード１４は、一般に第１のクライアント・ネットワーク・ノード１２と実質的に同じように構成される。仮想環境創造者１６は、ネットワーク・インフラストラクチャ・サービス環境３０を提供する少なくとも１つのサーバ・ネットワーク・ノード２８を含む。コミュニケーションアプリケーション２６およびネットワーク・インフラストラクチャ・サービス環境３０は共に、空間仮想コミュニケーション環境（本明細書では単に「仮想環境」と呼ばれる）を生成するためのプラットフォーム（本明細書では「プラットフォーム」と呼ばれる）を提供する。
【００５０】
一部の実施形態では、ネットワーク・インフラストラクチャ・サービス環境３０は、仮想エリアアプリケーション３４に従って仮想エリア３２内の第１のクライアントノード１２および第２のクライアントノード１４のセッションを管理する。仮想エリアアプリケーション３４は、仮想エリア３２によりホストとして処理され、仮想エリア３２の記述を含む。第１のクライアント・ネットワーク・ノード１２および第２のクライアント・ネットワーク・ノード１４上で動作するコミュニケーションアプリケーション２６は、ネットワーク・インフラストラクチャ・サービス環境３０から受信されるデータに従って仮想エリア３２の個々の視野を提示し、コミュニカントから指令を受信するための個々のインタフェースを提供する。コミュニカントは、一般に仮想エリア３２内で個々のアバタにより表され、アバタは、コミュニカントにより自分の個々のネットワークノードで入力される指令に応答して仮想エリア３２を動き回る。仮想エリア３２の各コミュニカントの視野は、一般にコミュニカントのアバタの眺めから提示され、この眺めはコミュニカントにより体験される没入のレベルを増大させる。各コミュニカントは、一般に自分自身のアバタの周囲の仮想エリア３２のどの部分も見ることができる。一部の実施形態では、コミュニケーションアプリケーション２６は、仮想エリア３２内のコミュニカントのアバタの位置に基づき、第１のクライアント・ネットワーク・ノード１２および第２のクライアント・ネットワーク・ノード１４と、仮想エリア３２を共有する別のネットワークノードとの間のリアルタイム・データ・ストリーム接続を確立する。
【００５１】
ネットワーク・インフラストラクチャ・サービス環境３０は、仮想エリア内の対話コミュニカントのレコード３８を含む関係データベース３６も保持する。各対話レコード３８は、仮想エリア内の１以上のコミュニカント間の対話の状況を記述する。
【００５２】
２．ネットワーク環境
ネットワーク１８は、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、および広域ネットワーク（ＷＡＮ）（たとえばインターネット）のいずれかを含みうる。ネットワーク１８は、一般にネットワークノード間の多種多様な異なる媒体タイプ（たとえば、テキスト、音声、オーディオ、およびビデオ）の伝送をサポートする、いくつかの異なるコンピューティングプラットフォームおよび転送設備を含む。
【００５３】
コミュニケーションアプリケーション２６（図１を参照のこと）は、一般に、管理ポリシと、（ユーザのプレゼンスのエクスポート、ならびにエリアおよび別のユーザへのユーザの接続に関する環境設定を含む）ユーザ環境設定（ｐｒｅｆｅｒｅｎｃｅ）と、別の設定と一緒に、別のネットワークノードとのリアルタイム接続の管理に影響を及ぼすローカル構成を定義するソフトウェア資源およびハードウェア資源を含むクライアント・ネットワーク・ノード上で動作する。ネットワークノード間のネットワーク接続は、ピア・ツー・ピア・アーキテクチャと、サーバ介在アーキテクチャと、ピア・ツー・ピア・アーキテクチャとサーバ介在アーキテクチャの態様を結合する混成アーキテクチャとを含む様々な異なるストリーム処理トポロジで配置されることがある。これらのタイプの例示的トポロジが、いずれも２００７年１０月２４日に出願された、米国出願第１１／９２３，６２９号明細書および第１１／９２３，６３４号明細書において説明されている。
【００５４】
３．ネットワーク・インフラストラクチャ・サービス
ネットワーク・インフラストラクチャ・サービス環境３０は、一般にクライアントノード１２、１４と別のネットワークノードとの間のネットワーク接続を確立し管理する処理において、コミュニケーションアプリケーション２６と協力する、１以上のネットワーク・インフラストラクチャ・サービスを含む（図１を参照のこと）。ネットワーク・インフラストラクチャ・サービスは、単一のネットワークノード上で実行されることも、多数のネットワークノードにわたり分散されることもある。ネットワーク・インフラストラクチャ・サービスは、一般に１以上の専用ネットワークノード（たとえば、ルーティングおよび切替などの１以上のエッジサービスを実行するサーバコンピュータまたはネットワーク装置）上で実行される。しかし、一部の実施形態では、ネットワーク・インフラストラクチャ・サービスの１以上が、コミュニカントのネットワークノードの少なくとも１つで実行される。ネットワーク・インフラストラクチャ・サービス環境３０の例示的実施形態に含まれるネットワーク・インフラストラクチャ・サービスの中には、アカウントサービスと、セキュリティサービスと、エリアサービスと、ランデブサービスと、対話サービスとがある。
【００５５】
アカウントサービス
アカウントサービスは、仮想環境用のコミュニカントのアカウントを管理する。アカウントサービスはまた、クライアント・ネットワーク・ノードにより自身をネットワーク・インフラストラクチャ・サービスのどれかに対して認証するために使用されることができる認証トークンの作成および発行を管理する。
【００５６】
セキュリティサービス
セキュリティサービスは、コミュニカントが仮想環境の資産および別の資源にアクセスするのを制御する。セキュリティサービスにより実現されるアクセス制御法は、一般に能力の１以上（この場合、適切な能力または権限を有するエンティティにアクセスが許可される）、およびアクセス制御リスト（この場合、リスト上に存在する識別を有するエンティティにアクセスが許可される）に基づく。特定のコミュニカントが、資源へのアクセスを許可された後、そのコミュニカントは一般に別のネットワーク・インフラストラクチャ・サービスにより提供される機能を使用して、ネットワークコミュニケーション環境１０内で対話する。
エリアサービス
【００５７】
エリアサービスは仮想エリアを管理する。一部の実施形態では、エリアサービスは、１組の制約条件４７に支配される仮想エリアアプリケーション３４に従って、第１のクライアント・ネットワーク・ノード１２上および第２のクライアント・ネットワーク・ノード１４上で動作するコミュニケーションアプリケーション２６を遠隔で構成する（図１を参照のこと）。制約条件４７は、一般に仮想エリアへのアクセスに対する制御を含む。アクセス制御は、一般に能力の１以上（この場合、適切な能力または権限を有するコミュニカントまたはクライアントノードにアクセスが許可される）およびアクセス制御リスト（この場合、リスト上に存在する識別を有するコミュニカントまたはクライアントノードにアクセスが許可される）に基づく。
【００５８】
エリアサービスは、要求するエンティティの能力に支配される仮想エリアに関連するネットワーク接続を管理し、仮想エリアのための大域状態情報を保持し、仮想エリア３２により規定される状況で共有コミュニケーションセッションに参加しているクライアント・ネットワーク・ノードのためのデータサーバの役割も果たす。大域状態情報は、仮想エリア内にあるすべてのオブジェクトのリストと、仮想エリア内のそのオブジェクトの個々の位置とを含む。エリアサービスは、クライアント・ネットワーク・ノードを構成する命令を送信する。エリアサービスはまた、コミュニケーションセッションに加わるように要求する別のクライアント・ネットワーク・ノードへの初期化情報を登録し送信する。この処理で、エリアサービスは、仮想エリアアプリケーション３４に従って、クライアント・ネットワーク・ノード上に仮想エリア３２を描写するのに必要とされる構成要素（たとえばプラグイン）のリストを、それぞれの加わるクライアント・ネットワーク・ノードに送信することがある。エリアサービスは、コミュニケーション障害が発生した場合、クライアント・ネットワーク・ノードが大域状態に同期することができることも保証する。エリアサービスは、一般に仮想エリアに関連する管理規則により仮想エリアとのコミュニカント対話を管理する。
【００５９】
ランデブサービス
ランデブサービスは、プレゼンス情報の収集、記憶、および分配を管理し、要求するエンティティの能力に支配されるネットワークノードが互いにコミュニケーションをとる仕組み（たとえば、接続ハンドルの分配を管理することによる）を提供する。ランデブサービスは、一般にプレゼンスデータベース内にプレゼンス情報を記憶する。ランデブサービスは、一般にコミュニカントのプライバシ環境設定により互いとのコミュニカント対話を管理する。
【００６０】
対話サービス
対話サービスは、コミュニカント間の対話のレコード３８を含む関係データベース３６を保持する。コミュニカント間のあらゆる対話について、ネットワーク・インフラストラクチャ・サービス環境３０の１以上のサービス（たとえば、エリアサービス）が、対話データを対話サービスに送信する。それに応答して、対話サービスは１以上の個々の対話レコードを生成し、それらを関係データベースに記憶する。各対話レコードは、１対のコミュニカント間の対話の状況を記述する。たとえば、一部の実施形態では、対話レコードが、コミュニカントのそれぞれに対する識別子と、対話の場所（たとえば、仮想エリアインスタンス）に対する識別子と、対話場所の階層の記述（たとえば、対話部屋がより広いエリアとどのように関係するかの記述）と、対話の開始時間および終了時間と、対話中に共有または記録されるすべてのファイルおよび別のデータストリームのリストとを含む。したがって、リアルタイム対話ごとに、対話サービスは関与した（たとえば、入場するおよび退場する）コミュニカントと、活動化された／非活動化されたオブジェクトと、共有されたファイルとに関して、その対話がいつ起こったか、その対話がどこで起こったか、そして対話中に何が起きたかを追跡する。
【００６１】
対話サービスは、要求するエンティティの能力に支配される関係データベース３６への問合せもサポートする。対話サービスは、対話データベースレコードへの問合せの結果を仮想エリアに基づきソートされた順序で（たとえば、最も頻繁な、または最も新しい）提示する。問い合わせ結果は、どちらかの仮想エリアでコミュニカントが会った連絡先の頻度ソートだけでなく、仮想エリアに関係なくコミュニカントがだれと会ったかについてのソートと、コミュニカントが最も頻繁に訪れる仮想エリアのソートとを駆動するために使用されることがある。問い合わせ結果は、アプリケーション開発者により、関係に基づきある種のタスクを自動化する発見的システムの一部としても使用されることがある。このタイプの発見的方法の一例が、特定の仮想エリアを６回以上訪問したコミュニカントがデフォルトでノックせずに入場することができるようにする発見的方法、または特定の時間にエリア内にいたコミュニカントが、同じ時間に同じエリアに存在した別のコミュニカントにより作成されたファイルを修正および削除することができるようにする発見的方法である。関係データベース３６への問合せは、別の検索と結合されることがある。たとえば、関係データベースへの問合せは、ネットワーク・インフラストラクチャ・サービス環境３０のドメイン外にあるコミュニケーションシステム（たとえば、Ｓｋｙｐｅ、Ｆａｃｅｂｏｏｋ、およびＦｌｉｃｋｒ）を使用する連絡先との対話のために生成された連絡先履歴データへの問合せと結合されることがある。
【００６２】
４．仮想エリア
コミュニケーションアプリケーション２６およびネットワーク・インフラストラクチャ・サービス環境３０は、一般に仮想エリアのインスタンスにより規定されるコミュニケーション状況でのネットワークノードとのリアルタイム接続を管理する。仮想エリアインスタンスは、抽象的な座標に関して規定される抽象的（非幾何学的）な仮想空間に対応することがある。あるいは、仮想エリアインスタンスは、特定の可視化に関連付けられる１次元、２次元、または３次元の座標に関して規定される可視仮想空間に対応することがある。抽象的な仮想エリアは、個々の可視化に関連付けられることも、関連付けられないこともあるが、可視仮想エリアは個々の可視化に関連付けられる。
【００６３】
一部の実施形態では、空間仮想コミュニケーション環境は、仮想エリア（本明細書では「場所」または「位置」とも呼ばれる）およびオブジェクトの空間階層としてモデル化される。空間階層は、トップレベルからボトムレベルまでの範囲の順序づけられた一続きのレベルを含む。空間階層のレベルの連続する１つにおける場所のそれぞれが、レベルの先行する１つにおける場所の個々の１つに含まれる。空間階層内のオブジェクトのそれぞれが、場所の個々の１つに含まれる。空間階層のレベルは、一般に地理上の隠喩、建築上の隠喩、または都市の隠喩と矛盾しない個々の可視化に関連付けられ、それに従ってラベルをつけられる。各仮想エリアのゾーンは、個々のメッシュにより規定され、メッシュの一部は、オブジェクト（たとえば、ビュースクリーンオブジェクトおよび会議をしているオブジェクトなどのアバタおよび支持者（ｐｒｏｐ））を含みうる物理的環境（たとえば、建物に関連付けられる部屋および中庭などの空間）の要素を規定する。
【００６４】
上記で説明されるように、コミュニカントは、一般に関連する可視化を有する、仮想エリア内の個々のアバタにより表される。アバタは、コミュニカントの個々のネットワークノードでコミュニカントにより入力される指令に応答して、仮想エリアを動き回る。一部の実施形態では、仮想エリアインスタンスのコミュニカントの視野が、一般にコミュニカントのアバタの眺めから表され、各コミュニカントは、一般に自分自身のアバタの周囲の可視仮想エリアのどの部分でも見ることができ、コミュニカントにより体験される没入のレベルを高める。
【００６５】
図２は、コンピュータシステム４８により実現される例示的ネットワークノードの一実施形態を示す。コンピュータシステム４８は、表示モニタ５０と、コンピュータマウス５２と、キーボード５４と、スピーカ５６、５８と、マイクロホン６０とを含む。表示モニタ５０は、グラフィカル・ユーザ・インタフェース６２を表示する。グラフィカル・ユーザ・インタフェース６２は、多数のウィンドウ、アイコン、およびポインタ６４を含みうるウィンドウベースのグラフィカル・ユーザ・インタフェースである。例示の実施形態では、グラフィカル・ユーザ・インタフェース６２は、美術館を表す３次元可視化に関連する共有仮想エリア６６の２次元描写を提示する。コミュニカントは仮想エリア６６内で個々のアバタ６８、７０、７２により表され、アバタのそれぞれが仮想エリア６６の状況の中で個々の役割（たとえば、館長、美術家、および来館者）を有することがある。
【００６６】
以下に詳細に説明されるように、仮想エリア６６は、仮想エリア６６内のアバタ６８〜７２により表されるネットワークノード間のリアルタイム・データ・ストリームの切替を管理する個々の規則に関連するゾーン７４、７６、７８、８０、８２を含む（一般的なコミュニケーションセッション中に、図２のゾーン７４〜８２の境界を定める点線はコミュニカントに見えないが、そのようなゾーン境界に関連する見える手がかりがある場合がある）。切替規則は、仮想エリア６６のゾーン７４〜８２内のコミュニカントのアバタ６８〜７２の位置に基づき、ネットワークノードのそれぞれで実行されるローカル接続処理がどのように別のネットワークノードとのコミュニケーションを確立するかを規定する。
【００６７】
仮想エリアは、仮想エリアの幾何学的要素の記述と、切替規則および管理規則を含む１以上の規則とを含む仕様により規定される。切替規則は、ネットワークノード間のリアルタイムストリーム接続を管理する。管理規則は、仮想エリア自体や、仮想エリアを有する領域や、仮想エリア内部のオブジェクトなどの資源へのコミュニカントのアクセスを制御する。一部の実施形態では、仮想エリアの幾何学的要素はＣＯＬＬＡＤＡ−Ｄｉｇｉｔａｌ  Ａｓｓｅｔ  Ｓｃｈｅｍａ  Ｒｅｌｅａｓｅ  １．４．１  ２００６年４月仕様書（ｈｔｔｐ：／／ｗｗｗ．ｋｈｒｏｎｏｓ．ｏｒｇ／ｃｏｌｌａｄａ／から入手可能）に従って記述され、切替規則は、米国出願第１１／９２３，６２９号明細書および第１１／９２３，６３４号明細書において説明されるＣＯＬＬＡＤＡ  Ｓｔｒｅａｍｓ  Ｒｅｆｅｒｅｎｃｅ仕様書に従って拡張可能なマーク付け言語（ＸＭＬ）テキスト形式（本明細書では仮想空間記述形式（ｖｉｒｔｕａｌ  ｓｐａｃｅ  ｄｅｓｃｒｉｐｔｉｏｎ  ｆｏｒｍａｔ、ＶＳＤＬ）と呼ばれる）を使用して記述される。
【００６８】
仮想エリアの幾何学的要素は、一般に仮想エリアの物理的幾何形状および衝突幾何形状（ｃｏｌｌｉｓｉｏｎ  ｇｅｏｍｅｔｒｙ）を含む。物理的幾何形状は仮想エリアの形状を記述する。物理的幾何形状は、一般に三角形、四角形、または多角形の面から形成される。仮想エリアのためのよりリアルな外観を作り出すために、色およびテクスチャが物理的幾何形状上にマッピングされる。たとえば、可視幾何形状上に光を描き、そして光の近傍のテクスチャ、色、または輝度を修正することにより、照明効果が提供されることがある。衝突幾何形状は、オブジェクトが仮想エリア内を動くことができる方法を決定する、目に見えない面を記述する。衝突幾何形状は、可視幾何形状と一致することも、可視幾何形状のより単純な近似に相当することも、仮想エリア設計者のアプリケーション特有要件に関係することもある。
【００６９】
切替規則は、一般に仮想エリア内の位置に関して、リアルタイム・データ・ストリームのソースとシンクとを接続するための条件の記述を含む。各規則は、一般に規則が適用されるリアルタイム・データ・ストリーム・タイプと、規則が適用される仮想エリア内の１つの位置または複数の位置とを規定するいくつかの属性を含む。一部の実施形態では、規則のそれぞれが任意選択的に、ソースの所要の役割と、シンクの所要の役割と、ストリームの優先レベルと、要求されるストリームを処理するトポロジとを指定する１以上の属性を含みうる。一部の実施形態では、仮想エリアの特定の部分について明示的な切替規則が規定されない場合、１以上の暗黙のまたはデフォルトの切替規則が仮想エリアのその部分に適用されることがある。１つの例示的デフォルト切替規則が、ポリシ規則に支配される、あらゆるソースをエリア内部の互換性のあるあらゆるシンクに接続する規則である。ポリシ規則は、全体的にクライアントノード間のすべての接続に、または個々のクライアントノードとの個々の接続だけに適用されることがある。ポリシ規則の一例が、仮想エリア内で互いに規定された距離（または半径）以内にある個々のオブジェクトに関連する互換性のあるシンクとソースとの接続だけを許容する接近ポリシ規則である。
【００７０】
一部の実施形態では、だれが仮想エリアへのアクセス権を有するか、だれがそのコンテンツへのアクセス権を有するか、仮想エリアのコンテンツへのそのアクセス権の範囲はどのくらいか（たとえば、ユーザがコンテンツを使って何をすることができるか）、および、それらのコンテンツにアクセスしたその後の結果はどうか（たとえば、監査記録および支払要件などのレコード保管）を制御するために、管理規則が仮想エリアに関連付けられる。一部の実施形態では、仮想エリア全体、または仮想エリアのゾーンが、「管理メッシュ（ｇｏｖｅｒｎａｎｃｅ  ｍｅｓｈ）」に関連付けられる。一部の実施形態では、米国出願第１１／９２３，６２９号明細書および第１１／９２３，６３４号明細書において説明されるゾーンメッシュの実現に類似する方法により管理メッシュが実現される。管理メッシュにより、ソフトウェアアプリケーション開発者が管理規則を仮想エリア、または仮想エリアのゾーンと関連付けることができるようになる。このことが、仮想エリア内のあらゆるファイルに対して個々の権限を生成する必要性を回避し、状況に応じて同じ文書を別の仕方で扱う必要があるときに潜在的に生じる可能性がある複雑に対処する必要性を回避する。
【００７１】
一部の実施形態では、仮想エリアが、仮想エリアの１以上のゾーンを、デジタル著作権管理（ｄｉｇｉｔａｌ  ｒｉｇｈｔｓ  ｍａｎａｇｅｍｅｎｔ、ＤＲＭ）機能と関連付ける管理メッシュに関連付けられる。ＤＲＭ機能は、仮想エリアの１以上へのアクセス、あるいは仮想エリア内部の１以上のゾーンへのアクセス、あるいは仮想エリア内部のオブジェクトへのアクセスを制御する。ＤＲＭ機能は、コミュニカントが仮想エリア内部の管理メッシュ境界を横切るたびにトリガされる。ＤＲＭ機能は、トリガする動作が許可されているかどうか、また許可されている場合、許可される動作の範囲がどれくらいかと、支払いが必要とされるかどうかと、監査レコードが生成される必要があるかどうかとを決定する。仮想エリアの例示的な実装では、コミュニカントが仮想エリア内に入場することができる場合、コミュニカント自身が、仮想エリアに関連付けられた文書すべてに、文書の操作と、文書の閲覧と、文書のダウンロードと、文書の削除と、文書の修正と、文書の再アップロードとを含む、仮想エリアに関連するすべての文書に対して動作を行うことができるように、関連する管理メッシュが構成される。このやり方では、仮想エリアは、仮想エリアにより規定される状況で共有され議論された情報のためのリポジトリになることがある。
【００７２】
仮想エリアの仕様に関する追加の詳細が、（２００８年４月４日出願の）米国出願第６１／０４２７１４号明細書と、（２００７年１０月２４日出願の）第１１／９２３，６２９号明細書と、（２００７年１０月２４日出願の）第１１／９２３，６３４号明細書とにおいて説明されている。
【００７３】
５．クライアントノードのアーキテクチャ
コミュニカントは、一般にクライアント・ネットワーク・ノードからネットワーク１８に接続する。クライアント・ネットワーク・ノードは、一般に汎用コンピュータシステムまたは専用コミュニケーション・コンピュータ・システム（またはネットワーク対応のビデオ・ゲーム・コンソールなどの「コンソール」）により実現される。クライアント・ネットワーク・ノードは、別のネットワークノードとのリアルタイム・データ・ストリーム接続を確立するコミュニケーション処理を実行し、一般にコミュニカントにより入力される各仮想エリアの視野を提示する可視化描画処理を実行する。
【００７４】
図３は、コンピュータシステム１２０により実現されるクライアント・ネットワーク・ノードの一実施形態を示す。コンピュータシステム１２０は、処理ユニット１２２、システムメモリ１２４と、コンピュータシステム１２０の様々な構成要素に処理ユニット１２２を結合するシステムバス１２６とを含む。処理ユニット１２２は、１以上のデータプロセッサを含むことがあり、データプロセッサはそれぞれ、様々な市販のコンピュータプロセッサの任意の１つの形態をとることがある。システムメモリ１２４は、ソフトウェアアプリケーションに利用可能なアドレスを規定するソフトウェア・アプリケーション・アドレッシング空間に一般に関連する１以上のコンピュータに読み取り可能な媒体を含む。システムメモリ１２４は、コンピュータシステム１２０のための始動ルーチンを含む基本入出力システム（ＢＩＯＳ）を記憶する読出し専用メモリ（ＲＯＭ）と、ランダム・アクセス・メモリ（ＲＡＭ）とを含みうる。システムバス１２６は、メモリバスのことも、周辺バスのことも、ローカルバスのこともあり、ＰＣＩ、ＶＥＳＡ、Ｍｉｃｒｏｃｈａｎｎｅｌ、ＩＳＡ、およびＥＩＳＡを含む様々なバスプロトコルのいずれかと互換性があることがある。コンピュータシステム１２０は、システムバス１２６に接続される永続性記憶メモリ１２８（たとえば、ハードドライブ、フロッピドライブ、ＣＤ  ＲＯＭドライブ、磁気テープドライブ、フラッシュ・メモリ・デバイス、およびデジタル・ビデオ・ディスク）も含み、データとデータ構造とコンピュータに実行可能な命令とのための不揮発性記憶装置または永続性記憶装置を提供する１以上のコンピュータに読み取り可能な媒体ディスクを含む。
【００７５】
コミュニカントは、１以上の入力装置１３０（たとえば、１以上のキーボード、コンピュータマウス、マイクロホン、カメラ、ジョイスティック、Ｗｉｉの入力装置のような物理的動きセンサ、およびタッチパッド）を使用してコンピュータシステム１２０と対話する（たとえば、指令またはデータを入力する）ことがある。表示モニタ１３２上でコミュニカントに提示されるグラフィカル・ユーザ・インタフェース（ＧＵＩ）を介して情報が提示されることがあり、表示モニタ１３２は表示コントローラ１３４により制御される。コンピュータシステム１２０は、別の入出力ハードウェア（たとえば、スピーカおよびプリンタなどの周辺出力装置）も含みうる。コンピュータシステム１２０は、ネットワークアダプタ１３６（「ネットワーク・インタフェース・カード」またはＮＩＣとも呼ばれる）を介して別のネットワークノードに接続する。
【００７６】
アプリケーション・プログラミング・インタフェース１３８（ＡＰＩ）と、オペレーティングシステム（ＯＳ）１４０（たとえば、米国ワシントン州レドモンドのマイクロソフト社から入手可能なＷｉｎｄｏｗｓ（登録商標）ＸＰオペレーティングシステム）と、コミュニケーションアプリケーション２６の一実施形態１４２と、ドライバ１４３（たとえば、ＧＵＩドライバ）と、リアルタイム・データ・ストリームを送受信するためのネットワーク・トランスポート・プロトコル１４４と、データ１４６（たとえば、入力データ、出力データ、プログラムデータ、レジストリ１４８、および構成設定）とを含むいくつかのプログラムモジュールが、システムメモリ１２４内に記憶されることがある。
【００７７】
オペレーティングシステム１４０は、コンピュータシステムのランタイム実行環境を生成するための基本オペレーティング・システム・サービス（たとえば、メモリ管理、プロセスおよびスレッドの管理、セキュリティ、入出力、ならびにプロセス間通信）を提供するエグゼクティブを含む。レジストリ１４８は、一般に以下の情報を、すなわちシステムをブートし構成するために必要なパラメータと、オペレーティングシステム１４０の動作を制御するシステム全体のソフトウェア設定と、セキュリティデータベースと、ユーザ当たりのプロファイル設定とを含む。ネイティブ・オペレーティング・システム（ＯＳ）のアプリケーション・プログラミング・インタフェース（ＡＰＩ）が、コミュニケーションアプリケーション１４２および別のユーザアプリケーションにエグゼクティブの基本オペレーティング・システム・サービスを公開する。本明細書で使用されるように、「サービス」（または「サービスモジュール」）という用語は、１組の１以上の機能を提供するオペレーティングシステムのコンポーネントを指す。
【００７８】
一部の実施形態では、コミュニケーションアプリケーション１４２は、仮想エリアの個々の視野と、表示モニタ１３２上への仮想エリア内のオブジェクトの提示を制御する処理と、クライアント・ネットワーク・ノード１２０とクライアント・ネットワーク・ノード１４と仮想環境創造者１６との間のリアルタイム・データ・ストリームの切替を制御する処理とを含む。コミュニケーションアプリケーション１４２は、ＧＵＩドライバおよびユーザ入力１３０とインタフェースをとって、仮想エリアの視野を提示し、コミュニカントがコミュニケーションアプリケーション１４２の動作を制御することができるようにする。
【００７９】
コミュニケーションアプリケーション１４２の実施形態は、特定の任意のハードウェア、ファームウェア、またはソフトウェアの構成に限定されない１以上の個別モジュール（またはデータ処理構成要素）により実現されることがある。一般に、これらのモジュールは、デジタル電子回路（たとえば、デジタル信号プロセッサ（ＤＳＰ）などの特定用途向け集積回路）、または、コンピュータのハードウェア、ファームウェア、デバイスドライバもしくはソフトウェアを含む、任意のコンピューティング環境もしくはデータ処理環境において実現されることがある。一部の実施形態では、モジュールの機能が、単一のデータ処理構成要素に結合される。一部の実施形態では、モジュールの１以上のそれぞれの個々の機能が、個々の１組の多数のデータ処理構成要素により実行される。一部の実装では、コミュニケーションアプリケーション１４２の実施形態により実行される方法を実現するための処理命令（たとえば、コンピュータソフトウェアなどの機器読み取り可能なコード）だけでなく、コミュニケーションアプリケーション１４２が生成するデータが、１以上の機器読み取り可能な媒体内に記憶される。これらの命令およびデータを実際に具現化するのに適した記憶装置は、たとえば、ＥＰＲＯＭやＥＥＰＲＯＭやフラッシュメモリ装置などの半導体メモリ装置と、内蔵ハードディスクおよび着脱式ハードディスクなどの磁気ディスクと、光磁気ディスクと、ＤＶＤ−ＲＯＭ／ＲＡＭと、ＣＤ−ＲＯＭ／ＲＡＭとを含むすべての形態の不揮発性コンピュータに読み取り可能なメモリを含む。コミュニケーションアプリケーション１４２の実施形態は、パーソナルコンピューティング装置（たとえば、デスクトップコンピュータ、モバイルコンピュータ、およびコミュニケーション装置）と、ネットワーク装置（たとえば、サーバコンピュータ、ルータ、スイッチ、およびハブ）と、ゲームコンソールと、ケーブルＴＶおよびハイブリッド・セット・トップ・ボックスと、モデムとを含む多種多様な電子装置の任意の１つにより実現されることがある。
【００８０】
一部の実施形態では、ネットワーク１８を介するコミュニケーションが、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）に従って行われる。プロトコルのＴＣＰ部分は、メッセージをより小さなパケットに分割し、コミュニケーションネットワークの相手側でパケットを再組立し、道筋に沿って失われたいかなるパケットも再送信することにより移送機能を提供する。プロトコルのＩＰ部分は、宛先ネットワークとその宛先ネットワークにあるターゲットノードとのためのアドレスをデータパケットに割り当てることによりルーティング機能を提供する。ＴＣＰ／ＩＰプロトコルを使用して伝達される各データパケットは、ＴＣＰおよびＩＰの情報を含むヘッダ部を含む。ＩＰプロトコルは、コミュニケーションスタックの上位層へのパケット配送のどんな保証も提供しない。一方、ＴＣＰプロトコルは、保証された順序正しいパケット配送の接続指向のエンド・ツー・エンド移送サービスを提供する。このように、ＴＣＰプロトコルは、信頼性のあるトランスポート層接続を提供する。
【００８１】
別の実施形態では、ネットワーク１８を介したコミュニケーションが、ＵＤＰ／ＩＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）に従って行われることがある。ＵＤＰは、信頼性のある配送が必要とされない状況でＴＣＰの代わりに使用されることがある。たとえば、ＵＤＰ／ＩＰは、以下の理由、すなわち再送信する時間がない、または全体のデータ品質のどんな劣化も受け入れることができるという理由のいずれかのために、損失したデータパケットが単に無視されるリアルタイム・オーディオ・トラフィックおよびリアルタイム・ビデオ・トラフィック用に使用されることがある。
【００８２】
一部の実施形態が、Ｊａｖａ（登録商標）  Ｍｅｄｉａ  Ｆｒａｍｅｗｏｒｋ（ＪＭＦ）を使用することがあり、ＪＭＦは、装置捕捉、符号化、復号、描画、およびＲＴＰ（Ｒｅａｌ−Ｔｉｍｅ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）をサポートする。ピア・ツー・ピア・ネットワーキング・フレームワーク、ＴＣＰソケットだけをまたはＵＤＰと組み合わせて使用する集中サーバ、あるいはマルチキャストプロトコルを含む、エリア・クライアント・ネットワーク・ノード５２〜５６の間のＲＴＰデータを送受信する際に様々なネットワークプロトコルが使用されることがある。
【００８３】
実行環境は、開放型システム間相互接続（ＯＳＩ）参照モデルのデータリンク層および物理層に対応することがあるハードウェアリンク層およびアクセスプロトコルも含む。
【００８４】
例示された実施形態では、クライアント・ネットワーク・ノード１２０、１４と仮想環境創造者１６との間のコミュニケーションが、ＴＣＰ／ＩＰプロトコルに従って行われる。この実施形態では、コンピュータシステムのネットワークインタフェースのそれぞれがＴＣＰ／ＩＰを使用してコミュニケーションをとる前に、コンピュータシステムがそのネットワークインタフェースのそれぞれに対してＩＰアドレスを決定する。この処理は、コンピュータシステムのネットワークインタフェースの１以上のためにＩＰアドレスを動的に得るためにサーバと連絡をとることを伴うことがある。コンピュータシステムは、動的ホスト構成プロトコル（ＤＨＣＰ）を使用して、ＤＨＣＰサーバにＩＰアドレス要求を発行することがある。この点で、コンピュータシステムは示されたネットワークインタフェースへのＩＰアドレスの割り当てを要求する、システム起動時におけるＤＨＣＰ要求パケットをブロードキャストする。ＤＨＣＰ要求パケットを受信すると同時に、ＤＨＣＰサーバは、示されたネットワークインタフェースで使用するためのＩＰアドレスをコンピュータシステムに割り当てる。次に、コンピュータシステムは、ＩＰプロトコルを使用してコミュニケーションをとるとき、そのネットワークインタフェースと関連付けるＩＰアドレスとして、サーバからの応答内のＩＰアドレスを記憶する。
【００８５】
６．サーバ・ノード・アーキテクチャ
一部の実施形態では、仮想環境創造者１６の１以上のサーバ・ネットワーク・ノードは、各サーバ・ネットワーク・ノードが一般に１以上のサーバ・ソフトウェア・アプリケーションを含むことを除き、クライアント・ネットワーク・ノード１２０と同じタイプの個々の汎用コンピュータシステムにより実現される。
【００８６】
別の実施形態では、仮想環境創造者１６の１以上のサーバ・ネットワーク・ノードが、エッジサービス（たとえば、ルーティングおよび切替）を実行する個々のネットワーク装置により実現される。
【００８７】
７．システムデータベースおよび記憶設備
システムデータベースおよび記憶設備は、プラットフォームにより使用される様々な種類の情報を記憶する。一般に記憶設備により記憶される例示的情報は、プレゼンスデータベースと、関係データベースと、アバタデータベースと、実際のユーザ識別（ＲＵＩＤ）データベースと、アート・キャッシュ・データベースと、エリア・アプリケーション・データベースとを含む。この情報は、単一ネットワークノード上に記憶されることも、多数のネットワークノードにわたり分散されることもある。
【００８８】
８．ファイルの関連付けおよび記憶
ネットワーク・インフラストラクチャ・サービス環境３０は、データファイルを場所と関連付ける。Ｓｏｃｏｃｏの場所にはそれと関連付けられた任意のデータ（すなわち、ファイルおよびストリーム）がある。ユーザがＳｏｃｏｃｏの場所で文書を共有する場合、ファイルは部屋と関連付けられ、権限が与えられたユーザにより削除されるまでそこに永続する。
【００８９】
図４は、ネットワーク・インフラストラクチャ・サービス環境３０が、共有データファイルを処理する方法の一実施形態を示す。図４の方法によれば、対話サービスが、個々のネットワークノード上で動作し、そして１以上の仮想エリアを含みコミュニカント間のリアルタイムコミュニケーションをサポートする仮想コミュニケーション環境を共有するコミュニカントから受信されるデータファイルと、場所属性値とを関連付ける（図４、ブロック１５０）。この処理では、１以上の仮想エリアの個々の１つ内のコミュニカントの個々の１人により共有されるデータファイルのそれぞれに対して、対話サービスが、データファイルが共有された個々の仮想エリアを識別する場所属性値の個々の１つと、個々のデータファイルを識別する個々のデータファイル識別子とを含む個々の対話レコードを生成する。ネットワーク・インフラストラクチャ・サービス環境３０は、関連する場所属性値に基づき、コミュニカント間のデータファイルの共有を管理する（図４、ブロック１５２）。
【００９０】
一部の実施形態では、ネットワーク・インフラストラクチャ・サービス環境３０は、仮想エリア内の別のコミュニカントの何人かとファイルを共有する指示をユーザが受領するのに応答して、ユーザのネットワークノード上に記憶されるファイルを仮想エリアと関連付ける。
【００９１】
様々な方法により文書が共有されうる。第１の例示的事例では、別のユーザと共有されている、仮想エリア（本明細書ではＳｏｃｏｃｏの場所とも呼ばれる）内の可視スクリーンに文書を向けることにより、ユーザにより文書が共有される。第２の例示的事例では、共有Ｓｏｃｏｃｏの場所で文書を見ることにより文書が共有され、Ｓｏｃｏｃｏの場所では、サーバプロセスがエリアサーバ上で共有アプリケーションプログラム（たとえば、Ｗｏｒｄ、Ｅｘｃｅｌ、ＰｏｗｅｒＰｏｉｎｔなどのＭｉｃｒｏｓｏｆｔ  Ｏｆｆｉｃｅアプリケーションプログラム）を実行することにより文書が提示される。第３の例示的事例では、共有Ｓｏｃｏｃｏの場所に関連するファイルストアに文書をアップロードすることにより文書が共有される。第４の例示的事例では、文書をファイルストアにアップロードすることにより文書が共有され、その時点に共有Ｓｏｃｏｃｏの場所にいるだれもが、共有文書のコピーを自動的に受け取る（直接ファイル共有と似ている）。このとき、だれもが文書の自分自身のコピーを有する。説明されたこれら４つの例示的事例の多数を、混成の文書共有事例を作り出すために組み合わせて、調和させることができる。
【００９２】
前段落で説明された第１の事例では、対話の別個の明示的な記録が行われなかった場合、文書と共有Ｓｏｃｏｃｏの場所との永続性のある関連付けがない。前段落で説明された別の事例のそれぞれでは、Ｓｏｃｏｃｏプラットフォームが、共有Ｓｏｃｏｃｏの場所に関連して共有文書の永続性のあるコピーを自動的に記憶する。この処理では、ネットワーク・インフラストラクチャ・サービス環境３０が、ユーザのネットワークノードから、仮想エリアを識別する属性値でインデックスされる別のデータ記憶場所に共有ファイルをコピーする。任意の未来の時間に、ユーザがＳｏｃｏｃｏの場所に再入場し、ユーザが適切な権限を有すると仮定すると、その空間に関連するファイルのリポジトリをブラウズし得る。
【００９３】
一部の実施形態では、だれが場所へのアクセス権を有するか、だれがそのコンテンツへのアクセス権を有するか、場所のコンテンツへのそのアクセスの範囲がどれだけか（たとえば、ユーザがコンテンツに対して何をすることができるか）、および場所のコンテンツにアクセスしたその後の結果はどうか（たとえば、監査記録および支払要件などのレコード保管）を制御するために、管理規則が、共有Ｓｏｃｏｃｏの場所に関連付けられる。
【００９４】
一部の実施形態では、Ｓｏｃｏｃｏの場所全体、またはＳｏｃｏｃｏの場所の領域が「管理メッシュ」に関連付けられる。一部の実施形態では、管理メッシュは、米国出願第１１／９２３，６２９号明細書および第１１／９２３，６３４号明細書により説明されるゾーンメッシュが実現される方法と類似する方法により実現される。管理メッシュにより、開発者が管理規則をＳｏｃｏｃｏの場所、またはＳｏｃｏｃｏの場所の領域と関連付けることができるようになる。このことが、場所内のあらゆるファイルに対する個々の権限を生成する必要性を回避し、状況に応じて同じ文書を別の仕方で扱う必要があるときに潜在的に生じる可能性がある複雑さに対処する必要性を回避する。
【００９５】
一部の実施形態では、Ｓｏｃｏｃｏの場所が、場所の１以上の領域（またはゾーン）をデジタル著作権管理（ＤＲＭ）機能と関連付ける管理メッシュと関連付けられる。ＤＲＭ機能は、場所の１以上、あるいは場所内部の１以上の領域、あるいは場所内部のオブジェクトへのアクセスを制御する。ＤＲＭ機能は、コミュニカントがＳｏｃｏｃｏの場所内部の管理メッシュ境界を横切るたびにトリガされる。ＤＲＭ機能は、トリガする動作が許可されているかどうか、また許可されている場合、許可される動作の範囲がどれくらいかと、支払いが必要とされるかどうかと、監査レコードが生成される必要があるかどうかとを決定する。
【００９６】
Ｓｏｃｏｃｏの場所の例示的実装では、コミュニカントが場所に入場することができる場合、コミュニカント自身が、部屋に関連する文書すべてに、文書の処理、文書の閲覧、文書のダウンロード、文書の削除、文書の修正、および文書の再アップロードを含む、部屋に関連する文書のすべてに動作を行うことができるように、関連する管理メッシュが構成される。
【００９７】
したがって、各Ｓｏｃｏｃｏの場所は、その部屋で共有され議論された情報のためのリポジトリになることができる。
【００９８】
９．記録
Ｓｏｃｏｃｏリアルタイム・コミュニケーション・セッションが記録されることがある。この処理では、Ｓｏｃｏｃｏプラットフォームは、少なくとも１つのコンピュータに読み取り可能な媒体上にマルチトラック記録を記憶する。マルチトラック記録は、仮想エリアの特定の１つ内のコミュニカントの１人以上の対話に関連して、ネットワークノードの１以上との１以上のネットワーク接続を介して伝送される異なるデータタイプのリアルタイム・データ・ストリームを含み、この場合、マルチトラック記録は、リアルタイム・データ・ストリームの異なるデータタイプのそれぞれに対する個々のトラックを含む。一部の実施形態では、Ｓｏｃｏｃｏプラットフォームは、特定の仮想エリアの幾何学的要素の記述を含む特定の仮想エリアの仕様で説明される記録規則に従って、マルチトラック記録を記憶する。一部の事例では、記録がリアルタイムストリーム（オーディオストリーム、ベクトルデータとしてのリアルタイム動き、ファイル共有など）を取り込み、それを対話が起きたＳｏｃｏｃｏの場所でアーカイブする。この処理では、Ｓｏｃｏｃｏプラットフォームは、特定のＳｏｃｏｃｏの場所を識別する場所属性値の個々の１つと、マルチトラック記録を識別する個々のデータファイル識別子とを含む対話記録を生成する。
【００９９】
Ｓｏｃｏｃｏプラットフォームは、オーディオ、動き、チャットなどのマルチ・トラック・ストリームをエリア内で起きたことの再現という形で再生する。この処理では、Ｓｏｃｏｃｏプラットフォームは、個々のストリームを再生し、このことは、固定した視点から記録された対話の映画（すなわち、単一の均質なストリーム）を上映することとはっきりと異なる。たとえば、マルチトラック再生により、ユーザがその場所内部の任意の位置および視点（カメラアングル）から会議がどのようなものだったかを没入するほど詳細に体験することができるようになる。マルチトラック再生はまた、単一ユーザが同時に体験することができたこと以外にエリアの別の部分（たとえば、ユーザが出席しなかった、セミナーでの分科会）にユーザが移動することができるようにする。
【０１００】
Ｓｏｃｏｃｏプラットフォームのマルチトラック記録およびマルチトラック再生の能力は、会社設定での会議に特に有益である。たとえば、参加できなかった任意の別のユーザにより後で見るために会議が記録されることができる。これらの能力はまた、訓練、通信教育、ニュース、スポーツ、および娯楽のための記録を作成するために使用されることができる。これらの事例では、記録は、記録された１組の生成されたまたは事前に指示されたリアルタイムストリーム（たとえば、Ｓｏｃｏｃｏの場所内部の事前に指示されたアバタの動きおよび対話）である。
【０１０１】
適切な権限を有するユーザが、Ｓｏｃｏｃｏの場所に入場し、場所に関連する任意の記録をブラウズするか閲覧して、それらを再生することができる。一部の実施形態では、Ｓｏｃｏｃｏプラットフォームは、マルチトラック記録のリアルタイム・データ・ストリームを特定のネットワークノードにより個々に操作される分離可能なデータストリームとしてネットワークノードの特定の１つに送信する。
【０１０２】
１０．擬似ファイルシステム
Ｓｏｃｏｃｏプラットフォームは、対話レコードを使用してファイルおよび記録をエリアに関連付ける。一部の実施形態では、Ｓｏｃｏｃｏプラットフォームは、対話レコードへの問合せの結果に基づき、コミュニカント間のデータファイルの共有を管理する。一部の実施形態では、Ｓｏｃｏｃｏプラットフォームは、擬似ファイルシステム（または言い換えれば、ファイルを位置付けるためのデータベースシステム）を使用して対話記録を記憶し系統立てる。このデータベースのレコードは、１以上のエリアと、ファイルがアップロードまたは作成されたときに存在したユーザと、タイムスタンプ情報への参照とを含む。次に、Ｓｏｃｏｃｏプラットフォームは、エリア（たとえば、部屋、または仮想卓上）内部の位置に基づき、あるいはユーザ（創造者／アップローダ、存在するコミュニカント、またはいずれも）または（特定の、または範囲の）時間に基づきファイルを取り出すことができる。Ｓｏｃｏｃｏプラットフォームはまた、従来のファイル名を使用することもできる。擬似ファイルシステムは、エリア、エリアの領域、ユーザ、または時間のうちの１以上に関連するファイルをすべて示すように問い合わせられることができる。この処理では、対話レコードは、データファイルの１以上に関連する時間属性値と、データファイルの１以上に関連する場所属性値と、データファイルの１以上に関連するコミュニカント識別子のうちの１以上に基づき問い合わせられることができる。擬似ファイルシステムにより従来のフォルダモデルまたはファイルモデルではない、ファイルの位置を特定するデータベース問合せ手法が可能になる。擬似ファイルシステムの詳細は以下に説明される。
【０１０３】
擬似ファイルシステムにより、Ｓｏｃｏｃｏプラットフォームのユーザが、多数の可能な方策を使用してプラットフォームにより記憶された情報（たとえば、アップロードされたファイルまたは記録）を見出すことができるようになる。たとえば、ユーザが、特定のユーザにより特定のエリアにアップロードされたファイルすべてのリストを見るように求め、次に、それらのファイルの１つを自分自身のコンピュータにダウンロードすることを選択することがある。あるいは、ユーザが、そのユーザおよび別のユーザと一緒にエリアの一部にいた間、エリアのその部分にアップロードされたファイルすべてを見るように求めることがある。あるいは、ユーザが、今日または先週、エリアにアップロードされたファイルすべてを見るように求めることがある。次に、ユーザは、ある別のユーザがいた間にアップロードされたそれらのファイルだけを示すことを望むことがある。
【０１０４】
たとえば、Ａｌｉｃｅが位置を突き止めようとしているファイルがＳｏｃｏｃｏプラットフォームにアップロードされたときに、ＡｌｉｃｅがＣｈａｒｌｉｅの仮想オフィスにＢｏｂと一緒にいたことを思い出すことがある。選択すべき多くの可能なファイルを見つけ出し、彼女は、これらのファイルがアップロードされた状況の自分の記憶をよみがえらせるために、様々なファイルがアップロードされた同じ時間に作成された音声オーディオの記録に耳を傾け始める。擬似ファイルシステムは、この種の問合せおよび再調査を行うことを可能にして、必要ならば関係する問合せがさらに続き、情報の特定の断片の検索を改良する。Ｓｏｃｏｃｏプラットフォームにより情報が記憶された状況に関してユーザが何を思い出すかに応じて、いくつかの異なるルートにより特定の情報の位置が突き止められることができる。
【０１０５】
ビットフィールドの位置を突き止めるための従来の技法は、以下の識別シンタックスを使用する。
／／ｈｏｓｔｎａｍｅ／ｄｒｉｖｅ／ｐａｔｈ／ｎａｍｅ．ｅｘｔ
ここで、シンタックス要素は以下のように指定される。
【表１】
0005368547.tif 000002
この議論では、「ビットフィールド」という用語は、指定されたファイルのバイナリ内容（内容は、一般にファイル名、および従来のファイルシステムでの内容に関連する別のメタデータと別個に記憶される）を指す。この手法のコード実装の一例が、以下のようなＣプログラミング言語コマンドｆｏｐｅｎを使用する。
ｆｏｐｅｎ（“／／ｈｏｓｔｎａｍｅ／ｄｒｉｖｅ／ｐａｔｈ／ｎａｍｅ．ｅｘｔ”）；
このコマンドの実行が、バッファに読み込まれ、バッファの外で処理され得るたとえば８、１６、３２ビット、すなわちワードからなるストリームを開き、ストリームが空にされるまたは閉じられるまで、その処理が繰り返される。
【０１０６】
Ｓｏｃｏｃｏプラットフォームの実施形態は、従来の／／ｈｏｓｔｎａｍｅ／ｄｒｉｖｅ／ｐａｔｈ／ｎａｍｅ．ｅｘｔパーサの代わりの関係データベース、および関連するビット・フィールド・ロケータを導入する新しい擬似ファイルシステム技法を組み込む。これらの実施形態では、擬似ファイルシステムがビットフィールドの位置を突き止める別の技法を提供する（内容は通常、従来のファイルシステムのファイル名に関連付けられる）。これらの実施形態は、以下の識別シンタックスを使用する。
／／ｈｏｓｔｎａｍｅ：ｄｂｎａｍｅ“ｑｕｅｒｙ”
ここで、／／ｈｏｓｔｎａｍｅは、上記と同様であり、ｄｂｎａｍｅはそのホスト上の任意選択のデータベース名である。指定されたデータベースが存在しない場合、問合せはホストが構成したデフォルトデータベースに向けられる。“ｑｕｅｒｙ”ストリングは関係データベースセマンティクス（たとえば、ＳＱＬセマンティクス）を有する。一部の実施形態では、スキーマは以下に基づく。
【表２】
0005368547.tif 000003
【０１０７】
これらの実施形態のコード実装の一例が、以下のようなＣプログラミング言語コマンドｆｏｐｅｎを使用する。
ｆｏｐｅｎ（“／／ｈｏｓｔｎａｍｅ：ｄｂｎａｍｅ‘ｑｕｅｒｙ’”）
このコマンドの実行が、バッファ内に読み込まれ、バッファの外で処理されるたとえば８、１６、３２ビット、すなわちワードからなるストリームを開き、ストリームが空にされるまたは閉じられるまで、その処理が繰り返される。この実施形態では、単一時間、単一場所、単一ソースまたは名前の問合せが、それが存在する場合、常に一意である（すなわち、問合せがゼロまたは１つのレコードを戻す）。任意の別の問合せがゼロまたは１つ以上のレコードを戻す。多数の候補ビットフィールドがある場合、戻されるレコード集合はパースされ処理されることがあり、レコードがユーザに表示されリストから選ばれる、または問合せは時間、人々、場所、またはソースのフィールドに基づきさらに改良される。一意性が達成されると、場所値が記憶システムに手渡され、ストリームを発呼者に提供する、または全ビットフィールドを１単位として届けることができる。
【０１０８】
Ｓｏｃｏｃｏプラットフォームは、特定のクライアントノードにより要求される対話レコードへの問合せの結果に基づき、データファイルの特定の１つを取り出すことができる。クライアントノードの要求に応答して、Ｓｏｃｏｃｏプラットフォームは、特定のデータファイルに関連する記憶位置識別子を特定のネットワークノードに送信することも、問合せの結果、識別された対話レコードのうち１以上から得られる情報を特定のネットワークノードに送信することもある。
【０１０９】
Ｂ．例示的コミュニケーションセッション
図２に戻り参照すると、コミュニケーションセッション中、コミュニケーション・ネットワーク・ノードは、個々の１組のリアルタイム・データ・ストリーム（たとえば、動きデータストリーム、オーディオ・データ・ストリーム、チャット・データ・ストリーム、ファイル転送データストリーム、およびビデオ・データ・ストリーム）をそれぞれ生成する。たとえば、各コミュニカントが、動きデータストリームを生成する１以上の入力装置（たとえば、コンピュータマウス５２およびキーボード５４）を操作し、そのことが仮想エリア６６内でのコミュニカント自身のアバタの動きを制御する。さらに、コミュニカントの音声と、ネットワークノード４８の近傍でローカルに生成される別の音とが、マイクロホン６０により取り込まれる。マイクロホン６０は、リアルタイム・オーディオ・ストリームに変換されるオーディオ信号を生成する。オーディオストリームの個々のコピーが、仮想エリア６６内のアバタにより表される別のネットワークノードに送信される。これらの別のネットワークノードでローカルに生成された音がリアルタイムオーディオ信号に変換され、ネットワークノード４８に送信される。ネットワークノード４８は、受信されたローカルに生成されたオーディオストリームをスピーカ５６、５８により再現されるオーディオ信号に変換する。動きデータストリームおよびオーディオストリームが、コミュニカントノードのそれぞれから直接的または間接的に別のコミュニカント・ネットワーク・ノードに送信されることがある。一部のストリーム処理トポロジでは、コミュニカント・ネットワーク・ノードのそれぞれが、別のコミュニカント・ネットワーク・ノードにより送信されるリアルタイム・データ・ストリームのコピーを受信する。別のストリーム処理トポロジでは、コミュニカント・ネットワーク・ノードの１以上が、ネットワークノードの別のいくつかから供給される（または生み出される）リアルタイム・データ・ストリームから得られる１以上のストリーム混合を受信する。
【０１１０】
図５Ａは、３つのネットワークノード１６２、１２、１４が、ピア・ツー・ピア・アーキテクチャのコミュニケーションネットワーク１８の一実施形態１６４により相互接続される共有仮想エリアコミュニケーション環境１６０の一実施形態の概略図である。コミュニケーションネットワーク１６４は、ローカル・エリア・ネットワーク（ＬＡＮ）でも、グローバル・コミュニケーション・ネットワーク（たとえば、インターネット）でもよい。ネットワークノード１６２、１２、１４は、個々のコンピュータにより表される。
【０１１１】
このアーキテクチャでは、ネットワークノード１６２、１２、１４のそれぞれが、仮想エリア内のアバタの動きなどの状態変化をその他のネットワークノードのそれぞれに送信する。ネットワークノードの１つ（一般にコミュニケーションセッションを開始するネットワークノード）が、エリアサーバとして動作する。例示の実施形態では、ネットワークノード１６２がエリアサーバの役割を引き受ける。エリア・サーバ・ネットワーク・ノード１６２は、大域状態情報を保持し、その他のネットワークノード１２、１４のためのデータサーバの役割を果たす。大域状態情報は、仮想エリア内にあるオブジェクトすべてのリスト、および仮想エリア内のそれらのオブジェクトの個々の位置を含む。エリア・サーバ・ネットワーク・ノード１６２は、大域状態情報をその他のネットワークノード１２、１４に定期的に送信する。エリア・サーバ・ネットワーク・ノード１６２はまた、コミュニケーションセッションに参加することを要求する別のネットワークノードへの初期化情報を登録しそれを送信する。この処理では、エリア・サーバ・ネットワーク・ノード１６２は、各参加するネットワークノードに、ローカルまたは遠隔のデータベースに記憶されることがある仮想エリア仕様１６６のコピーを送信する。エリア・サーバ・ネットワーク・ノード１６２はまた、コミュニケーション障害が起きた場合、別のネットワークノード１２、１４が大域状態に同期することができることを保証する。
【０１１２】
上記で詳細に説明されたように、仮想エリア仕様１６６は、仮想エリアの幾何学的要素の記述と、ネットワークノード間のリアルタイムストリーム接続を管理する１以上の切替規則とを含む。幾何学的要素の記述により、ネットワークノード１６２、１２、１４上で動作する個々のコミュニケーションアプリケーションが、仮想エリアの個々の視野を個々の表示モニタ上でコミュニカントに提示することができるようになる。切替規則は、ネットワークノード１６２、１２、１４のそれぞれで実行される接続処理が、仮想エリア内のコミュニカントのアバタの位置に基づき、その他のネットワークノードとのコミュニケーションをどのように達成するかを規定する。
【０１１３】
図５Ｂは、ネットワークノード１６２、１２、１４（このアーキテクチャでは「エリア・クライアント・ネットワーク・ノード」と呼ばれる）が、エリアサーバ１７０により介在されるアーキテクチャでコミュニケーションをとる共有仮想エリアコミュニケーション環境１６８の一実施形態の概略図である。この実施形態では、エリアサーバ１７０は、図５Ａで示されるピア・ツー・ピア・アーキテクチャの実施形態でネットワークノード１６２により実行されたエリアサーバ機能を引き受ける。この点で、エリアサーバ１７０は大域状態情報を保持し、エリア・クライアント・ネットワーク・ノード１６２、１２、１４のためのデータサーバの役割を果たす。米国出願第１１／９２３，６２９号明細書および第１１／９２３，６３４号明細書において詳細に説明されているように、このアーキテクチャにより、エリア・クライアント・ノード１６２、１２、１４間のリアルタイム・データ・ストリーム切替が、ピア・ツー・ピア・トポロジ、エリアサーバ１７０がネットワークノード１６２、１２、１４間のコミュニケーション仲介者（ｂｒｏｋｅｒ）として動作する完全なサーバ仲介トポロジと、ピア・ツー・ピア・トポロジと完全なサーバ仲介トポロジの態様を組み合わせる混成トポロジとを含む、様々なトポロジにより処理できるようになる。
【０１１４】
図６は、共有仮想エリアコミュニケーション環境の一実施形態での３つのネットワークノード１６２、１２、１４のソースとシンクの間の例示的な１組のリアルタイム・データ・ストリーム接続を示す。例示を容易にするために、図６の矢印はそれぞれ、個々の１組の１以上のリアルタイム・データ・ストリームを表す。本明細書において説明される実施形態によれば、図６に示される接続は、共有仮想エリアの仕様で定義される切替規則、共有仮想エリア内のコミュニカントのアバタの位置、およびネットワークノード１６２、１２、１４のそれぞれで利用可能な特定のソースおよびシンクに基づき確立される。
【０１１５】
図７は、例示的な１組のソース１７２および例示的な１組のシンク１７４を含むネットワークノード１２の例示的実施形態を示す。各ソースは、データを発生するネットワークノード１２の装置または構成要素であり、各シンクはデータを受信する、ネットワークノード１２の装置または構成要素である。１組のソース１７２は、オーディオソース１８０（たとえば、マイクロホンなどのオーディオ取込装置）と、ビデオソース１８２（たとえば、ビデオカメラなどのビデオ取込装置）と、チャットソース１８４（たとえば、キーボードなどのテキスト取込装置）と、動きデータソース１８８（たとえば、コンピュータマウスなどのポインティング装置）と、「他の」ソース１８６（たとえば、ファイル共有ソース、またはカスタマイズされたリアルタイム・データ・ストリームのソース）とを含む。１組のシンク１７４は、オーディオシンク１９０（たとえば、スピーカまたはヘッドホンなどのオーディオ再現装置）と、ビデオシンク１９２（たとえば、表示モニタなどのビデオ描画装置）と、チャットシンク１９４（たとえば、表示モニタなどのテキスト描画装置）と、動きデータシンク１９８（たとえば、表示モニタなどの動き描画装置）と、「他の」シンク１９６（たとえば、共有ファイルを印刷するプリンタ、既に説明されたものとは異なるリアルタイム・データ・ストリームをレンダリングする装置、あるいは分析またはカスタマイズされた表示のためのリアルタイムストリームを処理するソフトウェア）を含む。
【０１１６】
図７に示されるネットワークノードの実施形態で例示されるように、ネットワークノードはそれぞれ潜在的に、利用可能な多種多様なソースおよびシンクを有する。エリア設計者がソースとシンクの間で接続がどのように確立されるかを制御できることにより、本明細書で説明される実施形態は、コミュニカントが仮想エリア内でコミュニケーションをとる、または別の方法で対話するときに、コミュニカントの感覚的体験に対して多くの制御をエリア設計者に提供する。このやり方では、エリア設計者は、特定のコミュニケーション目的のためにまたは特定のコミュニケーション環境（たとえば、美術館、コンサートホール、公会堂、会議室、およびクラブ会館）のために、仮想エリアを最適化することができる。
【０１１７】
ＩＩＩ．例示的システムアーキテクチャ実施形態
Ａ．サーバ介在システム概要
コミュニカントは、一般に個々のネットワークノードから共有仮想エリアコミュニケーション環境にアクセスする。これらのネットワークノードはそれぞれ、一般に汎用コンピュータシステム、または専用コミュニケーション・コンピュータ・システム（または「コンソール」）により実現される。各ネットワークノードは、各ネットワークノードでの仮想エリアの個々の視野を提示し、別のネットワークノードとのリアルタイム・データ・ストリーム接続を確立するコミュニケーション処理を実行する。
【０１１８】
図８は、ネットワークノード１６２、１２、１４（このアーキテクチャでは「エリア・クライアント・ネットワーク・ノード」または単に「エリアクライアント」と呼ばれる）およびエリアサーバ１７０がコミュニケーションネットワーク１８により相互接続される、図５Ｂのサーバ介在共有仮想エリアコミュニケーション環境１６８の一実施形態２００を示す。この実施形態では、エリア・クライアント・ネットワーク・ノード１６２、１２、１４のそれぞれがエリア・クライアント・ネットワーク・ノード１２に関連して以下で説明されるタイプの個々のコンピュータシステムにより実現される。エリアサーバ１７０はまた、以下で説明される同じタイプの汎用コンピュータシステムにより実現される。
【０１１９】
Ｂ．例示的システムアーキテクチャ
図９は、図８に示されるサーバ介在共有仮想エリアコミュニケーション環境２００の一実施形態２１０を示し、この場合、エリア・クライアント・ネットワーク・ノード１２、１４、１６２は、エリアサーバ１７０により介在されるアーキテクチャでコミュニケーションをとる。
【０１２０】
エリアサーバ１７０は、大域状態情報を保持し、エリア・クライアント・ネットワーク・ノード１２、１４、１６２のためのデータサーバの役割を果たす。エリアサーバにより保持される大域状態情報の中には、仮想エリアの現在の仕様２３０と、仮想エリア内にあるオブジェクトの現在の名簿２３２と、現在エリアサーバ１７０により生成されている任意のストリーム混合のリスト２３４とがある。
【０１２１】
オブジェクト名簿２３２は、一般に仮想エリア内のオブジェクトごとに、個々のオブジェクト識別子（たとえば、オブジェクトを一意に識別するラベル）と、ネットワーク接続がオブジェクトに関連するネットワークノードと確立されることができるようにする接続データ（たとえば、ＩＰアドレス）と、オブジェクトに関連するリアルタイムデータのソースおよびシンクを識別するインタフェースデータ（たとえば、オブジェクトに関連するネットワークノードのソースおよびシンク）とを含む。オブジェクト名簿２３２は、一般にオブジェクトごとに１以上の任意選択の役割識別子も含み、役割識別子は、コミュニカントまたはエリアサーバ１７０のいずれかによりオブジェクトに明示的に割り当てられることも、オブジェクトの別の属性から推測されることもある。一部の実施形態では、オブジェクト名簿２３２はまた、エリア・クライアント・ネットワーク・ノード１２、１４、１６２から受信されるリアルタイム動きデータストリームの分析からエリアサーバ１７０により決定される、仮想エリア内のオブジェクトのそれぞれの現在位置を含む。この点で、エリアサーバ１７０は、エリア・クライアント・ノード１２、１４、１６２からリアルタイム動きデータストリームを受信し、動きデータに基づき、仮想エリアに入場し、そこを離れ、その中を動き回るコミュニカントのアバタおよび別のオブジェクトを追跡する。エリアサーバ１７０は、追跡されたオブジェクトの現在位置に従ってオブジェクト名簿２３２を更新する。
【０１２２】
図９に示される実施形態では、エリア・クライアント・ネットワーク・ノード１２は、コミュニケーションモジュール２１２と、３次元可視化エンジン２１４と、チャットエンジン２１５と、オーディオ処理エンジン２１６とを含むコミュニケーションアプリケーション１４２の一実施形態（図１を参照のこと）を含む。その他のネットワークノード１４、１６２は、一般にエリア・クライアント・ネットワーク・ノード１２に関連して説明されたものと同じまたは同様のものであるコミュニケーションアプリケーション１４２の一実施形態をそれぞれ含む。
【０１２３】
コミュニケーションモジュール２１２は、エリア・クライアント・ネットワーク・ノード１２と、その他のエリア・クライアント・ネットワーク・ノード１４、１６２と、エリアサーバ１７０との間のリアルタイム・データ・ストリームの切替を制御する。コミュニケーションモジュール２１２は、ストリーム切替マネージャ２１８および帯域幅モニタ２２０を含む。ストリーム切替マネージャ２１８は、エリア・クライアント・ネットワーク・ノード１２に関連するアバタおよび別のオブジェクトの仮想エリアへの入場および退場を処理する。ストリーム切替マネージャ２１８はまた、エリア・クライアント・ネットワーク・ノード１２と、その他のエリア・クライアント・ネットワーク・ノード１４、１６２と、エリアサーバ１７０との間のリアルタイム・データ・ストリームを切り替える（たとえば、ルーティング、接続、および切断）方法を自動的に決定する。ストリーム切替マネージャ２１８は、仮想エリア仕様に含まれる切替規則と、仮想エリア内のアバタおよび別のオブジェクトの現在位置と、仮想エリア内のアバタおよび別のオブジェクトに関連するリアルタイム・データ・ストリーム・タイプとに基づきこれらの決定を行う。一部の実施形態では、ストリーム切替マネージャ２１８は、これらの決定にエリア・クライアント・ネットワーク・ノード１２、別のネットワークノード１４、１６２、または、エリアサーバ１７０のいずれかのアップロードおよびダウンロードの帯域幅制約条件も計算に入れる。さらに、ストリーム切替マネージャ２１８は、イベント（たとえば、アップロードおよびダウンロードの帯域幅障害、ならびに仮想エリアへの入場または退場の要求）に応答して、周期的に、またはイベントに応答してだけでなく周期的にも現在の１組の接続を再評価する。現在の接続の再評価の結果、ストリーム切替マネージャ２１８は、たとえば以下の動作、すなわちエリアサーバ１７０からのストリーム混合を要求する、エリアサーバからのストリーム混合を捨てる、その他のエリア・クライアント・ネットワーク・ノード１４、１６２の１以上との１以上の直接リンクを切断する、あるいはその他のエリア・クライアント・ネットワーク・ノード１４、１６２の１以上との１以上の直接リンクを形成する動作のうちのいずれかをとることがある。
【０１２４】
リアルタイム・データ・ストリーム接続の切替を管理する間に、ストリーム切替マネージャ２１８は、インタフェースデータ２３６と、ゾーンリスト２３８と、現在仮想エリア内にあるオブジェクトの位置２４２とを含む１組の構成データを保持する。インタフェースデータ２３６は、エリア・クライアント・ネットワーク・ノード１２に関連するオブジェクトごとに、オブジェクトに関連するリアルタイム・データ・ストリーム・タイプのソースおよびシンクのすべての個々のリストを含む。ゾーンリスト２３８は、エリア・クライアント・ネットワーク・ノード１２に関連するアバタにより現在占有される仮想エリア内のゾーンすべての名簿である。コミュニカントが初めて仮想エリアに入るとき、ストリーム切替マネージャ２１８は、一般にエリアサーバ１７０からダウンロードされた位置初期化情報を使って現在のオブジェクト位置データベース２４２を初期化する。その後、ストリーム切替マネージャ２１８は、たとえばコンピュータマウス２２１の１以上とエリア・クライアント・ネットワーク・ノード１４、１６２とエリアサーバ１７０とから受信されるリアルタイム動きデータストリームの分析から決定される、仮想エリア内のオブジェクト現在位置を使って、現在のオブジェクト位置データベース２４２を更新する。一部の実施形態では、オブジェクト位置２４２は、オブジェクト名簿２４０に組み込まれる。ストリーム切替マネージャ２１８により保持される構成データは、それぞれオブジェクト名簿２３２、ストリーム混合リスト２３４、および仮想エリア仕様２３０のコピー２４０、２４４、２４６も含む。これらのコピー２４０、２４４、および２４６は、一般にエリアサーバ１７０からダウンロードされ、これらのデータのローカルキャッシュを提示する。
【０１２５】
３次元可視化エンジン２１４は、表示モニタ１３２上に仮想エリアの視野と、仮想エリア内にある任意のオブジェクトとを提示する。この処理では、３次元可視化エンジン２１４は、仮想エリア仕様データ２４６と、オブジェクト名簿２４０と、現在のオブジェクト位置データベース２４２とを読み出す。一部の実施形態では、３次元可視化エンジン２１４は、コミュニカントのアバタを仮想エリア内に描画するために必要とされる画像を含むコミュニカント・アバタ・データベース２４８も読み出す。この情報に基づき、３次元可視化エンジン２１４は、仮想エリアの遠近法表現（すなわち、画像）と、仮想エリア内のコミュニカントのアバタの視点（位置および方向）とから、仮想エリア内のオブジェクトを生成する。そして、３次元可視化エンジン２１４は、表示モニタ１３２上に仮想エリアの遠近法表現を描画する。一部の実施形態では、３次元可視化エンジン２１４は、交換され、処理され、表示モニタ１３２上で見える仮想エリアの部分に描画されるデータの量を制限するために、コミュニカントのアバタの可視性を決定する。
【０１２６】
一部の実施形態では、３次元可視化エンジン２１４は、さらに仮想エリアの平面図表現を生成するように動作可能である。これらの実施形態では、コミュニカントは、仮想エリアの遠近法表現と仮想エリアの平面表現のうちの一方または両方を表示モニタ１３２上に描画するよう３次元可視化エンジン２１４に指示することがある。
【０１２７】
コミュニカントは、入力装置（たとえば、コンピュータマウス２２１）からコミュニケーションモジュール２１２に指令を送信することにより、仮想エリアの提示された視野、または仮想エリア内のアバタの位置を制御することができる。３次元可視化エンジン２１４は、現在のオブジェクト位置データベース２４２内の更新された位置に従って、仮想エリアの視野と、仮想エリア内のオブジェクトの位置とを更新し、仮想エリアのグラフィック表現の更新版を表示モニタ１３２上に再描画する。３次元可視化エンジン２１４は、定期的に、または仮想エリア内のオブジェクトの１以上の動きだけに応答して、描画された画像を更新することがある。
【０１２８】
チャットエンジン２１５は、エリア・クライアント・ネットワーク・ノード１２のローカルのテキスト入力装置（たとえば、キーボード）から受信される出力チャット（テキスト）メッセージと、その他のエリア・クライアント・ネットワーク・ノード１４、１６２から受信される入力チャットストリームとのためのインタフェースを提供する。チャットエンジン２１５は、テキスト入力装置を介してコミュニカントにより入力されるチャット（テキスト）メッセージを、その他のネットワークノード１４、１６２に送信されることができるリアルタイム・チャット・ストリームに変換する。チャットエンジン２１５は、入力チャットストリームを、表示モニタ１３２上に描画されうるテキスト信号にも変換する。
【０１２９】
オーディオ処理エンジン２１６は、コミュニカントのヘッドセット２２６内のスピーカ２２２、２２４により再現されるオーディオ信号を生成し、ヘッドセット２２６内のマイクロホン２２８により生成されるオーディオ信号を、その他のエリア・クライアント・ネットワーク・ノード１４、１６２に送信されることができるリアルタイム・オーディオ・ストリームへと変換する。
【０１３０】
Ｃ．リアルタイム・データ・ストリームの自動切替
上記で説明されるように、仮想エリアの幾何学的要素の記述、およびネットワークノード間のリアルタイムストリーム接続を管理する１以上の切替規則を含む仕様により、共有仮想エリアが規定される。切替規則は、一般に仮想エリア内の位置に関してリアルタイム・データ・ストリームのソースおよびシンクを接続するための条件の記述を含む。各規則は、一般に規則が適用されるリアルタイム・データ・ストリーム・タイプ、および規則が適用される仮想エリア内の１以上の位置を規定する属性を含む。一部の実施形態では、規則は、任意選択的に、ソースの所与の役割と、シンクの所与の役割と、ストリームの所与の優先レベルと、所与のまたは好ましいストリームトポロジとを指定する１以上の属性をそれぞれ含みうる。
【０１３１】
切替規則は、仮想エリア内へのオブジェクトの入場時、仮想エリア内部でのオブジェクトの移動時、および仮想エリアからのオブジェクトの退場時に結びつけられる。
【０１３２】
リアルタイム・データ・ストリームの自動切替に関する追加の詳細が、いずれも２００７年１０月２４日に出願された、米国出願第１１／９２３，６２９号明細書および第１１／９２３，６３４号明細書において説明されている。
【０１３３】
ＩＶ．Ｓｏｃｏｃｏプラットフォームアーキテクチャ
図１０は、仮想環境でのリアルタイムのコミュニカント対話をサポートするシステムアーキテクチャの一実施形態を示す。システムアーキテクチャは、Ｓｏｃｏｃｏプラットフォーム（「仮想環境創造者」とも呼ばれる）、ヘッドアップ表示装置（ＨＵＤ）、およびいくつかのアプリケーションを含む。一部の実施形態では、Ｓｏｃｏｃｏプラットフォームは、コミュニケーションアプリケーション１４２に対応する（図３を参照のこと）。
【０１３４】
ＨＵＤは、様々な異なるビジネスアプリケーションおよび民生用アプリケーションをＳｏｃｏｃｏプラットフォームにインタフェースする。システムアーキテクチャにより可能にされる多種多様な異なるアプリケーションの中には、臨時のコミュニケーションアプリケーションと、オンライン販売アプリケーションと、ゼミナールアプリケーションと、訓練アプリケーションと、リアルタイムグループ共同作業アプリケーションと、コンテンツ共有アプリケーション（たとえば、写真およびビデオの共有アプリケーション）と、グループ研究アプリケーションとがある。
【０１３５】
Ｓｏｃｏｃｏプラットフォームは、さらに別のシステム（たとえば、ＥＲＰシステム、ゲームシステム、およびソーシャル・ネットワーキング・システム）を統合して、企業データ共同作業アプリケーション、組合室アプリケーション、シングルズ・スペース・アプリケーション、画廊アプリケーション、およびチャット室アプリケーションを含むがそれらに限定されない、多種多様な別のアプリケーションをサポートする。
【０１３６】
Ｖ．仮想コミュニケーション環境とのインタフェース
Ａ．はじめに
ローカルのヒューマンインタフェース装置（ＨＩＤ）およびオーディオ再生装置と、Ｓｏ３Ｄグラフィカル表示装置と、アバタと、物理的エンジンと、システムデータベースおよび記憶設備とに加えて、コミュニケーションアプリケーション２６は、ユーザと仮想コミュニケーション環境とのインタフェースをとるグラフィカルな移動および対話のインタフェース（本明細書では「ヘッドアップ表示装置」または「ＨＵＤ」と呼ばれる）を含む。ＨＵＤは、ユーザが仮想環境を移動することができるようにする移動コントロールと、ユーザが仮想コミュニケーション環境で別のコミュニカントとのユーザ自身の対話を制御することができるようにする対話コントロールとを含む。移動および対話のコントロールは、一般に、コンピュータマウス、タッチパッド、タッチスクリーン表示装置、キーボード、およびビデオ・ゲーム・コントローラを含む任意のタイプの入力装置を使用して行われるユーザ選択に応答する。ＨＵＤは、各クライアント・ネットワーク・ノード上で動作するアプリケーションである。ＨＵＤは、ユーザが自分自身のデスクトップ上でいつも動作中の状態に保つことができる小型で軽量のインタフェースである。ＨＵＤは、ユーザが仮想エリアアプリケーションを起動できるようにし、リアルタイム連絡先およびリアルタイム共同作業場所（またはエリア）への即時のアクセスをユーザに提供する。ＨＵＤは、他のネットワークノードとのリアルタイムコミュニケーションを開始し、受信することができるように、基になるオペレーティングシステムのリアルタイム・コミュニケーション・アプリケーションおよび／またはリアルタイムコミュニケーション構成要素と統合される。仮想エリアは、ＨＵＤを介してユーザのデスクトップと統合され、その結果、ユーザは、仮想環境創造者１６により生成される仮想環境にファイルをアップロードし、依然として仮想エリア内に存在しながら、仮想環境とは関係ない固有のクライアント・ソフトウェア・アプリケーションを使用して仮想エリアに関連して記憶されるファイルを使用し、より一般的には仮想エリア内部のプレゼンスおよび位置を、いくつかのアプリケーションのただの１つではなく別のオペレーティングシステム機能に類似するユーザの動作環境の一態様として取り扱うことができるようになる。
【０１３７】
Ｂ．連絡先および場所を見る
図１１は、ネットワーク・インフラストラクチャ・サービス環境３０が、ユーザを仮想コミュニケーション環境にインタフェースする方法の一実施形態を示す。
【０１３８】
図１１の方法によれば、対話サービスは、ユーザと個々のネットワークノード上で動作し仮想コミュニケーション環境を共有する別のコミュニカントとのリアルタイム対話を場所属性値に関係付け、この仮想コミュニケーション環境は、１以上の仮想エリアを含み、ユーザとその他のコミュニカントとの間のリアルタイムコミュニケーションをサポートする（図１１、ブロック２５０）。上記に説明されるように、例示された実施形態では、対話サービスは、コミュニカント間の対話のレコード３８を含む関係データベース３６を保持する。１以上の仮想エリアの個々の１つでのコミュニカントの個々の１人を含む対話ごとに、対話サービスは、対話が行われた仮想エリアを識別する個々の場所属性値と、対話に参加したコミュニカントの個々の何人かを識別する１以上のコミュニカント識別子属性値とを含む、個々の対話レコードを生成する。対話サービスは、一般に以下の追加情報、すなわち、個々の対話の開始時間および終了時間と、個々の対話中に共有された任意のデータストリームの識別と、個々の対話が行われた場所をより広いドメインに関連付ける任意の階層情報とのうちの１以上のものを、特定の対話の対話レコードにも組み込む。
【０１３９】
ネットワーク・インフラストラクチャ・サービス環境２８は、関連する場所属性値に基づき、ユーザおよびその他のコミュニカントを仮想コミュニケーション環境にインタフェースする（図１１、ブロック２５２）。上記に説明されるように、例示される実施形態では、対話サービスは、要求するエンティティの能力に支配される関係データベース３６への問合せをサポートする。クライアント・ネットワーク・ノードからの要求に応答して、対話サービスは、対話レコードに問い合わせ、ネットワークノードの要求するいくつかに問合せの結果を送信する。
【０１４０】
リアルタイム連絡先を見るための何らかの要求に応答して、対話サービスは、仮想コミュニケーション環境においてユーザが対話したその他のコミュニカントの１人以上を探して対話記録に問合せ、そして、ユーザが対話したその他のコミュニカントの識別された何人かのリストを、要求するネットワークノードに送信する。対話サービスは、一般にユーザと、識別された別のコミュニカントの個々の何人かとの間の対話を記述する対話レコードの評価に基づき、識別された別のコミュニカントをランクづけし、その他のコミュニカントの識別された何人かをランクごとにリストの形で順序よく並べる。この処理で、対話サービスは、一般に対話レコードから得られる少なくとも１つの統計値に基づき、その他のコミュニカントのそれぞれに対する個々の適合スコアを決定する。そして、対話サービスは、その他のコミュニカントの識別された何人かを個々の適合スコアを反映する順序でリストの形で順序よく並べる。適合スコアは、ユーザとその他のコミュニカントの何人かの間の対話の頻度を測定する場合がある。適合スコアは、ユーザとその他のコミュニカントの何人かの間の対話の新しさを測定する場合もある。
【０１４１】
場所を見るための何らかの要求に応答して、対話サービスは、ユーザが対話した仮想エリアの１以上を探して対話レコードに問い合わせ、ユーザが対話した仮想エリアの識別されたいくつかのリストを、要求するネットワークノードに送信する。対話サービスは、一般にユーザと、識別された仮想エリアの個々のいくつかとの間の対話を記述する対話レコードの評価に基づき、識別された仮想エリアをランクづけし、仮想エリアの識別されたいくつかを、ランクごとにリストの形で順序よく並べる。この処理で、対話サービスは、一般に対話レコードから得られる少なくとも１つの統計値に基づき、仮想エリアのそれぞれに対する個々の適合スコアを決定する。次に、対話サービスは、仮想エリアの識別されたいくつかを、個々の適合スコアを反映する順序でリストの形で順序よく並べる。適合スコアが、ユーザとその他の仮想エリアのいくつかの間の対話の頻度を測定する場合がある。適合スコアが、ユーザとその他の仮想エリアのいくつかの間の対話の新しさを測定する場合もある。
【０１４２】
図１２は、コミュニケーションアプリケーション２６が、ユーザを仮想コミュニケーション環境とインタフェースする方法の一実施形態を示す。
【０１４３】
図１２の方法によれば、コミュニケーションアプリケーション２６は、仮想コミュニケーション環境でのユーザの個々の対話を記述する対話レコードを含む少なくとも１つの対話データベースに問い合わせた結果から対話選択肢を決定する（図１２、ブロック２５４）。表示装置上に、コミュニケーションアプリケーション２６は、個々の１組の１以上のユーザ選択可能コントロールに関連して対話選択肢のグラフィック表現を含むユーザインタフェースを提示する（図１２、ブロック２５６）。ユーザ選択可能コントロールの個々の１つをユーザが選択したことに応答して、コミュニケーションアプリケーション２６は仮想コミュニケーション環境でユーザの対話を開始する（図１２、ブロック２５８）。この処理は、たとえば特定の仮想エリアのグラフィック表現をユーザが選択したことに応答して、または特定の仮想エリア内にプレゼンスを有するその他のコミュニカントのグラフィック表現の１つをユーザが選択したことに応答して、仮想エリアの特定の１つにユーザのグラフィック表現を移動することを伴うことがある。
【０１４４】
例示的な対話選択肢は、連絡先との対話のための選択肢と、場所との対話のための選択肢とを含む。
【０１４５】
場合によっては、コミュニケーションアプリケーション２６は、仮想コミュニケーション環境でユーザが対話したその他のコミュニカントの１人以上を識別し、個々のその他のコミュニカントと対話するための少なくとも１つの個々のユーザ選択可能コントロールに関連して識別されたその他のコミュニカントのそれぞれの個々のグラフィック表現をユーザインタフェースに表示する。一例では、コミュニケーションアプリケーション２６は、仮想エリアの特定の１つでユーザが対話したその他のコミュニカントの１人以上を識別し、特定の仮想エリアのグラフィック表現に関連して識別されたその他のコミュニカントのグラフィック表現を表示する。識別されたその他のコミュニカントの個々のグラフィック表現は、特定の仮想エリアのグラフィック表現に隣接するアレイの形で表示されることがある。コミュニカントのグラフィック表現は、一般に、ユーザと、識別されたその他のコミュニカントの個々の何人かとの間の対話を記述する対話レコードの評価から得られる、識別されたその他のコミュニカントのランキングに基づきソートされる。
【０１４６】
コミュニケーションアプリケーション２６は、ユーザが対話した仮想エリアの１以上を識別し、個々の仮想エリアと対話するための少なくとも１つのユーザ選択可能コントロールに関連して確認された仮想エリアのそれぞれの個々のグラフィック表現をユーザインタフェースに表示する。識別された仮想エリアの個々のグラフィック表現は、アレイの形で表示されることがある。仮想エリアのグラフィック表現は、一般にユーザと、確認された仮想エリアの個々の何人かとの間の対話を記述する対話レコードの評価から得られる確認された仮想エリアのランキングに基づきソートされる。一部の実施形態では、確認された仮想エリアの１以上のそれぞれに対して、仮想エリアが表示される個々の２次元グラフィック表現と、仮想エリア内にプレゼンスを有するコミュニカントのそれぞれの個々のグラフィック表現とが、個々の２次元グラフィック表現により描かれる。これらの実施形態の一部では、コミュニカントの個々のグラフィック表現のそれぞれが、個々の仮想エリア内の個々のその他のコミュニカントにより現在行われる個々の活動をユーザが推測することができる状況情報を提供する。状況情報は、たとえば、仮想エリア識別子に関して１人以上の他のコミュニカントの個々の位置を記述する情報と、仮想エリア内部の１人以上の他のコミュニカントの個々の位置を記述する情報と、１人以上の他のコミュニカントの個々の向きを記述する情報とのうちの１以上を含みうる。コミュニケーションアプリケーションは、一般に、確認された仮想エリアのグラフィック表現のそれぞれに関連して少なくとも１つのユーザ選択可能コントロールを提示し、この場合、コントロールによりユーザが個々の仮想エリア内にプレゼンスを確立することができるようになる。
【０１４７】
場合によっては、コミュニケーションアプリケーション２６は、ユーザが表示装置上にプレゼンスを有する仮想エリアの特定の１つのグラフィック表現を表示する。特定の仮想エリアのグラフィック表現は、３次元グラフィック表現でも、２次元グラフィック表現でもよい。以下で議論される図面で例示される実施形態では、ＨＵＤは特定の仮想エリアの２次元グラフィック表現を含み、その表現はユーザの表示装置上に描画されたデスクトップ・インタフェース・ウィンドウの右下隅に表示される。ＨＵＤは、ユーザが１組の異なる対話レベル（たとえば、仮想エリアとの対話の３次元グラフィック・インタフェース・モード、仮想エリアとの対話の２次元グラフィック・インタフェース・モード、および仮想エリアとの対話の非グラフィック・インタフェース・モード）から、特定の仮想エリアとの対話のレベルを選択できるようにする、没入コントロールインタフェースも含む。
【０１４８】
図１３は、ユーザのリアルタイム連絡先と、リアルタイム共同作業が行われる仮想的な場所とについての即時のアクセスをユーザに提供するＨＵＤの一実施形態２６０を示す。ＨＵＤ２６０が、人々の位置だけでなく場所への視野に基づき、エリアを介した移動を可能にする。これらの場所は、最も頻繁に使用される、最も新しく使用された、またはアプリケーション特有の方法を含む様々な異なる方法によりアクセスされうる。
【０１４９】
ＨＵＤ２６０は、各ユーザが自分自身の可視化を制御することができるようにする没入コントロールインタフェース２６１を含む。没入コントロールインタフェース２６１は、グラフィカル没入レベル表示器２６３と、ユーザ操作可能没入レベルコントローラ（またはスライダ）２６５と、グラフィカル没入レベル表示器２６３に沿ったスライダ２６５の異なる位置に対応する異なる没入レベルにラベルをつけるテキストの没入レベル表示器２６７とを含む。ユーザは、入力装置（たとえば、コンピュータマウス）を使ってグラフィカル没入レベル表示器２６３に沿ってスライダ２６５を動かして、１組の異なる対話レベルから特定の仮想エリアとの対話のレベルを選択することができる。たとえば、例示の実施形態では、ユーザが音声のみ（没入レベル表示器２６３の一番下の位置の「オフ」に対応する）、２次元（２Ｄ）俯瞰図（没入レベル表示器２６３の中央の位置の「２Ｄ」に対応する）、または、エリアの３次元視野（たとえば、物理的エリアの現実的な３次元シミュレーション）（没入レベル表示器２６３の一番上の位置または「３Ｄ」に対応する）を選択することができる。具体的には、没入コントロールインタフェース２６１は、ユーザが、仮想エリアとの対話の３次元グラフィック・インタフェース・モード（「３Ｄ」モード）と、仮想エリアとの対話の２次元グラフィック・インタフェース・モード（「デスクトップ」モード）と、仮想エリアとの対話の非グラフィック・インタフェース・モード（「オフ」モード）のいくつかとの間で選択的に変更することにより、対話のレベルを変更できるようにする。対話の３次元グラフィック・インタフェース・モードでは、コミュニカントの個々のグラフィック表現が３次元アバタとして描かれ、対話の２次元グラフィック・インタフェース・モードでは、コミュニカントの個々のグラフィック表現が、２次元プレゼンスのアイコンまたはスプライト（ｓｐｒｉｔｅ）として描かれ、非グラフィック・インタフェース・モードでは、コミュニカントの個々のグラフィック表示が省略される（すなわち、表示されない）。
【０１５０】
２次元可視化モードでは、仮想エリア内にプレゼンスを有するコミュニカントは、個々の２次元プレゼンスアイコンによりそれぞれ表される。一部の実施形態では、個々のコミュニカントからの入力リアルタイム・データ・ストリームの受信に応答して、プレゼンスアイコンの外観が変化する。たとえば、一部の実施形態では、プレゼンスアイコンの外観が固定した割合で２つの異なるモード（たとえば、輝度レベルなどの可視特徴が高レベルと低レベルの間で交互に繰り返す、またはプレゼンスアイコンの外観が塗りつぶされた図から輪郭図に変化する）間で交互に繰り返す。一部の実施形態では、トリガする入力リアルタイム・データ・ストリームが、コミュニカントが動作している個々のネットワークノードで個々の入力装置（たとえば、コンピュータキーボードまたはマイクロホン）により生成されるリアルタイム・データ・ストリームに対応する。この方法では、ＨＵＤ２６０は、特定のコミュニカントが仮想エリア内で対話している（たとえば、チャットしているまたは話している）ときに、可視表示を提供する。
【０１５１】
ＨＵＤ２６０は、順序づけられた１組の場所タイル２６２を示す。場所タイル２６２の１つをクリックすると、選択された場所タイルにより表される仮想エリアにユーザを連れて行く。人々については、Ｓｏｃｏｃｏプラットフォームには、（コミュニカントのエリアに）行く（Ｇｏ）および連れてくる（Ｇｅｔ）（ユーザのエリアに人々を連れてくる）という基本的な隠喩（basic metaphor）がある。これは、ＨＵＤ２６０内で行く（ｇｏ）要求または連れてくる（ｇｅｔ）要求をコミュニカントがキューに入れるだけでなく、「移動する」ことなくテキストまたは音声を介して人々とコミュニケーションをとることができるようにすることにより改良される。システムは、各コミュニケーション要求が別のコミュニカントから受信されたとき、ユーザに通知する。ユーザは、要求を受け入れる、要求を無視する、または要求をコミュニケーションキューに追加することができる。この方法では、ユーザは後で非優先のコミュニケーションに応答することができる。たとえば、ユーザがビジー中（たとえば、現在のコミュニケーションセッションでふさがっている）に受信されたコミュニケーションをキューに入れ、ユーザが空きになった後、ユーザはコミュニケーションキュー内のコミュニケーション要求に応答することができる。
【０１５２】
上記に説明されるように、Ｓｏｃｏｃｏプラットフォームは、ユーザが会う人および場所を記録する関係データベースを保持する。リアルタイム連絡先とのユーザのあらゆる対話に対して、システムは関係データベース内に１以上の個々の対話レコードを生成する。各対話レコードは、対話の状況の記述を含む。たとえば、一部の実施形態では、対話レコードは、ユーザの識別子と、連絡先の識別子と、対話の場所の識別子（たとえば、ＨｏｍｅＳｐａｃｅの部屋）と、対話場所の階層の記述（たとえば、対話部屋がより大きなエリアとどのような関係があるかの記述）と、対話の開始時間および終了時間と、対話中に共有されたすべてのファイルおよび別のストリームのリストとを含む。したがって、リアルタイム対話ごとに、システムが、その対話がいつ行われたか、その対話がどこで行われたか、関与したコミュニカントに関して対話中に何が起きたか（たとえば、入場するおよび退場する）、ならびに、活動化されたまたは非活動化されたオブジェクトおよび共有されたファイルに関して対話中に何が起きたかを追跡する。そして、システムは、この情報に対する問合せの結果を場所に基づきソートされた順序で（たとえば、最も頻繁な、または最も新しい）提示することができる。
【０１５３】
一部の実施形態では、システムは、特定の場所（たとえば、Ｓｋｙｐｅの場所）に関連するＳｋｙｐｅ連絡先のソートされたリストをユーザに示すように構成されることがある。リストは様々な異なる方法で提示されることができる（たとえば、Ｓｋｙｐｅ、またはＳｏｃｏｃｏ、または両方での対話の頻度による、Ｓｋｙｐｅ、またはＳｏｃｏｃｏ、または両方で対話された総分数による、あるいはＳｋｙｐｅ、またはＳｏｃｏｃｏ、または両方での最も新しい対話による）。たとえば、対話レコード内に記憶された情報は、ユーザがどのエリアでだれと会ったかについての頻度ソートだけでなく、ユーザが最もよく訪れる１以上のエリアに関係なくユーザが会った人についてのソートを駆動するために使用されることがある。このデータは、一般に、ＨＵＤ２６０で使用されるが、（たとえば、ユーザのＨｏｍｅＳｐａｃｅを６回以上訪問した人々がデフォルトでノックすることなく入場することを許可する規則、または特定の時間にエリア内に存在した人々が、同時にそこで別のコミュニカントにより作成されたファイルを修正および削除することを許可する規則などの）アプリケーション開発者により発見的システムの一部として使用されることもある。
【０１５４】
（ＨＵＤ２６０ではタイル２６２により表される）場所のそれぞれが、関係データベース３６への問合せに結びつけられる。各場所に関して、対話サービスは、ユーザがそのエリア内で会った連絡先のすべてを求めて関係データベース３６に問合せを行う。対話サービスは、一般に対話の頻度または新しさ（たとえば、ユーザがだれと最後に対話したか）のいずれかでソートされたリストの形で、識別された連絡先を提示する。別の実施形態では、連絡先は何らかの別のアプリケーション特有の方法でソートされることがある。
【０１５５】
関係データベースへの問合せは、別の検索と組み合わされることができる。たとえば、関係データベースへの問合せは、別のコミュニケーションシステム（たとえば、Ｓｋｙｐｅ、Ｆａｃｅｂｏｏｋ、およびＦｌｉｃｋｒ）を使用する連絡先との対話に対して生成された連絡先履歴データへの問合せと組み合わされることがある。一例では、Ｓｋｙｐｅの場所に関連付けられたユーザのリアルタイム連絡先のソートされたリストを生成するために、Ｓｋｙｐｅの場所が、Ｓｋｙｐｅの場所およびユーザのＳｋｙｐｅ履歴データに関連するユーザの関係データへの問合せと関連付けられることがある。
【０１５６】
図１３および図１４は、ＨＵＤ２６０での人々および場所の基本的な移動を示す。左向き矢印２６４をクリックすると、関連する場所（すなわち、Ｍｙ  ＨｏｍｅＳｐａｃｅ）での対話の頻度によりソートされたリアルタイム連絡先のリスト２６６を表示する。たとえば、ＨＵＤ２６０のデフォルト状態は、ユーザのデスクトップの右手下の不動産を占有する最小化されたインタフェースである。新しいユーザの場合、ＨＵＤ２６０はユーザのＨｏｍｅＳｐａｃｅを表示する。ＨｏｍｅＳｐａｃｅは、ユーザの個人的共同作業のためのＳｏｃｏｃｏアプリケーションである（すなわち、ＨｏｍｅＳｐａｃｅはユーザ専用共同作業スペースである）。ＨｏｍｅＳｐａｃｅについては以下の節でより詳細に説明される。左向き矢印２６４をクリックすると、ユーザが自分自身のＨｏｍｅＳｐａｃｅで最も頻繁にコミュニケーションをとるリアルタイム連絡先を表示する。名前のリストは頻度でソートされる。リスト中の最初の名前（この例ではＤＶＷ）が、ユーザ（この例ではＰＪＢ）がＨｏｍｅＳｐａｃｅで最も頻繁に共同作業するコミュニカントを表し、ＥＡＧ、Ｔｉｍなどが続く。上向き矢印２６８をクリックすると、図１４に示されるように、頻度、新しさ、またはユーザにより定義された順序でソートされた、ユーザが訪問したことがあるリアルタイムの場所すべてのリストを表示する。場所のリストは、任意の瞬間にその場所で行われるリアルタイムの活動を示す。たとえば、ＤＶＷ、Ｋｉｍ、およびＪｏｅがみんなＳｏｃｏｃｏ  Ｍａｉｎの場所に存在し、Ｓｏｃｏｃｏ  ｍａｉｎの場所タイル２７２により表されるＳｏｃｏｃｏの場所でリアルタイムの会話をしている。同様に、Ｊｅｆｆ、Ａｎｎ、およびＪａｎｅは、Ｆａｃｅｂｏｏｋの場所タイル２７６により表されるＦａｃｅｂｏｏｋの場所にいる。
【０１５７】
任意のユーザが特定の場所から退場する、または特定の場所に入場すれば、その特定の場所を表す場所タイル内のプレゼンス表示器（すなわち、名前または別の識別子に関連する円により示される「スプライト」）が、リアルタイムで自動的に更新される。この特徴は、アプリケーション設計者が場所タイルにアプリケーション特有のリアルタイムデータを置く能力を実証している。場所タイルは、コミュニカント、またはユーザの場所に関連して出現することがある。たとえば、ゲーム開発者が、コミュニカントがゲーム環境内のどこにいるかのマップをエクスポートすることがあり、その結果、関係データベースレコードを介してそのコミュニカントに接続される別の人々が、そのコミュニカントの現在の活動についてのリアルタイム・データ・ストリーム・フィードを受け取るようになる。次に、別の人々はこの場所タイルを使用して、そのコミュニカントまで移動し、コミュニカントとコミュニケーションをとる、またはコミュニカントを連れてくる。ＨＵＤ２６０はまた、同時に多くの異なるアプリケーションに対する人々および場所へのこのインタフェースを管理することができる。
【０１５８】
ＨＵＤ場所タイル２６２で使用されるリアルタイムデータが、場所タイルにより表される該当するエリアをホスティングするエリアサーバ内でこの目的のために設計されたインタフェースにより提供される。エリアサーバは、そのユーザが仮想エリアを見る権限に基づき、異なるＨＵＤ場所タイル・データ・フィードをユーザに提供することがある。たとえば、ユーザが見る権限がない仮想エリアにコミュニカントが入場する場合、ＨＵＤ場所タイルは、限定された情報を示すことも、または詳細な情報を全く示さないこともある。さらに、エリアサーバにより提供されるＨＵＤ場所タイル・データ・フィードは、加入しているＨＵＤにエリアのアプリケーション特有の視野を提示するために、そのエリアサーバを運用しているアプリケーション提供業者によりカスタマイズされることがある。
【０１５９】
Ｃ．場所ごとに連絡先を見る
図１４は、ユーザがどのようにして場所ごとに自分自身のリアルタイム連絡先をソートすることができるかを示す。一部の実施形態では、場所はまた、対話の頻度により、最も新しい対話により、または何らかの別の対話ベースのソート基準によりソートされる。上向き矢印２６８をクリックすると、ユーザが最も頻繁に対話する（たとえば、そこでコミュニケーションをとる）場所を表示する。これらの場所のどれについても、ユーザが個々の左向き矢印（たとえば、Ｓｏｃｏｃｏ  Ｍａｉｎの場所タイル２７２に関連する矢印２７０）をクリックして、ユーザがその場所で最も頻繁にコミュニケーションをとるリアルタイム連絡先のリストを表示することがある。ユーザの一覧は場所ごとに変化するが、リスト間で重複がある可能性が高いことがある。
【０１６０】
たとえば、Ｓｏｃｏｃｏ  Ｍａｉｎの部屋の場所を表すタイル２７２に関連する左向き矢印２７０をクリックすると、ユーザがＳｏｃｏｃｏ  Ｍａｉｎの部屋でコミュニケーションをとる人々を表すリアルタイム連絡先のリスト（ＤＶＷ、Ｊｏｅ、Ｔｏｍ、Ｍａｒｇａｒｅｔ）を表示する。Ｆａｃｅｂｏｏｋの場所タイル２７６の左向き矢印２７４をクリックすると、異なる１組のリアルタイム連絡先、すなわちユーザがＦａｃｅｂｏｏｋアプリケーション内でコミュニケーションをとるリアルタイム連絡先を表示する。連絡先のこのリストを生成する際、システムは、ユーザのＦａｃｅｂｏｏｋ関係グリッドデータに問い合わせる。具体的には、システムは、Ｓｏｃｏｃｏ関係データベース３６への場所ベースのＳｏｃｏｃｏ問合せと、Ｆａｃｅｂｏｏｋ関係グリッドデータへの問合せの合成（または集約）を行って、Ｓｏｃｏｃｏ関係データベース３６にない、ユーザのＦａｃｅｂｏｏｋ連絡先を取り出す。図１４では、Ｆａｃｅｂｏｏｋの場所に関連する最も左の３つの連絡先がまだＳｏｃｏｃｏ連絡先にないＦａｃｅｂｏｏｋ連絡先であることを「ｆ」アイコンが示す。そして、「Ｉｎｖｉｔｅ」アイコンが、Ｓｏｃｏｃｏの一員になる招待状をこれらのＦａｃｅｂｏｏｋ連絡先に送るためのコントロールに関連する。
【０１６１】
図１４でＨＵＤ２６０により示されるリアルタイム連絡先の図は、Ｓｏｃｏｃｏプラットフォームによりユーザがどのようにして推測されたソーシャルネットワークを作成することができるようになるかを明らかにする。従来のソーシャル・ネットワーク・サービス（ＬｉｎｋｅｄＩｎ、Ｆａｃｅｂｏｏｋ、ＭｙＳｐａｃｅなど）は、ユーザがネットワークサービスに情報をプッシュする（友人に送信し招待し、そのコミュニカントが仕事の同僚か、友人か、または偶然の知り合いであるかどうかを明示的に記述する）必要がある。一方、Ｓｏｃｏｃｏプラットフォームは、リアルタイム連絡先間の関係を推測する。たとえば、「私は、ＤＶＷとＳｏｃｏｃｏ  Ｍａｉｎ（仕事場所）でコミュニケーションをとっているので、ＤＶＷが仕事仲間であることを知っている」。Ｓｏｃｏｃｏプラットフォームは、この推測された関係情報を意味のある方法でユーザに戻して提示する。
【０１６２】
Ｄ．場所に行く
Ｓｏｃｏｃｏプラットフォームは、常時接続の途切れのないコミュニケーション環境を提供する。コミュニケーションの従来のトランザクション形式（ユーザが番号をダイヤルし、接続が確立されるのを待たなければならない電話またはＳｋｙｐｅなど）と異なり、Ｓｏｃｏｃｏプラットフォームにより、適切な権限を有するユーザが簡単に場所に入場し、存在する人ならだれとでも話すこと、または対話することを始めることができるようになる。
【０１６３】
図１５は、Ｓｏｃｏｃｏのための基本接続隠喩を示す。ユーザがＳｏｃｏｃｏ  Ｍａｉｎの場所タイル２７２をクリックして、Ｓｏｃｏｃｏ  Ｍａｉｎの場所に入場する。その時点で、ＨＵＤインタフェースが、既にＳｏｃｏｃｏ  Ｍａｉｎの場所に存在したその他のコミュニカント（ＤＶＷ、Ｋｉｍ、およびＪｏｅ）と一緒にＳｏｃｏｃｏ  Ｍａｉｎの場所にいるユーザ（ＰＪＢ）を示す。エリア設計者により確立された切替規則に基づき、Ｓｏｃｏｃｏプラットフォームは、たとえば、彼らがいずれも互いのスプライトまたはアバタを見て、互いにコミュニケーションをとる（たとえば、話しかけ、聞く）ことができるように、Ｓｏｃｏｃｏ  Ｍａｉｎの場所内に現在いるすべてのコミュニカントの指定されたリアルタイムストリーム（たとえば、マイクロホンおよびスピーカからのストリーム）を多重化する。
【０１６４】
Ｅ．連絡先履歴および人々との接続
ＳｏｃｏｃｏプラットフォームおよびＨＵＤ２６０により、ユーザが自分自身のリアルタイム連絡先のうちのいずれかとの自分自身のコミュニケーション履歴を見ることができるようになる。一部の実施形態では、Ｓｏｃｏｃｏプラットフォームは、ユーザの連絡先を表すタイルの特定の１つの上にユーザのマウスポインタを置くことに応答して、そのコミュニカントとの最近のコミュニケーション履歴（たとえば、テキストチャット、音声会話、ファイル共有など）をすべて表示する。たとえば、図１６は、ユーザとＫａｒｅｎの間のメッセージが垂直に入力順に列挙される、最近のＫａｒｅｎとのテキストチャットを含むインタフェース２７８を示し、ユーザのメッセージが左側に移されたメッセージブロックで表示され、Ｋａｒｅｎのメッセージが右側に移されたメッセージブロックで表示される。インタフェース２７８は、Ｓｏｃｏｃｏプラットフォーム上で別のコミュニカントと接続するための基本的方法も表示する。
・Ｇｏ−ユーザをその連絡先がいる場所に連れて行く
・Ｇｅｔ−そのコミュニカントをユーザがいる場所に連れてくる
・Ｔｅｘｔ−インスタントメッセージを送信する
・Ｗｈｉｓｐｅｒ−連絡先だけが音声メッセージを聞くことができるように、連絡先のヘッドセットに混合される短い音声メッセージ（音声の断片）を送信する。ＨＵＤは、ユーザに連絡先がどこにいるか、そして連絡先が何をしているかを示し、それにより、ユーザが選択した音声メッセージの内容を知らせることができる有益な状況情報をユーザに提供する。
【０１６５】
システムは、一般に、ユーザが連続してコミュニケーションをとる人々をＧｏまたはＧｅｔすることができるように洗練されたデフォルトを含むが、より偶然の連絡先であるコミュニカントをＧｏまたはＧｅｔする権限を求めなければならないことがある。
【０１６６】
ＳｏｃｏｃｏプラットフォームおよびＨＵＤ２６０はまた、ユーザが別のコミュニケーションアプリケーションを通して得る連絡先（たとえば、Ｓｋｙｐｅ連絡先）であるが、必ずしもＳｏｃｏｃｏユーザではない連絡先に接続できるようにする。たとえば、図１７では、ＪｏｅがユーザのＳｋｙｐｅ連絡先だが、彼はＳｏｃｏｃｏユーザではない。Ｓｋｙｐｅのプログラムインタフェースと統合することにより、Ｓｏｃｏｃｏプラットフォームは、直接ＨＵＤ２６０内にユーザのＳｋｙｐｅ連絡先を得て、表示する。Ｓｋｙｐｅ履歴インタフェース２８１内のコントロール２８０（「Ｃａｌｌ  ｏｎ  Ｓｋｙｐｅ」とラベルがつけられている）をクリックすると、たとえば、Ｓｋｙｐｅを使用してＪｏｅへの呼出しを開始する。Ｓｏｃｏｃｏプラットフォームは、そのオーディオストリームを取り上げ、それを現在の部屋（たとえば、図１７に示される例のＭｙ  ＨｏｍｅＳｐａｃｅ）の中のその他のユーザと混合しているストリームに多重化する。したがって、Ｊｏｅは、Ｓｋｙｐｅにより提供されるオーディオ体験しか有しないがＳｏｃｏｃｏ会話に参加することができる。人々が異なるコミュニケーションアプリケーション（たとえば、Ｓｋｙｐｅ）を介してＳｏｃｏｃｏプラットフォームユーザとコミュニケーションをとることができるようにするコミュニケーションインフラストラクチャの例示的な実施形態が、図３６に関連して以下に説明される。
【０１６７】
Ｆ．連絡先の現在位置を見る
Ｓｏｃｏｃｏプラットフォームにより、開発者がサードパーティのＷｅｂサイトからデータ（たとえば、マルチメディア・コンテンツ・データ、ならびにユーザの友人およびユーザの友人の友人などの関係データ）を、そのデータに関連するメタデータの検索を可能にする公開されたＡＰＩを介して抽出することができるようになる。具体的には、Ｓｏｃｏｃｏプラットフォームは、開発者が、既存のデータストア（Ｓｏｃｏｃｏかエリアアプリケーション設計者のどちらかとは独立に運用および管理されることがある）をＳｏｃｏｃｏリアルタイム対話コミュニケーション環境（すなわち、Ｓｏｃｏｃｏの場所）に統合することができるようにする様々なプログラムインタフェースを含む。
【０１６８】
図１８は、ユーザがどのようにして所与の連絡先の現在位置を決定することができるかを示す。マウスポインタをリアルタイム連絡先（すなわち、Ｋａｒｅｎ）のグラフィック表現２８４の上に置くことに応答して、Ｓｏｃｏｃｏプラットフォームは、ミニマップ図２８２内のスプライト２８５によりその連絡先の現在位置を表示する。この例では、連絡先Ｋａｒｅｎは、Ｆｌｉｃｋｒ  Ｉｔａｌｙ  Ｐｈｏｔｏｓとタイトルをつけられたリアルタイムの部屋に存在する。Ｆｌｉｃｋｒは、写真を投稿し、他者により投稿された写真について意見を述べるようにユーザに促す、人気のあるコミュニティ指向写真共有サイトである。Ｓｏｃｏｃｏプラットフォームは、たとえばユーザが現在どの写真を見ているか等の、ユーザに関するリアルタイムの情報を得るためにそのようなサービスと統合する。Ｆｌｉｃｋｒ  Ｉｔａｌｙ  Ｐｈｏｔｏｓの部屋は、ＩｔａｌｙメタデータタグでラベルをつけられたＦｌｉｃｋｒデータベース写真から抽出するように構成された。そして、写真に関連する別のメタデータに基づき（たとえば、写真家により）、写真がＦｌｉｃｋｒ  Ｉｔａｌｙ  Ｐｈｏｔｏｓの部屋内部に配列される。
【０１６９】
エリアに関連する場所タイル２８２を提示することにより、Ｋａｒｅｎが図１８で同様にスプライト２９０により示される５人の別のコミュニカントと一緒にＦｌｉｃｋｒ  Ｉｔａｌｙの部屋で写真（図１８において、サムネイル２８６、２８７、および２８８により示される）を見ていることをユーザは理解する。Ｆｌｉｃｋｒ  Ｉｔａｌｙの部屋をクリックすると、（ＨＵＤインタフェースに示されるように）彼／彼女のリアルタイム連絡先の位置にユーザを直接連れて行き、この場合、ユーザは即座に音声チャットまたはテキストチャットでの会話を開始することができる。ユーザは、ＨＵＤ２６０の右手側にある垂直に向いた漸進的な没入コントロールスライダ２６５により示される漸進的な没入コントロール２６１を変更することができる。たとえば、スライダをその現在位置（「２Ｄ」のラベルがつけられている）から「３Ｄ」のラベルをつけられた位置まで変更すると、Ｆｌｉｃｋｒ  Ｉｔａｌｙ写真部屋の可視表示を図１８に示される２Ｄミニマップ図２８２から図１９に示される３Ｄ表現２９０に変更する。
【０１７０】
図１９では、Ｋａｒｅｎが、Ｆｌｉｃｋｒ  Ｉｔａｌｙ  Ｒｏｏｍの３Ｄ表現２９０で、写真家Ｃｌａｕｄｉｏ−Ｘによる写真２９２を見ているアバタ２９１により表される。部屋は、ユーザが、ビュースクリーン上に表示される現在の写真の下にサムネイル画像２９８のアレイとして示される連続した画像の中の前の写真／次の写真を見ることができるようにするコントロール２９４、２９６を含む。図１８および図１９に示されるように、Ｓｏｃｏｃｏプラットフォームにより、ユーザが写真を移動／閲覧するために、２次元または３次元の没入体験の形でリアルタイム対話することができるようになる。Ｓｏｃｏｃｏプラットフォームにより、開発者が、ユーザおよび彼らの連絡先により蓄積された非同期データ（たとえば、Ｆｌｉｃｋｒ写真）を取り出すようにリアルタイムコミュニケーション環境（すなわち、Ｓｏｃｏｃｏの場所）を構成することができるようになる。次に、これらの場所は、ユーザのリアルタイム連絡先と連絡先の写真および別のコンテンツに関して対話する、およびコミュニケーションをとるためにユーザにより使用されることができる。この方法では、Ｓｏｃｏｃｏプラットフォームは、ユーザ自身の非同期データ、および別の既存のデータストアを使ってユーザの体験を強化する。ＳｏｃｏｃｏプラットフォームおよびＨＵＤ２６０により、ユーザが様々な異なる場所からユーザのリアルタイム連絡先と絶えず連絡したままでいることができるようになる。
【０１７１】
図２０では、ユーザがＦｌｉｃｋｒ  Ｉｔａｌｙ  Ｐｈｏｔｏの部屋で彼のリアルタイム連絡先であるＫａｒｅｎと合流した。この実施形態では、ユーザはハンドポインタ２９７で表される。第２のリアルタイム連絡先（たとえば、連絡先タイル３００により表されるＤＶＷ）が、直接ＨＵＤ２６０からユーザと音声会話を開始する。ＤＶＷは、ユーザとの接触を開始したとき、たまたまＭＭＯＧ（大規模マルチ・ユーザ・オンライン・ロール・プレーイング・ゲーム）にいる。この例では、ＤＶＷは、ユーザがＭＭＯＧでＤＶＷと合流するように要求し、そのことがミニマップ図３０２に示される。ユーザは、ミニマップ位置図３０２を見て、ＤＶＷの正確な位置の中をクリックする。これらの実施形態では、ＭＭＯＧのためのバックボーンインフラストラクチャを提供するゲームサーバが、場所情報をＨＵＤ２６０にエクスポートする。ＳｏｃｏｃｏプラットフォームとＭＭＯＧとの間の統合に基づき、Ｓｏｃｏｃｏプラットフォームは、ＭＭＯＧクライアントソフトウェアを直接起動し、ユーザをユーザのリアルタイム連絡先の同じ位置に置くことができる。これらの実施形態では、ＳｏｃｏｃｏライブラリがＭＭＯＧクライアントソフトウェアに統合され、その結果、ＭＭＯクライアントアプリケーションはまだＳｏｃｏｃｏプラットフォームにアクセスおよび使用していないが、任意の従来のアプリケーションと同様に起動されるようになる。
【０１７２】
図２１は、ユーザが図２０に示されるミニマップ図３０２を介してＭＭＯＧに入場するように要求したＭＭＯＧの位置３０６（すなわち、ゾンビでいっぱいの地下牢）でのユーザのグラフィック表現３０４を示す。この例は、非Ｓｏｃｏｃｏ「エリア」（すなわち、ＭＭＯＧ）を管理するアプリケーションサーバにより生成されるＨＵＤ場所タイルも例示する。この例は、Ｓｏｃｏｃｏユーザが、そのアプリケーションの外部からユーザのリアルタイム連絡先の状態を監視することができるように、既存のアプリケーションサーバがどのようにしてＨＵＤ２６０にインタフェースをエクスポートすることができるかを例示する。実際には、ユーザは、自分でアプリケーションをかつて使用したことがなくても、それらの連絡先の状態を監視することができることがある。そのようなユーザがＨＵＤ２６０を介して自分のＳｏｃｏｃｏプラットフォームへのＧｏ要求を起動する場合、その要求は、そのアプリケーション提供業者に対する加入者獲得機会を作り出す。さらに、このＨＵＤデータフィードは、ユーザの個々のＨＵＤにおけるユーザの場所タイルリスト内の場所タイルとして使用されることができる。
【０１７３】
Ｇ．ＨｏｍｅＳｐａｃｅアプリケーション
上記に説明されるように、ＨｏｍｅＳｐａｃｅはＳｏｃｏｃｏプラットフォーム上に構築されたＳｏｃｏｃｏアプリケーションである。ＨｏｍｅＳｐａｃｅは、ユーザがサービスを受けるために最初に登録するときに、デフォルトですべてのユーザに提供される。ＨｏｍｅＳｐａｃｅは、ユーザの個人的共同作業空間である。ユーザは以下のことができる。
・写真、ビデオ、音楽、または任意の形式のリッチメディアを使ってＨｏｍｅＳｐａｃｅをカスタマイズする
・異なる外観テーマ、または幾何形状／アーキテクチャを選択して、ユーザの空間をパーソナライズする、または自分自身の空間を作成する
・自分で作成した、またはユーザがＳｏｃｏｃｏまたは別のユーザから得たまたは購入した仮想オブジェクトを使って空間を装飾する
・・・・または様々な別のパーソナライズオプション
【０１７４】
図２２は、ユーザのＨｏｍｅＳｐａｃｅがどのようにしてカスタマイズされることがあるかの一例を示す。この例では、ユーザが、ＨｏｍｅＳｐａｃｅエリアの部屋３１４内の壁３１２上に提示されるインタフェース２１０を介してスケジューリングアプリケーションと対話することができる。インタフェース２１０は、ユーザのスケジュールの週ビューのグラフィック表現３１６と、ユーザがスケジューリングアプリケーションを移動／制御することができるようにする１組のコントロールボタン３１８とを含む。
【０１７５】
Ｈ．ＯｆｆｉｃｅＳｐａｃｅアプリケーション
１．はじめに
ＯｆｆｉｃｅＳｐａｃｅは、Ｓｏｃｏｃｏプラットフォーム上に構築されたＳｏｃｏｃｏアプリケーションである。ＯｆｆｉｃｅＳｐａｃｅは、企業市場のためのリアルタイムコミュニケーション・アプリケーションである。ＯｆｆｉｃｅＳｐａｃｅは、Ｓｏｃｏｃｏリアルタイムプラットフォーム上に構築される。ＯｆｆｉｃｅＳｐａｃｅは、プラットフォーム上のアプリケーションにより提供される技術およびユーザ体験の概観を提供する。
【０１７６】
図２３は、ＯｆｆｉｃｅＳｐａｃｅがどのようにしてＨＵＤ２６０から起動され、使用されることができるかを示す。この例では、共通仮想エリアが、仮想エリアの階層構成に従っていくつかの別の仮想エリアを含む。ＨＵＤ２６０は、ユーザがプレゼンスを有する特定の仮想エリア（たとえば、Ｓｏｃｏｃｏ  Ｍａｉｎの部屋３２０）のグラフィック表現だけが表示される第１の可視化モードと、共通仮想エリアにより含まれる仮想エリアのすべてのグラフィック表現が空間配置で表示される第２の可視化モードとを有する可視化コントロール（すなわち、拡大アイコン３２２）を含む。この例では、ＨＵＤ２６０は、最初に、３つのリアルタイム連絡先（ＤＶ、ＪＡ、およびＰＢ）が存在するＳｏｃｏｃｏ  Ｍａｉｎの部屋３２０だけを表示する。拡大アイコン３２２をクリックすると、Ｏｆｆｉｃｅ  Ｓｐａｃｅアプリケーションの全体のエリア図３２４を示す。エリア図３２４は、Ｓｏｃｏｃｏ  Ｍａｉｎの部屋３２０と、ＯｆｆｉｃｅＳｐａｃｅアプリケーションのそのインスタンスに関連する５つの別の部屋を含む、ＯｆｆｉｃｅＳｐａｃｅアプリケーションの現在のインスタンスにより含まれるリアルタイムの部屋とをすべて示す。この例では、ＯｆｆｉｃｅＳｐａｃｅアプリケーションの図示されるインスタンスは、Ｍａｒｋｅｔｉｎｇ３２６と、Ｅｎｇｉｎｅｅｒｉｎｇ３２８と、Ｄｅｓｉｇｎ３３０とのための部屋というように機能的に系統立てられている。ＯｆｆｉｃｅＳｐａｃｅアプリケーションの個々の部屋には、ファイルアイコン３３２により示されるように、それらに関連するファイルがあり、このアイコンは関連する仮想エリアに可視的に接続される。これらの部屋のグラフィカル描写は、リアルタイムプレゼンス情報を、すなわち、現在各部屋にどのリアルタイム連絡先が存在するかも示す。ユーザは、自分自身がその部屋に入場し、その部屋に存在するその他のコミュニカントとのリアルタイムでの共同作業（音声、ファイル、可視化など）を始める権限を有する、ＯｆｆｉｃｅＳｐａｃｅアプリケーションの任意の部屋にクリックして入場することができる。
【０１７７】
以下の説明は、以下の例示的なシナリオに基づく。３人の同僚が朝、彼らの上司と一緒にプレゼンテーションの準備をするために、仮想的に会議をしている。３人の同僚は異なる位置にいるが、彼らのＰＣの前に存在し、彼らはＳｏｃｏｃｏの仮想的な場所で会議をしている。
【０１７８】
２．ヘッドアップ表示装置
図２４Ａおよび図２４Ｂは、ユーザのデスクトップ３４２の右手下にドッキングされた半透明のユーザインタフェースにより実現されるヘッドアップ表示装置（ＨＵＤ）の別の実施形態３４０を示す。ＨＵＤ３４０は、Ｓｏｃｏｃｏプラットフォームへのアプリケーションインタフェースである。ＨＵＤ３４０の特徴は以下を含む。
・ＨＵＤ３４０は、ユーザのデスクトップ上で常に実行されていることを意図した小規模で軽量なアプリケーションであり、
・ＨＵＤ３４０は、連絡先だけでなく対話が行われるＳｏｃｏｃｏの場所を見て対話する簡単なインタフェースをユーザに提供する。
【０１７９】
この実施形態では、ＨＵＤ３４０は、コントロールへの永続するインタフェースおよびアクセスを提供する実質的に透明な（やや半透明な）ユーザ・インタフェース・オーバレイにより実現される。図２４Ａに示される実施形態では、ＨＵＤ３４０は、以下のやや半透明な要素の限定された１組の１以上のインタフェースを除き、透明である。
・漸進的没入コントロール３４５の輪郭３３７、
・やや半透明な８角形の場所境界３３９内部の塗りつぶされていないエリアにより表される、ユーザの現在位置３４４の輪郭、
・Ｓｏｃｏｃｏの場所３４４内のリアルタイム連絡先を表すスプライト３４１、および
・ＨＵＤ３４０の境界を定める線３３３。
【０１８０】
この方法では、ＨＵＤ３４０は、ユーザの表示スクリーンの下にある部分を最小限しか不明瞭にすることなく情報を表示しコントロールへのアクセスを提供する、真のインタフェースの役割を果たすように設計される。ＨＵＤ３４０は、効果的に以下を示す。
・現在オンラインであるユーザのリアルタイム連絡先のうちの何人か、
・ユーザ、およびユーザのリアルタイム連絡先が現在「いる」場所（たとえば、ユーザがＳｏｃｏｃｏ空間内で現在いる場所、およびユーザのリアルタイム連絡先が空間的仮想環境内でいる場所）、
・関連する仮想エリア内部の場所（リアルタイム対話環境）の可視化を制御する漸進的没入コントロールインタフェース３４５、ならびに
・ユーザが特定の場所に迅速に接続することができるようにする移動コントロール。
【０１８１】
没入制御インタフェース３４５は、塗りつぶされていないやや半透明のグラフィカル没入レベル表示器３４３と、やや半透明な没入レベルコントローラ（またはスライダ）３４７と、グラフィカル没入レベル表示器３４３に沿ったスライダ３４７の異なる位置に対応する異なる没入レベルにラベルをつけるやや半透明なテキストの没入レベル表示器３４９とを含む。ユーザは、入力装置（たとえば、コンピュータマウス）を使ってグラフィカル没入レベル表示器３４３に沿ってスライダ３４７を動かして、１組の異なる対話レベルから、関連する仮想エリアとの対話の所望のレベルを選択することができる。たとえば、例示の実施形態では、没入制御インタフェース３４５により、ユーザが、仮想エリアとの対話の３次元グラフィック・インタフェース・モード（「３Ｄ」モード）と、仮想エリアとの対話の２次元グラフィック・インタフェース・モード（「デスクトップ」モード）と、仮想エリアとの対話の非グラフィック・インタフェース・モード（「Ｏｆｆ」モード）とのうちのいくつかの間を選択的に変更することにより、対話のレベルを変更することができるようになる。対話の３次元グラフィック・インタフェース・モードでは、コミュニカントの個々のグラフィック表現が３次元アバタとして描かれる。対話の２次元グラフィック・インタフェース・モードでは、コミュニカントの個々のグラフィック表現が２次元スプライトとして描かれる。そして、非グラフィック・インタフェース・モードでは、コミュニカントおよび仮想エリアの個々のグラフィック表現が省略される（すなわち、表示されない）。
【０１８２】
例示のＯｆｆｉｃｅＳｐａｃｅアプリケーション実施形態では、ユーザは、会議が行われるＳｏｃｏｃｏの場所（すなわち、Ｏｆｆｉｃｅ）を示すデフォルトのＨＵＤ３４０を有する。Ｓｏｃｏｃｏの場所は、ＨＵＤ３４０内に表示される８角形会議室３４４により表される。最初、参加者のいずれも会議には参加していないので、会議室３４４は空きである。
【０１８３】
３．デスクトップ統合
図２４Ａに示されるように、ユーザは、自分自身の通常のＷｉｎｄｏｗｓ（登録商標）環境で作業することができる一方で、ＳｏｃｏｃｏプラットフォームおよびＨＵＤが実行され、リアルタイム・コミュニケーション・セッションを開始する準備ができている。たとえば、ユーザは、Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｅｌなどの別のアプリケーションを使って作業して、後でＳｏｃｏｃｏプラットフォーム上のリアルタイム・コミュニケーション・セッションで共有されることができる情報（たとえば、図２４Ａで示されるＥｘｃｅｌスプレッドシート３４６）を生成することがある。ユーザが、（ｉ）環境の中にファイルをドラッグ・アンド・ドロップでき、（ｉｉ）依然としてエリア内にいるが、エリア環境とは無関係にユーザ固有のクライアントアプリケーションを使用して、エリア内に記憶されたファイルを使用することができ、そして、（ｉｉｉ）より一般的にエリア内部のプレゼンスおよび位置を、いくつかのアプリケーションのうちの１つとしてではなく別のオペレーティングシステム機能に類似するユーザの動作環境の一態様として扱うことができるように、仮想エリアがユーザのデスクトップ３４２と統合される。
【０１８４】
４．事前に予定された会議
Ｓｏｃｏｃｏプラットフォームは、臨時の会議または事前に計画された会議を考慮する。事前に計画された会議に対して、Ｓｏｃｏｃｏプラットフォームはユーザに警報を発行する。たとえば、図２５に示される実施形態では、会議が始まろうとしているということをユーザに通知するために、「８：００ａｍ−Ｐｒｅｐ  Ｆｏｒ  Ｏｐｓ  Ｒｅｖｉｅｗ（午前８時−業績概況の事前準備）」というタイトルをつけられた警報３４８がＨＵＤ３４０に表示され、ユーザが再検討会議に参加できるようにするために「Ａｃｃｅｐｔ」ボタン３５０がユーザに提示される。警報（すなわち、「Ａｃｃｅｐｔ」）をクリックすると、ユーザをＳｏｃｏｃｏの場所（８角形の仮想会議室）に接続する。Ｓｏｃｏｃｏの場所では、ユーザは「スプライト」と呼ばれる小さな明るい円３５２で表され、このことは、ユーザが会議室３４４内に存在することをユーザに示す（図２６を参照のこと）。リアルタイムコミュニケーションの全体像から、ＯｆｆｉｃｅＳｐａｃｅのこの実施形態でのストリーム切替規則が、所与の部屋の中のすべてのユーザがその方法で接続されることを指定するので、ユーザは今その仮想Ｓｏｃｏｃｏの場所にいて、その同じ場所にいる他のだれとでも会話することができる。
【０１８５】
図２７に示されるように、２人の同僚が会議室の場所３４４でユーザに加わる。これらの同僚は両方とも同様にＳｏｃｏｃｏの場所３４４内の個々のスプライト３５４、３５６により示される。ここで、すべてのコミュニカントは、今や部屋内の互いのプレゼンスを見る（たとえば、互いのスプライトを見る）だけでなく互いの声を聞くことができる。この点で、Ｓｏｃｏｃｏプラットフォームは、参加者すべてのマイクロホンおよびスピーカを一緒に多重化する。そのＳｏｃｏｃｏの場所内のだれもが、その場所内の他のだれでも見ることまたは声を聞くことができる。
【０１８６】
５．漸進的な没入
コミュニカントが仮想エリア３４４内で対話する間、ＨＵＤ３４０はユーザにユーザ自身の所望の可視化に対して独立したコントロールを提供する。たとえば、ユーザは、Ｓｏｃｏｃｏの場所の最小化された図を表示し（デスクトップの右手下隅に最小化される）、Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｅｌなどの異なるアプリケーションで作業をする間、オーディオ会話に参加することがある。次に、ユーザは彼の可視化図式を変更することに決め、Ｓｏｃｏｃｏの場所のより没入する３次元描画に入ることがある。このことは、ＨＵＤ３４０内の漸進的没入スライダ３４７の設定を（図２７に示されるような）Ｄｅｓｋｔｏｐから（図２８に示されるような）３Ｄに変更することにより達成される。３Ｄ可視化モードになると、ユーザのデスクトップは、共有Ｓｏｃｏｃｏの場所３４４の３Ｄ描画を表示する。ここで、コミュニカント（Ｄｅｓｋｔｏｐモードではスプライト）は、図２８に示されるように３Ｄアバタ３６２、３６３（ハンドポインタに対応する）、３６４の形をとる。
【０１８７】
Ｓｏｃｏｃｏの場所３４４に関連するどんなデータも、ビュースクリーン３６６、３６８、３７０上に表示されることができる。ビュースクリーンは、いかなる任意のデータでも描画するために使用されることができる一般的なデータ描画構成要素である。ビュースクリーン上に描画されることができるデータのタイプの例は、以下のものを含む。
・Ｍｉｃｒｏｓｏｆｔ  ＰｏｗｅｒＰｏｉｎｔプレゼンテーション
・ビデオ
・Ｗｅｂカメラの出力
・組織のＥＲＰシステムから直接得られるリアルタイムデータ
【０１８８】
Ｓｏｃｏｃｏは３Ｄ可視化技術を活用して、必要に応じてコミュニケーション体験を強化する。例示の実施形態では、Ｓｏｃｏｃｏの場所は、情報が３つの隣接する壁上に表示され、そして、壁から壁に（または、厳密な２Ｄ表示でのタイル張りされたウィンドウ間を）移動することなくただ一目で容易に見られることができるように８角形として設計されている。別の実施形態では、Ｓｏｃｏｃｏの場所は、任意のタイプの幾何学的形状の形（たとえば、長方形、円形、５角形、および任意の形状）をとることがある。幾何形状の選択は、アプリケーション設計者次第である。
【０１８９】
６．ソーシャルプロセッサ
Ｓｏｃｏｃｏプラットフォームは、開発者がソーシャルプロセッサを規定し、プラグインを介してソーシャルプロセッサを届ける能力を含む。ソーシャルプロセッサは、特別なイベントが発生したとき、または特別な条件が満たされたとき（たとえば、別のアバタへの接近、エリア内の位置、および、たとえばコミュニカントの入場または退場によるエリアの状態の変化のうちの少なくとも１つによりトリガされる自動的な動き）、自動的に実行される１組の命令である。ソーシャルプロセッサは、Ｓｏｃｏｃｏの場所内のユーザまたはオブジェクトの動きを制御するいかなる任意のプログラムルーチンでありうる。たとえば、一部の実施形態では、アバタがビュースクリーンに接近する場合、ソーシャルプロセッサは、アバタをグリッドに自動的にはめて、スクリーンの前でアバタを中心に置き、その結果、ユーザはスクリーンのコンテンツを容易に見ることができるようになる。ソーシャルプロセッサのこの特徴が、人物の動きの複雑な操作の必要性をなくす。
【０１９０】
ソーシャルプロセッサの別の例が、アバタが自動的に回転して向きを変えて、別のユーザの存在を認めることができる能力を含む。たとえば、図２９は、ユーザがＳｏｃｏｃｏの場所に入場することに応答して、図２８で互いに向かい合うことからユーザの方を向くように向きを変える２人のアバタを示す。これら２人のアバタに関連するユーザは、彼らのアバタを手動で操作する必要がない。その代わり、ソーシャルプロセッサは自動的に彼らの頭を回転させて、新しいユーザを認めた。
【０１９１】
図２８および図２９に示される実施形態では、その空間に関連するファイル（たとえば、文書）があることをユーザに知らせるために、ＨＵＤ３４０内にファイルアイコン３８９が表示される。３Ｄ可視化では、ユーザはハンドポインタ３６３を使用して、文書上をクリックすることによりテーブル３０３に示される文書３０１のうちの１つを取り上げることができる。そして、ユーザは、選択されたビュースクリーンに文書を移動させハンドポインタ３６３でクリックすることにより、ビュースクリーン３６６〜３７０の１つに文書を関連付けることができる。Ｓｏｃｏｃｏプラットフォームは、この動作を、選択されたビュースクリーン上に文書を提示する指令と解釈する。一部の実施形態では、Ｓｏｃｏｃｏプラットフォームは、エリアサーバ上で実行されるアプリケーションプログラム（たとえば、Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｅｌ）を使用して、ビュースクリーン上に文書を描画する。Ｓｏｃｏｃｏの場所にいるだれもが、関連するビュースクリーン上に描画されている文書の提示を制御することができるようにするために、（たとえば、スクロールアップ／ダウン、ページアップ／ダウン、次の／前のスライドなどの）各ビュースクリーン３６６〜３７０の下にコントロールボタン３０５を提供する。したがって、Ｓｏｃｏｃｏプラットフォームは、コントロールボタンを３Ｄ可視化のコンテンツ描画面（たとえば、ビュースクリーン）と関連付ける。
【０１９２】
７．動的空間
Ｓｏｃｏｃｏプラットフォームは、動的空間（すなわち、ユーザ動作により要求に応じて生成される仮想Ｓｏｃｏｃｏの場所）の生成を考慮する。この処理は、一般に仮想空間の領域を追加または削除することによりエリア定義を変更することを伴う。アプリケーション設計者は、様々な形状およびストリーム処理特徴を有するテンプレート（たとえば、仮想的な部屋）を規定して、所望の使用パターンに基づきエリアへの追加を容易にすることができる。たとえば、仮想会議呼出しのために設計されるエリアでは、アプリケーション設計者は、出席者の一部との分科会のために設計される部屋タイプと、スライドと、スプレッドシートと、リアルタイムフィードとからの詳細な情報を提示するための別の部屋タイプを規定することがある。エリアが初めて使用されるとき、基本の１組の１以上の部屋と共に出現し、リアルタイムセッション中に出席者は、セッション中の必要に基づき一方または両方の目的のために空間に部屋を追加することができる。一部の実施形態では、追加された部屋は、後に使用するために永続する。別の実施形態では、追加された部屋は、彼らとの話が終わったユーザにより明示的に、またはガーベージコレクションの一部としてシステムにより自動的に削除される。
【０１９３】
図３０から図３３に示されるように、動的場所３８０を生成するために、ユーザは、既存の場所３４４の壁３８２をクリックする（図３０）。あるいは、ユーザは、ＨＵＤ３４０の一部の実施形態で提供される従来のメニュー構成を介して利用可能な動的空間生成指令を選択することにより、動的空間を生成することがある。動的空間の幾何形状、サイズ、およびデフォルト構成の選択肢は、アプリケーション設計者次第である。一般には、動的空間を生成するときに、ユーザには選択する様々な選択肢がある。図３１に示されるように、ユーザが壁３８２を選択することに応答して、システムは、空白のビュースクリーンにより明白に示されるように、動的場所にビュースクリーンに関連する外部データ（ファイル）が何もないことを除いて、彼がもともといたＳｏｃｏｃｏの場所の正確な複製である動的場所３８０を生成する。ユーザは、新しい場所に入場することができ（図３２）、その他のコミュニカント３６２、３６４がユーザに続き新しい場所に入ることができる（図３３）。
【０１９４】
８．可聴ゾーン
Ｓｏｃｏｃｏプラットフォームでのリアルタイムストリーム処理技術は、独立したストリーム処理ゾーンを考慮する。ストリーム処理ゾーンの最も一般的な例が、可聴ゾーンである。ＯｆｆｉｃｅＳｐａｃｅのこの実施形態での一般的な可聴ゾーンが、ユーザが、同じゾーンにいる任意の別のユーザの話を聞くことができる（すなわち、すべてのユーザが互いに話を聞くことができるように、その空間内にいる任意のユーザのマイクロホンおよびスピーカが一緒に多重化される）エリアである。可聴ゾーンおよび別のタイプの「ゾーンメッシュ」の仕様に関する追加の詳細が、いずれも２００７年１０月２４日に出願された、米国出願第１１／９２３，６２９号明細書および第１１／９２３，６３４号明細書において説明されている。
【０１９５】
図２３は、各８角形のＳｏｃｏｃｏの場所が独立した可聴ゾーンを表すＯｆｆｉｃｅＳｐａｃｅアプリケーションの一実施形態を示す。この実施形態では、ユーザのアバタ（薄い色のスプライトにより表される）が、ＨＵＤ内の上側の８角形空間により表されるＳｏｃｏｃｏの場所に配置され、したがって、アバタがＨＵＤ内の下側の８角形空間により表されるＳｏｃｏｃｏの場所内に配置される２人のユーザ間で行われる会話を聞くことができない。これら２人のユーザはまた、上側の８角形空間により表される部屋に関連する音を聞くことができない。
【０１９６】
Ｉ．２．５次元可視化
図３４は、３次元グラフィックをシミュレートするために２次元グラフィックを使用する２．５次元（２．５Ｄ）可視化を使用して、仮想エリアおよびコミュニカントを示すヘッドアップ表示装置（ＨＵＤ）の別の実施形態４００を示す。図３４に示される実施形態では、選択された場所（すなわち、Ｓｏｃｏｃｏ  Ｍａｉｎの部屋）にいるコミュニカントがそれぞれ、仮想エリア内の位置と、関連するユーザの注意の中心を反映する方向の両方を描く個々のスプライト４０２により表される。スプライトの位置は、一般に仮想エリアに対してスプライトの中心を指す。スプライトの向きは、スプライトの「目」４０４が向いているように見える方向を指す。例示される実施形態では、この方向は、目４０４をつなぐ線４０９に垂直な横切る経路に沿うスプライト４０２の本体４０６の質量中心からのベクトル４０３に対応する。
【０１９７】
例示される実施形態では、スプライト４０２にはそれぞれ、スプライト４０２の見かけ上の方向を強調するように、仮想光源からの（点線４０７により示される）光と相互作用する球形の少なくとも部分的に半透明の本体４０６がある。具体的には、各スプライト本体４０６の描画は、本体表面上のきらりと光る点４０８を示すことと、スプライト本体の上部を通って導かれる仮想光が少なくとも部分的に遮られることにより生じる本体上の影の領域４１０を示すことと、スプライト本体４０６を通って導かれる仮想光が少なくとも部分的に遮られる結果としてＳｏｃｏｃｏ  Ｍａｉｎの部屋の「床」４１４上に投じられる第２の影の領域４１２を示すこととを伴う。きらりと光る点４０８と、第１の影の領域４１０と、第２の影の領域４１２との位置は、コミュニカントが３次元において仮想エリア内部でのユーザの注意の中心（すなわち、表示されるインタフェースの平面内の方向、およびインタフェースの平面外の方向）を推測できるようにする３次元の外観をスプライト４０２に与える。
【０１９８】
ビュースクリーン４１４、４１６、４１８の選択された１つの前の事前に設定された位置にスプライトを自動的に移動し、スプライトの「目」がビュースクリーンに向けられるようにスプライトを向けることにより、スプライト４０２をビュースクリーンから限界距離以内に配置するように応答するソーシャルプロセッサを含む実施形態がある。
【０１９９】
ＶＩ．ネットワークコミュニケーション環境でのデータ処理
Ａ．多数のクライアントアプリケーション、および他者のためのクライアント混合を介したコミュニケーション
図３５は、コミュニケーションアプリケーション２６により、ユーザの、別のコミュニケーションアプリケーション（たとえば、Ｓｋｙｐｅ連絡先）を介して有するが、必ずしもＳｏｃｏｃｏユーザではない連絡先との接続が可能になる方法の一実施形態を示す。
【０２００】
図３５の方法によれば、コミュニケーションアプリケーション２６は、第１のネットワークノード上で動作する第１のコミュニカントと、第２のネットワークノード上で動作する第２のコミュニカントとの間のリアルタイムコミュニケーションをサポートする仮想コミュニケーション環境における仮想エリアのグラフィック表現を表示する（図３５、ブロック４５４）。第１のネットワークノード上では、コミュニケーションアプリケーション２６が、第１のネットワークノードと第２のネットワークノードの間の第１のリアルタイム・データ・ストリーム接続を確立する第１のソフトウェアアプリケーションを実行し、この場合、第１のリアルタイム・データ・ストリーム接続は、仮想エリアへの参照に関係付けられる（図３５、ブロック４５６）。第１のソフトウェアアプリケーションの実行と同時に、コミュニケーションアプリケーション２６は、第１のネットワークノードと、第３のコミュニカントが動作している第３のネットワークノードとの間の第２のリアルタイム・データ・ストリーム接続を確立する第２のソフトウェアアプリケーションを第１のネットワークノード上で実行し、この場合、第２のリアルタイム・データ・ストリーム接続は、仮想エリアへのいかなる参照もない（図３５、ブロック４５８）。第１のネットワークノード上では、コミュニケーションアプリケーション２６は、第１のリアルタイム・データ・ストリーム接続および第２のリアルタイム・データ・ストリーム接続を介して交換されるリアルタイム・データ・ストリームから１以上の統合リアルタイム・データ・ストリームを生成する（図３５、ブロック４６０）。
【０２０１】
１以上の統合リアルタイム・データ・ストリームの少なくとも１つが、一般に第１のネットワークノード上で描画される。コミュニケーションアプリケーション２６は、一般に１以上の統合リアルタイム・データ・ストリームの個々のいくつかを、第２のネットワークノードおよび第３のネットワークノードに送信する。
【０２０２】
それぞれ第１のリアルタイム・データ・ストリーム接続および第２のリアルタイム・データ・ストリーム接続を介して交換されるリアルタイム・データ・ストリームの少なくとも２つが一般に同じ特定のデータタイプからなり、コミュニケーションアプリケーション２６は、第１のネットワークノード上で特定のデータタイプの交換されたリアルタイム・データ・ストリームのいくつかを混合する。たとえば、一部の実施形態では、コミュニケーションアプリケーション２６は、特定のデータタイプの第１のリアルタイム・データ・ストリームを生成する。コミュニケーションアプリケーション２６は、第２のネットワークノードから特定のデータタイプの第２のリアルタイム・データ・ストリームを受信する。そして、コミュニケーションアプリケーション２６は、第３のネットワークノードから特定のデータタイプの第３のリアルタイム・データ・ストリームを受信する。これらの実施形態では、統合リアルタイム・データ・ストリームを生成する処理は、第２のリアルタイム・データ・ストリームと第３のリアルタイム・データ・ストリームを混合して第１の統合リアルタイム・データ・ストリームを生成することと、第１のリアルタイム・データ・ストリームと第３のリアルタイム・データ・ストリームを混合して第２の統合リアルタイム・データ・ストリームを生成することと、第１のリアルタイム・データ・ストリームと第２のリアルタイム・データ・ストリームを混合して第３の統合リアルタイム・データ・ストリームを生成することとを伴う。コミュニケーションアプリケーション２６は、第１の統合リアルタイム・データ・ストリームを第１のネットワークノード上に描画し、第２の統合リアルタイム・データ・ストリームを第１のネットワークノードから第２のネットワークノードに送信し、第３の統合リアルタイム・データ・ストリームを第１のネットワークノードから第３のネットワークノードに送信する。一部の実施形態では、コミュニケーションアプリケーション２６は、第３の統合リアルタイム・データ・ストリームを第２のソフトウェアアプリケーションに渡す。一部の実施形態では、第１のリアルタイム・データ・ストリームおよび第２のリアルタイム・データ・ストリームはそれぞれ、第１のネットワークノードおよび第２のネットワークノード上でそれぞれ実行される第１のソフトウェアアプリケーションの第１のインスタンスおよび第２のインスタンスにより生成され、コミュニケーションアプリケーション２６は、第２の統合リアルタイム・データ・ストリームを第１のソフトウェアアプリケーションの第１のインスタンスから第１のソフトウェアアプリケーションの第２のインスタンスに渡す。
【０２０３】
図１７に関連して上記で議論された例では、ＪｏｅがユーザのＳｋｙｐｅ連絡先であるが、Ｓｏｃｏｃｏユーザではない。Ｓｋｙｐｅのプログラムインタフェースと統合することにより、Ｓｏｃｏｃｏプラットフォームは、ユーザのＳｋｙｐｅ連絡先を得て、それをＨＵＤ２６０内に直接表示する。Ｓｋｙｐｅ履歴インタフェース２８１内のコントロール２８０（「Ｃａｌｌ  ｏｎ  Ｓｋｙｐｅ」とラベルがつけられている）をクリックすると、Ｓｋｙｐｅを使用してＪｏｅへの呼出しを開始する。Ｓｏｃｏｃｏプラットフォームは、そのオーディオストリームを取り出し、それを部屋の中のその他のユーザと混合しているストリームに多重化する。したがって、ＪｏｅはＳｋｙｐｅにより提供されるオーディオ体験しか有しないが、Ｓｏｃｏｃｏ会話に参加することができる。
【０２０４】
図３６は、人々が、異なるコミュニケーションアプリケーション（たとえば、Ｓｋｙｐｅ）を介してＳｏｃｏｃｏプラットフォームのユーザとコミュニケーションをとることができるようにするコミュニケーションインフラストラクチャの一実施形態の構成図を示す。図３６は、仮想エリアを共有する４つのネットワークノード（すなわち、システム１、システム２、システム３、およびシステム４）間で確立されるオーディオ・コミュニケーション・チャネルを示す。システム１は、Ｓｏｃｏｃｏコミュニケーションプラットフォームを実行するように構成されていないクライアント端末を表す。代わりに、システム１は、別のコミュニケーションシステム（たとえば、Ｓｋｙｐｅ）を動作させるように構成される。システム２は、Ｓｏｃｏｃｏコミュニケーションプラットフォームを実行しているユーザの端末を表し、このプラットフォームは、別のコミュニケーションシステムの再生およびオーディオ・キャプチャ・ストリームを仮想化する統合構成要素を含む。システム３および４は、Ｓｏｃｏｃｏコミュニケーションプラットフォームを実行している２つの別のクライアント端末を表す。図３６に示されるシステムの概要が以下のテキストブロックで提供される。
【表３】
0005368547.tif 000004
【０２０５】
動作については、入出力マルチプレクサ／デマルチプレクサが、システム１および２から受信されるオーディオ信号１および２を、システム３とシステム４との両方に送信する。入出力マルチプレクサ／デマルチプレクサは、システム３および４から受信されるオーディオ信号３および４を、システム２のＰ配信構成要素にも送信する。Ｐ配信構成要素は、オーディオ信号１、３、および４をシステム２の再生構成要素に送信し、オーディオ信号３および４をシステム２のＰ混合構成要素に渡す。システム２のＰ混合構成要素は、オーディオ信号２、３、４を混合し、混合された信号をシステム２の統合構成要素に渡す。統合構成要素は、混合された信号を、システム２上で実行され、システム１により使用されるコミュニケーションアプリケーション（たとえば、Ｓｋｙｐｅ）に対応する別のコミュニケーションアプリケーション（たとえば、Ｓｋｙｐｅ）のオーディオ・キャプチャ構成要素に渡す。別のオーディオ・キャプチャ・システム（ＣＡ）は、取り込まれ混合された信号２＋３＋４を、システム１上で実行されている別のコミュニケーションアプリケーションの再生構成要素に渡す。
【０２０６】
図３６に示されるシステムの一部の実装では、Ｐ混合も入出力マルチプレクサ／デマルチプレクサを直接利用することができる。このとき、システムはより対称的になる。Ｐ配信はＰ混合１になり、入出力から３、４を受信し、Ｃ分割１から１を受信する。これらは独立したチャネルとして送信されるので、Ｃ分割１の出力は、直接再生構成要素に送信されることができるが、そのことは、全く融通性がない（Ｐ混合は独立したチャネルの透過の代わりに実際の混合を行うことができるので、以下の３を参照のこと）。この場合、Ｐ混合はＰ混合２となり、入出力から３、４を受信し、Ｃ分割２から２を受信する。別のオーディオシステムは、単一チャネルのコミュニケーションシステムであると仮定しているので、この混合器の出力は真の混合である（チャネルがステレオであっても、多数のソースからの信号を結合するために他方の末端にマルチトラック混合器が全くないと仮定している）。
【０２０７】
図３６は、システム３とシステム４との間の互いの対話を示さず、システム２とシステム１との拡張した対話しか示していない。システム３とシステム４との間の対話は、上記で説明されるようにピア・ツー・ピア、またはサーバ介在とすることができる。
【０２０８】
図３６では、２つのストリームがコンマで区切られている（ストリームがマルチチャネル経路であることを意味する）ときにはいつでも、システムは、内部コミュニケーション資源を保存するために、混合されたストリームを送信することもできる（たとえば、入出力マルチプレクサ／デマルチプレクサから）。混合されなければならないストリームは、プラス記号で示される（すなわち、統合構成要素により、仮想化されたマイクロホン信号が別のキャプチャ構成要素に送信される）。
【０２０９】
Ｂ．クライアントソフトウェアの多重化
上記で説明されるように、一部の実施形態では、共有Ｓｏｃｏｃｏの場所内で文書を見ることにより文書が共有されることがあり、Ｓｏｃｏｃｏの場所では、文書は、エリアサーバ上で共有アプリケーションプログラム（たとえば、Ｗｏｒｄ、Ｅｘｃｅｌ、ＰｏｗｅｒＰｏｉｎｔなどのＭｉｃｒｏｓｏｆｔ  Ｏｆｆｉｃｅ文書処理アプリケーションプログラム）を実行するサーバ処理により提示されている。
【０２１０】
一部の実施形態では、Ｓｏｃｏｃｏプラットフォームは、異なるクライアントノードで動作している多数のユーザからのリアルタイムストリームを単一ストリームに結合する。Ｓｏｃｏｃｏプラットフォームは、エリア・サーバ・ノード上で実行されているクライアント・アプリケーション・プログラム（たとえば、Ｍｉｃｒｏｓｏｆｔ  Ｏｆｆｉｃｅアプリケーションプログラム）に合成ストリームを送信する。Ｓｏｃｏｃｏプラットフォームは、エリアサーバ上で実行されているクライアントソフトウェアにより生成される出力データを共有Ｓｏｃｏｃｏのエリア内にあるビュースクリーンにルーティングする。Ｓｏｃｏｃｏプラットフォームは、ユーザ入力ストリーム（たとえば、キーボードおよび／またはマウスの指令ストリーム）をサーバ上で実行されているクライアントソフトウェアに多重化し、逆も同様である。この方法では、Ｓｏｃｏｃｏプラットフォームは、合成リアルタイム・データ・ストリームに従ってエリア・サーバ・ネットワーク・ノード上で実行されているクライアントアプリケーションで文書を処理する。Ｓｏｃｏｃｏプラットフォーがクライアントソフトウェアを多重化するという特徴により、ユーザが同じ文書に対して共同作業することができるようになる。これらの実施形態では、Ｓｏｃｏｃｏプラットフォームは、同じ文書に対する共同作業を可能にするために、単一端末サーバセッションを受け取り、そして多数のクライアント間で多重化している。このことにより、Ｓｏｃｏｃｏプラットフォームが、ネイティブ・クライアント・ソフトウェア・アプリケーションのためのカスタムビューアを生成することなく様々な対話セッションに対するサポートを提供することができるようになる。
【０２１１】
図３７は、ネットワーク・インフラストラクチャ・サービス環境３０が、１以上のコミュニカントのためにクライアントソフトウェアを多重化する方法の一実施形態を示す。
【０２１２】
図３７の方法によれば、ネットワーク・インフラストラクチャ・サービス環境３０が、個々のクライアント・ネットワーク・ノード上で動作しているコミュニカント間のリアルタイムコミュニケーションをサポートする仮想コミュニケーション環境で仮想エリアに関連してクライアント・ソフトウェア・アプリケーションのインスタンスを実行する（図３７、ブロック４７０）。クライアント・ソフトウェア・アプリケーションは、任意のタイプのクライアント・ソフトウェア・アプリケーションでもよい。一部の実施形態では、クライアント・ソフトウェア・アプリケーションは、文書処理ソフトウェアアプリケーション（たとえば、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｏｆｆｉｃｅ（登録商標）デスクトップ・パブリッシング・ソフトウェア・アプリケーション）である。ネットワーク・インフラストラクチャ・サービス環境３０は、仮想エリア内で対話するコミュニカントに関連するクライアント・ネットワーク・ノードの個々のいくつかからリアルタイム入力データストリームを受信する（図３７、ブロック４７２）。リアルタイム入力データストリームは、一般にクライアント・ネットワーク・ノードの個々のいくつかの入力装置イベント（たとえば、リアルタイム・コンピュータ・キーボード・イベントおよびリアルタイム・コンピュータ・マウス・イベント）から得られる。ネットワーク・インフラストラクチャ・サービス環境３０は、リアルタイム入力データストリームから合成データストリームを生成する（図３７、ブロック４７４）。ネットワーク・インフラストラクチャ・サービス環境３０は、クライアント・ソフトウェア・アプリケーションの実行するインスタンスに合成データストリームを入力する（図３７、ブロック４７６）。ネットワーク・インフラストラクチャ・サービス環境３０は、少なくとも一部には合成データストリームの入力に応答して、クライアント・ソフトウェア・アプリケーションの実行するインスタンスにより生成される出力から、出力データストリームの個々のインスタンスを生成する（図３７、ブロック４７８）。ネットワーク・インフラストラクチャ・サービス環境３０は、仮想エリア内で対話しているコミュニカントに関連するクライアント・ネットワーク・ノードの個々のいくつかに出力データストリームのインスタンスを送信する（図３７、ブロック４８０）。
【０２１３】
一部の実施形態では、ネットワーク・インフラストラクチャ・サービス環境３０は、仮想エリア内のビュースクリーンオブジェクトに関連する出力データストリームのインスタンスを送信し、その結果、コミュニカントは仮想エリア内のビュースクリーンを介してクライアント・ソフトウェア・アプリケーションと対話することができるようになる。たとえば、これらの実施形態の一部では、Ｓｏｃｏｃｏプラットフォームがエリアサーバ上でブラウザクライアントを実行し、Ｓｏｃｏｃｏの場所内のビュースクリーンにブラウザクライアントの出力をルーティングする。一部の実装では、Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステム環境内部でキーボード入力データおよびマウス入力データへの遠隔アクセスインタフェース（たとえば、端末サーバ）が使用され、エリアサーバにより共有Ｓｏｃｏｃｏの場所内に描画されているビュースクリーンにこれらの入力データをルーティングさせる。エリアサーバは、すべてのユーザからの入力指令（たとえば、マウスおよびキーボードの入力）を単一ストリームに結合し、その単一ストリームをエリアサーバ上で実行されているクライアントソフトウェア処理に送信する。
【０２１４】
Ｃ．リアルタイムｗｉｋｉ
図３８は、Ｓｏｃｏｃｏプラットフォームがｗｉｋｉ資源と統合される方法の一実施形態を示す。ｗｉｋｉ資源は、ユーザがコンテンツを一括して追加および編集することができるようにするＷｅｂサイト、または同様のオンライン資源である。
【０２１５】
請求項３８の方法によれば、Ｓｏｃｏｃｏプラットフォームは、個々のネットワークノード上で動作するコミュニカント間のリアルタイムコミュニケーションをサポートする仮想コミュニケーション環境で仮想エリアを確立する（図３８、ブロック４９０）。Ｓｏｃｏｃｏプラットフォームは、コミュニカントの１人以上のそれぞれに対して仮想エリア内に個々のプレゼンスを生成する（図３８、ブロック４９２）。Ｓｏｃｏｃｏプラットフォームは、仮想エリア内にプレゼンスを有するコミュニカントの個々の１人に関連するネットワークノードの個々の１つから受信される入力に応答して、仮想エリアに関連するファイルストアとｗｉｋｉ資源の間で情報を伝送する（図３８、ブロック４９４）。
【０２１６】
一部の実施形態では、仮想エリアに関連するファイルストアとｗｉｋｉ資源との間で情報を伝送する処理は、Ｗｅｂブラウザアプリケーションを介して情報を伝送することを伴う。
【０２１７】
一部の実施形態では、仮想エリアに関連するファイルストアとｗｉｋｉ資源との間で情報を伝送する処理は、ｗｉｋｉ資源に関連する情報をファイルストアにインポートすることを伴う。たとえば、場合によっては、Ｓｏｃｏｃｏプラットフォームは、ｗｉｋｉ資源に関連するメッセージスレッドのうちの少なくとも１つと、ｗｉｋｉ資源に関連するデータファイルへのリンクとをファイルストアにインポートする。場合によっては、Ｓｏｃｏｃｏプラットフォームは、インポートされた情報を仮想エリア内の表示オブジェクトと関連付ける。これらの実施形態の一部では、表示オブジェクトは、インポートされた情報をその情報の固有形式で表示するＷｅｂブラウザウィンドウに対応する。Ｓｏｃｏｃｏプラットフォームは、仮想エリア内にプレゼンスを有するコミュニカントの個々の１人により指定されるインポートされた情報の少なくとも一部を選択し、選択された情報を仮想エリア内のビュースクリーンオブジェクトに関係付ける。Ｓｏｃｏｃｏプラットフォームは、ビュースクリーンオブジェクトに関連する選択された情報を仮想エリア内にプレゼンスを有するコミュニカントのそれぞれに送信する。Ｓｏｃｏｃｏプラットフォームは、仮想エリア内にプレゼンスを有するコミュニカントの１人以上が、選択された情報の編集コントロールを有することもできるようにする。編集コントロールは、一般に、特定のコミュニカントがビュースクリーンオブジェクトに関連する選択された情報の描画を制御し、そして特定のコミュニカントに関連するネットワークノードから送信されるリアルタイム入力データストリームを使用して、選択された情報を修正することができるようにする。
【０２１８】
Ｓｏｃｏｃｏプラットフォームは、一般に仮想エリアを識別する場所属性値と、仮想エリア内にプレゼンスを有するコミュニカントのそれぞれの個々の識別子とのうちの１以上への個々の参照を使って、インポートされた情報をインデックスする対話レコードを生成する。
【０２１９】
一部の実施形態では、仮想エリアに関連するファイルストアとｗｉｋｉ資源との間で情報を伝送する処理は、ファイルストアからｗｉｋｉ資源に情報をエクスポートすることを伴う。この処理は、一般に、仮想エリアに関連する情報をｗｉｋｉ資源にエクスポートすることを伴う。エクスポートされる情報は、仮想エリア内のビュースクリーンオブジェクトと関連付けられることがある。エクスポートされる情報は、ビュースクリーンオブジェクトに関連して仮想エリア内にプレゼンスを有するコミュニカントのそれぞれに送信されるデータファイルに対応することもある。情報をｗｉｋｉ資源にエクスポートする処理では、Ｓｏｃｏｃｏプラットフォームは、仮想エリア内にプレゼンスを有するコミュニカントの個々の１人により指定されるｗｉｋｉ資源内の位置に情報をエクスポートすることがある。一部の例示的実施形態では、指定された位置は、ｗｉｋｉ資源のメッセージスレッドに対応する。場合によっては、エクスポートされる情報は、仮想エリアに関連するデータファイルと、仮想エリアに関連するデータファイルへの参照と、仮想エリアにプレゼンスを有するコミュニカントの１人以上から受信される１以上のリアルタイム・データ・ストリームの記録とのうちの少なくとも１つに対応する。
【０２２０】
図３９は、ｗｉｋｉリアルタイム共同作業要素または掲示板５０８の一実施形態を提示するヘッドアップ表示装置（ＨＵＤ）２６０の別の実施形態５００を示す。この実施形態では、Ｓｏｃｏｃｏプラットフォームは、特定のｗｉｋｉから仮想エリア５０２（たとえば、例示される実施形態でのＳｏｃｏｃｏ  Ｍａｉｎの部屋）に情報（たとえば、メッセージスレッド、ならびに文書ファイルおよび別のコンテンツへのリンク）をインポートし、Ｓｏｃｏｃｏ  Ｍａｉｎの部屋５０２からｗｉｋｉに情報（たとえば、共同作業中に作成または修正された文書）をエクスポートすることができる。特定のｗｉｋｉが、ユーザの１人または複数人により選択されることも、Ｓｏｃｏｃｏ  Ｍａｉｎの部屋５０２に（たとえば、Ｓｏｃｏｃｏ  Ｍａｉｎの部屋に対する仮想エリア仕様により）関連付けられることもある。一部の実施形態では、ｗｉｋｉ掲示板は、ｗｉｋｉからのコンテンツをその固有形式で表示するＷｅｂブラウザウィンドウである。Ｓｏｃｏｃｏプラットフォームは、一般にユーザがｗｉｋｉからＳｏｃｏｃｏ  Ｍａｉｎの部屋５０２にコンテンツをインポートし、そして、Ｓｏｃｏｃｏ  Ｍａｉｎの部屋５０２からｗｉｋｉにコンテンツをエクスポートすることができるようにするＷｅｂブラウザアプリケーションを介してｗｉｋｉにアクセスする。
【０２２１】
第１の使用シナリオでは、Ｓｏｃｏｃｏプラットフォームは、ユーザがｗｉｋｉ掲示板に表示されるまたは参照される（たとえば、ハイパリンクを介して）コンテンツを選択し、かつ選択されたコンテンツをＳｏｃｏｃｏ  Ｍａｉｎの部屋５０２内のビュースクリーン５０４、５０６の１つに向けることができるようにする。たとえば、図３９に示される実施形態では、ユーザはスプライト５１０（「ＤＶＷ」というラベルをつけられている）により表される。ユーザはＴｅａｍ  Ｗｉｋｉ掲示板２０８で参照されるファイルＥＵ  Ｓａｌｅｓ．ｐｐｔを選択した。ユーザはまた、選択されたファイルをビュースクリーン５０６（「ＶｉｅｗＳｃｒｅｅｎ  １」とラベルがつけられている）上に描画するようＳｏｃｏｃｏプラットフォームに指示した。それに応答して、Ｓｏｃｏｃｏプラットフォームは、選択されたファイルをＳｏｃｏｃｏ  Ｍａｉｎの部屋５０２に関連する記憶装置にインポートし、ＶｉｅｗＳｃｒｅｅｎ  １上にファイルを描画した。一部の実施形態では、Ｓｏｃｏｃｏプラットフォームは、Ｓｏｃｏｃｏ  Ｍａｉｎの部屋５０２や、現在部屋の中にいるユーザや、現在の時間や、部屋の中でのコミュニカントの対話に関係する別の属性などの属性のうちの１以上への個々の参照を使って、インポートされたファイルをインデックスする。そして、スプライト５１０（すなわち、ＤＶＷ）により表されるユーザは、スプライトをＶｉｅｗＳｃｒｅｅｎ  １に隣接する位置に移動させることができ、このことが、ユーザが、関連するエリア仕様の切替規則を参照することにより選択されたファイルの編集コントロールを有することを望むことをＳｏｃｏｃｏプラットフォームに知らせる。ＶｉｅｗＳｃｒｅｅｎ  １に対してこの位置にあるとき、Ｓｏｃｏｃｏプラットフォームは、ユーザが、エリアアプリケーションの機能を使用してＶｉｅｗＳｃｒｅｅｎ  １上に描画されているファイルの編集コントロールを有することができるようにする。この時点で、スプライトＤＶＷで表されるユーザは、ＶｉｅｗＳｃｒｅｅｎ  １上の選択されたファイルのコンテンツの描画を制御し（たとえば、ページの別のエリアにスクロールする、またはページを変更する）、選択されたファイルのコンテンツを修正することがある。一部の実施形態では、ファイル修正は、選択されたファイルをＶｉｅｗＳｃｒｅｅｎ  １上に描画するために使用される文書処理アプリケーション（たとえば、Ｍｉｃｒｏｓｏｆｔ  ＰｏｗｅｒＰｏｉｎｔ）により提供されるインタフェースを使用して行われる。インタフェースは、コミュニカントからのリアルタイム入力データストリーム（たとえば、コンピュータキーボードおよびコンピュータマウスのデータストリーム）を受信するように構成される。
【０２２２】
第２の使用シナリオでは、Ｓｏｃｏｃｏプラットフォームは、ユーザがコンテンツをＨＵＤ５００からｗｉｋｉにエクスポートすることができるようにする。図３９に示される例では、スプライト５１２、５１４（それぞれ「ＰＢ」および「ＭＭ」とラベルがつけられている）に関連するユーザが、ビュースクリーン５０４（「ＶｉｅｗＳｃｒｅｅｎ  ２」というラベルがつけられている）上に描画されているＡＰＡＰ  Ｓａｌｅｓ．ｐｐｔというタイトルの文書に対して共同作業している。これらユーザが文書の修正を完了した後、文書をＳｏｃｏｃｏ  Ｍａｉｎの部屋５０２からＴｅａｍ  Ｗｉｋｉにエクスポートするようアプリケーションに指示することがある。それに応答して、Ｓｏｃｏｃｏプラットフォームは、文書ＡＰＡＰ  Ｓａｌｅｓ．ｐｐｔ自体をｗｉｋｉにエクスポートするか、または、文書への参照（たとえば、ＵＲＩまたはＵＲＬ）をエクスポートする。そして、ｗｉｋｉは、ｗｉｋｉの動作を制御するｗｉｋｉ共同作業ソフトウェアに従って、エクスポートされた情報を指定された位置（たとえば、メッセージスレッド）に組み込む。一部の実施形態では、ユーザは、文書に対するユーザの共同作業に関係する１以上の他のファイルを生成し、それらのファイルまたはそれらのファイルへの参照をｗｉｋｉにエクスポートすることがある。たとえば、一部の実施形態では、ユーザは、文書ＡＰＡＰ  Ｓａｌｅｓ．ｐｐｔに対してユーザが共同作業している間にユーザの議論のオーディオ記録を生成し、オーディオファイルへの参照（たとえば、ＵＲＬ）をＴｅａｍ  ＷｉｋｉにアップロードするようＳｏｃｏｃｏプラットフォームに指示することがある。文書に加えて、ユーザはまた直接ｗｉｋｉに意見を入力することがある。
【０２２３】
ＶＩＩ．特徴
本明細書で説明された特徴の中には以下がある。
【表４Ａ】
0005368547.tif 000005
【表４Ｂ】
0005368547.tif 000006
【０２２４】
ＶＩＩＩ．結論
本明細書において説明される実施形態は、仮想コミュニケーション環境において移動し対話するための改良されたシステムおよび方法を提供する。これらの実施形態は、ユーザが仮想エリアを移動することができるようにする移動コントロールと、ユーザが仮想エリア内の別のコミュニカントと対話することができるようにする対話コントロールとを含むインタフェースを提供する。
【０２２５】
別の実施形態は、特許請求の範囲に含まれる。
【図１】
0005368547.tif 000007
【図２】
0005368547.tif 000008
【図３】
0005368547.tif 000009
【図４】
0005368547.tif 000010
【図５Ａ】
0005368547.tif 000011
【図５Ｂ】
0005368547.tif 000012
【図６】
0005368547.tif 000013
【図７】
0005368547.tif 000014
【図８】
0005368547.tif 000015
【図９】
0005368547.tif 000016
【図１０】
0005368547.tif 000017
【図１１】
0005368547.tif 000018
【図１２】
0005368547.tif 000019
【図１３】
0005368547.tif 000020
【図１４】
0005368547.tif 000021
【図１５】
0005368547.tif 000022
【図１６】
0005368547.tif 000023
【図１７】
0005368547.tif 000024
【図１８】
0005368547.tif 000025
【図１９】
0005368547.tif 000026
【図２０】
0005368547.tif 000027
【図２１】
0005368547.tif 000028
【図２２】
0005368547.tif 000029
【図２３】
0005368547.tif 000030
【図２４Ａ】
0005368547.tif 000031
【図２４Ｂ】
0005368547.tif 000032
【図２５】
0005368547.tif 000033
【図２６】
0005368547.tif 000034
【図２７】
0005368547.tif 000035
【図２８】
0005368547.tif 000036
【図２９】
0005368547.tif 000037
【図３０】
0005368547.tif 000038
【図３１】
0005368547.tif 000039
【図３２】
0005368547.tif 000040
【図３３】
0005368547.tif 000041
【図３４】
0005368547.tif 000042
【図３５】
0005368547.tif 000043
【図３６】
0005368547.tif 000044
【図３７】
0005368547.tif 000045
【図３８】
0005368547.tif 000046
【図３９】
0005368547.tif 000047