(57)【特許請求の範囲】
【請求項１】
複数の仮想の部品が連結され、かつその全体がＣＧアニメーションにより運動し及び又は変形する連結動作物体の処理装置において、
中心と半径により特定される複数の球体を、各中心上に設定した３次元直交座標軸を介して該軸の周りに回転可能に連結し、全体としてのキャラクタの構造を構成する連結手段と、
外部入力の操作情報に従って対応する連結部に回転トルクを与え、キャラクタの全体を運動及び又は変形させる操作手段と、
前記球体の中心と、該球体に加えられた回転トルクに従う回転の情報とに基づき各球体を該球体に１対１の割合で内接し乃至外接するような各部品に固有の外形形状で表示する表示手段とを備えることを特徴とする連結動作物体の処理装置。
【請求項２】
前記球体の中心と半径の情報に基づき他の物体又はその部品との間の当たり判定を行う当たり判定手段を備えることを特徴とする請求項１記載の連結動作物体の処理装置。
【請求項３】
各球体の大きさは同一であることを特徴とする請求項１又は２記載の連結動作物体の処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は連結動作物体の処理装置に関し、更に詳しくは複数の仮想の部品が連結され、かつその全体がＣＧアニメーションにより運動し及び又は変形する連結動作物体の処理装置に関する。
例えば、仮想のボディーやフレームと複数のタイヤを備え、該タイヤの回転に伴いサーキット上を走る様にした自動車は一種の連結動作物体で実現できる。係る自動車のＣＧアニメーションでは、自動車の形態や運動（動き）のリアリティーを要求されると共に、ゲームの進行に伴い、ガードレールや他の自動車と接触するようなアクシデントが発生した場合は、自動車の動きや変形をリアルタイムに処理する必要がある。
【０００２】
【従来の技術】
従来のゲーム機等では、物体（自動車，キャラクタ等）の忠実な外観を追求した結果、反面物理則に従う動きや変形のリアリティーが犠牲となっていた。
例えば人が画面を横切る様な場合は、人として忠実に生成された顔や胴体に、まず前向きに振られた手足を付け、次に後ろ向きに振られた手足をつけ替え、これらを繰り返すものに過ぎない。
【０００３】
また自動車がガードレールや他の自動車と接触したような場合は、部品（バンパ，タイヤ等）の形状を無視し、ボディー等の大まかな形状に基づき、大まかな当たり判定（接触有無の判定）を行うものに過ぎない。
【０００４】
【発明が解決しようとする課題】
しかし、上記物体の大まかな当たり判定を行ったり、物理則に従う運動や変形の処理を犠牲にすると、ゲームのトータルリアリティーが損なわれる。
一方、物体の形態及び運動等のリアリティーを同時に追求すると、処理が極端に複雑となり、リアルタイムな処理を行えない。
【０００５】
本発明は、上記従来技術の課題に鑑み成されたものであり、その目的とする所は、簡単な構成及び処理で複雑な形態を有する物体の動きや当たり判定等を高速に処理できる連結動作物体の処理装置を提供することにある。
【０００６】
【課題を解決するための手段】
上記の課題は例えば図１（及び図３，図４）の構成により解決される。即ち、本発明（１）の連結動作物体の処理装置は、複数の仮想の部品（例えばボディー，フレーム，タイヤ）Ａ〜Ｇが連結され、かつその全体がＣＧアニメーションにより運動し及び又は変形する連結動作物体（例えば自動車）の処理装置において、中心と半径により特定される複数の球体を、各中心上に設定した３次元直交座標軸を介して該軸の周りに回転可能に連結し、全体としてのキャラクタの構造を構成する連結手段と、外部入力の操作情報に従って対応する連結部に回転トルクを与え、キャラクタの全体を運動及び又は変形させる操作手段と、前記球体の中心と、該球体に加えられた回転トルクに従う回転の情報とに基づき各球体を該球体に１対１の割合で内接し乃至外接するような各部品に固有の外形形状（球体，楕円体，タイヤ形状）で表示する表示手段とを備えるものである。
また本発明（２）では、上記本発明（１）において、前記球体の中心と半径の情報に基づき他の物体又はその部品との間の当たり判定を行う当たり判定手段を備える。
また本発明（３）では、上記本発明（１）又は（２）において、  各球体の大きさは同一である。
【０００７】
図において、例えばゲームの進行に伴い、後続の連結動作物体（自動車）１０が先行する自動車２０に追越しを掛けている。この場合に、図の実線で示す如く、夫々にリアルな形態の部品（球体のボディーＡ、楕円体のフレームＢ，Ｃ、タイヤ形状のタイヤＤ〜Ｆ）から成り、かつ全体としても複雑な形態の自動車１０と同じく自動車２０との間の正確な当たり判定は、一般に複雑・困難なものとなる。
【０００８】
本発明（１）においては、全部品Ａ〜Ｇを該部品の外形状にそれぞれ１対１の割合で内接し乃至外接するような球体の情報で模擬（骨格構成）する。
この場合に、ボディーＡは元々球体なのでこれを球体で模擬しても問題はない。一方、楕円体のフレームＢ，Ｃについては、これらを該楕円体外形に内接し乃至外接するような球体で模擬しても、形状の大きな相違（ゲーム上の違和感）は生じない。更に、この考えを進めると、図示の如き幅広のタイヤＤ〜Ｇにつき、これらをタイヤ外形に内接し乃至外接するような球体で模擬しても、大きな違和感は生じない。自動車２０についても同様である。
更に本発明（１）では、複数の球体を連結すると共に、外部入力の操作情報に従って対応する連結部に回転トルクを与え、キャラクタの全体を運動及び又は変形させると共に、該球体の中心と、該球体に加えられた回転トルクに従う回転の情報とに基づき各球体を該球体に１対１の割合で内接し乃至外接するような各部品に固有の外形形状（球体，楕円体，タイヤ形状）で表示する。
図において、例えばタイヤＥはタイヤ独自の形状・構造を備えるが、物体（自動車）１０の全体の形状、構造及び動き等の処理に関しては、上記模擬された球体として取り扱われる。フレームＢ等についても同様である。その結果、自動車１０の全体についての形状、構造及び動き等に関しては、これを単純な球体の集合として取り扱え、各球体の中心と回転の情報に基づき比較的容易に生成できる。しかも、本発明（１）によれば、前記球体の中心と回転の情報に基づき各部品Ａ〜Ｇ，Ｈ〜Ｎを該部品に固有の形状（球体，楕円体，タイヤ形状）で表示するので、自動車１０，２０の描画の質（リアリティー）を損なわない。かくして、本発明（１）によれば、簡単な構成と動きや変形の生成処理で、よりリアルな形態と動き等を高速に生成できる。
【０００９】
本発明（２）においては、前記球体の中心と半径の情報に基づき他の物体又はその部品との間の当たり判定を行う。
今、自動車１０，２０間の当たり判定を行うとすると、この例では、２つのフレーム及び４つのタイヤで周囲を囲まれたボディーＡ／Ｈが他の自動車の部品に接触するとは考え難い。そこで、ボディーＡ，Ｈを除外し、残りの一部の部品Ｂ〜Ｇ，Ｉ〜Ｎについての当たり判定を行う。これを具体的に言うと、画面の各描画時刻に、任意の部品ｉ，ｊ（Ｂ≦ｉ≦Ｇ，Ｉ≦ｊ≦Ｎ）につき、２つの部品の中心間の距離｜ＣｉＣｊ｜≦２ｒを満たすものを探査し、存在する場合は当たり判定とする。図示の例では、タイヤＥ，Ｍのみが距離｜ＣＥＣＭ｜≦２ｒを満足し、当たり判定となる。
【００１０】
またガードレールとの当たり判定を行う場合は、任意の部品ｉ（Ｂ≦ｉ≦Ｇ）とガードレールの面（例えばＸ＝ｋ）につき、距離｜ＣiXｋ｜≦ｒを満たすものを探査し、存在する場合は当たり判定とする。図示の例では、タイヤＤのみが距離｜ＣDXｋ｜≦ｒを満足し、当たり判定となる。
このように、部品形状を球体で模擬した場合の当たり判定は、球体のどの部分についても該球体の中心座標Ｃと半径ｒとを使用して容易に行えるので、当たり判定の処理が格段に軽減され、高速化される。しかも、この場合の各球体の大きさは各部品の外形状に内接し乃至外接するように選ばれているので、球体と部品との間の形状誤差を小さくでき、よって当たり判定に関しては大きな違和感を生じない。
【００１４】
好ましくは、本発明（３）においては、上記本発明（１），（２）において、図示の如く、各球体（即ち、各部品）の大きさは同一である。従って、当たり判定の閾値が一定（２ｒ又はｒ）となり、又は各構成部品の大きさを一定と見做して物体のアニメーション（動きや変形）を生成でき、演算は一層簡単になる。
なお、本発明は上記図示の例に限定されないことは言うまでも無い。
【００１５】
【発明の実施の形態】
以下、添付図面に従って本発明に好適なる実施の形態を詳細に説明する。
図２は実施の形態によるゲーム機の構成を示す図で、図において、１はゲーム機の本体、２はユーザが操作するための十字キー、Ａ，Ｂボタン、スタートボタン等を有するコンソール部（ＣＳＬ）、３はＣＲＴ等による表示装置（ＤＩＳＰ）、４は本実施の形態による連結動作物体のデータ及びそのアニメーション処理方法等をプログラムで記憶しているコンパクトディスク（ＣＤ）、１００はネットワーク（公衆網等）、５はゲーム等に関する様々な通信サービスをオンラインで提供するサーバ、６は他のゲーム機である。
【００１６】
ゲーム機本体１において、１１は本ゲーム機の主制御・処理を行うＣＰＵ、１２はＣＰＵ１１が実行するプログラムやデータであって、例えば図５〜図７に示す連結動作物体のデータや処理プログラム等を記憶するＲＡＭ，ＲＯＭ，ＥＥＰＲＯＭ等よりなる主メモリ（ＭＥＭ）、１３は表示装置３を制御する表示制御部（ＤＩＳＰＣ）、１４はコンソール部２をＣＰＵ１１に接続するインタフェース部（ＩＦ）、１５はＣＤ４の着脱、駆動及びデータ読取を行うＣＤ駆動部（ＣＤＤ）、１６はゲーム機本体１をネットワーク１００に接続する通信制御部（ＮＣＣ）、１７はＣＰＵ１１の共通バスである。
【００１７】
ゲームを行う時には、ゲーム機本体１及び表示装置３に電源投入し、ゲーム用のＣＤ４をＣＤ駆動部１５に装填する。更に、ＣＤ４から必要なプログラムやデータを主メモリ１２にロードし、ゲームをスタートする。そして、表示装置３に表示される生成アニメーション画像を見ながら、コンソール部２を操作して、ゲームを楽しむ。
【００１８】
なお、ＣＤ４に代え、ＲＯＭカードやフロッピーディスク等の他の２次記憶装置を使用しても良い。また、サーバ５から所望のゲームソフトをダウンロードしても良い。更に、他のゲーム機６とオンラインで対戦ゲームを行っても良い。
図３は実施の形態による連結動作固体（部品）を説明する図である。
本実施の形態における連結動作固体（以下、単に固体又は部品とも言う）とは、連結されて連結動作物体を構成する固体を言い、それ自体は変形しないものを言う。固体には様々な形態のものが考えられるが、以下に一例の自動車（物体）を構成する部品について説明する。
【００１９】
図３（Ａ）は球体よりなるボディー（操縦席）の斜視図である。
ボディーは、物体に一つ存在し、これに各部品を連結して物体（自動車）を構成する。一例のボディーは半径ｒ＝０．５の球体であり、この球体は、その中心点ｏと、該中心点ｏを通る直交線ｘｙｚと球面との交点にある６つの端点（連結点）ｐ1 〜ｐ6 の情報を備える。
【００２０】
ボディーの中心ｏはユニバーサル座標原点Ｏからの位置（Ｘ，Ｙ，Ｚ）と同ユニバーサル座標における回転（姿勢）とで特定され、各端点ｐ1 〜ｐ6 は自己のローカル座標原点ｏからの位置（ｘ，ｙ，ｚ）で特定される。初期状態では、中心ｏ（Ｘ0 ，Ｙ0 ，Ｚ0 ），端点ｐ1 （０．５，０，０），ｐ2 （０，０．５，０），ｐ3 （−０．５，０，０），ｐ4 （０，−０．５，０），ｐ5 （０，０，０．５），ｐ6 （０，０，−０．５）である。
【００２１】
また、このボディーは球体を表す形状属性情報を別途に備えており、該ボディーを画面に表示する際には、その中心点ｏを基準として、ｘ2 ＋ｙ2 ＋ｚ2 ＝ｒ2 を満足するような球体としてポリゴンにより表示される。
なお、ボディーは上記球体に限らず、任意の形態で良い。但し、球体に近い程、後述のアニメーション（物体の動き、変形、当たり判定等）処理上の形態と、画面に表示される形態とが一致し、ゲーム操作上の違和感が少なくなる。
【００２２】
図３（Ｂ）は楕円体よりなるフレームの斜視図である。
上記ボディーに複数のフレーム（サブボディー）を連結してＦ−１レーシングカーの様な車体の骨格を構成する。このフレームは楕円体として表示されるが、該フレームに与えられる処理上の空間は上記ボディーと同様の半径ｒ＝０．５の球体である。この球体は、その中心点ｏと、該中心点ｏを通る直交線ｘｙｚと球面との交点にある６つの端点（連結点）ｐ1 〜ｐ6 の情報を備える。
【００２３】
中心ｏは連結先固体（ボディー等）のローカル座標原点ｏからの位置（ｘ，ｙ，ｚ）と連結軸回りの回転（姿勢）とで特定され、各端点ｐ1 〜ｐ6 は自己のローカル座標原点ｏからの位置（ｘ，ｙ，ｚ）で特定される。初期状態では、中心ｏ（ｘ0 ，ｙ0 ，ｚ0 ），端点ｐ1 （０．５，０，０），ｐ2 （０，０．５，０），ｐ3 （−０．５，０，０），ｐ4 （０，−０．５，０），ｐ5 （０，０，０．５），ｐ6 （０，０，−０．５）である。
【００２４】
また、このフレームは楕円体を表す形状属性情報を別途に備えており、該フレームを画面に表示する際には、その中心点ｏを基準として、長径｜ｐ５ｐ６｜＝１，短径｜ｐ１ｐ３｜＝｜ｐ２ｐ４｜＜１を満足するような楕円体としてポリゴンにより表示される。
なお、上記楕円体に外接する球体の代わりに、これより大きな楕円体に内接する同球体を考えても良い。いずれにしても、その形状誤差は小さい。
【００２５】
図３（Ｃ）は幅広のタイヤの斜視図である。
上記フレームに複数のタイヤを連結して最終的に物体（自動車）を構成する。タイヤはタイヤとして表示されるが、該タイヤに与えられる処理上の空間は上記フレームの場合と同様の半径ｒ＝０．５の球体である。その中心ｏは連結先固体（フレーム等）のローカル座標原点ｏからの位置（ｘ，ｙ，ｚ）と連結軸回りの回転（姿勢）の情報で特定され、端点ｐ1 〜ｐ6 は自己のローカル座標原点ｏからの位置（ｘ，ｙ，ｚ）で特定される。
【００２６】
また、このタイヤはタイヤの形状属性情報を別途に備えており、基本的には、軸ｐ２ｐ４の回り展開するような予め生成されたタイヤのポリゴンに基づき表示される。
図３（Ｄ）は握り拳の斜視図である。
本実施の形態とは直接関係無いが、球体で模擬しても外観との相違が少ない部品の一例として握り拳を示している。他にも、拳闘のグローブ等、様々な部品を球体で模擬できる。また、上記楕円体を有する部品としては、他に人の顔等、様々な部品が考えられる。また複数の楕円体を連結すれば、長尺の胴体や手足等も楕円体（即ち、球体）の集合として表現・処理できる。
【００２７】
更に、上記ボディー以外の各部品は、部品間を連結する連結リンク（ｘ／ｙ／ｚ軸）の回りに回転可能であり、これにより各部品の姿勢が変化し、ひいては自動車の形状が変化する。
図４は一例の連結動作物体（自動車）を説明する図で、図４（Ａ）はある姿態の平面図、図４（Ｂ）は他の姿態の後面図である。
【００２８】
一例のゲームでは、ゲーム開始前の画面に複数の固体（部品）が表示され、ユーザは任意の部品を選択してボディー等に連結する。なお、タイヤやフレームの数を増し、装甲車のような車を構成しても良い。
図４（Ａ）において、ユーザは、例えば、ボディーＡにフレームＢ，Ｃを連結し、更にフレームＢ，ＣにタイヤＤ，Ｅ及びＦ，Ｇを連結して、１台の自動車を組み立てる。また同様にして、対戦相手は、不図示の部品Ｈ〜Ｎを使用してもう１台の自動車を組み立てる。
【００２９】
係る連結動作物体を構成後、ユーザが操作ボタンを押すと、これが各連結リンク（不図示）における角速度（単位時間当たりの回転角）Ｒ，０，−Ｒの情報に変換され、物体が運動する。Ｒはリンクを被連結先固体の方向に見て反時計方向ＣＣＷの回転、０は回転無し、−Ｒは時計方向ＣＷの回転を表す。
ユーザが前進を指令すると、各連結リンクに図示のようなトルク（角速度に対応）が生成され、物体は前進する。また後退を指令すると、図示の−Ｒ→Ｒ，Ｒ→−Ｒとなり、物体は後退する。また右回転を指令すると、図示の−Ｒ→Ｒとなり、物体は右回転する。また左回転を指令すると、図示のＲ→−Ｒとなり、物体は左回転する。また右旋回を指令すると、図示の−Ｒ→０となり、物体は右旋回する。また左旋回を指令すると、図示のＲ→０となり、物体は左旋回する。
【００３０】
図４（Ｂ）において、例えばボディーＡとフレームＣとの間の連結リンクにトルク（単位時間当たりの回転角に相当）Ｒを加えると、自動車は図示のような姿態となることが容易に理解できる。ゲーム上では、対戦相手の進行を妨害したり、地面の障害物を跨ぐ行為である。これにより、車体はねじれ、自動車は変形する。
【００３１】
図５は実施の形態による連結動作物体のデータ構造を説明する図である。
ここには上記図４（Ａ）の自動車に対応したデータ構造を示す。
ゲームの前置処理（不図示）は、上記ユーザの連結操作に基づき、又は完成された自動車の部品の接続状態を、ボディー（祖）Ａから開始し、フレーム（親）Ｂ、タイヤ（子）Ｄ，Ｅの如く、世代順にトレースすることにより、所定の連結情報を生成する。この連結情報には２種類有り、自己が他の部品に連結している積極的連結情報と、自己に他の部品が連結されている被連結情報とがある。
【００３２】
積極的連結情報は、各部品が有する部品変数行列［Ｕ］の中に具現される。但し、ボディーＡには積極的連結情報が無いので、ユニバーサル座標原点Ｏに連結される。即ち、ユニバーサル座標原点Ｏからの位置（１０，１０，０）と、該ユニバーサル座標における回転（θ＝０°に相当）の情報を備える。但し、地面の座標をＺ＝−０．５としている。フレームＢはボディーＡのローカル座標原点ｏからの位置（０，１，０）と、その連結軸回りの回転（θy ＝０°に相当）の情報を備える。タイヤＤはフレームＢのローカル座標原点ｏからの位置（−１，０，０）と、その連結軸回りの回転（θx ＝０°に相当）の情報を備え、タイヤＥは同フレームＢのローカル座標原点ｏからの位置（１，０，０）と、その連結軸回りの回転（θx ＝０°に相当）の情報を備える。他の部品Ｃ，Ｆ，Ｇについても同様である。このように、各部品Ｂ〜Ｇの位置及び姿勢は、ボディーＡ又は各連結先部品からの相対位置と連結軸回りの回転とで規定されており、連結動作物体の取扱が容易となる。また、この例の各積極的連結情報には、各部品を模擬する球体の半径ｒ＝０．５であることが含まれている。
【００３３】
一方、ボディーＡの被連結情報は最大６個あり、夫々はポインタ方式によりネスティングされる。但し、プログラム処理上は、この被連結情報を子の世代から親の世代を見た連結情報（木構造記述データ）として取扱い、矢印の向きを図示の如く表す。
ボディーＡからフレームＢに向かうチャイルド(child) はフレームＢがボディーＡの最初の子であることを表す。フレームＢからフレームＣに向かうネクスト(next)はフレームＣがボディーＡの２番目の子であることを表す。またフレームＣのnext＝Nullにより、ボディーＡの子は合計２人である。フレームＢとタイヤＤ，Ｅの関係も同様である。ここで、タイヤＤから子に向かうchild ＝NullはタイヤＤに子が居ないことを表す。なお、ボディーＡ以外の各部品はリンクの一つを積極的連結情報に使用した結果、被連結情報は最大５個となる。
【００３４】
係るデータ構造では、各部品に関する連結情報の構造（部品変数行列及び木構造記述データ）はどの部品に着目しても同一である。このため、自動車の動きや変形の処理は、後述の共通の演算処理を再帰的に使用して、ボディーＡから開始し、かつトップダウン方式によるフィードバック無しで、高速に行える。以下、これを説明する。
【００３５】
図６は実施の形態による物体のアニメーション生成処理のフローチャートである。なお、以下の説明では、記号［］は行列（マトリクス）を表す。
ゲームの進行に伴う各描画時刻に、この処理に入力する。このアニメーション生成処理は、部品の形状を変更せずに、その連結情報に従って各部品の姿勢（回転）を変更し、結果として自動車全体を動かし、変形する処理である。
【００３６】
ステップＳ１では祖，親，子等の世代の深さを表すカウンタｉを０（祖）に初期化する。ステップＳ２では、再帰的演算を実現するために、ステップＳ３で使用する状態変数行列［Ｓ(i-1) ］をスタック（不図示）にプッシュ（push) する。添字の（ｉ−１）はｉよりも１世代前を指し、最初は（０−１）でユニバーサル座標の状態変数行列を指す。状態変数行列［Ｓ(0-1) ］は、同次座標の３次元１次変換行列からなり、以下に示す単位行列となっている。
【００３７】
【数１】
0003753802.tif 000002
【００３８】
ステップＳ３では１世代前の状態変数行列［Ｓ(i-1) ］に現代の部品変数行列［Ｕ(i) ］を左側から掛け合わせ、現代の状態変数行列［Ｓ(i) ］を求める。部品変数行列［Ｕ(i) ］は同次座標の３次元１次変換行列からなり、各部品が個々に備える。ステップＳ４では求めた状態変数行列［Ｓ(i) ］の内容に従って部品（最初は祖Ａ）を画面に表示する。表示の際には、各部品が別途に備える形状属性情報が使用される。ステップＳ５では子の有無を調べるためにカウンタｉに＋１する。ステップＳ６ではchild ＝Nullか否かを判別する。child ≠Nullの場合は、子が居るので、ステップＳ２に戻り、引き続き子の処理を行う。こうして、祖→親→子→孫の順にchild ≠Nullを直系でたどり、かつステップＳ３の演算を再帰的に使用して、祖→親→子→孫等の１系統を画面に表示する。
【００３９】
また、上記ステップＳ６の判別でchild ＝Nullの場合は、直系子孫の終わりである。処理はステップＳ７に進み、カウンタｉに−１する。即ち、兄弟の有無を調べるために１世代前に逆上る。ステップＳ８では、次のステップＳ３の演算を現在の世代ｉに合わせるために、その更に１世代前の状態変数行列［Ｓ(i-1) ］をスタックよりポップする。即ち、兄弟の親の状態変数行列［Ｓ(i-1) ］をポップする。ステップＳ９ではｉ＝０か否かを判別する。
【００４０】
ｉ＝０の場合は、判定が祖の世代まで逆上ったことを示し、祖に兄弟は居ないので、処理を抜ける。なお、この時点ではユニバーサル座標の状態変数行列［Ｓ(0-1) ］がポップされており、よってこの変形処理は初期化せずに何度も使用できる。またｉ≠０の場合は、ステップＳ１０でnext＝Nullか否かを判別する。next＝Nullの場合は、その世代に兄弟が居ないので、ステップＳ７に進み、更に１世代前に逆上る。またnext≠Nullの場合は、その世代に兄弟が居るので、ステップＳ２に戻る。以下、同様にして進み、こうして上記木構造記述データに基づく全部品の生成・表示が能率良く処理される。
【００４１】
図７は実施の形態による対戦ゲームの画面を説明する図である。
ユニバーサル座標のＸＹ平面（Ｚ＝−０．５）に対戦用のフロア（地面）が設けられている。従って、フロアに接触している部品（球体）の中心のＺ座標＝０と簡単化される。ゲームの初期状態では、自動車１０は画面手前側のスタートラインに位置し、対戦相手の自動車２０は画面奥側のスタートラインに位置する。ゲーム開始により、走行を開始し、相手側のスタートラインに先に到達した方が勝者である。
【００４２】
以下に、初期状態における自動車１０の描画手順につき具体的に説明する。
ボディーＡの状態変数行列［Ｓ1 ］を次式で求める。
【００４３】
【数２】
0003753802.tif 000003
【００４４】
求めた状態変数行列［Ｓ1 ］は、ボディーＡの状態（姿態）を表しており、ボディーＡの中心はユニバーサル座標原点Ｏからの位置（１０，１０，０）にあり、かつボディーＡのユニバーサル座標における回転角（姿勢）θA ＝０°である。これに基づき、ボディーＡの画像を生成し、画面に表示する。ボディーＡの画像は、そのローカル座標原点ｏを基準として、球体の形状属性情報、ｘ2 ＋ｙ2 ＋ｚ2 ＝ｒ2 （但し、ｒ＝０．５）を満足するようなポリゴン等で表示される。次にフレームＢの状態変数行列［Ｓ2 ］を次式で求める。
【００４５】
【数３】
0003753802.tif 000004
【００４６】
［Ｓ2 ］によれば、フレームＢの中心はユニバーサル座標原点Ｏからの位置（１０，１１，０）にあり、かつフレームＢのユニバーサル座標における回転角θB ＝０°である。ボディーＡの状態変数行列［Ｓ1 ］がユニバーサル座標で表される結果、これに部品変数行列［Ｕi ］を順次掛け合わせて生成されるフレームＢ以降の各状態変数行列［Ｓi ］もユニバーサル座標で表される。これに基づき、フレームＢの画像を生成し、画面に表示する。フレームＢの画像は、そのローカル座標原点ｏを基準として、楕円体の形状属性情報、ｘ2 ／ａ2 ＋ｙ2 ／ａ2 ＋ｚ2 ／ｂ2 ＝１（但し、０＜ａ＜ｂ，短軸２ａ＜１，長軸２ｂ＝１）を満足するようなポリゴンで表示される。次にタイヤＤの状態変数行列［Ｓ3 ］を次式で求める。
【００４７】
【数４】
0003753802.tif 000005
【００４８】
［Ｓ3 ］によれば、タイヤＤの中心はユニバーサル座標原点Ｏからの位置（９，１１，０）にあり、かつタイヤＤのユニバーサル座標における回転角θD ＝０°である。これに基づき、タイヤＤの画像を生成し、画面に表示する。タイヤＤの画像は、そのローカル座標原点ｏを基準として、タイヤ形状を生成するポリゴン等により表示される。例えば予めタイヤの骨格を成す３次元ワイヤフレーム情報を生成しておき、必要ならこれに回転処理を行い、更に、隠線消去やポリゴン処理を施す事で、タイヤＤをどの角度（姿勢）にでも表現できる。次に、タイヤＤのchild ＝Nullにより、タイヤＤのnextのタイヤＥの状態変数行列［Ｓ4 ］を次式で求める。
【００４９】
【数５】
0003753802.tif 000006
【００５０】
［Ｓ4 ］によれば、タイヤＥの中心はユニバーサル座標原点Ｏからの位置（１１，１１，０）にあり、かつタイヤＥのユニバーサル座標における回転角θE ＝０である。これに基づき、タイヤＥの画像を生成し、画面に表示する。以下同様である。
そして、次回にこのアニメーション生成処理に入力する時は、ゲーム機の操作により、対応する部品Ａ〜Ｄの部品変数行列［ＵA ］〜［ＵG ］の内容が変更（更新）されている。例えばタイヤにトルク（角速度に相当）を加えた場合は、そのタイヤの回転行列が更新されると共に、地面との摩擦による反作用を受けて車体が回転及び又は平行移動した分だけ、ボディーＡの回転行列及び又は位置行列が更新される。従って、次の描画タイミングにおける自動車１０の位置は前の位置より移動している。こうして、運動及び変形する自動車のアニメーション生成画像が画面にリアルタイムに表示される。
【００５１】
図８は実施の形態によるの当たり判定処理のフローチャートである。
画面の各描画時刻（画像の更新時刻）にこの処理に入力する。ステップＳ２１では、任意の部品ｉ，ｊ（Ｂ≦ｉ≦Ｇ，Ｉ≦ｊ≦Ｎ）につき、２つの部品の中心間の距離｜Ｃi Ｃj ｜≦２ｒを満たすものを探査する。ステップＳ２２では上記当たり判定条件を満たすものが存在するか否かを判別する。存在しない場合はステップＳ２３で当たりフラグＦをリセットし、処理を抜ける。また存在する場合はステップＳ２４で当たりフラグＦをセットし、処理を抜ける。
【００５２】
なお、ガードレール等の他の物体との当たり判定を行う場合は、上記ステップＳ２１の処理は、任意の部品ｉ（Ｂ≦ｉ≦Ｇ）とガードレールの面（例えばＸ＝ｋ）につき、距離｜ＣiXｋ｜≦ｒを満たすものを探査する。
上記何れにしても、当たりフラグＦ＝１の場合は、不図示の外部処理により、物体（自動車）に適当なリバウンド作用や回転の作用等が加えられる。
【００５３】
以上の処理を図７の３次元空間につき具体的に説明する。
球体の中心座標をＣ（ＣX ，ＣY ，ＣZ ）で表し、フロア（地面）をＺ＝−０．５のＸＹ平面とすると、半径ｒ＝０．５の球体の地面との衝突判定式はＣZ ≦０．０で簡単に行える。
また、球体Ｅと球体Ｌとの衝突判定式は、夫々の中心点をＥ（ＥX ，ＥY ，ＥZ ）、Ｌ（ＬX ，ＬY ，ＬZ ）としたときに、（ＥX −ＬX ）2 ＋（ＥY −ＬY ）2 ＋（ＥZ −ＬZ ）2 ≦１．０となる。この衝突判定は、各部品をリアルな形状の凸多面体や凹多面体として取り扱った場合の衝突判定と比べると、非常に単純なものとなる。
【００５４】
また上記の場合に、もし半径Ｅr ，Ｌr が不同の球体で衝突判定する場合は、衝突判定式の右辺は（Ｅr ＋Ｌr ）2 となる。これに対して上記各球体の半径ｒ＝０．５に統一した場合は、衝突判定式の右辺を計算しない分だけ処理効率が良い。
なお、上記実施の形態ではゲ−ム機への適用例を中心に説明したがこれに限らない。本発明はあらゆるＣＧアニメーション画像における物体の当たり判定及び動きや変形の処理に適用できる。
【００５５】
また、上記実施の形態ではバラバラの部品を連結（組立）して構成される一例の連結動作物体を示したがこれに限らない。予め完成している物体でも、可動部が存在し、かつその部分の機能、動き、形態等より該部分が部品と認識できる様な場合は、本発明の連結動作物体に含まれる。
また、上記実施の形態ではボディーＡ以外の各球体の中心ｏは連結先固体（ボディー，フレーム等）のローカル座標原点ｏからの位置（ｘ，ｙ，ｚ）と連結軸回りの回転（姿勢）とで特定されるとしたが、これに限らない。例えば、各球体の中心ｏは連結先固体（ボディー等）のローカル座標原点ｏからの位置（ｘ，ｙ，ｚ）と自己のローカル座標原点ｏの回りの回転（姿勢）とで特定されても良い。こうすれば、ボディーＡ以外の各球体は、ボディーＡと同様の回転の自由度を備えることになり、連結軸（例えばｘ軸）の回りに回転するのみならず、自己のローカル座標原点ｏのｙ軸，ｚ軸の回りにも回転可能となる。これにより、例えば各タイヤは連結先フレームの向き（姿勢）とは独立に自己の向きを変えられ、よりリアルな自動車に近づく。
【００５６】
また、上記本発明に好適なる実施の形態を述べたが、本発明思想を逸脱しない範囲内で、各部の構成や処理、及びこれらの組合せの様々な変更が行えることは言うまでも無い。
【００５７】
【発明の効果】
以上述べた如く本発明によれば、各部品を同程度の大きさの球体で模擬する簡単な構成及び処理で、複雑（リアル）な形態を有する物体の動き、変形並びに当たり判定等のアニメーション処理を高速に行え、ＣＧアニメーション技術の発展に寄与する所が極めて大きい。
【図面の簡単な説明】
【図１】図１は本発明の原理を説明する図である。
【図２】図２は実施の形態によるゲーム機の構成を示す図である。
【図３】図３は実施の形態による連結動作固体を説明する図である。
【図４】図４は一例の連結動作物体を説明する図である。
【図５】図５は実施の形態による連結動作物体のデータ構造を説明する図である。
【図６】図６は実施の形態による物体のアニメーション生成処理のフローチャートである。
【図７】図７は実施の形態による対戦ゲームの画面を説明する図である。
【図８】図８は実施の形態によるの当たり判定処理のフローチャートである。
【符号の説明】
１  ゲーム機本体
２  コンソール部
３  表示装置
４  コンパクトディスク
５  サーバ
６  他のゲーム機
１１  ＣＰＵ
１２  主メモリ
１３  表示制御部
１４  インタフェース部
１５  ＣＤ駆動部
１６  通信制御部
１７  共通バス
１００  ネットワーク
【図１】
0003753802.tif 000007
【図２】
0003753802.tif 000008
【図３】
0003753802.tif 000009
【図４】
0003753802.tif 000010
【図５】
0003753802.tif 000011
【図６】
0003753802.tif 000012
【図７】
0003753802.tif 000013
【図８】
0003753802.tif 000014