JP2017187952A - 表示制御方法及び当該表示制御方法をコンピュータに実行させるためのプログラム - Google Patents

表示制御方法及び当該表示制御方法をコンピュータに実行させるためのプログラム Download PDF

Info

Publication number
JP2017187952A
JP2017187952A JP2016076709A JP2016076709A JP2017187952A JP 2017187952 A JP2017187952 A JP 2017187952A JP 2016076709 A JP2016076709 A JP 2016076709A JP 2016076709 A JP2016076709 A JP 2016076709A JP 2017187952 A JP2017187952 A JP 2017187952A
Authority
JP
Japan
Prior art keywords
virtual camera
visual field
menu object
movement
hmd
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
Application number
JP2016076709A
Other languages
English (en)
Inventor
野口 裕弘
Yasuhiro Noguchi
裕弘 野口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Colopl Inc
Original Assignee
Colopl Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Colopl Inc filed Critical Colopl Inc
Priority to JP2016076709A priority Critical patent/JP2017187952A/ja
Priority to US15/480,315 priority patent/US10438411B2/en
Publication of JP2017187952A publication Critical patent/JP2017187952A/ja
Pending legal-status Critical Current

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00—Manipulating three-dimensional [3D] models or images for computer graphics
    • G06T19/006—Mixed reality
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012—Head tracking input arrangements
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04812—Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815—Interaction with a metaphor-based environment or interaction object displayed as three-dimensional [3D], e.g. changing the user viewpoint with respect to the environment or object
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482—Interaction with lists of selectable items, e.g. menus
    • G—PHYSICS
    • G02—OPTICS
    • G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01—Head-up displays
    • G02B27/017—Head mounted

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

【課題】仮想空間におけるユーザの利便性を高めることができる表示制御方法を提供する。
【解決手段】ヘッドマウントディスプレイ(HMD)110と、HMD110とユーザUの手の位置を検出するように構成された位置センサ130とを備えたHMDシステム1における表示制御方法であって、仮想カメラ300が配置された仮想空間200を示す仮想空間データを生成するステップと、HMD110の動きに応じて仮想カメラ300の視野CVを移動させるステップと、仮想カメラ300の視野CVと仮想空間データに基づいて、視野画像データを生成するステップと、視野画像データに基づいて、HMD110に視野画像Vを表示させるステップと、HMD110と手との間の相対位置関係を特定するステップと、手の動きが第1条件を満たすかどうかを決定するステップと、手の動きが第1条件を満たすと決定された場合に、相対位置関係に基づいて、仮想カメラ300の視野CV内にメニューオブジェクトMを表示させるステップと、を含む、
【選択図】図10

Description

