(57)【特許請求の範囲】
【請求項１】
連続的に展開される電子仮想環境のアニメーションを計算する方法において、この方法が、
サーバステーション、及びネットワーク経由で前記サーバステーションに接続されたクライアントステーションを用意するステップであって、前記サーバステーションが、ソース符号化器及びチャネル符号化器を具え、前記ソース符号化器の入力が前記サーバステーションの入力を形成し、前記ソース符号化器の出力は、第１ローカル記憶手段経由で前記チャネル符号化器の入力に接続され、前記チャネル符号化器の出力は前記ネットワークに接続され、前記クライアントステーションが、チャネル復号器、及びソース復号器を具え、前記チャネル復号器の入力は前記ネットワークに接続され、前記チャネル復号器の出力は、第２ローカル記憶手段経由で前記ソース復号器の入力に接続されるステップと；
前記電子仮想環境の共通のワールドモデルを、前記第１ローカル記憶手段及び前記第２ローカル記憶手段の両方に、それぞれ前記サーバステーション用の第１ローカルコピー及び前記クライアントステーション用の第２ローカルコピーとして事前に記憶するステップであって、前記ワールドモデルは、前記サーバステーション及び前記クライアントステーションによって共有される前記電子仮想環境内のオブジェクトによって規定される前記電子仮想環境全体の状態であるステップと；
前記サーバステーションから前記ネットワーク経由で前記クライアントステーションに状態情報を送信するステップであって、前記状態情報は、前記ワールドモデルにおける特定の前記オブジェクトを含む１つ以上のオブジェクトの状態を記述し、前記状態情報は、前記特定のオブジェクトの１つ以上の動的な動作を含むステップとを具え、
前記送信するステップが、
前記ソース符号化器によって、前記電子仮想環境に関連するデータを受信し、前記データに基づいて前記状態情報を生成するサブステップと；
前記ソース符号化器によって、前記状態情報に基づいて、前記ワールドモデルの前記第１ローカルコピー中の前記オブジェクトの状態を更新するサブステップと；
前記チャネル符号化器によって、前記ワールドモデルの前記第１ロ―カルコピーを監視し、前記オブジェクトの状態変化を符号化して、前記ネットワーク経由で前記クライアントステーションに送信するサブステップとを含み、
前記方法がさらに、
前記チャネル復号器によって、前記符号化された状態変化を前記サーバステーションから前記ネットワーク経由で受信し、前記符号化された状態変化を前記状態情報に復号化するステップと；
前記チャネル復号器によって、前記状態情報に基づいて、前記ワールドモデルの前記第２ロ―カルコピー中の前記オブジェクトの状態を更新するステップと；
前記ソース復号器によって、前記第２のローカルコピー中のオブジェクトの状態に基づき、前記電子仮想環境のアニメーションを計算するステップを具え、
複数のクライアントステーションが前記サーバステーションに接続され、かつ、前記複数のクライアントステーションのうち、第１および第２のクライアントステーションで共有され、前記サーバステーションおよび他のクライアントステーションと共有されない視点オブジェクトを備え、前記第１および第２のクライアントステーションは、前記第２のローカルコピー中のオブジェクトの状態および前記共有される視点オブジェクトに基づき、前記電子仮想環境のアニメーションを計算する
ことを特徴とする方法。
【請求項２】
前記電子仮想環境の前記展開は、前記サーバステーションによって、現実のイベントのストリーミングされたビデオを監視して分析することによって作成した前記状態変化に基づくものであることを特徴とする請求項１に記載の方法。
【請求項３】
前記現実のイベントを監視することが、前記現実のイベントにおける現実のオブジェクトの位置の変化を測定することを含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記現実のイベントを監視することが、前記現実のオブジェクトの速度の変化を測定することを含むことを特徴とする請求項３に記載の方法。
【請求項５】
前記現実のイベントを監視することが、前記現実のオブジェクトの向きの変化を測定することを含むことを特徴とする請求項３に記載の方法。
【請求項６】
前記現実のイベントを監視することが、競争を含むイベントを監視することを含むことを特徴とする請求項２に記載の方法。
【請求項７】
前記競争を含むイベントを監視することが、前記競争を含むイベントにおける現実の参加者を含む現実のオブジェクトを監視することを含むことを特徴とする請求項６に記載の方法。
【請求項８】
前記状態情報を送信するステップが、インターネットを使用することを含むことを特徴とする請求項１に記載の方法。
【請求項９】
ユーザが、前記ワールドモデルによって提供される前記電子仮想環境の少なくとも一部分のグラフィックス表現を決定することを可能にするステップを具えていることを特徴とする請求項１に記載の方法。
【請求項１０】
符号化された状態変化を含む状態情報を、サーバステーションからネットワーク経由で受信して、連続的に展開される電子仮想環境のアニメーションを計算するクライアントステーションであって、前記状態情報は、前記電子仮想環境のワールドモデルにおける特定のオブジェクトを含む１つ以上のオブジェクトの状態を記述し、前記ワールドモデルは、前記サーバステーション及び前記クライアントステーションによって共有される前記電子仮想環境内のオブジェクトによって規定される前記電子仮想環境全体の状態であり、
前記状態情報は、前記特定のオブジェクトの１つ以上の動的な動作を含み、
前記クライアントステーションが、チャネル復号器、及びソース復号器を具え、前記チャネル復号器の入力は前記ネットワークに接続され、前記チャネル復号器の出力は、第２ローカル記憶手段経由で前記ソース復号器の入力に接続され、前記第２ローカル記憶手段は、前記サーバステーションに記憶される電子仮想環境の前記ワールドモデルの第１ローカルコピーを、第２ローカルコピーとして前記符号化された状態変化の復号開始前に記憶し、
前記チャネル復号器は、前記符号化された状態変化を前記サーバステーションから前記ネットワーク経由で受信し、前記符号化された状態変化を前記状態情報に復号化し、前記状態情報に基づいて、前記ワールドモデルの前記第２ロ―カルコピー中の前記オブジェクトの状態を更新するように構成され、
前記ソース復号器は、前記第２のローカルコピー中のオブジェクトの状態に基づき、前記電子仮想環境のアニメーションを計算するように構成され、
複数のクライアントステーションが前記サーバステーションに接続され、かつ、前記クライアントステーションが、前記サーバステーションとは共有されず、前記複数のクライアントステーションの一部と共有される視点オブジェクトを備え、該クライアントステーションは、前記第２のローカルコピー中のオブジェクトの状態および前記共有される視点オブジェクトに基づき、前記電子仮想環境のアニメーションを計算するように構成される
ことを特徴とする複数のクライアントステーションを含むシステム。
【発明の詳細な説明】
【０００１】
関連する出願についての表示
本出願は、１９９８年８月２４日に提出された米国特許出願第09/138782号(代理人整理番号PHA23491)、ラオウル・モルアート（Raoul Mallart）、アツル・シンハ（Atul Sinha）による「放送アプリケーションにおいてインターネットを介するストリーミングのエミュレーション」の一部継続出願である。
【０００２】
本発明は、ネットワークを介してマルチメディアファイルをストリーミングすることに関するものである。より詳細には、放送において、インターネットを介してグラフィックスやビデオアニメーションのストリーミングをエミュレーションすることに関するものである。特に、グラフィックスやビデオアニメーションによって作成された環境とエンドユーザが対話することをできるようにすることに関するものである。
【０００３】
用語「ストリーミング」は、受信側において一定、かつ、連続するストリームとして処理することができるように、データをサーバからクライアントへ送出することを意味するものである。大部分のユーザは、例えばグラフィックス・アニメーション、オーディオ、ビデオ、或いは、これらを組み合わせたものなどを含む巨大なマルチメディアのファイルをダウンロードするのに十分速いアクセス手段を持たないため、ストリーミング技術は、インターネットの発展に伴い、ますます重要になりつつある。ストリーミングを用いれば、ファイル全体を受け取る前に、受け取ったデータの処理をクライアントのブラウザやプラグイン・ソフトウェアが開始することができるようになる。ストリーミングを機能させるためには、ファイルを受け取るクライアント側で、データを収集し、収集したデータを一定のストリームとして、データを処理するアプリケーションへ送出することができる必要がある。このことは、クライアントが必要とするより速くデータを受け取った場合、この余分なデータをバッファしておく必要がある、ということを意味する。他方、データが時間通りに到着しなかった場合、データ表示がもたついてしまう。
【０００４】
用語「ファイル」は、本明細書では、データ処理に利用することができ、かつ、エンティティとして処理することができる、関連するデータ項目のエンティティを意味するものとして用いることとする。本発明においては、用語「ファイル」は、記憶装置から取り出したデータのみならず、リアルタイムで生成されるデータを意味することもある。
【０００５】
インターネットを介してグラフィックスデータの通信を行う現在利用可能な技術や開発中の技術の中には、ＶＲＭＬ９７及びＭＰＥＧ４がある。ＶＲＭＬ９７は、「バーチャル・リアリティ・モデリング・ランゲージ」を意味するものであって、インターネットにおけるインタラクティブな３Ｄマルティメディアコンテンツを記述する国際標準規格（ISO/IEC14772）のファイルフォーマットである。ＭＰＥＧ４は、ＭＰＥＧ（動画像専門部会；Motion Picture Experts Group）によって策定されたISO/IEC標準規格である。このいずれの標準規格においても、映像のコンテンツは、いわゆるシーングラフ（scene graph）で構築される。シーングラフは、正確にグラフィックス・ワールド（graphics world）を集合的に記述する座標系及び形状の親子木構造を有するものである。このシーンの親子木構造における最上位項目は、ワールド座標系である。このワールド座標系は、１以上の子の座標系及び形状の親として機能する。これらの子座標系は、今度は、さらに子である座標系及び形状の親となる。
【０００６】
ＶＲＭＬは、オブジェクトを記述するファイルフォーマットである。ＶＲＭＬは、３Ｄグラフィックス、マルチメディア、及び、インタラクティブなオブジェクト／ワールドのビルディングを記述するのに役立つ一組のオブジェクトを記述するものである。これれのオブジェクトは、ノードと呼ばれ、フィールド内に格納される基本的なデータやイベントを含むものである。典型的には、このシーングラフは、構造ノード、リーフノード、インターポレイションノード、センサノードを含むものである。構造ノードは、あるシーンの中のオブジェクトの空間的関係を記述するものである。リーフノードは、オブジェクトの物理的外観を記述するものである。インターポレイションノードは、アニメーションを記述する。センサノードは、個々のユーザの入力感覚に対するユーザの相互作用を記述する。ＶＲＭＬは、サーバからクライアントへ流れるデータのストリーミングを直接にはサポートしない。ストリーミングにおいて不可欠である、ストリームとタイムスタンプとの間の同期化などの機能は、ＶＲＭＬには存在しない。しかしながら、ＶＲＭＬは、外部プログラムがＶＲＭＬクライアントと対話することができる機構を有する。これは、スポーツのアプリケーションでクライアントにアニメーションデータをロードするのに用いられている。例として、オーラッド・ハイテックシステム社（Orad Hi-Tec System, Ltd）の「バーチャルライブ・サッカー」（http://www.virtualive.com）を参照されたい。このウェブの資料には、インターネットを介して配信するために、現実のサッカー試合のハイライトをシュミレーションする、現実感がある動画による３次元グラフィックの場面を生成するプロセスが述べられている。このシステムは、テレビのスポーツ番組を、ほぼリアルタイムで補完する、マルチメディアリッチのウェブページで、コンテンツを生成する。この場合、プロセスは、２つのステップで機能する。最初に、スタジアム及びサッカープレイヤーのグラフィックスモデルが、外部プログラム（本例ではJavaアプレット）と共にダウンロードされる。その後、ユーザは、外部プログラムと対話し、個々のアニメーションを要求する。そして、このアニメーションに対するデータが、クライアントにダウンロードされ、ユーザは、このデータと対話する。ユーザは、アニメーションの中において、種々の視点から試合のシーンを観覧することができる。所望であれば、スローモーションで観覧するこもできる。ノードタイプに関しては、このプロセスでは、はじめに構造ノード及びリーフノードをダウンロードし、その後、インターポレイションノードをダウンロードする。インターポレイションノードのセットを変更することによって、種々のアニメーションシーケンスを再生することが可能となる。この例で用いられるプロセスは、全てのモデル（構造ノード）及び全てのアニメーションデータ（インターポレイタノード）を収容する完全なＶＲＭＬファイルを、ユーザが選択することができる単一ステップのプロセスに相当するものである。このアプローチでは、クライアント上で何らかのコンテンツを再生する前に、長時間のダウンロードを招く結果となる。このことは、特に、コンテンツを即座に得られるＴＶ放送と比較��ると、フラストレーションを感じさることとなる。
【０００７】
上述したその他の技術、即ちＭＰＥＧ４では、ＶＲＭＬ９７と広く重複するバイナリ・ディスクリプション・フォーマット・フォー・シーン（BIFS）が定義されている。一方、ＭＰＥＧ４は、ビデオと同様にグラフィックスのストリーミングをサポートするように設計されてきた。ＭＰＥＧ４では、シーンを更新、アニメーション化するための２つのクライアントサーバ・プロトコル、即ち、ＢＩＦＳ−更新及びＢＩＦＳ−アニメーションが、規定されている。ユーザは、アニメーションデータが完全にダウンロードされるのを待つ必要はない。例えば、前述したサッカー試合の放送アプリケーションでは、サッカー選手及びスタジアムのモデルがダウンロードされると即座に、アニメーションは開始する。更にＭＰＥＧ４には、圧縮バイナリフォーマットを用いるＢＩＦＳ伝送プロトコルのおかげでより効率的であるという利点がある。
【０００８】
ストリーミングの場合は、上述した既存の技術では、幾つかの制限、特に多数のクライアントに対する放送においては、帯域幅の利用、パケット損失の隠蔽及び回復、及び、マルチユーザの対話性などに関し制限がある。
【０００９】
帯域幅に関しては、完全なアニメーションがサーバ上で生成される。このことによって、例えば、大量のデータを、クライアントとサーバを繋ぐインターネットなどのネットワークを介して伝送する必要性を生ずることとなる。例えば、前述したサッカーの放送アプリケーションでは、２２人のサーカー選手をアニメーション化する必要がある。個々の選手毎の各アニメーションのデータポイント（data point）は、３Ｄ空間上の位置、及び、例えば、一組の選手の姿勢をモデリングする１５個の関節、を含むものである。これは、６３個の浮動小数点の値で表わされる。アニメーションの更新レートを１秒間に１５個のデータポイントとすれば、６６５Kbpsのビットレートが必要である。このビットレートは、圧縮することによって、減少させることができる。典型的には、ＢＩＦＳを使用すると、ビットレートは２０分の１まで減少し、約３３Kbpsのビットレートを得ることができる。しかしながら、このビットレートは、インターネットプロトコル（ＲＴＰ、ＵＤＰ、ＩＰ）及び音声などのその他のデータタイプに要するオーバーヘッドを何ら考慮していないものである。しかしながら、現在市販されている典型的なモデムの性能は、28.8Kbps或いは33.6Kbpsである。アニメーションのストリーミングでは、帯域幅の制限のため、エンドユーザで問題が発生するのは明らかである。多数のクライアント、例えば100,000のクライアントへの放送の場合、データストリームは、幾つかのルータ上で複製する必要があるであろう。インターネット上のルータは、パケットが、その最終的な目的地へ向かう途中において次に転送されるべき、次のネットワーク地点を判断する。このルータは、接続しているネットワークの現在の状況の把握に基づき、各々の情報パケットを送るルートを決定する。ルータは、ネットワークやゲートウェイの任意の連結点に位置するものであって、インターネットの現状の連結点もこれに含まれる。明らかなことは、この放送によって、インターネット全体において、管理不能なデータの爆発を発生し得るということである。これの発生を防止するためには、実際の帯域幅を28.8Kbpsよりかなり低く制限しなければならない。
【００１０】
パケット損失の隠蔽に関しては、ＶＲＭＬ型のシステムでは、信頼できるプロトコル（ＴＣＰ）を利用している。即ち、ここでは、パケット損失は問題とならない。ＭＰＥＧ４の場合、ＢＩＦＳは、ＲＴＰ、ＵＤＰ、及びＩＰを利用する。従って、パケット損失を回復させる機構が必要となる。ポイント・ツウ・ポイント型(point-to-point)のアプリケーションでは、損失したパケットの再伝送を考慮しなければならない。しかしながら、放送の場合、より複雑となる。しかしながら、いずれの場合とも、ＭＰＥＧの信頼性は、より高い帯域幅使用（冗長性）か、より長いレイテンシ（再伝送）か、のいずれかを必要とする。
【００１１】
マルチユーザのインタラクティビティに関しては、ＶＲＭＬ及びＭＰＥＧ４のいずれも、本質的にはクライアントサーバ通信に基づいている。複数のクライアントの間で通信を行うことについては、何ら支障はない。
【００１２】
ＶＲＭＬに関するより詳細な情報については、 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）他による「仮想環境のためのインターネットワーク基盤の要件」を参照されたい。
【００１３】
ＭＰＥＧ４に関するより詳細な情報については、 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）の編集による「ＭＰＥＧ４標準規格の概要」（ISO/IEC JTC1/SC29/WG11 N2323）を参照されたい。
【００１４】
発明の目的
従って、本発明の目的は、クライントが、マルチメディアのデータをあたかも一定で連続するストリームであるかのように、処理することをできるようにする技術を提供することである。その他の目的としては、インターネットを介する放送において多数のクライアント上で連続処理を可能にすることをできるようにすることである。上で確認した問題は、放送のアプリケーションにおいては、かなり深刻な問題であることに留意されたい。その他の目的としては、この技術を用いて、連続的に展開される電子的な仮想環境内を、ユーザが操縦することができるインタラクティブなソフトウェアアプリケーションを作り出すことである。
【００１５】
発明の概要
この目的を達成するために、本発明は、ネットワークに接続された受信局に対して、ネットワークを介してマルチメディアファイルのストリーミングをエミュレーションする方法を提供する。このファイルの各状態を表わすそれぞれの状態情報を提供する。この受信局は、ネットワークを介してそれぞれの状態情報を受け取ることができ、それぞれの状態情報の管理下においてローカルでマルチメディアファイルを生成することができる。アニメーションの放送においては、本発明は、グラフィックスのアニメーションを表示するためにネットワークを介してデータを提供する方法に関するものである。アニメーションの連続する各々の状態を記述するそれぞれの状態情報を、ネットワークを介して、提供する。このそれぞれの状態情報を、ネットワークを介して受け取る。この受信局が情報を受け取った後、それぞれの状態情報の制御下においてアニメーションを生成することができるようにする。より詳細には、本発明は、連続的に展開されるる電子的な仮想環境においてユーザが操縦することができる方法を提供することである。この方法は、環境のワールドモデルをユーザに提供すること、展開を表わすワールドモデルの状態変化を送出すること、仮想環境に対するオブジェクトの位置を制御するための入力をユーザが供給し得るようにすること、状態変化とユーザの入力とに反応して、ワールドモデルから環境を作ること、を特徴とする。
【００１６】
本発明においては、マルチメディアファイル（アニメーション、ビデオ、或いはオーディオのファイル）を、一連の状態として記述する。クライアントへ伝送されるものは、アニメーションデータではなく、この状態情報である。従って、用語「エミュレーション」では、クライアントとやり取りされる情報は、ストリームする必要がないことを強調するものである。クライアントは、受け取った状態情報に基づき、ローカルで対戦するためにデータを生成する。従って、このユーザは、対戦中に、あたかもデータがネットワークを介してストリームされているかのように（最適な状況下では）、連続的で一定のデータのストリームであると知覚する。
【００１７】
好適な実施態様では、共有オブジェクトプロトコルを用いて、このエミュレーションを実現する。サーバもクライアントも、オブジェクトの収集のコピーを有する。オブジェクトとは、状態情報を持つデータ構造である。仮想のサッカー試合の場合は、オブジェクトは、例えば、１人のサッカー選手を表わすグラフィックスである。サーバーは、ストリームされたビデオファイルを受け取り、オブジェクトをモニタする。ＭＰＥＧ４では、エンティティとして処理することができるビデオオブジェクトを生成することができる点に注意されたい。従って、サーバがこのオブジェクトの状態を変化させる場合、この変化に応じて、共有オブジェクトプロトコルは、クライアントにおいてコピーを変化させる。これについて、図面を参照しながらより詳細に説明する。
【００１８】
この状態情報は、アニメーションデータ自体よりも、高い抽象レベルの情報である。例えば、上述したサッカー試合の放送アプリケーションでは、この状態情報には、競技場における２２人の選手の現在位置、及び、選手達の現在の動作（例えば、「走る」、「ジャンプする」）を指定するパラメータ、が含まれる。より高いレベルの情報を利用すると、特に、アニメーションがインターネットを介して多くの観衆にストリーミングされる放送アプリケーションにおいては、幾つかの利点がある。インターネットを介してやり取りされる状態情報のコンテンツは、非常にコンパクトなものであり、従って、アニメーション自体をストリーミングするよりも、より少ない帯域幅しか必要としない。このアニメーションは、ローカルにおいて、数個のパラメータから生成される。更に、アニメーションの状態は、アニメーションデータ自体よりも遅いレートで変化するため、アニメーションのデータポイントの更新レートは、より低いものとなる。このことは、必要な帯域幅を更に低減することに寄与する。更に、本発明は、パケット損失の隠蔽や回復、或いは、ネットワークレイテンシのジッタのマスキングなどの向上に寄与する。状態の間において補間したり外挿したりすること、或いは、推測操縦法を実現することは、容易である。より高い抽象レベルの情報を使用するため、ユーザがアニメーションと対話することを、より容易にプログラムすることができる。その他の利点としては、クライアントが状態情報を共有することができる場合には、マルチユーザの対話が可能となることである。更に、その他の利点としては、クライアントが、クライアント毎にで異なるであろう個々の演算能力に基づき、状態情報をアニメーションに変換することができるという事実である。クライアントにおいて利用可能な資源は、クライアント毎に、或いは、クライアントの属するグループによって異なるものであってもかまわない。
【００１９】
本願は、本願と同一の譲受人による米国特許出願第09/053,448号（PHA23,383）、タイトル「放送イベントの３Ｄグラフィックスモデルを用いるグループでのビデオ会議」の全てを参照によって包含するものである。この文献は、地理的に分散した複数のエンドユーザに対するテレビ放送のサービスを扱うものである。この放送サービスは、会議モードと一体化している。放送におけるあるイベントに基づき、複数のエンドユーザを含む特定のグループは、このグループの者がこのイベントについて議論することができるように、ソフトウェアの管理下において会議モードに変わる。この会議モードは、イベントを表わすビデオの３Ｄグラフィックスモデルによって、即ち、グループへダウンロードすることによって機能する。
【００２０】
本発明について、添付する図面を参照しながら実施例を用いて説明する。全ての図面を通じて、同じ符号番号は、同様の或いは相当する機能を意味するものである。
【００２１】
好適な実施態様
図１は、ＶＲＭＬに基づくクライアントサーバ・システム１００のブロック図である。システム１００は、通信チャネル１０６を介して、即ちこの場合はインターネットを介してクライアント１０４に結合されたサーバ１０２を具える。システム１００には、複数のクライアントを設けることも可能であるが、図面を明瞭にするためにここでは示さない。サーバ１０２は、ソース符号化器１０８、及び、チャネル符号化器を具えるも。クライアント１０４は、チャネル復号器１１２、及び、ソース復号器１１４を具える。ソース符号化器１０８は、コンテンツを生成するツールであると考えられる。ツールとしては、例えば、ビデオ上のモーションキャプチャ装置（図には示さず）からＶＲＭＬのアニメーションデータを生成するものなどが挙げられる。チャネル符号化器１１０は、サブシステムであって、ソース符号化器１０８で生成されたＶＲＭＬのアニメーションデータを入力として受け取り、このデータを、インターネットを介して伝送できる形態に変換するものである。このＶＲＭＬのアニメーションデータを、ファイル内に格納する。このファイルの伝送には、標準のファイル・トランスファー・プロトコルを使用する。クライアント１０４では、チャネル復号器は、外部プログラム１１６内に収容されている。外部プログラムは、ダウンロードしたファイルからアニメーションデータを受け取り、これを、ソース復号機能を実施するＶＲＭＬプレイヤー１１８へ渡す。このソース復号機能は、本質的にはシーングラフの管理上である。このクライアントサーバの通信手順は、ストリーミングによる解決策ではない。ＶＲＭＬの仕様は、ストリーミングの要件を考慮していない。ストリーミングにおいては必須のものである、ストリーム及びタイムスタンプの間の同期化などの機能は、VRMLには存在しない。
【００２２】
図２は、MPEG4に基づくクライアントサーバシステムのブロック図である。システム２００は、チャネル２０６を介してクライアント２０４に結合されたサーバー２０２を具える。サーバ２０２は、ソース符号化器２０８及びチャネル符号化器２１０を具える。クライアント２０４は、チャネル復号器２１２及びソース復号器２１４を具える。上述したように、MPEG４は、ストリーミングをサポートするように設計されたものである。中でも特に、MPEG4では、VRML９７と広く重複しているBIFSを規定している。更に、MPEG4は、シーンを更新し、アニメーション化する２つのクライアントサーバプロトコル、即ち、BIFS−更新、BIFS−アニメーションを規定している。ストリーミングに関して、VRMLよりもMPEG４が勝る点は、シーン記述（scene description）及びアニメーションデータを符号化すること、並びに、組み込まれたストリーミング機能にある。符号化器１０８と同様に符号化器２０８は、コンテンツを生成するツールである。チャネル符号化器２１０は、チャネル符号化器１１０とは異なるものである。チャネル符号化器２１０は、BIFS及びBIFS−アニメーションのフォーマットでビット列を生成する。このビット列には、アニメーションデータのみならず、複数の選手及びスタジアム（サッカー試合のアニメーション）のグラフィックスモデルをも含むものである。
【００２３】
しかしながら、システム１００と２００のいずれも、多数のクライアント、例えば１００〜１０００００のクライアントに向けてアニメーションを放送する環境で用いる場合には、深刻な欠点を幾つか有する。上述したようにこの制限は、ネットワークの帯域幅の利用法、パケット損失の隠蔽、マルチユーザの対話性に関連するものである。
【００２４】
本発明の好適な実施態様は、オブジェクトのオーナー及びオブジェクトをビューワー（或いはリスナー）で、オブジェクトの共有をサポートする通信プロトコルを利用してストリーミングをエミュレーションすることによって、これらの問題の解決策を提供するものである。共有されたオブジェクトとは、状態情報を持つデータ構造体である。全体の状態を記述する共有されたオブジェクトの組み合わせをワールドモデルと呼ぶこととする。クライアント及びサーバは、ワールドモデルの自分のコピーをそれぞれ有する。例えば、サッカー試合を表わす場合、オブジェクトは、サッカー選手を表わすものである。例えば、このオブジェクトの状態情報は、３D空間内のサッカー選手の位置、或いは、「走っている」、「ジャンプしている」、「スライディングしている」、「見たところ傷付いているが、コメディアンのようにグラウンド上に倒れている」などの、動作の状況である。共有されたオブジェクトの各々は、特定の者、例えばサーバに所有されるものである。この所有者は、オブジェクト内に含まれる状態情報を変化させることができる。変化した場合、プロトコルは、ネットワークを介して、自動的に状態情報を同期化する。このようなプロトコルを、本明細書では、これ以降は共有オブジェクトサポート・プロトコルと呼ぶこととする。このプロトコルは、ワールドモデルの状態が変化しても、全てのワールドモデルのコピーが一貫性を保つことを保証する。この目的のために用いることができるプロトコルの例としては、DIS（分散インタラクティブ・シミュレーション）及びISTP（インタラクティブ・共有トランスファープロトコル）がある。本発明の基礎をなすアイデアは、アニメーションを一連の状態として記述することである。例えば、サッカーのソフトウェアアプリケションでは、アニメーションは、競技場の選手の一連の位置、及び選手の動作として記述される。ある与えられた瞬間における状態を、ワールドモデルによって記述する。時間が経過するに従い、この状態は変化し、プロトコルは、ネットワークを介してワールドモデルの状態と同期化を取る。このことは、共有オブジェクトの観点からも説明することができる。これらのオブジェクトは、ある与えられた瞬間におけるゲームを記述する状態情報を有するものである。各オブジェクトに対する状態情報を更新すると、ネットワークを介して複数のクライアントへ送るべきメッセージを生成する結果となる。
【００２５】
図３は、本発明のシステム３００のブロック図である。システム３００は、ネットワーク３０６を介してクライアント３０４に結合されたサーバ３０２を具える。サーバ３０２は、ソース符号化器３０８及びチャネル符号化器３１０を具える。クライアント３０４は、チャネル復号器３１２及びソース復号器３１４を具える。サーバ３０２は、ワールドモデルのコピー３１６を有する。データは、入力部３２０からソース符号化器３０８へストリーミングされる。ソース符号化器３０８は、受け取った入力に基づき、必要な状態情報を生成し、ストリーミングのプロセスの経過に伴い、ワールドモデルのコピー３１６内のオブジェクトの状態を更新する。このタイプの技術は、例えば上述した仮想ライブサッカーシステムで使用されている。チャネル符号化器３１０は、ワールドモデルのコピー３１６を監視し、共有オブジェクトの状態変化を符号化する。符号化された状態変化を、ネットワーク３０６を介して、クライアントへ送出する。チャネル復号器３１２は、この状態変化を受け取り、ローカルのワールドモデル３１８を更新する。ソース復号器３１４は２つの仕事を行うものである。第１に、受け取った状態情報に基づきアニメーションを生成する。第２に、ソース復号器３１４は、アニメーションに応じてシーングラフを管理する。ソース復号器３１４は、インテリジェントなコンポーネントであり、動画の計算を実行し、更に、パケット損失やネットワークレイテンシのジッタを隠す状態内挿や外挿などのその他の仕事を実行する能力がある。
【００２６】
この点については、本願と同一の譲受人による米国特許出願第08/722,414号（PHA23,155）、タイトル「待ち時間の影響を軽減するローカルでの更新を伴うマルチプレイヤーのビデオゲーム」を参照されたい。本願は、この参照文献の全内容を参照によって包含するものとする。この参照文献は、複数のユーザが、インタラクティブなソフトウェアアプリケーションを通じて仮想環境を共有するシステムについて述べている。ある特定のユーザの状態変化は、この特定のユーザと他のユーザの各人との間の仮想環境における個々の相対距離に応じて、１以上のその他のユーザに伝送される。この条件付きの伝送によって、メッセージのトラヒックが減少し、仮想環境を実質的に無制限に拡大したり縮小したりすることができる。
【００２７】
また、本願と同一の譲受人による米国特許出願第08/722,413号（PHA23,156）、タイトル「代理エージェントによるマルチプレイヤーのビデオゲームの待ち時間の影響の軽減」を参照されたい。本願は、この参照文献の全内容を参照によって包含するものとする。この文献は、２人以上のユーザの間で対戦するためのインタラクティブなソフトウェアアプリケーションを処理するデータ処理システムに関するものである。このシステムは、ユーザの各自によって操作されるユーザインタフェイス装置を具えるものである。この装置は、インターネットを介して相互接続される。レイテンシを有効に除去するためには、ユーザを、その他のユーザの装置上ではエージェントとして表わし、他のユーザの動作に対するエージェントの反応は、システム内に格納されたルールベースにより決定される。
【００２８】
更に、本願と同一の譲受人による米国特許出願第08/994,827号（PHA23,319）、タイトル「映画的技法を用いて待ち時間を隠蔽する娯楽エージェント」も参照されたい。本願は、この参照文献の全てを参照によって包含するものとする。この文献は、データ処理システム上で実行されるユーザ対話型のソフトウェアアプリケーションの機能性を持つ部分としてのソフトウェアエージェントに関するものである。このエージェントは、映画的技法を用いてこの効果を作り出すものである。
【００２９】
ワールドモデルのコピー３１６と３１８は、ワールドモデルのあるコピー内のあるオブジェクトと、ワールドモデルのその他のコピー内のその他のオブジェクトとが、状態変化を共有するシーンでは共有されたものとして取り扱う限り、例えば、描画された時の外観は同じである必要はない点に注意されたい。実現可能性や非同一性は、アプリケーションに左右されるものである。例えば、あるクライアントのユーザが、サッカー選手を例えばペンギンで表現したい場合、かつ、その他のクライアントのユーザが例えばバレイダンサーで表現したい場合、状態変化を共有することによって、何れのクライアントの表現もシステムを通じて一貫性が保持される。その他の例としては、クライアント３０４では、ユーザは対戦中に追加の状態情報を入力し、ワールドモデルの描画を制御することができるようになる。例えば、ユーザは、仮想ライブのサッカー試合を見ているときに、特定の視点を選択することもできる。この状態情報は、サーバ３０２には存在しない。また、その必要もない。状態情報及びワールドモデルに基づく視点におけるレンダリングは、少しも複雑なものではなく、この映像を、実際に奥行きの情報と共にビットマップとしてクライアント３０４へストリームするよりも少ない資源しか必要としない、ことは注目に値する。従って、上述した本発明の利点に加えて、本発明はユーザの対話性を向上させる。
【００３０】
システム３００の構成について、クライアント３０４は、ソフトウェアアプリケーションを実行させることができ、十分な性能を持つＣＰＵと十分な大きさの記憶装置を設けている、と仮定する。クライアントのうち幾つかは、これらの性能を搭載しなくとも良い。従って、「シン・クライアント」（thin client）とも呼ばれるローエンドの端末を検討するのが好適である。例えば、このような端末としては、入力としてBIFSストリームを受け入れることができるが、それほど強力でない、性能が低いMPEG４端末を使うことができる。このことについて、本発明によるシステム４００のブロック図である図４を参照しながら説明する。システム４００は、変換局４０６を介して、クライアント２０４と通信を行うサーバ３０２を具える。サーバ３０２とクライアント２０４との構成については、上述した通りである。変換局４０６は、ワールドモデルのローカルコピーを保持する。モデルが現在の状態を記述するように、このワールドモデルをサーバ３０２からのメッセージによって更新する。この状態情報に基づき、変換局４０６は、アニメーションを計算する。このアニメーションデータをBIFS−アニメーションのフォーマットに符号化し、MPEG4クライアントへ伝送する。サーバ３０２は、システム３００にあるサーバと同一のものである。変換局４０６は、共有オブジェクト・サポートプロトコルで伝送されたメッセージからBIFS−アニメーションのビット列に変換するモジュールである。変換局４０６は、上述した、チャネル復号器３１２、ソース変換器４１０、チャネル符号化器４１２を具える。復号器３１２は、サーバ３０２から受け取ったメッセージを解釈し、ワールドモデルのコピー３１８を更新する。ソース変換器４１０は、状態情報に基づきアニメーションを計算するプログラムを具える。上述した復号器３１４と同様に、このモジュールは、パケット損失の回復（補間法、或いは外挿法に基づく）、推測操縦、ローカルでのアニメーション化などの仕事を行うものとするのが好適である。チャネル符号化器４１２は、ソース変換器４１０の出力に基づき、BIFS或いはBIFS−アニメーションのフォーマットでビット列を生成する。
【００３１】
図５は、本発明におけるシステム５００のブロック図である。システム５００は、システム３００と４００の構成を具える。システム５００は、サーバ３０２、ネットワーク５０２、ネットワーク５０２を介してサーバ３０２と接続されるクライアント５０４、５０６、５０８、及び５１０を具える。更に、システム５００は、変換局４０６と、クライアント５１２、５１４、及び５１６とを具える。クライアント５１２〜５１６を、ネットワーク３０２及び変換局４０６を介して、サーバ３０２に結合する。クライアント５１２〜５１６に、変換局４０６によりBIFSのビット列を供給する。一方、クライアント５０４〜５１０は、共有オブジェクトをサポートするプロトコルで状態情報を受け取り、クライアント自身でアニメーションを作る。
【００３２】
図６は、クライアントの間で対話することができる本発明のシステム６００のブロック図である。システム６００は、ネットワークを介して、クライアント６０２及び６０４と結合されたサーバ３０２を具える。サーバ３０２の構成は上述した通りである。サーバ３０２は、オブジェクトに関するワールドモデルのコピー６０８、６１０、６１２、及び６１４を有する。クライアント６０２及び６０４は、同様のオブジェクトに関するワールドモデルの同様のコピー６０８、６１０、６１２、及び６１４を有する。ワールドモデルのコピーは、システム全体を通じて、サーバ３０２から送られた状態情報を用いて、一貫性を保持する。このことが、上述したようにグラフィックスアニメーション、ビデオアニメーション、或いは音声ファイルのストリーミングをエミュレーションする基礎となる。クライアント６０２及び６０４は、オブジェクト６１６及び６１８をお互いに共有するが、サーバ３０２とは共有しない。例えば、クライアント６０２は、クライアント６０２により選択されたサッカー試合のグラフィック表現のビューを表わす「視点」オブジェクトの所有者である。サーバ３０２から受け取った状態情報に基づき、クライアント６０２は、この試合のグラフィック映像を、あたかもスタジアムのある特定の位置から観覧したかのように、描画する。この映像の描画は、サーバ３０２から受け取った状態情報と、ローカルにおけるワールドモデルのコピーと、視点を選択することができるジョイスティックやマウスなどの入力手段６２０を介するユーザの入力と、を組み合わせたものに基づくものである。クライアント６０４は、クライアント６０２の管理下においてクライアント６０２上にあるオブジェクトと一貫性を保持されている視点オブジェクトを共有する。オブジェクト６１６〜６１８は、このシステムにおいてはその他のクライアントとは、共有されていない。状態情報及びワールドモデルに基づく視点の描画は、少しも複雑ではなく、この映像を実際にビットマップとして奥行きの情報と共にクライアント６０２、６０４へストリームする場合よりも少ない資源しか必要としない点に注意されたい。システム６００を、主たる所有者としてのサーバを設けずに、全体的に分散システムとすることもできる。複数クライアントの各自は、全てのクライアントから知覚することができるワールドモデルのオブジェクトの各別の１つを所有する。あるオブジェクトの所有者が、状態変化を引き起こすと、これはネットワークを通じて伝播され、共有ワールドモデル内の一貫性を保持する。マルチユーザのアプリケーションでは、この効果は、アニメーションのストリーミングをエミュレーションすることの当然の帰結として、帯域幅を制限されることなく、各クライアント上で連続で対戦することである。
【００３３】
図７、８は、ダッチTTなどのオートバイレースである放送イベントに基づくビデオゲームという状況において、上述したシステム３００、４００、５００、及び６００を用いて説明する図である。
【００３４】
図７は、本発明におけるシステム７００の図である。図７は、実際のレーストラック７０２のレイアウトを示すものであり、毎年ダッチTTが開催されるオランダのアッセンの有名なサーキットである。このTTサーキットの全長は、６．０５Km（３．７６マイル）である。本物のレースにおいて、本物のレーサーの各々を、トラック７０２における点７０４，７０６，７０８，．．．，７１８で示し、各オートバイは送信機を具え、受信局７２０へ自分の位置、ベロシティ（スピードと方向）を送信するものとする。また、好ましくは、ロール（バンク角）、ピッチ（ウィリー）、偏走（カーブでの急激加速時のパワースライド）、などのパラメータも送信するものとする。局７０４は、レーサーから受け取ったデータを、インターネットなどのネットワーク７２８を介してエンドユーザであるクライアントの装置７２２，７２４，．．．，７２６へ送る。クライアント７２２〜７２６は、例えばインターネットやフロッピーディスクを介して事前にダウンロードするなどして、事前に、トラック７０２における３Dグラフィックスのワールドモデルのコピー（上記事項を参照されたい）を受け取っている。このモデルにおいては、トラック７０２上の実際のレーサーを表わすオブジェクトに関する位置やベロシティは、ユーザの装置７２２、７２４、７２６において受け取った状態変化によって決定される。実際のレーサーを表わすこのオブジェクトは、ユーザの知覚に応じて仮想環境を動的に変更する。このオブジェクトは、ユーザ装置において、ヘルメットのレーシング番号の色、レーシングスーツ、カウルなどを具えた実際のレーサーに似るように作ることができる。このグラフィックスの外観を、ユーザの装置にダウンロードしたワールドモデルの一部とすることができる。更に、エンドユーザは、制御可能なオブジェクトを有する。このオブジェクトは、あたかもユーザがトラック上のオートバイに乗り、レーサーの１人としてレースに参加しているかのような、ビューをユーザに提供するように、作られている。しかし、この場合、ユーザは、仮想環境に存在しているため安全である。ユーザは、このユーザに制御されたレーサーと、自分のクライント装置７２２，７２４、或いは７２６を通じて、適切な遊具機やその他のユーザ入力装置７３０、７３２、７３４を介して、対話することができる。
【００３５】
ユーザが、その他のユーザと対戦する、或いは、レーサーがソフトウェアプログラムで制御されるプログラム、と対戦するビデオゲームは、周知であり、ゲームセンタにおいては主要なアトラクションとなっている。現在市販されている家庭用のビデオゲームの３Dグラフィックスの品質は、驚異的に高い。この高品質が、事実上、熱狂的なシーンやリアルなシーンに寄与する。本発明は、ユーザがいかなる危険や怪我を被る恐れもなく、現実の本物のプロとの対戦に最も近いものを提供することによって、リアリズムの新次元をユーザに与えるものである。
【００３６】
明らかなことは、同様の方法が、仮想ダートトラックレース、Ｆ１、インディ５００カーレース、ラリー、ヨットレース、或いは、ユーザが操縦することが可能である連続的に展開する仮想環境のためのステージを設定することができるその他の競争イベントにも適用することができることである。天候やオイル漏れによる道路表面のスリップ性、風の力、潮の流れ（ヨットレース）などの、天候及びトラックの条件は、従来のビデオゲームで知られているように、ワールドモデルに統合することができる。幾つかのユーザは、その他のユーザのクライアント上で、その他のオブジェクトを表示するために、自分の所有する制御可能な、仮想のトラックに沿ったオブジェクトに関する、位置、ベロシティ、及び姿勢、を相互にやり取りする能力を持たすこともできる。
【００３７】
提供されたワールドモデルは、このオブジェクトを、クライアント上でどのようなグラフィックスのモデルにするかを選択するユーザのオプションとして開放することもできる。上述したように、サッカー試合の例では、サッカー選手のグラフィックス表現を、選択し、ユーザが意図するどんな形状、特に映画「シックスパック」（six-pack）に倣った形状でも、反映させることができる。同様に、ユーザが操縦可能である能力を与えられた仮想環境におけるレーサーを、らくだに乗る者、ダチョウに乗る者、或いは、トラック上を走るスイス防衛隊の隊員、或いはこれらの組み合わせとして表現することもできる。その他の例として、本物の車やオートバイの外観を、近年の車などで置き換えたり、或いは、ユーザ自身でデザインしたりすることもできる。図８は、現実離れした外観を説明したものである。上で紹介した例を組み合わせたものに倣って、本物のレーサーを表わすオブジェクトをモデリングしたものであり、これは、ビデオゲームの娯楽のレベルを向上させる一因と成り得る。本物のレーサーは、状態変化を受けるオブジェクトとして記述される。クライアント７２２〜７２６上の本物のグラフィックスの外観は、グラフィックス表現において動作及び位置がワールドモデルの力学上一貫性を保持する限り、任意である。
【００３８】
本発明を、リアルタイム、及び、イベントの放送している間のイベント、を結び付けた対話型アプリケーションとして説明してきたが、明らかなことは、対話型アプリケーションは、現実のイベントが実際に起こった時間に使用する必要がないということである。例えば、サービスプロバイダーは、レースについてのイベントを表わす状態情報を、いかなる時間においても、放送することができ、加入者は、プロと対戦することができる。従って、本発明は、カラオケのビデオ版と考えることもできる。
【図面の簡単な説明】
【図１】  ＶＲＭＬのクライアントサーバシステムの図である。
【図２】  ＭＰＥＧ４のクライアントサーバシステムの図である。
【図３】  本発明で用いるシステムの図である。
【図４】  本発明で用いるシステムの図である。
【図５】  本発明で用いるシステムの図である。
【図６】  本発明で用いるシステムの図である。
【図７】  ビデオゲームを説明する図である。
【図８】  ビデオゲームを説明する図である。
【図１】
0005160704.tif 000002
【図２】
0005160704.tif 000003
【図３】
0005160704.tif 000004
【図４】
0005160704.tif 000005
【図５】
0005160704.tif 000006
【図６】
0005160704.tif 000007
【図７】
0005160704.tif 000008
【図８】
0005160704.tif 000009