(57)【要約】  レースベースのコンピュータゲームは一般に、１人または複数の人間のプレイヤが１人または複数のコンピュータ制御された競争相手と競争できるモードを含む。例えば、人間のプレイヤは、仮想のレースカーを、マリオアンドレッティや他のレースカードライバによる運転と称され得るコンピュータ制御された仮想のレースカーを相手に運転することができる。こうしたコンピュータ制御される競争相手は、対象の人物の実際のゲーム挙動のサンプリングを競争相手の人工知能制御システムに含めることによって向上させることができる。こうしたサンプリングによって、ゲームシステムは、対象の人物をエミュレートするように、コンピュータ制御された競争相手の挙動を個別化することができる。
2007527260.tif 000002
【特許請求の範囲】
【請求項１】
バーチャルリアリティ環境の環境コンテキスト、および１組の訓練用の個別のサンプル挙動から無作為に選択された訓練挙動に基づいてアバター挙動定義を算出するステップと、
前記アバター挙動定義に従って前記バーチャルリアリティ環境におけるエンティティの挙動を案内するための少なくとも１つの制御信号を生成するステップと
を含むことを特徴とする方法。
【請求項２】
前記アバター挙動定義はトラックセグメントに関連付けられることを特徴とする請求項１に記載の方法。
【請求項３】
前記バーチャルリアリティ環境での１つまたは複数の訓練セッションにおけるプレイヤの挙動を記録することによって、前記個別のサンプル挙動を生成するステップ
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記算出ステップは、
現在のゲームセグメントの前記アバター挙動定義を得るために、前記現在のゲームセグメントの複数の前記個別のサンプル挙動を結合するステップ
を含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記算出ステップは、
現在のゲームセグメントの前記アバター挙動定義を得るために、前記現在のゲームセグメントの複数の前記個別のサンプル挙動の重み付きの寄与を結合するステップ
を含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記算出ステップは、
前記個別のサンプル挙動のうちの少なくとも１つを指定する無作為に選択されたサンプルインデックスを使用して、前記訓練セットから個別のサンプル挙動を無作為に選択するステップ
を含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記個別のサンプル挙動を永続記憶媒体に格納するステップ
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記バーチャルリアリティ環境においてゲームプレイ中に前記エンティティとの競争におけるプレイヤの挙動を記録するステップと、
前記記録された挙動を、前記ゲームプレイ中に、前記プレイヤに関連付けられている前記個別のサンプル挙動に追加するステップと
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記算出ステップは、
前記現在のゲームセグメントに関連付けられている環境コンテキスト情報に対して個別のサンプル挙動に関連付けられているゲームセグメント記述子を評価することによって、前記現在のゲームセグメントに一致する前記訓練セット内のゲームセグメントを識別するステップ
を含むことを特徴とする請求項１に記載の方法。
【請求項１０】
コンピュータシステム上でコンピュータプロセスを実行するコンピュータプログラムを符号化するコンピュータプログラム製品であって、前記コンピュータプロセスは、
バーチャルリアリティ環境の環境コンテキスト、および１組の訓練用の個別のサンプル挙動から無作為に選択された訓練挙動に基づいてアバター挙動定義を算出するステップと、
前記アバター挙動定義に従って前記バーチャルリアリティ環境におけるエンティティの挙動を案内するための少なくとも１つの制御信号を生成するステップと
を含むことを特徴とするコンピュータプログラム製品。
【請求項１１】
前記アバター挙動定義はゲームセグメントに関連付けられることを特徴とする請求項１０に記載のコンピュータプログラム製品。
【請求項１２】
前記コンピュータプロセスは、
前記バーチャルリアリティ環境での１つまたは複数の訓練セッションにおけるプレイヤの挙動を記録することによって、前記個別のサンプル挙動を生成するステップ
をさらに含むことを特徴とする請求項１０に記載のコンピュータプログラム製品。
【請求項１３】
前記算出ステップは、
現在のゲームセグメントの前記アバター挙動定義を得るために、前記現在のゲームセグメントの複数の前記個別のサンプル挙動を結合するステップ
を含むことを特徴とする請求項１０に記載のコンピュータプログラム製品。
【請求項１４】
前記算出ステップは、
現在のゲームセグメントの前記アバター挙動定義を得るために、前記現在のゲームセグメントの複数の前記個別のサンプル挙動の重み付きの寄与を結合するステップ
を含むことを特徴とする請求項１０に記載のコンピュータプログラム製品。
【請求項１５】
前記算出ステップは、
前記個別のサンプル挙動のうちの少なくとも１つを指定する無作為に選択されたサンプルインデックスを使用して、前記訓練セットから個別のサンプル挙動を無作為に選択するステップ
を含むことを特徴とする請求項１０に記載のコンピュータプログラム製品。
【請求項１６】
前記コンピュータプロセスは、
前記個別のサンプル挙動を永続記憶媒体に格納するステップ
をさらに含むことを特徴とする請求項１０に記載のコンピュータプログラム製品。
【請求項１７】
前記コンピュータプロセスは、
前記バーチャルリアリティ環境においてゲームプレイ中に前記エンティティとの競争におけるプレイヤの挙動を記録するステップと、
前記記録された挙動を、前記ゲームプレイ中に、前記プレイヤに関連付けられている前記個別のサンプル挙動に追加するステップと
をさらに含むことを特徴とする請求項１０に記載のコンピュータプログラム製品。
【請求項１８】
前記算出ステップは、
前記現在のゲームセグメントに関連付けられている環境コンテキスト情報に対して個別のサンプル挙動に関連付けられているゲームセグメント記述子を評価することによって、前記現在のゲームセグメントに一致する前記訓練セット内のゲームセグメントを識別するステップ
を含むことを特徴とする請求項１０に記載のコンピュータプログラム製品。
【請求項１９】
バーチャルリアリティ環境の環境コンテキスト、および１組の訓練用の個別のサンプル挙動から無作為に選択された訓練挙動に基づいてアバター挙動定義を算出するアバター挙動定義モジュールと、
前記アバター挙動定義に従って前記バーチャルリアリティ環境におけるエンティティの挙動を案内するための少なくとも１つの制御信号を生成する挙動制御システムと
を含むことを特徴とするシステム。
【請求項２０】
前記アバター挙動定義はゲームセグメントに関連付けられることを特徴とする請求項１９に記載のシステム。
【請求項２１】
前記バーチャルリアリティ環境での１つまたは複数の訓練セッションにおけるプレイヤの挙動を記録することによって、前記個別のサンプル挙動を生成する訓練モジュール
をさらに含むことを特徴とする請求項１９に記載のシステム。
【請求項２２】
前記算出操作は、
確率密度関数モジュールが、現在のセグメントの前記アバター挙動定義を得るために前記現在のゲームセグメントの複数の前記個別のサンプル挙動を結合すること
を含むことを特徴とする請求項１９に記載のシステム。
【請求項２３】
前記算出操作は、
確率密度関数モジュールが、現在のセグメントの前記アバター挙動定義を得るために前記現在のゲームセグメントの複数の前記個別のサンプル挙動の重み付きの寄与を結合すること
を含むことを特徴とする請求項１９に記載のシステム。
【請求項２４】
前記算出操作は、
確率密度関数モジュールが、前記個別のサンプル挙動のうちの少なくとも１つを指定する無作為に選択されたサンプルインデックスを使用して前記訓練セットから個別のサンプル挙動を無作為に選択すること
を含むことを特徴とする請求項１９に記載のシステム。
【請求項２５】
前記個別のサンプル挙動を永続記憶媒体に格納する訓練モジュール
をさらに含むことを特徴とする請求項１９に記載のシステム。
【請求項２６】
前記バーチャルリアリティ環境においてゲームプレイ中に前記エンティティとの競争におけるプレイヤの挙動を記録し、前記記録された挙動を、前記ゲームプレイ中に、前記プレイヤに関連付けられている前記個別のサンプル挙動に追加する訓練モジュール
をさらに含むことを特徴とする請求項１９に記載のシステム。
【請求項２７】
前記算出操作は、
確率密度関数モジュールが、前記現在のゲームセグメントに関連付けられている環境コンテキスト情報に対して個別のサンプル挙動に関連付けられているゲームセグメント記述子を評価することによって、前記現在のゲームセグメントに一致する前記訓練セット内のゲームセグメントを識別すること
を含むことを特徴とする請求項１９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、バーチャルリアリティ環境に関し、より詳細には、バーチャルリアリティ環境におけるコンピュータ制御されたアバターの個別の挙動に関する。
【背景技術】
【０００２】
本出願は、すべて本明細書と同時出願した「MODIFIED MOTION CONTROL FOR A VIRTUAL REALITY ENVIRONMENT」という名称の米国特許出願第１０／６１０１６７号明細書［ＭＳ３０３８７４．１／ＭＳ１−１５０５ＵＳ］、「MIXTURE MODELS FOR RACING MOTION LINES IN A VIRTUAL REALITY ENVIRONMENT」という名称の米国特許出願第１０／６０９９９７号明細書［ＭＳ３０３８７６．１／ＭＳＩ−１５０７ＵＳ］、および「PROBABILISTIC MODEL FOR DISTRACTIONS IN A VIRTUAL REALITY ENVIRONMENT」という名称の米国特許出願第１０／６０９７０３号明細書［ＭＳ３０３９４８．１／ＭＳ１−１５０８ＵＳ］に関連し、これらは特に、そのすべての開示および教示の参照により本明細書に組み込まれる。
【０００３】
レースベースのコンピュータゲームのほとんどは、単純な人工知能（ＡＩ）を使用して、模造の「人間のよう」にレースのトラックまたはコースをうまく通り抜けるコンピュータ制御された競争相手と競争するモードを提供する。しかし、こうしたＡＩの「人間のような」という目的にもかかわらず、その結果は、よく観察すると、かなり非人間的に見える傾向がある。例えば、コンピュータの競争相手は、コース上の理想のまたは所定のレーシングラインを進み、人間の競争相手は、ターンしすぎ／ターン不足、加速しすぎ／加速不足、ブレーキのかけすぎ／ブレーキ不足、および反応が早い／遅いなど、不注意にその運転に連続的な不完全性をもたらす。しかしそれは、「人間のような」競争相手を特徴付けるような不完全性にすぎない。その結果、コンピュータの競争相手は、予想がつき、おもしろみに欠ける傾向にある。
【０００４】
一部のＡＩの競争相手の人間らしくない挙動の理由の１つは、一般のＡＩ動作制御システムが、実質的に、米国では１秒の１／６０、欧州では１秒の１／５０（すなわちバーチャルリアリティ環境におけるフレームリペイント間隔（ｆｒａｍｅ  ｒｅｐａｉｎｔ  ｉｎｔｅｒｖａｌ）ごと）の反応時間をコンピュータの競争相手に提供するからである。したがって、バーチャルリアリティ環境からの任意の「視覚的」（コーナーへの距離など）および「物理的」（牽引の損失など）刺激に反応したＡＩの競争相手のコンピュータ制御は、１秒間に５０回から６０回起こる。どんな人間のプレイヤも、理想的に動作するこうしたコンピュータ制御された競争相手と競争するほど素早く、頻繁に、または完璧に反応することはできない。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
したがって、こうしたゲームの好評な別の特徴は、１人または複数の人間の競争相手と競争する機会である。例えば、２人の友達が、同じコンソールで、またはネットワークを介して互いに競争することができる。こうした人間対人間の競争は、一般に、はるかに変化のあるおもしろいレースを提供する。というのは、人間の競争相手は、レースの各自のスタイルを編み出し、レース中、非理想的だが重要な動きをする傾向にあるからである。その結果、より動的で、予測できない、好奇心をそそる競争となることが多い。しかし、競争に応じられる人間の競争相手がいない場合、人間のプレイヤは一般に、まったく人間的ではないＡＩ制御された競争相手との競技をし続けるしかない。
【課題を解決するための手段】
【０００６】
本明細書に記載し、請求した実装形態は、レーシングタイプのゲームおよび他のコンピュータゲームでのコンピュータの競技者の人間らしい現実感を向上させる。一実装形態において、対象の人物の個別の訓練データがパラメータ化され、記録される。その後、その対象の人物のスタイル（戦略、戦術、技術、弱点など）をエミュレートするように、コンピュータ制御されたアバターを生成することができる。このように、人間のプレイヤは、その対象の人物をモデルにしたより人間らしいＡＩ制御の競争相手と競争することができる。さらに、このアバターは、現実の世界の友達または有名な競争相手のように動作するように個別化することができる。さらに、ゲームセグメントごとの複数の訓練セッションにわたる対象の人物の挙動のバリエーションに基づいてアバターの挙動を変更して、予測しにくいゲーム体験を提供することができる。
【０００７】
様々な実装形態において、製造品は、コンピュータプログラム製品として提供される。コンピュータプログラム製品の一実装形態は、コンピュータシステムによって読み取り可能であり、バーチャルリアリティ環境用コンピュータプログラムを符号化するコンピュータプログラム記憶媒体を提供する。コンピュータプログラム製品の別の実装形態は、コンピューティングシステムによって搬送波に組み込まれ、バーチャルリアリティ環境用コンピュータプログラムを符号化するコンピュータデータ信号で提供される。
【０００８】
コンピュータプログラム製品は、コンピュータシステム上でバーチャルリアリティ用コンピュータプロセスを実行するコンピュータプログラムを符号化する。アバター挙動定義（ａｖａｔａｒ  ｂｅｈａｖｉｏｒ  ｄｅｆｉｎｉｔｉｏｎ）は、バーチャルリアリティ環境の環境コンテキスト、および１組の訓練用の個別のサンプル挙動から無作為に選択された訓練挙動に基づいて算出される。アバター挙動定義に従ってバーチャルリアリティ環境におけるエンティティの挙動を案内するための少なくとも１つの制御信号が生成される。
【０００９】
別の実装形態では、アバター挙動定義が、バーチャルリアリティ環境の環境コンテキスト、および１組の訓練用の個別のサンプル挙動から無作為に選択された訓練挙動に基づいて算出されるような方法が提供される。アバター挙動定義に従ってバーチャルリアリティ環境におけるエンティティの挙動を案内するための少なくとも１つの制御信号が生成される。
【００１０】
さらに別の実装形態では、システムが提供される。アバター挙動定義モジュールは、バーチャルリアリティ環境の環境コンテキスト、および１組の訓練用の個別のサンプル挙動から無作為に選択された訓練挙動に基づいてアバター挙動定義を算出する。挙動制御システムは、アバター挙動定義に従ってバーチャルリアリティ環境におけるエンティティの挙動を案内するための少なくとも１つの制御信号を生成する。
【発明を実施するための最良の形態】
【００１１】
本明細書に含まれる図面の簡単な説明を下記に列挙する。  
レースベースのコンピュータゲームは一般に、１人または複数の人間のプレイヤが１人または複数のコンピュータ制御された競争相手と競争できるモードを含む。例えば、人間のプレイヤは、仮想のレースカーを、マリオアンドレッティや他のレースカードライバによる運転と称され得るコンピュータ制御された仮想のレースカーを相手に運転することができる。本明細書に上述したように、こうしたコンピュータ制御される競争相手は、対象の人物の実際のゲーム挙動のサンプリングを含めることによって向上させることができる。こうしたサンプリングによって、ゲームシステムは、対象の人物をエミュレートするように、コンピュータ制御された競争相手の挙動を個別化することができる。
【００１２】
このように、コンピュータ制御された競争相手を、その分野において有名な競争相手、またはその人間のプレイヤの友達や家族のように動作するように個別化することができる。例えば、２人の友達がコンピュータレースゲームで遊んでおり、その後、そのうちの一方が出かけなければならない。出かける友達は、訓練モードにして個別の訓練データを作成し、ゲームシステムによってアクセス可能な永続記憶媒体にそれを格納することができる。次いで残された友達は、出かけた友達をエミュレートするようにその訓練データによって個別化されたアバターと対戦することを選択する。同様に、より有名な参加者（マリオアンドレッティなど）の訓練データを生成し、かつ／または取得し、次いでゲームシステムによってアクセス可能な永続記憶媒体に格納することができる。
【００１３】
図１は、コンピュータ制御されたアバター例のパラメータ化に使用するための２つの訓練レーシングラインおよびレースコースを示す。仮想レースコース１００は、レース面１０２およびトラック内部１０４を含む。代替のコースは、閉じたものでなくてもよく、または一人称シューティングゲーム（ｆｉｒｓｔ  ｐｅｒｓｏｎ  ｓｈｏｏｔｅｒ  ｇａｍｅ）、軍事シミュレーション、リアリティシミュレーションなど、非レース環境に適用してもよいことを理解されたい。したがって、コンピュータ制御されたドライバを、任意の動くものによって表されるコンピュータ制御された（またはＡＩ制御された）プレイヤに置き換えることができる。
【００１４】
２つの訓練レーシングライン１０６および１０８の例を仮想レースコース１００内に示している。人間のドライバは、１周で１０９の壁にぶつかることに留意されたい。こうした不完全性は、人間の競争相手と競争する体験に寄与する。レーシングラインは、挙動定義の例であり、それだけには限定されないが、コース上の位置、およびステアリング、ブレーキ、スピード、アクセルのパラメータシーケンスを含めて様々なパラメータによって特徴付けることができる。こうした訓練レーシングラインは、例えば複数回周回しているレース中の人間のドライバの動作を監視し、記録することによって捕捉することができる。
【００１５】
訓練レーシングライン１０６および１０８を使用して、それらを記録した対象の人物に固有の個別の訓練データが開発される。この個別の訓練データを使用して、システムは、対象の人物の動作をエミュレートするようにＡＩ制御されたアバターを制御する。複数のレーシングラインは、ＡＩ制御されたアバターの予測できない挙動に寄与する追加のバリエーションを提供する。
【００１６】
レース中、指定された間隔（一部の実装形態において等しくなり得るシミュレーション間隔、フレーム間隔など）で、ＡＩ動作制御システムは、刺激入力（ｓｔｉｍｕｌｕｓ  ｉｎｐｕｔ）を受信し、こうした入力に基づいて制御信号を算出して、コンピュータのレース車両または他のエンティティの方向、速度などを変更する。変更は一般に、ＡＩドライバをレーシングライン（理想的なレーシングラインや個別のレーシングラインなど）に戻すためのものである。したがって、レーシングラインは、ＡＩドライバのトラックに沿った経路を制御する際にＡＩ動作制御システムに手引きを提供する１つの形の挙動定義である。
【００１７】
コースは、トラックセグメント（例えばトラックセグメント１１０参照）に分割される。一般に、トラックセグメントは、一種のゲームセグメントであり、これはストラテジゲームでのゲームターン、ロールプレイングゲームでのシーン、一人称シューティングでのレベルなど、またはその組み合わせも表し得る。
【００１８】
各レーシングラインは、トラックセグメント内の中間地点（中間地点１１２、１１４、１１６、１１８など）を基準にして特徴づけられる。トラックセグメントは、バーチャルリアリティ設定における迷路や１つまたは複数の部屋などを通る距離など、より一般的なゲームセグメントの例である。一実装形態では、例えば中間地点１１８で、法線ベクトル（トラックを横切る中間地点ラインに対する垂線）とサンプリングされたレーシングラインとの間のステアリング角１２０は、レーシングラインをシステムに対して特徴付ける。次いでＡＩ動作制御システムが中間地点およびステアリング角を使用して、ＡＩ制御されたエンティティ（レース車両など）に適切な動作制御信号を算出する。
【００１９】
図２は、個別の訓練データを生成するシステム例２００を示す図である。１組の個別の訓練サンプル２０２が生成され、訓練モジュール２０４に入力される。一実装形態において、個別の訓練サンプルは、ゲームのプレイ中に対象の人物の動作を監視することによって生成される。環境の特徴（トラック形状、トラックの状態など）および対象の挙動（レーシングライン、制御信号など）は、パラメータ化され、個別の訓練データ２０６に記録される。少なくとも１つの実装形態において、人間のプレイヤが様々なアバターの競争相手の訓練データプロフィールを保存できるように、個別の訓練データを永続的に格納することができる。
【００２０】
図３は、個別のサンプル挙動を含む個別の訓練データ３００の例を示す。各行は、最左列に沿ったトラックセグメント図によって表される特定のゲームセグメントに対応している。各行の第１の列は、コースにおける所与のゲームセグメントを表す。各ゲームセグメントは、ゲームセグメント記述子によって表すことができ、ゲームセグメント記述子は、それだけには限定されないが、トラックセグメント形状、トラックの表面の状態、時刻などを含み得る。次の各列は、関連のゲームセグメントにおける対象の人物の挙動のサンプル（すなわち個別のサンプル挙動）に対応する。
【００２１】
さらに、個別の訓練データの蓄積率は、所与のトラックセグメントについて訓練データを「ミラーリング」し、それによって所与の量の訓練について抽出された訓練データの量を倍にすることによって、実質的に増加し得る。例えば、一部のトラックセグメントでは、右カーブの訓練データを抽出し、次いで（左カーブを表すために）トラックセグメントおよび個別レーシングラインサンプルをミラーリングすることによって、単一のトラックセグメントについて２つの訓練サンプルが捕捉される。
【００２２】
示したテーブル３００では、対象の人物の挙動のサンプルがそのトラックセグメントのレーシングラインによって表されている。例えば、最後の行に示すように、対象の人物は、急カーブであると思われる関連のトラックセグメントについて４つのサンプル挙動定義（レーシングラインなど）を提供している。対象の人物によってとられた挙動定義間の差は、その行の各セルでわかり、それによってこのトラックセグメント、またはこのトラックセグメントに似たトラックセグメントにおけるＡＩアバターの予測できない挙動に寄与する機会が提供される。
【００２３】
レースゲームの一実装形態において、レーシングラインは、トラックセグメントにおける中間地点での一連のステアリング角の値によって定義することができる。ステアリング角の値は、トラックセグメントにおける中間地点ラインに垂直なベクトルに対するレーシングラインのステアリング角を特徴付ける。レーシングラインは、それだけには限定されないが、コース内のサンプリングされた位置またはベクトル、ゲームプレイの動作（戦闘シーケンスなど）を含めて、他のパラメータまたは他のパラメータの組み合わせによって特徴付けることができることを理解されたい。一人称シューティングゲームの一実装形態において、挙動定義は、プレイヤの動作経路を表し得る。
【００２４】
訓練セットに含まれるトラックセグメントは、現在のトラックからのものであっても、またはそうでなくてもよい。一実装形態において、確率密度関数演算（ｐｒｏｂａｂｉｌｉｔｙ  ｄｅｎｓｉｔｙ  ｆｕｎｃｔｉｏｎ  ｏｐｅｒａｔｉｏｎ）は、訓練トラックセグメントと現在のトラックセグメントとの間の類似点を決定し、類似の各訓練トラックセグメントに関連付けられているレーシングラインをサンプリングすることによって、重み付きの寄与（ｗｅｉｇｈｔｅｄ  ｃｏｎｔｒｉｂｕｔｉｏｎｓ）を算出する。重み付けは、１つまたは複数のサンプルレーシングラインの寄与を、現在のトラックセグメント内のＡＩアバターの現在のレーシングラインに適用することができる。代替実装形態において、個別のアバターは、対象の人物が実際に訓練されたトラックでのみ実行することができる。
【００２５】
図４は、コンピュータ制御されたアバターの制御信号を生成するシステム例４００を示す。個別の訓練データ４０２は、対象の人物による過去または同時進行のゲームプレイに基づいた訓練データの動的生成、Ｗｅｂリソースまたは記憶媒体からの訓練データのダウンロード、架空のプレイヤの訓練データの算出を含めて、様々な方法で提供することができる。同時進行のゲームプレイオプションを使用すると、プレイヤは、最初の１組のデフォルトのまたは個別の訓練データで始めて、プレイヤがゲームをしながら訓練セットに追加することによって、自分自身の徐々に向上するアバターと競争することができることに留意されたい。ゲームプレイが進むにつれて、ゲーム中にユーザによってとられたレーシングラインを訓練データに追加して、訓練サンプルの豊富さを向上させることができる。
【００２６】
トラック位置、トラックセグメント形状など、ゲームセグメントに関連する環境コンテキスト情報（Ｅｎｖｉｒｏｎｍｅｎｔａｌ  ｃｏｎｔｅｘｔ  ｉｎｆｏｒｍａｔｉｏｎ）４０４は、バーチャルリアリティ環境によって提供される。形および／または内容においてトラックセグメント記述子に似たコンテキスト情報パラメータを使用して、ＡＩ制御されたアバター挙動定義に寄与する個別のサンプル挙動を識別するために、訓練データ４０２内の１つまたは複数のトラックセグメントに合うものを見つける。
【００２７】
訓練データ４０２およびコンテキスト情報４０４は、挙動定義４０８を算出するアバター挙動定義モジュール４０６によって受信される。一実装形態において、挙動定義４０８は、続いてＡＩ挙動制御システム４１０が従う個別のレーシングラインを指定する。しかし、一人称シューティングゲームなどにおけるＡＩアバターの挙動など、他の挙動定義を指定することもできる。
【００２８】
一実装形態において、アバター挙動定義モジュール４０６は、（例えばサンプルデータのある列を選択するための）サンプルインデックスを無作為に選択し、コンテキスト情報４０４に対してセグメント記述子を評価して、適切なサンプルデータを識別する。無作為に選択されたインデックス下の最も一致するトラックセグメントのサンプル挙動を、挙動定義４０８としてＡＩ挙動制御システム４１０に転送することができる。
【００２９】
別の実装形態において、確率密度関数モジュール４１２は、１つまたは複数のサンプルが所与のトラックセグメントについての挙動定義に提供する重み付きの寄与を決定する。コンテキスト情報４０４とトラックセグメント記述子との間の類似度が高くなればなるほど、挙動定義を算出するときにサンプルデータに適用される重みが大きくなる。次いでこれらの寄与の重み付きの和は、挙動定義４０８として、ＡＩ挙動制御システム４１０に転送される。他の寄与アルゴリズムも企図される。
【００３０】
バーチャルリアリティ環境からの刺激４１４は、ＡＩ挙動制御システム４１０に入力され、ＡＩ挙動制御システムは、バーチャルリアリティ環境においてアバターを制御する制御信号４１６を生成する。制御信号４１６は、実施エンジン４１８に入力されて、制御信号４１６によって指定された動作または挙動を実施する。例えば、実施エンジン４１８は、仮想レースカーに、方向および速度を変えさせることができる。
【００３１】
図５は、コンピュータ制御されたアバターの制御信号を生成する操作例５００を示す。受信操作５０２は、個別の訓練データを受信する。別の受信操作５０４は、現在のトラックのトラックセグメントのコンテキスト情報を受信する。
【００３２】
生成操作５０６は、現在のトラックのトラックセグメントごとにアバター挙動定義を生成する。一実装形態において、サンプルインデックスが無作為に選択され、現在のトラックのコンテキスト情報５０４と最も一致するトラックセグメントに対応するサンプルデータが現在のトラックセグメントのアバター挙動定義と考えられる。現在のトラックセグメントのアバター挙動定義を識別するためのこの選択および評価は、現在のトラックのトラックセグメントごとに繰り返される。
【００３３】
別の実装形態において、訓練データ内の複数のトラックセグメントからのサンプルデータは、現在のトラックの所与のトラックセグメントについてのアバター挙動定義に寄与し得る。ＢＤｉは、現在のトラックにおける所与のトラックセグメントｉについての挙動定義を表し、
【００３４】
【数１】
2007527260.tif 000003
【００３５】
は、訓練データの行ｊおよび列ｋｊからのサンプルデータを表すと仮定する。アルゴリズム例について以下に記述する。
【００３６】
【表１】
2007527260.tif 000004
【００３７】
感度係数ωは、重み係数が類似度に対してどれだけ感度があるかを指定する。例えば、ωが非常に小さい場合、ｓｊは小さく、より少ない訓練トラックセグメントのサンプルデータが挙動定義ＢＤｉに大いに寄与する。逆に、ωが非常に大きい場合、ｓｊは大きく、より多くの訓練トラックセグメントのサンプルデータが挙動定義ＢＤｉに大きく寄与する。感度係数ωは、ゲーム設計時にプリセットする、またはプレイヤまたはシステムによって構成することができる。
【００３８】
一実装形態において、現在のトラックのすべてのトラックセグメントのアバター挙動定義は、（例えば、レース時間中、他の機能のための計算能力を保持するために）レース時間前に算出される。しかし、代替実装形態において、バーチャルリアリティ環境でトラックセグメントに遭遇したときに、現在のトラックにおける個々のトラックセグメントのアバター挙動定義を動的に算出することができることも理解されたい。この手法によって、訓練データとの一致を決定するときにレース時間イベントを考慮することができる。さらに、現在のレース中の人間のプレイヤの挙動を使用して、（例えば、人間のプレイヤが自分自身の連続的に変化するアバターと競争することができるように）レース中に訓練データを動的に補うことができる。
【００３９】
受信操作５０８は、現在のシミュレーション間隔のバーチャルリアリティ環境からのゲームの刺激を受け取る。こうした刺激は、生成操作５１０に入力され、生成操作は、刺激に基づいてアバター挙動をアバター挙動定義（例えば生成操作５０６で生成された）に集めるために使用される制御信号を生成する。例えば、レースゲームにおける制御信号は、一般に、ＡＩ制御車両をレーシングラインの方に導くためのものである。
【００４０】
実施操作５１２は、実施モジュールを介して制御信号をバーチャルリアリティ環境に適用する。例えば、実施モジュール例は、レース用物理エンジンを含み得る。操作５０８、５１０、５１２は、バーチャルリアリティゲームにおける動作を進めるために、各シミュレーション間隔を繰り返す。
【００４１】
本発明を実施する図６のハードウェアおよび動作環境の例は、処理ユニット２１、システムメモリ２２、およびシステムメモリを含む様々なシステム構成要素を処理ユニット２１に動作可能に結合するシステムバス２３を含む汎用コンピューティング装置をコンピュータ２０の形で含んでいる。処理ユニット２１は、１つだけでもよく、または複数存在していてもよく、したがってコンピュータ２０のプロセッサは、単一の中央処理装置（ＣＰＵ）、または一般に並列処理環境と呼ばれる複数の処理装置を含む。コンピュータ２０は、従来のコンピュータ、分散コンピュータ、または他の任意のタイプのコンピュータでよく、本発明はそのように限定されない。
【００４２】
システムバス２３は、様々なバスアーキテクチャのうちの任意のものを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むいくつかのタイプのバス構造のうちどんなものでもよい。システムメモリは、単にメモリとも呼ばれ、読み取り専用メモリ（ＲＯＭ）２４およびランダムアクセスメモリ（ＲＡＭ）２５を含む。基本入出力システム（ＢＩＯＳ）２６は、例えば起動中など、コンピュータ２０内の要素間での情報の転送を助ける基本ルーチンを含み、ＲＯＭ２４に格納されている。コンピュータ２０は、図示はしていないがハードディスクから読み取り、あるいはそこに書き込むハードディスクドライブ２７、取外式磁気ディスク２９から読み取り、あるいはそこに書き込む磁気ディスクドライブ２８、およびＣＤ−ＲＯＭや他の光媒体など、取外式光ディスク３１から読み取り、あるいはそこに書き込む光ディスクドライブ３０をさらに含む。
【００４３】
ハードディスクドライブ２７、磁気ディスクドライブ２８、および光ディスクドライブ３０は、それぞれハードディスクドライブインターフェース３２、磁気ディスクドライブインターフェース３３、および光ディスクドライブインターフェース３４によってシステムバス２３に接続される。ドライブおよびその関連のコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびコンピュータ２０の他のデータの不揮発性記憶域を提供する。磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジ、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）など、コンピュータによってアクセス可能な、データを格納できる任意のタイプのコンピュータ可読媒体を動作環境例で使用することができることを当業者であれば理解されたい。
【００４４】
オペレーティングシステム３５、１つまたは複数のアプリケーションプログラム３６、他のプログラムモジュール３７、およびプログラムデータ３８を含めて、いくつかのプログラムモジュールをハードディスク、磁気ディスク２９、光ディスク３１、ＲＯＭ２４またはＲＡＭ２５に格納することができる。ユーザは、コマンドおよび情報をキーボード４０やポインティング装置４２などの入力装置を介してパーソナルコンピュータ２０に入力することができる。他の入力装置（図示せず）には、マイクロフォン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナなどがある。これらおよび他の入力装置は、しばしばシステムバスに結合されているシリアルポートインターフェース４６を介して処理ユニット２１に接続されるが、パラレルポート、ゲームポート、ユニバーサルシリアルバス（ＵＳＢ）など他のインターフェースで接続してもよい。モニタ４７または他のタイプの表示装置もまた、ビデオアダプタ４８などのインターフェースを介してシステムバス２３に接続される。コンピュータは一般に、モニタに加えて、スピーカやプリンタなど他の周辺出力装置（図示せず）を含んでいる。
【００４５】
コンピュータ２０は、リモートコンピュータ４９など１つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク式環境で動作することができる。こうした論理接続は、コンピュータ２０またはその一部に結合される通信装置によって達成され、本発明は、特定のタイプの通信装置に限定されない。リモートコンピュータ４９は、別のコンピュータ、サーバ、ルータ、ネットワークＰＣ、クライアント、ピア装置、または他の一般のネットワークノードでよく、一般にコンピュータ２０に関連して上述した多くまたはすべての要素を含むが、図６にはメモリ記憶装置５０のみを示している。
【００４６】
図６に示した論理接続は、ローカルエリアネットワーク（ＬＡＮ）５１および広域ネットワーク（ＷＡＮ）５２を含む。こうしたネットワーキング環境は、オフィスネットワーク、全社規模のコンピュータネットワーク、イントラネット、およびインターネットなどあらゆるタイプのネットワークではごく一般的である。ＬＡＮネットワーキング環境で使用する場合、コンピュータ２０は、ネットワークインターフェースまたはアダプタ５３を介して、通信装置の１つのタイプであるローカルネットワーク５１に接続される。ＷＡＮネットワーキング環境で使用する場合、コンピュータ２０は一般に、モデム５４、一種の通信装置、または広域ネットワーク５２を介して通信を確立する他の任意のタイプの通信装置を含む。モデム５４は、内蔵のものでも外付けのものでもよく、シリアルポートインターフェース４６を介してシステムバス２３に接続される。ネットワーク式環境では、パーソナルコンピュータ２０に関連して示したプログラムモジュール、またはその一部をリモートメモリ記憶装置に格納することができる。図示したネットワーク接続は例であり、コンピュータ間の通信リンクを確立する他の手段および通信装置を使用してもよいことは理解されよう。
【００４７】
一実装形態例では、ＡＩ動作制御システム、物理エンジン、訓練モジュール、アバター制御モジュール、アバター挙動定義モジュール、ＡＩ挙動制御モジュール、または他のモジュールを、オペレーティングシステム３５、アプリケーションプログラム３６、他のプログラムモジュール３７の一部として組み込むことができる。刺激信号、挙動定義、訓練データ、コンテキスト情報、および制御信号は、プログラムデータ３８として格納することができる。
【００４８】
本明細書に記載した本発明の実施形態は、１つまたは複数のコンピュータシステムにおいて論理ステップとして実装される。本発明の論理操作は、（１）１つまたは複数のコンピュータシステムで実行される一連のプロセッサ実施ステップとして、また（２）１つまたは複数のコンピュータシステム内の相互接続されたマシンモジュールとして実装される。この実装は、本発明を実施するコンピュータシステムの性能要件に応じて選択できる。したがって、本明細書に記載した本発明の実施形態を構成する論理操作は、操作、ステップ、オブジェクト、またはモジュールと様々に呼ばれる。
【００４９】
上記の仕様、例、およびデータは、構造の完全な説明および本発明の実施形態例の使用を提供している。本発明の多くの実施形態は、本発明の意図および範囲から逸脱することなく作成することができるので、本発明は頭記に添付の特許請求の範囲にある。
【図面の簡単な説明】
【００５０】
【図１】コンピュータ制御されたアバター例のパラメータ化に使用するための２つの訓練レーシングラインおよびレースコースを示す図である。
【図２】個別の訓練データを生成するシステム例を示す図である。
【図３】個別の訓練データ例を示す図である。
【図４】コンピュータ制御されたアバターの制御信号を生成するシステム例を示す図である。
【図５】コンピュータ制御されたアバターの制御信号を生成する操作例を示す図である。
【図６】本発明の一実施形態の実施に有用なシステム例を示す図である。
【図１】
2007527260.tif 000005
【図２】
2007527260.tif 000006
【図３】
2007527260.tif 000007
【図４】
2007527260.tif 000008
【図５】
2007527260.tif 000009
【図６】
2007527260.tif 000010
【手続補正書】
【提出日】平成19年5月8日(2007.5.8)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】図１
【補正方法】変更
【補正の内容】
【図１】
2007527260.tif 000011
【国際調査報告】
2007527260.tif 000012