(57)【特許請求の範囲】
【請求項１】
アニメーションの対象となるモデルの全体のアニメーションのデータを記憶するステップと、
上記モデルの一部分に対するアニメーションのデータを記憶するステップと、
上記モデルの一部分に対するアニメーションのデータと、上記全体のアニメーションのデータのうち上記一部分に対応するアニメーションのデータとを用いて上記一部分に対する新たなアニメーションのキーフレームデータを生成し、上記キーフレームデータから補間により合成タイミングのデータを生成するステップと、
上記全体のアニメーションのデータのうちの上記一部分に対応するアニメーションのデータを上記合成タイミングの新たなアニメーションのデータで置きかえるステップとを有することを特徴とするアニメーション生成方法。
【請求項２】
上記モデルの全体のアニメーションのデータに対して上記モデルの一部分に対するアニメーションのデータを複数個合成する請求項１記載のアニメーション生成方法。
【請求項３】
複数個合成される上記モデルの一部分に対するアニメーションのデータは上記モデルの共通の部分に対するアニメーションのデータを含む請求項２記載のアニメーション生成方法。
【請求項４】
上記モデルの一部分に対するアニメーションのデータは、上記一部分の各部について上記データの影響度を示す重要度により合成状態を指定する請求項１記載のアニメーション生成方法。
【請求項５】
入力されたイベント情報に応じて上記モデルの一部分に対するアニメーションのデータを上記全体のアニメーションのデータに合成する請求項１記載のアニメーション生成方法。
【請求項６】
表示周期ごとに上記全体のアニメーションのデータをキーフレームデータから補間により生成し、上記表示周期ごとに上記モデルの一部分に対するアニメーションのデータをキーフレームデータから補間により生成し、補間して得た、上記全体のアニメーションのデータと、補間して得た、上記モデルの一部分に対するアニメーションのデータとを合成し、もって、上記全体のアニメーションのデータのキーフレームタイミングと上記モデルの一部分に対するアニメーションのデータのキーフレームタイミングとがずれていても合成を行える請求項５記載のアニメーション生成方法。
【請求項７】
アニメーションの対象となるモデルの全体のアニメーションのデータを記憶する全体アニメーション記憶手段と、
上記モデルの一部分に対するアニメーションのデータを記憶する部分アニメーション記憶手段と、
上記モデルの一部分に対するアニメーションのデータと、上記全体のアニメーションのデータのうち上記一部分に対応するアニメーションのデータとを用いて上記一部分に対する新たなアニメーションのキーフレームデータを生成し、上記キーフレームデータから補間により合成タイミングのデータを生成する手段と、
上記全体のアニメーションのデータのうちの上記一部分に対応するアニメーションのデータを上記合成タイミングの新たなアニメーションのデータで置きかえる手段とを有することを特徴とするアニメーション生成装置。
【請求項８】
アニメーションの対象となるモデルの全体のアニメーションのデータを記憶するステップと、上記モデルの一部分に対するアニメーションのデータを記憶するステップと、
上記モデルの一部分に対するアニメーションのデータと、上記全体のアニメーションのデータのうち上記一部分に対応するアニメーションのデータとを用いて上記一部分に対する新たなアニメーションのキーフレームデータを生成し、上記キーフレームデータから補間により合成タイミングのデータを生成するステップと、
上記全体のアニメーションのデータのうちの上記一部分に対応するアニメーションのデータを上記合成タイミングの新たなアニメーションのデータで置きかえるステップとをコンピュータに実行させるために用いるコンピュータプログラムを記録するコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、２次元あるいは３次元形状のデータのアニメーション生成において、モデルを構成する各部分のアニメーションを合成することによって、モデル全体のアニメーションを生成していく技術に関する。この技術はアニメーションの作成時に利用され、ゲームや映像コンテンツなどで幅広く利用される。
【０００２】
【従来の技術】
従来、モデルを構成する部分のアニメーションを合成することが行われている。このような合成は、例えば、人のアニメーションなどで、上半身と下半身を合成するなど互いに影響の少ない部分について行なわれていた。また、実際の合成作業はムービー制作などの作業でよく行なわれている。しかし、リアルタイムアニメーション生成の分野では、アニメーション生成に関わる品質や時間的な制約により広く使用されている段階ではない。
【０００３】
【発明が解決しようとする課題】
本発明者は、部分アニメーションを用いて多様なアニメーションを効率よく生成することについて鋭意研究を重ね、部分アニメーション（例えば上半身）と他の部分アニメーション（例えば下半身）とをつなぎ合わせるという手法ではなく、モデル全体のアニメーションと部分アニメーションとを合成することを発明するにいたった。本発明は、多様なアニメーションを簡易に生成することができるアニメーション生成技術を提供することを目的としている。
【０００４】
【課題を解決するための手段】
本発明によれば、上述の目的を達成するために、特許請求の範囲に記載のとおりの構成を採用している。ここでは、この特許請求の範囲の記載について補充的に説明を行う。
【０００５】
本発明の基本的な観点では、モデルを構成する個々の部分のアニメーションに対し、重要度を指定することにより、相互に関係する部分のアニメーションの制御を行なう。またアニメーション合成技術により、リアルタイムで合成してアニメーション生成を行なう。影響範囲の指定方法として例えば図３に示すように、モデルを構成する部分毎の重要度によって示すことができる。この点については後に詳述する。
【０００６】
なお、アニメーション合成は、複数の基本アニメーションに対して補間処理を実行して新たなアニメーションを生成することにより行う。補間処理は、線形補間でもよいし、非線型補間でもよい。例えば、本出願人が提案したアニメーション合成手法（特開平２０００−１１１９９号公報「アニメーションの自動生成方法」）を採用することができる。
【０００７】
本発明によれば、モデルを構成する部分毎のアニメーションに分解することにより、より多くのアニメーション表現を可能にする。また、各部分のアニメーション間の関係を規定することができるため、モデル全体のアニメーションの合成よりも、複雑なアニメーションの合成をすることが可能となる。そして、その合成をリアルタイムで行なうことができるため、インタラクティブなアニメーション表現が可能になる。
【０００８】
さらに本発明を説明する。
【０００９】
本発明によれば、上述の目的を達成するために、アニメーション生成方法において：アニメーションの対象となるモデルの全体のアニメーションのデータを記憶するステップと；上記モデルの一部分に対するアニメーションのデータを記憶するステップと；上記モデルの一部分に対するアニメーションのデータと、上記全体のアニメーションのデータのうち上記一部分に対応するアニメーションのデータとを用いて上記一部分に対する新たなアニメーションのデータを生成するステップと；上記全体のアニメーションのデータのうちの上記一部分に対応するアニメーションのデータを上記新たなアニメーションのデータで置きかえるステップとを実行するようにしている。
【００１０】
この構成においては、全体のアニメーションのデータを部分的なアニメーションのデータで修正するので、処理も少なく、また木目細かな指定が可能となる。
【００１１】
アニメーションデータは、骨格データ（ノード）として与えることができる。各ノードごとの重要度を与えて部分的なアニメーションの影響度を指定することができる。
【００１２】
複数の部分的なアニメーションデータを１つのモデルに合成することもできる。例えば、右手のアニメーションデータと左手のアニメーションデータとを同時に合成してもよい。複数の部分的なアニメーションデータが共通する部分に関するものでもよい。例えば、腰のアニメーションデータと足（腰を含む）のアニメーションデータとを同時に合成してもよい。
【００１３】
部分的なアニメーションの合成は、ユーザから入力されるイベント等に基づいて行われようにしてもよい。キーフレームのデータからキーフレーム間のデータを補間するアニメーション生成においては、全体のアニメーションのキーフレームと部分的なアニメーションのキーフレームとがタイミング上一致する保証がない。合成タイミングにおける全体のアニメーションのデータをキーフレームから補間し、さらに同じ合成タイミングにおける部分的なアニメーションのデータをキーフレームから補間し、これら補間して得たデータを用いてそのタイミングの新たなアニメーションデータを生成する。
【００１４】
なお、本発明は装置またはシステムとして実現できるのみでなく、方法としても実現可能である。また、そのような発明の一部をソフトウェアとして構成することができることはもちろんである。またそのようなソフトウェアをコンピュータに実行させるために用いるソフトウェア製品（記録媒体）も本発明の技術的な範囲に含まれることも当然である。
【００１５】
【発明の実施の形態】
以下、本発明の実施例について説明する。ここでは、本発明における、部分アニメーションの合成を実現するための装置の説明をした後、「左手を挙げる」シーンを例にとって、土台となるアニメーションに対して、部分アニメーションが合成される様子を示す。この時、影響範囲についての説明も行なう。
【００１６】
図１は、本発明の実施例のアニメーション生成装置を全体として示しており、この図において、アニメーション生成装置１は、アニメーション合成部（アプリケーション）１０、アニメーション表示部（アプリケーション）２０、オペレーティングシステム３０、入力装置４０、出力装置５０、その他のリソース（ハードウェア、ソフトウェア）等を含んで構成されている。アニメーション生成装置１は、実際には、ゲーム機、パーソナルコンピュータ等に実装される。アニメーション編集装置として構成してもよい。オペレーティングシステム３０は、実装環境に応じたものであり、パーソナルコンピュータ用の汎用のオペレーティングシステムでもよいし、機器独自の組み込みオペレーティングシステムでもよい。アニメーション合成部１０は、全体のアニメーションと部分的なアニメーションとの合成を行うものである。アニメーション表示部２０は、アニメーションのデータ（合成された全体のアニメーションのデータあるいは合成を行わない全体のアニメーションのデータ）を受けとって画像データを生成し、出力装置（ディスプレイ）５０に画像データを出力する。アニメーション表示部２０は、例えば、アニメーション合成部１０等から骨格データを受けとってポリゴンデータを生成し、さらにレンダリング処理を行う。図示しないが、レンダリング処理等は、専用のハードウェアを用いてもよい。
【００１７】
図２は、図１のアニメーション合成部１０の構成を模式的に示しており、この図において、アニメーション合成部１０は、イベント処理部１１、アニメーション生成制御部１２、補間演算部１３、全体アニメーション記憶部１４、部分アニメーション記憶部１５等を含んでいる。イベント処理部１１は入力装置４０から入力されたイベント情報（キー入力、コントローラの操作）をアニメーション生成制御部１２にリダイレクトする。アニメーション生成制御部１２は所定のアニメーション進行情報に基づいて全体アニメーションの開始要求や、部分アニメーションの合成要求を補間演算部１３に供給する。補間演算部１３は、これら要求に応じて、全体アニメーション記憶部１４に記憶されているモデル全体のアニメーションのデータや、部分アニメーション記憶部１５に記憶されているモデルの一部分のアニメーションのデータを取り出して補間演算を行い、新たなアニメーションのデータを生成してアニメーション表示部２０に供給する。アニメーションデータの生成は図示しないクロックに基づいて進行する。アニメーション表示部２０は、アニメーションデータに基づいて画像データを生成して出力装置５０に出力する。
【００１８】
図３は、図２のアニメーション合成部１０の動作を示しており、この図に示すように、合成のために全体の動きを規定する動きの配列（全体アニメーション）を取り出し（ステップＳ１）、さらに各合成ターゲット部位において合成要求をスタックし（ステップＳ２）、つぎに合成処理を実行し（ステップＳ３）、この後表示を行う（ステップＳ４）。以上の処理を繰り返す。
【００１９】
つぎに左手を挙げる部分アニメーションを合成する例を用いて実施例をさらに詳細に説明する。
【００２０】
図４は、左手を挙げる部分アニメーションを合成したときの様子を示す（モデルは紙面表面を向いている）。左腕の部分モーションは、徐々に左腕を上げるようになっている。全体のアニメーション（ターゲットモーション）は若干左右にゆれる動きをしている。合成結果は、ターゲットモーションに部分モーションを合成したものである。この例では、目的となる動作に対して、左腕の部分が部分アニメーションの影響を受けて変化していることがわかる。
【００２１】
図５は、部分アニメーションにおいて影響のある部分を指定する方法を示す。この例では、部分アニメーションにおける重要度を重みとして指定している。具体的には、肩、肘、手のノードにおいて１の重要度を付している。部分アニメーションの重要度（重み）と全体アニメーションの重要度（重み）との和は１となる。この例では、全体アニメーションの肩、肘、手のノードの重要度はゼロであり、肩、肘、手のノードにおいて部分アニメーションデータのみが用いられる。合成対象の該当する関節角を重み付け加算することによって、部分アニメーションに反映させることができる。部分アニメーションの重要度指定において、０でない部分を競合部分とする。部分アニメーションを起動すると、競合部分において、部分アニメーションで指定されている重みｗに対して、現在表示している動きに対する重みを「１−ｗ」として、重み付け加算を行うことによって実現する。
【００２２】
図６は、骨格モデルで記述した全体の動きの一例を示している。図７は、部分（左腕）の動きの一例を示している。この部分の動きにより図７の上部に示すように左腕を上げるアニメーションが生成される。
【００２３】
図５に示す重要度（重み）はノードごとに独立に指定することができる。例えば、図８の例では、肩における重要度を「０．３」、肘における重要度を「０．８」、手における重要度を「０．８」としている。この例では、肩に移行するほど影響度がないものとなっている。また、この例では、キーフレームのタイミングが各ノードでずれている。キーフレームがずれていても、各合成タイミングのデータをキーフレームのデータから補間して生成し、この結果を用いて全体のアニメーションのデータと合成すればよい。
【００２４】
図９は、アニメーション合成を多重に行っていく様子を示す。区間ａでは、アニメーションＡが起動している。区間ｂになると、アニメーションＢが加わり、モーション（Ｂ→Ａ）が作られる。区間ｃでは、これに対してアニメーションＣが加わる。区間ｄでは、アニメーションＢが終わりアニメーションＡに対してアニメーションＣが加わった状態となる。なお、アニメーションＢのように、部分アニメーションの終了時に合成を終了するモードと、アニメーションの最後の状態で合成しし続けるモードがある。また、「手を振る」などのように、アニメーションを繰り返すように指定することもできる。
【００２５】
図１０では、部分アニメーションとその合成対象を表すために、木構造を用いることを示す。図９の区間ａでは、アニメーションＡが実行されており、（ａ）に示すように、要素も一つとなっている。区間ｂになると、Ａに対してＢが合成されることから、（ｂ）の構造となる。区間ｃでは、（ｂ）に対してＣが合成されるため、（ｃ）の構造となる。アニメーションＢが終了した区間ｄでは、（ｄ）に示すように、構造が変化する。これによって、合成結果を管理することができる。
【００２６】
図１１は、２つの部分アニメーション（肘）を全体のアニメーションに合成する態様を示している。この例では、部分アニメーション１の重要度をｗ１とし、部分アニメーション２の重要度をｗ２としている。キーフレームで補間（補間係数ａ、ｂ、ｃ、ｄ）した後、ｗ１、ｗ２で重み付け加算を行い、さらにこれをターゲットにスタックして全体のモデルと合成する。もちろん、３つ以上の部分アニメーションを用いてもよい。
【００２７】
【発明の効果】
以上説明したように、本発明によれば、モデルを構成する各部分のアニメーションの合成をすることで、モデルのアニメーションの生成を行うことができる。さらに、アニメーション合成をリアルタイムでも行うことが可能であるため、インタラクティブなアニメーション生成においても利用できる。これらのことから、アニメーション制作における効率を飛躍的に上げることができるようになるとともに、リアルタイムでのアニメーション生成においても非リアルタイムアニメーションと同じような作業で制作できるようになる。
【図面の簡単な説明】
【図１】  本発明の実施例を全体として示すシステム図である。
【図２】  図１のアニメーション合成部１０の構成例を模式的に示すブロック図である。
【図３】  図１の実施例の全体的な動作を説明するフローチャートである。
【図４】  上述実施例での合成例を説明する図である。
【図５】  上述実施例での重要度の指定を説明する図である。
【図６】  上述実施例の骨格モデルを説明する図である。
【図７】  上述実施例の部分アニメーションの骨格モデルを説明する図である。
【図８】  上述実施例の重要度の他の指定の例を説明する図である。
【図９】  上述実施例の合成の時間的な経緯を説明する図である。
【図１０】  図９の時間的な経緯を管理するデータ構造を説明する図である。
【図１１】  上述実施例の他の合成例を説明する図である。
【符号の説明】
１      アニメーション生成装置
１０      アニメーション合成部
１１      イベント処理部
１２      アニメーション生成制御部
１３      補間演算部
１４      全体アニメーション記憶部
１５      部分アニメーション記憶部
２０      アニメーション表示部
３０      オペレーティングシステム
４０      入力装置
５０      出力装置
【図１】
0004380042.tif 000002
【図２】
0004380042.tif 000003
【図３】
0004380042.tif 000004
【図４】
0004380042.tif 000005
【図５】
0004380042.tif 000006
【図６】
0004380042.tif 000007
【図７】
0004380042.tif 000008
【図８】
0004380042.tif 000009
【図９】
0004380042.tif 000010
【図１０】
0004380042.tif 000011
【図１１】
0004380042.tif 000012