JP6129910B2 - アニメーションについての従属グラフ評価のシステム及び方法 - Google Patents

アニメーションについての従属グラフ評価のシステム及び方法 Download PDF

Info

Publication number
JP6129910B2
JP6129910B2 JP2015144839A JP2015144839A JP6129910B2 JP 6129910 B2 JP6129910 B2 JP 6129910B2 JP 2015144839 A JP2015144839 A JP 2015144839A JP 2015144839 A JP2015144839 A JP 2015144839A JP 6129910 B2 JP6129910 B2 JP 6129910B2
Authority
JP
Japan
Prior art keywords
dependency graph
game
nodes
animation curve
structural element
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015144839A
Other languages
English (en)
Other versions
JP2016001479A (ja
Inventor
イー.コラード ブライアント
イー.コラード ブライアント
エー.エドワーズ ブラッドレー
エー.エドワーズ ブラッドレー
ケー.ジョーンズ アントニー
ケー.ジョーンズ アントニー
ティ.クレイトン アダム
ティ.クレイトン アダム
ジェイ.コルバート タイラー
ジェイ.コルバート タイラー
エイチ.グラハム フレーザー
エイチ.グラハム フレーザー
Original Assignee
ディズニー エンタープライゼズ インコーポレイテッド
ディズニー エンタープライゼズ インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ディズニー エンタープライゼズ インコーポレイテッド, ディズニー エンタープライゼズ インコーポレイテッド filed Critical ディズニー エンタープライゼズ インコーポレイテッド
Publication of JP2016001479A publication Critical patent/JP2016001479A/ja
Application granted granted Critical
Publication of JP6129910B2 publication Critical patent/JP6129910B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings

Description

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

Claims (17)

  1. ゲームアニメーションシステムであって、前記システムは、
    ゲームを実行するように構成された1つ以上のプロセッサを備えるゲームエンジンであって、前記ゲームは第1オブジェクト及び第2オブジェクトを含み、前記第1オブジェクトは第1制御要素及び第1構造要素に関連付けられ、前記第2オブジェクトは第2制御要素及び第2構造要素に関連付けられる、ゲームエンジンと、
    不揮発性メモリであって、
    第1源アニメーション曲線データであって、前記第1源アニメーション曲線データは前記第1オブジェクトの第1アニメーション曲線を表し、前記第1源アニメーション曲線データは前記第1制御要素の状態の経時的な変化を記述し、前記第1制御要素の状態の変化は前記第1オブジェクトの第1構造要素の位置及び/又は向きに影響し、前記第1オブジェクトの第1構造要素は前記第1オブジェクトの模擬された物理的な部分である、第1源アニメーション曲線データと、
    第2源アニメーション曲線データであって、前記第2源アニメーション曲線データは前記第2オブジェクトの第2アニメーション曲線を表し、前記第2オブジェクトは、個別で、離散的で、且つ前記ゲーム内の第1オブジェクトに接続されておらず、前記第2源アニメーション曲線データは前記第2制御要素の第2状態の経時的な変化を記述する、第2源アニメーション曲線データと、
    前記第1源アニメーション曲線データについての変換を定義する第1従属グラフの第1記述であって、前記第1従属グラフは前記第1オブジェクトの階層的に相関する構造要素を記述する第1組のノードを含み、前記第1組のノードは、前記第1オブジェクトの構造要素が前記第1オブジェクトの他の構造要素に対してどのように動くかを記述する、前記不揮発性メモリ内に記憶された第1組のプロセッサ実行可能な指示を備える、第1記述と、
    前記第2源アニメーション曲線データについての変換を定義する第2従属グラフの第2記述であって、前記第2従属グラフは前記第2オブジェクトの階層的に相関する構造要素を記述する第2組のノードを含み、前記第2組のノードは、前記第2オブジェクトの構造要素が前記第2オブジェクトの他の構造要素に対してどのように動くかを記述する、前記不揮発性メモリ内に記憶された第2組のプロセッサ実行可能な指示を備える、第2記述と、
    を記憶する、不揮発性メモリと、を備え、
    前記ゲームエンジンは、前記第1従属グラフ及び前記第2従属グラフに基づいて、前記第1オブジェクト及び前記第2オブジェクトの間の接触の模擬の、前記ゲーム内での提示を実現するように構成され、
    模擬された接触は、前記第1オブジェクトの第1構造要素及び前記第2オブジェクトの第2構造要素の、前記ゲーム内での動きの模擬を含み、
    前記第1構造要素及び前記第2構造要素の動きの模擬は、前記不揮発性メモリ内に記憶されたプロセッサ実行可能な指示に対応する機能ノードにより実行され、前記機能ノードは、グラフィカルプログラム内のアイコンであり、それにより、前記ゲームエンジンによる前記機能ノードに関連するグラフィカルプログラムの実行は、前記ゲームエンジンに、前記第1組のノードを使う前記第1構造要素の動きの第1模擬、及び前記第2組のノードを使う前記第2構造要素の動きの第2模擬の、前記ゲーム内での提示を実現させる、システム。
  2. 前記第1従属グラフの第1組のノードは、前記第1制御要素の状態に基づき前記ゲームの実行中に表示される、前記第1構造要素及び前記第1オブジェクトの1つ以上の他の構造要素の状態を記述する、請求項1に記載のシステム。
  3. 前記第1制御要素の状態の変化は、あらかじめ定義された経路に沿った所定点の移動を備える、請求項1に記載のシステム。
  4. 前記ゲームエンジンは、前記第1オブジェクトの1つ以上の他の構造要素に関係して前記第1構造要素の向きを表すデータを発生させるように構成され、前記第1構造要素及び前記1つ以上の他の構造要素は、前記ゲーム内に提示される前記第1オブジェクトの少なくとも一部分の構造を定義する、請求項1に記載のシステム。
  5. 前記第1従属グラフの第1記述は、前記第1従属グラフの第1ノードを記憶する第1データ構造を備え、前記第1ノードは、前記第1従属グラフに関する第1オブジェクトの第1構造要素の第1の空間的又は時間的値を表し、前記第1従属グラフの第1記述は、前記第1従属グラフの第2ノードを記憶する第2データ構造を更に備え、前記第2ノードは、前記第1の時間的又は空間的値と、前記第1従属グラフに関する第1オブジェクトの第1構造要素の第2の時間的又は空間的値との間の関係を表し、前記第2データ構造は前記第1データ構造とは異なる、請求項1に記載のシステム。
  6. 前記第1従属グラフの第1記述は、前記ゲームの実行中に受信された手続的入力に少なくとも部分的に基づいて再構成可能である、請求項1に記載のシステム。
  7. 前記ゲームエンジンは、前記ゲームを実行するための複数のプロセッサを備える、請求項1に記載のシステム。
  8. 前記複数のプロセッサのそれぞれは、前記第1従属グラフの少なくとも1つのサブネットワークのノードを、前記サブネットワーク内にない前記第1従属グラフにおけるノードの評価とは独立して評価するように構成され、前記サブネットワークにおけるノードは、前記第1構造要素及び前記第1オブジェクトの異なる構造要素の経時的な動きを記述する、請求項7に記載のシステム。
  9. ゲームを実行するコンピュータ実装方法であって、前記方法は、1つ以上の物理プロセッサを備えるゲームエンジン及び不揮発性メモリを含むコンピュータシステムにおいて実施され、前記ゲームは第1オブジェクト及び第2オブジェクトを含み、前記第1オブジェクトは第1制御要素及び第1構造要素に関連付けられ、前記第2オブジェクトは第2制御要素及び第2構造要素に関連付けられ、前記方法は、
    第1源アニメーション曲線データを識別する工程であって、前記第1源アニメーション曲線データは前記第1オブジェクトの第1アニメーション曲線を表し、前記第1源アニメーション曲線データは前記第1制御要素の状態の経時的な変化を記述し、前記第1制御要素の状態の変化は前記ゲーム内の第1オブジェクトの第1構造要素の位置及び/又は向きに影響し、前記第1オブジェクトの第1構造要素は前記第1オブジェクトの模擬された物理的な部分である、工程と、
    第2源アニメーション曲線データを識別する工程であって、前記第2源アニメーション曲線データは前記第2オブジェクトの第2アニメーション曲線を表し、前記第2オブジェクトは、個別で、離散的で、且つ前記ゲーム内の第1オブジェクトに接続されておらず、前記第2源アニメーション曲線データは第2制御要素の第2状態の経時的な変化を記述する、工程と、
    第1従属グラフの第1記述を識別する工程であって、前記第1従属グラフは前記第1源アニメーション曲線データについての変換を定義し、前記第1従属グラフは前記第1オブジェクトの階層的に相関する構造要素を記述する第1組のノードを含み、前記第1組のノードは、前記第1オブジェクトの構造要素が前記第1オブジェクトの他の構造要素に対してどのように動くかを記述する、前記不揮発性メモリ内に記憶された第1組のプロセッサ実行可能な指示を備える、工程と、
    第2従属グラフの第2記述を識別する工程であって、前記第2従属グラフは前記第2源アニメーション曲線データについての変換を定義し、前記第2従属グラフは前記第2オブジェクトの階層的に相関する構造要素を記述する第2組のノードを含み、前記第2組のノードは、前記第2オブジェクトの構造要素が前記第2オブジェクトの他の構造要素に対してどのように動くかを記述する、前記不揮発性メモリ内に記憶された第2組のプロセッサ実行可能な指示を備える、工程と、
    前記第1従属グラフ及び前記第2従属グラフに基づいて、前記第1オブジェクト及び前記第2オブジェクトの間の接触の模擬の提示を実現する工程であって、模擬された接触は、前記第1オブジェクトの第1構造要素及び前記第2オブジェクトの第2構造要素の、前記ゲーム内での動きの模擬を含み、前記第1構造要素及び前記第2構造要素の動きの模擬は、前記不揮発性メモリ内に記憶されたプロセッサ実行可能な指示に対応する機能ノードにより実行され、前記機能ノードは、グラフィカルプログラム内のアイコンであり、それにより、前記ゲームエンジンによる前記機能ノードに関連するグラフィカルプログラムの実行は、前記ゲームエンジンに、前記第1組のノードを使う前記第1構造要素の動きの第1模擬、及び前記第2組のノードを使う前記第2構造要素の動きの第2模擬の、前記ゲーム内での提示を実現させる、工程と、
    を備える、方法。
  10. 前記第1制御要素の現在の状態に基づいて前記第1従属グラフに関する第1オブジェクトを表示し、前記第2制御要素の現在の状態に基づいて前記第2従属グラフに関する第2オブジェクトを表示する工程をさらに備える、請求項9に記載の方法。
  11. 前記第1オブジェクトを表示する工程は、前記第1従属グラフのノードにより記述された複数の構造要素の全体に網目又は皮膚をアニメーション化することをさらに備える、請求項10に記載の方法。
  12. 前記第1従属グラフの第1組のノードにおけるノードのうち少なくとも1つにおけるカウンタを更新する工程をさらに備える、請求項10に記載の方法。
  13. 前記第1従属グラフの第1組のノードにおけるノードのうち1つにおけるカウンタが前記第1従属グラフの第1組のノードにおけるノードのうち1つの親におけるカウンタと同等ではないことを定める工程と、前記第1従属グラフの第1組のノードにおけるノードのうち1つを更新するよう要求する工程と、をさらに備える、請求項10に記載の方法。
  14. 前記第1従属グラフの第1記述を評価することにより派生するデータに少なくとも部分的に基づいて、前記第1従属グラフに関する第1オブジェクトの少なくとも一部分をアニメーション化する工程と、
    前記第1従属グラフを評価する工程に続く切り替え事象を識別する工程と、
    前記第2従属グラフの第2記述を評価することにより派生するデータに少なくとも部分的に基づいて、前記第1従属グラフに関する第1オブジェクトの少なくとも一部分をアニメーション化する工程であって、前記第2従属グラフの第2記述を評価することは前記切り替え事象を識別する工程に続く、工程と、
    をさらに備える、請求項9に記載の方法。
  15. 2つの源アニメーション曲線を組み合わせる工程であって、前記第1従属グラフの評価は組み合わされた源アニメーション曲線に基づく、工程、をさらに備える、請求項9に記載の方法。
  16. 前記ゲームを実行する間に、前記第1従属グラフと前記第2従属グラフとの間の関係を識別する工程をさらに備える、請求項9に記載の方法。
  17. 前記第1源アニメーション曲線データを使って源計算機上にアニメーション化された時の第1オブジェクトの動きと比較して、動きの損失を全く伴わずにオブジェクトをアニメーション化する工程をさらに備える、請求項9に記載の方法。
JP2015144839A 2008-11-17 2015-07-22 アニメーションについての従属グラフ評価のシステム及び方法 Active JP6129910B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/272,648 US8508537B2 (en) 2008-11-17 2008-11-17 System and method for dependency graph evaluation for animation
US12/272,648 2008-11-17

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2009260667A Division JP2010119843A (ja) 2008-11-17 2009-11-16 アニメーションについての従属グラフ評価のシステム及び方法

Publications (2)

Publication Number Publication Date
JP2016001479A JP2016001479A (ja) 2016-01-07
JP6129910B2 true JP6129910B2 (ja) 2017-05-17

Family

ID=41651361

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2009260667A Pending JP2010119843A (ja) 2008-11-17 2009-11-16 アニメーションについての従属グラフ評価のシステム及び方法
JP2015144839A Active JP6129910B2 (ja) 2008-11-17 2015-07-22 アニメーションについての従属グラフ評価のシステム及び方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2009260667A Pending JP2010119843A (ja) 2008-11-17 2009-11-16 アニメーションについての従属グラフ評価のシステム及び方法

Country Status (4)

Country Link
US (1) US8508537B2 (ja)
EP (1) EP2187355B1 (ja)
JP (2) JP2010119843A (ja)
CN (1) CN101916324B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7050623B2 (ja) 2018-08-24 2022-04-08 三和シヤッター工業株式会社 開き戸

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8913065B2 (en) * 2011-08-05 2014-12-16 Jeffrey McCartney Computer system for animating 3D models using offset transforms
EP2754148A4 (en) * 2011-09-06 2015-12-30 Dreamworks Animation Llc OPTIMIZED GRAPHIC EVALUATION
US9208600B2 (en) * 2012-03-05 2015-12-08 Trigger Happy, Ltd Custom animation application tools and techniques
EP2880636B1 (en) * 2012-08-03 2022-01-05 DreamWorks Animation LLC Constraint evaluation in directed acyclic graphs
US9691171B2 (en) * 2012-08-03 2017-06-27 Dreamworks Animation Llc Visualization tool for parallel dependency graph evaluation
US9275488B2 (en) * 2012-10-11 2016-03-01 Sony Corporation System and method for animating a body
US10110412B2 (en) * 2012-10-17 2018-10-23 Disney Enterprises, Inc. Dynamically allocated computing method and system for distributed node-based interactive workflows
US9171401B2 (en) * 2013-03-14 2015-10-27 Dreamworks Animation Llc Conservative partitioning for rendering a computer-generated animation
US9224239B2 (en) * 2013-03-14 2015-12-29 Dreamworks Animation Llc Look-based selection for rendering a computer-generated animation
US9218785B2 (en) 2013-03-15 2015-12-22 Dreamworks Animation Llc Lighting correction filters
US9626787B2 (en) 2013-03-15 2017-04-18 Dreamworks Animation Llc For node in render setup graph
US9589382B2 (en) * 2013-03-15 2017-03-07 Dreamworks Animation Llc Render setup graph
US9230294B2 (en) * 2013-03-15 2016-01-05 Dreamworks Animation Llc Preserving and reusing intermediate data
US9208597B2 (en) 2013-03-15 2015-12-08 Dreamworks Animation Llc Generalized instancing for three-dimensional scene data
US9514562B2 (en) 2013-03-15 2016-12-06 Dreamworks Animation Llc Procedural partitioning of a scene
US9659398B2 (en) 2013-03-15 2017-05-23 Dreamworks Animation Llc Multiple visual representations of lighting effects in a computer animation scene
US9811936B2 (en) 2013-03-15 2017-11-07 Dreamworks Animation L.L.C. Level-based data sharing for digital content production
US9508178B2 (en) * 2013-07-19 2016-11-29 Lucasfilm Entertainment Company Ltd. Flexible 3-D character rigging blocks with interface obligations
US10134168B2 (en) * 2014-03-28 2018-11-20 Autodesk, Inc. Dynamically supporting custom dependencies during three-dimensional character animation
US10008019B2 (en) * 2015-04-15 2018-06-26 Autodesk, Inc. Evaluation manager for 3D animation scenes
US20170193289A1 (en) * 2015-12-31 2017-07-06 Microsoft Technology Licensing, Llc Transform lightweight skeleton and using inverse kinematics to produce articulate skeleton
CN105976418A (zh) * 2016-06-28 2016-09-28 珠海金山网络游戏科技有限公司 一种人物动态骨骼的设计系统和方法
JP6318202B2 (ja) * 2016-08-18 2018-04-25 株式会社カプコン ゲームプログラムおよびゲームシステム
US20190318523A1 (en) * 2018-04-16 2019-10-17 Zhuhai Kingsoft Online Game Technology Co., Ltd. Methods and Systems for Monitoring User Activity and Managing Controllers in 3-D Graphics
US10580187B2 (en) * 2018-05-01 2020-03-03 Enas TARAWNEH System and method for rendering of an animated avatar
US10818065B1 (en) * 2019-05-17 2020-10-27 Adobe Inc. Inverse kinematic solution blending in digital character animation
US20230016712A1 (en) * 2019-12-20 2023-01-19 Sony Group Corporation Imaging device, information processing method, and program
US11410368B2 (en) * 2020-07-24 2022-08-09 Unity Technologies Sf Animation control rig generation
CN113230657B (zh) * 2021-05-21 2022-12-13 珠海金山数字网络科技有限公司 一种角色交互方法及装置
US11956571B2 (en) * 2022-07-28 2024-04-09 Katmai Tech Inc. Scene freezing and unfreezing

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04270470A (ja) * 1990-12-25 1992-09-25 Kongouzen Souhonzan Shiyourinji アニメーション作成方法
US6285380B1 (en) * 1994-08-02 2001-09-04 New York University Method and system for scripting interactive animated actors
US5808625A (en) 1995-08-04 1998-09-15 Silicon Graphics Incorporated System and method for using dependency graphs for the control of a graphics creation process
US6414684B1 (en) * 1996-04-25 2002-07-02 Matsushita Electric Industrial Co., Ltd. Method for communicating and generating computer graphics animation data, and recording media
US6057859A (en) * 1997-03-31 2000-05-02 Katrix, Inc. Limb coordination system for interactive computer animation of articulated characters with blended motion data
US6011562A (en) * 1997-08-01 2000-01-04 Avid Technology Inc. Method and system employing an NLE to create and modify 3D animations by mixing and compositing animation data
US6388668B1 (en) * 1998-07-20 2002-05-14 Microsoft Corporation Functional animation including sprite tree generator and interpreter
US6462742B1 (en) * 1999-08-05 2002-10-08 Microsoft Corporation System and method for multi-dimensional motion interpolation using verbs and adverbs
US6535215B1 (en) * 1999-08-06 2003-03-18 Vcom3D, Incorporated Method for animating 3-D computer generated characters
US6522331B1 (en) 2000-02-01 2003-02-18 Stormfront Studios, Inc. Character animation using directed acyclic graphs
EP1345179A3 (en) * 2002-03-13 2004-01-21 Matsushita Electric Industrial Co., Ltd. Method and apparatus for computer graphics animation
JP2003337956A (ja) * 2002-03-13 2003-11-28 Matsushita Electric Ind Co Ltd コンピュータグラフィックス・アニメーション装置及びコンピュータグラフィックス・アニメーション方法
JP3818442B2 (ja) * 2002-03-25 2006-09-06 ソニー株式会社 画像処理装置および方法、記録媒体、並びにプログラム
FR2839176A1 (fr) * 2002-04-30 2003-10-31 Koninkl Philips Electronics Nv Systeme d'animation pour robot comprenant un ensemble de pieces mobiles
US7511718B2 (en) * 2003-10-23 2009-03-31 Microsoft Corporation Media integration layer
US7292250B2 (en) 2004-03-31 2007-11-06 Dreamworks Animation, Llc Character deformation pipeline for computer-generated animation
US20060022983A1 (en) 2004-07-27 2006-02-02 Alias Systems Corp. Processing three-dimensional data
EP1918881B1 (en) 2005-04-19 2012-10-03 DigitalFish, Inc. Techniques and workflows for computer graphics animation system
US7782324B2 (en) * 2005-11-23 2010-08-24 Dreamworks Animation Llc Non-hierarchical unchained kinematic rigging technique and system for animation
CA2593902A1 (en) 2006-07-31 2008-01-31 Avid Technology, Inc. Efficient processing of operator graphs representing three-dimensional character animation
US8941664B2 (en) 2006-11-22 2015-01-27 Take Two Interactive Software, Inc. System and method for real-time pose-based deformation of character models
CN101079154B (zh) * 2007-03-02 2010-05-26 腾讯科技(深圳)有限公司 一种角色动画实现方法及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7050623B2 (ja) 2018-08-24 2022-04-08 三和シヤッター工業株式会社 開き戸

Also Published As

Publication number Publication date
JP2010119843A (ja) 2010-06-03
US20100123723A1 (en) 2010-05-20
EP2187355B1 (en) 2014-02-19
US8508537B2 (en) 2013-08-13
JP2016001479A (ja) 2016-01-07
EP2187355A1 (en) 2010-05-19
CN101916324B (zh) 2015-05-13
CN101916324A (zh) 2010-12-15

Similar Documents

Publication Publication Date Title
JP6129910B2 (ja) アニメーションについての従属グラフ評価のシステム及び方法
Šmíd Comparison of unity and unreal engine
CN113785330B (zh) 使用相异的目标动画数据来训练人物的强化学习
JP6073058B2 (ja) オーサリングシステムによる再生可能なシーンの生成
CN109690450A (zh) Vr场景下的角色模拟方法和终端设备
US20090091563A1 (en) Character animation framework
CN111566651A (zh) 用于架构的虚拟/增强现实建模应用
WO2014022834A1 (en) Constraint evaluation in directed acyclic graphs
US11816772B2 (en) System for customizing in-game character animations by players
JP2019046430A (ja) ビデオゲーム画像レンダリング方法及びシステム
Thorn Learn unity for 2d game development
Donovan Mastering Oculus Rift Development
Freiknecht et al. Game Engines
US20240161371A1 (en) Asystem for customizing in-game character animations by players
US11957976B2 (en) Predicting the appearance of deformable objects in video games
JP6945699B2 (ja) プログラム及びゲーム装置
Ubillis Evaluation of Sprite Kit for iOS game development
Williams Graphics
Šmíd Srovnání Unity a Unreal Enginu
Esteban Villalba Acces to Z-buffer information for the development of a video game with a depth effect as a mechanic
Zafft Phantasm: A Game Engine A Major Qualifying Project Report Submitted to the faculty of the
Effelsberg et al. Jonas Freiknecht, Christian Geiger, Daniel Drochtert
Ruiz Gallego Design and Development of a 2D Game Engine
DUNNE Defining the Art of Interactive Real-Time 3D
Erler Haptic feedback in room-scale VR

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160614

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160628

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160926

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170217

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170321

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170412

R150 Certificate of patent or registration of utility model

Ref document number: 6129910

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250