(57)【特許請求の範囲】
【請求項１】
制御オブジェクトの空間位置を決定する方法であって、
ゲームアプリケーションのゲームエンジンによって空間位置要求を検出する検出ステップと、
前記ゲームエンジンは物理的衝突のないエンジンであり、前記物理的衝突のないエンジンは、ゲームアプリケーション内の制御オブジェクトが、同じ空間位置において重なり合うことが許されるエンジンであり、前記空間位置要求は、前記ゲームアプリケーションにおける第1の制御オブジェクトの第1の空間位置に基づいて、第2の制御オブジェクトの第2の空間位置を決定するための要求であり、
前記ゲームエンジンが、前記第1の制御オブジェクトの前記第1の空間位置に基づいて複数の候補空間位置を決定するステップと、
前記複数の候補空間位置は前記第1の空間位置を取り囲み、かつ前記複数の候補空間位置と前記第1の空間位置のうちの任意の2つは重なり合うことはなく、
前記ゲームエンジンは、前記複数の候補空間位置のうちの一つの未占用候補空間位置を前記第2の制御オブジェクトの前記第2の空間位置と決定する第2の空間位置決定ステップと
を備え、
前記第2の空間位置決定ステップは、
前記複数の候補空間位置において、前記第1の空間位置から最も近く、かつ未占用候補空間位置を前記第2の制御オブジェクトの前記第2の空間位置と決定するステップと、
前記第1の空間位置に最も近く、かつ前記未占用候補空間位置のステータスを占用される状態に変更するステップと
をさらに備える方法。
【請求項２】
前記複数の候補空間位置を決定するステップは、
前記第1の空間位置を中心とする空間領域において複数の候補空間位置を決定するステップであり、
前記複数の候補空間位置の各々と前記第1の空間位置との間の距離は、事前設定されたしきい値を超えない請求項1に記載の方法。
【請求項３】
前記第1の空間位置を前記中心とする空間領域において前記複数の候補空間位置を決定するステップは、
前記空間領域において、前記第1の空間位置を前記中心とする包囲リング上に前記複数の候補空間位置を設けるステップをさらに備える請求項2に記載の方法。
【請求項４】
前記複数の候補空間位置を設けるステップは、前記包囲リングがN個存在し、前記第1の空間位置を前記中心とする包囲リング上に前記複数の候補空間位置を設けるステップであり、
前記N個の包囲リングの各々の上に1組の候補空間位置を設けるステップを備え、第i番目の包囲リングには、第i組の候補空間位置が設けられ、Nは1以上の整数であり、iはN以下の正の整数である請求項3に記載の方法。
【請求項５】
前記第i組の候補空間位置は、前記第i番目の包囲リング上に均等に配置され、各組の候補空間位置の数はいずれも異なる請求項4に記載の方法。
【請求項６】
前記第1の空間位置を前記中心とする包囲リング上に前記複数の候補空間位置を設けるステップは、
前記第1の制御オブジェクトおよび前記第2の制御オブジェクトの属性情報に基づいて、前記i番目の包囲リングと前記第1の制御オブジェクトとの間の距離、前記第i組の候補空間位置の数、および第i組の候補空間位置の配置方法のうちの少なくとも1つを設定するステップ
を備える、請求項4に記載の方法。
【請求項７】
前記検出ステップは、
前記ゲームエンジンが前記第2の制御オブジェクトの前記第1の制御オブジェクトに対する動作の指令を受信したときに、前記空間位置要求が検出されたと決定するステップ、または
前記第1の制御オブジェクトが第3の空間位置に位置し、かつ、前記第1の制御オブジェクトが複数の第4の空間位置に位置する第2の制御オブジェクトによって取り囲まれたとき、前記第1の制御オブジェクトが第１の空間位置に移動し、かつ前記第1の空間位置と前記第3の空間位置との間の距離が事前設定された距離を超えたことが検出されると、前記空間位置要求が検出されたと決定するステップと
を備える、請求項1に記載の方法。
【請求項８】
前記第1の制御オブジェクトが前記第3の空間位置に位置し、かつ前記第1の制御オブジェクトが前記複数の第4の空間位置に位置する第2の制御オブジェクトによって取り囲まれたとき、前記方法は、
前記第1の制御オブジェクトが前記第3の空間位置から前記第1の空間位置に移動した場合、かつ、前記第1の空間位置と前記第3の空間位置との間の距離が前記事前設定された距離を超えていないことが検出されたとき、前記第1の空間位置および前記第3の空間位置に基づいて、前記第1の制御オブジェクトの動きベクトルを決定するステップと、
前記動きベクトルに従って、前記第2の制御オブジェクトを前記第4の空間位置から第5の空間位置に並進して移動するステップと
をさらに備える、請求項７に記載の方法。
【請求項９】
制御オブジェクトの空間位置を決定する装置であって、プロセッサとメモリとを備え、
前記装置は検出ユニットと、第1の決定ユニットと、第2の決定ユニットとを備え、
前記検出ユニットは、ゲームアプリケーションのゲームエンジンによって、空間位置要求を検出するように構成され、前記ゲームアプリケーションは物理的衝突のないエンジンであり、前記物理的衝突のないエンジンは、ゲームアプリケーション内の制御オブジェクトが、同じ空間位置において重なり合うことが許されるエンジンであり、前記空間位置要求は、前記ゲームアプリケーションにおける第1の制御オブジェクトの第1の空間位置に基づいて、第2の制御オブジェクトの第2の空間位置を決定するための要求であり、
前記第1の決定ユニットは、前記第1の制御オブジェクトの前記第1の空間位置に基づいて複数の候補空間位置を決定するように構成され、前記複数の候補空間位置は前記第1の空間位置を取り囲み、かつ前記複数の候補空間位置と前記第1の空間位置のうちの任意の２つは重なり合うことはなく、
前記第2の決定ユニットは、前記複数の候補空間位置の中の一つの未占用候補空間位置を前記第2の制御オブジェクトの前記第2の空間位置と決定するように構成され、
前記第2の決定ユニットは、
前記複数の候補空間位置において、前記第1の空間位置から最も近く、かつ未占用候補空間位置を前記第2の制御オブジェクトの前記第2の空間位置と決定するユニットであり、
前記第1の空間位置に最も近く、かつ前記未占用候補空間位置のステータスを占用される状態に変更するユニット
をさらに備える装置。
【請求項１０】
前記第1の決定ユニットは、前記第1の空間位置を中心とする空間領域において前記複数の候補空間位置を決定するように構成され、
前記複数の候補空間位置の各々と前記第1の空間位置との間の距離は、事前設定されたしきい値を超えない請求項９に記載の前記装置。
【請求項１１】
前記第1の決定ユニットは、前記空間領域において、前記第1の空間位置を前記中心とする包囲リング上に前記複数の候補空間位置を設けるように構成される請求項１０に記載の前記装置。
【請求項１２】
非一時的コンピュータ可読記憶媒体であって、
前記記憶媒体にはコンピュータが読み取り可能な指令が格納され、前記指令は少なくとも1つのプロセッサに以下の動作を実行させ、すなわち、
ゲームアプリケーションのゲームエンジンによって、空間位置要求を検出するステップと、
前記ゲームアプリケーションは物理的衝突のないエンジンであり、前記物理的衝突のないエンジンは、ゲームアプリケーション内の制御オブジェクトが、同じ空間位置において重なり合うことが許されるエンジンであり、前記空間位置要求は、前記ゲームアプリケーションにおける第1の制御オブジェクトの第1の空間位置に基づいて、第2の制御オブジェクトの第2の空間位置を決定するための要求であり、
前記ゲームエンジンが、前記第1の制御オブジェクトの前記第1の空間位置に基づいて複数の候補空間位置を決定するステップと、
前記複数の候補空間位置は前記第1の空間位置を取り囲み、かつ前記複数の候補空間位置と前記第1の空間位置のうちの任意の2つは重なり合うことはなく、
前記ゲームエンジンは、前記複数の候補空間位置の中の一つの未占用候補空間位置を前記第2の制御オブジェクトの前記第2の空間位置と決定するステップとを実行させ、
前記複数の候補空間位置において、前記第1の空間位置から最も近く、かつ未占用候補空間位置を前記第2の制御オブジェクトの前記第2の空間位置と決定するステップと、
前記第1の空間位置に最も近く、かつ前記未占用候補空間位置のステータスを占用される状態に変更するステップと
をさらに実行させる非一時的コンピュータ可読記憶媒体。
【請求項１３】
前記請求項９〜請求項１１に記載された装置のいずれか１項において実行されるコンピュータプログラムであって、
前記コンピュータプログラムが前記装置によって実行されると、請求項１〜８に記載の方法のいずれか１項が実現されるコンピュータプログラム。
【請求項１４】
前記装置はサーバ及び／または端末に搭載されている請求項１３に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、2016年2月5日に中国特許庁に出願された「CONTROL OBJECT SPATIAL LOCATION DETERMINING METHOD AND APPARATUS」と題する中国特許出願第201610082767.2号の優先権を主張し、前記中国特許出願の全体が参照により本明細書に組み込まれる。
【０００２】
本出願は、コンピュータ技術の分野に関し、詳細には、制御オブジェクトの空間位置を決定するための方法およびその装置に関する。
【背景技術】
【０００３】
既存の技術の場合、オンラインゲームアプリケーションでは、一般に、複数のアプリケーションにおけるノンプレイヤーキャラクター(NPC:non-player character)が同じターゲットを同時に攻撃する場合がある。このようなオンラインゲームにおける複数のNPCの人工知能(AI)が同じターゲット(たとえば、プレイヤーキャラクター)を同時に攻撃するときの配置状況が、AI包囲機構と呼ばれる。現在のゲームエンジンでは、AI包囲機構の実装の態様は、ゲームエンジンが物理的衝突の有無によって2つのタイプに分類される。
【０００４】
(1)物理的衝突を有するゲームエンジン:(StarCraftまたはWarcraftなどの)コンソールゲーム、(Xuanyuan Legendなどの)オンラインゲームなどである。このゲームの特性は、ゲーム内のすべての物体(たとえば、NPCなどの上記のキャラクターオブジェクト)が空間において重なり合うことができないことである。したがって、このタイプのゲームアプリケーションでは、複数のNPCのAIが同じターゲットを攻撃するとき、NPCは、ターゲットから比較的近く、かつ他のNPCが占拠していない場所に移動することになる。
【０００５】
(2)物理的衝突を有しないゲームエンジン:大半のゲームアプリケーションは、物理的衝突エンジンを有しておらず、このタイプのゲームの特性は、ゲーム内の物体が空間において重なり合うことができることである。図1に示す概略図では、ゲームインターフェース上で、4つのNPC(図1のNPC1、NPC2、NPC3、およびNPC4)が(図1のターゲットオブジェクトM1などの)同じターゲットを攻撃しており、図1の4つのNPCのうちの3つのNPC(すなわち、NPC1、NPC2、およびNPC3)が空間的に重なり合っている。物理的衝突がないので、ある一のNPCにとって、ゲームシーンにおける空間全体が占用され得る。したがって、すべてのNPCは、同じ場所の占有点を選択することがあり、そのため重なってしまうことがある。このようなプレイヤーへの体験は真実さに欠ける。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本開示の実施形態は、物理的衝突がないゲームエンジンにおいて、複数の物体が空間位置において重なり合わないようにするための解決策による動作効率の低下という技術的課題を少なくとも解決する制御オブジェクトの空間位置を決定する方法および装置を提供する。
【課題を解決するための手段】
【０００７】
本開示の一態様によれば、制御オブジェクトの空間位置を決定する方法が提供される。方法は、ゲームアプリケーションのゲームエンジンによって、空間位置要求が検出されるステップと、ゲームエンジンには物理的衝突のないエンジンが含まれ、空間位置要求は、ゲームアプリケーションにおける第1の制御オブジェクトの第1の空間位置に基づいて、第2の制御オブジェクトの第2の空間位置を決定するための要求であり、ゲームエンジンが、第1の制御オブジェクトの第1の空間位置に基づいて複数の候補空間位置を決定するステップと、複数の候補空間位置は第1の空間位置を取り囲み、かつ複数の候補空間位置と第1の空間位置のうちの任意の2つは重なり合うことなく、ゲームエンジンは、複数の候補空間位置の中の一つの未占用候補空間位置を第2の制御オブジェクトの第2の空間位置と決定するステップとを含む。
【０００８】
本開示の別の態様によれば、制御オブジェクトの空間位置を決定する装置が提供される。装置は、プロセッサとメモリとを含み、メモリにはコンピュータが読み取り可能で、プロセッサに以下の動作をさせる指令が格納され、すなわち、ゲームアプリケーションのゲームエンジンによって、空間位置要求が検出されたステップと、ゲームアプリケーションには物理的衝突のないエンジンが含まれ、空間位置要求は、ゲームアプリケーションにおける第1の制御オブジェクトの第1の空間位置に基づいて、第2の制御オブジェクトの第2の空間位置を決定するための要求であり、ゲームエンジンが第1の制御オブジェクトの第1の空間位置に基づいて複数の候補空間位置を決定するステップと、複数の候補空間位置は第1の空間位置を取り囲み、かつ複数の候補空間位置と第1の空間位置のうちの任意の2つは重なり合うことなく、ゲームエンジンは、複数の候補空間位置の中の一つの未占用候補空間位置を第2の制御オブジェクトの第2の空間位置と決定するステップとを実行させる指令が格納されている。
【０００９】
本明細書で説明する添付の図面は、本出願についてのさらなる理解を与え、本出願の一部分を形成するために使用される。本出願の概略的な実施形態および例示的な実施形態についての説明は、本出願を解釈するために使用され、本出願に対する不適切な制限を構成しない。
【図面の簡単な説明】
【００１０】
【図１】本開示の一実施形態による、物体の空間位置を決定する概略図である。
【図２】本開示の一実施形態による、コンピュータネットワーク環境の概略図である。
【図３】本開示の一実施形態による、制御オブジェクトの空間位置を決定する方法のフローチャートである。
【図４】本開示の一実施形態による、候補空間位置の分布の第1の概略図である。
【図５】本開示の一実施形態による、候補空間位置の分布の第2の概略図である。
【図６】本開示の一実施形態による、候補空間位置の分布の第3の概略図である。
【図７】本開示の一実施形態による、候補空間位置の分布の第4の概略図である。
【図８】本開示の一実施形態による、候補空間位置の分布の第5の概略図である。
【図９】本開示の一実施形態による、空間位置要求生成のためのトリガ条件の概略図である。
【図１０】本開示の一実施形態による、空間位置を決定する方法を使用することによって生成されるゲームインターフェースの概略図である。
【図１１】本開示の一実施形態による、制御オブジェクトの空間位置を決定する装置の概略図である。
【図１２】本開示の一実施形態による、サーバの内部構造ブロック図である。
【発明を実施するための形態】
【００１１】
本開示の解決策を当業者にとってより分かりやすくするために、以下では、添付の図面を参照しながら、本開示の実施形態における技術的解決策について説明する。説明される実施形態は、本開示の実施形態のすべてではなく、一部にすぎないことは明らかである。創造的努力なしに本開示の実施形態に基づいて当業者によって取得される他の実施形態は、本開示の保護範囲内に入るものとする。
【００１２】
本開示の明細書および特許請求の範囲ならびに添付の図面における「第1の」および「第2の」などの用語は、同様のオブジェクトを区別するために使用されることがあるが、必ずしも特定のシーケンスまたは先行レベルを説明するために使用されるわけではないことに留意されたい。このようにして使用されるデータは、本明細書で説明する本開示の実施形態が図面に示すまたは本明細書で説明するシーケンスとは異なるシーケンスで実装され得るように、適切な状況において交換可能であり得ることを理解されたい。加えて、「含む」および「有する」という用語およびそれらの任意の変形は、非排他的な包含をカバーすることが意図される。たとえば、一連のステップまたはユニットを含むプロセス、方法、システム、製品、またはデバイスは、明確に列挙されたステップまたはユニットに限定されず、明確に列挙されていないまたはプロセス、方法、製品もしくはデバイスに固有の、別のステップまたはユニットを含み得る。
【００１３】
本開示の一実施形態によれば、制御オブジェクトの空間位置を決定する方法の一実施形態が提供される。なお、添付の図面のフローチャートに示すステップは、たとえば、コンピュータ実行可能な指令のグループを用いてコンピュータシステムにおいて実行され得ることに留意されたい。加えて、論理シーケンスがフローチャートに示されているが、示されるまたは説明されるステップは、場合に応じて、このシーケンスと異なるシーケンスで実行され得る。
【００１４】
いくつかの実施形態では、上記の制御オブジェクトの空間位置を決定する方法は、図2に示すネットワーク環境に適用され得る。ネットワーク環境は、端末201と、サーバ203とを含む。端末は、ネットワークを使用することによってサーバへの接続を確立し、プロセッサは、端末とサーバの両方に配設され得る。
【００１５】
ネットワークは、限定はしないが、ワイドエリアネットワーク、メトロポリタンエリアネットワークまたはローカルエリアネットワークを含む。いくつかの実施形態では、ネットワークはローカルエリアネットワークであり、端末はパーソナルコンピュータまたは(モバイルフォンまたはタブレットコンピュータなどの)モバイル端末を含み得る。
【００１６】
図3は、本開示の一実施形態による、制御オブジェクトの空間位置を決定する方法を示す。図3に示すように、方法は以下を含む。
【００１７】
S302:ゲームアプリケーションのゲームエンジンが、空間位置要求を検出し、空間位置要求は、ゲームアプリケーションにおける第1の制御オブジェクトの第1の空間位置に基づいて第2の制御オブジェクトの第2の空間位置の決定を要求するために使用され、ゲームエンジンは物理的衝突がないエンジンであり、すなわち、ゲームアプリケーションにおける制御オブジェクトは、同じ空間位置において重なり合うことが許される。
【００１８】
S304:ゲームエンジンが、第1の制御オブジェクトの第1の空間位置に基づいて複数の候補空間位置を決定し、複数の候補空間位置は第1の空間位置を取り囲み、かつ複数の候補空間位置と第1の空間位置のうちの任意の2つは重なり合うことはない。
【００１９】
S306:ゲームエンジンが、複数の候補空間位置の中の一つの未占用候補空間位置を第2の制御オブジェクトの第2の空間位置と決定する。
【００２０】
第2の空間位置を決定した後、第2の空間位置についての情報を含む通知を生成する。通知を受信した後、第2の制御オブジェクトの(人工知能制御ユニットなどの)AIは、第2の制御オブジェクトを第2の空間位置に自ら移動する。
【００２１】
本開示の実施形態を採用することにより、物理的衝突がないゲームエンジンの場合、空間位置要求が検出された後、第1の制御オブジェクトの第1の空間位置に基づいて複数の候補空間位置を決定し、複数の候補空間位置の中の一つの未占用候補空間位置を第2の制御オブジェクトの第2の空間位置と決定する。上記の実施形態における複数の候補空間位置は第1の空間位置を取り囲み、複数の候補空間位置と第1の空間位置のうちの任意の2つは重なり合うことはなく、複数の空間位置から一つの未占用位置が第2の制御オブジェクトの第2の空間位置を選択し、第2の制御オブジェクトが複数存在する場合、複数の第2の制御オブジェクトの位置は重なり合うことはない。上述の解決策により、研究開発コストの高いおよび運用効率の低い物理的衝突があるゲームエンジンを使用する必要がなく、物理的衝突がないゲームエンジンにおいて、第2の制御オブジェクトに重なり合うことのない空間位置を割り当てることができるようになり、従来技術におけるゲームエンジンにおいて、複数の物体が空間位置において重なり合わないようにするための解決策による運用効率の低い問題を解決した。
【００２２】
上記の実施形態における第1の制御オブジェクトと第2の制御オブジェクトは、ゲームキャラクターであってもよく、またはゲーム内の静的オブジェクトであってもよい。上記の実施形態における第2の制御オブジェクトは、人工知能によって制御されるオブジェクトであってもよく、空間位置要求は第2の制御オブジェクトの人工知能制御ユニットによって生成されたものであってもよい。上記の方法の実行主体は、ゲームエンジンにおける包囲マネージャーであってもよい。
【００２３】
たとえば、第1の制御オブジェクトはゲームプレイヤーであってもよく、第2の制御オブジェクトはNPCであってもよく、該ゲームプレイヤーは、ユーザがゲームクライアントを使用するときに動作指令を入力することによってユーザによって制御されるゲームキャラクターであってもよい。
【００２４】
開示する実施形態によれば、物理的衝突がない場合、複数のNPCのためにゲームアプリケーションの空間における異なる空間位置を割り当てることができ、かつ各NPCの空間位置はそれぞれ異なり、その結果、AIは、包囲機構によってNPCの配置をより真実でかつリアルにすることができる。
【００２５】
具体的には、ゲームアプリケーションはオンラインゲームアプリケーションであってもよく、ユーザは、ゲームアカウントで端末にインストールされたゲームクライアントにログオンし、ゲームアプリケーションのゲームシーンに入ることができる。ゲームシーンに入った後、該ゲームアカウントは、シナリオにおける一のゲームキャラクター(すなわち、上記の実施形態における第1の制御オブジェクト)に対応する。ゲームエンジンが端末のゲームクライアントから起動指令を受信した後、開始指令に応答して、対応するゲームを起動する。ゲームが開始された後、NPCがゲームに現れているかどうかの検出をする。NPCが現れる場合、空間位置要求が検出され、空間位置要求が検出されると、第1の制御オブジェクトの第1の空間位置に対応する複数の重なり合うことのない候補空間位置を決定し、該複数の空間位置から未占用候補空間位置を選択してNPCの第2の空間位置と決定し、すなわち、該未占用候補空間位置をNPCに割り当て、該NPCにNPCのために割り当てられた第2の空間位置を通知し、NPCは該第2の空間位置に移動する。
【００２６】
いくつかの実施形態では、ゲームエンジンは、直接NPCを第2の空間位置に移動することができる。これに対して本開示においては限定しない。
【００２７】
上述の実施形態では、すでに他のNPCによってロックされた空間位置は、別のNPCによって占用することはできず、複数のNPCがターゲット(すなわち、第1の制御オブジェクト)を包囲するときに、複数のNPCは重なり合うことなく、ゲームをより真実にし、ユーザ体験を向上させる。
【００２８】
図4は、候補空間位置の分布を示す。図４に示された実施形態では、ゲームエンジンが、第1の制御オブジェクトの第1の空間位置に基づいて、複数の候補空間位置を決定するプロセスは、第1の空間位置を中心とする空間領域において複数の候補空間位置を決定することを含み、候補空間位置の各々と第1の空間位置との間の距離は、事前設定されたしきい値を超えない。
【００２９】
図4に示すように、第1の空間位置401を中心とし、事前設定されたしきい値を半径とすることによって、円形の空間領域402を決定する。該円形の空間領域に複数の候補空間位置403をランダムに設けると、候補空間位置403の各々と第1の空間位置401との間の距離は、事前設定されたしきい値を超えることなく、複数の候補空間位置403は、該第1の空間位置401を取り囲む。
【００３０】
ゲームアプリケーションにおいて、第2の制御オブジェクトは、第1の制御オブジェクトに対して(包囲または攻撃などの)動作を実行する必要があるため、候補空間位置と第1の空間位置との間の距離を事前設定された距離の範囲内にすると決定すると、ゲームの包囲または攻撃機能がより良く実装され得る。
【００３１】
いくつかの実施形態では、第1の空間位置を中心とする空間領域において複数の候補空間位置を決定することは、空間領域において、第1の空間位置を中心とする包囲リング上に複数の候補空間位置を設けることを含み得る。
【００３２】
具体的には、包囲リングがN個存在し、第1の空間位置を中心とする包囲リング上に複数の候補空間位置を設けることは、N個の包囲リングの各々の上に一組の候補空間位置を設けることを含み、第i番目の包囲リング上に、第i組の候補空間位置が設けられ、Nは1以上の整数であり、iはN以下の正の整数である。
【００３３】
第1の空間位置を円の中心としてN個の包囲リングを設け得る。各包囲リングの半径は異なり、各包囲リング上に一組の候補空間位置設け、すなわち、第i番目の包囲リング上に、第i組の候補空間位置が設けられる。このようにして、候補空間位置を設けるランダム性を低減することができ、プロセッサの性能が向上される。加えて、各包囲リング上の候補空間位置の間の距離は一致しており、第2の空間位置を選択するときに、包囲リングごとに選択することができる。たとえば、まず、第1の包囲リング上の候補空間位置を選択し、第1の包囲リング上に適切な位置が存在しない場合、第2の包囲リング上の位置を選択し、このように類推する。該解決策は候補空間位置のランダムに設けるに比較して、候補空間位置の設置時に規則に従い、選択時も規則に従い、処理速度を向上させることができる。
【００３４】
上記実施形態に従って候補空間位置を設けるとき、第i組の候補空間位置は第i番目の包囲リング上に均等に配置され、各組の候補空間位置の数はいずれも異なる。
【００３５】
図5に示すように、第1の制御オブジェクトは第1の空間位置501に位置し、決定された空間領域502内に、3つの包囲リング503(3つの包囲リングはいずれも、番号503で識別される)設け得る。3つの包囲リング503の半径は、それぞれ、r1、r2、およびr3である。3つの包囲リング503の半径は異なり、各包囲リング503上に一組の候補空間位置504が設けられ、各組ごとの候補空間位置504の数も異なる。図5における第1組の候補空間位置504は5つで、第2組の候補空間位置504は9つで、第3組の候補空間位置504が13個で、かつ各包囲リング503上に候補空間位置504が均等に配置されている。
【００３６】
なお、本開示における包囲リングは仮想概念にすぎず、包囲リングを設けることなく、半径距離に従って候補空間位置を設定されてもよいことに留意されたい。すなわち、第1の制御オブジェクトを中心とすることによって、異なる半径距離に従って、N組の候補空間位置を設け、組ごとの候補空間位置と第1の制御オブジェクトとの間の距離は、同じであってもよい。
【００３７】
いくつかの実施形態では、第1の空間位置を中心とする包囲リング上に複数の候補空間位置を設けることは、次のことを含み得る。すなわち、第1の制御オブジェクトおよび第2の制御オブジェクトの属性情報に従って、第i番目の包囲リングと第1の制御オブジェクトとの間の距離、第i組の候補空間位置の数、第i組の候補空間位置の配置方法のうちの少なくとも1つを設定することである。
【００３８】
1つの実施形態では、包囲リングの数、包囲リングごとの第1の制御オブジェクトとの間の距離、組ごとの候補空間位置の数、および候補空間位置の配置方法(均等配置または不均等配置など)は、第1の制御オブジェクトおよび第2の制御オブジェクトの属性に従って決定され得る。
【００３９】
複数のNPCが同じターゲットを包囲するときに、複数のNPCが重なり合うことのなく、可能な限りリアルさ出すために、本開示では複数の候補空間位置を「フォーメーション」と称する。図6に示すように、フォーメーションは、ターゲット(すなわち、第1の制御オブジェクト)の周りの一連の仮想点(すなわち、候補空間位置)である。
【００４０】
候補空間位置を設けるとき、複数の候補空間位置の各々の候補空間位置とターゲットオブジェクト(すなわち、第1の制御オブジェクト)が存在する第1の空間位置との間の接続は、互いに重なり合うことはなく、その結果、各候補空間位置に位置するNPCオブジェクトは、いずれもターゲットオブジェクトに対して直接に動作を実行することができ、すなわち、各候補空間位置は、いずれも動作がターゲットオブジェクトに対して直接に実行され得る位置に設けられている。
【００４１】
いくつかの実施形態では、任意の2つの候補空間位置と第1の空間位置によって決定された挟角に従って、各候補空間位置を設けてもよい。該挟角は、第1の空間位置を頂点とし、任意の2つの候補空間位置のうちの一方の候補空間位置と頂点との間の連結線を一方の辺とし、任意の2つの候補空間位置のうちの他方の候補空間位置と頂点との間の連結線を他方の辺とする。
【００４２】
具体的には、まず、ターゲットオブジェクト(たとえば、図6に示す第1の制御オブジェクト601)の周りの空間（図6に示す空間602、すなわち、上記実施形態における空間領域）を、ターゲットオブジェクトからの距離に従って、N個の「包囲リング」に分け(図6に示されたように、3つの包囲リング603で、これらの3つの包囲リング603は、その半径がそれぞれr1、r2、およびr3の3つの円であってもよい)。さらに、包囲リング上における適切な角度に、「包囲点」(すなわち、候補空間位置604)を割り当てる。該適切な角度は、ゲームアプリケーションのシーン基づいて自ら定義されてもよく、またはターゲットオブジェクトおよびNPCオブジェクトの属性に従って設定されてもよい。図6に示すように、H1とH2との挟角、H3とH4との挟角、およびH5とH6との挟角は、それぞれa1、a2、およびa3である。包囲リングの半径rと包囲リングの数N、各包囲リング上の包囲点の数(この変数は、包囲点の挟角「a」によって決定され得る)は、業務に応じて自ら定義されてもよい。同様に、包囲点の分布方法は、必ずしも包囲リングの方法でなくてもよく、包囲点は任意の形状であってもよい。
【００４３】
さらに、複数の候補空間位置の包囲効果をよりリアルにするために、複数の候補空間位置の相対位置がオフセットベクトルに従って調整され得ることにさらに留意されたい。図7に示すように、第1の制御オブジェクトは第1の空間位置701に位置し、決定された空間領域702において、3つの包囲リング703(3つの包囲リングはいずれも番号703で識別される)を設け得る。包囲リング703に一組の候補空間位置704を設け、バラツキ効果を生み出すように、各包囲リング703の各々の上の包囲点(すなわち、候補空間位置704)の相対位置に対して、距離および角度におけるランダムなオフセットを実行することができる。すなわち、調整後、包囲リングと第1の制御オブジェクトとの間の距離は変化しなくてもよく、各包囲リング上の候補空間位置が変化する。変化した候補空間位置は、包囲リング上に位置していなくてもよい。
【００４４】
第2の空間位置を決定するとき、第2の空間位置は、事前定義された優先度によって選択方法、たとえば、距離が最も短い方を優先的に選択する選択方法、または隣接する候補空間位置からの距離が最も長い方を優先的に選択する選択方法などに従って選択されてもよい。該事前定義された優先度による選択方法は、業務に応じて自ら定義されてもよい。一般的に、最短距離優先原則に従うことができ、すなわち、NPC(例えば、モンスター)に対してターゲットオブジェクトに比較的近く、包囲リング上前記NPCの現在の位置に最も近い包囲点を割り当てる。
【００４５】
すなわち、ゲームエンジンは、複数の候補空間位置における未占用候補空間位置を第2の制御オブジェクトの第2の空間位置と決定することは、複数の候補空間位置における第1の空間位置に最も近くて未占用候補空間位置を第2の制御オブジェクトの第2の空間位置と決定することを含み得る。
【００４６】
具体的には、第1の空間位置が決定された後、第1の空間位置に最も近い包囲リングを取得し、現在取得された包囲リングから未占用候補空間位置を選択する。現在取得された包囲リング上のすべての候補空間位置が占用されている場合、次に距離の最も近い包囲リングを取得し、占用された包囲リングが見つかるまで繰り返す。
【００４７】
上記の実施形態では、同じ包囲リング上にいくつかの未占用候補空間位置が存在する場合、該未占用候補空間位置から第2の空間位置としてランダムに選択することができ、第2の制御オブジェクトの現在の位置に最も近い位置を第2の空間位置として該未占用候補空間位置から選択することができ、第2の制御オブジェクトの現在の位置が空である(すなわち、第2の制御オブジェクトがまだ該ゲーム空間に存在していない)場合、ランダムに選択することができる。
【００４８】
本開示において、各候補空間位置はステータスフラグを有し得る。ステータスフラグは、候補空間位置が占用されているかどうかを示すために使用される。すなわち、ステータスフラグによって、対応する候補空間位置が占用されているかどうかを決定し得る。複数の候補空間位置において、第1の空間位置から最も近くかつ未占用候補空間位置を第2の制御オブジェクトの第2の空間位置と決定した後、第1の空間位置から最も近くかつ未占用候補空間位置のステータスを占用状態に変える。
【００４９】
毎回第2の空間位置を決定した後、決定された第2の空間位置のステータスを占用状態に変える。同様に、毎回NPCが消失した後、消失したNPCの空間位置のステータスを再び元の未占用状態に戻し、次に空間位置を選択するとき、第2の制御オブジェクトの空間位置が正確に決定することを確保できるようにする。
【００５０】
以下では、図8を参照しながら、本出願の上記の実施形態について詳細に説明する。図8に示すように、位置決定要求が検出された後、第1の制御オブジェクトの第1の空間位置801の複数の候補空間位置を決定する(該候補空間位置は、上記の実施形態のうちのいずれか1つにおける方式で決定され得る)。図8に示す実施形態では、空間領域802において、決定された候補空間位置のうちのいくつかがすでに占用されている。たとえば、図8の第1の包囲リングにおけるH11、H12、H13、およびH14がすでに占用され、第2の包囲リング上のH23がすでに占用されている。上記の選択方法によると、第1の包囲リングにおける未占用候補空間位置H15を選択することができ、H15を第2の空間位置と決定する。ゲームエンジンは、第2の空間位置の情報を有する通知を生成し、該通知を第2の制御オブジェクトの手動制御ユニットに送信する。該手動制御ユニットは、第1の制御オブジェクトに対して攻撃などの動作を実行するために、自ら第2の制御オブジェクトを第2の空間位置に移動する。
【００５１】
図8の黒塗りの候補空間位置は、占用された候補空間位置を示す。
【００５２】
さらに、ゲームアプリケーションのゲームエンジンによって、空間位置要求が検出されたことは、ゲームエンジンが第2の制御オブジェクトの第1の制御オブジェクトに対する動作の指令を受信すると、空間位置要求が検出されたと決定すること、または、第1の制御オブジェクトが第3の空間位置に位置し、第1の制御オブジェクトが複数の第4の空間位置に位置する第2の制御オブジェクトによって取り囲まれた場合に、第1の制御オブジェクトが第1の空間位置に移動し、かつ、第1の空間位置と第3の空間位置との間の距離が事前設定された距離を超えたことが検出された場合、空間位置要求が検出されたと決定することを含み得る。
【００５３】
いくつかの実施形態では、第1の制御オブジェクトが第3の空間位置に位置し、かつ第1の制御オブジェクトが複数の第4の空間位置に位置する第2の制御オブジェクトによって取り囲まれたとき、方法は、第1の制御オブジェクトが第1の空間位置に移動し、かつ、第1の空間位置と第3の空間位置との間の距離が事前設定された距離を超えていないことが検出された場合、第1の空間位置および第3の空間位置に基づいて第1の制御オブジェクトの動きベクトルを決定するステップと、動きベクトルに従って第2の制御オブジェクトを第2の空間位置から第5の空間位置に並進して移動するステップとをさらに含む。すなわち、第1の制御オブジェクトの移動範囲が大きくない場合、第2の制御オブジェクトは、リソースを節約するために、再度空間位置要求を生成する必要がなく第1の制御オブジェクトの移動に基づいて並進して移動される。
【００５４】
いくつかの実施形態では、ゲーム機能を起動した後、第2の制御オブジェクトが第1の制御オブジェクトを攻撃するとき、攻撃指令または包囲攻撃指令などの動作指令を生成し、かつ空間位置要求を生成する。すると、ゲームエンジンは、該空間位置要求を検出することができる。いくつかの実施形態では、NPCが動作指令を生成することが検出された場合、空間位置要求が検出されたと決定される。
【００５５】
いくつかの実施形態では、ゲーム機能を起動した後、第1の制御オブジェクトは第3の空間位置に位置し、第1の制御オブジェクトが複数の第4の空間位置に位置する第2の制御オブジェクトによって取り囲まれ、第1の制御オブジェクトが上記の状態にあるとき、ゲームエンジンは、第1の制御オブジェクトの位置が第1の空間位置に移動し、かつ該移動の範囲が非常に大きいことが検出され、第3の制御位置が移動する距離が事前設定された距離範囲を超えた場合、NPCはNPCの空間位置を再度取得するために、空間位置要求を生成する。
【００５６】
以下では、図9を参照しながら、さらなる詳細について説明する。第1の制御オブジェクトが第3の空間位置901に位置し、3つの第4の空間位置に位置する第2の制御オブジェクト902が第1の制御オブジェクトを取り囲むとき、第1の制御オブジェクトが移動し、第1の制御オブジェクトが移動する距離が大きい場合、図9における第1の制御オブジェクトが第1の空間位置903に位置することが示されたように、NPCのAIは、空間位置を再度申請するために、空間位置要求を生成する。
【００５７】
NPCがターゲットを攻撃するとき、まず、複数の候補空間位置から1つの包囲点(すなわち、第2の空間位置)を申請し、該NPCの位置占用点とし、包囲点上に現在の状態を記録する。すでに他のNPCによってロックされた包囲点は、黒塗りされた候補空間位置が示されたように、他のNPCによって占用することはできず、残りのNPCは残りの未占用包囲点から選択するしかない。
【００５８】
包囲点を選択するための優先度アルゴリズムは、業務に応じて自ら定義されてもよい。一般に、最短距離優先の原則に従い、すなわち、包囲リング上のモンスター(すなわち、第2の制御オブジェクト)に対して、ターゲットに距離的に比較的近い包囲リング上自らの現在の位置に最も近い包囲点を割り当てる。
【００５９】
包囲ターゲットは必ずしも静的ではなく、ターゲットが継続的に移動するとき、「フォーメーション」全体は、ターゲットに基づいて継続的に並進して移動し、すなわち、各包囲点の絶対座標は、継続的に変わる。したがって、適用することによってNPCが包囲点を取得した後、AIは、包囲点の現在の座標を継続的に判定する必要があり、自身が包囲点から大きく離れることが分かった場合、AIは新しい座標への移動を開始する。加えて、ターゲットの1回切りの移動が原座標から大きく離れる(図9に示す状態など)を引き起こし、包囲内のNPCの相対位置が大きく変わる場合、すべての包囲点は、NPCが再度適用プロセスを開始するように、一度にリセットしてもよい。
【００６０】
図10に示すように、本開示の開示する実施形態において生成されたゲームシナリオに4つの第2の制御オブジェクト(NPC1、NPC2、NPC3、およびNPC4)および1つの第1の制御オブジェクト(すなわち、ターゲットオブジェクトM1)が存在する場合、4つの第2の制御オブジェクトが第1の制御オブジェクトに対して取り囲む状況を生成する。図1と比較して、4つのNPCの空間位置は重なり合うことはない。
【００６１】
したがって、本開示の開示する実施形態によれば、物理的衝突がないゲームでは、モンスターの包囲が衝突の効果をシミュレートすることにより、モンスターパフォーマンスをよりリアルにすることができる。
【００６２】
開示する方法実施形態によれば、簡単な説明のために、方法実施形態が一連のアクションの組合せとして説明されることに留意されたい。しかしながら、いくつかのステップは本開示に従って別のシーケンスでまたは同時に実行され得るので、本開示は説明されるアクションシーケンスによって限定されないことを当業者は理解されるべきである。第2に、本明細書で説明するすべての実施形態は好ましい実施形態であり、関与するアクションおよびモジュールは必ずしも本開示によって必要とされるわけではないことも当業者は理解されるべきである。
【００６３】
さらに、上記の実施形態による方法は、ソフトウェアおよび必要な汎用ハードウェアプラットフォームを使用することによって実装され得るがもちろん、ハードウェアによっても実装され得ることを当業者は知ることができる。しかしながら、多くの場合、前者が好ましい実装形態である。そのような理解に基づいて、本質的には本開示の技術的解決策が、または既存の技術に寄与する部分が、ソフトウェアの形態で実装され得る。コンピュータソフトウェアは、(ROM/RAM、磁気ディスク、または光ディスクなどの)記憶媒体に記憶され、本開示の実施形態で説明する方法を実行するように(モバイルフォン、コンピュータ、サーバ、ネットワークデバイスなどであり得る)端末デバイスに指令を出すためのいくつかのコマンドを含む。
【００６４】
本開示の一実施形態によれば、図11に示すように、上記の制御オブジェクトの空間位置を決定する方法を実装するための装置がさらに提供される。
【００６５】
この実施形態では、上記の制御オブジェクトの空間位置を決定する装置は、図2に示すネットワーク環境に適用され得る。
【００６６】
図11に示すように、制御オブジェクトの空間位置を決定する装置は、検出ユニット111と、第1の決定ユニット113と、第2の決定ユニット115とを含む。
【００６７】
検出ユニット111は、空間位置要求を検出するように構成され、空間位置要求は、ゲームアプリケーションにおける第1の制御オブジェクトの第1の空間位置に基づいて第2の制御オブジェクトの第2の空間位置を決定することを要求するために使用され、ゲームエンジンは、物理的衝突がないエンジンである。たとえば、ゲームアプリケーションにおける制御オブジェクトは、空間位置において重なり合うことが許される。
【００６８】
第1の決定ユニット113は、第1の制御オブジェクトの第1の空間位置に従って複数の候補空間位置を決定するように構成され、複数の候補空間位置は第1の空間位置を取り囲み、複数の候補空間位置と第1の空間位置のうちの任意の2つは重なり合うことはない。
【００６９】
第2の決定ユニット115は、複数の候補空間位置の中の一つの未占用候補空間位置を第2の制御オブジェクトの第2の空間位置と決定するように構成される。
【００７０】
第2の空間位置が決定された後、第2の空間位置についての情報を含む通知が生成される。第2の制御オブジェクトの(人工知能制御ユニットなどの)AIは、通知を受信した後第2の制御オブジェクトを第2の空間位置に移動する。
【００７１】
本実施形態における装置は、ゲームアプリケーションのゲームエンジン内に設けてもよく、該ゲームエンジンは、ゲームアプリケーションに対応するサーバに位置してもよい。
【００７２】
したがって、物理的衝突がないゲームエンジンの場合、空間位置要求が検出された後、第1の制御オブジェクトの第1の空間位置に基づいて複数の候補空間位置を決定し、複数の候補空間位置における未占用候補空間位置が第2の制御オブジェクトの第2の空間位置と決定する。上記の実施形態における複数の候補空間位置は第1の空間位置を取り囲み、かつ複数の候補空間位置と第1の空間位置のうちの任意の2つは重なり合わない。したがって、複数の空間位置から未占用位置を第2の制御オブジェクトの第2の空間位置として選択する。第2の制御オブジェクトが複数存在する場合、複数の第2の制御オブジェクトの位置は重なり合うことはない。上記方法により、研究開発コストが高く運用効率が低い物理的衝突があるゲームエンジンを使用することなく、物理的衝突がないゲームエンジンにおいて、複数の第2の制御オブジェクトに重なり合うことのない空間位置を割り当てることができ、従来技術におけるゲームエンジンにおいて、複数の物体が空間位置において重なり合わないようにするための解決策による運用効率が低いという問題を解決した。
【００７３】
第1の制御オブジェクトと第2の制御オブジェクトは、ゲームキャラクターであってもよく、ゲーム内の静的物体であってもよい。第2の制御オブジェクトは、人工知能によって制御されるオブジェクトであってもよく、空間位置要求はまた、第2の制御オブジェクトの人工知能制御ユニットによって生成される。上記の方法の実行主体は、ゲームエンジンにおける包囲マネージャーであってもよい。
【００７４】
たとえば、第1の制御オブジェクトはゲームプレイヤーであってもよく、第2の制御オブジェクトはNPCであってもよく、該ゲームプレイヤーは、ユーザがゲームクライアントを使用するときに動作指令を入力することによって制御されるゲームキャラクターであってもよい。
【００７５】
したがって、物理的衝突がない条件の下で、複数のNPCにゲームアプリケーション空間内における異なる空間位置を割り当て、かつNPCの空間位置は互いに異なり、その結果、AIは、包囲機構によってNPCの配置状況をより真実さを増し、かつリアルにすることができる。
【００７６】
いくつかの実施形態では、第1の決定ユニットは、第1の空間位置を中心とする空間領域において複数の候補空間位置を決定するように構成された決定モジュールを含むことができ、候補空間位置の各々と第1の空間位置との間の距離は、事前設定されたしきい値を超えない。
【００７７】
第1の空間位置を中心とし、事前設定されたしきい値を半径として、円形の空間領域を決定し、該円形の空間領域において複数の候補空間位置がランダムに設ける場合、候補空間位置の各々と第1の空間位置との間の距離は、事前設定されたしきい値を超えず、複数の候補空間位置は、第1の空間位置を取り囲む。
【００７８】
ゲームアプリケーションにおいて、第2の制御オブジェクトは、第1の制御オブジェクトに対して(包囲または攻撃などの)動作を実行する必要があるため、候補空間位置を第1の空間位置との間の距離が事前設定された距離の範囲内に決定することで、ゲームの包囲または攻撃機能をより良く実装し得る。
【００７９】
いくつかの実施形態では、決定モジュールは、空間領域において、第1の空間位置を中心とする包囲リング上に複数の候補空間位置を設けるように構成された設置用サブモジュールを含み得る。
【００８０】
具体的には、包囲リングがN個存在する。配置サブモジュールは、N個の包囲リングのうちの各々の包囲リングに一組の候補空間位置を設けるように構成された第1の位置配置サブモジュールを含み、第i番目の包囲リングに第i組の候補空間位置が設けられ、Nは1以上の整数であり、iはN以下の正の整数である。
【００８１】
N個の包囲リングは、第1の空間位置を円心に設け得る。各包囲リングの半径は異なる。各包囲リングに一組の候補空間位置設け、すなわち、第i番目の包囲リングに第i組の候補空間位置を設ける。このようにして、候補空間位置の設置のランダム性が低減され、プロセッサの性能が向上される。加えて、各包囲リング上の候補空間位置の間の距離は一致しており、第2の空間位置を選択した場合、包囲リングごとに選択することができる。たとえば、まず第1の包囲リング上の候補空間位置を選択し、第1の包囲リング上に適切な位置が存在しない場合、第2の包囲リング上の位置を選択し、以下類推する。該解決策を候補空間位置のランダムな配置と比較すると、候補空間位置の配置は規則正しく行われ、選択も規則正しく行われることにより処理速度が向上する。
【００８２】
さらに、候補空間位置を設けるとき、第i組の候補空間位置は第i番目の包囲リング上に均等に配置され、各組ごとの候補空間位置の数はいずれも異なる。
【００８３】
いくつかの実施形態では、第i組の候補空間位置は、第i番目の包囲リング上に不均等に分布されてもよく、各組ごとの候補空間位置の数は同じであってもよい。
【００８４】
本開示では、包囲リングは仮想概念にすぎず、候補空間位置は包囲リングを設けることなく、直接半径距離に基づいて設けてもよいことに留意されたい。すなわち、第1の制御オブジェクトを中心として、異なる半径距離に従ってN組の候補空間位置を設け、各組の候補空間位置と第1の制御オブジェクトとの間の距離は、同じであってもよい。
【００８５】
いくつかの実施形態では、配置サブモジュールは、第1の制御オブジェクトおよび第2の制御オブジェクトの属性情報に基づいて、第i番目の包囲リングと第1の制御オブジェクトとの間の距離、第i組の候補空間位置の数、および第i組の候補空間位置配置方法のうちの少なくとも1つを設定するように構成された第2の位置配置サブモジュールを含む。
【００８６】
1つの実施形態では、包囲リングの数、各包囲リングと第1の制御オブジェクトとの間の距離、各組の候補空間位置の数、および候補空間位置の(均等分布または不均等分布などの)配置方法は、第1の制御オブジェクトおよび第2の制御オブジェクトの属性に従って決定してもよい。
【００８７】
候補空間位置を設けるとき、複数の候補空間位置のうちの各々の候補空間位置とターゲットオブジェクト(すなわち、第1の制御オブジェクト)の第1の空間位置との間の接続は、互いに重なり合うことはなく、その結果、各候補空間位置に位置するNPCオブジェクトは、いずれもターゲットオブジェクトに対して直接動作を実行することができ、すなわち、各候補空間位置は、ターゲットオブジェクトに対して直接動作を実行し得る位置になるように設定される。
【００８８】
さらに、第2の空間位置を決定するとき、第2の空間位置は、事前に定義された優先度に基づいて選択する選択方法、たとえば、最短距離優先の選択方法、隣接する候補空間位置からの距離が最も遠いものを選択する選択方法などに従って選択してもよい。事前に優先度を定義する選択方法は、業務に応じて自ら定義してもよい。一般的に、最短距離優先の原則に従い、すなわち、NPCに(モンスターなどの)ターゲットオブジェクトから比較的近い包囲リング上のNPCの現在の位置に最も近い包囲点を割り当てる。
【００８９】
すなわち、第2の決定ユニットに含まれる位置選択モジュールは、複数の候補空間位置における第1の空間位置に最も近く、かつ未占用候補空間位置を第2の制御オブジェクトの第2の空間位置と決定するように構成される。
【００９０】
具体的には、第1の空間位置が決定された後、第1の空間位置に最も近い包囲リングを取得し、現在取得された包囲リングから未占用候補空間位置を選択する。現在取得された包囲リング上のすべての候補空間位置がいずれも占用されている場合、次に最も近い包囲リングを取得し、占用された包囲リングが見つかるまで類推して適用する。
【００９１】
さらに、各候補空間位置はステータスフラグを有し得る。該ステータスフラグは、候補空間位置が占用されているかどうかを示すためのもので、すなわち、ステータスフラグにより、対応する候補空間位置が占用されているか否かを示すことができる。複数の候補空間位置における第1の空間位置に最も近く、かつ未占用候補空間位置を第2の制御オブジェクトの第2の空間位置と決定した後、状態変更ユニットによって、複数の候補空間位置の中の第1の空間位置に最も近く未占用候補空間位置のステータスを、占用状態に変える。
【００９２】
1つの実施形態では、検出ユニットは、第2の制御オブジェクトが第1の制御オブジェクトに対する動作の指令を受信するときに、空間位置要求が検出されたと決定するように構成された第1の検出モジュール、または、第1の制御オブジェクトが第3の空間位置に位置し、第1の制御オブジェクトが第4の空間位置に位置する複数の第2の制御オブジェクトによって取り囲まれる場合に、第1の制御オブジェクトが第1の空間位置に移動し、かつ第1の空間位置と第3の空間位置との間の距離が事前設定された距離を超えたことが検出された場合、空間位置要求が検出されたと決定するように構成された第2の検出モジュールを含む。
【００９３】
上記は、空間位置要求の生成をトリガするための2つのトリガ条件である。
【００９４】
いくつかの実施形態では、第2の検出モジュールは、第1の制御オブジェクトが第1の空間位置に移動したことが検出された場合で、第1の空間位置と第3の空間位置との間の距離が事前設定された距離を超えないことが検出されたとき、第1の空間位置および第3の空間位置に基づいて第1の制御オブジェクトの動きベクトルを決定し、動きベクトルに従って第2の制御オブジェクトを第2の空間位置から第5の空間位置に並進して移動するようにさらに構成される。
【００９５】
包囲ターゲットは必ずしも静的ではなく、ターゲットが継続的に移動するとき、「フォーメーション」全体も、ターゲットに基づいて継続的に並進して移動し、すなわち、各包囲点の絶対座標は継続的に変わる。したがって、NPCが包囲点を取得した後、AIは、包囲点の現在の座標を絶えずに判定する必要があり、NPCが包囲点から離れていることに気付いた場合、AIは新しい座標への移動を開始する。加えて、ターゲットの1回切りの移動が原座標から離れて(図9に示す状態など)おり、包囲内のNPCの相対位置が大きい変化した場合、すべての包囲点を、NPCが再度適用を開始するように、一度にリセットしてもよい。
【００９６】
さらに、物理的衝突がないゲームでは、モンスター包囲は衝突のある効果をシミュレートすることにより、モンスターパフォーマンスをよりリアルにすることができる。
【００９７】
本開示で提供されるモジュールは、対応する方法の実施形態で提供される使用方法と同じく、適用されるシナリオも同じであり得る。もちろん、モジュールに関連する解決策は、上記実施形態における内容およびシナリオに限定されることはなく、かつモジュールはコンピュータ端末またはモバイル端末において実行されてもよく、ソフトウェアまたはハードウェアことによって実現されてもよいことに留意されたい。
【００９８】
本開示の一実施形態によれば、上記の制御オブジェクトの空間位置の決定方法を実施するためのサーバをさらに提供する。
【００９９】
図12に示すように、サーバは、1つまたは複数の(図には1つしか示されていない)プロセッサ1201と、メモリ1203と、伝送装置1205とを含む。図12に示すように、端末は、入力/出力デバイス1207をさらに含み得る。
【０１００】
メモリ1203は、本開示の実施形態における制御オブジェクトの空間位置を決定する方法および装置に対応するプログラム指令/モジュールなどのようなソフトウェアプログラムおよびモジュールを記憶するように構成されてもよく、プロセッサ1201は、メモリ1203に記憶されたソフトウェアプログラムおよびモジュールを実行することにより、様々な機能アプリケーションおよびデータ処理を実行し、すなわち、制御オブジェクトの空間位置を決定する方法を実現する。メモリ1203は高速ランダムアクセスメモリを含むことができ、1つもしくは複数の磁気記憶デバイス、フラッシュメモリ、またはその他の不揮発性ソリッドステートメモリなどの不揮発性メモリを含むこともできる。いくつかの実施形態では、メモリ1203は、プロセッサ1201に対して遠隔に設けられたメモリをさらに含んでもよく、これらの遠隔メモリは、ネットワークを介して端末に接続されてもよい。ネットワークの事例は、インターネット、イントラネット、ローカルエリアネットワーク、モバイル通信ネットワーク、およびそれらの組合せを含むが、これらに限定されることはない。
【０１０１】
伝送装置1205は、ネットワークを介してデータを受信または送信するように構成され、プロセッサとメモリとの間でデータを伝送するようにさらに構成されてもよい。上記のネットワークの具体的な例は、ワイヤードネットワークおよびワイヤレスネットワークを含み得る。一例では、伝送装置1205は、ネットワークケーブルを使用することによって別のネットワークデバイスおよびルータに接続され、それにより、インターネットまたはローカルエリアネットワークと通信することができるネットワークインターフェースコントローラ(NIC)を含む。一例では、伝送装置1205は、ワイヤレス方式でインターネットと通信するように構成される無線周波数(RF)モジュールである。
【０１０２】
具体的には、メモリ1203は、アプリケーションプログラムを記憶するように構成される。
【０１０３】
プロセッサ1201は、以下のステップを実行するために、伝送装置1205を介して、メモリ1203に記憶されたアプリケーションプログラムを読み出すことができる。
【０１０４】
S1:ゲームアプリケーションのゲームエンジンが、空間位置要求を検出し、空間位置要求は、ゲームアプリケーションにおける第1の制御オブジェクトの第1の空間位置に基づいて第2の制御オブジェクトの第2の空間位置を決定することを要求するために使用され、ゲームエンジンは、物理的衝突がないエンジンである。たとえば、ゲームアプリケーションにおける制御オブジェクトは、空間位置において重なり合うことが許されている。
【０１０５】
S2:ゲームエンジンが、第1の制御オブジェクトの第1の空間位置に基づいて複数の候補空間位置を決定し、複数の候補空間位置は第1の空間位置を取り囲み、複数の候補空間位置と第1の空間位置のうちの任意の2つは重なり合うことはない。
【０１０６】
S3:ゲームエンジンが、複数の候補空間位置における未占用候補空間位置を第2の制御オブジェクトの第2の空間位置と決定する。
【０１０７】
プロセッサ1201は、以下のステップを実行するために、伝送装置1205を介して、メモリ1203に記憶されたアプリケーションプログラムを読み出すことができる。
【０１０８】
第1の空間位置を中心とする空間領域において複数の候補空間位置を決定し、候補空間位置の各々と第1の空間位置との間の距離は、事前設定されたしきい値を超えない。
【０１０９】
したがって、物理的衝突がないゲームエンジンの場合、空間位置要求が検出された後、第1の制御オブジェクトの第1の空間位置に基づいて複数の候補空間位置を決定し、複数の候補空間位置における未占用候補空間位置を第2の制御オブジェクトの第2の空間位置と決定される。上記の実施形態における複数の候補空間位置は第1の空間位置を取り囲み、複数の候補空間位置と第1の空間位置のうちの任意の2つは重なり合うことはない。複数の空間位置から未占用位置を第2の制御オブジェクトの第2の空間位置として選択する。複数の第2の制御オブジェクトが存在する場合、複数の第2の制御オブジェクトの位置は重なり合うことはない。上記の解決策により、研究開発コストが高くて運用効率が低い物理的衝突があるゲームエンジンを使用することなく、物理的衝突がないゲームエンジンにおいて、重なり合うことのない空間位置を複数の第2の制御オブジェクトに割り当てることが可能になり、従来技術のゲームエンジンにおいて、複数の物体が空間位置において重なり合わないようにするための解決策が動作効率の低いという問題を解決した。
【０１１０】
この実施形態における具体的な例については、上記の実施形態で説明する例を参照されたい。この実施形態では、その詳細についてここで繰り返すことはしない。
【０１１１】
なお、レジスタエリアは、システムおよびシステムプロセッサの内部メモリ内のレジスタであることにさらに留意されたい。
【０１１２】
図12に示す構造は例示的なものにすぎず、端末は(AndroidモバイルフォンまたはiOSモバイルフォンなどの)スマートフォン、タブレットコンピュータ、パームトップコンピュータ、およびモバイルインターネットデバイス(MID)またはPADなどの端末デバイスであってもよいことを当業者は理解し得る。図12は、上記の電子装置の構造に対して限定しない。たとえば、端末は、図12に示すものよりも多いまたは少ない構成要素(ネットワークインターフェースおよびディスプレイ装置など)をさらに含んでもよく、または図12に示すものとは異なるように構成されてもよい。
【０１１３】
上記の実施形態の方法におけるステップの全部または一部のステップは、プログラムにより端末デバイスの関連ハードウェアに指令を出すことで実現され得ることを当業者は理解し得る。プログラムは、コンピュータ可読記憶媒体に記憶され得る。記憶媒体は、フラッシュドライブ、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク、光ディスクなどを含み得る。
【０１１４】
本開示のこの実施形態は、記憶媒体をさらに提供する。いくつかの実施形態では、上記の記憶媒体は、制御オブジェクトの空間位置を決定する方法を実行するためのプログラムコードを記憶するために使用され得る。
【０１１５】
いくつかの実施形態では、上記の記憶媒体は、図2に示すネットワーク内の複数のネットワークデバイスのうちの少なくとも1つに位置し得る。
【０１１６】
いくつかの実施形態では、記憶媒体は、以下のステップを実行するために使用されるプログラムコードを記憶するように構成される。
【０１１７】
S1:ゲームアプリケーションのゲームエンジンが、空間位置要求を検出し、空間位置要求は、ゲームアプリケーションにおける第1の制御オブジェクトの第1の空間位置に基づいて第2の制御オブジェクトの第2の空間位置を決定することを要求するために使用され、ゲームエンジンは、物理的衝突がないエンジンである。たとえば、ゲームアプリケーション内の制御オブジェクトは、空間位置において重なり合うことができる。
【０１１８】
S2:ゲームエンジンが、第1の制御オブジェクトの第1の空間位置に基づいて複数の候補空間位置を決定し、複数の候補空間位置は第1の空間位置を取り囲み、複数の候補空間位置と第1の空間位置のうちの任意の2つは重なり合うことはない。
【０１１９】
S3:ゲームエンジンが、複数の候補空間位置における未占用候補空間位置を第2の制御オブジェクトの第2の空間位置と決定する。
【０１２０】
いくつかの実施形態では、記憶媒体は、以下のステップを実行するために使用されるプログラムコードを記憶するようにさらに構成される。
【０１２１】
第1の空間位置を中心とする空間領域において複数の候補空間位置を決定し、候補空間位置の各々と第1の空間位置との間の距離は、事前設定されたしきい値を超えない。
【０１２２】
したがって、物理的衝突がないゲームエンジンの場合、空間位置要求が検出された後、第1の制御オブジェクトの第1の空間位置に基づいて複数の候補空間位置を決定し、複数の候補空間位置における未占用候補空間位置を第2の制御オブジェクトの第2の空間位置と決定される。上記の実施形態における複数の候補空間位置は第1の空間位置を取り囲み、複数の候補空間位置と第1の空間位置のうちの任意の2つは重なり合うことはなく、複数の空間位置から未占用位置を第2の制御オブジェクトの第2の空間位置として選択される。複数の第2の制御オブジェクトが存在する場合、複数の第2の制御オブジェクトの位置は重なり合うことはない。上記の解決策により、研究開発コストが高くて運用効率が低い物理的衝突があるゲームエンジンを使用することなく、物理的衝突がないゲームエンジンにおいて、重なり合うことはない空間位置を複数の第2の制御オブジェクトに割り当てることが可能になり、従来技術のゲームエンジンにおいて、複数の物体が空間位置において重なり合わないようにするための解決策が動作の効率の低いという問題を解決した。
【０１２３】
いくつかの実施形態では、記憶媒体は、プログラムコードを記憶することができる様々な媒体、たとえば、USBディスク、ROM、RAM、モバイルディスク、磁気ディスク、および光ディスクを含み得るが、これらに限定されない。
【０１２４】
この実施形態における具体的な例については、上記の実施形態で説明する例を参照されたい。この実施形態では、詳細については本明細書で繰り返すことはしない。
【０１２５】
本出願の前述の実施形態の番号は、説明を目的とするものにすぎず、実施形態の優劣を示すものではない。
【０１２６】
上記実施形態におけるユニットは、ソフトウェア機能的ユニットの形態で実装され、独立した製品として販売されまたは使用されるとき、上記のコンピュータ可読記憶媒体に記憶され得る。そのような理解に基づいて、本質的には本出願の技術的解決策が、または技術的解決策が従来技術に対して寄与する一部分、または解決策の全部もしくは一部は、ソフトウェア製品の形態で具現化され得る。コンピュータソフトウェアは、記憶媒体に記憶され、(パーソナルコンピュータ、サーバ、ネットワークデバイスなどであり得る)1つまたは複数のコンピュータデバイスに本開示の実施形態における方法の全部または一部のステップを実行させるために使用されるいくつかのコマンドを含む。
【０１２７】
本開示の上記の実施形態では、各実施形態の説明はそれぞれの重点が異なり、ある実施形態で詳細に説明していない部分に関しては、他の実施形態の関連する説明を参照することができる。
【０１２８】
本出願で提供されるいくつかの実施形態では、開示する装置は他の方式で実装され得ることを理解されたい。上記で説明した装置実施形態は、例示的なものにすぎない。たとえば、ユニット区分は、論理機能区分にすぎず、実際の実装形態では他の区分であってもよい。たとえば、複数のユニットまたは構成要素は別のシステムに組み合わされるかもしくは統合されてもよく、または、いくつかの特徴は無視されるかもしくは実行されなくてもよい。加えて、表示されたまたは論じられた相互結合もしくは直接結合または通信接続は、いくつかのインターフェースを使用することによって実装され得る。ユニットまたはモジュールの間の間接結合または通信接続は、電子形態または他の形態で実装され得る。
【０１２９】
別個の部分として説明されるユニットは、物理的に分離されていてもよく、物理的に分離されていなくてもよく、ユニットとして表示される部分は、物理ユニットであってもよく、物理ユニットでなくてもよく、1つの場所に位置してもよく、または複数のネットワークユニット上に分散されていてもよい。ユニットのいくつかまたはすべては、実施形態の解決策の目的を達成するための実際のニーズに従って選択され得る。
【０１３０】
加えて、本出願の実施形態における機能ユニットは、1つの処理ユニットに統合されてもよく、またはユニットの各々が物理的に単独で存在してもよく、または2つ以上のユニットが1つのユニットに統合される。統合ユニットは、ハードウェアの形態で実装されてもよく、またはソフトウェア機能ユニットの形態で実装されてもよい。
【０１３１】
上記の説明は、本開示の好ましい実施形態にすぎず、当業者は、本開示の趣旨から逸脱することなく様々な改善および改良を行うことができ、このような改善および改良も、本開示の保護範囲に入ることに留意されたい。
【符号の説明】
【０１３２】
111  検出ユニット
113  第1の決定ユニット
115  第2の決定ユニット
201  端末
203  サーバ
401  第1の空間位置
402  空間領域
403  候補空間位置
501  第1の空間位置
502  空間領域
503  包囲リング
504  候補空間位置
601  第1の制御オブジェクト
602  空間
603  包囲リング
604  候補空間位置
701  第1の空間位置
702  空間領域
703  包囲リング
704  候補空間位置
801  第1の空間位置
802  空間領域
901  第3の空間位置
902  第2の制御オブジェクト
903  第1の空間位置
1201  プロセッサ
1203  メモリ
1205  伝送装置
1207  入力/出力デバイス
a1、a2、a3  角度
H15  未占用候補空間位置
M1  ターゲットオブジェクト
NPC1、NPC2、NPC3、NPC4  NPC
r1、r2、r3  半径
【図１】
0006973753.tif 000002
【図２】
0006973753.tif 000003
【図３】
0006973753.tif 000004
【図４】
0006973753.tif 000005
【図５】
0006973753.tif 000006
【図６】
0006973753.tif 000007
【図７】
0006973753.tif 000008
【図８】
0006973753.tif 000009
【図９】
0006973753.tif 000010
【図１０】
0006973753.tif 000011
【図１１】
0006973753.tif 000012
【図１２】
0006973753.tif 000013