(57)【特許請求の範囲】
【請求項１】
中央処理装置（ＣＰＵ）と、前記ＣＰＵに接続されたメモリとを有する装置であって、
エンティティの識別値とサンプリング時間値とを含む仮想存在情報を繰り返し収集することにより、永続仮想環境中のエンティティの存在履歴を蓄積するデータ取得ロジックと、
前記存在履歴の一部に対して複数の基底関数に一般最小二乗法を実行して、前記存在履歴に合致する時間プロファイルを表す係数ベクトルを作成し、前記係数ベクトルは前記一般最小二乗法に対応して複数の係数を含む適合ロジックと、
前記適合ロジックに応答して、前記エンティティを前記係数ベクトルに応じて特徴付けする特徴付けロジックと、
前記特徴付けロジックに応答して、前記エンティティの前記特徴を提示する提示ロジックとを含む装置。
【請求項２】
請求項１に記載の装置において、前記特徴付けロジックは、前記係数ベクトル応じて、前記エンティティが未来のある時間にバーチャルに存在する尤度を求める未来尤度ロジックを含む装置。
【請求項３】
請求項２に記載の装置において、前記未来尤度ロジックは、前記時間プロファイルを前記未来の時間に延長する予想ロジックを含む装置。
【請求項４】
請求項１に記載の装置において、前記エンティティはプレイヤ団体であり、前記特徴付けロジックは、前記係数ベクトルに応じて、未来のある時間における前記プレイヤ団体の参加レベルを求める予測ロジックをさらに含む装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の技術は、永続仮想環境（ｐｅｒｓｉｓｔｅｎｔ  ｖｉｒｔｕａｌ  ｅｎｖｉｒｏｎｍｅｎｔ）の分野に関する。
【背景技術】
【０００２】
近年、何百万人もの加入者に対して、ＭＭＯＧ（エム・エム・オー・ジー：Ｍａｓｓｉｖｅｌｙ  Ｍｕｌｔｉｐｌａｙｅｒ  Ｏｎｌｉｎｅ  Ｇａｍｅｓ）が非常に普及してきている。このようなゲームの多くは（特にロールプレイング型のサブジャンルであるＭＭＯＲＰＧ（Ｍａｓｓｉｖｅｌｙ  Ｍｕｌｔｉｐｌａｙｅｒ  Ｏｎｌｉｎｅ  Ｒｏｌｅ  Ｐｌａｙｉｎｇ  Ｇａｍｅｓ）では）、別個のプレイヤによってコントロールされるアバタ同士の間でオンラインの社会的関係が構築される（かつ時にはオンラインの社会的関係がプレイヤ自身に移行される。ただし１人のプレイヤは大幅に異なる性格をもつようにプレイ可能な複数のアバタを所有できる）。このようなオンラインの社会的関係の確立は、ゲーム経験において重要な部分である。従って、ＭＭＯＧはアバタ同士の相互作用（ｉｎｔｅｒａｃｔｉｏｎ：インタラクション）を促進するよう設計されることが多い。このようなインタラクション促進技術には、ギルド（同業組合）、クラン（一族）、シティ（町）、職業、または他のプレイヤ団体に対するサポート、アバタ間のインタラクションを促進する内蔵型の遅延に対するサポート、および「友達」または「敵」リストに対するサポートの提供がある。このサポートは、確立されたオンラインの社会的関係をもつエンティティのうち、どのエンティティが永続仮想環境中で仮想的に同時に存在するかを知る能力を含む。
【０００３】
【特許文献１】米国公開特許出願第ＵＳ２００４／００３９６３０Ａ１
【非特許文献１】データのモデリング−一般線形最小二乗法、セクション１５．４（Ｓｅｃｔｉｏｎ  １５．４，Ｍｏｄｅｌｉｎｇ  ｏｆ  Ｄａｔａ−Ｇｅｎｅｒａｌ  Ｌｉｎｅａｒ  Ｌｅａｓｔ  Ｓｑｕａｒｅｓ）、Ｎｕｍｅｒｉｃａｌ  Ｒｅｃｉｐｅｓ  ｉｎ  Ｃ：Ｔｈｅ  Ａｒｔ  ｏｆ  Ｓｃｉｅｎｔｉｆｉｃ  Ｃｏｍｐｕｔｉｎｇ、第２版（商標）、１９８８−１９９２ケンブリッジ大学プレス版
【発明の開示】
【発明が解決しようとする課題】
【０００４】
プレイヤは、オンラインの社会的関係を構築または維持するために、自分のアバタに他のプレイヤのアバタとの共同活動を提案させようとする場合がある。プレイヤの団体は、団体中のアバタに対して共有の冒険を企画することが多い。オンラインの社会的関係を構築する上での１つの問題は、プレイヤは「現実世界」で仕事、家族、およびその他の義務をもっており、これがプレイヤのアバタがバーチャルに存在してプレイヤによってコントロールされるときに影響することである（いくつかのＭＭＯＧでは、アバタを永続仮想環境中に存在させることはできるが、オンラインの社会的関係を構築または維持する何らの意義のある能力はもたせないプログラムまたはマクロでアバタをコントロールできるようになっており、従ってプレイヤはバーチャルには存在しないことになる）。また、現実世界の任意の時間帯のプレイヤは、現実世界のある時間帯で永続仮想環境にログインできる。ログインすると、プレイヤのアバタはＭＭＯＧの仮想時間に従う。従って、ニューヨークで日中働いているプレイヤがパリで日中働いているプレイヤとオンラインの社会的関係をもつことは難しい。
【０００５】
同じゲーム時間に永続仮想環境にバーチャルに存在していると予想できないアバタ同士がオンラインの社会的関係を確立または維持するのは困難である。さらに、ＭＭＯＧは、プレイヤが、通常プレイヤとバーチャルに存在するのはどのアバタかを知ることのできるメカニズムは提供しない。
【０００６】
別のプレイヤがバーチャルに存在すると考えられるのはいつかをプレイヤが自動的に知る方法がないため、オンラインの社会的関係を維持する時間を予定にいれることも困難である。従って、プレイヤ同士がバーチャルに存在している時に、ゲーム内のチャットまたはゲーム内の電子メールによって、プレイヤ同士が今後のインタラクションを調整しなければならない。
【０００７】
特許文献１は、人があるサイクルに従っていることを推論できるようにする現実世界の情報収集方法を開示している。
【課題を解決するための手段】
【０００８】
これに対して、本明細書に記載する技術は、プレイヤがバーチャルに存在している時を追尾し、プレイヤがあるサイクルに従ってバーチャルに存在すると仮定し、サイクルの強さを分析して、プレイヤが今後バーチャルに存在するか否かを予測する能力を判定できる。
【０００９】
永続仮想環境中のプレイヤの時間プロファイルを入手し、かつプレイヤの時間プロファイルに合致する時間プロファイルをもつ他のエンティティをプレイヤが発見する支援をして、オンラインの社会的関係の確立を簡易化できるのが有利である。また、特定のプレイヤがバーチャルに存在する時を、そのプレイヤと通信する必要なく予測できるのが有利である。さらに、類似した時間プロファイルをもつプレイヤ同士がオンラインの社会的関係を構築することを永続仮想環境自体が明確に奨励するように、プレイヤ群を特徴付けられることが有利である。
【００１０】
本発明の技術の一実施形態は、仮想存在情報を繰り返し集めることにより、永続仮想環境中のエンティティの存在履歴を蓄積する技術である。仮想存在情報は、エンティティの識別値と、サンプリング時間値とを含む。仮想存在情報が収集されると、技術は、存在履歴の一部に対して基底関数のセットに一般最小二乗法を実行して、係数ベクトルを生成する。係数ベクトルは、存在履歴に合致する時間プロファイルを表し、一般最小二乗法に対応する係数を含む。係数ベクトルが生成されると、技術は、その係数ベクトルに対応するエンティティを特徴付け、エンティティの特徴を提示する。
【００１１】
本発明の技術の他の実施形態は、第１の時間プロファイルを表す第１の係数ベクトルと、第２の時間プロファイルを表す第２の係数ベクトルとにアクセスする方法である。第１および第２の時間プロファイルは、永続仮想環境中の第１のエンティティと第２のエンティティの存在履歴をそれぞれ表す。係数ベクトルにアクセスすると、技術は、係数ベクトルに対応する予測関数を生成する。予測関数は、第１および第２のエンティティが時間的に互換する未来の時間についての尤度を与える。その後、技術は、この予測関数または予測関数から得られる情報を表すものを提示する。
【００１２】
本発明のさらに他の実施形態は、各々が永続仮想環境中のエンティティを表す係数ベクトルにアクセスする方法である。アクセスされる各係数ベクトルは、表現されたエンティティに関連した係数値をもつ係数を含む。係数は、永続仮想環境中のエンティティの時間プロファイルを表す。この実施形態は、少なくとも１つの係数に係数の重みを割り当て、この係数の重みに応じて係数ベクトルおよび各係数ベクトルの少なくとも１つの係数をクラスタに分ける。最後に、技術は、クラスタに対応する推奨を提示する。さらに、２つのエンティティの重み付けした係数ベクトルを比較して互換性メトリックを求め、この互換性メトリックもまた提示できる。
【発明を実施するための最良の形態】
【００１３】
図１は、本発明の実施形態を組み入れるネットワーク環境のコンピュータシステム１００を示す。ネットワーク環境のコンピュータシステム１００はコンピュータ１０１を含み、これはＣＰＵ１０３と、メモリ１０５と、ネットワークインターフェース１０７とを組み入れる。ネットワークインターフェース１０７は、コンピュータ１０１にネットワーク１０９へのアクセスを付与する。コンピュータ１０１はまた、ユーザインターフェースデバイス１１３と、記憶システム１１５と、リムーバブルデータデバイス１１７とに接続可能なＩ／Ｏインターフェース１１１を含む。リムーバブルデータデバイス１１７はコンピュータ使用可能なデータキャリア１１９（メモリスティック、ＣＤ、フロッピー（登録商標）、ＤＶＤまたはその他の有形媒体等のコンピュータで利用できるデータキャリア内のデバイス内蔵ＲＯＭ、内蔵型交換可能ＲＯＭ等）を読み出すことができ、これは一般的にはプログラムプロダクト１２１を含む。ユーザインターフェース装置１１３はディスプレイ装置１２５を含みうる。記憶システム１１５（かつリムーバブルデータデバイス１１７）と、コンピュータ使用可能なデータキャリヤ１１９と（場合によってはネットワーク１０９と）は、ファイル記憶メカニズムを含む。コンピュータ利用可能なデータキャリア１１９上のプログラムプロダクト１２１は、一般にはプログラム１２３としてメモリ１０５に読み込まれ、ＣＰＵ１０３に特定の動作を実行するよう指示する。また、プログラムプロダクト１２１は、ネットワーク１０９を用いてアクセスされる装置から付与されうる。当業者であれば、ネットワークは情報（例えばコンピュータプログラムを規定するデータ等）を送信することを理解できると考える。一般に、情報は搬送波中で実現される。「搬送波」とは、電磁信号、可視もしくは不可視の光パルス、データバス上の信号、または任意の有線、無線、もしくは情報をある点から別の点へ送信可能な光ファイバ技術によって送信される信号を含む。プログラムおよびデータは、有形の物理媒体（先に挙げたもの等）およびネットワーク１０９の双方から共通に読み出すことができる。従ってネットワーク１０９は、有形物理媒体と同様、コンピュータ利用可能なデータキャリアである。当業者であれば、コンピュータ１０１の表示される特徴部分のすべてが、本発明の技術を実現するすべての実施形態に存在する必要はないことを理解できると考える。
【００１４】
図２は、仮想世界のプロバイダ２０１によって利用可能となる永続仮想環境２００を示し、仮想世界のプロバイダ２０１は、エンティティが入場して永続仮想環境２００中でバーチャルに存在できるシミュレート環境を与える仮想世界のサーバ２０３のプログラム、維持、および制御を一般に行う。シミュレート環境は、環境中にバーチャルに存在すエンティティがいなくとも仮想世界のプロバイダ２０１によって維持されるため、永続的な仮想環境といえる。マルチプレイヤ・オンラインゲーム、バーチャルオフィス、バーチャルリゾート、および現実世界のアトラクションのバーチャル版等は、永続仮想環境の例である。
【００１５】
仮想世界のクライアント２０５を用いて永続仮想環境２００に「ログイン」することにより、人間またはコンピュータ制御されるロボット（プレイヤ）が永続仮想環境２００にバーチャルに存在できるようになる。これによりプレイヤは、永続仮想環境２００中で１つ以上のアバタをコントロールするエンティティとなる。仮想世界のクライアント２０５は、ネットワーク１０９を介して仮想世界のサーバ２０３と通信して、永続仮想環境２００に関する情報をプレイヤに（プレイヤの五感に対してテキスト、ビジュアル、オーディオ、またはその他の情報を提示する等によって）提示する。プレイヤは、永続仮想環境２００中で、プレイヤのアバタを他のプレイヤのアバタ、プレイヤなしのアバタ、またはバーチャルオブジェクトとインタラクトさせる。
【００１６】
「エンティティ」とは、１つまたは複数のプレイヤ、アバタ、アカウントホルダ、およびプレイヤ団体を含む。永続仮想環境２００中のアバタとは、プレイヤがプレイするキャラクタ、プレイヤなしのキャラクタ、デバイス、ツール、風景、またはプレイヤのアバタがインタラクト可能なその他のバーチャルオブジェクトを仮想的に表すものである。アカウントホルダは、ログインとアバタのコントロールを行うことができ、個人識別可能な現実世界の情報（氏名、住所、銀行口座等）に関連付けられる。プレイヤはアカウントホルダによって確立されたアカウントを用いて、そのアカウントに関連付けられるアバタをコントロールする。また、プレイヤ団体（ギルド、クラン、シティ等）もエンティティとなりうる。
【００１７】
永続仮想環境２００のある側面には、クライアント・データハーベスタ２０７および／またはプロバイダ・データハーベスタ２０９がある。これらデータハーベスタは、永続仮想環境２００中のエンティティの状態に関する仮想存在情報（例えばエンティティがハーベスト時にバーチャルに存在しているかどうか、またはプレイヤ団体に属するいくつの（もしくは何パーセントの）エンティティがハーベスト時にバーチャルに存在しているか等）を繰り返し収集する。エンティティがアバタの場合は、アバタの持ち物、位置、職業、技術、経験、プレイヤ団体への付属等の追加情報を収集できる。エンティティがアカウントホルダの場合は、アカウントホルダにコントロールされるアバタ、アカウントホルダが使用する仮想世界のサーバ２０３、アカウントホルダがバーチャルに存在するアバタをもつ場合の時間情報等が追加情報に含まれうる。仮想世界のプロバイダ２０１はクライアントのデータハーベスタ２０７等のクライアントコンピュータのほうにより多くのアクセス制限を課すので、プロバイダのデータハーベスタ２０９は、通常はクライアントのデータハーベスタ２０７よりも多くの個人的エンティティ情報にアクセスできる。「仮想存在情報」とは、存在情報を入手した時間、およびデータハーベスタが取得した任意の種類のエンティティデータを含み、またはデータハーベスタが取得したエンティティデータに関連付けることができる情報である。
【００１８】
クライアント・データハーベスタ２０７は、一般に仮想世界のプロバイダ２０１から提供または認証される１つ以上のアプリケーション・プログラミング・インターフェース（ＡＰＩ）（例えば特定のコンピュータプログラミング言語に対するプログラミングインターフェース、または自動のプレイヤアクションに与えられる「マクロ」等）を介して、仮想世界のサーバ２０３にインターフェースする。だがクライアント・データハーベスタ２０７は、一般には数量および／または仮想世界のサーバ２０３へのインタラクションの種類に制限がある。このことは、クライアント・データハーベスタ２０７によって取得可能な仮想存在情報の量の制限、および／または仮想存在情報の取得に必要な時間の延長を生じうる。さらに、クライアント・データハーベスタ２０７は、一般にはプレイヤが利用可能となりうる情報以外の仮想存在情報へのアクセスを持たない（例えば、クライアント・データハーベスタ２０７は他のアカウント情報へのアクセスをもたない）。しかしプロバイダ・データハーベスタ２０９は、クライアント・データーハーベスタ２０７の性能上の制約をもたないし、またプレイヤのアカウント情報へのアクセスを制限する必要もない。さらに、プロバイダ・データハーベスタ２０９はまた、プレイヤスタイル情報を収集して、アバタが異なるプレイヤに管理されていた履歴を持っている確率を判定する。
【００１９】
図３は、図２に示す永続仮想環境２００から仮想存在情報を収集するアーキテクチャ３００を示す。「存在履歴蓄積」工程３０１は、エンティティの仮想存在情報を繰り返し取得することによって、永続仮想環境中のエンティティの存在履歴を蓄積する。仮想存在情報は、メモリまたは他のアクセス可能な記憶装置に保存でき、エンティティの識別値およびサンプリング時間値を含みうる。いくつかの実施形態では、仮想存在情報は、存在状態値（存在履歴の収集時にエンティティがバーチャルに存在しているかどうか等）を含みうる。例えばプレイヤ団体の場合、存在状態値は、取得時にバーチャルに存在しているプレイヤ団体の数または割合等の参加レベルを含みうる。さらに、存在状態値は閾値に対して正または負の値をとってもよい。
【００２０】
仮想存在情報の蓄積が繰り返される間、いくつかの実施形態では（例えばクライアント・データハーベスタ２０７を用いて実現されるような実施形態では）、連続した蓄積と蓄積との間の区間の長さに大差がありうることを理解するのが重要である。他の実施形態（例えばプロバイダ・データハーベスタ２０９を用いて実現されるような実施形態）では、プロバイダ・データハーベスタ２０９と仮想世界のサーバ２０３とがどちらも仮想世界のプロバイダ２０１の制御下にあり、クライアントに利用可能なＡＰＩに限定されなくてもよいので、より一貫した区間が得られる。
【００２１】
十分な量の仮想存在情報が蓄積されると、「係数ベクトルを作成する」工程３０３が存在履歴を処理して、任意のエンティティについての存在履歴に合致した時間プロファイルを表す係数ベクトルを作成（または更新）する。係数ベクトルの作成は、あるエンティティについて収集された仮想存在情報に対して基底関数のセットに一般最小二乗法（またはその他の分光分析）を実行して得られる（後ほど、図１０のところで説明する）。基底関数のセットは時間モデルとして機能する。係数ベクトルは、永続仮想環境２００中のエンティティの過去の存在についての時間プロファイルをパラメータで表現する係数値を含む。
【００２２】
いくつかの実施形態では、仮想存在情報を長期間（例えば何年にもわたって）保存する。他の実施形態では、係数ベクトルに対応する時間プロファイルから作成されたデータを、新たに取得した仮想存在情報と融合する。いくつかの実施形態では、取得したデータは保存前にフィルタにかけられる。いくつかの実施形態では、取得したデータは時間モデルに適合させる前にフィルタにかけられる。
【００２３】
エンティティの時間プロファイルを表す係数ベクトルに加えて、エンティティに関する追加情報、例えばエンティティの存在状態値、エンティティの経験値、エンティティの階級値、エンティティの職業値、エンティティの属性値、エンティティのクラン（clan）値、エンティティのシティ値、エンティティのプレイスタイル値、エンティティの装備値、エンティティのプレイヤ名、エンティティのアカウント、エンティティのオンライン社会的関係、エンティティの特徴、エンティティの持ち物、エンティティの仮想位置、エンティティのプロパティ等を取得することもできる。これら情報の大半は急速には変化しないので、別個に収集して係数ベクトルに加えてもよい。またこれら情報の大半は、時間プロファイルに関して特徴付けを行ってもよい。
【００２４】
「情報を採掘する」工程３０５は、エンティティのさまざまな側面を分類し、エンティティもしくはエンティティのセットに関する多種類の情報を、それぞれの係数ベクトルから抽出および／または展開できる。「情報を採掘する」工程３０５は、十分な計算リソースがある場合にメンテナンス中に仮想世界のプロバイダ２０１によって実行されるか、またはエンティティからのリクエストに応じて、かつその他のイベントおよび条件に応じて実行される。「情報を採掘する」工程３０５は、必要に応じてクライアント・データハーベスタ２０７によって実行してもよい。
【００２５】
図４は、永続仮想環境２００中のエンティティの存在履歴を蓄積するためにクライアント・データハーベスタ２０７および／またはプロバイダ・データハーベスタ２０９によって使用される、データ取得工程４００を示す。
【００２６】
データ取得工程４００は、ユーザコマンドに応答して、自動開始で、またはローカルもしくはリモート工程による呼出しによって開始される。データ取得工程４００は「初期化」プロシージャ４０３へ進み、ここでリソースの割当て、ネットワーク接続の確立、仮想世界サーバ２０３へのログイン等の任意の必要な初期化を実行する。
【００２７】
作動すると、データ取得工程４００は「仮想存在情報収集」プロシージャ４０５へ進み、ここで、ＡＰＩ、または永続仮想環境２００に現在存在するエンティティの仮想存在情報を仮想世界のサーバ２０３に問い合わせる他のツールを呼び出すことができる。戻った仮想存在情報は「存在履歴およびエンティティ情報を更新」工程４０７で処理されて、仮想存在情報を保存する。
【００２８】
データが保存されると、データ取得工程４００は「サンプリング区間を遅延する」工程４０９へと進み、次のデータ取得サイクルを開始する前に、データ取得工程４００を少しの間遅延させる。時間の経過とともに、仮想存在情報の蓄積によって、永続仮想環境２００に存在したことのあるエンティティについての存在履歴が得られる。いくつかの実施形態では、新たに取得した仮想存在情報を既存の係数ベクトルと融合させて、計算負荷の代わりに仮想存在情報の記憶要件を減じることができる。他の実施形態では、仮想存在情報を蓄積して、その情報を定期的に係数ベクトルと融合させる。さらに他の実施形態では、仮想存在情報が回収されるごとにそのすべてを保存して、保存した全仮想存在情報から係数ベクトルを作成する。
【００２９】
いくつかの実施形態では、仮想存在情報は、エンティティ識別値とサンプリング時間値とを含む。エンティティ識別値はエンティティを識別し、サンプリング時間値は、エンティティが永続仮想環境２００にバーチャルに存在していると判定された時間を識別する。
【００３０】
いくつかの実施形態では、仮想存在情報は「仮想存在情報収集」プロシージャ４０５の実行時にバーチャルに存在するエンティティについてのみ収集される。他の実施形態では、仮想存在情報は、エンティティがサンプリング時に存在するか否かを明確につかむエンティティ存在状態を含む（プレイヤ団体の場合は、団体会員のいくつの（または何割の）アバタがバーチャルに存在するかは参加レベルが示す）。
【００３１】
いくつかの実施形態では、仮想存在情報はある区間を表す存在状態値として保存することができ、この区間は開始時間と終了時間とをもち、区間中にエンティティがバーチャルに存在する、または存在しない。データ取得工程４００に示すようなポーリング実施形態からこの区間情報が収集される場合は、エンティティはサンプリング遅延の間にログオフし、その後ログオンして戻ったかもしれない。
【００３２】
さらに他の実施形態では、データ取得工程４００は、ログインおよびログオフ状態の変更をモニタするイベントロガーを用いて存在状態値を正確に捕捉できる。
【００３３】
当業者であれば、データ取得工程４００の機能性を仮想世界のサーバ２０３自体に密に組み入れれば、別のプロセッサ上でまたは別工程として実行する必要がないことを理解できるであろう。さらに、当業者であれば、アバタをそのアカウントと関連付ければ、データ取得工程４００はアカウントホルダの情報を収集できることが理解できるであろう。いくつかの実施形態では、アバタのプレイスタイルを評価して、認証された複数のプレイヤのどのプレイヤが実際にアバタをコントロールしているのか判定できる。
【００３４】
図５は、図４に示すデータ取得工程４００によって蓄積される仮想存在情報から、各エンティティについての時間プロファイルを作成および／または更新する時間プロファイル作成工程５００を示す。呼び出し後、時間プロファイル作成工程５００は「開始」ターミナル５０１で始動し、「初期化」プロシージャ５０３へ進んで、必要な任意の初期化を実行する。次いで、「時間プロファイル作成」プロシージャ５０５が仮想存在情報（図４の「存在履歴およびエンティティ情報の更新」プロシージャ４０７によって保存される）にアクセスして、存在履歴に対して一般最小二乗法を実行し、係数ベクトルを作成する。エンティティに対して係数ベクトルがすでに存在する場合は、既存の係数ベクトルに合致する時間プロファイルをまず作成し、その時間プロファイルから周期的なポイントを抽出して、一般最小二乗法を実行する前に仮想存在情報と融合させる。一般最小二乗法は、後ほど図１０のところで説明するが、時間モデルを用いて時間プロファイルを表す時間係数を作成する。係数が求まれば、「係数ベクトルを作成する」プロシージャ５０７が係数を含む係数ベクトルをエンティティと関連付ける。最後に、時間プロファイル作成工程５００は「終了」ターミナル５０９で完了する。
【００３５】
いくつかの実施形態では、適合の前に仮想存在情報をフィルタしなければならない。いくつかの実施形態では、データ取得時にエンティティが明らかにバーチャルに存在していなければ（例えば、データ取得時にエンティティがバーチャルに存在していなければデータは収集されない実施形態では）、明確な非仮想存在情報が作成される。
【００３６】
図６は、係数ベクトルを用いて時間プロファイルに関連した分析を行い、エンティティを特徴付ける時間プロファイル分析工程６００を示す。時間プロファイル分析工程６００は「開始」ターミナル６０１で始動し、「初期化」プロシージャ６０３で初期化される。「分析リクエストを受信する」プロシージャ６０５は、ある特定の種類の分析のリクエストを受信し、これは「分析を実行する」プロシージャ６０７によって実行および／または呼び出されうる（分析の実施形態の例は図７〜図９のところで後ほど説明する）。分析完了後、時間プロファイル分析工程６００は「終了」ターミナル６０９で完了する。
【００３７】
「分析を実行する」プロシージャ６０７は、多数の分析工程のうち任意の工程を含み、呼び出し、または呼び出させることができる。このような分析工程の１つには、係数ベクトルを用いてエンティティを特徴付ける（例えばエンティティを、間欠的にバーチャルに存在する、短期間の間バーチャルに存在する、長期間の間バーチャルに存在する、現地時間午後１０時〜午後５時の間は決してバーチャルに存在しない等のように特徴付ける）ロジックがある。エンティティの特徴付けは多くの方法で示すことができ、そのうちのいくつかを以下に記載する。エンティティの特徴付けは、図１２のところで説明するのと同様の技術を用いて固有空間中の公知の固定ポイントにエンティティをクラスタ分けする、エンティティの時間プロファイルを公知のプロファイルタイプと比較する、係数ベクトル中の非時間係数を公知の構成（機能的に求めることが可能）と比較する、ことによって行うことができる。
【００３８】
エンティティの特徴付けを提示する一つの方法は、係数ベクトルから得た時間プロファイルを人に提示する（グラフ表示等によって）ことである。エンティティの特徴付けを提示する他の方法は、エンティティを特徴付けてその結果を表示する等のプログラムに係数ベクトルを与えることである。他の方法は、エンティティの特徴付けを記憶システム１１５に保存することである。エンティティの特徴付けを提示するさらに他の方法は、プレイヤなしのアバタに、特徴付けを同じまたは異なるエンティティに提示させることである。こうして、時間プロファイル、係数ベクトル、またはこれらの一方または両方から得られた情報を提示できる。要約すると、「提示」とは提示されるものの表示、保存、処理、使用、分析、その他を行うことである。
【００３９】
本発明の技術の他の実施形態は、時間プロファイルを未来へ外挿して、その時間プロファイルに関連付けられたエンティティが未来のある時間にバーチャルに存在する尤度を与えるものである。この尤度は、例えば（永続仮想環境がＭＭＯＧで、ルゴール（Ｒｕｇｏｒ）というアバタがいる場合）、「ルゴールが次週プレイする可能性のある時間のグラフ」として、またはエンティティ同士のインタラクションの調整を予定可能な時間を提案するように組み合わせるか、または閾値を設けて、他のエンティティに提示できる。外挿は、例えば目標とする興味のある状況（探求の旅（クエスト）、プレイヤ団体の会合、またはバーチャルなイベント（結婚式、通夜、お別れ会等））にインタラクションの区間があるか否か、インタラクションの区間中にエンティティ同士の重複をエンティティが最大にするか否か、提案された可能な時間がもっとも直近の時間に設定されているか否か、または提案された可能な時間において参加予想のエンティティの要求される割合が必要か否か、等を考慮する尤度を与えるように調節できる。
【００４０】
例えば「私はランゴ（Ｒａｎｇｏ）とメドウ（Ｍｅｄｏｗ）とともにラゾルフェンダウンズ（Ｒａｚｏｒｆｅｎ  Ｄｏｗｎｓ）のクエストをしたい。いつがよいか提案してくれますか？」等の自然な言葉の質問を用いて、本発明の技術は、質問するエンティティと名前を呼ばれたアバタとの時間プロファイルを分析し、時間プロファイルを未来に延長する。本発明の技術はまた、クエスト完了に必要な時間（プレイヤによって特定可能または永続仮想環境から入手可能なインタラクションの区間）についての情報を入手して、「ラゾルフェンダウンズは約２時間かかる。木曜の午後８時〔３５％−５〕または土曜の午前１１時〔４９％−１０〕を提案することを考慮されたい」等の応答を返すことができる。ここで、パーセントはすべてのエンティティが事前の調整がなくとも偶然バーチャルに存在しうる尤度を示し、ハイフンの後の数字は予想の強さ（ここでは１〜１０のスケールで表示）を示す。予想の強さは、時間プロファイル適合のメリット値に対応する。さらに、ＭＭＯＧはプレイヤなしのアバタの提供ができ、このアバタはプレイヤのエンティティが情報要求のためにインタラクトし、かつプレイヤのエンティティに情報を提示する。
【００４１】
仮想存在情報全体を保存しない実施形態では、エンティティの時間プロファイルの変更を追尾できるようにするため、係数ベクトルのコピーを定期的に保存してもよい。
【００４２】
図７はエンティティ存在予測工程７００を示し、これは「分析を実行する」プロシージャ６０７によって呼び出され、「開始」ターミナル７０１で始動して、「初期化」プロシージャ７０２で初期化される。初期化後、「係数ベクトルにアクセスする」プロシージャ７０３が、リクエストに関連したエンティティの存在履歴を表す係数ベクトルを入手する。「時間プロファイルを作成する」プロシージャ７０４は、１つ（または一組の）エンティティの時間プロファイルを作成する。作成された時間プロファイルは「存在予測」プロシージャ７０５で使用され、１つまたは複数のエンティティが未来のある時間に永続仮想環境２００中にバーチャルに存在する尤度を生成する予測関数（時間プロファイルから外挿される）を作成する（図１１のところで後述する）。「存在予測」プロシージャ７０５はまた、信頼値（時間モデルをエンティティの仮想存在情報にあてはめて得られるメリット値の関数）を生成する。２つ以上の係数ベクトルを組み合わせることによって、エンティティ存在予測工程７００は、各エンティティが未来のある時間中にバーチャルに存在する尤度を与えることができる。「存在予測」プロシージャ７０５は、複数のエンティティが特定の区間（クエスト完了に必要な予想時間等）の間に同時にバーチャルに存在する尤度を最大にするように調節できる。次いで、「提示プロシージャ」７０７が「存在予測」プロシージャ７０５で生成された尤度を提示でき、その後、エンティティ存在予測工程７００が「終了」ターミナル７０９で完了する。
【００４３】
「存在予測」プロシージャ７０５は、予測関数の表示を例えばグラフまたはテキスト等でエンティティに直接提示してもよいし、または予測関数から得た情報を、プレイヤなしのアバタ（キャラクタまたはオラクル（神託）として表現される）にインタラクトさせて、予測関数から得た情報をプレイヤのアバタに提示させる等によって提示してもよい。
【００４４】
図８は、時間プロファイルの類似により、複数のエンティティを１つのプレイヤ団体に組み入れる、またはエンティティ同士を紹介することを推奨するのに使用できるグループ推奨工程８００を示す。グループ推奨工程８００は、「分析を実行する」プロシージャ６０７によって呼び出され、「開始」ターミナル８０１で始動し、「初期化」プロシージャ８０３で初期化される。初期化後、グループ推奨工程８００は「エンティティをクラスタ分けする」プロシージャ８０５へ進み、ここで重み付けしたエンティティの係数ベクトルの一部（またはすべて）に基づいてエンティティをクラスタに分ける。クラスタ分けについては図１２のところで後述する。「エンティティをクラスタ分けする」プロシージャ８０５の結果は、推奨として提示できる。グループ推奨工程８００では、時間プロファイルを未来の時間へ延長する必要はない。重み付けした類似点または相違点、例えばエンティティがいつ永続仮想環境中にバーチャルに存在していたか、エンティティのプレイスタイル、および時間以外のエンティティの特徴（類似、互換可、互換不可等）に基づいて、既存の時間プロファイルでエンティティをクラスタ分けできる。具体的には、推奨は、あるエンティティがシティ、クラン、ギルド等のプレイヤ団体に加入する（プレイヤ団体の時間プロファイルとプレイヤのエンティティの時間プロファイルとの類似性を検出することによる）ことを提案してもよいし、または時間プロファイルの類似性および／またはプレイスタイル（例えばキャラクタのレベル、進展の平均速度、プレイヤの好みの音楽スタイル、プレイヤの積極性、プレイヤの「友達リスト」のエントリ数、または他のプレイヤの互換性から決定される）と組み合わせることによって、あるプレイヤのエンティティを他のプレイヤのエンティティと会わせることを提案してもよい。時間プロファイルを時間的に延長すれば、プレイヤの複数のエンティティが同時にバーチャルに存在する可能性のある時間を予測できる。このような予測により、クエストの予定決め、定員会（クオラム）が必要なプレイヤ団体の会合等の予定決めを簡易化できる。
【００４５】
エンティティ間の互換性の決定には、異なるエンティティの係数ベクトルも使用できる。例えば、プレイヤのエンティティの係数ベクトルの時間アスペクトを、プレイヤ団体のエンティティの係数ベクトルの時間アスペクトと比較して、プレイヤ団体の参加レベルが高レベルであるのと同時間にプレイヤがバーチャルに存在しているか否かを判定できる。
【００４６】
図９は、２つ以上のエンティティが時間的互換性をもつ高い尤度を検出し、これらエンティティがオンラインの社会的関係をもつことを推奨するのに使用できる紹介工程９００を示す。紹介工程９００は、「分析を実行する」プロシージャ６０７で呼び出され、「開始」ターミナル９０１で始動し、「初期化」プロシージャ９０３で初期化される。初期化後、紹介工程９００は「時間的にエンティティをクラスタ分けする」プロシージャ９０５へ進み、ここでエンティティの係数ベクトルとそれぞれの重みに応じてエンティティをクラスタ分けする（クラスタの決定には、時間係数および／または非時間係数、例えばエンティティのレベル、階級、職業等を使用できる）。クラスタが決定されると、「紹介を行う」プロシージャ９０７が、クラスタ中の一部またはすべてのエンティティに互いに紹介しあうことの推奨を提示する。紹介工程９００は、「終了」ターミナル９０９で完了する。クラスタ分けに使用する重み付けは、エンティティの必要に沿って作成された推奨を受信できるように、魅力的なものでもよいし、または反発的なものでもよい（例えば、あるプレイヤのアバタをそのプレイヤが望む特徴をもつ他のアバタでクラスタ分けする）。
【００４７】
「紹介を行う」プロシージャ９０７は、クラスタ分けしたエンティティに推奨を与えることによって実行できる。推奨の一例としては、複数のアカウントホルダにホルダ同士がインタラクトする推奨を電子メールで送信する、プレイヤなしのアバタをクラスタ分けしたプレイヤエンティティへ紹介させて、推奨を実行させる（例えばプレイヤなしのアバタにプレイヤのアバタの位置を見つけさせ、「必ずルゴールを見つけなくてはいけない。彼のところへ連れて行ってあげよう」と言わせることができる）、クラスタ分けしたプレイヤエンティティ同士のインタラクトが必要なクエストを構成する、プレイヤ団体に加入することでプレイヤのエンティティに奨励金を付与する等がある。これらの技術は、どれもプレイヤのエンティティがオンラインの社会的関係をもつことを奨励する。
【００４８】
図１０は時間モデル作成／更新工程１０００を示し、これは「時間プロファイルを作成する」プロシージャ５０５によって呼び出され、「開始」ターミナル１００１で始動し、「初期化」プロシージャ１００３で初期化される。時間モデルは、永続仮想環境中のエンティティの存在が周期的な性質をもっていると仮定する。時間プロファイルを、仮想存在情報中の位相情報を保持するように仮想存在情報に適合させることにより、時間モデルを駆動する係数中に仮想存在情報を圧縮できる。
【００４９】
初期化後、「仮想存在情報にアクセスする」プロシージャ１００５は、「存在履歴とエンティティ情報を更新する」プロシージャ４０７によって保存された仮想存在情報にアクセスする。「基底関数にアクセスする」プロシージャ１００７は、時間モデルに使用される基底関数のセットにアクセスする。既存の係数ベクトルから時間プロファイルを再作成する実施形態では、「新たなエンティティ」判定プロシージャ１００９が、仮想存在情報が公知または新たなエンティティに関連しているかどうかを判定する。もしエンティティが新たなエンティティならば、またはもし実施形態が係数ベクトルから時間プロファイルを再作成しないのであれば、時間モデル作成／更新工程１０００は「モデルを適合させる」プロシージャ１０１１へ進み、ここで一般最小二乗法アルゴリズムを用いて、仮想存在情報に対する時間プロファイルを作成する。一実施形態では、エンティティの時間プロファイルは、一般最小二乗法で求められた基底関数のセットに対する係数で特徴付けられる。非特許文献１に示すように、モデルに一般線形最小二乗法を適合させる方法が周知である。適合が完了すると、係数は「係数を保存する」プロシージャ１０１３によって係数ベクトル中に保存される。いくつかの実施形態では、時間モデルが仮想存在情報にどれだけ良好に適合しているかを表すメリット値も保存する。メリット値はまた、適合が時間の経過とともにどのように変化するか、および／または適合が仮想存在情報のより最近の部分のデータにどれだけ合致するかも示すことができる。係数保存後、時間モデル作成／更新工程１０００は「終了」ターミナル１０１５で完了する。
【００５０】
「新たなエンティティ」判定プロシージャ１００９において、すべての仮想存在情報を保存しない実施形態で、かつ係数ベクトルがエンティティに対して存在する場合は、時間モデル作成／更新工程１０００は「時間プロファイルを作成する」プロシージャ１０１７へ進み、係数を時間モデルに適合させて時間プロファイルを作成する。次いで、得られた時間プロファイルの選択したポイントと保存された仮想存在情報とを、「時間プロファイルと仮想存在情報を融合する」プロシージャ１０１９が融合する。次いで、時間モデル作成／更新工程１０００は「モデルを適合させる」プロシージャ１０１１へ進み融合した仮想存在情報に、時間モデルを適合させ、最終的に「終了」ターミナル１０１５で完了する。
【００５１】
基底関数は、周期単位が年、月、週、営業週、週末週、および日である１つ以上の周期関数、ならびにその調和級数、および周期単位がサンプリング期間のオーダである関数を含みうる。基底関数のセットはまた、永続仮想環境２００中の変化に対する応答履歴を表現できる非周期関数である事象関数を含みうる。例えば、永続仮想環境２００に新たな環境が加えられると、プレイヤのエンティティは、新環境を調査するため仮想存在時間量を増加させることが多い。
【００５２】
図１１は予測関数作成工程１１００を示し、これは「存在予測」プロシージャ７０５によって呼び出され、「開始」ターミナル１１０１で始動し、「初期化」プロシージャ１１０３で初期化される。「係数ベクトルにアクセスする」プロシージャ１１０５は、与えられた係数ベクトルにアクセスする。「基底関数にアクセスする」プロシージャ１１０７は、時間モデルについて基底関数にアクセスする。次いで、「時間プロファイルを作成する」プロシージャ１１０９は、各係数ベクトルからの係数を適用して、各係数ベクトルごとに時間プロファイルを作成する。時間プロファイルは時間の関数なので、未来の時間に延長可能である。「複数の時間プロファイル」判定プロシージャ１１１３は、希望の尤度が複数のプロファイルによって駆動されるか、または１つのプロファイルによって駆動されるかを判定する。もし１つのプロファイルによって駆動されるならば、予測関数作成工程１１００は「未来の時間における尤度を決定する」プロシージャ１１１５へ進み、エンティティがある特定の時間またはある特定の時間範囲中にバーチャルに存在する尤度を計算する。その後、予測関数作成工程１１００は「終了」ターミナル１１１７で完了する。
【００５３】
「複数の時間プロファイル」判定プロシージャ１１１３において、複数の時間プロファイルに基づく結果を望む場合は、予測関数作成工程１１００は「時間プロファイルを融合する」プロシージャ１１１９へ進み、ここで多数の計算を行って、双方のエンティティが未来のある時間に存在する尤度を表す予測関数を作成できる。一実施形態では、予測された複数の時間プロファイルを融合して、得られた予測時間プロファイルを正規化する。その後、予測関数作成工程１１００は、得られた予測時間プロファイルの「未来の時間における尤度を決定する」プロシージャ１１１５へ進む。他の実施形態では、別個の時間プロファイルを作成し、時間プロファイルの重複が最大の未来の時間を求める。
【００５４】
図１２は、類似した（および／または互換性のある）特徴（時間プロファイルの特徴および／またはアバタの特徴）をもつエンティティのクラスタの特定に使用可能なベクトルクラスタ分け工程１２００を示す。ベクトルクラスタ分け工程１２００は、「時間的にエンティティをクラスタ分けする」プロシージャ９０５、または「エンティティをクラスタ分けする」プロシージャ８０５から呼び出されるか、および／または「開始」ターミナル１２０１で個別に呼び出されて始動してもよい。ベクトルクラスタ分け工程１２００は、「初期化」プロシージャ１２０３で初期化され、「係数ベクトルにアクセスする」プロシージャ１２０５へ進んで、特徴付け中の係数ベクトルにアクセスする。「重み付けした係数マトリックスを作成する」プロシージャ１２０７は、ある特定の特徴付けについて与えられた係数ベクトルと重み（これら重みのいくつかはエンティティよって特定できる）とから、関連係数の重み付けしたマトリックスを作成する。「固有空間を生成する」プロシージャ１２０９は、重み付けしたマトリックスについて固有ベクトルを計算し、固有ベクトルに基づいて固有空間を生成し、係数ベクトルを固有空間に変換する。次いで、「固有空間を区分けする」プロシージャ１２１１が固有空間を区分けして、クラスタを決定する。係数ベクトルのクラスタは「クラスタ分けしたベクトルを戻す」プロシージャ１２１３によって戻され、その後、ベクトルクラスタ分け工程１２００は「終了」ターミナル１２１５で完了する。同様のクラスタ分けを用いて、クエストのためのグループメンバーシップを提案できる。さらに、プレイヤは２つのエンティティの係数ベクトルを比較して、エンティティについての互換性メトリックを生成できる。従って、プレイヤは自分の互換性が他のエンティティにともなってどのように変化したかを判定できる。
【００５５】
当業者であれば、仮想時間はプレイヤの現実世界の時間と同じではないことが理解できると考える。また、日中の節約タイムゾーンについて、エンティティが異なれば、現実世界の時間はタイムゾーンごとに異なること、かつ時間の収集、使用、およびプレイヤへの提示のため適切な時間の変換が必要なことも理解できると考える。一般的な基準時間はＧＭＴ（Ｇｒｅｅｎｗｉｃｈ  Ｍｅａｎ  Ｔｉｍｅ：グリニッチ平均時）またはＵＴＣ（Ｃｏｏｒｄｉｎａｔｅｄ  Ｕｎｉｖｅｒｓａｌ  Ｔｉｍｅ：協定世界時）である。
【００５６】
本明細書では、プロシージャとは、プログラムされたコンピュータ、専用の電子機器、またはその他の回路、もしくは希望の結果を導くこれらの組み合わせによって実現されるロジックによって実行されうる、矛盾のないステップシーケンスをさす。これらステップは、１つ以上のコンピュータ命令によって規定できる。これらステップは、ステップを規定する命令を実行するコンピュータによって実施できる。さらに、これらステップは、ステップを実施するように設計された回路によって実施できる。従って「プロシージャ」という用語は、命令シーケンス、プログラムされたプロシージャまたはプログラムされた機能中に配置された命令シーケンス、１台以上のコンピュータで実行するプログラムされた工程中に配置された命令シーケンス、または電子もしくはその他の回路またはその他の任意のロジックによって実施されるステップシーケンスをさす（ただし、これらは一例にすぎず、これらに限定するものではない）。
【００５７】
当業者であれば、ネットワークは情報（情報データおよびコンピュータプログラムを規定するデータ）を伝播するということを理解できると考える。情報は搬送波中で実現することもできる。「搬送波」とは、電磁信号、可視もしくは不可視の光パルス、データバス上の信号、または任意の有線、無線、もしくは情報がネットワーク上を伝播できるようにする光ファイバ技術で送信される信号を含む。プログラムおよびデータは、有形の物理媒体（コンパクトディスク、フロッピー（登録商標）ディスク、または磁気ディスク）およびネットワークの双方から共通に読み出すことができる。従ってネットワークは、有形の物理媒体と同様、コンピュータ利用可能なデータキャリアである。
【００５８】
当業者であれば、本発明の技術は、永続仮想環境中でエンティティの時間プロファイリングを可能にし、あるエンティティが未来のある時間に別のエンティティがバーチャルに存在する尤度を入手できる予測関数を求めることを可能にすることを理解できると考える。さらに、本発明の技術はまた、エンティティが自分と類似した時間プロファイルをもつ他のエンティティをより簡易に検出し、時間的に互換性のあるエンティティ同士の間でオンラインの社会的関係の形成を奨励することを可能にする。また、本発明の技術は、エンティティを時間的なプレイスタイルによってグループ分けできる。
【００５９】
上記の説明から、本発明の技術は、以下の効果（ただしこれらに限定するものではない）をもつと理解できる。
１）エンティティ同士が互換性のあるプレイスタイルをもつ場合をより簡単に判定できるようにして、オンラインの社会的関係の構築を簡易化する。
２）エンティティがプレイヤ団体と互換性がある場合の判定を簡易化する。
３）エンティティの存在履歴をモデル化し、かつモデルの係数を維持することにより、エンティティの存在履歴を圧縮できるようにする。
４）永続仮想環境のプロバイダが、類似した時間プロファイルをもつプレイヤ同士が同一サーバに加入する、または永続仮想環境の同一事例の領域に加入するように促して、社会的結束性を最大化させ、および／またはオンラインの社会的関係の形成を奨励するか、または負荷を平衡させるため、プレイヤが類似していない時間プロファイルをもつプレイヤからなるサーバまたは事例に加入するように促すことができる。
５）プレイヤの時間プロファイルとプレイヤ団体の活動との重複を最大化することによって、永続仮想環境が、プレイヤがギルドまたはクラン等のプレイヤ団体を選択するのを支援できる。
６）永続仮想環境のプロバイダが、仮想存在情報を、時間プロファイルを表す係数ベクトルに圧縮できる。
７）未来のある時間においてオンラインの社会的関係をもつ相互関係のあるエンティティの数を予測できる。
【図面の簡単な説明】
【００６０】
【図１】好適な実施形態に従うネットワーク環境のコンピュータシステムの図である。
【図２】永続仮想環境の図である。
【図３】図６に示すように永続仮想環境に関連した仮想存在情報を集めるためのアーキテクチャの図である。
【図４】データ取得工程を示す図である。
【図５】時間プロファイル作成工程を示す図である。
【図６】時間プロファイル分析工程を示す図である。
【図７】エンティティ存在予測工程を示す図である。
【図８】グループ推奨工程を示す図である。
【図９】紹介工程を示す図である。
【図１０】時間モデル作成／更新工程を示す図である。
【図１１】予測関数作成工程を示す図である。
【図１２】ベクトルクラスタ分け工程を示す図である。
【符号の説明】
【００６１】
１００  ネットワーク環境のコンピュータシステム、１０１  コンピュータ、１０３  ＣＰＵ、１０５  メモリ、１０９  ネットワーク。
【図１】
0005204398.tif 000002
【図２】
0005204398.tif 000003
【図３】
0005204398.tif 000004
【図４】
0005204398.tif 000005
【図５】
0005204398.tif 000006
【図６】
0005204398.tif 000007
【図７】
0005204398.tif 000008
【図８】
0005204398.tif 000009
【図９】
0005204398.tif 000010
【図１０】
0005204398.tif 000011
【図１１】
0005204398.tif 000012
【図１２】
0005204398.tif 000013