特許第6266814号(P6266814)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社コロプラの特許一覧

特許6266814情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
<>
  • 特許6266814-情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム 図000002
  • 特許6266814-情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム 図000003
  • 特許6266814-情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム 図000004
  • 特許6266814-情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム 図000005
  • 特許6266814-情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム 図000006
  • 特許6266814-情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム 図000007
  • 特許6266814-情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム 図000008
  • 特許6266814-情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム 図000009
  • 特許6266814-情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム 図000010
  • 特許6266814-情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム 図000011
  • 特許6266814-情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム 図000012
  • 特許6266814-情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム 図000013
  • 特許6266814-情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム 図000014
  • 特許6266814-情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム 図000015
  • 特許6266814-情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム 図000016
  • 特許6266814-情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム 図000017
  • 特許6266814-情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム 図000018
  • 特許6266814-情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム 図000019
  • 特許6266814-情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム 図000020
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】6266814
(24)【登録日】2018年1月5日
(45)【発行日】2018年1月24日
(54)【発明の名称】情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
(51)【国際特許分類】
   G06T 19/00 20110101AFI20180115BHJP
   G06F 3/0484 20130101ALI20180115BHJP
   G06F 3/01 20060101ALI20180115BHJP
【FI】
   G06T19/00 300B
   G06F3/0484 150
   G06F3/01 510
