JPH1011601A - 仮想物体の運動生成方法及び該方法による記憶媒体 - Google Patents

仮想物体の運動生成方法及び該方法による記憶媒体

Info

Publication number
JPH1011601A
JPH1011601A JP18171696A JP18171696A JPH1011601A JP H1011601 A JPH1011601 A JP H1011601A JP 18171696 A JP18171696 A JP 18171696A JP 18171696 A JP18171696 A JP 18171696A JP H1011601 A JPH1011601 A JP H1011601A
Authority
JP
Japan
Prior art keywords
point
vector
virtual object
motion
points
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
Application number
JP18171696A
Other languages
English (en)
Other versions
JP3697321B2 (ja
Inventor
Hiroshi Aoyama
公士 青山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hudson Soft Co Ltd
Original Assignee
Hudson Soft Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hudson Soft Co Ltd filed Critical Hudson Soft Co Ltd
Priority to JP18171696A priority Critical patent/JP3697321B2/ja
Publication of JPH1011601A publication Critical patent/JPH1011601A/ja
Application granted granted Critical
Publication of JP3697321B2 publication Critical patent/JP3697321B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Processing Or Creating Images (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 地面への衝突などを表現する、物理法則に準
じた自然な運動を自動生成する。 【解決手段】 仮想物体の面の法線ベクトルを〈N〉、
物体と面の接触点をP1 〜Pn 、物体重心の面への運動
方向の投影点をQとし、任意ベクトルQP(I) について
〈N〉・〈QP(i) 〉×〈QP(j)〉>0を満たすベク
トル〈QP(j) 〉があるか探査し(i≠j)、ない場合
は点Qを点P1〜Pn の多角形の領域外と判定する。存
在する場合でかつ〈N〉・〈QP(j) 〉×〈QP(I) 〉
>0の場合は点Qを多角形の領域内と判定し、結果が≦
0である場合はiにjの内容を転送しjの内容を更新し
て最初に戻る。点Qが外側判定の場合には、〈QCij
・〈Pi j 〉=0を満たす線分Pij 上の点C
ij(1≦i<j≦n)における距離|QCij|を最小に
するような点Cmnを求め、点P1 〜Pn の中で点Qに最
も近い点との距離|QPk |と距離|QCmn|とのうち
小さい方の点Cmn/Pk を物体の回転中心の座標とす
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は仮想物体の運動生成
方法及び該方法による記憶媒体に関し、更に詳しくは、
仮想の物体が仮想の面と接触した際の該物体の運動を生
成する仮想物体の運動生成方法及び該方法をプログラム
で記録した記憶媒体に関する。ゲーム機等におけるCG
アニメーションでは、ゲームの進行により、画面の仮想
上の物体が仮想上の面(地面や対戦相手の面等)と接触
(衝突)する場合も少なくない。係る場合の物体の運動
の画像を、予め想定したゲームのシナリオに従って複数
用意しておくと、自然な動きが得られないばかりか、用
意する画像の量も膨大となる。一方、高性能なコンピュ
ータ等を使用すれば、運動のシミュレーション画像をリ
アルタイムに生成することも可能となるが、パーソナル
コンピュータやゲーム機等でこれを実現するのは極めて
困難である。そこで、少ない情報と簡単な演算で、物体
の物理法則に準じた自然な運動を自動生成することの可
能な仮想物体の運動生成方法の提供が望まれる。
【0002】
【従来の技術】図13は従来技術を説明する図である。
図13(A)において、例えばある描画時刻t0 では、
物体aが地面に向かって速度vで落下している。図13
(B)において、次の描画時刻t1 では、物体aが地面
に速度vで衝突した。係る場合に、従来の、特にゲーム
機等では、図13(B)の状態で物体aの運動が停止し
ていた。
【0003】
【発明が解決しようとする課題】しかし、このような物
体aの運動は物理的に不自然であり、CGアニメーショ
ンの質、ひいてはゲームの質を低下させる。一方、予め
図13(A),(B)のような事態が生じるのを想定し
て、予めゲームシナリオの中に図13(C)の様な画面
を用意しておくことが可能である。しかし、シナリオ毎
に図13(C)の様な画面を用意しても、自然な動きが
得られないばかりか、用意する画像の量が膨大となる。
【0004】本発明の目的は、少ない情報と簡単な演算
で物体の物理法則に準じた自然な運動を高速に自動生成
可能な仮想物体の運動生成方法及び該方法による記憶媒
体を提供することにある。
【0005】
【課題を解決するための手段】上記の課題は例えば図1
(A)の構成により解決される。即ち、本発明(1)の
運動生成方法は、仮想の物体が仮想の面と接触した際の
該物体の運動を生成する仮想物体の運動生成方法におい
て、面の法線ベクトルを〈N〉、物体と面の接触点をP
1 〜Pn 、物体重心の面への運動方向の投影点をQとす
る場合に、(1)点P1 〜Pn に係る情報の使用フラグ
UF1 〜UFn を未使用に初期化すると共に、任意のベ
クトルQP(I) を選択してその使用フラグUF(I)を使
用となし、かつi=Iとする処理と、(2)i≠jの条
件で、ベクトル〈QP(i) 〉,〈QP(j) 〉の外積と、
法線ベクトル〈N〉との内積を求め、その演算結果が>
0となるベクトル〈QP(j) 〉を探査する処理と、
(3)前記(2)の条件を満たすベクトル〈QP(j) 〉
が存在しない場合に、点Qが点P1 〜Pn で構成される
最大面積の多角形の領域外にあると判定する処理とを備
えるものである。
【0006】本発明(1)の処理は、面と接触する物体
に回転モーメントが発生するか否の前判定を行う処理に
位置し、点Qが点P1 〜Pn で構成される最大面積の多
角形の領域外に在る場合は回転モーメントが発生し、そ
れ以外の場合は回転モーメントが発生しないとする物理
的な着想に基づいている。従って、物体と面との接触面
の形状等には一切関知せず、点Q(即ち、物体の重心
G)及び接触点P1 〜Pn の座標等からなる、単純で、
かつ少ない情報と、簡単な演算とにより物体の物理法則
に準じた自然な運動を高速に自動生成可能となる。
【0007】本発明(1)においては、例えば図9
(B)に示す様な場合の演算は、 〈N〉・〈QP1 〉×〈QP2 〉<0 〈N〉・〈QP1 〉×〈QP3 〉<0 〈N〉・〈QP1 〉×〈QP4 〉<0 〈N〉・〈QP1 〉×〈QP5 〉<0 〈N〉・〈QP1 〉×〈QP6 〉<0 で終了し、点Qは最大面積の5角形(P1 2 3 5
6 )の外側にある。この場合に、図のハッチングで示
した様な物体と面との接触面の形状は問わない。従っ
て、この判定処理のみならず、その前後の処理における
必要な座標データの準備、取扱及び演算が大幅に単純化
され、処理が軽減される。
【0008】ところで、もし点Qの内外側判定が先に得
られれば、点Qの外側判定を待たなくても、物体に回転
モーメントが発生しないと判定できる。そこで、好まし
くは、本発明(2)においては、上記本発明(1)にお
いて、前記(2)の演算結果が>0の場合に、(4)そ
のjが指す使用フラグUF(j)を使用となし、かつ該ベ
クトル〈QP(j) 〉と前記(1)で選択したベクトル
〈QP(I) 〉の外積と、法線ベクトル〈N〉との内積を
求める処理と、(5)前記(4)の演算結果が>0の場
合に、点Qが点P1 〜Pn で構成される最大面積の多角
形の領域内にあると判定する処理と、(6)前記(4)
の演算結果が≦0の場合に、そのiにjの内容を転送
し、かつ該jの内容を次の未使用を指す値に更新して前
記(2)に戻る処理とを更に備える。
【0009】本発明(2)によれば、例えば図7(A)
に示す様な場合の演算は、 〈N〉・〈QP1 〉×〈QP2 〉>0→〈N〉・〈Q
2 〉×〈QP1 〉<0 〈N〉・〈QP2 〉×〈QP3 〉>0→〈N〉・〈Q
3 〉×〈QP1 〉>0 で終了し、点Qは3角形(P1 ,P2 ,P3 )の内側に
含まれる。即ち、最大面積の5角形(P1 ,P2
3 ,P5 ,P6 )の内側に含まれる。従って、本発明
(2)によれば、物体に回転モーメントを発生させるか
否かの判定を、点Qと点P1 〜Pn との相対位置に応じ
て、能率良く、より早く判定できる。
【0010】ところで、上記図7(A)の場合の様に、
処理(2)の演算について毎回>0の結果が得られる場
合は良いが、必ずしもそうなるとは限らない。これを図
8(A)の例で説明する。この場合の演算は、 〈N〉・〈QP1 〉×〈QP2 〉>0→〈N〉・〈Q
2 〉×〈QP1 〉<0 〈N〉・〈QP2 〉×〈QP3 〉>0→〈N〉・〈Q
3 〉×〈QP1 〉<0 となり、次に、 〈N〉・〈QP3 〉×〈QP4 〉<0 となる。即ち、この場合のベクトル〈QP4 〉は点Qの
内側判定には当面は有用では無い。そこで、次のベクト
ル〈QP5 〉を選択し、処理を進めると、 〈N〉・〈QP3 〉×〈QP5 〉>0→〈N〉・〈Q
5 〉×〈QP1 〉<0 となる。即ち、点Qの内側判定に有用な新たなベクトル
〈QP5 〉が得られたが、この時点では点Qの最終的な
内側判定は得られていない。
【0011】しかるに、上記一旦有用でないとされたベ
クトル〈QP4 〉であっても、この新たなベクトル〈Q
5 〉との関係で調べると、点Qの内側判定に有用とな
るかも知れない。そこで、このベクトル〈QP4 〉を再
度検査し、 〈N〉・〈QP5 〉×〈QP4 〉>0 の結果を得る。しかも、その内側判定では、 〈N〉・〈QP4 〉×〈QP1 〉>0 となり、この時点で、点Qは5角形(P1 ,P2
3 ,P5 ,P4 )の内側に含まれる。従って、最大面
積の5角形(P1 ,P2 ,P3 ,P5 ,P6 )の内側に
含まれる。
【0012】そこで、好ましくは、本発明(3)におい
ては、上記本発明(2)において、前記(2)の演算結
果が≦0の場合に、(7)制御フラグMFを真となし、
そのjの内容を次の未使用を指す値に更新して前記
(2)に戻る処理と、(8)前記(4)の演算結果が≦
0で、かつ制御フラグMFが真により、その時点のjよ
りも以前の未使用を指す値mを探査し、かつ該ベクトル
〈QP(j) 〉とベクトル〈QP(m) 〉の外積と、法線ベ
クトル〈N〉との内積を求める処理と、(9)前記
(8)の演算結果が>0により、そのベクトル〈QP
(m) 〉と前記(1)で選択したベクトル〈QP(I) 〉の
外積と、法線ベクトル〈N〉との内積を求める処理と、
(10)前記(9)の演算結果が>0により、点Qが点
1 〜Pn で構成される最大面積の多角形の領域内にあ
ると判定する処理とを更に備える。
【0013】この様に、本発明(3)によれば、不使用
ベクトルの早期再活用処理を設けたことにより、点Qの
内側判定は接触点のより若い番号で得られる。従って、
残りのベクトルの検査を行う必要は無く、判定処理が速
い。また上記の課題は例えば図1(B)の構成により解
決される。即ち、本発明(4)の運動生成方法は、仮想
の物体が仮想の面と接触した際の該物体の運動を生成す
る仮想物体の運動生成方法において、面の法線ベクトル
を〈N〉、物体と面の接触点をP1 〜Pn 、物体重心の
面への運動方向の投影点であって前記点P1〜Pn で構
成される最大面積の多角形の領域外に在るものをQとす
る場合に、(11)任意のi,j(1≦i<j≦n)に
対し、ベクトル〈QCij〉,〈Pi j 〉の内積が0を
満たす線分Pi j 上の点Cijであって、距離|QCij
|が最小となる点Cmnを求め、該点Cmnを物体の回転中
心の座標となす処理を備えるものである。
【0014】本発明(4)の処理は、上記点Qが点P1
〜Pn で構成される最大面積の多角形の領域外に在る場
合に実行され、物体のどの部分を中心にして回転モーメ
ントを発生させるかを決定する処理である。但し、ここ
でも物体と面との接触面の形状等には一切関知せず、点
Q及び接触点P1 〜Pn の座標からなる、単純かつ少な
い情報と、簡単な演算とにより物体の物理法則に準じた
回転の中心座標を高速に求め得る。
【0015】図11(A)を参照して一例の回転中心位
置決定処理を具体的に説明する。上記処理(11)にお
いて、ベクトル〈QCij〉≠0,〈Pi j 〉≠0とす
る場合に、〈QCij〉・〈Pi j 〉=0を満たすベク
トル〈QCij〉,〈Pij 〉は互いに直交するベクト
ルである。この処理(11)を図11(A)に適用する
と、例えば〈P1 2 〉と〈QC12〉とは直交するが、
その交点C12は線分P1 2 上には無いので除外され
る。一方、例えば〈P2 3 〉と〈QC23〉とは直交
し、かつその交点C23は線分P2 3 上に在るので保持
される。こうして全ての場合を検査し、最終的に交点C
16,C23,C35,C46等が保持される。
【0016】更に、距離|QCij|が最小となる点Cmn
を求め、該点Cmnを物体の回転中心の座標Rとなす。図
11(A)の例では、距離|QC16|が最小となり、回
転中心の座標R=C16である。これは、物体の図示の一
例の接触面形状から見ても合理的な回転の中心であり、
この接触面形状が他のどの様な形をしていても合理性を
損なわない。
【0017】ところで、点Qと接触点Pとの間には例え
ば図11(B)に示すような関係も生じ得る。即ち、こ
こでは点Qが3角形の一つの頂点P1 付近に存在してい
る。係る場合に、もし交点C23が物体の回転中心の座標
Rに選ばれると、物理的に不合理な回転モーメントが生
成されてしまう。そこで、好ましくは、本発明(5)に
おいては、上記本発明(4)において、(12)点P1
〜Pn の中で、点Qに最も近い点Pk との間の距離|Q
k |を求める処理と、(13)前記距離|QCmn|と
距離|QPk |の小さい方に対応する点Cmn又はPk
物体の回転中心の座標となす処理とを更に備える。
【0018】これにより、図11(B)の例では、点Q
との距離が小さい方の、点P1 が物体の回転中心の座標
Rに選ばれる。従って、係る場合でも運動の合理性を損
なわない。また、本発明(6)の記憶媒体は、上記本発
明(1)乃至(5)の何れか1に記載の処理をコンピュ
ータが実施するためのプログラムで記録したものであ
る。
【0019】従って、より高度で高品質のCGアニメー
ションを生成するようなゲームソフト等を、低価格、低
容量で提供できる。
【0020】
【発明の実施の形態】以下、添付図面に従って本発明に
好適なる実施の形態を詳細に説明する。なお、以下の説
明では、記号〈〉はベクトル、記号||は絶対値(距
離,大きさ等)、記号×はベクトル積、記号・はスカラ
ー積、記号*はスカラーの掛け算、記号←は代入を夫々
表すものとする。
【0021】図2は実施の形態によるのゲーム機の構成
を示す図で、図において、1は本ゲーム機の本体、2は
ユーザが操作するための十字キー、A,Bボタン、スタ
ートボタン等を有するコンソール部(CSL)、3はC
RT等による表示装置(DISP)、4は本実施の形態
による仮想物体の運動生成方法等をプログラムで記憶し
ているコンパクトディスク(CD)、100はネットワ
ーク(公衆網等)、5はゲーム等に関する様々な通信サ
ービスをオンラインで提供するサーバ、6は他のゲーム
機である。
【0022】ゲーム機本体1において、11は本ゲーム
機の主制御・処理を行うCPU、12はCPU11が実
行するプログラムやデータであって、例えば図3〜図
5,図10に示す物体の運動生成に係る処理等を記憶す
るRAM,ROM,EEPROM等よりなる主メモリ
(MEM)、13は表示装置3を制御する表示制御部
(DISPC)、14はコンソール部2をCPU11に
接続するインタフェース部(IF)、15はCD4の着
脱、駆動及びデータ読取を行うCD駆動部(CDD)、
16はゲーム機本体1をネットワーク100に接続する
通信制御部(NCC)、17はCPU11の共通バスで
ある。
【0023】ゲームを行う時は、ゲーム機本体1及び表
示装置3に電源投入し、ゲーム用のCD4をCD駆動部
15に装填する。更に、CD4から必要なプログラムや
データを主メモリ12にロードし、ゲームをスタートす
る。そして、表示装置3の生成アニメーション画像を見
ながら、コンソール部2を操作してゲームを楽しむ。な
お、CD4に代えて、ROMカードやフロッピーディス
ク等の他の2次記憶装置を使用しても良い。また、サー
バ5から所望のゲームソフトをダウンロードしても良
い。更に、他のゲーム機6とオンラインで対戦ゲームを
行っても良い。
【0024】図3は実施の形態による仮想物体の運動生
成処理のフローチャートである。例えば、ゲームの実行
中に物体が面(壁、地面等)と接触(衝突)したような
事態に至ると、この処理に入力する。ここで必要となる
情報は、面の法線ベクトル〈N〉、物体と面の接触点P
1 〜Pn の座標、物体の重心Gの座標、及び該重心Gの
面への運動方向の投影点Qの座標(但し、これは他の情
報から求められる)である。
【0025】ステップS1では、接触点Pが3個以上か
否かを判別する。3個以上の場合は、3角形以上が構成
されるので、後述するステップS2の処理に進み、点Q
と点P1 〜Pn で構成される多角形との間で内外判定処
理を行う。ステップS3では、点Qが多角形の外側判定
か否かを判別する。外側判定の場合は、物体に回転モー
メントが生じるので、後述するステップS4の処理に進
み、物体の回転中心の座標Rの抽出処理を行う。
【0026】ステップS5では、〈N〉×〈RQ〉を軸
として物体に回転モーメントを発生する。但し、〈R
Q〉がゼロベクトルの場合(即ち、点Qと回転中心の座
標Rとが重なる場合)は回転モーメントを発生しない。
回転モーメントの大きさMは、例えば次式で与えられ
る。 M=α*(v+1)*cosθ 但し、α:物体の慣性モーメント v:物体の面方向の速度 θ:〈RQ〉と〈RG〉とのなす角度 なお、上式右辺()内の+1は、接触面が地面の場合
に、重力による速度成分を考慮したものである。この式
によれば、θが小の時は、比較的大きな回転モーメント
が発生し、物体は地面に速く倒れる。またθが大の時
は、比較的小さな回転モーメントが発生し、物体はゆっ
くりと地面に倒れる。
【0027】ステップS6では、接触面の法線方向にリ
バウンド力(跳ね返り慣性モーメント)を発生する。跳
ね返り慣性モーメント(イナーシャ)の大きさKは、例
えば次式で与えられる。 K=β*v*sinθ 但し、β:面又は物体の弾性係数 v:物体の面方向の速度 θ:〈RQ〉と〈RG〉とのなす角度 この式によれば、θが小の時は、比較的小さな跳ね返り
慣性モーメントが発生し、物体は僅かに跳ね返る。また
θが大の時は、比較的大きな跳ね返り慣性モーメントが
発生し、物体はより大きく跳ね返る。
【0028】なお、実際はステップS5の回転モーメン
トとステップS6の跳ね返り慣性モーメントとが合成処
理され、物体に物理法則に準じたより自然な運動を生成
することになる。また、上記ステップS3の判別で点Q
が内側判定の場合は、物体に回転モーメントは発生しな
いので、上記ステップS4,S5の回転処理をスキップ
し、ステップS6のリバウンド発生処理に進む。
【0029】また、上記ステップS1の判別で接触点P
が3個未満の場合は、多角形が構成されないので、上記
ステップS2,S3の処理をスキップし、ステップS4
の処理に進む。なお、この場合のステップS4の処理
は、図10の説明に関連して後述する。図4,図5は実
施の形態による点と多角形の内外判定処理のフローチャ
ート(1),(2)で、図6は実施の形態による点と多
角形の内外判定処理を説明する図である。
【0030】図6(A)は物体が平面(例えば地面Z=
0)に落下した場合を示している。この場合に、内外判
定処理が使用する情報は、物体と面との接触点P1 〜P
6 の座標と、物体の重心Gを平面に投影した点Qの座標
である。即ち、ここでは物体がどの様な面形状で地面と
接触しているかの情報は必要無い。従って、例えば図6
(B)に示す如く、点Qが接触面(ハッチング部分)に
含まれていない場合も有るし、また図6(C)に示す如
く、点Qが接触面に含まれている場合も有る。図示しな
いが、他にも様々な接触面の形状が考えられる。
【0031】しかるに、物理法則によれば、点Qが、点
1 〜P6 により形成される最大面積の多角形(破線で
示す)に含まれる場合は、物体に回転モーメントは発生
せず、また含まれない場合にのみ、回転モーメントが発
生することが理解できる。なお、点Qが最大面積の多角
形の境界線上に在る場合がある。この場合は、回転モー
メントを発生させても良いし、また発生させなくても良
い。この点、本実施の形態では、上記ステップS5の処
理で〈RQ〉=0となるため、回転モーメントは発生し
ないこととしている。
【0032】この内外判定処理は、基本的には、点Qが
最大面積の多角形の内側(境界線を含まない)に在ると
する内側判定を能率良く求めるように構成されており、
それ以外の場合は外側判定となる。その結果、内外判定
又は外側判定が高速に得られる。以下、図6(A)を参
照しつつ、内外判定処理を具体的に説明する。図4は本
判定処理の基本部分を示している。
【0033】ステップS11では必要な初期化処理を行
う。例えば判定演算で使用するデータテーブルを初期化
する。図5(B)に一例のデータテーブルを示す。この
テーブルには、図6(A)の例に対応して、点Qから各
接触点P1 〜P6に向かうベクトル〈QP1 〉〜〈QP
6 〉が昇順に記憶されている。各接触点の付加番号1〜
6は予め物体に固有の番号でも良いし、この判定処理又
は事前の処理で任意に付加しても良い。従って、最初の
接触点P1 は実質的に任意に選択出来ることになる。コ
ード「Null」はデータテーブルの終わりを表す。
【0034】フラグ変数UFはベクトル〈QP1 〉〜
〈QP6 〉が点Qの内側判定に有効に使用されたか否か
を表す使用フラグであり、最初は全て0(不使用)に初
期化される。更に、図示しないが、外側判定結果を表す
フラグEXTF←0(内側判定)に初期化し、また判定
演算の流れを制御するためのモードフラグMF←0に初
期化する。
【0035】ステップS12では、各ポインタi←0,
j←1,k←0,m←0とする。ポインタiは後述のス
テップS14におけるベクトル外積演算の第1のベクト
ルを指すポインタ、ポインタjは同じく第2のベクトル
を指すポインタである。因みに、ステップS14の処理
は、第1のベクトル〈QP(i) 〉を基準として点Qの内
側判定に有用な第2のベクトル〈QP(j) 〉を探す処理
である。更に、後述のステップS16の処理は、ステッ
プS14の処理で探した第2のベクトル〈QP(j) 〉
と、ステップS14で最初に選択した第1のベクトル
〈QP(i) 〉{即ち、〈QP1 〉}とを使用して点Qの
最終的な内側判定を行う処理である。このため、ポイン
タkは常にテーブルの最初のベクトル〈QP1 〉を指し
ている。
【0036】ところで、上記ステップS14の処理で、
点Qの内側判定に有用でないと判定されたような第2の
ベクトル〈QP(j) 〉は、当面の内側判定演算から除外
される。即ち、その使用フラグUF(j) =0(不使用)
のままで残される。しかし、その後のステップS14の
処理で他の有用な第2のベクトル〈QP(j) 〉が見つか
る場合があり、係る場合には、この第2のベクトルとの
関係で前記不使用となったベクトル〈QP(j) 〉が有用
となり、かつ続くステップS16の処理でより早く最終
的な内側判定に至る場合がある。ポインタmは、この処
理を実現するために設けられており、データテーブルの
中から一旦不使用となった{使用フラグUF(m) =0
の}ベクトルを探すためのポインタとして使用される。
【0037】ステップS13では、最初のベクトル〈Q
1 〉は無条件で使用するので、その使用フラグUF
(i) ←1とする。ステップS14では{〈N〉・〈QP
(i) 〉×〈QP(j) 〉}の演算を行い、その結果が>0
か否かを判別する。この演算はスカラー3重積となって
おり、ベクトル〈N〉,〈QP(i) 〉,〈QP(j) 〉の
各要素の行列演算により容易に求まる。なお、{(〈Q
P(i) 〉×〈QP(j) 〉)・〈N〉}演算を行い、その
結果が>0か否かを判別しても良い。
【0038】図6(A)の例では、法線ベクトル〈N〉
が紙面の手前側(Z軸方向)に向いているとすると、最
初の演算では{〈N〉・〈QP1 〉×〈QP2 〉}>0
となる。結果が>0の場合は、2番目のベクトル〈QP
2 〉は、点Qの内側判定に有用なベクトルとして使用さ
れたので、ステップS15に進み、その使用フラグUF
(j) ←1とする。
【0039】ステップS16では{〈N〉・〈QP(j)
〉×〈QP(k) 〉}の演算を行い、結果が>0か否か
を判別する。結果が>0の場合は、点Qが、これまでに
領域判定した、より少ない面積の多角形の内側に含まれ
ることになるので、内側判定(EXTF=0)のままで
処理を抜ける。しかし、図6(A)の例では{〈N〉・
〈QP2 〉×〈QP1 〉}の演算結果は<0となる。こ
の場合は、ステップS17でポインタiにポインタjの
内容を転送し、次回のステップS14の処理における第
1のベクトルを〈QP1 〉から〈QP2 〉に変更する。
【0040】ステップS18ではモードフラグMF=1
か否かを判別する。この時点では不使用ベクトルが発生
していないので、MF=0のままである。ステップS1
9ではポインタjの内容をインクリメント(即ち、次の
未検査のベクトルを指す様に更新)し、次回のステップ
S14の処理における第2のベクトルを〈QP2 〉から
〈QP3 〉に変更する。
【0041】ステップS20では、〈QP(j) 〉=Nu
llか否かを判別し、Nullでない場合は未だ未検査
のベクトルが有るのでステップS14に戻る。またNu
llの場合は、点Qの積極的な内側判定が得られずに全
ベクトルの検査を終了したことになるので、ステップS
21で外側判定のフラグEXTF←1となし、処理を抜
ける。
【0042】また、上記ステップS14の処理で
{〈N〉・〈QP(i) 〉×〈QP(j) 〉}≦0の場合
は、点Qの内側判定に有用では無いベクトル〈QP(j)
〉が検出されたので、ステップS22に進み、モード
フラグMF←1とする。これを図6(A)の例で言う
と、ステップS14で{〈N〉・〈QP2 〉×〈Q
3 〉}>0を行った後、次回のステップS14で
{〈N〉・〈QP3 〉×〈QP4 〉}を行った時点で結
果が<0となる。この場合のベクトル〈QP4 〉の使用
フラグUF(3)=0(不使用)のままである。
【0043】ステップS19ではポインタjの内容をイ
ンクリメントする。これにより、次のステップS14で
は{〈N〉・〈QP3 〉×〈QP5 〉}>0となる。こ
のベクトル〈QP5 〉は点Qの内側判定に有用な新たな
ベクトルである。これに伴い、UF(4)=1となる。
しかし、続くステップS16では{〈N〉・〈QP5
×〈QP1 〉}>0を満足しない。即ち、点Qの最終的
な内側判定は得られない。ステップS17ではポインタ
iにポインタjの内容を転送する。即ち、i=5とな
る。ステップS18ではMF=1により、図5の処理
に進む。
【0044】図5(A)は点Qの最終的な内側判定を早
める付加的処理とも言える。ステップS31,S32で
は最初の使用フラグUF(m) =0となる不使用ベクトル
を探す。ポインタmは最初は「0」であったが、この例
ではm=3で最初の不使用ベクトル〈QP4 〉が検出さ
れる。ステップS33ではポインタjにポインタmの内
容を転送する。ステップS34では{〈N〉・〈QP
(i) 〉×〈QP(j) 〉}>0か否かの判別を行う。図6
(A)の例では{〈N〉・〈QP5 〉×〈QP4 〉}>
0となる。即ち、この時点まで不使用であったベクトル
〈QP4〉は新たなベクトル〈QP5 〉との関係では点
Qの内側判定に有用となった。ステップS35ではUF
(j) ←1とし、不使用ベクトル〈QP4 〉を使用済みに
する。
【0045】ステップS36では{〈N〉・〈QP(j)
〉×〈QP(k) 〉}>0か否かの判別を行う。図6
(A)の例では{〈N〉・〈QP4 〉×〈QP1 〉}>
0となり、この時点で点Qの最終的な内側判定が得られ
る。これによりフローは図4の処理に戻り、本処理を
抜ける。また、上記ステップS36の処理で{〈N〉・
〈QP(j) 〉×〈QP(k) 〉}≦0の場合は、ステップ
S37でポインタjの内容をインクリメントする。ステ
ップS38ではi=jか否かを判別する。i=jの場合
は、この時点までに不使用であったベクトルを全て調べ
たので、フローは図4の処理に戻る。またi≠jの場
合は、更にステップS39で使用フラグUF(j) =0か
否かの判別を行う。UF(j) =0の場合は、新たに選択
したベクトル〈QP(j) 〉が不使用なので、ステップS
34に戻り、その有用性を調べる。また、UF(j) ≠0
の場合は、選択したベクトル〈QP(j) 〉が使用済みな
ので、ステップS37に戻り、次の不使用ベクトルを探
す。
【0046】図7〜図9は点Qの様々な位置に対する内
外判定例を説明する図(1)〜(3)である。なお、接
触点P1 〜P6 の座標は全て図6(A)と同一である。
図7(A)は点Qが3角形(P1 ,P2 ,P3 )の内側
に在る場合を示している。この場合の演算は、 〈N〉・〈QP1 〉×〈QP2 〉>0→〈N〉・〈Q
2 〉×〈QP1 〉<0 〈N〉・〈QP2 〉×〈QP3 〉>0→〈N〉・〈Q
3 〉×〈QP1 〉>0 で高速に終了し、点Qは3角形(P1 ,P2 ,P3 )の
内側に含まれる。従って、最大面積の5角形(P1 ,P
2 ,P3 ,P5 ,P6 )の内側に含まれる。
【0047】図7(B)は点Qが4角形(P1 ,P2
3 ,P5 )の内側に在る場合を示している。この場合
の演算は、 〈N〉・〈QP1 〉×〈QP2 〉>0→〈N〉・〈Q
2 〉×〈QP1 〉<0 〈N〉・〈QP2 〉×〈QP3 〉>0→〈N〉・〈Q
3 〉×〈QP1 〉<0 〈N〉・〈QP3 〉×〈QP4 〉<0 〈N〉・〈QP3 〉×〈QP5 〉>0→〈N〉・〈Q
5 〉×〈QP1 〉>0 で終了し、点Qは4角形(P1 ,P2 ,P3 ,P5 )の
内側に含まれる。従って、最大面積の5角形(P1 ,P
2 ,P3 ,P5 ,P6 )の内側に含まれる。この場合で
も、もし点P3 から判定処理を開始したら、より早く内
側判定が得られることは明らかである。
【0048】図8(A)は点Qが5角形(P1 ,P2
3 ,P5 ,P4 )の内側に在る場合を示している。な
お、この点Qの位置は上記図6(A)の場合と同一であ
る。この場合の演算は、 〈N〉・〈QP1 〉×〈QP2 〉>0→〈N〉・〈Q
2 〉×〈QP1 〉<0 〈N〉・〈QP2 〉×〈QP3 〉>0→〈N〉・〈Q
3 〉×〈QP1 〉<0 〈N〉・〈QP3 〉×〈QP4 〉<0 〈N〉・〈QP3 〉×〈QP5 〉>0→〈N〉・〈Q
5 〉×〈QP1 〉<0 〈N〉・〈QP5 〉×〈QP4 〉>0→〈N〉・〈Q
4 〉×〈QP1 〉>0 で終了し、点Qは5角形(P1 ,P2 ,P3 ,P5 ,P
4 )の内側に含まれる。従って、最大面積の5角形(P
1 ,P2 ,P3 ,P5 ,P6 )の内側に含まれる。この
ように、本実施の形態では図5の不使用ベクトルの早期
再活用処理を設けたことにより、点Qの内側判定は接触
点のより若い番号で得られる。本実施の形態では、接触
点の若い番号はより早く使用されるので、判定処理が速
い。
【0049】図8(B)は点Qが5角形(P1 ,P2
3 ,P5 ,P6 )の内側に在る場合を示している。こ
の場合の演算は、 〈N〉・〈QP1 〉×〈QP2 〉>0→〈N〉・〈Q
2 〉×〈QP1 〉<0 〈N〉・〈QP2 〉×〈QP3 〉>0→〈N〉・〈Q
3 〉×〈QP1 〉<0 〈N〉・〈QP3 〉×〈QP4 〉<0 〈N〉・〈QP3 〉×〈QP5 〉>0→〈N〉・〈Q
5 〉×〈QP1 〉<0 〈N〉・〈QP5 〉×〈QP4 〉<0 〈N〉・〈QP5 〉×〈QP6 〉>0→〈N〉・〈Q
6 〉×〈QP1 〉>0 で終了し、点Qは最大面積の5角形(P1 ,P2
3 ,P5 ,P6 )の内側に含まれる。
【0050】図9(A)は点Qが最大面積の5角形(P
1 ,P2 ,P3 ,P5 ,P6 )の外側に在る場合を示し
ている。なお、ここでは点Qが多角形の外側に在るイメ
ージを分かり易くするために、一例の接触面形状をハッ
チングで塗りつぶしている。但し、この判定処理は接触
面形状とは無関係に行われる。この場合の演算は、 〈N〉・〈QP1 〉×〈QP2 〉>0→〈N〉・〈Q
2 〉×〈QP1 〉<0 〈N〉・〈QP2 〉×〈QP3 〉>0→〈N〉・〈Q
3 〉×〈QP1 〉<0 〈N〉・〈QP3 〉×〈QP4 〉<0 〈N〉・〈QP3 〉×〈QP5 〉>0→〈N〉・〈Q
5 〉×〈QP1 〉<0 〈N〉・〈QP5 〉×〈QP4 〉<0 〈N〉・〈QP5 〉×〈QP6 〉>0→〈N〉・〈Q
6 〉×〈QP1 〉<0 〈N〉・〈QP6 〉×〈QP4 〉<0 で終了し、点Qは最大面積の5角形の外側にある。
【0051】図9(B)は点Qが最大面積の5角形(P
1 ,P2 ,P3 ,P5 ,P6 )の外側に在る他の場合を
示している。この場合の演算は、 〈N〉・〈QP1 〉×〈QP2 〉<0 〈N〉・〈QP1 〉×〈QP3 〉<0 〈N〉・〈QP1 〉×〈QP4 〉<0 〈N〉・〈QP1 〉×〈QP5 〉<0 〈N〉・〈QP1 〉×〈QP6 〉<0 で終了し、点Qは最大面積の5角形の外側にある。な
お、この例は本発明(1)の外側判定処理で高速に得ら
れる。
【0052】因みに、図9(B)において、例えば点Q
´が線分P1 2 上に存在する場合の演算は、 〈N〉・〈Q´P1 〉×〈Q´P2 〉=0 〈N〉・〈Q´P1 〉×〈Q´P3 〉<0 〈N〉・〈Q´P1 〉×〈Q´P4 〉<0 〈N〉・〈Q´P1 〉×〈Q´P5 〉<0 〈N〉・〈Q´P1 〉×〈Q´P6 〉<0 で終了し、点Qは最大面積の5角形の外側にある。
【0053】かくして、本実施の形態によれば、点Qと
点P1 〜Pn の座標が与えられるだけで、点Qが点P1
〜Pn で囲まれる最大面積の多角形に含まれるか否か、
即ち、衝突物体に回転モーメントを発生させるか否か、
を能率良く判定できる。次に、点Qが領域外の場合は、
物体がどの様な軸の回りに回転するかを決定する必要が
ある。
【0054】図10は実施の形態による回転の中心座標
の抽出処理のフローチャートであり、図11は回転の中
心座標の抽出処理を説明する図である。図11(A)は
図9(A)と同じ場合を示している。即ち、重心Gの投
影点Qは最大面積の多角形(P1 ,P2 ,P3 ,P5
6 )の外側にあり、既に点Qの外側判定が得られてい
る。なお、この状態をイメージし易い様に一例の接触面
形状をハッチングで塗りつぶしてあるが、以下の抽出処
理でも接触面の情報は必要無い。
【0055】図10において、ステップS51では必要
な初期化処理を行う。ステップS52では接触点P1
n の中で点Qに最も近い点Pk を求め、その距離|Q
k|を保持する。図11(A)の例で言うと、Pk
6 であり、その距離|QP6 |を保持する。ステップ
S53では、任意のi,j(但し、1≦i<j≦n)に
ついて、 〈QCij〉・〈Pi j 〉=0 を満たすような、線分Pi j 上の点Cijを求める。
【0056】これを図11(A)の例で具体的に説明す
る。例えば、先ず点P1 ,P2 を選択し、線分P1 2
又はその延長線と直行するような直線QC12を求め、交
点C12の座標を得る。しかし、この交点C12は線分P1
2 上には無いので、除外される。次に点P1 ,P3
点P1 ,P4 ,…の如く昇順に選択して、同様の処理を
行う。この流れの最後の点P1 ,P6 を選択した時は、
交点C16が得られ、該交点C16は線分P1 6 上に在る
ので、残される。次に、点P2 を基準として点P3 〜P
6 を順に選択し、同様の処理を行う。ここでは交点C23
等が残される。次に点P3 を基準として点P4 〜P6
順に選択し、同様の処理を行う。ここでは交点C35が残
される。以下同様にして進み、交点C46が残される。
【0057】ステップS54では、上記残された点Cij
の中で点Qに最も近い点Cmnを求め、その距離|QCmn
|を保持する。図11(A)の例では距離|QC16|が
保持される。そして、ステップS55では、距離|QP
k |と距離|QCmn|の内の小さい方を選択し、その点
k 又は交点Cmnの座標を回転中心の座標Rとする。図
11(A)の例では交点C16が回転中心の座標Rとな
る。これは物理的に見ても妥当な回転の中心である。
【0058】ところで、例えば図11(B)に示す様な
ケースが存在する。ここでは、点Qは3角形P1
2 ,P3 の一つの頂点P1 の側に略対面している。こ
の場合に、もし上記ステップS53,S54の処理のみ
で回転中心の座標Rを抽出したとすると、物体裏面側の
交点C23が回転中心の座標Rとなり、これは物理的に不
合理な回転モーメントを発生することになる。本実施の
形態によれば、上記ステップS52,S55の処理を設
けたことにより、このケースでは|QP1 |<|QC23
|となり、点P1 が回転中心の座標Rとなる。これは合
理的な回転中心である。
【0059】なお、上記図10の処理では、先ず〈QC
ij〉・〈Pi j 〉=0を満たす線分Pi j 上の各交
点Cijを求め、次に該交点Cijの中で距離|QCij|を
最小とするような交点Cmnを求める方法を述べたが、こ
れに限らない。例えば、これとは逆に、先ず〈QCij
・〈Pi j 〉=0を満たす各ベクトル〈QCij〉の距
離|QCij|を求め、次に該距離|QCij|が最小とな
るような線分Pi j上の交点Cmnを求めても良い。
【0060】これを図11(A)の例で具体的に言う
と、先ず距離|QC12|=|〈QP2〉|*sinθ12
=|〈QP2 〉×〈P1 2 〉|/|〈P1 2 〉|を
求める。以下同様にして進み、距離|QC16|=|〈Q
6 〉|*sinθ16=|〈QP6 〉×〈P1 6 〉|
/|〈P1 6 〉|等を求める。この時点では距離のみ
を求めているので計算が速い。
【0061】こうして全ての組み合わせの距離を求め、
次に距離|QCij|が最小となるような線分Pi j
の交点Cmnを求める。この場合に、もし距離|QCij
を最小とする交点Cijが線分Pi j 上に無い時は、次
に大きい距離|QCij|について、該交点Cijが線分P
i j 上にあるか否かの判別を行う。しかるに、図11
(A)の例からも分かるように、大抵の場合は、点Q
は、接触点P1 〜Pn で囲まれる最大面積の多角形の何
れか1辺に対面している。従って、通常は、最初の距離
|QCij|を最小とするような交点Cijは線分Pi j
上に在る。即ち、距離|QC16|を最小とするような交
点C16は線分P1 6 上にある。
【0062】従って、この方法によれば、交点Cijを求
める計算処理と、該交点Cijが線分Pi j 上に在るか
否かの判定処理とを大幅に削減でき、処理が速い。とこ
ろで、上記図3のステップS1の判別で、接触点が3個
未満の場合は、ステップS4の中心座標Rの抽出処理に
直接入力することとした。そこで、図示しないが、以
下、この場合における回転中心の抽出処理を上記図10
の処理(アイデア)に関連して概説する。
【0063】まず接触点Pが1個の場合は、P1 =Qの
場合と、P1 ≠Qの場合とがある。P1 =Qの場合は、
容易にR=P1 (=Q)とできる。この場合は、図3の
ステップS5の処理で〈N〉×〈RQ〉=〈N〉×〈Q
Q〉=0となり、回転モーメントは発生しない。またP
1 ≠Qの場合は、R=P1 (≠Q)となる。この場合
は、ステップS5の処理で〈N〉×〈RQ〉=〈N〉×
〈P1 Q〉≠0となり、回転モーメントが発生する。
【0064】次に接触点Pが2個の場合は、点Qが線分
1 2 上に在る場合と、無い場合とがある。点Qが線
分P1 2 上に在るとする判別は、例えば、〈QP1
×〈QP2 〉=0,P1x≦Qx ≦P2x,P1y≦Qy ≦P
2yを同時に満足すると言う条件で得られる。なお、x,
yは接触面上の座標である。点Qが線分P1 2 上に在
る場合は、常にR=Qとなる。この場合は、ステップS
5の処理で〈N〉×〈RQ〉=0となり、回転モーメン
トは発生しない。また点Qが線分P1 2 上に無い場合
は、常にR≠Q(即ち、R=P1 /P2 /線分P1 2
上の交点C12)となる。この場合は、ステップS5の処
理で〈N〉×〈RQ〉≠0となり、回転モーメントが発
生する。かくして本実施の形態によれば、接触点が任意
のn個の場合における仮想物体の運動を合理的に生成で
きる。
【0065】図12は実施の形態による一例の物体の運
動を説明する図で、図12(A)は速度vで地面に落下
した瞬間の物体aの斜視図を示している。例えば、地面
をZ=0の平面とし、法線ベクトル〈N〉,地面との接
触点の座標P1 〜P3 ,物体aの重心座標G,重心Gの
地面への投影点の座標Qを夫々、〈N〉=(0,0,
1),P1 (0,2,0),P2 (−1,0,0),P
3 (0,−1,0),G(2,1,2),Q(2,1,
0)とする。
【0066】上記図3のステップS2(即ち、図4,図
5)の処理によると、例えば、 (〈QP3 〉×〈QPj 〉)・〈N〉>0 (但し、1
≦j≦3,j≠3) を満たすjは存在しないから、点Qは多角形(P1 ,P
2 ,P3 )の外側に存在する。次に、ステップS4(即
ち、図10)の処理によると、先ず点Qに最も近い接触
点はP1 (0,2,0)である。一方、点Qに最も近い
線分Pi j 上の点はC13(0,1,0)である。よっ
て、回転中心の座標Rは点Qから近い方のC13(0,
1,0)となる。
【0067】次に、ステップS5では、〈R〉=〈N〉
×〈RQ〉=(0,2,0)を回転軸となし、物体a
に、大きさMの回転モーメントを発生させる。大きさM
は、上記により、例えば、 M=α*(v+1)*cosθ で与えられる。ここで〈RQ〉と〈RG〉とのなす角θ
は、θ=tan-1{|〈RQ〉×〈RG〉|/〈RQ〉
・〈RG〉}=tan-1{|(2,0,0)×(2,
2,0)|/(2,0,0)・(2,2,0)}=ta
-1(4/4)=45°と求まり、cosθ=1/√
(2)となる。
【0068】次に、ステップS6では、更に、この物体
aに大きさKの跳ね返り慣性モーメントを発生させる。
大きさKは、上記により、例えば、 K=β*v*sinθ で与えられる。sinθ=1/√(2)である。図12
(B)は上記物体aの運動を時系列に示す側面図であ
る。
【0069】例えば、ゲームのユーザは、敵との対戦途
中で、不用意にも自分の武器(例えばピストル等)を地
面に落としてしまった。従来技術によれば、予め用意さ
れたゲームのシナリオに従って、かつ予め用意された時
刻t0 〜t2 の各画面が、逐次表示されるかも知れな
い。しかし、本実施の形態においては、上記の少ない情
報を利用して、かつ物理法則に従い、時刻t0 〜t2
画面が自動生成される。即ち、時刻t0 では、物体aと
地面との当たり判定により、その時の各接触点P1 〜P
3 ,重心Gの座標情報を利用して、物体aを回転させる
ための回転中心の座標Rが求められる。時刻t1 では、
落下時の速度vの情報を利用して、〈N〉×〈RQ〉を
軸とする回転モーメントMによる回転運動と、跳ね返り
慣性モーメントKによるリバウンド運動とが同時に生成
される。これにより、物体aは地面から跳ね返りつつ、
かつ衝突条件に応じた自然な動きで地面に倒れ掛かる。
時刻t2 では、物体aが倒れた状態で静止している。
【0070】かくして、本実施の形態によれば、ゲーム
がどの様に展開しても、それに伴うこの種のアニメーシ
ョン画像を予め用意することなく、各場面に応じた自然
な運動を高速に自動生成できる。従って、より少ないゲ
ームデータと簡単な処理で、質の高いゲームを安価に提
供できる。なお、上記実施の形態ではゲーム機への適用
例を中心に述べたが、本発明はCPUを使用して行われ
るあらゆるCGアニメーション処理に適用可能である。
【0071】また、上記実施の形態では面を平面(例え
ば地面)としたがこれに限らない。面は任意の方向を向
いていても良いし、また面は曲面でも良い。なお、接触
点で囲まれる最大面積の面が複雑な曲面(又は折れた段
状の面)を成しているような場合には、その部分曲面の
法線ベクトルの加重平均をとり、1つの法線ベクトルで
複雑な曲面等を代表させることが可能である。
【0072】また、上記本発明に好適なる実施の形態を
述べたが、本発明思想を逸脱しない範囲内で、各処理の
構成、制御の流れ、及びこれらの組合せの様々な変更が
行えることは言うまでも無い。
【0073】
【発明の効果】以上述べた如く本発明によれば、仮想物
体に物理法則に準じた運動を生成することが、比較的少
ないデータと計算量で、かつ高速に可能となり、よっ
て、特にパーソナルコンピュータや専用のゲーム機等に
より実行されるゲームの、高機能化、高品質化、低価格
化等に寄与する所が極めて大きい。
【図面の簡単な説明】
【図1】図1は本発明の原理的構成を説明する図であ
る。
【図2】図2は実施の形態によるゲーム機の構成を示す
図である。
【図3】図3は実施の形態による仮想物体の運動生成処
理のフローチャートである。
【図4】図4は実施の形態による点と多角形の内外判定
処理のフローチャート(1)である。
【図5】図5は実施の形態による点と多角形の内外判定
処理のフローチャート(2)である。
【図6】図6は実施の形態による点と多角形の内外判定
処理を説明する図である。
【図7】図7は点Qの様々な位置に対する内外判定例を
説明する図(1)である。
【図8】図8は点Qの様々な位置に対する内外判定例を
説明する図(2)である。
【図9】図9は点Qの様々な位置に対する内外判定例を
説明する図(3)である。
【図10】図10は実施の形態による回転の中心座標の
抽出処理のフローチャートである。
【図11】図11は実施の形態による回転の中心座標の
抽出処理を説明する図である。
【図12】図12は実施の形態による一例の物体の運動
を説明する図である。
【図13】図13は従来技術を説明する図である。
【符号の説明】
1 ゲーム機本体 2 コンソール部 3 表示装置 4 コンパクトディスク 5 サーバ 6 他のゲーム機 11 CPU 12 主メモリ 13 表示制御部 14 インタフェース部 15 CD駆動部 16 通信制御部 17 共通バス 100 ネットワーク

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 仮想の物体が仮想の面と接触した際の該
    物体の運動を生成する仮想物体の運動生成方法におい
    て、 面の法線ベクトルを〈N〉、物体と面の接触点をP1
    n 、物体重心の面への運動方向の投影点をQとする場
    合に、 (1)点P1 〜Pn に係る情報の使用フラグUF1 〜U
    n を未使用に初期化すると共に、任意のベクトルQP
    (I) を選択してその使用フラグUF(I)を使用となし、
    かつi=Iとする処理と、 (2)i≠jの条件で、ベクトル〈QP(i) 〉,〈QP
    (j) 〉の外積と、法線ベクトル〈N〉との内積を求め、
    その演算結果が>0となるベクトル〈QP(j)〉を探査
    する処理と、 (3)前記(2)の条件を満たすベクトル〈QP(j) 〉
    が存在しない場合に、点Qが点P1 〜Pn で構成される
    最大面積の多角形の領域外にあると判定する処理とを備
    えることを特徴とする仮想物体の運動生成方法。
  2. 【請求項2】 前記(2)の演算結果が>0の場合に、 (4)そのjが指す使用フラグUF(j) を使用となし、
    かつ該ベクトル〈QP(j) 〉と前記(1)で選択したベ
    クトル〈QP(I) 〉の外積と、法線ベクトル〈N〉との
    内積を求める処理と、 (5)前記(4)の演算結果が>0の場合に、点Qが点
    1 〜Pn で構成される最大面積の多角形の領域内にあ
    ると判定する処理と、 (6)前記(4)の演算結果が≦0の場合に、そのiに
    jの内容を転送し、かつ該jの内容を次の未使用を指す
    値に更新して前記(2)に戻る処理とを更に備えること
    を特徴とする請求項1に記載の仮想物体の運動生成方
    法。
  3. 【請求項3】 前記(2)の演算結果が≦0の場合に、 (7)制御フラグMFを真となし、そのjの内容を次の
    未使用を指す値に更新して前記(2)に戻る処理と、 (8)前記(4)の演算結果が≦0で、かつ制御フラグ
    MFが真により、その時点のjよりも以前の未使用を指
    す値mを探査し、かつ該ベクトル〈QP(j) 〉とベクト
    ル〈QP(m) 〉の外積と、法線ベクトル〈N〉との内積
    を求める処理と、 (9)前記(8)の演算結果が>0により、そのベクト
    ル〈QP(m) 〉と前記(1)で選択したベクトル〈QP
    (I) 〉の外積と、法線ベクトル〈N〉との内積を求める
    処理と、 (10)前記(9)の演算結果が>0により、点Qが点
    1 〜Pn で構成される最大面積の多角形の領域内にあ
    ると判定する処理とを更に備えることを特徴とする請求
    項2に記載の仮想物体の運動生成方法。
  4. 【請求項4】 仮想の物体が仮想の面と接触した際の該
    物体の運動を生成する仮想物体の運動生成方法におい
    て、 面の法線ベクトルを〈N〉、物体と面の接触点をP1
    n 、物体重心の面への運動方向の投影点であって前記
    点P1 〜Pn で構成される最大面積の多角形の領域外に
    在るものをQとする場合に、 (11)任意のi,j(1≦i<j≦n)に対し、ベク
    トル〈QCij〉,〈Pi j 〉の内積が0を満たす線分
    i j 上の点Cijであって、距離|QCij|が最小と
    なる点Cmnを求め、該点Cmnを物体の回転中心の座標と
    なす処理を備えることを特徴とする仮想物体の運動生成
    方法。
  5. 【請求項5】(12)点P1 〜Pn の中で、点Qに最も
    近い点Pk との間の距離|QPk |を求める処理と、 (13)前記距離|QCmn|と距離|QPk |の小さい
    方に対応する点Cmn又はPk を物体の回転中心の座標と
    なす処理とを更に備えることを特徴とする請求項4に記
    載の仮想物体の運動生成方法。
  6. 【請求項6】 請求項1乃至5の何れか1に記載の処理
    をコンピュータが実施するためのプログラムで記録した
    ことを特徴とする記憶媒体。
JP18171696A 1996-06-24 1996-06-24 仮想物体の運動生成方法 Expired - Fee Related JP3697321B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP18171696A JP3697321B2 (ja) 1996-06-24 1996-06-24 仮想物体の運動生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP18171696A JP3697321B2 (ja) 1996-06-24 1996-06-24 仮想物体の運動生成方法

Publications (2)

Publication Number Publication Date
JPH1011601A true JPH1011601A (ja) 1998-01-16
JP3697321B2 JP3697321B2 (ja) 2005-09-21

Family

ID=16105624

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18171696A Expired - Fee Related JP3697321B2 (ja) 1996-06-24 1996-06-24 仮想物体の運動生成方法

Country Status (1)

Country Link
JP (1) JP3697321B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009028561A (ja) * 2008-11-10 2009-02-12 Namco Bandai Games Inc 画像生成システム及び情報記憶媒体

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009028561A (ja) * 2008-11-10 2009-02-12 Namco Bandai Games Inc 画像生成システム及び情報記憶媒体
JP4642104B2 (ja) * 2008-11-10 2011-03-02 株式会社バンダイナムコゲームス 画像生成システム及び情報記憶媒体

Also Published As

Publication number Publication date
JP3697321B2 (ja) 2005-09-21

Similar Documents

Publication Publication Date Title
JP5657848B2 (ja) プログラム、及びサーバ装置
US7713116B2 (en) Inventory management of virtual items in computer games
JP5085059B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
US20090286599A1 (en) Image generation method and information storage medium with program for video game in which operation of the controller beyond a predetermined angle causes a character to attack
US20120291032A1 (en) System, method and computer program product for dynamically measuring properties of objects rendered and/or referenced by an application executing on a computing device
EP2029247A2 (en) Control of data processing
JP2007029571A (ja) ビデオゲーム処理装置、ビデオゲーム処理方法、およびビデオゲーム処理プログラム
WO2008038478A1 (fr) Système de jeu, programme et support de stockage d'informations
JP2020014670A (ja) ゲーム制御装置、ゲームシステム、及びプログラム
JP2004041274A (ja) 遊技機の制御装置、遊技機、制御プログラム及び情報記憶媒体
JP2004141525A (ja) ゲームシステム、プログラム及び情報記憶媒体
JP3889392B2 (ja) 画像描画装置及び方法、プログラム並びに記録媒体
CN112295224A (zh) 三维特效生成方法及装置、计算机存储介质、电子设备
CN116993893A (zh) 一种抵御ai自瞄作弊的对抗贴图生成方法及装置
JPH1011601A (ja) 仮想物体の運動生成方法及び該方法による記憶媒体
JP6096154B2 (ja) プログラム、及びサーバ装置
JP2003210837A (ja) 画像生成システム、プログラム及び情報記憶媒体
US11478705B2 (en) Program, terminal, game system, and provision device
EP1316343B1 (en) Video game processing method, video game processing apparatus and computer readable recording medium storing video game program
JP2008093163A (ja) プログラム、情報記憶媒体、及びゲームシステム
JP2011145953A (ja) 画像処理装置、及び画像処理プログラム
JP2003230695A (ja) 遊技機の制御装置、遊技機、制御プログラム及び情報記憶媒体
US20240331301A1 (en) Systems and methods to accelerate collision detection in cloth simulation
JP3072344B2 (ja) ビデオゲーム機,ビデオゲーム機の画像処理方法,及びコンピュータプログラムを記録した記録媒体
US12036479B2 (en) Collection bundle purchase device and collection bundle purchase method

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050315

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050510

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050621

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050704

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees