JPH08212375A - 画像処理装置およびその方法 - Google Patents
画像処理装置およびその方法Info
- Publication number
- JPH08212375A JPH08212375A JP7206186A JP20618695A JPH08212375A JP H08212375 A JPH08212375 A JP H08212375A JP 7206186 A JP7206186 A JP 7206186A JP 20618695 A JP20618695 A JP 20618695A JP H08212375 A JPH08212375 A JP H08212375A
- Authority
- JP
- Japan
- Prior art keywords
- matrix
- point
- reference point
- character
- angle
- 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.)
- Granted
Links
Landscapes
- Processing Or Creating Images (AREA)
Abstract
理装置およびその方法を提供する。 【構成】 この画像処理装置は、所定のキャラクターを
移動させながら表示できるようになっている。ここで、
画像処理装置は、キャラクターの一連の動きに対応し、
キャラクターを表示するための基準となる基準点を記憶
する基準点メモリ33と、基準点に対するキャラクター
の他の位置を決定するための制御点を記憶する制御点メ
モリ32と、キャラクターに移動指令を出力する操作盤
4と、移動指令に基づいて基準点と制御点とによって定
まる座標系領域にキャラクターを表示するための画像処
理を行う画像表示処理装置5と、を備えている。そし
て、制御点を変更しても、直ちに所定の座標系における
キャラクターの配置表示を計算で行うことができるた
め、キャラクターの表現が自由になる。
Description
その方法に係わり、特に、ゲーム装置等で汎用されるキ
ャラクターの移動表示処理技術を改良した画像処理装
置、およびその方法に関するものである。
信号に応じて画面に表示される図形(表示体)を移動表
示するための装置であって、これらの表示体の移動状態
に対応する座標等のデータを記憶するとともに、その他
の必要なデータや処理プログラムを記憶するメモリと、
図形の移動状態を決定、ないしは操作するための操作指
令を出力する操作盤と、操作指令を基にメモリ内の各種
のデータや処理プログラムに応じて所定の図形を表示装
置の画面上で移動させながら表示するための表示処理を
実行し、その処理結果を含む画面を表示信号として出力
するデータ処理装置とを備えて構成されている。図形に
は部品としてのパーツとパーツの集合体としてのキャラ
クターとが含まれる。
かつ画像処理装置に対して所定の操作を行なうと、デー
タ処理装置がメモリ内のプログラムにしたがって動作
し、次のような処理を実行する。
えられると、データ処理装置は操作指令を基にメモリ内
のキャラクターの各種の移動状態(モーション)のデー
タの中で必要な移動状態のデータを取り出して複数のパ
ーツを合成させながらキャラクターを表示装置の画面上
で移動させるための処理を実行する。
従って表示される他の画面に処理結果を含めた画面の表
示信号を形成し、その表示信号を表示装置に与える。こ
れにより、キャラクターは、表示装置の画面上において
所定の背景内で移動することになる。各パーツは、ボデ
ィ座標系に定義され、これがワールド座標系にモデリン
グ変換され、次いで視野変換されることにより画面に表
示される図形となる。
おいては、キャラクターを表示装置の画面上で移動させ
るために、各パーツについてモーション中の全ての態様
毎にモデリング変換の為に必要な数種類のファクターを
用意し、これをテーブル化してメモリに記憶させてお
き、操作盤からの操作指令を基にテーブルからパーツに
関するモーションのデータを全て取り出し、これを基に
パーツを表示装置の画面上で移動表示させることにより
このキャラクターを移動させながら表示するようになっ
ていた。
画像処理装置にあっては、キャラクターを表示装置の画
面上で移動させるためには、各パーツキャラクターの各
モーションについて多量のデータが必要となって記憶テ
ーブルが大容量化し、大容量のメモリを必要とする欠点
がある。故に、このようなテーブルの作成に多大な労力
および時間が避けられない。
は、キャラクターの移動状態を示すモーションデータの
量が限定されることにより、例えばモーションの種類が
制限されたり、モーションの微細な動きが達成できない
ことがあり、人体類似のキャラクター等の如く関節など
のような多彩かつ自由な動きが期待されるようなもので
は、その動きを十分表現することができない。また、こ
のようにテーブルの作成に多大な労力および時間が必要
であるため、キャラクターの動きを変更、あるいは調整
しようとすることも容易ではない。
いて、それぞれの動きの多量のデータが用意し記憶され
ているため、キャラクターの表示のための処理時間が長
くなって画像表示が遅延する。
るために、キャラクターを移動表示させるために必要な
データ量を多くしなくても、キャラクターの動きを多彩
に表現できる画像処理装置を提供することを目的とす
る。
時間を短縮し、画像表示を迅速に実行可能な画像処理装
置を提供することを目的とする。さらに、これらの目的
を達成することができる画像処理方法を提供することを
目的とする。
に、この発明は、所定の図形を移動させながら表示でき
るように構成した画像処理装置において、前記図形の一
連の動きに対応し、この図形を表示するための基準とな
る基準点を記憶する基準点メモリと、前記基準点に対す
る図形の他の位置を決定するための制御点を記憶する制
御点メモリと、前記図形に移動指令を出力する操作手段
と、当該移動指令に基づいて、前記基準点と制御点とに
よって定まる座標系領域に前記図形を配置するための画
像処理を行なう画像表示処理手段と、を備えることを特
徴とする。
指令に基づいて決定される前記図形の一連の動きに対応
して、前記基準点メモリ及び制御点メモリから読み出し
た基準点の座標データ及び制御点の座標データから、図
形が所定の座標系に対して成す角度を求める角度演算手
段と、その求めた角度に前記図形を配置する配置手段と
を、さらに備える。
に対する制御点がなす角度を演算し、前記配置手段は当
該基準点からこの角度をもって前記図形を配置するよう
にする。
に、前記図形を表示するためのデータを所定の座標系に
予め記憶するメモリを備え、前記画像表示処理手段は、
このデータによって形成される図形を前記座標系領域に
配置する。
クスの逆行列を制御点の絶対座標に乗じることにより制
御点の基準点に対する相対座標を演算し、この相対座標
から前記角度を演算する。
されて作られたキャラクターであり、このキャラクター
の本体に対して基端側のパーツに前記基準点が設けら
れ、また先端側のパーツに対して前記制御点が設けられ
ている。前記画像表示処理手段は、パーツ同士の接続点
を演算する接続点演算手段を備え、前記角度演算手段
は、この接続点におけるパーツ同士の連結角度を演算す
るとともに、この接続点が前記基準点の基準座標に対し
て成す角度を演算し、前記配置手段は、基端側のパーツ
を基準点からこの角度をもって配置するとともに、前記
接続点から前記連結角度をもって他のパーツを配置す
る。
望の位置に変更ないしは設定可能な制御点変更・設定手
段を備える。前記角度演算手段は、前記角度を前記図形
に対して定義された長さのデータを持つ骨格に基づいて
演算する。
基づいて決定される前記図形の一連の動きに対応して、
前記基準点メモリ及び制御点メモリから読み出した基準
点の座標データ及び制御点の座標データから、前記図形
の所定の座標系に対するマトリクスを求めるマトリクス
演算手段と、その求めたマトリクスに合わせて前記図形
を配置する配置手段とを備える。
座標系に対する制御点がなすマトリクスを演算し、前記
配置手段は当該マトリクスに基づいて前記図形を配置す
る。前記マトリクス演算手段は、前記基準点のマトリク
スの転置行列を利用して制御点の基準点に対する相対座
標を演算し、この相対座標から前記マトリクスを演算す
る。
マトリクスに行列演算を適用して接続点におけるパーツ
のマトリクスを演算し、かつ前記パーツの接続点のマト
リクスに行列演算を適用することにより他のパーツのマ
トリクスを演算し、前記配置手段は、前記各パーツのマ
トリクスに基づいて前記キャラクターを所定の座標系に
配置する。
法によれば、移動指令に基づいて、基準点メモリから図
形を表示するための基準となる基準点のデータを読み出
し、かつ基準点に対する図形の他の位置を決定するため
の制御点のデータを制御点メモリから読み出し、前記基
準点と制御点とによって定まる座標系領域に図形を表示
するための画像表示処理が行なわれる。
ば、図形の移動表示が実質的に可能となるため、移動表
示に必要なデータ量を低減することができるとともに、
制御点を所望の位置に変更・設定することにより、図形
の多彩で自由な動きを実現することができる。
て決定された図形の一連の動きに対応して、前記基準点
メモリ及び制御点メモリから読み出した図形の基準点の
座標データ及び制御点の座標データから各図形の所定の
座標系に対する角度を算出し、求めた角度に図形を配置
する。したがって、この角度を予め記憶しておかなくて
も、図形の移動の都度この角度を演算し、演算した角度
で図形を表示できる。
して演算することにより、基準点に対してこの角度をも
って正確に図形を配置することができる。
このデータによって形成される図形を前記座標系領域に
配置することにより、この図形を構成する各点毎の移動
状態に対応する座標データを予め作成して記憶しておく
ことを省略できる。このデータには、二次元図形を定義
するためのスプライトデータ、三次元データを定義する
ためのポリゴンデータとが含まれる。
の絶対座標に乗じることにより制御点の基準点に対する
相対座標を演算し、この相対座標から前記角度を演算す
る。これにより基準点の座標系対する制御点が成す角度
を容易かつ迅速に求められる。前記基準点をキャラクタ
ーの基端側に設定し、制御点をキャラクターの先端側に
設定することにより、キャラクターの動作を人体類似の
ものに近づけることができる。
して構成されるものであり、基端側のパーツに対して前
記基準点が設けられ、また先端側のパーツに対して前記
制御点が設けられている時に、パーツ同士の接続点を演
算し、この接続点におけるパーツ同士の連結角度を演算
するとともに、この接続点が前記基準点の基準座標に対
して成す角度を演算し、基端側のパーツを基準点からこ
の角度をもって配置するとともに、前記接続点から前記
連結角度をもって他のパーツを配置することにより、複
数のパーツが連結して一つのキャラクターが構成される
ようなものでも、基準点と制御点とを設定するだけで、
キャラクターの移動状態を表示することができる。
指令に基づいて決定される前記キャラクター(図形)の
一連の動きに対応して、前記基準点メモリ及び制御点メ
モリから読み出したキャラクターの基準点の座標データ
及び制御点の座標データから、キャラクターの所定の座
標系に対するマトリクスを求めるマトリクス演算手段
と、その求めたマトリクスに前記キャラクターを配置す
る配置手段とを備える構成としてある。
座標軸で回転させて得られたマトリクスが他の座標軸で
回転させて得られたマトリクスの転置行列になる点に着
目し、これを利用して相対座標を出し、これによりマト
リクス演算を行なうための余弦値、正弦値を算出し、こ
れら余弦値、正弦値に基づいて行列演算を行なうことに
より、直接前記基準点の座標系に対する制御点がなすマ
トリクスを演算している。前記配置手段は当該マトリク
スに基づいて前記キャラクターを配置する。
連結して構成されるものである場合には、基端側のパー
ツに対して前記基準点が設けられ、また先端側のパーツ
に対して前記制御点が設けられているときに、前記マト
リクス演算手段では、前記制御点のマトリクスに行列演
算をして接続点におけるパーツのマトリクスを、前記の
ように演算し、かつ前記パーツの接続点のマトリクスに
行列演算を適用することにより他のパーツのマトリクス
を演算している。このように接続点についても、それぞ
れパーツのマトリクスを直接演算している。
用いて説明する。
して、キャラクターCa,Cb等を表示する表示装置
(ディスプレイ)2と、各種データ、テーブル及びプロ
グラムを記憶するメモリ3と、前記ディスプレイ2に表
示されるキャラクターCa又はCbに移動指令用の操作
信号を与える操作盤4と、操作盤4からの操作指令を基
にメモリ3内の各種データを参照して表示データを作成
し、これをディスプレイ2に与えるデータ処理装置5と
を備えている。各装置は次のように構成されている。
続されており、このデータ処理装置5から供給される表
示信号に応じてキャラクターCa,Cbやその他の画面
(例えば、背景画面(BG))を含めて一画面6として
表示する。ここで、メモリ3は、キャラクターを構成す
るためのデータとして三次元座標データを有し、データ
処理装置は所定の視点から見た図形を作成する。
ャラクターCa又はCbの構造を説明するための図であ
る。これらキャラクターCa又はCbについて総称する
場合は、以下「C」で代表させて称することとする。キ
ャラクターCは、人体を意図して構成されたものであ
り、例えば、腰部パーツU1と、胸部パーツU2と、頭
部パーツU3と、左腕部パーツU4と、右腕部パーツU
5と、左脚部パーツU6と、右脚部パーツU7とから構
成されるものとする。また、各部パーツについて総称す
る場合には、以下「U」で代表させて説明する。
及び制御点(いずれも後で詳説する。)との間で、一つ
又は二つの骨の周りに定義される。パーツUは、一つの
骨で構成されているものと二つの骨で構成されているも
のとからなる。前者は、頭部、胸部、腰部のパーツがあ
り、後者は、左右の両腕、左右の両脚のパーツがある。
この実施形態では、キャラクターとして人体を想定して
いることから便宜上骨という表現を採用した。
に関する座標データと、その基準点Tと制御点Sの間に
配置する骨、骨が二つある場合は骨同士の角度にもよっ
てパーツの配置が定義される。
点Sと基準点Tに関するデータを基に所定の座標系にお
ける各部のパーツの骨の角度を計算して求め、この座標
系における角度のデータに従って骨Bを基準点Tと制御
点Sとの間に配置する。ここで、基準点Tとは、各パー
ツを定義する際の基準となるものであって、各パーツの
基端寄りに設定される。制御点Sとは、基準点Tに対す
る各パーツの他の位置を決定するためのポイントであっ
て、各部品の先端寄りに設定される。
に対応した相対座標データ群から構成され、また、各制
御点は、各部品の一連の動きに対応し、あるいはこの動
きとは関係なく一連の動きの過程にある各部品の先端が
占める所定位置のデータ群から構成される。本実施形態
では、前記制御点のデータは、絶対座標系における絶対
座標データ群から構成されている。
標データの他、基準点の座標系が絶対座標系に対して成
す相対角度が含まれる。
基準点は、腰部パーツU1の基準点T1からの相対座標
データによって定義される。この腰部パーツU1の基準
点T1は、その他のパーツの基準となるものであって、
絶対座標系における絶対座標データと、絶対座標系に対
して成す基準点T1を中心とする座標系が成す角度によ
って特定される。
ータLを持つことになり、その長さのデータLは他の所
定座標系のX軸方向の進行方向に登録されている。した
がって、例えば一つの骨Bが、基準点Tと制御点Sとの
XYZ直交座標系のY軸,Z軸になす角度を算出し、そ
の角度に合わせて所定の座標系に登録されている骨Bの
データを、基準点Tの座標系に変換するようにすれば、
パーツがが基準点と制御点との間に定義されることにな
る。
いていえば、例えば、腰部パーツU1は、基準点T1と
制御点S1との間の骨B1の周りに定義され、胸部パー
ツU2は基準点T1と制御点S2との間の骨B2の周り
に定義され、頭部パーツU3は基準点T3と制御点S3
との間の一つの骨B3の周りに定義され、左腕部の二つ
のパーツU4は基準点T4と制御点S4との間の二つの
骨B41,B42を接続点(関節)Q4で接続し、これ
らの骨の周りに定義され、右腕部の二つのパーツU5は
基準点T5と制御点S5との間に二つの骨B51,B5
2を接続点Q5で接続して、これらの周りに定義され、
左脚部の二つのパーツU6は基準点T6と制御点S6と
の間に二つの骨B61,B62を接続点Q6で接続して
配置し、これらの周りに定義され、右脚部の二つのパー
ツU7は基準点T7と制御点S7との間に二つの骨B7
1,B72を接続点Q7で接続して配置して、これらの
周りに定義されることになる。
ーツU1ないしU7のうち一つのパーツを基本パーツに
選択し、他のパーツを付属パーツとする。基本パーツと
しては、一定時間間隔に刻まれた時刻t1〜t13におけ
るキャラクターの一連の動き(この一連の動きを「モー
ション」という。この「モーション」の一例が図3に例
示されている。)の中で、中心的なパーツであることが
好ましく、例えば、腰部のパーツU1が好ましい。な
お、胸部のパーツU2でも良い。本実施形態では、便宜
上腰部のパーツU1を基本パーツにする。
t1,t2, …における基準点T、または制御点Sとの座
標データを所定のスプライン関数によって演算すること
により、時刻と時刻との間の各点T、Sのデータ量を飛
躍的に減少させるとともに、各モーションを滑らかに表
現することができる。
基準点T5とを代表させて図3に表示するが、各モーシ
ョンデータに対する、これら基準点および制御点の軌跡
をスプライン関数によってその都度計算するか、或いは
データとして記憶すると、破線および一点鎖線で示すよ
うに滑らかな動きを表現することができる。
れる点と点との間に滑らかな曲線を形成するための関数
である。節点間毎の曲線は、例えば、次の(1)乃至
(3)式の多項式の集合によって表せられる。節点間毎
に異なる多項式を与えることもできる。
微分および積分が容易であることから、コンピュータグ
ラフィック技術において、必要となる滑らかな曲線を作
り出すことを容易とする。すなわち、節点を基準点ある
いは制御点とし、基準点と基準点との間、および制御点
と制御点との間をこのスプライン関数によって定義する
ことによって、キャラクターに滑らかな動きを与えるこ
とができる。
点T1を三次元の絶対座標系に配置し、これを基準とし
て各パーツU2〜U7の基準点T2〜T7を相対的に配
置することにより、各パーツを腰部のパーツU1に連結
させ、結果として、全体としては形の変化するキャラク
ターとして表示することができるようにしている。
内の所定の記憶領域を示すものであり、腰部パーツU1
の基準点T1の一連の動きに相当するモーションデータ
用メモリ31と、各パーツU1〜U7の制御点メモリ3
2と、U1以外の付属パーツU2〜U7の基準点メモリ
33と、骨を成すデータを記憶する骨データメモリ34
と、定義された骨から最終的にキャラクター全体(闘
士)を定義するために必要なデータを記憶する補助メモ
リ35の例を示す説明図である。
クターCに関するそれぞれ異なった動き(ジャンプ、ラ
ンニング等)に対応する複数のモーションデータ#1,
#2,…を記憶する。このモーションデータ用メモリ3
1には、複数のモーションのそれぞれについて一連の動
作の各態様毎の前記基本パーツである腰部パーツU1の
基準点の3次元絶対座標と、あるいは、これに加えてこ
の基準点を中心とする座標系が絶対座標系対して成す角
度が記憶されている。絶対座標系とは、ワールド座標系
をいう。なお、図3はモーションの一例を示したもので
ある。
一つのキャラクターCに対して、例えば500〜700
程度用意すれば、闘士の動きを表現する場合であって
も、通常予想されるモーションの全てをほぼ網羅すると
思われる。
の付属パーツU2〜U7の制御点Sの絶対座標データを
記憶している。また、基準点メモリ33は、腰部のパー
ツU1の基準点に対する他の付属パーツU2〜U7の基
準点Tの相対座標データ、あるいはこれに加えて各基準
点の基準座標系が絶対座標系に対して成す角度を記憶し
ている。この相対座標データは、腰部のパーツU1の基
準点に対する3次元座標データによって与えられる。
ツU1,U2,U3 …について、これら各パーツを定
義するための各骨B1,B2,B3,B41,B42,
B51,B52,B61,B62,B71,B72のそ
れぞれの長さL(図2参照)に関するデータ及びその他
必要なデータを記憶している。また、これら骨B1,B
2,B3,B41,B42,B51,B52,B61,
B62,B71,B72は、先に述べたように、所定の
XYZ座標系のX軸の進行方向に登録されている。
ち形状を成すパーツ)を定義することにより、キャラク
ターの3次元図形(闘士の形状)が定義される。例え
ば、ボディ座標系に上腕の図形を定義し、これをワール
ド座標系にモデリング変換する際に、例えば、上腕のパ
ーツを成す複数のポリゴンが上腕骨(B41又はB5
1)の例えば重心に対して相対的に配置される。この
後、闘士が視野変換されてディスプレイに表示される。
補助メモリ35は、各パーツに対する3次元形状を成す
ポリゴンの座標データを記憶している。本実施形態にお
いて、骨はパーツをワールド座標系に基準点と制御点に
基づいて配置(定義)されるためのものであって、通常
は骨自体がワールド座標系に配置されない。
る上での色彩に関するデータE1 ,E2 ,E3 ,…や、
材質(木目、金属表面等)を表現するデータF1 、F2
、F3 ……等と、その他の表示特性に関するデータも
記憶されている。
タ用メモリ31、制御点メモリ32、基準点メモリ3
3、骨データメモリ34及び補助メモリ35を含むメモ
リ3は、データ処理装置5に接続されており、前記キャ
ラクターCを三次元表示するための各種データの他、そ
の他の必要なデータ(例えば、背景画像を表示するため
のデータ)や処理プログラムを記憶している。データ処
理装置5は、これらプログラムによって必要な画像処理
動作を実行できるように構成されている。
おり、キャラクターCa、Cbからなる闘士を操作する
ための操作指令を形成してデータ処理装置5に与えるよ
うになっている。ここで、この操作指令は、闘士を移動
させるための出力から主として構成される。
指令を基に、メモリ3(モーションデータ用メモリ3
1、制御点メモリ32、基準点メモリ33、骨データメ
モリ34及び補助メモリ35を含む)内の各種データ及
び処理プログラムに応じて、キャラクターCをディスプ
レイ2上で移動表示させる処理を実行し、その処理結果
を含む画面を表示信号Vdとしてディスプレイ2に出力
するようになっている。
行するCPU50を具備しており、このCPU50は、
メモリ3内の各種モーションデータ等やプログラムに従
って動作し、モーション選択ユニット(手段)51、座
標位置決定ユニット(手段)52、角度演算ユニット
(手段)53、画像出力制御ユニット(手段)54を実
現する。
5を用いて、このデータ処理装置によって実現される各
ユニット(手段)を詳細に説明する。図5は、画像処理
装置1の機能ブロック図を示したものである。
の所定動作プログラムを実行することにより、操作盤4
からの操作指令SSを読み込み、その操作指令を基にメ
モリ3のモーションデータ用メモリ31からキャラクタ
ーCの複数のモーションのうちから所定のモーションを
選択する。具体的には、CPU50は、選択されたモー
ション中のパーツU1の基準点に関するデータ群(座標
データ等)を選択する、モーション選択ユニット51を
実現する。
す。このユニットは、この選択されたモーション中の所
定タイミング(図3の(a)〜(m)のいずれか)にお
ける各パーツU1〜U7毎の基準点を、基準点メモリ3
3から相対座標の形で読み出し、同様にこのモーション
とタイミングとに対応する各パーツU1〜U7の制御点
を制御点メモリ33から読み出し、これらのデータに基
づいて、ディスプレイの表示座標系に各パーツを移動表
示するための座標位置を決定する、座標位置決定ユニッ
トを示す。パーツU1〜U7の基準点の座標は絶対座標
の形に変換され、制御点の座標とともに、表示用マトリ
クスメモリ(MD)内に記憶される。
点の座標データとから、基準点の座標系に対する各パー
ツの骨Bの角度を演算する角度演算装置である。この角
度演算ユニットにより、所定のモーション中の一態様に
おける角度が連続的に演算される。この角度も演算の都
度、表示用マトリックスメモリ(MD)内に順次記憶さ
れる。
内に構成されるもので、図7に示すように、各パーツ毎
で、かつ各モーション中のそれぞれの態様毎に、基準点
の座標データとこの基準点に対する骨の角度を記憶する
ように構成される。
座標位置決定ユニット52で得られた座標データと角度
演算ユニット53で得られた角度とから、各部品の移動
表示処理、ひいては各部品の集合体からなるキャラクタ
ーの移動表示処理を実行する。すなわち、この画像出力
制御ユニットは、マトリクスMDの内容をCRT2に順
次表示するための処理を実行するものであり、データメ
モリ34から該当する骨のデータを取り出して、基準点
から演算された角度をもってパーツを配置する処理を実
行する。
出力制御回路55が設けられている。この画像出力制御
回路55は、前記CPU50の画像出力制御ユニット5
4からのキャラクターと、前記CPU50からの画像信
号とメモリ3の内部のROMに記憶させてある画像デー
タとを基に表示信号Vdを形成して、ディスプレイ2に
与えるように構成されている。
施形態の動作を説明する。 <キャラクター作成動作>図6は、各パーツの基準点、
制御点を並びに角度データを順次演算するためのフロー
チャートである。
で、この画像処理装置1に対して必要な操作をして動作
させると、データ処理装置5がメモリ3内の動作プログ
ラムにしたがって動作を開始し、CPU50が前記各ユ
ニット51、52、53、54を実現する。そして、操
作盤4を操作することにより操作指令がデータ処理装置
5に与えられると、CPU50で実現されたモーション
選択ユニット51は、前記操作指令を基に、メモリ3内
のモーションデータ用メモリ31の中の所定のモーショ
ンデータ中から特定のモーションデータを選択する(ス
テップ101)。
に座標位置決定ユニット52が、パーツU1の一連の移
動のうち第1番目の態様(図3の(a))に対応した、
制御点S1及び基準点T1を取り出して絶対座標データ
を決定する(S102)。
ット53は、制御点S1の座標データと、基準点T1の
座標データからポリゴン(骨B1)の基準点の座標系に
おける角度を演算して決定する(S103)。これらの
座標データ及び角度データは、メモリ3内の表示用マト
リクスMDに記憶されるとともに、スタックマトリクス
メモリ(STM)に記憶させる(S104)。したがっ
て、以下の説明では、各部品のデータが演算された後、
順次、表示用マトリクスMDに記憶されるとともに、S
TMにも退避させているので、その都度言及せずに単に
表示用マトリクスMDに記憶させると表現するに止め
る。
TMを読み出しSTM内の腰部のパーツU1の基準点座
標データを取り出し(S105)、しかも、この腰部の
パーツU1に連結される胸部のパーツU2の基準点T2
のT1に対する相対座標データから、胸部パーツU2の
基準点T2の絶対座標データを演算する(S106)。
すなわち、パーツU1の基準点T1とパーツU2の基準
点T2との絶対座標系における座標位置が決定されたこ
とになる。
ト53は、制御点メモリ32から読み出した制御点S2
の座標データと、基準点メモリ33から読み出した基準
点T2の相対座標データから骨B2の基準点から見た、
すなわち基準点の座標系における角度を演算して決定す
る(S107)。これらの座標データ及び角度データ
は、メモリ3のRAM内の表示用マトリクスMDに記憶
される(S108)。以後、同様の処理が、各パーツに
ついて実行される(S109〜S128)。
よってキャラクターの上半身の画像を表示するために、
各パーツ毎の基準点の座標、制御点の座標、およびこれ
らの座標から骨の角度が演算され、かつS121〜S1
28の処理によってキャラクターの下半身を表示するた
めの同様なデータが演算されたことになる。
と所定のモーションの第1番目の態様(図3の(a))
の全パーツに対して骨の角度データが演算され、同時に
この全データが表示用マトリクスMD(図7参照)内に
設定記憶されたことになる。そして、この表示用マトリ
クスの内容に基づいて各パーツが、ディスプレイに図3
の(a)の態様となるように画面として表示されること
になる。
図6における骨Bの角度算出(S103、S107、S
111、S115、S119、S123、S127)の
動作について、一つの骨Bからなるパーツ(腰、胸、
頭)の場合と、二つの骨Bから構成されるパーツ(右
腕、左腕、右脚、左脚)の場合とに分けて説明する。
らなる部品パーツを配置するための角度を決定するため
のフローチャートである。図9は、基準点Tと制御点S
とが絶対座標系(ワールド座標系)に存在することの概
念図であり、図10は、制御点を基準点から見た座標、
すなわち、制御点を基準点の座標系に配置したこと説明
する概念図である。
Tの絶対座標(x0,y0,z0)は、一般には、x,
y,z直交座標系の原点にはない。また、所定パーツU
には角度データも含まれている。そこで、角度演算ユニ
ット53は、まず、パーツUの制御点Sの絶対座標(x
1,y1,z1)を用いて、基準点に対する制御点Sの相
対座標を求める。
Uの基準点Tの座標系を構成するマトリツクスの逆行列
を求める(S201)。次に、角度演算ユニット53
は、S201で求めた逆行列に制御点Sの絶対座標(x
1,Y1,z1)を乗じることにより、制御点の基準点の
座標系における相対座標(x2,y2,z2)を求める
(S202)。なお、基準点の座標系のマトリクスは、
絶対座標系の原点に対する基準点の座標位置および絶対
座標系に対する基準点の座標系の成すx,y,z軸の角
度によって特徴づけられる。
により、パーツUの基準点Tがx,y,z直交座標の原
点(0,0,0)に一致し、しかも制御点Sが座標点
(x2,y2,z2)で表現された状態を示している。
このような状態において、角度演算ユニット53は、次
の数式1で表せられるx軸上の点Pa(x,0,0)を
仮定する。
軸上の点Paを、x,y,z直交座標系におけるz軸回
り、y軸回り順で回転操作し、パーツUの制御点Sの座
標データ(x2,y2,z2)に対して一致させる処理を
実行する(S203)。このように処理することによ
り、角度決定ユニット53は、次の数式2,3を用い
て、骨Bがz軸に対してなす角度θZと、骨BがY軸に
対してなす角度θyを求めることができる(S20
4)。
めの基端部となるポイントであり、制御点はその先端の
ポイントを示すものである。前記角度は基準点を元にし
てパーツを配置するための角度に相当するものである。
ポリゴンデータメモリ34に記憶されているポリゴンデ
ータを、そのメモリ内の座標系から図10に示す座標系
に前記角度分を考慮に入れた変換が実行されることによ
り、基準点と制御点との間に骨を簡単に配置できるよう
になる。
御点Sの座標データと、を記憶しておくだけで、パーツ
Uのモーションを表現することができる。本来パーツU
のモーションを再現するには、基準点T、制御点Sに加
えて、パーツの角度自体を予め記憶しておく必要がある
が、本実施形態ではその必要がないので、記憶データ量
を少なくすることができる。しかも、制御点を適宜変更
することにより、基準点に対する骨の角度を所望の値に
実現でき、本実施形態のような人体類似のキャラクター
では自由な関節の動きを簡単に実現することができる。
らなるパーツを表示するためのフローチャートである。
図12は、二つの骨Bn1、Bn2(図2に示すように、こ
こで、nは4,5,6,7である。)を有するパーツU
の基準点Tを直交座標系の原点(0,0,0)に配置し
た状態の図である。図13は、このパーツUの制御点S
をこの直交座標系のX軸上の点Pb(X1,0,0)に
移動させた状態の図である。図14は、二つの骨Bn1、
Bn2の接続点Qを直交座標系の仮想点Pc(JX3 ,
0,0)に配置した状態の図である。図15は、二つの
骨Bn1、Bn2の接続点Qを直交座標系のY,Z平面から
見た状態の図である。なお、このように二つの骨Bn1、
Bn2があるパーツUには、既に説明したとおり、右腕、
左腕、右脚、左脚が相当する。
点Tを基準点の座標系の原点(0,0,0)にあると仮
定して計算を始める。パーツUの基準点Tのマトリツク
スの逆行列を求めて、これに制御点Sの絶対座標を乗じ
ることにより、制御点の相対座標(x0,y0,z0)を
求める(S301)。このことは、先に説明した図9,
図10の場合と同様である。
により、制御点のもともとの絶対座標がパーツUの基準
点に対する相対座標(x0,y0,z0)に移動、あるい
は変換された状態を示している。 このような状態にお
いて、図13に示すように、角度演算ユニット53は、
X軸上の点Pb(X1,0,0)を仮定する。次いで、
角度演算ユニット53は、この点(X1,0,0)に、
パーツUの制御点Sをもってくる操作をする(S30
2)。つまり、数式4及び数式5を用いて、Z軸回り、
Y軸回りの順に座標系を回転させると、パーツUの制御
点Sは、図13に示すように、X軸上の点Pbに移動し
た状態になる。
に示すように、各部の長さについて、骨Bn1の長さをL
1 、骨Bn2の長さをL2 、原点から点Pbまでの長さを
L0とし、かつ骨Bn1,Bn2のなす角度をθZ2とし、余
弦定理を利用すると、数式6〜8に示すように接続点Q
の座標およびこの角度θZ2を求めることができる(S3
03)。
元の座標系に戻す処理を実行する。つまり、前記数式2
及び数式3で算出した角度θZ0、θY0で、かつZ軸回
り、Y軸回りの順で回転させる。これにより、数式9に
示すように、接続点Qの座標データ(JX1,JY1,J
Z1 )が求まることになる(S304)。
の点Pb(X1,0,0)を、Z,Yの順で回転させ
て、接続点Q(JX1 、JY1 ,JZ1 )に一致させる
角度を求める。これは、図14に示すように、接続点Q
がX軸上の点Pc(JX3,0,0 )に移動したような
状態になる。このような状態に達したところで、角度演
算ユニット53では、数式10及び数式11を用いて、
骨Bn1がY軸、Z軸に対して成す角度(θY1,θZ1)を
算出している(S305)。
の角度(θY1,θZ1)の負の値(−θY1,−θZ1)で制
御点S(x0 ,y0 ,z0 )を、Y軸回り,Z軸回りの
順で回転させることにより、数式12を使用して制御点
Sの座標データ(x2 ,y2,z2 )を算出することが
できる(S306)。
のデータを使用し、数式13に示すところにより、骨B
n1の角度θX1を算出することができる(S307;図1
5参照)。
)に変換した際に、この座標系をX軸方向から見ると
(Y,Z平面として見ると)、前記制御点Sは、図15
に示すように、Y,Z平面に対して角度θX1だけずれた
点になる。このずれを角度θX1だけ補正することによ
り、制御点SをY,Z平面上に一致させることができ
る。この角度θX1を骨Bn1のX軸に対する角度とする。
Y1,θZ1とすることができ、また、骨Bn2の角度は、π
−θZ2とすることができる。このように骨Bn1は三つの
角度を有するが、骨Bn2はZ軸の角度しか持たないこと
になる。
80°逆の場合には、前記数式7おける符号を逆にし、
かつ骨Bn1の角度θX1からπを引き(θX1−π)、骨B
n2の角度θZ2の符号を逆にすれば良い。
ることができるので、パーツUの基準点Tと制御点Sの
位置における座標データに、前記骨Bをその角度になる
ように移動して配置することにより、当該位置に骨Bn
1、Bn2が定義される。
される二つのパーツであっても、一つの基準点と一つの
制御点によって、二つの骨の接合点における関節の複雑
な動きでも多彩でかつ簡単に表現することができる。
ータと、制御点Sの座標データと、ポリゴンに関するデ
ータとを記憶しておくだけでよく、例えば、パーツUの
各動きに対するX軸回り、Y軸回り、Z軸回りの全ての
回転角度までデータとして記憶しておく必要がないた
め、多量のデータを記憶させる必要がなく、しかも計算
で角度を算出するのみで角度を変更できるため角度変更
の自由度が高くなる。
U5の制御点Sの元々の座標が点AAにあり、仮に壁W
の座標データを越えていた場合には、通常、そのまま表
示すると、パーツの制御点Sの部分が壁Wに埋まってし
まうように表示されてしまう。しかしながら、CPU5
0が制御点の位置を変更する制御点位置変更・設定ユニ
ットを実現することにより、制御点Sを壁W部分の表面
位置(点BB)に簡単に変更することができ、かつこの
点(BB)に制御点Sを移動させても、この制御点Sの
データで骨Bの配置角度を簡単に計算できる。
て、パーツUの表現の自由度が増大する。CPU5は変
更された制御点の位置を制御点メモリ32に記憶する。
したがって、制御点は予めプログラムによって与えられ
るばかりでなく、キャラクターの移動表示の態様の如何
に応じて適宜設定、変更が可能となる。
準点Tに対して、パーツUの制御点Sを、点ACから点
BCにまで移動させるように動作(物体Xを取りに行く
ような動作)の場合には、本実施形態によれば、上述し
たように、前記制御点Sを点ACから点BCにもってく
るだけで、骨Bの配置角度を計算できるため、骨Bの配
置を正確に行なうことができ、しかもパーツUの表現の
自由度が増大する。
るキャラクター全体の3次元図形を絶対座標系に表示す
ることができる。そして、このようにして得た各パーツ
Uの絶対座標系のデータを記憶しているマトリクスMD
内から前記画像出力制御ユニット54(図5参照)はデ
ータを取り出し、このデータを基にキャラクターCを定
義するための画像信号を形成する。
像信号とメモリ3内に設定記憶された他の画像データ
(例えば、背景画像)とを含めた画像信号Vdを形成
し、表示装置制御信号とともにこれら信号をディスプレ
イ2に出力する。これによって、選択されたモーション
のうち第1番目の態様のキャラクターの全体像が表示さ
れる。
2番目の態様における腰部パーツU1のデータに基づい
て、前記処理を繰り返すことにより第2番目の態様のキ
ャラクターの全体像(図3の(b))が表示される。こ
れを順次繰り返すと選択されたモーションの一連の動作
を構成する全ての場面(瞬間)のキャラクターの態様を
表示することができる(図3参照)。そして、最後のキ
ャラクターの態様(図3の(m))について処理が終了
した時点で、選択されたモーションの表示を終了する。
により、キャラクターCは時刻t1のときに例えば図3
(a)に示すような形状で表示され、時刻t2 のときに
例えば図3(b)に示すような形状で表示され、・・・
時刻t13のときに例えば図7(m)に示すような形状で
表示されることになり、キャラクターCはディスプレイ
2上において連続して動作しているように見える。
す補助メモリ35が順次参照されて、各パーツに対して
定義されるポリゴンについて所定の色彩E、材質F等を
特定する記憶データが読み出されて、これら所定の色彩
や材質感を表現できるように構成されている。
実施形態では、キャラクターCを例えば7個のパーツU
1〜U7に分割し、各パーツについて例えば腰部のパー
ツU1を基本パーツとして定め、これを操作指令及びモ
ーションデータ31からモーション選択ユニット511
より基本パーツU1のモーション位置等を決定して基本
パーツの基準点を表示空間の三次元座標系(ワールド座
標系)に置いた。そして、この基本パーツU1を基準と
して制御点メモリ32、基準点メモリ33及び骨データ
メモリ34の各データを参照して、各骨Bの絶対座標系
における配置を計算で求め、これから絶対座標系におけ
るキャラクターCを構築できるのである。
ーツUの制御点Sのデータを決めることにより、各骨B
のポリゴンの絶対座標系における配置を計算により簡単
に算出することができるから、パーツUの表現の自由度
が増大し、ディスプレイ2の画面表示上でキャラクター
に対する必要な表示状態を容易に得ることができる。
しくない表示状態の場合には、制御点Sの座標を好まし
い位置に移動させるだけで、骨Bの絶対座標上での配置
を簡単に計算で出せるから、上述同様に、パーツUの表
現の自由度が増大し、かつ必要なデータ量が少なくて済
む。
腰部のパーツのモーションデータを備えることにより、
画像表示のための処理時間を短縮しながら、キャラクタ
ーを移動表示することができる。また、制御点メモリ3
2は、各モーションに対するパーツUの制御点Sのデー
タを記憶しており、かつその制御点Sの変更が容易にな
っている。
え、操作盤からの操作指令を基に所定のモーションデー
タを選択できることから、複数のモーションによってキ
ャラクターの移動表示が可能となり、キャラクターの移
動表示の多様化がさらに図れることになる。
点Sを絶対座標で与えてきたが、基準点Tに対する相対
座標でもよく、また、特定の基端部(例えば腰部のパー
ツUの基準点T1)からの相対座標であってもよい。
合体からなるキャラクターに基づいて闘士の形状を構成
するための複数のポリゴンをモデリング変換したが、骨
の集合自体を闘士の形状であるとして、ポリゴンを配置
するようにしても良い。後者の場合は、骨自体が闘士の
形状であるとして、骨を構成する複数のポリゴンが定義
される。
像処理装置の第2の実施形態について説明する。上述し
た第1の実施形態は各パーツの角度を求めてからモーシ
ョンに応じたマトリクスを求めるようにしたものである
のに対して、この第2の実施形態は、モーションに応じ
た各パーツのマトリクスを直接求めるようにしたもので
ある。以下、第2の実施形態について図18以降の図を
参照して説明する。
2の実施形態を示す機能ブロック図である。図18にお
いて、CPU50は、メモリ3内の所定動作プログラム
を実行することにより、操作盤4からの操作指令SSを
読み込み、その操作指令を基にメモリ3のモーションデ
ータ用メモリ31からキャラクターCの複数のモーショ
ンのうちから所定のモーションを選択し、具体的には、
選択されたモーション中のパーツU1の基準点に関する
データ群(座標データ等)を選択する、モーション選択
ユニット51を実現するものである。これについては、
第1の実施形態と同様である。
は、マトリクス演算ユニット52aに与えられるように
なっている。マトリクス演算ユニット52aは、この選
択されたモーション中の所定タイミング(図3の(a)
〜(m)のいずれか)におけるパーツU1〜U7毎の基
準点、各パーツU1〜U7の制御点のマトリクスMtを
メモリ32,33から読み出し、これらのデータに基づ
いて、ディスプレイの表示座標系にパーツを移動表示す
るためのマトリクスML を決定するようになっている。
また、マトリクス演算ユニット52aは、このマトリク
スML を表示用マトリクス(MD)内に記憶させるとと
もに、スタックマトリクス(STM)に記憶させるよう
になっている。また、マトリクス演算ユニット52a
は、所定のモーション中の一態様における骨(B)のマ
トリクスMを連続的に演算できるようになっている。
演算ユニット52aで得られたマトリクスとから、各パ
ーツの移動表示処理、ひいては各部品の集合体からなる
キャラクターの移動表示処理を実行する。すなわち、こ
の画像出力制御ユニット54は、マトリクスメモリMD
の内容をCRTに順次表示するための処理を実行するも
のであり、データメモリ34から該当する部品パーツの
ポリゴンデータを取り出して、基準点から演算された角
度をもってパーツを配置する処理を実行する。
出力制御回路55が設けられている。この画像出力制御
回路55は、CPU50の画像出力制御ユニット54か
らのキャラクターと、CPU50からの画像信号とメモ
リ3に記憶させてある画像データとを基に表示信号Vd
を形成して、ディスプレイ2に与えるように構成されて
いる。
ーツのマトリクスを順次演算するためのフローチャート
である。この画像処理装置1に対して必要な操作をして
動作させると、データ処理装置5がメモリ3内の動作プ
ログラムにしたがって動作を開始し、CPU50が各ユ
ニット51、52、53a、54を実現する。
作指令がデータ処理装置5に与えられると、CPU50
で実現されたモーション選択ユニット51は、操作指令
を基に、メモリ3内のモーションデータ用メモリ31の
中の所定のモーションデータ中から特定のモーションデ
ータを選択する(ステップ401)。
にマトリクス演算ユニット52aが、パーツU1の一連
の移動のうち第1番目の態様(図3の(a))に対応し
た、制御点S1及び基準点T1のデータを持つマトリク
スMt1 を取り出して、表示上の基準位置を決定すると
ともに、このような制御点S1の座標データと基準点T
1の座標データを持つマトリクスMt1 を基に骨B1の
基準位置におけるマトリクスML1を演算して決定する
(S403)。このようにして得られたマトリクスML1
は、メモリ3内の表示用マトリクスMDに記憶されると
ともに、スタックマトリクス(STM)に記憶させる
(S403)。
データが演算された後、順次、表示用マトリクスMDに
記憶されるとともに、STMにも退避させているので、
その都度言及せずに単に表示用マトリクスMDに記憶さ
せると表現するに止める。
は、STMを読み出しSTM内の腰部のパーツU1の基
準点座標データを取り出し(S404)、しかも、この
腰部のパーツU1に連結される胸部のパーツU2の基準
点T2のT1に対する座標データから、胸部パーツU2
のマトリクスML を演算する(S405)。すなわち、
パーツU1の基準点T1とパーツU2の基準点T2との
絶対座標系における座標位置が決定されたことになる。
これらの各パーツU1,U2のマトリクスML は、メモ
リ3のRAM内の表示用マトリクスMDに記憶される
(S406)。以後、同様の処理が、各パーツについて
実行される(S407〜S421)。
よってキャラクターの上半身の画像を表示するために、
各パーツ毎の基準点の座標、制御点の座標のマトリクス
Mtから骨Bを表示するためのマトリクスML が演算さ
れ、かつS416〜S421の処理によってキャラクタ
ーの下半身を表示するための同様なデータが演算された
ことになる。
と所定のモーションの第1番目の態様(図3の(a))
の全パーツのマトリクスML が演算され、同時にこの全
データが表示用マトリクスMD内に設定記憶されたこと
になる。そして、この表示用マトリクスの内容を画像出
力制御ユニット(配置ユニット)54によりディスプレ
イ2に再生することにより、図3の(a)の態様が画面
として表示されることになる。
の算出動作>図19におけるポリゴン(骨B)のマトリ
クスML の算出(S402、S405、S408、S4
11、S414、S417、S420)の動作につい
て、一つの骨Bからなるパーツ(腰、胸、頭)の場合
と、二つの骨Bから構成されるパーツ(右腕、左腕、右
脚、左脚)の場合とに分けて説明する。
つの骨Bからなるパーツを配置するためのマトリクスM
を決定するための説明図である。図20は、このマトリ
クスMを求めるためのフローチャートである。図21
は、基準点Tと制御点Sとが相対座標系に存在する場合
の説明図である。図22は、図21をZ軸方向からみた
図である。図23は、図21のXY平面をθZ だけ傾け
た平面をY軸方向から見た図である。
序で回転させたマトリクスMがZ,Y,Xの順序で回転
させたマトリクスの転置行列になることを利用してい
る。すなわち、あるマトリクスにRx,Ry,Rzの各
成分を持つ回転マトリクスを乗じて回転させるに際し、
X軸を中心に負方向に回転させ、次にY軸を中心に正方
向に回転させ、次いでZ軸を中心に正方向に回転させた
マトリクスMが、Z軸を中心に正方向に回転させ、次に
Y軸を中心に正方向に回転させ、次にX軸方向に回転さ
せたマトリクスの転置行列になるという点を利用してパ
ーツの相対座標を求め、これによりz軸及びy軸に対す
る角度を求め、これら角度で行列計算をすることによ
り、絶対座標上に配置するパーツのマトリクスMを求め
るようにしている。
点Tの絶対座標(x0,y0,z0)及び制御点Sの絶対
座標(x1,y1,z1)のマトリクスMsで表される。
また、基準点Tの絶対座標(x0,y0,z0)は、一般
には、x,y,z直交座標系の原点にはない。
テップ501)。この相対座標は、次の点に着目して得
るものである。あるマトリクスMを座標移動(T)した
ものと座標回転(R)したものの合成である行列M-1・
M(=E)は、数式14に示すように、
かつz,y,xの逆行列で回転(R)させたもの{M-1
=(T-1・Rz -1・Ry -1・Rx -1)(逆行列)}と、
x,y,zで回転(R)させ、かつマトリクスMを移動
Tしたもの{M=(Rx・Ry・Rz・T)}とを合成し
てできる行列Eは、次のような性質を持つことが分か
る。
符号を反転したもので取り扱うことができる。また、移
動(T)の逆行列は、座標の符号を反転したもので取り
扱うことができる。
リクスの角度成分(3×3)は、 Cx= cosθx ,Sx= sinθx 、Cy= cosθy ,S
y= sinθy 、Cz= cosθz ,Sz= sinθz とする
と、
回転させたマトリクスMは、上記と同様に、
Ry,Rz)となることを表している。つまり、−x,−
y,−zの順序でマトリクスMを回転させたものは、
z,y,xの順序でマトリクスMを回転させたものの転
置行列になることを意味している。
y,gz)を制御点Sの相対座標L(x0 ,y0 ,z0
)にするためには、カレントマトリックス(基準点T
に相当)を数式18のようにする必要がある。
いるときに、移動成分(m30,m31,m32)を絶対座標
(gx,gy,gz)から引くと、すなわち、x=gx
−m30,y=gy−m31,z=gz−m32と置くことに
より、カレントマトリクス(基準点T)を原点に仮定す
ることができる。これにより、基準点Tは、図20に示
すように、原点におくことができる。
御点Sの相対座標L(x0 ,y0 ,z0 )を求める。こ
の制御点Sの相対座標L(x0 ,y0 ,z0 )は、数式
18を基に、
通常の座標移動の計算量とほぼ同じである。一方、前記
第1の実施形態のように逆行列を求めてから相対座標を
求める計算であると、逆行列を求めるために座標移動の
計算量の約6倍程度かかり、さらに座標移動の計算が必
要となることから、最終的に座標移動の計算量の約7倍
必要であった。しかしながら、上述したようにこの第2
の実施形態では、第1の実施形態の計算量の約7分の1
に短縮することができる。
sin θz,cosθz,sinθy ,cosθyを簡単に求めること
ができることになる。そこで、マトリクス演算ユニット
52aは、まず、数式20から sinθz,cosθzを算出
する(ステップ502)。これは、図21のものをz軸
方向から見ると、図22に示すように、斜辺が(x0 2+
y0 2)1/2となり、かつx軸の長さがx0 、y軸の長さ
がy0 となるので、sinθz ,cosθz を簡単に算出する
ことができる。
2aは、数式21から sinθy ,cosθy を算出する
(ステップ502)。これは、図20においてxz平面
をθzだけ傾けた平面をy軸方向から見た場合には、図
22に示すようになり、斜辺が(x0 2+y0 2+z0 2)
1/2 、z軸がz0 、z軸に直交する軸が(x0 2+y0 2)
1/2となるので、sinθy,cosθyは、数式21のように
簡単に求めることができる。
sinθy,cosθy を使用して、マトリクス演算ユニット
52aは、数式22により、基準点のマトリクスMcを
Z,Y回転させる(ステップ503)。これにより、制
御点SのマトリクスMsは、
度θを与えて回転させるが、結局は、sinθ,cosθを求
めてから計算しているので、直接 sinθ,cosθを与え
て回転させた方がよいからである。
z,y回転させたものは、数式22のように、制御点S
のマトリクスMsとなる。このようにして求めたマトリ
クスは、骨のマトリクスMとしてよい。
点マトリクス、Msを制御点マトリクス、Mbを骨Bの
マトリクス、Rzをz軸回転、Ryをy軸回転、Tを座
標移動(トランス)、及びLを骨Bの長さとすると、骨
BのマトリクスMbと、基準点TのマトリクスMtと、
制御点のマトリクスMsとの間には、次の数式23に示
すようになる。
さLだけ移動したものが制御点SのマトリクスMsとな
る。
式24に示すように、
SのマトリクスMsは、
zS )とすると、基準点TのマトリクスMtを移動させ
て回転させる場合に、
本実施形態では、骨が一つの場合には、基準点Tに対す
る制御点Sの相対座標を求めることにより、sinθz,co
sθz、sinθy,cosθyを求め、しかも、これら sin、co
sの値を用いて基準点Tの制御点Sの座標を求めること
により、骨BのマトリクスMを算出することにしてい
る。
らなるパーツを表示するためのフローチャートである。
図25は、二つの骨Bn1、Bn2(図2に示すように、こ
こで、nは4,5,6,7である。)を有するパーツU
の基準点Tを直交座標系の原点(0,0,0)に配置し
た状態の図である。
相対座標を求める(ステップ601)。この相対座標の
算出の方法は、前記図9、図21〜図23に示す骨一つ
の場合の算出方法と全く同一である。このようにして制
御点Sの相対座標を求めると、パーツUの基準点Tは、
直交座標系の原点(0,0,0)に配置した状態になる
(図25参照)。
Bn2の長さをL0 、基準点Tと制御点Sの長さをL1 と
し、制御点Sの座標を仮にL(x0 ,y0 ,z0 )とす
ると、L1 =(x0 2+y02+z0 2)1/2となる。
z ,sinθy ,cosθy を算出する(ステップ602)。
これは、前述した骨一つの場合の計算方法と全く同様に
行えばよく、マトリクス演算ユニット52aは、sin θ
z ,cosθz については数式20を利用し、 sinθy ,c
osθy については数式21を利用して、それぞれ算出す
る。
たようにして得られたsinθz,cosθz,sinθy,cosθy
を使用し、行列計算を行うと長さL1 のマトリクスM
(すなわち制御点SのマトリクスMs)を得ることがで
きる。
SのマトリクスMsをz軸の上でθz2だけ回転させたも
のに相当する。したがって、次に骨Bn2のマトリクスを
算出することにする。
0 とがなす角度であり、θz1は骨Bn1と骨Bn2とがなす
角度である。したがって、マトリクス演算ユニット52
aは、余弦定理を使用し、数式27のようにして、cos
θzを算出する。
り、sinθ=±(1− cos2θ)1/2となるから、マトリ
クス演算ユニット52aは、 cosθZ2を算出した後に、
上記式よりsinθz2を算出する(ステップ604)。な
お、骨Bn2が正方向に曲がるときにはsinθz2=+(1
−cos2θz2)1/2となり、骨Bn2が逆に曲がるときにはs
inθz2=−(1−cos2θz2)1/2 となる。
上述したようにして求めた sinθz2,cosθz2を使用
し、制御点SのマトリクスMsをθz2だけz軸上で回線
させる計算をする(ステップ605)。この計算につい
て、マトリクス演算ユニット52aは、数式28を使用
して計算をしている。
を計算しなくても、骨Bn2のマトリクスを直接得ること
ができる。
ることにする。まず、図25における関係から、余弦定
理を適用すると、cosθz1は、数式29のようになる。
り、sinθ=±(1− cos2θ)1/2 となるから、マトリ
クス演算ユニット52aは、 cosθ21を算出した後に、
上記式よりsinθz1を算出する(ステップ606)。な
お、骨Bn1が正方向に曲がるときには、sinθz1=−
(1−cos2θz2)1/2となり、骨Bn1が逆に曲がるとき
にはsinθz1=+(1−cos2θz1)1/2となる。
上述したようにして求めた sinθz1,cosθz1を使用
し、骨Bn2のマトリクスM(骨Bn1と骨Bn2の接続部で
あって、マトリクス(Rz2・Ms))をθz1だけ回転さ
せる計算をする(ステップ607)。この計算につい
て、マトリクス演算ユニット52aは、数式30を使用
して計算をしている。
を計算しなくても、骨Bn1のマトリクスを直接得ること
ができる。
態では、各骨が基準位置から実際に配置される際に当該
骨に与えられるマトリクスを直接得ることができる。こ
れは、第1の実施形態が、逆行列を求めてから一致処理
を実行し、その後に角度を計算し、その角度等から実際
に配置される骨のマトリクスにするという経路をたどっ
ているのに対して、第2の実施形態では、第1の実施形
態の7分の1の計算量で相対座標を出して、回転させる
ためのsin、cosを求め、これにより所定の回転等をさせ
ることにより、骨が配置されるマトリクスを直接算出し
ているため、計算量が少なくて済むことになる。
応して、前記基準点メモリ及び制御点メモリから読み出
したキャラクターの基準点の座標データ及び制御点の座
標データから、キャラクターの所定の座標系に対するマ
トリクスを直接求めているので、演算速度が高速にな
り、しかもキャラクターの配置を正確に行なうことがで
きる。
点とによって実質的にキャラクターの移動表示が可能と
なり、キャラクターの移動表示に必要なデータ量を低減
することができるとともに、キャラクターの所望の位置
に設定することが可能になり、キャラクターの多彩で自
由な動きを実現することができる。
ット52aでは、前記基準点のマトリクスの転置行列を
利用して制御点の基準点に対する相対座標を演算し、こ
の相対座標から前記マトリクスを演算するための余弦、
正弦値をを求めるようにしたので、正確なマトリクスが
算出でき、またマトリクス算出値の再演算が必要なとき
にでも簡単かつ高速に再演算が可能になる。
複数の単位キャラクターを連結して構成されるものであ
る場合であって、基端側の単位キャラクターに対して前
記基準点が設けられ、また先端側の単位キャラクターに
対して前記制御点が設けられているときでも、マトリク
ス演算ユニット52aにより、前記制御点のマトリクス
に行列演算をして接続点における単位キャラクターのマ
トリクスを演算し、かつ前記単位キャラクターの接続点
のマトリクスに行列演算することにより他の単位キャラ
クターのマトリクスを演算できるので、連結したキャラ
クターの表現が多彩なものになる。
画面に出したいモデルの体型が異なる場合が存在する。
このような場合には、マトリクスの座標成分を再計算す
る必要がある。例えば、第1の実施形態における図2に
おいて、骨B1 の基準点T1 と骨B3 の基準点T3 の距
離が異なるときを考えてみる。
施形態による方法によって求められたマトリクスと同じ
ものといえる。しかしながら、もし、基準点T3 までの
距離が動きをつきった元のモデルより長い場合、当然、
骨B3 のマトリクスは第2の実施形態で計算したマトリ
クスと一致しない。このような場合には、骨Bn3のマト
リクスの座標成分を再計算する必要があるのである。
た座標系とは、一般的に、一致しない。例えばz軸方向
に走っている動きを作った場合、実際のゲーム上では、
xz平面上を動けなければならない。
転させておいてから、動きのマトリクスを乗じて計算す
る必要がある。このとき、骨のマトリクスに右から、角
度θyの座標変換をかけてやればよい。
ら、各パーツの角度や座標を順次計算していたが、上述
した第2の実施形態では、このような計算のやり直しに
対して、マトリクス自体を加工することで対処できるた
めに、計算量が少なくできることが分かる。
て、マトリクスが与えられたときに、角度を簡単に計算
できる方法について説明する。前記数式15を利用する
ことにより、数式31に示すように、θy,θx,θz
を算出することができる。
y,θx,θzを算出することができる。
転させた場合のθz,θy,θxだが、同様な方法によ
り、任意の回転軸の順での回転各を求めることができ
る。例えば、y,x,zの順序で回転させる場合、数式
15を参照して、数式32により求めることができる。
り、数式33のように、θx,θy,θzを算出するこ
とができる。
有効である。例えば、θx0,θy0,θz0と、θx1,
θy1,θz1の角度差を算出したいときに、これらを単純
に差し引いても、回転軸の順番が重要であるために、角
度の差とならない。このような場合、次の数式34,3
5が成立するマトリクスMxを算出すればよい。
θx1,θy1,θz1の順序で回転させたのと同じことであ
る。このようにして計算したマトリクスMxから成分を
取り出して角度を計算すれば、角度の差を正確に求める
ことができる。このようにして得られる結論は、モーシ
ョンとモーションとを滑らかにつなぐ理論に応用するこ
とができる。
像処理によれば、前記基準点と制御点とによって定まる
座標系領域に前記キャラクターを表示するようにしたの
で、これら基準点と制御点とによって実質的にキャラク
ターの移動表示が可能となり、キャラクターの移動表示
に必要なデータ量を低減することができるとともに、制
御点を所望の位置に設定することにより、キャラクター
の多彩で自由な動きを実現することができる。
前記キャラクターの一連の動きに対応して、前記基準点
メモリ及び制御点メモリから読み出したキャラクターの
基準点の座標データ及び制御点の座標データから各キャ
ラクターの所定の座標系に対する角度を角度演算ユニッ
トで算出し、その求めた角度にキャラクターを配置する
ため、キャラクターの移動を表す角度を予め記憶しなく
ても、キャラクターの移動の都度この角度を演算し、演
算された角度でキャラクターを表示することができる。
して演算することにより、基準点に対して正確にキャラ
クターを配置することができる。
データを所定の座標系に予め記憶し、このキャラクター
データによって形成されるキャラクターを前記座標系領
域に配置することにより、キャラクターを構成するため
の点毎に移動状態の座標データを登録することを省略す
ることができ、キャラクターの移動表示に必要なデータ
量を大幅に低減することができる。
点の絶対座標に乗じることにより制御点の基準点に対す
る相対座標を演算し、この相対座標から前記角度を演算
することにより、基準点の座標系対する制御点が成す角
度を容易に求めることができ、移動表示のための処理動
作が迅速化される。
側に設定し、前記制御点をキャラクターの先端側に設定
することにより、キャラクターに人体に近似した動きを
実現しながら、前記本発明の種々の効果を達成すること
ができる。
一つのキャラクターが構成されるようなものでも、基準
点と制御点とを設定するだけで、キャラクターの移動状
態を表示することができる。
応して、前記基準点メモリ及び制御点メモリから読み出
したキャラクターの基準点の座標データ及び制御点の座
標データから、キャラクターの所定の座標系に対するマ
トリクスを直接求めているので、演算量が極端に少なく
なり、かつ演算速度が高速になり、しかもキャラクター
の配置を正確に行なうことができる。
って実質的にキャラクターの移動表示が可能となり、キ
ャラクターの移動表示に必要なデータ量を低減すること
ができるとともに、キャラクターの所望の位置に設定す
ることが可能になり、キャラクターの多彩で自由な動き
を実現することができる。
前記基準点のマトリクスの転置行列を利用して制御点の
基準点に対する相対座標を演算し、この相対座標から前
記マトリクスを演算するための余弦、正弦値をを求める
ようにしたので、正確なマトリクスが算出でき、またマ
トリクス算出値の再演算が必要なときにでも簡単かつ高
速に再演算が可能になる。
ラクターを連結して構成されるものである場合であっ
て、基端側の単位キャラクターに対して前記基準点が設
けられ、また先端側の単位キャラクターに対して前記制
御点が設けられているときでも、マトリクス演算ユニッ
トにより、前記制御点のマトリクスに行列演算をして接
続点における単位キャラクターのマトリクスを演算し、
かつ前記単位キャラクターの接続点のマトリクスに行列
演算することにより他の単位キャラクターのマトリクス
を演算できるので、連結したキャラクターの表現が多彩
なものになる。
の実施形態を示すブロック図である。
図である。
を示す説明図である。
る。
ートである。
説明図である。
めのフローチャートである。
に置かれた状態の説明図である。
点TがXYZ座標系の原点に置かれた状態の説明図であ
る。
て構成される場合の角度の算出動作を説明するためのフ
ローチャートである。
標系の原点に配置した状態を示す説明図である。
の基準点TをXYZ座標系原点に、制御点SをXYZ座
標系のX軸の一点に配置した状態を示す説明図である。
点QをXYZ座標系のX軸の一点に配置した状態を示す
説明図である。
Y,Z平面からみた図である。
ある。
図である。
図である。
ローチャートである。
スの算出方法を説明するためのフローチャートである。
スの算出に使用するための説明図である。
スの算出に使用するための説明図でるあ。
スの算出に使用するための説明図でるあ。
トリクスを算出する方法を説明するためのフローチャー
トである。
スの算出方法の説明に使用する説明図である。
Claims (14)
- 【請求項1】 所定の図形を移動させながら表示できる
ように構成した画像処理装置において、 前記図形の一連の動きに対応し、この図形を表示するた
めの基準となる基準点を記憶する基準点メモリと、 前記基準点に対する図形の他の位置を決定するための制
御点を記憶する制御点メモリと、 前記図形に移動指令を出力する操作手段と、 当該移動指令に基づいて、前記基準点と制御点とによっ
て定まる座標系領域に前記図形を配置するための画像処
理を行なう画像表示処理手段と、 を備える画像処理装置。 - 【請求項2】 さらに、前記移動指令に基づいて決定さ
れる前記図形の一連の動きに対応して、前記基準点メモ
リ及び制御点メモリから読み出した基準点の座標データ
及び制御点の座標データから、図形が所定の座標系に対
して成す角度を求める角度演算手段と、その求めた角度
に前記図形を配置する配置手段とを備える請求項1記載
の装置。 - 【請求項3】 前記角度演算手段は、前記基準点の座標
系に対する制御点がなす角度を演算し、前記配置手段は
当該基準点からこの角度をもって前記図形を配置する請
求項2記載の装置。 - 【請求項4】 さらに、前記図形を表示するためのデー
タを所定の座標系に予め記憶するメモリを備え、前記画
像表示処理手段は、このデータによって形成される図形
を前記座標系領域に配置する請求項1記載の装置。 - 【請求項5】 前記角度演算手段は、前記基準点のマト
リクスの逆行列を制御点の絶対座標に乗じることにより
制御点の基準点に対する相対座標を演算し、この相対座
標から前記角度を演算する請求項2記載の装置。 - 【請求項6】 前記図形が複数のパーツが連結されたキ
ャラクターであり、このキャラクターの本体に対して基
端側のパーツに前記基準点が設けられ、また先端側のパ
ーツに対して前記制御点が設けられていると共に、前記
画像表示処理手段は、パーツ同士の接続点を演算する接
続点演算手段を備え、前記角度演算手段は、この接続点
におけるパーツ同士の連結角度を演算するとともに、こ
の接続点が前記基準点の基準座標に対して成す角度を演
算し、前記配置手段は、基端側のパーツを基準点からこ
の角度をもって配置するとともに、前記接続点から前記
連結角度をもって他のパーツを配置するようした請求項
2記載の装置。 - 【請求項7】 前記基準点を図形の基端側に設定し、前
記制御点を図形の先端側に設定する請求項1乃至6のい
ずれか一項記載の装置。 - 【請求項8】 前記画像表示処理手段は、前記制御点を
所望の位置に変更ないしは設定可能な制御点変更・設定
手段を備える請求項1記載の装置。 - 【請求項9】 前記角度演算手段は、前記角度を前記図
形に対して定義された長さのデータを持つ骨格に基づい
て演算する請求項3記載の装置。 - 【請求項10】 前記画像表示処理手段は、前記移動指
令に基づいて決定される前記図形の一連の動きに対応し
て、前記基準点メモリ及び制御点メモリから読み出した
基準点の座標データ及び制御点の座標データから、前記
図形の所定の座標系に対するマトリクスを求めるマトリ
クス演算手段と、その求めたマトリクスに合わせて前記
図形を配置する配置手段とを備える請求項1記載の装
置。 - 【請求項11】 前記マトリクス演算手段は、前記基準
点の座標系に対する制御点がなすマトリクスを演算し、
前記配置手段は当該マトリクスに基づいて前記図形を配
置する請求項10記載の装置。 - 【請求項12】 前記マトリクス演算手段は、前記基準
点のマトリクスの転置行列を利用して制御点の基準点に
対する相対座標を演算し、この相対座標から前記マトリ
クスを演算する請求項11記載の装置。 - 【請求項13】 前記図形が複数のパーツを連結したキ
ャラクターであり、このキャラクター本体の基端側にあ
るパーツに前記基準点が設けられ、また先端側にあるパ
ーツに対して前記制御点が設けられており、前記マトリ
クス演算手段は、前記制御点のマトリクスに行列演算を
適用して接続点におけるパーツのマトリクスを演算し、
かつ前記パーツの接続点のマトリクスに行列演算を適用
することにより他のパーツのマトリクスを演算し、前記
配置手段は、前記各パーツのマトリクスに基づいて前記
キャラクターを所定の座標系に配置するようした請求項
10記載の装置。 - 【請求項14】 所定の図形を移動させながら表示でき
るようした画像処理方法において、 前記図形の一連の動きに対応し、この図形を表示するた
めの基準となる基準点を設定する基準点位置設定工程
と、 前記基準点に対する図形の他の位置を決定するための制
御点を設定する制御点位置設定工程と、 前記図形に移動指令を出力する移動指令出力工程と、 この移動指令に基づいて、前記基準点と制御点とによっ
て定まる座標系領域に前記図形を表示する表示工程と、 を備える画像処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP07206186A JP3104582B2 (ja) | 1994-08-11 | 1995-08-11 | 画像処理装置およびその方法 |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP18935194 | 1994-08-11 | ||
JP6-299882 | 1994-12-02 | ||
JP29988294 | 1994-12-02 | ||
JP6-189351 | 1994-12-02 | ||
JP07206186A JP3104582B2 (ja) | 1994-08-11 | 1995-08-11 | 画像処理装置およびその方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08212375A true JPH08212375A (ja) | 1996-08-20 |
JP3104582B2 JP3104582B2 (ja) | 2000-10-30 |
Family
ID=27326165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP07206186A Expired - Fee Related JP3104582B2 (ja) | 1994-08-11 | 1995-08-11 | 画像処理装置およびその方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3104582B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11144085A (ja) * | 1997-11-07 | 1999-05-28 | Namco Ltd | 画像生成装置及び情報記憶媒体 |
JP2007058709A (ja) * | 2005-08-26 | 2007-03-08 | Light Weight:Kk | 画像処理装置、画像処理方法及びプログラム |
WO2023095728A1 (ja) * | 2021-11-26 | 2023-06-01 | 株式会社Cygames | モーションシーケンスを決定するシステム、ゲーム装置、方法、及びプログラム |
-
1995
- 1995-08-11 JP JP07206186A patent/JP3104582B2/ja not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11144085A (ja) * | 1997-11-07 | 1999-05-28 | Namco Ltd | 画像生成装置及び情報記憶媒体 |
JP2007058709A (ja) * | 2005-08-26 | 2007-03-08 | Light Weight:Kk | 画像処理装置、画像処理方法及びプログラム |
WO2023095728A1 (ja) * | 2021-11-26 | 2023-06-01 | 株式会社Cygames | モーションシーケンスを決定するシステム、ゲーム装置、方法、及びプログラム |
JP2023078947A (ja) * | 2021-11-26 | 2023-06-07 | 株式会社Cygames | モーションシーケンスを決定するシステム、ゲーム装置、方法、及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP3104582B2 (ja) | 2000-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6937240B2 (en) | Methods and apparatus for transforming three-dimensional objects in video games | |
JPH09330424A (ja) | 3次元骨格構造の動き変換装置 | |
JPH04281572A (ja) | 画像処理システムにおける実写画像とコンピュータ グラフィックスの合成方法 | |
JPH0947576A (ja) | 3次元ゲーム装置及び画像合成方法 | |
JPH06342459A (ja) | Cad方法およびcadシステム | |
JPH08212375A (ja) | 画像処理装置およびその方法 | |
JP2009070340A (ja) | 骨格動作制御システム、プログラムおよび情報記憶媒体 | |
US20180061141A1 (en) | Method and System for Progressive Drape Update on Avatar Morph for Virtual Fitting | |
JP3760341B2 (ja) | プログラム、記録媒体、画像生成装置及び画像生成方法 | |
CN114075810B (zh) | 面向混凝土3d打印的空间路径拟合方法及系统 | |
JP3938771B2 (ja) | 画像処理装置及び画像処理方法 | |
JP4329965B2 (ja) | ゲームシステム及び情報記憶媒体 | |
JP2007148856A (ja) | スキンの制御点の位置の計算装置、計算方法、ならびに、プログラム | |
JP7293036B2 (ja) | 情報処理装置、情報処理プログラム、情報処理システム及び情報処理方法 | |
JP7058625B2 (ja) | 画像処理プログラム、画像処理システム、画像処理装置、および画像処理方法 | |
JPH0994348A (ja) | 3次元ゲーム装置及び画像合成方法 | |
JP4786389B2 (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP2001067491A (ja) | 再分割多角形を用いる画像表示方法及び装置 | |
US6618055B1 (en) | Computer readable program product, method of image processing and image processing system | |
CN105984146A (zh) | 3d对象的制造方法及3d打印装置 | |
JP2006338119A (ja) | 製造検討支援装置 | |
JP2013200770A (ja) | 画像再生プログラム及びゲームシステム | |
JP2526973B2 (ja) | 三次元複合自由曲面形状の測定装置 | |
JP3401899B2 (ja) | 画像表示処理装置 | |
JP2004334662A (ja) | 画像生成システム、プログラム及び情報記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20000801 |
|
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 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080901 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080901 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090901 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |