JPH10312470A - アニメーション生成装置 - Google Patents
アニメーション生成装置Info
- Publication number
- JPH10312470A JPH10312470A JP9123687A JP12368797A JPH10312470A JP H10312470 A JPH10312470 A JP H10312470A JP 9123687 A JP9123687 A JP 9123687A JP 12368797 A JP12368797 A JP 12368797A JP H10312470 A JPH10312470 A JP H10312470A
- Authority
- JP
- Japan
- Prior art keywords
- matrix
- interpolation
- animation
- frame counter
- data
- 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.)
- Pending
Links
Landscapes
- Processing Or Creating Images (AREA)
Abstract
(57)【要約】
【課題】 従来のアニメーション生成装置では難しかっ
た複雑な動きをするオブジェクトや親子関係をもったオ
ブジェクトのアニメーションを少量のパラメータで簡単
に実現する。 【解決手段】 オブジェクトの補間をオブジェクトデー
タ記憶手段11に記憶された初期位置モデリングマトリ
ックスと、補間種別や補間係数といった補間パラメータ
とフレームカウンタ生成手段13の生成したフレームカ
ウンタから生成した補間マトリックスから、補間マトリ
ックス生成手段14でオブジェクトの3次元空間上での
位置を示す最終的なモデリングマトリックスを補間生成
する。
た複雑な動きをするオブジェクトや親子関係をもったオ
ブジェクトのアニメーションを少量のパラメータで簡単
に実現する。 【解決手段】 オブジェクトの補間をオブジェクトデー
タ記憶手段11に記憶された初期位置モデリングマトリ
ックスと、補間種別や補間係数といった補間パラメータ
とフレームカウンタ生成手段13の生成したフレームカ
ウンタから生成した補間マトリックスから、補間マトリ
ックス生成手段14でオブジェクトの3次元空間上での
位置を示す最終的なモデリングマトリックスを補間生成
する。
Description
【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータグラ
フィックスにおける3次元オブジェクトを時間経過に応
じて自動的に移動表示させるアニメーション生成装置に
関する。
フィックスにおける3次元オブジェクトを時間経過に応
じて自動的に移動表示させるアニメーション生成装置に
関する。
【0002】
【従来の技術】コンピュータグラフィックスでは、3次
元空間に物体を配置して指定した視点から見た画像を2
次元のスクリーン上へ描画することが行われる。3次元
空間に配置する物体を構成する要素をオブジェクトと呼
ぶ。例えば、人間をモデルにした物体を描画する場合、
頭は球のオブジェクト、腕や足や胴は複数の円柱のオブ
ジェクトなどで構成されることになる。
元空間に物体を配置して指定した視点から見た画像を2
次元のスクリーン上へ描画することが行われる。3次元
空間に配置する物体を構成する要素をオブジェクトと呼
ぶ。例えば、人間をモデルにした物体を描画する場合、
頭は球のオブジェクト、腕や足や胴は複数の円柱のオブ
ジェクトなどで構成されることになる。
【0003】時間的に移動するオブジェクトの様子は、
1秒間に例えば30フレームの画像を描画してこれを連
続的に表示する。30フレームのオブジェクトを生成す
る際に、3次元空間に配置するオブジェクトの位置情報
を全てのフレームについてあらかじめ用意しておくと、
データ量が膨大なものになるため、一般に30フレーム
のうち、数フレーム間隔でのみオブジェクトの位置情報
を用意しておき、位置情報が用意されていないフレーム
では、位置情報が与えられたフレームでのデータから何
らかの方法で位置情報を補間生成してオブジェクトを3
次元空間に配置する。このようにしてオブジェクトの動
きを表現することをアニメーションと呼ぶ。
1秒間に例えば30フレームの画像を描画してこれを連
続的に表示する。30フレームのオブジェクトを生成す
る際に、3次元空間に配置するオブジェクトの位置情報
を全てのフレームについてあらかじめ用意しておくと、
データ量が膨大なものになるため、一般に30フレーム
のうち、数フレーム間隔でのみオブジェクトの位置情報
を用意しておき、位置情報が用意されていないフレーム
では、位置情報が与えられたフレームでのデータから何
らかの方法で位置情報を補間生成してオブジェクトを3
次元空間に配置する。このようにしてオブジェクトの動
きを表現することをアニメーションと呼ぶ。
【0004】補間生成の方法としては、オブジェクトの
位置・大きさ・形状などの変化を一定時間(シーンと呼
ぶ)ごとにその変化量を求め、これをシーンを構成する
フレーム数で中割して表示する方法(キーフレーム法)
が知られている。例えば、2次元図形の変形をキーフレ
ーム法で行う場合の例が、中島正之監修 テレビジョン
学会編「3次元CG」(オーム社、平成6年2月10日
発行)の145〜146ページに開示されている。しか
しながら、このような従来のアニメーション生成装置で
は、単純にフレーム数で中割するため複数のオブジェク
トから構成される画像を描画する場合、全てのオブジェ
クトを構成する頂点座標データが膨大となり、キーフレ
ーム間で頂点の対応関係を指示する作業が非常に煩雑に
なり、また、回転を伴う変形をしたときに不自然な変形
を生じやすいといった問題点がある。
位置・大きさ・形状などの変化を一定時間(シーンと呼
ぶ)ごとにその変化量を求め、これをシーンを構成する
フレーム数で中割して表示する方法(キーフレーム法)
が知られている。例えば、2次元図形の変形をキーフレ
ーム法で行う場合の例が、中島正之監修 テレビジョン
学会編「3次元CG」(オーム社、平成6年2月10日
発行)の145〜146ページに開示されている。しか
しながら、このような従来のアニメーション生成装置で
は、単純にフレーム数で中割するため複数のオブジェク
トから構成される画像を描画する場合、全てのオブジェ
クトを構成する頂点座標データが膨大となり、キーフレ
ーム間で頂点の対応関係を指示する作業が非常に煩雑に
なり、また、回転を伴う変形をしたときに不自然な変形
を生じやすいといった問題点がある。
【0005】さらに、キーフレーム法を3次元のオブジ
ェクトのアニメーションに応用した例が、例えば特開平
8−16820号に開示されている。この例では、複数
の3次元オブジェクトから構成される物体をその親子関
係を正しく反映した補間も行えるアニメーション作成装
置が開示されている。この従来例ではオブジェクトが回
転するようなアニメーションの場合、2つのキーフレー
ムの間のフレームを補間するために、キーフレームのそ
れぞれにおいてあらかじめ与えられたオブジェクトの3
次元空間上での位置を示すマトリックスを基にして、2
つのマトリックスの間の変換マトリックスを一旦求めた
後そのマトリックスの要素から回転種別や回転角度を求
め、これを補間するフレーム数で線形補間し、再び補間
フレームに関する回転マトリックスを生成して、キーフ
レーム間でのオブジェクトの位置を求めるというアニメ
ーション生成方法が採られている。この方法では、全て
のオブジェクトについて、キーフレームにおける3次元
の位置を示すマトリックスが必要であるとともに、複合
したオブジェクトの動き、すなわち回転と平行移動と拡
大縮小といった種別の異なる動きが複合したようなオブ
ジェクトの動きが補間できないという問題点がある。
ェクトのアニメーションに応用した例が、例えば特開平
8−16820号に開示されている。この例では、複数
の3次元オブジェクトから構成される物体をその親子関
係を正しく反映した補間も行えるアニメーション作成装
置が開示されている。この従来例ではオブジェクトが回
転するようなアニメーションの場合、2つのキーフレー
ムの間のフレームを補間するために、キーフレームのそ
れぞれにおいてあらかじめ与えられたオブジェクトの3
次元空間上での位置を示すマトリックスを基にして、2
つのマトリックスの間の変換マトリックスを一旦求めた
後そのマトリックスの要素から回転種別や回転角度を求
め、これを補間するフレーム数で線形補間し、再び補間
フレームに関する回転マトリックスを生成して、キーフ
レーム間でのオブジェクトの位置を求めるというアニメ
ーション生成方法が採られている。この方法では、全て
のオブジェクトについて、キーフレームにおける3次元
の位置を示すマトリックスが必要であるとともに、複合
したオブジェクトの動き、すなわち回転と平行移動と拡
大縮小といった種別の異なる動きが複合したようなオブ
ジェクトの動きが補間できないという問題点がある。
【0006】
【発明が解決しようとする課題】このように、従来の単
純なフレーム補間によるアニメーション生成装置では複
数のオブジェクトから構成される画像をアニメーション
生成する場合、オブジェクトを構成する頂点データの対
応関係の指示が煩雑になり、回転を伴う変形に対応しき
れないという問題や、また、3次元オブジェクトのアニ
メーション生成においても補間マトリックスの生成方法
が煩雑でかつ複合したオブジェクトの動きをアニメーシ
ョン生成する事ができないといった問題点があった。
純なフレーム補間によるアニメーション生成装置では複
数のオブジェクトから構成される画像をアニメーション
生成する場合、オブジェクトを構成する頂点データの対
応関係の指示が煩雑になり、回転を伴う変形に対応しき
れないという問題や、また、3次元オブジェクトのアニ
メーション生成においても補間マトリックスの生成方法
が煩雑でかつ複合したオブジェクトの動きをアニメーシ
ョン生成する事ができないといった問題点があった。
【0007】本発明は、以上のような事情に鑑みてなさ
れたものであり、3次元オブジェクトの動作で、回転と
平行移動と拡大縮小といった複数の異なる動きが複合さ
れた動きであっても少ないパラメータ数でアニメーショ
ン生成が可能なアニメーション生成装置を提供すること
を目的とする。
れたものであり、3次元オブジェクトの動作で、回転と
平行移動と拡大縮小といった複数の異なる動きが複合さ
れた動きであっても少ないパラメータ数でアニメーショ
ン生成が可能なアニメーション生成装置を提供すること
を目的とする。
【0008】
【課題を解決するための手段】請求項1記載の本発明の
アニメーション生成装置は、描画中の現在の時刻に基づ
き生成されたフレームカウンタデータと、オブジェクト
の補間パラメータを用いて前記オブジェクトを3次元空
間に配置するためのモデリングマトリックスを生成する
のに必要な補間マトリックスを生成する補間マトリック
ス生成手段と、前記補間マトリックスとモデルの初期位
置モデリングマトリックスから現在のモデリングマトリ
ックスを合成するモデリングマトリックス合成手段とを
具備したものである。
アニメーション生成装置は、描画中の現在の時刻に基づ
き生成されたフレームカウンタデータと、オブジェクト
の補間パラメータを用いて前記オブジェクトを3次元空
間に配置するためのモデリングマトリックスを生成する
のに必要な補間マトリックスを生成する補間マトリック
ス生成手段と、前記補間マトリックスとモデルの初期位
置モデリングマトリックスから現在のモデリングマトリ
ックスを合成するモデリングマトリックス合成手段とを
具備したものである。
【0009】また請求項2記載の本発明のアニメーショ
ン生成装置は、1フレーム中に描画すべき全ての3次元
オブジェクトのリストと前記オブジェクトの詳細パラメ
ータへのポインタ情報を記憶したオブジェクトテーブル
記憶手段と、前記オブジェクトのアニメーション動作を
生成するための補間パラメータと前記オブジェクトの初
期位置モデリングマトリックスを含む前記オブジェクト
の詳細なパラメータを記憶するオブジェクトデータ記憶
手段と、前記オブジェクトテーブルと前記オブジェクト
データから描画すべき3次元オブジェクトを順に選択す
るオブジェクト描画選択手段と、描画中の現在の時刻に
基づきフレームカウンタデータを生成するフレームカウ
ンタ生成手段と、3次元空間を2次元スクリーンに投影
するために必要なビューマトリックス情報を含む光源デ
ータなどの描画に関する共通データを記憶する共通デー
タ記憶手段と、前記現在のモデリングマトリックスとビ
ューマトリックスから、各オブジェクトの3次元座標デ
ータを2次元スクリーン座標情報へ変換するためのモデ
ル・ビューマトリックスを合成するモデル・ビューマト
リックス合成手段と、前記モデル・ビューマトリックス
を用いて変換した各オブジェクトを構成するポリゴン座
標データと前記共通データ記憶手段に記憶されている光
源データなどからスクリーン上にポリゴンを描画するポ
リゴン描画手段とを具備したものである。
ン生成装置は、1フレーム中に描画すべき全ての3次元
オブジェクトのリストと前記オブジェクトの詳細パラメ
ータへのポインタ情報を記憶したオブジェクトテーブル
記憶手段と、前記オブジェクトのアニメーション動作を
生成するための補間パラメータと前記オブジェクトの初
期位置モデリングマトリックスを含む前記オブジェクト
の詳細なパラメータを記憶するオブジェクトデータ記憶
手段と、前記オブジェクトテーブルと前記オブジェクト
データから描画すべき3次元オブジェクトを順に選択す
るオブジェクト描画選択手段と、描画中の現在の時刻に
基づきフレームカウンタデータを生成するフレームカウ
ンタ生成手段と、3次元空間を2次元スクリーンに投影
するために必要なビューマトリックス情報を含む光源デ
ータなどの描画に関する共通データを記憶する共通デー
タ記憶手段と、前記現在のモデリングマトリックスとビ
ューマトリックスから、各オブジェクトの3次元座標デ
ータを2次元スクリーン座標情報へ変換するためのモデ
ル・ビューマトリックスを合成するモデル・ビューマト
リックス合成手段と、前記モデル・ビューマトリックス
を用いて変換した各オブジェクトを構成するポリゴン座
標データと前記共通データ記憶手段に記憶されている光
源データなどからスクリーン上にポリゴンを描画するポ
リゴン描画手段とを具備したものである。
【0010】また、請求項3記載の本発明におけるフレ
ームカウンタ生成手段は、フレームカウンタデータとし
て複数のオブジェクトのそれぞれに異なる値として生成
するものである。
ームカウンタ生成手段は、フレームカウンタデータとし
て複数のオブジェクトのそれぞれに異なる値として生成
するものである。
【0011】また、請求項4記載の本発明におけるフレ
ームカウンタ生成手段は、実数の値を生成するものであ
る。
ームカウンタ生成手段は、実数の値を生成するものであ
る。
【0012】また、さらに請求項5記載の本発明のアニ
メーション生成装置は、1フレーム中に描画すべき全て
の3次元オブジェクトのリストとオブジェクトの詳細パ
ラメータへのポインター情報を記憶したオブジェクトテ
ーブル記憶手段の内容を1フレームごとに更新するため
のオブジェクトテーブル更新手段を備えている。
メーション生成装置は、1フレーム中に描画すべき全て
の3次元オブジェクトのリストとオブジェクトの詳細パ
ラメータへのポインター情報を記憶したオブジェクトテ
ーブル記憶手段の内容を1フレームごとに更新するため
のオブジェクトテーブル更新手段を備えている。
【0013】
【発明の実施の形態】以下、本発明の実施の形態を図面
を用いて説明する。
を用いて説明する。
【0014】(実施の形態1)図2は、本発明のアニメ
ーション生成装置の構成図である。213がアニメーシ
ョン生成装置の主要部を含む3次元描画装置である。C
PU201が、外部記憶装置202に記憶されたアニメ
ーション制御のプログラムおよび、使用者から外部入力
装置203を使って与えられた指令により、ホストI/
F部204を通して3次元描画装置を制御する。3次元
描画装置213は、1つまたは複数の半導体集積回路
(LSI)で構成される。
ーション生成装置の構成図である。213がアニメーシ
ョン生成装置の主要部を含む3次元描画装置である。C
PU201が、外部記憶装置202に記憶されたアニメ
ーション制御のプログラムおよび、使用者から外部入力
装置203を使って与えられた指令により、ホストI/
F部204を通して3次元描画装置を制御する。3次元
描画装置213は、1つまたは複数の半導体集積回路
(LSI)で構成される。
【0015】オブジェクトテーブル205は、1フレー
ム中に描画すべき全ての3次元オブジェクトのリストと
各オブジェクトの詳細パラメータへのポインタを記憶し
たオブジェクトテーブル記憶手段であり、LSIに内蔵
されたメモリデバイスによって構成されている。オブジ
ェクトテーブルの内容を図10に示す。オブジェクト番
号1001として0番、1番そして順に全オブジェクト
数に対応する(Nobj−1)番までが格納されてい
る。各オブジェクトの詳細データとして、オブジェクト
を構成するポリゴンのパラメータを格納したメモリデバ
イスの先頭アドレスを示すポリゴンパラメータアドレス
1002と、各オブジェクトの各シーンでの初期位置を
与えるためのモデリングマトリックスを格納したメモリ
デバイスの先頭アドレスを示す初期位置モデリングマト
リックスアドレス1003と、オブジェクトがフレーム
ごとにどのように動くのかを示すための補間パラメータ
データを格納したメモリデバイスの先頭アドレスを示す
補間パラメータアドレス1004と、各オブジェクトが
いくつの補間パラメータを用いて動きを表すのかを示す
補間パラメータ個数1005が格納されている。
ム中に描画すべき全ての3次元オブジェクトのリストと
各オブジェクトの詳細パラメータへのポインタを記憶し
たオブジェクトテーブル記憶手段であり、LSIに内蔵
されたメモリデバイスによって構成されている。オブジ
ェクトテーブルの内容を図10に示す。オブジェクト番
号1001として0番、1番そして順に全オブジェクト
数に対応する(Nobj−1)番までが格納されてい
る。各オブジェクトの詳細データとして、オブジェクト
を構成するポリゴンのパラメータを格納したメモリデバ
イスの先頭アドレスを示すポリゴンパラメータアドレス
1002と、各オブジェクトの各シーンでの初期位置を
与えるためのモデリングマトリックスを格納したメモリ
デバイスの先頭アドレスを示す初期位置モデリングマト
リックスアドレス1003と、オブジェクトがフレーム
ごとにどのように動くのかを示すための補間パラメータ
データを格納したメモリデバイスの先頭アドレスを示す
補間パラメータアドレス1004と、各オブジェクトが
いくつの補間パラメータを用いて動きを表すのかを示す
補間パラメータ個数1005が格納されている。
【0016】オブジェクトテーブルにそのポインタが格
納されている詳細パラメータについて詳しく説明する。
納されている詳細パラメータについて詳しく説明する。
【0017】まずポリゴンパラメータのデータについて
図11に示す。1つのオブジェクトを構成する複数のポ
リゴンを連続した記憶領域に格納している。各オブジェ
クトに対応する記憶領域の先頭アドレスが、P0、P1
〜P(Nobj−1)として示されている。P0からの
領域には、0番のオブジェクトを構成するポリゴン(こ
こでは3角形を1つのポリゴンとする)のデータが、ポ
リゴン数データ1102に続いて各ポリゴンの頂点デー
タを3づつ格納する形1103で続いている。本実施例
では、説明を簡単にするためにポリゴンのデータとして
頂点データだけを示しているが、より高画質な描画を行
うために、ポリゴンデータとして頂点データ以外にポリ
ゴン頂点の法線ベクトルデータや色のデータを含めるの
が一般的である。
図11に示す。1つのオブジェクトを構成する複数のポ
リゴンを連続した記憶領域に格納している。各オブジェ
クトに対応する記憶領域の先頭アドレスが、P0、P1
〜P(Nobj−1)として示されている。P0からの
領域には、0番のオブジェクトを構成するポリゴン(こ
こでは3角形を1つのポリゴンとする)のデータが、ポ
リゴン数データ1102に続いて各ポリゴンの頂点デー
タを3づつ格納する形1103で続いている。本実施例
では、説明を簡単にするためにポリゴンのデータとして
頂点データだけを示しているが、より高画質な描画を行
うために、ポリゴンデータとして頂点データ以外にポリ
ゴン頂点の法線ベクトルデータや色のデータを含めるの
が一般的である。
【0018】次に、初期位置モデリングマトリックスの
データについて図12に示す。モデリングマトリックス
とは、各オブジェクトのポリゴン頂点データが正規化さ
れたオブジェクト座標系で定義されている場合に、各オ
ブジェクトを3次元のワールド空間の任意の位置に配置
するために使うマトリックスである。射影変換を伴わな
いため、図に示すようにe00〜e32の12個の要素
1202が確定すれば、4×4の1つのモデリングマト
リックス1203を定義出来る。M0、M1〜M(Nm
mx−1)として、各モデリングマトリックスに対応す
る記憶領域の先頭アドレスが示されている。
データについて図12に示す。モデリングマトリックス
とは、各オブジェクトのポリゴン頂点データが正規化さ
れたオブジェクト座標系で定義されている場合に、各オ
ブジェクトを3次元のワールド空間の任意の位置に配置
するために使うマトリックスである。射影変換を伴わな
いため、図に示すようにe00〜e32の12個の要素
1202が確定すれば、4×4の1つのモデリングマト
リックス1203を定義出来る。M0、M1〜M(Nm
mx−1)として、各モデリングマトリックスに対応す
る記憶領域の先頭アドレスが示されている。
【0019】次に、補間パラメータのデータについて図
13に示す。補間パラメータとは、各オブジェクトがフ
レームごとにどのように動くのかを示すパラメータであ
る。すなわち、あるフレーム(f)におけるオブジェク
トの位置を3次元ワールド空間上で指定するためのモデ
リングマトリックス[M]を(数1)の関数で表すために
必要なパラメータである。ここで、[Mo]は、初期位
置モデリングマトリックスを表す。[ΔM(f)]は、
補間パラメータを用いてフレームfの時点でのオブジェ
クトの位置を[Mo]への乗数マトリックスとして表わ
した補間マトリックスである。すなわち、本発明でのア
ニメーション生成のための補間とは、(数1)に示され
るモデリングマトリックスの補間のことを言う。
13に示す。補間パラメータとは、各オブジェクトがフ
レームごとにどのように動くのかを示すパラメータであ
る。すなわち、あるフレーム(f)におけるオブジェク
トの位置を3次元ワールド空間上で指定するためのモデ
リングマトリックス[M]を(数1)の関数で表すために
必要なパラメータである。ここで、[Mo]は、初期位
置モデリングマトリックスを表す。[ΔM(f)]は、
補間パラメータを用いてフレームfの時点でのオブジェ
クトの位置を[Mo]への乗数マトリックスとして表わ
した補間マトリックスである。すなわち、本発明でのア
ニメーション生成のための補間とは、(数1)に示され
るモデリングマトリックスの補間のことを言う。
【0020】
【数1】
【0021】図13に示すように補間パラメータの要素
として、補間種別1302、マトリックス演算方向13
03、フレームカウンタfとの乗算指定1304、次参
照パラメータへのオフセット1305、補間係数(1)
1306〜(3)1308がある。これらの詳細に関し
ては、後ほど詳しく述べる。I0,I1〜I(Nint
−1)として、各補間パラメータに対応する記憶領域の
先頭アドレスが示されている。
として、補間種別1302、マトリックス演算方向13
03、フレームカウンタfとの乗算指定1304、次参
照パラメータへのオフセット1305、補間係数(1)
1306〜(3)1308がある。これらの詳細に関し
ては、後ほど詳しく述べる。I0,I1〜I(Nint
−1)として、各補間パラメータに対応する記憶領域の
先頭アドレスが示されている。
【0022】以上が、オブジェクトの詳細パラメータの
説明である。これら詳細パラメータが記憶されているオ
ブジェクトデータの記憶手段として、図2の構成図で
は、ROMメモリ211を示している。一般に、3次元
グラフィックスは、ユーザからのインタラクティブな指
令によってオブジェクトが動作し、それをリアルタイム
に描画する必要のあるゲームのようなアプリケーション
と、あらかじめアニメーションのシナリオが決定されそ
のシナリオ(データ)に基づき描画を行うアプリケーシ
ョンの2つに分類できる。後者では、必要なオブジェク
トの情報や、オブジェクトの動きがあらかじめ定まって
いる。従って、ROMメモリにデータを格納することが
できる。インタラクティブな動作が必要な場合は、ホス
トCPU201から逐次データが3次元描画装置213
に与えられなければならない。本実施例は、インタラク
ティブではない3次元グラフィックスでのアニメーショ
ン生成を対象にしている。
説明である。これら詳細パラメータが記憶されているオ
ブジェクトデータの記憶手段として、図2の構成図で
は、ROMメモリ211を示している。一般に、3次元
グラフィックスは、ユーザからのインタラクティブな指
令によってオブジェクトが動作し、それをリアルタイム
に描画する必要のあるゲームのようなアプリケーション
と、あらかじめアニメーションのシナリオが決定されそ
のシナリオ(データ)に基づき描画を行うアプリケーシ
ョンの2つに分類できる。後者では、必要なオブジェク
トの情報や、オブジェクトの動きがあらかじめ定まって
いる。従って、ROMメモリにデータを格納することが
できる。インタラクティブな動作が必要な場合は、ホス
トCPU201から逐次データが3次元描画装置213
に与えられなければならない。本実施例は、インタラク
ティブではない3次元グラフィックスでのアニメーショ
ン生成を対象にしている。
【0023】図2を用いてアニメーション生成装置の構
成の説明を続ける。オブジェクトテーブル205の内容
は、アニメーション演算部206で順に読み出されオブ
ジェクト単位でアニメーション描画される。アニメーシ
ョン演算部206が、描画するオブジェクトの詳細デー
タをROMメモリ211から読み出すオブジェクト描画
選択手段を有する。さらにアニメーション演算部206
は、現在の時刻を表すフレームカウンタデータと、RO
Mメモリ211から読み出したオブジェクトの補間パラ
メータから、補間マトリックスを生成する手段を有す
る。アニメーション演算部206は、補間マトリックス
及び、各オブジェクトの初期位置モデリングマトリック
から(数1)に示したようにモデリングマトリックス
[M]を合成する、モデリングマトリックスの合成手段
と各オブジェクトの3次元座標データを2次元スクリー
ン座標情報へ変換するモデル・ビューマトリックスを合
成する、モデル・ビューマトリックス合成手段を実現す
るマトリックス演算部207を制御する。そして、ここ
まででスクリーン上での描画位置の確定したオブジェク
トを実際に2次元スクリーン上に描画するポリゴン描画
部208、及びスクリーンの実体であるフレームメモリ
210へのデータ書き込み・読み出し制御を行うフレー
ムメモリ制御部209、及びフレームメモリ210の内
容を目に見える形に表示するための表示装置212によ
りアニメーション生成装置は構成される。
成の説明を続ける。オブジェクトテーブル205の内容
は、アニメーション演算部206で順に読み出されオブ
ジェクト単位でアニメーション描画される。アニメーシ
ョン演算部206が、描画するオブジェクトの詳細デー
タをROMメモリ211から読み出すオブジェクト描画
選択手段を有する。さらにアニメーション演算部206
は、現在の時刻を表すフレームカウンタデータと、RO
Mメモリ211から読み出したオブジェクトの補間パラ
メータから、補間マトリックスを生成する手段を有す
る。アニメーション演算部206は、補間マトリックス
及び、各オブジェクトの初期位置モデリングマトリック
から(数1)に示したようにモデリングマトリックス
[M]を合成する、モデリングマトリックスの合成手段
と各オブジェクトの3次元座標データを2次元スクリー
ン座標情報へ変換するモデル・ビューマトリックスを合
成する、モデル・ビューマトリックス合成手段を実現す
るマトリックス演算部207を制御する。そして、ここ
まででスクリーン上での描画位置の確定したオブジェク
トを実際に2次元スクリーン上に描画するポリゴン描画
部208、及びスクリーンの実体であるフレームメモリ
210へのデータ書き込み・読み出し制御を行うフレー
ムメモリ制御部209、及びフレームメモリ210の内
容を目に見える形に表示するための表示装置212によ
りアニメーション生成装置は構成される。
【0024】以下、フローチャートを用いてアニメーシ
ョン生成装置の具体的な動作の流れを説明する。図3
は、アニメーション描画の全体フローチャートである。
ョン生成装置の具体的な動作の流れを説明する。図3
は、アニメーション描画の全体フローチャートである。
【0025】アニメーション描画を開始すると(ステッ
プ301)、まず最初にステップ302でフレームカウ
ンタが初期化される。フレームカウンタは、図2のアニ
メーション演算部206の中にあるフレームカウンタ生
成手段によって初期化される。フレームカウンタ生成手
段は、描画の基準となる最初のフレームカウント(f)
を生成する。通常初期値は0で、1フレームにつき1づ
つ加算される。次にステップ303で描画すべきオブジ
ェクトが選択される。そしてステップ304でオブジェ
クトが描画される。ステップ303とステップ304
が、オブジェクトの数だけ繰り返される(ステップ30
5)。さらに、ステップ306でフレームカウンタの値
を更新し、所望の時間を経過していなければ、ステップ
308でフレームメモリをクリアし再びステップ303
〜305の、一連のオブジェクト描画処理に移る。ステ
ップ306でフレームカウンタが所望の値に達してた場
合には、アニメーション描画処理を終了する(ステップ
307)。ステップ308では、フレームメモリのクリ
アとしたがフレームメモリクリアの際の画面のちらつき
をなくすためにフレームメモリをダブルバッファ構成に
した場合、ステップ308では、書き込み側バッファと
読み出し側バッファの切り替えと、新しい書き込み側バ
ッファのメモリクリアを行う。
プ301)、まず最初にステップ302でフレームカウ
ンタが初期化される。フレームカウンタは、図2のアニ
メーション演算部206の中にあるフレームカウンタ生
成手段によって初期化される。フレームカウンタ生成手
段は、描画の基準となる最初のフレームカウント(f)
を生成する。通常初期値は0で、1フレームにつき1づ
つ加算される。次にステップ303で描画すべきオブジ
ェクトが選択される。そしてステップ304でオブジェ
クトが描画される。ステップ303とステップ304
が、オブジェクトの数だけ繰り返される(ステップ30
5)。さらに、ステップ306でフレームカウンタの値
を更新し、所望の時間を経過していなければ、ステップ
308でフレームメモリをクリアし再びステップ303
〜305の、一連のオブジェクト描画処理に移る。ステ
ップ306でフレームカウンタが所望の値に達してた場
合には、アニメーション描画処理を終了する(ステップ
307)。ステップ308では、フレームメモリのクリ
アとしたがフレームメモリクリアの際の画面のちらつき
をなくすためにフレームメモリをダブルバッファ構成に
した場合、ステップ308では、書き込み側バッファと
読み出し側バッファの切り替えと、新しい書き込み側バ
ッファのメモリクリアを行う。
【0026】次にオブジェクト描画304について詳し
く述べる。図4にオブジェクト描画のフローチャートを
示す。オブジェクト描画が開始されると(ステップ40
1)、まずオブジェクトテーブルから描画するオブジェ
クトに対応したオブジェクトの内容を読み出す(ステッ
プ402)。読み出す内容は図10で示したようにポリ
ゴンパラメータアドレス1002、初期位置モデリング
マトリックス1003、補間パラメータアドレス100
4、補間パラメータ個数1005である。オブジェクト
テーブルに示された各パラメータへのアドレスの値をも
とに、ROMメモリ211に格納された各パラメータの
実体を読み出す。次のステップ403では、現在のフレ
ームカウンタfの値を設定する。そしてステップ404
で、初期位置モデリングマトリックスと補間パラメー
タ、フレームカウンタfを用いて、オブジェクトを描画
するため必要な、最終的なモデリングマトリックス
[M]とモデル・ビューマトリックス[Mv]をマトリ
ックス合成する。その結果を用いてステップ405でオ
ブジェクトを構成しているポリゴンを描画する。以上が
オブジェクト描画の処理順序である。なお、図4では、
ステップ404に[M]を[MR]で表記している。こ
れは、後述するマトリックス合成用演算器を使った場合
の表示記号と一致させているためであり、内容的には
[M]と同じものである。
く述べる。図4にオブジェクト描画のフローチャートを
示す。オブジェクト描画が開始されると(ステップ40
1)、まずオブジェクトテーブルから描画するオブジェ
クトに対応したオブジェクトの内容を読み出す(ステッ
プ402)。読み出す内容は図10で示したようにポリ
ゴンパラメータアドレス1002、初期位置モデリング
マトリックス1003、補間パラメータアドレス100
4、補間パラメータ個数1005である。オブジェクト
テーブルに示された各パラメータへのアドレスの値をも
とに、ROMメモリ211に格納された各パラメータの
実体を読み出す。次のステップ403では、現在のフレ
ームカウンタfの値を設定する。そしてステップ404
で、初期位置モデリングマトリックスと補間パラメー
タ、フレームカウンタfを用いて、オブジェクトを描画
するため必要な、最終的なモデリングマトリックス
[M]とモデル・ビューマトリックス[Mv]をマトリ
ックス合成する。その結果を用いてステップ405でオ
ブジェクトを構成しているポリゴンを描画する。以上が
オブジェクト描画の処理順序である。なお、図4では、
ステップ404に[M]を[MR]で表記している。こ
れは、後述するマトリックス合成用演算器を使った場合
の表示記号と一致させているためであり、内容的には
[M]と同じものである。
【0027】次にマトリックスの合成について詳しく述
べる。図6はマトリックス演算部(図2の207)の構
成図である。601の[ML]、602の[MR]、6
03の[Mc]の3つのマトリックスレジスタ(4×4
マトリックス)と、3つのレジスタのうち2つのレジス
タの内容を読み出し2つのマトリックスの乗算を行うマ
トリックス乗算器604を備えている。各マトリックス
レジスタへの入力制御及びマトリックス乗算器への入力
制御のために、605〜609のセレクタが設けられて
いる。このセレクタの制御は、次に述べるマトリックス
合成の動作フローチャートに応じてアニメーション演算
部(図2の206)が制御する。601の[ML]マト
リックスレジスタには、単位行列の値を即値(610)
で入力されるか、マトリックス乗算器604による乗算
結果が入力される。602の[MR]マトリックスレジ
スタには、初期位置マトリックス[Mo]の値(61
1)か、マトリックス乗算器604による乗算結果のい
づれかが入力される。603の[Mc]マトリックスレ
ジスタには、後述する生成された補間マトリックス[Δ
M]の値(612)か、ビューマトリックス[V]の値
(613)のいづれかが入力される。このようなレジス
タと演算器の構成をとることで、モデリングマトリック
スとモデル・ビューマトリックスの生成が可能となる。
べる。図6はマトリックス演算部(図2の207)の構
成図である。601の[ML]、602の[MR]、6
03の[Mc]の3つのマトリックスレジスタ(4×4
マトリックス)と、3つのレジスタのうち2つのレジス
タの内容を読み出し2つのマトリックスの乗算を行うマ
トリックス乗算器604を備えている。各マトリックス
レジスタへの入力制御及びマトリックス乗算器への入力
制御のために、605〜609のセレクタが設けられて
いる。このセレクタの制御は、次に述べるマトリックス
合成の動作フローチャートに応じてアニメーション演算
部(図2の206)が制御する。601の[ML]マト
リックスレジスタには、単位行列の値を即値(610)
で入力されるか、マトリックス乗算器604による乗算
結果が入力される。602の[MR]マトリックスレジ
スタには、初期位置マトリックス[Mo]の値(61
1)か、マトリックス乗算器604による乗算結果のい
づれかが入力される。603の[Mc]マトリックスレ
ジスタには、後述する生成された補間マトリックス[Δ
M]の値(612)か、ビューマトリックス[V]の値
(613)のいづれかが入力される。このようなレジス
タと演算器の構成をとることで、モデリングマトリック
スとモデル・ビューマトリックスの生成が可能となる。
【0028】図5にこのマトリックス演算部を用いたマ
トリックス合成の動作フローチャートを示す。マトリッ
クス合成が開始されると(ステップ501)、最初に
[M0]レジスタに基準となる初期位置モデリングマト
リックスが読み込まれる(ステップ502)。ステップ
503で、[ML]に単位マトリックスを、[MR]に
[Mo]の値を設定する。ステップ504で描画するオ
ブジェクトの補間パラメータの個数をオブジェクトテー
ブルから読み込み、以降ステップ505〜ステップ51
2まで補間パラメータの個数だけループを繰り返す。ル
ープ内では、最初に補間パラメータの個数が0であるか
どうかをチェックし、補間パラメータがない場合は、ス
テップ514へ飛ぶ。補間パラメータの個数が1個以上
残っている場合には、ステップ506以降を処理する。
ステップ506では、補間パラメータの内容を読み込
む。ステップ507で読み込んだ補間パラメータを利用
して補間マトリックス[ΔM]を生成する。この補間マ
トリックス[ΔM]の生成の過程に関しては、後述す
る。ステップ508で[ΔM]を[Mc]レジスタに書
き込む。ステップ509では、補間パラメータの中の、
マトリックス演算方向(図13の1303)に従ってス
テップ510とステップ511のいづれかに分岐する。
ステップ510では、[ML]レジスタに[Mc]レジ
スタの値を乗じ、結果を[ML]に書き戻す。ステップ
511では、[MR]レジスタに[Mc]レジスタの値
を乗じ、結果を[MR]に書き戻す。ステップ503か
らステップ512までで行う演算を式で表せば、(数
2)となる。ここで、[ ]は任意の4×4のマトリッ
クスを表す。[1]は単位行列を表す。[Mo]は初期
位置モデリングマトリックスを表す。最初の{ }に含
まれる[A]、[B]、…は、補間パラメータ中でマト
リックス演算方向を左と指定された補間マトリックスで
あり、2番目の{ }に含まれる[α]、[β]、…
は、補間パラメータ中でマトリックス演算方向を右と指
定された補間マトリックスである。この演算方向は、
[Mo]を中心に左から乗じる場合は、オブジェクトの
ボディ座標系での補間を意味し、右から乗じる場合は、
ワールド座標系での補間を意味する。
トリックス合成の動作フローチャートを示す。マトリッ
クス合成が開始されると(ステップ501)、最初に
[M0]レジスタに基準となる初期位置モデリングマト
リックスが読み込まれる(ステップ502)。ステップ
503で、[ML]に単位マトリックスを、[MR]に
[Mo]の値を設定する。ステップ504で描画するオ
ブジェクトの補間パラメータの個数をオブジェクトテー
ブルから読み込み、以降ステップ505〜ステップ51
2まで補間パラメータの個数だけループを繰り返す。ル
ープ内では、最初に補間パラメータの個数が0であるか
どうかをチェックし、補間パラメータがない場合は、ス
テップ514へ飛ぶ。補間パラメータの個数が1個以上
残っている場合には、ステップ506以降を処理する。
ステップ506では、補間パラメータの内容を読み込
む。ステップ507で読み込んだ補間パラメータを利用
して補間マトリックス[ΔM]を生成する。この補間マ
トリックス[ΔM]の生成の過程に関しては、後述す
る。ステップ508で[ΔM]を[Mc]レジスタに書
き込む。ステップ509では、補間パラメータの中の、
マトリックス演算方向(図13の1303)に従ってス
テップ510とステップ511のいづれかに分岐する。
ステップ510では、[ML]レジスタに[Mc]レジ
スタの値を乗じ、結果を[ML]に書き戻す。ステップ
511では、[MR]レジスタに[Mc]レジスタの値
を乗じ、結果を[MR]に書き戻す。ステップ503か
らステップ512までで行う演算を式で表せば、(数
2)となる。ここで、[ ]は任意の4×4のマトリッ
クスを表す。[1]は単位行列を表す。[Mo]は初期
位置モデリングマトリックスを表す。最初の{ }に含
まれる[A]、[B]、…は、補間パラメータ中でマト
リックス演算方向を左と指定された補間マトリックスで
あり、2番目の{ }に含まれる[α]、[β]、…
は、補間パラメータ中でマトリックス演算方向を右と指
定された補間マトリックスである。この演算方向は、
[Mo]を中心に左から乗じる場合は、オブジェクトの
ボディ座標系での補間を意味し、右から乗じる場合は、
ワールド座標系での補間を意味する。
【0029】
【数2】
【0030】図5の説明を続ける。ステップ514でモ
デリングマトリックスの最終合成を行う。[ML]と
[MR]を乗じて結果を[MR]レジスタに格納する。
この[ML]と[MR]の乗算は、すなわち(数2)の
最初の{ }と2番目の{ }の乗算に相当する。次に
ステップ515で、ビューマトリックス[V]を読み込
み[Mc]に格納する。ステップ516で[MR]と
[Mc]を乗じてモデル・ビューマトリックス[MV]
が合成される。以上でマトリックス合成が終了する(ス
テップ517)。
デリングマトリックスの最終合成を行う。[ML]と
[MR]を乗じて結果を[MR]レジスタに格納する。
この[ML]と[MR]の乗算は、すなわち(数2)の
最初の{ }と2番目の{ }の乗算に相当する。次に
ステップ515で、ビューマトリックス[V]を読み込
み[Mc]に格納する。ステップ516で[MR]と
[Mc]を乗じてモデル・ビューマトリックス[MV]
が合成される。以上でマトリックス合成が終了する(ス
テップ517)。
【0031】次に、補間パラメータの詳細について述べ
る。図13に補間パラメータデータを示す。1302
は、補間種別である。すなわち、本実施例ではオブジェ
クトの動作としてX軸を中心とした回転(Xrot)、
Y軸を中心とした回転(Yrot)、Z軸を中心とした
回転(Zrot)、オブジェクトの拡大・縮小(Sca
le)、そして平行移動(Trans)の5つの動作を
考える。オブジェクトの動作は、これらの動作の組み合
わせで表現するものとする。すなわち、オブジェクトの
位置は、あるシーンの最初に初期位置モデリングマトリ
ックスで指定されたワールド空間上の位置に位置し、そ
れ以降1フレームごとに上記5つの基本的な動きを組み
合わせて移動を行うと考える。そして、補間パラメータ
は、それら1つ1つの基本的な動き毎に1フレーム当た
りどれだけの変化を生じさせるのかを指定したものであ
る。1302は、この補間パラメータがどの種類の動き
を表しているかを指定する補間種別データである。13
03のマトリックス演算方向は、右または左を指定する
ことが可能で、前述したように、補間パラメータに含ま
れる補間値(補間係数1306〜1307)によって指
定するオブジェクトの変化をオブジェクト自身の座標系
であるボディ座標系で指定するのか、ワールド座標系で
指定するのかを決定するものである。1304のフレー
ムカウンタfとの乗算(する/しない)は、各補間パラ
メータ毎に、補間マトリックスを生成する際に補間係数
の値とフレームカウンタの値を乗算するかしないかを指
定するものである。通常は「乗算する」であるが、複数
のオブジェクトを組み合わせて関節構造をもった物体を
表す場合に、中間に位置するオブジェクトがフレームカ
ウンタの増加に従って位置が変化しないような場合に
は、fと乗算させなくする場合がある。具体的な使い方
は後述の例で示す。1305の次に参照するパラメータ
へのオフセットの値は、通常は1である。1つのオブジ
ェクトを複数の補間パラメータを使って複合したモデリ
ングマトリックスを生成する場合に、連続したアドレス
に格納された補間パラメータを使うため次に参照するパ
ラメータへのオフセット値は、1でよい。しかし、複数
のオブジェクトがツリー状につながった関節のある物体
をアニメーションする場合には、複数のオブジェクトで
同じ補間パラメータが必要になる場合がある。このと
き、補間パラメータを連続した領域に格納しておき、各
オブジェクトの補間パラメータへのポインターを順にず
らして指定することで補間パラメータを複数のオブジェ
クトで有効に利用出来るようにできる。その際、一部の
補間パラメータをとばして読み出したい場合がある。1
305のオフセット値は、この場合に1以外の値をと
る。1306補間係数(1)〜1308補間係数(3)
は、動作が回転の場合には、補間係数(1)のみを使用
し1フレームカウンタ当たりの回転量を示す。拡大・縮
小動作の場合には、補間係数(1)、(2)、(3)で
それぞれX軸、Y軸、Z軸方向への1フレームカウンタ
当たりの拡大・縮小割合を示す。平行移動動作の場合
は、補間係数(1)、(2)、(3)でそれぞれX軸、
Y軸、Z軸方向への1フレームカウンタ当たりの移動量
を示す。この関係を1309の表に示す。
る。図13に補間パラメータデータを示す。1302
は、補間種別である。すなわち、本実施例ではオブジェ
クトの動作としてX軸を中心とした回転(Xrot)、
Y軸を中心とした回転(Yrot)、Z軸を中心とした
回転(Zrot)、オブジェクトの拡大・縮小(Sca
le)、そして平行移動(Trans)の5つの動作を
考える。オブジェクトの動作は、これらの動作の組み合
わせで表現するものとする。すなわち、オブジェクトの
位置は、あるシーンの最初に初期位置モデリングマトリ
ックスで指定されたワールド空間上の位置に位置し、そ
れ以降1フレームごとに上記5つの基本的な動きを組み
合わせて移動を行うと考える。そして、補間パラメータ
は、それら1つ1つの基本的な動き毎に1フレーム当た
りどれだけの変化を生じさせるのかを指定したものであ
る。1302は、この補間パラメータがどの種類の動き
を表しているかを指定する補間種別データである。13
03のマトリックス演算方向は、右または左を指定する
ことが可能で、前述したように、補間パラメータに含ま
れる補間値(補間係数1306〜1307)によって指
定するオブジェクトの変化をオブジェクト自身の座標系
であるボディ座標系で指定するのか、ワールド座標系で
指定するのかを決定するものである。1304のフレー
ムカウンタfとの乗算(する/しない)は、各補間パラ
メータ毎に、補間マトリックスを生成する際に補間係数
の値とフレームカウンタの値を乗算するかしないかを指
定するものである。通常は「乗算する」であるが、複数
のオブジェクトを組み合わせて関節構造をもった物体を
表す場合に、中間に位置するオブジェクトがフレームカ
ウンタの増加に従って位置が変化しないような場合に
は、fと乗算させなくする場合がある。具体的な使い方
は後述の例で示す。1305の次に参照するパラメータ
へのオフセットの値は、通常は1である。1つのオブジ
ェクトを複数の補間パラメータを使って複合したモデリ
ングマトリックスを生成する場合に、連続したアドレス
に格納された補間パラメータを使うため次に参照するパ
ラメータへのオフセット値は、1でよい。しかし、複数
のオブジェクトがツリー状につながった関節のある物体
をアニメーションする場合には、複数のオブジェクトで
同じ補間パラメータが必要になる場合がある。このと
き、補間パラメータを連続した領域に格納しておき、各
オブジェクトの補間パラメータへのポインターを順にず
らして指定することで補間パラメータを複数のオブジェ
クトで有効に利用出来るようにできる。その際、一部の
補間パラメータをとばして読み出したい場合がある。1
305のオフセット値は、この場合に1以外の値をと
る。1306補間係数(1)〜1308補間係数(3)
は、動作が回転の場合には、補間係数(1)のみを使用
し1フレームカウンタ当たりの回転量を示す。拡大・縮
小動作の場合には、補間係数(1)、(2)、(3)で
それぞれX軸、Y軸、Z軸方向への1フレームカウンタ
当たりの拡大・縮小割合を示す。平行移動動作の場合
は、補間係数(1)、(2)、(3)でそれぞれX軸、
Y軸、Z軸方向への1フレームカウンタ当たりの移動量
を示す。この関係を1309の表に示す。
【0032】次に補間マトリックスの生成の詳細につい
て図7を用いて説明する。図7は、補間マトリックス
[ΔM]の生成手順を示すフローチャートである。補間
マトリックスの生成(ステップ701開始)は、図5の
ステップ506で補間パラメータを読み込んだ後に実行
されるステップである。ステップ703で補間種別が回
転すなわちXrot,Yrot、Zrotのいづれかで
あるかを判断する。回転であった場合、補間パラメータ
として回転軸の種別と回転角度を補間係数(1)(図1
3の1306)から読み出し、αとする。ステップ70
4で補間パラメータ中のフレームカウンタfとの乗算を
するかしないかを判断する。乗算する場合ステップ70
5でαとfを乗算し、結果をαとする。ステップ706
で716に示す式により回転を表すマトリックス[Δ
M]を算出する。ここで716の式は、X軸周りの回転
の場合のものを例に示している。Y軸周り、Z軸周りの
ものは、これとは異なる。次にステップ707で補間種
別が拡大・縮小であるかを判断する。拡大・縮小の場
合、補間係数(1)、(2)、(3)をそれぞれX軸方
向、Y軸方向、Z軸方向の拡大・縮小割合として読み込
みαx、αy、αzとする。ステップ708で補間係数
をfと乗算するかしないかを判断する。乗算する場合、
ステップ709に示す式により計算し改めてαx、α
y、αzを求める。ステップ710で、717に示す式
によりスケーリング(拡大・縮小)マトリックス[Δ
M]を算出する。次に、ステップ711で、補間種別が
平行移動であるかどうかを判断する。平行移動の場合、
補間係数(1)、(2)、(3)をそれぞれX軸方向、
Y軸方向、Z軸方向への1フレーム当たりの移動量とし
て読み込み、αx、αy、αzとする。ステップ712
で補間係数をfと乗算するかしないかを判断する。乗算
する場合、ステップ713に示す式により計算し改めて
αx、αy、αzを求める。ステップ714で、718
に示す式により移動マトリックス[ΔM]を算出する。
以上のステップで、補間マトリックス[ΔM]が生成さ
れる。
て図7を用いて説明する。図7は、補間マトリックス
[ΔM]の生成手順を示すフローチャートである。補間
マトリックスの生成(ステップ701開始)は、図5の
ステップ506で補間パラメータを読み込んだ後に実行
されるステップである。ステップ703で補間種別が回
転すなわちXrot,Yrot、Zrotのいづれかで
あるかを判断する。回転であった場合、補間パラメータ
として回転軸の種別と回転角度を補間係数(1)(図1
3の1306)から読み出し、αとする。ステップ70
4で補間パラメータ中のフレームカウンタfとの乗算を
するかしないかを判断する。乗算する場合ステップ70
5でαとfを乗算し、結果をαとする。ステップ706
で716に示す式により回転を表すマトリックス[Δ
M]を算出する。ここで716の式は、X軸周りの回転
の場合のものを例に示している。Y軸周り、Z軸周りの
ものは、これとは異なる。次にステップ707で補間種
別が拡大・縮小であるかを判断する。拡大・縮小の場
合、補間係数(1)、(2)、(3)をそれぞれX軸方
向、Y軸方向、Z軸方向の拡大・縮小割合として読み込
みαx、αy、αzとする。ステップ708で補間係数
をfと乗算するかしないかを判断する。乗算する場合、
ステップ709に示す式により計算し改めてαx、α
y、αzを求める。ステップ710で、717に示す式
によりスケーリング(拡大・縮小)マトリックス[Δ
M]を算出する。次に、ステップ711で、補間種別が
平行移動であるかどうかを判断する。平行移動の場合、
補間係数(1)、(2)、(3)をそれぞれX軸方向、
Y軸方向、Z軸方向への1フレーム当たりの移動量とし
て読み込み、αx、αy、αzとする。ステップ712
で補間係数をfと乗算するかしないかを判断する。乗算
する場合、ステップ713に示す式により計算し改めて
αx、αy、αzを求める。ステップ714で、718
に示す式により移動マトリックス[ΔM]を算出する。
以上のステップで、補間マトリックス[ΔM]が生成さ
れる。
【0033】図8にポリゴン描画のフローチャートを示
す。これは、図4のステップ405の詳細である。ステ
ップ802で描画するオブジェクトを構成するポリゴン
パラメータを読み出す。ステップ803〜806までポ
リゴンの数Npolだけ繰り返す。ステップ803で
は、各ポリゴンの頂点データを3次元の値(X,Y,
Z)から2次元のスクリーン座標データ(x,y)へモ
デル・ビューマトリックス[MV]を用いて(数3)に
より変換する。
す。これは、図4のステップ405の詳細である。ステ
ップ802で描画するオブジェクトを構成するポリゴン
パラメータを読み出す。ステップ803〜806までポ
リゴンの数Npolだけ繰り返す。ステップ803で
は、各ポリゴンの頂点データを3次元の値(X,Y,
Z)から2次元のスクリーン座標データ(x,y)へモ
デル・ビューマトリックス[MV]を用いて(数3)に
より変換する。
【0034】
【数3】
【0035】ステップ804で、ポリゴン内部のシェー
ディング処理(陰影付け)を行う。光源データ、ビュー
マトリックス[V]などを用いてポリゴン内部の画素ご
との色を計算する。このとき、オブジェクトを構成する
各ポリゴンの座標をワールド座標系に変換するためのモ
デリングマトリックス[M](図6を使って説明した時
に、最終的に[MR]に格納されたマトリックス)も利
用する。シェーディングの詳細は、本発明の本質ではな
いのでこれ以上触れない。ステップ805で、ポリゴン
で2次元スクリーンに描画する。ステップ806でオブ
ジェクトを構成する全てのポリゴンについて描画したか
を判断し、全てを描画した場合、ステップ807でポリ
ゴン描画を終了する。
ディング処理(陰影付け)を行う。光源データ、ビュー
マトリックス[V]などを用いてポリゴン内部の画素ご
との色を計算する。このとき、オブジェクトを構成する
各ポリゴンの座標をワールド座標系に変換するためのモ
デリングマトリックス[M](図6を使って説明した時
に、最終的に[MR]に格納されたマトリックス)も利
用する。シェーディングの詳細は、本発明の本質ではな
いのでこれ以上触れない。ステップ805で、ポリゴン
で2次元スクリーンに描画する。ステップ806でオブ
ジェクトを構成する全てのポリゴンについて描画したか
を判断し、全てを描画した場合、ステップ807でポリ
ゴン描画を終了する。
【0036】以上本発明のアニメーション生成装置の構
成、動作について図2をもとにして述べた。ここで図1
に、本発明のアニメーション生成装置の原理構成図を示
しこれを説明する。オブジェクトテーブル記憶手段10
で、1フレーム中に描画すべき全ての3次元オブジェク
トのリストと、各オブジェクトの詳細なパラメータへの
ポインタ(アドレス)情報を記憶する。詳細なパラメー
タには、各オブジェクトのアニメーション動作を生成す
るための補間パラメータと各オブジェクトの初期位置モ
デリングマトリックスが含まれており、これらはオブジ
ェクトデータ記憶手段11で記憶される。オブジェクト
描画選択手段12は、描画すべきオブジェクトを順に選
択して関係するオブジェクト情報をオブジェクトテーブ
ル記憶手段10及びオブジェクトデータ記憶手段11か
ら読み出す。描画する時刻に応じたフレームカウンタが
フレームカウンタ生成手段13により生成され、補間マ
トリックス生成手段14で使われる。補間マトリックス
生成手段14は、現在のフレームカウンタとオブジェク
トの補間パラメータを用いて各オブジェクトを3次元ワ
ールド空間に配置するために必要な補間マトリックスを
生成する。生成された補間マトリックスは、モデリング
マトリックス合成手段15により、初期位置モデリング
マトリックスと掛け合わされ、モデリングマトリックス
が合成される。各オブジェクトの3次元座標データを2
次元スクリーン座標データに変換するために必要なビュ
ーマトリックスを含む共通データは共通データ記憶手段
16に記憶されており、モデル・ビューマトリックス合
成手段17が、モデリングマトリックスとビューマトリ
ックスを合成する。合成されたモデル・ビューマトリッ
クスを用いて各オブジェクトを構成するポリゴン座標デ
ータを2次元スクリーン上での座標データに変換し、共
通データ記憶手段16に記憶されている光源データなど
からポリゴン描画手段18によってスクリーン上にポリ
ゴンを描画する。
成、動作について図2をもとにして述べた。ここで図1
に、本発明のアニメーション生成装置の原理構成図を示
しこれを説明する。オブジェクトテーブル記憶手段10
で、1フレーム中に描画すべき全ての3次元オブジェク
トのリストと、各オブジェクトの詳細なパラメータへの
ポインタ(アドレス)情報を記憶する。詳細なパラメー
タには、各オブジェクトのアニメーション動作を生成す
るための補間パラメータと各オブジェクトの初期位置モ
デリングマトリックスが含まれており、これらはオブジ
ェクトデータ記憶手段11で記憶される。オブジェクト
描画選択手段12は、描画すべきオブジェクトを順に選
択して関係するオブジェクト情報をオブジェクトテーブ
ル記憶手段10及びオブジェクトデータ記憶手段11か
ら読み出す。描画する時刻に応じたフレームカウンタが
フレームカウンタ生成手段13により生成され、補間マ
トリックス生成手段14で使われる。補間マトリックス
生成手段14は、現在のフレームカウンタとオブジェク
トの補間パラメータを用いて各オブジェクトを3次元ワ
ールド空間に配置するために必要な補間マトリックスを
生成する。生成された補間マトリックスは、モデリング
マトリックス合成手段15により、初期位置モデリング
マトリックスと掛け合わされ、モデリングマトリックス
が合成される。各オブジェクトの3次元座標データを2
次元スクリーン座標データに変換するために必要なビュ
ーマトリックスを含む共通データは共通データ記憶手段
16に記憶されており、モデル・ビューマトリックス合
成手段17が、モデリングマトリックスとビューマトリ
ックスを合成する。合成されたモデル・ビューマトリッ
クスを用いて各オブジェクトを構成するポリゴン座標デ
ータを2次元スクリーン上での座標データに変換し、共
通データ記憶手段16に記憶されている光源データなど
からポリゴン描画手段18によってスクリーン上にポリ
ゴンを描画する。
【0037】次に、図9を用いて実際のアニメーション
でのモデリングマトリックスの補間の様子を示す。図9
(a)では、直方体のオブジェクト901が、ワールド
空間内でフレームカウンタの増加に応じて平行移動して
いる様子を示している。初期位置901では、オブジェ
クトの位置は、初期位置モデリングマトリックス[M
0]で表されている。これが、1フレームカウント後に
は、902の場所に移動しモデリングマトリックスは、
[M0]×[ΔM(1)]で表されている。ここで、補
間モデリングマトリックス[ΔM(1)]は、あらかじ
めROMメモリに格納されオブジェクトテーブルからそ
のアドレスを指定された補間パラメータによって生成さ
れたものである。以降、903、904と移動する。図
9(b)では、6角柱のオブジェクトがワールド空間中
のある場所で、フレームカウンタの増加に応じて回転し
ている様子を示している。図では簡単のため回転後の6
角柱の絵を省略して、回転を矢印だけで示している。初
期位置905では、オブジェクトの位置は、初期位置モ
デリングマトリックス[M0]で表されている。以降、
[ΔM(1)]、[ΔM(2)]、[ΔM(3)]がフ
レームカウンタの増加に応じてそれぞれ[M0]に掛け
合わされてモデリングマトリックスが合成される。ここ
で、前述したように、オブジェクトの回転がワールド空
間中の軸の周りの回転ではなく、オブジェクト自身の中
心軸周りの回転であるため、補間モデリングマトリック
スを[M0]の左側から掛け合わせている。この演算方
向は、それぞれの補間パラメータの中(図13の130
3)で指定されていることになる。
でのモデリングマトリックスの補間の様子を示す。図9
(a)では、直方体のオブジェクト901が、ワールド
空間内でフレームカウンタの増加に応じて平行移動して
いる様子を示している。初期位置901では、オブジェ
クトの位置は、初期位置モデリングマトリックス[M
0]で表されている。これが、1フレームカウント後に
は、902の場所に移動しモデリングマトリックスは、
[M0]×[ΔM(1)]で表されている。ここで、補
間モデリングマトリックス[ΔM(1)]は、あらかじ
めROMメモリに格納されオブジェクトテーブルからそ
のアドレスを指定された補間パラメータによって生成さ
れたものである。以降、903、904と移動する。図
9(b)では、6角柱のオブジェクトがワールド空間中
のある場所で、フレームカウンタの増加に応じて回転し
ている様子を示している。図では簡単のため回転後の6
角柱の絵を省略して、回転を矢印だけで示している。初
期位置905では、オブジェクトの位置は、初期位置モ
デリングマトリックス[M0]で表されている。以降、
[ΔM(1)]、[ΔM(2)]、[ΔM(3)]がフ
レームカウンタの増加に応じてそれぞれ[M0]に掛け
合わされてモデリングマトリックスが合成される。ここ
で、前述したように、オブジェクトの回転がワールド空
間中の軸の周りの回転ではなく、オブジェクト自身の中
心軸周りの回転であるため、補間モデリングマトリック
スを[M0]の左側から掛け合わせている。この演算方
向は、それぞれの補間パラメータの中(図13の130
3)で指定されていることになる。
【0038】図15〜図18を用いて別の実際のオブジ
ェクトのアニメーション例を説明する。図15(a)に
示すようなObj.A〜Obj.Gの7つのオブジェク
トがツリー状に●印の関節で接続された物体が、フレー
ムカウンタの増加に応じて動くものとする。Obj.A
〜Obj.Gは、実際にはZ方向にも厚みのあるオブジ
ェクトであるが、簡単のため厚みを省略して描いてい
る。フレームカウンタが0の時の各オブジェクトの初期
位置は、図15(a)に示すとおりとする。図中、a〜
gの●は、関節を表しており、この点を通るZ軸に平行
な線を回転軸にして各物体が移動する(関節を曲げる)
ことが可能な物体である。[Mb]、[Mc]〜[M
g]は、対応するb、c〜gの関節の位置をaを基準と
して算出するのに必要なモデリングマトリックスを表
す。図15(b)は、フレームカウンタが1以降のある
シーンを表している。図中の説明文にもあるように、O
bj.Aは初期位置モデリングマトリックスによってワ
ールド空間に配置された後、フレームカウントfに従っ
て平行移動するものとする。Obj.B〜Gは、Ob
j.Aと同じ初期位置モデリングマトリックスによる配
置に加え、フレームカウントfに従ってそれぞれ関節b
〜gを中心とした回転により新しい場所に移動するもの
とする。このような、7つのオブジェクトが同時に移動
する場合のアニメーション生成に必要なオブジェクトテ
ーブルを図16に示す。ポリゴンパラメータについて
は、省略している。初期位置モデリングマトリックスア
ドレスと、補間パラメータアドレスは、図17に示すよ
うに1701のROMメモリデバイス中のアドレスを示
す。1702は、補間パラメータの内容を1701の補
間パラメータの右側に対応させて示している。図17の
例えば、アドレス30番地の内容は、図16のオブジェ
クトテーブルのObj.Fの補間パラメータアドレスか
ら示される補間パラメータが格納されている。この補間
パラメータから補間マトリックス[Mf]が生成され
る。これまでの説明では、補間マトリックスは、[Δ
?]で表してきたが、このアニメーション例では、フレ
ームカウンタfを乗じないで生成された補間マトリック
スについてはΔを省いている。オブジェクトテーブルか
らObj.Fの補間パラメータの個数は、9個であるこ
とがわかる。アドレス30番地の補間パラメータMfか
らアドレスの大きいほうへ順に9個の補間パラメータを
読み出して補間マトリックスを合成してゆく。ただし、
補間パラメータの内容1702の、次に参照するパラメ
ータへのオフセットの値が1以外の場合は、アドレスの
大きい方へそのオフセット値だけとばして読み出す(詳
しくは、値が3なら2個のパラメータを読まずに3個目
を読む)。Obj.Fの場合は、30番地のMf、次の
ΔMFf、ここでΔMFfのオフセット値が3であるか
ら、50番地へ飛んでMd、ΔMDf、以下ΔMAfま
で順に9個の補間パラメータを読み出す。Obj.Fに
関する以上9個の全ての補間パラメータの内容に従って
生成したモデリングマトリックスは、乗算すると最終的
なモデリングマトリックスが、図18の最後の式に示す
ようになる。これは前述した(数2)の形になってい
る。
ェクトのアニメーション例を説明する。図15(a)に
示すようなObj.A〜Obj.Gの7つのオブジェク
トがツリー状に●印の関節で接続された物体が、フレー
ムカウンタの増加に応じて動くものとする。Obj.A
〜Obj.Gは、実際にはZ方向にも厚みのあるオブジ
ェクトであるが、簡単のため厚みを省略して描いてい
る。フレームカウンタが0の時の各オブジェクトの初期
位置は、図15(a)に示すとおりとする。図中、a〜
gの●は、関節を表しており、この点を通るZ軸に平行
な線を回転軸にして各物体が移動する(関節を曲げる)
ことが可能な物体である。[Mb]、[Mc]〜[M
g]は、対応するb、c〜gの関節の位置をaを基準と
して算出するのに必要なモデリングマトリックスを表
す。図15(b)は、フレームカウンタが1以降のある
シーンを表している。図中の説明文にもあるように、O
bj.Aは初期位置モデリングマトリックスによってワ
ールド空間に配置された後、フレームカウントfに従っ
て平行移動するものとする。Obj.B〜Gは、Ob
j.Aと同じ初期位置モデリングマトリックスによる配
置に加え、フレームカウントfに従ってそれぞれ関節b
〜gを中心とした回転により新しい場所に移動するもの
とする。このような、7つのオブジェクトが同時に移動
する場合のアニメーション生成に必要なオブジェクトテ
ーブルを図16に示す。ポリゴンパラメータについて
は、省略している。初期位置モデリングマトリックスア
ドレスと、補間パラメータアドレスは、図17に示すよ
うに1701のROMメモリデバイス中のアドレスを示
す。1702は、補間パラメータの内容を1701の補
間パラメータの右側に対応させて示している。図17の
例えば、アドレス30番地の内容は、図16のオブジェ
クトテーブルのObj.Fの補間パラメータアドレスか
ら示される補間パラメータが格納されている。この補間
パラメータから補間マトリックス[Mf]が生成され
る。これまでの説明では、補間マトリックスは、[Δ
?]で表してきたが、このアニメーション例では、フレ
ームカウンタfを乗じないで生成された補間マトリック
スについてはΔを省いている。オブジェクトテーブルか
らObj.Fの補間パラメータの個数は、9個であるこ
とがわかる。アドレス30番地の補間パラメータMfか
らアドレスの大きいほうへ順に9個の補間パラメータを
読み出して補間マトリックスを合成してゆく。ただし、
補間パラメータの内容1702の、次に参照するパラメ
ータへのオフセットの値が1以外の場合は、アドレスの
大きい方へそのオフセット値だけとばして読み出す(詳
しくは、値が3なら2個のパラメータを読まずに3個目
を読む)。Obj.Fの場合は、30番地のMf、次の
ΔMFf、ここでΔMFfのオフセット値が3であるか
ら、50番地へ飛んでMd、ΔMDf、以下ΔMAfま
で順に9個の補間パラメータを読み出す。Obj.Fに
関する以上9個の全ての補間パラメータの内容に従って
生成したモデリングマトリックスは、乗算すると最終的
なモデリングマトリックスが、図18の最後の式に示す
ようになる。これは前述した(数2)の形になってい
る。
【0039】以上述べてきたとおり、本発明のアニメー
ション生成装置では、オブジェクトの補間を初期位置モ
デリングマトリックスとして与えられた1つのマトリッ
クスと、補間種別や補間係数といった補間パラメータと
フレームカウンタから生成した補間マトリックスから、
オブジェクトの3次元空間上での位置を示す最終的なモ
デリングマトリックスを補間生成する。これは、従来の
アニメーション生成装置で2つのモデリングマトリック
スからその変換マトリックスを求めそのマトリックスの
要素から変換パラメータを逆算しそれを線形補間して変
換マトリックスを生成していたものに比べて、補間のた
めのパラメータ量も少量で済みマトリックス計算も簡単
に出来る。また、従来例では「回転だけ」といった単純
な動きの場合しか逆変換マトリックスが算出できないた
めに複合した動きの補間が不可能であったが、本発明で
はこれが可能となる。すなわち、これは図15〜図18
を用いて説明したアニメーション例にも示した通り、補
間パラメータの中のマトリックス演算方向指定、フレー
ムカウンタfとの乗算指定、オフセットパラメータを利
用することで、より少ないデータ量で補間パラメータ構
成しかつ、親子関係を有するオブジェクトや複合した動
きのオブジェクトをアニメーション生成することができ
る。
ション生成装置では、オブジェクトの補間を初期位置モ
デリングマトリックスとして与えられた1つのマトリッ
クスと、補間種別や補間係数といった補間パラメータと
フレームカウンタから生成した補間マトリックスから、
オブジェクトの3次元空間上での位置を示す最終的なモ
デリングマトリックスを補間生成する。これは、従来の
アニメーション生成装置で2つのモデリングマトリック
スからその変換マトリックスを求めそのマトリックスの
要素から変換パラメータを逆算しそれを線形補間して変
換マトリックスを生成していたものに比べて、補間のた
めのパラメータ量も少量で済みマトリックス計算も簡単
に出来る。また、従来例では「回転だけ」といった単純
な動きの場合しか逆変換マトリックスが算出できないた
めに複合した動きの補間が不可能であったが、本発明で
はこれが可能となる。すなわち、これは図15〜図18
を用いて説明したアニメーション例にも示した通り、補
間パラメータの中のマトリックス演算方向指定、フレー
ムカウンタfとの乗算指定、オフセットパラメータを利
用することで、より少ないデータ量で補間パラメータ構
成しかつ、親子関係を有するオブジェクトや複合した動
きのオブジェクトをアニメーション生成することができ
る。
【0040】(実施の形態2)次に請求項2に記載のア
ニメーション生成装置について述べる。実施の形態1で
は、アニメーション演算部206で現在の時刻に応じた
フレームカウンタデータを生成するフレームカウンタ生
成手段を実現していた。この場合、フレームカウンタf
は同一時刻では1つしか存在しえない。これは全てのオ
ブジェクトが同じフレームカウンタに従って動作してい
る限りにおいては、全く問題を生じない。請求項2の発
明では、フレームカウンタ生成手段13により、各オブ
ジェクト毎に異なるフレームカウンタを有することが出
来るアニメーション生成装置を提供する。図14を用い
て実施の形態の1つを説明する。図14に示すのは、図
10に示したオブジェクトテーブルを拡張したものであ
る。各オブジェクトのデータ項目にフレームカウンタ1
406を追加している。1401〜1405の項目は、
図10の1001〜1005と同一である。補間マトリ
ックスを生成する際にオブジェクトごとに異なる値をと
りうるこのフレームカウンタを用いる。このようにオブ
ジェクト毎に異なるフレームカウンタをとる事が出来る
ため、特定のオブジェクトだけフレームカウンタの値を
逆戻しにカウントしたり、2づつ加算するといったこと
が可能になり、アニメーションの表現を多様にする事が
出来るという効果がある。
ニメーション生成装置について述べる。実施の形態1で
は、アニメーション演算部206で現在の時刻に応じた
フレームカウンタデータを生成するフレームカウンタ生
成手段を実現していた。この場合、フレームカウンタf
は同一時刻では1つしか存在しえない。これは全てのオ
ブジェクトが同じフレームカウンタに従って動作してい
る限りにおいては、全く問題を生じない。請求項2の発
明では、フレームカウンタ生成手段13により、各オブ
ジェクト毎に異なるフレームカウンタを有することが出
来るアニメーション生成装置を提供する。図14を用い
て実施の形態の1つを説明する。図14に示すのは、図
10に示したオブジェクトテーブルを拡張したものであ
る。各オブジェクトのデータ項目にフレームカウンタ1
406を追加している。1401〜1405の項目は、
図10の1001〜1005と同一である。補間マトリ
ックスを生成する際にオブジェクトごとに異なる値をと
りうるこのフレームカウンタを用いる。このようにオブ
ジェクト毎に異なるフレームカウンタをとる事が出来る
ため、特定のオブジェクトだけフレームカウンタの値を
逆戻しにカウントしたり、2づつ加算するといったこと
が可能になり、アニメーションの表現を多様にする事が
出来るという効果がある。
【0041】次に請求項3に記載のアニメーション生成
装置について述べる。請求項1及び請求項2に記載の発
明では、フレームカウンタの値を時刻に基づいた値、も
しくは時刻とともに逆戻りするような値としていたた
め、フレームカウンタの値は、整数に限られていた。す
なわち、1秒間に30のフレームを生成するような場合
フレームカウンタは30分の1秒ごとに1づつ増減して
いた。請求項3の発明では、フレームカウンタの値に小
数の値も生成できるフレームカウンタ生成手段13を有
するアニメーション生成装置を提供する。図14のフレ
ームカウンタ1406で小数値が格納できる。このよう
に、小数値のフレームカウンタを利用出来ることで、非
常に低速度で動くオブジェクトの補間が精度よく行うこ
とが出来るという効果がある。
装置について述べる。請求項1及び請求項2に記載の発
明では、フレームカウンタの値を時刻に基づいた値、も
しくは時刻とともに逆戻りするような値としていたた
め、フレームカウンタの値は、整数に限られていた。す
なわち、1秒間に30のフレームを生成するような場合
フレームカウンタは30分の1秒ごとに1づつ増減して
いた。請求項3の発明では、フレームカウンタの値に小
数の値も生成できるフレームカウンタ生成手段13を有
するアニメーション生成装置を提供する。図14のフレ
ームカウンタ1406で小数値が格納できる。このよう
に、小数値のフレームカウンタを利用出来ることで、非
常に低速度で動くオブジェクトの補間が精度よく行うこ
とが出来るという効果がある。
【0042】(実施の形態3)次に請求項4に記載のア
ニメーション生成装置について述べる。図19に本発明
によるアニメーション生成装置の原理構成図を示す。こ
れは、図1にオブジェクトテーブル変更手段20を追加
したものである。請求項1〜3のアニメーション生成装
置では、オブジェクトテーブル記憶手段は、1つの半導
体集積回路内の記憶デバイスなどで構成されていた。こ
の場合、記憶デバイスの容量に制限があるとオブジェク
トテーブルの容量が制限され記憶できるオブジェクトの
数が制限を受ける可能性がある。第3の発明では、オブ
ジェクトテーブル変更手段20を用いることで、オブジ
ェクトテーブルの内容の一部または全てを書き換える事
が可能となる。図2のアニメーション生成装置で実施の
形態を説明する。外部CPU202と外部記憶装置20
3とこれを制御するプログラムでオブジェクトテーブル
変更手段20を実現することが可能である。例えば、オ
ブジェクトテーブルに記憶されたオブジェクトのリスト
の内容が大きく変更されるシーンの切れ目に、CPU2
01から外部記憶装置202に記憶した別のシーンのオ
ブジェクトリストの内容をオブジェクトテーブル205
に変更することができる。このように、オブジェクトテ
ーブル変更手段を備える事で、オブジェクトテーブルの
容量以上のオブジェクトを扱うことができるという効果
がある。
ニメーション生成装置について述べる。図19に本発明
によるアニメーション生成装置の原理構成図を示す。こ
れは、図1にオブジェクトテーブル変更手段20を追加
したものである。請求項1〜3のアニメーション生成装
置では、オブジェクトテーブル記憶手段は、1つの半導
体集積回路内の記憶デバイスなどで構成されていた。こ
の場合、記憶デバイスの容量に制限があるとオブジェク
トテーブルの容量が制限され記憶できるオブジェクトの
数が制限を受ける可能性がある。第3の発明では、オブ
ジェクトテーブル変更手段20を用いることで、オブジ
ェクトテーブルの内容の一部または全てを書き換える事
が可能となる。図2のアニメーション生成装置で実施の
形態を説明する。外部CPU202と外部記憶装置20
3とこれを制御するプログラムでオブジェクトテーブル
変更手段20を実現することが可能である。例えば、オ
ブジェクトテーブルに記憶されたオブジェクトのリスト
の内容が大きく変更されるシーンの切れ目に、CPU2
01から外部記憶装置202に記憶した別のシーンのオ
ブジェクトリストの内容をオブジェクトテーブル205
に変更することができる。このように、オブジェクトテ
ーブル変更手段を備える事で、オブジェクトテーブルの
容量以上のオブジェクトを扱うことができるという効果
がある。
【0043】
【発明の効果】以上のように本発明によれば、オブジェ
クトの補間を初期位置モデリングマトリックスとして与
えられた1つのマトリックスと、補間種別や補間係数と
いった補間パラメータとフレームカウンタから生成した
補間マトリックスから、オブジェクトの3次元空間上で
の位置を示す最終的なモデリングマトリックスを補間生
成する。これにより、従来のアニメーション生成装置で
は難しかった複雑な動きをするオブジェクトや親子関係
をもったオブジェクトのアニメーションを少量のパラメ
ータで簡単に実現することができる。
クトの補間を初期位置モデリングマトリックスとして与
えられた1つのマトリックスと、補間種別や補間係数と
いった補間パラメータとフレームカウンタから生成した
補間マトリックスから、オブジェクトの3次元空間上で
の位置を示す最終的なモデリングマトリックスを補間生
成する。これにより、従来のアニメーション生成装置で
は難しかった複雑な動きをするオブジェクトや親子関係
をもったオブジェクトのアニメーションを少量のパラメ
ータで簡単に実現することができる。
【0044】また、オブジェクト毎に異なるフレームカ
ウンタをとる事が出来る本発明のアニメーション生成装
置では、特定のオブジェクトだけフレームカウンタの値
を逆戻しにカウントしたり、2づつ加算するといったこ
とが可能になり、アニメーションの表現を多様にする事
が出来る。
ウンタをとる事が出来る本発明のアニメーション生成装
置では、特定のオブジェクトだけフレームカウンタの値
を逆戻しにカウントしたり、2づつ加算するといったこ
とが可能になり、アニメーションの表現を多様にする事
が出来る。
【0045】また、実数値のフレームカウンタを生成出
来る本発明のアニメーション生成装置では、フレームカ
ウンタの値に小数の値も生成できるため、非常に低速度
で動くオブジェクトの補間を精度よく行うことが出来る
という効果がある。
来る本発明のアニメーション生成装置では、フレームカ
ウンタの値に小数の値も生成できるため、非常に低速度
で動くオブジェクトの補間を精度よく行うことが出来る
という効果がある。
【0046】さらに、オブジェクトテーブル変更手段を
備えた本発明のアニメーション生成装置では、オブジェ
クトのリストの内容が大きく変更されるシーンの切れ目
に外部から別のシーンのオブジェクトリストの内容に変
更することができるため、オブジェクトテーブルの容量
以上のオブジェクトを扱うことができる。
備えた本発明のアニメーション生成装置では、オブジェ
クトのリストの内容が大きく変更されるシーンの切れ目
に外部から別のシーンのオブジェクトリストの内容に変
更することができるため、オブジェクトテーブルの容量
以上のオブジェクトを扱うことができる。
【図1】アニメーション生成装置の原理構成図
【図2】アニメーション生成装置の構成図
【図3】アニメーション描画のフローチャート
【図4】オブジェクト描画のフローチャート
【図5】マトリックス合成の動作フローチャート
【図6】マトリックス演算部の構成図
【図7】補間マトリックス[ΔM]生成フローチャート
【図8】ポリゴン描画のフローチャート
【図9】アニメーション動作の一例を示す図
【図10】オブジェクトテーブルの構成を示した図
【図11】ポリゴンパラメータデータの構成を示した図
【図12】初期位置モデリングマトリックスの構成を示
した図
した図
【図13】補間パラメータデータの構成を示した図
【図14】第2の発明に係るオブジェクトテーブルの構
成を示した図
成を示した図
【図15】アニメーション動作の一例を示す図
【図16】アニメーション例のオブジェクトテーブルの
内容を示した図
内容を示した図
【図17】アニメーション例の補間パラメータの内容を
示した図
示した図
【図18】アニメーション例の最終モデリングマトリッ
クスを示した図
クスを示した図
【図19】第2のアニメーション生成装置の原理構成図
10 オブジェクトテーブル記憶手段 11 オブジェクトデータ記憶手段 12 オブジェクト描画選択手段 13 フレームカウンタ生成手段 14 補間マトリックス生成手段 15 モデリングマトリックス合成手段 16 共通データ記憶手段 17 モデル・ビューマトリックス合成手段 18 ポリゴン描画手段 19 アニメーション演算部
Claims (5)
- 【請求項1】描画中の現在の時刻に基づき生成されたフ
レームカウンタデータと、オブジェクトの補間パラメー
タを用いて前記オブジェクトを3次元空間に配置するた
めのモデリングマトリックスを生成するのに必要な補間
マトリックスを生成する補間マトリックス生成手段と、 前記補間マトリックスとモデルの初期位置モデリングマ
トリックスから現在のモデリングマトリックスを合成す
るモデリングマトリックス合成手段とを具備したアニメ
ーション生成装置。 - 【請求項2】1フレーム中に描画すべき全ての3次元オ
ブジェクトのリストと前記オブジェクトの詳細パラメー
タへのポインタ情報を記憶したオブジェクトテーブル記
憶手段と、 前記オブジェクトのアニメーション動作を生成するため
の補間パラメータと前記オブジェクトの初期位置モデリ
ングマトリックスを含む前記オブジェクトの詳細なパラ
メータを記憶するオブジェクトデータ記憶手段と、 前記オブジェクトテーブルと前記オブジェクトデータか
ら描画すべき3次元オブジェクトを順に選択するオブジ
ェクト描画選択手段と、 描画中の現在の時刻に基づきフレームカウンタデータを
生成するフレームカウンタ生成手段と、 3次元空間を2次元スクリーンに投影するために必要な
ビューマトリックス情報を含む光源データなどの描画に
関する共通データを記憶する共通データ記憶手段と、 前記現在のモデリングマトリックスとビューマトリック
スから、各オブジェクトの3次元座標データを2次元ス
クリーン座標情報へ変換するためのモデル・ビューマト
リックスを合成するモデル・ビューマトリックス合成手
段と、 前記モデル・ビューマトリックスを用いて変換した各オ
ブジェクトを構成するポリゴン座標データと前記共通デ
ータ記憶手段に記憶されている光源データなどからスク
リーン上にポリゴンを描画するポリゴン描画手段とを具
備した請求項1記載のアニメーション生成装置。 - 【請求項3】前記フレームカウンタ生成手段は、前記フ
レームカウンタデータを複数の3次元オブジェクトのそ
れぞれに異なる値として生成する請求項2に記載のアニ
メーション生成装置。 - 【請求項4】前記フレームカウンタ生成手段は、前記フ
レームカウンタとして実数の値を生成する請求項2また
は請求項3記載のアニメーション生成装置。 - 【請求項5】前記1フレーム中に描画すべき全ての3次
元オブジェクトのリストと前記オブジェクトの詳細パラ
メータへのポインタ情報の内容を記憶したオブジェクト
テーブルを1フレームごとに更新するためのオブジェク
トテーブル更新手段を具備する請求項1乃至請求項4に
記載のアニメーション生成装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP9123687A JPH10312470A (ja) | 1997-05-14 | 1997-05-14 | アニメーション生成装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP9123687A JPH10312470A (ja) | 1997-05-14 | 1997-05-14 | アニメーション生成装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH10312470A true JPH10312470A (ja) | 1998-11-24 |
Family
ID=14866846
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP9123687A Pending JPH10312470A (ja) | 1997-05-14 | 1997-05-14 | アニメーション生成装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH10312470A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003509880A (ja) * | 1999-09-03 | 2003-03-11 | アイサーフティーヴィー | ビデオストリームにおける移動物体のマーキング |
-
1997
- 1997-05-14 JP JP9123687A patent/JPH10312470A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003509880A (ja) * | 1999-09-03 | 2003-03-11 | アイサーフティーヴィー | ビデオストリームにおける移動物体のマーキング |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6937240B2 (en) | Methods and apparatus for transforming three-dimensional objects in video games | |
| US6608631B1 (en) | Method, apparatus, and computer program product for geometric warps and deformations | |
| US6208360B1 (en) | Method and apparatus for graffiti animation | |
| US4600919A (en) | Three dimensional animation | |
| JP4846120B2 (ja) | スケルトンアニメーションのステッチングハードウェアを有するグラフィクス装置 | |
| JP3972784B2 (ja) | 画像処理装置およびその方法 | |
| US20030184544A1 (en) | Modeling human beings by symbol manipulation | |
| US7173622B1 (en) | Apparatus and method for generating 3D images | |
| JPH0816820A (ja) | 3次元アニメーション作成装置 | |
| JP4206547B2 (ja) | 画像処理方法、その画像処理装置及びそれに利用する一体整形モデルデータ及び画像処理プログラムを記録した記録媒体 | |
| JP4053078B2 (ja) | 3次元ゲーム装置及び情報記憶媒体 | |
| US7113189B2 (en) | Recording medium storing 3D model deformation program, 3D model deformation program, 3D model deformation method and video game device | |
| WO2007043386A1 (ja) | 画像処理装置、画像処理方法及び情報記憶媒体 | |
| JP3957363B2 (ja) | 3次元ゲーム装置及び情報記憶媒体 | |
| Kaufman | The CUBE workstation—a 3-D voxel-based graphics environment | |
| Han | 3D graphics for game programming | |
| El-Sana et al. | Efficiently computing and updating triangle strips for real-time rendering | |
| JPH10312470A (ja) | アニメーション生成装置 | |
| KR0166106B1 (ko) | 화상 처리 장치 및 그 방법 | |
| US8228335B1 (en) | Snapsheet animation visualization | |
| JP4229316B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
| JPH06309471A (ja) | 3次元グラフィックス描画装置 | |
| US6924804B2 (en) | Reducing the resolution of bones in a three-dimensional model | |
| Balciunas et al. | GPU-assisted ray casting of large scenes | |
| JP4479957B2 (ja) | 曲面細分割装置 |