JP2012503513A - 実環境内の事象をシミュレートするためのシステムおよび方法 - Google Patents

実環境内の事象をシミュレートするためのシステムおよび方法 Download PDF

Info

Publication number
JP2012503513A
JP2012503513A JP2011528441A JP2011528441A JP2012503513A JP 2012503513 A JP2012503513 A JP 2012503513A JP 2011528441 A JP2011528441 A JP 2011528441A JP 2011528441 A JP2011528441 A JP 2011528441A JP 2012503513 A JP2012503513 A JP 2012503513A
Authority
JP
Japan
Prior art keywords
virtual
real
data object
environment
real data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2011528441A
Other languages
English (en)
Other versions
JP2012503513A5 (ja
Inventor
ジュアン マヌエル レジェン
Original Assignee
アイオープナー メディア ゲーエムベーハー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アイオープナー メディア ゲーエムベーハー filed Critical アイオープナー メディア ゲーエムベーハー
Publication of JP2012503513A publication Critical patent/JP2012503513A/ja
Publication of JP2012503513A5 publication Critical patent/JP2012503513A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • A63F13/57Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/65Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor automatically by game devices or servers from real world data, e.g. measurement in live racing competition
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/80Special adaptations for executing a specific game genre or game mode
    • A63F13/803Driving vehicles or craft, e.g. cars, airplanes, ships, robots or tanks
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/64Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/69Involving elements of the real world in the game world, e.g. measurement in live races, real video

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)
  • Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)

Abstract

実環境内の事象をシミュレートするためのコンピュータプログラム製品を含む、コンピュータベースの方法および装置が記載されている。いくつかの例では、実環境内の事象をシミュレートすることは、方法を含む。本方法は、仮想環境内のユーザ制御オブジェクトのユーザ位置を決定する工程を含む。本方法は、実環境内の実データオブジェクトの実際の位置に基づき、前記ユーザ位置に対する仮想環境内の実データオブジェクトの仮想位置を決定する工程をさらに含む。本方法は、仮想位置、および実データオブジェクトに関連する一つまたは複数の保存された実際の位置に基づき、仮想環境内の実データオブジェクトの現在の仮想位置を制御する工程をさらに含む。

Description

関連出願
本出願は2008年9月24日に提出された、米国特許仮出願第61/099,697号の恩典および優先権を主張し、上記出願の教示全体が参照により本明細書に組み入れられる。
発明の分野
本発明は概して、実環境内の事象をシミュレートするためのコンピュータプログラム製品を含むコンピュータベースの方法および装置に関する。
背景
現在のコンピュータゲームは現実感にますます重点的に取り組んでおり、現実とゲーム世界との間のつながりを拡大しようと懸命に努力している。これを達成する一つの方法は、実世界オブジェクトをゲームの仮想環境へシームレスに統合することからなる。たとえば、プレーヤが家で座って自動車レースゲームをしている。しかし、そのレースにおける対戦相手は、(プレーヤ以外のキャラクタではなく)まさに同じ瞬間に実世界のどこかの現実のサーキットでレースをしている現実の操縦士により運転されている現実の自動車のアバタである。実世界のレースへのリアルタイムの参加は、実世界のプレーヤの行動の予測不能性のために難しい。
したがって、ユーザの最良のゲーム体験を実現するために、現実をゲーム世界と一体化する技術がこの分野で求められている。
実環境内の事象をシミュレートする一つの取り組みは、方法である。方法は、仮想環境内のユーザ制御オブジェクトのユーザ位置を決定する工程、実環境内の実データオブジェクトの実際の位置に基づき、前記ユーザ位置に対する仮想環境内の実データオブジェクトの仮想位置を決定する工程、ならびに前記仮想位置、および前記実データオブジェクトに関連する一つまたは複数の保存された実際の位置に基づき、仮想環境内の実データオブジェクトの現在の仮想位置を制御する工程を含む。
実環境内の事象をシミュレートする別の取り組みは、方法である。方法は、仮想環境内の一つまたは複数の実世界オブジェクトと一つまたは複数の仮想オブジェクトとの間の予想される交差を決定する工程、および前記一つまたは複数の実世界オブジェクトと前記一つまたは複数の仮想オブジェクトとの間の予想された交差に基づき、少なくとも一つの仮想オブジェクトと交差すると予想される各実世界オブジェクトの代わりの位置を決定する工程を含む。
実環境内の事象をシミュレートする別の取り組みは、方法である。方法は、実世界オブジェクトの仮想位置および実世界の位置を識別する工程、仮想オブジェクトの仮想位置を識別する工程、実世界オブジェクトの仮想位置、実世界オブジェクトの実世界位置、仮想オブジェクトの仮想位置、またはそれらの任意の組合せに基づき、実世界オブジェクトと仮想オブジェクトとの予想される交差を決定する工程、ならびに予想される交差、および実世界オブジェクトに関連する一つまたは複数の記憶された仮想位置に基づき、実世界オブジェクトの仮想位置を修正する工程を含む。
実環境内の事象をシミュレートする別の取り組みは、コンピュータプログラム製品である。コンピュータプログラム製品は情報媒体内に有形に具体化されており、データ処理装置に、仮想環境内のユーザ制御オブジェクトのユーザ位置を決定させ、実環境内の実データオブジェクトの実際の位置に基づき、前記ユーザ位置に対する仮想環境内の実データオブジェクトの仮想位置を決定させ、かつ前記仮想位置、および実データオブジェクトに関連する一つまたは複数の保存された実際の位置に基づき、仮想環境内の実データオブジェクトの現在の仮想位置を制御させるよう機能する命令を含む。
実環境内の事象をシミュレートする別の取り組みは、システムである。システムは、仮想環境内のユーザ制御オブジェクトのユーザ位置を決定するように構成された仮想データ位置モジュール、実環境内の実データオブジェクトの実際の位置に基づき、前記ユーザ位置に対する仮想環境内の実データオブジェクトの仮想位置を決定するように構成された実データ位置モジュール、ならびに前記仮想位置、および前記実データオブジェクトに関連する一つまたは複数の保存された実際の位置に基づき、仮想環境内の実データオブジェクトの現在の仮想位置を制御するように構成された位置制御モジュールを含む。
実環境内の事象をシミュレートする別の取り組みは、システムである。システムは、仮想位置、および実世界オブジェクトの実世界位置を識別するように構成された実データ位置モジュール、仮想オブジェクトの仮想位置を識別するように構成された仮想データ位置モジュール、実世界オブジェクトの仮想位置、実世界位置、仮想オブジェクトの仮想位置、またはそれらの任意の組合せに基づき、実世界オブジェクトと仮想オブジェクトとの予想される交差を決定するように構成された位置予想モジュール、ならびに予想される交差、および実世界オブジェクトに関連する一つまたは複数の記憶された仮想位置に基づき、実世界オブジェクトの仮想位置を修正するように構成された位置制御モジュールを含む。
実環境内の事象をシミュレートする別の取り組みは、システムである。システムは、仮想環境内のユーザ制御オブジェクトのユーザ位置を決定する手段、実環境内の実データオブジェクトの実際の位置に基づき、前記ユーザ位置に対する仮想環境内の実データオブジェクトの仮想位置を決定する手段、ならびに前記仮想位置、および前記実データオブジェクトに関連する一つまたは複数の保存された実際の位置に基づき、仮想環境内の実データオブジェクトの現在の仮想位置を制御する手段を含む。
別の例では、上記の取り組みのどれもが以下の特徴の一つまたは複数を含むことができる。
一部の例では、方法は、実データオブジェクトの次の実際の位置が入手可能かどうかを決定する工程、ならびに実環境に関連するあらかじめ規定された経路、および実データオブジェクトの次の実際の位置が入手可能かどうかの決定に基づき、仮想環境内の実データオブジェクトの現在の仮想位置を制御する工程をさらに含む。
別の例では、方法は、実データオブジェクトの追加の実際の位置が入手可能かどうかを決定する工程、仮想環境内のユーザ制御オブジェクトの次のユーザ位置を識別する工程、実データオブジェクトの追加の実際の位置が入手可能かどうかの決定、および次のユーザ位置に基づき、現在の仮想位置から追加の実際の位置に関連する仮想位置に移動する経路に関連する、仮想環境内の実データオブジェクトの一つまたは複数の将来の仮想位置を決定する工程、ならびに前記一つまたは複数の将来の仮想位置に基づき、仮想環境内の実データオブジェクトの現在の仮想位置を制御する工程をさらに含む。
一部の例では、方法は、仮想環境内のユーザ制御オブジェクトの次のユーザ位置を識別する工程、実環境内の実データオブジェクトの次の実際の位置に基づき、仮想環境内の実データオブジェクトの次の仮想位置を決定する工程、ならびに前記次の仮想位置、および前記次の仮想位置と前記次のユーザ位置との間の現実的距離に基づき、実データオブジェクトの現在の仮想位置を制御する工程をさらに含む。
別の例では、方法は、一つまたは複数の保存された実際の位置に基づき、仮想環境内の実データオブジェクトの追加の仮想位置を決定する工程をさらに含む。
一部の例では、方法は、仮想環境内のユーザ制御オブジェクトの追加のユーザ位置を識別する工程、実環境内の次の実データオブジェクトの実際の位置に基づき、仮想環境内の次の実データオブジェクトの仮想位置を決定する工程、ならびに前記仮想位置、前記仮想位置とユーザ制御オブジェクトの前記追加のユーザ位置との間の現実的距離、および実データオブジェクトの次の仮想位置に関連する時系列識別に基づき、仮想環境内の次の実データオブジェクトの現在の仮想位置を制御する工程さらに含む。
別の例では、方法は、一つまたは複数の保存された位置に基づき、次の時系列識別に関連する、仮想環境内の実データオブジェクトの追加の仮想位置を決定する工程、ならびに前記一つまたは複数の次の保存された位置および前記次の時系列識別に基づき、仮想環境内の次の実データオブジェクトの次の仮想位置を決定する工程をさらに含む。
一部の例では、方法は、実環境内の実データオブジェクトの次の実際の位置に基づき、次の実際の位置とは異なりかつユーザ制御オブジェクトの前にある、仮想環境内の実データオブジェクトの次の仮想位置を決定する工程、ならびに前記実データオブジェクトの次の仮想位置に基づき、前記実データオブジェクトの現在の仮想位置を制御する工程をさらに含む。
別の例では、仮想環境内の実データオブジェクトの仮想位置は、実環境内の実データオブジェクトの実際の位置と異なる。
一部の例では、方法は、実環境内の次の実データオブジェクトの実際の位置に基づき、仮想環境内のユーザ制御オブジェクトのユーザ位置に対する仮想環境内の次の実データオブジェクトの仮想位置を決定する工程、ならびに前記仮想位置、および次の実データオブジェクトに関連する一つまたは複数の保存された実際の位置に基づき、仮想環境内の次の実データオブジェクトの現在の仮想位置を制御する工程をさらに含む。
別の例では、仮想位置を決定する工程が、実環境内の実データオブジェクトの動きと共にリアルタイムまたはほぼリアルタイムで行われる。
一部の例では、方法は、個々の代わりの位置に関係させる(interest in)と予想される各実世界オブジェクトを配置する工程をさらに含む。
別の例では、方法は、一つまたは複数の実世界オブジェクトの位置が欠けているかどうかを決定する工程、および個々の実世界オブジェクトに関連する一つまたは複数の保存された位置に基づき、各実世界オブジェクトの欠けているデータの、欠けている位置を決定する工程をさらに含む。
一部の例では、システムは、実データオブジェクトの次の実際の位置が入手可能かどうかを決定するようにさらに構成された実データ位置モジュール、ならびに実環境に関連するあらかじめ規定された経路、および実データオブジェクトの次の実際の位置が入手可能かどうかの決定に基づき、仮想環境内の実データオブジェクトの現在の仮想位置を制御するようにさらに構成された位置制御モジュールをさらに含む。
別の例では、システムは、実データオブジェクトの追加の実際の位置が入手可能かどうかを決定するようにさらに構成された実データ位置モジュール、仮想環境内のユーザ制御オブジェクトの次のユーザ位置を識別するようにさらに構成された仮想データ位置モジュール、実データオブジェクトの追加の実際の位置が入手可能かどうかの決定、および次のユーザ位置に基づき、現在の仮想位置を追加の実際の位置に関連する仮想位置に移動させる経路に関連する、仮想環境内の実データオブジェクトの一つまたは複数の将来の仮想位置を決定するように構成された位置予想モジュール、ならびに一つまたは複数の将来の仮想位置に基づき、仮想環境内の実データオブジェクトの現在の仮想位置を制御するようにさらに構成された位置制御モジュールをさらに含む。
一部の例では、システムは、仮想環境内のユーザ制御オブジェクトの次のユーザ位置を識別するようにさらに構成された仮想データ位置モジュール、実環境内の実データオブジェクトの次の実際の位置に基づき、仮想環境内の実データオブジェクトの次の仮想位置を決定するようにさらに構成された実データ位置モジュール、ならびに前記次の仮想位置、および前記次の仮想位置と次のユーザ位置との間の現実的距離に基づき、実データオブジェクトの現在の仮想位置を制御するようにさらに構成された位置制御モジュールをさらに含む。
別の例では、システムは、一つまたは複数の保存された実際の位置に基づき、仮想環境内の実データオブジェクトの追加の仮想位置を決定するようにさらに構成された実データ位置モジュールをさらに含む。
一部の例では、システムは、仮想環境内のユーザ制御オブジェクトの追加のユーザ位置を識別するようにさらに構成された仮想データ位置モジュール、実環境内の次の実データオブジェクトの実際の位置に基づき、仮想環境内の次の実データオブジェクトの仮想位置を決定するようにさらに構成された実データ位置モジュール、ならびに前記仮想位置、前記仮想位置とユーザ制御オブジェクトの追加のユーザ位置との間の現実的距離、および実データオブジェクトの次の仮想位置に関連する時系列識別に基づき、仮想環境内の次の実データオブジェクトの現在の仮想位置を制御するようにさらに構成された位置制御モジュールをさらに含む。
別の例では、システムは、一つまたは複数の保存された位置に基づき、次の時系列識別に関連する、仮想環境内の実データオブジェクトの追加の仮想位置を決定するように、ならびに一つまたは複数の次の保存された位置、および次の時系列識別に基づき、仮想環境内の次の実データオブジェクトの次の仮想位置を決定するようにさらに構成された実データ位置モジュールさらに含む。
一部の例では、システムは、実環境内の実データオブジェクトの次の実際の位置に基づき、前記次の実際の位置とは異なりかつユーザ制御オブジェクトの前にある、仮想環境内の実データオブジェクトの次の仮想位置を決定するようにさらに構成された実データ位置モジュール、ならびに実データオブジェクトの前記次の仮想位置に基づき、実データオブジェクトの現在の仮想位置を制御するようにさらに構成された位置制御モジュールをさらに含む。
別の例では、システムは、実環境内の次の実データオブジェクトの次の実際の位置に基づき、仮想環境内のユーザ制御オブジェクトのユーザ位置に対する仮想環境内の次の実データオブジェクトの仮想位置を決定するようにさらに構成された実データ位置モジュール、ならびに前記仮想位置、および前記次の実データオブジェクトに関連する一つまたは複数の保存された実際の位置に基づき、仮想環境内の次の実データオブジェクトの現在の仮想位置を制御するようにさらに構成された位置制御モジュールをさらに含む。
一部の例では、システムは、仮想環境内の一つまたは複数の実世界オブジェクトと一つまたは複数の仮想オブジェクトとの間の予想される交差を決定するように構成された位置交差モジュール、ならびに前記一つまたは複数の実世界オブジェクトと前記一つまたは複数の仮想オブジェクトとの間の予想される交差に基づき、少なくとも一つの仮想オブジェクトと交差すると予想される各実世界オブジェクトの代わりの位置を決定するように構成された位置予想モジュールをさらに含む。
別の例では、システムは、個々の代わりの位置に関係させると予想される各実世界オブジェクトを配置するように構成された位置制御モジュールをさらに含む。
一部の例では、システムは、一つまたは複数の実世界オブジェクトの位置が欠けているかどうかを決定するように構成された実データ位置モジュール、ならびに個々の実世界オブジェクトに関連する一つまたは複数の保存された位置に基づき、各実世界オブジェクトの欠けているデータの、欠けている位置を決定するようにさらに構成された位置予想モジュールをさらに含む。
本明細書において記載されている、実環境の事象をシミュレートする技術は、以下の利点の一つまたは複数を提供することができる。事象のシミュレーションの利点は、現実感の錯覚、すなわち、本明細書において記載されている技術の実現により真実性が維持でき、それによりユーザのゲーム体験の質を高めることである。事象のシミュレーションの別の利点は、本明細書において記載されている技術の実現が、ユーザに提示されるデータが実世界データに対応することを確実にするためリアルタイムで行われることができ、それによりユーザのゲーム体験の質を高めることである。
本発明の別の局面および利点が、例示のみによって本発明の原理を図示する添付の図面と併せて示される以下の詳細な説明から明らかになるであろう。
本発明そのものだけでなく、本発明の前述の目的および別の目的、特徴および利点は、添付の図面と一緒に読まれるとき、様々な態様についての以下の説明からより完全に理解される。
例示的なゲームシステムの図である。 別の例示的なゲームシステムの図である。 例示的なゲームサーバの構成図である。 例示的なゲーム処理のフローチャートである。 例示的なゲーム処理の別のフローチャートである。 衝突回避のための例示的なゲーム処理の別のフローチャートである。 例示的なゲームシステムの例示的なオブジェクトの図である。 例示的なゲームシステムの例示的なオブジェクトの別の図である。 例示的なゲーム処理の別のフローチャートである。 例示的なゲームシステムの例示的なオブジェクトの別の図である。 例示的なゲームシステムの例示的なオブジェクトの別の図である。 例示的なゲーム処理の別のフローチャートである。 別の例示的なゲームシステムの例示的なオブジェクトのスクリーンショットである。 別の例示的なゲームシステムの例示的なオブジェクトの別のスクリーンショットである。 別の例示的なゲームシステムの例示的なオブジェクトの別のスクリーンショットである。 別の例示的なゲームシステムの例示的なオブジェクトの別のスクリーンショットである。 別の例示的なゲームシステムの例示的なオブジェクトの別のスクリーンショットである。 別の例示的なゲームシステムの例示的なオブジェクトの別のスクリーンショットである。 別の例示的なゲームシステムの例示的なオブジェクトの別のスクリーンショットである。 別の例示的なゲームシステムの例示的なオブジェクトの別のスクリーンショットである。 別の例示的なゲームシステムの例示的なオブジェクトの別のスクリーンショットである。 別の例示的なゲームシステムの例示的なオブジェクトの別のスクリーンショットである。 別の例示的なゲームシステムの例示的なオブジェクトの別のスクリーンショットである。 別の例示的なゲームシステムの例示的なオブジェクトの別のスクリーンショットである。 別の例示的なゲームシステムの例示的なオブジェクトの別のスクリーンショットである。 別の例示的なゲームシステムの図である。 例示的なゲーム処理の別のフローチャートである。 例示的なゲーム処理の別のフローチャートである。
詳細な説明
一般的概説において、今日のコンピュータゲームは現実感にますます重点的に取り組んでおり、現実とゲーム世界との間のつながりを拡大しようと懸命に努力している。現実感の拡大の一例は、実世界オブジェクトをゲームの仮想環境へシームレスに一体化することである。たとえば、ユーザが家で座って自動車レースゲームをしている。しかし、そのレースの対戦相手は、(プレーヤ以外のキャラクタではなく)まさに同じ瞬間に実世界のどこかの現実のサーキットでレースをしている現実の操縦士により運転されている現実の自動車のアバタである。本システムは、実世界のレース、すなわち世界のどこかで実際に行われているレースへの、リアルタイムでの参加を可能にする。リアルタイムのレースゲームが本明細書の例であるが、別の事象、スポーツ、および/またはゲームにおいて、本システムを利用して実世界オブジェクトを仮想環境に一体化することができる。
実環境内の事象をシミュレートするシステムの別の一般的概説として、本システムは、実世界オブジェクト(たとえば、自動車、人間、ブルドーザなど)が周囲環境と相互作用する、および互いに相互作用する実際の事象(たとえば、自動車レース、競技事象など)から情報を獲得する。本システムは、実世界オブジェクトの仮想表現を含む実際の事象の仮想表現を生成し、エンドユーザが仮想オブジェクトの挿入により仮想表現(たとえば、コンピュータシミュレーション、コンピュータゲームなど)に参加することができるようにする。有利には、システムは事象の仮想表現をできるだけ現実的にするために、事象から状態情報を獲得することができる。エンドユーザは、コントロール(たとえば、キーボード、マウス、ジョイスティック、ハンドルなど)を利用して仮想表現内部の仮想オブジェクトを操作する。
図1は、自動車レースの例に対する例示的なゲームシステム100の図である。システム100は実世界自動車(すなわち、動的オブジェクト)上に配置される自動車装置112(たとえば、GPS受信機)を含む。たとえば、GPS受信機112は多数のGPS衛星105から信号を受信し、レース事象110の始めから終わりまで定期的に自動車の位置を系統立てて表す。自動車は、示されているような別の装置112、たとえば内部測定ユニット(IMU)、テレメトリ、移動無線、および/または別のタイプの通信手段(たとえば、WiMAX、CDMAなど)により構成されてもよい。基地局114、すなわち通信ソリューションも提供され、自動車の移動無線との無線(通信)リンクをローカルに形成する。基地局114は自動車から情報を受信し、情報をネットワークサーバ116に中継する。サーバ116はネットワーク120を介して自動車からデータベース132に情報を伝達することができる。
無線送信機は、位置情報、および動的オブジェクトから収集されうる任意の別のテレメトリデータを無線基地局114に送信する。好ましくは、位置情報は迅速に、たとえば少なくとも30Hzの速さで更新される。しかし、システム100の待ち時間は無線通信の遅延ではなく、実際の事象110とクライアント装置150内の表現の間の遅延である。
別の事象情報118、たとえば天候、旗などが、事象情報システム(示されていない)からネットワークサーバ116に送信される。サーバ116はネットワーク120を介してデータベース132に事象情報を伝達することができる。
異なる動的乗り物のそれぞれに対する無線メッセージは、好ましくは互いに識別でき、時間または周波数で分離されうる。自動車と基地局114の間の通信は無線通信に限定されるのではなく、別のタイプの通信手段(たとえば、Wifi、WiMAX、赤外光、レーザなど)によってもカバーされることができる。
事象ツールセット134は、データベース132を処理してデータを正規化する、および/または事象シナリオを識別する。Webサービス136は、データベース132を検索するおよび/または分析するためのWebインタフェースを提供する。一つまたは複数のメディアキャスタ(media caster)138は、データベース132を処理して、実世界事象に対するリアルタイムまたはほぼリアルタイムのデータストリームをゲームサーバ142、ゲームエンジン148、および/またはクライアント装置150に提供する。ゲームサーバ142はデータストリームを処理し、シミュレートされた事象を複数のユーザに提供することができる。クライアント装置150はデータストリームを処理し、シミュレートされた事象をユーザに提供することができる。
ゲームエンジン148は入出力モジュール144および/または人工知能(AI)モジュール146を介してメディアキャスタ138からデータストリームを受信する。ゲームエンジン148はデータストリームを処理し、シミュレートされた事象をユーザに提供する。
図1は自動車レースを指すが、本技術は、仮想ユーザが実世界の競争事象(たとえば、スポーツ、ゲーム、競技レース、ボートレース、競馬、オートバイレース、競輪など)の仮想表現に参加することができる実質的に任意の競争事象に適用できる。
図2は別の例示的なゲームシステム200の図である。システム200はメディアキャスタ210、メディアキャスタ210に接続されるデータベース212、ネットワーク220、ゲームサーバ230、およびゲームエンジン240を含む。
ゲームエンジン240は、ネットワーク220を介してネットワーク・ゲーム・サーバ230との間で情報を送信および受信するための入出力モジュール241および入出力サブシステム243を含む。ゲームエンジン140はまた、ユーザコントロール270(たとえば、ジョイスティック、キーボード、マウスなど)からユーザ入力を受信するための入力サブシステム255、および人工知能(AI)サブシステム245(たとえば、予想される交差を避ける経路を決定する、現在の実世界位置に戻る経路を決定するなど)を含む。
ゲームエンジン240の別のサブシステムまたはモジュールがスクリプトエンジン244(たとえば、仮想環境に関連するスクリプトを実行するなど)、タイマ246、物理エンジン247(たとえば、仮想環境内のオブジェクトが実世界の物理的拘束条件に従うことを保証する、規則を強制することにより現実感を保証するなど)、サウンドマネージャ248、シーンマネージャ249、空間分割モジュール250、衝突検出モジュール251(たとえば、衝突の可能性を検出するなど)、アニメーションエンジン252、サウンドレンダラ(renderer)253、およびグラフィックレンダラ254を含む。ゲームエンジン240はゲームデータを記憶し、ネットワークサーバ230から実世界オブジェクトのゲーム内パラメータを受信し、AIモジュール245からゲーム内データ、およびユーザコントロール270を介して受信される別のソースからのデータ(たとえばユーザ入力)を受信する。ゲームエンジン240はまた、ローカルに記憶されたデータを読み出し、ゲームサーバ230と通信し、仮想オブジェクトを含む実際の事象の仮想表現を示すグラフィック、サウンド、および別のフィードバックを生成する。グラフィック、サウンド、および別のフィードバックは、ユーザ表示装置260上に、ゲームエンジン240により描画される。
システム200はアマチュア競争相手の行動情報を処理することができるが、そのようなデータをネットワークサーバ230またはメディアセンタのいずれにも直接にも間接的にも転送しない。システム200が任意のWebホストアプリケーションに依拠するかぎり、そのようなアプリケーションが使用前にWebからエンド・ユーザ・クライアントにダウンロードされ、その結果、表示イメージの任意の描写がWebサーバにおいてではなくエンド・ユーザ・コンソールで生成される。
図3は例示的なゲームサーバ330の構成図である。ゲームサーバ330は通信モジュール331、実データ位置モジュール332、仮想データ位置モジュール333、位置制御モジュール334、位置予想モジュール335、位置交差モジュール336、位置履歴モジュール337、プロセッサ338、および記憶装置339を含む。ゲームサーバ330はゲームサーバ330を運用するために利用される様々なモジュールおよび/または装置を含む。当該モジュールおよび/または装置は、ハードウェアおよび/またはソフトウェアとすることができる。ゲームサーバ330において示されるモジュールおよび/または装置は、たとえばコンピュータ実行可能命令を実行するためにプロセッサを利用することができる、および/またはコンピュータ実行可能命令を実行するためのプロセッサ(たとえば、暗号化処理ユニット、フィールド・プログラマブル・ゲート・アレイ処理ユニットなど)を含むことができる。ゲームサーバ330は、たとえば当技術分野において公知の別のモジュール、装置、および/もしくはプロセッサ、ならびに/または様々な例示的なモジュール、装置および/もしくはプロセッサを含むことができることを理解すべきである。
通信モジュール331は、ゲームサーバ330の間で情報および/またはデータを伝達する。実データ位置モジュール332は、仮想環境内の実データオブジェクトの実際の位置に基づき、ユーザ位置に対する仮想環境内の実データオブジェクトの仮想位置を決定する。実データ位置モジュール332は、実データオブジェクトの次の実際の位置が入手可能かどうか決定することができる(たとえば、実データオブジェクトからのデータ伝送が停止したかどうかを決定する、実データオブジェクトから入力データ伝送がないかどうかを決定するなど)。一部の例では、仮想位置が時系列識別と関連付けられる(たとえば、時刻=4:34.23、時間=45など)。別の例では、実データ位置モジュール332は、一つまたは複数の保存された位置および時系列識別に基づき、実データオブジェクトの仮想位置を決定する。実データ位置モジュール332は、一つまたは複数の実世界オブジェクトの位置が欠けているかどうか決定することができる。
仮想データ位置モジュール333は、仮想環境内のユーザ制御オブジェクトのユーザ位置を決定する。仮想データ位置モジュール333は、仮想環境内のユーザ制御オブジェクトの次のユーザ位置を識別することができる。
位置制御モジュール334は、仮想位置、および実データオブジェクトに関連する一つまたは複数の保存された実際の位置に基づき、仮想環境内の実データオブジェクトの現在の仮想位置を制御する。位置制御モジュール334は、実環境に関連するあらかじめ規定された経路、および実データオブジェクトの次の実際の位置が入手可能かどうかの決定に基づき、仮想環境内の実データオブジェクトの現在の仮想位置を制御することができる。位置制御モジュール334は、一つまたは複数の将来の仮想位置に基づき、仮想環境内の実データオブジェクトの現在の仮想位置を制御することができる。位置制御モジュール334は、仮想位置、および仮想位置とユーザ位置との間の現実的距離に基づき、実データオブジェクトの現在の仮想位置を制御することができる。
位置予測モジュール335は、実データオブジェクトの追加の実際の位置が入手可能かどうかの決定、および次のユーザ位置に基づき、仮想環境内の実データオブジェクトの一つまたは複数の将来の仮想位置を決定する。一つまたは複数の将来の仮想位置は、追加の実際の位置に関連する仮想位置に現在の仮想位置を移動させる経路と関連付けられることができる。
位置交差モジュール336は、仮想環境内の一つまたは複数の実世界オブジェクトと一つまたは複数の仮想オブジェクトとの間の予想される交差を決定する。位置履歴モジュール337は、一つもしくは複数の実データオブジェクトおよび/または一つもしくは複数のユーザ制御オブジェクトの位置を記憶する。プロセッサ338はオペレーティングシステム、および/またはゲームサーバ330のための任意の別のコンピュータ実行可能命令を実行する。
記憶装置339は、本明細書において記載されているシステム、および/またはゲームサーバ330に関連する任意の別のデータを記憶する。記憶装置339は複数の記憶装置を含むことができる。記憶装置339は、たとえば長期記憶装置(たとえば、ハードドライブ、テープ記憶装置、フラッシュメモリなど)、短期記憶装置(たとえば、ランダム・アクセス・メモリ、グラフィックメモリなど)、および/または任意の別のタイプのコンピュータ読出し可能記憶装置を含むことができる。
図4は、たとえば、図3のゲームサーバ330を利用する例示的なゲーム処理のフローチャート400を示す。通信モジュール331が実データオブジェクトに関連するデータを受信する(410)。実データ位置モジュール332が妥当性(たとえば、正しい形式、正しいパラメータなど)についてデータを調べ、データを処理する(たとえば、データを内部記憶形式に変換する、測定値を標準的測定値に変換するなど)(420)。実データ位置モジュール332が、実データオブジェクトの次の実際の位置が入手可能かどうか(たとえば、欠けているデータ、必要とされるデータなど)を決定する(430)。次のデータが入手可能でない場合、位置予想モジュール335が、(たとえば、内挿により、外挿により、予想によりなど)実データオブジェクトの一つまたは複数の将来の仮想位置を決定する(435)。次のデータが入手可能な場合、位置履歴モジュール337が、データを記憶する(440)。位置制御モジュール334がデータを処理して仮想環境内の実世界オブジェクトの仮想位置を修正する(450)。通信モジュール331が、修正された仮想位置を含むデータを図2のゲームエンジン240に送信する(460)。
図5は、たとえば図3のゲームサーバ330を利用する例示的なゲーム処理の別のフローチャート500である。通信モジュール331が一つまたは複数のネットワーク構成要素(たとえば、図1のデータベース132、一つまたは複数のメディアキャスタ138など)からデータを受信する(510)。位置履歴モジュール337が記憶装置339内にデータを記憶する(520)。実データ位置モジュール332が、シミュレートされた事象に対する現在の動作モードを決定する(530)。
現在の動作モードが現実である場合、通信モジュール331が図1のゲームエンジン148に現在のフレームを出力する(540)。仮想データ位置モジュール333が仮想オブジェクトのデータを調べる(たとえば、仮想オブジェクトの位置を識別する、仮想オブジェクトの進行方向を識別するなど)(542)。位置交差モジュール336が、仮想オブジェクトと実世界オブジェクトとの間の予想される交差があるかどうかを決定する(544)。予想される交差がない場合、入力データの処理が続けられる。予想される交差がある場合、ゲームサーバ330が動作モードをAIに変更する(546)。
現在の動作モードがAIである場合、実データ位置モジュール332が仮想オブジェクトのデータを調べる(たとえば、データが正しいことを保証するために調べる、データが完全であることを保証するために調べるなど)(550)。位置交差モジュール336が、仮想オブジェクトと実世界オブジェクトとの間に予想される交差が依然としてあるかどうかを決定する(552)。予想される交差が依然としてある場合、位置制御モジュール334が仮想環境内の実世界オブジェクトを制御して、適切な回避行動をとる(553)。予想される交差がない場合、位置交差モジュール335が、実世界オブジェクトの仮想位置を仮想環境内の実世界オブジェクトの実世界位置に戻すための現実的経路を決定する(554)。位置制御モジュール334が、前記経路に基づき、実世界オブジェクトの仮想位置を移動させる(555)。位置制御モジュール334が、仮想位置が実世界オブジェクトの現在の実際の位置であるかどうかを決定する(556)。仮想位置が実際の位置とマッチしない場合、位置制御モジュール334が前記経路に基づき、実世界オブジェクトの仮想位置を移動させることを続ける。仮想位置が実際の位置とマッチする場合、ゲームサーバ330がモードを現実に変更する(557)。
図6は、たとえば図3のゲームサーバ330を利用する衝突回避のための例示的なゲーム処理の別のフローチャート600である。実データ位置モジュール332が実世界オブジェクトの現在位置を識別し(610)、仮想データ位置モジュール333が仮想オブジェクトの現在位置を識別する(610)。位置予想モジュール335が、実世界オブジェクトおよび仮想オブジェクトの現在位置(たとえば、設定された距離の範囲内など)に基づき、衝突が発生しようとしているかどうかを決定する(620)。衝突が発生しようとしている場合、位置制御モジュール334が実世界オブジェクトの位置を制御して衝突を回避する(625)。衝突が発生しようとしていない場合、実データ位置モジュール332が、実世界オブジェクトの仮想位置が実世界オブジェクトの実際の位置から遅延しているかどうかを決定する(630)。
仮想位置が実際の位置から遅延していない場合、位置制御モジュール334が実世界オブジェクトの仮想位置を制御して、仮想オブジェクトが実世界オブジェクトの仮想位置を追い抜く(take over)ことができるようにする(635)。仮想位置が実際の位置から遅延している場合、仮想データ位置モジュール333が、実世界オブジェクトによる仮想オブジェクトの追い抜きが可能かどうかを決定する(640)。追い抜きが可能な場合、位置制御モジュール334が、実世界オブジェクトの仮想位置の制御を支配し、衝突を回避する(645)。追い抜きが可能でない場合、位置制御モジュール334が実世界オブジェクトの仮想位置を制御して、仮想オブジェクトが実世界オブジェクトの仮想位置を追い抜くことができるようにする(635)。
図7は例示的なゲームシステムの例示的なオブジェクト710、720a、および730aの図であり、ユーザ制御オブジェクト710による実データ720aおよび730aの追い抜きを図示する。図示されるように、各実データオブジェクト720aおよび730aはそれぞれ一つまたは複数の前の位置720(すなわち、720b、720c、および720d)および730(すなわち、730b、730c、および730d)の履歴を含む。ユーザ制御オブジェクト710が実データオブジェクト720aおよび730aを追い抜くとき、実データオブジェクト720aおよび730aはそれらのオブジェクトの個々の履歴の範囲内であるが現実的距離740を超える位置に配置される。この例では、各実データオブジェクト720aおよび730aが、履歴、および対応する実データオブジェクトの時系列に基づく位置に配置される。たとえば、実データオブジェクト720aが位置720d、時間位置=3に配置される場合、実データオブジェクト730aは位置730d、時間位置=3に配置される。この例では、ユーザ制御オブジェクト710が追い抜こうとしている実データオブジェクト720aおよび730aの時間位置は同じである。
図8は例示的なゲームシステムの例示的なオブジェクト810、820a、および830aの別の図であり、ユーザ制御オブジェクト810による実データオブジェクト820aおよび830aの追い抜きを図示する。図示されるように、各実データオブジェクト820aおよび830aはそれぞれ一つまたは複数の前の位置820(すなわち、820b、820c、および820d)および830(すなわち、830b、830c、および830d)の履歴を含む。実データオブジェクト820aおよび830aはユーザ制御オブジェクト810を追い抜こうとしている。しかし、実データオブジェクト820aおよび830aはユーザ制御オブジェクト810の現実的距離840の範囲内にあるので、実データオブジェクト820aおよび830aの仮想位置はそれぞれ仮想位置820bおよび830bである。この例では、実世界オブジェクト820aおよび830aの仮想位置は時系列識別、すなわち時間位置=1に対応する。
図9は図3のゲームサーバ330を利用する例示的なゲーム処理の別のフローチャート900である。フローチャート900は実データオブジェクトを追い抜くユーザ制御オブジェクトを図示する。位置履歴モジュール337が記憶装置339および/または任意の別のタイプの記憶装置(たとえば、ストレージ・エリア・ネットワークなど)内に実データオブジェクトの位置を記憶する(910)。位置制御モジュール334が、ユーザ制御オブジェクトによる実データオブジェクトの追い抜きがあるかどうかを決定する(920)。追い抜きがない場合、位置履歴モジュール337が実データオブジェクトの位置を記憶することを続ける(910)。追い抜きがある場合、位置制御モジュール334が、別の追い抜かれた実データオブジェクトがあるかどうかを決定する(930)。
別の追い抜かれた実データオブジェクトがある場合、実データ位置モジュール332が、追い抜かれた実データオブジェクトのタイムフレームに基づき、タイムフレーム、および実データオブジェクトの過去の位置を特定する(935)。位置制御モジュール334が、タイムフレームおよび過去の位置に基づき、実データオブジェクトの位置を制御する(937)。
いかなる別の追い抜かれた実データオブジェクトもない場合、実データ位置モジュール332が、実データオブジェクトの過去の位置に基づき、現在位置を特定する(940)。位置制御モジュール334が、過去の位置に基づき実データオブジェクトの位置を制御する(945)。
一部の例では、ユーザ制御オブジェクトの前方の位置、および/またはユーザ制御オブジェクトの前方の位置に加えて現実的距離(たとえば、ユーザ制御オブジェクトの長さの割合、設定された距離など)を分析することにより、システムが追い抜きを検出する。
別の例では、実データオブジェクトがユーザ制御オブジェクトにより追い抜かれた後、オブジェクトZ(実データオブジェクト)がオブジェクトXになる。この時点で、オブジェクトXおよびオブジェクトYが、実際の受信された情報ではなく履歴リストからタイムフレームからの情報を使用し始める。オブジェクトXおよびYが、ユーザ制御オブジェクトの背後に現実的距離を有する関連する位置を伴うタイムフレームに到達するまで、オブジェクトXが履歴リストに復帰する。この時点から、オブジェクトXが、関連する情報を使って過去のタイムフレーム(すなわち、一つまたは複数の保存された位置)を連続して使用して、ユーザ制御オブジェクトの背後の現実的距離で自身を配置する。時間情報は、実際のタイムフレームと有効な過去のタイムフレームとの間のタイムフレームの差を含む。実際のタイムフレームと有効な過去のタイムフレームとの間のタイムフレームの差は、dTと呼ばれる(時間位置とも呼ばれる)。
一部の例では、ユーザ制御オブジェクトの背後のすべての実データオブジェクト(すなわちオブジェクトY)の位置および相対位置を保つために、オブジェクトXの背後に配置されるすべての同一の実データオブジェクトが、オブジェクトXと同じ量のタイムフレーム(dT)でオブジェクトの個々の履歴リストに同時に復帰する。換言すれば、オブジェクトXの背後のすべてのリアルタイムオブジェクトに対するdTが連続して同じとなることができる。このように、ユーザ制御オブジェクトの背後のすべての実データオブジェクトが過去の同じ時間位置上にあるとすることができる。
別の例では、ユーザ制御オブジェクトからの現実的距離は、ユーザ制御オブジェクトのトラック上の位置、すなわち制御オブジェクトの行動に応じて、および/または単に等しくランダムに、変化することができる。それに従って、時間情報(すなわち、dT)を、現実的距離に基づいて更新することができる。
図10は例示的なゲームシステムの例示的なオブジェクト1010、1020a、および1030aの図であり、実データオブジェクト1020aおよび1030aによるユーザ制御オブジェクト1010の追い抜きを図示する。図示されるように、各実データオブジェクト1020aおよび1030aは、それぞれ一つまたは複数の前の位置1020(すなわち、1020b、1020c、および1020d)および1030(すなわち、1030b、1030c、および1030d)の履歴を含む。実データオブジェクト1020aおよび1030aの仮想位置は時間位置=3にある、すなわちユーザ制御オブジェクト1010から現実的距離1040の外側にあるそれぞれ1020dおよび1030dである。
図11は例示的なゲームシステムの例示的なオブジェクト1110、1120a、および1130aの別の図であり、実データオブジェクト1120aによるユーザ制御オブジェクト1110の追い抜きを図示する。図示されるように、各実データオブジェクト1120aおよび1130aは、それぞれ一つまたは複数の前の位置1120(すなわち、1120b、1120c、および1120d)および1130(すなわち、1130b、1130c、および1130d)の履歴を含む。実世界オブジェクト1120aの実世界位置1120aがユーザ制御オブジェクト1110を追い越すとき、実世界オブジェクト1120aの仮想位置が実世界位置1120aまで後に移動させられる。実世界オブジェクト1120aが実世界位置に戻った後、実世界オブジェクトの制御が実世界オブジェクト1130cに戻る(たとえば、時系列識別の制御、時間位置=2)。この点で、実世界オブジェクト1130aの仮想位置は、実世界位置1130aに最も近いが、依然として現実的距離1140を超えているので、仮想位置1130cに移動する。
図12は、たとえば図3のゲームサーバ330を利用する例示的なゲーム処理の別のフローチャート1200である。実データ位置モジュール332が、実際のタイムフレーム上の実データオブジェクトの位置がユーザ制御オブジェクトの前にあるかどうかを連続的に調べながら、実データオブジェクト(dT>0)を配置するために過去のタイムフレームを使用して、ユーザ制御オブジェクトの背後の各実データオブジェクト、オブジェクトX、およびオブジェクトYに対する実際のタイムフレームを決定する(1210)。実データ位置モジュール332は、実データオブジェクトがユーザ制御オブジェクトを追い抜くかどうかを決定する(1220)。実データオブジェクトがユーザ制御オブジェクトを追い抜かない場合、処理が続けられる(1210)。
実データオブジェクトがユーザ制御オブジェクトを追い抜く場合、位置制御モジュール334が、追い抜きが現実的で達成できる方法で行われることができるかどうかを決定する(1230)。追い抜きが現実的で達成できる方法で行われることができない場合、処理が続けられる(1210)。追い抜きが現実的で達成できる方法で行われることができる場合、位置制御モジュール334は実世界オブジェクトによりユーザ制御オブジェクトを追い抜き(1240)、実世界オブジェクトを、現実的な方法でユーザ制御オブジェクトの前の実世界オブジェクトの実際のタイムフレームおよび位置に戻す。
実データ位置モジュール332が、実データオブジェクトがオブジェクトX(すなわち、ユーザ制御オブジェクトの背後の最初の実データオブジェクト)であるかどうかを決定する(1250)。実データオブジェクトがオブジェクトXである場合、実データ位置モジュール332が、ユーザ制御オブジェクトの背後の次の実データオブジェクトをオブジェクトXとして指定する(1260)。実データオブジェクトがオブジェクトXでない場合、処理が続けられる(1210)。一部の例では、実データオブジェクトの一つがユーザ制御オブジェクトの背後の最初にあり、新しいオブジェクトXとなるまで、追い抜く実データオブジェクトの背後のすべての別の実データオブジェクトが履歴リスト(ならびに関連するフレームおよび位置)内を同時に進行する。
図13は別の例示的なゲームシステムの例示的なオブジェクトのスクリーンショット1300であり、実環境1310内の実データオブジェクト1315に対応する実データオブジェクト1325を有する仮想環境1320内のユーザ制御オブジェクト1327を図示する。
図14は別の例示的なゲームシステムの例示的なオブジェクトの別のスクリーンショット1400であり、仮想環境1420内のユーザ制御オブジェクト1427および実データオブジェクト1400を図示する。図示されるように、実環境1410内の2つの実データオブジェクト1412aおよび1412bは、現実的距離1430の範囲内にあり、かつ仮想環境1420内のユーザ制御オブジェクト1427の背後に示されていない。
図15は別の例示的なゲームシステムの例示的なオブジェクトの別のスクリーンショット1500であり、仮想環境1520内のユーザ制御オブジェクト1527および実データオブジェクトを図示する。図示されるように、実環境1510内のデータオブジェクト1512は、現実的距離1530の範囲内にあり、かつ仮想環境1520内のユーザ制御オブジェクト1527の背後に示されていない。
図16は別の例示的なゲームシステムの例示的なオブジェクトの別のスクリーンショット1600であり、仮想環境1620内のユーザ制御オブジェクト1627、ならびに実データオブジェクト1622aおよび1622bを図示する。図示されるように、実環境1610内の2つの実データオブジェクト1612aおよび1612bは、部分的に現実的距離の範囲内にある。しかし、この例では、2つの実データオブジェクト1622aおよび1622bが、仮想環境1620内のユーザ制御オブジェクト1627の前に示される。
図17は別の例示的なゲームシステムの例示的なオブジェクトの別のスクリーンショット1700であり、仮想環境1720内のユーザ制御オブジェクト1727の背後の実データオブジェクト1728を図示する。図示されるように、仮想位置は実データオブジェクト位置の過去のリストにより制御されるので、実環境1710内の実データオブジェクト1712の実際の位置は、実データオブジェクト1728の仮想位置と異なる。
図18は別の例示的なゲームシステムの例示的なオブジェクトの別のスクリーンショット1800であり、仮想環境1820内のユーザ制御オブジェクト1827の背後の実データオブジェクト1828を図示する。図示されるように、仮想位置は実データオブジェクト位置の過去のリストにより制御されるので、実環境1810内の実データオブジェクト1812bの実際の位置は、実データオブジェクト1828の仮想位置と異なる。さらに、図示されるように、実データオブジェクト1812aの仮想位置は仮想環境1820の図示されている距離を超えるので(すなわち、ユーザ制御オブジェクト1827の可視範囲外にある)、実データオブジェクト1812aは仮想環境1820の範囲内にない。
図19は別の例示的なゲームシステムの例示的なオブジェクトの別のスクリーンショット1900であり、仮想環境1920内のユーザ制御オブジェクト1927の背後に2つの実データオブジェクト1928aおよび1928bを図示する。実データオブジェクト1928aおよび1928bはそれぞれの過去のリストに基づき、ユーザ制御オブジェクト1927のあとについて行くが、位置に対するタイムフレームは、どの位置を利用すべきかのタイミングを制御する最初の実データオブジェクト1928b(すなわち、オブジェクトX)により制御される。実際の位置は、仮想環境1920内のユーザ制御オブジェクト1927から現実的距離の範囲内にあるので、実データオブジェクト1928aおよび1928bの仮想位置は、実環境1910内の実データオブジェクト1912aおよび1912bの実際の位置と異なる。
図20は別の例示的なゲームシステムの例示的なオブジェクトの別のスクリーンショット2000であり、仮想環境2020内のユーザ制御オブジェクト2027の背後の実データオブジェクト2028を図示する。実データオブジェクト2028は、実データオブジェクト2028の過去のリストに基づき、ユーザ制御オブジェクト2027のあとについて行く。実データオブジェクト2028の仮想位置は、実環境2010内の実データオブジェクト2012の実際の位置と異なる。
図21は別の例示的なゲームシステムの例示的なオブジェクトの別のスクリーンショット2100であり、仮想環境2120内のユーザ制御オブジェクト2127の背後の実データオブジェクト2128を図示する。実データオブジェクト2128は、実データオブジェクト2128の過去のリストに基づき、ユーザ制御オブジェクト2127のあとについて行く。実データオブジェクト2128の仮想位置は、実環境2110内の実データオブジェクト2112の実際の位置と異なる。
図22は別の例示的なゲームシステムの例示的なオブジェクトの別のスクリーンショット2200であり、仮想環境2220内のユーザ制御オブジェクト2227の周囲の現実的距離2230を図示する。実環境2210内の2つの実データオブジェクト2212aおよび2212bの実際の位置が、仮想環境2220の範囲内に配置されたとき、ユーザ制御オブジェクト2227の現実的距離2230の範囲内にある。換言すれば、2つの実データオブジェクト2212aおよび2212bの実際の位置が実データオブジェクトの仮想位置と対応する場合、該仮想位置はユーザ制御オブジェクト2227の周囲の実際的距離2230の範囲内にある。この例では、2つの実データオブジェクトは、実データオブジェクト2228aおよび2228bの過去のタイムフレーム(たとえば、現在位置の背後の時間位置=2)に対応する位置に配置される。
図23は別の例示的なゲームシステムの例示的なオブジェクトの別のスクリーンショット2300であり、仮想環境2320内のユーザ制御オブジェクト2327の周囲の現実的距離2330を図示する。実環境2310内の3つの実データオブジェクト2312a、2312b、および2312cの実際の距離は、仮想環境2220の内部に配置されたとき、ユーザ制御オブジェクト2327の現実的距離2330の範囲内にある。したがって、仮想位置が仮想環境2320内のユーザ制御オブジェクト2327の視線の外側にあるので、3つの実データオブジェクト2312a、2312b、および2312cは仮想環境2220内に図示されない。
図24は別の例示的なゲームシステムの例示的なオブジェクトの別のスクリーンショット2400であり、仮想環境2420内のユーザ制御オブジェクト2427の周囲の現実的距離2430を図示する。実環境2410内の実データオブジェクト2412の実際の位置は、仮想環境2410内に配置されたとき、ユーザ制御オブジェクト2427の現実的距離2430の外側にある。したがって、実データオブジェクトは、実環境2410内の実データオブジェクト2412の実際の位置と対応する仮想環境2420内の実データオブジェクト2428の仮想位置に配置される。
図25は別の例示的なゲームシステムの例示的なオブジェクトの別のスクリーンショット2500であり、仮想環境2520内のユーザ制御オブジェクト2527の周囲の現実的距離2530を図示する。図示されるように、実環境2510内の実データオブジェクト2512aの実際の位置は現実的距離2530の範囲内にある。実データオブジェクト2528aの仮想位置は、実データオブジェクト2528aの過去のタイムフレームに基づき、仮想環境2520内の実データオブジェクト2528aの仮想位置に配置される。さらに、実環境2510内の実データオブジェクト2512bの実際の位置が実データオブジェクト2512aの実際の位置の背後にあるので、実データオブジェクト2528bの仮想位置は、実データオブジェクト2528aの仮想位置の時間位置(たとえば、実データオブジェクト2528aも2528bも時間位置=2の所にある)に対応する実データオブジェクト2528bの過去のタイムフレームの所にある。
表1は実データオブジェクトの位置の例示的な過去のリストを図示する。表1は秒およびマイル×フィートで示すが、位置のリストは任意のタイプの時間測定(たとえば、ミリ秒、実際の時間など)および/または任意のタイプの位置測定(たとえば、GPS座標、経度/緯度など)を利用することができる。
(表1)過去の位置のリスト
Figure 2012503513
一部の例では、レースのタイプおよび/または許される戦術に応じて、システムは、実データオブジェクトにユーザ制御オブジェクトと相互作用させるために、実データオブジェクトの制御を支配することができる。システムは相互作用のための以下のパラメータの一つまたは複数を利用することができる。
1.現実からの逸脱が必要最小限である、
2.別の実データオブジェクトがいずれも影響されない、
3.相互作用が許される、
4.相互作用が現実的である(たとえば、物理的制限内など)、
5.相互作用がユーザ/ゲーム参加者の予想の範囲内である、および/または
6.相互作用がユーザ/ゲーム参加者のゲーム体験を強化する。
相互作用後、システムは、実データオブジェクトをそれらの有効な実データ位置に現実的に戻すことができる。
上述の相互作用はまた、多数のユーザ制御オブジェクトが同時に存在する仮想世界で行われることができる。換言すれば、実データオブジェクトのシステムによる制御が複数のユーザ制御オブジェクトについて並行して発生することができる。
仮想世界は、オブジェクト、ロジック、規則、ステージ、および/または目標を伴うコンピュータベースの3次元環境とすることができる。グラフィカルに表現される仮想世界は、実世界環境のシミュレートされた表現、および/またはコンピュータゲームとすることができる。
一部の例では、オブジェクトの位置、方向、および状態に関する情報が、仮想世界内のオブジェクトを提示するために必要とされる。この情報はデータソースから得られる。データソースは、(i)キーボード、マウス、ジョイスティック、ホイール、ゲームパッドなどのようなコンピュータ入力手段、(ii)別のコンピュータまたはコンピュータネットワーク、(iii)監視される実世界オブジェクト、(iv)記憶されたデータファイル、(v)ネットワーク上のストリームデータ、(vi)表現情報を生成する1組のアルゴリズム、および/または(vii)任意のタイプのデータソース(たとえば、データベース、外部生成データ、内部生成データなど)のうちの一つまたは複数とすることができる。しかし、このリストはすべてを含むわけではないことを理解すべきである。
別の例では、データソースはリアルタイムで、および/または遅延して情報を提供することができる。仮想世界内の多数のオブジェクトが、互いについて知らない異なるデータソースからの表現情報となる場合、仮想世界内のその表現は、仮想世界の非現実的表現をもたらしうる(すなわち、表現が仮想世界のオブジェクト、ロジック、規則、状態および/または目標とマッチしない)。
一部の例では、実世界オブジェクト(RWO)は、(1)実世界に存在し、(2)ある程度関連する操縦する知性(steering intelligence)を有する、および/または(3)仮想環境(世界)内部のアバタにより表現される移動するオブジェクトである。状況に応じて、RWOは実世界内のオブジェクトも仮想世界内のアバタも参照する。たとえばレースゲームでは、これは任意のトラックを走る実世界のレーシングカー(ドライバーを含む)である。
別の例では、仮想オブジェクト(VO)は、(1)いかなる現実世界の均等物もない仮想環境内だけに存在する、および/または(2)ある程度関連する操縦する知性を有する移動するオブジェクトである。仮想オブジェクトはユーザに制御される、および/または人工知能により制御されることができる。たとえばレースゲームでは、これはプレーヤにより制御されるレーシングカーである。
一部の例では、人工知能(AI)モジュールはシステムの一部である。AIモジュールは、仮想世界内のオブジェクトの表現が仮想世界のオブジェクト、ロジック、規則、状態および/または目標と実際にマッチするような方法で、オブジェクトに関する情報(たとえば、データソースからの情報)を変えることができる。AIモジュールは、仮想世界にも存在する別のオブジェクトの存在の認識をさらにシミュレートすることができる。
有利には、AIモジュールは、仮想世界ができるだけ実世界に近くなるように、「干渉されない状況」からのゆがみをできるだけ小さく保つことができる。有利には、AIモジュールは徐々に、および現実的に、実世界オブジェクトを「干渉されない」状況に戻すことができる。
図26は別の例示的なゲームシステム2600の図であり、2つの自動車(すなわち、オブジェクト)を伴うレースゲーム(すなわち、仮想世界)を図示する。システム2600は、仮想世界2610、ユーザ制御オブジェクトに対応するデータソースA 2620、および実世界オブジェクトに対応するデータソースB 2630を含む。仮想世界2610はデータソースA 2620およびB 2630からデータを受信する。仮想世界2610は、仮想世界内に実世界事象をシミュレートする(たとえば、オブジェクト間の交差を決定する、代わりの経路を決定するなど)AIモジュール2640と通信する。仮想世界2610はオブジェクト2612(たとえば、実世界オブジェクト、ユーザ制御オブジェクトなど)、ロジック2613(たとえば、2つのオブジェクトが同じ空間を占有することができないなど)、規則2614(たとえば、速度、物理学など)、状態2615(たとえば、レース、旗など)、および目標2616(たとえば、フィニッシュライン、出口など)を含む。たとえば、一方の自動車がユーザ(すなわち、データソースA)により制御され、もう一方の自動車がインターネット上で受信される実際の自動車からのテレメトリデータ(すなわち、データソースB)により制御される。
別の例として、双方の自動車がゲーム内で表現される。ユーザ制御自動車Aがテレメトリ自動車Bの前の数メートルにある。双方の自動車はレースゲームの規則により支配され、それらに対応するデータソースから受信されるデータに合うように表現される。
別の例として、ユーザがブレーキを踏み、自動車Aが減速し始める。AIモジュール2640は、自動車Aと自動車Bとの間の衝突が発生する可能性があることを決定する。一部の態様では、衝突は、仮想環境のロジック、規則、および/または目標に基づくレースゲームの望ましい目標ではない。したがって、AIモジュール2640は関与するオブジェクトに対するデータを変える。したがって、自動車Bの進路およびスピードは、衝突が防止されるように変更される。
追加の例として、実際のデータによる衝突の危険性がロジック、規則、および/または目標に基づき最小であるとき、AIモジュール2640は、自動車Bが自動車Bの実際の位置、進路、およびスピードに迅速にではあるが現実的に戻ることができるように、自動車Bの進路およびスピードを徐々に変更する。
AIモジュール2640は、たとえば予測および内挿の管理のため、ならびに/または重なり回避のために、仮想環境2610内で動作することができる。有利には、AIモジュール2640は、2つの移動するオブジェクトがいつ切迫した衝突の危険性があるかを予測する。AIモジュール2640は仮想環境2610を連続的に監視し、現在の状況のパラメータを考慮してオブジェクトがどこに行くことができるかを決定することができる。この監視および決定により、AIモジュール2640は、回避的行動が必要とされるかどうかを決定することができる。
一部の例では、実世界オブジェクトから受信されるデータストリームが遮断されるときに予測が重要となる。換言すれば、アバタは依然として現実的に振る舞う必要があり、AIモジュール2640は実世界オブジェクトの現在位置および前の公知の位置(たとえば、過去の情報)に基づき、実世界オブジェクトの位置を予測する必要がある。表2は実世界データ点および予測されるデータ点を図示する。
(表2)
Figure 2012503513
有利には、AIモジュール2640は、実際のデータ点同士の間に入るデータ点を予測することができる。換言すれば、AIモジュール2640が3秒ごとにしか実世界オブジェクトからデータ点を受信しない場合、AIモジュール2640は、間にある時間に、実世界オブジェクトに対するデータ点を内挿することができる。表3は実世界データ点および内挿されたデータ点を図示する。
(表3)
Figure 2012503513
AIモジュール2640は、たとえば常に任意のオブジェクト間の重なりを回避するように動作することができる(たとえば、オブジェクトは互いに接触することができるが、同じ空間を決して占有することはできない)。仮想環境2610では、実世界オブジェクトは実世界に同時に存在し、そのため、同じ空間を決して占有しない仮定される。したがって、一般に、実世界オブジェクトに対する仮想オブジェクトの相対的位置だけがテストされなければならない(実世界オブジェクトの位置が、重なりを回避するために既に変えられたときを除く)。
仮想オブジェクトおよび実世界オブジェクトが互いに接近する場合(たとえば、位置が現実的でない、衝突が切迫しているなど)、AIモジュール2640は、たとえば現実感を維持するように措置を講じることができる。たとえば、レースゲームで2つの自動車が互いに非常に接近する場合、実際のドライバーは、別の自動車に衝突するのを防止するように回避行動を開始する。
有利には、AIモジュール2640は、仮想環境の目標2616を維持するように動作する。目標2616は仮想環境の真実性、現実感、リアルタイム性、および/または安定性を含むことができる。
AIモジュール2640はユーザに対して真実性の幻想を維持するように動作することができる。仮想オブジェクトが現在の状況に与える影響のために、実際の状況を正確にモデル化することができない場合であっても、この幻想は常に、プレーヤが完全に現実的であると信じることができるほど十分でなければならない。たとえば、重なりの問題に対するソリューションが、単に別の自動車の背後にとどまり、次に、その別の自動車の前方に突然ジャンプすることにより実現される場合、ユーザは気づき、ゲーム体験が損なわれる。
AIモジュール2640は現実感の幻想を維持するように動作することができる。現実感は一般に真実性よりも少し厳密であり、少し実際的でない。現実感と真実性の違いの一例として、正しい状況に戻るために実際の最高スピードを少しだけ超えるスピードが必要とされるとき、現実感はこれを許可しないが、いかなるユーザもこの違いに気づくことがとてもありそうにないという事実を考慮すると、真実性はこれを許可する。したがって、AIモジュール2640は、最適に均衡のとれたユーザ体験を保証するために、仮想環境の目標に優先順位をつけることができる。
AIモジュール2640は、リアルタイムでおよび/または記憶された情報に基づいて、仮想環境を動作させることができる。AIモジュール2640はリアルタイムで、短い遅延を伴って、および/または記憶された情報に基いて、動作することができる。AIモジュール2640は、実際の実世界事象が発生した後に、ペイ・パー・ビュー方式のサービスを提供するために、記憶された情報に基づき、動作することができる。換言すれば、AIモジュール2640は、記憶された情報に基づき、何回もレース事象を再生することができる。AIモジュール2640は、現在入手可能なデータのみを考慮して、リアルタイムで(たとえば、実際の実世界事象を参照して、記憶された事象のタイムフレームを参照してなど)ソリューション(たとえば、追い越し方法、追い抜き方法など)をさらに計算することができる。AIモジュール2640は、次の状態がユーザに実際に表示される前に次の状態を計算することができる。
AIモジュール2640は、安定した仮想環境を動作させることができる。安定した仮想環境は、妥当な時間内でのデータソースからの任意の変化の終結および/または表示された実世界オブジェクト間の重なりを制限することを含む。たとえば、仮想オブジェクトとの重なりが発生するのを防ぐために任意の実世界オブジェクトが表示されるとすぐに、実世界オブジェクトが仮想環境内の別の実世界オブジェクトと重なることがある。このように、実世界オブジェクトの表示は不安定になる可能性があり、各変位が別の変位を誘発し、それが続く。AIモジュール2640は、この変位の連鎖が終結し、好ましくは不必要に多くの実世界オブジェクトを変位させることがないことを保証するように動作する。したがって、AIモジュール2640は、できるだけ現実に近く仮想環境を表現させるように動作する。
図27は、たとえば図26のAIモジュール2640を利用する例示的なゲーム処理の別のフローチャート2700である。AIモジュール2640は、実世界オブジェクトに関連するデータを受信する(2710)。AIモジュール2640は、受信されたデータを処理し(2720)、処理されたデータを実世界オブジェクトと関連付けた(2730)。AIモジュール2640は、実世界オブジェクトのデータが欠けている(すなわち、入手可能でない)かどうかを決定する(2740)。実世界オブジェクトのデータが入手可能でない場合、AIモジュール2640は欠けているデータを決定する(たとえば、内挿)(2745)。データが入手可能な場合、AIモジュール2640は、実世界オブジェクトおよび/またはユーザ制御オブジェクトの間に何らかの交差があるかどうかまたは予想される交差があるかどうかを決定する(2750)。交差または予想される交差がない場合、処理が続けられる(2710)。交差または予想される交差がある場合、AIモジュール2640は、交差する実世界オブジェクトまたは予想される交差する実世界オブジェクトの代わりの位置を決定する(2755)。
図28は、たとえば図26のAIモジュール2640を利用する例示的なゲーム処理の別のフローチャート2800である。AIモジュール2640は、仮想環境内の仮想位置が実世界オブジェクトの実世界位置に対応しない実世界オブジェクトを識別する(2810)。AIモジュール2640は、識別された実世界オブジェクトが実世界オブジェクトの実世界位置に戻ることができるかどうかを決定する(2820)。識別された実世界オブジェクトが実世界オブジェクトの実世界位置に戻ることができない場合、処理が続けられる(2810)。識別された実世界オブジェクトが実世界オブジェクトの実世界位置に戻ることができる場合、AIモジュール2640は、現実的な方法で(たとえば、スピード制約、位置制約など)実世界オブジェクトを実世界オブジェクトの実世界位置に戻す(2830)。
一部の例では、AIモジュール2640は衝突を予測する、データ点を内挿する、および/または重なりを回避するように動作することができる。
一部の例では、システムは、ユーザ制御オブジェクトがレースでおよび/または実世界情報により制御されるオブジェクトに対抗する任意の別のタイプの事象で、競争することができるようにする。ユーザがそのレースに実際に参加していると思うような方法で、情報はユーザに提示される。ユーザ制御オブジェクトは、実世界と同様に、ユーザ制御オブジェクトの前および/または背後の実データオブジェクトの相対位置を保ちながら、実データオブジェクトの活動範囲内に提示されることができる。
実データオブジェクトとユーザ制御オブジェクトとの間の相互作用は、たとえば人工知能(AI)エンジン(AIモジュールとも呼ばれる)を利用するクライアントにより管理されることができる。AIエンジンは、たとえば実世界の自動車(GPS管理自動車とも呼ばれる)との仮想レーシングカーの衝突を管理する(すなわち、回避する)衝突検出モジュールを含む。実データオブジェクトとユーザ制御オブジェクトとの間の相互作用はレース事象として説明されるが、相互作用は、実世界オブジェクトと仮想オブジェクトとを含むことができる任意のタイプの事象(たとえば、陸上競技、サッカー、ダンスなど)で発生することができる。
一部の例では、実世界オブジェクトと仮想オブジェクトとの間の相互作用は、仮想自動車のスピードおよび/または挙動に従って仮想自動車から予想される多角形トンネル(polygon tunnel)を利用して、管理される。エンドユーザが仮想自動車をGPS管理自動車の一つに極めて接近して配置するとき、多角形トンネルの一つがGPS管理自動車と交差し、2つの乗り物間の潜在的衝突を識別する。
別の例では、実世界オブジェクトと仮想オブジェクトとの間の相互作用は、現実的距離範囲(たとえば、動的に生成される距離、所定の距離など)および/または実データオブジェクトの履歴を利用して管理される。エンドユーザが仮想自動車をGPS管理自動車の一つに極めて接近して配置するとき、GPS管理自動車は仮想自動車の現実的距離の範囲の中に入り、乗り物間の潜在的衝突を識別する。
たとえば、衝突の検出と同時に、AIエンジンはGPS管理自動車の制御を一時的に支配し、自律モードでGPS管理自動車を動作させる。AIエンジンは、トラック上の特定地点で仮想自動車を追い抜くことが賢明かどうか、および仮想自動車の追い抜きがトラック上の位置を考慮して実際的なスピードで達成されることができるかどうかを決定する追い抜きシーケンスを開始することができる。AIエンジンが自律自動車に仮想自動車を追い抜かせることを決定した場合、AIエンジンは追い抜きシーケンスを実行し、仮想自動車を追い抜き、フレームごとのシーケンス上の自律自動車の位置を再計算する。自律自動車が追い抜き手順を完了したとき、自動車はGPS管理自動車の実際の位置に再配置される。再配置は、なめらかで現実的な移行を提供するために一連のフレームにわたる時間で行われる。自律自動車がGPS管理自動車の位置に到達すると、当該自動車は実世界自動車からのGPSデータにより再度管理される。
一部の例では、AIエンジンは実世界オブジェクトによる仮想オブジェクトの追い抜きを決定する。たとえば、レースゲームの例では、実世界自動車が仮想自動車の背後にあり、実世界自動車が仮想自動車よりも速く運転しているときに、追い抜き問題が発生する。この例では、実世界自動車は仮想自動車を通って運転しなければならない。このことは当然現実的でない。この例では、実世界自動車に対する制御がAIエンジンにより一時的に支配される。AIエンジンはこのときいくつかの相互に関係する目標を有する。すなわち、自動車は、現在いる場所を出発すべきである、もっともらしい方法で仮想自動車を追い抜くべきである、追い抜き後トラック上に戻るべきである、および、最も具体的には、実世界オブジェクトがそこにいた正確な時間にデータ点に戻るべきである、ならびにその間に別の実世界オブジェクトおよび仮想オブジェクトすべてをよけなければならない。これを行うためには、システムは以下の工程をとることができる。(i)実際の経路上での仮想自動車の予想と実世界の自動車との間の現在の距離を計算する。(ii)0を中心とするオフセット=f(距離)関数を展開する。カーブの形状は適用例自体に適合すべきである。異なる要因の例は、相対スピード、実世界オブジェクトおよび仮想オブジェクトの相対サイズ、ならびに操縦性を含む。また、オフセット関数は始動距離をパラメータとして0に戻るべきである(変位が始まる時点にはオフセットがまったく使用されないため)。最後の要求として、関数は、オブジェクトが小さなコーナーであっても互いに衝突しないことを保証すべきである。(iii)各時間段階で、システムが実世界自動車の実際の位置の間の実際の経路に沿って距離を計算し、この距離をオフセット関数の入力として使用する。このオフセット関数からの結果は、実際の経路の局所的接線に垂直な、自動車が変位されるべき距離である。オフセットは最も合理的な向で適用されるべきである。障害となる仮想自動車が実際の経路の左側にある場合、オフセットは実際の自動車を右側に移動させるべきである。
ユーザ制御オブジェクトと実データオブジェクトとの間の相互作用の例が本明細書において記載されている。これらの例では、ユーザ制御オブジェクト、実データオブジェクト、およびオブジェクトXが以下に説明されるように利用される。ユーザ制御オブジェクトは仮想世界内のオブジェクトであり、この場合、位置および別の特性がユーザ(たとえば、ゲーム参加者、レフェリーなど)により制御される。実データオブジェクトは仮想世界内のオブジェクトであり、この場合、位置および別の特性が実世界内の実オブジェクトから得られる。各実データオブジェクトについて、各タイムフレームに対する少なくとも位置情報が履歴リスト内に記憶される。また、そのタイムフレームについて、実データオブジェクトからの別の情報が記憶されることができる(たとえば、スピード、進行方向、向きなど)。オブジェクトXはユーザ制御オブジェクトの背後の最初の実データオブジェクトである。
一部の例では、システムは、実世界オブジェクトが可能なかぎり実世界オブジェクトの実際の位置に忠実であり続けることを保証するが、仮想オブジェクトも考慮する。具体的には、システムは、実世界オブジェクトの表現(実データオブジェクトとも呼ばれる)が仮想オブジェクト(ユーザ制御オブジェクトとも呼ばれる)を考慮し、適切に反応することを保証することができる。
別の例では、固定されていない実世界オブジェクトは動的オブジェクトと呼ばれ、一方、固定されている実オブジェクトは静的オブジェクトと呼ばれる。システムにより獲得される情報により、システムが、たとえば動的オブジェクトがどこにあるか、動的オブジェクトが何をしているか、および/または動的オブジェクトが何を表しているかを決定することが可能になる。
一部の例では、システムは、事象の過程で実世界の動的オブジェクトの位置に関する詳細な情報(たとえば、実際の位置、相対的位置など)を収集し分配する。システムはまた、事象から状態情報(たとえば、旗、標識、天候など)を収集することができる。
別の例では、システムは、環境内部の静的オブジェクトに関係する事象の間に、動的オブジェクトの実世界位置を連続的に決定するための位置決め手段を含む。位置決め手段は、たとえば事象の過程で動的オブジェクトのリアルタイムの更新位置を提供する一つまたは複数の位置センサを含むことができる。一例として、各動的オブジェクトは、個々の位置センサ、たとえば全地球測位システム(GPS)受信機を含むことができる。GPS受信機は50Hzの速度で自分の位置を再計算することができる。システムは、必要であれば、連続的な入力の間に内挿することができる(たとえば、エンドユーザ表示リフレッシュレートが位置更新割合と異なる場合)。
一部の例では、動的オブジェクトはまた、動的オブジェクトに関係する別の情報(たとえば、RPM、スピード、スロットル位置、ギア位置、現在の加速度およびピッチ、ロール、およびヨーを含む回転属性の変化を検出する慣性測定ユニット(IMU)など)を探知する追加のセンサを含むことができる。別の例では、スピード情報が位置から得られることがあり、スピードセンサ、たとえば実世界オブジェクト上の速度計から直接得られないこともある。
一部の例では、システムはGPS受信機により得られる位置分解能を約+/-10cmに高める特徴が含まれ、好ましくは水平1cmおよび高さ2cmに近づける。そのような特徴は、たとえばディファレンシャルGPS(DGPS)、搬送波位相強化(carrier-phase enhancement)GPS(CPGPS)、Omnistar補正メッセージ(Omnistar correction message)、地上基準点、Novatel社のWaypointソフトウェア、および/またはIMUとの組合せを含む。システムはまた、静的オブジェクトおよび/または事象状態(たとえば、旗、標識、天候など)からの情報を収集する一つまたは複数のセンサを含むことができる。
一部の例では、事象情報の一部、たとえば天候、旗、標識などが(たとえば、手動で、センサを使って自動的になど)収集され、ネットワークサーバに与えられることができる。
別の例では、ネットワークサーバは記憶装置(たとえば、データベース)にアクセスできる、および/または管理用端末を含む。インターネットに接続されるすべての端末が、ファイアウォール、ならびに/または保護およびプライバシーのための別のセキュリティ手段を含むことができる。
一部の例では、エンド・ユーザ・ゲーム端末が、インターネットおよび/または任意の別のタイプの通信ネットワークを介してメディアキャスタからデータを受信する。エンド・ユーザ・ゲーム端末はパーソナルコンピュータ(たとえば、携帯電話、別の携帯式通信装置、送信装置など)および/またはゲームコンソール(たとえば、XBOXゲームコンソール、PS3ゲームコンソールなど)を含んでもよい。GPS位置ソリューションはGPS時間値を含むことができるが、仮想表現内部のタイミングは、たとえば任意のGPSタイミング情報に同期する必要はない。
図1に戻って参照すると、ネットワークサーバが動的オブジェクトおよびローカル環境から生情報のすべてを受信する。この情報の少なくとも一部が、無線基地局および/または別のタイプのトランシーバを含むことができる通信ソリューションによってネットワークサーバに至る。ネットワークサーバはこのデータをデータベース内に記憶し、同様に、必要に応じてデータをフィルタリングし、最適化し、および/または修復する。たとえば、ネットワークサーバは巡回冗長検査(CRC)を行い、電気通信の停止を調べる。ネットワークサーバはさらに処理するために(たとえば、メディアキャスタによる)適切な形式でデータを記憶する。
一部の例では、メディアキャスタはインターネットに接続されるサーバであり、記憶装置から事象データを取り出すように、およびエンドユーザ(すなわち、プレーヤ)の制御下にあるゲームクライアントと一般に呼ばれるエンド・ユーザ・ゲーム装置に連続ストリームの形でデータを送信するように構成される。データは位置データ、入手可能なときにはテレメトリデータ、およびより一般的には実際の事象から得られるまたは導出される任意のデータを含むことができる。
別の例では、多数のメディアキャスタが、ゲームクライアントへの最適な接続を提供するために地理的に分散した構成で(たとえば、世界中に)配置されることができる。クライアントはローカルのメディアセンタからストリーミングデータを取り出すことがある。ゲームクライアントへのデータストリームは暗号化を使って任意で保護されることができる。
一部の例では、システムは一つまたは複数のサービス、たとえば受信サービス、データベースサービス、フィルタリングおよび最適化のサービス、ならびに/またはゲームサーバを含むことができる。受信サービスアプリケーションは、生データを受信しそれをデータベースに記憶するためにバックグラウンドで実行する。データベースサービスは大容量のデータトランザクション用に構成された標準的な既製のデータベースアプリケーションとすることができる。いくつかのデータベースが、動的オブジェクト(たとえば、自動車)に関係する情報、環境(たとえば、トラック)に関係する情報、および別の情報を記憶するために生成されることができる。フィルタリングおよび最適化のサービスは、データベース内に記憶されたデータを調べ、奇異な値からそのデータをフィルタリングし、欠けている値(すなわちデータ供給停止)を計算し、最適化し、データベース内に追加するアプリケーションである。
ゲームサーバは、ゲームクライアントがメディアキャスタに接続することができるようにするアプリケーションである。ゲームサーバはデータベースからどのデータが送られるか(リアルタイムのデータ、または過去のレースのデータ)を選択する命令をデータベースコントローラに送信する。ゲームサーバはまた、選択されたデータをデータベースから収集し、接続されたゲームクライアントにそのデータをデータパケットとして送信する。図1は別のサービスと分離したゲームサーバを図示しているが、ゲームサーバはこれらの別のサービスに一体化されることができ、多数のゲームサーバがシステム内部で動作していることができる、および/またはゲームサーバはシステムの任意の別の部分に一体化されることができる。
別の例では、システムは小さなデータ供給停止を処理する機能を含む。たとえば、システムはカルマンフィルタリングを使用して、損失したデータまたは破損したデータパッケージのために経験されうる小さなデータ供給停止をフィルタリングし、最終的に予測する。システムはまた、欠けているパッケージの数を数え、欠けているパッケージの値を予測する。カルマンフィルタが、動的オブジェクトがどこにいることがあるか(たとえば、1〜2秒以上)をもはや高い信頼性で予測できない大きなデータ供給停止については、ネットワークサーバがクライアントに信号を送信する。供給停止中、以下により詳細に説明されるように、クライアントは動的オブジェクトを自律モードで管理する。一部の例では、データが受信されるタイムストリーミングと、そのようなデータが再生されるまたは使用される時間との間に遅延がもたらされ、維持される。
一部の例では、システムは、ユーザが事象を一時停止する、巻き戻す、および/または早送りすることができるようにする機能を含む。一時停止、巻き戻し、および/または早送りの機能は、事象の記録された再生において、および/または事象のライブの再生おいて利用されることができる。たとえば、ユーザがライブのレースでレーシングカーをシミュレートしており、中断を必要とすることがある。この例では、ユーザはシミュレーションを一時停止し、中断後にシミュレーションを再開することができる。ユーザは、たとえば中断後に、一時停止した位置から続け、その後、記録された再生シミュレーションを再生することができる、および/またはユーザはライブシミュレーションまでレースを早送りすることができる(たとえば、自動車の過去の性能に基づき、シミュレートされた自動車を再配置する、ピットストップにジャンプするなど)。
別の例では、システムは、クライアントサーバ構成でネットワーク、たとえばインターネットを介してネットワークサーバに結びつけられる一つまたは複数のクライアントアプリケーションを含む。クライアントアプリケーションへの入力はネットワークサーバからのデータのストリームである。データの正確な形式が規定されることができ、たとえばメッセージID、自動車ID、汎用ユニット状態、GPS信号など。クライアントアプリケーション機能は、リアルタイム(またはリアルタイムに近い)データが仮想世界で解釈され可視化されることができるグラフィカルな方法で明示する。アプリケーションはまた、エンドユーザ(すなわち、ゲーム参加者)が仮想世界と対話することができる領域を明示する。
別の例では、クライアントは初期化能力を含む。この能力は、仮想表現内部の動的オブジェクトおよび仮想オブジェクトを初期化すること、グラフィックエンジンを初期化すること、ログファイルを開くこと、および/またはユーザコントロール(たとえば、マウス、キーボード、ゲームパッド、ハンドルなど)を設定することを含むことができる。ユーザコントロールはエンドユーザ(すなわち、プレーヤ)が、実際の事象の仮想表現の中に導入される仮想オブジェクトを制御することができるようにする。初期化能力はまた、設定、たとえば仮想事象の選択可能なユーザ透視図(たとえば、上から下、活動中の自動車をビューの中心にした上から下、および自動車の背後のビュー)を処理する。クライアントはまた、実世界環境、たとえばレーストラック(サーキット)内の静的オブジェクトを記載する点の集合を読み取る。
一部の例では、事象に対する局所的環境の表現が、静的オブジェクト(すなわち、トラック)の位置情報を含む。たとえば、位置情報はレーストラックに沿った点の緯度、経度、および高さを含む。そのような点は地形図、たとえばGoogle Earth、および/または任意の別の地図情報源から得られることができる。
別の例では、実質的なデータ供給停止がある状況では(すなわち、失われたデータが待ち時間よりも大きいためデータ内挿ができない場合)、影響を受けた各GPS管理自動車がAIエンジンにより自律モードで一時的に制御される。AIエンジンは、分かっている最近のGPS位置から、フレームごとの流れで所与のトラックに対してあらかじめ決定された可能な最善の経路に自動車を移し(たとえば、所与の環境、たとえばレーストラックに対して理想的経路が決定される、最短長経路、最短時間経路、中間地点により規定される経路、カーブに沿う、カーブの内側のルートに沿う、カーブの外側のルートに沿うなど)、分かっている最近の速度、挙動、および加速度で継続する。ゲームエンジンはサーバから正しいデータを受信することを試みることを継続する。得られると、AIエンジンは自律的に制御される自動車をフレームごとの流れで基本経路から実際の位置になめらかで現実的な方法で移動させる。
一部の例では、システムは、1人または複数人のエンドユーザがネットワークサーバからの事象データにアクセスし、仮想オブジェクトの挿入による実世界の動的オブジェクトを含む実際の事象の仮想表現に参加することができるようにする。エンドユーザの仮想表現は、ネットワークサーバからのストリーミング事象データを使用して事象と共にリアルタイムに、または少なくともほぼリアルタイムに達成されることができる。エンドユーザはまた、ネットワークサーバを介してデータベースから得る以前に記録されたデータを使用して、前の事象の仮想表現に参加することを選択することがある。いずれの事象でも、システムは、エンドユーザがまるで実際の事象の所にいて、実世界オブジェクトと一緒に参加しているように、本明細書において記載されている様々な機能を介して現実的経験をエンドユーザに提供する。
上述のシステムおよび方法はデジタル電子回路、すなわちコンピュータのハードウェア、ファームウェア、および/またはソフトウェアの形で実現されることができる。実現はコンピュータプログラム製品(すなわち、情報媒体において有形に具体化されるコンピュータプログラム)としてもよい。実現は、たとえばデータ処理装置による実行のため、またはデータ処理装置の動作を制御するための、機械可読記憶装置とすることができる。実現は、たとえばプログラマブルプロセッサ、コンピュータ、および/または多数のコンピュータとすることができる。
コンピュータプログラムは、コンパイル型言語および/またはインタープリタ型言語を含む任意の形式のプログラミング言語で書かれることができ、コンピュータプログラムは、独立プログラム、またはサブルーチン、要素、および/もしくはコンピューティング環境で使用するのに適した別のユニットを含む、任意の形式で導入されることができる。コンピュータプログラムは、一つのコンピュータ上で、または一つのサイトにある多数のコンピュータ上で実行されるために配置することができる。
方法工程は、入力データに対して処理し出力を生成することにより本発明の機能を実行するコンピュータプログラムを実行する一つまたは複数のプログラマブルプロセッサにより実行されることができる。方法工程はまた、専用の論理回路により実行されることができ、装置は専用の論理回路として実現されることができる。回路は、たとえばFPGA(フィールド・プログラマブル・ゲート・アレイ)および/またはASIC(特定用途向け集積回路)とすることができる。モジュール、サブルーチン、およびソフトウェアエージェントは、その機能を実現するコンピュータプログラム、プロセッサ、特殊回路、ソフトウェア、および/またはハードウェアの一部を指すことがある。
コンピュータプログラムの実行に適したプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方、および任意の種類のデジタルコンピュータの任意の一つまたは複数のプロセッサを含む。一般に、プロセッサが、読出し専用メモリ、またはランダム・アクセス・メモリ、または両方から命令およびデータを受信する。コンピュータの本質的要素は、命令を実行するためのプロセッサ、ならびに命令およびデータを記憶するための一つまたは複数のメモリ装置である。一般に、コンピュータは、データを記憶するための一つまたは複数の大容量記憶装置(たとえば、磁気ディスク、光磁気ディスク、または光ディスク)を含むことができる、すなわち一つまたは複数の大容量記憶装置からデータを受信する、および/またはそこにデータを転送するように動作可能なように結合されることができる。
データ伝送および命令はまた通信ネットワークを介して行われることができる。コンピュータプログラム命令およびデータを具体化するのに適した情報媒体は、例として半導体メモリ装置を含む不揮発性メモリのすべての形態を含む。情報媒体は、たとえばEPROM、EEPROM、フラッシュメモリ装置、磁気ディスク、内蔵ハードディスク、取外し可能ディスク、光磁気ディスク、CD-ROMディスク、および/またはDVD-ROMディスクとすることができる。プロセッサおよびメモリは専用の論理回路により補足される、および/または専用の論理回路に組み込まれることができる。
ユーザとの対話を提供するために、上述の技術は表示装置を有するコンピュータ上に実現されることができる。表示装置は、たとえば陰極線管(CRT)および/または液晶表示装置(LCD)モニタとすることができる。ユーザとの対話は、たとえばユーザへの情報の表示装置、ならびにユーザがコンピュータに入力を提供する(たとえば、ユーザインタフェース要素と対話する)ことができるキーボードおよびポインティング装置(たとえば、マウスまたはトラックボール)とすることができる。別の種類の装置がユーザとの対話を提供するために使用されることができる。別の装置は、たとえば任意の形態の感覚フィードバック(たとえば、視覚フィードバック、音声フィードバック、または触覚フィードバック)の形でユーザに提供されるフィードバックとすることができる。ユーザからの入力は、たとえば音響、音声、および/または触覚入力を含む任意の形態で受信されることができる。
上述の技術は、バックエンド構成要素を含む分散コンピューティングシステム内に実現されることができる。バックエンド構成要素は、たとえばデータサーバ、ミドルウェア構成要素、および/またはアプリケーションサーバとすることができる。上述の技術は、フロントエンド構成要素を含む分散コンピューティングシステム内に実現されることができる。フロントエンド構成要素は、たとえばグラフィカル・ユーザ・インタフェースを有するクライアントコンピュータ、ユーザが例示的な実現と対話することができるWebブラウザ、および/または送信装置のための別のグラフィカル・ユーザ・インタフェースとすることができる。システムの構成要素は任意の形態または媒体のデジタルデータ通信(たとえば、通信ネットワーク)により相互接続されることができる。通信ネットワークの例はローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)、インターネット、有線ネットワーク、および/または無線ネットワークを含む。
システムはクライアントおよびサーバを含むことができる。クライアントおよびサーバは一般に互いに遠く離れており、典型的には通信ネットワークを介して対話する。クライアントおよびサーバの関係は、個々のコンピュータ上で実行され互いにクライアントサーバの関係を有するコンピュータプログラムによって生じる。
パケットベースのネットワークは、たとえばインターネット、キャリア・インターネット・プロトコル(IP)・ネットワーク(たとえば、ローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)、キャンパス・エリア・ネットワーク(CAN)、メトロポリタン・エリア・ネットワーク(MAN)、ホーム・エリア・ネットワーク(HAN))、プライベートIPネットワーク、IP構内交換機(IPBX)、無線ネットワーク(たとえば、無線アクセスネットワーク(RAN)、802.11ネットワーク、802.16ネットワーク、GPRS(general packet radio service)ネットワーク、HiperLAN)、および/または別のパケットベースのネットワークを含むことができる。回線ベースのネットワークは、たとえば公衆交換電話網(PSTN)、構内交換機(PBX)、無線ネットワーク(たとえば、RAN、ブルートゥース、符号分割多元接続(CDMA)ネットワーク、時分割多元接続(TDMA)ネットワーク、GSM(global system for mobile communications)ネットワーク)、および/または別の回線ベースのネットワークを含むことができる。
クライアント装置は、たとえばコンピュータ、ブラウザ装置を有するコンピュータ、電話機、IP電話、携帯機器(たとえば携帯電話、携帯情報端末(PDA)装置、ラップトップコンピュータ、電子メール装置)、および/または別の通信装置を含むことができる。ブラウザ装置は、たとえばWWW(world wide web)ブラウザ(たとえばMicrosoft Corporationから入手できるMicrosoft(登録商標)Internet Explorer(登録商標)、Mozilla Corporationから入手できるMozilla(登録商標)Firefox)を備えるコンピュータ(たとえばデスクトップコンピュータ、ラップトップコンピュータ)を含む。モバイルコンピューティング装置は、たとえば携帯情報端末(PDA)を含む。
備える(comprise)、含む(include)、および/またはそれぞれの複数形は非制限的であり、列挙された部分を含み、かつ列挙されていない追加の部分を含むことができる。および/または(and/or)は非制限的であり、列挙された部分の一つまたは複数および列挙された部分の組合せを含む。
本発明が、本発明の好ましい態様を参照して具体的に示され説明されたが、添付の特許請求の範囲により包含される本発明の範囲を逸脱することなく、本発明において形態および詳細に様々な変更を行うことができることが当業者により理解される。

