JP2007164252A - 仮想空間のオブジェクトを管理するシステム - Google Patents

仮想空間のオブジェクトを管理するシステム Download PDF

Info

Publication number
JP2007164252A
JP2007164252A JP2005356072A JP2005356072A JP2007164252A JP 2007164252 A JP2007164252 A JP 2007164252A JP 2005356072 A JP2005356072 A JP 2005356072A JP 2005356072 A JP2005356072 A JP 2005356072A JP 2007164252 A JP2007164252 A JP 2007164252A
Authority
JP
Japan
Prior art keywords
order
object management
management device
target area
key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005356072A
Other languages
English (en)
Inventor
Hiroki Kato
裕樹 加藤
Yoichiro Serita
陽一郎 芹田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Priority to JP2005356072A priority Critical patent/JP2007164252A/ja
Priority to US11/635,393 priority patent/US7689683B2/en
Publication of JP2007164252A publication Critical patent/JP2007164252A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/5526Game data structure
    • A63F2300/5533Game data structure using program state or machine event data, e.g. server keeps track of the state of multiple players on in a multiple player game
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/80Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
    • A63F2300/8082Virtual reality

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】複数のオブジェクト管理装置によって、仮想空間内のオブジェクトを分散管理させる際に、注目オブジェクトがどのオブジェクト管理装置によって管理されているかを簡便な処理によって特定でき、処理負荷を軽減できるオブジェクト管理システムを提供する。
【解決手段】順序付きの部分空間領域に分割された仮想空間内のオブジェクトの少なくとも一部を管理の対象として、管理の対象の候補となるオブジェクトには、部分空間領域に関連する順序との関係において定められる順序キーがクライアント装置で算出され、この順序キーを利用して、管理の対象の候補となるオブジェクトのうち、管理の対象となるオブジェクトを選択的に定めるオブジェクト管理装置である。
【選択図】図1

Description

本発明は、コンピュータを用いて、仮想空間内のオブジェクトを管理するオブジェクト管理システムに関する。
ゲームやチャットプログラム等において、仮想的な空間を設定し、当該仮想的な空間内に配置された各種のオブジェクトを操作する等の処理が行われることがある。例えば、ネットワークゲームのように複数のプレイヤが参加するゲームでは、各プレイヤがゲーム空間として、仮想空間内の情報を共有し、このゲーム空間内に、プレイヤオブジェクトとして参加する。そして例えばある位置に配置されたアイテムのオブジェクト(アイテムオブジェクト)を取得する操作をしたり、他のプレイヤオブジェクトに対して攻撃をするなどの操作をしたり、といったことを行う。
この場合に、仮想空間内の各オブジェクトの位置や属性情報などは、オブジェクト管理装置として動作するコンピュータが管理している。
しかしながら、近年では、ゲーム等、仮想空間を利用するアプリケーションの内容が高度化しており、仮想空間内に配置されるオブジェクトの数も増大している。また、例えばユーザのオブジェクトがアイテムのオブジェクトの配置された位置に移動して、アイテムオブジェクトを取得するなどの制御を行う場合、ユーザのオブジェクトは近辺に存在するアイテムオブジェクトを知るために、ユーザのオブジェクトの近辺に存在するアイテムオブジェクトを仮想空間内のオブジェクトを管理するオブジェクト管理装置に問い合わせる。また、必要に応じてオブジェクト管理装置が、アイテムオブジェクトの除去やユーザオブジェクトへの属性の付与といったオブジェクト間のインタラクションの処理を行うこととなる。あるいは、仮想空間内に存在する移動オブジェクト間の衝突検出などオブジェクト管理装置が行い、衝突が検出されたオブジェクトに対して衝突通知を行う場合もある。このような処理はオブジェクトの数の増大や、管理すべき仮想空間が広がるほど、処理の機会、処理にかかる計算時間が増大し、一つのオブジェクト管理装置によって仮想空間内のオブジェクトの管理を行うことが困難になりつつある。
一方で、例えば複数のオブジェクト管理装置によって、それぞれ異なる種類のオブジェクトを分散して管理させる場合、上述の例のようにユーザのオブジェクトがアイテムオブジェクトを取得するという処理を行うためには、ユーザオブジェクトと、アイテムオブジェクトとをそれぞれ管理する複数のオブジェクト管理装置間でユーザオブジェクトの位置とアイテムオブジェクトの位置とを比較するための情報を相互に通信する必要があるなど、処理が一般に複雑になる。また、オブジェクトが頻繁に仮想空間内を移動するアプリケーションでは、該オブジェクトが移動するたびに、移動先の領域を管理するオブジェクト管理装置を探す必要が生じ、そのための処理が一般に複雑になる。
本発明は上記実情に鑑みて為されたもので、複数のオブジェクト管理装置によって、仮想空間内のオブジェクトを分散管理させる際に、注目オブジェクトがどのオブジェクト管理装置によって管理されているかを簡便な処理によって特定でき、処理負荷を軽減できるオブジェクト管理システムを提供することを、その目的の一つとする。
上記従来例の問題点を解決するための本発明は、順序が規定された複数の部分空間に分割されている仮想空間内の位置を指定して、当該指定した位置にオブジェクトを配置する要求を行う、少なくとも一つのクライアント側装置と、前記少なくとも一つの部分空間を対象領域として、当該対象領域内のオブジェクトを管理の対象とし、管理の対象となったオブジェクトに係る処理を実行する、少なくとも一つのオブジェクト管理装置とを含むオブジェクト管理システムであって、前記クライアント装置において、前記オブジェクト管理装置による管理の対象の候補となるオブジェクトに対して、前記部分空間の各々との順序関係を定義可能な順序キーが算出され、前記クライアント装置にて算出された順序キーと、対象領域に含まれる部分空間との順序関係に基づいて、前記オブジェクト管理装置がクライアント装置から要求されたオブジェクトに係る処理を実行するか否かを判断し、実行すると判断した場合に、前記要求されたオブジェクトに係る処理を実行することを特徴としている。
また、本発明の一態様は、順序が規定された複数の部分空間に分割されている仮想空間内での位置を表す位置情報に関連づけられたオブジェクトの少なくとも一部を管理の対象として、管理の対象となったオブジェクトに係る処理を実行するオブジェクト管理装置であって、前記管理の対象の候補となるオブジェクトには、前記部分空間の各々との順序関係を定義可能な順序キーが関連づけられ、前記部分空間の少なくとも一つを対象領域として、要求されたオブジェクトに係る処理を実行するか否かを、当該オブジェクトの順序キーと前記対象領域に含まれる部分空間との順序関係に基づいて判断し、実行すると判断した場合に、前記要求されたオブジェクトに係る処理を実行することを特徴としている。
ここで前記部分空間の各々との順序関係を定義可能な順序キーと、当該順序キーを含む識別情報とに関連づけられて、その対象領域が設定され、前記要求されたオブジェクトに係る処理を実行するか否かを、当該オブジェクトの順序キーと前記対象領域に含まれる部分空間との順序関係に基づいて判断することとしてもよい。また、前記部分空間の順序は、Z順序によって規定されてもよい。
さらに当該オブジェクト管理装置が、前記部分空間の各々との順序関係を定義可能な順序キーに関連づけられ、オブジェクトに係る処理を実行するか否かを判断する際に、当該関連づけられた順序キーに基づいて特定される対象領域内のオブジェクトであるか否かによって判断を行なっており、前記特定される対象領域を、連続したNセットの部分空間セットに分割し、当該分割に係る部分空間セットのいずれかを当該オブジェクト管理装置の対象領域とし、他のN−1個の部分空間セットの各々については、他のオブジェクト管理装置の対象領域とすることとしてもよい。
また、前記部分空間の各々との順序関係を定義可能な順序キーと、当該順序キーを含む識別情報とに関連づけられて、その対象領域が設定され、前記オブジェクトに係る処理として、専らオブジェクト間のメッセージの配送処理を行い、前記識別情報が、メッセージの配送処理以外の処理を行うオブジェクト管理装置とに対する識別情報とは区別可能な識別情報として設定され、メッセージの配送処理以外の処理を行うオブジェクト管理装置のいずれかを同順オブジェクト管理装置として、当該同順オブジェクト管理装置と一致する順序キーに関連づけられており、指定されたオブジェクトに係るメッセージ配送処理が要求されたときに、当該指定されたオブジェクトの順序キーと前記対象領域に含まれる部分空間との順序関係に基づいて、当該指定されたオブジェクトへメッセージを配送するか否かを判断し、配送すると判断したときには、前記同順オブジェクト管理装置に対してメッセージの配送を要求し、配送しないと判断したときに、前記同順オブジェクト管理装置とは異なる他のオブジェクト管理装置に対してメッセージの配送を要求することとしてもよい。
さらに本発明の別の態様は、順序が規定された複数の部分空間に分割されている仮想空間内での位置を表す位置情報に関連づけられたオブジェクトの少なくとも一部を管理の対象として、管理の対象となったオブジェクトに係る処理を実行するオブジェクト管理装置を用いて、前記管理の対象の候補となるオブジェクトに、前記部分空間の各々との順序関係を定義可能な順序キーが関連づけられ、前記オブジェクト管理装置に、前記部分空間の少なくとも一つを対象領域として、要求されたオブジェクトに係る処理を実行するか否かを、当該オブジェクトの順序キーと前記対象領域に含まれる部分空間との順序関係に基づいて判断させ、実行すると判断した場合に、前記要求されたオブジェクトに係る処理を実行させることを特徴としている。
さらに本発明の別の態様は、コンピュータに、順序が規定された複数の部分空間に分割されている仮想空間内での位置を表す位置情報に関連づけられたオブジェクトの少なくとも一部を管理の対象として、管理の対象となったオブジェクトに係る処理を実行させるプログラムであって、前記部分空間の各々との順序関係を定義可能な順序キーが関連づけられた、前記管理の対象の候補となるオブジェクトに関する情報を取得する手順と、前記部分空間の少なくとも一つを対象領域として、要求されたオブジェクトに係る処理を実行するか否かを、当該オブジェクトの順序キーと前記対象領域に含まれる部分空間との順序関係に基づいて判断させ、実行すると判断した場合に、前記要求されたオブジェクトに係る処理を実行する手順と、を実行させることを特徴としている。
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係るオブジェクト管理システムは、図1に示すように、複数のコンピュータ装置10a,b…を含んで構成されている。これら複数のコンピュータ装置10は互いにネットワークを介して、通信可能に接続されている。また、これらのコンピュータ装置10はそれぞれ、制御部21、記憶部22、及び通信部23を含んで構成される。なお、ユーザが実際に操作を行うコンピュータ装置10では、このほか、ゲームコントローラや、マウス、キーボードなどの操作部と、ディスプレイなどの表示部を備えて構成されていてもよい(図1)。この場合、ユーザの操作を受け入れた操作部は、その内容を制御部21に伝達し、表示部は、制御部21からの指示に従って、画像や文字などを表示することとなる。
ここで制御部21は、CPU等のプログラム制御デバイスであり、記憶部22に格納されているプログラムに従って動作する。本実施の形態では、コンピュータ装置10がオブジェクトを仮想空間内に配置するよう要求し、当該オブジェクトに関する処理を要求する側(クライアント側)装置として動作するか、オブジェクトに関する処理を行う側の装置(オブジェクト管理装置)として動作するかによって、この制御部21の行う処理の内容は異なる。この制御部21の動作の具体例については後に詳しく述べる。
記憶部22は、RAMやROMなどのメモリ素子や、ハードディスク等を含んで構成されている。この記憶部22は、制御部21によって実行されるプログラムを格納するコンピュータ可読な記録媒体として動作する。また、この記憶部22は、制御部21の動作に必要となる種々のデータを保持するワークメモリとしても動作する。
通信部23は、ネットワークインタフェース等であり、制御部21から入力される指示に従って、種々のデータをネットワークを介して他のコンピュータ装置10に送出する。また、この通信部23は、他のコンピュータ装置10からネットワークを介して受信するデータを制御部21に出力する。
このオブジェクト管理システムでは、仮想空間に係る情報がオブジェクト管理装置として動作するコンピュータ装置10によって提供される。例えば、図2に示すような平面空間(X,Y座標軸で張られた空間)内での、少なくとも一つのオブジェクトの配置位置に関する情報が各コンピュータ装置10によって共有される。
また、各オブジェクトにはオブジェクトを識別するためにオブジェクトに固有に設定されるID情報(識別子)が関連づけられる。さらに、各オブジェクトには属性情報が関連づけられていてもよい。これらID情報や属性情報もまた、各コンピュータ装置10によって共有される。属性情報としては例えば、オブジェクトの種類を表す情報や、外見を規定する情報、その他、オブジェクトの種類に応じた種々の情報がある。ここでオブジェクトの種類に応じた情報としては、例えばゲームのプレイヤオブジェクトであれば、持ち物(インベントリー)の情報などがある。
[オブジェクト管理装置]
本実施の形態においては、これらコンピュータ装置10のうち少なくとも一つがオブジェクト管理装置として動作する。このオブジェクト管理装置として動作するコンピュータ装置10の制御部21は、図3に示すように、機能的には、仮想空間管理部31と、処理実行部32と、仮想空間分割処理部33とを含んで構成される。
仮想空間管理部31は、仮想空間を順序を規定した部分空間領域に分割して管理する。仮想空間管理部31は、例えば図2に示したように、仮想空間全体を4×4のマトリクスに分割して、Z順序(Z-Ordering、 Shashi Shekhar and Sanjay Chawla, Spatial Databases, Prentice Hall 2003を参照)で番号を割り当てる。ここでZ順序は、図4に示すような2×2のマトリクスにおいて、左下を「0」、右下を「1」、左上を「2」、右上を「3」とする順序である。4×4のマトリクスの場合、4×4のマトリクスを4つの2×2のマトリクスに分けて、その各2×2マトリクスの部分空間領域の下一桁の順序値を上記方法で定める。次に、各2×2マトリクスを一つのブロックとして、当該ブロックが2×2に配列されていることから、各ブロックに含まれる部分空間領域の順序値の下から2桁目の値を、上記方法で定める。すると、左上の部分空間領域の順序値は、「22」であり、以下、順次右に隣接する部分空間領域の順序値は、「23」、「32」、「33」となる(図2参照)。
なお、対象となる仮想空間が3次元である場合には、ある平面に射影した座標を対象空間として扱うことができる。
また、例えば、ユーザのチャットを扱う仮想空間では、あらかじめ蓄積されたチャットで使用された単語のデータベースに基づいて、数量化III類などの方法により2次元空間に写像し、各ユーザのチャットの内容に基づいて2次元空間上の位置に変換することで対象空間として扱うことができる。
本実施の形態のオブジェクト管理装置は、仮想空間内に配置されたオブジェクトの少なくとも一部を管理の対象として、管理の対象となったオブジェクトに係る情報を記憶部22内にデータベースとして保持するとともに、当該オブジェクトに関する処理を実行する。以下の説明では、オブジェクトに関する処理の一例として、オブジェクト間でのメッセージ交換の処理を行うものとする。
本実施形態の特徴的なことの一つは、各オブジェクト管理装置の識別情報の少なくとも一部が、該オブジェクト管理装置が処理の対象領域とする任意の大きさの部空間領域の順序値に基づいて割り当てられ、各オブジェクト管理装置は、自身の順序値と各部分空間領域の順序値との順序関係に基づいて、対象領域を定めることである。ここで順序関係とは、例えば順序値を数値とすれば、大小関係であり、また例えば順序値が次の順序へのリンク等によって定められていれば当該リンクにより定まる順序である。ここでは簡単のため順序値は数値であるとしているので、各オブジェクト管理装置は、自身の順序値から次の大きさの値を持つオブジェクト管理装置の順序値までの部分領域の集合(セット)を、対象領域として管理することになる。
オブジェクト管理装置は、例えば、各オブジェクトについて、オブジェクトを識別するID情報と、オブジェクトの配置位置を表す座標情報と、属性情報と、配置要求を行ったクライアント側装置を特定する情報(例えばそのコンピュータ装置10のネットワークアドレス)とを関連づけて、オブジェクトデータベースとして記憶部22に格納し(図5)、オブジェクトを管理する。
また、クライアント装置や、オブジェクト管理装置は、部分領域の順序値を宛先としてメッセージを送信してもよい。このメッセージは、宛先となった順序値に対応する部分領域を管理する(対象領域に含む)オブジェクト管理装置に配送されるよう、配送制御が行なわれる。
例えば、順序値「00」であらわされるオブジェクト管理装置と、順序値「10」であらわされるオブジェクト管理装置がネットワーク上に存在した場合には、オブジェクト管理装置「00」は、部分領域「00」「01」「02」「03」を管理し、オブジェクト管理装置「10」は、部分領域「10」「11」「12」「13」「20」「21」「22」「23」「30」「31」「32」「33」を管理し、順序値「11」を宛先としたメッセージは、オブジェクト管理装置「10」に配送される。つまり、オブジェクト管理装置は、オブジェクトの順序値と、自己の対象領域に含まれる部分空間領域に割り当てた順序値との順序関係に基づいて、オブジェクトに係る処理を実行するか否かを判断している。
またオブジェクト管理装置が複数になった場合には、オブジェクト管理装置間でメッセージをルーティングして転送する必要があるので、オブジェクト管理装置として動作するコンピュータ装置10は、そのためのルーティングテーブルを保持することになる。このルーティングテーブルも、順序値との関係で設定が行われる。このルーティングテーブルの内容例や、それを用いた処理例については、後に述べる。
処理実行部32は、クライアント側装置から受信した要求に応じた処理を実行する。例えば、この処理実行部32は、オブジェクトの配置要求に応じて、仮想空間内にオブジェクトを配置する処理を行なう。また、この処理実行部32は、あるオブジェクトを注目オブジェクトとして、当該注目オブジェクトの周囲のオブジェクトを検索する処理や、オブジェクト間の衝突判定を行う処理を実行する。これらの処理の例については、後に述べる。
仮想空間分割処理部33は、処理負荷に関する情報を所定のタイミングごとに(例えば一定の時間ごとに定期的に)取得する。そして当該処理負荷に関する情報が、所定の処理負荷を越えることを表すものとなったときに、クライアント側装置の一つに対して、オブジェクト管理装置として動作をするよう要求する処理(仮想空間分割処理)を実行する。
ここで処理負荷に関する情報としては例えば、管理の対象となっているオブジェクトの数であってもよい。オブジェクトの数による場合、管理の対象となっているオブジェクトの数が、予め定めたしきい値を越えたときに、仮想空間分割処理を実行することとなる。この仮想空間分割処理についても後に述べる。
[クライアント側装置]
一方、クライアント側装置として動作するコンピュータ装置10の制御部21は、機能的には、図6に示すように、オブジェクト配置要求部41と、オブジェクト処理部42と、転換部43と、を含んで構成される。また、このクライアント側装置として動作するコンピュータ装置10の記憶部22には、少なくとも一つのネットワーク上のオブジェクト管理装置のアドレスの値が格納されている。
オブジェクト配置要求部41は、オブジェクト管理装置に対して、オブジェクトの配置要求を行って仮想空間内にオブジェクトを配置させる。クライアント側装置は、仮想空間領域内でのオブジェクトの位置(座標情報)に基づき、オブジェクトが存在する部分領域の順序値を算出する。そしてオブジェクトの仮想空間の位置から算出された順序値を宛先として、オブジェクト管理装置への配置要求を送信する。
また、このオブジェクト配置要求部41は、オブジェクトが仮想空間内を移動するなどして、配置位置が変化した場合、すなわち仮想空間内の位置から算出される順序値が変化した場合には、移動前の以前の順序値を宛先としてオブジェクトの移動通知を行い、移動後の新たな順序値を宛先としてオブジェクトの配置要求を行う。
オブジェクト処理部42は、例えば利用者の指示によって、配置したオブジェクトからのメッセージとして、オブジェクトの周囲に存在する他のオブジェクトを検索するべき旨の指示を受けて、当該指示に基づいて、その要求元のオブジェクトの存在する部分領域の順序値と、当該順序値の部分領域に隣接する部分領域の順序値とを演算して、当該演算によって得た各順序値を宛先として、当該部分領域内に存在するオブジェクトの一覧を要求するメッセージを送信するなど、オブジェクトに関する処理を実行する。
転換部43は、オブジェクト管理装置として動作するべき旨の要求を受信して、オブジェクト管理装置としての処理を起動する。この結果、コンピュータ装置10は、クライアント側装置としての処理と併せて、オブジェクト管理装置としての処理の実行を開始する。
なお、ここまでの説明において、宛先としては、順序値だけでなく、所定の方法で定められる識別キーを併せて利用することとしてもよい。識別キーを利用することで、後述するメッセージ配送において、特定のオブジェクト管理装置(あるいは後述のメッセージ転送装置)にメッセージが集中することを防ぐことが可能になる。この識別キーには、オブジェクトの情報から生成される識別キーを用いてもよく、あるいは、オブジェクトの配置要求を行なったクライアントの識別キーを用いてもよい。
以下、本実施の形態のシステムの動作について、実際の動作例を用いて説明をする。ここではオブジェクトが配置される仮想空間は、図2に示したように4×4の部分空間領域に分割され、図2に示したように順序値が割り当てられているものとする。なお、ここではメッセージの配送要求は、オブジェクト管理装置に割り当てられている識別情報を宛先として行う。つまり、オブジェクト管理装置は、それぞれに割り当てられている識別情報宛てのメッセージが到来したときに、当該到来したメッセージを受信する。また、クライアント側装置には、少なくとも一つのネットワーク上のオブジェクト管理装置のアドレスの値が予め設定されている。
処理開始の時点では、オブジェクト管理装置として動作するコンピュータ装置10は、一つで構わない。この場合、当該オブジェクト管理装置は、すべての部分空間領域のオブジェクトを管理することとなる。ここではオブジェクト管理装置の識別情報としては、オブジェクト管理装置が管理する部分空間領域の順序値のうち、最小の順序値を関連づけておくものとする。つまり、当初、すべての部分空間領域のオブジェクトを管理するオブジェクト管理装置には、識別情報の順序キーとして順序値「00」が割り当てられる。また、識別キーとして順序値とは関わりのない固有の値を発行して割り当てる。ここでは識別キーとして「00」が割り当てられるものとする。この識別キーはオブジェクト管理装置のネットワークの位置情報(例えば、IPアドレス)に基づいて生成することもできる。このようにすると、後述するルーティングテーブル作成時に識別キーを利用することでネットワーク距離に基づいたメッセージ配送の最適化が可能となる。以下、識別情報を、順序値と識別キーとをこの順でコロン(:)によって区切って、「00:00」と記述することとする。
以下、このオブジェクト管理装置は、クライアント側装置として動作するコンピュータ装置10からのオブジェクト配置要求や、オブジェクトの周囲のオブジェクトを検索する処理や、オブジェクト間の衝突判定を行う処理を実行する。
クライアント側装置は、オブジェクトの仮想空間の位置から算出された順序値を宛先として、任意のオブジェクト管理装置に配置要求を送信する。既に述べたように、ここでの宛先の情報としては、順序値だけでなく識別キーを含む。すなわち、クライアント側装置は、予め保持している任意のオブジェクト管理装置のアドレスを送信先として、宛先としての識別情報を含むオブジェクトの配置要求を送信することとなる。そして、この要求を受け取ったオブジェクト管理装置は、配置要求に含まれる宛先に基づいて配置要求を処理すべきオブジェクト管理装置を判断し、該当するオブジェクト管理装置に転送する。なお、オブジェクト管理装置は、宛先が自己を示すと判断した場合、自己で配置要求を処理することとなる。
この時点では、オブジェクト管理装置は一つだけなので、識別情報「00」の順序値のオブジェクト管理装置が当該配置要求に応答する。配置要求を行う時点では、クライアント側装置は、当該配置要求にかかわるオブジェクトの管理を行うオブジェクト管理装置を識別できない。しかし、配置すべき仮想空間情報から算出された順序値を用いることで、後述するルーティングテーブルに基づいたメッセージ配送方法に従い、当該オブジェクトが存在する領域を管理するオブジェクト管理装置にメッセージが配送される。
また、オブジェクト管理装置は、オブジェクトのID情報と、配置位置を表す座標情報と、属性情報と、配置要求を行ったクライアント側装置を特定する情報(例えばそのコンピュータ装置10のネットワークアドレス)とを関連づけて、オブジェクトデータベースとして記憶部22に格納する(図5)。
こうして、例えば図7に示すように、順序値「03」に対応するオブジェクトα、β、及びγ、順序値「12」に対応するオブジェクトθ、順序値「30」に対応するオブジェクトδが配置され、順序値「00」をもつオブジェクト管理装置Aがオブジェクトα、β、γを管理し、順序値「12」をもつオブジェクト管理装置Dがオブジェクトθを管理し、順序値「22」をもつオブジェクト管理装置Cがオブジェクトδを管理することとなる。
次にここで、オブジェクトθが、図7に示すように、オブジェクトθの近辺として、オブジェクトθの位置から一定の距離r内の領域(図7において破線の円で示された領域X)にいるオブジェクトとのメッセージ交換を要求する場合、オブジェクトθの配置要求をしたクライアント側装置では、上記領域Xを含む部分領域の順序値「03」、「12」、「21」、「30」を算出する。そして予め格納されているオブジェクト管理装置のアドレスに対して、領域X内にあるオブジェクトの情報を要求するメッセージを送信する。ここでは、オブジェクト管理装置Aがメッセージを受信し、各順序値に対応するオブジェクト管理装置に対してメッセージが配送される。
ここではメッセージは、順序値「03」の部分領域についてはオブジェクト管理装置A自身へ、順序値「12」,「21」の部分領域についてはオブジェクト管理装置Dへ、「30」の部分領域についてはオブジェクト管理装置Cへそれぞれ配送される。それぞれのオブジェクト管理装置A,C,Dは、受信したメッセージに基づいて、該当領域にいるオブジェクトを自身のデータベースから検索し、該当するオブジェクトの情報(例えばオブジェクトのID情報や配置位置の情報等)を要求元のクライアント装置へ送信する。クライアント装置では、この送信された情報をオブジェクトθに通知する。
これにより、3次元仮想空間アプリケーションにおける、いわゆるインタレストマネージメント処理を実現できる。これによりオブジェクトθがユーザオブジェクトである場合には、その視界を描画するために、その視界にあるオブジェクトの情報を取得することができる。また、チャットアプリケーションでは、ユーザが入力した現在のチャット内容に近い他のユーザを探すことができる。
また、仮想空間内でのオブジェクトの衝突判定を行いたい場合には、各オブジェクト管理装置において、各オブジェクト管理装置のデータベースに登録されているオブジェクトの位置情報から衝突判定を行い、衝突が発生している場合には、各オブジェクトに衝突通知を行う。
さらに、例えばオブジェクトθが、順序値「12」の部分領域から、順序値「03」の部分領域へ移動する場合、当該オブジェクトθを管理するクライアント側装置では、移動前の順序値「12」を宛先としてオブジェクトθの移動通知を送信する(図8のS11)。この移動通知は、順序値「12」の部分領域を管理するオブジェクト管理装置Dによって受信される。オブジェクト管理装置Dでは、オブジェクトθの移動通知を受けて、データベースを参照し、オブジェクトθに関するエントリーを削除する(S12)。
また、クライアント側装置は、移動後の順序値「03」を宛先としてオブジェクトθの配置要求を行なう(S13)。この配置要求は、順序値「03」の部分領域を管理するオブジェクト管理装置Aによって受信される。オブジェクト管理装置Aでは、オブジェクトθの配置要求を受けて、データベースに、オブジェクトθに関するエントリーを追記する(S14)。これにより、オブジェクトの移動が実現される。なお、移動通知と配置要求の順序は、どちらを先としてもよい。
[仮想空間分割処理]
ここで、オブジェクト管理装置における仮想空間分割処理について述べる。仮想空間分割処理は、次のようにして行われる。オブジェクト管理装置は、現在(仮想空間分割処理の開始時点で)管理しているオブジェクトを、配置位置の順に並べ替える。この並べ替えの結果は、模式的には、図9に示すように、数直線上にオブジェクトを配列する処理に相当する。オブジェクト管理装置は、現在管理している部分空間領域の順序値を小さいものから大きいものへと昇順に並べ替えた数直線上で、各部分空間領域に所在しているオブジェクトを配置する。そして、この数直線上、つまり、現在管理している部分空間領域の順序値の小さいものから順に、昇順に、注目領域として選択しつつ、注目領域に属しているオブジェクトの数を累算する。そして、オブジェクトの総数Nに対して、この累算値がN/2を越えた時点での注目領域の順序値を分割ポイントとして取得する。
具体例として図9に示す場合、仮想空間分割処理の開始時点で管理しているオブジェクトの総数が12であるとする。この場合、累算値が12/2=6を越える順序値を探索することになる。この例では、部分空間領域の順序値「00」から昇順に、順序値「03」に関連づけられた部分空間領域までオブジェクトの数を累算したときに「6」を越えるので、順序値「03」が分割ポイントとなる。
オブジェクト管理装置は、分割ポイントよりも順序値の大きい部分空間領域に属しているオブジェクトの配置要求を行なったクライアント装置としてのコンピュータ装置10の一つに対して、オブジェクト管理装置として動作するよう要求する。ここでオブジェクト管理装置となるよう要求する相手となるコンピュータ装置10の選択は、例えば、分割ポイントよりも順序値の大きい部分空間領域に属しているオブジェクトに係るクライアント装置としてのコンピュータ装置10のすべてに対してオブジェクト管理装置となるよう要求し、最も早く応答したコンピュータ装置10を選択することで行ってもよいし、分割ポイントよりも順序値の大きい部分空間領域に属しているオブジェクトのうち、順序値が最も小さい部分空間に属しているオブジェクト(それが複数あれば、例えば配置位置が所定の原点に最も近いもの)の配置要求を行なったクライアント装置としてのコンピュータ装置10を選択することで行ってもよい。
このとき、オブジェクト管理装置となるべき旨の要求には、新たなオブジェクト管理装置に割り当てられるべき順序値の情報を含む。ここで新たなオブジェクト管理装置に割り当てられるべき順序値は、オブジェクト管理装置となるべき旨の要求を行ったオブジェクト管理装置が管理していた部分空間領域に割り当てられている順序値のうち、分割ポイントの順序値を超える最小の順序値に基づいて(例えば当該順序値そのものに)定める。
ここでの例では、分割ポイントの順序値が「03」であり、識別情報に含まれる順序キーが順序値「00」であるオブジェクト管理装置の対象領域に含まれる部分空間領域の順序値のうち、この順序値「03」を超える最小の順序値が「10」であるので、新たなオブジェクト管理装置に割り当てられるべき順序キーは「10」となる。
各オブジェクト管理装置は、オブジェクト管理装置に割り当てられている順序値以上の順序値に対応する部分空間領域であって、他のオブジェクト管理装置によって管理されていない部分空間領域を管理対象とする。つまり、順序値「00」のオブジェクト管理装置は、「00」、「01」、「02」、「03」の4つの部分空間からなる部分空間セットAを対象領域とし、この対象領域内のオブジェクトを管理の対象とし、新たな順序キー「10」のオブジェクト管理装置は、「10」以上の順序値に関連づけられている12の部分空間領域からなる部分空間セットBを対象領域とし、当該対象領域内のオブジェクトを管理対象とする(図10(a),(b))。
これにより、各オブジェクト管理装置は、6ずつのオブジェクトに係る処理を行うようになり、各オブジェクト管理装置の処理負荷が軽減される。また、互いに異なるオブジェクト管理装置によって管理されるオブジェクト間のメッセージの送受を実現するため、各オブジェクト管理装置は、メッセージの配送先を特定するためのルーティングテーブルを設定して保持する。
以下、例えば、負荷増大に伴う分割ポイントとして順序値「21」が決定されると、順序値「22」以上の部分空間領域内Cのオブジェクトを管理するオブジェクト管理装置が設定され(図10(c))、さらにその後、分割ポイントとして順序値「11」が決定されると、「12」から「21」までの部分空間領域内Dのオブジェクトを管理するオブジェクト管理装置が設定される(図10(d))。こうして、当初のオブジェクト管理装置の対象領域が、連続した2つの部分空間セットに分割され、そのうちの一つが当初のオブジェクト管理装置の対象領域となり、他方が他の(新たな)オブジェクト管理装置の対象領域となる。
なお、ここでは対象領域を連続する2つの部分空間セットに分割する例について述べたが、分割ポイントを複数設定して、N個の部分空間セットに分割してもよい。この場合は、(N−1)個の新たなオブジェクト管理装置に各部分空間セットが割り当てられる。
[ルーティングテーブルの設定]
ここでルーティングテーブルの設定例について、順序キー「10」のオブジェクト管理装置を設定した時点での処理を例として説明する。ルーティングテーブルは、各オブジェクト管理装置に割り当てられた順序値と識別キーとを用いて設定される。すなわち、例えば順序キー「X」のオブジェクト管理装置のルーティングテーブルにおいては、この順序値に前方一致(上位桁側が一致)する順序値のうち、最長一致する順序値が割り当てられている他のオブジェクト管理装置であって、識別情報(順序値と識別キーとを組とした値)同士の差が最も小さいオブジェクト管理装置へメッセージを配送することを定める。
上述のように、順序値「00」のオブジェクト管理装置と、順序値「10」のオブジェクト管理装置とがある場合、それぞれに設定されるルーティングテーブルは、図11(a),(b)に示すようなものようになる。ここでのルーティングテーブルは、縦軸方向に、前方一致する桁数を表し、横軸方向に一致しない最初の桁の数値を表したテーブルとする。従って、順序値「00」のオブジェクト管理装置に設定されるルーティングテーブルは、前方一致する桁数が「0」、一致しない値が「1」である欄に、順序値「10」のオブジェクト管理装置を特定する情報(識別情報)が設定されたものとなる。
また、順序キー「10」のオブジェクト管理装置に設定されるルーティングテーブルは、前方一致する桁数が「0」、一致しない値が「0」である欄に、順序キー「00」のオブジェクト管理装置を特定する情報(識別情報)が設定されたものとなる。
各オブジェクト管理装置は、メッセージの配送が要求されたときに、当該要求に係るメッセージの宛先より小さい順序キーに関連するオブジェクト管理装置のうち、順序キーが最大の値となっているオブジェクト管理装置に対してメッセージを配送する。すなわち、メッセージの配送要求を受けたオブジェクト管理装置は、当該オブジェクト管理装置の順序キーK0と、ルーティングテーブルに設定されている他のオブジェクト管理装置の順序キーK1,…Knとを取得する。そして、取得した順序キーK0,K1…Knと、要求に係るメッセージの宛先の順序キーKmとを比較し、Ki<Kmである順序キーを選択する。さらに、選択した順序キーのうち、最大の値である順序キーKmaxを選択して、当該選択した順序キーKmaxがK0、つまりメッセージの配送要求を受けたオブジェクト管理装置自身に割り当てられている順序キーに等しいか否かを調べる。ここで、Kmax=K0であれば、オブジェクト管理装置は、当該配送要求に係るメッセージを指定された宛先のオブジェクトに関連づけて記憶している、コンピュータ装置10を特定する情報を取得し、当該取得した情報で特定されるコンピュータ装置10へ、メッセージを送信する。
また、KmaxとK0とが等しくなければ、順序キーKmaxに対応するオブジェクト管理装置として動作しているコンピュータ装置10を特定する情報を取得し、当該取得した情報で特定されるコンピュータ装置10へ、配送要求とともに、メッセージを送信する。
また、この図11に示した例において、仮想空間分割処理によって順序値「11」に新たなオブジェクト管理装置が設定されると、これに伴って図12(a)から(c)に示すように、ルーティングテーブルが変更される。
すなわち、順序値「00」のオブジェクト管理装置に設定されるルーティングテーブルは、前方一致する桁数が「0」、一致しない値が「1」である欄に、順序値「10」のオブジェクト管理装置を特定する情報が設定され、同じく前方一致する桁数が「0」、不一致の値が「1」である欄に順序値「11」のオブジェクト管理装置を特定する情報が設定される(図12(a))ようになる。
また、順序値「10」のオブジェクト管理装置に設定されるルーティングテーブルは、前方一致する桁数が「0」、一致しない値が「0」である欄に、順序値「00」のオブジェクト管理装置を特定する情報(識別情報)が設定され、さらに、前方一致する桁数が「1」、一致しない値が「1」である欄に順序値「11」のオブジェクト管理装置を特定する情報が設定される(図12(b))ようになる。
さらに、順序値「11」のオブジェクト管理装置に設定されるルーティングテーブルは、前方一致する桁数が「0」、一致しない値が「0」である欄に、順序値「00」のオブジェクト管理装置を特定する情報(識別情報)が設定され、さらに、前方一致する桁数が「1」、一致しない値が「0」である欄に順序値「10」のオブジェクト管理装置を特定する情報が設定される(図12(c))ようになる。
[メッセージ転送装置]
なお、ここまでの説明では、オブジェクト管理装置が、メッセージの転送を実行する例について説明したが、オブジェクト管理装置は、メッセージの転送だけでなく、管理の対象となっているオブジェクトに係るクライアント側装置からの要求を受けて、オブジェクトの配置位置の変更(すなわちオブジェクトの移動)や、オブジェクトの取得(オブジェクトの消去と属性情報の変更)など、種々の処理を行っており、ゲームやチャットの内容によっては、その処理負荷が高くなる場合もある。
そこで専らメッセージの転送を行うコンピュータ装置10(メッセージ転送装置)を、オブジェクト管理装置とは別に、仮想空間内に設定してもよい。
このメッセージ転送装置は、オブジェクト管理装置と略同様のものであるが、専らメッセージの転送に関する処理を実行するものであり、機能的には、図13に示すように、処理実行部51を含んで構成され、ルーティングテーブルを用いたメッセージの転送処理を実行する。
このメッセージ転送装置もまたオブジェクト管理装置と同様に、仮想空間内のいずれかの部分空間領域の順序値に関連づけられている。つまり、当該関連づけられた順序値の部分空間領域を管理するオブジェクト管理装置が、メッセージ転送装置となったコンピュータ装置10を特定する情報と、順序値とを関連づけて記憶している。
また、メッセージ転送装置となったコンピュータ装置10も、自己に割り当てられている順序値を記憶している。そしてメッセージ転送装置にも、ルーティングテーブルが設定され、このルーティングテーブルを参照して、メッセージの配送処理を行う。ここでのルーティングテーブルには、オブジェクト管理装置の識別情報の代りに、メッセージ転送装置の識別情報が含められる。
一方で、このメッセージ転送装置は、オブジェクトの移動や、消去、属性情報の変更などといったメッセージ転送以外の処理は行わない。
また、このメッセージ転送装置は、オブジェクト管理装置とペアとなって動作してもよい。このようにペアとなって動作する場合は、仮想空間内に配置されたオブジェクト管理装置の各々について、同一の順序値を識別情報に含むメッセージ転送装置が少なくとも一つ設定される。
この場合も、各メッセージ転送装置は、メッセージの配送が要求されたときに、当該要求に係るメッセージの宛先より小さい順序値に関連するメッセージ転送装置のうち、順序値が最大の値となっているメッセージ転送装置に対してメッセージを配送する。すなわち、メッセージの配送要求を受けたメッセージ転送装置は、当該メッセージ転送装置の順序値K0と、ルーティングテーブルに設定されている他のメッセージ転送装置の順序値K1,…Knとを取得する。そして、取得した順序値K0,K1…Knと、要求に係るメッセージの宛先の順序値Kmとを比較し、Ki<Kmである順序値を選択する。さらに、選択した順序値のうち、最大の値である順序値Kmaxを選択して、当該選択した順序値KmaxがK0、つまりメッセージの配送要求を受けたメッセージ転送装置自身に割り当てられている順序値に等しいか否かを調べる。ここで、Kmax=K0であれば、メッセージ転送装置は、順序値が共通している(同じ順序値を識別情報に含む)オブジェクト管理装置(同順オブジェクト管理装置)に、メッセージを転送する。そして当該転送を受けたオブジェクト管理装置が、当該配送要求に係るメッセージを指定された宛先のオブジェクトに関連づけて記憶している、コンピュータ装置10を特定する情報を取得し、当該取得した情報で特定されるコンピュータ装置10へ、メッセージを送信する。
また、メッセージ転送装置は、上記の判断においてKmaxとK0とが等しくなければ、ルーティングテーブルの設定に従い、配送要求に係るメッセージの宛先に含まれる順序値に前方一致する順序値のうち、最長一致する順序値が割り当てられている他のメッセージ転送装置であって、識別情報(順序値と識別キーとを組とした値)同士の差が最も小さいメッセージ転送装置へメッセージを配送する。また、識別キーを用いないで、順序値のみで識別情報を構成することもできる。この場合には、例えば、メッセージテーブルにおいて、メッセージ転送装置あるいはオブジェクト管理装置とのネットワーク距離が最小となるもののみをルーティングテーブルに登録し、順序値に基づく処理でメッセージの配送を行う。
例えば、図14に示すように、順序値「10」に対応する領域に、オブジェクト管理装置(識別情報10:00)と、2つのメッセージ転送装置(識別情報10:11と、10:22と)が設定されている場合であって、識別情報10:12のオブジェクト宛のメッセージが、他の順序値に係るメッセージ転送装置に送信された場合(S21)、当該メッセージは、メッセージ転送装置10:11に転送され(S22)、さらにオブジェクト管理装置10:00へ送信される(S23)。そして、オブジェクト管理装置が識別情報10:12のオブジェクトに係るコンピュータ装置10へとメッセージを送信する(S24)。
このようにメッセージ転送装置を用いると、管理対象外のオブジェクトへのメッセージ転送がメッセージ転送装置によって行われることとなって、オブジェクト管理装置は管理対象のオブジェクトに係るメッセージを取り扱うだけで済む。これによりオブジェクト管理装置の処理負荷をより軽減できる。
なお、図14では、Z順序の順序空間を表す数直線の端部同士を結合して無端状(ループ状)に図示している。
このようにメッセージ転送装置が設定される場合において、オブジェクト管理装置が、仮想空間分割処理を行うにあたり、新たなオブジェクト管理装置を設定する場合は、メッセージ転送装置の一つに対してオブジェクト管理装置となるよう要求することとしてもよい。
この際、仮想空間分割処理を行うオブジェクト管理装置は、同じ順序値に関連づけられている複数のメッセージ転送装置があるか否か(複数のメッセージ転送装置が設定されている部分空間領域があるか否か)を調べ、同じ順序値に関連づけられている複数のメッセージ転送装置がある場合に、当該複数のメッセージ転送装置のいずれか一つに対してオブジェクト管理装置となるよう要求する。これにより、メッセージ転送装置の設定のない部分空間領域ができないようにする。すなわちこの場合は、メッセージ転送装置の識別情報に含まれる順序値とは異なる順序値に関連づけられたオブジェクト管理装置となるよう指示してもよい。
この要求を受けたメッセージ転送装置(コンピュータ装置10)は、まず、要求を受けた時点での位置から退去する旨の通知を、オブジェクト管理装置に対して送信する。オブジェクト管理装置は、この通知を受けて、当該要求元となったメッセージ転送装置を仮想空間から除去する(識別情報を削除する)。次に、メッセージ転送装置として動作していたコンピュータ装置10は、要求に含まれていた順序値に対応する順序値の位置にオブジェクト管理装置として配置するべき旨の要求を、当該順序値に対応する順序値の領域を管理しているオブジェクト管理装置(オブジェクト管理装置となるべき旨の要求の送信元であるオブジェクト管理装置)に送信する。そして、これらのオブジェクト管理装置が、分割された各部分空間領域を、それぞれ管理するようになる。
また、仮想空間分割処理を行うオブジェクト管理装置は、分割ポイントが属している部分空間領域(例えば図10(b)の状態にあるとき、分割ポイント「21」は順序値「10」以上の領域に属している)に、複数のメッセージ転送装置が設定され、かつ、当該複数のメッセージ転送装置の一部が分割ポイントとなった順序値未満(又は以下)の順序値に関連づけられ、他の一部が分割ポイントとなった順序値以上の(又は順序値より大きい)順序値に関連づけられていることを条件として、つまり、分割ポイントで分割した後の各部分空間領域にそれぞれ少なくとも一つのメッセージ転送装置が設定されることとなることを条件として、仮想空間分割処理を実行することとしてもよい。そして、この条件が満足されない場合は、オブジェクト管理装置は、仮想空間分割処理を中断してもよい。
なお、メッセージ転送装置や、オブジェクト管理装置として動作するコンピュータ装置10が、当該動作を停止したか、ネットワークから接続を解除した場合は、一部の部分空間領域にメッセージが到達しなくなる。そこで、各コンピュータ装置10は、メッセージを受信したときには、その旨(ACK)を、メッセージの送信元へ返信するものとし、メッセージの送信後、所定の時間(タイムアウト)までにACKが受信されない場合は、再度メッセージの送信を行い、この再度の送信後、タイムアウトまでにACKが受信されない場合は、ルーティング情報を更新するべき旨の要求を、各オブジェクト管理装置へ一斉に(またはネットワーク上の各コンピュータ装置10へ一斉に)送信するようにしてもよい。各オブジェクト管理装置では、そのうちの一つが初期的に識別情報「00:00」となって、仮想空間全体を管理することとなり、以降、仮想空間分割処理を順次実行しつつ、ルーティングテーブルや、部分空間領域の再構成を行う。
このように本実施の形態によると、オブジェクト管理装置が、仮想的な空間上に割り当てられた順序値に基づいて、管理対象の領域を画定する。これによって、複数のオブジェクト管理装置によって、仮想空間内のオブジェクトを分散管理させる際に、注目オブジェクトがどのオブジェクト管理装置によって管理されているかを簡便な処理によって特定でき、処理負荷を軽減できる。
本発明の実施の形態に係るオブジェクト管理システムの構成例を表すブロック図である。 本発明の実施の形態に係るオブジェクト管理システムによって管理される仮想空間の例を表す説明図である。 本発明の実施の形態に係るオブジェクト管理装置として動作するコンピュータ装置の機能ブロック図である。 Z順序の例を表す説明図である。 本発明の実施の形態に係るオブジェクト管理装置が保持するオブジェクトデータベースの内容例を表す説明図である。 本発明の実施の形態に係るクライアント側装置として動作するコンピュータ装置の機能ブロック図である。 本発明の実施の形態に係るオブジェクト管理システムにおいて、オブジェクトが近傍のオブジェクトを探索する際の状態例を表す説明図である。 本発明の実施の形態に係るオブジェクト管理システムにおいて、オブジェクトが移動したときの処理の例を表すフロー図である。 本発明の実施の形態に係るオブジェクト管理装置が管理しているオブジェクトの配置例を表す説明図である。 本発明の実施の形態に係るオブジェクト管理装置による仮想空間分割処理の動作概要を表す説明図である。 本発明の実施の形態に係るオブジェクト管理システムで利用されるルーティングテーブルの例を表す説明図である。 本発明の実施の形態に係るオブジェクト管理システムで利用されるルーティングテーブルの変化例を表す説明図である。 本発明の実施の形態に係るメッセージ転送装置として動作するコンピュータ装置の機能ブロック図である。 本発明の実施の形態に係るオブジェクト管理システムにおけるメッセージのルーティングの例を表す説明図である。
符号の説明
10 コンピュータ装置、21 制御部、22 記憶部、23 通信部、31 仮想空間管理部、32,51 処理実行部、33 仮想空間分割処理部、41 オブジェクト配置要求部、42 オブジェクト処理部、43 転換部。

Claims (8)

  1. 順序が規定された複数の部分空間に分割されている仮想空間内の位置を指定して、当該指定した位置にオブジェクトを配置する要求を行う、少なくとも一つのクライアント側装置と、
    前記少なくとも一つの部分空間を対象領域として、当該対象領域内のオブジェクトを管理の対象とし、管理の対象となったオブジェクトに係る処理を実行する、少なくとも一つのオブジェクト管理装置とを含むオブジェクト管理システムであって、
    前記クライアント装置において、前記オブジェクト管理装置による管理の対象の候補となるオブジェクトに対して、前記部分空間の各々との順序関係を定義可能な順序キーが算出され、
    前記オブジェクト管理装置は、前記クライアント装置にて算出された順序キーと、自己の対象領域に含まれる部分空間との順序関係に基づいて、クライアント装置から要求されたオブジェクトに係る処理を実行するか否かを判断し、実行すると判断した場合に、前記要求されたオブジェクトに係る処理を実行することを特徴とするオブジェクト管理システム。
  2. 順序が規定された複数の部分空間に分割されている仮想空間内での位置を表す位置情報に関連づけられたオブジェクトの少なくとも一部を管理の対象として、管理の対象となったオブジェクトに係る処理を実行するオブジェクト管理装置であって、
    前記管理の対象の候補となるオブジェクトには、前記部分空間の各々との順序関係を定義可能な順序キーが関連づけられ、
    前記部分空間の少なくとも一つを対象領域として、要求されたオブジェクトに係る処理を実行するか否かを、当該オブジェクトの順序キーと前記対象領域に含まれる部分空間との順序関係に基づいて判断し、実行すると判断した場合に、前記要求されたオブジェクトに係る処理を実行することを特徴とするオブジェクト管理装置。
  3. 請求項2に記載のオブジェクト管理装置であって、
    前記部分空間の各々との順序関係を定義可能な順序キーを含む識別情報に関連づけられて、その対象領域が設定され、
    前記要求されたオブジェクトに係る処理を実行するか否かを、当該オブジェクトの順序キーと前記対象領域に含まれる部分空間との順序関係に基づいて判断することを特徴とするオブジェクト管理装置。
  4. 請求項2または3に記載のオブジェクト管理装置であって、
    前記部分空間の順序は、Z順序によって規定されることを特徴とするオブジェクト管理装置。
  5. 請求項2から4のいずれか一項に記載のオブジェクト管理装置であって、
    当該オブジェクト管理装置が、前記部分空間の各々との順序関係を定義可能な順序キーに関連づけられ、オブジェクトに係る処理を実行するか否かを判断する際に、当該関連づけられた順序キーに基づいて特定される対象領域内のオブジェクトであるか否かによって判断を行なっており、
    前記特定される対象領域を、連続したNセットの部分空間セットに分割し、当該分割に係る部分空間セットのいずれかを当該オブジェクト管理装置の対象領域とし、
    他のN−1個の部分空間セットの各々については、他のオブジェクト管理装置の対象領域とすることを特徴とするオブジェクト管理装置。
  6. 請求項2から5のいずれか一項に記載のオブジェクト管理装置であって、
    前記部分空間の各々との順序関係を定義可能な順序キーと、当該順序キーを含む識別情報とに関連づけられて、その対象領域が設定され、
    前記オブジェクトに係る処理として、専らオブジェクト間のメッセージの配送処理を行い、
    前記識別情報が、メッセージの配送処理以外の処理を行うオブジェクト管理装置に対する識別情報とは区別可能な識別情報として設定され、メッセージの配送処理以外の処理を行うオブジェクト管理装置のいずれかを同順オブジェクト管理装置として、当該同順オブジェクト管理装置と一致する順序キーに関連づけられており、
    指定されたオブジェクトに係る処理が要求されたときに、当該指定されたオブジェクトの順序キーと前記対象領域に含まれる部分空間との順序関係に基づいて、当該指定されたオブジェクトへメッセージを配送するか否かを判断し、配送すると判断したときには、前記同順オブジェクト管理装置に対してメッセージの配送を要求し、配送しないと判断したときに、前記同順オブジェクト管理装置とは異なる他のオブジェクト管理装置に対してメッセージの配送を要求することを特徴とするオブジェクト管理装置。
  7. 順序が規定された複数の部分空間に分割されている仮想空間内での位置を表す位置情報に関連づけられたオブジェクトの少なくとも一部を管理の対象として、管理の対象となったオブジェクトに係る処理を実行するオブジェクト管理装置を用いて、
    前記管理の対象の候補となるオブジェクトに、前記部分空間の各々との順序関係を定義可能な順序キーが関連づけられ、
    前記オブジェクト管理装置に、前記部分空間の少なくとも一つを対象領域として、要求されたオブジェクトに係る処理を実行するか否かを、当該オブジェクトの順序キーと前記対象領域に含まれる部分空間との順序関係に基づいて判断させ、実行すると判断した場合に、前記要求されたオブジェクトに係る処理を実行させることを特徴とするオブジェクト管理装置の制御方法。
  8. コンピュータに、
    順序が規定された複数の部分空間に分割されている仮想空間内での位置を表す位置情報に関連づけられたオブジェクトの少なくとも一部を管理の対象として、管理の対象となったオブジェクトに係る処理を実行させるプログラムであって、
    前記部分空間の各々との順序関係を定義可能な順序キーが関連づけられた、前記管理の対象の候補となるオブジェクトに関する情報を取得する手順と、
    前記部分空間の少なくとも一つを対象領域として、要求されたオブジェクトに係る処理を実行するか否かを、当該オブジェクトの順序キーと前記対象領域に含まれる部分空間との順序関係に基づいて判断させ、実行すると判断した場合に、前記要求されたオブジェクトに係る処理を実行する手順と、
    を実行させることを特徴とするプログラム。
