IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ▲騰▼▲訊▼科技(深▲セン▼)有限公司の特許一覧

特表2024-519323衝突データ処理方法、衝突データ処理装置、コンピュータプログラム、及び電子機器
<>
  • 特表-衝突データ処理方法、衝突データ処理装置、コンピュータプログラム、及び電子機器 図1
  • 特表-衝突データ処理方法、衝突データ処理装置、コンピュータプログラム、及び電子機器 図2
  • 特表-衝突データ処理方法、衝突データ処理装置、コンピュータプログラム、及び電子機器 図3
  • 特表-衝突データ処理方法、衝突データ処理装置、コンピュータプログラム、及び電子機器 図4
  • 特表-衝突データ処理方法、衝突データ処理装置、コンピュータプログラム、及び電子機器 図5
  • 特表-衝突データ処理方法、衝突データ処理装置、コンピュータプログラム、及び電子機器 図6
  • 特表-衝突データ処理方法、衝突データ処理装置、コンピュータプログラム、及び電子機器 図7
  • 特表-衝突データ処理方法、衝突データ処理装置、コンピュータプログラム、及び電子機器 図8
  • 特表-衝突データ処理方法、衝突データ処理装置、コンピュータプログラム、及び電子機器 図9
  • 特表-衝突データ処理方法、衝突データ処理装置、コンピュータプログラム、及び電子機器 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-05-10
(54)【発明の名称】衝突データ処理方法、衝突データ処理装置、コンピュータプログラム、及び電子機器
(51)【国際特許分類】
   G06T 19/00 20110101AFI20240501BHJP
