(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】特表2021-513404(P2021-513404A)
(43)【公表日】2021年5月27日
(54)【発明の名称】ゲームシーンにおけるスタティックコンポーネントの処理方法、レンダリング方法および装置
(51)【国際特許分類】
A63F 13/52 20140101AFI20210430BHJP
【FI】
A63F13/52
【審査請求】有
【予備審査請求】未請求
【全頁数】29
(21)【出願番号】特願2020-542906(P2020-542906)
(86)(22)【出願日】2019年1月8日
(85)【翻訳文提出日】2020年8月6日
(86)【国際出願番号】CN2019070865
(87)【国際公開番号】WO2019153997
(87)【国際公開日】20190815
(31)【優先権主張番号】201810136749.7
(32)【優先日】2018年2月9日
(33)【優先権主張国】CN
(81)【指定国】
AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,ST,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DJ,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JO,JP,KE,KG,KH,KN,KP,KR,KW,KZ,LA,LC,LK,LR,LS,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ANDROID
2.WINDOWS
3.UNIX
(71)【出願人】
【識別番号】518028125
【氏名又は名称】網易(杭州)網絡有限公司
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】呉 東 東
(72)【発明者】
【氏名】黄 錦 武
(72)【発明者】
【氏名】杜 志 栄
(57)【要約】
ゲームシーンにおけるスタティックコンポーネントの処理方法、レンダリング方法および装置であり、前記レンダリング方法は、前記2つ以上のサブコンポーネントに対応する2つ以上のサブモデルを合成してなる親モデルであって、モデルファイルに前記サブモデルの情報が記録されている、前記スタティックコンポーネントに対応する親モデルをロードすること(S210)と、前記親モデルのうち「隠蔽」とマークされる前記サブモデルのシーングローバル識別子であって、前記ゲームシーンにおける前記サブモデルの識別情報を含むシーングローバル識別子を特定すること(S220)と、予め設定された方式により前記親モデルのうち「隠蔽」とマークされていない部分をレンダリングすること(S230)と、を含み、これにより、スタティックコンポーネントの一部を隠すレンダリング効果を達成できる一方、モデル数が大きいことに起因するメモリ及びレンダリングの負荷を効果的に軽減する。
【特許請求の範囲】
【請求項1】
ゲームシーンにおけるスタティックコンポーネントの処理方法であって、
前記スタティックコンポーネントのサブコンポーネントに対応するサブモデルを取得することと、
前記サブモデルを合成して、前記スタティックコンポーネントに対応する親モデルを得るとともに、前記親モデルの範囲内における前記サブモデルの識別情報を含む、前記サブモデルの第1のローカル識別子を生成することと、
前記第1のローカル識別子を含む前記サブモデルの情報を、前記親モデルのモデルファイルに記録することと、
前記親モデルを用いて前記ゲームシーンを編集し、前記ゲームシーンにおける前記親モデルの識別情報を含む、前記親モデルの第1のグローバル識別子を生成することと、を含み、
前記第1のグローバル識別子及び前記第1のローカル識別子は、前記ゲームシーンにおける前記サブモデルの識別情報を含む、前記サブモデルのシーングローバル識別子を取得するために用いられる処理方法。
【請求項2】
前記サブモデルに対応するサブコライダーの関連関係を確立することと、
前記サブコライダーに対応する前記サブモデルの前記第1のローカル識別子を記録することと、をさらに含む、
請求項1に記載の方法。
【請求項3】
予め設定された数の前記スタティックコンポーネントのサブコンポーネントに対応する低精度サブモデルであって、前記サブモデルの低精度バージョンである低精度サブモデルを取得することと、
前記予め設定された数の前記スタティックコンポーネントのサブコンポーネントに対応する前記低精度サブモデルを合成して、前記予め設定された数の前記スタティックコンポーネントからなるスタティックコンポーネントの集合に対応するマスターモデルを得るとともに、前記マスターモデルの範囲内における前記低精度サブモデルの識別情報を含む、前記低精度サブモデルの第2のローカル識別子を生成することと、
前記第2のローカル識別子を含む前記低精度サブモデルの情報を、前記マスターモデルのモデルファイルに記録することと、
前記ゲームシーンにおける前記マスターモデルの識別情報を含む、前記マスターモデルの第2のグローバル識別子を生成することと、をさらに含み、
前記第2のグローバル識別子及び前記第2のローカル識別子は、前記ゲームシーンにおける前記低精度サブモデルの前記シーングローバル識別子を取得するために用いられる請求項1に記載の方法。
【請求項4】
前記低精度サブモデルに対応するサブコライダーの関連関係を確立することと、
前記サブコライダーに対応する前記低精度サブモデルの前記第2のローカル識別子を記録することと、をさらに含む、
請求項3に記載の方法。
【請求項5】
前記スタティックコンポーネントの集合から、体積が予め設定された体積よりも小さい前記低精度サブモデルに対応する前記サブコライダーを除外することと、
前記スタティックコンポーネントの集合から、高さが予め設定された高さよりも小さい前記低精度サブモデルに対応する前記サブコライダーを除外することと、の少なくとも一方をさらに含む、
請求項4に記載の方法。
【請求項6】
2つ以上のサブコンポーネントからなるスタティックコンポーネントを複数含むゲームシーンにおけるスタティックコンポーネントのレンダリング方法であって、
前記2つ以上のサブコンポーネントに対応する2つ以上のサブモデルを合成してなる親モデルであって、モデルファイルに前記サブモデルの情報が記録されている、前記スタティックコンポーネントに対応する親モデルをロードすることと、
前記親モデルのうち「隠蔽」とマークされる前記サブモデルのシーングローバル識別子であって、前記ゲームシーンにおける前記サブモデルの識別情報を含むシーングローバル識別子を特定することと、
予め設定された方式により前記親モデルのうち「隠蔽」とマークされていない部分をレンダリングすることと、
を含むレンダリング方法。
【請求項7】
前記サブモデルの情報は、前記親モデルの範囲内における前記サブモデルの識別情報を含む第1のローカル識別子を含み、
前記親モデルのうち「隠蔽」とマークされる前記サブモデルのシーングローバル識別子を特定することは、
前記ゲームシーンにおける前記親モデルの識別情報を含む、前記親モデルの第1のグローバル識別子を取得することと、
前記親モデルの前記第1のグローバル識別子及び前記サブモデルの前記第1のローカル識別子に基づいて、前記シーングローバル識別子を特定することと、を含む、
請求項6に記載の方法。
【請求項8】
前記スタティックコンポーネントに対応する前記親モデルをロードする際に、前記親モデルを構成する前記サブモデルに対応するサブコライダーを、ゲームエンジンの物理システムに入れることと、
前記スタティックコンポーネントに対する物理イベントに応答して、前記物理イベントが対象とする前記スタティックコンポーネントに対応する前記親モデルの前記第1のグローバル識別子を取得することと、
前記ゲームエンジンによって前記物理イベントがヒットした対象サブコライダーを検出し、前記対象サブコライダーに対応する対象サブモデルの前記第1のローカル識別子を取得することと、
前記親モデルの前記第1のグローバル識別子及び前記対象サブモデルの第1のローカル識別子に基づいて、前記対象サブモデルの前記シーングローバル識別子を得ることと、
前記対象サブモデルの前記シーングローバル識別子に基づいて前記対象サブモデルの位置決めを行い、前記対象サブモデルを「隠蔽」とマークすることと、をさらに含む、
請求項7に記載の方法。
【請求項9】
レンダリングすべき前記スタティックコンポーネントと前記ゲームの仮想カメラとの距離が、予め設定された値よりも大きいと検出された場合、前記スタティックコンポーネントがあるスタティックコンポーネントの組み合わせに対応する低精度マスターモデルをロードし、前記スタティックコンポーネントの組み合わせは、予め設定された数の前記スタティックコンポーネントの組み合わせであり、前記低精度マスターモデルは、前記サブモデルの低精度バージョンである低精度サブモデルを合成してなることと、
前記低精度マスターモデルのうち「隠蔽」とマークされる前記サブモデルの前記シーングローバル識別子を特定することと、
予め設定された方式により前記低精度マスターモデルのうち「隠蔽」とマークされていない部分をレンダリングすることと、をさらに含む、
請求項8に記載の方法。
【請求項10】
前記物理イベントが対象とする前記スタティックコンポーネントと前記仮想カメラとの距離が、前記予め設定された値よりも大きいと検出された場合、前記スタティックコンポーネントがある前記スタティックコンポーネントの組み合わせに対応する前記低精度マスターモデルの第2のグローバル識別子を取得し、前記第2のグローバル識別子は、前記ゲームシーンにおける前記低精度マスターモデルの識別情報を含むことと、
前記ゲームエンジンによって前記物理イベントがヒットした対象サブコライダーを検出し、前記対象サブコライダーに対応する低精度対象サブモデルの第2のローカル識別子を取得し、前記第2のローカル識別子は、前記低精度マスターモデルの範囲内における前記低精度対象サブモデルの識別情報を含むことと、
前記第2のグローバル識別子及び前記低精度対象サブモデルの前記第2のローカル識別子に基づいて、前記対象サブモデルのシーングローバル識別子を得て、前記対象サブモデルを「隠蔽」とマークすることと、をさらに含む、
請求項9に記載の方法。
【請求項11】
前記ゲームの他のクライアントがゲームシーンレンダリングを行う時に、「隠蔽」とマークされる前記サブモデルを隠すように、「隠蔽」とマークされる前記サブモデルの前記シーングローバル識別子を前記ゲームのサーバに同期させ、前記サーバを介して前記他のクライアントにブロードキャストすること、をさらに含む、
請求項6に記載の方法。
【請求項12】
前記予め設定された方式は、連続レンダリングメカニズムである、
請求項6に記載の方法。
【請求項13】
前記低精度マスターモデルが隠蔽部分によって分割された数が前記予め設定された値を超えた場合、前記低精度マスターモデルが一度のレンダリング呼び出しでレンダリングを完了するように、前記低精度マスターモデルのインデックス再配置をトリガーする、
請求項9又は10に記載の方法。
【請求項14】
ゲームシーンにおけるスタティックコンポーネントの処理装置であって、
1つ又は複数のプロセッサと、
プログラムユニットを記憶する1つまたは複数の記憶装置とを備え、
前記プログラムユニットは前記プロセッサによって実行され、
前記プログラムユニットは、
前記スタティックコンポーネントのサブコンポーネントに対応するサブモデルを取得するように構成される取得モジュールと、
前記サブモデルを合成して、前記スタティックコンポーネントに対応する親モデルを得るとともに、前記親モデルの範囲内における前記サブモデルの識別情報を含む、前記サブモデルの第1のローカル識別子を生成するための第1の処理モジュールと、
前記第1のローカル識別子を含む前記サブモデルの情報を、前記親モデルのモデルファイルに記録するように構成される記録モジュールと、
前記親モデルを用いて前記ゲームシーンを編集し、前記ゲームシーンにおける前記親モデルの識別情報を含む、前記親モデルの第1のグローバル識別子を生成するように構成される第2の処理モジュールと、を有し、
前記第1のグローバル識別子及び前記第1のローカル識別子は、前記ゲームシーンにおける前記サブモデルの識別情報を含む、前記サブモデルのシーングローバル識別子を取得するために用いられる処理装置。
【請求項15】
2つ以上のサブコンポーネントからなるスタティックコンポーネントを複数含むゲームシーンにおけるスタティックコンポーネントのレンダリング装置であって、
1つ又は複数のプロセッサと、
プログラムユニットを記憶する1つまたは複数の記憶装置とを備え、
前記プログラムユニットは前記プロセッサによって実行され、
前記プログラムユニットは、
前記2つ以上のサブコンポーネントに対応する2つ以上のサブモデルを合成してなる親モデルであって、モデルファイルに前記サブモデルの情報が記録されている、前記スタティックコンポーネントに対応する親モデルをロードするように構成されるロードモジュールと、
前記親モデルのうち「隠蔽」とマークされる前記サブモデルのシーングローバル識別子であって、前記ゲームシーンにおける前記サブモデルの識別情報を含むシーングローバル識別子を特定するように構成される特定モジュールと、
予め設定された方式により前記親モデルのうち「隠蔽」とマークされていない部分をレンダリングするように構成されるレンダリングモジュールと、を有するレンダリング装置。
【請求項16】
プロセッサと、
前記プロセッサの実行可能な命令を記憶するように構成される記憶装置と、を備え、
前記プロセッサは、前記実行可能な命令を実行することにより、請求項6乃至13のいずれか一項に記載のゲームシーンにおけるスタティックコンポーネントのレンダリング方法を実行するように構成される、電子機器。
【請求項17】
プロセッサによって実行されると、請求項6乃至13のいずれか一項に記載のゲームシーンにおけるスタティックコンポーネントのレンダリング方法を実現するコンピュータプログラムが記憶されている、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、2018年02月09日にて中国特許庁へ出願した、出願番号が201810136749.7で、発明の名称が「ゲームシーンにおけるスタティックコンポーネントの処理方法、レンダリング方法および装置」である中国特許出願の優先権を主張し、その内容を全て参照により本願に組み込むものとする。
【0002】
本開示は、ゲームの技術分野に関し、特に、ゲームシーンにおけるスタティックコンポーネントの処理方法、レンダリング方法および装置に関する。
【背景技術】
【0003】
現在、シューティングゲームと街づくりゲームを組み合わせたゲームタイプでは、ゲームシーンでスタティックコンポーネントを破壊又は分解するようにプレーヤが仮想オブジェクトを制御することを実現するために、ほとんどのスタティックコンポーネント(例えば、住宅、橋、バンカー等)は、スタティックコンポーネントが仮想オブジェクトの物理攻撃により完全に消えていくまで徐々に損失する表示効果を示すように、分解可能にされる必要がある。従来では、ゲーム開発過程において、スタティックコンポーネントを複数のサブコンポーネントに細分化し、複数のサブコンポーネントに対応するサブモデルをそれぞれ作成し、ゲーム実行中に、仮想オブジェクトにより分解されるサブコンポーネントに対応するサブモデルは直接削除されることにより、スタティックコンポーネントが分解されるゲーム効果を実現するようにしている。
【0004】
しかし、このようなゲームはシーンが大きく、スタティックコンポーネントが多く、サブコンポーネントに細分化された後、対応するサブモデル数が非常に大きくなり、すべてのモデルが多くのメモリを占有し、メモリが小さいゲーム端末(特に、モバイルデバイス)は耐えられないことが多い。メモリが十分であっても、これほど多くの細分化モデルが、データ処理やグラフィックレンダリング面で端末に大きな負荷を与え、モデル数が大きいことに起因するメモリ及びレンダリング負荷が大きい課題がある。
【0005】
なお、上述した背景技術欄に開示された情報は、本開示の背景に対する理解を強めるためのものに過ぎないため、当業者が知っている関連技術を構成しない情報を含むことができる。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明の開示の目的は、ゲームシーンにおけるスタティックコンポーネントの処理方法、レンダリング方法および装置を提供し、さらに、少なくともある程度、関連技術の制限と欠陥による1つ又は複数の問題を解消することにある。
【課題を解決するための手段】
【0007】
本開示の一態様は、ゲームシーンにおけるスタティックコンポーネントの処理方法であって、
前記スタティックコンポーネントのサブコンポーネントに対応するサブモデルを取得することと、
前記サブモデルを合成して、前記スタティックコンポーネントに対応する親モデルを得るとともに、前記親モデルの範囲内における前記サブモデルの識別情報を含む、前記サブモデルの第1のローカル識別子を生成することと、
前記第1のローカル識別子を含む前記サブモデルの情報を、前記親モデルのモデルファイルに記録することと、
前記親モデルを用いて前記ゲームシーンを編集し、前記ゲームシーンにおける前記親モデルの識別情報を含む、前記親モデルの第1のグローバル識別子を生成することと、を含み、
前記第1のグローバル識別子及び前記第1のローカル識別子は、前記ゲームシーンにおける前記サブモデルの識別情報を含む、前記サブモデルのシーングローバル識別子を取得するために用いられる処理方法を提供する。
【0008】
本開示の他の態様は、2つ以上のサブコンポーネントからなるスタティックコンポーネントを複数含むゲームシーンにおけるスタティックコンポーネントのレンダリング方法であって、
前記2つ以上のサブコンポーネントに対応する2つ以上のサブモデルを合成してなる親モデルであって、モデルファイルに前記サブモデルの情報が記録されている、前記スタティックコンポーネントに対応する親モデルをロードすることと、
前記親モデルのうち「隠蔽」とマークされる前記サブモデルのシーングローバル識別子であって、前記ゲームシーンにおける前記サブモデルの識別情報を含むシーングローバル識別子を特定することと、
予め設定された方式により前記親モデルのうち「隠蔽」とマークされていない部分をレンダリングすることと、
を含むレンダリング方法をさらに提供する。
【0009】
本開示の他の態様は、ゲームシーンにおけるスタティックコンポーネントの処理装置であって、
1つ又は複数のプロセッサと、
プログラムユニットを記憶する1つまたは複数の記憶装置とを備え、
前記プログラムユニットは前記プロセッサによって実行され、
前記プログラムユニットは、
前記スタティックコンポーネントのサブコンポーネントに対応するサブモデルを取得するように構成される取得モジュールと、
前記サブモデルを合成して、前記スタティックコンポーネントに対応する親モデルを得るとともに、前記親モデルの範囲内における前記サブモデルの識別情報を含む、前記サブモデルの第1のローカル識別子を生成するための第1の処理モジュールと、
第1のローカル識別子を含む前記サブモデルの情報を、前記親モデルのモデルファイルに記録するように構成される記録モジュールと、
前記親モデルを用いて前記ゲームシーンを編集し、前記ゲームシーンにおける前記親モデルの識別情報を含む、前記親モデルの第1のグローバル識別子を生成するように構成される第2の処理モジュールと、を有し、
前記第1のグローバル識別子及び前記第1のローカル識別子は、前記ゲームシーンにおける前記サブモデルの識別情報を含む、前記サブモデルのシーングローバル識別子を取得するために用いられる処理装置をさらに提供する。
【0010】
本開示の他の態様は、2つ以上のサブコンポーネントからなるスタティックコンポーネントを複数含むゲームシーンにおけるスタティックコンポーネントのレンダリング装置であって、
1つ又は複数のプロセッサと、
プログラムユニットを記憶する1つまたは複数の記憶装置とを備え、
前記プログラムユニットは前記プロセッサによって実行され、
前記プログラムユニットは、
前記2つ以上のサブコンポーネントに対応する2つ以上のサブモデルを合成してなる親モデルであって、モデルファイルに前記サブモデルの情報が記録されている、前記スタティックコンポーネントに対応する親モデルをロードするように構成されるロードモジュールと、
前記親モデルのうち「隠蔽」とマークされる前記サブモデルのシーングローバル識別子であって、前記ゲームシーンにおける前記サブモデルの識別情報を含むシーングローバル識別子を特定するように構成される特定モジュールと、
予め設定された方式により前記親モデルのうち「隠蔽」とマークされていない部分をレンダリングするように構成されるレンダリングモジュールと、を有するレンダリング装置をさらに提供する。
【0011】
本開示の他の態様は、
プロセッサと、
前記プロセッサの実行可能な命令を記憶するように構成される記憶装置と、を備え、
前記プロセッサは、前記実行可能な命令を実行することにより、上述したゲームシーンにおけるスタティックコンポーネントのレンダリング方法を実行するように構成される、電子機器をさらに提供する。
【0012】
本開示の他の態様は、プロセッサによって実行されると、上述したゲームシーンにおけるスタティックコンポーネントのレンダリング方法を実現するコンピュータプログラムが記憶されている、コンピュータ読み取り可能な記憶媒体をさらに提供する。
【発明の効果】
【0013】
本開示のいずれかの実施態様によれば、前記スタティックコンポーネントに対応する前記親モデルをロードし、前記親モデルのモデルファイルに前記サブモデルの情報が記録されており、「隠蔽」とマークされる前記サブモデルのシーングローバル識別子に基づいて、予め設定された方式により前記親モデルのうち「隠蔽」とマークされていない部分をレンダリングし、親モデルのモデルファイルにサブモデルの情報が保存されているため、ゲーム実行中に、これらのサブモデルの情報により親モデルの部分的な隠蔽を実現することができ、これにより、スタティックコンポーネントの一部を隠すレンダリング効果を達成できる一方、スタティックコンポーネントは、ゲーム実行中に1つの親モデルのみをレンダリングすればよく、モデル数が大きいことに起因するメモリ及びレンダリングの負荷を効果的に軽減する。
【0014】
図面を参照して例示的な実施例を説明することで、本開示の上述した及び他の利点がより明確になる。以下で説明される図面は、本開示の一部の実施例に過ぎず、当業者にとって、創造的な労働なしにこれらの図面に基づいて他の図面を得ることができることは、言うまでもない。
【図面の簡単な説明】
【0015】
【
図1】本開示の一実施例に係るゲームシーンにおけるスタティックコンポーネントの処理方法を示すフローチャートである。
【
図2】本開示の一実施例に係るゲームシーンにおけるスタティックコンポーネントのレンダリング方法を示すフローチャートである。
【
図3】本開示の1つの例示的な実施例におけるゲームシーンにおけるスタティックコンポーネントを示す模式図である。
【
図4】本開示の1つの例示的な実施例における一部が分解されたスタティックコンポーネントを示す模式図である。
【
図5】本開示の1つの例示的な実施例におけるモデルレンダリング過程でモデルのインデックス再配置を行うことを示す模式図である。
【
図6】本開示の一実施例に係るゲームシーンにおけるスタティックコンポーネントのレンダリング装置の構成図である。
【
図7】本開示の一実施例に係る電子機器の構成を示す模式図である。
【
図8】本開示の一実施例に係る記憶媒体の構成を示す模式図である。
【発明を実施するための形態】
【0016】
なお、衝突しない限り、本願の実施例及び実施例中の構成要件を互いに組み合わせることができる。以下、図面を参照しつつ実施例を結合して本発明を詳しく説明する。
【0017】
当業者に本開示の構成をよりよく理解してもらうように、以下、本開示の実施例の図面を結合して本開示の技術的構成を明瞭かつ完全に説明する。説明する実施例は本開示の実施例の一部に過ぎず、全部ではないことは、言うまでもないことである。当業者が本開示の実施例に基づいて、創造的な労働無しに得られた他の実施例も、全て本開示の保護範囲内に含まれるべきである。
【0018】
なお、本開示の明細書及び特許請求の範囲並びに上記図面に言及された「第1」、「第2」等の用語は、類似した対象を区別するためのものであり、特定の順番又は前後順序を説明するためのものではない。ここで説明される本開示の実施例をここで示した又は説明した順番以外の順番で実施可能なものにするために、このように使用されたデータは適した場合であれば互いに取り替え可能なことは、理解されるべきである。また、用語である「含む」、「有する」及びそれらの如何なる変形は、排他的にならずに含まれたものをカバーすることがその意図であり、例えば、一連のステップ又はユニットを含めたプロセス、方法、システム、製品又は機器は、明確に示したステップ又はユニットに限定される必要がなく、これらのプロセス、方法、製品又は機器に対して明確に示していなかったり、固有であったりする他のステップ又はユニットを含むことができる。
【0019】
なお、本実施例に開示された様々なトリガーイベントを予め設定してもよく、異なるトリガーイベントは、異なる機能を実行するようにトリガーすることができる。
【0020】
以下の例示的な実施例において、ゲームシーンには少なくとも1つのスタティックコンポーネントが含まれており、スタティックコンポーネントは、ゲームシーンに作られた建て物、例えば、住宅、水平面、垂直面、傾斜面、机、椅子、街灯等の仮想物体であることができる。スタティックコンポーネントは、ゲームクライアントのグラフィカルユーザインタフェースによりレンダリングされて提示されることができ、提示される内容は、スタティックコンポーネントの全てを含んでもよいし、スタティックコンポーネントの一部であってもよい。
【0021】
ゲームシーンには、クライアントのグラフィカルユーザインタフェースによりレンダリングされて提示されることができる少なくとも1つの仮想オブジェクトが含まれており、提示される内容は、仮想オブジェクトの全てを含んでもよいし、仮想オブジェクトの一部であってもよい。例えば、第3者視点のゲームでは、グラフィカルユーザインタフェースにより提示される内容は、仮想オブジェクトの全てを含むことができる。また、例えば、第1者視点のゲームでは、グラフィカルユーザインタフェースにより提示される内容は、仮想オブジェクトの一部/局部を含むことができる。
【0022】
仮想オブジェクトは、敵陣営の仮想オブジェクトであってもよいし、味方陣営の仮想オブジェクトであってもよく、仮想オブジェクトは、ユーザの操作に応じて、ゲームシーンで対応する行動を実行することができ、例えば、ユーザは、ゲームシーンにて歩き、走り、しゃがみ、うつ伏せ、攻撃、射撃等の行動をするように仮想オブジェクトを制御することができ、さらに、ゲームシーンにおけるスタティックコンポーネントを構築したり分解したりするように仮想オブジェクトを制御することができるが、本開示はここで何も限定しない。
【0023】
本開示の実施例は、ゲームシーンにおけるスタティックコンポーネントの処理方法を提供する。
図1は、本開示の一実施例によるゲームシーンにおけるスタティックコンポーネントの処理方法のフローチャートである。
図1に示すように、本実施例では、該方法は、以下のステップS110〜ステップS140を含む。
【0024】
ステップS110:前記スタティックコンポーネントのサブコンポーネントに対応するサブモデルを取得する。
【0025】
ステップS120:前記サブモデルを合成して、前記スタティックコンポーネントに対応する親モデルを得るとともに、前記親モデルの範囲内における前記サブモデルの識別情報を含む、前記サブモデルの第1のローカル識別子を生成する。
【0026】
ステップS130:第1のローカル識別子を含む前記サブモデルの情報を、前記親モデルのモデルファイルに記録する。
【0027】
ステップS140:前記親モデルを用いて前記ゲームシーンを編集し、前記ゲームシーンにおける前記親モデルの識別情報を含む、前記親モデルの第1のグローバル識別子を生成し、前記第1のグローバル識別子及び前記第1のローカル識別子は、前記ゲームシーンにおける前記サブモデルの識別情報を含む、前記サブモデルのシーングローバル識別子を取得するために用いられる。
【0028】
該実施例において、スタティックコンポーネントのサブコンポーネントは、スタティックコンポーネントの一部であることができ、例えば、スタティックコンポーネントがゲームシーン内の住宅であれば、サブコンポーネントは、住宅の垂直壁、水平壁、屋根等である。複数のサブコンポーネントに対応する複数のサブモデルをそれぞれ取得し、これらのサブモデルを、ビッグモデルである親モデルとなるように合成し、頂点バッファ(vertex buffer、単にVBという)、インデックスバッファ(index buffer、単にIBという)、UV、2UV、テクスチャ等の情報を合成することができる。同時に、親モデルのモデルファイルにサブモデルのモデル情報を記録し、該モデル情報は、サブモデルのvertex添え字、vertex数、index添え字、index数、sub_destroy_id(即ち、第1のローカル識別子)のうちの最初のもの又は複数のものを含むことができる。sub_destroy_idは、サブモデルの合成時に生成したものであり、サブモデルを親モデルの範囲内で一意に識別し、例えば、0〜1024(8桁)の数字であることができる。
【0029】
ゲームシーンの編集を行う時に親モデルを用いてシーン配置を行い、配置する際に、親モデルのために1つのdestroy_id(即ち、第1のグローバル識別子)を生成し、例えば、最初の16桁が区画番号を示し、そのうち、8桁が親モデルの該区画における一意の識別子を示し、最後の8桁がいずれも0とされることにより、sub_destroy_idと加えられても互いに影響を与えることなく、親モデルのdestroy_idにサブモデルのsub_destroy_idを加えた合計32桁から、サブモデルを正確に位置決めするためのfull_destroy_id(即ち、シーングローバル識別子)を生成することができる、という生成ルールを設定することができる。
【0030】
分解効果を実現するようにスタティックコンポーネントのあるサブコンポーネントを隠す必要がある場合、対象サブコンポーネントに対応する対象サブモデルの第1のローカル識別子、およびスタティックコンポーネントに対応する親モデルの第1のグローバル識別子を取得すればよく、そのうえ、予め設定されたルールにより対象サブモデルのシーングローバル識別子を取得することで、スタティックコンポーネントをレンダリングする時に分解された対象サブコンポーネントを一部隠す。
図3に示すように、ゲームシーンにおいて、1つのスタティックコンポーネントに対応する親モデル100は、サブモデル101、102及び103を含み、別のスタティックコンポーネントに対応する親モデル200は、サブモデル201、202、203、204、205及び206を含む。
図4に示す親モデル100のうち
図3におけるサブモデル103に対応する部分が隠れ、親モデル200のうち
図3におけるサブモデル201に対応する部分が隠れている。
【0031】
上述した実施態様によれば、スタティックコンポーネントのサブコンポーネントのサブモデルをそれぞれ取得し、そして、複数のサブモデルを、スタティックコンポーネントに対応する親モデル(スモールモデル群からなるビッグモデル)となるように合成し、親モデルの範囲内におけるサブモデルの識別情報(即ち、第1のローカル識別子)を含むサブモデルの情報を、親モデルのモデルファイルに記録し、親モデルのモデルファイルにサブモデルの情報が保存されているため、ゲーム実行中に、これらのサブモデルの情報により親モデルの部分的な隠蔽を実現することができ、これにより、スタティックコンポーネントを分解するレンダリング効果を達成する一方、該実施態様によって作成されるスタティックコンポーネントは、ゲーム実行中に1つの親モデルのみをレンダリングすればよく、モデル数が大きいことに起因するメモリ負荷及びレンダリング負荷を大幅に軽減する。
【0032】
代替的な実施態様において、前記方法は、さらに、
前記サブモデルに対応するサブコライダーの関連関係を確立することと、
前記サブコライダーに対応する前記サブモデルの第1のローカル識別子を記録することと、を含む。
【0033】
前記サブモデルに対応するサブコライダーの関連関係を確立し、各サブコライダーに対応するサブモデルの第1のローカル識別子を記録することにより、サブコライダーは、関連関係により、対応するスタティックコンポーネントの親モデルの対応するサブモデルに一意にマッピングされることができるため、ゲーム実行中に、仮想オブジェクトがスタティックコンポーネントに対して分解等の物理攻撃を行う時、ゲームエンジンによる物理検出により攻撃範囲内のサブコライダーを特定することができ、そのうえ、分解されるサブコンポーネントに対応するサブモデルを特定し、このようにして、仮想オブジェクトがスタティックコンポーネントの一部を分解する効果を実現する。
【0034】
代替的な実施態様において、前記方法は、さらに、
予め設定された数の前記スタティックコンポーネントのサブコンポーネントに対応する低精度サブモデルであって、前記サブモデルの低精度バージョンである低精度サブモデルを取得することと、
前記予め設定された数の前記スタティックコンポーネントのサブコンポーネントに対応する前記低精度サブモデルを合成して、前記予め設定された数のスタティックコンポーネントからなるスタティックコンポーネントの集合に対応するマスターモデルを得るとともに、前記マスターモデルの範囲内における前記低精度サブモデルの識別情報を含む、前記低精度サブモデルの第2のローカル識別子を生成することと、
第2のローカル識別子を含む前記低精度サブモデルの情報を、前記マスターモデルのモデルファイルに記録することと、
前記ゲームシーンにおける前記マスターモデルの識別情報を含む、前記マスターモデルの第2のグローバル識別子を生成することと、を含み、前記第2のグローバル識別子及び前記第2のローカル識別子は、前記ゲームシーンにおける前記低精度サブモデルのシーングローバル識別子を取得するために用いられる。
【0035】
オーバーサイズのシーンのゲームは、通常、詳細レベルLOD(Level of Detail)メカニズムを利用し、例えば、遠くのモデルはいずれも低精度バージョンである。LODモデル(即ち、低精度バージョンのモデル)の部分的な分解を実現するために、本実施態様では、LODモデルに対しても合成処理を行う。前記予め設定された数は、ゲームの具体的な状況に応じて設定されることができ、例えば、8*8の区画物体を合成して1つのビッグモデル(即ち、マスターモデル)となる。各区画は、マスターモデルにおける1つのサブモデル(即ち、親モデル)であり、各区画における物体は、親モデルの一部(即ち、サブモデル)に過ぎない。遠くのLODモデルにおける分解される部分を隠すために、マスターモデルのサブモデルのサブモデル情報を記録する必要がある。同様に、LODメカニズムにおいて、低精度サブモデルのシーングローバル識別子は、マスターモデルの第2のグローバル識別子およびマスターモデルにおける低精度サブモデルの第2のローカル識別子によって得られる。
【0036】
代替的な実施態様において、前記方法は、さらに、
前記低精度サブモデルに対応するサブコライダーの関連関係を確立することと、
前記サブコライダーに対応する前記低精度サブモデルの第2のローカル識別子を記録することと、を含む。
【0037】
同様に、低精度モデルの部分的な分解を実現するために、関連付けに基づいてマスターモデル下でのすべての低精度サブモデルを対応するサブコライダーに一意にマッピングする必要があり、これにより、ゲーム実行中に、仮想オブジェクトがスタティックコンポーネントに対して分解等の物理攻撃を行う時、ゲームエンジンによる物理検出により攻撃範囲内のサブコライダーを特定することができ、そのうえ、分解されるサブコンポーネントに対応する低精度サブモデルを特定し、このようにして、仮想オブジェクトがスタティックコンポーネントを部分分解する効果を実現する。
【0038】
代替的な実施態様において、前記方法は、さらに、
前記スタティックコンポーネントの集合から、体積が予め設定された体積よりも小さい前記低精度サブモデルに対応するサブコライダーを除外することと、
前記スタティックコンポーネントの集合から、高さが予め設定された高さよりも小さい前記低精度サブモデルに対応するサブコライダーを除外することと、の少なくとも一方を含む。
【0039】
マスターモデル下でのコライダー数が多すぎることを回避するために、体積又は高さが小さい低精度サブモデルに対応するサブコライダーを除外することができ、例えば、体積又は高さが小さい物体のコライダーを除外する。
【0040】
本開示の実施例は、ゲームシーンにおけるスタティックコンポーネントのレンダリング方法をさらに提供し、前記ゲームシーンに複数の前記スタティックコンポーネントが含まれており、前記スタティックコンポーネントは2つ以上のサブコンポーネントからなる。
図2は、本開示の一実施例によるゲームシーンにおけるスタティックコンポーネントのレンダリング方法を示すフローチャートである。
図2に示すように、本実施例では、該方法は、以下のステップS210〜ステップS230を含む。
【0041】
ステップS210:前記2つ以上のサブコンポーネントに対応する2つ以上のサブモデルを合成してなる親モデルであって、モデルファイルに前記サブモデルの情報が記録されている、前記スタティックコンポーネントに対応する親モデルをロードする。
【0042】
ステップS220:前記親モデルのうち「隠蔽」とマークされる前記サブモデルのシーングローバル識別子であって、前記ゲームシーンにおける前記サブモデルの識別情報を含むシーングローバル識別子を特定する。
【0043】
ステップS230:予め設定された方式により前記親モデルのうち「隠蔽」とマークされていない部分をレンダリングする。
【0044】
上述した実施例に提供されるゲームシーンにおけるスタティックコンポーネントの処理方法に対して、本実施例に提供される方法は、ゲーム実行中に適用される。一方では、親モデルにサブモデルの情報が含まれているため、ゲーム実行中に、これらのサブモデルの情報により親モデルの部分的な隠蔽を実現することができ、これにより、スタティックコンポーネントを分解するレンダリング効果を達成し、他方では、前記スタティックコンポーネントは、ゲーム実行中に1つの親モデルのみをレンダリングすればよく、モデル数が大きいことに起因するメモリ負荷及びレンダリング負荷を大幅に軽減する。
【0045】
代替的な実施態様において、前記サブモデルの情報は、前記親モデルの範囲内における前記サブモデルの識別情報を含む第1のローカル識別子を含み、
前記親モデルのうち「隠蔽」とマークされる前記サブモデルのシーングローバル識別子を特定することは、
前記ゲームシーンにおける前記親モデルの識別情報を含む、前記親モデルの第1のグローバル識別子を取得することと、
前記親モデルの第1のグローバル識別子及び前記サブモデルの前記第1のローカル識別子に基づいて、前記シーングローバル識別子を特定することと、を含む。
【0046】
前に述べたように、sub_destroy_id(即ち、第1のローカル識別子)は、サブモデルの合成時に生成され、サブモデルを親モデルの範囲内で一意に識別するためのものである。ゲームシーンの編集時に、親モデルを用いてシーン配置を行い、配置する際に、親モデルのために1つのdestroy_id(即ち、第1のグローバル識別子)を生成し、親モデルのdestroy_idとサブモデルのsub_destroy_idとにより、サブモデルを正確に位置決めするためのfull_destroy_id(即ち、シーングローバル識別子)を生成することができる。
【0047】
代替的な実施態様において、前記方法は、さらに、
前記スタティックコンポーネントに対応する前記親モデルをロードする際に、前記親モデルを構成する前記サブモデルに対応するサブコライダーを、ゲームエンジンの物理システムに入れることと、
前記スタティックコンポーネントに対する物理イベントに応答して、前記物理イベントが対象とする前記スタティックコンポーネントに対応する前記親モデルの前記第1のグローバル識別子を取得することと、
前記ゲームエンジンによって前記物理イベントがヒットした対象サブコライダーを検出し、前記対象サブコライダーに対応する対象サブモデルの前記第1のローカル識別子を取得することと、
前記親モデルの前記第1のグローバル識別子及び前記対象サブモデルの第1のローカル識別子に基づいて、前記対象サブモデルのシーングローバル識別子を得ることと、
前記対象サブモデルのシーングローバル識別子に基づいて前記対象サブモデルの位置決めを行い、前記対象サブモデルを「隠蔽」とマークすることと、を含む。
【0048】
仮想オブジェクトがスタティックコンポーネントに対して分解等の物理攻撃(即ち、スタティックコンポーネントに対する物理イベント)を行う時、ゲームエンジンによって物理イベントがヒットした対象サブコライダーを検出し、例えば、ゲームエンジンによる物理検出により攻撃範囲内のサブコライダーを検出して特定することができ、そのうえ、分解されるサブコンポーネントに対応するサブモデルを特定することにより、仮想オブジェクトがスタティックコンポーネントを部分分解する効果を実現するために、前記スタティックコンポーネントに対応する前記親モデルをロードする際に、前記親モデルを構成する前記サブモデルに対応するサブコライダーを、ゲームエンジンの物理システムに入れる必要がある。
【0049】
仮想オブジェクトがスタティックコンポーネントに対して分解等の物理攻撃を行ったと検出された場合、ゲームにおける物理エンジン、例えば、SweepTest又はRayTestによって攻撃範囲内のサブコライダーを検出し、その後、サブコライダーに記録されたsub_destroy_id及び親モデルのdestroy_idに基づいて、例えば、上述した実施態様に記載の予め設定されたルールによりfull_destroy_id(即ち、シーングローバル識別子)を得て、full_destroy_idによって親モデルの対象サブモデルのマッチングを行い、該対象サブモデルを「隠蔽」とマークする。また、サブコライダーがサブモデルそのものにアクセスできるように、サブコライダーをゲームエンジンの物理システムに入れる際に、サブコライダーに自分自身へのポインタを追加することができる。
【0050】
代替的な実施態様において、前記方法は、さらに、
レンダリングすべき前記スタティックコンポーネントと前記ゲームの仮想カメラとの距離が、予め設定された値よりも大きいと検出された場合、前記スタティックコンポーネントがあるスタティックコンポーネントの組み合わせに対応する低精度マスターモデルをロードし、前記スタティックコンポーネントの組み合わせは、予め設定された数の前記スタティックコンポーネントの組み合わせであり、前記低精度マスターモデルは、前記サブモデルの低精度バージョンである低精度サブモデルを合成してなることと、
前記低精度マスターモデルのうち「隠蔽」とマークされる前記サブモデルのシーングローバル識別子を特定することと、
予め設定された方式により前記低精度マスターモデルのうち「隠蔽」とマークされていない部分をレンダリングすることと、を含む。
【0051】
レンダリングすべき前記スタティックコンポーネントと前記ゲームの仮想カメラとの距離が、予め設定された値よりも大きいと検出された場合、即ち、レンダリングすべきスタティックコンポーネントが遠くにあると検出された場合、LODメカニズムを呼び出し、低精度モデルを用いてレンダリングし、前記低精度マスターモデルは、複数のスタティックコンポーネントの低精度サブモデルを合成してなる。
【0052】
代替的な実施態様において、前記方法は、さらに、
前記物理イベントが対象とする前記スタティックコンポーネントと前記仮想カメラとの距離が、予め設定された値よりも大きいと検出された場合、前記スタティックコンポーネントがある前記スタティックコンポーネントの組み合わせに対応する前記低精度マスターモデルの第2のグローバル識別子を取得し、前記第2のグローバル識別子は、前記ゲームシーンにおける前記低精度マスターモデルの識別情報を含むことと、
前記ゲームエンジンによって前記物理イベントがヒットした対象サブコライダーを検出し、前記対象サブコライダーに対応する前記低精度対象サブモデルの前記第2のローカル識別子を取得し、前記第2のローカル識別子は、前記低精度マスターモデルの範囲内における前記低精度対象サブモデルの識別情報を含むことと、
前記第2のグローバル識別子及び前記低精度対象サブモデルの前記第2のローカル識別子に基づいて、前記対象サブモデルのシーングローバル識別子を得て、前記対象サブモデルを「隠蔽」とマークすることと、を含む。
【0053】
物理イベントが対象とするスタティックコンポーネントが遠くにあり、かつ、仮想オブジェクトから分解等の物理攻撃(即ち、物理イベント)を受けたと検出された場合、ゲームエンジンによって物理イベントがヒットした対象サブコライダーを検出し、例えば、ゲームにおける物理エンジンによって攻撃範囲内の対象サブコライダーを検出し、その後、対象サブコライダーに記録された第2のローカル識別子及びマスターモデルから低精度対象サブモデルのシーングローバル識別子を得て、該対象サブモデルを「隠蔽」とマークする。
【0054】
代替的な実施態様において、前記方法は、さらに、
前記ゲームの他のクライアントがゲームシーンレンダリングを行う時に、「隠蔽」とマークされる前記サブモデルを隠すように、「隠蔽」とマークされる前記サブモデルの前記シーングローバル識別子を前記ゲームのサーバに同期させ、前記サーバを介して前記他のクライアントにブロードキャストすること、を含む。
【0055】
上述した実施態様によれば、分解されたスタティックコンポーネントのサブコンポーネントに対応するサブモデルのシーングローバル識別子をサーバに同期させ、他のゲームプレーヤ(即ち、ユーザ)に対応するゲームクライアントにブロードキャストすることができ、他のゲームプレーヤに対応するゲームクライアントは、該シーングローバル識別子に基づいて対応するサブモデルを削除する。
【0056】
代替的な実施態様において、前記予め設定された方式は、連続レンダリングメカニズムである。
【0057】
スタティックコンポーネントの親モデルをレンダリングする場合、「隠蔽」とマークされるサブモデルのレンダリングをとばし、残った分解されていない部分について連続レンダリングメカニズムを利用すれば、レンダリングの消耗を最小限に抑えることができるため、モデル数が大きいことに起因するレンダリング負荷を大幅に軽減する。
【0058】
1つのモデルをレンダリングする際に、まず頂点バッファVB、インデックスバッファIBを提出し、シェーダshaderをバインディングし、シェーダshaderパラメータを設定し、そして、レンダリング状態を設定し、最後に描画命令を呼び出す。例えば、親モデルに対応するスタティックコンポーネントが仮想オブジェクトによって分解されていなければ、親モデルは完全たるものであり、上述したレンダリングフローを一度だけ実行すればよい。一方、親モデルに対応するスタティックコンポーネントが部分分解された場合、親モデルの一部が隠れる必要があり、もともと全体としての親モデルは、複数の連続しない部分に分解され、その分、上述したレンダリングフローを何度も実行する必要があり、これは、中央処理装置(Central Processing Processor、単にCPUという)とグラフィックス処理ユニット(Graphics Processing Unit、単にGPUという)の通信冗長化を招き、レンダリング負荷が大きくなる。
【0059】
しかしながら、連続レンダリングメカニズムを利用した後、一部が隠れている親モデル(対応するスタティックコンポーネントが部分分解された)について、上述したレンダリングフローにおいて、VB、IBの提出、shaderのバインディングやshaderパラメータの設定、レンダリング状態の設定は、それぞれ一度だけ実行すればよい。一方、もともと全体としての親モデルが分解された連続しない複数の部分について、それぞれ描画命令を呼び出し、IBの一部へのレンダリングを指定し、このようにして、CPUとGPUの通信冗長化を大幅に軽減し、レンダリング効率を大幅に向上させる。
【0060】
代替的な実施態様において、前記低精度マスターモデルが隠蔽部分によって分割された数が予め設定された値を超えた場合、前記低精度マスターモデルが一度のレンダリング呼び出しでレンダリングを完了するように、前記低精度マスターモデルのインデックス再配置をトリガーする。
【0061】
遠くにあるLODモデルの一部が分解された場合、通常、LODビッグモデルにおいて分解された部分を位置決めして隠蔽にして表示する必要がある。LODモデルが大きく、一定数分解した後、モデル全体は、多くの細かい部分に分割されるため、レンダリングDP(レンダリング呼び出し)数がかなり増える。DP数の増加を抑えるために、分隔数が一定量を超えた場合、モデルのインデックス再配置をトリガーするので、残った物体は、一つのDPによってレンダリングを完了される。初期状態の頂点バッファ及びインデックスバッファの対応関係は、
図5における点線矢印に示すようなものであり、レンダリング命令が出された後、インデックスバッファのうち3つのインデックス値ごとに頂点バッファ内の3つの頂点にインデックス付けされ、三角形を形成してレンダリングされる。インデックス方式を利用する理由は、まず、頂点が共有され、2つの隣り合う三角形は2つの頂点が共有され、VBで2つの頂点のデータ量を節約することができ、頂点データは、通常、大きく、例えば、一般的には、位置座標、法線、テクスチャ座標、接線などを含むことにある。インデックス方式を利用することで、データ量を大幅に低減することができる。
【0062】
図5に示すように、インデックス3,4,5に対応するサブモデル(即ち、それぞれがP3,P4,P5である)を表示しなくてもよい(即ち、対応するサブコンポーネントが仮想オブジェクトにより分解される)とする。1つのDPは、インデックスデータが連続したものでなければならないため、この場合、2つのDP(Idx0-Idx1-Idx2,Idx6-Idx7-Idx8)が必要とされる。再配置閾値が1である場合は、親モデルが隠蔽部分によって2つ以上の連続領域に分割されていれば、インデックス再配置をトリガーし、この時、IBを再配置するようにトリガーし、再配置した後、IBは連続しているため、1つのDPで描画を完了することができる。再配置後の頂点バッファ及びインデックスバッファの対応関係は、
図5における実線矢印に示すようなものである。
【0063】
明らかなように、閾値が小さくなるにつれ、再配置が頻繁に行われ、大きすぎれば、DPを減らす機能が生じないため、閾値は、ゲームの具体的な状況に応じて設定される必要がある。
【0064】
この例示的な実施例において、ゲームシーンにおけるスタティックコンポーネントの処理装置がさらに開示されている。なお、該実施例のゲームシーンにおけるスタティックコンポーネントの処理装置は、本開示の実施例に係るゲームシーンにおけるスタティックコンポーネントの処理方法を実行するために用いられることができる。該ゲームシーンにおけるスタティックコンポーネントの処理装置は、1つ又は複数のプロセッサと、プログラムユニットを記憶する1つまたは複数の記憶装置とを備え、前記プログラムユニットは前記プロセッサによって実行され、前記プログラムユニットは、取得モジュール、第1の処理モジュール、記録モジュール及び第2の処理モジュールを有する。
【0065】
取得モジュールは、前記スタティックコンポーネントのサブコンポーネントに対応するサブモデルを取得するように構成される。
【0066】
第1の処理モジュールは、前記サブモデルを合成して、前記スタティックコンポーネントに対応する親モデルを得るとともに、前記親モデルの範囲内における前記サブモデルの識別情報を含む、前記サブモデルの第1のローカル識別子を生成する。
【0067】
記録モジュールは、第1のローカル識別子を含む前記サブモデルの情報を、前記親モデルのモデルファイルに記録するように構成される。
【0068】
第2の処理モジュールは、前記親モデルを用いて前記ゲームシーンを編集し、前記ゲームシーンにおける前記親モデルの識別情報を含む、前記親モデルの第1のグローバル識別子を生成するように構成され、前記第1のグローバル識別子及び前記第1のローカル識別子は、前記ゲームシーンにおける前記サブモデルの識別情報を含む、前記サブモデルのシーングローバル識別子を取得するために用いられる。
【0069】
なお、ここで、上述した取得モジュール、第1の処理モジュール、記録モジュール及び第2の処理モジュールは、装置の一部として端末に実行されることができ、端末におけるプロセッサによって、上述したモジュールで実現される機能を実行することができ、端末は、スマートフォン(例えば、Android携帯電話、iOS携帯電話等)、タブレットコンピュータ、パームトップコンピュータ、及びモバイルインターネットデバイス(Mobile Internet Devices、MID)、PAD等の端末機器であってもよい。
【0070】
上述した実施例では、各モジュールユニットの詳細について、対応するゲームシーンにおけるスタティックコンポーネントの処理方法で詳しく説明した。また、ゲームシーンにおけるスタティックコンポーネントの処理装置は、ゲームシーンにおけるスタティックコンポーネントの処理方法に対応する他のユニットモジュールをさらに備えることは、理解されるため、ここではその詳細な説明を省略する。
【0071】
この例示的な実施例において、ゲームシーンにおけるスタティックコンポーネントのレンダリング装置がさらに開示されている。なお、該実施例に係るゲームシーンにおけるスタティックコンポーネントのレンダリング装置は、本開示の実施例に係るゲームシーンにおけるスタティックコンポーネントのレンダリング方法を実行するために用いられることができる。
【0072】
図6は、本開示の一実施例に係るゲームシーンにおけるスタティックコンポーネントのレンダリング装置の構成図であり、前記ゲームシーンに複数の前記スタティックコンポーネントが含まれており、前記スタティックコンポーネントは2つ以上のサブコンポーネントからなり、該ゲームシーンにおけるスタティックコンポーネントのレンダリング装置は、1つ又は複数のプロセッサと、プログラムユニットを記憶する1つまたは複数の記憶装置とを備え、前記プログラムユニットは前記プロセッサによって実行され、前記プログラムユニットは、ロードモジュール601、特定モジュール602及びレンダリングモジュール603を有する。
図6に示すように、前記装置600は、
前記2つ以上のサブコンポーネントに対応する2つ以上のサブモデルを合成してなる親モデルであって、モデルファイルに前記サブモデルの情報が記録されている、前記スタティックコンポーネントに対応する親モデルをロードするように構成されるロードモジュール601と、
前記親モデルのうち「隠蔽」とマークされる前記サブモデルのシーングローバル識別子であって、前記ゲームシーンにおける前記サブモデルの識別情報を含むシーングローバル識別子を特定するように構成される特定モジュール602と、
予め設定された方式により前記親モデルのうち「隠蔽」とマークされていない部分をレンダリングするように構成されるレンダリングモジュール603と、を有する。
【0073】
なお、ここで、上述したロードモジュール601、特定モジュール602及びレンダリングモジュール603は、装置の一部として端末にて実行されることができ、端末におけるプロセッサによって、上述したモジュールで実現される機能を実行することができる。
【0074】
上述した実施態様によれば、前記スタティックコンポーネントに対応する前記親モデルをロードし、前記親モデルのモデルファイルに前記サブモデルの情報が記録されており、「隠蔽」とマークされる前記サブモデルのシーングローバル識別子に基づいて、予め設定された方式により前記親モデルのうち「隠蔽」とマークされていない部分をレンダリングし、これにより、スタティックコンポーネントの一部を隠すレンダリング効果を達成できる一方、モデル数が大きいことに起因するメモリ及びレンダリングの負荷を効果的に軽減する。
【0075】
上述した実施例では、各モジュールユニットの詳細について、対応するゲームシーンにおけるスタティックコンポーネントのレンダリング方法で詳しく説明した。また、ゲームシーンにおけるスタティックコンポーネントのレンダリング装置は、ゲームシーンにおけるスタティックコンポーネントのレンダリング方法に対応する他のユニットモジュールをさらに備えることは、理解されるため、ここではその詳細な説明を省略する。
【0076】
なお、以上の詳細な説明において、動作を実行するための装置の若干のモジュール又はユニットが説明されているが、このような装置の分けは必須ではないことに留意されたい。実際には、本開示の実施態様によれば、以上で説明された2つ以上のモジュール又はユニットの特徴及び機能は、1つのモジュール又はユニットに具体化されることができる。逆に、以上で説明された1つのモジュール又はユニットの特徴及び機能は、さらに、複数のモジュール又はユニットに分けられて具体化されることができる。
【0077】
図7は、本開示の一実施例に係る電子機器の構成を示す模式図である。
図7に示すように、本実施例の電子機器700は、記憶装置701とプロセッサ702とを備える。記憶装置701は、前記プロセッサの実行可能な命令を記憶し、前記実行可能な命令は、コンピュータプログラムであることができる。前記プロセッサ702は、前記実行可能な命令を実行することにより、
前記2つ以上のサブコンポーネントに対応する2つ以上のサブモデルを合成してなる親モデルであって、モデルファイルに前記サブモデルの情報が記録されている、前記スタティックコンポーネントに対応する親モデルをロードするステップと、
前記親モデルのうち「隠蔽」とマークされる前記サブモデルのシーングローバル識別子であって、前記ゲームシーンにおける前記サブモデルの識別情報を含むシーングローバル識別子を特定するステップと、
予め設定された方式により前記親モデルのうち「隠蔽」とマークされていない部分をレンダリングするステップと、を実現するように構成される。
【0078】
任意選択で、前記サブモデルの情報は、前記親モデルの範囲内における前記サブモデルの識別情報を含む第1のローカル識別子を含み、
前記親モデルのうち「隠蔽」とマークされる前記サブモデルのシーングローバル識別子を特定することは、
前記ゲームシーンにおける前記親モデルの識別情報を含む、前記親モデルの第1のグローバル識別子を取得することと、
前記親モデルの第1のグローバル識別子及び前記サブモデルの前記第1のローカル識別子に基づいて、前記シーングローバル識別子を特定することと、を含んでもよい。
【0079】
任意選択で、前記スタティックコンポーネントに対応する前記親モデルをロードする際に、前記親モデルを構成する前記サブモデルに対応するサブコライダーを、ゲームエンジンの物理システムに追加し、
前記スタティックコンポーネントに対する物理イベントに応答して、前記物理イベントが対象とする前記スタティックコンポーネントに対応する前記親モデルの前記第1のグローバル識別子を取得し、
前記ゲームエンジンによって前記物理イベントがヒットした対象サブコライダーを検出し、前記対象サブコライダーに対応する対象サブモデルの前記第1のローカル識別子を取得し、
前記親モデルの前記第1のグローバル識別子及び前記対象サブモデルの第1のローカル識別子に基づいて、前記対象サブモデルのシーングローバル識別子を得て、
前記対象サブモデルのシーングローバル識別子に基づいて前記対象サブモデルの位置決めを行い、前記対象サブモデルを「隠蔽」とマークするようにしてもよい。
【0080】
任意選択で、レンダリングすべき前記スタティックコンポーネントと前記ゲームの仮想カメラとの距離が、予め設定された値よりも大きいと検出された場合、前記スタティックコンポーネントがある予め設定された数のスタティックコンポーネントの組み合わせに対応する低精度マスターモデルであって、前記サブモデルの低精度バージョンである低精度サブモデルを合成してなる低精度マスターモデルをロードし、
前記低精度マスターモデルのうち「隠蔽」とマークされる前記サブモデルのシーングローバル識別子を特定し、
予め設定された方式により前記低精度マスターモデルのうち「隠蔽」とマークされていない部分をレンダリングするようにしてもよい。
【0081】
任意選択で、前記物理イベントが対象とする前記スタティックコンポーネントと前記仮想カメラとの距離が、予め設定された値よりも大きいと検出された場合、前記スタティックコンポーネントがある前記スタティックコンポーネントの組み合わせに対応する前記低精度マスターモデルの第2のグローバル識別子であって、前記ゲームシーンにおける前記低精度マスターモデルの識別情報を含む第2のグローバル識別子を取得し、
前記ゲームエンジンによって前記物理イベントがヒットした対象サブコライダーを検出し、前記対象サブコライダーに対応する前記低精度対象サブモデルの前記第2のローカル識別子であって、前記低精度マスターモデルの範囲内における前記低精度対象サブモデルの識別情報を含む前記第2のローカル識別子を取得し、
前記第2のグローバル識別子及び前記低精度対象サブモデルの前記第2のローカル識別子に基づいて、前記対象サブモデルのシーングローバル識別子を得て、前記対象サブモデルを「隠蔽」とマークするようにしてもよい。
【0082】
任意選択で、前記ゲームの他のクライアントがゲームシーンレンダリングを行う時に、「隠蔽」とマークされる前記サブモデルを隠すように、「隠蔽」とマークされる前記サブモデルの前記シーングローバル識別子を前記ゲームのサーバに同期させ、前記サーバを介して前記他のクライアントにブロードキャストするようにしてもよい。
【0083】
任意選択で、前記予め設定された方式は、連続レンダリングメカニズムであってもよい。
【0084】
任意選択で、前記低精度マスターモデルが隠蔽部分によって分割された数が予め設定された値を超えた場合、前記低精度マスターモデルが一度のレンダリング呼び出しでレンダリングを完了するように、前記低精度マスターモデルのインデックス再配置をトリガーしてもよい。
【0085】
任意選択で、本実施例における具体例について、上述した実施例に説明された例を参照することができ、本実施例は、ここでその詳細な説明を省略する。
【0086】
上述した実施態様によれば、前記スタティックコンポーネントに対応する前記親モデルをロードし、前記親モデルのモデルファイルに前記サブモデルの情報が記録されており、「隠蔽」とマークされる前記サブモデルのシーングローバル識別子に基づいて、予め設定された方式により前記親モデルのうち「隠蔽」とマークされていない部分をレンダリングし、これにより、スタティックコンポーネントの一部を隠すレンダリング効果を達成できる一方、モデル数が大きいことに起因するメモリ及びレンダリングの負荷を効果的に軽減する。
【0087】
代替的な実施態様において、前記電子機器は、1つ又は複数のプロセッサと、処理コンポーネントで実行可能な命令、例えば、アプリケーションプログラムを記憶するための、記憶装置を代表とする記憶装置リソースとをさらに備えてもよい。記憶装置に記憶されるアプリケーションプログラムは、それぞれ1群の命令に対応する1つ以上のモジュールを有してもよい。また、処理コンポーネントは、上述した情報処理方法を実行するように、命令を実行するように構成される。
【0088】
該電子機器は、電子機器の電源管理を実行するように構成される電源コンポーネントと、電子機器をネットワークに接続するように構成される有線又は無線ネットワークインターフェースと、入出力(I/O)インターフェースと、をさらに備えてもよい。該電子機器は、記憶装置に記憶される操作システム、例えば、Android、iOS、Windows、Mac OS X、Unix、Linux(登録商標)、FreeBSDのようなものに基づいて動作することができる。
【0089】
図7に示す構造は、一例に過ぎず、電子機器は、スマートフォン、タブレットコンピュータ、パームトップコンピュータ、及びモバイルインターネットデバイス(Mobile Internet Devices、MID)、PAD等の電子装置であってもよいことは、当業者が理解することができる。
図7は、上述した電子機器の構造を制限しない。例えば、電子機器は、
図7に示すものよりも多いか少ないコンポーネント(例えば、ネットワークインターフェース、表示装置等)をさらに含むか、或いは、
図7に示すものと異なる構成を有してもよい。
【0090】
図8は、本開示の一実施例に係る記憶媒体の構成を示す模式図である。
図8に示すように、本開示の実施態様によるプログラム製品800を説明し、それにはコンピュータプログラムが記憶されており、前記コンピュータプログラムは、プロセッサによって実行されると、
前記2つ以上のサブコンポーネントに対応する2つ以上のサブモデルを合成してなる親モデルであって、モデルファイルに前記サブモデルの情報が記録されている、前記スタティックコンポーネントに対応する親モデルをロードするステップと、
前記親モデルのうち「隠蔽」とマークされる前記サブモデルのシーングローバル識別子であって、前記ゲームシーンにおける前記サブモデルの識別情報を含むシーングローバル識別子を特定するステップと、
予め設定された方式により前記親モデルのうち「隠蔽」とマークされていない部分をレンダリングするステップと、のプログラムコードが実現される。
【0091】
任意選択で、前記サブモデルの情報は、前記親モデルの範囲内における前記サブモデルの識別情報を含む第1のローカル識別子を含み、
前記親モデルのうち「隠蔽」とマークされる前記サブモデルのシーングローバル識別子を特定することは、
前記ゲームシーンにおける前記親モデルの識別情報を含む、前記親モデルの第1のグローバル識別子を取得することと、
前記親モデルの第1のグローバル識別子及び前記サブモデルの前記第1のローカル識別子に基づいて、前記シーングローバル識別子を特定することと、を含んでもよい。
【0092】
任意選択で、前記スタティックコンポーネントに対応する前記親モデルをロードする際に、前記親モデルを構成する前記サブモデルに対応するサブコライダーを、ゲームエンジンの物理システムに追加し、
前記スタティックコンポーネントに対する物理イベントに応答して、前記物理イベントが対象とする前記スタティックコンポーネントに対応する前記親モデルの前記第1のグローバル識別子を取得し、
前記ゲームエンジンによって前記物理イベントがヒットした対象サブコライダーを検出し、前記対象サブコライダーに対応する対象サブモデルの前記第1のローカル識別子を取得し、
前記親モデルの前記第1のグローバル識別子及び前記対象サブモデルの第1のローカル識別子に基づいて、前記対象サブモデルのシーングローバル識別子を得て、
前記対象サブモデルのシーングローバル識別子に基づいて前記対象サブモデルの位置決めを行い、前記対象サブモデルを「隠蔽」とマークするようにしてもよい。
【0093】
任意選択で、レンダリングすべき前記スタティックコンポーネントと前記ゲームの仮想カメラとの距離が、予め設定された値よりも大きいと検出された場合、前記スタティックコンポーネントがある予め設定された数のスタティックコンポーネントの組み合わせに対応する低精度マスターモデルであって、前記サブモデルの低精度バージョンである低精度サブモデルを合成してなる低精度マスターモデルをロードし、
前記低精度マスターモデルのうち「隠蔽」とマークされる前記サブモデルのシーングローバル識別子を特定し、
予め設定された方式により前記低精度マスターモデルのうち「隠蔽」とマークされていない部分をレンダリングするようにしてもよい。
【0094】
任意選択で、前記物理イベントが対象とする前記スタティックコンポーネントと前記仮想カメラとの距離が、予め設定された値よりも大きいと検出された場合、前記スタティックコンポーネントがある前記スタティックコンポーネントの組み合わせに対応する前記低精度マスターモデルの第2のグローバル識別子であって、前記ゲームシーンにおける前記低精度マスターモデルの識別情報を含む第2のグローバル識別子を取得し、
前記ゲームエンジンによって前記物理イベントがヒットした対象サブコライダーを検出し、前記対象サブコライダーに対応する前記低精度対象サブモデルの前記第2のローカル識別子であって、前記低精度マスターモデルの範囲内における前記低精度対象サブモデルの識別情報を含む第2のローカル識別子を取得し、
前記第2のグローバル識別子及び前記低精度対象サブモデルの前記第2のローカル識別子に基づいて、前記対象サブモデルのシーングローバル識別子を得て、前記対象サブモデルを「隠蔽」とマークするようにしてもよい。
【0095】
任意選択で、前記ゲームの他のクライアントがゲームシーンレンダリングを行う時に、「隠蔽」とマークされる前記サブモデルを隠すように、「隠蔽」とマークされる前記サブモデルの前記シーングローバル識別子を前記ゲームのサーバに同期させ、前記サーバを介して前記他のクライアントにブロードキャストするようにしてもよい。
【0096】
任意選択で、前記予め設定された方式は、連続レンダリングメカニズムであってもよい。
【0097】
任意選択で、前記低精度マスターモデルが隠蔽部分によって分割された数が予め設定された値を超えた場合、前記低精度マスターモデルが一度のレンダリング呼び出しでレンダリングを完了するように、前記低精度マスターモデルのインデックス再配置をトリガーしてもよい。
【0098】
任意選択で、本実施例における具体例は、上述した実施例に説明される例を参考することができ、本実施例は、ここでその詳細な説明を省略する。
【0099】
上述した実施態様によれば、前記スタティックコンポーネントに対応する前記親モデルをロードし、前記親モデルのモデルファイルに前記サブモデルの情報が記録されており、「隠蔽」とマークされる前記サブモデルのシーングローバル識別子に基づいて、予め設定された方式により前記親モデルのうち「隠蔽」とマークされていない部分をレンダリングし、これにより、スタティックコンポーネントの一部を隠すレンダリング効果を達成できる一方、モデル数が大きいことに起因するメモリ及びレンダリングの負荷を効果的に軽減する。
【0100】
上述した実施態様によれば、前記スタティックコンポーネントに対応する前記親モデルをロードし、前記親モデルのモデルファイルに前記サブモデルの情報が記録されており、「隠蔽」とマークされる前記サブモデルのシーングローバル識別子に基づいて、予め設定された方式により前記親モデルのうち「隠蔽」とマークされていない部分をレンダリングし、これにより、スタティックコンポーネントの一部を隠すレンダリング効果を達成できる一方、モデル数が大きいことに起因するメモリ及びレンダリングの負荷を効果的に軽減する。
【0101】
コンピュータ読み取り可能な記憶媒体は、ベースバンド中又は搬送波の一部として伝播され、読み取り可能なプログラムコードが付加されたデータ信号を含むことができる。このように伝播されたデータ信号は、様々な形態であることができ、電磁信号、光信号又は上述した任意の組合せを含むが、これに限定されない。コンピュータ読み取り可能な記憶媒体は、指令実行システム、装置又はデバイスに使用されたり、それと組み合わせて使用されるプログラムを送信、伝播又は伝送することができる。
【0102】
コンピュータ読み取り可能な記憶媒体に含まれるプログラムコードは、任意の適切な媒体で伝送されることができ、無線、有線、光ファイバケーブル、RF等、又は、上述した任意の適切な組合せを含むが、これに限定されない。
【0103】
以上の実施態様で説明したように、ここに説明される例示的な実施態様は、ソフトウェアによって実現されることができるし、ソフトウェア及び必要なハードウェアの組み合わせによって実現されることもできることは、当業者が容易に理解することができる。このため、本開示の実施態様による技術的構成は、ソフトウェア製品の形で体現されることができ、このソフトウェア製品は、不揮発性記憶媒体(CD−ROM、USBフラッシュディスク、携帯型ハードディスク等であってもよい)又はネットワークに記憶されることができ、計算機器(パーソナルコンピュータ、サーバ、電子機器、又はネットワークデバイス等であってもよい)に本開示の実施態様による方法を実行させる若干の指令を含む。
【0104】
上述した実施例の各種方法におけるステップの一部又は全部は、プログラムによってゲームシーンにおけるスタティックコンポーネントの処理装置及びレンダリング装置の関連するハードウェアを命令して完成させることができ、このプログラムが読み取り可能な記憶媒体に記憶されることができ、記憶媒体は、フラッシュディスク、リードオンリーメモリ(Read-Only Memory、ROM)、ランダムアクセスメモリ(Random Access Memory、RAM)、磁気ディスク又は光ディスク等を含みうると、当業者が理解することができる。
【0105】
以上、図面を参照しつつ、本開示によるゲームシーンにおけるスタティックコンポーネントの処理方法、レンダリング方法および装置を例示的に説明した。しかし、上記本開示に提案されるゲームシーンにおけるスタティックコンポーネントの処理方法、レンダリング方法および装置について、さらに、本開示の内容から逸脱しない限り様々な改良が可能であると、当業者が理解すべきである。それゆえ、記載した特許請求の範囲の内容に基づいて本開示の保護範囲が定められるべきである。
【0106】
当業者は明細書及びここで公開した開示を実施した後、本発明の他の実施例を容易に想到できる。本願は本発明の全ての変形、用途または適応性変化を含み、これらの変形、用途または適応性変化は、本開示の一般的な原理に準じて、本開示には開示されていない本分野の周知技術または慣用の技術手段を含む。明細書と実施例は例示的なもので、本発明の保護範囲は特許請求の範囲によって限定される。
【0107】
本開示は、以上に説明され図面に示されている正確な構造に限定されず、その範囲から逸脱しない限り、様々な修正や変化が可能である。本開示の範囲は、添付される請求項によって制限される。
【産業上の利用可能性】
【0108】
本開示の実施例において、スタティックコンポーネントに対応する親モデルをロードし、親モデルのモデルファイルにサブモデルの情報が記憶されており、「隠蔽」とマークされるサブモデルのシーングローバル識別子に基づいて、予め設定された方式により親モデルのうち「隠蔽」とマークされていない部分をレンダリングし、これにより、スタティックコンポーネントの一部を隠すレンダリング効果を達成できる一方、モデル数が大きいことに起因するメモリ及びレンダリングの負荷を効果的に軽減する。
【国際調査報告】