[本開示が示す実施形態の説明]
本開示が示す実施形態の概要を説明する。
(1)各々がユーザの頭部に装着されるヘッドマウントデバイスを有する複数のユーザ端末と、サーバとを備えた仮想空間配信システムにおいてコンピュータによって実行される情報処理方法であって、
前記情報処理方法は、
(a)前記複数のユーザ端末のうちの第1ユーザ端末に関連付けられた第1アバターと、前記第1アバターが配置される第1仮想部屋とを含む第1仮想空間を規定する第1仮想空間データを生成するステップと、
(b)前記複数のユーザ端末のうちの第2ユーザ端末から、前記第2ユーザ端末に関連付けられた第2アバターが前記第1仮想部屋を訪問することを要求する訪問要求信号を受信するステップと、
(c)前記ステップ(b)の後に、前記第1仮想部屋に現在配置されているアバターと前記第2アバターとの総数に応じて、前記第1仮想部屋を更新するべきかどうかを判定するステップと、
(d)前記第1仮想部屋を更新するべきであると判定した場合に、前記第1仮想部屋のサイズを更新するように前記第1仮想部屋を更新するステップと、
を含む、情報処理方法。
上記方法によれば、第1仮想部屋に現在配置されているアバターと第2アバターとの総数に応じて、第1仮想部屋を更新するべきかどうかが判定され、第1仮想部屋を更新するべきであると判定した場合に、第1仮想部屋のサイズが更新される。このように、仮想部屋に存在するアバター数に応じて仮想部屋のサイズが更新されるので、アバターの数に応じた仮想体験を提供し得る。したがって、ソーシャルVRにおけるユーザの仮想体験を改善することが可能な情報処理方法を提供することができる。
(2)前記第1アバターと前記第1仮想部屋との間の相対的位置関係が維持されるように、前記第1アバターは前記更新された第1仮想部屋に配置される、項目(1)に記載の情報処理方法。
上記方法によれば、第1アバターと第1仮想部屋との間の相対的位置関係が維持されるように、第1アバターは更新された第1仮想部屋に配置される。このように、第1仮想部屋が更新される前後で、第1ユーザの視点(第1アバターの位置)が大きく変更されることが防止されるので、第1ユーザのVR酔いを好適に防止することが可能となる。
(3)前記第1仮想部屋は、動画が表示される第1仮想スクリーンを含み、
前記ステップ(d)は、前記第1仮想部屋のサイズの拡大に応じて前記第1仮想スクリーンのサイズが拡大するように前記第1仮想部屋を更新するステップを含む、項目(1)又は(2)に記載の情報処理方法。
上記方法によれば、第1仮想部屋のサイズの拡大に応じて、第1仮想スクリーンのサイズが拡大する。このように、第1仮想部屋に存在するアバターの数に応じて第1仮想スクリーンのサイズも拡大するので、多数のユーザが同一の仮想部屋内で同一の動画(映像コンテンツ等)の視聴を楽しむことを促すことができる。したがって、ユーザ間における仮想部屋の訪問(ソーシャルVR)を促進することができる。
(4)前記第1仮想部屋は、動画が表示される第1仮想スクリーンを含み、
(e)前記第1ユーザ端末から、前記第1仮想スクリーンのサイズを所定のサイズに拡大することを要求するスクリーン拡大要求信号を受信するステップと、
(f)前記スクリーン拡大要求信号に応じて、前記第1仮想スクリーンのサイズを前記所定のサイズに拡大するように前記第1仮想スクリーンを更新するステップと、
をさらに含む、項目(1)から(3)のうちいずれか一項に記載の情報処理方法。
上記方法によれば、スクリーン拡大要求信号に応じて、第1仮想スクリーンのサイズが所定のサイズに拡大される。このように、第1仮想部屋を訪問するアバターが存在しなくても、第1ユーザは大きい仮想スクリーンで映像コンテンツ等の動画の視聴を楽しむことができる。
(5)(g)前記第1ユーザ端末のヘッドマウントデバイスを装着した第1ユーザによる前記動画の視聴により前記第1ユーザに課金される課金額を決定するステップをさらに含み、
前記ステップ(g)は、前記スクリーン拡大要求信号に応じて、前記第1ユーザに課金される課金額を更新するステップを含む、
項目(4)に記載の情報処理方法。
上記方法によれば、スクリーン拡大要求信号に応じて第1ユーザに課金される課金額が更新される。このように、例えば、第1仮想部屋に訪問するアバターが存在しなくても、第1ユーザは、所定の金額を支払うことで、大きい仮想スクリーンで映像コンテンツ等の動画の視聴を楽しむことができる。
(6)前記ステップ(d)は、前記第1仮想部屋のサイズの拡大に応じて前記第1仮想スクリーンのサイズが拡大するように前記第1仮想部屋を更新するステップを含み、
前記第1仮想部屋のサイズの拡大に応じて前記第1仮想スクリーンのサイズが所定のサイズに拡大されたときに前記第1ユーザに課金される第1課金額は、前記スクリーン拡大要求信号に応じて前記第1仮想スクリーンのサイズが前記所定のサイズに拡大されたときに前記第1ユーザに課金される第2課金額よりも安い、
項目(5)に記載の情報処理方法。
上記方法によれば、第1仮想部屋のサイズの拡大に応じて第1仮想スクリーンのサイズが所定のサイズ(例えば、Mサイズ)に拡大されたときに第1ユーザに課金される第1課金額は、スクリーン拡大要求信号に応じて第1仮想スクリーンのサイズが当該所定のサイズ(例えば、Mサイズ)に拡大されたときに第1ユーザに課金される第2課金額よりも安い。このため、多数のユーザが同一の仮想部屋内で同一の動画(映像コンテンツ等)の視聴を楽しむことを促すことができる。したがって、ユーザ間における仮想部屋の訪問(ソーシャルVR)を促進することができる。
(7)項目(1)から(6)のうちいずれか一項に記載の情報処理方法をコンピュータに実行させるためのプログラム。
上記によれば、ソーシャルVRにおけるユーザの仮想体験を改善することが可能なプログラムを提供することができる。
[本開示が示す実施形態の詳細]
以下、本開示が示す実施形態について図面を参照しながら説明する。尚、本実施形態の説明において既に説明された部材と同一の参照番号を有する部材については、説明の便宜上、その説明は繰り返さない。
最初に、仮想空間配信システム100(又は、ソーシャルVRシステム)の構成の概略について図1を参照して説明する。図1は、仮想空間配信システム100(以下、単に配信システム100という。)の概略図である。図1に示すように、配信システム100は、ユーザAによって操作されるユーザ端末1Aと、ユーザBによって操作されるユーザ端末1Bと、ユーザCによって操作されるユーザ端末Cと、サーバ2とを備える。ユーザ端末1A〜1Cは、インターネット等の通信ネットワーク3を介してサーバ2に通信可能に接続されている。尚、本実施形態において、仮想空間とは、VR(Virtual Reality)空間と、AR(Argumented Reality)空間と、MR(Mixed Reality)空間を含む。また、以降では、説明の便宜上、各ユーザ端末1A〜1Cを単にユーザ端末1と総称する場合がある。さらに、各ユーザA〜Cを単にユーザUと総称する場合がある。また、本実施形態では、ユーザ端末1A〜1Cは、同一の構成を備えているものとする。
次に、図2を参照してユーザ端末1の構成について説明する。図2は、ユーザ端末1を示す概略図である。図2に示すように、ユーザ端末1は、ユーザUの頭部に装着されたヘッドマウントデバイス(HMD)110と、ヘッドフォン116と、マイク118と、位置センサ130と、外部コントローラ320と、制御装置120とを備える。
HMD110は、表示部112と、HMDセンサ114と、注視センサ140とを備えている。表示部112は、HMD110を装着したユーザUの視界(視野)を完全に覆うように構成された非透過型の表示装置を備えている。これにより、ユーザUは、表示部112に表示された視野画像のみを見ることで仮想空間に没入することができる。尚、表示部112は、ユーザUの左目に画像を提供するように構成された左目用表示部とユーザUの右目に画像を提供するように構成された右目用表示部から構成されてもよい。また、HMD110は、透過型の表示装置を備えてもよい。この場合、透過型の表示装置は、その透過率を調整することで、一時的に非透過型の表示装置として構成されてもよい。
HMDセンサ114は、HMD110の表示部112の近傍に搭載される。HMDセンサ114は、地磁気センサ、加速度センサ、傾きセンサ(角速度センサやジャイロセンサ等)のうちの少なくとも1つを含み、ユーザUの頭部に装着されたHMD110の各種動きを検出することができる。
注視センサ140は、ユーザUの視線方向を検出するアイトラッキング機能を有する。
注視センサ140は、例えば、右目用注視センサと、左目用注視センサを備えてもよい。右目用注視センサは、ユーザUの右目に例えば赤外光を照射して、右目(特に、角膜や虹彩)から反射された反射光を検出することで、右目の眼球の回転角に関する情報を取得してもよい。一方、左目用注視センサは、ユーザUの左目に例えば赤外光を照射して、左目(特に、角膜や虹彩)から反射された反射光を検出することで、左目の眼球の回転角に関する情報を取得してもよい。
ヘッドフォン116は、ユーザUの左耳と右耳にそれぞれ装着されている。ヘッドフォン116は、制御装置120から音声データ(電気信号)を受信し、当該受信した音声データに基づいて音声を出力するように構成されている。マイク118は、ユーザUから発声された音声を収集し、当該収集された音声に基づいて音声データ(電気信号)を生成するように構成されている。さらに、マイク118は、音声データを制御装置120に送信するように構成されている。
位置センサ130は、例えば、ポジション・トラッキング・カメラにより構成され、HMD110と外部コントローラ320の位置を検出するように構成されている。位置センサ130は、制御装置120に無線又は有線により通信可能に接続されており、HMD110に設けられた図示しない複数の検知点の位置、傾き又は発光強度に関する情報を検出するように構成されている。さらに、位置センサ130は、外部コントローラ320に設けられた図示しない複数の検知点の位置、傾き及び/又は発光強度に関する情報を検出するように構成されている。検知点は、例えば、赤外線や可視光を放射する発光部である。また、位置センサ130は、赤外線センサや複数の光学カメラを含んでもよい。
外部コントローラ320は、例えば、仮想空間内に表示される手指オブジェクトの動作を制御するために使用される。外部コントローラ320は、ユーザUが右手に持って使用する右手用外部コントローラと、ユーザUが左手に持って使用する左手用外部コントローラを有してもよい。
制御装置120は、位置センサ130から取得された情報に基づいて、HMD110の位置情報を取得し、当該取得された位置情報に基づいて、仮想空間における仮想カメラ(又は、ユーザUに関連したアバター)の位置と、現実空間におけるHMD110を装着したユーザUの位置を正確に対応付けることができる。さらに、制御装置120は、位置センサ130から取得された情報に基づいて、外部コントローラ320の動作情報を取得し、当該取得された動作情報に基づいて、仮想空間内に表示される手指オブジェクト(ユーザUに関連するアバターの手指)の動作と現実空間における外部コントローラ320の動作を正確に対応付けることができる。
また、制御装置120は、注視センサ140から送信された情報に基づいて、ユーザUの右目の視線と左目の視線をそれぞれ特定し、当該右目の視線と当該左目の視線の交点である注視点を特定することができる。さらに、制御装置120は、特定された注視点に基づいて、ユーザUの視線方向を特定することができる。ここで、ユーザUの視線方向は、ユーザUの両目の視線方向であって、ユーザUの右目と左目を結ぶ線分の中点と注視点を通る直線の方向に一致する。制御装置120は、ユーザUの視線方向に基づいて、ユーザUに関連するアバターの黒目の向きを特定することができる。
次に、図3を参照して、HMD110の位置や傾きに関する情報を取得する方法について説明する。図3は、HMD110を装着したユーザUの頭部を示す図である。HMD110を装着したユーザUの頭部の動きに連動したHMD110の位置や傾きに関する情報は、位置センサ130及び/又はHMD110に搭載されたHMDセンサ114により検出可能である。図2に示すように、HMD110を装着したユーザUの頭部を中心として、3次元座標(uvw座標)が規定される。ユーザUが直立する垂直方向をv軸として規定し、v軸と直交しHMD110の中心を通る方向をw軸として規定し、v軸およびw軸と直交する方向をu軸として規定する。位置センサ130及び/又はHMDセンサ114は、各uvw軸回りの角度(すなわち、v軸を中心とする回転を示すヨー角、u軸を中心とした回転を示すピッチ角、w軸を中心とした回転を示すロール角で決定される傾き)を検出する。制御装置120は、検出された各uvw軸回りの角度変化に基づいて、仮想カメラの視軸を制御するための角度情報を決定する。
次に、図4を参照することで、制御装置120のハードウェア構成について説明する。図4は、制御装置120のハードウェア構成を示す図である。図4に示すように、制御装置120は、制御部121と、記憶部123と、I/O(入出力)インターフェース124と、通信インターフェース125と、バス126とを備える。制御部121と、記憶部123と、I/Oインターフェース124と、通信インターフェース125は、バス126を介して互いに通信可能に接続されている。
制御装置120は、HMD110とは別体に、パーソナルコンピュータ、タブレット又はウェアラブルデバイスとして構成されてもよいし、HMD110に内蔵されていてもよい。また、制御装置120の一部の機能がHMD110に搭載されると共に、制御装置120の残りの機能がHMD110とは別体の他の装置に搭載されてもよい。
制御部121は、メモリとプロセッサを備えている。メモリは、例えば、各種プログラム等が格納されたROM(Read Only Memory)やプロセッサにより実行される各種プログラム等が格納される複数ワークエリアを有するRAM(Random Access Memory)等から構成される。プロセッサは、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)及び/又はGPU(Graphics Processing Unit)であって、ROMに組み込まれた各種プログラムから指定されたプログラムをRAM上に展開し、RAMとの協働で各種処理を実行するように構成されている。
特に、プロセッサが制御プログラムをRAM上に展開し、RAMとの協働で制御プログラムを実行することで、制御部121は、制御装置120の各種動作を制御してもよい。制御部121は、視野画像データに基づいてHMD110の表示部112に視野画像を表示する。これにより、ユーザUは、仮想空間に没入することができる。
記憶部(ストレージ)123は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、USBフラッシュメモリ等の記憶装置であって、プログラムや各種データを格納するように構成されている。記憶部123は、本実施形態に係る情報処理方法の少なくとも一部をコンピュータに実行させるための制御プログラムや、ソーシャルVRを実現するための制御プログラムを格納してもよい。また、記憶部123には、ユーザUの認証プログラムや各種画像やオブジェクト(例えば、仮想部屋、アバター等)に関するデータが格納されてもよい。さらに、記憶部123には、各種データを管理するためのテーブルを含むデータベースが構築されてもよい。
I/Oインターフェース124は、位置センサ130と、HMD110と、外部コントローラ320と、ヘッドフォン116と、マイク118とをそれぞれ制御装置120に通信可能に接続するように構成されており、例えば、USB(Universal Serial Bus)端子、DVI(Digital Visual Interface)端子、HDMI(登録商標)(High―Definition Multimedia Interface)端子等により構成されている。尚、制御装置120は、位置センサ130と、HMD110と、外部コントローラ320と、ヘッドフォン116と、マイク118とのそれぞれと無線接続されていてもよい。
通信インターフェース125は、制御装置120をLAN(Local Area Network)、WAN(Wide Area Network)又はインターネット等の通信ネットワーク3に接続させるように構成されている。通信インターフェース125は、通信ネットワーク3を介してサーバ2等の外部装置と通信するための各種有線接続端子や、無線接続のための各種処理回路を含んでおり、通信ネットワーク3を介して通信するための通信規格に適合するように構成されている。
次に、図5から図8を参照することで視野画像をHMD110に表示するための処理について説明する。図5は、視野画像をHMD110に表示する処理を示すフローチャートである。図6は、仮想空間200の一例を示すxyz空間図である。図7の状態(a)は、図6に示す仮想空間200のyx平面図である。図7の状態(b)は、図6に示す仮想空間200のzx平面図である。図8は、HMD110に表示された視野画像Vの一例を示す図である。
図5に示すように、ステップS1において、制御部121(図4参照)は、仮想カメラ300と、各種オブジェクトとを含む仮想空間200を示す仮想空間データを生成する。図6に示すように、仮想空間200は、中心位置210を中心とした全天球として規定される(図6では、上半分の天球のみが図示されている)。また、仮想空間200では、中心位置210を原点とするxyz座標系が設定されている。仮想カメラ300は、HMD110に表示される視野画像V(図8参照)を特定するための視軸Lを規定している。仮想カメラ300の視野を定義するuvw座標系は、現実空間におけるユーザUの頭部を中心として規定されたuvw座標系に連動するように決定される。また、HMD110を装着したユーザUの現実空間における移動に連動して、制御部121は、仮想カメラ300を仮想空間200内で移動させてもよい。
次に、ステップS2において、制御部121は、仮想カメラ300の視野CV(図7参照)を特定する。具体的には、制御部121は、位置センサ130及び/又はHMDセンサ114から送信されたHMD110の状態を示すデータに基づいて、HMD110の位置や傾きに関する情報を取得する。次に、制御部121は、HMD110の位置や傾きに関する情報に基づいて、仮想空間200内における仮想カメラ300の位置や向きを特定する。次に、制御部121は、仮想カメラ300の位置や向きから仮想カメラ300の視軸Lを決定し、決定された視軸Lから仮想カメラ300の視野CVを特定する。ここで、仮想カメラ300の視野CVは、HMD110を装着したユーザUが視認可能な仮想空間200の一部の領域に相当する(換言すれば、HMD110に表示される仮想空間200の一部の領域に相当する)。また、視野CVは、図7の状態(a)に示すxy平面において、視軸Lを中心とした極角αの角度範囲として設定される第1領域CVaと、図7の状態(b)に示すxz平面において、視軸Lを中心とした方位角βの角度範囲として設定される第2領域CVbとを有する。尚、制御部121は、注視センサ140から送信されたユーザUの視線方向を示すデータに基づいて、ユーザUの視線方向を特定し、ユーザUの視線方向に基づいて仮想カメラ300の向きを決定してもよい。
このように、制御部121は、位置センサ130及び/又はHMDセンサ114からのデータに基づいて、仮想カメラ300の視野CVを特定することができる。ここで、HMD110を装着したユーザUが動くと、制御部121は、位置センサ130及び/又はHMDセンサ114から送信されたHMD110の動きを示すデータに基づいて、仮想カメラ300の視野CVを変化させることができる。つまり、制御部121は、HMD110の動きに応じて、視野CVを変化させることができる。同様に、ユーザUの視線方向が変化すると、制御部121は、注視センサ140から送信されたユーザUの視線方向を示すデータに基づいて、仮想カメラ300の視野CVを移動させてもよい。つまり、制御部121は、ユーザUの視線方向の変化に応じて、視野CVを変化させてもよい。
次に、ステップS3において、制御部121は、HMD110の表示部112に表示される視野画像Vを示す視野画像データを生成する。具体的には、制御部121は、仮想空間200を規定する仮想空間データと、仮想カメラ300の視野CVとに基づいて、視野画像データを生成する。
次に、ステップS4において、制御部121は、視野画像データに基づいて、HMD110の表示部112に視野画像Vを表示する(図7参照)。このように、HMD110を装着しているユーザUの動きに応じて、仮想カメラ300の視野CVが変化し、HMD110の表示部112に表示される視野画像Vが変化するので、ユーザUは仮想空間200に没入することができる。
尚、仮想カメラ300は、左目用仮想カメラと右目用仮想カメラを含んでもよい。この場合、制御部121は、仮想空間データと左目用仮想カメラの視野に基づいて、左目用の視野画像を示す左目用視野画像データを生成する。さらに、制御部121は、仮想空間データと、右目用仮想カメラの視野に基づいて、右目用の視野画像を示す右目用視野画像データを生成する。その後、制御部121は、左目用視野画像データに基づいて、左目用表示部に左目用の視野画像を表示すると共に、右目用視野画像データに基づいて、右目用表示部に右目用の視野画像を表示する。このようにして、ユーザUは、左目用視野画像と右目用視野画像との間の視差により、視野画像を3次元的に視認することができる。尚、仮想カメラは、後述するように、ユーザによって操作されるアバターの目の位置に配置されてもよい。例えば、左目用仮想カメラは、アバターの左目に配置される一方で、右目用仮想カメラは、アバターの右目に配置されてもよい。
次に、図1に示すサーバ2のハードウェア構成について図9を参照して説明する。図9は、サーバ2のハードウェア構成を示す図である。図9に示すように、サーバ2は、制御部23と、記憶部22と、通信インターフェース21と、バス24とを備える。制御部23と、記憶部22と、通信インターフェース21は、バス24を介して互いに通信可能に接続されている。制御部23は、メモリとプロセッサを備えており、メモリは、例えば、ROM及びRAM等から構成されると共に、プロセッサは、例えば、CPU、MPU及び/又はGPUにより構成される。
記憶部(ストレージ)22は、例えば、大容量のHDD等である。記憶部22は、本実施形態に係る情報処理方法の少なくとも一部をコンピュータに実行させるための制御プログラムや、ソーシャルVRを実現させるための制御プログラムを格納してもよい。また、記憶部22は、各ユーザを管理するためのユーザ管理情報や各種画像やオブジェクト(例えば、仮想部屋やアバター等)に関するデータを格納してもよい。さらに、記憶部22は、図16に示す映像コンテンツ料金テーブルや課金テーブルをデータベースとして格納してもよい。通信インターフェース21は、サーバ2を通信ネットワーク3に接続させるように構成されている。
次に、図1,10及び11を参照してユーザ端末1Aとユーザ端末1B間において各アバター4A,4Bの動きを同期させる処理の一例について説明する。図10の状態(a)は、ユーザAに提供される仮想空間200Aを示す図である。図10の状態(b)は、ユーザBに提供される仮想空間200Bを示す図である。図11は、ユーザ端末1Aとユーザ端末1B間において各アバター4A,4Bの動きを同期させる処理の一例を説明するためのシーケンス図である。本説明では、前提条件として、図10に示すように、ユーザ端末1A(ユーザA)に関連付けられたアバター4Aとユーザ端末1B(ユーザB)に関連付けられたアバター4Bがアバター4Aの仮想部屋7Aに配置されているものとする。つまり、ユーザBがユーザAの仮想部屋7Aを訪問したことで、ユーザAとユーザBは、ネットワーク3を介して一つの仮想部屋7Aを共有しているものとする。
図10の状態(a)に示すように、ユーザAの仮想空間200Aは、アバター4Aと、アバター4Bと、アバター4A,4Bが配置される仮想部屋7Aとを含む。アバター4Aは、ユーザAによって操作されると共に、ユーザAの動作に連動する。アバター4Bは、ユーザBによって操作されると共に、ユーザBの動作に連動する。例えば、ユーザA(ユーザB)のHMD110の位置に応じてアバター4A(4B)の位置が特定されてもよい。同様に、ユーザA(ユーザB)のHMD110の傾きに応じてアバター4A(4B)の顔の向きが特定されてもよい。さらに、外部コントローラの動作に応じてアバター4A(4B)の手の動作が特定されてもよい。注視センサ140によって検出されたユーザA(ユーザB)の視線方向に応じてアバター4A(4B)の視線(例えば、黒目の位置)が特定されてもよい。また、アバター4A(4B)の目には、仮想カメラ300(図6)が配置されてもよい。詳細には、アバター4A(4B)の左目には、左目用仮想カメラが配置されると共に、アバター4A(4B)の右目には、右目用仮想カメラが配置されてもよい。尚、以降の説明では、仮想カメラ300はアバター4A(4B)の目に配置されているものとする。
仮想部屋7Aは、仮想テーブル5Aと、映像コンテンツ(動画)を表示するように構成された仮想スクリーン6Aを含む。ユーザA(B)は、仮想スクリーン6Aに表示された映像コンテンツをHMD110に表示された視野画像を通じて楽しむことができる。ユーザAは、仮想空間200Aに配置される様々な種類の仮想部屋を保有してもよい。ユーザAによって保有された複数の仮想部屋は、例えば、ユーザ端末Aの記憶部123やサーバ2の記憶部22に格納されてもよい。例えば、ユーザAは、仮想空間に配置された所定の仮想部屋を別の仮想部屋に変更することができる。
図10の状態(b)に示すように、ユーザBの仮想空間200Bは、アバター4Aと、アバター4Bと、アバター4A,4Bが配置される仮想部屋7Aとを含む。アバター4Bがアバター4Aの仮想部屋7Aを訪問する前には、アバター4Bの仮想部屋が仮想空間200Bに配置されている。
次に、図11を参照すると、ステップS10において、ユーザ端末1Aの制御部121は、アバター4Aの制御情報を生成した上で、当該生成したアバター4Aの制御情報をサーバ2に送信する。その後、サーバ2の制御部23は、ユーザ端末1Aからアバター4Aの制御情報を受信する(ステップS11)。ここで、アバター4Aの制御情報は、アバター4Aの動作を制御するために必要な情報であって、例えば、アバター4Aの位置に関する情報と、アバター4Aの顔の向きに関する情報と、アバター4Aの手の動作に関する情報と、アバター4Aの視線に関する情報とを含む。
次に、ステップS12において、ユーザ端末1Bの制御部121は、アバター4Bの制御情報を生成した上で、当該生成したアバター4Bの制御情報をサーバ2に送信する。その後、サーバ2の制御部23は、ユーザ端末1Bからアバター4Bの制御情報を受信する(ステップS13)。ここで、アバター4Bの制御情報は、アバター4Bの動作を制御するために必要な情報であって、例えば、アバター4Bの位置に関する情報と、アバター4Bの顔の向きに関する情報と、アバター4Bの手の動作に関する情報と、アバター4Bの視線に関する情報とを含む。
次に、サーバ2は、アバター4Bの制御情報をユーザ端末1Aに送信する一方(ステップS14)、アバター4Aの制御情報をユーザ端末1Bに送信する(ステップS18)。その後、ユーザ端末1Aの制御部121は、ステップS15においてアバター4Bの制御情報を受信した後に、アバター4A,4Bの制御情報に基づいて、仮想空間200A(図10の状態(a)参照)を示す仮想空間データを更新する(ステップS16)。例えば、アバター4A,4Bが移動した場合、移動後のアバター4A,4Bと、仮想部屋7Aとを含む仮想空間を示す仮想空間データが生成される。その後、ユーザ端末1Aの制御部121は、HMD110の位置や傾きに応じて仮想カメラ300の視野CV(図7参照)を特定した上で、更新された仮想空間データと、仮想カメラ300の視野CVとに基づいて、HMD110に表示される視野画像を更新する(ステップS17)。
一方、ユーザ端末1Bの制御部121は、ステップS19においてアバター4Aの制御情報を受信した後に、アバター4A,4Bの制御情報に基づいて、仮想空間200B(図10の状態(b)参照)を示す仮想空間データを更新する(ステップS20)。その後、ユーザ端末1Bの制御部121は、HMD110の位置や傾きに応じて仮想カメラ300の視野CVを特定した上で、更新された仮想空間データと、仮想カメラ300の視野CVとに基づいて、HMD110に表示される視野画像を更新する(ステップS21)。
本実施形態では、ユーザ端末1A,1Bがサーバ2にアバター4Aの制御情報とアバター4Bの制御情報をそれぞれ送信した後に、サーバ2がアバター4Aの制御情報をユーザ端末1Bに送信する一方、アバター4Bの制御情報をユーザ端末1Aに送信する。このように、ユーザ端末1Aとユーザ端末1B間において各アバター4A,4Bの動きを同期させることが可能となる。尚、図11に示す各処理は、1フレーム毎に実行されてもよい。
また、ユーザ端末1A〜1C間において各アバター4A〜4Cの動きを同期させる場合、ユーザ端末1Aは、アバター4Aの制御情報をサーバ2に送信し、ユーザ端末1Bは、アバター4Bの制御情報をサーバ2に送信し、ユーザ端末1Cは、アバター4Cの制御情報をサーバ2に送信する。その後、サーバ2は、アバター4A,4Cの制御情報をユーザ端末1Bに送信し、アバター4B,4Cの制御情報をユーザ端末1Aに送信し、アバター4A,4Bの制御情報をユーザ端末1Cに送信する。
次に、図12A−図14を参照することで本実施形態に係る情報処理方法について説明する。図12Aは、本実施形態に係る情報処理方法の一例を説明するためのシーケンス図(その1)である。図12Bは、本実施形態に係る情報処理方法の一例を説明するためのシーケンス図(その2)である。図13の状態(a)は、ユーザAに提供される仮想空間200Aを示す図(アバター4Cの訪問前)である。図13の状態(b)は、ユーザCに提供される仮想空間200Cを示す図(アバター4Cの訪問前)である。図14の状態(a)は、アバター4Cがアバター4Aの仮想部屋を訪問することで、アバター4Aの仮想部屋が拡大された様子を示す図である。図14の状態(b)は、アバター4Cがアバター4Aの仮想部屋を訪問したときに、アバター4Cの仮想空間が更新された様子を示す図である。
本説明では、初期条件として、図13の状態(a)に示すように、アバター4Aとアバター4Bがアバター4Aの仮想部屋7Aに配置されているものとする。つまり、アバター4Bがアバター4Aの仮想部屋7Aを訪問しているものとする。一方、図13の状態(b)に示すように、ユーザ端末1C(ユーザC)に関連付けられたアバター4Cがアバター4Cの仮想部屋7Cに配置されているものとする。その後、アバター4CがユーザAの仮想部屋7Aを訪問するものとする。
図13の状態(a)に示すように、ユーザAの仮想空間200A(第1仮想空間)は、ユーザ端末1A(第1ユーザ端末)に関連付けられたアバター4A(第1アバター)と、ユーザ端末1Bに関連付けられたアバター4Bと、仮想部屋7A(第1仮想部屋)とを含む。既に述べたように、アバター4Aは、ユーザA(第1ユーザ)によって操作されると共に、ユーザAの動作に連動する。アバター4Bは、ユーザBによって操作されると共に、ユーザBの動作に連動する。仮想部屋7Aは、仮想テーブル5Aと、仮想スクリーン6A(第1仮想スクリーン)を含む。仮想部屋7AのサイズはS(小)サイズである。仮想空間200Aを示す仮想空間データ(第1仮想空間データ)は、ユーザ端末1Aの制御部121によって生成される。
また、図13の状態(b)に示すように、ユーザCの仮想空間200Cは、ユーザ端末1C(第2ユーザ端末)に関連付けられたアバター4C(第2アバター)と、アバター4Cが配置される仮想部屋7Cとを含む。アバター4Cは、ユーザC(第2ユーザ)によって操作されると共に、ユーザCの動作に連動する。仮想空間200Cを示す仮想空間データは、ユーザ端末1Cの制御部121によって生成される。
次に、図12Aを参照すると、ステップS30において、ユーザCは、アバターAの仮想部屋7Aを訪問するための所定の操作入力を実行する。例えば、ユーザCは、HMD110上に表示されたメニュー画面中の「アバターAの仮想部屋を訪問する」等の項目を選択する。その後、ユーザ端末1Cの制御部121は、ユーザCからの操作入力に従って、アバター4Cがアバター4Aの仮想部屋7Aを訪問することを要求する訪問要求信号を生成した上で、当該訪問要求信号をサーバ2に送信する。
次に、ステップS31において、サーバ2の制御部23は、訪問要求信号をユーザ端末1Cから受信する。その後、制御部23は、仮想部屋7Aに現在配置されているアバターと仮想部屋7Aをこれから訪問するアバターとの総数Nに応じて、仮想部屋7Aを更新するべきか、つまり、仮想部屋7Aを拡大するべきかどうかを判定する(ステップS32)。仮想部屋に現在配置されているアバターと当該仮想部屋をこれから訪問するアバターとの総数Nと仮想部屋のサイズとの間の関係は、例えば、以下の通りである。
表1に示すアバターの総数Nと仮想部屋のサイズとの間の関係を示すテーブルは、サーバ2の記憶部22に記憶されてもよい。本例においては、仮想部屋7Aに現在配置されているアバターの数が2つ(アバター4A,4B)であると共に、仮想部屋7Aをこれから訪問するアバターの数が1つ(アバター4C)であることから、制御部23は、アバターの総数Nを3として特定する。その後、制御部23は、アバターの総数N=3と仮想部屋のサイズとの間の関係を示すテーブルに基づいて、アバター4Aの仮想部屋のサイズをSサイズからMサイズに変更すべきである、つまり、アバター4Aの仮想部屋のサイズを拡大すべきであると判定する(ステップS32でYES)。
その後、制御部23は、Mサイズの仮想部屋70A(図14参照)を記憶部22から取得した上で、Mサイズの仮想部屋70A(拡大された第1仮想部屋)と、アバター4A,4Bと、アバター4A,4Bの制御情報をユーザ端末1Cに送信する(ステップS33)。尚、図12中には記載されていないが、サーバ2は、アバター4A〜4Cの制御情報を1フレーム毎に取得しているものとする。また、仮想部屋7Aは、アバター4AのSサイズの仮想部屋であると共に、仮想部屋70Aは、アバター4AのMサイズの仮想部屋である。
ステップS34において、ユーザ端末1Cの制御部121は、仮想部屋70Aと、アバター4A,4Bと、アバター4A,4Bの制御情報を受信する。その後、制御部121は、仮想部屋70Aと、アバター4A〜4Cと、アバター4A〜4Cの制御情報に基づいて、仮想空間200C(図13の状態(b)参照)を示す仮想空間データを更新する(ステップS35)。具体的には、制御部121は、図14の状態(b)に示す仮想空間220Cを示す仮想空間データを生成する。図14の状態(b)に示すように、仮想空間220Cは、アバター4A,4B,4Cと、仮想部屋70Aとを含む。仮想部屋70Aは、仮想テーブル5Aと、仮想スクリーン60A(拡大された第1仮想スクリーン)とを含む。
その後、ユーザ端末1Cの制御部121は、HMD110の位置や傾きに応じて仮想カメラ300の視野CV(図7参照)を特定した上で、更新された仮想空間データと、仮想カメラ300の視野CVとに基づいて、HMD110に表示される視野画像を更新する(ステップS36)。このように、ユーザCは、アバターAの仮想部屋7Aを訪問するための所定の操作入力を実行すると、ユーザCに提示される仮想空間が仮想部屋7Cを含む仮想空間200C(図13の状態(b)参照)からアバター4Aの仮想部屋70Aを含む仮想空間220C(図14の状態(b)参照)に変更されるので、アバター4Cはアバター4Aの仮想部屋を訪問することが可能となる。
一方、ステップS37において、制御部23は、Mサイズの仮想部屋70A(拡大された第1仮想部屋)と、アバター4Cと、アバター4C,4Bの制御情報をユーザ端末1Aに送信する。次に、ステップS38において、ユーザ端末1Aの制御部121は、仮想部屋70Aと、アバター4Cと、アバター4C,4Bの制御情報を受信する。その後、制御部121は、仮想部屋70Aと、アバター4A〜4Cと、アバター4A〜4Cの制御情報に基づいて、仮想空間200A(図13の状態(a)を参照)を示す仮想空間データを更新する(ステップS39)。具体的には、制御部121は、図14の状態(a)に示す仮想空間220Aを示す仮想空間データを生成する。図14の状態(a)に示すように、仮想空間220Aは、アバター4A,4B,4Cと、仮想部屋70Aとを含む。仮想部屋70Aは、テーブル5Aと、仮想スクリーン60A(拡大された第1仮想スクリーン)とを含む。
図13の状態(a)及び図14の状態(a)に示すように、アバター4Aの仮想部屋のサイズが拡大されるようにアバター4Aの仮想部屋が仮想部屋7Aから仮想部屋70Aに更新されると、映像コンテンツを表示するための仮想スクリーンも仮想スクリーン6A(Sサイズ)から仮想スクリーン60A(Mサイズ)に更新される。つまり、仮想部屋のサイズの拡大に応じて、仮想部屋に配置される仮想スクリーンのサイズも拡大される。このように、アバターの総数Nの増加に伴い、仮想部屋のサイズが拡大されると共に、仮想スクリーンのサイズも拡大されるので、多数のユーザ(アバター)が同一の仮想部屋内で仮想スクリーンに表示される同一の映像コンテンツの視聴を楽しむことを促すことができる。したがって、ユーザ間における仮想部屋の訪問(ソーシャルVR)を促進することができる。尚、仮想部屋のサイズの拡大に応じて、仮想部屋に配置される家具(例えば、テーブル)のサイズも拡大されてもよい。
また、図13の状態(a)及び図14の状態(a)に示すように、アバター4A,4Bと仮想部屋7Aとの間の相対的位置関係が維持されるように、アバター4A,4Bは仮想部屋70Aに配置される。具体的には、仮想部屋70Aの中心点(又は、仮想部屋70Aに設定された座標空間)に対するアバター4A,4Bの相対位置は、仮想部屋7Aの中心点(又は、仮想部屋7Aに設定された座標空間)に対するアバター4A、4Bの相対位置と略一致する。このように、アバター4Aの仮想部屋が仮想部屋7Aから仮想部屋70Aに更新される前後で、ユーザAの視点(仮想カメラが配置されるアバター4Aの位置)が大きく変更されることが防止されるので、ユーザAのVR酔いを好適に防止することが可能となる。尚、アバター4Aの仮想部屋を訪問するアバター4Cは、仮想部屋70Aの所定位置(本例では、アバター4Aとアバター4Bの間の所定位置)に配置されてもよい。
図12Aに戻ると、その後、ユーザ端末1Aの制御部121は、HMD110の位置や傾きに応じて仮想カメラ300の視野CV(図7参照)を特定した上で、更新された仮想空間データと、仮想カメラ300の視野CVとに基づいて、HMD110に表示される視野画像を更新する(ステップS40)。
尚、図12Aでは、説明の便宜上、サーバ2と、ユーザ端末1A,1Cの動作処理のみが説明されているが、サーバ2は、ユーザ端末1Bについても仮想部屋70Aと、アバターCと、アバターC,Aの制御情報を送信する点に留意されたい。つまり、ユーザBに提供される仮想空間も更新される。当該更新された仮想空間は、テーブル5Aと仮想スクリーン60Aを有する仮想部屋70Aと、アバター4A〜4Cとを含む。
次に、図12Bを参照して、アバター4Aの仮想部屋のサイズを拡大すべきでないと判定する(ステップS32でNO)場合における処理について説明する。例えば、前提条件として、ユーザAの仮想部屋7Aにアバター4Bがいない場合、サーバ2の制御部23は、アバターの総数Nを2として特定する。そして、制御部23は、アバターの総数N=2と、アバターの総数Nと仮想部屋のサイズとの間の関係を示すテーブル(表1参照)に基づいて、アバター4Aの仮想部屋のサイズを拡大すべきでないと判定する(ステップS32でNO)。その後、制御部23は、Sサイズの仮想部屋7A(第1仮想部屋)と、アバター4Aと、アバター4Aの制御情報をユーザ端末1Cに送信する(ステップS41)。
次に、ユーザ端末1Cの制御部121は、仮想部屋7Aと、アバター4Aと、アバター4Aの制御情報を受信した後、仮想部屋7Aと、アバター4A,4Cと、アバター4A,4Cの制御情報に基づいて、仮想空間データを更新する(ステップS43)。具体的には、制御部121は、アバター4A,4Cと、仮想部屋7Aとを含む仮想空間を示す仮想空間データを生成する。その後、制御部121は、更新された仮想空間データと、仮想カメラ300の視野CVとに基づいて、HMD110に表示される視野画像を更新する(ステップS44)。
一方、ステップS45において、制御部23は、アバター4Cと、アバター4Cの制御情報をユーザ端末1Aに送信する。ステップS46において、ユーザ端末1Aの制御部121は、アバター4Cと、アバター4Cの制御情報を受信する。その後、制御部121は、仮想部屋7Aと、アバター4A,4Cと、アバター4A,4Cの制御情報に基づいて、仮想空間データを更新する(ステップS47)。具体的には、制御部121は、アバター4A,4Cと、仮想部屋7Aとを含む仮想空間を示す仮想空間データを生成する。その後、制御部121は、更新された仮想空間データと、仮想カメラ300の視野CVとに基づいて、HMD110に表示される視野画像を更新する(ステップS48)。このように、本実施形態に係る一連の処理が実行される。
本実施形態によれば、アバター4Aの仮想部屋7Aに現在配置されているアバターと仮想部屋7Aを訪問するアバターとの総数Nに応じて、アバター4Aの仮想部屋を更新するべきかどうかが判定され、アバター4Aの仮想部屋を更新するべきであると判定した場合に、アバター4Aの仮想部屋が仮想部屋7A(Sサイズ)から仮想部屋70A(Mサイズ)に更新される。このように、アバターの総数Nに応じて仮想部屋のサイズが拡大されるので、Sサイズの仮想部屋7Aに多数のアバターが配置されるといった各ユーザA〜Cにとって不快な状況を防ぐことが可能となる。したがって、ソーシャルVRにおけるユーザの仮想体験を改善することが可能な情報処理方法を提供することができる。
尚、仮想部屋70Aにアバター4A,4B,4Cが配置された状態で、アバター4Cが仮想部屋70Aを退出する場合、アバター4Aの仮想部屋がMサイズの仮想部屋70AからSサイズの仮想部屋7Aに更新されてもよい。つまり、アバターの総数Nに応じてアバター4Aの仮想部屋のサイズが縮小されてもよい。
また、表1に示したアバターの総数Nと仮想部屋のサイズとの間の関係はあくまでも一例であって、アバターの総数Nが1つずつ増加するに従って仮想部屋のサイズが徐々に拡大されてもよい。
また、本実施形態では、仮想空間データ及び視野画像データがユーザ端末1A〜1C側で生成されているが、これらのデータはサーバ2側で生成されてもよい。この場合、各ユーザ端末1A〜1Cは、サーバ2から送信された視野画像データに基づいて、HMD110に視野画像を表示する。
次に、ユーザA,B間で仮想スクリーン6Aに表示される映像コンテンツを視聴するための処理について図10、図15及び図16を参照して説明する。図15は、映像コンテンツを視聴する処理の一例を説明するためのシーケンス図である。図16の状態(a)は、映像コンテンツ料金テーブルの一例を示す図である。図16の状態(b)は、課金テーブルの一例を示す図である。本説明では、前提条件として、図10に示すように、アバター4Aとアバター4Bがアバター4Aの仮想部屋7Aに配置されているものとする。つまり、ユーザAとユーザBは、通信ネットワーク3を介して一つの仮想部屋7Aを共有しているものとする。
図15に示すように、ステップS50において、ユーザAは、映像コンテンツV1を視聴するための所定の操作入力を実行する。例えば、ユーザAは、HMD110上に表示されたメニュー画面中の「映像コンテンツV1を視聴する」等の項目を選択する。その後、ユーザ端末1Aの制御部121は、ユーザAからの操作入力に従って、映像コンテンツV1の視聴を要求するための視聴要求信号を生成した上で、当該視聴要求信号をサーバ2に送信する。
次に、サーバ2の制御部23は、視聴要求信号をユーザ端末1Aから受信する(ステップS51)。その後、制御部23は、記憶部22(又は通信ネットワーク3上に配置された映像コンテンツを保存するサーバ)から映像コンテンツV1を取得した上で、取得した映像コンテンツV1をユーザ端末1A,1Bに送信する(ステップS52)。尚、サーバ2は、時間分割された映像コンテンツV1を送信してもよい。つまり、サーバ2は、映像コンテンツV1をストリーミング配信してもよい。
次に、ユーザ端末1Aの制御部121は、映像コンテンツV1をサーバ2から受信する(ステップS53)。その後、制御部121は、映像コンテンツV1と、仮想部屋7Aと、アバター4A,4Bに基づいて、仮想空間データを更新する(ステップS54)。具体的には、制御部121は、テクスチャマッピングにより仮想スクリーン6A上に映像コンテンツV1を表示する。このように、制御部121は、映像コンテンツV1が表示された仮想スクリーン6Aを含む仮想空間200Aを示す仮想空間データを生成する。その後、制御部121は、更新された仮想空間データと、仮想カメラ300の視野CV(図7参照)に基づいて、HMD110に表示される視野画像を更新する(ステップS55)。
一方、ユーザ端末1Bの制御部121は、映像コンテンツV1をサーバ2から受信する(ステップS56)。その後、制御部121は、映像コンテンツV1と、仮想部屋7Aと、アバター4A,4Bに基づいて、仮想空間データを更新する(ステップS57)。具体的には、制御部121は、映像コンテンツV1が表示された仮想スクリーン6Aを含む仮想空間200Bを示す仮想空間データを生成する。その後、制御部121は、更新された仮想空間データと、仮想カメラ300の視野CV(図7参照)に基づいて、HMD110に表示される視野画像を更新する(ステップS58)。
次に、サーバ2の制御部23は、記憶部22に格納された課金テーブル(図16の状態(b)参照)を更新する(ステップS59)。具体的には、最初に、制御部23は、記憶部22に格納された映像コンテンツ料金テーブル(図16の状態(a)参照)を参照することで、映像コンテンツV1の視聴単価を特定する(本例では、映像コンテンツV1の視聴単価は300円)。次に、制御部23は、映像コンテンツV1の視聴単価に基づいて、課金テーブル中のユーザA,Bの課金データを更新する。図16に示すように、映像コンテンツの種類毎に視聴単価は異なってもよい(本例では、映像コンテンツV2の視聴単価は500円)。さらに、映像コンテンツを一つの仮想部屋を通じて複数のアバター間で視聴する場合、映像コンテンツの視聴単価に団体割引を適用してもよい。例えば、映像コンテンツV1を一つの仮想部屋(例えば、仮想部屋7A)を通じて所定人数以上のアバター間で視聴する場合、映像コンテンツV1の視聴単価を300円から200円にしてもよい。同様に、映像コンテンツV2を一つの仮想部屋(例えば、仮想部屋7A)を通じて所定人数以上のアバター間で視聴する場合、映像コンテンツV2の視聴単価を500円から300円にしてもよい。
次に、仮想部屋のサイズを更新せずに、仮想スクリーン6A(第1仮想スクリーン)を拡大させる処理について図17及び図18を参照して説明する。図17は、仮想スクリーン6Aを拡大させるための処理(詳細には、Sサイズの仮想スクリーン6AからMサイズの仮想スクリーン60A(拡大された第1仮想スクリーン)に更新するための処理)の一例を説明するためのシーケンス図である。図18の状態(a)は、仮想スクリーン6Aが拡大する前のユーザAに提供される仮想空間200Aを示す図である。図18の状態(b)は、仮想スクリーン6Aが拡大された後のユーザAに提供される仮想空間200Aを示す図である。本説明では、前提条件として、図18の状態(a)に示すように、アバター4Aとアバター4Bがアバター4Aの仮想部屋7Aに配置されているものとする。つまり、ユーザAとユーザBは、通信ネットワーク3を介して一つの仮想部屋7Aを共有しているものとする。
図17に示すように、ステップS60において、ユーザAは、仮想スクリーン6Aを拡大するための所定の操作入力を実行する。例えば、ユーザAは、HMD110上に表示されたメニュー画面中の「仮想スクリーンのサイズをMサイズに拡大する」等の項目を選択する。その後、ユーザ端末1Aの制御部121は、ユーザAからの操作入力に従って、仮想スクリーン6AのサイズをMサイズに拡大することを要求するスクリーン拡大要求信号をサーバ2に送信する。
次に、サーバ2の制御部23は、スクリーン拡大要求信号をユーザ端末1Aから受信する(ステップS61)。その後、制御部23は、記憶部22からMサイズの仮想スクリーン60Aを取得した上で、仮想スクリーン60A(拡大された仮想スクリーン)をユーザ端末1A,1Bに送信する(ステップS62)。
次に、ユーザ端末1Aの制御部121は、仮想スクリーン60Aをサーバ2から受信する(ステップS63)。その後、制御部121は、仮想スクリーン60Aと、仮想部屋7Aと、アバター4A,4Bに基づいて、仮想空間データを更新する(ステップS64)。具体的には、制御部121は、仮想スクリーンをSサイズの仮想スクリーン6AからMサイズの仮想スクリーン60Aに更新した上で、仮想スクリーン60Aを有する仮想部屋7Aと、アバター4A,4Bとを含む仮想空間200Aを示す仮想空間データを生成する。その後、制御部121は、更新された仮想空間データと、仮想カメラ300の視野CV(図7参照)に基づいて、HMD110に表示される視野画像を更新する(ステップS65)。
一方、ステップS66において、ユーザ端末1Bの制御部121は、仮想スクリーン60Aをサーバ2から受信する。その後、制御部121は、仮想スクリーン60Aと、仮想部屋7Aと、アバター4A,4Bに基づいて、仮想空間データを更新する(ステップS67)。具体的には、制御部121は、仮想スクリーンをSサイズの仮想スクリーン6AからMサイズの仮想スクリーン60Aに更新した上で、仮想スクリーン60Aを有する仮想部屋7Aと、アバター4A,4Bとを含む仮想空間を示す仮想空間データを生成する。その後、制御部121は、更新された仮想空間データと、仮想カメラ300の視野CV(図7参照)に基づいて、HMD110に表示される視野画像を更新する(ステップS68)。
次に、ステップS69において、サーバ2は、記憶部22に格納された課金テーブル(図16の状態(b)参照)を更新する。具体的には、最初に、制御部23は、映像コンテンツ料金テーブル(図16の状態(a)参照)を参照することで、スクリーン拡大要求に従って仮想スクリーンのサイズをMサイズに拡大するための必要な追加料金(仮想スクリーン拡大料金)を特定する。例えば、現在視聴している映像コンテンツが映像コンテンツV1である場合、制御部23は、仮想スクリーンのサイズをMサイズに拡大するために必要な仮想スクリーン拡大料金を500円として特定する。次に、制御部23は、特定された仮想スクリーン拡大料金(例えば、500円)に基づいて、課金テーブル中のユーザAの課金データを更新する。図16の状態(b)に示すように、ユーザA,BがSサイズの仮想スクリーン6Aを通じて映像コンテンツV1を視聴しているときに、ユーザAが所定の操作を通じて仮想スクリーンのサイズをMサイズに拡大した場合、映像コンテンツV1の視聴によりユーザAに課金される金額は、300円(映像コンテンツV1の視聴単価)+500円(仮想スクリーン拡大料金)=800円となる。尚、仮想スクリーン拡大料金は、仮想スクリーンの拡大を要求したユーザAのみが負担してもよいし、ユーザA,Bが折半してもよい。
本実施形態によれば、スクリーン拡大要求信号に応じて、アバター4Aの仮想スクリーンのサイズをMサイズに拡大するように当該仮想スクリーンが更新されると共に、ユーザAに課金される課金額が更新される。このように、アバター4Aの仮想部屋7Aに訪問するアバターが存在しない場合でも、アバター4Aは、所定の金額を支払うことで、大きい仮想スクリーンで映像コンテンツ等の動画の視聴を楽しむことができる。
また、本実施形態によれば、アバター4Aの仮想部屋のサイズの拡大(仮想部屋7A→仮想部屋70A)に応じて仮想スクリーンのサイズがMサイズに拡大(仮想スクリーン6A→仮想スクリーン60A)されたときにユーザAに課金される課金額は、スクリーン拡大要求信号に応じて仮想スクリーンのサイズがMサイズに拡大されたときにユーザAに課金される課金額よりも安くなることが好ましい。例えば、前者の課金額は、例えば、0円である一方、後者の課金額は、図16の状態(a)に示すように500円である。このように、前者の課金額が後者の課金額よりも安くなることで、多数のユーザが同一の仮想部屋内で同一の映像コンテンツの視聴を楽しむことを促すことができる。したがって、ユーザ間における仮想部屋の訪問(ソーシャルVR)を促進することができる。
また、サーバ2の制御部23(若しくはユーザ端末1の制御部121)によって実行される各種処理をソフトウェアによって実現するために、各種処理をコンピュータ(プロセッサ)に実行させるための制御プログラムが記憶部22(若しくは記憶部123)又はメモリに予め組み込まれていてもよい。または、制御プログラムは、磁気ディスク(HDD、フロッピーディスク)、光ディスク(CD−ROM,DVD−ROM、Blu−rayディスク等)、光磁気ディスク(MO等)、フラッシュメモリ(SDカード、USBメモリ、SSD等)等のコンピュータ読取可能な記憶媒体に格納されていてもよい。この場合、記憶媒体がサーバ2(若しくは制御装置120)に接続されることで、当該記憶媒体に格納された制御プログラムが、記憶部22(若しくは記憶部123)に組み込まれる。そして、記憶部22(若しくは記憶部123)に組み込まれた制御プログラムがRAM上にロードされて、プロセッサがロードされた当該プログラムを実行することで、制御部23(若しくは制御部121)は各種処理を実行する。
また、制御プログラムは、通信ネットワーク3上のコンピュータから通信インターフェースを介してダウンロードされてもよい。この場合も同様に、ダウンロードされた当該制御プログラムが記憶部22(若しくは記憶部123)に組み込まれる。
以上、本開示の実施形態について説明をしたが、本発明の技術的範囲が本実施形態の説明によって限定的に解釈されるべきではない。本実施形態は一例であって、特許請求の範囲に記載された発明の範囲内において、様々な実施形態の変更が可能であることが当業者によって理解されるところである。本発明の技術的範囲は特許請求の範囲に記載された発明の範囲及びその均等の範囲に基づいて定められるべきである。