本開示は、表示制御方法及び当該表示制御方法をコンピュータに実行させるためのプログラムに関する。
ユーザの頭部に装着され、仮想現実(VR:Virtual Reality)空間や拡張現実(AR:Augmented Reality)空間等の仮想空間として仮想空間画像を表示可能なヘッドマウントディスプレイ(HMD:Head‐Mounted Display)が知られている。特許文献1では、HMDを装着したユーザが上方を向くことによりメニュー画像が表示されると共に、下方を向くとメニュー画像が非表示となる。
特許第5767386号公報
しかしながら、特許文献1に記載の手法では、HMDの傾きが所定の条件を満たした場合にしかメニュー画像が表示されない。従って、仮想空間におけるユーザの利便性を高める上では、改善の余地がある。
本開示は、仮想空間におけるユーザの利便性を高めることができる表示制御方法を提供することを目的とする。また、本開示は、当該表示制御方法をコンピュータに実行させるためのプログラムを提供することを目的とする。
本開示が示す一態様によれば、ヘッドマウントディスプレイと、前記ヘッドマウントディスプレイとユーザの手の位置を検出するように構成された位置センサとを備えたシステムにおける表示制御方法が提供される。
当該表示制御方法は、
a)仮想カメラが配置された仮想空間を示す仮想空間データを生成するステップと、
b)前記ヘッドマウントディスプレイの動きに応じて前記仮想カメラの視野を移動させるステップと、
c)前記仮想カメラの視野と前記仮想空間データに基づいて、視野画像データを生成するステップと、
d)前記視野画像データに基づいて、前記ヘッドマウントディスプレイに視野画像を表示させるステップと、
e)前記ヘッドマウントディスプレイと前記手との間の相対位置関係を特定するステップと、
f)前記手の動きが第1条件を満たすかどうかを決定するステップと、
g)前記手の動きが前記第1条件を満たすと決定された場合に、前記相対位置関係に基づいて、前記仮想カメラの視野内にメニューオブジェクトを表示させるステップと、
を含む。
本開示によれば、仮想空間におけるユーザの利便性を高めることができる表示制御方法を提供することができる。
本実施形態に係るヘッドマウントディスプレイ(HMD)システムを示す概略図である。 HMDを装着したユーザの頭部を示す図である。 制御装置のハードウェア構成を示す図である。 外部コントローラの具体的な構成の一例を示す図である。 視野画像をHMDに表示する処理を示すフローチャートである。 仮想空間の一例を示すxyz空間図である。 (a)図5に示す仮想空間のyx平面図である。(b)図5に示す仮想空間のzx平面図である。 HMDに表示される視野画像の一例を示す図である。 視野画像内に表示された手指オブジェクトを示す図である。 視野画像内にメニューオブジェクトを表示させる処理を示すフローチャートである。 HMDと外部コントローラとの間の相対的位置関係を示すと共に、外部コントローラが左方向に移動する様子を示す図である。 メニューオブジェクトと手指オブジェクトが仮想カメラの視野外から視野内に移動する様子を示す図である。 メニューオブジェクトと手指オブジェクトが左方向に移動することで視野画像内にメニューオブジェクトと手指オブジェクトが表示される様子を示した図である。 HMDと外部コントローラとの間の相対的位置関係を示すと共に、外部コントローラが左方向に移動する様子を示す図である。 メニューオブジェクトと手指オブジェクトが仮想カメラの視野外から視野内に移動する様子を示す図である。 HMDの視野の変化に伴い、メニューオブジェクトが視野画像内の所定位置に表示されるように移動することを説明するためのフローチャートである。 仮想カメラの視野の移動の結果として、メニューオブジェクトの一部が仮想カメラの視野外に位置する様子を示す図である。 メニューオブジェクトの一部が視野画像内に表示されていない様子を示した図である。 メニューオブジェクトが仮想カメラの視野内の所定位置に移動する様子を示す図である。 メニューオブジェクトが視野画像内の所定位置に表示されるように移動する様子を示す図である。 メニューオブジェクトを視野画像内から消すための処理を示すフローチャートである。 HMDと外部コントローラとの間の相対的位置関係を示すと共に、外部コントローラが右方向に移動する様子を示す図である。 メニューオブジェクトが仮想カメラの視野内から視野外に移動する様子を示す図である。 メニューオブジェクトが視野画像内から消えた様子を示す図である。 仮想カメラの視野外から視野内に移動するメニューオブジェクトを示す図である。
[本開示が示す実施形態の説明]
本開示が示す実施形態の概要を説明する。
(1)ヘッドマウントディスプレイと、前記ヘッドマウントディスプレイとユーザの手の位置を検出するように構成された位置センサとを備えたシステムにおける表示制御方法であって、
a)仮想カメラが配置された仮想空間を示す仮想空間データを生成するステップと、
b)前記ヘッドマウントディスプレイの動きに応じて前記仮想カメラの視野を移動させるステップと、
c)前記仮想カメラの視野と前記仮想空間データに基づいて、視野画像データを生成するステップと、
d)前記視野画像データに基づいて、前記ヘッドマウントディスプレイに視野画像を表示させるステップと、
e)前記ヘッドマウントディスプレイと前記手との間の相対位置関係を特定するステップと、
f)前記手の動きが第1条件を満たすかどうかを決定するステップと、
g)前記手の動きが前記第1条件を満たすと決定された場合に、前記相対位置関係に基づいて、前記仮想カメラの視野内にメニューオブジェクトを表示させるステップと、
を含む、表示制御方法。
上記方法によれば、ユーザの手の動きが第1条件を満たす場合に、ヘッドマウントディスプレイとユーザの手との間の相対位置関係に基づいて仮想カメラの視野内にメニューオブジェクトが表示され、ヘッドマウントディスプレイに表示される視野画像内にメニューオブジェクトが表示される。このように、ユーザの手の動きに応じてメニューオブジェクトが表示されるので、ユーザは直感的にメニューオブジェクトを視野画像内に表示することができる。したがって、仮想空間におけるユーザの利便性を高めることができる表示制御方法を提供することができる。
(2)h)前記相対位置関係に応じて、前記メニューオブジェクトと前記仮想カメラとの間の距離を決定するステップをさらに含み、
前記ステップ(g)では、前記決定された前記メニューオブジェクトと前記仮想カメラとの間の距離に基づいて、前記仮想カメラの視野内に前記メニューオブジェクトを表示する、項目(1)に記載の表示制御方法。
上記方法によれば、ヘッドマウントディスプレイとユーザの手との間の相対位置関係に応じて、メニューオブジェクトと仮想カメラとの間の距離が決定される。そして、当該決定された距離に基づいて、仮想カメラの視野内にメニューオブジェクトが表示され、当該決定された距離に基づいて、視野画像内にメニューオブジェクトが表示される。このように、ヘッドマウントディスプレイとユーザの手との間の相対位置関係に応じて、視野画像に表示されるメニューオブジェクトの大きさを調整することができ、仮想空間におけるユーザの利便性を高めることができる。
(3)i)前記ユーザの手指の状態と前記相対位置関係とに基づいて、前記仮想空間に手指オブジェクトを配置するステップと、
をさらに含み、
前記ステップ(g)では、前記手指オブジェクトと前記メニューオブジェクトとが接した状態で、前記仮想カメラの視野内に前記メニューオブジェクトを表示させる、項目(1)又は(2)に記載の表示制御方法。
上記方法によれば、手指オブジェクトとメニューオブジェクトとが接した状態で、仮想カメラの視野内メニューオブジェクトが表示され、手指オブジェクトとメニューオブジェクトが接した状態で視野画像内に表示される。
このように、ユーザは直感的にメニューオブジェクトを視野画像内に表示させることができ、仮想空間におけるユーザの利便性を高めることができる。
(4)前記ステップ(f)では、第1方向における前記手の移動量が第1の移動量以上であるかどうかを決定し、
前記ステップ(g)では、前記第1方向における前記手の移動量が前記第1の移動量以上であると決定された場合に、前記仮想カメラの視野内に前記メニューオブジェクトを表示させ、
前記表示制御方法は、
j)前記第1方向とは異なる方向である第2方向における前記手の移動量が第2の移動量以上であるかどうかを決定するステップと、
k)前記第2方向における前記手の移動量が前記第2の移動量以上であると決定された場合に、前記仮想カメラの視野内に前記メニューオブジェクトを非表示とするステップをさらに含む、項目(1)から(3)のうち何れか一項に記載の表示制御方法。
上記方法によれば、第1方向における手の移動量が第1の移動量以上であると決定された場合に、仮想カメラの視野内にメニューオブジェクトが表示される一方、第2方向における手の移動量が第2の移動量以上であると決定された場合に、メニューオブジェクトが非表示とされる。つまり、第1方向における手の移動量に応じて、メニューオブジェクトを視野画像内に表示させることができる一方、第2方向における手の移動量に応じて、メニューオブジェクトを視野画像内から消すことができる。このように、ユーザの手の動きに応じてメニューオブジェクトを表示/非表示にできるので、ユーザは直感的にメニューオブジェクトを視野画像内に表示することができる。したがって、仮想空間におけるユーザの利便性を高めることができる表示制御方法を提供することができる。
(5)l)前記メニューオブジェクトが前記仮想カメラの視野外に位置しているかどうかを決定するステップと、
m)前記メニューオブジェクトが前記仮想カメラの視野外に位置していると決定された場合に、前記メニューオブジェクトの少なくとも一部が前記仮想カメラの視野内に配置されるように前記メニューオブジェクトを移動させるステップと、
をさらに含む、項目(1)から(4)のうち何れか一項に記載の表示制御方法。
上記方法によれば、メニューオブジェクトが仮想カメラの視野外に位置していると決定された場合に、メニューオブジェクトの少なくとも一部が仮想カメラの視野内に配置されるようにメニューオブジェクトが移動する。このように、ヘッドマウントディスプレイの移動に伴い、メニューオブジェクトが視野画像に一旦表示されなくなったとしても、メニューオブジェクトが視野内に位置するように移動することで、更なるユーザ操作なしに、メニューオブジェクトを視野画像内に表示させることができる。つまり、ヘッドマウントディスプレイの移動に伴いメニューオブジェクトが視野画像内に一旦表示されなくなる度に、メニューオブジェクトを視野画像内に表示させるための更なる操作を行う必要がない。このように、仮想空間におけるユーザの利便性を高めることができる。
(6)n)前記仮想カメラの視野内に前記メニューオブジェクトが配置されているとき、前記仮想カメラの視野の移動に応じて、前記メニューオブジェクトが前記仮想カメラの視野内の所定位置に位置するように前記メニューオブジェクトを移動させるステップをさらに含む、項目(1)から(5)のうちの何れか一項に記載の表示制御方法。
上記方法によれば、仮想カメラの視野の移動に応じて、メニューオブジェクトが仮想カメラの視野内の所定位置に位置するようにメニューオブジェクトが移動する。このように、更なるユーザ操作なしに、メニューオブジェクトを視野画像内の所定位置に表示させることができる。つまり、ヘッドマウントディスプレイが移動する度にメニューオブジェクトを視野画像内の所定位置に表示させるための更なる操作を行う必要がない。このように、仮想空間におけるユーザの利便性を高めることができる。
(7)項目(1)から(6)のうちいずれか一項に記載の表示制御方法をコンピュータに実行させるためのプログラム。
上記方法によれば、仮想空間におけるユーザの利便性を高めることができるプログラムを提供することができる。
[本開示が示す実施形態の詳細]
以下、本開示が示す実施形態について図面を参照しながら説明する。尚、本実施形態の説明において既に説明された部材と同一の参照番号を有する部材については、説明の便宜上、その説明は繰り返さない。
図1は、本開示が示す実施形態(以下、単に本実施形態という。)に係るヘッドマウントディスプレイ(以下、単にHMDという。)システム1を示す概略図である。図1に示すように、HMDシステム1は、ユーザUの頭部に装着されたHMD110と、位置センサ130と、制御装置120と、外部コントローラ320とを備える。
HMD110は、表示部112と、HMDセンサ114と、ヘッドフォン116とを備えている。尚、HMD110にヘッドフォン116を設けずに、HMD110とは独立したスピーカやヘッドフォンを用いても良い。
表示部112は、HMD110を装着したユーザUの視界(視野)を完全に覆うように構成された非透過型の表示装置を備えている。これにより、ユーザUは、表示部112に表示された視野画像のみを見ることで仮想空間に没入することができる。尚、表示部112は、ユーザUの左目に投影される左目用の表示部とユーザUの右目に投影される右目用の表示部から構成されてもよい。
HMDセンサ114は、HMD110の表示部112の近傍に搭載される。HMDセンサ114は、地磁気センサ、加速度センサ、傾きセンサ(角速度センサやジャイロセンサ等)のうちの少なくとも1つを含み、ユーザUの頭部に装着されたHMD110の各種動きを検出することができる。
位置センサ130は、例えば、ポジション・トラッキング・カメラにより構成され、HMD110とユーザUの手の位置(外部コントローラ320の位置)を検出するように構成されている。位置センサ130は、制御装置120に無線又は有線により通信可能に接続されており、HMD110に設けられた図示しない複数の検知点の位置、傾き又は発光強度に関する情報を検出するように構成されている。さらに、位置センサ130は、外部コントローラ320に設けられた複数の検知点304(図4参照)の位置、傾き及び/又は発光強度に関する情報を検出するように構成されている。検知点は、例えば、赤外線や可視光を放射する発光部である。また、位置センサ130は、赤外線センサや複数の光学カメラを含んでもよい。
制御装置120は、位置センサ130から取得された情報に基づいて、HMD110の位置情報を取得し、当該取得された位置情報に基づいて、仮想空間における仮想カメラの位置と、現実空間におけるHMD110を装着したユーザUの位置を正確に対応付けることができる。さらに、制御装置120は、位置センサ130から取得された情報に基づいて、外部コントローラ320の位置情報を取得し、当該取得された位置情報に基づいて、仮想空間内に表示される手指オブジェクト(後述する)の位置と現実空間における外部コントローラ320とHMD110との間の相対関係位置を正確に対応付けることができる。
次に、図2を参照して、HMD110の位置や傾きに関する情報を取得する方法について説明する。図2は、HMD110を装着したユーザUの頭部を示す図である。HMD110を装着したユーザUの頭部の動きに連動したHMD110の位置や傾きに関する情報は、位置センサ130及び/又はHMD110に搭載されたHMDセンサ114により検出可能である。図2に示すように、HMD110を装着したユーザUの頭部を中心として、3次元座標(uvw座標)が規定される。ユーザUが直立する垂直方向をv軸として規定し、v軸と直交し表示部112の中心とユーザUとを結ぶ方向をw軸として規定し、v軸およびw軸と直交する方向をu軸として規定する。位置センサ130及び/又はHMDセンサ114は、各uvw軸回りの角度(すなわち、v軸を中心とする回転を示すヨー角、u軸を中心とした回転を示すピッチ角、w軸を中心とした回転を示すロール角で決定される傾き)を検出する。制御装置120は、検出された各uvw軸回りの角度変化に基づいて、視野情報を定義する仮想カメラの視軸を制御するための角度情報を決定する。
次に、図3を参照することで、制御装置120のハードウェア構成について説明する。図3は、制御装置120のハードウェア構成を示す図である。図3に示すように、制御装置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は、メモリや記憶部123に格納された所定のアプリケーション(ゲームプログラム)を実行することで、HMD110の表示部112に仮想空間(視野画像)を提供する。これにより、ユーザUは、表示部112に提供された仮想空間に没入することができる。
記憶部(ストレージ)123は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、USBフラッシュメモリ等の記憶装置であって、プログラムや各種データを格納するように構成されている。記憶部123には、表示制御プログラムが組み込まれてもよい。また、ユーザの認証プログラムや各種画像やオブジェクトに関するデータを含むゲームプログラム等が格納されてもよい。さらに、記憶部123には、各種データを管理するためのテーブルを含むデータベースが構築されてもよい。
I/Oインターフェース124は、位置センサ130と、HMD110と、外部コントローラ320をそれぞれ制御装置121に通信可能に接続するように構成されており、例えば、USB(Universal Serial Bus)端子、DVI(Digital Visual Interface)端子、HDMI(登録商標)(High―Definition Multimedia Interface)端子等により構成されている。尚、制御装置120は、位置センサ130と、HMD110と、外部コントローラ320のそれぞれと無線接続されていてもよい。
通信インターフェース125は、制御装置120をLAN(Local Area Network)、WAN(Wide Area Network)又はインターネット等の通信ネットワーク3に接続させるように構成されている。通信インターフェース125は、通信ネットワーク3を介して外部装置と通信するための各種有線接続端子や、無線接続のための各種処理回路を含んでおり、通信ネットワーク3を介して通信するための通信規格に適合するように構成されている。
次に、図4を参照して外部コントローラ320の具体的構成の一例について説明する。
外部コントローラ320は、ユーザUが仮想空間内に表示される手指オブジェクトの動作を制御するために使用される。外部コントローラ320は、ユーザUが右手に持って使用する右手用外部コントローラ320Rと、ユーザUが左手に持って使用する左手用外部コントローラ320Lを有する。右手用外部コントローラ320Rは、ユーザUの右手の位置や右手の手指の動きを示す装置である。左手用外部コントローラ320Lは、ユーザUの左手の位置や左手の手指の動きを示す装置である。右手用外部コントローラ320Rと左手用外部コントローラ320Lは略同一の構成を有するので、以下では、右手用外部コントローラ320R(以下、単にコントローラ320Rという。)についてのみ説明を行う。尚、図4では、コントローラ320Rの具体的構成の一例が示されている。
コントローラ320Rは、操作ボタン302と、複数の検知点304と、図示しないセンサと、図示しないトランシーバとを備える。検知点304とセンサは、どちらか一方のみが設けられていてもよい。操作ボタン302は、ユーザUからの操作入力を受け取るように構成された複数のボタン群により構成されている。操作ボタン302は、プッシュ式ボタン、トリガー式ボタン及びアナログスティックを含む。プッシュ式ボタンは、親指による押下する動作によって操作されるボタンである。例えば、天面322上に2つのプッシュ式ボタン302a,302bが設けられている。トリガー式ボタンは、人差し指や中指で引き金を引くような動作によって操作されるボタンである。例えば、グリップ324の前面部分にトリガー式ボタン302eが設けられると共に、グリップ324の側面部分にトリガー式ボタン302fが設けられる。トリガー式ボタン302e,302fは、人差し指と中指によってそれぞれ操作されることが想定されている。アナログスティックは、所定のニュートラル位置から360度任意の方向へ傾けて操作されうるスティック型のボタンである。例えば、天面322上にアナログスティック302iが設けられており、親指を用いて操作されることが想定されている。
コントローラ320Rは、グリップ324の両側面から天面322とは反対側の方向へ延びて半円状のリングを形成するフレーム326を備える。フレーム326の外側面には、複数の検知点304が埋め込まれている。複数の検知点304は、例えば、フレーム326の円周方向に沿って一列に並んだ複数の赤外線LEDである。位置センサ130が複数の検知点304の位置、傾き又は発光強度に関する情報を検出した後に、制御装置120は、位置センサ130によって検出された情報に基づいて、コントローラ320Rの位置や姿勢(傾き・向き)に関する情報を取得する。
コントローラ320Rのセンサは、例えば、磁気センサ、角速度センサ、若しくは加速度センサのいずれか、又はこれらの組み合わせであってもよい。センサは、ユーザUがコントローラ320Rを持って動かした際に、コントローラ320Rの向きや動きに応じた値(磁気、角速度、又は加速度の値)を出力する。制御装置120は、センサから出力された値に基づいて、コントローラ320Rの位置や姿勢に関する情報を取得する。
コントローラ320Rのトランシーバは、コントローラ320Rと制御装置120との間でデータを送受信するように構成されている。例えば、トランシーバは、ユーザUが操作ボタン302を介してコントローラ320Rに与えた操作入力に対応する操作信号を制御装置120に送信する。また、トランシーバは、検知点304の発光をコントローラ320Rに指示する命令信号を制御装置120から受信する。さらに、トランシーバは、センサによって検出された各種の値に対応する信号を制御装置120に送信する。
次に、図5から図8を参照することで視野画像V(図8参照)をHMD110に表示するための処理について説明する。図5は、視野画像VをHMD110に表示するための処理を示すフローチャートである。図6は、仮想空間200の一例を示すxyz空間図を示す。図7(a)は、図6に示す仮想空間200のyx平面図であって、図7(b)は、図6に示す仮想空間200のzx平面図である。図8は、HMD110に表示される視野画像Vの一例を示す図である。
図5に示すように、ステップS1において、制御部121(図3参照)は、仮想カメラ300が配置された仮想空間200を示す仮想空間データを生成する。図6及び図7に示すように、仮想空間200は、中心位置21を中心とした全天球として規定される(図5では、上半分の天球のみが図示されている)。また、仮想空間200には、中心位置21を原点とするxyz座標系が設定されている。HMDシステム1の初期状態では、仮想カメラ300が仮想空間200の中心位置21に配置されている。
仮想カメラ300の視野を定義するuvw座標系は、現実空間におけるユーザUの頭部を中心として規定されたuvw座標系に連動するように決定される。また、HMD110を装着したユーザUの現実空間における移動に連動して、仮想カメラ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は、位置センサ30及び/又はHMDセンサ114からのデータに基づいて、仮想カメラ300の視野CVを特定することができる。ここで、HMD110を装着したユーザUが動くと、制御部121は、位置センサ130及び/又はHMDセンサ114から送信されたHMD110の動きを示すデータに基づいて、仮想カメラ300の視野CVを特定することができる。つまり、制御部121は、HMD110の動きに応じて、視野CVを移動させることができる。
次に、ステップS3において、制御部121は、HMD110の表示部112に表示される視野画像V(図8参照)を示す視野画像データを生成する。具体的には、制御部121は、仮想空間200を規定する仮想空間データと、仮想カメラ300の視野CVとに基づいて、視野画像データを生成する。
次に、ステップS4において、制御部121は、視野画像データに基づいて、HMD110の表示部112に視野画像Vを表示する。このように、HMD110を装着しているユーザUの動きに応じて、仮想カメラ300の視野CVが変化し、HMD110に表示される視野画像Vが変化するので、ユーザUは仮想空間200に没入することができる。
尚、仮想カメラ300は、左目用仮想カメラと右目用仮想カメラを含んでもよい。この場合、制御部121は、仮想空間データと左目用仮想カメラの視野に基づいて、左目用の視野画像を示す左目用視野画像データを生成すると共に、仮想空間データと、右目用仮想カメラの視野に基づいて、右目用の視野画像を示す右目用視野画像データを生成する。そして、制御部121は、左目用視野画像データと右目用視野画像データに基づいて、HMD110の表示部112に左目用視野画像と右目用視野画像を表示する。このように、ユーザUは、左目用視野画像と右目用視野画像から、視野画像を3次元画像として視認することができる。また、本明細書では、説明の便宜上、仮想カメラ300の数は一つとする。勿論、本開示の実施形態は、仮想カメラの数が2つの場合でも適用可能である。
次に、図4と図9を参照して、仮想空間200内に表示される手指オブジェクトHについて以下に説明する。図9は、視野画像V内に表示された手指オブジェクトHを示す図である。以下では、左手用外部コントローラ320Lと右手用外部コントローラ320Rのうち、右手用外部コントローラ(コントローラ320R)の操作についてのみ説明する。
手指オブジェクトHが仮想カメラ300の視野CV内に配置されているとき、手指オブジェクトHは、視野画像V内に表示される。一方、手指オブジェクトHが仮想カメラ300の視野CV外に配置されているとき、手指オブジェクトHは、視野画像V内に非表示となる。また、現実空間においてコントローラ320Rを移動させることで、コントローラ320Rの移動に連動して手指オブジェクトHは仮想空間200内を移動する。例えば、手指オブジェクトHが視野画像V内に表示されている状態で、コントローラ320Rを移動させると、コントローラ320Rの移動に応じて手指オブジェクトHが図9に示すように移動する。
また、操作ボタン302の押し具合に応じて手指オブジェクトHの手指の伸び具合を調整してもよい。例えば、トリガー式ボタン302eを押下げると、手指オブジェクトHの人差し指が曲がり、トリガー式ボタン302eの押下げを解除すると、手指オブジェクトHの人差し指が伸び、トリガー式ボタン302eを少し押下げると、手指オブジェクトHの人差し指が少し曲がってもよい。また、トリガー式ボタン302fを押下げると、手指オブジェクトHの中指、薬指及び小指がまとめて曲がってもよい。
例えば、ユーザUが、中指によってコントローラ320Rのトリガー式ボタン302fを押下げつつ、コントローラ320Rのトリガー式ボタン302eを押下げしない(非押下)ことにより、図9に示すように手指オブジェクトHが視野画像V内に表示される。
具体的な処理としては、コントローラ320Rのトランシーバは、操作ボタン302の押下状態を示す操作信号を制御装置120に送信する。制御装置120の制御部121は、受信した操作信号に基づいて、手指オブジェクトHの手指の状態を決定する。例えば、制御装置120が、トリガー式ボタン302fの押下げ状態およびトリガー式ボタン302eの非押下状態を示す操作信号を受信したとき、制御部121は、当該操作信号に基づいて、図9に示すような手指オブジェクトHを生成するとともに、当該手指オブジェクトHを含む視野画像データを生成する。その後、制御部121は、視野画像データに基づいて、HMD110の表示部112に図9に示すような視野画像Vを表示する。また、現実空間においてコントローラ320Rが移動したときは、位置センサ130は、コントローラ320Rの状態を示すデータを制御装置120に送信する。制御部121は、位置センサ130からのデータに基づいて、コントローラ320Rの位置や傾きに関する情報を取得して、これらの取得された情報に基づいて、仮想空間200内における手指オブジェクトHの位置や傾きを決定する。
次に、図10から図13を参照することで、視野画像V内にメニューオブジェクトM(図13参照)を表示させる処理について説明する。図10は、視野画像V内にメニューオブジェクトMを表示させるための処理を示すフローチャートである。図11は、HMD110とコントローラ320Rとの間の相対的位置関係を示すと共に、コントローラ320Rが左方向に移動する様子を示す図である。図12は、メニューオブジェクトMと手指オブジェクトHが仮想カメラ300の視野CV外から視野CV内に移動する様子を示す図である。図13は、メニューオブジェクトMと手指オブジェクトHが左方向に移動することで、視野画像V内にメニューオブジェクトMと手指オブジェクトHが表示される様子を示した図である。尚、図11において、ユーザUの頭部を中心として規定されたuvw座標系(換言すれば、HMD110を基準として規定されたuvw座標系)のうち、+u方向を右方向として規定し、−u方向を左方向として規定する。このように、ユーザUの頭部(又は、HMD110)が動いた場合、それに伴いuvw座標系も移動する(例えば、HMD110が回転した場合、それに伴いuvw座標系も回転する)。また、図12では、仮想空間200のxyz座標系と、現実空間のユーザUの頭部を中心として規定されたuvw座標と連動する仮想カメラ300のuvw座標系が表示されている。
メニューオブジェクトMとは、アイコン、メニュー画面又はウィジェット等である。本実施形態では、メニューオブジェクトMの一例としてステージ情報と、獲得アイテム情報と、リタイアボタンと、ゲーム再開ボタンとを含むメニュー画面を示す。
図10に示すように、ステップS11において、制御部121は、コントローラ320Rの動きが第1条件を満たすかどうかを決定する。ここで、第1条件の一例について以下に説明する。

