図1を参照して、本発明の一実施形態に係る仮想現実生成システム1の概要について説明する。図1は、本実施形態に係る仮想現実生成システム1のブロック図である。図2は、ヘッドマウントディスプレイを介して視認可能な端末用画像の説明図である。
仮想現実生成システム1は、サーバ装置10と、1つ以上の端末装置20と、を備える。図1では簡便のため、3つの端末装置20を図示しているが、端末装置20の数は2つ以上であればよい。
サーバ装置10は、例えば1つ以上の仮想現実を提供する運営者が管理するサーバ等の情報処理システムである。端末装置20は、例えば携帯電話、スマートフォン、タブレット端末、PC(Personal Computer)、ヘッドマウントディスプレイ、又はゲーム装置等の、ユーザによって使用される装置である。端末装置20は、典型的にはユーザごとに異なる態様で、複数がサーバ装置10にネットワーク3を介して接続されうる。
端末装置20は、本実施形態に係る仮想現実アプリケーションを実行可能である。仮想現実アプリケーションは、ネットワーク3を介してサーバ装置10や所定のアプリケーション配信サーバから端末装置20に受信されてもよく、あるいは端末装置20に備えられた記憶装置又は端末装置20が読取可能なメモリカード等の記憶媒体にあらかじめ記憶されていてもよい。サーバ装置10及び端末装置20は、ネットワーク3を介して通信可能に接続される。例えば、サーバ装置10及び端末装置20が協動して、仮想現実に関する多様な処理を実行する。
各端末装置20は、サーバ装置10を介して互いに通信可能に接続されている。なお、以下では、「一の端末装置20が情報を他の端末装置20に送信する」とは、「一の端末装置20が情報をサーバ装置10を介して他の端末装置20に送信する」ことを意味する。同様に、「一の端末装置20が情報を他の端末装置20から受信する」とは、「一の端末装置20が情報をサーバ装置10を介して他の端末装置20から受信する」ことを意味する。ただし、変形例では、各端末装置20は、サーバ装置10を介さずに通信可能に接続されてもよい。
なお、ネットワーク3は、無線通信網や、インターネット、VPN(Virtual Private Network)、WAN(Wide Area Network)、有線ネットワーク、又はこれらの任意の組み合わせ等を含んでよい。
以下では、仮想現実生成システム1が、情報処理システムの一例を実現するが、特定の一の端末装置20の各要素(図1の端末通信部21から端末制御部25参照)が、情報処理システムの一例を実現してもよいし、複数の端末装置20が、協動して情報処理システムの一例を実現してもよい。また、サーバ装置10が単独で、情報処理システムの一例を実現してもよいし、サーバ装置10と1つ以上の端末装置20が、協動して情報処理システムの一例を実現してもよい。
ここで、本実施形態に係る仮想現実の概要について説明する。本実施形態に係る仮想現実は、例えば教育、旅行、ロールプレイング、シミュレーション、ゲームやコンサートのようなエンターテイメント等、任意の現実に対する仮想現実等であって、仮想現実の実行に伴い、アバターのような仮想現実媒体が用いられる。例えば、本実施形態に係る仮想現実は、3次元の仮想空間と、当該仮想空間内に登場する各種の仮想現実媒体と、当該仮想空間内で提供される各種のコンテンツとにより実現されてよい。
仮想現実媒体は、仮想現実に使用される電子データであり、例えば、カード、アイテム、ポイント、サービス内通貨(又は仮想現実内通貨)、トークン(例えばNon-Fungible Token(NFT))、チケット、キャラクタ、アバター、パラメータ等、任意の媒体を含む。また、仮想現実媒体は、レベル情報、ステータス情報、パラメータ情報(体力値及び攻撃力等)又は能力情報(スキル、アビリティ、呪文、ジョブ等)のような、仮想現実関連情報であってもよい。また、仮想現実媒体は、ユーザによって仮想現実内で取得、所有、使用、管理、交換、合成、強化、売却、廃棄、又は贈与等され得る電子データであるが、仮想現実媒体の利用態様は本明細書で明示されるものに限られない。
なお、アバターは、典型的には、正面方向を有するキャラクタの形態であり、人や動物又はその類の形態を有してよい。アバターは、各種アバターアイテムに対応付けられることで、多様な容姿(描画されたときの容姿)を有することができる。また、以下では、アバターの性質上、ユーザとアバターとは同一視して説明する場合がある。従って、例えば、「一のアバターが〇〇する」は、「一のユーザが〇〇する」と同義である場合がある。なお、本明細書において、「AがBに対応付けられる」とは、AがBに直接的に対応付けられる態様のみならず、AがBに間接的に対応付けられる態様(例えば、AがCに直接的に対応付けられ、かつ、CがBに直接的に対応付けられる態様)をも含む概念である。
ユーザは、頭部又は顔の一部に装着型装置を装着し、当該装着型装置を介して仮想空間を視認してよい。なお、装着型装置は、ヘッドマウントディスプレイやメガネ型装置であってもよい。メガネ型装置は、いわゆるAR(Augmented Reality)グラスやMR(Mixed Reality)グラスであってよい。いずれの場合でも、装着型装置は、端末装置20とは別であってもよいし、端末装置20の一部又は全部の機能を実現してもよい。端末装置20は、ヘッドマウントディスプレイにより実現されてよい。
(サーバ装置の構成)
サーバ装置10の構成について具体的に説明する。サーバ装置10は、サーバコンピュータにより構成される。サーバ装置10は、複数台のサーバコンピュータにより協動して実現されてもよい。例えば、サーバ装置10は、各種のコンテンツを提供するサーバコンピュータや、各種の認証サーバを実現するサーバコンピュータ等により協動して実現されてもよい。また、サーバ装置10は、Webサーバを含んでよい。この場合、後述する端末装置20の機能の一部は、Webサーバから受領したHTML文書やそれに付随する各種プログラム(Javascript)をブラウザが処理することによって実現されてもよい。
サーバ装置10は、図1に示すように、サーバ通信部11と、サーバ記憶部12と、サーバ制御部13と、を備える。
サーバ通信部11は、外部装置と無線又は有線によって通信し、情報の送受信を行うインターフェースを含む。サーバ通信部11は、例えば無線LAN(Local Area Network)通信モジュール又は有線LAN通信モジュール等を含んでもよい。サーバ通信部11は、ネットワーク3を介して、端末装置20との間で情報を送受信可能である。
サーバ記憶部12は、例えば記憶装置であって、仮想現実に係る各種処理に必要な種々の情報及びプログラムを記憶する。
サーバ制御部13は、専用のマイクロプロセッサ又は特定のプログラムを読み込むことにより特定の機能を実現するCPU(Central Processing Unit)や、GPU(Graphics Processing Unit)等を含んでよい。例えばサーバ制御部13は、端末装置20と協動して、ユーザ入力に応じて仮想現実アプリケーションを実行する。
サーバ制御部13(以下の端末制御部25も同様)は、コンピュータプログラム(ソフトウェア)に従って動作する1又は複数のプロセッサ、各種処理のうち少なくとも一部の処理を実行する1又は複数の専用のハードウェア回路、或いはそれらの組み合わせ、を含む回路(circuitry)として構成し得る。
(端末装置の構成)
端末装置20の構成について説明する。図1に示すように、端末装置20は、端末通信部21と、端末記憶部22と、表示部23と、入力部24と、端末制御部25とを備える。
端末通信部21は、外部装置と無線又は有線によって通信し、情報の送受信を行うインターフェースを含む。端末通信部21は、例えばLTE(Long Term Evolution)(登録商標)や、LTE-A(LTE-Advanced)、第五世代移動通信システム、UMB(Ultra Mobile Broadband)等のモバイル通信規格に対応する無線通信モジュール、無線LAN通信モジュール、又は有線LAN通信モジュール等を含んでもよい。端末通信部21は、ネットワーク3を介して、サーバ装置10との間で情報を送受信可能である。
端末記憶部22は、例えば一次記憶装置及び二次記憶装置を含む。例えば端末記憶部22は、半導体メモリ、磁気メモリ、又は光メモリ等を含んでもよい。端末記憶部22は、サーバ装置10から受信する、仮想現実の処理に用いられる種々の情報及びプログラムを記憶する。仮想現実の処理に用いられる情報及びプログラムは、端末通信部21を介して外部装置から取得されてもよい。例えば、仮想現実アプリケーションプログラムが、所定のアプリケーション配信サーバから取得されてもよい。以下、アプリケーションプログラムを、単にアプリケーションともいう。
また、端末記憶部22は、仮想空間を描画するためのデータ、例えば建物のような屋内の空間や、屋外の空間の画像等を記憶してよい。なお、仮想空間を描画するためのデータは、仮想空間ごとに複数種類用意され、使い分けられてもよい。
また、端末記憶部22は、3次元の仮想空間内に配置された種々のオブジェクトに投影(テクスチャマッピング)するための種々の画像(テクスチャ画像)を記憶してよい。
例えば、端末記憶部22は、各ユーザに対応付けられる仮想現実媒体としてのアバターに係るアバター描画情報を記憶する。仮想空間内のアバターは、当該アバターに係るアバター描画情報に基づいて描画される。
また、端末記憶部22は、例えば各種のギフトオブジェクト、建物、壁、又はNPC(Non Player Character)等のような、アバターとは異なる各種のオブジェクト(仮想現実媒体)に係る描画情報を記憶する。仮想空間内に各種のオブジェクトは、かかる描画情報に基づいて描画される。なお、ギフトオブジェクトとは、一のユーザから他のユーザへのギフト(贈り物)に対応するオブジェクトであり、アイテムの一部である。ギフトオブジェクトは、アバターの身に着けるもの(服やアクセサリー)や装飾するもの(花火やお花等)、背景(壁紙)又はその類や、ガチャ(抽選)を回すことのできるチケット又はその類であってよい。なお、本件出願において用いられる「ギフト」という用語は、「トークン(token)」という用語と同様の概念を意味する。したがって、「ギフト」という用語を「トークン(token)」という用語に置き換えて、本件出願に記載された技術を理解することも可能である。
表示部23は、例えば液晶ディスプレイ又は有機EL(Electro-Luminescence)ディスプレイ等の表示デバイスを含む。表示部23は、多様な画像を表示可能である。表示部23は、例えばタッチパネルで構成され、多様なユーザ操作を検出するインターフェースとして機能する。なお、表示部23は、上述したように、ヘッドマウントディスプレイに内蔵される形態であってよい。
入力部24は、物理キーを含んでもよいし、マウス等のようなポインティングデバイスをはじめとする任意の入力インターフェースを更に含んでもよい。また、入力部24は、音声入力やジェスチャ入力、視線入力のような、非接触型のユーザ入力を受付可能であってもよい。なお、ジェスチャ入力には、ユーザの各種状態を検出するためのセンサ(画像センサや、加速度センサ、距離センサ等)や、センサ技術やカメラを統合した専用モーションキャプチャー、ジョイパッドのようなコントローラ等が利用されてもよい。また、視線検出用のカメラは、ヘッドマウントディスプレイ内に配置されてもよい。なお、上述したように、ユーザの各種状態は、例えばユーザの向きや位置、動き又はその類であり、この場合、ユーザの向きや位置、動きとは、ユーザの顔や手等の身体の一部や全部の向き、位置、動きのみならず、ユーザの視線の向き、位置、動き又はその類を含む概念である。
なお、ジェスチャによる操作入力は、仮想カメラの視点の変更に利用されてもよい。例えば、図3に模式的に示すように、自ユーザが、端末装置20を手で持ちながら、端末装置20の向きを変化させると、その方向に応じて、仮想カメラの視点が変化されてもよい。この場合、スマートフォンのような比較的小さい画面の端末装置20を利用する場合でも、ヘッドマウントディスプレイを介して周囲を見渡せるのと同様の態様で視認領域の広さを確保できる。
端末制御部25は、1つ以上のプロセッサを含む。端末制御部25は、端末装置20全体の動作を制御する。
端末制御部25は、端末通信部21を介して情報の送受信を行う。例えば、端末制御部25は、仮想現実に係る各種処理に用いられる種々の情報及びプログラムを、サーバ装置10及び他の外部サーバの少なくとも一方から受信する。端末制御部25は、受信した情報及びプログラムを、端末記憶部22に記憶する。例えば、端末記憶部22には、Webサーバに接続するためのブラウザ(インターネットブラウザ)が格納されてよい。
端末制御部25は、ユーザの操作に応じて仮想現実アプリケーションを起動する。端末制御部25は、サーバ装置10と協動して、仮想現実に係る各種処理を実行する。例えば、端末制御部25は、仮想空間の画像を表示部23に表示させる。画面上には、例えばユーザ操作を検出するGUI(Graphical User Interface)が表示されてもよい。端末制御部25は、入力部24を介して、ユーザ操作を検出可能である。例えば端末制御部25は、ユーザのジェスチャによる各種操作(タップ操作、ロングタップ操作、フリック操作、及びスワイプ操作等に対応する操作)を検出可能である。端末制御部25は、操作情報をサーバ装置10に送信する。
端末制御部25は、仮想空間(画像)とともにアバター等を描画し、端末用画像を表示部23に表示させる。この場合、例えば、図2に示すように、左右の目でそれぞれ視認される画像G200、G201を生成することで、ヘッドマウントディスプレイ用の立体視画像を生成してよい。図2には、左右の目でそれぞれ視認される画像G200、G201が模式的に示されている。なお、以下では、特に言及しない限り、仮想空間の画像とは、画像G200、G201で表現される画像全体を指す。また、端末制御部25は、例えばユーザによる各種操作に応じて、仮想空間内においてアバターの各種動き等を実現させる。
なお、以下で説明する仮想空間は、ヘッドマウントディスプレイ又はその類を利用して視認可能な没入型の空間であってユーザがアバターを介して自由に(現実と同様に)動き回ることができる連続性のある3次元的な空間のみならず、図3を参照して上述したようなスマートフォン又はその類を利用して視認可能な非没入型の空間をも含む概念である。なお、スマートフォン又はその類を利用して視認可能な非没入型の空間は、アバターを介して自由に動き回ることができる連続性のある3次元的な空間であってもよいし、2次元的な不連続な空間であってもよい。以下、区別するときは、ユーザがアバターを介して自由に動き回ることができる連続性のある3次元的な空間を、「メタバース空間」とも称する。
また、以下の説明において登場する各種モノや施設(例えば映画館等)は、特に言及しない限り、仮想空間におけるオブジェクトであり、実物とは異なる。また、以下の説明における各種イベントは、仮想空間における各種イベント(例えば、映画の上映等)であり、現実でのイベントとは異なる。
また、以下、アバターとは異なる任意の仮想現実媒体(例えば建物、壁、樹木、又はNPC等)に対応するオブジェクトであって、仮想空間内に描画されたオブジェクトを第2オブジェクトM3とも称する。なお、本実施形態では、第2オブジェクトM3は、仮想空間内で固定されたオブジェクトや、仮想空間内で移動可能なオブジェクト等を含んでもよい。また、第2オブジェクトM3は、仮想空間内に常に配置されるオブジェクトや、所定の配置条件が満たされた場合にだけ配置されるオブジェクト等を含んでもよい。
また、以下の説明では、主にアバターについて説明するが、仮想空間がゲーム空間の場合、アバターは、ユーザが操作するゲーム媒体(例えばゲームキャラクター)と読み替えることができる。
図4は、仮想現実生成システムにより生成可能な仮想空間の一例の説明図である。
図4に示す例では、仮想空間は、複数の空間部70と、フリー空間部71とを備えている。フリー空間部71では、アバターは、基本的に自由に移動できる。この場合、各空間部70は、ワールドと称されるローカル区分であってよく、仮想空間全体がグローバルな空間であってよい。複数の空間部70の一部又は全部は、一のプラットフォーマーにより構築される仮想空間の一部であってよいし、異なる複数のプラットフォーマーにより構築される仮想空間自体であってもよい。
各空間部70は、フリー空間部71に対して少なくとも一部が壁体(第2オブジェクトM3の例)や移動禁止部(第2オブジェクトM3の例)により隔てられた空間部であってよい。例えば、空間部70は、フリー空間部71に対してアバターが出入りできる出入口(例えば、穴や、ドア等の第2オブジェクトM3)を有してよい。空間部70では、当該空間部70に位置するアバターに対してコンテンツが提供されてよい。
空間部70は、フリー空間部71に対して少なくとも一部が壁体や移動禁止部により隔てられた空間部であってよい。例えば、空間部70は、フリー空間部71に対してアバターが出入りできる出入口(例えば、穴や、ドア等の第2オブジェクトM3)を有してよい。なお、図4では、空間部70及びフリー空間部71を2次元平面として描画しているが、空間部70及びフリー空間部71は3次元空間として設定されてもよい。例えば、空間部70及びフリー空間部71は、図4に示す平面形状を床として対応する範囲に壁や天井を有する空間でもよい。また、図4に示す例とは別に、ドーム型や球状などの高さを有する空間や、ビルなどの建造物、地球上の特定の場所のほか、アバターが飛び回れる宇宙空間などを模したワールドとしてもよい。
複数の空間部70は、コンテンツ提供用の空間部を含んでよい。なお、フリー空間部71においても、適宜、コンテンツ(例えば空間部70で提供されるような後述する各種コンテンツ)が提供されてもよい。
空間部70で提供されるコンテンツ(仮想現実で提供されるコンテンツ)の種類や数は、任意である。本実施形態では、一例として、空間部70で提供されるコンテンツは、各種の映像のようなデジタルコンテンツを含む。映像は、リアルタイムの映像であってもよいし、非リアルタイムの映像であってもよい。また、映像は、実画像に基づく映像であってもよいし、CG(Computer Graphics)に基づく映像であってもよい。映像は、情報提供用の映像であってよい。この場合、映像は、特定のジャンルの情報提供サービス(旅や、住まい、食品、ファッション、健康、美容等に関する情報提供サービス)、特定のユーザによる放送サービス(例えばYoutube(登録商標))等に関するものであってよい。
なお、空間部70で提供されるコンテンツは、仮想空間で利用可能な各種アイテム(第2オブジェクトの例)であってもよい。この場合、各種アイテムを提供する空間部70は、販売所の形態であってもよい。あるいは、空間部70で提供されるコンテンツは、各種ゲームや、現実で入手可能な物品の取得権限やトークン等であってもよい。なお、複数の空間部70の一部は、コンテンツを提供しない空間部であってもよい。
空間部70のそれぞれは、現実の実店舗と同様、異なる主体により運営されてもよい。この場合、各空間部70に係る運営者は、本仮想現実生成システム1の運営者に対して出店料等を支払うことで、対応する空間部70を利用してもよい。
なお、仮想空間は、空間部70の増加に伴って拡大可能であってもよい。あるいは、仮想空間は、空間部70で提供されるコンテンツの属性ごとに複数設定されてもよい。この場合、仮想空間同士は、それぞれ“空間部”として互いに不連続であってもよいし、連続する形態であってよい。
図5は、特定の空間部70における内部の状態を上面視で模式的に示す図である。ここでは、一例として、特定の空間部70は、特定のゲーム内のミッション(又はクエスト)に参加するロビー空間であるとする。特定の空間部70は、例えば図4に星マークを対応付けた空間部70であってもよい。なお、特定の空間部70の場合のように、仮想空間がゲーム空間の場合、アバターは、ユーザが操作するゲーム媒体(例えばプレイヤーに係るゲームキャラクター)と読み替えることもできる。
図5には、一のユーザに係るアバターX1の異なる時点での位置が○マークP1(X1)からP4(X1)が模式的に示されるとともに、他のアバターZ1(受付役のアバターZ1)の位置が、○マークで模式的に示されている。また、図5において、空間部70には、各種第2オブジェクトM3が配置されており、そのうちの、第2オブジェクトM5(M3)は、受け付け施設であるとする。また、第2オブジェクトM3は、壁であるとする。受付役のアバターZ1は、各種ミッションのうちの、ユーザが所望するミッションのプレイを受け付けるキャラクタとして機能する。なお、受付役のアバターZ1は、AI(人工知能)等のアルゴリズムに基づいて自動的に動作してもよいし、スタッフユーザにより操作されてもよい。
アバターが特定の空間部70内を移動すると、それに応じて、アバターから見える空間部70内の風景が変化する。このような風景及びその変化は、上述したように端末用画像としてユーザへと伝達される。
図6から図7Bは、端末用画像を生成するための仮想カメラ60の視線方向の説明図である。なお、図7A及び図7Bにおいて、符号40は、アバターがその上を歩くことができるフィールドオブジェクトを指す。一のアバターに係る端末用画像は、基本的には、当該一のアバターの視線(目の向き)に対応する一人称視点で描画される。この場合、アバターの視線方向が、例えば図6に示すようなローカル座標系(x1、y1、z1)で算出されてよい。なお、一人称視点に係るアバターの視線方向は、アバターの向きに応じて決定されてもよい。アバターの向きは、アバターの全体としての向きであってもよいし、アバターの特定の部位の向き(例えば顔の向き、体の向き)等であってもよい。また、仮想カメラ60の視線方向は、図7Aに示すように、アバターの前方からアバターの正面を捉える態様で設定されてもよい。また、仮想カメラ60の視線方向は、図7Bに示すように、アバターの背後からアバターの前方を捉える態様で設定されてもよい。このような、各種の仮想カメラ60の視線方向は、アバター(ユーザ)により切り替え可能とされてもよいし、アバターの動きや周辺環境に応じて自動的に切り替え可能とされてもよい。
図8は、アバターX1が図5の位置P1(X1)に位置するときの、アバターX1の視界内の風景(アバターX1に係るユーザ用の端末用画像G81)の一例を示す図である。図8では、アバターX1は、図5の位置P1(X1)に位置するとき、壁の掲示板を見ることができる。ここでは、第2オブジェクトM3である壁には、同様に第2オブジェクトM3である掲示板M4(M3)が設置されており、掲示板M4(M3)には、ゲームに関連した戦歴情報が載せられている。この場合、アバターX1は、図5の位置P1(X1)に移動して壁側を向くことで、掲示板M4(M3)を介して戦歴情報を確認できる。なお、図8では、アバターX1に係るユーザ用の端末用画像G81は、図6に示した一人称視点によるが、他の視線方向で描画されてもよい。
図9は、アバターX1が図5の位置P2(X1)に位置するときの、アバターX1の視界内の風景(アバターX1に係るユーザ用の端末用画像G82)の一例を示す図である。図9では、アバターX1は、図5の位置P2(X1)に位置するとき、受け付け施設M5(M3)(図9では、符号1100で指示)を正面に見ることができる。なお、図9では、アバターX1に係るユーザ用の端末用画像G82は、図7Bに示した仮想カメラ60の視線方向R7Bによるが、他の視線方向で描画されてもよい。
図10は、アバターX1が図5の位置P3(X1)に位置するときの、アバターX1に係るユーザ用の端末用画像G83の一例を示す図である。位置P3(X1)は、図5に示すように、受け付け施設M5(M3)又は受付役のアバターZ1の近傍であり、受け付けをしたいアバターが位置すべき領域内に対応する。このような領域内にアバターX1が位置すると、仮想カメラ60の視線方向が、図7Bに示した仮想カメラ60の視線方向R7Bから、図7Aに示した仮想カメラ60の視線方向R7Aへと遷移してもよい。これにより、端末用画像G83は、図10に示すように、アバターX1の正面視の画像G831を含む。
なお、図10では、アバターX1に係るユーザ用の端末用画像G83は、図7Aに示した仮想カメラ60の視線方向R7Aによるが、受付役のアバターZ1が正面に見えるような視線方向であってもよい。図10(後出の図11も同様)には、端末用画像G83の下側にボタン型のユーザインターフェースSW10からSW14等を含む。
本実施形態では、受け付け施設M5(M3)には、参加申し込み用のユーザインターフェースG832が対応付けられており、端末用画像G83は、参加申し込み用のユーザインターフェースG832を含む。従って、アバターX1は、受け付け施設M5(M3)の近傍まで移動すると、参加申し込み用のユーザインターフェースG832を介して、ミッションの参加申込みを行うことができる。なお、参加申し込み用のユーザインターフェースG832は、アバターX1が受け付け施設M5(M3)の近傍まで移動すると自動的に出現されてもよいし、ユーザによる参加申込ボタンSW10の操作があったときに出現されてもよい。
図11は、アバターX1が図5の位置P4(X1)に位置するときの、アバターX1に係るユーザ用の端末用画像G84の一例を示す図である。位置P4(X1)は、図5に示すように、応援団に係るアバターZ2、Z3の近傍であり、応援団を募りたい参加申込み済のアバターが位置すべき領域内に対応する。このような領域内にアバターX1が位置すると、仮想カメラ60の視線方向が、図7Bに示した仮想カメラ60の視線方向R7Bから、図6に示した一人称視点へと遷移してもよい。これにより、端末用画像G84は、図11に示すように、応援団に係るアバターZ2の正面視の画像G841を含む。
本実施形態では、応援団に係るアバターZ2又はその位置(又は領域)には、応援団設定用のユーザインターフェースG842が対応付けられており、端末用画像G84は、応援団設定用のユーザインターフェースG842を含む。従って、アバターX1は、応援団に係るアバターZ2の近傍まで移動すると、応援団設定用のユーザインターフェースG842を介して、応援団の設定を行うことができる。なお、応援団設定用のユーザインターフェースG842は、アバターX1が応援団に係るアバターZ2等の近傍まで移動すると自動的に出現されてもよいし、ユーザによる応援団ボタンSW12の操作があったときに出現されてもよい。
このようにしてロビーの空間部70においては、アバターX1は、上述した位置P1(X1)や、位置P3(X1)、位置P4(X1)等を含む各位置へと移動することで、戦歴情報を得たり、ミッションの申込みを行ったり、応援団の設定を行ったり、等の各種活動を行うことができる。
ところで、仮想空間においては、上述したロビーの空間部70のように、アバターが自由に動き回ることができるが、アバターの移動先が決まっている場合は、ユーザによる入力負荷(及びそれに伴う処理負荷)の低減のために、当該移動先へのアバターの移動を適切に簡略化することが有用である。また、仮想空間においては、アバターの活動効率を高めるため、アバターの操作性や活動の進行を効率的に高めることが有用である。
一方、これらの要請に通常的に応える仕様とすると、違和感が生じやすくなる。例えば、ある地点Aにいるアバターが、特定のユーザインターフェースを介した操作を行うべく、当該特定のユーザインターフェースが対応付けられている別の地点Bへと移動したいときに、単に、当該アバターを地点Bまで瞬間移動させることも可能である。しかしながら、この場合、結局のところ、地点Aで、当該特定のユーザインターフェースを介した操作を可能としていることと有意差がなく、仮想空間内を移動している感覚が得られず、違和感に繋がる可能性が高い。
そこで、本実施形態では、以下で説明するように、仮想空間内におけるアバターの移動に伴うユーザインターフェースの遷移を適切に実現することで、ユーザによる入力負荷(及びそれに伴う処理負荷)の低減を図り、かつ、アバターの活動効率を高めることを可能とする。
具体的には、本実施形態では、まず、特定のユーザインターフェースが対応付けられている位置(地点)へのアバターの高速移動又は瞬間移動(以下、「高速移動」で代表する)を可能とする。そして、かかる高速移動の際に、移動先の位置での特定のユーザインターフェースを、端末用画像に、移動方向に応じた方向からスライドイン(出現)させる。以下、このようにして、高速移動とともに、移動先のユーザインターフェースを出現させるイベントを、「UI遷移イベント」とも称する。
ここで、図12Aから図13を参照して、UI遷移イベントに関連した端末用画像の変化態様について説明する。ここでは、図5等で説明したロビーの空間部70におけるアバターX1の活動に関連して、UI遷移イベントに関連した端末用画像の変化態様の好ましい例について説明する。なお、当然ながら、以下で説明するUI遷移イベントに関連した端末用画像の変化態様は、ロビーの空間部70以外でのアバターの活動に対しても同様に適用可能である。
図12Aは、位置P3(X1)から位置P4(X1)への高速移動の際のアバターX1の移動経路(R12参照)を模式的に示す図である。図12Bは、位置P3(X1)から位置P4(X1)への高速移動の際のアバターX1の視線方向(アバターX1に係る仮想カメラ60の視線方向)の変化態様を模式的に示す図である。図13は、位置P3(X1)から位置P4(X1)への高速移動の途中の一時点における端末用画像G84Aの一例を模式的に示す図である。
ここでは、一例として、アバターX1が位置P3(X1)に位置するときに、応援団ボタンSW12を操作したときに、位置P3(X1)から位置P4(X1)への高速移動に係るUI遷移イベントが発生するものとする。この場合、アバターX1は、位置P3(X1)から位置P4(X1)へと歩いて移動する必要がなくなり、利便性が向上する。また、アバターX1の歩きによる移動中の処理を省略できるので、処理負荷を低減できる。
位置P3(X1)から位置P4(X1)への高速移動によりアバターX1が位置P4(X1)に至ると、図11に示すような端末用画像G84が生成される。すなわち、アバターX1に係る端末用画像は、図10に示すような端末用画像G83(第1端末用画像の一例)から、図11に示すような端末用画像G84(第2端末用画像の一例)へと切り替えられる。これにより、アバターX1は、応援団設定用のユーザインターフェースG842を介して、応援団の設定が可能である。この場合、アバターX1は、位置P3(X1)から位置P4(X1)へと歩いて移動することなく、位置P4(X1)に対応付けられている応援団設定用のユーザインターフェースG842を操作できる。その結果、ユーザの操作負荷(及びそれに伴い処理負荷)を低減できる。
このようにして、本実施形態では、位置P3(X1)から位置P4(X1)へのアバターX1の高速移動に連動して、端末用画像のユーザインターフェースが、位置P3(X1)から位置P4(X1)への移動に関連した態様で、変化する。すなわち、端末用画像のユーザインターフェースが、位置P3(X1)(第1位置の一例)に対応付けられているユーザインターフェース(第1ユーザインターフェースの一例)から、位置P4(X1)(第2位置の一例)に対応付けられているユーザインターフェース(第2ユーザインターフェースの一例)へと切り替えられる。具体的には、端末用画像のユーザインターフェースが、参加申し込み用のユーザインターフェースG832から応援団設定用のユーザインターフェースG842へと遷移される。
また、本実施形態では、位置P3(X1)から位置P4(X1)への高速移動の際、仮想カメラ60の視線方向は、一人称視点となり(従って、アバターの視線方向と同じなり)、図12Bに示すように、位置P3(X1)から位置P4(X1)への歩きで移動したときと略同様の態様で変化される。具体的には、図12Bには、位置P3(X1)から位置P4(X1)への高速移動の際のアバターX1の移動経路(R12参照)上の特定の各位置に対応付けて、仮想カメラ60の視線方向が矢印R13(t2)、R13(t3)、R13(t4)、R13(t5)、R13(t6)で模式的に示されている。なお、例えばR13(t2)の(t2)は、対応する時点t2(当該時点t2での位置)での視線方向を表し、R13(t3)、R13(t4)、R13(t5)、R13(t6)も同様である。この際、時点t2から時点t6に向かって進むものとする。この場合、アバターX1は、高速移動の開始時点t2で、その直前の時点t1の図7Aに示した視線方向R7A(図12AのR12(t1)参照)から、一人称視点(図6)となり、正面方向を向く。ついで、位置P4(X1)に向かう方向への身体の回転に伴って、視線方向が回転する(R13(t3)参照)。その後、位置P4(X1)に向かう進行方向を向き(R13(t4)、R13(t5)参照)、最後に、応援団に係るアバターZ2、Z3の方を向くように回転する(R13(t6)参照)。なお、変形例では、R13(t2)、R13(t3)、R13(t4)、R13(t5)、R13(t6)の一部又は全部は、図7Bに示した視線方向R7Bにより実現されてもよい。
このようにして変化する仮想カメラ60の位置及び視線方向に応じた仮想空間の画像は、位置P3(X1)から位置P4(X1)へのアバターX1の高速移動の際の端末用画像に、各中間位置(図12Bの時点t3以後、時点t6に至る前に係る位置)に係る中間画像として出力されてもよい。例えば、図13に示す例では、かかる中間画像表示領域G841Aが模式的に示されている。中間画像表示領域G841A内に、高速移動中における複数時点の中間画像を出力することで、高速移動している感覚をユーザに付与できる。この結果、上述した課題の違和感を低減できる。なお、位置P3(X1)から位置P4(X1)へのアバターX1の高速移動の場合、仮想空間の風景は、図13に矢印R141に示すように、上述した仮想カメラ60の視線方向の変化態様に関連して、右側から左側へと流れる。なお、ここでは、高速移動中における複数時点の中間画像を出力するが、規定の1枚(1フレーム)の画像を中間画像として出力してもよい。
ここで、本実施形態では、位置P3(X1)に対応付けられているユーザインターフェースから位置P4(X1)に対応付けられているユーザインターフェースへの切り替え態様は、位置P3(X1)と位置P4(X1)との位置関係に基づいて、変化される。これにより、位置P3(X1)と位置P4(X1)との位置関係とは無関係に、一定の切り替え態様でインターフェースを切り替える場合に比べて、上述した課題の違和感を低減できる。
具体的には、本実施形態では、時点t2における仮想空間内の仮想カメラ60の視線方向を基準として、位置P4(X1)が位置P3(X1)よりも右側に位置するので、位置P4(X1)に対応付けられているユーザインターフェースが、端末用画像の右側から出現(例えばスライドイン)される(図13の矢印R143参照)。また、位置P3(X1)に対応付けられているユーザインターフェースが、端末用画像の左側から退避(例えばスライドアウト)される(図13の矢印R142参照)。
なお、図示しないが、他の一例として、アバターX1が位置P3(X1)に位置するときに、戦歴ボタンSW14を操作したときに、位置P3(X1)から位置P1(X1)への高速移動に係るUI遷移イベントが発生してよい。この場合、位置P1(X1)が位置P3(X1)よりも左側に位置するので、位置P1(X1)に対応付けられているユーザインターフェース(図示せず)が、端末用画像の左側から出現(例えばスライドイン)されてよい。また、位置P3(X1)に対応付けられているユーザインターフェースが、端末用画像の右側から退避(例えばスライドアウト)されてよい。
このようにして、本実施形態では、高速移動に係る2つの地点との位置関係に整合した態様で、ユーザインターフェースの出現態様(退避態様)が変化するので、上述した課題の違和感を効果的に低減できる。
また、位置P3(X1)から位置P1(X1)への高速移動の際は、上述した位置P3(X1)から位置P4(X1)へのアバターX1の高速移動の場合とは逆に、仮想空間の風景は、仮想カメラ60の視線方向の変化態様に関連して、左側から右側へと流れることになる。
従って、本実施形態によれば、仮想空間の風景とともにユーザインターフェースが2つの地点との位置関係に整合した態様で変化するので、上述した課題の違和感を更に効果的に低減できる。
なお、ここでは、ロビーの空間部70内におけるユーザインターフェースが対応付けられている2地点間での移動を説明したが、他の空間部70内での同様の2地点間の移動、フリー空間部71内での同様の2地点間の移動、空間部70内の地点とフリー空間部71内の地点間の移動等にも適用可能である。
例えば、図14に示すような空間部70においては、複数の説明会用ブースSP21からSP23が配置されている。この場合、例えば、アバターは、矢印R21で示すようにスペースSP1まで移動してチュートリアルを受け、ついで、ゲート手前のスペースSP2まで移動し(矢印R22参照)、ゲートをくぐり、空間部70内に入ることができる(矢印R23参照)。そして、アバターは、空間部70内の各ブースSP21からSP23を巡ることで(矢印R24からR26)、各種説明を受けることができる。例えば、企業説明会の場合、各ブースSP21からSP23は、異なる企業に関連してよい。この場合、各ブースSP21からSP23にユーザインターフェースが対応付けられてよく、各ブースSP21からSP23のうちのいずれかを選択することで、上述したUI遷移イベントを発生させてもよい。例えば、ブースSP21にアバターが位置するときに、ブースSP22への移動をリクエストする入力(所定入力)を同アバターが行う場合に、ブースSP22への高速移動が実現されてよい。この際、ブースSP22に対応付けられているユーザインターフェースは、ブースSP21とブースSP22との間の位置関係に応じて、端末用画像における出現態様が決定されてよい。例えば、そのときのアバターの正面方向を基準として、ブースSP22が右側に位置する場合は、ブースSP22に対応付けられているユーザインターフェースは、端末用画像における右側から出現してよい。そして、これに応じて、ブースSP21に対応付けられているユーザインターフェースは、端末用画像における左側へと退避されてよい。
次に、図15以降を参照して、上述した仮想現実生成システム1の構成例であって、UI遷移イベントに関連した構成例を順に説明していく。
以下では、サーバ装置10が、情報処理システムの一例を実現するが、後述するように、一の端末装置20の各要素(図1の端末通信部21~端末制御部25参照)が、情報処理システムの一例を実現してもよいし、複数の端末装置20が、協動して情報処理システムの一例を実現してもよい。また、サーバ装置10と1つ以上の端末装置20が、協動して情報処理システムの一例を実現してもよい。
図15は、上述したUI遷移イベントに関連したサーバ装置10の機能ブロック図の一例である。図16は、上述したUI遷移イベントに関連した端末装置20の機能ブロック図の一例である。図17は、ユーザデータベース130内のデータの説明図である。図18は、アバターデータベース132内のデータの説明図である。図19は、UIデータベース134内のデータの説明図である。なお、図17から図19において、“***”は、何らかの情報が格納されている状態を表し、“-”は、情報が格納されていない状態を表し、“・・・”は同様の繰り返しを表す。
ここでは、まず、サーバ装置10の機能について説明してから、端末装置20の機能について説明する。
(サーバ装置の機能)
サーバ装置10は、図15に示すように、ユーザデータベース130と、アバターデータベース132と、UIデータベース134と、ユーザ入力取得部140と、画像条件生成部144と、インターフェース形成部148と、イベント発生部150と、移動処理部152とを含む。
なお、以下で説明するサーバ装置10の機能の一部又は全部は、適宜、端末装置20により実現されてもよい(図20から図22Aを参照して後述)。また、ユーザ入力取得部140から移動処理部152の区分けは、説明の都合上であり、一部の機能部が、他の機能部の機能を実現してもよい。これは、ユーザデータベース130、アバターデータベース132、及びUIデータベース134の区分けについても同様である。例えば、ユーザデータベース130内のデータの一部又は全部は、アバターデータベース132内のデータに統合されてもよいし、別のデータベースに格納されてもよい。
ユーザ入力取得部140から移動処理部152は、サーバ装置10のサーバ制御部13が、サーバ装置10のサーバ記憶部12内の1つ以上のプログラムを実行することで実現できる。また、ユーザデータベース130、アバターデータベース132、及びUIデータベース134は、サーバ装置10のサーバ記憶部12により実現できる。
ユーザデータベース130には、ユーザ情報600が格納される。図17に示す例では、ユーザ情報600は、各ユーザIDに、ユーザ名、アバターID、位置/向き情報等が対応付けられる。ユーザ名は、ユーザが自身で登録した名前であり、任意である。アバターIDは、アバターを特定するためのIDである。位置/向き情報は、アバターの位置情報と向き情報とを含む。アバターの位置情報は、仮想空間に対応付けられた座標系で管理されてよい。向き情報は、アバターの向きを表す情報であってよい。なお、位置/向き情報等は、ユーザからの操作入力に応じて、動的に変化しうる情報である。位置/向き情報に加えて、アバターの手足等の動きを表す情報や、顔の表情等を表す情報を含んでもよい。
ユーザ情報600は、更にゲームに関連したユーザ情報として、ランク、所有ゲーム媒体に関する情報、使用ゲーム媒体に関する情報、及びフレンド情報を含んでよい。
ランクは、ゲームに関するユーザの熟練度を示すパラメータである。本実施形態において、ランクの値は、ユーザによるゲームのプレイに応じて増加してもよい。ランクが高いほど、ゲームに関するユーザの熟練度が高い。
所有ゲーム媒体に関する情報は、ユーザがゲーム内で所有するゲーム媒体(所有ゲーム媒体)に固有の種々の情報を含む。ゲーム媒体がユーザに取得された場合、当該ゲーム媒体は、所有ゲーム媒体としてユーザに対応付けられる。所有ゲーム媒体に関する情報の詳細については後述する。
使用ゲーム媒体に関する情報は、対戦ゲームパートにおいてユーザに使用させるゲーム媒体を示す情報である。ゲーム媒体は、所有ゲーム媒体のうちから選択される。なお、ゲーム媒体は、後述するアバターとして機能してもよい。
フレンド情報は、フレンド関係にあるユーザIDを表す。例えば、ユーザAが、ユーザB、Cとフレンド関係である場合、ユーザAに対応付けられたフレンド情報は、ユーザB、CのユーザIDを含む。なお、フレンド関係は、フレンド申請等を介して実現される。このように、フレンド情報は、ユーザとの間で一方向的又は双方向的に関連付けられた他のユーザのユーザIDを含む。なお、フレンド関係にあるユーザ同士は、例えば仮想現実生成システム1上でメッセージの送受信等のコミュニケーションが可能であってもよい。
ユーザに関する情報の内容は、上述したものに限られない。例えば、ユーザに関する情報は、ユーザがゲーム内で保有する所定のポイントを示す情報を更に含んでもよい。当該ポイントは、ユーザがゲームパートをプレイするために消費される。ゲームパートごとに、当該ポイントの消費量が異なってもよい。当該ポイントは、例えば時間経過に応じて、又は所定のゲーム媒体の使用に応じて、増加してもよい。
アバターデータベース132には、アバターに関するアバター情報700が格納される。図18に示す例では、アバター情報700は、各アバターIDに、顔、髪型、服装等が対応付けられる。顔、髪型、服装等の容姿に係る情報は、アバターを特徴付けるパラメータであり、あらかじめ設定されてもよいし、各ユーザにより設定されてもよい。例えば、アバターに係る顔、髪型、服装等の容姿に係る情報は、種類ごとIDが付与されてもよい。また、顔については、顔の形、目、口、鼻等の各種類にそれぞれパーツIDが用意され、顔に係る情報は、当該顔を構成する各パーツのIDの組み合わせで管理されてもよい。この場合、顔、髪型、服装等の容姿に係る情報は、アバターの描画情報として機能できる。すなわち、各アバターIDに紐付けられた容姿に係る各IDに基づいて、サーバ装置10のみならず端末装置20側においても各アバターを描画することが可能となる。
このようにして本実施形態では、基本的には、一のユーザに、一のユーザIDが対応付けられ、一のユーザIDに、アバターIDが対応付けられる。従って、一のユーザに、ある情報が対応付けられる状態と、当該一のユーザIDに、当該情報が対応付けられる状態と、当該一のユーザIDに対応付けられたアバターIDに、当該情報が対応付けられる状態とは、互いに同義である。なお、一のユーザIDには、2つ以上のアバターIDが対応付けられてもよい。
UIデータベース134には、仮想空間内で位置情報に対応付けられているユーザインターフェースに係るユーザインターフェース情報が記憶される。例えば、図10及び図11を参照して上述したユーザインターフェースG832、G842は、それぞれ、図5に示す受け付け施設の第2オブジェクトM5(M3)と、応援団近傍の壁に係る第2オブジェクトM6(M3)に対応付けられてよい。以下では、このようにして、仮想空間内で位置情報に対応付けられているユーザインターフェースを、「特定ユーザインターフェース」とも称する。なお、特定ユーザインターフェースは、特定のアバターに対応付けられるユーザインターフェースを含んでよい。例えば、上述したユーザインターフェースG842は、応援団に係るアバターZ2、Z3に対応付けられてよい。この場合も、ユーザインターフェースG842は、間接的には、応援団に係るアバターZ2、Z3のそれぞれの位置情報に対応付けられることになる。
例えば、図19に示すユーザインターフェース情報800は、ユーザインターフェースIDごとに、出力条件、インターフェース位置情報、及び描画用情報を含んでよい。ユーザインターフェースIDは、各特定ユーザインターフェースの生成時に自動的に生成されるIDである。出力条件は、ユーザインターフェースの出力条件を表す。ユーザインターフェースの出力条件は、任意であるが、例えば、所定領域内のアバターが位置する場合や、所定領域内のアバターが位置しかつアバターから所定の呼び出し入力があった場合に満たされてよい。この場合、所定領域は、インターフェース位置情報に基づく位置の近傍の領域であってよい。例えば、インターフェース位置情報は、対応付けられている第2オブジェクトM3や特定のアバターの位置情報(仮想空間内の位置情報)である。例えば、図10及び図11を参照して上述したユーザインターフェースG832、G842に係るインターフェース位置情報は、図5に示す受け付け施設の第2オブジェクトM5(M3)の位置情報と、応援団近傍の壁に係る第2オブジェクトM6(M3)の位置情報に対応してよい。なお、オブジェクト属性が移動物であるオブジェクトに係る位置情報は、適宜、更新されてよい。描画用情報は、各特定ユーザインターフェースを描画するために必要な情報を含んでよい。
ユーザ入力取得部140は、端末装置20の入力部24を介して入力される各ユーザによる各種入力を取得する。
画像条件生成部144は、ユーザにより視認可能な端末用画像用の画像生成条件を生成する。なお、端末用画像は、上述したように、ユーザによる端末装置20の表示部23を介して視認可能であってよい。
画像条件生成部144は、端末用画像用の画像生成条件を、端末用画像が仮想空間画像をベースとして描画されるように生成する。ここでは、一のユーザ(アバター)用の端末用画像用の画像生成条件について説明する。従って、他のアバターとは、当該一のユーザに係るアバター以外のアバターを指す。
画像条件生成部144は、一のアバターの位置情報(図17の位置/向き情報参照)に基づいて、端末用画像を描画するための画像生成条件を生成する。なお、仮想カメラの視線方向は、図6から図7Bを参照して上述した各種の視線方向のうちの、1つが利用されてもよい。
また、画像条件生成部144は、端末用画像に他のアバターを描画するための画像生成条件を生成する。この場合、画像条件生成部144は、他のアバターの位置情報(図17の位置/向き情報参照)に応じて、端末用画像に他のアバターを描画するための画像生成条件を生成してもよい。例えば、他のアバターの位置情報が、端末用画像で示される空間部に属する場合や仮想カメラ60の視界内に位置する場合に、画像条件生成部144は、端末用画像に他のアバターを描画するための画像生成条件を生成してよい。
画像条件生成部144は、他のアバターを描画するための画像生成条件を生成する際、アバターデータベース132内の対応するアバターIDに対応付けられたアバター情報700(図18参照)を利用してもよい。また、この際、ユーザデータベース130内の対応するアバターIDの位置/向き情報に基づいて、他のアバターの向きを表現するための画像生成条件を生成してもよい。
また、画像条件生成部144は、端末用画像に特定アイテム(例えばゲームの報酬に関連した特定アイテム)を描画するための画像生成条件を生成する。この場合、画像条件生成部144は、特定アイテムの位置情報に応じて、端末用画像に特定アイテムを描画するための画像生成条件を生成してよい。例えば、特定アイテムの位置情報が、端末用画像で示される空間部に属する場合や仮想カメラ60の視界内に位置する場合に、画像条件生成部144は、端末用画像に特定アイテムを描画するための画像生成条件を生成してよい。
また、画像条件生成部144は、UI遷移イベントに係る端末用画像を描画するための画像生成条件を生成する。この場合、図12A及び図12B等を参照して上述したように、画像条件生成部144は、UI遷移イベントの際、インターフェース形成部148と連携して、出力対象の特定ユーザインターフェースを決定するとともに、出現方向等、出力対象の特定ユーザインターフェースを描画するための画像生成条件を生成する。また、画像条件生成部144は、UI遷移イベントの際、移動処理部152と連携して、移動先の位置情報を決定するとともに、移動先での端末用画像を描画するための画像生成条件を生成する。なお、移動先に仮想カメラ60の視界内に他のアバターが存在する場合は、画像条件生成部144は、上述したように、端末用画像に他のアバターを描画するための画像生成条件を生成してよい。
なお、画像条件生成部144は、UI遷移イベントに係る端末用画像を描画するための画像生成条件を生成する際、図13等に示すように、ユーザインターフェースが端末用画像の右側に位置し、仮想空間画像部分が端末用画像の左側に来るように画像生成条件を生成してもよい。
インターフェース形成部148は、UIデータベース134内のデータに基づいて、特定ユーザインターフェースの出力の要否の判定や、出力対象のインターフェースの決定等を実行する。
イベント発生部150は、UI遷移イベントに係るイベント発生条件が成立した場合に、UI遷移イベントを発生させる。UI遷移イベントは、図12Aから図13等を参照して上述したように、アバターの移動に伴って発生するイベントであり、新たな特定ユーザインターフェースの出現を伴う。従って、UI遷移イベントに係るイベント発生条件は、例えば以下の条件要素(1)及び(2)が満たされた場合に、満たされてよい。あるいは、UI遷移イベントに係るイベント発生条件は、条件要素(2)が満たされる場合に、満たされてよい。この場合、条件要素(2)が満たされると、条件要素(1)に係る高速移動が自動的に実行されることで、条件要素(1)が自動的に満たされてよい。
条件要素(1)・・・一の地点での所定のユーザ入力に基づいて他の地点への高速移動が発生すること。
条件要素(2)・・・他の地点には特定ユーザインターフェースが対応付けられていること。
以下では、このようなUI遷移イベントに係る一の地点を、「移動元地点」とも称し、他の地点を、「移動先地点」とも称する。なお、移動元地点には、特定ユーザインターフェースが対応付けられていてもよいし、そうでなくてもよい。
条件要素(1)における所定のユーザ入力は、任意であるが、例えば、図10から図13を参照して上述したように、移動元地点において出力される特定ユーザインターフェースの特定ボタン(図10から図13を参照して上述した例では、「応援団」ボタン)の操作であってよい。ただし、所定のユーザ入力は、その他、多様であり得、音声入力やジェスチャ入力を介して実現されてもよい。
移動処理部152は、各ユーザからの各種入力に基づいて、各アバターの位置及び向きを変更する。アバターの位置及び向きを変更するためのユーザの入力は、多様であってよく、端末装置20ごとに異なってもよい。一のユーザに係るアバターの位置情報は、特定キー(例えば“WASD”キー)のような物理的なスイッチの操作入力により変更されてもよいし、モーションキャプチャー技術に基づく当該一のユーザの動きを示す入力により変更されてもよい。また、一のユーザに係るアバターの位置情報は、実空間における当該一のユーザの位置に基づいて特定されてもよい。以下では、アバターの位置情報を変更するためのユーザ入力を、「移動操作入力」とも称し、アバターの向き情報を変更するためのユーザ入力を、「方向操作入力」とも称する。
移動処理部152は、ユーザ入力取得部140により取得されるユーザからの移動操作入力(第1入力の一例)や方向操作入力に基づいて、仮想空間におけるアバターの位置情報や向き情報を変化させる。本実施形態では、一例として、仮想空間におけるアバターの位置情報及び向き情報は、仮想空間に対応付けられている座標系で管理される。なお、仮想空間におけるアバターの位置情報は、基本的に、画像条件生成部144により生成される端末用画像用の画像生成条件におけるアバターの描画位置と対応するが、常に一致する必要はない。例えば、特定の状況下では、アバターの位置情報が変化することなく、端末用画像におけるアバターの描画位置が変化するような画像生成条件が生成されてもよい。これは、向き情報についても同様である。
移動処理部152は、ユーザからの移動操作入力に基づいて、仮想空間において自由に(無制限に)、アバターの位置情報を変化させてもよいが、好ましくは、所定の制約条件下で、アバターの位置情報を変化させてよい。所定の制約条件は、任意であるが、例えば実空間における物理現象に明らかに反するような移動(例えば建物の壁を透過するような移動)が禁止されるように設定されてもよい。
本実施形態では、移動処理部152は、上述したUI遷移イベントに応答して、移動操作入力とは無関係に、当該UI遷移イベントに係る移動先地点へとアバターの位置を変更させる。この際の移動経路は、図12Aを参照して上述した通りである。移動時間は、移動距離に応じて変化させてもよいが、通常的な移動操作入力により実現可能な最短の移動時間よりも短くなるように適合されてよい。また、移動処理部152は、上述したUI遷移イベントに応答して、方向操作入力とは無関係に、当該UI遷移イベントに係る移動先地点に応じた向きに、アバターの向きを変化させてもよい。この場合、移動先地点に応じた向きは、移動元地点の特定ユーザインターフェースが対応付けられている位置情報に係る第2オブジェクトM3や特定アバターを正面視する向きであってもよい。
(端末装置の機能)
端末装置20は、図16に示すように、画像生成条件受信部210と、画像出力部212と、ユーザ入力生成部214と、ユーザ入力送信部216とを含む。
画像生成条件受信部210は、上述したサーバ装置10の画像条件生成部144により生成される端末用画像用の画像生成条件を受信する。
画像出力部212は、画像生成条件受信部210により受信された端末用画像用の画像生成条件に基づいて、端末用画像を描画し、描画した端末用画像を、上述した表示部23上に出力する。例えば、画像出力部212は、端末用画像用の画像生成条件をクエリパラメータとしてパースして変数に格納し、所与のAPIのメソッドに引数として入力、アバター情報の選定などを行うことで、端末用画像を描画してよい。なお、画像生成条件を基にサーバ装置10によって画像データ(HTML文書+画像)を生成し、端末装置20は、画像生成条件そのものから直接画像を描画せず、サーバ装置10から受信した画像データ(HTML文書+画像)を基に撮像画像を含む表示画面を表示部23上に描画するようにしてもよい。また、端末装置20は、仮想DOM(Document Object Model)機能を実装することで、端末用画像の高速な更新を実現してもよい。
ユーザ入力生成部214は、ユーザからの各種入力を取得し、各種入力に応じた信号を生成する。具体的には、ユーザ入力生成部214は、上述した入力部24を介して入力される各種入力に応じた信号を生成する。
ユーザ入力送信部216は、ユーザ入力生成部214により受信された信号をサーバ装置10に送信する。この場合、サーバ装置10は、かかる信号を受信することで、対応するユーザによる各種入力を取得する。
ところで、上述したサーバ装置10及び端末装置20間の機能の分担は、あくまで一例であり、上述したように、多様に変更が可能である。すなわち、サーバ装置10の機能の一部又は全部は、適宜、端末装置20により実現されてもよい。
例えば、図20及び図20Aに示すような分担態様が実現されてもよい。この場合も、サーバ装置10Aと各ユーザの端末装置20Aとが連携して、上述したサーバ装置10と端末装置20とが連携する場合と同様の機能を実現できる。図20及び図20Aに示すような分担態様の場合、画像条件生成部144、インターフェース形成部148、イベント発生部150、及び移動処理部152の各機能は、以下で説明するように、端末装置20Aにおいて各ブラウザで行うことが可能である。
図20に示す例では、サーバ装置10Aは、ユーザデータベース130と、アバターデータベース132と、位置情報取得部166と、位置情報送信部167と、データ更新処理部168とを含む。なお、位置情報取得部166、位置情報送信部167、及びデータ更新処理部168は、サーバ装置10Aのサーバ制御部(図1のサーバ制御部13参照)が、サーバ装置10Aのサーバ記憶部(図1のサーバ記憶部12参照)内の1つ以上のプログラムを実行することで実現できる。
位置情報取得部166は、各アバターの位置/向き情報を各端末装置20Aから受信することで取得する。位置情報取得部166は、各アバターの位置/向き情報を取得すると、ユーザデータベース130内の記憶データを更新する。ユーザデータベース130内には、図17に示したように、アバターIDごとの位置/向き情報が記憶されてよい。
位置情報送信部167は、ユーザデータベース130内のアバターの位置/向き情報を、送信対象の端末装置20Aに送信する。一のアバターの位置/向き情報の送信対象の端末装置20Aは、当該一のアバターを視界内に含む他のアバターに係るユーザの端末装置20Aを含む。これにより、各ユーザに係る端末装置20Aは、端末用画像内に描画される対象の他のユーザに係る各アバターの位置/向き情報を得ることができる。この場合、描画対象でない不要なアバターについては、その位置/向き情報が送信されることがなく、通信負荷の低減を図ることができる。
データ更新処理部168は、ユーザデータベース130やアバターデータベース132内のデータに基づいて、各ユーザの端末装置20Aに更新データを送信する。なお、更新データの送信タイミングは、適宜設定されてよく、端末装置20Aからの要求に応じたタイミングを含んでよい。
図20Aに示す端末装置20Aは、仮想現実アプリケーションが、ブラウザ上で利用できるWebアプリケーションの形態である場合に好適である。端末装置20Aは、画像出力部212A、ユーザ入力生成部214A、及びユーザ入力送信部216Aを含む。画像出力部212A、ユーザ入力生成部214A、及びユーザ入力送信部216Aは、図16を参照して、上述した画像出力部212、ユーザ入力生成部214、及びユーザ入力送信部216と実質的に同様であってよい。なお、画像出力部212Aは、後述する画像条件生成部244Aが生成する端末用画像用の画像生成条件に基づいて、端末用画像を描画し、描画した端末用画像を、上述した表示部23上に出力する。
更に、図20Aに示す例では、端末装置20Aは、位置情報更新部241Aと、画像条件生成部244Aと、インターフェース形成部248Aと、イベント発生部250Aと、移動処理部252Aと、端末記憶部22Aとを含む。
以下では、任意の一のユーザ(以下、「本ユーザ」とも称する)に係る端末装置20Aについて説明するが、他のユーザに係る端末装置20Aについても実質的に同様である。また、以下では、本ユーザに係るアバターは、本アバターとも称する。
位置情報更新部241Aから移動処理部252Aまでの各部は、端末装置20Aの端末制御部(図1の端末制御部25参照)が、端末装置20Aの端末記憶部(図1の端末記憶部22参照)内のプログラムである本実施形態に係る仮想現実アプリケーションを実行することで実現できる。また、端末装置20Aにおいて必要となる各種データの一時的な記憶は、端末記憶部22AのうちRAM(Random Access Memory)221Aにより実現できる。RAM221Aには、各種データが一時記憶機能として展開されるが、例えば、サーバ装置10Aにおいて作成されたHTML文書に基づいて、各種データをダウンロードし、一時的にRAM221Aにデータが展開されて、ブラウザでの処理(描画等)に使用される。ブラウザを閉じると、RAM221Aに展開されたデータは消去される。
RAM221Aには、上述したサーバ装置10Aのユーザデータベース130内のデータ(図17参照)のうちの、本アバターの視界内に位置する他の各アバターに関するデータだけが記憶されてもよいし、その他のデータが更に記憶されてもよい。RAM221A内のデータのうち、位置/向き情報のデータは、サーバ装置10Aから送信された位置/向き情報に基づいて位置情報更新部241Aにより更新される。なお、RAM221A内のデータのうち他のデータは、適宜、サーバ装置10Aとの通信を介して、上述した更新データに基づいて更新されてもよい(例えば、本実施形態に係る仮想現実アプリケーションの起動時等)。
RAM221Aは、上述したサーバ装置10のアバターデータベース132内のデータ(図18参照)のうちの、本アバターの視界内に位置する他の各アバターに関するデータだけが記憶されてもよいし、その他のデータが更に記憶されてもよい。RAM221A内のデータは、仮想現実アプリケーション(例えばWebアプリケーション)の起動時等にサーバ装置10Aとの通信を介して、上述した更新データに基づいて更新されてよい。
位置情報更新部241Aは、上述したようにサーバ装置10Aからの受信データに基づいて、RAM221A内のデータのうちの、位置/向き情報のデータを更新する。また、位置情報更新部241Aは、本ユーザからの移動操作入力や方向操作入力に基づいて、RAM221A内のデータのうちの、本ユーザに係る位置/向き情報のデータを更新してもよい。
画像条件生成部244Aは、上述したサーバ装置10の画像条件生成部144と同様の機能を実現する。画像条件生成部244Aは、生成した画像生成条件をサーバ装置10Aに送信してもよい。この場合、画像生成条件は、サーバ装置10A側でも記憶できる。
インターフェース形成部248Aは、上述したサーバ装置10のインターフェース形成部148と同様の機能を実現する。ただし、インターフェース形成部148は、本ユーザ用の端末用画像に関する処理を行う。
イベント発生部250Aは、上述したサーバ装置10のイベント発生部150と同様の機能を実現する。
移動処理部252Aは、上述したサーバ装置10の移動処理部152と同様の機能を実現する。この場合、移動処理部252Aは、本ユーザからの各種入力(ユーザ入力生成部214Aにより生成される、各種入力に応じた信号)に基づいて、移動処理部152と同様の機能を実現してよい。
図21は、図20Aに示した端末装置20Aに代えて実現されてもよい端末装置20Bの機能ブロック図である。図21に係る構成は、仮想現実アプリケーションが、ブラウザ上で利用できるWebアプリケーションとは異なるネイティブアプリケーションの形態である場合に好適である。なお、ネイティブアプリケーションは、事前に端末装置20Bにダウンロードされて利用される。
図21に示す例では、端末装置20Bは、画像出力部212B、ユーザ入力生成部214B、及びユーザ入力送信部216Bを含む。画像出力部212B、ユーザ入力生成部214B、及びユーザ入力送信部216Bは、図16を参照して、上述した画像出力部212、ユーザ入力生成部214、及びユーザ入力送信部216と実質的に同様であってよい。なお、画像出力部212Bは、後述する画像条件生成部244Bが生成する端末用画像用の画像生成条件に基づいて、端末用画像を描画し、描画した端末用画像を、上述した表示部23上に出力する。
更に、図21に示す例では、端末装置20Bは、ユーザデータベース230Bと、アバターデータベース232Bと、UIデータベース234Bと、位置情報更新部241Bと、画像条件生成部244Bと、移動処理部252Bと、インターフェース形成部248Bと、イベント発生部250Bと、を含む。
以下では、本ユーザに係る端末装置20Bについて説明するが、他のユーザに係る端末装置20Bについても実質的に同様である。
位置情報更新部241Bからイベント発生部250Bまでの各部は、端末装置20Bの端末制御部(図1の端末制御部25参照)が、端末装置20Bの端末記憶部(図1の端末記憶部22参照)内のプログラムである本実施形態に係る仮想現実アプリケーションを実行することで実現できる。また、ユーザデータベース230B、アバターデータベース232B及びUIデータベース234Bは、端末装置20Bの端末記憶部(図1の端末記憶部22参照)により実現できる。
ユーザデータベース230Bには、上述したサーバ装置10のユーザデータベース130内のデータ(図17参照)のうちの、本アバターの視界内に位置する他のアバターに関するデータだけが記憶されてもよいし、その他のデータが更に記憶されてもよい。ユーザデータベース230B内のデータのうち、位置/向き情報のデータは、サーバ装置10Aから送信された位置/向き情報に基づいて位置情報更新部241Bにより更新される。なお、ユーザデータベース230B内のデータのうち他のデータは、適宜、サーバ装置10Aとの通信を介して、上述した更新データに基づいて更新されてもよい(例えば、本実施形態に係る仮想現実アプリケーションの起動時等)。
アバターデータベース232Bは、上述したサーバ装置10のアバターデータベース132内のデータ(図18参照)のうちの、本アバターの視界内に位置する他の各アバターに関するデータだけが記憶されてもよいし、その他のデータが更に記憶されてもよい。アバターデータベース232B内のデータは、適時にサーバ装置10Aとの通信を介して、上述した更新データに基づいて更新されてよい。
UIデータベース234Bは、上述したサーバ装置10のUIデータベース134と同様の機能を実現する。
位置情報更新部241Bは、上述したようにサーバ装置10Aからの受信データに基づいて、ユーザデータベース230B内のデータのうちの、位置/向き情報のデータを更新する。また、位置情報更新部241Bは、本ユーザからの移動操作入力や方向操作入力に基づいて、ユーザデータベース230B内のデータのうちの、本ユーザに係る位置/向き情報のデータを更新してもよい。
画像条件生成部244Bは、上述したサーバ装置10の画像条件生成部144と同様の機能を実現する。画像条件生成部244Bは、生成した画像生成条件をサーバ装置10Aに送信してもよい。この場合、画像生成条件は、サーバ装置10A側でも記憶できる。
インターフェース形成部248Bは、上述したサーバ装置10のインターフェース形成部148と同様の機能を実現する。ただし、インターフェース形成部148は、本ユーザ用の端末用画像に関する処理を行う。
イベント発生部250Bは、上述したサーバ装置10のイベント発生部150と同様の機能を実現する。
移動処理部252Bは、上述したサーバ装置10の移動処理部152と同様の機能を実現する。
また、図22及び図22Aに示すような分担態様が実現されてもよい。この場合も、サーバ装置10Cと各ユーザの端末装置20Cとが連携して、上述したサーバ装置10と端末装置20とが連携する場合と同様の機能を実現できる。
図22に示すサーバ装置10Cは、図15に示したサーバ装置10に対して、端末画像描画部164及び端末画像データ送信部165が追加された点が異なる。
端末画像描画部164は、画像条件生成部144により受信された端末用画像用の画像生成条件に基づいて、端末用画像を描画する。例えば、画像出力部212は、端末用画像用の画像生成条件をクエリパラメータとしてパースして変数に格納し、所与のAPIのメソッドに引数として入力、アバター情報の選定などを行うことで、端末用画像を描画してよい。
端末画像データ送信部165は、端末画像描画部164により描画された端末用画像用の画像データを、対応する各端末装置20Cに送信する。
図22Aに示す端末装置20Cは、図16に示した端末装置20に対して、画像生成条件受信部210及び画像出力部212が、それぞれ、画像データ受信部211及び画像出力部212Cに置換された点が異なる。
画像データ受信部211は、端末画像データ送信部165により送信される端末用画像用の画像データを受信する。
画像出力部212Cは、画像データ受信部211により受信された端末用画像のデータを、上述した表示部23上に出力する。
次に、図23及び図24を参照して、仮想現実生成システム1の動作のうちの一部の動作例について説明する。
図23は、本実施形態による仮想現実生成システム1の動作のうちの、上述したUI遷移イベントに関連した動作を概略的に示すフローチャートである。図23は、一のアバター(以下、「対象アバター」とも称する)に対する処理に関するが、他のアバターに対しても同様の処理が並列的に実行されてよい。
ステップS2300では、サーバ装置10は、一の特定ユーザインターフェース(図23及び後出の図24では、「特定UI」と表記)が対応付けられている位置情報に、対象アバターが位置するか否かを判定する。判定結果が“YES”の場合、ステップS2302に進み、それ以外の場合は、今回の処理周期の処理は終了する。
ステップS2302では、サーバ装置10は、特定ユーザインターフェースを含む端末用画像を描画するための画像生成条件を生成する。
ステップS2304では、サーバ装置10は、所定入力がユーザにより入力されたか否かを判定する。所定入力は、他の特定ユーザインターフェースが対応付けられている位置(又は領域)への高速移動をトリガする入力であってよい。例えば、上述した図10に示す例では、所定入力は、応援団ボタンSW12の操作による入力である。判定結果が“YES”の場合、ステップS2306に進み、それ以外の場合は、今回の処理周期の処理は終了する。
ステップS2306では、サーバ装置10は、現時点での対象アバターの位置を移動元地点とし、かつ、ステップS2304の所定入力に係る他の特定ユーザインターフェースが対応付けられている位置(又は領域)を移動先地点として、UI遷移イベント処理を実行する。UI遷移イベント処理の一例は、図24を参照して後述する。
図24は、UI遷移イベント処理の一例を概略的に示すフローチャートである。
ステップS2400では、サーバ装置10は、今回のUI遷移イベントに係る移動元地点と移動先地点との間の位置関係に基づいて、移動先地点に対応付けられている特定ユーザインターフェースの出現方向(スライドイン方向)を決定するとともに、移動元地点に対応付けられている特定ユーザインターフェースの退避方向(スライドアウト方向)を決定する。なお、移動先地点に対応付けられている特定ユーザインターフェースの出現方向と、移動元地点に対応付けられている特定ユーザインターフェースの退避方向とは、一方が決まると他方がそれに応じて決まる関係である。例えば、移動先地点に対応付けられている特定ユーザインターフェースの出現方向が、左側から出現である場合、移動元地点に対応付けられている特定ユーザインターフェースの退避方向は、右側への退避である。
ここでは、UI遷移イベントの開始時点の対象アバターの正面方向を基準として、UI遷移イベントに係る移動元地点が移動先地点に対して右側に位置する場合、移動先地点に対応付けられている特定ユーザインターフェースは、右側から出現するように出現方向が決定される。この場合、移動元地点に対応付けられている特定ユーザインターフェースは、左側へと退避するように退避方向が決定される。
ステップS2402では、サーバ装置10は、ステップS2400で決定した特定ユーザインターフェースの出現方向及び退避方向に基づいて、今回のUI遷移イベントに係る端末用画像のうちの、ユーザインターフェース部分の画像生成条件を生成する。
ステップS2403では、サーバ装置10は、移動元地点から移動先地点への移動経路を算出するとともに、移動経路上の各位置での対象アバターの視線方向(すなわち仮想カメラ60の視線方向)を算出する。
ステップS2404では、サーバ装置10は、ステップS2403で算出した移動経路に基づいて、移動経路の周辺に位置しうる他のアバター及び第2オブジェクトM3を抽出する。
ステップS2406では、サーバ装置10は、ステップS2404で抽出した他のアバター及び第2オブジェクトM3のうち、所定オブジェクトが存在するか否かを判定する。所定オブジェクトは、任意であるが、好ましくは、対象アバターにとって認識するのが有用な他のアバターや第2オブジェクトM3である。例えば、所定オブジェクトは、フレンド関係のアバターや、ゲーム上で敵となるアバター(例えば、対象アバターに攻撃を加えうるアバター)、ゲーム上で取得するのが有用な第2オブジェクトM3等であってよい。判定結果が“YES”の場合、ステップS2408に進み、それ以外の場合は、ステップS2410に進む。
ステップS2408では、サーバ装置10は、ステップS2403で算出した移動経路及びアバターの視線方向に基づいて、移動経路上の1つ以上の位置であって、所定オブジェクトが描画されるように中間画像の生成条件を決定する。すなわち、サーバ装置10は、今回のUI遷移イベントに係る端末用画像のうちの、中間画像部分の画像生成条件を、所定オブジェクトが描画される態様で生成する。
ステップS2410では、サーバ装置10は、ステップS2403で算出した移動経路及びアバターの視線方向に基づいて、移動経路上の1つ以上の位置での中間画像の生成条件を決定する。すなわち、サーバ装置10は、今回のUI遷移イベントに係る端末用画像のうちの、中間画像部分の画像生成条件を、通常態様で生成する。この場合、中間画像の生成条件は、あらかじめ準備されたアニメーション画像の生成条件とされてもよい。
ステップS2412では、サーバ装置10は、移動先地点に対象アバターが到着したときの端末用画像(ユーザインターフェース部分以外の部分)を描画するための画像生成条件を生成する。
このようにして図24に示す例によれば、移動元地点と移動先地点との位置関係に応じて特定ユーザインターフェースの出現方向及び退避方向が変化する態様で、端末用画像の画像生成条件を生成できる。また、中間画像を描画するための画像生成条件が生成されるので、高速移動の途中の仮想空間画像を、特定ユーザインターフェースの動きに連動する態様で生成できる。この結果、上述した課題の違和感を更に効果的に低減できる。
また、図24に示す例によれば、今回の移動元地点から移動先地点まで対象アバターの移動中に当該対象アバターの視界内に入りうる所定オブジェクトを中間画像を介して視認可能(対象アバターにとって視認可能)とすることができる。ただし、変形例では、所定オブジェクトの有無とは無関係に中間画像を決定してもよいし、更なる他の変形例では、中間画像が省略されてもよい。
また、図23及び図24に示す例では、移動元地点は、特定ユーザインターフェースが対応付けられている位置に対応するが、これに限られない。すなわち、移動元地点での端末用画像には、特定ユーザインターフェースが含まれていない場合でも適用可能である。この場合も同様に、移動元地点と移動先地点との間の位置関係に基づいて、移動先地点に対応付けられている特定ユーザインターフェースの出現態様を同様に決定できる。また、移動元地点に移動先地点に係る端末用画像との間の1つ以上の中間画像についても同様に決定できる。
以上、各実施形態について詳述したが、特定の実施形態に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。また、前述した実施形態の構成要素の全部又は複数を組み合わせることも可能である。