JP5039950B2 - オブジェクト移動制御システム、オブジェクト移動制御方法、サーバ及びコンピュータプログラム - Google Patents

オブジェクト移動制御システム、オブジェクト移動制御方法、サーバ及びコンピュータプログラム Download PDF

Info

Publication number
JP5039950B2
JP5039950B2 JP2008074686A JP2008074686A JP5039950B2 JP 5039950 B2 JP5039950 B2 JP 5039950B2 JP 2008074686 A JP2008074686 A JP 2008074686A JP 2008074686 A JP2008074686 A JP 2008074686A JP 5039950 B2 JP5039950 B2 JP 5039950B2
Authority
JP
Japan
Prior art keywords
objects
information
client
collision determination
server
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.)
Active
Application number
JP2008074686A
Other languages
English (en)
Other versions
JP2009230442A (ja
Inventor
一明 石崎
周一 清水
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2008074686A priority Critical patent/JP5039950B2/ja
Priority to US12/407,801 priority patent/US8271587B2/en
Publication of JP2009230442A publication Critical patent/JP2009230442A/ja
Application granted granted Critical
Publication of JP5039950B2 publication Critical patent/JP5039950B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • A63F13/12
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/358Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • 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/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/407Data transfer via internet
    • 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/53Features 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 details of basic data processing
    • A63F2300/534Features 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 details of basic data processing for network load management, e.g. bandwidth optimization, latency reduction

Description

本発明は、演算処理負荷を分散することにより、仮想的なオブジェクトの仮想空間上での位置情報の更新を円滑に実行することができるオブジェクト移動制御システム、オブジェクト移動制御方法、サーバ及びコンピュータプログラムに関する。
近年のコンピュータ技術の急速な進展に伴い、プロセッサ単位で処理可能なデータ量は急速に増大している。しかし、あらゆる産業において情報処理技術が適用される昨今では、プロセッサの能力向上速度よりもデータ処理能力に対する需要の方が大きく上回る結果となっており、プロセッサ単体では処理能力が不足する場合が多くなっているのが現状である。
それに対して、複数のプロセッサによる並列処理により、データ処理能力の向上を図ることが多い。特にソフトウェアにより特定された仮想空間上に、仮想的なアバター等の仮想オブジェクトの移動、状態等を演算して表示する仮想空間提供システムでは、複数のプロセッサを用いた並列処理を実行しない限り、仮想オブジェクトの動きの応答が悪く、仮想現実感を損なってしまうという問題点があった。
斯かる問題点を解決するべく、例えば特許文献1では、複数のセルプロセッサを有し、高速に並列処理を実行することができるマルチプロセッサシステムが開示されている。特許文献1では、すべてのセルプロセッサに対してデータをブロードキャストし、各セルプロセッサは、自己に割当てられた処理に必要なデータを取捨選択して所定の演算処理を実行する。そしてCPUコアが、すべてのセルプロセッサからの演算処理結果を取得して、演算処理負荷の大きいデータ処理を高速に実行している。特に段落番号(0054)乃至(0057)には、仮想オブジェクトの衝突判定処理にマルチプロセッサシステムを適用した例が開示されている。
特開2002−175288号公報
しかし、特許文献1に開示されているマルチプロセッサシステムでは、一連の処理に必要なデータを、データ通信することが可能に接続されているすべてのセルプロセッサに対して、一斉にブロードキャストしており、ネットワークの処理負荷は却って増大しているため、演算処理全体のスループットの向上率が減少してしまうという問題点があった。また、段落番号(0054)乃至(0057)に開示されている仮想オブジェクトの衝突判定処理では、セルプロセッサにて演算処理負荷の大きい衝突判定処理を実行しており、各セルプロセッサで同時に実行される衝突判定処理以外の演算処理、例えば位置算出処理、表示画像データの生成処理等に対して影響が出るおそれもあった。
また、各セルプロセッサでの演算処理負荷は、時系列に変化することから、一意的に実行するべき処理を割り当てる方法では、却って演算処理負荷の偏在を生じさせる結果となり、全体のスループットの向上のボトルネックとなる可能性が残されている。
本発明は斯かる事情に鑑みてなされたものであり、演算処理負荷を適切に分散することにより、高速にオブジェクトの仮想空間上での位置情報を更新することができるオブジェクト移動制御システム、オブジェクト移動制御方法、サーバ及びコンピュータプログラムを提供することを目的とする。
上記目的を達成するために第1発明に係るオブジェクト移動制御システムは、複数の仮想領域で構成される仮想空間内の複数のオブジェクトの位置を取得して記憶するサーバと、該サーバとデータ通信することが可能に接続してあり、所定のオブジェクトの移動位置を該オブジェクト単位で制御する複数のクライアント制御装置とを有し、前記仮想空間内を移動するオブジェクトの動作を制御するオブジェクト移動制御システムにおいて、前記サーバとデータ通信することが可能に接続してあり、所定の仮想領域内にて所定のオブジェクト間の衝突を判定する複数の衝突判定クライアントを備え、前記クライアント制御装置は、一のオブジェクトの仮想空間内の位置に関する情報及び移動に関する情報を取得する移動位置取得手段と、取得した位置に関する情報及び移動に関する情報に基づいて、移動した場合の前記一のオブジェクトが含まれる所定の仮想領域内に存在する他のオブジェクトを検出するオブジェクト検出手段と、前記一のオブジェクト及び検出された他のオブジェクト相互間の距離を算出する距離算出手段と、算出された距離が所定の閾値より短いか否かを判断する距離判断手段と、該距離判断手段で前記所定の閾値より短いと判断されたオブジェクトの総数を算出する近接オブジェクト数算出手段と、算出されたオブジェクトの総数が所定個数より多いか否かを判定する判定手段と、該判定手段で所定個数より多いと判定された場合、前記仮想領域内に存在する複数のオブジェクトに関する情報を前記サーバへ送信するオブジェクト情報送信手段とを備え、前記サーバは、前記仮想領域内に存在する複数のオブジェクトに関する情報を受信するオブジェクト情報受信手段と、受信した前記複数のオブジェクトから一対のオブジェクトを選択した一の組み合わせごとに、衝突判定処理を実行する前記衝突判定クライアントを割り当てる割当手段とを備えることを特徴とする。
また、第2発明に係るオブジェクト移動制御システムは、第1発明において、前記サーバは、前記衝突判定クライアントの処理負荷を示す指標値を取得する負荷取得手段を備え、前記割当手段は、取得した指標値に基づいて、一対のオブジェクトが割り当てられる衝突判定クライアントを特定するようにしてあることを特徴とする。
また、第3発明に係るオブジェクト移動制御システムは、第1又は第2発明において、前記距離算出手段は、各オブジェクトの位置を示す代表点間の距離を算出するようにしてあることを特徴とする。
次に、上記目的を達成するために第4発明に係るオブジェクト移動制御方法は、複数の仮想領域で構成される仮想空間内の複数のオブジェクトの位置を取得して記憶するサーバ、及び該サーバとデータ通信することが可能に接続してあり、所定のオブジェクトの移動位置を該オブジェクト単位で制御する複数のクライアント制御装置で実行することが可能であり、前記仮想空間内を移動するオブジェクトの動作を制御するオブジェクト移動制御方法において、所定の仮想領域内にて所定のオブジェクト間の衝突を判定する複数の衝突判定クライアントと前記サーバとがデータ通信することが可能に接続してあり、前記クライアント制御装置は、一のオブジェクトの仮想空間内の位置に関する情報及び移動に関する情報を取得し、取得した位置に関する情報及び移動に関する情報に基づいて、移動した場合の前記一のオブジェクトが含まれる所定の仮想領域内に存在する他のオブジェクトを検出し、前記一のオブジェクト及び検出された他のオブジェクト相互間の距離を算出し、算出された距離が所定の閾値より短いか否かを判断し、前記所定の閾値より短いと判断されたオブジェクトの総数を算出し、算出されたオブジェクトの総数が所定個数より多いか否かを判定し、所定個数より多いと判定された場合、前記仮想領域内に存在する複数のオブジェクトに関する情報を前記サーバへ送信し、前記サーバは、前記仮想領域内に存在する複数のオブジェクトに関する情報を受信し、受信した前記複数のオブジェクトから一対のオブジェクトを選択した一の組み合わせごとに、衝突判定処理を実行する前記衝突判定クライアントを割り当てることを特徴とする。
次に、上記目的を達成するために第5発明に係るサーバは、所定のオブジェクトの移動位置を該オブジェクト単位で制御する複数のクライアント制御装置、及び所定の仮想領域内にて所定のオブジェクト間の衝突を判定する複数の衝突判定クライアントとデータ通信することが可能に接続してあり、複数の前記仮想領域で構成される仮想空間内の複数のオブジェクトの位置を取得して記憶するサーバにおいて、前記仮想領域内に存在する複数のオブジェクトに関する情報を前記クライアント制御装置から受信するオブジェクト情報受信手段と、受信した前記複数のオブジェクトから一対のオブジェクトを選択した一の組み合わせごとに、衝突判定処理を実行する前記衝突判定クライアントを割り当てる割当手段と、前記衝突判定クライアントの処理負荷を示す指標値を取得する負荷取得手段とを備え、前記割当手段は、取得した指標値に基づいて、一対のオブジェクトが割り当てられる衝突判定クライアントを特定するようにしてあることを特徴とする。
次に、上記目的を達成するために第発明に係るコンピュータプログラムは、所定のオブジェクトの移動位置を該オブジェクト単位で制御する複数のクライアント制御装置、及び所定の仮想領域内にて所定のオブジェクト間の衝突を判定する複数の衝突判定クライアントとデータ通信することが可能に接続してあり、複数の前記仮想領域で構成される仮想空間内の複数のオブジェクトの位置を取得して記憶するサーバで実行することが可能なコンピュータプログラムにおいて、前記サーバを、前記仮想領域内に存在する複数のオブジェクトに関する情報を前記クライアント制御装置から受信するオブジェクト情報受信手段、受信した前記複数のオブジェクトから一対のオブジェクトを選択した一の組み合わせごとに、衝突判定処理を実行する前記衝突判定クライアントを割り当てる割当手段、及び前記衝突判定クライアントの処理負荷を示す指標値を取得する負荷取得手段として機能させ、前記割当手段を、取得した指標値に基づいて、一対のオブジェクトが割り当てられる衝突判定クライアントを特定する手段として機能させることを特徴とする。
第1発明及び第4発明では、サーバとデータ通信することが可能に接続してあり、所定の仮想領域内にて所定のオブジェクト間の衝突を判定する複数の衝突判定クライアントを別個に設けてあり、サーバとデータ通信することが可能に接続されている複数のクライアント制御装置は、それぞれ一のオブジェクトの仮想空間内の位置に関する情報及び移動に関する情報を取得し、取得した位置に関する情報及び移動に関する情報に基づいて、移動した場合に一のオブジェクトが含まれる所定の仮想領域内に存在する他のオブジェクトを検出する。一のオブジェクト及び検出された他のオブジェクト相互間の距離を逐次算出して、算出された距離が所定の閾値より短いか否かを判断する。所定の閾値より短いと判断されたオブジェクトの総数を算出して、算出されたオブジェクトの総数が所定個数より多い場合に、仮想領域内に存在する複数のオブジェクトに関する情報をサーバへ送信する。これにより、オブジェクト相互間で衝突が生じる可能性があるオブジェクトが一の仮想領域内に存在するか否かを判断することができ、衝突が生じる可能性が高いオブジェクトのみ衝突可能性を判断するようにすることで、全体の演算処理負荷を軽減することができる。
また、サーバは、仮想領域内に存在する複数のオブジェクトに関する情報を受信し、受信した複数のオブジェクトから一対のオブジェクトを選択した一の組み合わせごとに、衝突判定処理を実行する衝突判定クライアントを割り当てる。これにより、演算処理負荷の大きい衝突判定処理を衝突判定処理専用に設けてある衝突判定クライアントで実行させるので、クライアント制御装置の演算処理負荷を大きく軽減することができ、全体としてオブジェクトの移動可能性を判定して移動位置を特定する処理のスループットを向上させることが可能となる。
ここで、「仮想空間」とは、コンピュータ上に人工的に設定した空間を意味しており、所定の大きさの複数の「仮想領域」で構成されている。オブジェクトは、一の仮想領域内へ移動することもできるし、一の仮想領域から他の仮想領域へ移動することもできる。クライアント制御装置は、仮想領域内に存在するオブジェクトの位置情報を制御するのではなく、位置のオブジェクト自体に着目して、該オブジェクトが存在する仮想領域内に存在するオブジェクトの位置情報を制御する点でも従来の方法とは相違する。仮想領域間でオブジェクトが移動する場合、従来の方法であれば仮想領域を制御するクライアント制御装置間で種々の情報交換が必要となるが、オブジェクト単位にすることで、サーバから該オブジェクトが存在する仮想領域内に存在する他のオブジェクトに関する情報のみを取得すれば足り、ネットワーク負荷の軽減を図ることもできる。
第2発明、第5発明及び第発明では、サーバは、衝突判定クライアントの処理負荷を示す指標値を取得し、取得した指標値に基づいて、一対のオブジェクトが割り当てられる衝突判定クライアントを特定する。これにより、演算処理負荷の比較的小さい衝突判定クライアントには、より多くのオブジェクト間の衝突判定処理を割り当てることができ、複数の衝突判定クライアントの負荷を略均等にすることができる。したがって、一の衝突判定クライアントに演算処理負荷が偏ることによるスループットの悪化を防止することができ、全体として安定したスループットの向上を図ることができる。
ここで、「処理負荷を示す指標値」とは、コンピュータ上での処理負荷の程度を示す指標値を意味しており、例えば異なるクライアント間で正規化された負荷を示す値、オペレーティングシステムが管理するシステム負荷の値、プロセス数等のいずれか、又はこれらの組み合わせを意味する。
第3発明では、各オブジェクトの位置を示す代表点間の距離を算出することにより、一の仮想領域内に存在するオブジェクトの密度を簡易的に評価することができ、演算処理負荷を大きくすることなく、衝突判定処理を実行するべき一対のオブジェクトを特定することが可能となる。
なお、後述する実施の形態では、移動位置取得手段は、CPU21のステップS901及びステップS902の処理が、オブジェクト検出手段は、CPU21のステップS903乃至ステップS905の処理が、距離算出手段は、CPU21のステップS907の処理が、距離判断手段は、CPU21のステップS908の処理が、近接オブジェクト数算出手段は、CPU21のステップS909の処理が、判定手段は、CPU21のステップS911の処理が、オブジェクト情報送信手段は、CPU21のステップS912の処理が、それぞれ該当する。また、オブジェクト情報受信手段は、CPU11のステップS1001の処理が、割当手段は、CPU11のステップS1003の処理が、それぞれ該当する。さらに、負荷取得手段は、CPU11のステップS1201の処理が該当する。
本発明によれば、所定の閾値より短いと判断されたオブジェクトの総数が所定個数より多い場合にのみ、オブジェクト相互間で衝突が生じる可能性があると判断し、別個に設けてある衝突判定クライアントにて衝突可能性を判断するようにすることで、全体の演算処理負荷を軽減することができ、オブジェクトの仮想空間上での移動位置の演算処理のスループットを向上させることが可能となる。
また、仮想領域間でオブジェクトが移動する場合、従来の方法であれば仮想領域を制御するクライアント制御装置間で種々の情報交換が必要となるが、オブジェクト単位にすることで、サーバから該オブジェクトが存在する仮想領域内に存在する他のオブジェクトに関する情報のみを取得すれば足り、ネットワーク負荷の軽減を図ることもできる。
以下、本発明の実施の形態に係るオブジェクト移動制御システムについて、図面に基づいて具体的に説明する。図1は、本発明の実施の形態に係るオブジェクト移動制御システムの構成を示すブロック図である。本発明の実施の形態に係るオブジェクト移動制御システムは、仮想空間に相当する画像を表示出力するクライアント4、4、・・・、複数のクライアント4、4、・・・から特定のオブジェクトに対する指示情報等を送受信する複数のクライアント制御装置2、2、・・・、特定の組み合わせのオブジェクトが仮想空間上の移動位置にて衝突するか否かを判定する衝突判定クライアント3、3、・・・及びサーバ1で構成されている。
なお、「仮想空間」とは、仮想的に三次元座標値が割り当てられた空間を意味しており、特定の大きさを有する仮想的なオブジェクトが存在する空間の三次元座標値、ポリゴンデータ等を用いて、空間上での仮想的なオブジェクトの配置を定めることができる。本実施の形態では、仮想空間上での各オブジェクトの配置は、クライアント4、4、・・・で表示することができ、オブジェクトに対する移動指示もクライアント4、4、・・・から入力する。
図2は、本発明の実施の形態に係るオブジェクト移動制御システムのサーバ1を、CPU11を用いて具現化した場合のハードウェア構成を示すブロック図である。図2において、本実施の形態に係るサーバ1は、少なくとも、CPU(中央演算装置)11、RAM12、記憶装置13、入力装置14、出力装置15、通信装置16、可搬型ディスクドライブ17及び上述したハードウェアを接続する内部バス18で構成されている。
CPU11は、内部バス18を介してサーバ1の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置13に記憶されているコンピュータプログラム100に従って、種々のソフトウェア的機能を実行する。RAM12は、SRAM、SDRAM等の揮発性メモリで構成され、コンピュータプログラム100の実行時にロードモジュールが展開され、コンピュータプログラム100の実行時に発生する一時的なデータ等を記憶する。
記憶装置13は、内蔵される固定型記憶装置(ハードディスク)、ROM等で構成されている。記憶装置13に記憶されているコンピュータプログラム100は、プログラム及びデータ等の情報を記録したDVD、CD−ROM等の可搬型記録媒体90から、可搬型ディスクドライブ17によりダウンロードされ、実行時には記憶装置13からRAM12へ展開して実行される。もちろん、通信装置16を介して外部のコンピュータからダウンロードされたコンピュータプログラムであっても良い。
また記憶装置13は、仮想空間を複数の領域に分割した各領域を識別する識別情報、及び各領域に存在しているオブジェクトを識別する識別情報を記憶しているオブジェクト状態情報記憶部131を備えている。オブジェクト状態情報記憶部131には、各オブジェクトの移動を制御するクライアント制御装置2を識別する識別情報、各オブジェクトの仮想的な二次元平面上における位置座標値等も記憶されている。
図3は、オブジェクト状態情報記憶部131のデータ構成の例示図である。図3に示すように、オブジェクト状態情報記憶部131には、少なくとも複数の領域を識別する識別情報であるリージョンID、各領域に存在しているオブジェクトを識別する識別情報であるオブジェクトID、各オブジェクトの移動を制御するクライアント制御装置2を識別する識別情報であるクライアント制御装置ID、及びオブジェクトごとの各領域におけるX座標値、Y座標値を記憶してある。このようにすることで、近接する複数のオブジェクトが検出された場合、衝突判定を行うための詳細情報をどのクライアント制御装置2、2、・・・から取得すれば良いのか容易に判断することができる。
通信装置16は内部バス18に接続されており、インターネット、LAN、WAN等の外部のネットワーク網に接続されることにより、外部のコンピュータ、例えばクライアント制御装置2、2、・・・、衝突判定クライアント3、3、・・・等とデータ送受信を行うことが可能となっている。
入力装置14は、キーボード及びマウス等のデータ入力媒体であり、出力装置15は、CRTモニタ、LCD等の表示装置、あるいはレーザプリンタ、ドットプリンタ等の印刷装置等である。
図4は、本発明の実施の形態に係るオブジェクト移動制御システムのクライアント制御装置2を、CPU21を用いて具現化した場合のハードウェア構成を示すブロック図である。図4において、本実施の形態に係るクライアント制御装置2は、少なくとも、CPU(中央演算装置)21、RAM22、記憶装置23、入力装置24、出力装置25、通信装置26、及び上述したハードウェアを接続する内部バス27で構成されている。
CPU21は、内部バス27を介してクライアント制御装置2の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置23に記憶されているコンピュータプログラム101に従って、種々のソフトウェア的機能を実行する。RAM22は、SRAM、SDRAM等の揮発性メモリで構成され、コンピュータプログラム101の実行時にロードモジュールが展開され、コンピュータプログラム101の実行時に発生する一時的なデータ等を記憶する。
記憶装置23は、内蔵される固定型記憶装置(ハードディスク)、ROM等で構成されている。記憶装置23に記憶されているコンピュータプログラム101は、実行時には記憶装置23からRAM22へ展開して実行される。コンピュータプログラム101は、別個の図示しない可搬型ディスクドライブを介して、DVD、CD−ROM等の可搬型記録媒体からダウンロードしても良いし、通信装置26を介して外部のコンピュータからダウンロードしても良い。
また記憶装置23は、移動を制御するオブジェクト以外のオブジェクト、例えば建物、道路等の移動しないオブジェクトの形状、位置等に関する背景情報を記憶する背景情報記憶部231と、移動を制御するオブジェクトを識別する識別情報に対応付けて、該オブジェクトの形状、位置等に関する情報を記憶しているオブジェクト情報記憶部232を備えている。いずれも形状に関する情報は、三次元のポリゴンデータとして記憶されており、位置に関する情報は、オブジェクトの重心位置等の代表点の二次元平面上での座標値として記憶してある。
通信装置26は内部バス27に接続されており、インターネット、LAN、WAN等の外部のネットワーク網に接続されることにより、外部のコンピュータ、例えばサーバ1、衝突判定クライアント3、3、・・・、クライアント4、4、・・・等とデータ送受信を行うことが可能となっている。
入力装置24は、キーボード及びマウス等のデータ入力媒体であり、出力装置25は、CRTモニタ、LCD等の表示装置、あるいはレーザプリンタ、ドットプリンタ等の印刷装置等である。
図5は、本発明の実施の形態に係るオブジェクト移動制御システムの衝突判定クライアント3を、CPU31を用いて具現化した場合のハードウェア構成を示すブロック図である。図5において、本実施の形態に係る衝突判定クライアント3は、少なくとも、CPU(中央演算装置)31、RAM32、記憶装置33、通信装置34、及び上述したハードウェアを接続する内部バス35で構成されている。
CPU31は、内部バス35を介して衝突判定クライアント3の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置33に記憶されているコンピュータプログラム102に従って、種々のソフトウェア的機能を実行する。RAM22は、SRAM、SDRAM等の揮発性メモリで構成され、コンピュータプログラム102の実行時にロードモジュールが展開され、コンピュータプログラム102の実行時に発生する一時的なデータ等を記憶する。
記憶装置33は、内蔵される固定型記憶装置(ハードディスク)、ROM等で構成されている。記憶装置33に記憶されているコンピュータプログラム102は、実行時には記憶装置33からRAM32へ展開して実行される。コンピュータプログラム102は、別個の図示しない可搬型ディスクドライブを介して、DVD、CD−ROM等の可搬型記録媒体からダウンロードしても良いし、通信装置34を介して外部のコンピュータからダウンロードしても良い。
通信装置34は内部バス35に接続されており、インターネット、LAN、WAN等の外部のネットワーク網に接続されることにより、外部のコンピュータ、例えばサーバ1、クライアント制御装置2、2、・・・等とデータ送受信を行うことが可能となっている。
すなわち、衝突判定処理に必要となる情報は、サーバ1からの指示情報に従って、判定に必要なオブジェクトの移動を制御している一又は複数のクライアント制御装置2、2から通信装置34を介して入手する。算出した衝突判定結果に関する情報についても、通信装置34を介してサーバ1へ送信する。
図6は、本発明の実施の形態に係るオブジェクト移動制御システムのクライアント4を、CPU41を用いて具現化した場合のハードウェア構成を示すブロック図である。図6において、本実施の形態に係るクライアント4は、少なくとも、CPU(中央演算装置)41、RAM42、記憶装置43、入力装置44、表示装置45、通信装置46、及び上述したハードウェアを接続する内部バス47で構成されている。
CPU41は、内部バス47を介してクライアント4の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置43に記憶されているコンピュータプログラム103に従って、種々のソフトウェア的機能を実行する。RAM42は、SRAM、SDRAM等の揮発性メモリで構成され、コンピュータプログラム103の実行時にロードモジュールが展開され、コンピュータプログラム103の実行時に発生する一時的なデータ等を記憶する。
記憶装置43は、内蔵される固定型記憶装置(ハードディスク)、ROM等で構成されている。記憶装置43に記憶されているコンピュータプログラム103は、実行時には記憶装置43からRAM42へ展開して実行される。コンピュータプログラム103は、別個の図示しない可搬型ディスクドライブを介して、DVD、CD−ROM等の可搬型記録媒体からダウンロードしても良いし、通信装置46を介して外部のコンピュータからダウンロードしても良い。
通信装置46は内部バス47に接続されており、インターネット、LAN、WAN等の外部のネットワーク網に接続されることにより、外部のコンピュータ、例えばクライアント制御装置2、2、・・・等とデータ送受信を行うことが可能となっている。
入力装置44は、キーボード及びマウス等のデータ入力媒体であり、画面上に表示されているオブジェクトの移動情報等の入力を受け付ける。表示装置45は、CRTモニタ、LCD等の表示装置であり、例えばクライアント制御装置2、2、・・・から送信された背景情報及びオブジェクトの形状、位置等に関する情報に基づいて、仮想空間上に所定のオブジェクトを三次元画像として表示する。
上述した構成のオブジェクト移動制御システムの処理の流れについて説明する。図7は、本発明の実施の形態に係るオブジェクト移動制御システムのクライアント4のCPU41のオブジェクト移動指示の受付処理手順を示すフローチャートである。
クライアント4のCPU41は、背景情報及びオブジェクトの形状、位置等に関する情報に基づいて、所定のオブジェクトに関する三次元画像を表示装置45に表示する(ステップS701)。表示対象となるデータは、通信装置46を介してクライアント制御装置2から取得する。CPU41は、表示するオブジェクトを識別するオブジェクトIDに対応付けて、該オブジェクトの移動を制御するクライアント制御装置2を識別するクライアント制御装置IDを取得する(ステップS702)。
図8は、本実施の形態に係るオブジェクト移動制御システムでの仮想空間の説明図である。仮想空間は三次元空間であり、所定のX座標値、Y座標値で複数の仮想領域に区分けされている。便宜上、XY平面上で仮想領域を区分けし、それぞれの仮想領域を順次R1、R2、・・・と識別している。オブジェクトは、仮想領域のいずれかの領域内に存在する。
CPU41は、入力装置44を介して、移動対象となるオブジェクトの指定を受け付け(ステップS703)、指定を受け付けたオブジェクトを識別するオブジェクトIDを取得する(ステップS704)。CPU41は、指定を受け付けたオブジェクトに対する移動情報、例えば移動距離及び方向に関する情報の入力を受け付け(ステップS705)、取得したオブジェクトID及び移動情報を、オブジェクトIDに対応するクライアント制御装置IDを有するクライアント制御装置2へ送信する(ステップS706)。ここで、「移動情報」とはオブジェクトを移動させる場合に必要となる情報を意味しており、例えば移動方向、移動速度及び移動距離に関する情報を意味する。
図9は、本発明の実施の形態に係るオブジェクト移動制御システムのクライアント制御装置2のCPU21の処理手順を示すフローチャートである。クライアント制御装置2のCPU21は、移動を制御する対象となっているオブジェクトが表示されているクライアント4から、ユーザによる指定を受け付けたオブジェクトを識別するオブジェクトID及び移動に関する移動情報を受信し(ステップS901)、受信したオブジェクトIDに対応するオブジェクトの仮想空間上での位置に関する位置情報を記憶装置23のオブジェクト情報記憶部232から読み出す(ステップS902)。「移動情報」は、少なくとも移動する方向、速度、及び移動量に関する情報を含む。「位置情報」は、仮想領域(仮想空間)内での三次元座標値に関する情報である。
CPU21は、読み出した位置情報および受信した移動情報に基づいて、移動した場合にオブジェクトが到達尻位置情報を算出し(ステップS903)、算出した移動後の位置情報をオブジェクトIDに対応付けてサーバ1へ送信する(ステップS904)。そして、該オブジェクトが存在する仮想的な領域を識別するリージョンID、同一リージョンID内に存在する他のオブジェクトのオブジェクトID、及び各オブジェクトの位置情報をサーバ1から受信する(ステップS905)。サーバ1のCPU11は、受信した位置情報及びオブジェクトIDをキー情報として、記憶装置13のオブジェクト状態情報記憶部131を照会して、リージョンID、同一リージョンID内に存在する他のオブジェクトのオブジェクトID、及び各オブジェクトの位置情報を抽出して送信する。
本実施の形態では、オブジェクトが存在する仮想的な領域に関する情報、同一領域に存在する他のオブジェクトに関する情報をサーバ1に集約して記憶しているが、オブジェクトが一の仮想的な領域へ移動した時点でサーバ1から仮想的な領域に関する情報をダウンロードして各クライアント制御装置2に記憶しておいても良い。
CPU21は、受信した他のオブジェクトの中から、所定の他のオブジェクトを選択し(ステップS906)、選択した他のオブジェクトの位置情報、及び読み出した位置情報に基づいて、指定を受け付けた一のオブジェクトと、選択された他のオブジェクトとの間の距離を算出する(ステップS907)。CPU21は、算出された距離が所定の閾値Sより短いか否かを判断し(ステップS908)、CPU21が、距離が所定の閾値Sより短いと判断した場合(ステップS908:YES)、CPU21は、カウンタを1インクリメントし(ステップS909)、受信したすべての他のオブジェクトについて選択したか否かを判断する(ステップS910)。CPU21が、距離が所定の閾値S以上であると判断した場合(ステップS908:NO)、CPU21は、ステップS909をスキップする。
CPU21が、受信したすべての他のオブジェクトを選択していないと判断した場合(ステップS910:NO)、CPU21は、処理をステップS906へ戻して、上述した処理を繰り返す。CPU21が、受信したすべての他のオブジェクトを選択したと判断した場合(ステップS910:YES)、CPU21は、カウンタの累計値が所定値より大きいか否かを判断する(ステップS911)。CPU21が、所定値以下であると判断した場合(ステップS911:NO)、CPU21は、衝突を判定する必要が無いと判断して処理を終了する。CPU21が、所定値より大きいと判断した場合(ステップS911:YES)、CPU21は、カウント対象となったオブジェクトに関する情報をサーバ1へ送信する(ステップS912)。
なお、本実施の形態では、オブジェクト相互間の距離を仮想領域におけるXY平面における直線距離で算出して、距離の大小を判断しているが、X座標値のみで所定の差異の範囲内となるオブジェクトを絞り込み、続いてY座標値のみで所定の差異の範囲内となるオブジェクトを特定する方法であっても良い。
図10は、本発明の実施の形態に係るオブジェクト移動制御システムのサーバ1のCPU11の割当処理の手順を示すフローチャートである。図10において、サーバ1のCPU11は、各クライアント制御装置2から、仮想領域内に存在し、しかも近接しているオブジェクトに関する情報を受信する(ステップS1001)。CPU11は、複数のクライアント制御装置2、2、・・・から受信した近接しているオブジェクトに関する情報に基づいて、互いに近接するオブジェクト群を特定する(ステップS1002)。
つまり、仮想領域内に存在する近接しているオブジェクトに関する情報を受信した状態では、一のオブジェクトを基準として距離が短いと判定されたオブジェクトの組み合わせ情報を取得するに留まる。この場合、各クライアント制御装置2は、それぞれのオブジェクトからの距離が所定範囲内であるか否かのみで判断しているので、互いに近接しているオブジェクトでは、2つのクライアント制御装置2、2から受信した近接しているオブジェクトに関する情報の両方に同じオブジェクトが含まれている。これらを整理して一群の近接オブジェクトを特定する必要がある。
図11は、本発明の実施の形態に係るオブジェクト移動制御システムのサーバ1のCPU11の互いに近接するオブジェクト群を特定する処理手順を示すフローチャートである。図11において、サーバ1のCPU11は、各クライアント制御装置2から受信したオブジェクト群を集約し(ステップS1101)、受信したオブジェクト群の中から2つのオブジェクト群を選択する(ステップS1102)。
CPU11は、2つのオブジェクト群の中に共通のオブジェクトが存在するか否かを判断する(ステップS1103)。CPU11が、存在すると判断した場合(ステップS1103:YES)、CPU11は、2つのオブジェクト群をマージする(ステップS1104)。なお。マージとは、例えば一のオブジェクト群AがオブジェクトA1、A2、A3を含み、他のオブジェクト群BがオブジェクトA3、A4、A5を含む場合に、オブジェクトA1、A2、A3、A4、A5を含む一つのオブジェクト群を生成する処理を意味している。
CPU11が、存在しないと判断した場合(ステップS1103:NO)、CPU11は、ステップS1104をスキップし、すべての組み合わせを選択したか否かを判断する(ステップS1105)。CPU11が、すべての組み合わせを選択したと判断した場合(ステップS1105:YES)、CPU11は、処理を終了する。CPU11が、選択されていない組み合わせが存在すると判断した場合(ステップS1105:NO)、CPU11は、処理をステップS1102へ戻し、上述した処理を繰り返す。
図10に戻って、サーバ1のCPU11は、特定されたオブジェクト群から一対のオブジェクトを選択した一の組み合わせごとに、衝突判定処理を実行する衝突判定クライアント3を割り当てる(ステップS1003)。CPU11は、割り当てられた衝突判定クライアント3ごとに、対応する一対のオブジェクトに関する情報を送信する(ステップS1004)。オブジェクト群にn個のオブジェクトが含まれている場合、衝突判定クライアント3を割り当てるべき一対のオブジェクトの数は
n2 となる。
このように、オブジェクト間の距離が一定の距離より短いオブジェクトが、所定の個数以上集まっている場合、一のオブジェクトに着目すると、該オブジェクトが他のオブジェクトに衝突することなく移動できる範囲は、所定の個数集まっていない場合と比べて非常に狭くなる。したがって、オブジェクトが他のオブジェクトと衝突する可能性が高い状況にあると判断することができる。
そして、オブジェクト間の衝突判定処理を、クライアント制御装置2とは別個独立した衝突判定クライアント3で実行させることにより、演算処理負荷の大きい衝突判定処理をクライアント制御装置2とは別個のコンピュータで実行させることができ、クライアント制御装置2の演算処理負荷を軽減することができる。したがって、全体としてスループットを向上させることが可能となる。
割り当て対象となる衝突判定クライアント3を選択する場合、演算処理負荷の小さい衝突判定クライアント3から順に割り当てることが好ましい。衝突判定クライアント3、3、・・・の演算処理負荷が略均等になることでボトルネックとなる衝突判定クライアント3が生じることがなく、全体のスループットの低下を未然に防止することができるからである。
演算処理負荷の大小を判定する指標値としては、例えば異なるクライアント間で正規化された負荷を示す値、オペレーティングシステムが管理するシステム負荷の値、プロセス数等のいずれか、又はこれらの組み合わせ等を用いる。以下、演算処理負荷の大小を判定する指標値として稼動しているプロセス数を用いる場合の処理について説明する。
図12は、本発明の実施の形態に係るオブジェクト移動システムのサーバ1のCPU11の割当処理の詳細手順を示すフローチャートである。図12において、サーバ1のCPU11は、接続されているすべての衝突判定クライアント3、3、・・・で動作しているプロセス数を衝突判定クライアント3ごとに取得する(ステップS1201)。そして、CPU11は、衝突判定クライアント3を割り当てる対象となる
n2 個の一対のオブジェクトから所定の一対のオブジェクトを選択する(ステップS1202)。
CPU11は、取得したプロセス数が最小である衝突判定クライアント3を特定し(ステップS1203)、特定された衝突判定クライアント3へ一対のオブジェクトを割り当てる(ステップS1204)。CPU11は、すべての一対のオブジェクトを割り当てたか否かを判断し(ステップS1205)、CPU11が、まだ割り当てていない一対のオブジェクトが存在すると判断した場合(ステップS1205:NO)、CPU11は、次の一対のオブジェクトを選択し(ステップS1206)、処理をステップS1203へ戻して上述した処理を繰り返す。CPU11が、すべての一対のオブジェクトを割り当てたと判断した場合(ステップS1205:YES)、CPU11は、処理を終了する。
このように、割り当てする衝突判定クライアント3を特定する時点でプロセス数が最小である衝突判定クライアント3に優先して割り当てていくことにより、衝突判定クライアント3、3、・・・の演算処理負荷を略均等に制御することができる。なお、演算処理負荷をプロセス数で判断する方法に限定されるものではなく、タスク数等の他の指標を用いても良いことは言うまでもない。
図13は、本発明の実施の形態に係るオブジェクト移動制御システムの衝突判定クライアント3のCPU31の衝突判定の処理手順を示すフローチャートである。図13において、衝突判定クライアント3のCPU31は、サーバ1から一対のオブジェクトに関する情報を受信し(ステップS1301)、受信した一対のオブジェクトについて互いに衝突するか否かを判定する(ステップS1302)。
衝突判定を正確に行うため、衝突判定クライアント3は一対のオブジェクトそれぞれのポリゴンデータを取得する。そして、ポリゴンデータ相互間の、三次元空間における干渉の有無を判定し、干渉が生じている場合には衝突していると判定する。ポリゴンデータ間の干渉の検出方法は、特に限定されるものではなく、周知の方法であればなんでも良い。
また、衝突判定クライアント3の演算処理負荷を少しでも軽減するべく、クライアント制御装置2でオブジェクトが近接しているか否かを判断する場合に用いる距離の閾値よりも小さい第2の閾値を用いて、さらに絞り込んだ後に、干渉する可能性が高い一対のオブジェクトについてのみ、ポリゴンデータ相互間の、三次元空間における干渉の有無を判定しても良い。このようにすることで、演算処理負荷が大きいポリゴンデータ間の三次元干渉検出処理の回数を減じることができ、全体として演算処理負荷を軽減することができる。
図14は、オブジェクトが人間の形状をした三次元ポリゴンデータである場合の、オブジェクト間の位置関係の例示図である。図14(a)及び(b)に示すように、オブジェクトO1とオブジェクトO2との間の距離が同じΔdであっても、オブジェクトが横に並んでいる場合には図14(a)のように衝突しないし、図14(b)のようにオブジェクトが縦に並んでいる場合には、三次元干渉領域Cが生じる。そして、Δdが短いほど、三次元干渉領域Cが生じる可能性が高くなり、両オブジェクトが衝突する可能性が高くなる。
そこで、同じ仮想領域にオブジェクトが集中していることを確認するための第1の閾値として、オブジェクトの向きによらず近接しているか否かを判定できる程度の距離、例えば1m50cm程度の閾値を採用し、オブジェクトの向きによっては衝突する可能性が高い距離、例えば50cm程度を第2の閾値として採用することで、第1の閾値ではオブジェクトが集中しているか否かのみを広く判定し、第2の閾値では衝突可能性の高いオブジェクトの組み合わせを抽出するという2段階処理とすることができる。このようにすることで、本当に衝突判定が必要なオブジェクト間のみ、演算処理負荷の高いポリゴンデータを用いた衝突判定処理を実行することで、全体の演算処理負荷を軽減することができる。
図13に戻って、CPU31は、衝突するか否かの判定結果に関する情報を、サーバ1へ送信する(ステップS1303)。送信する判定結果に関する情報は、衝突判定を実行した一対のオブジェクトを識別する識別情報、及び衝突するか否かに関する情報である。
図15は、本発明の実施の形態に係るオブジェクト移動制御システムのサーバ1のCPU11の衝突判定結果の転送処理手順を示すフローチャートである。図15において、サーバ1のCPU11は、衝突判定クライアント3から衝突判定処理の判定結果に関する情報を受信し(ステップS1501)、受信した判定結果に関する情報が衝突する旨を示す情報であるか否かを判断する(ステップS1502)。
CPU11が、受信した判定結果に関する情報が衝突する旨を示す情報であると判断した場合(ステップS1502:YES)、CPU11は、衝突する旨を示す情報を、対応する一対のオブジェクトの移動位置を制御する一又は複数のクライアント制御装置2、2へ転送する(ステップS1503)。CPU11が、受信した判定結果に関する情報が衝突しない旨を示す情報であると判断した場合(ステップS1502:NO)、CPU11は、衝突しない、すなわち移動することが可能であると判断し、処理を終了する。
図16は、本発明の実施の形態に係るオブジェクト移動制御システムのクライアント制御装置2のCPU21の位置更新処理の手順を示すフローチャートである。図16において、クライアント制御装置2のCPU21は、衝突する旨を示す情報を受信したか否かを判断する(ステップS1601)。CPU21が、衝突する旨を示す情報を受信したと判断した場合(ステップS1601:YES)、CPU21は、オブジェクトの移動に障害物が存在するため移動することができないと判断することができ、オブジェクトの位置情報を更新しない(ステップS1602)。
CPU21が、衝突する旨を示す情報を受信していないと判断した場合(ステップS1601:NO)、CPU21は、オブジェクトの移動に障害物が存在しないため移動することができると判断することができ、オブジェクトの位置情報及び移動情報に基づいて、オブジェクトの位置情報を更新する(ステップS1603)。
CPU21は、表示するべきオブジェクトに関する表示情報を生成して(ステップS1604)、クライアント4へ送信する(ステップS1605)。表示情報には、背景情報及びオブジェクトの形状、位置等に関する情報を含んでいる。
図17は、本発明の実施の形態に係るオブジェクト移動制御システムのクライアント4のCPU41のオブジェクト表示処理手順を示すフローチャートである。クライアント4のCPU41は、表示情報として、背景情報及びオブジェクトの形状、位置等に関する情報を受信し(ステップS1701)、受信した表示情報に基づいて所定のオブジェクトに関する三次元画像を表示装置45に表示する(ステップS1702)。
例えばオブジェクトが仮想空間上でのアバターである場合、クライアント4にてユーザがアバターを移動させるよう操作する。操作を受け付けたクライアント4は、操作の対象となるアバターの動作を制御するクライアント制御装置2へ操作に伴う情報を送信し、近接している他のアバター及び背景の障害物等との間で一定の近さにあるものについてのみ衝突判定を行う。
衝突判定自体は、アバターの動作を制御するクライアント制御装置2とは別個独立した専用のプロセッサを用いることで演算処理負荷を軽減し、衝突判定処理の演算時間を短縮する。ユーザが操作したアバターの移動が他のアバター、背景の障害物等と衝突しないとの判定結果を受信した場合、クライアント4はアバターが操作による移動位置へ移動された状態の三次元画像が表示されるのを確認することができる。ユーザが操作したアバターの移動が他のアバター、背景の障害物等と衝突するとの判定結果を受信した場合、クライアント4は、ビープ音等を発してアバターが操作による移動位置へ移動することができない旨を知らせることができる。このように本実施の形態では、演算処理負荷を軽減することにより処理全体のスループットを短縮することができ、ユーザ操作に対するアバター動作の表示レスポンスを高めることが可能となる。
以上のように本実施の形態によれば、所定の閾値より短いと判断されたオブジェクトの総数が所定数より多い場合にのみ、オブジェクト相互間で衝突が生じる可能性があると判断し、別個独立した衝突判定クライアント3にて衝突可能性を判断するようにすることで、全体の演算処理負荷を軽減することができ、オブジェクトの仮想空間上での移動位置の演算処理のスループットを向上させることが可能となる。
また、仮想領域間でオブジェクトが移動する場合、従来の方法であれば仮想領域を制御するクライアント制御装置2、2間で種々の情報交換が必要となるが、オブジェクト単位に仮想領域上での動作を制御することで、サーバ1から該オブジェクトが存在する仮想領域内に存在する他のオブジェクトに関する情報のみを取得すれば足り、ネットワーク負荷の軽減を図ることもできる。
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨の範囲内であれば多種の変形、置換等が可能であることは言うまでもない。
本発明の実施の形態に係るオブジェクト移動制御システムの構成を示すブロック図である。 本発明の実施の形態に係るオブジェクト移動制御システムのサーバを、CPUを用いて具現化した場合のハードウェア構成を示すブロック図である。 オブジェクト状態情報記憶部のデータ構成の例示図である。 本発明の実施の形態に係るオブジェクト移動制御システムのクライアント制御装置を、CPUを用いて具現化した場合のハードウェア構成を示すブロック図である。 本発明の実施の形態に係るオブジェクト移動制御システムの衝突判定クライアントを、CPUを用いて具現化した場合のハードウェア構成を示すブロック図である。 本発明の実施の形態に係るオブジェクト移動制御システムのクライアントを、CPUを用いて具現化した場合のハードウェア構成を示すブロック図である。 本発明の実施の形態に係るオブジェクト移動制御システムのクライアントのCPUのオブジェクト移動指示の受付処理手順を示すフローチャートである。 本実施の形態に係るオブジェクト移動制御システムでの仮想空間の説明図である。 本発明の実施の形態に係るオブジェクト移動制御システムのクライアント制御装置のCPUの処理手順を示すフローチャートである。 本発明の実施の形態に係るオブジェクト移動制御システムのサーバのCPUの割当処理の手順を示すフローチャートである。 本発明の実施の形態に係るオブジェクト移動制御システムのサーバのCPUの互いに近接するオブジェクト群を特定する処理手順を示すフローチャートである。 本発明の実施の形態に係るオブジェクト移動制御システムのサーバのCPUの割当処理の詳細手順を示すフローチャートである。 本発明の実施の形態に係るオブジェクト移動制御システムの衝突判定クライアントのCPUの衝突判定の処理手順を示すフローチャートである。 オブジェクトが人間の形状をした三次元ポリゴンデータである場合の、オブジェクト間の位置関係の例示図である。 本発明の実施の形態に係るオブジェクト移動制御システムのサーバのCPUの衝突判定結果の転送処理手順を示すフローチャートである。 本発明の実施の形態に係るオブジェクト移動制御システムのクライアント制御装置のCPUの位置更新処理の手順を示すフローチャートである。 本発明の実施の形態に係るオブジェクト移動制御システムのクライアントのCPUのオブジェクト表示処理手順を示すフローチャートである。
符号の説明
1 サーバ
2 クライアント制御装置
3 衝突判定クライアント
4 クライアント
11、21、31、41 CPU
12、22、32、42 RAM
13、23、33、43 記憶装置
14、24、44 入力装置
15、25 出力装置
16、26、34、46 通信装置
17 可搬型ディスクドライブ
18、27、35、47 内部バス
45 表示装置
90 可搬型記録媒体
100、101、102、103 コンピュータプログラム
131 オブジェクト状態情報記憶部
231 背景情報記憶部
232 オブジェクト情報記憶部

Claims (6)

  1. 複数の仮想領域で構成される仮想空間内の複数のオブジェクトの位置を取得して記憶するサーバと、
    該サーバとデータ通信することが可能に接続してあり、所定のオブジェクトの移動位置を該オブジェクト単位で制御する複数のクライアント制御装置と
    を有し、前記仮想空間内を移動するオブジェクトの動作を制御するオブジェクト移動制御システムにおいて、
    前記サーバとデータ通信することが可能に接続してあり、所定の仮想領域内にて所定のオブジェクト間の衝突を判定する複数の衝突判定クライアントを備え、
    前記クライアント制御装置は、
    一のオブジェクトの仮想空間内の位置に関する情報及び移動に関する情報を取得する移動位置取得手段と、
    取得した位置に関する情報及び移動に関する情報に基づいて、移動した場合の前記一のオブジェクトが含まれる所定の仮想領域内に存在する他のオブジェクトを検出するオブジェクト検出手段と、
    前記一のオブジェクト及び検出された他のオブジェクト相互間の距離を算出する距離算出手段と、
    算出された距離が所定の閾値より短いか否かを判断する距離判断手段と、
    該距離判断手段で前記所定の閾値より短いと判断されたオブジェクトの総数を算出する近接オブジェクト数算出手段と、
    算出されたオブジェクトの総数が所定個数より多いか否かを判定する判定手段と、
    該判定手段で所定個数より多いと判定された場合、前記仮想領域内に存在する複数のオブジェクトに関する情報を前記サーバへ送信するオブジェクト情報送信手段と
    を備え、
    前記サーバは、
    前記仮想領域内に存在する複数のオブジェクトに関する情報を受信するオブジェクト情報受信手段と、
    受信した前記複数のオブジェクトから一対のオブジェクトを選択した一の組み合わせごとに、衝突判定処理を実行する前記衝突判定クライアントを割り当てる割当手段と
    を備えることを特徴とするオブジェクト移動制御システム。
  2. 前記サーバは、
    前記衝突判定クライアントの処理負荷を示す指標値を取得する負荷取得手段を備え、
    前記割当手段は、取得した指標値に基づいて、一対のオブジェクトが割り当てられる衝突判定クライアントを特定するようにしてあることを特徴とする請求項1記載のオブジェクト移動制御システム。
  3. 前記距離算出手段は、各オブジェクトの位置を示す代表点間の距離を算出するようにしてあることを特徴とする請求項1又は2記載のオブジェクト移動制御システム。
  4. 複数の仮想領域で構成される仮想空間内の複数のオブジェクトの位置を取得して記憶するサーバ、及び
    該サーバとデータ通信することが可能に接続してあり、所定のオブジェクトの移動位置を該オブジェクト単位で制御する複数のクライアント制御装置で実行することが可能であり、
    前記仮想空間内を移動するオブジェクトの動作を制御するオブジェクト移動制御方法において、
    所定の仮想領域内にて所定のオブジェクト間の衝突を判定する複数の衝突判定クライアントと前記サーバとがデータ通信することが可能に接続してあり、
    前記クライアント制御装置は、
    一のオブジェクトの仮想空間内の位置に関する情報及び移動に関する情報を取得し、
    取得した位置に関する情報及び移動に関する情報に基づいて、移動した場合の前記一のオブジェクトが含まれる所定の仮想領域内に存在する他のオブジェクトを検出し、
    前記一のオブジェクト及び検出された他のオブジェクト相互間の距離を算出し、
    算出された距離が所定の閾値より短いか否かを判断し、
    前記所定の閾値より短いと判断されたオブジェクトの総数を算出し、
    算出されたオブジェクトの総数が所定個数より多いか否かを判定し、
    所定個数より多いと判定された場合、前記仮想領域内に存在する複数のオブジェクトに関する情報を前記サーバへ送信し、
    前記サーバは、
    前記仮想領域内に存在する複数のオブジェクトに関する情報を受信し、
    受信した前記複数のオブジェクトから一対のオブジェクトを選択した一の組み合わせごとに、衝突判定処理を実行する前記衝突判定クライアントを割り当てることを特徴とするオブジェクト移動制御方法。
  5. 所定のオブジェクトの移動位置を該オブジェクト単位で制御する複数のクライアント制御装置、及び所定の仮想領域内にて所定のオブジェクト間の衝突を判定する複数の衝突判定クライアントとデータ通信することが可能に接続してあり、複数の前記仮想領域で構成される仮想空間内の複数のオブジェクトの位置を取得して記憶するサーバにおいて、
    前記仮想領域内に存在する複数のオブジェクトに関する情報を前記クライアント制御装置から受信するオブジェクト情報受信手段と、
    受信した前記複数のオブジェクトから一対のオブジェクトを選択した一の組み合わせごとに、衝突判定処理を実行する前記衝突判定クライアントを割り当てる割当手段と
    前記衝突判定クライアントの処理負荷を示す指標値を取得する負荷取得手段とを備え、
    前記割当手段は、取得した指標値に基づいて、一対のオブジェクトが割り当てられる衝突判定クライアントを特定するようにしてあることを特徴とするサーバ。
  6. 所定のオブジェクトの移動位置を該オブジェクト単位で制御する複数のクライアント制御装置、及び所定の仮想領域内にて所定のオブジェクト間の衝突を判定する複数の衝突判定クライアントとデータ通信することが可能に接続してあり、複数の前記仮想領域で構成される仮想空間内の複数のオブジェクトの位置を取得して記憶するサーバで実行することが可能なコンピュータプログラムにおいて、
    前記サーバを、
    前記仮想領域内に存在する複数のオブジェクトに関する情報を前記クライアント制御装置から受信するオブジェクト情報受信手段、
    受信した前記複数のオブジェクトから一対のオブジェクトを選択した一の組み合わせごとに、衝突判定処理を実行する前記衝突判定クライアントを割り当てる割当手段、及び
    前記衝突判定クライアントの処理負荷を示す指標値を取得する負荷取得手段として機能させ、
    前記割当手段を、取得した指標値に基づいて、一対のオブジェクトが割り当てられる衝突判定クライアントを特定する手段
    として機能させることを特徴とするコンピュータプログラム
JP2008074686A 2008-03-21 2008-03-21 オブジェクト移動制御システム、オブジェクト移動制御方法、サーバ及びコンピュータプログラム Active JP5039950B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008074686A JP5039950B2 (ja) 2008-03-21 2008-03-21 オブジェクト移動制御システム、オブジェクト移動制御方法、サーバ及びコンピュータプログラム
US12/407,801 US8271587B2 (en) 2008-03-21 2009-03-20 Object movement control system, object movement control method, server and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008074686A JP5039950B2 (ja) 2008-03-21 2008-03-21 オブジェクト移動制御システム、オブジェクト移動制御方法、サーバ及びコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2009230442A JP2009230442A (ja) 2009-10-08
JP5039950B2 true JP5039950B2 (ja) 2012-10-03

Family

ID=41090095

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008074686A Active JP5039950B2 (ja) 2008-03-21 2008-03-21 オブジェクト移動制御システム、オブジェクト移動制御方法、サーバ及びコンピュータプログラム

Country Status (2)

Country Link
US (1) US8271587B2 (ja)
JP (1) JP5039950B2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5039950B2 (ja) * 2008-03-21 2012-10-03 インターナショナル・ビジネス・マシーンズ・コーポレーション オブジェクト移動制御システム、オブジェクト移動制御方法、サーバ及びコンピュータプログラム
JP5671297B2 (ja) * 2009-11-16 2015-02-18 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Imsネットワークを介してマルチメディア・サービスを最適化するための方法及びシステム
FI122084B (fi) * 2009-12-03 2011-08-15 Teconer Oy Päätelaiteperusteinen tieolosuhteiden kartoitusmenetelmä ja -järjestelmä
JP5190486B2 (ja) * 2010-04-26 2013-04-24 株式会社スクウェア・エニックス ネットワークゲームシステム、クライアント装置及びプログラム
CN102445147A (zh) * 2010-10-06 2012-05-09 鸿富锦精密工业(深圳)有限公司 影像量测机台测头模拟系统及方法
US8660986B2 (en) * 2010-10-27 2014-02-25 Microsoft Corporation Preserving user intent in merging ordered objects
JPWO2015011741A1 (ja) * 2013-07-25 2017-03-02 株式会社スクウェア・エニックス・ホールディングス 画像処理プログラム、サーバ装置、画像処理システムおよび画像処理方法
JP2015118576A (ja) 2013-12-18 2015-06-25 株式会社ソニー・コンピュータエンタテインメント シミュレーション装置
JP2015118575A (ja) * 2013-12-18 2015-06-25 株式会社ソニー・コンピュータエンタテインメント シミュレーション装置
EP3185152B1 (en) * 2015-12-22 2022-02-09 Dassault Systèmes Distributed clash and snapping
US10019306B2 (en) 2016-04-27 2018-07-10 Western Digital Technologies, Inc. Collision detection for slave storage devices
WO2018126956A1 (zh) * 2017-01-05 2018-07-12 腾讯科技(深圳)有限公司 一种信息处理方法、装置及服务器
JP7321471B1 (ja) 2022-06-21 2023-08-07 グリー株式会社 情報処理システム、情報処理方法、及びプログラム

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5712964A (en) * 1993-09-29 1998-01-27 Fujitsu Limited Computer graphics data display device and method based on a high-speed generation of a changed image
CN1114456C (zh) * 1994-06-28 2003-07-16 世嘉企业股份有限公司 游戏装置及游戏的重放方法
US5947819A (en) * 1996-05-22 1999-09-07 Konami Co., Ltd. Object-throwing video game system
KR100287138B1 (ko) * 1997-07-15 2001-04-16 윤종용 다자참여형가상공간에서참여자관리방법및그시스템
JP3384314B2 (ja) * 1997-12-02 2003-03-10 ヤマハ株式会社 楽音応答画像生成システム、方法、装置、及び、そのための記録媒体
US6162174A (en) * 1998-09-16 2000-12-19 Siemens Medical Systems, Inc. Method for compensating for object movement in ultrasound images
JP3426223B2 (ja) 2000-09-27 2003-07-14 株式会社ソニー・コンピュータエンタテインメント マルチプロセッサシステム、データ処理システム、データ処理方法、コンピュータプログラム
US20020138607A1 (en) * 2001-03-22 2002-09-26 There System, method and computer program product for data mining in a three-dimensional multi-user environment
EP1472052A2 (en) * 2002-01-31 2004-11-03 Braintech Canada, Inc. Method and apparatus for single camera 3d vision guided robotics
JP2003330900A (ja) * 2002-05-09 2003-11-21 Nec Corp アプリケーション並列処理システム及びアプリケーション並列処理方法
US7129951B2 (en) * 2004-05-06 2006-10-31 Valve Corporation Method and system for performing speculative collisions for a video game
US8368686B2 (en) * 2004-05-26 2013-02-05 Sony Online Entertainment Llc Resource management for rule-based procedural terrain generation
US20070276901A1 (en) * 2006-05-23 2007-11-29 Bhp Billiton Innovation Pty Ltd. Method and system for providing a graphical workbench environment with intelligent plug-ins
JP2007323544A (ja) * 2006-06-05 2007-12-13 Sony Corp 情報処理システム、情報処理装置、および方法、並びにコンピュータ・プログラム
US20080030458A1 (en) * 2006-08-07 2008-02-07 Rene Helbing Inertial input apparatus and method with optical motion state detection
US20090017910A1 (en) * 2007-06-22 2009-01-15 Broadcom Corporation Position and motion tracking of an object
US7916647B2 (en) * 2007-11-07 2011-03-29 Brocade Communications Systems, Inc. Automatic adjustment of logical channels in a fibre channel network
JP5039950B2 (ja) * 2008-03-21 2012-10-03 インターナショナル・ビジネス・マシーンズ・コーポレーション オブジェクト移動制御システム、オブジェクト移動制御方法、サーバ及びコンピュータプログラム
US8363894B2 (en) * 2008-12-12 2013-01-29 Silicon Laboratories Inc. Apparatus and method for implementing a touchless slider
US8441441B2 (en) * 2009-01-06 2013-05-14 Qualcomm Incorporated User interface for mobile devices
JP5457768B2 (ja) * 2009-09-09 2014-04-02 任天堂株式会社 オブジェクト移動ゲームプログラムおよびオブジェクト移動ゲーム装置

Also Published As

Publication number Publication date
US8271587B2 (en) 2012-09-18
US20090241034A1 (en) 2009-09-24
JP2009230442A (ja) 2009-10-08

Similar Documents

Publication Publication Date Title
JP5039950B2 (ja) オブジェクト移動制御システム、オブジェクト移動制御方法、サーバ及びコンピュータプログラム
CN109144696A (zh) 一种任务调度方法、装置、电子设备及存储介质
US6879872B2 (en) Method for generating three-dimensional sheet-metal model and a computer program
CN113240936B (zh) 停车区域推荐方法、装置、电子设备和介质
JP6214684B2 (ja) ソーシャルネットワークサービス提供システム及びソーシャルネットワークサービス提供方法
JP6870466B2 (ja) 制御プログラム、制御方法、制御装置、及びデータベースサーバ
US20180121883A1 (en) Apparatus and method for recommending meeting place
JP6915279B2 (ja) 作業者割当て装置、作業者割当て方法及び作業者割当てプログラム
CN109144697A (zh) 一种任务调度方法、装置、电子设备及存储介质
JP6183099B2 (ja) 入力支援装置、入力支援方法及び入力支援プログラム
JP5829298B2 (ja) ジェスチャ情報を利用してサービスに対するユーザ間の関係を設定する方法およびシステム
JP5576440B2 (ja) モバイル端末の位置及び動きパターンを用いてユーザ間の関係を設定するソーシャルネットワークサービス提供システム及び方法
JP2020123139A (ja) 情報処理システム、端末装置、クライアント装置、それらの制御方法、プログラム、記憶媒体
US20180279078A1 (en) Confirming work supporting device, confirming work supporting system, and computer program product
CN101473290A (zh) 线形状处理装置、线形状处理方法、信息记录介质及程序
JP5115457B2 (ja) カーソル移動制御方法及び装置、プログラム
WO2021027960A1 (zh) 任务分配方法、电子设备及计算机可读存储介质
CN114743385A (zh) 车辆处理方法、装置及计算机设备
CN113405557A (zh) 路径规划方法及相关装置、电子设备、存储介质
KR20210023892A (ko) 정보 처리 장치, 이동 장치, 정보 처리 시스템, 및 방법, 그리고 프로그램
US20200404109A1 (en) Information processing apparatus, non-transitory computer readable medium, and information processing system
JP2011258097A (ja) データ処理装置
KR20140103531A (ko) 2차원 트리 구조를 3차원으로 변환하기 위한 데이터 처리 방법 및 이를 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록매체
WO2016189587A1 (ja) チャンネルシミュレーション装置及びチャンネルシミュレーションプログラム
JP2008276530A (ja) 干渉計算装置およびその制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120207

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120515

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20120515

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120607

R150 Certificate of patent or registration of utility model

Ref document number: 5039950

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150720

Year of fee payment: 3