<第1条件>
第1条件は、以下の条件Aと条件Bを含む。
・(条件A)コントローラ320Rのトリガー式ボタン302fが押下げられつつ、トリガー式ボタン302eが押下げられていないこと(このとき、プッシュ式ボタン302a,302bとアナログスティック302iの押下状態は問わない。)。
・(条件B)左方向(−u方向)におけるコントローラ320Rの所定時間内の移動量が第1の移動量以上であること。
ここで、コントローラ320Rが条件Aを満たす場合、手指オブジェクトHの人差し指が伸びた状態となっていると共に、手指オブジェクトHの中指、薬指、小指が曲がった状態となる(例えば、図13の手指オブジェクトHを参照)。
また、制御装置120が、トリガー式ボタン302fの押下げ状態およびトリガー式ボタン302eの非押下状態を示す操作信号をコントローラ320Rから受信したとき、制御部121は、コントローラ320Rの動きがA条件を満たすと決定する。
制御部121は、コントローラ320Rの動きが条件Bを満たすかどうか決定する際に、HMD110とコントローラ320Rとの間の相対位置関係を特定する。具体的には、制御部121は、位置センサ130からのデータに基づいて、HMD110の位置情報と移動前のコントローラ320の位置情報を取得することで、移動前のコントローラ320Rのuvw座標系における位置情報(HMD110と移動前のコントローラ320Rとの間の相対位置関係)を取得する。次に、制御部121は、位置センサ130からのデータに基づいて、HMD110の位置情報と移動後のコントローラ320の位置情報を取得することで、移動後のコントローラ320Rのuvw座標系における位置情報(HMD110と移動後のコントローラ320Rとの間の相対位置関係)を取得する。さらに、制御部121は、コントローラ320Rの移動に要する時間を取得する。このようにして、制御部121は、移動前のコントローラ320Rのuvw座標系における位置情報と、移動後のコントローラ320Rのuvw座標系における位置情報と、コントローラ320Rの移動に要する時間とに基づいて、左方向(−u方向)におけるコントローラ320Rの所定時間内の移動量が第1の移動量以上であるかどうかを決定する。例えば、制御部121は、左方向におけるコントローラ320Rの1秒間における移動量がXcm以上であるかどうかを決定する。
次に、制御部121は、コントローラ320Rの動きが第1条件を満たすと決定した場合に(ステップS11でYES)、手指オブジェクトHがメニューオブジェクトMの一部に接した状態で、メニューオブジェクトMと手指オブジェクトHを視野画像V内に表示する(ステップS12)。具体的には、制御部121は、図12に示すように、手指オブジェクトHがメニューオブジェクトMの一部に接した状態で、メニューオブジェクトMと手指オブジェクトHを左方向(−u方向)に移動させることで、これらを仮想カメラ300の視野CV内に配置する。このようにして、制御部121は、メニューオブジェクトMと手指オブジェクトHが表示される視野画像Vを示す視野画像データを生成して、当該生成された視野画像データに基づいて、図13に示すような視野画像VをHMD110の表示部112に表示する。したがって、ユーザUが第1条件を満たすようにコントローラ320Rを左方向に移動させると、メニューオブジェクトMと手指オブジェクトHが左方向に移動して、手指オブジェクトHがメニューオブジェクトMの一部に接した状態で視野画像V内の所定位置に手指オブジェクトHとメニューオブジェクトMが表示される。メニューオブジェクトMと手指オブジェクトHが視野画像Vに表示された後にコントローラ320Rを動かした場合、コントローラ320Rのuvw座標系における位置情報に連動して手指オブジェクトHが移動する。このとき、メニューオブジェクトMは所定位置に固定されたまま、手指オブジェクトHのみが移動する。
このように、本実施形態によれば、コントローラ320Rの動き(ユーザUの右手の動き)が第1条件を満たす場合に、仮想カメラ300の視野CV内にメニューオブジェクトMが表示されて、HMD110に表示される視野画像V内にメニューオブジェクトMが表示される。このように、ユーザUの右手の動き(コントローラ320Rの動き)に応じてメニューオブジェクトMが表示されるので、ユーザUは直感的にメニューオブジェクトMを視野画像V内に表示させることができる。したがって、仮想空間200におけるユーザUの利便性を高めることができる表示制御方法を提供することができる。
尚、本実施形態において、第1条件は条件Aと条件Bの両方からなるものとして説明したが、第1条件は条件Aまたは条件Bのいずれか一方のみを含んでいてもよい。また、条件Bでは、左方向におけるコントローラ320Rの所定時間内の移動量が第1の移動量以上であることを条件しているが、左方向以外の任意の方向(例えば、右方向)におけるコントローラ320Rの所定時間内の移動量が第1の移動量以上であることを条件としてもよい。さらに、第1の移動量はゲーム内容等に応じて適宜変更されてもよい。
また、図13に示す視野画像V内におけるメニューオブジェクトMと手指オブジェクトHの大きさは、w軸方向における仮想カメラ300とメニューオブジェクトM,手指オブジェクトHとの間の距離に応じて決定される。さらに、w軸方向における仮想カメラ300とメニューオブジェクトM,手指オブジェクトHとの間の距離は、w軸方向におけるHMD110とコントローラ320Rとの間の距離(つまり、HMD110とコントローラ320Rとの間の相対関係位置)に応じて決定される。例えば、図11に示すように、w軸方向におけるコントローラ320RとHMD110との間の距離が小さい場合、図12に示すように、w軸方向におけるメニューオブジェクトM,手指オブジェクトHと仮想カメラ300との間の距離も小さくなるため、メニューオブジェクトMと手指オブジェクトHは視野画像V内において大きく表示される。一方、図14に示すように、w軸方向におけるコントローラ320RとHMD110との間の距離が大きい場合、図15に示すように、w軸方向におけるメニューオブジェクトM,手指オブジェクトHと仮想カメラ300との間の距離も大きくなるため、メニューオブジェクトMと手指オブジェクトHは視野画像V内において小さく表示される。
このように、制御部121は、w軸方向におけるHMD110とコントローラ320Rとの間の距離(相対関係位置)に応じて、w軸方向におけるメニューオブジェクトM、手指オブジェクトHと仮想カメラ300との間の距離を決定して、当該決定された距離に基づいて、仮想カメラ300の視野CV内にメニューオブジェクトMと手指オブジェクトHを配置する。その後、制御部121は、視野画像データを生成して、生成された視野画像データに基づいて、視野画像VをHMD110の表示部112に表示する。
本実施形態によれば、w軸方向におけるHMD110とユーザUの右手(コントローラ320R)との間の距離に応じて、視野画像V内に表示されるメニューオブジェクトMの大きさを調整することができるので、仮想空間200におけるユーザUの利便性をさらに高めることができる。
次に、図16から図20を参照することで、HMD110の視野CVの変化に伴って、メニューオブジェクトMが視野画像V内の所定位置に表示されるようにメニューオブジェクトMを移動する処理について説明する。図16は、HMD110の視野CVの変化に伴い、メニューオブジェクトMが視野画像V内の所定位置に表示されるように移動することを説明するためのフローチャートである。図17は、仮想カメラ300の視野CVの移動の結果として、メニューオブジェクトMの一部が仮想カメラ300の視野CV外に位置する様子を示す図である。図18は、メニューオブジェクトMの一部が視野画像V内に表示されていない様子を示す図である。図19は、メニューオブジェクトMが仮想カメラ300の視野CV内の所定位置に移動する様子を示す図である。図20は、メニューオブジェクトMが視野画像V内の所定位置に表示されるように移動する様子を示す図である。
図16に示すように、ステップS21において、制御部121は、HMD110の視野が変化したかどうかを決定する。具体的には、制御部121は、HMDセンサ114及び/又は位置センサ130から出力されたデータに基づいて、HMD110の位置や傾きに関する情報を取得して、取得された情報からHMD110の視野が変化したかどうかを決定する。制御部121は、HMD110の視野が変化したと決定した場合(ステップS21でYES)、メニューオブジェクトMが視野画像V内の所定位置に表示されているかどうかを決定する(ステップS22)。一方、HMD110の視野が変化していないと決定された場合(ステップS21でNO)、ステップS21の処理が繰り返し実行される。
本実施形態では、メニューオブジェクトMは、初期状態では、図12,13に示すように仮想カメラ300を基準として規定されたuvw座標系において所定の位置(所定のu座標、v座標)に配置されている(換言すれば、メニューオブジェクトMは視野CV内の所定位置に配置されている)。一方、図17に示すように、HMD110が回転移動することで、仮想カメラ300の視野CVが回転移動した場合、メニューオブジェクトMが所定の位置に配置されなくなってしまい、メニューオブジェクトMの一部が視野CV外に位置してしまう。その結果、メニューオブジェクトMの一部が視野画像Vから表示されなくなってしまう(図18参照)。
このように、制御部121は、メニューオブジェクトMが視野画像V内の所定位置に表示されていないと決定した場合(ステップS22でNO)、視野画像Vの所定位置にメニューオブジェクトMが表示されるように、メニューオブジェクトMを移動する(ステップS23)。具体的には、制御部121は、図19に示すように、メニューオブジェクトMが仮想カメラ300の視野CVの所定位置に配置されるように、メニューオブジェクトMを左方向(−u方向)に移動させる。このように、視野画像V内でメニューオブジェクトMが左方向(−u方向)に移動する結果、図20に示すように、メニューオブジェクトMが視野画像V内の所定位置に表示される。一方、ステップS22でYESの場合、処理はステップS21に戻る。
本実施形態によれば、仮想カメラ300の視野CVの移動に応じて、メニューオブジェクトMが仮想カメラ300の視野CV内の所定位置に位置するようにメニューオブジェクトMが移動する。このように、更なるユーザ操作なしに、メニューオブジェクトMを視野画像CV内の所定位置に表示させることができる。つまり、HMD110が移動する度にメニューオブジェクトMを視野画像V内の所定位置に表示させるための更なる操作を行う必要がないため、仮想空間200におけるユーザUの利便性を高めることができる。
次に、図21から図24を参照することで、メニューオブジェクトMを視野画像Vから消すための処理について説明する。図21は、メニューオブジェクトMを視野画像V内から消すための処理を示すフローチャートである。図22は、HMD110とコントローラ320Rとの間の相対位置関係を示すと共に、コントローラ320Rが右方向に移動する様子を示す図である。図23は、メニューオブジェクトMが仮想カメラ300の視野CV内から外に移動する様子を示す図である。図24は、メニューオブジェクトMが視野画像V内から消えた様子を示す図である。
図21に示すように、ステップS31において、制御部121は、コントローラ320Rの動きが第2条件を満たすかどうかを決定する。

