(54)【発明の名称】ヘッドマウントデバイスを用いてコンテンツを提供するアプリケーションへの入力を支援するための方法、当該方法をコンピュータに実行させるためのプログラム、およびコンテンツ表示装置
【新規性喪失の例外の表示】特許法第30条第2項適用 平成28年5月26日 ウェブサイト(https://ww.360ch.tv,https://ww2.oculus.com/experiences/rift/961264563968531/,https://ww2.oculus.com/experiences/gear−vr/1068604633204352/)に掲載
【新規性喪失の例外の表示】特許法第30条第2項適用 平成28年8月15日 ウェブサイト(https://play.google.com/store/apps/details?id=tv.ch360.platform,https://itunes.apple.com/jp/app/id1132576676)に掲載
(58)【調査した分野】(Int.Cl.,DB名)
前記ユーザ識別情報の入力を受け付けるステップは、前記ヘッドマウントデバイスが前記ユーザに装着される前に、前記ユーザ識別情報の入力を受け付けることを含む、請求項1〜4のいずれかに記載の方法。
【発明を実施するための形態】
【0012】
以下、図面を参照しつつ、開示された技術思想の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【0013】
図1を参照して、ある実施の形態に従うHMD(Head-Mounted Device)システム100について説明する。
図1は、ある実施の形態に従うHMDシステム100の構成の概略を表す図である。ある局面において、HMDシステム100は、家庭用のシステムとしてあるいは業務用のシステムとして提供される。なお、本実施の形態において、HMDとは、モニタを備える所謂ヘッドマウントディスプレイと、スマートホンその他のモニタを有する端末を装着可能なヘッドマウント機器のいずれをも含み得る。
【0014】
HMDシステム100は、HMD110と、サーバ150とを備える。HMD110は、センサ114と、注視センサ140とを含む。さらに、HMD110には、通信端末200が装着され得る。通信端末200は、基地局18と通信する。基地局18はインターネット19を介してサーバ150に接続されている。
【0015】
HMD110は、ユーザーの頭部に装着され、動作中に仮想空間をユーザーに提供し得る。より具体的には、HMD110は、右目用の画像および左目用の画像をスマートフォンのモニタにそれぞれ表示する。ユーザーの各目がそれぞれの画像を視認すると、ユーザーは、両目の視差に基づき当該画像を3次元の画像として認識し得る。
【0016】
ある局面において、通信端末200のモニタがユーザーの両目の前方に位置するように、通信端末200は、HMD110の本体に装着され得る。したがって、ユーザーは、モニタに表示される3次元画像を視認すると、仮想空間に没入することができる。ある実施の形態において、仮想空間は、例えば、背景、ユーザーが操作可能なオブジェクト、ユーザーが選択可能なメニューの画像、あるいは、サーバ150によって配信される動画像等を含む。ある実施の形態において、モニタは、液晶モニタまたは有機EL(Electro Luminescence)モニタとして実現され得る。
【0017】
ある局面において、モニタは、右目用の画像を表示するためのサブモニタと、左目用の画像を表示するためのサブモニタとを含み得る。別の局面において、モニタは、右目用の画像と左目用の画像とを一体として表示する構成であってもよい。この場合、モニタは、高速シャッタを含む。高速シャッタは、画像がいずれか一方の目にのみ認識されるように、右目用の画像と左目用の画像とを交互に表示可能に作動する。
【0018】
ある局面において、センサ114は、HMDセンサ(図示しない)と同様に、HMD110の動きを検出するためのポジショントラッキング機能を有する。センサ114は、HMD110自身の位置および傾きを検出し得る。例えば、センサ114が角速度センサ、地磁気センサ、加速度センサ、あるいはジャイロセンサ等である場合、HMD110は、HMDセンサの代わりに、これらの各センサのいずれかを用いて、自身の位置および傾きを検出し得る。一例として、センサ114が角速度センサである場合、角速度センサは、現実空間におけるHMD110の3軸周りの角速度を経時的に検出する。HMD110は、各角速度に基づいて、HMD110の3軸周りの角度の時間的変化を算出し、さらに、角度の時間的変化に基づいて、HMD110の傾きを算出する。また、HMD110は、透過型表示装置を備えていても良い。この場合、当該透過型表示装置は、その透過率を調整することにより、一時的に非透過型の表示装置として構成可能であってもよい。また、視野画像は仮想空間を構成する画像の一部に、現実空間を提示する構成を含んでいてもよい。例えば、HMD110に搭載されたカメラで撮影した画像を視野画像の一部に重畳して表示させてもよいし、当該透過型表示装置の一部の透過率を高く設定することにより、視野画像の一部から現実空間を視認可能にしてもよい。
【0019】
注視センサ140は、ユーザー190の右目および左目の視線が向けられる方向(視線方向)を検出する。当該方向の検出は、例えば、公知のアイトラッキング機能によって実現される。注視センサ140は、当該アイトラッキング機能を有するセンサにより実現される。ある局面において、注視センサ140は、右目用のセンサおよび左目用のセンサを含むことが好ましい。注視センサ140は、例えば、ユーザー190の右目および左目に赤外光を照射するとともに、照射光に対する角膜および虹彩からの反射光を受けることにより各眼球の回転角を検出するセンサであってもよい。注視センサ140は、検出した各回転角に基づいて、ユーザー190の視線方向を検知することができる。
【0020】
サーバ150は、インターネット19を介して、通信端末200と通信する。ある局面において、サーバ150は、通信端末200に動画を配信する。例えば、ユーザー190は、通信端末200をHMD110に装着する前に、動画の配信を受けるためのサービスへのログイン操作を行なう。このログイン操作は、通信端末200へのタッチ操作のように、通常の操作として実現される。
【0021】
サーバ150は、通信端末200その他の情報通信端末と通信し、当該情報通信端末からの要求に応じてデータを送信する。送信されるデータは、動画像、静止画像、音声その他のコンテンツデータを含み得る。動画像は一方向から見た動画像、360度から見た動画像等を含み得る。
【0022】
図2を参照して、ある実施の形態に従う通信端末200の構成について説明する。
図2は、通信端末200のハードウェア構成を表わすブロック図である。
【0023】
通信端末200は、CPU(Central Processing Unit)20と、アンテナ43と、通信装置44と、入力スイッチ45と、カメラ46と、フラッシュメモリ27と、RAM(Random Access Memory)28と、ROM(Read-Only Memory)29と、メモリカード駆動装置30と、マイク32と、スピーカ33と、音声信号処理回路34と、モニタ35と、LED(Light Emitting Diode)36と、通信インターフェイス37と、バイブレータ38と、GPSアンテナ39と、GPSモジュール40と、加速度センサ41と、地磁気センサ42とを備える。メモリカード駆動装置30には、メモリカード31が装着され得る。
【0024】
アンテナ43は、基地局によって発信される信号を受信し、または、基地局を介して他の通信装置と通信するための信号を送信する。アンテナ43によって受信された信号は、通信装置44によってフロントエンド処理が行なわれ、処理後の信号は、CPU20に送られる。
【0025】
CPU20は、通信端末200に対して与えられる命令に基づいて通信端末200の動作を制御するための処理を実行する。通信端末200が信号を受信すると、CPU20は、通信装置44から送られた信号に基づいて予め規定された処理を実行し、処理後の信号を音声信号処理回路34に送出する。音声信号処理回路34は、その信号に対して予め規定された信号処理を実行し、処理後の信号をスピーカ33に送出する。スピーカ33は、その信号に基づいて音声を出力する。
【0026】
入力スイッチ45は、通信端末200に対する命令の入力を受け付ける。入力スイッチ45は、モニタ35に設けられるタッチセンサ、通信端末200の筐体に設けられたボタン等により実現される。入力された命令に応じた信号は、CPU20に入力される。
【0027】
マイク32は、通信端末200に対する発話を受け付けて、発話された音声に対応する信号を音声信号処理回路34に対して送出する。音声信号処理回路34は、その信号に基づいて通話のために予め規定された処理を実行し、処理後の信号をCPU20に対して送出する。CPU20は、その信号を送信用のデータに変換し、変換後のデータを通信装置44に対して送出する。通信装置44は、そのデータを用いて送信用の信号を生成し、アンテナ43に向けてその信号を送出する。
【0028】
フラッシュメモリ27は、CPU20から送られるデータを格納する。また、CPU20は、フラッシュメモリ27に格納されているデータを読み出し、そのデータを用いて予め規定された処理を実行する。
【0029】
RAM28は、入力スイッチ45に対して行なわれた操作に基づいてCPU20によって生成されるデータを一時的に保持する。ROM29は、通信端末200に予め定められた動作を実行させるためのプログラムあるいはデータを格納している。CPU20は、ROM29から当該プログラムまたはデータを読み出し、通信端末200の動作を制御する。
【0030】
メモリカード駆動装置30は、メモリカード31に格納されているデータを読み出し、CPU20に送出する。メモリカード駆動装置30は、CPU20によって出力されるデータを、メモリカード31の記憶領域に書き込む。
【0031】
音声信号処理回路34は、上述のような通話のための信号処理を実行する。なお、
図2に示される例では、CPU20と音声信号処理回路34とが別個の構成として示されているが、他の局面において、CPU20と音声信号処理回路34とが一体として構成されていてもよい。
【0032】
モニタ35は、タッチ操作式のモニタであるが、タッチ操作を受け付ける機構は特に限られない。モニタ35は、CPU20から取得されるデータに基づいて、当該データによって規定される画像を表示する。たとえば、モニタ35は、RAM28にダウンロードされたデータに基づいて、通信端末200のユーザーの左目用と右目用のコンテンツを表示する。コンテンツは、静止画、動画、地図などを含み得る。
【0033】
LED36は、CPU20から出力される信号に基づいて発光する。ある局面において、通信インターフェイス37は、WiFi、Bluetooth(登録商標)、NFC(Near Field Communication)等により実現される。別の局面において、通信インターフェイス37は、データ通信用のケーブルの装着を受け付ける。通信インターフェイス37は、CPU20から出力される信号を発信する。あるいは、通信インターフェイス37は、通信端末200の外部から受信した信号に含まれるデータを、CPU20に対して送信する。
【0034】
バイブレータ38は、CPU20から出力される信号に基づいて、予め定められた周波数で発振動作を実行する。
【0035】
GPSアンテナ39は、4つ以上の衛星からそれぞれ送信されるGPS信号を受信する。受信された各GPS信号は、GPSモジュール40に入力される。GPSモジュール40は、各GPS信号と公知の技術とを用いて測位処理を実行し、通信端末200の位置情報を取得する。
【0036】
加速度センサ41は、通信端末200に作用する加速度を検出する。ある局面において、加速度センサ41は、3軸加速度センサとして実現される。検出された加速度は、CPU20に入力される。CPU20は、この加速度に基づいて、通信端末200の動きや姿勢(傾き)を検出する。
【0037】
地磁気センサ42は、通信端末200が向いている方角を検出する。この検出により取得された情報は、CPU20に入力される。
【0039】
図3を参照して、サーバ150の構成について説明する。
図3は、ある局面に従うサーバ150のハードウェア構成を表わすブロック図である。サーバ150は、例えば、拡張現実を実現するために予め定められた地域において利用可能なアプリケーションプログラムを提供する事業者によって運営される。
【0040】
サーバ150は、主たる構成要素として、プログラムを実行するCPU(Central Processing Unit)1と、サーバ150のユーザーによる指示の入力を受けるマウス302およびキーボード303と、CPU301によるプログラムの実行により生成されたデータ、又はマウス302若しくはキーボード303を介して入力されたデータを揮発的に格納するRAM304と、データを不揮発的に格納するハードディスク305と、光ディスク駆動装置306と、モニタ308と、通信インターフェイス307とを備える。各構成要素は、相互にバスによって接続されている。光ディスク駆動装置306には、CD−ROM309その他の光ディスクが装着される。通信インターフェイス307は、USB(Universal Serial Bus)インターフェイス、有線LAN(Local Area Network)、無線LAN、Bluetooth(登録商標)インターフェイス等を含むが、これらに限られない。
【0041】
サーバ150における処理は、各ハードウェアおよびCPU301により実行されるソフトウェアによって実現される。このようなソフトウェアは、ハードディスク305に予め格納されている場合がある。また、ソフトウェアは、CD−ROM309その他のコンピュータ読み取り可能な不揮発性のデータ記録媒体に格納されて、プログラム製品として流通している場合もある。あるいは、当該ソフトウェアは、インターネットその他のネットワークに接続されている情報提供事業者によってダウンロード可能なプログラム製品として提供される場合もある。このようなソフトウェアは、光ディスク駆動装置306その他のデータ読取装置によってデータ記録媒体から読み取られて、あるいは、通信インターフェイス307を介してダウンロードされた後、ハードディスク305に一旦格納される。そのソフトウェアは、CPU301によってハードディスク305から読み出され、RAM304に実行可能なプログラムの形式で格納される。CPU301は、そのプログラムを実行する。
【0042】
図3に示されるサーバ150を構成する各構成要素は、一般的なものである。したがって、本実施の形態に係る最も本質的な部分は、サーバ150に格納されたプログラムであるともいえる。サーバ150の各ハードウェアの動作は周知であるので、詳細な説明は繰り返さない。
【0043】
なお、データ記録媒体としては、CD−ROM、FD(Flexible Disk)、ハードディスクに限られず、磁気テープ、カセットテープ、光ディスク(MO(Magnetic Optical Disc)/MD(Mini Disc)/DVD(Digital Versatile Disc))、IC(Integrated Circuit)カード(メモリカードを含む)、光カード、マスクROM、EPROM(Electronically Programmable Read-Only Memory)、EEPROM(Electronically Erasable Programmable Read-Only Memory)、フラッシュROMなどの半導体メモリ等の固定的にプログラムを担持する不揮発性のデータ記録媒体でもよい。
【0044】
ここでいうプログラムとは、CPU301により直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含み得る。
【0046】
図4を参照して、uvw視野座標系について説明する。
図4は、ある実施の形態に従うHMD110に設定されるuvw視野座標系を概念的に表す図である。センサ114は、HMD110の起動時に、グローバル座標系におけるHMD110の位置および傾きを検出する。プロセッサ10は、検出された値に基づいて、uvw視野座標系をHMD110に設定する。
【0047】
図4に示されるように、HMD110は、HMD110を装着したユーザーの頭部を中心(原点)とした3次元のuvw視野座標系を設定する。より具体的には、HMD110は、グローバル座標系を規定する水平方向、鉛直方向、および前後方向(x軸、y軸、z軸)を、グローバル座標系内においてHMD110の各軸周りの傾きだけ各軸周りにそれぞれ傾けることによって新たに得られる3つの方向を、HMD110におけるuvw視野座標系のピッチ方向(u軸)、ヨー方向(v軸)、およびロール方向(w軸)として設定する。
【0048】
ある局面において、HMD110を装着したユーザー190が直立し、かつ、正面を視認している場合、プロセッサ10は、グローバル座標系に平行なuvw視野座標系をHMD110に設定する。この場合、グローバル座標系における水平方向(x軸)、鉛直方向(y軸)、および前後方向(z軸)は、HMD110におけるuvw視野座標系のピッチ方向(u軸)、ヨー方向(v軸)、およびロール方向(w軸)に一致する。
【0049】
uvw視野座標系がHMD110に設定された後、センサ114は、HMD110の動きに基づいて、設定されたuvw視野座標系におけるHMD110の傾き(傾きの変化量)を検出できる。この場合、センサ114は、HMD110の傾きとして、uvw視野座標系におけるHMD110のピッチ角(θu)、ヨー角(θv)、およびロール角(θw)をそれぞれ検出する。ピッチ角(θu)は、uvw視野座標系におけるピッチ方向周りのHMD110の傾き角度を表す。ヨー角(θv)は、uvw視野座標系におけるヨー方向周りのHMD110の傾き角度を表す。ロール角(θw)は、uvw視野座標系におけるロール方向周りのHMD110の傾き角度を表す。
【0050】
センサ114は、検出されたHMD110の傾き角度に基づいて、HMD110が動いた後のHMD110におけるuvw視野座標系を、HMD110に設定する。HMD110と、HMD110のuvw視野座標系との関係は、HMD110の位置および傾きに関わらず、常に一定である。HMD110の位置および傾きが変わると、当該位置および傾きの変化に連動して、グローバル座標系におけるHMD110のuvw視野座標系の位置および傾きが変化する。
【0051】
ある局面において、センサ114は、赤外線センサからの出力に基づいて取得される赤外線の光強度および複数の点間の相対的な位置関係(例えば、各点間の距離など)に基づいて、HMD110の現実空間内における位置を、センサ114に対する相対位置として特定してもよい。また、プロセッサ10は、特定された相対位置に基づいて、現実空間内(グローバル座標系)におけるHMD110のuvw視野座標系の原点を決定してもよい。
【0053】
図5を参照して、仮想空間についてさらに説明する。
図5は、ある実施の形態に従う仮想空間2を表現する一態様を概念的に表す図である。仮想空間2は、中心21の360度方向の全体を覆う全天球状の構造を有する。
図4では、説明を複雑にしないために、仮想空間2のうちの上半分の天球が例示されている。仮想空間2では各メッシュが規定される。各メッシュの位置は、仮想空間2に規定されるXYZ座標系における座標値として予め規定されている。サーバ150は、仮想空間2に展開可能なコンテンツ(静止画、動画等)を構成する各部分画像を、仮想空間2において対応する各メッシュにそれぞれ対応付けて、ユーザーによって視認可能な仮想空間画像22が展開される仮想空間2をユーザーに提供する。
【0054】
ある局面において、仮想空間2では、中心21を原点とするXYZ座標系が規定される。XYZ座標系は、例えば、グローバル座標系に平行である。XYZ座標系は視点座標系の一種であるため、XYZ座標系における水平方向、鉛直方向(上下方向)、および前後方向は、それぞれX軸、Y軸、Z軸として規定される。したがって、XYZ座標系のX軸(水平方向)がグローバル座標系のx軸と平行であり、XYZ座標系のY軸(鉛直方向)がグローバル座標系のy軸と平行であり、XYZ座標系のZ軸(前後方向)がグローバル座標系のz軸と平行である。
【0055】
HMD110の起動時、すなわちHMD110の初期状態において、仮想カメラ1が、仮想空間2の中心21に配置される。仮想カメラ1は、現実空間におけるHMD110の動きに連動して、仮想空間2を同様に移動する。これにより、現実空間におけるHMD110の位置および向きの変化が、仮想空間2において同様に再現される。
【0056】
仮想カメラ1には、HMD110の場合と同様に、uvw視野座標系が規定される。仮想空間2における仮想カメラのuvw視野座標系は、現実空間(グローバル座標系)におけるHMD110のuvw視野座標系に連動するように規定されている。したがって、HMD110の傾きが変化すると、それに応じて、仮想カメラ1の傾きも変化する。また、仮想カメラ1は、HMD110を装着したユーザーの現実空間における移動に連動して、仮想空間2において移動することもできる。
【0057】
仮想カメラ1の向きは、仮想カメラ1の位置および傾きに応じて決まるので、ユーザーが仮想空間画像22を視認する際に基準となる視線(基準視線5)は、仮想カメラ1の向きに応じて決まる。サーバ150のプロセッサ10は、基準視線5に基づいて、仮想空間2における視界領域23を規定する。視界領域23は、仮想空間2のうち、HMD110を装着したユーザーの視界に対応する。
【0058】
注視センサ140によって検出されるユーザー190の視線方向は、ユーザー190が物体を視認する際の視点座標系における方向である。HMD110のuvw視野座標系は、ユーザー190がモニタ35を視認する際の視点座標系に等しい。また、仮想カメラ1のuvw視野座標系は、HMD110のuvw視野座標系に連動している。したがって、ある局面に従うHMDシステム100は、注視センサ140によって検出されたユーザー190の視線方向を、仮想カメラ1のuvw視野座標系におけるユーザーの視線方向とみなすことができる。
【0060】
図6を参照して、ユーザーの視線方向の決定について説明する。
図6は、ある実施の形態に従うHMD110を装着するユーザー190の頭部を上から表した図である。
【0061】
ある局面において、注視センサ140は、ユーザー190の右目および左目の各視線を検出する。ある局面において、ユーザー190が近くを見ている場合、注視センサ140は、視線R1およびL1を検出する。別の局面において、ユーザー190が遠くを見ている場合、注視センサ140は、視線R2およびL2を検出する。この場合、ロール方向wに対して視線R2およびL2がなす角度は、ロール方向wに対して視線R1およびL1がなす角度よりも小さい。注視センサ140は、検出結果をコンピュータに送信する。
【0062】
コンピュータが、視線の検出結果として、視線R1およびL1の検出値を注視センサ140から受信した場合には、その検出値に基づいて、視線R1およびL1の交点である注視点N1を特定する。一方、サーバ150は、視線R2およびL2の検出値を注視センサ140から受信した場合には、視線R2およびL2の交点を注視点として特定する。サーバ150は、特定した注視点N1の位置に基づき、ユーザー190の視線方向N0を特定する。サーバ150は、例えば、ユーザー190の右目Rと左目Lとを結ぶ直線の中点と、注視点N1とを通る直線の延びる方向を、視線方向N0として検出する。視線方向N0は、ユーザー190が両目により実際に視線を向けている方向である。また、視線方向N0は、視界領域23に対してユーザー190が実際に視線を向けている方向に相当する。
【0063】
別の局面において、HMDシステム100は、HMDシステム100を構成するいずれかのパーツに、マイクおよびスピーカを備えてもよい。ユーザーは、マイクに発話することにより、仮想空間2に対して、音声による指示を与えることができる。
【0064】
また、別の局面において、HMDシステム100は、テレビジョン放送受信チューナを備えてもよい。このような構成によれば、HMDシステム100は、仮想空間2においてテレビ番組を表示することができる。
【0065】
さらに別の局面において、HMDシステム100は、インターネットに接続するための通信回路、あるいは、電話回線に接続するための通話機能を備えていてもよい。
【0067】
図7および
図8を参照して、視界領域23について説明する。
図7は、仮想空間2において視界領域23をX方向から見たYZ断面を表す図である。
図8は、仮想空間2において視界領域23をY方向から見たXZ断面を表す図である。
【0068】
図7に示されるように、YZ断面における視界領域23は、領域24を含む。領域24は、仮想カメラ1の基準視線5と仮想空間2のYZ断面とによって定義される。プロセッサ10は、仮想空間おける基準視線5を中心として極角αを含む範囲を、領域24として規定する。
【0069】
図8に示されるように、XZ断面における視界領域23は、領域25を含む。領域25は、基準視線5と仮想空間2のXZ断面とによって定義される。プロセッサ10は、仮想空間2における基準視線5を中心とした方位角βを含む範囲を、領域25として規定する。
【0070】
ある局面において、HMDシステム100は、コンピュータからの信号に基づいて、視界画像26をモニタ35に表示させることにより、ユーザー190に仮想空間を提供する。視界画像26は、仮想空間画像22のうち視界領域23に重畳する部分に相当する。ユーザー190が、頭に装着したHMD110を動かすと、その動きに連動して仮想カメラ1も動く。その結果、仮想空間2における視界領域23の位置が変化する。これにより、モニタ35に表示される視界画像26は、仮想空間画像22のうち、仮想空間2においてユーザーが向いた方向の視界領域23に重畳する画像に更新される。ユーザーは、仮想空間2における所望の方向を視認することができる。
【0071】
ユーザー190は、HMD110を装着している間、現実世界を視認することなく、仮想空間2に展開される仮想空間画像22のみを視認できる。そのため、HMDシステム100は、仮想空間2への高い没入感覚をユーザーに与えることができる。
【0072】
ある局面において、プロセッサ10は、HMD110を装着したユーザー190の現実空間における移動に連動して、仮想空間2において仮想カメラ1を移動し得る。この場合、プロセッサ10は、仮想空間2における仮想カメラ1の位置および向きに基づいて、HMD110のモニタ35に投影される画像領域(すなわち、仮想空間2における視界領域23)を特定する。
【0073】
ある実施の形態に従うと、仮想カメラ1は、二つの仮想カメラ、すなわち、右目用の画像を提供するための仮想カメラと、左目用の画像を提供するための仮想カメラとを含むことが望ましい。また、ユーザー190が3次元の仮想空間2を認識できるように、適切な視差が、二つの仮想カメラに設定されていることが好ましい。本実施の形態においては、仮想カメラ1が二つの仮想カメラを含み、二つの仮想カメラのロール方向が合成されることによって生成されるロール方向(w)がHMD110のロール方向(w)に適合されるように構成されているものとして、本開示に係る技術思想を例示する。
【0075】
図9を参照して、ある実施の形態に従って動画を配信するサーバ150について説明する。
図9は、サーバ150によって実現される機能の構成の一態様を表すブロック図である。ある局面において、サーバ150は、周知の構成を有するコンピュータによって実現される。
【0076】
図9に示されるように、サーバ150は、表示制御モジュール220と、動画制御モジュール230と、メモリモジュール240と、通信制御モジュール250とを備える。表示制御モジュール220は、サブモジュールとして、仮想カメラ制御モジュール221と、視界領域決定モジュール222と、視界画像生成モジュール223と、基準視線特定モジュール224とを含む。
【0077】
ある実施の形態において、表示制御モジュール220と動画制御モジュール230とは、プロセッサ10によって実現される。別の実施の形態において、複数のプロセッサが表示制御モジュール220と動画制御モジュール230として協働してもよい。メモリモジュール240は、RAM304、ハードディスク305等の記憶装置によって実現される。通信制御モジュール250は、通信インターフェイス307によって実現される。
【0078】
ある局面において、表示制御モジュール220は、通信端末200のモニタ35に表示される画像を生成する。仮想カメラ制御モジュール221は、仮想空間2に仮想カメラ1を配置し、仮想カメラ1の挙動、向き等を制御する。視界領域決定モジュール222は、HMD110を装着したユーザー190の頭の向きに応じて、視界領域23を規定する。視界画像生成モジュール223は、決定された視界領域23に基づいて、モニタ35に表示される視界画像26を生成する。基準視線特定モジュール224は、注視センサ140からの信号に基づいて、ユーザー190の視線を特定する。
【0079】
動画制御モジュール230は、各ユーザーからの要求に応じて、動画の配信を制御する。より具体的には、ある局面において、動画制御モジュール230は、仮想空間定義モジュール231と、動画選択モジュール232と、認証モジュール233とを含む。
【0080】
仮想空間定義モジュール231は、通信端末200に提供される仮想空間を表示するためのデータを生成する。なお、配信される動画が現実空間に関するものである場合、仮想空間定義モジュール231は、360度の方向から現実空間を表示するためのデータを生成し得る。
【0081】
動画選択モジュール232は、メモリモジュール240に保存されているコンテンツ情報241から、通信端末200のユーザー190によって指定された動画像データを読み出す。
【0082】
認証モジュール233は、通信端末200から送られた認証情報と、ユーザー情報243とに基づいて、動画配信の要求が正当に登録されたユーザーからの要求であるか否かを判断する。
【0083】
動画配信モジュール234は、認証モジュール233による認証の結果に応じて、コンテンツを特定のユーザーの通信端末に配信する。例えば、当該要求が正当なユーザーからの要求である場合には、動画配信モジュール234は、当該ユーザーによって指定されたコンテンツのデータを、当該ユーザーが使用している通信端末200に送信する。通信端末200は、そのデータを受信すると、そのデータに基づく動画を再生する。
【0084】
メモリモジュール240は、各通信端末に対するコンテンツの提供サービスを実現するためのデータを保持している。ある局面において、メモリモジュール240は、コンテンツ情報241と、ユーザー情報243とを保持している。コンテンツ情報241は、ユーザーからの要求に応じて配信される一つ以上の画像データを含む。画像データは、動画像データおよび静止画像データのいずれもあり得る。
【0085】
ユーザー情報243は、HMDシステム100による画像の配信サービスを受けるために登録された各ユーザーのアカウント情報を含む。アカウント情報は、例えば、当該ユーザーの氏名、識別番号、パスワードその他の属性を含む。あるユーザーが配信サービスを受けるために、通信端末200を介して予め定められたウェブサイトにアクセスして、アカウント情報を構成する各上記項目を入力すると、入力された各項目は、ユーザー情報243に保存される。
【0086】
通信制御モジュール250は、インターネット19を介して、通信端末200その他の情報通信装置と通信し得る。
【0087】
ある局面において、表示制御モジュール220または動画制御モジュール230は、例えば、ユニティテクノロジーズ社によって提供されるUnity(登録商標)を用いて実現され得る。別の局面において、表示制御モジュール220または動画制御モジュール230は、各処理を実現する回路素子の組み合わせとしても実現され得る。
【0088】
サーバ150における処理は、ハードウェアと、プロセッサ10により実行されるソフトウェアとによって実現される。このようなソフトウェアは、ハードディスク305、フラッシュメモリその他のメモリモジュール240に予め格納されている場合がある。また、ソフトウェアは、CD−ROMその他のコンピュータ読み取り可能な不揮発性のデータ記録媒体に格納されて、プログラム製品として流通している場合もある。あるいは、当該ソフトウェアは、インターネットその他のネットワークに接続されている情報提供事業者によってダウンロード可能なプログラム製品として提供される場合もある。このようなソフトウェアは、光ディスク駆動装置その他のデータ読取装置によってデータ記録媒体から読み取られて、あるいは、通信制御モジュール250を介してサーバ150その他のコンピュータからダウンロードされた後、記憶モジュールに一旦格納される。そのソフトウェアは、プロセッサ10によって記憶モジュールから読み出され、実行可能なプログラムの形式でRAMに格納される。プロセッサ10は、そのプログラムを実行する。
【0089】
サーバ150を構成するハードウェアは、一般的なものである。したがって、本実施の形態に係る最も本質的な部分は、サーバ150に格納されたプログラムであるともいえる。なお、サーバ150のハードウェアの動作は周知であるので、詳細な説明は繰り返さない。
【0090】
なお、データ記録媒体としては、CD−ROM、FD(Flexible Disk)、ハードディスクに限られず、磁気テープ、カセットテープ、光ディスク(MO(Magnetic Optical Disc)/MD(Mini Disc)/DVD(Digital Versatile Disc))、IC(Integrated Circuit)カード(メモリカードを含む)、光カード、マスクROM、EPROM(Electronically Programmable Read-Only Memory)、EEPROM(Electronically Erasable Programmable Read-Only Memory)、フラッシュROMなどの半導体メモリ等の固定的にプログラムを担持する不揮発性のデータ記録媒体でもよい。
【0091】
ここでいうプログラムとは、プロセッサ10により直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含み得る。
【0093】
図10を参照して、HMDシステム100の動作について説明する。
図10は、HMDシステム100を構成するサーバ150と通信端末200とにおいて実行される処理の一部を表すフローチャートである。
【0094】
ステップS1010にて、通信端末200のCPU20は、通信端末200のユーザー190による操作に基づいて又は予め規定された設定に基づいて、第1アプリケーション(ブラウザ)を起動する。この時点では、通信端末200は、HMD110に装着されていない。CPU20は、さらに、ユーザー190の操作に基づいて360度動画を配信するサービスを提供する画面をモニタ35に表示する。さらに、CPU20は、当該サービスを提供するウェブサイトのユーザーアカウントにログインするためのパスワードの入力を受け付ける。CPU20は、入力されたパスワードを、通信回線を介してサーバ150に送信する。
【0095】
ステップS1015にて、サーバ150のCPU301は、通信端末200から受信したパスワードと、ユーザー情報243として登録されているパスワードとに基づいて、通信端末200のユーザー190を認証する。通信端末200のユーザー190がサーバ150に正当に登録されている場合、サーバ150は、ログインが完了したことを表すメッセージを通信端末200に送信する。ユーザー190がサーバ150に正当に登録されていない場合、サーバ150は、ログインできなかったことを表すメッセージを通信端末200に送信する。
【0096】
ステップS1020にて、通信端末200は、サーバ150からメッセージを受信すると、ログインが完了したことを表すメッセージをモニタ35に表示する。
【0097】
ステップS1030にて、通信端末200は、ユーザーの操作に応答して、ログインキーの発行要求をサーバ150に送信する。ある局面において、ログインキーは、VRアプリケーションを用いて動画配信サービスの提供を受けるために使用される。ログインキーは、たとえば、HMD110で使用されるアプリケーションに入力される。サーバ150は、通信端末200から発行要求を受信すると、ログインキーを通信端末200に送信する。
【0098】
ステップS1040にて、通信端末200は、サーバ150から受信したログインキーを受信する。ある局面において、ログインキーは、第1アプリケーション1001と第2アプリケーション1002とに使用可能となる。例えば、第1アプリケーション1001はブラウザに相当し、第2アプリケーション1002はHMD110で使用されるVR用のアプリケーションに相当する。ユーザー190が通信端末200をHMD110に装着すると、CPU20は、通信端末200の端子とHMD110の端子との接触を検知し、通信端末200がHMD110に装着されたことを検知する。
【0099】
ステップS1050にて、CPU20は、第2アプリケーション1002を起動する。通信端末200の動作モードは、通常モードからHMDモードに切り替わる。
【0100】
ステップS1060にて、CPU20は、注視センサ140からの出力に基づいて、ログインボタンが注視されていることを検知する。通信端末200は、その検知に応答して、ユーザー情報とログインキーとをサーバ150に送信する。なお、ユーザー情報とログインキーとをサーバ150に送信するためのトリガーは、ログインボタンがユーザーによって中止されていることが検知された時に限られない。別の局面において、例えば、ユーザー190が操作するコントローラー(図示しない)による入力がトリガーとしても散られてもよい。さらに別の局面において、ユーザー190の手にハンドデバイス(図示しない)等を装着した状態で行なわれる手の動きが、当該トリガーとして使用されてもよい。
【0101】
ステップS1070にて、サーバ150は、通信端末200からユーザー情報とログインキーとを受信すると、通信端末200がHMDモードで起動していることを認識する。サーバ150は、選択された動画データを通信端末200に送信する。
【0102】
ステップS1080にて、通信端末200は、サーバ150から動画データを受信すると、当該動画データに基づくコンテンツをHMDモードで表示し、ユーザーが視聴開始となる。
【0103】
図11〜
図14を参照して、通信端末200における画面の表示態様について説明する。
図11〜
図14は、それぞれ、ある実施の形態においてモニタ35が表示する画面の遷移の一例を表す図である。
【0104】
モニタ35は、360度動画を提供するサイトの名称1110と、アカウント情報1120と、ログインキーの発行要求を受け付けるアイコン1130と、画面遷移のために使用されるアイコン1141,1142,1143,1144,1145とを表示する。アカウント情報1120は、ユーザー名とEメールアドレスとを含む。
【0105】
ある局面において、ユーザーは、通信端末200を普通に操作する。例えば、ユーザー190は、左手で通信端末200を把持し、動画の配信を受けるためのサイトにアクセスするための操作を右手で行ない得る。さらに、ユーザー190は、ユーザー名、Eメールアドレスを入力し得る。このように入力操作は、通信端末200がHMD110に装着される前に行なわれるので、ユーザー190は容易に入力操作を行なうことができる。
【0106】
図12は、通信端末200がログインキーをサーバ150から受信した状態を表す。
図11に示される状態で入力されたユーザー名およびEメールアドレスは、サーバ150に送られる(ステップS1010)。サーバ150による認証(ステップS1010)が成功してログインが完了すると(ステップS1020)、通信端末200は、ユーザー190の操作に基づいて、ログインキーの発行要求をサーバ150に送信する(ステップS1030)。通信端末200がサーバ150からログインキーを受信すると(ステップS1040)、通信端末200は、ログインキーが含まれるメッセージ1200をモニタ35に表示する。
【0107】
より具体的には、メッセージ1200は、ログインキー「xxxxxxxx」と、命令を受け付けるアイコン1210,1220とを含む。ユーザー190がアイコン1220にタッチすると、HMDアプリ(第2アプリケーション1002)が起動し、モニタ35は、通信端末200の装着を促すメッセージを表示する。
【0108】
具体的には、
図13に示されるように、通信端末200は、アイコン1220のタッチに応答して、メッセージ1300を表示する。メッセージ1300は、通信端末200のユーザーに、HMDアプリ(第2アプリケーション1002)の実行のためには、ヘッドセット(すなわち、HMD110)に通信端末200を装着する必要があることを通知する。ユーザーが、通信端末200をHMD110に装着すると、通信端末200の動作モードは、通常モードからHMDモードに切り替わる。
【0109】
すなわち、
図14に示されるように、通信端末200は、HMDモードにおいて、メッセージ1400を表示する。メッセージ1400は、サーバ150から受信したログインキーが、HMDアプリ(第2アプリケーション1002)の起動によって表示されるログイン画面の所定の欄に入力されていることを表す。アイコン1410は、ログイン操作の入力を受け付ける。
【0110】
ある局面において、HMD110を装着したユーザー190が、その視線をアイコン1410に向けると、注視センサ140は、その視線の位置を検知する。検知結果は、通信端末200に送られる。通信端末200のCPU20は、ユーザー190の視線がログインの指令を与えていることを検知し、ログインキーの入力を受け付ける。その後、通信端末200は、サーバ150から受信した動画データをモニタ35に表示する。HMD110を装着したユーザー190の頭の向きに応じて、動画が表示される方向も変わる。なおー、入力のトリガーは、ユーザー190の視線が検知されたことに限られない。例えば、別の局面において、ユーザー190がコントローラーに対して予め定められた操作を実行すると、CPU20は、その操作を検知すると、ログインキーの入力を受け付ける。あるいは、ユーザー190がハンドデバイス(図示しない)を手に装着した状態で、予め定められた動作を行なうと、ログインキーの入力が受け付けられる。
【0111】
以上のようにして、ある実施の形態に従うと、動画の配信のようなサービスを受けるためのアカウントにログインするためのユーザー情報は、通信端末200がHMD110に装着される前に入力できる。したがって、ユーザー情報の入力は、HMD110に通信端末200が装着されている場合に比べて、容易である。その後、HMDモードにおいて実際のサービスを受けるために必要な情報は、通信端末200がHMD110に装着された後に入力可能となる。
【0112】
図15を参照して、別の局面について説明する。第1アプリケーション1001と第2アプリケーション1002とは、それぞれ別個の端末によって実行されてもよい。例えば、第1アプリケーション1001は通信端末200によって実行され、第2アプリケーション1002は演算機能を有するHMD1500によって実行されてもよい。なお、HMD1500は、プロセッサとメモリと通信インターフェイスとを備える。HMD1500は、ある局面において、通信端末200またはサーバ150に含まれるハードウェアを用いて実現される。したがって、ハードウェアの説明は繰り返さない。
【0113】
図15は、別の局面におけるある実施の形態に従って通信端末200とHMD1500とサーバ150とによって実行される処理を表すフローチャートである。なお、前述の処理と同一の処理には同一のステップ番号が付されている。したがって、同一の処理の説明は繰り返さない。
【0114】
ステップ1510にて、通信端末200とHMD1500とは、ペアリング処理を行う。ペアリング処理は、例えば、Bluetooth(登録商標)その他の近距離通信によって実現される。ペアリング処理が成功すると、通信端末200またはHMD1500は、ペアリング処理が完了したこと、通信端末200の識別情報とペアリング相手(HMD1500)の識別情報とをサーバ150に送信する。
【0115】
ステップS1540にて、HMD1500は、サーバ150からログインキーを受信する。HMD1500は、ログインキーを受信すると、HMDモードでの動作を開始し、第2アプリケーション1002の所定の画面にログインキーを入力する。HMD1500を装着したユーザーがログインボタン(例えば、アイコン1410)を注視していることを検知すると、ユーザー情報とログインキーとをサーバ150に送信する。サーバ150は、HMD1500の起動を認識すると(ステップS1070)、通信端末200のユーザー190によって選択されたコンテンツを表示するための動画データをHMD1500に送信する。HMD1500を装着したユーザー190は、HMDモードでコンテンツを楽しむことができる(ステップS1080)。
【0116】
なお、別の局面において、ペアリング処理は行なわれなくてもよい。サーバ150は、通信端末200とHMD1500とが関連付けられていることを認識できればよい。
【0117】
以上より、開示された技術的特徴は、以下のように要約され得る。
【0118】
(構成1)
ある実施の形態に従うと、HMD110を用いてコンテンツを提供するアプリケーションへの入力を支援するための方法が提供される。この方法は、HMDアプリケーションにログインするための画面を表示する通信端末200のCPU20が、アプリケーションのユーザー190によるユーザー識別情報の入力を受け付けるステップと、ユーザー識別情報を用いた認証が成功した場合に、アプリケーションによるコンテンツ提供サービスにログインするためのログインキーを受信するステップと、HMD110を装着したユーザー190の視線を検出するステップと、視線がログインキーを用いたログイン指示を受け付けるログインボタン(たとえばアイコン1410)を視認していることに基づいて、コンテンツを管理するサーバ150に、ログインキーを送信するステップと、ログインキーを用いた認証が成功したとサーバ150によって判断されたことに基づいて、HMDモードで視聴可能なコンテンツをサーバ150から受信するステップとを含む。
【0119】
(構成2)
別の局面に従うと、構成1に加えて、ログインキーを受信するステップは、ユーザー190識別情報の入力を受け付けた通信端末200が、ログインキーの発行要求をサーバ150に送信することと、発行要求に応答したサーバ150からログインキーを受信することとを含む。
(構成3)
【0120】
別の局面に従うと、構成1または2に加えて、ログインキーを受信するステップは、通信端末200がログインキーを受信することを含む。当該方法は、HMD110に装着された通信端末200がコンテンツを表示するステップをさらに含む。
【0121】
(構成4)
別の局面に従うと、構成1または2に加えて、ログインキーを受信するステップは、HMD110がログインキーを受信することを含む。当該方法は、HMD110がコンテンツを表示するステップをさらに含む。
【0122】
(構成5)
別の局面に従うと、構成1〜4のいずれかに加えて、ユーザー190識別情報の入力を受け付けるステップは、HMD110がユーザー190に装着される前に、ユーザー識別情報の入力を受け付けることを含む。
【0123】
(構成6)
他の実施の形態に従うと、上記のいずれかの方法をコンピュータに実行させるプログラムが提供される。
【0124】
(構成7)
さらに他の実施の形態に従うと、上記のプログラムを格納したメモリと、プログラムを実行するためのプロセッサとを備えるコンテンツ表示装置が提供される。
【0125】
以上のようにして、ある実施の形態に従うと、通信端末200とHMD1500とが別個の端末であっても、ユーザーは、ログイン情報を通信端末200に容易に入力し、その後、通信端末200をHMD1500に装着して、コンテンツを視聴するためのデータの配信を受けることができる。このようにすれば、ログイン情報を入力する際の操作性が低下することを防止できる。
【0126】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。実施の形態で説明された技術的思想の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【解決手段】HMDシステムを構成する通信端末が実行する処理は、通信端末がHMDに装着される前に、360度動画を配信するサービスを提供するウェブサイトのユーザーアカウントにログインするためのパスワードの入力を受け付けるステップ(S1010)と、サーバからログインキーを受信するステップ(S1040)と、パスワードが入力された通信端末がHMDに装着された後にHMDモードで第2アプリケーション1002を起動するステップ(S1050)と、ログインボタンが注視されていることに応答して、ユーザー情報とログインキーとをサーバに送信するステップ(S1060)と、HMDモードでコンテンツの視聴を開始するステップ(S1080)とを含む。