[本開示が示す実施形態の説明]
本開示が示す実施形態の概要を説明する。
(1)ユーザの頭部に関連付けられた画像表示装置を介して仮想体験を前記ユーザに提供するためのプログラムであって、
第1シーン及び第2シーンを少なくとも含む複数のシーンで構成される動画コンテンツを取得するステップと、
前記仮想体験を提供するための仮想空間を定義するステップと、
前記動画コンテンツに基づいて、前記第1シーンを前記仮想空間に適合させて再生するステップと、
前記頭部の姿勢に応じて、前記仮想空間における仮想視点からの視界を制御するステップと、
前記第2シーンの基準方向を特定するステップと、
前記動画コンテンツの再生シーンを前記第1シーンから前記第2シーンに切り替えるステップと、
前記第2シーンに切り替えられたことに応じて、前記仮想視点の向きに前記基準方向を対応させて、前記第2シーンの再生を開始するステップと、
をコンピュータに実行させるための、プログラム。
上記プログラムによれば、ユーザの仮想体験を向上させることができる。特に、動画コンテンツの再生シーンを第1シーンから第2シーンへ切り替える際に、仮想視点の向きに基準方向を対応させて第2シーンの再生を開始するようにすることで、ユーザに新規で満足度の高い仮想体験を提供することができる。
(2)前記動画コンテンツは、360度動画のコンテンツであり、
前記第2シーンには、複数の前記基準方向が設定されており、
前記複数の基準方向の中から、前記第2シーンの再生開始時に採用される第1基準方向を選択するステップを更に含み、
前記特定するステップでは、前記第2シーンの基準方向として、前記第1基準方向を特定し、
前記再生を開始するステップでは、前記第2シーンに切り替えられたことに応じて、前記仮想視点の向きに前記第1基準方向を対応させて、前記第2シーンの再生を開始する、項目(1)に記載のプログラム。
上記プログラムによれば、360度動画内の特定の方向を第1基準方向として設定することで、動画コンテンツの内容等に応じた適切な方向に仮想視点が向いた状態で第2シーンの再生を開始することができるため、仮想体験をさらに向上させることができる。
(3)前記基準方向は、前記動画コンテンツの提供側により設定された第1視聴方向である、項目(1)または(2)に記載のプログラム。
上記プログラムによれば、動画コンテンツの提供側の意図する方向に仮想視線を向いた状態で第2シーンの再生を開始することができるため、仮想体験をさらに向上させることができる。
(4)前記基準方向は、前記ユーザにより設定された第2視聴方向である、項目(1)から(3)のいずれかに記載のプログラム。
上記プログラムによれば、ユーザが所望の方向を基準方向として選択することで、ユーザの嗜好に合った方向に仮想視点が向いた状態で第2シーンの再生を開始することができるため、動画コンテンツを視聴するユーザの満足度を向上させることができる。
(5)前記シーン毎に、前記基準方向として前記第2視聴方向を設定可能である、項目(4)に記載のプログラム。
上記プログラムによれば、ユーザの満足度をさらに向上させることができる。
(6)前記基準方向は、前記ユーザにより指定されたオブジェクトの方を向く第3視聴方向である、項目(1)から(5)のいずれかに記載のプログラム。
上記プログラムによれば、ユーザが選択したオブジェクトの方向に仮想視点が向いた状態で第2シーンの再生を開始することができるため、ユーザの満足度を向上させることができる。
(7)前記基準方向は、前記ユーザにより指定されたオブジェクトの方を向く第3視聴方向であり、
前記選択するステップでは、前記オブジェクトを選択することで、前記シーン毎に、前記第1基準方向として前記第3視聴方向を選択する、項目(2)に記載のプログラム。
上記プログラムによれば、ユーザの満足度をさらに向上させることができる。
(8)前記再生を開始するステップでは、前記第2シーンに切り替えられたことに応じて、前記仮想視点の奥行き方向の水平面上における向きに、前記第2シーンの前記基準方向の水平面上における向きを合わせて、前記第2シーンの再生を開始する、項目(1)から(7)のいずれかに記載のプログラム。
上記プログラムによれば、仮想視点の向きと基準方向の向きとを簡便に対応させることができる。
(9)ユーザの頭部に関連付けられた画像表示装置を介して仮想体験を前記ユーザに提供するための情報処理装置であって、
前記情報処理装置が備えるプロセッサの制御により、
第1シーン及び第2シーンを少なくとも含む複数のシーンで構成される動画コンテンツを取得するステップと、
前記仮想体験を提供するための仮想空間を定義するステップと、
前記動画コンテンツに基づいて、前記第1シーンを前記仮想空間に適合させて再生するステップと、
前記頭部の姿勢に応じて、前記仮想空間における仮想視点からの視界を制御するステップと、
前記第2シーンの基準方向を特定するステップと、
前記動画コンテンツの再生シーンを前記第1シーンから前記第2シーンに切り替えるステップと、
前記第2シーンに切り替えられたことに応じて、前記仮想視点の向きに前記基準方向を対応させて、前記第2シーンの再生を開始するステップと、
が実行される、情報処理装置。
上記情報処理装置によれば、ユーザの仮想体験を向上させることができる。
(10)ユーザの頭部に関連付けられた画像表示装置を介して仮想体験を前記ユーザに提供するためにコンピュータによって実行される情報処理方法であって、
第1シーン及び第2シーンを少なくとも含む複数のシーンで構成される動画コンテンツを取得するステップと、
前記仮想体験を提供するための仮想空間を定義するステップと、
前記動画コンテンツに基づいて、前記第1シーンを前記仮想空間に適合させて再生するステップと、
前記頭部の姿勢に応じて、前記仮想空間における仮想視点からの視界を制御するステップと、
前記第2シーンの基準方向を特定するステップと、
前記動画コンテンツの再生シーンを前記第1シーンから前記第2シーンに切り替えるステップと、
前記第2シーンに切り替えられたことに応じて、前記仮想視点の向きに前記基準方向を対応させて、前記第2シーンの再生を開始するステップと、
を含む、情報処理方法。
上記情報処理方法によれば、ユーザの仮想体験を向上させることができる。
[本開示が示す実施形態の詳細]
以下、本開示が示す実施形態について図面を参照しながら説明する。尚、本実施形態の説明において既に説明された要素と同一の参照番号を有する要素については、説明の便宜上、その説明は繰り返さない。
最初に、仮想空間配信システム100(情報処理システム)の構成の概略について図1を参照して説明する。図1は、仮想空間配信システム100(以下、単に配信システム100という。)の概略図である。図1に示すように、配信システム100は、ヘッドマウントデバイス(HMD)110を装着したユーザAによって操作されるユーザ端末1Aと、HMD110を装着したユーザBによって操作されるユーザ端末1Bと、サーバ2とを備える。ユーザ端末1A,1Bは、インターネット等の通信ネットワーク3を介してサーバ2に通信可能に接続されている。以降では、説明の便宜上、各ユーザ端末1A,1Bを単にユーザ端末1と総称する場合がある。各ユーザA,Bを単にユーザUと総称する場合がある。本実施形態では、ユーザ端末1A,1Bは、同一の構成を備えているものとする。尚、本実施形態において、仮想空間とは、VR(Virtual Reality)空間を含むものである。
次に、図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は、ユーザUの身体の一部(頭部以外の部位であり、本実施形態においてはユーザUの手)の動きを検知することにより、仮想空間内に表示される仮想手の動作を制御するために使用される。外部コントローラ320は、ユーザUの右手によって操作される右手用外部コントローラ320R(以下、単にコントローラ320Rという。)と、ユーザUの左手によって操作される左手用外部コントローラ320L(以下、単にコントローラ320Lという。)と、を有する。コントローラ320Rは、ユーザUの右手の位置や右手の手指の動きを示す装置である。コントローラ320Rの動きに応じて仮想空間内に存在する仮想の右手が動く。コントローラ320Lは、ユーザUの左手の位置や左手の手指の動きを示す装置である。コントローラ320Lの動きに応じて仮想空間内に存在する仮想の左手が動く。
制御回路部120は、例えば、HMD110を制御するように構成されたコンピュータである。制御回路部120は、位置センサ130から取得された情報に基づいて、HMD110の位置情報を特定し、当該特定された位置情報に基づいて、仮想空間における仮想カメラの位置と、現実空間におけるHMD110を装着したユーザUの位置を正確に対応付けることができる。さらに、制御回路部120は、位置センサ130及び/又は外部コントローラ320に内蔵されたセンサから取得された情報に基づいて、外部コントローラ320の動作を特定し、当該特定された外部コントローラ320の動作に基づいて、仮想空間内に表示される仮想手の動作と現実空間における外部コントローラ320の動作を正確に対応付けることができる。
次に、図3を参照することで、制御回路部120のハードウェア構成について説明する。図3は、制御回路部120のハードウェア構成を示す図である。図3に示すように、制御回路部120は、メモリ121と、プロセッサ122と、記憶媒体123と、I/O(入出力)インターフェース124と、通信インターフェース125と、バス126とを備える。メモリ121と、プロセッサ122と、記憶媒体123と、I/Oインターフェース124と、通信インターフェース125は、バス126を介して互いに通信可能に接続されている。
制御回路部120は、HMD110とは別体に、パーソナルコンピュータ、スマートフォン、ファブレット、タブレット又はウェアラブルデバイスとして構成されてもよいし、HMD110に内蔵されていてもよい。また、制御回路部120の一部の機能がHMD110に搭載されると共に、制御回路部120の残りの機能がHMD110とは別体の他の装置に搭載されてもよい。
メモリ121は、例えば、各種プログラム等が格納されたROM(Read Only Memory)やプロセッサ122により実行される各種プログラム等が格納される複数ワークエリアを有するRAM(Random Access Memory)等から構成される。プロセッサ122は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)及び/又はGPU(Graphics Processing Unit)であって、ROMに組み込まれた各種プログラムから指定されたプログラムをRAM上に展開し、RAMとの協働で各種処理を実行するように構成されている。
プロセッサ122は、制御プログラムをRAM上に展開し、RAMとの協働で制御プログラムを実行することで、制御回路部120の各種動作を制御してもよい。プロセッサ122は、視界画像データに基づいてHMD110の表示部112に視界画像を表示する。これにより、ユーザUは、仮想空間に没入することができる。
記憶媒体(ストレージ)123は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、USBフラッシュメモリ等の記憶装置であって、プログラムや各種データを格納するように構成されている。記憶媒体123は、本実施形態に係る情報処理方法の少なくとも一部をコンピュータに実行させるための制御プログラムや、複数のユーザによる仮想空間の共有を実現するための制御プログラムを格納してもよい。また、記憶媒体123には、ユーザUの認証プログラムや各種画像やオブジェクト(例えば、アバター等)に関するデータが格納されてもよい。さらに、記憶媒体123には、各種データを管理するためのテーブルを含むデータベースが構築されてもよい。
I/Oインターフェース124は、HMD110と、位置センサ130と、外部コントローラ320と、ヘッドフォン116と、マイク118とをそれぞれ制御回路部120に通信可能に接続するように構成されており、例えば、USB(Universal Serial Bus)端子、DVI(Digital Visual Interface)端子、HDMI(登録商標)(High―Definition Multimedia Interface)端子等により構成されている。尚、制御回路部120は、HMD110と、位置センサ130と、外部コントローラ320と、ヘッドフォン116と、マイク118とのそれぞれと無線接続されていてもよい。
通信インターフェース125は、制御回路部120をLAN(Local Area Network)、WAN(Wide Area Network)又はインターネット等の通信ネットワーク3に接続させるように構成されている。通信インターフェース125は、通信ネットワーク3を介してサーバ2等の外部装置と通信するための各種有線接続端子や、無線接続のための各種処理回路を含んでおり、通信ネットワーク3を介して通信するための通信規格に適合するように構成されている。
次に、図4を参照して、HMD110の位置や傾きに関する情報を取得する方法について説明する。図4は、HMD110を装着したユーザUの頭部を示す図である。HMD110を装着したユーザUの頭部の動きに連動したHMD110の位置や傾きに関する情報は、位置センサ130及び/又はHMD110に搭載されたHMDセンサ114により検出可能である。図4に示すように、HMD110を装着したユーザUの頭部を中心として、3次元座標(uvw座標)が規定される。ユーザUが直立する垂直方向をv軸として規定し、v軸と直交しHMD110の中心を通る方向をw軸として規定し、v軸及びw軸と直交する方向をu軸として規定する。位置センサ130及び/又はHMDセンサ114は、各uvw軸回りの角度(すなわち、v軸を中心とする回転を示すヨー角、u軸を中心とした回転を示すピッチ角、w軸を中心とした回転を示すロール角で決定される傾き)を検出する。制御回路部120は、検出された各uvw軸回りの角度変化に基づいて、仮想カメラの視軸を制御するための角度情報を決定する。
次に、図5を参照して、HMD110を装着したユーザUに提供される仮想空間5の概要を説明する。図5は、仮想空間5の一例を示すxyz空間図である。図5に示すように、仮想空間5は、中心51の360°方向全体を覆う全天球状の構造を有する。図5には、仮想空間5の全体のうち上半分の天球のみを例示する。仮想空間5には、略正方形または略長方形の複数のメッシュが関連付けられている。仮想空間5における各メッシュの位置は、仮想空間5に規定される空間座標系(XYZ座標系)における座標として、予め規定されている。制御回路部120は、仮想空間5に展開可能なコンテンツ(静止画、動画等)を構成する各部分画像を、仮想空間5における対応する各メッシュに対応付けることによって、ユーザによって視認可能な仮想空間画像52が展開される仮想空間5をユーザに提供する。
仮想空間5には、中心51を原点とするXYZ空間座標系が規定されている。XYZ座標系は、たとえばグローバル座標系に平行である。XYZ座標系は視点座標系の一種であるため、XYZ座標系における横方向、鉛直方向(上下方向)、及び前後方向を、それぞれX軸、Y軸、Z軸とする。すなわち、XYZ座標系のX軸(横方向)がグローバル座標系のx軸と平行であり、XYZ座標系のY軸(上下方向)がグローバル座標系のy軸と平行であり、XYZ座標系のZ軸(前後方向)がグローバル座標系のz軸と平行である。
HMD110の起動時(初期状態)においては、例えば、仮想空間5の中心51に仮想カメラ300が配置されている。仮想カメラ300は、現実空間内におけるHMD110の動きに連動して、仮想空間5内において同様に動く。これにより、現実空間内におけるHMD110の位置及び向きの変化が、仮想空間5内において同様に再現される。
仮想カメラ300には、HMD110と同様にuvw視野座標系が規定される。仮想空間5内における仮想カメラ300のuvw視野座標系は、現実空間(グローバル座標系)内におけるHMD110のuvw視野座標系に連動するように規定されている。したがって、HMD110の傾きが変化すると、それに連動して仮想カメラ300の傾きも変化する。仮想カメラ300は、HMD110を装着したユーザUの現実空間における移動に連動して、仮想空間5において移動することもできる。
仮想空間5における仮想カメラ300の位置及び傾きに応じて、仮想空間5における仮想カメラ300の向きが決まる。この仮想カメラ300の向き(仮想空間5における仮想視点の向き)により、仮想空間5に展開される仮想空間画像52をユーザUが視認する際の基準となる視線(基準視線L)が決まる。基準視線Lに基づいて、仮想空間5における視界領域53が決定される。視界領域53は、仮想空間5のうち、HMD110を装着したユーザUの視界に対応する領域である。
仮想カメラ300の視界領域(視野)53は、図6の状態(a)に示すxy平面において、基準視線Lを中心とした極角αの角度範囲として設定される第1領域53aと、図6の状態(b)に示すxz平面において、基準視線Lを中心とした方位角βの角度範囲として設定される第2領域53bとを有する。なお、プロセッサ122は、注視センサ140から送信されたユーザUの視線を示すデータに基づいてユーザUの視線を特定し、特定されたユーザUの視線とHMD110の位置や傾きに関する情報に基づいて、仮想カメラ300の向き(仮想カメラ300の基準視線L)を決定してもよい。
制御回路部120は、仮想空間画像52のうち視界領域53に重畳する部分である視界画像54をHMD110の表示部112に表示させることによって、ユーザUに仮想空間5を提供する。ユーザUがHMD110を動かせば、それに連動して仮想カメラ300も動き、その結果、仮想空間5における視界領域53の位置が変化する。これにより表示部112に表示される視界画像54が、仮想空間画像52のうち、仮想空間5においてユーザUが向いた箇所(すなわち、視界領域53)に重畳する画像に更新される。したがってユーザUは、仮想空間5における所望の箇所を視認することができる。
次に、図7を参照して、ユーザの視線方向を決定する方法について説明する。
注視センサ140によって検出されるユーザUの視線方向は、ユーザUが物体を視認する際の視点座標系における方向である。上述したように、HMD110のuvw視野座標系は、ユーザUが表示部112を視認する際の視点座標系に等しい。また、仮想カメラ300のuvw視野座標系は、HMD110のuvw視野座標系に連動している。
図7は、ユーザUの視線方向を決定する方法を例示する図である。図7に示すように、注視センサ140は、ユーザUの右目及び左目の視線を検出する。ユーザUが近くを見ている場合、注視センサ140は、ユーザUの視線R1及びL1を検出する。ユーザが遠くを見ている場合、注視センサ140は、ユーザの視線R1及びL1よりも、HMD110のロール方向(w)とのなす角が小さい視線R2及びL2を特定する。注視センサ140は、検出値を制御回路部120に送信する。
制御回路部120は、視線の検出値として視線R1及びL1を受信した場合、両者の交点である注視点N1を特定する。一方、視線R2及びL2を受信した場合も、両者の交点である注視点(不図示)を特定する。制御回路部120は、特定した注視点N1に基づき、ユーザUの視線方向NOを検出する。制御回路部120は、たとえば、ユーザUの右目Rと左目Lとを結ぶ直線の中点と、注視点N1とを通る直線の伸びる方向を、視線方向NOとして検出する。視線方向NOは、ユーザUが両目により実際に視線を向けている方向である。
次に、図8を参照することで、制御回路部120の機能的構成を説明する。図8は、制御回路部120の機能的構成を示すブロック図である。図8に示すように、制御回路部120は、HMDセンサ114、位置センサ130、注視センサ140、及び外部コントローラ320から受信した各種のデータを用いることによって、ユーザUに提供される仮想空間5を制御するとともに、HMD110の表示部112への画像表示を制御する。制御回路部120は、検出部210と、表示制御部220と、仮想空間制御部230と、記憶部240と、通信部250とを備えている。制御回路部120は、図3に示す各ハードウェアの協働によって、検出部210、表示制御部220、仮想空間制御部230、記憶部240、及び通信部250として機能する。検出部210、表示制御部220、及び仮想空間制御部230は、主としてメモリ121、プロセッサ122及びI/Oインターフェース124の協働によってその機能が実現され得る。記憶部240は、主としてメモリ121及び記憶媒体123の協働によってその機能が実現され得る。通信部250は、主としてプロセッサ122及び通信インターフェース125の協働によってその機能が実現され得る。通信部250は、ネットワーク3を介してサーバ2との間でデータを送受信する。
検出部210は、制御回路部120に接続される各種のセンサ(HMDセンサ114等)から検出値を受信する。また、必要に応じて、受信した検出値を用いた所定の処理を実行する。検出部210は、HMD検出部211と、視線検出部212と、操作受付部213とを備えている。HMD検出部211は、HMDセンサ114及び位置センサ130から検出値をそれぞれ受信する。視線検出部212は、注視センサ140から検出値を受信する。操作受付部213は、外部コントローラ320に対するユーザの操作に応じて送信された指令を受信することによって、当該操作を受け付ける。
表示制御部220は、HMD110の表示部112への画像表示を制御する。表示制御部220は、仮想カメラ制御部221と、視界領域決定部222と、視界画像生成部223とを備えている。仮想カメラ制御部221は、図5に示すように、仮想空間5内に仮想カメラ300を配置するとともに、仮想空間5内における仮想カメラ300の挙動を制御する。視界領域決定部222は、視界領域53を決定する。視界画像生成部223は、決定された視界領域53に基づき、表示部112に表示される視界画像54を生成する。
仮想空間制御部230は、ユーザUに提供される仮想空間5を制御する。仮想空間制御部230は、仮想空間規定部231と、視線管理部232と、コンテンツ特定部233と、コンテンツ管理部234とを備えている。仮想空間規定部231は、ユーザUに提供される仮想空間5を表す仮想空間データを生成することによって、配信システム100における仮想空間5を規定する。視線管理部232は、仮想空間5でのユーザUの基準視線Lを管理する。コンテンツ特定部233は、仮想空間5における再生対象のコンテンツを特定する。コンテンツ管理部234は、コンテンツの正面方向である初期方向を特定する。また、コンテンツ管理部234は、コンテンツのチャプタの切り替えを判定する。
記憶部240は、制御回路部120が仮想空間5をユーザUに提供するために用いる各種のデータを格納している。記憶部240は、雛形格納部241と、コンテンツ格納部242とを備えている。雛形格納部241は、各種の雛形データを格納している。コンテンツ格納部242は、各種のコンテンツのデータを格納している。
雛形データは、仮想空間5の雛形を表すデータである。雛形データは、仮想空間5の空間構造を規定する空間構造データを有する。空間構造データは、たとえば、中心51を中心とする360°の全天球の空間構造を規定するデータである。雛形データは、仮想空間5のXYZ座標系を規定するデータをさらに有する。雛形データは、天球を構成する各メッシュのXYZ座標系における位置を特定する座標データをさらに有する。また、雛形データは、仮想空間5内にオブジェクトを配置可能であるか否かを示すフラグをさらに有する。
コンテンツは、仮想空間5において再生可能なコンテンツである。コンテンツの例として、たとえば、プラットフォームコンテンツ及び視聴用コンテンツが挙げられる。
プラットフォームコンテンツは、ユーザUが視聴したい視聴用コンテンツを仮想空間5においてユーザUに選択させるための環境(プラットフォーム)に関するコンテンツである。このプラットフォームコンテンツが仮想空間5において再生されることによって、コンテンツ選択用のプラットフォームがユーザUに提供される。プラットフォームコンテンツは、背景画像、及びオブジェクトを規定するデータを少なくとも有する。
視聴用コンテンツは、たとえば静止画コンテンツまたは動画コンテンツである。静止画コンテンツは、背景画像を有する。動画コンテンツは、各フレームの画像(静止画)を少なくとも有する。動画コンテンツは、さらに音声データを有してもよい。
動画コンテンツは、たとえば、全天球カメラによって生成されるコンテンツである。全天球カメラは、全天球カメラのレンズを中心とした現実空間の全方向を一度に撮影することによって、全方向の画像を一度に生成することができるカメラである。全天球カメラによって得られる動画コンテンツを構成する各画像は歪んでいるが、動画コンテンツが仮想空間5において再生されるとき、各画像の歪みは、HMD110の表示部112を構成するレンズによってキャンセルされることによって解消される。したがって動画コンテンツの再生時、ユーザUは仮想空間5内において歪みのない自然な画像を視認することができる。
視聴用コンテンツには、HMD110の初期状態(起動時)にユーザUに見せる画像の方向である初期方向(正面方向)が予め規定されている。全天球カメラによって生成される動画コンテンツに規定される初期方向は、通常、動画コンテンツの撮影に用いた全天球カメラに規定される所定の撮影方向に一致する。なお、この初期方向を、撮影方向とは異なる方向に変更してもよい。具体的には、全天球カメラによる撮影後、得られた動画コンテンツを適宜編集することによって、撮影方向からずれた方向を初期方向として動画コンテンツに規定してもよい。
図9は、仮想空間5においてユーザUが視聴可能な視聴用コンテンツの一例として動画コンテンツCの構成を例示する図である。図9に示すように、動画コンテンツCは、チャプタC1〜チャプタCnの複数のチャプタ(シーンの一例)を含んでいる。動画コンテンツCは、チャプタC1からチャプタCnまでが繋ぎ合わされて構成されている。すなわち、動画コンテンツCは、時間的に連続するチャプタC1からチャプタCnまでの複数のチャプタに分割されている。
コンテンツ格納部242は、各動画コンテンツに関連付けられた情報テーブルを格納してもよい。図10は、コンテンツ格納部242に格納された動画コンテンツCに関連付けられた情報テーブルを示す図である。図10に示すように、情報テーブルは、動画コンテンツCの各チャプタC1〜Cnに対して予め規定された初期方向(正面方向)θ1〜θnの情報を含んでいる。初期方向θ1〜θnは、HMD110を装着したユーザUに見せる画像の方向(基準方向の一例)である。初期方向θ1〜θnは、HMD110に表示される視界領域53の中心(中心座標)を規定する方向であってもよい。また、初期方向θ1〜θnは、HMD110に表示される視界領域53のx軸方向、y軸方向、及びz軸方向の角度範囲を規定する方向であってもよい。
また、各チャプタC1〜Cnに対して複数の初期方向θ1〜θnが規定されてもよい。例えば、図10に示すように、情報テーブルは、初期方向θ1〜θnに対して、動画コンテンツCの提供側が規定するデフォルト初期方向α1〜αn(第1視聴方向の一例)を関連付けて保存し得る。デフォルト初期方向α1〜αnは、通常、動画コンテンツCの撮影に用いた全天球カメラに規定される所定の撮影方向に一致する。なお、デフォルト初期方向α1〜αnを、撮影方向とは異なる方向に変更してもよい。具体的には、全天球カメラによる撮影後、得られた動画コンテンツを適宜編集することによって、撮影方向からずれた方向をデフォルト初期方向α1〜αnとして規定してもよい。
また、情報テーブルは、初期方向θ1〜θnに対して、動画コンテンツCを視聴するユーザUが任意に指定するユーザ指定方向β1〜βn(第2視聴方向の一例)を関連付けて保存し得る。ユーザ指定方向β1〜βnは、ユーザUに提供されるコンテンツ選択用のプラットフォームを用いて、ユーザUが任意に指定することができる。
図10に示すように、デフォルト初期方向α1〜αn及びユーザ指定方向β1〜βnは、仮想空間5のXYZ座標系の座標値(x座標、y座標、z座標)により規定してもよい。また、デフォルト初期方向α1〜αn及びユーザ指定方向β1〜βnは、仮想空間5の緯度情報及び経度情報に基づいて規定してもよい。
さらに、情報テーブルは、初期方向θ1〜θnに対して、動画コンテンツCに含まれる各種オブジェクトのうち、ユーザUにより選択されたオブジェクト(選択オブジェクト)を関連付けて保存し得る。また、情報テーブルに保存されているデフォルト初期方向α1〜αn、ユーザ指定方向β1〜βn及び選択オブジェクトのうち、いずれをチャプタC1〜Cnの初期方向θ1〜θnとして規定すべきか(各項目の優先度)についての情報も、動画コンテンツCの情報テーブルに含まれ得る。例えば、デフォルト初期方向α1〜αnに加えてユーザ指定方向β1〜βn及び/又は選択オブジェクトが情報テーブルに含まれる場合は、デフォルト初期方向α1〜αnよりもユーザ指定方向β1〜βn及び/又は選択オブジェクトが優先されることとしてもよい。
次に、図1に示すサーバ2のハードウェア構成について図11を参照して説明する。図11は、サーバ2のハードウェア構成を示す図である。図11に示すように、サーバ2は、制御部23と、記憶部22と、通信インターフェース21と、バス24とを備える。制御部23と、記憶部22と、通信インターフェース21は、バス24を介して互いに通信可能に接続されている。制御部23は、メモリとプロセッサを備えており、メモリは、例えば、ROM及びRAM等から構成されると共に、プロセッサは、例えば、CPU、MPU及び/又はGPUにより構成される。
記憶部(ストレージ)22は、例えば、大容量のHDD等である。記憶部22は、本実施形態に係る情報処理方法の少なくとも一部をコンピュータに実行させるための制御プログラムや、複数のユーザによる仮想空間の共有を実現させるための制御プログラムを格納してもよい。また、記憶部22は、各ユーザを管理するためのユーザ管理情報や各種画像やオブジェクト(例えば、アバター等)に関するデータを格納してもよい。通信インターフェース21は、サーバ2を通信ネットワーク3に接続させるように構成されている。
次に、図12を参照して、配信システム100が仮想空間5をユーザUに提供する処理の方法について説明する。
仮想空間5は、基本的に、HMD110及び制御回路部120の協働によってユーザに提供される。図12に示す処理が開始されると、まず、ステップS1において、仮想空間規定部231が、ユーザUに提供される仮想空間5を表す仮想空間データを生成することによって、仮想空間5を規定する。仮想空間データの生成の手順は次の通りである。まず、仮想空間規定部231は、仮想空間5の雛形データを雛形格納部241から取得することによって、仮想空間5の原型を定義する。仮想空間規定部231は、さらに、仮想空間5において再生されるコンテンツを、コンテンツ格納部242から取得する。仮想空間規定部231は、取得した雛形データに、取得したコンテンツを適合することによって、仮想空間5を規定する仮想空間データを生成する。仮想空間規定部231は、仮想空間データにおいて、仮想空間5の天球を構成する各メッシュの管理データに、コンテンツに含まれる背景画像を構成する各部分画像を適宜関連付ける。仮想空間規定部231は、コンテンツに規定される初期方向を仮想空間5のXYZ座標系におけるZ方向に合致させるように、各部分画像と各メッシュとを関連付けることが好ましい。
仮想空間規定部231は、さらに、必要に応じて、コンテンツに含まれる各オブジェクトの管理データを仮想空間データに追加する。その際、仮想空間規定部231は、各管理データに、対応するオブジェクトが仮想空間5において配置される位置を表す座標を設定する。これにより各オブジェクトが、仮想空間5における当該座標の位置にそれぞれ配置される。
その後、ユーザUによってHMD110が起動されると、ステップS2において、HMDセンサ114が、HMD110の初期状態における位置及び傾きを検出する。次に、ステップS3において、HMDセンサ114は、検出値を制御回路部120に出力する。次に、制御回路部120のHMD検出部211は、この検出値を受信し、ステップS4において、仮想カメラ制御部221は、仮想空間5において仮想カメラ300を初期化する。
仮想カメラ300の初期化の手順は次の通りである。まず、仮想カメラ制御部221は、仮想空間5内における初期位置(図5における中心51等)に、仮想カメラ300を配置する。次に、仮想カメラ制御部221は、仮想空間5における仮想カメラ300の向きを設定する。その際、仮想カメラ制御部221は、HMDセンサ114からの検出値に基づき初期状態のHMD110のuvw視野座標系を特定すると共に、HMD110のuvw視野座標系に一致するuvw視野座標系を仮想カメラ300に設定することによって、仮想カメラ300の向きを設定すればよい。仮想カメラ制御部221は、仮想カメラ300にuvw視野座標系を設定する際、仮想カメラ300のロール方向(w軸)をXYZ座標系のZ方向(Z軸)に適合させる。具体的には、仮想カメラ制御部221は、仮想カメラ300のロール方向(奥行き方向)をxz平面に投影して得られる方向を、XYZ座標系のZ方向に一致させると共に、xz平面に対する仮想カメラ300のロール方向の傾きを、水平面に対するHMD110のロール方向の傾きに一致させる。このような適合処理によって、初期状態の仮想カメラ300のロール方向がコンテンツの初期方向に適合されるので、コンテンツの再生開始後におけるユーザが最初に向く水平方向の向きを、コンテンツの初期方向に一致させることができる。
仮想カメラ300の初期化処理が終わると、ステップS5において、視界領域決定部222は、仮想カメラ300のuvw視野座標系に基づき、仮想空間5における視界領域53を決定する。具体的には、視界領域決定部222は、仮想カメラ300のuvw視野座標系のロール方向(w軸)をユーザUの基準視線Lとして特定し、この基準視線Lに基づき視界領域53を決定する。次に、ステップS6において、視界画像生成部223は、仮想空間データを処理することによって、仮想空間5に展開される仮想空間画像52の全体のうち、仮想空間5における視界領域53に投影される部分に相当する視界画像54を生成(レンダリング)する。次に、ステップS7において、視界画像生成部223は、生成した視界画像54を初期視界画像としてHMD110に出力する。
次に、ステップS8において、HMD110は、受信した初期視界画像を表示部112に表示する。これにより、ユーザUは初期視界画像を視認する。
その後、ステップS9において、HMDセンサ114が、HMD110の現在の位置及び傾きを検出して、ステップS10において、これらの検出値を制御回路部120に出力する。
制御回路部120のHMD検出部211により各検出値を受信した後に、ステップS11において、仮想カメラ制御部221は、当該検出値に基づいて、HMD110の視界方向を特定する。具体的には、仮想カメラ制御部221は、HMD110の位置及び傾きの検出値に基づき、HMD110における現在のuvw視野座標系を特定し、XYZ座標系におけるuvw視野座標系のロール方向(w軸)をHMD110の視界方向として特定する。
次に、ステップS12において、仮想カメラ制御部221が、特定したHMD110の視界方向を、仮想空間5におけるユーザUの基準視線Lとして特定する。次に、ステップS13において、仮想カメラ制御部221は、特定した基準視線Lに基づき、仮想カメラ300を制御する。基準視線Lの位置(起点)及び方向が仮想カメラ300の初期状態と同一であれば、仮想カメラ制御部221は、仮想カメラ300の位置及び方向をそのまま維持する。一方、基準視線Lの位置(起点)及び/または方向が仮想カメラ300の初期状態から変化していれば、仮想カメラ制御部221は、仮想空間5内における仮想カメラ300の位置及び/または傾きを、変化後の基準視線Lに応じた位置及び/または傾きに変更する。また、仮想カメラ制御部221は、制御後の仮想カメラ300に対してuvw視野座標系を再設定する。
次に、ステップS14において、視界領域決定部222は、ステップS12で特定した基準視線Lに基づき、仮想空間5における視界領域53を決定する。その後、ステップS15において、視界画像生成部223は、仮想空間データを処理することによって、仮想空間5に展開される仮想空間画像52の全体のうち、仮想空間5における視界領域53に投影(重畳)される部分である視界画像54を生成(レンダリング)する。その後、ステップS16において、視界画像生成部223は、生成した視界画像54を更新用の視界画像(更新視界画像)としてHMD110に出力する。そして、ステップS17において、HMD110は、受信した更新視界画像54を表示部112に表示することによって、視界画像54を更新する。このような処理により、ユーザUがHMD110を動かせば、それに連動してHMD110の表示部112に表示される視界画像54が更新される。
図12に示すステップS9〜S16の処理は、1フレーム(動画を構成する静止画像)毎に実行されてもよい。例えば、動画のフレームレートが90fpsである場合、ステップS9〜S16の処理はΔT=1/90(秒)間隔で繰り返し実行されてもよい。このように、ステップS9〜S16の処理が所定間隔ごとに繰り返し実行されるため、HMD110の動作に応じて仮想カメラ300の視野が更新されると共に、HMD110の表示部112に表示される視界画像54が更新される。
なお、図12に示す各ステップで規定される処理の順番はあくまでも一例であって、これらのステップの順番は適宜変更可能である。図12に示す例においては、制御回路部120は、コンテンツに規定される初期方向を仮想空間5のXYZ座標系におけるZ方向に合致させるようにして仮想空間データを生成した後で、HMD110の位置及び傾きを検出し、この検出値に基づいて、仮想カメラ300のロール方向(w軸)をXYZ座標系のZ方向(Z軸)に適合させるように仮想空間データを処理して視界領域53に投影される部分である視界画像54を生成するという方式を採用しているが、この例に限られない。別の例として、制御回路部120は、HMDセンサ114により検出されたHMD110の位置及び傾きに基づいて仮想カメラ300のロール方向(w軸)を特定しておき、仮想カメラ300のロール方向の水平面上における方向にコンテンツの初期方向の水平面上における方向を一致させるように仮想空間5のXYZ座標系を設定して仮想空間データ(すなわち、視界画像54をHMD110に表示するための視界画像データ)を生成して、生成された視界画像データを視界画像54としてHMD110に出力するようにしてもよい。このような方式を採用した場合には、基準視線Lにコンテンツの初期方向を適合させるようにして仮想空間データ(視界画像データ)が生成されるため、図12に示す例と同様に、コンテンツの再生開始時にユーザが最初に向く方向を、コンテンツの初期方向と一致させることができる。
次に、図13を参照して、本実施形態に係る動画コンテンツの再生処理の方法について説明する。図13は、本実施形態に係る配信システム100において、ユーザUがプラットフォームを用いて選択した動画コンテンツCを仮想空間5において再生する処理の流れを示すシーケンス図である。
図13に示す処理が開始されると、まず、ステップS21において、制御回路部120の仮想空間規定部231は、プラットフォーム提供用の仮想空間5を表す仮想空間データを生成する。すなわち、仮想空間規定部231は、プラットフォーム提供用の仮想空間5を規定する。具体的には、仮想空間規定部231は、コンテンツ格納部242に格納される一定数の視聴用コンテンツ(例えば、複数の動画コンテンツ)の概要画像(サムネイル)を、それぞれ取得し、各サムネイルを、仮想空間データ内のいずれかのオブジェクトの管理データに関連付ける。これにより、仮想空間5に配置される各オブジェクトに、サムネイルが関連付けられる。対応するサムネイルがオブジェクトに関連付けられた各視聴用コンテンツは、ユーザUが仮想空間5において再生させるために選択可能な動画コンテンツの候補(候補動画コンテンツ)である。ユーザUは、サムネイルの選択を通じて、当該サムネイルに対応する候補動画コンテンツを選択することができる。
次に、ステップS22において、視界画像生成部223は、視界領域決定部222により決定された視界領域53に基づき、プラットフォームの仮想空間データから視界画像54を生成する。次に、ステップS23において、視界画像生成部223は、生成した視界画像54をHMD110に出力する。
次に、ステップS24において、HMD110は、受信した視界画像54を表示部112に表示する。プラットフォームの視界画像54が表示部112に表示された後、ステップS25において、HMDセンサ114及び/又は位置センサ130は、HMD110の向きを検出する。そして、HMD110は、ステップS26において、HMDセンサ114及び/又は位置センサ130で検出された各検出値を制御回路部120に送信する。
次に、ステップS27において、制御回路部120の視線検出部212は、受信したHMDセンサ114及び/又は位置センサ130の検出値を用いて、仮想カメラ300の基準視線Lを特定する。
次に、ステップS28において、制御回路部120の視線管理部232は、特定された基準視線Lと、視界領域53に含まれる各サムネイルとに基づき、視界画像54に含まれる特定のサムネイルに規定時間以上基準視線Lが当たったか否かを判定する。
ステップS28において、視界画像54に含まれる特定のサムネイルに規定時間以上基準視線Lが当たっていないと判定された場合(ステップS28のNO)、視線管理部232は、処理をステップS27に戻す。
一方、ステップS28において、視界画像54に含まれる特定のサムネイルに規定時間以上基準視線Lが当たったと判定された場合(ステップS28のYES)、ステップS29において、コンテンツ特定部233は、規定時間以上基準視線Lが当たったと判定されたサムネイルに対応する動画コンテンツを特定する。すなわち、コンテンツ特定部233は、プラットフォームにおいてユーザによって選択された候補動画コンテンツを、仮想空間5において再生させる動画コンテンツとして特定する。本例では、ユーザUが図9に示すチャプタC1〜Cnから構成される動画コンテンツCに対応するサムネイルを選択し、コンテンツ特定部233が動画コンテンツCを仮想空間5において再生させるコンテンツとして特定したものとする。
なお、注視センサ140によりユーザの視線を検出し、この検出値を用いて、ユーザの視線が規定時間以上当たったと判定されたサムネイルに対応する動画コンテンツを特定してもよい。
次に、ステップS30において、仮想空間規定部231は、特定された動画コンテンツCを再生するためのコンテンツ再生用の仮想空間データを生成することによって、動画コンテンツ再生用の仮想空間5を規定する。具体的には、まず、仮想空間規定部231は、動画コンテンツCに対応した仮想空間5の雛形データを、雛形格納部241から取得する。そして、仮想空間規定部231は、コンテンツ特定部233によって特定された動画コンテンツCを、コンテンツ格納部242から取得する。仮想空間規定部231は、取得した雛形データに、取得した動画コンテンツCを適合することによって、動画コンテンツCの再生用の仮想空間5を規定する仮想空間データを生成する。仮想空間規定部231は、仮想空間データにおいて、仮想空間5の天球を構成する各メッシュの管理データに、動画コンテンツCに含まれる最初のフレームの画像を構成する各部分画像を適宜関連付ける。このようにして、特定された動画コンテンツCを再生するための仮想空間データが生成される。
動画コンテンツ再生用の仮想空間5を表す仮想空間データの生成後、ステップS31において、視界領域決定部222は、仮想カメラ300の基準視線Lに基づき視界領域53を決定する。
次に、ステップS32において、コンテンツ管理部234は、コンテンツ格納部242に格納された情報テーブル(図10参照)に基づいて、動画コンテンツCの初期方向(すなわち、チャプタC1の初期方向θ1)を特定する。チャプタC1の初期方向θ1は、例えば、デフォルト初期方向α1(αx1,αy1,αz1)により規定されてもよい。また、チャプタC1に対して、ユーザ指定方向β2(βx1,βy1,βz1)が設定されている場合には、初期方向θ1は、ユーザ指定方向β1により規定されてもよい。
次に、ステップS33において、視界画像生成部223は、ステップS31で決定された視界領域53とステップS32で決定された動画コンテンツCのチャプタC1の初期方向θ1とに基づき、動画コンテンツCの仮想空間データから視界画像54を生成する。具体的には、視界画像生成部223は、視界領域53(基準視線L)に初期方向θ1を対応させて視界画像54を生成する。その後、ステップS34において、視界画像生成部223は、生成した視界画像54をHMD110に出力する。
ステップS35において、HMD110は、受信した視界画像54を表示部112に表示することによって、動画コンテンツCのチャプタC1(第1シーンの一例)の再生を開始する。図14に示すように、HMD110で動画コンテンツのチャプタC1の再生が開始された時点では、仮想カメラ300の基準視線Lに仮想空間5における動画コンテンツのチャプタC1の初期方向θ1が一致した状態で視界画像54が表示される。これにより、ユーザUは、チャプタC1の初期方向θ1を正面としてチャプタC1の視界画像54の視認を開始する。なお、本例においては、図14に示すように、動画コンテンツCの提供側が規定するデフォルト初期方向α1により初期方向θ1が特定されている。
図15に示すように、ユーザUがHMD110を動かせば、その動きに連動して、仮想空間5内で基準視線Lが移動し、視界画像54が更新される。したがって、ユーザUは、HMD110を適宜動かすことによって、動画コンテンツCのチャプタC1を構成する各フレームの全天球画像における所望の位置の部分画像(視界画像54)を、視認することができる。すなわち、チャプタC1の再生開始後にユーザUがHMD110を動かすことで、仮想カメラ300の基準視線LとチャプタC1の初期方向θ1とが一致しない状態となる。
次に、ステップS36において、コンテンツ管理部234は、動画コンテンツCの再生中のチャプタC1の次のチャプタであるチャプタC2(第2シーンの一例)の初期方向θ2を特定する。コンテンツ管理部234は、コンテンツ格納部242に格納された動画コンテンツCの情報テーブルCTを参照して、チャプタC2(第2シーンの一例)の初期方向θ2を特定する。チャプタC2の初期方向θ2は、例えば、デフォルト初期方向α2(αx2,αy2,αz2)により規定されてもよい。また、チャプタC2に対して、ユーザ指定方向β2(βx1,βy2,βz2)が設定されている場合には、初期方向θ2は、ユーザ指定方向β2により規定されてもよい。さらに、図10に示すように、チャプタC2に対して、選択オブジェクトOb1が設定されている場合には、初期方向θ2は、選択オブジェクトOb1を向く方向に規定されてもよい。
次に、ステップS37において、コンテンツ管理部234は、チャプタC1の再生が終了したか否かを判定する。コンテンツ管理部234は、例えば、記憶部240のコンテンツ格納部242に記憶された動画コンテンツCの各チャプタC1〜Cnの時間に関する情報と、各チャプタC1〜Cnの再生開始からの経過時間とに基づいて、各チャプタC1〜Cnの再生が終了したか否かを判定することができる。
コンテンツ管理部234によりチャプタC1の再生が終了したと判定された場合には(ステップS37のYES)、ステップS38において、視界領域決定部222は、チャプタC1の再生終了時の仮想カメラ300の基準視線Lに基づき、視界領域53を決定する。
次に、ステップS39において、視界画像生成部223は、ステップS38で決定された視界領域53とステップS36で決定された動画コンテンツCのチャプタC2の初期方向θ2とに基づき、動画コンテンツCの仮想空間データからチャプタC2の視界画像54を生成する。具体的には、視界画像生成部223は、視界領域53(基準視線L)に初期方向θ2を一致させるようにして、チャプタC2の視界画像54を生成する。視界画像生成部223は、例えば、基準視線Lの奥行き方向の水平面上における向きに、チャプタC2の初期方向θ2の奥行き方向の水平面上における向きを一致させるようにして視界画像54を生成する。なお、上述の通り、仮想カメラ制御部221は、仮想カメラ300のロール方向をxz平面に投影して得られる方向を、XYZ座標系のZ方向に一致させると共に、xz平面に対する仮想カメラ300のロール方向の傾きを、水平面に対するHMD110のロール方向の傾きに一致させている。このような適合処理によって、仮想カメラ300のロール方向(基準視線L)とチャプタC2の初期方向θ2が対応付けられるので、チャプタC2の再生開始後におけるユーザUが最初に向く水平方向の向きを、チャプタC2の初期方向θ2に一致させることができる。
次に、ステップS40において、視界画像生成部223は、生成したチャプタC2の視界画像54をHMD110に出力する。
ステップS41において、HMD110は、受信した視界画像54を表示部112に表示することによって、仮想空間5における動画コンテンツCのチャプタC2の再生を開始する。図16に示すように、ステップS41においてチャプタC2の再生が開始された時点では、仮想カメラ300の基準視線LにチャプタC2の初期方向θ2が一致している。すなわち、チャプタC1の再生終了時点での基準視線Lの向きにチャプタC2の初期方向θ2が一致した状態でチャプタC2の再生が開始される。これにより、ユーザUは、チャプタC2の視界画像54の初期方向θ2から当該視界画像54の視認を開始することができる。その後、動画コンテンツCのチャプタC3以降の再生処理についても、ステップS36〜ステップS41までの処理と同様の処理が繰り返される。
なお、図13に示す各ステップで規定される処理の順番はあくまでも一例であって、これらのステップの順番は適宜変更可能である。図13に示す例においては、制御回路部120は、動画コンテンツCに規定される初期方向を仮想空間5のXYZ座標系におけるZ方向に合わせるようにしてコンテンツ再生用の仮想空間データを生成してから、各チャプタC1〜Cnの再生開始時の仮想カメラ300の基準視線Lに基づいて各チャプタC1〜Cnの視界領域53を決定し、決定された視界領域53(基準視線L)に各チャプタC1〜Cnの初期方向θ1〜θnを一致させるようにして仮想空間データを処理して各チャプタC1〜Cnの視界画像54を生成するという方式を採用しているが、この例に限られない。別の例として、制御回路部120のコンテンツ格納部242には動画コンテンツCのチャプタごとにコンテンツデータが格納されており、制御回路部120は、各チャプタC1〜Cnの再生開始時において、まず、仮想カメラ300の基準視線Lを特定しておき、特定された基準視線Lに各チャプタC1〜Cnの初期方向θ1〜θnを一致させるように仮想空間5のXYZ座標系を設定して各チャプタC1〜Cnの仮想空間データ(視界画像データ)を生成し、当該視界画像データを視界画像54としてHMD110に出力するようにしてもよい。このように、チャプタの切り替え時の基準視線Lと各チャプタC1〜Cnの初期方向とに基づいてチャプタごとに視界画像データを生成し直すことで、図13に示す例と同様に、各チャプタC1〜Cnの再生開始後におけるユーザUが最初に向く水平方向の向きを、各チャプタC1〜Cnの初期方向θ1〜θnに一致させることができる。
以上説明したように、本実施形態においては、制御回路部120は、HMD110を介して仮想体験をユーザUに提供する際に、チャプタC1及びチャプタC2を少なくとも含む複数のチャプタで構成される動画コンテンツCを取得し、仮想体験をユーザUに提供するための仮想空間5を定義し、取得した動画コンテンツCに基づいてチャプタC1を仮想空間5に適合させて再生し、HMD110を装着したユーザUの頭部の姿勢に応じて仮想空間5における視界領域53を制御するように構成されている。さらに、制御回路部120は、チャプタC2の初期方向θ2を特定し、動画コンテンツCの再生シーンをチャプタC1からチャプタC2に切り替え、再生シーンがチャプタC2に切り替えられたことに応じて仮想視点の向き(基準視線L)にチャプタC2の初期方向θ2を対応させてチャプタC2の再生を開始するように構成されている。すなわち、例えばチャプタC2の正面方向がチャプタC2の初期方向θ2として規定されている場合には、チャプタC1の再生が終了した時点でユーザUの視線がどの方向を向いていたとしても、チャプタC2の再生開始時には、ユーザUにチャプタC2の正面方向を見せることができる。これにより、ユーザUに新規で満足度の高い仮想体験を提供することができ、ユーザUの仮想体験を向上させることができる。
また、例えば360度動画のコンテンツである動画コンテンツCの各チャプタC1〜Cnには、複数の初期方向θ1〜θn(例えば、デフォルト初期方向α1〜αnおよびユーザ指定方向β1〜βn)がそれぞれ設定されていてもよい。制御回路部120は、チャプタC2に対して設定された複数の初期方向θ2の中から、チャプタC2の再生開始時に採用されるべき方向(第1基準方向の一例)を特定し、再生シーンがチャプタC1からチャプタC2に切り替えられたことに応じて、基準視線Lに第1基準方向を対応させてチャプタC2の再生を開始するように構成されていてもよい。各チャプタC1〜Cnに対して複数の初期方向が設定されている場合には、このように、予め規定された複数の初期方向から特定の方向を第1基準方向として設定することで、動画コンテンツCの内容等に応じた適切な方向に基準視線Lが向いた状態で各チャプタC1〜Cnの再生を開始することができる。そのため、ユーザUの仮想体験をさらに向上させることができる。
また、各チャプタC1〜Cnに設定される初期方向θ1〜θnは、動画コンテンツCの提供側により設定されたデフォルト初期方向α1〜αn(第1視聴方向)であってもよい。これにより、動画コンテンツCの提供側の意図する方向に基準視線Lが向いた状態で各チャプタC1〜Cnの再生を開始することができるため、ユーザUの仮想体験をさらに向上させることができる。
なお、各チャプタC1〜Cnに設定される初期方向θ1〜θnは、ユーザUにより任意で設定されたユーザ指定方向β1〜βn(第2視聴方向)であってもよい。この場合、例えば、動画コンテンツCを選択する際に用いられるプラットフォーム上にて、初期方向θ1〜θnとして任意の方向を設定するためのメニューがユーザUに対して提示されてもよい。ユーザUが、好みのユーザ指定方向β1〜βnを初期方向θ1〜θnとして選択することで、ユーザUの嗜好に合った方向に基準視線Lが向いた状態でチャプタC2の再生を開始することができる。これにより、動画コンテンツCの提供側により各チャプタC1〜Cnに設定されたデフォルト初期方向α1〜αn(すなわち、動画コンテンツCの提供側が意図する正面方向)以外のマニアックな視点から各チャプタC1〜Cnの視聴を開始したいユーザUが所望の場面を確実に見逃さないようにすることができ、ユーザUの満足度を向上させることができる。
なお、本実施形態においては、上述の通り、複数のチャプタC1〜Cnのそれぞれに対して、ユーザUが初期方向θ1〜θnとして任意のユーザ指定方向を設定可能である。これにより、動画コンテンツの場面ごとにユーザUの嗜好を反映させた視界画像を提供することができるため、ユーザUの満足度をさらに向上させることができる。
また、各チャプタC1〜Cnに設定される初期方向θ1〜θnは、仮想空間5内に配置され、ユーザUにより選択された所定のオブジェクト(選択オブジェクト)の方を向く方向(第3視聴方向)であってもよい。例えば、図17に示すように、動画コンテンツC内に複数の人物Ob1〜Ob3が登場する場合(コンサートなど)に、制御回路部120は、動画コンテンツCを選択する際に用いられるプラットフォーム上にて、特定の人物を選択するためのメニューをユーザUに対して提示してもよい。ユーザUがチャプタC2における選択オブジェクトとしてオブジェクトOb1を選択すると、制御回路部120は、その選択されたオブジェクトOb1の方を向く方向をチャプタC2の初期方向θ2として設定し得る。この方法によれば、基準視線LにユーザUが選択したオブジェクトの方向を合わせた状態で各チャプタC1〜Cnの再生を開始することができるため、ユーザUの満足度を向上させることができる。
なお、動画コンテンツの複数のチャプタC1〜Cnのそれぞれに対して、ユーザUが異なるオブジェクトを選択することで、各チャプタC1〜Cnに対して異なる初期方向θ1〜θnを設定可能にしてもよい。これにより、場面に応じてユーザUが見たいものが変化した場合でも、ユーザUの嗜好に応じた方向で各チャプタC1〜Cnの視聴を開始することができるため、ユーザUの満足度をさらに向上させることができる。
また、制御回路部120は、チャプタC1からチャプタC2へと再生シーンが切り替えられたことに応じて、基準視線Lの奥行き方向の水平面上における向きに、チャプタC2の初期方向θ2の水平面上における向きを合わせて、チャプタC2の再生を開始することが好ましい。これにより、基準視線Lの向きと初期方向θ2の向きとを簡便且つ適切に対応させることができる。
また、上記の実施形態の説明では、仮想空間5を示す仮想空間データがユーザ端末1側で更新されていることを前提としているが、仮想空間データはサーバ2側で更新されてもよい。さらに、視界画像に対応する視界画像データがユーザ端末1側で更新されていることを前提としているが、視界画像データはサーバ2側で更新されてもよい。この場合、ユーザ端末1は、サーバ2から送信された視界画像データに基づいて、HMD110に視界画像を表示する。
また、上記の実施形態においては、視聴用コンテンツを再生するためのデータが制御回路部120のコンテンツ格納部242に予め記憶されているが、この例に限られない。例えば、360動画等の視聴用コンテンツのデータはサーバ2の記憶部22に格納されていてもよい。この場合は、制御回路部120は、ユーザ入力に基づいて視聴用コンテンツのデータの配信要求を示す配信要求信号を生成し、当該配信要求信号をサーバ2へ送信する。サーバ2は、受信した配信要求信号に基づいて、当該配信要求信号に対応する動画コンテンツのデータを制御回路部120へ配信する。このように、サーバ2が動画コンテンツのデータをユーザ端末1にストリーミング形式で配信する構成としてもよい。また、図10に示す情報テーブルに含まれるユーザ指定方向β1〜βnや選択オブジェクトに関する情報についても、制御回路部120のコンテンツ格納部242に予め規定されている構成に限られず、サーバ2からストリーミング形式で配信される構成としてもよい。
また、本実施形態においては、HMD110によってユーザが没入する仮想空間(VR空間)を例示して説明したが、HMDとして、透過型のHMDを採用してもよい。この場合、透過型のHMDを介してユーザが視認する現実空間に仮想空間を構成する画像の一部を合成した視界画像を出力することにより、拡張現実(AR:Augumented Reality)空間または複合現実(MR:Mixed Reality)空間における仮想体験をユーザに提供してもよい。
また、仮想カメラ300は、左目用仮想カメラと右目用仮想カメラを含んでもよい。この場合、制御回路部120は、仮想空間データと左目用仮想カメラの視野に基づいて、左目用の視界画像を示す左目用視界画像データを生成する。さらに、制御回路部120は、仮想空間データと、右目用仮想カメラの視野に基づいて、右目用の視界画像を示す右目用視界画像データを生成する。その後、制御回路部120は、左目用視界画像データに基づいて、左目用表示部に左目用の視界画像を表示すると共に、右目用視界画像データに基づいて、右目用表示部に右目用の視界画像を表示する。このようにして、ユーザUは、左目用視界画像と右目用視界画像との間の視差により、視界画像54を3次元的に視認することができる。
また、ユーザ端末1の制御回路部120によって実行される各種処理をソフトウェアによって実現するために、各種処理をコンピュータ(プロセッサ)に実行させるための制御プログラムが記憶媒体123又はメモリに予め組み込まれていてもよい。または、制御プログラムは、磁気ディスク(HDD、フロッピーディスク)、光ディスク(CD−ROM,DVD−ROM、Blu−rayディスク等)、光磁気ディスク(MO等)、フラッシュメモリ(SDカード、USBメモリ、SSD等)等のコンピュータ読取可能な記憶媒体に格納されていてもよい。この場合、記憶媒体が制御回路部120に接続されることで、当該記憶媒体に格納された制御プログラムが、記憶媒体123に組み込まれる。そして、記憶媒体123に組み込まれた制御プログラムがRAM上にロードされて、プロセッサ122がロードされた当該プログラムを実行することで、制御回路部120は各種処理を実行する。
また、制御プログラムは、通信ネットワーク3上のコンピュータから通信インターフェース125を介してダウンロードされてもよい。この場合も同様に、ダウンロードされた当該制御プログラムが記憶媒体123に組み込まれる。
以上、本開示の実施形態について説明をしたが、本発明の技術的範囲が本実施形態の説明によって限定的に解釈されるべきではない。本実施形態は一例であって、特許請求の範囲に記載された発明の範囲内において、様々な実施形態の変更が可能であることが当業者によって理解されるところである。本発明の技術的範囲は特許請求の範囲に記載された発明の範囲及びその均等の範囲に基づいて定められるべきである。