<第2条件>
第2条件は、以下の条件Cと条件Dを含む。
・(条件C)コントローラ320Rのトリガー式ボタン302fが押下げられつつ、トリガー式ボタン302eが押下げられていないこと(このとき、プッシュ式ボタン302a,302bとアナログスティック302iの押下状態は問わない。)。
・(条件D)手指オブジェクトHがメニューオブジェクトMの一部と接した状態で、右方向(+u方向)におけるコントローラ320Rの所定時間内の移動量が第2の移動量以上であること。
ここで、コントローラ320Rが条件Cを満たす場合、手指オブジェクトHの人差し指が伸びた状態となっていると共に、手指オブジェクトHの中指、薬指、小指が曲がった状態となる(例えば、図24の手指オブジェクトHを参照)。
また、制御装置120が、トリガー式ボタン302fの押下げ状態およびトリガー式ボタン302eの非押下状態を示す操作信号をコントローラ320Rから受信したとき、制御部121は、コントローラ320Rの動きが条件Cを満たすと決定する。
制御部121は、コントローラ320Rの動きが条件Dを満たすかどうか決定する際に、最初に、手指オブジェクトHがメニューオブジェクトMの一部と接したかどうかを決定する。制御部121は、手指オブジェクトHがメニューオブジェクトMの一部と接したと決定した場合、HMD110とコントローラ320Rとの間の相対位置関係を特定する。具体的には、制御部121は、位置センサ130からのデータに基づいて、HMD110の位置情報と移動前のコントローラ320の位置情報を取得することで、移動前のコントローラ320Rのuvw座標系における位置情報(HMD110と移動前のコントローラ320Rとの間の相対位置関係)を取得する。次に、制御部121は、位置センサ130からのデータに基づいて、HMD110の位置情報と移動後のコントローラ320の位置情報を取得することで、移動後のコントローラ320Rのuvw座標系における位置情報(HMD110と移動後のコントローラ320Rとの間の相対位置関係)を取得する。さらに、制御部121は、コントローラ320Rの移動に要する時間を取得する。このようにして、制御部121は、移動前のコントローラ320Rのuvw座標系における位置情報と、移動後のコントローラ320Rのuvw座標系における位置情報と、コントローラ320Rの移動に要する時間とに基づいて、右方向(+u方向)におけるコントローラ320Rの所定時間内の移動量が第2の移動量以上であるかどうかを決定する。例えば、制御部121は、右方向におけるコントローラ320Rの1秒間における移動量がYcm以上であるかどうかを決定する。
次に、制御部121は、コントローラ320Rの動きが第2条件を満たすと決定した場合に(ステップS31でYES)、視野画像V内においてメニューオブジェクトMを非表示とする(ステップS32)。具体的には、制御部121は、図23に示すように、手指オブジェクトHがメニューオブジェクトMの一部に接した状態で、メニューオブジェクトMと手指オブジェクトHを右方向(+u方向)に移動させることで、これらを仮想カメラ300の視野CV外に配置する。このようにして、制御部121は、メニューオブジェクトMが非表示となった視野画像Vを示す視野画像データを生成して、当該生成された視野画像データに基づいて、図24に示す視野画像VをHMD110の表示部112に表示する。したがって、ユーザUが第2条件を満たすようにコントローラ320Rを右方向に移動させると、メニューオブジェクトMと手指オブジェクトHが右方向に移動して、メニューオブジェクトMが視野画像Vから消える(このとき、手指オブジェクトHも視野画像Vから消してもよいし、図24に示すように手指オブジェクトHは視野画像Vの右端に表示させてもよい)。尚、ユーザUが第2条件を満たすようにコントローラ320Rを右方向に移動させると、メニューオブジェクトMは移動せずにその場から消えてもよい(つまり、メニューオブジェクトMはワープしてもよい。)。
本実施形態によれば、左方向におけるコントローラ320Rの移動量(右手の移動量)が第1の移動量であると決定された場合、仮想カメラ300の視野CV内にメニューオブジェクトMが表示される一方、右方向におけるコントローラ320Rの移動量(右手の移動量)が第2の移動量であると決定された場合、仮想カメラ300の視野CVからメニューオブジェクトMが非表示となる。つまり、左方向における右手の移動量に応じて、メニューオブジェクトMを視野画像V内に表示させることができる一方、右方向における右手の移動量に応じて、メニューオブジェクトMを視野画像Vから非表示にさせることができる。このように、ユーザUの右手の動きに応じてメニューオブジェクトMを表示/非表示にできるので、ユーザUは直感的にメニューオブジェクトMを視野画像V内に表示させることができる。したがって、仮想空間200におけるユーザUの利便性を高めることができる表示制御方法を提供できる。
尚、本実施形態において、第2条件は条件Cと条件Dの両方を含むものとして説明したが、第2条件は条件Cまたは条件Dのいずれか一方のみを含んでいてもよい。また、条件Dでは、右方向におけるコントローラ320Rの所定時間内の移動量が第2の移動量以上であることを条件しているが、右方向以外の任意の方向(例えば、下方向(−v方向))におけるコントローラ320Rの所定時間内の移動量が第2の移動量以上であることを条件としてもよい。さらに、第2の移動量はゲーム内容等に応じて適宜変更されてもよい。
次に、図25を参照することで、仮想カメラ300の視野CV外に位置するメニューオブジェクトMを仮想カメラ300の視野CV内に移動させる処理について説明する。図25は、仮想カメラ300の視野CVの外から内に移動するメニューオブジェクトMを示す図である。最初に、制御部121は、メニューオブジェクトMが仮想カメラ300の視野CVの外に位置しているかどうかを決定する。図25に示すように、HMD110の回転移動に伴う仮想カメラ300の回転移動によって、メニューオブジェクトMは仮想カメラ300の視野CV外に位置してしまうことがある。
次に、制御部121は、メニューオブジェクトMが仮想カメラ300の視野CVの外に位置していると決定した場合、メニューオブジェクトMが仮想カメラ300の視野CV内に配置されるように、図25に示すようにメニューオブジェクトMを左方向(−u方向)に移動させる。ここで、制御部121は、メニューオブジェクトMが視野CV内の所定位置に配置されるように、メニューオブジェクトMを移動させてもよいし、メニューオブジェクトMの少なくとも一部が視野CV内に配置されるように、メニューオブジェクトMを移動させてもよい。
本実施形態によれば、HMD110の移動に伴い、メニューオブジェクトMが視野画像Vに一旦表示されなくなったとしても、メニューオブジェクトMが視野CV内に位置するように移動することで、更なるユーザ操作なしに、メニューオブジェクトMを視野画像V内に表示させることができる。つまり、HMD110の移動に伴いメニューオブジェクトMが視野画像V内に一旦表示されなくなる度に、メニューオブジェクトMを視野画像V内に表示するための更なる操作を行う必要がないので、仮想空間200におけるユーザUの利便性を高めることができる。
制御部121によって実行される各種処理をソフトウェアによって実現するために、本実施形態に係る表示制御方法をコンピュータ(プロセッサ)に実行させるための表示制御プログラムが記憶部123又はROMに予め組み込まれていてもよい。または、表示制御プログラムは、磁気ディスク(HDD、フロッピーディスク)、光ディスク(CD−ROM,DVD−ROM、Blu−rayディスク等)、光磁気ディスク(MO等)、フラッシュメモリ(SDカード、USBメモリ、SSD等)等のコンピュータ読取可能な記憶媒体に格納されていてもよい。この場合、記憶媒体が制御装置120に接続されることで、当該記憶媒体に格納されたプログラムが、記憶部123に組み込まれる。そして、記憶部123に組み込まれた表示制御プログラムがRAM上にロードされて、プロセッサがロードされた当該プログラムを実行することで、制御部121は本実施形態に係る表示制御方法を実行する。
また、表示制御プログラムは、通信ネットワーク3上のコンピュータから通信インターフェース125を介してダウンロードされてもよい。この場合も同様に、ダウンロードされた当該プログラムが記憶部123に組み込まれる。
以上、本開示の実施形態について説明をしたが、本発明の技術的範囲が本実施形態の説明によって限定的に解釈されるべきではない。本実施形態は一例であって、特許請求の範囲に記載された発明の範囲内において、様々な実施形態の変更が可能であることが当業者によって理解されるところである。本発明の技術的範囲は特許請求の範囲に記載された発明の範囲及びその均等の範囲に基づいて定められるべきである。
本実施形態では、コントローラ320Rの左方向/右方向における移動量に応じて、メニューオブジェクトMを視野画像Vに表示/非表示させる一例について説明したが、本実施形態はこれには限定されない。例えば、左手用外部コントローラ320L(以下、単にコントローラ320Lという。)の右方向/左方向における移動量に応じて、メニューオブジェクトMを視野画像Vに表示/非表示させてもよい。
さらに、本実施形態では、ユーザUの右手の動きを示すコントローラ320Rの動きに応じて、メニューオブジェクトMを視野画像Vに表示/非表示させているが、ユーザUの右手または左手自体の移動量に応じて、メニューオブジェクトMを表示/非表示させてもよい。例えば、外部コントローラを用いる代わりに、ユーザの手指に装着されるグローブ型デバイスや指輪型デバイスを用いることで、位置センサ130により、ユーザUの片手の位置や移動量を検出することができると共に、ユーザUの片手の手指の動きや状態を検出することができる。また、外部カメラを用いてユーザの手指を撮像することにより、ユーザの手指に直接何らかのデバイスを装着させることなく、ユーザUの片手の位置や移動量を検出することができると共に、ユーザUの片手の手指の動きや状態を検出することができる。このように、制御部121は、ユーザUの片手(右手または左手)の動きが第1条件を満たすかどうかを決定して、片手の動きが第1条件を満たす場合に、メニューオブジェクトMを視野画像V内に表示させてもよい。同様に、制御部121は、ユーザUの片手の動きが第2条件を満たすかどうかを決定して、片手の動きが第2条件を満たす場合に、メニューオブジェクトMを視野画像Vから非表示にしてもよい。
1:HMDシステム
3:通信ネットワーク
21:中心位置
110:ヘッドマウントディスプレイ(HMD)
112:表示部
114:HMDセンサ
116:ヘッドフォン
120:制御措置
121:制御部
123 記憶部
124:I/Oインターフェース
125:通信インターフェース
126:バス
130:位置センサ
200:仮想空間
300:仮想カメラ
302:操作ボタン
302a,302b:プッシュ式ボタン
302e,302f:トリガー式ボタン
302i:アナログスティック
304:検知点
320:外部コントローラ
320L:左手用外部コントローラ
320R:右手用外部コントローラ
322:天面
324:グリップ
326:フレーム
H:手指オブジェクト
M:メニューオブジェクト
U:ユーザ

