JP6276434B1 - 仮想空間における移動を支援するための方法、当該方法をコンピュータに実行させるためのプログラム、および当該プログラムを実行するための情報処理装置 - Google Patents

仮想空間における移動を支援するための方法、当該方法をコンピュータに実行させるためのプログラム、および当該プログラムを実行するための情報処理装置 Download PDF

Info

Publication number
JP6276434B1
JP6276434B1 JP2017018576A JP2017018576A JP6276434B1 JP 6276434 B1 JP6276434 B1 JP 6276434B1 JP 2017018576 A JP2017018576 A JP 2017018576A JP 2017018576 A JP2017018576 A JP 2017018576A JP 6276434 B1 JP6276434 B1 JP 6276434B1
Authority
JP
Japan
Prior art keywords
user
moving object
virtual space
hmd
moving
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
JP2017018576A
Other languages
English (en)
Other versions
JP2018124907A (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 JP2017018576A priority Critical patent/JP6276434B1/ja
Priority to US15/887,602 priority patent/US10515481B2/en
Application granted granted Critical
Publication of JP6276434B1 publication Critical patent/JP6276434B1/ja
Publication of JP2018124907A publication Critical patent/JP2018124907A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/003Navigation within 3D models or images
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/0093Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00 with means for monitoring data relating to the user, e.g. head-tracking, eye-tracking
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • G02B27/0172Head mounted characterised by optical features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/163Wearable computers, e.g. on a belt
    • 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/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
    • 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/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/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • 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
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/0132Head-up displays characterised by optical features comprising binocular systems
    • G02B2027/0134Head-up displays characterised by optical features comprising binocular systems of stereoscopic type
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/0138Head-up displays characterised by optical features comprising image capture systems, e.g. camera
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/014Head-up displays characterised by optical features comprising information/image processing systems
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/02Improving the quality of display appearance
    • G09G2320/0261Improving the quality of display appearance in the context of movement of objects on the screen or movement of the observer relative to the screen

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Optics & Photonics (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Remote Sensing (AREA)
  • Computing Systems (AREA)
  • Geometry (AREA)
  • Radar, Positioning & Navigation (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)
  • Position Input By Displaying (AREA)

Abstract

【課題】仮想空間におけるユーザの快適な操作を実現するための技術を提供する。【解決手段】コンピュータで実行される方法は、仮想空間を定義するステップ(S1805)と、仮想空間に移動用オブジェクトを配置するステップ(S1810)と、移動用オブジェクトがヘッドマウントデバイスのユーザに見つめられたことを検知するステップ(S1830)と、移動用オブジェクトがユーザに見つめられたことに応じて、移動用オブジェクトの表示態様を変更するステップ(S1835)と、移動用オブジェクトが予め定められた時間ユーザに見つめられたことに応じて、ユーザの仮想空間における視座を、移動用オブジェクトの位置に対応する位置に移動させるステップ(S1845)とを備える。【選択図】図18

Description

この開示は、仮想空間を提供するための技術に関し、より特定的には、仮想空間における移動を支援するための技術に関する。
ヘッドマウントデバイス(HMD:Head-Mounted Device)装置を用いて仮想空間を提供する技術が知られている。また、仮想空間上でユーザの操作を実現するための様々な技術が提案されている。
例えば、非特許文献1は、仮想空間でのシューティングゲームにおいて、ユーザの視線を利用して、対象物への照準を合わせる技術を開示している。
"視線ひとつでここまで体験は変わる。アイトラッキングシステム搭載VRヘッドセット「FOVE」"、[online]、[平成29年1月8日検索]、インターネット〈URL:http://www.gizmodo.jp/2016/09/tgs2016-vr-fove.html〉
ユーザが仮想空間の中を疑似的に移動するための方法として、コンピュータに接続されたコントローラを手で操作する技術が広く知られている。この他にも、ユーザが仮想空間の中を移動するための操作をいっそう容易にする技術が必要とされている。例えば、コントローラがコンピュータに接続されていない場合もあり得る。したがって、このような場合にも、ユーザが仮想空間の中を移動するための技術が必要とされている。
本開示は、上記のような問題を解決するためになされたものであって、ある局面における目的は、仮想空間におけるユーザの快適な操作を実現するための技術を提供することである。
ある実施形態に従うと、ヘッドマウントデバイスによって提供される仮想空間における移動を支援するためにコンピュータで実行される方法が提供される。この方法は、仮想空間を定義するステップと、仮想空間に、移動用オブジェクトを配置するステップと、移動用オブジェクトがヘッドマウントデバイスのユーザに見つめられたことを検知するステップと、移動用オブジェクトがユーザに見つめられたことに応じて、移動用オブジェクトの表示態様を変更するステップと、移動用オブジェクトが予め定められた時間ユーザに見つめられたことに応じて、ユーザの仮想空間における視座を、移動用オブジェクトの位置に対応する位置に移動させるステップとを備える。
開示された技術的特徴の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解されるこの発明に関する次の詳細な説明から明らかとなるであろう。
HMDシステムの構成の概略を表す図である。 ある局面に従うコンピュータのハードウェア構成の一例を表すブロック図である。 ある実施形態に従うHMDに設定されるuvw視野座標系を概念的に表す模式図である。 ある実施形態に従う仮想空間を表現する一態様を概念的に表す模式図である。 ある実施形態に従うHMDを装着するユーザの頭部を上から表した模式図である。 仮想空間において視認領域をX方向から見たYZ断面を表す図である。 仮想空間において視認領域をY方向から見たXZ断面を表す図である。 ある実施形態に従うコンピュータをモジュール構成として表わすブロック図である。 オブジェクト情報のデータ構造例を示す図である。 HMDシステムにおける処理を表すフローチャートである。 ある局面に従う仮想空間の構成例を示す図である。 図11の仮想カメラ1が撮影する視界画像を示す図である。 ある局面に従う仮想空間の構成例を示す図である。 ユーザが移動用オブジェクトを注視していない状態の視界画像を示す図である。 ユーザが移動用オブジェクトを注視している状態の視界画像を示す図である。 仮想カメラを移動させた後の仮想空間の構成を示す図である。 他の実施形態に従うメータオブジェクトを説明するための図である。 移動用オブジェクトを用いて仮想カメラを移動するための処理について説明するためのフローチャートである。 ユーザのアバターオブジェクトを説明するための図である。 ある局面に従う仮想空間を示す図である。 図20の状態におけるユーザの視界画像を示す図である。 移動処理を中止するための処理を説明するフローチャートである。 ある局面に従うユーザの視界画像を示す図である。 ある局面に従うユーザの視界画像を示す図である。
以下、この技術的思想の実施形態について図面を参照しながら詳細に説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。なお、以下で説明される各実施形態は、適宜選択的に組み合わされてもよい。
[HMDシステムの構成]
図1を参照して、HMD(Head-Mounted Device)システム100の構成について説明する。図1は、HMDシステム100の構成の概略を表す。HMDシステム100は、家庭用のシステムとしてあるいは業務用のシステムとして提供される。
HMDシステム100は、HMDセット105A,105B,105C,105Dと、ネットワーク19とサーバ150とを含む。HMDセット105A,105B,105C,105Dの各々は、ネットワーク19を介してサーバ150と通信可能に構成される。以下、HMDセット105A,105B,105C,105Dを総称して、HMDセット105とも言う。なお、HMDシステム100を構成するHMDセット105の数は、4つに限られず、3つ以下でも、5つ以上でもよい。
HMDセット105は、HMD110と、HMDセンサ120と、コンピュータ200とを備える。HMD110は、モニタ112と、スピーカ118と、マイク119と、注視センサ140とを含む。
ある局面において、コンピュータ200は、インターネットその他のネットワーク19に接続可能であり、ネットワーク19に接続されているサーバ150その他のコンピュータと通信可能である。
HMD110は、ユーザの頭部に装着され、動作中に仮想空間をユーザに提供し得る。より具体的には、HMD110は、右目用の画像および左目用の画像をモニタ112にそれぞれ表示する。ユーザの各目がそれぞれの画像を視認すると、ユーザは、両目の視差に基づき当該画像を3次元の画像として認識し得る。HMD110は、モニタを備える所謂ヘッドマウントディスプレイと、スマートフォンその他のモニタを有する端末を装着可能なヘッドマウント機器のいずれをも含み得る。
モニタ112は、例えば、非透過型の表示装置として実現される。ある局面において、モニタ112は、ユーザの両目の前方に位置するようにHMD110の本体に配置されている。したがって、ユーザは、モニタ112に表示される3次元画像を視認すると、仮想空間に没入することができる。ある実施形態において、仮想空間は、例えば、背景、ユーザが操作可能なオブジェクト、ユーザが選択可能なメニューの画像を含む。ある実施形態において、モニタ112は、所謂スマートフォンその他の情報表示端末が備える液晶モニタまたは有機EL(Electro Luminescence)モニタとして実現され得る。
他の局面において、モニタ112は、透過型の表示装置として実現され得る。この場合、HMD110は、図1に示されるようにユーザの目を覆う密閉型ではなく、メガネ型のような開放型であり得る。透過型のモニタ112は、その透過率を調整することにより、一時的に非透過型の表示装置として構成可能であってもよい。また、モニタ112は、仮想空間を構成する画像の一部と、現実空間とを同時に表示する構成を含んでいてもよい。例えば、モニタ112は、HMD110に搭載されたカメラで撮影した現実空間の画像を表示してもよいし、一部の透過率を高く設定することにより現実空間を視認可能にしてもよい。
ある局面において、モニタ112は、右目用の画像を表示するためのサブモニタと、左目用の画像を表示するためのサブモニタとを含み得る。別の局面において、モニタ112は、右目用の画像と左目用の画像とを一体として表示する構成であってもよい。この場合、モニタ112は、高速シャッタを含む。高速シャッタは、画像がいずれか一方の目にのみ認識されるように、右目用の画像と左目用の画像とを交互に表示可能に作動する。
スピーカ118は、音声信号を音声に変換してユーザ190に出力する。マイク119は、ユーザ190の発話を電気信号に変換してコンピュータ200に出力する。なお、他の局面において、HMD110は、スピーカ118に替えてイヤホンを備えるように構成されてもよい。
HMDセンサ120は、HMD110の位置および傾きを検出し得る。ある局面において、HMD110は、複数の光源(図示しない)を含む。各光源は例えば、赤外線を発するLED(Light Emitting Diode)により実現される。HMDセンサ120は、HMD110の動きを検出するためのポジショントラッキング機能を有する。より具体的には、HMDセンサ120は、HMD110が発する複数の赤外線を読み取り、現実空間内におけるHMD110の位置および傾きを検出する。
なお、別の局面において、HMDセンサ120は、カメラにより実現されてもよい。この場合、HMDセンサ120は、カメラから出力されるHMD110の画像情報を用いて、画像解析処理を実行することにより、HMD110の位置および傾きを検出することができる。
さらに別の局面において、HMD110は、HMD110の動きを検出するためのデバイスとして、HMDセンサ120の代わりに、またはHMD120に加えてセンサ114を備えてもよい。HMD110は、センサ114を用いて、HMD110の傾きを検出し得る。例えば、センサ114は、HMD110に設定される3軸(ヨー軸、ロール軸、ピッチ軸)まわりの角速度を経時的に検出するジャイロセンサであり得る。コンピュータ200は、各角速度に基づいて、HMD110の3軸まわりの角度の時間的変化を算出し、さらに、角度の時間的変化に基づいて、HMD110の傾きを算出する。他の例において、センサ114は、加速度センサ、地磁気センサその他のセンサを含み得る。
注視センサ140は、ユーザ190の右目および左目の視線が向けられる方向(視線)を検出する。当該方向の検出は、例えば、公知のアイトラッキング機能によって実現される。注視センサ140は、当該アイトラッキング機能を有するセンサにより実現される。ある局面において、注視センサ140は、右目用のセンサおよび左目用のセンサを含むことが好ましい。注視センサ140は、例えば、ユーザ190の右目および左目に赤外光を照射するとともに、照射光に対する角膜および虹彩からの反射光を受けることにより各眼球の回転角を検出するセンサであってもよい。注視センサ140は、検出した各回転角に基づいて、ユーザ190の視線を検知できる。
サーバ150は、コンピュータ200にプログラムを送信し得る。別の局面において、サーバ150は、他のユーザによって使用されるHMDに仮想現実を提供するための他のコンピュータ200と通信し得る。例えば、アミューズメント施設において、複数のユーザが参加型のゲームを行なう場合、各コンピュータ200は、各ユーザの動作に基づく信号を他のコンピュータ200と通信して、同じ仮想空間において複数のユーザが共通のゲームを楽しむことを可能にする。
[ハードウェア構成]
図2を参照して、本実施形態に係るコンピュータ200について説明する。図2は、ある局面に従うコンピュータ200のハードウェア構成の一例を表すブロック図である。コンピュータ200は、主たる構成要素として、プロセッサ10と、メモリ11と、ストレージ12と、入出力インターフェイス13と、通信インターフェイス14とを備える。各構成要素は、それぞれ、バス15に接続されている。
プロセッサ10は、コンピュータ200に与えられる信号に基づいて、あるいは、予め定められた条件が成立したことに基づいて、メモリ11またはストレージ12に格納されているプログラムに含まれる一連の命令を実行する。ある局面において、プロセッサ10は、CPU(Central Processing Unit)、MPU(Micro Processor Unit)、FPGA(Field-Programmable Gate Array)その他のデバイスとして実現される。
メモリ11は、プログラムおよびデータを一時的に保存する。プログラムは、例えば、ストレージ12からロードされる。データは、コンピュータ200に入力されたデータと、プロセッサ10によって生成されたデータとを含む。ある局面において、メモリ11は、RAM(Random Access Memory)その他の揮発メモリとして実現される。
ストレージ12は、プログラムおよびデータを永続的に保持する。ストレージ12は、例えば、ROM(Read-Only Memory)、ハードディスク装置、フラッシュメモリ、その他の不揮発記憶装置として実現される。ストレージ12に格納されるプログラムは、HMDシステム100において仮想空間を提供するためのプログラム、シミュレーションプログラム、ゲームプログラム、ユーザ認証プログラム、他のコンピュータ200との通信を実現するためのプログラムを含む。ストレージ12に格納されるデータは、仮想空間を規定するためのデータおよびオブジェクト等を含む。
なお、別の局面において、ストレージ12は、メモリカードのように着脱可能な記憶装置として実現されてもよい。さらに別の局面において、コンピュータ200に内蔵されたストレージ12の代わりに、外部の記憶装置に保存されているプログラムおよびデータを使用する構成が使用されてもよい。このような構成によれば、例えば、アミューズメント施設のように複数のHMDシステム100が使用される場面において、プログラムやデータの更新を一括して行なうことが可能になる。
ある実施形態において、入出力インターフェイス13は、HMD110、およびHMDセンサ120との間で信号を通信する。ある局面において、HMD110に含まれるモニタ112、センサ114、スピーカ118、およびマイク119は、HMD110のインターフェイスを介してコンピュータ200との通信を行ない得る。ある局面において、入出力インターフェイス13は、USB(Universal Serial Bus)、DVI(Digital Visual Interface)、HDMI(登録商標)(High-Definition Multimedia Interface)その他の端子を用いて実現される。なお、入出力インターフェイス13は上述のものに限られない。
通信インターフェイス14は、ネットワーク19に接続されて、ネットワーク19に接続されている他のコンピュータ(例えば、サーバ150)と通信する。ある局面において、通信インターフェイス14は、例えば、LAN(Local Area Network)その他の有線通信インターフェイス、あるいは、WiFi(Wireless Fidelity)、Bluetooth(登録商標)、NFC(Near Field Communication)その他の無線通信インターフェイスとして実現される。なお、通信インターフェイス14は上述のものに限られない。
ある局面において、プロセッサ10は、ストレージ12にアクセスし、ストレージ12に格納されている1つ以上のプログラムをメモリ11にロードし、当該プログラムに含まれる一連の命令を実行する。当該1つ以上のプログラムは、コンピュータ200のオペレーティングシステム、仮想空間を提供するためのアプリケーションプログラム、仮想空間で実行可能なゲームソフトウェア等を含み得る。プロセッサ10は、入出力インターフェイス13を介して、仮想空間を提供するための信号をHMD110に送る。HMD110は、その信号に基づいてモニタ112に映像を表示する。
なお、図2に示される例では、コンピュータ200は、HMD110の外部に設けられる構成が示されているが、別の局面において、コンピュータ200は、HMD110に内蔵されてもよい。一例として、モニタ112を含む携帯型の情報通信端末(例えば、スマートフォン)がコンピュータ200として機能してもよい。
また、コンピュータ200は、複数のHMD110に共通して用いられる構成であってもよい。このような構成によれば、例えば、複数のユーザに同一の仮想空間を提供することもできるので、各ユーザは同一の仮想空間で他のユーザと同一のアプリケーションを楽しむことができる。
ある実施形態において、HMDシステム100では、グローバル座標系が予め設定されている。グローバル座標系は、現実空間における鉛直方向、鉛直方向に直交する水平方向、ならびに、鉛直方向および水平方向の双方に直交する前後方向にそれぞれ平行な、3つの基準方向(軸)を有する。本実施形態では、グローバル座標系は視点座標系の一つである。そこで、グローバル座標系における水平方向、鉛直方向(上下方向)、および前後方向は、それぞれ、x軸、y軸、z軸と規定される。より具体的には、グローバル座標系において、x軸は現実空間の水平方向に平行である。y軸は、現実空間の鉛直方向に平行である。z軸は現実空間の前後方向に平行である。
ある局面において、HMDセンサ120は、赤外線センサを含む。赤外線センサが、HMD110の各光源から発せられた赤外線をそれぞれ検出すると、HMD110の存在を検出する。HMDセンサ120は、さらに、各光源の位置(グローバル座標系における各座標値)に基づいて、HMD110を装着したユーザ190の動きに応じた、現実空間内におけるHMD110の位置および傾きを検出する。より詳しくは、HMDセンサ120は、経時的に検出された各値を用いて、HMD110の位置および傾きの時間的変化を検出できる。
他の局面において、センサ114は、3軸のジャイロセンサと、3軸の加速度センサとを有するモーションセンサであり得る。HMD110は、センサ114の出力に基づいて、基準方向(例えば、重力(鉛直)方向)に対するHMD110の傾き角度を算出する。これにより、コンピュータ200は、グローバル座標系におけるHMD110の傾きを取得できる。
グローバル座標系は現実空間の座標系と平行である。したがって、センサ114またはHMDセンサ120によって検出されたHMD110の各傾きは、グローバル座標系におけるHMD110の3軸周りの各傾きに相当する。コンピュータ200は、グローバル座標系におけるHMD110の傾きに基づき、uvw視野座標系をHMD110に設定する。HMD110に設定されるuvw視野座標系は、HMD110を装着したユーザ190が仮想空間において物体を見る際の視点座標系に対応する。
[uvw視野座標系]
図3を参照して、uvw視野座標系について説明する。図3は、ある実施形態に従うHMD110に設定されるuvw視野座標系を概念的に表す模式図である。センサ114またはHMDセンサ120は、HMD110の起動時に、グローバル座標系におけるHMD110の傾きを検出する。プロセッサ10は、検出された値に基づいて、uvw視野座標系をHMD110に設定する。
図3に示されるように、HMD110は、HMD110を装着したユーザの頭部を中心(原点)とした3次元のuvw視野座標系を設定する。より具体的には、HMD110は、グローバル座標系を規定する水平方向(x軸)、鉛直方向(y軸)、および前後方向(z軸)を、グローバル座標系内においてHMD110の各軸周りの傾きだけ各軸周りにそれぞれ傾けることによって新たに得られる3つの方向を、HMD110におけるuvw視野座標系のピッチ軸(u軸)、ヨー軸(v軸)、およびロール軸(w軸)として設定する。図3に示されるように、ヨー軸は、ユーザ190の高さ方向に延在する。
ある局面において、HMD110を装着したユーザ190が直立し、かつ、正面を視認している場合、プロセッサ10は、グローバル座標系に平行なuvw視野座標系をHMD110に設定する。この場合、グローバル座標系における水平方向(x軸)、鉛直方向(y軸)、および前後方向(z軸)は、HMD110におけるuvw視野座標系のピッチ軸(u軸)、ヨー軸(v軸)、およびロール軸(w軸)に一致する。
uvw視野座標系がHMD110に設定された後、センサ114またはHMDセンサ120は、HMD110の動きに基づいて、設定されたuvw視野座標系におけるHMD110の傾き(傾きの変化量)を検出できる。この場合、センサ114またはHMDセンサ120は、HMD110の傾きとして、uvw視野座標系におけるHMD110のピッチ角(θu)、ヨー角(θv)、およびロール角(θw)をそれぞれ検出する。ピッチ角(θu)は、uvw視野座標系におけるピッチ軸まわりのHMD110の傾き角度を表す。ヨー角(θv)は、uvw視野座標系におけるヨー軸まわりのHMD110の傾き角度を表す。ロール角(θw)は、uvw視野座標系におけるロール軸まわりのHMD110の傾き角度を表す。ある局面において、センサ114は、これらピッチ角、ヨー角、ロール角についての角速度を取得可能に構成される。
コンピュータ200は、センサ114またはHMDセンサ120の出力に基づいて検出したHMD110の傾き角度に従って、HMD110が動いた後のHMD110におけるuvw視野座標系を、HMD110に設定する。HMD110と、HMD110のuvw視野座標系との関係は、HMD110の位置および傾きに関わらず、常に一定である。HMD110の位置および傾きが変わると、当該位置および傾きの変化に連動して、グローバル座標系におけるHMD110のuvw視野座標系の位置および傾きが変化する。
ある局面において、HMDセンサ120は、赤外線センサからの出力に基づいて取得される赤外線の光強度および複数の点間の相対的な位置関係(例えば、各点間の距離など)に基づいて、HMD110の現実空間内における位置を、HMDセンサ120に対する相対位置として特定してもよい。また、プロセッサ10は、特定された相対位置に基づいて、現実空間内(グローバル座標系)におけるHMD110のuvw視野座標系の原点を決定してもよい。
[仮想空間]
図4を参照して、仮想空間についてさらに説明する。図4は、ある実施形態に従う仮想空間2を表現する一態様を概念的に表す模式図である。仮想空間2は、360度方向の全体を覆う全天球状の構造を有する。図4では、説明を複雑にしないために、仮想空間2のうちの上半分の天球が例示されている。仮想空間2では各メッシュが規定される。各メッシュの位置は、仮想空間2に規定されるXYZ座標系における座標値として予め規定されている。コンピュータ200は、仮想空間2に展開可能なコンテンツ(静止画、動画等)を構成する各部分画像を、仮想空間2において対応する各メッシュにそれぞれ対応付けて、ユーザによって視認可能な仮想空間画像22が展開される仮想空間2をユーザに提供する。
ある局面において、仮想空間2では、中心を原点とするXYZ座標系が規定される。XYZ座標系は、例えば、グローバル座標系に平行である。XYZ座標系は視点座標系の一種であるため、XYZ座標系における水平方向、鉛直方向(上下方向)、および前後方向は、それぞれX軸、Y軸、Z軸として規定される。したがって、XYZ座標系のX軸(水平方向)がグローバル座標系のx軸と平行であり、XYZ座標系のY軸(鉛直方向)がグローバル座標系のy軸と平行であり、XYZ座標系のZ軸(前後方向)がグローバル座標系のz軸と平行である。
HMD110の起動時、すなわちHMD110の初期状態において、仮想カメラ1が、仮想空間2の初期位置21に配置される。初期位置21は、例えば、XZ平面における中心位置であって、Y方向の予め定められた高さ位置(初期高さ)であり得る。ある局面において、プロセッサ10は、仮想カメラ1が撮影する画像をHMD110のモニタ112に表示する。換言すれば、仮想カメラ1が配置される位置は、ユーザ190の視座(物事を見る位置)となる。仮想カメラ1は、現実空間におけるHMD110の動きに連動して、仮想空間2を同様に移動する。これにより、現実空間におけるHMD110の位置および向きの変化が、仮想空間2において同様に再現され得る。
仮想カメラ1には、HMD110の場合と同様に、uvw視野座標系が規定される。仮想空間2における仮想カメラ1のuvw視野座標系は、現実空間(グローバル座標系)におけるHMD110のuvw視野座標系に連動するように規定されている。したがって、HMD110の傾きが変化すると、それに応じて、仮想カメラ1の傾きも変化する。また、仮想カメラ1は、HMD110を装着したユーザの現実空間における移動に連動して、仮想空間2において移動することもできる。
コンピュータ200のプロセッサ10は、仮想カメラ1の位置と、仮想カメラ1の傾き方向、換言すれば、仮想カメラ1の撮影方向を示す基準視線5とに基づいて、仮想空間2における視認領域23を規定する。視認領域23は、仮想空間2のうち、HMD110を装着したユーザが視認する領域に対応する。上記のように、仮想カメラ1のuvw視野座標系はHMD110のuvw視野座標系に連動している。そのため、基準視線5は、センサ114またはHMD120の出力に基づいて定まるHMD110の傾きによって定まる。
注視センサ140によって検出されるユーザ190の視線は、ユーザ190が物体を視認する際の視点座標系における方向である。HMD110のuvw視野座標系は、ユーザ190がモニタ112を視認する際の視点座標系に等しい。また、仮想カメラ1のuvw視野座標系は、HMD110のuvw視野座標系に連動している。したがって、ある局面に従うコンピュータ200は、注視センサ140によって検出されたユーザ190の視線を、仮想カメラ1のuvw視野座標系におけるユーザの視線とみなすことができる。
[ユーザの視線]
図5を参照して、ユーザの視線の決定について説明する。図5は、ある実施形態に従うHMD110を装着するユーザ190の頭部を上から表した模式図である。
ある局面において、注視センサ140は、ユーザ190の右目および左目の各視線を検出する。ある局面において、ユーザ190が近くを見ている場合、注視センサ140は、視線R1およびL1を検出する。別の局面において、ユーザ190が遠くを見ている場合、注視センサ140は、視線R2およびL2を検出する。この場合、ロール軸wに対して視線R2およびL2が成す角度は、ロール軸wに対して視線R1およびL1が成す角度よりも小さい。注視センサ140は、検出結果をコンピュータ200に送信する。
コンピュータ200が、視線の検出結果として、視線R1およびL1の検出値を注視センサ140から受信した場合には、その検出値に基づいて、視線R1およびL1の交点である注視点N1を特定する。一方、コンピュータ200は、視線R2およびL2の検出値を注視センサ140から受信した場合には、視線R2およびL2の交点を注視点として特定する。コンピュータ200は、特定した注視点N1の位置に基づき、ユーザ190の視線N0を特定する。コンピュータ200は、例えば、ユーザ190の右目Rと左目Lとを結ぶ直線の中点と、注視点N1とを通る直線の延びる方向を、視線N0として検出する。視線N0は、ユーザ190が両目により実際に視線を向けている方向である。また、視線N0は、視認領域23に対してユーザ190が実際に視線を向けている方向に相当する。
また、別の局面において、HMDシステム100は、テレビジョン放送受信チューナを備えてもよい。このような構成によれば、HMDシステム100は、仮想空間2においてテレビ番組を表示することができる。
さらに別の局面において、HMDシステム100は、インターネットに接続するための通信回路、あるいは、電話回線に接続するための通話機能を備えていてもよい。
[視界領域]
図6および図7を参照して、視認領域23について説明する。図6は、仮想空間2において視認領域23をX方向から見たYZ断面を表す。図7は、仮想空間2において視認領域23をY方向から見たXZ断面を表す。
図6に示されるように、YZ断面における視認領域23は、領域24を含む。領域24は、仮想カメラ1の位置と基準視線5と仮想空間2のYZ断面とによって定義される。プロセッサ10は、仮想空間における基準視線5を中心として極角αを含む範囲を、領域24として規定する。
図7に示されるように、XZ断面における視認領域23は、領域25を含む。領域25は、仮想カメラ1の位置と基準視線5と仮想空間2のXZ断面とによって定義される。プロセッサ10は、仮想空間2における基準視線5を中心とした方位角βを含む範囲を、領域25として規定する。極角αおよびβは、仮想カメラ1の位置と仮想カメラ1の向きとに応じて定まる。
ある局面において、HMDシステム100は、コンピュータ200からの信号に基づいて、視界画像26をモニタ112に表示させることにより、ユーザ190に仮想空間における視界を提供する。視界画像26は、仮想空間画像22のうち視認領域23に重畳する部分に相当する。ユーザ190が、頭に装着したHMD110を動かすと、その動きに連動して仮想カメラ1も動く。その結果、仮想空間2における視認領域23の位置が変化する。これにより、モニタ112に表示される視界画像26は、仮想空間画像22のうち、仮想空間2においてユーザが向いた方向の視認領域23に重畳する画像に更新される。ユーザは、仮想空間2における所望の方向を視認することができる。
このように、仮想カメラ1の傾きは仮想空間2におけるユーザ190の頭の向いている方向(基準視線5)に相当する。また、上述したように仮想カメラ1が配置される位置は、仮想空間2におけるユーザの視座に相当する。したがって、仮想カメラ1を移動(位置を変える動作、傾きを変える動作を含む)させることにより、モニタ112に表示される視界画像26が更新され、ユーザ190の視界が移動される。
ユーザ190は、HMD110を装着している間、現実世界を視認することなく、仮想空間2に展開される仮想空間画像22のみを視認できる。そのため、HMDシステム100は、仮想空間2への高い没入感覚をユーザに与えることができる。
ある実施形態に従うと、仮想カメラ1は、2つの仮想カメラ、すなわち、右目用の画像を提供するための仮想カメラと、左目用の画像を提供するための仮想カメラとを含み得る。また、ユーザ190が3次元の仮想空間2を認識できるように、適切な視差が、2つの仮想カメラに設定される。以下では、仮想カメラ1が2つの仮想カメラを含み、2つの仮想カメラのロール軸が合成されることによって生成されるロール軸(w)が、HMD110のロール軸(w)に適合されるように構成されているものとして、本開示に係る技術思想を例示する。
[HMDの制御装置]
図8を参照して、HMD110の制御装置について説明する。ある実施形態において、制御装置は周知の構成を有するコンピュータ200によって実現される。図8は、ある実施形態に従うコンピュータ200をモジュール構成として表わすブロック図である。
図8に示されるように、コンピュータ200は、表示制御モジュール220と、仮想空間制御モジュール230と、メモリモジュール240と、通信制御モジュール250とを備える。表示制御モジュール220は、サブモジュールとして、仮想カメラ制御モジュール221と、視界領域決定モジュール222と、視界画像生成モジュール223と、基準視線特定モジュール224とを含む。仮想空間制御モジュール230は、サブモジュールとして、仮想空間定義モジュール231と、仮想オブジェクト生成モジュール232と、オブジェクト制御モジュール233とを含む。
ある実施形態において、表示制御モジュール220と仮想空間制御モジュール230とは、プロセッサ10によって実現される。別の実施形態において、複数のプロセッサ10が表示制御モジュール220と仮想空間制御モジュール230として作動してもよい。メモリモジュール240は、メモリ11またはストレージ12によって実現される。通信制御モジュール250は、通信インターフェイス14によって実現される。
表示制御モジュール220は、HMD110のモニタ112における画像表示を制御する。仮想カメラ制御モジュール221は、仮想空間2に仮想カメラ1を配置する。仮想カメラ制御モジュール221は、仮想空間2における仮想カメラ1の位置と、仮想カメラ1の傾き(向き)を制御する。視界領域決定モジュール222は、HMD110の傾き(すなわち、センサ114の出力)と、仮想カメラ1の位置に応じて、視認領域23を規定する。視界画像生成モジュール223は、決定された視認領域23に基づいて、モニタ112に表示される視界画像26を生成する。
基準視線特定モジュール224は、センサ114またはHMDセンサ120の出力に基づいて、HMD110の傾きを特定する。また、基準視線特定モジュール224は、注視センサ140からの信号に基づいて、ユーザ190の視線を特定し得る。
仮想空間制御モジュール230は、ユーザ190に提供される仮想空間2を制御する。仮想空間定義モジュール231は、仮想空間2を表わす仮想空間データを生成することにより、HMDシステム100における仮想空間2を規定する。
仮想オブジェクト生成モジュール232は、仮想空間2に配置されるオブジェクトを生成する。オブジェクトは、例えば、ゲームのストーリーの進行に従って配置される森、山その他を含む風景、動物等を含み得る。また、オブジェクトは、仮想空間2におけるユーザ190の視座(すなわち、仮想カメラ1の位置)の移動のトリガとして機能する移動用オブジェクトを含む。
オブジェクト制御モジュール233は、仮想空間2に配置されるオブジェクトの動作などを制御する。例えば、オブジェクト制御モジュール233は、後述するアバターオブジェクトの動作を制御する。
仮想空間制御モジュール230は、仮想空間2に配置されるオブジェクトのそれぞれが、他のオブジェクトと衝突した場合に、当該衝突を検出する。仮想空間制御モジュール230は、例えば、あるオブジェクトと、別のオブジェクトとが触れたタイミングを検出することができ、当該検出がされたときに、予め定められた処理を行なう。仮想空間制御モジュール230は、オブジェクトとオブジェクトとが触れている状態から離れたタイミングを検出することができ、当該検出がされたときに、予め定められた処理を行なう。仮想空間制御モジュール230は、オブジェクトとオブジェクトとが触れている状態であることを検出することができる。
メモリモジュール240は、コンピュータ200が仮想空間2をユーザ190に提供するために使用されるデータを保持している。ある局面において、メモリモジュール240は、空間情報241と、オブジェクト情報242と、ユーザ情報243とを保持している。
空間情報241は、仮想空間2を提供するために規定された1つ以上のテンプレートを保持している。
オブジェクト情報242は、仮想空間2において再生されるコンテンツ、当該コンテンツで使用されるオブジェクト、およびオブジェクトを仮想空間2に配置するための情報(たとえば、位置情報)を保持している。
図9は、オブジェクト情報242のデータ構造例を示す。図9に示されるオブジェクト情報242は、オブジェクトごとに、仮想空間2に配置される位置と、3軸(XYZ)方向における大きさとを互いに関連付けて保持する。他の局面において、オブジェクト情報242は、オブジェクトをモデリングするためのデータをさらに関連付けて保持し得る。
図8を再び参照して、ユーザ情報243は、HMDシステム100の制御装置としてコンピュータ200を機能させるためのプログラム、オブジェクト情報242に保持される各コンテンツを使用するアプリケーションプログラム等を保持している。
メモリモジュール240に格納されているデータおよびプログラムは、HMD110のユーザによって入力される。あるいは、プロセッサ10が、当該コンテンツを提供する事業者が運営するコンピュータ(例えば、サーバ150)からプログラムあるいはデータをダウンロードして、ダウンロードされたプログラムあるいはデータをメモリモジュール240に格納する。
通信制御モジュール250は、ネットワーク19を介して、サーバ150その他の情報通信装置と通信し得る。また、通信制御モジュール250は、HMD110に搭載される種々のデバイスと通信し得る。
ある局面において、表示制御モジュール220および仮想空間制御モジュール230は、例えば、ユニティテクノロジーズ社によって提供されるUnity(登録商標)を用いて実現され得る。別の局面において、表示制御モジュール220および仮想空間制御モジュール230は、各処理を実現する回路素子の組み合わせとしても実現され得る。
コンピュータ200における処理は、ハードウェアと、プロセッサ10により実行されるソフトウェアとによって実現される。このようなソフトウェアは、ハードディスクその他のメモリモジュール240に予め格納されている場合がある。また、ソフトウェアは、CD−ROMその他のコンピュータ読み取り可能な不揮発性のデータ記録媒体に格納されて、プログラム製品として流通している場合もある。あるいは、当該ソフトウェアは、インターネットその他のネットワークに接続されている情報提供事業者によってダウンロード可能なプログラム製品として提供される場合もある。このようなソフトウェアは、光ディスク駆動装置その他のデータ読取装置によってデータ記録媒体から読み取られて、あるいは、通信制御モジュール250を介してサーバ150その他のコンピュータからダウンロードされた後、記憶モジュールに一旦格納される。そのソフトウェアは、プロセッサ10によって記憶モジュールから読み出され、実行可能なプログラムの形式でRAMに格納される。プロセッサ10は、そのプログラムを実行する。
[コンピュータ200の制御構造]
図10を参照して、コンピュータ200における視界画像の更新方法について説明する。図10は、HMDシステム100における処理を表すフローチャートである。
ステップS1010において、コンピュータ200のプロセッサ10は、仮想空間定義モジュール231として、仮想空間2を定義する。より具体的には、プロセッサ10は、仮想空間2の大きさや形状を定義し得る。
ステップS1020において、プロセッサ10は、仮想カメラ1を仮想空間2に配置する。このとき、プロセッサ10は、仮想カメラ1を仮想空間2において予め規定された初期位置21に配置し得る。
ステップS1030にて、プロセッサ10は、視界画像生成モジュール223として、初期の視界画像26を表示するための視界画像データを生成する。生成された視界画像データは、視界画像生成モジュール223を介して通信制御モジュール250によってHMD110に送信される。
ステップS1032にて、HMD110のモニタ112は、コンピュータ200から受信した信号に基づいて、視界画像26を表示する。HMD110を装着したユーザ190は、視界画像26を視認すると仮想空間2を認識し得る。
ステップS1034にて、センサ114は、HMD110の動き(HMD110の各軸まわりの角速度)を検知する。HMD110の動きは、ユーザ190の頭の動きに連動している。センサ114は、検知結果を、コンピュータ200に出力する。
ステップS1040にて、プロセッサ10は、センサ114から入力された検知結果に基づいてHMD110の各軸まわりの角速度を算出する。プロセッサ10は、算出された角速度に基づき、HMD110の傾きを検知する。プロセッサ10はさらに、仮想カメラ制御モジュール221として、検知した傾きに連動するように仮想カメラ1の傾き(すなわち、仮想カメラ1の基準視線5)を変更する。これにより、仮想カメラ1が撮影する視界画像26が更新される。なお、図10に示される例において、コンピュータ200は、センサ114によってユーザ190の頭の動きを検知しているが、他の局面において、HMDセンサ120を用いて検知するように構成されてもよい。
ステップS1050において、プロセッサ10は、視界画像生成モジュール223として、傾きを変更された仮想カメラ1が撮影する視界画像26を表示するための視界画像データを生成し、生成した視界画像データをHMD110に出力する。
ステップS1052において、HMD110のモニタ112は、受信した視界画像データに基づいて、更新後の視界画像を表示する。これにより、仮想空間2におけるユーザの視界が更新される。
[移動用オブジェクトを利用した仮想空間での移動]
図11〜図17を参照して、移動用オブジェクトを用いて仮想カメラ1の位置(すなわち、ユーザ190の視座)を移動する制御について説明する。図11は、ある局面に従う仮想空間2の構成例を示す。
図11に示される仮想空間2には、仮想的な映画館が構成されている。より具体的には、この仮想空間2は、スクリーンオブジェクト1100と、座席オブジェクト1110−1、1120−2、・・・、1120−8と、移動用オブジェクト1120−1、1120−2、・・・、1120−8と、仮想カメラ1とを含む。以下、座席オブジェクト1110−1、1120−2、・・・、1120−8を総称して「座席オブジェクト1110」と言い、移動用オブジェクト1120−1、1120−2、・・・、1120−8を総称して「移動用オブジェクト1120」と言う。移動用オブジェクト1120は、座席オブジェクト1110の座面に配置されている。
ある局面において、初期状態において仮想カメラ1が配置される初期位置21は、座席オブジェクト1110−5の上(Y)方向であり得る。また、仮想カメラ1は、スクリーンオブジェクト1100に正対するように配置されている。
図12は、図11の仮想カメラ1が撮影する視界画像1200を示す。視界画像1200は、座席オブジェクト1110−1、1110−2、1110−3と、スクリーン1100とを含む。スクリーンオブジェクト1100は、サーバ150から配信されるコンテンツ(例えば、静止画像、動画像)、またはストレージ12に格納されるコンテンツを再生可能に構成される。ユーザ190は、仮想空間2の中でスクリーン1100に映しだされるコンテンツを閲覧できる。
視界画像1200は、マーカ1210をさらに含む。マーカ1210は、視界画像の中心に配置されている。図6および図7において、視認領域23は、仮想空間2における基準視線5を中心とする所定範囲であると説明した。視界画像は、視認領域23に対応する仮想空間画像22である。したがって、視界画像の中心に表示されるマーカ1210は、基準視線5が指し示す位置に対応する。ある実施形態において、コンピュータ200は、マーカ1210を、仮想空間2におけるユーザ190の視線が注がれる位置(注視点)として扱う。
図11を再び参照して、ユーザ190は、座席オブジェクト1110−5から他の座席オブジェクト1110の位置に移動したい場合がある。係る場合、ユーザ190は、他の座席オブジェクト1110に対応する移動用オブジェクト1120を見つめる。コンピュータ200は、移動用オブジェクト1120がユーザ190に所定時間(例えば、2秒間)見つめられたことを検知すると、当該見つめられた移動用オブジェクト1120の位置に仮想カメラ1(ユーザ190の視座)を移動する。
コンピュータ200は、マーカ1210が移動用オブジェクト1120に重畳されたことに応じて、換言すれば、仮想空間2におけるユーザ190の視界の中央部に移動用オブジェクト1120が含まれたことに応じて、移動用オブジェクト1120がユーザ190に見つめられたことを検知する。なお、コンピュータ200は、基準視線5のベクトルが、移動用オブジェクト1120が占める空間領域を貫いたことに応じて、マーカ1210が移動用オブジェクト1120に重畳されたことを検知できる。移動用オブジェクト1120が占める空間領域は、図9で説明したオブジェクト情報242に規定されている。
ある実施形態において、コンピュータ200は、移動用オブジェクト1120がユーザ190に見つめられたことを検知すると、移動用オブジェクト1120の表示態様を変更する。これにより、コンピュータ200は、ユーザ190が移動用オブジェクト1120を見つめている事象をコンピュータ200が認識していることを、ユーザ190にフィードバックできる。
コンピュータ200は、一例として、移動用オブジェクト1120がユーザ190に見つめられたことを検知すると、移動用オブジェクト1120の透過率を、見つめられる前の透過率よりも小さくする。ある実施形態において、ユーザ190に見つめられる前の移動用オブジェクト1120の透過率は100%に設定される。これにより、コンピュータ200は、ユーザ190が現実空間の映画館において存在しない移動用オブジェクト1120を頻繁に視認することによる、ユーザ190の仮想空間2への没入感の損失を抑制し得る。また、コンピュータ200は、移動用オブジェクト1120がユーザ190に見つめられている時間に応じて、移動用オブジェクト1120の透過率を徐々に下げるように構成されてもよい。
なお、移動用オブジェクト1120の表示態様の変更方法は上記に限られない。例えば、コンピュータ200は、移動用オブジェクト1120の色を変更する処理、移動用オブジェクト1120の大きさを変更する処理、移動用オブジェクト1120を点滅させる処理、その他の処理を実行し得る。
移動用オブジェクト1120の高さ位置(Y方向における位置)は、初期状態において仮想カメラ1が配置される初期位置21の高さ位置よりも、低く設定される。一例として、移動用オブジェクト1120の高さ位置は、初期位置21の高さ位置から予め定められた距離はなれた位置に設定される。これにより、ユーザ190が意図的に下(Y)方向を向かない限り、移動用オブジェクト1120がユーザ190の視界に含まれることはない。その理由は、ユーザ190は、通常、正面を向いているためである。この構成によれば、コンピュータ200は、ユーザ190が頻繁に移動用オブジェクト1120を視認することによる、ユーザ190の仮想空間2への没入感の損失を抑制できる。
以下、一例として、ユーザ190が、座席オブジェクト1110−5の位置から座席オブジェクト1110−4の位置に移動したい場合について説明する。この場合、ユーザ190は、仮想空間2において座席オブジェクト1110−4を視認するために、現実空間においてHMD110を装着した頭を左下方向に向ける。コンピュータ200は、センサ114またはHMD120の出力に基づいて、このユーザ190の動作を検知する。これに応じて、コンピュータ200は、図13に示されるように仮想カメラ1の向きを変更する。
図14は、ユーザ190が移動用オブジェクト1120−4を注視していない状態の視界画像1400を示す。視界画像1400において、マーカ1210が、移動用オブジェクト1120−4に重畳されていない。そのため、コンピュータ200は、移動用オブジェクト1120−4がユーザ190に見つめられたと検知しない。この状態において、移動用オブジェクト1120−4は透明であるため、ユーザ190はこのオブジェクトを視認していない。
図15は、ユーザ190が移動用オブジェクト1120−4を注視している状態の視界画像1500を示す。視界画像1500において、マーカ1210が、移動用オブジェクト1120−4に重畳されている。そのため、コンピュータ200は、移動用オブジェクト1120−4がユーザ190に見つめられたと検知する。この状態において、移動用オブジェクト1120−4の透過率が徐々に下がっていくため、ユーザ190は、移動用オブジェクト1120−4を視認する。
コンピュータ200は、移動用オブジェクト1120−4が予め定められた時間ユーザ190に見つめられたことを検知すると、仮想カメラ1を、移動用オブジェクト1120−4に対応する位置に移動させる。ある実施形態において、コンピュータ200は、仮想カメラ1を、移動用オブジェクト1120の位置に対して上(Y)方向に予め定められた距離はなれた位置に移動させる。
図16は、仮想カメラ1を移動させた後の仮想空間2の構成を示す図である。図16において、仮想カメラ1が座席オブジェクト1110−4の位置に移動している。これにより、ユーザ190は、座席オブジェクト1110−4の位置からスクリーンオブジェクト1100を視認できる。
図17は、他の実施形態に従うメータオブジェクト1700を説明するための図である。図17において、移動用オブジェクト1120−4がユーザ190に見つめられている。コンピュータ200は、これを検知して、移動用オブジェクト1120−4の近辺にメータオブジェクト1700を配置する。メータオブジェクト1700は、移動用オブジェクト1120−4がユーザ190に見つめられている時間に応じて時計回りに伸びるように構成される。また、メータオブジェクト1700は、移動用オブジェクト1120−4がユーザ190に見つめられている時間が所定時間に到達すると、完全な円を形成するように構成される。この所定時間は、仮想カメラ1を移動するために必要な時間と同じに設定される。当該構成によれば、ユーザ190は、自身の視界(仮想カメラ1)が移動されるまでに要する時間を直感的に理解し得る。なお、他の局面において、メータオブジェクト1700は、円形状に限られず、例えば、棒形状であってもよい。
[制御構造]
図18は、上記一連の、移動用オブジェクト1120を用いて仮想カメラ1を移動するための処理について説明するためのフローチャートである。図18に示される処理は、コンピュータ200のプロセッサ10がメモリ11またはストレージ12に格納される制御プログラムを実行することにより実現され得る。
ステップS1805において、プロセッサ10は、仮想空間定義モジュール231として、仮想空間2を定義(作成)する。ステップS1810において、プロセッサ10は、仮想オブジェクト生成モジュール232として、オブジェクト情報242を参照して、仮想カメラ1、座席オブジェクト1110、移動用オブジェクト1120、その他のオブジェクトを、所定の位置に配置する。
ステップS1815において、視界画像生成モジュール223として、仮想カメラ1が撮影する視界画像26を表示するための視界画像データをモニタ112に出力する。
ステップS1820において、プロセッサ10は、基準視線特定モジュール224として、センサ114またはHMDセンサ120の出力に基づいて、HMD110の動き(傾き)を検知する。HMD110の動きは、ユーザ190の頭の動きに連動している。ステップS1825において、プロセッサ10は、基準視線特定モジュール224として、検知したHMD110の動きに基づいて、基準視線5を特定する。
ステップS1830において、プロセッサ10は、移動用オブジェクト1120がユーザ190によって見つめられているか否かを判断する。プロセッサ10は、移動用オブジェクト1120がユーザ190によって見つめられていると判断した場合(ステップS1830においてYES)、処理をステップS1835に進める。一方、プロセッサ10は、移動用オブジェクト1120がユーザ190によって見つめられていないと判断した場合(ステップS1830においてNO)、処理をステップS1850に進める。
ステップS1835において、プロセッサ10は、移動用オブジェクト1120の表示態様を変更する。一例として、プロセッサ10は、移動用オブジェクト1120の透過率を1.7%下げる。これにより、ユーザ190は、移動用オブジェクト1120を視認し得る。ある実施形態において、プロセッサ10は、ステップS1820〜S1850の処理を1/30秒間隔で繰り返すように構成される。この場合、移動用オブジェクト1120がユーザ190に2秒間見つめられると、移動用オブジェクト1120の透過率は約0%になる。
ステップS1840において、プロセッサ10は、予め定められた時間(例えば、2秒間)にわたり移動用オブジェクト1120がユーザ190によって見つめられたか否かを判断する。プロセッサ10は、予め定められた時間にわたり移動用オブジェクト1120が見つめられたと判断した場合(ステップS1840においてYES)、処理をステップS1845に進める。一方、プロセッサ10は、予め定められた時間にわたり移動用オブジェクト1120が見つめられていないと判断した場合(ステップS1840においてNO)、処理をステップS1850に進める。
ステップS1845において、プロセッサ10は、仮想カメラ制御モジュール221として、仮想カメラ1の位置(ユーザ190の視座)を、見つめられた移動用オブジェクト1120に対応する位置に移動させる。
ステップS1850において、プロセッサ10は、視界画像生成モジュール223として、仮想カメラ1が撮影する視界画像26をモニタ112に表示する。
上記によれば、ある実施形態に従うHMDシステム100は、移動用オブジェクト1120がユーザ190に見つめられたことに応じて、仮想空間2におけるユーザ190の視座を移動させることができる。そのため、ユーザ190は、手で操作するコントローラを有さなくとも、容易に仮想空間2の中を移動できる。
[アバターオブジェクト]
図19を参照して、ある実施形態に従うアバターオブジェクトについて説明する。図19は、HMDセット105A,105B,105C,105Dの各ユーザのアバターオブジェクトを説明するための図である。以下、HMDセット105Aのユーザをユーザ190A、HMDセット105Bのユーザをユーザ190B、HMDセット105Cのユーザをユーザ190C、HMDセット105Dのユーザをユーザ190Dと表す。また、HMDセット105Aに関する各構成要素の参照符号にAが付され、HMDセット105Bに関する各構成要素の参照符号にBが付され、HMDセット105Cに関する各構成要素の参照符号にCが付され、HMDセット105Dに関する各構成要素の参照符号にDが付される。例えば、HMD110Aは、HMDセット105Aに含まれる。
図19において、コンピュータ200A〜200Dのそれぞれは、HMD110A〜110Dのそれぞれを介して、ユーザ190A〜190Dのそれぞれに、仮想空間2A〜2Dのそれぞれを提供する。図19において、仮想空間2Aに展開されているコンテンツと、仮想空間2Bに展開されているコンテンツとは同じである。換言すれば、コンピュータ200A(ユーザ190A)とコンピュータ200B(ユーザ190B)とは同じ仮想空間を共有している。
仮想空間を共有しているユーザ190Aおよびユーザ190Bは、仮想空間上で互いにコミュニケーションを図ることができる。より具体的には、マイク119Aにより取得されたユーザ190Aの音声データは、サーバ150を介してユーザ190BのHMD110Bに送信され、HMD110Bに設けられたスピーカ118Bから出力される。また、ユーザ190Bの音声データはサーバ150を介してユーザ190AのHMD110Aに送信され、音声はHMD110Aに設けられたスピーカ118Aから出力される。これにより、ユーザ190Aおよび190Bは、音声により互いにコミュニケーションできる。
また、仮想空間2Aおよび仮想空間2Bには、ユーザ190Aのアバターオブジェクト1900Aと、ユーザ190Bのアバターオブジェクト1900Bとが配置される。それぞれの仮想空間において、ユーザ190Aの動き(HMD110Aの動き)は、アバターオブジェクト1900Aに反映され、ユーザ190Bの動き(HMD110Bの動き)は、アバターオブジェクト1900Bに反映される。より具体的には、コンピュータ200Aは、センサ114BまたはHMDセンサ120Bにより取得されるユーザ190Bの動きを示すデータをサーバ150を介して受信する。コンピュータ200Aは、受信したデータに基づいて、アバターオブジェクト1900Bの動作を制御する。これによりユーザ190Aは、アバターオブジェクト1900Bを通じてユーザ190Bの動きを認識できる。
[移動を禁止する処理]
次に、図20〜図22を用いて、移動用オブジェクト1120がユーザ190に見つめられた場合であっても、移動を実行しない場合について説明する。
図20は、ある局面に従う仮想空間2Aを示す。図20に示される仮想空間2Aにおいて、座席オブジェクト1110−2にアバターオブジェクト1900Bが座っている。また、座席オブジェクト1110−5にアバターオブジェクト1900Aが座っている。
ある局面において、仮想カメラ制御モジュール221Aは、ユーザ190Aの視界画像26Aを撮影する仮想カメラ1A(図示しない)を、アバターオブジェクト1900Aの顔(目)の位置に配置し得る。
図21は、図20の状態におけるユーザ190Aの視界画像2100を示す。視界画像2100において、マーカ1210が移動用オブジェクト1120−2に重畳されている。しかしながら、コンピュータ200Aは、ユーザ190Aの視座(アバターオブジェクト1900Aの顔に配置される仮想カメラ1A)を、座席オブジェクト1110−2に対応する位置に移動させない。その理由は、既に座席オブジェクト1110−2にはアバターオブジェクト1900Bが配置されているためである。より具体的には、仮に、座席オブジェクト1110−2に、アバターオブジェクト1900Aおよび1900Bを配置した場合、アバターオブジェクト同士の距離が極端に近くなってしまい、ユーザ190Aおよび190Bは、互いにコミュニケーションが図りにくくなってしまうためである。また、第3者(例えば、ユーザ190C)が、アバターオブジェクト1900Aと1900Bとが重なっている状態を見て違和感を覚えることを抑制するためである。
このとき、コンピュータ200Aは、移動用オブジェクト1120−2がユーザ190Aに見つめられたことを検知しても、移動用オブジェクト1120−2の表示態様を変更しないように構成されてもよい。一例として、図21において、コンピュータ200Aは、マーカ1210が移動用オブジェクト1120−2に重畳されているにもかかわらず、移動用オブジェクト1120−2の透過率を小さくしない。当該構成によれば、ユーザ190は、移動用オブジェクト1120−2をそもそも視認できないため、このオブジェクトを移動先として誤認することはない。
図22は、移動処理を中止するための処理を説明するフローチャートである。なお、図22において、上述の処理と同じ処理には同じ参照符号を付している。したがって、その処理についての説明は繰り返さない。
ステップS2210において、プロセッサ10は、仮想カメラ1と、座席オブジェクト1110と、移動用オブジェクト1120とに加えて、アバターオブジェクト1900を仮想空間2に配置する。
ステップS1830において、プロセッサ10は、移動用オブジェクト1120がユーザ190によって見つめられていると判断した場合(ステップS1830においてYES)、処理をステップS2220に進める。
ステップS2220において、プロセッサ10は、見つめられている移動用オブジェクト1120の位置に、アバターオブジェクト1900が存在しているか否かを判断する。具体例を用いてこの処理を説明する。ユーザ190Bの操作によってアバターオブジェクト1900B(仮想カメラ1B)が仮想空間2Bの中を移動した場合、移動先を示す情報がサーバ150を介してコンピュータ200Bからコンピュータ200Aに送信される。これにより、コンピュータ200Aは、仮想空間2におけるアバターオブジェクト1900Bを移動させる。このようにコンピュータ200Aは、アバターオブジェクト1900Bの位置を把握できる。これにより、コンピュータ200Aは、アバターオブジェクト1900Bが座席オブジェクト1110のいずれに座っているのかを把握できる。
プロセッサ10は、見つめられている移動用オブジェクト1120の位置に、アバターオブジェクト1900が存在していると判断した場合(ステップS2220においてYES)、処理をステップS1850に進める。この場合、プロセッサ10は、ステップS1835の処理(移動用オブジェクト1120の表示態様を変更する処理)およびステップS1845の処理(ユーザの視座を移動する処理)を禁止(省略)する。
一方、プロセッサ10は、見つめられている移動用オブジェクト1120の位置に、アバターオブジェクト1900が存在していないと判断した場合(ステップS2220においてNO)、処理をステップS1835に進める。
上記によれば、HMDシステム100は、仮想空間上の略同じ位置に、二人以上のユーザの視座(アバターオブジェクト)を配置することを防ぐことで、アバターオブジェクト同士の距離が極端に近くなることを抑制する。その結果、HMDシステム100は、仮想空間上でのより円滑なコミュニケーションをユーザに提供し得る。
[他の構成]
(移動先をより明確にする処理)
図23は、ある局面に従うユーザ190Aの視界画像2300を示す。視界画像2300において、マーカ1210が移動用オブジェクト1120−1に重畳されている。そのため、移動用オブジェクト1120−1が可視化されている。
ある実施形態において、コンピュータ200Aは、移動用オブジェクト1120が見つめられている間、仮想空間2Aに配置されるオブジェクトのうち、移動用オブジェクト1120以外のオブジェクトの輝度値を小さくする。一例として、図23において、コンピュータ200Aは、アバターオブジェクト1900Bおよびスクリーンオブジェクト1100の輝度値を予め定められた割合(例えば、50%)だけ小さくし得る。なお、他の局面において、コンピュータ200Aは、スクリーンオブジェクト1100全体の輝度値ではなく、スクリーンオブジェクト1100で再生されるコンテンツの輝度値のみを小さくすうように構成されてもよい。
スクリーンオブジェクト1100やアバターオブジェクト1900Bの輝度値が小さくなると、ユーザ190Aは、自身が見つめている移動用オブジェクト1120が強調されているように感じる。そのため、ユーザ190Aは、移動用オブジェクト1120をより視認しやすくなる。したがって、ユーザ190Aは、仮想空間2Aにおける移動候補先をより選択しやすくなる。
(複数の移動先を明示する処理)
図24は、ある局面に従うユーザ190の視界画像2400を示す。視界画像2400は、座席オブジェクト1110と移動用オブジェクト1120とに加えて、メニューオブジェクト2410を含む。
ある局面において、ユーザ190は、HMD110の設定変更などを行なうためにメニューオブジェクト2410を見る。例えば、コンピュータ200は、注視センサ140によってユーザ190が連続的に瞬きを行なったことを検知して、メニューオブジェクト2410を仮想空間2に配置する。
図24を参照して、ある実施形態に従うコンピュータ200は、メニューオブジェクト2410を仮想空間2に配置している間、ユーザ190の視界に含まれる全ての移動用オブジェクト1120の表示態様を変更する(例えば、移動用オブジェクト1120の透過率を小さくする)。その理由は、メニューオブジェクト2410が表示されている間、ユーザ190は、スクリーンオブジェクト1100に表示されるコンテンツや、他のユーザとのコミュニケーションに集中しておらず、移動用オブジェクト1120の表示態様が変更されたとしてもユーザ190の邪魔にならないためである。また、ユーザ190は、視界に含まれる全ての移動用オブジェクト1120を視認できるため、移動候補である移動用オブジェクト1120の位置を把握できる。
他の局面において、コンピュータ200は、ユーザ190が下を向いている間、ユーザ190の視界に含まれる全ての移動用オブジェクト1120の表示態様を変更する構成であってもよい。ユーザ190の視線の高さ(Y方向の位置)は、通常、スクリーンオブジェクト1100を見るために、または、他のユーザとのコミュニケーションを図るために、(XZ平面に対して)略水平方向を向いている。そのため、ユーザ190が下を向いている間に移動用オブジェクト1120の表示態様が変更されたとしても、これらはユーザ190の邪魔にならない。
コンピュータ200は、例えば、センサ114が検出するピッチ軸まわりの角速度に基づいて、初期角度に対するピッチ軸まわりの角度変位がしきい値(例えば、30度)を超えた場合に、ユーザ190が下を向いていると判断し得る。コンピュータ200は、HMD110を装着しているユーザ190が水平方向を観察しているときに角速度センサ114より取得されるピッチ角を初期角度として設定し得る。
なお、コンピュータ200は、HMDセンサ120によってHMD110のピッチ軸まわりの角速度を取得してもよい。この場合、コンピュータ200は、HMDセンサ120の出力に基づいてHMD110の水平状態を検出できる。そのため、コンピュータ200は、水平状態のHMD110のピッチ角を初期角度として設定し得る。
(移動用オブジェクトがユーザに見つめられていることの検出方法)
上記の例では、コンピュータ200は、ユーザ190の視界の中心(マーカ1210)をユーザ190の視線として扱うように構成されている。他の局面において、コンピュータ200は、注視センサ140によって検出されるユーザ190の視線が、移動用オブジェクト1120に向けられていることに応じて、移動用オブジェクト1120がユーザ190に見つめられていると判断してもよい。
この場合、マーカ1210は、視界画像の中心に固定されず、注視センサ140によって検出されるユーザ190の視線に応じて視界画像の中を移動する。当該構成によれば、ユーザ190が移動用オブジェクト1120を見つめていることを、より正確に検知し得る。
[構成]
以上に開示された技術的特徴は、以下のように要約され得る。
(構成1) ある実施形態に従うと、HMD110によって提供される仮想空間2における移動を支援するためにコンピュータ200で実行される方法が提供される。この方法は、仮想空間2を定義するステップ(S1805)と、仮想空間2に、移動用オブジェクト1120を配置するステップ(S1810)と、移動用オブジェクト1120がユーザ190に見つめられたことを検知するステップ(S1830)と、移動用オブジェクト1120がユーザ190に見つめられたことに応じて、移動用オブジェクト1120の表示態様を変更するステップ(S1835)と、移動用オブジェクト1120が予め定められた時間ユーザ190に見つめられたことに応じて、HMD110のユーザ190の仮想空間2における視座(仮想カメラ1の位置)を、移動用オブジェクト1120の位置に対応する位置に移動させるステップ(S1845)とを備える。
(構成2) (構成1)に記載の方法は、仮想空間2に、座席オブジェクトを配置するステップをさらに備える。移動用オブジェクト1120を配置するステップは、座席オブジェクト1110の座面に移動用オブジェクト1120を配置することを含む。
(構成3) (構成1)または(構成2)において、移動用オブジェクト1120を配置するステップは、仮想空間2における視座の初期高さ(初期位置21のY方向における位置)よりも下方に移動用オブジェクト1120を配置することを含む。
(構成4) (構成1)〜(構成3)のいずれかにおいて、移動用オブジェクト1120の表示態様を変更するステップは、移動用オブジェクト1120がユーザ190に見つめられたことに応じて、移動用オブジェクト1120の透過率を、ユーザ190に見つめられる前の移動用オブジェクト1120の透過率よりも小さくすることを含む。
(構成5) (構成1)〜(構成4)のいずれかに記載の方法は、仮想空間2を介して通信する他のユーザ190のアバターオブジェクトを仮想空間2に配置するステップ(S2210)と、移動用オブジェクト1120の位置にアバターオブジェクトが存在するか否かを判断するステップ(S2220)とをさらに備える。ユーザ190の視座を移動させるステップは、移動用オブジェクト1120の位置にアバターオブジェクトが存在すると判断された場合(S2220においてYES)に、ユーザ190の視座を移動用オブジェクト1120の位置に対応する位置に移動させることを禁止することを含む。
(構成6) (構成5)において、移動用オブジェクト1120の表示態様を変更するステップは、移動用オブジェクト1120の位置にアバターオブジェクトが存在すると判断された場合(S2220においてYES)に、オブジェクトの表示態様の変更を禁止することを含む。
(構成7) (構成1)〜(構成6)のいずれかに記載の方法は、ユーザ190が移動用オブジェクト1120を見つめている間、仮想空間2に配置されるオブジェクトのうち、移動用オブジェクト1120以外のオブジェクトの輝度値を小さくするステップをさらに備える。
(構成8) (構成7)において、移動用オブジェクト1120以外のオブジェクトは、仮想空間2を介して通信する他のユーザ190のアバターオブジェクト、および動画を再生可能に構成されるスクリーンオブジェクト1100の少なくとも一方を含む。
(構成9) (構成1)〜(構成8)のいずれかにおいて、移動用オブジェクト1120を配置するステップは、複数の移動用オブジェクト1120を仮想空間2に配置することを含む。この方法は、仮想空間2に、メニューオブジェクト2410を配置ステップと、メニューオブジェクト2410が仮想空間2に配置されている間、複数の移動用オブジェクト1120の表示態様を変更するステップとをさらに備える。
(構成10) (構成1)〜(構成9)のいずれかにおいて、移動用オブジェクト1120がユーザ190に見つめられたことを検知するステップは、仮想空間2におけるユーザ190の視界の中央部(マーカ1210)に移動用オブジェクト1120が含まれたことに応じて、移動用オブジェクト1120が見つめられたと検知することを含む。
(構成11) (構成1)〜(構成9)のいずれかに記載の方法は、ユーザ190の視線を注視センサ140を用いて検出するステップをさらに備える。移動用オブジェクト1120がユーザ190に見つめられたことを検知するステップは、検出されたユーザ190の視線が移動用オブジェクト1120に注がれたことに応じて、移動用オブジェクト1120が見つめられたと検知することを含む。
今回開示された実施形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
1 仮想カメラ、2 仮想空間、5 基準視線、10 プロセッサ、11 メモリ、12 ストレージ、19 ネットワーク、21 初期位置、23 視認領域、26,1200,1400,1500,2100,2300,2400 視界画像、100 HMDシステム、105 HMDセット、112 モニタ、114 センサ、120 HMDセンサ、118 スピーカ、119 マイク、140 注視センサ、150 サーバ、190 ユーザ、200 コンピュータ、220 表示制御モジュール、221 仮想カメラ制御モジュール、222 視界領域決定モジュール、223 視界画像生成モジュール、224 基準視線特定モジュール、230 仮想空間制御モジュール、231 仮想空間定義モジュール、232 仮想オブジェクト生成モジュール、233 オブジェクト制御モジュール、240 メモリモジュール、241 空間情報、242 オブジェクト情報、243 ユーザ情報、250 通信制御モジュール、1100 スクリーンオブジェクト、1110 座席オブジェクト、1120 移動用オブジェクト、1210 マーカ、1700 メータオブジェクト、1900 アバターオブジェクト、2410 メニューオブジェクト、N1 注視点。

Claims (13)

  1. ヘッドマウントデバイスによって提供される仮想空間における移動を支援するためにコンピュータで実行される方法であって、
    想空間を定義するステップと、
    前記仮想空間に、仮想カメラを配置するステップと、
    前記仮想カメラの撮影範囲に対応する画像を前記ヘッドマウントデバイスに出力するステップと、
    記仮想空間に、移動用オブジェクトを配置するステップと、
    記移動用オブジェクトが前記ヘッドマウントデバイスのユーザに見つめられたことを検知するステップと、
    記移動用オブジェクトが前記ユーザに見つめられたことに応じて、前記移動用オブジェクトの表示態様を変更するステップと、
    記移動用オブジェクトが予め定められた時間前記ユーザに見つめられたことに応じて、前記仮想カメラを、前記移動用オブジェクトの位置に対応する位置に移動させるステップとを備える、方法。
  2. ヘッドマウントデバイスによって提供される仮想空間における移動を支援するためにコンピュータで実行される方法であって、
    仮想空間を定義するステップと、
    前記仮想空間に、移動用オブジェクトを配置するステップと、
    前記移動用オブジェクトが前記ヘッドマウントデバイスのユーザに見つめられたことを検知するステップと、
    前記移動用オブジェクトが前記ユーザに見つめられたことに応じて、前記移動用オブジェクトの表示態様を変更するステップと、
    前記移動用オブジェクトが予め定められた時間前記ユーザに見つめられたことに応じて、前記ユーザの前記仮想空間における視座を、前記移動用オブジェクトの位置に対応する位置に移動させるステップとを備え、前記方法は
    前記仮想空間に、座席オブジェクトを配置するステップをさらに備え、
    前記移動用オブジェクトを配置するステップは、前記座席オブジェクトの座面に前記移動用オブジェクトを配置することを含む、方法。
  3. 前記移動用オブジェクトを配置するステップは、前記仮想空間における前記仮想カメラの初期高さよりも下方に前記移動用オブジェクトを配置することを含む、請求項に記載の方法。
  4. 前記移動用オブジェクトの表示態様を変更するステップは、前記移動用オブジェクトが前記ユーザに見つめられたことに応じて、前記移動用オブジェクトの透過率を、前記ユーザに見つめられる前の前記移動用オブジェクトの透過率よりも小さくすることを含む、請求項1〜3のいずれか1項に記載の方法。
  5. ヘッドマウントデバイスによって提供される仮想空間における移動を支援するためにコンピュータで実行される方法であって、
    仮想空間を定義するステップと、
    前記仮想空間に、移動用オブジェクトを配置するステップと、
    前記移動用オブジェクトが前記ヘッドマウントデバイスのユーザに見つめられたことを検知するステップと、
    前記移動用オブジェクトが前記ユーザに見つめられたことに応じて、前記移動用オブジェクトの表示態様を変更するステップと、
    前記移動用オブジェクトが予め定められた時間前記ユーザに見つめられたことに応じて、前記ユーザの前記仮想空間における視座を、前記移動用オブジェクトの位置に対応する位置に移動させるステップとを備え、前記方法は
    前記仮想空間を介して通信する他のユーザのアバターオブジェクトを前記仮想空間に配置するステップと、
    前記移動用オブジェクトの位置に前記アバターオブジェクトが存在するか否かを判断するステップとをさらに備え、
    前記ユーザの視座を移動させるステップは、前記移動用オブジェクトの位置に前記アバターオブジェクトが存在すると判断された場合に、前記ユーザの視座を前記移動用オブジェクトの位置に対応する位置に移動させることを禁止することを含む、方法。
  6. 前記移動用オブジェクトの表示態様を変更するステップは、前記移動用オブジェクトの位置に前記アバターオブジェクトが存在すると判断された場合に、前記移動用オブジェクトの表示態様の変更を禁止することを含む、請求項5に記載の方法。
  7. 前記ユーザが前記移動用オブジェクトを見つめている間、前記仮想空間に配置されるオブジェクトのうち、前記移動用オブジェクト以外のオブジェクトの輝度値を小さくするステップをさらに備える、請求項1〜6のいずれか1項に記載の方法。
  8. 前記移動用オブジェクト以外のオブジェクトは、前記仮想空間を介して通信する他のユーザのアバターオブジェクト、および動画を再生可能に構成されるオブジェクトの少なくとも一方を含む、請求項7に記載の方法。
  9. 前記移動用オブジェクトを配置するステップは、複数の前記移動用オブジェクトを前記仮想空間に配置することを含み、
    前記仮想空間に、メニューオブジェクトを配置ステップと、
    前記メニューオブジェクトが前記仮想空間に配置されている間、前記複数の移動用オブジェクトの表示態様を変更するステップとをさらに備える、請求項1〜8のいずれか1項に記載の方法。
  10. 前記移動用オブジェクトが前記ユーザに見つめられたことを検知するステップは、前記仮想空間における前記ユーザの視界の中央部に前記移動用オブジェクトが含まれたことに応じて、前記移動用オブジェクトが見つめられたと検知することを含む、請求項1〜9のいずれか1項に記載の方法。
  11. 前記ユーザの視線を検出するステップをさらに備え、
    前記移動用オブジェクトが前記ユーザに見つめられたことを検知するステップは、前記検出されたユーザの視線が前記移動用オブジェクトに注がれたことに応じて、前記移動用オブジェクトが見つめられたと検知することを含む、請求項1〜9のいずれか1項に記載の方法。
  12. 請求項1〜11のいずれか1項に記載の方法をコンピュータに実現させるためのプログラム。
  13. 請求項12に記載のプログラムを格納したメモリと、
    前記プログラムを実行するためのプロセッサとを備える、情報処理装置。
JP2017018576A 2017-02-03 2017-02-03 仮想空間における移動を支援するための方法、当該方法をコンピュータに実行させるためのプログラム、および当該プログラムを実行するための情報処理装置 Active JP6276434B1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017018576A JP6276434B1 (ja) 2017-02-03 2017-02-03 仮想空間における移動を支援するための方法、当該方法をコンピュータに実行させるためのプログラム、および当該プログラムを実行するための情報処理装置
US15/887,602 US10515481B2 (en) 2017-02-03 2018-02-02 Method for assisting movement in virtual space and system executing the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017018576A JP6276434B1 (ja) 2017-02-03 2017-02-03 仮想空間における移動を支援するための方法、当該方法をコンピュータに実行させるためのプログラム、および当該プログラムを実行するための情報処理装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2018001533A Division JP2018124989A (ja) 2018-01-09 2018-01-09 仮想空間における移動を支援するための方法、当該方法をコンピュータに実行させるためのプログラム、および当該プログラムを実行するための情報処理装置

Publications (2)

Publication Number Publication Date
JP6276434B1 true JP6276434B1 (ja) 2018-02-07
JP2018124907A JP2018124907A (ja) 2018-08-09

Family

ID=61158306

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017018576A Active JP6276434B1 (ja) 2017-02-03 2017-02-03 仮想空間における移動を支援するための方法、当該方法をコンピュータに実行させるためのプログラム、および当該プログラムを実行するための情報処理装置

Country Status (2)

Country Link
US (1) US10515481B2 (ja)
JP (1) JP6276434B1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11579744B2 (en) * 2017-06-21 2023-02-14 Navitaire Llc Systems and methods for seat selection in virtual reality
US11087527B2 (en) * 2017-12-01 2021-08-10 Koninklijke Kpn N.V. Selecting an omnidirectional image for display
JP7300287B2 (ja) * 2019-03-20 2023-06-29 任天堂株式会社 画像表示システム、画像表示プログラム、表示制御装置、および画像表示方法
JP7258127B2 (ja) * 2019-04-19 2023-04-14 マクセル株式会社 情報表示装置および行動予定表示システム
US11430198B1 (en) * 2020-01-10 2022-08-30 Apple Inc. Method and device for orientation-based view switching
JP7464933B2 (ja) * 2021-10-08 2024-04-10 株式会社日本ブレーン 表示装置及び表示システム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000244886A (ja) * 1999-01-20 2000-09-08 Canon Inc コンピュータ会議システム、コンピュータ処理装置、コンピュータ会議を行う方法、コンピュータ処理装置における処理方法、ビデオ会議システム、ビデオ会議を行う方法、ヘッドホン
JP2012053643A (ja) * 2010-08-31 2012-03-15 Brother Ind Ltd 携帯型情報処理装置、及び携帯型情報処理装置のためのコンピュータプログラム
JP5914739B1 (ja) * 2015-08-27 2016-05-11 株式会社コロプラ ヘッドマウントディスプレイシステムを制御するプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3678283A (en) * 1970-10-22 1972-07-18 Us Navy Radiation sensitive optical tracker
US20130249947A1 (en) * 2011-08-26 2013-09-26 Reincloud Corporation Communication using augmented reality
US9423870B2 (en) * 2012-05-08 2016-08-23 Google Inc. Input determination method
US10062209B2 (en) * 2013-05-02 2018-08-28 Nintendo Co., Ltd. Displaying an object in a panoramic image based upon a line-of-sight direction
JP5825328B2 (ja) * 2013-11-07 2015-12-02 コニカミノルタ株式会社 透過型hmdを有する情報表示システム及び表示制御プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000244886A (ja) * 1999-01-20 2000-09-08 Canon Inc コンピュータ会議システム、コンピュータ処理装置、コンピュータ会議を行う方法、コンピュータ処理装置における処理方法、ビデオ会議システム、ビデオ会議を行う方法、ヘッドホン
JP2012053643A (ja) * 2010-08-31 2012-03-15 Brother Ind Ltd 携帯型情報処理装置、及び携帯型情報処理装置のためのコンピュータプログラム
JP5914739B1 (ja) * 2015-08-27 2016-05-11 株式会社コロプラ ヘッドマウントディスプレイシステムを制御するプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
湯本 貢司: "大規模仮想環境における共同注意を支援する視覚化手法の提案", 電子情報通信学会技術研究報告 VOL.108 NO.226, vol. MVE2008-59 (2008-10), JPN6017038184, 25 September 2008 (2008-09-25), JP, pages 79 - 84 *

Also Published As

Publication number Publication date
US20180247454A1 (en) 2018-08-30
US10515481B2 (en) 2019-12-24
JP2018124907A (ja) 2018-08-09

Similar Documents

Publication Publication Date Title
JP6276434B1 (ja) 仮想空間における移動を支援するための方法、当該方法をコンピュータに実行させるためのプログラム、および当該プログラムを実行するための情報処理装置
JP6342038B1 (ja) 仮想空間を提供するためのプログラム、当該プログラムを実行するための情報処理装置、および仮想空間を提供するための方法
JP6087453B1 (ja) 仮想空間の提供方法、およびプログラム
JP6234622B1 (ja) 仮想空間を介して通信するための方法、当該方法をコンピュータに実行させるためのプログラム、および当該プログラムを実行するための情報処理装置
JP2018106365A (ja) 仮想空間を介して通信するための方法、当該方法をコンピュータに実行させるためのプログラム、および当該プログラムを実行するための情報処理装置
JP6257826B1 (ja) 仮想空間を提供するためにコンピュータで実行される方法、プログラム、および、情報処理装置
JP6242473B1 (ja) 仮想空間を提供するための方法、および当該方法をコンピュータに実行させるためのプログラム、および当該プログラムを実行するための情報処理装置
JP6393387B1 (ja) 仮想体験を提供するためのプログラム、コンピュータ、および方法
JP2017138973A (ja) 仮想空間の提供方法、およびプログラム
JP2017220224A (ja) 仮想空間を提供するための方法、当該方法をコンピュータに実現させるためのプログラム、および仮想空間を提供するためのシステム
JP6945409B2 (ja) 情報処理方法、コンピュータ、及びプログラム
JP6580624B2 (ja) 仮想空間を提供するための方法、当該方法をコンピュータに実行させるためのプログラム、および当該プログラムを実行するための情報処理装置
JP6495398B2 (ja) 仮想空間を提供するための方法、プログラム、および当該プログラムを実行するための情報処理装置
JP2018116684A (ja) 仮想空間を介して通信するための方法、当該方法をコンピュータに実行させるためのプログラム、および当該プログラムを実行するための情報処理装置
JP6457446B2 (ja) 仮想空間におけるコミュニケーションを支援するための方法および装置ならびに当該方法をコンピュータに実行させるためのプログラム
JP2019168962A (ja) プログラム、情報処理装置、及び情報処理方法
JP6382928B2 (ja) 仮想空間における画像の表示を制御するためにコンピュータによって実行される方法、当該方法をコンピュータに実現させるためのプログラム、および、コンピュータ装置
JP2018124989A (ja) 仮想空間における移動を支援するための方法、当該方法をコンピュータに実行させるためのプログラム、および当該プログラムを実行するための情報処理装置
JP2018170013A (ja) 仮想空間における画像の表示を制御するためにコンピュータによって実行される方法、当該方法をコンピュータに実現させるためのプログラム、および、コンピュータ装置
JP2018206340A (ja) 仮想空間を提供するためにコンピュータで実行される方法、プログラム、および、情報処理装置
JP2018032384A (ja) 仮想空間におけるコミュニケーションを支援するための方法および装置ならびに当該方法をコンピュータに実行させるためのプログラム
JP6878346B2 (ja) 仮想空間を提供するための方法、当該方法をコンピュータに実行させるためのプログラム、および当該プログラムを実行するための情報処理装置
JP2019075091A (ja) 仮想体験を提供するためのプログラム、コンピュータ、および方法
JP2019211868A (ja) 画像表示装置を介して仮想体験をユーザに提供するためのプログラム、コンピュータ及び方法
JP7438786B2 (ja) プログラム、情報処理方法、及び情報処理装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171208

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: 20171219

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180111

R150 Certificate of patent or registration of utility model

Ref document number: 6276434

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D04

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250