JP2018190163A - 情報処理方法、コンピュータ、及びプログラム - Google Patents

情報処理方法、コンピュータ、及びプログラム Download PDF

Info

Publication number
JP2018190163A
JP2018190163A JP2017091718A JP2017091718A JP2018190163A JP 2018190163 A JP2018190163 A JP 2018190163A JP 2017091718 A JP2017091718 A JP 2017091718A JP 2017091718 A JP2017091718 A JP 2017091718A JP 2018190163 A JP2018190163 A JP 2018190163A
Authority
JP
Japan
Prior art keywords
viewpoint
virtual
user
unit
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.)
Granted
Application number
JP2017091718A
Other languages
English (en)
Other versions
JP6509938B2 (ja
Inventor
集平 寺畑
Shuhei Terahata
集平 寺畑
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 JP2017091718A priority Critical patent/JP6509938B2/ja
Priority to US15/967,685 priority patent/US20180321817A1/en
Publication of JP2018190163A publication Critical patent/JP2018190163A/ja
Application granted granted Critical
Publication of JP6509938B2 publication Critical patent/JP6509938B2/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/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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/211Input arrangements for video game devices characterised by their sensors, purposes or types using inertial sensors, e.g. accelerometers or gyroscopes
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/213Input arrangements for video game devices characterised by their sensors, purposes or types comprising photodetecting means, e.g. cameras, photodiodes or infrared cells
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • A63F13/428Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle involving motion or position input signals, e.g. signals representing the rotation of an input controller or a player's arm motions sensed by accelerometers or gyroscopes
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • A63F13/525Changing parameters of virtual cameras
    • A63F13/5252Changing parameters of virtual cameras using two or more virtual cameras concurrently or sequentially, e.g. automatically switching between fixed virtual cameras when a character changes room or displaying a rear-mirror view in a car-driving game
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • A63F13/525Changing parameters of virtual cameras
    • A63F13/5255Changing parameters of virtual cameras according to dedicated instructions from a player, e.g. using a secondary joystick to rotate the camera around a player's character
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • A63F13/525Changing parameters of virtual cameras
    • A63F13/5258Changing parameters of virtual cameras by dynamically adapting the position of the virtual camera to keep a game object or game character in its viewing frustum, e.g. for tracking a character or a ball
    • 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/013Eye tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • 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
    • 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/0179Display position adjusting means not related to the information to be displayed
    • G02B2027/0187Display position adjusting means not related to the information to be displayed slaved to motion of at least a part of the body of the user, e.g. head, eye

Abstract

【課題】エンタテイメント性の高い、仮想空間における仮想体験をユーザに提供する。
【解決手段】HMDと、ユーザの身体の一部の動きを検知するセンサとを備えたシステムにおける情報処理方法であって、仮想空間を規定する仮想空間データを特定するステップと、仮想視点を特定するステップと、仮想空間データ、仮想視点、及びHMDの向きに応じて視野画像を生成するステップと、視野画像内の操作オブジェクトを動かすステップと、第1オブジェクトを含む、第1視点からの視野画像を表示部に表示するステップと、仮想視点を第1視点から第2視点に切り替えるステップと、仮想視点が第2視点に切り替えられた際に、第1オブジェクトに関連付けられた第2オブジェクトを操作オブジェクトに関連付けるステップと、第2オブジェクトを含む、第2視点からの視野画像を表示部に表示するステップと、を含む方法を提供する。
【選択図】図11

Description

本開示は、情報処理方法、コンピュータ、及びプログラムに関する。
特許文献1には、仮想空間内における視点移動によって、様々な視点から仮想空間における仮想体験を楽しむことを可能にする技術が開示されている。
特許文献1に開示された技術において、ユーザは、1つの対象を様々な角度から観察することができるにすぎない。このような技術に関し、仮想体験のエンタテイメント性を高めるために改善の余地がある。
特許第5869177号公報
本開示は、上記の点に鑑みてなされたものであり、その目的の1つは、エンタテイメント性の高い、仮想空間における仮想体験をユーザに提供することにある。
上述した課題を解決するために、本開示の一態様は、ヘッドマウントデバイスと、ユーザの身体の一部の動きを検知するように構成されたセンサとを備えたシステムにおける情報処理方法であって、仮想空間を規定する仮想空間データを特定するステップと、前記仮想空間における仮想視点を特定するステップと、前記仮想空間データと、前記仮想視点と、前記ヘッドマウントデバイスの向きとに応じて、前記身体の一部に関連付けられる操作オブジェクトを含む視野画像を生成するステップと、前記センサによって検知された前記身体の一部の動きに応じて、前記視野画像内の前記操作オブジェクトを動かすステップと、第1オブジェクトを含む、第1視点からの視野画像を前記ヘッドマウントデバイスに関連付けられる表示部に表示するステップと、前記仮想視点を前記第1視点から第2視点に切り替えるステップと、前記第1視点において前記第1オブジェクトに対する選択が受け付けられている場合において、前記仮想視点が前記第2視点に切り替えられた際に、前記第1オブジェクトに関連付けられた第2オブジェクトを前記操作オブジェクトに関連付けるステップと、前記操作オブジェクトに関連付けられた前記第2オブジェクトを含む、前記第2視点からの視野画像を前記ヘッドマウントデバイスに関連付けられる前記表示部に表示するステップと、を含む方法である。
また、本開示の他の一態様は、プロセッサとメモリを備え、前記プロセッサの制御により、前記方法が実行される、コンピュータである。
また、本開示の他の一態様は、プロセッサによって実行されると、前記プロセッサに、前記方法を実行させる、プログラムである。
本開示によれば、エンタテイメント性の高い、仮想空間における仮想体験をユーザに提供することができる。
HMDシステム100の構成を概略的に示す。 一実施形態による、コンピュータの基本的なハードウェア構成の例を表すブロック図である。 一実施形態による、HMDに設定されるuvw視野座標系を概念的に表す図である。 一実施形態による、仮想空間を表現する一態様を概念的に表す図である。 一実施形態による、HMD110を装着するユーザの頭部を上から表した図である。 仮想空間において視認領域をx方向から見たyz断面を表す図である。 仮想空間において視認領域をy方向から見たxz断面を表す図である。 一実施形態によるコントローラの概略構成を表す図である。 一実施形態による、HMDシステムにおける仮想空間の表示処理等を実現するためのコンピュータの機能を示すブロック図である。 ユーザが没入する仮想空間の画像を表示部に表示するための一般的な処理のフロー図である。 本開示の一実施形態による方法のフローチャートである。 本開示の一実施形態において想定されるゲームの態様を概略的に説明する図である。 本開示の一実施形態の処理により生成される視界画像の例を示す。 本開示の一実施形態の処理により生成される視界画像の例を示す。 本開示の一実施形態の処理により生成される視界画像の例を示す。 本開示の一実施形態の処理により生成される視界画像の例を示す。 本開示の一実施形態の処理により生成される視界画像の例を示す。 本開示の一実施形態の処理により生成される視界画像の例を示す。
[本開示の実施形態の説明]
最初に、本開示の実施形態の内容を列記して説明する。本開示の一実施形態は、以下のような構成を備える。
(項目1)ヘッドマウントデバイスと、ユーザの身体の一部の動きを検知するように構成されたセンサとを備えたシステムにおける情報処理方法であって、仮想空間を規定する仮想空間データを特定するステップと、前記仮想空間における仮想視点を特定するステップと、前記仮想空間データと、前記仮想視点と、前記ヘッドマウントデバイスの向きとに応じて、前記身体の一部に関連付けられる操作オブジェクトを含む視野画像を生成するステップと、前記センサによって検知された前記身体の一部の動きに応じて、前記視野画像内の前記操作オブジェクトを動かすステップと、第1オブジェクトを含む、第1視点からの視野画像を前記ヘッドマウントデバイスに関連付けられる表示部に表示するステップと、前記仮想視点を前記第1視点から第2視点に切り替えるステップと、前記第1視点において前記第1オブジェクトに対する選択が受け付けられている場合において、前記仮想視点が前記第2視点に切り替えられた際に、前記第1オブジェクトに関連付けられた第2オブジェクトを前記操作オブジェクトに関連付けるステップと、前記操作オブジェクトに関連付けられた前記第2オブジェクトを含む、前記第2視点からの視野画像を前記ヘッドマウントデバイスに関連付けられる前記表示部に表示するステップと、を含む方法。
(項目2)前記第2視点において前記操作オブジェクトの動きに応じて前記視野画像内の前記第2オブジェクトを動かすステップを更に含む、項目1に記載の方法。
(項目3)前記仮想空間はゲームフィールドを含み、前記第1視点は前記ゲームフィールドを俯瞰する仮想視点であり、前記第2視点は前記ゲームフィールド上に配置された前記第1オブジェクトに関連付けられた仮想視点である、項目1又は項目2に記載の方法。
(項目4)前記第1オブジェクトは前記ゲームフィールド上を移動可能なゲームキャラクタであり、前記第2視点は前記ゲームキャラクタの視点で前記仮想空間を見た仮想視点である、項目3に記載の方法。
(項目5)前記操作オブジェクトは仮想の手であり、前記第2オブジェクトを前記操作オブジェクトに関連付ける前記ステップは、前記第2視点の視野画像において前記仮想の手に前記第2オブジェクトを把持させることを含む、項目1から項目4のいずれか1項に記載の方法。
(項目6)前記第1オブジェクトに対する選択は、前記第1視点において複数の候補オブジェクトのうちの1つのオブジェクトを前記操作オブジェクトの動きに応じて選択することを含む、項目1から項目5のいずれか1項に記載の方法。
(項目7)前記第1オブジェクトに対する選択は、更に、前記選択した1つのオブジェクトを前記仮想空間内のゲームフィールドに配置することを含み、前記第2視点は、前記1つのオブジェクトの前記ゲームフィールドへの配置によって特定される前記第1オブジェクトの位置に基づく仮想視点である、項目6に記載の方法。
(項目8)前記仮想空間は第3オブジェクトが配置されたゲームフィールドを含み、前記第2視点において前記操作オブジェクトの動きに応じて前記視野画像内の前記第2オブジェクトを動かす前記ステップは、前記第2オブジェクトの動きによって前記第3オブジェクトに作用を与えるステップを含む、項目2に記載の方法。
(項目9)前記第2視点において前記第3オブジェクトの動きに応じて前記第1オブジェクト及び前記第2オブジェクトの少なくとも一方に作用を与えるステップを更に含む、項目8に記載の方法。
(項目10)前記仮想視点を前記第1視点から前記第2視点に切り替える前に前記第1オブジェクトに前記第2オブジェクトを関連付けるステップを更に含む、項目1から項目9のいずれか1項に記載の方法。
(項目11)前記第2オブジェクトの属性は前記第1オブジェクトの属性に応じて設定される、項目1から項目10のいずれか1項に記載の方法。
(項目12)プロセッサとメモリを備え、前記プロセッサの制御により、項目1から項目11のいずれか1項に記載の方法が実行される、コンピュータ。
(項目13)プロセッサによって実行されると、前記プロセッサに、項目1から項目11のいずれか1項に記載の方法を実行させる、プログラム。
[本開示の実施形態の詳細]
以下、図面を参照しながら本発明の実施形態について詳しく説明する。
図1を参照して、ヘッドマウントデバイス(Head−Mounted Device、HMD)システム100の構成について説明する。図1は、HMDシステム100の構成を概略的に示す。一例では、HMDシステム100は、家庭用のシステム又は業務用のシステムとして提供される。HMDは、表示部を備える所謂ヘッドマウントディスプレイであってもよく、表示部を有するスマートフォン等の端末を装着可能なヘッドマウント機器であってもよい。
HMDシステム100は、HMD110と、HMDセンサ120と、コントローラ160と、コンピュータ200とを備える。HMD110は、表示部112と、注視センサ140とを含む。コントローラ160は、モーションセンサ130を含んでもよい。
一例では、コンピュータ200は、インターネット等のネットワーク192に接続可能であってもよく、ネットワーク192に接続されるサーバ150等のコンピュータと通信可能であってもよい。別の態様において、HMD110は、HMDセンサ120の代わりにセンサ114を含んでもよい。
HMD110は、ユーザ190の頭部に装着され、動作中に仮想空間をユーザに提供し得る。より具体的には、HMD110は、右目用の画像及び左目用の画像を表示部112にそれぞれ表示する。ユーザの各目がそれぞれの画像を視認すると、ユーザは、両目の視差に基づき当該画像を3次元の画像として認識し得る。
表示部112は、例えば、非透過型の表示装置として実現される。一例では、表示部112は、ユーザの両目の前方に位置するように、HMD110の本体に配置される。したがって、ユーザは、表示部112に表示される3次元画像を視認すると、仮想空間に没入することができる。ある実施形態において、仮想空間は、例えば、背景、ユーザが操作可能なオブジェクト、ユーザが選択可能なメニューの画像等を含む。ある実施形態において、表示部112は、スマートフォン等の情報表示端末が備える液晶表示部又は有機EL(Electro Luminescence)表示部として実現され得る。
一例では、表示部112は、右目用の画像を表示するためのサブ表示部と、左目用の画像を表示するためのサブ表示部とを含み得る。別の態様において、表示部112は、右目用の画像と左目用の画像とを一体として表示する構成であってもよい。この場合、表示部112は、高速シャッタを含む。高速シャッタは、画像がいずれか一方の目にのみ認識されるように、右目用の画像と左目用の画像とを交互に表示可能に作動する。
一例では、HMD110は、複数の光源(図示せず)を含む。各光源は、例えば、赤外線を発するLED(Light Emitting Diode)により実現される。HMDセンサ120は、HMD110の動きを検出するためのポジショントラッキング機能を有する。より具体的には、HMDセンサ120は、HMD110が発する複数の赤外線を読み取り、現実空間内におけるHMD110の位置及び傾きを検出してもよい。
ある態様において、HMDセンサ120は、カメラにより実現されてもよい。この場合、HMDセンサ120は、カメラから出力されるHMD110の画像情報を用いて、画像解析処理を実行することにより、HMD110の位置及び傾きを検出することができる。
別の態様において、HMD110は、位置検出器として、HMDセンサ120の代わりに、センサ114を備えてもよい。HMD110は、センサ114を用いて、HMD110自身の位置及び傾きを検出し得る。例えば、センサ114が角速度センサ、地磁気センサ、加速度センサ、ジャイロセンサ等である場合、HMD110は、HMDセンサ120の代わりに、これらの各センサのいずれかを用いて、自身の位置及び傾きを検出し得る。一例として、センサ114が角速度センサである場合、角速度センサは、現実空間におけるHMD110の3軸周りの角速度を経時的に検出する。HMD110は、各角速度に基づいて、HMD110の3軸周りの角度の時間的変化を算出し、さらに、角度の時間的変化に基づいて、HMD110の傾きを算出する。また、HMD110は、透過型表示装置を備えていても良い。この場合、当該透過型表示装置は、その透過率を調整することにより、一時的に非透過型の表示装置として構成可能であってもよい。また、視界画像は、仮想空間を構成する画像の一部に、現実空間を提示する構成を含んでいてもよい。例えば、HMD110に搭載されたカメラで撮影した画像を視界画像の一部に重畳して表示させてもよいし、当該透過型表示装置の一部の透過率を高く設定することにより、視界画像の一部から現実空間を視認可能にしてもよい。
注視センサ140は、ユーザ190の右目及び左目の視線が向けられる方向(視線)を検出する。当該方向の検出は、例えば、公知のアイトラッキング機能によって実現される。注視センサ140は、当該アイトラッキング機能を有するセンサにより実現される。ある態様において、注視センサ140は、右目用のセンサ及び左目用のセンサを含むことが好ましい。注視センサ140は、例えば、ユーザ190の右目及び左目に赤外光を照射するとともに、照射光に対する角膜及び虹彩からの反射光を受けることにより各眼球の回転角を検出するセンサであってもよい。注視センサ140は、検出した各回転角に基づいて、ユーザ190の視線を検知することができる。
サーバ150は、コンピュータ200にプログラムを送信し得る。別の態様において、サーバ150は、他のユーザによって使用されるHMDに仮想現実を提供するための他のコンピュータ200と通信し得る。例えば、アミューズメント施設において、複数のユーザが参加型のゲームを行う場合、各コンピュータ200は、各ユーザの動作に基づく信号を他のコンピュータ200と通信して、同じ仮想空間において複数のユーザが共通のゲームを楽しむことを可能にする。
コントローラ160は、有線又は無線によりコンピュータ200に接続される。コントローラ160は、ユーザ190からコンピュータ200への命令の入力を受け付ける。ある態様において、コントローラ160は、ユーザ190によって把持可能に構成される。別の態様において、コントローラ160は、ユーザ190の身体又は衣類の一部に装着可能に構成される。別の態様において、コントローラ160は、コンピュータ200から送信される信号に基づいて、振動、音、光のうちの少なくともいずれかを出力するように構成されてもよい。別の態様において、コントローラ160は、ユーザ190から、仮想空間に配置されるオブジェクトの位置や動きを制御するための操作を受け付ける。
ある態様において、モーションセンサ130は、ユーザの手に取り付けられて、ユーザの手の動きを検出する。例えば、モーションセンサ130は、手の回転速度、回転数等を検出する。検出された信号は、コンピュータ200に送られる。モーションセンサ130は、例えば、手袋型のコントローラ160に設けられる。ある実施形態において、現実空間における安全のため、コントローラ160は、手袋型のようにユーザ190の手に装着されることにより容易に飛んで行かないものに装着されるのが望ましい。別の態様において、ユーザ190に装着されないセンサがユーザ190の手の動きを検出してもよい。ユーザ190の身体の様々な部分の位置、向き、動きの方向、動きの距離などを検知する光学式センサが用いられてもよい。例えば、ユーザ190を撮影するカメラの信号が、ユーザ190の動作を表す信号として、コンピュータ200に入力されてもよい。モーションセンサ130とコンピュータ200とは、一例として、無線により互いに接続される。無線の場合、通信形態は特に限られず、例えば、Bluetooth(登録商標)その他の公知の通信手法が用いられる。
図2を参照して、本開示の実施形態に係るコンピュータ200について説明する。図2は、本開示の一実施形態によるコンピュータ200の基本的なハードウェア構成の例を表すブロック図である。コンピュータ200は、主たる構成要素として、プロセッサ202と、メモリ204と、ストレージ206と、入出力インターフェース208と、通信インターフェース210とを備える。各構成要素は、それぞれ、バス212に接続される。
プロセッサ202は、コンピュータ200に与えられる信号に基づいて、あるいは、予め定められた条件が成立したことに基づいて、メモリ204又はストレージ206に格納されているプログラムに含まれる一連の命令を実行する。ある態様において、プロセッサ202は、CPU(Central Processing Unit)、MPU(Micro Processor Unit)、FPGA(Field−Programmable Gate Array)等のデバイスとして実現される。
メモリ204は、プログラム及びデータを一時的に保存する。プログラムは、例えば、ストレージ206からロードされる。データは、コンピュータ200に入力されたデータと、プロセッサ202によって生成されたデータとを含む。ある態様において、メモリ204は、RAM(Random Access Memory)等の揮発性メモリとして実現される。
ストレージ206は、プログラム及びデータを永続的に保持する。ストレージ206は、例えば、ROM(Read−Only Memory)、ハードディスク装置、フラッシュメモリ等の不揮発性記憶装置として実現される。ストレージ206に格納されるプログラムは、HMDシステム100において仮想空間を提供するためのプログラム、シミュレーションプログラム、ゲームプログラム、ユーザ認証プログラム、他のコンピュータ200との通信を実現するためのプログラム等を含む。ストレージ206に格納されるデータは、仮想空間を規定するためのデータ及びオブジェクト等を含む。
別の態様において、ストレージ206は、メモリカードのように着脱可能な記憶装置として実現されてもよい。さらに別の態様において、コンピュータ200に内蔵されたストレージ206の代わりに、外部の記憶装置に保存されているプログラム及びデータを使用する構成が使用されてもよい。このような構成によれば、例えば、アミューズメント施設のように複数のHMDシステム100が使用される場面において、プログラムやデータの更新を一括して行なうことが可能になる。
ある実施形態において、入出力インターフェース208は、HMD110、HMDセンサ120及びモーションセンサ130との間で信号を通信する。ある態様において、入出力インターフェース208は、USB(Universal Serial Bus、USB)、DVI(Digital Visual Interface)、HDMI(登録商標)(High−Definition Multimedia Interface)等の端子を用いて実現される。なお、入出力インターフェース208は上述のものに限られない。
ある実施形態において、入出力インターフェース208は、さらに、コントローラ160と通信し得る。例えば、入出力インターフェース208は、コントローラ160及びモーションセンサ130から出力された信号の入力を受ける。別の態様において、入出力インターフェース208は、プロセッサ202から出力された命令を、コントローラ160に送る。当該命令は、振動、音声出力、発光等をコントローラ160に指示する。コントローラ160は、当該命令を受信すると、その命令に応じて、振動、音声出力、発光等を実行する。
通信インターフェース210は、ネットワーク192に接続され、ネットワーク192に接続されている他のコンピュータ(例えば、サーバ150)と通信する。ある態様において、通信インターフェース210は、例えば、LAN(Local Area Network)等の有線通信インターフェース、あるいは、WiFi(Wireless Fidelity)、Bluetooth(登録商標)、NFC(Near Field Communication)等の無線通信インターフェースとして実現される。なお、通信インターフェース210は上述のものに限られない。
ある態様において、プロセッサ202は、ストレージ206にアクセスし、ストレージ206に格納されている1つ以上のプログラムをメモリ204にロードし、当該プログラムに含まれる一連の命令を実行する。当該1つ以上のプログラムは、コンピュータ200のオペレーティングシステム、仮想空間を提供するためのアプリケーションプログラム、仮想空間で実行可能なゲームソフトウェア等を含み得る。プロセッサ202は、入出力インターフェース208を介して、仮想空間を提供するための信号をHMD110に送る。HMD110は、その信号に基づいて表示部112に映像を表示する。
図2に示される例では、コンピュータ200は、HMD110の外部に設けられている。しかし、別の態様において、コンピュータ200は、HMD110に内蔵されてもよい。一例として、表示部112を含む携帯型の情報通信端末(例えば、スマートフォン)がコンピュータ200として機能してもよい。
また、コンピュータ200は、複数のHMD110に共通して用いられる構成であってもよい。このような構成によれば、例えば、複数のユーザに同一の仮想空間を提供することもできるので、各ユーザは同一の仮想空間で他のユーザと同一のアプリケーションを楽しむことができる。
ある実施形態において、HMDシステム100では、グローバル座標系が予め設定されている。グローバル座標系は、現実空間における鉛直方向、鉛直方向に直交する水平方向、ならびに、鉛直方向及び水平方向の双方に直交する前後方向にそれぞれ平行な、3つの基準方向(軸)を有する。本実施形態では、グローバル座標系は視点座標系の1つである。そこで、グローバル座標系における水平方向、鉛直方向(上下方向)、及び前後方向は、それぞれ、x軸、y軸、z軸として規定される。より具体的には、グローバル座標系において、x軸は現実空間の水平方向に平行である。y軸は、現実空間の鉛直方向に平行である。z軸は現実空間の前後方向に平行である。
ある態様において、HMDセンサ120は、赤外線センサを含む。赤外線センサが、HMD110の各光源から発せられた赤外線をそれぞれ検出すると、HMD110の存在を検出する。HMDセンサ120は、さらに、各点の値(グローバル座標系における各座標値)に基づいて、HMD110を装着したユーザ190の動きに応じた、現実空間内におけるHMD110の位置及び傾きを検出する。より詳しくは、HMDセンサ120は、経時的に検出された各値を用いて、HMD110の位置及び傾きの時間的変化を検出できる。
グローバル座標系は現実空間の座標系と平行である。したがって、HMDセンサ120によって検出されたHMD110の各傾きは、グローバル座標系におけるHMD110の3軸周りの各傾きに相当する。HMDセンサ120は、グローバル座標系におけるHMD110の傾きに基づき、uvw視野座標系をHMD110に設定する。HMD110に設定されるuvw視野座標系は、HMD110を装着したユーザ190が仮想空間において物体を見る際の視点座標系に対応する。
図3を参照して、uvw視野座標系について説明する。図3は、ある実施形態に従うHMD110に設定されるuvw視野座標系を概念的に表す図である。HMDセンサ120は、HMD110の起動時に、グローバル座標系におけるHMD110の位置及び傾きを検出する。プロセッサ202は、検出された値に基づいて、uvw視野座標系をHMD110に設定する。
図3に示されるように、HMD110は、HMD110を装着したユーザの頭部を中心(原点)とした3次元のuvw視野座標系を設定する。より具体的には、HMD110は、グローバル座標系を規定する水平方向、鉛直方向、及び前後方向(x軸、y軸、z軸)を、グローバル座標系内においてHMD110の各軸周りの傾きだけ各軸周りにそれぞれ傾けることによって新たに得られる3つの方向を、HMD110におけるuvw視野座標系のピッチ方向(u軸)、ヨー方向(v軸)、及びロール方向(w軸)として設定する。
ある態様において、HMD110を装着したユーザ190が直立し、かつ、正面を視認している場合、プロセッサ202は、グローバル座標系に平行なuvw視野座標系をHMD110に設定する。この場合、グローバル座標系における水平方向(x軸)、鉛直方向(y軸)、及び前後方向(z軸)は、HMD110におけるuvw視野座標系のピッチ方向(u軸)、ヨー方向(v軸)及びロール方向(w軸)に一致する。
uvw視野座標系がHMD110に設定された後、HMDセンサ120は、HMD110の動きに基づいて、設定されたuvw視野座標系におけるHMD110の傾き(傾きの変化量)を検出できる。この場合、HMDセンサ120は、HMD110の傾きとして、uvw視野座標系におけるHMD110のピッチ角(θu)、ヨー角(θv)及びロール角(θw)をそれぞれ検出する。ピッチ角(θu)は、uvw視野座標系におけるピッチ方向周りのHMD110の傾き角度を表す。ヨー角(θv)は、uvw視野座標系におけるヨー方向周りのHMD110の傾き角度を表す。ロール角(θw)は、uvw視野座標系におけるロール方向周りのHMD110の傾き角度を表す。
HMDセンサ120は、検出されたHMD110の傾き角度に基づいて、HMD110が動いた後のHMD110におけるuvw視野座標系を、HMD110に設定する。HMD110と、HMD110のuvw視野座標系との関係は、HMD110の位置及び傾きに関わらず、常に一定である。HMD110の位置及び傾きが変わると、当該位置及び傾きの変化に連動して、グローバル座標系におけるHMD110のuvw視野座標系の位置及び傾きが変化する。
ある態様において、HMDセンサ120は、赤外線センサからの出力に基づいて取得される赤外線の光強度及び複数の点間の相対的な位置関係(例えば、各点間の距離等)に基づいて、HMD110の現実空間内における位置を、HMDセンサ120に対する相対位置として特定してもよい。また、プロセッサ202は、特定された相対位置に基づいて、現実空間内(グローバル座標系)におけるHMD110のuvw視野座標系の原点を決定してもよい。
図4を参照して、仮想空間についてさらに説明する。図4は、ある実施形態に従う仮想空間400を表現する一態様を概念的に表す図である。仮想空間400は、中心406の360度方向の全体を覆う全天球状の構造を有する。図4では、説明を複雑にしないために、仮想空間400のうちの上半分の天球が例示されている。仮想空間400では各メッシュが規定される。各メッシュの位置は、仮想空間400に規定されるXYZ座標系における座標値として予め規定されている。コンピュータ200は、仮想空間400に展開可能なコンテンツ(静止画、動画等)を構成する各部分画像を、仮想空間400において対応する各メッシュにそれぞれ対応付けて、ユーザによって視認可能な仮想空間画像が展開される仮想空間400をユーザに提供する。
ある態様において、仮想空間400では、中心406を原点とするxyz座標系が規定される。xyz座標系は、例えば、グローバル座標系に平行である。xyz座標系は視点座標系の一種であるため、xyz座標系における水平方向、鉛直方向(上下方向)及び前後方向は、それぞれx軸、y軸及びz軸として規定される。したがって、xyz座標系のx軸(水平方向)がグローバル座標系のx軸と平行であり、xyz座標系のy軸(鉛直方向)がグローバル座標系のy軸と平行であり、xyz座標系のz軸(前後方向)がグローバル座標系のz軸と平行である。
HMD110の起動時、すなわちHMD110の初期状態において、仮想カメラ404が、仮想空間400の中心406に配置される。ある態様において、プロセッサ202は、仮想カメラ404が撮影する画像をHMD110の表示部112に表示する。仮想カメラ404は、現実空間におけるHMD110の動きに連動して、仮想空間400を同様に移動する。これにより、現実空間におけるHMD110の位置及び向きの変化が、仮想空間400において同様に再現され得る。
HMD110の場合と同様に、仮想カメラ404には、uvw視野座標系が規定される。仮想空間400における仮想カメラ404のuvw視野座標系は、現実空間(グローバル座標系)におけるHMD110のuvw視野座標系に連動するように規定される。したがって、HMD110の傾きが変化すると、それに応じて、仮想カメラ404の傾きも変化する。また、仮想カメラ404は、HMD110を装着したユーザの現実空間における移動に連動して、仮想空間400において移動することもできる。
コンピュータ200のプロセッサ202は、仮想カメラ404の配置位置と、基準視線408とに基づいて、仮想空間400における視認領域410を規定する。視認領域410は、仮想空間400のうち、HMD110を装着したユーザが視認する領域に対応する。
注視センサ140によって検出されるユーザ190の視線は、ユーザ190が物体を視認する際の視点座標系における方向である。HMD110のuvw視野座標系は、ユーザ190が表示部112を視認する際の視点座標系に等しい。また、仮想カメラ404のuvw視野座標系は、HMD110のuvw視野座標系に連動している。したがって、ある態様に従うHMDシステム100は、注視センサ140によって検出されたユーザ190の視線を、仮想カメラ404の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は、視認領域410に対してユーザ190が実際に視線を向けている方向に相当する。
別の態様において、HMDシステム100は、HMDシステム100を構成するいずれかの部分に、マイク及びスピーカを備えてもよい。ユーザは、マイクに発話することにより、仮想空間400に対して、音声による指示を与えることができる。
また、別の態様において、HMDシステム100は、テレビジョン放送受信チューナを備えてもよい。このような構成によれば、HMDシステム100は、仮想空間400においてテレビ番組を表示することができる。
さらに別の態様において、HMDシステム100は、インターネットに接続するための通信回路、あるいは、電話回線に接続するための通話機能を備えていてもよい。
図6及び図7を参照して、視認領域410について説明する。図6は、仮想空間400において視認領域410をx方向から見たyz断面を表す図である。図7は、仮想空間400において視認領域410をy方向から見たxz断面を表す図である。
図6に示されるように、yz断面における視認領域410は、領域602を含む。領域602は、仮想カメラ404の配置位置と基準視線408と仮想空間400のyz断面とによって定義される。プロセッサ202は、仮想空間おける基準視線408を中心として極角αを含む範囲を、領域602として規定する。
図7に示されるように、xz断面における視認領域410は、領域702を含む。領域702は、仮想カメラ404の配置位置と基準視線408と仮想空間400のxz断面とによって定義される。プロセッサ202は、仮想空間400における基準視線408を中心とした方位角βを含む範囲を、領域702として規定する。極角α及びβは、仮想カメラ404の配置位置と仮想カメラ404の向きとに応じて定まる。
ある態様において、HMDシステム100は、コンピュータ200からの信号に基づいて、視界画像を表示部112に表示させることにより、仮想空間における視界をユーザ190に提供する。視界画像は、仮想空間画像402のうち視認領域410に重畳する部分に相当する。ユーザ190が、頭に装着したHMD110を動かすと、その動きに連動して仮想カメラ404も動く。その結果、仮想空間400における視認領域410の位置が変化する。これにより、表示部112に表示される視界画像は、仮想空間画像402のうち、仮想空間400においてユーザが向いた方向の視認領域410に重畳する画像に更新される。ユーザは、仮想空間400における所望の方向を視認することができる。
このように、仮想カメラ404の向き(傾き)は仮想空間400におけるユーザの視線(基準視線408)に相当し、仮想カメラ404が配置される位置は、仮想空間400におけるユーザの視点に相当する。したがって、仮想カメラ404を移動(配置位置を変える動作、向きを変える動作を含む)させることにより、表示部112に表示される画像が更新され、ユーザ190の視界(視点、視線を含む)が移動される。
ユーザ190は、HMD110を装着している間、現実世界を視認することなく、仮想空間400に展開される仮想空間画像402のみを視認できる。そのため、HMDシステム100は、仮想空間400への高い没入感覚をユーザに与えることができる。
ある態様において、プロセッサ202は、HMD110を装着したユーザ190の現実空間における移動に連動して、仮想空間400において仮想カメラ404を移動し得る。この場合、プロセッサ202は、仮想空間400における仮想カメラ404の位置及び向きに基づいて、HMD110の表示部112に投影される画像領域(すなわち、仮想空間400における視認領域410)を特定する。
ある実施形態に従うと、仮想カメラ404は、2つの仮想カメラ、すなわち、右目用の画像を提供するための仮想カメラと、左目用の画像を提供するための仮想カメラとを含んでもよい。また、ユーザ190が3次元の仮想空間400を認識できるように、適切な視差が、2つの仮想カメラに設定されてもよい。
図8を参照して、コントローラ160の一例について説明する。図8は、ある実施形態に従うコントローラ160の概略構成を表す図である。
ある態様において、コントローラ160は、右コントローラと左コントローラとを含み得る。説明を簡単にするために、図8には右コントローラ800のみが示される。右コントローラ800は、ユーザ190の右手で操作される。左コントローラは、ユーザ190の左手で操作される。ある態様において、右コントローラ800と左コントローラとは、別個の装置として対称に構成される。したがって、ユーザ190は、右コントローラ800を把持した右手と、左コントローラを把持した左手とをそれぞれ自由に動かすことができる。別の態様において、コントローラ160は両手の操作を受け付ける一体型のコントローラであってもよい。以下、右コントローラ800について説明する。
右コントローラ800は、グリップ802と、フレーム804と、天面806とを備える。グリップ802は、ユーザ190の右手によって把持されるように構成されている。例えば、グリップ802は、ユーザ190の右手の掌と3本の指(中指、薬指、小指)とによって保持され得る。
グリップ802は、ボタン808及び810と、モーションセンサ130とを含む。ボタン808は、グリップ802の側面に配置され、右手の中指による操作を受け付ける。ボタン810は、グリップ802の前面に配置され、右手の人差し指による操作を受け付ける。ある態様において、ボタン808、810は、トリガー式のボタンとして構成される。モーションセンサ130は、グリップ802の筐体に内蔵されている。なお、ユーザ190の動作がカメラその他の装置によってユーザ190の周りから検出可能である場合には、グリップ802は、モーションセンサ130を備えなくてもよい。
フレーム804は、その円周方向に沿って配置された複数の赤外線LED812を含む。赤外線LED812は、コントローラ160を使用するプログラムの実行中に、当該プログラムの進行に合わせて赤外線を発光する。赤外線LED812から発せられた赤外線は、右コントローラ800と左コントローラ(図示しない)との各位置や姿勢(傾き、向き)を検出するために使用され得る。図8に示される例では、2列に配置された赤外線LED812が示されているが、配列の数は図8に示されるものに限られない。1列あるいは3列以上の配列が使用されてもよい。
天面806は、ボタン814及び816と、アナログスティック818とを備える。ボタン814及び816は、プッシュ式ボタンとして構成される。ボタン814及び816は、ユーザ190の右手の親指による操作を受け付ける。アナログスティック818は、ある態様において、初期位置(ニュートラルの位置)から360度任意の方向への操作を受け付ける。当該操作は、例えば、仮想空間400に配置されるオブジェクトを移動するための操作を含む。
ある態様において、右コントローラ800及び左コントローラは、赤外線LED812等の部材を駆動するための電池を含む。電池は、1次電池及び2次電池のいずれであってもよく、その形状は、ボタン型、乾電池型等任意であり得る。別の態様において、右コントローラ800と左コントローラは、例えば、コンピュータ200のUSBインターフェースに接続され得る。この場合、右コントローラ800及び左コントローラは、USBインターフェースを介して電力を供給され得る。
図9は、本開示の一実施形態による、HMDシステム100における仮想空間400の表示処理等を実現するための、コンピュータ200の機能を示すブロック図である。コンピュータ200は、主にHMDセンサ120、モーションセンサ130、注視センサ140、コントローラ160からの入力に基づいて、表示部112への画像出力を制御する。
コンピュータ200は、プロセッサ202と、メモリ204と、通信制御部205とを備える。プロセッサ202は、仮想空間特定部902と、HMD動作検知部903と、視線検知部904と、基準視線決定部906と、視界領域決定部908と、仮想視点特定部910と、視界画像生成部912と、オブジェクト制御部914と、仮想視点切替部916と、視界画像出力部926とを含み得る。メモリ204は様々な情報を格納するように構成され得る。一例では、メモリ204は、仮想空間データ928、オブジェクトデータ930、アプリケーションデータ932、その他のデータ934を含んでもよい。メモリ204はまた、HMDセンサ120、モーションセンサ130、注視センサ140、コントローラ160等からの入力に対応した出力情報を、HMD110に関連付けられる表示部112へ提供するための演算に必要な各種データを含んでもよい。オブジェクトデータ930は、仮想空間内に配置される操作オブジェクト、仮想オブジェクト等に関するデータを含んでもよい。表示部112は、HMD110に内蔵されてもよいし、HMD110に取り付け可能な別のデバイス(例えば、スマートフォン)のディスプレイであってもよい。
図9においてプロセッサ202内に含まれるコンポーネントは、プロセッサ202が実行する機能を具体的なモジュールとして表現する1つの例にすぎない。複数のコンポーネントの機能が単一のコンポーネントによって実現されてもよい。プロセッサ202がすべてのコンポーネントの機能を実行するように構成されてもよい。
図10は、ユーザが没入する仮想空間の画像を表示部112に表示するための一般的な処理のフロー図である。
図9及び図10を参照して、仮想空間の画像を提供するためのHMDシステム100の一般的な処理を説明する。仮想空間400は、HMDセンサ120、注視センサ140及びコンピュータ200等の相互作用によって提供され得る。
処理はステップ1002において開始する。一例として、アプリケーションデータに含まれるゲームアプリケーションがコンピュータ200によって実行されてもよい。ステップ1004において、プロセッサ202(仮想空間特定部902)は、仮想空間データ928を参照するなどして、ユーザが没入する仮想空間400を構成する天球状の仮想空間画像402を生成する。HMDセンサ120によってHMD110の位置や傾きが検知される。HMDセンサ120によって検知された情報はコンピュータ200に送信される。ステップ1006において、HMD動作検知部903は、HMD110の位置情報や傾き情報を取得する。ステップ1008において、取得された位置情報及び傾き情報に基づいて視界方向が決定される。
注視センサ140がユーザの左右の目の眼球の動きを検出すると、当該情報がコンピュータ200に送信される。ステップ1010において、視線検知部904は、右目及び左目の視線が向けられる方向を特定し、視線方向N0を決定する。ステップ1012において、基準視線決定部906は、HMD110の傾きにより決定された視界方向又はユーザの視線方向N0を基準視線408として決定する。基準視線408はまた、HMD110の位置や傾きに追随する仮想カメラ404の位置及び傾きに基づいて決定されてもよい。
ステップ1014において、視界領域決定部908は、仮想空間400における仮想カメラ404の視界領域410を決定する。図4に示すように、視界領域410は、仮想空間画像402のうちユーザの視界を構成する部分である。視界領域410は基準視線408に基づいて決定される。視界領域410をx方向から見たyz断面図及び視界領域410をy方向から見たxz断面図は、既に説明した図6及び図7にそれぞれ示されている。
ステップ1016において、視界画像生成部912は、視界領域410に基づいて視界画像を生成する。視界画像は、右目用と左目用の2つの2次元画像を含む。これらの2次元画像が表示部112に重畳される(より具体的には、右目用画像が右目用表示部に出力され、左目用画像が左目用表示部に出力される)ことにより、3次元画像としての仮想空間400がユーザに提供される。ステップ1018において、視界画像出力部926は、視界画像に関する情報を表示部112に出力する。表示部112は、受信した視界画像の情報に基づいて、当該視界画像を表示する。処理はステップ1020において終了する。
図11は、本開示の一実施形態による方法1100のフローチャートである。本開示の一実施形態において、コンピュータプログラムが、図11に示される各ステップをプロセッサ202(又はコンピュータ200)に実行させてもよい。また、本開示の別の実施形態は、方法1100を実行するプロセッサ202(又はコンピュータ200)として実施することができる。
以下、本開示の実施形態について具体的に説明する。ここでは、本開示の実施形態を適用することができる具体例として、複数のユーザが、各ユーザのアバター、ゲームフィールド、当該ゲームフィールド内で行動する各ユーザのユニット等が配置された仮想空間に没入して楽しむことができるゲームを想定する。しかし、本開示の実施形態は、必ずしもこのような態様に限定されない。本開示の実施形態が、特許請求の範囲において規定される範囲に含まれる様々な態様を取り得ることは、当業者にとって明らかであろう。
図12は、本実施形態において想定されるゲームの態様を概略的に説明する図である。この例では、2人のユーザ1212A及び1212B(以下、まとめて「ユーザ1212」とも呼ぶ)が当該ゲームをプレイする。ユーザ1212A及び1212Bは、それぞれ、HMD110A及び110B(以下、まとめて「HMD110」とも呼ぶ)を頭部に装着し、さらにコントローラ160A及び160B(以下、まとめて「コントローラ160」とも呼ぶ)を装着する。一例では、コントローラ160は、図8に関して上述した構成を有する。この場合、各ユーザは当該コントローラを両手に装着する。但し、これはコントローラ160の例にすぎない。ユーザの身体の他の部分に装着可能な様々な態様のコントローラを本開示の実施形態に適用することができる。
仮想空間1200内には、ユーザ1212A及び1212Bのそれぞれによって操作されるアバター1214A及び1214B(以下、まとめて「アバター1214」とも呼ぶ)並びにゲームフィールド1222が配置される。ゲームフィールド1222上には、ユーザ1212A及び1212Bの各々が有するユニット1216A及び1216B(以下、まとめて「ユニット1216」とも呼ぶ)、基地1224A及び1224B(以下、まとめて「基地1224」とも呼ぶ)等が配置される。ユニット1216は、各ユーザ1212が操作することによってゲームフィールド1222上を移動することが可能なゲームキャラクタ(第1オブジェクト)である。ゲームのプレイ中、ユーザ1212は、自分のユニット1216が相手ユーザの基地1224に到達することができるように、様々な操作を行う。
ユーザ1212は、アバター1214を介して、仮想空間1200内のゲームフィールド1222上で行われるゲームを楽しむことができる。アバター1214A及び1214Bは、それぞれ、操作オブジェクト1220A及び1220B(以下、まとめて「操作オブジェクト1220」とも呼ぶ)を有する。基本的に、操作オブジェクト1220は、コントローラ160が装着されたユーザ1212の身体の一部に対応する、アバター1214の身体の一部である。例えば、操作オブジェクト1220は、アバター1214の手である。これは操作オブジェクト1220の一例にすぎない。操作オブジェクト1220は、アバター1214の身体の別の部分であってもよい。例えば、コントローラ160が、ユーザ1212の足に装着されるように構成される場合、操作オブジェクト1220はアバター1214の足であってもよい。
図12に示されるように、アバター1214A及び1214Bの位置にそれぞれ仮想カメラ1204A1及び1204B1(以下、まとめて「仮想カメラ1204−1」とも呼ぶ)が配置されてもよい。また、ユニット1216A及び1216Bの位置にそれぞれ仮想カメラ1204A2及び1204B2(以下、まとめて「仮想カメラ1204−2」とも呼ぶ)が配置されてもよい。仮想カメラ1204−1は、アバター1214の視点(第1視点)から仮想空間1200を捉え、仮想カメラ1204−2は、ユニット1216の視点(第2視点)から仮想空間1200を捉える。仮想カメラ1204−1からのアバター1214の視点は、仮想空間1200内のゲームフィールド1222を俯瞰する視点である。例えば、仮想カメラ1204A1が捉えるアバター1214Aの視点(第1視点)からの視界画像には、ユーザ1212Aが操作可能なゲームフィールド1222上のユニット1216A(第1オブジェクト)が含まれ、仮想カメラ1204B1が捉えるアバター1214Bの視点(第1視点)からの視界画像には、ユーザ1212Bが操作可能なゲームフィールド1222上のユニット1216B(第1オブジェクト)が含まれる。一方、仮想カメラ1204−2からの視点は、ゲームフィールド1222上のユニット1216(第1オブジェクト)に関連付けられている。例えば、仮想カメラ1204A2が捉えるユニット1216Aの視点(第2視点)からの視界画像には、相手ユーザのユニットであるユニット1216Bが含まれ、仮想カメラ1204B2が捉えるユニット1216Bの視点(第2視点)からの視界画像には、相手ユーザのユニットであるユニット1216Aが含まれる。更に、仮想カメラ1204−2によるユニット1216の視点(第2視点)からの視界画像には、例えば、当該ユニット1216(第1オブジェクト)が手に持つことができる後述の装備アイテム(第2オブジェクト)が含まれる。一例として、ユニット1216が把持可能な装備アイテムは、ゲーム内でユニット1216が使用することが可能な銃などの武器であってよい。ユーザ1212は、仮想カメラ1204−1により(アバター1214の視点から)得られた仮想空間1200の映像を見ることができるだけでなく、仮想カメラ1204−2により(ユニット1216の視点から)得られた仮想空間1200の映像を見ることもできる。ユーザ1212はまた、仮想空間1200の映像を、仮想カメラ1204−1で捉えたアバター1214の視点(第1視点)と仮想カメラ1204−2で捉えたユニット1216の視点(第2視点)との間で相互に切り替えることもできる。
図11に戻り、処理はステップ1102において開始する。プロセッサ202は、メモリ204に格納されているアプリケーションデータ932に含まれるゲームプログラムを読み出して実行する。
処理はステップ1104に進み、仮想空間特定部902は、仮想空間データ928、オブジェクトデータ930等に基づいて、実行されたゲームのための仮想空間データを特定する。当該仮想空間データは、ユーザ1212の身体の一部(例えば、手)に関連付けられる操作オブジェクト1220及び少なくとも1つの仮想オブジェクトを含む仮想空間を規定する。仮想オブジェクトは、ユーザ1212がゲーム内で使用するカードオブジェクト(後述)のほか、仮想空間1200内に存在する椅子、棚、ランプなどの様々なオブジェクト(図示せず)を含み得る。
処理はステップ1106に進み、仮想視点特定部910は、仮想空間1200における仮想視点を特定する。図12を参照すると、例えば、ゲームの開始直後において、ユーザ1212は、アバター1214としてゲームに参加する。前述したように、ユーザ1212は、アバター1214を仮想空間1200内で動き回らせることもできる。仮想視点特定部910は、仮想空間1200内におけるアバター1214に関連付けられた仮想カメラ1204−1の現在位置を、仮想視点として特定する。
処理はステップ1108に進み、視界画像生成部912は、仮想空間データと、仮想視点と、HMDの向きとに基づいて、視界画像を生成する。視界画像は、例えば、図10に関連して既に説明された処理によって生成される。生成された視界画像は、視界画像出力部926によって、HMD110に関連付けられる表示部112に出力され、表示部112によって表示される。HMD110を装着したユーザ1212は、表示部112に表示された当該視界画像を見ることができる。例えば、表示部112に表示される視界画像は、アバター1214の視点(第1視点)から仮想空間1200を見た画像である。
図13は、ステップ1108の処理により生成される、アバター1214の視点(第1視点)からの視界画像の例を示す。この例においては、アバター1214Aに関連付けられる仮想カメラ1204A1が仮想視点として設定されている。図示されるように、仮想カメラ1204A1により取得されたアバター1214Aの第1視点からの視界画像1300は、ユーザ1212Aのアバター1214Aの操作オブジェクト(ここでは、手)1220A、相手ユーザ1212Bのアバター1214B、ゲームフィールド1222、ゲームフィールド1222上に配置されたユーザ1212Aのユニット1216A(第1オブジェクト)及び相手ユーザ1212Bのユニット1216B、基地1224A及び1224B、壁1304、ユーザ1212Aがゲーム内で使用できるユニットを表すカードオブジェクト1302−1及び1302−2、ゲーム内でユニットに装備させることが可能な装備アイテムを表すカードオブジェクト1302−3等を含んでいる。この例では、操作オブジェクト1220Aは、左手オブジェクト1220A1及び右手オブジェクト1220A2を含む。ユーザ1212Aは、自分が仮想空間1200内に入り込んでゲームフィールド1222上で行われるゲームに参加しているかのような没入感を得ることができる。
処理はステップ1110に進み、オブジェクト制御部914は、ユーザ1212Aの身体の一部の動きに応じて、操作オブジェクト1220Aを動かす。視界画像生成部912は、操作オブジェクト1220Aの動きに応じた視界画像を生成し、視界画像出力部926は、視界画像生成部912によって生成された視界画像を表示部112に出力する。このように、ユーザ1212Aは、ユーザ1212Aの身体の一部(例えば手)を動かすことにより、仮想空間1200内で行われるゲームをプレイするアバター1214Aの視点(第1視点)において、アバター1214Aの操作オブジェクト(例えば手)1220Aを自由に動かすことができる。
なお、本実施形態において、ユーザの身体の一部の「動き」とは、当該身体の一部の静止状態での位置、向き、動いている状態での動きの方向、動きの距離等の様々な概念を含み得る。
処理はステップ1112に進み、オブジェクト制御部914は、操作オブジェクト1220Aによって、アバター1214Aの視点(第1視点)の視界画像に含まれているカードオブジェクト1302−1、1302−2、1302−3のうち、ユニットを表す1枚のカードオブジェクトが選択されてゲームフィールド1222の上へ移動されたか否かを判定する。例えば、オブジェクト制御部914は、操作オブジェクト1220Aがある特定の1枚のカードオブジェクトから所定距離の範囲内に入ったとき、当該カードオブジェクトが選択されたと判定してもよい。また例えば、オブジェクト制御部914は、選択されたカードオブジェクトが操作オブジェクト1220Aによってドラッグされた際のドラッグ先の位置に基づいて、当該カードオブジェクトがゲームフィールド1222へ移動したことを判定してもよい。カードオブジェクトの選択及び移動の判定を様々な方法で行うことができることは、当業者にとって明らかであろう。
図14は、ステップ1112においてユニットを表すカードオブジェクトが選択されたときに表示部112に表示される視界画像の例を示す。ユーザ1212Aが、視界画像内の左手オブジェクト1220A1が3枚のカードオブジェクトのうちのユニットを表す1枚のカードオブジェクト1302−2に重なるように左手を動かすと、モーションセンサ130はこの動きを検知する。オブジェクト制御部914は、検知された動きに基づいて、図14に示されるように、左手オブジェクト1220A1によってカードオブジェクト1302−2を掴ませる。結果として、視界画像1400が表示部112に表示される。
図15は、ステップ1112においてカードオブジェクトがゲームフィールド1222へ移動したときに、図14の視界画像に引き続いて表示部112に表示される視界画像の例を示す。ユーザ1212Aが左手を右斜め前方に動かすと、モーションセンサ130はこの動きを検知する。オブジェクト制御部914は、検知された動きに基づいて、図14において矢印で示されるように左手オブジェクト1220A1及び選択されたカードオブジェクト1302−2を動かす。結果として、図15に示す視界画像1500が生成され、表示部112に表示される。
図11に戻り、ステップ1112においてユニットを表すカードオブジェクトがゲームフィールド1222へ移動されると(ステップ1112の「Y」)、処理はステップ1114に進む。ステップ1114において、オブジェクト制御部914は、ゲームフィールド1222へ移動されたカードオブジェクトに対応する新しい追加のユニットをゲームフィールド1222に配置する。視界画像生成部912は、追加されたユニットを含む視界画像を生成し、視界画像出力部926は、視界画像生成部912によって生成された視界画像を表示部112に出力する。このようにして、ユーザ1212Aは、アバター1214Aの操作オブジェクト1220Aを操作することにより、自分が所有しているカードオブジェクトの中から選択したユニットをゲームフィールド1222に追加で配置することができる。
図16は、ステップ1114において追加のユニットがゲームフィールド1222に配置されたときに、図15の視界画像に引き続いて表示部112に表示される視界画像1600の例を示す。例えば、ユーザ1212Aは、コントローラ160のトリガーボタン810を押しながら、カードオブジェクト1302−2をゲームフィールド1222へドラッグする。ユーザ1212Aがコントローラ160のトリガーボタン810を離すと、オブジェクト制御部914は、ドラッグされたカードオブジェクト1302−2に対応する追加のユニット1216Cをゲームフィールド1222上に新しく配置する。追加のユニット1216Cのゲームフィールド1222への配置位置は、例えば、ユーザ1212Aがトリガーボタン810を離した瞬間にアバター1214Aの操作オブジェクト1220A(カードオブジェクト1302−2を掴んでいた左手オブジェクト1220A1)が指し示しているゲームフィールド1222上の位置であってもよいし、あるいは、予め定められたゲームフィールド1222上のデフォルト位置であってもよい。
ステップ1114に続いて、処理はステップ1116へ進む。ステップ1116において、仮想視点切替部916は、表示部112に表示する視界画像を、アバター1214Aの視点である第1視点による視界画像から、ステップ1114でゲームフィールド1222に追加で配置したユニット1216Cの視点である第2視点による視界画像へ切り替えるか否かを判定する。例えば、仮想視点切替部916は、追加のユニット1216Cがゲームフィールド1222に配置された際に、第1視点から第2視点への視界画像の切り替えを行うべきかどうかをユーザ1212Aに問い合わせるポップアップ画像を表示部112に表示し、これに対するユーザ1212Aからのコントローラ160を介した応答に基づいて、視界画像の視点を切り替えるか否かを判定してもよい。あるいは、仮想視点切替部916は、ユーザ1212Aがステップ1114においてコントローラ160の所定のボタン(例えばプッシュボタン814)を押しながらユニット1216Cをゲームフィールド1222に配置した場合に、視界画像の視点を切り替えると判定してもよい。更にまた、仮想視点切替部916は、ゲームフィールド1222にユニット1216Cが配置されると無条件に視界画像の視点を切り替えてもよい。視界画像をアバター1214Aの第1視点からゲームフィールド1222上に追加されたユニット1216Cの第2視点へ切り替えると判定された場合、処理はステップ1122へ進み、そうでない場合、処理はステップ1118へ進む。
ステップ1112においてユニットを表すカードオブジェクトの選択とゲームフィールド1222への移動が行われなかった場合、及びステップ1116において視界画像の第1視点から第2視点への切り替えを行うとの判定がなされなかった場合には、ステップ1118が実行される。ステップ1118において、オブジェクト制御部914は、ゲームフィールド1222上に現在配置されている各ユニット(例えばユニット1216A、ユニット1216B、及びユニット1216C)を、所定の移動アルゴリズムに従って自動的に移動させる制御を行う。例えば、オブジェクト制御部914は、ユーザ1212Aのユニット1216A及び1216Cを、相手ユーザ1212Bの基地1224Bを目指して移動するよう制御し、ユーザ1212Bのユニット1216Bを、相手ユーザ1212Aの基地1224Aを目指して移動するよう制御する。また、オブジェクト制御部914は、ゲームフィールド1222上でユーザ同士のユニット(例えばユーザ1212Aのユニット1216Aとユーザ1212Bのユニット1216B)が出会った場合に、それらのユニットに相手ユニットへの攻撃や、攻撃に対する防御を行わせてもよい。
ステップ1118に続いて、処理はステップ1120に進む。ステップ1120において、仮想視点切替部916は、操作オブジェクト1220Aによって、ゲームフィールド1222上に既に配置されているユーザ1212Aのいずれかのユニット1216(第1オブジェクト)が選択されたか否かを判定する。この選択は、視界画像をアバター1214Aの視点である第1視点からゲームフィールド1222上のユニット1216の視点である第2視点へ切り替えようとするユーザ1212Aの意図を表す。例えば、ユーザ1212Aは、図16に例示されるアバター1214Aの視点(第1視点)からの視界画像1600において、コントローラ160を動かすことによって操作オブジェクト1220Aをゲームフィールド1222上の1つのユニット1216Aに重ね合わせて、コントローラ160の所定のボタン(例えばトリガーボタン810)を押す。この例において、仮想視点切替部916は、操作オブジェクト1220Aの位置及びコントローラ160の所定のボタンが押されたか否かに基づいて、ゲームフィールド1222上のユニット1216Aが選択されたことを判定する。ユニット1216を選択するための任意の方法が用いられてよい。別の例として、仮想視点切替部916は、左手オブジェクト1220A1又は右手オブジェクト1220A2の(例えば)人差し指が示す延長線上に存在するユニット1216を、操作オブジェクト1220Aにより選択されたユニットと判定してもよい。あるいはまた、仮想視点切替部916は、現在ゲームフィールド1222上に配置されているユニット1216を示すリストをポップアップ画像としてユーザ1212Aに提示し、リスト中のユニットから所望のユニットを選択する操作をユーザ1212Aに行わせてもよい。
ステップ1116において視界画像をゲームフィールド1222に新しく追加されたユニット1216Cの第2視点へ切り替えることが判定された場合、及びステップ1120において視界画像を第2視点へ切り替えるためにゲームフィールド1222上のいずれかのユニット1216が選択された場合は、処理はステップ1122に進む。ステップ1122において、仮想視点切替部916は、表示部112に表示する視界画像を、アバター1214Aの視点である第1視点から、ステップ1114でゲームフィールド1222に追加されたユニット1216Cの視点である第2視点、又はステップ1120で選択されたユニット1216の視点である第2視点へ切り替える。視界画像を第2視点へ切り替えるために、仮想視点特定部910は、例えば、ステップ1120で選択されたユニット1216Aに関連付けられた仮想カメラ1204A2の現在位置を、仮想視点として特定する。次いで、視界画像生成部912は、仮想空間データと、仮想カメラ1204A2の現在位置を表す仮想視点と、HMDの向きとに基づいて、ゲームフィールド1222上のユニット1216Aの第2視点による視界画像を生成する。生成された第2視点の視界画像は、視界画像出力部926によって、HMD110に関連付けられる表示部112に出力され、表示部112によって表示される。これにより、HMD110を装着したユーザ1212は、ゲームフィールド1222上のユニット1216Aの第2視点から仮想空間1200を捉えた視界画像を見ることができる。
図17は、ステップ1122の処理により生成される、ゲームフィールド1222上のユニット1216の視点(第2視点)による視界画像の例を示す。この例においては、ユニット1216Aに関連付けられる仮想カメラ1204A2が仮想視点として設定されている。図示されるように、仮想カメラ1204A2が捉えるユニット1216Aの第2視点からの視界画像1700は、ユーザ1212Aのユニット1216Aの手として表現されたユニット1216Aの操作オブジェクト1225A、相手ユーザ1212Bのアバター1214B、ゲームフィールド1222、相手ユーザ1212Bのユニット1216B、相手ユーザ1212Bの基地1224B、壁1304等を含んでいる。操作オブジェクト1225Aは、左手オブジェクト1225A1及び右手オブジェクト1225A2を含む。ユーザ1212Aは、ゲームフィールド1222上を行動するユニット1216Aの目線でゲームを体感することができる。
ステップ1122に続いて、処理はステップ1124に進む。ステップ1124において、オブジェクト制御部914は、ユニット1216Aの視点(第2視点)からの視界画像において、当該ユニット1216A(第1オブジェクト)の操作オブジェクト1225Aに所定の装備アイテム(第2オブジェクト)を関連付ける。装備アイテムは、ゲーム内でユニット1216Aが装備し使用することができる様々なアイテムを含む。一例として、装備アイテムは、ユニット1216Aがゲームフィールド1222上で行動する際に使用可能な銃などの武器であってよいが、これには限定されないことに留意されたい。操作オブジェクト1225Aへの装備アイテムの関連付けは、様々な方法により行われることができる。例えば、オブジェクト制御部914は、ユニット1216Aの第2視点からの視界画像において、ユニット1216Aの手(操作オブジェクト1225A)に装備アイテムとしての銃を把持させる。あるいはまた、装備アイテムはゲーム内の特殊能力や特殊効果(例えば魔法など)に関連するアイテムであってもよく、オブジェクト制御部914は、装備アイテムとしてのそのような特殊能力や特殊効果をユニット1216Aの手(操作オブジェクト1225A)に付与することにより、ユニット1216Aを能力アップさせるのであってもよい。
一実施形態において、オブジェクト制御部914は、ユニット1216A(第1オブジェクト)に予め関連付けられている装備アイテム(第2オブジェクト)を、ユニット1216Aの操作オブジェクト1225Aに関連付ける。例えば、各ユニット1216がゲーム内でそれぞれ使用する固有の装備アイテムが、予め定義されていてもよい。一例として、各ユニット1216には、当該ユニットの属性(例えばレアリティ)に応じた属性(例えば攻撃力)を有する固有の装備アイテムが、予め割り当てられていてもよい。オブジェクト制御部914は、当該ユニット1216に対して予め定義されている固有の装備アイテムを、そのユニット1216の操作オブジェクトに関連付ける。あるいはまた、ユーザ1212Aが、図13に例示されるアバター1214Aの第1視点において、ユニットを表すカードオブジェクト1302−1又は1302−2に装備アイテムを表すカードオブジェクト1302−3を予め関連付けておくのであってもよい。例えば、ユーザ1212Aがカードオブジェクト1302−2とカードオブジェクト1302−3を関連付けた場合、オブジェクト制御部914は、視界画像がアバター1214Aの第1視点からカードオブジェクト1302−2に対応するユニット1216Cの第2視点に切り替わった際に、ユニット1216Cの操作オブジェクトにカードオブジェクト1302−3に対応する装備アイテムを関連付ける。
図18は、ステップ1124の処理により生成されるユニット1216Aの第2視点による視界画像1800の例を示す。図18の視界画像1800は、図17の視界画像1700に引き続いて表示部112に表示される。図示されるように、ユニット1216Aの第2視点からの視界画像1800において、ユニット1216Aの右手オブジェクト1225A2(操作オブジェクト1225A)は装備アイテム(第2オブジェクト)1810を把持する。装備アイテム1810は、例示的に、ユニット1216Aがゲーム内で使用できる銃として描かれている。ユニット1216A(第1オブジェクト)の操作オブジェクト1225Aと装備アイテム(第2オブジェクト)1810との関連付け(例えばユニットの右手に銃を持たせること)が自動的に行われることにより、ユーザ1212Aは、視点をアバター1214Aの第1視点からユニット1216Aの第2視点に切り替えた時に、直ぐに装備アイテム1810の使用を開始してゲームを進めることができる。
ステップ1124に続いて、処理はステップ1126に進む。ステップ1126において、オブジェクト制御部914は、ユーザ1212Aの身体の一部の動きに応じて、第2視点におけるユニット1216Aの操作オブジェクト1225A及び操作オブジェクト1225Aに関連付けられた装備アイテム1810を制御する。例えば、ユーザ1212Aは、ユニット1216Aの視点(第2視点)において、コントローラ160を握った手を動かすことでユニット1216Aが把持している銃(装備アイテム)1810の狙いを定め、更にコントローラ160のトリガーボタン810を押すことで銃1810による射撃を行うことができる。視界画像生成部912は、操作オブジェクト1225A及び装備アイテム1810の動作に応じた視界画像を生成し、視界画像出力部926は、視界画像生成部912によって生成された視界画像を表示部112に出力する。ユーザ1212Aは、仮想空間1200内のゲームフィールド1222上を行動するユニット1216Aの視点(第2視点)において、ユニット1216Aの操作オブジェクト(例えば手)1225Aと装備アイテム(例えば銃)1810を使ってゲームを楽しむことができる。
一実施形態において、オブジェクト制御部914は、ユーザ1212Aがユニット1216Aの第2視点で操作する装備アイテム1810(第2オブジェクト)の動きが相手ユーザ1212Bのユニット1216B(第3オブジェクト)に対して作用を与えるように、相手ユーザ1212Bのユニット1216Bを制御してもよい。例えば、第2視点のユニット1216Aは、銃1810を使用して相手ユニット1216Bを攻撃することにより、相手ユニット1216Bにダメージを与えることができる。また、オブジェクト制御部914は、ユニット1216Aの第2視点において、相手ユーザ1212Bのユニット1216Bの動きに応じてユニット1216A又はユニット1216Aの装備アイテム1810が作用を受けるように、ユニット1216A又は装備アイテム1810を制御してもよい。例えば、相手ユーザ1212Bからの攻撃によって、ユニット1216A又は装備アイテム1810がダメージを受けてもよい。
別の実施形態において、アバター1214Aの第1視点にあるユーザ1212Aは、アバター1214Aを操作して相手ユーザ1212Bのアバター1214Bに作用を与える(例えばアバター1214Bを攻撃する)ことが可能であってもよい。例えば、各ユーザは、それぞれのアバターの第1視点からゲームフィールド1222を俯瞰的に眺め、ゲームフィールド1222におけるゲームの情勢を判断しながら、次の戦略を考えゲームフィールド1222にカードオブジェクト(即ち追加のユニット)を配置していくことによってゲームをプレイする。この第1視点において、相手のアバターに作用を与えることは、ユーザが相手ユーザに作用を与えるのと同じ意味合いを持つ。したがって、第1視点でアバター1214Aを操作して相手アバター1214Bに作用を与えることを可能とすることによって、ユーザは、相手のユーザ(人間)と一緒にゲームをしているという一体感を得ることができる。
また、本実施形態においては、HMD装置110によってユーザ190が没入する仮想空間(VR空間)を例示して説明したが、HMD装置110として、透過型のHMD装置を採用してもよい。この場合、透過型のHMD装置を介してユーザ190が視認する現実空間に、仮想空間を構成するための画像の一部が視界画像として重畳されるように出力することにより、拡張現実(AR:Augmented Reality)空間または複合現実(MR:Mixed Reality)空間における仮想体験をユーザ190に提供してもよい。この場合、右手オブジェクトおよび左手オブジェクトに代えて、ユーザ190の右手および左手の動きに基づいて、仮想空間400、1200内における各種オブジェクト(例えば、第1オブジェクト、第2オブジェクト)への作用を生じさせてもよい。具体的には、プロセッサ202は、現実空間におけるユーザ190の手の位置の座標情報を特定するとともに、仮想空間400、1200内における各種オブジェクトの位置を現実空間における座標情報との関係で定義してもよい。これにより、プロセッサ202は、現実空間におけるユーザ190の手と仮想空間400、1200における仮想オブジェクトとの位置関係を把握し、ユーザ190の手と仮想オブジェクトとの間で上述した制御に対応する処理を実行可能となる。その結果、ユーザ190の手の動きに基づいて各種オブジェクトに作用を与えることが可能となる。
本開示の実施形態は、主に、プロセッサ202(もしくはコンピュータ200)又は方法1100として実施されるものとして説明された。しかし、本開示の実施形態が、プロセッサ202に方法1100を実行させるコンピュータプログラムとして実施することができることは、当業者にとって明らかであろう。
本開示の実施形態が説明されたが、これらが例示にすぎず、本開示の範囲を限定するものではないことが理解されるべきである。本開示の趣旨及び範囲から逸脱することなく、実施形態の変更、追加、改良等を適宜行うことができることが理解されるべきである。本開示の範囲は、上述した実施形態のいずれによっても限定されるべきではなく、特許請求の範囲及びその均等物によってのみ規定されるべきである。
100…HMDシステム、110…HMD、112…表示部、114…センサ、120…HMDセンサ、130…モーションセンサ、140…注視センサ、150…サーバ、160…コントローラ、190…ユーザ、192…ネットワーク、200…コンピュータ、202…プロセッサ、204…メモリ、205…通信制御部、206…ストレージ、208…入出力インターフェース、210…通信インターフェース、212…バス、400…仮想空間、402…仮想空間画像、404…仮想カメラ、406…中心、408…基準視線、410…視認領域、602、702…領域、800…コントローラ、802…グリップ、804…フレーム、806…天面、808、810、814、816…ボタン、818…アナログスティック、902…仮想空間特定部、903…動作検知部、904…視線検知部、906…基準視線決定部、908…視界領域決定部、910…仮想視点特定部、912…視界画像生成部、914…オブジェクト制御部、916…仮想視点切替部、926…視界画像出力部、928…仮想空間データ、930…オブジェクトデータ、932…アプリケーションデータ、934…その他のデータ、1200…仮想空間、1204A1、A2、B1、B2…仮想カメラ、1212A、B…ユーザ、1214A、B…アバター、1216A、B、C…ユニット、1220A、B、1225A…操作オブジェクト、1222…ゲームフィールド、1224A、B…基地、1302−1、2、3…カードオブジェクト、1304…壁、160A、B…コントローラ、1220A1、1225A1…左手オブジェクト、1220A2、1225A…右手オブジェクト、1810…装備アイテム

Claims (13)

  1. ヘッドマウントデバイスと、ユーザの身体の一部の動きを検知するように構成されたセンサとを備えたシステムにおける情報処理方法であって、
    仮想空間を規定する仮想空間データを特定するステップと、
    前記仮想空間における仮想視点を特定するステップと、
    前記仮想空間データと、前記仮想視点と、前記ヘッドマウントデバイスの向きとに応じて、前記身体の一部に関連付けられる操作オブジェクトを含む視野画像を生成するステップと、
    前記センサによって検知された前記身体の一部の動きに応じて、前記視野画像内の前記操作オブジェクトを動かすステップと、
    第1オブジェクトを含む、第1視点からの視野画像を前記ヘッドマウントデバイスに関連付けられる表示部に表示するステップと、
    前記仮想視点を前記第1視点から第2視点に切り替えるステップと、
    前記第1視点において前記第1オブジェクトに対する選択が受け付けられている場合において、前記仮想視点が前記第2視点に切り替えられた際に、前記第1オブジェクトに関連付けられた第2オブジェクトを前記操作オブジェクトに関連付けるステップと、
    前記操作オブジェクトに関連付けられた前記第2オブジェクトを含む、前記第2視点からの視野画像を前記ヘッドマウントデバイスに関連付けられる前記表示部に表示するステップと、
    を含む方法。
  2. 前記第2視点において前記操作オブジェクトの動きに応じて前記視野画像内の前記第2オブジェクトを動かすステップを更に含む、請求項1に記載の方法。
  3. 前記仮想空間はゲームフィールドを含み、前記第1視点は前記ゲームフィールドを俯瞰する仮想視点であり、前記第2視点は前記ゲームフィールド上に配置された前記第1オブジェクトに関連付けられた仮想視点である、請求項1又は請求項2に記載の方法。
  4. 前記第1オブジェクトは前記ゲームフィールド上を移動可能なゲームキャラクタであり、前記第2視点は前記ゲームキャラクタの視点で前記仮想空間を見た仮想視点である、請求項3に記載の方法。
  5. 前記操作オブジェクトは仮想の手であり、前記第2オブジェクトを前記操作オブジェクトに関連付ける前記ステップは、前記第2視点の視野画像において前記仮想の手に前記第2オブジェクトを把持させることを含む、請求項1から請求項4のいずれか1項に記載の方法。
  6. 前記第1オブジェクトに対する選択は、前記第1視点において複数の候補オブジェクトのうちの1つのオブジェクトを前記操作オブジェクトの動きに応じて選択することを含む、請求項1から請求項5のいずれか1項に記載の方法。
  7. 前記第1オブジェクトに対する選択は、更に、前記選択した1つのオブジェクトを前記仮想空間内のゲームフィールドに配置することを含み、前記第2視点は、前記1つのオブジェクトの前記ゲームフィールドへの配置によって特定される前記第1オブジェクトの位置に基づく仮想視点である、請求項6に記載の方法。
  8. 前記仮想空間は第3オブジェクトが配置されたゲームフィールドを含み、
    前記第2視点において前記操作オブジェクトの動きに応じて前記視野画像内の前記第2オブジェクトを動かす前記ステップは、前記第2オブジェクトの動きによって前記第3オブジェクトに作用を与えるステップを含む、
    請求項2に記載の方法。
  9. 前記第2視点において前記第3オブジェクトの動きに応じて前記第1オブジェクト及び前記第2オブジェクトの少なくとも一方に作用を与えるステップを更に含む、請求項8に記載の方法。
  10. 前記仮想視点を前記第1視点から前記第2視点に切り替える前に前記第1オブジェクトに前記第2オブジェクトを関連付けるステップを更に含む、請求項1から請求項9のいずれか1項に記載の方法。
  11. 前記第2オブジェクトの属性は前記第1オブジェクトの属性に応じて設定される、請求項1から請求項10のいずれか1項に記載の方法。
  12. プロセッサとメモリを備え、
    前記プロセッサの制御により、請求項1から請求項11のいずれか1項に記載の方法が実行される、
    コンピュータ。
  13. プロセッサによって実行されると、前記プロセッサに、請求項1から請求項11のいずれか1項に記載の方法を実行させる、プログラム。
JP2017091718A 2017-05-02 2017-05-02 情報処理方法、コンピュータ、及びプログラム Active JP6509938B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017091718A JP6509938B2 (ja) 2017-05-02 2017-05-02 情報処理方法、コンピュータ、及びプログラム
US15/967,685 US20180321817A1 (en) 2017-05-02 2018-05-01 Information processing method, computer and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017091718A JP6509938B2 (ja) 2017-05-02 2017-05-02 情報処理方法、コンピュータ、及びプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2019070494A Division JP2019155113A (ja) 2019-04-02 2019-04-02 情報処理方法、コンピュータ、及びプログラム

Publications (2)

Publication Number Publication Date
JP2018190163A true JP2018190163A (ja) 2018-11-29
JP6509938B2 JP6509938B2 (ja) 2019-05-08

Family

ID=64014722

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017091718A Active JP6509938B2 (ja) 2017-05-02 2017-05-02 情報処理方法、コンピュータ、及びプログラム

Country Status (2)

Country Link
US (1) US20180321817A1 (ja)
JP (1) JP6509938B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021005715A1 (ja) * 2019-07-09 2021-01-14 マクセル株式会社 ヘッドマウントディスプレイシステム及びそれに用いるヘッドマウントディスプレイ及びその操作方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11017575B2 (en) * 2018-02-26 2021-05-25 Reald Spark, Llc Method and system for generating data to provide an animated visual representation
CN108536295B (zh) * 2018-03-30 2021-08-10 腾讯科技(深圳)有限公司 虚拟场景中的对象控制方法、装置及计算机设备
CN113168007B (zh) * 2018-09-25 2023-09-15 奇跃公司 用于增强现实的系统和方法
CN109634409A (zh) * 2018-11-26 2019-04-16 深圳增强现实技术有限公司 Ar控制方法及分离式ar设备
US11691072B2 (en) * 2021-08-24 2023-07-04 Sony Interactive Entertainment LLC Aiming display automation for head mounted display applications

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002136762A (ja) * 2000-11-02 2002-05-14 Taito Corp 潜在映像を用いたアドベンチャーゲーム
JP2014038403A (ja) * 2012-08-13 2014-02-27 Konami Digital Entertainment Co Ltd 表示制御装置、表示制御装置の制御方法、表示制御システム、表示制御システムの制御方法、及びプログラム
JP2017012397A (ja) * 2015-06-30 2017-01-19 株式会社セガゲームス プログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8585476B2 (en) * 2004-11-16 2013-11-19 Jeffrey D Mullen Location-based games and augmented reality systems
NZ751593A (en) * 2013-03-15 2020-01-31 Magic Leap Inc Display system and method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002136762A (ja) * 2000-11-02 2002-05-14 Taito Corp 潜在映像を用いたアドベンチャーゲーム
JP2014038403A (ja) * 2012-08-13 2014-02-27 Konami Digital Entertainment Co Ltd 表示制御装置、表示制御装置の制御方法、表示制御システム、表示制御システムの制御方法、及びプログラム
JP2017012397A (ja) * 2015-06-30 2017-01-19 株式会社セガゲームス プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021005715A1 (ja) * 2019-07-09 2021-01-14 マクセル株式会社 ヘッドマウントディスプレイシステム及びそれに用いるヘッドマウントディスプレイ及びその操作方法
JPWO2021005715A1 (ja) * 2019-07-09 2021-01-14
JP7304948B2 (ja) 2019-07-09 2023-07-07 マクセル株式会社 ヘッドマウントディスプレイシステム及びそれに用いるヘッドマウントディスプレイ及びその操作方法

Also Published As

Publication number Publication date
JP6509938B2 (ja) 2019-05-08
US20180321817A1 (en) 2018-11-08

Similar Documents

Publication Publication Date Title
JP6509938B2 (ja) 情報処理方法、コンピュータ、及びプログラム
JP6257827B1 (ja) 仮想空間を提供するためにコンピュータで実行される方法、プログラム、および、情報処理装置
JP6684746B2 (ja) 情報処理方法、コンピュータ及びプログラム
JP6248219B1 (ja) 情報処理方法、コンピュータ、および当該情報処理方法をコンピュータに実行させるためのプログラム
JP2018147465A (ja) 情報処理方法、装置、および当該情報処理方法をコンピュータに実行させるためのプログラム
JP6513241B1 (ja) プログラム、情報処理装置、及び情報処理方法
JP6479933B1 (ja) プログラム、情報処理装置、および方法
JP2021184272A (ja) 情報処理方法、プログラム及びコンピュータ
JP7192151B2 (ja) プログラム、情報処理装置、及び情報処理方法
JP6263292B1 (ja) 情報処理方法、コンピュータ、および当該情報処理方法をコンピュータに実行させるためのプログラム
JP6382928B2 (ja) 仮想空間における画像の表示を制御するためにコンピュータによって実行される方法、当該方法をコンピュータに実現させるためのプログラム、および、コンピュータ装置
JP2019087262A (ja) プログラム、情報処理装置、および方法
JP2018170013A (ja) 仮想空間における画像の表示を制御するためにコンピュータによって実行される方法、当該方法をコンピュータに実現させるためのプログラム、および、コンピュータ装置
JP6893532B2 (ja) 情報処理方法、コンピュータ及びプログラム
JP2019168962A (ja) プログラム、情報処理装置、及び情報処理方法
JP6965304B2 (ja) プログラム、情報処理装置、及び情報処理方法
JP2022020686A (ja) 情報処理方法、プログラム、およびコンピュータ
JP6392953B1 (ja) 情報処理方法、装置、および当該情報処理方法をコンピュータに実行させるためのプログラム
JP6330072B1 (ja) 情報処理方法、装置、および当該情報処理方法をコンピュータに実行させるためのプログラム
JP2019155113A (ja) 情報処理方法、コンピュータ、及びプログラム
JP2019023869A (ja) 情報処理方法、コンピュータ、及びプログラム
JP2019048045A (ja) 情報処理方法、装置、および当該情報処理方法をコンピュータに実行させるためのプログラム
JP6441517B1 (ja) プログラム、情報処理装置、および方法
JP6389305B1 (ja) 情報処理方法、コンピュータ、及びプログラム
JP2020155139A (ja) プログラム、情報処理装置、及び情報処理方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181025

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181128

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190403

R150 Certificate of patent or registration of utility model

Ref document number: 6509938

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250