Claims (7)

  1. ヘッドマウントディスプレイと、前記ヘッドマウントディスプレイとユーザの手の位置を検出するように構成された位置センサとを備えたシステムにおける表示制御方法であって、
    a)仮想カメラが配置された仮想空間を示す仮想空間データを生成するステップと、
    b)前記ヘッドマウントディスプレイの動きに応じて前記仮想カメラの視野を移動させるステップと、
    c)前記仮想カメラの視野と前記仮想空間データに基づいて、視野画像データを生成するステップと、
    d)前記視野画像データに基づいて、前記ヘッドマウントディスプレイに視野画像を表示させるステップと、
    e)前記ヘッドマウントディスプレイと前記手との間の相対位置関係を特定するステップと、
    f)前記手の動きが第1条件を満たすかどうかを決定するステップと、
    g)前記手の動きが前記第1条件を満たすと決定された場合に、前記相対位置関係に基づいて、前記仮想カメラの視野内にメニューオブジェクトを表示させるステップと、
    を含む、表示制御方法。
  2. h)前記相対位置関係に応じて、前記メニューオブジェクトと前記仮想カメラとの間の距離を決定するステップをさらに含み、
    前記ステップ(g)では、前記決定された前記メニューオブジェクトと前記仮想カメラとの間の距離に基づいて、前記仮想カメラの視野内に前記メニューオブジェクトを表示する、請求項1に記載の表示制御方法。
  3. i)前記ユーザの手指の状態と前記相対位置関係とに基づいて、前記仮想空間に手指オブジェクトを配置するステップと、
    をさらに含み、
    前記ステップ(g)では、前記手指オブジェクトと前記メニューオブジェクトとが接した状態で、前記仮想カメラの視野内に前記メニューオブジェクトを表示させる、請求項1又は2に記載の表示制御方法。
  4. 前記ステップ(f)では、第1方向における前記手の移動量が第1の移動量以上であるかどうかを決定し、
    前記ステップ(g)では、前記第1方向における前記手の移動量が前記第1の移動量以上であると決定された場合に、前記仮想カメラの視野内に前記メニューオブジェクトを表示させ、
    前記表示制御方法は、
    j)前記第1方向とは異なる方向である第2方向における前記手の移動量が第2の移動量以上であるかどうかを決定するステップと、
    k)前記第2方向における前記手の移動量が前記第2の移動量以上であると決定された場合に、前記仮想カメラの視野内に前記メニューオブジェクトを非表示とするステップと、
    をさらに含む、請求項1から3のうち何れか一項に記載の表示制御方法。
  5. l)前記メニューオブジェクトが前記仮想カメラの視野外に位置しているかどうかを決定するステップと、
    m)前記メニューオブジェクトが前記仮想カメラの視野外に位置していると決定された場合に、前記メニューオブジェクトの少なくとも一部が前記仮想カメラの視野内に配置されるように前記メニューオブジェクトを移動させるステップと、
    をさらに含む、請求項1から4のうち何れか一項に記載の表示制御方法。
  6. n)前記仮想カメラの視野内に前記メニューオブジェクトが配置されているとき、前記仮想カメラの視野の移動に応じて、前記メニューオブジェクトが前記仮想カメラの視野内の所定位置に位置するように前記メニューオブジェクトを移動させるステップと、
    をさらに含む、請求項1から5のうちの何れか一項に記載の表示制御方法。
  7. 請求項1から6のうちいずれか一項に記載の表示制御方法をコンピュータに実行させるためのプログラム。


