[go: up one dir, main page]

JP6122537B1 - 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム - Google Patents

情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム Download PDF

Info

Publication number
JP6122537B1
JP6122537B1 JP2016175916A JP2016175916A JP6122537B1 JP 6122537 B1 JP6122537 B1 JP 6122537B1 JP 2016175916 A JP2016175916 A JP 2016175916A JP 2016175916 A JP2016175916 A JP 2016175916A JP 6122537 B1 JP6122537 B1 JP 6122537B1
Authority
JP
Japan
Prior art keywords
user
virtual camera
movement
information processing
processing method
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.)
Active
Application number
JP2016175916A
Other languages
English (en)
Other versions
JP2018041341A (ja
Inventor
野口 裕弘
裕弘 野口
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 JP2016175916A priority Critical patent/JP6122537B1/ja
Priority to US15/753,958 priority patent/US20190011981A1/en
Priority to CN201780002079.3A priority patent/CN108027987B/zh
Priority to PCT/JP2017/009739 priority patent/WO2018047384A1/ja
Application granted granted Critical
Publication of JP6122537B1 publication Critical patent/JP6122537B1/ja
Publication of JP2018041341A publication Critical patent/JP2018041341A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/014Hand-worn input/output arrangements, e.g. data gloves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • G06F3/0308Detection arrangements using opto-electronic means comprising a plurality of distinctive and separately oriented light emitters or reflectors associated to the pointing device, e.g. remote cursor controller with distinct and separately oriented LEDs at the tip whose radiations are captured by a photo-detector associated to the screen
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction 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/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2004Aligning objects, relative positioning of parts

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)
  • Architecture (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

【課題】仮想空間に対するユーザの没入感をさらに高める。【解決手段】情報処理方法は、仮想空間200を規定する仮想空間データを生成するステップと、HMDの動きと、コントローラの動きとを検出するように構成された検出ユニットの検出結果を取得するステップと、HMDの動きに応じて、仮想カメラ300の視野を更新するステップと、仮想カメラ300の視野と仮想空間データに基づいて、視野画像データを生成するステップと、視野画像データに基づいて、表示部に視野画像を表示させるステップと、コントローラの動きに応じて、手オブジェクト400を動作させるステップと、手オブジェクト400によるタブレットオブジェクト500に対する入力操作に応じて、モニターオブジェクト600に表示されたメニューを操作するステップとを含む。【選択図】図9

Description

本開示は、情報処理方法および当該情報処理方法をコンピュータに実行させるためのプログラムに関する。
仮想空間内にユーザインターフェース(UI)オブジェクトを配置する技術が知られている。例えば、特許文献1の開示では、仮想空間内にウィジェット(UIオブジェクトの一例)が配置されており、仮想カメラの視野内に当該ウィジェットが表示されている。ヘッドマウントデバイス(Head Mounted Device:HMD)の移動に伴い、ウィジェットが仮想カメラの視野外に位置した場合、当該ウィジェットは仮想カメラの視野内に位置するように移動される。このように、ウィジェットが仮想空間内に配置されている間は、ウィジェットは常にHMDに表示される視野画像内に表示される。
特許第5876607号公報
ところで、特許文献1に開示されているように、視野画像内にウィジェットが常に表示されている場合、ユーザは当該ウィジェットに対して煩わしさを感じる場合がある。特に、ウィジェットが視野画像に表示されている間は、ユーザは仮想空間に対する没入感を十分に得ることができない。
本発明は、仮想空間に対するユーザの没入感をさらに高めることが可能な情報処理方法及び当該情報処理方法をコンピュータに実現させるためのプログラムを提供することを目的とする。
本開示が示す一態様によれば、表示部を備えたヘッドマウントデバイスを制御するコンピュータのプロセッサによって実行される情報処理方法が提供される。
前記情報処理方法は、
(a)仮想カメラと、仮想空間内に固定的に配置され、メニューを表示する第1オブジェクトと、前記第1オブジェクトに表示されたメニューを操作可能な第2オブジェクトと、操作オブジェクトとを含む前記仮想空間を規定する仮想空間データを生成するステップと、
(b)前記ヘッドマウントデバイスの動きと、ユーザの頭部以外の身体の一部の動きとを検出するように構成された検出ユニットの検出結果を取得するステップと、
(c)前記ヘッドマウントデバイスの動きに応じて、前記仮想カメラの視野を更新するステップと、
(d)前記仮想カメラの視野と前記仮想空間データに基づいて、視野画像データを生成するステップと、
(e)前記視野画像データに基づいて、前記表示部に視野画像を表示させるステップと、
(f)前記ユーザの身体の一部の動きに応じて、前記操作オブジェクトを動作させるステップと、
(g)前記操作オブジェクトによる前記第2オブジェクトに対する入力操作に応じて、前記第1オブジェクトに表示されたメニューを操作するステップと、
を含む。
本開示によれば、仮想空間に対するユーザの没入感をさらに高めることが可能な情報処理方法及び当該情報処理方法をコンピュータに実現させるためのプログラムを提供することができる。
ヘッドマウントデバイス(Head Mounted Device:HMD)システムを示す概略図である。 HMDを装着したユーザの頭部を示す図である。 制御装置のハードウェア構成を示す図である。 外部コントローラの具体的な構成の一例を示す図である。 視野画像をHMDに表示する処理を示すフローチャートである。 仮想空間の一例を示すxyz空間図である。 (a)は、図6に示す仮想空間のyx平面図である。(b)は、図6に示す仮想空間のzx平面図である。 HMDに表示された視野画像の一例を示す図である。 仮想カメラと、手オブジェクトと、タブレットオブジェクトと、モニターオブジェクトとを含む仮想空間を示す図である。 タブレットオブジェクトの表示画面の一例を示す図である。 本実施形態に係る情報処理方法を説明するためのフローチャートである。 タブレットオブジェクトの移動範囲を設定するための方法の一例を示すフローチャートである。 (a)は、仮想空間に没入しているユーザの様子を示す図である。(b)は、仮想カメラの周辺に設定されたタブレットオブジェクトの移動範囲の一例を示す図である。(c)は、仮想カメラの周辺に設定されたタブレットオブジェクトの移動範囲の他の一例を示す図である。 (a)は、タブレットオブジェクトが移動範囲外に位置している様子を示す図である。(b)は、タブレットオブジェクトが移動範囲外から移動範囲内の所定の位置に移動する様子を示す図である。
[本開示が示す実施形態の説明]
本開示が示す実施形態の概要を説明する。
(1)表示部を備えたヘッドマウントデバイスを制御するコンピュータのプロセッサによって実行される情報処理方法であって、
(a)仮想カメラと、仮想空間内に固定的に配置され、メニューを表示する第1オブジェクトと、前記第1オブジェクトに表示されたメニューを操作可能な第2オブジェクトと、操作オブジェクトとを含む前記仮想空間を規定する仮想空間データを生成するステップと、
(b)前記ヘッドマウントデバイスの動きと、ユーザの頭部以外の身体の一部の動きとを検出するように構成された検出ユニットの検出結果を取得するステップと、
(c)前記ヘッドマウントデバイスの動きに応じて、前記仮想カメラの視野を更新するステップと、
(d)前記仮想カメラの視野と前記仮想空間データに基づいて、視野画像データを生成するステップと、
(e)前記視野画像データに基づいて、前記表示部に視野画像を表示させるステップと、
(f)前記ユーザの身体の一部の動きに応じて、前記操作オブジェクトを動作させるステップと、
(g)前記操作オブジェクトによる前記第2オブジェクトに対する入力操作に応じて、前記第1オブジェクトに表示されたメニューを操作するステップと、
を含む。
上記方法によれば、操作オブジェクトによる第2オブジェクトに対する入力操作に応じて、第1オブジェクトに表示されたメニューが操作される。つまり、ユーザは、ユーザの身体の一部(例えば、手)の動きに連動する仮想空間内の操作オブジェクトを用いて、仮想空間内の第2オブジェクトに対して所定の操作を行うことができる。当該所定の操作の結果、第1オブジェクトに表示されるメニューが操作される。このように、メニュー操作を仮想空間内のオブジェクト同士の相互作用により実行することが可能となる。さらに、第1オブジェクト及び第2オブジェクトは視野画像内に常に表示されるわけではないので、視野画像内にウィジェット等のUIオブジェクトが常に表示されてしまうといった状況を回避することが可能となる。従って、仮想空間に対するユーザの没入感をさらに高めることが可能な情報処理方法を提供することができる。
(2)(h)前記仮想カメラの位置に基づいて、前記第2オブジェクトの移動範囲を設定するステップと、
(i)前記第2オブジェクトが前記移動範囲内に位置しているかどうかを判定するステップと、
(j)前記第2オブジェクトが前記移動範囲内に位置していないと判定した場合に、前記第2オブジェクトを前記移動範囲内の所定の位置に移動させるステップと、
をさらに含む、項目(1)に記載の情報処理方法。
上記方法によれば、第2オブジェクトが第2オブジェクトの移動範囲に位置していないと判定された場合に、第2オブジェクトが当該移動範囲内の所定の位置に移動する。例えば、ユーザが第2オブジェクトを持たないまま移動し、又はユーザが第2オブジェクトを投げ飛ばすことで、第2オブジェクトが移動範囲外に配置される。かかる状況によって第2オブジェクトが移動範囲外に位置した場合でも、第2オブジェクトが移動範囲内の所定の位置に移動する。このように、ユーザは、第2オブジェクトを容易に見つけ出すことができると共に、第2オブジェクトを手に取るための手間を大幅に軽減することができる。
(3)前記ステップ(j)は、
前記仮想カメラの位置と前記第1オブジェクトの位置に基づいて、前記第2オブジェクトを前記移動範囲内の前記所定の位置に移動させるステップを含む、項目(2)に記載の情報処理方法。
上記方法によれば、仮想カメラの位置と第1オブジェクトの位置に基づいて第2オブジェクトが移動範囲内の所定位置に移動される。このように、第1オブジェクトと仮想カメラとの間の位置関係に基づいて第2オブジェクトの位置が決定されるため、ユーザは第2オブジェクトを容易に見つけ出すことができる。
(4)前記ステップ(h)は、
前記ユーザの頭部と前記ユーザの身体の一部との間の距離を測定するステップと、
前記測定された距離と、前記仮想カメラの位置に基づいて、前記移動範囲を設定するステップと、
を含む、項目(2)又は(3)に記載の情報処理方法。
上記方法によれば、ユーザの頭部とユーザの身体の一部(例えば、手)との間の距離と、仮想カメラの位置に基づいて第2オブジェクトの移動範囲が設定される。このように、第2オブジェクトは、ユーザが静止した状態でユーザが手に取ることができる範囲に配置されるため、ユーザが第2オブジェクトを手に取るための手間を大幅に軽減することができる。
(5)前記ステップ(h)は、
前記ユーザの頭部の位置と前記ユーザの身体の一部の位置に基づいて、前記ユーザの頭部と前記ユーザの身体の一部との間の距離の最大値を特定するステップと、
前記特定された距離の最大値と、前記仮想カメラの位置に基づいて、前記移動範囲を設定するステップと、
を含む、項目(2)又は(3)に記載の情報処理方法。
上記方法によれば、ユーザの頭部とユーザの身体の一部との間の距離の最大値と、仮想カメラの位置に基づいて、操作オブジェクトの移動範囲が設定される。このように、第2オブジェクトは、ユーザが静止した状態でユーザが手に取ることができる範囲に配置されるため、ユーザが第2オブジェクトを手に取るための手間を大幅に軽減することができる。
(6)前記ステップ(h)は、
前記仮想カメラの位置と前記操作オブジェクトの位置に基づいて、前記仮想カメラと前記操作オブジェクトとの間の距離の最大値を特定するステップと、
前記特定された距離の最大値と、前記仮想カメラの位置に基づいて、前記移動範囲を設定するステップと、
を含む、項目(2)又は(3)に記載の情報処理方法。
上記方法によれば、仮想カメラと操作オブジェクトとの間の距離の最大値と、仮想カメラの位置に基づいて、操作オブジェクトの移動範囲が設定される。このように、第2オブジェクトは、ユーザが静止した状態でユーザが手に取ることができる範囲に配置されるため、ユーザが第2オブジェクトを手に取るための手間を大幅に軽減することができる。
(7)項目(1)から(5)のうちいずれか一項に記載の情報処理方法をコンピュータに実行させるためのプログラム。
上記方法によれば、仮想空間に対するユーザの没入感をさらに高めることが可能なプログラムを提供することができる。
[本開示が示す実施形態の詳細]
以下、本開示が示す実施形態について図面を参照しながら説明する。尚、本実施形態の説明において既に説明された部材と同一の参照番号を有する部材については、説明の便宜上、その説明は繰り返さない。
最初に、図1を参照してヘッドマウントデバイス(HMD)システム1の構成について説明する。図1は、HMDシステム1を示す概略図である。図1に示すように、HMDシステム1は、ユーザUの頭部に装着されたHMD110と、位置センサ130と、制御装置120と、外部コントローラ320と、ヘッドフォン116とを備える。
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の左目に例えば赤外光を照射して、左目(特に、角膜や虹彩)から反射された反射光を検出することで、左目の眼球の回転角に関する情報を取得してもよい。
位置センサ130は、例えば、ポジション・トラッキング・カメラにより構成され、HMD110と外部コントローラ320の位置を検出するように構成されている。位置センサ130は、制御装置120に無線又は有線により通信可能に接続されており、HMD110に設けられた図示しない複数の検知点の位置、傾き又は発光強度に関する情報を検出するように構成されている。さらに、位置センサ130は、外部コントローラ320に設けられた複数の検知点304(図4参照)の位置、傾き及び/又は発光強度に関する情報を検出するように構成されている。検知点は、例えば、赤外線や可視光を放射する発光部である。また、位置センサ130は、赤外線センサや複数の光学カメラを含んでもよい。
尚、本実施形態の説明では、HMDセンサ114と、注視センサ140と、位置センサ130等のセンサを検出ユニットと総称する場合がある。検出ユニットは、ユーザUの身体の一部(例えば、ユーザUの手)の動きを検出した上で、当該検出結果を示す信号を制御装置120に送信する。また、検出ユニットは、ユーザUの頭部の動きを検出する機能(HMDセンサ114によって実現される機能)と、ユーザUの頭部以外の身体の一部の動きを検出する機能(位置センサ130によって実現される機能)とを有する。また、検出ユニットは、ユーザUの視線の動きを検出する機能(注視センサ140によって実現される機能)を有してもよい。
制御装置120は、HMD110を制御するように構成されたコンピュータである。制御装置120は、位置センサ130から取得された情報に基づいて、HMD110の位置情報を取得し、当該取得された位置情報に基づいて、仮想空間における仮想カメラの位置と、現実空間におけるHMD110を装着したユーザUの位置を正確に対応付けることができる。さらに、制御装置120は、位置センサ130から取得された情報に基づいて、外部コントローラ320の位置情報を取得し、当該取得された位置情報に基づいて、仮想空間内に表示される手オブジェクト400(後述する)の位置と現実空間における外部コントローラ320の位置を正確に対応付けることができる。
また、制御装置120は、注視センサ140から送信された情報に基づいて、ユーザUの右目の視線と左目の視線をそれぞれ特定し、当該右目の視線と当該左目の視線の交点である注視点を特定することができる。さらに、制御装置120は、特定された注視点に基づいて、ユーザUの視線方向を特定することができる。ここで、ユーザUの視線方向は、ユーザUの両目の視線方向であって、ユーザUの右目と左目を結ぶ線分の中点と注視点を通る直線の方向に一致する。
次に、図2を参照して、HMD110の位置や傾きに関する情報を取得する方法について説明する。図2は、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軸回りの角度変化に基づいて、仮想カメラの視軸を制御するための角度情報を決定する。
次に、図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は、本実施形態に係る情報処理方法をコンピュータに実行させるプログラムを格納してもよい。また、ユーザUの認証プログラムや各種画像やオブジェクトに関するデータを含むゲームプログラム等が格納されてもよい。さらに、記憶部123には、各種データを管理するためのテーブルを含むデータベースが構築されてもよい。
I/Oインターフェース124は、位置センサ130と、HMD110と、外部コントローラ320とをそれぞれ制御装置120に通信可能に接続するように構成されており、例えば、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の身体の一部(頭部以外の部位であり、本実施形態においてはユーザUの手)の動きを検知することにより、仮想空間内に表示される手オブジェクトの動作を制御するために使用される。外部コントローラ320は、ユーザUの右手によって操作される右手用外部コントローラ320R(以下、単にコントローラ320Rという。)と、ユーザUの左手によって操作される左手用外部コントローラ320L(以下、単にコントローラ320Lという。)と、を有する(図13(a)参照)。コントローラ320Rは、ユーザUの右手の位置や右手の手指の動きを示す装置である。また、コントローラ320Rの動きに応じて仮想空間内に存在する右手オブジェクトが移動する。コントローラ320Lは、ユーザUの左手の位置や左手の手指の動きを示す装置である。また、コントローラ320Lの動きに応じて仮想空間内に存在する左手オブジェクトが移動する。コントローラ320Rとコントローラ320Lは略同一の構成を有するので、以下では、図4を参照してコントローラ320Rの具体的構成についてのみ説明する。尚、以降の説明では、便宜上、コントローラ320L,320Rを単にコントローラ320と総称する場合がある。さらに、コントローラ320Rの動きに連動する右手オブジェクトとコントローラ320Lの動きに連動する左手オブジェクトを単に手オブジェクト400と総称する場合がある。
図4に示すように、コントローラ320Rは、操作ボタン302と、複数の検知点304と、図示しないセンサと、図示しないトランシーバとを備える。検知点304とセンサは、どちらか一方のみが設けられていてもよい。操作ボタン302は、ユーザUからの操作入力を受付けるように構成された複数のボタン群により構成されている。操作ボタン302は、プッシュ式ボタン、トリガー式ボタン及びアナログスティックを含む。プッシュ式ボタンは、親指による押下する動作によって操作されるボタンである。例えば、天面322上に2つのプッシュ式ボタン302a,302bが設けられている。トリガー式ボタンは、人差し指や中指で引き金を引くような動作によって操作されるボタンである。例えば、グリップ324の前面部分にトリガー式ボタン302eが設けられると共に、グリップ324の側面部分にトリガー式ボタン302fが設けられる。トリガー式ボタン302e,302fは、人差し指と中指によってそれぞれ操作される。アナログスティックは、所定のニュートラル位置から360度任意の方向へ傾けて操作されうるスティック型のボタンである。例えば、天面322上にアナログスティック320iが設けられており、親指を用いて操作される。
コントローラ320Rは、グリップ324の両側面から天面322とは反対側の方向へ延びて半円状のリングを形成するフレーム326を備える。フレーム326の外側面には、複数の検知点304が埋め込まれている。複数の検知点304は、例えば、フレーム326の円周方向に沿って一列に並んだ複数の赤外線LEDである。位置センサ130が、複数の検知点304の位置、傾き又は発光強度に関する情報を検出した後に、制御装置120は、位置センサ130によって検出された情報に基づいて、コントローラ320Rの位置や姿勢(傾き・向き)に関する情報を取得する。
コントローラ320Rのセンサは、例えば、磁気センサ、角速度センサ、若しくは加速度センサのいずれか、又はこれらの組み合わせであってもよい。センサは、ユーザUがコントローラ320Rを動かしたときに、コントローラ320Rの向きや位置に応じた信号(例えば、磁気、角速度、又は加速度に関する情報を示す信号)を出力する。制御装置120は、センサから出力された信号に基づいて、コントローラ320Rの位置や姿勢に関する情報を取得する。
コントローラ320Rのトランシーバは、コントローラ320Rと制御装置120との間でデータを送受信するように構成されている。例えば、トランシーバは、ユーザUの操作入力に対応する操作信号を制御装置120に送信してもよい。また、トランシーバは、検知点304の発光をコントローラ320Rに指示する指示信号を制御装置120から受信してもよい。さらに、トランシーバは、センサによって検出された値を示す信号を制御装置120に送信してもよい。
次に、図5から図8を参照することで視野画像をHMD110に表示するための処理について説明する。図5は、視野画像をHMD110に表示する処理を示すフローチャートである。図6は、仮想空間200の一例を示すxyz空間図である。図7(a)は、図6に示す仮想空間200のyx平面図である。図7(b)は、図6に示す仮想空間200のzx平面図である。図8は、HMD110に表示された視野画像Vの一例を示す図である。
図5に示すように、ステップS1において、制御部121(図3参照)は、仮想カメラ300と、各種オブジェクトとを含む仮想空間200を示す仮想空間データを生成する。図6に示すように、仮想空間200は、中心位置21を中心とした全天球として規定される(図6では、上半分の天球のみが図示されている)。また、仮想空間200では、中心位置21を原点とするxyz座標系が設定されている。仮想カメラ300は、HMD110に表示される視野画像V(図8参照)を特定するための視軸Lを規定している。仮想カメラ300の視野を定義するuvw座標系は、現実空間におけるユーザUの頭部を中心として規定されたuvw座標系に連動するように決定される。また、制御部121は、HMD110を装着したユーザUの現実空間における移動に応じて、仮想カメラ300を仮想空間200内で移動させてもよい。また、仮想空間200内における各種オブジェクトは、例えば、タブレットオブジェクト500と、モニターオブジェクト600と、手オブジェクト400である(図9参照)。
次に、ステップ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の一部の領域に相当する。換言すれば、視野CVは、HMD110に表示される仮想空間200の一部の領域に相当する。また、視野CVは、図7(a)に示すxy平面において、視軸Lを中心とした極角αの角度範囲として設定される第1領域CVaと、図7(b)に示すxz平面において、視軸Lを中心とした方位角βの角度範囲として設定される第2領域CVbとを有する。尚、制御部121は、注視センサ140から送信されたユーザUの視線方向を示すデータに基づいて、ユーザUの視線方向を特定し、ユーザUの視線方向に基づいて仮想カメラ300の向きを決定してもよい。
このように、制御部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は、左目用視野画像データと右目用視野画像データに基づいて、HMD110の表示部112に左目用視野画像と右目用視野画像を表示する。このようにして、ユーザUは、左目用視野画像と右目用視野画像から、視野画像を3次元画像として立体的に視認することができる。尚、本明細書では、説明の便宜上、仮想カメラ300の数は一つとする。勿論、本開示の実施形態は、仮想カメラの数が2つの場合でも適用可能である。
次に、仮想空間200に含まれる仮想カメラ300と、手オブジェクト400(操作オブジェクトの一例)と、タブレットオブジェクト500(第2オブジェクトの一例)と、モニターオブジェクト600(第1オブジェクトの一例)について図9を参照して説明する。図9に示すように、仮想空間200は、仮想カメラ300と、手オブジェクト400と、モニターオブジェクト600と、タブレットオブジェクト500とを含む。制御部121は、これらのオブジェクトを含む仮想空間200を規定する仮想空間データを生成している。上述したように、仮想カメラ300は、ユーザUが装着しているHMD110の動きに連動する。つまり、仮想カメラ300の視野は、HMD110の動きに応じて更新される。
手オブジェクト400は、左手オブジェクトと右手オブジェクトの総称である。上記したように、左手オブジェクトは、ユーザUの左手に装着されるコントローラ320L(図13(a)参照)の動きに応じて移動する。同様に、右手オブジェクトは、ユーザUの右手に装着されるコントローラ320Rの動きに応じて移動する。尚、本実施形態では、説明の便宜上、1つの手オブジェクト400のみが仮想空間200内に配置されているが、2つの手オブジェクト400が仮想空間200内に配置されていてもよい。
制御部121は、位置センサ130からコントローラ320の位置情報を取得した上で、当該取得された位置情報に基づいて、仮想空間200内の手オブジェクト400の位置と現実空間におけるコントローラ320の位置とを対応付ける。このように、制御部121は、ユーザUの手の位置(コントローラ320の位置)に応じて、手オブジェクト400の位置を制御する。
また、ユーザUが操作ボタン302を操作することで、仮想空間200内に配置された手オブジェクト400の各指を操作することが可能となる。つまり、制御部121は、操作ボタン302に対する入力操作に対応する操作信号をコントローラ320から取得した上で、当該操作信号に基づいて、手オブジェクト400の手指の動作を制御する。例えば、ユーザUが操作ボタン302を操作することで手オブジェクト400はタブレットオブジェクト500を掴むことができる(図9参照)。さらに、手オブジェクト400がタブレットオブジェクト500を掴んだ状態で、コントローラ320の移動に応じて、手オブジェクト400とタブレットオブジェクト500を移動させることが可能となる。このように、制御部121は、ユーザUの手指の動きに応じて、手オブジェクト400を動作を制御するように構成されている。
モニターオブジェクト600は、仮想空間200内の所定の位置に固定的に配置されている。モニターオブジェクト600は、メニュー(特に、メニュー画面610)を表示するように構成されている。メニュー画面610には、ユーザUによって選択されるべき複数の選択項目が表示されてもよい。図9では、選択項目として「洋食」、「和食」及び「中華」がメニュー画面610に表示される。また、メニュー画面610には、ステージ情報や、獲得アイテム情報、リタイアボタン及び/又はゲーム再開ボタンが表示されてもよい。
タブレットオブジェクト500は、モニターオブジェクト600に表示されたメニューを操作することができる。制御部121は、手オブジェクト400によるタブレットオブジェクト500に対する入力操作に応じて、モニターオブジェクト600に表示されたメニューを操作する。具体的には、制御部121は、コントローラ320から送信された操作信号及び/又は位置センサ130から送信されたコントローラ320の位置情報に基づいて、手オブジェクト400の動作を制御する。その後、制御部121は、手オブジェクト400とタブレットオブジェクト500との間の相互作用を特定した上で、当該相互作用に基づいて、手オブジェクト400によるタブレットオブジェクト500に対する入力操作を特定する。制御部121は、当該特定された入力操作に基づいて、モニターオブジェクト600のメニュー画面610に表示された複数の選択項目(「洋食」、「和食」及び「中華」)のうちの一つを選択する。制御部121は、当該選択結果に応じた所定の処理を実行する。
次に、図10を参照してタブレットオブジェクト500の表示画面510の一例について説明する。表示画面510には、方向キー520と、BACKボタン530と、OKボタン540と、Lボタン550Lと、Rボタン550Rが表示されている。ここで、方向キー520は、モニターオブジェクト600のメニュー画面610に表示されたカーソルの移動を制御するためのボタンである。
次に、図11から図14を参照して本実施形態に係る情報処理方法について以下に説明する。図11は、本実施形態に係る情報処理方法を説明するためのフローチャートである。図12は、タブレットオブジェクト500の移動範囲を設定するための方法の一例を示すフローチャートである。図13(a)は、仮想空間200に没入しているユーザUの様子を示す図である。図13(b)は、仮想カメラ300の周辺に設定されたタブレットオブジェクト500の移動範囲の一例(移動範囲Ra)を示す図である。図13(c)は、仮想カメラ300の周辺に設定されたタブレットオブジェクト500の移動範囲の他の一例(移動範囲Rb)を示す図である。図14(a)は、タブレットオブジェクト500が移動範囲Ra外に位置している様子を示す図である。図14(b)は、タブレットオブジェクト500が移動範囲Ra外から移動範囲Ra内の所定の位置に移動する様子を示す図である。
図11に示すように、ステップS11において、制御部121は、タブレットオブジェクト500の移動範囲を設定する。ここで、タブレットオブジェクト500の移動範囲とは、ユーザUが移動しない状態(換言すれば、現実空間でのユーザUの位置座標が変化しない状態)で、ユーザUが手オブジェクト400を用いてタブレットオブジェクト500を掴めることができる範囲として規定されてもよい。タブレットオブジェクト500が移動範囲外に位置する場合には、制御部121は、タブレットオブジェクト500を移動範囲内の所定の位置に移動させる。
図13(b)に示すように、タブレットオブジェクト500の移動範囲は、仮想カメラ300の中心位置を中心とした所定の半径Rを有する球として規定された移動範囲Raでもよい。ここで、タブレットオブジェクト500と仮想カメラ300との間の距離が半径R以下である場合、タブレットオブジェクト500は、移動範囲Ra内に存在すると判定される。これとは反対に、タブレットオブジェクト500と仮想カメラ300との間の距離が半径Rよりも大きい場合、タブレットオブジェクト500は、移動範囲Ra外に存在すると判定される。
また、図13(c)に示すように、タブレットオブジェクト500の移動範囲は、仮想カメラ300の中心位置を中心とした回転楕円体として規定された移動範囲Rbでもよい。ここで、回転楕円体の長軸は、仮想カメラ300のw軸と平行であると共に、回転楕円体の短軸は、仮想カメラ300のv軸と平行であってもよい。また、タブレットオブジェクト500の移動範囲は、仮想カメラ300の中心位置を中心とした立方体又は直方体として規定された移動範囲でもよい。
以降では、タブレットオブジェクト500の移動範囲は、図13(b)に示す移動範囲Raであるものとして説明を行う。移動範囲Raを規定する球の半径Rは、図13(a)に示すように、HMD110とコントローラ320(コントローラ320L又はコントローラ320R)との間の距離Dに基づいて設定される。図12を参照して、移動範囲Raの設定方法(図11に示すステップS11で実行される処理)の一例について説明する。
図12に示すように、制御部121は、ステップS21において、整数Nの値を1に設定する。図12に示す処理が開始された場合、最初に整数Nの値が1に設定される。例えば、整数Nの値は1フレーム毎に1だけ増加してもよい。例えば、ゲーム動画のフレームレートが90fpsの場合には、1/90秒経過毎に整数Nの値が1だけ増加してもよい。次に、ステップS22において、制御部121は、位置センサ130から送信されたHMD110の位置情報とコントローラ320の位置情報に基づいて、HMD110の位置(ユーザUの頭部の位置)を特定すると共に、コントローラ320の位置(ユーザUの手の位置)を特定する。次に、制御部121は、特定されたHMD110の位置とコントローラ320の位置に基づいて、HMD110とコントローラ320との間の距離Dを特定する(ステップS23)。
次に、整数Nの値が1であるため(ステップS24でYES)、制御部121は、特定された距離D1をHMD110とコントローラ320との間の最大距離Dmaxに設定する(ステップS25)。その後、所定時間が経過していない場合(ステップS26でNO)、ステップS27において、整数Nの値が1つだけ増加され(N=2)、処理は再びステップS22に戻る。次に、ステップS22の処理が実行された後、ステップS23において、制御部121は、N=2のときのHMD110とコントローラ320との間の距離D2を特定する。次に、N≠1であるため(ステップS24でNO)、制御部121は、距離D2が最大距離Dmax(=D1)よりも大きいかどうかを判定する(ステップS28)。制御部121は、距離D2が最大距離Dmaxよりも大きいと判定した場合(ステップS28でYES)、距離D2を最大距離Dmaxに設定する(ステップS29)。一方、制御部121は、距離D2が最大距離Dmax以下であると判定した場合(ステップS28でNO)、ステップS26の処理に進む。所定時間が経過していない場合(ステップS26でNO)、ステップS27において、整数Nの値が1つだけ増加される。このように、所定時間が経過するまでステップS22,S23,S28,S29の処理が繰り返し実行されると共に、整数Nの値が1フレーム毎に1つだけ増加する。つまり、所定時間が経過するまで1フレーム毎にHMD110とコントローラ320との間の距離Dが特定された上で、HMD110とコントローラ320との間の最大距離Dmaxが更新される。次に、制御部121は、所定時間が経過したと判定した場合(ステップS26でYES)、HMD110とコントローラ320との間の最大距離Dmaxと仮想カメラ300の位置に基づいて、タブレットオブジェクト500の移動範囲Raを設定する(ステップS30)。具体的には、制御部121は、仮想カメラ300の中心位置を移動範囲Raを規定する球の中心に設定すると共に、最大距離Dmaxを移動範囲Raを規定する球の半径Rに設定する。このようにして、HMD110とコントローラ320との間の距離の最大値と仮想カメラ300の位置に基づいて、移動範囲Raが設定される。
尚、制御部121は、仮想カメラ300と手オブジェクト400との間の距離の最大値と仮想カメラ300の位置に基づいて、移動範囲Raを設定してもよい。この場合、ステップS22において、制御部121は、仮想カメラ300の位置と手オブジェクト400の位置を特定すると共に、ステップS23において、仮想カメラ300と手オブジェクト400との間の距離Dを特定する。さらに、制御部121は、所定時間が経過するまで、仮想カメラ300と手オブジェクト400との間の最大距離Dmaxを特定する。制御部121は、仮想カメラ300の中心位置を移動範囲Raを規定する球の中心に設定すると共に、仮想カメラ300と手オブジェクト400との間の最大距離Dmaxを当該球の半径Rに設定する。
また、移動範囲Raの別の設定方法としては、制御部121は、ユーザUの所定の姿勢のときのHMD110とコントローラ320との間の距離と仮想カメラ300の位置に基づいて移動範囲Raを設定してもよい。例えば、ユーザUが起立した状態で両手を前方に突き出したときのHMD110とコントローラ320との間の距離と仮想カメラ300の位置に基づいて移動範囲Raが設定されてもよい。
図11に戻ると、ステップS12において、制御部121は、手オブジェクト400がタブレットオブジェクト500を掴んだ状態で手オブジェクト400が移動したかどうかを判定する(図14参照)。ステップS12でYESの場合、制御部121は、コントローラ320の移動に応じて、手オブジェクト400とタブレットオブジェクト500を一緒に移動させる(ステップS13)。一方、ステップS12でNOの場合、処理はステップS14に進む。次に、ステップS14において、制御部121は、タブレットオブジェクト500が手オブジェクト400によって操作されたかどうかを判定する。ステップS14でYESの場合、制御部121は、手オブジェクトによるタブレットオブジェクト500に対する入力操作に応じて、モニターオブジェクト600に表示されたメニュー(メニュー画面610)を操作した上で、操作結果に応じた所定の処理を実行する(ステップS15)。一方、ステップS14でNOの場合、処理はステップS16に進む。
次に、制御部121は、タブレットオブジェクト500は移動範囲Ra外に存在すると共に、タブレットオブジェクト500は手オブジェクト400によって掴まれていないかどうかを判定する(ステップS16)。例えば、図14(a)に示すように、ユーザUが手オブジェクト400を用いてタブレットオブジェクト500を投げ飛ばすことで、タブレットオブジェクト500は移動範囲Ra外に位置する。または、タブレットオブジェクト500が手オブジェクト400によって掴まれていない状態でユーザUが移動することで、タブレットオブジェクト500は移動範囲Ra外に位置する。この場合、ユーザUが移動することで、仮想カメラ300が移動するため、仮想カメラ300の周辺に設定された移動範囲Raが移動する。このようにして、タブレットオブジェクト500は移動範囲Ra外に位置する。ステップS16でYESの場合、制御部121は、仮想カメラ300の位置とモニターオブジェクト600の位置に基づいて、タブレットオブジェクト500を移動範囲Ra内の所定の位置に移動させる(ステップS17)。例えば、図14(b)に示すように、制御部121は、モニターオブジェクト600の中心位置と仮想カメラ300の中心位置とを結ぶ線分Cの中心位置からy軸方向に所定距離だけオフセットした位置を特定した上で、当該特定された位置にタブレットオブジェクト500を配置してもよい。尚、ステップS16では、タブレットオブジェクト500は移動範囲Ra外に存在するかどうかのみが判定されてもよい。
このように、本実施形態によれば、手オブジェクト400によるタブレットオブジェクト500に対する入力操作に応じて、モニターオブジェクト600に表示されたメニューが操作される。つまり、ユーザUは、ユーザUの手の動きに連動する仮想空間200内の手オブジェクト400を用いて、仮想空間200内のタブレットオブジェクト500に対して所定の操作を行うことができる。当該所定の操作の結果、モニターオブジェクト600に表示されるメニューが操作される。このように、メニュー操作が仮想空間200内のオブジェクト同士の相互作用により実行されると共に、視野画像内にウィジェット等のUIオブジェクトが常に表示されてしまうといった状況を回避することが可能となる。従って、仮想空間200に対するユーザUの没入感をさらに高めることが可能な情報処理方法を提供することができる。
また、タブレットオブジェクト500が移動範囲Ra外に位置した場合でも、タブレットオブジェクト500が移動範囲Ra内の所定の位置に移動する。このように、ユーザUは、タブレットオブジェクト500を容易に見つけ出すことができると共に、タブレットオブジェクト500を手に取るための手間を大幅に軽減することができる。さらに、モニターオブジェクト600と仮想カメラ300との間の位置関係(例えば、線分Cの中心点)に基づいて、移動範囲Ra内におけるタブレットオブジェクト500の位置が決定されるので、ユーザUはタブレットオブジェクト500を容易に見つけ出すことができる。
また、HMD110(ユーザUの頭部)とコントローラ320(ユーザUの手)との間の最大距離Dmaxに基づいて、タブレットオブジェクト500の移動範囲Raが決定される。このように、タブレットオブジェクト500は、ユーザUが静止した状態(現実空間においてユーザの位置座標が変化しない状態)でユーザUが手に取ることができる範囲に配置されるため、ユーザUがタブレットオブジェクト500を手に取るための手間を大幅に軽減することができる。
制御部121によって実行される各種処理をソフトウェアによって実現するために、本実施形態に係る情報処理方法をコンピュータ(プロセッサ)に実行させるための情報処理プログラムが記憶部123又はROMに予め組み込まれていてもよい。または、情報処理プログラムは、磁気ディスク(HDD、フロッピーディスク)、光ディスク(CD−ROM,DVD−ROM、Blu−rayディスク等)、光磁気ディスク(MO等)、フラッシュメモリ(SDカード、USBメモリ、SSD等)等のコンピュータ読取可能な記憶媒体に格納されていてもよい。この場合、記憶媒体が制御装置120に接続されることで、当該記憶媒体に格納された情報処理プログラムが、記憶部123に組み込まれる。そして、記憶部123に組み込まれた情報処理プログラムがRAM上にロードされて、プロセッサがロードされた当該プログラムを実行することで、制御部121は本実施形態に係る情報処理方法を実行する。
また、情報処理プログラムは、通信ネットワーク3上のコンピュータから通信インターフェース125を介してダウンロードされてもよい。この場合も同様に、ダウンロードされた当該プログラムが記憶部123に組み込まれる。
以上、本開示の実施形態について説明をしたが、本発明の技術的範囲が本実施形態の説明によって限定的に解釈されるべきではない。本実施形態は一例であって、特許請求の範囲に記載された発明の範囲内において、様々な実施形態の変更が可能であることが当業者によって理解されるところである。本発明の技術的範囲は特許請求の範囲に記載された発明の範囲及びその均等の範囲に基づいて定められるべきである。
本実施形態では、ユーザUの手の動きを示す外部コントローラ320の動きに応じて、手オブジェクトの移動が制御されているが、ユーザUの手自体の移動量に応じて、仮想空間内における手オブジェクトの移動が制御されてもよい。例えば、外部コントローラを用いる代わりに、ユーザの手指に装着されるグローブ型デバイスや指輪型デバイスを用いることで、位置センサ130により、ユーザUの手の位置や移動量を検出することができると共に、ユーザUの手指の動きや状態を検出することができる。また、位置センサ130は、ユーザUの手(手指を含む)を撮像するように構成されたカメラであってもよい。この場合、カメラを用いてユーザの手を撮像することにより、ユーザの手指に直接何らかのデバイスを装着させることなく、ユーザの手が表示された画像データに基づいて、ユーザUの手の位置や移動量を検出することができると共に、ユーザUの手指の動きや状態を検出することができる。
また、本実施形態では、ユーザUの頭部以外の身体の一部である手の位置及び/又は動きに応じて、手オブジェクトによってタブレットオブジェクトが操作されるが、例えば、ユーザUの頭部以外の身体の一部である足の位置及び/又は動きに応じて、ユーザUの足の動きに連動する足オブジェクト(操作オブジェクトの一例)によってタブレットオブジェクトが操作されてもよい。このように、手オブジェクトではなく足オブジェクトが操作オブジェクトとして規定されてもよい。
また、タブレットオブジェクトの代わりにリモコンオブジェクト等が、モニターオブジェクトに表示されたメニューを操作可能なオブジェクトとして規定されてもよい。
1:HMDシステム
3:通信ネットワーク
21:中心位置
112:表示部
114:HMDセンサ
120:制御装置
121:制御部
123:記憶部
124:I/Oインターフェース
125:通信インターフェース
126:バス
130:位置センサ
140:注視センサ
200:仮想空間
300:仮想カメラ
302:操作ボタン
302a:プッシュ式ボタン
302b:プッシュ式ボタン
302e:トリガー式ボタン
302f:トリガー式ボタン
304:検知点
320:外部コントローラ(コントローラ)
320i:アナログスティック
320L:左手用外部コントローラ(コントローラ)
320R:右手用外部コントローラ(コントローラ)
322:天面
324:グリップ
326:フレーム
400:手オブジェクト(操作オブジェクト)
500:タブレットオブジェクト(第2オブジェクト)
510:表示画面
520:方向キー
530:BACKボタン
540:OKボタン
550L:Lボタン
550R:Rボタン
600:モニターオブジェクト(第1オブジェクト)
610:メニュー画面
C:線分
CV:視野
CVa:第1領域
CVb:第2領域
L:視軸
Ra,Rb:移動範囲

Claims (7)

  1. 表示部を備えたヘッドマウントデバイスを制御するコンピュータのプロセッサによって実行される情報処理方法であって、
    (a)仮想カメラと、仮想空間内に固定的に配置され、メニューを表示する第1オブジェクトと、前記第1オブジェクトに表示されたメニューを操作可能な第2オブジェクトと、操作オブジェクトとを含む前記仮想空間を規定する仮想空間データを生成するステップと、
    (b)前記ヘッドマウントデバイスの動きと、ユーザの頭部以外の身体の一部の動きとを検出するように構成された検出ユニットの検出結果を取得するステップと、
    (c)前記ヘッドマウントデバイスの動きに応じて、前記仮想カメラの視野を更新するステップと、
    (d)前記仮想カメラの視野と前記仮想空間データに基づいて、視野画像データを生成するステップと、
    (e)前記視野画像データに基づいて、前記表示部に視野画像を表示させるステップと、
    (f)前記ユーザの身体の一部の動きに応じて、前記操作オブジェクトを動作させるステップと、
    (g)前記操作オブジェクトによる前記第2オブジェクトに対する入力操作に応じて、前記第1オブジェクトに表示されたメニューを操作するステップと、
    を含む、情報処理方法。
  2. (h)前記仮想カメラの位置に基づいて、前記第2オブジェクトの移動範囲を設定するステップと、
    (i)前記第2オブジェクトが前記移動範囲内に位置しているかどうかを判定するステップと、
    (j)前記第2オブジェクトが前記移動範囲内に位置していないと判定した場合に、前記第2オブジェクトを前記移動範囲内の所定の位置に移動させるステップと、
    をさらに含む、請求項1に記載の情報処理方法。
  3. 前記ステップ(j)は、
    前記仮想カメラの位置と前記第1オブジェクトの位置に基づいて、前記第2オブジェクトを前記移動範囲内の前記所定の位置に移動させるステップを含む、請求項2に記載の情報処理方法。
  4. 前記ステップ(h)は、
    前記ユーザの頭部と前記ユーザの身体の一部との間の距離を測定するステップと、
    前記測定された距離と、前記仮想カメラの位置に基づいて、前記移動範囲を設定するステップと、
    を含む、請求項2又は3に記載の情報処理方法。
  5. 前記ステップ(h)は、
    前記ユーザの頭部の位置と前記ユーザの身体の一部の位置に基づいて、前記ユーザの頭部と前記ユーザの身体の一部との間の距離の最大値を特定するステップと、
    前記特定された距離の最大値と、前記仮想カメラの位置に基づいて、前記移動範囲を設定するステップと、
    を含む、請求項2又は3に記載の情報処理方法。
  6. 前記ステップ(h)は、
    前記仮想カメラの位置と前記操作オブジェクトの位置に基づいて、前記仮想カメラと前記操作オブジェクトとの間の距離の最大値を特定するステップと、
    前記特定された距離の最大値と、前記仮想カメラの位置に基づいて、前記移動範囲を設定するステップと、
    を含む、請求項2又は3に記載の情報処理方法。
  7. 請求項1から6のうちいずれか一項に記載の情報処理方法をコンピュータに実行させるためのプログラム。
JP2016175916A 2016-09-08 2016-09-08 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム Active JP6122537B1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2016175916A JP6122537B1 (ja) 2016-09-08 2016-09-08 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
US15/753,958 US20190011981A1 (en) 2016-09-08 2017-03-10 Information processing method, system for executing the information processing method, and information processing system
CN201780002079.3A CN108027987B (zh) 2016-09-08 2017-03-10 信息处理方法、信息处理装置及信息处理系统
PCT/JP2017/009739 WO2018047384A1 (ja) 2016-09-08 2017-03-10 情報処理方法、当該情報処理方法をコンピュータに実行させるためのプログラム、当該情報処理方法が実行される情報処理装置、及び情報処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016175916A JP6122537B1 (ja) 2016-09-08 2016-09-08 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム

Publications (2)

Publication Number Publication Date
JP6122537B1 true JP6122537B1 (ja) 2017-04-26
JP2018041341A JP2018041341A (ja) 2018-03-15

Family

ID=58666618

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016175916A Active JP6122537B1 (ja) 2016-09-08 2016-09-08 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム

Country Status (4)

Country Link
US (1) US20190011981A1 (ja)
JP (1) JP6122537B1 (ja)
CN (1) CN108027987B (ja)
WO (1) WO2018047384A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2019102825A1 (ja) * 2017-11-21 2020-12-03 株式会社ワコム レンダリング装置及びレンダリング方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6853638B2 (ja) * 2016-09-14 2021-03-31 株式会社スクウェア・エニックス 表示システム、表示方法、及び、コンピュータ装置
US10664993B1 (en) * 2017-03-13 2020-05-26 Occipital, Inc. System for determining a pose of an object
JP7349793B2 (ja) * 2019-02-15 2023-09-25 キヤノン株式会社 画像処理装置および画像処理方法、プログラム
CN110134197A (zh) * 2019-06-26 2019-08-16 北京小米移动软件有限公司 可穿戴式控制设备、虚拟/增强现实系统及控制方法
US11178384B2 (en) * 2019-07-10 2021-11-16 Nintendo Co., Ltd. Information processing system, storage medium, information processing apparatus and information processing method
US11228737B2 (en) * 2019-07-31 2022-01-18 Ricoh Company, Ltd. Output control apparatus, display terminal, remote control system, control method, and non-transitory computer-readable medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005107963A (ja) * 2003-09-30 2005-04-21 Canon Inc 三次元cg操作方法および装置
JP2005148844A (ja) * 2003-11-11 2005-06-09 Fukuda Gakuen 表示システム
JP2015232783A (ja) * 2014-06-09 2015-12-24 株式会社バンダイナムコエンターテインメント プログラムおよび画像生成装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100177035A1 (en) * 2008-10-10 2010-07-15 Schowengerdt Brian T Mobile Computing Device With A Virtual Keyboard
JP5293154B2 (ja) * 2008-12-19 2013-09-18 ブラザー工業株式会社 ヘッドマウントディスプレイ
US9081177B2 (en) * 2011-10-07 2015-07-14 Google Inc. Wearable computer with nearby object response
JP5880115B2 (ja) * 2012-02-17 2016-03-08 ソニー株式会社 ヘッドマウントディスプレイ、ヘッドマウントディスプレイ制御プログラム及びヘッドマウントディスプレイの制御方法
US9096920B1 (en) * 2012-03-22 2015-08-04 Google Inc. User interface method
JP5900393B2 (ja) * 2013-03-21 2016-04-06 ソニー株式会社 情報処理装置、操作制御方法及びプログラム
US20150153826A1 (en) * 2013-12-01 2015-06-04 Apx Labs, Llc Systems and methods for providing a virtual menu
US9244539B2 (en) * 2014-01-07 2016-01-26 Microsoft Technology Licensing, Llc Target positioning with gaze tracking
US20150193979A1 (en) * 2014-01-08 2015-07-09 Andrej Grek Multi-user virtual reality interaction environment
JP2017187952A (ja) * 2016-04-06 2017-10-12 株式会社コロプラ 表示制御方法及び当該表示制御方法をコンピュータに実行させるためのプログラム
JP2018101293A (ja) * 2016-12-20 2018-06-28 株式会社コロプラ ヘッドマウントデバイスに仮想空間を提供するためにコンピュータによって実行される方法、当該方法をコンピュータに実行させるプログラム、および、コンピュータ装置
JP6392945B1 (ja) * 2017-07-19 2018-09-19 株式会社コロプラ 仮想空間を提供するコンピュータで実行されるプログラム、方法、および当該プログラムを実行する情報処理装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005107963A (ja) * 2003-09-30 2005-04-21 Canon Inc 三次元cg操作方法および装置
JP2005148844A (ja) * 2003-11-11 2005-06-09 Fukuda Gakuen 表示システム
JP2015232783A (ja) * 2014-06-09 2015-12-24 株式会社バンダイナムコエンターテインメント プログラムおよび画像生成装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2019102825A1 (ja) * 2017-11-21 2020-12-03 株式会社ワコム レンダリング装置及びレンダリング方法
US11681383B2 (en) 2017-11-21 2023-06-20 Wacom Co., Ltd. Rendering device and rendering method
JP7345396B2 (ja) 2017-11-21 2023-09-15 株式会社ワコム レンダリング装置及びレンダリング方法
US12147616B2 (en) 2017-11-21 2024-11-19 Wacom Co., Ltd. Rendering device and rendering method
US12153743B2 (en) 2017-11-21 2024-11-26 Wacom Co., Ltd. Rendering device and rendering method
JP7642748B2 (ja) 2017-11-21 2025-03-10 株式会社ワコム 位置指示装置及びコンピュータ

Also Published As

Publication number Publication date
CN108027987B (zh) 2020-01-17
JP2018041341A (ja) 2018-03-15
US20190011981A1 (en) 2019-01-10
WO2018047384A1 (ja) 2018-03-15
CN108027987A (zh) 2018-05-11

Similar Documents

Publication Publication Date Title
JP6122537B1 (ja) 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
JP6093473B1 (ja) 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
CN109690447B (zh) 信息处理方法、用于使计算机执行该信息处理方法的程序、以及计算机
US10438411B2 (en) Display control method for displaying a virtual reality menu and system for executing the display control method
WO2018020735A1 (ja) 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
JP6117414B1 (ja) 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
JP6220937B1 (ja) 情報処理方法、当該情報処理方法をコンピュータに実行させるためのプログラム及びコンピュータ
JP6113897B1 (ja) 仮想空間を提供する方法、仮想体験を提供する方法、プログラム、および記録媒体
JP6157703B1 (ja) 情報処理方法、当該情報処理方法をコンピュータに実行させるためのプログラム及びコンピュータ
JP6140871B1 (ja) 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
JP6118444B1 (ja) 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
JP2018045338A (ja) 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
JP2018026105A (ja) 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
JP2018026099A (ja) 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
JP2018110871A (ja) 情報処理方法、当該情報処理方法をコンピュータに実行させるためのプログラム及びコンピュータ
JP6403843B1 (ja) 情報処理方法、情報処理プログラム及び情報処理装置
JP6449922B2 (ja) 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
JP6122194B1 (ja) 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
JP2018032413A (ja) 仮想空間を提供する方法、仮想体験を提供する方法、プログラム、および記録媒体
JP6934374B2 (ja) プロセッサを備えるコンピュータにより実行される方法
JP6290493B2 (ja) 情報処理方法、当該情報処理方法をコンピュータに実行させるためのプログラム及びコンピュータ
JP6242452B1 (ja) 仮想空間を提供する方法、仮想体験を提供する方法、プログラム、および記録媒体
JP2018018499A (ja) 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
JP2018185567A (ja) 情報処理方法、情報処理プログラム、情報処理システムおよび情報処理装置
JP2019021331A (ja) 情報処理方法、情報処理プログラム及び情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161130

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20161130

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20170119

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170131

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170222

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170331

R150 Certificate of patent or registration of utility model

Ref document number: 6122537

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250