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

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

▶ テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッドの特許一覧

特表2024-507183オブジェクト管理方法、オブジェクト管理装置、コンピュータ機器、コンピュータプログラム、及びオブジェクト管理システム
<>
  • 特表-オブジェクト管理方法、オブジェクト管理装置、コンピュータ機器、コンピュータプログラム、及びオブジェクト管理システム 図1
  • 特表-オブジェクト管理方法、オブジェクト管理装置、コンピュータ機器、コンピュータプログラム、及びオブジェクト管理システム 図2
  • 特表-オブジェクト管理方法、オブジェクト管理装置、コンピュータ機器、コンピュータプログラム、及びオブジェクト管理システム 図3
  • 特表-オブジェクト管理方法、オブジェクト管理装置、コンピュータ機器、コンピュータプログラム、及びオブジェクト管理システム 図4
  • 特表-オブジェクト管理方法、オブジェクト管理装置、コンピュータ機器、コンピュータプログラム、及びオブジェクト管理システム 図5
  • 特表-オブジェクト管理方法、オブジェクト管理装置、コンピュータ機器、コンピュータプログラム、及びオブジェクト管理システム 図6
  • 特表-オブジェクト管理方法、オブジェクト管理装置、コンピュータ機器、コンピュータプログラム、及びオブジェクト管理システム 図7
  • 特表-オブジェクト管理方法、オブジェクト管理装置、コンピュータ機器、コンピュータプログラム、及びオブジェクト管理システム 図8
  • 特表-オブジェクト管理方法、オブジェクト管理装置、コンピュータ機器、コンピュータプログラム、及びオブジェクト管理システム 図9
  • 特表-オブジェクト管理方法、オブジェクト管理装置、コンピュータ機器、コンピュータプログラム、及びオブジェクト管理システム 図10
  • 特表-オブジェクト管理方法、オブジェクト管理装置、コンピュータ機器、コンピュータプログラム、及びオブジェクト管理システム 図11
  • 特表-オブジェクト管理方法、オブジェクト管理装置、コンピュータ機器、コンピュータプログラム、及びオブジェクト管理システム 図12
  • 特表-オブジェクト管理方法、オブジェクト管理装置、コンピュータ機器、コンピュータプログラム、及びオブジェクト管理システム 図13
  • 特表-オブジェクト管理方法、オブジェクト管理装置、コンピュータ機器、コンピュータプログラム、及びオブジェクト管理システム 図14
  • 特表-オブジェクト管理方法、オブジェクト管理装置、コンピュータ機器、コンピュータプログラム、及びオブジェクト管理システム 図15
  • 特表-オブジェクト管理方法、オブジェクト管理装置、コンピュータ機器、コンピュータプログラム、及びオブジェクト管理システム 図16
  • 特表-オブジェクト管理方法、オブジェクト管理装置、コンピュータ機器、コンピュータプログラム、及びオブジェクト管理システム 図17
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-16
(54)【発明の名称】オブジェクト管理方法、オブジェクト管理装置、コンピュータ機器、コンピュータプログラム、及びオブジェクト管理システム
(51)【国際特許分類】
   G06F 16/53 20190101AFI20240208BHJP
   G06T 17/00 20060101ALI20240208BHJP