JP2016076709A 2016-04-06 2016-04-06 表示制御方法及び当該表示制御方法をコンピュータに実行させるためのプログラム Pending JP2017187952A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016076709A JP2017187952A (ja) 2016-04-06 2016-04-06 表示制御方法及び当該表示制御方法をコンピュータに実行させるためのプログラム
US15/480,315 US10438411B2 (en) 2016-04-06 2017-04-05 Display control method for displaying a virtual reality menu and system for executing the display control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016076709A JP2017187952A (ja) 2016-04-06 2016-04-06 表示制御方法及び当該表示制御方法をコンピュータに実行させるためのプログラム

Publications (1)

Publication Number Publication Date
JP2017187952A true JP2017187952A (ja) 2017-10-12

Family

ID=59998281

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016076709A Pending JP2017187952A (ja) 2016-04-06 2016-04-06 表示制御方法及び当該表示制御方法をコンピュータに実行させるためのプログラム

Country Status (2)

Country Link
US (1) US10438411B2 (ja)
JP (1) JP2017187952A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020044139A (ja) * 2018-09-19 2020-03-26 株式会社コロプラ ゲームプログラム、ゲーム方法、および情報処理装置
JP2021512388A (ja) * 2018-02-06 2021-05-13 マジック リープ, インコーポレイテッドMagic Leap,Inc. 拡張現実のためのシステムおよび方法
WO2021131938A1 (ja) * 2019-12-26 2021-07-01 株式会社コロプラ プログラム、方法および情報処理装置
WO2021131935A1 (ja) * 2019-12-26 2021-07-01 株式会社コロプラ プログラム、方法および情報処理装置
JP2022548390A (ja) * 2019-09-20 2022-11-18 インターディジタル・シーイー・パテント・ホールディングス・ソシエテ・パ・アクシオンス・シンプリフィエ Vr環境及びar環境における手によるユーザインタラクションのためのデバイス及び方法

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6122537B1 (ja) * 2016-09-08 2017-04-26 株式会社コロプラ 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
JP6853638B2 (ja) * 2016-09-14 2021-03-31 株式会社スクウェア・エニックス 表示システム、表示方法、及び、コンピュータ装置
US10620710B2 (en) * 2017-06-15 2020-04-14 Microsoft Technology Licensing, Llc Displacement oriented interaction in computer-mediated reality
WO2019095360A1 (zh) * 2017-11-20 2019-05-23 腾讯科技(深圳)有限公司 虚拟场景中菜单处理方法、装置及存储介质
US10755486B2 (en) * 2018-04-19 2020-08-25 Disney Enterprises, Inc. Occlusion using pre-generated 3D models for augmented reality
US11985176B2 (en) * 2021-09-24 2024-05-14 Jvckenwood Corporation Virtual-break-room providing system, virtual-break-room providing device, and virtual-break-room providing method
US20250321642A1 (en) * 2024-04-10 2025-10-16 Deyvi Zamero Single-handed gesture-controlled object manipulation in virtual and augmented reality

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160011724A1 (en) * 2012-01-06 2016-01-14 Google Inc. Hands-Free Selection Using a Ring-Based User-Interface
CN104662587B (zh) * 2012-07-27 2017-07-04 日本电气方案创新株式会社 三维用户界面装置以及三维操作方法
US20150187357A1 (en) * 2013-12-30 2015-07-02 Samsung Electronics Co., Ltd. Natural input based virtual ui system for mobile devices
US9978202B2 (en) * 2014-02-14 2018-05-22 Igt Canada Solutions Ulc Wagering gaming apparatus for detecting user interaction with game components in a three-dimensional display
US10203762B2 (en) * 2014-03-11 2019-02-12 Magic Leap, Inc. Methods and systems for creating virtual and augmented reality
US9785247B1 (en) * 2014-05-14 2017-10-10 Leap Motion, Inc. Systems and methods of tracking moving hands and recognizing gestural interactions
US10055018B2 (en) * 2014-08-22 2018-08-21 Sony Interactive Entertainment Inc. Glove interface object with thumb-index controller
US20160054791A1 (en) * 2014-08-25 2016-02-25 Daqri, Llc Navigating augmented reality content with a watch
JP5767386B1 (ja) 2014-12-15 2015-08-19 株式会社コロプラ ヘッドマウントディスプレイシステム、ヘッドマウントディスプレイへ表示するための方法、及びプログラム
US20170092002A1 (en) * 2015-09-30 2017-03-30 Daqri, Llc User interface for augmented reality system

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021512388A (ja) * 2018-02-06 2021-05-13 マジック リープ, インコーポレイテッドMagic Leap,Inc. 拡張現実のためのシステムおよび方法
JP7316282B2 (ja) 2018-02-06 2023-07-27 マジック リープ, インコーポレイテッド 拡張現実のためのシステムおよび方法
JP7170077B2 (ja) 2018-09-19 2022-11-11 株式会社コロプラ プログラム
JP2020044139A (ja) * 2018-09-19 2020-03-26 株式会社コロプラ ゲームプログラム、ゲーム方法、および情報処理装置
JP2021100575A (ja) * 2018-09-19 2021-07-08 株式会社コロプラ ゲームプログラム、ゲーム方法、および情報処理装置
JP7591042B2 (ja) 2019-09-20 2024-11-27 インターディジタル・シーイー・パテント・ホールディングス・ソシエテ・パ・アクシオンス・シンプリフィエ Vr環境及びar環境における手によるユーザインタラクションのためのデバイス及び方法
JP2022548390A (ja) * 2019-09-20 2022-11-18 インターディジタル・シーイー・パテント・ホールディングス・ソシエテ・パ・アクシオンス・シンプリフィエ Vr環境及びar環境における手によるユーザインタラクションのためのデバイス及び方法
WO2021131935A1 (ja) * 2019-12-26 2021-07-01 株式会社コロプラ プログラム、方法および情報処理装置
JP2021105790A (ja) * 2019-12-26 2021-07-26 株式会社コロプラ プログラム、方法および情報処理装置
JP2021105763A (ja) * 2019-12-26 2021-07-26 株式会社コロプラ プログラム、方法および情報処理装置
JP7458779B2 (ja) 2019-12-26 2024-04-01 株式会社コロプラ プログラム、方法および情報処理装置
JP7514076B2 (ja) 2019-12-26 2024-07-10 株式会社コロプラ プログラム、方法および情報処理装置
WO2021131938A1 (ja) * 2019-12-26 2021-07-01 株式会社コロプラ プログラム、方法および情報処理装置

