(57)【特許請求の範囲】
【請求項１】
複数のユーザが共有する仮想空間を制御する仮想空間制御装置において、
前記仮想空間上で前記ユーザを表すアバタが、前記仮想空間上の所定のオブジェクトまたはアバタから所定の距離の領域に進入したことを検知する検知手段と、
前記検知手段の検知結果に対応して、前記仮想空間上の前記オブジェクトに設定された機能の一覧を示すウィンドウを表示する表示手段と、
前記ウィンドウに示された機能のうち、指定されたものを処理する機能処理手段と
を備えることを特徴とする仮想空間制御装置。
【請求項２】
前記アバタの移動に対応して前記ウィンドウを消去する消去手段を
さらに備えることを特徴とする請求項１に記載の仮想空間制御装置。
【請求項３】
前記表示手段は、前記アバタに設定されたチャット機能用のウィンドウも表示する
ことを特徴とする請求項１または２に記載の仮想空間制御装置。
【請求項４】
前記ユーザの操作を受け付ける受付手段と、
前記受付手段が受け付けた前記操作に基づいて、前記ウィンドウの表示を抑制する抑制手段と
をさらに備えることを特徴とする請求項１乃至３のいずれかに記載の仮想空間制御装置。
【請求項５】
複数のユーザが共有する仮想空間を制御する仮想空間制御方法において、
前記仮想空間上で前記ユーザを表すアバタが、前記仮想空間上の所定のオブジェクトまたはアバタから所定の距離の領域に進入したことを検知する検知ステップと、
前記検知ステップの検知結果に対応して、前記仮想空間上の前記オブジェクトに設定された機能の一覧を示すウィンドウを表示する表示ステップと、
前記ウィンドウに示された機能のうち、指定されたものを処理する機能処理ステップと
を備えることを特徴とする仮想空間制御方法。
【請求項６】
前記アバタの移動に対応して前記ウィンドウを消去する消去ステップを
さらに備えることを特徴とする請求項５に記載の仮想空間制御方法。
【請求項７】
前記表示ステップは、前記アバタに設定されたチャット機能用のウィンドウも表示する
ことを特徴とする請求項５または６に記載の仮想空間制御方法。
【請求項８】
前記ユーザの操作を受け付ける受付ステップと、
前記受付ステップで受け付けた前記操作に基づいて、前記ウィンドウの表示を抑制する抑制ステップと
をさらに備えることを特徴とする請求項５乃至７のいずれかに記載の仮想空間制御方法。
【請求項９】
複数のユーザが共有する仮想空間を制御する仮想空間制御装置に使用するコンピュータプログラムを記憶する記録媒体において、
前記仮想空間上で前記ユーザを表すアバタが、前記仮想空間上の所定のオブジェクトまたはアバタから所定の距離の領域に進入したことを検知する検知ステップと、
前記検知ステップの検知結果に対応して、前記仮想空間上の前記オブジェクトに設定された機能の一覧を示すウィンドウを表示する表示ステップと、
前記ウィンドウに示される機能のうち、指定されたものを処理する機能処理ステップと
を備えるコンピュータプログラムを記憶することを特徴とする記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、仮想空間制御装置および方法、並びに記録媒体に関し、特に、ウィンドウの開閉を自動化することにより、ユーザの操作を簡略化することができるようにした仮想空間制御装置および方法、並びに記録媒体に関する。
【０００２】
【従来の技術】
複数のユーザが共有する仮想空間（ネットワークとコンピュータを使って実現する社会、いわゆるサイバースペース）を制御する仮想空間制御システムは、図１９に示すように、仮想空間を管理する１つのサーバ１と、インターネットに代表されるネットワーク２を介してサーバ１に接続される複数のユーザ端末（クライアント）３−１乃至３−３（以下、各ユーザ端末３−１乃至３−３を個々に区別する必要がない場合、単にユーザ端末３と記述する）から構成される。なお、この明細書において、システムの用語は、複数の装置で構成される全体の装置を表すものとして使用する。
【０００３】
仮想空間上には、例えば図２０に示すように、複数のオブジェクト（図２１乃至図２３に示すビデオテープデッキ、テレビジョン受像機などよりなるＡＶ機器、机、または椅子）と、アバタ（仮想空間内においてユーザの代わりに行動する。例えば移動、挙手等を行う）が存在する。各オブジェクトには、オブジェクトの形態に応じた機能（例えば、ＡＶ機器のオブジェクトには、録画機能、および録画した画像を再生する再生機能等）が設けられ、アバタには、他のアバタとチャットを行う機能（相互に文字を送信し、会話を行う機能）が設けられている。なお、アバタは、ユーザの操作に対応して仮想空間上を移動する。
【０００４】
従来の仮想空間制御システムの構成の一例について、図２４を参照して説明する。サーバ１は、仮想空間管理部１１、通信制御部１２、仮想空間情報格納部１３、オブジェクト・アバタ管理部１４、および衝突判定部１５から構成される。仮想空間管理部１１は、オブジェクト・アバタ管理部１４、および衝突判定部１５を制御し、通信制御部１２から入力されたユーザ端末３−１からの情報（仮想空間への参加要求、チャット開始要求、またはアバタの移動情報等）の処理を行わせ、その処理結果を通信制御部１２に出力するようになされている。さらに、仮想空間管理部１１は、仮想空間に参加しているユーザの名前、およびユーザに対応するアバタの名前を管理している。
【０００５】
通信制御部１２は、ネットワーク２を介したユーザ端末３との通信を制御するようになされている。仮想空間情報格納部１３には、仮想空間の初期状態のデータ（オブジェクトの座標等）、並びに、空間背景、オブジェクト、およびアバタの画像データが格納されている。オブジェクト・アバタ管理部１４は、現在の仮想空間上のオブジェクトとアバタの位置等の情報を管理する。衝突判定部１５は、アバタが移動された場合、オブジェクト・アバタ管理部１４が管理する位置情報に基づいて、移動されたアバタと、他のアバタまたはオブジェクトが衝突するか否かを判定する。
【０００６】
ユーザ端末３−１は、仮想空間管理部３１、通信制御部３２、ＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）制御部３３、仮想空間情報格納部３５、およびオブジェクト・アバタ管理部３６から構成される。仮想空間管理部３１は、ＵＩ制御部３３、およびオブジェクト・アバタ管理部３６を制御し、各部から入力された情報（ユーザによる操作、サーバ１からの衝突判定の結果、または他のユーザに対応するアバタの位置情報等）の処理を行うようになされている。通信制御部３２は、ネットワーク２を介したサーバ１との通信を制御する。ＵＩ制御部３３は、図示せぬ表示部に仮想空間を表示させるとともに、ユーザの操作（アバタの移動等）を受け付けるようになされている。
【０００７】
仮想空間情報格納部３５には、仮想空間を表示するための空間背景、オブジェクト、およびアバタの画像データが格納されている。オブジェクト・アバタ管理部３６は、現在の仮想空間上のオブジェクトとアバタの位置等の情報を管理する。なお、ユーザ端末３−２，３−３の構成は、ユーザ端末３−１の構成と同様であるので、その説明を省略する。
【０００８】
次に、この仮想空間制御システムにおけるオブジェクトの機能を起動する処理について、図２５のフローチャートと図２６を参照して説明する。なお、図２６は図２５のフローチャートの各ステップに対応する情報の入出力を太線の矢印で示している。ステップＳ９１において、ユーザは、マウスでクリックすることにより、図示せぬ表示部に表示される仮想空間上のオブジェクトを選択する（例えば、ＡＶ機器のオブジェクトを選択する）。ＵＩ制御部３３は、ユーザの選択を受け付け、そのオブジェクト選択情報を仮想空間管理部３１に出力する。ステップＳ９２において、ユーザは、図示せぬ表示画面上部のメニューの文字をマウスでクリックし、表示されたメニューの中から「機能一覧ウィンドウ表示」を選択する。ＵＩ制御部３３は、メニューの中から「機能一覧ウィンドウ表示」が選択されたことを仮想空間管理部３１に出力する。
【０００９】
ステップＳ９３において、仮想空間管理部３１は、ＵＩ制御部３３を制御し、選択されたオブジェクトに対応する機能一覧ウィンドウを表示部に表示させる（ＡＶ機器のオブジェクトの場合、「再生」、および「録画」の２項目の機能がウィンドウに表示される）。ステップＳ９４において、ユーザは、表示部に表示された機能一覧ウィンドウの中から実行する機能（例えば、再生機能）をマウス等で選択する。ＵＩ制御部３３は、ユーザの機能選択操作を受け付け、機能選択情報を仮想空間管理部３１に出力する。ステップＳ９５において、仮想空間管理部３１は、入力された機能選択情報に対応する機能プログラム（この場合、再生機能プログラム）をオブジェクト・アバタ管理部３６から読み出して実行する。
【００１０】
なお、ステップＳ９１乃至Ｓ９４の各ステップの途中において、オブジェクトの機能を起動する処理を中止する場合、ユーザは、機能の選択を解除し、表示されている機能一覧ウィンドウを閉じる等の操作を行う必要がある。
【００１１】
【発明が解決しようとする課題】
このように、仮想空間上のオブジェクトに設定された機能を起動するためのウィンドウを表示、または消去するには、ユーザは、複数の操作を実行する必要があり、操作性が悪い課題があった。
【００１２】
本発明はこのような状況に鑑みてなされたものであり、オブジェクトとアバタが所定の距離になると自動的にウィンドウを開閉することにより、ユーザの操作性を改善するものである。
【００１３】
【課題を解決するための手段】
本発明の仮想空間制御装置は、仮想空間上でユーザを表すアバタが、仮想空間上の所定のオブジェクトまたはアバタから所定の距離の領域に進入したことを検知する検知手段と、検知手段の検知結果に対応して、仮想空間上のオブジェクトに設定された機能の一覧を示すウィンドウを表示する表示手段と、ウィンドウに示された機能のうち、指定されたものを処理する機能処理手段とを備えることを特徴とする。
【００１４】
本発明の仮想空間制御方法は、仮想空間上でユーザを表すアバタが、仮想空間上の所定のオブジェクトまたはアバタから所定の距離の領域に進入したことを検知する検知ステップと、検知ステップの検知結果に対応して、仮想空間上のオブジェクトに設定された機能の一覧を示すウィンドウを表示する表示ステップと、ウィンドウに示された機能のうち、指定されたものを処理する機能処理ステップとを備えることを特徴とする。
【００１５】
本発明の記録媒体に記録されているプログラムは、仮想空間上でユーザを表すアバタが、仮想空間上の所定のオブジェクトまたはアバタから所定の距離の領域に進入したことを検知する検知ステップと、検知ステップの検知結果に対応して、仮想空間上のオブジェクトに設定された機能の一覧を示すウィンドウを表示する表示ステップと、ウィンドウに示される機能のうち、指定されたものを処理する機能処理ステップとを備えることを特徴とする。
【００１６】
本発明の仮想空間制御装置および方法、並びに記録媒体に記録されているプログラムにおいては、仮想空間上でユーザを表すアバタが、仮想空間上の所定のオブジェクトまたはアバタから所定の距離の領域に進入したことが検知され、検知結果に対応して、仮想空間上のオブジェクトに設定された機能の一覧を示すウィンドウが表示され、ウィンドウに示された機能のうち、指定されたものが処理される。
【００１８】
【発明の実施の形態】
以下に本発明の実施の形態を説明するが、特許請求の範囲に記載の発明の各手段と以下の実施の形態との対応関係を明らかにするために、各手段の後の括弧内に、対応する実施の形態（但し一例）を付加して本発明の特徴を記述すると、次のようになる。
【００１９】
即ち、請求項１に記載の仮想空間制御装置は、複数のユーザが共有する仮想空間を制御する仮想空間制御装置において、仮想空間上でユーザを表すアバタが、オブジェクトまたはアバタの所定の距離の領域に進入したことを検知する検知手段（例えば、図１の衝突判定部３７）と、検知手段の検知結果に対応して、仮想空間上のオブジェクトに設定された機能の一覧を示すウィンドウを表示する表示手段（例えば、図１のＵＩ制御部３３）と、ウィンドウに表示される機能のうち、指定されたものを処理する機能処理手段（例えば、図１の仮想空間管理部３１）とを備えることを特徴とする。
【００２０】
また、請求項２に記載の仮想空間制御装置は、アバタの移動に対応してウィンドウを消去する消去手段（例えば、図１のＵＩ制御部３３）をさらに備えることを特徴とする。
【００２１】
さらに、請求項４に記載の仮想空間制御装置は、ユーザの操作を受け付ける受付手段（例えば、図１の感性情報入力部３４）と、受付手段が受け付けた操作に基づいて、ウィンドウの表示を抑制する抑制手段（例えば、図１の感性情報入力部３４）とをさらに備えることを特徴とする。
【００２２】
但し勿論この記載は、各手段を記載したものに限定することを意味するものではない。
【００２３】
本発明を適用した仮想空間制御システムの構成について、図１を参照して説明する。サーバ１の構成は、図２４における場合と同様であるので、その説明は省略する。
【００２４】
ユーザ端末３−１の基本的構成も図２４における場合と同様である。ただし、この構成例においては、図２４における構成以外に、感性情報入力部３４と衝突判定部３７が設けられている。感性情報入力部３４は、ユーザがマウスの右ボタンを押す圧力を検知し、その圧力に対応した情報をＵＩ制御部３３に出力するようになされている。衝突判定部３７は、仮想空間管理部３１から入力されるアバタ移動情報（移動されるアバタ名と移動先の位置）とオブジェクト・アバタ管理部３５から入力される現在のオブジェクト、およびアバタの位置情報に基づいて衝突が発生するか否かを判定し、衝突判定結果を仮想空間管理部３１に出力する。その他の構成は、図２４における場合と同様である。なお、ユーザ端末３−２，３−３の構成は、ユーザ端末３−１の構成と同様であるので、その説明を省略する。
【００２５】
次に、各部で管理される情報の構造の一例を示す。サーバ１の仮想空間管理部１１は、サーバ１に接続しているユーザ端末名、および接続しているユーザ数を管理する。
接続しているユーザ端末名
ｃｌｉｅｎｔ＿ｍａｃｈｉｎｅ＿１
ｃｌｉｅｎｔ＿ｍａｃｈｉｎｅ＿２
接続しているユーザ数
２
【００２６】
仮想空間情報格納部１３は、仮想空間情報、オブジェクト情報、およびアバタ情報を管理する。
仮想空間情報
0003562555.tif 000002
【００２７】
オブジェクト・アバタ管理部１４は、現在のオブジェクト、およびアバタの位置情報を管理する。
0003562555.tif 000003
【００２８】
ユーザ端末３−１の仮想空間管理部３１は、接続しているサーバ名を管理する。
サーバ名
ｓｅｒｖｅｒ＿ｍａｃｈｉｎｅ＿１
【００２９】
仮想空間情報格納部３５は、仮想空間情報、オブジェクト情報、およびアバタ情報を管理する。
0003562555.tif 000004
【００３０】
オブジェクト・アバタ管理部３６は、現在のオブジェクトとアバタの位置情報を管理する。
0003562555.tif 000005
【００３１】
次に、この仮想空間制御システムにおけるオブジェクト、またはアバタの機能起動処理について、図２のフローチャートを参照して説明する。ステップＳ１において、ユーザは、図示せぬ表示部に表示される仮想空間上の自分に対応するアバタを移動する操作を行う（例えば、アバタをマウスの右ボタンでクリックし、移動したい方向にドラッグする）。なお、当然、他のユーザに対応するアバタの移動操作はできない。また、この操作が行われているとき、感性情報入力部３４は、マウスの右ボタンを押す圧力を検知する。ＵＩ制御部３３は、ユーザの移動操作を受け付け、その移動操作に対応した移動情報を仮想空間管理部３１に出力する。ステップＳ２において、仮想空間管理部３１は、衝突判定部３７に衝突判定を行わせる。
【００３２】
ステップＳ２における衝突判定処理の詳細について、図３のフローチャートを参照して説明する。ステップＳ２１において、仮想空間管理部３１は、アバタの移動情報を衝突判定部３７に出力する。ステップＳ２２において、衝突判定部３７は、オブジェクト・アバタ管理部３６から移動されるアバタ以外のアバタ、またはオブジェクトの位置情報を１つ取得する。ステップＳ２３において、衝突判定部３７は、移動されるアバタとステップＳ２２において取得された位置情報に対応するアバタ、またはオブジェクトが衝突するか否かを判定し、衝突しないと判定した場合、ステップＳ２４に進む。
【００３３】
ステップＳ２４において、衝突判定部３７は、移動されるアバタがステップＳ２２において取得された位置情報に対応するアバタ、またはオブジェクトの有する領域に進入するか否かを判定し、進入しないと判定した場合、ステップＳ２５に進む。ステップＳ２５において、衝突判定部３７は、移動されるアバタと仮想空間上の全てのアバタ、およびオブジェクトとの衝突判定を行ったか否かを判定する。ステップＳ２５において、移動されるアバタと仮想空間上の全てのアバタ、およびオブジェクトとの衝突判定が行われていないと判定された場合、次のアバタ、またはオブジェクトの位置情報を取得するために、ステップＳ２２に戻る。
【００３４】
ステップＳ２５において、全てのアバタ、およびオブジェクトと衝突判定を行ったと判定した場合、ステップＳ２６に進む。ステップＳ２６において、衝突判定部３７は、仮想空間管理部３１に衝突判定結果として「衝突なし」を出力する。
【００３５】
ステップＳ２３において、移動されるアバタとステップＳ２２で取得された位置情報に対応するアバタ、またはオブジェクトが衝突すると判定された場合、ステップＳ２７に進む。ステップＳ２７において、衝突判定部３７は、仮想空間管理部３１に衝突判定結果として「衝突発生」を出力する。
【００３６】
ステップＳ２４において、移動されるアバタがステップＳ２２で取得された位置情報に対応するアバタ、またはオブジェクトの領域に進入すると判定された場合、ステップＳ２８に進む。ステップＳ２８において、衝突判定部３７は、仮想空間管理部３１に衝突判定結果として「衝突なし、進入発生」と、進入した領域に対応するアバタ、またはオブジェクトの名前（ＩＤ）を出力する。
【００３７】
次に、衝突判定の基準について、図４乃至図６を参照して説明する。図４は、仮想空間の平面図であり、この例の場合、アバタ、およびオブジェクトの形状は所定の大きさの円形とされ、その外周に、環状の領域が設定されている。衝突判定では、移動されるアバタと、他のアバタまたはオブジェクトが重なるか否かが判定の基準となる。ただし、オブジェクトの形状は、円形以外の矩形等であってもかまわない。なお、図５は、図４に対応した仮想空間の正面図である。
【００３８】
例えば図６に示すように、移動されるアバタ１の大きさは中心がＡ、半径がＲＡの円であり、領域の外周半径はＲＲＡであるとする。同様に他のアバタ２の大きさは中心がＢ、半径がＲＢの円であり、領域の外周半径はＲＲＢであるとする。さらに、オブジェクト１の大きさは中心がＣ、半径がＲＣの円であり、領域の外周半径はＲＲＣであるとする。
【００３９】
移動されるアバタ１とオブジェクト１の衝突判定では、アバタ１とオブジェクト１の中心間の距離ＡＣが、ＲＡとＲＣの和（ＲＡ＋ＲＣ）と等しいか、それよりも小さい場合、「衝突発生」と判定され、大きい場合、「衝突なし」と判定される。また、中心間の距離ＡＣが、ＲＡとＲＲＣの和（ＲＡ＋ＲＲＣ）よりも小さい場合、「進入発生」と判定され、大きい場合、「進入なし」と判定される。同様に、移動されるアバタ１と他のアバタ２の衝突判定では、アバタ１とアバタ２の中心間の距離ＡＢが、ＲＡとＲＢの和（ＲＡ＋ＲＢ）と等しいか、それよりも小さい場合、「衝突発生」と判定され、大きい場合、「衝突なし」と判定される。また、中心間の距離ＡＢが、ＲＡとＲＲＢの和（ＲＡ＋ＲＲＢ）よりも小さい場合、「進入発生」と判定され、大きい場合、「進入なし」と判定される。
【００４０】
図２の説明に戻る。ステップＳ３において、ステップＳ２における衝突判定結果が「衝突発生」であるか否かを判定し、「衝突発生」ではないと判定された場合、ステップＳ４に進む。ステップＳ４において、仮想空間管理部３１は、オブジェクト・アバタ管理部３６を制御し、そこで管理されるそれまでのアバタの位置情報を保持したまま、位置情報を移動情報に含まれる移動先の位置の座標に更新させる。ステップＳ５において、ＵＩ制御部３３は、オブジェクト・アバタ管理部３６で管理されているアバタの更新後の位置情報に基づいて、アバタの表示位置を更新する。ステップＳ６において、仮想空間管理部３１は、アバタの移動情報を通信制御部３２に出力し、通信制御部３２は、移動情報をネットワーク２を介してサーバ１に出力する。
【００４１】
衝突判定結果が「衝突発生」であると判定された場合、ステップＳ４乃至Ｓ６をスキップしてステップＳ７に進む。なお、ユーザ端末３−１では、サーバ１に出力した移動情報に対応する衝突判定結果がサーバ１から入力されるまでの間、ステップＳ７以降の処理が継続されている。
【００４２】
ユーザ端末３−１から移動情報が入力されたサーバ１の処理について、図７のフローチャートを参照して説明する。ステップＳ３１において、サーバ１の通信制御部１２は、ユーザ端末３−１が出力したアバタの移動情報をネットワーク２を介して受け付け、仮想空間管理部１１に出力する。ステップＳ３２において、仮想空間管理部１１は、衝突判定部１５に衝突判定を行わせる。ステップＳ３２におけるサーバ１の衝突判定処理は、図３の衝突判定処理と同様であるので、その説明を省略する。
【００４３】
ステップＳ３３において、ステップＳ３２における衝突判定結果が「衝突発生」ではないと判定された場合、ステップＳ３４に進む。ステップＳ３４において、仮想空間管理部１１は、オブジェクト・アバタ管理部１４が管理するアバタの位置情報を、移動情報に含まれる移動先の位置の座標に更新する。ステップＳ３５において、仮想空間管理部１１は、衝突判定結果と更新されたアバタの位置情報を通信制御部１２に出力し、通信制御部１２は、衝突判定結果と更新されたアバタの位置情報を、ネットワーク２を介してユーザ端末３−１乃至３−３に出力する。ステップＳ３３での衝突判定結果が「衝突発生」であると判定された場合、ステップＳ３４の処理はスキップされる。そして、このとき、ステップＳ３５において、衝突判定結果がユーザ端末３−１だけに出力される。
【００４４】
図２の説明に戻る。ステップＳ７において、ステップＳ２における衝突判定の結果が「進入発生」か否かが判定され、「進入発生」であると判定された場合、ステップＳ８に進む。ステップＳ８において、進入したのはオブジェクトとアバタのいずれであるかが判定され、オブジェクトであると判定された場合（例えば図８の仮想空間の平面図に示すように、アバタ２がオブジェクト３の領域に進入した場合）、ステップＳ９に進み、アバタであると判定された場合（例えば図９の仮想空間の平面図に示すように、アバタ１がアバタ２の領域に進入した場合）、ステップＳ１０に進む。ステップＳ７で、衝突判定結果が「進入発生」ではないと判定された場合、処理は終了される。
【００４５】
ステップＳ９において、オブジェクトに設けられた機能を起動する処理が行われる。ステップＳ９におけるオブジェクト機能起動処理について、図１０を参照して説明する。ステップＳ４１において、感性情報入力部３４は、図２のステップＳ２におけるアバタの移動操作時に、マウスの右ボタンに加えられた圧力に応じてオブジェクトの機能一覧ウィンドウの表示を抑制するか否かを決定し、決定結果をＵＩ制御部３３に出力する。なお、この決定では、マウスの右ボタンに加えられた圧力が所定の大きさよりも大きい場合、「機能一覧ウィンドウの表示を抑制する」と決定され、圧力が所定の大きさよりも小さい場合、「機能一覧ウィンドウの表示を抑制しない」と決定される。ＵＩ制御部３３に入力された決定結果が、「機能一覧ウィンドウの表示を抑制しない」であると判定された場合、ステップＳ４２に進む。
【００４６】
ステップＳ４２において、ＵＩ制御部３３は、進入した領域に対応するオブジェクトに設定されている機能の一覧が記述されているウィンドウをオブジェクト・アバタ管理部３６から読み出し、図１１に示すように表示部に表示させる。なお、図１１中のオブジェクト、およびアバタの位置は、図８と対応している。ステップＳ４３において、ユーザは、機能一覧ウィンドウに表示された機能の中から実行する機能を１つ選択する。
【００４７】
ステップＳ４４において、仮想空間管理部３１は、図２のステップＳ６においてサーバ１に出力した移動情報に対応する衝突判定結果が、サーバ１から入力されるまで待機する。サーバ１から衝突判定結果が入力されていると確認された場合、ステップＳ４５に進み、サーバ１から入力された衝突判定結果が「衝突発生」であるか否かが判定される。衝突判定結果が「衝突発生」ではないと判定された場合、ステップＳ４６に進み、仮想空間管理部３１は、オブジェクト・アバタ管理部３６からステップＳ４３において選択された機能に対応するプログラムを読み出して実行する。ステップＳ４５において、サーバ１から入力された衝突判定結果が「衝突発生」であると判定された場合、ステップＳ４６はスキップされる。
【００４８】
ステップＳ４１において、ＵＩ制御部３３に入力された決定結果が、「機能一覧ウィンドウの表示を抑制する」であると判定された場合、ステップＳ４２からＳ４６の処理はスキップされる。すなわち、この場合、ウィンドウは表示されない。
【００４９】
なお、ステップＳ４２以降において、ユーザがアバタの移動操作を行うと、それまで表示されていた機能一覧ウィンドウは閉じられる。したがって、アバタの移動操作を行うことによりオブジェクト機能起動処理を中止できる。
【００５０】
図１２と図１３は、図２のステップＳ３において、衝突判定部３７の衝突判定結果がそれぞれ、「衝突なし」であると判定された場合と、「衝突発生」であると判定された場合における主に図１０の各ステップに対応する情報の入出力を太線の矢印で示している。
【００５１】
図２の説明に戻る。ステップＳ７において、進入した領域が他のアバタの領域であると判定された場合、ステップＳ１０に進む。ステップＳ１０において、チャット機能を起動する処理が開始される。
【００５２】
ステップＳ１０のチャット機能起動処理について、図１４を参照して説明する。ステップＳ５１において、ステップＳ４１における場合と同様に、感性情報入力部３４は、図２のステップＳ１におけるアバタの移動操作時に、マウスの右ボタンに加えられた圧力に応じてチャット機能用ウィンドウの表示を抑制するか否かを決定し、決定結果をＵＩ制御部３３に出力する。マウスの右ボタンに加えられた圧力が所定の大きさよりも大きい場合、「チャット機能用ウィンドウの表示を抑制する」が出力され、圧力が所定の大きさよりも小さい場合、「チャット機能用ウィンドウの表示を抑制しない」が出力される。ＵＩ制御部３３に入力された決定結果が、「チャット機能用ウィンドウの表示を抑制しない」であると判定された場合、ステップＳ５２に進む。
【００５３】
ステップＳ５２において、ＵＩ制御部３３は、チャット機能用ウィンドウをオブジェクト・アバタ管理部３６から読み出し、図１５に示すように表示部に表示させる。なお、図１５におけるオブジェクト、およびアバタの表示位置は、図９に対応している。ステップＳ５３において、ユーザは、チャット開始操作として、チャット機能用ウィンドウにチャットを開始する言葉（例えば、「会話してもいいですか？」）を入力する。
【００５４】
ステップＳ５４において、仮想空間管理部３１は、図２のステップＳ６においてサーバ１に出力した移動情報に対応する衝突判定結果が、サーバ１から入力されるまで待機する。サーバ１から衝突判定結果が入力されていると確認された場合、ステップＳ５５に進み、サーバ１から入力された衝突判定結果が「衝突発生」であるか否かが判定される。衝突判定結果が「衝突発生」ではないと判定された場合、ステップＳ５６に進む。ステップＳ５６において、仮想空間管理部３１は、チャットの開始要求（チャットを開始する言葉の情報を含む）をサーバ１に出力する。ステップＳ６８において、サーバ１は、チャット開始の要求を受け付け、チャット相手のアバタに対応するユーザ端末（例えば、ユーザ端末３−２）にチャット開始要求（チャットを開始する言葉の情報を含む）を出力する。
【００５５】
ステップＳ５８において、ユーザ端末３−２は、チャット開始要求を受け付け、ユーザ端末３−２の図示せぬ表示部にチャット機能用ウィンドウを開き、ユーザ端末３−１が出力したチャットを開始する言葉を表示する。ステップＳ５９において、ユーザ端末３−２を操作するユーザは、チャット開始要求に対する返事（例えば、「どうぞ」）を、チャット機能用ウィンドウに入力する。ユーザ端末３−２は、ネットワーク２を介してサーバ１にチャット機能開始完了の情報（チャット開始要求に対する返事の言葉の情報を含む）を出力する。ステップＳ６０において、サーバ１は、ユーザ端末３−２から入力されたチャット機能開始完了の情報を受け取り、ユーザ端末３−１にチャット機能開始準備完了の情報を出力する。ステップＳ６１において、ユーザ端末３−１とユーザ端末３−２の間でチャットが開始される。
【００５６】
ステップＳ５５において、サーバ１から入力された衝突判定結果が「衝突発生」であると判定された場合、ステップＳ５６乃至Ｓ６１の処理はスキップされる。
【００５７】
ステップＳ５１において、ＵＩ制御部３３に入力された決定結果が、「チャット機能用ウィンドウの表示を抑制する」であると判定された場合、ステップＳ５２乃至Ｓ６１の処理はスキップされる。すなわち、この場合、チャット用にウィンドウは表示されず、ユーザはチャットを行うことができない。
【００５８】
なお、ステップＳ５２以降において、ユーザがアバタの移動操作を行うと、表示されているチャット機能用ウィンドウは閉じられる。したがって、アバタの移動操作を行うことでチャット機能起動処理を中止できる。
【００５９】
図１６と図１７は、図２のステップＳ３において、衝突判定部３７の衝突判定結果がそれぞれ、「衝突なし」であると判定された場合と、「衝突発生」であると判定された場合における主に図１４の各ステップに対応する情報の入出力を太線の矢印で示している。
【００６０】
次に、サーバ１から衝突判定結果が入力されたユーザ端末３−１の処理について、図１８を参照して説明する。ステップＳ７１において、サーバ１から入力された衝突判定結果が「衝突発生」であるか否かが判定される。衝突判定結果が「衝突発生」であると判定された場合、衝突判定部３７の衝突判定結果に基づいて更新した位置情報や各種の処理を修正するため、ステップＳ７２に進む。ステップＳ７２において、仮想空間管理部３１は、オブジェクト・アバタ管理部３６が管理するアバタの位置情報を移動前の位置の座標に戻す。ステップＳ７３において、ＵＩ制御部３３は、オブジェクト・アバタ管理部３６が管理するアバタの位置情報に基づいて、アバタの表示位置を更新する（移動前の表示位置に戻す）。
【００６１】
ステップＳ７４において、仮想空間管理部３１は、オブジェクト機能一覧ウィンドウ、またはチャット機能用ウィンドウが表示部に表示されているか否かを判定し、ウィンドウが表示されていると判定された場合、ステップＳ７５に進み、仮想空間管理部３１は、ＵＩ制御部３３を制御し、表示部に表示されているウィンドウを閉じさせる（オブジェクト機能起動処理、またはチャット機能起動処理が中止される）。ステップＳ７４でウィンドウが表示されていないと判定された場合、ステップＳ７５の処理はスキップされる。
【００６２】
上記した各種の処理はコンピュータにより行わせることができる。そのコンピュータのプログラムは、フロッピディスク、光ディスク、ハードディスクなどの記録媒体に記録し、ユーザに提供することができる。
【００６３】
【発明の効果】
本発明によれば、アバタと、他のアバタまたはオブジェクトの距離に応じて自動的にウィンドウの開閉するようにしたので、ユーザの操作を簡略化することができる。
【図面の簡単な説明】
【図１】本発明を適用した仮想空間制御システムの構成を示すブロック図である。
【図２】図１の仮想空間制御システムの機能起動処理を説明するフローチャートである。
【図３】図２のステップＳ２の衝突判定処理の詳細を説明するフローチャートである。
【図４】仮想空間の平面図である。
【図５】図４に対応した仮想空間の正面図である。
【図６】衝突判定処理を説明する図である。
【図７】移動情報を入力されたサーバ１の処理を説明するフローチャートである。
【図８】アバタ２がオブジェクト３の領域に進入した状態を示す仮想空間の平面図である。
【図９】アバタ１がアバタ２の領域に進入した状態を示す仮想空間の平面図である。
【図１０】図２のステップＳ９のオブジェクト機能起動処理の詳細を説明するフローチャートである。
【図１１】機能一覧ウィンドウが表示された仮想空間の正面図である。
【図１２】図１０のオブジェクト機能開始処理における情報の入出力を示す図である。
【図１３】図１０のオブジェクト機能開始処理における情報の入出力を示す図である。
【図１４】図２のステップＳ１０のチャット機能起動処理の詳細を説明するフローチャートである。
【図１５】チャット機能用ウィンドウが表示された仮想空間の正面図である。
【図１６】図１４のチャット機能開始処理における情報の入出力を示す図である。
【図１７】図１４のチャット機能開始処理における情報の入出力を示す図である。
【図１８】サーバ１から衝突判定結果が入力されたユーザ端末３−１の処理を説明するフローチャートである。
【図１９】従来の仮想空間制御システムの一例の構成を示す概略図である。
【図２０】仮想空間の側面図である。
【図２１】ＡＶ機器を表すオブジェクトを示す図である。
【図２２】机を表すオブジェクトを示す図である。
【図２３】椅子を表すオブジェクトを示す図である。
【図２４】従来の仮想空間制御システムの一例の構成を示すブロック図である。
【図２５】図２４の仮想空間制御システムの移動処理を説明するフローチャートである。
【図２６】図２４のフローチャートの各ステップに対応する情報の入出力を示す図である。
【符号の説明】
１  サーバ
２  ネットワーク
３  ユーザ端末
１１  仮想空間管理部
１２  通信制御部
１３  仮想空間情報格納部
１４  オブジェクト・アバタ管理部
１５  衝突判定部
３１  仮想空間管理部
３２  通信制御部
３３  ＵＩ制御部
３４  感性情報入力部
３５  仮想空間情報格納部
３６  オブジェクト・アバタ管理部
３７  衝突判定部
【図１】
0003562555.tif 000006
【図２】
0003562555.tif 000007
【図３】
0003562555.tif 000008
【図４】
0003562555.tif 000009
【図５】
0003562555.tif 000010
【図６】
0003562555.tif 000011
【図７】
0003562555.tif 000012
【図８】
0003562555.tif 000013
【図９】
0003562555.tif 000014
【図１０】
0003562555.tif 000015
【図１１】
0003562555.tif 000016
【図１２】
0003562555.tif 000017
【図１３】
0003562555.tif 000018
【図１４】
0003562555.tif 000019
【図１５】
0003562555.tif 000020
【図１６】
0003562555.tif 000021
【図１７】
0003562555.tif 000022
【図１８】
0003562555.tif 000023
【図１９】
0003562555.tif 000024
【図２０】
0003562555.tif 000025
【図２１】
0003562555.tif 000026
【図２２】
0003562555.tif 000027
【図２３】
0003562555.tif 000028
【図２４】
0003562555.tif 000029
【図２５】
0003562555.tif 000030
【図２６】
0003562555.tif 000031