(57)【特許請求の範囲】
【請求項１】
３ＤＣＧアニメーション空間上で任意仮想の面にめり込んだ任意仮想の物体を前記面上に戻す仮想物体のめり込み補正装置のめり込み補正方法であって、
前記物体と面とが接触するであろう該面上の接触点の座標をａ１〜ａｎ、該接触点に対応する前記物体のめり込み点の座標をｂ１〜ｂｎ、かつ前記各めり込み点より前記面の法線方向に下ろした各点の座標をｐ１〜ｐｎとする場合に、
前記めり込み点より任意に選択した第１及び第２の点ｉ．ｊの座標ｂｉ，ｂｊにつき第１及び第２の回転差分ベクトル〈Ｒｉｊ〉，〈Ｒｊｉ〉を、
〈Ｒｉｊ〉＝（〈ｂｉｂｊ〉×〈ｂｉｐｊ〉）／（｜ｂｉｂｊ｜＊｜ｂｉｐｊ｜）
〈Ｒｊｉ〉＝（〈ｂｊｂｉ〉×〈ｂｊｐｉ〉）／（｜ｂｊｂｉ｜＊｜ｂｊｐｉ｜）
により求める回転差分ベクトル演算処理と、
前記求めた回転差分ベクトルに基づきこれらの和の回転差分ベクトル〈Ｒ〉を求める回転差分ベクトル合成処理と、
前記物体を前記求めた和の回転差分ベクトル〈Ｒ〉だけ回転補正する回転補正処理と、
前記回転補正後の物体の前記第１及び第２のめり込み点ｉ，ｊ対応の各点の座標ｃｉ．ｃｊとこれらに対応する前記接触点の座標ａｉ，ａｊとに基づきこれらの平均の位置差分ベクトル〈Ｔ〉を求める位置差分ベクトル演算処理と、
前記回転補正後の物体を前記求めた平均の位置差分ベクトル〈Ｔ〉だけ平行移動補正する平行移動補正処理とを備えることを特徴とする仮想物体のめり込み補正方法。
【請求項２】
３ＤＣＧアニメーション空間上で任意仮想の面にめり込んだ任意仮想の物体を前記面上に戻す仮想物体のめり込み補正装置であって、
前記物体と面とが接触するであろう該面上の接触点の座標をａ１〜ａｎ、該接触点に対応する前記物体のめり込み点の座標をｂ１〜ｂｎ、かつ前記各めり込み点より前記面の法線方向に下ろした各点の座標をｐ１〜ｐｎとする場合に、
前記めり込み点より任意に選択した第１及び第２の点ｉ．ｊの座標ｂｉ，ｂｊにつき第１及び第２の回転差分ベクトル〈Ｒｉｊ〉，〈Ｒｊｉ〉を、
〈Ｒｉｊ〉＝（〈ｂｉｂｊ〉×〈ｂｉｐｊ〉）／（｜ｂｉｂｊ｜＊｜ｂｉｐｊ｜）
〈Ｒｊｉ〉＝（〈ｂｊｂｉ〉×〈ｂｊｐｉ〉）／（｜ｂｊｂｉ｜＊｜ｂｊｐｉ｜）
により求める回転差分ベクトル演算手段と、
前記求めた回転差分ベクトルに基づきこれらの和の回転差分ベクトル〈Ｒ〉を求める回転差分ベクトル合成手段と、
前記物体を前記求めた和の回転差分ベクトル〈Ｒ〉だけ回転補正する回転補正手段と、
前記回転補正後の物体の前記第１及び第２のめり込み点ｉ，ｊ対応の各点の座標ｃｉ．ｃｊとこれらに対応する前記接触点の座標ａｉ，ａｊとに基づきこれらの平均の位置差分ベクトル〈Ｔ〉を求める位置差分ベクトル演算手段と、
前記回転補正後の物体を前記求めた平均の位置差分ベクトル〈Ｔ〉だけ平行移動補正する平行移動補正手段とを備えることを特徴とする仮想物体のめり込み補正装置。
【請求項３】
前記回転差分ベクトル演算手段は、前記第１及び第２のめり込み点ｉ，ｊの座標ｂｉ，ｂｊに各対応する面分Ｅｉ，Ｅｊの基準点をｑｉ，ｑｊ、かつそれらの法線ベクトルを〈Ｎｉ〉，〈Ｎｊ〉とする場合に、ベクトル〈ｂｉｐｊ〉，〈ｂｊｐｉ〉を、
〈ｂｉｐｊ〉＝〈ｂｉｂｊ〉＋（〈ｂｊｑｊ〉・〈Ｎｊ〉）＊〈Ｎｊ〉
〈ｂｊｐｉ〉＝〈ｂｊｂｉ〉＋（〈ｂｉｑｉ〉・〈Ｎｉ〉）＊〈Ｎｉ〉
により求めることを特徴とする請求項２に記載の仮想物体のめり込み補正装置。
【請求項４】
３ＤＣＧアニメーション空間上で任意仮想の面にめり込んだ任意仮想の物体を前記面上に戻す仮想物体のめり込み補正装置であって、
前記物体と面とが接触するであろう該面上の接触点の座標をａ１〜ａｎ、該接触点に対応する前記物体のめり込み点の座標をｂ１〜ｂｎ、かつ前記各めり込み点より前記面の法線方向に下ろした各点の座標をｐ１〜ｐｎとする場合に、
前記めり込み点より任意に選択した第１及び第２の点ｉ．ｊの座標ｂｉ，ｂｊ、及び該第１及び第２の点ｉ．ｊを結ぶ線分に対して、２点を結ぶ線分が可能な限り直交するように選択した第３及び第４の点ｋ．ｌの座標ｂｋ，ｂｌとにつき第１乃至第４の回転差分ベクトル〈Ｒｉｊ〉，〈Ｒｊｉ〉，〈Ｒｋｌ〉，〈Ｒｌｋ〉を、
〈Ｒｉｊ〉＝（〈ｂｉｂｊ〉×〈ｂｉｐｊ〉）／（｜ｂｉｂｊ｜＊｜ｂｉｐｊ｜）
〈Ｒｊｉ〉＝（〈ｂｊｂｉ〉×〈ｂｊｐｉ〉）／（｜ｂｊｂｉ｜＊｜ｂｊｐｉ｜）
〈Ｒｋｌ〉＝（〈ｂｋｂｌ〉×〈ｂｋｐｌ〉）／（｜ｂｋｂｌ｜＊｜ｂｋｐｌ｜）
〈Ｒｌｋ〉＝（〈ｂｌｂｋ〉×〈ｂｌｐｋ〉）／（｜ｂｌｂｋ｜＊｜ｂｌｐｋ｜）
により求める回転差分ベクトル演算手段と、
前記求めた第１乃至第４の回転差分ベクトル〈Ｒｉｊ〉，〈Ｒｊｉ〉，〈Ｒｋｌ〉，〈Ｒｌｋ〉に基づきこれらの和の回転差分ベクトル〈Ｒ〉を求める回転差分ベクトル合成手段と、
前記物体を前記求めた和の回転差分ベクトル〈Ｒ〉だけ回転補正する回転補正手段と、
前記回転補正後の物体の前記第１乃至第４のめり込み点ｉ，ｊ，ｋ，ｌ対応の各点の座標ｃｉ．ｃｊ，ｃｋ，ｃｌとこれらに対応する前記接触点の座標ａｉ，ａｊ，ａｋ，ａｌとに基づきこれらの平均の位置差分ベクトル〈Ｔ〉を求める位置差分ベクトル演算手段と、
前記回転補正後の物体を前記求めた平均の位置差分ベクトル〈Ｔ〉だけ平行移動補正する平行移動補正手段とを備えることを特徴とする仮想物体のめり込み補正装置。
【請求項５】
前記回転差分ベクトル演算手段は、前記第１及び第２のめり込み点間の距離｜ｂｉｂｊ｜が最大となるように第１及び第２の点ｉ，ｊを選択することを特徴とする請求項２乃至４の何れか１つに記載の仮想物体のめり込み補正装置。
【請求項６】
前記回転差分ベクトル演算手段は、物体重心の面へのめり込み方向の投影点の座標Ｑが接触点の座標ａ１〜ａｎで構成される最大面積の多角形の内側に含まれる場合は、前記最大面積の多角形を構成する接触点対応のめり込み点の座標につき第１及び第２の点ｉ，ｊを選択することを特徴とする請求項２乃至４の何れか１つに記載の仮想物体のめり込み補正装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は仮想物体のめり込み補正方法及び装置に関し、更に詳しくは３ＤＣＧアニメーション空間上で任意仮想の面にめり込んだ任意仮想の物体を前記面上に戻す仮想物体のめり込み補正方法及び装置に関する。
コンピュータグラフィックスを利用したゲーム機等では、物体のアニメーション画像生成はある時間単位に区切って行われる。このため、物理的にはめり込まないはずの面（地面，壁等）にも、内部処理では物体がめり込んでしまう瞬間があり、これを補正する必要がある。
【０００２】
【従来の技術】
図１４は従来技術を説明する図である。
ある描画時刻ｔ０で状態ａにあった物体Ａ（以下、このような物体Ａを物体ａと呼ぶ）は次の描画時刻ｔ１では地中にめり込んでいる（物体ｂ）。
従来は、地中の物体ｂを地面の法線Ｎ方向に距離｜ｃ２−ｂ２｜だけ平行移動するものであった。
【０００３】
【発明が解決しようとする課題】
しかし、これでは地上に戻した物体ｃの他方の足ｃ１の側が空中に浮いてしまうと言う不具合が生じる。
一方、このような不具合を避けようとすると本格的な計算処理が必要となり、アニメーション画像をリアルタイムに生成できない。
【０００４】
本発明は上記従来技術の問題点に鑑み成されたものであり、その目的とする所は、面にめり込んだ物体を簡単な演算により高速かつ適正に面上に戻すことの可能な仮想物体のめり込み補正方法及び装置を提供することにある。
【０００５】
【課題を解決するための手段】
上記の課題は例えば図１（Ａ）の処理により解決される。即ち、本発明（１）の仮想物体のめり込み補正方法は、３ＤＣＧアニメーション空間上で任意仮想の面にめり込んだ任意仮想の物体を前記面上に戻す仮想物体のめり込み補正装置のめり込み補正方法であって、前記物体と面とが接触するであろう該面上の接触点の座標をａ１〜ａｎ、該接触点に対応する前記物体のめり込み点の座標をｂ１〜ｂｎ、かつ前記各めり込み点より前記面の法線方向に下ろした各点の座標をｐ１〜ｐｎとする場合に、前記めり込み点より任意に選択した第１及び第２の点ｉ．ｊの座標ｂｉ，ｂｊにつき第１及び第２の回転差分ベクトル〈Ｒｉｊ〉，〈Ｒｊｉ〉を、
〈Ｒｉｊ〉＝（〈ｂｉｂｊ〉×〈ｂｉｐｊ〉）／（｜ｂｉｂｊ｜＊｜ｂｉｐｊ｜）
〈Ｒｊｉ〉＝（〈ｂｊｂｉ〉×〈ｂｊｐｉ〉）／（｜ｂｊｂｉ｜＊｜ｂｊｐｉ｜）
により求める回転差分ベクトル演算処理と、前記求めた回転差分ベクトルに基づきこれらの和の回転差分ベクトル〈Ｒ〉を求める回転差分ベクトル合成処理と、前記物体を前記求めた和の回転差分ベクトル〈Ｒ〉だけ回転補正する回転補正処理と、前記回転補正後の物体の前記第１及び第２のめり込み点ｉ，ｊ対応の各点の座標ｃｉ．ｃｊとこれらに対応する前記接触点の座標ａｉ，ａｊとに基づきこれらの平均の位置差分ベクトル〈Ｔ〉を求める位置差分ベクトル演算処理と、前記回転補正後の物体を前記求めた平均の位置差分ベクトル〈Ｔ〉だけ平行移動補正する平行移動補正処理とを備えるものである。
【０００６】
図１（Ａ）において、ある時刻ｔ０で空中にあった物体ａは、速度ベクトルｖで地面に落下した結果、次の時刻ｔ１では地中にめり込んでいる（物体ｂ）。
本発明（１）によれば、回転差分ベクトル演算処理は、前記めり込み点より任意に選択した第１及び第２の点ｉ．ｊの座標ｂｉ，ｂｊにつき第１及び第２の回転差分ベクトル〈Ｒｉｊ〉，〈Ｒｊｉ〉を、
〈Ｒｉｊ〉＝（〈ｂｉｂｊ〉×〈ｂｉｐｊ〉）／（｜ｂｉｂｊ｜＊｜ｂｉｐｊ｜）
＝ｓｉｎθｂｉ＊〈Ｃｂｉ〉
〈Ｒｊｉ〉＝（〈ｂｊｂｉ〉×〈ｂｊｐｉ〉）／（｜ｂｊｂｉ｜＊｜ｂｊｐｉ｜）
＝ｓｉｎθｂｊ＊〈Ｃｂｊ〉
但し、〈Ｃｂｉ〉，〈Ｃｂｊ〉：単位ベクトル
を求める。
【０００７】
この場合に、物体ｂが平面形状の場合は元より、物体ｂが立体形状の場合でも、図示の如く、物体ｂの傾き及び又は地面の段差や傾き等を一平面（ＸＺ平面）内で記述できるような場合には、少なくとも１対の回転差分ベクトル〈Ｒｉｊ〉，〈Ｒｊｉ〉を求めれば良い。
上記求めた〈Ｒｉｊ〉は一方のめり込み点ｂｉから見た他方のめり込み点ｂｊの地面ｐｊまでの補正角（θｂｉに相当）を表し、また〈Ｒｊｉ〉は他方のめり込み点ｂｊから見た一方のめり込み点ｂｉの地面ｐｉまでの補正角（θｂｊに相当）を表す。即ち、これら〈Ｒｉｊ〉，〈Ｒｊｉ〉には既に物体ｂの傾きの情報及び又は地面の傾きや段差の情報が含まれている。
【０００８】
次に回転差分ベクトル合成処理は、前記求めた回転差分ベクトル〈Ｒｉｊ〉，〈Ｒｊｉ〉に基づき和の回転差分ベクトル〈Ｒ〉＝〈Ｒｉｊ〉＋〈Ｒｊｉ〉を求める。
次に回転補正処理は、前記物体ｂを前記求めた和の回転差分ベクトル〈Ｒ〉だけ回転補正する。この場合に、補正回転の中心は任意の位置に取れるが、この例では演算の簡単のためにユニバーサル座標原点Ｏにとる。これにより補正回転後の物体ｃが得られる。
【０００９】
次に位置差分ベクトル演算処理は、前記回転補正後の物体の前記第１及び第２のめり込み点ｉ，ｊ対応の各点の座標ｃｉ．ｃｊとこれらに対応する前記接触点の座標ａｉ，ａｊとに基づきこれらの平均の位置差分ベクトル〈Ｔ〉＝（〈ｃｉａｉ〉＋〈ｃｊａｊ〉）／２を求める。この〈Ｔ〉には地面からの深さの情報のみならず、物体ａがめり込んだ方向の情報も含まれている。
【００１０】
そして、平行移動補正処理は、前記回転補正後の物体ｃを前記求めた平均の位置差分ベクトル〈Ｔ〉だけ平行移動補正する。その結果、平行移動補正後の物体ｄは段差を有する地面の上に適正に載っている。
かくして本発明（１）によれば、任意形状及び傾きを有する物体ａが、任意形状（傾き、段差等）の地面にめり込んだ場合でも、簡単な座標演算に基づく１回の回転補正処理と１回の平行移動補正処理とにより、めり込み物体ｂを地面上に高速かつ適正に戻すことが可能となる。
【００１１】
また本発明（２）の仮想物体のめり込み補正装置は、３ＤＣＧアニメーション空間上で任意仮想の面にめり込んだ任意仮想の物体を前記面上に戻す仮想物体のめり込み補正装置であって、前記物体と面とが接触するであろう該面上の接触点の座標をａ１〜ａｎ、該接触点に対応する前記物体のめり込み点の座標をｂ１〜ｂｎ、かつ前記各めり込み点より前記面の法線方向に下ろした各点の座標をｐ１〜ｐｎとする場合に、前記めり込み点より任意に選択した第１及び第２の点ｉ．ｊの座標ｂｉ，ｂｊにつき第１及び第２の回転差分ベクトル〈Ｒｉｊ〉，〈Ｒｊｉ〉を、
〈Ｒｉｊ〉＝（〈ｂｉｂｊ〉×〈ｂｉｐｊ〉）／（｜ｂｉｂｊ｜＊｜ｂｉｐｊ｜）
〈Ｒｊｉ〉＝（〈ｂｊｂｉ〉×〈ｂｊｐｉ〉）／（｜ｂｊｂｉ｜＊｜ｂｊｐｉ｜）
により求める回転差分ベクトル演算手段と、前記求めた回転差分ベクトルに基づきこれらの和の回転差分ベクトル〈Ｒ〉を求める回転差分ベクトル合成手段と、前記物体を前記求めた和の回転差分ベクトル〈Ｒ〉だけ回転補正する回転補正手段と、前記回転補正後の物体の前記第１及び第２のめり込み点ｉ，ｊ対応の各点の座標ｃｉ．ｃｊとこれらに対応する前記接触点の座標ａｉ，ａｊとに基づきこれらの平均の位置差分ベクトル〈Ｔ〉を求め
る位置差分ベクトル演算手段と、前記回転補正後の物体を前記求めた平均の位置差分ベクトル〈Ｔ〉だけ平行移動補正する平行移動補正手段とを備えるものである。
好ましくは、本発明（３）においては、上記本発明（２）において、前記回転差分ベクトル演算手段は、前記第１及び第２のめり込み点ｉ，ｊの座標ｂｉ，ｂｊに各対応する面分Ｅｉ，Ｅｊの基準点をｑｉ，ｑｊ、かつそれらの法線ベクトルを〈Ｎｉ〉，〈Ｎｊ〉とする場合に、ベクトル〈ｂｉｐｊ〉，〈ｂｊｐｉ〉を、
〈ｂｉｐｊ〉＝〈ｂｉｂｊ〉＋（〈ｂｊｑｊ〉・〈Ｎｊ〉）＊〈Ｎｊ〉
〈ｂｊｐｉ〉＝〈ｂｊｂｉ〉＋（〈ｂｉｑｉ〉・〈Ｎｉ〉）＊〈Ｎｉ〉
により求める。
【００１２】
従って、簡単な演算により任意傾きや段差の面に柔軟に対応できる。
また本発明（４）の仮想物体のめり込み補正装置は、３ＤＣＧアニメーション空間上で任意仮想の面にめり込んだ任意仮想の物体を前記面上に戻す仮想物体のめり込み補正装置であって、前記物体と面とが接触するであろう該面上の接触点の座標をａ１〜ａｎ、該接触点に対応する前記物体のめり込み点の座標をｂ１〜ｂｎ、かつ前記各めり込み点より前記面の法線方向に下ろした各点の座標をｐ１〜ｐｎとする場合に、前記めり込み点より任意に選択した第１及び第２の点ｉ．ｊの座標ｂｉ，ｂｊ、及び該第１及び第２の点ｉ．ｊを結ぶ線分に対して、２点を結ぶ線分が可能な限り直交するように選択した第３及び第４の点ｋ．ｌの座標ｂｋ，ｂｌとにつき第１乃至第４の回転差分ベクトル〈Ｒｉｊ〉，〈Ｒｊｉ〉，〈Ｒｋｌ〉，〈Ｒｌｋ〉を、
〈Ｒｉｊ〉＝（〈ｂｉｂｊ〉×〈ｂｉｐｊ〉）／（｜ｂｉｂｊ｜＊｜ｂｉｐｊ｜）
〈Ｒｊｉ〉＝（〈ｂｊｂｉ〉×〈ｂｊｐｉ〉）／（｜ｂｊｂｉ｜＊｜ｂｊｐｉ｜）
〈Ｒｋｌ〉＝（〈ｂｋｂｌ〉×〈ｂｋｐｌ〉）／（｜ｂｋｂｌ｜＊｜ｂｋｐｌ｜）
〈Ｒｌｋ〉＝（〈ｂｌｂｋ〉×〈ｂｌｐｋ〉）／（｜ｂｌｂｋ｜＊｜ｂｌｐｋ｜）
により求める回転差分ベクトル演算手段と、前記求めた第１乃至第４の回転差分ベクトル〈Ｒｉｊ〉，〈Ｒｊｉ〉，〈Ｒｋｌ〉，〈Ｒｌｋ〉に基づきこれらの和の回転差分ベクトル〈Ｒ〉を求める回転差分ベクトル合成手段と、前記物体を前記求めた和の回転差分ベクトル〈Ｒ〉だけ回転補正する回転補正手段と、前記回転補正後の物体の前記第１乃至第４のめり込み点ｉ，ｊ，ｋ，ｌ対応の各点の座標ｃｉ．ｃｊ，ｃｋ，ｃｌとこれらに対応する前記接触点の座標ａｉ，ａｊ，ａｋ，ａｌとに基づきこれらの平均の位置差分ベクトル〈Ｔ〉を求める位置差分ベクトル演算手段と、前記回転補正後の物体を前記求めた平均の位置差分ベクトル〈Ｔ〉だけ平行移動補正する平行移動補正手段とを備えるものである。
図１（Ｂ）において、一般には４面分Ｅｉ，Ｅｊ，Ｅｋ，Ｅｌの高さや傾きが夫々異なる場合があり得る。この場合は、点ｉ，ｊ及びｋ，ｌにつきそれぞれ１対の回転差分ベクトル〈Ｒｉｊ〉，〈Ｒｊｉ〉及び〈Ｒｋｌ〉，〈Ｒｌｋ〉を求めることになるが、係る場合でも、任意に選択した第１及び第２の点ｉ．ｊを結ぶ線分に対して、第３及び第４の点ｋ．ｌを結ぶ線分が可能な限り直交するように該第３及び第４の点ｋ．ｌを選択すれば、線分ｉｊと線分ｋｌのＺ軸方向の傾きの関係は互いに略独立となるので、回転差分ベクトル〈Ｒｉｊ〉，〈Ｒｊｉ〉の対は面分Ｅｉ，Ｅｊの高さや傾きに良く（独立に）追従し、また回転差分ベクトル〈Ｒｋｌ〉，〈Ｒｌｋ〉の対は面分Ｅｋ ，Ｅｌの高さや傾きに良く（独立に）追従する。従って、より一般的な複雑な地形の地面に対しても簡単な演算により物体ｂを適正かつ高速に戻せる。
また好ましくは、本発明（５）においては、上記本発明（２）〜（４）において、前記回転差分ベクトル演算手段は、前記第１及び第２のめり込み点間の距離｜ｂｉｂｊ｜が最大となるように第１及び第２の点ｉ，ｊを選択する。
図１（Ａ）において、一般に、物体ｂの底形状が辺（稜線）又は面のような場合には地面との間に無数の接触点（めり込み点）が生じ得る。係る場合でも、めり込み点間の距離｜ｂｉｂｊ｜が最大となるようにｉ，ｊを選択すれば、物体の外形を規定するような少ないデータで適正なめり込み補正を行える。
【００１３】
また図１（Ｂ）において、物体ｂの底形状が矩形（正方形等）のような場合には、例えば互いに直行する２線分ｂｉｂｋ，ｂｉｂｌにつき２対の回転差分ベクトルを求めれば、物体ｂの傾き及び又は地面（但し、２面分の場合）の傾きや段差に関わらず、物体ｂを適正に地面に戻せる。しかし、係る場合でも、本発明（２）により距離｜ｂｉｂｊ｜が最大となるようにｉ，ｊを選択すれば、１対の回転差分ベクトル〈Ｒｉｊ〉，〈Ｒｊｉ〉を求めるだけで適正なめり込み補正を行える。この事は物体ｂの底形状が任意多角形乃至円形等の場合でも同様である。
【００１４】
また好ましくは、本発明（６）においては、上記本発明（２）〜（４）において、前記回転差分ベクトル演算手段は、物体重心の面へのめり込み方向の投影点の座標Ｑが接触点の座標ａ１〜ａｎで構成される最大面積の多角形の内側に含まれる場合は、前記最大面積の多角形を構成する接触点対応のめり込み点の座標につき第１及び第２の点ｉ，ｊを選択する。
【００１５】
例えば図５（Ａ）は複雑な接触面形状（斜線でハッチング）を有する一例の物体ｂを示している。係る物体ｂでも、その重心Ｇの地面への速度ベクトルｖ方向の投影点Ｑが同接触点ａ１〜ａ４で形成される最大面積の多角形（破線で示す）の内側に存在する場合は、物体ｂは最終的には図示の接触面形状で地面の上に立つと予測される。この場合に、一般の物理法則に従えば、この最大面積の３角形を構成する点ａ１，ａ２，ａ３は物体ｂの傾きを左右する意味で重要な点であり、それ以外の点ａ４は重要でないことが容易に理解できる。そこで、本発明（６）においては、回転差分ベクトル演算処理は、最大面積の多角形を構成する接触点対応のめり込み点の座標につきｉ，ｊを選択する。従って、一般の複雑な接触面形状の物体からでも該物体のめり込み補正に有用なめり込み点を能率良く抽出でき、処理が高速化される。
【００１６】
また好ましくは、回転差分ベクトル合成手段は、複数対の回転差分ベクトルを合成する場合はこれらの平均又は加重平均の回転差分ベクトルを求める。
図１（Ｂ）において、例えば底形状が矩形の物体ｂにつき、回転差分ベクトル演算手段が所定の単純な規則に基づき機械的に各回転差分ベクトルを求めた結果、回転差分ベクトル合成手段は、互いに直交する２線分ｂｉｂｋ，ｂｋｂｊ及び２線分ｂｊｂｌ，ｂｌｂｉにつき合計４対の回転差分ベクトルを合成する場合、又は互いに直交する２線分ｂｉｂｊ，ｂｋｂｌにつき２対の回転差分ベクトルを合成する場合等があり得る。係る場合には、直交する回転差分ベクトル対の成分は独立なので、和の回転差分ベクトル〈Ｒ〉の各要素を単純に１／２すれば良い。この考えは物体ｂの底形状が任意多角形乃至円形等の場合でも同様に適用できる。
【００１７】
但し、互いに直行しない２線分Ｃ，Ｄにつき求められた回転差分ベクトル対を合成するような場合には、両回転差分ベクトル対の成す角度θに応じて、和の回転差分ベクトル〈Ｒ〉の各要素を加重平均する。即ち、θ１＜９０°に対応する成分（Ｘ成分）は２より大きい数で平均化し、またθ２＞９０°に対応する成分（Ｙ成分）は２より小さい数で平均化する。
【００１８】
【発明の実施の形態】
以下、添付図面に従って本発明に好適なる実施の形態を詳細に説明する。
図２は実施の形態によるゲーム機の構成を示す図で、図において、１はゲーム機の本体、２はユーザが操作するための十字キー、Ａ，Ｂボタン、スタートボタン等を有するコンソール部（ＣＳＬ）、３はＣＲＴ等による表示装置（ＤＩＳＰ）、４は本実施の形態による仮想物体のめり込み補正方法等をプログラムで記憶しているコンパクトディスク（ＣＤ）、１００はネットワーク（公衆網等）、５はゲーム等に関する様々な通信サービスをオンラインで提供するサーバ、６は他のゲーム機である。
【００１９】
ゲーム機本体１において、１１は本ゲーム機の主制御・処理を行うＣＰＵ、１２はＣＰＵ１１が実行するゲームプログラムやデータであって、例えば図３の仮想物体のめり込み補正処理等を記憶するＲＡＭ，ＲＯＭ，ＥＥＰＲＯＭ等よりなる主メモリ（ＭＥＭ）、１３は表示装置３を制御する表示制御部（ＤＩＳＰＣ）、１４はコンソール部２をＣＰＵ１１に接続するインタフェース部（ＩＦ）、１５はＣＤ４の着脱、駆動及びデータ読取を行うＣＤ駆動部（ＣＤＤ）、１６はゲーム機本体１をネットワーク１００に接続する通信制御部（ＮＣＣ）、１７はＣＰＵ１１の共通バスである。
【００２０】
ゲームを行う時には、ゲーム機本体１及び表示装置３に電源投入し、ゲーム用のＣＤ４をＣＤ駆動部１５に装填する。更に、ＣＤ４から必要なプログラムやデータを主メモリ１２にロードし、ゲームをスタートする。そして、表示装置３に表示される生成アニメーション画像を見ながら、コンソール部２を操作して、ゲームを楽しむ。なお、ＣＤ４に代え、ＲＯＭカードやフロッピーディスク等の他の２次記憶装置を使用しても良い。また、サーバ５から所望のゲームソフトをダウンロードしても良い。更に、他のゲーム機６とオンラインで対戦ゲームを行っても良い。
【００２１】
図３は実施の形態による仮想物体のめり込み補正処理のフローチャートである。なお、以下の説明では、記号〈〉はベクトル、記号｜｜は絶対値（距離，大きさ等）、記号×はベクトル積、記号・はスカラー積、記号＊はスカラーの掛け算を夫々表すものとする。
ゲームの進行に伴い、ある物体の一部又は全部が仮想面（地面，壁，他の物体等）にめり込むと当たり判定された時は、この処理に入力する。
【００２２】
ステップＳ１では物体のめり込み点の座標ｂ１〜ｂｎを求める。ステップＳ２では物体と地面との接触点の座標ａ１〜ａｎを求める。なお、めり込み点と接触点を求める順序は問わない。ステップＳ３では、各めり込み点の座標ｂ１〜ｂｎより地面の法線方向に下ろした各点の座標をｐ１〜ｐｎとする場合に、任意のｉ，ｊ（１≦ｉ≠ｊ≦ｎ）につき、少なくとも１対の回転差分ベクトル〈Ｒｉｊ〉，〈Ｒｊｉ〉、
〈Ｒｉｊ〉＝（〈ｂｉｂｊ〉×〈ｂｉｐｊ〉）／（｜ｂｉｂｊ｜＊｜ｂｉｐｊ｜）
〈Ｒｊｉ〉＝（〈ｂｊｂｉ〉×〈ｂｊｐｉ〉）／（｜ｂｊｂｉ｜＊｜ｂｊｐｉ｜）を求める。
【００２３】
好ましくは、めり込み点の座標ｂｉ，ｂｊに各対応する面分Ｅｉ，Ｅｊの基準点をｑｉ，ｑｊ、かつそれらの法線ベクトルを〈Ｎｉ〉，〈Ｎｊ〉とする場合に、上記ベクトル〈ｂｉｐｊ〉，〈ｂｊｐｉ〉を、
〈ｂｉｐｊ〉＝〈ｂｉｂｊ〉＋（〈ｂｊｑｊ〉・〈Ｎｊ〉）＊〈Ｎｊ〉
〈ｂｊｐｉ〉＝〈ｂｊｂｉ〉＋（〈ｂｉｑｉ〉・〈Ｎｉ〉）＊〈Ｎｉ〉
により求める。
【００２４】
ステップＳ４では和の回転差分ベクトル〈Ｒ〉＝〈Ｒｉｊ〉＋〈Ｒｊｉ〉を求める。ステップＳ５では前記めり込んだ物体を和の回転差分ベクトル〈Ｒ〉だけ回転補正する。  この場合に、この補正回転の中心は任意の位置に取れる。実際上、物体は重心Ｇの回りに回転すると考えられるから、好ましくは、補正回転の中心を物体重心Ｇの位置に置く。この場合の回転処理は、まず物体の重心Ｇをユニバーサル座標原点Ｏまで平行移動し、ここで該物体を和の回転差分ベクトル〈Ｒ〉だけ回転補正し、この回転補正後の物体重心Ｇを元の重心Ｇの位置まで戻せば良い。
【００２５】
但し、本実施の形態では、演算の簡単のために、補正回転の中心をユニバーサル座標原点Ｏに取り、物体をユニバーサル座標原点Ｏの回りに和の回転差分ベクトル〈Ｒ〉だけ回転補正する。なお、この場合のユニバーサル座標は描画システムの基準座標にとったもの
でも良いし、又はめり込み物体の近傍に適当に設けたものでも良い。
【００２６】
ステップＳ６では回転補正後の物体の各めり込み点の座標ｃｉ，ｃｊとこれらに対応する接触点の座標ａｉ，ａｊとに基づき平均の位置差分ベクトル〈Ｔ〉＝（〈ｃｉａｉ〉＋〈ｃｊａｊ〉）／２を求める。ステップＳ７では前記回転補正後の物体を平均の位置差分ベクトル〈Ｔ〉だけ平行移動補正する。そして、ステップＳ８では、必要なら、地面への微小なめり込み部分が残らないように、微小な平行移動補正を行う。
【００２７】
図４，図５は実施の形態による仮想物体のめり込み補正処理を説明する図（１），（２）である。
一般に、物体は複雑な外形を有しているため、面との接触点（即ち、めり込み点）の抽出が問題となる。係る場合でも適当なめり込み点を選択できれば物体のめり込み補正処理を高速化できる。
【００２８】
図４（Ａ）において、例えば鉛筆の様な物体ａの先端部が速度ベクトルｖで地面にめり込んでいる。点ｂ１は円錐頂点を規定する物体固有の特徴点（ワイヤフレームの構造記述点等）であり、この様な特徴点を利用することで、めり込み点を単一のｂ１とできる。この場合の鉛筆ｂは、回転差分ベクトルを求める迄もなく、位置差分ベクトル〈Ｔ〉＝〈ｂ１ａ１〉により地面に戻される。
【００２９】
図４（Ｂ）において、例えばカミソリのような平面物体ｂが地面にめり込んでおり、物体ｂの底辺には無数のめり込み点が生じ得る。しかし、この場合も物体固有の特徴点ｂ１，ｂ２に着目するか、又は端点ｂ１と、該端点ｂ１から重心Ｇの方向に見て最も遠い位置にある点ｂ２に着目することで、めり込み点をｂ１，ｂ２とできる。
【００３０】
図４（Ｃ）において、速度ベクトルｖで斜面に落下する平面物体ｂの一方の端点ｂ１は地面にめり込んでいるが、他方の端点ｂ２は地面にめり込んでいない。しかし、係る場合でも、接触点ａ１と、端点ｂ２の地面への速度ベクトルｖ方向の投影点ａ２とが、物体重心Ｇの同投影点Ｑを挟んでいることから、該物体ｂは線分ｂ１ｂ２の辺で地面（斜面）に載ることが容易に予測される。従って、図示の如く回転差分ベクトル〈Ｒｂ１〉，〈Ｒｂ２〉を求めることが可能であり、かつ該〈Ｒｂ１〉，〈Ｒｂ２〉は同符号となるので、物体ｂは斜面と平行となるように回転補正される。
【００３１】
図４（Ｄ）において、物体ｂは下部に特徴点（凸部）ｂ１，ｂ２を有しており、このような凸部ｂ１，ｂ２は物体ｂのめり込み点として有効に使用される。
図５（Ａ）は複雑な接触面形状（斜線でハッチング）を有する一例の物体ｂを示している。係る物体ｂでも、その重心Ｇの地面への速度ベクトルｖ方向の投影点Ｑが同接触点ａ１〜ａ４で形成される最大面積の多角形（破線で示す３角形）の内側に存在する場合は、該物体ｂは最終的には図示の接触面形状で地面の上に立つと予測される。法線ベクトルＮを地面の鉛直上向きにとると、投影点Ｑの内外判定は以下の演算により行われ、
（１）〈Ｎ〉・〈Ｑａ１〉×〈Ｑａ２〉＞０
（２）〈Ｎ〉・〈Ｑａ２〉×〈Ｑａ１〉＜０
（３）〈Ｎ〉・〈Ｑａ２〉×〈Ｑａ３〉＞０
（４）〈Ｎ〉・〈Ｑａ３〉×〈Ｑａ１〉＞０
点Ｑは最大面積の３角形（ａ１，ａ２，ａ３）の内側に含まれる。
【００３２】
ところで、一般の物理法則に従えば、このような最大面積の３角形を構成する外側の点ａ１，ａ２，ａ３は物体ｂの傾きを左右する意味で重要な点であり、それ以外の点ａ４は重要でないことが容易に理解できる。従って、この物体ｂのめり込み点は最大面積の３角形を構成する接触点ａ１，ａ２，ａ３に対応する点ｂ１，ｂ２，ｂ３とできる。
【００３３】
幸い、図５（Ａ）の接触面は最大面積の直角３角形で特定でき、互いに直交する２線分ａ１ａ２及びａ２ａ３について２対の回転差分ベクトルを求めれば、物体ｂの傾きを適正に回転補正できる。或いは、地面又は物体ｂの接触面が線分ａ１ａ３と直角方向に傾いていない限り、線分ａ１ａ３について１対の回転差分ベクトルを求めても良い。
【００３４】
図５（Ｂ）において、ある物体ｂの接触面（不図示）は最大面積の正３角形で扱える。しかし、正３角形では互いに直交する線分が得られないので、例えば線分ｂ１ｂ２についての１対の回転差分ベクトルと、２線分ｂ１ｂ３及びｂ２ｂ３について求めた２対の回転差分ベクトル｛好ましくは線分ｂ１ｂ２に直交するＹ軸成分｝の平均（１／２）の回転差分ベクトルとを加算し、和の回転差分ベクトルとできる。
【００３５】
また、他の物体ｂ´の接触面（不図示）は一方に長く延びた最大面積の略２等辺３角形で扱える。この場合は線分ｂ１ｂ２についての１対の回転差分ベクトルと、線分ｂ１ｂ３又は線分ｂ２ｂ３についての１対の回転差分ベクトルとを加算し、和の回転差分ベクトルとできる。
更に、他の物体ｂ´´の接触面（不図示）は一方に短く縮んだ最大面積の３角形で扱える。この場合は線分ｂ１ｂ２についての１対の回転差分ベクトルをそのまま和の回転差分ベクトルとできる。以上は、正確では無いが、ゲーム機等の用途では十分である。
【００３６】
かくして、一般にどの様な複雑形状の物体でも、その接触面については物体重心の投影点Ｑを囲む様な最大面積の単純な多角形（３角形，４角形，５角形，…、更には円，楕円等）を抽出することが可能であり、この最大面積の多角形に基づくより少ないめり込み点の座標に基づき物体のめり込み補正を適正かつ高速に行える。
【００３７】
図５（Ｃ）において、ある物体ｂの接触面は長方形で扱える。この場合は互いに直行する２線分ｂ１ｂ２，ｂ１ｂ４及び２線分ｂ３ｂ４，ｂ３ｂ２についての合計４対の回転差分ベクトルを合成し、これを平均化できる。
ところで、より一般的には、物体その物の足の長さが夫々異なり、及び又は４面分Ｅｉ，Ｅｊ，Ｅｋ，Ｅｌの高さや傾きが夫々異なる場合があり得る。係る場合には、上記直交する２線分ｂ１ｂ２，ｂ１ｂ４につき２対の回転差分ベクトルを求めると、めり込み点ｂ３の足の長さや面分Ｅ３の高さ等の情報が失われ、また他の直交する２線分ｂ３ｂ４，ｂ３ｂ２につき２対の回転差分ベクトルを求めると、めり込み点ｂ１の足の長さや面分Ｅ１の高さ等の情報が失われる。
【００３８】
この場合に、４線分ｂ１ｂ２，ｂ２ｂ３，ｂ３ｂ４，ｂ４ｂ１につき４対の回転差分ベクトルを求め、これらの合成の各Ｘ，Ｙ，Ｚ成分を平均化（１／２）する方法もあるが、各成分が平均化される結果、急峻な傾き補正は得られない。係る場合でも、互いに略直行する２線分ｂ１ｂ３及びｂ２ｂ４につき２対の回転差分ベクトルを求めれば、これらの関係は略独立（略直交）となるので、４注目点ｂ１，ｂ２，ｂ３，ｂ４の状況に対応した急峻な傾き補正が得られる。
【００３９】
更に、例えば接触面が５角形で代表される様な物体ｂ´´については、該物体の足の長さ及び又は４面分Ｅ１〜Ｅ４の高さや傾きを考慮した合理的な接触点（即ち、めり込み点）が選ばれる。また、例えば接触面が平面略円形の物体ｂ´については、無数に存在し得る接触点の中から、４面分Ｅ１〜Ｅ４の高さや傾きを考慮した能率の良い接触点（即ち、めり込み点ｂ1 〜ｂ４）が選ばれる。
【００４０】
図６〜図１２は実施の形態による仮想物体のめり込み補正例を説明する図（１）〜（８）である。本発明の作用・効果は以下に述べる幾つかの仮想物体のめり込み補正例の説明
により一層明らかとなる。
図６，図７は物体ａが地面（平面）に斜め方向から落下した場合を示している。図６（Ａ）において、地面を平面（Ｚ＝０）とし、その法線ベクトル〈Ｎ〉＝（０，０，１）とする。また地面の基準点ｑをユニバーサル座標原点Ｏ（０，０，０）にとる。物体ｂのめり込み点ｂ１，ｂ２の座標は、
ｂ１（２．１４，０，−０．９８）  ｂ２（８．９６，０，−２．４２）
である。地面との接触点ａ１，ａ２の座標は、線分Ａ１ｂ１，線分Ａ２ｂ２とＺ＝０との交点として求まり、
ａ１（２．７５，０，０）  ａ２（１０．６３，０，０）
となる。
【００４１】
図６（Ｂ）において、めり込み点ｂ２より地面の法線方向に下ろした点をｐ２とすると、回転差分ベクトル〈Ｒｂ１〉は次式で求まる。
〈Ｒｂ１〉＝（〈ｂ１ｂ２〉×〈ｂ１ｐ２〉）／（｜ｂ１ｂ２｜＊｜ｂ１ｐ２｜）      
＝（０，−１６．５０，０）／４７．１３
＝（０，−０．３４，０）
＝ｓｉｎθb１＊〈Ｃb１〉
但し、
〈ｂ１ｐ２〉＝〈ｂ１ｂ２〉＋（〈ｂ２ｑ〉・〈Ｎ〉）＊〈Ｎ〉
＝（６．８２，０，−１．４４）＋（０，０，２．４２）
＝（６．８２，０，０．９８）
〈ｂ１ｂ２〉×〈ｂ１ｐ２〉
＝（６．８２，０，−１．４４）×（６．８２，０，０．９８）
＝（０，−１６．５０，０）
｜ｂ１ｂ２｜＝６．９７  ｜ｂ１ｐ２｜＝６．８９  〈Ｃｂ１〉：単位ベクトル
上記〈Ｒｂ１〉は、Ｙ軸と逆向きで、補正角θｂ１＝ｓｉｎ−１０．３４＝１９．８８°に相当する。
【００４２】
次に、めり込み点ｂ１より地面の法線方向に下ろした点をｐ１とすると、回転差分ベクトル〈Ｒｂ２〉は次式で求まる。
〈Ｒｂ２〉＝（〈ｂ２ｂ１〉×〈ｂ２ｐ１〉）／（｜ｂ２ｂ１｜＊｜ｂ２ｐ１｜）
＝（０，６．６８，０）／５０．４６
＝（０，０．１３，０）
＝ｓｉｎθｂ２＊〈Ｃｂ２〉
但し、
〈ｂ２ｐ１〉＝〈ｂ２ｂ１〉＋（〈ｂ１ｑ〉・〈Ｎ〉）＊〈Ｎ〉
＝（−６．８２，０，１．４４）＋（０，０，０．９８）
＝（−６．８２，０，２．４２）
〈ｂ２ｂ１〉×〈ｂ２ｐ１〉
＝（−６．８２，０，１．４４）×（−６．８２，０，２．４２）
＝（０，６．６８，０）
｜ｂ２ｂ１｜＝６．９７  ｜ｂ２ｐ１｜＝７．２４  〈Ｃｂ２〉：単位ベクトル
上記〈Ｒｂ２〉は、Ｙ軸と同じ向きで、補正角θｂ２＝ｓｉｎ−１０．１３＝７．４７°に相当する。
【００４３】
次に和の回転差分ベクトル〈Ｒｂ〉を求める。
〈Ｒｂ〉＝〈Ｒｂ１〉＋〈Ｒｂ２〉
＝（０，−０．３４，０）＋（０，０．１３，０）
＝（０，−０．２１，０）
＝ｓｉｎθｂ＊〈Ｃｂ〉
〈Ｒｂ〉は、Ｙ軸と逆向きで、補正角θｂ＝ｓｉｎ−１０．２１＝１２．１２°に相当する。
【００４４】
次に、物体ｂをユニバーサル座標原点Ｏの回りにりθｂ＝１２．１２°（Ｙ軸につきＣＷ）だけ回転補正する。めり込み点ｂ１，ｂ２の回転補正後の座標ｃ１，ｃ２は、
ｃ１＝（２．３０，０，−０．５１）  ｃ２＝（９．２７，０，−０．４８）
となり、得られた物体ｃは地面と略平行な姿勢に戻っている。
【００４５】
しかるに、この回転補正は、専ら物体ｂの姿勢を地形（接触点）に合わせて戻すものであり、物体ｂのめり込み量（深さ）については考慮されていない。また上記物体ｂをユニバーサル座標原点Ｏの回りに回転補正した結果、補正後の物体ｃには回転により生じた平行移動成分も含まれる。そこで、次に回転補正後の物体ｃを接触点ａ１，ａ２の方向に一挙に位置補正する。
【００４６】
図７（Ａ）において、平行移動補正ベクトル〈Ｔｃ〉を求める。
〈Ｔｃ〉＝（〈Ｔｃ１〉＋〈Ｔｃ２〉）／２
＝（〈ｃ１ａ１〉＋〈ｃ２ａ２〉）／２
＝｛（０．４５，０，０．５１）＋（１．３６，０，０．４８）｝／２
＝（０．９１，０，０．５０）
この〈Ｔｃ〉には物体ａがめり込んだ方向が考慮されており、よって物体ｃは接触点ａ１，ａ２の方向に戻される。これは物理法則を加味した自然な平行移動補正である。物体ｃを〈Ｔｃ〉だけ移動補正すると、めり込み点ｃ１，ｃ２の移動補正後の座標ｄ１，ｄ２は、
ｄ１＝（３．２１，０，−０．０１）  ｄ２＝（１０．１８，０，０．０２）
となる。
【００４７】
図７（Ｂ）において、必要なら、地面へのめり込み部分が残らないように、地面（Ｚ軸）方向の微小補正を行い、めり込み点ｄ１，ｄ２の微小補正後の座標ｅ１，ｅ２は、
ｅ１＝（３．２１，０，０．００）  ｅ２＝（１０．１８，０，０．０３）
となる。
【００４８】
図８，図９は物体ａが段差を有する地面に斜め方向から落下した場合を示している。図８（Ａ）において、段差のある地面を２分割し、各面分に基準点ｑ１（０，０，０），法線ベクトル〈Ｎ１〉＝（０，０，１）及び基準点ｑ２（６，０，−１），法線ベクトル〈Ｎ２〉＝（０，０，１）を設定する。なお、基準点ｑ２＝（０，０，−１）としても良い。
【００４９】
めり込み点ｂ１ ，ｂ２の座標は図６（Ａ）の場合と同一とする。
ｂ１（２．１４，０，−０．９８）  ｂ２（８．９６，０，−２．４２）
次に、線分Ａ１ｂ１とＺ＝０、及び線分Ａ２ｂ２とＺ＝−１に基づき各面分との接触点ａ１，ａ２の座標を求める。
ａ１（２．７５，０，０）  ａ２（９．９３，０，−１）
図８（Ｂ）において、めり込み点ｂ１，ｂ２より各面分の法線方向に下ろした点をｐ１，ｐ２とし、回転差分ベクトル〈Ｒｂ１〉，〈Ｒｂ２〉を求める。
〈Ｒｂ１〉＝（〈ｂ１ｂ２〉×〈ｂ１ｐ２〉）／（｜ｂ１ｂ２｜＊｜ｂ１ｐ２｜）      
＝（０，−９．６８，０）／４７．５４
＝（０，−０．２０，０）
＝ｓｉｎθｂ１＊〈Ｃｂ１〉
但し、
〈ｂ１ｐ２〉＝〈ｂ１ｂ２〉＋（〈ｂ２ｑ２〉・〈Ｎ２〉）＊〈Ｎ２〉
＝（６．８２，０，−１．４４）＋（０，０，１．４２）
＝（６．８２，０，−０．０２）
〈ｂ１ｂ２〉×〈ｂ１ｐ２〉
＝（６．８２，０，−１．４４）×（６．８２，０，−０．０２）
＝（０，−９．６８，０）
｜ｂ１ ｂ２｜＝６．９７    ｜ｂ１ ｐ２｜＝６．８２
〈Ｒｂ２〉＝（〈ｂ２ｂ１〉×〈ｂ２ｐ１〉）／（｜ｂ２ｂ１｜＊｜ｂ２ｐ１｜）      
＝（０，６．６８，０）／５０．４４
＝（０，０．１３，０）
＝ｓｉｎθｂ２＊〈Ｃｂ２〉
但し、
〈ｂ２ｐ１〉＝〈ｂ２ｂ１〉＋（〈ｂ１ｑ１〉・〈Ｎ〉）＊〈Ｎ〉                  
＝（−６．８２，０，１．４４）＋（０，０，０．９８）
＝（−６．８２，０，２．４２）
〈ｂ２ｂ１〉×〈ｂ２ｐ１〉
＝（−６．８２，０，１．４４）×（−６．８２，０，２．４２）
＝（０，６．６８，０）
｜ｂ２ｂ１｜＝６．９７    ｜ｂ２ｐ１｜＝７．２４
である。
【００５０】
次に、和の回転差分ベクトル〈Ｒ〉を求める。
〈Ｒｂ〉＝〈Ｒｂ１〉＋〈Ｒｂ２〉
＝（０，−０．２０，０）＋（０，０．１３，０）
＝（０，−０．０７，０）
次に、物体ｂをユニバーサル座標原点Ｏの回りにθｂ＝４．０１°だけ回転補正し、めり込み点ｂ１，ｂ２の回転補正後の座標ｃ１，ｃ２は、
ｃ１ ＝（２．２０，０，−０．８３）  ｃ２＝（９．１１，０，−１．７９）
となる。
【００５１】
図９（Ａ）において、平均の位置差分ベクトル〈Ｔｃ〉を求める。
〈Ｔｃ〉＝（〈Ｔｃ１〉＋〈Ｔｃ２〉）／２
＝（〈ｃ１ａ１〉＋〈ｃ２ａ２〉）／２
＝｛（０．５５，０，０．８３）＋（０．８２，０，０．７９）｝／２
＝（０．６９，０，０．８１）
物体ｃを〈Ｔｃ〉だけ移動補正すると、めり込み点ｃ１，ｃ２の平行移動後の座標ｄ１
，ｄ２は、
ｄ１＝（２．８９，０，−０．０２）  ｄ２＝（９．８０，０，−０．９８）
となる。
【００５２】
図９（Ｂ）において、必要なら、微小補正を行い、めり込み点ｄ１，ｄ２の微小補正後の座標ｅ１，ｅ２は、
ｅ１ ＝（２．８９，０，０．００）  ｅ２＝（９．８０，０，−０．９６）
となる。
図１０，図１１は物体ａが斜面を有する地面に斜め方向から落下した場合を示している。図１０（Ａ）において、斜面を有する地面を２分割し、各面分に基準点ｑ１（０，０，０），法線ベクトル〈Ｎ１〉＝（０，０，１）及び基準点ｑ２（６，０，０），法線ベクトル〈Ｎ２〉＝（０．３８，０，０．９３）を設定する。めり込み点ｂ１，ｂ２の座標は図６（Ａ）の場合と同一とする。
ｂ１（２．１４，０，−０．９８）  ｂ２（８．９６，０，−２．４２）
次に、線分Ａ１ｂ１ とＺ＝０、及び線分Ａ２ｂ２とＺ＝−０．３３Ｘ＋２に基づき各
面分との接触点ａ１ ，ａ２の座標を求める。
ａ１（２．７５，０，０）  ａ２（９．７５，０，−１．２５）
図１０（Ｂ）において、めり込み点ｂ１ ，ｂ２より各地面の法線方向に下ろした点をｐ１ ，ｐ２とし、回転差分ベクトル〈Ｒｂ１〉を求める。
〈Ｒｂ１〉＝（〈ｂ１ｂ２〉×〈ｂ１ｐ２〉）／（｜ｂ１ｂ２｜＊｜ｂ１ｐ２｜）
＝（０，−８．９１，０）／５１．７５
＝（０，−０．１７，０）
＝ｓｉｎθｂ１＊〈Ｃｂ１〉
但し、
〈ｂ１ｐ２〉＝〈ｂ１ｂ２〉＋（〈ｂ２ｑ２〉・〈Ｎ２〉）＊〈Ｎ２〉
＝〈ｂ１ｂ２〉＋１．２７＊〈０．３３，０，０．９３）
＝（６．８２，０，−１．４４）＋（０．４２，０，１．１８）
＝（７．４２，０，−０．２６）
〈ｂ１ｂ２〉×〈ｂ１ｐ２〉
＝（６．８２，０，−１．４４）×（７．４２，０，−０．２６）
＝（０，−８．９１，０）
｜ｂ１ｂ２｜＝６．９７  ｜ｂ１ｐ２｜＝７．４２
回転差分ベクトル〈Ｒｂ２〉は図８（Ｂ）の場合と同一である。
【００５３】
〈Ｒｂ２〉＝（０，６．６８，０）／５０．４４
＝（０，０．１３，０）
次に、和の回転差分ベクトル〈Ｒｂ〉を求め、
〈Ｒｂ〉＝〈Ｒｂ１〉＋〈Ｒｂ２〉
＝（０，−０．１７，０）＋（０，０．１３，０）
＝（０，−０．０４，０）
物体ｂを〈Ｃｂ〉の回りにθｂ＝２．２９°だけ回転補正すると、めり込み点ｂ１ ，ｂ２の回転補正後の座標ｃ１，ｃ２は、
ｃ１＝（２．１８，０，−０．８９）  ｃ２＝（９．０５，０，−２．０６）
となる。
【００５４】
図１１（Ａ）において、平均の位置差分ベクトル〈Ｔ〉を求め、
〈Ｔｃ〉＝（〈Ｔｃ１〉＋〈Ｔｃ２〉）／２
＝（〈ｃ１ａ１〉＋〈ｃ２ａ２〉）／２
＝｛（０．５７，０，０．８９）＋（０．７，０，０．８１）｝／２
＝（０．６４，０，０．８５）
物体ｃを〈Ｔｃ〉だけ移動補正すると、めり込み点ｃ１，ｃ２の移動補正後の座標ｄ１，ｄ２は、
ｄ１＝（２．８２，０，−０．１３）  ｄ２＝（９．６９，０，−１．２１）
となる。
【００５５】
図１１（Ｂ）において、必要なら、微小補正を行い、めり込み点ｄ１，ｄ２の微小補正後の座標ｅ１，ｅ２は、
ｅ１＝（２．８２，０，０．００）  ｅ２＝（９．６９，０，−１．０８）
となる。
図１２，図１３は物体ａが複雑な地形の地面に垂直に落下した場合を示している。図１２（Ａ）は物体のめり込みを説明する三面図、図１２（Ｂ）は地面の斜視図である。
【００５６】
図１２（Ｂ）において、複雑な地形の地面を４分割し、各面分Ｅ１〜Ｅ４に基準点ｑ１，法線ベクトル〈Ｎ１〉〜基準点ｑ４，法線ベクトル〈Ｎ４〉を設定する。
ｑ１（０，０，１），〈Ｎ１〉＝（０，０，１）
ｑ２（８，０，０），〈Ｎ２〉＝（０，０，１）
ｑ３（８，８，１），〈Ｎ３〉＝（０．０，１）
ｑ４（０，８，２），〈Ｎ４〉＝（０，０，１）
図１２（Ａ）において、物体ｂのめり込み点ｂ１〜ｂ４の座標を求める。
【００５７】
ｂ１（４．４３，３．９５，−２．２）
ｂ２（１１．８，３．９５，−３．８）
ｂ３（１１．８，１１．１，−３．８）
ｂ４（４．４３，１１．１，−２．２）
図１３（Ａ）において、めり込み点ｂ１〜ｂ４より各面分の法線方向に下ろした点をｐ１〜ｐ４（但し、垂直落下の場合は接触点ａ１〜ａ４と同一）とし、回転補正ベクトル〈Ｒｂ１ｂ３〉，〈Ｒｂ２ｂ４〉，〈Ｒｂ３ｂ１〉，〈Ｒｂ４ｂ２〉を求める。
【００５８】
〈Ｒｂ１ｂ３〉は、
〈Ｒｂ１ｂ３〉＝（〈ｂ１ｂ３〉×〈ｂ１ｐ３〉）
／（｜ｂ１ｂ３｜＊｜ｂ１ｐ３｜）
＝（３４．３２，−３５．３８，０）／１１１．７７
＝（０．３１，−０．３２，０）
但し、
〈ｂ１ｐ３〉＝〈ｂ１ｂ３〉＋（〈ｂ３ｑ３〉・〈Ｎ３〉）＊〈Ｎ３〉
＝（７．３７，７．１５，−１．６）＋４．８＊〈０，０，１）
＝（７．３７，７．１５，３．２）
〈ｂ１ｂ３〉×〈ｂ１ｐ３〉
＝（７．３７，７．１５，−１．６）×（７．３７，７．１５，３．２）
＝（３４．３２，−３５．３８，０）
｜ｂ１ｂ３｜＝１０．３９    ｜ｂ１ｐ３｜＝１０．７６
となる。
【００５９】
〈Ｒｂ２ｂ４〉は、
〈Ｒｂ２ｂ４〉＝（〈ｂ２ｂ４〉×〈ｂ２ｐ４〉）
／（｜ｂ２ｂ４｜＊｜ｂ２ｐ４｜）
＝（３０．０３，３０．９５，０）／１２２．５６                        
＝（０．２５，０．２５，０）
但し、
〈ｂ２ｐ４〉＝〈ｂ２ｂ４〉＋（〈ｂ４ｑ４〉・〈Ｎ４〉）＊〈Ｎ４〉
＝（−７．３７，７．１５，１．６）＋４．２＊〈０，０，１）
＝（−７．３７，７．１５，５．８）
〈ｂ２ｂ４〉×〈ｂ２ｐ４〉
＝（−７．３７，７．１５，１．６）×（−７．３７，７．１５，５．８）
＝（３０．０３，３０．９５，０）
｜ｂ２ｂ４｜＝１０．３９        ｜ｂ２ｐ４｜＝１１．７９
となる。
【００６０】
〈Ｒｂ３ｂ１〉は、
〈Ｒｂ３ｂ１〉＝（〈ｂ３ｂ１〉×〈ｂ３ｐ１〉）
／（｜ｂ３ｂ１｜＊｜ｂ３ｐ１｜）
＝（−２２．８８，２３．５８，０）／１１７．８０
＝（−０．１９，０．２０，０）
但し、
〈ｂ３ｐ１〉＝〈ｂ３ｂ１〉＋（〈ｂ１ｑ１〉・〈Ｎ１〉）＊〈Ｎ１〉
＝（−７．３７，−７．１５，１．６）＋３．２＊〈０，０，１）
＝（−７．３７，−７．１５，４．８）
〈ｂ３ｂ１〉×〈ｂ３ｐ１〉
＝（−７．３７，−７．１５，１．６）×（−７．３７，−７．１５，４．８）＝（−２２．８８，２３．５８，０）
｜ｂ３ｂ１｜＝１０．３９        ｜ｂ３ｐ１｜＝１１．３３
となる。
【００６１】
〈Ｒｂ４ｂ２〉は、
〈Ｒｂ４ｂ２〉＝（〈ｂ４ｂ２〉×〈ｂ４ｐ２〉）
／（｜ｂ４ｂ２｜＊｜ｂ４ｐ２｜）
＝（−２７．１７，−２８．０１，０）／１０９．１３
＝（−０．２５，−０．２６，０）
但し、
〈ｂ４ｐ２〉＝〈ｂ４ｂ２〉＋（〈ｂ２ｑ２〉・〈Ｎ２〉）＊〈Ｎ２〉
＝（７．３７，−７．１５，−１．６）＋３．８＊〈０，０，１）
＝（７．３７，−７．１５，２．２）
〈ｂ４ｂ２〉×〈ｂ４ｐ２〉
＝（７．３７，−７．１５，−１．６）×（７．３７，−７．１５，２．２）
＝（−２７．１７，−２８．０１，０）
｜ｂ４ｂ２｜＝１０．３９        ｜ｂ４ｐ２｜＝１０．５０
となる。
【００６２】
次に、和の回転差分ベクトル〈Ｒｂ〉を求める。
〈Ｒｂ１ｂ３〉＝（  ０．３１，−０．３２，  ０．００）
＋〈Ｒｂ３ｂ１〉＝（−０．１９，  ０．２０，  ０．００）
＋〈Ｒｂ２ｂ４〉＝（  ０．２５，  ０．２５，  ０．００）
＋〈Ｒｂ４ｂ２〉＝（−０．２５，−０．２６，  ０．００）
〈Ｒｂ〉＝（  ０．１２，−０．１３，  ０．００）
物体ｂをユニバーサル座標原点Ｏの回りにθｂＸ＝６．８９°，θｂＹ＝−７．４７°，θｂＺ＝０°だけ回転補正すると、めり込み点ｂ１〜ｂ４の回転補正後の座標ｃ１〜ｃ４は、
ｃ１＝（  ４．６１，  ４．１９，−１．１２）
ｃ２＝（１２．１３，  ４．３８，−１．７４）
ｃ３＝（１２．０１，１１．４８，−０．８９）
ｃ４＝（  ４．５０，１１．２８，−０．２７）
となる。
【００６３】
次に、平均の位置差分ベクトル〈Ｔｃ〉を求める。
〈Ｔｃ〉＝（〈Ｔｃ１〉＋〈Ｔｃ２〉＋〈Ｔｃ３〉＋〈Ｔｃ４〉）／４
＝〈ｃ１ａ1〉＝（−０．１８，−０．２４，２．１２）
＋〈ｃ２ａ２〉＝（−０．３３，−０．４３，１．７４）
＋〈ｃ３ａ３〉＝（−０．２１，−０．３８，１．８９）
＋〈ｃ４ａ４〉＝（−０．０７，−０．１８，２．２７）
＝（−０．７９，−１．２３，８．０２）／４
＝（−０．２０，−０．３１，２．０１）
物体ｃを〈Ｔｃ〉だけ移動補正すると、めり込み点ｃ１〜ｃ４の移動補正後の座標ｄ１〜ｄ４は、
ｄ１＝（  ４．４１，  ３．８８，０．８９）
ｄ２＝（１１．９３，  ４．０７，０．２７）
ｄ３＝（１１．８１，１１．１７，１．１２）
ｄ４＝（  ４．３０，１０．９７，１．７４）
となる。めり込み補正後の物体ｄを図１３（Ｂ）に示す。必要なら、微小補正を行う。いずれにしても物体は複雑な地形の地面に適正に載っている。
【００６４】
なお、上記面分Ｅ1 〜Ｅ4 に斜面が含まれていても良い事は明らかである。
また、上記実施の形態ではゲーム機への適用例を中心に述べたが、本発明はＣＰＵを使用して行われるあらゆるＣＧアニメーション処理に適用可能である。
また、上記実施の形態では面分を平面としたが曲面でも良い。この場合は曲面を構成するポリゴンの各法線ベクトルの加重平均をとり、１つの法線ベクトルで複雑な曲面等を代表させることが可能である。
【００６５】
また、上記本発明に好適なる実施の形態を述べたが、本発明思想を逸脱しない範囲内で、各処理の構成、制御の流れ、及びこれらの組合せの様々な変更が行えることは言うまでも無い。
【００６６】
【発明の効果】
以上述べた如く本発明によれば、任意形状や傾きの物体が、任意形状や傾きの面（地面等）にめり込んでも、簡単な座標演算に基づく１回の回転補正処理と１回の平行移動補正処理とで衝突面上に適正かつ高速に戻せ、ＣＧアニメーションの高速化に寄与する所が極めて大きい。
【図面の簡単な説明】
【図１】  本発明の原理を説明する図である。
【図２】  実施の形態によるゲーム機の構成を示す図である。
【図３】  実施の形態による仮想物体のめり込み補正処理のフローチャートである。
【図４】  実施の形態による仮想物体のめり込み補正処理を説明する図（１）である。
【図５】  実施の形態による仮想物体のめり込み補正処理を説明する図（２）である。
【図６】  実施の形態による仮想物体のめり込み補正例を説明する図（１）である。
【図７】  実施の形態による仮想物体のめり込み補正例を説明する図（２）である。
【図８】  実施の形態による仮想物体のめり込み補正例を説明する図（３）である。
【図９】  実施の形態による仮想物体のめり込み補正例を説明する図（４）である。
【図１０】  実施の形態による仮想物体のめり込み補正例を説明する図（５）である。
【図１１】  実施の形態による仮想物体のめり込み補正例を説明する図（６）である。
【図１２】  実施の形態による仮想物体のめり込み補正例を説明する図（７）である。
【図１３】  実施の形態による仮想物体のめり込み補正例を説明する図（８）である。
【図１４】  従来技術を説明する図である。
【符号の説明】
１  ゲーム機本体
２  コンソール部
３  表示装置
４  コンパクトディスク
５  サーバ
６  他のゲーム機
１１  ＣＰＵ
１２  主メモリ
１３  表示制御部
１４  インタフェース部
１５  ＣＤ駆動部
１６  通信制御部
１７  共通バス
１００  ネットワーク
【図１】
0003883017.tif 000002
【図２】
0003883017.tif 000003
【図３】
0003883017.tif 000004
【図４】
0003883017.tif 000005
【図５】
0003883017.tif 000006
【図６】
0003883017.tif 000007
【図７】
0003883017.tif 000008
【図８】
0003883017.tif 000009
【図９】
0003883017.tif 000010
【図１０】
0003883017.tif 000011
【図１１】
0003883017.tif 000012
【図１２】
0003883017.tif 000013
【図１３】
0003883017.tif 000014
【図１４】
0003883017.tif 000015