Also Published As

Publication number Publication date
US20170294048A1 (en) 2017-10-12
US10438411B2 (en) 2019-10-08

Similar Documents

Publication Publication Date Title
JP6093473B1 (ja) 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
US10438411B2 (en) Display control method for displaying a virtual reality menu and system for executing the display control method
JP6122537B1 (ja) 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
CN108780360A (zh) 虚拟现实导航
US20180059788A1 (en) Method for providing virtual reality, program for executing the method on computer, and information processing apparatus
JP6117414B1 (ja) 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
JP6535699B2 (ja) 情報処理方法、情報処理プログラム及び情報処理装置
WO2018020735A1 (ja) 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
JP6113897B1 (ja) 仮想空間を提供する方法、仮想体験を提供する方法、プログラム、および記録媒体
JP2018045338A (ja) 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
JP6118444B1 (ja) 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
JP6140871B1 (ja) 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
JP6469752B2 (ja) 情報処理方法、情報処理プログラム、情報処理システムおよび情報処理装置
JP6538107B2 (ja) 情報処理方法、情報処理プログラム、情報処理システムおよび情報処理装置
JP6159455B1 (ja) 仮想空間を提供する方法、プログラム、および記録媒体
JP6275809B1 (ja) 表示制御方法および当該表示制御方法をコンピュータに実行させるためのプログラム
JP2018026105A (ja) 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
JP2018018499A (ja) 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
JP2018026099A (ja) 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
JP6449922B2 (ja) 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
JP6122194B1 (ja) 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
JP6403843B1 (ja) 情報処理方法、情報処理プログラム及び情報処理装置
JP6189496B1 (ja) 仮想空間を提供する方法、仮想体験を提供する方法、プログラム、および記録媒体
JP6242452B1 (ja) 仮想空間を提供する方法、仮想体験を提供する方法、プログラム、および記録媒体
JP2019021331A (ja) 情報処理方法、情報処理プログラム及び情報処理装置