Claims (30)

  1. 仮想環境内のユーザ制御オブジェクトのユーザ位置を決定する工程;
    前記実環境内の実データオブジェクトの実際の位置に基づき、前記ユーザ位置に対する前記仮想環境内の前記実データオブジェクトの仮想位置を決定する工程;ならびに
    前記仮想位置、および前記実データオブジェクトに関連する一つまたは複数の保存された実際の位置に基づき、前記仮想環境内の前記実データオブジェクトの現在の仮想位置を制御する工程
    を含む、実環境内の事象をシミュレートするための方法。
  2. 実データオブジェクトの次の実際の位置が入手可能かどうかを決定する工程;ならびに
    実環境に関連するあらかじめ規定された経路、および前記実データオブジェクトの前記次の実際の位置が入手可能かどうかの決定に基づき、仮想環境内の前記実データオブジェクトの現在の仮想位置を制御する工程
    をさらに含む、請求項1記載の方法。
  3. 実データオブジェクトの追加の実際の位置が入手可能かどうかを決定する工程;
    仮想環境内のユーザ制御オブジェクトの次のユーザ位置を識別する工程;
    前記実データオブジェクトの前記追加の実際の位置が入手可能かどうかの決定、および前記次のユーザ位置に基づき、現在の仮想位置を前記追加の実際の位置に関連する仮想位置に移動させる経路に関連する、前記仮想環境内の前記実データオブジェクトの一つまたは複数の将来の仮想位置を決定する工程;ならびに
    前記一つまたは複数の将来の仮想位置に基づき、前記仮想環境内の前記実データオブジェクトの前記現在の仮想位置を制御する工程
    をさらに含む、請求項2記載の方法。
  4. 仮想環境内のユーザ制御オブジェクトの次のユーザ位置を識別する工程;
    実環境内の実データオブジェクトの次の実際の位置に基づき、前記仮想環境内の前記実データオブジェクトの次の仮想位置を決定する工程;ならびに
    前記次の仮想位置、および該次の仮想位置と前記次のユーザ位置との間の現実的距離に基づき、前記実データオブジェクトの現在の仮想位置を制御する工程
    をさらに含む、請求項1記載の方法。
  5. 一つまたは複数の保存された実際の位置に基づき、仮想環境内の実データオブジェクトの追加の仮想位置を決定する工程をさらに含む、請求項4記載の方法。
  6. 仮想環境内のユーザ制御オブジェクトの追加のユーザ位置を識別する工程;
    実環境内の次の実データオブジェクトの実際の位置に基づき、前記仮想環境内の前記次の実データオブジェクトの仮想位置を決定する工程;ならびに
    前記仮想位置、該仮想位置と前記ユーザ制御オブジェクトの前記追加のユーザ位置との間の現実的距離、および前記実データオブジェクトの次の仮想位置に関連する時系列識別に基づき、前記仮想環境内の前記次の実データオブジェクトの現在の仮想位置を制御する工程
    をさらに含む、請求項4記載の方法。
  7. 一つまたは複数の保存された位置に基づき、次の時系列識別に関連する、仮想環境内の実データオブジェクトの追加の仮想位置を決定する工程;ならびに
    一つまたは複数の次の保存された位置および前記次の時系列識別に基づき、前記仮想環境内の次の実データオブジェクトの次の仮想位置を決定する工程
    をさらに含む、請求項6記載の方法。
  8. 実環境内の実データオブジェクトの次の実際の位置に基づき、次の実際の位置とは異なりユーザ制御オブジェクトの前にある、仮想環境内の前記実データオブジェクトの次の仮想位置を決定する工程;および
    前記実データオブジェクトの前記次の仮想位置に基づき、前記実データオブジェクトの現在の仮想位置を制御する工程
    をさらに含む、請求項1記載の方法。
  9. 仮想環境内の実データオブジェクトの仮想位置が、実環境内の前記実データオブジェクトの実際の位置と異なる、請求項1記載の方法。
  10. 実環境内の次の実データオブジェクトの実際の位置に基づき、仮想環境内のユーザ制御オブジェクトのユーザ位置に対する前記仮想環境内の前記次の実データオブジェクトの仮想位置を決定する工程;ならびに
    前記仮想位置、および前記次の実データオブジェクトに関連する一つまたは複数の保存された実際の位置に基づき、前記仮想環境内の前記次の実データオブジェクトの現在の仮想位置を制御する工程
    をさらに含む、請求項1記載の方法。
  11. 仮想位置を決定する工程が、実環境内の実データオブジェクトの移動と共にリアルタイムまたはほぼリアルタイムに行われる、請求項1記載の方法。
  12. 仮想環境内の一つまたは複数の実世界オブジェクトと一つまたは複数の仮想オブジェクトとの間の予想される交差を決定する工程;および
    前記一つまたは複数の実世界オブジェクトと前記一つまたは複数の仮想オブジェクトとの間の前記予想される交差に基づき、少なくとも一つの仮想オブジェクトと交差すると予想される各実世界オブジェクトの代わりの位置を決定する工程
    を含む、実環境内の事象をシミュレートするための方法。
  13. 個々の代わりの位置に関係させる(interest in)と予想される各実世界オブジェクトを配置する工程をさらに含む、請求項12記載の方法。
  14. 一つまたは複数の実世界オブジェクトの位置が欠けているかどうかを決定する工程;および
    個々の実世界オブジェクトに関連する一つまたは複数の保存された位置に基づき、各実世界オブジェクトの欠けているデータの、欠けている位置を決定する工程
    をさらに含む、請求項12記載の方法。
  15. 実世界オブジェクトの仮想位置および実世界位置を識別する工程;
    仮想オブジェクトの仮想位置を識別する工程;
    前記実世界オブジェクトの前記仮想位置、前記実世界オブジェクトの前記実世界位置、前記仮想オブジェクトの前記仮想位置、またはそれらの任意の組合せに基づき、前記実世界オブジェクトと前記仮想オブジェクトとの予想される交差を決定する工程;ならびに
    前記予想される交差、および前記実世界オブジェクトに関連する一つまたは複数の記憶された仮想位置に基づき、前記実世界オブジェクトの前記仮想位置を修正する工程
    を含む、実環境内の事象をシミュレートするための方法。
  16. データ処理装置に、
    仮想環境内のユーザ制御オブジェクトのユーザ位置を決定させ、
    前記実環境内の実データオブジェクトの実際の位置に基づき、前記ユーザ位置の前記仮想環境内の前記実データオブジェクトの仮想位置を決定させ、かつ
    前記仮想位置、および前記実データオブジェクトに関連する一つまたは複数の保存された位置に基づき、前記仮想環境内の前記実データオブジェクトの現在の仮想位置を制御させる
    よう機能する命令を含む、情報媒体内に有形に具体化される、コンピュータプログラム製品。
  17. 仮想環境内のユーザ制御オブジェクトのユーザ位置を決定するように構成された仮想データ位置モジュールと、
    実環境内の実データオブジェクトの実際の位置に基づき、前記ユーザ位置の前記仮想環境内の前記実データオブジェクトの仮想位置を決定するように構成された実データ位置モジュールと、
    前記仮想位置、および前記実データオブジェクトに関連する一つまたは複数の保存された実際の位置に基づき、前記仮想環境内の前記実データオブジェクトの現在の仮想位置を制御するように構成された位置制御モジュールと
    を備える、前記実環境内の事象をシミュレートするためのシステム。
  18. 実データオブジェクトの次の実際の位置が入手可能かどうかを決定するようにさらに構成された実データ位置モジュールと、
    実環境に関連するあらかじめ規定された経路、および前記実データオブジェクトの次の実際の位置が入手可能かどうかの決定に基づき、仮想環境内の前記実データオブジェクトの現在の仮想位置を制御するようにさらに構成された位置制御モジュールと
    をさらに備える、請求項17記載のシステム。
  19. 実データオブジェクトの追加の実際の位置が入手可能かどうかを決定するようにさらに構成された実データ位置モジュールと、
    仮想環境内のユーザ制御オブジェクトの次のユーザ位置を識別するようにさらに構成された仮想データ位置モジュールと、
    前記実データオブジェクトの追加の実際の位置が入手可能かどうかの決定、および前記次のユーザ位置に基づき、現在の仮想位置を前記追加の実際の位置に関連する仮想位置に移動させる経路に関連する、前記仮想環境内の前記実データオブジェクトの一つまたは複数の将来の仮想位置を決定するように構成された位置予想モジュールと、
    前記一つまたは複数の将来の仮想位置に基づき、前記仮想環境内の前記実データオブジェクトの前記現在の仮想位置を制御するようにさらに構成された前記位置制御モジュールと
    をさらに備える、請求項18記載のシステム。
  20. 仮想環境内のユーザ制御オブジェクトの次のユーザ位置を識別するようにさらに構成された仮想データ位置モジュールと、
    実環境内の実データオブジェクトの次の実際の位置に基づき、前記仮想環境内の前記実データオブジェクトの次の仮想位置を決定するようにさらに構成された実データ位置モジュールと、
    前記次の仮想位置、および該次の仮想位置と前記次のユーザ位置との間の現実的距離に基づき、前記実データオブジェクトの現在の仮想位置を制御するようにさらに構成された位置制御モジュールと
    をさらに備える、請求項17記載のシステム。
  21. 一つまたは複数の保存された実際の位置に基づき、仮想環境内の実データオブジェクトの追加の仮想位置を決定するようにさらに構成された実データ位置モジュールをさらに備える、請求項20記載のシステム。
  22. 仮想環境内のユーザ制御オブジェクトの追加のユーザ位置を識別するようにさらに構成された仮想データ位置モジュールと、
    実環境内の次の実データオブジェクトの実際の位置に基づき、前記仮想環境内の前記次の実データオブジェクトの仮想位置を決定するようにさらに構成された前記実データ位置モジュールと、
    前記仮想位置、該仮想位置と前記ユーザ制御オブジェクトの前記追加のユーザ位置との間の現実的距離、および実データオブジェクトの次の仮想位置に関連する時系列識別に基づき、前記仮想環境内の前記次の実データオブジェクトの現在の仮想位置を制御するようにさらに構成された位置制御モジュールと
    をさらに備える、請求項20記載のシステム。
  23. 一つまたは複数の保存された位置に基づき、次の時系列識別に関連する、仮想環境内の実データオブジェクトの追加の仮想位置を決定し、
    一つまたは複数の次の保存された位置、および前記次の時系列識別に基づき、前記仮想環境内の次の実データオブジェクトの次の仮想位置を決定する
    ようにさらに構成された実データ位置モジュールをさらに備える、請求項22記載のシステム。
  24. 実環境内の実データオブジェクトの次の実際の位置に基づき、前記次の実際の位置とは異なりかつユーザ制御オブジェクトの前にある、仮想環境内の前記実データオブジェクトの次の仮想位置を決定するようにさらに構成された実データ位置モジュールと、
    前記実データオブジェクトの前記次の仮想位置に基づき、該実データオブジェクトの現在の仮想位置を制御するようにさらに構成された位置制御モジュールと
    をさらに備える、請求項17記載のシステム。
  25. 実環境内の次の実データオブジェクトの次の実際の位置に基づき、仮想環境内のユーザ制御オブジェクトのユーザ位置に対する前記仮想環境内の次の実データオブジェクトの仮想位置を決定するようにさらに構成された実データ位置モジュールと、
    仮想位置、および前記次の実データオブジェクトに関連する一つまたは複数の保存された実際の位置に基づき、前記仮想環境内の前記次の実データオブジェクトの現在の仮想位置を制御するようにさらに構成された位置制御モジュールと
    をさらに備える、請求項17記載のシステム。
  26. 仮想環境内の一つまたは複数の実世界オブジェクトと一つまたは複数の仮想オブジェクトとの間の予想される交差を決定するように構成された位置交差モジュールと、
    前記一つまたは複数の実世界オブジェクトと前記一つまたは複数の仮想オブジェクトとの間の前記予想される交差に基づき、少なくとも一つの仮想オブジェクトと交差すると予想される各実世界オブジェクトの代わりの位置を決定するように構成された位置予想モジュールと
    を備える、実環境内の事象をシミュレートするためのシステム。
  27. 個々の代わりの位置に関係させると予想される各実世界オブジェクトを配置するように構成された位置制御モジュールをさらに備える、請求項26記載のシステム。
  28. 一つまたは複数の実世界オブジェクトの位置が欠けているかどうか決定するように構成された実データ位置モジュールと、
    前記個々の実世界オブジェクトに関連する一つまたは複数の保存された位置に基づき、各実世界オブジェクトの欠けているデータに対する欠けた位置を決定するようにさらに構成された位置予想モジュールと
    をさらに備える、請求項26記載のシステム。
  29. 仮想位置、および実世界オブジェクトの実世界位置を識別するように構成された実データ位置モジュールと、
    仮想オブジェクトの仮想位置を識別するように構成された仮想データ位置モジュールと、
    前記実世界オブジェクトの前記仮想位置、前記実世界位置、前記仮想オブジェクトの前記仮想位置、またはそれらの任意の組合せに基づき、前記実世界オブジェクトと前記仮想オブジェクトとの予想される交差を決定するように構成された位置予想モジュールと、
    前記予想される交差、および前記実世界オブジェクトに関連する一つまたは複数の記憶された仮想位置に基づき、前記実世界オブジェクトの前記仮想位置を修正するように構成された位置制御モジュールと
    を備える、実環境内の事象をシミュレートするためのシステム。
  30. 仮想環境内のユーザ制御オブジェクトのユーザ位置を決定するための手段と、
    実環境内の実データオブジェクトの実際の位置に基づき、前記ユーザ位置に対する前記仮想環境内の前記実データオブジェクトの仮想位置を決定するための手段と、
    前記仮想位置、および前記実データオブジェクトに関連する一つまたは複数の保存された実際の位置に基づき、前記仮想環境内の前記実データオブジェクトの現在の仮想位置を制御するための手段と
    を備える、前記実環境内の事象をシミュレートするためのシステム。
