JP2018109940A - 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム - Google Patents
情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム Download PDFInfo
- Publication number
- JP2018109940A JP2018109940A JP2017158547A JP2017158547A JP2018109940A JP 2018109940 A JP2018109940 A JP 2018109940A JP 2017158547 A JP2017158547 A JP 2017158547A JP 2017158547 A JP2017158547 A JP 2017158547A JP 2018109940 A JP2018109940 A JP 2018109940A
- Authority
- JP
- Japan
- Prior art keywords
- avatar
- line
- user
- user terminal
- sight
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Abstract
【課題】仮想空間におけるユーザの仮想体験を改善することが可能な情報処理方法及び当該情報処理方法をコンピュータに実現させるためのプログラムを提供する。【解決手段】情報処理方法は、(a)アバター4Aと、アバター4Bと、アバター4Cとを含む仮想空間200Aを規定する仮想空間データを生成するステップと、(b)ユーザ端末1AのHMDの動きに応じて、アバター4Aの視野CVを更新するステップと、(c)アバター4Aの視野CVと仮想空間データに基づいて、ユーザ端末1AのHMDに視野画像Vを表示するステップと、(d)ユーザ端末1Bのマイクに音声が入力された場合、入力された音声を示す音声データをユーザ端末1Bから受信するステップと、(e)ステップ(d)の後に、ユーザ端末1AのHMDに表示される視野画像V上において、アバター4Bの視線オブジェクト5Bの表示態様を変化させるステップと、を含む。【選択図】図13
Description
本開示は、情報処理方法および当該情報処理方法をコンピュータに実行させるためのプログラムに関する。
ヘッドマウントデバイス(Head Mounted Device:以下、単にHMDという。)を装着した複数のユーザ間でネットワークを介して仮想空間を共有することが知られている。仮想空間は、例えばVR(Virtual Reality)空間、AR(Augmented Reality)空間またはMR(Mixed Reality) 空間等である。の特許文献1では、ネットワークを介して接続された複数のクライアント装置に仮想現実空間を提供するサーバ装置が開示されており、仮想現実空間内のオブジェクトを指し示すアバターの動作に応じて、オブジェクトを示す参照マークが生成される。特に、特許文献1は、チャットメッセージに含まれる所定の指示代名詞を条件として、オブジェクトを示す参照マークを生成することを開示している。
一方、特許文献2は、コンテンツを共有する複数のユーザにおいて、共通のオブジェクトに対して視線を向けているユーザのみが音声情報を相互に交換することができる情報処理システムを開示している。
また、特許文献3には、仮想空間内に仮想映画館を提供する技術が開示されている。特に、特許文献3では、仮想空間内に仮想スクリーンと、仮想ビデオプロジェクタと、仮想映画館を構成する特定の素子(仮想座席等)を配置することで、HMDを装着したユーザに仮想映画館での映画視聴体験を提供する技術が開示されている。
ところで、複数のユーザによって仮想空間が共有される場合、各ユーザは、HMDを通じて特定のオブジェクト(例えば、映像コンテンツが表示される仮想スクリーン等)を見ながら、マイクやヘッドフォンを用いて会話を楽しむことが想定される。例えば、複数のユーザが仮想スクリーン上に表示された映像コンテンツを視聴している間、複数のユーザの一人が映像コンテンツの特定のシーンになったときに他のユーザに話し掛けてくることが想定される。この場合、映像コンテンツの視聴に集中しているユーザにとって、どのユーザが話し掛けてきたのかを把握することは容易ではない。さらに、ヘッドフォンを通じて他のユーザの音声(会話)が出力される度に、どのユーザが話したのかを確認するのは非常に煩雑である。
本開示は、仮想空間におけるユーザの仮想体験を改善することが可能な情報処理方法及び当該情報処理方法をコンピュータに実現させるためのプログラムを提供する。
本開示が示す一態様によれば、各々がヘッドマウントデバイスと、音声が入力される音声入力部と、音声が出力される音声出力部とを有する複数のユーザ端末と、サーバとを備えた仮想空間配信システムにおいてコンピュータによって実行される情報処理方法が提供される。
前記情報処理方法は、
(a)前記複数のユーザ端末のうち第1ユーザ端末に関連付けられた第1アバターと、前記複数のユーザ端末のうち第2ユーザ端末に関連付けられた第2アバターと、前記複数のユーザ端末のうち第3ユーザ端末に関連付けられた第3アバターとを含む仮想空間を規定する仮想空間データを生成するステップと、
(b)前記第1ユーザ端末のヘッドマウントデバイスの動きに応じて、前記第1アバターの視野を更新するステップと、
(c)前記第1アバターの視野と前記仮想空間データに基づいて、前記第1ユーザ端末のヘッドマウントデバイスに視野画像を表示するステップと、
(d)前記第2ユーザ端末の音声入力部に音声が入力された場合、前記入力された音声を示す音声データを前記第2ユーザ端末から受信するステップと、
(e)前記ステップ(d)の後に、前記第1ユーザ端末のヘッドマウントデバイスに表示される視野画像上において、前記第2アバターの表示態様又は前記第2アバターの視線の表示態様を変化させるステップと、を含む。
前記情報処理方法は、
(a)前記複数のユーザ端末のうち第1ユーザ端末に関連付けられた第1アバターと、前記複数のユーザ端末のうち第2ユーザ端末に関連付けられた第2アバターと、前記複数のユーザ端末のうち第3ユーザ端末に関連付けられた第3アバターとを含む仮想空間を規定する仮想空間データを生成するステップと、
(b)前記第1ユーザ端末のヘッドマウントデバイスの動きに応じて、前記第1アバターの視野を更新するステップと、
(c)前記第1アバターの視野と前記仮想空間データに基づいて、前記第1ユーザ端末のヘッドマウントデバイスに視野画像を表示するステップと、
(d)前記第2ユーザ端末の音声入力部に音声が入力された場合、前記入力された音声を示す音声データを前記第2ユーザ端末から受信するステップと、
(e)前記ステップ(d)の後に、前記第1ユーザ端末のヘッドマウントデバイスに表示される視野画像上において、前記第2アバターの表示態様又は前記第2アバターの視線の表示態様を変化させるステップと、を含む。
本開示によれば、仮想空間におけるユーザの仮想体験を改善することが可能な情報処理方法及び当該情報処理方法をコンピュータに実現させるためのプログラムを提供することができる。
[本開示が示す実施形態の説明]
本開示が示す実施形態の概要を説明する。
(1)各々がヘッドマウントデバイスと、音声が入力される音声入力部と、音声が出力される音声出力部とを有する複数のユーザ端末と、サーバとを備えた仮想空間配信システムにおいてコンピュータによって実行される情報処理方法であって、
前記情報処理方法は、
(a)前記複数のユーザ端末のうち第1ユーザ端末に関連付けられた第1アバターと、前記複数のユーザ端末のうち第2ユーザ端末に関連付けられた第2アバターと、前記複数のユーザ端末のうち第3ユーザ端末に関連付けられた第3アバターとを含む仮想空間を規定する仮想空間データを生成するステップと、
(b)前記第1ユーザ端末のヘッドマウントデバイスの動きに応じて、前記第1アバターの視野を更新するステップと、
(c)前記第1アバターの視野と前記仮想空間データに基づいて、前記第1ユーザ端末のヘッドマウントデバイスに視野画像を表示するステップと、
(d)前記第2ユーザ端末の音声入力部に音声が入力された場合、前記入力された音声を示す音声データを前記第2ユーザ端末から受信するステップと、
(e)前記ステップ(d)の後に、前記第1ユーザ端末のヘッドマウントデバイスに表示される視野画像上において、前記第2アバターの表示態様又は前記第2アバターの視線の表示態様を変化させるステップと、を含む情報処理方法。
本開示が示す実施形態の概要を説明する。
(1)各々がヘッドマウントデバイスと、音声が入力される音声入力部と、音声が出力される音声出力部とを有する複数のユーザ端末と、サーバとを備えた仮想空間配信システムにおいてコンピュータによって実行される情報処理方法であって、
前記情報処理方法は、
(a)前記複数のユーザ端末のうち第1ユーザ端末に関連付けられた第1アバターと、前記複数のユーザ端末のうち第2ユーザ端末に関連付けられた第2アバターと、前記複数のユーザ端末のうち第3ユーザ端末に関連付けられた第3アバターとを含む仮想空間を規定する仮想空間データを生成するステップと、
(b)前記第1ユーザ端末のヘッドマウントデバイスの動きに応じて、前記第1アバターの視野を更新するステップと、
(c)前記第1アバターの視野と前記仮想空間データに基づいて、前記第1ユーザ端末のヘッドマウントデバイスに視野画像を表示するステップと、
(d)前記第2ユーザ端末の音声入力部に音声が入力された場合、前記入力された音声を示す音声データを前記第2ユーザ端末から受信するステップと、
(e)前記ステップ(d)の後に、前記第1ユーザ端末のヘッドマウントデバイスに表示される視野画像上において、前記第2アバターの表示態様又は前記第2アバターの視線の表示態様を変化させるステップと、を含む情報処理方法。
上記方法によれば、第2ユーザ端末の音声入力部に音声が入力された場合、当該入力された音声を示す音声データが第2ユーザ端末から受信される。その後、第1ユーザ端末のヘッドマウントデバイス(HMD)に表示される視野画像上において、第2アバターの表示態様又は第2アバターの視線の表示態様が変化する。このため、第1ユーザ端末の第1ユーザは、第2アバターの表示態様の変化又は第2アバターの視線の表示態様の変化を視認することで、第2アバターに関連した第2ユーザから音声が出力されたことを容易に把握することができる。つまり、第1ユーザは、誰が今喋っているのかを容易に把握することができる。従って、仮想空間におけるユーザの仮想体験を改善することが可能な情報処理方法を提供することができる。
ここで、「第2アバターの視線の表示態様の変化」の技術的意義とは、可視化された第2アバターの視線の表示態様を変化させることだけではなく、可視化されていない第2アバターの視線が可視化されることも対象としている点に留意されたい。
(2)(f)前記第2アバターの視線に基づいて第2視線オブジェクトを生成するステップと、
(g)前記第3アバターの視線に基づいて第3視線オブジェクトを生成するステップと、をさらに含み、
前記ステップ(e)は、
(e1)前記ステップ(d)の後に、前記第2視線オブジェクトの表示態様を変化させるように前記第2視線オブジェクトを更新するステップと、
(e2)前記更新された第2視線オブジェクトと前記第3視線オブジェクトが前記第1アバターの視野内に存在する場合に、前記第1ユーザ端末のヘッドマウントデバイスに、前記更新された第2視線オブジェクト及び前記第3視線オブジェクトを含む視野画像を表示させるステップと、を含む、項目(1)に記載の情報処理方法。
(g)前記第3アバターの視線に基づいて第3視線オブジェクトを生成するステップと、をさらに含み、
前記ステップ(e)は、
(e1)前記ステップ(d)の後に、前記第2視線オブジェクトの表示態様を変化させるように前記第2視線オブジェクトを更新するステップと、
(e2)前記更新された第2視線オブジェクトと前記第3視線オブジェクトが前記第1アバターの視野内に存在する場合に、前記第1ユーザ端末のヘッドマウントデバイスに、前記更新された第2視線オブジェクト及び前記第3視線オブジェクトを含む視野画像を表示させるステップと、を含む、項目(1)に記載の情報処理方法。
上記方法によれば、第2ユーザ端末の音声入力部に音声が入力された場合、当該入力された音声を示す音声データが第2ユーザ端末から受信される。その後、第2視線オブジェクトの表示態様を変化させるように第2視線オブジェクトが更新され、第1ユーザ端末のヘッドマウントデバイスに、更新された第2視線オブジェクト及び第3視線オブジェクトを含む視野画像が表示される。このため、第1ユーザ端末の第1ユーザは、第2視線オブジェクトの表示態様の変化を視認することで、第2アバターに関連した第2ユーザから音声が出力されたことを容易に把握することができる。
(3)前記第1アバターの視野内に前記第2アバターが存在しない場合に、前記ステップ(f)が実行され、
前記第1アバターの視野内に前記第3アバターが存在しない場合に、前記ステップ(g)が実行される、項目(2)に記載の情報処理方法。
前記第1アバターの視野内に前記第3アバターが存在しない場合に、前記ステップ(g)が実行される、項目(2)に記載の情報処理方法。
上記方法によれば、第1アバターの視野内に第2アバターが存在しない場合に、第2アバターの視線に基づいて第2視線オブジェクトが生成されると共に、第1アバターの視野内に第3アバターが存在しない場合に、第3アバターの視線に基づいて第3視線オブジェクトが生成される。このように、第1ユーザは、視野画像内に第2アバターや第3アバターが表示されなくても、第2視線オブジェクトの表示態様の変化を視認することで、第2アバターに関連した第2ユーザから音声が出力されたことを容易に把握することができる。
(4)前記ステップ(e)は、
(e3)前記ステップ(d)の後に、前記第2アバターの視線に基づいて第2視線オブジェクトを生成するステップと、
(e4)前記第2視線オブジェクトが前記第1アバターの視野内に存在する場合に、前記第1ユーザ端末のヘッドマウントデバイスに、前記第2視線オブジェクトを含む視野画像を表示させるステップと、を含む、項目(1)に記載の情報処理方法。
(e3)前記ステップ(d)の後に、前記第2アバターの視線に基づいて第2視線オブジェクトを生成するステップと、
(e4)前記第2視線オブジェクトが前記第1アバターの視野内に存在する場合に、前記第1ユーザ端末のヘッドマウントデバイスに、前記第2視線オブジェクトを含む視野画像を表示させるステップと、を含む、項目(1)に記載の情報処理方法。
上記方法によれば、第2ユーザ端末の音声入力部に音声が入力された場合、当該入力された音声を示す音声データが第2ユーザ端末から受信される。その後、第2アバターの視線に基づいて第2視線オブジェクトが生成された上で、第1ユーザ端末のヘッドマウントデバイスに、第2視線オブジェクトを含む視野画像が表示される。このため、第1ユーザ端末の第1ユーザは、視野画像内に表示された第2視線オブジェクトを視認することで、第2アバターに関連した第2ユーザから音声が出力されたことを容易に把握することができる。
(5)前記第1アバターの視野内に前記第2アバターが存在しない場合に、前記ステップ(e3)が実行される、項目(4)に記載の情報処理方法。
上記方法によれば、第1アバターの視野内に前記第2アバターが存在しない場合に、第2視線オブジェクトを生成される。このように、第1ユーザは、視野画像内に第2アバターが表示されなくても、第2視線オブジェクトを視認することで、第2アバターに関連した第2ユーザから音声が出力されたことを容易に把握することができる。
(6)前記ステップ(e)は、
(e5)前記ステップ(d)の後であって、前記第2アバターの視線が前記第1アバターを向いている状態で前記第2ユーザ端末の音声入力部に音声が入力された場合に、前記第2アバターの表示態様を変化させるように前記第2アバターを更新するステップと、
(e6)前記第2アバターが前記第1アバターの視野内に存在する場合に、前記第1ユーザ端末のヘッドマウントデバイスに、前記更新された第2アバターを含む視野画像を表示させるステップと、を含む、項目(1)に記載の情報処理方法。
(e5)前記ステップ(d)の後であって、前記第2アバターの視線が前記第1アバターを向いている状態で前記第2ユーザ端末の音声入力部に音声が入力された場合に、前記第2アバターの表示態様を変化させるように前記第2アバターを更新するステップと、
(e6)前記第2アバターが前記第1アバターの視野内に存在する場合に、前記第1ユーザ端末のヘッドマウントデバイスに、前記更新された第2アバターを含む視野画像を表示させるステップと、を含む、項目(1)に記載の情報処理方法。
上記方法によれば、第2ユーザ端末の音声入力部に音声が入力された場合、当該入力された音声を示す音声データが第2ユーザ端末から受信される。その後、第2アバターの視線が第1アバターを向いている状態で第2ユーザ端末の音声入力部に音声が入力された場合に、第2アバターの表示態様を変化させるように第2アバターが更新される。そして、第1ユーザ端末のヘッドマウントデバイスに、更新された第2アバターを含む視野画像が表示される。このため、第1ユーザ端末の第1ユーザは、視野画像内に表示された第2アバターの表示態様の変化を視認することで、第2アバターに関連した第2ユーザから音声が出力されたことを容易に把握することができる。
(7)前記第1アバターの視野内に前記第2アバターが存在しない場合に、前記ステップ(e5)が実行される、項目(6)に記載の情報処理方法。
上記方法によれば、第1アバターの視野内に第2アバターが存在しない場合に、第2アバターの表示態様を変化させるように第2アバターが更新される。このように、第2ユーザ端末の音声入力部に音声が入力されたときに視野画像内に第2アバターが表示されなかった場合でも、後程、第1ユーザは、第2アバターの表示態様の変化を視認することができる。このように、第1ユーザは、第2アバターに関連した第2ユーザから音声が出力されたことを容易に把握することができる。
(8)項目(1)から(7)のうちいずれか一項に記載の情報処理方法をコンピュータに実行させるためのプログラム。
上記によれば、仮想空間におけるユーザの仮想体験を改善することが可能なプログラムを提供することができる。
[本開示が示す実施形態の詳細]
以下、本開示が示す実施形態について図面を参照しながら説明する。尚、本実施形態の説明において既に説明された部材と同一の参照番号を有する部材については、説明の便宜上、その説明は繰り返さない。
以下、本開示が示す実施形態について図面を参照しながら説明する。尚、本実施形態の説明において既に説明された部材と同一の参照番号を有する部材については、説明の便宜上、その説明は繰り返さない。
最初に、仮想空間配信システム100の構成の概略について図1を参照して説明する。図1は、仮想空間配信システム100(以下、単に配信システム100という。)の概略図である。図1に示すように、配信システム100は、ユーザA(第1ユーザ)によって操作されるユーザ端末1A(第1ユーザ端末)と、ユーザB(第2ユーザ)によって操作されるユーザ端末1B(第2ユーザ端末)と、ユーザC(第3ユーザ)によって操作されるユーザ端末C(第3ユーザ端末)と、サーバ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の両目の視線であって、ユーザ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は、本実施形態に係る情報処理方法の少なくとも一部をコンピュータに実行させるための制御プログラムや、複数のユーザによる仮想空間の共有を実現するための制御プログラムを格納してもよい。また、記憶部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の視線とHMD110の位置や傾きに関する情報に基づいて、仮想カメラ300の向き(仮想カメラの野軸L)を決定してもよい。また、後述するように、制御部121は、HMD110の位置や傾きに関する情報に基づいて、ユーザUのアバターの顔の向きを決定してもよい。
このように、制御部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は、本実施形態に係る情報処理方法の少なくとも一部をコンピュータに実行させるための制御プログラムや、複数のユーザによる仮想空間の共有を実現させるための制御プログラムを格納してもよい。また、記憶部22は、各ユーザを管理するためのユーザ管理情報や各種画像やオブジェクト(例えば、仮想スクリーン、アバター及び視線オブジェクト等)に関するデータを格納してもよい。通信インターフェース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が同一の仮想空間を共有しているものとする。つまり、通信ネットワーク3を介してユーザAとユーザBが一つの仮想空間を共有するものとする。
図10の状態(a)に示すように、ユーザAの仮想空間200Aは、アバター4Aと、アバター4Bと、仮想スクリーン6Aとを含む。アバター4Aは、ユーザAによって操作されると共に、ユーザAの動作に連動する。アバター4Bは、ユーザBによって操作されると共に、ユーザBの動作に連動する。
例えば、ユーザ端末1A,1BのHMD110の位置に応じてアバター4A,4Bの位置が特定されてもよい。同様に、ユーザ端末1A,1BのHMD110の傾きに応じてアバター4A,4Bの顔の向きが特定されてもよい。さらに、ユーザ端末1A,1Bの外部コントローラの動作に応じてアバター4A,4Bの手の動作が特定されてもよい。また、注視センサ140によって検出されたユーザA,Bの視線を示すデータに応じてアバター4A,4Bの白目に対する黒目の相対的位置が特定されてもよい。特に、左目用注視センサによって検出されたユーザの左目の視線を示すデータに応じてアバターの左目の白目に対する左目の黒目の相対的位置が特定されてもよい。さらに、右目用注視センサによって検出されたユーザの右目の視線を示すデータに応じてアバターの右目の白目に対する右目の黒目の相対的位置が特定されてもよい。
また、ユーザ端末1A,1BのHMD110の傾きに応じてアバター4A,4Bの視線が特定されてもよい。換言すれば、アバターの視線は、仮想カメラの視軸Lに応じて特定されてもよい。ここで、アバターの視線とはアバターの両目の視線を指す。尚、ユーザ端末1A,1BのHMD110の傾き及びユーザA,Bの視線(ユーザA,Bの両目の視線)に基づいてアバター4A,4Bの視線が特定されてもよい。ここで、ユーザA,Bの視線は、上記したように、注視センサ140によって検出されたユーザA,Bの視線を示すデータに応じて特定される。
また、アバター4A,4Bの各々の目には、仮想カメラ300(図6)が配置されてもよい。特に、アバター4A,4Bの各々の左目には、左目用仮想カメラが配置されると共に、アバター4A,4Bの各々の右目には、右目用仮想カメラが配置されてもよい。尚、以降の説明では、仮想カメラ300はアバター4A,4Bの各々の目に配置されているものとする。このため、図7に示す仮想カメラ300の視野CVは、アバター4A,4Bの各々の視野CVと一致するものとする。
仮想スクリーン6Aは、映像コンテンツ(動画)を表示するように構成されている。制御部121は、テクスチャマッピングにより仮想スクリーン6Aの表面上に映像コンテンツを表示することができる。ユーザA,Bの各々は、仮想スクリーン6Aに表示された映像コンテンツをHMD110に表示された視野画像を通じて楽しむことができる。
図10の状態(b)に示すように、ユーザBの仮想空間200Bは、アバター4Aと、アバター4Bと、仮想スクリーン6Aとを含む。仮想空間200A内におけるアバター4A,4Bの位置は、仮想空間200B内におけるアバター4A,4Bの位置に対応してもよい。
次に、図11を参照すると、ステップS10において、ユーザ端末1Aの制御部121は、ユーザAの音声データを生成する。例えば、ユーザAがユーザ端末1Aのマイク118に音声を入力したときに、マイク118は、入力された音声を示す音声データを生成する。その後、マイク118は生成された音声データをI/Oインターフェース124を介して制御部121に送信する。
次に、ステップS11において、ユーザ端末1Aの制御部121は、アバター4Aの制御情報を生成した上で、当該生成したアバター4Aの制御情報とユーザAの音声を示す音声データ(ユーザAの音声データ)をサーバ2に送信する。その後、サーバ2の制御部23は、ユーザ端末1Aからアバター4Aの制御情報とユーザAの音声データを受信する(ステップS12)。ここで、アバター4Aの制御情報は、アバター4Aの動作を制御するために必要な情報である。アバター4Aの制御情報は、アバター4Aの視線に関する情報(視線情報)を含む。さらに、アバター4Aの制御情報は、アバター4Aの位置に関する情報と、アバター4Aの顔の向きに関する情報と、アバター4Aの手の動作に関する情報と、アバター4Aの目の動き(特に、黒目の動き)に関する情報をさらに含んでいてもよい。
次に、ステップS13において、ユーザ端末1Bの制御部121は、アバター4Bの制御情報を生成した上で、当該生成したアバター4Bの制御情報をサーバ2に送信する。その後、サーバ2の制御部23は、ユーザ端末1Bからアバター4Bの制御情報を受信する(ステップS14)。ここで、アバター4Bの制御情報は、アバター4Bの動作を制御するために必要な情報である。アバター4Bの制御情報は、アバター4Bの視線に関する情報(視線情報)を含む。さらに、アバター4Bの制御情報は、アバター4Bの位置に関する情報と、アバター4Bの顔の向きに関する情報と、アバター4Bの手の動作に関する情報と、アバター4Bの目の動き(特に、黒目の動き)に関する情報をさらに含んでいてもよい。
次に、サーバ2は、アバター4Bの制御情報をユーザ端末1Aに送信する一方(ステップS15)、アバター4Aの制御情報とユーザAの音声データをユーザ端末1Bに送信する(ステップS19)。その後、ユーザ端末1Aの制御部121は、ステップS16においてアバター4Bの制御情報を受信した後に、アバター4A,4Bの制御情報に基づいて、仮想空間200A(図10の状態(a)参照)を示す仮想空間データを更新する(ステップS17)。例えば、アバター4A,4Bが移動した場合、移動後のアバター4A,4Bを含む仮想空間を示す仮想空間データが生成される。その後、ユーザ端末1Aの制御部121は、HMD110の位置や傾きに応じてアバター4A(仮想カメラ300)の視野CVを特定した上で、更新された仮想空間データと、アバター4Aの視野CVとに基づいて、HMD110に表示される視野画像を更新する(ステップS18)。
一方、ユーザ端末1Bの制御部121は、ステップS20においてアバター4Aの制御情報とユーザAの音声データを受信した後に、アバター4A,4Bの制御情報に基づいて、仮想空間200B(図10の状態(b)参照)を示す仮想空間データを更新する(ステップS21)。その後、ユーザ端末1Bの制御部121は、HMD110の位置や傾きに応じてアバター4B(仮想カメラ300)の視野CVを特定した上で、更新された仮想空間データと、アバター4Bの視野CVとに基づいて、HMD110に表示される視野画像を更新する(ステップS22)。
その後、ユーザ端末1Bの制御部121は、受信したユーザAの音声データと、アバター4Aの制御情報に含まれるアバター4Aの位置に関する情報と、所定の音声処理アルゴリズムに基づいてユーザAの音声データを加工する。その後、制御部121は、加工された音声データをヘッドフォン116に送信した上で、ヘッドフォン116は、加工された音声データに基づいてユーザAの音声を出力する(ステップS23)。このように、仮想空間上においてユーザ間(アバター間)の音声チャットを実現することができる。
本実施形態では、ユーザ端末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に送信する。
(第1実施形態)
次に、図12〜図15を参照することで第1実施形態に係る情報処理方法について説明する。図12は、第1実施形態に係る情報処理方法の一例を説明するためのフローチャートである。図13は、ユーザ端末1Bのマイク118に音声が入力される前におけるユーザAに提供される仮想空間200Aを示す平面図である。図14は、ユーザ端末1Bのマイク118に音声が入力される前におけるユーザ端末1AのHMD110に表示された視野画像Vの一例を示す図である。図15は、ユーザ端末1Bのマイク118に音声が入力された後におけるユーザ端末1AのHMD110に表示された視野画像Vの一例を示す図である。
次に、図12〜図15を参照することで第1実施形態に係る情報処理方法について説明する。図12は、第1実施形態に係る情報処理方法の一例を説明するためのフローチャートである。図13は、ユーザ端末1Bのマイク118に音声が入力される前におけるユーザAに提供される仮想空間200Aを示す平面図である。図14は、ユーザ端末1Bのマイク118に音声が入力される前におけるユーザ端末1AのHMD110に表示された視野画像Vの一例を示す図である。図15は、ユーザ端末1Bのマイク118に音声が入力された後におけるユーザ端末1AのHMD110に表示された視野画像Vの一例を示す図である。
第1実施形態では、前提条件として、図13に示すように、アバター4Aと、アバター4Bと、ユーザ端末1C(ユーザC)に関連付けられたアバター4Cが同一の仮想空間を共有しているものとする。つまり、通信ネットワーク3を介してユーザA〜Cが一つの仮想空間を共有するものとする。アバター4Cは、ユーザCによって操作されると共に、ユーザCの動作に連動する。アバター4A〜4Cは、仮想スクリーン6Aの表示画面60A上に表示された映像コンテンツを視聴しているものとする。図13に示すように、可視化されていないアバター4Aの視線SLaは、表示画面60Aの所定の箇所を指している。
ユーザAの仮想空間200Aは、アバター4Aと、アバター4Bと、アバター4Cと、仮想スクリーン6Aとを含む。ユーザ端末1Aの制御部121は、仮想空間200Aを示す仮想空間データを生成する。
図12を参照すると、ステップS30において、ユーザ端末1Aの制御部121(以下、単に制御部121という。)は、アバター4Aの視野CVを特定する。上記したように、アバター4Aの視野CVは、アバター4Aの目に配置された仮想カメラの視野CVに一致する。また、制御部121は、ユーザ端末1AのHMD110の動きに応じて、アバター4Aの視野CVを更新する。アバター4Aの視野CVの更新処理は、1フレーム毎に実行されてもよい。さらに、制御部121は、更新された視野CVと仮想空間200Aを示す仮想空間データに基づいて、HMD110に表示される視野画像Vを更新する。視野画像の更新処理も、1フレーム毎に実行されてもよい。
次に、ステップS31において、制御部121は、アバター4Bの動作を制御するために必要なアバター4Bの制御情報をサーバ2から受信する。ここで、アバター4Bの制御情報は、アバター4Bの視線に関する情報(視線情報)を含む。具体的には、サーバ2は、アバター4Bの制御情報をユーザ端末1Bから受信した後に、アバター4Bの制御情報をユーザ端末1A,1Cに送信する。このように、制御部121は、アバター4Bの制御情報をサーバ2から受信する。
次に、ステップS32において、制御部121は、アバター4Cの動作を制御するために必要なアバター4Cの制御情報をサーバ2から受信する。ここで、アバター4Cの制御情報は、アバター4Cの視線情報を含む。具体的には、サーバ2は、アバター4Cの制御情報をユーザ端末1Cから受信した後に、アバター4Cの制御情報をユーザ端末1A,1Bに送信する。このように、制御部121は、アバター4Cの制御情報をサーバ2から受信する。
尚、ステップS31の処理の前に、制御部121は、アバター4Aの動作を制御するために必要なアバター4Aの制御情報をサーバ2に送信している点に留意されたい。
次に、制御部121は、アバター4Bの制御情報に含まれるアバター4Bの位置に関する情報に基づいて、アバター4Bがアバター4Aの視野CV内に存在するかどうかを判定する(ステップS33)。制御部121は、アバター4Bがアバター4Aの視野CV内に存在しないと判定した場合(ステップS33でNO)、アバター4Bの視線情報に基づいて、アバター4Bの視線オブジェクト5B(図13参照)を生成する(ステップS34)。
例えば、図13に示すように、制御部121は、アバター4Bの視線と、アバター4Bの視線と仮想スクリーン6Aの表示画面60Aとの交差点Caとに基づいて視線オブジェクト5Bを生成してもよい。特に、制御部121は、アバター4Bの視線の方向に基づいて視線オブジェクト5Bの方向を特定すると共に、アバター4Bの位置と交差点Caとの間の距離に基づいて視線オブジェクト5Bの長さを特定してもよい。
一方、制御部121は、アバター4Bがアバター4Aの視野CV内に存在すると判定した場合(ステップS33でYES)、処理は、ステップS35の処理に進む。次に、制御部121は、ステップS35において、アバター4Cの制御情報に含まれるアバター4Cの位置に関する情報に基づいて、アバター4Cがアバター4Aの視野CV内に存在するかどうかを判定する(ステップS35)。制御部121は、アバター4Cがアバター4Aの視野CV内に存在しないと判定した場合(ステップS35でNO)、アバター4Cの視線情報に基づいて、アバター4Cの視線オブジェクト5C(図13参照)を生成する(ステップS36)。
例えば、図13に示すように、制御部121は、アバター4Cの視線と、アバター4Cの視線と仮想スクリーン6Aの表示画面60Aとの交差点Cbとに基づいて視線オブジェクト5Cを生成してもよい。特に、制御部121は、アバター4Cの視線の方向に基づいて視線オブジェクト5Cの方向を特定すると共に、アバター4Cの位置と交差点Cbとの間の距離に基づいて視線オブジェクト5Cの長さを特定してもよい。一方、制御部121は、アバター4Cがアバター4Aの視野CV内に存在すると判定した場合(ステップS35でYES)、処理は、ステップS37の処理に進む。
このように、視線オブジェクト5B,5Cが生成されるので、アバター4B,4Cの視線が仮想空間200A上で可視化される。例えば、図14に示すように、ユーザ端末1AのHMD110上に表示される視野画像Vには、可視化されたアバター4B,4Cの視線(つまり、視線オブジェクト5B,5C)が表示される。
次に、ステップS37において、制御部121は、ユーザBの音声を示す音声データ(ユーザBの音声データ)を受信する。例えば、ユーザBがユーザ端末1Bのマイク118に音声(例えば、「頑張れー!」)を入力した場合に、マイク118は、入力された音声を示す音声データを生成した上で、生成された音声データをI/Oインターフェース124を介してユーザ端末1Bの制御部121に送信する。ユーザ端末1Bの制御部121は、音声データをサーバ2に送信した後に、サーバ2は音声データをユーザ端末1A,1Cに送信する。このように、ユーザ端末1Aの制御部121は、ユーザBの音声データをサーバ2から受信する。その後、制御部121は、受信したユーザBの音声データと、アバター4Bの制御情報に含まれるアバター4Bの位置に関する情報と、所定の音声処理アルゴリズムに基づいてユーザBの音声データを加工する。その後、制御部121は、加工された音声データをヘッドフォン116に送信した上で、ヘッドフォン116は、加工された音声データに基づいてユーザBの音声を出力する。
その後、制御部121は、視線オブジェクト5Bの表示態様を変化させるように視線オブジェクト5Bを更新する(ステップS38)。この点において、制御部121は、視線オブジェクト5Bの表示態様の変化として、視線オブジェクト5Bの形状・色を時間軸上で連続的に変化させてもよい。例えば、図15に示すように、制御部121は、視線オブジェクト5Bの形状を波状に変化させてもよい。特に、視線オブジェクト5Bの波状が時間軸上で連続的に変化してもよい。
このように、更新された視線オブジェクト5Bと視線オブジェクト5Cがアバター4Aの視野内に存在する場合に、制御部121は、図15に示すように、更新された視線オブジェクト5Bと視線オブジェクト5Cを含む視野画像Vをユーザ端末1AのHMD110に表示させる。
本実施形態によれば、ユーザ端末1Bのマイク118にユーザBの音声(「頑張れ―!」)が入力された場合、ユーザBの音声データがサーバ2を介してユーザ端末1Bから受信される。その後、アバター4Bの視線オブジェクト5Bの表示態様を変化させるように視線オブジェクト5Bが更新されて、ユーザ端末1AのHMD110上に、更新された視線オブジェクト5Bと視線オブジェクト5Cを含む視野画像Vが表示される。このため、ユーザAは、視線オブジェクト5Bの表示態様の変化を視認することで、アバター4Bに関連したユーザBから音声が出力されたことを容易に把握することができる。つまり、ユーザAは、どのユーザが現在喋っているのかを視線オブジェクト5Bの表示態様の変化により容易に把握することができる。従って、複数のユーザによって共有された仮想空間におけるユーザの仮想体験を改善することが可能な情報処理方法を提供することができる。
また、本実施形態によれば、アバター4Aの視野CV内にアバター4Bが存在しない場合に、アバター4Bの視線と交差点Caに基づいて視線オブジェクト5Bが生成される。さらに、アバター4Aの視野CV内にアバター4Cが存在しない場合に、アバター4Cの視線と交差点Cbに基づいて視線オブジェクト5Cが生成される。このように、ユーザAは、視野画像V内にアバター4B,4Cが表示されなくても、視線オブジェクト5Bの表示態様の変化を視認することで、アバター4Bに関連するユーザBから音声が出力されたことを容易に把握することができる。
尚、本実施形態では、アバター4B(4C)がアバター4Aの視野CV内に存在するときには、ユーザAは、どのユーザが現在喋っているかを比較的容易に特定できるため、視線オブジェクト5B(5C)は生成されない。しかしながら、アバター4B(4C)がアバター4Aの視野CV内に存在するときでも、制御部121は、視線オブジェクト5B(5C)を生成してもよい。
(第2実施形態)
次に、図16〜図18を参照することで第2実施形態に係る情報処理方法について説明する。図16は、第2実施形態に係る情報処理方法の一例を説明するためのフローチャートである。図17は、ユーザ端末1Bのマイク118に音声が入力された後におけるユーザAに提供される仮想空間200Aを示す平面図である。図18は、ユーザ端末1Bのマイク118に音声が入力された後におけるユーザ端末1AのHMD110に表示された視野画像Vの一例を示す図である。第2実施形態の前提条件は、第1実施形態の前提条件と同一である。
次に、図16〜図18を参照することで第2実施形態に係る情報処理方法について説明する。図16は、第2実施形態に係る情報処理方法の一例を説明するためのフローチャートである。図17は、ユーザ端末1Bのマイク118に音声が入力された後におけるユーザAに提供される仮想空間200Aを示す平面図である。図18は、ユーザ端末1Bのマイク118に音声が入力された後におけるユーザ端末1AのHMD110に表示された視野画像Vの一例を示す図である。第2実施形態の前提条件は、第1実施形態の前提条件と同一である。
図16を参照すると、ステップS40において、ユーザ端末1Aの制御部121(以下、単に制御部121という。)は、アバター4Aの視野CVを特定する。次に、制御部121は、アバター4Bの視線情報を含むアバター4Bの制御情報をサーバ2から受信する(ステップS41)。その後、制御部121は、アバター4Cの視線情報を含むアバター4Cの制御情報をサーバ2から受信する(ステップS42)。尚、制御部121は、ステップS41の処理の前に、アバター4Aの制御情報をサーバ2に送信している点に留意されたい。
次に、ステップS43において、制御部121は、ユーザBの音声(例えば、「頑張れ―!」)を示す音声データ(ユーザBの音声データ)をサーバ2から受信した後に、ユーザBの音声データを加工する。その後、ヘッドフォン116は、加工された音声データに基づいてユーザBの音声を出力する。
次に、制御部121は、音声を出力したユーザがユーザBであると決定した上で、アバター4Bの制御情報に含まれるアバター4Bの位置に関する情報に基づいて、アバター4Bがアバター4Aの視野CV内に存在するかどうかを判定する(ステップS44)。制御部121は、アバター4Bがアバター4Aの視野CV内に存在しないと判定した場合(ステップS44でNO)、アバター4Bの視線情報に基づいて、アバター4Bの視線オブジェクト5B(図17参照)を生成する(ステップS45)。視線オブジェクト5Bの生成方法は上記で説明したとおりである。一方、ステップS44の判定結果がYESの場合、アバター4Bの視線オブジェクト5Bは生成されない。
このように、音声を出力したユーザBに関連するアバター4Bの視線オブジェクト5Bのみが生成されるので、アバター4Bの視線のみが仮想空間200A上で可視化される。例えば、図18に示すように、ユーザ端末1AのHMD110上に表示される視野画像Vには、可視化されたアバター4Bの視線(つまり、視線オブジェクト5B)のみが表示される。一方、アバター4Cの視線SLc(図17参照)に対応する視線オブジェクトは生成されないので、アバター4Cの視線SLcは可視化されない。
本実施形態によれば、視線オブジェクト5Bがアバター4Aの視野CV内に存在する場合に、制御部121は、図18に示すように、視線オブジェクト5Bを含む視野画像Vをユーザ端末1AのHMD110に表示させる。このため、ユーザAは、視野画像V内に表示された視線オブジェクト5Bを視認することで、アバター4Bに関連したユーザBから音声が出力されたことを容易に把握することができる。
また、本実施形態によれば、アバター4Aの視野CV内にアバター4Bが存在しない場合に視線オブジェクト5Bが生成される。このように、ユーザAは、視野画像V内にアバター4Bが表示されなくても、視線オブジェクト5Bを視認することで、アバター4Bに関連するユーザBから音声が出力されたことを容易に把握することができる。尚、アバター4Bがアバター4Aの視野CV内に存在するときでも、制御部121は、視線オブジェクト5Bを生成してもよい。
(第3実施形態)
次に、図19〜図21を参照することで第3実施形態に係る情報処理方法について説明する。図19は、第2実施形態に係る情報処理方法の一例を説明するためのフローチャートである。図20の状態(a)は、アバター4Cがアバター4Aに話し掛けている様子を示すユーザAに提供される仮想空間200Aの平面図である。図20の状態(b)は、アバター4Aがアバター4Cの方に振り向いた様子を示すユーザAに提供される仮想空間200Aの平面図である。図21の状態(a)は、図20の状態(a)におけるアバター4Cの顔面の状態を示す図である。図21の状態(b)は、図20の状態(b)におけるアバター4Cの顔面の状態を示す図である。第3実施形態の前提条件は、各アバターの配置位置を除いて、第1実施形態の前提条件と同一である。
次に、図19〜図21を参照することで第3実施形態に係る情報処理方法について説明する。図19は、第2実施形態に係る情報処理方法の一例を説明するためのフローチャートである。図20の状態(a)は、アバター4Cがアバター4Aに話し掛けている様子を示すユーザAに提供される仮想空間200Aの平面図である。図20の状態(b)は、アバター4Aがアバター4Cの方に振り向いた様子を示すユーザAに提供される仮想空間200Aの平面図である。図21の状態(a)は、図20の状態(a)におけるアバター4Cの顔面の状態を示す図である。図21の状態(b)は、図20の状態(b)におけるアバター4Cの顔面の状態を示す図である。第3実施形態の前提条件は、各アバターの配置位置を除いて、第1実施形態の前提条件と同一である。
図19を参照すると、ステップS50において、ユーザ端末1Aの制御部121(以下、単に制御部121という。)は、アバター4Aの視野CVを特定する。次に、制御部121は、アバター4Bの視線情報を含むアバター4Bの制御情報をサーバ2から受信する(ステップS51)。その後、制御部121は、アバター4Cの視線情報を含むアバター4Cの制御情報をサーバ2から受信する(ステップS52)。尚、制御部121は、ステップS51の処理の前に、アバター4Aの制御情報をサーバ2に送信している点に留意されたい。
次に、ステップS53において、制御部121は、ユーザBの音声(例えば、「ねえねえ」)を示す音声データ(ユーザBの音声データ)をサーバ2から受信した後に、ユーザBの音声データを加工する。その後、ヘッドフォン116は、加工された音声データに基づいてユーザBの音声を出力する。
次に、制御部121は、音声を出力したユーザがユーザBであると決定した上で、アバター4Bの視線SLbがアバター4Aを向いている状態でユーザBの音声データが受信されたかどうかを判定する(ステップS54)。具体的には、制御部121は、ユーザBの音声データがサーバ2から受信されている期間において、アバター4Bの視線情報と、アバター4B,4Aの位置に関する情報に基づいて、アバター4Bの視線SLbがアバター4Aに交差するかどうか判定する。ステップS4の判定結果がYESの場合、制御部121は、アバター4Bがアバター4Aの視野CV内に存在するかどうかを判定する(ステップS55)。ステップS55の判定結果がNOの場合、制御部121は、アバター4Bの表示態様を変化させるようにアバター4Bを更新する(ステップS56)。
例えば、制御部121は、図20の状態(b)に示すように、アバター4Bの顔面の色を変化させてもよい。また、制御部121は、アバター4Bの顔面以外の所定部位の色や形状等を変化させてもよい。このように、アバター4Bの声掛け(「ねえねえ」)に応じて、アバター4Aがアバター4Bの方に振り返った場合に、図20の状態(b)に示すように、更新されたアバター4B(顔面の色が変化したアバター4B)とアバター4Cがアバター4Aの視野CV内に位置する。つまり、ユーザ端末1AのHMD110に、アバター4Cと顔面の色が変化したアバター4Bを含む視野画像が表示されるので、ユーザAは、顔面の色が変化したアバター4Bを視認することで、アバター4Aに話し掛けたアバターがアバター4Bであることを容易に把握することができる。このように、本実施形態によれば、ユーザAは、アバター4Bの表示態様の変化を視認することで、アバター4Bに関連するユーザBから音声が出力されたことを容易に把握することができる。一方、ステップS54の判定結果がNOの場合又はステップS55の判定結果がYESの場合、アバター4Bの表示態様は変化しない。
また、本実施形態によれば、アバター4Aの視野CV内にアバター4Bが存在しない場合にアバター4Bの表示態様が変化する。このように、ユーザAは、アバター4Bから話し掛けられたときに、視野画像V内にアバター4Bが表示されなくても、後程、アバター4Bの表示態様の変化を視認することで、アバター4Bに関連するユーザBから音声が出力されたことを容易に把握することができる。尚、アバター4Bがアバター4Aの視野CV内に存在するときでも、制御部121は、アバター4Bの表示態様を変化させてもよい。
また、第1〜第3実施形態の説明では、仮想空間200Aを示す仮想空間データがユーザ端末1A側で更新されていることを前提としているが、仮想空間データはサーバ2側で更新されてもよい。さらに、第1〜第3実施形態の説明では、視野画像Vに対応する視野画像データがユーザ端末1A側で更新されていることを前提としているが、視野画像データはサーバ2側で更新されてもよい。この場合、ユーザ端末1Aは、サーバ2から送信された視野画像データに基づいて、HMD110に視野画像を表示する。
また、ユーザ端末1の制御部121によって実行される各種処理をソフトウェアによって実現するために、各種処理をコンピュータ(プロセッサ)に実行させるための制御プログラムが記憶部123又はメモリに予め組み込まれていてもよい。または、制御プログラムは、磁気ディスク(HDD、フロッピーディスク)、光ディスク(CD−ROM,DVD−ROM、Blu−rayディスク等)、光磁気ディスク(MO等)、フラッシュメモリ(SDカード、USBメモリ、SSD等)等のコンピュータ読取可能な記憶媒体に格納されていてもよい。この場合、記憶媒体が制御装置120に接続されることで、当該記憶媒体に格納された制御プログラムが、記憶部123に組み込まれる。そして、記憶部123に組み込まれた制御プログラムがRAM上にロードされて、プロセッサがロードされた当該プログラムを実行することで、制御部121は各種処理を実行する。
また、制御プログラムは、通信ネットワーク3上のコンピュータから通信インターフェース125を介してダウンロードされてもよい。この場合も同様に、ダウンロードされた当該制御プログラムが記憶部123に組み込まれる。
以上、本開示の実施形態について説明をしたが、本発明の技術的範囲が本実施形態の説明によって限定的に解釈されるべきではない。本実施形態は一例であって、特許請求の範囲に記載された発明の範囲内において、様々な実施形態の変更が可能であることが当業者によって理解されるところである。本発明の技術的範囲は特許請求の範囲に記載された発明の範囲及びその均等の範囲に基づいて定められるべきである。
U,A,B,C:ユーザ
1,1A,1B,1C:ユーザ端末
2:サーバ
3:通信ネットワーク
4A,4B,4C:アバター
6A:仮想スクリーン
21:通信インターフェース
22:記憶部(ストレージ)
23:制御部
24:バス
60A:表示画面
100:仮想空間配信システム(配信システム)
112:表示部
114:センサ
116:ヘッドフォン
118:マイク
120:制御装置
121:制御部
123:記憶部(ストレージ)
124:I/Oインターフェース
125:通信インターフェース
126:バス
130:位置センサ
140:注視センサ
200,200A,200B:仮想空間
210:中心位置
300:仮想カメラ
320:外部コントローラ
CV:視野
Ca,Cb:交差点
1,1A,1B,1C:ユーザ端末
2:サーバ
3:通信ネットワーク
4A,4B,4C:アバター
6A:仮想スクリーン
21:通信インターフェース
22:記憶部(ストレージ)
23:制御部
24:バス
60A:表示画面
100:仮想空間配信システム(配信システム)
112:表示部
114:センサ
116:ヘッドフォン
118:マイク
120:制御装置
121:制御部
123:記憶部(ストレージ)
124:I/Oインターフェース
125:通信インターフェース
126:バス
130:位置センサ
140:注視センサ
200,200A,200B:仮想空間
210:中心位置
300:仮想カメラ
320:外部コントローラ
CV:視野
Ca,Cb:交差点
Claims (8)
- 各々がヘッドマウントデバイスと、音声が入力される音声入力部と、音声が出力される音声出力部とを有する複数のユーザ端末と、サーバとを備えた仮想空間配信システムにおいてコンピュータによって実行される情報処理方法であって、
前記情報処理方法は、
(a)前記複数のユーザ端末のうち第1ユーザ端末に関連付けられた第1アバターと、前記複数のユーザ端末のうち第2ユーザ端末に関連付けられた第2アバターと、前記複数のユーザ端末のうち第3ユーザ端末に関連付けられた第3アバターとを含む仮想空間を規定する仮想空間データを生成するステップと、
(b)前記第1ユーザ端末のヘッドマウントデバイスの動きに応じて、前記第1アバターの視野を更新するステップと、
(c)前記第1アバターの視野と前記仮想空間データに基づいて、前記第1ユーザ端末のヘッドマウントデバイスに視野画像を表示するステップと、
(d)前記第2ユーザ端末の音声入力部に音声が入力された場合、前記入力された音声を示す音声データを前記第2ユーザ端末から受信するステップと、
(e)前記ステップ(d)の後に、前記第1ユーザ端末のヘッドマウントデバイスに表示される視野画像上において、前記第2アバターの表示態様又は前記第2アバターの視線の表示態様を変化させるステップと、を含む情報処理方法。 - (f)前記第2アバターの視線に基づいて第2視線オブジェクトを生成するステップと、
(g)前記第3アバターの視線に基づいて第3視線オブジェクトを生成するステップと、
をさらに含み、
前記ステップ(e)は、
(e1)前記ステップ(d)の後に、前記第2視線オブジェクトの表示態様を変化させるように前記第2視線オブジェクトを更新するステップと、
(e2)前記更新された第2視線オブジェクトと前記第3視線オブジェクトが前記第1アバターの視野内に存在する場合に、前記第1ユーザ端末のヘッドマウントデバイスに、前記更新された第2視線オブジェクト及び前記第3視線オブジェクトを含む視野画像を表示させるステップと、
を含む、請求項1に記載の情報処理方法。 - 前記第1アバターの視野内に前記第2アバターが存在しない場合に、前記ステップ(f)が実行され、
前記第1アバターの視野内に前記第3アバターが存在しない場合に、前記ステップ(g)が実行される、請求項2に記載の情報処理方法。 - 前記ステップ(e)は、
(e3)前記ステップ(d)の後に、前記第2アバターの視線に基づいて第2視線オブジェクトを生成するステップと、
(e4)前記第2視線オブジェクトが前記第1アバターの視野内に存在する場合に、前記第1ユーザ端末のヘッドマウントデバイスに、前記第2視線オブジェクトを含む視野画像を表示させるステップと、
を含む、請求項1に記載の情報処理方法。 - 前記第1アバターの視野内に前記第2アバターが存在しない場合に、前記ステップ(e3)が実行される、請求項4に記載の情報処理方法。
- 前記ステップ(e)は、
(e5)前記ステップ(d)の後であって、前記第2アバターの視線が前記第1アバターを向いている状態で前記第2ユーザ端末の音声入力部に音声が入力された場合に、前記第2アバターの表示態様を変化させるように前記第2アバターを更新するステップと、
(e6)前記第2アバターが前記第1アバターの視野内に存在する場合に、前記第1ユーザ端末のヘッドマウントデバイスに、前記更新された第2アバターを含む視野画像を表示させるステップと、
を含む、請求項1に記載の情報処理方法。 - 前記第1アバターの視野内に前記第2アバターが存在しない場合に、前記ステップ(e5)が実行される、請求項6に記載の情報処理方法。
- 請求項1から7のうちいずれか一項に記載の情報処理方法をコンピュータに実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017158547A JP2018109940A (ja) | 2017-08-21 | 2017-08-21 | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017158547A JP2018109940A (ja) | 2017-08-21 | 2017-08-21 | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016255987A Division JP6205047B1 (ja) | 2016-12-08 | 2016-12-28 | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018109940A true JP2018109940A (ja) | 2018-07-12 |
Family
ID=62845134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017158547A Pending JP2018109940A (ja) | 2017-08-21 | 2017-08-21 | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018109940A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021535526A (ja) * | 2018-09-04 | 2021-12-16 | アップル インコーポレイテッドApple Inc. | 模擬現実(sr)におけるデバイス共有及び対話性の表示 |
WO2022121558A1 (zh) * | 2020-12-11 | 2022-06-16 | 北京字跳网络技术有限公司 | 一种直播演唱方法、装置、设备和介质 |
-
2017
- 2017-08-21 JP JP2017158547A patent/JP2018109940A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021535526A (ja) * | 2018-09-04 | 2021-12-16 | アップル インコーポレイテッドApple Inc. | 模擬現実(sr)におけるデバイス共有及び対話性の表示 |
JP7081052B2 (ja) | 2018-09-04 | 2022-06-06 | アップル インコーポレイテッド | 模擬現実(sr)におけるデバイス共有及び対話性の表示 |
WO2022121558A1 (zh) * | 2020-12-11 | 2022-06-16 | 北京字跳网络技术有限公司 | 一种直播演唱方法、装置、设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6266814B1 (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP6203369B1 (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
CN108037826B (zh) | 信息处理方法及用于使计算机实施该信息处理方法的程序 | |
JP6228640B1 (ja) | 表示制御方法および当該表示制御方法をコンピュータに実行させるためのプログラム | |
JP6212666B1 (ja) | 情報処理方法、プログラム、仮想空間配信システム及び装置 | |
JP6223614B1 (ja) | 情報処理方法、情報処理プログラム、情報処理システム及び情報処理装置 | |
JP6298874B1 (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP6207691B1 (ja) | 情報処理方法および当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP2018109940A (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP6266823B1 (ja) | 情報処理方法、情報処理プログラム、情報処理システム及び情報処理装置 | |
JP6289703B1 (ja) | 情報処理方法、情報処理プログラム、情報処理システム及び情報処理装置 | |
JP2018120583A (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP6535699B2 (ja) | 情報処理方法、情報処理プログラム及び情報処理装置 | |
JP2018097847A (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP2019036239A (ja) | 情報処理方法、情報処理プログラム、情報処理システム及び情報処理装置 | |
JP6205047B1 (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP6403843B1 (ja) | 情報処理方法、情報処理プログラム及び情報処理装置 | |
JP2018163637A (ja) | 情報処理方法、情報処理プログラム、情報処理システム及び情報処理装置 | |
JP2018092656A (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP6738308B2 (ja) | 情報処理方法、プログラム、仮想空間配信システム及び装置 | |
JP6275809B1 (ja) | 表示制御方法および当該表示制御方法をコンピュータに実行させるためのプログラム | |
JP2018007227A (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP2018163642A (ja) | 情報処理方法、情報処理プログラム、情報処理システム及び情報処理装置 | |
JP6216851B1 (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP2018010480A (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム |