説明

バーチャルリアリティ環境におけるコンピュータ制御されたアバターの個別の挙動

レースベースのコンピュータゲームは一般に、1人または複数の人間のプレイヤが1人または複数のコンピュータ制御された競争相手と競争できるモードを含む。例えば、人間のプレイヤは、仮想のレースカーを、マリオアンドレッティや他のレースカードライバによる運転と称され得るコンピュータ制御された仮想のレースカーを相手に運転することができる。こうしたコンピュータ制御される競争相手は、対象の人物の実際のゲーム挙動のサンプリングを競争相手の人工知能制御システムに含めることによって向上させることができる。こうしたサンプリングによって、ゲームシステムは、対象の人物をエミュレートするように、コンピュータ制御された競争相手の挙動を個別化することができる。


【発明の詳細な説明】
【技術分野】
【0001】
本発明は一般に、バーチャルリアリティ環境に関し、より詳細には、バーチャルリアリティ環境におけるコンピュータ制御されたアバターの個別の挙動に関する。
【背景技術】
【0002】
本出願は、すべて本明細書と同時出願した「MODIFIED MOTION CONTROL FOR A VIRTUAL REALITY ENVIRONMENT」という名称の米国特許出願第10/610167号明細書[MS303874.1/MS1−1505US]、「MIXTURE MODELS FOR RACING MOTION LINES IN A VIRTUAL REALITY ENVIRONMENT」という名称の米国特許出願第10/609997号明細書[MS303876.1/MSI−1507US]、および「PROBABILISTIC MODEL FOR DISTRACTIONS IN A VIRTUAL REALITY ENVIRONMENT」という名称の米国特許出願第10/609703号明細書[MS303948.1/MS1−1508US]に関連し、これらは特に、そのすべての開示および教示の参照により本明細書に組み込まれる。
【0003】
レースベースのコンピュータゲームのほとんどは、単純な人工知能(AI)を使用して、模造の「人間のよう」にレースのトラックまたはコースをうまく通り抜けるコンピュータ制御された競争相手と競争するモードを提供する。しかし、こうしたAIの「人間のような」という目的にもかかわらず、その結果は、よく観察すると、かなり非人間的に見える傾向がある。例えば、コンピュータの競争相手は、コース上の理想のまたは所定のレーシングラインを進み、人間の競争相手は、ターンしすぎ/ターン不足、加速しすぎ/加速不足、ブレーキのかけすぎ/ブレーキ不足、および反応が早い/遅いなど、不注意にその運転に連続的な不完全性をもたらす。しかしそれは、「人間のような」競争相手を特徴付けるような不完全性にすぎない。その結果、コンピュータの競争相手は、予想がつき、おもしろみに欠ける傾向にある。
【0004】
一部のAIの競争相手の人間らしくない挙動の理由の1つは、一般のAI動作制御システムが、実質的に、米国では1秒の1/60、欧州では1秒の1/50(すなわちバーチャルリアリティ環境におけるフレームリペイント間隔(frame repaint interval)ごと)の反応時間をコンピュータの競争相手に提供するからである。したがって、バーチャルリアリティ環境からの任意の「視覚的」(コーナーへの距離など)および「物理的」(牽引の損失など)刺激に反応したAIの競争相手のコンピュータ制御は、1秒間に50回から60回起こる。どんな人間のプレイヤも、理想的に動作するこうしたコンピュータ制御された競争相手と競争するほど素早く、頻繁に、または完璧に反応することはできない。
【発明の開示】
【発明が解決しようとする課題】
【0005】
したがって、こうしたゲームの好評な別の特徴は、1人または複数の人間の競争相手と競争する機会である。例えば、2人の友達が、同じコンソールで、またはネットワークを介して互いに競争することができる。こうした人間対人間の競争は、一般に、はるかに変化のあるおもしろいレースを提供する。というのは、人間の競争相手は、レースの各自のスタイルを編み出し、レース中、非理想的だが重要な動きをする傾向にあるからである。その結果、より動的で、予測できない、好奇心をそそる競争となることが多い。しかし、競争に応じられる人間の競争相手がいない場合、人間のプレイヤは一般に、まったく人間的ではないAI制御された競争相手との競技をし続けるしかない。
【課題を解決するための手段】
【0006】
本明細書に記載し、請求した実装形態は、レーシングタイプのゲームおよび他のコンピュータゲームでのコンピュータの競技者の人間らしい現実感を向上させる。一実装形態において、対象の人物の個別の訓練データがパラメータ化され、記録される。その後、その対象の人物のスタイル(戦略、戦術、技術、弱点など)をエミュレートするように、コンピュータ制御されたアバターを生成することができる。このように、人間のプレイヤは、その対象の人物をモデルにしたより人間らしいAI制御の競争相手と競争することができる。さらに、このアバターは、現実の世界の友達または有名な競争相手のように動作するように個別化することができる。さらに、ゲームセグメントごとの複数の訓練セッションにわたる対象の人物の挙動のバリエーションに基づいてアバターの挙動を変更して、予測しにくいゲーム体験を提供することができる。
【0007】
様々な実装形態において、製造品は、コンピュータプログラム製品として提供される。コンピュータプログラム製品の一実装形態は、コンピュータシステムによって読み取り可能であり、バーチャルリアリティ環境用コンピュータプログラムを符号化するコンピュータプログラム記憶媒体を提供する。コンピュータプログラム製品の別の実装形態は、コンピューティングシステムによって搬送波に組み込まれ、バーチャルリアリティ環境用コンピュータプログラムを符号化するコンピュータデータ信号で提供される。
【0008】
コンピュータプログラム製品は、コンピュータシステム上でバーチャルリアリティ用コンピュータプロセスを実行するコンピュータプログラムを符号化する。アバター挙動定義(avatar behavior definition)は、バーチャルリアリティ環境の環境コンテキスト、および1組の訓練用の個別のサンプル挙動から無作為に選択された訓練挙動に基づいて算出される。アバター挙動定義に従ってバーチャルリアリティ環境におけるエンティティの挙動を案内するための少なくとも1つの制御信号が生成される。
【0009】
別の実装形態では、アバター挙動定義が、バーチャルリアリティ環境の環境コンテキスト、および1組の訓練用の個別のサンプル挙動から無作為に選択された訓練挙動に基づいて算出されるような方法が提供される。アバター挙動定義に従ってバーチャルリアリティ環境におけるエンティティの挙動を案内するための少なくとも1つの制御信号が生成される。
【0010】
さらに別の実装形態では、システムが提供される。アバター挙動定義モジュールは、バーチャルリアリティ環境の環境コンテキスト、および1組の訓練用の個別のサンプル挙動から無作為に選択された訓練挙動に基づいてアバター挙動定義を算出する。挙動制御システムは、アバター挙動定義に従ってバーチャルリアリティ環境におけるエンティティの挙動を案内するための少なくとも1つの制御信号を生成する。
【発明を実施するための最良の形態】
【0011】
本明細書に含まれる図面の簡単な説明を下記に列挙する。
レースベースのコンピュータゲームは一般に、1人または複数の人間のプレイヤが1人または複数のコンピュータ制御された競争相手と競争できるモードを含む。例えば、人間のプレイヤは、仮想のレースカーを、マリオアンドレッティや他のレースカードライバによる運転と称され得るコンピュータ制御された仮想のレースカーを相手に運転することができる。本明細書に上述したように、こうしたコンピュータ制御される競争相手は、対象の人物の実際のゲーム挙動のサンプリングを含めることによって向上させることができる。こうしたサンプリングによって、ゲームシステムは、対象の人物をエミュレートするように、コンピュータ制御された競争相手の挙動を個別化することができる。
【0012】
このように、コンピュータ制御された競争相手を、その分野において有名な競争相手、またはその人間のプレイヤの友達や家族のように動作するように個別化することができる。例えば、2人の友達がコンピュータレースゲームで遊んでおり、その後、そのうちの一方が出かけなければならない。出かける友達は、訓練モードにして個別の訓練データを作成し、ゲームシステムによってアクセス可能な永続記憶媒体にそれを格納することができる。次いで残された友達は、出かけた友達をエミュレートするようにその訓練データによって個別化されたアバターと対戦することを選択する。同様に、より有名な参加者(マリオアンドレッティなど)の訓練データを生成し、かつ/または取得し、次いでゲームシステムによってアクセス可能な永続記憶媒体に格納することができる。
【0013】
図1は、コンピュータ制御されたアバター例のパラメータ化に使用するための2つの訓練レーシングラインおよびレースコースを示す。仮想レースコース100は、レース面102およびトラック内部104を含む。代替のコースは、閉じたものでなくてもよく、または一人称シューティングゲーム(first person shooter game)、軍事シミュレーション、リアリティシミュレーションなど、非レース環境に適用してもよいことを理解されたい。したがって、コンピュータ制御されたドライバを、任意の動くものによって表されるコンピュータ制御された(またはAI制御された)プレイヤに置き換えることができる。
【0014】
2つの訓練レーシングライン106および108の例を仮想レースコース100内に示している。人間のドライバは、1周で109の壁にぶつかることに留意されたい。こうした不完全性は、人間の競争相手と競争する体験に寄与する。レーシングラインは、挙動定義の例であり、それだけには限定されないが、コース上の位置、およびステアリング、ブレーキ、スピード、アクセルのパラメータシーケンスを含めて様々なパラメータによって特徴付けることができる。こうした訓練レーシングラインは、例えば複数回周回しているレース中の人間のドライバの動作を監視し、記録することによって捕捉することができる。
【0015】
訓練レーシングライン106および108を使用して、それらを記録した対象の人物に固有の個別の訓練データが開発される。この個別の訓練データを使用して、システムは、対象の人物の動作をエミュレートするようにAI制御されたアバターを制御する。複数のレーシングラインは、AI制御されたアバターの予測できない挙動に寄与する追加のバリエーションを提供する。
【0016】
レース中、指定された間隔(一部の実装形態において等しくなり得るシミュレーション間隔、フレーム間隔など)で、AI動作制御システムは、刺激入力(stimulus input)を受信し、こうした入力に基づいて制御信号を算出して、コンピュータのレース車両または他のエンティティの方向、速度などを変更する。変更は一般に、AIドライバをレーシングライン(理想的なレーシングラインや個別のレーシングラインなど)に戻すためのものである。したがって、レーシングラインは、AIドライバのトラックに沿った経路を制御する際にAI動作制御システムに手引きを提供する1つの形の挙動定義である。
【0017】
コースは、トラックセグメント(例えばトラックセグメント110参照)に分割される。一般に、トラックセグメントは、一種のゲームセグメントであり、これはストラテジゲームでのゲームターン、ロールプレイングゲームでのシーン、一人称シューティングでのレベルなど、またはその組み合わせも表し得る。
【0018】
各レーシングラインは、トラックセグメント内の中間地点(中間地点112、114、116、118など)を基準にして特徴づけられる。トラックセグメントは、バーチャルリアリティ設定における迷路や1つまたは複数の部屋などを通る距離など、より一般的なゲームセグメントの例である。一実装形態では、例えば中間地点118で、法線ベクトル(トラックを横切る中間地点ラインに対する垂線)とサンプリングされたレーシングラインとの間のステアリング角120は、レーシングラインをシステムに対して特徴付ける。次いでAI動作制御システムが中間地点およびステアリング角を使用して、AI制御されたエンティティ(レース車両など)に適切な動作制御信号を算出する。
【0019】
図2は、個別の訓練データを生成するシステム例200を示す図である。1組の個別の訓練サンプル202が生成され、訓練モジュール204に入力される。一実装形態において、個別の訓練サンプルは、ゲームのプレイ中に対象の人物の動作を監視することによって生成される。環境の特徴(トラック形状、トラックの状態など)および対象の挙動(レーシングライン、制御信号など)は、パラメータ化され、個別の訓練データ206に記録される。少なくとも1つの実装形態において、人間のプレイヤが様々なアバターの競争相手の訓練データプロフィールを保存できるように、個別の訓練データを永続的に格納することができる。
【0020】
図3は、個別のサンプル挙動を含む個別の訓練データ300の例を示す。各行は、最左列に沿ったトラックセグメント図によって表される特定のゲームセグメントに対応している。各行の第1の列は、コースにおける所与のゲームセグメントを表す。各ゲームセグメントは、ゲームセグメント記述子によって表すことができ、ゲームセグメント記述子は、それだけには限定されないが、トラックセグメント形状、トラックの表面の状態、時刻などを含み得る。次の各列は、関連のゲームセグメントにおける対象の人物の挙動のサンプル(すなわち個別のサンプル挙動)に対応する。
【0021】
さらに、個別の訓練データの蓄積率は、所与のトラックセグメントについて訓練データを「ミラーリング」し、それによって所与の量の訓練について抽出された訓練データの量を倍にすることによって、実質的に増加し得る。例えば、一部のトラックセグメントでは、右カーブの訓練データを抽出し、次いで(左カーブを表すために)トラックセグメントおよび個別レーシングラインサンプルをミラーリングすることによって、単一のトラックセグメントについて2つの訓練サンプルが捕捉される。
【0022】
示したテーブル300では、対象の人物の挙動のサンプルがそのトラックセグメントのレーシングラインによって表されている。例えば、最後の行に示すように、対象の人物は、急カーブであると思われる関連のトラックセグメントについて4つのサンプル挙動定義(レーシングラインなど)を提供している。対象の人物によってとられた挙動定義間の差は、その行の各セルでわかり、それによってこのトラックセグメント、またはこのトラックセグメントに似たトラックセグメントにおけるAIアバターの予測できない挙動に寄与する機会が提供される。
【0023】
レースゲームの一実装形態において、レーシングラインは、トラックセグメントにおける中間地点での一連のステアリング角の値によって定義することができる。ステアリング角の値は、トラックセグメントにおける中間地点ラインに垂直なベクトルに対するレーシングラインのステアリング角を特徴付ける。レーシングラインは、それだけには限定されないが、コース内のサンプリングされた位置またはベクトル、ゲームプレイの動作(戦闘シーケンスなど)を含めて、他のパラメータまたは他のパラメータの組み合わせによって特徴付けることができることを理解されたい。一人称シューティングゲームの一実装形態において、挙動定義は、プレイヤの動作経路を表し得る。
【0024】
訓練セットに含まれるトラックセグメントは、現在のトラックからのものであっても、またはそうでなくてもよい。一実装形態において、確率密度関数演算(probability density function operation)は、訓練トラックセグメントと現在のトラックセグメントとの間の類似点を決定し、類似の各訓練トラックセグメントに関連付けられているレーシングラインをサンプリングすることによって、重み付きの寄与(weighted contributions)を算出する。重み付けは、1つまたは複数のサンプルレーシングラインの寄与を、現在のトラックセグメント内のAIアバターの現在のレーシングラインに適用することができる。代替実装形態において、個別のアバターは、対象の人物が実際に訓練されたトラックでのみ実行することができる。
【0025】
図4は、コンピュータ制御されたアバターの制御信号を生成するシステム例400を示す。個別の訓練データ402は、対象の人物による過去または同時進行のゲームプレイに基づいた訓練データの動的生成、Webリソースまたは記憶媒体からの訓練データのダウンロード、架空のプレイヤの訓練データの算出を含めて、様々な方法で提供することができる。同時進行のゲームプレイオプションを使用すると、プレイヤは、最初の1組のデフォルトのまたは個別の訓練データで始めて、プレイヤがゲームをしながら訓練セットに追加することによって、自分自身の徐々に向上するアバターと競争することができることに留意されたい。ゲームプレイが進むにつれて、ゲーム中にユーザによってとられたレーシングラインを訓練データに追加して、訓練サンプルの豊富さを向上させることができる。
【0026】
トラック位置、トラックセグメント形状など、ゲームセグメントに関連する環境コンテキスト情報(Environmental context information)404は、バーチャルリアリティ環境によって提供される。形および/または内容においてトラックセグメント記述子に似たコンテキスト情報パラメータを使用して、AI制御されたアバター挙動定義に寄与する個別のサンプル挙動を識別するために、訓練データ402内の1つまたは複数のトラックセグメントに合うものを見つける。
【0027】
訓練データ402およびコンテキスト情報404は、挙動定義408を算出するアバター挙動定義モジュール406によって受信される。一実装形態において、挙動定義408は、続いてAI挙動制御システム410が従う個別のレーシングラインを指定する。しかし、一人称シューティングゲームなどにおけるAIアバターの挙動など、他の挙動定義を指定することもできる。
【0028】
一実装形態において、アバター挙動定義モジュール406は、(例えばサンプルデータのある列を選択するための)サンプルインデックスを無作為に選択し、コンテキスト情報404に対してセグメント記述子を評価して、適切なサンプルデータを識別する。無作為に選択されたインデックス下の最も一致するトラックセグメントのサンプル挙動を、挙動定義408としてAI挙動制御システム410に転送することができる。
【0029】
別の実装形態において、確率密度関数モジュール412は、1つまたは複数のサンプルが所与のトラックセグメントについての挙動定義に提供する重み付きの寄与を決定する。コンテキスト情報404とトラックセグメント記述子との間の類似度が高くなればなるほど、挙動定義を算出するときにサンプルデータに適用される重みが大きくなる。次いでこれらの寄与の重み付きの和は、挙動定義408として、AI挙動制御システム410に転送される。他の寄与アルゴリズムも企図される。
【0030】
バーチャルリアリティ環境からの刺激414は、AI挙動制御システム410に入力され、AI挙動制御システムは、バーチャルリアリティ環境においてアバターを制御する制御信号416を生成する。制御信号416は、実施エンジン418に入力されて、制御信号416によって指定された動作または挙動を実施する。例えば、実施エンジン418は、仮想レースカーに、方向および速度を変えさせることができる。
【0031】
図5は、コンピュータ制御されたアバターの制御信号を生成する操作例500を示す。受信操作502は、個別の訓練データを受信する。別の受信操作504は、現在のトラックのトラックセグメントのコンテキスト情報を受信する。
【0032】
生成操作506は、現在のトラックのトラックセグメントごとにアバター挙動定義を生成する。一実装形態において、サンプルインデックスが無作為に選択され、現在のトラックのコンテキスト情報504と最も一致するトラックセグメントに対応するサンプルデータが現在のトラックセグメントのアバター挙動定義と考えられる。現在のトラックセグメントのアバター挙動定義を識別するためのこの選択および評価は、現在のトラックのトラックセグメントごとに繰り返される。
【0033】
別の実装形態において、訓練データ内の複数のトラックセグメントからのサンプルデータは、現在のトラックの所与のトラックセグメントについてのアバター挙動定義に寄与し得る。BDは、現在のトラックにおける所与のトラックセグメントiについての挙動定義を表し、
【0034】
【数1】