【請求項の数】13
【全頁数】30
(21)【出願番号】特願2017-13091(P2017-13091)
(22)【出願日】2017年1月27日
【審査請求日】2017年7月3日
【早期審査対象出願】
(73)【特許権者】
【識別番号】509070463
【氏名又は名称】株式会社コロプラ
(74)【代理人】
【識別番号】110001416
【氏名又は名称】特許業務法人 信栄特許事務所
(72)【発明者】
【氏名】加田 健志
【審査官】 村松 貴士
(56)【参考文献】
【文献】 特開2002−358542(JP,A)
【文献】 特開2013−175929(JP,A)
【文献】 国際公開第2016/002445(WO,A1)
【文献】 特開2006−146338(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 15/00 − 19/20
G06F 3/01
G06T 3/048 − 3/0489
A63F 13/00 − 13/98
(57)【特許請求の範囲】
【請求項1】
第1ユーザの頭部に装着される第1ヘッドマウントデバイスを有する第1ユーザ端末と、サーバとを備えた仮想空間配信システムにおいてコンピュータによって実行される情報処理方法であって、
前記情報処理方法は、
(a)前記第1ユーザに関連付けられた第1アバターと、第2アバターとを含む仮想空間を規定する仮想空間データを生成するステップと、
(b)前記第1ヘッドマウントデバイスの動きに応じて、前記第1アバターの視野を更新するステップと、
(c)前記第1アバターの視野と前記仮想空間データに基づいて、前記第1ヘッドマウントデバイスに表示される視野画像を更新するステップと、
(d)前記第1アバターと前記第2アバターとの間の相対的位置関係を特定するステップと、
(e)所定の条件が満たされていると判定された場合に、前記第1ヘッドマウントデバイスに表示される視野画像上において、前記第2アバターの仮想身体の一部を拡大して表示するステップと、
を含み、
前記所定の条件は、前記相対的位置関係に関連する条件を含む、情報処理方法。
【請求項2】
前記相対的位置関係は、前記第1アバターと前記第2アバターとの間の距離であり、
前記相対的位置関係に関連する条件は、前記距離が所定の距離よりも大きいことである、請求項1に記載の情報処理方法。
【請求項3】
前記相対的位置関係は、前記第1ヘッドマウントデバイスに表示される視野画像上における前記第2アバターの仮想身体のサイズであり、
前記相対的位置関係に関連する条件は、前記第2アバターの仮想身体のサイズが所定のサイズよりも小さいことである、請求項1に記載の情報処理方法。
【請求項4】
(f)前記第2アバターの視線を特定するステップをさらに含み、
前記所定の条件は、前記第2アバターの視線に関連する条件をさらに含む、
請求項1から3のうちいずれか一項に記載の情報処理方法。
【請求項5】
前記第2アバターの視線に関連する条件は、前記第2アバターの視線が前記第1アバターに向けられていることである、請求項4に記載の情報処理方法。
【請求項6】
前記第2アバターの視線に関連する条件は、所定の期間を超えて前記第2アバターの視線が前記第1アバターに向けられていることである、請求項5に記載の情報処理方法。
【請求項7】
前記第2アバターの視線に関連する条件は、前記第2アバターの視線が前記第1アバターから他のオブジェクトに向けられた時点から所定期間内であることである、請求項4に記載の情報処理方法。
【請求項8】
(g)前記第1アバターの視線を特定するステップをさらに含み、
前記所定の条件は、前記第1アバターの視線に関連する条件をさらに含む、
請求項1から7のうちいずれか一項に記載の情報処理方法。
【請求項9】
(h)前記第2アバターの前記仮想身体の一部に関する情報を取得するステップをさらに含み、
前記所定の条件は、前記第2アバターの前記仮想身体の一部に関連する条件をさらに含む、
請求項1から8のうちいずれか一項に記載の情報処理方法。
【請求項10】
前記第2アバターの前記仮想身体の一部に関連する条件は、前記仮想空間の高さ方向における前記仮想身体の一部の位置が所定の範囲内であることである、請求項9に記載の情報処理方法。
【請求項11】
前記第2アバターの前記仮想身体の一部に関連する条件は、前記仮想身体の一部の形状が所定の形状であることである、請求項9に記載の情報処理方法。
【請求項12】
(i)前記第2アバターに関連する音声を示す音声データを取得するステップをさらに含み、
前記所定の条件は、前記音声データを取得することをさらに含む、
請求項1から11のうちいずれか一項に記載の情報処理方法。
【請求項13】
請求項1から12のうちいずれか一項に記載の情報処理方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理方法および当該情報処理方法をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【0002】
ヘッドマウントデバイス(Head Mounted Device:以下、単にHMDという。)を装着した複数のユーザ間でネットワークを介して仮想空間を共有することが知られている。ここで、仮想空間は、VR(Virtual Reality)空間、AR(Augmented Reality)空間及びMR(Mixed Reality) 空間を含むものである。例えば、非特許文献1では、複数のユーザ間で一つのVR空間を共有した上で、ハンドデバイスの操作を通じてVR空間内でボディランゲージを交えたコミュニケーションを楽しむことが提案されている。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】”Social VR Demo - Selfie Stick and 360 Photo Spheres - Oculus”, [online]、平成28年4月13日、VRScout、[平成28年12月26日検索]、インターネット<https://www.youtube.com/watch?v=-pumFtAjgLY>
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、非特許文献1では、各々が複数のユーザのうちの一つによって操作される複数のアバター間の距離が近いために、複数のユーザ間においてボディランゲージを交えた円滑なコミュニケーションを図ることが可能となる。しかしながら、仮想空間内における2つのアバター間の距離が大きくなると、一方のアバターを操作するユーザは、他方のアバターの仮想身体の一部(例えば、仮想手)の動作が視認しづらくなるため、2人のユーザ間においてボディランゲージを交えた円滑なコミュニケーションを図ることが困難となってしまう。このように、複数のユーザ間の円滑なコミュニケーションを実現する観点より、ユーザに提供される仮想体験を改善する余地がある。
【0005】
本開示は、ユーザにリッチな仮想体験を提供することが可能な情報処理方法及び当該情報処理方法をコンピュータに実現させるためのプログラムを提供する。
【課題を解決するための手段】
【0006】
本開示が示す一態様によれば、第1ユーザの頭部に装着される第1ヘッドマウントデバイスを有する第1ユーザ端末と、サーバとを備えた仮想空間配信システムにおいてコンピュータによって実行される情報処理方法が提供される。
前記情報処理方法は、
(a)前記第1ユーザに関連付けられた第1アバターと、第2アバターとを含む仮想空間を規定する仮想空間データを生成するステップと、
(b)前記第1ヘッドマウントデバイスの動きに応じて、前記第1アバターの視野を更新するステップと、
(c)前記第1アバターの視野と前記仮想空間データに基づいて、前記第1ヘッドマウントデバイスに表示される視野画像を更新するステップと、
(d)前記第1アバターと前記第2アバターとの間の相対的位置関係を特定するステップと、
(e)所定の条件が満たされていると判定された場合に、前記第1ヘッドマウントデバイスに表示される視野画像上において、前記第2アバターの仮想身体の一部を拡大して表示するステップと、
を含む。
前記所定の条件は、前記相対的位置関係に関連する条件を含む。
【発明の効果】
【0007】
本開示によれば、ユーザにリッチな仮想体験を提供することが可能な情報処理方法及び当該情報処理方法をコンピュータに実現させるためのプログラムを提供することができる。
【図面の簡単な説明】
【0008】
図1】本発明の実施形態(以下、単に本実施形態という。)に係る仮想空間配信システムを示す概略図である。
図2】ユーザ端末を示す概略図である。
図3】HMDを装着したユーザの頭部を示す図である。
図4】制御装置のハードウェア構成を示す図である。
図5】視野画像をHMDに表示する処理を示すフローチャートである。
図6】仮想空間の一例を示すxyz空間図である。
図7】状態(a)は、図6に示す仮想空間のyx平面図である。状態(b)は、図6に示す仮想空間のzx平面図である。
図8】HMDに表示された視野画像の一例を示す図である。
図9図1に示すサーバのハードウェア構成を示す図である。
図10】状態(a)は、ユーザAに提供される仮想空間を示す図である。状態(b)は、ユーザBに提供される仮想空間を示す図である。
図11】ユーザ端末間において各アバターの動きを同期させる処理の一例を説明するためのシーケンス図である。
図12】本発明の第1実施形態(以下、単に第1実施形態という。)に係る情報処理方法の一例を説明するためのフローチャートである。
図13】第1実施形態に係る情報処理方法を説明するためのユーザAに提供される仮想空間を示す図である。
図14】アバターの仮想右手が拡大表示された視野画像の一例を示す図である。
図15】アバターの仮想右手が拡大表示された視野画像の他の一例を示す図である。
図16】アバターの仮想身体のサイズが所定のサイズよりも小さいかどうかを判定する処理を説明するための図である。
図17】本発明の第2実施形態(以下、単に第2実施形態という。)に係る情報処理方法の一例を説明するためのフローチャートである。
図18】第2実施形態に係る情報処理方法を説明するためのユーザAに提供される仮想空間を示す図である。
図19】アバターの仮想右手が拡大表示された視野画像の一例を示す図である。
【発明を実施するための形態】
【0009】
[本開示が示す実施形態の説明]
本開示が示す実施形態の概要を説明する。
(1)第1ユーザの頭部に装着される第1ヘッドマウントデバイスを有する第1ユーザ端末と、サーバとを備えた仮想空間配信システムにおいてコンピュータによって実行される情報処理方法であって、
前記情報処理方法は、
(a)前記第1ユーザに関連付けられた第1アバターと、第2アバターとを含む仮想空間を規定する仮想空間データを生成するステップと、
(b)前記第1ヘッドマウントデバイスの動きに応じて、前記第1アバターの視野を更新するステップと、
(c)前記第1アバターの視野と前記仮想空間データに基づいて、前記第1ヘッドマウントデバイスに表示される視野画像を更新するステップと、
(d)前記第1アバターと前記第2アバターとの間の相対的位置関係を特定するステップと、
(e)所定の条件が満たされていると判定された場合に、前記第1ヘッドマウントデバイスに表示される視野画像上において、前記第2アバターの仮想身体の一部を拡大して表示するステップと、
を含み、
前記所定の条件は、前記相対的位置関係に関連する条件を含む、情報処理方法。
【0010】
上記方法によれば、第1アバターと第2アバターとの間の相対的位置関係に関する条件を含む所定の条件が満たされていると判定された場合に、第1ヘッドマウントデバイスに表示される視野画像上において、第2アバターの仮想身体の一部(例えば、仮想手)が拡大して表示される。このように、第1ユーザは、視野画像上に拡大して表示された第2アバターの仮想身体の一部を見ることで、第2アバターの仮想身体の一部の動作を明確に視認することができるので、第1アバターと第2アバター間におけるボディランゲージを交えた円滑なコミュニケーションを実現することができる。従って、ユーザにリッチな仮想体験を提供することができる。
【0011】
(2)前記相対的位置関係は、前記第1アバターと前記第2アバターとの間の距離であり、
前記相対的位置関係に関連する条件は、前記距離が所定の距離よりも大きいことである、項目(1)に記載の情報処理方法。
【0012】
上記方法によれば、所定の条件は、第1アバターと第2アバターとの間の距離が所定の距離よりも大きいことを含む。当該所定の条件が満たされていると判定された場合に、第1ヘッドマウントデバイスに表示される視野画像上において、第2アバターの仮想身体の一部が拡大して表示される。このように、第1アバターが第2アバターから離れた位置に存在する場合でも、第1ユーザは、第2アバターの仮想身体の一部の動作を明確に視認することができるので、第1アバターと第2アバター間におけるボディランゲージを交えた円滑なコミュニケーションを実現することができる。
【0013】
(3)前記相対的位置関係は、前記第1ヘッドマウントデバイスに表示される視野画像上における前記第2アバターの仮想身体のサイズであり、
前記相対的位置関係に関連する条件は、前記第2アバターの仮想身体のサイズが所定のサイズよりも小さいことである、項目(1)に記載の情報処理方法。
【0014】
上記方法によれば、所定の条件は、第1ヘッドマウントデバイスに表示される視野画像上における第2アバターの仮想身体のサイズが所定のサイズよりも小さいことを含む。当該所定の条件が満たされていると判定された場合に、第1ヘッドマウントデバイスに表示される視野画像上において、第2アバターの仮想身体の一部が拡大して表示される。このように、第1ユーザが第2アバターから離れた位置に存在する場合でも、第1ユーザは、第2アバターの仮想身体の一部を明確に視認することができるので、第1アバターと第2アバター間におけるボディランゲージを交えた円滑なコミュニケーションを実現することができる。
【0015】
(4)(f)前記第2アバターの視線を特定するステップをさらに含み、
前記所定の条件は、前記第2アバターの視線に関連する条件をさらに含む、
項目(1)から(3)のうちいずれか一項に記載の情報処理方法。
【0016】
上記方法によれば、所定の条件は、第1アバターと第2アバターとの間の相対的位置関係に関連する条件と第2アバターの視線に関連する条件とを含む。当該所定の条件が満たされていると判定された場合に、第1ヘッドマウントデバイスに表示される視野画像上において、第2アバターの仮想身体の一部が拡大して表示される。このように、第2アバターの視線の状態を考慮して、視野画像上に第2アバターの仮想身体の一部が拡大表示される。このため、第1アバターと第2アバター間におけるコミュニケーションが行われると予期されるときに、視野画像上に第2アバターの仮想身体の一部を拡大表示することができる。
【0017】
(5)前記第2アバターの視線に関連する条件は、前記第2アバターの視線が前記第1アバターに向けられていることである、項目(4)に記載の情報処理方法。
【0018】
上記方法によれば、所定の条件は、第1アバターと第2アバターとの間の相対的位置関係に関連する条件と第2アバターの視線が第1アバターに向けられていることを含む。当該所定の条件が満たされたと判定された場合、第1ヘッドマウントデバイスに表示される視野画像上において、第2アバターの仮想身体の一部が拡大して表示される。このように、第2アバターの視線が第1アバターに向けられているときに(換言すれば、第2アバターが第1アバターを見ているときに)、視野画像上に第2アバターの仮想身体の一部が拡大表示される。このため、第1アバターと第2アバター間におけるコミュニケーションが行われると予期されるときに、視野画像上に第2アバターの仮想身体の一部を拡大表示することができる。
【0019】
(6)前記第2アバターの視線に関連する条件は、所定の期間を超えて前記第2アバターの視線が前記第1アバターに向けられていることである、項目(5)に記載の情報処理方法。
【0020】
上記方法によれば、所定の条件は、第1アバターと第2アバターとの間の相対的位置関係に関連する条件と、所定の期間を超えて第2アバターの視線が第1アバターに向けられていることを含む。当該所定の条件が満たされたと判定された場合、第1ヘッドマウントデバイスに表示される視野画像上において、第2アバターの仮想身体の一部が拡大して表示される。このように、所定の期間を超えて第2アバターの視線が第1アバターに向けられているときに(換言すれば、所定の期間を超えて第2アバターが第1アバターを見ているときに)、視野画像上に第2アバターの仮想身体の一部が拡大表示される。このため、第1アバターと第2アバター間におけるコミュニケーションが行われると予期されるときに、視野画像上に第2アバターの仮想身体の一部を拡大表示することができる。
【0021】
(7)前記第2アバターの視線に関連する条件は、前記第2アバターの視線が前記第1アバターから他のオブジェクトに向けられた時点から所定期間内であることである、項目(4)に記載の情報処理方法。
【0022】
上記方法によれば、所定の条件は、第1アバターと第2アバターとの間の相対的位置関係に関連する条件と、第2アバターの視線が第1アバターから他のオブジェクトに向けられた時点から所定期間内であることを含む。当該所定の条件が満たされたと判定された場合に、第1ヘッドマウントデバイスに表示される視野画像上において、第2アバターの仮想身体の一部が拡大して表示される。このように、第2アバターの視線が第1アバターから他のオブジェクトに向けられた時点から所定期間内であるときに、視野画像上に第2アバターの仮想身体の一部が拡大表示される。このため、第1アバターと第2アバター間におけるコミュニケーションが継続されていると予期されるときに、視野画像上に第2アバターの仮想身体の一部を拡大表示することができる。
【0023】
(8)(g)前記第1アバターの視線を特定するステップをさらに含み、
前記所定の条件は、前記第1アバターの視線に関連する条件をさらに含む、
項目(1)から(7)のうちいずれか一項に記載の情報処理方法。
【0024】
上記方法によれば、所定の条件は、第1アバターと第2アバターとの間の相対的位置関係に関連する条件と第1アバターの視線に関連する条件とを含む。当該所定の条件が満たされていると判定された場合に、第1ヘッドマウントデバイスに表示される視野画像上において、第2アバターの仮想身体の一部が拡大して表示される。このように、第1アバターの視線の状態を考慮して、視野画像上に第2アバターの仮想身体の一部が拡大表示される。このため、第1アバターと第2アバター間におけるコミュニケーションが行われると予期されるときに、視野画像上に第2アバターの仮想身体の一部を拡大表示することができる。
【0025】
(9)(h)前記第2アバターの前記仮想身体の一部に関する情報を取得するステップをさらに含み、
前記所定の条件は、前記第2アバターの前記仮想身体の一部に関連する条件をさらに含む、
項目(1)から(8)のうちいずれか一項に記載の情報処理方法。
【0026】
上記方法によれば、所定の条件は、第1アバターと第2アバターとの間の相対的位置関係に関連する条件と、第2アバターの仮想身体の一部に関連する条件とを含む。当該所定の条件が満たされていると判定された場合に、第1ヘッドマウントデバイスに表示される視野画像上において、第2アバターの仮想身体の一部が拡大して表示される。このように、第2アバターの仮想身体の一部の状態を考慮して、視野画像上に第2アバターの仮想身体の一部が拡大表示される。このため、第1アバターと第2アバター間におけるコミュニケーションが行われると予期されるときに、視野画像上に第2アバターの仮想身体の一部を拡大表示することができる。
【0027】
(10)前記第2アバターの前記仮想身体の一部に関連する条件は、前記仮想空間の高さ方向における前記仮想身体の一部の位置が所定の範囲内であることである、項目(9)に記載の情報処理方法。
【0028】
上記方法によれば、所定の条件は、第1アバターと第2アバターとの間の相対的位置関係に関連する条件と、仮想空間の高さ方向における第2アバターの仮想身体の一部の位置が所定の範囲内であることを含む。当該所定の条件が満たされていると判定された場合に、第1ヘッドマウントデバイスに表示される視野画像上において、第2アバターの仮想身体の一部が拡大して表示される。このように、仮想空間の高さ方向における第2アバターの仮想身体の一部の位置が所定の範囲内であるときに、視野画像上に第2アバターの仮想身体の一部が拡大表示される。このため、第1アバターと第2アバター間におけるコミュニケーションが行われると予期されるときに、視野画像上に第2アバターの仮想身体の一部を拡大表示することができる。
【0029】
(11)前記第2アバターの前記仮想身体の一部に関連する条件は、前記仮想身体の一部の形状が所定の形状であることである、項目(9)に記載の情報処理方法。
【0030】
上記方法によれば、所定の条件は、第1アバターと第2アバターとの間の相対的位置関係に関連する条件と、第2アバターの仮想身体の一部の形状が所定の形状であることを含む。当該所定の条件が満たされていると判定された場合に、第1ヘッドマウントデバイスに表示される視野画像上において、第2アバターの仮想身体の一部が拡大して表示される。このように、第2アバターの仮想身体の一部の形状が所定の形状であるときに、視野画像上に第2アバターの仮想身体の一部が拡大表示される。このため、第1アバターと第2アバター間におけるコミュニケーションが行われると予期されるときに、視野画像上に第2アバターの仮想身体の一部を拡大表示することができる。
【0031】
(12)(i)前記第2アバターに関連する音声を示す音声データを取得するステップをさらに含み、
前記所定の条件は、前記音声データを取得することをさらに含む、
項目(1)から(11)のうちいずれか一項に記載の情報処理方法。
【0032】
上記方法によれば、所定の条件は、第2アバターに関連する音声データを取得することを含む。当該所定の条件が満たされたと判定された場合、第1ヘッドマウントデバイスに表示される視野画像上において、第2アバターの仮想身体の一部が拡大表示される。このため、第1アバターと第2アバター間におけるコミュニケーションが行われると予期されるときに、視野画像上に第2アバターの仮想身体の一部を拡大表示することができる。
【0033】
(13)項目(1)から(12)のうちいずれか一項に記載の情報処理方法をコンピュータに実行させるためのプログラム。
【0034】
上記プログラムによれば、ユーザにリッチな仮想体験を提供することができる。
【0035】
[本開示が示す実施形態の詳細]
以下、本開示が示す実施形態について図面を参照しながら説明する。尚、本実施形態の説明において既に説明された部材と同一の参照番号を有する部材については、説明の便宜上、その説明は繰り返さない。
【0036】
最初に、仮想空間配信システム100の構成の概略について図1を参照して説明する。図1は、仮想空間配信システム100(以下、単に配信システム100という。)の概略図である。図1に示すように、配信システム100は、ユーザA(第1ユーザ)によって操作されるユーザ端末1A(第1ユーザ端末)と、ユーザB(第2ユーザ)によって操作されるユーザ端末1B(第2ユーザ端末)と、サーバ2とを備える。ユーザ端末1A,1Bは、インターネット等の通信ネットワーク3を介してサーバ2に通信可能に接続されている。尚、本実施形態において、仮想空間とは、VR(Virtual Reality)空間と、AR(Argumented Reality)空間と、MR(Mixed Reality)空間を含むものである。また、以降では、説明の便宜上、各ユーザ端末1A,1Bを単にユーザ端末1と総称する場合がある。さらに、各ユーザA,Bを単にユーザUと総称する場合がある。また、本実施形態では、ユーザ端末1A,1Bは、同一の構成を備えているものとする。
【0037】
次に、図2を参照してユーザ端末1の構成について説明する。図2は、ユーザ端末1を示す概略図である。図2に示すように、ユーザ端末1は、ユーザUの頭部に装着されたヘッドマウントデバイス(HMD)110と、ヘッドフォン116と、マイク118と、位置センサ130と、外部コントローラ320と、制御装置120とを備える。
【0038】
HMD110は、表示部112と、HMDセンサ114と、注視センサ140とを備えている。表示部112は、HMD110を装着したユーザUの視界(視野)を完全に覆うように構成された非透過型の表示装置を備えている。これにより、ユーザUは、表示部112に表示された視野画像のみを見ることで仮想空間に没入することができる。尚、表示部112は、ユーザUの左目に画像を提供するように構成された左目用表示部と、ユーザUの右目に画像を提供するように構成された右目用表示部とから構成されてもよい。また、HMD110は、透過型の表示装置を備えてもよい。この場合、透過型の表示装置は、その透過率を調整することで、一時的に非透過型の表示装置として構成されてもよい。
【0039】
HMDセンサ114は、HMD110の表示部112の近傍に搭載される。HMDセンサ114は、地磁気センサ、加速度センサ、傾きセンサ(角速度センサやジャイロセンサ等)のうちの少なくとも1つを含み、ユーザUの頭部に装着されたHMD110の各種動き(傾き等)を検出することができる。
【0040】
注視センサ140は、ユーザUの視線を検出するアイトラッキング機能を有する。注視センサ140は、例えば、右目用注視センサと、左目用注視センサを備えてもよい。右目用注視センサは、ユーザUの右目に例えば赤外光を照射して、右目(特に、角膜や虹彩)から反射された反射光を検出することで、右目の眼球の回転角に関する情報を取得してもよい。一方、左目用注視センサは、ユーザUの左目に例えば赤外光を照射して、左目(特に、角膜や虹彩)から反射された反射光を検出することで、左目の眼球の回転角に関する情報を取得してもよい。
【0041】
ヘッドフォン116(音声出力部)は、ユーザUの左耳と右耳にそれぞれ装着されている。ヘッドフォン116は、制御装置120から音声データ(電気信号)を受信し、当該受信した音声データに基づいて音声を出力するように構成されている。マイク118(音声入力部)は、ユーザUから発声された音声を収集し、当該収集された音声に基づいて音声データ(電気信号)を生成するように構成されている。さらに、マイク118は、音声データを制御装置120に送信するように構成されている。
【0042】
位置センサ130は、例えば、ポジション・トラッキング・カメラにより構成され、HMD110と外部コントローラ320の位置を検出するように構成されている。位置センサ130は、制御装置120に無線又は有線により通信可能に接続されており、HMD110に設けられた図示しない複数の検知点の位置、傾き又は発光強度に関する情報を検出するように構成されている。さらに、位置センサ130は、外部コントローラ320に設けられた図示しない複数の検知点の位置、傾き及び/又は発光強度に関する情報を検出するように構成されている。検知点は、例えば、赤外線や可視光を放射する発光部である。また、位置センサ130は、赤外線センサや複数の光学カメラを含んでもよい。
【0043】
外部コントローラ320は、ユーザUの身体の一部(頭部以外の部位であり、本実施形態においてはユーザUの手)の動きを検知することにより、仮想空間内に表示されるアバターの仮想手の動作を制御するために使用される。外部コントローラ320は、ユーザUの右手によって操作される右手用外部コントローラ320R(以下、単にコントローラ320Rという。)と、ユーザUの左手によって操作される左手用外部コントローラ320L(以下、単にコントローラ320Lという。)と、を有する。コントローラ320Rは、ユーザUの右手の位置や右手の手指の動きを示す装置である。また、コントローラ320Rの動きに応じて仮想空間内に存在するアバターの仮想右手が動く。コントローラ320Lは、ユーザUの左手の位置や左手の手指の動きを示す装置である。また、コントローラ320Lの動きに応じて仮想空間内に存在するアバターの仮想左手が動く。
【0044】
制御装置120は、HMD110を制御するように構成されたコンピュータである。制御装置120は、位置センサ130から取得された情報に基づいて、HMD110の位置情報を特定し、当該特定された位置情報に基づいて、仮想空間における仮想カメラの位置と、現実空間におけるHMD110を装着したユーザUの位置を正確に対応付けることができる。さらに、制御装置120は、位置センサ130及び/又は外部コントローラ320に内蔵されたセンサから取得された情報に基づいて、外部コントローラ320の動作を特定し、当該特定された外部コントローラ320の動作に基づいて、仮想空間内に表示されるアバターの仮想手の動作と現実空間における外部コントローラ320の動作を正確に対応付けることができる。特に、制御装置120は、位置センサ130及び/又はコントローラ320Lに内蔵されたセンサから取得された情報に基づいて、コントローラ320Lの動作を特定し、当該特定されたコントローラ320Lの動作に基づいて、仮想空間内に表示されるアバターの仮想左手の動作と現実空間におけるコントローラ320Lの動作(ユーザUの左手の動作)を正確に対応付けることができる。同様に、制御装置120は、位置センサ及び/コントローラ320Rに内蔵されたセンサから取得された情報に基づいて、コントローラ320Rの動作を特定し、当該特定されたコントローラ320Rの動作に基づいて、仮想空間内に表示されるアバターの仮想右手の動作と現実空間におけるコントローラ320Rの動作(ユーザUの右手の動作)を正確に対応付けることができる。
【0045】
また、制御装置120は、注視センサ140(左目用注視センサと右目用注視センサ)から送信された情報に基づいて、ユーザUの右目の視線と左目の視線をそれぞれ特定し、当該右目の視線と当該左目の視線の交点である注視点を特定することができる。さらに、制御装置120は、特定された注視点に基づいて、ユーザUの両目の視線(ユーザUの視線)を特定することができる。ここで、ユーザUの視線は、ユーザUの両目の視線であって、ユーザUの右目と左目を結ぶ線分の中点と注視点を通る直線の方向に一致する。
【0046】
次に、図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軸回りの角度変化に基づいて、仮想カメラの視軸を制御するための角度情報を決定する。
【0047】
次に、図4を参照することで、制御装置120のハードウェア構成について説明する。図4は、制御装置120のハードウェア構成を示す図である。図4に示すように、制御装置120は、制御部121と、記憶部123と、I/O(入出力)インターフェース124と、通信インターフェース125と、バス126とを備える。制御部121と、記憶部123と、I/Oインターフェース124と、通信インターフェース125は、バス126を介して互いに通信可能に接続されている。
【0048】
制御装置120は、HMD110とは別体に、パーソナルコンピュータ、タブレット又はウェアラブルデバイスとして構成されてもよいし、HMD110に内蔵されていてもよい。また、制御装置120の一部の機能がHMD110に搭載されると共に、制御装置120の残りの機能がHMD110とは別体の他の装置に搭載されてもよい。
【0049】
制御部121は、メモリとプロセッサを備えている。メモリは、例えば、各種プログラム等が格納されたROM(Read Only Memory)やプロセッサにより実行される各種プログラム等が格納される複数ワークエリアを有するRAM(Random Access Memory)等から構成される。プロセッサは、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)及び/又はGPU(Graphics Processing Unit)であって、ROMに組み込まれた各種プログラムから指定されたプログラムをRAM上に展開し、RAMとの協働で各種処理を実行するように構成されている。
【0050】
特に、プロセッサが制御プログラムをRAM上に展開し、RAMとの協働で制御プログラムを実行することで、制御部121は、制御装置120の各種動作を制御してもよい。制御部121は、視野画像データに基づいてHMD110の表示部112に視野画像を表示する。これにより、ユーザUは、仮想空間に没入することができる。
【0051】
記憶部(ストレージ)123は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、USBフラッシュメモリ等の記憶装置であって、プログラムや各種データを格納するように構成されている。記憶部123は、本実施形態に係る情報処理方法の少なくとも一部をコンピュータに実行させるための制御プログラムや、複数のユーザによる仮想空間の共有を実現するための制御プログラムを格納してもよい。また、記憶部123には、ユーザUの認証プログラムや各種画像やオブジェクト(例えば、アバター等)に関するデータが格納されてもよい。さらに、記憶部123には、各種データを管理するためのテーブルを含むデータベースが構築されてもよい。
【0052】
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とのそれぞれと無線接続されていてもよい。
【0053】
通信インターフェース125は、制御装置120をLAN(Local Area Network)、WAN(Wide Area Network)又はインターネット等の通信ネットワーク3に接続させるように構成されている。通信インターフェース125は、通信ネットワーク3を介してサーバ2等の外部装置と通信するための各種有線接続端子や、無線接続のための各種処理回路を含んでおり、通信ネットワーク3を介して通信するための通信規格に適合するように構成されている。
【0054】
次に、図5から図8を参照することで視野画像をHMD110に表示するための処理について説明する。図5は、視野画像をHMD110に表示する処理を示すフローチャートである。図6は、仮想空間200の一例を示すxyz空間図である。図7の状態(a)は、図6に示す仮想空間200のyx平面図である。図7の状態(b)は、図6に示す仮想空間200のzx平面図である。図8は、HMD110に表示された視野画像Vの一例を示す図である。
【0055】
図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内で移動させてもよい。
【0056】
次に、ステップ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のアバターの顔の向きを決定してもよい。
【0057】
このように、制御部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を変化させてもよい。
【0058】
次に、ステップS3において、制御部121は、HMD110の表示部112に表示される視野画像Vを示す視野画像データを生成する。具体的には、制御部121は、仮想空間200を規定する仮想空間データと、仮想カメラ300の視野CVとに基づいて、視野画像データを生成する。
【0059】
次に、ステップS4において、制御部121は、視野画像データに基づいて、HMD110の表示部112に視野画像Vを表示する(図7参照)。このように、HMD110を装着しているユーザUの動きに応じて、仮想カメラ300の視野CVが変化し、HMD110の表示部112に表示される視野画像Vが変化するので、ユーザUは仮想空間200に没入することができる。
【0060】
尚、仮想カメラ300は、左目用仮想カメラと右目用仮想カメラを含んでもよい。この場合、制御部121は、仮想空間データと左目用仮想カメラの視野に基づいて、左目用の視野画像を示す左目用視野画像データを生成する。さらに、制御部121は、仮想空間データと、右目用仮想カメラの視野に基づいて、右目用の視野画像を示す右目用視野画像データを生成する。その後、制御部121は、左目用視野画像データに基づいて、左目用表示部に左目用の視野画像を表示すると共に、右目用視野画像データに基づいて、右目用表示部に右目用の視野画像を表示する。このようにして、ユーザUは、左目用視野画像と右目用視野画像との間の視差により、視野画像を3次元的に視認することができる。尚、仮想カメラは、後述するように、ユーザによって操作されるアバターの目の位置に配置されてもよい。例えば、左目用仮想カメラは、アバターの左目に配置される一方で、右目用仮想カメラは、アバターの右目に配置されてもよい。
【0061】
また、図5に示すステップS1〜S4の処理は1フレーム(動画を構成する静止画像)毎に実行されてもよい。例えば、動画のフレームレートが90fpsである場合、ステップS1〜S4の処理はΔT=1/90(秒)間隔で繰り返し実行されてもよい。このように、ステップS1〜S4の処理が所定間隔ごとに繰り返し実行されるため、HMD110の動作に応じて仮想カメラ300の視野が更新されると共に、HMD110の表示部112に表示される視野画像Vが更新される。
【0062】
次に、図1に示すサーバ2のハードウェア構成について図9を参照して説明する。図9は、サーバ2のハードウェア構成を示す図である。図9に示すように、サーバ2は、制御部23と、記憶部22と、通信インターフェース21と、バス24とを備える。制御部23と、記憶部22と、通信インターフェース21は、バス24を介して互いに通信可能に接続されている。制御部23は、メモリとプロセッサを備えており、メモリは、例えば、ROM及びRAM等から構成されると共に、プロセッサは、例えば、CPU、MPU及び/又はGPUにより構成される。
【0063】
記憶部(ストレージ)22は、例えば、大容量のHDD等である。記憶部22は、本実施形態に係る情報処理方法の少なくとも一部をコンピュータに実行させるための制御プログラムや、複数のユーザによる仮想空間の共有を実現させるための制御プログラムを格納してもよい。また、記憶部22は、各ユーザを管理するためのユーザ管理情報や各種画像やオブジェクト(例えば、アバター等)に関するデータを格納してもよい。通信インターフェース21は、サーバ2を通信ネットワーク3に接続させるように構成されている。
【0064】
次に、図1,10及び11を参照してユーザ端末1Aとユーザ端末1B間において各アバター4A,4Bの動きを同期させる処理の一例について説明する。図10の状態(a)は、ユーザAに提供される仮想空間200Aを示す図である。図10の状態(b)は、ユーザBに提供される仮想空間200Bを示す図である。図11は、ユーザ端末1Aとユーザ端末1B間において各アバター4A,4Bの動きを同期させる処理の一例を説明するためのシーケンス図である。本説明では、前提条件として、図10に示すように、ユーザ端末1A(ユーザA)に関連付けられたアバター4A(第1アバター)と、ユーザ端末1B(ユーザB)に関連付けられたアバター4B(第2アバター)が同一の仮想空間を共有しているものとする。つまり、通信ネットワーク3を介してユーザAとユーザBが一つの仮想空間を共有するものとする。
【0065】
図10の状態(a)に示すように、ユーザAの仮想空間200Aは、アバター4Aと、アバター4Bとを含む。アバター4Aは、ユーザAによって操作されると共に、ユーザAの動作に連動する。アバター4Aは、ユーザ端末1Aのコントローラ320Lの動作(ユーザAの左手の動作)に連動する仮想左手43A(アバター4Aの仮想身体の一部)と、ユーザ端末1Aのコントローラ320Rの動作(ユーザAの右手の動作)に連動する仮想右手42A(アバター4Aの仮想身体の一部)とを有する。アバター4Bは、ユーザBによって操作されると共に、ユーザBの動作に連動する。アバター4Bは、ユーザBの左手の動作を示すユーザ端末1Bのコントローラ320Lの動作に連動する仮想左手43B(アバター4Bの仮想身体の一部)と、ユーザBの右手の動作を示すユーザ端末1Bのコントローラ320Rの動作に連動する仮想右手42B(アバター4Bの仮想身体の一部)とを有する。
【0066】
尚、ユーザAに提供される仮想空間200Aでは、アバター4Aが可視化されない場合も想定される。この場合、仮想空間200Aに配置されるアバター4Aは、少なくともユーザ端末1AのHMD110の動きに連動する仮想カメラ300を含む。
【0067】
また、ユーザ端末1A,1BのHMD110の位置に応じてアバター4A,4Bの位置が特定されてもよい。同様に、ユーザ端末1A,1BのHMD110の傾きに応じてアバター4A,4Bの顔の向きが特定されてもよい。さらに、ユーザ端末1A,1Bの外部コントローラの動作に応じてアバター4A,4Bの仮想手の動作が特定されてもよい。特に、ユーザ端末1A,1Bのコントローラ320Lの動作に応じてアバター4A,4Bの仮想左手の動作が特定されると共に、ユーザ端末1A,1Bのコントローラ320Rの動作に応じてアバター4A,4Bの仮想右手の動作が特定されてもよい。また、注視センサ140によって検出されたユーザA,Bの視線を示すデータに応じてアバター4A,4Bの白目に対する黒目の相対的位置が特定されてもよい。特に、左目用注視センサによって検出されたユーザの左目の視線を示すデータに応じてアバターの左白目に対する左黒目の相対的位置が特定されてもよい。さらに、右目用注視センサによって検出されたユーザの右目の視線を示すデータに応じてアバターの右白目に対する右黒目の相対的位置が特定されてもよい。
【0068】
また、ユーザ端末1A,1BのHMD110の傾きに応じてアバター4A,4Bの視線が特定されてもよい。換言すれば、アバターの視線は、仮想カメラの視軸Lに応じて特定されてもよい。ここで、アバターの視線とはアバターの両目の視線を指す。尚、ユーザ端末1A,1BのHMD110の傾き及びユーザA,Bの視線(ユーザA,Bの両目の視線)に基づいてアバター4A,4Bの視線が特定されてもよい。ここで、ユーザA,Bの視線は、上記したように、注視センサ140によって検出されたユーザA,Bの視線を示すデータに応じて特定される。
【0069】
また、アバター4A,4Bの各々の目には、仮想カメラ300(図6)が配置されてもよい。特に、アバター4A,4Bの左目には、左目用仮想カメラが配置されると共に、アバター4A,4Bの右目には、右目用仮想カメラが配置されてもよい。尚、以降の説明では、仮想カメラ300は、アバター4A,4Bの目に配置されているものとする。このため、アバター4Aの視野CVは、アバター4Aに配置された仮想カメラ300の視野CV(図7参照)と一致するものとする。同様に、アバター4Bの視野CVは、アバター4Bに配置された仮想カメラ300の視野CV(図7参照)と一致するものとする。
【0070】
図10の状態(b)に示すように、ユーザBの仮想空間200Bは、アバター4Aと、アバター4Bとを含む。仮想空間200A内におけるアバター4A,4Bの位置は、仮想空間200B内におけるアバター4A,4Bの位置に対応してもよい。
【0071】
尚、ユーザBに提供される仮想空間200Bでは、アバター4Bが可視化されない場合も想定される。この場合、仮想空間200Bに配置されるアバター4Bは、少なくともユーザ端末1BのHMD110の動きに連動する仮想カメラ300を含む。
【0072】
次に、図11を参照すると、ステップS10において、ユーザ端末1Aの制御部121は、ユーザAの音声データを生成する。例えば、ユーザAがユーザ端末1Aのマイク118(音声入力部)に音声を入力したときに、マイク118は、入力された音声を示す音声データを生成する。その後、マイク118は生成された音声データをI/Oインターフェース124を介して制御部121に送信する。
【0073】
次に、ステップS11において、ユーザ端末1Aの制御部121は、アバター4Aの制御情報を生成した上で、当該生成したアバター4Aの制御情報とユーザAの音声を示す音声データ(ユーザAの音声データ)をサーバ2に送信する。その後、サーバ2の制御部23は、ユーザ端末1Aからアバター4Aの制御情報とユーザAの音声データを受信する(ステップS12)。ここで、アバター4Aの制御情報は、アバター4Aの動作を制御するために必要な情報である。アバター4Aの制御情報は、アバター4Aの視線に関する情報(視線情報)を含む。さらに、アバター4Aの制御情報は、アバター4Aの位置に関する情報と、アバター4Aの顔の向きに関する情報と、アバター4Aの仮想手(仮想左手と仮想右手)に関する情報と、アバター4Aの目の動き(特に、黒目の動き)に関する情報を含んでいてもよい。
【0074】
次に、ステップS13において、ユーザ端末1Bの制御部121は、アバター4Bの制御情報を生成した上で、当該生成したアバター4Bの制御情報をサーバ2に送信する。その後、サーバ2の制御部23は、ユーザ端末1Bからアバター4Bの制御情報を受信する(ステップS14)。ここで、アバター4Bの制御情報は、アバター4Bの動作を制御するために必要な情報である。アバター4Bの制御情報は、アバター4Bの視線に関する情報(視線情報)を含む。さらに、アバター4Bの制御情報は、アバター4Bの位置に関する情報と、アバター4Bの顔の向きに関する情報と、アバター4Bの仮想手(仮想左手と仮想右手)に関する情報と、アバター4Bの目の動き(特に、黒目の動き)に関する情報を含んでいてもよい。
【0075】
次に、サーバ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)。
【0076】
一方、ユーザ端末1Bの制御部121は、ステップS20においてアバター4Aの制御情報とユーザAの音声データを受信した後に、アバター4A,4Bの制御情報に基づいて、仮想空間200B(図10の状態(b)参照)を示す仮想空間データを更新する(ステップS21)。その後、ユーザ端末1Bの制御部121は、HMD110の位置や傾きに応じてアバター4B(仮想カメラ300)の視野CVを特定した上で、更新された仮想空間データと、アバター4Bの視野CVとに基づいて、HMD110に表示される視野画像を更新する(ステップS22)。
【0077】
その後、ユーザ端末1Bの制御部121は、受信したユーザAの音声データと、アバター4Aの制御情報に含まれるアバター4Aの位置に関する情報と、アバター4Bの位置に関する情報と、所定の音声処理アルゴリズムに基づいてユーザAの音声データを加工する。その後、制御部121は、加工された音声データをヘッドフォン116(音声出力部)に送信した上で、ヘッドフォン116は、加工された音声データに基づいてユーザAの音声を出力する(ステップS23)。このように、仮想空間上においてユーザ間(アバター間)の音声チャット(VRチャット)を実現することができる。
【0078】
本実施形態では、ユーザ端末1A,1Bがサーバ2にアバター4Aの制御情報とアバター4Bの制御情報をそれぞれ送信した後に、サーバ2がアバター4Aの制御情報をユーザ端末1Bに送信する一方、アバター4Bの制御情報をユーザ端末1Aに送信する。このように、ユーザ端末1Aとユーザ端末1B間において各アバター4A,4Bの動きを同期させることが可能となる。
【0079】
(第1実施形態)
次に、図12及び図13を参照することで第1実施形態に係る情報処理方法について説明する。図12は、第1実施形態に係る情報処理方法の一例を説明するためのフローチャートである。図13は、第1実施形態に係る情報処理方法を説明するためのユーザAに提供される仮想空間200Aを示す図である。
【0080】
第1実施形態では、前提条件として、図13に示すように、アバター4Aと、アバター4Bが同一の仮想空間を共有しているものとする。つまり、通信ネットワーク3を介してユーザA,Bが一つの仮想空間を共有するものとする。
【0081】
ユーザAの仮想空間200Aは、アバター4Aと、アバター4Bとを含む。ユーザ端末1Aの制御部121は、仮想空間200Aを示す仮想空間データを生成する。
【0082】
図12を参照すると、ステップS30において、ユーザ端末1Aの制御部121(以下、単に制御部121という。)は、アバター4Aの動作を制御するために必要なアバター4Aの制御情報を生成する。その後、制御部121は、アバター4Aの制御情報をサーバ2に送信する。次に、ステップS31において、制御部121は、アバター4Bの動作を制御するために必要なアバター4Bの制御情報をサーバ2から受信する。具体的には、サーバ2は、アバター4Bの制御情報をユーザ端末1Bから受信した後に、アバター4Bの制御情報をユーザ端末1Aに送信する。このように、制御部121は、アバター4Bの制御情報をサーバ2から受信する。
【0083】
次に、制御部121は、受信したアバター4Bの制御情報に含まれるアバター4Bの位置に関する情報に基づいて、アバター4Bの位置を特定する。その後、制御部121は、アバター4Aの位置とアバター4Aの位置に基づいて、アバター4Aとアバター4Bとの間の距離D(アバター4Aとアバター4Bとの間の相対的位置関係の一例)を特定する(ステップS32)。
【0084】
次に、制御部121は、特定された距離Dが所定の距離Dthよりも大きいかどうかを判定する(ステップS33)。ここで、所定の距離Dthは、コンテンツの内容に応じて適宜設定されてもよい。所定の距離Dthは、アバター4Aとアバター4Bが十分に離れているかどうかを判定するための指標である。距離Dが所定の距離Dthよりも大きいと判定された場合(ステップS33でYES)、アバター4Aがアバター4Bから十分に離れた位置に存在すると判定され、本処理はステップS34の処理に進む。一方、距離Dが所定の距離Dth以下であると判定された場合(ステップS33でNO)、アバター4Aがアバター4Bから十分に離れた位置には存在しないと判定され、本情報処理方法に係る処理は終了する。ステップS33で規定される判定条件は、アバター4Aとアバター4Bとの間の相対的位置関係に関連する条件である。
【0085】
次に、制御部121は、アバター4Bの制御情報に含まれるアバター4Bの視線情報に基づいて、アバター4Bの視線5B(図13参照)を特定する(ステップS34)。その後、制御部121は、アバター4Bの視線5Bがアバター4Aに向けられているかどうかを判定する(ステップS35)。例えば、視線5Bがアバター4Aの仮想身体と交差する場合に、制御部121は、視線5Bはアバター4Aに向けられていると判定する。ステップS35に規定される判定条件は、アバター4Bの視線に関連する条件である。ステップS35の判定結果がYESの場合、本処理はステップS36の処理に進む。一方、ステップS35の判定結果がNOの場合、本情報処理方法に係る処理は終了する。
【0086】
尚、ステップS35では、制御部121は、所定の期間Tth(例えば、X秒)を超えてアバター4Bの視線5Bがアバター4Aに向けられているかどうかを判定してもよい。このように、所定の期間Tth<時間Tの時間条件をステップS35で規定される判定条件に加えることで、アバター4B(ユーザB)がアバター4A(ユーザA)に視線を送っているかどうかを確実に判定することができる。
【0087】
次に、ステップS36において、制御部121は、アバター4Aの視線5A(図13参照)がアバター4Bに向けられているかどうかを判定する。例えば、視線5Aがアバター4Bの仮想身体と交差する場合に、制御部121は、視線5Aはアバター4Bに向けられていると判定する。ステップS36に規定される判定条件は、アバター4Aの視線に関連する条件である。ステップS36の判定結果がYESの場合、本処理はステップS37の処理に進む。一方、ステップS36の判定結果がNOの場合、本情報処理方法に係る処理は終了する。尚、ステップS36では、制御部121は、所定の期間Tth(例えば、X秒)を超えてアバター4Aの視線5Aがアバター4Bに向けられているかどうかを判定してもよい。
【0088】
次に、ステップS37において、制御部121は、アバター4Bの制御情報に含まれるアバター4Bの仮想手(仮想左手43Bと仮想右手42B)に関する情報(アバター4Bの仮想身体の一部に関する情報)に基づいて、仮想左手43Bの位置(x1,y1,z1)と仮想右手42Bの位置(x2,y2,z2)を特定する。次に、ステップS38において、制御部121は、仮想空間200Aのy軸方向(高さ方向)における仮想左手43Bの位置y1と仮想右手42Bの位置y2が所定の範囲内に存在するかどうかを判定する。ここで、「所定の範囲内」は、コンテンツ内容に応じて適宜設定されてもよい。「所定の範囲内」とは、アバター4Bが仮想手を用いてアバター4Aに対して合図を送っているかどうかを判定するための指標である。例えば、所定の範囲がyth1より大きくyth2よりも小さい範囲として規定される場合を考える。ここで、yth1,yth2は0<yth1<yth2であるとする。本例では、仮想左手43Bの位置y1がyth1>y1である場合、制御部121は、ステップS38で規定される判定条件は満たされないと判定する。一方、仮想右手42Bの位置y2がyth1<y2<yth2である場合、制御部121は、ステップS38で規定される判定条件は満たされると判定する。ステップS38の判定結果がYESの場合、本処理はステップS39の処理に進む。一方、ステップS38の判定結果がNOの場合、本情報処理方法に係る処理は終了する。ステップS38で規定される判定条件は、アバター4Bの仮想手に関連する条件である。本例では、仮想右手42BのみがステップS38で規定される判定条件を満たすので、ステップS40で規定される処理は仮想右手42Bに対してのみ実行される。
【0089】
次に、ステップS39において、制御部121は、ユーザBの音声を示す音声データ(ユーザBの音声データ)をサーバ2から受信したかどうかを判定する。例えば、ユーザBがユーザ端末1Bのマイク118を通じて「おーい」と発声した場合、ユーザBの音声を示す音声データがユーザ端末1Bからサーバ2に送信される。その後、サーバ2は、ユーザBの音声データをユーザ端末1Aに送信する。この結果、制御部121は、ユーザ端末1AがユーザBの音声データを受信したと判定する。ステップS39の判定結果がYESの場合、本処理はステップS40の処理に進む。一方、ステップS39の判定結果がNOの場合、本情報処理方法に係る処理は終了する。
【0090】
次に、ステップS40において、制御部121は、ユーザ端末1AのHMD110に表示される視野画像V上において、アバター4Bの仮想右手42Bを拡大表示する。つまり、制御部121は、図12に示すステップS33,S35,S36,S38,S39の全ての判定条件が満たされている判定した場合に、視野画像V上においてアバター4Bの仮想右手42Bを拡大表示する。
【0091】
尚、本例では、仮想右手42BのみがステップS38に規定される判定条件を満たすため、仮想右手42Bのみが視野画像V上において拡大表示される。一方、仮想右手42Bと仮想左手43Bの両方がステップS38に規定される判定条件を満たす場合には、仮想左手43Bと仮想右手42Bの両方が視野画像V上において拡大表示されてもよい。以降に、仮想右手42Bを拡大表示する方法について図14及び図15を参照して説明する。
【0092】
図14は、アバター4Bの仮想右手42Bが拡大表示された視野画像Vの一例を示す図である。図15は、アバター4Bの仮想右手42Bが拡大表示された視野画像Vの他の一例を示す図である。
【0093】
第1の方法としては、図14に示すように、ユーザAが装着するHMD110上に表示される視野画像V中に、拡大表示された仮想右手42Bを表示するためのサブ画像領域SVが設けられていてもよい。この場合、最初に、制御部121は、HMD110の動きに応じてアバター4Aの視野CVを更新した上で、アバター4の視野CVと仮想空間200Aを示す仮想空間データに基づいて、HMD110に表示される視野画像Vを更新する。その後、制御部121は、視野画像V中にサブ画像領域SVを設定した上で、サブ画像領域SV中に拡大表示された仮想右手42Bを表示する。図14に示すように、視野画像Vに表示されたアバター4Bの仮想右手42Bの移動に応じて、拡大表示された仮想右手42Bがサブ画像領域SV内で移動する。
【0094】
また、拡大表示された仮想右手42Bは、アバター4Bの仮想右手42Bの付近に配置されたサブ仮想カメラ(図示せず)によって撮像されてもよい。この場合、制御部121は、サブ仮想カメラの視野を特定した上で、サブ仮想カメラの視野と仮想空間データに基づいて、サブ視野画像データを生成する。その後、制御部121は、生成されたサブ視野画像データに基づいて、サブ画像領域SV内に拡大表示された仮想右手42Bを示すサブ視野画像を表示してもよい。
【0095】
また、仮想右手42Bと仮想左手43Bの両方が視野画像V上において拡大表示される場合には、拡大表示された仮想右手42Bを表示するための第1のサブ画像領域と拡大表示された仮想右手42Bを表示するための第2のサブ画像領域が視野画像V上に設けられてもよい。この場合、第1のサブ仮想カメラがアバター4Bの仮想右手42Bの付近に配置されると共に、第2のサブ仮想カメラがアバター4Bの仮想左手43Bの付近に配置されてもよい。
【0096】
第2の方法としては、図15に示すように、制御部121は、アバター4Bの仮想右手42Bを拡大するようにアバター4Bを更新した上で、更新されたアバター4Bが表示された視野画像Vをユーザ端末1AのHMD110上に表示してもよい。このように、拡大表示された仮想右手42Bが視野画像V上に表示される。第2の方法は、アバター4Bの仮想身体の一部である仮想右手42B自体を拡大する点で第1の方法とは相違する。
【0097】
本実施形態によれば、アバター4Bの仮想手を拡大表示するためのステップS40の処理を実行するためには、ステップS33,S35,S36,S38,S39でそれぞれ規定される判定条件の全てを満たす必要がある。これらの判定条件が全て満たされていると判定された場合に、ユーザ端末1AのHMD110に表示される視野画像V上において、アバター4Bの仮想手(本例では、仮想右手42B)が拡大して表示される。このように、ユーザAは、視野画像V上に拡大して表示されたアバター4Bの仮想右手42Bを見ることで、アバター4Bの仮想右手42Bの動作(例えば、手を振っている動作)を明確に視認することができるので、アバター4A(ユーザA)とアバター4B(ユーザB)間におけるボディランゲージを交えた円滑なコミュニケーションを実現することができる。従って、ユーザにリッチな仮想体験を提供することができる。
【0098】
また、本実施形態によれば、ステップS33で規定された判定条件がアバター4Bの仮想手を拡大表示させるための判定条件の一つとして設けられている。つまり、アバター4Aとアバター4Bが互いに十分に離れていない場合には(D≦Dth)、ユーザAはアバター4Bの仮想手を明確に視認することができるため、アバター4Bの仮想手は拡大表示されない。一方、アバター4Aとアバター4Bが互いに十分に離れている場合では(D>Dth)、ユーザAは、アバター4Bの仮想手が拡大表示されることで、アバター4Bの仮想手の動作を明確に視認することができる。このように、アバター4Aとアバター4Bが互いに十分に離れている場合でも、アバター4Aとアバター4B間におけるボディランゲージを交えた円滑なコミュニケーションを実現することができる。
【0099】
また、本実施形態によれば、ステップS35で規定された判定条件がアバター4Bの仮想手を拡大表示させるための判定条件の一つとして設けられている。つまり、アバター4Bの視線5Bがアバター4Aに向けられているときに(換言すれば、ユーザBがユーザAを見ているときに)、視野画像V上にアバター4Bの仮想手が拡大表示される。このため、アバター4Aとアバター4Bとの間のコミュニケーションが行われると予期されるときに、視野画像V上にアバター4Bの仮想手を拡大表示することができる。
【0100】
また、ステップS36で規定された判定条件がアバター4Bの仮想手を拡大表示させるための判定条件の一つとして設けられている。つまり、アバター4Aの視線5Aがアバター4Bに向けられているときに(換言すれば、ユーザAがユーザBを見ているときに)、視野画像V上にアバター4Bの仮想手が拡大表示される。このため、アバター4Aとアバター4Bとの間のコミュニケーションが行われると予期されるときに、視野画像V上にアバター4Bの仮想手を拡大表示することができる。
【0101】
また、ステップS38で規定された判定条件がアバター4Bの仮想手を拡大表示させるための判定条件の一つとして設けられている。つまり、仮想空間200Aのy軸方向におけるアバター4Bの仮想左手43Bの位置y1が所定の範囲内に存在するときに、視野画像V上に仮想左手43Bが拡大表示される。同様に、仮想空間200Aのy軸方向におけるアバター4Bの仮想右手42Bの位置y2が所定の範囲内に存在するときに、視野画像V上に仮想右手42Bが拡大表示される。このように、アバター4Bが仮想手を用いてアバター4Aに合図を送っている場合に、合図のために使用されるアバター4Bの仮想手が拡大表示される。
【0102】
また、ステップ39で規定された判定条件がアバター4Bの仮想手を拡大表示させるための判定条件の一つとして設けられている。つまり、ユーザBの音声(例えば、「おーい」)を発したときに、視野画像V上にアバター4Bの仮想手が拡大表示される。このため、アバター4Aとアバター4Bとの間のコミュニケーションが行われると予期されるときに、視野画像V上にアバター4Bの仮想手を拡大表示することができる。
【0103】
尚、本実施形態では、ステップS33,S35,S36,S38,S39でそれぞれ規定される判定条件の全てが満たされている場合に、視野画像V上にアバター4Bの仮想手が拡大表示されるが、本実施形態はこれに限定されるものではない。例えば、S35,S36,S38,S39でそれぞれ規定される判定条件を省略した上で、ステップS33で規定される判定条件のみが満たされた場合に、ステップS40で規定される拡大表示処理が実行されてもよい。このように、アバター4Bの仮想手を拡大表示させるための判定条件は、ステップS33で規定された判定条件のみを含んでいてもよい。
【0104】
また、アバター4Bの仮想手を拡大表示させるための判定条件は、ステップS35,S36,S38,S39でそれぞれ規定される判定条件のうちの少なくとも一つと、ステップS33で規定された判定条件とを含んでいてもよい。例えば、アバター4Bの仮想手を拡大表示させるための判定条件は、ステップS33で規定された判定条件と、ステップS35で規定された判定条件とによって構成されてもよい。
【0105】
また、本実施形態では、アバター4Aとアバター4Bとの間の相対的位置関係に関連する条件としてステップS33で規定された判定条件が実行されるが、本実施形態はこれに限定されない。この点において、制御部121は、ユーザ端末1AのHMD110に表示される視野画像V上におけるアバター4Bの仮想身体のサイズを特定した上で、特定されたアバター4Bの仮想身体のサイズが所定のサイズよりも小さいかどうかを判定してもよい(アバターサイズ判定条件)。例えば、図16に示すように、視野画像V上に表示されるアバター4Bの仮想身体が半径rで規定される所定の領域Rth(点線で示される領域)内に完全に収まる場合に、制御部121は、アバター4Bの仮想身体のサイズが所定のサイズよりも小さいと判定してもよい。アバター4Bの仮想身体のサイズが所定のサイズよりも小さいと判定された場合、アバター4Aとアバター4Bは互いに十分に離れた位置に存在していると判定される。これとは反対に、視野画像V上に表示されるアバター4Bの仮想身体が所定の領域Rth内に完全に収まらない場合に、制御部121は、アバター4Bの仮想身体のサイズが所定のサイズ以上であると判定してもよい。アバター4Bの仮想身体のサイズが所定のサイズ以上であると判定された場合、アバター4Aとアバター4Bは互いに十分に離れた位置に存在していないと判定される。さらに、制御部121は、視野画像V上に表示されるアバター4Bの高さ寸法や幅寸法に応じて、アバター4Bの仮想身体のサイズが所定のサイズよりも小さいかどうかを判定してもよい。
【0106】
アバター4Bの仮想手を拡大表示させるための判定条件は、上記アバターサイズ判定条件のみを含んでいてもよい。また、アバター4Bの仮想手を拡大表示させるための判定条件は、ステップS35,S36,S38,S39でそれぞれ規定される判定条件のうちの少なくとも一つと、上記アバターサイズ判定条件とを含んでいてもよい。
【0107】
また、本実施形態では、ステップS38で規定された仮想手の位置に関連する判定条件に代えて又は追加して、仮想手の形状に関連する判定条件を設けてもよい。この点において、制御部121は、アバター4Bの仮想手の形状が所定の形状(例えば、指差し形状)であるかどうかを判定してもよい。この場合、アバター4Bの仮想手の形状が所定の形状であると判定された場合に、本処理はステップS39に進む。一方、アバター4Bの仮想手の形状が所定の形状ではないと判定された場合、本情報処理方法に係る処理は終了する。
【0108】
(第2実施形態)
次に、図17から図19を参照することで第2実施形態に係る情報処理方法について説明する。図17は、第2実施形態に係る情報処理方法の一例を説明するためのフローチャートである。図18は、第2実施形態に係る情報処理方法を説明するためのユーザAに提供される仮想空間200Aを示す図である。図19は、アバター4Bの仮想右手42Bが拡大表示された視野画像Vの一例を示す図である。第2実施形態に係る情報処理方法は、ステップS55〜S58で規定される処理が設けられている点で第1実施形態に係る情報処理方法とは相違する。尚、以降の説明では、第1実施形態で既に説明した事項については繰り返し説明しない。
【0109】
図17を参照すると、ユーザ端末1Aの制御部121(以下、単に制御部121という。)は、ステップS50〜S55で規定される処理を実行する。ステップS50〜S55で規定される処理は、図12に示すステップS30〜S35で規定される処理と同一である。次に、制御部121は、アバター4Bの視線5Bがアバター4Aに現在向けられていると判定した場合(ステップS55でYES)、本処理はステップS57に進む。一方、制御部121は、アバター4Bの視線5Bがアバター4Aに現在向けられていないと判定した場合(ステップS55でNO)、視線5Bがアバター4Aから他のオブジェクト(本例では、太陽オブジェクト8)に向けられた時点から所定期間内T(例えば、Y秒以内)であるかどうかを判定する(ステップS56)。ステップS56の判定結果がNOの場合、本情報処理方法に係る処理は終了する。一方、ステップS56の判定結果がYESの場合、本処理はステップS57に進む。
【0110】
次に、ステップS57において、制御部121は、アバター4Bの制御情報に含まれるアバター4Bの仮想手(仮想左手43Bと仮想右手42B)に関する情報に基づいて、仮想左手43Bの形状と仮想右手42Bの形状を特定する。その後、制御部121は、特定された仮想左手43Bの形状と仮想右手42Bの形状が所定の形状(本例では、指差し形状)であるかどうかを判定する(ステップS58)。本例では、図18に示すように、仮想右手42Bの形状が指差し形状となっているため、制御部121は、仮想右手42Bの形状が指差し形状となっていると判定する(ステップS58でYES)。一方、仮想左手43Bの形状が指差し形状となっていないため、制御部121は、仮想左手43Bの形状が指差し形状となっていないと判定する(ステップS58でNO)。特に、制御部121は、仮想手の親指が立っているとき又は中指、薬指及び小指が伸びているときは、仮想手の形状は指差し形状となっていないと判定してもよい。
【0111】
ステップS58の判定結果がYESの場合、本処理はステップS59の処理に進む。一方、ステップS58の判定結果がNOの場合、本情報処理方法に係る処理は終了する。ステップS58で規定される判定条件は、アバター4Bの仮想手に関連する条件である。本例では、仮想右手42BのみがステップS38で規定される判定条件を満たすので、ステップS60で規定される処理は仮想右手43Bに対してのみ実行される。
【0112】
その後、制御部121は、ステップS59及びS60で規定される処理を実行する。ステップS59及びS60で規定される処理は、図12に示すステップS39及びS40で規定される処理と同一である。
【0113】
特に、ステップS59において、ユーザBがユーザ端末1Bのマイク118を通じて「アレ見て!」と発声した場合、ユーザBの音声「アレ見て!」を示す音声データがユーザ端末1Bからサーバ2に送信される。
【0114】
また、ステップS60において、制御部121は、ユーザ端末1AのHMD110に表示される視野画像V上において、アバター4Bの仮想右手42Bを拡大表示する。つまり、制御部121は、図17に示すステップS53,(S55若しくはS56),S58並びにS59の全ての判定条件が満たされていると判定した場合に、視野画像V上においてアバター4Bの仮想右手42Bを拡大表示する。
【0115】
尚、本例では、仮想右手42BのみがステップS58に規定される判定条件を満たすため、仮想右手42Bのみが視野画像V上において拡大表示される。一方、仮想右手42Bと仮想左手43Bの両方がステップS58に規定される判定条件を満たす場合には、仮想左手43Bと仮想右手42Bの両方が視野画像V上において拡大表示されてもよい。図19に示すように、制御部121は、サブ画像領域SV中に拡大表示された仮想右手42Bを表示する。また、拡大表示された仮想右手42Bは、アバター4Bの仮想右手42Bの付近に配置されたサブ仮想カメラによって撮像されてもよい。
【0116】
また、制御部121は、アバター4Bの仮想右手42Bを拡大するようにアバター4Bを更新した上で、更新されたアバター4Bが表示された視野画像Vをユーザ端末1AのHMD110上に表示してもよい。
【0117】
本実施形態によれば、ステップS53,S55,S58及びS59でそれぞれ規定される判定条件の全てが満たされた場合に、ユーザ端末1AのHMD110に表示される視野画像V上において、アバター4Bの仮想手(特に、仮想右手42B)が拡大して表示される。さらに、ステップS55で規定される判定条件が満たされない場合でも、ステップS53,S56,S58及びS59でそれぞれ規定される判定条件の全てが満たされた場合に、視野画像V上において、アバター4Bの仮想手(特に、仮想右手42B)が拡大して表示される。このように、ユーザAは、視野画像V上に拡大して表示されたアバター4Bの仮想右手42Bを見ることで、アバター4Bの仮想右手42Bの動作(例えば、指差し動作)を明確に視認することができるので、アバター4A(ユーザA)とアバター4B(ユーザB)間におけるボディランゲージを交えた円滑なコミュニケーションを実現することができる。特に、アバター4Bが「アレ見て!」と発声すると共に、太陽オブジェクト8を指し示している場合に、ユーザAは、仮想右手42Bの指差し形状を視認することで、アバター4A(ユーザA)に太陽オブジェクト8を見てほしいといったアバター4B(ユーザB)の意図を容易に理解することができる。従って、ユーザにリッチな仮想体験を提供することができる。
【0118】
また、本実施形態によれば、ステップS56で規定された判定条件がアバター4Bの仮想手を拡大表示させるための判定条件の一つとして設けられている。つまり、アバター4Bの視線5Bがアバター4Aから他のオブジェクトに向けられた時点から所定期間T内であるときに、視野画像V上にアバター4Bの仮想手が拡大表示される。このため、アバター4Aとアバター4B間におけるコミュニケーションが継続されていると予期されるときに、視野画像V上にアバター4Bの仮想手が拡大表示される。
【0119】
また、ステップS58で規定された判定条件がアバター4Bの仮想手を拡大表示させるための判定条件の一つとして設けられている。つまり、仮想左手43Bが所定の形状(指差し形状)である場合、仮想左手43Bが視野画像V上に拡大表示される。さらに、仮想右手42Bが所定の形状(指差し形状)である場合、仮想右手42Bが視野画像V上に拡大表示される。このように、アバター4Bが仮想手を用いてアバター4Aに合図を送っている場合に、合図のために使用されるアバター4Bの仮想手が拡大表示される。
【0120】
尚、本実施形態では、ステップS53,(S55若しくはS56),S58及びS59でそれぞれ規定される判定条件の全てが満たされている場合に、視野画像V上にアバター4Bの仮想手が拡大表示されるが、本実施形態はこれに限定されるものではない。例えば、S55,S56,S58及びS59でそれぞれ規定される判定条件を省略した上で、ステップS53で規定される判定条件のみが満たされた場合に、ステップS60で規定される拡大表示処理が実行されてもよい。このように、アバター4Bの仮想手を拡大表示させるための判定条件は、ステップS53で規定された判定条件のみを含んでいてもよい。
【0121】
また、アバター4Bの仮想手を拡大表示させるための判定条件は、ステップS55,S56,S58及びS59でそれぞれ規定される判定条件のうちの少なくとも一つと、ステップS53で規定された判定条件とを含んでいてもよい。例えば、アバター4Bの仮想手を拡大表示させるための判定条件は、ステップS53で規定された判定条件と、ステップS55及び56で規定された判定条件とによって構成されてもよい。
【0122】
また、第2実施形態の説明では、アバター4Bの仮想手の形状が指差し形状の場合に、アバター4Bの仮想手が拡大表示されているが、本実施形態はこれには限定されない。例えば、アバター4Bの仮想手の形状が指差し形状以外の所定の形状である場合に、アバター4Bの仮想手が拡大表示されてもよい。
【0123】
また、第1及び第2実施形態の説明では、仮想空間200Aを示す仮想空間データがユーザ端末1A側で更新されていることを前提としているが、仮想空間データはサーバ2側で更新されてもよい。さらに、第1及び第2実施形態の説明では、視野画像Vに対応する視野画像データがユーザ端末1A側で更新されていることを前提としているが、視野画像データはサーバ2側で更新されてもよい。この場合、ユーザ端末1Aは、サーバ2から送信された視野画像データに基づいて、HMD110に視野画像を表示する。
【0124】
さらに、第1及び第2実施形態の説明では、図12及び図17に示す各処理はユーザ端末1A側で実行されているが、図12及び図17に示す複数の処理のうちの一部がサーバ2側で実行されてもよい。つまり、図12及び図17に示す処理は、ユーザ端末1A側のみ(又は、サーバ2側のみ)で実行されてもよいし、ユーザ端末1Aとサーバ2との協働により実行されてもよい。
【0125】
また、図12及び17に示す各ステップで規定される処理の順番はあくまでも一例であって、これらのステップの順番は適宜変更可能である。
【0126】
また、第1及び第2実施形態では、アバター4BはユーザBによって操作されていることを前提としているが(つまり、ユーザA,B間のソーシャルVRを前提としているが)、アバター4Bはサーバ2の制御部23(人工知能プログラム)により制御されてもよい。この場合、アバター4Bの音声内容は、制御部23によって決定されてもよい。
【0127】
本実施形態では、ユーザUの手の動きを示す外部コントローラ320の動きに応じて、アバターの仮想手の移動が制御されているが、ユーザUの手自体の移動量に応じて、仮想空間内におけるアバターの仮想手の移動が制御されてもよい。例えば、外部コントローラを用いる代わりに、ユーザの手指に装着されるグローブ型デバイスや指輪型デバイスを用いることで、位置センサ130により、ユーザUの手の位置や移動量を検出することができると共に、ユーザUの手指の動きや状態を検出することができる。また、位置センサ130は、ユーザUの手(手指を含む)を撮像するように構成されたカメラであってもよい。この場合、カメラを用いてユーザの手を撮像することにより、ユーザの手指に直接何らかのデバイスを装着させることなく、ユーザの手が表示された画像に基づいて、ユーザUの手の位置や移動量を検出することができると共に、ユーザUの手指の動きや状態を検出することができる。
【0128】
また、本実施形態では、アバターの仮想身体の一部として仮想手が拡大表示されているが、本実施形態はこれには限定されない。例えば、仮想手以外のアバターの仮想身体の一部である仮想の足や顔が拡大表示されてもよい。
【0129】
また、ユーザ端末1の制御部121によって実行される各種処理をソフトウェアによって実現するために、各種処理をコンピュータ(プロセッサ)に実行させるための制御プログラムが記憶部123又はメモリに予め組み込まれていてもよい。または、制御プログラムは、磁気ディスク(HDD、フロッピーディスク)、光ディスク(CD−ROM,DVD−ROM、Blu−rayディスク等)、光磁気ディスク(MO等)、フラッシュメモリ(SDカード、USBメモリ、SSD等)等のコンピュータ読取可能な記憶媒体に格納されていてもよい。この場合、記憶媒体が制御装置120に接続されることで、当該記憶媒体に格納された制御プログラムが、記憶部123に組み込まれる。そして、記憶部123に組み込まれた制御プログラムがRAM上にロードされて、プロセッサがロードされた当該プログラムを実行することで、制御部121は各種処理を実行する。
【0130】
また、制御プログラムは、通信ネットワーク3上のコンピュータから通信インターフェース125を介してダウンロードされてもよい。この場合も同様に、ダウンロードされた当該制御プログラムが記憶部123に組み込まれる。
【0131】
以上、本開示の実施形態について説明をしたが、本発明の技術的範囲が本実施形態の説明によって限定的に解釈されるべきではない。本実施形態は一例であって、特許請求の範囲に記載された発明の範囲内において、様々な実施形態の変更が可能であることが当業者によって理解されるところである。本発明の技術的範囲は特許請求の範囲に記載された発明の範囲及びその均等の範囲に基づいて定められるべきである。
【符号の説明】
【0132】
1,1A,1B:ユーザ端末
2:サーバ
3:通信ネットワーク
4,4A,4B:アバター
5A,5B:視線
8:太陽オブジェクト
21:通信インターフェース
22:記憶部
23:制御部
24:バス
42A,42B:仮想右手
43A,43B:仮想左手
100:仮想空間配信システム(配信システム)
112:表示部
114:センサ
116:ヘッドフォン
118:マイク
120:制御装置
121:制御部
123:記憶部
124:I/Oインターフェース
125:通信インターフェース
126:バス
130:位置センサ
140:注視センサ
200,200A,200B:仮想空間
210:中心位置
300:仮想カメラ
320:外部コントローラ
320L:左手用外部コントローラ(コントローラ)
320R:右手用外部コントローラ(コントローラ)
【要約】
【課題】ユーザにリッチな仮想体験を提供する。
【解決手段】情報処理方法は、ユーザAに関連付けられたアバター4Aと、アバター4Bとを含む仮想空間200Aを規定する仮想空間データを生成するステップと、ユーザ端末1AのHMD110の動きに応じて、アバター4Aの視野を更新するステップと、アバター4Aの視野と仮想空間データに基づいて、ユーザ端末1AのHMD110に表示される視野画像を更新するステップと、アバター4Aとアバター4Bとの間の距離Dを特定するステップと、所定の条件が満たされていると判定された場合に、ユーザ端末1AのHMD110に表示される視野画像上において、アバター4Bの仮想右手42Bを拡大して表示するステップと、を含む。所定の条件は、距離Dに関連する条件を含む。
【選択図】図13
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19