JP3562554B2 - 仮想空間制御システム、仮想空間制御装置および方法、並びに記録媒体 - Google Patents
仮想空間制御システム、仮想空間制御装置および方法、並びに記録媒体 Download PDFInfo
- Publication number
- JP3562554B2 JP3562554B2 JP28099897A JP28099897A JP3562554B2 JP 3562554 B2 JP3562554 B2 JP 3562554B2 JP 28099897 A JP28099897 A JP 28099897A JP 28099897 A JP28099897 A JP 28099897A JP 3562554 B2 JP3562554 B2 JP 3562554B2
- Authority
- JP
- Japan
- Prior art keywords
- avatar
- virtual space
- collision determination
- collision
- information
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
- Digital Computer Display Output (AREA)
- Information Transfer Between Computers (AREA)
- User Interface Of Digital Computer (AREA)
Description
【発明の属する技術分野】
本発明は、仮想空間制御装置および方法、並びに記録媒体に関し、特に、ユーザ端末においてアバタの衝突判定を行うことにより、アバタの移動を円滑に行うことができるようにした仮想空間制御装置および方法、並びに記録媒体に関する。
【0002】
【従来の技術】
複数のユーザが共有する仮想空間(ネットワークとコンピュータを使って実現する社会、いわゆるサイバースペース)を制御する仮想空間制御システムは、図21に示すように、仮想空間を管理するサーバ1と、インターネットに代表されるネットワーク2を介してサーバ1に接続される複数のユーザ端末(クライアント)3−1乃至3−3(以下、各ユーザ端末3−1乃至3−3を個々に区別する必要がない場合、単にユーザ端末3と記述する)から構成される。仮想空間上には、図22乃至24に示すように、複数のオブジェクト(家具、または電化製品等)と、アバタ(仮想空間においてユーザの代わりに行動する。例えば、移動、挙手等を行う)が存在する。アバタは、ユーザの操作に対応して、仮想空間上を移動する。なお、この明細書において、システムの用語は、複数の装置で構成される全体の装置を表すものとして使用する。
【0003】
従来の仮想空間制御システムの構成の一例について、図25を参照して説明する。サーバ1は、仮想空間管理部11、通信制御部12、仮想空間情報格納部13、オブジェクト・アバタ管理部14、および衝突判定部15から構成される。仮想空間管理部11は、ユーザ端末3−1乃至3−3から入力された情報(仮想空間への参加要求、およびアバタの移動情報等)の処理を、オブジェクト・アバタ管理部14、または衝突判定部15に行わせ、その処理結果を通信制御部12に出力するようになされている。さらに、仮想空間管理部11は、仮想空間に参加しているユーザの名前、およびユーザに対応するアバタの名前を管理している。
【0004】
通信制御部12は、ユーザ端末3−1乃至3−3とネットワーク2を介して行われる情報の通信を制御するようになされている。仮想空間情報格納部13には、仮想空間の初期状態のデータ(オブジェクトの座標等)、並びに、空間背景、オブジェクト、およびアバタの画像データが格納されている。オブジェクト・アバタ管理部14は、現在のオブジェクトとアバタの位置、および状態を管理する。衝突判定部15は、アバタが移動された場合、オブジェクト・アバタ管理部14が管理する位置情報に基づいて、移動されるアバタと、他のアバタ、またはオブジェクトが衝突するか否かを判定する。
【0005】
ユーザ端末3−1は、仮想空間管理部31、通信制御部32、仮想空間情報格納部33、UI制御部34、およびオブジェクト・アバタ管理部35から構成される。仮想空間管理部31は、UI制御部34、およびオブジェクト・アバタ管理部35を制御して、サーバ1から入力された情報(衝突判定の結果、および他のユーザに対応するアバタの位置等)の処理を行わせるようになされている。さらに、仮想空間管理部31は、サーバ1に出力する情報(アバタの移動情報等)を通信制御部32に出力する。通信制御部32は、ネットワーク2を介したサーバ1との通信を制御する。仮想空間情報格納部33には、空間背景、オブジェクト、およびアバタの画像データが格納されている。UI制御部34は、図示せぬ表示部に仮想空間を表示するとともに、ユーザの操作(アバタの移動等)を受け付けるようになされている。オブジェクト・アバタ管理部35は、現在のオブジェクトとアバタの位置、および状態を管理する。
【0006】
なお、ユーザ端末3−2,3−3の構成は、ユーザ端末3−1の構成と同様であるので、その説明を省略する。
【0007】
次に、仮想空間制御システムにおけるアバタの移動処理について、図26のフローチャートと図27を参照して説明する。なお、図27は図26の各ステップに対応する情報の入出力を矢印で示している。ステップS101において、ユーザは、表示部に表示される仮想空間上のアバタを移動する操作を行う(例えば、アバタをマウスでクリックし、移動したい位置にドラッグする)。ステップS102において、UI制御部34は、ユーザの移動操作を受け付け、その移動操作に対応した移動情報(移動されるアバタ名と移動先の位置)を仮想空間管理部31に出力する。ステップS103において、仮想空間管理部31は、移動情報を通信制御部32に出力し、通信制御部32は、移動情報をネットワーク2を介して、サーバ1に出力する。サーバ1においては、通信制御部12が、移動情報を受け付け、仮想空間管理部11に出力する。
【0008】
ステップS104において、仮想空間管理部11は、移動情報を衝突判定部15に入力させる。衝突判定部15は、移動情報とオブジェクト・アバタ管理部14が管理する現在のオブジェクト、およびアバタの位置情報に基づいて、移動後のアバタと、他のアバタ、またはオブジェクトが衝突するか否かを判定し、衝突しない場合、その旨を仮想空間管理部11に通知し、ステップS105に進む。ステップS105において、仮想空間管理部11は、オブジェクト・アバタ管理部14で管理されるアバタの位置情報を移動先の位置に更新する。ステップS106において、仮想空間管理部11は、衝突判定結果と更新されたアバタの位置情報を通信制御部12に出力し、通信制御部12は、衝突判定結果と更新されたアバタの位置情報をネットワーク2を介してユーザ端末3−1乃至3−3に出力する。
【0009】
ステップS107において、仮想空間管理部31は、オブジェクト・アバタ管理部35で管理されているアバタの位置情報を、サーバ1から入力された位置情報に更新する。ステップS108において、仮想空間管理部31は、衝突判定結果をUI制御部34に出力し、UI制御部34は、オブジェクト・アバタ管理部35で管理されているアバタの位置情報に基づいて、表示されている仮想空間上のアバタの位置を更新する(アバタを移動する)。
【0010】
ステップS104において、移動後のアバタと他のアバタ、またはオブジェクトが衝突すると判定された場合、ステップS109に進む。ステップS109において、仮想空間管理部11は、衝突判定結果を通信制御部12に出力し、通信制御部12は、衝突判定結果をネットワーク2を介してユーザ端末3−1に出力する。ユーザ端末3−1においては、入力された判定結果が「衝突発生」であるので、アバタの位置を更新する処理は行われない(アバタは移動されない)。
【0011】
【発明が解決しようとする課題】
このように、アバタを移動させる場合、移動させるアバタと、仮想空間上の他のアバタ、またはオブジェクトが衝突するか否かを判定する必要がある。この判定は、サーバ1において行われているので、ユーザがアバタの移動操作を行う毎に、ユーザ端末3−1はサーバ1に、衝突が発生するか否かを問い合わせる必要がある。ユーザ端末3−1に表示されているアバタの位置の更新(アバタの移動)は、サーバ1の衝突判定結果がユーザ端末3−1に届いてから実行されるので、ネットワーク2の混雑状況によっては、アバタの移動が円滑に行われない課題があった。
【0012】
また、サーバ1が全ての衝突判定を一括して処理するので、複数の衝突判定が同時に発生した場合、仮想空間制御システム全体の処理能力が低下する課題があった。
【0013】
本発明はこのような状況に鑑みてなされたものであり、ユーザ端末で衝突判定を行うことにより、アバタの移動を円滑に行うとともに、仮想空間制御システム全体の処理能力の低下を防止するものである。
【0014】
【発明の属する技術分野】
本発明の仮想空間制御システムは、ユーザ端末が、ユーザからの移動操作を受け付けて、仮想空間上でユーザを表すアバタの移動情報を収集する収集手段と、収集手段によって収集されたアバタの移動情報とサーバから供給されるオブジェクトの位置情報とに基づき、仮想空間上のオブジェクトとアバタの現在地情報を管理する現在地情報管理手段と、現在地情報管理手段によって管理された仮想空間上のオブジェクトとアバタの現在地情報に基づいて、移動するアバタの衝突判定を行う第1衝突判定手段と、第1衝突判定手段の衝突判定結果に対応する処理を行う衝突判定対応処理手段と、第1衝突判定手段の衝突判定結果に基づき、サーバにアバタの位置情報を出力する出力手段とを備え、サーバが、ユーザ端末の出力手段から出力されたアバタの位置情報と、オブジェクトの位置情報に基づいて、移動するアバタの衝突判定を行う第2衝突判定手段を備え、前記ユーザ端末が、第1衝突判定手段とサーバにおける第2衝突判定手段との衝突判定結果が異なる場合、第1衝突判定手段の衝突判定結果に対応する衝突判定対応処理手段による処理を、第2衝突判定手段の衝突判定結果に対応して修正する修正手段をさらに備えることを特徴とする。
【0015】
本発明の第1の仮想空間制御方法は、ユーザ端末における、ユーザからの移動操作を受け付けて、仮想空間上でユーザを表すアバタの移動情報を収集する収集ステップと、ユーザ端末における、収集ステップの処理で収集されたアバタの移動情報とサーバから供給されるオブジェクトの位置情報とに基づき、仮想空間上のオブジェクトとアバタの現在地情報を管理する現在地情報管理ステップと、ユーザ端末における、現在地情報管理ステップで管理された仮想空間上のオブジェクトとアバタの現在地情報に基づいて、移動するアバタの衝突判定を行う第1衝突判定ステップと、ユーザ端末における、第1衝突判定ステップの処理での衝突判定結果に対応する処理を行う衝突判定対応処理ステップと、ユーザ端末における、第1衝突判定ステップの処理での衝突判定結果に基づき、サーバにアバタの位置情報を出力する出力ステップと、サーバにおける、ユーザ端末の出力ステップの処理で出力されたアバタの位置情報と、オブジェクトの位置情報に基づいて、移動するアバタの衝突判定を行う第2衝突判定ステップと、ユーザ端末における、第1衝突判定ステップの処理と第2衝突判定ステップの処理との衝突判定結果が異なる場合、第1衝突判定ステップの処理の衝突判定結果に対応する衝突判定対応処理ステップによる処理を、第2衝突判定ステップの処理の衝突判定結果に対応して修正する修正ステップと含むことを特徴とする。
本発明の第1の記録媒体に記録されているプログラムは、ユーザからの移動操作を受け付けて、仮想空間上でユーザを表すアバタの移動情報を収集する収集ステップと、収集ステップの処理で収集されたアバタの移動情報とサーバから供給されるオブジェクトの位置情報とに基づき、仮想空間上のオブジェクトとアバタの現在地情報を管理する現在地情報管理ステップと、現在地情報管理ステップで管理された仮想空間上のオブジェクトとアバタの現在地情報に基づいて、移動するアバタの衝突判定を行う衝突判定ステップと、衝突判定ステップの処理での衝突判定結果に対応する処理を行う衝突判定対応処理ステップと、衝突判定ステップの処理での衝突判定結果に基づき、サーバにアバタの位置情報を出力する出力ステップと、サーバにおける、ユーザ端末の出力ステップの処理で出力されたアバタの位置情報と、オブジェクトの位置情報に基づいて、移動するアバタの衝突判定を行う第2衝突判定ステップと、衝突判定ステップの処理と、サーバにおいて行われる移動するアバタの衝突判定処理との衝突判定結果が異なる場合、衝突判定ステップの処理の衝突判定結果に対応する衝突判定対応処理ステップによる処理を、サーバにおいて行われる移動するアバタの衝突判定処理の衝突判定結果に対応して修正する修正ステップとを含むことを特徴とする。
【0016】
本発明の仮想空間制御装置は、ユーザからの移動操作を受け付けて、仮想空間上でユーザを表すアバタの移動情報を収集する収集手段と、収集手段によって収集されたアバタの移動情報とサーバから供給されるオブジェクトの位置情報とに基づき、仮想空間上のオブジェクトとアバタの現在地情報を管理する現在地情報管理手段と、現在地情報管理手段によって管理された仮想空間上のオブジェクトとアバタの現在地情報に基づいて、移動するアバタの衝突判定を行う衝突判定手段と、収集手段によって収集されたアバタの過去の移動情報を保管する移動情報保管手段と、移動情報保管手段によって保管された過去の移動情報に基づいて、アバタの移動位置を予測する移動位置予測手段と、移動位置予測手段によって予測された移動位置に基づいて衝突予測を行う衝突予測手段とを備えることを特徴とする。
本発明の第2の仮想空間制御方法は、ユーザからの移動操作を受け付けて、仮想空間上でユーザを表すアバタの移動情報を収集する収集ステップと、収集ステップの処理で収集されたアバタの移動情報とサーバから供給されるオブジェクトの位置情報とに基づき、仮想空間上のオブジェクトとアバタの現在地情報を管理する現在地情報管理ステップと、現在地情報管理ステップの処理で管理された仮想空間上のオブジェクトとアバタの現在地情報に基づいて、移動するアバタの衝突判定を行う衝突判定ステップと、収集ステップの処理で収集されたアバタの過去の移動情報を保管する移動情報保管ステップと、移動情報保管ステップの処理で保管された過去の移動情報に基づいて、アバタの移動位置を予測する移動位置予測ステップと、移動位置予測ステップの処理で予測された移動位置に基づいて衝突予測を行う衝突予測ステップとを含むことを特徴とする。
本発明の第2の記録媒体に記録されているプログラムは、ユーザからの移動操作を受け付けて、仮想空間上でユーザを表すアバタの移動情報を収集する収集ステップと、収集ステップの処理で収集されたアバタの移動情報とサーバから供給されるオブジェクトの位置情報とに基づき、仮想空間上のオブジェクトとアバタの現在地情報を管理する現在地情報管理ステップと、現在地情報管理ステップの処理で管理された仮想空間上のオブジェクトとアバタの現在地情報に基づいて、移動するアバタの衝突判定を行う衝突判定ステップと、収集ステップの処理で収集されたアバタの過去の移動情報を保管する移動情報保管ステップと、移動情報保管ステップの処理で保管された過去の移動情報に基づいて、アバタの移動位置を予測する移動位置予測ステップと、移動位置予測ステップの処理で予測された移動位置に基づいて衝突予測を行う衝突予測ステップとを含むことを特徴とする。
【0017】
本発明の仮想空間制御システムおよび方法、並びに記録媒体のプログラムにおいては、ユーザ端末により、ユーザからの移動操作が受け付けられて仮想空間上でユーザを表すアバタの移動情報が収集され、収集されたアバタの移動情報とサーバから供給されるオブジェクトの位置情報とに基づき、仮想空間上のオブジェクトとアバタの現在地情報が管理される。また、管理された仮想空間上のオブジェクトとアバタの現在地情報に基づいて、移動するアバタの第1の衝突判定が行われ、この衝突判定結果に対応する処理が行われる。さらに、サーバにより、ユーザ端末から出力されたアバタの位置情報と、オブジェクトの位置情報に基づいて、移動するアバタの第2の衝突判定が行われ、ユーザ端末により、第1および第2の衝突判定の衝突判定結果が異なる場合、第1の衝突判定結果に対応する処理が、第2の衝突判定結果に対応して修正される。
本発明の仮想空間制御装置および方法、並びに記録媒体のプログラムにおいては、ユーザからの移動操作が受け付けられて仮想空間上でユーザを表すアバタの移動情報が収集され、収集されたアバタの移動情報とサーバから供給されるオブジェクトの位置情報とに基づき、仮想空間上のオブジェクトとアバタの現在地情報が管理され、管理された仮想空間上のオブジェクトとアバタの現在地情報に基づいて、移動するアバタの衝突判定が行われる。また、収集されたアバタの過去の移動情報が保管され、保管された過去の移動情報に基づいて、アバタの移動位置が予測され、予測された移動位置に基づいて衝突予測が行われる。
【0018】
【発明の実施の形態】
以下に本発明の実施の形態を説明するが、特許請求の範囲に記載の発明の各手段と以下の実施の形態との対応関係を明らかにするために、各手段の後の括弧内に、対応する実施の形態(但し一例)を付加して本発明の特徴を記述すると、次のようになる。
【0019】
請求項1に記載の仮想空間制御システムは、ユーザ端末(例えば、図1のユーザ端末301)が、ユーザからの移動操作を受け付けて、仮想空間上でユーザを表すアバタの移動情報を収集する収集手段(例えば、図1の仮想空間管理部31)と、収集手段によって収集されたアバタの移動情報とサーバから供給されるオブジェクトの位置情報とに基づき、仮想空間上のオブジェクトとアバタの現在地情報を管理する現在地情報管理手段(例えば、図1のオブジェクト・アバタ管理部35)と、現在地情報管理手段によって管理された仮想空間上のオブジェクトとアバタの現在地情報に基づいて、移動するアバタの衝突判定を行う第1衝突判定手段(例えば、図1の衝突判定部36)と、第1衝突判定手段の衝突判定結果に対応する処理を行う衝突判定対応処理手段(例えば、図1の仮想空間管理部31)と、第1衝突判定手段の衝突判定結果に基づき、サーバにアバタの位置情報を出力する出力手段(例えば、図1の通信制御部32)とを備え、サーバ(例えば、図1のサーバ1)が、ユーザ端末の出力手段から出力されたアバタの位置情報と、オブジェクトの位置情報に基づいて、移動するアバタの衝突判定を行う第2衝突判定手段(例えば、図1の衝突判定部15)を備え、ユーザ端末が、第1衝突判定手段とサーバにおける第2衝突判定手段との衝突判定結果が異なる場合、第1衝突判定手段の衝突判定結果に対応する衝突判定対応処理手段による処理を、第2衝突判定手段の衝突判定結果に対応して修正させる修正手段(例えば、図3のステップS15乃至17の処理を行う図1の仮想空間管理部31)をさらに備えることを特徴とする。
【0021】
請求項4に記載の仮想空間制御装置(例えば、図9のユーザ端末)は、ユーザからの移動操作を受け付けて、仮想空間上でユーザを表すアバタの移動情報を収集する収集手段(例えば、図9の仮想空間管理部31)と、収集手段によって収集されたアバタの移動情報とサーバから供給されるオブジェクトの位置情報とに基づき、仮想空間上のオブジェクトとアバタの現在地情報を管理する現在地情報管理手段(例えば、図9のオブジェクト・アバタ管理部35)と、現在地情報管理手段によって管理された仮想空間上のオブジェクトとアバタの現在地情報に基づいて、移動するアバタの衝突判定を行う衝突判定手段(例えば、図9の衝突判定部36)と、収集手段によって収集されたアバタの過去の移動情報を保管する移動情報保管手段(例えば、図9のオブジェクト・アバタ管理部35)と、移動情報保管手段によって保管された過去の移動情報に基づいて、アバタの移動位置を予測する移動位置予測手段(例えば、図9の衝突判定部36)と、移動位置予測手段によって予測された移動位置に基づいて衝突予測を行う衝突予測手段(例えば、図9の衝突判定部36)とを備えることを特徴とする。
【0022】
但し勿論この記載は、各手段を記載したものに限定することを意味するものではない。
【0023】
本発明を適用した仮想空間制御システムの構成について、図1を参照して説明する。この仮想空間制御システムと図25に示した仮想空間制御システムとの違いは、ユーザ端末3−1乃至3−3に衝突判定部36が追加されたことである。衝突判定部36は、仮想空間管理部31から入力される移動情報(移動されるアバタ名と移動先の位置)と、オブジェクト・アバタ管理部35から入力される現在のオブジェクト、およびアバタの位置情報に基づいて、衝突が発生するか否かを判定し、判定結果を仮想空間管理部31に出力するようになされている。衝突判定部36以外の各部は、図25に示した仮想空間制御システムと同様であるので、その説明は省略する。
【0024】
次に、各部で管理される情報の構造の一例を示す。サーバ1の仮想空間管理部11は、サーバ1に接続しているユーザ端末名、および接続しているユーザ数を管理する。
接続しているユーザ端末名
client_machine_1
client_machine_2
接続しているユーザ数
2
【0025】
仮想空間情報格納部13は、仮想空間情報、オブジェクト情報、およびアバタ情報を管理する。
【0026】
オブジェクト・アバタ管理部14は、現在のオブジェクト、およびアバタの位置情報を管理する。
【0027】
ユーザ端末3−1の仮想空間管理部31は、接続しているサーバ名を管理する。
サーバ名
server_machine_1
【0028】
仮想空間情報格納部33は、仮想空間情報、オブジェクト情報、およびアバタ情報を管理する。
【0029】
オブジェクト・アバタ管理部35は、現在のオブジェクトとアバタの位置情報を管理する。
【0030】
【0031】
【0032】
次に、この仮想空間制御システムにおけるアバタの移動処理について、図2と図3のフローチャート、並びに図4を参照して説明する。なお、図2の各ステップと図3のステップS12乃至S17は、主にユーザ端末3−1の処理を示し、図3のステップS8乃至S11,S14は主にサーバ1の処理を示し、図4は図2と図3のフローチャートの各ステップに対応する情報の入出力を示している。
【0033】
ステップS1において、ユーザは、図示せぬ表示部に表示される仮想空間上のアバタを移動する操作を行う。例えば、アバタをマウスでクリックし、移動したい方向にドラッグする。なお、アバタの移動距離は、マウスの移動速度に対応する。すなわち、マウスを速く移動するとアバタは長い距離を移動し、マウスを遅く移動するとアバタは短い距離を移動する。UI制御部34は、ユーザの移動操作を受け付け、その移動操作に対応した移動情報を仮想空間管理部31に出力する。ステップS2において、仮想空間管理部31は、衝突判定部36に移動情報を出力し、衝突判定を行わせる。この衝突判定処理の詳細については後述する。ステップS3において、衝突判定部36による衝突判定結果が「衝突なし」と判定された場合、ステップS4に進む。
【0034】
ステップS4において、仮想空間管理部31は、オブジェクト・アバタ管理部35で管理されるアバタの位置情報を移動情報に含まれる移動先の位置の座標に更新する。ステップS5において、仮想空間管理部31は、衝突判定結果をUI制御部34に出力する。ステップS6において、UI制御部34は、オブジェクト・アバタ管理部35で管理されるアバタの位置情報に基づいて、仮想空間上のアバタの表示位置を更新する。ステップS7において、仮想空間管理部31は、移動情報を通信制御部32に出力し、通信制御部32は、移動情報をネットワーク2を介してサーバ1に出力する。サーバ1においては、通信制御部12が移動情報を受け付け、仮想空間管理部11に出力する。
【0035】
ステップS8において、仮想空間管理部11は、移動情報を衝突判定部15に出力し、衝突判定を行わせる。ステップS9において、衝突判定部15による衝突判定結果が「衝突なし」であると判定された場合、ステップS10に進む。ステップS10において、仮想空間管理部11は、オブジェクト・アバタ管理部14で管理されるアバタの位置情報を移動情報に含まれる移動先の位置の座標に更新する。ステップS11において、仮想空間管理部11は、衝突判定結果と更新されたアバタの位置情報を通信制御部12に出力し、通信制御部12は、衝突判定結果と更新されたアバタの位置情報をネットワーク2を介してユーザ端末3−1に出力する。ユーザ端末3−1においては、通信制御部32が、衝突判定結果と更新されたアバタの位置情報を受け付け、仮想空間管理部31に出力する。
【0036】
ステップS12において、仮想空間管理部31は、入力された衝突判定結果が「衝突なし」であると判定された場合、既にアバタの位置は更新されているので処理を終了する。
【0037】
ステップS3において、ステップS2における衝突判定部36の衝突判定結果が「衝突発生」であると判定された場合、ステップS13に進む。ステップS13において、衝突発生の情報が仮想空間管理部31からUI制御部34に出力される。UI制御部34は、アバタを移動させず、衝突発生の情報(例えば、「衝突するので、移動できません」のようなメッセージ)を表示部に表示する。また、同時に図示せぬスピーカからビープ音が発せられる。
【0038】
ステップS9において、ステップS8における衝突判定部15の衝突判定結果が「衝突発生」であると判定された場合、ステップS14に進む。ステップS14において、仮想空間管理部11は、衝突発生の情報を通信制御部12に出力し、通信制御部12は、衝突判定結果をネットワーク2を介してユーザ端末3−1に出力する。ユーザ端末3−1においては、通信制御部32が、衝突判定結果を受け付け、仮想空間管理部31に出力する。このとき、ステップS12において、衝突判定結果が「衝突発生」であると判定されるので、ステップS15に進む。ステップS15において、仮想空間管理部31は、オブジェクト・アバタ管理部35が管理する現在のアバタの位置情報を、移動する前の座標に戻す。ステップS16において、仮想空間制御部31は、UI制御部34に衝突発生の情報を出力する。ステップS17において、UI制御部34は、オブジェクト・アバタ管理部35で管理されている現在のアバタの位置情報に基づいて、仮想空間上のアバタの表示位置を更新する(アバタを移動する前の位置に戻して表示する)。
【0039】
次に、ステップS2における衝突判定部36の衝突判定処理の詳細について、図5のフローチャートを参照して説明する。なお、図5のステップS21,S25、およびS26におけるオブジェクト・アバタ管理部35と仮想空間管理部31の動作を、それぞれオブジェクト・アバタ管理部14と仮想空間管理部11の動作と読み替えることにより、図3のステップS8におけるサーバ1の衝突判定部15の衝突判定処理も説明される。
【0040】
衝突判定部36は、仮想空間管理部31から移動されるアバタの移動情報が入力されると衝突判定処理を開始する。ステップS21において、衝突判定部36は、オブジェクト・アバタ管理部35からアバタ、またはオブジェクトの位置情報を1つ取得する。ステップS22において、衝突判定部36は、ステップS21において取得した位置情報が移動されるアバタの位置情報であるか否かを判定し、移動されるアバタの位置情報ではないと判定した場合、ステップS23に進む。
【0041】
ステップS23において、衝突判定部36は、移動されるアバタとステップS21で取得した位置情報に対応するアバタ、またはオブジェクトが衝突するか否かを判定し、衝突しないと判定した場合、ステップS24に進む。ステップS24において、衝突判定部36は、移動されるアバタと仮想空間上の全てのアバタ、およびオブジェクトとの衝突判定が行われたか否かを判定し、全ての衝突判定が行われたと判定された場合、ステップS25に進む。ステップS25において、衝突判定部36は、仮想空間管理部31に衝突判定結果として「衝突なし」と出力する。
【0042】
ステップS22において、ステップS21において取得した位置情報が移動されるアバタの位置情報であると判定された場合、いま移動しようとしているアバタが、自分自身と衝突するか否か判定する必要はないので、ステップS23をスキップし、ステップS24に進む。ステップS23において、移動されるアバタとステップS21で取得した位置情報に対応するアバタ、またはオブジェクトが衝突すると判定された場合、ステップS26に進む。ステップS26において、衝突判定部36は、仮想空間管理部31に衝突判定結果として「衝突発生」を出力する。
【0043】
ステップS24において、移動されるアバタと仮想空間上の全てのアバタ、およびオブジェクトとの衝突判定が行われていないと判定された場合、次のアバタ、またはオブジェクトの位置情報を取得するためステップS21に戻る。
【0044】
ステップS23の衝突判定の詳細について、図6乃至図8を参照して説明する。図6と図7に示すように、いま、仮想空間上には、アバタ1,2、およびオブジェクト1,2が存在する。これらには、図8に示すように、円形の領域が設定されている(図8には、アバタ1とオブジェクト1だけが示されているが、アバタ2とオブジェクト2にも、同様に、所定の半径の領域が設定されている)。衝突は、移動されるアバタ1の領域と、他のアバタ2、またはオブジェクト1,2の領域が重なるか否かで判定される。例えば図8に示すように、アバタ1の領域を示す円の中心をA、半径をRAとし、オブジェクト1の領域を示す円の中心をB、半径をRBとすれば、移動されるアバタ1とオブジェクト1の距離ABが、アバタ1の半径RAとオブジェクト1の半径RBの和(RA+RB)よりも小さい場合、衝突発生と判定され、アバタ1とオブジェクト1の距離ABが、アバタ1の半径RAとオブジェクト1の半径RBの和(RA+RB)よりも大きい場合、衝突は発生しないと判定される。なお、上述の説明においてはオブジェクトの領域の形状を円形としたが、オブジェクトの形状に応じて、例えば矩形としてもよい。
【0045】
次に、図1に示した仮想空間制御システムのユーザ端末3−1に更新情報保管部37を追加した仮想空間制御システムについて、図9を参照して説明する。更新情報保管部37は、アバタの過去の移動情報をシーケンス番号を付加し、保管するようになされている。なお、他の各部については、図1に示した仮想空間制御システムと同様であるので、その説明を省略する。
【0046】
更新情報保管部37を追加した仮想空間制御システムの動作について、図10乃至図12のフローチャートを参照して説明する。なお、図10と図12は、主にユーザ端末3−1の処理を示し、図11は主にサーバ1の処理を示している。
【0047】
ステップS31において、ユーザは、図示せぬ表示部に表示される仮想空間上のアバタを移動する操作を行う。UI制御部34は、ユーザの移動操作を受け付け、その移動操作に対応した移動情報を仮想空間管理部31に出力する。ステップS32において、仮想空間管理部31は、衝突判定部36に移動情報を出力し、衝突判定を行わせる。衝突判定部36は、移動情報とオブジェクト・アバタ管理部35から入力される現在のオブジェクト、およびアバタの位置情報に基づいて、移動されるアバタと、他のアバタまたはオブジェクトが衝突するか否かを判定し、その判定結果を仮想空間管理部31に出力する。ステップS33において、仮想空間管理部31は、入力された衝突判定結果が「衝突なし」と判定されたである場合、ステップS34に進む。
【0048】
ステップS34において、仮想空間管理部31は、オブジェクト・アバタ管理部35で管理されるアバタの位置情報を移動情報に含まれる移動先の位置の座標に更新する。ステップS35において、更新情報保管部37は、仮想空間管理部31の制御により、移動情報にシーケンス番号を付加して保管する。ステップS36において、仮想空間管理部31は、衝突判定結果をUI制御部34に出力する。ステップS37において、UI制御部34は、オブジェクト・アバタ管理部35で管理されているアバタの位置情報に基づいて、仮想空間上のアバタの表示位置を更新する。ステップS38において、仮想空間管理部31は、移動情報を通信制御部32に出力し、通信制御部32は、移動情報をネットワーク2を介して、サーバ1に出力する。サーバ1においては、通信制御部12が移動情報を受け付け、仮想空間管理部11に出力する。
【0049】
ステップS39において、仮想空間管理部11は、移動情報を衝突判定部15に出力し、衝突判定を行わせる。衝突判定部15は、移動情報とオブジェクト・アバタ管理部14から入力される現在のオブジェクト、およびアバタの位置情報に基づいて、衝突が発生するか否かを判定し、判定結果を仮想空間管理部11に出力する。ステップS40において、仮想空間管理部11は、入力された衝突判定結果が「衝突なし」であると判定された場合、ステップS41に進む。ステップS41において、仮想空間管理部11は、オブジェクト・アバタ管理部14で管理されるアバタの位置情報を移動情報に含まれる移動先の位置の座標に更新する。ステップS42において、仮想空間管理部11は、衝突判定結果と更新されたアバタの位置情報を通信制御部12に出力し、通信制御部12は、衝突判定結果と更新されたアバタの位置情報をネットワーク2を介してユーザ端末3−1に出力する。ユーザ端末3−1においては、通信制御部32が、衝突判定結果と更新されたアバタの位置情報を受け付け、仮想空間管理部31に出力する。
【0050】
ステップS43において、サーバ1から入力された衝突判定結果が「衝突なし」であると判定された場合、ステップS44に進む。ステップS44において、仮想空間管理部31は、入力された衝突判定結果に対応する移動情報を更新情報保管部37から削除する。
【0051】
ステップS33において、衝突判定結果が「衝突発生」であると判定された場合、ステップS45に進む。ステップS45において、衝突発生の情報がUI制御部34に出力され、アバタは移動されず、UI制御部34は、衝突発生の情報を表示部に表示する。また、同時に図示せぬスピーカからビープ音が発せられる。
【0052】
ステップS40において、衝突判定部15が、移動されるアバタと他のアバタ、またはオブジェクトが衝突すると判定した場合、ステップS46に進む。ステップS46において、仮想空間管理部11は、衝突判定結果として「衝突発生」を通信制御部12に出力し、通信制御部12は、衝突判定結果をネットワーク2を介してユーザ端末3−1に出力する。ユーザ端末3−1においては、通信制御部32が、衝突判定結果を受け付け、仮想空間管理部31に出力する。
【0053】
このとき、ステップS43においては、サーバ1から入力された衝突判定結果が「衝突発生」であると判定されるので、ステップS47に進む。ステップS47において、仮想空間管理部31は、サーバ1から入力された衝突判定結果に対応する移動情報が更新情報保管部37に存在するか否かを判定し、対応する移動情報が存在しない場合、処理を終了し、対応する移動情報が存在する場合、ステップS48に進む。ステップS48において、仮想空間管理部31は、更新情報保管部37からUI制御部34に、サーバ1から入力された衝突判定結果に対応する移動情報から最新のシーケンス番号を持つ移動情報までを出力する(アバタが移動した後、その衝突判定結果がネットワーク2を介して返ってくるまでに期間がかかるので、その間に、アバタがさらに移動すると、その移動に伴う情報が、更新情報保管部37に保管されている)。
【0054】
ステップS49において、UI制御部34は、入力された移動情報を逆時系列順に用いて画面表示を更新する(アバタを移動軌跡に沿って後退表示する)。ステップS50において、仮想空間管理部31は、UI制御部34に出力した移動情報を更新情報保管部37から削除する。ステップS51において、仮想空間管理部31は、オブジェクト・アバタ管理部35で管理される位置情報を移動前の値に更新する(移動前の値に戻す)。
【0055】
次に、図9に示した仮想空間制御システムと同様の構成であり、ユーザ端末3−1の衝突判定部36に衝突予測の機能を付加した仮想空間制御システムについて説明する。この場合、衝突判定部36は、仮想空間管理部31から入力される移動情報とオブジェクト・アバタ管理部35が管理するオブジェクト、およびアバタの位置情報に基づいて衝突判定を行う。また、衝突判定部36は、移動されるアバタの移動情報と位置情報から予想移動位置を計算し、オブジェクト・アバタ管理部35が管理するオブジェクト、および他のアバタの予想移動位置と比較して衝突する可能性があるか否かを判定する。
【0056】
ユーザ端末3−1は、アバタの予想移動位置を移動情報とともにサーバ1に出力し、サーバ1は、入力された予想移動位置をユーザ端末3−2,3−3に出力する。なお、衝突判定部36以外の各部は、図9に示した仮想空間制御システムと同様であるので、その説明を省略する。ユーザ端末3−2,3−3は、ユーザ端末3−1と同様であるので、その説明を省略する。
【0057】
オブジェクト・アバタ管理部35で管理されるオブジェクトとアバタ、それぞれの位置情報、および予想移動位置の一例を示す。
【0058】
次に、図13乃至図15のフローチャートを参照して、この仮想空間管理システムの動作について説明する。なお、図13と図15は、主にユーザ端末3−1の処理を示し、図14は、主にサーバ1の処理を示している。
【0059】
ステップS61において、ユーザは、図示せぬ表示部に表示される仮想空間上のアバタを移動する操作を行う。UI制御部34は、ユーザの移動操作を受け付け、その移動操作に対応した移動情報を仮想空間管理部31に出力する。ステップS62において、仮想空間管理部31は、衝突判定部36に移動情報を出力し、衝突判定および衝突予測を行わせる。
【0060】
ステップS62における衝突判定部36の衝突判定および衝突予測処理の詳細について、図16のフローチャートを参照して説明する。仮想空間管理部31がアバタの移動情報を衝突判定部36に入力すると、衝突判定部36は、衝突判定および衝突予測処理を開始する。ステップS91において、衝突判定部36は、オブジェクト・アバタ管理部35からアバタ、またはオブジェクトの位置情報を1つ取得する。なお、この位置情報の中には、他のユーザ端末3−2,3−3のアバタの予想移動位置も含まれている。ステップS92において、衝突判定部36は、ステップS91において取得した位置情報が移動されるアバタの位置情報であるか否かを判定し、移動されるアバタの位置情報ではないと判定した場合、ステップS93に進む。ステップS93において、衝突判定部36は、移動されるアバタとステップS91で取得した位置情報に対応するアバタ、またはオブジェクトが衝突するか否かを判定し、衝突しないと判定した場合、ステップS94に進む。
【0061】
ステップS94において、衝突判定部36は、更新情報保管部37が管理する移動情報とオブジェクト・アバタ管理部35が管理する現在の位置情報から次の移動位置(予想移動位置)を計算する。なお、この場合、アバタの移動量は線形であるとして計算される。例えば、現在のアバタの位置の座標をT0(0,0,0)、移動先の位置の座標をT1(10,5,0)とした場合、予想移動位置の座標は、移動先の位置T1(10,5,0)に、T0からT1への変位量[10,5,0]を加えたT2(20,10,0)となる。
【0062】
さらに、衝突判定部36は、ステップS91で取得した位置情報(他のアバタの予想移動位置の情報を含む)に対応するアバタまたはオブジェクトと、移動されるアバタが、同じタイミングでそれぞれの予想移動位置に移動した場合、衝突するか否かを判定し、衝突しないと判定した場合、ステップS95に進む。
【0063】
ステップS95において、衝突判定部36は、移動されるアバタと仮想空間内の全てのアバタ、およびオブジェクトとの衝突判定および衝突予測を行ったか否かを判定し、全ての衝突判定および衝突予測を行ったと判定した場合、ステップS96に進む。ステップS96において、衝突判定部36は、仮想空間管理部31に衝突判定結果として「衝突なし」と出力する。
【0064】
ステップS92において、ステップS91において取得した位置情報が移動されるアバタの位置情報である(同一の位置情報である)と判定された場合、ステップS93,S94をスキップし、ステップS95に進む。
【0065】
ステップS93において、移動されるアバタとステップS91で取得した位置情報に対応するアバタ、またはオブジェクトが衝突すると判定された場合、ステップS97に進む。ステップS97において、衝突判定部36は、仮想空間管理部31に衝突判定結果として「衝突発生」と出力する。
【0066】
ステップS94において、移動されるアバタとステップS91で取得した位置情報に対応するアバタ、またはオブジェクトが、予測移動位置において衝突すると判定された場合、ステップS98に進む。ステップS98において、衝突判定部36は、仮想空間管理部31に衝突予想結果として「衝突発生の可能性あり」と出力する。
【0067】
ステップS95において、移動されるアバタと仮想空間内の全てのアバタ、およびオブジェクトとの衝突判定が行われていないと判定された場合、次のアバタ、またはオブジェクトの位置情報を取得するためにステップS91に戻る。
【0068】
図13の説明に戻る。ステップS63において、衝突判定結果が「衝突なし」であると判定された場合、ステップS64に進む。ステップS64において、衝突予測の結果が「衝突発生の可能性あり」であると判定された場合、サーバ1から衝突判定結果が入力されるまで処理を保留するために、ステップS65乃至S68をスキップし、衝突予測結果が「衝突発生の可能性あり」ではない場合、ステップS65に進む。
【0069】
ステップS65において、仮想空間管理部31は、オブジェクト・アバタ管理部35で管理されるアバタの位置情報を移動情報に含まれる移動先に位置の座標に更新する。ステップS66において、更新情報保管部37は、仮想空間管理部31の制御により、移動情報にシーケンス番号を付加して保管する。ステップS67において、仮想空間管理部31は、衝突判定結果をUI制御部34に出力する。ステップS68において、UI制御部34は、オブジェクト・アバタ管理部35で管理されているアバタの位置情報に基づいて、表示画面上のアバタの位置を更新する。ステップS69において、仮想空間管理部31は、移動情報(この移動情報には、予想移動位置の情報も含まれる)を通信制御部32に出力し、通信制御部32は、移動情報をネットワーク2を介して、サーバ1に出力する。サーバ1においては、通信制御部12が、移動情報を受け付け、仮想空間管理部11に出力する。
【0070】
ステップS70において、仮想空間管理部11は、移動情報を衝突判定部15に出力し、衝突判定を行わせる。衝突判定部15は、移動情報とオブジェクト・アバタ管理部14で管理される現在のオブジェクト、およびアバタの位置情報に基づいて、衝突(衝突発生の可能性ではなく、実際の衝突)が発生するか否かを判定し、衝突判定結果を仮想空間管理部11に出力する。ステップS71において、衝突判定結果が「衝突なし」であると判定された場合、ステップS72に進む。ステップS72において、仮想空間管理部11は、オブジェクト・アバタ管理部14で管理されるアバタの位置情報を更新する。ステップS73において、仮想空間管理部11は、衝突判定結果と更新されたアバタの位置情報を通信制御部12に出力し、通信制御部12は、衝突判定結果と更新されたアバタの位置情報をネットワーク2を介してユーザ端末3−1乃至3−3に出力する。ユーザ端末3−1においては、通信制御部32が、衝突判定結果と更新されたアバタの位置情報を受け付け、仮想空間管理部31に出力する。また、このとき、ユーザ端末3−2,3−3には、ユーザ端末3−1から伝送されてきた予想移動位置の情報が出力される。
【0071】
ステップS74において、サーバ1から入力された衝突判定結果が「衝突なし」であると判定された場合、ステップS75に進む。ステップS75において、ステップS64における衝突予測の結果が、「衝突発生の可能性あり」ではないと判定された場合、ステップS76に進む。ステップS76において、仮想空間管理部31は、衝突判定結果に対応する移動情報を更新情報保管部37から削除する。この場合、ステップS65で、既に移動情報は更新されているので処理を終了する。
【0072】
ステップS75において、ステップS64における衝突予測の結果が「衝突発生の可能性あり」であると判定された場合、ステップS77に進む。ステップS77において、仮想空間管理部31は、オブジェクト・アバタ管理部35で管理されるアバタの位置情報を更新する。ステップS78において、仮想空間管理部31は、衝突判定結果をUI制御部34に出力する。ステップS79において、UI制御部34は、オブジェクト・アバタ管理部35で管理されているアバタの位置情報に基づいて、表示画面上のアバタの位置を更新する。
【0073】
ステップS63において、衝突判定結果が「衝突発生」であると判定された場合、ステップS80に進む。ステップS80において、衝突発生の情報がUI制御部34に出力され、UI制御部34は、衝突発生の情報を表示部に表示する。
【0074】
ステップS71において、衝突判定結果が「衝突発生」であると判定された場合、ステップS81に進む。ステップS81において、仮想空間管理部11は、衝突発生の情報を通信制御部12に出力し、通信制御部12は、衝突発生情報をネットワーク2を介してユーザ端末3−1に出力する。ユーザ端末3−1においては、通信制御部32が、衝突発生情報を受け付け、仮想空間管理部31に出力する。このとき、ステップS74においては、衝突判定結果が「衝突発生」であると判定されるので、ステップS82に進む。
【0075】
ステップS82において、仮想空間管理部31は、サーバ1から入力された判定結果に対応する移動情報が更新情報保管部37に存在するか否かを判断し、対応する移動情報が存在しない場合、処理を終了し、対応する移動情報が存在する場合、ステップS83に進む。ステップS83において、仮想空間管理部31は、更新情報保管部37が保管するサーバ1から入力された衝突判定結果に対応する移動情報から最新の移動情報までをUI制御部34に出力する。ステップS84において、UI制御部34は、入力された移動情報をシーケンス番号の逆順に用いてアバタの表示位置を更新する(アバタを移動軌跡に沿って後退させる)。ステップS85において、仮想空間管理部31は、更新情報管理部37からUI制御部34に出力した移動情報を、更新情報保管部37から削除する。ステップS86において、仮想空間管理部31は、オブジェクト・アバタ管理部35で管理されている位置情報を移動する前の座標に更新する(元に戻す)。
【0076】
以上の説明のように、ユーザ端末3−1の衝突判定部36が、衝突予測を行い、衝突発生の可能性があると判定した場合、サーバ1から衝突判定結果が入力されるまでアバタの位置の更新処理(オブジェクト・アバタ管理部35が管理するアバタの位置情報の更新、および表示部に表示されるアバタの位置の更新)を保留するので、ユーザ端末3−1における衝突判定結果とサーバ1における衝突判定結果が異なるために生ずる修正処理(アバタを元の位置に後退させる)回数を減少させることができる。
【0077】
なお、仮想空間には、3次元の座標が設定されており、オブジェクト、およびアバタの位置は、3次元座標で表される。図7と図17に示すように、仮想空間の背景画像(例えば、広い室内の画像)は、遠近法を用いた2次元画像であり、他の背景画像(例えば、商店街の画像)に変更可能である。仮想空間の背景画像は、仮想空間の外部に位置する視点から仮想空間を見た画像である。図18と図19に示すオブジェクトや、図20に示すアバタの2次元画像は、背景画像上に遠近法を用いて表される。すなわち、図7または図17に示すように、視点から異なる距離にあるアバタを比較した場合、視点から遠方にあるアバタの方が小さく表示される。なお、図20に示すように、アバタの画像としては、アバタの進行方向に対応して8種類の画像が用意されており、(図20には、5種類の画像を示す)、適宜、所定のものが選択され、表示される。
【0078】
上記した各種の処理はコンピュータにより行わせることができる。そのコンピュータのプログラムは、フロッピディスク、光ディスク、ハードディスクなどの記録媒体に記録し、ユーザに提供することができる。
【0079】
【発明の効果】
本発明によれば、ユーザ端末においても、アバタの衝突判定を行うようにしたので、アバタの移動が円滑に行われるとともに、仮想空間制御システム全体の処理能力の低下を防止することができる。
【図面の簡単な説明】
【図1】本発明を適用した仮想空間制御システムの構成を示すブロック図である。
【図2】図1の仮想空間制御システムの移動処理を説明するフローチャートである。
【図3】図1の仮想空間制御システムの移動処理を説明するフローチャートである。
【図4】図2と図3のフローチャートの各ステップに対応する情報の入出力を示す図である。
【図5】図2のステップS3の衝突判定処理の詳細を説明するフローチャートである。
【図6】仮想空間の平面図である。
【図7】図6に対応する仮想空間の正面図である。
【図8】衝突判定処理を説明する図である。
【図9】本発明を適用した仮想空間制御システムの他の構成を示すブロック図である。
【図10】図9の仮想空間制御システムの移動処理を説明するフローチャートである。
【図11】図9の仮想空間制御システムの移動処理を説明するフローチャートである。
【図12】図9の仮想空間制御システムの移動処理を説明するフローチャートである。
【図13】図9の衝突判定部36に衝突予測機能を付加した仮想空間制御システムの移動処理を説明するフローチャートである。
【図14】図9の衝突判定部36に衝突予測機能を付加した仮想空間制御システムの移動処理を説明するフローチャートである。
【図15】図9の衝突判定部36に衝突予測機能を付加した仮想空間制御システムの移動処理を説明するフローチャートである。
【図16】図13のステップS63,S64の衝突判定および衝突予測処理の詳細を説明するフローチャートである。
【図17】仮想空間を示す図である。
【図18】オブジェクトを示す図である。
【図19】オブジェクトを示す図である。
【図20】アバタを示す図である。
【図21】従来の仮想空間制御システムの一例の構成を示す概略図である。
【図22】仮想空間を示す図である。
【図23】オブジェクトを示す図である。
【図24】オブジェクトを示す図である。
【図25】従来の仮想空間制御システムの一例の構成を示すブロック図である。
【図26】図25の仮想空間制御システムの移動処理を説明するフローチャートである。
【図27】図25のフローチャートの各ステップに対応する情報の入出力を示す図である。
【符号の説明】
1 サーバ
2 ネットワーク
3 ユーザ端末
11 仮想空間管理部
12 通信制御部
13 仮想空間情報格納部
14 オブジェクト・アバタ管理部
15 衝突判定部
31 仮想空間管理部
32 通信制御部
33 仮想空間情報格納部
34 UI制御部
35 オブジェクト・アバタ管理部
36 衝突判定部
37 更新情報保管部
Claims (6)
- 所定のネットワークを介して接続されたサーバとユーザ端末から構成され、複数のユーザが共有する仮想空間上のオブジェクトと前記ユーザを表すアバタとを制御する仮想空間制御システムにおいて、
前記ユーザ端末は、
前記ユーザからの移動操作を受け付けて、前記仮想空間上で前記ユーザを表す前記アバタの移動情報を収集する収集手段と、
前記収集手段によって収集された前記アバタの移動情報と前記サーバから供給される前記オブジェクトの位置情報とに基づき、前記仮想空間上の前記オブジェクトと前記アバタの現在地情報を管理する現在地情報管理手段と、
前記現在地情報管理手段によって管理された前記仮想空間上の前記オブジェクトと前記アバタの現在地情報に基づいて、移動する前記アバタの衝突判定を行う第1衝突判定手段と、
前記第1衝突判定手段の衝突判定結果に対応する処理を行う衝突判定対応処理手段と、
前記第1衝突判定手段の衝突判定結果に基づき、前記サーバに前記アバタの位置情報を出力する出力手段とを備え、
前記サーバは、
前記ユーザ端末の前記出力手段から出力された前記アバタの位置情報と、前記オブジェクトの位置情報に基づいて、前記移動するアバタの衝突判定を行う第2衝突判定手段を備え、
前記ユーザ端末は、
前記第1衝突判定手段と前記第2衝突判定手段との衝突判定結果が異なる場合、前記第1衝突判定手段の衝突判定結果に対応する前記衝突判定対応処理手段による処理を、前記第2衝突判定手段の衝突判定結果に対応して修正する修正手段をさらに備える
ことを特徴とする仮想空間制御システム。 - 所定のネットワークを介して接続されたサーバとユーザ端末から構成され、複数のユーザが共有する仮想空間上のオブジェクトと前記ユーザを表すアバタとを制御する仮想空間制御システムの仮想空間制御方法において、
前記ユーザ端末における、前記ユーザからの移動操作を受け付けて、前記仮想空間上で前記ユーザを表す前記アバタの移動情報を収集する収集ステップと、
前記ユーザ端末における、前記収集ステップの処理で収集された前記アバタの移動情報と前記サーバから供給される前記オブジェクトの位置情報とに基づき、前記仮想空間上の前記オブジェクトと前記アバタの現在地情報を管理する現在地情報管理ステップと、
前記ユーザ端末における、前記現在地情報管理ステップで管理された前記仮想空間上の前記オブジェクトと前記アバタの現在地情報に基づいて、移動する前記アバタの衝突判定を行う第1衝突判定ステップと、
前記ユーザ端末における、前記第1衝突判定ステップの処理での衝突判定結果に対応する処理を行う衝突判定対応処理ステップと、
前記ユーザ端末における、前記第1衝突判定ステップの処理での衝突判定結果に基づき、前記サーバに前記アバタの位置情報を出力する出力ステップと、
前記サーバにおける、前記ユーザ端末の前記出力ステップの処理で出力された前記アバタの位置情報と、前記オブジェクトの位置情報に基づいて、前記移動するアバタの衝突判定を行う第2衝突判定ステップと、
前記ユーザ端末における、前記第1衝突判定ステップの処理と前記第2衝突判定ステップの処理との衝突判定結果が異なる場合、前記第1衝突判定ステップの処理の衝突判定結果に対応する前記衝突判定対応処理ステップによる処理を、前記第2衝突判定ステップの処理の衝突判定結果に対応して修正する修正ステップと
を含むことを特徴とする仮想空間制御方法。 - 所定のネットワークを介してサーバと接続し、ユーザが他のユーザとともに共有する仮想空間上のオブジェクトと前記ユーザを表すアバタとを制御するためのプログラムであって、
前記ユーザからの移動操作を受け付けて、前記仮想空間上で前記ユーザを表す前記アバタの移動情報を収集する収集ステップと、
前記収集ステップの処理で収集された前記アバタの移動情報と前記サーバから供給される前記オブジェクトの位置情報とに基づき、前記仮想空間上の前記オブジェクトと前記アバタの現在地情報を管理する現在地情報管理ステップと、
前記現在地情報管理ステップで管理された前記仮想空間上の前記オブジェクトと前記アバタの現在地情報に基づいて、移動する前記アバタの衝突判定を行う衝突判定ステップと、
前記衝突判定ステップの処理での衝突判定結果に対応する処理を行う衝突判定対応処理ステップと、
前記衝突判定ステップの処理での衝突判定結果に基づき、前記サーバに前記アバタの位置情報を出力する出力ステップと、
前記サーバにおける、前記ユーザ端末の前記出力ステップの処理で出力された前記アバタの位置情報と、前記オブジェクトの位置情報に基づいて、前記移動するアバタの衝突判定を行う第2衝突判定ステップと、
前記衝突判定ステップの処理と、前記サーバにおいて行われる前記移動するアバタの衝突判定処理との衝突判定結果が異なる場合、前記衝突判定ステップの処理の衝突判定結果に対応する前記衝突判定対応処理ステップによる処理を、前記サーバにおいて行われる前記移動するアバタの衝突判定処理の衝突判定結果に対応して修正する修正ステップと
を含む処理をコンピュータに実行させるプログラムが記録されていることを特徴とする記録媒体。 - 所定のネットワークを介してサーバと接続し、ユーザが他のユーザとともに共有する仮想空間上のオブジェクトと前記ユーザを表すアバタとを制御する仮想空間制御装置において、
前記ユーザからの移動操作を受け付けて、前記仮想空間上で前記ユーザを表す前記アバタの移動情報を収集する収集手段と、
前記収集手段によって収集された前記アバタの移動情報と前記サーバから供給される前記オブジェクトの位置情報とに基づき、前記仮想空間上の前記オブジェクトと前記アバタの現在地情報を管理する現在地情報管理手段と、
前記現在地情報管理手段によって管理された前記仮想空間上の前記オブジェクトと前記アバタの現在地情報に基づいて、移動する前記アバタの衝突判定を行う衝突判定手段と、
前記収集手段によって収集された前記アバタの過去の移動情報を保管する移動情報保管手段と、
前記移動情報保管手段によって保管された過去の移動情報に基づいて、前記アバタの移動位置を予測する移動位置予測手段と、
前記移動位置予測手段によって予測された移動位置に基づいて衝突予測を行う衝突予測手段と
を備えることを特徴とする仮想空間制御装置。 - 所定のネットワークを介してサーバと接続し、ユーザが他のユーザとともに共有する仮想空間上のオブジェクトと前記ユーザを表すアバタとを制御する仮想空間制御方法において、
前記ユーザからの移動操作を受け付けて、前記仮想空間上で前記ユーザを表す前記アバタの移動情報を収集する収集ステップと、
前記収集ステップの処理で収集された前記アバタの移動情報と前記サーバから供給される前記オブジェクトの位置情報とに基づき、前記仮想空間上の前記オブジェクトと前記アバタの現在地情報を管理する現在地情報管理ステップと、
前記現在地情報管理ステップの処理で管理された前記仮想空間上の前記オブジェクトと前記アバタの現在地情報に基づいて、移動する前記アバタの衝突判定を行う衝突判定ステップと、
前記収集ステップの処理で収集された前記アバタの過去の移動情報を保管する移動情報保管ステップと、
前記移動情報保管ステップの処理で保管された過去の移動情報に基づいて、前記アバタの移動位置を予測する移動位置予測ステップと、
前記移動位置予測ステップの処理で予測された移動位置に基づいて衝突予測を行う衝突予測ステップと
を含むことを特徴とする仮想空間制御方法。 - 所定のネットワークを介してサーバと接続し、ユーザが他のユーザとともに共有する仮想空間上のオブジェクトと前記ユーザを表すアバタとを制御するためのプログラムであって、
前記ユーザからの移動操作を受け付けて、前記仮想空間上で前記ユーザを表す前記アバタの移動情報を収集する収集ステップと、
前記収集ステップの処理で収集された前記アバタの移動情報と前記サーバから供給される前記オブジェクトの位置情報とに基づき、前記仮想空間上の前記オブジェクトと前記アバタの現在地情報を管理する現在地情報管理ステップと、
前記現在地情報管理ステップの処理で管理された前記仮想空間上の前記オブジェクトと前記アバタの現在地情報に基づいて、移動する前記アバタの衝突判定を行う衝突判定ステップと、
前記収集ステップの処理で収集された前記アバタの過去の移動情報を保管する移動情報保管ステップと、
前記移動情報保管ステップの処理で保管された過去の移動情報に基づいて、前記アバタの移動位置を予測する移動位置予測ステップと、
前記移動位置予測ステップの処理で予測された移動位置に基づいて衝突予測を行う衝突予測ステップと
を含む処理をコンピュータに実行させるプログラムが記録されていることを特徴とする記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP28099897A JP3562554B2 (ja) | 1997-10-15 | 1997-10-15 | 仮想空間制御システム、仮想空間制御装置および方法、並びに記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP28099897A JP3562554B2 (ja) | 1997-10-15 | 1997-10-15 | 仮想空間制御システム、仮想空間制御装置および方法、並びに記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11120381A JPH11120381A (ja) | 1999-04-30 |
JP3562554B2 true JP3562554B2 (ja) | 2004-09-08 |
Family
ID=17632849
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP28099897A Expired - Fee Related JP3562554B2 (ja) | 1997-10-15 | 1997-10-15 | 仮想空間制御システム、仮想空間制御装置および方法、並びに記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3562554B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001325169A (ja) * | 2000-05-15 | 2001-11-22 | Vasara:Kk | タグ付き言語を用いたサイバースペースシステム |
US9770661B2 (en) | 2011-08-03 | 2017-09-26 | Disney Enterprises, Inc. | Zone-based positioning for virtual worlds |
JP6724219B1 (ja) * | 2019-07-24 | 2020-07-15 | グリー株式会社 | 動画アプリケーションプログラム、動画表示方法、動画配信システム及び情報処理装置 |
-
1997
- 1997-10-15 JP JP28099897A patent/JP3562554B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH11120381A (ja) | 1999-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6437778B1 (en) | Virtual space communication system, three-dimensional image display method, and apparatus therefor | |
CN111556283B (zh) | 监控摄像头管理方法、装置、终端及存储介质 | |
CN109308469B (zh) | 用于生成信息的方法和装置 | |
US20060258462A1 (en) | System and method of seamless game world based on server/client | |
KR20020007945A (ko) | 데이터 통신망을 통한 디지털 확대 이미지 제공방법,디지털 확대 이미지 제공장치 | |
CN110471591A (zh) | 一种交互方法、装置及计算机存储介质 | |
JP2021152724A (ja) | 情報処理装置、情報処理方法、およびプログラム | |
CN112165721B (zh) | 基于边缘计算的多服务任务的卸载和服务迁移方法 | |
JP3562554B2 (ja) | 仮想空間制御システム、仮想空間制御装置および方法、並びに記録媒体 | |
JP2019135617A (ja) | 情報処理装置およびその制御方法、画像処理システム | |
CN108211360B (zh) | 多人在线网络游戏的跨地图寻路方法 | |
JP2004086508A (ja) | 3次元形状データに基づく動画の表示制御方法及びナビゲーション装置 | |
US6115045A (en) | Information processing system and a network type information processing system | |
JP2003208633A (ja) | サーバ及びクライアント及び伝送システム及び伝送方法 | |
EP1640921A2 (en) | Image processing device and method for real time rendering of moving images | |
CN111949122B (zh) | 一种虚拟漫游数据的生成方法及装置 | |
CN111643906B (zh) | 一种信息处理方法、装置及计算机可读存储介质 | |
JP3842549B2 (ja) | 情報収集システム、情報収集方法及び記憶媒体 | |
CN112214153B (zh) | 多媒体信息录制方法、服务器、终端、系统及存储介质 | |
JP6881193B2 (ja) | 情報処理装置、情報処理方法、プログラム、表示制御装置、表示制御方法、プログラムおよび情報処理システム | |
JP3471203B2 (ja) | ネットワークシステム | |
JP5821919B2 (ja) | 情報処理装置、及びプログラム | |
KR19990084142A (ko) | 홈페이지 화면 이미지 자동변경 제어방법 | |
JP4019093B2 (ja) | 類似画像検索方法および装置 | |
CN116597099B (zh) | 基于视频流的三维模型重建方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040203 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040317 |
|
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: 20040512 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040525 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080611 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090611 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |