(58)【調査した分野】(Int.Cl.,DB名)
請求項1記載の方法において、前記含ませるステップが、各入手したアバターを、前記ゲーム内で前記第1ユーザーのアバターを応援する非プレーヤー・キャラクターとして含ませるステップを含む、方法。
請求項1記載の方法において、前記含ませるステップが、前記1人以上の他のユーザーの内の1人について前記入手したアバターを、前記ゲームの以前のプレーの間に前記第1ユーザーが進んだ前記ゲーム内の経路を辿るゴースト・アバターとして含ませるステップを含む、方法。
請求項1記載の方法において、前記含ませるステップが、前記入手したアバターを有する前記他の1人のユーザーが以前にゲームをプレーしていた間に、前記ゲーム内で前記入手したアバターが死んだ位置に、前記1人以上の他のユーザーの内の1人について前記入手したアバターの多数のコピーを、死んだアバターとして含ませるステップを含む、方法。
請求項1記載の方法において、前記第1ユーザーがオンライン・ゲーミング・サービスにログインしており、前記1人以上の他のユーザーの内の少なくとも1人が、前記オンライン・ゲーミング・サービスに現在はログインしていないユーザーを含む、方法。
請求項1記載の方法において、前記含ませるステップが、前記他のユーザーの内の1人が前記第1ユーザーと同じオンライン・ゲーミング・サービスにログインしている場合に、当該他のユーザーについて前記入手したアバターを、特定の外観を有するように表示し、前記他のユーザーの内の前記1人が前記第1ユーザーと同じオンライン・ゲーミング・サービスに現在はログインしていない場合に、当該他のユーザーについて前記入手したアバターを、異なる外観を有するように表示するステップを含む、方法。
請求項1記載の方法において、前記ユーザー要求が、前記第1ユーザーのアバターと、前記第1ユーザーによってプレーされているゲーム内の非プレーヤー・キャラクターとして含められる前記特定の1人のユーザーについての前記アバターとの間の対話を含む、方法。
請求項10記載の方法において、前記第1ゲームが第1ゲーム・タイトルのゲームであり、前記第2ゲームが前記第1ゲーム・タイトルとは異なるゲーム・タイトルのゲームである、方法。
請求項10記載の方法において、前記含ませるステップが、前記第2ユーザーが第1ユーザーと同じオンライン・ゲーミング・サービスにログインしている場合にのみ、前記第1ゲーム内で非プレーヤー・キャラクターとして前記第2ユーザーのアバターを含めるステップを含む、方法。
請求項10記載の方法において、前記含ませるステップが、前記第2ユーザーが第1ユーザーと同じオンライン・ゲーミング・サービスにログインしていることを示す外観と共に、前記第2ユーザーのアバターを表示するステップを含む、方法。
請求項10記載の方法において、前記ユーザー要求が、前記第2ユーザーのアバターと対話するように、前記第1ユーザーのアバターを制御するユーザー入力を含む、方法。
請求項10記載の方法であって、更に、前記第2ユーザーからの前記誘いの受理の指示を受けたことに応答して、前記第1ユーザーおよび前記第2ユーザーをゲーム内に参加させるステップを含む、方法。
【発明を実施するための形態】
【0008】
[0012] 本明細書では、非プレーヤー・キャラクターを演ずる友人のアバターについて論ずる。ゲーミング・サービスの特定のユーザー毎に、この特定のユーザーのソーシャル・グラフにおける他のユーザー(例えば、この特定のユーザーの友人、この特定のユーザーの友人の友人等)を特定する。これら他のユーザーのアバターを、特定のユーザーがプレーしているゲームにおいて、非プレーヤー・キャラクターとして含ませる。他のユーザーは、当該ユーザーのゲームにおいて実際にはプレーしていないが、当該ユーザーは他のユーザーのアバターを非プレーヤー・キャラクターとして見る(例えば、この特定のユーザーを励ます群衆)。また、特定のユーザーは、これら他のユーザーのアバターの内1つと対話するために入力を供給し、アバターと対話させているユーザーに、当該ユーザーとゲームに参加することを要請することもできる。この対話は、他のユーザーの名前を聞こえるように呼ぶ、他のユーザーのアバターの肩を叩く等というように、種々の形態をなすことができる。次いで、当該ユーザー、およびこのユーザーが対話しているアバターのユーザーは、一緒にゲームに参加してプレーすることができる。
【0009】
[0013]
図1は、1つ以上の実施形態にしたがって、友人のアバターを非プレーヤー・キャラクターとして実装するシステム例100を示す。システム100は、多数(x台)のゲーミング・デバイス102、およびオンライン・ゲーミング・サービス104を含み、これらはネットワーク106を通じて互いに通信することができる。ネットワーク106は、種々の異なるネットワークとすることができ、インターネット、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、パーソナル・エリア・ネットワーク(PAN)、電話ネットワーク、イントラネット、他の公衆および/または企業固有のネットワーク、これらの組み合わせ等を含む。
【0010】
[0014] 各ゲーミング・デバイス102は、ユーザーにゲーム(スポーツ・ゲーム、戦略ゲーム、アドベンチャー・ゲーム、シミュレーション・ゲーム等)をプレーさせる種々の異なるタイプのデバイスとすることができる。異なるゲーム・デバイス102の1つ1つは、同じタイプのデバイスでも、または異なるタイプのデバイスでも可能である。例えば、ゲーミング・デバイス102は、ゲーム・コンソール、セルラーまたは他のワイヤレス電話機、テレビジョンまたは他のディスプレイ・デバイス、ディスプレイ・デバイスに通信可能に結合されるセット・トップ・ボックス、デスクトップ・コンピューター、ラップトップまたはネットブック・コンピューター、タブレットまたはノートパッド・コンピューター、移動局、娯楽機器、自動車用コンピューター等とすることができる。
【0011】
[0015] オンライン・ゲーミング・サービス104は、ゲーミング・デバイス102のユーザーによる1つ以上の異なるゲームのプレーをやり易くする。ゲーミング・デバイス104は、ゲーミング・デバイス102がネットワーク106を通じてサービス104(および/または他のゲーミング・デバイス102)にアクセスすることから、オンライン・サービスと呼ばれる。オンライン・ゲーミング・サービス104は、アカウント・アクセス・サービス110,ゲーム・プレー・サービス112、および任意に対戦仲介サービス114を含み、これらの各々は互いに通信することができる。サービス110、112、および114は、オンライン・ゲーミング・サービス104内部で、および/またはゲーミング・デバイス102を通じて、互いに通信することができる。
【0012】
[0016] アカウント・アクセス・サービス110は、オンライン・ゲーミング・サービス104のユーザー・アカウントをサポートする種々の機能を設ける。異なるユーザーおよび/またはゲーミング・デバイス102は、通例、オンライン・ゲーミング・サービス104に対して異なるアカウントを有し、アカウント・アクセス・サービス110を通じて彼らのアカウントにログインすることができる。ユーザーまたはゲーミング・デバイス102は、id(例えば、ユーザー名、電子メール・アドレス等)およびパスワードのような証明書情報、デジタル証明書またはスマートカードからの他のデータ等を提示してログインする。アカウント・アクセス・サービス110は、この証明書情報を検証または認証して、この証明書情報が検証または認証されたならば、ユーザーまたはゲーミング・デバイス102がアカウントにアクセスすることを許可し、証明書情報が検証されないまたは認証されない場合には、ユーザーまたはゲーミング・デバイス102がアカウントにアクセスすることを禁止する。一旦ユーザーの証明書情報が認証されたなら、ユーザーは、オンライン・ゲーミング・サービス104が提供する他のサービスを用いることができる。また、アカウント・アクセス・サービス110は、証明書情報に対する変更を許可する、新たなアカウントを作成する、アカウントを削除する等というような、種々の追加のアカウント管理機能も設けることができる。
【0013】
[0017] ゲーム・プレー・サービス112は、ゲーミング・デバイス102のユーザーによる1つ以上の異なるゲームのプレーをサポートする種々の機能を設ける。異なるゲーム・タイトルをゲーム・プレー・サービス112によってサポートすることができる(例えば、1つ以上の異なるスポーツ・ゲーム・タイトル、1つ以上の異なる戦略ゲーム・タイトル等)。ゲーム・タイトルとは、特定の1組の命令を指し、これを実行するとゲームが行われる(例えば、特定の販売業者からのテニス・ゲームのための1組の命令、特定の販売業者からの特定の競走ゲームのための1組の命令等)。特定のゲーム・タイトルの実行も、ゲームと呼ぶ。同じゲーム・タイトルの多数のゲームを同時に異なるユーザーによってプレーすることができ、各ゲームは、ゲーム・タイトルの別個の実行となる。ゲームは、1プレーヤー・ゲームとして実行しプレーすることができ、この場合、ゲーミング・デバイス102の1人のユーザーがゲームをプレーし、このゲームにおける1つ以上のキャラクターを制御し、ゲームにおける他のキャラクターはゲーム自体によって制御される(これら他のキャラクターは、非プレーヤー・キャラクターとも呼ばれる)。また、ゲームは、多プレーヤー・ゲームとして実行しプレーすることもでき、この場合、1つ以上のゲーミング・デバイス102の多数のユーザーが同じゲームをプレーしており、各ユーザーがゲームにおける1つ以上のキャラクターを制御している。多プレーヤー・ゲームでは、1つ以上の追加のキャラクターをゲーム自体によって制御することもできる。
【0014】
[0018] ゲームは、通例、1つ以上のプログラムを実行することによって動作する。これらのゲームを動作させるために実行されるプログラムは、ゲーミング・デバイス102および/またはゲーム・プレー・サービス112上で実行することができる。ゲーミング・デバイス102は、ゲームのための1つ以上のプログラムを実行し、ゲーム・プレー・サービス112と通信して、ゲームをプレーしている間ゲーミング・デバイス102のユーザー間における意思疎通(communication)を促進すること、および/またはゲームをプレーするための追加データ(および/またはプログラム)を供給するまたは入手することができる。あるいは(または、加えて)、ゲーム・プレー・サービス112は、ゲームのための1つ以上のプログラムを実行し、ゲーミング・デバイス102のユーザーから入力を受け取り、ゲーミング・デバイス102のユーザーに対する表示またはその他の提示のために生成すべき出力を示すデータを戻すことができる。
【0015】
[0019] 1つ以上の実施形態では、ゲームはゲーミング・デバイス102上で実行するプログラムであり、ゲーム・プレー・サービス112は、異なるゲーミング・デバイス102間における通信を管理する。他の実施形態では、ゲームは、ゲーミング・デバイス102上で実行するプログラムであり、ゲーム・プレー・サービス112は、異なるゲーミング・デバイス102間において通信を確立し易くする。2つのゲーミング・デバイス102間において通信が確立された後、ゲーム・プレー・サービス112を関与させることなく、これら2つのゲーミング・デバイス102間において通信を行うことができる。
【0016】
[0020] ゲーム・プレー・サービス112は、アバター調整モジュール120を含む。ゲームをプレーしている間、ユーザーを表すオブジェクト(object)がゲーム内にあり、これをアバターと呼ぶ。アバターは、多くの場合、ユーザーのグラフィック表示であるが、代わりに、車両、球体(orb)等のような、種々の他の形態をなすこともできる。アバター調整モジュール120は、1つ以上のゲームに跨がる異なるユーザーのアバター共有、および/または1つ以上のゲームに跨がるアバター間の意思疎通を容易にする。アバターは、異なるゲーム・タイトルに跨がって共有することができ、更に同じゲーム・タイトルの異なるゲームに跨がって共有することもできる。同様に、アバター間の意思疎通は、異なるゲーム・タイトルに跨がって行うことができ、更に同じゲーム・タイトルの異なるゲーム間で行うこともできる。加えて、ユーザーのアバターは、ユーザーがオンライン・ゲーミング・サービス110にログインしている間、および/またはユーザーがオンライン・ゲーミング・サービス110にログインしていないときにも共有することができる。このアバターの共有については、以下で更に詳しく論ずる。アバター調整モジュール120は、ゲーム・プレー・サービス112の一部として含まれるように示されているが、代わりに、少なくとも部分的にゲーミング・デバイス102に実装することもできる。
【0017】
[0021] 対戦仲介サービス114は、オンライン・ゲーミング・サービス104に含まれるときには、ゲーミング・デバイス102のユーザーがゲームをプレーすることができる相手となる他のユーザーの発見を容易にする種々の機能を設ける。対戦仲介サービス114は、ゲーミング・デバイス102の物理的位置、ゲーミング・デバイス102のユーザーの習熟度、および/またはゲーミング・デバイス102および/またはゲーミング・デバイス102のユーザーのその他の特性に基づいてというように、種々の異なるやり方で、特定のユーザーがゲームをプレーすることができる相手となる他のユーザーを特定する。対戦仲介サービス114は、アカウント・アクセス・サービス110が知っているユーザー・アカウントに基づいて、ユーザーが特定の時点に彼らのアカウントにログインしたことに基づいて(例えば、アカウント・アクセス・サービス110によって示される)、他のサービスからのアカウントに基づいて(例えば、対戦仲介サービス114が通信することができるソーシャル・ネットワーキング・サービス)等によって、他のユーザーを特定することができる。対戦仲介サービス114は、ゲーミング・デバイス102のユーザーが同じおよび/または異なるタイプのゲーミング・デバイス102(例えば、デスクトップ・コンピューターの1人以上のユーザーおよびゲーム・コンソールの1人以上のユーザー、電話機の1人以上のユーザーおよびゲーム・コンソールの1人以上のユーザー等)に跨がってゲームをプレーすることができる相手となる他のユーザーを特定することができる。同様に、対戦仲介サービス114は、ゲーミング・デバイス102のユーザーが同じおよび/または異なるサービス(例えば、ゲーム・プレー・サービス112の1人以上のユーザー、およびオンライン・ゲーミング・サービス104の他のサービスの1人以上のユーザー)に跨がってゲームをプレーすることができる相手となる他のユーザーを特定することができる。また、アバター調整モジュール120も、以下で更に詳しく論ずるように、ユーザーのソーシャル・グラフに基づいて、ゲーミング・デバイス102のユーザーがゲームをプレーすることができる相手となる他のユーザーを特定することができる。対戦仲介サービス114が他のユーザーを発見したときはいずれも、アバター調整モジュール120が発見した他のユーザーに追加される。
【0018】
[0022] サービス110、112、および114の各々は、1つ以上の計算デバイスを用いて実現することができる。通例、これらの計算デバイスはサーバー・コンピューターであるが、種々の異なるタイプの計算デバイスのいずれでも、代わりに用いることができる(例えば、ゲーミング・デバイス102を参照して先に論じたタイプのデバイスのいずれか)。サービス110、112、および114の各々は、異なる計算デバイスを用いて実現することができ、または代わりに、サービス110、112、および114の1つ以上を、同じ計算デバイスを用いて実現することもできる。
【0019】
[0023] 加えて、サービス110、112、および114は別個のサービスのように図示されているが、代わりに、これらのサービスの1つ以上を1つのサービスとして実現することもできる。例えば、ゲーム・プレー・サービス112および対戦仲介サービス114を1つのサービスとして実現することができる。更に、サービス110、112,および114の1つ以上の機能を多数のサービスに分離することもできる。加えて、オンライン・ゲーミング・サービス104の機能を多数のサービスに分離することもできる。例えば、オンライン・ゲーミング・サービス104は、アカウント・アクセス・サービス110およびゲーム・プレー・サービス112を含むのでもよく、異なるサービス(例えば、ソーシャル・ネットワーキング・サービス)が対戦仲介サービス114を含むこともできる。
【0020】
[0024]
図2は、1つ以上の実施形態によるゲーミング・デバイスおよびディスプレイの一例を更に詳細に示す。
図2は、ゲーミング・デバイス202を示し、これは
図1のゲーミング・デバイス102とすることができ、ディスプレイ・デバイス204(例えば、テレビジョン)に結合されている。ゲーミング・デバイス202およびディスプレイ・デバイス204は、有線接続および/またはワイヤレス接続を介して通信することができる。ゲーミング・デバイス202は、アバター調整モジュール212、および入力/出力(I/O)モジュール214を含む。アバター調整モジュール212は、
図1のアバター調整モジュール120に類似しているが、オンライン・ゲーミング・サービス内ではなく、ゲーミング・デバイス202内に実装されていることが示されている。
【0021】
[0025] 入力/出力モジュール214は、入力の認識および/またはゲーミング・デバイス202による出力の供給(例えば、表示またはその他の提示)に関する機能を設ける。例えば、入力/出力モジュール214は、キーボードまたはマウスから入力を受け取り、ジェスチャーを特定し、このジェスチャーに対応する動作を実行させる等というように構成することができる。入力は、入力/出力モジュール214によって種々の異なる方法で検出することができる。
【0022】
[0026] 入力/出力モジュール214は、図示されているコントローラー216のような、ハードウェア・デバイスとの接触相互作用によって、1つ以上の入力を受け取るように構成することができる。接触相互作用は、ボタンを押すこと、ジョイスティックを動かすこと、トラック・パッドを横切る移動、ディスプレイ・デバイス204またはコントローラー216のタッチ・スクリーンの使用(例えば、ユーザーの手の指またはスタイラスの検出)、動き検出コンポーネントによって認識される他の物理的入力(例えば、デバイスを揺する、デバイスを回転させる等)等を伴うのでもよい。接触入力の認識は、入力/出力モジュール214によって、ゲームと対話処理するため、ゲーミング・デバイス202の1つ以上の設定を変更するため等に、ゲーミング・デバイス202によって出力されるユーザー・インターフェースと対話処理するために利用することができる。また、デバイスとの接触相互作用を伴う種々の他のハードウェア・デバイスも考えられる。このようなハードウェア・デバイスの例には、カーソル制御デバイス(例えば、マウス)、リモコン(例えば、テレビジョンのリモコン)、移動体通信デバイス(例えば、ゲーミング・デバイス202の1つ以上の動作を制御するように構成されているワイヤレス電話機)、およびユーザーまたはオブジェクトの一部における接触を伴う他のデバイスが含まれる。
【0023】
[0027] また、入力/出力モジュール214は、接触(touch)即ち物理的コンタクト(contact)を伴わない他のやり方で1つ以上の入力を受け取るように構成することもできる。例えば、入力/出力モジュール214は、マイクロフォン(例えば、ゲーミング・デバイス202の一部として含まれるか、またはこれに結合されている)の使用によって、オーディオ入力を受け取るように構成することができる。他の例として、入力/出力モジュール214は、ジェスチャー、提示されたオブジェクト、画像等を、カメラ218の使用によって認識するように構成することができる。また、ゲーミング・デバイス202によって画像を利用して、特定のユーザー(例えば、顔認識によって)、オブジェクト等を識別する技法というような、種々の他の機能を設けることもできる。
【0024】
[0028] また、ゲーミング・デバイス202は、カメラ218を利用して、人体の特定点(例えば、48ヶ所の骨格点)の特徴抽出と共に骨格マッピングを実行して、1人以上のユーザー(例えば、同時に4人のユーザー)を追跡し、動き分析を行うこともできる。例えば、カメラ218は画像を取り込むことができ、この画像を入力/出力モジュール214またはゲーミング・デバイス202上で動作するゲームによって分析して、ユーザーによって行われる1つ以上の動きを認識する。ユーザーの動きは、どの身体部分を用いてその動きを行ったのか、そしてどのユーザーがその動きを行ったのかを含む。これらの動きは、入力/出力モジュール214または動作中のゲームによってジェスチャーとして特定され、対応する動作を開始することができる。
【0025】
[0029]
図3は、1つ以上の実施形態にしたがって友人のアバターを非プレーヤー・キャラクターとして実装するシステム例300を示す。システム300は、アバター調整モジュール302(
図1のアバター調整モジュール120、または
図2のアバター調整モジュール212とすることができる)、ソーシャル・ネットワーク管理モジュール304、ソーシャル・ネットワーク・データ・ストア306、ゲーム310の1つ以上のゲーム・モジュール308、およびゲーム314の1つ以上のゲーム・モジュール312を含む。
【0026】
[0030] ソーシャル・ネットワーク管理モジュール304は、システム300のユーザー(例えば、
図1のオンライン・ゲーミング・サービス104のアカウントを有するユーザー)のためにソーシャル・ネットワーク・データを管理する。この管理は、ユーザーのソーシャル・グラフにおいて他のユーザーを特定することを含む。システム300の異なるユーザーのために、ソーシャル・ネットワーク・データ・ストア306に異なるソーシャル・ネットワーク・データを維持する。システム300のユーザー毎に、そのユーザーの友人の記録を維持する。友人は、個人的な知り合い、仕事仲間、家族の構成員等というような、種々の異なる形態をなすことができる。ソーシャル・ネットワーク管理モジュール304は、ユーザーが他のユーザーを友人として特定することを可能にし、これらの友人の指示を、ユーザー毎にデータ・ストア306に格納する。ユーザーは、この特定のユーザーのユーザー名またはアカウント識別子を入力する、リストからこの特定のユーザーを選択する等というように、 友人である特定のユーザーを異なるやり方で特定することができる。任意に、他のユーザーが特定のユーザーの友人になりたがっていることを確認した場合にのみ、他のユーザーを特定のユーザーの友人として示すことができる。また、ソーシャル・ネットワーキング・サービス(例えば、
図1のオンライン・ゲーミング・サービス104の外部にある)にアクセスする、他のコンポーネントまたはモジュールから友人の指示を受け取る等によってというように、他のやり方で特定のユーザーの友人を識別することもできる。
【0027】
[0031] ユーザーのソーシャル・グラフとは、そのユーザーの友人、そして任意に1つ以上の追加のレベルまたはステップの友人を指す。各レベルまたはステップとは、直前のレベルまたはステップにおける各ユーザーの友人のグループを意味する。例えば、第1レベルまたはステップは、ユーザーの友人であり、第2レベルまたはステップはそのユーザーの友人の友人であり、第3レベルまたはステップはユーザーの友人の友人の友人である等となる。つまり、特定のユーザーについてのソーシャル・グラフは、その特定のユーザーに知られている他のユーザー、そして任意に追加のユーザー(例えば、友人の友人)を含むことができる。また、特定のユーザーのソーシャル・グラフにおけるユーザーは、その特定のユーザーに関連があるとも言う。ソーシャル・ネットワーク管理モジュール304は、ユーザーのソーシャル・グラフを、アバター調整モジュール302に利用可能にし、任意に他のモジュールまたはプログラム(例えば、1つ以上のゲーム)にも利用可能にすることができる。
【0028】
[0032] ゲーム・モジュール308は、ゲーム310のモジュールであり、ゲーム・モジュール312は、ゲーム314のモジュールである。図示する例では、ゲーム310および314は、異なるユーザーがプレーしているゲームである。ゲーム310および314は、異なるゲーム・タイトルであることができ(例えば、一方はスポーツ・ゲームであり、他方はアドベンチャー・ゲームであることができる)、または代わりに、同じゲーム・タイトルの異なるゲームであることもできる。
【0029】
[0033] アバター調整モジュール302は、アバター共有モジュール332およびアバター通信モジュール324を含む。アバター共有モジュール322は、特定のユーザーがプレーしているゲームの中に、他のユーザーのアバターを表示することを、この特定のユーザーに可能にする機能を設ける。特定のユーザーがプレーしているゲームの中に、他のユーザーのアバターの内どれを表示できるかは、少なくとも部分的に、ソーシャル・ネットワーク・データ・ストア306におけるデータに基づく。これについては、以下で更に詳しく論ずる。アバター通信モジュール324は、異なるゲーム・タイトルおよび/または同じゲーム・タイトルの異なるゲームに跨がる異なるユーザーのアバター間における意思疎通を可能にする機能を設ける。
【0030】
[0034] アバターとは、ゲームにおいてユーザーを表す(および/またはユーザーによって制御される)オブジェクトである。アバターは、多くの場合、人間の外観を有する、ユーザーのグラフィック表現であり、ユーザーと同様の特徴(例えば、髪の毛の色、身長、体重等)を含むことができ、または代わりに異なる特徴を含むのでもよい。あるいは、アバターは、車両(例えば、車または宇宙船)、幾何学的形状(例えば、球体)等のような、人以外の他のオブジェクトとすることもできる。各ユーザーは、彼または彼女自身のアバターを有し、異なるユーザーのアバターは異なる特徴を有することができる。
【0031】
[0035] システム300は、種々の異なるデバイスにおいて実現することができる。例えば、システム300は、
図1のゲーミング・デバイス102において、
図1のオンライン・ゲーミング・サービス104において、部分的にゲーミング・デバイス102において、そして部分的にオンライン・ゲーミング・サービス104において実現することができる。
【0032】
[0036] 1つ以上の実施形態では、アバター調整モジュール302は、ゲーム310および314とは離れて、これらに利用可能とされるサービスの一部として実装されている。あるいは、アバター調整モジュール302は、ゲーム310および314内に(少なくとも部分的に)実装することもできる。つまり、例えば、モジュール308はアバター共有モジュール322および/またはアバター通信モジュール324を含むことができ、あるいはアバター共有モジュール322および/またはアバター通信モジュール324によって実行されるように本明細書で論ずる機能の少なくとも一部を実現することができる。同様に、一例として、モジュール312はアバター共有モジュール322および/またはアバター通信モジュール324を含むことができ、あるいはアバター共有モジュール322および/またはアバター通信モジュール324によって実行されるように本明細書で論ずる機能の少なくとも一部を実現することができる。
【0033】
[0037] アバター共有モジュール322は、特定のユーザーが、他のユーザーのアバターを、この特定のユーザーがプレーしているゲーム310の中に表示することを可能にする。
図3は、ゲーム310をプレーしている特定のユーザーを参照しながら論ずるが、本明細書において論ずる技法は、ゲーム314だけでなく他のゲームのユーザーにも適用される。他のユーザーのアバターを表示しようとするとき、特定のユーザーのソーシャル・グラフに基づいて、これらのユーザーを決定する。ソーシャル・グラフに含まれるレベルまたはステップの数は、様々に変化する可能性があり、特定のユーザーに基づいて決定することができる。例えば、特定のユーザーは、彼または彼女のグラフにどれ位のレベルまたはステップを含ませようとしているのかを示す構成値を設定することができる。
【0034】
[0038] アバター共有モジュール322は、特定のユーザーのソーシャル・グラフを(例えば、ソーシャル・ネットワーク管理モジュール304から)入手し、表示しようとするユーザーのアバター(またはアバターの指示)を、ゲーム310のモジュール308に供給する。ユーザーのアバターは、ソーシャル・ネットワーク・データ・ストア306または他のストアのような、アバター共有モジュール322にアクセス可能なデータ・ストアに維持することができる。アバター共有モジュール322は、表示しようとするユーザーのアバターを入手し、これらのアバターをモジュール308に供給することができる。あるいは、アバター共有モジュール322は、表示しようとするアバターのユーザーの識別子をモジュール308に供給することができ、次いで、ゲーム310自体がユーザーを識別してそのアバターを入手することができる。
【0035】
[0039] 次いで、 ゲーム310は、これらのユーザーのアバターをゲーム310において非プレーヤー・キャラクター(NPC)として表示する。非プレーヤー・キャラクターとは、その動作がユーザーではなくゲームによって制御されるキャラクターを指す。非プレーヤー・キャラクターは、通例、対戦中にユーザーのアバターを支援する、ゲームにおいてユーザーを支援するためにユーザーのアバターと交流する(interact)、ユーザーに対して戦闘または競走を挑む、ユーザーのために(またはユーザーの敵を(against))応援する等というような、種々の行為をゲームにおいて行う。このため、ランダムにあるいは他の何らかの規則または判断基準にしたがって生成または選択された特性で非プレーヤー・キャラクターを表示するのではなく、ゲーム310は、少なくも一部の非プレーヤー・キャラクターを、特定のユーザーのソーシャル・グラフ(例えば、特定のユーザーの友人の非プレーヤー・キャラクター)に基づいて選択されたアバターとして表示する。アバターは、特定のユーザーのソーシャル・グラフからランダムに(または擬似ランダムに)選択する、そのアバターが他のアバターに対して最近選択されたのがいつだったのかに基づいて選択する、異なる規則または判断基準にしたがって選択する等というように、異なるやり方で選択することができる。
【0036】
[0040] ゲーム310は、これらのアバターを同様に表示し、他の非プレーヤー・キャラクターと同じ行為を行うアバターが表示される。例えば、アバターは、特定のユーザーを応援する群衆における非プレーヤー・キャラクターとして、レースにおいて特定のユーザーと競走する非プレーヤー・キャラクターとして、特定のユーザーが仮想世界を探検しているときに遭遇した非プレーヤー・キャラクターとして、レベルの終端においてラウンジに座っている非プレーヤー・キャラクターとして、降下地帯または停留所における非プレーヤー・キャラクターとして、空からパラシュートで降りてくる非プレーヤー・キャラクターとしてというように表示することができる。他の例として、1つ以上の実施形態では、ゲーム310は、ユーザーにゴースト・アバター(ghost avatar)と競走させる。ゴースト・アバターとは、多くの場合、ユーザーが以前にゲームをプレーしたときにユーザーが進んだ経路に従うユーザーのアバターのイメージである(例えば、以前にゲームをプレーしたときにユーザーが進んだ特定の経路)。このような実施形態では、ユーザーのアバターの画像ではなく、ゴースト・アバターは、特定のユーザーのソーシャル・グラフに基づいて選択したアバターとすることができる。つまり、ユーザーのアバターがこのユーザーのアバターのゴースト・アバターと競走するのではなく、ユーザーのアバターは、ユーザーのソーシャル・グラフにおける他のユーザーのアバター(以前のゲーム・プレーにおいてユーザーが進んだ経路に従う)のゴースト・イメージと競走することができる。
【0037】
[0041] 尚、ユーザーのアバターが非プレーヤー・キャラクターとしてゲーム310において表示されているとき、これらのユーザーは、その同じゲーム・タイトルの他のゲームをプレーしている必要はない(しかし、することはできる)。これらのユーザーは、以前にゲーム310をプレーしたことがある必要はなく(しかし、したことがある可能性はある)、今後もゲーム310をプレーする必要はない(しかし、することはできる)。更に、これらのユーザーは、オンラインになっている必要がない(しかし、オンラインにすることはできる)(例えば、オンライン・ゲーミング・サービス104にログインする必要はない)。ゲーム310をプレーしていない、および/またはオンラインでないにも拘わらず、これらのユーザーのアバターは、ゲーム310をプレーしている特定のユーザーのソーシャル・グラフの中にこれらのユーザーが入っているために、ゲーム310において非プレーヤー・キャラクターとしてなおも表示される。
【0038】
[0042] 他の実施形態では、特定のユーザーがプレーしているゲームにおいて非プレーヤー・キャラクターとして表示されるアバターは、非プレーヤー・キャラクターとしてアバターが表示されるプレーヤーがそのゲームをプレーした方法に応じたやり方で表示される。これらのユーザーは、現在特定のユーザーがプレーしているゲームの前に、そのゲームをプレーしたことがある可能性があり、および/または特定のユーザーが現在プレーしているゲームと同時にゲームをプレーしていることも可能である。アバターを表示するやり方は、アバターを表示する位置、および/またはアバターを生体として表示するかまたは死体として表示するかを含んで、様々に変化させることができる。
【0039】
[0043] ユーザーがゲームをプレーする方法に応じたやり方でアバターを非プレーヤー・キャラクターとして表示する状況では、アバターを非プレーヤー・キャラクターとして表示するやり方を、ゲームの1つ以上のモジュールによって追跡することができる。例えば、1人のユーザー、ユーザーAがゲーム310をプレーしている間、モジュール308は、特定のイベントが発生する場所の記録を維持することができる(例えば、ユーザーのアバターが死ぬ毎に)、この記録は、ソーシャル・ネットワーク・データ・ストア306に格納することができ、または代わりにどこにでも格納することができる。他のユーザー、ユーザーBがゲーム314をプレーしており、ユーザーAがユーザーBのソーシャル・グラフに含まれている場合、モジュール312は、このゲームにおけるユーザーBのアバターの位置を監視する。ゲームにおけるユーザーBのアバターの位置が、イベントが発生したときにユーザーAのアバターがいた位置と同じであるとき(例えば、閾値距離以内)、ユーザーBのアバターを、発生したイベントの指示と共に表示することができる。例えば、ユーザーAのアバターが特定の場所で死んだ場合、ユーザーAの死んだアバターを、その特定の場所に表示することができる。更に、1つの特定の場所で多数のイベントが発生した場合、ユーザーAのアバターを多数回表示することができる。例えば、ユーザーAのアバターがある特定の場所で数回死んだ場合、ユーザーAの死んだアバターを数個(任意に、異なる姿勢で、同じアバターの多数のコピー)その特定の場所に表示することができる。
【0040】
[0044] 更に、1つ以上の実施形態では、特定のユーザーのソーシャル・グラフの中にあるユーザーについて、ゲーム310において非プレーヤー・キャラクターとして表示されているアバターを利用して、これらのユーザーを特定のユーザーと共にゲームに参加させることができる。任意に、非プレーヤー・キャラクターとして表示されているユーザーのアバターは、アバターが非プレーヤー・キャラクターとして表示されているユーザーの内誰が現在オンライン(例えば、
図1のオンライン・ゲーミング・サービス104にログインしている。これは、特定のユーザーと同じオンライン・ゲーミング・サービスである)になっているか示すように表示することができる。例えば、現在オンラインになっているユーザーのアバターのみを、非プレーヤー・キャラクターとして表示することができる。他の例として、アバターが表示されているプレーヤーが現在オンラインになっているか否か示すように、アバターの外観を変更することができる(例えば、現在オンラインになっているユーザーのアバターは、現在オンラインになっていないユーザーのアバターよりも大きく表示することができ、現在オンラインになっているユーザーのアバターは、何らかのやり方で拡大するまたは強調されるように表示することができる)。
【0041】
[0045] 特定のユーザーは、非プレーヤー・キャラクターとして表示されているユーザーのアバターと、種々のやり方で対話または意思疎通して、特定のユーザーと一緒にゲームに参加するように、そのユーザーを誘うことができる。アバター通信モジュール324は、この対話または意思疎通を容易にし、ユーザーがプレーしているゲーム(および/またはユーザーによって使用されている他のプログラム)間の対話または意思疎通のためのデータを受け渡す。この対話または意思疎通は、種々の形態を取ることができる。例えば、意思疎通は、特定のユーザーが聞こえるように他のユーザーの名前を呼び上げるというように、聞くことができる呼び出し(audible call)とすることができる。他の例として、対話は、特定のユーザーが他のユーザーのアバターの肩を叩くように彼または彼女のアバターを制御する、特定のユーザーが他のユーザーのアバターにハイ・ファイブ(high-five)を与える等というような、アバター間の「物理的な」対話とすることができる。この対話または意思疎通に応答して、2人のユーザーを自動的にゲームに参加させることができ、または代わりに、特定のユーザーおよび他のユーザーを、他のユーザーが誘いを受け入れたことに応答して、ゲームに参加させることができる(例えば、彼または彼女にアバターにハイ・ファイブを返させることによって、彼または彼女のアバターに特定のユーザーのアバターと握手させることによって等)。
【0042】
[0046] 例えば、ユーザーAおよびユーザーBが双方ともオンラインになっており(例えば、
図1のオンライン・ゲーミング・サービス104のような、同じオンライン・ゲーミング・サービスにログインした)、ユーザーBがユーザーAのソーシャル・グラフの中にあり、ユーザーBのアバターがユーザーAのゲームにおいて非プレーヤー・キャラクターとして表示されていると仮定する。ユーザーAは、ユーザーBの名前を呼び上げることによって、ユーザーBにユーザーAとゲームに参加するように誘うことができる。ユーザーAがユーザーBの名前を呼び上げる可聴データが、ユーザーAのゲーミング・デバイスに記録され、ユーザーBのゲーミング・デバイスにおいて再生される。このように、異なるゲーム・タイトル(またはユーザーAがプレーしている同じゲーム・タイトルの異なるゲーム)をプレーしているが、ユーザーBはユーザーAがユーザーBの名前を呼ぶのが聞こえる。すると、ユーザーBは、任意に、この誘いを受け入れる何らかの行為(ユーザーAの名前を呼び上げる、特定のキー・シーケンスを押す等)を行うことができ、これに応答して、ユーザーAおよびユーザーBは同じゲームに参加する。このように、ユーザーAはユーザーBのアバターがユーザーAのゲームにおいて非プレーヤー・キャラクターとして存在することに基づいて、ゲームに参加するようにユーザーBを誘うことができる。
【0043】
[0047] 他の例として、再度、ユーザーAおよびユーザーBが双方ともオンラインになっており(例えば、
図1のオンライン・ゲーミング・サービス104のような同じオンライン・ゲーミング・サービスにログインした)、ユーザーBがユーザーAのソーシャル・グラフの中にあり、ユーザーBのアバターがユーザーAのゲームにおいて非プレーヤー・キャラクターとして表示されていると仮定する。ユーザーAは、ユーザーBのアバターの肩を叩くようにユーザーAのアバターを制御することによって、ユーザーBにユーザーAとゲームに参加するように誘うことができる。この誘いの指示は、ユーザーAのアバター(例えば、アバター共有モジュール322から得られる)をユーザーBのゲームにおいて、ユーザーBがゲームにおいてユーザーAに加わることを要求するダイアログ・ボックスと共に、非プレーヤー・キャラクターとして表示する、ユーザーAのアバターをユーザーBのゲームにおいて非プレーヤー・キャラクターとして表示し、ユーザーAのアバターがユーザーBにゲームにおいてユーザーAに加わる要求を聞こえるように話す、ユーザーBのゲームにおいて非プレーヤー・キャラクターとして表示されているユーザーAのアバターが、ゲームに加わる誘いを示すジェスチャーを行う(例えば、ユーザーAのアバターがユーザーBのアバターの肩を叩く、またはユーザーBにハイ・ファイブを与える)等というように、異なるやり方で提示することができる。すると、ユーザーBは、任意に、この誘いを受け入れる何らかの行為を行うことができ(ユーザーAの名前を呼び上げる、特定のキーを押す、ユーザーAのアバターの肩を叩くようにユーザーBのアバターを制御する等)、これに応答して、ユーザーAおよびユーザーBは同じゲームに参加することができる。
【0044】
[0048] 特定のデータの提示(例えば、可聴データの再生、ゲームに加わる要求の表示等)は、アバター通信モジュール324および/またはユーザー(またはユーザーが用いている他のプログラム)がプレーしているゲームのモジュールによって管理することができる。例えば、ユーザーAがユーザーBの名前を呼び上げた場合、この呼び上げの可聴データは、アバター通信モジュール324によって受信することができ、アバター通信モジュール324は、ユーザーBが用いているゲーミング・デバイス上でこの可聴データを再生することができる。他の例として、ユーザーAがユーザーBの名前を呼び上げた場合、この呼び上げの可聴データは、ユーザーAがプレーしているゲームによって、アバター通信モジュール324に供給することができ、一方、アバター通信モジュール324は、この可聴データを、ユーザーB(またはユーザーBが用いている他のプログラム)がプレーしているゲームに供給する。すると、このユーザーB(またはユーザーBが用いている他のプログラム)がプレーしているゲームは、この可聴データを、ユーザーBが用いているゲーミング・デバイス上で再生することができる。
【0045】
[0049] 1人のユーザーがゲームに参加するように他のユーザーを誘うと、これら2人のユーザーを自動的に同じゲームに参加させることができ、また代わりに、誘われた側からの誘いの受け入れを受けた後に、これらのユーザーを同じゲームに参加させることができる。誘われた側が、誘った側がプレーしているゲームに参加することができ、誘った側が、誘われた側がプレーしているゲームに参加することができ、または代わりに、新たなゲームを作成し、誘った側および誘われた側の双方がこの新たなゲームに参加することができる。加えて、2人のユーザーは直ちにゲームに参加することができ(10〜30秒というような閾値時間量を用いる)、これによって、ユーザーの一方または双方のゲームを終了させることができる(例えば、ユーザーのゲームを途中で停止してもよい)。あるいは、2人のユーザーは、双方がそれぞれのゲームにおいてしかるべき停止点または一時停止点に達した後に、ゲームに参加することもできる。しかるべき停止点または一時停止点の性質(nature)は、ゲームによって様々に異なることが可能である。例えば、2人のユーザーは、双方がそれぞれのゲームのあるレベルを完了したとき、双方がそれぞれのゲームのチェックポイントにおいて停止したとき等に、ゲームに参加することができる。
【0046】
[0050] 2人のユーザーが同じゲームに参加することを決定したとき、双方のユーザーが参加したゲームの管理およびゲーム・プレーは、
図1のオンライン・ゲーミング・サービス104(例えば、ゲーム・プレー・サービス112)および/またはこれらのユーザーがプレーしているゲーム(例えば、
図3のゲーム310および312)によって調整することができる。多数のユーザーが同じゲームをプレーしているときには、種々の異なる従来のやり方でユーザーを管理することができる。
【0047】
[0051] 尚、ここで注記すべきは、1人のユーザーが他のユーザーのアバターと意思疎通または対話して、他のユーザーに当該1人のユーザーをゲームに加わらせることができるが、この他のユーザーのアバターは、この1人のユーザーがプレーしているゲームでは非プレーヤー・キャラクターであるということである。このアバターは、1人のユーザーがプレーしているゲームでは、他のユーザーによって制御されているのではない。また、他のユーザーは、ゲームに参加することを誘われるために、1人のユーザーと同じゲームをプレーしている必要はなく、逆に、他のユーザーは、異なるゲームをプレーしていても、ゲームにおいて特定のユーザーに加わる誘いを受けることができる。
【0048】
[0052] 加えて、本明細書における種々の論述では、2人のユーザーがゲームに参加することについて論じたが、本明細書において論じた、友人のアバターを非プレーヤー・キャラクターとする技法は、いずれの数のユーザーでもゲームに参加させるために用いることができることも注記してしかるべきである。例えば、特定のユーザーが彼または彼女の友人の内5人の名前を呼び上げて、この特定のユーザーと共にゲームに参加するように、5人全てを誘うことができる。
【0049】
[0053] 更に、1つ以上の実施形態では、特定のユーザーのアバターが他のユーザーのゲームにおいて非プレーヤー・キャラクターとして表示されるのは、特定のユーザーがそうすることの同意を受けた後だけである。このユーザーの同意は、オプトイン同意(opt-in consent)とすることができ、この場合、ユーザーは、彼または彼女のアバターを他のユーザーのゲームにおいて非プレーヤー・キャラクターとして使用することを要求するために、肯定的行為(例えば、ラジオ・ボタン、メニュー項目等の選択)を行う。あるいは、このユーザー同意は、オプトアウト同意(opt-out consent)とすることができ、この場合、ユーザーは、彼または彼女のアバターが他のユーザーのゲームにおいて非プレーヤー・キャラクターとして使用されないことを要求するために肯定的行為(例えば、ラジオ・ボタン、メニュー項目等の選択)を行う。ユーザーが、彼または彼女のアバターを他のユーザーのゲームにおいて非プレーヤー・キャラクターとして使用させることをオプトアウトする選択を行わない場合、彼または彼女のアバターを他のユーザーのゲームにおいて非プレーヤー・キャラクターとして使用することを許可することのユーザーによる暗黙の同意となる。
【0050】
[0054]
図4は、1つ以上の実施形態にしたがって、友人のアバターを非プレーヤー・キャラクターとして実装するプロセス例400を示すフローチャートである。プロセス400は、
図3のシステム300のようなシステムによって実行され、ソフトウェア、ファームウェア、ハードウェア、またはその組み合わせで実現することができる。プロセス400は、1組の動作(act)として示されており、種々の動作の処理を実行するために示す順序に限定されるのではない。プロセス400は、友人のアバターを非プレーヤー・キャラクターとして実装するプロセスの一例であり、友人のアバターを非プレーヤー・キャラクターとして実装することについては、異なる図を参照する追加の論述が本明細書に含まれる。
【0051】
[0055] プロセス400において、あるユーザーと関連がある1人以上の他のユーザーを、当該ユーザーのソーシャル・グラフに基づいて特定する(動作402)。このソーシャル・グラフは、先に論じたように、いずれの数のステップまたはレベルでも含むことができる。
【0052】
[0056] 動作402において特定した1人以上の他のユーザーの内少なくとも1人について、この他のユーザーのアバターを入手する(動作404)。1人以上の他のユーザーの各々にアバターを入手することができ、または代わりに、1人以上の他のユーザーから選択した者のアバターだけを入手することもできる(例えば、他のユーザーの内オンラインになっている者のアバター、閾値数のアバター(例えば、5つのアバター、動作402において特定した他のユーザーの数の20%等))。
【0053】
[0057] 動作404において入手したアバターを、ユーザーがプレーしているゲームにおいて、非プレーヤー・キャラクターとして含ませる(動作406)。これらの非プレーヤー・キャラクターは、先に論じたように、ゲームにおいて種々の動作(action)を行うことができる。加えて、ユーザーは、先に論じたように、アバターが非プレーヤー・キャラクターとして表示されているユーザーに、当該ユーザーと共にゲームに参加することを誘うために、非プレーヤー・キャラクターと対話または意思疎通することができる。
【0054】
[0058]
図5は、1つ以上の実施形態にしたがって、ユーザーに、ゲームに参加するように他のユーザーを誘うことを可能にするプロセス例500を示すフローチャートである。プロセス500は、
図3のシステム300のような、システムによって実行され、ソフトウェア、ファームウェア、ハードウェア、またはその組み合わせで実現することができる。プロセス500は、1組の動作(act)として示されており、種々の動作の処理を実行するために示す順序には限定されない。プロセス500は、ユーザーに、ゲームに参加するように他のユーザーを誘うことを可能にするプロセス例であり、ゲームに参加するように他のユーザーを誘うことを可能にすることについては、異なる図を参照する追加の論述が本明細書に含まれる。
【0055】
[0059] プロセス500では、第1ユーザーがプレーしているゲームにおいて、第2ユーザーのアバターを非プレーヤー・キャラクターして含ませる(動作502)。これらの非プレーヤー・キャラクターは、先に論じたように、ゲームにおいて種々の動作を行うことができる。先に論じたように、第2ユーザーは第1ユーザーのソーシャル・グラフに含まれている。
【0056】
[0060] 第1ユーザーの第2ユーザーのアバターと対話または意思疎通する要求を受ける(動作504)。この要求は、先に論じたように、第2ユーザーに第1ユーザーと一緒にゲームに参加することの誘いまたは要求である。対話または意思疎通は、先に論じたように、聞くことができる要求、アバターの肩を叩く等というような、種々の異なる形態をなすことができる。
【0057】
[0061] この誘いの指示を第2ユーザーに提示する(動作506)。先に論じたように、聴くことができる再生、第1ユーザーのアバターがジェスチャーを行う等というように、この誘いの指示は異なるやり方で提示することができる。
【0058】
[0062] 本明細書では、通信、受信、格納、生成、入手等というような、 種々のモジュールによって実行する種々の動作について論じた。尚、これら種々のモジュールがこのような動作を実行させることができることは、注記してしかるべきである。動作を実行させる特定のモジュールには、その動作を実行する特定のモジュール自体が含まれ、または代わりに、その動作を実行する(または、その特定のモジュールと共に動作を実行する)他のコンポーネントまたはモジュールを呼び出す、あるいはそうでなければアクセスする特定のモジュールが含まれる。
【0059】
[0063] このように、本明細書において論じた、友人のアバターを非プレーヤー・キャラクターとする技法は、種々の使用想定場面をサポートする。ユーザーは、ゲームをプレーするときに、他のランダム・キャラクターの代わりに、彼らの友人(または友人の友人)を非プレーヤー・キャラクターに用いることができる。更に、ユーザーは、他のユーザーの非プレーヤー・キャラクターのアバターと対話または意思疎通して(例えば、ユーザーのアバターを通じて)、ゲームに参加するように他のユーザーを誘うことができる。このように、他のユーザーをゲームに参加するように誘うために1つ以上のメニューをくまなくナビゲートするのではなく、ユーザーは、アバター間の単なる対話(または他のユーザーのアバターとの意思疎通)によって、ゲームに参加するように他のユーザーを誘うことができる。
【0060】
[0064]
図6は、1つ以上の実施形態にしたがって、友人のアバターを非プレーヤー・キャラクターとして実装するように構成することができる計算デバイス例600を示す。例えば、計算デバイス600は、
図1のゲーミング・デバイス102であること、
図1のオンライン・ゲーミング・サービス104の少なくとも一部を実装すること、
図2のゲーミング・デバイス202であること、または
図3のシステム300の一部を実装することができる。
【0061】
[0065] 計算デバイス600は、1つ以上のプロセッサーまたは演算装置602、1つ以上のメモリーおよび/または記憶コンポーネント606を含むことができる1つ以上のコンピューター読み取り可能媒体604、1つ以上の入力/出力(I/O)デバイス608、ならびにこれら種々のコンポーネントおよびデバイスが互いに通信することを可能にするバス610を含む。コンピューター読み取り可能媒体604および/または1つ以上のI/Oデバイス608は、計算デバイス600の一部として含めることができ、または代わりに計算デバイス600に結合されてもよい。バス610は、種々の異なるバス・アーキテクチャーを用いる、メモリー・バスまたはメモリー・コントローラー、周辺バス、加速グラフィクス・ポート、プロセッサーまたはローカル・バスなどを含む、様々なタイプのバス構造の内1つ以上を表す。バス610は、有線バスおよび/またはワイヤレス・バスを含むことができる。
【0062】
[0066] メモリー/記憶コンポーネント606は、1つ以上のコンピューター記憶媒体を表す。コンポーネント606は、揮発性媒体(ランダム・アクセス・メモリー(RAM)のような媒体)および/または不揮発性媒体(リード・オンリー・メモリー(ROM)、フラッシュ・メモリー、光ディスク、磁気ディスク等のような媒体)を含むことができる。コンポーネント606は、固定媒体(例えば、RAM、ROM、固定ハード・ドライブ等)、およびリムーバブル媒体(例えば、フラッシュ・メモリー・ドライブ、リムーバブル・ハード・ドライブ、光ディスク等)を含むことができる。
【0063】
[0067] 本明細書において論じた技法は、ソフトウェアで実現することができ、1つ以上の演算装置602によって命令を実行する。尚、演算装置602、演算装置602の種々のキャッシュ・メモリー、デバイス600(図示せず)の他のキャッシュ・メモリー、他のコンピューター読み取り可能媒体等のような、計算デバイス600の異なるコンポーネントに、異なる命令を格納できることは認められてしかるべきである。加えて、命令が計算デバイス600において格納される場所も、ときの経過と共に変更する可能性があることも認められてしかるべきである。
【0064】
[0068] 1つ以上の入力/出力デバイス608は、ユーザーにコマンドおよび情報を計算デバイス600に入力させ、更に情報をユーザーおよび/または他のコンポーネントやデバイスに提示させる。入力デバイスの例には、キーボード、カーソル制御デバイス(例えば、マウス)、マイクロフォン、スキャナー等が含まれる。出力デバイスの例には、ディスプレイ・デバイス(例えば、モニターまたはプロジェクター)、スピーカー、プリンター、ネットワーク・カード等が含まれる。
【0065】
[0069] 本明細書では、ソフトウェアまたはプログラム・モジュールという一般的なコンテキストで、種々の技法について説明することができる。一般に、ソフトウェアはルーチン、プログラム、アプリケーション、オブジェクト、コンポーネント、データ構造等を含み、特定のタスクを実行するか、または特定の抽象データ・タイプを実装する。これらのモジュールおよび技法の一実施態様は、何らかの形態のコンピューター読み取り可能媒体上に格納すること、またはそれを通じて送信することもできる。コンピューター読み取り可能媒体は、計算デバイスによってアクセスすることができる入手可能な1つまたは複数の媒体であればいずれでも可能である。一例として、そして限定ではなく、コンピューター読み取り可能媒体は、「コンピューター記憶媒体」および「通信媒体」を含むことができる。
【0066】
[0070] 「コンピューター記憶媒体」は、揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体を含み、コンピューター読み取り可能命令、データ構造、プログラム・モジュール、またはその他のデータというような情報の格納方法または技術のいずれかで実現される。コンピューター記憶媒体には、RAM、ROM、EEPROM、フラッシュ・メモリーまたはその他のメモリー技術、CD−ROM、ディジタル・バーサタイル・ディスク(DVD)またはその他の光ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージまたは他の磁気記憶デバイス、あるいは所望の情報を格納するために用いることができコンピューターによってアクセスすることができる他のいずれの媒体も含まれるが、これらに限定されるのではない。
【0067】
[0071] 「通信媒体」は、通例、コンピューター読み取り可能命令、データ構造、プログラム・モジュール、またはその他のデータを、搬送波のような変調データ信号、またはその他の伝達メカニズムに具体化する。また、通信媒体はあらゆる情報配信媒体も含む。「変調データ信号」という用語は、この信号の中に情報をエンコードするようなやり方で、その特性の1つ以上が設定または変更されている信号を意味する。一例として、そして限定ではなく、通信媒体は、有線ネットワークまたは直接有線接続というような有線媒体、ならびに音響、RF、赤外線、およびその他のワイヤレス媒体というようなワイヤレス媒体を含む。以上の品目のいずれの組み合わせも、コンピューター読み取り可能媒体の範囲内に含まれるものとする。
【0068】
[0072] 一般に、本明細書において説明した機能または技法は、ソフトウェア、ファームウェア、ハードウェア(例えば、固定論理回路)、手動処理、またはこれらの実施態様の組み合わせを用いて実現することができる。「モジュール」および「コンポーネント」という用語は、本明細書において用いる場合、ソフトウェア、ファームウェア、ハードウェア、またはその組み合わせを総合的に表す。ソフトウェアの実施態様の場合、モジュールまたはコンポーネントは、プロセッサー(例えば、CPUまたは複数のCPU)上で実行したときに、指定されたタスクを実行するプログラム・コードを表す。プログラム・コードは、1つ以上のコンピューター読み取り可能メモリー・デバイスに格納することができる。これについてのこれ以上の説明は、
図6を参照すると分かるであろう。本明細書において説明した友人のアバターを非プレーヤー・キャラクターとする技法の特徴は、プラットフォーム独立ということであり、これが意味するのは、本技法は、種々のプロセッサーを有する種々の商用計算プラットフォーム上で実現できるということである。
【0069】
[0073] 以上、構造的特徴および/または方法論的動作に特定的な文言で主題について説明したが、特許請求の範囲において定められる主題は、以上で説明した具体的な特徴や動作には必ずしも限定されないことは言うまでもない。逆に、以上で説明した具体的な特徴および動作は、特許請求の範囲を実現する形態例として開示したまでである。