JP2011528441A 2008-09-24 2009-09-24 実環境内の事象をシミュレートするためのシステムおよび方法 Pending JP2012503513A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US9969708P 2008-09-24 2008-09-24
US61/099,697 2008-09-24
PCT/IB2009/006924 WO2010035106A1 (en) 2008-09-24 2009-09-24 System and method for simulating events in a real environment

Publications (2)

Publication Number Publication Date
JP2012503513A true JP2012503513A (ja) 2012-02-09
JP2012503513A5 JP2012503513A5 (ja) 2013-08-08

Family

ID=41395970

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011528441A Pending JP2012503513A (ja) 2008-09-24 2009-09-24 実環境内の事象をシミュレートするためのシステムおよび方法

Country Status (9)

Country Link
US (1) US20120100911A1 (ja)
EP (1) EP2326397A1 (ja)
JP (1) JP2012503513A (ja)
KR (1) KR20110069824A (ja)
CN (1) CN102238985A (ja)
AU (1) AU2009295574A1 (ja)
BR (1) BRPI0919128A2 (ja)
RU (1) RU2011116066A (ja)
WO (1) WO2010035106A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018518081A (ja) * 2015-04-02 2018-07-05 カタプルト グループ インターナショナル リミテッド スポーツバーチャルリアリティシステム
JP2023523265A (ja) * 2020-04-24 2023-06-02 アイ アール キネティクス リミテッド トラックにおけるモータースポーツイベントを表すインタラクティブなハイブリッド環境を制御するシステム及び方法

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100271367A1 (en) * 2009-04-22 2010-10-28 Sony Computer Entertainment America Inc. Method and apparatus for combining a real world event and a computer simulation
GB2511668A (en) 2012-04-12 2014-09-10 Supercell Oy System and method for controlling technical processes
US8814674B2 (en) 2012-05-24 2014-08-26 Supercell Oy Graphical user interface for a gaming system
US8954890B2 (en) * 2012-04-12 2015-02-10 Supercell Oy System, method and graphical user interface for controlling a game
US9697675B2 (en) * 2013-04-26 2017-07-04 Atlas Gaming Technologies Pty Ltd. Gaming machine having interactive virtual objects and method
JP5902229B2 (ja) * 2013-07-09 2016-04-13 エヌエイチエヌ エンターテインメント コーポレーションNHN Entertainment Corporation シミュレーション方法およびシステム
WO2015099687A1 (en) * 2013-12-23 2015-07-02 Intel Corporation Provision of a virtual environment based on real time data
US9724588B1 (en) 2014-07-11 2017-08-08 ProSports Technologies, LLC Player hit system
US9610491B2 (en) 2014-07-11 2017-04-04 ProSports Technologies, LLC Playbook processor
US9398213B1 (en) 2014-07-11 2016-07-19 ProSports Technologies, LLC Smart field goal detector
US9305441B1 (en) 2014-07-11 2016-04-05 ProSports Technologies, LLC Sensor experience shirt
US10264175B2 (en) 2014-09-09 2019-04-16 ProSports Technologies, LLC Facial recognition for event venue cameras
US10025375B2 (en) 2015-10-01 2018-07-17 Disney Enterprises, Inc. Augmented reality controls for user interactions with a virtual world
US10222228B1 (en) 2016-04-11 2019-03-05 State Farm Mutual Automobile Insurance Company System for driver's education
US10026309B1 (en) 2016-04-11 2018-07-17 State Farm Mutual Automobile Insurance Company Networked vehicle control systems to facilitate situational awareness of vehicles
US11851041B1 (en) 2016-04-11 2023-12-26 State Farm Mutual Automobile Insurance Company System for determining road slipperiness in bad weather conditions
US10233679B1 (en) 2016-04-11 2019-03-19 State Farm Mutual Automobile Insurance Company Systems and methods for control systems to facilitate situational awareness of a vehicle
US10019904B1 (en) 2016-04-11 2018-07-10 State Farm Mutual Automobile Insurance Company System for identifying high risk parking lots
US10872379B1 (en) 2016-04-11 2020-12-22 State Farm Mutual Automobile Insurance Company Collision risk-based engagement and disengagement of autonomous control of a vehicle
US10486708B1 (en) 2016-04-11 2019-11-26 State Farm Mutual Automobile Insurance Company System for adjusting autonomous vehicle driving behavior to mimic that of neighboring/surrounding vehicles
US10247565B2 (en) 2016-04-11 2019-04-02 State Farm Mutual Automobile Insurance Company Traffic risk avoidance for a route selection system
US12347037B2 (en) 2016-11-11 2025-07-01 Telefonaktiebolaget Lm Ericsson (Publ) Supporting an augmented-reality software application
WO2018167532A1 (fr) * 2017-03-13 2018-09-20 Spondeo Group Sa Procédé de génération de données multimédia associée à un système de sport
CN110546614B (zh) * 2017-05-05 2023-09-26 微芯片技术股份有限公司 在串行通信链路上以均匀延迟传输事件的设备和方法
US10357715B2 (en) * 2017-07-07 2019-07-23 Buxton Global Enterprises, Inc. Racing simulation
US10803674B2 (en) * 2017-11-03 2020-10-13 Samsung Electronics Co., Ltd. System and method for changing a virtual reality environment dynamically
US11954651B2 (en) * 2018-03-19 2024-04-09 Toyota Jidosha Kabushiki Kaisha Sensor-based digital twin system for vehicular analysis
GB2574650A (en) * 2018-06-14 2019-12-18 Sony Interactive Entertainment Inc System and method for generating an input signal
CN114341808B (zh) * 2019-03-28 2025-06-10 亚马逊技术股份有限公司 用于交互世界的低延迟、分布式应用
CN111589107B (zh) * 2020-05-14 2023-04-28 北京代码乾坤科技有限公司 虚拟模型的行为预测方法和装置
US11826654B2 (en) 2021-05-25 2023-11-28 International Business Machines Corporation Dynamic spawn assets based on news feeds in a game
US12172079B2 (en) * 2021-07-23 2024-12-24 Electronic Arts Inc. Route generation system within a virtual environment of a game application
CN116351051A (zh) * 2021-12-28 2023-06-30 上海米哈游海渊城科技有限公司 虚拟对象的显示方法及装置
WO2023229615A1 (en) * 2022-05-25 2023-11-30 Witman Skyler Computer implemented method for virtual car rendering
FI20235839A1 (en) * 2023-07-26 2025-01-27 Advantage Holding Ltd Method and system for a mixed reality racing game
US12263407B1 (en) * 2024-09-17 2025-04-01 Monsarrat, Inc. Real world walking to control superhuman virtual world movement

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6080063A (en) * 1997-01-06 2000-06-27 Khosla; Vinod Simulated real time game play with live event
WO2001005476A1 (en) * 1999-07-21 2001-01-25 Thian Liang Ong System for simulating events in a real environment
GB2365790A (en) * 2000-08-02 2002-02-27 Timothy James Ball Competitive simulation with real time input from real event
JP2003175278A (ja) * 2001-12-11 2003-06-24 Webstream:Kk 競技仮想参加装置、競技仮想参加方法、競技仮想参加プログラム、競技観戦装置、競技観戦方法、競技観戦プログラム、及び、競技観戦画像生成サーバ

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2726370B1 (fr) * 1994-10-28 1997-01-10 Vallortigara Alain Systeme de controle du positionnement dans le domaine du sport, d'une balle et des joueurs
JPH09114370A (ja) * 1995-10-18 1997-05-02 Denso Corp ナビゲーション装置
US8160994B2 (en) * 1999-07-21 2012-04-17 Iopener Media Gmbh System for simulating events in a real environment
GB2365360B (en) * 2000-08-02 2004-08-25 Timothy James Ball Racing simulation system
EP1307269A1 (en) * 2000-08-02 2003-05-07 Timothy James Ball Simulation system
DE10049124A1 (de) * 2000-10-02 2002-04-18 Manfred Goettling Verfahren zum Betrieb eines Rennsimulators und eine zugeordnete Vorrichtung
DE10109282A1 (de) * 2001-02-26 2002-09-05 Andreas Korzeniewski Computerspiel
WO2005009566A2 (en) * 2003-07-17 2005-02-03 Fabricio Vayra Method and system for interaction with real-time events from a remote location, through use of a computer, game console or other module
US7402106B2 (en) * 2004-03-24 2008-07-22 Bay Tek Games, Inc. Computer controlled car racing game
US7518501B2 (en) * 2005-07-14 2009-04-14 Huston Charles D GPS based situational awareness and identification system and method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6080063A (en) * 1997-01-06 2000-06-27 Khosla; Vinod Simulated real time game play with live event
WO2001005476A1 (en) * 1999-07-21 2001-01-25 Thian Liang Ong System for simulating events in a real environment
GB2365790A (en) * 2000-08-02 2002-02-27 Timothy James Ball Competitive simulation with real time input from real event
JP2003175278A (ja) * 2001-12-11 2003-06-24 Webstream:Kk 競技仮想参加装置、競技仮想参加方法、競技仮想参加プログラム、競技観戦装置、競技観戦方法、競技観戦プログラム、及び、競技観戦画像生成サーバ

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018518081A (ja) * 2015-04-02 2018-07-05 カタプルト グループ インターナショナル リミテッド スポーツバーチャルリアリティシステム
JP2023523265A (ja) * 2020-04-24 2023-06-02 アイ アール キネティクス リミテッド トラックにおけるモータースポーツイベントを表すインタラクティブなハイブリッド環境を制御するシステム及び方法
JP7710213B2 (ja) 2020-04-24 2025-07-18 アイ アール キネティクス リミテッド トラックにおけるモータースポーツイベントを表すインタラクティブなハイブリッド環境を制御するシステム及び方法
US12465862B2 (en) 2020-04-24 2025-11-11 I R Kinetics Limited Systems and methods for controlling an interactive hybrid environment representing a motorised sporting event at a track