JP2005356072A 2005-12-09 2005-12-09 仮想空間のオブジェクトを管理するシステム Pending JP2007164252A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005356072A JP2007164252A (ja) 2005-12-09 2005-12-09 仮想空間のオブジェクトを管理するシステム
US11/635,393 US7689683B2 (en) 2005-12-09 2006-12-07 System for managing object in virtual space

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005356072A JP2007164252A (ja) 2005-12-09 2005-12-09 仮想空間のオブジェクトを管理するシステム

Publications (1)

Publication Number Publication Date
JP2007164252A true JP2007164252A (ja) 2007-06-28

Family

ID=38140777

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005356072A Pending JP2007164252A (ja) 2005-12-09 2005-12-09 仮想空間のオブジェクトを管理するシステム

Country Status (2)

Country Link
US (1) US7689683B2 (ja)
JP (1) JP2007164252A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102008823A (zh) * 2009-04-26 2011-04-13 艾利维公司 控制视频游戏中物体移动的方法和***

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4986543B2 (ja) * 2006-08-31 2012-07-25 キヤノン株式会社 情報処理方法、情報処理装置
JP4302143B2 (ja) * 2007-01-11 2009-07-22 株式会社ソニー・コンピュータエンタテインメント 物体衝突処理方法および物体衝突処理プログラム、物体衝突処理装置
US8122089B2 (en) * 2007-06-29 2012-02-21 Microsoft Corporation High availability transport
CN101849233B (zh) * 2007-11-06 2013-01-09 艾利森电话股份有限公司 轻量级目录访问协议(ldap)冲突检测机制和方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08161249A (ja) * 1994-12-06 1996-06-21 Nippon Telegr & Teleph Corp <Ntt> 仮想空間データ転送方法
JPH1198137A (ja) * 1997-09-17 1999-04-09 Toshiba Corp 通信ネットワークの構築方法
JPH11328125A (ja) * 1998-05-15 1999-11-30 Dainippon Printing Co Ltd 仮想空間共有システム
JP2000268192A (ja) * 1999-03-15 2000-09-29 Sony Corp 近接判定方法及びプログラム提供媒体、並びに情報処理装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US649670A (en) * 1898-06-25 1900-05-15 Eppie J Mcculloch Flushing apparatus.
US4525780A (en) * 1981-05-22 1985-06-25 Data General Corporation Data processing system having a memory using object-based information and a protection scheme for determining access rights to such information
US4493027A (en) * 1981-05-22 1985-01-08 Data General Corporation Method of performing a call operation in a digital data processing system having microcode call and return operations
US4455602A (en) * 1981-05-22 1984-06-19 Data General Corporation Digital data processing system having an I/O means using unique address providing and access priority control techniques
US4445277A (en) * 1982-10-29 1984-05-01 John Keefe Universal programmable lock installation device
JPH04191941A (ja) * 1990-11-27 1992-07-10 Hitachi Ltd オブジェクト管理システム
US5295139A (en) * 1991-11-15 1994-03-15 Dsc Communications Corporation Management system for partitioned multi-bandwidth communications network
US7207053B1 (en) * 1992-12-09 2007-04-17 Sedna Patent Services, Llc Method and apparatus for locally targeting virtual objects within a terminal
US7168084B1 (en) * 1992-12-09 2007-01-23 Sedna Patent Services, Llc Method and apparatus for targeting virtual objects
CA2097540C (en) * 1993-06-01 1998-05-12 William G. O'farrell Accessing remote data objects in a distributed memory environment
US5587338A (en) * 1995-04-27 1996-12-24 Vanguard International Semiconductor Corporation Polysilicon contact stud process
US6253254B1 (en) * 1996-07-11 2001-06-26 Ansgar Erlenkoetter Hyper media object management
JP3439337B2 (ja) * 1998-03-04 2003-08-25 日本電気株式会社 ネットワーク管理システム
US7082464B2 (en) * 2001-07-06 2006-07-25 Juniper Networks, Inc. Network management system
US7200662B2 (en) * 2001-07-06 2007-04-03 Juniper Networks, Inc. Integrated rule network management system
TWM251256U (en) * 2003-12-29 2004-11-21 Benq Corp Disc accessing apparatus and the panel thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08161249A (ja) * 1994-12-06 1996-06-21 Nippon Telegr & Teleph Corp <Ntt> 仮想空間データ転送方法
JPH1198137A (ja) * 1997-09-17 1999-04-09 Toshiba Corp 通信ネットワークの構築方法
JPH11328125A (ja) * 1998-05-15 1999-11-30 Dainippon Printing Co Ltd 仮想空間共有システム
JP2000268192A (ja) * 1999-03-15 2000-09-29 Sony Corp 近接判定方法及びプログラム提供媒体、並びに情報処理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102008823A (zh) * 2009-04-26 2011-04-13 艾利维公司 控制视频游戏中物体移动的方法和***
CN102008823B (zh) * 2009-04-26 2014-12-10 艾利维公司 控制视频游戏中物体移动的方法和***

