(57)【特許請求の範囲】
【請求項１】
リアルタイム仮想シーンにおけるコライダ間の衝突検出のための方法であって、
仮想シーンにおける仮想オブジェクトに対応する円柱状コライダから第1のバイナリ空間分割コライダの各平面までの最短距離を取得するステップと、
前記最短距離に従って前記第1のバイナリ空間分割コライダの各平面を拡張して第2のバイナリ空間分割コライダを形成するステップと、
前記第1のバイナリ空間分割コライダの軸平行境界ボックスを拡張して、外縁の拡張された境界ボックスを生成するステップと、
前記生成された外縁の拡張された境界ボックスおよび前記第2のバイナリ空間分割コライダの交差セットを取得するステップと、
前記円柱状コライダと前記外縁の拡張された境界ボックスおよび前記第2のバイナリ空間分割コライダの前記交差セットの取得の結果との間の衝突検出を実行するステップと
を備える、方法。
【請求項２】
前記第1のバイナリ空間分割コライダの軸平行境界ボックスを拡張して外縁の拡張された境界ボックスを生成する前記ステップの後に、
前記外縁の拡張された境界ボックスの四隅の各々にベベルを追加するステップ
をさらに備える、請求項1に記載の方法。
【請求項３】
前記第1のバイナリ空間分割コライダにおけるおよび前記外縁の拡張された境界ボックスのベベルに対応する平面交差線から前記ベベルまでの距離が、前記円柱状コライダの半径である、請求項2に記載の方法。
【請求項４】
前記第1のバイナリ空間分割コライダの軸平行境界ボックスを拡張して外縁の拡張された境界ボックスを生成する前記ステップの後に、
前記外縁の拡張された境界ボックスの四隅の各々にキャンバ面を追加するステップ
をさらに備える、請求項1に記載の方法。
【請求項５】
前記第1のバイナリ空間分割コライダにおけるおよび前記外縁の拡張された境界ボックスのキャンバ面に対応する平面交差線から前記キャンバ面までの最短距離が、前記円柱状コライダの半径である、請求項4に記載の方法。
【請求項６】
前記仮想オブジェクトに対応する前記円柱状コライダから前記第1のバイナリ空間分割コライダの各平面までの前記最短距離が、前記仮想オブジェクトに対応する前記円柱状コライダが前記第1のバイナリ空間分割コライダの平面に接触するときに、前記円柱状コライダの中心点から前記第1のバイナリ空間分割コライダの前記接触された面までの距離である、請求項1に記載の方法。
【請求項７】
仮想シーンにおける仮想オブジェクトに対応する円柱状コライダから第1のバイナリ空間分割コライダの各平面までの最短距離を取得する前記ステップが、
前記仮想オブジェクトに対応する前記円柱状コライダの軸方向が前記第1のバイナリ空間分割コライダの平面と平行であり、前記第1のバイナリ空間分割コライダの前記平面が前記円柱状コライダの側線と密着する場合に、前記仮想オブジェクトに対応する前記円柱状コライダから前記第1のバイナリ空間分割コライダの前記平面までの最短距離は前記円柱状コライダの半径であると判定するステップと、
前記第1のバイナリ空間分割コライダの平面が、前記円柱状コライダの点と密着する場合に、前記円柱状コライダの半径および半分の高さと前記第1のバイナリ空間分割コライダの前記平面の法線ベクトルのX、Y、およびZ座標成分とに従って、前記円柱状コライダから前記第1のバイナリ空間分割コライダの前記平面までの最短距離を取得するステップと
を備える、請求項1に記載の方法。
【請求項８】
前記第1のバイナリ空間分割コライダの軸平行境界ボックスを拡張して外縁の拡張された境界ボックスを生成する前記ステップが、
前記第1のバイナリ空間分割コライダの前記軸平行境界ボックスについて、基準として前記円柱状コライダの中心点を使用することによって前記第1のバイナリ空間分割コライダの前記軸平行境界ボックス全体をスキャンして、前記外縁の拡張された境界ボックスを生成するステップ
を備える、請求項1に記載の方法。
【請求項９】
メモリおよびプロセッサを備える端末であって、前記メモリが、コンピュータ可読命令を記憶し、前記プロセッサが、
仮想シーンにおける仮想オブジェクトに対応する円柱状コライダから第1のバイナリ空間分割コライダの各平面までの最短距離を取得するステップと、
前記最短距離に従って前記第1のバイナリ空間分割コライダの各平面を拡張して第2のバイナリ空間分割コライダを形成するステップと、
前記第1のバイナリ空間分割コライダの軸平行境界ボックスを拡張して、外縁の拡張された境界ボックスを生成するステップと、
前記生成された外縁の拡張された境界ボックスおよび前記第2のバイナリ空間分割コライダの交差セットを取得するステップと、
前記円柱状コライダと前記外縁の拡張された境界ボックスおよび前記第2のバイナリ空間分割コライダの前記交差セットの取得の結果との間の衝突検出を実行するステップと
を実行するように、前記命令が前記プロセッサによって実行される、端末。
【請求項１０】
前記第1のバイナリ空間分割コライダの軸平行境界ボックスを拡張して外縁の拡張された境界ボックスを生成する前記ステップの後に、前記プロセッサがさらに、
前記外縁の拡張された境界ボックスの四隅の各々にベベルを追加するステップ
を実行する、請求項9に記載の端末。
【請求項１１】
前記第1のバイナリ空間分割コライダにおけるおよび前記外縁の拡張された境界ボックスのベベルに対応する平面交差線から前記ベベルまでの距離が、前記円柱状コライダの半径である、請求項10に記載の端末。
【請求項１２】
前記第1のバイナリ空間分割コライダの軸平行境界ボックスを拡張して外縁の拡張された境界ボックスを生成する前記ステップの後に、前記プロセッサがさらに、
前記外縁の拡張された境界ボックスの四隅の各々にキャンバ面を追加するステップ
を実行する、請求項9に記載の端末。
【請求項１３】
前記第1のバイナリ空間分割コライダにおけるおよび前記外縁の拡張された境界ボックスのキャンバ面に対応する平面交差線から前記キャンバ面までの最短距離が、前記円柱状コライダの半径である、請求項12に記載の端末。
【請求項１４】
前記仮想オブジェクトに対応する前記円柱状コライダから前記第1のバイナリ空間分割コライダの各平面までの前記最短距離が、前記仮想オブジェクトに対応する前記円柱状コライダが前記第1のバイナリ空間分割コライダの前記平面に接触するときに、前記円柱状コライダの中心点から前記第1のバイナリ空間分割コライダの接触された面までの距離である、請求項9に記載の端末。
【請求項１５】
仮想シーンにおける仮想オブジェクトに対応する円柱状コライダから第1のバイナリ空間分割コライダの各平面までの最短距離を取得する前記ステップが、
前記仮想オブジェクトに対応する前記円柱状コライダの軸方向が前記第1のバイナリ空間分割コライダの平面と平行であり、前記第1のバイナリ空間分割コライダの前記平面が前記円柱状コライダの側線と密着する場合に、前記仮想オブジェクトに対応する前記円柱状コライダから前記第1のバイナリ空間分割コライダの前記平面までの最短距離が前記円柱状コライダの半径であると判定するステップと、
前記第1のバイナリ空間分割コライダの平面が前記円柱状コライダの点と密着する場合に、前記円柱状コライダの半径および半分の高さと前記第1のバイナリ空間分割コライダの前記平面の法線ベクトルのX、Y、およびZ座標成分とに従って、前記円柱状コライダから前記第1のバイナリ空間分割コライダの前記平面までの最短距離を取得するステップと
を備える、請求項9に記載の端末。
【請求項１６】
前記第1のバイナリ空間分割コライダの軸平行境界ボックスを拡張して外縁の拡張された境界ボックスを生成する前記ステップが、
前記第1のバイナリ空間分割コライダの前記軸平行境界ボックスについて、基準として前記円柱状コライダの中心点を使用することによって前記第1のバイナリ空間分割コライダの前記軸平行境界ボックス全体をスキャンして、前記外縁の拡張された境界ボックスを生成するステップ
を備える、請求項9に記載の端末。
【請求項１７】
コンピュータ実行可能命令を備える1つまたは複数の不揮発性コンピュータ可読記憶媒体であって、前記コンピュータ実行可能命令が、1つまたは複数のプロセッサによって実行されるときに、
仮想シーンにおける仮想オブジェクトに対応する円柱状コライダから第1のバイナリ空間分割コライダの各平面までの最短距離を取得するステップと、
前記最短距離に従って前記第1のバイナリ空間分割コライダの各平面を拡張して第2のバイナリ空間分割コライダを形成するステップと、
前記第1のバイナリ空間分割コライダの軸平行境界ボックスを拡張して、外縁の拡張された境界ボックスを生成するステップと、
前記生成された外縁の拡張された境界ボックスおよび前記第2のバイナリ空間分割コライダの交差セットを取得するステップと、
前記円柱状コライダと前記外縁の拡張された境界ボックスおよび前記第2のバイナリ空間分割コライダの前記交差セットの取得の結果との間の衝突検出を実行するステップと
を前記プロセッサに実行させる、不揮発性コンピュータ可読記憶媒体。
【請求項１８】
前記第1のバイナリ空間分割コライダの軸平行境界ボックスを拡張して外縁の拡張された境界ボックスを生成する前記ステップの後に、前記プロセッサがさらに、
前記外縁の拡張された境界ボックスの四隅の各々にベベルを追加するステップ
を実行する、請求項17に記載の不揮発性コンピュータ可読記憶媒体。
【請求項１９】
前記第1のバイナリ空間分割コライダにおけるおよび前記外縁の拡張された境界ボックスのベベルに対応する平面交差線から前記ベベルまでの距離が、前記円柱状コライダの半径である、請求項18に記載の不揮発性コンピュータ可読記憶媒体。
【請求項２０】
前記第1のバイナリ空間分割コライダの軸平行境界ボックスを拡張して外縁の拡張された境界ボックスを生成する前記ステップの後に、前記プロセッサがさらに、
前記外縁の拡張された境界ボックスの四隅の各々にキャンバ面を追加するステップ
を実行する、請求項17に記載の不揮発性コンピュータ可読記憶媒体。
【請求項２１】
前記第1のバイナリ空間分割コライダにおけるおよび前記外縁の拡張された境界ボックスのキャンバ面に対応する平面交差線から前記キャンバ面までの最短距離が、前記円柱状コライダの半径である、請求項20に記載の不揮発性コンピュータ可読記憶媒体。
【請求項２２】
前記仮想オブジェクトに対応する前記円柱状コライダから前記第1のバイナリ空間分割コライダの各平面までの前記最短距離が、前記仮想オブジェクトに対応する前記円柱状コライダが前記第1のバイナリ空間分割コライダの前記平面に接触するときに、前記円柱状コライダの中心点から前記第1のバイナリ空間分割コライダの接触された面までの距離である、請求項17に記載の不揮発性コンピュータ可読記憶媒体。
【請求項２３】
仮想シーンにおける仮想オブジェクトに対応する円柱状コライダから第1のバイナリ空間分割コライダの各平面までの最短距離を取得する前記ステップが、
前記仮想オブジェクトに対応する前記円柱状コライダの軸方向が前記第1のバイナリ空間分割コライダの平面と平行であり、前記第1のバイナリ空間分割コライダの前記平面が前記円柱状コライダの側線と密着する場合に、前記仮想オブジェクトに対応する前記円柱状コライダから前記第1のバイナリ空間分割コライダの前記平面までの最短距離は前記円柱状コライダの半径であると判定するステップと、
前記第1のバイナリ空間分割コライダの平面が前記円柱状コライダの点と密着する場合に、前記円柱状コライダの半径および半分の高さと前記第1のバイナリ空間分割コライダの前記平面の法線ベクトルのX、Y、およびZ座標成分とに従って、前記円柱状コライダから前記第1のバイナリ空間分割コライダの前記平面までの最短距離を取得するステップと
を備える、請求項17に記載の不揮発性コンピュータ可読記憶媒体。
【請求項２４】
前記第1のバイナリ空間分割コライダの軸平行境界ボックスを拡張して外縁の拡張された境界ボックスを生成する前記ステップが、
前記第1のバイナリ空間分割コライダの前記軸平行境界ボックスについて、基準として前記円柱状コライダの中心点を使用することによって前記第1のバイナリ空間分割コライダの前記軸平行境界ボックス全体をスキャンして、前記外縁の拡張された境界ボックスを生成するステップ
を備える、請求項17に記載の不揮発性コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、参照によりその全体が本明細書に組み込まれている、2015年11月30日に中国特許庁に出願した、「METHOD AND APPARATUS FOR COLLISION DETECTION BETWEEN COLLIDERS IN REAL-TIME VIRTUAL SCENE」という題名の中国特許出願第201510860807.7号の優先権を主張するものである。
【０００２】
本開示は、コンピュータアプリケーション分野に関し、より詳細には、リアルタイム仮想シーンにおけるコライダ間の衝突検出のための方法、端末、および不揮発性コンピュータ可読記憶媒体に関する。
【背景技術】
【０００３】
仮想シーンは、コンピュータを使用することによってシミュレーションされたシーン、たとえば、ゲームシーンまたはアニメーションシーン、である。一例としてゲームシーンを使用すると、仮想オブジェクトが障害物に遭遇するとき、仮想オブジェクトは、障害物を迂回する、すなわち障害物との衝突を避ける必要がある。従来の処理方式は、仮想オブジェクトおよび障害物の両方を軸平行境界ボックス(AABB:axis-aligned bounding box)形のコライダに単純化することである。図1に示すように、仮想オブジェクトから単純化されたコライダ110は、壁コーナー120を迂回する必要があり、図に示された移動変更処理によれば、コライダ110は、完全に壁コーナーの外に移動し、壁の下縁に沿ってさらに前に進む必要がある。
【０００４】
しかしながら、コライダ110が、そのような方式で壁コーナーと衝突し、迂回するとき、オペレータは、動作が滑らかでないと感じることがあり、そして、コライダは、それの全身を外へ動かして壁コーナーを迂回するように制御される必要があり、低い移動効率をもたらす。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
これを考慮して、動作の滑らかさを向上させ、移動効率を向上させるために、リアルタイム仮想シーンにおけるコライダ間の衝突検出のための方法を提供することが必要である。
【０００６】
加えて、動作の滑らかさを向上させ、移動効率を向上させるために、端末および不揮発性コンピュータ可読記憶媒体を提供することもまた必要である。
【課題を解決するための手段】
【０００７】
リアルタイム仮想シーンにおけるコライダ間の衝突検出のための方法は、以下のステップを含む:
仮想シーンにおける仮想オブジェクトに対応する円柱状コライダから第1のバイナリ空間分割(BSP:binary space partitioning)コライダの各平面までの最短距離を取得するステップと、
その最短距離に従って第1のBSPコライダの各平面を拡張して第2のBSPコライダを形成するステップと、
第1のBSPコライダのAABBを拡張して、外縁の拡張された境界ボックスを生成するステップと、
生成された外縁の拡張された境界ボックスおよび第2のBSPコライダの交差セットを取得するステップと、
円柱状コライダと外縁の拡張された境界ボックスおよび第2のBSPコライダの交差セットの取得の結果との間の衝突検出を実行するステップ。
【０００８】
端末は、メモリおよびプロセッサを含み、メモリは、コンピュータ可読命令を記憶し、プロセッサが以下のステップを実行するように、命令がプロセッサによって実行される:
仮想シーンにおける仮想オブジェクトに対応する円柱状コライダから第1のBSPコライダの各平面までの最短距離を取得するステップと、
その最短距離に従って第1のBSPコライダの各平面を拡張して第2のBSPコライダを形成するステップと、
第1のBSPコライダのAABBを拡張して、外縁の拡張された境界ボックスを生成するステップと、
生成された外縁の拡張された境界ボックスおよび第2のBSPコライダの交差セットを取得するステップと、
円柱状コライダと外縁の拡張された境界ボックスおよび第2のBSPコライダの交差セットの取得の結果との間の衝突検出を実行するステップ。
【０００９】
1つまたは複数の不揮発性コンピュータ可読記憶媒体が、コンピュータ実行可能命令を含み、コンピュータ実行可能命令は、1つまたは複数のプロセッサによって実行されるときに、以下のステップをプロセッサに実行させる:
仮想シーンにおける仮想オブジェクトに対応する円柱状コライダから第1のBSPコライダの各平面までの最短距離を取得するステップと、
その最短距離に従って第1のBSPコライダの各平面を拡張して第2のBSPコライダを形成するステップと、
第1のBSPコライダのAABBを拡張して、外縁の拡張された境界ボックスを生成するステップと、
生成された外縁の拡張された境界ボックスおよび第2のBSPコライダの交差セットを取得するステップと、
円柱状コライダと外縁の拡張された境界ボックスおよび第2のBSPコライダの交差セットの取得の結果との間の衝突検出を実行するステップ。
【００１０】
本発明の1つまたは複数の実施形態の詳細が、以下の添付の図面および説明において提供される。本開示の付加的特徴、目的、および利点が、本明細書、添付の図面および特許請求の範囲から明らかとなろう。
【００１１】
本発明の実施形態におけるまたは関連技術における技術的解決法をより明確に説明するために、以下に、実施形態または関連技術を説明するために必要とされる添付の図面を簡単に説明する。明らかに、以下の説明にある添付の図面は、本発明のいくつかの実施形態を単に示し、当業者は、これらの添付の図面から創造的努力なしに他の図面をさらに導出し得る。
【図面の簡単な説明】
【００１２】
【図１】リアルタイム仮想シーンにおけるコライダ間の衝突検出の従来のプロセスの概略図である。
【図２】一実施形態によるリアルタイム仮想シーンにおけるコライダ間の衝突検出のための方法および装置の適用環境の概略図である。
【図３Ａ】一実施形態による端末の内部構造の概略図である。
【図３Ｂ】一実施形態によるサーバの内部構造の概略図である。
【図４】一実施形態によるリアルタイム仮想シーンにおけるコライダ間の衝突検出のための方法の流れ図である。
【図５】3本の線によって形成される三角形の概略図である。
【図６】3次元空間内の三角錐によって分割された空間の概略図である。
【図７】一実施形態による円柱状コライダの概略図である。
【図８】円柱状コライダからBSP平面までの最短距離を示す概略的上面図である。
【図９】円柱状コライダからBSPコライダの各平面までの距離と円柱状コライダからBSPコライダまでの実際の距離との差の概略図である。
【図１０】BSPコライダの各平面の拡張の概略図である。
【図１１】第2のBSPコライダに沿った円柱状コライダの移動の概略図である。
【図１２】第2のBSPコライダおよび外縁の拡張された境界ボックスの交差セットの取得の概略図である。
【図１３】円柱状コライダを使用することによる衝突検出の実行の理論的結果の概略図である。
【図１４】一実施形態による外縁の拡張された境界ボックスの四隅へのベベルの追加の概略図である。
【図１５】一実施形態によるリアルタイム仮想シーンにおけるコライダ間の衝突検出のための装置の構造ブロック図である。
【図１６】もう1つの実施形態によるリアルタイム仮想シーンにおけるコライダ間の衝突検出のための装置の構造ブロック図である。
【図１７】もう1つの実施形態によるリアルタイム仮想シーンにおけるコライダ間の衝突検出のための装置の構造ブロック図である。
【発明を実施するための形態】
【００１３】
本開示の目的、技術的解決法、および利点をより明らかで分かりやすくするために、以下ではさらに、添付の図面および実施形態を参照して本開示を詳しく説明する。本明細書に記載される特定の実施形態は、本開示を説明することを単に意図されており、本開示を限定することは意図されていないことを理解されたい。
【００１４】
図2は、一実施形態によるリアルタイム仮想シーンにおけるコライダ間の衝突検出のための方法および装置の適用環境の概略図である。図2に示すように、適用環境は、端末210およびサーバ220を含む。複数の端末210が存在し得る。複数の端末210は、サーバ220と通信する。リアルタイム仮想シーンにおけるコライダ間の衝突検出のための方法は、端末210で実行し得る。端末210は、サーバ220から仮想シーンに関するデータを取得し、仮想シーンにおいて第1のBSPコライダおよび仮想オブジェクトに対応する円柱状コライダを取得し、第1のBSPコライダと円柱状コライダとの間の衝突検出を実行する。リアルタイム仮想シーンは、リアルタイムのゲームシーンまたはリアルタイムのアニメーションシーンなどでもよい。仮想オブジェクトは、人または物質でもよい。第1のBSPコライダは、人または物質などでもよい。
【００１５】
図3Aは、一実施形態による端末210の内部構造の概略図である。図3Aに示すように、端末210は、システムバスを使用することによって接続された、プロセッサ、記憶媒体、メモリ、ネットワークインターフェース、収音装置、表示画面、スピーカ、および入力装置を含む。端末の記憶媒体は、オペレーティングシステムを記憶し、リアルタイム仮想シーンにおけるコライダ間の衝突検出のための装置をさらに含む。リアルタイム仮想シーンにおけるコライダ間の衝突検出のための装置は、リアルタイム仮想シーンにおけるコライダ間の衝突検出のための方法を実装するように構成される。プロセッサは、端末全体の実行をサポートするために、計算および制御能力を提供するように構成される。端末内のメモリは、記憶媒体内のリアルタイム仮想シーンにおけるコライダ間の衝突検出のための装置のための実行環境を提供する。ネットワークインターフェースは、サーバとのネットワーク通信を実行する、たとえば、サーバにデータ要求を送るおよびサーバから返された対応するデータを受信する、ように構成される。端末の表示画面は、液晶表示画面または電子インク表示画面などでもよい。入力装置は、表示画面を覆うタッチ層でもよく、あるいは端末収容箱に配置されたボタン、トラックボール、またはタッチパッド、あるいは、外部キーボード、タッチパッド、またはマウスなどでもよい。端末は、携帯電話、デスクトップコンピュータ、タブレットコンピュータ、または携帯情報端末などでもよい。図3Aに示される構造は、単に、本出願の解決法に関連する構造部分であり、本出願の解決法が適用される端末の制限にはならず、特定の端末は、図に示されるものより多数または少数の構成要素を含み得る、あるいは、いくつかの構成要素が結合され得る、あるいは、異なる構成要素配置が使用され得ることが、当業者には理解されよう。
【００１６】
図3Bは、一実施形態によるサーバ220の内部構造の概略図である。図3Bに示すように、サーバは、システムバスを使用することによって接続された、プロセッサ、記憶媒体、メモリ、ネットワークインターフェース、表示画面、および入力装置を含む。サーバの記憶媒体は、オペレーティングシステム、データベース、およびリアルタイム仮想シーンにおけるコライダ間の衝突検出のための装置を記憶する。データベースは、仮想シーンに関するデータを記憶する。リアルタイム仮想シーンにおけるコライダ間の衝突検出のための装置は、サーバに適用可能な、リアルタイム仮想シーンにおけるコライダ間の衝突検出のための方法を実装するように構成される。サーバのプロセッサは、サーバ全体の実行をサポートするために、計算および制御能力を提供するように構成される。サーバのメモリは、記憶媒体内のリアルタイム仮想シーンにおけるコライダ間の衝突検出のための装置のための実行環境を提供する。サーバの表示画面は、液晶表示画面または電子インク表示画面などでもよい。入力装置は、表示画面を覆うタッチ層でもよく、あるいはサーバ収容箱に配置されたボタン、トラックボール、またはタッチパッドでもよく、あるいは、外部キーボード、タッチパッド、またはマウスなどでもよい。サーバのネットワークインターフェースは、ネットワーク接続を使用することによって外部端末と通信する、たとえば、端末によって送られたデータ交換要求を受信し、端末にデータを返す、ように構成される。サーバは、独立型サーバ、または、複数のサーバを含むサーバクラスタでもよい。図3Bに示される構造は、単に、本出願の解決法に関係する構造部分であり、本出願の解決法が適用されるサーバの制限にはならず、特定のサーバは、図に示されたものより多数または少数の構成要素を含み得る、あるいは、いくつかの構成要素が結合され得る、あるいは、異なる構成要素配置が使用され得ることが、当業者には理解されよう。
【００１７】
もう1つの適用環境では、端末210またはサーバ220のみが存在し得る。すなわち、リアルタイム仮想シーンにおけるコライダ間の衝突検出のための方法は、端末またはサーバのみで実行する必要があり得る。たとえば、仮想オブジェクトは、スタンドアロンのリアルタイムのゲームシーンまたはリアルタイムのアニメーションシーンにおいて移動する。ユーザが、ダウンロードされたスタンドアロンのゲームを端末で実行する、または、テスト担当者が、スタンドアロンのゲームをサーバでテストする。
【００１８】
プレーヤが制御する仮想キャラクタおよびいくつかの他の移動する物質(たとえば、手りゅう弾およびカメラ)は、仮想シーン内のアクタタイプおよびそのサブタイプのオブジェクトとしてすべて表される。したがって、コライダ間の衝突検出を円滑にするために、衝突検出は、軸合わせを用いて実行される。仮想キャラクタのコライダを変更するために、アクタタイプは、仮想キャラクタが円柱状コライダを使用し、非キャラクタアクタが衝突検出のためのAABBを使用するように、修正される。仮想シーンでは、シーンオブジェクトは、主に、2つのタイプから成り、すなわち、BSPシーンオブジェクトおよび構成要素シーンオブジェクトを含む。異なるシーンオブジェクトは分類および記憶される、すなわち、オブジェクトはBSPまたは構成要素として分類される。衝突検出の間、衝突検出エントリポイント関数Uworld::MoveActor()が、使用されて、シーンオブジェクトタイプに従って粗いテーラリングを実行し、そのタイプのどのオブジェクトが、導入されたアクタオブジェクトコライダと衝突し得るかを決定し、次いで、返される結果を取得するために細かい衝突検出を実行する。粗いテーラリングは、粗い衝突を意味する。細かい衝突検出は、リアルタイム仮想シーンにおけるコライダ間の衝突検出のための以下の方法による円柱状コライダとBSPコライダ(すなわち、BSPシーンオブジェクト)との間の細かい衝突検出の実装を意味する。衝突検出が終了した後、一連のチェック関数が、衝突検出結果を要約し、その結果をその後の計算、たとえば、状態変更または損害計算、のためのさらなる集計のためにUworld::MoveActor()に転送するために、使用される。BSPシーンオブジェクトについては、AABBではなくて円柱が、MoveActor()に導入されるコライダとして使用される。リアルタイム仮想シーンは、リアルタイムのゲームシーン、リアルタイムのアニメーションシーンなどを含み得る。本開示は、それに限定されない。
【００１９】
図4は、一実施形態によるリアルタイム仮想シーンにおけるコライダ間の衝突検出のための方法の流れ図である。図4に示すように、図2の適用環境において実行する、リアルタイム仮想シーンにおけるコライダ間の衝突検出のための方法は、以下のステップを含む。
【００２０】
ステップ402。仮想シーンにおける仮想オブジェクトに対応する円柱状コライダから第1のBSPコライダの各平面までの最短距離を取得する。
【００２１】
この実施形態では、先ず、BSP方法が、面を使用して形を作ることによって、空間を「内面」および「外面」に分割するために使用される。いくつかの平面が、空間をいくつかの凸体に分割するために使用され、次いで、凸体は、ブール演算を使用することによって、複雑な形に結合され得る。CylinderPushOut()関数が、円柱状コライダからBSPコライダの平面までの最短距離を測定するために使用される。
【００２２】
リアルタイム仮想シーンは、リアルタイムのゲームシーンまたはリアルタイムのアニメーションシーンなどである。リアルタイムのゲームシーンは、現在実行しているゲーム内のシーンを意味する。リアルタイムのアニメーションシーンは、現在実行しているアニメーション内のシーンを意味する。衝突検出は、衝突がコライダの間で生じるかどうかを検出することを意味する。衝突応答は、衝突が生じた後に、すなわち1つのコライダが別のコライダと衝突した後に、生成され、その1つのコライダは、元の移動方向に沿って移動し続けることはできず、その1つのコライダの移動方向は、別のコライダを迂回するように調整される。別法として、1つのコライダが別のコライダをヒットし、ヒット応答が生成される。この実施形態では、衝突検出は、主に、1つのコライダと別のコライダとの衝突を回避することと、1つのコライダの移動方向を調整して別のコライダを迂回することとを意味する。
【００２３】
図5は、3本の線によって形成された三角形の概略図である。図5に示すように、右側の3本の線によって分割された空間は、左側の三角形によって分割された空間を使用することによって取得され、すなわち、右側の3本の線の「内側」は、三角形のエリアを形成し、平面を使用する空間分割の状況が、3次元空間において三角形のエリアを拡張することによって、取得され得る。
【００２４】
図6は、3次元空間において三角錐によって分割された空間の概略図である。図6に示すように、空間は、三角錐の内側のエリアと三角錐の外側のエリアとに三角錐によって分割される。
【００２５】
第1のBSPコライダは、BSPを用いて分割された空間であり、第1のBSPコライダの平面は、BSPを用いて分割された空間の表面である。
【００２６】
仮想オブジェクトは、仮想シーンにおいて移動し得る人または物質でもよい。仮想オブジェクトは、円柱状コライダに構成される。コライダは、衝突が物質の間に生じるかどうかを計算するために使用される物質、すなわち、衝突アルゴリズム計算に実際に関わる物質、である。コライダのサイズは、仮想シーン内の仮想オブジェクトのサイズに従って、セットされ得る。たとえば、仮想オブジェクトは球体であり、仮想オブジェクトに対応する円柱状コライダの高さは、球体の直径としてセットされ得、円柱状コライダの半径は、その球体の半径よりわずかに大きくなるようにセットされ得る。垂直円柱を使用して計算されるコライダからBSP平面までの距離は、AABBを使用するのより短く、効果は、より自然である。したがって、仮想オブジェクトに対応する円柱状コライダは確実に垂直円柱である(ワールド座標系において)と想定される。AABBは、その縁がすべて座標軸と平行である境界ボックスを意味する。
【００２７】
BSPシーンオブジェクトについて、円柱状コライダから第1のBSPコライダの平面までの最短距離が先ず、測定される。その最短距離は、円柱状コライダがその平面にちょうど接触する(すなわち、平面が円柱状コライダを支持する)ときの円柱状コライダの中心点から平面までの距離である。すなわち、仮想オブジェクトに対応する円柱状コライダから第1のBSPコライダの各平面までの最短距離は、仮想オブジェクトに対応する円柱状コライダが第1のBSPコライダの平面に接触するときの円柱状コライダの中心点から接触された第1のBSPコライダの平面までの距離である。本明細書では、平面は、任意の平面でよく、平面は、円柱状コライダの線に密着し得る、または1点のみを支持し得ることに留意されたい。
【００２８】
仮想シーンにおける仮想オブジェクトに対応する円柱状コライダから第1のBSPコライダの各平面までの最短距離を取得するステップは、以下を含む:
仮想オブジェクトに対応する円柱状コライダの軸方向が第1のBSPコライダの平面と平行であり、第1のBSPコライダの平面が円柱状コライダの側線と密着する場合に、仮想オブジェクトに対応する円柱状コライダから第1のBSPコライダの平面までの最短距離が円柱状コライダの半径であると判定するステップと、
第1のBSPコライダの平面が円柱状コライダの点と密着する場合に、円柱状コライダの半径および半分の高さと第1のBSPコライダの平面の法線ベクトルのX、Y、およびZ座標成分とに従って、円柱状コライダから第1のBSPコライダの平面までの最短距離を取得するステップ。
【００２９】
具体的には、円柱状コライダの半径および半分の高さと第1のBSPコライダの平面の法線ベクトルのX、Y、およびZ座標成分とに従って円柱状コライダから第1のBSPコライダの平面までの最短距離を取得するための計算式は:以下の式(1)に示すように、法線ベクトルのXおよびY座標成分の平方根と円柱状コライダの半径との積を先ず取得することと、円柱状コライダの半分の高さと法線ベクトルのZ座標成分の絶対値との積を次いで取得することと、2つの積の和を最後に取得すること:
【００３０】
【数１】
0006480607.tif 000002
【００３１】
式(1)では、Sは円柱状コライダから第1のBSPコライダの平面までの最短距離であり、Rは円柱状コライダの半径であり、x、y、およびzは、X、Y、およびZ座標系における平面の法線ベクトルの3つの座標成分であり、Hは円柱状コライダの半分の高さであり、そして、|z|は法線ベクトルのz成分の絶対値である。
【００３２】
図7は、一実施形態による円柱状コライダの概略図である。図7に示すように、円柱タイプは垂直円柱を表すために使用され、その円柱タイプにおいて、横線72は半径を表すために使用され、縦線74は高さを表すために使用され、その値は半分の高さ(すなわち、円柱状コライダの高さの値の半分)である。
【００３３】
図8は、円柱状コライダからBSP平面までの最短距離を示す概略的上面図である。図8に示すように、円柱状コライダは、上から見ると円であり、円の中心からBSP辺までの垂直線分(平面は、上から見ると辺である)は、円柱からBSP平面までの距離である。円柱がBSP平面とちょうど接触するときに取得される距離は、最短距離である。実際の3次元状況では、円柱状コライダの軸方向が、BSP平面と完全に平行である場合、その平面は、円柱状コライダに密着する側線であり、この状況において、円柱状コライダの半径は、円柱状コライダからBSP平面までの距離である。他の状況において、平面は、円柱状コライダの点と密着する。円柱状コライダは、常に真っすぐに立ち、その半径は半径Rであり、高さの半分はHであり、平面の法線ベクトルはNであり(平面の基底ベクトルは、円柱状コライダの座標空間基底ベクトルと同じである)、そして、法線ベクトルのX、Y、およびZ座標軸の3つの成分、[x,y,z]であると想定される。次いで、円柱状コライダの中心からBSP平面までの最短距離が、式(1)を使用することによって、計算される。
【００３４】
図9は、円柱状コライダからBSPコライダの各平面までの距離と円柱状コライダからBSPコライダまでの実際の距離との差の概略図である。図9に示すように、円柱状コライダからBSP水平平面までの最短距離は、92によって表され、円柱状コライダからBSP垂直平面までの最短距離は、94によって表される。円柱について、円柱から各平面までの距離が計算され得るとしても、円柱からBSPコライダの平面の間の角までの実際の距離、すなわち図中の斜線96、はやはり計算され得ない。
【００３５】
ステップ404。最短距離に従って第1のBSPコライダの各平面を拡張して第2のBSPコライダを形成する。
【００３６】
この実施形態では、円柱状コライダは、点(すなわち、中心点)まで縮小され、BSPコライダ(第1のBSPコライダ)の各平面は、円柱状コライダから平面までの最短距離を拡張の長さとして拡張されて、新しいBSPコライダ、すなわち第2のBSPコライダ、を形成する。
【００３７】
図10は、BSPコライダの各平面の拡張の概略図である。図10に示すように、第1のBSPコライダ1002の各平面は、円柱状コライダから平面までの最短距離を拡張距離として拡張され、第2のBSPコライダ1004が、拡張の後に形成され、図中の1006は、円柱状コライダである。
【００３８】
図11は、第2のBSPコライダに沿った円柱状コライダの移動の概略図である。図11に示すように、点に縮小された後、拡張の後に取得されたBSPコライダに沿って移動するとき、円柱状コライダは、鋭角より遠くまで進んで曲がる必要がある。
【００３９】
ステップ406。第1のBSPコライダのAABBを拡張して外縁の拡張された境界ボックスを生成する。
【００４０】
この実施形態では、第1のBSPコライダのAABBを拡張して外縁の拡張された境界ボックスを生成するステップは、以下を含む:第1のBSPコライダのAABBについて、基準として円柱状コライダの中心点を使用することによって第1のBSPコライダのAABB全体をスキャンして、外縁の拡張された境界ボックスを生成する。
【００４１】
ステップ408。生成された外縁の拡張された境界ボックスおよび第2のBSPコライダの交差セットを取得する。
【００４２】
図12は、第2のBSPコライダおよび外縁の拡張された境界ボックスの交差セットの取得の概略図である。図12に示すように、円柱状コライダが、BSPコライダの周りをより自然に移動することができ、距離が減らされるように、BSPコライダのAABB1202が、基準として使用され、スキャンされ、拡張されて、外縁の拡張された境界ボックス1204を生成し、次いで、外縁の拡張された境界ボックスおよび第2のBSPコライダ1206の交差セットが、取得される。
【００４３】
ステップ410。円柱状コライダと外縁の拡張された境界ボックスおよび第2のBSPコライダの交差セットの取得の結果との間の衝突検出を実行する。
【００４４】
具体的には、円柱状コライダと第1のBSPコライダとの間の衝突検出が、円柱状コライダと交差セットとの間の衝突検出を実行することによって、実装される。
【００４５】
リアルタイム仮想シーンにおけるコライダ間の衝突検出のための方法において、第1のBSPコライダの各平面は、第2のBSPコライダを取得するために、最短距離に従って拡張され、拡張が、外縁の拡張された境界ボックスを取得するために、基準として円柱状コライダの中心点を使用することによって第1のBSPコライダについて実行され、第2のBSPコライダと外縁の拡張された境界ボックスとの交差セットが取得され、円柱状コライダと第1のBSPコライダとの間の衝突検出が、円柱状コライダと交差セットとの間の衝突を用いて実装される。衝突検出は、2つのコライダの間の衝突を避けるために実行される。2つのAABBに基づくコライダ間の従来の衝突検出と比較して、円柱状コライダと第1のBSPコライダのAABBとの間の衝突検出の間、仮想オブジェクトは、AABBが行うように第1のBSPコライダのコーナーを迂回するためにそれの全身を外へ移動させるように制御される必要はなく、円柱状コライダは、コーナーをスムーズに迂回することができる、すなわち、コーナーは、より短い距離を移動することによって迂回され得る。これは、移動距離を減らし、同移動速度での移動効率を向上させ、スムーズな移動によるより滑らかな動作を実装する。
【００４６】
図13は、円柱状コライダおよび本開示における衝突検出の理論的結果を使用することによって従来のアルゴリズムを使用して衝突検出を実行することの効果の概略図である。図13に示すように、左図は、衝突検出が、円柱状コライダを使用することによって、従来のアルゴリズムに従って実行されることを示し、その中で、円柱状コライダは、やはりそれの全身を外に移動させて黒いコライダの下縁に沿って移動する必要があることを示し、右図は、円柱状コライダおよびリアルタイム仮想シーンにおけるコライダ間の衝突検出のための前述の方法が使用された後に達成され得る理論的結果を示し、その中で、円柱状コライダは、移動プロセスにおいてより短い距離を移動し、移動効率は高く、動作は滑らかである。一実施形態では、リアルタイム仮想シーンにおけるコライダ間の衝突検出のための方法は、以下をさらに含む:第1のBSPコライダのAABBを拡張して外縁の拡張された境界ボックスを生成するステップの後に、外縁の拡張された境界ボックスの四隅の各々にベベルを追加するステップ。
【００４７】
第1のBSPコライダにおけるおよび外縁の拡張された境界ボックスのベベルに対応する平面交差線からベベルまでの距離は、円柱状コライダの半径である。
【００４８】
次いで、交差セットもまたベベルを有し、丸角が、円柱状コライダがコーナーを迂回するためにそれをより便利にし、さらに距離を減らし、移動効率を向上させることができる、ベベルを使用することによってシミュレーションされるように、ベベルが、外縁の拡張された境界ボックスの四隅に追加され、外縁の拡張された境界ボックスと第2のBSPコライダとの交差セットが、取得される。
【００４９】
図14は、一実施形態による外縁の拡張された境界ボックスの四隅へのベベルの追加の概略図である。図14に示すように、ベベルが、面取りした表面として外縁の拡張された境界ボックスの四隅に追加される、すなわち、外縁の拡張された境界ボックスの四隅にある直角がカットされてベベルを形成する。直角がカットされるとき、カットされた部分の投影によって平面に形成される三角形の鋭角は、45度である。
【００５０】
一実施形態では、リアルタイム仮想シーンにおけるコライダ間の衝突検出のための方法は、以下をさらに含む:第1のBSPコライダのAABBを拡張して外縁の拡張された境界ボックスを生成するステップの後に、外縁の拡張された境界ボックスの四隅の各々にキャンバ面を追加するステップ。
【００５１】
第1のBSPコライダにおけるおよび外縁の拡張された境界ボックスのキャンバ面に対応する平面交差線からキャンバ面までの最短距離は、円柱状コライダの半径である。
【００５２】
交差セットもまたキャンバ面を有するように、キャンバ面が、外縁の拡張された境界ボックスの四隅に追加され、次いで、外縁の拡張された境界ボックスと第2のBSPコライダとの交差セットが、取得される。キャンバ面は、円柱状コライダによりよく適合し、それを円柱状コライダがコーナーを迂回するのにより便利にし、さらに距離を減らし、移動効率を向上させることができる。
【００５３】
リアルタイム仮想シーンにおけるコライダ間の衝突検出のための方法の実装プロセスが、特定の適用シーンを使用することによって説明される。リアルタイムのゲームシーンが、一例として使用され、円柱状コライダは仮想キャラクタであり、第1のBSPコライダは壁である。図14を参照すると、円は、円柱状コライダの2次元の投影であり、三角形は、第1のBSPコライダの2次元の投影である。衝突検出プロセスは、以下を含む:
(1)リアルタイムのゲームシーンにおける仮想キャラクタに対応する円柱状コライダから第1のBSPコライダの各平面までの最短距離を取得するステップと、
(2)その最短距離に従って第1のBSPコライダの各平面を拡張して第2のBSPコライダを形成するステップと、
(3)第1のBSPコライダのAABBを拡張して外縁の拡張された境界ボックスを生成するステップ、および、外縁の拡張された境界ボックスの四隅の各々にキャンバ面を追加するステップと、
(4)生成された外縁の拡張された境界ボックスおよび第2のBSPコライダの交差セットを取得するステップと、
(5)円柱状コライダと外縁の拡張された境界ボックスおよび第2のBSPコライダの交差セットの取得の結果との間の衝突検出を実行するステップ。
【００５４】
衝突検出は、衝突がコライダの間で生じるかどうかを検出することを意味する。衝突が生じるとき、円柱状コライダの元の移動方向は、第2のBSPコライダを迂回するために、調整される。
【００５５】
円柱状コライダの移動経路が、図14に示すように、円柱状コライダの投影された円と外縁の拡張された境界ボックスおよび第2のBSPコライダの交差セットとの間の衝突検出を実行することによって、取得され得る。
【００５６】
図15は、一実施形態によるリアルタイム仮想シーンにおけるコライダ間の衝突検出のための装置の構造ブロック図である。図15のリアルタイム仮想シーンにおけるコライダ間の衝突検出のための装置は、図4におけるリアルタイム仮想シーンにおけるコライダ間の衝突検出のための方法を実装するために構築された機能的アーキテクチャである。機能モジュールの分割は、この実施形態において説明されるものに限定されず、別の形で実装され得る。図15に示すように、リアルタイム仮想シーンにおけるコライダ間の衝突検出のための装置は、距離取得モジュール1510、拡張モジュール1520、生成モジュール1530、値取得モジュール1540、および衝突検出モジュール1550を含む。
【００５７】
距離取得モジュール1510は、仮想シーンにおける仮想オブジェクトに対応する円柱状コライダから第1のBSPコライダの各平面までの最短距離を取得するように構成される。
【００５８】
この実施形態では、先ず、BSP方法が、面を使用して形を作ることによって空間を「内面」および「外面」に分割するために使用される。いくつかの平面が、空間をいくつかの凸体に分割するために使用され、次いで、凸体は、ブール演算を使用することによって複雑な形に結合され得る。
【００５９】
第1のBSPコライダは、BSPを用いて分割された空間であり、第1のBSPコライダの平面は、BSPを用いて分割された空間の表面である。
【００６０】
仮想オブジェクトは、仮想シーンにおいて移動し得る人または物質でもよい。仮想オブジェクトは、円柱状コライダに構成される。コライダは、衝突が物質の間に生じるかどうかを計算するために使用される物質、すなわち、衝突アルゴリズム計算に実際に関わる物質、である。
【００６１】
仮想オブジェクトに対応する円柱状コライダから第1のBSPコライダの各平面までの最短距離は、仮想オブジェクトに対応する円柱状コライダが第1のBSPコライダの平面に接触するとき、円柱状コライダの中心点から第1のBSPコライダの接触された面までの距離である。
【００６２】
この実施形態では、距離取得モジュール1510はさらに、以下を行うように構成される:仮想オブジェクトに対応する円柱状コライダの軸方向が第1のBSPコライダの平面と平行であり、第1のBSPコライダの平面が円柱状コライダの側線と密着する場合に、仮想オブジェクトに対応する円柱状コライダから第1のBSPコライダの平面までの最短距離は円柱状コライダの半径であると判定することと、
第1のBSPコライダの平面が円柱状コライダの点と密着する場合に、円柱状コライダの半径および半分の高さと第1のBSPコライダの平面の法線ベクトルのX、Y、およびZ座標成分に従って円柱状コライダから第1のBSPコライダの平面までの最短距離を取得すること。
【００６３】
具体的には、円柱状コライダの半径および半分の高さと第1のBSPコライダの平面の法線ベクトルのX、Y、およびZ座標成分に従って円柱状コライダから第1のBSPコライダの平面までの最短距離を取得するための計算式は:以下の式(1)において示されるように、先ず、法線ベクトルのXおよびY座標成分の平方根と円柱状コライダの半径との積を取得することと、円柱状コライダの半分の高さと法線ベクトルのZ座標成分の絶対値との積を次いで取得することと、それらの2つの積の和を最後に取得することである:
【００６４】
【数２】
0006480607.tif 000003
【００６５】
式(1)において、Sは、円柱状コライダから第1のBSPコライダの平面までの最短距離であり、Rは、円柱状コライダの半径であり、x、y、およびzは、X、Y、およびZ座標系における平面の法線ベクトルの3つの座標成分であり、Hは、円柱状コライダの半分の高さであり、|z|は、法線ベクトルのz成分の絶対値である。
【００６６】
拡張モジュール1520は、最短距離に従って第1のBSPコライダの各平面を拡張して第2のBSPコライダを形成するように構成される。
【００６７】
この実施形態では、円柱状コライダは、点(すなわち、中心点)に縮小され、BSPコライダ(第1のBSPコライダ)の各平面は、円柱状コライダから平面までの最短距離を拡張の長さとして拡張されて、新しいBSPコライダ、すなわち第2のBSPコライダ、を形成する。
【００６８】
生成モジュール1530は、第1のBSPコライダのAABBを拡張して外縁の拡張された境界ボックスを生成するように構成される。
【００６９】
具体的には、生成モジュール1530はさらに、以下を行うように構成される:第1のBSPコライダのAABBについて、基準として円柱状コライダの中心点を使用することによって第1のBSPコライダのAABB全体をスキャンして、外縁の拡張された境界ボックスを生成すること。
【００７０】
値取得モジュール1540は、生成された外縁の拡張された境界ボックスおよび第2のBSPコライダの交差セットを取得するように構成される。
【００７１】
衝突検出モジュール1550は、円柱状コライダと外縁の拡張された境界ボックスおよび第2のBSPコライダの交差セットの取得の結果との間の衝突検出を実行するように構成される。
【００７２】
具体的には、円柱状コライダと第1のBSPコライダとの間の衝突検出が、円柱状コライダと交差セットとの間の衝突を用いて実装される。
【００７３】
リアルタイム仮想シーンにおけるコライダ間の衝突検出のための装置において、第1のBSPコライダの各平面は、第2のBSPコライダを取得するために、最短距離に従って拡張され、拡張が、外縁の拡張された境界ボックスを取得するために、基準として円柱状コライダの中心点を使用することによって第1のBSPコライダについて実行され、第2のBSPコライダと外縁の拡張された境界ボックスとの交差セットが取得され、円柱状コライダと第1のBSPコライダとの間の衝突検出が、円柱状コライダと交差セットとの間の衝突を用いて実装される。衝突検出は、コライダ間の衝突を避けるために実行される。2つのAABBに基づくコライダ間の従来の衝突検出と比較して、円柱状コライダと第1のBSPコライダのAABBとの間の衝突検出の間、仮想オブジェクトは、AABBが行うように第1のBSPコライダのコーナーを迂回するためにそれの全身を外へ移動させるように制御される必要はなく、円柱状コライダは、コーナーをスムーズに迂回することができる、すなわち、コーナーは、より短い距離を移動することによって迂回され得る。これは、移動距離を減らし、同移動速度での移動効率を向上させ、スムーズな移動によるより滑らかな動作を実装する。
【００７４】
図16は、一実施形態によるリアルタイム仮想シーンにおけるコライダ間の衝突検出のための装置の構造ブロック図である。図16に示すように、リアルタイム仮想シーンにおけるコライダ間の衝突検出のための装置は、距離取得モジュール1510、拡張モジュール1520、生成モジュール1530、値取得モジュール1540、および衝突検出モジュール1550を含み、カットモジュール1560をさらに含む。
【００７５】
カットモジュール1560は、以下を行うように構成される:第1のBSPコライダのAABBが、外縁の拡張された境界ボックスを生成するために拡張された後に、外縁の拡張された境界ボックスの四隅の各々にベベルを追加すること。
【００７６】
第1のBSPコライダにおけるおよび外縁の拡張された境界ボックスのベベルに対応する平面交差線からベベルまでの距離は、円柱状コライダの半径である。
【００７７】
交差セットもまたベベルを有し、丸角が、それを円柱状コライダがコーナーを迂回するのにより便利にし、さらに距離を減らし、移動効率を向上させることができる、ベベルを使用することによってシミュレーションされるように、ベベルが、外縁の拡張された境界ボックスの四隅に追加され、次いで、外縁の拡張された境界ボックスと第2のBSPコライダとの交差セットが、取得される。
【００７８】
図17は、もう1つの実施形態によるリアルタイム仮想シーンにおけるコライダ間の衝突検出のための装置の構造ブロック図である。図17に示すように、リアルタイム仮想シーンにおけるコライダ間の衝突検出のための装置は、距離取得モジュール1510、拡張モジュール1520、生成モジュール1530、値取得モジュール1540、および衝突検出モジュール1550を含み、分割モジュール1570をさらに含む。
【００７９】
分割モジュール1570は、以下を行うように構成される:第1のBSPコライダのAABBが、外縁の拡張された境界ボックスを生成するために拡張された後に、キャンバ面を外縁の拡張された境界ボックスの四隅の各々に追加すること。
【００８０】
第1のBSPコライダにおけるおよび外縁の拡張された境界ボックスのキャンバ面に対応する平面交差線からキャンバ面までの最短距離は、円柱状コライダの半径である。
【００８１】
交差セットもまたキャンバ面を有するように、キャンバ面が、外縁の拡張された境界ボックスの四隅に追加され、次いで、外縁の拡張された境界ボックスと第2のBSPコライダとの交差セットが、取得される。キャンバ面は、円柱状コライダによりよく適合し、それを円柱状コライダがコーナーを迂回するのにより便利にし、さらに距離を減らし、移動効率を向上させることができる。
【００８２】
前述の実施形態における本方法のプロセスのすべてまたはいくつかは、関連ハードウェアに指示するコンピュータプログラムによって実装され得ることが、当業者には理解されよう。プログラムは、不揮発性コンピュータ可読記憶媒体に記憶され得る。プログラムが実行されるとき、前述の方法の実施形態のプロセスが、実行され得る。記憶媒体は、磁気ディスク、光ディスク、読み取り専用メモリ(ROM)などでもよい。
【００８３】
記載された実施形態は、単に、具体的で詳細な、本発明のいくつかの実施形態である。しかしながら、それは、本開示の特許の範囲の制限として理解されるべきではない。当業者は、本開示の概念を逸脱することなくいくつかの変更または改良をさらに行い得、それらの変更および改良は、本開示の保護範囲に属することに留意されたい。したがって、本開示の保護範囲は、添付の特許請求の範囲の保護範囲に従うものとする。
【符号の説明】
【００８４】
92  円柱状コライダからBSP水平面までの最短距離
94  円柱状コライダからBSP垂直面までの最短距離
96  円柱からBSPコライダの平面の間の角までの実際の距離
110  コライダ
120  壁コーナー
210  端末
220  サーバ
1002  第1のBSPコライダ
1004  第2のBSPコライダ
1006  円柱状コライダ
1510  距離取得モジュール
1520  拡張モジュール
1530  生成モジュール
1540  値取得モジュール
1550  衝突検出モジュール
1560  カットモジュール
1570  分割モジュール
【図１】
0006480607.tif 000004
【図２】
0006480607.tif 000005
【図３Ａ】
0006480607.tif 000006
【図３Ｂ】
0006480607.tif 000007
【図４】
0006480607.tif 000008
【図５】
0006480607.tif 000009
【図６】
0006480607.tif 000010
【図７】
0006480607.tif 000011
【図８】
0006480607.tif 000012
【図９】
0006480607.tif 000013
【図１０】
0006480607.tif 000014
【図１１】
0006480607.tif 000015
【図１２】
0006480607.tif 000016
【図１３】
0006480607.tif 000017
【図１４】
0006480607.tif 000018
【図１５】
0006480607.tif 000019
【図１６】
0006480607.tif 000020
【図１７】
0006480607.tif 000021