【FI】
G06T19/00 C
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023568723
(86)(22)【出願日】2022-06-02
(85)【翻訳文提出日】2023-11-08
(86)【国際出願番号】 CN2022096731
(87)【国際公開番号】W WO2022267855
(87)【国際公開日】2022-12-29
(31)【優先権主張番号】202110694872.2
(32)【優先日】2021-06-22
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ANDROID
2.ブルートゥース
3.iOS
(71)【出願人】
【識別番号】517392436
【氏名又は名称】▲騰▼▲訊▼科技(深▲セン▼)有限公司
【氏名又は名称原語表記】TENCENT TECHNOLOGY (SHENZHEN) COMPANY LIMITED
【住所又は居所原語表記】35/F,Tencent Building,Kejizhongyi Road,Midwest District of Hi-tech Park,Nanshan District, Shenzhen,Guangdong 518057,CHINA
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【弁理士】
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】林 智超
(72)【発明者】
【氏名】郭 袁
(72)【発明者】
【氏名】万 家▲華▼
(72)【発明者】
【氏名】▲陳▼ 志浩
(72)【発明者】
【氏名】秦 学
(72)【発明者】
【氏名】王 磊
【テーマコード(参考)】
5B050
【Fターム(参考)】
5B050BA09
5B050BA13
5B050CA07
5B050CA08
5B050DA10
5B050EA07
5B050EA18
5B050EA28
5B050FA02
5B050FA09
5B050GA08
(57)【要約】
衝突データ処理方法、装置、記憶媒体、プログラム製品、及び電子機器に関する。衝突データ処理方法は、仮想シーンにおける処理対象のターゲット衝突体を決定するステップであって、ターゲット衝突体は、頂点を含む凸多面体である、ステップと、ターゲット衝突体の各頂点間の距離関係を取得するステップであって、距離関係は、前記ターゲット衝突体の形状特徴を表すためのものである、ステップと、距離関係に基づいてターゲット衝突体を規則な立体に変換した場合、規則な立体にマッチしたデータフォーマットでターゲット衝突体の頂点データを変換することにより、ターゲット衝突体の衝突データを取得するステップと、を含む。本願によれば、関連技術における衝突データ処理の操作の難さが大きいことに起因する処理効率が低いという技術的問題が解決される。
【特許請求の範囲】
【請求項1】
電子機器で実行される衝突データ処理方法であって、
仮想シーンにおける処理対象のターゲット衝突体を決定するステップであって、前記ターゲット衝突体は、頂点を含む凸多面体である、ステップと、
前記ターゲット衝突体の各頂点間の距離関係を取得するステップであって、前記距離関係は、前記ターゲット衝突体の形状特徴を表すためのものである、ステップと、
前記距離関係に基づいて前記ターゲット衝突体を規則な立体に変換した場合、前記規則な立体にマッチしたデータフォーマットで前記ターゲット衝突体の頂点データを変換することにより、前記ターゲット衝突体の衝突データを取得するステップと、
を含む方法。
【請求項2】
前記ターゲット衝突体の各頂点間の距離関係を取得するステップは、前記ターゲット衝突体の頂点の数が第1閾値に達した場合、前記ターゲット衝突体の各頂点のそれぞれに接続された複数の辺間の距離関係をそれぞれ取得するステップを含み、
前記規則な立体にマッチしたデータフォーマットで前記ターゲット衝突体の頂点データを変換する前に、前記方法は、前記距離関係によって、前記ターゲット衝突体の1つのターゲット頂点に接続された3つの辺が互いに垂直であることが示された場合、前記ターゲット衝突体を標準的な直方体に変換すると決定するステップであって、前記規則な立体は、前記標準的な直方体を含む、ステップをさらに含む、
請求項1に記載の方法。
【請求項3】
前記規則な立体にマッチしたデータフォーマットで前記ターゲット衝突体の頂点データを変換することにより、前記ターゲット衝突体の衝突データを取得する前に、
前記ターゲット衝突体の各頂点の中から現在の頂点を決定し、前記現在の頂点からの距離が最も近い第1参照点及び第2参照点を決定するステップと、
前記現在の頂点と前記第1参照点との間の第1距離、前記現在の頂点と前記第2参照点との間の第2距離を取得するステップと、
前記第1距離及び前記第2距離に基づいて、第3距離を決定するステップであって、前記第3距離は、直角三角形の斜辺の長さであり、前記直角三角形は、第1距離及び第2距離を直角辺の長さとする、ステップと、
前記ターゲット衝突体の各頂点のうち、前記現在の頂点、前記第1参照頂点、及び前記第2参照点を除く頂点の中から、前記第3距離にしたがって第3参照点を決定するステップであって、前記現在の頂点と前記第3参照点との間の距離は、前記第3距離である、ステップと、
前記第1参照点、前記第2参照点、及び前記第3参照点に基づいて、前記ターゲット衝突体の参照平面を決定するステップと、
前記ターゲット衝突体の各頂点のうち、前記現在の頂点、前記第1参照頂点、前記第2参照点、前記第3参照点を除く頂点の中から、前記現在の頂点からの距離が最も近い第4参照点を決定するステップであって、前記第4参照点と前記現在の頂点とを結ぶ線は、前記参照平面と互いに垂直である、ステップと、
前記現在の頂点を前記ターゲット頂点として決定し、前記第1距離及び前記第2距離、並びに、前記現在の頂点と前記第4参照点との間の第4距離に基づいて、前記標準的な直方体にマッチした有向境界ボックスの収束方向を決定するステップであって、前記頂点データには、前記有向境界ボックスの収束方向の方向ベクトルが含まれる、ステップと、をさらに含む、
請求項2に記載の方法。
【請求項4】
前記ターゲット衝突体の各頂点間の距離関係を取得するステップは、
前記ターゲット衝突体の頂点の数が第1閾値に達した場合、前記ターゲット衝突体の全ての頂点の中心座標点を決定するステップと、
各頂点と前記中心座標点との間の距離関係を取得するステップと、を含み、
前記規則な立体にマッチしたデータフォーマットで前記ターゲット衝突体の頂点データを変換する前に、前記方法は、
前記距離関係によって、前記各頂点と前記中心座標点との間の距離のいずれも第1距離閾値より小さいことが示された場合、前記ターゲット衝突体を参照直方体として認識すると決定するステップであって、前記規則な立体は、前記参照直方体を含み、前記参照直方体は、標準的な直方体の構造と類似する構造である、ステップと、
前記各頂点の前記距離関係に基づいて少なくとも2組の平行面を決定した場合、前記ターゲット衝突体を参照直方体として認識すると決定するステップと、をさらに含む、
請求項1に記載の方法。
【請求項5】
前記ターゲット衝突体を参照直方体として認識すると決定した後、
前記ターゲット衝突体に対応する第1体積値と、前記参照直方体に対応する第2体積値と、を取得するステップと、
前記第1体積値と前記第2体積値との比率を決定するステップと、
前記比率が第2閾値に達した場合、前記ターゲット衝突体を前記参照直方体に変換すると決定するステップと、をさらに含む、
請求項4に記載の方法。
【請求項6】
前記ターゲット衝突体を前記参照直方体に変換すると決定した後、
前記参照直方体に対応する投影平面を決定するステップと、
前記参照直方体の各頂点を前記投影平面にマッピングすることにより、前記各頂点のそれぞれに対応する投影点を取得するステップと、
前記頂点から対応する投影点までの投影距離に基づいて、前記各頂点をグループ化することにより、第1平面頂点セット及び第2平面頂点セットを取得するステップであって、前記第1平面頂点セット内の頂点が第1平面に位置し、前記第2平面頂点セット内の頂点が第2平面に位置する、ステップと、
前記第1平面と前記第2平面が平行である場合、前記第1平面及び前記第2平面に基づいて、前記参照直方体にマッチした有向境界ボックスの収束方向を決定するステップであって、前記頂点データには、前記有向境界ボックスの収束方向の方向ベクトルが含まれる、ステップと、をさらに含む、
請求項5に記載の方法。
【請求項7】
前記ターゲット衝突体を前記参照直方体に変換すると決定した後、
前記参照直方体の幾何学的中心点に対応する前方向ベクトルを決定し、前記前方向ベクトルが含まれる垂直平面を決定するステップと、
前記前方向ベクトルの方向を軸として、前記垂直平面を複数回回転し、毎回の回転後に、
前記参照直方体の各頂点から前記垂直平面までの垂直距離に基づいて、前記各頂点をグループ化することにより、第3平面頂点セット及び第4平面頂点セットを取得するステップであって、前記第3平面頂点セット内の頂点が第3平面に位置し、前記第4平面頂点セット内の頂点が第4平面に位置する、操作と、
前記第3平面と前記第4平面が平行である場合、前記第3平面及び前記第4平面に基づいて、前記参照直方体にマッチした有向境界ボックスの収束方向を決定するステップであって、前記頂点データには、前記有向境界ボックスの収束方向の方向ベクトルが含まれる、操作と、を実行するステップと、をさらに含む、
請求項5に記載の方法。
【請求項8】
前記第1体積値と前記第2体積値との比率を決定した後、
前記比率が前記第2閾値に達していない場合、前記参照直方体の凸面体特徴を抽出するステップであって、前記凸面体特徴には、前記参照直方体に対応する3つの軸方向辺の辺長が含まれ、前記3つの軸方向辺は、前記参照直方体の互いに垂直な辺である、ステップと、
第1軸方向辺の辺長と第3軸方向辺の辺長との第1差、及び、第2軸方向辺の辺長と前記第3軸方向辺の辺長との第2差が両方とも第2距離閾値より大きい場合、前記参照直方体を長い棒タイプの直方体に変換すると決定するステップと、
第1軸方向辺の辺長と第2軸方向辺の辺長との第3差、及び、前記第1軸方向辺の辺長と第3軸方向辺の辺長との第4差が両方とも第3距離閾値より大きい場合、前記参照直方体を屋根タイプの直方体に変換すると決定するステップと、をさらに含む、
請求項5に記載の方法。
【請求項9】
前記各頂点と前記中心座標点との間の距離関係を取得した後、
前記ターゲット衝突体が参照直方体ではないと決定した場合、ターゲット衝突体の幾何学的中心点を取得するステップと、
前記ターゲット衝突体の各頂点と前記幾何学的中心点とを結ぶ線の距離を取得するステップと、
各結ぶ線の距離間の差が第3閾値より小さい場合、前記ターゲット衝突体を円柱体として認識するステップであって、前記規則な立体は、前記円柱体を含む、ステップと、
前記幾何学的中心点の座標と、前記円柱体の半径とに基づいて、前記円柱体の空間関数を構築するステップであって、前記頂点データには、前記円柱体の空間関数が含まれる、ステップと、をさらに含む、
請求項4に記載の方法。
【請求項10】
前記規則な立体にマッチしたデータフォーマットで前記ターゲット衝突体の頂点データを変換することにより、前記ターゲット衝突体の衝突データを取得する前に、
等距離境界ボックスを使用して前記ターゲット衝突体を分解することにより、複数のサブ衝突体を取得するステップと、
前記ターゲット衝突体の各頂点を結ぶ線と、前記複数のサブ衝突体のそれぞれのサブ衝突体との交点を決定するステップと、
各サブ衝突体内の交点に対して順次に収束組み合わせを行うことにより、前記サブ衝突体に対応するサブ境界ボックスを取得するステップと、
各サブ境界ボックスを走査して、サイズの差が第4閾値より小さいサブ境界ボックスを合併することにより、前記ターゲット衝突体に対応する体境界ボックスを取得するステップと、
前記体境界ボックスの頂点データを前記ターゲット衝突体の頂点データとするステップと、をさらに含む、
請求項4又は9に記載の方法。
【請求項11】
前記距離関係に基づいて前記ターゲット衝突体を規則な立体に変換した後、
前記規則な立体に複数の規則なサブ立体が含まれる場合、各前記規則なサブ立体のサイズを決定するステップと、
隣接する2つの規則なサブ立体のサイズの差が第5閾値より小さい場合、前記隣接する2つの規則なサブ立体を合併するステップと、
前記複数の規則なサブ立体のうち、第1規則なサブ立体のサイズと第2規則なサブ立体との差が第6閾値より小さく、かつ、前記第1規則なサブ立体が前記第2規則なサブ立体の内部に位置する場合、前記第1規則なサブ立体を除去するステップと、をさらに含む、
請求項1乃至9のいずれか1項に記載の方法。
【請求項12】
前記規則な立体にマッチしたデータフォーマットで前記ターゲット衝突体の頂点データを変換することにより、前記ターゲット衝突体の衝突データを取得するステップは、
前記規則な立体にマッチした幾何学的な指標のデータフォーマットで前記ターゲット衝突体の頂点データを変換することにより、前記衝突データを取得するステップを含む、
請求項1乃至9のいずれか1項に記載の方法。
【請求項13】
衝突データ処理装置であって、
仮想シーンにおける処理対象のターゲット衝突体を決定する第1決定ユニットであって、前記ターゲット衝突体は、頂点を含む凸多面体である、第1決定ユニットと、
前記ターゲット衝突体の各頂点間の距離関係を取得する第1取得ユニットであって、前記距離関係は、前記ターゲット衝突体の形状特徴を表すためのものである、第1取得ユニットと、
前記距離関係に基づいて前記ターゲット衝突体を規則な立体に変換した場合、前記規則な立体にマッチしたデータフォーマットで前記ターゲット衝突体の頂点データを変換することにより、前記ターゲット衝突体の衝突データを取得する第1処理ユニットと、
を含む装置。
【請求項14】
記憶されたプログラムが含まれるコンピュータ可読記憶媒体であって、前記プログラムは、実行されると、前記請求項1乃至12のいずれか1項に記載の方法を実行させる記憶媒体。
【請求項15】
メモリとプロセッサとを備える電子機器であって、前記メモリには、コンピュータプログラムが記憶されており、前記プロセッサは、前記コンピュータプログラムによって、前記請求項1乃至12のいずれか1項に記載の方法を実行するように構成される、ことを特徴とする電子機器。
【請求項16】
コンピュータ命令を含むコンピュータプログラム製品であって、該コンピュータ命令がコンピュータ可読記憶媒体に記憶されており、プロセッサが該コンピュータ命令を実行すると、プロセッサに請求項1乃至12のいずれか1項に記載の方法を実行させるコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、2021年6月22日に中国特許庁に提出された、出願番号が第202110694872.2号であり、発明の名称が「衝突データ処理方法及び装置、記憶媒体、並びに電子機器」である中国特許出願に基づく優先権を主張し、その全ての内容は参照することにより本願に組み込まれている。
【0002】
本願は、コンピュータ分野に関し、具体的には、衝突データ処理方法、装置、記憶媒体、プログラム製品、及び電子機器に関する。
【背景技術】
【0003】
仮想ゲームシーンでは、異なる仮想オブジェクト間で多くのインタラクティブな動作が発生することが多いため、上記の仮想オブジェクトに対応する衝突体によって生成される衝突データを計算して、その計算結果に応じた仮想オブジェクトの的確な制御を容易にする必要がある。
【0004】
関連技術の衝突データは、通常、グラフィックエンジン(例えば、3dmax)で美術製作を行ってから、ゲームエンジンにインポートされて使用される。このような方式は、美術コストが相対的に高く、精度の高い相対的に簡単な衝突を製作しようとすると、美術コストも一層高くなる。また、モデルのメッシュ(Mesh)を直接使用して衝突とする方式もあり、このような方式は、計算結果の精度が高いものの、モデル内のMeshの頂点の数が多すぎるため、データ計算の消費が大きくなるという問題をもたらす。ここでの消費は、下記の3つを含む。1、仮想ゲームシーンで提供される3次元空間内で立体を探索するための消費:衝突される可能性がある衝突境界ボックスを探索する必要があり、数が少ないほど、消費が低くなる。2、上記立体間の物理的な交点求めの消費:単純な立体であるほど、交点求めの消費が低くなる。3、物理的な使用消費:使用量が少ないほど、消費が低くなる。
【0005】
つまり、関連技術で提供される仮想シーンにおいて衝突が発生する仮想オブジェクトに対する衝突計算に必要な消費が大きい。これにより、仮想オブジェクトに対応する衝突体の衝突データを処理する際の操作の難しさが増加し、その結果、処理効率が低いという問題がある。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本願の実施例は、関連技術における衝突データ処理の操作の難さが大きいことに起因する処理効率が低いという技術的問題の解決に役立つ衝突データ処理方法、装置、記憶媒体、プログラム製品、及び電子機器を提供する。
【課題を解決するための手段】
【0007】
本願の実施例の一態様によれば、電子機器で実行される衝突データ処理方法が提供されている。前記方法は、仮想シーンにおける処理対象のターゲット衝突体を決定するステップであって、上記ターゲット衝突体は、頂点を含む凸多面体である、ステップと、上記ターゲット衝突体の各頂点間の距離関係を取得するステップであって、前記距離関係は、前記ターゲット衝突体の形状特徴を表すためのものである、ステップと、上記距離関係に基づいて上記ターゲット衝突体を規則な立体に変換した場合、上記規則な立体にマッチしたデータフォーマットで上記ターゲット衝突体の頂点データを変換することにより、上記ターゲット衝突体の衝突データを取得するステップと、を含む。
【0008】
本願の実施例の他の態様によれば、衝突データ処理装置がさらに提供されている。前記装置は、仮想シーンにおける処理対象のターゲット衝突体を決定する第1決定ユニットであって、上記ターゲット衝突体は、頂点を含む凸多面体である、第1決定ユニットと、上記ターゲット衝突体の各頂点間の距離関係を取得する第1取得ユニットであって、前記距離関係は、前記ターゲット衝突体の形状特徴を表すためのものである、第1取得ユニットと、上記距離関係に基づいて上記ターゲット衝突体を規則な立体に変換した場合、上記規則な立体にマッチしたデータフォーマットで上記ターゲット衝突体の頂点データを変換することにより、上記ターゲット衝突体の衝突データを取得する第1処理ユニットと、を含む。
【0009】
本願の実施例の別の態様によれば、コンピュータ可読記憶媒体がさらに提供されている。該コンピュータ可読記憶媒体には、コンピュータプログラムが記憶されている。ここで、該コンピュータプログラムは、実行されると、上記の衝突データ処理方法を実行させるように構成される。
【0010】
本願の実施例の別の態様によれば、メモリとプロセッサとを備える電子機器がさらに提供されている。上記メモリには、コンピュータプログラムが記憶されており、上記プロセッサは、前記コンピュータプログラムによって、上記の衝突データ処理方法を実行するように構成される。
【0011】
本願の実施例の別の態様によれば、コンピュータ命令を含むコンピュータプログラム製品がさらに提供されている。該コンピュータ命令がコンピュータ可読記憶媒体に記憶されており、プロセッサが該コンピュータ命令を実行すると、プロセッサに衝突データ処理方法を実行させる。
【図面の簡単な説明】
【0012】
ここで説明する図面は、本願のさらなる理解を提供するためのものであり、本願の一部を構成する。本願の模式的な実施例及びその説明は、本願を解釈するためのものであり、本願の不適切な限定を構成するものではない。図面では、
【0013】
図1】本願の実施例による任意選択的な衝突データ処理方法のハードウェア環境の模式図である。
図2】本願の実施例による任意選択的な衝突データ処理方法のフローチャートである。
図3】本願の実施例による任意選択的な衝突データ処理方法の模式図である。
図4】本願の実施例による他の任意選択的な衝突データ処理方法の模式図である。
図5】本願の実施例による別の任意選択的な衝突データ処理方法の模式図である。
図6】本願の実施例による別の任意選択的な衝突データ処理方法の模式図である。
図7】本願の実施例による別の任意選択的な衝突データ処理方法の模式図である。
図8】本願の実施例による他の任意選択的な衝突データ処理方法のフローチャートである。
図9】本願の実施例による任意選択的な衝突データ処理装置の構成の模式図である。
図10】本願の実施例による任意選択的な電子機器の構成の模式図である。
【発明を実施するための形態】
【0014】
当業者が本願の構成をより良く理解できるようにするために、以下、本願の実施例の図面を参照しながら、本願の実施例の構成を明確かつ完全に説明する。明らかなように、説明する実施例は、本願の一部の実施例に過ぎず、全部の実施例ではない。当業者が創造的な労働をせずに本願の実施例から得る全ての他の実施例は、本願の保護範囲に属すべきである。
【0015】
説明すべきものとして、本願の明細書、特許請求の範囲、及び上記図面における「第1」、「第2」などの用語は、類似の対象を区別するためのものであり、必ずしも特定の順序又は優先順位を説明するために用いられない。理解すべきものとして、このように使用されるデータは、ここで説明される本願の実施例が、ここで図示又は説明されたもの以外の順序で実施できるように、適切な場合には交換可能である。また、用語「含む」、「備える」、及びそれらの任意の変形は、非排他的な包含をカバーすることを意図するものである。例えば、一連のステップ又はユニットを含むプロセス、方法、システム、製品、又は機器は、必ずしも、明示的にリストされたステップ又はユニットに限定されるものではなく、明示的にリストされていない他のステップ又はユニット、あるいは、これらのプロセス、方法、製品、又は機器に固有の他のステップ又はユニットを含んでもよい。
【0016】
本願の実施例の一態様によれば、衝突データ処理方法が提供されている。上記衝突データ処理方法は、図1に示されたようなハードウェア環境における衝突データ処理システムに適用することができるが、これに限定されない。ここで、該衝突データ処理システムは、端末機器102、ネットワーク104、サーバ106、及びデータベース108を含んでもよいが、これらに限定されない。端末機器102では、ターゲットユーザアカウントでログインしたターゲットクライアント(図1に示すように、該ターゲットクライアントは、ゲームクライアントを例とする)が実行されている。上記端末機器102は、ヒューマンコンピュータインタラクションスクリーンと、プロセッサと、メモリと、を備える。ヒューマンコンピュータインタラクションスクリーンは、仮想シーンを表示するとともに(例えば、図1に示された表示インタフェースには、ゲームタスクにおける仮想ゲームシーンが現れる)、仮想オブジェクトを制御するためのヒューマンコンピュータインタラクション操作を受け付けるために、ヒューマンコンピュータインタラクションインタフェースを提供する。該仮想オブジェクトは、それに対して設置されたターゲット衝突体によって、仮想シーンで発生するその物理属性のインタラクションを検出し、即ち、仮想オブジェクトに対応するターゲット衝突体間で衝突が発生するか否かを検出することができるが、これに限定されない。プロセッサは、上記のヒューマンコンピュータインタラクション操作に応答してインタラクション命令を生成し、該インタラクション命令をサーバに送信する。メモリは、仮想オブジェクトの関連属性データを記憶する。
【0017】
また、サーバ106には、処理エンジンが含まれ、処理エンジンは、データベース108に対して記憶又は読み取りの操作を実行する。具体的には、処理エンジンは、距離関係に基づいて、ターゲット衝突体が規則な立体に変換可能であるか否かを決定し、規則な立体に変換可能であると決定した場合、規則な立体にマッチしたデータフォーマットでターゲット衝突体の頂点データを変換してデータベース108に記憶するとともに、衝突計算のために、データベース108から上記の簡素化処理後の衝突データを読み取る。
【0018】
具体的なプロセスは、以下のステップの通りである。ステップS102では、サーバ106が、ネットワーク104を介して、端末機器102で決定された仮想シーンにおける処理対象のターゲット衝突体(図1に示すように、仮想オブジェクトの体の一部分に対応する衝突体であってもよい)100を取得する。ここでのターゲット衝突体は、頂点を含む凸多面体である。次に、ステップS104~S106では、サーバ106が、ターゲット衝突体の各頂点間の距離関係を取得し、距離関係に基づいてターゲット衝突体を規則な立体に変換した場合、該規則な立体にマッチしたデータフォーマットでターゲット衝突体の頂点データを変換することにより、ターゲット衝突体の衝突データを取得する。
【0019】
説明すべきものとして、本実施例では、仮想シーンにおける処理対象のターゲット衝突体を決定した後、該ターゲット衝突体の各頂点間の距離関係を取得する。また、該距離関係に基づいて、ターゲット衝突体が、構造が簡素化された規則な立体に変換可能であるか否かを決定し、規則な立体に変換すると決定した場合、規則な立体にマッチしたデータフォーマットで上記ターゲット衝突体の頂点データを変換することにより、簡素化処理後のターゲット衝突体の衝突データを取得する。これにより、構造が複雑なターゲット衝突体を、構造が簡素化された規則な立体に変換し、規則な立体にマッチしたデータフォーマットで衝突体の衝突データを記憶することが実現される。簡素化処理後の衝突データを利用して衝突演算を行うことで、電子機器による衝突データの計算消費を減らし、電子機器による衝突データの処理効率を向上させる効果を達成し、さらに、関連技術における衝突データの処理効率が低いという問題を克服することができる。
【0020】
一実施例において、上記端末機器は、ターゲットクライアントが配置された端末機器であってもよく、携帯電話(例えば、Android携帯電話、iOS携帯電話など)、ノートパソコン、タブレットコンピュータ、パームトップ型パソコン、モバイルインターネットデバイス(MID:Mobile Internet Devices)、PAD、デスクトップコンピュータ、スマートテレビなどのうちの少なくとも1つを含んでもよいが、これらに限定されない。ターゲットクライアントは、ビデオクライアント、インスタントコミュニケーションクライアント、ブラウザクライアント、教育クライアントなど、物理的なインタラクションを必要とする仮想オブジェクトが設定されたクライアントであってもよく、該仮想オブジェクトは、衝突体によってインタラクション衝突の演算を行う。上記ネットワークは、有線ネットワーク、無線ネットワークを含んでもよいが、これらに限定されない。そのうち、該有線ネットワークは、ローカルエリアネットワーク、大都市圏ネットワーク、及び広域ネットワークを含み、該無線ネットワークは、ブルートゥース、WIFI、及び無線通信を実現する他のネットワークを含む。上記サーバは、単一のサーバであってもよいし、複数のサーバからなるサーバクラスタであってもよいし、クラウドサーバであってもよい。上記は、一例に過ぎない。これに対して、本実施例は一切限定しない。
【0021】
一実施形態において、図2に示すように、上記衝突データ処理方法は、例えば、電子機器で実行されてもよい。電子機器は、例えば、図1に示された端末機器又はサーバなどである。該方法は、以下のステップを含む。
【0022】
S202では、仮想シーンにおける処理対象のターゲット衝突体を決定し、ターゲット衝突体は、頂点を含む凸多面体である。
【0023】
上記ターゲット衝突体は、仮想シーンにおける仮想オブジェクト(例えば、仮想シーンにおける3次元のオブジェクト)に対して配置された衝突体であってもよいが、これに限定されない。ここでの仮想オブジェクトは、例えば、ユーザが制御する仮想キャラクター、仮想アイテム又は乗り物など、仮想シーンに現れる動的なオブジェクトであってもよいし、例えば、建物、植物景観など、予め配置された静的なオブジェクトであってもよいが、これらに限定されない。上記衝突体は、仮想オブジェクトに対して配置された、インタラクション中に発生する衝突を検出するためのキャリアであってもよいが、これに限定されない。本実施例におけるターゲット衝突体は、構造が複雑であり、仮想オブジェクト自身の構造フレーム(例えば、仮想キャラクターの骨格フレーム、建物の鉄骨構造フレームなど)に合わせて設計された構造であり、つまり、複数の頂点を含む凸多面体である。
【0024】
S204では、ターゲット衝突体の各頂点間の距離関係を取得する。距離関係は、ターゲット衝突体の形状特徴を表すためのものである。
【0025】
説明すべきものとして、関連技術では、電子機器における衝突演算の消費が大きいことは、通常、衝突体の幾何学的構造が複雑なため、大量の頂点データを導入する必要があり、衝突演算、美術製作を行う際に大量のデータ計算の消費が発生するからである。上記の問題を克服するために、本実施例は、ターゲット衝突体の各頂点間の距離関係に基づいて、ターゲット衝突体を簡素化する構成を提供し、ターゲット衝突体を、構造が簡素化された規則な立体に変換し、規則な立体で衝突データを記憶し、電子機器による衝突体の衝突データの処理の演算効率を向上させる(例えば、衝突体が衝突するか否かを決定する演算効率を向上させる)。
【0026】
一実施例において、各頂点間の距離関係は、各頂点間の距離の比較結果を表すためのものである。該距離関係は、ターゲット衝突体の形状特徴を反映することができる。上記距離関係は、ターゲット衝突体の各頂点を走査し、各々の頂点を現在の頂点として、他の各頂点(即ち、現在の頂点を除く頂点)と該現在の頂点との間の距離をそれぞれ取得することにより複数の距離を取得してから決定された複数の距離間の関係であってもよい。該距離関係は、ターゲット衝突体をそれに類似する構造の規則な立体として認識するために用いることができる。ここで、規則な立体は、直方体、円柱体を含んでもよいが、これらに限定されない。ターゲット衝突体の頂点データをそれに類似する規則な立体のデータフォーマットで変換し、即ち、頂点データのフォーマットを類似する規則な立体のデータフォーマットに変換することにより、衝突体の衝突データを簡素化するという目的を達成する。
【0027】
S206では、距離関係に基づいてターゲット衝突体を規則な立体に変換した場合、規則な立体にマッチしたデータフォーマットでターゲット衝突体の頂点データを変換することにより、ターゲット衝突体の衝突データを取得する。衝突データのデータフォーマットは、規則な立体のデータフォーマットと一致する。ターゲット衝突体の衝突データは、構造が簡素化されたターゲット衝突体を表すためのものである。
【0028】
一実施例において、上記の規則な立体にマッチしたデータフォーマットは、規則な立体の指標パラメータに対応するフォーマットであってもよいが、これに限定されない。例えば、規則な立体が直方体である場合、規則な立体の指標パラメータは、中心点座標と、有向境界ボックスの収束方向と、を含んでもよい。規則な立体が円柱体である場合、規則な立体の指標パラメータは、中心点座標と、半径と、を含んでもよいが、これらに限定されない。これは、例示である。これに対して、本実施例は一切限定しない。
【0029】
また、一実施例において、上記の規則な立体の直方体は、標準的な直方体、参照直方体を含んでもよいが、これらに限定されない。そのうち、参照直方体は、標準的な直方体の構造に類似する構造、即ち、近似直方体であってもよいが、これに限定されない。
【0030】
一実施例において、参照直方体であると決定した後、仮想シーンにおける参照直方体に具体的に対応する構造をさらに認識するために、参照直方体の凸面体特徴を抽出する(例えば、参照直方体の凸面に対して特徴抽出を行う)ステップをさらに含んでもよいが、これに限定されない。例えば、参照直方体の縦・横・高さの3つの軸方向の辺長間の関係として、そのうちの2つの軸方向の辺長が小さくて、第3軸方向の辺長よりはるかに小さい場合、その参照直方体を木の棒として認識し、1つの軸方向の辺長が短くて、それ以外の軸方向の辺長よりはるかに小さい場合、その参照直方体を屋根として認識することができる。3つの軸方向の辺長は、参照直方体の縦・横・高さを含む3つの値である。これは、例示である。これに対して、本実施例は一切限定しない。
【0031】
一実施例において、上記の衝突データの処理方法は、単一の仮想オブジェクトモデルに対応する衝突体のデータ最適化プロセスに適用されてもよいが、これらに限定されず、仮想シーンにおける全ての仮想オブジェクトモデルのそれぞれに対応する衝突体のデータに対して簡素化・最適化処理をバッチで行ってもよく、電子機器による衝突データの処理効率を向上させる。
【0032】
また、一実施例において、異なる具体的な用途に応じて、異なる精度を選択して衝突データを処理してもよいが、これに限定されない。例えば、クライアントに適用される場合、衝突データ処理の精度要求が相対的に高いが、サーバに適用される場合、衝突データ処理の精度要求が相対的に低い。説明すべきものとして、ここでの精度は、衝突データを変換する際のデータ精度であってもよいが、これに限定されない。衝突データの処理において異なる精度を区別することで、美術設計者が簡素化・最適化アルゴリズム及びそのパラメータを深く理解する必要がなくなり、複数の精度の処理操作を簡単に提供することができ、処理操作を簡素化して電子機器の処理効率を向上させるという目的が達成される。
【0033】
本願で提供される実施例によれば、仮想シーンにおける処理対象のターゲット衝突体を決定した後、該ターゲット衝突体の各頂点間の距離関係を取得する。また、該距離関係に基づいて、ターゲット衝突体が、構造が簡素化された規則な立体に変換可能であるか否かを決定し、規則な立体に変換すると決定した場合、規則な立体にマッチしたデータフォーマットで上記ターゲット衝突体の頂点データを変換することにより、簡素化処理後のターゲット衝突体の衝突データを取得する。これにより、構造が複雑なターゲット衝突体を、構造が簡素化された規則な立体に変換し、規則な立体にマッチしたデータフォーマットで衝突体の衝突データを記憶することが実現される。簡素化処理後の衝突データを利用して衝突演算を行うことで、衝突データの計算消費を減らし、衝突データの処理効率を向上させる効果を達成し、さらに、関連技術における電子機器による衝突データの処理効率が低いという問題を克服する。
【0034】
任意選択的な構成として、ターゲット衝突体の各頂点間の距離関係を取得するステップは、
ターゲット衝突体の頂点の数が第1閾値に達した場合、ターゲット衝突体の各頂点のそれぞれに接続された複数の辺間の距離関係をそれぞれ取得するステップを含む。即ち、複数の辺の長さの比較結果を決定する。
【0035】
これに加えて、衝突データ処理方法は、距離関係によって、ターゲット衝突体の1つのターゲット頂点に接続された3つの辺が互いに垂直であることが示された場合、ターゲット衝突体を標準的な直方体に変換するステップであって、規則な立体は、標準的な直方体を含む、ステップをさらに含む。ここで、1つのターゲット頂点は、それに接続された3つの辺が互いに垂直である1つの頂点である。
【0036】
一実施例において、上記第1閾値は、標準的な直方体の頂点の数であってもよいが、これに限定されない。第1閾値は、8であってもよいが、これに限定されない。つまり、ターゲット衝突体の頂点の数が8に達した場合、各頂点間の距離を取得し、各距離間の関係に基づいて、該ターゲット衝突体が標準的な直方体であるか否かを認識する。
【0037】
一実施例において、規則な立体にマッチしたデータフォーマットでターゲット衝突体の頂点データを変換することにより、ターゲット衝突体の衝突データを取得する前に、
ターゲット衝突体の各頂点の中から現在の頂点を決定し、現在の頂点からの距離が最も近い第1参照点及び第2参照点を決定するステップと、
現在の頂点と第1参照点との間の第1距離、現在の頂点と第2参照点との間の第2距離を取得するステップと、
第1距離及び第2距離に基づいて、第3距離を決定するステップであって、前記第3距離は、直角三角形の斜辺の長さであり、前記直角三角形は、第1距離及び第2距離を直角辺の長さとする、ステップと、
ターゲット衝突体の各頂点のうち、現在の頂点、第1参照頂点、及び第2参照点を除く頂点の中から、第3距離にしたがって第3参照点を決定するステップであって、現在の頂点と第3参照点との間の距離は、第3距離である、ステップと、
第1参照点、第2参照点、及び第3参照点に基づいて、ターゲット衝突体の参照平面を決定するステップと、
ターゲット衝突体の各頂点のうち、現在の頂点、第1参照頂点、第2参照点、第3参照点を除く頂点の中から、現在の頂点からの距離が最も近い第4参照点を決定するステップであって、第4参照点と現在の頂点とを結ぶ線は、参照平面と互いに垂直である、ステップと、
現在の頂点をターゲット頂点として決定し、第1距離及び第2距離、並びに、現在の頂点と第4参照点との間の第4距離に基づいて、標準的な直方体にマッチした有向境界ボックスの収束方向を決定するステップであって、頂点データには、有向境界ボックスの収束方向の方向ベクトルが含まれる、ステップと、をさらに含む。
【0038】
具体的には、図3に示されたターゲット衝突体を参照して説明する。
【0039】
該ターゲット衝突体の頂点の数が8に達したと決定した場合、任意の1点から走査して計算する。図3に示すように、現在の頂点である頂点Aから計算を開始すると仮定する。頂点Aから最も近い2つの頂点B(即ち、第1参照点)及び頂点C(即ち、第2参照点)を見付ける。距離ABはL1(図3に示された太い横線、即ち、第1距離)に対応しており、距離ACはL2(図3に示された太い縦線、即ち、第2距離)に対応している。直方体規則に基づいて、頂点A、頂点B、及び頂点Cが隣接する頂点であり、かつ、ABがACに垂直であることを決定することができる。
【0040】
次に、頂点B及び頂点Cのそれぞれの位置、並びに、両者のそれぞれの距離L1及びL2に基づいて、三角形ABCの斜辺ACの距離Lxを計算する。該ターゲット衝突体の残りの頂点を走査して、各頂点と頂点Aとの間の距離を順次に取得する。頂点Aとの距離もLx(即ち、第3距離)である頂点D(即ち、第3参照点)を、三角形ABCが位置する平面(即ち、参照平面)の最後の点として決定する。
【0041】
次に、頂点B、C、Dを除く残りの頂点から頂点Aまでの距離を走査して、頂点Aからの距離が最も近い頂点Eを見付ける。直方体の幾何学的関係から、AB、AC、AEがそれぞれ直方体の3つの互いに垂直な辺であることを決定することができる。この3つの辺のそれぞれに対応するベクトルは、標準的な直方体の前方向(Forward)ベクトル、右方向(Right)ベクトル、上方向(Up)ベクトルとして決定することができる。3つの辺の長さを走査して比較し、最も長い辺AE(その距離は第4距離である)を該直方体の前方向(Forward)ベクトルとして認識し、それを現在認識された標準的な直方体の有向境界ボックス(OBB:Oriented Bounding Box)の精確な収束方向として決定する。
【0042】
本願で提供される実施例によれば、ターゲット衝突体の頂点の数が第1閾値に達し、かつ、ターゲット頂点に接続された3つの辺が互いに垂直である場合、ターゲット衝突体を標準的な直方体として認識する。次に、ターゲット頂点とそれ以外の頂点との間の距離関係に基づいて、該標準的な直方体のOBBの収束方向を決定し、次に、標準的な直方体に対応するデータフォーマットで上記ターゲット衝突体の頂点データを変換することにより、ターゲット衝突体を簡素化された標準的な直方体に変換した衝突データを取得し、衝突データを簡素化して、電子機器が衝突演算時に衝突データを使用して処理を行う効率を向上させるという効果を達成する。
【0043】
任意選択的な構成として、ターゲット衝突体の各頂点間の距離関係を取得するステップは、
ターゲット衝突体の頂点の数が第1閾値に達した場合、前記ターゲット衝突体の全ての頂点の中心座標点を決定するステップS1であって、中心座標点は、全ての頂点の座標値の平均値である、ステップS1と、
各頂点と中心座標点との間の距離関係を取得するステップS2と、を含む。ここで、いずれか1つの頂点に対応する距離関係は、該頂点と中心座標点との間の距離を表すためのものである。
【0044】
一実施例において、距離関係の決定に加えて、衝突データ処理方法は、
距離関係によって、各頂点と中心座標点との間の距離のいずれも第1距離閾値より小さいことが示された場合、ターゲット衝突体を参照直方体として認識すると決定するステップ1)であって、規則な立体は、参照直方体を含む、ステップ1)と、
各頂点の距離関係に基づいて少なくとも2組の平行面を決定した場合、ターゲット衝突体を参照直方体として認識すると決定するステップ2)であって、規則な立体は、参照直方体を含む、ステップ2)と、をさらに含んでもよい。ここで、各組の平行面は2つの互いに平行な面を含み、2つの互いに平行な面は例えば、それぞれ4つの頂点を含む。
【0045】
説明すべきものとして、仮想シーンに現れる衝突体は、全てが標準的な直方体であるわけではなく、ほとんどが近似直方体(即ち、参照直方体であり、大体標準的な直方体とも呼ばれる)である。このため、本実施例では、以下の少なくとも1つの方式によって、ターゲット衝突体が大体標準的な直方体であるか否かを決定してもよい。1)衝突体の全ての頂点と中心座標点との距離がほぼ等しい(即ち、各頂点と中心座標点との間の距離のいずれも第1距離閾値より小さい)場合、該衝突体を大体標準的な直方体として認識すると決定することができる。2)衝突体の8つの頂点に互いにほぼ平行な平面が少なくとも2組存在する(即ち、各頂点に基づいて少なくとも2組の平行面を決定した)場合、該衝突体を大体標準的な直方体として認識すると決定することができる。
【0046】
一実施例において、ターゲット衝突体を参照直方体として認識すると決定した後、衝突データ処理方法は、ターゲット衝突体に対応する第1体積値と、参照直方体に対応する第2体積値と、を取得するステップと、第1体積値と第2体積値との比率を決定するステップと、比率が第2閾値に達した場合、ターゲット衝突体を参照直方体に変換すると決定するステップと、をさらに含む。
【0047】
説明すべきものとして、ここでの第2閾値は、異なる具体的な用途シーンに応じて設定された異なる閾値であってもよいが、これに限定されない。例えば、クライアントに適用される場合、衝突データ処理の精度要求が相対的に高いため、ここでの閾値は、高い数値に設定されるが、サーバに適用される場合、衝突データ処理の精度要求が相対的に低いため、ここでの閾値は、低い数値に設定される。ここで、該第2閾値の範囲は、1以下の数値である。
【0048】
例えば、第2閾値が1であると仮定すると、ターゲット衝突体に対応する第1体積値V1と、参照直方体に対応する第2体積値V2との比率がpである場合、該比率pと第2閾値1とを比較する。p=1の場合、参照直方体として認識されたターゲット衝突体が参照直方体に変換可能であると決定する。比率が第2閾値1より小さい場合は、両者間の差異が大きいことを示し、参照直方体として認識されたターゲット衝突体を参照直方体に変換する必要がないため、ターゲット衝突体の頂点データを、参照直方体のデータフォーマットにマッチした衝突データに変換する必要がない。
【0049】
本願で提供される実施例によれば、各頂点と中心座標点との間の距離のいずれも第1距離閾値より小さく、又は、各頂点に少なくとも2組の平行面が存在する場合、ターゲット衝突体を参照直方体(近似直方体)として認識する。この場合、ターゲット衝突体と参照直方体との体積比較結果を利用して、上記の近似認識結果の信頼性を検証する。体積比較結果によって、閾値条件に達したことが示された場合、衝突演算時に衝突データを使用して処理を行う効率を向上させるという効果を達成するために、ターゲット衝突体の頂点データを簡素化された参照直方体に対応するフォーマットでの衝突データに変換すると決定する。
【0050】
任意選択的な構成として、ターゲット衝突体を参照直方体に変換すると決定した後、衝突データ処理方法は、
参照直方体に対応する投影平面を決定するステップS1と、
参照直方体の各頂点を投影平面にマッピングすることにより、各頂点のそれぞれに対応する投影点を取得するステップS2と、
頂点から対応する投影点までの投影距離に基づいて、各頂点をグループ化することにより、第1平面頂点セット及び第2平面頂点セットを取得するステップS3であって、第1平面頂点セット内の頂点が第1平面に位置し、第2平面頂点セット内の頂点が第2平面に位置する、ステップS3と、
第1平面と第2平面が平行である場合、第1平面及び第2平面に基づいて、参照直方体にマッチした有向境界ボックスの収束方向を決定するステップS4であって、頂点データには、有向境界ボックスの収束方向の方向ベクトルが含まれる、ステップS4と、をさらに含む。
【0051】
説明すべきものとして、ターゲット衝突体を参照直方体として認識した後、それをBox衝突ボックスに変換するとともに、該境界ボックスに対応するOBBの収束方向を認識する必要もある。任意選択的な実施例として、投影平面分離軸方向OBB収束アルゴリズムによって、参照直方体のOBBの収束方向を決定してもよいが、これに限定されない。
【0052】
具体的には、図4に示されたターゲット衝突体を参照して説明する。
【0053】
図4に示すように、ターゲット衝突体が参照直方体として認識され、該参照直方体に対応する投影平面が、図4に示された網掛け領域で構成される平面であって、水平面に垂直な垂直面であることが決定されたと仮定する。
【0054】
次に、該参照直方体の全ての頂点を走査し、頂点Aを例に説明を続ける。投影平面上の、該頂点Aの投影点A1を計算し、次に、投影平面上の、他の頂点のそれぞれに対応する投影点を見付ける。さらに、投影平面上の、頂点Bの投影点B1と投影点A1との間の距離(図示の点線A1B1間の距離)が最も近いと仮定する。次に、AA1とBB1のそれぞれの投影距離の大きさを比較し、その距離比較結果に基づいて、頂点Aと頂点Bを遠平面点と近平面点に分ける。
【0055】
参照直方体の全ての頂点の走査が完了すると、上記の参照直方体の8つの頂点の中から、遠距離平面の4つの頂点と近距離平面の4つの頂点、即ち、第一平面頂点セットと第二平面頂点セットが決定される。第一平面頂点セット内の頂点が第一平面に位置し、第二平面頂点セット内の頂点が第二平面に位置し、かつ、第一平面と第二平面の2つの平面がほぼ平行である場合、該参照直方体が近似直方体であることをさらに決定することができる。次に、ここに記載された方式に基づいて決定された参照直方体に対して、直方体の3つの軸方向、即ち、前方向(Forward)、右方向(Right)、上方向(Up)を上記の方式で認識する。
【0056】
3つの軸方向を決定した後、参照直方体の全ての頂点に対して、再度の走査計算を行い、それらを3つの軸方向にそれぞれ投影して、最大値及び最小値を取得する。次に、ここでの最大値及び最小値に基づいて、各軸方向上の平均値、即ち、X軸方向の半辺長の値ExtendX、Y軸方向の半辺長の値ExtendY、及びZ軸方向の半辺長の値ExtendZを求める。次に、収束によって、OBBの的確な収束方向を取得する。
【0057】
OBB収束アルゴリズムを使用しないと、衝突体の展示効果は、図5の左側の図に示すように、ひどく合っていない。OBBの向きを大まかに計算すると、展示効果は、図5の中央の図のように、方向が正しいが、まだあまり合っていない。完全なOBB収束アルゴリズムを使用すると、展示効果は、図5の右側の図のように、元のモデルに精確に合うことができる。
【0058】
本願で提供される実施例によれば、投影平面分離軸方向OBB収束アルゴリズムを用いて、参照直方体に対してより的確な収束方向を決定することにより、記憶及び処理が容易な衝突データへの変換を容易にする。
【0059】
任意選択的な構成として、ターゲット衝突体を参照直方体に変換すると決定した後、衝突データ処理方法は、
参照直方体の幾何学的中心点に対応する前方向ベクトルを決定し、前記前方向ベクトルが含まれる垂直平面を決定するステップS1と、
前記前方向ベクトルの方向を軸として、垂直平面を軸として複数回回転し(例えば、N回回転し、Nは正の整数)、毎回の回転後に、
参照直方体の各頂点から垂直平面までの垂直距離に基づいて、各頂点をグループ化することにより、第3平面頂点セット及び第4平面頂点セットを取得する操作であって、第3平面頂点セット内の頂点が第3平面に位置し、第4平面頂点セット内の頂点が第4平面に位置する、操作を実行するステップS2と、
第3平面と第4平面が平行である場合、第3平面及び第4平面に基づいて、参照直方体にマッチした有向境界ボックスの収束方向を決定するステップS3であって、頂点データには、有向境界ボックスの収束方向の方向ベクトルが含まれる、ステップS3と、をさらに含む。
【0060】
説明すべきものとして、ターゲット衝突体を参照直方体として認識した後、それをBox衝突ボックスに変換するとともに、該境界ボックスに対応するOBBの収束方向を認識する必要もある。任意選択的な実施例として、回転再帰収束OBBアルゴリズムによって、参照直方体のOBBの収束方向を決定してもよいが、これに限定されない。
【0061】
具体的には、以下の例を参照して説明する。仮に、水平方向回転再帰を例とする。
【0062】
参照直方体の幾何学的中心点に基づいてForwardベクトルを生成し、Forward方向の垂直平面を基準として、軸Forward周りに0~360度回転して再帰演算を行う。
【0063】
毎回の再帰回転では、垂直平面を軸周りに1度回転させるように制御してから、その角度の状態で、参照直方体の全ての頂点から上記垂直平面までの垂直距離を計算し、垂直距離がほぼ等しい頂点の組を集計することにより、距離がほぼ等しい頂点セットを複数取得する。
【0064】
360度の回転プロセスが完了して再帰回転演算結果が得られると、垂直平面から、数量が最も多く、かつ距離がほぼ等しい頂点セットを見付け、それを候補平面頂点セットとして決定する。また、上記候補平面頂点セットに基づいて決定された平面と、上記の基準とされる垂直平面とが平行であるか否かを判断する。平行であると決定した場合、該参照直方体が近似直方体であることをさらに決定することができる。次に、ここに記載された方式に基づいて決定された参照直方体に対して、直方体の3つの軸方向、即ち、前方向(Forward)、右方向(Right)、上方向(Up)を上記の方式で認識する。
【0065】
3つの軸方向を決定した後、参照直方体の全ての頂点に対して、再度の走査計算を行い、それらを3つの軸方向にそれぞれ投影して、最大値及び最小値を取得する。ここでの最大値及び最小値に基づいて、各軸方向上の平均値、即ち、X軸方向の半辺長の値ExtendX、Y軸方向の半辺長の値ExtendY、及びZ軸方向の半辺長の値ExtendZを求める。次に、収束によって、OBBの的確な収束方向を取得する。
【0066】
本願で提供される実施例によれば、回転再帰収束OBBアルゴリズムを用いて、参照直方体に対してより的確な収束方向を決定することにより、記憶及び処理が容易な衝突データへの変換を容易にする。
【0067】
任意選択的な構成として、第1体積値と第2体積値との比率を決定した後、衝突データ処理方法は、
比率が第2閾値に達していない場合、参照直方体の凸面体特徴を抽出するステップであって、凸面体特徴には、参照直方体に対応する3つの軸方向辺の辺長が含まれ、3つの軸方向辺は、参照直方体の互いに垂直な辺である、ステップと、
第1軸方向辺の辺長と第3軸方向辺の辺長との第1差、及び、第2軸方向辺の辺長と第3軸方向辺の辺長との第2差が両方とも第2距離閾値より大きい場合、参照直方体を長い棒タイプの直方体に変換すると決定するステップと、
第1軸方向辺の辺長と第2軸方向辺の辺長との第3差、及び、第1軸方向辺の辺長と第3軸方向辺の辺長との第4差が両方とも第3距離閾値より大きい場合、参照直方体を屋根タイプの直方体に変換すると決定するステップと、をさらに含む。
【0068】
説明すべきものとして、本実施例の上記方法で提供される変換方法は、ほとんどの明らかな衝突体の凸包を直方体又は他の規則な立体(例えば、円柱体やカプセル体)に変換することをサポートするが、的確に簡素化された変換プロセスを直接行うことができない特殊な、差異が大きい衝突体がまだいくつかある。これらの特殊な衝突体は、明らかな幾何学的特徴を持つことができるが、これに限定されない。
【0069】
一実施において、上記の特殊な衝突体を変換する際に参照するための幾何学的特徴は、参照直方体から認識されたOBBの3つの軸方向辺間の距離関係という凸面体特徴を含んでもよいが、これに限定されない。
【0070】
例えば、3つの軸方向辺のうち、2つの軸方向辺が短くて、第3軸方向辺よりはるかに小さい場合、ここでの参照直方体を長い棒タイプの直方体に変換する。3つの軸方向辺のうち、1つの軸方向辺が短くて、それ以外の軸方向辺よりはるかに小さい場合、ここでの参照直方体を屋根タイプの直方体に変換する。
【0071】
本願で提供される実施例によれば、いくつかの認識可能な凸面体特徴に基づいて、いくつかの特殊な衝突体をさらに認識変換することにより、決定された特定の直方体のデータフォーマットで変換し、衝突体の衝突データに対して簡素化処理を行うという効果を達成する。
【0072】
任意選択的な構成として、各頂点と中心座標点との間の距離関係を取得した後、衝突データ処理方法は、
ターゲット衝突体が参照直方体ではないと決定した場合、ターゲット衝突体の幾何学的中心点を取得するステップS1と、
ターゲット衝突体の各頂点と幾何学的中心点とを結ぶ線の距離を取得するステップS2と、
各結ぶ線の距離間の差が第3閾値より小さい場合、ターゲット衝突体を円柱体として認識するステップS3であって、規則な立体は、円柱体を含む、ステップS3と、
幾何学的中心点の座標と、円柱体の半径とに基づいて、円柱体の空間関数を構築するステップS4であって、頂点データには、円柱体の空間関数が含まれる、ステップS4と、を含む。
【0073】
説明すべきものとして、ターゲット衝突体の頂点の数が第1閾値ではない場合、該ターゲット衝突体が直方体の認識条件を満たさないと決定し、該ターゲット衝突体が円柱体の認識条件を満たすか否かをさらに判定することができる。
【0074】
例えば、上記ターゲット衝突体の各頂点に基づいて、その幾何学的中心点を決定する。次に、各頂点から幾何学的中心点までの垂直方向ベクトルの距離(即ち、各頂点と前記幾何学的中心点とを結ぶ線の距離)を計算する。全ての頂点から幾何学的中心点までの距離がほぼ等しい(即ち、各結ぶ線距離間の差が第3閾値より小さい)場合、参照直方体ではないそのターゲット衝突体を円柱体として認識する。
【0075】
次に、直接に上記で認識された円柱体の幾何学的中心点の座標及び半径に基づいて、円柱体の空間関数を構築することにより、円柱体にマッチした空間関数のフォーマットで上記の複雑な構造のターゲット衝突体の頂点データを変換することを容易にする。
【0076】
説明すべきものとして、認識された円柱体において上下の半径の大きさが一致しない場合、例えば、上が大きく下が小さい円柱体である場合、それを分割する必要がある。例えば、複雑な凸面体を分解して複数の簡単な境界ボックスに合併する。円柱体の分割方式は、凸面体分解アルゴリズムの分割方式に類似してもよいが、これに限定されない。
【0077】
本願で提供される実施例によれば、ターゲット衝突体が参照直方体ではないと決定した場合、該ターゲット衝突体を円柱体として認識することができるか否かを判定する。また、該ターゲット衝突体が円柱体として認識された場合、簡略化変換を容易にするために、円柱体にマッチした該ターゲット衝突体のデータを決定する。これにより、ターゲット衝突体の衝突データの記憶時の操作の複雑さを低減するという目的を達成し、さらに、電子機器が記憶された衝突データを呼び出して衝突演算を行う際の処理効率を向上させる。
【0078】
任意選択的な構成として、規則な立体にマッチしたデータフォーマットでターゲット衝突体の頂点データを変換することにより、ターゲット衝突体の衝突データを取得する前に、前記衝突データ処理方法は、
等距離境界ボックスを使用してターゲット衝突体を分解することにより、複数のサブ衝突体を取得するステップS1と、
ターゲット衝突体の各頂点を結ぶ線と、複数のサブ衝突体のそれぞれのサブ衝突体との交点を決定するステップS2と、
各サブ衝突体内の交点に対して順次に収束組み合わせを行うことにより、サブ衝突体に対応するサブ境界ボックスを取得するステップS3と、
各サブ境界ボックスを走査して、サイズの差が第4閾値より小さいサブ境界ボックスを合併することにより、ターゲット衝突体に対応する体境界ボックスを取得するステップS4と、
体境界ボックスの頂点データをターゲット衝突体の頂点データとするステップS5と、をさらに含む。
【0079】
説明すべきものとして、本実施例では、構造が複雑な凸面体に対して、複雑なターゲット衝突体を分解してから複数の簡単な境界ボックスに合併するために、凸面体分解アルゴリズムを用いてもよいが、これに限定されない。
【0080】
具体的には、図6に示された凸面体分解アルゴリズムの流れを参照して説明する。
【0081】
ターゲット衝突体(以下、凸面体と呼ばれる)が図6(a)に示された錐体であると仮定する。図6(b)に示すように、分解の流れを実行するために、該凸面体が選択される。例えば、凸面体のサイズに応じて、単位距離で構築された等距離境界ボックスを用いて、上記凸面体を複数のサブ衝突体に分解する。分解結果は、図6(c)に示された3つの同じ大きさの直方体であってもよい。
【0082】
続いて、ターゲット衝突体の各頂点を結ぶ線と、各サブ衝突体との交点を決定する。例えば、図7(a)に示された凸面体は、図6(a)に示された凸面体である。図7(b)に示すように、下方の頂点から上に向かって上交点求めプロセスを行い、上方の頂点から下に向かって下交点求めプロセスを行う。ここで、交点求めとは、交点を決定することを指す。
【0083】
次に、各サブ衝突体内の交点に対して順次に収束組み合わせを行うことにより、使用空間が小さい境界ボックス、即ち、全ての交点で構成される境界ボックスを取得する。図6(d)に示された点線枠が示す境界ボックスは、図6(c)の等距離分解後の境界ボックス(図中の太実線に示すように)を収束することにより得られたサブ境界ボックスである。また、上記サブ境界ボックスに対して大きさの判定を行い、サイズが近似しており、かつ閾値より小さい(即ち、サイズの差が第4閾値より小さい)境界ボックスを、より大きい境界ボックス(即ち、体境界ボックス)に合併する。図6(e)に示すように、下方の2つのサブ境界ボックスが1つのより大きい境界ボックスに合併される。
【0084】
本願で提供される実施例によれば、等距離境界ボックスでターゲット衝突体を分割して、それを使用空間がより小さいサブ衝突体に簡素化し、次に、サブ衝突体を改めて組み合わせて合併することにより、ターゲット衝突体の構造を簡素化して、簡素化・最適化後の衝突データを取得するという目的を同様に達成する。
【0085】
任意選択的な構成として、距離関係に基づいてターゲット衝突体を規則な立体に変換した後、前記衝突データ処理方法は、
規則な立体に複数の規則なサブ立体が含まれる場合、各規則なサブ立体のサイズを決定するステップS1と、
隣接する2つの規則なサブ立体のサイズの差が第5閾値より小さい場合、隣接する2つの規則なサブ立体を合併するステップS2と、
複数の規則なサブ立体のうち、第1規則なサブ立体のサイズと第2規則なサブ立体との差が第6閾値より小さく、かつ、第1規則なサブ立体が第2規則なサブ立体の内部に位置する場合、第1規則なサブ立体を除去するステップS3と、をさらに含む。
【0086】
説明すべきものとして、規則な立体に複数の規則なサブ立体が含まれる場合、組み合わせ合併アルゴリズムや小物除去アルゴリズムを用いてさらなる処理を行ってもよいが、これらに限定されない。そのうち、組み合わせ合併アルゴリズムでは、2つの連なった直方体に対して、大きさが近い(即ち、隣接する2つの規則なサブ立体のサイズの差が第5閾値より小さい)場合、又は、包含関係がある場合、それらを1つの直方体に合併する。上記の小物除去アルゴリズムでは、ある境界ボックスが、周囲の境界ボックスよりはるかに小さくて(即ち、第1規則なサブ立体のサイズと第2規則なサブ立体との差が第6閾値より小さい)、他の境界ボックスの内部に埋め込まれている場合、それを直接除去する。
【0087】
また、本実施例では、変換完了後に誤差チェックを行ってもよいが、これに限定されない。変換後の直方体と元のターゲット衝突体との各頂点を比較し、誤差範囲より小さい場合は、変換が成功したことを示し、さもないと、変換しない。
【0088】
本願で提供される実施例によれば、簡素化された衝突データの取得を容易にするために、組み合わせ合併及び小物取り替えの方法によって、複数の規則なサブ立体が含まれる複雑な規則な立体に対して統一的な簡素化処理を行う。
【0089】
任意選択的な構成として、規則な立体にマッチしたデータフォーマットでターゲット衝突体の頂点データを変換することにより、ターゲット衝突体の衝突データを取得するステップは、規則な立体にマッチした幾何学的な指標のデータフォーマットでターゲット衝突体の頂点データを変換することにより、衝突データを取得するステップを含む。
【0090】
任意選択的に、本実施例では、ターゲット衝突体が直方体に変換される場合、直方体にマッチした幾何学的な指標のデータフォーマットで変換して記憶し、例えば、中心座標点の座標、及びOBBの収束方向の方向ベクトルなどを記憶する。ターゲット衝突体が円柱体に変換される場合、円柱体にマッチした幾何学的な指標のデータフォーマットで変換して記憶し、例えば、円柱体の幾何学的中心点及び半径などを記憶する。
【0091】
本願で提供される実施例によれば、規則な立体にマッチした幾何学的な指標のデータフォーマットでターゲット衝突体の頂点データを記憶し、複雑な構造のターゲット衝突体の衝突データの記憶方式を簡素化し、該衝突データを呼び出して衝突演算を行う際の処理効率を向上させる。
【0092】
具体的には、図8に示された例を参照して説明する。
【0093】
ターゲット衝突体を取得した後、それを物理的に簡素化する。まず、ターゲット衝突体がカプセル体(即ち、円柱体)であるか否かを判断し、ターゲット衝突体がカプセル体である場合、それを処理しやすいカプセル体に直接変換し、カプセル体に対応するデータフォーマットでターゲット衝突体の頂点データを変換して記憶する。変換プロセスは、以下と同様に直方体(例えば、Box)の流れを参照すればよい。
【0094】
ターゲット衝突体がカプセル体ではなく、標準的な直方体であると決定した場合、Box変換流れを用いて、ターゲット衝突体を標準的な直方体に精確に変換し、それに対応するOBBの収束方向を計算する。次に、標準的な直方体のデータフォーマットでターゲット衝突体の頂点データを変換することにより、衝突データを取得する。ここで、OBBの収束方向を計算する方式は、投影平面解求め方及び回転再帰解求め方を含む。続いて、上記の変換後の標準的な直方体に対して、組み合わせ合併又は小物除去、並びに、誤差チェックプロセスを行う。チェックに合格した後、変換された衝突データがエクスポートされて使用される。
【0095】
ターゲット衝突体がカプセル体ではなく、大体標準的な直方体であると決定した場合、大Box大体変換流れを用いて、単位分解及び独立収束の分解処理を行い、分解された境界ボックスを合併する。次に、大体標準的な直方体のデータフォーマットでターゲット衝突体の頂点データを変換することにより、衝突データを取得する。次に、それに対して誤差チェックプロセスを実行する。チェックに合格した後、変換された衝突データがエクスポートされて使用される。
【0096】
上記の図10に示された流れは、例示である。これに対して、本実施例は一切限定しない。
【0097】
説明すべきものとして、説明を簡単にするために、前述した各方法実施例が一連の動作の組み合わせとして表現されているが、当業者は、本願によれば、何らかのステップを他の順序で又は同時に実行することができるので、本願は記載された動作の順序によって制限されないことを知っておくべきである。次に、当業者は、明細書に記載された実施例がいずれも好ましい実施例に属し、係る動作及びモジュールが必ずしも本願に必要なものではないことも知っておくべきである。
【0098】
本願の実施例の他の態様によれば、上記衝突データ処理方法を実施するための衝突データ処理装置がさらに提供されている。図9に示すように、該装置は、
仮想シーンにおける処理対象のターゲット衝突体を決定する第1決定ユニット902であって、ターゲット衝突体は、頂点を含む凸多面体である、第1決定ユニット902と、
ターゲット衝突体の各頂点間の距離関係を取得する第1取得ユニット904であって、前記距離関係は、前記ターゲット衝突体の形状特徴を表すためのものである、第1取得ユニット904と、
距離関係に基づいてターゲット衝突体を規則な立体に変換した場合、規則な立体にマッチしたデータフォーマットでターゲット衝突体の頂点データを変換することにより、ターゲット衝突体の衝突データを取得する第1処理ユニット906と、を含む。
【0099】
本実施例において、上記衝突データ処理装置の実施例は、上記の方法実施例を参照すればよいが、これに限定されず、ここでは説明を省略する。
【0100】
任意選択的構成として、第1取得ユニットは、
ターゲット衝突体の頂点の数が第1閾値に達した場合、ターゲット衝突体の各頂点のそれぞれに接続された複数の辺間の距離関係をそれぞれ取得する第1取得モジュールと、
距離関係によって、ターゲット衝突体の1つのターゲット頂点に接続された3つの辺が互いに垂直であることが示された場合、ターゲット衝突体を標準的な直方体に変換すると決定する第1決定モジュールであって、規則な立体は、標準的な直方体を含む、第1決定モジュールと、を含む。1つのターゲット頂点とは、それに接続された3つの辺が互いに垂直である1つの頂点を指す。
【0101】
本実施例において、上記衝突データ処理装置の実施例は、上記の方法の実施例を参照すればよいが、これに限定されず、ここでは説明を省略する。
【0102】
任意選択的な構成として、衝突データ処理装置は、
規則な立体にマッチしたデータフォーマットでターゲット衝突体の頂点データを変換することにより、ターゲット衝突体の衝突データを取得する前に、
ターゲット衝突体の各頂点の中から現在の頂点を決定し、現在の頂点からの距離が最も近い第1参照点及び第2参照点を決定するステップと、
現在の頂点と第1参照点との間の第1距離、現在の頂点と第2参照点との間の第2距離を取得するステップと、
第1距離及び第2距離に基づいて、第3距離を決定するステップであって、第3距離は、直角三角形の斜辺の長さであり、前記直角三角形は、第1距離及び第2距離を直角辺の長さとする、ステップと、
ターゲット衝突体の各頂点のうち、現在の頂点、第1参照頂点、及び第2参照点を除く頂点の中から、第3距離にしたがって第3参照点を決定するステップであって、現在の頂点と第3参照点との間の距離は、第3距離である、ステップと、
第1参照点、第2参照点、及び第3参照点に基づいて、ターゲット衝突体の参照平面を決定するステップと、
ターゲット衝突体の各頂点のうち、現在の頂点、第1参照頂点、第2参照点、第3参照点を除く頂点の中から、現在の頂点からの距離が最も近い第4参照点を決定するステップであって、第4参照点と現在の頂点とを結ぶ線は、参照平面と互いに垂直である、ステップと、
現在の頂点をターゲット頂点として決定し、第1距離及び第2距離、並びに、現在の頂点と第4参照点との間の第4距離に基づいて、標準的な直方体にマッチした有向境界ボックスの収束方向を決定するステップであって、頂点データには、有向境界ボックスの収束方向の方向ベクトルが含まれる、ステップと、を実行する第2処理ユニットをさらに含む。
【0103】
本実施例において、上記衝突データ処理装置の実施例は、上記の方法の実施例を参照すればよいが、これに限定されず、ここでは説明を省略する。
【0104】
任意選択的構成として、第1取得ユニットは、
ターゲット衝突体の頂点の数が第1閾値に達した場合、前記ターゲット衝突体の全ての頂点の中心座標点を決定する第2決定モジュールと、
各頂点と中心座標点との間の距離関係を取得する第2取得モジュールと、
距離関係によって、各頂点と中心座標点との間の距離のいずれも第1距離閾値より小さいことが示された場合、ターゲット衝突体を参照直方体として認識すると決定する第3決定モジュールであって、規則な立体は、参照直方体を含む、第3決定モジュールと、
各頂点の前記距離関係に基づいて少なくとも2組の平行面を決定した場合、ターゲット衝突体を参照直方体として認識すると決定する第4決定モジュールであって、規則な立体は、参照直方体を含む、第4決定モジュールと、を含む。
【0105】
本実施例において、上記衝突データ処理装置の実施例は、上記の方法の実施例を参照すればよいが、これに限定されず、ここでは説明を省略する。
【0106】
任意選択的な構成として、衝突データ処理装置は、
ターゲット衝突体が参照直方体であると決定された後、ターゲット衝突体に対応する第1体積値と、参照直方体に対応する第2体積値と、を取得する第3取得モジュールと、
第1体積値と第2体積値との比率を決定する第5決定モジュールと、
比率が第2閾値に達した場合、ターゲット衝突体を参照直方体に変換すると決定する第6決定モジュールと、をさらに含む。
【0107】
本実施例において、上記衝突データ処理装置の実施例は、上記の方法の実施例を参照すればよいが、これに限定されず、ここでは説明を省略する。
【0108】
任意選択的な構成として、衝突データ処理装置は、第1処理モジュールをさらに含む。第1処理モジュールは、
ターゲット衝突体を参照直方体に変換すると決定された後、参照直方体に対応する投影平面を決定し、
参照直方体の各頂点を投影平面にマッピングすることにより、各頂点のそれぞれに対応する投影点を取得し、
頂点から対応する投影点までの投影距離に基づいて、各頂点をグループ化することにより、第1平面頂点セット及び第2平面頂点セットを取得し、第1平面頂点セット内の頂点が第1平面に位置し、第2平面頂点セット内の頂点が第2平面に位置し、
第1平面と第2平面が平行である場合、第1平面及び第2平面に基づいて、参照直方体にマッチした有向境界ボックスの収束方向を決定し、頂点データには、有向境界ボックスの収束方向の方向ベクトルが含まれる。
【0109】
本実施例において、上記衝突データ処理装置の実施例は、上記の方法の実施例を参照すればよいが、これに限定されず、ここでは説明を省略する。
【0110】
任意選択的な構成として、衝突データ処理装置は、第2処理モジュールをさらに含む。第2処理モジュールは、
ターゲット衝突体を参照直方体に変換すると決定された後、参照直方体の幾何学的中心点に対応する前方向ベクトルを決定し、前記前方向ベクトルが含まれる垂直平面を決定し、
前記前方向ベクトルの方向を軸として、垂直平面を複数回回転し、毎回の回転後に、
参照直方体の各頂点から垂直平面までの垂直距離に基づいて、各頂点をグループ化することにより、第3平面頂点セット及び第4平面頂点セットを取得する操作であって、第3平面頂点セット内の頂点が第3平面に位置し、第4平面頂点セット内の頂点が第4平面に位置する、操作と、
第3平面と第4平面が平行である場合、第3平面及び第4平面に基づいて、参照直方体にマッチした有向境界ボックスの収束方向を決定する操作であって、頂点データには、有向境界ボックスの収束方向の方向ベクトルが含まれる、操作と、を実行する。
【0111】
本実施例において、上記衝突データ処理装置の実施例は、上記の方法の実施例を参照すればよいが、これに限定されず、ここでは説明を省略する。
【0112】
任意選択的な構成として、衝突データ処理装置は、
第1体積値と第2体積値との比率が決定された後、比率が第2閾値に達していない場合、参照直方体の凸面体特徴を抽出する抽出モジュールであって、凸面体特徴には、参照直方体に対応する3つの軸方向辺の辺長が含まれ、3つの軸方向辺は、参照直方体の互いに垂直な辺である、抽出モジュールと、
第1軸方向辺の辺長と第3軸方向辺の辺長との第1差、及び、第2軸方向辺の辺長と第3軸方向辺の辺長との第2差が両方とも第2距離閾値より大きい場合、参照直方体を長い棒タイプの直方体に変換すると決定する第7決定モジュールと、
第1軸方向辺の辺長と第2軸方向辺の辺長との第3差、及び、第1軸方向辺の辺長と第3軸方向辺の辺長との第4差が両方とも第3距離閾値より大きい場合、参照直方体を屋根タイプの直方体に変換すると決定する第8決定モジュールと、をさらに含む。
【0113】
本実施例において、上記衝突データ処理装置の実施例は、上記の方法の実施例を参照すればよいが、これに限定されず、ここでは説明を省略する。
【0114】
任意選択的な構成として、衝突データ処理装置は、
各頂点と中心座標点との間の距離関係が取得された後、ターゲット衝突体の幾何学的中心点を取得し、ターゲット衝突体の各頂点と幾何学的中心点とを結ぶ線の距離を取得し、各結ぶ線の距離間の差が第3閾値より小さい場合、ターゲット衝突体を円柱体として認識し、幾何学的中心点の座標と、円柱体の半径とに基づいて、円柱体の空間関数を構築する第3処理モジュールであって、規則な立体は、円柱体を含み、頂点データには、円柱体の空間関数が含まれる、第3処理モジュールをさらに含む。
【0115】
本実施例において、上記衝突データ処理装置の実施例は、上記の方法の実施例を参照すればよいが、これに限定されず、ここでは説明を省略する。
【0116】
任意選択的な構成として、衝突データ処理装置は、
規則な立体にマッチしたデータフォーマットでターゲット衝突体の頂点データを変換することにより、ターゲット衝突体の衝突データを取得する前に、等距離境界ボックスを用いてターゲット衝突体を分解することにより、複数のサブ衝突体を取得する分解ユニットと、
ターゲット衝突体の各頂点を結ぶ線と、複数のサブ衝突体のそれぞれのサブ衝突体との交点を決定する第2決定ユニットと、
各サブ衝突体内の交点に対して順次に収束組み合わせを行うことにより、サブ衝突体に対応するサブ境界ボックスを取得する組み合わせユニットと、
各サブ境界ボックスを走査して、サイズの差が第4閾値より小さいサブ境界ボックスを合併することにより、ターゲット衝突体に対応する体境界ボックスを取得する第1合併ユニットと、
体境界ボックスの頂点データをターゲット衝突体の頂点データとする第3決定ユニットと、をさらに含む。
【0117】
本実施例において、上記衝突データ処理装置の実施例は、上記の方法の実施例を参照すればよいが、これに限定されず、ここでは説明を省略する。
【0118】
任意選択的構成として、
距離関係に基づいてターゲット衝突体を規則な立体に変換した後、規則な立体に複数の規則なサブ立体が含まれる場合、各規則なサブ立体のサイズを決定する第4決定ユニットと、
隣接する2つの規則なサブ立体のサイズの差が第5閾値より小さい場合、隣接する2つの規則なサブ立体を合併する第2合併ユニットと、
複数の規則なサブ立体のうち、第1規則なサブ立体のサイズと第2規則なサブ立体との差が第6閾値より小さく、かつ、第1規則なサブ立体が第2規則なサブ立体の内部に位置する場合、第1規則なサブ立体を除去する除去ユニットと、をさらに含む。
【0119】
任意選択的構成として、第1処理ユニットは、
規則な立体にマッチした幾何学的な指標のデータフォーマットでターゲット衝突体の頂点データを変換することにより、衝突データを取得する記憶モジュールを含む。
【0120】
本実施例において、上記衝突データ処理装置の実施例は、上記の方法の実施例を参照すればよいが、これに限定されず、ここでは説明を省略する。
【0121】
本願の実施例の別の態様によれば、上記衝突データ処理方法を実施するための電子機器がさらに提供されている。該電子機器は、図1に示された端末機器又はサーバであってもよい。本実施例では、該電子機器がサーバである場合を例に説明する。図10に示すように、該電子機器は、メモリ1002と、プロセッサ1004とを備える。該メモリ1002には、コンピュータプログラムが記憶され、該プロセッサ1004は、コンピュータプログラムによって、上記のいずれか1つの方法実施例におけるステップを実行するように構成される。
【0122】
任意選択的に、本実施例において、上記電子機器は、コンピュータネットワークの複数のネットワーク機器のうちの少なくとも1つのネットワーク機器に位置してもよい。
【0123】
任意選択的に、本実施例において、上記プロセッサは、コンピュータプログラムによって、以下のステップを実行するように構成されてもよい。
【0124】
S1では、仮想シーンにおける処理対象のターゲット衝突体を決定し、ターゲット衝突体は、頂点を含む凸多面体である。
【0125】
S2では、ターゲット衝突体の各頂点間の距離関係を取得する。
【0126】
S3では、距離関係に基づいてターゲット衝突体を規則な立体に変換した場合、規則な立体にマッチしたデータフォーマットでターゲット衝突体の頂点データを変換することにより、ターゲット衝突体の衝突データを取得する。
【0127】
任意選択的に、当業者であれば理解できるように、図10に示された構成は、模式的なものに過ぎず、電子装置電子機器は、スマートフォン(例えば、Androidスマホ、iOSスマホなど)、タブレットコンピュータ、パームトップ型パソコン、及びモバイルインターネットデバイス(MID:Mobile Internet Devices)やPADなどの端末機器であってもよい。図10は、上記電子装置電子機器の構成を限定するものではない。例えば、電子装置電子機器は、図10に示されたものより多く又は少ないコンポーネント(例えば、ネットワークインタフェースなど)を含んでもよく、あるいは、図10に示されたものと異なるように配置されてもよい。
【0128】
ここで、メモリ1002は、ソフトウェアプログラム及びモジュール、例えば、本願の実施例における衝突データ処理方法及び装置に対応するプログラム命令/モジュールを記憶するために使用可能である。プロセッサ1004は、メモリ1002に記憶されたソフトウェアプログラム及びモジュールを実行することにより、各種の機能アプリケーション及びデータ処理を実行し、即ち、上記の衝突データ処理方法を実現する。メモリ1002は、高速ランダムメモリを含んでもよく、不揮発性メモリ、例えば、1つ又は複数の磁気記憶装置、フラッシュメモリ、又は他の不揮発性固体メモリを含んでもよい。いくつかの実例において、メモリ1002は、プロセッサ1004に対して遠隔に設置されたメモリをさらに含んでもよく、これらの遠隔メモリは、ネットワークを介して端末に接続することができる。上記ネットワークの実例は、インターネット、企業イントラネット、ローカルエリアネットワーク、モバイル通信ネットワーク、およびこれらの組み合わせを含むが、これらに限定されない。ここで、メモリ1002は、具体的には、ターゲット衝突体の衝突データなどの情報を記憶するために用いられてもよいが、これに限定されない。一例として、図10に示すように、上記メモリ1002は、上記衝突データ処理装置における第1決定ユニット902と、第1取得ユニット904と、第1処理ユニット906とを含んでもよいが、これらに限定されない。また、上記衝突データ処理装置における他のモジュールユニットをさらに含んでもよいが、これらに限定されず、本例では説明を省略する。
【0129】
任意選択的に、上記の伝送装置1006は、ネットワークを介してデータを送受信する。上記のネットワークの具体的な実例は、有線ネットワーク及び無線ネットワークを含んでもよい。一実例において、伝送装置1006は、ネットワークケーブルを介して他のネットワーク機器及びルータに接続可能であることで、インターネット又はローカルエリアネットワークと通信可能であるネットワークインタフェースコントローラ(NIC:Network Interface Controller)を含む。一実例において、伝送装置1006は、無線方式でインターネットと通信するために使用される無線周波数(RF:Radio Frequency)モジュールである。
【0130】
また、上記電子機器は、仮想シーン及びそれに現れるターゲット衝突体に対応する仮想オブジェクトを表示するディスプレイ1008と、上記電子機器における各モジュール部品を接続する接続バス1010と、をさらに備える。
【0131】
他の実施例において、上記の端末機器又はサーバは、分散型システムのノードであってもよい。ここで、この分散型システムは、ブロックチェーンシステムであってもよい。このブロックチェーンシステムは、該複数のノードがネットワーク通信の形で接続された分散型システムであってもよい。ここで、ノード同士はピアツーピア(P2P:Peer To Peer)ネットワークを形成することができ、任意の形態のコンピューティング機器、例えば、サーバ、端末などの電子機器は、このピアツーピアネットワークに参加することで、該ブロックチェーンシステムのノードになることができる。
【0132】
本願の一態様によれば、コンピュータ命令を含むコンピュータプログラム製品又はコンピュータプログラムが提供されている。該コンピュータ命令は、コンピュータ可読記憶媒体に記憶されている。コンピュータ機器のプロセッサは、コンピュータ可読記憶媒体から該コンピュータ命令を読み取り、プロセッサが該コンピュータ命令を実行すると、該コンピュータ機器に上記の衝突データ処理方法を実行させる。ここで、該コンピュータプログラムは、実行されると、上記のいずれか1つの方法実施例におけるステップを実行するように構成される。
【0133】
任意選択的に、本実施例において、上記コンピュータ可読記憶媒体は、以下のステップを実行させるためのコンピュータプログラムを記憶するように構成されてもよい。
【0134】
S1では、仮想シーンにおける処理対象のターゲット衝突体を決定し、ターゲット衝突体は、頂点を含む凸多面体である。
【0135】
S2では、ターゲット衝突体の各頂点間の距離関係を取得し、前記距離関係は、前記ターゲット衝突体の形状特徴を表すためのものである。
【0136】
S3では、距離関係に基づいてターゲット衝突体を規則な立体に変換した場合、規則な立体にマッチしたデータフォーマットでターゲット衝突体の頂点データを変換することにより、ターゲット衝突体の衝突データを取得する。
【0137】
任意選択的に、本実施例では、当業者であれば理解できるように、上記実施例の各方法の全部又は一部のステップは、プログラムを介して端末機器の関連ハードウェアに指示することにより実行されてもよい。該プログラムは、コンピュータ可読記憶媒体に記憶されてもよい。記憶媒体は、フラッシュディスク、読み出し専用メモリ(ROM:Read-Only Memory)、ランダムアクセスメモリ(RAM:Random Access Memory)、磁気ディスク、又は光ディスクなどを含んでもよい。
【0138】
上述した本願の実施例の番号は、説明のためのものに過ぎず、実施例の優劣を示すものではない。
【0139】
上記実施例における統合されたユニットは、ソフトウェア機能ユニットの形で実現され、かつ独立した製品として販売又は使用される場合、上記コンピュータ可読記憶媒体に記憶されてもよい。このような理解に基づき、本願の構成は、本質的に、言い換えれば、従来技術に寄与する部分、あるいは、該構成の全部又は一部が、ソフトウェア製品の形で具現されてもよい。該コンピュータソフトウェア製品は、記憶媒体に記憶され、1台又は複数台のコンピュータ機器(パーソナルコンピュータ、サーバ、又はネットワーク機器などであってもよい)に、本願の各実施例に記載の方法の全部又は一部のステップを実行させるためのいくつかの命令を含む。
【0140】
本願の上記実施例では、各実施例の説明に独自の焦点があり、ある実施例で詳述されていない部分については、他の実施例の関連する説明を参照すればよい。
【0141】
本願で提供されたいくつかの実施例では、理解すべきものとして、掲示されたクライアントは、他の方式で実現してもよい。ここで、以上に説明した装置の実施例は、模式的なものに過ぎない。例えば、前記ユニットの分割は、論理的な機能の分割に過ぎず、実際に実現する際に別の分割方式であってもよい。例えば、複数のユニット又はコンポーネントを組み合わせたり、他のシステムに組み入れたりしてもよいし、一部の特徴を無視したり、実行しなかったりしてもよい。また、示され又は検討される相互結合、又は直接結合、又は通信接続は、いくつかのインタフェースを介したものであってもよく、ユニット又はモジュールの間接結合又は通信接続は、電気的又は他の形式であってもよい。
【0142】
前記分離した部品として説明されたユニットは、物理的に分離したものであってもなくてもよい。ユニットとして示された部品は、物理的なユニットであってもなくてもよく、即ち、1つの場所に位置してもよいし、ネットワーク上の複数のユニットに分散してもよい。実際の必要に応じて、その中の一部又は全部のユニットを選択して、本実施例に係る発明の目的を達成してもよい。
【0143】
また、本願の各実施例における各機能ユニットが1つの処理ユニットに統合されてもよいし、各ユニットそれぞれが個別的で物理的に存在してもよいし、2つ以上のユニットが1つのユニットに統合されてもよい。上述した統合されたユニットは、ハードウェアの形で実現されてもよいし、ソフトウェア機能ユニットの形で実現されてもよい。
【0144】
上記は、本願の好ましい実施形態に過ぎない。指摘すべきものとして、当業者にとっては、本願の原理から逸脱することなく、いくつかの改善及び修正を行うことも可能である。これらの改善及び修正も、本願の保護範囲と見なされるべきである。
【符号の説明】
【0145】
100 ターゲット衝突体
102 端末機器
104 ネットワーク
106 サーバ
108 データベース
902 第1決定ユニット
904 第1取得ユニット
906 第1処理ユニット
1002 メモリ
1004 プロセッサ
1006 伝送装置
1008 ディスプレイ
1010 接続バス
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
【手続補正書】
【提出日】2023-11-08
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【0001】
本願は、2021年6月22日に中国特許庁に提出された、出願番号が第202110694872.2号であり、発明の名称が「衝突データ処理方法及び装置、記憶媒体、並びに電子機器」である中国特許出願に基づく優先権を主張し、その全ての内容は参照することにより本願に組み込まれている。
【0002】
本願は、コンピュータ分野に関し、具体的には、衝突データ処理方法、装置、記憶媒体、プログラム製品、及び電子機器に関する。
【背景技術】
【0003】
仮想ゲームシーンでは、異なる仮想オブジェクト間で多くのインタラクティブな動作が発生することが多いため、上記の仮想オブジェクトに対応する衝突体によって生成される衝突データを計算して、その計算結果に応じた仮想オブジェクトの的確な制御を容易にする必要がある。
【0004】
関連技術の衝突データは、通常、グラフィックエンジン(例えば、3dmax)で美術製作を行ってから、ゲームエンジンにインポートされて使用される。このような方式は、美術コストが相対的に高く、精度の高い相対的に簡単な衝突を製作しようとすると、美術コストも一層高くなる。また、モデルのメッシュ(Mesh)を直接使用して衝突とする方式もあり、このような方式は、計算結果の精度が高いものの、モデル内のMeshの頂点の数が多すぎるため、データ計算の消費が大きくなるという問題をもたらす。ここでの消費は、下記の3つを含む。1、仮想ゲームシーンで提供される3次元空間内で立体を探索するための消費:衝突される可能性がある衝突境界ボックスを探索する必要があり、数が少ないほど、消費が低くなる。2、上記立体間の物理的な交点求めの消費:単純な立体であるほど、交点求めの消費が低くなる。3、物理的な使用消費:使用量が少ないほど、消費が低くなる。
【0005】
つまり、関連技術で提供される仮想シーンにおいて衝突が発生する仮想オブジェクトに対する衝突計算に必要な消費が大きい。これにより、仮想オブジェクトに対応する衝突体の衝突データを処理する際の操作の難しさが増加し、その結果、処理効率が低いという問題がある。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本願の実施例は、関連技術における衝突データ処理の操作の難さが大きいことに起因する処理効率が低いという技術的問題の解決に役立つ衝突データ処理方法、装置、記憶媒体、プログラム製品、及び電子機器を提供する。
【課題を解決するための手段】
【0007】
本願の実施例の一態様によれば、電子機器で実行される衝突データ処理方法が提供されている。前記方法は、仮想シーンにおける処理対象のターゲット衝突体を決定するステップであって、上記ターゲット衝突体は、頂点を含む凸多面体である、ステップと、上記ターゲット衝突体の各頂点間の距離関係を取得するステップであって、前記距離関係は、前記ターゲット衝突体の形状特徴を表すためのものである、ステップと、上記距離関係に基づいて上記ターゲット衝突体を規則な立体に変換した場合、上記規則な立体にマッチしたデータフォーマットで上記ターゲット衝突体の頂点データを変換することにより、上記ターゲット衝突体の衝突データを取得するステップと、を含む。
【0008】
本願の実施例の他の態様によれば、衝突データ処理装置がさらに提供されている。前記装置は、仮想シーンにおける処理対象のターゲット衝突体を決定する第1決定ユニットであって、上記ターゲット衝突体は、頂点を含む凸多面体である、第1決定ユニットと、上記ターゲット衝突体の各頂点間の距離関係を取得する第1取得ユニットであって、前記距離関係は、前記ターゲット衝突体の形状特徴を表すためのものである、第1取得ユニットと、上記距離関係に基づいて上記ターゲット衝突体を規則な立体に変換した場合、上記規則な立体にマッチしたデータフォーマットで上記ターゲット衝突体の頂点データを変換することにより、上記ターゲット衝突体の衝突データを取得する第1処理ユニットと、を含む。
【0009】
本願の実施例の別の態様によれば、コンピュータ可読記憶媒体がさらに提供されている。該コンピュータ可読記憶媒体には、コンピュータプログラムが記憶されている。ここで、該コンピュータプログラムは、実行されると、上記の衝突データ処理方法を実行させるように構成される。
【0010】
本願の実施例の別の態様によれば、メモリとプロセッサとを備える電子機器がさらに提供されている。上記メモリには、コンピュータプログラムが記憶されており、上記プロセッサは、前記コンピュータプログラムによって、上記の衝突データ処理方法を実行するように構成される。
【0011】
本願の実施例の別の態様によれば、コンピュータ命令を含むコンピュータプログラム製品がさらに提供されている。該コンピュータ命令がコンピュータ可読記憶媒体に記憶されており、プロセッサが該コンピュータ命令を実行すると、プロセッサに衝突データ処理方法を実行させる。
【図面の簡単な説明】
【0012】
ここで説明する図面は、本願のさらなる理解を提供するためのものであり、本願の一部を構成する。本願の模式的な実施例及びその説明は、本願を解釈するためのものであり、本願の不適切な限定を構成するものではない。図面では、
【0013】
図1】本願の実施例による任意選択的な衝突データ処理方法のハードウェア環境の模式図である。
図2】本願の実施例による任意選択的な衝突データ処理方法のフローチャートである。
図3】本願の実施例による任意選択的な衝突データ処理方法の模式図である。
図4】本願の実施例による他の任意選択的な衝突データ処理方法の模式図である。
図5】本願の実施例による別の任意選択的な衝突データ処理方法の模式図である。
図6】本願の実施例による別の任意選択的な衝突データ処理方法の模式図である。
図7】本願の実施例による別の任意選択的な衝突データ処理方法の模式図である。
図8】本願の実施例による他の任意選択的な衝突データ処理方法のフローチャートである。
図9】本願の実施例による任意選択的な衝突データ処理装置の構成の模式図である。
図10】本願の実施例による任意選択的な電子機器の構成の模式図である。
【発明を実施するための形態】
【0014】
当業者が本願の構成をより良く理解できるようにするために、以下、本願の実施例の図面を参照しながら、本願の実施例の構成を明確かつ完全に説明する。明らかなように、説明する実施例は、本願の一部の実施例に過ぎず、全部の実施例ではない。当業者が創造的な労働をせずに本願の実施例から得る全ての他の実施例は、本願の保護範囲に属すべきである。
【0015】
説明すべきものとして、本願の明細書、特許請求の範囲、及び上記図面における「第1」、「第2」などの用語は、類似の対象を区別するためのものであり、必ずしも特定の順序又は優先順位を説明するために用いられない。理解すべきものとして、このように使用される用語は、ここで説明される本願の実施例が、ここで図示又は説明されたもの以外の順序で実施できるように、適切な場合には交換可能である。また、用語「含む」、「備える」、及びそれらの任意の変形は、非排他的な包含をカバーすることを意図するものである。例えば、一連のステップ又はユニットを含むプロセス、方法、システム、製品、又は機器は、必ずしも、明示的にリストされたステップ又はユニットに限定されるものではなく、明示的にリストされていない他のステップ又はユニット、あるいは、これらのプロセス、方法、製品、又は機器に固有の他のステップ又はユニットを含んでもよい。
【0016】
本願の実施例の一態様によれば、衝突データ処理方法が提供されている。上記衝突データ処理方法は、図1に示されたようなハードウェア環境における衝突データ処理システムに適用することができるが、これに限定されない。ここで、該衝突データ処理システムは、端末機器102、ネットワーク104、サーバ106、及びデータベース108を含んでもよいが、これらに限定されない。端末機器102では、ターゲットユーザアカウントでログインしたターゲットクライアント(図1に示すように、該ターゲットクライアントは、ゲームクライアントを例とする)が実行されている。上記端末機器102は、ヒューマンコンピュータインタラクションスクリーンと、プロセッサと、メモリと、を備える。ヒューマンコンピュータインタラクションスクリーンは、仮想シーンを表示するとともに(例えば、図1に示された表示インタフェースには、ゲームタスクにおける仮想ゲームシーンが現れる)、仮想オブジェクトを制御するためのヒューマンコンピュータインタラクション操作を受け付けるために、ヒューマンコンピュータインタラクションインタフェースを提供する。該仮想オブジェクトは、それに対して設置されたターゲット衝突体によって、仮想シーンで発生するその物理属性のインタラクションを検出し、即ち、仮想オブジェクトに対応するターゲット衝突体間で衝突が発生するか否かを検出することができるが、これに限定されない。プロセッサは、上記のヒューマンコンピュータインタラクション操作に応答してインタラクション命令を生成し、該インタラクション命令をサーバに送信する。メモリは、仮想オブジェクトの関連属性データを記憶する。
【0017】
また、サーバ106には、処理エンジンが含まれ、処理エンジンは、データベース108に対して記憶又は読み取りの操作を実行する。具体的には、処理エンジンは、距離関係に基づいて、ターゲット衝突体が規則な立体に変換可能であるか否かを決定し、規則な立体に変換可能であると決定した場合、規則な立体にマッチしたデータフォーマットでターゲット衝突体の頂点データを変換してデータベース108に記憶するとともに、衝突計算のために、データベース108から上記の簡素化処理後の衝突データを読み取る。
【0018】
具体的なプロセスは、以下のステップの通りである。ステップS102では、サーバ106が、ネットワーク104を介して、端末機器102で決定された仮想シーンにおける処理対象のターゲット衝突体(図1に示すように、仮想オブジェクトの体の一部分に対応する衝突体であってもよい)100を取得する。ここでのターゲット衝突体は、頂点を含む凸多面体である。次に、ステップS104~S106では、サーバ106が、ターゲット衝突体の各頂点間の距離関係を取得し、距離関係に基づいてターゲット衝突体を規則な立体に変換した場合、該規則な立体にマッチしたデータフォーマットでターゲット衝突体の頂点データを変換することにより、ターゲット衝突体の衝突データを取得する。
【0019】
説明すべきものとして、本実施例では、仮想シーンにおける処理対象のターゲット衝突体を決定した後、該ターゲット衝突体の各頂点間の距離関係を取得する。また、該距離関係に基づいて、ターゲット衝突体が、構造が簡素化された規則な立体に変換可能であるか否かを決定し、規則な立体に変換すると決定した場合、規則な立体にマッチしたデータフォーマットで上記ターゲット衝突体の頂点データを変換することにより、簡素化処理後のターゲット衝突体の衝突データを取得する。これにより、構造が複雑なターゲット衝突体を、構造が簡素化された規則な立体に変換し、規則な立体にマッチしたデータフォーマットで衝突体の衝突データを記憶することが実現される。簡素化処理後の衝突データを利用して衝突演算を行うことで、電子機器による衝突データの計算消費を減らし、電子機器による衝突データの処理効率を向上させる効果を達成し、さらに、関連技術における衝突データの処理効率が低いという問題を克服することができる。
【0020】
一実施例において、上記端末機器は、ターゲットクライアントが配置された端末機器であってもよく、携帯電話(例えば、Android携帯電話、iOS携帯電話など)、ノートパソコン、タブレットコンピュータ、パームトップ型パソコン、モバイルインターネットデバイス(MID:Mobile Internet Devices)、PAD、デスクトップコンピュータ、スマートテレビなどのうちの少なくとも1つを含んでもよいが、これらに限定されない。ターゲットクライアントは、ビデオクライアント、インスタントコミュニケーションクライアント、ブラウザクライアント、教育クライアントなど、物理的なインタラクションを必要とする仮想オブジェクトが設定されたクライアントであってもよく、該仮想オブジェクトは、衝突体によってインタラクション衝突の演算を行う。上記ネットワークは、有線ネットワーク、無線ネットワークを含んでもよいが、これらに限定されない。そのうち、該有線ネットワークは、ローカルエリアネットワーク、大都市圏ネットワーク、及び広域ネットワークを含み、該無線ネットワークは、ブルートゥース、WIFI、及び無線通信を実現する他のネットワークを含む。上記サーバは、単一のサーバであってもよいし、複数のサーバからなるサーバクラスタであってもよいし、クラウドサーバであってもよい。上記は、一例に過ぎない。これに対して、本実施例は一切限定しない。
【0021】
一実施形態において、図2に示すように、上記衝突データ処理方法は、例えば、電子機器で実行されてもよい。電子機器は、例えば、図1に示された端末機器又はサーバなどである。該方法は、以下のステップを含む。
【0022】
S202では、仮想シーンにおける処理対象のターゲット衝突体を決定し、ターゲット衝突体は、頂点を含む凸多面体である。
【0023】
上記ターゲット衝突体は、仮想シーンにおける仮想オブジェクト(例えば、仮想シーンにおける3次元のオブジェクト)に対して配置された衝突体であってもよいが、これに限定されない。ここでの仮想オブジェクトは、例えば、ユーザが制御する仮想キャラクター、仮想アイテム又は乗り物など、仮想シーンに現れる動的なオブジェクトであってもよいし、例えば、建物、植物景観など、予め配置された静的なオブジェクトであってもよいが、これらに限定されない。上記衝突体は、仮想オブジェクトに対して配置された、インタラクション中に発生する衝突を検出するためのキャリアであってもよいが、これに限定されない。本実施例におけるターゲット衝突体は、構造が複雑であり、仮想オブジェクト自身の構造フレーム(例えば、仮想キャラクターの骨格フレーム、建物の鉄骨構造フレームなど)に合わせて設計された構造であり、つまり、複数の頂点を含む凸多面体である。
【0024】
S204では、ターゲット衝突体の各頂点間の距離関係を取得する。距離関係は、ターゲット衝突体の形状特徴を表すためのものである。
【0025】
説明すべきものとして、関連技術では、電子機器における衝突演算の消費が大きいことは、通常、衝突体の幾何学的構造が複雑なため、大量の頂点データを導入する必要があり、衝突演算、美術製作を行う際に大量のデータ計算の消費が発生するからである。上記の問題を克服するために、本実施例は、ターゲット衝突体の各頂点間の距離関係に基づいて、ターゲット衝突体を簡素化する構成を提供し、ターゲット衝突体を、構造が簡素化された規則な立体に変換し、規則な立体で衝突データを記憶し、電子機器による衝突体の衝突データの処理の演算効率を向上させる(例えば、衝突体が衝突するか否かを決定する演算効率を向上させる)。
【0026】
一実施例において、各頂点間の距離関係は、各頂点間の距離の比較結果を表すためのものである。該距離関係は、ターゲット衝突体の形状特徴を反映することができる。上記距離関係は、ターゲット衝突体の各頂点を走査し、各々の頂点を現在の頂点として、他の各頂点(即ち、現在の頂点を除く頂点)と該現在の頂点との間の距離をそれぞれ取得することにより複数の距離を取得してから決定された複数の距離間の関係であってもよい。該距離関係は、ターゲット衝突体をそれに類似する構造の規則な立体として認識するために用いることができる。ここで、規則な立体は、直方体、円柱体を含んでもよいが、これらに限定されない。ターゲット衝突体の頂点データをそれに類似する規則な立体のデータフォーマットで変換し、即ち、頂点データのフォーマットを類似する規則な立体のデータフォーマットに変換することにより、衝突体の衝突データを簡素化するという目的を達成する。
【0027】
S206では、距離関係に基づいてターゲット衝突体を規則な立体に変換した場合、規則な立体にマッチしたデータフォーマットでターゲット衝突体の頂点データを変換することにより、ターゲット衝突体の衝突データを取得する。衝突データのデータフォーマットは、規則な立体のデータフォーマットと一致する。ターゲット衝突体の衝突データは、構造が簡素化されたターゲット衝突体を表すためのものである。
【0028】
一実施例において、上記の規則な立体にマッチしたデータフォーマットは、規則な立体の指標パラメータに対応するフォーマットであってもよいが、これに限定されない。例えば、規則な立体が直方体である場合、規則な立体の指標パラメータは、中心点座標と、有向境界ボックスの収束方向と、を含んでもよい。規則な立体が円柱体である場合、規則な立体の指標パラメータは、中心点座標と、半径と、を含んでもよいが、これらに限定されない。これは、例示である。これに対して、本実施例は一切限定しない。
【0029】
また、一実施例において、上記の規則な立体の直方体は、標準的な直方体、参照直方体を含んでもよいが、これらに限定されない。そのうち、参照直方体は、標準的な直方体の構造に類似する構造、即ち、近似直方体であってもよいが、これに限定されない。
【0030】
一実施例において、参照直方体であると決定した後、該方法は、仮想シーンにおける参照直方体に具体的に対応する構造をさらに認識するために、参照直方体の凸面体特徴を抽出する(例えば、参照直方体の凸面に対して特徴抽出を行う)ステップをさらに含んでもよいが、これに限定されない。例えば、参照直方体の縦・横・高さの3つの軸方向の辺長間の関係として、そのうちの2つの軸方向の辺長が小さくて、第3軸方向の辺長よりはるかに小さい場合、その参照直方体を木の棒として認識し、1つの軸方向の辺長が短くて、それ以外の軸方向の辺長よりはるかに小さい場合、その参照直方体を屋根として認識することができる。3つの軸方向の辺長は、参照直方体の縦・横・高さを含む3つの値である。これは、例示である。これに対して、本実施例は一切限定しない。
【0031】
一実施例において、上記の衝突データの処理方法は、単一の仮想オブジェクトモデルに対応する衝突体のデータ最適化プロセスに適用されてもよいが、これらに限定されず、仮想シーンにおける全ての仮想オブジェクトモデルのそれぞれに対応する衝突体のデータに対して簡素化・最適化処理をバッチで行ってもよく、電子機器による衝突データの処理効率を向上させる。
【0032】
また、一実施例において、異なる具体的な用途に応じて、異なる精度を選択して衝突データを処理してもよいが、これに限定されない。例えば、クライアントに適用される場合、衝突データ処理の精度要求が相対的に高いが、サーバに適用される場合、衝突データ処理の精度要求が相対的に低い。説明すべきものとして、ここでの精度は、衝突データを変換する際のデータ精度であってもよいが、これに限定されない。衝突データの処理において異なる精度を区別することで、美術設計者が簡素化・最適化アルゴリズム及びそのパラメータを深く理解する必要がなくなり、複数の精度の処理操作を簡単に提供することができ、処理操作を簡素化して電子機器の処理効率を向上させるという目的が達成される。
【0033】
本願で提供される実施例によれば、仮想シーンにおける処理対象のターゲット衝突体を決定した後、該ターゲット衝突体の各頂点間の距離関係を取得する。また、該距離関係に基づいて、ターゲット衝突体が、構造が簡素化された規則な立体に変換可能であるか否かを決定し、規則な立体に変換すると決定した場合、規則な立体にマッチしたデータフォーマットで上記ターゲット衝突体の頂点データを変換することにより、簡素化処理後のターゲット衝突体の衝突データを取得する。これにより、構造が複雑なターゲット衝突体を、構造が簡素化された規則な立体に変換し、規則な立体にマッチしたデータフォーマットで衝突体の衝突データを記憶することが実現される。簡素化処理後の衝突データを利用して衝突演算を行うことで、衝突データの計算消費を減らし、衝突データの処理効率を向上させる効果を達成し、さらに、関連技術における電子機器による衝突データの処理効率が低いという問題を克服する。
【0034】
任意選択的な構成として、ターゲット衝突体の各頂点間の距離関係を取得するステップは、
ターゲット衝突体の頂点の数が第1閾値に達した場合、ターゲット衝突体の各頂点のそれぞれに接続された複数の辺間の距離関係をそれぞれ取得するステップを含む。即ち、複数の辺の長さの比較結果を決定する。
【0035】
これに加えて、衝突データ処理方法は、距離関係によって、ターゲット衝突体の1つのターゲット頂点に接続された3つの辺が互いに垂直であることが示された場合、ターゲット衝突体を標準的な直方体に変換するステップであって、規則な立体は、標準的な直方体を含む、ステップをさらに含む。ここで、1つのターゲット頂点は、それに接続された3つの辺が互いに垂直である1つの頂点である。
【0036】
一実施例において、上記第1閾値は、標準的な直方体の頂点の数であってもよいが、これに限定されない。第1閾値は、8であってもよいが、これに限定されない。つまり、ターゲット衝突体の頂点の数が8に達した場合、各頂点間の距離を取得し、各距離間の関係に基づいて、該ターゲット衝突体が標準的な直方体であるか否かを認識する。
【0037】
一実施例において、規則な立体にマッチしたデータフォーマットでターゲット衝突体の頂点データを変換することにより、ターゲット衝突体の衝突データを取得する前に、該方法は、
ターゲット衝突体の各頂点の中から現在の頂点を決定し、現在の頂点からの距離が最も近い第1参照点及び第2参照点を決定するステップと、
現在の頂点と第1参照点との間の第1距離、現在の頂点と第2参照点との間の第2距離を取得するステップと、
第1距離及び第2距離に基づいて、第3距離を決定するステップであって、前記第3距離は、直角三角形の斜辺の長さであり、前記直角三角形は、第1距離及び第2距離を直角辺の長さとする、ステップと、
ターゲット衝突体の各頂点のうち、現在の頂点、第1参照点、及び第2参照点を除く頂点の中から、第3距離にしたがって第3参照点を決定するステップであって、現在の頂点と第3参照点との間の距離は、第3距離である、ステップと、
第1参照点、第2参照点、及び第3参照点に基づいて、ターゲット衝突体の参照平面を決定するステップと、
ターゲット衝突体の各頂点のうち、現在の頂点、第1参照点、第2参照点、第3参照点を除く頂点の中から、現在の頂点からの距離が最も近い第4参照点を決定するステップであって、第4参照点と現在の頂点とを結ぶ線は、参照平面と互いに垂直である、ステップと、
現在の頂点をターゲット頂点として決定し、第1距離及び第2距離、並びに、現在の頂点と第4参照点との間の第4距離に基づいて、標準的な直方体にマッチした有向境界ボックスの収束方向を決定するステップであって、頂点データには、有向境界ボックスの収束方向の方向ベクトルが含まれる、ステップと、をさらに含む。
【0038】
具体的には、図3に示されたターゲット衝突体を参照して説明する。
【0039】
該ターゲット衝突体の頂点の数が8に達したと決定した場合、任意の1点から走査して計算する。図3に示すように、現在の頂点である頂点Aから計算を開始すると仮定する。頂点Aから最も近い2つの頂点B(即ち、第1参照点)及び頂点C(即ち、第2参照点)を見付ける。距離ABはL1(図3に示された太い横線、即ち、第1距離)に対応しており、距離ACはL2(図3に示された太い縦線、即ち、第2距離)に対応している。直方体規則に基づいて、頂点A、頂点B、及び頂点Cが隣接する頂点であり、かつ、ABがACに垂直であることを決定することができる。
【0040】
次に、頂点B及び頂点Cのそれぞれの位置、並びに、両者のそれぞれの距離L1及びL2に基づいて、三角形ABCの斜辺Cの距離Lxを計算する。該ターゲット衝突体の残りの頂点を走査して、各頂点と頂点Aとの間の距離を順次に取得する。頂点Aとの距離もLx(即ち、第3距離)である頂点D(即ち、第3参照点)を、三角形ABCが位置する平面(即ち、参照平面)の最後の点として決定する。
【0041】
次に、頂点B、C、Dを除く残りの頂点から頂点Aまでの距離を走査して、頂点Aからの距離が最も近い頂点Eを見付ける。直方体の幾何学的関係から、AB、AC、AEがそれぞれ直方体の3つの互いに垂直な辺であることを決定することができる。この3つの辺のそれぞれに対応するベクトルは、標準的な直方体の前方向(Forward)ベクトル、右方向(Right)ベクトル、上方向(Up)ベクトルとして決定することができる。3つの辺の長さを走査して比較し、最も長い辺AE(その距離は第4距離である)を該直方体の前方向(Forward)ベクトルとして認識し、それを現在認識された標準的な直方体の有向境界ボックス(OBB:Oriented Bounding Box)の精確な収束方向として決定する。
【0042】
本願で提供される実施例によれば、ターゲット衝突体の頂点の数が第1閾値に達し、かつ、ターゲット頂点に接続された3つの辺が互いに垂直である場合、ターゲット衝突体を標準的な直方体として認識する。次に、ターゲット頂点とそれ以外の頂点との間の距離関係に基づいて、該標準的な直方体のOBBの収束方向を決定し、次に、標準的な直方体に対応するデータフォーマットで上記ターゲット衝突体の頂点データを変換することにより、ターゲット衝突体を簡素化された標準的な直方体に変換した衝突データを取得し、衝突データを簡素化して、電子機器が衝突演算時に衝突データを使用して処理を行う効率を向上させるという効果を達成する。
【0043】
任意選択的な構成として、ターゲット衝突体の各頂点間の距離関係を取得するステップは、
ターゲット衝突体の頂点の数が第1閾値に達した場合、前記ターゲット衝突体の全ての頂点の中心座標点を決定するステップS1であって、中心座標点は、全ての頂点の座標値の平均値である、ステップS1と、
各頂点と中心座標点との間の距離関係を取得するステップS2と、を含む。ここで、いずれか1つの頂点に対応する距離関係は、該頂点と中心座標点との間の距離を表すためのものである。
【0044】
一実施例において、距離関係の決定に加えて、衝突データ処理方法は、
距離関係によって、各頂点と中心座標点との間の距離のいずれも第1距離閾値より小さいことが示された場合、ターゲット衝突体を参照直方体として認識すると決定するステップ1)であって、規則な立体は、参照直方体を含む、ステップ1)と、
各頂点の距離関係に基づいて少なくとも2組の平行面を決定した場合、ターゲット衝突体を参照直方体として認識すると決定するステップ2)であって、規則な立体は、参照直方体を含む、ステップ2)と、をさらに含んでもよい。ここで、各組の平行面は2つの互いに平行な面を含み、2つの互いに平行な面は例えば、それぞれ4つの頂点を含む。
【0045】
説明すべきものとして、仮想シーンに現れる衝突体は、全てが標準的な直方体であるわけではなく、ほとんどが近似直方体(即ち、参照直方体であり、大体標準的な直方体とも呼ばれる)である。このため、本実施例では、以下の少なくとも1つの方式によって、ターゲット衝突体が大体標準的な直方体であるか否かを決定してもよい。1)衝突体の全ての頂点と中心座標点との距離がほぼ等しい(即ち、各頂点と中心座標点との間の距離のいずれも第1距離閾値より小さい)場合、該衝突体を大体標準的な直方体として認識すると決定することができる。2)衝突体の8つの頂点に互いにほぼ平行な平面が少なくとも2組存在する(即ち、各頂点に基づいて少なくとも2組の平行面を決定した)場合、該衝突体を大体標準的な直方体として認識すると決定することができる。
【0046】
一実施例において、ターゲット衝突体を参照直方体として認識すると決定した後、衝突データ処理方法は、ターゲット衝突体に対応する第1体積値と、参照直方体に対応する第2体積値と、を取得するステップと、第1体積値と第2体積値との比率を決定するステップと、比率が第2閾値に達した場合、ターゲット衝突体を参照直方体に変換すると決定するステップと、をさらに含む。
【0047】
説明すべきものとして、ここでの第2閾値は、異なる具体的な用途シーンに応じて設定された異なる閾値であってもよいが、これに限定されない。例えば、クライアントに適用される場合、衝突データ処理の精度要求が相対的に高いため、ここでの閾値は、高い数値に設定されるが、サーバに適用される場合、衝突データ処理の精度要求が相対的に低いため、ここでの閾値は、低い数値に設定される。ここで、該第2閾値の範囲は、1以下の数値である。
【0048】
例えば、第2閾値が1であると仮定すると、ターゲット衝突体に対応する第1体積値V1と、参照直方体に対応する第2体積値V2との比率がpである場合、該比率pと第2閾値1とを比較する。p=1の場合、参照直方体として認識されたターゲット衝突体が参照直方体に変換可能であると決定する。比率が第2閾値1より小さい場合は、両者間の差異が大きいことを示し、参照直方体として認識されたターゲット衝突体を参照直方体に変換する必要がないため、ターゲット衝突体の頂点データを、参照直方体のデータフォーマットにマッチした衝突データに変換する必要がない。
【0049】
本願で提供される実施例によれば、各頂点と中心座標点との間の距離のいずれも第1距離閾値より小さく、又は、各頂点に少なくとも2組の平行面が存在する場合、ターゲット衝突体を参照直方体(近似直方体)として認識する。この場合、ターゲット衝突体と参照直方体との体積比較結果を利用して、上記の近似認識結果の信頼性を検証する。体積比較結果によって、閾値条件に達したことが示された場合、衝突演算時に衝突データを使用して処理を行う効率を向上させるという効果を達成するために、ターゲット衝突体の頂点データを簡素化された参照直方体に対応するフォーマットでの衝突データに変換すると決定する。
【0050】
任意選択的な構成として、ターゲット衝突体を参照直方体に変換すると決定した後、衝突データ処理方法は、
参照直方体に対応する投影平面を決定するステップS1と、
参照直方体の各頂点を投影平面にマッピングすることにより、各頂点のそれぞれに対応する投影点を取得するステップS2と、
頂点から対応する投影点までの投影距離に基づいて、各頂点をグループ化することにより、第1平面頂点セット及び第2平面頂点セットを取得するステップS3であって、第1平面頂点セット内の頂点が第1平面に位置し、第2平面頂点セット内の頂点が第2平面に位置する、ステップS3と、
第1平面と第2平面が平行である場合、第1平面及び第2平面に基づいて、参照直方体にマッチした有向境界ボックスの収束方向を決定するステップS4であって、頂点データには、有向境界ボックスの収束方向の方向ベクトルが含まれる、ステップS4と、をさらに含む。
【0051】
説明すべきものとして、ターゲット衝突体を参照直方体として認識した後、それをBox衝突ボックスに変換するとともに、該境界ボックスに対応するOBBの収束方向を認識する必要もある。任意選択的な実施例として、投影平面分離軸方向OBB収束アルゴリズムによって、参照直方体のOBBの収束方向を決定してもよいが、これに限定されない。
【0052】
具体的には、図4に示されたターゲット衝突体を参照して説明する。
【0053】
図4に示すように、ターゲット衝突体が参照直方体として認識され、該参照直方体に対応する投影平面が、図4に示された網掛け領域で構成される平面であって、水平面に垂直な垂直面であることが決定されたと仮定する。
【0054】
次に、該参照直方体の全ての頂点を走査し、頂点Aを例に説明を続ける。投影平面上の、該頂点Aの投影点A1を計算し、次に、投影平面上の、他の頂点のそれぞれに対応する投影点を見付ける。さらに、投影平面上の、頂点Bの投影点B1と投影点A1との間の距離(図示の点線A1B1間の距離)が最も近いと仮定する。次に、AA1とBB1のそれぞれの投影距離の大きさを比較し、その距離比較結果に基づいて、頂点Aと頂点Bを遠平面点と近平面点に分ける。
【0055】
参照直方体の全ての頂点の走査が完了すると、上記の参照直方体の8つの頂点の中から、遠距離平面の4つの頂点と近距離平面の4つの頂点、即ち、第一平面頂点セットと第二平面頂点セットが決定される。第一平面頂点セット内の頂点が第一平面に位置し、第二平面頂点セット内の頂点が第二平面に位置し、かつ、第一平面と第二平面の2つの平面がほぼ平行である場合、該参照直方体が近似直方体であることをさらに決定することができる。次に、ここに記載された方式に基づいて決定された参照直方体に対して、直方体の3つの軸方向、即ち、前方向(Forward)、右方向(Right)、上方向(Up)を上記の方式で認識する。
【0056】
3つの軸方向を決定した後、参照直方体の全ての頂点に対して、再度の走査計算を行い、それらを3つの軸方向にそれぞれ投影して、最大値及び最小値を取得する。次に、ここでの最大値及び最小値に基づいて、各軸方向上の平均値、即ち、X軸方向の半辺長の値ExtendX、Y軸方向の半辺長の値ExtendY、及びZ軸方向の半辺長の値ExtendZを求める。次に、収束によって、OBBの的確な収束方向を取得する。
【0057】
OBB収束アルゴリズムを使用しないと、衝突体の展示効果は、図5の左側の図に示すように、ひどく合っていない。OBBの向きを大まかに計算すると、展示効果は、図5の中央の図のように、方向が正しいが、まだあまり合っていない。完全なOBB収束アルゴリズムを使用すると、展示効果は、図5の右側の図のように、元のモデルに精確に合うことができる。
【0058】
本願で提供される実施例によれば、投影平面分離軸方向OBB収束アルゴリズムを用いて、参照直方体に対してより的確な収束方向を決定することにより、記憶及び処理が容易な衝突データへの変換を容易にする。
【0059】
任意選択的な構成として、ターゲット衝突体を参照直方体に変換すると決定した後、衝突データ処理方法は、
参照直方体の幾何学的中心点に対応する前方向ベクトルを決定し、前記前方向ベクトルが含まれる垂直平面を決定するステップS1と、
前記前方向ベクトルの方向を軸として、垂直平面を複数回回転し(例えば、N回回転し、Nは正の整数)、毎回の回転後に、
参照直方体の各頂点から垂直平面までの垂直距離に基づいて、各頂点をグループ化することにより、第3平面頂点セット及び第4平面頂点セットを取得する操作であって、第3平面頂点セット内の頂点が第3平面に位置し、第4平面頂点セット内の頂点が第4平面に位置する、操作を実行するステップS2と、
第3平面と第4平面が平行である場合、第3平面及び第4平面に基づいて、参照直方体にマッチした有向境界ボックスの収束方向を決定するステップS3であって、頂点データには、有向境界ボックスの収束方向の方向ベクトルが含まれる、ステップS3と、をさらに含む。
【0060】
説明すべきものとして、ターゲット衝突体を参照直方体として認識した後、それをBox衝突ボックスに変換するとともに、該境界ボックスに対応するOBBの収束方向を認識する必要もある。任意選択的な実施例として、回転再帰収束OBBアルゴリズムによって、参照直方体のOBBの収束方向を決定してもよいが、これに限定されない。
【0061】
具体的には、以下の例を参照して説明する。仮に、水平方向回転再帰を例とする。
【0062】
参照直方体の幾何学的中心点に基づいてForwardベクトルを生成し、Forward方向の垂直平面を基準として、軸Forward周りに0~360度回転して再帰演算を行う。
【0063】
毎回の再帰回転では、垂直平面を軸周りに1度回転させるように制御してから、その角度の状態で、参照直方体の全ての頂点から上記垂直平面までの垂直距離を計算し、垂直距離がほぼ等しい頂点の組を集計することにより、距離がほぼ等しい頂点セットを複数取得する。
【0064】
360度の回転プロセスが完了して再帰回転演算結果が得られると、垂直平面から、数量が最も多く、かつ距離がほぼ等しい頂点セットを見付け、それを候補平面頂点セットとして決定する。また、上記候補平面頂点セットに基づいて決定された平面と、上記の基準とされる垂直平面とが平行であるか否かを判断する。平行であると決定した場合、該参照直方体が近似直方体であることをさらに決定することができる。次に、ここに記載された方式に基づいて決定された参照直方体に対して、直方体の3つの軸方向、即ち、前方向(Forward)、右方向(Right)、上方向(Up)を上記の方式で認識する。
【0065】
3つの軸方向を決定した後、参照直方体の全ての頂点に対して、再度の走査計算を行い、それらを3つの軸方向にそれぞれ投影して、最大値及び最小値を取得する。ここでの最大値及び最小値に基づいて、各軸方向上の平均値、即ち、X軸方向の半辺長の値ExtendX、Y軸方向の半辺長の値ExtendY、及びZ軸方向の半辺長の値ExtendZを求める。次に、収束によって、OBBの的確な収束方向を取得する。
【0066】
本願で提供される実施例によれば、回転再帰収束OBBアルゴリズムを用いて、参照直方体に対してより的確な収束方向を決定することにより、記憶及び処理が容易な衝突データへの変換を容易にする。
【0067】
任意選択的な構成として、第1体積値と第2体積値との比率を決定した後、衝突データ処理方法は、
比率が第2閾値に達していない場合、参照直方体の凸面体特徴を抽出するステップであって、凸面体特徴には、参照直方体に対応する3つの軸方向辺の辺長が含まれ、3つの軸方向辺は、参照直方体の互いに垂直な辺である、ステップと、
第1軸方向辺の辺長と第3軸方向辺の辺長との第1差、及び、第2軸方向辺の辺長と第3軸方向辺の辺長との第2差が両方とも第2距離閾値より大きい場合、参照直方体を長い棒タイプの直方体に変換すると決定するステップと、
第1軸方向辺の辺長と第2軸方向辺の辺長との第3差、及び、第1軸方向辺の辺長と第3軸方向辺の辺長との第4差が両方とも第3距離閾値より大きい場合、参照直方体を屋根タイプの直方体に変換すると決定するステップと、をさらに含む。
【0068】
説明すべきものとして、本実施例の上記方法で提供される変換方法は、ほとんどの明らかな衝突体の凸包を直方体又は他の規則な立体(例えば、円柱体やカプセル体)に変換することをサポートするが、的確に簡素化された変換プロセスを直接行うことができない特殊な、差異が大きい衝突体がまだいくつかある。これらの特殊な衝突体は、明らかな幾何学的特徴を持つことができるが、これに限定されない。
【0069】
一実施において、上記の特殊な衝突体を変換する際に参照するための幾何学的特徴は、参照直方体から認識されたOBBの3つの軸方向辺間の距離関係という凸面体特徴を含んでもよいが、これに限定されない。
【0070】
例えば、3つの軸方向辺のうち、2つの軸方向辺が短くて、第3軸方向辺よりはるかに小さい場合、ここでの参照直方体を長い棒タイプの直方体に変換する。3つの軸方向辺のうち、1つの軸方向辺が短くて、それ以外の軸方向辺よりはるかに小さい場合、ここでの参照直方体を屋根タイプの直方体に変換する。
【0071】
本願で提供される実施例によれば、いくつかの認識可能な凸面体特徴に基づいて、いくつかの特殊な衝突体をさらに認識変換することにより、決定された特定の直方体のデータフォーマットで変換し、衝突体の衝突データに対して簡素化処理を行うという効果を達成する。
【0072】
任意選択的な構成として、各頂点と中心座標点との間の距離関係を取得した後、衝突データ処理方法は、
ターゲット衝突体が参照直方体ではないと決定した場合、ターゲット衝突体の幾何学的中心点を取得するステップS1と、
ターゲット衝突体の各頂点と幾何学的中心点とを結ぶ線の距離を取得するステップS2と、
各結ぶ線の距離間の差が第3閾値より小さい場合、ターゲット衝突体を円柱体として認識するステップS3であって、規則な立体は、円柱体を含む、ステップS3と、
幾何学的中心点の座標と、円柱体の半径とに基づいて、円柱体の空間関数を構築するステップS4であって、頂点データには、円柱体の空間関数が含まれる、ステップS4と、を含む。
【0073】
説明すべきものとして、ターゲット衝突体の頂点の数が第1閾値ではない場合、該ターゲット衝突体が直方体の認識条件を満たさないと決定し、該ターゲット衝突体が円柱体の認識条件を満たすか否かをさらに判定することができる。
【0074】
例えば、上記ターゲット衝突体の各頂点に基づいて、その幾何学的中心点を決定する。次に、各頂点から幾何学的中心点までの垂直方向ベクトルの距離(即ち、各頂点と前記幾何学的中心点とを結ぶ線の距離)を計算する。全ての頂点から幾何学的中心点までの距離がほぼ等しい(即ち、各結ぶ線距離間の差が第3閾値より小さい)場合、参照直方体ではないそのターゲット衝突体を円柱体として認識する。
【0075】
次に、直接に上記で認識された円柱体の幾何学的中心点の座標及び半径に基づいて、円柱体の空間関数を構築することにより、円柱体にマッチした空間関数のフォーマットで上記の複雑な構造のターゲット衝突体の頂点データを変換することを容易にする。
【0076】
説明すべきものとして、認識された円柱体において上下の半径の大きさが一致しない場合、例えば、上が大きく下が小さい円柱体である場合、それを分割する必要がある。例えば、複雑な凸面体を分解して複数の簡単な境界ボックスに合併する。円柱体の分割方式は、凸面体分解アルゴリズムの分割方式に類似してもよいが、これに限定されない。
【0077】
本願で提供される実施例によれば、ターゲット衝突体が参照直方体ではないと決定した場合、該ターゲット衝突体を円柱体として認識することができるか否かを判定する。また、該ターゲット衝突体が円柱体として認識された場合、簡略化変換を容易にするために、円柱体にマッチした該ターゲット衝突体のデータを決定する。これにより、ターゲット衝突体の衝突データの記憶時の操作の複雑さを低減するという目的を達成し、さらに、電子機器が記憶された衝突データを呼び出して衝突演算を行う際の処理効率を向上させる。
【0078】
任意選択的な構成として、規則な立体にマッチしたデータフォーマットでターゲット衝突体の頂点データを変換することにより、ターゲット衝突体の衝突データを取得する前に、前記衝突データ処理方法は、
等距離境界ボックスを使用してターゲット衝突体を分解することにより、複数のサブ衝突体を取得するステップS1と、
ターゲット衝突体の各頂点を結ぶ線と、複数のサブ衝突体のそれぞれのサブ衝突体との交点を決定するステップS2と、
各サブ衝突体内の交点に対して順次に収束組み合わせを行うことにより、サブ衝突体に対応するサブ境界ボックスを取得するステップS3と、
各サブ境界ボックスを走査して、サイズの差が第4閾値より小さいサブ境界ボックスを合併することにより、ターゲット衝突体に対応する体境界ボックスを取得するステップS4と、
体境界ボックスの頂点データをターゲット衝突体の頂点データとするステップS5と、をさらに含む。
【0079】
説明すべきものとして、本実施例では、構造が複雑な凸面体に対して、複雑なターゲット衝突体を分解してから複数の簡単な境界ボックスに合併するために、凸面体分解アルゴリズムを用いてもよいが、これに限定されない。
【0080】
具体的には、図6に示された凸面体分解アルゴリズムの流れを参照して説明する。
【0081】
ターゲット衝突体(以下、凸面体と呼ばれる)が図6(a)に示された錐体であると仮定する。図6(b)に示すように、分解の流れを実行するために、該凸面体が選択される。例えば、凸面体のサイズに応じて、単位距離で構築された等距離境界ボックスを用いて、上記凸面体を複数のサブ衝突体に分解する。分解結果は、図6(c)に示された3つの同じ大きさの直方体であってもよい。
【0082】
続いて、ターゲット衝突体の各頂点を結ぶ線と、各サブ衝突体との交点を決定する。例えば、図7(a)に示された凸面体は、図6(a)に示された凸面体である。図7(b)に示すように、下方の頂点から上に向かって上交点求めプロセスを行い、上方の頂点から下に向かって下交点求めプロセスを行う。ここで、交点求めとは、交点を決定することを指す。
【0083】
次に、各サブ衝突体内の交点に対して順次に収束組み合わせを行うことにより、使用空間が小さい境界ボックス、即ち、全ての交点で構成される境界ボックスを取得する。図6(d)に示された点線枠が示す境界ボックスは、図6(c)の等距離分解後の境界ボックス(図中の太実線に示すように)を収束することにより得られたサブ境界ボックスである。また、上記サブ境界ボックスに対して大きさの判定を行い、サイズが近似しており、かつ閾値より小さい(即ち、サイズの差が第4閾値より小さい)境界ボックスを、より大きい境界ボックス(即ち、体境界ボックス)に合併する。図6(e)に示すように、下方の2つのサブ境界ボックスが1つのより大きい境界ボックスに合併される。
【0084】
本願で提供される実施例によれば、等距離境界ボックスでターゲット衝突体を分割して、それを使用空間がより小さいサブ衝突体に簡素化し、次に、サブ衝突体を改めて組み合わせて合併することにより、ターゲット衝突体の構造を簡素化して、簡素化・最適化後の衝突データを取得するという目的を同様に達成する。
【0085】
任意選択的な構成として、距離関係に基づいてターゲット衝突体を規則な立体に変換した後、前記衝突データ処理方法は、
規則な立体に複数の規則なサブ立体が含まれる場合、各規則なサブ立体のサイズを決定するステップS1と、
隣接する2つの規則なサブ立体のサイズの差が第5閾値より小さい場合、隣接する2つの規則なサブ立体を合併するステップS2と、
複数の規則なサブ立体のうち、第1規則なサブ立体のサイズと第2規則なサブ立体のサイズとの差が第6閾値より小さく、かつ、第1規則なサブ立体が第2規則なサブ立体の内部に位置する場合、第1規則なサブ立体を除去するステップS3と、をさらに含む。
【0086】
説明すべきものとして、規則な立体に複数の規則なサブ立体が含まれる場合、組み合わせ合併アルゴリズムや小物除去アルゴリズムを用いてさらなる処理を行ってもよいが、これらに限定されない。そのうち、組み合わせ合併アルゴリズムでは、2つの連なった直方体に対して、大きさが近い(即ち、隣接する2つの規則なサブ立体のサイズの差が第5閾値より小さい)場合、又は、包含関係がある場合、それらを1つの直方体に合併する。上記の小物除去アルゴリズムでは、ある境界ボックスが、周囲の境界ボックスよりはるかに小さくて(即ち、第1規則なサブ立体のサイズと第2規則なサブ立体のサイズとの差が第6閾値より小さい)、他の境界ボックスの内部に埋め込まれている場合、それを直接除去する。
【0087】
また、本実施例では、変換完了後に誤差チェックを行ってもよいが、これに限定されない。変換後の直方体と元のターゲット衝突体との各頂点を比較し、誤差範囲より小さい場合は、変換が成功したことを示し、さもないと、変換しない。
【0088】
本願で提供される実施例によれば、簡素化された衝突データの取得を容易にするために、組み合わせ合併及び小物除去の方法によって、複数の規則なサブ立体が含まれる複雑な規則な立体に対して統一的な簡素化処理を行う。
【0089】
任意選択的な構成として、規則な立体にマッチしたデータフォーマットでターゲット衝突体の頂点データを変換することにより、ターゲット衝突体の衝突データを取得するステップは、規則な立体にマッチした幾何学的な指標のデータフォーマットでターゲット衝突体の頂点データを変換することにより、衝突データを取得するステップを含む。
【0090】
任意選択的に、本実施例では、ターゲット衝突体が直方体に変換される場合、直方体にマッチした幾何学的な指標のデータフォーマットで変換して記憶し、例えば、中心座標点の座標、及びOBBの収束方向の方向ベクトルなどを記憶する。ターゲット衝突体が円柱体に変換される場合、円柱体にマッチした幾何学的な指標のデータフォーマットで変換して記憶し、例えば、円柱体の幾何学的中心点及び半径などを記憶する。
【0091】
本願で提供される実施例によれば、規則な立体にマッチした幾何学的な指標のデータフォーマットでターゲット衝突体の頂点データを記憶し、複雑な構造のターゲット衝突体の衝突データの記憶方式を簡素化し、該衝突データを呼び出して衝突演算を行う際の処理効率を向上させる。
【0092】
具体的には、図8に示された例を参照して説明する。
【0093】
ターゲット衝突体を取得した後、それを物理的に簡素化する。まず、ターゲット衝突体がカプセル体(即ち、円柱体)であるか否かを判断し、ターゲット衝突体がカプセル体である場合、それを処理しやすいカプセル体に直接変換し、カプセル体に対応するデータフォーマットでターゲット衝突体の頂点データを変換して記憶する。変換プロセスは、以下と同様に直方体(例えば、Box)の流れを参照すればよい。
【0094】
ターゲット衝突体がカプセル体ではなく、標準的な直方体であると決定した場合、Box変換流れを用いて、ターゲット衝突体を標準的な直方体に精確に変換し、それに対応するOBBの収束方向を計算する。次に、標準的な直方体のデータフォーマットでターゲット衝突体の頂点データを変換することにより、衝突データを取得する。ここで、OBBの収束方向を計算する方式は、投影平面解求め方及び回転再帰解求め方を含む。続いて、上記の変換後の標準的な直方体に対して、組み合わせ合併又は小物除去、並びに、誤差チェックプロセスを行う。チェックに合格した後、変換された衝突データがエクスポートされて使用される。
【0095】
ターゲット衝突体がカプセル体ではなく、大体標準的な直方体であると決定した場合、大Box大体変換流れを用いて、単位分解及び独立収束の分解処理を行い、分解された境界ボックスを合併する。次に、大体標準的な直方体のデータフォーマットでターゲット衝突体の頂点データを変換することにより、衝突データを取得する。次に、それに対して誤差チェックプロセスを実行する。チェックに合格した後、変換された衝突データがエクスポートされて使用される。
【0096】
上記の図に示された流れは、例示である。これに対して、本実施例は一切限定しない。
【0097】
説明すべきものとして、説明を簡単にするために、前述した各方法実施例が一連の動作の組み合わせとして表現されているが、当業者は、本願によれば、何らかのステップを他の順序で又は同時に実行することができるので、本願は記載された動作の順序によって制限されないことを知っておくべきである。次に、当業者は、明細書に記載された実施例がいずれも好ましい実施例に属し、係る動作及びモジュールが必ずしも本願に必要なものではないことも知っておくべきである。
【0098】
本願の実施例の他の態様によれば、上記衝突データ処理方法を実施するための衝突データ処理装置がさらに提供されている。図9に示すように、該装置は、
仮想シーンにおける処理対象のターゲット衝突体を決定する第1決定ユニット902であって、ターゲット衝突体は、頂点を含む凸多面体である、第1決定ユニット902と、
ターゲット衝突体の各頂点間の距離関係を取得する第1取得ユニット904であって、前記距離関係は、前記ターゲット衝突体の形状特徴を表すためのものである、第1取得ユニット904と、
距離関係に基づいてターゲット衝突体を規則な立体に変換した場合、規則な立体にマッチしたデータフォーマットでターゲット衝突体の頂点データを変換することにより、ターゲット衝突体の衝突データを取得する第1処理ユニット906と、を含む。
【0099】
本実施例において、上記衝突データ処理装置の実施例は、上記の方法実施例を参照すればよいが、これに限定されず、ここでは説明を省略する。
【0100】
任意選択的構成として、第1取得ユニットは、
ターゲット衝突体の頂点の数が第1閾値に達した場合、ターゲット衝突体の各頂点のそれぞれに接続された複数の辺間の距離関係をそれぞれ取得する第1取得モジュールと、
距離関係によって、ターゲット衝突体の1つのターゲット頂点に接続された3つの辺が互いに垂直であることが示された場合、ターゲット衝突体を標準的な直方体に変換すると決定する第1決定モジュールであって、規則な立体は、標準的な直方体を含む、第1決定モジュールと、を含む。1つのターゲット頂点とは、それに接続された3つの辺が互いに垂直である1つの頂点を指す。
【0101】
本実施例において、上記衝突データ処理装置の実施例は、上記の方法の実施例を参照すればよいが、これに限定されず、ここでは説明を省略する。
【0102】
任意選択的な構成として、衝突データ処理装置は、
規則な立体にマッチしたデータフォーマットでターゲット衝突体の頂点データを変換することにより、ターゲット衝突体の衝突データを取得する前に、
ターゲット衝突体の各頂点の中から現在の頂点を決定し、現在の頂点からの距離が最も近い第1参照点及び第2参照点を決定するステップと、
現在の頂点と第1参照点との間の第1距離、現在の頂点と第2参照点との間の第2距離を取得するステップと、
第1距離及び第2距離に基づいて、第3距離を決定するステップであって、第3距離は、直角三角形の斜辺の長さであり、前記直角三角形は、第1距離及び第2距離を直角辺の長さとする、ステップと、
ターゲット衝突体の各頂点のうち、現在の頂点、第1参照点、及び第2参照点を除く頂点の中から、第3距離にしたがって第3参照点を決定するステップであって、現在の頂点と第3参照点との間の距離は、第3距離である、ステップと、
第1参照点、第2参照点、及び第3参照点に基づいて、ターゲット衝突体の参照平面を決定するステップと、
ターゲット衝突体の各頂点のうち、現在の頂点、第1参照点、第2参照点、第3参照点を除く頂点の中から、現在の頂点からの距離が最も近い第4参照点を決定するステップであって、第4参照点と現在の頂点とを結ぶ線は、参照平面と互いに垂直である、ステップと、
現在の頂点をターゲット頂点として決定し、第1距離及び第2距離、並びに、現在の頂点と第4参照点との間の第4距離に基づいて、標準的な直方体にマッチした有向境界ボックスの収束方向を決定するステップであって、頂点データには、有向境界ボックスの収束方向の方向ベクトルが含まれる、ステップと、を実行する第2処理ユニットをさらに含む。
【0103】
本実施例において、上記衝突データ処理装置の実施例は、上記の方法の実施例を参照すればよいが、これに限定されず、ここでは説明を省略する。
【0104】
任意選択的構成として、第1取得ユニットは、
ターゲット衝突体の頂点の数が第1閾値に達した場合、前記ターゲット衝突体の全ての頂点の中心座標点を決定する第2決定モジュールと、
各頂点と中心座標点との間の距離関係を取得する第2取得モジュールと、
距離関係によって、各頂点と中心座標点との間の距離のいずれも第1距離閾値より小さいことが示された場合、ターゲット衝突体を参照直方体として認識すると決定する第3決定モジュールであって、規則な立体は、参照直方体を含む、第3決定モジュールと、
各頂点の前記距離関係に基づいて少なくとも2組の平行面を決定した場合、ターゲット衝突体を参照直方体として認識すると決定する第4決定モジュールであって、規則な立体は、参照直方体を含む、第4決定モジュールと、を含む。
【0105】
本実施例において、上記衝突データ処理装置の実施例は、上記の方法の実施例を参照すればよいが、これに限定されず、ここでは説明を省略する。
【0106】
任意選択的な構成として、衝突データ処理装置は、
ターゲット衝突体が参照直方体であると決定された後、ターゲット衝突体に対応する第1体積値と、参照直方体に対応する第2体積値と、を取得する第3取得モジュールと、
第1体積値と第2体積値との比率を決定する第5決定モジュールと、
比率が第2閾値に達した場合、ターゲット衝突体を参照直方体に変換すると決定する第6決定モジュールと、をさらに含む。
【0107】
本実施例において、上記衝突データ処理装置の実施例は、上記の方法の実施例を参照すればよいが、これに限定されず、ここでは説明を省略する。
【0108】
任意選択的な構成として、衝突データ処理装置は、第1処理モジュールをさらに含む。第1処理モジュールは、
ターゲット衝突体を参照直方体に変換すると決定された後、参照直方体に対応する投影平面を決定し、
参照直方体の各頂点を投影平面にマッピングすることにより、各頂点のそれぞれに対応する投影点を取得し、
頂点から対応する投影点までの投影距離に基づいて、各頂点をグループ化することにより、第1平面頂点セット及び第2平面頂点セットを取得し、第1平面頂点セット内の頂点が第1平面に位置し、第2平面頂点セット内の頂点が第2平面に位置し、
第1平面と第2平面が平行である場合、第1平面及び第2平面に基づいて、参照直方体にマッチした有向境界ボックスの収束方向を決定し、頂点データには、有向境界ボックスの収束方向の方向ベクトルが含まれる。
【0109】
本実施例において、上記衝突データ処理装置の実施例は、上記の方法の実施例を参照すればよいが、これに限定されず、ここでは説明を省略する。
【0110】
任意選択的な構成として、衝突データ処理装置は、第2処理モジュールをさらに含む。第2処理モジュールは、
ターゲット衝突体を参照直方体に変換すると決定された後、参照直方体の幾何学的中心点に対応する前方向ベクトルを決定し、前記前方向ベクトルが含まれる垂直平面を決定し、
前記前方向ベクトルの方向を軸として、垂直平面を複数回回転し、毎回の回転後に、
参照直方体の各頂点から垂直平面までの垂直距離に基づいて、各頂点をグループ化することにより、第3平面頂点セット及び第4平面頂点セットを取得する操作であって、第3平面頂点セット内の頂点が第3平面に位置し、第4平面頂点セット内の頂点が第4平面に位置する、操作と、
第3平面と第4平面が平行である場合、第3平面及び第4平面に基づいて、参照直方体にマッチした有向境界ボックスの収束方向を決定する操作であって、頂点データには、有向境界ボックスの収束方向の方向ベクトルが含まれる、操作と、を実行する。
【0111】
本実施例において、上記衝突データ処理装置の実施例は、上記の方法の実施例を参照すればよいが、これに限定されず、ここでは説明を省略する。
【0112】
任意選択的な構成として、衝突データ処理装置は、
第1体積値と第2体積値との比率が決定された後、比率が第2閾値に達していない場合、参照直方体の凸面体特徴を抽出する抽出モジュールであって、凸面体特徴には、参照直方体に対応する3つの軸方向辺の辺長が含まれ、3つの軸方向辺は、参照直方体の互いに垂直な辺である、抽出モジュールと、
第1軸方向辺の辺長と第3軸方向辺の辺長との第1差、及び、第2軸方向辺の辺長と第3軸方向辺の辺長との第2差が両方とも第2距離閾値より大きい場合、参照直方体を長い棒タイプの直方体に変換すると決定する第7決定モジュールと、
第1軸方向辺の辺長と第2軸方向辺の辺長との第3差、及び、第1軸方向辺の辺長と第3軸方向辺の辺長との第4差が両方とも第3距離閾値より大きい場合、参照直方体を屋根タイプの直方体に変換すると決定する第8決定モジュールと、をさらに含む。
【0113】
本実施例において、上記衝突データ処理装置の実施例は、上記の方法の実施例を参照すればよいが、これに限定されず、ここでは説明を省略する。
【0114】
任意選択的な構成として、衝突データ処理装置は、
各頂点と中心座標点との間の距離関係が取得された後、ターゲット衝突体の幾何学的中心点を取得し、ターゲット衝突体の各頂点と幾何学的中心点とを結ぶ線の距離を取得し、各結ぶ線の距離間の差が第3閾値より小さい場合、ターゲット衝突体を円柱体として認識し、幾何学的中心点の座標と、円柱体の半径とに基づいて、円柱体の空間関数を構築する第3処理モジュールであって、規則な立体は、円柱体を含み、頂点データには、円柱体の空間関数が含まれる、第3処理モジュールをさらに含む。
【0115】
本実施例において、上記衝突データ処理装置の実施例は、上記の方法の実施例を参照すればよいが、これに限定されず、ここでは説明を省略する。
【0116】
任意選択的な構成として、衝突データ処理装置は、
規則な立体にマッチしたデータフォーマットでターゲット衝突体の頂点データを変換することにより、ターゲット衝突体の衝突データを取得する前に、等距離境界ボックスを用いてターゲット衝突体を分解することにより、複数のサブ衝突体を取得する分解ユニットと、
ターゲット衝突体の各頂点を結ぶ線と、複数のサブ衝突体のそれぞれのサブ衝突体との交点を決定する第2決定ユニットと、
各サブ衝突体内の交点に対して順次に収束組み合わせを行うことにより、サブ衝突体に対応するサブ境界ボックスを取得する組み合わせユニットと、
各サブ境界ボックスを走査して、サイズの差が第4閾値より小さいサブ境界ボックスを合併することにより、ターゲット衝突体に対応する体境界ボックスを取得する第1合併ユニットと、
体境界ボックスの頂点データをターゲット衝突体の頂点データとする第3決定ユニットと、をさらに含む。
【0117】
本実施例において、上記衝突データ処理装置の実施例は、上記の方法の実施例を参照すればよいが、これに限定されず、ここでは説明を省略する。
【0118】
任意選択的構成として、衝突データ処理装置は、
距離関係に基づいてターゲット衝突体を規則な立体に変換した後、規則な立体に複数の規則なサブ立体が含まれる場合、各規則なサブ立体のサイズを決定する第4決定ユニットと、
隣接する2つの規則なサブ立体のサイズの差が第5閾値より小さい場合、隣接する2つの規則なサブ立体を合併する第2合併ユニットと、
複数の規則なサブ立体のうち、第1規則なサブ立体のサイズと第2規則なサブ立体のサイズとの差が第6閾値より小さく、かつ、第1規則なサブ立体が第2規則なサブ立体の内部に位置する場合、第1規則なサブ立体を除去する除去ユニットと、をさらに含む。
【0119】
任意選択的構成として、第1処理ユニットは、
規則な立体にマッチした幾何学的な指標のデータフォーマットでターゲット衝突体の頂点データを変換することにより、衝突データを取得する変換モジュールを含む。
【0120】
本実施例において、上記衝突データ処理装置の実施例は、上記の方法の実施例を参照すればよいが、これに限定されず、ここでは説明を省略する。
【0121】
本願の実施例の別の態様によれば、上記衝突データ処理方法を実施するための電子機器がさらに提供されている。該電子機器は、図1に示された端末機器又はサーバであってもよい。本実施例では、該電子機器がサーバである場合を例に説明する。図10に示すように、該電子機器は、メモリ1002と、プロセッサ1004とを備える。該メモリ1002には、コンピュータプログラムが記憶され、該プロセッサ1004は、コンピュータプログラムによって、上記のいずれか1つの方法実施例におけるステップを実行するように構成される。
【0122】
任意選択的に、本実施例において、上記電子機器は、コンピュータネットワークの複数のネットワーク機器のうちの少なくとも1つのネットワーク機器に位置してもよい。
【0123】
任意選択的に、本実施例において、上記プロセッサは、コンピュータプログラムによって、以下のステップを実行するように構成されてもよい。
【0124】
S1では、仮想シーンにおける処理対象のターゲット衝突体を決定し、ターゲット衝突体は、頂点を含む凸多面体である。
【0125】
S2では、ターゲット衝突体の各頂点間の距離関係を取得する。
【0126】
S3では、距離関係に基づいてターゲット衝突体を規則な立体に変換した場合、規則な立体にマッチしたデータフォーマットでターゲット衝突体の頂点データを変換することにより、ターゲット衝突体の衝突データを取得する。
【0127】
任意選択的に、当業者であれば理解できるように、図10に示された構成は、模式的なものに過ぎず、電子機器は、スマートフォン(例えば、Androidスマホ、iOSスマホなど)、タブレットコンピュータ、パームトップ型パソコン、及びモバイルインターネットデバイス(MID:Mobile Internet Devices)やPADなどの端末機器であってもよい。図10は、上記電子機器の構成を限定するものではない。例えば、電子機器は、図10に示されたものより多く又は少ないコンポーネント(例えば、ネットワークインタフェースなど)を含んでもよく、あるいは、図10に示されたものと異なるように配置されてもよい。
【0128】
ここで、メモリ1002は、ソフトウェアプログラム及びモジュール、例えば、本願の実施例における衝突データ処理方法及び装置に対応するプログラム命令/モジュールを記憶するために使用可能である。プロセッサ1004は、メモリ1002に記憶されたソフトウェアプログラム及びモジュールを実行することにより、各種の機能アプリケーション及びデータ処理を実行し、即ち、上記の衝突データ処理方法を実現する。メモリ1002は、高速ランダムアクセスメモリを含んでもよく、不揮発性メモリ、例えば、1つ又は複数の磁気記憶装置、フラッシュメモリ、又は他の不揮発性固体メモリを含んでもよい。いくつかの実例において、メモリ1002は、プロセッサ1004に対して遠隔に設置されたメモリをさらに含んでもよく、これらの遠隔メモリは、ネットワークを介して端末に接続することができる。上記ネットワークの実例は、インターネット、企業イントラネット、ローカルエリアネットワーク、モバイル通信ネットワーク、およびこれらの組み合わせを含むが、これらに限定されない。ここで、メモリ1002は、具体的には、ターゲット衝突体の衝突データなどの情報を記憶するために用いられてもよいが、これに限定されない。一例として、図10に示すように、上記メモリ1002は、上記衝突データ処理装置における第1決定ユニット902と、第1取得ユニット904と、第1処理ユニット906とを含んでもよいが、これらに限定されない。また、上記メモリ1002は、上記衝突データ処理装置における他のモジュールユニットをさらに含んでもよいが、これらに限定されず、本例では説明を省略する。
【0129】
任意選択的に、伝送装置1006は、ネットワークを介してデータを送受信する。上記のネットワークの具体的な実例は、有線ネットワーク及び無線ネットワークを含んでもよい。一実例において、伝送装置1006は、ネットワークケーブルを介して他のネットワーク機器及びルータに接続可能であることで、インターネット又はローカルエリアネットワークと通信可能であるネットワークインタフェースコントローラ(NIC:Network Interface Controller)を含む。一実例において、伝送装置1006は、無線方式でインターネットと通信するために使用される無線周波数(RF:Radio Frequency)モジュールである。
【0130】
また、上記電子機器は、仮想シーン及びそれに現れるターゲット衝突体に対応する仮想オブジェクトを表示するディスプレイ1008と、上記電子機器における各モジュール部品を接続する接続バス1010と、をさらに備える。
【0131】
他の実施例において、上記の端末機器又はサーバは、分散型システムのノードであってもよい。ここで、この分散型システムは、ブロックチェーンシステムであってもよい。このブロックチェーンシステムは、複数のノードがネットワーク通信の形で接続された分散型システムであってもよい。ここで、ノード同士はピアツーピア(P2P:Peer To Peer)ネットワークを形成することができ、任意の形態のコンピューティング機器、例えば、サーバ、端末などの電子機器は、このピアツーピアネットワークに参加することで、該ブロックチェーンシステムのノードになることができる。
【0132】
本願の一態様によれば、コンピュータ命令を含むコンピュータプログラム製品又はコンピュータプログラムが提供されている。該コンピュータ命令は、コンピュータ可読記憶媒体に記憶されている。コンピュータ機器のプロセッサは、コンピュータ可読記憶媒体から該コンピュータ命令を読み取り、プロセッサが該コンピュータ命令を実行すると、該コンピュータ機器に上記の衝突データ処理方法を実行させる。ここで、該コンピュータプログラムは、実行されると、上記のいずれか1つの方法実施例におけるステップを実行するように構成される。
【0133】
任意選択的に、本実施例において、上記コンピュータ可読記憶媒体は、以下のステップを実行させるためのコンピュータプログラムを記憶するように構成されてもよい。
【0134】
S1では、仮想シーンにおける処理対象のターゲット衝突体を決定し、ターゲット衝突体は、頂点を含む凸多面体である。
【0135】
S2では、ターゲット衝突体の各頂点間の距離関係を取得し、前記距離関係は、前記ターゲット衝突体の形状特徴を表すためのものである。
【0136】
S3では、距離関係に基づいてターゲット衝突体を規則な立体に変換した場合、規則な立体にマッチしたデータフォーマットでターゲット衝突体の頂点データを変換することにより、ターゲット衝突体の衝突データを取得する。
【0137】
任意選択的に、本実施例では、当業者であれば理解できるように、上記実施例の各方法の全部又は一部のステップは、プログラムを介して端末機器の関連ハードウェアに指示することにより実行されてもよい。該プログラムは、コンピュータ可読記憶媒体に記憶されてもよい。記憶媒体は、フラッシュディスク、読み出し専用メモリ(ROM:Read-Only Memory)、ランダムアクセスメモリ(RAM:Random Access Memory)、磁気ディスク、又は光ディスクなどを含んでもよい。
【0138】
上述した本願の実施例の番号は、説明のためのものに過ぎず、実施例の優劣を示すものではない。
【0139】
上記実施例における統合されたユニットは、ソフトウェア機能ユニットの形で実現され、かつ独立した製品として販売又は使用される場合、上記コンピュータ可読記憶媒体に記憶されてもよい。このような理解に基づき、本願の構成は、本質的に、言い換えれば、従来技術に寄与する部分、あるいは、該構成の全部又は一部が、ソフトウェア製品の形で具現されてもよい。該コンピュータソフトウェア製品は、記憶媒体に記憶され、1台又は複数台のコンピュータ機器(パーソナルコンピュータ、サーバ、又はネットワーク機器などであってもよい)に、本願の各実施例に記載の方法の全部又は一部のステップを実行させるためのいくつかの命令を含む。
【0140】
本願の上記実施例では、各実施例の説明に独自の焦点があり、ある実施例で詳述されていない部分については、他の実施例の関連する説明を参照すればよい。
【0141】
本願で提供されたいくつかの実施例では、理解すべきものとして、掲示されたクライアントは、他の方式で実現してもよい。ここで、以上に説明した装置の実施例は、模式的なものに過ぎない。例えば、前記ユニットの分割は、論理的な機能の分割に過ぎず、実際に実現する際に別の分割方式であってもよい。例えば、複数のユニット又はコンポーネントを組み合わせたり、他のシステムに組み入れたりしてもよいし、一部の特徴を無視したり、実行しなかったりしてもよい。また、示され又は検討される相互結合、又は直接結合、又は通信接続は、いくつかのインタフェースを介したものであってもよく、ユニット又はモジュールの間接結合又は通信接続は、電気的又は他の形式であってもよい。
【0142】
前記分離した部品として説明されたユニットは、物理的に分離したものであってもなくてもよい。ユニットとして示された部品は、物理的なユニットであってもなくてもよく、即ち、1つの場所に位置してもよいし、ネットワーク上の複数のユニットに分散してもよい。実際の必要に応じて、その中の一部又は全部のユニットを選択して、本実施例に係る発明の目的を達成してもよい。
【0143】
また、本願の各実施例における各機能ユニットが1つの処理ユニットに統合されてもよいし、各ユニットそれぞれが個別的で物理的に存在してもよいし、2つ以上のユニットが1つのユニットに統合されてもよい。上述した統合されたユニットは、ハードウェアの形で実現されてもよいし、ソフトウェア機能ユニットの形で実現されてもよい。
【0144】
上記は、本願の好ましい実施形態に過ぎない。指摘すべきものとして、当業者にとっては、本願の原理から逸脱することなく、いくつかの改善及び修正を行うことも可能である。これらの改善及び修正も、本願の保護範囲と見なされるべきである。
【符号の説明】
【0145】
100 ターゲット衝突体
102 端末機器
104 ネットワーク
106 サーバ
108 データベース
902 第1決定ユニット
904 第1取得ユニット
906 第1処理ユニット
1002 メモリ
1004 プロセッサ
1006 伝送装置
1008 ディスプレイ
1010 接続バス
【手続補正2】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
電子機器実行る衝突データ処理方法であって、
仮想シーンにおける処理対象のターゲット衝突体を決定するステップであって、前記ターゲット衝突体は、頂点を含む凸多面体である、ステップと、
前記ターゲット衝突体の各頂点間の距離関係を取得するステップであって、前記距離関係は、前記ターゲット衝突体の形状特徴を表すためのものである、ステップと、
前記距離関係に基づいて前記ターゲット衝突体を規則な立体に変換した場合、前記規則な立体にマッチしたデータフォーマットで前記ターゲット衝突体の頂点データを変換することにより、前記ターゲット衝突体の衝突データを取得するステップと、
を含む方法。
【請求項2】
前記ターゲット衝突体の各頂点間の距離関係を取得するステップは、前記ターゲット衝突体の頂点の数が第1閾値に達した場合、前記ターゲット衝突体の各頂点のそれぞれに接続された複数の辺間の距離関係をそれぞれ取得するステップを含み、
前記規則な立体にマッチしたデータフォーマットで前記ターゲット衝突体の頂点データを変換する前に、前記方法は、前記距離関係によって、前記ターゲット衝突体の1つのターゲット頂点に接続された3つの辺が互いに垂直であることが示された場合、前記ターゲット衝突体を標準的な直方体に変換すると決定するステップであって、前記規則な立体は、前記標準的な直方体を含む、ステップをさらに含む、
請求項1に記載の方法。
【請求項3】
前記規則な立体にマッチしたデータフォーマットで前記ターゲット衝突体の頂点データを変換することにより、前記ターゲット衝突体の衝突データを取得する前に、
前記ターゲット衝突体の各頂点の中から現在の頂点を決定し、前記現在の頂点からの距離が最も近い第1参照点及び第2参照点を決定するステップと、
前記現在の頂点と前記第1参照点との間の第1距離、前記現在の頂点と前記第2参照点との間の第2距離を取得するステップと、
前記第1距離及び前記第2距離に基づいて、第3距離を決定するステップであって、前記第3距離は、直角三角形の斜辺の長さであり、前記直角三角形は、第1距離及び第2距離を直角辺の長さとする、ステップと、
前記ターゲット衝突体の各頂点のうち、前記現在の頂点、前記第1参照点、及び前記第2参照点を除く頂点の中から、前記第3距離にしたがって第3参照点を決定するステップであって、前記現在の頂点と前記第3参照点との間の距離は、前記第3距離である、ステップと、
前記第1参照点、前記第2参照点、及び前記第3参照点に基づいて、前記ターゲット衝突体の参照平面を決定するステップと、
前記ターゲット衝突体の各頂点のうち、前記現在の頂点、前記第1参照点、前記第2参照点、前記第3参照点を除く頂点の中から、前記現在の頂点からの距離が最も近い第4参照点を決定するステップであって、前記第4参照点と前記現在の頂点とを結ぶ線は、前記参照平面と互いに垂直である、ステップと、
前記現在の頂点を前記ターゲット頂点として決定し、前記第1距離及び前記第2距離、並びに、前記現在の頂点と前記第4参照点との間の第4距離に基づいて、前記標準的な直方体にマッチした有向境界ボックスの収束方向を決定するステップであって、前記頂点データには、前記有向境界ボックスの収束方向の方向ベクトルが含まれる、ステップと、をさらに含む、
請求項2に記載の方法。
【請求項4】
前記ターゲット衝突体の各頂点間の距離関係を取得するステップは、
前記ターゲット衝突体の頂点の数が第1閾値に達した場合、前記ターゲット衝突体の全ての頂点の中心座標点を決定するステップと、
各頂点と前記中心座標点との間の距離関係を取得するステップと、を含み、
前記規則な立体にマッチしたデータフォーマットで前記ターゲット衝突体の頂点データを変換する前に、前記方法は、
前記距離関係によって、前記各頂点と前記中心座標点との間の距離のいずれも第1距離閾値より小さいことが示された場合、前記ターゲット衝突体を参照直方体として認識すると決定するステップであって、前記規則な立体は、前記参照直方体を含み、前記参照直方体は、標準的な直方体の構造と類似する構造である、ステップと、
前記各頂点の前記距離関係に基づいて少なくとも2組の平行面を決定した場合、前記ターゲット衝突体を参照直方体として認識すると決定するステップと、をさらに含む、
請求項1に記載の方法。
【請求項5】
前記ターゲット衝突体を参照直方体として認識すると決定した後、
前記ターゲット衝突体に対応する第1体積値と、前記参照直方体に対応する第2体積値と、を取得するステップと、
前記第1体積値と前記第2体積値との比率を決定するステップと、
前記比率が第2閾値に達した場合、前記ターゲット衝突体を前記参照直方体に変換すると決定するステップと、をさらに含む、
請求項4に記載の方法。
【請求項6】
前記ターゲット衝突体を前記参照直方体に変換すると決定した後、
前記参照直方体に対応する投影平面を決定するステップと、
前記参照直方体の各頂点を前記投影平面にマッピングすることにより、前記各頂点のそれぞれに対応する投影点を取得するステップと、
前記頂点から対応する投影点までの投影距離に基づいて、前記各頂点をグループ化することにより、第1平面頂点セット及び第2平面頂点セットを取得するステップであって、前記第1平面頂点セット内の頂点が第1平面に位置し、前記第2平面頂点セット内の頂点が第2平面に位置する、ステップと、
前記第1平面と前記第2平面が平行である場合、前記第1平面及び前記第2平面に基づいて、前記参照直方体にマッチした有向境界ボックスの収束方向を決定するステップであって、前記頂点データには、前記有向境界ボックスの収束方向の方向ベクトルが含まれる、ステップと、をさらに含む、
請求項5に記載の方法。
【請求項7】
前記ターゲット衝突体を前記参照直方体に変換すると決定した後、
前記参照直方体の幾何学的中心点に対応する前方向ベクトルを決定し、前記前方向ベクトルが含まれる垂直平面を決定するステップと、
前記前方向ベクトルの方向を軸として、前記垂直平面を複数回回転し、毎回の回転後に、
前記参照直方体の各頂点から前記垂直平面までの垂直距離に基づいて、前記各頂点をグループ化することにより、第3平面頂点セット及び第4平面頂点セットを取得するステップであって、前記第3平面頂点セット内の頂点が第3平面に位置し、前記第4平面頂点セット内の頂点が第4平面に位置する、操作と、
前記第3平面と前記第4平面が平行である場合、前記第3平面及び前記第4平面に基づいて、前記参照直方体にマッチした有向境界ボックスの収束方向を決定するステップであって、前記頂点データには、前記有向境界ボックスの収束方向の方向ベクトルが含まれる、操作と、を実行するステップと、をさらに含む、
請求項5に記載の方法。
【請求項8】
前記第1体積値と前記第2体積値との比率を決定した後、
前記比率が前記第2閾値に達していない場合、前記参照直方体の凸面体特徴を抽出するステップであって、前記凸面体特徴には、前記参照直方体に対応する3つの軸方向辺の辺長が含まれ、前記3つの軸方向辺は、前記参照直方体の互いに垂直な辺である、ステップと、
第1軸方向辺の辺長と第3軸方向辺の辺長との第1差、及び、第2軸方向辺の辺長と前記第3軸方向辺の辺長との第2差が両方とも第2距離閾値より大きい場合、前記参照直方体を長い棒タイプの直方体に変換すると決定するステップと、
第1軸方向辺の辺長と第2軸方向辺の辺長との第3差、及び、前記第1軸方向辺の辺長と第3軸方向辺の辺長との第4差が両方とも第3距離閾値より大きい場合、前記参照直方体を屋根タイプの直方体に変換すると決定するステップと、をさらに含む、
請求項5に記載の方法。
【請求項9】
前記各頂点と前記中心座標点との間の距離関係を取得した後、
前記ターゲット衝突体が参照直方体ではないと決定した場合、ターゲット衝突体の幾何学的中心点を取得するステップと、
前記ターゲット衝突体の各頂点と前記幾何学的中心点とを結ぶ線の距離を取得するステップと、
各結ぶ線の距離間の差が第3閾値より小さい場合、前記ターゲット衝突体を円柱体として認識するステップであって、前記規則な立体は、前記円柱体を含む、ステップと、
前記幾何学的中心点の座標と、前記円柱体の半径とに基づいて、前記円柱体の空間関数を構築するステップであって、前記頂点データには、前記円柱体の空間関数が含まれる、ステップと、をさらに含む、
請求項4に記載の方法。
【請求項10】
前記規則な立体にマッチしたデータフォーマットで前記ターゲット衝突体の頂点データを変換することにより、前記ターゲット衝突体の衝突データを取得する前に、
等距離境界ボックスを使用して前記ターゲット衝突体を分解することにより、複数のサブ衝突体を取得するステップと、
前記ターゲット衝突体の各頂点を結ぶ線と、前記複数のサブ衝突体のそれぞれのサブ衝突体との交点を決定するステップと、
各サブ衝突体内の交点に対して順次に収束組み合わせを行うことにより、前記サブ衝突体に対応するサブ境界ボックスを取得するステップと、
各サブ境界ボックスを走査して、サイズの差が第4閾値より小さいサブ境界ボックスを合併することにより、前記ターゲット衝突体に対応する体境界ボックスを取得するステップと、
前記体境界ボックスの頂点データを前記ターゲット衝突体の頂点データとするステップと、をさらに含む、
請求項4又は9に記載の方法。
【請求項11】
前記距離関係に基づいて前記ターゲット衝突体を規則な立体に変換した後、
前記規則な立体に複数の規則なサブ立体が含まれる場合、各前記規則なサブ立体のサイズを決定するステップと、
隣接する2つの規則なサブ立体のサイズの差が第5閾値より小さい場合、前記隣接する2つの規則なサブ立体を合併するステップと、
前記複数の規則なサブ立体のうち、第1規則なサブ立体のサイズと第2規則なサブ立体のサイズとの差が第6閾値より小さく、かつ、前記第1規則なサブ立体が前記第2規則なサブ立体の内部に位置する場合、前記第1規則なサブ立体を除去するステップと、をさらに含む、
請求項1乃至9のいずれか1項に記載の方法。
【請求項12】
前記規則な立体にマッチしたデータフォーマットで前記ターゲット衝突体の頂点データを変換することにより、前記ターゲット衝突体の衝突データを取得するステップは、
前記規則な立体にマッチした幾何学的な指標のデータフォーマットで前記ターゲット衝突体の頂点データを変換することにより、前記衝突データを取得するステップを含む、
請求項1乃至9のいずれか1項に記載の方法。
【請求項13】
衝突データ処理装置であって、
仮想シーンにおける処理対象のターゲット衝突体を決定する第1決定ユニットであって、前記ターゲット衝突体は、頂点を含む凸多面体である、第1決定ユニットと、
前記ターゲット衝突体の各頂点間の距離関係を取得する第1取得ユニットであって、前記距離関係は、前記ターゲット衝突体の形状特徴を表すためのものである、第1取得ユニットと、
前記距離関係に基づいて前記ターゲット衝突体を規則な立体に変換した場合、前記規則な立体にマッチしたデータフォーマットで前記ターゲット衝突体の頂点データを変換することにより、前記ターゲット衝突体の衝突データを取得する第1処理ユニットと、
を含む装置。
【請求項14】
メモリとプロセッサとを備える電子機器であって、前記メモリには、コンピュータプログラムが記憶されており、前記プロセッサは、前記コンピュータプログラムによって、前記請求項1乃至12のいずれか1項に記載の方法を実行するように構成される、ことを特徴とする電子機器。
【請求項15】
コンピュータに請求項1乃至12のいずれか1項に記載の方法を実行させるコンピュータプログラム。
【国際調査報告】