【0035】
は、訓練データの行jおよび列kからのサンプルデータを表すと仮定する。アルゴリズム例について以下に記述する。
【0036】
【表1】

【0037】
感度係数ωは、重み係数が類似度に対してどれだけ感度があるかを指定する。例えば、ωが非常に小さい場合、sは小さく、より少ない訓練トラックセグメントのサンプルデータが挙動定義BDに大いに寄与する。逆に、ωが非常に大きい場合、sは大きく、より多くの訓練トラックセグメントのサンプルデータが挙動定義BDに大きく寄与する。感度係数ωは、ゲーム設計時にプリセットする、またはプレイヤまたはシステムによって構成することができる。
【0038】
一実装形態において、現在のトラックのすべてのトラックセグメントのアバター挙動定義は、(例えば、レース時間中、他の機能のための計算能力を保持するために)レース時間前に算出される。しかし、代替実装形態において、バーチャルリアリティ環境でトラックセグメントに遭遇したときに、現在のトラックにおける個々のトラックセグメントのアバター挙動定義を動的に算出することができることも理解されたい。この手法によって、訓練データとの一致を決定するときにレース時間イベントを考慮することができる。さらに、現在のレース中の人間のプレイヤの挙動を使用して、(例えば、人間のプレイヤが自分自身の連続的に変化するアバターと競争することができるように)レース中に訓練データを動的に補うことができる。
【0039】
受信操作508は、現在のシミュレーション間隔のバーチャルリアリティ環境からのゲームの刺激を受け取る。こうした刺激は、生成操作510に入力され、生成操作は、刺激に基づいてアバター挙動をアバター挙動定義(例えば生成操作506で生成された)に集めるために使用される制御信号を生成する。例えば、レースゲームにおける制御信号は、一般に、AI制御車両をレーシングラインの方に導くためのものである。
【0040】
実施操作512は、実施モジュールを介して制御信号をバーチャルリアリティ環境に適用する。例えば、実施モジュール例は、レース用物理エンジンを含み得る。操作508、510、512は、バーチャルリアリティゲームにおける動作を進めるために、各シミュレーション間隔を繰り返す。
【0041】
本発明を実施する図6のハードウェアおよび動作環境の例は、処理ユニット21、システムメモリ22、およびシステムメモリを含む様々なシステム構成要素を処理ユニット21に動作可能に結合するシステムバス23を含む汎用コンピューティング装置をコンピュータ20の形で含んでいる。処理ユニット21は、1つだけでもよく、または複数存在していてもよく、したがってコンピュータ20のプロセッサは、単一の中央処理装置(CPU)、または一般に並列処理環境と呼ばれる複数の処理装置を含む。コンピュータ20は、従来のコンピュータ、分散コンピュータ、または他の任意のタイプのコンピュータでよく、本発明はそのように限定されない。
【0042】
システムバス23は、様々なバスアーキテクチャのうちの任意のものを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むいくつかのタイプのバス構造のうちどんなものでもよい。システムメモリは、単にメモリとも呼ばれ、読み取り専用メモリ(ROM)24およびランダムアクセスメモリ(RAM)25を含む。基本入出力システム(BIOS)26は、例えば起動中など、コンピュータ20内の要素間での情報の転送を助ける基本ルーチンを含み、ROM24に格納されている。コンピュータ20は、図示はしていないがハードディスクから読み取り、あるいはそこに書き込むハードディスクドライブ27、取外式磁気ディスク29から読み取り、あるいはそこに書き込む磁気ディスクドライブ28、およびCD−ROMや他の光媒体など、取外式光ディスク31から読み取り、あるいはそこに書き込む光ディスクドライブ30をさらに含む。
【0043】
ハードディスクドライブ27、磁気ディスクドライブ28、および光ディスクドライブ30は、それぞれハードディスクドライブインターフェース32、磁気ディスクドライブインターフェース33、および光ディスクドライブインターフェース34によってシステムバス23に接続される。ドライブおよびその関連のコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびコンピュータ20の他のデータの不揮発性記憶域を提供する。磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジ、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)など、コンピュータによってアクセス可能な、データを格納できる任意のタイプのコンピュータ可読媒体を動作環境例で使用することができることを当業者であれば理解されたい。
【0044】
オペレーティングシステム35、1つまたは複数のアプリケーションプログラム36、他のプログラムモジュール37、およびプログラムデータ38を含めて、いくつかのプログラムモジュールをハードディスク、磁気ディスク29、光ディスク31、ROM24またはRAM25に格納することができる。ユーザは、コマンドおよび情報をキーボード40やポインティング装置42などの入力装置を介してパーソナルコンピュータ20に入力することができる。他の入力装置(図示せず)には、マイクロフォン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナなどがある。これらおよび他の入力装置は、しばしばシステムバスに結合されているシリアルポートインターフェース46を介して処理ユニット21に接続されるが、パラレルポート、ゲームポート、ユニバーサルシリアルバス(USB)など他のインターフェースで接続してもよい。モニタ47または他のタイプの表示装置もまた、ビデオアダプタ48などのインターフェースを介してシステムバス23に接続される。コンピュータは一般に、モニタに加えて、スピーカやプリンタなど他の周辺出力装置(図示せず)を含んでいる。
【0045】
コンピュータ20は、リモートコンピュータ49など1つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク式環境で動作することができる。こうした論理接続は、コンピュータ20またはその一部に結合される通信装置によって達成され、本発明は、特定のタイプの通信装置に限定されない。リモートコンピュータ49は、別のコンピュータ、サーバ、ルータ、ネットワークPC、クライアント、ピア装置、または他の一般のネットワークノードでよく、一般にコンピュータ20に関連して上述した多くまたはすべての要素を含むが、図6にはメモリ記憶装置50のみを示している。
【0046】
図6に示した論理接続は、ローカルエリアネットワーク(LAN)51および広域ネットワーク(WAN)52を含む。こうしたネットワーキング環境は、オフィスネットワーク、全社規模のコンピュータネットワーク、イントラネット、およびインターネットなどあらゆるタイプのネットワークではごく一般的である。LANネットワーキング環境で使用する場合、コンピュータ20は、ネットワークインターフェースまたはアダプタ53を介して、通信装置の1つのタイプであるローカルネットワーク51に接続される。WANネットワーキング環境で使用する場合、コンピュータ20は一般に、モデム54、一種の通信装置、または広域ネットワーク52を介して通信を確立する他の任意のタイプの通信装置を含む。モデム54は、内蔵のものでも外付けのものでもよく、シリアルポートインターフェース46を介してシステムバス23に接続される。ネットワーク式環境では、パーソナルコンピュータ20に関連して示したプログラムモジュール、またはその一部をリモートメモリ記憶装置に格納することができる。図示したネットワーク接続は例であり、コンピュータ間の通信リンクを確立する他の手段および通信装置を使用してもよいことは理解されよう。
【0047】
一実装形態例では、AI動作制御システム、物理エンジン、訓練モジュール、アバター制御モジュール、アバター挙動定義モジュール、AI挙動制御モジュール、または他のモジュールを、オペレーティングシステム35、アプリケーションプログラム36、他のプログラムモジュール37の一部として組み込むことができる。刺激信号、挙動定義、訓練データ、コンテキスト情報、および制御信号は、プログラムデータ38として格納することができる。
【0048】
本明細書に記載した本発明の実施形態は、1つまたは複数のコンピュータシステムにおいて論理ステップとして実装される。本発明の論理操作は、(1)1つまたは複数のコンピュータシステムで実行される一連のプロセッサ実施ステップとして、また(2)1つまたは複数のコンピュータシステム内の相互接続されたマシンモジュールとして実装される。この実装は、本発明を実施するコンピュータシステムの性能要件に応じて選択できる。したがって、本明細書に記載した本発明の実施形態を構成する論理操作は、操作、ステップ、オブジェクト、またはモジュールと様々に呼ばれる。
【0049】
上記の仕様、例、およびデータは、構造の完全な説明および本発明の実施形態例の使用を提供している。本発明の多くの実施形態は、本発明の意図および範囲から逸脱することなく作成することができるので、本発明は頭記に添付の特許請求の範囲にある。
【図面の簡単な説明】
【0050】
【図1】コンピュータ制御されたアバター例のパラメータ化に使用するための2つの訓練レーシングラインおよびレースコースを示す図である。
【図2】個別の訓練データを生成するシステム例を示す図である。
【図3】個別の訓練データ例を示す図である。
【図4】コンピュータ制御されたアバターの制御信号を生成するシステム例を示す図である。
【図5】コンピュータ制御されたアバターの制御信号を生成する操作例を示す図である。
【図6】本発明の一実施形態の実施に有用なシステム例を示す図である。

