説明

放送においてインターネットを介してストリーミングをエミュレーションするリアルタイム・ビデオゲーム

【課題】クライアントサーバ・ネットワーク上での放送アプリケーションにおいて、インターネットを介して多数のクライアントに対して、アニメーションデータのストリーミングをエミュレーションする。
【解決手段】このアニメーションは、一連の状態であると考えられる。グラフィックスデータ自体の代わりとして状態情報を複数のクライアントへ送出する。クライアントは、この情態情報の管理下、アニメーションデータを生成する。サーバとクライアントは、共有オブジェクトプロトコルを用いて通信を行なう。従って、サーバネットワークの帯域幅の問題に悩まされることなく、放送と同じようにストリーミングを達成することができる。このアプローチを用いて、ユーザを仮想環境に参加させ、本物のプロと対戦することができるように、自動車レースなどの現実のイベントを仮想環境上にマッピングする。仮想環境は、ユーザに送られた情態変化により動的に決定される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークを介してマルチメディアファイルをストリーミングすることに関するものである。より詳細には、放送において、インターネットを介してグラフィックスやビデオアニメーションのストリーミングをエミュレーションすることに関するものである。特に、グラフィックスやビデオアニメーションによって作成された環境とエンドユーザが対話することをできるようにすることに関するものである。
【背景技術】
【0002】
用語「ストリーミング」は、受信側において一定、かつ、連続するストリームとして処理することができるように、データをサーバからクライアントへ送出することを意味するものである。大部分のユーザは、例えばグラフィックス・アニメーション、オーディオ、ビデオ、或いは、これらを組み合わせたものなどを含む巨大なマルチメディアのファイルをダウンロードするのに十分速いアクセス手段を持たないため、ストリーミング技術は、インターネットの発展に伴い、ますます重要になりつつある。ストリーミングを用いれば、ファイル全体を受け取る前に、受け取ったデータの処理をクライアントのブラウザやプラグイン・ソフトウェアが開始することができるようになる。ストリーミングを機能させるためには、ファイルを受け取るクライアント側で、データを収集し、収集したデータを一定のストリームとして、データを処理するアプリケーションへ送出することができる必要がある。このことは、クライアントが必要とするより速くデータを受け取った場合、この余分なデータをバッファしておく必要がある、ということを意味する。他方、データが時間通りに到着しなかった場合、データ表示がもたついてしまう。
【0003】
用語「ファイル」は、本明細書では、データ処理に利用することができ、かつ、エンティティとして処理することができる、関連するデータ項目のエンティティを意味するものとして用いることとする。本発明においては、用語「ファイル」は、記憶装置から取り出したデータのみならず、リアルタイムで生成されるデータを意味することもある。
【0004】
インターネットを介してグラフィックスデータの通信を行う現在利用可能な技術や開発中の技術の中には、VRML97及びMPEG4がある。VRML97は、「バーチャル・リアリティ・モデリング・ランゲージ」を意味するものであって、インターネットにおけるインタラクティブな3Dマルティメディアコンテンツを記述する国際標準規格(ISO/IEC14772)のファイルフォーマットである。MPEG4は、MPEG(動画像専門部会;Motion Picture Experts Group)によって策定されたISO/IEC標準規格である。このいずれの標準規格においても、映像のコンテンツは、いわゆるシーングラフ(scene graph)で構築される。シーングラフは、正確にグラフィックス・ワールド(graphics world)を集合的に記述する座標系及び形状の親子木構造を有するものである。このシーンの親子木構造における最上位項目は、ワールド座標系である。このワールド座標系は、1以上の子の座標系及び形状の親として機能する。これらの子座標系は、今度は、さらに子である座標系及び形状の親となる。
【0005】
VRMLは、オブジェクトを記述するファイルフォーマットである。VRMLは、3Dグラフィックス、マルチメディア、及び、インタラクティブなオブジェクト/ワールドのビルディングを記述するのに役立つ一組のオブジェクトを記述するものである。これれのオブジェクトは、ノードと呼ばれ、フィールド内に格納される基本的なデータやイベントを含むものである。典型的には、このシーングラフは、構造ノード、リーフノード、インターポレイションノード、センサノードを含むものである。構造ノードは、あるシーンの中のオブジェクトの空間的関係を記述するものである。リーフノードは、オブジェクトの物理的外観を記述するものである。インターポレイションノードは、アニメーションを記述する。センサノードは、個々のユーザの入力感覚に対するユーザの相互作用を記述する。VRMLは、サーバからクライアントへ流れるデータのストリーミングを直接にはサポートしない。ストリーミングにおいて不可欠である、ストリームとタイムスタンプとの間の同期化などの機能は、VRMLには存在しない。しかしながら、VRMLは、外部プログラムがVRMLクライアントと対話することができる機構を有する。これは、スポーツのアプリケーションでクライアントにアニメーションデータをロードするのに用いられている。例として、オーラッド・ハイテックシステム社(Orad Hi-Tec System, Ltd)の「バーチャルライブ・サッカー」(http://www.virtualive.com)を参照されたい。このウェブの資料には、インターネットを介して配信するために、現実のサッカー試合のハイライトをシュミレーションする、現実感がある動画による3次元グラフィックの場面を生成するプロセスが述べられている。このシステムは、テレビのスポーツ番組を、ほぼリアルタイムで補完する、マルチメディアリッチのウェブページで、コンテンツを生成する。この場合、プロセスは、2つのステップで機能する。最初に、スタジアム及びサッカープレイヤーのグラフィックスモデルが、外部プログラム(本例ではJava(登録商標)アプレット)と共にダウンロードされる。その後、ユーザは、外部プログラムと対話し、個々のアニメーションを要求する。そして、このアニメーションに対するデータが、クライアントにダウンロードされ、ユーザは、こ
のデータと対話する。ユーザは、アニメーションの中において、種々の視点から試合のシーンを観覧することができる。所望であれば、スローモーションで観覧するこもできる。ノードタイプに関しては、このプロセスでは、はじめに構造ノード及びリーフノードをダウンロードし、その後、インターポレイションノードをダウンロードする。インターポレイションノードのセットを変更することによって、種々のアニメーションシーケンスを再生することが可能となる。この例で用いられるプロセスは、全てのモデル(構造ノード)及び全てのアニメーションデータ(インターポレイタノード)を収容する完全なVRMLファイルを、ユーザが選択することができる単一ステップのプロセスに相当するものである。このアプローチでは、クライアント上で何らかのコンテンツを再生する前に、長時間のダウンロードを招く結果となる。このことは、特に、コンテンツを即座に得られるTV放送と比較すると、フラストレーションを感じさることとなる。
【0006】
上述したその他の技術、即ちMPEG4では、VRML97と広く重複するバイナリ・ディスクリプション・フォーマット・フォー・シーン(BIFS)が定義されている。一方、MPEG4は、ビデオと同様にグラフィックスのストリーミングをサポートするように設計されてきた。MPEG4では、シーンを更新、アニメーション化するための2つのクライアントサーバ・プロトコル、即ち、BIFS−更新及びBIFS−アニメーションが、規定されている。ユーザは、アニメーションデータが完全にダウンロードされるのを待つ必要はない。例えば、前述したサッカー試合の放送アプリケーションでは、サッカー選手及びスタジアムのモデルがダウンロードされると即座に、アニメーションは開始する。更にMPEG4には、圧縮バイナリフォーマットを用いるBIFS伝送プロトコルのおかげでより効率的であるという利点がある。
【0007】
ストリーミングの場合は、上述した既存の技術では、幾つかの制限、特に多数のクライアントに対する放送においては、帯域幅の利用、パケット損失の隠蔽及び回復、及び、マルチユーザの対話性などに関し制限がある。
【0008】
帯域幅に関しては、完全なアニメーションがサーバ上で生成される。このことによって、例えば、大量のデータを、クライアントとサーバを繋ぐインターネットなどのネットワークを介して伝送する必要性を生ずることとなる。例えば、前述したサッカーの放送アプリケーションでは、22人のサーカー選手をアニメーション化する必要がある。個々の選手毎の各アニメーションのデータポイント(data point)は、3D空間上の位置、及び、例えば、一組の選手の姿勢をモデリングする15個の関節、を含むものである。これは、63個の浮動小数点の値で表わされる。アニメーションの更新レートを1秒間に15個のデータポイントとすれば、665Kbpsのビットレートが必要である。このビットレートは、圧縮することによって、減少させることができる。典型的には、BIFSを使用すると、ビットレートは20分の1まで減少し、約33Kbpsのビットレートを得ることができる。しかしながら、このビットレートは、インターネットプロトコル(RTP、UDP、IP)及び音声などのその他のデータタイプに要するオーバーヘッドを何ら考慮していないものである。しかしながら、現在市販されている典型的なモデムの性能は、28.8Kbps或いは33.6Kbpsである。アニメーションのストリーミングでは、帯域幅の制限のため、エンドユーザで問題が発生するのは明らかである。多数のクライアント、例えば100,000のクライアントへの放送の場合、データストリームは、幾つかのルータ上で複製する必要があるであろう。インターネット上のルータは、パケットが、その最終的な目的地へ向かう途中において次に転送されるべき、次のネットワーク地点を判断する。このルータは、接続しているネットワークの現在の状況の把握に基づき、各々の情報パケットを送るルートを決定する。ルータは、ネットワークやゲートウェイの任意の連結点に位置するものであって、インターネットの現状の連結点もこれに含まれる。明らかなことは、この放送によって、インターネット全体において、管理不能なデータの爆発を発生し得るということである。これの発生を防止するためには、実際の帯域幅を28.8Kbpsよりかなり低く制限しなければならない。
【0009】
パケット損失の隠蔽に関しては、VRML型のシステムでは、信頼できるプロトコル(TCP)を利用している。即ち、ここでは、パケット損失は問題とならない。MPEG4の場合、BIFSは、RTP、UDP、及びIPを利用する。従って、パケット損失を回復させる機構が必要となる。ポイント・ツウ・ポイント型(point-to-point)のアプリケーションでは、損失したパケットの再伝送を考慮しなければならない。しかしながら、放送の場合、より複雑となる。しかしながら、いずれの場合とも、MPEGの信頼性は、より高い帯域幅使用(冗長性)か、より長いレイテンシ(再伝送)か、のいずれかを必要とする。
【0010】
マルチユーザのインタラクティビティに関しては、VRML及びMPEG4のいずれも、本質的にはクライアントサーバ通信に基づいている。複数のクライアントの間で通信を行うことについては、何ら支障はない。
【0011】
VRMLに関するより詳細な情報については、 HYPERLINK http://sgi.felk.cvut.cz/~holecek/VRML/concepts.html http://sgi.felk.cvut.cz/~holecek/VRML/concepts.htmlにおける1996年3月5日の「重要な概念(key concepts)」、或いは、 HYPERLINK http://www.stl.nps.navy.mil/~brutzman/vrml/vrml_95.html http://www.stl.nps.navy.mil/~brutzman/vrml/vrml_95.htmlにおいて入手可能な1996年1月23日のデー・ピー・ブルッツマン(D.P.Brutzman)他による「仮想環境のためのインターネットワーク基盤の要件」を参照されたい。
【0012】
MPEG4に関するより詳細な情報については、 HYPERLINK http://drogo.cselt.stet.it/mpeg/standards/mpeg-4/mpeg-4.htm http://drogo.cselt.stet.it/mpeg/standards/mpeg-4/mpeg-4.htmにおいて入手可能な1998年7月のロブ・コーネン(Rob Koenen)の編集による「MPEG4標準規格の概要」(ISO/IEC JTC1/SC29/WG11 N2323)を参照されたい。
【発明の概要】
【発明が解決しようとする課題】
【0013】
従って、本発明の目的は、クライントが、マルチメディアのデータをあたかも一定で連続するストリームであるかのように、処理することをできるようにする技術を提供することである。その他の目的としては、インターネットを介する放送において多数のクライアント上で連続処理を可能にすることをできるようにすることである。上で確認した問題は、放送のアプリケーションにおいては、かなり深刻な問題であることに留意されたい。その他の目的としては、この技術を用いて、連続的に展開される電子的な仮想環境内を、ユーザが操縦することができるインタラクティブなソフトウェアアプリケーションを作り出すことである。
【課題を解決するための手段】
【0014】
この目的を達成するために、本発明は、ネットワークに接続された受信局に対して、ネットワークを介してマルチメディアファイルのストリーミングをエミュレーションする方法を提供する。このファイルの各状態を表わすそれぞれの状態情報を提供する。この受信局は、ネットワークを介してそれぞれの状態情報を受け取ることができ、それぞれの状態情報の管理下においてローカルでマルチメディアファイルを生成することができる。アニメーションの放送においては、本発明は、グラフィックスのアニメーションを表示するためにネットワークを介してデータを提供する方法に関するものである。アニメーションの連続する各々の状態を記述するそれぞれの状態情報を、ネットワークを介して、提供する。このそれぞれの状態情報を、ネットワークを介して受け取る。この受信局が情報を受け取った後、それぞれの状態情報の制御下においてアニメーションを生成することができるようにする。より詳細には、本発明は、連続的に展開される電子的な仮想環境においてユーザが操縦することができる方法を提供することである。この方法は、環境のワールドモデルをユーザに提供すること、展開を表わすワールドモデルの状態変化を送出すること、仮想環境に対するオブジェクトの位置を制御するための入力をユーザが供給し得るようにすること、状態変化とユーザの入力とに反応して、ワールドモデルから環境を作ること、を特徴とする。
【0015】
本発明においては、マルチメディアファイル(アニメーション、ビデオ、或いはオーディオのファイル)を、一連の状態として記述する。クライアントへ伝送されるものは、アニメーションデータではなく、この状態情報である。従って、用語「エミュレーション」では、クライアントとやり取りされる情報は、ストリームする必要がないことを強調するものである。クライアントは、受け取った状態情報に基づき、ローカルで対戦するためにデータを生成する。従って、このユーザは、対戦中に、あたかもデータがネットワークを介してストリームされているかのように(最適な状況下では)、連続的で一定のデータのストリームであると知覚する。
【0016】
好適な実施態様では、共有オブジェクトプロトコルを用いて、このエミュレーションを実現する。サーバもクライアントも、オブジェクトの収集のコピーを有する。オブジェクトとは、状態情報を持つデータ構造である。仮想のサッカー試合の場合は、オブジェクトは、例えば、1人のサッカー選手を表わすグラフィックスである。サーバーは、ストリームされたビデオファイルを受け取り、オブジェクトをモニタする。MPEG4では、エンティティとして処理することができるビデオオブジェクトを生成することができる点に注意されたい。従って、サーバがこのオブジェクトの状態を変化させる場合、この変化に応じて、共有オブジェクトプロトコルは、クライアントにおいてコピーを変化させる。これについて、図面を参照しながらより詳細に説明する。
【0017】
この状態情報は、アニメーションデータ自体よりも、高い抽象レベルの情報である。例えば、上述したサッカー試合の放送アプリケーションでは、この状態情報には、競技場における22人の選手の現在位置、及び、選手達の現在の動作(例えば、「走る」、「ジャンプする」)を指定するパラメータ、が含まれる。より高いレベルの情報を利用すると、特に、アニメーションがインターネットを介して多くの観衆にストリーミングされる放送アプリケーションにおいては、幾つかの利点がある。インターネットを介してやり取りされる状態情報のコンテンツは、非常にコンパクトなものであり、従って、アニメーション自体をストリーミングするよりも、より少ない帯域幅しか必要としない。このアニメーションは、ローカルにおいて、数個のパラメータから生成される。更に、アニメーションの状態は、アニメーションデータ自体よりも遅いレートで変化するため、アニメーションのデータポイントの更新レートは、より低いものとなる。このことは、必要な帯域幅を更に低減することに寄与する。更に、本発明は、パケット損失の隠蔽や回復、或いは、ネットワークレイテンシのジッタのマスキングなどの向上に寄与する。状態の間において補間したり外挿したりすること、或いは、推測操縦法を実現することは、容易である。より高い抽象レベルの情報を使用するため、ユーザがアニメーションと対話することを、より容易にプログラムすることができる。その他の利点としては、クライアントが状態情報を共有することができる場合には、マルチユーザの対話が可能となることである。更に、その他の利点としては、クライアントが、クライアント毎にで異なるであろう個々の演算能力に基づき、状態情報をアニメーションに変換することができるという事実である。クライアントにおいて利用可能な資源は、クライアント毎に、或いは、クライアントの属するグループによって異なるものであってもかまわない。
【0018】
本願は、本願と同一の譲受人による米国特許出願第09/053,448号(PHA23,383)、タイトル「放送イベントの3Dグラフィックスモデルを用いるグループでのビデオ会議」の全てを参照によって包含するものである。この文献は、地理的に分散した複数のエンドユーザに対するテレビ放送のサービスを扱うものである。この放送サービスは、会議モードと一体化している。放送におけるあるイベントに基づき、複数のエンドユーザを含む特定のグループは、このグループの者がこのイベントについて議論することができるように、ソフトウェアの管理下において会議モードに変わる。この会議モードは、イベントを表わすビデオの3Dグラフィックスモデルによって、即ち、グループへダウンロードすることによって機能する。
【図面の簡単な説明】
【0019】
【図1】VRMLのクライアントサーバシステムの図である。
【図2】MPEG4のクライアントサーバシステムの図である。
【図3】本発明で用いるシステムの図である。
【図4】本発明で用いるシステムの図である。
【図5】本発明で用いるシステムの図である。
【図6】本発明で用いるシステムの図である。
【図7】ビデオゲームを説明する図である。
【図8】ビデオゲームを説明する図である。
【発明を実施するための形態】
【0020】
本発明について、添付する図面を参照しながら実施例を用いて説明する。全ての図面を通じて、同じ符号番号は、同様の或いは相当する機能を意味するものである。
【0021】
好適な実施態様 図1は、VRMLに基づくクライアントサーバ・システム100のブロック図である。システム100は、通信チャネル106を介して、即ちこの場合はインターネットを介してクライアント104に結合されたサーバ102を具える。システム100には、複数のクライアントを設けることも可能であるが、図面を明瞭にするためにここでは示さない。サーバ102は、ソース符号化器108、及び、チャネル符号化器を具えるも。クライアント104は、チャネル復号器112、及び、ソース復号器114を具える。ソース符号化器108は、コンテンツを生成するツールであると考えられる。ツールとしては、例えば、ビデオ上のモーションキャプチャ装置(図には示さず)からVRMLのアニメーションデータを生成するものなどが挙げられる。チャネル符号化器110は、サブシステムであって、ソース符号化器108で生成されたVRMLのアニメーションデータを入力として受け取り、このデータを、インターネットを介して伝送できる形態に変換するものである。このVRMLのアニメーションデータを、ファイル内に格納する。このファイルの伝送には、標準のファイル・トランスファー・プロトコルを使用する。クライアント104では、チャネル復号器は、外部プログラム116内に収容されている。外部プログラムは、ダウンロードしたファイルからアニメーションデータを受け取り、これを、ソース復号機能を実施するVRMLプレイヤー118へ渡す。このソース復号機能は、本質的にはシーングラフの管理上である。このクライアントサーバの通信手順は、ストリーミングによる解決策ではない。VRMLの仕様は、ストリーミングの要件を考慮していない。ストリーミングにおいては必須のものである、ストリーム及びタイムスタンプの間の同期化などの機能は、VRMLには存在しない。
【0022】
図2は、MPEG4に基づくクライアントサーバシステムのブロック図である。システム200は、チャネル206を介してクライアント204に結合されたサーバー202を具える。サーバ202は、ソース符号化器208及びチャネル符号化器210を具える。クライアント204は、チャネル復号器212及びソース復号器214を具える。上述したように、MPEG4は、ストリーミングをサポートするように設計されたものである。中でも特に、MPEG4では、VRML97と広く重複しているBIFSを規定している。更に、MPEG4は、シーンを更新し、アニメーション化する2つのクライアントサーバプロトコル、即ち、BIFS−更新、BIFS−アニメーションを規定している。ストリーミングに関して、VRMLよりもMPEG4が勝る点は、シーン記述(scene description)及びアニメーションデータを符号化すること、並びに、組み込まれたストリーミング機能にある。符号化器108と同様に符号化器208は、コンテンツを生成するツールである。チャネル符号化器210は、チャネル符号化器110とは異なるものである。チャネル符号化器210は、BIFS及びBIFS−アニメーションのフォーマットでビット列を生成する。このビット列には、アニメーションデータのみならず、複数の選手及びスタジアム(サッカー試合のアニメーション)のグラフィックスモデルをも含むものである。
【0023】
しかしながら、システム100と200のいずれも、多数のクライアント、例えば100〜100000のクライアントに向けてアニメーションを放送する環境で用いる場合には、深刻な欠点を幾つか有する。上述したようにこの制限は、ネットワークの帯域幅の利用法、パケット損失の隠蔽、マルチユーザの対話性に関連するものである。
【0024】
本発明の好適な実施態様は、オブジェクトのオーナー及びオブジェクトをビューワー(或いはリスナー)で、オブジェクトの共有をサポートする通信プロトコルを利用してストリーミングをエミュレーションすることによって、これらの問題の解決策を提供するものである。共有されたオブジェクトとは、状態情報を持つデータ構造体である。全体の状態を記述する共有されたオブジェクトの組み合わせをワールドモデルと呼ぶこととする。クライアント及びサーバは、ワールドモデルの自分のコピーをそれぞれ有する。例えば、サッカー試合を表わす場合、オブジェクトは、サッカー選手を表わすものである。例えば、このオブジェクトの状態情報は、3D空間内のサッカー選手の位置、或いは、「走っている」、「ジャンプしている」、「スライディングしている」、「見たところ傷付いているが、コメディアンのようにグラウンド上に倒れている」などの、動作の状況である。共有されたオブジェクトの各々は、特定の者、例えばサーバに所有されるものである。この所有者は、オブジェクト内に含まれる状態情報を変化させることができる。変化した場合、プロトコルは、ネットワークを介して、自動的に状態情報を同期化する。このようなプロトコルを、本明細書では、これ以降は共有オブジェクトサポート・プロトコルと呼ぶこととする。このプロトコルは、ワールドモデルの状態が変化しても、全てのワールドモデルのコピーが一貫性を保つことを保証する。この目的のために用いることができるプロトコルの例としては、DIS(分散インタラクティブ・シミュレーション)及びISTP(インタラクティブ・共有トランスファープロトコル)がある。本発明の基礎をなすアイデアは、アニメーションを一連の状態として記述することである。例えば、サッカーのソフトウェアアプリケションでは、アニメーションは、競技場の選手の一連の位置、及び選手の動作として記述される。ある与えられた瞬間における状態を、ワールドモデルによって記述する。時間が経過するに従い、この状態は変化し、プロトコルは、ネットワークを介してワールドモデルの状態と同期化を取る。このことは、共有オブジェクトの観点からも説明することができる。これらのオブジェクトは、ある与えられた瞬間におけるゲームを記述する状態情報を有するものである。各オブジェクトに対する状態情報を更新すると、ネットワークを介して複数のクライアントへ送るべきメッセージを生成する結果となる。
【0025】
図3は、本発明のシステム300のブロック図である。システム300は、ネットワーク306を介してクライアント304に結合されたサーバ302を具える。サーバ302は、ソース符号化器308及びチャネル符号化器310を具える。クライアント304は、チャネル復号器312及びソース復号器314を具える。サーバ302は、ワールドモデルのコピー316を有する。データは、入力部320からソース符号化器308へストリーミングされる。ソース符号化器308は、受け取った入力に基づき、必要な状態情報を生成し、ストリーミングのプロセスの経過に伴い、ワールドモデルのコピー316内のオブジェクトの状態を更新する。このタイプの技術は、例えば上述した仮想ライブサッカーシステムで使用されている。チャネル符号化器310は、ワールドモデルのコピー316を監視し、共有オブジェクトの状態変化を符号化する。符号化された状態変化を、ネットワーク306を介して、クライアントへ送出する。チャネル復号器312は、この状態変化を受け取り、ローカルのワールドモデル318を更新する。ソース復号器314は2つの仕事を行うものである。第1に、受け取った状態情報に基づきアニメーションを生成する。第2に、ソース復号器314は、アニメーションに応じてシーングラフを管理する。ソース復号器314は、インテリジェントなコンポーネントであり、動画の計算を実行し、更に、パケット損失やネットワークレイテンシのジッタを隠す状態内挿や外挿などのその他の仕事を実行する能力がある。
【0026】
この点については、本願と同一の譲受人による米国特許出願第08/722,414号(PHA23,155)、タイトル「待ち時間の影響を軽減するローカルでの更新を伴うマルチプレイヤーのビデオゲーム」を参照されたい。本願は、この参照文献の全内容を参照によって包含するものとする。この参照文献は、複数のユーザが、インタラクティブなソフトウェアアプリケーションを通じて仮想環境を共有するシステムについて述べている。ある特定のユーザの状態変化は、この特定のユーザと他のユーザの各人との間の仮想環境における個々の相対距離に応じて、1以上のその他のユーザに伝送される。この条件付きの伝送によって、メッセージのトラヒックが減少し、仮想環境を実質的に無制限に拡大したり縮小したりすることができる。
【0027】
また、本願と同一の譲受人による米国特許出願第08/722,413号(PHA23,156)、タイトル「代理エージェントによるマルチプレイヤーのビデオゲームの待ち時間の影響の軽減」を参照されたい。本願は、この参照文献の全内容を参照によって包含するものとする。この文献は、2人以上のユーザの間で対戦するためのインタラクティブなソフトウェアアプリケーションを処理するデータ処理システムに関するものである。このシステムは、ユーザの各自によって操作されるユーザインタフェイス装置を具えるものである。この装置は、インターネットを介して相互接続される。レイテンシを有効に除去するためには、ユーザを、その他のユーザの装置上ではエージェントとして表わし、他のユーザの動作に対するエージェントの反応は、システム内に格納されたルールベースにより決定される。
【0028】
更に、本願と同一の譲受人による米国特許出願第08/994,827号(PHA23,319)、タイトル「映画的技法を用いて待ち時間を隠蔽する娯楽エージェント」も参照されたい。本願は、この参照文献の全てを参照によって包含するものとする。この文献は、データ処理システム上で実行されるユーザ対話型のソフトウェアアプリケーションの機能性を持つ部分としてのソフトウェアエージェントに関するものである。このエージェントは、映画的技法を用いてこの効果を作り出すものである。
【0029】
ワールドモデルのコピー316と318は、ワールドモデルのあるコピー内のあるオブジェクトと、ワールドモデルのその他のコピー内のその他のオブジェクトとが、状態変化を共有するシーンでは共有されたものとして取り扱う限り、例えば、描画された時の外観は同じである必要はない点に注意されたい。実現可能性や非同一性は、アプリケーションに左右されるものである。例えば、あるクライアントのユーザが、サッカー選手を例えばペンギンで表現したい場合、かつ、その他のクライアントのユーザが例えばバレイダンサーで表現したい場合、状態変化を共有することによって、何れのクライアントの表現もシステムを通じて一貫性が保持される。その他の例としては、クライアント304では、ユーザは対戦中に追加の状態情報を入力し、ワールドモデルの描画を制御することができるようになる。例えば、ユーザは、仮想ライブのサッカー試合を見ているときに、特定の視点を選択することもできる。この状態情報は、サーバ302には存在しない。また、その必要もない。状態情報及びワールドモデルに基づく視点におけるレンダリングは、少しも複雑なものではなく、この映像を、実際に奥行きの情報と共にビットマップとしてクライアント304へストリームするよりも少ない資源しか必要としない、ことは注目に値する。従って、上述した本発明の利点に加えて、本発明はユーザの対話性を向上させる。
【0030】
システム300の構成について、クライアント304は、ソフトウェアアプリケーションを実行させることができ、十分な性能を持つCPUと十分な大きさの記憶装置を設けている、と仮定する。クライアントのうち幾つかは、これらの性能を搭載しなくとも良い。従って、「シン・クライアント」(thin client)とも呼ばれるローエンドの端末を検討するのが好適である。例えば、このような端末としては、入力としてBIFSストリームを受け入れることができるが、それほど強力でない、性能が低いMPEG4端末を使うことができる。このことについて、本発明によるシステム400のブロック図である図4を参照しながら説明する。システム400は、変換局406を介して、クライアント204と通信を行うサーバ302を具える。サーバ302とクライアント204との構成については、上述した通りである。変換局406は、ワールドモデルのローカルコピーを保持する。モデルが現在の状態を記述するように、このワールドモデルをサーバ302からのメッセージによって更新する。この状態情報に基づき、変換局406は、アニメーションを計算する。このアニメーションデータをBIFS−アニメーションのフォーマットに符号化し、MPEG4クライアントへ伝送する。サーバ302は、システム300にあるサーバと同一のものである。変換局406は、共有オブジェクト・サポートプロトコルで伝送されたメッセージからBIFS−アニメーションのビット列に変換するモジュールである。変換局406は、上述した、チャネル復号器312、ソース変換器410、チャネル符号化器412を具える。復号器312は、サーバ302から受け取ったメッセージを解釈し、ワールドモデルのコピー318を更新する。ソース変換器410は、状態情報に基づきアニメーションを計算するプログラムを具える。上述した復号器314と同様に、このモジュールは、パケット損失の回復(補間法、或いは外挿法に基づく)、推測操縦、ローカルでのアニメーション化などの仕事を行うものとするのが好適である。チャネル符号化器412は、ソース変換器410の出力に基づき、BIFS或いはBIFS−アニメーションのフォーマットでビット列を生成する。
【0031】
図5は、本発明におけるシステム500のブロック図である。システム500は、システム300と400の構成を具える。システム500は、サーバ302、ネットワーク502、ネットワーク502を介してサーバ302と接続されるクライアント504、506、508、及び510を具える。更に、システム500は、変換局406と、クライアント512、514、及び516とを具える。クライアント512〜516を、ネットワーク302及び変換局406を介して、サーバ302に結合する。クライアント512〜516に、変換局406によりBIFSのビット列を供給する。一方、クライアント504〜510は、共有オブジェクトをサポートするプロトコルで状態情報を受け取り、クライアント自身でアニメーションを作る。
【0032】
図6は、クライアントの間で対話することができる本発明のシステム600のブロック図である。システム600は、ネットワークを介して、クライアント602及び604と結合されたサーバ302を具える。サーバ302の構成は上述した通りである。サーバ302は、オブジェクトに関するワールドモデルのコピー608、610、612、及び614を有する。クライアント602及び604は、同様のオブジェクトに関するワールドモデルの同様のコピー608、610、612、及び614を有する。ワールドモデルのコピーは、システム全体を通じて、サーバ302から送られた状態情報を用いて、一貫性を保持する。このことが、上述したようにグラフィックスアニメーション、ビデオアニメーション、或いは音声ファイルのストリーミングをエミュレーションする基礎となる。クライアント602及び604は、オブジェクト616及び618をお互いに共有するが、サーバ302とは共有しない。例えば、クライアント602は、クライアント602により選択されたサッカー試合のグラフィック表現のビューを表わす「視点」オブジェクトの所有者である。サーバ302から受け取った状態情報に基づき、クライアント602は、この試合のグラフィック映像を、あたかもスタジアムのある特定の位置から観覧したかのように、描画する。この映像の描画は、サーバ302から受け取った状態情報と、ローカルにおけるワールドモデルのコピーと、視点を選択することができるジョイスティックやマウスなどの入力手段620を介するユーザの入力と、を組み合わせたものに基づくものである。クライアント604は、クライアント602の管理下においてクライアント602上にあるオブジェクトと一貫性を保持されている視点オブジェクトを共有する。オブジェクト616〜618は、このシステムにおいてはその他のクライアントとは、共有されていない。状態情報及びワールドモデルに基づく視点の描画は、少しも複雑ではなく、この映像を実際にビットマップとして奥行きの情報と共にクライアント602、604へストリームする場合よりも少ない資源しか必要としない点に注意されたい。システム600を、主たる所有者としてのサーバを設けずに、全体的に分散システムとすることもできる。複数クライアントの各自は、全てのクライアントから知覚することができるワールドモデルのオブジェクトの各別の1つを所有する。あるオブジェクトの所有者が、状態変化を引き起こすと、これはネットワークを通じて伝播され、共有ワールドモデル内の一貫性を保持する。マルチユーザのアプリケーションでは、この効果は、アニメーションのストリーミングをエミュレーションすることの当然の帰結として、帯域幅を制限されることなく、各クライアント上で連続で対戦することである。
【0033】
図7、8は、ダッチTTなどのオートバイレースである放送イベントに基づくビデオゲームという状況において、上述したシステム300、400、500、及び600を用いて説明する図である。
【0034】
図7は、本発明におけるシステム700の図である。図7は、実際のレーストラック702のレイアウトを示すものであり、毎年ダッチTTが開催されるオランダのアッセンの有名なサーキットである。このTTサーキットの全長は、6.05Km(3.76マイル)である。本物のレースにおいて、本物のレーサーの各々を、トラック702における点704,706,708,...,718で示し、各オートバイは送信機を具え、受信局720へ自分の位置、ベロシティ(スピードと方向)を送信するものとする。また、好ましくは、ロール(バンク角)、ピッチ(ウィリー)、偏走(カーブでの急激加速時のパワースライド)、などのパラメータも送信するものとする。局704は、レーサーから受け取ったデータを、インターネットなどのネットワーク728を介してエンドユーザであるクライアントの装置722,724,...,726へ送る。クライアント722〜726は、例えばインターネットやフロッピー(登録商標)ディスクを介して事前にダウンロードするなどして、事前に、トラック702における3Dグラフィックスのワールドモデルのコピー(上記事項を参照されたい)を受け取っている。このモデルにおいては、トラック702上の実際のレーサーを表わすオブジェクトに関する位置やベロシティは、ユーザの装置722、724、726において受け取った状態変化によって決定される。実際のレーサーを表わすこのオブジェクトは、ユーザの知覚に応じて仮想環境を動的に変更する。このオブジェクトは、ユーザ装置において、ヘルメットのレーシング番号の色、レーシングスーツ、カウルなどを具えた実際のレーサーに似るように作ることができる。このグラフィックスの外観を、ユーザの装置にダウンロードしたワールドモデルの一部とすることができる。更に、エンドユーザは、制御可能なオブジェクトを有する。このオブジェクトは、あたかもユーザがトラック上のオートバイに乗り、レーサーの1人としてレースに参加しているかのような、ビューをユーザに提供するように、作られている。しかし、この場合、ユーザは、仮想環境に存在しているため安全である。ユーザは、このユーザに制御されたレーサーと、自分のクライント装置722,724、或いは726を通じて、適切な遊具機やその他のユーザ入力装置730、732、734を介して、対話することができる。
【0035】
ユーザが、その他のユーザと対戦する、或いは、レーサーがソフトウェアプログラムで制御されるプログラム、と対戦するビデオゲームは、周知であり、ゲームセンタにおいては主要なアトラクションとなっている。現在市販されている家庭用のビデオゲームの3Dグラフィックスの品質は、驚異的に高い。この高品質が、事実上、熱狂的なシーンやリアルなシーンに寄与する。本発明は、ユーザがいかなる危険や怪我を被る恐れもなく、現実の本物のプロとの対戦に最も近いものを提供することによって、リアリズムの新次元をユーザに与えるものである。
【0036】
明らかなことは、同様の方法が、仮想ダートトラックレース、F1、インディ500カーレース、ラリー、ヨットレース、或いは、ユーザが操縦することが可能である連続的に展開する仮想環境のためのステージを設定することができるその他の競争イベントにも適用することができることである。天候やオイル漏れによる道路表面のスリップ性、風の力、潮の流れ(ヨットレース)などの、天候及びトラックの条件は、従来のビデオゲームで知られているように、ワールドモデルに統合することができる。幾つかのユーザは、その他のユーザのクライアント上で、その他のオブジェクトを表示するために、自分の所有する制御可能な、仮想のトラックに沿ったオブジェクトに関する、位置、ベロシティ、及び姿勢、を相互にやり取りする能力を持たすこともできる。
【0037】
提供されたワールドモデルは、このオブジェクトを、クライアント上でどのようなグラフィックスのモデルにするかを選択するユーザのオプションとして開放することもできる。上述したように、サッカー試合の例では、サッカー選手のグラフィックス表現を、選択し、ユーザが意図するどんな形状、特に映画「シックスパック」(six-pack)に倣った形状でも、反映させることができる。同様に、ユーザが操縦可能である能力を与えられた仮想環境におけるレーサーを、らくだに乗る者、ダチョウに乗る者、或いは、トラック上を走るスイス防衛隊の隊員、或いはこれらの組み合わせとして表現することもできる。その他の例として、本物の車やオートバイの外観を、近年の車などで置き換えたり、或いは、ユーザ自身でデザインしたりすることもできる。図8は、現実離れした外観を説明したものである。上で紹介した例を組み合わせたものに倣って、本物のレーサーを表わすオブジェクトをモデリングしたものであり、これは、ビデオゲームの娯楽のレベルを向上させる一因と成り得る。本物のレーサーは、状態変化を受けるオブジェクトとして記述される。クライアント722〜726上の本物のグラフィックスの外観は、グラフィックス表現において動作及び位置がワールドモデルの力学上一貫性を保持する限り、任意である。
【0038】
本発明を、リアルタイム、及び、イベントの放送している間のイベント、を結び付けた対話型アプリケーションとして説明してきたが、明らかなことは、対話型アプリケーションは、現実のイベントが実際に起こった時間に使用する必要がないということである。例えば、サービスプロバイダーは、レースについてのイベントを表わす状態情報を、いかなる時間においても、放送することができ、加入者は、プロと対戦することができる。従って、本発明は、カラオケのビデオ版と考えることもできる。
【符号の説明】
【0039】
300 システム
302 サーバ
304 クライアント
306 ネットワーク
308 ソース符号化器
310 チャネル符号化器
312 チャネル復号器
314 ソース復号器
316 ワールドモデルのコピー
318 ワールドモデルのコピー
320 入力部
406 交換局
500 システム
504, 506, 508, 510, 512, 514, 516 クライアント
502 ネットワーク


【特許請求の範囲】
【請求項1】
連続的に展開される電子仮想環境内をユーザが操縦することを可能にする方法において、この方法が、
サーバステーション、及びネットワーク経由で前記サーバステーションに接続されたクライアントステーションを用意するステップであって、前記サーバステーションが、ソース符号化器及びチャネル符号化器を具え、前記ソース符号化器の入力が前記サーバステーションの入力を形成し、前記ソース符号化器の出力は、第1ローカル記憶手段経由で前記チャネル符号化器の入力に接続され、前記チャネル符号化器の出力は前記ネットワークに接続され、前記クライアントステーションが、チャネル復号器、ソース復号器、及び1つ以上のユーザ入力手段を具え、前記チャネル復号器の入力は前記ネットワークに接続され、前記チャネル復号器の出力は、第2ローカル記憶手段経由で前記ソース復号器の入力に接続されるステップと;
前記電子仮想環境の共通のワールドモデルを、前記第1ローカル記憶手段及び前記第2ローカル記憶手段の両方に、それぞれ前記サーバステーション用の第1ローカルコピー及び前記クライアントステーション用の第2ローカルコピーとして事前に記憶するステップであって、前記ワールドモデルは、前記サーバステーション及び前記クライアントステーションによって共有される前記電子仮想環境内のオブジェクトによって規定される前記電子仮想環境全体の状態であるステップと;
前記サーバステーションから前記ネットワーク経由で前記クライアントステーションに状態情報を送信するステップであって、前記状態情報は、前記ワールドモデルにおける特定の前記オブジェクトを含む1つ以上のオブジェクトの状態を記述し、前記状態情報は、前記特定のオブジェクトの1つ以上の動的な動作を含むステップとを具え、
前記送信するステップが、
前記ソース符号化器によって、前記電子仮想環境に関連するデータを受信し、前記データに基づいて前記状態情報を生成するサブステップと;
前記ソース符号化器によって、前記状態情報に基づいて、前記ワールドモデルの前記第1ローカルコピー中の前記オブジェクトの状態を更新するサブステップと;
前記チャネル符号化器によって、前記ワールドモデルの前記第1ロ―カルコピーを監視し、前記オブジェクトの状態変化を符号化して、前記ネットワーク経由で前記クライアントステーションに送信するサブステップとを含み、
前記方法がさらに、
前記電子仮想環境において、前記ユーザの所有する制御可能なオブジェクトが前記クライアントステーションに設けられ、前記制御可能なオブジェクトは、ユーザ入力手段により制御され、
前記チャネル復号器によって、前記符号化された状態変化を前記サーバステーションから前記ネットワーク経由で受信し、前記符号化された状態変化を前記状態情報に復号化するステップと;
前記チャネル復号器によって、前記状態情報に基づいて、前記ワールドモデルの前記第2ロ―カルコピー中の前記オブジェクトの状態を更新するステップと;
前記ソース復号器によって、前記第2のローカルコピー中のオブジェクトおよび前記制御可能なオブジェクトに基づき、前記電子仮想環境のアニメーションを計算するステップを具える方法。
【請求項2】
前記サーバステーションには複数のクライアントステーションが接続され、
前記複数のクライアントステーションのうち、第1および第2のクライアントステーションで共有し、前記サーバステーションおよび他のクライアントステーションと共有されない視点オブジェクトを備える場合において、
前記第1および第2のクライアントステーションは、さらに前記共有される視点オブジェクトに基づき、前記電子仮想環境のアニメーションを計算する
ことを特徴とする請求項1に記載の方法。
【請求項3】
前記電子仮想環境の前記展開は、前記サーバステーションによって、現実のイベントのストリーミングされたビデオを監視して分析することによって作成した前記状態変化に基づくものであることを特徴とする請求項1または2に記載の方法。
【請求項4】
前記現実のイベントを監視することが、前記現実のイベントにおける現実のオブジェクトの位置の変化を測定することを含むことを特徴とする請求項3に記載の方法。
【請求項5】
前記現実のイベントを監視することが、前記現実のオブジェクトの速度の変化を測定することを含むことを特徴とする請求項4に記載の方法。
【請求項6】
前記現実のイベントを監視することが、前記現実のオブジェクトの向きの変化を測定することを含むことを特徴とする請求項4に記載の方法。
【請求項7】
前記現実のイベントを監視することが、競争を含むイベントを監視することを含むことを特徴とする請求項3に記載の方法。
【請求項8】
前記競争を含むイベントを監視することが、前記競争を含むイベントにおける現実の参加者を含む現実のオブジェクトを監視することを含むことを特徴とする請求項7に記載の
方法。
【請求項9】
前記状態情報を送信するステップが、インターネットを使用することを含むことを特徴とする請求項1から8のいずれかに記載の方法。
【請求項10】
前記ユーザが、前記ワールドモデルによって提供される前記電子仮想環境の少なくとも一部分のグラフィックス表現を決定することを可能にするステップを具えていることを特徴とする請求項1から9のいずれかに記載の方法。
【請求項11】
符号化された状態変化を含む状態情報を、サーバステーションからネットワーク経由で受信して、連続的に展開される電子仮想環境内をユーザが操縦することを可能にするクライアントステーションであって、前記状態情報は、前記電子仮想環境のワールドモデルにおける特定のオブジェクトを含む1つ以上のオブジェクトの状態を記述し、前記ワールドモデルは、前記サーバステーション及び前記クライアントステーションによって共有される前記電子仮想環境内のオブジェクトによって規定される前記電子仮想環境全体の状態であり、
前記状態情報は、前記特定のオブジェクトの1つ以上の動的な動作を含み、
前記クライアントステーションが、チャネル復号器、ソース復号器、及び1つ以上のユーザ入力手段を具え、前記チャネル復号器の入力は前記ネットワークに接続され、前記チャネル復号器の出力は、第2ローカル記憶手段経由で前記ソース復号器の入力に接続され、前記第2ローカル記憶手段は、前記サーバステーションに記憶される電子仮想環境の前記ワールドモデルの第1ローカルコピーを、第2ローカルコピーとして前記符号化された状態変化の復号開始前に記憶し、
前記ユーザの所有する制御可能なオブジェクト前記クライアントステーションに設けられ、前記制御可能なオブジェクトは、前記ユーザ入力手段により制御され、
前記チャネル復号器は、前記符号化された状態変化を前記サーバステーションから前記ネットワーク経由で受信し、前記符号化された状態変化を前記状態情報に復号化し、前記状態情報に基づいて、前記ワールドモデルの前記第2ロ―カルコピー中の前記オブジェクトの状態を更新するように構成され、
前記ソース復号器は、前記第2のローカルコピー中のオブジェクトおよび前記制御可能なオブジェクトから、前記電子仮想環境のアニメーションを計算するように構成さる、
ことを特徴とするクライアントステーション。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−147481(P2012−147481A)
【公開日】平成24年8月2日(2012.8.2)
【国際特許分類】
【出願番号】特願2012−84611(P2012−84611)
【出願日】平成24年4月3日(2012.4.3)
【分割の表示】特願2000−565981(P2000−565981)の分割
【原出願日】平成11年8月23日(1999.8.23)
【出願人】(507364838)クアルコム,インコーポレイテッド (446)
【Fターム(参考)】