Also Published As

Publication number Publication date
KR20110069824A (ko) 2011-06-23
WO2010035106A1 (en) 2010-04-01
BRPI0919128A2 (pt) 2015-12-08
US20120100911A1 (en) 2012-04-26
AU2009295574A1 (en) 2010-04-01
EP2326397A1 (en) 2011-06-01
CN102238985A (zh) 2011-11-09
RU2011116066A (ru) 2012-10-27

Similar Documents

Publication Publication Date Title
JP2012503513A (ja) 実環境内の事象をシミュレートするためのシステムおよび方法
CN112807681B (zh) 游戏控制方法、装置、电子设备及存储介质
TWI891993B (zh) 用於虛擬角色之旅行之電腦實施之方法及非暫時性電腦可讀媒體
US20200222811A1 (en) Adjusting object adaptive modification or game level difficulty and physical gestures through level definition files
TWI891997B (zh) 用於擴增實境之全景分割預測之方法及非暫時性電腦可讀儲存媒體
US9108111B2 (en) Location-based online games for mobile devices and in-game advertising
JP2021518197A (ja) 人工知能を使用した音声ヘルプシステム
AU2009237401A1 (en) System for simulating events in a real environment
CN109314802B (zh) 基于游戏内位置的游戏进行伴随应用
US20240399256A1 (en) Background process for importing real-world activity data into a location-based game
JP2025500929A (ja) 入力画像データからの高速リアルタイムシーン再構築
JP2022087213A (ja) ゲームプログラム、ゲーム装置、及びゲームシステム
JP2019524180A (ja) 場所ベースゲームプレイコンパニオンアプリケーションを使用するチャレンジの生成
JP2024524723A (ja) アンチチートデータフローにおけるレイテンシーの低減
JP6836676B2 (ja) ゲーム装置、及びゲームプログラム
CN117830567A (zh) 针对虚拟场景的位置更新方法、设备、介质和程序产品
HK1163580A (en) System and method for simulating events in a real environment
US12465857B2 (en) Systems and methods of processing player interactions in a multiplayer virtual game space
US20250073595A1 (en) Systems and methods of processing player interactions in a multiplayer virtual game space
US12411519B2 (en) Synchronizing client device with independent sensor
JP7082302B2 (ja) ゲームプログラム、ゲーム装置、及びゲームシステム
US20260007964A1 (en) Systems and methods of dynamic gameplay interaction using recorded state data
JP2025147467A (ja) プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120330

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130523

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131121

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140213

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140220

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140709