【FI】
G06F16/53
G06T17/00 500
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023549040
(86)(22)【出願日】2022-08-10
(85)【翻訳文提出日】2023-08-29
(86)【国際出願番号】 CN2022111471
(87)【国際公開番号】W WO2023035840
(87)【国際公開日】2023-03-16
(31)【優先権主張番号】202111057914.8
(32)【優先日】2021-09-09
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】514187420
【氏名又は名称】テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】パン,ヨン
(72)【発明者】
【氏名】ライ,ロンウェイ
(72)【発明者】
【氏名】ワン,ヤチャン
【テーマコード(参考)】
5B080
5B175
【Fターム(参考)】
5B080AA08
5B080CA00
5B080FA00
5B080GA00
5B175DA02
5B175KA11
(57)【要約】
オブジェクト管理方法、装置、機器、記憶媒体、及びシステムであって、コンピュータ及びインターネットの技術分野に属する。前記方法は、シーンに追加された第1オブジェクトの位置情報を取得するステップ(210)と、第1オブジェクトの位置情報に基づいて、シーンに対応するオブジェクト管理ツリーから第1ノードを決定するステップ(220)と、第1ノードに対応する領域に第1オブジェクトが追加されると、第1ノードに対応する領域に含まれるオブジェクトの数が上限値より大きくなる場合、第1ノードに対応する領域に含まれる各オブジェクトの位置情報に基づいて、第1ノードに対応する領域をn個の子領域に分割するステップであって、各子領域に含まれるオブジェクトの数が同じか近い、ステップ(230)と、オブジェクト管理ツリーにn-1個のノードを追加するステップ(240)と、を含む。本願によれば、ノード数の増加が速すぎることを避けて、メモリの使用を減らすことができるだけでなく、ある領域で管理しているオブジェクトの数を直接n等分して、オブジェクト管理効率を高めることができる。
【特許請求の範囲】
【請求項1】
コンピュータ機器が実行するオブジェクト管理方法であって、
シーンに追加された第1オブジェクトの位置情報を取得するステップと、
前記第1オブジェクトの位置情報に基づいて、前記シーンに対応するオブジェクト管理ツリーから第1ノードを決定するステップであって、前記オブジェクト管理ツリーには、複数のノードが含まれ、各々のノードは前記シーン内の1つの領域に対応し、異なるノードに対応する領域は互いに重ならず、前記第1ノードとは、前記第1オブジェクトの位置情報が属する領域に対応するノードを指す、ステップと、
前記第1ノードに対応する領域に前記第1オブジェクトが追加されると、前記第1ノードに対応する領域に含まれるオブジェクトの数が上限値より大きくなる場合、前記第1ノードに対応する領域に含まれる各オブジェクトの位置情報に基づいて、前記第1ノードに対応する領域をn個(nは1より大きい整数)の子領域に分割するステップであって、各前記子領域に含まれるオブジェクトの数が同じか近い、ステップと、
前記n個の子領域と1対1に対応するn個のノードを前記オブジェクト管理ツリーに配置するステップと、
を含む方法。
【請求項2】
前記第1ノードに対応する領域に含まれる各オブジェクトの位置情報に基づいて、前記第1ノードに対応する領域をn個の子領域に分割するステップは、
前記第1ノードに対応する領域に含まれる各オブジェクトの位置情報に基づいて、前記第1ノードに対応する領域に含まれる各オブジェクトのk個(kは正の整数)の空間次元における距離スパンを決定するステップと、
前記k個の空間次元の中から、前記距離スパンが最大となるターゲット空間次元を選択するステップと、
前記ターゲット空間次元を分割対象として、前記第1ノードに対応する領域を前記n個の子領域に分割するステップと、を含む、
請求項1に記載の方法。
【請求項3】
前記ターゲット空間次元を分割対象として、前記第1ノードに対応する領域を前記n個の子領域に分割するステップは、
前記第1ノードに対応する領域に含まれる各オブジェクトの中から、前記ターゲット空間次元において距離が最も遠い第1オブジェクト及び第2オブジェクトを決定するステップと、
前記第1オブジェクト及び前記第2オブジェクトの前記ターゲット空間次元における2つの投影点間の線分をn等分することにより、n-1個の分割点を取得するステップと、
前記n-1個の分割点に基づいて、前記第1ノードに対応する領域を前記n個の子領域に分割するステップと、を含む、
請求項2に記載の方法。
【請求項4】
前記n個の子領域と1対1に対応するn個のノードを前記オブジェクト管理ツリーに配置するステップは、
前記第1ノードの親ノードの子ノードの数を取得するステップと、
前記子ノードの数が第1条件を満たす場合、前記オブジェクト管理ツリーに前記第1ノードのn-1個の兄弟ノードを追加し、前記第1ノード及び前記n-1個の兄弟ノードを前記n個の子領域と1対1に対応するように配置するステップと、
前記子ノードの数が第2条件を満たす場合、前記オブジェクト管理ツリーに前記第1ノードのn個の子ノードを追加し、前記n個の子ノードを前記n個の子領域と1対1に対応するように配置するステップと、を含む、
請求項1に記載の方法。
【請求項5】
前記第1ノードの親ノードの子ノードの数を取得するステップの後、
前記子ノードの数が第3条件を満たす場合、前記オブジェクト管理ツリーに前記第1ノードのn個の兄弟ノードを追加し、前記オブジェクト管理ツリーに前記第1ノードのn個の子ノードを追加し、前記n個の兄弟ノード及び前記n個の子ノードを前記n個の子領域と1対1に対応するように配置するステップであって、n及びnは正の整数であり、n+nがnに等しい、ステップをさらに含む、
請求項4に記載の方法。
【請求項6】
前記シーンから削減された第2オブジェクトの位置情報を取得するステップと、
前記第2オブジェクトの位置情報に基づいて、前記オブジェクト管理ツリーから第2ノードを決定するステップであって、前記第2ノードとは、前記第2オブジェクトの位置情報が属する領域に対応するノードを指す、ステップと、
前記第2ノードに対応する領域から前記第2オブジェクトが削減されると、前記第2ノードに対応する領域に含まれるオブジェクトの数が下限値より小さくなる場合、前記オブジェクト管理ツリーから、前記第2ノードと統合する第3ノードを決定するステップと、
前記第3ノードに対応する領域を、前記第3ノードに対応する元の領域と前記第2ノードに対応する領域との統合領域に更新するステップと、
前記オブジェクト管理ツリーから前記第2ノードを削除するステップと、をさらに含む、
請求項1に記載の方法。
【請求項7】
前記第3ノードに対応する領域を、前記第3ノードに対応する元の領域と前記第2ノードに対応する領域との統合領域に更新するステップは、
前記第3ノードの数が1つである場合、前記第3ノードに対応する領域を、前記第3ノードに対応する元の領域と前記第2ノードに対応する完全領域との統合領域に更新するステップ、
あるいは、
前記第3ノードの数がk個(kは1より大きい整数)である場合、前記第2ノードに対応する領域をk個の子領域に分割し、前記k個の第3ノードを前記k個の子領域と1対1に対応させ、前記k個の第3ノードのうちの各々の第3ノードに対して、前記第3ノードに対応する領域を、前記第3ノードに対応する元の領域と、前記k個の子領域のうち、前記第3ノードにマッチする子領域との統合領域に更新するステップ、を含む、
請求項6に記載の方法。
【請求項8】
前記オブジェクト管理ツリーから前記第2ノードを削除するステップの後、
前記第3ノードの親ノードが子ノードを1つしか持っていない場合、前記オブジェクト管理ツリーから前記第3ノードの親ノードを削除し、前記第3ノードをその祖父ノードの子ノードとするステップをさらに含む、
請求項6に記載の方法。
【請求項9】
前記シーン内のターゲットオブジェクトの視野範囲を取得するステップと、
前記オブジェクト管理ツリーに基づいて、前記視野範囲内に位置するオブジェクト集合を決定するステップであって、前記オブジェクト集合には、前記視野範囲内に位置する少なくとも1つのオブジェクトが含まれる、ステップと、
前記視野範囲を複数のサブ視野範囲に分割するステップであって、異なるサブ視野範囲と前記ターゲットオブジェクトとの間の距離が異なる、ステップと、
前記オブジェクト集合内の各オブジェクトのそれぞれが属するサブ視野範囲に基づいて、前記各オブジェクトのそれぞれに対応するリフレッシュ頻度を決定するステップであって、前記オブジェクトに対応するリフレッシュ頻度は、前記オブジェクトが属するサブ視野範囲と前記ターゲットオブジェクトとの間の距離と負の相関関係がある、ステップと、をさらに含む、
請求項1に記載の方法。
【請求項10】
前記複数のサブ視野範囲のうちの第1サブ視野範囲に対して、前記第1サブ視野範囲内のオブジェクトの数が、前記第1サブ視野範囲に対応する定格最大数より大きい場合、前記第1サブ視野範囲内の各オブジェクトのそれぞれに対応する属性情報を取得するステップであって、前記属性情報は、前記オブジェクトと前記ターゲットオブジェクトとの間の関係を表すためのものである、ステップと、
前記第1サブ視野範囲内の各オブジェクトのそれぞれに対応する属性情報に基づいて、前記第1サブ視野範囲内の各オブジェクトのそれぞれに対応する重みを決定するステップと、
前記第1サブ視野範囲内の各オブジェクトの中から、前記重みが条件に合致するオブジェクトを前記第1サブ視野範囲内の表示オブジェクトとして選択するステップであって、前記表示オブジェクトとは、前記ターゲットオブジェクトの視野範囲内に表示するオブジェクトを指す、ステップと、をさらに含む、
請求項9に記載の方法。
【請求項11】
前記複数のサブ視野範囲のうちの第2サブ視野範囲に対して、前記第2サブ視野範囲内のオブジェクトの数が、前記第2サブ視野範囲に対応する定格最大数より小さい場合、前記第1サブ視野範囲内の残りのオブジェクトを前記第2サブ視野範囲に割り当てるステップをさらに含み、
前記残りのオブジェクトとは、前記第1サブ視野範囲内の、前記重みが前記条件に合致しないオブジェクトを指し、前記残りのオブジェクトは、前記第2サブ視野範囲に対応するリフレッシュ頻度で表示される、
請求項10に記載の方法。
【請求項12】
オブジェクト管理装置であって、
シーンに追加された第1オブジェクトの位置情報を取得する位置取得モジュールと、
前記第1オブジェクトの位置情報に基づいて、前記シーンに対応するオブジェクト管理ツリーから第1ノードを決定するノード決定モジュールであって、前記オブジェクト管理ツリーには、複数のノードが含まれ、各々のノードは前記シーン内の1つの領域に対応し、異なるノードに対応する領域は互いに重ならず、前記第1ノードとは、前記第1オブジェクトの位置情報が属する領域に対応するノードを指す、ノード決定モジュールと、
前記第1ノードに対応する領域に前記第1オブジェクトが追加されると、前記第1ノードに対応する領域に含まれるオブジェクトの数が上限値より大きくなる場合、前記第1ノードに対応する領域に含まれる各オブジェクトの位置情報に基づいて、前記第1ノードに対応する領域をn個(前記nは1より大きい整数)の子領域に分割する領域分割モジュールであって、各前記子領域に含まれるオブジェクトの数が同じか近い、領域分割モジュールと、
前記n個の子領域と1対1に対応するn個のノードを前記オブジェクト管理ツリーに配置するノード配置モジュールと、
を含む装置。
【請求項13】
プロセッサとメモリとを備えるコンピュータ機器であって、前記メモリには、コンピュータプログラムが記憶されており、前記コンピュータプログラムは、前記プロセッサによりロードされて実行されると、請求項1乃至11のいずれか1項に記載の方法を実現させるコンピュータ機器。
【請求項14】
コンピュータプログラムを含むコンピュータプログラム製品であって、前記コンピュータプログラムは、コンピュータ可読記憶媒体に記憶されており、プロセッサは、前記コンピュータ可読記憶媒体から前記コンピュータプログラムを読み取って実行することで、コンピュータに請求項1乃至11のいずれか1項に記載の方法を実行させるコンピュータプログラム。
【請求項15】
オブジェクト管理層と関心領域(AOI)視野層とを含むオブジェクト管理システムであって、
前記AOI視野層は、シーン内のターゲットオブジェクトの視野範囲データを前記オブジェクト管理層に送信し、前記ターゲットオブジェクトの視野範囲データは、前記ターゲットオブジェクトの視野範囲を示すためのものであり、
前記オブジェクト管理層は、前記ターゲットオブジェクトの視野範囲データに基づいて、前記ターゲットオブジェクトの視野範囲を決定し、前記シーンに対応するオブジェクト管理ツリーに基づいて、前記ターゲットオブジェクトの視野範囲内に位置するオブジェクト集合を決定し、前記ターゲットオブジェクトの視野範囲内のオブジェクト集合を示すためのオブジェクト集合データを前記AOI視野層に送信し、前記オブジェクト集合には、前記ターゲットオブジェクトの視野範囲内に位置する少なくとも1つのオブジェクトが含まれ、前記オブジェクト管理ツリーには、複数のノードが含まれ、各々のノードは前記シーン内の1つの領域に対応し、異なるノードに対応する領域は互いに重ならず、異なるノードに対応する領域に含まれるオブジェクトの数が同じか近く、
前記AOI視野層は、前記オブジェクト集合データに基づいて、前記ターゲットオブジェクトの視野範囲内のオブジェクト集合を決定する、
システム。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、2021年9月9日に提出された、出願番号が第202111057914.8号であり、発明の名称が「オブジェクト管理方法、装置、機器、記憶媒体、及びシステム」である中国特許出願に基づく優先権を主張し、その全ての内容が、参照することにより本願に組み込まれている。
【0002】
本願の実施例は、コンピュータ及びインターネットの技術分野に関し、特に、オブジェクト管理方法、装置、機器、記憶媒体、及びシステムに関する。
【背景技術】
【0003】
ゲームアプリケーションなどでは、シーン内に多数のオブジェクトが存在するため、シーン内のオブジェクトを効率的に管理して、視野オブジェクトの選択や関連データの取得を容易にする必要がある。
【0004】
関連技術では、八分木を用いてシーン内のオブジェクトを管理する構成が提案されている。八分木の1つのノードは、シーン内の1つの領域に対応する。あるノードに対応する領域が分割条件を満たす場合、該ノードに対応する領域を同じ大きさの8つの子領域に直接分割し、該ノードの8つの子ノードを8分木に追加する。この8つの子ノードは、8つの子領域と1対1に対応し、各々の子ノードは、親ノードの8分の1の領域及びデータを管理する。
【0005】
しかしながら、このような動作では、ノード数の増加が速すぎてしまい、使用するメモリが多い。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本願の実施例は、オブジェクト管理方法、装置、機器、記憶媒体、及びシステムを提供する。その構成は、以下の通りである。
【課題を解決するための手段】
【0007】
本願の実施例の一態様によれば、コンピュータ機器が実行するオブジェクト管理方法が提供されている。前記方法は、
シーンに追加された第1オブジェクトの位置情報を取得するステップと、
前記第1オブジェクトの位置情報に基づいて、前記シーンに対応するオブジェクト管理ツリーから第1ノードを決定するステップであって、前記オブジェクト管理ツリーには、複数のノードが含まれ、各々のノードは前記シーン内の1つの領域に対応し、異なるノードに対応する領域は互いに重ならず、前記第1ノードとは、前記第1オブジェクトの位置情報が属する領域に対応するノードを指す、ステップと、
前記第1ノードに対応する領域に前記第1オブジェクトが追加されると、前記第1ノードに対応する領域に含まれるオブジェクトの数が上限値より大きくなる場合、前記第1ノードに対応する領域に含まれる各オブジェクトの位置情報に基づいて、前記第1ノードに対応する領域をn個(nは1より大きい整数)の子領域に分割するステップであって、各前記子領域に含まれるオブジェクトの数が同じか近い、ステップと、
前記n個の子領域と1対1に対応するn個のノードを前記オブジェクト管理ツリーに配置するステップと、を含む。
【0008】
本願の実施例の一態様によれば、オブジェクト管理装置が提供されている。前記装置は、
シーンに追加された第1オブジェクトの位置情報を取得する位置取得モジュールと、
前記第1オブジェクトの位置情報に基づいて、前記シーンに対応するオブジェクト管理ツリーから第1ノードを決定するノード決定モジュールであって、前記オブジェクト管理ツリーには、複数のノードが含まれ、各々のノードは前記シーン内の1つの領域に対応し、異なるノードに対応する領域は互いに重ならず、前記第1ノードとは、前記第1オブジェクトの位置情報が属する領域に対応するノードを指す、ノード決定モジュールと、
前記第1ノードに対応する領域に前記第1オブジェクトが追加されると、前記第1ノードに対応する領域に含まれるオブジェクトの数が上限値より大きくなる場合、前記第1ノードに対応する領域に含まれる各オブジェクトの位置情報に基づいて、前記第1ノードに対応する領域をn個(nは1より大きい整数)の子領域に分割する領域分割モジュールであって、各前記子領域に含まれるオブジェクトの数が同じか近い、領域分割モジュールと、
前記n個の子領域と1対1に対応するn個のノードを前記オブジェクト管理ツリーに配置するノード配置モジュールと、を含む。
【0009】
本願の実施例の一態様によれば、プロセッサとメモリとを備えるコンピュータ機器が提供されており、前記メモリには、コンピュータプログラムが記憶されており、前記コンピュータプログラムは、前記プロセッサによりロードされて実行されると、上記のオブジェクト管理方法を実現させる。
【0010】
本願の実施例の一態様によれば、コンピュータプログラムを記憶したコンピュータ可読記憶媒体が提供されており、前記コンピュータプログラムは、プロセッサによりロードされて実行されると、上記のオブジェクト管理方法を実現させる。
【0011】
本願の実施例の一態様によれば、コンピュータプログラムを含むコンピュータプログラム製品が提供されており、前記コンピュータプログラムは、コンピュータ可読記憶媒体に記憶されており、プロセッサは、前記コンピュータ可読記憶媒体から前記コンピュータプログラムを読み取って実行することで、上記のオブジェクト管理方法を実現する。
【0012】
本願の実施例の一態様によれば、オブジェクト管理層と関心領域(AOI:Area Of Interest)視野層とを含むオブジェクト管理システムが提供されており、
前記AOI視野層は、シーン内のターゲットオブジェクトの視野範囲データをオブジェクト管理層に送信し、前記ターゲットオブジェクトの視野範囲データは、前記ターゲットオブジェクトの視野範囲を示すためのものであり、
前記オブジェクト管理層は、前記ターゲットオブジェクトの視野範囲データに基づいて、前記ターゲットオブジェクトの視野範囲を決定し、前記シーンに対応するオブジェクト管理ツリーに基づいて、前記ターゲットオブジェクトの視野範囲内に位置するオブジェクト集合を決定し、前記ターゲットオブジェクトの視野範囲内のオブジェクト集合を示すためのオブジェクト集合データを前記AOI視野層に送信し、前記オブジェクト集合には、前記ターゲットオブジェクトの視野範囲内に位置する少なくとも1つのオブジェクトが含まれ、前記オブジェクト管理ツリーには、複数のノードが含まれ、各々のノードは前記シーン内の1つの領域に対応し、異なるノードに対応する領域は互いに重ならず、異なるノードに対応する領域に含まれるオブジェクトの数が同じか近く、
前記AOI視野層は、前記オブジェクト集合データに基づいて、前記ターゲットオブジェクトの視野範囲内のオブジェクト集合を決定する。
【発明の効果】
【0013】
本願の実施例で提供される構成は、以下のような有益な効果をもたらすことができる。
【0014】
シーン内のある領域におけるオブジェクトの数が多すぎて分割する必要がある場合、該領域内に含まれる各オブジェクトの分布位置に基づいて、該領域を複数の子領域に分割し、各子領域に含まれるオブジェクトの数をできるだけ均等にする。つまり、各子領域は、スペースの大きさが異なるが、管理するオブジェクトの数が均一である。このように、ノード数の増加が速すぎることを避けて、メモリの使用を減らすことができるだけでなく、ある領域で管理しているオブジェクトの数を直接n等分して、オブジェクト管理効率を高めることができる。
【図面の簡単な説明】
【0015】
図1】本願の一実施例で提供される構成の実施環境の模式図である。
図2】本願の一実施例で提供されるオブジェクト管理方法のフローチャートである。
図3】本願の一実施例で提供される領域分割の模式図である。
図4】本願の他の実施例で提供される領域分割の模式図である。
図5】本願の他の実施例で提供される領域分割の模式図である。
図6】本願の他の実施例で提供される領域分割の模式図である。
図7】本願の他の実施例で提供されるオブジェクト管理方法のフローチャートである。
図8】本願の一実施例で提供される領域統合の模式図である。
図9】本願の他の実施例で提供される領域統合の模式図である。
図10】本願の他の実施例で提供される領域統合の模式図である。
図11】本願の他の実施例で提供されるオブジェクト管理方法のフローチャートである。
図12】本願の一実施例で提供される視野範囲変化の模式図である。
図13】本願の一実施例で提供される視野分割の模式図である。
図14】本願の一実施例で提供されるオブジェクト管理装置のブロック図である。
図15】本願の他の実施例で提供されるオブジェクト管理装置のブロック図である。
図16】本願の一実施例で提供されるオブジェクト管理システムのブロック図である。
図17】本願の一実施例で提供されるコンピュータ機器の構成の模式図である。
【発明を実施するための形態】
【0016】
本願の目的、構成、及びメリットをより明確にするために、以下、図面を参照しながら、本願の実施形態をさらに詳しく説明する。
【0017】
図1を参照する。図1には、本願の一実施例で提供される構成の実施環境の模式図が示されている。この構成の実施環境は、端末機器10と、サーバ20と、を含んでもよい。
【0018】
端末機器10は、例えば、携帯電話、タブレットコンピュータ、パーソナルコンピュータ(PC:Personal Computer)、ウェアラブル機器、仮想現実(VR:Virtual Reality)機器、及び拡張現実(AR:Augmented Reality)機器などの電子機器であってもよい。本願はこれを限定しない。端末機器10には、ターゲットアプリケーションが実行されるクライアントがインストールされてもよい。例えば、このターゲットアプリケーションは、ゲームアプリケーション、3次元地図プログラム、ソーシャル系アプリケーション、インタラクティブエンターテインメント系アプリケーションなどであってもよい。本願はこれを限定しない。
【0019】
サーバ20は、1台のサーバであってもよいし、複数台のサーバからなるサーバクラスタであってもよいし、1つのクラウドコンピューティングサービスセンタであってもよい。サーバ20は、上記のターゲットアプリケーションのバックエンドサーバであってもよく、ターゲットアプリケーションのクライアントにバックエンドサービスを提供する。
【0020】
端末機器10とサーバ20との間では、ネットワークを介した通信が可能である。
【0021】
いくつかの実施例では、上記のターゲットアプリケーションはシーンを提供することができ、そのシーン内にオブジェクトが存在し、オブジェクトはシーン内で動き、例えば、移動したり他の様々な操作を実行したりすることができる。
【0022】
ゲームアプリケーションを例にすると、上記のシーンを仮想シーンと呼ぶことができ、上記のオブジェクトを仮想オブジェクトと呼ぶこともできる。
【0023】
仮想シーンは、ターゲットアプリケーション(例えば、ゲームアプリケーション)のクライアントが端末機器上で実行される際に表示(又は提供)されるシーンである。該仮想シーンとは、例えば、仮想家、仮想島、仮想地図など、仮想オブジェクトが動く(例えば、ゲーム競技など)ために構築されたシーンを指す。該仮想シーンは、実世界に対するシミュレーションシーンであってもよく、半シミュレーション半仮想のシーンであってもよく、純粋な仮想のシーンであってもよい。仮想シーンは、2次元仮想シーンであってもよいし、2.5次元仮想シーン又は3次元仮想シーンであってもよい。本願の実施例はこれを限定しない。ターゲットアプリケーションのクライアントが端末機器上で実行されると、時間帯によって異なる仮想シーンを表示(又は提供)することができる。
【0024】
仮想オブジェクトとは、仮想シーンで動く仮想キャラクターを指す。ターゲットアプリケーションがゲームアプリケーションである場合を例にすると、仮想オブジェクトは、ユーザが制御する仮想オブジェクトであってもよく、ゲームアプリケーション自身が制御する仮想オブジェクト、例えば、人工知能(AI:Artificial Intelligence)によって制御される仮想オブジェクトであってもよい。仮想オブジェクトは、人物の形態であってもよく、動物、アニメーション、又はその他の形態であってもよい。本願の実施例はこれを限定しない。仮想オブジェクトは、3次元の形で展示してもよく、2次元の形で展示してもよい。本願の実施例はこれを限定しない。任意選択的に、仮想シーンが3次元仮想シーンである場合、仮想オブジェクトは、アニメーション骨格技術に基づいて作成された3次元立体モデルである。各仮想オブジェクトは、3次元仮想シーン内で自身の形状及び体積を有し、3次元仮想シーン内の空間の一部を占める。
【0025】
典型的には、ビッグワールドゲームでは、仮想シーンの空間範囲が広く、その仮想シーンには、大量の仮想オブジェクト、例えば、数十、数百、ひいては千にのぼる仮想オブジェクトを収容することができる。
【0026】
また、本願の実施例で提供されるオブジェクト管理方法は、各ステップの実行主体が、図1に示された構成の実施環境におけるサーバ20であってもよく、端末機器10(例えば、ターゲットアプリケーションのクライアント)であってもよい。以下の方法の実施例では、説明の便宜上、各ステップの実行主体がサーバ20である場合のみを例にするが、これに限定されない。
【0027】
図2を参照する。図2には、本願の一実施例で提供されるオブジェクト管理方法のフローチャートが示されている。この方法は、以下のようないくつかのステップ(210~240)を含んでもよい。
【0028】
ステップ210では、シーンに追加された第1オブジェクトの位置情報を取得する。
【0029】
シーンは、2次元(D:Dimensions)シーンであってもよく、3Dシーンであってもよく、より高い次元のシーンであってもよい。本願の実施例はこれを具体的に限定しない。いくつかの実施例において、シーンは、1次元シーンであってもよい。シーン内のオブジェクトは、必要に応じて追加したり削減したりすることができる。ゲームアプリケーションを例にすると、シーン内のオブジェクトには、プレイヤーが制御する仮想オブジェクト、あるプレイヤー又は何らかのプレイヤーから見えるノンプレイヤーキャラクター(NPC:Non-player Character)オブジェクト、全てのプレイヤーから見える共通NPCオブジェクトなどが含まれてもよい。プレイヤーのログインやNPCオブジェクトのリフレッシュに伴い、ゲームアプリケーションのシーン内のオブジェクトが追加される。
【0030】
第1オブジェクトは、シーンに追加されたいずれか1つのオブジェクトであってもよい。該第1オブジェクトの位置情報は、シーンにおける第1オブジェクトの位置を示すためのものである。例えば、該位置情報は、座標で表すことができる。2Dシーンの場合、シーンは2次元平面であり、2つの空間次元(例えば、長さ、幅)を含み、位置情報は2次元座標(例えば、平面直角座標系)で表すことができる。2Dシーンの場合、シーン内のオブジェクトは、2次元のオブジェクトであってもよく、点と見なされてもよい。3Dシーンの場合、シーンは3次元空間であり、3つの空間次元(例えば、長さ、幅、高さ)を含み、位置情報は3次元座標(例えば、空間直角座標系)で表すことができる。3Dシーンの場合、シーン内のオブジェクトは、3次元のオブジェクトであってもよく、2次元のオブジェクトであってもよく、点と見なされてもよい。
【0031】
いくつかの実施例では、シーンは1次元シーンであり、即ち、そのシーンでは1つのみの次元(例えば、長さ)を考慮すればよく、位置情報は1次元座標で表すことができ、シーン内のオブジェクトは、その1つの次元における点と見なされてもよい。本願の実施例に係る領域分割は、その1つの次元における線分の分割を意味することができる。
【0032】
ステップ220では、第1オブジェクトの位置情報に基づいて、シーンに対応するオブジェクト管理ツリーから第1ノードを決定する。
【0033】
本願の実施例では、オブジェクト管理ツリーには、複数のノードが含まれ、各々のノードは、シーン内の1つの領域に対応し、異なるノードに対応する領域は互いに重ならない。
【0034】
第1ノードとは、第1オブジェクトの位置情報が属する領域に対応するノードを指す。例えば、オブジェクト管理ツリーに含まれる各ノードのそれぞれに対応する領域から、第1オブジェクトの位置情報が属する領域を見つけ、その見つけた領域に対応するノードが第1ノードである。
【0035】
ステップ230では、第1ノードに対応する領域に第1オブジェクトが追加されると、第1ノードに対応する領域に含まれるオブジェクトの数が上限値より大きくなる場合、第1ノードに対応する領域に含まれる各オブジェクトの位置情報に基づいて、第1ノードに対応する領域をn個(nは1より大きい整数)の子領域に分割し、各子領域に含まれるオブジェクトの数が同じか近い。
【0036】
上限値は、領域に含まれるオブジェクトの数の最大値である。領域に含まれるオブジェクトの数が該上限値より大きい場合、その領域を分割することにより、複数の子領域を取得する。各々の子領域内のオブジェクトの数が該上限値以下であり、又は該上限値より小さい。いくつかの実施例では、領域に含まれるオブジェクトの数が上限値に等しい場合にも、その領域を分割することにより、複数の子領域を取得する。
【0037】
任意選択的に、オブジェクト管理ツリーにおける全てのノードに対応する領域に含まれるオブジェクトの数の上限値は同じである。例えば、オブジェクト管理ツリーにおける全てのノードに対応する領域に含まれるオブジェクトの数の上限値は、いずれも5である。
【0038】
任意選択的に、オブジェクト管理ツリーには、対応する領域に含まれるオブジェクトの数の上限値が異なるノードが少なくとも2つ存在する。例えば、あるノードに対応する領域に含まれるオブジェクトの数の上限値は5であり、他のノードに対応する領域に含まれるオブジェクトの数の上限値は8である。
【0039】
いくつかの実施例において、各子領域に含まれるオブジェクトの数が同じか近いということは、異なる子領域に含まれるオブジェクトの数の差分が所定の差分閾値以下であることを意味することができる。あるいは、各子領域に含まれるオブジェクトの数が同じか近いということは、同じレベルの異なる子領域に含まれるオブジェクトの数の差分が所定の差分閾値以下であることを意味することができる。ここで、差分閾値は、0以上の整数、例えば、0、1、2、3などである。差分閾値の具体的な数値は、具体的には、関連技術者が実際の状況に応じて設定することができる。本願の実施例はこれを具体的に限定しない。
【0040】
いくつかの実施例において、各子領域に含まれるオブジェクトの数が同じか近いということは、異なる子領域に含まれるオブジェクトの数の分散が分散閾値以下であることを意味することができる。あるいは、各子領域に含まれるオブジェクトの数が同じか近いということは、同じレベルの異なる子領域に含まれるオブジェクトの数の分散が分散閾値以下であることを意味することができる。ここで、分散閾値は、0以上の数、例えば、0、0.5、2.2、3.8などである。分散閾値の具体的な数値は、具体的には、関連技術者が実際の状況に応じて設定することができる。本願の実施例はこれを具体的に限定しない。
【0041】
もちろん、各子領域に含まれるオブジェクトの数が同じか近いということについての上記の定義は例示的なものに過ぎず、各子領域に含まれるオブジェクトの数が同じか近いということは、他の方式で定義されてもよく、具体的には、関連技術者が実際の状況に応じて設定することができる。本願の実施例はこれを具体的に限定しない。
【0042】
いくつかの実施例において、オブジェクト管理ツリーの高さが大きすぎて該オブジェクト管理ツリーが複雑になりすぎることを防ぐために、最初の数層ではオブジェクト数の上限値を小さくし、最後の数層ではオブジェクト数の上限値を大きくしてもよい。これにより、ツリーの高さを低くする。さらに、最初の数層ではオブジェクト数の上限値を小さくし、最下位層ではオブジェクト数の上限値を設定しなくてもよい。これにより、ツリーの高さを所定範囲内に制御する。
【0043】
任意選択的に、領域に含まれるオブジェクトの数の下限値を設定してもよい。下限値は、領域に含まれるオブジェクトの数の最小値である。下限値を設定することにより、領域の不必要な分割を避けて、シーン内の領域の総数が多すぎないように制御することができる。また、オブジェクト管理ツリーにおける全てのノードに対応する領域に含まれるオブジェクトの数の下限値は同じであり、又は、オブジェクト管理ツリーには、対応する領域に含まれるオブジェクトの数の下限値が異なるノードが少なくとも2つ存在する。これは、必要に応じて設定することができる。本願はこれを限定しない。
【0044】
第1ノードに対応する領域に含まれるオブジェクトの数が上限値より大きい場合、該第1ノードに対応する領域をn個の子領域に分割する。nは、例えば、n=2やn=3など、予め設定された固定値であってもよい。本願はこれを限定しない。nは、動的に決定された数値であってもよい。例えば、分割すべき領域に含まれるオブジェクトの数に応じて、nの数値を決定する。nは分割すべき領域に含まれるオブジェクトの数と正の相関関係がある場合、分割すべき領域に含まれるオブジェクトの数が多いほど、nが大きくなる。この場合、分割すべき領域に含まれるオブジェクトの数とnとの対応関係又は換算式を予め設定することにより、分割すべき領域に含まれるオブジェクトの数に基づいてnの値を決定することができる。
【0045】
いくつかの実施例において、ステップ230は、以下のようないくつかのサブステップを含んでもよい。
【0046】
1、第1ノードに対応する領域に含まれる各オブジェクトの位置情報に基づいて、第1ノードに対応する領域に含まれる各オブジェクトのk個(kは例えば、1、2、3などの正の整数)の空間次元における距離スパンを決定する。
【0047】
kが2に等しい場合、シーンは2次元平面であり、X軸及びY軸で該2次元平面の2つの空間次元を表す。
【0048】
kが3に等しい場合、シーンは3次元空間であり、X軸、Y軸、及びZ軸で該3次元空間の3つの空間次元を表す。
【0049】
k個の空間次元のうちのいずれか1つの空間次元に対して、第1ノードに対応する領域に含まれる各オブジェクトの該空間次元における座標を取得し、該空間次元における座標の最大値及び最小値を選択し、該最大値と最小値との差分が該空間次元における距離スパンである。各空間次元に対して同様な方法を採用し、k個の空間次元のそれぞれにおける、第1ノードに対応する領域に含まれる各オブジェクトに対応する距離スパンを算出する。
【0050】
2、k個の空間次元の中から、距離スパンが最大となるターゲット空間次元を選択する。
【0051】
k個の空間次元のそれぞれにおける、第1ノードに対応する領域に含まれる各オブジェクトに対応する距離スパンが取得されると、その中から、ターゲット空間次元として、距離スパンが最大となる空間次元を見つけることができる。
【0052】
3、ターゲット空間次元を分割対象として、第1ノードに対応する領域をn個の子領域に分割する。
【0053】
シーンが2次元平面である場合を例にして、X軸及びY軸という2つの空間次元の中から、ターゲット空間次元がX軸であることが決定されると仮定すると、X軸において、第1ノードに対応する領域を分割することにより、n個の子領域を取得する。
【0054】
シーンが3次元空間である場合を例にして、X軸、Y軸、及びZ軸という3つの空間次元の中から、ターゲット空間次元がY軸であることが決定されると仮定すると、Y軸において、第1ノードに対応する領域を分割することにより、n個の子領域を取得する。
【0055】
いくつかの実施例において、該ステップ3は、以下のようないくつかのサブステップをさらに含んでもよい。
【0056】
3-1、第1ノードに対応する領域に含まれる各オブジェクトの中から、ターゲット空間次元において距離が最も遠い第1オブジェクト及び第2オブジェクトを決定する。
【0057】
上記で取得された距離スパンが最大となるターゲット空間次元に基づいて、該ターゲット空間次元において距離が最も遠い2つのオブジェクトを決定する。この2つのオブジェクトは、それぞれ、第1オブジェクト及び第2オブジェクトである。
【0058】
3-2、ターゲット空間次元における第1オブジェクト及び第2オブジェクトの2つの投影点間の線分をn等分することにより、n-1個の分割点を取得する。
【0059】
取得された、該ターゲット空間次元における第1オブジェクト及び第2オブジェクトの座標に基づいて、該ターゲット空間次元における第1オブジェクト及び第2オブジェクトの2つの投影点間の線分をn等分に切断することにより、n-1個の分割点を取得する。
【0060】
3-3、n-1個の分割点に基づいて、第1ノードに対応する領域をn個の子領域に分割する。
【0061】
シーンが2次元平面である場合、ターゲット空間次元におけるn-1個の分割点が取得された後、上記のn-1個の分割点を経てターゲット空間次元に垂直なn-1本の垂線を生成し、このn-1本の垂線によって第1ノードに対応する領域をn個の子領域に分割する。
【0062】
シーンが3次元空間である場合、ターゲット空間次元におけるn-1個の分割点が取得された後、上記のn-1個の分割点を経てターゲット空間次元に垂直なn-1個の垂直面を生成し、このn-1個の垂直面によって第1ノードに対応する領域をn個の子領域に分割する。
【0063】
図3は、ノード1に対応する領域を1回目に分割する場合の模式図である。いくつかの実施例では、図3に示すように、ノード1に対応する領域を2つの子領域に分割する。図3では、各オブジェクトのX軸座標が近いが、各オブジェクトのY軸座標がより分散しており、即ち、各オブジェクトのY軸における距離スパンがX軸における距離スパンより大きいため、Y軸をターゲット空間次元として選択し、Y軸に垂線を引いて領域分割を行う。図中で距離が最も遠い2つのオブジェクトのY軸座標の中央値からY軸の垂線を作り、ノード1に対応する領域を2つの子領域に分割する。そのうち、上半の子領域には3つのオブジェクトが含まれ、下半の子領域には4つのオブジェクトが含まれ、各子領域に含まれるオブジェクトの数が同じか近いという分割要求が満たされる。
【0064】
上記の実施例では、距離スパンが最大となるターゲット空間次元を分割対象として選択し、領域を分割するという方式が提供されている。このような方式では、分割された各子領域の大きさが可能な限り均等になり、ある子領域が大きすぎて他の子領域が小さすぎるという状況の発生が回避される。もちろん、いくつかの他の実施例では、k個の空間次元の中から、分割対象となるターゲット空間次元を順番に選択してもよく、あるいは、分割対象となるターゲット空間次元をランダムに選択してもよい。本願はこれを限定しない。
【0065】
いくつかの実施例では、第1ノードに対応する領域に第1オブジェクトが追加されると、第1ノードに対応する領域に含まれるオブジェクトの数が上限値より大きくなる場合、該第1ノードに対応する領域のサイズが所定のサイズ以上であるか否かを判断し、該第1ノードに対応する領域のサイズが所定のサイズ以上であるとき、第1ノードに対応する領域に含まれる各オブジェクトの位置情報に基づいて、第1ノードに対応する領域をn個(nは1より大きい整数)の子領域に分割し、該第1ノードに対応する領域のサイズが所定のサイズより小さいとき、該第1ノードに対応する領域を分割しない。これにより、オブジェクト管理ツリーの高さが大きすぎることを避ける。
【0066】
ステップ240では、n個の子領域と1対1に対応するn個のノードをオブジェクト管理ツリーに配置する。
【0067】
第1ノードに対応する領域をn個の子領域に分割した後、このn個の子領域と1対1に対応するn個のノードをオブジェクト管理ツリーに配置する必要がある。
【0068】
以下、このn個のノードの配置方式を紹介して説明する。いくつかの実施例において、ステップ240は、以下のようないくつかのサブステップを含んでもよい。
【0069】
1、第1ノードの親ノードの子ノードの数を取得する。
【0070】
第1ノードの親ノードは、第1ノードという子ノードに加えて、他の子ノードも含み得る。このため、第1ノードの親ノードの子ノードの数は、1に等しい可能性もあれば、1より大きい可能性もある。
【0071】
また、オブジェクト管理ツリーの各ノードが持てる子ノードの数の上限値を設定する。各ノードが持てる子ノードの数の上限値は、同じであっても異なってもよい。本願はこれを限定しない。オブジェクト管理ツリーの維持管理を容易にするために、オブジェクト管理ツリーの各ノードが持てる子ノードの数の上限値を同じに設定してもよい。例えば、その上限値は、いずれも、Mであり、Mは1より大きい整数である。例えば、M=8であり、この場合、オブジェクト管理ツリーを八分木と呼ぶことができる。また、例えば、M=4であり、この場合、オブジェクト管理ツリーを四分木と呼ぶことができる。本願の実施例では、Mの値が限定されるものではなく、M=4、5、6、7、又は8など、実際の需要に応じて柔軟に設定してもよい。
【0072】
2、子ノードの数が第1条件を満たす場合、オブジェクト管理ツリーに第1ノードのn-1個の兄弟ノードを追加し、第1ノード及びこのn-1個の兄弟ノードをn個の子領域と1対1に対応するように配置する。
【0073】
第1条件とは、子ノードの数にn-1を足したものが上限値M以下であることを指す。子ノードの数が該第1条件を満たす場合、オブジェクト管理ツリーにn-1個のノードを追加し、第1ノードと追加されたこのn-1個のノードは、互いに兄弟ノードである。
【0074】
いくつかの実施例では、図4に示すように、左図には、ノード1に対応する領域、該ノード1の各子ノードのそれぞれに対応する領域、及び各領域に含まれるオブジェクトが示されている。ここで、各領域に含まれるオブジェクトの数の上限値は、5である。ノード1-2は領域1-2(左図中の太線枠40で示されたもの)に対応しており、該領域1-2に含まれるオブジェクトの数は5であり、該領域1-2に1つのオブジェクトが追加されると、該領域1-2に含まれるオブジェクトの数は6となり、上限値5を超えている。このため、領域1-2の分割を行い、領域1-2を2つの子領域、例えば、図中に示された子領域41及び子領域42に分割する。ここで、子領域41及び子領域42のいずれにも3つのオブジェクトが含まれ、数量は、均等であり、かつ、上限値5より低い。
【0075】
また、ノード1-2の親ノード(即ち、ノード1)が持てる子ノードの数の上限値が8であると仮定する。この場合、ノード1の子ノードの数は7であり、1を足しても上限値8を超えていない。このため、オブジェクト管理ツリーには、ノード1-2の兄弟ノードが1つ追加され、図4においてノード1-8で示されている。該オブジェクト管理ツリーが更新されると、ノード1-2は子領域41に対応しており、ノード1-8は子領域42に対応している。
【0076】
3、子ノードの数が第2条件を満たす場合、オブジェクト管理ツリーに第1ノードのn個の子ノードを追加し、このn個の子ノードをn個の子領域と1対1に対応するように配置する。
【0077】
第2条件とは、子ノードの数が上限値Mに等しいことを指す。子ノードの数が該第2条件を満たす場合、オブジェクト管理ツリーにn個のノードを追加し、追加されたこのn個のノードは、いずれも、第1ノードの子ノードである。
【0078】
いくつかの実施例では、図5に示すように、左図には、ノード1に対応する領域、該ノード1の各子ノードのそれぞれに対応する領域、及び各領域に含まれるオブジェクトが示されている。ここで、各領域に含まれるオブジェクトの数の上限値は、5である。ノード1-2は領域1-2(左図中の太線枠50で示されたもの)に対応しており、該領域1-2に含まれるオブジェクトの数は5であり、該領域1-2に1つのオブジェクトが追加されると、該領域1-2に含まれるオブジェクトの数は6となり、上限値5を超えている。このため、領域1-2の分割を行い、領域1-2を2つの子領域、例えば、図中に示された子領域51及び子領域52に分割する。ここで、子領域51及び子領域52のいずれにも3つのオブジェクトが含まれ、数量は、均等であり、かつ、上限値5より低い。
【0079】
また、ノード1-2の親ノード(即ち、ノード1)が持てる子ノードの数の上限値が8であると仮定する。この場合、ノード1の子ノードの数は8であり、該上限値8に達している。このため、オブジェクト管理ツリーには、ノード1-2の子ノードが2つ追加され、図5においてノードA及びノードBで示されている。該オブジェクト管理ツリーが更新されると、ノードAは子領域51に対応しており、ノードBは子領域52に対応している。
【0080】
第1ノードに対応する領域を2つの子領域に分割する場合、即ち、nが2に等しい場合、上記の第1条件及び第2条件という2つの状況しかあり得ない。
【0081】
第1ノードに対応する領域を3つ以上の子領域に分割する場合、即ち、nが3以上である場合、上記の第1条件及び第2条件という2つの状況に加えて、以下のような第3条件の状況もあり得る。
【0082】
任意選択的に、子ノードの数が第3条件を満たす場合、オブジェクト管理ツリーに第1ノードのn個の兄弟ノードを追加し、オブジェクト管理ツリーに第1ノードのn個の子ノードを追加し、このn個の兄弟ノード及びn個の子ノードをn個の子領域と1対1に対応するように配置する。ここで、n及びnは正の整数であり、n+nがnに等しい。
【0083】
第3条件とは、子ノードの数が上限値Mより小さいが、該子ノードの数にn-1を足したものが上限値Mより大きいことを指す。子ノードの数が該第3条件を満たす場合、オブジェクト管理ツリーにn個のノードを追加する。そのうち、n個のノードは第1ノードの兄弟ノードであり、n個のノードは第1ノードの子ノードであり、n+nがnに等しい。
【0084】
いくつかの実施例では、図6に示すように、左図には、ノード1に対応する領域、該ノード1の各子ノードのそれぞれに対応する領域、及び各領域に含まれるオブジェクトが示されている。ここで、各領域に含まれるオブジェクトの数の上限値は、5である。ノード1-2は領域1-2(左図中の太線枠60で示されたもの)に対応しており、該領域1-2に含まれるオブジェクトの数は5であり、該領域1-2に1つのオブジェクトが追加されると、該領域1-2に含まれるオブジェクトの数は6となり、上限値5を超えている。このため、領域1-2の分割を行い、領域1-2を3つの子領域、例えば、図中に示された子領域61、子領域62、及び子領域63に分割する。ここで、子領域61、子領域62、及び子領域63のいずれにも2つのオブジェクトが含まれ、数量は、均等であり、かつ、上限値5より低い。
【0085】
また、ノード1-2の親ノード(即ち、ノード1)が持てる子ノードの数の上限値が8であると仮定する。この場合、ノード1の子ノードの数は7であり、該上限値8に達していないが、2つのノードを足すと、該上限値8より大きくなる。このため、オブジェクト管理ツリーには、ノード1-2の兄弟ノードが1つ追加され、図6においてノード1-8で示されている。また、該オブジェクト管理ツリーには、ノード1-2の子ノードが2つ追加され、図6においてノードA及びノードBで示されている。該オブジェクト管理ツリーが更新されると、ノード1-8は子領域61に対応しており、ノードAは子領域62に対応しており、ノードBは子領域63に対応している。
【0086】
本願の実施例で提供される構成では、シーン内のある領域におけるオブジェクトの数が多すぎて分割する必要がある場合、その領域内に含まれる各オブジェクトの分布位置に応じて、その領域を複数の子領域に分割し、各子領域に含まれるオブジェクトの数をできるだけ均等にする。つまり、各子領域は、空間の大きさが異なるが、管理するオブジェクトの数が均一である。このように、ノード数の増加が速すぎることを避けて、メモリの使用を減らすことができるだけでなく、ある領域で管理しているオブジェクトの数を直接n等分して、オブジェクト管理効率を高めることができる。
【0087】
また、距離スパンが最大となるターゲット空間次元を分割対象として選択することにより領域を分割するという方式では、分割された各子領域の大きさが可能な限り均等になり、ある子領域が大きすぎて他の子領域が小さすぎるという状況の発生が回避される。
【0088】
また、オブジェクト管理ツリーにノードを追加する際に、条件判定で兄弟ノードを優先的に追加し、その次に子ノードを追加する。このような、必要に応じて領域を分割し、必要に応じてノードを追加するという方式によれば、ツリーの高さの増加が速すぎることを避けて、オブジェクト管理ツリーの複雑さを軽減することができる。
【0089】
図7を参照する。図7には、本願の他の実施例で提供されるオブジェクト管理方法のフローチャートが示されている。この方法は、以下のようないくつかのステップ(710~750)を含んでもよい。
【0090】
ステップ710では、シーンから削減された第2オブジェクトの位置情報を取得する。
【0091】
第2オブジェクトは、シーンから削減されたいずれか1つのオブジェクトであってもよい。該第2オブジェクトの位置情報は、シーンにおける第2オブジェクトの位置を示すためのものである。例えば、該位置情報は、座標で表すことができる。2Dシーンである場合、位置情報は2次元座標で表すことができ、3Dシーンである場合、位置情報は3次元座標で表すことができる。
【0092】
ステップ720では、第2オブジェクトの位置情報に基づいて、オブジェクト管理ツリーから第2ノードを決定する。
【0093】
シーンに対応するオブジェクト管理ツリーについての紹介・説明は、上述した実施例を参照すればよく、ここでは説明を省略する。
【0094】
第2ノードとは、第2オブジェクトの位置情報が属する領域に対応するノードを指す。例えば、オブジェクト管理ツリーに含まれる各ノードのそれぞれに対応する領域から、第2オブジェクトの位置情報が属する領域を見つけ、その見つけた領域に対応するノードが第2ノードである。
【0095】
ステップ730では、第2ノードに対応する領域から第2オブジェクトが削減されると、第2ノードに対応する領域に含まれるオブジェクトの数が下限値より小さくなる場合、オブジェクト管理ツリーから、第2ノードと統合する第3ノードを決定する。
【0096】
下限値は、領域に含まれるオブジェクトの数の最小値である。領域に含まれるオブジェクトの数が該下限値より小さい場合、該領域を他の領域と統合し、統合された領域に含まれるオブジェクトの数が該下限値以上であり、又は該下限値より大きいようにする。いくつかの実施例では、領域に含まれるオブジェクトの数が該下限値に等しい場合にも、その領域を他の領域と統合する。
【0097】
任意選択的に、オブジェクト管理ツリーにおける全てのノードに対応する領域に含まれるオブジェクトの数の下限値は同じである。例えば、オブジェクト管理ツリーにおける全てのノードに対応する領域に含まれるオブジェクトの数の下限値は、いずれも2である。
【0098】
任意選択的に、オブジェクト管理ツリーには、対応する領域に含まれるオブジェクトの数の下限値が異なるノードが少なくとも2つ存在する。例えば、あるノードに対応する領域に含まれるオブジェクトの数の下限値は2であり、他のノードに対応する領域に含まれるオブジェクトの数の下限値は3である。
【0099】
第2ノードに対応する領域から第2オブジェクトが削減されると、第2ノードに対応する領域に含まれるオブジェクトの数が下限値より小さくなる場合、オブジェクト管理ツリーにおいて、第2ノードと統合条件を満たす第3ノードが存在するか否かを検索する。第3ノードの数は、1つである可能性もあれば、複数である可能性もある。
【0100】
上記統合条件は、第2ノードに対応する領域が第3ノードに対応する領域と隣接することを含む。2Dシーンの場合、第2ノードに対応する領域が第3ノードに対応する領域と隣接することは、第2ノードに対応する領域と第3ノードに対応する領域に重なり合う辺が存在することを指す。3Dシーンの場合、第2ノードに対応する領域が第3ノードに対応する領域と隣接することは、第2ノードに対応する領域と第3ノードに対応する領域に重なり合う平面が存在することを指す。
【0101】
任意選択的に、上記統合条件は、第2ノードに対応する領域と第3ノードに対応する領域との統合領域が規則的な領域であることをさらに含む。2Dシーンの場合、第2ノードに対応する領域と第3ノードに対応する領域との統合領域が規則的な領域であることは、第2ノードに対応する領域と第3ノードに対応する領域との統合領域が矩形、即ち長方形又は正方形であることを指す。3Dシーンの場合、第2ノードに対応する領域と第3ノードに対応する領域との統合領域が規則的な領域であることは、第2ノードに対応する領域と第3ノードに対応する領域との統合領域が直方体又は立方体であることを指す。
【0102】
ステップ740では、第3ノードに対応する領域を、第3ノードに対応する元の領域と第2ノードに対応する領域との統合領域に更新する。
【0103】
統合条件を満たす第3ノードが見つかると、第2ノードに対応する領域を第3ノードに対応する領域に統合する。統合されると、第3ノードに対応する領域はその元の領域より大きくなる。
【0104】
ステップ740は、次の2つの場合を含んでもよい。
【0105】
場合1:第3ノードの数が1つである場合、第3ノードに対応する領域を、第3ノードに対応する元の領域と第2ノードに対応する完全領域との統合領域に更新する。
【0106】
図8に示すように、左図には、ノード1に対応する領域、該ノード1の各子ノードのそれぞれに対応する領域、及び各領域に含まれるオブジェクトが示されている。ここで、各領域に含まれるオブジェクトの数の下限値は、2である。ノード1-8は領域1-8(図中において領域81で示されている)に対応しており、該領域1-8に含まれるオブジェクトの数は1つであり、下限値2より小さい。このため、領域1-8に対して統合を行う。ノード1-2に対応する領域1-2(図中において領域82で示されている)が統合条件を満たすため、領域1-8と領域1-2とを統合して、統合領域80(図中において太線枠で示されている)を形成する。統合されると、ノード1-2に対応する領域は、元の領域82から統合領域80に変更される。
【0107】
場合2:第3ノードの数がk個(kは1より大きい整数)である場合、第2ノードに対応する領域をk個の子領域に分割し、k個の第3ノードをk個の子領域と1対1に対応させ、k個の第3ノードのうちの各々の第3ノードに対して、第3ノードに対応する領域を、第3ノードに対応する元の領域と、k個の子領域のうち、第3ノードにマッチする子領域との統合領域に更新する。
【0108】
図9に示すように、左図には、ノード1に対応する領域、該ノード1の各子ノードのそれぞれに対応する領域、及び各領域に含まれるオブジェクトが示されている。ここで、各領域に含まれるオブジェクトの数の下限値は、2である。ノード1-8は領域1-8(図中において領域91で示されている)に対応しており、該領域1-8に含まれるオブジェクトの数は1つであり、下限値2より小さい。このため、領域1-8に対して統合を行う。ノード1-6及びノード1-7に対応する領域が統合条件を満たすため、領域1-8を、右図に示された領域A及び領域Bという2つの子領域に分割する。ここで、領域Aと領域1-6とを統合して、統合領域92(図中において太線枠で示されている)を形成し、領域Bと領域1-7とを統合して、他の統合領域93(図中において太線枠で示されている)を形成する。任意選択的に、いくつかの他の例では、領域1-8を領域1-2及び領域1-9と統合してもよい。
【0109】
ステップ750では、オブジェクト管理ツリーから第2ノードを削除する。
【0110】
第2ノードに対応する領域と第3ノードに対応する領域とが統合されると、第2ノードに対応する領域を第3ノードに割り当てる。第2ノードは、対応する領域を持たなくなり、オブジェクト管理ツリーから削除される。図8に示すように、ノード1-8に対応する領域とノード1-2に対応する領域とが統合されると、オブジェクト管理ツリーからノード1-8を削除する。
【0111】
任意選択的に、第3ノードの親ノードが子ノードを1つしか持っていない場合、オブジェクト管理ツリーから第3ノードの親ノードを削除し、第3ノードをその祖父ノードの子ノードとする。図10に示すように、ノード1-2には、もともと、それぞれノードA及びノードBである2つの子ノードが含まれる。ノードBに対応する領域に含まれるオブジェクトの数が1つであり、下限値2より小さいため、該ノードBに対応する領域とノードAに対応する領域とを統合することにより、統合領域100(図中において太線枠で示されている)を取得する。統合されると、ノードAに対応する領域は、元の領域Aから統合領域100に変更され、ノードBはオブジェクト管理ツリーから削除される。ノードBが削除されると、ノードAの親ノード(即ち、ノード1-2)が子ノードを1つしか持っていない(即ち、ノードA)ため、オブジェクト管理ツリーから該ノード1-2を削除し、ノードAをその祖父ノード(即ち、ノード1)の子ノードとする。上記の方式によれば、余計なノードを減らし、ツリーの高さを下げ、オブジェクト管理ツリーの構造を簡素化し、空間管理リソースの浪費を回避することができる。
【0112】
本願の実施例で提供される構成では、シーン内のある領域におけるオブジェクトの数が少ない場合、この領域を他の領域と統合することで、オブジェクト管理ツリーの構造を簡素化し、空間管理リソースの浪費を回避する。
【0113】
図11を参照する。図11には、本願の他の実施例で提供されるオブジェクト管理方法のフローチャートが示されている。この方法は、以下のようないくつかのステップ(1110~1180)を含んでもよい。
【0114】
ステップ1110では、シーン内のターゲットオブジェクトの視野範囲を取得する。
【0115】
ターゲットオブジェクトの視野範囲とは、該ターゲットオブジェクトがシーン内で観察可能な領域を指す。該領域における画面は、該ターゲットオブジェクトを制御するクライアントに表示する必要がある。本願の実施例は、ターゲットオブジェクトの視野範囲の形状を限定しない。例示的に、2Dシーンの場合、該ターゲットオブジェクトの視野範囲は扇形の領域であってもよく、該扇形の領域の円心位置はターゲットオブジェクトの位置にあってもよく、該扇形の領域はターゲットオブジェクトの真正面に位置する。3Dシーンの場合、該ターゲットオブジェクトの視野範囲は円錐形の領域であってもよく、該円錐形の領域の頂点位置はターゲットオブジェクトの位置にあってもよく、該円錐形の領域はターゲットオブジェクトの真正面に位置する。
【0116】
もちろん、いくつかの他の実施例において、ターゲットオブジェクトの視野範囲は、円形(又は球形)、矩形(又は立方体)などの他の形状であってもよい。これは、実際のニーズに合わせて柔軟にカスタマイズすることができる。本願はこれを限定しない。
【0117】
ステップ1120では、オブジェクト管理ツリーに基づいて、視野範囲内に位置するオブジェクト集合を決定し、オブジェクト集合には、視野範囲内に位置する少なくとも1つのオブジェクトが含まれる。
【0118】
シーンに対応するオブジェクト管理ツリーには、シーン内の各オブジェクトの属性(例えば、位置や状態などの属性)情報が記録されているため、該オブジェクト管理ツリーに基づいて、視野範囲内に位置するオブジェクト集合を見つけることができる。
【0119】
例えば、まず、オブジェクト管理ツリーにおける各ノードに対応する領域に基づいて、対応する領域とターゲットオブジェクトの視野範囲に共通部分がある少なくとも1つのターゲットノードを選択し、次に、ターゲットノードに対応する領域に含まれる各オブジェクトの位置情報を取得し、各々のオブジェクトの位置情報がターゲットオブジェクトの視野範囲に属するか否かをそれぞれ判断し、ターゲットオブジェクトの視野範囲内に属するオブジェクトを選択することにより、該視野範囲内のオブジェクト集合を取得する。
【0120】
いくつかの実施例において、サーバは、ターゲットオブジェクトの視野範囲内に位置するオブジェクト集合を決定した後、該オブジェクト集合に含まれる各オブジェクトの属性情報を取得し、そして、該オブジェクト集合に含まれる各オブジェクトの属性情報を、ターゲットオブジェクトに対応するクライアントに送信する。これにより、クライアントは、上記の属性情報に基づいて、オブジェクト集合を表示することが可能になる。
【0121】
本願の実施例において、視野範囲は、AOI視野とも呼ばれる。シーンにおけるターゲットオブジェクトの移動、方向転換などの操作に伴って、該ターゲットオブジェクトの視野範囲も変化し、これに応じて、該ターゲットオブジェクトの視野範囲内のオブジェクト集合も変化する。例示的に、図12に示すように、上図において、ターゲットオブジェクト121の視野範囲内で、それぞれ、ペット122、ペット123、ペット124、ペット125、及びペット126と表記される5匹のペットが見える。ターゲットオブジェクト121の移動やペットの移動に伴って、ターゲットオブジェクト121の視野範囲から離れるものがあり得、ターゲットオブジェクト121の視野範囲に入るものもあり得る。例えば、図12の下図において、ペット122はターゲットオブジェクト121の視野範囲から離れており、宝箱127はターゲットオブジェクト121の視野範囲に入っている。サーバは、ターゲットオブジェクトの視野範囲を定期的に更新し、そして、最新の視野範囲内のオブジェクト集合に関するデータをクライアントに同期して表示させる。
【0122】
いくつかの実施例において、サーバは、ターゲットオブジェクトの視野範囲内に位置するオブジェクト集合を決定した後、以下のステップ1130~1140を実行してもよい。
【0123】
ステップ1130では、視野範囲を複数のサブ視野範囲に分割し、異なるサブ視野範囲とターゲットオブジェクトとの間の距離が異なる。
【0124】
ターゲットオブジェクトからの遠さに応じて、ターゲットオブジェクトの視野範囲を複数のサブ視野範囲に分割する。複数のサブ視野範囲の大きさは、同じであっても異なってもよい。複数のサブ視野範囲の合計の大きさは、ターゲットオブジェクトの視野範囲の大きさである。
【0125】
いくつかの実施例において、図13に示すように、サードパーソンゲームでは、ターゲットオブジェクトの視野範囲が半径ABの円である。図のように、ターゲットオブジェクトの視野範囲を3つのサブ視野範囲に分割し、サブ視野範囲とターゲットオブジェクトとの間の距離に応じて、視野範囲を内層、中層、外層に分割する。
【0126】
いくつかの実施例において、図13に示すように、ファーストパーソンゲームでは、ターゲットオブジェクトの視野範囲が半径ABの扇形BACである。図のように、ターゲットオブジェクトの視野範囲を3つのサブ視野範囲に分割し、サブ視野範囲とターゲットオブジェクトとの間の距離に応じて、視野範囲を内層、中層、外層に分割する。
【0127】
そのうち、内層に対応するサブ視野範囲がターゲットオブジェクトから最も近く、外層に対応するサブ視野範囲がターゲットオブジェクトから最も遠く、中層に対応するサブ視野範囲とターゲットオブジェクトとの間の距離が内層と外層との間である。
【0128】
ステップ1140では、オブジェクト集合内の各オブジェクトのそれぞれが属するサブ視野範囲に基づいて、各オブジェクトのそれぞれに対応するリフレッシュ頻度を決定し、オブジェクトに対応するリフレッシュ頻度は、オブジェクトが属するサブ視野範囲とターゲットオブジェクトとの間の距離と負の相関関係がある。
【0129】
各サブ視野範囲におけるオブジェクトのリフレッシュ頻度を設定する。ここで、オブジェクトのリフレッシュ頻度とは、オブジェクトのリアルタイム情報(例えば、位置や動作などの情報)の更新頻度、例えば、1秒あたりのリフレッシュ回数を指す。ターゲットオブジェクトを制御するユーザにとって、通常、重点注目オブジェクトは、ターゲットオブジェクトから近いいくつかの他のオブジェクトであるが、ターゲットオブジェクトから遠いいくつかの他のオブジェクトは、重点注目オブジェクトではない。このため、サブ視野範囲とターゲットオブジェクトとの間の距離に応じて、リフレッシュ頻度を設定することにより、サブ視野範囲とターゲットオブジェクトとの間の距離が近いほど、リフレッシュ頻度が高くなり、ユーザの重点注目オブジェクトであるオブジェクトを高い品質で表示できることが保証され、サブ視野範囲とターゲットオブジェクトとの間の距離が遠いほど、リフレッシュ頻度が低くなり、ユーザの重点注目オブジェクトではないオブジェクトを低い品質で表示することが可能になり、サーバ及びクライアントの処理リソースの節約に役立つ。
【0130】
また、いくつかの他の実施例では、各サブ視野範囲の優先度に基づいて、サブ視野範囲に含まれるオブジェクトのリフレッシュ頻度を決定してもよい。例えば、優先度が高いほど、リフレッシュ頻度が高くなり、逆に、優先度が低いほど、リフレッシュ頻度が低くなる。該サブ視野範囲の優先度は、サブ視野範囲とターゲットオブジェクトとの間の距離に関連してもよいし、サブ視野範囲の注目度に関連してもよい。いくつかの実施例において、サブ視野範囲の優先度は、動的に調整することができる。例えば、シューティングゲームを例にすると、通常の場合、サブ視野範囲の優先度が距離によって決まり、サブ視野範囲は、ターゲットオブジェクトから近いほど、その優先度が高くなり、リフレッシュ頻度が高くなり、ターゲットオブジェクトがスナイパーライフルで照準を覗く場合、サブ視野範囲の優先度が注目度によって決まり、照準位置が属するサブ視野範囲の注目度が高いことに応じて、該サブ視野範囲の優先度も高くなり、リフレッシュ頻度も高くなる。
【0131】
任意選択的に、本願の実施例で提供される方法は、以下のステップ1150~1170をさらに含んでもよい。
【0132】
ステップ1150では、複数のサブ視野範囲のうちの第1サブ視野範囲に対して、第1サブ視野範囲内のオブジェクトの数が、第1サブ視野範囲に対応する定格最大数より大きい場合、第1サブ視野範囲内の各オブジェクトのそれぞれに対応する属性情報を取得し、属性情報は、オブジェクトとターゲットオブジェクトとの間の関係を表すためのものである。
【0133】
第1サブ視野範囲は、上記の複数のサブ視野範囲のうちのいずれか1つのサブ視野範囲であってもよい。第1サブ視野範囲に対応する定格最大数とは、該第1サブ視野範囲内に含まれるオブジェクトの数の定格最大値を指す。異なるサブ視野範囲に対応する定格最大数は、同じであっても異なってもよい。本願はこれを限定しない。
【0134】
例示的に、第1サブ視野範囲に対応する定格最大数が25であると仮定すると、該第1サブ視野範囲内のオブジェクトの数の実際値が30であり、定格最大数25を超えた場合、その中から一部のオブジェクトを選択して取り除く必要がある。本願の実施例では、オブジェクトの属性情報に基づいて、表示するオブジェクト及び取り除くオブジェクトを決定する。ここで、オブジェクトの属性情報は、ターゲットオブジェクトと友達、味方、又は敵であるか否か、ターゲットオブジェクトとの距離、ターゲットオブジェクトとの親密度、ターゲットオブジェクトとのインタラクションの有無などのうちの少なくとも1つを含むが、これらに限定されない。本願はこれを限定しない。
【0135】
ステップ1160では、第1サブ視野範囲内の各オブジェクトのそれぞれに対応する属性情報に基づいて、第1サブ視野範囲内の各オブジェクトのそれぞれに対応する重みを決定する。
【0136】
第1サブ視野範囲内の各々のオブジェクトに対して、該オブジェクトの属性情報に基づいて、該オブジェクトに対応する重みを決定する。ここで、重みは、該オブジェクトの選択優先度を表すためのものである。例えば、あるオブジェクトの重みが高いほど、該オブジェクトを表示のために保持すべきであることを示し、あるオブジェクトの重みが低いほど、該オブジェクトを取り除くべきであることを示す。
【0137】
また、本願の実施例は、属性情報に基づいて重みを計算する方式を限定しない。例えば、数式、アルゴリズム、又はニューラルネットワークモデルを設定することにより計算を行ってもよい。
【0138】
ステップ1170では、第1サブ視野範囲内の各オブジェクトの中から、重みが条件に合致するオブジェクトを第1サブ視野範囲内の表示オブジェクトとして選択し、表示オブジェクトとは、ターゲットオブジェクトの視野範囲内に表示するオブジェクトを指す。
【0139】
例えば、第1サブ視野範囲に対応する定格最大数がNmaxであると仮定すると、第1サブ視野範囲内の各オブジェクトの中から、重みが最大となるNmax個のオブジェクトを第1サブ視野範囲内の表示オブジェクトとして選択する。
【0140】
任意選択的に、第1サブ視野範囲内の各オブジェクトのうち、上記の表示オブジェクトとして選択されるもの以外の残りのオブジェクトを該第1サブ視野範囲から取り除いてもよく、例えば、ターゲットオブジェクトの視野範囲内でこれらの残りのオブジェクトを表示しない。
【0141】
任意選択的に、本願の実施例で提供される方法は、以下のステップ1180をさらに含んでもよい。
【0142】
ステップ1180では、複数のサブ視野範囲のうちの第2サブ視野範囲に対して、第2サブ視野範囲内のオブジェクトの数が、第2サブ視野範囲に対応する定格最大数より小さい場合、第1サブ視野範囲内の残りのオブジェクトを第2サブ視野範囲に割り当てる。
【0143】
ここで、残りのオブジェクトとは、第1サブ視野範囲内の、重みが条件に合致しないオブジェクトを指す。残りのオブジェクトは、第2サブ視野範囲に対応するリフレッシュ頻度で表示される。任意選択的に、残りのオブジェクトは、第1サブ視野範囲に対応するリフレッシュ頻度で表示されてもよい。
【0144】
例示的に、第2サブ視野範囲に対応する定格最大数が20であり、第2サブ視野範囲内のオブジェクトの数の実際値が10であると仮定すると、第2サブ視野範囲内に残りの定員が10個ある。第1サブ視野範囲内に5つの残りのオブジェクトが存在する場合、この5つの残りのオブジェクトを第2サブ視野範囲に割り当ててもよい。この5つの残りのオブジェクトは、第2サブ視野範囲に対応するリフレッシュ頻度で表示される。このような方式によれば、残りのオブジェクトを直接に取り除くような方式に比べて、他のサブ視野範囲内の残りの定員を活用し、リソースの浪費を回避し、視野範囲内のできるだけ多くのオブジェクトが表示されることを保証することができる。
【0145】
また、第2サブ視野範囲内の残りの定員がaであり(aは、正の整数)、第1サブ視野範囲内の残りのオブジェクトの数がbである(bは、正の整数)と仮定すると、aがb以上である場合、直接に該b個の残りのオブジェクトを全て第2サブ視野範囲に割り当ててもよく、aがbより小さい場合、該b個の残りのオブジェクトの中からa個の残りのオブジェクトを選択して第2サブ視野範囲に割り当ててもよい。ここでの選択方式について、オブジェクトに対応する重みに従って選択し、例えば、重みが最大となるa個の残りのオブジェクトを選択してもよいし、ランダムに選択してもよい。本願はこれを限定しない。
【0146】
また、1つのサブ視野範囲内の残りのオブジェクトを複数の異なるサブ視野範囲に割り当てる可能性もあり、1つのサブ視野範囲には、複数の異なるサブ視野範囲からの残りのオブジェクトが割り当てられる可能性もある。
【0147】
また、複数のサブ視野範囲内に残りのオブジェクトが存在する場合、各サブ視野範囲の優先度に基づいて、優先度が高いサブ視野範囲内の残りのオブジェクトを優先的に選択して、残りの定員がある他のサブ視野範囲に割り当ててもよい。ここで、サブ視野範囲の優先度は、サブ視野範囲とターゲットオブジェクトとの間の距離に関連してもよいし、サブ視野範囲の注目度に関連してもよい。具体的には、上記の紹介・説明を参照すればよく、ここでは説明を省略する。
【0148】
本願の実施例で提供される構成では、オブジェクトの視野範囲を分割し、異なるサブ視野範囲に異なるリフレッシュ頻度を設定することにより、オブジェクトの視野範囲の管理がより合理的になり、外層のサブ視野範囲、又は優先度が低いサブ視野範囲内のオブジェクトのリフレッシュ頻度を低減することにより、ユーザの重点注目オブジェクトの表示品質を保証しながら、サーバ及びクライアントの負担をできるだけ軽減することができる。
【0149】
また、視野範囲内のオブジェクトに対して重みの計算を行った後、重みの高いオブジェクトを優先的に表示し、サーバ及びクライアントの負担を軽減しつつ、視野範囲内の重要なオブジェクトを表示することにより、視野範囲内のオブジェクトの表示がより合理的になる。
【0150】
また、本願の実施例では、視野の更新とオブジェクト管理を完全に切り離すことにより、視野のカスタマイズが非常に便利かつ簡単になる。例えば、ターゲットオブジェクトの視野範囲の形状は、柔軟にカスタマイズ及び調整することができ、ターゲットオブジェクトの視野範囲の大きさも、柔軟にカスタマイズ及び調整することができる。ゲームを例にすると、ターゲットオブジェクトがあるアイテム又は機能を使って視野範囲が増えた場合、該視野範囲を更新してから、更新された該視野範囲に基づいて、オブジェクト管理ツリーから視野範囲内のオブジェクト集合を見つけるだけでよい。つまり、視野の更新は、オブジェクト管理ツリーのオブジェクト管理に影響を与えることなく、視野が更新されても、依然として視野内のオブジェクト集合を効率的かつ正確に決定することができる。
【0151】
以下は、本願の方法の実施例を実行するために使用可能な本願の装置の実施例である。本願の装置実施例に披露されていない細部について、本願の方法の実施例を参照する。
【0152】
図14を参照する。図14には、本願の一実施例で提供されるオブジェクト管理装置のブロック図が示されている。この装置は、上記のオブジェクト管理方法を実現する機能を有する。該機能は、ハードウェアによって実現されてもよいし、ハードウェアが相応のソフトウェアを実行することによって実現されてもよい。該装置140は、位置取得モジュール141と、ノード決定モジュール142と、領域分割モジュール143と、ノード配置モジュール144と、を含んでもよい。
【0153】
位置取得モジュール141は、シーンに追加された第1オブジェクトの位置情報を取得する。
【0154】
ノード決定モジュール142は、第1オブジェクトの位置情報に基づいて、シーンに対応するオブジェクト管理ツリーから第1ノードを決定し、オブジェクト管理ツリーには、複数のノードが含まれ、各々のノードはシーン内の1つの領域に対応し、異なるノードに対応する領域は互いに重ならず、第1ノードとは、第1オブジェクトの位置情報が属する領域に対応するノードを指す。
【0155】
領域分割モジュール143は、第1ノードに対応する領域に第1オブジェクトが追加されると、第1ノードに対応する領域に含まれるオブジェクトの数が上限値より大きくなる場合、第1ノードに対応する領域に含まれる各オブジェクトの位置情報に基づいて、第1ノードに対応する領域をn個(nは1より大きい整数)の子領域に分割し、各子領域に含まれるオブジェクトの数が同じか近い。
【0156】
ノード配置モジュール144は、前記n個の子領域と1対1に対応するn個のノードを前記オブジェクト管理ツリーに配置する。
【0157】
いくつかの実施例において、図15に示すように、前記領域分割モジュール143は、スパン決定ユニット1431と、次元選択ユニット1432と、領域分割ユニット1433と、を含む。
【0158】
スパン決定ユニット1431は、第1ノードに対応する領域に含まれる各オブジェクトの位置情報に基づいて、第1ノードに対応する領域に含まれる各オブジェクトのk個(kは正の整数)の空間次元における距離スパンを決定する。
【0159】
次元選択ユニット1432は、k個の空間次元の中から、距離スパンが最大となるターゲット空間次元を選択する。
【0160】
領域分割モジュール143は、ターゲット空間次元を分割対象として、第1ノードに対応する領域をn個の子領域に分割する。
【0161】
いくつかの実施例において、前記領域分割モジュール143は、第1ノードに対応する領域に含まれる各オブジェクトの中から、ターゲット空間次元において距離が最も遠い第1オブジェクト及び第2オブジェクトを決定し、ターゲット空間次元における第1オブジェクト及び第2オブジェクトの2つの投影点間の線分をn等分することにより、n-1個の分割点を取得し、n-1個の分割点に基づいて、第1ノードに対応する領域をn個の子領域に分割する。
【0162】
いくつかの実施例において、前記ノード配置モジュール144は、第1ノードの親ノードの子ノードの数を取得し、前記子ノードの数が第1条件を満たす場合、前記オブジェクト管理ツリーに前記第1ノードのn-1個の兄弟ノードを追加し、前記第1ノード及び前記n-1個の兄弟ノードを前記n個の子領域と1対1に対応するように配置し、前記子ノードの数が第2条件を満たす場合、前記オブジェクト管理ツリーに前記第1ノードのn個の子ノードを追加し、前記n個の子ノードを前記n個の子領域と1対1に対応するように配置する。
【0163】
いくつかの実施例において、前記ノード配置モジュール144は、さらに、前記子ノードの数が第3条件を満たす場合、前記オブジェクト管理ツリーに前記第1ノードのn個の兄弟ノードを追加し、オブジェクト管理ツリーに前記第1ノードのn個の子ノードを追加し、前記n個の兄弟ノード及び前記n個の子ノードを前記n個の子領域と1対1に対応するように配置する。ここで、n及びnは正の整数であり、n+nがnに等しい。
【0164】
いくつかの実施例において、図15に示すように、前記装置140は、ノード選択モジュール145と、領域統合モジュール146と、ノード削除モジュール147と、をさらに含む。
【0165】
位置取得モジュール141は、さらに、シーンから削減された第2オブジェクトの位置情報を取得する。
【0166】
ノード決定モジュール142は、さらに、第2オブジェクトの位置情報に基づいて、オブジェクト管理ツリーから第2ノードを決定し、第2ノードとは、第2オブジェクトの位置情報が属する領域に対応するノードを指す。
【0167】
ノード選択モジュール145は、第2ノードに対応する領域から第2オブジェクトが削減されると、第2ノードに対応する領域に含まれるオブジェクトの数が下限値より小さくなる場合、オブジェクト管理ツリーから、第2ノードと統合する第3ノードを決定する。
【0168】
領域統合モジュール146は、第3ノードに対応する領域を、第3ノードに対応する元の領域と第2ノードに対応する領域との統合領域に更新する。
【0169】
ノード削除モジュール147は、オブジェクト管理ツリーから第2ノードを削除する。
【0170】
いくつかの実施例において、前記領域統合モジュール146は、
第3ノードの数が1つである場合、第3ノードに対応する領域を、第3ノードに対応する元の領域と第2ノードに対応する完全領域との統合領域に更新し、
あるいは、
第3ノードの数がk個(kは1より大きい整数)である場合、第2ノードに対応する領域をk個の子領域に分割し、k個の第3ノードをk個の子領域と1対1に対応させ、k個の第3ノードのうちの各々の第3ノードに対して、第3ノードに対応する領域を、第3ノードに対応する元の領域と、k個の子領域のうち、第3ノードにマッチする子領域との統合領域に更新する。
【0171】
いくつかの実施例において、前記ノード削除モジュール147は、さらに、第3ノードの親ノードが子ノードを1つしか持っていない場合、オブジェクト管理ツリーから第3ノードの親ノードを削除し、第3ノードをその祖父ノードの子ノードとする。
【0172】
いくつかの実施例において、図15に示すように、前記装置140は、視野取得モジュール148と、オブジェクト決定モジュール149と、視野分割モジュール150と、頻度決定モジュール151と、をさらに含む。
【0173】
視野取得モジュール148は、シーン内のターゲットオブジェクトの視野範囲を取得する。
【0174】
オブジェクト決定モジュール149は、オブジェクト管理ツリーに基づいて、視野範囲内に位置するオブジェクト集合を決定し、オブジェクト集合には、視野範囲内に位置する少なくとも1つのオブジェクトが含まれる。
【0175】
視野分割モジュール150は、視野範囲を複数のサブ視野範囲に分割し、異なるサブ視野範囲とターゲットオブジェクトとの間の距離が異なる。
【0176】
頻度決定モジュール151は、オブジェクト集合内の各オブジェクトのそれぞれが属するサブ視野範囲に基づいて、各オブジェクトのそれぞれに対応するリフレッシュ頻度を決定し、オブジェクトに対応するリフレッシュ頻度は、オブジェクトが属するサブ視野範囲とターゲットオブジェクトとの間の距離と負の相関関係がある。
【0177】
いくつかの実施例において、図15に示すように、前記装置140は、属性取得モジュール152と、重み決定モジュール153と、オブジェクト選択モジュール154と、をさらに含む。
【0178】
属性取得モジュール152は、複数のサブ視野範囲のうちの第1サブ視野範囲に対して、第1サブ視野範囲内のオブジェクトの数が、第1サブ視野範囲に対応する定格最大数より大きい場合、第1サブ視野範囲内の各オブジェクトのそれぞれに対応する属性情報を取得し、属性情報は、オブジェクトとターゲットオブジェクトとの間の関係を表すためのものである。
【0179】
重み決定モジュール153は、第1サブ視野範囲内の各オブジェクトのそれぞれに対応する属性情報に基づいて、第1サブ視野範囲内の各オブジェクトのそれぞれに対応する重みを決定する。
【0180】
オブジェクト選択モジュール154は、第1サブ視野範囲内の各オブジェクトの中から、重みが条件に合致するオブジェクトを第1サブ視野範囲内の表示オブジェクトとして選択し、表示オブジェクトとは、ターゲットオブジェクトの視野範囲内に表示するオブジェクトを指す。
【0181】
いくつかの実施例において、図15に示すように、前記装置140は、オブジェクト割り当てモジュール155をさらに含む。
【0182】
オブジェクト割り当てモジュール155は、複数のサブ視野範囲のうちの第2サブ視野範囲に対して、第2サブ視野範囲内のオブジェクトの数が、第2サブ視野範囲に対応する定格最大数より小さい場合、第1サブ視野範囲内の残りのオブジェクトを第2サブ視野範囲に割り当てる。ここで、残りのオブジェクトとは、第1サブ視野範囲内の、重みが条件に合致しないオブジェクトを指す。残りのオブジェクトは、第2サブ視野範囲に対応するリフレッシュ頻度で表示される。
【0183】
本願の実施例で提供される構成では、シーン内のある領域におけるオブジェクトの数が多すぎて分割する必要がある場合、その領域内に含まれる各オブジェクトの分布位置に応じて、その領域を複数の子領域に分割し、各子領域に含まれるオブジェクトの数をできるだけ均等にする。つまり、各子領域は、空間の大きさが異なるが、管理するオブジェクトの数が均一である。このように、ノード数の増加が速すぎることを避けて、メモリの使用を減らすことができるだけでなく、ある領域で管理しているオブジェクトの数を直接n等分して、オブジェクト管理効率を高めることができる。
【0184】
いくつかの実施例において、図16に示すように、本願では、オブジェクト管理システムが提供されている。このシステムは、オブジェクト管理層161と、AOI視野層162と、を含む。
【0185】
AOI視野層162は、シーン内のターゲットオブジェクトの視野範囲データをオブジェクト管理層161に送信し、ターゲットオブジェクトの視野範囲データは、ターゲットオブジェクトの視野範囲を示すためのものである。
【0186】
オブジェクト管理層161は、ターゲットオブジェクトの視野範囲データに基づいて、ターゲットオブジェクトの視野範囲を決定し、シーンに対応するオブジェクト管理ツリーに基づいて、ターゲットオブジェクトの視野範囲内に位置するオブジェクト集合を決定し、ターゲットオブジェクトの視野範囲内のオブジェクト集合を示すためのオブジェクト集合データをAOI視野層162に送信し、オブジェクト集合には、ターゲットオブジェクトの視野範囲内に位置する少なくとも1つのオブジェクトが含まれ、オブジェクト管理ツリーには、複数のノードが含まれ、各々のノードはシーン内の1つの領域に対応し、異なるノードに対応する領域は互いに重ならず、異なるノードに対応する領域に含まれるオブジェクトの数が同じか近い。
【0187】
AOI視野層162は、オブジェクト集合データに基づいて、ターゲットオブジェクトの視野範囲内のオブジェクト集合を決定する。
【0188】
本願の実施例において、オブジェクト管理層161及びAOI視野層162は、互いに独立した2つの機能モジュールと見なすことができる。そのうち、オブジェクト管理層161は、主にオブジェクト管理ツリーでシーン内のオブジェクトを管理することを担い、AOI視野層162は、主に視野範囲内のオブジェクトを取得し、該視野範囲内のオブジェクトに関するデータをクライアントに提供することを担う。オブジェクト管理層161は、AOI視野層162にインタフェースを提供することができる。AOI視野層162は、あるターゲットオブジェクトの視野範囲内のオブジェクト集合データを取得する必要がある場合に、このインタフェースを呼び出して、ターゲットオブジェクトの視野範囲データをオブジェクト管理層161に送信する。オブジェクト管理層161は、ターゲットオブジェクトの視野範囲内のオブジェクト集合データを取得してAOI視野層162にフィードバックする。
【0189】
いくつかの実施例において、AOI視野層162は、さらに、
ターゲットオブジェクトの視野範囲を複数のサブ視野範囲に分割し、異なるサブ視野範囲とターゲットオブジェクトとの間の距離が異なり、
オブジェクト集合内の各オブジェクトのそれぞれが属するサブ視野範囲に基づいて、各オブジェクトのそれぞれに対応するリフレッシュ頻度を決定し、オブジェクトに対応するリフレッシュ頻度は、オブジェクトが属するサブ視野範囲とターゲットオブジェクトとの間の距離と負の相関関係がある。
【0190】
いくつかの実施例において、AOI視野層162は、さらに、
複数のサブ視野範囲のうちの第1サブ視野範囲に対して、第1サブ視野範囲内のオブジェクトの数が、第1サブ視野範囲に対応する定格最大数より大きい場合、第1サブ視野範囲内の各オブジェクトのそれぞれに対応する属性情報を取得し、属性情報は、オブジェクトとターゲットオブジェクトとの間の関係を表すためのものであり、
第1サブ視野範囲内の各オブジェクトのそれぞれに対応する属性情報に基づいて、第1サブ視野範囲内の各オブジェクトのそれぞれに対応する重みを決定し、
第1サブ視野範囲内の各オブジェクトの中から、重みが条件に合致するオブジェクトを第1サブ視野範囲内の表示オブジェクトとして選択し、表示オブジェクトとは、ターゲットオブジェクトの視野範囲内に表示するオブジェクトを指す。
【0191】
いくつかの実施例において、オブジェクト管理層161は、さらに、
シーンに追加された第1オブジェクトの位置情報を取得し、
第1オブジェクトの位置情報に基づいて、オブジェクト管理ツリーから第1ノードを決定し、第1ノードとは、第1オブジェクトの位置情報が属する領域に対応するノードを指し、
第1ノードに対応する領域に第1オブジェクトが追加されると、第1ノードに対応する領域に含まれるオブジェクトの数が上限値より大きくなる場合、第1ノードに対応する領域に含まれる各オブジェクトの位置情報に基づいて、第1ノードに対応する領域をn個(nは1より大きい整数)の子領域に分割し、各子領域に含まれるオブジェクトの数が同じか近く、
前記n個の子領域と1対1に対応するn個のノードを前記オブジェクト管理ツリーに配置する。
【0192】
いくつかの実施例において、オブジェクト管理層161は、さらに、
シーンから削減された第2オブジェクトの位置情報を取得し、
第2オブジェクトの位置情報に基づいて、オブジェクト管理ツリーから第2ノードを決定し、第2ノードとは、第2オブジェクトの位置情報が属する領域に対応するノードを指し、
第2ノードに対応する領域から第2オブジェクトが削減されると、第2ノードに対応する領域に含まれるオブジェクトの数が下限値より小さくなる場合、オブジェクト管理ツリーから、第2ノードと統合する第3ノードを決定し、
第3ノードに対応する領域を、第3ノードに対応する元の領域と第2ノードに対応する領域との統合領域に更新し、
オブジェクト管理ツリーから第2ノードを削除する。
【0193】
いくつかの実施例において、図16に示すように、AOI視野層162は、多段リングAOI層1621と、AOI重み選別層1622と、AOIオブジェクト集合層1623と、を含んでもよい。そのうち、多段リングAOI層1621は、主にオブジェクト管理層161とドッキングし、オブジェクト管理層161から視野範囲内のオブジェクト集合を取得し、該視野範囲をサブ視野範囲に分割することを担う。例えば、多段リングAOI層1621は、オブジェクト管理層161からターゲットオブジェクトの視野範囲内のオブジェクト集合データを取得し、該オブジェクト集合データに基づいて、ターゲットオブジェクトの視野範囲内のオブジェクト集合を決定する。さらに、多段リングAOI層1621は、ターゲットオブジェクトの視野範囲を複数のサブ視野範囲に分割し、オブジェクト集合内の各オブジェクトのそれぞれが属するサブ視野範囲に基づいて、各オブジェクトのそれぞれに対応するリフレッシュ頻度を決定する。AOI重み選別層1622は、主にオブジェクトの重み計算及び選別を担う。例えば、AOI重み選別層1622は、第1サブ視野範囲内の各オブジェクトのそれぞれに対応する属性情報を取得し、第1サブ視野範囲内の各オブジェクトのそれぞれに対応する属性情報に基づいて、第1サブ視野範囲内の各オブジェクトのそれぞれに対応する重みを決定し、第1サブ視野範囲内の各オブジェクトの中から、重みが条件に合致するオブジェクトを第1サブ視野範囲内の表示オブジェクトとして選択する。AOIオブジェクト集合層1623は、主にクライアントとドッキングし、最終的に決定されたオブジェクト集合データをクライアントに提供することを担う。もちろん、上述したAOI視野層162についての機能階層の分割は例示的なものに過ぎず、該階層分割は柔軟に設定してもよい。本願はこれを限定しない。
【0194】
また、このシステムの実施例において詳細に説明されていない細部については、上記の方法の実施例を参照すればよい。
【0195】
本願の実施例で提供された構成では、システムレベルで視野の更新とオブジェクト管理を切り離し、AOI視野層が視野の更新を担い、オブジェクト管理層がオブジェクト管理を担うように、この2つの機能層を互いに独立させることにより、この2つの機能層を別々に使用することも組み合わせて使用することも可能であり、システムは、抽象性が高くて移植性が高い。
【0196】
図17を参照する。図17には、本願の一実施例で提供されるコンピュータ機器の構成の模式図が示されている。該コンピュータ機器は、データの計算、処理、及び記憶の機能を有する任意の電子機器、例えば、上記で紹介した端末機器又はサーバであってもよく、上記の実施例で提供されるオブジェクト管理方法を実施する。具体的には、
該コンピュータ機器1700は、中央処理ユニット(例えば、中央処理装置(CPU:Central Processing Unit)、グラフィック処理ユニット(GPU:Graphics Processing Unit)、及びフィールドプログラマブルゲートアレイ(FPGA:Field Programmable Gate Array)など)1701と、ランダムアクセスメモリ(RAM:Random-Access Memory)1702及び読み出し専用メモリ(ROM:Read-Only Memory)1703を含むシステムメモリ1704と、システムメモリ1704及び中央処理ユニット1701を接続するシステムバス1705と、を含む。該コンピュータ機器1700は、サーバ内の各部品間の情報の伝送を支援する基本入出力システム(I/Oシステム:Input Output System)1706と、オペレーティングシステム1713、アプリケーション1714、及びその他のプログラムモジュール1715を記憶するための大容量記憶装置1707と、をさらに含む。
【0197】
該基本入出力システム1706は、情報を表示するためのディスプレイ1708と、ユーザが情報を入力するためのマウスやキーボードのような入力機器1709と、を含む。ここで、該ディスプレイ1708及び入力機器1709の両方は、システムバス1705に接続された入出力コントローラ1710を介して中央処理ユニット1701に接続されている。該基本入出力システム1706は、キーボード、マウス、又は電子タッチペンなどの複数の他の機器からの入力を受け付けて処理するための入出力コントローラ1710をさらに含んでもよい。同様に、入出力コントローラ1710は、ディスプレイ、プリンタ、又は他のタイプの出力機器への出力も提供する。
【0198】
該大容量記憶装置1707は、システムバス1705に接続された大容量記憶コントローラ(図示せず)を介して中央処理ユニット1701に接続されている。該大容量記憶装置1707及びそれに関連するコンピュータ可読媒体は、コンピュータ機器1700に対して不揮発性記憶を提供する。つまり、該大容量記憶装置1707は、ハードディスクやコンパクトディスク読み出し専用メモリ(CD-ROM:Compact Disc Read-Only Memory)ドライブのようなコンピュータ可読媒体(図示せず)を含んでもよい。
【0199】
一般性を失うことなく、該コンピュータ可読媒体は、コンピュータ記憶媒体と通信媒体とを含んでもよい。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータなどのような情報を記憶するための任意の方法又は技術によって実現される揮発性及び不揮発性、移動可能な及び移動不可な媒体を含む。コンピュータ記憶媒体は、RAM、ROM、消去可能なプログラマブル読み出し専用メモリ(EPROM:Erasable Programmable Read-Only Memory)、電気的に消去可能なプログラマブル読み出し専用メモリ(EEPROM:Electrically Erasable Programmable Read-Only Memory)、フラッシュメモリ又は他のソリッドステートメモリ技術、CD-ROM、デジタルビデオディスク(DVD:Digital Video Disc)又は他の光学的記憶装置、テープカートリッジ、磁気テープ、磁気ディスク記憶装置又は他の磁気記憶装置を含む。もちろん、当業者であれば、該コンピュータ記憶媒体がこれらに限定されないことが分かる。上記のシステムメモリ1704及び大容量記憶装置1707を総称してメモリと呼んでもよい。
【0200】
本願の実施例によれば、該コンピュータ機器1700は、インターネットなどのようなネットワークを介して、ネットワーク上のリモートコンピュータに接続されて実行されてもよい。即ち、コンピュータ機器1700は、該システムバス1705に接続されたネットワークインタフェースユニット1711を介して、ネットワーク1712に接続されてもよく、言い換えれば、ネットワークインタフェースユニット1711を使用して、他のタイプのネットワーク又はリモートコンピュータシステム(図示せず)に接続されてもよい。
【0201】
メモリは、コンピュータプログラムをさらに含み、該コンピュータプログラムは、メモリに記憶され、上記のオブジェクト管理方法を実現するために1つ又は複数のプロセッサにより実行されるように構成される。
【0202】
例示的な実施例では、コンピュータプログラムを記憶したコンピュータ可読記憶媒体が提供されており、コンピュータプログラムは、コンピュータ機器のプロセッサにより実行されると、上記のオブジェクト管理方法を実現させる。
【0203】
任意選択的に、該コンピュータ可読記憶媒体は、読み出し専用メモリ(ROM:Read-Only Memory)、ランダムアクセスメモリ(RAM:Random-Access Memory)、ソリッドステートドライブ(SSD:Solid State Drives)、又は光ディスクなどを含んでもよい。ここで、ランダムアクセスメモリは、抵抗変化型ランダムアクセスメモリ(ReRAM:Resistance Random Access Memory)やダイナミックランダムアクセスメモリ(DRAM:Dynamic Random Access Memory)を含んでもよい。
【0204】
例示的な実施例では、コンピュータプログラムを含むコンピュータプログラム製品がさらに提供されている。コンピュータプログラムは、コンピュータ可読記憶媒体に記憶されている。コンピュータ機器のプロセッサは、コンピュータ可読記憶媒体からコンピュータプログラムを読み取り、プロセッサがコンピュータプログラムを実行すると、コンピュータ機器に上記のオブジェクト管理方法を実行させる。
【0205】
理解すべきものとして、本明細書で言及される「複数」は、2つ又は2つ以上を指す。「及び/又は」は、関連オブジェクトの関連関係を記述するものであり、3種類の関係があり得ることを表す。例えば、A及び/又はBは、Aが単独で存在する場合、A及びBが同時に存在する場合、Bが単独で存在する場合という3つの場合を表すことができる。文字「/」は、一般的に、前後の関連オブジェクトが「又は」の関係にあることを表す。また、本明細書に記載のステップの番号は、ステップ間の可能な実行順序の一例を例示的に示すものに過ぎない。いくつかの他の実施例では、上記ステップがこの番号の順序で実行されなくてもよく、例えば、番号の異なる2つのステップが同時に実行されたり、番号の異なる2つのステップが図示と逆の順序で実行されたりしてもよい。本願の実施例はこれを限定しない。
【0206】
上記は、本願の例示的な実施例に過ぎず、本願を限定するものではない。本願の精神および原則内で行われる種々の修正、均等置換え、改善などは全て本願の保護範囲内に含まれるべきである。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
【国際調査報告】