Also Published As

Publication number Publication date
US20070136424A1 (en) 2007-06-14
US7689683B2 (en) 2010-03-30

Similar Documents

Publication Publication Date Title
JP6017039B2 (ja) ユーザ推薦方法、及び同方法を用いるユーザ推薦システム
JP5039950B2 (ja) オブジェクト移動制御システム、オブジェクト移動制御方法、サーバ及びコンピュータプログラム
CN1980169B (zh) 用于在分布拓扑活性***中提高群集唤起的方法
JP6967615B2 (ja) 分散型検索及びインデックスの更新方法、システム、サーバー並びにコンピューター機器
JP2017037446A (ja) ゲームサーバ装置および分散処理方法
TW201627882A (zh) 先決式資料庫系統及其資料搬移方法
JP2007164252A (ja) 仮想空間のオブジェクトを管理するシステム
CN103942209B (zh) 数据处理方法
JP6764796B2 (ja) ロボット制御システムおよびロボット制御方法
JP2006309703A (ja) 印刷ジョブ情報表示システム、印刷システム、印刷ジョブ管理装置、印刷ジョブ管理装置制御プログラム及び印刷ジョブ管理装置制御方法、並びに印刷装置、印刷装置制御プログラム及び印刷装置制御方法
WO2006085519A1 (ja) 情報配信システム、配信要求プログラム、転送プログラム及び配信プログラム等
KR20150077423A (ko) 위치 기반 서비스를 위한 데이터세트 구조를 생성하는 방법 및 모바일 디바이스에 위치 기반 서비스를 제공하기 위한 방법 및 시스템
CN108345643A (zh) 一种数据处理方法及装置
KR101966430B1 (ko) 로컬 네트워크 환경에서 포그 서버 개수 및 배치 위치 결정을 위한 장치 및 방법
CN109361625A (zh) 核查转发表项的方法、装置和控制器
JP2015064715A (ja) 入力支援装置、入力支援方法及び入力支援プログラム
JPWO2015087452A1 (ja) 設備点検作業支援プログラム、設備点検作業支援方法及び設備点検作業支援装置
JP2017037445A (ja) サーバ管理装置およびサーバ管理方法
JP2006502651A (ja) キーイベント制御装置
JP4331045B2 (ja) データベースシステム、および、プログラム
JP4144864B2 (ja) 情報処理方法及び装置
US7159019B2 (en) Information collection apparatus and method
JP2008090564A (ja) コンテンツ配信システム及び同システムにおける識別情報割当方法及び同システムにおける識別情報割当装置及び同装置のプログラム
KR102541377B1 (ko) 교통 빅데이터 질의 처리 수행 방법 및 이를 이용하는 장치
CN109039895B (zh) 基于OpReduce***的优化解耦设计的搜索***及方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081125

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20101124

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20101203

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110309

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110329

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110525

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110712