【特許請求の範囲】
【請求項1】
バーチャルリアリティ環境の環境コンテキスト、および1組の訓練用の個別のサンプル挙動から無作為に選択された訓練挙動に基づいてアバター挙動定義を算出するステップと、
前記アバター挙動定義に従って前記バーチャルリアリティ環境におけるエンティティの挙動を案内するための少なくとも1つの制御信号を生成するステップと
を含むことを特徴とする方法。
【請求項2】
前記アバター挙動定義はトラックセグメントに関連付けられることを特徴とする請求項1に記載の方法。
【請求項3】
前記バーチャルリアリティ環境での1つまたは複数の訓練セッションにおけるプレイヤの挙動を記録することによって、前記個別のサンプル挙動を生成するステップ
をさらに含むことを特徴とする請求項1に記載の方法。
【請求項4】
前記算出ステップは、
現在のゲームセグメントの前記アバター挙動定義を得るために、前記現在のゲームセグメントの複数の前記個別のサンプル挙動を結合するステップ
を含むことを特徴とする請求項1に記載の方法。
【請求項5】
前記算出ステップは、
現在のゲームセグメントの前記アバター挙動定義を得るために、前記現在のゲームセグメントの複数の前記個別のサンプル挙動の重み付きの寄与を結合するステップ
を含むことを特徴とする請求項1に記載の方法。
【請求項6】
前記算出ステップは、
前記個別のサンプル挙動のうちの少なくとも1つを指定する無作為に選択されたサンプルインデックスを使用して、前記訓練セットから個別のサンプル挙動を無作為に選択するステップ
を含むことを特徴とする請求項1に記載の方法。
【請求項7】
前記個別のサンプル挙動を永続記憶媒体に格納するステップ
をさらに含むことを特徴とする請求項1に記載の方法。
【請求項8】
前記バーチャルリアリティ環境においてゲームプレイ中に前記エンティティとの競争におけるプレイヤの挙動を記録するステップと、
前記記録された挙動を、前記ゲームプレイ中に、前記プレイヤに関連付けられている前記個別のサンプル挙動に追加するステップと
をさらに含むことを特徴とする請求項1に記載の方法。
【請求項9】
前記算出ステップは、
前記現在のゲームセグメントに関連付けられている環境コンテキスト情報に対して個別のサンプル挙動に関連付けられているゲームセグメント記述子を評価することによって、前記現在のゲームセグメントに一致する前記訓練セット内のゲームセグメントを識別するステップ
を含むことを特徴とする請求項1に記載の方法。
【請求項10】
コンピュータシステム上でコンピュータプロセスを実行するコンピュータプログラムを符号化するコンピュータプログラム製品であって、前記コンピュータプロセスは、
バーチャルリアリティ環境の環境コンテキスト、および1組の訓練用の個別のサンプル挙動から無作為に選択された訓練挙動に基づいてアバター挙動定義を算出するステップと、
前記アバター挙動定義に従って前記バーチャルリアリティ環境におけるエンティティの挙動を案内するための少なくとも1つの制御信号を生成するステップと
を含むことを特徴とするコンピュータプログラム製品。
【請求項11】
前記アバター挙動定義はゲームセグメントに関連付けられることを特徴とする請求項10に記載のコンピュータプログラム製品。
【請求項12】
前記コンピュータプロセスは、
前記バーチャルリアリティ環境での1つまたは複数の訓練セッションにおけるプレイヤの挙動を記録することによって、前記個別のサンプル挙動を生成するステップ
をさらに含むことを特徴とする請求項10に記載のコンピュータプログラム製品。
【請求項13】
前記算出ステップは、
現在のゲームセグメントの前記アバター挙動定義を得るために、前記現在のゲームセグメントの複数の前記個別のサンプル挙動を結合するステップ
を含むことを特徴とする請求項10に記載のコンピュータプログラム製品。
【請求項14】
前記算出ステップは、
現在のゲームセグメントの前記アバター挙動定義を得るために、前記現在のゲームセグメントの複数の前記個別のサンプル挙動の重み付きの寄与を結合するステップ
を含むことを特徴とする請求項10に記載のコンピュータプログラム製品。
【請求項15】
前記算出ステップは、
前記個別のサンプル挙動のうちの少なくとも1つを指定する無作為に選択されたサンプルインデックスを使用して、前記訓練セットから個別のサンプル挙動を無作為に選択するステップ
を含むことを特徴とする請求項10に記載のコンピュータプログラム製品。
【請求項16】
前記コンピュータプロセスは、
前記個別のサンプル挙動を永続記憶媒体に格納するステップ
をさらに含むことを特徴とする請求項10に記載のコンピュータプログラム製品。
【請求項17】
前記コンピュータプロセスは、
前記バーチャルリアリティ環境においてゲームプレイ中に前記エンティティとの競争におけるプレイヤの挙動を記録するステップと、
前記記録された挙動を、前記ゲームプレイ中に、前記プレイヤに関連付けられている前記個別のサンプル挙動に追加するステップと
をさらに含むことを特徴とする請求項10に記載のコンピュータプログラム製品。
【請求項18】
前記算出ステップは、
前記現在のゲームセグメントに関連付けられている環境コンテキスト情報に対して個別のサンプル挙動に関連付けられているゲームセグメント記述子を評価することによって、前記現在のゲームセグメントに一致する前記訓練セット内のゲームセグメントを識別するステップ
を含むことを特徴とする請求項10に記載のコンピュータプログラム製品。
【請求項19】
バーチャルリアリティ環境の環境コンテキスト、および1組の訓練用の個別のサンプル挙動から無作為に選択された訓練挙動に基づいてアバター挙動定義を算出するアバター挙動定義モジュールと、
前記アバター挙動定義に従って前記バーチャルリアリティ環境におけるエンティティの挙動を案内するための少なくとも1つの制御信号を生成する挙動制御システムと
を含むことを特徴とするシステム。
【請求項20】
前記アバター挙動定義はゲームセグメントに関連付けられることを特徴とする請求項19に記載のシステム。
【請求項21】
前記バーチャルリアリティ環境での1つまたは複数の訓練セッションにおけるプレイヤの挙動を記録することによって、前記個別のサンプル挙動を生成する訓練モジュール
をさらに含むことを特徴とする請求項19に記載のシステム。
【請求項22】
前記算出操作は、
確率密度関数モジュールが、現在のセグメントの前記アバター挙動定義を得るために前記現在のゲームセグメントの複数の前記個別のサンプル挙動を結合すること
を含むことを特徴とする請求項19に記載のシステム。
【請求項23】
前記算出操作は、
確率密度関数モジュールが、現在のセグメントの前記アバター挙動定義を得るために前記現在のゲームセグメントの複数の前記個別のサンプル挙動の重み付きの寄与を結合すること
を含むことを特徴とする請求項19に記載のシステム。
【請求項24】
前記算出操作は、
確率密度関数モジュールが、前記個別のサンプル挙動のうちの少なくとも1つを指定する無作為に選択されたサンプルインデックスを使用して前記訓練セットから個別のサンプル挙動を無作為に選択すること
を含むことを特徴とする請求項19に記載のシステム。
【請求項25】
前記個別のサンプル挙動を永続記憶媒体に格納する訓練モジュール
をさらに含むことを特徴とする請求項19に記載のシステム。
【請求項26】
前記バーチャルリアリティ環境においてゲームプレイ中に前記エンティティとの競争におけるプレイヤの挙動を記録し、前記記録された挙動を、前記ゲームプレイ中に、前記プレイヤに関連付けられている前記個別のサンプル挙動に追加する訓練モジュール
をさらに含むことを特徴とする請求項19に記載のシステム。
【請求項27】
前記算出操作は、
確率密度関数モジュールが、前記現在のゲームセグメントに関連付けられている環境コンテキスト情報に対して個別のサンプル挙動に関連付けられているゲームセグメント記述子を評価することによって、前記現在のゲームセグメントに一致する前記訓練セット内のゲームセグメントを識別すること
を含むことを特徴とする請求項19に記載のシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公表番号】特表2007−527260(P2007−527260A)
【公表日】平成19年9月27日(2007.9.27)
【国際特許分類】
【出願番号】特願2006−518617(P2006−518617)
【出願日】平成16年5月18日(2004.5.18)
【国際出願番号】PCT/US2004/015529
【国際公開番号】WO2005/006117
【国際公開日】平成17年1月20日(2005.1.20)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】