(58)【調査した分野】(Int.Cl.,DB名)
第一VR空間から第二VR空間にアバターが移動するためのオブジェクトであるポータルの前記第一VR空間における設置指示であり、前記第一VR空間と前記第二VR空間とを特定する設置指示であり、前記第一VR空間における前記ポータルの設置位置を特定する第一設置位置情報と前記第二VR空間を特定する第二識別子とを有する設置指示を受け付ける設置指示受付部と、
前記設置指示の受け付けに応じて、当該設置指示を受け付けたユーザ端末以外の他のユーザ端末を含む1以上のユーザ端末における第一VR空間に前記ポータルを設置するための設置処理を行う設置処理部とを具備する情報処理装置。
前記アバターが予め決められた確認条件を満たす場合に、前記ポータルに対応する前記第一VR空間から前記第二VR空間に移動するか否かを確認するための確認処理を行う確認処理部と、
前記確認処理に対応する回答を受け付ける回答受付部とをさらに具備し、
前記移動処理部は、
前記回答受付部が受け付けた前記回答が移動する旨の情報である場合に、前記第一VR空間から前記第二VR空間に前記アバターを移動する処理である移動処理を行う、請求項4から請求項6いずれか一項に記載の情報処理装置。
前記ポータルは、当該ポータルに対応する第一VR空間から第二VR空間への移動、および前記第二VR空間から前記第一VR空間への移動の双方向における移動が可能なオブジェクトである、請求項1から請求項9いずれか一項に記載の情報処理装置。
【発明を実施するための形態】
【0034】
以下、情報処理装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
【0035】
(実施の形態1)
本実施の形態において、VR空間内にポータルを設置できる情報処理装置を具備する情報システムについて説明する。
【0036】
また、本実施の形態において、ポータルの設置の際に制約を有する情報処理装置について説明する。
【0037】
また、本実施の形態において、アバターがポータルを用いて、VR空間の間を移動する場合の制約を有する情報処理装置について説明する。なお、移動の制約は、例えば、アバターとポータルとの距離に基づく条件、アバターの移動のためのチケットに基づく条件である。
【0038】
また、本実施の形態において、所定の条件に基づいて、移動するか否かの確認処理を行う情報処理装置について説明する。
【0039】
また、本実施の形態において、削除条件を満たした場合に、ポータルを自動削除する情報処理装置について説明する。
【0040】
また、本実施の形態において、2つのVR空間の間を双方向で移動可能なポータルを設置できる情報処理装置について説明する。
【0041】
さらに、本実施の形態において、ポータル情報を管理し、1以上のユーザ端末2に送信する情報処理装置について説明する。
【0042】
なお、本実施の形態における情報システムは、例えば、三次元空間の中において、各ユーザの分身である2以上のアバターが集まり、ユーザ間において、コミュニケーションをすることを支援するシステムでも良い。ただし、本情報システムは、ゲーム等にも応用可能である。本情報システムは、アバターを出力する機能を有すれば良く、応用範囲は問わない。
【0043】
図1は、本実施の形態における情報システムAの概念図である。情報システムAは、情報処理装置1、1または2以上のユーザ端末2を備える。
【0044】
情報処理装置1は、ユーザ端末2からの指示を受信し、アバター情報やポータル情報をユーザ端末2に送信するサーバである。情報処理装置1は、例えば、クラウドサーバ、ASPサーバ等である。なお、情報処理装置1の種類は問わない。また、情報処理装置1は、後述する通り、端末でも良い。
【0045】
ユーザ端末2は、アバターやポータルを出力する装置である。ユーザ端末2は、例えば、いわゆるパーソナルコンピュータ、タブレット端末、スマートフォン等であるが、その種類は問わない。
【0046】
情報処理装置1と1以上の各ユーザ端末2とは、例えば、インターネット等の通信回線により通信可能である。
【0047】
図2は、本実施の形態における情報システムAのブロック図である。情報処理装置1は、格納部11、受付部12、処理部13、および送信部14を備える。格納部11は、端末情報格納部111、ワールド格納部112、アバター格納部113、およびポータル格納部114を備える。受付部12は、設置指示受付部121、および回答受付部122を備える。処理部13は、設置判断部131、設置処理部132、削除判断部133、削除処理部134、確認処理部135、移動判断部136、および移動処理部137を備える。
【0048】
ユーザ端末2は、端末格納部21、端末受付部22、端末処理部23、端末送信部24、端末受信部25、および端末出力部26を備える。
【0049】
情報処理装置1を構成する格納部11には、各種の情報が格納される。各種の情報とは、例えば、後述する端末情報、後述するワールド情報、後述するアバター情報、後述するポータル情報、後述する設置条件、後述する削除条件、後述する確認条件、後述する移動条件、後述する移動チケットである。
【0050】
端末情報格納部111には、1以上の端末情報が格納される。端末情報は、ユーザ端末2に関する情報である。端末情報は、ユーザ端末2を使用するユーザに関する情報でも良い。端末情報は、ユーザ端末2を使用するユーザに対応するアバターに関する情報でも良い。端末情報は、例えば、端末識別子、ワールド識別子、アバター識別子を有する。端末情報は、例えば、後述する設置条件、後述する削除条件、後述する確認条件、後述する移動条件を有しても良い。つまり、設置条件、削除条件、確認条件、移動条件は、ユーザ端末2ごとに異なっていても良い。ユーザ端末2ごとに異なることは、ユーザごとに異なること、またはアバターごとに異なることである。端末情報は、例えば、後述する設置権限を有する。また、設置条件、削除条件、確認条件、移動条件は、全ユーザ端末2、全ユーザ、および全アバターに共通でも良い。
【0051】
端末識別子は、ユーザ端末2を識別する情報である。端末識別子は、例えば、ID、ユーザ端末2と通信をするための情報(例えば、IPアドレス、電話番号)、メールアドレス、電話番号である。ワールド識別子は、ワールドを識別する情報である。ワールド識別子は、例えば、IDである。アバター識別子は、アバターを識別する情報である。アバター識別子は、例えば、IDである。
【0052】
なお、端末情報が有するワールド識別子は、当該ユーザ端末2で、現在、出力されているワールドを識別する情報である。また、端末情報が有するアバターは、当該ユーザ端末2を使用するユーザに対応するアバターである。なお、アバターは、キャラクタと言っても良い。アバターの形状、外形等は問わないことは言うまでもない。
【0053】
ワールド格納部112には、1または2以上のワールド情報が格納される。ワールド情報は、ワールドを構成するための情報である。ワールド情報の構造は問わない。ワールドは、通常、仮想的な三次元空間である。なお、ワールドは、場と言っても良い。ワールド情報は、例えば、ワールド識別子に対応付いている。ワールド情報は、ここでは、2以上のVR空間を構成する情報である。ワールド情報の構造は問わない。
【0054】
アバター格納部113は、1または2以上のアバター情報が格納される。アバター情報は、出力されるアバターを構成するための情報を含む。アバター情報は、例えば、アバター識別子に対応付いている。アバター識別子に対応付いていることは、アバター識別子を有することでも良い。アバター識別子は、例えば、アバターのIDであるが、アバターに対応するユーザのID、アバターが表示されるユーザ端末2のID等でも良い。
【0055】
アバター情報は、通常、モデル情報を有する。アバター情報は、アバターのモーションの情報であるアバターモーション情報を有することは好適である。
【0056】
モデル情報は、アバターの表示を構成するための情報である。モデル情報は、例えば、メッシュ情報、ボーン情報、マテリアル情報を有する。モデル情報は、例えば、glTF(GL Transmission Format)のデータ構造を有する。ただし、モデル情報のデータ構造は、VRM、OBJ、FBX、STL、GLB、COLLADA、等でも良く、種類を問わない。また、アバター情報は、モデル情報の他、音声情報や1以上の属性値を有しても良い。
【0057】
アバターモーション情報は、例えば、アバターが呼吸を行う際の動きを特定する情報である。アバターモーション情報は、アバターが有する固定的なモーションの情報である。
【0058】
ポータル格納部114は、1または2以上のポータル情報が格納される。ポータル情報は、ポータルに関する情報である。ポータルとは、2つのVR空間の間をアバターが移動するためのオブジェクトである。ポータルは、いわゆる仮想的なドアの役割を果たす。ポータルは、例えば、片方向ポータルである。片方向ポータルは、第一VR空間から第二VR空間にアバターが移動できるが、第二VR空間から第一VR空間にはアバターが移動できないオブジェクトである。ポータルが片方向ポータルである場合、第一VR空間は移動元のVR空間であり、第二VR空間は移動先のVR空間である。なお、ポータルは片方向ポータルでも双方向ポータルでも良い。双方向ポータルは、双方向にアバターが移動可能なポータルである。双方向に移動可能であることは、第一VR空間から第二VR空間にも移動できるし、第二VR空間から第一VR空間にも移動できることを言う。
【0059】
ポータル情報は、ポータル識別子に対応付く情報である。ポータル識別子は、ポータルを識別する情報であり、例えば、IDである。ポータル情報は、設置指示を送信してきたユーザ端末2の端末識別子に対応付くことは好適である。端末識別子に対応付くことは、ユーザ識別子に対応付くことまたはアバター識別子に対応付くことでも良い。
【0060】
ポータル情報は、1以上のポータル属性値を有する。1以上のポータル属性値は、例えば、第一VR空間を特定する第一識別子、第二VR空間を特定する第二識別子、第一設置位置情報、第二移動位置情報である。
【0061】
第一設置位置情報は、第一VR空間におけるポータルの設置位置を特定する情報である。第一設置位置情報は、例えば、第一VR空間のおける相対的な三次元座標、第一VR空間のおける直方体の領域を特定するための8つの三次元座標の集合である。
【0062】
第二移動位置情報は、ポータルに基づいてアバターが第一VR空間から第二VR空間に移動した場合の第二VR空間における初期位置を特定する情報である。第二移動位置情報は、例えば、第二VR空間のおける相対的な三次元座標、第二VR空間のおける直方体の領域を特定するための8つの三次元座標の集合である。 なお、ポータル情報が第一設置位置情報を有さない場合、当該ポータル情報に対応するポータルは、第一VR空間内におけるデフォルトの位置に配置される。また、ポータル情報が第二移動位置情報を有さない場合、当該ポータル情報に対応するポータルを用いて、第一VR空間から第二VR空間にアバターが移動した場合、当該アバターの移動後の初期位置は第二VR空間のデフォルトの位置である。
【0063】
ポータルが双方向ポータルである場合、ポータル情報が有する1以上のポータル属性値の中に、第二設置位置情報、第一移動位置情報が含まれていても良い。第二設置位置情報は、第二VR空間におけるポータルの設置位置を特定する情報である。第一移動位置情報は、ポータルに基づいてアバターが第二VR空間から第一VR空間に移動した場合の第一VR空間における初期位置を特定する情報である。第一移動位置情報は、例えば、第一VR空間のおける相対的な三次元座標、第一VR空間のおける直方体の領域を特定するための8つの三次元座標の集合である。
【0064】
なお、ポータルが双方向ポータルである場合であり、ポータル情報が第二設置位置情報を有さない場合、当該ポータル情報に対応するポータルは、第二VR空間内におけるデフォルトの位置に配置される。また、ポータルが双方向ポータルである場合であり、ポータル情報が第一移動位置情報を有さない場合、当該ポータル情報に対応するポータルを用いて、第二VR空間から第一VR空間にアバターが移動した場合、当該アバターの移動後の初期位置は第一VR空間のデフォルトの位置である。
【0065】
また、ポータルが双方向ポータルである場合、第一移動位置情報が特定する位置と第一設置位置情報が特定する位置とが同一になっても良い。また、ポータルが双方向ポータルである場合、第二移動位置情報が特定する位置と第二設置位置情報が特定する位置とが同一になっても良い。
【0066】
受付部12は、各種の指示や情報を受け付ける。各種の指示や情報とは、例えば、後述する設置指示、後述する回答、操作情報である。
【0067】
操作情報とは、ユーザの操作に関する情報である。操作情報は、例えば、ユーザ端末2から受信される。操作情報は、例えば、アバターに与えられた命令、アバターの移動する位置を示す位置情報である。操作情報の構造や内容等は問わない。
【0068】
受付部12は、例えば、ユーザ端末2から各種の指示や情報を受信する。つまり、ここでの受け付けとは、有線もしくは無線の通信回線を介して送信された情報の受信であるが、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付け、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念であっても良い。
【0069】
設置指示受付部121は、設置指示を受け付ける。設置指示受付部121は、例えば、設置指示をユーザ端末2から受信する。設置指示受付部121は、例えば、ユーザが入力した設置指示を受け付けても良い。
【0070】
設置指示は、ポータルを第一VR空間において設置する指示である。設置指示により、ポータルが設置される第一VR空間と、移動先の第二VR空間とが特定される。片方向ポータルの設置指示は、例えば、第一識別子、第二識別子、第一設置位置情報、第二移動位置情報のうちの1または2以上の情報を有する。双方向ポータルの設置指示は、例えば、第一識別子、第二識別子、第一設置位置情報、第二設置位置情報、第一移動位置情報、第二移動位置情報のうちの1または2以上の情報を有する。
【0071】
回答受付部122は、確認処理に対応する回答を受け付ける。回答受付部122は、例えば、ユーザ端末2から回答を受信する。
【0072】
確認処理とは、アバターが移動するか否かを確認するための処理である。確認処理は、例えば、ポータルに対応する第一VR空間から第二VR空間にアバターが移動するか否かを確認するための処理である。ポータルが双方向ポータルである場合、確認処理は、例えば、ポータルに対応する第二VR空間から第一VR空間にアバターが移動するか否かを確認するための処理である。確認処理は、例えば、アバターを移動させるか否かを問い合わすための情報または画面情報等をユーザ端末2に送信する処理である。
【0073】
回答は、移動するか否かを特定する情報である。回答は、例えば、移動することを示す情報(例えば、「1」)、移動しないことを示す情報(例えば、「0」)のいずれかを採り得るフラグである。
【0074】
処理部13は、各種の処理を行う。各種の処理は、例えば、設置判断部131、設置処理部132、削除判断部133、削除処理部134、確認処理部135、移動判断部136、移動処理部137が行う処理である。
【0075】
設置判断部131は、設置指示に対応するポータルの設置が、設置条件を満たすか否かを判断する。
【0076】
設置条件は、ポータルの設置のための条件である。設置条件は、例えば、ユーザの権限に関する条件、設置されているポータルの数に関する条件である。設置条件は、例えば、設置指示に対応するユーザが設置権限を有することである。設置条件は、例えば、設置指示に対応する第一VR空間から設置指示に対応する第二VR空間の移動するためのポータルが存在しないこと、特定のユーザが設置したポータルの数が閾値以内または閾値より少ないこと、特定のユーザが特定のワールドに設置したポータルの数が閾値以内または閾値より少ないこと、設置指示に対応する第一VR空間から設置指示に対応する第二VR空間の移動するためのポータルの数が閾値以内または閾値より少ないこと、設置指示に対応する第一VR空間に既に設置されているポータルの数が閾値以内または閾値より少ないこと等である。
【0077】
なお、ユーザと対になる設置権限は、当該ユーザに対応する端末情報が有する設置権限である。設置権限は、ポータルを設置する場合に必要な権限が存在することを示す情報である。つまり、設置判断部131は、設置指示に対応するユーザの端末情報に対応して、設置権限が格納されているか否かを判断することは好適である。また、設置権限は設置指示に含まれる識別子から特定される第一VR空間と第二VR空間に参加する権限としてもよく、当該ユーザが第一VR空間と第二VR空間の双方への参加権限を有している場合には、当該ポータルの設置権限を有していることとしてもよい。
【0078】
なお、設置権限は、通常、格納部11に格納されているが、他の装置に格納されていても良い。
【0079】
設置処理部132は、設置指示の入力を受け付けた装置以外の他の装置を含む1以上の装置における第一VR空間にポータルを設置するための設置処理を行う。設置指示の入力を受け付けた装置は、通常、ユーザ端末2である。また、他の装置は、通常、他のユーザ端末2である。ただし、設置指示の入力を受け付けた装置、および他の装置は、P2Pで動作する情報に対応する情報処理装置1でも良い。設置処理部132は、例えば、1以上のユーザ端末2における第一VR空間にポータルを設置するための設置処理を行う。
【0080】
設置処理は、通常、設置指示に対応するポータルを設置するための処理である。設置処理は、例えば、ポータル登録処理、ポータル配置処理を含む、なお、設置されたポータルは、当該ポータルを設置したユーザ以外のユーザのアバターも利用して、当該ポータルに対応する第一VR空間から第二VR空間に移動しても良い。
【0081】
ポータル登録処理は、設置指示の受け付けに応じて、当該設置指示に対応するポータル情報を構成し、当該ポータル情報をポータル格納部114に蓄積する処理である。
【0082】
ポータル配置処理は、設置指示の受け付けに応じて、当該設置指示に対応する第二識別子を有するポータル情報を構成し、当該ポータル情報を1以上のユーザ端末2に送信する処理である。1以上のユーザ端末2は、通常、設置指示を送信した一のユーザ端末2とは異なる他のユーザ端末2を含む。1以上のユーザ端末2は、設置指示を送信した一のユーザ端末2も含むことは好適である。
【0083】
設置処理部132は、例えば、設置判断部131が設置条件を満たすと判断した場合に、設置処理を行う。
【0084】
設置処理部132は、例えば、設置判断部131が、設置指示を送信した一のユーザ端末2に対応する設置権限が格納されていると判断した場合に、設置処理を行う。
【0085】
削除判断部133は、削除条件を満たすか否かを判断する。削除判断部133は、例えば、設置指示受付部121が設置指示を受け付けたことに応じて、削除条件を満たすか否かを判断する。削除判断部133は、例えば、定期的に削除条件を満たすか否かを判断する。つまり、削除判断部133の動作のトリガーは問わない。
【0086】
削除条件は、ポータルを削除するための条件である。削除条件は、例えば、ポータルの数に関する条件である。削除条件は、例えば、利用頻度に関する条件である。
【0087】
ポータルの数に関する削除条件は、例えば、一のユーザが閾値以上または閾値より多いポータルを設置したこと、ポータルが設置された第一VR空間内に閾値以上または閾値より多いポータルが存在することである。
【0088】
利用頻度に関する条件は、利用頻度が条件を満たすほど低いことである。利用頻度に関する条件は、単位期間のポータルを使用したアバターの移動が閾値以下または閾値より少ないことである。利用頻度に関する条件は、今までにポータルを使用したアバターの移動が閾値以下または閾値より少ないことである。
【0089】
削除処理部134は、削除判断部133が削除条件を満たすと判断したポータルを削除するための削除処理を行う。削除処理は、例えば、ポータル格納部114からポータル情報を削除する処理である。削除処理は、例えば、削除指示をポータルが設置されている1以上の各ユーザ端末2に送信することである。削除指示は、例えば、削除されるポータル情報を特定する情報(例えば、ポータル識別子、ポータル情報そのもの)を含む。
【0090】
削除処理部134は、例えば、設置指示受付部121が受け付けた設置指示に対応するユーザに対応するポータルであり、過去に設置されたポータルを削除する。
【0091】
確認処理部135は、アバターが予め決められた確認条件を満たす場合に、ポータルに対応する確認処理を行う。確認条件は、アバターがポータルを介して移動させるか否かを、ユーザに確認するための条件である。なお、確認条件は、後述する移動条件と同じでも良い。
【0092】
確認処理は、ポータルに対応する第一VR空間から第二VR空間に移動するか否かを確認するための処理である。確認処理は、例えば、ポータルに対応する第二VR空間から第一VR空間に移動するか否かを確認するための処理でも良い。確認処理は、例えば、確認のための画面情報をユーザ端末2に送信する処理である。
【0093】
移動判断部136は、移動条件を満たすか否かを判断する。移動条件は、アバターをポータルを介して移動させるか否かを判断するための条件である。移動条件は、例えば、距離条件、チケット条件である。
【0094】
距離条件は、ポータルとアバターとの距離に関する条件である。距離条件は、例えば、ポータルとアバターとの距離が閾値以内または閾値より小さいことである。また、距離条件は、例えば、アバターがポータルに接触したこと(つまり、距離が0であること)である。
【0095】
チケット条件は、アバターが移動チケットを有することである。アバターが移動チケットを有することは、当該アバターに対応するユーザ端末2またはユーザが移動チケットを有することでも良い。アバターが移動チケットを有することは、例えば、ユーザ端末2に対応する端末情報が移動チケットを有することである。なお、移動チケットとは、第一VR空間から第二VR空間に移動するために必要な情報である。移動チケットは、例えば、移動先の第二VR空間を識別する第二識別子を有する。移動チケットは、例えば、移動元の第一VR空間を識別する第二識別子を有する。移動チケットは、例えば、移動できる回数を特定する回数情報を有する。移動チケットが回数情報を有する場合、移動のたびに、移動チケットが有する回数情報が減っていき、0になった以降は、当該移動チケットを使用できなくなる。
【0096】
移動判断部136は、例えば、ポータルとアバターとの距離が距離条件を満たすほど小さい距離であるか否かを判断する。
【0097】
移動処理部137は、ポータルを用いて移動処理を行う。移動処理は、ポータルに対応する第二VR空間に、アバターを移動させる処理である。移動処理は、例えば、ポータルに対応する第二VR空間の初期位置を特定する第二移動位置情報を、当該アバターの位置情報とする。そして、移動処理部137は、例えば、当該アバターの位置が第二VR空間の第二移動位置情報が示す位置に変更になるように、1以上の各ユーザ端末2に、当該アバターを識別するアバター識別子と第二識別子と第二移動位置情報とを含む移動指示を送信する。なお、移動指示は、アバターを移動させる指示である。
【0098】
移動処理部137は、移動判断部136が移動条件を満たすと判断した場合に、移動処理を行う。
【0099】
移動処理部137は、移動判断部136が、距離条件を満たさないと判断した場合に、移動処理は行わない。
【0100】
移動処理部137は、回答受付部122が受け付けた回答が移動する旨の情報である場合に、第一VR空間から第二VR空間にアバターを移動する処理である移動処理を行う。一方、回答受付部122が受け付けた回答が移動しない旨の情報である場合には、移動処理部137は、移動処理を行わない。
【0101】
送信部14は、各種の指示や情報を1以上のユーザ端末2に送信する。各種の指示や情報は、例えば、ワールド情報、アバター情報、ポータル情報である。
【0102】
ユーザ端末2を構成する端末格納部21には、各種の情報が格納される。各種の情報は、例えば、ワールド情報、アバター情報、ポータル情報である。各種の情報は、通常、情報処理装置1から受信された情報である。ただし、ワールド情報等は、他のユーザ端末2や図示しない装置から受信された情報でも良い。
【0103】
端末受付部22は、各種の情報や指示や操作を受け付ける。なお、指示は操作を含むと考えても良い。また、各種の情報や指示や操作は、例えば、出力指示、設置指示、回答である。出力指示は、アバターを含む仮想的な三次元画像を出力する指示である。出力指示は、例えば、使用するアバターを識別するアバター識別子、使用するワールドを識別するワールド識別子を有する。
【0104】
ここで受け付けとは、通常、入力手段から入力された情報の受け付けであるが、有線もしくは無線の通信回線を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念であっても良い。なお、入力手段は、例えば、VRやゲーム用の種々の入力手段、マウス、キーボード、十字キー等であり、問わない。VRやゲーム用の入力手段は、例えば、ハンドコントローラー、ファントムである。
【0105】
端末処理部23は、各種の処理を行う。各種の処理は、例えば、ワールド情報、アバター情報、ポータル情報のうちの1または2以上の情報を用いて、出力される画像を構成する。かかる画像は、通常、仮想的な三次元画像であり、アバターを有する。かかる画像は、通常、1または2以上のVR空間を有する。かかる画像は、ポータルを有することは好適である。かかる画像は、ワールドを有することは好適である。また、画像は、通常、端末受付部22が受け付けた操作に応じた動きを有する動画である。各種の処理は、例えば、端末受付部22が受け付けた操作に基づいて、アバターを動作させる処理である。各種の処理は、例えば、受信された画面情報を用いて、画面を構成する。
【0106】
端末処理部23は、端末受付部22がユーザから受け付けた操作に応じた操作情報を構成する。端末処理部23は、端末受付部22がユーザから受け付けた操作に応じて、変化するアバターやワールド等を有する画像を構成する。
【0107】
端末処理部23は、例えば、端末受付部22が受け付けた指示や情報を用いて、送信する指示や情報を構成する。
【0108】
端末送信部24は、各種の指示や情報を情報処理装置1に送信する。各種の指示や情報は、例えば、出力指示、設置指示、回答、操作情報である。
【0109】
端末受信部25は、各種の指示や情報を情報処理装置1から受信する。各種の指示や情報は、例えば、ワールド情報、アバター情報、ポータル情報、画面情報、確認指示である。
【0110】
端末出力部26は、各種の情報を出力する。各種の情報は、例えば、端末処理部23が構成した画像、回答を入力するための画面である。
【0111】
ここで出力とは、通常、ディスプレイへの表示、プロジェクターを用いた投影であるが、音出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念であっても良い。
【0112】
格納部11、端末情報格納部111、ワールド格納部112、アバター格納部113、ポータル格納部114、および端末格納部21は、揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。格納部11等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部11等で記憶されるようになってもよく、通信回線等を介して送信された情報が格納部11等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部11等で記憶されるようになってもよい。
【0113】
受付部12、設置指示受付部121、回答受付部122、および端末受信部25は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
【0114】
処理部13、設置判断部131、設置処理部132、削除判断部133、削除処理部134、確認処理部135、移動判断部136、移動処理部137、および端末処理部23は、通常、プロセッサやメモリ等から実現され得る。処理部13等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。なお、プロセッサは、CPU、MPU、GPU等であり、その種類は問わない。
【0115】
送信部14、および端末送信部24は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
【0116】
端末受付部22は、タッチパネルやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
【0117】
端末出力部26は、ディスプレイ等の出力デバイスを含むと考えても含まないと考えても良い。端末出力部26は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
【0118】
次に、情報システムAの動作例について説明する。まず、情報処理装置1の動作例について、
図3のフローチャートを用いて説明する。
【0119】
(ステップS301)受付部12は、ユーザ端末2から出力指示を受信したか否かを判断する。出力指示を受信した場合はステップS302に行き、出力指示を受信しなかった場合はステップS304に行く。
【0120】
(ステップS302)処理部13は、出力指示を送信したユーザ端末2に対応するワールド情報をワールド格納部112から取得する。処理部13は、当該ユーザ端末2に対応するアバター情報をアバター格納部113から取得する。処理部13は、当該ユーザ端末2に対応する1または2以上のポータル情報をポータル格納部114から取得する。
【0121】
なお、処理部13は、出力指示に含まれるワールド識別子で識別されるワールド情報をワールド格納部112から取得し、当該ワールドの中のポータルのポータル情報をポータル格納部114から取得し、かつ出力指示に含まれるアバター識別子で識別されるアバター情報をアバター格納部113から取得する等しても良い。
【0122】
また、ここで、処理部13は、取得したワールド情報、アバター情報、および1以上のポータル情報を用いて、出力指示を送信したユーザ端末2で出力される出力画像を構成しても良い。
【0123】
(ステップS303)送信部14は、ステップS302で取得されたワールド情報、アバター情報、および1以上のポータル情報を、出力指示を送信したユーザ端末2に送信する。ステップS301に戻る。
【0124】
なお、ステップS302で出力画像が構成された場合、送信部14は、当該出力画像をユーザ端末2に送信する。
【0125】
(ステップS304)設置指示受付部121は、ユーザ端末2から設置指示を受信したか否かを判断する。設置指示を受信した場合はステップS305に行き、設置指示を受信しなかった場合はステップS308に行く。
【0126】
(ステップS305)処理部13は、ポータルの設置処理を行う。かかる設置処理の例について、
図4のフローチャートを用いて説明する。
【0127】
(ステップS306)削除判断部133は、ステップS305において、ポータルが設置されたか否かを判断する。ポータルが設置された場合はステップS307に行き、ポータルが設置されていない場合はステップS301に戻る。
【0128】
(ステップS307)処理部13は、ポータルの削除処理を行う。かかる削除処理の例について、
図5のフローチャートを用いて説明する。ステップS301に戻る。なお、ここで、ポータルの削除が行われなくても良い。
【0129】
(ステップS308)受付部12は、ユーザ端末2から操作情報を受信したか否かを判断する。操作情報を受信した場合はステップS309に行き、操作情報を受信しなかった場合はステップS301に戻る。
【0130】
(ステップS309)移動判断部136は、ステップS308で受信された操作情報を用いて、移動条件を満たすか否かを判断する。移動条件を満たす場合はステップS310に行き、移動条件を満たさない場合はステップS316に行く。
【0131】
(ステップS310)確認処理部135は、移動処理を行うことを確認するか否かを判断する。確認する場合はステップS311に行き、確認しない場合はステップS314に行く。
【0132】
なお、確認処理部135は、常に移動処理を行うことを確認すると判断しても良いし、常に移動処理を行うことを確認しないと判断しても良いし、共通の確認条件を用いて確認するか否かを判断しても良いし、アバター情報または端末情報に対応付けて格納されている確認条件を参照し、確認するか否かを判断しても良い。
【0133】
(ステップS311)確認処理部135は、確認のための画面情報を格納部11から取得し、当該画面情報を、設置指示を送信したユーザ端末2に送信する。
【0134】
(ステップS312)回答受付部122は、ユーザ端末2から回答を受信したか否かを判断する。回答を受信した場合はステップS313に行き、回答を受信しなかった場合はステップS312に戻る。
【0135】
(ステップS313)ステップS312で受信された回答が「移動する」旨の回答である場合はステップS314に行き、「移動しない」旨の回答である場合はステップS316に行く。
【0136】
(ステップS314)移動処理部137は、ステップS308で受信された操作情報に対応するポータル情報が有する第二識別子、および第二移動位置情報をポータル格納部114から取得する。
【0137】
(ステップS315)移動処理部137は、ステップS314で取得した第二識別子で識別される第二VR空間の、第二移動位置情報で特定される位置に、ステップS308で受信された操作情報に対応するアバターを移動させる処理を行う。ステップS301に戻る。
【0138】
なお、かかるアバターを移動させる処理は、例えば、移動するアバターのアバター識別子と第二識別子と第二移動位置情報とを、1以上のユーザ端末2に送信する処理である。また、アバターを移動させる処理は、例えば、当該アバターが存在するワールドを特定するワールド識別子を第二識別子に書き換える処理である。
【0139】
(ステップS316)処理部13は、ステップS308で受信された操作情報に応じた情報を取得する。操作情報に応じた情報は、例えば、アバターを移動させるための情報であり、例えば、アバター識別子と移動後のアバターの位置情報である。操作情報に応じた情報は、例えば、アバターの動きを作り出すための情報であり、例えば、アバター識別子と当該動きを作り出すためのアクション情報である。ただし、操作情報に応じた情報は、種々、あり得、問わない。
【0140】
(ステップS317)処理部13は、ステップS316で取得した情報を、1または2以上のユーザ端末2に送信する。ステップS301に戻る。なお、一のユーザ端末2で行われた、アバターに対する操作に対応する操作情報を用いて、他のユーザ端末2に、当該アバターの動作を行わせる処理は公知技術であるので、詳細な説明は省略する。
【0141】
なお、
図3のフローチャートにおいて、設置処理の後に削除処理を行った。しかし、削除処理のトリガーは問わない。
【0142】
また、
図3のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【0143】
次に、ステップS305の設置処理の例について、
図4のフローチャートを用いて説明する。
【0144】
(ステップS401)設置判断部131は、カウンタiに1を代入する。
【0145】
(ステップS402)設置判断部131は、格納部11に、i番目の設置条件が存在するか否かを判断する。i番目の設置条件が存在する場合はステップS403に行き、存在しない場合はステップS405に行く。
【0146】
(ステップS403)設置判断部131は、i番目の設置条件を満たすか否かを判断する。i番目の設置条件を満たす場合はステップS404に行き、満たさない場合はステップS405に行く。
【0147】
(ステップS404)設置判断部131は、カウンタiを1、インクリメントする。ステップS402に戻る。
【0148】
(ステップS405)設置処理部132は、格納部11からエラーメッセージを取得する。
【0149】
(ステップS406)設置処理部132は、ステップS405で取得したエラーメッセージを、設置指示を送信したユーザ端末2に送信する。
【0150】
(ステップS407)設置処理部132は、設置指示に対応する1以上のポータル属性値を取得する。設置指示に対応する1以上のポータル属性値は、例えば、設置指示に含まれるポータル属性値、デフォルトのポータル属性値である。
【0151】
(ステップS408)設置処理部132は、ステップS407で取得した1以上のポータル属性値を用いて、ポータル情報を構成する。設置処理部132は、例えば、ユニークなポータル識別子を取得し、当該ポータル識別子とステップS407で取得した1以上のポータル属性値とを用いて、ポータル情報を構成する。
【0152】
(ステップS409)設置処理部132は、ステップS408で構成したポータル情報をポータル格納部114に蓄積する。
【0153】
(ステップS410)設置処理部132は、カウンタiに1を代入する。
【0154】
(ステップS411)設置処理部132は、i番目の端末情報が端末情報格納部111に存在するか否かを判断する。i番目の端末情報が存在する場合はステップS412に行き、存在しない場合は上位処理にリターンする。
【0155】
(ステップS412)設置処理部132は、i番目の端末情報に対応するユーザ端末2に、ステップS408で構成したポータル情報を送信するか否かを判断する。ポータル情報を送信する場合はステップS413に行き、ポータル情報を送信しない場合はステップS414に行く。
【0156】
なお、設置処理部132は、例えば、i番目の端末情報が、ポータルを利用できる移動チケットを有する場合に、ポータル情報を送信する、と決定する。また、設置処理部132は、例えば、ポータル情報が有するワールド識別子が、i番目の端末情報に対応するアバターが存在するワールドを識別するワールド識別子と一致する場合に、ポータル情報を送信する、と決定する。なお、ポータル情報を送信する対象のユーザ端末2を決定するための条件は問わない。
【0157】
(ステップS413)設置処理部132は、i番目の端末情報に対応するユーザ端末2に、ステップS408で構成したポータル情報を送信する。
【0158】
(ステップS414)設置処理部132は、カウンタiを1、インクリメントする。ステップS411に戻る。
【0159】
次に、ステップS307の削除処理の例について、
図5のフローチャートを用いて説明する。
【0160】
(ステップS501)削除判断部133は、カウンタiに1を代入する。
【0161】
(ステップS502)削除判断部133は、格納部11に、i番目の削除条件が存在するか否かを判断する。i番目の削除条件が存在する場合はステップS503に行き、存在しない場合はステップS507に行く。
【0162】
(ステップS503)削除判断部133は、ポータル格納部114を参照し、i番目の削除条件に合致するポータル情報を決定する。
【0163】
(ステップS504)削除処理部134は、ステップS503で、削除すると決定された1または2以上のポータル情報が存在するか否かを判断する。削除するポータル情報が存在する場合はステップS505に行き、存在しない場合はステップS506に行く。
【0164】
(ステップS505)削除処理部134は、ステップS503で決定された1以上のポータル情報をポータル格納部114から削除する。
【0165】
(ステップS506)削除判断部133は、カウンタiを1、インクリメントする。ステップS502に戻る。
【0166】
(ステップS507)削除処理部134は、削除通知処理を行う。上位処理にリターンする。なお、削除通知処理は、削除されるポータル情報をユーザ端末2に通知する処理である。また、削除通知処理の例について、
図6のフローチャートを用いて説明する。
【0167】
次に、ステップS507の削除通知処理の例について、
図6のフローチャートを用いて説明する。
【0168】
(ステップS601)削除処理部134は、カウンタiに1を代入する。
【0169】
(ステップS602)削除処理部134は、削除したi番目のポータル情報が存在するか否かを判断する。削除したi番目のポータル情報が存在する場合はステップS603に行き、存在しない場合は上位処理にリターンする。
【0170】
(ステップS603)削除判断部133は、カウンタjに1を代入する。
【0171】
(ステップS604)削除処理部134は、j番目の端末情報が端末情報格納部111に存在するか否かを判断する。j番目の端末情報が存在する場合はステップS605に行き、存在しない場合はステップS608に行く。
【0172】
(ステップS605)削除処理部134は、j番目の端末情報を用いて、j番目の端末情報に対応するユーザ端末2に、i番目のポータル情報の削除の通知を行うか否かを判断する。削除の通知を行う場合はステップS606に行き、削除の通知を行わない場合はステップS607に行く。なお、削除処理部134は、通常、i番目のポータル情報を送信しているユーザ端末2には、削除の通知を行うと判断する。
【0173】
(ステップS606)削除処理部134は、j番目の端末情報に対応するユーザ端末2に、i番目のポータル情報を特定する情報(例えば、ポータル識別子またはポータル情報)を含むポータルの削除指示を送信する。
【0174】
(ステップS607)削除判断部133は、カウンタjを1、インクリメントする。ステップS604に戻る。
【0175】
(ステップS608)削除判断部133は、カウンタiを1、インクリメントする。ステップS602に戻る。
【0176】
次に、ユーザ端末2の動作例について、
図7、
図8のフローチャートを用いて説明する。
【0177】
(ステップS701)端末受付部22は、出力指示を受け付けたか否かを判断する。出力指示を受け付けた場合はステップS702に行き、出力指示を受け付けなかった場合はステップS707に行く。なお、出力指示は、例えば、ワールド識別子とアバター識別子とを有する。
【0178】
(ステップS702)端末処理部23は、端末格納部21の端末識別子を取得し、当該端末識別子を有する出力指示を構成する。端末送信部24は、当該出力指示を情報処理装置1に送信する。
【0179】
(ステップS703)端末受信部25は、出力指示の送信に応じて、情報処理装置1からワールド情報等または出力画像を受信したか否かを判断する。受信した場合はステップS704に行き、受信しなかった場合はステップS703に戻る。なお、ワールド情報等とは、通常、ワールド情報、アバター情報、および1以上のポータル情報である。
【0180】
(ステップS704)端末処理部23は、ステップS703で受信されたワールド情報等または出力画像を、端末格納部21に一時蓄積する。
【0181】
(ステップS705)端末処理部23は、ステップS703で受信されたワールド情報等を用いて出力画像を構成する、またはステップS703で受信された出力画像を取得する。
【0182】
(ステップS706)端末出力部26は、ステップS705で取得された出力画像を出力する。ステップS701に戻る。
【0183】
(ステップS707)端末受付部22は、設置指示を受け付けたか否かを判断する。設置指示を受け付けた場合はステップS708に行き、設置指示を受け付けなかった場合はステップS713に行く。なお、設置指示は、例えば、1以上のポータル属性値を有する。
【0184】
(ステップS708)端末処理部23は、ステップS707で受け付けられた設置指示を用いて、送信する設置指示を構成する。次に、端末送信部24は、当該設置指示を情報処理装置1に送信する。
【0185】
なお、端末処理部23は、例えば、端末格納部21の端末識別子を取得し、当該端末識別子と、ステップS707で受け付けられた設置指示に含まれる1以上のポータル属性値とを有する設置指示を構成する。
【0186】
(ステップS709)端末受信部25は、ステップS708における設置指示の送信に応じて、情報処理装置1から情報を受信したか否かを判断する。情報を受信した場合はステップS710に行き、情報を受信しなかった場合はステップS709に戻る。
【0187】
(ステップS710)端末処理部23は、ステップS709で受信された情報がポータル情報であるか否かを判断する。ポータル情報であればステップS711に行き、エラーメッセージであればステップS712に行く。
【0188】
(ステップS711)端末処理部23は、ステップS709で受信されたポータル情報を端末格納部21に蓄積する。また、端末処理部23は、ステップS709で受信されたポータル情報を用いて、出力するポータルを構成する。端末出力部26は、当該ポータルをワールド内に出力する。ステップS701に戻る。
【0189】
(ステップS712)端末出力部26は、ステップS709で受信されたエラーメッセージを出力する。ステップS701に戻る。
【0190】
(ステップS713)端末受付部22は、ユーザからの操作を受け付けたか否かを判断する。操作を受け付けた場合はステップS714に行き、操作を受け付けなかった場合はステップS717に行く。
【0191】
(ステップS714)端末処理部23は、ステップS713における操作に応じて、変更する情報を構成する。端末出力部26は、構成された情報を出力する。なお、変更する情報は、例えば、姿勢が変更されたアバターの情報、位置が変更されたアバターの情報等である。
【0192】
(ステップS715)端末処理部23は、ステップS713における操作に応じて、操作情報を構成する。なお、端末処理部23は、通常、端末格納部21の端末識別子を取得し、当該端末識別子に対応付けられた操作情報を構成する。
【0193】
(ステップS716)端末送信部24は、端末識別子に対応付けられた操作情報を情報処理装置1に送信する。ステップS701に戻る。ステップS717以降は、
図8である。
【0194】
(ステップS717)端末受信部25は、情報処理装置1から確認情報を受信したか否かを判断する。確認情報を受信した場合はステップS718に行き、確認情報を受信しなかった場合はステップS723に行く。
【0195】
(ステップS718)端末処理部23は、出力する確認情報を構成する。端末出力部26は、当該確認情報を出力する。
【0196】
(ステップS719)端末受付部22は、ユーザから回答を受け付けたか否かを判断する。回答を受け付けた場合はステップS720に行き、回答を受け付けなかった場合はステップS719に戻る。
【0197】
(ステップS720)端末処理部23は、ステップS719において受け付けた回答を用いて、送信する回答を構成する。なお、端末処理部23は、例えば、確認情報に対応するポータル識別子または端末識別子を取得し、当該ポータル識別子または端末識別子に対応付く回答を構成する。端末送信部24は、ポータル識別子または端末識別子に対応付く回答を情報処理装置1に送信する。
【0198】
(ステップS721)端末処理部23は、ステップS719において受け付けた回答が「移動する」旨の回答であるか否かを判断する。「移動する」旨の回答である場合はステップS722に行き、「移動しない」旨の回答である場合はステップS701に戻る。
【0199】
(ステップS722)端末処理部23は、確認情報に対応するポータルに対応する第二識別子で識別される第二VR空間の、第二位置情報で特定される位置に、アバターを移動させる処理を行う。ステップS701に戻る。なお、かかるアバターを移動させる処理により、当該ユーザ端末2に対応するアバターが、第一VR空間の現在位置から第二VR空間の第二位置情報で特定される位置に移動する出力が得られる。
【0200】
(ステップS723)端末受信部25は、ポータル情報を受信したか否かを判断する。ポータル情報を受信した場合はステップS724に行き、ポータル情報を受信しなかった場合はステップS726に行く。
【0201】
(ステップS724)端末処理部23は、ステップS723で受信されたポータル情報を端末格納部21に蓄積する。
【0202】
(ステップS725)端末処理部23は、ステップS723で受信されたポータル情報を用いて、出力するポータルを構成する。端末出力部26は、当該ポータルをVR空間上に出力する。ステップS701に戻る。
【0203】
(ステップS726)端末受信部25は、ポータルの削除指示を受信したか否かを判断する。削除指示を受信した場合はステップS727に行き、削除指示を受信しなかった場合はステップS728に行く。
【0204】
(ステップS727)端末処理部23は、ステップS726で受信された削除指示に対応するポータル情報を端末格納部21から削除する。また、端末処理部23は、削除指示に対応するポータルを未表示とする出力画像を構成する。そして、端末出力部26は、当該ポータルを非表示とする。ステップS701に戻る。
【0205】
(ステップS728)端末受信部25は、他のアバターの情報を受信したか否かを判断する。他のアバターの情報を受信した場合はステップS729に行き、他のアバターの情報を受信しなかった場合はステップS701に戻る。
【0206】
(ステップS729)端末処理部23は、ステップS728で受信された他のアバターの情報を用いて、他のアバターの出力を変更する処理を行う。端末出力部26は、他のアバターの出力を変更する。ステップS701に戻る。なお、他のアバターの情報を用いて、他のアバターの出力を変更する処理は公知技術である。
【0207】
なお、
図7のフローチャートにおいて、ユーザ端末2は、設置指示を送信した後に、情報処理装置1から受信したポータル情報を用いて、ワールド内にポータルを出力した。しかし、ユーザ端末2は、受け付けた設置指示に応じて、ワールド内にポータルを出力した後に、設置したポータルのポータル情報を情報処理装置1に送信する等しても良い。一のユーザが入力した設置指示に応じたポータルが、1または2以上のユーザ端末2に設置されるまでの処理の過程は問わない。
【0208】
また、
図7、
図8のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【0209】
以下、本実施の形態における情報システムAの具体的な動作例について説明する。
【0210】
今、情報処理装置1の端末情報格納部111には、
図9に示す構造を有する端末情報管理表が格納されている、とする。端末情報管理表は、端末情報を管理する表である。端末情報管理表は、「端末識別子」「ワールド識別子」「アバター識別子」「設置条件」「削除条件」「確認条件」「移動条件」を有する1以上のレコードを管理する。「端末識別子」は、ユーザ端末2を識別する情報である。「ワールド識別子」は、ユーザ端末2で出力されているワールドを識別する情報である。「アバター識別子」は、ユーザ端末2を使用するユーザに対応するアバターを識別する情報である。「設置条件(設置権限)」は、ユーザ端末2を使用するユーザ(アバター)がポータルを設置するための条件であり、ここでは、ポータルを設置する権限があるか否かを示す情報である。「設置条件(設置権限)」の属性値「1」は設置権限を有し、属性値「0」は設置権限を有さないことを意味する。「削除条件」は、ここでは、ユーザがポータルを設置した場合に、過去に設置したポータルを削除するための条件である。「削除条件」の属性値「2以下」は、当該ユーザは、2つまでしかポータルを設置できないことを示し、3つ目のポータルを設置した場合に、設置日時が最も古いポータルであり、同じユーザが設置したポータルが削除されることを意味する。「削除条件」の属性値「最大1」は、当該ユーザは、1つしかポータルを設置できないことを示し、2つ目のポータルを設置した場合に、設置日時が最も古いポータルであり、同じユーザが設置したポータルが削除されることを意味する。「確認条件」は、移動する際にユーザに確認するか否かを示し、確認条件「1」に対応する端末識別子で識別されるユーザ端末2に対しては、移動する際にユーザに確認することを示す。一方、確認条件「0」に対応する端末識別子で識別されるユーザ端末2に対しては、移動する際にユーザに確認せずに、移動することを示す。「移動条件」は、ポータルを用いた移動を行うための条件である。移動条件「接する(距離=0)」は、アバターがポータルに接することが条件であることを示す。移動条件「距離<=1」は、アバターとポータルとの距離が、仮想空間において「1以下」であることが条件であることを示す。移動条件「−1」は、対応する端末識別子で識別されるユーザ端末2に対応するアバターは、ポータルを用いた移動ができないことを示す。
【0211】
また、ワールド格納部112には、
図10に示すワールド情報管理表が格納されている、とする。ワールド情報管理表は、「ワールド識別子」「ワールド情報」を有する1以上のレコードを管理する表である。
【0212】
また、アバター格納部113には、
図11に示すアバター情報管理表が格納されている、とする。アバター情報管理表は、「アバター識別子」「アバター情報」を有する1以上のレコードを管理する表である。
【0213】
また、ポータル格納部114には、
図12に示すポータル情報管理表が格納されている、とする。ポータル情報管理表は、「ポータル識別子」「ポータル属性値」「日時」「端末識別子」を有する1以上のレコードを管理する表である。「ポータル属性値」は、ここでは、「双方向フラグ」「第一識別子」「第二識別子」「第一設置位置情報」「第二設置位置情報」「第一移動位置情報」「第二移動位置情報」「ポータル画像」を有する。
【0214】
「日時」はポータルが設置された日時を示す。「端末識別子」はポータルの設置指示を送信してきたユーザ端末2を示す。双方向フラグ「0」は片方向ポータルであり、「1」は双方向ポータルであることを示す。「ポータル画像」は、ポータルの画像を特定する情報であり、ここでは、例えば、ファイル名である。
【0215】
また、ポータル格納部114には、
図13に示すポータル画像が格納されている。ポータル画像は、ファイル名に対応付くポータル画像の実体が存在する。
【0216】
かかる状況において、端末識別子「T01」で識別されるユーザ端末2には、ワールド識別子「W01」で識別されるワールドが表示されている、とする。そして、現在、当該ユーザ端末2の画面は、
図14である、とする。なお、
図14の出力までの過程において、ワールド情報が情報処理装置1からユーザ端末2に送信され、ユーザ端末2はワールド情報を受信し、出力したものとする。
【0217】
次に、端末識別子「T01」に対応するユーザは、「ポータルを設置」ボタン1301を指示した、とする。すると、ユーザ端末2の画面は、
図15のように、ポータルの設置位置を決めるための画面となった、とする。
【0218】
次に、当該ユーザは、
図15の状態で、「設置確定」ボタンを指示した、とする。すると、端末受付部22は、設置指示を受け付ける。
【0219】
なお、設置指示は、ワールド情報を特定する第一識別子「W01」、移動先のワールド(第二VR空間)を特定する第二識別子「W02」、ポータルの設置の枠1402により特定される第一設置位置情報(x
5,y
5,z
5)、デフォルトの第二移動位置情報(X
0,Y
0,Z
0)、およびポータル画像を特定する「P01.jpg」を有する、とする。また、移動先のワールド(第二VR空間)を特定する第二識別子「W02」は、図示されていないが、
図14において、ユーザにより入力されている、とする。また、ポータル画像を特定する「P01.jpg」も、図示されていないが、2以上のポータル画像(
図13参照)から、ユーザにより、事前に選択されている、とする。
【0220】
また、第二移動位置情報は、ユーザにより、指定されていないために、端末処理部23は、デフォルトの第二移動位置情報(X
0,Y
0,Z
0)を端末格納部21から読み出した、とする。さらに、端末処理部23は、デフォルトの双方向フラグ「0」を端末格納部21から読み出した、とする。また、端末処理部23は、端末識別子「T01」を端末格納部21から読み出す。
【0221】
次に、端末処理部23は、受け付けられた設置指示と端末識別子「T01」とを用いて、送信する設置指示「<端末識別子>T01 <双方向フラグ>0 <第一識別子>W01 <第二識別子>W02 <第一設置位置情報>(x
5,y
5,z
5) <第二移動位置情報>(X
0,Y
0,Z
0) <ポータル画像>P01.jpg」を構成する。次に、端末送信部24は、当該設置指示を情報処理装置1に送信する。
【0222】
次に、情報処理装置1の設置指示受付部121は、ユーザ端末2から設置指示を受信する。
【0223】
そして、処理部13は、以下のように、ポータルの設置処理を行う。つまり、設置判断部131は、設置指示が有する「<端末識別子>T01」と対になる設置権限「1」を、
図9の端末情報管理表から取得する。そして、設置判断部131は、設置権限「1」から、設置条件を満たすと判断する。
【0224】
次に、設置処理部132は、設置指示に対応する1以上のポータル属性値「<双方向フラグ>0 <第一識別子>W01 <第二識別子>W02 <第一設置位置情報>(x
5,y
5,z
5) <第二移動位置情報>(X
0,Y
0,Z
0) <ポータル画像>P01.jpg」と「<端末識別子>T01」とを取得する。
【0225】
次に、設置処理部132は、図示しない時計から日時「2021/9/22 8:54:11」を取得した、とする。
【0226】
次に、設置処理部132は、ユニークなポータル識別子「P58」を生成した、とする。また、設置処理部132は、取得した1以上のポータル属性値、端末識別子、日時を用いて、ポータル情報を構成する。
【0227】
次に、設置処理部132は、ポータル識別子「P58」と構成したポータル情報とを有するレコードを
図12のポータル情報管理表に蓄積する。
【0228】
次に、設置処理部132は、
図9に示す構造を有する端末情報管理表で管理されている1以上の各端末情報に対応するユーザ端末2に、ポータル情報を送信するか否かを判断する。ここで、設置処理部132は、ポータルを用いた移動が可能なアバターに対応するユーザ端末2に対して、ポータル識別子「P58」で識別されるポータル情報「<双方向フラグ>0 <第一識別子>W01 <第二識別子>W02 <第一設置位置情報>(x
5,y
5,z
5) <第二移動位置情報>(X
0,Y
0,Z
0) <ポータル画像>P01.jpg」と「<端末識別子>T01」を送信する。つまり、ここでは、設置処理部132は、端末情報管理表において、移動条件が「−1」(移動できない)ではない端末情報に対応する各ユーザ端末2(端末識別子「T01,T02,T03,・・・」の端末)に、ポータル情報を送信する。なお、端末識別子「T04」に対応するユーザ端末2には、ポータル情報は送信されない。
【0229】
次に、処理部13は、以下のようにポータルの削除処理を行う。つまり、削除判断部133は、設置したポータルに対応する端末識別子「T01」と対になる削除条件「2以下」を、
図9の端末情報管理表から取得する。
【0230】
次に、削除判断部133は、
図12のポータル情報管理表を参照し、端末識別子「T01」と対になるポータル情報が「P01,P02,P58」の3つ、存在することを検知する。そして、削除判断部133は、削除条件「2以下」を満たさない、と判断する。そして、削除判断部133は、ポータル識別子「P01,P02,P58」で識別されるポータルのうち、日時が最も古い、ポータル識別子「P01」のポータルを削除する、と決定する。
【0231】
次に、削除処理部134は、ポータル識別子「P01」のポータル情報(レコード)をポータル情報管理表(
図12)から削除する。
【0232】
次に、削除処理部134は、ポータル識別子「P01」を含むポータルの削除指示を、移動条件「−1」以外の端末情報に対応するユーザ端末2(端末識別子「T01,T02,T03,・・・」の端末)に送信する。
【0233】
次に、端末識別子「T01,T02,T03,・・・」の各ユーザ端末2の端末受信部25は、新しく設置されたポータル識別子「P58」のポータル情報を受信する。次に、各ユーザ端末2の端末処理部23は、受信されたポータル情報を端末格納部21に蓄積する。次に、各ユーザ端末2の端末処理部23は、受信されたポータル情報を用いて、出力するポータルを構成する。各ユーザ端末2の端末出力部26は、当該ポータルをVR空間上に出力する。
【0234】
かかるユーザ端末2における新しいポータルの表示例は、
図16である。
図16の1601が、新たに設置されたポータルである。
【0235】
また、端末識別子「T01,T02,T03,・・・」の各ユーザ端末2の端末受信部25は、端末受信部25は、ポータル識別子「P01」を有する削除指示を受信する。次に、各ユーザ端末2の端末処理部23は、受信された削除指示に対応するポータル情報を端末格納部21から削除する。また、各ユーザ端末2の端末処理部23は、削除指示に対応するポータルを非表示とする出力画像を構成する。そして、各ユーザ端末2の端末出力部26は、当該ポータルを非表示とする。
【0236】
次に、端末識別子「T01」のユーザは、ユーザ端末2を操作し、アバター1701をポータルに接するまで移動させた、とする(
図17参照)。
【0237】
次に、当該ユーザ端末2は、かかる操作により発生した操作情報(ここでは、アバターの位置情報を含む)を取得し、情報処理装置1に送信する。
【0238】
次に、情報処理装置1の受付部12は、端末識別子「T01」のユーザ端末2から、アバターの位置情報を含む操作情報を受信する。
【0239】
次に、移動判断部136は、端末識別子「T01」と対になる移動条件「接する(距離=0)」を
図9の表から取得する。次に、移動判断部136は、端末識別子「T01」と対になるワールド識別子「W01」を
図9の表から取得する。次に、移動判断部136は、ワールド識別子「W01」と対になるポータル識別子「P58」のポータル情報の第一設置位置情報(x
5,y
5,z
5)とポータル画像のサイズとを取得する。そして、移動判断部136は、操作情報に含まれるアバターの位置情報と、第一設置位置情報(x
5,y
5,z
5)とポータル画像のサイズとを用いて、当該アバターとポータル識別子「P58」のポータルとの距離が0である、と判断する。つまり、移動判断部136は、移動条件を満たす、と判断する。
【0240】
次に、確認処理部135は、端末識別子「T01」と対になる確認条件「1」を
図9の表から取得する。そして、確認処理部135は、移動処理を行うことを確認すると判断する。そして、確認処理部135は、確認のための画面情報を格納部11から取得し、当該画面情報を、設置指示を送信したユーザ端末2に送信する。
【0241】
次に、端末識別子「T01」のユーザ端末2は、当該画面情報を受信し、画面情報を用いて、
図18に示す画面を出力する。
【0242】
次に、ユーザは、
図18の「移動する」ボタン1801を指示した、とする。
【0243】
すると、端末受付部22は、ユーザから回答「移動する」を受け付ける。次に、端末処理部23は、例えば、確認情報に対応するポータル識別子または端末識別子を取得し、当該ポータル識別子または端末識別子に対応付く回答を構成する。端末送信部24は、ポータル識別子または端末識別子に対応付く回答を情報処理装置1に送信する。
【0244】
次に、回答受付部122は、ユーザ端末2から回答「移動する」を受信する。
【0245】
次に、移動処理部137は、受信された操作情報に対応するポータル情報の第二識別子「W02」、第二移動位置情報(X
0,Y
0,Z
0)をポータル格納部114から取得する。次に、移動処理部137は、取得した第二識別子「W02」で識別される第二VR空間の、第二移動位置情報(X
0,Y
0,Z
0)で特定される位置に、受信された操作情報に対応するアバターを移動させる処理を行う。つまり、移動処理部137は、アバター識別子「A01」と第二識別子「W02」と第二移動位置情報(X
0,Y
0,Z
0)とを、1以上のユーザ端末2に送信する。なお、1以上のユーザ端末2は、
図9で管理されている端末情報に対応するユーザ端末2である。また、移動処理部137は、
図9の端末情報管理表の端末識別子「T01」と対になるワールド識別子を「W02」に書き換える。
【0246】
そして、1以上の各ユーザ端末2は、「<アバター識別子>A01 <第二識別子>W02 <第二移動位置情報>(X
0,Y
0,Z
0)」を受信する。かかる情報は、「A01」のアバターが「W02」の第二VR空間の位置(X
0,Y
0,Z
0)に移動したことを示す情報である。
【0247】
そして、ワールド識別子「W02」を出力しているユーザ端末2、および端末識別子「T01」のユーザ端末2では、「W02」のVR空間内の位置情報(X
0,Y
0,Z
0)が示す位置に、「A01」で識別されるアバターを出力する。かかる出力例は、
図19である。
図19において、移動したアバターは1901である。
【0248】
以上、本実施の形態によれば、VR空間の間をアバターが移動するためのオブジェクトであるポータルを設置できる。これによって、各アバターは異なるVR空間の間をより簡易に移動できる。
【0249】
また、本実施の形態によれば、ユーザは、設置するポータルの属性値を指定できる。これにより、ポータルの設置位置や、移動先となるVR空間などを任意に設定することが可能となり、ユーザにとってより自由度の高いVR体験を実現することができる。
【0250】
また、本実施の形態によれば、ポータルの設置に制約を設けることができる。これにより、本来は特定のユーザしか参加できないVR空間へ移動することができるポータルを無制限に作成されてしまうこと等を抑制することができる。
【0251】
また、本実施の形態によれば、アバターがポータルを用いて移動する場合に、制約を設けることができる。これにより、本来は特定のユーザしか参加できないVR空間へポータルを介して移動してしまうこと等を抑制できる。
【0252】
また、本実施の形態によれば、アバターが移動する際に、ユーザに移動するか否かを確認できる。これにより、ユーザが意図せずにポータルを介してアバターが移動してしまうことを抑制できる。
【0253】
また、本実施の形態によれば、ポータルを適切に自動削除できる。これにより、悪意を持ったユーザなどが大量のポータルを設置して他のユーザのVR空間上での体験を損ねてしまう恐れを低減できる。
【0254】
また、本実施の形態によれば、2つのVR空間の間を双方向にアバターが移動するためのオブジェクトである双方向ポータルを設置できる。これにより、一方向の移動だけでなく双方向の移動ができるため、より簡易にVR空間の間を移動できる。
【0255】
さらに、本実施の形態によれば、設置されたポータルを他のユーザ端末2に反映させることができる。これにより、他のユーザとともに任意のVR空間への移動することがより簡易に実現できる。
【0256】
なお、本実施の形態によれば、主として、情報処理装置1は、1または2以上のユーザ端末2に対して、種々のサービスを提供するサーバであるとして説明した。しかし、2以上の情報処理装置1がP2P(Peer−to−Peer)で通信する構成でも良い。かかる場合、情報処理装置1は、ユーザが使用するユーザ端末である。
【0257】
かかる場合の情報システムBは、2以上の情報処理装置1を具備する。そして、情報システムBのブロック図は
図20である。また、情報システムBを構成する情報処理装置1における受付部12、設置指示受付部121、回答受付部122は、ユーザからの指示や情報を受け付ける。また、かかる情報処理装置1における設置処理部132、削除処理部134、移動処理部137は、各種の情報を、他の1以上の情報処理装置1に送信する。また、かかる情報処理装置1における受付部12は、他の1以上の情報処理装置1から操作情報または操作情報に応じた情報を受け付ける。さらに、かかる情報処理装置1における各種の情報の送信処理は、情報の出力処理となる。
【0258】
また、情報システムBを構成する情報処理装置1における動作において、
図3のフローチャートにおける動作と概ね同様であるが、ステップS301、ステップS304、ステップS308、ステップS312における受信は、ユーザからの入力の受け付けである。また、ステップS303においては、出力画像を出力することとなる。また、ステップS406において、エラーメッセージを出力することとなる。また、ステップS413において、ポータル情報を他の1以上の情報処理装置1に送信することとなる。また、ステップS413において、自らポータルを出力することとなる。また、ステップS505において、削除処理部134は、ポータルを非表示とすることとなる。また、ステップS606において、ポータルの削除指示を他の情報処理装置1に送信する。
【0259】
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における情報処理装置1を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、第一VR空間から第二VR空間にアバターが移動するためのオブジェクトであるポータルの前記第一VR空間における設置指示であり、前記第一VR空間と前記第二VR空間とを特定する設置指示を受け付ける設置指示受付部と、
前記設置指示の受け付けに応じて、当該設置指示の入力を受け付けた装置以外の他の装置を含む1以上の装置における第一VR空間に前記ポータルを設置するための設置処理を行う設置処理部ととして機能させるためのプログラムである。
【0260】
また、
図21は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態の情報処理装置等を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。
図21は、このコンピュータシステム300の概観図であり、
図22は、システム300のブロック図である。
【0261】
図21において、コンピュータシステム300は、CD−ROMドライブを含むコンピュータ301と、キーボード302と、マウス303と、モニタ304とを含む。
【0262】
図22において、コンピュータ301は、CD−ROMドライブ3012に加えて、MPU3013と、CD−ROMドライブ3012等に接続されたバス3014と、ブートアッププログラム等のプログラムを記憶するためのROM3015と、MPU3013に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM3016と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク3017とを含む。ここでは、図示しないが、コンピュータ301は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
【0263】
コンピュータシステム300に、上述した実施の形態の情報処理装置等の機能を実行させるプログラムは、CD−ROM3101に記憶されて、CD−ROMドライブ3012に挿入され、さらにハードディスク3017に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ301に送信され、ハードディスク3017に記憶されても良い。プログラムは実行の際にRAM3016にロードされる。プログラムは、CD−ROM3101またはネットワークから直接、ロードされても良い。
【0264】
プログラムは、コンピュータ301に、上述した実施の形態の情報処理装置等の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム300がどのように動作するかは周知であり、詳細な説明は省略する。
【0265】
なお、上記プログラムにおいて、情報を送信するステップや、情報を受信するステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。
【0266】
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【0267】
また、上記各実施の形態において、一の装置に存在する2以上の通信手段は、物理的に一の媒体で実現されても良いことは言うまでもない。
【0268】
また、上記各実施の形態において、各処理は、単一の装置によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
【0269】
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【解決手段】第一VR空間から第二VR空間にアバターが移動するためのオブジェクトであるポータルの前記第一VR空間における設置指示であり、前記第一VR空間と前記第二VR空間とを特定する設置指示を受け付ける設置指示受付部121と、前記設置指示の受け付けに応じて、当該設置指示の入力を受け付けた装置以外の他の装置を含む1以上の装置における第一VR空間に前記ポータルを設置するための設置処理を行う設置処理部132とを具備する情報処理装置1により、VR空間の間をアバターが移動するためのオブジェクトであるポータルを設置できる。