(57)【特許請求の範囲】
【請求項１】
複数のコンピューティングデバイスにおいて分散シミュレーションをほぼ同時に提示する方法であって、前記複数のコンピューティングデバイスは、前記分散シミュレーションの第１の部分を実行する第１のコンピューティングデバイスを備え、前記第１の部分は、オブジェクトを制御し、前記方法は、
ａ）前記複数のコンピューティングデバイスのうちの第２のコンピューティングデバイスが、前記分散シミュレーションの第２の部分を実行することであって、前記第２の部分は、前記第２のコンピューティングデバイスに電気的に結合された第１の表示デバイス上に表示するために、前記オブジェクトの第１の視覚表現を生成し、前記第２のコンピューティングデバイスは、前記オブジェクトおよび前記第１の視覚表現に関連付けられた視覚状態を備え、前記視覚状態は、少なくとも１つのパラメータ値を含み、前記オブジェクトの前記第１の視覚表現は、前記第１の視覚表現の生成よりも前に前記第１のコンピューティングデバイスから前記第２のコンピューティングデバイスによって受け取られた第１の更新に基づいて、前記第２の部分によって生成され、前記第１の更新は、前記第１のコンピューティングデバイスによって生成された前記オブジェクトの第２の視覚表現に関連する前記オブジェクトの第１の状態を含む、ことと、
ｂ）前記第２のコンピューティングデバイスが、前記オブジェクトの前記第１の状態に少なくとも部分的に基づいて、前記オブジェクトの予測状態を生成することであって、前記予測状態は、少なくとも１つの速度と、少なくとも１つのパラメータ値とを含む、ことと、
ｃ）前記第２のコンピューティングデバイスが、前記第１のコンピューティングデバイスから第２の更新を受け取ることであって、前記第２の更新は、前記第１の更新の後に受け取られ、前記第２の更新は、前記第１のコンピューティングデバイスによって生成された前記オブジェクトの第３の視覚表現に関連する前記オブジェクトの第２の状態を含み、前記第２の状態は、少なくとも１つのパラメータ値を含む、ことと、
ｄ）前記第２のコンピューティングデバイスが、前記予測状態の前記少なくとも１つのパラメータ値を、前記第２の状態の前記少なくとも１つのパラメータ値と等しく設定することと、
ｅ）前記第２のコンピューティングデバイスが、前記予測状態の前記少なくとも１つのパラメータ値と、前記視覚状態の前記少なくとも１つのパラメータ値との間の相違を決定することと、
ｆ）前記相違が第１の閾値よりも大きいときに、前記第２のコンピューティングデバイスが、前記予測状態の前記少なくとも１つの速度を修正することと、
ｇ）前記相違が第２の閾値よりも大きいときに、前記第２のコンピューティングデバイスが、前記予測状態の前記少なくとも１つのパラメータ値に少なくとも部分的に基づいて、前記視覚状態の前記少なくとも１つのパラメータ値を修正することと、
ｈ）前記第２のコンピューティングデバイスが、前記視覚状態に少なくとも部分的に基づいて、前記オブジェクトの第４の視覚表現をレンダリングすることと、
ｉ）前記第２のコンピューティングデバイスが、前記オブジェクトの前記第４の視覚表現を前記第１の表示デバイス上に表示することと
を含む、方法。
【請求項２】
前記予測状態は、第１の予測状態であり、前記相違は、第１の相違であり、前記方法は、
前記第２のコンピューティングデバイスが、前記予測状態の前記少なくとも１つの速度に少なくとも部分的に基づいて、第２の予測状態を生成することであって、前記第２の予測状態は、少なくとも１つのパラメータ値を含む、ことと、
前記第２の予測状態の前記少なくとも１つのパラメータ値と前記視覚状態の前記少なくとも１つのパラメータ値との間の第２の相違を決定することと、
前記第２の相違が前記第２の閾値よりも大きいときに、前記第２のコンピューティングデバイスが、前記第２の予測状態の前記少なくとも１つのパラメータ値に少なくとも部分的に基づいて、前記視覚状態の前記少なくとも１つのパラメータ値を修正することと、
前記第２のコンピューティングデバイスが、前記視覚状態に少なくとも部分的に基づいて、前記オブジェクトの第５の視覚表現をレンダリングすることと、
前記第２のコンピューティングデバイスが、前記オブジェクトの前記第５の視覚表現を前記第１の表示デバイス上に表示することと
をさらに含む、請求項１に記載の方法。
【請求項３】
前記方法は、前記第１のコンピューティングデバイスに電気的に結合された第２の表示デバイス上に前記第１のコンピューティングデバイスによって表示される前記オブジェクトの前記第３の視覚表現とともに使用され、前記オブジェクトの前記第４の視覚表現は、前記オブジェクトの前記第３の視覚表現が前記第１のコンピューティングデバイスによって前記第２の表示デバイス上に表示されるのとほぼ同時に、前記第２のコンピューティングデバイスによって前記第１の表示デバイス上に表示される、請求項１に記載の方法。
【請求項４】
前記第２のコンピューティングデバイスが、前記第２のコンピューティングデバイスによってアクセス可能なストレージデバイスから、前記第１の閾値を取得することをさらに含む、請求項１に記載の方法。
【請求項５】
前記オブジェクトは、タイプを有し、
前記第１の閾値は、前記ストレージデバイスに記憶されるテーブルに記憶され、前記第１の閾値は、前記テーブルの中の前記オブジェクトの前記タイプに関連付けられる、請求項４に記載の方法。
【請求項６】
前記オブジェクトは、タイプを有し、
前記第２の状態の前記少なくとも１つのパラメータ値は、少なくとも１つの速度を含み、
前記第２のコンピューティングデバイスが、前記予測状態の前記少なくとも１つの速度を修正することは、前記オブジェクトの前記タイプに関連付けられたバンプ値を取得することと、前記バンプ値、前記相違、前記第２の状態の前記少なくとも１つの速度の関数として、前記予測状態の前記少なくとも１つの速度を計算することと
を含む、請求項１に記載の方法。
【請求項７】
前記視覚状態の前記少なくとも１つのパラメータ値は、少なくとも１つの速度を含み、
前記予測状態の前記少なくとも１つのパラメータ値は、少なくとも１つの速度を含み、
前記予測状態の前記少なくとも１つのパラメータ値と、前記視覚状態の前記少なくとも１つのパラメータ値との間の前記相違を決定することは、前記予測状態の前記少なくとも１つの速度と、前記視覚状態の前記少なくとも１つの速度との間の相違を決定することを含む、請求項１に記載の方法。
【請求項８】
前記第２の状態の前記少なくとも１つのパラメータ値は、少なくとも１つの速度を含み、
前記予測状態の前記少なくとも１つの速度は、前記第２の状態の前記少なくとも１つの速度に等しく設定される、請求項７に記載の方法。
【請求項９】
前記視覚状態の前記少なくとも１つのパラメータ値は、位置情報および方向情報のうちの少なくとも１つを含み、
前記予測状態の前記少なくとも１つのパラメータ値は、位置情報および方向情報のうちの少なくとも１つを含み、
前記予測状態の前記少なくとも１つのパラメータ値と、前記視覚状態の前記少なくとも１つのパラメータ値との間の前記相違を決定することは、前記予測状態の位置情報および方向情報のうちの少なくとも１つと、前記視覚状態の位置情報および方向情報のうちの少なくとも１つとの間の相違を決定することを含む、請求項１に記載の方法。
【請求項１０】
前記第２の状態の前記少なくとも１つのパラメータ値は、位置情報および方向情報のうちの少なくとも１つを含み、
前記予測状態の位置情報および方向情報のうちの少なくとも１つは、前記第２の状態の位置情報および方向情報のうちの少なくとも１つに等しく設定される、請求項９に記載の方法。
【請求項１１】
前記相違が前記第２の閾値よりも大きいときに、前記予測状態の前記少なくとも１つのパラメータ値に少なくとも部分的に基づいて、前記視覚状態の少なくとも１つのパラメータ値を修正することは、
前記相違が第３の閾値よりも大きいかどうかを判定することであって、前記第３の閾値は、前記第２の閾値よりも大きい、ことと、
前記相違が前記第３の閾値よりも大きいと判定されたときに、前記視覚状態の位置情報および方向情報のうちの少なくとも１つを、前記予測状態の位置情報および方向情報のうちの少なくとも１つに等しく設定することと
をさらに含む、請求項９に記載の方法。
【請求項１２】
前記オブジェクトは、タイプを有し、
前記第３の閾値は、テーブルに記憶され、前記テーブルの中の前記オブジェクトのタイプに関連付けられ、
前記方法は、前記第２のコンピューティングデバイスが、前記テーブルから前記第３の閾値を取得することをさらに含む、請求項１１に記載の方法。
【請求項１３】
前記相違が前記第２の閾値よりも大きいときに、前記予測状態の前記少なくとも１つのパラメータ値に少なくとも部分的に基づいて、前記視覚状態の少なくとも１つのパラメータ値を修正することは、
前記第２のコンピューティングデバイスが、前記相違が前記第３の閾値未満であるときに、ブレンド状態を決定することであって、前記ブレンド状態は、前記視覚状態の位置情報および方向情報のうちの少なくとも１つおよび前記予測状態の位置情報および方向情報のうちの少なくとも１つに少なくとも部分的に基づき、前記ブレンド状態は、位置情報および方向情報のうちの少なくとも１つを含む、ことと、
前記視覚状態の位置情報および方向情報のうちの少なくとも１つを、前記ブレンド状態の位置情報および方向情報のうちの少なくとも１つに等しく設定することと
をさらに含む、請求項１１に記載の方法。
【請求項１４】
前記オブジェクトは、タイプを有し、
前記ブレンド状態は、前記オブジェクトの前記タイプに関連付けられた１つ以上のパラメータ値に少なくとも部分的に基づいて決定される、請求項１３に記載の方法。
【請求項１５】
前記オブジェクトは、タイプを有し、
前記第２の閾値および前記第３の閾値は、テーブルに記憶され、前記テーブルの中の前記オブジェクトタイプに関連付けられ、
前記方法は、前記第２のコンピューティングデバイスが、前記テーブルから前記第２の閾値および前記第３の閾値を取得することをさらに含む、請求項１１に記載の方法。
【請求項１６】
前記相違が前記第２の閾値よりも大きいときに、前記予測状態の前記少なくとも１つのパラメータ値に少なくとも部分的に基づいて、前記視覚状態の少なくとも１つのパラメータ値を修正することは、
前記第２のコンピューティングデバイスが、前記相違が第３の閾値未満であるときに、ブレンド状態を決定することであって、前記ブレンド状態は、前記視覚状態の位置情報および方向情報のうちの少なくとも１つおよび前記予測状態の位置情報および方向情報のうちの少なくとも１つに少なくとも部分的に基づき、前記ブレンド状態は、位置情報および方向情報のうちの少なくとも１つを含む、ことと、
前記視覚状態の位置情報および方向情報のうちの少なくとも１つを、前記ブレンド状態の位置情報および方向情報のうちの少なくとも１つに等しく設定することと
をさらに含む、請求項９に記載の方法。
【請求項１７】
前記相違が前記第２の閾値よりも大きいときに、前記予測状態の前記少なくとも１つのパラメータ値に少なくとも部分的に基づいて、前記視覚状態の少なくとも１つのパラメータ値を修正することは、
前記相違が第３の閾値よりも大きいかどうかを判定することであって、前記第３の閾値は、前記第２の閾値よりも大きい、ことと、
前記相違が前記第３の閾値よりも大きいと判定されたときに、前記視覚状態の前記少なくとも１つのパラメータ値を、前記予測状態の前記少なくとも１つのパラメータ値に等しく設定することと
をさらに含む、請求項１に記載の方法。
【請求項１８】
前記相違が第２の閾値よりも大きいときに、前記予測状態の前記少なくとも１つのパラメータ値に少なくとも部分的に基づいて、前記視覚状態の少なくとも１つのパラメータ値を修正することは、
前記第２のコンピューティングデバイスが、前記相違が前記第３の閾値未満であるときに、ブレンド状態を決定することであって、前記ブレンド状態は、前記視覚状態の前記少なくとも１つのパラメータ値および前記予測状態の前記少なくとも１つのパラメータ値に少なくとも部分的に基づき、前記ブレンド状態は、少なくとも１つのパラメータ値を含む、ことと、
前記視覚状態の前記少なくとも１つのパラメータ値を、前記ブレンド状態の前記少なくとも１つのパラメータ値に等しく設定することと
をさらに含む、請求項１７に記載の方法。
【請求項１９】
前記オブジェクトの前記第２の状態の前記少なくとも１つのパラメータ値は、前記オブジェクトの制御モードを備え、前記方法は、
前記オブジェクトの前記制御モードに少なくとも部分的に基づいて、前記第２の閾値および前記第３の閾値のうちの少なくとも１つを選択することをさらに含む、請求項１８に記載の方法。
【請求項２０】
前記オブジェクトは、タイプを有し、
前記オブジェクトの前記制御モードに少なくとも部分的に基づいて、前記第２の閾値および前記第３の閾値のうちの前記少なくとも１つを選択することは、前記オブジェクトの前記タイプに少なくとも部分的に基づいて、前記第２の閾値および前記第３の閾値のうちの少なくとも１つを選択することをさらに含む、請求項１８に記載の方法。
【請求項２１】
前記相違が前記第２の閾値よりも大きいときに、前記予測状態の前記少なくとも１つのパラメータ値に少なくとも部分的に基づいて、前記視覚状態の少なくとも１つのパラメータ値を修正することは、
前記第２のコンピューティングデバイスが、ローカル衝突状態を決定することと、
前記第２のコンピューティングデバイスが、前記ローカル衝突状態に基づいて、前記視覚状態を修正することと
をさらに含む、請求項１に記載の方法。
【請求項２２】
前記方法は、地形を含む前記分散シミュレーションとともに使用され、前記方法は、
前記オブジェクトが前記地形に実質的に相互貫入しなくなるまで、前記ローカル衝突状態を決定することと前記ローカル衝突状態に基づいて前記視覚状態を修正することとを繰り返すことをさらに含む、請求項２１に記載の方法。
【請求項２３】
ネットワークを介して互いに接続された複数のコンピューティングデバイスとともに使用するための方法であって、前記複数のコンピューティングデバイスのそれぞれは、複数のオブジェクトを備える分散シミュレーションの一部分を実行し、前記複数のコンピューティングデバイスのうちの第１のコンピューティングデバイス上で実行する前記一部分は、前記複数のオブジェクトの一部分を制御し、前記複数のコンピューティングデバイスのうちの第２のコンピューティングデバイスに、前記複数のオブジェクトの前記一部分の少なくとも１つのオブジェクトに関連する更新を送り、前記方法は、
ａ）前記第２のコンピューティングデバイスが、前記第１のコンピューティングデバイスから第１の更新を受け取ることであって、前記第１の更新は、前記第１のコンピューティングデバイスによって制御される前記複数のオブジェクトの前記一部分の第１のオブジェクトに関連する状態情報を含む、ことと、
ｂ）前記第２のコンピューティングデバイスが、前記第１のオブジェクトに関連する前記状態情報に少なくとも部分的に基づいて、前記第１のオブジェクトの第１の視覚表現を生成し、表示することであって、前記第１のオブジェクトの前記第１の視覚表現は、前記第２のコンピューティングデバイスに電気的に結合されたディスプレイデバイス上に表示され、前記第２のコンピューティングデバイスは、前記第１のオブジェクトおよび前記第１の視覚表現に関連付けられた視覚状態情報を含む、ことと、
ｃ）前記第２のコンピューティングデバイスが、前記第１のコンピューティングデバイスから、状態情報を含む第２の更新を受け取ることであって、前記第２の更新は、前記第１の更新の後に受け取られる、ことと、
ｄ）前記第２のコンピューティングデバイスが、前記第１の更新の前記状態情報に少なくとも部分的に基づいて、前記第１のオブジェクトの予測状態情報を決定することであって、前記予測状態情報は、少なくとも１つの速度値を含む、ことと、
ｅ）前記第２の更新の前記状態情報が、前記第１のオブジェクトに関連するかどうかを判定することと、
ｆ）前記第２のコンピューティングデバイスが、前記第２の更新の前記状態情報が前記第１のオブジェクトに関連すると判定したときに、前記予測状態情報の少なくとも一部分を、前記第２の更新の前記状態情報の少なくとも一部分に等しく設定することと、
ｇ）前記視覚状態情報と前記予測状態情報との間の相違を決定することと、
ｈ）前記相違が第１の閾値よりも大きいときに、前記予測状態情報の前記少なくとも１つの速度値を修正することと、
ｉ）前記相違が第２の閾値よりも大きいときに、前記予測状態情報に少なくとも部分的に基づいて、前記視覚状態情報を修正することと、
ｊ）前記第２のコンピューティングデバイスが、前記視覚状態情報に少なくとも部分的に基づいて、前記第１のオブジェクトの第２の視覚表現をレンダリングすることと、
ｋ）前記第２のコンピューティングデバイスが、前記オブジェクトの前記第２の視覚表現を表示デバイス上に表示することと
を含む、方法。
【請求項２４】
前記予測状態情報は、第１の予測状態情報であり、前記相違は、第１の相違であり、前記方法は、
前記第２のコンピューティングデバイスが、前記第１の予測状態情報の前記少なくとも１つの速度に少なくとも部分的に基づいて、第２の予測状態情報を生成することと、
前記視覚状態情報と前記第２の予測状態情報との間の第２の相違を決定することと、
前記第２の相違が前記第２の閾値よりも大きいときに、前記第２の予測状態情報に少なくとも部分的に基づいて、前記視覚状態情報を修正することと、
前記第２のコンピューティングデバイスが、前記視覚状態情報に少なくとも部分的に基づいて、前記オブジェクトの第３の視覚表現をレンダリングすることと、
前記第２のコンピューティングデバイスが、前記オブジェクトの前記第３の視覚表現を前記表示デバイス上に表示することと
をさらに含む、請求項２３に記載の方法。
【請求項２５】
前記方法は、前記第２のコンピューティングデバイス上で実行し、前記複数のオブジェクトの第２の部分を制御する前記分散シミュレーションの前記一部分とともに使用され、前記方法は、
前記第１のコンピューティングデバイスに、前記複数のオブジェクトの前記第２の部分の少なくとも１つのオブジェクトに関連する更新を送ることをさらに含む、請求項２３に記載の方法。
【請求項２６】
前記方法は、前記第２のコンピューティングデバイス上で実行し、前記複数のオブジェクトの第２の部分を制御する前記分散シミュレーションの前記一部分とともに使用され、前記方法は、
ユーザインターフェースデバイスを介してユーザ入力を受け取ることであって、前記ユーザ入力は、前記複数のオブジェクトの前記第２の部分の選択されたオブジェクトの状態を変化させる、ことと、
前記選択されたオブジェクトに関連する状態情報を含む更新を作成することと、
前記第１のコンピューティングデバイスに、前記選択されたオブジェクトに関連する前記更新を送ることと
をさらに含む、請求項２３に記載の方法。
【請求項２７】
前記方法は、前記ネットワークを介して前記複数のコンピューティングデバイスに接続されたサーバと前記複数のオブジェクトの第２の部分を制御する前記第２のコンピューティングデバイス上で実行する前記分散シミュレーションの前記一部分とともに使用され、前記方法は、
前記複数のオブジェクトの前記第２の部分の少なくとも１つのオブジェクトに関連する更新を前記サーバに送ることをさらに含み、これにより、前記サーバは、前記複数のコンピューティングデバイスの他のものに転送する、請求項２３に記載の方法。
【請求項２８】
複数のオブジェクトを備える分散シミュレーションの一部分をそれぞれが実行する複数のコンピューティングデバイスとともに使用される方法であって、前記複数のコンピューティングデバイスのうちの第１のコンピューティングデバイス上で実行する前記一部分は、前記複数のオブジェクトの一部分を制御し、前記複数のコンピューティングデバイスのうちの少なくとも第２のコンピューティングデバイスに、前記複数のオブジェクトの前記一部分の少なくとも１つのオブジェクトに関連する更新を送り、前記方法は、
ａ）前記第２のコンピューティングデバイスが、前記第１のコンピューティングデバイスから第１の更新を受け取ることであって、前記第１の更新は、前記第１のコンピューティングデバイスによって制御される前記複数のオブジェクトの前記一部分の第１のオブジェクトに関連する状態情報を含む、ことと、
ｂ）前記第２のコンピューティングデバイスが、前記第１のオブジェクトに関連する前記状態情報に少なくとも部分的に基づいて、前記第１のオブジェクトの第１の視覚表現を生成し、表示することであって、前記第１のオブジェクトの前記第１の視覚表現は、前記第２のコンピューティングデバイスに電気的に結合された前記第１のディスプレイデバイス上に表示され、前記第２のコンピューティングデバイスは、前記第１のオブジェクトおよび前記第１の視覚表現に関連付けられた視覚状態情報を含む、ことと、
ｃ）前記第２のコンピューティングデバイスが、前記第１のコンピューティングデバイスから、状態情報を含む第２の更新を受け取ることであって、前記第２の更新は、前記第１の更新の後に受け取られる、ことと、
ｄ）前記第２のコンピューティングデバイスが、前記第１の更新の前記状態情報に少なくとも部分的に基づいて、前記第１のオブジェクトの予測状態情報を決定することと、
ｅ）前記第２のコンピューティングデバイスが、前記第２の更新の前記状態情報が、前記第１のオブジェクトに関連するかどうかを判定することと、
ｆ）前記第２のコンピューティングデバイスが、前記第２の更新の前記状態情報が前記第１のオブジェクトに関連すると判定したときに、前記第２のコンピューティングデバイスが、前記予測状態情報の少なくとも一部分を、前記第２の更新の前記状態情報の少なくとも一部分に等しく設定することと、
ｇ）前記第２のコンピューティングデバイスが、前記視覚状態情報と前記予測状態情報との間の相違を決定することと、
ｈ）前記相違が第１の閾値よりも大きいときに、前記第２のコンピューティングデバイスが、前記視覚状態情報の少なくとも一部分を、前記予測状態情報の少なくとも一部分に等しく設定することと、
ｉ）前記相違が前記第１の閾値未満であり、かつ第２の閾値よりも大きいときに、前記第２のコンピューティングデバイスが、前記視覚状態情報および前記予測状態情報に少なくとも部分的に基づいて、ブレンド状態情報を決定し、前記視覚状態情報の少なくとも一部分を、前記ブレンド状態情報の少なくとも一部分に等しく設定することであって、前記第１の閾値は、前記第２の閾値よりも大きい、ことと、
ｊ）前記第２のコンピューティングデバイスが、前記視覚状態情報に少なくとも部分的に基づいて、前記第１のオブジェクトの第２の視覚表現をレンダリングすることと、
ｋ）前記第２のコンピューティングデバイスが、前記第１のオブジェクトの前記第２の視覚表現を表示デバイス上に表示することと
を含む、方法。
【請求項２９】
ネットワークを介して互いに接続された複数のコンピューティングデバイスとともに使用される方法であって、前記複数のコンピューティングデバイスのそれぞれは、複数のオブジェクトを備える分散シミュレーションの一部分を実行し、前記複数のコンピューティングデバイスのうちの第１のコンピューティングデバイス上で実行する前記一部分は、前記複数のオブジェクトの第１の部分を制御し、かつ前記複数のコンピューティングデバイスのうちの第２のコンピューティングデバイスに、前記複数のオブジェクトの前記第１の部分の少なくとも１つのオブジェクトに関連する更新を送り、前記第２のコンピューティングデバイス上で実行する前記一部分は、前記複数のオブジェクトの第２の部分を制御し、かつ前記第１のコンピューティングデバイスに、前記複数のオブジェクトの前記第２の部分の少なくとも１つのオブジェクトに関連する更新を送り、前記方法は、
前記第２のコンピューティングデバイスが、前記複数のオブジェクトの前記第１の部分の第１のオブジェクトの第１の視覚表現および前記複数のオブジェクトの前記第２の部分の第２のオブジェクトの第１の視覚表現をレンダリングすることであって、前記第１のオブジェクトの前記第１の視覚表現は、視覚状態情報に関連付けられる、ことと、
前記第２のコンピューティングデバイスが、ユーザ入力デバイスを介して、前記第２のオブジェクトの前記第１の視覚表現を変化させる入力を受け取り、時折、前記第１のコンピューティングデバイスから、前記第２のコンピューティングデバイスによって使用可能な更新を受け取って、前記第１のオブジェクトの前記第１の視覚表現を修正することであって、前記第１のコンピューティングデバイスから受け取る前記更新のそれぞれは、前記第１のオブジェクトに関連する状態情報を含む、ことと、
前記第２のコンピューティングデバイスが、前記第２のオブジェクトの前記第１の視覚表現が変化するにつれて、時折、前記ネットワークを介して、前記第１のコンピューティングデバイスに更新を送ることであって、前記更新は、前記第１のコンピューティングデバイスによってレンダリングされた前記第２のオブジェクトの第２の視覚表現を修正するための、前記第１のコンピューティングデバイスによって使用可能な前記第２のオブジェクトに関連する状態情報を含む、ことと、
前記第２のコンピューティングデバイスが、時折、少なくとも１つの速度を含む前記第１のオブジェクトの予測状態情報を生成することと、
前記第２のコンピューティングデバイスによって前記更新のそれぞれが受け取られた後に、前記予測状態情報を、前記更新の前記状態情報に等しく設定することと、
前記第２のコンピューティングデバイスが、前記第１のオブジェクトの前記第１の視覚表現に関連付けられた前記予測状態情報と前記視覚状態情報との間の相違を決定することと、
前記第２のコンピューティングデバイスが、前記相違が第１の閾値よりも大きいときに、前記少なくとも１つの速度を変化させることによって、前記予測状態情報を更新することと、
前記第２のコンピューティングデバイスが、前記相違が第２の閾値よりも大きいときに、前記予測状態情報に少なくとも部分的に基づいて、前記第１のオブジェクトの前記第１の視覚表現に関連付けられた前記視覚状態情報を修正することと、
前記第２のコンピューティングデバイスが、前記視覚状態情報に少なくとも部分的に基づいて、前記第１のオブジェクトの前記第１の視覚表現を再レンダリングすることと
を含む、方法。
【請求項３０】
前記第１のオブジェクトは、タイプを有し、前記第１の閾値および前記第２の閾値は、テーブルに記憶されて、前記テーブルの中の前記オブジェクトの前記タイプに関連付けられ、前記方法は、
前記第２のコンピューティングデバイスが、前記テーブルの中の前記第１の閾値および前記第２の閾値を調べることをさらに含む、請求項２９に記載の方法。
【請求項３１】
前記相違が前記第２の閾値よりも大きいときに、前記予測状態情報に少なくとも部分的に基づいて、前記第１のオブジェクトの前記第１の視覚表現に関連付けられた前記視覚状態情報を修正することは、
前記相違が第３の閾値よりも大きいときに、前記視覚状態情報を前記予測状態情報に等しく設定することと、
前記相違が前記第３の閾値未満であり、かつ前記第２の閾値よりも大きいときに、前記第２のコンピューティングデバイスが、前記視覚状態情報および前記予測状態情報に少なくとも部分的に基づいて、ブレンド状態情報を決定し、前記視覚状態情報を、前記ブレンド状態情報に等しく設定することであって、前記第３の閾値は、前記第２の閾値よりも大きい、ことと
を含む、請求項２９に記載の方法。
【請求項３２】
コンピュータ実行可能な命令を記憶する、１つ以上の非一過性コンピュータ読み取り可能な媒体であって、前記命令は、１つ以上のプロセッサによって実行されたときに、分散シミュレーションの第１の部分を実行する第１のコンピューティングデバイスとともに使用される方法を実行し、前記第１の部分は、オブジェクトを制御し、前記方法は、
前記分散シミュレーションの第２の部分を実行することであって、前記第２の部分は、前記１つ以上のプロセッサに電気的に結合された第１の表示デバイス上に表示するために、前記オブジェクトの第１の視覚表現を生成し、視覚状態が、前記オブジェクトおよび前記第１の視覚表現に関連付けられ、前記視覚状態は、少なくとも１つのパラメータ値を含み、前記オブジェクトの前記第１の視覚表現は、前記第１の視覚表現の生成よりも前に前記第１のコンピューティングデバイスから受け取られた第１の更新に基づいて、前記第２の部分によって生成され、前記第１の更新は、前記第１のコンピューティングデバイスによって生成された前記オブジェクトの第２の視覚表現に関連する前記オブジェクトの第１の状態を含む、ことと、
ｂ）前記第１の状態に少なくとも部分的に基づいて、前記オブジェクトの予測状態を生成することであって、前記予測状態は、少なくとも１つの速度および少なくとも１つのパラメータ値を含む、ことと、
ｃ）前記第１のコンピューティングデバイスから第２の更新を受け取ることであって、前記第２の更新は、前記第１の更新の後に受け取られ、前記第２の更新は、前記第１のコンピューティングデバイスによって生成された前記オブジェクトの第３の視覚表現に関連する前記オブジェクトの第２の状態を含み、前記第２の状態は、少なくとも１つのパラメータ値を含む、ことと、
ｄ）前記予測状態の前記少なくとも１つのパラメータ値を、前記第２の状態の前記少なくとも１つのパラメータ値に等しく設定することと、
ｅ）前記予測状態の前記少なくとも１つのパラメータ値と、前記視覚状態の前記少なくとも１つのパラメータ値との間の相違を決定することと、
ｆ）前記相違が第１の閾値よりも大きいときに、前記予測状態の前記少なくとも１つの速度を修正することと、
ｇ）前記相違が第２の閾値よりも大きいときに、前記予測状態の前記少なくとも１つのパラメータ値に少なくとも部分的に基づいて、前記視覚状態の前記少なくとも１つのパラメータ値を修正することと、
ｈ）前記視覚状態に少なくとも部分的に基づいて、前記オブジェクトの第４の視覚表現をレンダリングすることと、
ｉ）前記オブジェクトの前記第４の視覚表現を前記第１の表示デバイス上に表示することと
を含む、１つ以上の非一過性コンピュータ読み取り可能な媒体。
【請求項３３】
前記予測状態は、第１の予測状態であり、前記相違は、第１の相違であり、前記方法は、
前記予測状態の前記少なくとも１つの速度に少なくとも部分的に基づいて、第２の予測状態を生成することであって、前記第２の予測状態は、少なくとも１つのパラメータ値を含む、ことと、
前記第２の予測状態の前記少なくとも１つのパラメータ値と前記視覚状態の前記少なくとも１つのパラメータ値との間の第２の相違を決定することと、
前記第２の相違が第２の閾値よりも大きいときに、前記第２の予測状態の前記少なくとも１つのパラメータ値に少なくとも部分的に基づいて、前記視覚状態の前記少なくとも１つのパラメータ値を修正することと、
前記視覚状態に少なくとも部分的に基づいて、前記オブジェクトの第５の視覚表現をレンダリングすることと、
前記オブジェクトの前記第５の視覚表現を前記第１の表示デバイス上に表示することと
をさらに含む、請求項３２に記載の１つ以上の非一過性コンピュータ読み取り可能な媒体。
【請求項３４】
前記相違が前記第２の閾値よりも大きいときに、前記予測状態の前記少なくとも１つのパラメータ値に少なくとも部分的に基づいて、前記視覚状態の少なくとも１つのパラメータ値を修正することは、
前記相違が、第３の閾値よりも大きいかどうかを判定することであって、前記第３の閾値は、前記第２の閾値よりも大きい、ことと、
前記相違が前記第３の閾値よりも大きいと判定されたときに、前記視覚状態の前記パラメータ値のうちの少なくとも１つを、前記予測状態の前記パラメータ値のうちの少なくとも１つに等しく設定することと、
前記相違が前記第３の閾値未満であると判定されたときに、前記視覚状態の前記少なくとも１つのパラメータ値および前記予測状態の前記少なくとも１つのパラメータ値に少なくとも部分的に基づいて、ブレンド状態を決定することであって、前記ブレンド状態は、少なくとも１つのパラメータ値を含む、ことと、前記視覚状態の前記少なくとも１つのパラメータ値を、前記ブレンド状態の前記パラメータ値のうちの少なくとも１つに等しく設定することと
をさらに含む、請求項３２に記載の１つ以上の非一過性コンピュータ読み取り可能な媒体。
【請求項３５】
複数のオブジェクトを備える分散シミュレーションを実現するためのシステムであって、前記システムは、
ネットワークを介して互いに接続された複数のコンピューティングデバイスを備え、前記複数のコンピューティングデバイスのそれぞれは、前記分散シミュレーションの一部分を実行するように構成されており、
前記複数のコンピューティングデバイスの第１のコンピューティングデバイスは、前記複数のオブジェクトの一部分を制御し、前記複数のコンピューティングデバイスのうちの第２のコンピューティングデバイスに、前記複数のオブジェクトの前記一部分の少なくとも１つのオブジェクトに関連する更新を送る前記分散シミュレーションの第１の部分を実行し、前記第２のコンピューティングデバイスは、
前記第１のコンピューティングデバイスから、前記第１のコンピューティングデバイスによって制御される前記複数のオブジェクトの前記一部分の第１のオブジェクトに関連する状態情報を含む、第１の更新を受け取ることと、
前記第１のオブジェクトに関連する前記状態情報に少なくとも部分的に基づいて、前記第１のオブジェクトの第１の視覚表現を生成することと、
前記第１の視覚表現を前記第２のコンピューティングデバイスに電気的に結合された表示デバイス上に表示することであって、前記第２のコンピューティングデバイスは、前記第１のオブジェクトおよび前記第１の視覚表現に関連付けられた視覚状態情報を含む、ことと、
前記第１のコンピューティングデバイスから、状態情報を含む第２の更新を受け取ることであって、前記第２の更新は、前記第１の更新の後に受け取られる、ことと、
前記第１の更新の前記状態情報に少なくとも部分的に基づいて、前記第１のオブジェクトの予測状態情報を決定することであって、前記予測状態情報は、少なくとも１つの速度値を含む、ことと、
前記第２の更新の前記状態情報が前記第１のオブジェクトに関連するかどうかを判定することと、
前記第２のコンピューティングデバイスが、前記第２の更新の前記状態情報が前記第１のオブジェクトに関連すると判定したときに、前記予測状態情報の少なくとも一部分を、前記第２の更新の前記状態情報の少なくとも一部分に等しく設定することと、
前記視覚状態情報と前記予測状態情報との間の相違を決定することと、
前記相違が第１の閾値よりも大きいときに、前記予測状態情報の前記少なくとも１つの速度値を修正することと、
前記相違が前記第２の閾値よりも大きいときに、前記予測状態情報に少なくとも部分的に基づいて、前記視覚状態情報を修正することと、
前記視覚状態情報に少なくとも部分的に基づいて、前記オブジェクトの第２の視覚表現をレンダリングすることと、
前記オブジェクトの前記第２の視覚表現を前記表示デバイス上に表示することと
を行うように構成されている、システム。
【請求項３６】
前記予測状態情報は、第１の予測状態情報であり、前記相違は、第１の相違であり、前記第２のコンピューティングデバイスは、
前記第１の予測状態情報の前記少なくとも１つの速度に少なくとも部分的に基づいて、第２の予測状態情報を生成することと、
前記視覚状態情報と前記第２の予測状態情報との間の第２の相違を決定することと、
前記第２の相違が前記第２の閾値よりも大きいときに、前記第２の予測状態情報に少なくとも部分的に基づいて、前記視覚状態情報を修正することと、
前記視覚状態情報に少なくとも部分的に基づいて、前記オブジェクトの第３の視覚表現をレンダリングすることと、
前記オブジェクトの前記第３の視覚表現を前記表示デバイス上に表示することと
を行うようにさらに構成されている、請求項３５に記載のシステム。
【請求項３７】
前記第２のコンピューティングデバイス上で実行する前記分散シミュレーションの前記一部分は、前記複数のオブジェクトの第２の部分を制御し、前記第２のコンピューティングデバイスは、前記第１のコンピューティングデバイスに、前記複数のオブジェクトの前記第２の部分の少なくとも１つのオブジェクトに関連する更新を送るようにさらに構成されている、請求項３５に記載のシステム。
【請求項３８】
前記第２のコンピューティングデバイス上で実行する前記分散シミュレーションの前記一部分は、前記複数のオブジェクトの第２の部分を制御し、前記第２のコンピューティングデバイスは、
ユーザインターフェースデバイスを介してユーザ入力を受け取ることであって、前記ユーザ入力が、前記複数のオブジェクトの前記第２の部分の選択されたオブジェクトの状態を変化させる、ことと、
前記選択されたオブジェクトに関連する状態情報を含む更新を作成することと、
前記第１のコンピューティングデバイスに、前記選択されたオブジェクトに関連する前記更新を送ることと
を行うようにさらに構成されている、請求項３５に記載のシステム。
【請求項３９】
前記ネットワークを介して前記複数のコンピューティングデバイスに接続されたサーバをさらに備え、前記第２のコンピューティングデバイス上で実行する前記分散シミュレーションの前記一部分は、前記複数のオブジェクトの第２の部分を制御し、前記第２のコンピューティングデバイスは、前記複数のオブジェクトの前記第２の部分の少なくとも１つのオブジェクトに関連する更新を前記サーバに送るようにさらに構成されており、これにより、前記サーバは、前記複数のコンピューティングデバイスの他のものに転送する、請求項３５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１１年５月３日に出願された米国仮出願第６１／４８２，１６２号の利益を主張するものであり、参照によりその全体が本明細書に組み込まれる。
【０００２】
本発明は、概して、複数のオペレータ／プレーヤステーションにわたってコヒーレントな仮想世界を提示する軍事シミュレータおよびマルチプレイヤーコンピュータゲームで利用されるもの等の、分散対話型シミュレーションを対象とする。
【背景技術】
【０００３】
分散対話型シミュレーションは、今日のビデオゲームの一般的な形態であるが、その起源は、１９８０年代および１９９０年代のＳＩＭＮＥＴ等の軍事シミュレーションである。分散対話型シミュレーションでは、複数のコンピュータステーションの間で仮想世界が作成および共有され、各ステーションが、制御手段および少なくとも１つのディスプレイを有する少なくとも１人のユーザをサポートする。
【０００４】
いくつかのシミュレーションにおいて、ステーションは、それぞれについて共通の時間基準を提供する分散クロック、例えばよく知られているネットワークタイムプロトコル（「ＮＴＰ」）を共有する。しかしながら、これは必要とされない。分散シミュレーションは、一般に（必ずではないが）定期的に（例えば、毎秒３０回の更新）、そして一般に（必ずではないが）各ステーションにおいて同じ率で進行する（例えば、他のステーションは、毎秒６０回の更新で実行し得る）。
【０００５】
ステーションはまた、空域および地形を含む、環境のモデルも共有する。地形は、地勢、建造物（内部空間を含み得る）、および水域を含む、静態であり得る。あるいは、地形は、非静態であり得、例えば、建造物の一部または全てが損傷を受け得る、地勢に（例えば、タイヤ跡、クレーター、または焼け跡によって）「痕跡が残り」得る、等である。この環境内には、例えば、車両、人、動物を含む、シミュレーションされた動的オブジェクトが配置される。これらの動的オブジェクトのアニメーションは、シミュレーションに生命があるように見せかける。
【０００６】
そのようなシミュレーションにおいて、各ステーションは、１つ以上のシミュレーションされたオブジェクトを管理する主要な役割を果たす。ステーションによって管理される各オブジェクトには、その挙動を判定するために、各ローカル時間増分について詳細なモデルが計算される。例えば、全地形対応車（「ＡＴＶ」）の詳細なモデルは、オペレータからのステアリングおよびペダルの入力を受け入れ得る（一般に、管理ステーションに対して１つのローカル）。ＡＴＶの詳細なモデルは、自動変速機、ＡＴＶのサスペンションシステムの地形との相互作用、タイヤと地形表面との間のトラクション、および可能性として、燃料消費、エンジンのオーバーヒート、または他の詳細、ならびにモデル化された不具合をシミュレーションするために、計算を実行し得る。一般に、十分なリアリズムには不可欠であるが、効率と引き換えに、この詳細レベルでのモデリングは、管理ステーションによって計算されることだけが必要であり、詳細なモデルによる結果は、分散対話型シミュレーションにおいて他のステーションに公表される。
【０００７】
ＡＴＶのオペレータは、人間のオペレータであり得るか、またはオペレータは、別の人間のプレーヤーが利用できないまたは必要でない場合に、味方または敵をシミュレーションする人工知能プログラム（「ＡＩ」）とすることができることに留意されたい。使用されるときに、ＡＩは、事実上、単に詳細なモデルのさらなる構成要素に過ぎず、管理ステーションは、状態を維持し、ＡＴＶ駆動ＡＩによって必要とされる増分シミュレーションを行うが、リモートステーションは、結果を受信するだけである。
【０００８】
一部の場合において、シミュレーションされているオブジェクトは、（人間、動物、またはエイリアン形のように）複雑で関節運動し得、運動モデルによる複雑なアニメーションを必要とするが、他のオブジェクトは、比較的単純であり（例えば、木枠または発射体）、その場合、より単純な弾道モデルが使用され得る。
【０００９】
しかしながら、管理ステーションから、更新とも呼ばれる、詳細なモデリングの結果を共有することに関しては問題がある。例えば、オブジェクトを制御しないリモートステーションに更新を分散させるのに時間が掛かり、また、この待ち時間のため、モデルに対する更新は、常に若干「古い」情報である。分散シミュレーションクロックが全てのステーションで正しく設定される場合のシミュレーションにおいて、任意の更新は、一般に最近のものであるが、いくらか過去のシミュレーション時間でタイムスタンプされる。しかしながら、リジッドな時刻管理システムは、視覚アーチファクトをもたらす共鳴をモデルに誘導する可能性がある。加えて、精密なクロックを維持することは、あるときには不必要な複雑さの原因となり、エラーの原因となることもある。さらに、不安定なネットワークを通じて、更新が喪失または遅延され得、不規則な待ち時間で到着し得る。加えて、帯域幅の制約およびシミュレーションの中のオブジェクトの数は、各オブジェクトに送ることができる更新の数を制限し得、よって、管理ステーションが詳細なシミュレーションを計算する度に、更新がリモートステーションに提供されない。
【００１０】
各ステーションで、ディスプレイは、プレーヤーに仮想世界を提示する。ディスプレイは、一般に、リモート管理のオブジェクトに更新が到着するよりも頻繁にリフレッシュされるが、単に更新が到着する度にリモート管理のオブジェクトの表示を変化させることは、リモート管理のオブジェクトをギクシャクさせたり、非現実的に見えさせたりする。これを多少なりとも解消するために、オブジェクトの更新は、更新が対応する時間と関連付けられ、更新の受け側は、更新の後の適時にどのようにオブジェクトを表示するのかを外挿することができる。
【００１１】
これを達成するために、更新は、特定の時間にオブジェクトの状態を表さなければならない。状態としては、例えば、オブジェクトの位置および方向（一般に、必ずではないが、６つの座標軸：ｘ、ｙ、ｚ、ロール、ピッチ、およびヨーを含む）、および異なる値を有する他の特性（例えば、ヘッドライトが点灯しているかどうか、車両のエンジンから煙が出ているかどうか、手榴弾が爆発する時間）が挙げられ得る。特定の時間は、状態が現在であったときに対応する。
【００１２】
オブジェクトの状態がまさに含むものは、オブジェクトの性質に依存する。複雑な関節運動オブジェクト、例えば、動物の場合、状態は、オブジェクトの骨格の関節運動、またはそのような関節運動を要約するアニメーションサイクルへのインデックスを含み得る。
【００１３】
一部の場合において、オブジェクトは、複数の動作モードを有し得、例えば、「動物」オブジェクトが生きているときには、アニメーションサイクルによって駆動され得るが、ハンティングシミュレーションにあるように、動物が死んだときには、関節運動体の動作モードは、弛緩した運動モデルになる。例えば、身体は弱々しくなるが、骨格によって課される制限は制御された状態を維持する。そのような複数の制御モードを有するオブジェクトについて、状態はさらに、制御モードが使用されている識別情報を含み得る。
【００１４】
本明細書で、「状態」は、単なる物理的な位置、方向（回転）以外の多くの特性を含み得る。アニメーションサイクル、歩行サイクル等へのインデックス等の、これらのいくつかは、予測のために有用に外挿され得る。しかしながら、車両のヘッドライトが点灯しているかどうか、または警笛がなっているかどうか等のいくつかの特性は、単に自明に外挿される。例えば、ライトが点灯されると、それらは、更新がライトを消灯すると述べるまで点灯したままである。
【００１５】
状態はまた、改善された精度を伴う以降の状態、例えば、直線軸または回転軸上の速度、および直線軸または回転軸上の加速度を外挿するのに有用な情報も含み得る。一方で、明確な速度または加速度を提供するために、例えば、最後の２つの更新の時間の差によって分けられる最後の２つの更新にわたる位置の違いが、結果を改善することができるように速度を導き出すことによって、そのようなヒントを伴わずに、外挿を行うことができる。
【００１６】
本明細書で、「状態」は、状態情報、および／または状態に関して取得される１つ以上の計算結果を含み得る。
【００１７】
ステーションで管理されるオブジェクトのシミュレーションの各繰り返しについて、オブジェクトの種々の自由度のいずれかが提供された場合、新しい状態が、速度値および／または加速度値を含む、オペレータの入力および詳細なモデル実行から生じる。
【００１８】
しかしながら、オブジェクトの状態は、１回の繰り返しに１回よりも少ない頻度で、管理ステーションから他のステーションのそれぞれに送られる。例えば、管理ステーションが毎秒３０回、オブジェクトのモデルを更新するものであった場合、オブジェクトが重要でない、遠くにある、例外的に一致する、もしくは単に緩やかに変化する場合、または更新すべき多数のオブジェクトがある、および／もしくは通信の帯域幅が非常に限定されている場合、更新は、毎秒５回だけ、またはさらに少ない頻度（例えば、毎秒２回）で他のステーションに送られ得る。
【００１９】
管理ステーションから受け取る更新に基づいて、外挿手法は、リモート管理のオブジェクトの状態に関する最良の利用可能な情報、および（少なくとも、近い将来について）その運動を予測するための最良の利用可能な情報を提供する。それでも、外挿された状態が、以降の更新で記述される状態を大幅に通り過ぎた、またはそれに届かなかったときに、仮現運動における不快な不連続性が起こる可能性がある。これは、以前の更新からの外挿が予想しない、オペレータが突然回転した、急ブレーキをかけた、衝突を回避するために身をかわしたもしくは向きを変えた等のため、しばしば起こる。
【００２０】
シミュレーション用語において、オブジェクトの現在の状態の最良の評価を提供するのは、「予測子」の役目であり、また、できる限り見た目に美しいように外挿された状態の見かけの不連続性を隠すための「修正子」の役目である。
【００２１】
残念なことに、これまで適用されている予測子−修正子システムは、審美的な魅力、オブジェクトタイプの幅広い組み合わせもしくは同じオブジェクトタイプであるが、多種多様な条件下で、見かけの現実的な挙動が不十分である。結果は、リモート管理のオブジェクトの予測不可能なぎくしゃくした行動または挙動である。これは、照準を合わせて発射するオブジェクトが主要なオブジェクトであるシミュレーションでは、目標設定を困難にし、いらいらさせる可能性がある。同様に、運転または飛行シミュレーションでは、リモート管理のオブジェクトを追跡することを困難にし、いらいらさせる可能性がある。故に、分散対話型シミュレーションにおけるリモート管理のオブジェクトの動きを表す、より良好な方法に対する必要性がある。本出願は、以下の詳細な説明および添付図面から明らかになるであろう、このような利点および他の利点を提供する。
【発明の概要】
【課題を解決するための手段】
【００２２】
実施形態は、複数のコンピューティングデバイスで分散シミュレーションをほぼ同時に提示するための方法を含む。複数のコンピューティングデバイスは、分散シミュレーションの第１の部分を実行する第１のコンピューティングデバイスを含む。第１の部分は、オブジェクトを制御する。複数のコンピューティングデバイスは、分散シミュレーションの第２の部分を実行する、第２のコンピューティングデバイスを含む。第２の部分は、第１の表示デバイス上に表示可能な、オブジェクトの第１の視覚表現を生成する。第２のコンピューティングデバイスは、オブジェクトおよび第１の視覚表現と関連付けられる視覚状態を含む。視覚状態は、少なくとも１つのパラメータ値を含む。第２のコンピューティングデバイスは、オブジェクトの第２の視覚表現と関連付けられる以前の状態を含む第１のコンピューティングデバイスから、以前の更新を受け取っている。第２のコンピューティングデバイスは、以前の状態に少なくとも部分的に基づいて、オブジェクトの予測状態を生成する。予測状態は、少なくとも１つの速度と、少なくとも１つのパラメータ値とを含む。第２のコンピューティングデバイスは、第１のコンピューティングデバイスから、オブジェクトの第３の視覚表現と関連付けられる新しい状態を含む、更新を受け取る。新しい状態は、少なくとも１つのパラメータ値を含む。第２のコンピューティングデバイスは、予測状態の少なくとも１つのパラメータ値を、新しい状態の少なくとも１つのパラメータ値に等しく設定し、予測状態の少なくとも１つのパラメータ値と視覚状態の少なくとも１つのパラメータ値との間の相違を決定する。相違が第１の閾値よりも大きいときに、第２のコンピューティングデバイスは、予測状態の少なくとも１つの速度を修正する。相違が第２の閾値よりも大きいときに、第２のコンピューティングデバイスは、予測状態の少なくとも１つのパラメータ値に少なくとも部分的に基づいて、視覚状態の少なくとも１つのパラメータ値を修正する。第２のコンピューティングデバイスは、視覚状態に少なくとも部分的に基づいて、オブジェクトの第４の視覚表現をレンダリングし、オブジェクトの第４の視覚表現を第１の表示デバイス上に表示する。
【００２３】
オブジェクトの第３の視覚表現は、第１のコンピューティングデバイスによって、第２の表示デバイス上に表示され得、オブジェクトの第４の視覚表現は、オブジェクトの第３の視覚表現が第１のコンピューティングデバイスによって第２の表示デバイス上に表示されるのとほぼ同時に、第２のコンピューティングデバイスによって第１の表示デバイス上に表示される。
【００２４】
いくつかの実施形態において、予測状態は、第１の予測状態であり、相違は、第１の相違である。そのような実施形態において、第２のコンピューティングデバイスは、予測状態の少なくとも１つの速度に少なくとも部分的に基づいて、第２の予測状態（少なくとも１つのパラメータ値を含む）を生成し得る。第２の相違が第２の閾値よりも大きいときに、第２のコンピューティングデバイスは、第２の予測状態の少なくとも１つのパラメータ値に少なくとも部分的に基づいて、視覚状態の少なくとも１つのパラメータ値を修正し得る。そのような実施形態において、第２のコンピューティングデバイスは、視覚状態に少なくとも部分的に基づいて、オブジェクトの第５の視覚表現をレンダリングし、オブジェクトの第５の視覚表現を第１の表示デバイス上に表示する。
【００２５】
第２のコンピューティングデバイスは、第２のコンピューティングデバイスによってアクセス可能なストレージデバイスから、第１の閾値を取得し得る。オブジェクトは、タイプを有し得、第１の閾値は、ストレージデバイスに記憶されるテーブルに記憶され得る。そのような実施形態において、第１の閾値は、テーブルの中のオブジェクトのタイプと関連付けられる。いくつかの実施形態において、新しい状態の少なくとも１つのパラメータ値は、少なくとも１つの速度を含み、また、予測状態の少なくとも１つの速度を修正することは、オブジェクトのタイプと関連付けられるバンプ値を取得することと、バンプ値、相違、および新しい状態の少なくとも１つの速度の関数として、予測状態の少なくとも１つの速度を算出することとを含む。
【００２６】
いくつかの実施形態において、視覚状態の少なくとも１つのパラメータ値は、少なくとも１つの速度を含み、予測状態の少なくとも１つのパラメータ値は、少なくとも１つの速度を含む。そのような実施形態において、予測状態の少なくとも１つのパラメータ値と、視覚状態の少なくとも１つのパラメータ値との間の相違を決定することは、予測状態の少なくとも１つの速度と、視覚状態の少なくとも１つの速度との間の相違を決定することを含み得る。新しい状態の少なくとも１つのパラメータ値が少なくとも１つの速度を含むときに、予測状態の少なくとも１つの速度は、新しい状態の少なくとも１つの速度に等しく設定され得る。
【００２７】
いくつかの実施形態において、相違が第２の閾値よりも大きいときに、予測状態の少なくとも１つのパラメータ値に少なくとも部分的に基づいて、視覚状態の少なくとも１つのパラメータ値を修正することは、相違が第２の閾値よりも大きい第３の閾値よりも大きいかどうかを判定することを含む。相違が第３の閾値よりも大きいと判定されたときに、第２のコンピューティングデバイスは、視覚状態の少なくとも１つのパラメータ値を、予測状態の少なくとも１つのパラメータ値に等しく設定し得る。第２のコンピューティングデバイスは、相違が第３の閾値未満であるときに、ブレンド状態を決定し得る。ブレンド状態は、視覚状態の少なくとも１つのパラメータ値および予測状態の少なくとも１つのパラメータ値に少なくとも部分的に基づき得る。ブレンド状態は、少なくとも１つのパラメータ値を含み得、視覚状態の少なくとも１つのパラメータ値は、ブレンド状態の少なくとも１つのパラメータ値に等しく設定され得る。
【００２８】
いくつかの実施形態において、視覚状態の少なくとも１つのパラメータ値は、位置情報および方向情報のうちの少なくとも１つを含み、予測状態の少なくとも１つのパラメータ値は、位置情報および方向情報のうちの少なくとも１つを含む。そのような実施形態において、予測状態の少なくとも１つのパラメータ値と、視覚状態の少なくとも１つのパラメータ値との間の相違を決定することは、予測状態の位置情報および方向情報のうちの少なくとも１つと、視覚状態の位置情報および方向情報のうちの少なくとも１つとの間の相違を決定することを含み得る。新しい状態の少なくとも１つのパラメータ値が、位置情報および方向情報のうちの少なくとも１つを含むときに、予測状態の位置情報および方向情報のうちの少なくとも１つは、新しい状態の位置情報および方向情報のうちの少なくとも１つに等しく設定され得る。
【００２９】
相違が第２の閾値よりも大きいときに、予測状態の少なくとも１つのパラメータ値に少なくとも部分的に基づいて、視覚状態の少なくとも１つのパラメータ値を修正することは、相違が第３の閾値よりも大きいかどうかを判定することを含み得、ここで、第３の閾値は、第２の閾値よりも大きい。相違が第３の閾値よりも大きいと判定されたときに、視覚状態の位置情報および方向情報のうちの少なくとも１つは、予測状態の位置情報および方向情報のうちの少なくとも１つに等しく設定され得る。
【００３０】
オブジェクトは、タイプを有し、第３の閾値は、テーブルに記憶され、テーブルの中のオブジェクトタイプと関連付けられ得る。第２のコンピューティングデバイスは、テーブルから第３の閾値を取得し得る。
【００３１】
相違が第２の閾値よりも大きいときに、予測状態の少なくとも１つのパラメータ値に少なくとも部分的に基づいて、視覚状態の少なくとも１つのパラメータ値を修正することは、相違が第３の閾値未満であるときに、ブレンド状態を決定することを含み得る。ブレンド状態は、視覚状態の位置情報および方向情報のうちの少なくとも１つ、および予測状態の位置情報および方向情報のうちの少なくとも１つに少なくとも部分的に基づき得る。そのような実施形態において、ブレンド状態は、位置情報および方向情報のうちの少なくとも１つを含む。ブレンド状態が決定された後に、視覚状態の位置情報および方向情報のうちの少なくとも１つは、ブレンド状態の位置情報および方向情報のうちの少なくとも１つに等しく設定され得る。
【００３２】
ブレンド状態は、オブジェクトがタイプを有する実施形態において、オブジェクトのタイプと関連付けられる１つ以上のパラメータ値に少なくとも部分的に基づいて決定され得る。第２および第３の閾値は、テーブルに記憶され、テーブルの中のオブジェクトタイプと関連付けられ得る。そのような実施形態において、第２のコンピューティングデバイスは、テーブルから第２および第３の閾値を取得し得る。
【００３３】
新しい状態の少なくとも１つのパラメータ値は、オブジェクトの制御モードを含み得、第２のコンピューティングデバイスは、オブジェクトの制御モードに少なくとも部分的に基づいて、複数の第１および第２の閾値から、第２および第３の閾値の少なくとも１つを選択し得る。セクション（複数可）も、オブジェクトのタイプに少なくとも部分的に基づき得る。
【００３４】
相違が第２の閾値よりも大きいときに、予測状態の少なくとも１つのパラメータ値に少なくとも部分的に基づいて、視覚状態の少なくとも１つのパラメータ値を修正することは、ローカル衝突状態を決定し、ローカル衝突状態に基づいて視覚状態を修正することを含む。ローカル衝突状態に基づいて、分散シミュレーションが地形を含む場合、第２のコンピューティングデバイスは、ローカル衝突状態を決定すること、および、オブジェクトが地形に実質的に相互貫入しなくなるまで、ローカル衝突状態に基づいて、視覚状態を修正することを繰り返し得る。
【００３５】
第１のコンピューティングデバイス上で実行する分散シミュレーションの一部分は、複数のオブジェクトの一部分を制御し、第２のコンピューティングデバイスに、複数のオブジェクトの一部分の少なくとも１つのオブジェクトに関連する更新を送信し得る。そのような実施形態において、第２のコンピューティングデバイスは、第１のコンピューティングデバイスから、第１のコンピューティングデバイスによって制御される複数のオブジェクトの一部分の第１のオブジェクトに関連する状態情報含む、以前の更新を受け取る。第２のコンピューティングデバイスは、第１のオブジェクトに関連する状態情報に少なくとも部分的に基づいて、第１のオブジェクトの第１の視覚表現を生成し、表示する。第２のコンピューティングデバイスは、第１のオブジェクトおよび第１の視覚表現と関連付けられる視覚状態情報を含む。第２のコンピューティングデバイスは、第１のコンピューティングデバイスから、状態情報を含む新しい更新を受け取り、新しい更新は、以前の更新の後に受け取られている。第２のコンピューティングデバイスは、以前の更新の状態情報に少なくとも部分的に基づいて、第１のオブジェクトの予測状態情報を決定する。予測状態情報は、少なくとも１つの速度値を含む。第２のコンピューティングデバイスは、新しい更新の状態情報が、第１のオブジェクトに関連するかどうかを判定する。新しい更新の状態情報が第１のオブジェクトに関連するときに、第２のコンピューティングデバイスは、予測状態情報の少なくとも一部分を、新しい更新の状態情報の少なくとも一部分に等しく設定する。第２のコンピューティングデバイスは、視覚状態情報と予測状態情報との間の相違を決定する。相違が第１の閾値よりも大きいときに、第２のコンピューティングデバイスは、予測状態情報の少なくとも１つの速度値を修正し、相違が第２の閾値よりも大きいときに、第２のコンピューティングデバイスは、予測状態情報に少なくとも部分的に基づいて、視覚状態情報を修正する。第２のコンピューティングデバイスは、視覚状態情報に少なくとも部分的に基づいて、オブジェクトの第２の視覚表現をレンダリングし、オブジェクトの第２の視覚表現を表示デバイス上に表示する。
【００３６】
いくつかの実施形態において、予測状態情報は、第１の予測状態情報であり、相違は、第１の相違である。そのような実施形態において、第２のコンピューティングデバイスは、第１の予測状態情報の少なくとも１つの速度に少なくとも部分的に基づいて、第２の予測状態情報を生成し、視覚状態情報と第２の予測状態情報との間の第２の相違を決定する。第２の相違が第２の閾値よりも大きいときに、第２のコンピューティングデバイスは、第２の予測状態情報に少なくとも部分的に基づいて、視覚状態情報を修正する。第２のコンピューティングデバイスは、視覚状態情報に少なくとも部分的に基づいて、オブジェクトの第３の視覚表現をレンダリングし、オブジェクトの第３の視覚表現を表示デバイス上に表示する。
【００３７】
いくつかの実施形態において、第２のコンピューティングデバイス上で実行する分散シミュレーションの一部分は、複数のオブジェクトの第２の部分を制御する。そのような実施形態において、第２のコンピューティングデバイスは、第１のコンピューティングデバイスに、複数のオブジェクトの第２の部分の少なくとも１つのオブジェクトに関連する更新を送る。第２のコンピューティングデバイスは、ユーザインターフェースデバイスを介して、複数のオブジェクトの第２の部分の選択されたオブジェクトの状態を変化させる、ユーザ入力を受け取り得る。第２のコンピューティングデバイスは、選択されたオブジェクトに関連する状態情報を含む更新を作成し、第１のコンピューティングデバイスに、選択されたオブジェクトに関連する更新を送り得る。いくつかの実施形態において、サーバは、ネットワークを通じて複数のコンピューティングデバイスに接続される。そのような実施形態において、第２のコンピューティングデバイスは、それによって複数のコンピューティングデバイスの他のものに転送するためのサーバに、複数のオブジェクトの第２の部分の少なくとも１つのオブジェクトに関連する更新を送り得る。
【００３８】
いくつかの実施形態は、第２のコンピューティングデバイスが、第１のコンピューティングデバイスから以前の更新を受け取る方法を含む。以前の更新は、第１のコンピューティングデバイスによって制御される複数のオブジェクトの一部分の第１のオブジェクトに関連する状態情報を含む。第２のコンピューティングデバイスは、第１のオブジェクトに関連する状態情報に少なくとも部分的に基づいて、第１のオブジェクトの第１の視覚表現を生成し、表示する。視覚状態情報は、第１のオブジェクトおよび第１の視覚表現と関連付けられる。第２のコンピューティングデバイスは、以前の更新の後に、第１のコンピューティングデバイスから、新しい更新を受け取る。新しい更新は、状態情報を含む。第２のコンピューティングデバイスは、以前の更新の状態情報に少なくとも部分的に基づいて、第１のオブジェクトの予測状態情報を決定する。第２のコンピューティングデバイスは、新しい更新の状態情報が、第１のオブジェクトに関連するかどうかを判定し、新しい更新の状態情報が第１のオブジェクトに関連するときに、第２のコンピューティングデバイスは、予測状態情報の少なくとも一部分を、新しい更新の状態情報の少なくとも一部分に等しく設定する。第２のコンピューティングデバイスは、視覚状態情報と予測状態情報との間の相違を決定する。相違が第１の閾値よりも大きいときに、第２のコンピューティングデバイスは、視覚状態情報の少なくとも一部分を、予測状態情報の少なくとも一部分に等しく設定する。相違が第１の閾値未満であり、かつ第２の閾値よりも大きいときに、第２のコンピューティングデバイスは、視覚状態情報および予測状態情報に少なくとも部分的に基づいて、ブレンド状態情報を決定し、視覚状態情報の少なくとも一部分を、ブレンド状態情報の少なくとも一部分に等しく設定する。第１の閾値は、第２の閾値よりも大きい。第２のコンピューティングデバイスは、視覚状態情報に少なくとも部分的に基づいて、第１のオブジェクトの第２の視覚表現をレンダリングし、第１のオブジェクトの第２の視覚表現を表示デバイス上に表示する。
【００３９】
いくつかの実施形態は、ネットワークを通じて互いに接続され、それぞれが複数のオブジェクトを含む分散シミュレーションの一部分を実行する、複数のコンピューティングデバイスとともに使用する方法を含む。一部分は、複数のオブジェクトの第１の部分を制御し、かつ複数のうちの第２のコンピューティングデバイスに、複数のオブジェクトの第１の部分の少なくとも１つのオブジェクトに関連する更新を送る、複数のうちの第１のコンピューティングデバイス上で実行する。一部分は、複数のオブジェクトの第２の部分を制御し、かつ第１のコンピューティングデバイスに、複数のオブジェクトの第２の部分の少なくとも１つのオブジェクトに関連する更新を送る、第２のコンピューティングデバイス上で実行する。第２のコンピューティングデバイスは、複数のオブジェクトの第１の部分の第１のオブジェクトの第１の視覚表現、および複数のオブジェクトの第２の部分の第２のオブジェクトの第１の視覚表現をレンダリングする。第１のオブジェクトの第１の視覚表現は、視覚状態情報と関連付けられる。第２のコンピューティングデバイスは、ユーザ入力デバイスを介して、第２のオブジェクトの第１の視覚表現を変化させる入力を受け取り、時折、第１のコンピューティングデバイスから、第２のコンピューティングデバイスによって使用可能な更新を受け取って、第１のオブジェクトの第１の視覚表現を修正する。第１のコンピューティングデバイスから受け取る更新のそれぞれは、第１のオブジェクトに関連する状態情報を含む。第２のオブジェクトの第１の視覚表現が変化するにつれて、第２のコンピューティングデバイスは、時折、ネットワークを通じて、第１のコンピューティングデバイスに更新を送る。更新は、第２のオブジェクトの第２の視覚表現を修正するための、第１のコンピューティングデバイスによって使用可能な第２のオブジェクトに関連する状態情報を含む。第２のコンピューティングデバイスは、時折、少なくとも１つの速度を含む第１のオブジェクトの予測状態情報を生成する。第２のコンピューティングデバイスで更新のそれぞれが受け取られた後に、第２のコンピューティングデバイスは、予測状態情報を更新の状態情報に等しく設定する。第２のコンピューティングデバイスは、第１のオブジェクトの第１の視覚表現と関連付けられる予測状態情報と視覚状態情報との間の相違を決定する。相違が第１の閾値よりもより大きいときに、第２のコンピューティングデバイスは、少なくとも１つの速度を変化させることによって、予測状態情報を更新する。相違が第２の閾値よりも大きいときに、第２のコンピューティングデバイスは、予測状態情報に少なくとも部分的に基づいて、第１のオブジェクトの第１の視覚表現と関連付けられる視覚状態情報を修正する。第２のコンピューティングデバイスは、視覚状態情報に少なくとも部分的に基づいて、第２のオブジェクトの第１の視覚表現を再レンダリングする。
【００４０】
第１のオブジェクトは、タイプを有し得、第１および第２の閾値は、テーブルに記憶され、テーブルの中のオブジェクトのタイプと関連付けられ得る。そのような実施形態において、第２のコンピューティングデバイスは、テーブルの中の第１および第２の閾値を調べ得る。
【００４１】
相違が第２の閾値よりも大きいときに、予測状態情報に少なくとも部分的に基づいて、第１のオブジェクトの第１の視覚表現と関連付けられる視覚状態情報を修正することは、相違が第３の閾値よりも大きいときに、視覚状態情報を予測状態情報に等しく設定することを含み得る。一方で、相違が第３の閾値未満であり、かつ第２の閾値よりも大きいときに、第２のコンピューティングデバイスは、視覚状態情報および予測状態情報に少なくとも部分的に基づいて、ブレンド状態情報を決定し、視覚状態情報をブレンド状態情報に等しく設定し得る。そのような実施形態において、第３の閾値は、第２の閾値よりも大きい。
【００４２】
実施形態は、１つ以上のプロセッサによって実行されたときに、上で説明した方法の１つ以上を行うコンピュータが実行可能な命令を記憶する、１つ以上のコンピュータが読み出し可能な媒体を含む。例えば、１つ以上のプロセッサによって実行されたときに、第１のコンピューティングデバイスとともに使用する方法を行う、コンピュータが実行可能な命令を記憶する１つ以上のコンピュータが読み出し可能な媒体は、分散シミュレーションの第１の部分を実行し、第１の部分は、オブジェクトを制御する。本方法は、分散シミュレーションの第２の部分を実行することを含み、第２の部分は、第１の表示デバイス上に表示可能な、オブジェクトの第１の視覚表現を生成する。視覚状態は、オブジェクトおよび第１の視覚表現と関連付けられる。視覚状態は、少なくとも１つのパラメータ値を含み得る。本方法はさらに、第１のコンピューティングデバイスから受け取られる以前の更新に含まれる以前の状態に少なくとも部分的に基づいて、オブジェクトの予測状態を生成することを含み得る。以前の状態は、オブジェクトの第２の視覚表現と関連付けられ得る。予測状態は、少なくとも１つの速度および少なくとも１つのパラメータ値を含む。本方法はさらに、第１のコンピューティングデバイスから更新を受け取ることを含み得る。更新は、オブジェクトの第３の視覚表現と関連付けられる新しい状態を含み得る。新しい状態は、少なくとも１つのパラメータ値を含み得る。本方法はさらに、予測状態の少なくとも１つのパラメータ値を、新しい状態の少なくとも１つのパラメータ値に等しく設定することと、予測状態の少なくとも１つのパラメータ値と視覚状態の少なくとも１つのパラメータ値との間の相違を決定することとを含み得る。相違が第１の閾値よりも大きいときに、予測状態の少なくとも１つの速度が修正される。相違が第２の閾値よりも大きいときに、予測状態の少なくとも１つのパラメータ値に少なくとも部分的に基づいて、視覚状態の少なくとも１つのパラメータ値が修正される。本方法はさらに、視覚状態に少なくとも部分的に基づいて、オブジェクトの第４の視覚表現をレンダリングすることと、オブジェクトの第４の視覚表現を第１の表示デバイス上に表示することを含み得る。
【００４３】
予測状態は、第１の予測状態であり得、相違は、第１の相違であり得る。そのような実施態様において、本方法はさらに、予測状態の少なくとも１つの速度に少なくとも部分的に基づいて、第２の予測状態を生成することを含み得る。第２の予測状態は、少なくとも１つのパラメータ値を含む。第２の相違が第２の閾値よりも大きいときに、視覚状態の少なくとも１つのパラメータ値が、第２の予測状態の少なくとも１つのパラメータ値に少なくとも部分的に基づいて修正される。本方法はさらに、視覚状態に少なくとも部分的に基づいて、オブジェクトの第５の視覚表現をレンダリングすることと、オブジェクトの第５の視覚表現を第１の表示デバイス上に表示することとを含み得る。
【００４４】
相違が第２の閾値よりも大きいときに、予測状態の少なくとも１つのパラメータ値に少なくとも部分的に基づいて、視覚状態の少なくとも１つのパラメータ値を修正することは、相違が第３の閾値よりも大きいかどうかを判定することを含み得る。第３の閾値は、第２の閾値よりも大きい。相違が第３の閾値よりも大きいと判定されたときに、視覚状態のパラメータ値のうちの少なくとも１つが、予測状態のパラメータ値のうちの少なくとも１つに等しく設定される。一方で、相違が第３の閾値未満であると判定されたときに、視覚状態の少なくとも１つのパラメータ値および予測状態の少なくとも１つのパラメータ値に少なくとも部分的に基づいて、ブレンド状態が決定される。ブレンド状態は、少なくとも１つのパラメータ値を含む。視覚状態の少なくとも１つのパラメータ値は、ブレンド状態のパラメータ値のうちの少なくとも１つに等しく設定される。
【００４５】
実施形態は、複数のオブジェクトを含む分散シミュレーションを実現するためのシステムを含む。本システムは、ネットワークを通じて互いに接続される複数のコンピューティングデバイスを含み、各コンピューティングデバイスは、分散シミュレーションの一部分を実行するように構成される。複数のコンピューティングデバイスの第１のコンピューティングデバイスは、複数のオブジェクトの一部分を制御し、複数のうちの第２のコンピューティングデバイスに、複数のオブジェクトの一部分の少なくとも１つのオブジェクトに関連する更新を送る、分散シミュレーションの第１の部分を実行する。第２のコンピューティングデバイスは、第１のコンピューティングデバイスから、第１のコンピューティングデバイスによって制御される複数のオブジェクトの一部分の第１のオブジェクトに関連する状態情報を含む、以前の更新を受け取るように構成され得る。第２のコンピューティングデバイスはさらに、第１のオブジェクトに関連する状態情報に少なくとも部分的に基づいて、第１のオブジェクトの第１の視覚表現を生成し、第１の視覚表現を表示デバイス上に表示するように構成され得る。第２のコンピューティングデバイスは、第１のオブジェクトおよび第１の視覚表現と関連付けられる視覚状態情報を有する。第２のコンピューティングデバイスはさらに、第１のコンピューティングデバイスから、状態情報を含む新しい更新を受け取るように構成され得、新しい更新は、以前の更新の後に受け取られている。第２のコンピューティングデバイスはさらに、以前の更新の状態情報に少なくとも部分的に基づいて、第１のオブジェクトの予測状態情報を決定するように構成され得、予測状態情報は、少なくとも１つの速度値を含む。第２のコンピューティングデバイスはさらに、新しい更新の状態情報が第１のオブジェクトに関連するかどうかを判定するように構成され得、新しい更新の状態情報が第１のオブジェクトに関連するときに、予測状態情報の少なくとも一部分を、新しい更新の状態情報の少なくとも一部分に等しく設定する。第２のコンピューティングデバイスはさらに、視覚状態情報と予測状態情報との間の相違を決定するように構成され得る。相違が第１の閾値よりも大きいときに、第２のコンピューティングデバイスは、予測状態情報の少なくとも１つの速度値を修正し得る。相違が第２の閾値よりも大きいときに、第２のコンピューティングデバイスは、予測状態情報に少なくとも部分的に基づいて、視覚状態情報を修正し得る。第２のコンピューティングデバイスは、視覚状態情報に少なくとも部分的に基づいて、オブジェクトの第２の視覚表現をレンダリングし、オブジェクトの第２の視覚表現を表示デバイス上に表示する。
【００４６】
予測状態情報が第１の予測状態情報である実施形態において、相違は、第１の相違であり、第２のコンピューティングデバイスはさらに、第１の予測状態情報の少なくとも１つの速度に少なくとも部分的に基づいて、第２の予測状態情報を生成し、視覚状態情報と第２の予測状態情報との間の第２の相違を決定するように構成され得る。第２の相違が第２の閾値よりも大きいときに、第２のコンピューティングデバイスは、第２の予測状態情報に少なくとも部分的に基づいて、視覚状態情報を修正し得る。第２のコンピューティングデバイスは、視覚状態情報に少なくとも部分的に基づいて、オブジェクトの第３の視覚表現をレンダリングし、オブジェクトの第３の視覚表現を表示デバイス上に表示する。
【００４７】
第２のコンピューティングデバイス上で実行する分散シミュレーションの一部分は、複数のオブジェクトの第２の部分を制御し得る。そのような実施形態において、第２のコンピューティングデバイスはさらに、第１のコンピューティングデバイスに、複数のオブジェクトの第２の部分の少なくとも１つのオブジェクトに関連する更新を送るように構成され得る。第２のコンピューティングデバイスは、ユーザインターフェースデバイスを介してユーザ入力を受け取り、ユーザ入力が、複数のオブジェクトの第２の部分の選択されたオブジェクトの状態を変化させ、選択されたオブジェクトに関連する状態情報を含む更新作成し、第１のコンピューティングデバイスに、選択されたオブジェクトに関連する更新を送るように構成される。本システムは、ネットワークを通じて複数のコンピューティングデバイスに接続される、サーバを含み得る。第２のコンピューティングデバイスは、それによって複数のコンピューティングデバイスの他のものに転送するためのサーバに、複数のオブジェクトの第２の部分の少なくとも１つのオブジェクトに関連する更新を送るように構成され得る。
本発明は、例えば、以下を提供する。
（項目１）
複数のコンピューティングデバイスで分散シミュレーションをほぼ同時に提示し、前記複数のコンピューティングデバイスが、前記分散シミュレーションの第１の部分を実行する、第１のコンピューティングデバイスを備え、前記第１の部分が、オブジェクトを制御する、方法であって、
ａ）前記複数のうちの第２のコンピューティングデバイス上で、前記分散シミュレーションの第２の部分を実行することであって、前記第２の部分は、第１の表示デバイス上に表示可能な、前記オブジェクトの第１の視覚表現を生成し、前記第２のコンピューティングデバイスは、前記オブジェクトおよび前記第１の視覚表現と関連付けられる視覚状態を備え、前記視覚状態は、少なくとも１つのパラメータ値を含み、前記第２のコンピューティングデバイスは、前記オブジェクトの第２の視覚表現と関連付けられる以前の状態を含む前記第１のコンピューティングデバイスから、以前の更新を受け取っている、実行することと、
ｂ）前記第２のコンピューティングデバイスで、前記以前の状態に少なくとも部分的に基づいて、前記オブジェクトの予測状態を生成することであって、前記予測状態は、少なくとも１つの速度と、少なくとも１つのパラメータ値とを含む、生成することと、
ｃ）前記第２のコンピューティングデバイスで、前記第１のコンピューティングデバイスから更新を受け取ることであって、前記更新は、前記オブジェクトの第３の視覚表現と関連付けられる新しい状態を含み、前記新しい状態は、少なくとも１つのパラメータ値を含む、受け取ることと、
ｄ）前記第２のコンピューティングデバイスで、前記予測状態の前記少なくとも１つのパラメータ値を、前記新しい状態の前記少なくとも１つのパラメータ値と等しく設定することと、
ｅ）前記第２のコンピューティングデバイスによって、前記予測状態の前記少なくとも１つのパラメータ値と、前記視覚状態の前記少なくとも１つのパラメータ値との間の相違を決定することと、
ｆ）前記相違が第１の閾値よりも大きいときに、前記第２のコンピューティングデバイスによって、前記予測状態の前記少なくとも１つの速度を修正することと、
ｇ）前記相違が第２の閾値よりも大きいときに、前記第２のコンピューティングデバイスによって、前記予測状態の前記少なくとも１つのパラメータ値に少なくとも部分的に基づいて、前記視覚状態の少なくとも１つのパラメータ値を修正することと、
ｈ）前記第２のコンピューティングデバイスによって、前記視覚状態に少なくとも部分的に基づいて、前記オブジェクトの第４の視覚表現をレンダリングすることと、
ｉ）前記第２のコンピューティングデバイスによって、前記オブジェクトの前記第４の視覚表現を前記第１の表示デバイス上に表示することと、
を含む、方法。
（項目２）
前記予測状態は、第１の予測状態であり、前記相違は、第１の相違であり、前記方法はさらに、
前記第２のコンピューティングデバイスによって、前記予測状態の前記少なくとも１つの速度に少なくとも部分的に基づいて、第２の予測状態を生成することであって、前記第２の予測状態は、少なくとも１つのパラメータ値を含む、生成することと、
前記第２の相違が前記第２の閾値よりも大きいときに、前記第２のコンピューティングデバイスによって、前記第２の予測状態の前記少なくとも１つのパラメータ値に少なくとも部分的に基づいて、前記視覚状態の前記少なくとも１つのパラメータ値を修正することと、
前記第２のコンピューティングデバイスによって、前記視覚状態に少なくとも部分的に基づいて、前記オブジェクトの第５の視覚表現をレンダリングすることと、
前記第２のコンピューティングデバイスによって、前記オブジェクトの前記第５の視覚表現を前記第１の表示デバイス上に表示することと、を含む、項目１に記載の方法。
（項目３）
前記第１のコンピューティングデバイスによって、第２の表示デバイス上に表示される、前記オブジェクトの前記第３の視覚表現とともに使用するための方法であって、前記オブジェクトの前記第４の視覚表現は、前記オブジェクトの前記第３の視覚表現が前記第１のコンピューティングデバイスによって前記第２の表示デバイス上に表示されるのとほぼ同時に、前記第２のコンピューティングデバイスによって前記第１の表示デバイス上に表示される、項目１に記載の方法。
（項目４）
前記第２のコンピューティングデバイスによって、前記第２のコンピューティングデバイスによってアクセス可能なストレージデバイスから、前記第１の閾値を取得することをさらに含む、項目１に記載の方法。
（項目５）
前記オブジェクトは、タイプを有し、
前記第１の閾値は、前記ストレージデバイスに記憶されるテーブルに記憶され、前記閾値は、前記テーブルの中の前記オブジェクトの前記タイプと関連付けられる、項目４に記載の方法。
（項目６）
前記オブジェクトは、タイプを有し、
前記新しい状態の前記少なくとも１つのパラメータ値は、少なくとも１つの速度を含み、
前記第２のコンピューティングデバイスによって、前記予測状態の前記少なくとも１つの速度を修正することは、前記オブジェクトの前記タイプと関連付けられるバンプ値を取得することと、前記バンプ値、前記相違、および前記新しい状態の前記少なくとも１つの速度の関数として、前記予測状態の前記少なくとも１つの速度を計算することと、を含む、項目１に記載の方法。
（項目７）
前記視覚状態の前記少なくとも１つのパラメータ値は、少なくとも１つの速度を含み、
前記予測状態の前記少なくとも１つのパラメータ値は、少なくとも１つの速度を含み、
前記予測状態の前記少なくとも１つのパラメータ値と、前記視覚状態の前記少なくとも１つのパラメータ値との間の前記相違を決定することは、前記予測状態の前記少なくとも１つの速度と、前記視覚状態の前記少なくとも１つの速度との間の相違を決定することを含む、項目１に記載の方法。
（項目８）
前記新しい状態の前記少なくとも１つのパラメータ値は、少なくとも１つの速度を含み、
前記予測状態の前記少なくとも１つの速度は、前記新しい状態の前記少なくとも１つの速度に等しく設定される、項目７に記載の方法。
（項目９）
前記視覚状態の前記少なくとも１つのパラメータ値は、位置情報および方向情報のうちの少なくとも１つを含み、
前記予測状態の前記少なくとも１つのパラメータ値は、位置情報および方向情報のうちの少なくとも１つを含み、
前記予測状態の前記少なくとも１つのパラメータ値と、前記視覚状態の前記少なくとも１つのパラメータ値との間の前記相違を決定することは、前記予測状態の前記位置情報および方向情報のうちの少なくとも１つと、前記視覚状態の前記位置情報および方向情報のうちの少なくとも１つとの間の相違を決定することを含む、項目１に記載の方法。
（項目１０）
前記新しい状態の前記少なくとも１つのパラメータ値は、位置情報および方向情報のうちの少なくとも１つを含み、
前記予測状態の前記位置情報および方向情報のうちの少なくとも１つは、前記新しい状態の前記位置情報および方向情報のうちの少なくとも１つに等しく設定される、項目９に記載の方法。
（項目１１）
前記相違が第２の閾値よりも大きいときに、前記予測状態の前記少なくとも１つのパラメータ値に少なくとも部分的に基づいて、前記視覚状態の少なくとも１つのパラメータ値を修正することはさらに、
前記相違が第３の閾値よりも大きいかどうかを判定することであって、前記第３の閾値は、前記第２の閾値よりも大きい、判定することと、
前記相違が前記第３の閾値よりも大きいと判定されたときに、前記視覚状態の前記位置情報および方向情報のうちの少なくとも１つを、前記予測状態の前記位置情報および方向情報のうちの少なくとも１つに等しく設定することと、を含む、項目９に記載の方法。
（項目１２）
前記オブジェクトは、タイプを有し、
前記第３の閾値は、テーブルに記憶され、前記テーブルの中の前記オブジェクトのタイプと関連付けられ、
前記方法はさらに、前記第２のコンピューティングデバイスによって、前記テーブルから前記第３の閾値を取得することを含む、項目１１に記載の方法。
（項目１３）
前記相違が前記第２の閾値よりも大きいときに、前記予測状態の前記少なくとも１つのパラメータ値に少なくとも部分的に基づいて、前記視覚状態の少なくとも１つのパラメータ値を修正することはさらに、
前記第２のコンピューティングデバイスによって、前記相違が前記第３の閾値未満であるときに、ブレンド状態を決定することであって、前記ブレンド状態は、前記視覚状態の前記位置情報および方向情報のうちの少なくとも１つ、および前記予測状態の前記位置情報および方向情報のうちの少なくとも１つに少なくとも部分的に基づき、前記ブレンド状態は、位置情報および方向情報のうちの少なくとも１つを含む、決定することと、
前記視覚状態の前記位置情報および方向情報のうちの少なくとも１つを、前記ブレンド状態の前記位置情報および方向情報のうちの少なくとも１つに等しく設定することと、を含む、項目１１に記載の方法。
（項目１４）
前記オブジェクトは、タイプを有し、
前記ブレンド状態は、前記オブジェクトの前記タイプと関連付けられる１つ以上のパラメータ値に少なくとも部分的に基づいて決定される、項目１３に記載の方法。
（項目１５）
前記オブジェクトは、タイプを有し、
前記第２および第３の閾値は、テーブルに記憶され、前記テーブルの中の前記オブジェクトタイプと関連付けられ、
前記方法はさらに、前記第２のコンピューティングデバイスによって、前記テーブルから前記第２および第３の閾値を取得することを含む、項目１１に記載の方法。
（項目１６）
前記相違が前記第２の閾値よりも大きいときに、前記予測状態の前記少なくとも１つのパラメータ値に少なくとも部分的に基づいて、前記視覚状態の少なくとも１つのパラメータ値を修正することはさらに、
前記第２のコンピューティングデバイスによって、前記相違が第３の閾値未満であるときに、ブレンド状態を決定することであって、前記ブレンド状態は、前記視覚状態の前記位置情報および方向情報のうちの少なくとも１つ、および前記予測状態の前記位置情報および方向情報のうちの少なくとも１つに少なくとも部分的に基づき、前記ブレンド状態は、位置情報および方向情報のうちの少なくとも１つを含む、決定することと、
前記新しい視覚状態の前記位置情報および方向情報のうちの少なくとも１つを、前記ブレンド状態の前記位置情報および方向情報のうちの少なくとも１つに等しく設定することと、を含む、項目９に記載の方法。
（項目１７）
前記相違が前記第２の閾値よりも大きいときに、前記予測状態の前記少なくとも１つのパラメータ値に少なくとも部分的に基づいて、前記視覚状態の少なくとも１つのパラメータ値を修正することはさらに、
前記相違が第３の閾値よりも大きいかどうかを判定することであって、前記第３の閾値は、前記第２の閾値よりも大きい、判定することと、
前記相違が前記第３の閾値よりも大きいと判定されたときに、前記視覚状態の前記少なくとも１つのパラメータ値を、前記予測状態の前記少なくとも１つのパラメータ値に等しく設定することと、を含む、項目１に記載の方法。
（項目１８）
前記相違が第２の閾値よりも大きいときに、前記予測状態の前記少なくとも１つのパラメータ値に少なくとも部分的に基づいて、前記視覚状態の少なくとも１つのパラメータ値を修正することはさらに、
前記第２のコンピューティングデバイスによって、前記相違が前記第３の閾値未満であるときに、ブレンド状態を決定することであって、前記ブレンド状態は、前記視覚状態の前記少なくとも１つのパラメータ値および前記予測状態の前記少なくとも１つのパラメータ値に少なくとも部分的に基づき、前記ブレンド状態は、少なくとも１つのパラメータ値を含む、決定することと、
前記視覚状態の前記少なくとも１つのパラメータ値を、前記ブレンド状態の前記少なくとも１つのパラメータ値に等しく設定することと、を含む、項目１７に記載の方法。
（項目１９）
前記新しい状態の前記少なくとも１つのパラメータ値は、前記オブジェクトの制御モードを備え、前記方法はさらに、
前記オブジェクトの前記制御モードに少なくとも部分的に基づいて、複数の第１および第２の閾値から、前記第２および第３の閾値の少なくとも１つを選択することを含む、項目１８に記載の方法。
（項目２０）
前記オブジェクトは、タイプを有し、
前記オブジェクトの前記制御モードに少なくとも部分的に基づいて、前記複数の第１および第２の閾値から、前記第２および第３の閾値のうちの前記少なくとも１つを選択することはさらに、前記オブジェクトの前記タイプに少なくとも部分的に基づいて、前記複数の第１および第２の閾値から、前記第２および第３の閾値のうちの少なくとも１つを選択することを含む、項目１８に記載の方法。
（項目２１）
前記相違が前記第２の閾値よりも大きいときに、前記予測状態の前記少なくとも１つのパラメータ値に少なくとも部分的に基づいて、前記視覚状態の少なくとも１つのパラメータ値を修正することはさらに、
前記第２のコンピューティングデバイスで、ローカル衝突状態を決定することと、
前記第２のコンピューティングデバイスで、前記ローカル衝突状態に基づいて、前記視覚状態を修正することと、を含む、項目１に記載の方法。
（項目２２）
地形を含む、前記分散シミュレーションとともに使用するための方法であって、さらに、
前記ローカル衝突状態を決定すること、および、前記オブジェクトが前記地形に実質的に相互貫入しなくなるまで、前記ローカル衝突状態に基づいて、前記視覚状態を修正することを繰り返すことを含む、項目２１に記載の方法。
（項目２３）
ネットワークを通じて互いに接続され、それぞれが複数のオブジェクトを備える分散シミュレーションの一部分を実行する、複数のコンピューティングデバイスとともに使用し、前記複数のうちの第１のコンピューティングデバイス上で実行する前記一部分が、前記複数のオブジェクトの一部分を制御し、前記複数のうちの第２のコンピューティングデバイスに、前記複数のオブジェクトの前記一部分の少なくとも１つのオブジェクトに関連する更新を送る、方法であって、
ａ）前記第２のコンピューティングデバイスで、前記第１のコンピューティングデバイスから、前記第１のコンピューティングデバイスによって制御される前記複数のオブジェクトの前記一部分の第１のオブジェクトに関連する状態情報を含む、以前の更新を受け取ることと、
ｂ）前記第２のコンピューティングデバイスで、前記第１のオブジェクトに関連する前記状態情報に少なくとも部分的に基づいて、前記第１のオブジェクトの第１の視覚表現を生成し、表示することであって、前記第２のコンピューティングデバイスは、前記第１のオブジェクトおよび前記第１の視覚表現と関連付けられる視覚状態情報を含む、表示することと、
ｃ）前記第２のコンピューティングデバイスで、前記第１のコンピューティングデバイスから、状態情報を含む新しい更新を受け取ることであって、前記新しい更新は、前記以前の更新の後に受け取られている、受け取ることと、
ｄ）前記第２のコンピューティングデバイスで、前記以前の更新の前記状態情報に少なくとも部分的に基づいて、前記第１のオブジェクトの予測状態情報を決定することであって、前記予測状態情報は、少なくとも１つの速度値を含む、決定することと、
ｅ）前記新しい更新の前記状態情報が、前記第１のオブジェクトに関連するかどうかを判定することと、
ｆ）前記第２のコンピューティングデバイスが、前記新しい更新の前記状態情報が前記第１のオブジェクトに関連すると判定したときに、前記予測状態情報の少なくとも一部分を、前記新しい更新の前記状態情報の少なくとも一部分に等しく設定することと、
ｇ）前記視覚状態情報と前記予測状態情報との間の相違を決定することと、
ｈ）前記相違が第１の閾値よりも大きいときに、前記予測状態情報の前記少なくとも１つの速度値を修正することと、
ｉ）前記相違が第２の閾値よりも大きいときに、前記予測状態情報に少なくとも部分的に基づいて、前記視覚状態情報を修正することと、
ｊ）前記第２のコンピューティングデバイスによって、前記視覚状態情報に少なくとも部分的に基づいて、前記オブジェクトの第２の視覚表現をレンダリングすることと、
ｋ）前記第２のコンピューティングデバイスによって、前記オブジェクトの前記第２の視覚表現を前記表示デバイス上に表示することと、
を含む、方法。
（項目２４）
前記予測状態情報は、第１の予測状態情報であり、前記相違は、第１の相違であり、前記方法はさらに、
前記第２のコンピューティングデバイスによって、前記第１の予測状態情報の前記少なくとも１つの速度に少なくとも部分的に基づいて、第２の予測状態情報を生成することと、
前記視覚状態情報と前記第２の予測状態情報との間の第２の相違を決定することと、
前記第２の相違が前記第２の閾値よりも大きいときに、前記第２の予測状態情報に少なくとも部分的に基づいて、前記視覚状態情報を修正することと、
前記第２のコンピューティングデバイスによって、前記視覚状態情報に少なくとも部分的に基づいて、前記オブジェクトの第３の視覚表現をレンダリングすることと、
前記第２のコンピューティングデバイスによって、前記オブジェクトの前記第３の視覚表現を前記表示デバイス上に表示することと、を含む、項目２３に記載の方法。
（項目２５）
前記第２のコンピューティングデバイス上で実行し、前記複数のオブジェクトの第２の部分を制御する、前記分散シミュレーションの前記一部分とともに使用する方法であって、さらに、
前記第１のコンピューティングデバイスに、前記複数のオブジェクトの前記第２の部分の少なくとも１つのオブジェクトに関連する更新を送ることを含む、項目２３に記載の方法。
（項目２６）
前記第２のコンピューティングデバイス上で実行し、前記複数のオブジェクトの第２の部分を制御する、前記分散シミュレーションの前記一部分とともに使用するための方法であって、さらに、
ユーザインターフェースデバイスを介して、前記複数のオブジェクトの前記第２の部分の選択されたオブジェクトの状態を変化させる、前記ユーザ入力受け取ることと、
前記選択されたオブジェクトに関連する状態情報を含む更新を作成することと、
前記第１のコンピューティングデバイスに、前記選択されたオブジェクトに関連する前記更新を送ることと、を含む、項目２３に記載の方法。
（項目２７）
前記ネットワークを通じて前記複数のコンピューティングデバイスに接続されるサーバ、および前記複数のオブジェクトの第２の部分を制御する前記第２のコンピューティングデバイス上で実行する前記分散シミュレーションの前記一部分とともに使用するための方法であって、さらに、
それによって前記複数のコンピューティングデバイスの他のものに転送するための前記サーバに、前記複数のオブジェクトの前記第２の部分の少なくとも１つのオブジェクトに関連する更新を送ることを含む、項目２３に記載の方法。
（項目２８）
複数のオブジェクトを備える分散シミュレーションの一部分をそれぞれが実行する複数のコンピューティングデバイスとともに使用し、前記複数のうちの第１のコンピューティングデバイス上で実行する前記一部分が、前記複数のオブジェクトの一部分を制御し、前記複数のうちの少なくとも第２のコンピューティングデバイスに、前記複数のオブジェクトの前記一部分の少なくとも１つのオブジェクトに関連する更新を送る、方法であって、
ａ）前記第２のコンピューティングデバイスで、前記第１のコンピューティングデバイスから、前記第１のコンピューティングデバイスによって制御される前記複数のオブジェクトの前記一部分の第１のオブジェクトに関連する状態情報を含む、以前の更新を受け取ることと、
ｂ）前記第２のコンピューティングデバイスで、前記第１のオブジェクトに関連する前記状態情報に少なくとも部分的に基づいて、前記第１のオブジェクトの第１の視覚表現を生成し、表示することであって、前記第２のコンピューティングデバイスは、前記第１のオブジェクトおよび前記第１の視覚表現と関連付けられる視覚状態情報を含む、表示することと、
ｃ）前記第２のコンピューティングデバイスで、前記第１のコンピューティングデバイスから、状態情報を含む新しい更新を受け取ることであって、前記新しい更新は、前記以前の更新の後に受け取られている、受け取ることと、
ｄ）前記第２のコンピューティングデバイスで、前記以前の更新の前記状態情報に少なくとも部分的に基づいて、前記第１のオブジェクトの予測状態情報を決定することと、
ｅ）前記第２のコンピューティングデバイスで、前記新しい更新の前記状態情報が、前記第１のオブジェクトに関連するかどうかを判定することと、
ｆ）前記第２のコンピューティングデバイスが、前記新しい更新の前記状態情報が前記第１のオブジェクトに関連すると判定したときに、前記第２のコンピューティングデバイスで、前記予測状態情報の少なくとも一部分を、前記新しい更新の前記状態情報少なくとも一部分に等しく設定することと、
ｇ）前記第２のコンピューティングデバイスで、前記視覚状態情報と前記予測状態情報との間の相違を決定することと、
ｈ）前記相違が第１の閾値よりも大きいときに、前記第２のコンピューティングデバイスで、前記視覚状態情報の少なくとも一部分を、前記予測状態情報の少なくとも一部分に等しく設定することと、
ｉ）前記相違が前記第１の閾値未満であり、かつ第２の閾値よりも大きいときに、前記第２のコンピューティングデバイスによって、前記視覚状態情報および前記予測状態情報に少なくとも部分的に基づいて、ブレンド状態情報を決定し、前記視覚状態情報の少なくとも一部分を、前記ブレンド状態情報の少なくとも一部分に等しく設定することであって、前記第１の閾値は、前記第２の閾値よりも大きい、設定することと、
ｊ）前記第２のコンピューティングデバイスによって、前記視覚状態情報に少なくとも部分的に基づいて、前記第１のオブジェクトの第２の視覚表現をレンダリングすることと、
ｋ）前記第２のコンピューティングデバイスによって、前記第１のオブジェクトの前記第２の視覚表現を前記表示デバイス上に表示することと、
を含む、方法。
（項目２９）
ネットワークを通じて互いに接続され、それぞれが複数のオブジェクトを備える分散シミュレーションの一部分を実行する、複数のコンピューティングデバイスとともに使用し、前記複数のうちの第１のコンピューティングデバイス上で実行する前記一部分が、前記複数のオブジェクトの第１の部分を制御し、かつ前記複数のうちの第２のコンピューティングデバイスに、前記複数のオブジェクトの前記第１の部分の少なくとも１つのオブジェクトに関連する更新を送り、前記第２のコンピューティングデバイス上で実行する前記一部分が、前記複数のオブジェクトの第２の部分を制御し、かつ前記第１のコンピューティングデバイスに、前記複数のオブジェクトの前記第２の部分の少なくとも１つのオブジェクトに関連する更新を送る、方法であって、
前記第２のコンピューティングデバイスで、前記複数のオブジェクトの前記第１の部分の第１のオブジェクトの第１の視覚表現、および前記複数のオブジェクトの前記第２の部分の第２のオブジェクトの第１の視覚表現をレンダリングすることであって、前記第１のオブジェクトの前記第１の視覚表現は、視覚状態情報と関連付けられる、レンダリングすることと、
前記第２のコンピューティングデバイスで、ユーザ入力デバイスを介して、前記第２のオブジェクトの前記第１の視覚表現を変化させる入力を受け取り、時折、前記第１のコンピューティングデバイスから、前記第２のコンピューティングデバイスによって使用可能な更新を受け取って、前記第１のオブジェクトの前記第１の視覚表現を修正することであって、前記第１のコンピューティングデバイスから受け取る前記更新のそれぞれは、前記第１のオブジェクトに関連する状態情報を含む、修正することと、
前記第２のコンピューティングデバイスで、前記第２のオブジェクトの前記第１の視覚表現が変化するにつれて、時折、前記ネットワークを通じて、前記第１のコンピューティングデバイスに更新を送ることであって、前記更新は、前記第２のオブジェクトの第２の視覚表現を修正するための、前記第１のコンピューティングデバイスによって使用可能な前記第２のオブジェクトに関連する状態情報を含む、送ることと、
前記第２のコンピューティングデバイスで、時折、少なくとも１つの速度を含む前記第１のオブジェクトの予測状態情報を生成することと、
前記第２のコンピューティングデバイスで前記更新のそれぞれが受け取られた後に、前記予測状態情報を、前記更新の前記状態情報に等しく設定することと、
前記第２のコンピューティングデバイスで、前記第１のオブジェクトの前記第１の視覚表現と関連付けられる前記予測状態情報と前記視覚状態情報との間の相違を決定することと、
前記第２のコンピューティングデバイスで、前記相違が第１の閾値よりも大きいときに、前記少なくとも１つの速度を変化させることによって、前記予測状態情報を更新することと、
前記第２のコンピューティングデバイスで、前記相違が第２の閾値よりも大きいときに、前記予測状態情報に少なくとも部分的に基づいて、前記第１のオブジェクトの前記第１の視覚表現と関連付けられる前記視覚状態情報を修正することと、
前記第２のコンピューティングデバイスで、前記視覚状態情報に少なくとも部分的に基づいて、前記第２のオブジェクトの前記第１の視覚表現を再レンダリングすることと、
を含む、方法。
（項目３０）
前記第１のオブジェクトは、タイプを有し、前記第１および第２の閾値は、テーブルに記憶されて、前記テーブルの中の前記オブジェクトの前記タイプと関連付けられ、さらに、
前記第２のコンピューティングデバイスで、前記テーブルの中の第１および第２の閾値を調べる、項目２９に記載の方法。
（項目３１）
前記相違が前記第２の閾値よりも大きいときに、前記予測状態情報に少なくとも部分的に基づいて、前記第１のオブジェクトの前記第１の視覚表現と関連付けられる前記視覚状態情報を修正することは、
前記相違が第３の閾値よりも大きいときに、前記視覚状態情報を前記予測状態情報に等しく設定することと、
前記相違が前記第３の閾値未満であり、かつ前記第２の閾値よりも大きいときに、前記第２のコンピューティングデバイスによって、前記視覚状態情報および前記予測状態情報に少なくとも部分的に基づいて、ブレンド状態情報を決定し、前記視覚状態情報を、前記ブレンド状態情報に等しく設定することであって、前記第３の閾値は、前記第２の閾値よりも大きい、設定することと、を含む、項目２９に記載の方法。
（項目３２）
１つ以上のプロセッサによって実行されたときに、分散シミュレーションの第１の部分を実行する第１のコンピューティングデバイスとともに使用する方法を実行し、前記第１の部分は、オブジェクトを制御するコンピュータが実行可能な命令を記憶する、１つ以上のコンピュータが読み出し可能な媒体であって、前記方法は、
前記分散シミュレーションの第２の部分を実行することであって、前記第２の部分は、第１の表示デバイス上に表示可能な、前記オブジェクトの第１の視覚表現を生成し、視覚状態が、前記オブジェクトおよび前記第１の視覚表現と関連付けられ、前記視覚状態は、少なくとも１つのパラメータ値を含む、実行することと、
ｂ）前記第１のコンピューティングデバイスから受け取られる以前の更新の以前の状態に少なくとも部分的に基づいて、前記オブジェクトの予測状態を生成することであって、前記以前の状態は、前記オブジェクトの第２の視覚表現と関連付けられる、前記予測状態は、少なくとも１つの速度および少なくとも１つのパラメータ値を含む、生成することと、
ｃ）前記第１のコンピューティングデバイスから更新を受け取ることであって、前記更新は、前記オブジェクトの第３の視覚表現と関連付けられる新しい状態を含み、前記新しい状態は、少なくとも１つのパラメータ値を含む、受け取ることと、
ｄ）前記予測状態の前記少なくとも１つのパラメータ値を、前記新しい状態の前記少なくとも１つのパラメータ値に等しく設定することと、
ｅ）前記予測状態の前記少なくとも１つのパラメータ値と、前記視覚状態の前記少なくとも１つのパラメータ値との間の相違を決定することと、
ｆ）前記相違が第１の閾値よりも大きいときに、前記予測状態の前記少なくとも１つの速度を修正することと、
ｇ）前記相違が第２の閾値よりも大きいときに、前記予測状態の前記少なくとも１つのパラメータ値に少なくとも部分的に基づいて、前記視覚状態の少なくとも１つのパラメータ値を修正することと、
ｈ）前記視覚状態に少なくとも部分的に基づいて、前記オブジェクトの第４の視覚表現をレンダリングすることと、
ｉ）前記オブジェクトの前記第４の視覚表現を前記第１の表示デバイス上に表示することと、
を含む、１つ以上のコンピュータが読み出し可能な媒体。
（項目３３）
前記予測状態は、第１の予測状態であり、前記相違は、第１の相違であり、前記方法はさらに、
前記予測状態の前記少なくとも１つの速度に少なくとも部分的に基づいて、第２の予測状態を生成することであって、前記第２の予測状態は、少なくとも１つのパラメータ値を含む、生成することと、
前記第２の相違が第２の閾値よりも大きいときに、前記第２の予測状態の前記少なくとも１つのパラメータ値に少なくとも部分的に基づいて、前記視覚状態の前記少なくとも１つのパラメータ値を修正することと、
前記視覚状態に少なくとも部分的に基づいて、前記オブジェクトの第５の視覚表現をレンダリングすることと、
前記オブジェクトの前記第５の視覚表現を前記第１の表示デバイス上に表示することと、を含む、項目３２に記載の１つ以上のコンピュータが読み出し可能な媒体。
（項目３４）
前記相違が前記第２の閾値よりも大きいときに、前記予測状態の前記少なくとも１つのパラメータ値に少なくとも部分的に基づいて、前記視覚状態の少なくとも１つのパラメータ値を修正することはさらに、
前記相違が、第３の閾値よりも大きいかどうかを判定することであって、前記第３の閾値は、前記第２の閾値よりも大きい、判定することと、
前記相違が前記第３の閾値よりも大きいと判定されたときに、前記視覚状態の前記パラメータ値のうちの少なくとも１つを、前記予測状態の前記パラメータ値のうちの少なくとも１つに等しく設定することと、
前記相違が前記第３の閾値未満であると判定されたときに、前記視覚状態の前記少なくとも１つのパラメータ値および前記予測状態の前記少なくとも１つのパラメータ値に少なくとも部分的に基づいて、ブレンド状態を決定することであって、前記ブレンド状態は、少なくとも１つのパラメータ値を含む、決定することと、前記視覚状態の前記少なくとも１つのパラメータ値を、前記ブレンド状態の前記パラメータ値のうちの少なくとも１つに等しく設定することと、を含む、項目３２に記載の１つ以上のコンピュータが読み出し可能な媒体。
（項目３５）
複数のオブジェクトを備える分散シミュレーションを実現するためのシステムであって、
ネットワークを通じて互いに接続され、それぞれが、前記分散シミュレーションの一部分を実行するように構成される、複数のコンピューティングデバイスであって、
前記複数のコンピューティングデバイスの第１のコンピューティングデバイスは、前記複数のオブジェクトの一部分を制御し、前記複数のうちの第２のコンピューティングデバイスに、前記複数のオブジェクトの前記一部分の少なくとも１つのオブジェクトに関連する更新を送る、前記分散シミュレーションの第１の部分を実行し、前記第２のコンピューティングデバイスは、
前記第１のコンピューティングデバイスから、前記第１のコンピューティングデバイスによって制御される前記複数のオブジェクトの前記一部分の第１のオブジェクトに関連する状態情報を含む、以前の更新を受け取り、
前記第１のオブジェクトに関連する前記状態情報に少なくとも部分的に基づいて、前記第１のオブジェクトの第１の視覚表現を生成し、
前記第１の視覚表現を表示デバイス上に表示し、前記第２のコンピューティングデバイスは、前記第１のオブジェクトおよび前記第１の視覚表現と関連付けられる視覚状態情報を含み、
前記第１のコンピューティングデバイスから、状態情報を含む新しい更新を受け取り、前記新しい更新は、前記以前の更新の後に受け取られており、
前記以前の更新の前記状態情報に少なくとも部分的に基づいて、前記第１のオブジェクトの予測状態情報を決定し、前記予測状態情報は、少なくとも１つの速度値を含み、
前記新しい更新の前記状態情報が前記第１のオブジェクトに関連するかどうかを判定し、
前記第２のコンピューティングデバイスが、前記新しい更新の前記状態情報が前記第１のオブジェクトに関連すると判定したときに、前記予測状態情報の少なくとも一部分を、前記新しい更新の前記状態情報の少なくとも一部分に等しく設定し、
前記視覚状態情報と前記予測状態情報との間の相違を決定し、
前記相違が第１の閾値よりも大きいときに、前記予測状態情報の前記少なくとも１つの速度値を修正し、
前記相違が前記第２の閾値よりも大きいときに、前記予測状態情報に少なくとも部分的に基づいて、前記視覚状態情報を修正し、
前記視覚状態情報に少なくとも部分的に基づいて、前記オブジェクトの第２の視覚表現をレンダリングし、また、
前記オブジェクトの前記第２の視覚表現を前記表示デバイス上に表示するように構成される、
システム。
（項目３６）
前記予測状態情報は、第１の予測状態情報であり、前記相違は、第１の相違であり、前記第２のコンピューティングデバイスはさらに、
前記第１の予測状態情報の前記少なくとも１つの速度に少なくとも部分的に基づいて、第２の予測状態情報を生成し、
前記視覚状態情報と前記第２の予測状態情報との間の第２の相違を決定し、
前記第２の相違が前記第２の閾値よりも大きいときに、前記第２の予測状態情報に少なくとも部分的に基づいて、前記視覚状態情報を修正し、
前記視覚状態情報に少なくとも部分的に基づいて、前記オブジェクトの第３の視覚表現をレンダリングし、
前記オブジェクトの前記第３の視覚表現を前記表示デバイス上に表示するように構成される、項目３５に記載のシステム。
（項目３７）
前記第２のコンピューティングデバイス上で実行する前記分散シミュレーションの前記一部分は、前記複数のオブジェクトの第２の部分を制御し、前記第２のコンピューティングデバイスはさらに、前記第１のコンピューティングデバイスに、前記複数のオブジェクトの前記第２の部分の少なくとも１つのオブジェクトに関連する更新を送るように構成される、項目３５に記載のシステム。
（項目３８）
前記第２のコンピューティングデバイス上で実行する前記分散シミュレーションの前記一部分は、前記複数のオブジェクトの第２の部分を制御し、前記第２のコンピューティングデバイスはさらに、
ユーザインターフェースデバイスを介してユーザ入力を受け取り、前記ユーザ入力が、前記複数のオブジェクトの前記第２の部分の選択されたオブジェクトの状態を変化させ、
前記選択されたオブジェクトに関連する状態情報を含む更新を作成し、また、
前記第１のコンピューティングデバイスに、前記選択されたオブジェクトに関連する前記更新を送るように構成される、項目３５に記載のシステム。
（項目３９）
前記ネットワークを通じて前記複数のコンピューティングデバイスに接続される、サーバをさらに備え、前記第２にコンピューティングデバイス上で実行する前記分散シミュレーションの前記一部分は、前記複数のオブジェクトの第２の部分を制御し、前記第２のコンピューティングデバイスはさらに、それによって前記複数のコンピューティングデバイスの他のものに転送するための前記サーバに、前記複数のオブジェクトの前記第２の部分の少なくとも１つのオブジェクトに関連する更新を送るように構成される、項目３５に記載のシステム。
【図面の簡単な説明】
【００４８】
本発明の態様は、添付図面とともに以下の詳細な説明を考察することによって明らかになるであろう。これらの図面を通じて、同様の参照符号は同様の要素を示す。
【００４９】
【図１】分散対話型シミュレーションのためのシステムのブロック図である。
【図２】図１のシステムの２つのステーション間で共有される分散対話型シミュレーションのローカル表現を示す図である。
【図３】予測器−補間器モジュールおよびそれらの相互接続を示す、図１のシステムのコンソールの一部分のブロック図である。
【図４】図１のシステムの少なくとも一部分によって行われ得る、リモート管理される欠陥状態補間プロセスのフローチャートである。
【図５Ａ】異なるモードおよび条件で動作する、第１の例示的なタイプ、すなわち、全地形対応車タイプの例示的な動的オブジェクトを管理するのに好適な基準およびパラメータの表である。
【図５Ｂ】異なるモードおよび条件で動作する、第２の例示的なタイプ、すなわち、飛行機タイプの例示的な動的オブジェクトを管理するのに好適な基準およびパラメータの表である。
【図６】図１のシステムのゲーミングコンソールの１つ以上が実現され得る、ハードウェア環境および動作環境の図である。
【発明を実施するための形態】
【００５０】
分散シミュレーションを説明するときに、一例として、および説明を容易にするために、コンピュータゲームの状況が本明細書で使用される。しかしながら、本明細書で説明されるシステムおよび方法の適用性は、コンピュータゲームによる使用に限定されず、他のタイプの分散シミュレーションに使用され得る。さらに、論じられる実施形態について、分散クロックは想定されない。代わりに、分散対話型シミュレーションのコヒーレントな表現を生じさせるために、標準的な待ち時間を有する更新の継続的な流れに基づく、高品質な予測が使用され得る。短い間隔で待ち時間が大幅に変動する場合には、そのような仮定の結果が悪化し得るが、それでも、全体として安定した、満足な共有シミュレーションを提供し得る。本明細書で説明されるシステムおよび方法は、全てのステーションで同じフレーム率および更新率を有する分散シミュレーションに関して動作し得るが、これは見込みでも、要件でもない。したがって、論じられる実施形態において、各ステーションでの分散シミュレーションに対する各連続的な増分は、「今」以外の特定の時間またはタイムスタンプに対応せず、また、現実世界において同時に起こる更新は、背景技術において上で論じた待ち時間および制限のため、数回の繰り返しの後まで、１つのステーションによって管理されるオブジェクトについて生じる更新の効果が、いくつかの他のステーションで見られない可能性がある場合であっても、全ての関与するステーションで、短い待ち時間の後に起こっているように見える。
【００５１】
限定的でない概要として、分散対話型シミュレーションのオブジェクトのリモート制御の物理学に基づくモデルに関する更新が許容される。オブジェクトに適切な所定の条件の下で、衝撃または「速度バンプ」が、決定され、スケーリングされ、そして、更新に加えられて、シミュレーションしたオブジェクトの正しい位置の現在の予測を形成する。物理学に基づくシミュレーションの各以降の繰り返しは、新しい更新が受け取られるまで、新しい予測状態を提供する。予測状態または更新状態の可視的な不連続性を多少なりとも解消するために、別々の視覚モデルが維持される。しかしながら、視覚モデルは、現在の予測に向かって継続的に収斂し、視覚モデルの新しい状態は、以前の状態、現在の予測からのその相違、ならびに提示されているオブジェクトに適切な特定の所定の基準およびパラメータから決定される。また、視覚モデルには、他のオブジェクト、特に発射体との相互作用を検出するための衝突システムにも関係する。集合的に、これらの特徴は、（例えば、シミュレーションした車両を追跡しているときに、またはそれに目標設定しているときに）従来の分散対話型シミュレーションよりも現実的に見え、かつ正確である、より審美的に好ましい視覚表現を提供する。
【００５２】
図１を参照すると、分散対話型シミュレーションシステム１００は、ユーザ（図示せず）に対してローカルなステーションに指定される、ローカルステーション１１０と、複数のリモートステーション１４０とを含み、これらは全て、ネットワーク１２０（例えば、インターネット）を通じて、サーバ１３０と通信することができる。図示される実施形態において、リモートステーション１４０は、リモートステーション１４０Ａ、１４０Ｂ、および１４０Ｃを含む。しかしながら、これは要件ではなく、リモートステーション１４０は、任意の数のリモートステーションを含み得る。下で説明するように、ステーション１１０、１４０Ａ、１４０Ｂ、および１４０Ｃは、互いに選択的に通信し得る。
【００５３】
分散ゲームシステムの例を使用すると、サーバ１３０は、ゲームネットワークサーバであり、ユーザが、各接続されたステーションで互いに相手を見つけ、ゲームを構成し、それに参加することを可能にする。
【００５４】
ステーション１１０、１４０Ａ、１４０Ｂ、１４０Ｃのそれぞれは、コンピューティングデバイスを含み、それぞれ、ゲーミングコンソール１１１、１４２、１４４、１４６として実現され得る。限定的でない例として、ゲーミングコンソール１１１、１４２、１４４、１４６は、それぞれ、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ（Ｒｅｄｍｏｎｄ、Ｗａｓｈｉｎｇｔｏｎ）によって製造されるＸｂｏｘ３６０のように実現され得る。加えて、ステーション１１０、１４０Ａ、１４０Ｂ、１４０Ｃのそれぞれは、それぞれ、コントローラ１１３、１４３、１４５、１４７を含む。ステーション１１０、１４０Ａ、１４０Ｂ、１４０Ｃのそれぞれはまた、ディスプレイも含むが、図１では、ローカルステーション１１０のディスプレイ１１２だけが示される。ローカルステーション１１０のコンソール１１１は、接続１２１を通して、サーバ１３０と通信する。リモートステーション１４０のコンソール１４２、１４４、１４６は、それぞれ、接続１２２、１２３、１２４を通して、サーバ１３０と通信する。
【００５５】
いくつかの実施形態において、コンソール１１１は、通信チャネル１５２、１５３、１５４を通じて、それぞれ、コンソール１４２、１４４、１４６のそれぞれと直接通信し得る一方で、コンソール１１１、１４２、１４４、１４６は、コンピュータゲーム等の分散対話型シミュレーションでは、互いに結合される。他の実施形態において、サーバ１３０は、ステーション１１０、１４０Ａ、１４０Ｂ、１４０Ｃの間の通信を処理する。多くのステーションでは、一般に、アップロード帯域幅がダウンロード帯域幅よりも制限されるので、そのような実施形態は、非常に大きいシミュレーションに好適であり得るが、それでも、ローカルステーション１１０からリモートステーション１４０のそれぞれへの通信量は、リモートステーション１４０からローカルステーション１１０への通信量とほぼ同じである。サーバ１３０が、ローカルコンソール１１１からリモートコンソール１４２、１４４、１４６のそれぞれに、効果的に更新を「ブロードキャストする」ことを可能にすることによって、コンソール１１１から相当な伝送の負担が緩和される。しかしながら、さらなる説明を簡単にする目的で、発明者らは、２つのコンソール１１１および１４２に重点を置き、サーバ１３０が仲介するかどうかに関わらず、それらの間の通信だけを考慮することとした。しかしながら、当業者によって認識されるように、コンソール１１１、１４２、１４４、１４６の任意の対の間の通信は、同じような様式で動作し得る。
【００５６】
したがって、図２では、分散対話型シミュレーションの内部の仕組みの一部が示される。コンソール１１１および１４２のそれぞれは、分散シミュレーションの対応するローカル表現をデータとして維持する。コンソール１１１で維持されるローカル表現は、ローカルシミュレーション２００として図示される。コンソール１４２で維持されるローカル表現は、ローカルシミュレーション２５０として図示される。分散シミュレーションは、静的オブジェクトおよび動的オブジェクトを含む。ローカルシミュレーション２００、２５０のそれぞれは、分散シミュレーションの静的オブジェクトおよび動的オブジェクトのそれぞれについて別々のオブジェクトを含む。例えば、ローカルシミュレーション２００は、ローカルシミュレーション２５０の中の静的オブジェクト２５１に対応する、静的オブジェクト２０１を含む。同様に、ローカルシミュレーション２００は、ローカルシミュレーション２５０の中の静的オブジェクト２５２、２５３、２５４に対応する、それぞれ、動的オブジェクト２０２、２０３、２０４を含む。
【００５７】
コンソール１１１、１４２、１４４、１４６のそれぞれは、特定のオブジェクトを制御する役割を果たす。例えば、コンソール１１１のプレーヤーは、コントローラ１１３を使用して、ローカルモデル制御モジュール２２０に入力を提供し、動的オブジェクト２０２（例えば、シミュレーションされた車両）を制御することができる。この実施例において、ローカルモデル制御モジュール２２０はまた、動的オブジェクト２０４も制御し、これは例えば、地雷、発射体、爆発、箱、または他の動的オブジェクトであり得る。静的オブジェクト２０１は、一般的に、地形およびしばしば建造物を含み、静的であり、コントローラ１１３によって制御されない。時折、（例えば、定期的に）、ローカルモデル制御モジュール２２０は、リモートコンソール１４２の中のリモートモデル制御モジュール２８０に、（例えば、チャネル１５２を介して）更新１５２Ａを送る。リモートモデル制御モジュール２８０は、ローカルシミュレーション２５０の中の動的オブジェクト２５２および２５４を制御する役割を果たすが、これは、ローカルシミュレーション２００の中の動的オブジェクト２０２および２０４と同じである。
【００５８】
コントローラ１１１が制御する役割を果たす動的オブジェクト（例えば、動的オブジェクト２０２および２０４）の少なくとも一部分のそれぞれについて、各更新１５２Ａは、動的オブジェクトの識別情報、動的オブジェクトのタイプ情報、および識別された動的オブジェクトの状態情報を含み得、該状態情報は、動的オブジェクトの動作モードの指示（例えば、「制御あり」または［制御なし」）を含み得る。いくつかの実施形態において、そのような情報は、１つ以上の更新に含まれ得る。
【００５９】
反対に、ローカルモデル制御モジュール２７０は、動的オブジェクト２５３（例えば、別の車両）を管理するために、ゲームコントローラ１４３から入力を受け取る。ローカルモデル制御モジュール２７０からリモートモデル制御モジュール２３０に送られる更新１５２Ｂは、ローカルシミュレーション２００の中の動的オブジェクトの少なくとも一部分を制御するために使用される。この実施例において、更新１５２Ｂは、オブジェクト２０３を制御し、それによって、コンソール１４２のオブジェクト２５３（例えば、ユーザによって「運転される」車両）は、オブジェクト２０３として、コンソール１１１を伴うステーション１１０に現れる。
【００６０】
コントローラ１４２が制御する役割を果たす動的オブジェクト（例えば、動的オブジェクト２５３）の少なくとも一部分のそれぞれについて、各更新１５２Ｂは、動的オブジェクトの識別情報、動的オブジェクトのタイプ情報、および識別された動的オブジェクトの状態情報を含み得、該状態情報は、動的オブジェクトの動作モードの指示（例えば、「制御あり」または［制御なし」）を含み得る。いくつかの実施形態において、そのような情報は、１つ以上の更新に含まれ得る。
【００６１】
ローカルシミュレーション２５０の中の静的オブジェクト２５１は、ローカルシミュレーション２００の中のオブジェクト２０１に対応する。
【００６２】
図３は、予測子モジュール３１０でコンソール１４２から更新１５２Ｂを受け取るものとして、コンソール１１１のリモートモデル制御モジュール２３０の内部の仕組み３００を示す。
【００６３】
予測子モジュール３１０は、直前に受け取った更新１５２Ｂを取り出し、それを、更新１５２Ｂで表現されるオブジェクト（例えば、動的オブジェクト２０３）に対応するルールテーブル３２１の所定値と比較する。図を簡単にするために、直前に受け取った更新は、動的オブジェクト２０３を表す。ローカル視覚状態３２３と直前のリモートシミュレーションの更新との間に十分な相違が存在する場合、衝撃または「バンプ」が、該相違、および動的オブジェクト２０３に適切なルールテーブル３２１の中のさらなる情報から決定され、動的オブジェクト２０３の物理モデルに適用される。これは、以降の繰り返しで動的オブジェクト２０３の将来の状態を外挿するために使用される、ある速度ベクトルを効果的に増加させる。これは、図４、図５Ａ、および図５Ｂと併せて、下でさらに詳細に論じられる。予測子モジュール３１０は、動的オブジェクト２０３の詳細な物理モデルを実行し、ローカルシミュレーション２００の以降の繰り返しでより良好な予測を行うことを可能にする。ローカルの物理的表現に適用されるバンプは、画像処理における「シャープニング」にいくらか類似しており、不連続性が若干強調される。この場合、バンプは、物理モデルへの衝撃として導入され、その影響は、ローカルシミュレーション２００の以降の繰り返しにおいてだけ観察できることになる。新しい更新１５２Ｂが到着すると、ローカルシミュレーション２００の次の繰り返しは、新しい更新で表現されるようなリモート管理の動的オブジェクト２５３の状態を使用し、新しい予測状態３１１を生じさせるために、速度バンプを加え得る。ローカルシミュレーション２００の以降の繰り返しでは、新しい予測状態３１１を取得するために、現在の予測状態３１１から詳細な物理シミュレーションを外挿する。
【００６４】
しかしながら、ディスプレイ１１２を駆動するために、ローカル予測状態３１１が直接的に使用された場合、以前の更新１５２Ｂによって予想されていなかった情報を含む可能性があるので、新しいリモートシミュレーション更新１５２Ｂが到着する度に、ローカル予測状態３１１の滑らかな運動に不連続性が生じる可能性がある。
【００６５】
これを修復するために、補間器モジュール３２０は、ルールテーブル３２１を使用して、審美的に魅力のある手法で、ローカル予測状態３１１に向かってローカル視覚状態３２３を移動させようとする。ローカル視覚状態３２３の以前の値が基準として使用され、よって、一般に、新しい更新１５２Ｂがローカル予測状態３１１に不連続的に影響を及ぼすので、ディスプレイ１１２に対するレンダリングモジュール３５０によって生じるオブジェクトの画像は、審美的に魅力のある運動を示し、一般に、不連続性が隠される。その結果、視覚状態３２３は、現在の予測状態３１１に時間とともに継続的に収斂している。
【００６６】
補間器モジュール３２０も、ローカル衝突状態３２２を維持する。しかしながら、プレーヤーが見るようにレンダリングされるのではなく、オブジェクトの衝突量が視覚モデルとともに論理的に進行する。これは、発射体の武器のように、シミュレーションされた目標設定、および車両の衝突のリアリズムを向上させる。全体的なオブジェクトの「堅さ」は、オブジェクトの場所に適切であり、かつそれに対応する。例えば、オブジェクトは、それが視認される場所（発射体衝突検出モジュール３４０で検出される）で撃たれることができ、または、複雑な補間器モジュール３１０では、障害物に衝突したように見える車両が、その障害物に損傷を与え（またはその障害物によって損傷を受け）、障害物から跳ね返り得、ローカル視覚状態３２３に影響を及ぼす。
【００６７】
オブジェクトの運動の見た目は、ルールテーブル３２１の中のオブジェクトのための基準およびパラメータに従って、および図４、図５Ａ、および図５Ｂと併せて下でさらに詳細に説明される、同じく該ルールテーブルに含まれる、補間器モジュール３２０によって使用するための基準およびパラメータに従って、予測子モジュール３１０によって物理モデルに導入されるバンプによって改善され得る。
【００６８】
図４は、リモートモデル制御モジュール２３０（図２および図３を参照されたい）によって行われ得る、プロセス４００を示す。ブロック４０１で、ローカルシミュレーション２００の繰り返しを開始し、そこでは、動的オブジェクト２０３が、ローカルモデル制御モジュール２７０によってリモート管理される。
【００６９】
次に、判定ブロック４０２で、ローカルモデル制御モジュール２７０から、動的オブジェクト２０３の新しい更新１５２Ｂが受け取られたかどうかについて判定が行われる。判定ブロック４０２での判定が「はい」である場合、動的オブジェクト２０３の新しい更新１５２Ｂが受け取られており、ブロック４０３で、予測状態３１１が、更新で提供される状態に等しく設定される。次いで、リモートモデル制御モジュール２３０は、ブロック４０５に進む。そうでない場合、判定ブロック４０２での判定が「いいえ」である場合、いかなる新しい更新１５２Ｂも受け取られておらず、ブロック４０４で、動的オブジェクト２０３の詳細な物理モデルを実行して、予測状態３１１の新しい値を提供する。次いで、リモートモデル制御モジュール２３０は、ブロック４０５に進む。
【００７０】
ブロック４０５で、新しい予測状態３１１と現在の視覚状態３２３との間の相違が計算される。
【００７１】
プロセス４００の以前の繰り返しにおいて、ローカル視覚状態３２３が設定されている場合があるが、初期化されていない場合は、予測状態３１１の現在値が設定されている場合がある。これが行われなかった場合であっても、プロセス４００は、意図的に、視覚状態３２３の適切な値に迅速に収斂する。
【００７２】
次いで、リモートモデル制御モジュール２３０は、判定ブロック４０６に進む。ブロック４０２で新しい更新１５２Ｂがあり、ブロック４０５で計算された相違が、動的オブジェクト２０３の現在の動作モードに示される１つ以上の値を超えるときに、判定ブロック４０６での判定は「はい」である。判定ブロック４０６での判定が「はい」であるときには、ブロック４０７で、衝撃または「速度バンプ」（または「バンプ」）が予測状態に適用される。これは、動的オブジェクト２０３の予測「物理」表現を移動させずに、ブロック４０４で物理モデルの将来の繰り返しに異なる結果を生じさせるように、表現の速度を変える。次いで、リモートモデル制御モジュール２３０は、判定ブロック４０８に進む。
【００７３】
判定ブロック４０６での判定が「いいえ」であるときに、リモートモデル制御モジュール２３０は、判定ブロック４０８に進む。
【００７４】
ブロック４０７でバンプが適用されるかどうかに関わらず、処理は判定ブロック４０８を継続し、そこでは、相違が、動的オブジェクト２０３に適切なルールテーブル３２１の一部分、およびその関連するローカル予測状態３１１からの所定の「大きい」値よりも大きいかどうかについて確認が行われる。判定ブロック４０８で行われる確認のより詳細な説明は、図５Ａおよび５Ｂ、ならびに下の関連する説明で提供される。判定ブロック４０８で相違が「大きい」と判定される場合、判定ブロック４０８での判定は「はい」であり、プロセスは、ブロック４０９を継続する。一方で、判定ブロック４０８での判定が「いいえ」である場合、プロセスは、判定ブロック４１０を継続する。
【００７５】
ブロック４０９で、視覚状態３２３の新しい値が、予測状態３１１の現在値になるように決定され、オブジェクトの提示は、新しい位置に「ワープする」（例えば、瞬時にジャンプする）。次いで、ブロック４１２で、この新しく決定された値が視覚状態３２３に適用される。
【００７６】
いくつかの実施形態では、ブロック４１２で、オブジェクトモデルが新しい状態に適応するように、更新された視覚状態がさらに修正される。例えば、車両の車輪は、車輪が地面との明らかな接触を保つように、またはジャンプを通じて車両が「宙に浮く」ときに車輪がサスペンションから相応にぶら下がっているように見えさせるように（すなわち、新しい視覚状態によって定義される位置および方向が、車輪を地形よりも上側に十分に高く配置するときに）、地形追従プロセスによって調整され得る。
【００７７】
ローカル衝突状態３２２は、少なくともそれらの階層的根源において、新しく決定された視覚状態３２３とほぼ一致する。すなわち、障害物または発射体との衝撃を検出するように、設計者によって定義される衝突量は、実質的に、オブジェクトをレンダリングするために設計者が提供した視覚モデルとの意図される関係を有する。一般的に、例えば発射体衝突検出モジュール３４０において、オブジェクト対地形、オブジェクト対オブジェクト、およびオブジェクト対発射体の干渉の計算を大幅に単純にするために、衝突量は、レンダリングモジュール３５０に提供される視覚モデルと比較して大幅に単純化される。
【００７８】
いくつかの実施形態では、例えばオブジェクトが地形に相互貫入しているように見えないことを確実にするように、ブロック４１２で視覚状態を調整するために、ローカル衝突状態３２２が、繰り返してさえ、補間器モジュール３２０によって使用され得る。
【００７９】
最後に、視覚状態３２３および衝突状態３２２に対してこれらの追加的な調整を行うための手順は、オブジェクトの各種類またはタイプによって変動し得、実質的に、審美的モデリング判断である。
【００８０】
視覚状態３２３に対する調整が完了した後に、プロセス４００は、動的オブジェクト２０３に関して、ブロック４１３で終了する。
【００８１】
しかしながら、判定ブロック４０８での確認で、相違が「大きい」ではないことが分かった（すなわち、ブロック４０８での判定が「いいえ」である）場合、ブロック４１０で、相違が、所定の「小さい」値よりも大きいかどうかの判定が行われ、ここで、適切な「小さい」値が、動的オブジェクト２０３の予測状態３１１によってルールテーブル３２１から選択される。ここでも、判定ブロック４０８で行われる確認のより詳細な説明は、図５Ａおよび５Ｂ、ならびに下の関連する説明で提供される。相違が「小さい」よりも大きい場合、判定ブロック４１０での判定は「はい」であり、ブロック４１１で、視覚状態３２３の新しい値が、現在の視覚状態３２３および現在の予測状態の「ブレンド」（または加重平均）として決定され、「ブレンド」は、ルールテーブル３２１からの動的オブジェクト２０３の予測状態に適切な加重および他の制約を伴い、視覚状態３２３の位置および回転部分の比較および操作のための別個の値を伴う。次いで、ブロック４１２で、視覚状態３２３の新しい値が適用される。
【００８２】
しかし、相違が、「小さい」に対する判定ブロック４１０での確認を超えない場合、判定ブロック４１０での判定は「いいえ」であり、いかなる修正も行われず、視覚状態３２３は、この繰り返しにおいて変更されない状態を維持する。判定ブロック４１０で行われる小さい相違に対する試験または確認は、オブジェクトが視覚的に「停止する」ようにする。この場合、プロセス４００は、動的オブジェクト２０３に関するこの繰り返しについて、ブロック４１３で終了する。
【００８３】
異なる実施形態、さらには単に異なるタイプ（もしくは種類）のオブジェクトについて、あるいは同じであるが異なるモードのオブジェクトについて、ブロック４０５で判定される相違の大きさに関して、判定ブロック４０６、４０８、および４１０で行われる試験または確認は、集合的な測定値を使用し得るか、またはルールテーブル３２１に反映されるような、相違のある部分だけを分析し得る。例えば、直線的な位置の測定値は、回転（方向）の測定値と比較することが困難である。したがって、状態の位置および回転部分は、しばしば別々に比較され、いくつかの実施形態では、どちらかの部分が各部分の対応する所定値を超える場合に、相違全体が超えていると判定される。いくつかの実施形態では、またはいくつかのオブジェクトについて、位置のさらなる部分が重要とみなされ得、ルールテーブル３２１の所与の特定の値が与えられ得る。例えば、２足動物（例えば、人、エイリアン等）のジャンプの場合、それらの地面の足跡について、すなわち、２足のｘ−ｙ平面に対する高さよりもその中での２足の位置について、相違に対するより密な統制が所望され得る。ジャンプすることができる２足動物等のオブジェクトについて、別々の所定値を、ｘ−ｙ平面に投影される相違のその一部分からより厳密に起動することができ、相違の一部分の全体的な位置について（すなわち、ｘｙｚで）、全体的にあまり厳密でない（すなわち、より大きい）所定値を伴う。
【００８４】
図５Ａおよび５Ｂは、それぞれ、ルールテーブル３２１の例示的な部分を提供する。図５Ａは、第１の動的オブジェクトタイプ、すなわち、シミュレーションされた全地形対応車（「ＡＴＶ」）タイプオブジェクト５００とともに使用する、例示的な基準およびパラメータを含む。図５Ｂは、第２の動的オブジェクトタイプ、すなわち、飛行機タイプオブジェクト５３０とともに使用する、例示的な基準およびパラメータを含む。図５Ａおよび５Ｂにおいて提供される基準およびパラメータは、例示的な実現であり、制限することを目的としない。さらに、ルールテーブル３２１は、異なるおよび／または追加的な動的オブジェクトタイプのための部分を含み得る。ルールテーブル３２１は、単一のテーブルまたは複数のテーブルとして実現され得る。
【００８５】
図５Ａを参照すると、いくつかの実施形態において、ルールテーブル３２１の部分５１０は、シミュレーションされた全地形対応車（「ＡＴＶ」）タイプオブジェクト５００というオブジェクトに指定され、また、判定ブロック４０６、４０８、および４１０で行われる試験または確認に対応するいくつかの所定値と、ブロック４１１で視覚状態３２３を修正（例えば、ブレンド）し、かつブロック４０７で予測状態３１１を修正するために使用されるパラメータとを含み、全てが、ＡＴＶタイプのオブジェクト、例えば、動的オブジェクト２０３を処理するときに、プロセス４００でのリモートモデル制御モジュール２３０による使用に適切である。
【００８６】
ＡＴＶタイプオブジェクト５００の基準５１１は、（例えば、動的オブジェクト２０３のための）判定ブロック４０８で使用される。ブロック４０２による相違が「大きい」を超えるかどうかについてのブロック４０８での判定は、３つの比較に分けられる。第１の比較は、相違のｘｙｚ部分の大きさが、３つのワールド単位（「ＷＵ」）の値よりも大きいかどうかである（この例示的な実現では、直線的測定が「ワールド単位」で行われ、これは、メートルまたはフィートに類似しているが、シミュレーションでの好都合な表現のために選択され、これらのシミュレーション例では、１ＷＵが、現実世界での約２．５ｍに対応する）。第２の比較は、相違のｘｙ部分の大きさが、１００ＷＵという値よりも大きいかどうかである。ｘｙ部分が１００ＷＵよりも大きい場合は、確実に、第１の比較によるｘｙｚ部分が３よりも大きかったことに留意されたい。この比較は、ＡＴＶタイプオブジェクト５００のｘｙ比較を無効にするための、プログラマの短縮形として機能し得る。このタイプのオブジェクトにｘｙ相違が有効であった場合、ｘｙ相違に使用される値は、ｘｙｚ相違に使用される値未満である必要はない。第３の比較は、相違の角度部分が１８０度よりも大きいかどうかである。これらの３つの比較のいずれかで、相違の対応する部分が、基準５１１で定められる値を超えることが分かった場合、判定ブロック４０８で、相違が「大きい」値を超えると判定し（すなわち、判定ブロック４０８で「はい」と判定し）、続いて、ブロック４０９でワープが起こる。
【００８７】
ルールテーブル３２１の部分５１０の列５２１および５２２は、タイプＡＴＶのオブジェクト（例えば、ＡＴＶタイプオブジェクト５００）を制御ありの場合および制御なしの場合で使用するための、異なる所定値およびパラメータを提供する。列５２１は、タイプＡＴＶのオブジェクトが制御ありのときに使用される所定値およびパラメータ値を提供し、列５２２は、タイプＡＴＶのオブジェクトが制御なしのときに使用される所定値およびパラメータを提供する。この実施形態において、プレーヤーの（例えば、ゲームコントローラ１４３からの）入力がローカルモデル制御モジュール（例えば、ローカルモデル制御モジュール２７０）に影響を及ぼすときに、または上で論じたように、ＡＩもしくは他のオペレータプロセスがモデルに影響を及ぼしている場合に、オブジェクトは「制御あり」である。「制御あり」であること、または「制御なし」であることが問題である場合、（更新１５２Ｂ等の）リモートシミュレーション更新は、動作モードを示す。
【００８８】
ＡＴＶタイプオブジェクト５００の基準５１２は、（例えば、動的オブジェクト２０３について）判定ブロック４１０で行われる試験または確認で使用される。ブロック４０２による相違が「小さい」を超えるかどうかについての判定ブロック４１０での判定は、２つの比較に分けられ、直前のリモートシミュレーション更新１５２Ｂで示される動作モードに応じて、列５２１または５２２に由来する比較のための値を伴う。第１の比較は、相違のｘｙｚ部分または回転（方向）部分のどちらかの大きさが、それぞれ、０．５ＷＵまたは４５度という値よりも大きいかどうかである。この実施例では、列５２１および５２２の双方で値が同じであるので、動的オブジェクト２０３が「制御あり」であるか、「制御なし」であるかは、問題ではない。有効であるために、値（０．５ＷＵ、４５度）は、それぞれ、基準５１１の対応する値（３ＷＵ、１８０度）よりも小さくなければならないことに留意されたい。第２の比較は、オブジェクトの予測状態３１１が十分にゆっくりと移動している（例えば、どちらも０．１ＷＵ／秒、８度／秒未満である）ときに、相違に対してより厳しい許容限度（例えば、「制御あり」モードでは、０．０３ＷＵ、４度、「制御なし」モードでは、０．０３ＷＵ、６度）を利用する、複合比較である。したがって、判定ブロック４１０は、相違が大き過ぎる場合に、ブロック４１１でブレンドを起動するが、その比較は、速度に依存することができる。よりゆっくりと移動しているオブジェクトは、より小さい相違を必要とする可能性がある。
【００８９】
ブロック４１１でブレンドが必要とされる場合は、部分５１３からの動的オブジェクト２０３に適切なパラメータおよび制約で行われる。ブレンドは、ブロック４１２で、ブロック４０５による相違の割合を、視覚状態３２３に加えて、新しい視覚状態を取得するが、その割合がどの程度であるべきかは、有意な審美的効果を有し得、また、異なる状況下で調整することを必要とし得る。この実施形態において、ＡＴＶタイプオブジェクト５００について、速度の上限閾値および下限閾値が定義される（これは、動作モードによって変動し得るが、この実施例では変動しない）。速度下限閾値以下の速度の場合、視覚状態３２３に加えられる相違の位置および回転部分に適切な割合は、「下限閾値での相違の割合」と表記されるエントリーとして与えられる。同様に、割合は、速度上限閾値以上の速度の場合、「上限閾値での相違の割合」と表記されるエントリーから取り出される。速度上限閾値と速度下限閾値との間の速度の場合、割合は、上限閾値割合および下限閾値割合から補間することができる。例えば、５ＷＵ／秒の速度および０度／秒の回転を有すると予測された「制御あり」モードでの動的オブジェクト２０３について、位置のブレンドに対する相違の割合は、以下の式を使用して計算され得る：
（予測速度−下限速度閾値）／（上限速度閾値−下限速度閾値）×（上限閾値での割合−下限閾値の割合での割合）＋（下限閾値での割合）。
【００９０】
上記の式を使用すると、上の実施例での位置のブレンドに対する相違の割合は、０．４：
（５−０）／（１０−０）×（０．０３−０．０５）＋（０．０５）＝５／１０×（−０．０２）＋（０．０５）＝０．０４である。
【００９１】
回転をブレンドするときに適用される割合のための類似する計算は、回転について示される値を使用するが、この場合、回転速度が下限速度閾値以下（０）であったので、０．０４として与えられる下限閾値での相違の割合が直接使用される。
【００９２】
ブレンドに対する最終的な制約は、予測状態３１１に関する最小接近率として定義される。予測状態３１１の速度が下限閾値以下である場合、予測状態３１１に向かう現在の視覚状態３２３の特定の最小収斂率が必要とされる。予測状態の速度が上限閾値以上であるときに、対応する値が提供され、また、上で説明したものに類似する手法で、上限閾値と下限閾値との間の速度について、部分５１３で与えられる所要の最小収斂率のパラメータが補間され得る。
【００９３】
適切な割合が決定されると、視覚状態３２３の位置および回転へのそれらの適用は、位置部分についてはデカルト補間を用い、回転部分については球面線形補間（「Ｓｌｅｒｐ」としても知られる）を用いる。Ｓｌｅｒｐの実現例は、回転について４元数表現を使用し得るが、これは厳密に必要とされない。
【００９４】
ＡＴＶタイプオブジェクト５００の基準５１４は、（例えば、動的オブジェクト２０３について）判定ブロック４０６で使用される。ブロック４０２で、使用された新しい更新があったかどうか、およびブロック４０５による相違がバンプの根拠となるのに「十分である」かどうかについての、判定ブロック４０６での判定は、複合比較であり、直前のリモートシミュレーション更新１５２Ｂで示される動作モードに応じて、列５２１または５２２に由来する比較のための値を伴う。この実施形態において、上で論じた複合比較と同様に、オブジェクトの予測状態３１１が、閾値よりも速く移動しているかどうか（部分５１４で、「速度が次の値を超える場合」と表記される）、または相違が十分に大きいかどうか（「またはｘｙｚ位置または回転の相違が次の値を超える場合」と表記される）のどちらであるかを調べるために、試験が行われる。判定ブロック４０６での比較のいずれかで、対応するパラメータを超えていることが分かった場合、判定ブロック４０６は、相違が実際に「十分である」と判定し、ブロック４０７でバンプが行われる。
【００９５】
バンプのパラメータは、部分５１５に与えられる。この実施形態において、バンプの値は、ブロック４０７で予測状態３１１に加えられる速度であるので、バンプは、事実上秒の逆数の単位を有するスケール係数（「相違によるバンプ×」と表記される）が乗じられた相違である。このようにしてバンプの値が決定されると、さらに、部分５１５のパラメータ内の「しかし、次の値以上であり」および「次の値以下である」と表記される制限を受け、設計者がバンプの効果を限定することを可能にする。概して、バンプの効果は、バンプが大きくなることを可能にした場合、視覚的に不適当であり得る。しかしながら、バンプが必然的に小さいとき、または別様に、抑制されるとき、その結果は、リモートモデル制御モジュール２３０によって制御されるオブジェクトの審美的な挙動の大幅な改善である。
【００９６】
さらなる実施例として、図５Ｂは、図２で図示されるローカルシミュレーション２００および２５０で示されないオブジェクトのタイプである、飛行機タイプオブジェクト５３０に対応する、ルールテーブル３２１の部分５４０を示す。図５Ｂに戻ると、部分５４０で、列５５１および５５２は、それぞれ、図５Ａの列５２１および５２２に含まれる列と同じ制御モードに対応する列をそれぞれ含む。基準５４１、５４２、および５４４は、それぞれ、基準５１１、５１２、および５１４と同じように使用される。部分５４３および５４５のパラメータは、それぞれ、部分５１３および５１５のパラメータと同じように使用される。ルールテーブル３２１で提供される基準およびパラメータの違いは、例えば設計者によって、経験的に設定され得る。基準のそれぞれは、どの条件をプロセス４００の特定の要素に適用させるかを決定し、各パラメータは、視覚の結果に影響を及ぼし得る。
【００９７】
コンピューティングデバイス
図６は、ゲームコンソール１１１、１４２、１４４、１４６のうちの１つ以上での実現例と併せて実践され得る、ハードウェアおよび動作環境である。図６の描写は、実現例が実践され得る、好適なコンピュータハードウェアおよび好適なコンピューティング環境の簡潔な概要を提供することを意図する。必須ではないが、実現例は、プロセッサによって実行される、プログラムモジュール等の、コンピュータが実行可能な命令の一般的な文脈で説明される。一般に、プログラムモジュールは、特定のタスクを行う、または特定の抽象データ型を実現する、ルーチン、プログラム、オブジェクト、構成要素、データ構造等を含む。
【００９８】
さらに、当業者は、実現例が、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサに基づくまたはプログラム可能な家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ等を含む、他のコンピュータシステム構成によって実践され得ることを認識するであろう。実現例はまた、通信ネットワークを通してリンクされるリモート処理デバイスによってタスクが行われる、分散コンピューティング環境でも実践され得る。分散コンピューティング環境において、プログラムモジュールは、ローカルおよびリモート双方のメモリ記憶デバイスの中に位置し得る。
【００９９】
図６の例示的なハードウェアおよび動作環境は、コンピューティングデバイス１２の形態の汎用コンピューティングデバイスを含む。コンピューティングデバイス１２は、従来のゲームコンソール、携帯電話、タブレットコンピュータ、従来のコンピュータ、分散コンピュータ、または任意の他のタイプのコンピュータであり得る。ゲームコンソール１１１、１４２、１４４、１４６は、それぞれ、コンピューティングデバイス１２と実質的に同一であり得る。しかしながら、これは、要件ではない。
【０１００】
コンピューティングデバイス１２は、システムメモリ２２と、処理ユニット２１と、システムメモリ２２を含む種々のシステム構成要素を処理ユニット２１に動作可能に連結するシステムバス２３とを含む。１つだけ、または１つ以上の処理ユニット２１があり得、よって、コンピューティングデバイス１２のプロセッサは、単一の中央処理ユニット（「ＣＰＵ」）、または一般に並列処理環境と称される、複数の処理ユニットを含む。複数の処理ユニットが使用されるときに、処理ユニットは、異なる要素から成り得る。限定的でない例として、そのような異なる要素から成る処理環境としては、従来のＣＰＵ、従来のグラフィックス処理ユニット（「ＧＰＵ」）、浮動小数点ユニット（「ＦＰＵ」）、それらの組み合わせ等が挙げられる。
【０１０１】
システムバス２３は、メモリバスまたはメモリコントローラ、周辺バス、および種々のバスアーキテクチャのうちのいずれかを使用するローカルバスを含む、何種類かのバス構造のうちのいずれかであり得る。システムメモリ２２は、単にメモリとも称され得、リードオンリーメモリ（ＲＯＭ）２４およびランダムアクセスメモリ（ＲＡＭ）２５を含む。起動中等にコンピューティングデバイス１２内の要素間での情報の転送を補助する基本ルーチンを含む、基本入出力システム（ＢＩＯＳ）２６は、ＲＯＭ２４に記憶される。コンピューティングデバイス１２はさらに、ハードディスク（図示せず）からの読み出しおよびそこへの書き込みのためのハードディスクドライブ２７、リムーバブル磁気ディスク２９からの読み出しまたはそこへの書き込みのための磁気ディスクドライブ２８、ならびにＣＤ−ＲＯＭ、ＤＶＤ、もしくは他の光媒体等のリムーバブル光ディスク３１からの読み出しまたはそこへの書き込みのための光ディスクドライブ３０を含み得る。
【０１０２】
ハードディスクドライブ２７、磁気ディスクドライブ２８、および光ディスクドライブ３０は、それぞれ、ハードディスクドライブインターフェース３２、磁気ディスクドライブインターフェース３３、および光ディスクドライブインターフェース３４によって、システムバス２３に接続される。ドライブおよびそれらの関連するコンピュータが読み出し可能な媒体は、コンピューティングデバイス１２のための、コンピュータが読み出し可能な命令、データ構造、プログラムモジュール、および他のデータの不揮発性ストレージを提供する。当業者は、磁気カセット、フラッシュメモリカード、固体メモリデバイス（「ＳＳＤ」）、ＵＳＢドライブ、デジタルビデオディスク、ベルヌーイカートリッジ、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）等の、コンピュータによってアクセス可能であるデータを記憶することができる、任意のタイプのコンピュータが読み出し可能な媒体が、例示的な動作環境において使用され得ることを認識されたい。当業者には明らかなように、処理ユニット２１によってアクセス可能な、ハードディスクドライブ２７および他の形態のコンピュータが読み出し可能な媒体（例えば、リムーバブル磁気ディスク２９、リムーバブル光ディスク３１、フラッシュメモリカード、ＳＳＤ、ＵＳＢドライブ等）は、システムメモリ２２の構成要素とみなされ得る。
【０１０３】
オペレーティングシステム３５、１つ以上のアプリケーションプログラム３６、他のプログラムモジュール３７、およびプログラムデータ３８を含む、いくつかのプログラムモジュールは、ハードディスクドライブ２７、磁気ディスク２９、光ディスク３１、ＲＯＭ２４、またはＲＡＭ２５に記憶され得る。ユーザは、キーボード４０およびポインティングデバイス４２等の入力デバイスを通して、コマンドおよび情報をコンピューティングデバイス１２に入力し得る。図１を参照すると、入力装置は、コントローラ１１３、１４３、１４５、１４７を含む。入力デバイスの限定的でない例としては、マイクロホン、ジョイスティック、ゲームパッド、衛星アンテナ、スキャナ、タッチセンサ式デバイス（例えば、スタイラス、タッチパッド、タッチ画面等）、ビデオカメラ、深度カメラ等が挙げられる。これらの、および他の入力デバイスは、しばしば、システムバス２３に連結されるシリアルポートインターフェース４６を通して処理ユニット２１に接続されるが、パラレルポート、ゲームポート、汎用シリアルバス（ＵＳＢ）、または無線インターフェース（例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）インターフェース）等の、他のインターフェースによって接続され得る。
【０１０４】
また、モニタ４７または他のタイプの表示デバイス（例えば、図１で図示されるディスプレイ１１２）も、ビデオアダプタ４８等のインターフェースを介してシステムバス２３に接続され得る。ディスプレイ１１２は、テレビ、ディスプレイ画面、タッチ画面等として実現され得る。モニタ４７に加えて、コンピュータは、一般的に、スピーカー、プリンタ、ならびに触覚フィードバックおよび／または他のタイプの物理的フィードバックを提供する触覚デバイス（例えば、フォースフィードバックゲームコントローラ）等の、他の周辺出力デバイス（図示せず）を含む。
【０１０５】
上で説明した入力デバイスは、ユーザの入力および選択を受け取るように操作可能である。入力デバイスおよび表示デバイスはともに、ユーザインターフェースを提供するものとして説明され得る。
【０１０６】
コンピューティングデバイス１２は、リモートコンピュータ４９等の１つ以上のリモートコンピュータへの論理接続を使用して、ネットワーク化された環境で動作し得る。上で説明したように、２つ以上のゲームコンソール１１１、１４２、１４４、１４６は、ネットワーク１２０を通じて互いに選択的に接続され得る。これらの論理接続は、（ローカルコンピュータとして）コンピューティングデバイス１２に連結された通信デバイス、または該コンピューティングデバイスの一部よって達成される。実現例は、特定のタイプの通信デバイスに限定されない。リモートコンピュータ４９は、別のコンピュータ、サーバ、ルータ、ネットワークＰＣ、クライアント、メモリストレージデバイス、ピアデバイス、または他の一般的なネットワークノードであり得、一般的に、コンピューティングデバイス１２に関して上で説明した要素の大部分または全てを含む。リモートコンピュータ４９は、メモリストレージデバイス５０に接続され得る。図６で表される論理接続は、ローカルエリアネットワーク（ＬＡＮ）５１と、ワイドエリアネットワーク（ＷＡＮ）５２とを含む。そのようなネットワーク環境は、オフィス、企業内コンピュータネットワーク、イントラネット、およびインターネットで一般的である。
【０１０７】
当業者は、ＬＡＮが、電話ネットワーク、ケーブルネットワーク、セルラーネットワーク、電力線を通じて、搬送波信号を使用するモデムを介して、ＷＡＮに接続され得ることを認識するであろう。そのようなモデムは、ネットワークインターフェース（例えば、シリアルまたは他のタイプのポート）によって、コンピューティングデバイス１２に接続され得る。さらに、多数のラップトップコンピュータを、セルラーデータモデムを介してネットワークに接続し得る。
【０１０８】
ＬＡＮネットワーキング環境で使用されるときに、コンピューティングデバイス１２は、通信デバイスの１つのタイプであるネットワークインターフェースまたはアダプタ５３を通して、ローカルエリアネットワーク５１に接続される。ＷＡＮネットワーキング環境で使用されるときに、コンピューティングデバイス１２は、一般的に、インターネット等のワイドエリアネットワーク５２を通じて通信を確立するための、モデム５４、あるタイプの通信デバイス、または任意の他のタイプの通信デバイスを含む。内部または外部であり得るモデム５４は、シリアルポートインターフェース４６を介して、システムバス２３に接続される。ネットワーク化された環境において、パーソナルコンピューティングデバイス１２、またはその一部分に関連して表されるプログラムモジュールは、リモートコンピュータ４９および／またはリモートメモリストレージデバイス５０に記憶され得る。示されるネットワーク接続は、例示的なものであり、コンピュータ間で通信リンクを確立するための他の手段および通信デバイスが使用され得ることを認識されたい。
【０１０９】
コンピューティングデバイス１２および関連する構成要素は、開示される概念の高いレベルでの考察を容易にするために、本明細書で、特定の例として、また抽象的なものとしても提示されている。実際の技術的設計および実現は、特定の実現に基づいて変動し得るが、開示される概念の全体的な性質は維持する。
【０１１０】
いくつかの実施形態において、システムメモリ２２は、１つ以上のプロセッサによって実行されたときに、１つ以上のプロセッサにプロセス４００の全てまたは一部分を行わせる、コンピュータが実行可能な命令を記憶する。そのような命令は、１つ以上の非一時的なコンピュータが読み出し可能な媒体に記憶され得る。
【０１１１】
全ての当該システムのように、本システムの特定の特徴、ユーザインターフェースの詳細、およびプロセスのパフォーマンスは、例えば、システムの実現に使用される構造、選択したサーバのオペレーティングシステム、選択したネットワークの帯域幅および他の特性、ならびに書き込まれたソフトウェアコードに依存し得る。本明細書に具体的に図示および記載される、説明される実施形態の種々の追加的な変更は、本教示に照らして、当業者に明らかになるであろう。
【０１１２】
上で説明される実施形態は、異なる他の構成要素内に含まれるか、またはそれらと接続される異なる構成要素を表す。そのような表される構造が単に例示的なものに過ぎないこと、および実際に、同じ機能を達成する多くの他の構造を実現することができることを理解されたい。概念的な意味で、同じ機能を達成するための構成要素の任意の配設は、所望の機能が達成されるように、効果的に「関連付けられる」。したがって、特定の機能を達成するために、組み合わせられる本明細書の２つの構成要素は、構造または中間構成要素に関係なく、所望の機能が達成されるように、互いに「関連付けられる」とみなすことができる。同様に、そのように関連付けられた任意の２つの構成要素はまた、所望の機能を達成するように、互いに「動作可能に接続される」または「動作可能に連結される」とみなすこともできる。
【０１１３】
本発明の特定の実施形態を図示および説明してきたが、当業者には、本明細書の教示に基づいて、本発明およびそのより広範な態様から逸脱することなく、本発明の変更および改良が行われ得、したがって、添付の特許請求の範囲は、そのような全ての変更および改良が、本発明の真の趣旨および範囲内にあるものとして、それらの範囲内に包含されるものであることが明らかになるであろう。さらに、本発明が、単に添付の特許請求の範囲だけによって定義されることを理解されたい。一般に、本明細書で使用され、特に添付の特許請求の範囲（例えば、添付の特許請求の範囲の主文）で使用される用語は、通常は「排他的でない」用語として意図されていることが、当業者によって理解されるであろう（例えば、「〜を含んでいる（ｉｎｃｌｕｄｉｎｇ）」という用語は、「〜を含んでいるが、それ（それら）に限定されない（ｉｎｃｌｕｄｉｎｇ  ｂｕｔ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ）」と解釈すべきであり、「〜を有する（ｈａｖｉｎｇ）」という用語は、「少なくとも〜を有する（ｈａｖｉｎｇ  ａｔ  ｌｅａｓｔ）」と解釈すべきであり、「〜を含む（ｉｎｃｌｕｄｅｓ）」という用語は、「〜を含むが、それ（それら）に限定されない（ｉｎｃｌｕｄｅｓ  ｂｕｔ  ｉｓ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ）」と解釈すべきである、等々となる）。さらに、導入された請求項の記載において特定の数が意図される場合には、そのような意図が請求項に明示的に記載され、そのような記載がない場合には、そのような意図が存在しないことが、当業者によって理解されるであろう。例えば、理解を補助するために、以下の添付の特許請求の範囲は、「少なくとも１つの（ａｔ  ｌｅａｓｔ  ｏｎｅ）」および「１つ以上の（ｏｎｅ  ｏｒ  ｍｏｒｅ）」といった導入句の使用を含み、請求項の記載を導入し得る。しかしながら、そのような句の使用は、同じ請求項が「１つ以上の（ｏｎｅ  ｏｒ  ｍｏｒｅ）」または「少なくとも１つの（ａｔ  ｌｅａｓｔ  ｏｎｅ）」といった導入句、および「ａ」または「ａｎ」といった不定冠詞を含むときであっても、「ａ」または「ａｎ」といった不定冠詞による請求項の記載の導入は、そのような導入された請求項の記載を含む任意の特定の請求項が、そのような記載を１つだけ含む発明に限定されるということが示唆されると解釈されるべきではない（例えば、「ａ」および／または「ａｎ」は、通常は、「少なくとも１つの（ａｔ  ｌｅａｓｔ  ｏｎｅ）」または「１つ以上の（ｏｎｅ  ｏｒ  ｍｏｒｅ）」を意味すると解釈されるべきである）。定冠詞を使用して請求項の記載を導入する場合にも同様のことが当てはまる。加えて、導入された請求項の記載において特定の数が明示的に記載されている場合であっても、そのような記載は、一般的に、少なくとも記載された数を意味するように解釈されるべきであることが、当業者によって認識されるであろう（例えば、他に修飾語のない、単なる「２つの記載事項」という記載がある場合は、一般的に、少なくとも２つの記載事項または２つ以上の記載事項を意味する）。
【０１１４】
したがって、本発明は、添付の特許請求の範囲による限定を除き、他から限定されない。
【図１】
0005855237.tif 000002
【図２】
0005855237.tif 000003
【図３】
0005855237.tif 000004
【図４】
0005855237.tif 000005
【図５Ａ】
0005855237.tif 000006
【図５Ｂ】
0005855237.tif 000007
【図６】
0005855237.tif 000008