JPH1021419A - 仮想の連結動作物体及びその変形方法 - Google Patents
仮想の連結動作物体及びその変形方法Info
- Publication number
- JPH1021419A JPH1021419A JP19408596A JP19408596A JPH1021419A JP H1021419 A JPH1021419 A JP H1021419A JP 19408596 A JP19408596 A JP 19408596A JP 19408596 A JP19408596 A JP 19408596A JP H1021419 A JPH1021419 A JP H1021419A
- Authority
- JP
- Japan
- Prior art keywords
- solid
- rotation
- motion object
- connected motion
- weighted average
- 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
- 238000000034 method Methods 0.000 title claims description 72
- 239000007787 solid Substances 0.000 claims abstract description 143
- 239000013598 vector Substances 0.000 claims abstract description 69
- 238000012545 processing Methods 0.000 claims abstract description 48
- 238000006073 displacement reaction Methods 0.000 claims abstract description 16
- 230000008569 process Effects 0.000 claims description 47
- 230000009466 transformation Effects 0.000 claims description 13
- 230000001131 transforming effect Effects 0.000 claims description 6
- 238000013519 translation Methods 0.000 claims description 4
- 230000008859 change Effects 0.000 description 30
- 239000011159 matrix material Substances 0.000 description 29
- 238000012937 correction Methods 0.000 description 26
- 238000010586 diagram Methods 0.000 description 19
- 230000005484 gravity Effects 0.000 description 10
- 238000012986 modification Methods 0.000 description 9
- 230000004048 modification Effects 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000003672 processing method Methods 0.000 description 3
- NCGICGYLBXGBGN-UHFFFAOYSA-N 3-morpholin-4-yl-1-oxa-3-azonia-2-azanidacyclopent-3-en-5-imine;hydrochloride Chemical compound Cl.[N-]1OC(=N)C=[N+]1N1CCOCC1 NCGICGYLBXGBGN-UHFFFAOYSA-N 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 229910052739 hydrogen Inorganic materials 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000037396 body weight Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000012887 quadratic function Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
Landscapes
- Processing Or Creating Images (AREA)
Abstract
(57)【要約】 (修正有)
【課題】 高度な形態と動きを実現できる仮想の連結動
作物体。 【解決手段】 祖Aはユニバーサル座標原点Oを基準と
する固体変数[U A ](位置と回転)を備え、子孫B〜
Dは連結先固体ローカル座標原点oを基準とする固体変
数[U B-D ]を備え、基準座標の状態変数[S(i-1)]に
固体変数[U(i)]を掛けて状態変数[S(i)]を求め、祖
Aより開始して子孫B,Dのユニバーサル座標の位置、
回転を画面に表示し、Cまで演算を戻し、同様の処理を
全固体で行う。物体の物理環境に応じた変形は、物体を
所定軸oの回りに回転させ、回転差分ベクトル
〈RA-C 〉と、変位の難易度のパラメータ情報gA-C と
で、加重平均回転差分ベクトル〈RAV〉を求め、ユニバ
ーサル座標原点Oの回りに〈RAV〉だけ逆回転する。回
転前からの位置差分ベクトル〈MA-C 〉と、パラメータ
情報gA-C とで、加重平均位置差分ベクトル〈MAV〉を
求め、逆回転した物体を〈MAV〉だけ逆平行移動する。
作物体。 【解決手段】 祖Aはユニバーサル座標原点Oを基準と
する固体変数[U A ](位置と回転)を備え、子孫B〜
Dは連結先固体ローカル座標原点oを基準とする固体変
数[U B-D ]を備え、基準座標の状態変数[S(i-1)]に
固体変数[U(i)]を掛けて状態変数[S(i)]を求め、祖
Aより開始して子孫B,Dのユニバーサル座標の位置、
回転を画面に表示し、Cまで演算を戻し、同様の処理を
全固体で行う。物体の物理環境に応じた変形は、物体を
所定軸oの回りに回転させ、回転差分ベクトル
〈RA-C 〉と、変位の難易度のパラメータ情報gA-C と
で、加重平均回転差分ベクトル〈RAV〉を求め、ユニバ
ーサル座標原点Oの回りに〈RAV〉だけ逆回転する。回
転前からの位置差分ベクトル〈MA-C 〉と、パラメータ
情報gA-C とで、加重平均位置差分ベクトル〈MAV〉を
求め、逆回転した物体を〈MAV〉だけ逆平行移動する。
Description
【0001】
【発明の属する技術分野】本発明は仮想の連結動作物体
及びその変形方法に関し、更に詳しくはコンピュータグ
ラフィックスにより生成され、画面に表示される仮想の
連結動作物体及びその変形方法に関する。この種の仮想
物体には、例えばゲームのキャラクタ等がある。胴体に
頭や手足を付け、これらを外観上動くように見せるもの
は、一種の連結動作物体で実現できる。
及びその変形方法に関し、更に詳しくはコンピュータグ
ラフィックスにより生成され、画面に表示される仮想の
連結動作物体及びその変形方法に関する。この種の仮想
物体には、例えばゲームのキャラクタ等がある。胴体に
頭や手足を付け、これらを外観上動くように見せるもの
は、一種の連結動作物体で実現できる。
【0002】
【従来の技術】従来は、予め幾つかの部品を用意してお
き、ゲームのシナリオに従ってこれらの部品を付け替え
るものであった。例えばキャラクタが歩いて画面を横切
る場合は、まず前向きに振られた手を付け、次に後ろ向
きに振られた手をつけ替え、これらを繰り返せば良い。
これは単純な例であるが、よりリアルな動きを得ようと
すると、胴体の肩部に腕を連結し、かつ胴体の移動と共
に手を回動させることになる。
き、ゲームのシナリオに従ってこれらの部品を付け替え
るものであった。例えばキャラクタが歩いて画面を横切
る場合は、まず前向きに振られた手を付け、次に後ろ向
きに振られた手をつけ替え、これらを繰り返せば良い。
これは単純な例であるが、よりリアルな動きを得ようと
すると、胴体の肩部に腕を連結し、かつ胴体の移動と共
に手を回動させることになる。
【0003】
【発明が解決しようとする課題】しかるに、こうして各
部品を連結してゆくと、部品数に応じて物体の構造や動
きが複雑となる。このために、例えばある部品の動きを
処理すると、その影響を受ける他の部品を探査する必要
が生じ、更には、探査した部品に処理を繋ぎ替えて動き
のフィードバック処理をする等、処理が極端に煩雑にな
ってしまう。
部品を連結してゆくと、部品数に応じて物体の構造や動
きが複雑となる。このために、例えばある部品の動きを
処理すると、その影響を受ける他の部品を探査する必要
が生じ、更には、探査した部品に処理を繋ぎ替えて動き
のフィードバック処理をする等、処理が極端に煩雑にな
ってしまう。
【0004】また、ゲーム等の世界では、ゲームの進行
に伴い、キャラクタ(連結動作物体)が様々な物理的状
態に至る場合がある。例えば腕の上に自分の重い胴体が
載っている状態で、腕の連結部に回転モーメント(トル
ク)を発生させる場合がある。係る場合に、もし胴体を
中心として単に腕を回転変形させたのでは、胴体と地面
に挟まれた腕が自由に回動することになり、物理的に不
自然である。更には、一般にキャラクタを構成する各部
品(頭,胴体,手足等)は、本来、夫々の機能・形態に
応じた重さや動き易さを備えているものである。そこ
で、これらをも考慮した、より高度な動きを実現した
い。
に伴い、キャラクタ(連結動作物体)が様々な物理的状
態に至る場合がある。例えば腕の上に自分の重い胴体が
載っている状態で、腕の連結部に回転モーメント(トル
ク)を発生させる場合がある。係る場合に、もし胴体を
中心として単に腕を回転変形させたのでは、胴体と地面
に挟まれた腕が自由に回動することになり、物理的に不
自然である。更には、一般にキャラクタを構成する各部
品(頭,胴体,手足等)は、本来、夫々の機能・形態に
応じた重さや動き易さを備えているものである。そこ
で、これらをも考慮した、より高度な動きを実現した
い。
【0005】本発明は、上記課題に鑑み成されたもので
あり、その目的とする所は、簡単なデータ構造及び又は
処理で高度な形態及び動きを実現できる仮想の連結動作
物体及びその変形方法を提供することにある。
あり、その目的とする所は、簡単なデータ構造及び又は
処理で高度な形態及び動きを実現できる仮想の連結動作
物体及びその変形方法を提供することにある。
【0006】
【課題を解決するための手段】上記の課題は例えば図1
(A)の構成により解決される。即ち、本発明(1)の
連結動作物体は、複数の仮想の固体A〜Dが木構造に連
結され、かつその連結部に加える回転情報R,0,−R
に従い各固体が変位(回転)すると共に、これに伴い木
構造物の全体が運動し又は変形するものである。
(A)の構成により解決される。即ち、本発明(1)の
連結動作物体は、複数の仮想の固体A〜Dが木構造に連
結され、かつその連結部に加える回転情報R,0,−R
に従い各固体が変位(回転)すると共に、これに伴い木
構造物の全体が運動し又は変形するものである。
【0007】本発明(1)によれば、連結動作物体は木
構造を有するので、データ構造(連結構造)が単純とな
り、処理も簡単となる。一方、木構造であれば、その固
体数や連結の仕方には制限は無いから、各連結部に加え
る回転情報に従い、複雑かつ高度な形態及び動きを実現
できる。好ましくは、本発明(2)においては、上記本
発明(1)において、木構造の先頭に位置し、かつユニ
バーサル座標原点Oからの位置PA 及び回転RA の情報
[UA ]を備える第1の固体Aと、木構造の先頭以外に
位置し、かつ自己の連結先固体が有するローカル座標原
点oからの位置p及び回転rの情報[UB ]〜[UD ]
を備える第2以降の固体B〜Dとを備える。
構造を有するので、データ構造(連結構造)が単純とな
り、処理も簡単となる。一方、木構造であれば、その固
体数や連結の仕方には制限は無いから、各連結部に加え
る回転情報に従い、複雑かつ高度な形態及び動きを実現
できる。好ましくは、本発明(2)においては、上記本
発明(1)において、木構造の先頭に位置し、かつユニ
バーサル座標原点Oからの位置PA 及び回転RA の情報
[UA ]を備える第1の固体Aと、木構造の先頭以外に
位置し、かつ自己の連結先固体が有するローカル座標原
点oからの位置p及び回転rの情報[UB ]〜[UD ]
を備える第2以降の固体B〜Dとを備える。
【0008】本発明(2)によれば、第1の固体Aは、
ユニバーサル座標原点Oからの位置及び回転の情報を備
えるので、これにより連結動作物体全体の位置及び回転
(姿勢)を容易に制御できる。また第2以降の固体B〜
Dは、自己の連結先固体が有するローカル座標原点oか
らの位置及び回転の情報を備えるので、第1の固体Aを
基準として連鎖的に物体をどの様な形にでも容易に変形
できる。更には車輪C等を回転させて運動もできる。ま
た、逆に物体全体がどの様に変位(回転,平行移動)し
ても自己の形態をそのまま維持できる。即ち、物体全体
の様々な角度からの姿態を容易に表示できる。
ユニバーサル座標原点Oからの位置及び回転の情報を備
えるので、これにより連結動作物体全体の位置及び回転
(姿勢)を容易に制御できる。また第2以降の固体B〜
Dは、自己の連結先固体が有するローカル座標原点oか
らの位置及び回転の情報を備えるので、第1の固体Aを
基準として連鎖的に物体をどの様な形にでも容易に変形
できる。更には車輪C等を回転させて運動もできる。ま
た、逆に物体全体がどの様に変位(回転,平行移動)し
ても自己の形態をそのまま維持できる。即ち、物体全体
の様々な角度からの姿態を容易に表示できる。
【0009】また、本発明(3)の連結動作物体の変形
方法は、上記本発明(2)の連結動作物体の変形方法に
おいて、基準座標を表す状態変数[S(i-1) ]に固体が
備える固体変数[U(i) ]を掛け合わせて新たな状態変
数[S(i) ]を求める演算処理と、連結動作物体の木構
造記述データに基づき、第1の固体Aより前記演算を実
行して最初の基準座標からの第1の固体の状態変数を求
めると共に、該求めた状態変数を次の演算の基準座標と
なし、かつ第2以降の固体B,Dを前記木構造記述デー
タの次世代(child)の方向に求めて、その都度新たな状
態変数を求める制御処理とを備えるものである。
方法は、上記本発明(2)の連結動作物体の変形方法に
おいて、基準座標を表す状態変数[S(i-1) ]に固体が
備える固体変数[U(i) ]を掛け合わせて新たな状態変
数[S(i) ]を求める演算処理と、連結動作物体の木構
造記述データに基づき、第1の固体Aより前記演算を実
行して最初の基準座標からの第1の固体の状態変数を求
めると共に、該求めた状態変数を次の演算の基準座標と
なし、かつ第2以降の固体B,Dを前記木構造記述デー
タの次世代(child)の方向に求めて、その都度新たな状
態変数を求める制御処理とを備えるものである。
【0010】図1(A)において、iは世代の深さを表
す。例えばi=0(祖),i=1(親),i=2
(子),i=3(孫)の世代である。最初の世代i=0
は祖Aであるので、好ましくは[S(0-1) ]をスタック
にpushすると共に、[SA ]=[UA ][S(0-1) ]の
演算により祖Aの状態変数[SA ]を求める。但し、
[S(0-1) ]は最初の基準座標であるユニバーサル座標
の原点Oを表す状態変数である。上記演算により祖Aの
ユニバーサル座標における位置及び回転(姿勢)が決ま
る。
す。例えばi=0(祖),i=1(親),i=2
(子),i=3(孫)の世代である。最初の世代i=0
は祖Aであるので、好ましくは[S(0-1) ]をスタック
にpushすると共に、[SA ]=[UA ][S(0-1) ]の
演算により祖Aの状態変数[SA ]を求める。但し、
[S(0-1) ]は最初の基準座標であるユニバーサル座標
の原点Oを表す状態変数である。上記演算により祖Aの
ユニバーサル座標における位置及び回転(姿勢)が決ま
る。
【0011】次に、祖Aの次の世代i=1(child)は親
Bであるので、好ましくは[SA ]をスタックにpushす
ると共に、[SB ]=[UB ][SA ]の再帰的演算に
より親Bの状態変数[SB ]を求める。なお、この時の
基準座標[SA ]には既にユニバーサル座標原点Oから
の位置及び回転の情報が含まれているので、上記演算に
より親Bのユニバーサル座標における位置及び回転(姿
勢)が瞬時に決まる。
Bであるので、好ましくは[SA ]をスタックにpushす
ると共に、[SB ]=[UB ][SA ]の再帰的演算に
より親Bの状態変数[SB ]を求める。なお、この時の
基準座標[SA ]には既にユニバーサル座標原点Oから
の位置及び回転の情報が含まれているので、上記演算に
より親Bのユニバーサル座標における位置及び回転(姿
勢)が瞬時に決まる。
【0012】次に、親Bの次の世代i=2(child)は子
Dであるので、好ましくは[SB ]をスタックにpushす
ると共に、[SD ]=[UD ][SB ]の再帰的演算に
より子Dの状態変数[SD ]を求める。同様にして、子
Dのユニバーサル座標における位置及び回転(姿勢)が
瞬時に決まる。かくして、本発明(3)によれば、木構
造のトップ(祖A)から開始し、かつ同一のデータ構造
及び同一の演算処理を使用したトップダウン処理方式に
より、連結動作物体を高速に生成(変形)できる。
Dであるので、好ましくは[SB ]をスタックにpushす
ると共に、[SD ]=[UD ][SB ]の再帰的演算に
より子Dの状態変数[SD ]を求める。同様にして、子
Dのユニバーサル座標における位置及び回転(姿勢)が
瞬時に決まる。かくして、本発明(3)によれば、木構
造のトップ(祖A)から開始し、かつ同一のデータ構造
及び同一の演算処理を使用したトップダウン処理方式に
より、連結動作物体を高速に生成(変形)できる。
【0013】好ましくは、本発明(4)においては、上
記本発明(3)において、制御処理は、各求めた状態変
数[SA ],[SB ],[SD ]の内容に基づき対応す
る固体A,B,Dの画像を画面に表示する。上記本発明
(3)のトップダウン処理方式により、一旦処理された
固体の位置,姿勢はもはや確定しており、他の固体の処
理からの影響を受けることは無い。従って、各固体を高
速にリアルタイムに表示できる。
記本発明(3)において、制御処理は、各求めた状態変
数[SA ],[SB ],[SD ]の内容に基づき対応す
る固体A,B,Dの画像を画面に表示する。上記本発明
(3)のトップダウン処理方式により、一旦処理された
固体の位置,姿勢はもはや確定しており、他の固体の処
理からの影響を受けることは無い。従って、各固体を高
速にリアルタイムに表示できる。
【0014】また好ましくは、本発明(5)において
は、上記本発明(3)において、制御処理は、次世代
(child)の方向に第2以降の固体が存在しないことによ
り、共通の親を持つ同世代の他(next)の第2以降の固体
が存在するまで木構造記述データの枝を逆上る。図1
(A)において、子Dには孫が存在しない(child = Nu
ll) 。そこで、この場合の制御処理は、共通の親Aを持
つ同世代i=1の他の第2以降の固体(兄弟)Cが存在
するまで木構造記述データの枝を逆上る。
は、上記本発明(3)において、制御処理は、次世代
(child)の方向に第2以降の固体が存在しないことによ
り、共通の親を持つ同世代の他(next)の第2以降の固体
が存在するまで木構造記述データの枝を逆上る。図1
(A)において、子Dには孫が存在しない(child = Nu
ll) 。そこで、この場合の制御処理は、共通の親Aを持
つ同世代i=1の他の第2以降の固体(兄弟)Cが存在
するまで木構造記述データの枝を逆上る。
【0015】なお、好ましくは、i=1の世代では上記
演算処理は[S(1) ]=[U(1) ][S(0) ]の状態に
まで戻(pop)されている。従って、次の演算は[SC ]
=[UC ][SA ]から開始できる。従って、本発明
(5)によれば、連結動作物体がどの様に枝別れしてい
ても、同一のデータ構造及び同一の再帰的演算処理を使
用したトップダウン処理方式により、連結動作物体を高
速にかつ能率良く生成(変形)できる。
演算処理は[S(1) ]=[U(1) ][S(0) ]の状態に
まで戻(pop)されている。従って、次の演算は[SC ]
=[UC ][SA ]から開始できる。従って、本発明
(5)によれば、連結動作物体がどの様に枝別れしてい
ても、同一のデータ構造及び同一の再帰的演算処理を使
用したトップダウン処理方式により、連結動作物体を高
速にかつ能率良く生成(変形)できる。
【0016】また好ましくは、本発明(6)において
は、上記本発明(5)において、制御処理は、第1の固
体A(i=0)の存在まで木構造記述データの枝を逆上
ったことにより処理終了する。従って、固体数及び連結
の仕方には制限が無い。なお、好ましくは、i=0の世
代では上記演算処理は[S(0) ]=[U(0) ][S(0-
1) ]の状態にまで戻(pop)されている。従って、上記
演算処理を初期化する必要は無く、次の時点の連結動作
物体又は他の連結動作物体を瞬時に処理できる。
は、上記本発明(5)において、制御処理は、第1の固
体A(i=0)の存在まで木構造記述データの枝を逆上
ったことにより処理終了する。従って、固体数及び連結
の仕方には制限が無い。なお、好ましくは、i=0の世
代では上記演算処理は[S(0) ]=[U(0) ][S(0-
1) ]の状態にまで戻(pop)されている。従って、上記
演算処理を初期化する必要は無く、次の時点の連結動作
物体又は他の連結動作物体を瞬時に処理できる。
【0017】また好ましくは、本発明(7)において
は、上記本発明(3)において、状態変数[S(i) ],
[S(i-1) ]及び固体変数[U(i) ]は同次座標の1次
変換行列である。本発明(7)によれば、各固体A〜D
は自己の固体変数[UA ]〜[UD ]を同次座標の1次
変換行列の形で備えるので、上記演算処理を高速に行え
る。しかも、ゲーム操作等により連結部に逐次加えられ
る回転情報R/−Rを容易に1次変換行列の回転行列R
/rに掛け合わせることができる。
は、上記本発明(3)において、状態変数[S(i) ],
[S(i-1) ]及び固体変数[U(i) ]は同次座標の1次
変換行列である。本発明(7)によれば、各固体A〜D
は自己の固体変数[UA ]〜[UD ]を同次座標の1次
変換行列の形で備えるので、上記演算処理を高速に行え
る。しかも、ゲーム操作等により連結部に逐次加えられ
る回転情報R/−Rを容易に1次変換行列の回転行列R
/rに掛け合わせることができる。
【0018】また上記の課題は例えば図1(B)の構成
により解決される。即ち、本発明(8)の連結動作物体
の変形方法は、複数の固体A〜Cが連結して構成される
連結動作物体の変形方法において、連結動作物体を所定
軸oの回りに回転させる処理と、前記回転により変位し
た各固体A〜Cの回転差分ベクトル〈RA 〉〜〈RC〉
と、各固体の変位の難易度を示すパラメータ情報gA 〜
gC とに基づき、これらの加重平均回転差分ベクトル
〈RAV〉を求める処理と、前記回転した連結動作物体を
前記所定軸oの回りに加重平均回転差分ベクトル分〈R
AV〉だけ逆回転する処理とを備えるものである。
により解決される。即ち、本発明(8)の連結動作物体
の変形方法は、複数の固体A〜Cが連結して構成される
連結動作物体の変形方法において、連結動作物体を所定
軸oの回りに回転させる処理と、前記回転により変位し
た各固体A〜Cの回転差分ベクトル〈RA 〉〜〈RC〉
と、各固体の変位の難易度を示すパラメータ情報gA 〜
gC とに基づき、これらの加重平均回転差分ベクトル
〈RAV〉を求める処理と、前記回転した連結動作物体を
前記所定軸oの回りに加重平均回転差分ベクトル分〈R
AV〉だけ逆回転する処理とを備えるものである。
【0019】なお、本発明(8)以降の変形(変位)処
理は、一般の連結動作物体に適用できるものであり、上
記木構造の連結動作物体及びその変形方法には制限され
ない事に注意されたい。図1(B)において、ローカル
座標xyzのx軸上にいる連結動作物体(点線)に対し
て原点oの回りに回転ベクトル〈R〉を加える場合を考
える。なお、実際の回転ベクトル〈R〉はz軸と平行で
あるが、説明の簡便のため、図示の如くxy平面に描
く。他も同様である。この場合に、もしこの物体が空気
中に浮いており、各固体A〜Cに何らの動き難さも無い
とすれば、物体(即ち、各固体)は一律に〈R〉だけ回
転することになる。なお、これ以降に述べる回転操作は
物体全体に対する通常の回転操作で実現できる。
理は、一般の連結動作物体に適用できるものであり、上
記木構造の連結動作物体及びその変形方法には制限され
ない事に注意されたい。図1(B)において、ローカル
座標xyzのx軸上にいる連結動作物体(点線)に対し
て原点oの回りに回転ベクトル〈R〉を加える場合を考
える。なお、実際の回転ベクトル〈R〉はz軸と平行で
あるが、説明の簡便のため、図示の如くxy平面に描
く。他も同様である。この場合に、もしこの物体が空気
中に浮いており、各固体A〜Cに何らの動き難さも無い
とすれば、物体(即ち、各固体)は一律に〈R〉だけ回
転することになる。なお、これ以降に述べる回転操作は
物体全体に対する通常の回転操作で実現できる。
【0020】しかし、この例の物体は地面z=0に接触
しており、かつ固体毎に重さが異なる。重さの相違は地
面との接触摩擦により、動き難さの相違となって現れ、
これらを所定のパラメータ情報(変化重)gA >gB >
gC で表す。係る状態では、もし各固体A〜Dをバラバ
ラに回転させたとすると、変化重gA の大きい固体Aは
より小さい〈RA 〉だけ回転し、次の固体Bは〈RB 〉
だけ回転(破線)し、変化重gC の小さい固体Cはより
大きい〈RC 〉だけ回転(破線)することになる。しか
し、連結された各固体は実際にはバラバラには動き得な
いから、このような状況を加味した物体の実際の回転
は、所定のベクトル〈RAB〉が示す位置にあることにな
る。
しており、かつ固体毎に重さが異なる。重さの相違は地
面との接触摩擦により、動き難さの相違となって現れ、
これらを所定のパラメータ情報(変化重)gA >gB >
gC で表す。係る状態では、もし各固体A〜Dをバラバ
ラに回転させたとすると、変化重gA の大きい固体Aは
より小さい〈RA 〉だけ回転し、次の固体Bは〈RB 〉
だけ回転(破線)し、変化重gC の小さい固体Cはより
大きい〈RC 〉だけ回転(破線)することになる。しか
し、連結された各固体は実際にはバラバラには動き得な
いから、このような状況を加味した物体の実際の回転
は、所定のベクトル〈RAB〉が示す位置にあることにな
る。
【0021】そこで、本発明(8)においては、このよ
うな変形処理を能率良く行うために、先ず元の連結動作
物体(点線)を所定軸oの回りに〈R〉だけ回転させ、
回転後の連結動作物体(実線)を得る。次にこの回転
〈R〉により変位した各固体A〜Cの回転差分ベクトル
〈RA 〉〜〈RC 〉と、各固体の変位の難易度を示すパ
ラメータ情報(変化重)gA 〜gC とに基づき、次式に
より、これらの加重平均回転差分ベクトル〈RAV〉を求
める。
うな変形処理を能率良く行うために、先ず元の連結動作
物体(点線)を所定軸oの回りに〈R〉だけ回転させ、
回転後の連結動作物体(実線)を得る。次にこの回転
〈R〉により変位した各固体A〜Cの回転差分ベクトル
〈RA 〉〜〈RC 〉と、各固体の変位の難易度を示すパ
ラメータ情報(変化重)gA 〜gC とに基づき、次式に
より、これらの加重平均回転差分ベクトル〈RAV〉を求
める。
【0022】〈RAV〉=(〈RA 〉*gA +〈RB 〉*
gB +〈RC 〉*gC )/(gA +gB +gC ) そして、前記回転した連結動作物体(実線)を前記所定
軸oの回りに加重平均回転差分ベクトル分〈RAV〉だけ
逆回転する。かくして、本発明(8)によれば、物体の
置かれた様々な物理的環境をも考慮した、より高度な動
きが、能率良く得られた。
gB +〈RC 〉*gC )/(gA +gB +gC ) そして、前記回転した連結動作物体(実線)を前記所定
軸oの回りに加重平均回転差分ベクトル分〈RAV〉だけ
逆回転する。かくして、本発明(8)によれば、物体の
置かれた様々な物理的環境をも考慮した、より高度な動
きが、能率良く得られた。
【0023】なお、この各固体の動き難さを表すパラメ
ータ情報gは、上記地面との摩擦のみならず、他の様々
な物理的環境、又は部品本来の機能等に基づく動き難さ
を反映し得るものであることは言うまでも無い。また、
例えば上記処理単位の固体Aは単体ではなく、複数の固
体が集合して構成された部品を代表するものであっても
良い。
ータ情報gは、上記地面との摩擦のみならず、他の様々
な物理的環境、又は部品本来の機能等に基づく動き難さ
を反映し得るものであることは言うまでも無い。また、
例えば上記処理単位の固体Aは単体ではなく、複数の固
体が集合して構成された部品を代表するものであっても
良い。
【0024】また本発明(9)の連結動作物体の変形方
法は、複数の固体A〜Cが連結して構成される連結動作
物体の変形方法において、連結動作物体を平行移動させ
る処理と、前記平行移動により変位した各固体A〜Cの
位置差分ベクトル〈MA 〉〜〈MC 〉と、各固体の変位
の難易度を示すパラメータ情報gA 〜gC とに基づき、
これらの加重平均位置差分ベクトル〈MAV〉を求める処
理と、前記平行移動した連結動作物体を加重平均位置差
分ベクトル分〈MAV〉だけ逆平行移動する処理とを備え
るものである。
法は、複数の固体A〜Cが連結して構成される連結動作
物体の変形方法において、連結動作物体を平行移動させ
る処理と、前記平行移動により変位した各固体A〜Cの
位置差分ベクトル〈MA 〉〜〈MC 〉と、各固体の変位
の難易度を示すパラメータ情報gA 〜gC とに基づき、
これらの加重平均位置差分ベクトル〈MAV〉を求める処
理と、前記平行移動した連結動作物体を加重平均位置差
分ベクトル分〈MAV〉だけ逆平行移動する処理とを備え
るものである。
【0025】上記連結物体の回転に対する取扱は、連結
物体の平行移動にも適用できる事は明らかである。ここ
で、加重平均位置差分ベクトル分〈MAV〉は次式により
得られる。 〈MAV〉=(〈MA 〉*gA +〈MB 〉*gB +
〈MC 〉*gC )/(gA +gB +gC ) 本発明(9)によれば、上記本発明(8)と同様の考え
で、物体の置かれた様々な物理的環境をも考慮した、よ
り高度な動きが、能率良く得られる。
物体の平行移動にも適用できる事は明らかである。ここ
で、加重平均位置差分ベクトル分〈MAV〉は次式により
得られる。 〈MAV〉=(〈MA 〉*gA +〈MB 〉*gB +
〈MC 〉*gC )/(gA +gB +gC ) 本発明(9)によれば、上記本発明(8)と同様の考え
で、物体の置かれた様々な物理的環境をも考慮した、よ
り高度な動きが、能率良く得られる。
【0026】また上記の課題は例えば図1(B)の構成
により解決される。即ち、本発明(10)の連結動作物
体の変形方法は、複数の固体A〜Cが連結して構成され
る連結動作物体の変形方法において、連結動作物体を所
定軸oの回りに回転させる処理と、前記回転により変位
した各固体の回転差分ベクトル〈RA 〉〜〈RC 〉と、
各固体の変位の難易度を示すパラメータ情報gA 〜gC
とに基づき、これらの加重平均回転差分ベクトル
〈RAV〉を求める処理と、前記回転した連結動作物体を
ユニバーサル座標原点Oの回りに加重平均回転差分ベク
トル分〈RAV〉だけ逆回転する処理と、前記逆回転によ
り変位した各固体A〜Cの前記回転前の位置からの位置
差分ベクトル〈MA 〉〜〈MC 〉と、前記パラメータ情
報gA 〜gC とに基づき、これらの加重平均位置差分ベ
クトル〈MAV〉を求める処理と、前記逆回転した連結動
作物体を加重平均位置差分ベクトル分〈MAV〉だけ逆平
行移動する処理とを備えるものである。
により解決される。即ち、本発明(10)の連結動作物
体の変形方法は、複数の固体A〜Cが連結して構成され
る連結動作物体の変形方法において、連結動作物体を所
定軸oの回りに回転させる処理と、前記回転により変位
した各固体の回転差分ベクトル〈RA 〉〜〈RC 〉と、
各固体の変位の難易度を示すパラメータ情報gA 〜gC
とに基づき、これらの加重平均回転差分ベクトル
〈RAV〉を求める処理と、前記回転した連結動作物体を
ユニバーサル座標原点Oの回りに加重平均回転差分ベク
トル分〈RAV〉だけ逆回転する処理と、前記逆回転によ
り変位した各固体A〜Cの前記回転前の位置からの位置
差分ベクトル〈MA 〉〜〈MC 〉と、前記パラメータ情
報gA 〜gC とに基づき、これらの加重平均位置差分ベ
クトル〈MAV〉を求める処理と、前記逆回転した連結動
作物体を加重平均位置差分ベクトル分〈MAV〉だけ逆平
行移動する処理とを備えるものである。
【0027】本発明(10)においては、最初に回転さ
せた連結動作物体をユニバーサル座標原点Oの回りに加
重平均回転差分ベクトル分〈RAV〉だけ逆回転させる点
で上記本発明(8)とは異なる。また、この逆回転によ
り、該逆回転後の物体には平行移動成分が含まれる。そ
こで、この逆回転後の物体を同ユニバーサル座標におい
て加重平均位置差分ベクトル分〈MAV〉だけ逆平行移動
する。
せた連結動作物体をユニバーサル座標原点Oの回りに加
重平均回転差分ベクトル分〈RAV〉だけ逆回転させる点
で上記本発明(8)とは異なる。また、この逆回転によ
り、該逆回転後の物体には平行移動成分が含まれる。そ
こで、この逆回転後の物体を同ユニバーサル座標におい
て加重平均位置差分ベクトル分〈MAV〉だけ逆平行移動
する。
【0028】本発明(10)によれば、上記物体の物理
的環境を考慮した変形(変位)を、上記本発明(8)の
様にローカル回転軸の回りの局所的な問題として取扱う
のでは無く、ユニバーサル座標における物体全体の姿態
の変位(変形)として取扱うことが可能となる。その結
果、本来は回転し得ないような固体が、他の固体群の動
き難さからの反作用を受けて回転するような状況が発生
する。更には、物体の元の回転軸がユニバーサル座標上
で元の位置から平行移動するような状況も発生する。そ
の結果、物体の物理的環境を考慮した様々な変形(変
位)を、自然界により適応したものとし表現可能とな
る。詳細は、以下の発明の実施の形態の説明により一層
明らかとなる。
的環境を考慮した変形(変位)を、上記本発明(8)の
様にローカル回転軸の回りの局所的な問題として取扱う
のでは無く、ユニバーサル座標における物体全体の姿態
の変位(変形)として取扱うことが可能となる。その結
果、本来は回転し得ないような固体が、他の固体群の動
き難さからの反作用を受けて回転するような状況が発生
する。更には、物体の元の回転軸がユニバーサル座標上
で元の位置から平行移動するような状況も発生する。そ
の結果、物体の物理的環境を考慮した様々な変形(変
位)を、自然界により適応したものとし表現可能とな
る。詳細は、以下の発明の実施の形態の説明により一層
明らかとなる。
【0029】
【発明の実施の形態】以下、添付図面に従って本発明に
好適なる実施の形態を詳細に説明する。なお、以下の説
明では、記号〈〉はベクトル、記号||は絶対値(距
離,大きさ等)、記号×はベクトル積、記号・はスカラ
ー積、記号*はスカラーの掛け算、記号←は代入を夫々
表すものとする。
好適なる実施の形態を詳細に説明する。なお、以下の説
明では、記号〈〉はベクトル、記号||は絶対値(距
離,大きさ等)、記号×はベクトル積、記号・はスカラ
ー積、記号*はスカラーの掛け算、記号←は代入を夫々
表すものとする。
【0030】図2は実施の形態によるゲーム機の構成を
示す図で、図において、1は本ゲーム機の本体、2はユ
ーザが操作するための十字キー、A,Bボタン、スター
トボタン等を有するコンソール部(CSL)、3はCR
T等による表示装置(DISP)、4は本実施の形態に
よる連結動作物体のデータ及び該物体の変形方法等をプ
ログラムで記憶しているコンパクトディスク(CD)、
100はネットワーク(公衆網等)、5はゲーム等に関
する様々な通信サービスをオンラインで提供するサー
バ、6は他のゲーム機である。
示す図で、図において、1は本ゲーム機の本体、2はユ
ーザが操作するための十字キー、A,Bボタン、スター
トボタン等を有するコンソール部(CSL)、3はCR
T等による表示装置(DISP)、4は本実施の形態に
よる連結動作物体のデータ及び該物体の変形方法等をプ
ログラムで記憶しているコンパクトディスク(CD)、
100はネットワーク(公衆網等)、5はゲーム等に関
する様々な通信サービスをオンラインで提供するサー
バ、6は他のゲーム機である。
【0031】ゲーム機本体1において、11は本ゲーム
機の主制御・処理を行うCPU、12はCPU11が実
行するプログラムやデータであって、例えば図5,図
6,図9に示す連結動作物体の変形に係る処理やデータ
等を記憶するRAM,ROM,EEPROM等よりなる
主メモリ(MEM)、13は表示装置3を制御する表示
制御部(DISPC)、14はコンソール部2をCPU
11に接続するインタフェース部(IF)、15はCD
4の着脱、駆動及びデータ読取を行うCD駆動部(CD
D)、16はゲーム機本体1をネットワーク100に接
続する通信制御部(NCC)、17はCPU11の共通
バスである。
機の主制御・処理を行うCPU、12はCPU11が実
行するプログラムやデータであって、例えば図5,図
6,図9に示す連結動作物体の変形に係る処理やデータ
等を記憶するRAM,ROM,EEPROM等よりなる
主メモリ(MEM)、13は表示装置3を制御する表示
制御部(DISPC)、14はコンソール部2をCPU
11に接続するインタフェース部(IF)、15はCD
4の着脱、駆動及びデータ読取を行うCD駆動部(CD
D)、16はゲーム機本体1をネットワーク100に接
続する通信制御部(NCC)、17はCPU11の共通
バスである。
【0032】ゲームを行う時には、ゲーム機本体1及び
表示装置3に電源投入し、ゲーム用のCD4をCD駆動
部15に装填する。更に、CD4から必要なプログラム
やデータを主メモリ12にロードし、ゲームをスタート
する。そして、表示装置3に表示される生成アニメーシ
ョン画像を見ながら、コンソール部2を操作して、ゲー
ムを楽しむ。
表示装置3に電源投入し、ゲーム用のCD4をCD駆動
部15に装填する。更に、CD4から必要なプログラム
やデータを主メモリ12にロードし、ゲームをスタート
する。そして、表示装置3に表示される生成アニメーシ
ョン画像を見ながら、コンソール部2を操作して、ゲー
ムを楽しむ。
【0033】なお、CD4に代えて、ROMカードやフ
ロッピーディスク等の他の2次記憶装置を使用しても良
い。また、サーバ5から所望のゲームソフトをダウンロ
ードしても良い。更に、他のゲーム機6とオンラインで
対戦ゲームを行っても良い。図3,図4は実施の形態に
よる連結動作物体を説明する図(1),(2)で、図3
(A)は連結動作物体を構成する連結動作固体(固体)
の斜視図である。
ロッピーディスク等の他の2次記憶装置を使用しても良
い。また、サーバ5から所望のゲームソフトをダウンロ
ードしても良い。更に、他のゲーム機6とオンラインで
対戦ゲームを行っても良い。図3,図4は実施の形態に
よる連結動作物体を説明する図(1),(2)で、図3
(A)は連結動作物体を構成する連結動作固体(固体)
の斜視図である。
【0034】一例の固体は半径r=0.5の球体であ
る。この固体は、その中心点oと、例えば6つの端点
(連結点)p1 〜p6 の情報を備える。中心oは基準と
なる点(ユニバーサル座標XYZの原点O又は他の固体
の中心o)からの位置で特定され、端点p1 〜p6 は自
己の中心oからの位置(ローカル座標xyz)で特定さ
れる。初期状態では、中心o(X0 ,Y0 ,Z0 )/
(x0 ,y0 ,z0 )であり、端点p1 (1,0,
0),p2 (0,1,0),p3 (−1,0,0),p
4(0,−1,0),p5 (0,0,1),p6 (0,
0,−1)である。更に、この固体は、固体間を連結す
る連結リンク(x/y/z軸)の回りに回転可能であ
り、これにより固体の姿勢が変化する。
る。この固体は、その中心点oと、例えば6つの端点
(連結点)p1 〜p6 の情報を備える。中心oは基準と
なる点(ユニバーサル座標XYZの原点O又は他の固体
の中心o)からの位置で特定され、端点p1 〜p6 は自
己の中心oからの位置(ローカル座標xyz)で特定さ
れる。初期状態では、中心o(X0 ,Y0 ,Z0 )/
(x0 ,y0 ,z0 )であり、端点p1 (1,0,
0),p2 (0,1,0),p3 (−1,0,0),p
4(0,−1,0),p5 (0,0,1),p6 (0,
0,−1)である。更に、この固体は、固体間を連結す
る連結リンク(x/y/z軸)の回りに回転可能であ
り、これにより固体の姿勢が変化する。
【0035】図3(B)は連結動作物体(物体)の固定
木構造(連結の階層構造)を説明する図である。ゲーム
の初期設定では、画面の3次元空間に複数の固体(例え
ばA〜J)が表示される。ユーザは、任意の固体を選択
して、これを他の任意の固体に連結する。但し、連結の
仕方には一定の制限が設けられており、各固体は任意の
端点p1 〜p6 に対応する1本の連結リンクで他の固体
の任意の端点p1 〜p6 に連結する。そして、連結され
る方の固体を親、連結する方の固体を子とする。この関
係は連結を切るまで保持される。
木構造(連結の階層構造)を説明する図である。ゲーム
の初期設定では、画面の3次元空間に複数の固体(例え
ばA〜J)が表示される。ユーザは、任意の固体を選択
して、これを他の任意の固体に連結する。但し、連結の
仕方には一定の制限が設けられており、各固体は任意の
端点p1 〜p6 に対応する1本の連結リンクで他の固体
の任意の端点p1 〜p6 に連結する。そして、連結され
る方の固体を親、連結する方の固体を子とする。この関
係は連結を切るまで保持される。
【0036】例えば、AにBを連結すると、Aが親、B
が子となる。一方、CにEを連結すると、Cが親、Eが
子となる。このCに対して、更にF,Gを連結すると、
Cが親、F,Gが子となる。因みに、この場合のE〜G
は兄弟となる。更に、このCをAに接続すると、Aが
親、Cが子となる。その結果、全体を階層的に見ると、
Aは親、B,CはAの子、E〜GはCの子(Aの孫)と
なる。なお、ゲームによっては、余った固体D,H〜J
を廃棄しても良い。又はこれらで他の連結動作物体を構
成しても良い。図示の例では、更にD,H〜JをAに連
結している。
が子となる。一方、CにEを連結すると、Cが親、Eが
子となる。このCに対して、更にF,Gを連結すると、
Cが親、F,Gが子となる。因みに、この場合のE〜G
は兄弟となる。更に、このCをAに接続すると、Aが
親、Cが子となる。その結果、全体を階層的に見ると、
Aは親、B,CはAの子、E〜GはCの子(Aの孫)と
なる。なお、ゲームによっては、余った固体D,H〜J
を廃棄しても良い。又はこれらで他の連結動作物体を構
成しても良い。図示の例では、更にD,H〜JをAに連
結している。
【0037】ところで、図示の例では、固体Aは他のど
の固体B〜Jにも連結されていない。即ち、Aには親が
居ない。このように親の居ない固体Aを祖と呼ぶ。ま
た、上記連結規則を設けたことにより、連結動作物体に
は祖が1つだけ存在する、単独の固体は自身を祖とする
連結動作物体である、等の諸性質が得られる。図4は一
例の連結動作物体の表示例を示しており、図4(A)は
ある姿態の平面図、図4(B)は他の姿態の後面図であ
る。
の固体B〜Jにも連結されていない。即ち、Aには親が
居ない。このように親の居ない固体Aを祖と呼ぶ。ま
た、上記連結規則を設けたことにより、連結動作物体に
は祖が1つだけ存在する、単独の固体は自身を祖とする
連結動作物体である、等の諸性質が得られる。図4は一
例の連結動作物体の表示例を示しており、図4(A)は
ある姿態の平面図、図4(B)は他の姿態の後面図であ
る。
【0038】図4(A)において、固体Aには親が居な
いので祖である。BはリンクLB でAに連結しており、
祖Aの子である。Cも同様である。DはリンクLD でB
に連結しており、Bの子(祖Aの孫)である。E〜Gに
ついても同様である。係る連結動作物体を構成後、ユー
ザが操作ボタンを押すと、これが各連結リンクの回転モ
ーメント(トルク)R,0,−Rの情報に変換され、物
体が運動する。Rはリンクを矢印の方向に見て反時計方
向CCWの回転、0は回転無し、−Rは時計方向CWの
回転を表す。
いので祖である。BはリンクLB でAに連結しており、
祖Aの子である。Cも同様である。DはリンクLD でB
に連結しており、Bの子(祖Aの孫)である。E〜Gに
ついても同様である。係る連結動作物体を構成後、ユー
ザが操作ボタンを押すと、これが各連結リンクの回転モ
ーメント(トルク)R,0,−Rの情報に変換され、物
体が運動する。Rはリンクを矢印の方向に見て反時計方
向CCWの回転、0は回転無し、−Rは時計方向CWの
回転を表す。
【0039】ユーザが前進を指令すると、各リンクに図
示のようなトルクが生成され、物体は前進する。また後
退を指令すると、図示の−R→R,R→−Rとなり、物
体は後退する。また右回転を指令すると、図示の−R→
Rとなり、物体は右回転する。また左回転を指令する
と、図示のR→−Rとなり、物体は左回転する。また右
旋回を指令すると、図示の−R→0となり、物体は右旋
回する。また左旋回を指令すると、図示のR→0とな
り、物体は左旋回する。これらの動きでは、外観上物体
が変形した様には見えないが、実際は固体D〜Gが回転
しているので、プログラム処理上は一種の変形となる。
示のようなトルクが生成され、物体は前進する。また後
退を指令すると、図示の−R→R,R→−Rとなり、物
体は後退する。また右回転を指令すると、図示の−R→
Rとなり、物体は右回転する。また左回転を指令する
と、図示のR→−Rとなり、物体は左回転する。また右
旋回を指令すると、図示の−R→0となり、物体は右旋
回する。また左旋回を指令すると、図示のR→0とな
り、物体は左旋回する。これらの動きでは、外観上物体
が変形した様には見えないが、実際は固体D〜Gが回転
しているので、プログラム処理上は一種の変形となる。
【0040】図4(B)において、例えばリンクLC に
トルクRを加えると、物体は図示のような姿態となるこ
とが容易に理解できる。ゲーム上では、対戦相手の進行
を妨害したり、地面の障害物を跨ぐ行為である。これに
より連結動作物体はねじれ、物体は文字通り変形する。
図5は実施の形態による連結動作物体のデータ構造を説
明する図である。ここには上記図3(B)に対応した連
結動作物体のデータ構造を示す。
トルクRを加えると、物体は図示のような姿態となるこ
とが容易に理解できる。ゲーム上では、対戦相手の進行
を妨害したり、地面の障害物を跨ぐ行為である。これに
より連結動作物体はねじれ、物体は文字通り変形する。
図5は実施の形態による連結動作物体のデータ構造を説
明する図である。ここには上記図3(B)に対応した連
結動作物体のデータ構造を示す。
【0041】ユーザの連結操作に基づき、対応する連結
情報が生成される。連結情報には2種類有り、自己が他
の固体に連結する積極的連結情報と、自己に他の固体が
連結されている被連結情報とがある。積極的連結情報
は、各固体が有する固体変数行列[U]の中に具現され
る。但し、祖Aは積極的連結情報が無いので、ユニバー
サル座標に連結される。即ち、ユニバーサル座標原点O
からの位置(平行移動)と、ユニバーサル座標における
回転(姿勢)の情報となる。一方、祖A以外の子B〜J
は、自己の親(ローカル座標原点o)からの位置(平行
移動)と、ローカル座標における回転(姿勢)の情報と
なる。従って、各子の位置及び姿勢は祖又は親からの相
対位置と回転で規定でき、連結動作物体の取扱が容易と
なる。
情報が生成される。連結情報には2種類有り、自己が他
の固体に連結する積極的連結情報と、自己に他の固体が
連結されている被連結情報とがある。積極的連結情報
は、各固体が有する固体変数行列[U]の中に具現され
る。但し、祖Aは積極的連結情報が無いので、ユニバー
サル座標に連結される。即ち、ユニバーサル座標原点O
からの位置(平行移動)と、ユニバーサル座標における
回転(姿勢)の情報となる。一方、祖A以外の子B〜J
は、自己の親(ローカル座標原点o)からの位置(平行
移動)と、ローカル座標における回転(姿勢)の情報と
なる。従って、各子の位置及び姿勢は祖又は親からの相
対位置と回転で規定でき、連結動作物体の取扱が容易と
なる。
【0042】祖Aの被連結情報は最大6個あり、夫々は
ポインタ方式によりネスティングされる。但し、プログ
ラム処理上は、この被連結情報を子の世代から親の世代
を見た連結情報(木構造記述データ)として取扱い、矢
印の向きを図3(B)とは逆向きに示す。AからBに向
かうチャイルド(child) はBが祖Aの最初の子であるこ
とを示す。BからCに向かうネクスト(next)はCが祖A
の2番目の子であることを示す。同様にしてDは祖Aの
3番目の子である。そして、子Dのnext=Nullにより、
祖Aの子は合計3人である。親Cと子E〜Gの関係も同
様である。但し、祖以外の親はリンクの一つを積極的連
結情報に使用した結果、被連結情報は最大5個となる。
更に、Eから子に向かうchild =Nullは親Eに子が居な
いことを表す。
ポインタ方式によりネスティングされる。但し、プログ
ラム処理上は、この被連結情報を子の世代から親の世代
を見た連結情報(木構造記述データ)として取扱い、矢
印の向きを図3(B)とは逆向きに示す。AからBに向
かうチャイルド(child) はBが祖Aの最初の子であるこ
とを示す。BからCに向かうネクスト(next)はCが祖A
の2番目の子であることを示す。同様にしてDは祖Aの
3番目の子である。そして、子Dのnext=Nullにより、
祖Aの子は合計3人である。親Cと子E〜Gの関係も同
様である。但し、祖以外の親はリンクの一つを積極的連
結情報に使用した結果、被連結情報は最大5個となる。
更に、Eから子に向かうchild =Nullは親Eに子が居な
いことを表す。
【0043】係る構成では、各固体に関する連結情報の
構造(固体変数行列及び木構造記述データ)はどの固体
に着目しても同一である。このため、本発明による以下
の変形処理は、共通の演算処理を再帰的に使用して、祖
から開始し、かつトップダウン方式によるフィードバッ
ク無しで、高速に行える。以下、これを説明する。図6
は実施の形態による変形処理のフローチャートである。
なお、以下の説明では、記号[]は行列(マトリクス)
を表す。
構造(固体変数行列及び木構造記述データ)はどの固体
に着目しても同一である。このため、本発明による以下
の変形処理は、共通の演算処理を再帰的に使用して、祖
から開始し、かつトップダウン方式によるフィードバッ
ク無しで、高速に行える。以下、これを説明する。図6
は実施の形態による変形処理のフローチャートである。
なお、以下の説明では、記号[]は行列(マトリクス)
を表す。
【0044】ゲームの進行に伴う各描画時刻に、この変
形処理に入力する。この変形処理は、固体の形状を変更
せずに、その連結情報に従って各固体の姿勢を変更し、
結果として連結動作物体を変形する処理である。ステッ
プS1では祖,親,子,孫等の世代の深さを表すカウン
タiを0(祖)に初期化する。ステップS2では、再帰
的演算を実現するために、ステップS3の使用する状態
変数行列[S(i-1) ]をスタック(不図示)にプッシュ
(push)する。添字の(i−1)はiよりも1世代前を
指し、最初は(0−1)でユニバーサル座標の状態変数
行列を指す。状態変数行列[S(0-1) ]は、同次座標の
3次元1次変換行列からなり、以下に示す単位行列とな
っている。
形処理に入力する。この変形処理は、固体の形状を変更
せずに、その連結情報に従って各固体の姿勢を変更し、
結果として連結動作物体を変形する処理である。ステッ
プS1では祖,親,子,孫等の世代の深さを表すカウン
タiを0(祖)に初期化する。ステップS2では、再帰
的演算を実現するために、ステップS3の使用する状態
変数行列[S(i-1) ]をスタック(不図示)にプッシュ
(push)する。添字の(i−1)はiよりも1世代前を
指し、最初は(0−1)でユニバーサル座標の状態変数
行列を指す。状態変数行列[S(0-1) ]は、同次座標の
3次元1次変換行列からなり、以下に示す単位行列とな
っている。
【0045】
【数1】
【0046】ステップS3では1世代前の状態変数行列
[S(i-1) ]に現代の固体変数行列[U(i) ]を左側か
ら掛け合わせ、現代の状態変数行列[S(i) ]を求め
る。固体変数行列[U(i) ]は同次座標の3次元1次変
換行列からなり、各固体が個々に備える。ステップS4
では求めた状態変数行列[S(i) ]の内容に従って固体
(最初は祖A)を画面に表示する。ステップS5では子
の有無を調べるためにカウンタiに+1する。ステップ
S6ではchild =Nullか否かを判別する。child≠Null
の場合は、子が居るので、ステップS2に戻り、引き続
き子の処理を行う。こうして、祖→親→子→孫の順にch
ild ≠Nullを直系でたどり、かつステップS3の演算を
再帰的に使用して、祖→親→子→孫等の1系統を画面に
表示する。
[S(i-1) ]に現代の固体変数行列[U(i) ]を左側か
ら掛け合わせ、現代の状態変数行列[S(i) ]を求め
る。固体変数行列[U(i) ]は同次座標の3次元1次変
換行列からなり、各固体が個々に備える。ステップS4
では求めた状態変数行列[S(i) ]の内容に従って固体
(最初は祖A)を画面に表示する。ステップS5では子
の有無を調べるためにカウンタiに+1する。ステップ
S6ではchild =Nullか否かを判別する。child≠Null
の場合は、子が居るので、ステップS2に戻り、引き続
き子の処理を行う。こうして、祖→親→子→孫の順にch
ild ≠Nullを直系でたどり、かつステップS3の演算を
再帰的に使用して、祖→親→子→孫等の1系統を画面に
表示する。
【0047】また、上記ステップS6の判別でchild =
Nullの場合は、直系子孫の終わりである。処理はステッ
プS7に進み、カウンタiに−1する。即ち、兄弟の有
無を調べるために1世代前に逆上る。ステップS8で
は、次のステップS3の演算を現在の世代iに合わせる
ために、その更に1世代前の状態変数行列[S(i-1) ]
をスタックよりポップする。即ち、兄弟の親の状態変数
行列[S(i-1) ]をポップする。ステップS9ではi=
0か否かを判別する。
Nullの場合は、直系子孫の終わりである。処理はステッ
プS7に進み、カウンタiに−1する。即ち、兄弟の有
無を調べるために1世代前に逆上る。ステップS8で
は、次のステップS3の演算を現在の世代iに合わせる
ために、その更に1世代前の状態変数行列[S(i-1) ]
をスタックよりポップする。即ち、兄弟の親の状態変数
行列[S(i-1) ]をポップする。ステップS9ではi=
0か否かを判別する。
【0048】i=0の場合は、判定が祖の世代まで逆上
ったことを示し、祖に兄弟は居ないので、処理を抜け
る。なお、この時点では状態変数行列[S(0-1) ]がポ
ップされており、よってこの変形処理は初期化せずに何
度も使用できる。またi≠0の場合は、ステップS10
でnext=Nullか否かを判別する。next=Nullの場合は、
その世代に兄弟が居ないので、ステップS7に進み、更
に1世代前に逆上る。またnext≠Nullの場合は、その世
代に兄弟が居るので、ステップS2に戻る。以下、同様
にして進み、こうして木構造記述データに基づく全固体
が能率良く処理される。
ったことを示し、祖に兄弟は居ないので、処理を抜け
る。なお、この時点では状態変数行列[S(0-1) ]がポ
ップされており、よってこの変形処理は初期化せずに何
度も使用できる。またi≠0の場合は、ステップS10
でnext=Nullか否かを判別する。next=Nullの場合は、
その世代に兄弟が居ないので、ステップS7に進み、更
に1世代前に逆上る。またnext≠Nullの場合は、その世
代に兄弟が居るので、ステップS2に戻る。以下、同様
にして進み、こうして木構造記述データに基づく全固体
が能率良く処理される。
【0049】図7,図8は実施の形態による変形処理の
具体例を説明する図(1),(2)で、図7(A)はあ
る時点における一例の連結動作物体のデータ構造を示し
ている。ここでは、Aを祖、B,Cを祖Aの子、DをB
の子とする。祖Aは原点Oからの位置(10,0,0)
及びθA =0に対応する回転行列を有する。Bは祖Aの
中心からの位置(1,0,0)及びx軸回りのθBx=9
0°(CCW)に対応する回転行列を有する。以下、同
様である。
具体例を説明する図(1),(2)で、図7(A)はあ
る時点における一例の連結動作物体のデータ構造を示し
ている。ここでは、Aを祖、B,Cを祖Aの子、DをB
の子とする。祖Aは原点Oからの位置(10,0,0)
及びθA =0に対応する回転行列を有する。Bは祖Aの
中心からの位置(1,0,0)及びx軸回りのθBx=9
0°(CCW)に対応する回転行列を有する。以下、同
様である。
【0050】祖Aの状態変数行列[S0 ]を次式で求め
る。
る。
【0051】
【数2】
【0052】求めた状態変数行列[S0 ]は、祖Aの状
態(姿態)を表しており、祖Aの中心は原点Oからの位
置(10,0,0)にあり、かつ祖Aのユニバーサル座
標における回転角(姿勢)θA =0である。これに基づ
き、祖Aの画像を生成し、画面に表示する{図7
(B)}。球体Aの画像は、x2 +y2 +z2 =r2 に
基づくポリゴンで表示される。次に子Bの状態変数行列
[S1 ]を次式で求める。
態(姿態)を表しており、祖Aの中心は原点Oからの位
置(10,0,0)にあり、かつ祖Aのユニバーサル座
標における回転角(姿勢)θA =0である。これに基づ
き、祖Aの画像を生成し、画面に表示する{図7
(B)}。球体Aの画像は、x2 +y2 +z2 =r2 に
基づくポリゴンで表示される。次に子Bの状態変数行列
[S1 ]を次式で求める。
【0053】
【数3】
【0054】[S1 ]によれば、子Bの中心は原点Oか
らの位置(11,0,0)にあり、かつ子Bのユニバー
サル座標における回転角θBX=90°(CCW)であ
る。これに基づき子Bの画像を生成し、画面に表示する
{図8(A)}。なお、祖A の状態変数行列[S0 ]が
ユニバーサル座標で表される結果、これに固体変数行列
[Ui ]を順次掛け合わせて生成される子B以降の各状
態変数行列[Si ]もユニバーサル座標で表される。次
に子Dの状態変数行列[S2 ]を次式で求める。
らの位置(11,0,0)にあり、かつ子Bのユニバー
サル座標における回転角θBX=90°(CCW)であ
る。これに基づき子Bの画像を生成し、画面に表示する
{図8(A)}。なお、祖A の状態変数行列[S0 ]が
ユニバーサル座標で表される結果、これに固体変数行列
[Ui ]を順次掛け合わせて生成される子B以降の各状
態変数行列[Si ]もユニバーサル座標で表される。次
に子Dの状態変数行列[S2 ]を次式で求める。
【0055】
【数4】
【0056】[S2 ]によれば、子Dの中心は原点Oか
らの位置(11,0,1)にあり、かつ子Dのユニバー
サル座標における回転角θDX=90°(CCW)であ
る。即ち、上記子Bの回転により生じた変位(変形)が
子Dの姿勢となって現れている。これに基づき、子Dの
画像を生成し、画面に表示する{図8(B)}。次に、
Dのchild =Nullにより、この系統をi=1まで逆上
る。Bのnext=Cにより、子Cの状態変数行列[S3 ]
を次式で求める。
らの位置(11,0,1)にあり、かつ子Dのユニバー
サル座標における回転角θDX=90°(CCW)であ
る。即ち、上記子Bの回転により生じた変位(変形)が
子Dの姿勢となって現れている。これに基づき、子Dの
画像を生成し、画面に表示する{図8(B)}。次に、
Dのchild =Nullにより、この系統をi=1まで逆上
る。Bのnext=Cにより、子Cの状態変数行列[S3 ]
を次式で求める。
【0057】
【数5】
【0058】[S3 ]によれば、子Cの中心は原点Oか
らの位置(10,1,0)にあり、かつ子Cのユニバー
サル座標における回転角θC =0である。これに基づ
き、子Cの画像を生成し、画面に表示する{図8
(C)}。そして、次回にこの変形処理に入力する時
は、ゲーム機の操作により、固体A〜Dの固体変数行列
[UA ]〜[UD ]が変更(更新)されている。これに
基づき、新たな姿態の連結動作物体がリアルタイムに生
成され、こうして運動及び変形する連結動作物体のアニ
メーション画像が画面に表示される。
らの位置(10,1,0)にあり、かつ子Cのユニバー
サル座標における回転角θC =0である。これに基づ
き、子Cの画像を生成し、画面に表示する{図8
(C)}。そして、次回にこの変形処理に入力する時
は、ゲーム機の操作により、固体A〜Dの固体変数行列
[UA ]〜[UD ]が変更(更新)されている。これに
基づき、新たな姿態の連結動作物体がリアルタイムに生
成され、こうして運動及び変形する連結動作物体のアニ
メーション画像が画面に表示される。
【0059】次に、物体の置かれた物理的環境を考慮に
採り入れ、物体の合理的な変形を高速に実現する処理を
以下に詳述する。図9は実施の形態による変形補正処理
のフローチャートである。この変形補正処理は、上記変
形処理後の物体に対して、物理的環境を考慮したより合
理的な動き(変形)の補正を加えるものであり、固体の
親子関係(連結情報)には関知しないで行う、物体全体
に対する一括的な座標変換処理である。
採り入れ、物体の合理的な変形を高速に実現する処理を
以下に詳述する。図9は実施の形態による変形補正処理
のフローチャートである。この変形補正処理は、上記変
形処理後の物体に対して、物理的環境を考慮したより合
理的な動き(変形)の補正を加えるものであり、固体の
親子関係(連結情報)には関知しないで行う、物体全体
に対する一括的な座標変換処理である。
【0060】ステップS31では、上記変形前の物体に
ついて、各固体の変化重gi (1≦i≦n)を求める。
なお、この処理は、好ましくは図6の変形処理前に行わ
れる。但し、説明の便宜からここで述べる。変化重(パ
ラメータ)gは、固体毎の動き難さを示す目安であり、
例えば空間に存在する固体の変化重gは一律に小さい値
cとできる。一方、地面に接触している固体の変化重
は、重心Gに近い固体ほど物体の自重が集中していると
考えられるので、重心からの距離dの関数g(d)と考
えられる。但し、距離dが十分に大きくても、c≪g
(d)の関係が保たれなくてはならない。係る条件を満
たす一例の変化重gは次式で与えられる。
ついて、各固体の変化重gi (1≦i≦n)を求める。
なお、この処理は、好ましくは図6の変形処理前に行わ
れる。但し、説明の便宜からここで述べる。変化重(パ
ラメータ)gは、固体毎の動き難さを示す目安であり、
例えば空間に存在する固体の変化重gは一律に小さい値
cとできる。一方、地面に接触している固体の変化重
は、重心Gに近い固体ほど物体の自重が集中していると
考えられるので、重心からの距離dの関数g(d)と考
えられる。但し、距離dが十分に大きくても、c≪g
(d)の関係が保たれなくてはならない。係る条件を満
たす一例の変化重gは次式で与えられる。
【0061】 g=c(例えば0.01) 接地していない場合 g(d)=1/(d+1)+1 接地している場合 但し、d:物体重心Gから接触部分までの距離 上記g(d)の右辺第1項の{1/(d+1)}は、d
=0(重心位置)で最大値1となり、且つd→∞で0と
なる。右辺第2項の(+1)はd→∞でもg(d)≫c
を満足させている。他にも上記条件を満たす様々な関数
g(d)が考えられる。例えばg(d)=1/(d2 +
1)+1等が考えられる。
=0(重心位置)で最大値1となり、且つd→∞で0と
なる。右辺第2項の(+1)はd→∞でもg(d)≫c
を満足させている。他にも上記条件を満たす様々な関数
g(d)が考えられる。例えばg(d)=1/(d2 +
1)+1等が考えられる。
【0062】ステップS32では、各固体についての回
転差分ベクトル〈Ri 〉を求める。回転差分ベクトル
〈R〉は、物体に加えた回転操作に伴い、各固体に生じ
た回転変位の差分ベクトルである。例えば、ある固体に
対する回転中心をO、回転により生じた変位の最も大き
い点をPとして、回転前の各点をO1 ,P1 、かつ回転
後の各点をO2 ,P2 とすると、回転差分ベクトル
〈R〉を次式で求める。
転差分ベクトル〈Ri 〉を求める。回転差分ベクトル
〈R〉は、物体に加えた回転操作に伴い、各固体に生じ
た回転変位の差分ベクトルである。例えば、ある固体に
対する回転中心をO、回転により生じた変位の最も大き
い点をPとして、回転前の各点をO1 ,P1 、かつ回転
後の各点をO2 ,P2 とすると、回転差分ベクトル
〈R〉を次式で求める。
【0063】 〈R〉=〈O1 P1 〉×〈O2 P2 〉/(|O1 P1 |*|O2 P2 |) =sinθ*〈C〉 但し、θ:〈O1 P1 〉,〈O2 P2 〉の成す角 〈C〉:回転軸の単位ベクトル ステップS33では、各回転差分ベクトル〈Ri 〉の加
重平均回転差分ベクトル〈RAV〉を求める。加重平均回
転差分ベクトル〈RAV〉は次式で与えられる。
重平均回転差分ベクトル〈RAV〉を求める。加重平均回
転差分ベクトル〈RAV〉は次式で与えられる。
【0064】〈RAV〉=Σ(〈Ri 〉*gi )/Σgi
(1≦i≦n) そして、基本的には、上記中心Oの回りに回転させた連
結動作物体を、該中心Oの回りに−〈RAV〉だけ回転さ
せることで、物理的環境を考慮した所要の変形補正が得
られることになる。以下に、その理由を説明する。図1
0は回転差分ベクトルの加重平均処理を説明する図であ
る。
(1≦i≦n) そして、基本的には、上記中心Oの回りに回転させた連
結動作物体を、該中心Oの回りに−〈RAV〉だけ回転さ
せることで、物理的環境を考慮した所要の変形補正が得
られることになる。以下に、その理由を説明する。図1
0は回転差分ベクトルの加重平均処理を説明する図であ
る。
【0065】物体の回転前の状態において、回転中心O
(Z軸)上にある祖Aの下には親Bが連結されており、
かつ親Bの横(Y軸上)には子C、及びその先に孫Dが
連結されている。固体B〜Dは地面(Z=0)に接して
おり、夫々は物体の重心Gからの距離dに応じた変化重
gB 〜gD を有する。一方、祖Aは空間に在るが、祖A
は自らは動き得ないとして固定し、この状態で祖Aと親
Bとの間の連結リンクLB にトルク〈R〉(CCW)を
加える。Z軸については〈−R〉(CW)となる。
(Z軸)上にある祖Aの下には親Bが連結されており、
かつ親Bの横(Y軸上)には子C、及びその先に孫Dが
連結されている。固体B〜Dは地面(Z=0)に接して
おり、夫々は物体の重心Gからの距離dに応じた変化重
gB 〜gD を有する。一方、祖Aは空間に在るが、祖A
は自らは動き得ないとして固定し、この状態で祖Aと親
Bとの間の連結リンクLB にトルク〈R〉(CCW)を
加える。Z軸については〈−R〉(CW)となる。
【0066】この場合に、例えばトルクの大きさを|R
|とし、かつ各固体B〜Dと地面との間には何らの摩擦
抵抗(変化重)も生じないとすると、各固体B〜Dは一
律に大きさ|R|だけ回転することになる。この場合の
変形は上記図6の変形処理で得られる。しかし、摩擦抵
抗(変化重)を考慮に入れ、かつ各固体B〜Dがバラバ
ラに動けるとすると、物理的には、同じ大きさの|R|
に対して、変化重gD の比較的小さい孫Dは図のD´の
位置まで回転するが、一方、変化重gC の比較的大きい
子Cは図のC´の位置までしか回転しない事が考えられ
る。親Bについても同様である。これは、変化重(動き
難さ)gを用いて表現すると、子Cは|R|*gC だけ
回転が足りず、孫Dは|R|*gD だけ回転が足りない
と評価できる。
|とし、かつ各固体B〜Dと地面との間には何らの摩擦
抵抗(変化重)も生じないとすると、各固体B〜Dは一
律に大きさ|R|だけ回転することになる。この場合の
変形は上記図6の変形処理で得られる。しかし、摩擦抵
抗(変化重)を考慮に入れ、かつ各固体B〜Dがバラバ
ラに動けるとすると、物理的には、同じ大きさの|R|
に対して、変化重gD の比較的小さい孫Dは図のD´の
位置まで回転するが、一方、変化重gC の比較的大きい
子Cは図のC´の位置までしか回転しない事が考えられ
る。親Bについても同様である。これは、変化重(動き
難さ)gを用いて表現すると、子Cは|R|*gC だけ
回転が足りず、孫Dは|R|*gD だけ回転が足りない
と評価できる。
【0067】しかるに、この物体の連結リンクLA 〜L
D は剛性と仮定しており、曲がらないから、図示の様な
変形(B´←C´←D´)の発生は許されない。そこ
で、このような物体には、実際には、各固体B〜Dの摩
擦抵抗(変化重)を考慮に入れた、大きさ|RAV|の回
転が生じるものと考えられる。そこで、次に、この様な
状況を反映する代表の回転差分ベクトル〈RAV〉を一般
的に求める。
D は剛性と仮定しており、曲がらないから、図示の様な
変形(B´←C´←D´)の発生は許されない。そこ
で、このような物体には、実際には、各固体B〜Dの摩
擦抵抗(変化重)を考慮に入れた、大きさ|RAV|の回
転が生じるものと考えられる。そこで、次に、この様な
状況を反映する代表の回転差分ベクトル〈RAV〉を一般
的に求める。
【0068】回転によりn個の変化する部分があると
し、それに1〜nの番号を付す。その中のi番目の部分
の元の値{座標又は回転差分ベクトル〈Ri 〉等}をX
i 、変化重をgi (>0)、かつ変化させる量をXとす
ると、加重変化量の自乗の合計は、 F(X)=Σ{(X−Xi )2 *gi } で表され、加重変化量、即ち、F(X)を最小にする様
にXを定めれば良い。
し、それに1〜nの番号を付す。その中のi番目の部分
の元の値{座標又は回転差分ベクトル〈Ri 〉等}をX
i 、変化重をgi (>0)、かつ変化させる量をXとす
ると、加重変化量の自乗の合計は、 F(X)=Σ{(X−Xi )2 *gi } で表され、加重変化量、即ち、F(X)を最小にする様
にXを定めれば良い。
【0069】さて、F(X)はXの2次関数であるか
ら、極小値=最小値となるXは、 dF(X)/dX=Σ{2*(X−Xi )*gi }=0 をXについて解けば求められる。上式を2で割り、変形
すると、 Σ(X*gi )=Σ(Xi *gi ) X=Σ(Xi *gi )/Σ(gi ) となる。従って、この加重平均ベクトルXは、全体とし
て加重変化量を最小にするベクトルである。
ら、極小値=最小値となるXは、 dF(X)/dX=Σ{2*(X−Xi )*gi }=0 をXについて解けば求められる。上式を2で割り、変形
すると、 Σ(X*gi )=Σ(Xi *gi ) X=Σ(Xi *gi )/Σ(gi ) となる。従って、この加重平均ベクトルXは、全体とし
て加重変化量を最小にするベクトルである。
【0070】以上は、一般的に述べたが、i=固体B〜
D、X=〈RAV〉,Xi =〈Ri 〉とすると、図10の
構成に対応する。即ち、図10の場合の加重平均回転差
分ベクトル〈RAV〉は次式で求まる。 〈RAV〉=(〈RB 〉*gB +〈RC 〉*gC +
〈RD 〉*gD )/(gB +gC +gD ) なお、ここでは各固体は球体なので、変位の位置を各固
体の中心に置いているが、これに限らない。
D、X=〈RAV〉,Xi =〈Ri 〉とすると、図10の
構成に対応する。即ち、図10の場合の加重平均回転差
分ベクトル〈RAV〉は次式で求まる。 〈RAV〉=(〈RB 〉*gB +〈RC 〉*gC +
〈RD 〉*gD )/(gB +gC +gD ) なお、ここでは各固体は球体なので、変位の位置を各固
体の中心に置いているが、これに限らない。
【0071】また、上記図10は単純な物体の例を示し
ているが、これに限らない。より複雑な物体、例えば各
固体を連結する各リンクが様々な方向を向いている場
合、又は複数リンクに同時に回転が与えられた結果、各
固体が様々な方向に同時に変形する場合等の、より一般
的な状況であっても、上記加重平均回転差分ベクトルの
考えを適用できる。
ているが、これに限らない。より複雑な物体、例えば各
固体を連結する各リンクが様々な方向を向いている場
合、又は複数リンクに同時に回転が与えられた結果、各
固体が様々な方向に同時に変形する場合等の、より一般
的な状況であっても、上記加重平均回転差分ベクトルの
考えを適用できる。
【0072】かくして、図10において、上記図6の変
形処理により、一旦O点の回りに|R|の位置まで回転
(変形)させた物体を、該O点を中心として物体を|R
AV|の位置まで逆回転させれば、理論的には地面との摩
擦等(変化重)を考慮に入れた、現実的な変形(姿態)
となることになる。この場合に、この回転補正分(θR
−θRAV )は、各固体B〜Dの固体変数行列[UB ]〜
[UD ]には直接加えない。なぜなら、固体B〜Dは、
ゲーム操作で加えられた変形情報を保持しているのが好
ましいからである。もし、ここで上記補正を加えると、
物体の、ゲーム操作に基づく本来の変形(姿態)情報が
失われ、このためにその後の変形処理は極端に複雑なも
のになってしまう。
形処理により、一旦O点の回りに|R|の位置まで回転
(変形)させた物体を、該O点を中心として物体を|R
AV|の位置まで逆回転させれば、理論的には地面との摩
擦等(変化重)を考慮に入れた、現実的な変形(姿態)
となることになる。この場合に、この回転補正分(θR
−θRAV )は、各固体B〜Dの固体変数行列[UB ]〜
[UD ]には直接加えない。なぜなら、固体B〜Dは、
ゲーム操作で加えられた変形情報を保持しているのが好
ましいからである。もし、ここで上記補正を加えると、
物体の、ゲーム操作に基づく本来の変形(姿態)情報が
失われ、このためにその後の変形処理は極端に複雑なも
のになってしまう。
【0073】さて、上記図10の説明により、ローカル
座標における局所的な回転補正の原理は明らかとなった
が、本実施の形態によるステップS34では、|RAV|
=sinθAV なる角度θAVを用いて、連結動作物体を
ユニバーサル座標原点Oから−θAVだけ回転させる。こ
の回転補正は物体全体に対する通常の1次座標変換で行
われる。従って、物体の固体変数行列をいじること無
く、画面上における物体の姿態(見え方)を、高速かつ
合理的に変形できる。但し、この回転補正は演算上の処
理であり、回転補正後の画像が画面に表示される訳では
無い。
座標における局所的な回転補正の原理は明らかとなった
が、本実施の形態によるステップS34では、|RAV|
=sinθAV なる角度θAVを用いて、連結動作物体を
ユニバーサル座標原点Oから−θAVだけ回転させる。こ
の回転補正は物体全体に対する通常の1次座標変換で行
われる。従って、物体の固体変数行列をいじること無
く、画面上における物体の姿態(見え方)を、高速かつ
合理的に変形できる。但し、この回転補正は演算上の処
理であり、回転補正後の画像が画面に表示される訳では
無い。
【0074】上記ユニバーサル座標原点Oを中心とした
物体の回転補正は、一般に、物体の平行移動を発生させ
る。そこで、次にこの平行移動分を戻すが、上記生成さ
れた平行移動分には変化重が考慮されていない。そこ
で、これを戻す(補正する)際には、変化重を考慮す
る。即ち、ステップS35では各固体の位置差分ベクト
ル〈Mi 〉を求める。位置差分ベクトル〈Mi 〉は、上
記原点Oを中心とした回転補正後の固体の位置と、該固
体の回転変形前(元)の位置との差分ベクトルとして求
められる。
物体の回転補正は、一般に、物体の平行移動を発生させ
る。そこで、次にこの平行移動分を戻すが、上記生成さ
れた平行移動分には変化重が考慮されていない。そこ
で、これを戻す(補正する)際には、変化重を考慮す
る。即ち、ステップS35では各固体の位置差分ベクト
ル〈Mi 〉を求める。位置差分ベクトル〈Mi 〉は、上
記原点Oを中心とした回転補正後の固体の位置と、該固
体の回転変形前(元)の位置との差分ベクトルとして求
められる。
【0075】ステップS36では加重平均位置差分ベク
トル〈MAV〉を求める。図10の物体に対応する加重平
均位置差分ベクトル〈MAV〉は次式で求まる。 〈MAV〉=(〈MB 〉*gB +〈MC 〉*gC +
〈MD 〉*gD )/(gB +gC +gD ) ステップS37では上記回転補正後の連結動作物体を−
〈MAV〉だけ平行移動補正する。この補正後の画像は画
面に表示される。即ち、画面上では、回転変形前の元の
画像の次に上記最終補正後の画像が表示されることにな
る。
トル〈MAV〉を求める。図10の物体に対応する加重平
均位置差分ベクトル〈MAV〉は次式で求まる。 〈MAV〉=(〈MB 〉*gB +〈MC 〉*gC +
〈MD 〉*gD )/(gB +gC +gD ) ステップS37では上記回転補正後の連結動作物体を−
〈MAV〉だけ平行移動補正する。この補正後の画像は画
面に表示される。即ち、画面上では、回転変形前の元の
画像の次に上記最終補正後の画像が表示されることにな
る。
【0076】こうして、物理的環境を考慮した、より自
然で高度な動きが、上記図6の変形処理とは別個の補正
処理で自動的に生成される。即ち、基本的には、キャラ
クタの動きは、ゲームの進行伴い、図6の変形処理で生
成される。一方、不図示の環境処理は、キャラクタと例
えば地面との関係を常時監視しており、上記補正が必要
な環境になると、この補正処理を付勢する。また、キャ
ラクタがその環境から脱すると、この補正処理を消勢す
る。従って、変形処理と補正処理とを別個に扱え、処理
容易である。
然で高度な動きが、上記図6の変形処理とは別個の補正
処理で自動的に生成される。即ち、基本的には、キャラ
クタの動きは、ゲームの進行伴い、図6の変形処理で生
成される。一方、不図示の環境処理は、キャラクタと例
えば地面との関係を常時監視しており、上記補正が必要
な環境になると、この補正処理を付勢する。また、キャ
ラクタがその環境から脱すると、この補正処理を消勢す
る。従って、変形処理と補正処理とを別個に扱え、処理
容易である。
【0077】なお、以上は変形後の物体をユニバーサル
座標原点Oの回りに−〈RAV〉だけ回転補正する場合を
中心に述べたが、ローカル座標における変形中心の回り
に−〈RAV〉だけ回転補正する場合については容易に理
解できる。また、ローカル座標における−〈MAV〉の平
行移動補正についても容易に理解できる。図11〜図1
4は実施の形態による連結動作物体の変形例を説明する
図(1)〜(4)であり、図11,図12は連結動作物
体が地面に置かれた場合の変形例を示している。
座標原点Oの回りに−〈RAV〉だけ回転補正する場合を
中心に述べたが、ローカル座標における変形中心の回り
に−〈RAV〉だけ回転補正する場合については容易に理
解できる。また、ローカル座標における−〈MAV〉の平
行移動補正についても容易に理解できる。図11〜図1
4は実施の形態による連結動作物体の変形例を説明する
図(1)〜(4)であり、図11,図12は連結動作物
体が地面に置かれた場合の変形例を示している。
【0078】図11(A)において、祖Aは子Bの上に
載っており、この子Bには孫Cが連結している。今、祖
Aは動かない条件で、ゲーム機より子B(リンクLB )
にα=45°(CW)の回転が与えられたとする。ここ
で、各固体A〜Cの中心をA1 〜C1 とし、夫々の向き
(顔)を表す点をa1 〜c1 とすると、変形前の各点の
座標は、 A1 (2,1,1.5) a1 (2,0.5,1.5) B1 (2,1,0.5) b1 (2,0.5,0.5) C1 (3,1,0.5) c1 (3,0.5,0.5) となり、この元の状態を図11(A)に示す。
載っており、この子Bには孫Cが連結している。今、祖
Aは動かない条件で、ゲーム機より子B(リンクLB )
にα=45°(CW)の回転が与えられたとする。ここ
で、各固体A〜Cの中心をA1 〜C1 とし、夫々の向き
(顔)を表す点をa1 〜c1 とすると、変形前の各点の
座標は、 A1 (2,1,1.5) a1 (2,0.5,1.5) B1 (2,1,0.5) b1 (2,0.5,0.5) C1 (3,1,0.5) c1 (3,0.5,0.5) となり、この元の状態を図11(A)に示す。
【0079】図6の変形処理による変形後の各点の座標
は、 A2 (2,1,1.5) a2 (2,0.5,1.5) B2 (2,1,0.5) b2 (2.35,0.65,0.5) C2 (2.71,1.71,0.5)c2 (3.06,1.35,0.5) となり、この状態を図11(B)に示す。
は、 A2 (2,1,1.5) a2 (2,0.5,1.5) B2 (2,1,0.5) b2 (2.35,0.65,0.5) C2 (2.71,1.71,0.5)c2 (3.06,1.35,0.5) となり、この状態を図11(B)に示す。
【0080】しかるに、この変形は子B,孫Dの地面
(Z=0)との接触を考慮していないから、以下の変形
補正処理を行う。まず図11(A)の状態における物体
の重心G1 を求める。固体A〜Cは均質な球体なので、
物体の重心G1 の座標は、各固体の中心座標A1 〜C1
の平均で求まり、 G1x=(A1x+B1x+C1x)/3=7/3=2.33 G1y=(A1y+B1y+C1y)/3=3/3=1 G1z=(A1z+B1z+C1z)/3=2.5/3=0.8
3 となる。即ち、重心G1 (2.33,1,0.83)で
ある。
(Z=0)との接触を考慮していないから、以下の変形
補正処理を行う。まず図11(A)の状態における物体
の重心G1 を求める。固体A〜Cは均質な球体なので、
物体の重心G1 の座標は、各固体の中心座標A1 〜C1
の平均で求まり、 G1x=(A1x+B1x+C1x)/3=7/3=2.33 G1y=(A1y+B1y+C1y)/3=3/3=1 G1z=(A1z+B1z+C1z)/3=2.5/3=0.8
3 となる。即ち、重心G1 (2.33,1,0.83)で
ある。
【0081】次に、下式に基づき、各固体A〜Cの変化
重を求める。 g(d)=0.01 接地していない場合 g(d)=1/(d+1)+1 接地している場合 ここで、距離|G1 B1 |,|G1 C1 |は、 |G1 B1 |=√{(2.33−2)2 +(0.83−
0.5)2 }=0.47 |G1 C1 |=√{(2.33−3)2 +(0.83−
0.5)2 }=0.75 となる。従って、変化重gA 〜gC は、 gA =0.01 gB =1/(0.47+1)+1=1.68 gC =1/(0.75+1)+1=1.57 となる。祖Aは、空気中にあるので、変化重gA は一律
に小さい。子Bは、接地している上、重心に近いので、
相当の重みが掛かり、変化重gB が大きい。孫Cは、接
地しているが、子Bに比べて重心から少し遠いので、変
化重gC は幾分小さい。
重を求める。 g(d)=0.01 接地していない場合 g(d)=1/(d+1)+1 接地している場合 ここで、距離|G1 B1 |,|G1 C1 |は、 |G1 B1 |=√{(2.33−2)2 +(0.83−
0.5)2 }=0.47 |G1 C1 |=√{(2.33−3)2 +(0.83−
0.5)2 }=0.75 となる。従って、変化重gA 〜gC は、 gA =0.01 gB =1/(0.47+1)+1=1.68 gC =1/(0.75+1)+1=1.57 となる。祖Aは、空気中にあるので、変化重gA は一律
に小さい。子Bは、接地している上、重心に近いので、
相当の重みが掛かり、変化重gB が大きい。孫Cは、接
地しているが、子Bに比べて重心から少し遠いので、変
化重gC は幾分小さい。
【0082】次に、回転差分ベクトル〈RA 〉〜
〈RC 〉を求める。即ち、 〈RA 〉=〈A1 a1 〉×〈A2 a2 〉/|A1 a1 |*|A2 a2 | =(0,−0.5,0)×(0,−0.5,0)/0.25 =(0,0,0) 〈RB 〉=〈B1 b1 〉×〈B2 b2 〉/|B1 b1 |*|B2 b2 | =(0,−0.5,0)×(0.35,−0.35,0)/0.25 =(0,0,0.18)/0.25 =(0,0,0.72) 〈RC 〉=〈C1 c1 〉×〈C2 c2 〉/|C1 c1 |*|C2 c2 | =(0,−0.5,0)×(0.35,−0.36,0)/0.25 =(0,0,0.18)/0.25 =(0,0,0.72) となる。
〈RC 〉を求める。即ち、 〈RA 〉=〈A1 a1 〉×〈A2 a2 〉/|A1 a1 |*|A2 a2 | =(0,−0.5,0)×(0,−0.5,0)/0.25 =(0,0,0) 〈RB 〉=〈B1 b1 〉×〈B2 b2 〉/|B1 b1 |*|B2 b2 | =(0,−0.5,0)×(0.35,−0.35,0)/0.25 =(0,0,0.18)/0.25 =(0,0,0.72) 〈RC 〉=〈C1 c1 〉×〈C2 c2 〉/|C1 c1 |*|C2 c2 | =(0,−0.5,0)×(0.35,−0.36,0)/0.25 =(0,0,0.18)/0.25 =(0,0,0.72) となる。
【0083】次に、回転差分加重平均ベクトル〈RAV〉
を求める。即ち、 〈RAV〉=(〈RA 〉*gA +〈RB 〉*gB +〈RC 〉*gC ) /(gA +gB +gC ) ={(0,0,0)*0.01+(0,0,0.72)*1.68 +(0,0,0.72)*1.57}/3.26 =(0,0,0.72) となる。
を求める。即ち、 〈RAV〉=(〈RA 〉*gA +〈RB 〉*gB +〈RC 〉*gC ) /(gA +gB +gC ) ={(0,0,0)*0.01+(0,0,0.72)*1.68 +(0,0,0.72)*1.57}/3.26 =(0,0,0.72) となる。
【0084】sinβ=|RAV|=0.72より、β=
sin-10.72=46.05°が得られる。〈RAV〉
はユニバーサル座標のZ軸に平行なので、該Z軸の回り
に物体の回転(姿勢)を戻す処理(β=−46.05
°)を行うと、回転補正後の各点の座標は、 A3 (2.11,−0.75,1.5) B3 (2.11,−0.75,0.5) C3 (3.11,−0.76,0.5) a3 (1.75,−1.09,1.5) b3 (2.10,−1.24,0.5) c3 (3.10,−1.27,0.5) となる。この状態を図12(A)に示す。
sin-10.72=46.05°が得られる。〈RAV〉
はユニバーサル座標のZ軸に平行なので、該Z軸の回り
に物体の回転(姿勢)を戻す処理(β=−46.05
°)を行うと、回転補正後の各点の座標は、 A3 (2.11,−0.75,1.5) B3 (2.11,−0.75,0.5) C3 (3.11,−0.76,0.5) a3 (1.75,−1.09,1.5) b3 (2.10,−1.24,0.5) c3 (3.10,−1.27,0.5) となる。この状態を図12(A)に示す。
【0085】次に、位置差分ベクトル〈MA 〉〜
〈MC 〉を求める。 〈MA 〉=〈A1 A3 〉=(0.11,−1.75,
0) 〈MB 〉=〈B1 B3 〉=(0.11,−1.75,
0) 〈MC 〉=〈C1 C3 〉=(0.11,−1.76,
0) 次に、位置差分加重平均ベクトル〈MAV〉を求める。即
ち、 〈MAV〉=(〈MA 〉*gA +〈MB 〉*gB +〈MC 〉*gC ) /(gA +gB +gC ) ={(0.11,−1.75,0)*0.01+(0.11, −1.75,0)*1.68+(0.11,−1.76,0) *1.57}/3.26 =(0.10,−1.76,0) となる。
〈MC 〉を求める。 〈MA 〉=〈A1 A3 〉=(0.11,−1.75,
0) 〈MB 〉=〈B1 B3 〉=(0.11,−1.75,
0) 〈MC 〉=〈C1 C3 〉=(0.11,−1.76,
0) 次に、位置差分加重平均ベクトル〈MAV〉を求める。即
ち、 〈MAV〉=(〈MA 〉*gA +〈MB 〉*gB +〈MC 〉*gC ) /(gA +gB +gC ) ={(0.11,−1.75,0)*0.01+(0.11, −1.75,0)*1.68+(0.11,−1.76,0) *1.57}/3.26 =(0.10,−1.76,0) となる。
【0086】次に、−〈MAV〉を用いて位置補正を行う
と、移動後の各点の座標は、 A4 (2.01,1.01,1.5) B4 (2.01,1.01,0.5) C4 (3.01,1.00,0.5) a4 (1.65,0.67,1.5) b4 (2.00,0.52,0.5) c4 (3.00,0.49,0.5) となる。この状態を図12(B)に示す。
と、移動後の各点の座標は、 A4 (2.01,1.01,1.5) B4 (2.01,1.01,0.5) C4 (3.01,1.00,0.5) a4 (1.65,0.67,1.5) b4 (2.00,0.52,0.5) c4 (3.00,0.49,0.5) となる。この状態を図12(B)に示す。
【0087】図12(B)によると、子B,孫Cの位置
及び回転は変形前{図11(A)}の状態に戻ってい
る。これは、子B,孫Cが地面に接しているため、動け
ないので、当然の結果と言える。一方、祖Aについて
は、その位置は変形前の状態に戻っているが、その顔a
1 の向きはa4 の向きまでCW方向に逆回転している。
因みに、この回転各α´は、α´=tan-1{|〈A1
a1 〉×〈A4 a4 〉|/〈A1 a1 〉・〈A
4 a4 〉}=−46.63°である。即ち、子B,孫C
が動く代わりに、その反作用をうけて、祖Aの顔が反対
方向に回転してしまった。このような動きは、ゲームの
シナリオには無いが、周囲の物理環境を考慮して自動的
に付加されたより自然(ユーザにとっては意外)な動き
である。これがゲームをより高度な質に導く。
及び回転は変形前{図11(A)}の状態に戻ってい
る。これは、子B,孫Cが地面に接しているため、動け
ないので、当然の結果と言える。一方、祖Aについて
は、その位置は変形前の状態に戻っているが、その顔a
1 の向きはa4 の向きまでCW方向に逆回転している。
因みに、この回転各α´は、α´=tan-1{|〈A1
a1 〉×〈A4 a4 〉|/〈A1 a1 〉・〈A
4 a4 〉}=−46.63°である。即ち、子B,孫C
が動く代わりに、その反作用をうけて、祖Aの顔が反対
方向に回転してしまった。このような動きは、ゲームの
シナリオには無いが、周囲の物理環境を考慮して自動的
に付加されたより自然(ユーザにとっては意外)な動き
である。これがゲームをより高度な質に導く。
【0088】図13,図14は上記連結動作物体が水中
に潜っている場合の変形例を示している。ここでは各変
形の態様が分かり易い様に、画面をZ軸から見ている。
回転変形前の各点の座標は、 A1 (2,1,1.5) a1 (2,0.5,1.5) B1 (2,1,0.5) b1 (2,0.5,0.5) C1 (3,1,0.5) c1 (3,0.5,0.5) であり、この状態を図13(A)に示す。更に、重心G
1 (2.33,1,0.83)である。回転変形後の各
点の座標は、 A2 (2,1,1.5) B2 (2,1,0.5) C2 (2.71,1.71,0.5) a2 (2,0.5,1.5) b2 (2.35,0.65,0.5) c2 (3.06,1.35,0.5) であり、この状態を図13(B)に示す。ここまでは上
記と同様の変形処理である。
に潜っている場合の変形例を示している。ここでは各変
形の態様が分かり易い様に、画面をZ軸から見ている。
回転変形前の各点の座標は、 A1 (2,1,1.5) a1 (2,0.5,1.5) B1 (2,1,0.5) b1 (2,0.5,0.5) C1 (3,1,0.5) c1 (3,0.5,0.5) であり、この状態を図13(A)に示す。更に、重心G
1 (2.33,1,0.83)である。回転変形後の各
点の座標は、 A2 (2,1,1.5) B2 (2,1,0.5) C2 (2.71,1.71,0.5) a2 (2,0.5,1.5) b2 (2.35,0.65,0.5) c2 (3.06,1.35,0.5) であり、この状態を図13(B)に示す。ここまでは上
記と同様の変形処理である。
【0089】更に、変化重gA 〜gC は、空気よりは大
きく、かつ地面との接触よりは小さいものとして、一律
に0.1とする。回転差分ベクトル〈RA 〉〜〈RC 〉
は、 〈RA 〉=(0,0,0) 〈RB 〉=(0,0,0.72) 〈RC 〉=(0,0,0.72) である。次に、回転差分加重平均ベクトルは、 〈RAV〉=(〈RA 〉*gA +〈RB 〉*gB +〈RC 〉*gC ) /(gA +gB +gC ) ={(0,0,0)*0.1+(0,0,0.72)*0.1 +(0,0,0.72)*0.1}/0.3 =(0,0,0.48) となる。
きく、かつ地面との接触よりは小さいものとして、一律
に0.1とする。回転差分ベクトル〈RA 〉〜〈RC 〉
は、 〈RA 〉=(0,0,0) 〈RB 〉=(0,0,0.72) 〈RC 〉=(0,0,0.72) である。次に、回転差分加重平均ベクトルは、 〈RAV〉=(〈RA 〉*gA +〈RB 〉*gB +〈RC 〉*gC ) /(gA +gB +gC ) ={(0,0,0)*0.1+(0,0,0.72)*0.1 +(0,0,0.72)*0.1}/0.3 =(0,0,0.48) となる。
【0090】sinβ=|RAV|=0.48より、β=
sin-10.48=28.69°が得られる。〈RAV〉
はユニバーサル座標のZ軸に平行なので、該Z軸の回り
に物体の回転(姿勢)を戻す処理(β=−28.69
°)を行うと、回転補正後の各点の座標は、 A3 (2.23,−0.08,1.5)「2.11,−
0.75,1.5」 B3 (2.23,−0.08,0.5)「2.11,−
0.75,0.5」 C3 (3.20, 0.20,0.5)「3.11,−
0.76,0.5」 a3 (1.99,−0.52,1.5)「1.75,−
1.09,1.5」 b3 (2.37,−0.56,0.5)「2.10,−
1.24,0.5」 c3 (3.33,−0.28,0.5)「3.10,−
1.27,0.5」 となる。この状態を図14(A)に示す。なお、上記地
面の場合と数値が微妙に異なるので、比較の為に図12
(A)場合の座標を「」内に併記する。
sin-10.48=28.69°が得られる。〈RAV〉
はユニバーサル座標のZ軸に平行なので、該Z軸の回り
に物体の回転(姿勢)を戻す処理(β=−28.69
°)を行うと、回転補正後の各点の座標は、 A3 (2.23,−0.08,1.5)「2.11,−
0.75,1.5」 B3 (2.23,−0.08,0.5)「2.11,−
0.75,0.5」 C3 (3.20, 0.20,0.5)「3.11,−
0.76,0.5」 a3 (1.99,−0.52,1.5)「1.75,−
1.09,1.5」 b3 (2.37,−0.56,0.5)「2.10,−
1.24,0.5」 c3 (3.33,−0.28,0.5)「3.10,−
1.27,0.5」 となる。この状態を図14(A)に示す。なお、上記地
面の場合と数値が微妙に異なるので、比較の為に図12
(A)場合の座標を「」内に併記する。
【0091】次に、位置差分ベクトル〈MA 〉〜
〈MC 〉を求める。 〈MA 〉=(0.23,−1.08,0)「0.11,
−1.75,0」 〈MB 〉=(0.23,−1.08,0)「0.11,
−1.75,0」 〈MC 〉=(0.20,−0.80,0)「0.11,
−1.76,0」 次に、位置差分加重平均ベクトル〈MAV〉を求める。即
ち、 〈MAV〉=(〈MA 〉*gA +〈MB 〉*gB +〈MC 〉*gC ) /(gA +gB +gC ) ={(0.23,−1.08,0)*0.1+(0.23, −1.08,0)*0.1+(0.20,−0.80,0) *0.1}/0.3 =(0.22,−1.00,0)「0.10,−1.76,0」 となる。
〈MC 〉を求める。 〈MA 〉=(0.23,−1.08,0)「0.11,
−1.75,0」 〈MB 〉=(0.23,−1.08,0)「0.11,
−1.75,0」 〈MC 〉=(0.20,−0.80,0)「0.11,
−1.76,0」 次に、位置差分加重平均ベクトル〈MAV〉を求める。即
ち、 〈MAV〉=(〈MA 〉*gA +〈MB 〉*gB +〈MC 〉*gC ) /(gA +gB +gC ) ={(0.23,−1.08,0)*0.1+(0.23, −1.08,0)*0.1+(0.20,−0.80,0) *0.1}/0.3 =(0.22,−1.00,0)「0.10,−1.76,0」 となる。
【0092】更に、−〈MAV〉を用いて位置補正を行う
と、移動後の各点の座標は、 A4 (2.01,0.92,1.5)「2.01,1.
01,1.5」 B4 (2.01,0.92,0.5)「2.01,1.
01,0.5」 C4 (2.98,1.20,0.5)「3.01,1.
00,0.5」 a4 (1.77,0.48,1.5)「1.65,0.
67,1.5」 b4 (2.15,0.44,0.5)「2.00,0.
52,0.5」 c4 (3.11,0.72,0.5)「3.00,0.
49,0.5」 となる。この状態を図14(B)に示す。
と、移動後の各点の座標は、 A4 (2.01,0.92,1.5)「2.01,1.
01,1.5」 B4 (2.01,0.92,0.5)「2.01,1.
01,0.5」 C4 (2.98,1.20,0.5)「3.01,1.
00,0.5」 a4 (1.77,0.48,1.5)「1.65,0.
67,1.5」 b4 (2.15,0.44,0.5)「2.00,0.
52,0.5」 c4 (3.11,0.72,0.5)「3.00,0.
49,0.5」 となる。この状態を図14(B)に示す。
【0093】図14(B)によると、祖A,子Bの位置
は、水中での回転による反作用を受けて僅かに−Y軸方
向に移動している。更に、祖Aの顔aはα´=−28.
61°<「−46.63°」と、少なめに回転してい
る。これは上記地面との接触の場合の略61%に当た
り、水中における自然な動きである。一方、孫Cは祖A
からβ´=tan-1{|〈B1 C1 〉×〈B4 C4 〉|
/〈B1 C1 〉・〈B4 C4 〉}=16.10°だけ傾
いている。これも水中における自然な動きである。
は、水中での回転による反作用を受けて僅かに−Y軸方
向に移動している。更に、祖Aの顔aはα´=−28.
61°<「−46.63°」と、少なめに回転してい
る。これは上記地面との接触の場合の略61%に当た
り、水中における自然な動きである。一方、孫Cは祖A
からβ´=tan-1{|〈B1 C1 〉×〈B4 C4 〉|
/〈B1 C1 〉・〈B4 C4 〉}=16.10°だけ傾
いている。これも水中における自然な動きである。
【0094】かくして、以上の2例によれば、変化重
(パラメータ)gは、固体の動き難さを表すより一般的
な目安として、上記地面との摩擦や水の粘性以外にも、
様々な運動抑制要素を代表するパラメータとして、任意
の物理的環境に適用できることが容易に理解できる。な
お、上記実施の形態では固体を球体としたがこれに限ら
ない。同一又は異なる形状の様々な固体{例えば頭
(祖),胴,手足等の部品}を連結できる。
(パラメータ)gは、固体の動き難さを表すより一般的
な目安として、上記地面との摩擦や水の粘性以外にも、
様々な運動抑制要素を代表するパラメータとして、任意
の物理的環境に適用できることが容易に理解できる。な
お、上記実施の形態では固体を球体としたがこれに限ら
ない。同一又は異なる形状の様々な固体{例えば頭
(祖),胴,手足等の部品}を連結できる。
【0095】また、上記実施の形態では理解の容易のた
めに具体的数値例を伴い説明したが、本発明はこれらの
数値に制限されない。また、上記実施の形態ではゲ−ム
機への適用例を中心に説明したが、本発明はあらゆるC
Gアニメーション画像の生成処理に適用できる。また、
上記本発明に好適なる実施の形態を述べたが、本発明思
想を逸脱しない範囲内で、各処理の構成、制御の流れ、
及びこれらの組合せの様々な変更が行えることは言うま
でも無い。
めに具体的数値例を伴い説明したが、本発明はこれらの
数値に制限されない。また、上記実施の形態ではゲ−ム
機への適用例を中心に説明したが、本発明はあらゆるC
Gアニメーション画像の生成処理に適用できる。また、
上記本発明に好適なる実施の形態を述べたが、本発明思
想を逸脱しない範囲内で、各処理の構成、制御の流れ、
及びこれらの組合せの様々な変更が行えることは言うま
でも無い。
【0096】
【発明の効果】以上述べた如く本発明によれば、簡単な
データ構造及び又は処理で仮想連結動作物体により高度
な形態及び動きを与えることが可能となり、CGアニメ
ーション技術の発展に寄与する所が極めて大きい。
データ構造及び又は処理で仮想連結動作物体により高度
な形態及び動きを与えることが可能となり、CGアニメ
ーション技術の発展に寄与する所が極めて大きい。
【図1】図1は本発明の原理を説明する図である。
【図2】図2は実施の形態によるゲーム機の構成を示す
図である。
図である。
【図3】図3は実施の形態による連結動作物体を説明す
る図(1)である。
る図(1)である。
【図4】図4は実施の形態による連結動作物体を説明す
る図(2)である。
る図(2)である。
【図5】図5は実施の形態による連結動作物体のデータ
構造を説明する図である。
構造を説明する図である。
【図6】図6は実施の形態による変形処理のフローチャ
ートである。
ートである。
【図7】図7は実施の形態による変形処理の具体例を説
明する図(1)である。
明する図(1)である。
【図8】図8は実施の形態による変形処理の具体例を説
明する図(2)である。
明する図(2)である。
【図9】図9は実施の形態による変形補正処理のフロー
チャートである。
チャートである。
【図10】図10は回転差分ベクトルの加重平均処理を
説明する図である。
説明する図である。
【図11】図11は実施の形態による連結動作物体の変
形例を説明する図(1)である。
形例を説明する図(1)である。
【図12】図12は実施の形態による連結動作物体の変
形例を説明する図(2)である。
形例を説明する図(2)である。
【図13】図13は実施の形態による連結動作物体の変
形例を説明する図(3)である。
形例を説明する図(3)である。
【図14】図14は実施の形態による連結動作物体の変
形例を説明する図(4)である。
形例を説明する図(4)である。
1 ゲーム機本体 2 コンソール部 3 表示装置 4 コンパクトディスク 5 サーバ 6 他のゲーム機 11 CPU 12 主メモリ 13 表示制御部 14 インタフェース部 15 CD駆動部 16 通信制御部 17 共通バス 100 ネットワーク
Claims (10)
- 【請求項1】 複数の仮想の固体が木構造に連結され、
かつその連結部に加える回転情報に従い各固体が変位す
ると共に、これに伴い木構造物の全体が運動し又は変形
することを特徴とする仮想の連結動作物体。 - 【請求項2】 木構造の先頭に位置し、かつユニバーサ
ル座標原点からの位置及び回転の情報を備える第1の固
体と、 木構造の先頭以外に位置し、かつ自己の連結先固体が有
するローカル座標原点からの位置及び回転の情報を備え
る第2以降の固体とを備えることを特徴とする請求項1
に記載の連結動作物体。 - 【請求項3】 請求項2に記載の連結動作物体の変形方
法において、 基準座標を表す状態変数に固体が備える固体変数を掛け
合わせて新たな状態変数を求める演算処理と、 連結動作物体の木構造記述データに基づき、第1の固体
より前記演算を実行して最初の基準座標からの第1の固
体の状態変数を求めると共に、該求めた状態変数を次の
演算の基準座標となし、かつ第2以降の固体を前記木構
造記述データの次世代の方向に求めて、その都度新たな
状態変数を求める制御処理とを備えることを特徴とする
連結動作物体の変形方法。 - 【請求項4】 制御処理は、各求めた状態変数の内容に
基づき対応する固体の画像を画面に表示することを特徴
とする請求項3に記載の連結動作物体の変形方法。 - 【請求項5】 制御処理は、次世代の方向に第2以降の
固体が存在しないことにより、共通の親を持つ同世代の
他の第2以降の固体が存在するまで木構造記述データの
枝を逆上ることを特徴とする請求項3に記載の連結動作
物体の変形方法。 - 【請求項6】 制御処理は、第1の固体の存在まで木構
造記述データの枝を逆上ったことにより処理終了するこ
とを特徴とする請求項5に記載の連結動作物体の変形方
法。 - 【請求項7】 状態変数及び固体変数は同次座標の1次
変換行列であることを特徴とする請求項3に記載の連結
動作物体の変形方法。 - 【請求項8】 複数の固体が連結して構成される連結動
作物体の変形方法において、 連結動作物体を所定軸の回りに回転させる処理と、 前記回転により変位した各固体の回転差分ベクトルと、
各固体の変位の難易度を示すパラメータ情報とに基づ
き、これらの加重平均回転差分ベクトルを求める処理
と、 前記回転した連結動作物体を前記所定軸の回りに加重平
均回転差分ベクトル分だけ逆回転する処理とを備えるこ
とを特徴とする連結動作物体の変形方法。 - 【請求項9】 複数の固体が連結して構成される連結動
作物体の変形方法において、 連結動作物体を平行移動させる処理と、 前記平行移動により変位した各固体の位置差分ベクトル
と、各固体の変位の難易度を示すパラメータ情報とに基
づき、これらの加重平均位置差分ベクトルを求める処理
と、 前記平行移動した連結動作物体を加重平均位置差分ベク
トル分だけ逆平行移動する処理とを備えることを特徴と
する連結動作物体の変形方法。 - 【請求項10】 複数の固体が連結して構成される連結
動作物体の変形方法において、 連結動作物体を所定軸の回りに回転させる処理と、 前記回転により変位した各固体の回転差分ベクトルと、
各固体の変位の難易度を示すパラメータ情報とに基づ
き、これらの加重平均回転差分ベクトルを求める処理
と、 前記回転した連結動作物体をユニバーサル座標原点の回
りに加重平均回転差分ベクトル分だけ逆回転する処理
と、 前記逆回転により変位した各固体の前記回転前の位置か
らの位置差分ベクトルと、前記パラメータ情報とに基づ
き、これらの加重平均位置差分ベクトルを求める処理
と、 前記逆回転した連結動作物体を加重平均位置差分ベクト
ル分だけ逆平行移動する処理とを備えることを特徴とす
る連結動作物体の変形方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP19408596A JPH1021419A (ja) | 1996-07-05 | 1996-07-05 | 仮想の連結動作物体及びその変形方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP19408596A JPH1021419A (ja) | 1996-07-05 | 1996-07-05 | 仮想の連結動作物体及びその変形方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH1021419A true JPH1021419A (ja) | 1998-01-23 |
Family
ID=16318714
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP19408596A Pending JPH1021419A (ja) | 1996-07-05 | 1996-07-05 | 仮想の連結動作物体及びその変形方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH1021419A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009140519A (ja) * | 2009-02-09 | 2009-06-25 | Namco Bandai Games Inc | 画像生成システム及び情報記憶媒体 |
| WO2011142084A1 (ja) * | 2010-05-10 | 2011-11-17 | 株式会社スクウェア・エニックス | 画像処理装置、画像処理方法、および画像処理プログラム |
-
1996
- 1996-07-05 JP JP19408596A patent/JPH1021419A/ja active Pending
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009140519A (ja) * | 2009-02-09 | 2009-06-25 | Namco Bandai Games Inc | 画像生成システム及び情報記憶媒体 |
| WO2011142084A1 (ja) * | 2010-05-10 | 2011-11-17 | 株式会社スクウェア・エニックス | 画像処理装置、画像処理方法、および画像処理プログラム |
| CN102934145A (zh) * | 2010-05-10 | 2013-02-13 | 史克威尔·艾尼克斯有限公司 | 图像处理装置、图像处理方法及图像处理程序 |
| KR101247930B1 (ko) | 2010-05-10 | 2013-03-26 | 가부시키가이샤 스퀘어.에닉스 | 화상처리장치, 화상처리방법 및 화상처리 프로그램 |
| US8432401B2 (en) | 2010-05-10 | 2013-04-30 | Kabushiki Kaisha Square Enix | Image processing apparatus, image processing method, and image processing program |
| JP5303068B2 (ja) * | 2010-05-10 | 2013-10-02 | 株式会社スクウェア・エニックス | 画像処理装置、画像処理方法、および画像処理プログラム |
| TWI448982B (zh) * | 2010-05-10 | 2014-08-11 | Square Enix Co Ltd | Image processing apparatus, image processing method and image processing program |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Welman | Inverse kinematics and geometric constraints for articulated figure manipulation | |
| US7800609B2 (en) | Method and apparatus for generating and interfacing with a haptic virtual reality environment | |
| US5835693A (en) | Interactive system for simulation and display of multi-body systems in three dimensions | |
| US7084869B2 (en) | Methods and apparatus for detecting and correcting penetration between objects | |
| US6937240B2 (en) | Methods and apparatus for transforming three-dimensional objects in video games | |
| US20140285513A1 (en) | Animation of a virtual object | |
| US20260051125A1 (en) | Shaping neural radiance field (nerf) generation using multiple polygonal meshes | |
| CN114075810B (zh) | 面向混凝土3d打印的空间路径拟合方法及系统 | |
| JP4053078B2 (ja) | 3次元ゲーム装置及び情報記憶媒体 | |
| Celikcan et al. | Example‐Based Retargeting of Human Motion to Arbitrary Mesh Models | |
| JP3957363B2 (ja) | 3次元ゲーム装置及び情報記憶媒体 | |
| Szirmay-Kalos et al. | Adapting game engines to curved spaces | |
| JP4229316B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
| Usta | Comparison of quaternion and euler angle methods for joint angle animation of human figure models | |
| US7219114B2 (en) | Fast approximation to the spherical linear interpolation function | |
| JP3697321B2 (ja) | 仮想物体の運動生成方法 | |
| Colubri | Basics of VR | |
| JPH11232483A (ja) | 情報処理装置および情報記録媒体 | |
| US12602355B2 (en) | LLM-based game schema generation, cross-referencing, and instantiation | |
| JP4480322B2 (ja) | ゲームシステム及び情報記憶媒体 | |
| JP3753802B2 (ja) | 連結動作物体の処理装置 | |
| US8416246B2 (en) | Generating a surface representation of an item | |
| Ismail et al. | Editing Virtual Human Motion Techniques With Dynamic Motion Simulator And Controller | |
| WO2005076226A1 (en) | Animation techniques using quaternions | |
| Thomson | Spread-Quadray Rotors |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050322 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050809 |