(57)【要約】  フルレンダリングされた３次元のキャラクタがネットワークを介してクライアントに配信される。論理ファイル及びプリレンダリングされたブリーフビデオクリップがサーバからダウンロードされる。ビデオクリップは一度だけダウンロードされ、後の使用のために局所的にキャッシュされる。ソフトウェアアプリケーションが論理ファイルを用いてビデオクリップをシームレスにつなぎ合わせて生きているようなキャラクタを表示する。キャラクタは、論理ファイルにより指示されるユーザ操作、期間の経過及び準ランダム事象などの種々のトリガイベントに応答する。【特許請求の範囲】
【請求項１】
インタラクティブなフルレンダリングされた３次元キャラクタをクライアント上のプレーヤにネットワークを介して配信する方法であって、該方法は、
各自キャラクタのアニメーションシーケンスを示す複数のプリレンダリングされたブリーフビデオクリップを格納するステップと、
キャラクタの状態を記述する状態情報を格納するステップと、
前記プレーヤからの第１のリクエストに応答して、前記キャラクタの状態及び前記複数の格納されたビデオクリップからのビデオクリップの再生リストを含むとともに、前記再生リストに従って前記プレーヤにビデオクリップを再生させて生きているようなキャラクタをシミュレートさせる命令を出す論理ファイルを生成するステップと、
前記論理ファイルを前記プレーヤに送るステップと、
前記論理ファイル及び前記キャラクタとのユーザインタラクションに応答して、前記プレーヤから、前記再生リスト内の一つのビデオクリップに対する第２のリクエストを受信するステップと、
前記第２のリクエストに応答して前記一つのビデオクリップを前記プレーヤに送るステップと、
を備える方法。
【請求項２】
前記プレーヤにおける前記キャラクタとのユーザインタラクションを記述する情報を受信するステップと、該受信情報に応答してデータベースに格納されている前記状態情報を更新するステップとを更に備える、請求項１記載の方法。
【請求項３】
前記論理ファイルは、更に、トリガイベントに応答して前記プレーヤにビデオクリップを再生させる命令を出し、前記トリガイベントは準ランダム事象、期間終了及びユーザインタラクションを含む、請求項１記載の方法。
【請求項４】
前記複数のプリレンダリングされたブリーフビデオクリップ内の各ビデオクリップは動作を行う３次元のキャラクタのアニメーションである、請求項１記載の方法。
【請求項５】
インタラクティブなフルレンダリングされた３次元キャラクタをクライアント上のプレーヤにネットワークを介して配信する方法であって、該方法は、
前記プレーヤからの第１のリクエストに応答して、各自キャラクタのアニメーションシーケンスを示す複数のプリレンダリングされたブリーフビデオクリップの再生リストを含むとともに、前記再生リスト及びユーザインタラクションに従って前記プレーヤにビデオクリップを再生させる命令を出す論理ファイルを受信するステップと、
前記論理ファイルを実行するステップと、
前記再生リストに応答して前記キャラクタのビデオクリップをダウンロードするステップと、
前記ダウンロードしたキャラクタのビデオクリップを前記論理ファイルの命令に従って表示させて生きているようなキャラクタをシミュレートするステップと、
前記キャラクタとのユーザインタラクションを受信するステップと、
前記論理ファイルの実行及び前記キャラクタとのユーザインタラクションに応答して、前記再生リスト内の前記キャラクタの一つのビデオクリップをリクエストするステップと、
前記リクエストされたビデオクリップ及び前記論理ファイル命令に応答して、前記リクエストされたキャラクタのビデオクリップを表示するステップと、
を備える方法。
【請求項６】
前記論理ファイルは、更に、トリガイベントに応答して前記プレーヤにビデオクリップを再生させる命令を出し、前記トリガイベントは準ランダム事象、期間終了及びユーザインタラクションを含む、請求項５記載の方法。
【請求項７】
前記複数のプリレンダリングされたブリーフビデオクリップ内の各ビデオクリップは動作を行う３次元のキャラクタのアニメーションである、請求項５記載の方法。
【請求項８】
前記再生リストに応答して前記キャラクタのビデオクリップをダウンロードするステップは、
ダウンロードしたビデオクリップをローカルキャッシュに格納するステップと、
前記再生リスト内のビデオクリップがローカルキャッシュ内にないことが決定されたら前記ビデオクリップをダウンロードするステップと、
を備える請求項５記載の方法。
【請求項９】
インタラクティブなフルレンダリングされた３次元キャラクタをクライアント上のプレーヤにネットワークを介して配信するための実行可能なコンピュータプログラム命令を記憶したコンピュータ読み取り可能な記憶媒体であって、該コンピュータプログラム命令は、
各自キャラクタのアニメーションシーケンスを示す複数のプリレンダリングされたブリーフビデオクリップを格納する命令と、
キャラクタの状態を記述する状態情報を格納する命令と、
前記プレーヤからの第１のリクエストに応答して、前記キャラクタの状態及び前記複数の格納されたビデオクリップからのビデオクリップの再生リストを含むとともに、前記再生リストに従って前記プレーヤにビデオクリップを再生させて生きているようなキャラクタをシミュレートさせる命令を出す論理ファイルを生成する命令と、
前記論理ファイルを前記プレーヤに送る命令と、
前記論理ファイル及び前記キャラクタとのユーザインタラクションに応答して、前記プレーヤから、前記再生リスト内の一つのビデオクリップに対する第２のリクエストを受信する命令と、
前記第２のリクエストに応答して前記一つのビデオクリップを前記プレーヤに送る命令と、
を備えるコンピュータ読み取り可能な記憶媒体。
【請求項１０】
前記コンピュータプログラム命令は、前記プレーヤにおける前記キャラクタとのユーザインタラクションを記述する情報を受信する命令と、該受信情報に応答してデータベースに格納されている前記状態情報を更新する命令とを更に備える、請求項９記載のコンピュータ読み取り可能な記憶媒体。
【請求項１１】
前記論理ファイルは、更に、トリガイベントに応答して前記プレーヤにビデオクリップを再生させる命令を出し、前記トリガイベントは準ランダム事象、期間終了及びユーザインタラクションを含む、請求項９記載のコンピュータ読み取り可能な記憶媒体。
【請求項１２】
前記複数のプリレンダリングされたブリーフビデオクリップ内の各ビデオクリップは動作を行う３次元のキャラクタのアニメーションである、請求項９記載のコンピュータ読み取り可能な記憶媒体。
【請求項１３】
インタラクティブなフルレンダリングされた３次元キャラクタをクライアント上のプレーヤにネットワークを介して配信するための実行可能なコンピュータプログラム命令を記憶したコンピュータ読み取り可能な記憶媒体であって、該コンピュータプログラム命令は、
前記プレーヤからの第１のリクエストに応答して、各自キャラクタのアニメーションシーケンスを示す複数のプリレンダリングされたブリーフビデオクリップの再生リストを含むとともに、前記再生リスト及びユーザインタラクションに従って前記プレーヤにビデオクリップを再生させる命令を出す論理ファイルを受信する命令と、
前記論理ファイルを実行する命令と、
前記再生リストに応答して前記キャラクタのビデオクリップをダウンロードする命令と、
前記ダウンロードしたキャラクタのビデオクリップを前記論理ファイル命令に従って表示させて生きているようなキャラクタをシミュレートする命令と、
前記キャラクタとのユーザインタラクションを受信する命令と、
前記論理ファイルの実行及び前記キャラクタとのユーザインタラクションに応答して、前記再生リスト内の前記キャラクタの一つのビデオクリップをリクエストする命令と、
前記リクエストされたビデオクリップ及び前記論理ファイル命令に応答して、前記リクエストされたキャラクタのビデオクリップを表示する命令と、
を備えるコンピュータ読み取り可能な記憶媒体。
【請求項１４】
前記論理ファイルは、更に、トリガイベントに応答して前記プレーヤにビデオクリップを再生させる命令を出し、前記トリガイベントは準ランダム事象、期間終了及びユーザインタラクションを含む、請求項１３記載のコンピュータ読み取り可能な記憶媒体。
【請求項１５】
前記複数のプリレンダリングされたブリーフビデオクリップ内の各ビデオクリップは動作を行う３次元のキャラクタのアニメーションである、請求項１３記載のコンピュータ読み取り可能な記憶媒体。
【請求項１６】
前記再生リストに応答して前記キャラクタのビデオクリップをダウンロードするコンピュータプログラム命令は、
ダウンロードしたビデオクリップをローカルキャッシュに格納する命令と、
前記再生リスト内のビデオクリップがローカルキャッシュ内にないことが決定されたら前記ビデオクリップをダウンロードする命令と、
を備える請求項１３記載のコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本発明は、２００８年２月１２日出願の米国仮出願番号第６１／０１８，１５２号の優先権を主張するものであり、その全内容は参照することにより本書に組み込まれる。
【０００２】
本発明は、一般にはビデオコンテンツのネットワーク配信に関し、特にはインタラクティブなフルレンダリングされた３次元キャラクタのネットワーク配信に関する。
【背景技術】
【０００３】
１９９０年代に多くの会社がアニメーション化されたキャラクタとのますます洗練されたインタラクション方法をユーザに提供するにつれて、仮想ペットが人気を博している。当初は、仮想ペットは、例えばバンダイ社（日本国、東京所在）により製造されているタナゴッチ及びタイガーエレクトロニクス社（現在ハズブロ社の一部門）により製造されているギガペットのように、小さな携帯ガジェットに入れられていた。これらのガジェットの計算能力、電池寿命及び表示能力は可視効果及びこれらのペットのインタラクティビティを制限していた。
【０００４】
別のクラスの仮想ペットはソフトウェアベースの仮想ペット、例えばアニメーション化された動物の世話、飼育、繁殖又は展示に焦点を当てたコンソールベースのビデオゲームにおける仮想ペットである。ビデオゲートコンソールの方がガジェットベースのディジタルペットより計算能力が高いため、通常このクラスの仮想ペットはより高レベルの視覚効果及びインタラクティビティを達成することができる。
【０００５】
仮想ペットを含むフルレンダリングされアニメーション化されたインタラクティブな３次元キャラクタのウェブブラウザへのネットワーク配信は歴史的にネットワークに対する帯域幅制約及びクライアントのウェブブラウザに対する処理能力制約により制限されていた。
【発明の概要】
【０００６】
インタラクティブなフルアニメーション化された３次元キャラクタをクライアントのプレーヤにネットワークを介して配信する方法、システム及びコンピュータ読取可能な記憶媒体が提供される。論理ファイル及びブリーフプリレンダリングビデオクリップがサーバからダウンロードされる。ここでは「プレーヤ」というソフトウェアアプリケーションは、論理ファイルを用いてビデオクリップをシームレスにつなぎ合わせて生きているようなキャラクタを表示する。キャラクタは、論理ファイルにより指示されるユーザ操作、期間の経過及び準ランダム事象などの種々のトリガイベントに応答する。本方法によれば、ビデオクリップはプレーヤにより一度だけダウンロードされ、そのときその後のプレーヤでの使用のために局所的にキャッシュされるため、帯域幅が節約される。本方法によれば、ビデオクリップはプリレンダリングされ、平易なビデオフォーマットでプレーヤに配信されるため、プロセッササイクルも節約される。
【０００７】
本発明は、本発明の以下の詳細な説明及び添付の請求項の記載を図面とともに参照するとより容易に明らかになる他の利点及び特徴も有する。
【図面の簡単な説明】
【０００８】
【図１】一実施例によるコンピュータ環境の高レベルブロック図である。
【図２】サーバ及び／又はクライアント用としてのコンピュータの一例を示す高レベルブロック図である。
【図３】一実施例によるサーバのモジュールを示す説明図である。
【図４】本発明によるクライアントのモジュールを示す説明図である。
【図５】一実施例によるループクリップ及びトランジションクリップの説明図である。
【図６】一実施例による種々のトリガイベントに応答して発生し得るコア位置からの変化の説明図である。
【図７】本発明によるフルレンダリングされたキャラクタをネットワークを介して配信する方法を示すフローチャートである。
【図８】一実施例によるクライアント上のプレーヤの動作を示すフローチャートである。
【発明を実施するための形態】
【０００９】
図面は本発明のいくつかの実施例を説明のためのみに示している。当業者は、以下の記載から、ここに記載する構成及び方法の代替実施例がここに記載する本発明の原理から離れることなく使用可能であることを容易に認識されよう。
【００１０】
１．  システム概説
本発明の実施例は、インタラクティブな３次元のアニメーション化されたキャラクタをネットワークを介して配信するシステム、方法及びコンピュータ読取可能な記憶媒体を含む。図１は、本発明の一実施例によるコンピュータ環境１００の高レベルブロック図である。コンピュータ環境１００は、ネットワーク１１０に接続されたサーバ１０４及び一以上のクライアント１０６を含む。各クライアント１０６はプレーヤ１０８及びブラウザ１０７を含む。
【００１１】
サーバ１０４は、多数のキャラクタを記述するデータを格納し、該データは様々な位置における各キャラクタの動作のアニメーション化されたシーケンスのブリーフ（簡易）ビデオファイルを含む。サーバ１０４は、各キャラクタの状態、例えば空腹状態、怒っている状態、眠い状態、遊んでいる状態なども格納する。サーバ１０４は、ネットワーク１１０を介してプレーヤ１０８に、ビデオファイル、キャラクタの状態及び論理ファイルを配信し、論理ファイルはプレーヤ１０８にビデオファイル及びトリガイベントに対する応答を再生するように順に命令するものである。サーバ１０４は、ネットワーク１１０を介してプレーヤ１０８から情報を随意に受信して、アニメーション化されたキャラクタとのユーザインタラクションからのインタラクティビティイベントデータの測定及び収集を許可することができる。アニメーション化されたキャラクタとのユーザのインタラクションは図６と関連して後に記載される。
【００１２】
クライアント１０６は任意のタイプのクライアント装置、例えばパーソナルコンピュータ、携帯情報端末（ＰＤＡ）又は携帯電話などとすることができる。クライアントは、インターネットのようなネットワーク１１０を介してリモートデータ及びファイルの閲覧を可能にするウェブブラウザ、例えばインターネットエクスプローラ（INTERNET EXPLORER）、ファイアフォックス（FIREFOX）、サファリ（SAFARI）、オペラ（OPERA）又は同様のソフトウェアツールなどを含む。クライアントはビデオクリップを再生できるプレーヤ１０８も含む。一実施例では、プレーヤ１０８は、フラッシュ（FLASH）、シルバーライト（SILVERLIGHT）又は同様のマルチメディア配信機構などのウェブブラウザベースのプラットフォーム上で動作するソフトウェアアプリケーションである。一実施例では、クライアント１０６はプレーヤ１０８をショックウェーブフラッシュファイル（ＳＷＦ）としてダウンロードする。ＳＷＦはアドブフレックス（Adobe Flex）又はアドブフラッシュ（Adobe Flash）を用いてプログラムすることができ、例えばアクションスクリプト（Action Script）のようなコードで書き込むことができる。
【００１３】
ネットワーク１１０は、サーバ１０４とクライアント１０６との間の通信通路を表す。一実施例では、ネットワーク１１０はインターネットである。ネットワーク１１０は、必ずしもインターネットの一部でない専用プライベート通信リンクを使用することもできる。一実施例では、ネットワーク１１０は標準の通信記述及び／又はプロトコルを使用する。従って、ネットワーク１１０は、イーサネット（登録商標）、ワイファイ (802.11)、統合サービスディジタルネットワーク（ISDN）、ディジタル加入者線（DSL）、非同期転送モード（ATM）などの技術を用いるリンクを含むことができる。同様に、ネットワーク１１０上で使用されるネットワークプロトコルは、マルチプロトコルラベルスイッチング（MPLS）、トランスミッションコントロールプロトコル／インターネットプロトコル（TCP/IP）、ハイパーテキストトランスポートプロトコル（HTTP）、簡易メール転送プロトコル（SMTP）、ファイル転送プロトコル（FTP）などを含むことができる。ネットワーク１１０を介して交換されたデータは、ハイパーテキストマークアップ言語（HTML）及び拡張可能マークアップ言語(XML)を含む技術及び／又はフォーマットを用いて表現することができる。更に、すべての又は一部のリンクは、セキュアソケットレイヤ（SSL）、セキュアHTTP及び／又はバーチャルプライベートネットワーク（VPN）などの慣例の暗号化技術を用いて暗号化することができる。別の実施例では、エンティティは、上述したものに代えて又は加えて、カスタム及び／又は専用データ通信技術を使用することができる。
【００１４】
図２はサーバ１０４及び／又はクライアント１０６用としてのコンピュータ２００の一例を示す高レベルブロック図である。チップセット２０４に結合された少なくとも一つのプロセッサ２０２が示されている。チップセット２０４はメモリコントローラハブ２２０及び入力／出力（Ｉ／Ｏ）コントローラハブ２２２を含む。メモリ２０６及びグラフィックアダプタ２１２がメモリコントローラハブ２２０に結合され、ディスプレイ装置２１８がグラフィックアダプタ２１２に結合される。記憶装置２０８、キーボード２１０、ポインタ装置２１４及びネットワークアダプタ２１６がＩ／Ｏコントローラハブ２２２に結合される。コンピュータ２００の他の実施例は異なるアーキテクチャを有する。例えば、いくつかの実施例ではメモリ２０６はプロセッサ２０２に直接結合される。
【００１５】
記憶装置２０８は、ハードドライブ、コンパクトディスクリードオンリメモリ（ＣＤ−ＲＯＭ）、ＤＶＤ又は固体メモリ装置のようなコンピュータ読取可能な記憶媒体である。メモリ２０６はプロセッサ２０２で使用される命令及びデータを保持する。ポインタ装置２１４は、マウス、トラックボール又は他のタイプのポインタ装置であり、キーボード２１０と共同してデータをコンピュータシステム２００に入力するために使用される。グラフィックアダプタ２１２は画像及び他の情報をディスプレイ装置２１８に表示する。ネットワークアダプタはコンピュータシステム２００をネットワーク１１０に結合する。コンピュータ２００のいくつかの実施例は図２に示すものと異なる及び／又は以外のコンポーネントを有する。
【００１６】
コンピュータ２００は、ここに記載する機能を提供するためのコンピュータプログラムモジュールを実行するように構成される。ここで使用する語「モジュール」は指定の機能を提供するために使用されるコンピュータプログラム命令及び他のロジックをいう。従って、モジュールはハードウェア、ファームウェア及び／又はソフトウェアで実現できる。一実施例では、実行可能なコンピュータプログラム命令からなるプログラムモジュールは記憶装置２０８に格納され、メモリ２０６にロードされ、プロセッサ２０２で実行される。
【００１７】
図１のエンティティにより使用されるコンピュータ２００のタイプはエンティティにより使用される実施例及び処理能力に依存して変えることができる。例えば、携帯電話であるクライアント１０６は、典型的には限定処理能力、小さなディスプレイ２１８を持つが、ポインタ装置２１４を持たないかもしれない。これに対し、サーバ１０４はここに記載する機能を提供するために一緒に働く複数のブレードサーバを備えることができる。
【００１８】
図３は本発明の一実施例によるサーバ１０４のモジュールの説明図である。サーバ１０４は、データベース３３０、クライアントインタラクションモジュール３１０、論理ファイル生成モーション３２０及びキャラクタ訓練モジュール３４０を含む。
【００１９】
デバイスベース３３０はアニメーション化されたキャラクタのプリレンダリングされたビデオクリップ及び各キャラクタのレコードを格納する。一つの実施例では、各キャラクタは、誕生日などの種々の個体特性、種々の物理的特性（例えば品種、サイズ、性別、外観など）、性格及び状態（空腹、怒ってる、眠そう、遊んでるなど）を有し、これらの特性はすべてキャラクタごとにデータベースレコードに格納される。データベース３３０はユーザ活動ログ及びキャラクタとのユーザインタラクションに関する他の情報も格納する。
【００２０】
クライアントインタラクションモジュール３１０は、アニメーション化されたキャラクタ及びビデオクリップに対するクライアント１０６からのリクエストに対して適切なファイルを供給することによって応答する。クライアントインタラクションモジュール３１０は、クライアント１０６からインタラクティビティ報告も受け取り、それらをキャラクタ訓練モジュール３４０に渡す。
【００２１】
論理ファイル生成モジュール３２０は、クライアント１０６上のプレーヤ１０８からあるキャラクタに対するリクエストを受信するとき駆動される。一実施例では、このリクエストは一意の識別子を含み、この一意の識別子を論理ファイル生成モジュール３２０が使用して、この一意の識別子に対応するデータベース３３０内の情報を読み出し、当該キャラクタとその状態を識別する。論理ファイル生成モジュール３２０は、プレーヤ１０８に所定の状態の当該キャラクタに対する適切なビデオクリップをダウンロードさせて再生させる論理ファイルを構成する。例えば、平均的に大きいロットワイヤー犬は、一般に攻撃的にうなり、ほえるビデオクリップを再生するようにプログラムされるが、あまり動かないバセット犬は眠っているビデオクリップを再生するようにプログラムされるかもしれない。一実施例では、論理ファイルは拡張可能マークアップ言語（ＸＭＬ）で通信される。
【００２２】
キャラクタ訓練モジュール３４０はユーザ活動ログを更新し、データベース３３０に格納されているキャラクタ状態を維持する。キャラクタ訓練モーション３４０はインタラクティビティ報告を、それらがプレーヤ１０８からクライアントインタラクションモジュール３１０を経て受信されるとき受信する。一つの実施例では、キャラクタ訓練モジュール３４０はインタラクティビティ報告を用いて、データベース３３０内のキャラクタ状態、性格及びケアスケジュールを更新する。
【００２３】
図４は本発明の一実施例によるクライアント１０６のモジュールの説明図である。ブラウザ１０７及びプレーヤ１０８については上で概説した。プレーヤ１０８は、キャッシュモジュール４１０、サーバインタラクションモジュール４２０、ユーザインタラクションモジュール４３０、ディスプレイモジュール４４０及び論理ファイル４５５を用いてキャラクタを制御する制御モジュール４５０も含む。
【００２４】
キャッシュモジュール４１０はサーバ１０４から受信されるアニメーション化されたキャラクタのビデオクリップを格納する。ビデオクリップが必要とされるとき、それがクライアント１０６のローカルメモリ内で入手可能である場合、キャッシュモジュール４１０がそれを供給する。ビデオクリップがローカルキャッシュから入手できない場合には、サーバインタラクションモジュール４２０がサーバ１０４からビデオクリップをフェッチする。いくつかの実施例では、サーバインタラクションモジュール４２０は、上述したように、ユーザ活動報告もキャラクタ訓練モーション３４０のためにサーバ１０４に送る。
【００２５】
ユーザインタラクションモジュール４３０は訓練及び状態管理のためのユーザインタラクションをサポートする。ユーザインタラクションモジュール４３０はユーザによるキャラクタの動作の指示を可能にし、この指示は典型的にはキーボード入力、コンピュータマウス入力、リモコン入力、音声入力又はタッチスクリーン機能で達成される。キャラクタが応答するユーザインタラクションの例は図６を参照して後に記載される。
【００２６】
ディスプレイモジュール４４０はビデオクリップをモニタ又は他のディスプレイ２１８に表示させる。ディスプレイモジュールは表示用のビデオクリップをキャッシュモジュール４１０から受信する。
【００２７】
制御モジュール４５０はサーバ１０４から受信される論理ファイル４５５を用い、ユーザのためにどのビデオクリップを表示すべきか及び生きている応答するキャラクタをどの順序でシミュレートするかを決定する。論理ファイル４５５は、ビデオクリップの再生リスト及びビデオクリップの再生リストをトリガイベントに応答して変更するロジックを指定し、この点については後に詳細に説明する。制御モジュール４５０は、キャラクタを途切れることなく表示するために、ビデオクリップの再生終了を検出し、直ちに再生リストの次のビデオクリップの再生を開始させることができる。
【００２８】
２．プリレンダリングされたビデオクリップ
ネットワークを介するインタラクティブな３次元アニメーション化されたキャラクタの配信は、ビデオクリップをシームレスにつなぎ合わせて生きているようなキャラクタをシミュレートするためにプレーヤ１０８により使用される論理ファイル４５５と一緒にサーバ１０４からダウンロードされるプリレンダリングされたブリーフビデオクリップの配信により達成される。これらのプリレンダリングされたビデオクリップは図５−６を参照して後に記載する。
【００２９】
図５は、本発明の一実施例によるループクリップ及び遷移クリップを含むビデオクリップ例の説明図である。ビデオクリップは３Ｄモデリング及びアニメーションソフトウェアツール、例えば当業者に知られているＭＡＹＡ，ＭＡＸ３Ｄ，ＢＬＥＮＤＥＲや任意の他の類似のソフトウェアツールを用いて３Ｄアーチストによって生成される。ビデオクリップはビデオデータを含み、オーディオデータも随意に含むことができる。ビデオデータは様々な動作を行うアニメーション化された３次元のキャラクタを含むものである。一実施例では、キャラクタをできるだけ生きているようにするために、呼吸している、立っている、座っている、腹ばい、寝ている、歩いている、遊んでいる、食べている、飲んでいる及びその他の様々な動きをしている約２００のアニメーション化されたキャラクタのビデオクリップが使用される。他の実施例では、もっと多数の又は少数のビデオクリップが使用され得る。
【００３０】
ループクリップの生成においては、アーチストは、キャラクタは同じ位置から動き始め同じ位置で終わるようにする。ループクリップがオーディオデータを含む場合には、アーチストは、音声はループの終わりからループの始めへときれいに遷移するようにする。従って、ループクリップは滑らかに無限に繰り返し連続的に再生することができる。各ループクリップはキャラクタの３次元ブリーフアニメーションを含む。各ブリーフループクリップに対するプリレンダリング処理は典型的には数分間のワークステーション処理能力を要するが、この処理は完成ループを生成するために１度だけ実行すればよい。典型的なループクリップは、立っている状態で一度呼吸するキャラクタの０．５秒間のアニメーションである。このループクリップは、巡回させると滑らかに繰り返すように、同じ位置で始まり終わる一呼吸サイクル中のキャラクタの胸の動き及びしっぽ振りを示すことができる。キャラクタの最も共通の一組の姿勢を「コア位置」として設定する。一実施例では、コア位置は、立っている位置５０１、座っている位置５０２、腹ばい位置５０３及び寝ている位置５０４である。他の実施例では、もっと少ない又は多いコア位置を設定でき、図５に示す例とは異なるものとすることができる。コア位置は、キャラクタがより生きているように見えるように様々なキャラクタの位置に滑らかにつながることができる出発点となるキャラクタ姿勢を表す。ループクリップの変形は同様の立ち姿勢ループであるが、目のまばたきを追加したものとすることができ、このループは典型的には１０ループごとに準ランダム的に含めてキャラクタが時々まばたきする錯覚を与えることができる。
【００３１】
遷移クリップの生成においては、アーチストは、キャラクタはコア位置の一つから動き始め、別のコア位置で終わるようにする。従って、キャラクタは立っている位置５０１から座っている位置５０２へ又は２つの他のコア位置５０１−５０４の間で滑らかに移ることができる。いくつかの実施例では、コア位置からコア位置への自然な進行が存在する。例えば、キャラクタは立っている位置５０１から寝ている位置５０４へ遷移するには、キャラクタは座っている位置５０２及び腹ばい位置５０３を通過する。立っているコア位置のキャラクタのようなループクリップは繰り返し再生できるが、遷移クリップは２つの位置の間で動かして１度再生できるだけである。
【００３２】
図５は、２つのコア位置５０１，５０３の２つのバリエーション５１０，５３０も示す。具体的には、フレーム５１０は本例では小形犬であるキャラクタのクローズアップ位置を示す。フレーム５３０はキャラクタの腹を上に向けた（あお向け）位置を示す。フレーム５１１，５１２，５１３は立っている位置５０１からクローズアップ位置５１０への遷移クリップのアニメーションフレームを示す。フレーム５３１，５３２，５３３は腹ばい位置５０３からあお向け位置５３０への遷移クリップのアニメーションフレームを示す。クローズアップ位置５１０及びあお向け位置５３０からの遷移はこれらの位置に至る遷移とは異なる遷移とすることができるが、簡単のためにそれらは図５に示されていない。
【００３３】
ビデオクリップが生成されたら、それらを標準ファイルフォーマット、例えばクイックタイムムービーフォーマットにレンダリングする。次に、クイックタイムを用いてこのファイルをその最終フォーマット、例えばフラッシュビデオファイル（ＦＬＶ）又はショックウェーブフラッシュファイル（ＳＷＦ）のいずれかに変換する。これらのＦＬＶ又はＳＷＦファイルはビデオクリップの最終フォームであり、サーバ１０４のデータベース３３０に格納される。
【００３４】
図６は、本発明の一実施例における、様々なトリガイベントに応答して発生し得るコア位置６０１からのバリエーションの説明図である。フレーム６０２，６０３,６０４及び６０５の各々は様々なトリガイベントに応答するキャラクタ動作のブリーフビデオクリップからのフレームをそれぞれ示す。
【００３５】
フレーム６０２は立っているコア位置６０１からの準ランダムな変形により生じる耳かきフレームである。論理ファイル４５５に含まれるロジックは、準ランダム耳かきループ６０２を実行する頻度を、立っているコア位置６０１からの他の重み付けされたバリエーションと一緒に設定することができる。
【００３６】
フレーム６０５は、ロジック内で追跡される期間終了により生じる座る動作を示す。論理ファイル４５５に含まれるロジックは、キャラクタがユーザ命令なしでどのくらい長く立ったままでいるかを指定することができる。時間しきい値に到達したら、立っているコア位置から座っているコア位置への遷移クリップが再生される。
【００３７】
フレーム６０３及び６０４はユーザによりトリガされるキャラクタの動作を示す。フレーム６０３は背中かきクリップを示し、例えばユーザがポインタ装置２１４を用いてカーソルを猫の背中の上にドラッグすることによってトリガされる。フレーム６０４はねずみハントクリップを示し、ユーザがメニュー６４０内のねずみのアイコンをクリックすることによって開始される。いくつかの実施例では、キャラクタに餌をやったりキャラクタと遊んだりするなどの動作を開始するために、様々なユーザインタフェースメニュー項目６４０がユーザに使用可能である。これらのメニュー項目のどれかが選択されると、プレーヤ１０８がリクエストされた動作を実行するキャラクタの適切なビデオクリップをダウンロードし、再生する。プレーヤ１０８はキーボード２１０、ポインタ装置２１４又は音声／オーディオ、リモートコントローラ、タッチスクリーンなどの他の入力装置からのユーザ入力に応答する。
【００３８】
３．インタラクティブな３Ｄアニメーション化されたキャラクタのネットワーク配信
インタラクティブな３Ｄアニメーション化されたキャラクタをネットワークを介して配信する方法を図７−８を参照して以下に説明する。
【００３９】
図７は、本発明の一実施例による、インタラクティブなフルレンダリングされた３次元キャラクタをネットワークを介して配信する方法７００を示すフローチャートである。ステップ７０１において、サーバ１０４のクライアントインタラクションモジュール３１０がクライアント１０６上のプレーヤ１０８のサーバインタラクションモジュール４２０からアニメーション化されたキャラクタに対するリクエストを受信する。このリクエストはプレーヤ識別子及び／又はアニメーション化されたキャラクタの識別子を含むことができる。よって、ユーザは、自身が前にインタラクトしたアニメーション化されたキャラクタをリクエストすることができる。キャラクタ識別子がリクエスト内に存在しない場合には、サーバ１０４の論理ファイル生成モジュール３２０が新しいアニメーション化キャラクタを生成し、それに新しいキャラクタ識別子を指定し、データベース３３０にそのレコードを格納することができる。
【００４０】
ステップ７０２において、アニメーション化されたキャラクタの状態が論理ファイル生成モジュール３２０により検査される。上述したように、キャラクタは、空腹、怒っている、寝ている、遊んでいる、病気、幸せそう又は時々刻々と準ランダムに又はユーザ活動に応答して変化する様々な他の一時的状態であるとすることができる。キャラクタの状態はサーバ１０４によってデータベース３３０に格納される。
【００４１】
ステップ７０３において、リクエストされたアニメーション化されたキャラクタのための論理ファイル４５５が論理ファイル生成モジュール３２０により生成される。論理ファイル４５５はキャラクタの状態を含み、更にビデオクリップの再生リスト及びユニバーサルリソース識別子を含み、該識別子はそこから各ビデオクリップを必要に応じダウンロードしプレーヤ１０８でのその後の使用のためにキャッシュすることができる場所を指定する。
【００４２】
ステップ７０４において、論理ファイルはクライアント１０６上のプレーヤ１０８に送られる。クライアント１０６上のプレーヤ１０８の動作は図６を参照して後に説明される。
【００４３】
ステップ７０５において、リクエスト時に、サーバ１０４のクライアントインタラクションモジュール３１０はプレーヤ１０８によりリクエストされたブリーフフルレンダリングビデオクリップをデータベース３３０から送る。プレーヤ１０８は、論理ファイルに従って必要とされるビデオクリップであってまだローカルメモリにキャッシュされていないビデオクリップをサーバ１０４からリクエストするだけである。
【００４４】
ステップ７０６において、サーバ１０４のクライアントインタラクションモジュール３１０はプレーヤ１０８からユーザ活動の通知を随意に受信することができる。この通知はインタラクティブイベントデータの測定及び収集を許可する。これは、ユーザの活動をサーバ１０４のキャラクタ訓練モジュール３４０で追跡することによりキャラクタをユーザにより訓練することも可能にする。それゆえ、ユーザ活動の通知がステップ７０６において受信される場合には、ステップ７０７において、それに応じてデータベース３３０内のユーザ活動ログをキャラクタ訓練モジュール３４０により更新することができる。例えば、ユーザがキャラクタの「給餌」を選択する場合、サーバ１０４のクライアントインタラクションモジュール３１０はプレーヤ１０８のサーバインタラクションモジュール４２０によってこの給餌命令のＨＴＴＰで通知される。クライアントインタラクションモジュール３１０はこの通知をキャラクタ訓練モジュール３４０に送り、データベース３３０内のキャラクタ状態はキャラクタ訓練モジュール３４０によって、キャラクタが再び空腹になる十分な時間が経過するまで、「空腹」から「空腹でない」へと変化される。
【００４５】
図８は、本発明の一実施例による、クライアント１０６上のプレーヤ１０８の動作方法８００を示すフローチャートである。方法８００はステップ８０１において開始し、プレーヤ１０８の制御モジュール４５０がサーバ１０４から受信された論理ファイル４５５にアクセスする。上述したように、論理ファイル４５５はアニメーション化されたキャラクタの状態を含み、更にビデオクリップの再生リスト及びその場所から各ビデオクリップを必要に応じダウンロードしプレーヤ１０８でのその後の使用のためにキャッシュすることができる場所を指定するユニバーサルリソース識別子を含む。
【００４６】
ステップ８０２において、論理ファイル４５５からキャラクタの状態がプレーヤ１０８の制御モジュール４５０により決定される。上述したように、キャラクタは空腹、怒っている、寝ている、遊んでいる、病気、幸せそう又は時々刻々と準ランダムに又はユーザ活動に応答して変化する様々な他の一時的状態であるとすることができる。
【００４７】
ステップ８０３において、プレーヤ１０８のサーバインタラクションモジュール４２０が論理ファイル４５５内の再生リストから、まだ局所的にキャッシュされてないビデオクリップをフェッチする。例えば、論理ファイル４５５に基づくキャラクタの状態が「空腹」であり、「空腹」状態に対応するビデオクリップがまだ局所的にキャッシュされていない場合には、適切なビデオクリップは、論理ファイル４５５からのこれらのビデオクリップに対するユニバーサルリソース識別子を用いて、サーバ１０４からダウンロードされる。方法８００によれば、ビデオクリップはプレーヤにより一度だけダウンロードされ、プレーヤ１０８でのその後の使用のために局所的にキャッシュされるため、帯域幅の節約が得られる。方法８００によれば、ビデオクリップはプリレンダリングされ、平易なビデオフォーマットでプレーヤ１０８に配信されるため、プロセッササイクルの節約が得られる。
【００４８】
ステップ８０４において、プレーヤ１０８は決定された状態に対応するローカルキャッシュからのビデオクリップを再生する。例えば、キャラクタが空腹であるとき、キャラクタが空の餌入れを持ち上げ床に落とすようなビデオクリップが再生される。
【００４９】
方法８００は、ステップ８０５においてプレーヤ１０８がトリガイベントを受信するまで、上述したように進行する。論理ファイル４５５は、再生されるビデオクリップの順序を変更することによってプレーヤ１０８をトリガイベントに応答させ、これはキャラクタが生きているような知覚を増進する。トリガイベントは準ランダム動作、期間の終了又は上述のごとき任意のユーザインタラクションの発生とすることができる。トリガイベントは、論理ファイル４５５に内蔵された命令に従ってキャラクタの状態の変化を生じさせることができる。例えば、ユーザがメニュー６４０を選択してキャラクタに餌を与える場合には、論理ファイル４５５は、妥当な時間の終了（別のトリガイベント）までキャラクタの状態は「空腹でない」に変化することを指示することができる。時間終了トリガイベントの後に、キャラクタは再び「空腹」状態になる。別の例として、トリガイベントは論理ファイル４５５により指定される準ランダム事象、例えばキャラクタの病気発生とすることができる。
【００５０】
このように、ステップ８０５でのトリガイベントの受信後に、キャラクタの状態は変化し得る。この場合、プレーヤ１０８はステップ８０２においてキャラクタが示す状態の更なる決定を行い、決定された状態に対してステップ８０３−８０５を上述したように進める。
【００５１】
方法８００は、ユーザ活動の通知をサーバ１０４に送るステップ８０６を随意に含むことができる。いくつかの実施例では、この通知はキャラクタとのユーザインタラクションの間中プレーヤ１０８のサーバインタラクションモジュール４２０から周期的に送られる。別の実施例では、この通知はキャラクタとのユーザインタラクションの終了時に送られる。この随意のステップは図７のフローチャートに示す方法のステップ７０６に対応する。このステップの実行時に、この通知はインタラクティビティイベントデータの測定及び収集を許可する。これはまた、ユーザの活動をデータベース３３０内のユーザ活動ログ内で時間とともに追跡することによりキャラクタをユーザにより訓練することを可能にする。これにより、ユーザが一つのインタラクティブセッションを越えて持続するキャラクタへの効果を感じれば、ユーザがキャラクタに対し感じる絆が更に高められることになる。
【００５２】
以上の記載は本発明の実施例の動作を説明するためであり、本発明の範囲を限定することを意図するものではない。以上の考察から、多くの変形が当業者に明らかであり、これらの変形も本発明の精神及び範囲に包含される。当業者は、また、本発明は他の形態に具体化できることが認識されよう。まず、種々のコンポーネントの特定の名前、用語の大文字表記、属性、データ構造又は任意の他のプログラミング又は構造的特徴は必須又は重要でなく、本発明を実現するメカニズム又はその特徴は異なる名前、フォーマット又はプロトコルを有するものとすることができる。更に、システムは上述したハードウェア及びソフトウェアの組み合わせで又はすべてをハードウェア素子で実現することができる。また、ここに記載する機能の種々のシステムコンポーネント間の特定の分割は単なる例示であり、必須ではなく、単一のシステムコンポーネントにより実行される機能を多数のコンポーネントにより実行することができ、多数のコンポーネントにより実行される機能を単一のコンポーネントにより実行することができる。
【００５３】
上記のいくつかの部分は本発明の方法の形態の特徴及び情報処理の象徴を提示している。これらの記載及び説明は、データ処理技術の当業者がそれらの作業の本質を他の当業者に最も効果的に伝えるために使用する手段である。機能的に又は論理的に記載されるこれらの処理は、コンピュータプログラムにより実施されるものと理解されたい。更に、時には、これらの処理の構成をモジュールとして又は機能名で記述することは便利であることも証明されている。
【００５４】
以上の考察から明らかなように、特に断らない限り、明細書を通して、「決定」などの語を使用する考察は、コンピュータシステムメモリ、レジスタ又は他の情報記憶、伝送又は表示装置内の物理的（電子的）量として表されたデータを操作し変換するコンピュータシステム又は同様の電子計算装置の動作及び処理に関するものと理解されたい。
【００５５】
本発明の所定の特徴はここに方法の形で記載される処理ステップ及び命令を含む。本発明の処理ステップ及び命令は、ソフトウェア、ファームウェア又はハードウェアで具体化することができ、ソフトウェアで具体化される場合、リアルタイムネットワークオペレーティングシステムで使用される種々のプラットフォームからダウンロードして存在させ、動作させることができる点に注意されたい。
【００５６】
本発明はここに記載する処理を実行する装置にも関する。この装置は所要の目的のために具体的に構成することができ、コンピュータがアクセスできるコンピュータ読み取り可能な媒体に記憶されたコンピュータプログラムにより選択的に駆動される又は再構成される汎用コンピュータを備えることができる。このようなコンピュータプログラムは、コンピュータ読み取り可能な記憶媒体に格納することができるが、フロッピー（登録商標）ディスク、光ディスク、ＣＤ−ＲＯＭ、磁気光学ディスクを含む任意のタイプのディスク、リードオンリーメモ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気又は光カード、特定用途向け集積回路（ＡＳＩＣ）、又はコンピュータシステムバスに結合される電気的命令を格納するのに適切な任意のタイプのメディアに限定されない。更に、本明細書でいうコンピュータは単一プロセッサ又は増大した計算能力のためのマルチプロセッサ設計を用いるアーキテクチャとすることができる。加えて、本発明は任意の特定のプログラミング言語について記載していない。本明細書に記載された本発明の教えは様々なプログラミング言語を用いて実施することができることを理解されたい。
【図１】
2011512582.tif 000002
【図２】
2011512582.tif 000003
【図３】
2011512582.tif 000004
【図４】
2011512582.tif 000005
【図５】
2011512582.tif 000006
【図６】
2011512582.tif 000007
【図７】
2011512582.tif 000008
【図８】
2011512582.tif 000009
【国際調査報告】
2011512582.tif 000010