(57)【要約】  アニメーションのフレームのレンダリングを行う方法が、アニメーションのフレームに関連付けされるシーン・ディスクリプタ・データを検索すること（２２０）を含み、その際、シーン・ディスクリプタ・データが少なくとも１つのオブジェクトを指定し、オブジェクトが当該オブジェクトの第１の表現に対する参照に関連付けされ（２３０）、かつオブジェクトの第１の表現が第１のレンダリング・オプションに関連付けされるものとし（２１０）、さらにこの方法は、第１のレンダリング・オプションまたは第２のレンダリング・オプションの選択を受け取ること（２４０）、その選択が第１のレンダリング・オプションの選択であるとき、オブジェクトの第１の表現をコンピュータ・メモリ内にロードすること（２５０）、選択が第１のレンダリング・オプションの選択であるとき、オブジェクトの第１の表現を使用してアニメーションのフレームのためにオブジェクトのレンダリングを行うことを含み、それにおいて選択が第２のレンダリング・オプションの選択であるときには、オブジェクトの第１の表現がコンピュータ・メモリ内にロードされない（２６０）。【選択図】図２Ａ
2007531928.tif 000002
【特許請求の範囲】
【請求項１】
アニメーションのフレームのレンダリングを行う方法であって：
前記アニメーションのフレームに関連付けされるシーン・ディスクリプタ・データを検索することであって、前記シーン・ディスクリプタ・データが少なくとも１つのオブジェクトを指定することであり、そのオブジェクトはオブジェクトの第１の表現に対する参照に関連付けられ、前記オブジェクトの第１の表現が第１のレンダリング・オプションに関連付けされる、前記検索することと；
前記第１のレンダリング・オプションまたは第２のレンダリング・オプションの選択を受け取ることと；
前記選択が前記第１のレンダリング・オプションの選択であるとき、前記オブジェクトの前記第１の表現をコンピュータ・メモリ内にロードすることと；
前記選択が前記第１のレンダリング・オプションの選択であるとき、前記オブジェクトの前記第１の表現を使用して前記アニメーションのフレームのために前記オブジェクトのレンダリングを行うことと；
を含み、前記選択が前記第２のレンダリング・オプションの選択であるとき、前記オブジェクトの前記第１の表現がコンピュータ・メモリ内にロードされない、アニメーションのフレームのレンダリングを行う方法。
【請求項２】
前記オブジェクトが、前記オブジェクトの前記第１の表現に対する参照と、前記オブジェクトの第２の表現に対する参照に関連付けされ；
前記オブジェクトの前記第２の表現が第２のレンダリング・オプションに関連付けされ；かつ、
前記オブジェクトの前記第２の表現が前記選択が前記第１のレンダリング・オプションの選択であるときコンピュータ・メモリ内にロードされない請求項１に記載の方法。
【請求項３】
前記第１のオブジェクト・データ・ファイル内にストアされる前記データが第１のプロパティを含み；かつ、
前記シーン・ディスクリプタ・データが前記第１のプロパティのためのデータを含む請求項１項〜第２項のいずれかに記載の方法。
【請求項４】
前記１つのオブジェクトが前記シーン内の幾何学的オブジェクトを含み；かつ、
前記第１のオブジェクト・データ・ファイル内にストアされる前記データが前記幾何学的オブジェクトの幾何学的記述を含む請求項１〜３のいずれかに記載の方法。
【請求項５】
前記１つのオブジェクトが前記シーン内のカメラ・オブジェクトを含み；かつ、
前記第１のオブジェクト・データ・ファイル内にストアされる前記データがカメラの視野、カメラの位置、カメラの向き、アスペクト比からなるグループから選択されたデータを含む請求項１〜４のいずれかに記載の方法。
【請求項６】
前記１つのオブジェクトが前記シーン内の照明オブジェクトを含み；かつ、
前記第１のオブジェクト・データ・ファイル内にストアされる前記データが照明源のタイプ、照明の色、照明源、照明の質、照明の形状からなるグループから選択されたデータを含む請求項１〜５のいずれかに記載の方法。
【請求項７】
さらに：
前記選択が前記第２のレンダリング・オプションの選択であるとき、前記オブジェクトの前記第２の表現が、コンピュータ・メモリ内にロードされ；かつ、
前記選択が前記第２のレンダリング・オプションの選択であるとき、前記オブジェクトの前記第２の表現を使用して前記アニメーションのフレームのために前記オブジェクトのレンダリングを行うこと；
を含む請求項２〜６のいずれかに記載の方法。
【請求項８】
前記シーン・ディスクリプタ・データが前記オブジェクトに関連付けされる第１のセットのプロパティも含み；
本方法が、さらに、前記アニメーションのフレームを含む１を超える数のアニメーションのフレームに関連付けされる追加のシーン・ディスクリプタ・データを検索することを含み、その追加のシーン・ディスクリプタ・データもまた、前記オブジェクトに関連付けされる第２のセットのプロパティを含み；かつ、
前記アニメーションのフレームのために前記オブジェクトのレンダリングを行うことが、前記選択が前記第１のレンダリング・オプションの選択であるとき、前記オブジェクトの前記第１の表現、前記第１のセットのプロパティ、前記第２のセットのプロパティに応じて前記アニメーションのフレームのために前記オブジェクトのレンダリングを行うことを含む請求項１〜７のいずれかに記載の方法。
【請求項９】
前記オブジェクトに関連付けされる前記第１のセットのプロパティが前記オブジェクトに関連付けされる第１のプロパティのための第１の値を指定し；
前記オブジェクトに関連付けされる前記第２のセットのプロパティが前記オブジェクトに関連付けされる前記第１のプロパティのための第２の値を指定し；かつ、
アニメーションのフレーム内において、前記オブジェクトに関連付けされる前記第１のプロパティのための前記第１の値を使用して前記オブジェクトのレンダリングが行われる請求項８に記載の方法。
【請求項１０】
アニメーションのフレームに関連付けされるシーン・ディスクリプタ・データ、オブジェクトの第１の表現、オブジェクトの第２の表現をストアするように構成されたディスク・メモリであって、前記シーン・ディスクリプタ・データがオブジェクトの前記第１の表現に対する参照、前記オブジェクトの前記第２の表現に対する参照、前記オブジェクトのプロパティのための値を含む前記メモリと；
プログラム・メモリと；
前記アニメーションのフレームに関連付けされる前記シーン・ディスクリプタ・データをプログラム・メモリ内に検索するように構成されたプロセッサであって、そのプロセッサが、前記第１のレンダリング・オプションまたは前記第２のレンダリング・オプションの選択を受け取るように構成され、かつ、前記選択が前記第１のレンダリング・オプションの選択であるときプログラム・メモリ内に前記オブジェクトの前記第１の表現をロードするように構成され、さらに前記選択が前記第１のレンダリング・オプションの選択であるとき前記オブジェクトの前記第１の表現に応じて前記アニメーションのフレームのために前記オブジェクトのレンダリングを行うように構成されたプロセッサと；
を含むコンピュータ・システムであって、前記選択が前記第１のレンダリング・オプションの選択であるとき前記オブジェクトの前記第２の表現がプログラム・メモリ内にロードされない、前記コンピュータ・システム。
【請求項１１】
前記プロセッサがさらに、前記選択が前記第２のレンダリング・オプションの選択であるときコンピュータ・メモリ内に前記オブジェクトの前記第２の表現をロードするように構成され；
前記プロセッサがさらに、前記選択が前記第２のレンダリング・オプションの選択であるとき前記オブジェクトの前記第２の表現を使用して前記アニメーションのフレームのために前記オブジェクトのレンダリングを行うように構成され；かつ、
前記選択が前記第２のレンダリング・オプションの選択であるとき前記オブジェクトの前記第１の表現がプログラム・メモリ内にロードされない請求項１０に記載のコンピュータ・システム。
【請求項１２】
前記オブジェクトが幾何学的オブジェクトを含み；かつ、
前記オブジェクトの前記第１の表現内にストアされる前記データが前記オブジェクトの３次元モデルを含む請求項１０又は１１に記載のコンピュータ・システム。
【請求項１３】
前記オブジェクトがカメラ・オブジェクトを含み；かつ、
前記カメラ・オブジェクトの前記第１の表現が、カメラの視野、カメラの位置、カメラの向き、アスペクト比からなるグループから選択されたプロパティを含む請求項１０項〜第１２項のいずれかに記載のコンピュータ・システム。
【請求項１４】
前記オブジェクトが照明オブジェクトを含み；かつ、
前記照明オブジェクトの前記第１の表現が、照明源のタイプ、照明の色、照明源、照明の質、照明の形状からなるグループから選択されたプロパティを含む請求項１０〜１３のいずれかに記載のコンピュータ・システム。
【請求項１５】
前記シーン・ディスクリプタ・データが前記オブジェクトに関連付けされる第１のセットのプロパティのための値を含み；かつ、
前記選択が前記第１のレンダリング・オプションの選択であるとき、前記オブジェクトの前記第１の表現と前記第１のセットのプロパティのための前記値とに応じて、前記アニメーションのフレームのために前記オブジェクトのレンダリングを行うように、前記プロセッサが構成される請求項１０〜１４のいずれかに記載のコンピュータ・システム。
【請求項１６】
前記ディスク・メモリがさらに、前記アニメーションのフレームに関連付けされる追加のシーン・ディスクリプタ・データであって、前記オブジェクトに関連付けされる第２のセットのプロパティのための値を指定する追加のシーン・ディスクリプタ・データをストアするように構成され；
前記プロセッサがさらに、前記選択が前記第１のレンダリング・オプションの選択であるとき、前記アニメーションのフレームに関連付けされる前記追加のシーン・ディスクリプタ・データをプログラム・メモリ内に検索するように構成され、かつ前記オブジェクトの前記第１の表現、前記第１のセットのプロパティのための前記値、前記第２のセットのプロパティのための前記値、に応じて前記アニメーションのフレームのために前記オブジェクトのレンダリングを行うように構成される請求項１５に記載のコンピュータ・システム。
【請求項１７】
プロパティが、前記第１のセットのプロパティのための前記値の中で指定される第１の値と、前記第２のセットのプロパティのための前記値の中で指定される第２の値を有し；かつ、
前記プロセッサが前記プロパティのための前記第１の値に応じて前記アニメーションのフレームのために前記オブジェクトのレンダリングを行うように構成される請求項１５または１６のいずれかに記載のコンピュータ・システム。
【請求項１８】
プロセッサを含むコンピュータ・システムのためのコンピュータ・プログラム・プロダクトであって：
アニメーションのフレームに関連付けされるシーン・ディスクリプタ・データをプログラム・メモリ内に検索するように、前記プロセッサに指示するコードであって、前記シーン・ディスクリプタ・データが少なくとも１つのオブジェクトを指定し、前記オブジェクトが前記オブジェクトの第１の表現に対する参照に関連付けされ、前記オブジェクトの前記第１の表現が第１のレンダリング・オプションに関連付けされる、前記コードと；
前記第１のレンダリング・オプションまたは第２のレンダリング・オプションの選択を決定するように、前記プロセッサに指示するコードと；
前記選択が前記第１のレンダリング・オプションの選択であるとき、前記オブジェクトの前記第１の表現をプログラム・メモリ内にロードするように、前記プロセッサに指示するコードと；
前記選択が前記第１のレンダリング・オプションの選択であるとき、前記オブジェクトの前記第１の表現に応じて前記アニメーションのフレームのために前記オブジェクトのレンダリングを行うように、前記プロセッサに指示するコードと；
を含み、前記選択が前記第２のレンダリング・オプションの選択であるとき、前記オブジェクトの前記第１の表現がプログラム・メモリ内にロードされることがなく；
前記コードが有形メディア内に存在する、前記コンピュータ・プログラム・プロダクト。
【請求項１９】
前記オブジェクトが前記オブジェクトの前記第１の表現と前記オブジェクトの第２の表現に関連付けされ；
前記オブジェクトの前記第２の表現が第２のレンダリング・オプションに関連付けされ；かつ、
前記オブジェクトの前記第２の表現が前記選択が前記第１のレンダリング・オプションの選択であるときプログラム・メモリ内にロードされない請求項１８に記載のコンピュータ・プログラム・プロダクト。
【請求項２０】
さらに：
前記選択が前記第２のレンダリング・オプションの選択であるとき、前記オブジェクトの前記第２の表現をコンピュータ・メモリ内にロードするように、前記プロセッサに指示するコードと；
前記選択が前記第２のレンダリング・オプションの選択であるとき、前記オブジェクトの前記第２の表現に応じて前記アニメーションのフレームのために前記オブジェクトのレンダリングを行うように、前記プロセッサに指示するコードと；
を含み、前記選択が前記第２のレンダリング・オプションの選択であるとき、前記オブジェクトの前記第１の表現がプログラム・メモリ内にロードされない請求項１８または１９のいずれかに記載のコンピュータ・プログラム・プロダクト。
【請求項２１】
前記オブジェクトが幾何学的オブジェクトを含み；
前記オブジェクトの前記第１の表現が前記オブジェクトの３次元モデルを含む請求項１８〜２０のいずれかに記載のコンピュータ・プログラム・プロダクト。
【請求項２２】
前記オブジェクトがカメラ・オブジェクトを含み；かつ、
前記カメラ・オブジェクトの前記第１の表現が、カメラの視野、カメラの位置、カメラの向き、アスペクト比からなるグループから選択されたプロパティを含む請求項１８項〜第２１項のいずれかに記載のコンピュータ・プログラム・プロダクト。
【請求項２３】
前記オブジェクトが照明オブジェクトを含み；
前記照明オブジェクトの前記第１の表現が、照明源のタイプ、照明の色、照明源、照明の質、照明の形状からなるグループから選択されたプロパティを含む請求項１８項〜第２２項のいずれかに記載のコンピュータ・プログラム・プロダクト。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ・アニメーションに関する。より詳細に述べれば、本発明は、複雑なシーンの処理におけるメモリ効率と時間効率のためのテクニックと装置に関する。
【背景技術】
【０００２】
ここ数年にわたり、映画製作者は、しばしば空想上の生き物、現実離れした場所、幻想的な物を巻き込む物語りの製作を試みている。それを行う上で映画製作者は、しばしばアニメーション・テクニックを頼り、空想に『命』を与えている。伝統的にアニメーションにおける主要なアプローチには、ドローイング‐ベースのアニメーション・テクニックとストップ・モーション・アニメーション・テクニックの２つがある。
【０００３】
ドローイング‐ベースのアニメーション・テクニックは、２０世紀にウォルト・ディズニー等の映画製作者によって磨かれ、『白雪姫』や『ファンタジア』（１９４０年）等の映画に使用された。このアニメーション・テクニックでは、通常、アーティストたちが透明メディアまたはセル上にアニメーション・イメージを手書き（ペイント）することが必要であった。ペイントの後は、映画の中の１ないしは複数のフレームとして各セルがフィルム上に取り込まれ、すなわち記録される。
【０００４】
ストップ・モーション‐ベースのアニメーション・テクニックは、通常、ミニチュア・セットの組み立て、プロップ、キャラクタを必要とする。映画製作者は、セットを組み立て、プロップを追加し、ミニチュア・キャラクタにポーズを取らせる。アニメータは、すべての配列に満足すると、その特定の配列を用いてフィルムの１ないしは複数のフレームを撮影する。ストップ・モーション・アニメーション・テクニックは、ウィリス・オブライアンとうの映画製作者によって、『キングコング』（１９３３年）等の映画のために開発された。その後、これらのテクニックは、レイ・ハリーハウゼン等のアニメータによって『猿人ジョー・ヤング』（１９４８年）や『タイタンの戦い』（１９８１年）を含む映画のために磨き上げられた。
【０００５】
２０世紀後半にコンピュータの可用性が行き渡るとアニメータは、アニメーション・プロセスにおける補助をコンピュータに頼るようになった。これには、コンピュータを使用し、たとえばイメージのペイントによって、あるいはイメージ間イメージング（『トゥイーニング）』等によってドローイング‐ベースのアニメーションを容易にすることが含まれる。またこれには、コンピュータを使用してストップ・モーション・アニメーション・テクニックを増大させることも含まれる。たとえば、コンピュータ・メモリ内の仮想モデルによって物理モデルを表現し、操作することができる。
【０００６】
コンピュータ援用アニメーション（computer aided animation：ＣＡＡ）業界におけるパイオニア企業の１つはピクサー（Ｐｉｘａｒ）であった。ピクサーは、ＣＡＡ用に特別に設計されたコンピューティング・プラットフォームや、現在はＲｅｎｄｅｒＭａｎ（登録商標）として知られるアニメーション・ソフトウエアをともに開発した。ＲｅｎｄｅｒＭａｎ（登録商標）は、アニメーション業界に特に良好に受け入れられ、２つのアカデミー賞（Ａｃａｄｅｍｙ  Ａｗａｒｄｓ（登録商標））を受賞している。それらの賞の一方は、本件特許出願の発明者が受賞し、他方は科学技術功労賞（Ｓｃｉｅｎｔｉｆｉｃ  Ａｎｄ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ａｃｈｉｅｖｅｍｅｎｔ  Ａｗａｒｄ（登録商標）（１９９２年）を受賞している。
【０００７】
ＲｅｎｄｅｒＭａｎ（登録商標）ソフトウエアは、オブジェクトのグラフィック仕様を変換し、１ないしは複数のイメージへそれらを変換するために使用される。このテクニックは、この業界でレンダリングとして知られる。レンダリング・プロセスの１つの特定の部分が、レンダリングされることになるオブジェクトのグラフィック仕様である。オブジェクトは、イメージ内の幾何学オブジェクト、照明オブジェクト、カメラ・オブジェクト等と呼ぶこともある。このプロセスにおいては、オブジェクトは、あらかじめ定義され、かつあらかじめ指定されたり、手続きテクニックによって定義されたり、これらのテクニックの組み合わせによって定義されることがある。
【０００８】
通常、レンダリングされることになるシーンは、１ないしは複数のアニメータによって指定される（アッセンブルされる）。これらのシーンには、オブジェクト、カメラ・アングル、照明源等々の記述が含まれる。シーンが定義されると、シーン・データがストアされ、かつ／またはシーンがレンダリングされる。その後アニメータは、結果として得られるイメージを見ることができる。レンダリング後のイメージにアニメータが満足しないときには、アニメータがシーン・データの再指定を行い、処理が繰り返される。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上記のテクニックの欠点としては、一般的なシーンには非常に多くのオブジェクトがあり、通常はそれぞれが、アニメータによって設定できる、あるいは設定されなければならない非常に多くのパラメータを有することが挙げられる。したがって、完全なシーンを記述するシーン・データ・ファイル（シーン・ディスクリプタ・ファイルとしても知られる）が一般に非常に大きく（ギガバイト）なる。典型的なシーン・ディスクリプタ・ファイルのサイズが通常大きくなるので、アニメータのコンピュータは充分な量のメモリを有していなければならない。別の欠点としては、シーン・ディスクリプタ・ファイルが一般に大きくなることから、通常、アニメータは、メモリからディスクリプタ・ファイルが再試行される間、待っていなければならない。それに加えて、シーン・ディスクリプタ・ファイルが一般に大きいので、通常、アニメータは、シーンがレンダリングされる間、待っていなければならない。
【００１０】
これらに照らして考えると、今必要とされているものは、アニメータが上記の欠点を伴うことなくシーンを指定する改善されたテクニックである。
【課題を解決するための手段】
【００１１】
本発明は、コンピュータ・アニメーションに関する。より詳細に述べれば、本発明は、コンピュータ・アニメーション用のシーン・データを指定するための改善された方法に関する。本発明の発明者は、異なるアニメータが異なる目的のためにシーンのイメージのレンダリングを行うことを認識した。それに加えて発明者は、シーンのレンダリングを行うとき、それぞれのアニメータにとってシーンのすべての要素が重要となるわけではないことを認識した。一例を挙げれば、あるアニメータがシーン内の照明の位置または質、たとえばオブジェクトの色、テクスチャ、シェーディング等に関心を持っているとき、そのシーン内においてオブジェクトの詳細がどのように表現されるかということについて、そのアニメータが必ずしも関心を持たないこともあり得る。別の例を挙げれば、アニメータは、シーン内のオブジェクトのアニメーションに関心を有しているが、シーン内のオブジェクトの照明またはシェーディングに必ずしも関心を有していないこともある。さらに別の例を挙げれば、アニメータは、シーン内のオブジェクトのレイアウトに関心を有しているが、そのシーン内において詳細なオブジェクトがどのように現れるかについて必ずしも関心を持っていないことがある。さらにまた別の例を挙げれば、アニメータは、シーン内のセットのドレッシングに関心を有するが、必ずしもシーン内のオブジェクトのアニメーションに関心を持っていないことがある。
【００１２】
これらのことを考慮し、本発明の発明者は、シーン・ディスクリプタ・ファイルを組織化するための方法を開発した。より詳細に述べれば、発明者は、オブジェクトの１を超える数のモデル、またはシーン・ディスクリプタ・ファイル内のパラメータを指定する方法を開発した。この出願に記述されている方法は、アニメータが、アニメーション目的に適したオブジェクトのためのモデルを動的に選択することを可能にする。一実施態様においては、選択されるモデルまたは選択されるパラメータのセットが、１ないしは複数の別々のファイルに対するポインタを介して参照される。適切なモデルだけを選択することによって、コンピュータ・メモリ内にロードされるシーンの量が低減され、レンダリングのために必要な時間もまた短縮することができる。
【００１３】
別の実施態様においては、オブジェクトのモデルのためのパラメータを、全フィーチャーについてグローバルに１度で指定することができるが、フィーチャー内の特定のシーケンスについてパラメータがオーバライドされる。それに加えて、以下に述べるとおり、フィーチャー内の特定のショットについて、および／または特定のカメラ・モードについてパラメータがオーバライドされることもある。
【００１４】
いくつかの実施態様においては、選択されるモデルまたは選択されるパラメータのセットを、サブ‐モデルまたはパラメータのサブセットで構成することができる。このタイプの再帰的分解は、後述するとおり、シーン内に使用される冗長データの量を大きく低減するので非常に有利である。別の実施態様においては、シーン・ディスクリプタ・ファイルを、モデル・データにアクセスするためのデータベース・マネジメント・システムおよび／またはソフトウエア・マネジメント・システムとともに機能するように統合することができる。
【００１５】
本発明の１つの側面によれば、アニメーションのフレームのレンダリングを行うための方法が述べられている。このテクニックは、アニメーションのフレームに関連付けされるシーン・ディスクリプタ・データを検索することを含む。その際、シーン・ディスクリプタ・データは少なくとも１つのオブジェクトの第１の仕様を含む。そのオブジェクトの第１の仕様は、第１のレンダリング・オプションに関連付けされ、第１のレンダリング・オプションまたは第２のレンダリング・オプションの選択を受け取り、さらにその選択が第１のレンダリング・オプションの選択であるとき、上記１つのオブジェクトの第１の仕様に応じて上記１つのオブジェクトの第１の表現についてデータベースに問い合わせる。別のプロセスは、選択が第１のレンダリング・オプションの選択であるとき、オブジェクトの第１の表現をコンピュータ・メモリ内にロードすることを含み、かつ選択が第１のレンダリング・オプションの選択であるとき、オブジェクトの第１の表現を使用してアニメーションのフレームのためにオブジェクトのレンダリングを行うことを含む。選択が第２のレンダリング・オプションの選択であるときには、オブジェクトの第１の表現がコンピュータ・メモリ内にロードされない。
【００１６】
本発明の別の側面によれば、アニメーションのフレームのレンダリングを行うための方法が開示されている。このテクニックは、アニメーションのフレームに関連付けされるシーン・ディスクリプタ・データを検索することを含み、その際、シーン・ディスクリプタ・データが少なくとも１つのオブジェクトを指定する。オブジェクトは当該オブジェクトの第１の表現に対する参照に関連付けされ、かつ当該オブジェクトの第２の表現に対する参照に関連付けされる。さらに、オブジェクトの第１の表現は第１のレンダリング・オプションに関連付けされ、オブジェクトの第２の表現は第２のレンダリング・オプションに関連付けされる。追加のテクニックは、第１のレンダリング・オプションまたは第２のレンダリング・オプションの選択を受け取ること、その選択が第１のレンダリング・オプションの選択であるとき、オブジェクトの第１の表現をコンピュータ・メモリ内にロードすること、さらに選択が第１のレンダリング・オプションの選択であるとき、オブジェクトの第１の表現を使用してアニメーションのフレームのためにオブジェクトのレンダリングを行うことを含むことができる。種々の実施態様においては、選択が第２のレンダリング・オプションの選択であるときには、オブジェクトの第１の表現がコンピュータ・メモリ内にロードされない。さらに、オブジェクトの第１の表現が第１の複数のオブジェクトの表現に対する参照を含み、オブジェクトの第２の表現が第２の複数のオブジェクトの表現に対する参照を含む。それに加えて、第１の複数のオブジェクト内の少なくとも１つのオブジェクトが、第２の複数のオブジェクト内にも存在する。
【００１７】
本発明のさらに別の側面によれば、プロセッサを含むコンピュータ・システムのためのコンピュータ・プログラム・プロダクトが述べられている。このコンピュータ・プログラム・プロダクトは、プロセッサにアニメーションのフレームに関連付けされるシーン・ディスクリプタ・データをプログラム・メモリ内に検索するために指示するコードを含む。その際、シーン・ディスクリプタ・データが少なくとも１つのオブジェクトを指定する。また、オブジェクトが当該オブジェクトの第１の表現に対する参照に関連付けされ、オブジェクトの第１の表現が第１のレンダリング・オプションに関連付けされ、オブジェクトが当該オブジェクトの第２の表現に対する参照に関連付けされる。さらに、オブジェクトの第２の表現が第２のレンダリング・オプション、プロセッサに第１のレンダリング・オプションまたは第２のレンダリング・オプションの選択を決定するべく指示するコード、選択が第１のレンダリング・オプションの選択であるとき、オブジェクトの第１の表現をプログラム・メモリ内にロードするべく指示するコード、およびプロセッサに、その選択が第１のレンダリング・オプションの選択であるとき、オブジェクトの第１の表現に応じてアニメーションのフレームのためにオブジェクトのレンダリングを行うべく指示するコードに関連付けされる。種々の実施態様においては、選択が第２のレンダリング・オプションの選択であるときには、オブジェクトの第１の表現がコンピュータ・メモリ内にロードされない。それに加えてこれらのコードは、通常、磁気ディスク、光学ディスク、一連のデータ・パケット等の有形メディア上に存在する。種々の実施態様においては、オブジェクトの第１の表現が第１の複数のオブジェクトの表現に対する参照を含み、オブジェクトの第２の表現が第２の複数のオブジェクトの表現に対する参照を含む。さらに、第１の複数のオブジェクト内の少なくとも１つのオブジェクトが、第２の複数のオブジェクト内にも存在する。
【００１８】
本発明をより完全に理解するため、添付図面を参照する。これらの図面が本発明の範囲における制限ではないこと、本発明の現在記述されている実施態様および現在最良と理解されている態様が添付図面の使用を通じて追加の詳細とともに記述されていることを理解する必要がある。
【発明を実施するための最良の形態】
【００１９】
図１は、本発明の実施形態に従った代表的なコンピュータ・レンダリング・システム１００のブロック図である。
【００２０】
この実施形態においては、コンピュータ・システム１００が、一般にモニタ１１０、コンピュータ１２０、キーボード１３０、ユーザ入力デバイス１４０、ネットワーク・インターフェース１５０等を含む。
【００２１】
この実施形態においてユーザ入力デバイス１４０は、通常、コンピュータ・マウス、トラックボール、トラック・パッド、ワイヤレス・リモート等として具体化される。一般にユーザ入力デバイス１４０は、ユーザによるオブジェクト、アイコン、テキスト等のモニタ１１０上に現れる表示の選択を可能にする。
【００２２】
ネットワーク・インターフェース１５０の実施形態は、通常、イーサネット（Ｅｔｈｅｒｎｅｔ）カード、モデム（電話、衛星、ケーブル、ＩＳＤＮ）、（非同期）ディジタル加入者回線（ＤＳＬ）ユニット等を含む。ネットワーク・インターフェース１５０は、一般に図示のとおり、コンピュータ・ネットワークに結合される。別の実施形態においては、ネットワーク・インターフェース１５０が物理的にコンピュータ１２０のマザーボード上に統合されることもあり、またソフトＤＳＬ等のソフトウエア・プログラムとなることもある。
【００２３】
コンピュータ１２０は、通常、プロセッサ１６０、ランダム・アクセス・メモリ（ＲＡＭ）１７０やディスク・ドライブ１８０等のメモリ・ストレージ・デバイス、これらのコンポーネントを相互接続するシステム・バス１９０といった周知のコンピュータ・コンポーネントを含む。
【００２４】
一実施形態においては、コンピュータ１２０がＰＣ互換コンピュータであり、Ｉｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎ（インテル・コーポレーション）のゼオン（ＸｅｏｎTM）等の複数のマイクロプロセッサを有する。さらに、この実施形態におけるコンピュータ１２０は、通常、ユニックス（ＵＮＩＸ）ベースのオペレーティング・システムを含む。
【００２５】
ＲＡＭ  １７０やディスク・ドライブ１８０は、データ、オーディオ／ビデオ・ファイル、コンピュータ・プログラム、アプレット・インタプリタまたはコンパイラ、バーチャル・マシンのストレージのための有形のメディアの例であり、ここで説明している本発明の実施形態の場合にはそれらに、シーン・ディスクリプタ、フック・ファイル、オブジェクト・データ・ファイル、シェーダ・ディスクリプタ、レンダリング・エンジン、出力イメージ・ファイル、テクスチャ・マップ、置換マップ、オブジェクト材料のスキャッタリング長と吸収データ、データベース等が含まれる。このほかのタイプの有形メディアとしては、フロッピーディスク、リムーバブル・ハードディスク、ＣＤ‐ＲＯＭやバーコード等の光学ストレージ・メディア、フラッシュ・メモリ等の半導体メモリ、読み出し専用メモリ（ＲＯＭ）、バッテリ‐バックアップ揮発性メモリ、ネットワーク・ストレージ・デバイス等が挙げられる。
【００２６】
この実施形態においては、コンピュータ・システム１００が、ネットワークを介した通信を可能にするＨＴＴＰ、ＴＣＰ／ＩＰ、ＲＴＰ／ＲＴＳＰプロトコル等のソフトウエアを含むこともできる。本発明の代替実施形態においては、ほかの通信ソフトウエアおよび伝送プロトコル、たとえばＩＰＸ、ＵＤＰ等が使用されることもある。
【００２７】
図１は、本発明を具体化することのできるコンピュータ・レンダリング・システムを表している。当業者には容易に明らかになろうが、このほかにも多くのハードウエアやソフトウエア構成が本発明との使用に適している。たとえば、このほかのマイクロプロセッサ、たとえばペンティアム（ＰｅｎｔｉｕｍTM）またはイタニウム（ＩｔａｎｉｕｍTM）プロセッサ；アドバンスド・マイクロ・デバイセズ・インク（Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ，Ｉｎｃ．）のオプテロン（ＯｐｔｅｒｏｎTM）またはアスロンＸＰ（ＡｔｈｌｏｎＸＰTM）マイクロプロセッサ；さらに、モトローラ・インク（Ｍｏｔｏｒｏｌａ，Ｉｎｃ．）のパワーＰＣ（ＰｏｗｅｒＰＣ）Ｇ３TM、Ｇ４TMマイクロプロセッサ等の使用も企図されている。さらに、このほかのタイプのオペレーティング・システム、たとえばマイクロソフト・コーポレーション（Ｍｉｃｒｏｓｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ）のウインドウズＸＰ（ＷｉｎｄｏｗｓＸＰ（登録商標））、ウインドウズＮＴ（ＷｉｎｄｏｗｓＮＴ（登録商標））等のウインドウズ（Ｗｉｎｄｏｗｓ（登録商標））オペレーティング・システム、サン・マイクロシステムズ（Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ）のソラリス（Ｓｏｌａｒｉｓ）、リナクス（ＬＩＮＵＸ）、ユニックス（ＵＮＩＸ）、アップル・コンピュータ・コーポレーション（Ａｐｐｌｅ  Ｃｏｍｐｕｔｅｒ  Ｃｏｒｐｏｒａｔｉｏｎ）のマックＯＳ（ＭＡＣ  ＯＳ）等の使用も企図されている。
【００２８】
図２Ａ、２Ｂは、本発明の実施形態に従ったプロセス・フローのブロック図を示している。例示の実施形態の場合には、最初にステップ２００においてレンダリングのためのフレームが指定される。本発明の実施形態においては、この指定を特定のフレーム、関連フレームのセット（ショット）、ムービーの部分、ムービー全体等とすることができる。この指定は、名前、番号等の識別子の選択を介して行うことができる。
【００２９】
次に、ステップ２１０においてレンダリング・オプションが指定される。本発明の一実施形態においては、レンダリング・オプションが、レンダリングの質、レンダリングの目的、アニメーションのタスク等の仕様である。前述したとおり、照明が審美的に満足のゆくものであるか否かの決定、色またはテクスチャの調和の決定、シーンの視覚的配置または構成の再検討等のためにイメージの最終レンダリングを行うことはもとより、そのほかの多くの理由に対してイメージのレンダリングが行われる。したがって、レンダリング・オプションは、イメージのレンダリングが行われる理由に対応する。別の実施形態においては、レンダリング・オプションが、レンダリング後のシーンへ特定のオブジェクトを含めたり、そこから除去すること、レンダリング後のシーンへ特定の照明を含ませたり、そこから除去すること、シーンのレンダリングにおいて特定のカメラを使用すること等を示すことができる。
【００３０】
この実施形態においては、フレームが幾何学的シーン・ディスクリプタに関連付けされている。この幾何学的シーン・ディスクリプタは、通常、シーン内の『オブジェクト』を指定するテキスト・ファイルである。オブジェクトには、照明オブジェクト、カメラ・オブジェクト、幾何学的オブジェクト等が含まれる。これらのオブジェクトは、レンダリングの目的のためのシーンの指定に使用される。さらに詳しくは後述するとおりであるが、異なるオブジェクトは異なる表現を使用して記述され、異なるオブジェクトは、通常、次を含めた異なるプロパティを含む：すなわち、セッティング、パラメータ、定数、属性、アプリケーション・データ等である。
【００３１】
この実施形態においては、シーン・ディスクリプタ・ファイルがシーン内のオブジェクトの位置、オブジェクトの向き、オブジェクトのための色とテクスチャ、オブジェクトのためのプロパティ等を指定する。本発明においては、シーン・ディスクリプタ・ファイルが、『フック・セット』または『フック・ファイル』と呼ばれるテキスト・ファイルになる。単純なフック・ファイルのコンテンツとして、次のような例を挙げることができる。
【００３２】
hook "object1"  ｛ｏｂｊｅｃｔ１のプロパティ｝
【００３３】
hook "camera1"  ｛ｃａｍｅｒａ１のプロパティ｝
【００３４】
hook "light1"  ｛ｌｉｇｈｔ１のプロパティ｝
【００３５】
この実施形態では、レンダリングされることになるシーンを指定するシーン・ディスクリプタ・ファイルが、ステップ２２０においてメモリから取り出される。一実施形態においては、シーン・ディスクリプタ・ファイルがレンダリングされることになるフレームだけに関連付けされること、イメージのショットに関連付けされること、フィーチャーの部分に関連付けされること、あるいはフィーチャー全体に関連付けされること等ができる。
【００３６】
この実施形態の場合、オブジェクトのプロパティを使用してそのオブジェクトのための値を指定することができる。一実施形態においては、たとえばカメラ・オブジェクトの場合にプロパティが：投影のタイプ（たとえば遠近）；視野；広さ；位置；アジマス；ピッチ、パン、ロール；アスペクト比；焦点オプション；クロッピング；シフティング；ｔｖアスペクト比、パンとスキャン・オプション、トラック数、クレーン数等を含むことができる。
【００３７】
カメラ・フックの一例を次に示す：
【００３８】
hook "main_cam" {
desc=main_cam: Nemo production camera, aka camera01a;
kind=camera;
filename=stdobj/Camera01a.m;      （カメラ・モデルのファイル名）
importance=1;
autoload=1;
active=1;
macro=do_Camera01a(name);
exportvecs=XF CanVec;
importvecs=;
hasSNSAvars=0;
mcat_name=main_cam;
param{            （パラメータ）
projection="perspective";
defFov=45;
defWidth=1;
defCamX=0;
defCamy=0;
defCamz=0;
defAzimuth=0;
defPitch=0;
defPan=0;
defRoll=0;
defNear=20;
defFar=200000;
defAspect=1.85;
focusing="on";
cropping="off";
shifting="off";
panScan="off";
tvAspect=1.33
NumTracks=2;
NumCranes=2;
CameraHeadExtraAvars=1;
doCamMod=0;
camModFunc=NULL;
camModFuncParams=Null;
name="main_cam";
}
【００３９】
別の実施形態においては、照明オブジェクトについては、プロパティが：照明の質、照明のタイプ、照明の形状、照明の色等を含む。必ずしもすべてのカメラ・オブジェクトまたは照明オブジェクトが同一のプロパティをサポートする必要はない。たとえば『大気中の霧の照明』は、独特の霧プロパティを有することができる。照明フックの一例は次のようになる。
【００４０】
hook"LP_Lspt_onPodium" {
use "stdlight/glight01a/glight01a.hook";
king=light;
class=_Clsss_Glight01a;
macro=glight01a(name);
filename=stdlight/glight01a/glight01a.m;      （照明モデルのファイル名）
exportvecs=ToPointXfFromPoingSf;
parent=set_lights;
depends_on=;
importvecs=RimObjMat CamMat IntMult ToPointAttachMat FromPointAttachmat;
cues=messhall_prlim_lights.cue;
param {            （パラメータ）
name="LP_Lspt_onPodium:;
lightQuality=L_FULL;
lightSource=L_SPOT;
defIllum=1'
lightShape=L_Barn;
lcolor=(0.948905,1.0,0.889);
numGlobalBlokers=0;
numGlobalRods=0;
numGlobalFakes=0;
numGlobalSoftners=0;
numGlobalCookies=0;
numGlobalBarns=0;
shadowmaps=shaderargs("LP_Lkey_fromHole_sm");
}
appl {            （アプリケーション・データ）
glightType=glight01a;
lightName=LP_Lspt_onPodium
lightRed=0.948905;
lightBlue=0.889;
lightGreen=1.0;
lightColor=;
shmapsUsed=LP_Lkey_fromHole_sm;
}}
【００４１】
本発明の実施形態においては、幾何学的オブジェクトが、サポートされている任意のイメージング可能なプロパティを実質的に含むことができる。たとえば、１つの幾何学的パラメータを：椅子オブジェクトの脚の数；モンスター・オブジェクトの目玉の数等とすることができる。一例を挙げれば、フック・エントリを次になぞらえることができる。
【００４２】
hook "object1" param {number_of_heads=2}
【００４３】
この実施形態の場合には、シーン内にレンダリングされることになるオブジェクトについて、複数のレンダリング・オプションまたは質の選択をそのオブジェクトのために行うことができる。一例を挙げれば、オブジェクトが『フル』モデル、すなわち完全に指定されたモデルを有すること、オブジェクトが『スタンドイン』モデル、すなわち完全に指定されたモデルより少ないモデルを有すること等が許される。本発明の一実施形態においては、シーン内のすべてのオブジェクトがそれぞれの質の選択に対応するモデルを有することができる。たとえばオブジェクトＡとオブジェクトＢは、ともに『フル』モデルと『スタンドイン』モデルを有することができる。別の実施形態においては、必ずしもシーン内のすべてのオブジェクトが同一のモデルの選択肢を持たないことになる。たとえば、オブジェクトＡは『フル』モデルと『スタンドイン』モデルを有するが、オブジェクトＢは単に１つのモデルしか持たないということがあり得る。その種の例においては、そのモデルを『フル』モデルとすることができる。さらに別の例においては、オブジェクトがそれ自体に特有のモデルを有することができる。たとえば、照明オブジェクトは、『ソフト』モデル、『ハード』モデル等を有することができる。別の実施形態においては、これより多くの、あるいはこれより少ないレンダリング・オプション（たとえば、レンダリングの質のオプション）が企図される。たとえば、前述の例を参照すれば、ｏｂｊｅｃｔ１のためのフック・ファイルは、次を含むことができる。
【００４４】
hook "object1"     {full_model="object1_full.mdl";number_of_legs=4;
standin_model="object1_standin.mdl";number_of_legs=1;
...}
【００４５】
この例からわかるとおり、ｏｂｊｅｃｔ１は２つの異なるモデル・ディスクリプタ・ファイル（たとえば、＊．ｍｄｌファイル）に対するファイル名参照を含む。この実施形態の場合、各モデル・ディスクリプタ・ファイルが業界標準の．ｍｄｌファイルであり、それによってｏｂｊｅｃｔ１がそのシーン内においてどのようにレンダリングされるかが指定される。さらに、．ｍｄｌファイルは、通常、あらかじめ定義済みの幾何学的コンポーネント、テクスチャ、色、またはそれらに類似のｏｂｊｅｃｔ１に関連付けされたものをストアする。別の実施形態においてはモデル・ディスクリプタ・ファイルが、ｏｂｊｅｃｔ１について、進行中に生成される幾何学的コンポーネントや進行中に生成されるテクスチャ等を含むことができる。さらに別の実施形態においては、あらかじめ定義済みと進行中に生成されるｏｂｊｅｃｔ１の側面両方の組み合わせを使用することができる
【００４６】
単純な例示として、２００１年にアニメーション化されたフィーチャー、モンスターズ・インク（Ｍｏｎｓｔｅｒｓ，  ＩｎｃｏｒｐｏｒａｔｅｄTM）のマイク・ワゾウスキ（Ｍｉｋｅ  ＷａｚｏｗｓｋｉTM）等のオブジェクトを、上記のテクニックを使用するシーンについて指定することができる。たとえば、フル・モデルとスタンドイン・モデルをシーン・ディスクリプタ・ファイルに含めることができる。最終レンダリング目的のためには、２本の脚を有するマイク・ワゾウスキ（Ｍｉｋｅ  Ｗａｚｏｗｓｋｉ）のフル・モデルを取り出し、シーンのレンダリングに使用することができる。しかしながら、照明目的のためであれば、単一の脚を有するマイク・ワゾウスキ（Ｍｉｋｅ  Ｗａｚｏｗｓｋｉ）のスタンドイン・モデルを取り出し、シーンのレンダリングに使用することができる。必ずしもすべてのオブジェクトがシーン内においてレンダリングされる必要がないことから、すべてのオブジェクトをメモリ内に検索される必要はない。
【００４７】
図２Ａの実施形態を参照すると、シーン・ディスクリプタ・ファイル内において指定された第１のオブジェクトについて、それがメモリ内に検索され、かつそのシーンの中でレンダリングするか否かの決定がステップ２３０においてなされる。この決定は、通常、選択されたレンダリング・オプションに応じて行われる。一例を挙げれば、レンダリングを、シーン内の背景オブジェクトがどのように見えるかを確かめるためのセットのドレッシングを目的としたものとすることができる。その種の場合においては、フォアグラウンドのオブジェクト（たとえばキャラクタ）のレンダリングを行わなくてもよい。
【００４８】
この実施形態において、シーンのレンダリングにそのオブジェクトが含まれることになる場合には、ステップ２４０において、そのオブジェクトがそれに関連付けされた１を超える数のモデル・ファイルを有することもある。前述した例に示したとおり、モデルは、『フル』モデルと『スタンドイン』モデルを有することができる。１を超える数のモデルが存在する場合には、ステップ２５０において、通常、選択されたレンダリング・オプションに応じてレンダリング目的のためにいずれのモデルを使用するかについての決定が行われる。いくつかの実施形態においては、レンダリング・オプションによってオーバライドされない限り『デフォルト』のモデルを決定することができる。モデルだけが指定されている場合には、そのモデルが自動的に選択される。
【００４９】
この実施形態において、オブジェクトが必要とされない場合には、ステップ２６０にあるとおり、レンダリング目的でそのモデルは使用されない。より詳細に述べれば、モデルがメモリ内にロードされない。その後、ステップ２７０において、そのシーン・ディスクリプタ・ファイル内の次のオブジェクト（フック）について、通常はすべてのフックの考察が完了するまでこれらの処理が繰り返される。
【００５０】
一実施形態においては、レンダリングのために選択されたオブジェクトが、ステップ２８０においてメモリ内にロードされる。たとえば、幾何学的オブジェクトの場合には．ｍｄｌファイルが検索される；カメラ・オブジェクトの場合には．ｍファイルが検索される。別の実施形態においては、レンダリングにおいてオブジェクトが必要であると決定されると、オブジェクトは一度に１つロードされる。
【００５１】
次にステップ２９０において、フック・ファイル内に指定された、ロード済みのオブジェクトのそれぞれに関連付けされたプロパティ（たとえば、パラメータ、定数、属性、およびアプリケーション・データ）がそのオブジェクトに適用される。一実施形態においては、指定されたプロパティを使用してオブジェクトが呼び出され、ステップ２８０において、インスタンシエートされたオブジェクトが返される。
【００５２】
この実施形態では、続くステップ３００において、ロード済みオブジェクトとフック・ファイル内に指定されたプロパティを使用してシーンのレンダリングが行われる。ここで理解する必要があるが、このステップにおけるレンダリングは、正式な高品質レンダリング・プロセスであることもあれば、そうでないこともある。結果として得られるシーンのイメージは、ステップ３１０においてコンピュータ・メモリとフィルム・メディア等にストアされ、およびその後、続いて、ステップ３２０において検索され、表示されることができる。
【００５３】
図３Ａ、３Ｂは、本発明の異なる実施形態を例示している。より詳細に述べると、図３Ａ、３Ｂは、オブジェクトを指定するため、および／またはオブジェクトにプロパティを提供するための複数のフック・ファイルの使用を例示している。
【００５４】
この実施形態の場合、フィーチャー内の各イメージについて複数のフック・ファイルの存在が許される。したがって、１つのフック・ファイルだけを使用することに代えて、フック・ファイルの組み合わせがオブジェクトやそのオブジェクトのために使用されるプロパティを提供することが可能である。たとえば、種々の実施形態においては、フィーチャー全体のためのフック・ファイル、フィーチャー内のショットの『シーケンス』のためのフック・ファイル、特定の『ショット』（関連シーンのセット）のためのフック・ファイル、特定のシーンのためのフック・ファイルが存在するであろう。したがって、そのシーンに関連付けされている別のフック・ファイルが存在する場合には、図２Ａに示されているプロセスをステップ４００において繰り返すことができる。
【００５５】
次に、一実施形態においては、第１のフック・ファイルからレンダリングのために選択されたオブジェクトが、ステップ４１０においてメモリ内にロードされ、第２のフック・ファイルからレンダリングのために選択されたオブジェクトが、ステップ４２０においてメモリ内にロードされる。
【００５６】
この実施形態の場合、第１のフック・ファイルと第２のフック・ファイル内に指定されており、ロード済みオブジェクトに関連付けされたプロパティ（たとえば、パラメータ、定数、属性、およびアプリケーション・データ）が、ステップ４３０においてそのオブジェクトに適用される。
【００５７】
この実施形態においては、第２のフック・ファイル内に指定されたオブジェクトのためのプロパティが、第１のフック・ファイル内に指定されたそのオブジェクトのためのプロパティと異なることもある。その場合、第１のフック・ファイル内に指定されたそのオブジェクトのためのプロパティが優勢になる。したがって、第１のフック・ファイルによって指定されていない、第２のフック・ファイル内にストアされたオブジェクトのプロパティだけが、ステップ４４０においてレンダリング目的のために使用される。これについては、次の例から理解することができる。
【００５８】
フィルム全体フック・ファイルは、以下を含む：
hook "mike" {full_model="mike_full.mdl";
param {number_of_legs=2;}}
【００５９】
シーケンス３フック・ファイルは、以下を含む：
hook "mike" param {number_of_legs=4;}
【００６０】
ショット・フック・ファイルは、以下を含む：
hook "mike" param {skin_color=(0.3,1,0.4);}
【００６１】
最初に、ショット・フック・ファイルが、前述の実施形態に従って処理され、オブジェクト『ｍｉｋｅ』のレンダリングを行うことが決定される。ここで理解されるとおり、皮膚の色（つまり、ｓｋｉｎ＿ｃｏｌｏｒ）パラメータがショット・フック・ファイル内において指定されており、したがってこのパラメータが使用される。上記のプロセスの第２のフック・ファイルのための次の繰り返しの間に、シーケンス・フック・ファイルが処理される。シーケンス・フック・ファイルから、『ｍｉｋｅ』について、追加の脚の数（つまり、ｎｕｍｂｅｒ＿ｏｆ＿ｌｅｇｓ）パラメータが４となることが指定される。最後に、上記のプロセスの次の繰り返しの間に、フィルム全体フック・ファイルが処理される。フィルム全体フック・ファイルから、オブジェクト・モデルが、ｍｉｋｅ＿ｆｕｌｌ．ｍｄｌとして識別される。それに加えて、脚の数（つまり、ｎｕｍｂｅｒ＿ｏｆ＿ｌｅｇｓ）が２として指定される。しかしながら、この実施形態によれば、シーケンス・フック・ファイルのプロパティがフィルム全体に対しての指定すなわち仕様に『勝る』またはそれをオーバライドする。したがって、すべてのパラメータが『Ｍｉｋｅ』をレンダリングするために『解決』されると、パラメータｎｕｍｂｅｒ＿ｏｆ＿ｌｅｇｓ＝４とｓｋｉｎ＿ｃｏｌｏｒ＝（０．３，１，０．４）を伴ってモデル・ファイルｍｉｋｅ＿ｆｕｌｌ．ｍｄｌが検索される。
【００６２】
この実施形態では、解決されたオブジェクトがステップ４５０においてイメージ内にレンダリングされる；イメージは、ステップ４６０においてストアされ、ステップ４７０においてそのイメージが表示される。
【００６３】
上記のコンセプトは、ピクサー（Ｐｉｘａｒ）のファインディング・ニモ（Ｆｉｎｄｉｎｇ  ＮｅｍｏTM）、モンスターズ・インク（Ｍｏｎｓｔｅｒｓ，  Ｉｎｃ．TM）、トイ・ストーリー２（Ｔｏｙ  Ｓｔｏｒｙ  ２TM）、バグズ・ライフ（Ａ  Ｂｕｇｓ  ＬｉｆｅTM）を含む長篇映画のために使用され、成功が確認された。
【００６４】
上記のテクニックは、特定のファイル名等とともに特定のコンピュータ・ディスク・ディレクトリ、特定のネットワーク・ディレクトリといった『ハード・コーディング』されたコンピュータ・ロケーションにおいて見つかるオブジェクトの表現を使用している。しかしながら本発明の発明者は、このタイプのオブジェクト・ファイルの『ハード・コーディング』が多くの欠点を有することを認識した。それらの欠点には、ユーザが、オブジェクトに対してコンピュータのディレクトリ構造を理解する必要があることが含まれる。またユーザは、オブジェクトの異なる表現がディレクトリ構造内においてどのように分類され、ストアされるかについて知らなければならない。別の欠点としては、ディレクトリ構造が変化するとき、シーン・ディスクリプタ・ファイルを作成するアニメータは、その種の変化に対して最新であり続けるために常にシーン・ディスクリプタ・ファイルを修正しなければならないことなどが挙げられる。さらに別の欠点を挙げれば、時間の経過とともに、またコンピュータ・システムの移行等に伴って、オブジェクトのディレクトリ構造が改ざんされることがあり、オブジェクトが失われることがある。その結果、最初にシーンのレンダリングが行われてから年月が経過し、ユーザがそのシーンの再レンダリングを試みたとき、オブジェクトが必ずしもすべて見つからないことになる。これらの欠点に対処するため、発明者は追加の実施形態を開発した。
【００６５】
図４は、本発明の別の実施形態を例示している。より詳細に述べれば、図４は、データベースを含む実施形態を例示している。図４は、コンピュータ・システム５００、データベース・マネジメント・システム（ｄｂｍｓ）５１０、データベース５２０を含む。この実施形態の場合、コンピュータ・システム５００が、図１について前述した一般的なレンダリング・システムとなる。さらに、データベース・マネジメント・システム５１０とデータベース５２０は、オラクル（Ｏｒａｃｌｅ）、サイベース（Ｓｙｂａｓｅ）等から入力可能な従来的なデータベース・システムとすることができる。
【００６６】
この実施形態においては、ｄｂｍｓ  ５１０が、ＳＱＬクエリ・ツール等の従来のデータベース・アクセス・メカニズムを含む。種々の実施形態においては、ｄｂｍｓ  ５１０が、データベース５２０に対する組織化されたアクセスを提供する追加のフロント‐エンド・ソフトウエアを含むこともある。一例を示すと、追加のフロント‐エンド・ソフトウエアは、『資産マネジメント』ソフトウエア、すなわちユーザが、構造化されたインターフェースを介してソフトウエア資産のより容易なストアと、その後の検索を行うことを可能にするソフトウエアを含む。本発明の実施形態においては、任意の従来的なソフトウエア資産マネジメント・システムを適合させて、使用することができる。
【００６７】
動作において、コンピュータ・システム５００が、前述と類似のシーン・ディスクリプタ・ファイルを検索する。この実施形態の場合、シーン・ディスクリプタ・ファイルは、単純にオブジェクト名（資産名）、特定のサーチ条件、データベース・クエリ、あるいはそれらに類似するものを指定することができる。たとえばすでに示したようなディレクトリ内のファイル名を指定することに代えて、シーン・ディスクリプタ・ファイルは、ｄｂｍｓ  ５１０に、一連の鍵となるサーチ条件を指定することができる。それに応答して、この例の場合には、ｄｂｍｓ  ５１０がそれらの鍵となるサーチ条件を使用してデータベース５２０に問い合わせを行い、所望のオブジェクト表現を見つけることができるディレクトリの場所を返す。資産マネジメント・システムが具体化される別の例においては、シーン・ディスクリプタ・ファイルが、所望のオブジェクトに関連付けされた鍵となるサーチ条件を提供することもできる。それに応答して資産マネジメント・システムがデータベース５２０にアクセスし、所望のオブジェクト表現を返すことができる。
【００６８】
これらの例は、オブジェクト表現が変更されるか更新されたとき、あるいは新しいオブジェクトがシーンに追加されたときなどにおいて、シーン・ディスクリプタ・ファイルのマネージに必要な作業量を大きく低減させることを示している。したがって発明者は、これらの実施形態の利点が、本発明の実施形態の価値を大きく高めるものであると考えている。
【００６９】
図５は、本発明の追加の実施形態を例示している。図５において、６００は、当初述べた方法を使用して第１の『スノーマン』オブジェクト６１０と第２の『スノーマン』オブジェクト６２０を参照するシーン・ディスクリプタ・ファイルを示す。ここに例示されているとおり、第１のスノーマン・オブジェクトの．ｍｄｌファイルと第２のスノーマン・オブジェクトの．ｍｄｌファイルが、それらのオブジェクトのレンダリング時にアクセスされる。
【００７０】
また図５には、本発明の別の実施形態を示す６３０も例示されている。６３０は、オブジェクト『ナゲット』のコンセプトを示す。この例の場合、オブジェクト・モデルが、より原始的なオブジェクト・モデル（ナゲット）に分解される。たとえば、第１のスノーマン・オブジェクト６４０と第２のスノーマン・オブジェクト６５０は、『球』オブジェクト６６０に対する繰り返しの参照を含む。これからわかるとおり、第１のスノーマン・オブジェクト６４０は、異なるパラメータを使用して球オブジェクト６６０を３回にわたって参照し、第２のスノーマン・オブジェクト６５０は、異なるパラメータを使用して球オブジェクト６６０を３回にわたって参照する。
【００７１】
本発明の実施形態においては、１を超える数のオブジェクトの分解が実行できることが企図されている。たとえばオブジェクトを第１のセットのオブジェクトに分解し、それらの幾何学的オブジェクトを第２のセットのオブジェクトに分解するといったことができる。また、この分解が照明オブジェクト、カメラ・オブジェクト、幾何学的オブジェクト等に対しても適用できることも企図されている。例示されているとおり、ナゲットの使用は、シーン内のオブジェクト表現の指定のためにストアされ、使用される冗長データのストアを大きく削減する。
【００７２】
本発明の実施形態において、ナゲットのコンセプトは、オブジェクトについての変更を伝播する容易性やその能力を大きく向上させる。たとえば、図５に示されているように、球オブジェクト６６０が立方体オブジェクト６７０に変更される場合に、シーン内に取り出したとき、スノーマン・オブジェクト６８０とスノーマン・オブジェクト６９０が、球ではなく立方体で作られる。したがって、例示されているとおり、幾何学的なプリミティブに対する単一の変更が、シーン全体に容易に伝播される。
【００７３】
その種の実施形態の別の利点は、依存性分析がオン・ザ・フライで行われることや、ナゲットが必要に応じてメモリ内にロードされることである。たとえば、図５の例においては、アニメータが第２のスノーマン・オブジェクト６５０をシーン内に含めることを希望するとき、第２のスノーマン・オブジェクト６５０が球オブジェクト６６０に依存していることから、球オブジェクト６６０がメモリ内に自動的にロードされる。
【００７４】
多くの変更または修正が容易に描くことができる。上記の開示に照らせば、当業者は、オブジェクトのナゲットのコンセプトをオリジナルの実施形態と結合できることや、データベースを使用する実施形態と結合できることを認識することになろう。このほかの実施形態の組み合わせもまた企図されている。
【００７５】
本発明の実施形態においては、シーン・ディスクリプタ・ファイルを少なくとも２つのシーンの表現のレンダリングに使用できることが企図されている。言い換えれば、シーン・ディスクリプタ・ファイルは、少なくともフル・レンダリング・オプションと、全体より少ないオブジェクトのレンダリングを行うか、少なくとも１つのオブジェクトを代替表現でレンダリングするレンダリング・オプションを有することが企図されている。一実施形態においては、単一のシーン・ディスクリプタ・テキスト・ファイルを、所望の異なるレンダリング・オプションのために使用することができる。種々の実施形態においては、レンダリング・オプションを定義する任意数の方法が提供され、たとえばアニメータは、コマンド行スイッチ・オプション（たとえば、‐ｆｉｎａｌ、‐ｌｉｇｈｔ、‐ｓｅｔｄｒｅｓｓｉｎｇ）を介してオプションを指定すること、あるいはグラフィカル・ユーザ・インターフェース内の１ないしは複数のチェック・ボックスを介してオプションを指定すること等が可能になる。さらに、シーンのレンダリングのための任意数の異なる目的、すなわち、たとえばハード照明、ソフト照明、シーンのための異なるカメラ・アングル、異なるテクスチャ等のレンダリング・オプションを思いつくことができる。
【００７６】
ここで理解する必要があるが『レンダリング』は、レンダーマン（ＲｅｎｄｅｒＭａｎ（登録商標））等のプログラムを使用してシーンの数学的記述からイメージを変換する高品質のプロセスを指していることである。それに加えて『レンダリング』は、シーンの数学的記述の任意のグラフィカルなビジュアル化を指すこと、あるいはピクセルへのジオメトリの任意の変換、たとえば、より低い品質のレンダリング・エンジンを用いた『レンダリング』等を指すこともある。低品質レンダリング・エンジンの例には、ＧＬとＧＰＵのハードウエア・レンダラやソフトウエア・レンダラ等が含まれる。
【００７７】
『アニメータ』という表現は、オブジェクトの『アニメーション化』を適時に行うアニメータを言う。それに加えて『アニメータ』という表現は、考察のため、あるいは何らかのタスクのためにシーンを指定するあらゆるユーザを言う。例を述べれば、アニメータが、シーンのレイアウトを目的としてシーンの異なる表現の考察を希望すること（シーンのデザイナ）；キャラクタ・アニメーション、最終アニメーション、ボディ・アニメーションの考察を希望すること（アニメータ）；照明の考察を希望すること（照明係）などが考えられる。
【００７８】
これらの加えて上記の実施形態のいくつかにおいては、オブジェクトの代替表現が選択され、メモリ内にロードできることが例示されている。しかしながらここで理解する必要があるが、本発明の実施形態において、オブジェクトの単一表現も企図されており、そのオブジェクトの単一表現がロードされることもあれば、ロードされないこともある。たとえば、キャラクタ・オブジェクトの１つの表現がフック・ファイル内において指定されることがあるが、アニメータが『シーンのデザイン』の考察だけを希望することがある。そのためアニメータが、レンダリング内にそのキャラクタ・オブジェクトを含ませることに関心がないこともあり、その場合にはそのキャラクタ・オブジェクトがメモリ内にロードされない。
【００７９】
本発明のいくつかの実施形態は、アニメータが『ロードされていない』オブジェクトについて作業することを可能にする。より詳細に述べれば、いくつかの実施形態においては、アニメータがオブジェクトをメモリ内にロードすることなく、信頼することのできるオブジェクトのパラメータをフック・ファイルが指定することができる。たとえばフック・ファイルは、オブジェクトのバウンディング・ボックス（１ないしは複数）を指定し、アニメータは、そのオブジェクトを実際にロードすることなく、ロードされていないオブジェクトの周囲にオブジェクトを配置することができる。別の実施形態においては、バウンディング・ボックス（１ないしは複数）の位置、バウンディング・ボックス（１ないしは複数）の向き、オブジェクトの色等の追加の情報が提供される。その種の実施形態は、可能な限り多くのオブジェクトのロードを避けてレンダリング・プロセスを高速化する一方、同時にロードされていないオブジェクトについての情報を提供するので、有利であると考えられる。
【００８０】
この開示を読んだ後であれば、当業者が、このほかの実施形態を思いつくことは可能である。別の実施形態においては、ここに開示されている本発明の組み合わせまたは部分的組み合わせを好適に行うことができる。アーキテクチャのブロック図とフローチャートは、理解を容易にするためにグループ化されている。しかしながらブロックの結合、新しいブロックの追加、ブロックの再配置等が本発明の代替実施形態の中で企図されることを理解する必要がある。
【００８１】
したがって、明細と図面は、限定の意味ではなく例示と考えられるべきである。しかしながらそれらに対する種々の修正と変更は、特許請求の範囲に示されている本発明のより広い精神ならびに範囲から逸脱することなく行うことができる。
【図面の簡単な説明】
【００８２】
【図１】本発明の一実施形態に従ったレンダリング・システムを例示したブロック図である。
【図２Ａ】本発明の実施形態に従ったプロセスのフローを例示したフローチャートである。
【図２Ｂ】本発明の実施形態に従ったプロセスのフローを例示したフローチャートである。
【図３Ａ】本発明の実施形態に従った例のフローチャートである。
【図３Ｂ】本発明の実施形態に従った例のフローチャートである。
【図４】本発明の別の実施形態を例示した説明図である。
【図５】本発明の追加の実施形態を例示した説明図である。
【符号の説明】
【００８３】
１００  コンピュータ・システム；コンピュータ・レンダリング・システム、１１０  モニタ、１２０  コンピュータ、１３０  キーボード、１４０  入力デバイス；ユーザ入力デバイス、１５０  ネットワーク・インターフェース、１６０  プロセッサ、１７０  ランダム・アクセス・メモリ；ＲＡＭ、１８０  ディスク・ドライブ、１９０  システム・バス
【図１】
2007531928.tif 000003
【図２Ａ】
2007531928.tif 000004
【図２Ｂ】
2007531928.tif 000005
【図３Ａ】
2007531928.tif 000006
【図３Ｂ】
2007531928.tif 000007
【図４】
2007531928.tif 000008
【図５】
2007531928.tif 000009
【国際調査報告】
2007531928.tif 000010