(57)【要約】      （修正有）【課題】アニメーションについての従属グラフ評価のシステム及び方法を提供すること。【解決手段】態様には、源従属グラフ及びアニメーション曲線をゲーム機とともに評価するためのシステム、装置、及び方法が含まれる。従属グラフはゲームの実行中にインタラクティブレートで評価されてよい。アニメーション曲線は制御要素の状態における経時的な変化を記述してよい。従属グラフのサブネットワークは複数のプロセッサを使って識別及び評価されてよい。【選択図】図１
2010119843.tif 000002
【特許請求の範囲】
【請求項１】
ゲームアニメーションシステムであって、
ゲームを実行する手段と、
制御要素の状態の経時的な変化を記述する源アニメーション曲線データと、
前記源アニメーション曲線データについての変換を定義する第１従属グラフの記述と、
前記ゲームの実行中にインタラクティブレートで前記第１従属グラフを評価する手段、とを備えるシステム。
【請求項２】
請求項１に記載のゲームアニメーションシステムであって、
前記実行手段はプロセッサを備え、前記評価手段はアニメーションエンジン又はゲームエンジンを備えるシステム。
【請求項３】
請求項１に記載のゲームアニメーションシステムであって、
前記第１従属グラフは、前記制御要素の状態に基づき前記ゲームの実行中に表示される要素の状態を記述する複数ノードを備えるシステム。
【請求項４】
請求項１に記載のゲームアニメーションシステムであって、
前記制御要素の状態の変化は、あらかじめ定義された経路に沿った所定点の移動を備えるシステム。
【請求項５】
請求項１に記載のゲームアニメーションシステムであって、
前記評価手段は、ひとつ以上の他要素に関係して第１要素の向きを表すデータを発生させるように構成され、前記第１要素及び前記ひとつ以上の他要素は、表示するオブジェクトの少なくとも一部分の構造を定義するシステム。
【請求項６】
請求項１に記載のゲームアニメーションシステムであって、
前記第１従属グラフの記載は、前記従属グラフの第１ノードを記憶する第１データ構造を備え、前記第１ノードは複数の相関要素のひとつの第１の空間的又は時間的値を表し、
前記第１従属グラフの記載は、前記従属グラフの第２ノードを記憶する第２データ構造を更に備え、前記第２ノードは前記第１の時間的又は空間的値と前記相関要素のひとつの第２の時間的又は空間的値との間の関係を表し、前記第２データ構造は前記第１データ構造とは明確に区別されるシステム。
【請求項７】
請求項１に記載のゲームアニメーションシステムであって、
前記第１従属グラフの記載は、ゲームの実行中に受信した手続的入力に少なくとも部分的に基づいて再構成可能であるシステム。
【請求項８】
請求項１に記載のゲームアニメーションシステムであって、
第２従属グラフの記述をさらに備え、前記評価手段は前記第１従属グラフと前記第２従属グラフとの間の関係を定義するように構成されているシステム。
【請求項９】
請求項１に記載のゲームアニメーションシステムであって、
ゲームを実行するための複数のプロセッサを備えるシステム。
【請求項１０】
請求項９に記載のゲームアニメーションシステムであって、
前記複数のプロセッサのそれぞれは、前記第１従属グラフの少なくともひとつのサブネットワークのノードを、該サブネットワークにない前記第１従属グラフにおけるノードの評価とは独立して評価するように構成され、該サブネットワークにおけるノードは少なくともふたつの相関要素の経時的な動きを記述するシステム。
【請求項１１】
請求項１に記載のゲームアニメーションシステムであって、
前記制御要素を表すデータをさらに備え、前記制御要素の状態の変化は複数の他要素の向きの変化と関連付けられるシステム。
【請求項１２】
ゲームアニメーションシステム上でゲームを実行する方法であって、
制御要素の状態の経時的な変化を記述する源アニメーション曲線データを特定する工程と、
前記源アニメーション曲線データについての変換を定義する第１従属グラフの記述を特定する工程と、
ゲームの実行中にインタラクティブレートで前記第１従属グラフを評価する工程、とを備える方法。
【請求項１３】
請求項１２に記載の方法であって、
前記制御要素の状態に基づき、前記第１従属グラフの記載において複数ノードにより記載されているオブジェクトを表示する工程をさらに備える方法。
【請求項１４】
請求項１３に記載の方法であって、
前記オブジェクトを表示する工程は、前記複数ノードにより記述された前記複数要素全体に網目又は皮膚をアニメーション化することを備える方法。
【請求項１５】
請求項１３に記載の方法であって、
前記複数ノードの少なくともひとつにおけるカウンタを更新する工程、をさらに備える方法。
【請求項１６】
請求項１３に記載の方法であって、
前記複数ノードのひとつにおけるカウンタが前記複数ノードのひとつの親におけるカウンタと同等ではないことを定める工程と、
前記複数ノードのひとつを更新するよう要求する工程とを、さらに備える方法。
【請求項１７】
請求項１２に記載の方法であって、
前記第１従属グラフの記載を評価することにより派生するデータに少なくとも部分的に基づいて、少なくとも第１オブジェクトの一部分をアニメーション化する工程と、
前記第１従属グラフを評価する工程に続く切り替え事象を識別する工程と、
切り替え事象を識別する工程に続く第２従属グラフの記載を評価することにより派生するデータに少なくとも部分的に基づいて、少なくとも前記第１オブジェクトの一部分をアニメーション化する工程をさらに備える方法。
【請求項１８】
請求項１２に記載の方法であって、
ふたつの源アニメーション曲線を組み合わせる工程をさらに備え、前記第１従属グラフの評価は組み合わせた源アニメーション曲線に基づいて行われる方法。
【請求項１９】
請求項１２に記載の方法であって、
ゲームの実行中に評価された、前記第１従属グラフと第２従属グラフとの間の関係を識別する工程をさらに備える方法。
【請求項２０】
請求項１２に記載の方法であって、
前記源アニメーション曲線データを使った源計算機上にアニメーション化された時のオブジェクトの動きに比較して、動きに損失のないオブジェクトをアニメーション化する工程を備える方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は全般に、ゲーム機における要素のアニメーション化、及びさらに具体的にはゲーム機を使う従属グラフ評価に関する。
【背景技術】
【０００２】
ゲーム機は、そのユーザに双方向の体験をもたらす。ゲーム機は、他の目的のほかに娯楽目的、教育目的、又は両者の組み合わせに使うことができる。例えば、ゲームでユーザを冒険の旅に案内したり、ゲームでユーザに数学の問題に答えさせたりする。ユーザはコマンドをゲーム機に入力し、入力されたコマンドの結果を表示装置上で見ることがある。これら表示された結果は、ユーザ入力、ゲームに登場するキャラクター、及びキャラクター同士又はゲーム環境や風景との相互作用を含む種々の要因に基づいて、ゲーム機により多くの場合アニメーション化される。このように、開発者はゲームに登場する要素をアニメーション化するための改良された方法及び装置を追求し続ける。
【発明の概要】
【０００３】
一実施形態にはゲームアニメーションシステムが含まれる。このゲームアニメーションシステムには、ゲームを実行するように構成されたプロセッサと、制御要素の状態における経時的な変化を記述する源アニメーション曲線データと、源アニメーション曲線データについての変換を定義する第１従属グラフの記述と、ゲームの実行中にインタラクティブレートで第１従属グラフを評価するエンジン、とが含まれる。
【０００４】
他の実施形態には、ゲームアニメーションシステム上でゲームを実行する方法が含まれる。この方法には、制御要素の状態における経時的な変化を記述する源アニメーション曲線データを特定することと、源アニメーション曲線データについての変換を定義する第１従属グラフの記述を特定することと、ゲームの実行中にインタラクティブレートで第１従属グラフを評価すること、とが含まれる。
【０００５】
更に他の実施形態には、ゲームアニメーションシステムが含まれる。このゲームアニメーションシステムには、ゲームを実行するように構成されたプロセッサと、制御要素を表すデータであって、制御要素の状態の変化が複数の他要素の向きの変化と関連することと、制御要素の状態の変化を記述する源アニメーション曲線データと、源アニメーション曲線データについての変換を定義する第１従属グラフの記述と、ゲームの実行中にインタラクティブレートで第１従属グラフを評価するエンジン、とが含まれる。
【０００６】
更に他の実施形態には、ゲームアニメーションシステムが含まれる。このゲームアニメーションシステムには、第１オブジェクトの少なくとも一部分をアニメーション化するための第１従属グラフの記述と、第１従属グラフに基づき複数のサブネットワークを識別するよう構成されたアニメーションエンジンと、複数のプロセッサとが含まれ、該第１オブジェクトは複数の相関要素により少なくとも部分的に定義され、各サブネットワークは第１従属グラフ内の複数ノードを備えて、各サブネットワークにおける複数ノードは少なくともふたつの相関要素の経時的な動きを記述し、各プロセッサは、第１従属グラフにおける残りのノードとは独立した少なくともひとつのサブネットワークを評価して、該少なくともひとつのサブネットワークの少なくともふたつの相関要素に関連する動きをアニメーション化するよう構成されている。該少なくともふたつのサブネットワークは、明確に区別されたプロセッサにより評価される。
【０００７】
他の実施形態には、ゲーム機で要素をアニメーション化する方法が含まれる、この方法には、第１オブジェクトの少なくとも一部分をアニメーション化するための第１従属グラフの記述を供給することと、それぞれが第１従属グラフ内の複数ノードを備える、複数のサブネットワークを識別することと、各サブネットワークをゲーム機の複数のプロセッサのひとつに割り当てることと、少なくともひとつのサブネットワークにおけるノードを、該サブネットワークが割り当てられたプロセッサとともに評価して、該サブネットワークの該少なくともふたつの相関要素に関連付けられた動きをアニメーション化すること、とが含まれ、該第１オブジェクトは複数の相関要素により少なくとも部分的に定義され、各サブネットワークにおける複数ノードは少なくともふたつの相関要素の経時的な動きを記述し、従属グラフにおける残りのノードとは独立して評価することができ、少なくともふたつのサブネットワークは明確に区別されたプロセッサに割り当てられる。
【図面の簡単な説明】
【０００８】
【図１】複数のプロセッサを含むゲームアニメーション用装置の例を説明する図である。
【図２】網目オーバーレイ付きの骨組み、制御要素、及びアニメーション曲線を有するオブジェクトの一部分の一例を説明する図である。
【図３】図２の骨組みの一部分を説明する図であって、制御点をアニメーション曲線に沿って動かしたものである。
【図４】図２の骨組みの要素等をアニメーション化するための従属グラフの一部分の例を説明するブロック図である。
【図５】ゲーム中のアニメーション用従属グラフを作成及び評価する方法の例を説明するフローチャートである。
【図６】従属グラフの評価方法の例を更に説明し、従属グラフからノード値を検索することを説明するフローチャートである。
【図７】源から従属グラフ内のノードをエキスポートする方法の例を説明するフローチャートである。
【図８】図１で説明したような複数のプロセッサを使って従属グラフを評価する方法の例を説明するフローチャートである。
【図９】世界座標空間に定められた位置を有する要素の一例を説明する図である。
【図１０】局所座標空間に定められた位置を有する図９の要素の一例を説明する図である。
【図１１】相互作用してよいふたつの従属グラフの部分の例を説明するブロック図である。
【図１２】メタネットワークに分類された、図１１のふたつの従属グラフの部分の例を説明するブロック図である。
【図１３】ふたつの異なるアニメーション曲線により異なる位置に配置されたオブジェクトの例図である。
【図１４】図１３の異なる位置におけるオブジェクトと、異なる位置を均分化することで定められる中間位置におけるオブジェクトの例図である。
【図１５】図１３の異なる位置におけるオブジェクトと、アニメーション曲線を均分化することで定められる中間位置におけるオブジェクトの例図である。
【発明を実施するための形態】
【０００９】
以下の詳細な記載は特定の例及び実施形態に関するものである。しかし、本発明の構造及び動作は、ここに記載された例及び実施形態に限定されない。加えて、このような例や実施形態及びこれに関して記載された態様を実施するための多くの異なる方法がある。ここで開示されたいずれの具体的構造および/または機能も単に代表的なものであることは明らかである。当業者は、開示された態様を種々の方法で省略、分割、又は組み合わせてよいことを理解するであろう。例えば、ここに記載される態様のひとつ以上に加え又はそれ以外に他の構造、機能性、又は構造及び機能性を使って装置が実施されてよいし、方法が実行されてよい。
【００１０】
ゲーム機のユーザは、より複雑なゲームプレイ及びこのようなゲームプレイに関連付けられたより複雑なグラフィックスを期待するようになった。ゲームはもはや各画面の最後にゴールがある２次元風景ではなく、むしろ多くの場合、架空の世界や宇宙全体を表したり入り組んだプロットに関連付けられた３次元風景である。多くのゲームでは、ユーザへの視覚的な衝撃が、ゲームの他の側面と同様に重要であり、ユーザに関心を起こしプロットの説明において支援がなされる。より複雑なグラフィックスによって、ゲーム内での相互作用がより詳細になる。
【００１１】
ゲーム機のユーザからの、改善したゲームグラフィックスへの高まる期待が、グラフィックスをデザイン作成するアニメータにかかる責任も同様に高めた。アニメータは、グラフィックスが色彩豊か及び視覚的に刺激的であるよう保証しなければならず、また以前はゲーム機を使ってアニメーション化するのが不可能であった微細な部分を含まなければならい。加えて、ユーザは、キャラクターの体が正確に動き、またゲーム内での相互作用が信用できることを求める。人間のキャラクターを含むゲームは、一般に人間のキャラクターを実物そっくりに描写しなければならない。
【００１２】
しかし、改善したゲームグラフィックスが、ゲーム開発に問題を起こした。例えば、アニメータがゲーム機ユーザの期待に応えるよう奮闘するにつれ、グラフィックスの詳細すべてをエンコードするのに必要なデータの量が増えてしまった。このようなデータの増加により、データを記憶及び移動させるといったロジステックの問題が起こった。多くの場合、アニメータにより作成されたような、グラフィックスを表すデータは圧縮されたり場合によっては量を減らさなければならない。結果として、ユーザが眺めるアニメーション及びグラフィックスは、アニメータにより作成されたものとは異なってしまう。
【００１３】
一実施形態において、アニメータ又は他の人は、少なくともオブジェクトの一部分をアニメーション化する際に使う源で従属グラフを作成する。加えて、アニメータは、制御要素の状態の変化を表す少なくともひとつのアニメーション曲線を作成する。この従属グラフ及びアニメーション曲線はゲーム機へエキスポートされる。ゲーム機は、ゲームの実行中に従属グラフを評価して、アニメーション曲線を使用するオブジェクトに関連付けられた要素をアニメーション化する。動きは、アニメータにより作成された動きと比べて損失なくゲーム機ユーザにより眺められる。
【００１４】
一実施形態において、従属グラフは少なくともふたつのデータ構造内にエキスポート又は記憶され、第１データ構造には空間的又は時間的値を表すグラフのノードが含まれ、第２データ構造には関係を表すグラフのノードが含まれる。他の実施形態において、従属グラフはゲーム機の複数のプロセッサにより評価されてよい。さらに他の実施形態において、従属グラフのサブネットワークが別々に識別され及び操作されてよい。さらに他の実施形態において、アニメーション曲線は従属グラフを使って評価のために組み合わせることができ、また、再構成された従属グラフや個別の従属グラフを使って逆運動学を行うことができる。
【００１５】
図１は、ゲームアニメーション用装置１００の例を説明する図である。ゲーム機１００は、ゲームを実行し、ゲームの実行中にアニメーションを生み出すように構成される。ゲーム機１００は、更にユーザからの入力を受信して処理し、このようなユーザ入力の結果を表示するためのデータを提供するように構成される。
【００１６】
ユーザはコマンドを入力装置１１４を使って入力する。入力装置１１４はユーザをゲーム機１００と相互作用させるものであればどのような装置でもよい。例えば、入力装置１１４は、他の装置や機構のほかにキーボード、ジョイスティック、コントローラ、マイク、カメラ、キーパッド、又は一連のボタン、を備えてよい。
【００１７】
ゲーム機１００はグラフィックス及びアニメーションを表示装置１１６へ出力する。表示装置１１６は、表示用データを受信しそれを視覚的にユーザに提示するものであればどのような装置でもよい。例えば、表示装置１１６には、他の装置や機構のほかに陰極管、複数の発光ダイオード(LEDs)、液晶ディスプレー(LCD)、又はプロジェクタが含まれてよい。
【００１８】
ゲーム機１００には、複数のプロセッサ（１０４a、１０４b、１０４c、及び１０４d）を有する中央処理装置(CPU)１０２が含まれる。プロセッサ１０４a-１０４dはコアとも呼ばれる。４つのプロセッサ１０４a-１０４dが図１に図解さているが、ゲーム機１００にはそれより多くの又は少ないプロセッサが含まれてよい。プロセッサはCPU１０２の内部又は外部に設けられてよい。CPU１０２には１つ以上のプロセッサが含まれてよい。例えば、CPU１０２にはひとつのプロセッサ、３つのプロセッサ、又は８つ以上のプロセッサが含まれてよい。CPU１０２および/またはプロセッサ１０４a-１０４dのうち少なくともひとつは、入力装置１１４及び表示装置１１６と通信状態にある。
【００１９】
ゲーム機１００には、CPU１０２および/またはプロセッサ１０４a-１０４dのうち少なくともひとつと通信状態にある揮発メモリ１０６がさらに含まれてよい。揮発メモリ１０６はダイナミックランダムアクセスメモリ(DRAM)又はスタティックランダムアクセスメモリ(SRAM)といったある種類のランダムアクセスメモリ(RAM)を備えてよいし、また他のタイプの揮発メモリを備えてよい。揮発メモリ１０６を使用して、CPU１０２および/またはプロセッサ１０４a-１０４dのひとつの動作中にデータおよび/または指示を記憶してもよい。当業者は他のタイプの揮発メモリ及びそれを使うことを認めるであろう。
【００２０】
ゲーム機１００には、CPU１０２および/またはプロセッサ１０４a-１０４dのうち少なくともひとつと通信状態にある不揮発メモリ１０８がさらに含まれてよい。不揮発メモリには、フラッシュメモリ、磁気記憶装置、ハードディスク、又は消去可能プログラマブル読取り専用メモリ(EPROM)といった読取り専用メモリ(ROM)、又は他のどんなタイプの不揮発メモリが含まれてよい。不揮発メモリ１０８を使用して、ゲーム指示、キャラクター情報、ゲーム状況情報、又はゲーム機１００への電力が除去された場合に保持されるべき他のどんな情報を記憶してよい。ゲーム機１００は、追加の不揮発メモリを装着したり一時的に設置するためのインターフェースを備えてよい。当業者は、他のタイプの不揮発メモリ及びそれを使うことを認めるであろう。
【００２１】
CPU１０２および/またはプロセッサ１０４a-１０４dのうち少なくともひとつと通信状態にあるグラフィックス処理装置(GPU)１１０は、プロセッサのひとつにより供給された表示装置上１１６に表示するデータを描画する。GPU１１０は、表示装置１１６上に表示するデータを提供する事に関する機能をいくつでも行うよう構成されてよい。例えば、GPU１１０は、他の機能のほかに複数の多角錐を描画する、影やテクスチャを加える、３次元環境を表すデータを作成する、座標空間の間を変換するように構成されてよい。GPU１１０は図１に図解されるようにCPU１０２の外部にあってもよいし、および/またはCPU１０２の内部あるいはCPUtと一体化してもよい。当業者は、GPU１１０の他の構成及び機能性を認めるであろう。
【００２２】
ゲーム機l００には、CPU１０２および/またはプロセッサ１０４a-１０４dのうち少なくともひとつと通信状態にあるディスク駆動装置１１２がさらに含まれてよい。ひとつ以上のプロセッサディスク駆動装置１１２に挿入されたディスクからのデータを読み出してよい。ある実施形態では、ゲーム機１００は、ディスク駆動装置１１２を使ってディスク上のデータを記録するように構成されている。このようにして、ゲームプレイ及びアニメーションに関するデータはゲーム機１００へ又はゲーム機１００から送られてよい。例えば、多くのゲームはコンパクトディスク(CD)又はデジタルバーサタイルディスク（DVD)のかたちで販売される。これらゲームの大多数は、ゲームをするのに必要なすべての情報（キャラクター、プロット、及びアニメーションデータ）がディスクに含まれるかたちで生産される。このように、ユーザはゲーム機１００で実行するためのゲームが入ったディスクを購入することがある。ゲームは不揮発メモリ１０８に記憶されてもよい。
【００２３】
ゲームエンジンはゲーム機１００に記憶されている。ゲームエンジンには、ゲームを実行するのに使うことができる指示やデータが備えられている。ゲームが初期化されると、ゲームエンジンはゲームプレイを開始する。ゲームプレイ中は、エンジンは、ゲーム内の場面や瞬間に関連付けられたグラフィックス及びアニメーションを提供する。これらグラフィックス及びアニメーションは、表示装置１１６上に表示される。ユーザが入力装置１１４を使ってコマンドを入力する時、ゲームエンジンはコマンドを評価してゲームの実行へのコマンドの効果を定める。これら効果は、ユーザに表示されるグラフィックス及びアニメーション内に反映されてよい。例えば、ユーザはキーパッド上のボタンを押してゲームのキャラクターにドアを開けさせてよい。
【００２４】
ゲームエンジン１００は、CPU１０２、プロセッサ１０４a-１０４d、GPU１１０、又は不揮発メモリ１０８のいずれにおいても完全に又は部分的に実施又は記憶されてよい。ゲームエンジンには一組の指示やデータが備えられてよいし、複数組が備えられてよい。例えば、ゲームエンジンはグラフィックスまたは描画エンジンといったアニメーションエンジンとして、及びユーザの入力がゲームのプロットにどう影響するかを定めるための個別のエンジンとして実施されてよい。
【００２５】
ゲームエンジンに加え、ゲーム機１００には他の機能性及びゲームを実行するためのサブシステムが記憶又は実施されてよい。例えば、このようなサブシステムには描画システム、ゲーム保存システム、物理システム、及び特殊効果システムが含まれる。
【００２６】
ゲーム機１００は上述の装置、構成、及び機能性に限定されない。例えば、揮発メモリ１０６、不揮発メモリ１０８、GPU１１０、ディスク駆動装置１１２、入力装置１１４、及び表示装置１１６が単数で図解されているが、装置のいずれもゲーム機１００の内部又は外部に複数で実施されてよい。加えて、ゲーム機l００には電源又はネットワークアクセス装置が備えられてよい。当業者はゲーム機１００の他のこのような構成を認めるであろう。
【００２７】
ここに記載された構成部品は種々のシステム及び装置で実施されてよい。例えば、ゲーム機１００には、アーケード機器、ソニープレイステーション３、又はマイクロソフトXBOX３６０といったゲームを実行するために設計されたコンソールが備えられてよい。ゲーム機１００にはまた、ラップトップ、デスクトップ、又はパソコンといった、ゲームを実行するために構成された一般の計算機が備えられてよい。
【００２８】
ゲーム機１００による表示用グラフィックス及びアニメーションは、いくつもの方法及び装置を使っても作成することができる。オートデスク社が販売するMAYA等のモデリングソフトウエアはたいてい、特に３次元環境を表すグラフィックス及びアニメーション生成する時に使用される。このようなソフトウエアを使って、アニメータはゲーム機１００のゲームエンジンで使うことができるオブジェクト及びオブジェクトについての動きを作成して、表示装置１１６上に表示用データを提供することができる。
【００２９】
図２は、上述のようにソフトウエアを使って作成されたオブジェクト２００の一部分の一例を説明する図である。図解の実施形態において、オブジェクト２００は人間の形として表され、またオブジェクトの一部分には、その肩及び腕を備えられている。しかし、オブジェクト２００はどのようなオブジェクトでもよい。例えば、オブジェクトには、人間又は人間以外のキャラクター、武器又は食べ物といった物、建物を含む壁又は構造物、岩又は木等の風景要素、又はアニメータが図解したいと思う他のどんなオブジェクトが備えられてもよい。ここでのオブジェクトの記載はすべてのこのようなオブジェクトに同様に当てはまる。
【００３０】
オブジェクト２００の構造は複数の相関要素（２０２a、２０２b、２０４a、２０４b、２０６）を使って定義されてよい。これら相関要素を使ってオブジェクト２００の“骨組み”を作成する。この要素によりオブジェクト２００の形状及び物理的制約条件を定義する。
【００３１】
図解の実施形態において、要素（２０２a、２０２b）は位置及び向きを変更するように構成されるが、その形状及び大きさは実質的に固定されている。しかし、要素（２０４a、２０４b）は、要素（２０２a、２０２b）を回転させる位置を定義する関節として構成される。
【００３２】
オブジェクトを定義する相関要素は従属グラフにより関連付けてよい。従属グラフは、各要素がどのように他要素に接続しているか及び各要素が他要素に対してどのように動くかを定義する階層ノードを含んでいる。このようにして、アニメータは、ゲーム内で起こりうるあらゆる場面又は構成についてのオブジェクトのあらゆる詳細を図解又はアニメーション化する必要はない。例えば、人が自分の肩を回す時、その人の前腕及び手が動くと理解される。同様に、図２で図解されるオブジェクト２００は、要素２０４aの周りの回転要素２０２aが要素（２０２b、２０４b）の位置又は向きを変化させるように構成することができる。従属グラフの内容及び動作は以下により詳細に記載される。
【００３３】
アニメータは各オブジェクトについて従属グラフを作成することができる。加えて、オブジェクトの部分又は複数のオブジェクトは従属グラフにより関連付けてよい。ゲーム中に表示されるどんな場面においても、複数の従属グラフが表されてよい。例えば、ある場面での各キャラクターはアニメータにより個別の従属グラフでモデル化されている可能性がある。従属グラフ内の各ノードに値及び制約条件を割り当てることで、アニメータはオブジェクトがどのように形成され及びオブジェクトがどのように動くかを制御できる。もしアニメータがオブジェクトを動かしたくないなら、これも従属グラフ内で定義することができる。例えば、アニメータは骨組みを作成して壁の形状を定義してよく、壁の要素が相互に関係して動けないように、値をその壁についての従属グラフのノードに割り当てる。
【００３４】
要素２０６は制御要素である。これには要素（２０２又は２０４）のいずれかのタイプ又は別なタイプの要素が備えられてよい。アニメータは制御要素を定義して、オブジェクト２００の位置又は向きを調節する工程を簡素化してよい。各オブジェクト及び従属グラフは複数の制御要素を有してよい。
【００３５】
制御要素の状態の変化はアニメーション曲線により記述することができる。図解の実施形態において、制御要素２０６の位置変化はアニメーション曲線２０８により記述することができる。制御要素２０６は最初に時間t１において第１位置２１０aに位置する。制御要素２０６は、アニメーション曲線２０８に沿って経時的に動かしてよい。図３に図解されるように、時間t６において、制御要素２０６は第２位置２１０bに位置するようにアニメーション曲線２０８に沿って動かされた。
【００３６】
制御要素が状態を変化させると、ひとつ以上の他要素が影響を受ける可能性がある。図解の実施形態において、アニメーション曲線２０８に沿った制御要素２０６の移動により要素（２０２a、２０２b、２０４a、２０４b）が動かされる。このような他要素の移動は、オブジェクト２００についての従属グラフで定義される制約条件により起こる。このように、図２及び３に図解されるように、キャラクターの手の動きによりキャラクターの腕及び肩の適切な解剖学的移動が行われるように、従属グラフを構成することができる。したがって、異なる位置に制御要素２０６を図解したいと思うたびに、アニメータは各要素（２０２a、２０２b、２０４a、２０４b）の位置を手動で設定する必要がなく、オブジェクト２００の従属グラフを評価することで自動的に算出できる。
【００３７】
制御要素は空間の単一点に限定されず、アニメーション曲線は要素の経時的な経路に限定されない。制御要素及びアニメーション曲線を定義して、いくつもの要素に対しても何種類の方法でも作用することができる。例えば、制御要素キャラクターの手を記述する従属グラフについて定義して、制御要素の状態を調節して手が幾分か開くか閉じた状態にすることができる。アニメーション曲線は制御要素の変化を記述し、そして抽象的値を備えてよい。例として、キャラクターの手を開いたり閉じたりするための制御要素は、制御要素が１から１０までのどの値に割り当てられてもよいように定義されている（１が手が開いていることを表し、１０が手が閉じていることを表す）。１と１０の間のどの値も手が部分的に開いているか閉じていることを表す。この制御要素についてのアニメーション曲線は、一定時間にわたる、所定組の手を開ける又は閉じる動作を記述する一連の時系列の数字を備えていてもよく、各数字は１から１０までのある値を有する。このように、手を握りしめる繰り返し動作を定義するアニメーション曲線は、一連の数{８、９、１０、９、８、７、８、９、１０、９、８、９、１０}を有するかもしれない。同様に、１から１０までのある値に割り当てられてよい制御要素は、１がドアが閉じていることを表し、１０はドアがいっぱいに開いていることを表すように、ドアに関連付けられてよい。ある実施形態では、制御要素を使用してある要素又は複数要素の色、影、又はテクスチャを調節する。
【００３８】
アニメーション曲線は所定の行動についての動きを表してよい。図解の実施形態において、アニメーション曲線２０８は、キャラクターが自分の手を伸ばして別のキャラクターと握手することを表してよい。別の例として、制御要素はキャラクターの足及びキャラクターが歩くのをアニメーション化するために定義されたアニメーション曲線に定義されてよい。ゲームプレイ中に、ユーザがキーパッドの左ボタンを押すことでこのアニメーション曲線が呼び出されてよく、キャラクターの足の制御点を動かすことでアニメーション曲線に沿ってキャラクターを左へ歩かせる。
【００３９】
アニメーション曲線は何種類の方法によっても記憶したり表すことができる。例えば、アニメーション曲線は一連の値、データ構造、又は制御要素を操作するための一組の実行可能な指示として記憶されてよい。アニメーション曲線はプロットされた機能又は他の視覚的方法で表されることがあり、あるいは任意のアニメーション曲線を視覚的に表す理解しやすい方法がないことがある。当業者は、アニメーション曲線が記憶され、定義され、又は表されてよい他の方法を認めるであろう。ここで記載されたアニメーション曲線は、特定のモデリングソフトウエアプログラム、例えばMAYAで実施されてよい。
【００４０】
骨組みは皮膚又は網目２１２と重ねられまたは結合されてよい。網目２１２はオブジェクト２００の外観を定義してよく、一方、骨組みは下にある構造及びオブジェクト２００の移動を定義する。このように、骨組み又はその一部分は、網目が骨組み又はその部分を覆うと視聴者から見えなくなる可能性がある。図解の実施形態において、網目２１２はオブジェクト２００の図解部分に人間の肩、腕、及び手の外観を与えるように構成される。いずれかの要素（２０２a、２０２b、２０４a、２０４b、又は２０６）が動かされると、網目が新しい位置を覆って、腕が位置を変えたという外観を作り出す。
【００４１】
網目２１２は、要素（２０２a、２０２b、２０４a、２０４b、２０６）が伝えるよりも、更に認識しやすい像をユーザに伝えるだけでなく、網目２１２は要素（２０２a、２０２b、２０４a、２０４b、２０６）の移動により影響を受けない微細な部分を図解するために使用してもよい。例えば、骨組みは車の構造を表すために定義されてよい。車が位置を変える間、車の大部分はドア、ボンネット、トランク、タイヤ、及び窓を除いて、その車の残りの部分に応じては動かない。網目は、場面内で位置が変わることがある入り組んだ曲線及びモールディングを定義する車の骨組みに結合させることができるが、さもなければ車の他の部分に対しては決して向きが変わることがない。これら曲線又はモールディングの細部のそれぞれについて構造要素を定義することは、アニメータに更なる利益をもたらさない。
【００４２】
定義された制約条件及び動き、制御要素、及び網目を伴う骨組みは「リグ」と呼んでよい。これら要素を作成すること及びこれらを一緒に関連付けることを「リギング」と呼んでよい。リギング処理が完了すると、オブジェクトは一般にアニメーション化する準備ができる。アニメータは、制御要素を調節及びアニメーション曲線を定義して、オブジェクトについての動き及び行動をアニメーション化することができる。「リグ」はまた時として網目のないこのような骨組み及び制御要素を指すこともある。当業者はリグ及び従属グラフを作成する種々の方法、またこのようなリグ及び従属グラフを作成できることを認めるであろう。
【００４３】
図４は、図３の骨組みの要素２０６等の要素又はリグをアニメーション化するための従属グラフ４００の一部分の例を説明するブロック図である。従属グラフ４００の図解部分には複数ノード４０２-４１６が含まれる。ノードには、ノード（４０２、４０６、４０８、４１２、４１６）等の値を記憶するノード及びノード（４０４、４１０、４１４）等の機能ノードの両方が含まれる。図２に記載された値ノード(４０２、４０６、４０８、４１２、４１６)がオブジェクトに関連する情報を記憶している場合、値ノード(４０２、４０６、４０８、４１２、４１６)は空間的又は時間的値を記憶してよい。機能ノードは値ノードにおけるデータに基づいた結果を算出してよく、値ノード間の関係を定義してよい。
【００４４】
値ノードは、変数又は浮動小数点数等の値、データ構造、又はデータの列又は集積として記憶又は実施されてよい。機能ノードは、演算、数学関数、コマンドの集合、又は実行可能な指示として記憶されてよい。ある実施形態では、値ノードは機能ノードの属性等において機能ノードと一体化してよい。ある実施形態では、従属グラフのノードは形状又は地形情報、色情報、又はテクスチャ情報を保持してよい。同様に、このようなノードを含む従属グラフ又はこのような従属グラフの一部分はデータ構造又は一連のデータ構造、コマンド又は実行可能な指示、又は一連のつながったノードとして記憶又は実施されてよい。当業者は、従属グラフ及びそのノードが記憶され、定義され、表され、又は実施されてよい他の方法、またノードが記憶してよい追加情報を認めるであろう。ここに記載した従属グラフ及びノードは特定のモデリングソフトウエアプログラム、例えばMAYAによって実施されてよい。
【００４５】
図解の実施形態において、従属グラフ４００の一部分は左から右へ評価されてよい。このようにして、従属グラフ４００の一部分は評価されゲーム内の時間tgを要素の最終的な向きに変換してよい。こうするには、従属グラフ４００の一部分によりアニメーション曲線についての変換が定義される。ある実施形態では、従属グラフ４００の一部分もまたあるいは代わりに右から左へ評価されてよく、又は右から左へ評価できるように再構成されてよい。
【００４６】
ゲーム内の時間tgはノード４０２で記憶又は識別される。ノード４０４では、tgはアニメーション曲線に沿った時間tcに変換され、ノード４０６で記憶又は識別される。例えば、アニメーション曲線は上述のようにキャラクターが歩くのを表してよい。しかし、アニメーション曲線に関連付けられた動きをアニメーション化するにはわずか５秒しか要さない。キャラクターの前の動作又はキャラクターが歩いた時間の量に基づき、ノード４０４では、例えばキャラクターがアニメーション曲線に３秒間変化している又はアニメーション曲線が６０％完了したと定められてよい。図２に関して、ユーザがゲームを２０分(したがってtgは２０分に等しい)行ってきたかもしれないが、アニメーション曲線２０８に関連付けられた動きは始まったばかりだと定められてよく、そこでtcはt１に等しいと定められる。この値はノード４０６で記憶されてよい。
【００４７】
ノード４１０では、アニメーション曲線に沿った時間はアニメーション曲線４０８又はその一部分と共に評価されてその時間での要素の位置を定める。図２に関して、アニメーション曲線２０８は、それぞれノード４０８x、４０８y及び４０８zで表された、x平面内の曲線、y平面内の曲線、ｚ平面内の曲線に分割されてよい。これら各曲線部分４０８x、４０８y及び４０８zは、時間tcにおいてノード４１０x、４１０y及び４１０zでそれぞれ評価される。要素のx、y及びz位置は、それぞれノード４１２x、４１２y及び４１２zで記憶されてよい。このように、ノード４１２x、４１２y及び４１２zは、それぞれ要素２０６のx、y及びz位置を時間t１において記憶する。
【００４８】
要素の向きは、それぞれノード４１４及びノード４１２x、４１２y及び４１２zで識別されたx、y及びz位置を使ってノード４１６で記憶又は識別できる。この向きには、他のこのような向きデータのほかにあらかじめ識別されたx、y及びz値等の向きを記述するどんな量のデータおよび/または要素の回転が備えられてもよい。図３に関して、ノード４１６は時間t１における要素の向き２０６を記憶又は識別するが、これは位置２１０aに等しい。
【００４９】
当業者は、従属グラフには図４に図解するものより多いノードが含まれてよく、又は従属グラフには上記に記載されたものより多いか少ない値又は機能が備えられてよいと認めるであろう。例えば、従属グラフ４００の部分の多くがつながってオブジェクト２００等のオブジェクトの動きを定義してよい。例えば、図２の要素２０４aを回転させることを考える。要約すると、要素２０４aの回転で以下のようになる。要素２０４aの回転に基づき従属グラフの一部分を評価することにより、要素２０２aの新たな位置が定められる可能性があり、要素の位置２０２aに基づき従属グラフの一部分を評価することにより、要素２０４bの新たな位置が定められる可能性があり、要素の位置２０４b及び要素の回転２０４bに基づき要素２０２bの新たな位置が定められる可能性があり、及び要素の位置２０２bに基づき要素２０６の位置が定められる可能性がある。このように、従属グラフが評価されて、従属グラフで表されたオブジェクトのどんな要素の向きを定めてよい。
【００５０】
上述のように従属グラフを評価する時、「親」ノード（従属グラフの階層で高位に位置するどれかのノード、図２に図解するオブジェクト２００の実施形態においては、任意の図解された要素の左に位置するオブジェクト２００の要素を表す従属グラフのどれかのノードが、その任意の要素を表すノードに対する親ノードとなる）の値が変化する時に、ノードの値が変化することがある。このように、あらかじめ定められた値はもはやどのノードについての値でもないことがある。これを示すためには、各値ノードにはその中の値がまだ有効であるかどうかのインジケータが含まれてよい。例えば、以下により詳細に記載されるように、ノードにはノードが汚れている(すなわち値が変化した)ことを示すフラグ、又は値が変化したかを定めるために使用してよいカウンタや妥当性インジケータが含まれてよい。
【００５１】
図５は、アニメーションゲーム中について図４に図解する従属グラフの一部分等、の従属グラフを作成及び評価するための方法５００の例を図解したフローチャートである。ブロック５０２において、アニメータは従属グラフを作成する。アニメータは、ラップトップ、デスクトップ、又はパソコン等の計算機を使って又は従属グラフを作成させるどれか他の装置、又はここに記載したリグを使って従属グラフを作成してよい。このような装置を源と呼んでよい、というのはアニメータの作成の源だからである。
【００５２】
ブロック５０４において、アニメータは源装置又は他の源装置を使って従属グラフに関連付けられたアニメーション曲線を作成する。以下、このようなアニメーション曲線源アニメーション曲線と呼んでよい、というのは源装置で作成されるからである。上述のように、アニメーション曲線は従属グラフの制御要素の状態変化を記述してよい。従属グラフは、今度は、アニメーション曲線についての変換を記述してよい。
【００５３】
ブロック５０６において、アニメーション曲線及び従属グラフデータがエキスポートされる。これには、アニメーション曲線と従属グラフが図１に図解されたゲーム機１００等のゲーム機により使用してもよいように、アニメーション曲線及び従属グラフをまとめること、又はアニメーション曲線や従属グラフを圧縮することを伴ってよい。ある実施形態では、ブロック５０６には従属グラフとアニメーション曲線データをディスクに焼くことが備えられる。他の実施形態において、ブロック５０６には従属グラフとアニメーション曲線データをゲーム機１００で読取り可能な実行可能ファイルにまとめることが備えられる。
【００５４】
ブロック５０８において、アニメーション曲線及び従属グラフデータがゲーム機にロードされる。図解のゲーム機１００において、従属グラフとアニメーション曲線データはひとつ以上の揮発メモリ１０６、不揮発メモリ１０８、CPU１０２、又はプロセッサ１０４a-１０４dのいずれかにロードされ又は記憶されてよい。従属グラフデータ及びアニメーション曲線データは種々の方法を使ってゲーム機１００に送られてよい。例えば、従属グラフとアニメーション曲線データはディスクに記憶されてよく、ディスクはディスク駆動装置１１２にロードされて、ゲーム機１００に従属グラフとアニメーション曲線データを供給してよい。ある実施形態では、従属グラフとアニメーション曲線データはネットワークを介して送信されて、ネットワークインターフェースを使ってゲーム機１００で受信される。
【００５５】
ブロック５１０におけるゲームの実行中に従属グラフが評価される。一実施形態において、従属グラフはゲームエンジンにより評価される。このような実施形態において、ゲームエンジンはグラフ内の各ノードを順次評価してよい、又は汚れたノードのみを評価してよい。評価には他の演算のほかにノード内に記憶された指示を読み取ること又はゲームエンジンで定義された処理をノードに記憶された値又は機能を使って行うことが備えられてよい。この評価にはまた階層的実行可能な指示を処理したり引き起こすことが備えられてよい。従属グラフを評価する方法例の実施形態はより詳細に以下に記載される。
【００５６】
上述のように、従属グラフが源装置で作成された。当業者は、源装置で作成されたこの従属グラフがゲーム機で評価されると理解するであろう。従属グラフは、ゲーム機ユーザとの相互作用を維持するようにリアルタイムに評価されてよい。このようにして、ユーザの入力に対するゲーム機の応答又はゲーム要素のアニメーションは滞ったり遅れることはない。このように、従属グラフはゲーム実行中の従属グラフの評価によって、ゲームの実行又はユーザからの入力に対するゲームの応答に実質的中断が生じないようにインタラクティブレートで評価されてよい。
【００５７】
図６は、図１に図解された装置１００に関して記載されたゲームエンジン等のゲームエンジンとともに従属グラフを評価する方法６００の例を更に説明するフローチャートである。この方法６００は図５のブロック５１０を実行中に行ってよい。
【００５８】
ブロック６０２において、ノード値が要求される。例えば、図２-４に関して上述したように、ノード値は、アニメーション曲線に照らしてオブジェクト又はその一部分をアニメーション化するために要求されてよい。複数要素の向きはアニメーション曲線に沿った各点で変化することがあるので、エンジンによりノードの値が要求される。ノードで返送された値を使用して表示用アニメーションデータを図１に図解された表示装置l１６上等に供給してもよい。
【００５９】
ブロック６０４において、ノード値が有効かどうかが定められる。このような決定には上述のような妥当性インジケータを利用する。例えば、ゲームエンジンは汚れたフラグをチェックしてノードの現在値が例えば親ノードが変化したことによりそこに記憶されたものと異なるかをみてよい。ゲームエンジンは、以下により詳細に記載されるように、ノード内カウンタに少なくとも部分的に基づきこのような決定を行う。
【００６０】
ノードが有効なら、ゲームエンジンはブロック６１２に進み、そこでノードの値が返送される。ノード値が無効なら、ゲームエンジンはブロック６０６に進む。
【００６１】
ブロック６０６において、ノードを有効にするよう要求される。ノードを有効にするには、現行ノードが依存するノード(たとえば、ブロック６０２において値が要求されたノード)がブロック６０８において定められる。ここで記載された従属グラフについて、現行ノードよりも従属グラフの上の階層にあるノードはブロック６０８において識別される。
【００６２】
そして、この方法６００は現行ノードが依存するどのノードについても反復される。現行ノードが依存するノードが有効であるなら、その値は返送される。無効であるなら、上述のように有効にするよう要求される。
【００６３】
現行ノードが依存するノードがその値を返送したら、現行ノードが依存するノードの値を参照してブロック６１０において現行ノードの値を算出することができる。この算出された値が現行ノードに記憶される。ブロック６１２において、この算出された値が返送される。それから、この値は、現行ノードにより表された要素をアニメーション化するために使うことができる。
【００６４】
例えば図６に関して上述したようにゲーム機１００のゲームエンジンを使って、ゲーム機とともに従属グラフを評価して、少なくともオブジェクトの一部分をアニメーション化することが多くの利点がもたらす。オブジェクトをアニメーション化するためのデータを供給する他の方法には、キャラクターの骨組みにおける要素の位置決めを多くの構成において“焼くこと”が含まれる。例えば、あらゆる要素の値のスナップショットがアニメーション曲線の各点で取られる。このデータには各要素について１２まで又はそれ以上の値が含まれてよい、つまり、要素の３次元の回転を表す９個の値及びx、y及びz座標での要素の位置を表す３個の値である。オブジェクトの移動をとらえるために、各要素の値はあらゆるアニメーション曲線についてのアニメーション曲線の各点に対し記憶される必要がある。
【００６５】
当業者が理解するように、焼く処理により大量のデータが作成される。データの量はたいていゲームの実行中に読んだり利用するのには扱いにくく、またゲームを移動するために一枚のディスクに収容するにはたいてい大きすぎる。したがって、オブジェクトの動作を表すデータはたいてい圧縮され、また焼いたデータのいくつかを省略するのが一般的である。この圧縮され又は不完全なデータに基づきオブジェクトをアニメーション化する際には、オブジェクトの動作は源で作成されたアニメーションのせいぜい概算であり、ゲーム実行中のアニメーションを修正することは難しい。
【００６６】
焼いたデータを利用することとは逆に、ゲーム機とともに従属グラフ及び源アニメーション曲線を評価することで、オブジェクトをアニメーション化するのに要求されるデータの量が減り、またアニメーションの美意識が増える。アニメーションデータ上で使用される圧縮の量を制限したり除去することができ、またオブジェクトの動きを源で作成されたオブジェクトの動作と比べて損失なく表示させることができる。
【００６７】
以下の記載により、上述のシステム及び方法の詳細な利点をさらに議論する。このような利点には、ゲーム機へエキスポートされるデータの量を減少させること、そのデータを評価する効率を上げること、より正確にアニメーション化すること、及び源アニメーションを適合及び修正できることが含まれる。加えて、システム及び方法の更に詳細及び実施についてこれら利点に照らして記載する。
データ量の減少
【００６８】
アニメーションに使用されるためにゲーム機へエキスポートされたデータの量は減らすことができる。あらゆるアニメーション曲線でのあらゆる位置におけるオブジェクト又はその一部分のあらゆる要素の値をエキスポートする代わりに、オブジェクト又はその一部分のあらゆる要素を記述する従属グラフをエキスポートすることができ、源アニメーション曲線をエキスポートできる。各要素の値は源アニメーション曲線に対する従属グラフを評価することにより定められてよく、各要素の値をエキスポートする必要がなくなる。
【００６９】
従属グラフをエキスポートするのに使われたデータの量は、従属グラフにおけるノードを適切にエキスポートすることによりさらに減らしてよい。図７は、図４に図解される従属グラフ４００の一部分等の、従属グラフにおけるノードを源からエキスポートする方法の例を図解したフローチャートである。この方法７００は、図５に図解される方法５００ブロック５０６において使用してもよい。
【００７０】
ブロック７０２において、空間的又は時間的値といった値を表す第１従属グラフノードが識別される。従属グラフ４００の一部分に関して、値ノード（４０２、４０６、４０８、４１２）がブロックに７０２において識別される。
【００７１】
ブロック７０４において、第１ノードが記憶される。第１ノードは、図１に図解されたゲーム機１００等のゲーム機で読取り可能な第１データ構造に記憶されてよい。
【００７２】
ブロック７０６において、第１ノード間の関係を表す第２従属グラフノードが識別される。従属グラフ４００の一部分に関して、機能ノード（４０４、４１０、４１４）がブロックに７０６において識別される。識別されたノードにより、従属グラフで表された要素の第１の空間的又は時間的値と従属グラフで表されたひとつの要素の第２の時間的又は空間的値間の関係を表してよい。例えば、ノードブロック７０６において識別されたを使用して、第１要素が接続された第２要素の位置又は向きに基づき第１要素の位置又は向きを定めてもよい。
【００７３】
ブロック７０８において、第２ノードは第１ノードから分離して記憶される。第２ノードはゲーム機で読取り可能な第２データ構造に記憶されてよく、第２データ構造は第１データ構造とは明確に区別される。このようにして、ふたつのデータ構造が記憶されてよく、従属グラフで表された値が従属グラフで表された機能性と分離する。このような分離は、この情報を記憶するよう求められたデータの量を減らす適切なデータ構造と組み合わされたり、オブジェクト又はその一部分をアニメーション化する時に、ゲーム機に有用ではない従属グラフに記憶された超過情報を選抜除去するのを助けてよい。
【００７４】
ある実施形態では、方法７００を使用して従属グラフをふたつの分離したデータ構造にエキスポートする。他の実施形態において、複数の第１データ構造および/または複数の第２データ構造が記憶される。複数の第１データ構造には異なるノード値を表すデータが記憶されてよく、又は第１データ構造には冗長性及び誤差補正の目的で、少なくともいくつかの同じノード値を表すストアデータが含まれてよい。エキスポート後、このような第１データ構造及び第２データ構造は、ディスク駆動装置１１２に挿入されたディスクから読み取られた後に、ゲーム機１００の不揮発メモリ１０８等のゲーム機又は揮発メモリ１０６に記憶されてよい。
【００７５】
方法７００を使ってノードエキスポートすることが、従属グラフを作成する時に源で使われるが、従属グラフで表されたオブジェクト又はその一部分をアニメーション化する時にゲーム機で使われない、データの量を減少させるのを助ける。例えば、以下により詳細に記載されるように、ゲーム機に要素の局所座標のみが必要な時に、源装置にはあらゆる要素の世界座標が記憶されてよい。これら世界座標は時としてノード値から省略されてよい。源装置には、従属グラフ及びリグを設計する際に有用な制約条件や外部データが記憶されてよいが、ただ要素の移動にとっては比較的役に立たない。これら制約条件及び外部データは従属グラフをエキスポートする時に省略してよい。
【００７６】
当業者は、上述の方法７００を使うことも含め、何種類の方法によってでも従属グラフがエキスポート及び記憶されてよいと理解するであろう。従属グラフは、源で作成されたのと同じ形態でゲーム機に記憶できず、従属グラフの記述又は源従属グラフを表すデータが代わりに記憶されてよい。上述のように、これが従属グラフを記憶するのに必要なデータの量を減少させ、またゲーム機の実行を容易にしてよい。同様に、源アニメーション曲線の記述又は源アニメーション曲線を表すデータが、源において定義された通りのアニメーション曲線の代わりにゲーム機に記憶されてよい。
【００７７】
当業者は、図７に関する上述の方法例７００及びゲーム機による従属グラフの評価を使って、装置にエキスポートする必要があるデータの量を減らすことができると理解するであろう。このように、より詳細なアニメーションが達成でき、より少ないデータが必ず送られ又は記憶される。
より効率的なデータ評価
【００７８】
ゲーム機で使う従属グラフをエキスポートすることで、ゲーム機の性能を向上させることができる。ゲーム機はそれ程多くのデータをキャッシングやページングせずにオブジェクト又はその一部分をアニメーション化できるだけでなく、従属グラフは図１に図解されたプロセッサ１０４a-１０４d等の複数の処理によって更に容易に評価について平行化できる。
【００７９】
図８は、プロセッサ１０４a-１０４d等の複数のプロセッサを使って従属グラフを評価するための方法８００の例を説明したフローチャートである。ブロック８０２において、互いに独立して評価することができる従属グラフのサブネットワークが識別される。例えば、図２及び３に関して、先に議論した車のリグについて考える。車の骨組みを定義する各要素は従属グラフにおけるノードで表される。これらノードは複数のネットワークにグループ分けでき、ここでは従属グラフ全体の一部分を備えているのでサブネットワークと呼ばれ、互いに比較的独立して評価することができる。例えば、各ドアを他のドアや車の残りと独立して開いたり閉じたりしてよい。窓、トランク、及びボンネットは同様に独立している。
【００８０】
一実施形態において、ブロック８０２におけるサブネットワークの識別は、図１に関して上述したゲームエンジン等のゲームエンジンにより行われる。他の実施形態において、サブネットワークは源装置で識別され、分離したデータ構造は各サブネットワークに対してエキスポートされる。例えば、方法７００のブロック７０２には、値を表すサブネットワークの第１従属グラフノードを識別することが備えられてよい。ブロック７０４には、サブネットワークのこれら識別されたノードを記憶することが備えられてよい。同様に、ブロック７０６及び７０８には、第１サブネットワークのノード間の関係を表すサブネットワークのノードを識別し記憶することが備えられてよい。本実施形態において、ゲームエンジンは分離したデータ構造を識別することだけが必要で、それにより分離したサブネットワークを識別する。
【００８１】
ブロック８０４において、各サブネットワークはプロセッサ１０４a-１０４d等の複数のプロセッサのひとつに割り当てられる。サブネットワークは、プロセッサの間で均一に又は不均一に分配されてよく、このような分配はランダムに定められてよく、例えばサブネットワークの大きさや複雑度に基づき、サブネットワークを評価するための作業負荷が概算されてよい。
【００８２】
ブロック８０６において、サブネットワークにおけるノードは、そのサブネットワークが割り当てられたプロセッサとともに評価される。当業者は、複数のサブネットワークがこの方法を使ってゲーム機の分離したプロセッサの数を上限に同時に評価されてよいことを理解するであろう。このように、従属グラフをより効率的に評価することができ、またどのプロセッサへの負担も減らすことができる。
【００８３】
ブロック８０２で識別されたサブネットワークを使用して他の方法で従属グラフの評価効率を向上させてもよい。このような方法の一つは、各ノードの値が変更又は更新された回数を表すそのノードにおけるカウンタを維持することによる。そのノードについての値が有効かどうかを定める際に、カウンタをサブネットワークにおける他のノードのカウンタと比較することができる。現行ノードのカウンタがいずれの親ノードのカウンタより低ければ、現行ノードにおける値は無効で、返送される前に更新される必要がある。そして、現行ノードのカウンタは親ノードにおけるカウンタと同等に更新されてよく、又はカウンタは共通値にリセットされてよい。
【００８４】
従属グラフを評価する他の方法には、各ノードの汚れたフラグがそのノードにおける値はもはや有効ではないと示すよう設定することが必要となる。このように、親ノードにおける値が変更されると、従属グラフが横移動されされる必要があり、汚れたフラグをその親ノードの各子の中に設定する。しかし、上述のカウンタ方式において、親ノードのカウンタだけが更新されて、子ノードは（従属グラフ全体ではなく）そのサブネットワークの他のノードに照合する必要があるだけである。あるいは、サブネットワークにおけるノードだけの汚れたフラグは、サブネットワークにおける親ノードの値が変更されるたびに設定されてよく、このように残りの従属グラフを横移動する必要性が排除される。これにより、従属グラフで表されたオブジェクトをアニメーション化するのに要する処理の量が大幅に減少し、このようなアニメーションに要する時間の量が減少する。
【００８５】
汚れたノードを効率的に識別するのに使用してもよい他の方法には、従属グラフの各ノードにおける妥当性インジケータを定義することはもちろん、グローバルおよび/またはグループ妥当性インジケータを定義することが含まれる。各妥当性インジケータは値を保持、記憶又は定義する。従属グラフにおけるノードの値が要求される時に、そのノードについての妥当性インジケータはグローバル妥当性インジケータと比較される。ふたつのノードの値が異なると、ノードが汚れており更新されなければならない。
【００８６】
従属グラフのノードが従属グラフの外から受信した入力が理由で変更又は修正される時、例えば、ユーザの入力やゲーム内の時間経過グローバル妥当性インジケータが新たな値に設定され、また変更されたノードの妥当性インジケータがグローバル妥当性インジケータの新たな値に等しい値に設定される。しかし、従属グラフのノードが従属グラフの中から受信した入力が理由で変更される時、そのノードの妥当性インジケータだけがグローバル妥当性インジケータの値に等しい値に設定される。グローバル妥当性インジケータは新たな値に設定されない。このように、従属グラフのノードが従属グラフ内での他のノードの移動が理由で更新されると、新たなグローバル妥当性インジケータは設定されない。外部からの入力が理由で従属グラフのノードが修正されてから変化したノードだけが最新のグローバル妥当性インジケータを反映する。このようにして、グローバル妥当性インジケータとの単一の比較により、ノードが汚れていると定めることができ、また従属グラフ全体を横移動して汚れたフラグを設定する必要がない。
【００８７】
グローバル妥当性インジケータに加え又はグローバル妥当性インジケータの代わりに、１つ以上のグループ妥当性インジケータが定義されてよい。グループ妥当性インジケータは、従属グラフにおけるノードのどの分類を表すためにも定義されてよい。例えば、グループ妥当性インジケータは従属グラフにおける各サブネットワークについて定義されてよく、又はグループ妥当性インジケータはサブネットワークの集積について定義されてよい。グループ妥当性インジケータはまた、ふたつの従属グラフをつなぐメタネットワークについて定義されてよい。メタネットワークについて以下により詳細に記載する。グループ妥当性インジケータの使用はグローバル妥当性インジケータの使用と同様である。グループの外部からの入力によるノードの変化によってグループ妥当性インジケータが更新される。
【００８８】
妥当性インジケータはノードに記憶されてよい。ノードに記憶されたグローバル又はグループ妥当性インジケータは、それぞれの従属グラフ、グループ、又はサブネットワークの親ノードを定義するように、１つ以上の従属グラフ、グループ、および/またはサブネットワークに接続されていよい。グローバル又はグループ妥当性インジケータはまた、いずれの従属グラフ、グループ、又はサブネットワークとも独立して記憶されてよい。加えて、妥当性インジケータにはカウンタが備えられてよく、比較に適した他のどんな値が備えられてもよい。例えば、数値グローバル妥当性インジケータは、それが変更されるたびにひとつの値を増加させてよい。当業者は、カウンタ（ノード妥当性インジケータを表すために使用してもよいもの等）がそれを変更するたびに増加させるのに限定されず、また一定速度で増加させるのに限定されないと、理解するであろう。カウンタは、どんな値を増加させても減少させてもよい。
【００８９】
ブロック８０２で識別されたサブネットワークにより、オブジェクト又はその一部分をアニメーション化するために使われる座標系を単純化させることで従属グラフの評価効率を更に向上させる。従属グラフは一般に世界座標において評価され、またゲーム機は一般に焼いた要素の世界座標を利用してアニメーションについてのデータを供給する。しかし、サブネットワークを使用して局所座標を定義してもよい。
【００９０】
図９は、図２に最初に図解され、世界座標空間に定められた位置を有する要素２０６の一例を説明する図である。上述のように、要素２０６はオブジェクト２００の構造を定義する骨組みの一部分である。図９に図解された実施形態において、オブジェクト２００の人間の全体形が見える。図２において、要素２０６を含む肩及び腕を備えたその形の一部分のみが見える。
【００９１】
図解の実施形態において、場面又は環境に対して世界座標を定義する座標系９０２は、オブジェクト２００の骨組み内で要素の位置決めを指定するために使用される。このように、要素２０６の位置２１０aは世界座標系を使って定義される。要素２０６の親（要素２０４a等）が移動するたびに、要素２０６aの世界座標が再算出されなければならない。同様に、いつどんなノードが移動しても、そのノードのあらゆる子の座標が再算出されなければならない。
【００９２】
サブネットワークはその自身の局所座標系に関連付けられてよい。図１０は局所座標空間において定められた位置を有する要素２０６の一例を説明する図である。図解の実施形態において、座標系１００２は原点を要素２０４bに有する局所座標を定義する。要素２０６の位置２１０aはこの局所座標系において算出できる。このようにして、要素２０６の局所座標は要素２０４aおよび/または要素２０２aが移動する時に変化できない。この状況での従属グラフの評価には、要素２０６の局所座標の再算出を要せず、計算の複雑度や従属グラフを評価するのに要する時間が減少する。
【００９３】
局所座標は要素の親に対して又は任意のノードのサブネットワークにおける他のどんな要素に対しても定義されてよい。サブネットワークを実質的に他のサブネットワークとは独立して評価することができるので、サブネットワークの局所座標を、世界座標を更新する必要があるほど最新に更新する必要がない。サブネットワーク内のノードの局所座標が更新される時、従属グラフにおける他のどんな要素の座標ではなく、一般にサブネットワーク内の要素の局所座標だけを更新する必要がある。世界座標は中央処理や定義で算出されてよく、又は図１に関して記載されたゲームエンジンにより算出されてよく、そしてたいてい要素が他のオブジェクトの要素と相互作用している時だけ算出する必要がある。
【００９４】
当業者は、図８に関する上述の例方法８００及びそこで定義されたサブネットワークを使って従属グラフを評価する効率を向上することができると、理解するであろう。このように、より高速のアニメーションを達成でき、またそのアニメーションを表示するためのデータを供給する時にゲーム機に重い負担をかけることがない。
より高いアニメーション精度
【００９５】
上述のように、アニメーションデータはエキスポートされ焼いた後によく省略される。このように、要素の動きにおける微細な部分が失われることがある。例えば、データが圧縮又は省略されている時は振動動作を実質的に直線動作に減らしてよい。このようにして、源で作成された動きはゲーム機と通信状態にある表示装置、例えば表示装置１１６上で正確に再作成されない。データが失われない時でも、ゲーム機によりアニメーションに対して供給されたデータは源データではなく要素の向きから得た値に基づいており、源で作成された動きを正確に反映しないことがある。
【００９６】
しかし、従属グラフをゲーム機で評価することによりオブジェクト又はその一部分をアニメーション化することで、もともと源で作成された動きが再生される。このように、ゲーム機ユーザに対して表示された動きがオブジェクトの動作における微細な部分を保持し、アニメータにより吹き込まれた芸術性を保持する。これは、もっぱら機械によりアニメーション化された時に硬い又は不正確に見える人間の動作を再生するために特に重要である。しかし、アニメータはキャラクターの動きを実物そっくりに見えるように作ることができ、またこれらの動きをゲーム機により動きを犠牲にすることなく再生することができる。
【００９７】
上述の改善された精度に加え、場面内での要素の相互作用が複数の従属グラフを使って改善できる。焼いた値が利用される時、別のオブジェクトの要素との間で衝突が検出される必要がある。このような衝突を検出するのはコストがかかり、また完全に正確ではない。しかし、従属グラフが評価される時、相互作用をより容易にそしてより詳細に定めることができる。
【００９８】
図１１は、相互作用することがあるふたつの従属グラフの部分の例を説明するブロック図である。従属グラフ１１０１には、座標x１、y１及びz１で定義されるように、向き１を有する第１オブジェクトの第１要素が記述されてよい。同様に、従属グラフ１１０２には、座標x２、y２及びz２で定義されるように、向き２を有する第２オブジェクトの第２要素が記述されてよい。
【００９９】
このふたつの要素が相互作用する時、これらはメタネットワーク１１０４に分類されてよく、また機能ノード１１０６が図１２に図解されるように両者の間に定義される。図１に関して記載されたゲームエンジンを使用してこのような分類を識別し、および/またはこのような機能ノードを定義してもよい。メタネットワークは、他のどんな従属グラフ又はサブネットワークの評価とも同様に評価することができる。例えば、向き１又は向き２のいずれかの値が更新されたかどうかを表すカウンタを提供することができる。ひとつの要素における移動を使用して他要素における移動を定めてよいので、このふたつの要素の相互作用はさらに大幅に正確で本物となる。加えて、コストがかかる衝突検出を避けることができる。
【０１００】
例として、向き１で第１キャラクターの手を記述してよい。向き２で第２キャラクターの手を記述してよい。ゲームの実行中にふたつのキャラクターは握手することがある。各キャラクターが相手のキャラクターとは独立したあらかじめ定義されたアニメーションを実行する代わりに、ひとつのキャラクターがアニメーション曲線で定義された握手を実行することができ、もう一方のキャラクターは適切に反応することができる。
【０１０１】
別の例として、向き１で第１キャラクターの手を記述して、向き２でドアを記述してよい。ドアが閉まっている時、機能ノード１１０６を定義して、キャラクターの手でドアを動かしたりドアを通過するのを防ぐことができる。キャラクターの手がドアノブにに触れているなら、例えば、機能ノード１１０６を定義してキャラクターの手でドアノブを回させることができる。
【０１０２】
当業者は、上述例及び図ll及び１２に関して記載されたメタネットワークを使ってゲーム機によるアニメーションの精度を向上できることを理解するであろう。アニメーションにおいて使用するコストがかかる作用の数を減らしたり避けたりすることができ、また結果として生じるアニメーションはより正確で自然になることがある。
より適合可能なアニメーション
【０１０３】
ゲームにおける全ての相互作用又は事象があらかじめ定義できるわけではない。ゲームの結末及びその結末に至る事象は、ユーザからの入力で定められる。これらの入力は状況により予測不可能でありうるし、また変動することもある。このような入力の数及びゲーム実行中のオブジェクトの可能な構成は無限である。このように、多くのアニメーションは源であらかじめ決められるよりもゲームの実行中に定められる必要がある。
【０１０４】
図１３は、ふたつの異なるアニメーション曲線により異なる位置に配置されたオブジェクト１３００の例図である。図１３において、オブジェクト１３００はバットとして図解される。例として、キャラクターがバットを振ることがある。第１アニメーション曲線を追ってバットを高く振る時、バット１３００aが図示のとおり上方を指すように制御要素１３０４は点１３０２aに置かれる。第２アニメーション曲線を追ってバットを低く振る時、バット１３００aが図示のとおり下方を指すように制御要素１３０４は点１３０２bに置かれる。
【０１０５】
アニメーションを焼く時、未定義の構成はふたつの既存構成を混ぜることにより作成される必要がある。よって、キャラクターが高いスイングアニメーション曲線と低いスイングアニメーション曲線の中間でバットを振るとすると、バット１３００aのアニメーションとバット１３００bのアニメーションが組み合わせられて、あるバットが両者の間に置かれた状態を作り出す。焼いたアニメーションを組み合わせてこの結果を生み出す方法によって、ふたつの位置（１３０２a、１３０２b）でのオブジェクト１３００の平均であるオブジェクトが簡単に作成される。このように、バット１３００cがバット１３００aとバット１３００b空間的平均として図１４に図解されるようにアニメーション化される。しかし、このような均分化は、平均されたアニメーションが動いている間、不正確アニメーションになったりアーチファクトが作成されたりする。図１４に見られるように、バット１３００cはバット１３００aや１３００cのいずれより短い。
【０１０６】
制御要素についてのアニメーション曲線を組み合わせることで、より正確なアニメーションを作成することができる。このように、オブジェクトのふたつの像を空間的に均分する代わりに、これら像のアニメーション曲線が均分化でき、そしてオブジェクトを組み合わせたアニメーション曲線とともに図解することができる。あらかじめ定義されていない動きをこのように図解することがアーチファクトを減少させ、結果として生じるアニメーションの美的品質を向上させることできる。例えば、第１アニメーション曲線を定義して平坦地を歩くキャラクターをアニメーション化してよく、また第２アニメーション曲線を定義して急坂を登るキャラクターをアニメーション化してよい。第１及び第２アニメーション曲線を組み合わせて、キャラクターが緩やかな坂を登るのをアニメーション化してよい。
【０１０７】
図１５は、図１３の位置（１３０２a、１３０２b）でのオブジェクト１３００の他の図である。しかし、図１５において、バット１３００dは点l３０２dに置かれた制御要素１３０４を使ってアニメーション化されている。図１５に見られるように、位置１３０２は点１３０２a及び１３０２bでの制御要素１３０４の位置及び向きを均分化することで定められてよい。結果として生じるバット１３００dはより正確になることがあり、加えて、ふたつのアニメーション曲線の平均を使ってアニメーション化された動きはユーザにとってより自然又は信用できるものになることがある。
【０１０８】
加えて、制御要素の従属グラフは、制御要素及び組み合わせたアニメーション曲線を使った要素をアニメーション化する時に評価することができる。従属グラフを評価することで、他の従属グラフで表された要素が適切に図解され、そして要素の調和した相互作用が維持されてよい。例えば、第１アニメーション曲線を追うキャラクターの腕はキャラクターの体の前に置かれてよく、一方、第２アニメーション曲線を追う同じ腕がキャラクターの体の後ろに置かれてよい。一緒に均分される時、腕はキャラクター体を通り過ぎるように見える。このような調和のとれないアニメーションは、焼いたアニメーションを使うゲーム機では、アニメーションと一緒に使うように設計された球面直線補間等の均分化方法を使ってもあまり防ぐことができない。しかし、腕及び体について従属グラフにおいて定義された制約条件により、腕が体と交差するのを防いだり、制御点及び従属グラフを使って腕の位置を定める時に体を邪魔にならないところに移動してよい。
【０１０９】
アニメーション曲線は何種類の方法でも組み合わせることができる。ある実施形態では、アニメーション曲線が均分される。他の実施形態において、アニメーション曲線の重み付き平均が定められる。重み付き平均はアニメータにより源において又はゲームにおける要因によって定められてよい。上述の、キャラクターが緩やかな坂を登る例では、例えば、キャラクターは第１及び第２アニメーション曲線の重み付き平均を使ってアニメーション化されてよく、重み付き平均は、平坦地又は急坂と比較した緩やかな坂の傾斜度により定められる。重み付き平均は一定であってよく、又は経時的に調節されてよい。例えば、ゲームエンジンにより、各従属グラフ又は所定の機能の相対的重み付けの変動性を定めてよく、これはアニメータにより作成又は設計されてよいし、経時的重み付けを変動させるのに使用してもよい。
【０１１０】
ゲーム機における従属グラフを評価することが、逆運動学をゲームの実行中に行うことができる容易さをも向上させるであろう。逆運動学とは、要素の位置及び向きに基いて、所望の最終位置及び向きを定めることである。順運動学ソルバのように各要素に対する調節を受信する代わりに、逆運動学ソルバは手続的入力を受信し、その手続的入力を満たす調節を定める必要がある。
【０１１１】
例えば、従属グラフが図４に関して記載されるように評価される時、要素の位置及び向きは各時間tgについてのアニメーション曲線を使って定められる。しかし、逆運動学ソルバには任意のアニメーション曲線は与えられず、各位置及び向きをアニメーション曲線がない状態で定めたりアニメーション曲線を一意的に定義する必要がある。例えば、ゲーム機ユーザは指示を入力してキャラクターにひとつの食べ物等のアイテムをテーブルから手に取らせることがある。逆運動学ソルバは、キャラクターの手の最終位置（食べ物アイテムの位置に等しい）を受信し、その後、手の位置、向きや動き、及び手でその最終位置をつかませる接続要素を定めてよい。
【０１１２】
逆運動学的解法が、ゲーム機によりアニメーション化された時に美学的に心地よいことを保証するために、アニメータは源において逆運動学リグ及び従属グラフを定め又は作成してよい。ゲーム機で逆運動学従属グラフを使って、手続的入力に基づき逆運動学解法を定めてよい。このように、あらかじめ定義されたアニメーション曲線に関連付けられていない状況になった時でも、アニメータのもともとの芸術性を使ってその状況における事象をアニメーション化することができる。
【０１１３】
逆運動学従属グラフは、方法５００例のブロック５０６においてエキスポートされた従属グラフに応じて定義されてよい。本実施形態において、アニメーション曲線とともにオブジェクト又はその一部分をアニメーション化するために使用される従属グラフは、逆運動学問題を解決するのに使うために再構成されてよい。例えば、従属グラフ４００の一部分における値ノード４０８x、４０８y及び４０８z（それぞれx、y及びz平面におけるアニメーション曲線を表す）は、従属グラフ４００の一部分で表された要素の次の所望座標を表す値を保持するノードに置き換えられてよい。機能ノード（４１０x、４１０y、４１０z）は、このような要素の所望座標を生み出す角度又は向きを定める機能を保持するノードに同様に置き換えられてよい。当業者は、従属グラフ、又は特に従属グラフ４００の一部分、が逆運動学と一緒に使うために再構成することができる他の方法を認めるであろう。
【０１１４】
逆運動学従属グラフはまた、完全に個別の従属グラフとして定義されてよい。アニメータは源においてこの従属グラフを作成してよく、またこの従属グラフの記述は方法５００のブロック５０６にてエキスポートされてよく、ブロック５０８にてゲーム機にロードされてよい。加えて、従属グラフとアニメーション曲線データはエキスポート及びロードされたとしてあらかじめ記載される。逆運動学従属グラフはゲームの実行中にインタラクティブレートで評価されてよい。
【０１１５】
図１に関して記載されたゲームエンジン等のゲームエンジンにより、逆運動学を使うべきだということを示す事象が識別されてよい。この事象により従属グラフが再構成され、又は個別の従属グラフが使われることがある。例えば、上述のように、ユーザがコマンドを入力してキャラクターにアイテムを手に取らせる時、エンジンを逆運動学従属グラフに切り替えてキャラクターの手及びその手でアイテムの位置をつかませる接続要素を定めてよい。ある実施形態では、ふたつの従属グラフを使用して逆運動学をアニメーション化し、定められた逆運動学解法が平滑であることを保証する。例えば、第１逆運動学グラフを使って定められた動きを第２逆運動学グラフを使って定められた動きと混ぜてよい。動きを混ぜることは、ふたつの従属グラフの平均、ふたつの従属グラフの一定の重み付き平均、又は経時的に変動したりずれたりするふたつの従属グラフの重み付き平均により定められてよい。
【０１１６】
ゲーム機にて逆運動学従属グラフを評価することで多くの利点がもたらされる。例えば、アニメータが源において作成した従属グラフを、ゲーム機に逆運動学アルゴリズム定めさせるよう要求する代わりに使用してもよい。ゲーム機により定義されたこのような逆運動学解法では、アニメータの芸術性が保持できないことがあり、ゲーム機に重い負担をかける。加えて、逆運動学解法は逆運動学従属グラフを使ってより正確になり、またより多くの要素を伴ってよく、それにより結果として生じるアニメーションがユーザにとってより信用できるものとなる。例えば、キャラクターがアイテムを場面の床から手に取っていると、ゲームが定義した逆運動学解法はキャラクターを下に手を伸ばすか腰で硬く曲がるようアニメーション化してよい。逆運動学従属グラフを使って、しゃがんでアイテムをより実物そっくりに拾うようにキャラクターをアニメーション化できる。
【０１１７】
当業者は、図１３-１５に関して記載されたアニメーション曲線を混ぜること及び逆運動学従属グラフを含む上述例を使って、ゲームが生み出したアニメーションの適合性を向上させることができると理解するであろう。アニメータによりはっきりとアニメーション化されていない状況は、ゲーム機を使って調和がとれて簡単な方法でアニメーション化できる。
【０１１８】
当業者は、例示システム、装置、方法、及び上述の実施形態を使って源従属グラフ及びアニメーション曲線をゲーム機とともに評価することができると理解するであろう。従属グラフは、ゲーム機によりゲームの実行中にインタラクティブレートで評価されてよい。従属グラフの評価により、オブジェクト又はその一部分をアニメーション化するためのデータが、例えばゲーム機と通信状態にある表示装置上に供給されることがある。従属グラフの記述により、ゲーム機へ転送する必要があるデータの量を減少することがある。従属グラフのサブネットワークを特定することで、従属グラフが評価される効率が向上することがある。従属グラフは複数の並列プロセッサにより評価されてよい。機能を定義してふたつの従属グラフを関連付けすることができ、また従属グラフのアニメーション曲線を組み合わせることができる。切り替え事象により、ゲーム機に逆運動学従属グラフを使わせてよい。これによりゲーム機は、より早く、より少ないリソースを使って、より正確に、そしてより多様な状況でアニメーションを生み出してよい。
【０１１９】
当業者は、ここで記載された例及び実施形態のいくつかが要素の位置又は向きにおける変化に関連するが、ここでの記載が制御要素および/またはアニメーション曲線により定義され、表され、又は特定されたどの状態の変化にも同等に適用することができる、と認めるであろう。例えば、状態の変化が運動、向き、位置、色、形状、影、又はテクスチャの修正された経路を表してよく、又は選択された行動や複数の選択された行動についてのトリガをも表してよい。
【０１２０】
当業者は、記載されたシステム、装置、構成部品、方法、又はアルゴリズムは種々の構成又はステップを使って実施されてよいと認めるであろう。上述例のいずれによっても構成やステップの数の制限を生じるものではない。例えば、ゲーム機l００の構成は、その構成部品の記載例が、電子ハードウエア、コンピュータソフトウエア、又は両者の組み合わせとして実施されるかたちで存在する。図解例が機能性の一般的用語で上記に記載された。本開示の範囲を逸脱することなく、より多い又は少ない構成部品やステップが実施されてよい。当業者は、記載された機能性を実施する様々な方法を認めるであろうが、このような実施は本開示の範囲からの逸脱と解釈されるべきではない。
【０１２１】
上記詳細な記載が種々の態様に適用されるよう、新規特徴を表示、記載、及び指摘した一方、当業者によって図解された装置、装置、又は方法における形及び細部に種々の省略、代替、及び変更を本開示の範囲を超えることなく加えてもよい、と理解されるであろう。認識されるであろうが、態様及び態様の変更が、いくつかの特徴を他のものとは別々に使用又は実行してもよいように、ここに示した特徴及び利点の全てを提供しない形の範囲内で具現化されてよい。本開示の範囲は添付の請求項、上記説明、又はその両方により定義される。
【符号の説明】
【０１２２】
１００…ゲーム機、１０２…CPU、１０４a、１０４b、１０４c、１０４d…プロセッサ（コア）、１０６…揮発メモリ、１０８…不揮発メモリ、１１０…GPU、１１２…ディスク駆動装置、１１４…入力装置、１１６…表示装置、２００…オブジェクト、２０２a、２０２b、２０４a、２０４b、２０６……要素、２０８アニメーション曲線、２１０a…第１位置、２１０b…第２位置、２１２…網目、４００…従属グラフ、４０２、４０６、４０８、４１２、４１６…値ノード、４０４、４１０、４１４…機能ノード、１１０１、１１０２…従属グラフ、１１０４…メタネットワーク、１１０６…機能ノード、１３００…オブジェクト、１３００a、１３００b、１３００c、１３００d…バット、１３０４…制御要素
【図１】
2010119843.tif 000003
【図２】
2010119843.tif 000004
【図３】
2010119843.tif 000005
【図４】
2010119843.tif 000006
【図５】
2010119843.tif 000007
【図６】
2010119843.tif 000008
【図７】
2010119843.tif 000009
【図８】
2010119843.tif 000010
【図９】
2010119843.tif 000011
【図１０】
2010119843.tif 000012
【図１１】
2010119843.tif 000013
【図１２】
2010119843.tif 000014
【図１３】
2010119843.tif 000015
【図１４】
2010119843.tif 000016
【図１５】
2010119843.tif 000017
【外国語明細書】
2010119843000001.pdf