JP6298557B1 - Information processing method, apparatus, and program for causing computer to execute information processing method - Google Patents

Information processing method, apparatus, and program for causing computer to execute information processing method Download PDF

Info

Publication number
JP6298557B1
JP6298557B1 JP2017080877A JP2017080877A JP6298557B1 JP 6298557 B1 JP6298557 B1 JP 6298557B1 JP 2017080877 A JP2017080877 A JP 2017080877A JP 2017080877 A JP2017080877 A JP 2017080877A JP 6298557 B1 JP6298557 B1 JP 6298557B1
Authority
JP
Japan
Prior art keywords
virtual space
collision
processor
user
target object
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
JP2017080877A
Other languages
Japanese (ja)
Other versions
JP2018181017A (en
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 JP2017080877A priority Critical patent/JP6298557B1/en
Application granted granted Critical
Publication of JP6298557B1 publication Critical patent/JP6298557B1/en
Publication of JP2018181017A publication Critical patent/JP2018181017A/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

【課題】仮想空間における仮想体験のエンタテイメント性を向上させ得る。【解決手段】表示部を備えるヘッドマウントデバイスを介してユーザに仮想空間を提供するためにコンピュータによって実行される情報処理方法は、ユーザに関連付けられた操作オブジェクトと、所定のモーション情報に基づいて動作する複数の部位を有する標的オブジェクトとを含む仮想空間を規定する仮想空間データを生成するステップと、操作オブジェクトと標的オブジェクトとの衝突が検出された場合に、該衝突に基づく標的オブジェクトの衝突部位のフィードバック動作を少なくとも示すフィードバック情報を生成するステップと、モーション情報およびフィードバック情報を用いて、少なくとも衝突部位の動作を更新するステップと、仮想空間データと、更新された少なくとも衝突部位の動作とに基づいて視界画像を生成し、表示部に該視界画像を表示させるステップとを含む。【選択図】図12An entertainment property of a virtual experience in a virtual space can be improved. An information processing method executed by a computer to provide a virtual space to a user via a head mounted device including a display unit operates based on an operation object associated with the user and predetermined motion information. Generating virtual space data defining a virtual space including a target object having a plurality of parts to be detected, and when a collision between the operation object and the target object is detected, a collision part of the target object based on the collision is detected. Based on the step of generating feedback information indicating at least a feedback action, the step of updating at least the action of the collision part using the motion information and the feedback information, the virtual space data, and the updated action of at least the collision part Generate a field of view image and Parts in and a step of displaying the parallax field image. [Selection] Figure 12

Description

本開示は、情報処理方法、装置、および当該情報処理方法をコンピュータに実行させるためのプログラムに関する。   The present disclosure relates to an information processing method, an apparatus, and a program for causing a computer to execute the information processing method.

特許文献1は、ディスプレイ上に表示される標的に向けてシューティングを行うシューティングデバイスを備える装置を開示している。   Patent document 1 is disclosing the apparatus provided with the shooting device which shoots toward the target displayed on a display.

特開平09−075552号公報JP 09-077552 A

標的が登場する仮想空間では、ユーザ操作に応じて所定のオブジェクトが標的に当たった時の標的の演出が当該仮想空間のエンタテイメント性に影響し得る。   In the virtual space where the target appears, the presentation of the target when a predetermined object hits the target according to the user operation can affect the entertainment property of the virtual space.

そこで、本開示は、仮想空間における仮想体験のエンタテイメント性を向上させ得る情報処理方法、装置、および当該情報処理方法をコンピュータに実行させるためのプログラムを提供することを目的とする。   Therefore, an object of the present disclosure is to provide an information processing method and apparatus capable of improving the entertainment property of a virtual experience in a virtual space, and a program for causing a computer to execute the information processing method.

本開示が示す一態様によれば、表示部を備えるヘッドマウントデバイスを介してユーザに仮想空間を提供するためにコンピュータによって実行される情報処理方法が提供される。この情報処理方法は、ユーザに関連付けられた操作オブジェクトと、所定のモーション情報に基づいて動作する複数の部位を有する標的オブジェクトとを含む仮想空間を規定する仮想空間データを生成するステップと、操作オブジェクトと標的オブジェクトとの衝突が検出された場合に、該衝突に基づく標的オブジェクトの衝突部位のフィードバック動作を少なくとも示すフィードバック情報を生成するステップと、モーション情報およびフィードバック情報を用いて、少なくとも衝突部位の動作を更新するステップと、仮想空間データと、更新された少なくとも衝突部位の動作とに基づいて視界画像を生成し、表示部に該視界画像を表示させるステップとを含む。   According to one aspect of the present disclosure, an information processing method executed by a computer to provide a virtual space to a user via a head mounted device including a display unit is provided. The information processing method includes: generating virtual space data defining a virtual space including an operation object associated with a user and a target object having a plurality of parts that operate based on predetermined motion information; Generating a feedback information indicating at least a feedback operation of a collision part of the target object based on the collision, and using the motion information and the feedback information, at least an action of the collision part when a collision between the target object and the target object is detected And a step of generating a visual field image based on the virtual space data and at least the updated motion of the collision site and causing the display unit to display the visual field image.

本開示によれば、仮想空間における仮想体験のエンタテイメント性を向上させ得る情報処理方法、装置、および当該情報処理方法をコンピュータに実行させるためのプログラムを提供することができる。   According to the present disclosure, it is possible to provide an information processing method and apparatus that can improve the entertainment property of a virtual experience in a virtual space, and a program for causing a computer to execute the information processing method.

ある実施の形態に従うHMDシステム100の構成の概略を表す図である。It is a figure showing the outline of a structure of the HMD system 100 according to a certain embodiment. 一局面に従うコンピュータ200のハードウェア構成の一例を表すブロック図である。It is a block diagram showing an example of the hardware constitutions of the computer 200 according to one situation. ある実施の形態に従うHMD装置110に設定されるuvw視野座標系を概念的に表す図である。It is a figure which represents notionally the uvw visual field coordinate system set to the HMD apparatus 110 according to an embodiment. ある実施の形態に従う仮想空間2を表現する一態様を概念的に表す図である。It is a figure which represents notionally the one aspect | mode which represents the virtual space 2 according to a certain embodiment. ある実施の形態に従うHMD装置110を装着するユーザ190の頭部を上から表した図である。It is the figure showing the head of user 190 wearing HMD device 110 according to a certain embodiment from the top. 仮想空間2において視界領域23をX方向から見たYZ断面を表す図である。3 is a diagram illustrating a YZ cross section of a visual field region 23 viewed from the X direction in a virtual space 2. FIG. 仮想空間2において視界領域23をY方向から見たXZ断面を表す図である。3 is a diagram illustrating an XZ cross section of a visual field region 23 viewed from a Y direction in a virtual space 2. FIG. ある実施の形態に従うコントローラ160の概略構成を表す図である。It is a figure showing schematic structure of the controller 160 according to a certain embodiment. ある実施の形態に従うコンピュータ200をモジュール構成として表すブロック図である。FIG. 2 is a block diagram showing a computer 200 according to an embodiment as a module configuration. ある実施の形態に従うHMDシステム100Aが実行する処理を表すフローチャートである。It is a flowchart showing the process which HMD system 100A according to a certain embodiment performs. ある実施の形態に従うHMD装置110上に表示される視界画像300の一例を表す図である。It is a figure showing an example of the visual field image 300 displayed on the HMD apparatus 110 according to a certain embodiment. ある実施の形態に従う仮想オブジェクトの制御を表すフローチャートである。It is a flowchart showing control of the virtual object according to a certain embodiment. ある実施の形態に従う標的オブジェクト400の定義および構成の例を表す図である。FIG. 6 is a diagram illustrating an example of the definition and configuration of a target object 400 according to an embodiment. ある実施の形態に従うフィードバック情報の生成を表すフローチャートである。It is a flowchart showing the production | generation of the feedback information according to a certain embodiment. ある実施の形態に従う標的オブジェクト400のフィードバック動作の計算方法を表す図である。It is a figure showing the calculation method of the feedback operation | movement of the target object 400 according to an embodiment. ある実施の形態に従う操作オブジェクト302と標的オブジェクト400との衝突の演出の一例を表す図である。It is a figure showing an example of the effect of the collision with the operation object 302 and the target object 400 according to a certain embodiment. 変形例に従う標的オブジェクト400のフィードバック動作の計算方法を表す図である。It is a figure showing the calculation method of the feedback operation | movement of the target object 400 according to a modification.

以下、図面を参照しつつ、本開示の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。   Hereinafter, embodiments of the present disclosure will be described with reference to the drawings. In the following description, the same parts are denoted by the same reference numerals. Their names and functions are also the same. Therefore, detailed description thereof will not be repeated.

[HMDシステムの構成]
図1を参照して、HMD(Head Mount Device)システム100の構成について説明する。図1は、ある実施の形態に従うHMDシステム100の構成の概略を表す図である。ある局面において、HMDシステム100は、家庭用のシステムとしてあるいは業務用のシステムとして提供される。
[Configuration of HMD system]
A configuration of an HMD (Head Mount Device) system 100 will be described with reference to FIG. FIG. 1 is a diagram representing an outline of a configuration of an HMD system 100 according to an embodiment. In one aspect, the HMD system 100 is provided as a home system or a business system.

HMDシステム100は、HMD装置110(ユーザ端末)と、HMDセンサ120と、コントローラ160と、コンピュータ200とを備える。HMD装置110は、ディスプレイ112と、カメラ116と、マイク118と、注視センサ140とを含む。コントローラ160は、モーションセンサ130を含み得る。   The HMD system 100 includes an HMD device 110 (user terminal), an HMD sensor 120, a controller 160, and a computer 200. The HMD device 110 includes a display 112, a camera 116, a microphone 118, and a gaze sensor 140. The controller 160 can include a motion sensor 130.

ある局面において、コンピュータ200は、インターネットその他のネットワーク19に接続可能であり、ネットワーク19に接続されているサーバ150その他のコンピュータと通信可能である。別の局面において、HMD装置110は、HMDセンサ120の代わりに、センサ114を含み得る。   In one aspect, the computer 200 can be connected to the Internet and other networks 19, and can communicate with the server 150 and other computers connected to the network 19. In another aspect, the HMD device 110 may include a sensor 114 instead of the HMD sensor 120.

HMD装置110は、ユーザの頭部に装着され、動作中に仮想空間をユーザに提供し得る。より具体的には、HMD装置110は、右目用の画像および左目用の画像をディスプレイ112にそれぞれ表示する。ユーザの各目がそれぞれの画像を視認すると、ユーザは、両目の視差に基づき当該画像を3次元の画像として認識し得る。   The HMD device 110 may be worn on the user's head and provide a virtual space to the user during operation. More specifically, the HMD device 110 displays a right-eye image and a left-eye image on the display 112, respectively. When each eye of the user visually recognizes each image, the user can recognize the image as a three-dimensional image based on the parallax of both eyes.

ディスプレイ112は、例えば、非透過型の表示装置として実現される。ある局面において、ディスプレイ112は、ユーザの両目の前方に位置するようにHMD装置110の本体に配置されている。したがって、ユーザは、ディスプレイ112に表示される3次元画像を視認すると、仮想空間に没入することができる。ある実施の形態において、仮想空間は、例えば、背景、ユーザが操作可能なオブジェクト、およびユーザが選択可能なメニューの画像等を含む。ある実施の形態において、ディスプレイ112は、所謂スマートフォンその他の情報表示端末が備える液晶ディスプレイまたは有機EL(Electro-Luminescence)ディスプレイとして実現され得る。ディスプレイ112は、HMD装置110の本体と一体に構成されてもよいし、別体として構成されてもよい。   The display 112 is realized as a non-transmissive display device, for example. In one aspect, the display 112 is disposed on the main body of the HMD device 110 so as to be positioned in front of both eyes of the user. Therefore, when the user visually recognizes the three-dimensional image displayed on the display 112, the user can be immersed in the virtual space. In one embodiment, the virtual space includes, for example, a background, an object that can be operated by the user, and an image of a menu that can be selected by the user. In an embodiment, the display 112 may be realized as a liquid crystal display or an organic EL (Electro-Luminescence) display included in a so-called smartphone or other information display terminal. The display 112 may be configured integrally with the main body of the HMD device 110 or may be configured as a separate body.

ある局面において、ディスプレイ112は、右目用の画像を表示するためのサブディスプレイと、左目用の画像を表示するためのサブディスプレイとを含み得る。別の局面において、ディスプレイ112は、右目用の画像と左目用の画像とを一体として表示する構成であってもよい。この場合、ディスプレイ112は、高速シャッタを含む。高速シャッタは、画像がいずれか一方の目にのみ認識されるように、右目用の画像と左目用の画像とを交互に表示可能に作動する。   In one aspect, the display 112 may include a sub-display for displaying an image for the right eye and a sub-display for displaying an image for the left eye. In another aspect, the display 112 may be configured to display a right-eye image and a left-eye image together. In this case, the display 112 includes a high-speed shutter. The high-speed shutter operates so that an image for the right eye and an image for the left eye can be displayed alternately so that the image is recognized only by one of the eyes.

カメラ116は、HMD装置110を装着するユーザの顔画像を取得する。カメラ116によって取得された顔画像は、画像解析処理によってユーザの表情を検知するために使用され得る。カメラ116は、例えば、瞳の動き、まぶたの開閉、および眉毛の動き等を検知するために、HMD装置110本体に内蔵された赤外線カメラであってもよい。あるいは、カメラ116は、ユーザの口、頬、および顎等の動きを検知するために、図1に示されるようにHMD装置110の外側に配置された外付けカメラであってもよい。また、カメラ116は、上述した赤外線カメラおよび外付けカメラの両方によって構成されてもよい。   The camera 116 acquires a face image of the user wearing the HMD device 110. The face image acquired by the camera 116 can be used to detect the user's facial expression through image analysis processing. The camera 116 may be, for example, an infrared camera built in the main body of the HMD device 110 in order to detect pupil movement, eyelid opening / closing, eyebrow movement, and the like. Alternatively, the camera 116 may be an external camera disposed outside the HMD device 110 as shown in FIG. 1 in order to detect movements of the user's mouth, cheeks, and jaws. The camera 116 may be configured by both the infrared camera and the external camera described above.

マイク118は、ユーザが発した音声を取得する。マイク118によって取得された音声は、音声解析処理によってユーザの感情を検知するために使用され得る。当該音声は、仮想空間2に対して、音声による指示を与えるためにも使用され得る。また、当該音声は、ネットワーク19およびサーバ150等を介して、他のユーザが使用するHMDシステムに送られ、当該HMDシステムに接続されたスピーカ等から出力されてもよい。これにより、仮想空間を共有するユーザ間での会話(チャット)が実現される。   The microphone 118 acquires the voice uttered by the user. The voice acquired by the microphone 118 can be used to detect a user's emotion by voice analysis processing. The voice can also be used to give a voice instruction to the virtual space 2. Further, the sound may be sent to the HMD system used by another user via the network 19 and the server 150, and output from a speaker or the like connected to the HMD system. Thereby, the conversation (chat) between the users who share a virtual space is implement | achieved.

HMDセンサ120は、複数の光源(図示しない)を含む。各光源は例えば、赤外線を発するLED(Light Emitting Diode)により実現される。HMDセンサ120は、HMD装置110の動きを検出するためのポジショントラッキング機能を有する。HMDセンサ120は、この機能を用いて、現実空間内におけるHMD装置110の位置および傾きを検出する。   The HMD sensor 120 includes a plurality of light sources (not shown). Each light source is realized by, for example, an LED (Light Emitting Diode) that emits infrared rays. The HMD sensor 120 has a position tracking function for detecting the movement of the HMD device 110. The HMD sensor 120 detects the position and inclination of the HMD device 110 in the real space using this function.

なお、別の局面において、HMDセンサ120は、カメラにより実現されてもよい。この場合、HMDセンサ120は、カメラから出力されるHMD装置110の画像情報を用いて、画像解析処理を実行することにより、HMD装置110の位置および傾きを検出することができる。   In another aspect, HMD sensor 120 may be realized by a camera. In this case, the HMD sensor 120 can detect the position and inclination of the HMD device 110 by executing image analysis processing using image information of the HMD device 110 output from the camera.

別の局面において、HMD装置110は、位置検出器として、HMDセンサ120の代わりに、センサ114を備えてもよい。HMD装置110は、センサ114を用いて、HMD装置110自身の位置および傾きを検出し得る。例えば、センサ114が角速度センサ、地磁気センサ、加速度センサ、あるいはジャイロセンサ等である場合、HMD装置110は、HMDセンサ120の代わりに、これらの各センサのいずれかを用いて、自身の位置および傾きを検出し得る。一例として、センサ114が角速度センサである場合、角速度センサは、現実空間におけるHMD装置110の3軸周りの角速度を経時的に検出する。HMD装置110は、各角速度に基づいて、HMD装置110の3軸周りの角度の時間的変化を算出し、さらに、角度の時間的変化に基づいて、HMD装置110の傾きを算出する。また、HMD装置110は、透過型表示装置を備えていてもよい。この場合、当該透過型表示装置は、その透過率を調整することにより、一時的に非透過型の表示装置として構成可能であってもよい。また、視界画像は仮想空間を構成する画像の一部に、現実空間を提示する構成を含んでいてもよい。例えば、HMD装置110に搭載されたカメラで撮影した画像を視界画像の一部に重畳して表示させてもよいし、当該透過型表示装置の一部の透過率を高く設定することにより、視界画像の一部から現実空間を視認可能にしてもよい。   In another aspect, the HMD device 110 may include a sensor 114 instead of the HMD sensor 120 as a position detector. The HMD device 110 can detect the position and inclination of the HMD device 110 itself using the sensor 114. For example, when the sensor 114 is an angular velocity sensor, a geomagnetic sensor, an acceleration sensor, a gyro sensor, or the like, the HMD device 110 uses any one of these sensors instead of the HMD sensor 120 to detect its position and inclination. Can be detected. As an example, when the sensor 114 is an angular velocity sensor, the angular velocity sensor detects angular velocities around the three axes of the HMD device 110 in real space over time. The HMD device 110 calculates the temporal change of the angle around the three axes of the HMD device 110 based on each angular velocity, and further calculates the inclination of the HMD device 110 based on the temporal change of the angle. The HMD device 110 may include a transmissive display device. In this case, the transmissive display device may be temporarily configured as a non-transmissive display device by adjusting the transmittance. Further, the view field image may include a configuration for presenting the real space in a part of the image configuring the virtual space. For example, an image captured by a camera mounted on the HMD device 110 may be displayed so as to be superimposed on a part of the field-of-view image, or a part of the transmission-type display device may be set to have a high transmittance. The real space may be visible from a part of the image.

注視センサ140は、ユーザ190の右目および左目の視線が向けられる方向(視線方向)を検出する。当該方向の検出は、例えば、公知のアイトラッキング機能によって実現される。注視センサ140は、当該アイトラッキング機能を有するセンサにより実現される。ある局面において、注視センサ140は、右目用のセンサおよび左目用のセンサを含むことが好ましい。注視センサ140は、例えば、ユーザ190の右目および左目に赤外光を照射するとともに、照射光に対する角膜および虹彩からの反射光を受けることにより各眼球の回転角を検出するセンサであってもよい。注視センサ140は、検出した各回転角に基づいて、ユーザ190の視線方向を検知することができる。   The gaze sensor 140 detects a direction (gaze direction) in which the gaze of the right eye and the left eye of the user 190 is directed. The detection of the direction is realized by, for example, a known eye tracking function. The gaze sensor 140 is realized by a sensor having the eye tracking function. In one aspect, the gaze sensor 140 preferably includes a right eye sensor and a left eye sensor. The gaze sensor 140 may be, for example, a sensor that irradiates the right eye and the left eye of the user 190 with infrared light and detects the rotation angle of each eyeball by receiving reflected light from the cornea and iris with respect to the irradiated light. . The gaze sensor 140 can detect the line-of-sight direction of the user 190 based on each detected rotation angle.

サーバ150は、コンピュータ200にプログラムを送信し得る。別の局面において、サーバ150は、他のユーザによって使用されるHMD装置に仮想現実を提供するための他のコンピュータ200と通信し得る。例えば、アミューズメント施設において、複数のユーザが参加型のゲームを行う場合、各コンピュータ200は、各ユーザの動作に基づく信号を他のコンピュータ200と通信して、同じ仮想空間において複数のユーザが共通のゲームを楽しむことを可能にする。サーバ150は、一または複数のコンピュータ装置により構成され得る。サーバ150は、後述するコンピュータ200のハードウェア構成と同様のハードウェア構成(プロセッサ、メモリ、ストレージ等)を備え得る。   Server 150 may send a program to computer 200. In another aspect, the server 150 may communicate with other computers 200 for providing virtual reality to HMD devices used by other users. For example, when a plurality of users play a participatory game in an amusement facility, each computer 200 communicates a signal based on each user's operation with another computer 200, and a plurality of users are common in the same virtual space. Allows you to enjoy the game. The server 150 can be composed of one or more computer devices. The server 150 may have a hardware configuration (processor, memory, storage, etc.) similar to the hardware configuration of the computer 200 described later.

コントローラ160は、ユーザ190からコンピュータ200への命令の入力を受け付ける。ある局面において、コントローラ160は、ユーザ190によって把持可能に構成される。別の局面において、コントローラ160は、ユーザ190の身体あるいは衣類の一部に装着可能に構成される。別の局面において、コントローラ160は、コンピュータ200から送られる信号に基づいて、振動、音、光のうちの少なくともいずれかを出力するように構成されてもよい。別の局面において、コントローラ160は、仮想空間に配置されるオブジェクトの位置および動き等を制御するためにユーザ190によって与えられる操作を受け付ける。   The controller 160 receives input of commands from the user 190 to the computer 200. In one aspect, the controller 160 is configured to be gripped by the user 190. In another aspect, the controller 160 is configured to be attachable to the body of the user 190 or a part of clothing. In another aspect, the controller 160 may be configured to output at least one of vibration, sound, and light based on a signal sent from the computer 200. In another aspect, the controller 160 receives an operation given by the user 190 in order to control the position and movement of an object arranged in the virtual space.

モーションセンサ130は、ある局面において、ユーザの手に取り付けられて、ユーザの手の動きを検出する。例えば、モーションセンサ130は、手の回転速度、回転数等を検出する。検出された信号は、コンピュータ200に送られる。モーションセンサ130は、例えば、手袋型のコントローラ160に設けられている。ある実施の形態において、現実空間における安全のため、コントローラ160は、手袋型のようにユーザ190の手に装着されることにより容易に飛んで行かないものに装着されるのが望ましい。別の局面において、ユーザ190に装着されないセンサがユーザ190の手の動きを検出してもよい。例えば、ユーザ190を撮影するカメラの信号が、ユーザ190の動作を表す信号として、コンピュータ200に入力されてもよい。モーションセンサ130とコンピュータ200とは、有線により、または無線により互いに接続される。無線の場合、通信形態は特に限られず、例えば、Bluetooth(登録商標)その他の公知の通信手法が用いられる。   In one aspect, the motion sensor 130 is attached to the user's hand and detects the movement of the user's hand. For example, the motion sensor 130 detects the rotation speed, rotation speed, etc. of the hand. The detected signal is sent to the computer 200. The motion sensor 130 is provided in a glove-type controller 160, for example. In some embodiments, for safety in real space, it is desirable that the controller 160 be mounted on something that does not fly easily by being mounted on the hand of the user 190, such as a glove shape. In another aspect, a sensor that is not worn by the user 190 may detect the hand movement of the user 190. For example, a signal from a camera that captures the user 190 may be input to the computer 200 as a signal representing the operation of the user 190. The motion sensor 130 and the computer 200 are connected to each other by wire or wirelessly. In the case of wireless communication, the communication form is not particularly limited, and for example, Bluetooth (registered trademark) or other known communication methods are used.

[ハードウェア構成]
図2を参照して、本実施の形態に係るコンピュータ200について説明する。図2は、一局面に従うコンピュータ200のハードウェア構成の一例を表すブロック図である。コンピュータ200は、主たる構成要素として、プロセッサ10と、メモリ11と、ストレージ12と、入出力インターフェース13と、通信インターフェース14とを備える。各構成要素は、それぞれ、バス15に接続されている。
[Hardware configuration]
A computer 200 according to the present embodiment will be described with reference to FIG. FIG. 2 is a block diagram illustrating an example of a hardware configuration of computer 200 according to one aspect. The computer 200 includes a processor 10, a memory 11, a storage 12, an input / output interface 13, and a communication interface 14 as main components. Each component is connected to the bus 15.

プロセッサ10は、コンピュータ200に与えられる信号に基づいて、あるいは、予め定められた条件が成立したことに基づいて、メモリ11またはストレージ12に格納されているプログラムに含まれる一連の命令を実行する。ある局面において、プロセッサ10は、CPU(Central Processing Unit)、MPU(Micro Processor Unit)、FPGA(Field-Programmable Gate Array)その他のデバイスとして実現される。   The processor 10 executes a series of instructions included in the program stored in the memory 11 or the storage 12 based on a signal given to the computer 200 or based on the establishment of a predetermined condition. In one aspect, the processor 10 is realized as a CPU (Central Processing Unit), an MPU (Micro Processor Unit), an FPGA (Field-Programmable Gate Array), or other device.

メモリ11は、プログラムおよびデータを一時的に保存する。プログラムは、例えば、ストレージ12からロードされる。メモリ11に保存されるデータは、コンピュータ200に入力されたデータと、プロセッサ10によって生成されたデータとを含む。ある局面において、メモリ11は、RAM(Random Access Memory)その他の揮発性メモリとして実現される。   The memory 11 temporarily stores programs and data. The program is loaded from the storage 12, for example. Data stored in the memory 11 includes data input to the computer 200 and data generated by the processor 10. In one aspect, the memory 11 is realized as a RAM (Random Access Memory) or other volatile memory.

ストレージ12は、プログラムおよびデータを永続的に保持する。ストレージ12は、例えば、ROM(Read-Only Memory)、ハードディスク装置、フラッシュメモリ、その他の不揮発性記憶装置として実現される。ストレージ12に格納されるプログラムは、HMDシステム100において仮想空間を提供するためのプログラム、シミュレーションプログラム、ゲームプログラム、ユーザ認証プログラム、および他のコンピュータ200との通信を実現するためのプログラム等を含む。ストレージ12に格納されるデータは、仮想空間を規定するためのデータおよびオブジェクト等を含む。   The storage 12 holds programs and data permanently. The storage 12 is realized as, for example, a ROM (Read-Only Memory), a hard disk device, a flash memory, and other nonvolatile storage devices. The programs stored in the storage 12 include a program for providing a virtual space in the HMD system 100, a simulation program, a game program, a user authentication program, a program for realizing communication with another computer 200, and the like. The data stored in the storage 12 includes data and objects for defining the virtual space.

なお、別の局面において、ストレージ12は、メモリカードのように着脱可能な記憶装置として実現されてもよい。さらに別の局面において、コンピュータ200に内蔵されたストレージ12の代わりに、外部の記憶装置に保存されているプログラムおよびデータを使用する構成が使用されてもよい。このような構成によれば、例えば、アミューズメント施設のように複数のHMDシステム100が使用される場面において、プログラムおよびデータ等の更新を一括して行うことが可能になる。   In another aspect, the storage 12 may be realized as a removable storage device such as a memory card. In still another aspect, a configuration using a program and data stored in an external storage device may be used instead of the storage 12 built in the computer 200. According to such a configuration, for example, in a scene where a plurality of HMD systems 100 are used like an amusement facility, it is possible to update programs and data in a batch.

ある実施の形態において、入出力インターフェース13は、HMD装置110、HMDセンサ120またはモーションセンサ130との間で信号を通信する。ある局面において、入出力インターフェース13は、USB(Universal Serial Bus)インターフェース、DVI(Digital Visual Interface)、HDMI(登録商標)(High-Definition Multimedia Interface)その他の端子を用いて実現される。なお、入出力インターフェース13は上述のものに限られない。例えば、入出力インターフェース13は、Bluetooth(登録商標)等の無線通信インターフェースを含み得る。   In some embodiments, the input / output interface 13 communicates signals with the HMD device 110, the HMD sensor 120, or the motion sensor 130. In one aspect, the input / output interface 13 is realized using a USB (Universal Serial Bus) interface, a DVI (Digital Visual Interface), an HDMI (registered trademark) (High-Definition Multimedia Interface), or other terminals. The input / output interface 13 is not limited to the above. For example, the input / output interface 13 may include a wireless communication interface such as Bluetooth (registered trademark).

ある実施の形態において、入出力インターフェース13は、さらに、コントローラ160と通信し得る。例えば、入出力インターフェース13は、モーションセンサ130から出力された信号の入力を受ける。別の局面において、入出力インターフェース13は、プロセッサ10から出力された命令を、コントローラ160に送る。当該命令は、振動、音声出力、発光等をコントローラ160に指示する。コントローラ160は、当該命令を受信すると、その命令に応じて、振動、音声出力または発光のいずれかを実行する。   In certain embodiments, the input / output interface 13 may further communicate with the controller 160. For example, the input / output interface 13 receives an input of a signal output from the motion sensor 130. In another aspect, the input / output interface 13 sends an instruction output from the processor 10 to the controller 160. The command instructs the controller 160 to vibrate, output sound, emit light, and the like. When the controller 160 receives the command, the controller 160 executes vibration, sound output, or light emission according to the command.

通信インターフェース14は、ネットワーク19に接続されて、ネットワーク19に接続されている他のコンピュータ(例えば、サーバ150)と通信する。ある局面において、通信インターフェース14は、例えば、LAN(Local Area Network)その他の有線通信インターフェース、あるいは、WiFi(Wireless Fidelity)、Bluetooth(登録商標)、NFC(Near Field Communication)その他の無線通信インターフェースとして実現される。なお、通信インターフェース14は上述のものに限られない。   The communication interface 14 is connected to the network 19 and communicates with other computers (for example, the server 150) connected to the network 19. In one aspect, the communication interface 14 is realized as, for example, a local area network (LAN) or other wired communication interface, or a wireless communication interface such as WiFi (Wireless Fidelity), Bluetooth (registered trademark), NFC (Near Field Communication), or the like. Is done. The communication interface 14 is not limited to the above.

ある局面において、プロセッサ10は、ストレージ12にアクセスし、ストレージ12に格納されている1つ以上のプログラムをメモリ11にロードし、当該プログラムに含まれる一連の命令を実行する。当該1つ以上のプログラムは、コンピュータ200のオペレーティングシステム、仮想空間を提供するためのアプリケーションプログラム、コントローラ160を用いて仮想空間で実行可能なゲームソフトウェア等を含み得る。プロセッサ10は、入出力インターフェース13を介して、仮想空間を提供するための信号をHMD装置110に送る。HMD装置110は、その信号に基づいてディスプレイ112に映像を表示する。   In one aspect, the processor 10 accesses the storage 12, loads one or more programs stored in the storage 12 into the memory 11, and executes a series of instructions included in the program. The one or more programs may include an operating system of the computer 200, an application program for providing a virtual space, game software that can be executed in the virtual space using the controller 160, and the like. The processor 10 sends a signal for providing a virtual space to the HMD device 110 via the input / output interface 13. The HMD device 110 displays an image on the display 112 based on the signal.

サーバ150は、ネットワーク19を介して少なくとも一つのHMDシステム100の各々の制御装置と接続される。図2に示される例では、サーバ150は、HMD装置110Aを有するHMDシステム100Aと、HMD装置110Bを有するHMDシステム100Bと、HMD装置110Cを有するHMDシステム100Cとを含む複数のHMDシステム100を互いに通信可能に接続する。これにより、共通の仮想空間を用いた仮想体験が各HMDシステムを使用するユーザに提供される。なお、HMDシステム100A、HMDシステム100B、HMDシステム100C、およびその他のHMDシステム100は、いずれも同様の構成を備える。ただし、各HMDシステム100は、互いに異なる機種であってもよいし、互いに異なる性能(処理性能、およびユーザ動作の検知に関する検知性能等)を有してもよい。   The server 150 is connected to each control device of at least one HMD system 100 via the network 19. In the example shown in FIG. 2, the server 150 connects a plurality of HMD systems 100 including an HMD system 100A having an HMD device 110A, an HMD system 100B having an HMD device 110B, and an HMD system 100C having an HMD device 110C to each other. Connect to enable communication. Thereby, the virtual experience using a common virtual space is provided to the user who uses each HMD system. The HMD system 100A, the HMD system 100B, the HMD system 100C, and the other HMD systems 100 all have the same configuration. However, each HMD system 100 may be a different model, or may have different performance (processing performance, detection performance related to detection of user action, etc.).

なお、図2に示される例では、コンピュータ200がHMD装置110の外部に設けられる構成が示されているが、別の局面において、コンピュータ200は、HMD装置110に内蔵されてもよい。一例として、ディスプレイ112を含む携帯型の情報通信端末(例えば、スマートフォン)がコンピュータ200として機能してもよい。   In the example illustrated in FIG. 2, the configuration in which the computer 200 is provided outside the HMD device 110 is illustrated. However, in another aspect, the computer 200 may be incorporated in the HMD device 110. As an example, a portable information communication terminal (for example, a smartphone) including the display 112 may function as the computer 200.

また、コンピュータ200は、複数のHMD装置110に共通して用いられる構成であってもよい。このような構成によれば、例えば、複数のユーザに同一の仮想空間を提供することもできるので、各ユーザは同一の仮想空間で他のユーザと同一のアプリケーションを楽しむことができる。なお、このような場合、本実施形態における複数のHMDシステム100は、入出力インターフェース13により、コンピュータ200に直接接続されてもよい。また、本実施形態におけるサーバ150の各機能(例えば後述する同期処理等)は、コンピュータ200に実装されてもよい。   Further, the computer 200 may be configured to be used in common for the plurality of HMD devices 110. According to such a configuration, for example, the same virtual space can be provided to a plurality of users, so that each user can enjoy the same application as other users in the same virtual space. In such a case, the plurality of HMD systems 100 in this embodiment may be directly connected to the computer 200 by the input / output interface 13. In addition, each function (for example, synchronization processing described later) of the server 150 in the present embodiment may be implemented in the computer 200.

ある実施の形態において、HMDシステム100では、グローバル座標系が予め設定されている。グローバル座標系は、現実空間における鉛直方向、鉛直方向に直交する水平方向、ならびに、鉛直方向および水平方向の双方に直交する前後方向にそれぞれ平行な、3つの基準方向(軸)を有する。本実施の形態では、グローバル座標系は視点座標系の一つである。そこで、グローバル座標系における水平方向、鉛直方向(上下方向)、および前後方向は、それぞれ、x軸、y軸、z軸と規定される。より具体的には、グローバル座標系において、x軸は現実空間の水平方向に平行である。y軸は、現実空間の鉛直方向に平行である。z軸は現実空間の前後方向に平行である。   In an embodiment, in the HMD system 100, a global coordinate system is set in advance. The global coordinate system has three reference directions (axes) parallel to the vertical direction in the real space, the horizontal direction orthogonal to the vertical direction, and the front-rear direction orthogonal to both the vertical direction and the horizontal direction. In the present embodiment, the global coordinate system is one of the viewpoint coordinate systems. Therefore, the horizontal direction, the vertical direction (vertical direction), and the front-rear direction in the global coordinate system are defined as an x-axis, a y-axis, and a z-axis, respectively. More specifically, in the global coordinate system, the x axis is parallel to the horizontal direction of the real space. The y axis is parallel to the vertical direction of the real space. The z axis is parallel to the front-rear direction of the real space.

ある局面において、HMDセンサ120は、赤外線センサを含む。赤外線センサが、HMD装置110の各光源から発せられた赤外線をそれぞれ検出すると、HMD装置110の存在を検出する。HMDセンサ120は、さらに、各点の値(グローバル座標系における各座標値)に基づいて、HMD装置110を装着したユーザ190の動きに応じた、現実空間内におけるHMD装置110の位置および傾きを検出する。より詳しくは、HMDセンサ120は、経時的に検出された各値を用いて、HMD装置110の位置および傾きの時間的変化を検出できる。   In one aspect, HMD sensor 120 includes an infrared sensor. When the infrared sensor detects each infrared ray emitted from each light source of the HMD device 110, the presence of the HMD device 110 is detected. The HMD sensor 120 further determines the position and inclination of the HMD device 110 in the real space according to the movement of the user 190 wearing the HMD device 110 based on the value of each point (each coordinate value in the global coordinate system). To detect. More specifically, the HMD sensor 120 can detect temporal changes in the position and tilt of the HMD device 110 using each value detected over time.

グローバル座標系は現実空間の座標系と平行である。したがって、HMDセンサ120によって検出されたHMD装置110の各傾きは、グローバル座標系におけるHMD装置110の3軸周りの各傾きに相当する。HMDセンサ120は、グローバル座標系におけるHMD装置110の傾きに基づき、uvw視野座標系をHMD装置110に設定する。HMD装置110に設定されるuvw視野座標系は、HMD装置110を装着したユーザ190が仮想空間において物体を見る際の視点座標系に対応する。   The global coordinate system is parallel to the real space coordinate system. Therefore, each inclination of the HMD device 110 detected by the HMD sensor 120 corresponds to each inclination around the three axes of the HMD device 110 in the global coordinate system. The HMD sensor 120 sets the uvw visual field coordinate system to the HMD device 110 based on the inclination of the HMD device 110 in the global coordinate system. The uvw visual field coordinate system set in the HMD device 110 corresponds to a viewpoint coordinate system when the user 190 wearing the HMD device 110 views an object in the virtual space.

[uvw視野座標系]
図3を参照して、uvw視野座標系について説明する。図3は、ある実施の形態に従うHMD装置110に設定されるuvw視野座標系を概念的に表す図である。HMDセンサ120は、HMD装置110の起動時に、グローバル座標系におけるHMD装置110の位置および傾きを検出する。プロセッサ10は、検出された値に基づいて、uvw視野座標系をHMD装置110に設定する。
[Uvw visual field coordinate system]
The uvw visual field coordinate system will be described with reference to FIG. FIG. 3 is a diagram conceptually showing a uvw visual field coordinate system set in HMD device 110 according to an embodiment. The HMD sensor 120 detects the position and inclination of the HMD device 110 in the global coordinate system when the HMD device 110 is activated. The processor 10 sets the uvw visual field coordinate system in the HMD device 110 based on the detected value.

図3に示されるように、HMD装置110は、HMD装置110を装着したユーザの頭部を中心(原点)とした3次元のuvw視野座標系を設定する。より具体的には、HMD装置110は、グローバル座標系を規定する水平方向、鉛直方向、および前後方向(x軸、y軸、z軸)を、グローバル座標系内においてHMD装置110の各軸周りの傾きだけ各軸周りにそれぞれ傾けることによって新たに得られる3つの方向を、HMD装置110におけるuvw視野座標系のピッチ方向(u軸)、ヨー方向(v軸)、およびロール方向(w軸)として設定する。   As shown in FIG. 3, the HMD device 110 sets a three-dimensional uvw visual field coordinate system with the head (origin) of the user wearing the HMD device 110 as the center (origin). More specifically, the HMD device 110 uses the horizontal direction, the vertical direction, and the front-rear direction (x axis, y axis, z axis) that define the global coordinate system around each axis of the HMD device 110 in the global coordinate system. The three new directions obtained by inclining around the respective axes by the inclination of the pitch are the pitch direction (u-axis), yaw direction (v-axis), and roll direction (w-axis) of the uvw visual field coordinate system in the HMD device 110. Set as.

ある局面において、HMD装置110を装着したユーザ190が直立し、かつ、正面を視認している場合、プロセッサ10は、グローバル座標系に平行なuvw視野座標系をHMD装置110に設定する。この場合、グローバル座標系における水平方向(x軸)、鉛直方向(y軸)、および前後方向(z軸)は、HMD装置110におけるuvw視野座標系のピッチ方向(u軸)、ヨー方向(v軸)、およびロール方向(w軸)に一致する。   In one aspect, when the user 190 wearing the HMD device 110 stands upright and is viewing the front, the processor 10 sets the uvw visual field coordinate system parallel to the global coordinate system in the HMD device 110. In this case, the horizontal direction (x-axis), vertical direction (y-axis), and front-rear direction (z-axis) in the global coordinate system are the pitch direction (u-axis) and yaw direction (v Axis) and the roll direction (w-axis).

uvw視野座標系がHMD装置110に設定された後、HMDセンサ120は、HMD装置110の動きに基づいて、設定されたuvw視野座標系におけるHMD装置110の傾き(傾きの変化量)を検出できる。この場合、HMDセンサ120は、HMD装置110の傾きとして、uvw視野座標系におけるHMD装置110のピッチ角(θu)、ヨー角(θv)、およびロール角(θw)をそれぞれ検出する。ピッチ角(θu)は、uvw視野座標系におけるピッチ方向周りのHMD装置110の傾き角度を表す。ヨー角(θv)は、uvw視野座標系におけるヨー方向周りのHMD装置110の傾き角度を表す。ロール角(θw)は、uvw視野座標系におけるロール方向周りのHMD装置110の傾き角度を表す。   After the uvw visual field coordinate system is set in the HMD device 110, the HMD sensor 120 can detect the inclination of the HMD device 110 in the set uvw visual field coordinate system based on the movement of the HMD device 110. . In this case, the HMD sensor 120 detects the pitch angle (θu), yaw angle (θv), and roll angle (θw) of the HMD device 110 in the uvw visual field coordinate system as the inclination of the HMD device 110. The pitch angle (θu) represents the tilt angle of the HMD device 110 around the pitch direction in the uvw visual field coordinate system. The yaw angle (θv) represents the tilt angle of the HMD device 110 around the yaw direction in the uvw visual field coordinate system. The roll angle (θw) represents the tilt angle of the HMD device 110 around the roll direction in the uvw visual field coordinate system.

HMDセンサ120は、検出されたHMD装置110の傾き角度に基づいて、HMD装置110が動いた後のHMD装置110におけるuvw視野座標系を、HMD装置110に設定する。HMD装置110と、HMD装置110のuvw視野座標系との関係は、HMD装置110の位置および傾きに関わらず、常に一定である。HMD装置110の位置および傾きが変わると、当該位置および傾きの変化に連動して、グローバル座標系におけるHMD装置110のuvw視野座標系の位置および傾きが変化する。   Based on the detected tilt angle of the HMD device 110, the HMD sensor 120 sets the uvw visual field coordinate system in the HMD device 110 after the HMD device 110 has moved to the HMD device 110. The relationship between the HMD device 110 and the uvw visual field coordinate system of the HMD device 110 is always constant regardless of the position and inclination of the HMD device 110. When the position and inclination of the HMD device 110 change, the position and inclination of the uvw visual field coordinate system of the HMD device 110 in the global coordinate system change in conjunction with the change of the position and inclination.

ある局面において、HMDセンサ120は、赤外線センサからの出力に基づいて取得される赤外線の光強度および複数の点間の相対的な位置関係(例えば、各点間の距離など)に基づいて、HMD装置110の現実空間内における位置を、HMDセンサ120に対する相対位置として特定してもよい。また、プロセッサ10は、特定された相対位置に基づいて、現実空間内(グローバル座標系)におけるHMD装置110のuvw視野座標系の原点を決定してもよい。   In one aspect, the HMD sensor 120 is based on the infrared light intensity acquired based on the output from the infrared sensor and the relative positional relationship between a plurality of points (for example, the distance between the points). The position of the device 110 in the real space may be specified as a relative position with respect to the HMD sensor 120. Further, the processor 10 may determine the origin of the uvw visual field coordinate system of the HMD device 110 in the real space (global coordinate system) based on the specified relative position.

[仮想空間]
図4を参照して、仮想空間についてさらに説明する。図4は、ある実施の形態に従う仮想空間2を表現する一態様を概念的に表す図である。仮想空間2は、中心21の360度方向の全体を覆う全天球状の構造を有する。図4では、説明を複雑にしないために、仮想空間2のうちの上半分の天球が例示されている。仮想空間2では各メッシュが規定される。各メッシュの位置は、仮想空間2に規定されるXYZ座標系における座標値として予め規定されている。コンピュータ200は、仮想空間2に展開可能なコンテンツ(静止画、動画等)を構成する各部分画像を、仮想空間2において対応する各メッシュにそれぞれ対応付けて、ユーザによって視認可能な仮想空間画像22が展開される仮想空間2をユーザに提供する。
[Virtual space]
The virtual space will be further described with reference to FIG. FIG. 4 is a diagram conceptually showing one aspect of expressing virtual space 2 according to an embodiment. The virtual space 2 has a spherical structure that covers the entire 360 ° direction of the center 21. In FIG. 4, the upper half of the celestial sphere in the virtual space 2 is illustrated in order not to complicate the description. In the virtual space 2, each mesh is defined. The position of each mesh is defined in advance as coordinate values in the XYZ coordinate system defined in the virtual space 2. The computer 200 associates each partial image constituting content (still image, moving image, etc.) that can be developed in the virtual space 2 with each corresponding mesh in the virtual space 2, and the virtual space image 22 that can be visually recognized by the user. Is provided to the user.

ある局面において、仮想空間2では、中心21を原点とするXYZ座標系が規定される。XYZ座標系は、例えば、グローバル座標系に平行である。XYZ座標系は視点座標系の一種であるため、XYZ座標系における水平方向、鉛直方向(上下方向)、および前後方向は、それぞれX軸、Y軸、Z軸として規定される。したがって、XYZ座標系のX軸(水平方向)がグローバル座標系のx軸と平行であり、XYZ座標系のY軸(鉛直方向)がグローバル座標系のy軸と平行であり、XYZ座標系のZ軸(前後方向)がグローバル座標系のz軸と平行である。仮想空間2内の各位置は、XYZ座標系における座標値によって一意に特定される。   In one aspect, the virtual space 2 defines an XYZ coordinate system with the center 21 as the origin. The XYZ coordinate system is, for example, parallel to the global coordinate system. Since the XYZ coordinate system is a kind of viewpoint coordinate system, the horizontal direction, vertical direction (vertical direction), and front-rear direction in the XYZ coordinate system are defined as an X axis, a Y axis, and a Z axis, respectively. Therefore, the X axis (horizontal direction) of the XYZ coordinate system is parallel to the x axis of the global coordinate system, the Y axis (vertical direction) of the XYZ coordinate system is parallel to the y axis of the global coordinate system, and The Z axis (front-rear direction) is parallel to the z axis of the global coordinate system. Each position in the virtual space 2 is uniquely specified by a coordinate value in the XYZ coordinate system.

HMD装置110の起動時、すなわちHMD装置110の初期状態において、仮想カメラ1は、例えば仮想空間2の中心21に配置される。仮想カメラ1は、現実空間におけるHMD装置110の動きに連動して、仮想空間2を同様に移動する。これにより、現実空間におけるHMD装置110の位置および傾きの変化が、仮想空間2において同様に再現される。   When the HMD device 110 is activated, that is, in the initial state of the HMD device 110, the virtual camera 1 is disposed at the center 21 of the virtual space 2, for example. The virtual camera 1 similarly moves in the virtual space 2 in conjunction with the movement of the HMD device 110 in the real space. Thereby, changes in the position and inclination of the HMD device 110 in the real space are similarly reproduced in the virtual space 2.

仮想カメラ1には、HMD装置110の場合と同様に、uvw視野座標系が規定される。仮想空間2における仮想カメラ1のuvw視野座標系は、現実空間(グローバル座標系)におけるHMD装置110のuvw視野座標系に連動するように規定されている。したがって、HMD装置110の傾きが変化すると、それに応じて、仮想カメラ1の傾きも変化する。また、仮想カメラ1は、HMD装置110を装着したユーザの現実空間における移動に連動して、仮想空間2において移動することもできる。   As in the case of the HMD device 110, the uvw visual field coordinate system is defined for the virtual camera 1. The uvw visual field coordinate system of the virtual camera 1 in the virtual space 2 is defined so as to be linked to the uvw visual field coordinate system of the HMD device 110 in the real space (global coordinate system). Therefore, when the inclination of the HMD device 110 changes, the inclination of the virtual camera 1 also changes accordingly. The virtual camera 1 can also move in the virtual space 2 in conjunction with the movement of the user wearing the HMD device 110 in the real space.

仮想カメラ1の向きは、仮想カメラ1の位置および傾きに応じて決まるので、ユーザが仮想空間画像22を視認する際に基準となる視線(基準視線5)は、仮想カメラ1の向きに応じて決まる。コンピュータ200のプロセッサ10は、基準視線5に基づいて、仮想空間2における視界領域23を規定する。視界領域23は、仮想空間2のうち、HMD装置110を装着したユーザの視界に対応する。   Since the orientation of the virtual camera 1 is determined according to the position and inclination of the virtual camera 1, the reference line of sight (reference line of sight 5) when the user visually recognizes the virtual space image 22 depends on the orientation of the virtual camera 1. Determined. The processor 10 of the computer 200 defines the visual field region 23 in the virtual space 2 based on the reference line of sight 5. The view area 23 corresponds to the view of the user wearing the HMD device 110 in the virtual space 2.

注視センサ140によって検出されるユーザ190の視線方向は、ユーザ190が物体を視認する際の視点座標系における方向である。HMD装置110のuvw視野座標系は、ユーザ190がディスプレイ112を視認する際の視点座標系に等しい。また、仮想カメラ1のuvw視野座標系は、HMD装置110のuvw視野座標系に連動している。したがって、ある局面に従うHMDシステム100は、注視センサ140によって検出されたユーザ190の視線方向を、仮想カメラ1のuvw視野座標系におけるユーザの視線方向とみなすことができる。   The gaze direction of the user 190 detected by the gaze sensor 140 is a direction in the viewpoint coordinate system when the user 190 visually recognizes the object. The uvw visual field coordinate system of the HMD device 110 is equal to the viewpoint coordinate system when the user 190 visually recognizes the display 112. The uvw visual field coordinate system of the virtual camera 1 is linked to the uvw visual field coordinate system of the HMD device 110. Therefore, the HMD system 100 according to a certain aspect can regard the line-of-sight direction of the user 190 detected by the gaze sensor 140 as the line-of-sight direction of the user in the uvw visual field coordinate system of the virtual camera 1.

[ユーザの視線]
図5を参照して、ユーザの視線方向の決定について説明する。図5は、ある実施の形態に従うHMD装置110を装着するユーザ190の頭部を上から表した図である。
[User's line of sight]
With reference to FIG. 5, determination of the user's line-of-sight direction will be described. FIG. 5 is a diagram showing the head of user 190 wearing HMD device 110 according to an embodiment from above.

ある局面において、注視センサ140は、ユーザ190の右目および左目の各視線を検出する。ある局面において、ユーザ190が近くを見ている場合、注視センサ140は、視線R1およびL1を検出する。別の局面において、ユーザ190が遠くを見ている場合、注視センサ140は、視線R2およびL2を検出する。この場合、ロール方向wに対して視線R2およびL2がなす角度は、ロール方向wに対して視線R1およびL1がなす角度よりも小さい。注視センサ140は、検出結果をコンピュータ200に送信する。   In one aspect, gaze sensor 140 detects each line of sight of user 190's right eye and left eye. In a certain aspect, when the user 190 is looking near, the gaze sensor 140 detects the lines of sight R1 and L1. In another aspect, when the user 190 is looking far away, the gaze sensor 140 detects the lines of sight R2 and L2. In this case, the angle formed by the lines of sight R2 and L2 with respect to the roll direction w is smaller than the angle formed by the lines of sight R1 and L1 with respect to the roll direction w. The gaze sensor 140 transmits the detection result to the computer 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が実際に視線を向けている方向に相当する。   When the computer 200 receives the detection values of the lines of sight R1 and L1 from the gaze sensor 140 as the line-of-sight detection result, the computer 200 identifies the point of sight N1 that is the intersection of the lines of sight R1 and L1 based on the detection value. On the other hand, when the detected values of the lines of sight R2 and L2 are received from the gaze sensor 140, the computer 200 specifies the intersection of the lines of sight R2 and L2 as the point of sight. The computer 200 specifies the line-of-sight direction N0 of the user 190 based on the specified position of the gazing point N1. For example, the computer 200 detects the direction in which the straight line passing through the midpoint of the straight line connecting the right eye R and the left eye L of the user 190 and the gazing point N1 extends as the line-of-sight direction N0. The line-of-sight direction N0 is a direction in which the user 190 is actually pointing the line of sight with both eyes. The line-of-sight direction N0 corresponds to the direction in which the user 190 actually directs his / her line of sight with respect to the field-of-view area 23.

また、別の局面において、HMDシステム100は、テレビジョン放送受信チューナを備えてもよい。このような構成によれば、HMDシステム100は、仮想空間2においてテレビ番組を表示することができる。   In another aspect, HMD system 100 may include a television broadcast receiving tuner. According to such a configuration, the HMD system 100 can display a television program in the virtual space 2.

さらに別の局面において、HMDシステム100は、インターネットに接続するための通信回路、あるいは、電話回線に接続するための通話機能を備えていてもよい。   In still another aspect, the HMD system 100 may include a communication circuit for connecting to the Internet or a call function for connecting to a telephone line.

[視界領域]
図6および図7を参照して、視界領域23について説明する。図6は、仮想空間2において視界領域23をX方向から見たYZ断面を表す図である。図7は、仮想空間2において視界領域23をY方向から見たXZ断面を表す図である。
[Visibility area]
With reference to FIGS. 6 and 7, the visual field region 23 will be described. FIG. 6 is a diagram illustrating a YZ cross section of the visual field region 23 viewed from the X direction in the virtual space 2. FIG. 7 is a diagram illustrating an XZ cross section of the visual field region 23 viewed from the Y direction in the virtual space 2.

図6に示されるように、YZ断面における視界領域23は、領域24を含む。領域24は、仮想カメラ1の基準視線5と仮想空間2のYZ断面とによって定義される。プロセッサ10は、仮想空間2における基準視線5を中心として極角αを含む範囲を、領域24として規定する。   As shown in FIG. 6, the visual field region 23 in the YZ cross section includes a region 24. The region 24 is defined by the reference line of sight 5 of the virtual camera 1 and the YZ cross section of the virtual space 2. The processor 10 defines a range including the polar angle α around the reference line of sight 5 in the virtual space 2 as the region 24.

図7に示されるように、XZ断面における視界領域23は、領域25を含む。領域25は、基準視線5と仮想空間2のXZ断面とによって定義される。プロセッサ10は、仮想空間2における基準視線5を中心とした方位角βを含む範囲を、領域25として規定する。   As shown in FIG. 7, the visual field region 23 in the XZ cross section includes a region 25. The region 25 is defined by the reference line of sight 5 and the XZ cross section of the virtual space 2. The processor 10 defines a range including the azimuth angle β around the reference line of sight 5 in the virtual space 2 as a region 25.

ある局面において、HMDシステム100は、コンピュータ200からの信号に基づいて、視界画像をディスプレイ112に表示させることにより、ユーザ190に仮想空間を提供する。視界画像は、仮想空間画像22のうち視界領域23に重畳する部分に相当する。視界領域23内において仮想カメラ1と仮想空間画像22との間に後述する仮想オブジェクトが配置されている場合、視界画像には当該仮想オブジェクトが含まれる。すなわち、視界画像において、仮想空間画像22よりも手前側にある仮想オブジェクトが仮想空間画像22に重畳して表示される。ユーザ190が、頭に装着したHMD装置110を動かすと、その動きに連動して仮想カメラ1も動く。その結果、仮想空間2における視界領域23の位置が変化する。これにより、ディスプレイ112に表示される視界画像は、仮想空間画像22のうち、仮想空間2においてユーザが向いた方向の視界領域23に重畳する画像に更新される。ユーザは、仮想空間2における所望の方向を視認することができる。   In one aspect, the HMD system 100 provides a virtual space to the user 190 by causing the display 112 to display a view field image based on a signal from the computer 200. The visual field image corresponds to a portion of the virtual space image 22 that is superimposed on the visual field region 23. When a virtual object described later is arranged between the virtual camera 1 and the virtual space image 22 in the view field area 23, the view object image includes the virtual object. That is, in the view field image, the virtual object on the near side of the virtual space image 22 is displayed superimposed on the virtual space image 22. When the user 190 moves the HMD device 110 worn on the head, the virtual camera 1 also moves in conjunction with the movement. As a result, the position of the visual field area 23 in the virtual space 2 changes. As a result, the view image displayed on the display 112 is updated to an image that is superimposed on the view region 23 in the virtual space 2 in the direction in which the user faces in the virtual space image 22. The user can visually recognize a desired direction in the virtual space 2.

ユーザ190は、HMD装置110を装着している間、現実世界を視認することなく、仮想空間2に展開される仮想空間画像22のみを視認できる。そのため、HMDシステム100は、仮想空間2への高い没入感覚をユーザに与えることができる。   The user 190 can visually recognize only the virtual space image 22 developed in the virtual space 2 without visually recognizing the real world while wearing the HMD device 110. Therefore, the HMD system 100 can give the user a high sense of immersion in the virtual space 2.

ある局面において、プロセッサ10は、HMD装置110を装着したユーザ190の現実空間における移動に連動して、仮想空間2において仮想カメラ1を移動し得る。この場合、プロセッサ10は、仮想空間2における仮想カメラ1の位置および傾きに基づいて、HMD装置110のディスプレイ112に投影される画像領域(すなわち、仮想空間2における視界領域23)を特定する。すなわち、仮想カメラ1によって、仮想空間2におけるユーザ190の視野(視界)が定義される。   In one aspect, the processor 10 can move the virtual camera 1 in the virtual space 2 in conjunction with movement of the user 190 wearing the HMD device 110 in real space. In this case, the processor 10 specifies an image region (that is, a view field region 23 in the virtual space 2) projected on the display 112 of the HMD device 110 based on the position and inclination of the virtual camera 1 in the virtual space 2. That is, the visual field (view) of the user 190 in the virtual space 2 is defined by the virtual camera 1.

ある実施の形態に従うと、仮想カメラ1は、二つの仮想カメラ、すなわち、右目用の画像を提供するための仮想カメラと、左目用の画像を提供するための仮想カメラとを含むことが望ましい。また、ユーザ190が3次元の仮想空間2を認識できるように、適切な視差が、二つの仮想カメラに設定されていることが好ましい。本実施の形態においては、仮想カメラ1が二つの仮想カメラを含み、二つの仮想カメラのロール方向が合成されることによって生成されるロール方向(w)がHMD装置110のロール方向(w)に適合されるように構成されているものとして、本開示に係る技術思想を例示する。   According to an embodiment, the virtual camera 1 preferably includes two virtual cameras, that is, a virtual camera for providing an image for the right eye and a virtual camera for providing an image for the left eye. Moreover, it is preferable that appropriate parallax is set in the two virtual cameras so that the user 190 can recognize the three-dimensional virtual space 2. In the present embodiment, the virtual camera 1 includes two virtual cameras, and the roll direction (w) generated by combining the roll directions of the two virtual cameras is the roll direction (w) of the HMD device 110. The technical idea concerning this indication is illustrated as what is constituted so that it may be adapted.

[コントローラ]
図8を参照して、コントローラ160の一例について説明する。図8は、ある実施の形態に従うコントローラ160の概略構成を表す図である。
[controller]
An example of the controller 160 will be described with reference to FIG. FIG. 8 is a diagram showing a schematic configuration of controller 160 according to an embodiment.

図8の状態(A)に示されるように、ある局面において、コントローラ160は、右コントローラ160Rと左コントローラ(図示しない)とを含み得る。右コントローラ160Rは、ユーザ190の右手で操作される。左コントローラは、ユーザ190の左手で操作される。ある局面において、右コントローラ160Rと左コントローラとは、別個の装置として対称に構成される。したがって、ユーザ190は、右コントローラ160Rを把持した右手と、左コントローラを把持した左手とをそれぞれ自由に動かすことができる。別の局面において、コントローラ160は両手の操作を受け付ける一体型のコントローラであってもよい。以下、右コントローラ160Rについて説明する。   As shown in the state (A) of FIG. 8, in one aspect, the controller 160 may include a right controller 160R and a left controller (not shown). The right controller 160R is operated with the right hand of the user 190. The left controller is operated with the left hand of the user 190. In one aspect, the right controller 160R and the left controller are configured symmetrically as separate devices. Therefore, the user 190 can freely move the right hand holding the right controller 160R and the left hand holding the left controller. In another aspect, the controller 160 may be an integrated controller that receives operations of both hands. Hereinafter, the right controller 160R will be described.

右コントローラ160Rは、グリップ30と、フレーム31と、天面32とを備える。グリップ30は、ユーザ190の右手によって把持されるように構成されている。例えば、グリップ30は、ユーザ190の右手の掌と3本の指(中指、薬指、小指)とによって保持され得る。   The right controller 160R includes a grip 30, a frame 31, and a top surface 32. The grip 30 is configured to be held by the right hand of the user 190. For example, the grip 30 can be held by the palm of the right hand of the user 190 and three fingers (middle finger, ring finger, little finger).

グリップ30は、ボタン33,34と、モーションセンサ130とを含む。ボタン33は、グリップ30の側面に配置され、右手の中指による操作を受け付ける。ボタン34は、グリップ30の前面に配置され、右手の人差し指による操作を受け付ける。ある局面において、ボタン33,34は、トリガー式のボタンとして構成される。モーションセンサ130は、グリップ30の筐体に内蔵されている。なお、ユーザ190の動作がカメラその他の装置によってユーザ190の周りから検出可能である場合には、グリップ30は、モーションセンサ130を備えなくてもよい。   The grip 30 includes buttons 33 and 34 and a motion sensor 130. The button 33 is disposed on the side surface of the grip 30 and receives an operation with the middle finger of the right hand. The button 34 is disposed in front of the grip 30 and accepts an operation with the index finger of the right hand. In one aspect, the buttons 33 and 34 are configured as trigger buttons. The motion sensor 130 is built in the housing of the grip 30. Note that when the operation of the user 190 can be detected from around the user 190 by a camera or other device, the grip 30 may not include the motion sensor 130.

フレーム31は、その円周方向に沿って配置された複数の赤外線LED35を含む。赤外線LED35は、コントローラ160を使用するプログラムの実行中に、当該プログラムの進行に合わせて赤外線を発光する。赤外線LED35から発せられた赤外線は、右コントローラ160Rと左コントローラとの各位置および姿勢(傾き、向き)等を検出するために使用され得る。図8に示される例では、二列に配置された赤外線LED35が示されているが、配列の数は図8に示されるものに限られない。一列あるいは3列以上の配列が使用されてもよい。   The frame 31 includes a plurality of infrared LEDs 35 arranged along the circumferential direction. The infrared LED 35 emits infrared light in accordance with the progress of the program during the execution of the program using the controller 160. The infrared rays emitted from the infrared LED 35 can be used to detect the positions and postures (tilt, orientation), etc., of the right controller 160R and the left controller. In the example shown in FIG. 8, infrared LEDs 35 arranged in two rows are shown, but the number of arrays is not limited to that shown in FIG. An array of one or more columns may be used.

天面32は、ボタン36,37と、アナログスティック38とを備える。ボタン36,37は、プッシュ式ボタンとして構成される。ボタン36,37は、ユーザ190の右手の親指による操作を受け付ける。アナログスティック38は、ある局面において、初期位置(ニュートラルの位置)から360度任意の方向への操作を受け付ける。当該操作は、例えば、仮想空間2に配置されるオブジェクトを移動させるための操作を含む。   The top surface 32 includes buttons 36 and 37 and an analog stick 38. The buttons 36 and 37 are configured as push buttons. The buttons 36 and 37 receive an operation with the thumb of the right hand of the user 190. In one aspect, the analog stick 38 accepts an operation in an arbitrary direction of 360 degrees from the initial position (neutral position). The operation includes, for example, an operation for moving an object arranged in the virtual space 2.

ある局面において、右コントローラ160Rおよび左コントローラは、赤外線LED35その他の部材を駆動するための電池を含む。電池は、充電式、ボタン型、乾電池型等を含むが、これらに限定されない。別の局面において、右コントローラ160Rおよび左コントローラは、例えば、コンピュータ200のUSBインターフェースに接続され得る。この場合、右コントローラ160Rおよび左コントローラは、電池を必要としない。   In one aspect, the right controller 160R and the left controller include a battery for driving the infrared LED 35 and other members. The battery includes, but is not limited to, a rechargeable type, a button type, a dry battery type, and the like. In another aspect, the right controller 160R and the left controller may be connected to a USB interface of the computer 200, for example. In this case, the right controller 160R and the left controller do not require batteries.

図8の状態(A)および状態(B)に示されるように、例えば、ユーザ190の右手810に対して、ヨー、ロール、ピッチの各方向が規定される。ユーザ190が親指と人差し指とを伸ばした場合に、親指の伸びる方向がヨー方向、人差し指の伸びる方向がロール方向、ヨー方向の軸およびロール方向の軸によって規定される平面に垂直な方向がピッチ方向として規定される。   As shown in the state (A) and the state (B) of FIG. 8, for example, the yaw, roll, and pitch directions are defined for the right hand 810 of the user 190. When the user 190 extends the thumb and index finger, the direction in which the thumb extends is the yaw direction, the direction in which the index finger extends is the roll direction, and the direction perpendicular to the plane defined by the yaw direction axis and the roll direction axis is the pitch direction. Is defined as

[HMD装置の制御装置]
図9を参照して、HMD装置110の制御装置について説明する。ある実施の形態において、制御装置は周知の構成を有するコンピュータ200によって実現される。図9は、ある実施の形態に従うコンピュータ200をモジュール構成として表すブロック図である。
[Control device for HMD device]
The control device of the HMD device 110 will be described with reference to FIG. In one embodiment, the control device is realized by a computer 200 having a known configuration. FIG. 9 is a block diagram showing a computer 200 according to an embodiment as a module configuration.

図9に示されるように、コンピュータ200は、表示制御モジュール220と、仮想空間制御モジュール230と、メモリモジュール240と、通信制御モジュール250とを備える。表示制御モジュール220は、サブモジュールとして、仮想カメラ制御モジュール221と、視界領域決定モジュール222と、視界画像生成モジュール223と、基準視線特定モジュール224とを含む。仮想空間制御モジュール230は、サブモジュールとして、仮想空間定義モジュール231と、仮想オブジェクト制御モジュール232と、フィードバックモジュール233とを含む。   As shown in FIG. 9, the computer 200 includes a display control module 220, a virtual space control module 230, a memory module 240, and a communication control module 250. The display control module 220 includes a virtual camera control module 221, a visual field region determination module 222, a visual field image generation module 223, and a reference visual line identification module 224 as submodules. The virtual space control module 230 includes a virtual space definition module 231, a virtual object control module 232, and a feedback module 233 as submodules.

ある実施の形態において、表示制御モジュール220と仮想空間制御モジュール230とは、プロセッサ10によって実現される。別の実施の形態において、複数のプロセッサ10が表示制御モジュール220と仮想空間制御モジュール230として作動してもよい。メモリモジュール240は、メモリ11またはストレージ12によって実現される。通信制御モジュール250は、通信インターフェース14によって実現される。   In an embodiment, the display control module 220 and the virtual space control module 230 are realized by the processor 10. In another embodiment, multiple processors 10 may operate as the display control module 220 and the virtual space control module 230. The memory module 240 is realized by the memory 11 or the storage 12. The communication control module 250 is realized by the communication interface 14.

ある局面において、表示制御モジュール220は、HMD装置110のディスプレイ112における画像表示を制御する。仮想カメラ制御モジュール221は、仮想空間2に仮想カメラ1を配置し、仮想カメラ1の挙動、向き等を制御する。視界領域決定モジュール222は、HMD装置110を装着したユーザの頭の向きに応じて、視界領域23を規定する。視界画像生成モジュール223は、決定された視界領域23に基づいて、ディスプレイ112に表示される視界画像を生成する。基準視線特定モジュール224は、注視センサ140からの信号に基づいて、ユーザ190の視線を特定する。   In one aspect, the display control module 220 controls image display on the display 112 of the HMD device 110. The virtual camera control module 221 arranges the virtual camera 1 in the virtual space 2 and controls the behavior, orientation, and the like of the virtual camera 1. The view area determination module 222 defines the view area 23 according to the orientation of the head of the user wearing the HMD device 110. The view image generation module 223 generates a view image to be displayed on the display 112 based on the determined view area 23. The reference line-of-sight identifying module 224 identifies the line of sight of the user 190 based on the signal from the gaze sensor 140.

仮想空間制御モジュール230は、ユーザ190に提供される仮想空間2を制御する。仮想空間定義モジュール231は、仮想空間2を表す仮想空間データを生成することにより、HMDシステム100における仮想空間2を規定する。   The virtual space control module 230 controls the virtual space 2 provided to the user 190. The virtual space definition module 231 defines the virtual space 2 in the HMD system 100 by generating virtual space data representing the virtual space 2.

仮想オブジェクト制御モジュール232は、後述するオブジェクト情報242に基づいて、仮想空間2に配置される仮想的なオブジェクトである仮想オブジェクトを生成する。また、仮想オブジェクト制御モジュール232は、仮想空間2における仮想オブジェクトの動作(移動および状態変化等)も制御する。   The virtual object control module 232 generates a virtual object that is a virtual object placed in the virtual space 2 based on object information 242 described later. The virtual object control module 232 also controls the movement (movement, state change, etc.) of the virtual object in the virtual space 2.

仮想オブジェクトは、仮想空間2に配置されるオブジェクト全般である。仮想オブジェクトは、例えば、ゲームのストーリーの進行に従って配置される森、山その他を含む風景、動物等を含み得る。また、仮想オブジェクトは、仮想空間2におけるユーザ190の分身としてのアバターおよびユーザ190により操作されるゲームのキャラクタ(プレイヤキャラクタ)等のキャラクタオブジェクトを含み得る。さらに、仮想オブジェクトは、ユーザが操作可能な対象として予め設定されたオブジェクトである操作オブジェクトも含み得る。すなわち、操作オブジェクトはユーザに関連付けられた仮想オブジェクトである。操作オブジェクトは、キャラクタオブジェクトの少なくとも一部(例えばアバターの手の部分)に相当するオブジェクトであってもよいし、アバターまたはキャラクタが持つ道具(例えば武器)に相当するオブジェクトであってもよい。あるいは、操作オブジェクトは、アバターまたはキャラクタから放たれる物体(例えば、ボール等の固形物)に相当するオブジェクトであってもよい。あるいは、操作オブジェクトは、アバターまたはキャラクタが持つ道具から放たれる物体(例えば、銃弾や矢などの固形物)に相当するオブジェクトであってもよい。さらに、仮想オブジェクトは、仮想空間2においてユーザ190が標的(操作オブジェクトを当てる目標)として認識する標的オブジェクトを含み得る。標的の例として、敵キャラクタ、障害物等が挙げられる。なお、以下の説明において、誤解が生じない場合には、仮想オブジェクトのことを単に「オブジェクト」と表記する。   The virtual object is an entire object arranged in the virtual space 2. The virtual objects may include, for example, forests, mountains and other landscapes, animals, etc. that are arranged according to the progress of the game story. The virtual object may include a character object such as an avatar as a substitute for the user 190 in the virtual space 2 and a game character (player character) operated by the user 190. Furthermore, the virtual object may also include an operation object that is an object preset as a target that can be operated by the user. That is, the operation object is a virtual object associated with the user. The operation object may be an object corresponding to at least a part of the character object (for example, a hand portion of the avatar), or may be an object corresponding to a tool (for example, a weapon) possessed by the avatar or the character. Alternatively, the operation object may be an object corresponding to an object (for example, a solid object such as a ball) released from an avatar or a character. Alternatively, the operation object may be an object corresponding to an object (for example, a solid object such as a bullet or an arrow) released from a tool possessed by an avatar or a character. Furthermore, the virtual object may include a target object that the user 190 recognizes as a target (a target to which the operation object is applied) in the virtual space 2. Examples of targets include enemy characters and obstacles. In the following description, if no misunderstanding occurs, the virtual object is simply referred to as “object”.

仮想空間制御モジュール230は、仮想空間2に配置されるオブジェクトのそれぞれが、他のオブジェクトと衝突した場合に、当該衝突を検出する。ある局面では、仮想空間制御モジュール230は操作オブジェクトと標的オブジェクトとの衝突を検出する。仮想空間制御モジュール230は、例えば、あるオブジェクトと別のオブジェクトとが触れたタイミングを検出することができ、当該検出がされたときに、予め定められた処理を行う。仮想空間制御モジュール230は、オブジェクトとオブジェクトとが触れている状態から離れたタイミングを検出することができ、当該検出がされたときに、予め定められた処理を行う。仮想空間制御モジュール230は、例えばオブジェクト毎に設定されたコリジョンエリアに基づく公知の当たり判定を実行することにより、オブジェクトとオブジェクトとが触れている状態であることを検出することができる。   The virtual space control module 230 detects the collision when each of the objects arranged in the virtual space 2 collides with another object. In one aspect, the virtual space control module 230 detects a collision between the operation object and the target object. The virtual space control module 230 can detect, for example, a timing when a certain object touches another object, and performs a predetermined process when the detection is performed. The virtual space control module 230 can detect the timing at which the object is away from the touched state, and performs a predetermined process when the detection is made. The virtual space control module 230 can detect that the object is in contact with the object by executing a known hit determination based on, for example, a collision area set for each object.

フィードバックモジュール233は、仮想空間制御モジュール230により操作オブジェクトと標的オブジェクトとの衝突が検出された場合に、その衝突に基づく標的オブジェクトのフィードバック動作を示すフィードバック情報をリアルタイムに生成する。フィードバック動作とは、操作オブジェクトと標的オブジェクトとの衝突により発生する標的オブジェクトの動作である。「フィードバック情報をリアルタイムに生成する」とは、衝突が検出される前には存在しないフィードバック情報を、衝突の検出を契機として生成し始めることをいう。フィードバックモジュール233はそのフィードバック情報に基づいて標的オブジェクトの動作を制御する。したがって、操作オブジェクトとの衝突が検出された場合には、標的オブジェクトは仮想オブジェクト制御モジュール232およびフィードバックモジュール233の双方により制御され得る。   When a collision between the operation object and the target object is detected by the virtual space control module 230, the feedback module 233 generates feedback information indicating a feedback operation of the target object based on the collision in real time. The feedback operation is an operation of the target object that occurs due to a collision between the operation object and the target object. “Generate feedback information in real time” refers to starting to generate feedback information that does not exist before a collision is detected, triggered by the detection of the collision. The feedback module 233 controls the movement of the target object based on the feedback information. Therefore, when a collision with the operation object is detected, the target object can be controlled by both the virtual object control module 232 and the feedback module 233.

メモリモジュール240は、コンピュータ200が仮想空間2をユーザ190に提供するために使用されるデータを保持している。ある局面において、メモリモジュール240は、空間情報241と、オブジェクト情報242と、ユーザ情報243とを保持している。空間情報241には、例えば、仮想空間2を提供するために規定された1つ以上のテンプレートが含まれている。オブジェクト情報242には、例えば、仮想空間2において再生されるコンテンツ、当該コンテンツで使用されるオブジェクトを配置するための情報等が含まれている。当該コンテンツは、例えば、ゲーム、現実社会と同様の風景を表したコンテンツ等を含み得る。オブジェクト情報242には、各オブジェクトを描画するための描画情報も含まれている。また、オブジェクト情報242は、各オブジェクトに関連付けられた属性を示す属性情報も含み得る。オブジェクトの属性情報としては、例えば当該オブジェクトの種類(例えばアバター等)を示す情報、およびオブジェクトが可動物(可動オブジェクト)であるか固定物(固定オブジェクト)であるかを示す情報等が挙げられる。ユーザ情報243には、例えば、HMDシステム100の制御装置としてコンピュータ200を機能させるためのプログラム、オブジェクト情報242に保持される各コンテンツを使用するアプリケーションプログラム等が含まれている。   The memory module 240 holds data used for the computer 200 to provide the virtual space 2 to the user 190. In one aspect, the memory module 240 holds space information 241, object information 242, and user information 243. The space information 241 includes, for example, one or more templates defined for providing the virtual space 2. The object information 242 includes, for example, content reproduced in the virtual space 2, information for arranging objects used in the content, and the like. The content can include, for example, content representing a scene similar to a game or a real society. The object information 242 includes drawing information for drawing each object. The object information 242 may also include attribute information indicating attributes associated with each object. Examples of the attribute information of the object include information indicating the type of the object (for example, an avatar) and information indicating whether the object is a movable object (movable object) or a fixed object (fixed object). The user information 243 includes, for example, a program for causing the computer 200 to function as a control device of the HMD system 100, an application program that uses each content held in the object information 242, and the like.

メモリモジュール240に格納されているデータおよびプログラムは、HMD装置110のユーザによって入力される。あるいは、プロセッサ10が、当該コンテンツを提供する事業者が運営するコンピュータ(例えば、サーバ150)からプログラムあるいはデータをダウンロードして、ダウンロードされたプログラムあるいはデータをメモリモジュール240に格納する。   Data and programs stored in the memory module 240 are input by the user of the HMD device 110. Alternatively, the processor 10 downloads a program or data from a computer (for example, the server 150) operated by a provider providing the content, and stores the downloaded program or data in the memory module 240.

通信制御モジュール250は、ネットワーク19を介して、サーバ150その他の情報通信装置と通信し得る。   The communication control module 250 can communicate with the server 150 and other information communication devices via the network 19.

ある局面において、表示制御モジュール220および仮想空間制御モジュール230は、例えば、ユニティテクノロジーズ社によって提供されるUnity(登録商標)を用いて実現され得る。別の局面において、表示制御モジュール220および仮想空間制御モジュール230は、各処理を実現する回路素子の組み合わせとしても実現され得る。   In an aspect, the display control module 220 and the virtual space control module 230 may be realized using, for example, Unity (registered trademark) provided by Unity Technologies. In another aspect, the display control module 220 and the virtual space control module 230 can also be realized as a combination of circuit elements that realize each process.

コンピュータ200における処理は、ハードウェアと、プロセッサ10により実行されるソフトウェアとによって実現される。このようなソフトウェアは、ハードディスクその他のメモリモジュール240に予め格納されている場合がある。また、ソフトウェアは、CD−ROMその他のコンピュータ読み取り可能な不揮発性のデータ記録媒体に格納されて、プログラム製品として流通している場合もある。あるいは、当該ソフトウェアは、インターネットその他のネットワークに接続されている情報提供事業者によってダウンロード可能なプログラム製品として提供される場合もある。このようなソフトウェアは、光ディスク駆動装置その他のデータ読取装置によってデータ記録媒体から読み取られて、あるいは、通信制御モジュール250を介してサーバ150その他のコンピュータからダウンロードされた後、メモリモジュール240に一旦格納される。そのソフトウェアは、プロセッサ10によってメモリモジュール240から読み出され、実行可能なプログラムの形式でRAMに格納される。プロセッサ10は、そのプログラムを実行する。   Processing in the computer 200 is realized by hardware and software executed by the processor 10. Such software may be stored in advance in a memory module 240 such as a hard disk. The software may be stored in a CD-ROM or other non-volatile computer-readable data recording medium and distributed as a program product. Alternatively, the software may be provided as a program product that can be downloaded by an information provider connected to the Internet or other networks. Such software is read from a data recording medium by an optical disk drive or other data reader, or downloaded from the server 150 or other computer via the communication control module 250 and then temporarily stored in the memory module 240. The The software is read from the memory module 240 by the processor 10 and stored in the RAM in the form of an executable program. The processor 10 executes the program.

図9に示されるコンピュータ200を構成するハードウェアは、一般的なものである。したがって、本実施の形態に係る最も本質的な部分は、コンピュータ200に格納されたプログラムであるともいえる。なお、コンピュータ200のハードウェアの動作は周知であるので、詳細な説明は繰り返さない。   The hardware configuring the computer 200 shown in FIG. 9 is general. Therefore, it can be said that the most essential part according to the present embodiment is a program stored in the computer 200. Since the hardware operation of computer 200 is well known, detailed description will not be repeated.

なお、データ記録媒体としては、CD−ROM、FD(Flexible Disk)、ハードディスクに限られず、磁気テープ、カセットテープ、光ディスク(MO(Magnetic Optical Disc)/MD(Mini Disc)/DVD(Digital Versatile Disc))、IC(Integrated Circuit)カード(メモリカードを含む)、光カード、マスクROM、EPROM(Erasable Programmable Read-Only Memory)、EEPROM(Electrically Erasable Programmable Read-Only Memory)、フラッシュROMなどの半導体メモリ等の固定的にプログラムを担持する不揮発性のデータ記録媒体でもよい。   The data recording medium is not limited to a CD-ROM, FD (Flexible Disk), and hard disk, but is a magnetic tape, cassette tape, optical disk (MO (Magnetic Optical Disc) / MD (Mini Disc) / DVD (Digital Versatile Disc)). ), IC (Integrated Circuit) card (including memory card), optical card, mask ROM, EPROM (Erasable Programmable Read-Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), flash ROM, etc. It may be a non-volatile data recording medium that carries a fixed program.

ここでいうプログラムとは、プロセッサ10により直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含み得る。   The program here may include not only a program directly executable by the processor 10, but also a program in a source program format, a compressed program, an encrypted program, and the like.

[制御構造]
図10を参照して、本実施の形態に係るコンピュータ200の制御構造について説明する。図10は、ユーザ190Aによって使用されるHMDシステム100Aがユーザ190Aに仮想空間2を提供するために実行する処理を表すシーケンス図である。複数のHMDシステム100が存在する場合には、他のHMDシステム100B,100Cにおいても、同様の処理が実行される。
[Control structure]
With reference to FIG. 10, a control structure of computer 200 according to the present embodiment will be described. FIG. 10 is a sequence diagram showing processing executed by the HMD system 100A used by the user 190A to provide the virtual space 2 to the user 190A. When there are a plurality of HMD systems 100, the same processing is executed in the other HMD systems 100B and 100C.

ステップS1において、コンピュータ200のプロセッサ10は、仮想空間定義モジュール231として、仮想空間2の背景を構成する仮想空間画像データ(仮想空間画像22)を特定し、仮想空間2を定義する。プロセッサ10は、その仮想空間2を規定する仮想空間データを生成する。   In step S <b> 1, the processor 10 of the computer 200 specifies the virtual space image data (virtual space image 22) constituting the background of the virtual space 2 as the virtual space definition module 231, and defines the virtual space 2. The processor 10 generates virtual space data that defines the virtual space 2.

ステップS2において、プロセッサ10は、仮想カメラ制御モジュール221として、仮想カメラ1を初期化する。例えば、プロセッサ10は、メモリのワーク領域において、仮想カメラ1を仮想空間2において予め規定された中心点に配置し、仮想カメラ1の視線をユーザ190が向いている方向に向ける。   In step S <b> 2, the processor 10 initializes the virtual camera 1 as the virtual camera control module 221. For example, the processor 10 places the virtual camera 1 at a predetermined center point in the virtual space 2 in the work area of the memory, and directs the line of sight of the virtual camera 1 in the direction in which the user 190 is facing.

ステップS3において、プロセッサ10は、視界画像生成モジュール223として、初期の視界画像を表示するための視界画像データを生成する。プロセッサ10は、少なくとも仮想空間データに基づいて視界画像データを生成する。生成された視界画像データは、視界画像生成モジュール223を介して通信制御モジュール250によってHMD装置110に送られる。   In step S <b> 3, the processor 10 generates view image data for displaying an initial view image as the view image generation module 223. The processor 10 generates view field image data based on at least the virtual space data. The generated view image data is sent to the HMD device 110 by the communication control module 250 via the view image generation module 223.

ステップS4において、HMD装置110のディスプレイ112は、コンピュータ200から受信した信号に基づいて、視界画像を表示する。HMD装置110Aを装着したユーザ190Aは、視界画像を視認すると仮想空間2を認識し得る。   In step S <b> 4, the display 112 of the HMD device 110 displays a view field image based on the signal received from the computer 200. The user 190A wearing the HMD device 110A can recognize the virtual space 2 when viewing the visual field image.

ステップS5において、HMDセンサ120は、HMD装置110から発信される複数の赤外線光に基づいて、HMD装置110の位置および傾きを検知する。検知結果は、動き検知データとして、コンピュータ200に送られる。   In step S <b> 5, the HMD sensor 120 detects the position and tilt of the HMD device 110 based on a plurality of infrared lights transmitted from the HMD device 110. The detection result is sent to the computer 200 as motion detection data.

ステップS6において、プロセッサ10は、視界領域決定モジュール222として、HMD装置110Aの位置と傾きとに基づいて、HMD装置110Aを装着したユーザ190Aの視界方向(すなわち、仮想カメラ1の位置および傾き)を特定する。プロセッサ10は、アプリケーションプログラムを実行し、アプリケーションプログラムに含まれる命令に基づいて、仮想空間2にオブジェクトを配置する。   In step S6, the processor 10 uses the visual field direction determination module 222 to determine the visual field direction (that is, the position and tilt of the virtual camera 1) of the user 190A wearing the HMD device 110A based on the position and tilt of the HMD device 110A. Identify. The processor 10 executes the application program and places an object in the virtual space 2 based on instructions included in the application program.

ステップS7において、コントローラ160は、現実空間におけるユーザ190Aの操作を検出する。例えば、ある局面において、コントローラ160は、ユーザ190Aによってボタンが押下されたことを検出する。別の局面において、コントローラ160は、ユーザ190Aの両手の動作(たとえば、両手を振る等)を検出する。検出内容を示す信号は、コンピュータ200に送られる。   In step S7, the controller 160 detects the operation of the user 190A in the real space. For example, in one aspect, the controller 160 detects that a button has been pressed by the user 190A. In another aspect, the controller 160 detects the operation of both hands of the user 190A (for example, shaking both hands). A signal indicating the detected content is sent to the computer 200.

ステップS8において、プロセッサ10は、仮想オブジェクト制御モジュール232およびフィードバックモジュール233の少なくとも一方として、各仮想オブジェクトの動作を制御する。ある局面では、プロセッサ10は操作オブジェクトおよび標的オブジェクトの少なくとも一方の動作を制御する。   In step S <b> 8, the processor 10 controls the operation of each virtual object as at least one of the virtual object control module 232 and the feedback module 233. In one aspect, the processor 10 controls at least one of the operation object and the target object.

ステップS9において、プロセッサ10は、視界画像生成モジュール223として、ステップS8の処理結果と仮想空間データとに基づく視界画像を表示するための視界画像データを生成し、生成した視界画像データをHMD装置110に出力する。   In step S <b> 9, the processor 10 generates view image data for displaying a view image based on the processing result of step S <b> 8 and the virtual space data as the view image generation module 223, and uses the generated view image data as the HMD device 110. Output to.

ステップS10において、HMD装置110のディスプレイ112は、受信した視界画像データに基づいて視界画像を更新し、更新後の視界画像を表示する。   In step S10, the display 112 of the HMD device 110 updates the view image based on the received view image data, and displays the updated view image.

[衝突時の制御]
図11は、ある実施の形態に従うHMD装置110上に表される視界画像300の一例を表す図である。ユーザ190はHMD装置110を介してこの視界画像300を視認することができる。図11の例では、視界画像300は、ユーザ190により操作されるキャラクタの手(仮想手)を表す手オブジェクト301と、その手に握られた武器(剣)を表す操作オブジェクト302と、敵キャラクタを表す標的オブジェクト400とを含む。ユーザ190はコントローラ160を介して剣(操作オブジェクト302)を操作することで敵キャラクタ(標的オブジェクト400)を攻撃する。コンピュータ200は、操作オブジェクト302と標的オブジェクト400との衝突を判定し、その衝突が発生した場合には、標的オブジェクト400のうち、操作オブジェクト302が当たった部位を少なくとも含む部分の動作を制御する。この演出により、ユーザ190は、仮想空間2の中で敵キャラクタと対戦している時に、敵キャラクタのどの部位に自分の武器が当たったかを一目で把握することができる。
[Control at collision]
FIG. 11 is a diagram illustrating an example of a visual field image 300 displayed on the HMD device 110 according to an embodiment. The user 190 can visually recognize this view field image 300 through the HMD device 110. In the example of FIG. 11, the view image 300 includes a hand object 301 representing a character's hand (virtual hand) operated by the user 190, an operation object 302 representing a weapon (sword) held by the hand, and an enemy character. And a target object 400 representing The user 190 attacks the enemy character (target object 400) by operating the sword (operation object 302) via the controller 160. The computer 200 determines the collision between the operation object 302 and the target object 400, and when the collision occurs, the computer 200 controls the movement of the portion of the target object 400 that includes at least the part that the operation object 302 has hit. With this effect, the user 190 can grasp at a glance which part of the enemy character has hit his / her weapon when he / she is playing against the enemy character in the virtual space 2.

図12を参照しながら、操作オブジェクト302と標的オブジェクト400との衝突に関する制御をさらに詳しく説明する。図12は、ある実施の形態に従う仮想オブジェクトの制御を表すフローチャートである。   The control related to the collision between the operation object 302 and the target object 400 will be described in more detail with reference to FIG. FIG. 12 is a flowchart illustrating control of a virtual object according to an embodiment.

ステップS21において、HMDシステム100のプロセッサ10(以下単に「プロセッサ10」という)は仮想空間定義モジュール231として機能し、操作オブジェクト302と標的オブジェクト400とを含む仮想空間2を定義する。この処理は、図10に示すステップS1の処理に対応し得る。具体的には、プロセッサ10は空間情報241、オブジェクト情報242、およびユーザ情報243のうち少なくとも一種類の情報をメモリモジュール240から読み出す。そして、プロセッサ10は読み出した情報に基づいて、仮想空間2を定義する仮想空間データを生成することにより、仮想空間2を規定する。あるいは、プロセッサ10は、コンテンツを提供する事業者が運営するコンピュータ(例えば、サーバ150)から予めダウンロードされたプログラムおよびデータ(仮想空間画像データ、オブジェクトの描画および初期配置等に関する情報)にも基づいて仮想空間データを生成してもよい。   In step S <b> 21, the processor 10 (hereinafter simply referred to as “processor 10”) of the HMD system 100 functions as the virtual space definition module 231, and defines the virtual space 2 including the operation object 302 and the target object 400. This process can correspond to the process of step S1 shown in FIG. Specifically, the processor 10 reads from the memory module 240 at least one type of information among the space information 241, the object information 242, and the user information 243. Then, the processor 10 defines the virtual space 2 by generating virtual space data that defines the virtual space 2 based on the read information. Alternatively, the processor 10 is also based on programs and data (information on virtual space image data, drawing of objects, initial arrangement, and the like) downloaded in advance from a computer (for example, the server 150) operated by a provider that provides content. Virtual space data may be generated.

操作オブジェクト302と標的オブジェクト400との衝突を演出するための標的オブジェクト400の定義および構成についてさらに詳しく説明する。図13は、ある実施の形態に従う標的オブジェクト400の定義および構成の例を表す図である。標的オブジェクト400は、骨格を構成する個々のボーン(骨)401に外観デザインを適用することで(すなわち、個々のボーンを肉付けすることで)形成される。標的オブジェクト400は複数の部位で構成され、一つの部位は一つのボーン401に対応する。隣接する二つのボーン401はジョイント(関節)402で接続される。個々のボーン401はジョイント402を支点として所定の自由度で動くことができるようにプログラムされる。   The definition and configuration of the target object 400 for producing a collision between the operation object 302 and the target object 400 will be described in more detail. FIG. 13 is a diagram illustrating an example of the definition and configuration of a target object 400 according to an embodiment. The target object 400 is formed by applying an appearance design to individual bones (bones) 401 constituting the skeleton (that is, by fleshing individual bones). The target object 400 includes a plurality of parts, and one part corresponds to one bone 401. Two adjacent bones 401 are connected by a joint 402. Each bone 401 is programmed so that it can move with a predetermined degree of freedom using the joint 402 as a fulcrum.

標的オブジェクト400のオブジェクト情報242は、ボーン401およびジョイント402を定義する骨格情報と、ボーン401に適用される外観デザインを定義する外観情報と、各部位の予め定められた動作を定義するモーション情報とを含み得る。モーション情報は、ボーン401およびジョイント402の予め定められた動きを定義する情報であるともいえる。ステップS21において、プロセッサ10は、表示しようとする標的オブジェクト400の骨格情報および外観情報をメモリモジュール240から読み出し、これらの骨格情報に基づいて標的オブジェクトを定義する。   The object information 242 of the target object 400 includes skeleton information that defines the bone 401 and the joint 402, appearance information that defines an appearance design applied to the bone 401, and motion information that defines a predetermined action of each part. Can be included. It can be said that the motion information is information that defines a predetermined motion of the bone 401 and the joint 402. In step S21, the processor 10 reads the skeleton information and appearance information of the target object 400 to be displayed from the memory module 240, and defines the target object based on the skeleton information.

図12に戻り、ステップS22において、プロセッサ10は視界画像生成モジュール223として機能し、仮想空間データに基づいて、初期の視界画像を表示するための視界画像データを生成し、この視界画像データをHMD装置110に出力(送信)する。HMD装置110はその視界画像データを処理して視界画像300を表示する。この処理は図10でのステップS3,S4に対応し得る。この結果、ユーザ190は、手オブジェクト301、操作オブジェクト302、および標的オブジェクト400が描画された視界画像300を視認することができる。   Returning to FIG. 12, in step S22, the processor 10 functions as the visual field image generation module 223, generates visual field image data for displaying an initial visual field image based on the virtual space data, and the visual field image data is converted into the HMD. Output (transmit) to the device 110. The HMD device 110 processes the view image data and displays the view image 300. This process can correspond to steps S3 and S4 in FIG. As a result, the user 190 can visually recognize the visual field image 300 on which the hand object 301, the operation object 302, and the target object 400 are drawn.

ステップS23において、プロセッサ10は仮想オブジェクト制御モジュール232として機能し、仮想空間2における標的オブジェクト400の動作をモーション情報に基づいて更新する。この処理は図10でのステップS8に対応し得る。標的オブジェクト400の動作の更新とは、仮想空間2における標的オブジェクト400の動作を示す値を新たな値に変更することであり、より具体的には、標的オブジェクト400の位置および姿勢に関する値を変更することである。プロセッサ10は表示している標的オブジェクト400のモーション情報をメモリモジュール240から読み出し、そのモーション情報に基づいて標的オブジェクト400の新たな動作を決定する。続いてプロセッサ10は決定した動作を示す動き情報を生成する。   In step S23, the processor 10 functions as the virtual object control module 232, and updates the motion of the target object 400 in the virtual space 2 based on the motion information. This process may correspond to step S8 in FIG. The update of the motion of the target object 400 is to change the value indicating the motion of the target object 400 in the virtual space 2 to a new value. More specifically, the value related to the position and orientation of the target object 400 is changed. It is to be. The processor 10 reads the motion information of the displayed target object 400 from the memory module 240 and determines a new action of the target object 400 based on the motion information. Subsequently, the processor 10 generates motion information indicating the determined operation.

標的オブジェクトの動作を制御する一方で、プロセッサ10は操作オブジェクト302の動作も制御する。ステップS24において、プロセッサ10は仮想オブジェクト制御モジュール232として機能し、コントローラ160から送られてきた信号を処理することで操作オブジェクト302の動作を更新する。この処理は図10でのステップS7,S8に対応し得る。操作オブジェクト302の動作の更新とは、仮想空間2における操作オブジェクト302の動作を示す値を新たな値に変更することであり、より具体的には、操作オブジェクト302の位置および姿勢に関する値を変更することである。プロセッサ10は操作オブジェクト302の新たな動作を示す動き情報を生成する。   While controlling the movement of the target object, the processor 10 also controls the movement of the manipulation object 302. In step S <b> 24, the processor 10 functions as the virtual object control module 232 and updates the operation of the operation object 302 by processing the signal transmitted from the controller 160. This process can correspond to steps S7 and S8 in FIG. The update of the operation of the operation object 302 is to change the value indicating the operation of the operation object 302 in the virtual space 2 to a new value. More specifically, the value related to the position and orientation of the operation object 302 is changed. It is to be. The processor 10 generates motion information indicating a new action of the operation object 302.

ステップS25において、プロセッサ10は視界画像生成モジュール223として機能し、仮想オブジェクト(操作オブジェクト302および標的オブジェクト400の少なくとも一方)についての新たな動きを表示するための視界画像データを動き情報に基づいて生成し、その視界画像データをHMD装置110に出力(送信)する。HMD装置110はその視界画像データを処理して視界画像300を更新する。これらの処理は図10でのステップS9,S10に対応し得る。この結果、視界画像300内では、標的オブジェクト400が予め定められた動作を行い、または、操作オブジェクト302がユーザの操作に応じて動く。   In step S25, the processor 10 functions as the visual field image generation module 223, and generates visual field image data for displaying a new movement of the virtual object (at least one of the operation object 302 and the target object 400) based on the movement information. Then, the visual field image data is output (transmitted) to the HMD device 110. The HMD device 110 updates the view image 300 by processing the view image data. These processes can correspond to steps S9 and S10 in FIG. As a result, in the view field image 300, the target object 400 performs a predetermined action, or the operation object 302 moves according to the user's operation.

ステップS26において、プロセッサ10は仮想空間制御モジュール230として機能し、仮想空間2において操作オブジェクト302と標的オブジェクト400とが衝突したか否かを判定する。その衝突を検出しない場合には(ステップS26においてNO)、プロセッサ10はステップS23〜S25の処理を繰り返す。もし衝突を検出した場合には(ステップS26においてYES)、処理はステップS27に進む。   In step S <b> 26, the processor 10 functions as the virtual space control module 230 and determines whether or not the operation object 302 and the target object 400 collide in the virtual space 2. When the collision is not detected (NO in step S26), the processor 10 repeats the processes in steps S23 to S25. If a collision is detected (YES in step S26), the process proceeds to step S27.

ステップS27において、プロセッサ10はフィードバックモジュール233として機能し、発生した衝突に基づく標的オブジェクト400のフィードバック情報を生成する。この処理は図10でのステップS8に対応し得る。   In step S27, the processor 10 functions as the feedback module 233, and generates feedback information of the target object 400 based on the generated collision. This process may correspond to step S8 in FIG.

図14および図15を参照しながら、フィードバック情報の生成についてさらに詳しく説明する。図14は、ある実施の形態に従うフィードバック情報の生成を表すフローチャートである。図15は、ある実施の形態に従う標的オブジェクト400のフィードバック動作の計算方法を表す図であり、より具体的には、標的オブジェクト400の右手に操作オブジェクト302が当たった場合のフィードバック動作の計算方法を表す。図15では、標的オブジェクト400を構成する部位として手、前腕、上腕、および胸を特に示す。これらの部位に対応するボーンをそれぞれ手ボーン411、前腕ボーン412、上腕ボーン413、および胸ボーン414という。   The generation of feedback information will be described in more detail with reference to FIGS. 14 and 15. FIG. 14 is a flowchart illustrating the generation of feedback information according to an embodiment. FIG. 15 is a diagram illustrating a calculation method of the feedback operation of the target object 400 according to an embodiment. More specifically, FIG. 15 illustrates a calculation method of the feedback operation when the operation object 302 hits the right hand of the target object 400. Represent. In FIG. 15, the hand, the forearm, the upper arm, and the chest are particularly shown as the parts constituting the target object 400. The bones corresponding to these parts are referred to as a hand bone 411, a forearm bone 412, an upper arm bone 413, and a chest bone 414, respectively.

ステップS271において、プロセッサ10は操作オブジェクト302と標的オブジェクト400との衝突に関するパラメータを衝突パラメータとして取得する。ある局面では、衝突パラメータは、標的オブジェクト400における衝突点と、標的オブジェクト400における衝突部位と、衝突時の操作オブジェクト302の運動を示すヒットベクトルとを含む。プロセッサ10は、標的オブジェクト400のうち、操作オブジェクト302が当たった位置を衝突点として特定する。この衝突点は、例えば座標により表されてもよい。また、プロセッサ10は、標的オブジェクト400を構成する複数の部位のうち、操作オブジェクト302が当たった部位を衝突部位として特定する。衝突部位は部位の識別子または座標により表されてもよい。さらにプロセッサ10は、標的オブジェクト400と衝突した時点における操作オブジェクト302の移動方向および衝突の大きさ(衝撃力)を示すヒットベクトルを算出する。ヒットベクトルの終点は衝突点である。図15では、衝突点をHPという符号で示し、ヒットベクトルをHVという符号で示している。   In step S271, the processor 10 acquires a parameter related to the collision between the operation object 302 and the target object 400 as a collision parameter. In one aspect, the collision parameter includes a collision point in the target object 400, a collision site in the target object 400, and a hit vector indicating the motion of the operation object 302 at the time of the collision. The processor 10 specifies the position where the operation object 302 hits among the target objects 400 as a collision point. This collision point may be represented by coordinates, for example. In addition, the processor 10 identifies a part hit by the operation object 302 among a plurality of parts constituting the target object 400 as a collision part. The collision site may be represented by a site identifier or coordinates. Further, the processor 10 calculates a hit vector indicating the moving direction of the operation object 302 at the time of collision with the target object 400 and the magnitude of the collision (impact force). The end point of the hit vector is a collision point. In FIG. 15, the collision point is indicated by a symbol HP, and the hit vector is indicated by a symbol HV.

ステップS272において、プロセッサ10は、モーション情報を用いることなく、衝突パラメータに基づいて衝突部位の動作を算出する。個々の部位はボーンに外観デザインを適用することで生成されるので、部位の動作を求めるためには該部位に対応するボーンの動作を求めればよい。したがって、部位の動作を求めることはボーンの動作を求めることと同義であるともいえる。   In step S272, the processor 10 calculates the operation of the collision site based on the collision parameter without using the motion information. Since each part is generated by applying an appearance design to the bone, in order to obtain the motion of the part, the motion of the bone corresponding to the part may be obtained. Therefore, it can be said that obtaining the motion of the part is synonymous with obtaining the motion of the bone.

図15の例では、衝突部位は手なので、プロセッサ10はまず手ボーン411の動作を算出する。具体的には、プロセッサ10は、手ボーン411に対応するジョイントから衝突点HPに至るジョイントベクトルを算出する。一つのボーンには二つのジョイントが対応し得るが、プロセッサ10は、ジョイントベクトルの始点となるジョイントを任意の手法で選択してもよい。図15の例では、プロセッサ10は、他のボーンである前腕ボーン412と接続しているジョイント421を選択し、ジョイント421から衝突点HPに至るジョイントベクトル511を算出してもよい。続いて、プロセッサ10はそのジョイントベクトル511とヒットベクトルHVとの外積を計算することで回転モーメントを求め、この回転モーメントと手の仮想質量とに基づいて手ボーン411の角加速度を求める。そして、プロセッサ10はその角加速度に基づいて手ボーン411の角速度を求め、この角速度に基づいて手ボーン411の動作を計算する。例えば、プロセッサ10はその角速度に基づいて手ボーン411の振動521を求める。プロセッサ10は、算出した動作を手ボーン411のフィードバック情報(すなわち、手のフィードバック情報)として保持する。   In the example of FIG. 15, since the collision site is a hand, the processor 10 first calculates the motion of the hand bone 411. Specifically, the processor 10 calculates a joint vector from the joint corresponding to the hand bone 411 to the collision point HP. Two joints can correspond to one bone, but the processor 10 may select a joint to be a starting point of a joint vector by an arbitrary method. In the example of FIG. 15, the processor 10 may select the joint 421 connected to the forearm bone 412 that is another bone, and calculate the joint vector 511 from the joint 421 to the collision point HP. Subsequently, the processor 10 calculates a rotational moment by calculating an outer product of the joint vector 511 and the hit vector HV, and calculates an angular acceleration of the hand bone 411 based on the rotational moment and the virtual mass of the hand. Then, the processor 10 obtains the angular velocity of the hand bone 411 based on the angular acceleration, and calculates the motion of the hand bone 411 based on the angular velocity. For example, the processor 10 determines the vibration 521 of the hand bone 411 based on the angular velocity. The processor 10 holds the calculated operation as feedback information of the hand bone 411 (that is, hand feedback information).

ここで、標的オブジェクト400のボーン(部位)の振動とは、操作オブジェクト302と衝突した時点での当該ボーンの位置を中心軸として、当該ボーン(部位)がその中心軸を跨ぎながら往復動することをいう。すなわち、ボーン(部位)の振動とは、当該中心軸を挟んでボーン(部位)が振り子のように動くことをいう。単にボーンが所定の角度+θだけ動いて元の場所に戻るだけの動きでは振動らしさを良好に表現できない。ボーンをある方向に所定の角度+θだけ動かし、そのボーンを元の位置に戻し、次いでそのボーンを反対方向に所定の角度−θ´(|+θ|≧|−θ´|)だけ動かし、そして元の位置に戻すようにボーンを制御することで、振動の雰囲気を視覚的に且つ良好にユーザ190に提供することができる。   Here, the vibration of the bone (part) of the target object 400 means that the bone (part) reciprocates across the central axis with the position of the bone at the time of collision with the operation object 302 as the central axis. Say. That is, the vibration of the bone (part) means that the bone (part) moves like a pendulum across the central axis. If the bone simply moves by a predetermined angle + θ and returns to the original position, it is not possible to satisfactorily express the vibration. Move the bone in a direction by a predetermined angle + θ, return the bone to its original position, then move the bone in the opposite direction by a predetermined angle −θ ′ (| + θ | ≧ | −θ ′ |) and By controlling the bone so as to return to the position, the vibration atmosphere can be visually and satisfactorily provided to the user 190.

振動は、衝突部位と、必要であれば該衝突部位の近傍の部位とにおける動作であり、標的オブジェクト400の姿勢を変化させる動作ではない。すなわち、標的オブジェクト400の姿勢は、一部の部位が振動している場合にも変化しない。例えば、図15に示す例のように手または足が振動したとしても、プロセッサ10は、体幹に相当するボーン(例えば、背骨に相当するボーン)を動かさない。   The vibration is an operation at the collision site and, if necessary, at a site near the collision site, and is not an operation for changing the posture of the target object 400. That is, the posture of the target object 400 does not change even when a part of the target object is vibrating. For example, even if the hand or foot vibrates as in the example shown in FIG. 15, the processor 10 does not move the bone corresponding to the trunk (for example, the bone corresponding to the spine).

プロセッサ10は、衝突部位だけでなく、衝突部位と直接にまたは間接的に接続する他の部位についても動作を計算してもよい。本開示では、当該他の部位をホップ数の概念を用いて表す。本開示におけるホップ数とは、他の部位が衝突部位からどのくらい離れているかを示す数値であり、衝突部位から他の部位に至るまでに経由するジョイントの最小個数で表される。図15の例では、手と直接に接続する前腕は、手から1ホップだけ離れた部位に相当する。前腕を介して手と間接的に接続する上腕は、手から2ホップだけ離れた部位に相当する。前腕および上腕を介して手と間接的に接続する胸は、手から3ホップだけ離れた部位に相当する。以下では、ホップ数を変数iで表す。   The processor 10 may calculate motion not only for the collision site, but also for other sites that are directly or indirectly connected to the collision site. In the present disclosure, the other parts are represented using the concept of the number of hops. The number of hops in the present disclosure is a numerical value indicating how far another part is from the collision part, and is represented by the minimum number of joints that pass from the collision part to the other part. In the example of FIG. 15, the forearm that is directly connected to the hand corresponds to a part that is one hop away from the hand. The upper arm that is indirectly connected to the hand via the forearm corresponds to a portion that is separated from the hand by 2 hops. The chest that is indirectly connected to the hand via the forearm and upper arm corresponds to a site 3 hops away from the hand. In the following, the number of hops is represented by a variable i.

ステップS273において、プロセッサ10はホップ数iを1にセットする。   In step S273, the processor 10 sets the hop number i to 1.

ステップS274において、プロセッサ10は衝突部位から1ホップ離れた部位を追加の対象部位(以下では単に「対象部位」という)として特定する。図15の例では、プロセッサ10は前腕を対象部位として特定する。   In step S274, the processor 10 specifies a part one hop away from the collision part as an additional target part (hereinafter simply referred to as “target part”). In the example of FIG. 15, the processor 10 specifies the forearm as a target site.

ステップS275において、プロセッサ10は対象部位の動作を計算するか否かを判定する。プロセッサ10は、ヒットベクトルHVで示される衝撃力が対象部位に及ぶ場合には、当該対象部位の動作を計算すると判定し、当該衝撃力が対象部位に及ばない場合には、その計算を実行しないと判定する。本開示では、プロセッサ10は、衝突部位における衝撃力を1として、対象部位に伝わる衝撃力を求める。衝突部位以外の対象部位に伝わる衝撃力は0以上1未満である。プロセッサ10は、対象部位における衝撃力が0より大きければその対象部位の動作を計算すると判定し、その衝撃力が0である場合には、対象部位の動作を計算しないと判定する。   In step S275, the processor 10 determines whether or not to calculate the motion of the target part. When the impact force indicated by the hit vector HV reaches the target part, the processor 10 determines to calculate the motion of the target part. When the impact force does not reach the target part, the processor 10 does not execute the calculation. Is determined. In the present disclosure, the processor 10 determines the impact force transmitted to the target site by setting the impact force at the collision site to 1. The impact force transmitted to the target part other than the collision part is 0 or more and less than 1. The processor 10 determines that the motion of the target site is calculated if the impact force at the target site is greater than 0, and determines that the motion of the target site is not calculated if the impact force is 0.

プロセッサ10は、衝突部位から離れた部位ほどヒットベクトルHVを減衰させることで、衝突部位以外の各部位の衝撃力を求める。ヒットベクトルHVの減衰とは、ヒットベクトルHVの大きさ、すなわち衝撃力を減少させることをいう。衝突部位に応じた各部位でのヒットベクトルHVの減衰度はオブジェクト情報242の一部として予め設定されていてもよい。この場合には、プロセッサ10はそのオブジェクト情報242を読み出すことで、衝突部位に応じた各部位の衝撃力を求める。あるいは、プロセッサ10は、ヒットベクトルHVで示される衝撃力と、対象部位のパラメータ(位置、寸法、仮想質量など)と、衝突部位から対象部位までの距離との少なくとも一つに基づいてリアルタイムに減衰度を計算してもよい。   The processor 10 determines the impact force of each part other than the collision part by attenuating the hit vector HV as the part is farther from the collision part. The attenuation of the hit vector HV means to reduce the magnitude of the hit vector HV, that is, the impact force. The degree of attenuation of the hit vector HV at each part corresponding to the collision part may be set in advance as part of the object information 242. In this case, the processor 10 reads the object information 242 to obtain the impact force of each part corresponding to the collision part. Alternatively, the processor 10 attenuates in real time based on at least one of the impact force indicated by the hit vector HV, the parameter (position, dimension, virtual mass, etc.) of the target part, and the distance from the collision part to the target part. The degree may be calculated.

図15に示すモデルでは、例えば前腕、上腕、および胸での衝撃力がそれぞれ0.8、0.4、0.1であってもよい。あるいは、前腕、上腕、および胸での衝撃力がそれぞれ0.9、0.4、0であってもよい。衝突部位からnホップ離れた部位での衝撃力が0である場合には、衝突部位から(n+1)ホップ以上離れた部位の衝撃力も0である。   In the model shown in FIG. 15, for example, the impact force on the forearm, upper arm, and chest may be 0.8, 0.4, and 0.1, respectively. Alternatively, the impact forces at the forearm, upper arm, and chest may be 0.9, 0.4, and 0, respectively. When the impact force at a site n hops away from the collision site is 0, the impact force at a site more than (n + 1) hops away from the collision site is also 0.

ステップS275においてYESである場合には、処理はステップS276に進む。このステップS276において、プロセッサ10は、モーション情報を用いることなく、衝突パラメータに基づいて対象部位の動作を計算する。この段階ではホップ数iは1なので、図15の例では、プロセッサ10は前腕の動作を計算する。具体的には、プロセッサ10は、前腕ボーン412の両端に位置するジョイント421,422のうち、手ボーン411に対応するジョイントとして選択されなかったジョイント422を、前腕ボーン412に対応するジョイントとして選択する。そして、プロセッサ10は、ジョイント422から衝突点HPに至るジョイントベクトル512を算出する。また、プロセッサ10は、ヒットベクトルHVを減衰させることで、前腕ボーン412に伝わるヒットベクトルHVの大きさ(衝撃力)を求める。続いて、プロセッサ10はジョイントベクトル512と減衰させたヒットベクトルHVとの外積を計算することで回転モーメントを求め、この回転モーメントと前腕の仮想質量とに基づいて前腕ボーン412の角加速度を求める。そして、プロセッサ10はその角加速度に基づいて前腕ボーン412の角速度を求め、この角速度に基づいて前腕ボーン412の動作(例えば振動522)を計算する。プロセッサ10は、算出した動作を前腕ボーン412のフィードバック情報(すなわち、前腕のフィードバック情報)として保持する。   If YES in step S275, the process proceeds to step S276. In step S276, the processor 10 calculates the motion of the target part based on the collision parameter without using the motion information. Since the hop number i is 1 at this stage, the processor 10 calculates the forearm motion in the example of FIG. Specifically, the processor 10 selects, as the joint corresponding to the forearm bone 412, the joint 422 not selected as the joint corresponding to the hand bone 411 among the joints 421 and 422 located at both ends of the forearm bone 412. . Then, the processor 10 calculates a joint vector 512 from the joint 422 to the collision point HP. Further, the processor 10 determines the magnitude (impact force) of the hit vector HV transmitted to the forearm bone 412 by attenuating the hit vector HV. Subsequently, the processor 10 calculates the rotational moment by calculating the outer product of the joint vector 512 and the attenuated hit vector HV, and determines the angular acceleration of the forearm bone 412 based on the rotational moment and the virtual mass of the forearm. Then, the processor 10 obtains the angular velocity of the forearm bone 412 based on the angular acceleration, and calculates the motion (for example, vibration 522) of the forearm bone 412 based on the angular velocity. The processor 10 holds the calculated motion as feedback information of the forearm bone 412 (ie, forearm feedback information).

ステップS277において、プロセッサ10はホップ数を1だけ増分する。この段階ではホップ数は2になる。   In step S277, the processor 10 increments the number of hops by one. At this stage, the number of hops is two.

続いて、処理はステップS274に進み、そのステップ以降の処理が繰り返される。図15の例では、プロセッサ10はステップS274において上腕を対象部位として特定し、ステップS275において対象部位の動作を計算するか否かを判定する。ステップS275においてYESである場合には、プロセッサ10はステップS276において、モーション情報を用いることなく、衝突パラメータに基づいて上腕の動作を計算する。具体的には、プロセッサ10は、上腕ボーン413と胸ボーン414とを接続するジョイント423から衝突点HPに至るジョイントベクトル513を算出する。また、プロセッサ10はヒットベクトルHVを減衰させることで、上腕ボーン413に伝わるヒットベクトルHVの大きさ(衝撃力)を求める。続いて、プロセッサ10はそのジョイントベクトル513と減衰させたヒットベクトルHVとの外積を計算することで回転モーメントを求め、この回転モーメントと上腕の仮想質量とに基づいて上腕ボーン413の角加速度を求める。そして、プロセッサ10はその角加速度に基づいて上腕ボーン413の角速度を求め、この角速度に基づいて上腕ボーン413の動作(例えば振動523)を計算する。プロセッサ10は、算出した動作を上腕ボーン413のフィードバック情報(すなわち、上腕のフィードバック情報)として保持する。   Subsequently, the process proceeds to step S274, and the processes after that step are repeated. In the example of FIG. 15, the processor 10 specifies the upper arm as the target part in step S274 and determines whether or not to calculate the motion of the target part in step S275. If YES in step S275, the processor 10 calculates the upper arm motion based on the collision parameter in step S276 without using motion information. Specifically, the processor 10 calculates a joint vector 513 from the joint 423 connecting the upper arm bone 413 and the chest bone 414 to the collision point HP. Further, the processor 10 determines the magnitude (impact force) of the hit vector HV transmitted to the upper arm bone 413 by attenuating the hit vector HV. Subsequently, the processor 10 obtains the rotational moment by calculating the outer product of the joint vector 513 and the attenuated hit vector HV, and obtains the angular acceleration of the upper arm bone 413 based on the rotational moment and the upper arm virtual mass. . Then, the processor 10 obtains an angular velocity of the upper arm bone 413 based on the angular acceleration, and calculates an operation (for example, vibration 523) of the upper arm bone 413 based on the angular velocity. The processor 10 holds the calculated motion as feedback information of the upper arm bone 413 (that is, feedback information of the upper arm).

ステップS277において、プロセッサ10はホップ数を1だけ増分し、これによりホップ数は3になる。続いて、処理はステップS274に進み、そのステップ以降の処理が繰り返される。図15の例では、プロセッサ10は、胸ボーン414の動作を計算するかもしれないし、その計算を行わないかもしれない。胸ボーン414の動作を求める場合には、プロセッサ10は胸ボーン414に対応するジョイント424から衝突点HPに至るジョイントベクトル514を算出する。そして、プロセッサ10はジョイントベクトル514と減衰させたヒットベクトルHVとに基づいて胸ボーン414の動作(例えば振動524)を示すフィードバック情報(すなわち、胸のフィードバック情報)を算出する。   In step S277, the processor 10 increments the number of hops by 1, so that the number of hops becomes 3. Subsequently, the process proceeds to step S274, and the processes after that step are repeated. In the example of FIG. 15, the processor 10 may or may not calculate the motion of the thoracic bone 414. When obtaining the motion of the chest bone 414, the processor 10 calculates a joint vector 514 from the joint 424 corresponding to the chest bone 414 to the collision point HP. Based on the joint vector 514 and the attenuated hit vector HV, the processor 10 calculates feedback information (that is, chest feedback information) indicating the operation of the chest bone 414 (for example, vibration 524).

プロセッサ10は、ステップS275において対象部位の動作を計算しないと判定するまで、衝突部位を含む少なくとも一つの部位についてフィードバック情報を生成する。   The processor 10 generates feedback information for at least one part including the collision part until it is determined in step S275 that the motion of the target part is not calculated.

図15の例では末梢の部位である手が衝突部位なので、プロセッサ10は標的オブジェクト400の中枢に向かって部位を一つずつ辿りながら各部位のフィードバック情報を生成した。衝突部位の場所によっては、プロセッサ10は衝突部位から中枢に向かって部位を一つずつ辿りながらフィードバック情報を生成すると共に、衝突部位から末梢に向かって部位を一つずつ辿りながらフィードバック情報を生成することもあり得る。例えば図15のモデルにおいて衝突部位が上腕であれば、プロセッサ10は、衝突部位から1ホップ離れた部位である前腕および胸の少なくとも一方を追加の対象部位として処理し得る。さらに、プロセッサ10は、衝突部位から2ホップ離れた部位である手、首、または腹をさらなる対象部位として処理し得る。   In the example of FIG. 15, the hand, which is a peripheral part, is a collision part, so the processor 10 generates feedback information for each part while following the part one by one toward the center of the target object 400. Depending on the location of the collision site, the processor 10 generates feedback information while tracing the site one by one from the collision site toward the center, and also generates feedback information while tracing the site one by one from the collision site to the periphery. It can happen. For example, if the collision site is the upper arm in the model of FIG. 15, the processor 10 may process at least one of the forearm and the chest, which is a site one hop away from the collision site, as an additional target site. Further, the processor 10 may process a hand, neck, or belly, which is a site 2 hops away from the collision site, as a further target site.

図12に戻り、ステップS28において、プロセッサ10は仮想オブジェクト制御モジュール232およびフィードバックモジュール233として機能し、仮想空間2における標的オブジェクト400の動作をモーション情報およびフィードバック情報の双方に基づいて更新する。この処理は図10でのステップS8に対応し得る。プロセッサ10は表示している標的オブジェクト400のモーション情報をメモリモジュール240から読み出す。そして、プロセッサ10はそのモーション情報と生成したフィードバック情報とに基づいて標的オブジェクト400の新たな動作を決定する。続いてプロセッサ10は決定した動作を示す動き情報を生成する。   Returning to FIG. 12, in step S28, the processor 10 functions as the virtual object control module 232 and the feedback module 233, and updates the operation of the target object 400 in the virtual space 2 based on both the motion information and the feedback information. This process may correspond to step S8 in FIG. The processor 10 reads the motion information of the displayed target object 400 from the memory module 240. Then, the processor 10 determines a new action of the target object 400 based on the motion information and the generated feedback information. Subsequently, the processor 10 generates motion information indicating the determined operation.

ステップS29において、プロセッサ10は視界画像生成モジュール223として機能し、標的オブジェクト400についての新たな動きを表示するための視界画像データをモーション情報およびフィードバック情報の双方に基づいて生成し、その視界画像データをHMD装置110に出力(送信)する。HMD装置110はその視界画像データを処理して視界画像300を更新する。これらの処理は図10でのステップS9,S10に対応し得る。視界画像300内の標的オブジェクト400の動作は、モーション情報で定義される所定の動作と、フィードバック情報で定義されるフィードバック動作(例えば振動)との和、組合せ、または混合になる。   In step S29, the processor 10 functions as the visual field image generation module 223, generates visual field image data for displaying a new movement of the target object 400 based on both the motion information and the feedback information, and the visual field image data. Is output (transmitted) to the HMD device 110. The HMD device 110 updates the view image 300 by processing the view image data. These processes can correspond to steps S9 and S10 in FIG. The motion of the target object 400 in the view image 300 is a sum, combination, or mixture of a predetermined motion defined by the motion information and a feedback motion (for example, vibration) defined by the feedback information.

ステップS30において、プロセッサ10が仮想空間2の提供を終了すると判定するまで、プロセッサ10はステップS23〜S29を繰り返す。   In step S30, the processor 10 repeats steps S23 to S29 until it determines that the processor 10 ends provision of the virtual space 2.

図16は、ある実施の形態に従う操作オブジェクト302と標的オブジェクト400との衝突の演出の一例を表す図である。この図における状態(A)は、操作オブジェクト302と標的オブジェクト400とが衝突した瞬間(剣が敵キャラクタの右手に当たった瞬間)を表す視界画像300を表す。プロセッサ10はこの衝突を検出したことを契機として、標的オブジェクト400における衝突部位を特定するとともに、その衝突に基づく標的オブジェクト400のフィードバック操作を示すフィードバック情報をリアルタイムに生成する。そして、プロセッサ10はこれらのモーション情報及びフィードバック情報を用いて、少なくとも衝突部位の動作を更新する。この一連の処理により、視界画像300は図16の状態(B)に変わり、標的オブジェクト400の衝突部位(右手)およびその周辺(例えば右腕)が振動するように描画される。   FIG. 16 is a diagram illustrating an example of the effect of the collision between the operation object 302 and the target object 400 according to an embodiment. A state (A) in this figure represents a visual field image 300 representing the moment when the operation object 302 and the target object 400 collide (the moment when the sword hits the right hand of the enemy character). In response to the detection of the collision, the processor 10 specifies a collision site in the target object 400 and generates feedback information indicating a feedback operation of the target object 400 based on the collision in real time. Then, the processor 10 updates at least the operation of the collision site using these motion information and feedback information. By this series of processing, the view image 300 changes to the state (B) of FIG. 16, and is drawn so that the collision site (right hand) of the target object 400 and its surroundings (for example, the right arm) vibrate.

状態(B)では標的オブジェクト400が自分の剣を少し下げているが、この動作はモーション情報に基づく動作であり、したがって、予め定められた動作である。一方、状態(B)における振動は、衝突の検出に基づいてリアルタイムに生成されたフィードバック情報に基づく動作であり、したがって、動的に生成された動作である。状態(B)における標的オブジェクト400の動作は、モーション情報に基づく動作に、フィードバック情報に基づく動作が追加されたものであるということができる。   In the state (B), the target object 400 slightly lowers its sword, but this operation is an operation based on the motion information, and is therefore a predetermined operation. On the other hand, the vibration in the state (B) is an operation based on feedback information generated in real time based on the detection of a collision, and thus is a dynamically generated operation. It can be said that the operation of the target object 400 in the state (B) is obtained by adding an operation based on feedback information to an operation based on motion information.

このような処理により、モーション情報に基づく標的オブジェクトの動作に、フィードバック情報に基づく衝突部位(あるいは、衝突部位およびその近くの部位)の動作が加わるので、衝突が視覚的に演出される。この演出により、ユーザ190は自身の操作オブジェクトが標的オブジェクトのどこに当たったかを一目で把握できる。したがって、仮想空間2におけるユーザ190の仮想体験のエンタテイメント性を向上させることができる。   By such processing, the motion of the target object based on the motion information is added with the motion of the collision site based on the feedback information (or the collision site and its nearby site), so that the collision is visually produced. By this effect, the user 190 can grasp at a glance where the operation object of the user 190 hits the target object. Therefore, the entertainment property of the virtual experience of the user 190 in the virtual space 2 can be improved.

衝突を表現するためのフィードバック情報は、予め用意されるのではなく、衝突が検出された際にリアルタイムに生成される。操作オブジェクト302と標的オブジェクト400との衝突のパターンはユーザ操作に依存して非常に多い。そのため、個々の衝突のパターンに適応するようにモーション情報を用意しようとすると、予め用意すべきモーション情報の量が非常に大きくなってしまう。さらに、衝突が発生する度にモーション情報をメモリモジュール240から読み出す必要があり、この処理に一定以上の時間を要するので、操作オブジェクト302および標的オブジェクト400などの仮想オブジェクトの動作の更新に時間が掛かってしまう。処理速度が低下すると、視界画像300の更新頻度(フレームレート)が低下してユーザ190がVR酔いしてしまう可能性がある。本開示の実施形態によれば、衝突時の標的オブジェクト400の動作をリアルタイムに計算することで、モーション情報を用いる場合よりも高速にフィードバック情報が得られるので、標的オブジェクト400の動作を高速に更新することができる。衝突のフィードバックが早く処理されるので、仮想空間2が円滑に表示され続け、VR酔いを防止することが可能になる。   Feedback information for expressing a collision is not prepared in advance, but is generated in real time when a collision is detected. There are many collision patterns between the operation object 302 and the target object 400 depending on the user operation. Therefore, if the motion information is prepared so as to adapt to each collision pattern, the amount of motion information to be prepared in advance becomes very large. Furthermore, it is necessary to read motion information from the memory module 240 every time a collision occurs, and this process takes a certain amount of time. Therefore, it takes time to update the motion of the virtual objects such as the operation object 302 and the target object 400. End up. When the processing speed decreases, the update frequency (frame rate) of the view field image 300 may decrease and the user 190 may get VR sick. According to the embodiment of the present disclosure, the motion of the target object 400 at the time of collision is calculated in real time, so that feedback information can be obtained at a higher speed than when motion information is used. can do. Since the collision feedback is processed quickly, the virtual space 2 continues to be displayed smoothly, and VR sickness can be prevented.

さらに、本開示の実施形態によれば、ヒットベクトルHVの向きおよび位置と衝突点HPとを固定させつつ、各部位固有のジョイントベクトルを用いて各部位のフィードバック情報が生成される。ヒットベクトルHVの位置および向きを移動させたり変形させたりする必要がないので、その分だけ計算量が低減される。したがって、フィードバック情報を生成する時間が短縮され、この結果、標的オブジェクト400の動作を高速に更新することができる。   Furthermore, according to the embodiment of the present disclosure, feedback information of each part is generated using the joint vector unique to each part while fixing the direction and position of the hit vector HV and the collision point HP. Since it is not necessary to move or change the position and orientation of the hit vector HV, the amount of calculation is reduced accordingly. Therefore, the time for generating feedback information is shortened, and as a result, the operation of the target object 400 can be updated at high speed.

さらに、本開示の実施形態によれば、ヒットベクトルHVの位置および向きを移動させたり変形させたりせず、ヒットベクトルHVの大きさのみが衝突部位からの距離に応じて減ぜられる。このようにヒットベクトルHVの大きさだけを調整することで、フィードバック情報の計算量を抑えつつ、迫真のあるフィードバック操作を出力することが可能になる。   Further, according to the embodiment of the present disclosure, the position and direction of the hit vector HV are not moved or deformed, and only the magnitude of the hit vector HV is reduced according to the distance from the collision site. Thus, by adjusting only the magnitude of the hit vector HV, it becomes possible to output a realistic feedback operation while suppressing the amount of calculation of feedback information.

[変形例]
以上、本開示の実施形態について説明したが、本発明の技術的範囲は、本実施形態の説明によって限定的に解釈されるべきではない。本実施形態は一例であって、特許請求の範囲に記載された発明の範囲内において、様々な実施形態の変更が可能であることが当業者によって理解されるところである。本発明の技術的範囲は、特許請求の範囲に記載された発明の範囲およびその均等の範囲に基づいて定められるべきである。
[Modification]
As mentioned above, although embodiment of this indication was described, the technical scope of this invention should not be limitedly interpreted by description of this embodiment. This embodiment is an example, and it is understood by those skilled in the art that various modifications can be made within the scope of the invention described in the claims. The technical scope of the present invention should be determined based on the scope of the invention described in the claims and the equivalents thereof.

図17を参照しながらフィードバック演算の変形について説明する。図17は、変形例に従う標的オブジェクト400のフィードバック動作の計算方法を表す図である。図17の状態(A)は、上方から降りてきた操作オブジェクト302(例えば、振り下ろされた剣)が標的オブジェクト400の手に当たった場面を示す。図17の状態(B)は、下方から上がってきた操作オブジェクト302(例えば、振り上げられた剣)が標的オブジェクト400の手に当たった場面を示す。状態(A)および(B)はいずれも、図15と同様に、標的オブジェクト400の右手に操作オブジェクト302が当たった場面を示す。   A modification of the feedback calculation will be described with reference to FIG. FIG. 17 is a diagram illustrating a calculation method of the feedback operation of the target object 400 according to the modification. The state (A) in FIG. 17 shows a scene in which the operation object 302 (for example, a sword that has been swung down) that has come down from above has hit the hand of the target object 400. A state (B) in FIG. 17 shows a scene in which the operation object 302 (for example, a sword swung up) that has come up from below hits the hand of the target object 400. Both states (A) and (B) show a scene in which the operation object 302 hits the right hand of the target object 400, as in FIG.

これらの例のようにヒットベクトルHVが鉛直方向(Y方向)の成分を含む場合には、プロセッサ10は、衝突部位のジョイントを中心として衝突点を、ヒットベクトルHVの鉛直方向(Y方向)で示される方向に所定の角度だけ回転移動させ、回転移動後の衝突点を用いてジョイントベクトルを設定してもよい。   When the hit vector HV includes a component in the vertical direction (Y direction) as in these examples, the processor 10 sets the collision point around the joint of the collision site in the vertical direction (Y direction) of the hit vector HV. The joint vector may be set using a collision point after the rotational movement by rotating the predetermined direction in the indicated direction.

状態(A)ではヒットベクトルHVの鉛直方向成分(Y方向成分)は下向きであるので、プロセッサ10は衝突点HPを下方に所定の角度だけ回転移動させることで衝突点HP´を設定する。そして、プロセッサ10は手ボーン411のジョイント421から衝突点HP´に至るジョイントベクトル511´を算出する。このジョイントベクトル511´は、ジョイント421から本来の衝突点HPに至るジョイントベクトル511をヒットベクトルHVの向きに基づいて回転移動させることで得られるベクトルであるともいえる。したがって、プロセッサ10は、まずジョイントベクトル511を求め、続いてジョイントベクトル511を回転移動させることでジョイントベクトル511´および衝突点HP´を求めてもよい。プロセッサ10は、他の対象部位についても、回転移動後の衝突点HP´に向かって延びるジョイントベクトル512´〜514´を求める。また、プロセッサ10は衝突点HPの移動に合わせてヒットベクトルHVを平行移動させることで、衝突点HP´を終点とするヒットベクトルHV´を求める。そして、プロセッサ10は、ヒットベクトルHV´および各ジョイントベクトル511´〜514´を用いて、上記実施形態と同様に各部位のフィードバック情報を生成する。   In the state (A), since the vertical component (Y direction component) of the hit vector HV is downward, the processor 10 sets the collision point HP ′ by rotating the collision point HP downward by a predetermined angle. Then, the processor 10 calculates a joint vector 511 ′ from the joint 421 of the hand bone 411 to the collision point HP ′. It can be said that this joint vector 511 ′ is a vector obtained by rotationally moving the joint vector 511 from the joint 421 to the original collision point HP based on the direction of the hit vector HV. Accordingly, the processor 10 may first obtain the joint vector 511, and then obtain the joint vector 511 ′ and the collision point HP ′ by rotationally moving the joint vector 511. The processor 10 obtains joint vectors 512 ′ to 514 ′ that extend toward the collision point HP ′ after the rotational movement for the other target parts. Further, the processor 10 obtains a hit vector HV ′ having the collision point HP ′ as an end point by translating the hit vector HV in accordance with the movement of the collision point HP. Then, the processor 10 uses the hit vector HV ′ and the joint vectors 511 ′ to 514 ′ to generate feedback information for each part as in the above embodiment.

状態(B)ではヒットベクトルHVの鉛直方向成分(Y方向成分)は上向きであるので、プロセッサ10は衝突点HPを上方に所定の角度だけ回転移動させることで衝突点HP´を設定する。そして、プロセッサ10は手ボーン411のジョイント421から衝突点HP´に至るジョイントベクトル511´を算出する。プロセッサ10は、まずジョイントベクトル511を求め、続いてジョイントベクトル511を回転移動させることでジョイントベクトル511´および衝突点HP´を求めてもよい。プロセッサ10は、他の対象部位である前腕、上腕、および胸についても、回転移動後の衝突点HP´に向かって延びるジョイントベクトル512´,513´,514´を求める。また、プロセッサ10はヒットベクトルHVを平行移動させることで、衝突点HP´を終点とするヒットベクトルHV´を求める。そして、プロセッサ10は、ヒットベクトルHV´および各ジョイントベクトル511´〜514´を用いて、上記実施形態と同様に各部位のフィードバック情報を生成する。   In the state (B), since the vertical component (Y direction component) of the hit vector HV is upward, the processor 10 sets the collision point HP ′ by rotating the collision point HP upward by a predetermined angle. Then, the processor 10 calculates a joint vector 511 ′ from the joint 421 of the hand bone 411 to the collision point HP ′. The processor 10 may first obtain the joint vector 511, and then obtain the joint vector 511 ′ and the collision point HP ′ by rotationally moving the joint vector 511. The processor 10 obtains joint vectors 512 ′, 513 ′, and 514 ′ that extend toward the collision point HP ′ after the rotational movement for the forearm, the upper arm, and the chest that are other target portions. Further, the processor 10 translates the hit vector HV to obtain a hit vector HV ′ having the collision point HP ′ as an end point. Then, the processor 10 uses the hit vector HV ′ and the joint vectors 511 ′ to 514 ′ to generate feedback information for each part as in the above embodiment.

このように、プロセッサ10は、ヒットベクトルHVの向きに基づいて各ジョイントベクトルの向きを補正した上でフィードバック情報を生成してもよい。この補正を行うことで、標的オブジェクト400の動き(例えば振動)をより迫真のあるものにすることができる。   Thus, the processor 10 may generate feedback information after correcting the direction of each joint vector based on the direction of the hit vector HV. By performing this correction, the movement (for example, vibration) of the target object 400 can be made more realistic.

フィードバック動作は振動に限定されない。例えば、プロセッサ10は、各部位について上記実施形態と同じ計算により角速度を計算することで該部位の移動可能範囲を求め、その範囲にわたって該部位を一時的に膨張させることで、あたかも該部位が腫れ上がった状態を演出してもよい。あるいは、フィードバック動作は複数の動作の組合せ(例えば振動および膨張の組合せ)でもよい。   The feedback operation is not limited to vibration. For example, the processor 10 calculates the angular velocity by the same calculation as that in the above embodiment for each part to obtain a movable range of the part, and temporarily expands the part over the range, so that the part is swollen. You may produce a state. Alternatively, the feedback operation may be a combination of a plurality of operations (eg, a combination of vibration and expansion).

上記実施形態においては、HMD装置110によってユーザ190が没入する仮想空間(VR空間)を例示して説明したが、HMD装置110として、透過型のHMD装置を採用してもよい。この場合、透過型のHMD装置を介してユーザ190が視認する現実空間に仮想空間を構成する画像の一部を合成した視界画像を出力することにより、拡張現実(AR:Augumented Reality)空間または複合現実(MR:Mixed Reality)空間における仮想体験をユーザ190に提供してもよい。この場合、手オブジェクト301に代えて、ユーザ190の手の動きに基づいて、仮想空間2内における他の仮想オブジェクト(以下ではこれを「対象オブジェクト」という)への作用を生じさせてもよい。具体的には、プロセッサ10は、現実空間におけるユーザ190の手の位置の座標情報を特定するとともに、仮想空間2内における対象オブジェクトの位置を現実空間における座標情報との関係で定義してもよい。これにより、プロセッサ10は、現実空間におけるユーザ190の手と仮想空間2における対象オブジェクトとの位置関係を把握し、ユーザ190の手と対象オブジェクトとの間で上述したコリジョン制御等に対応する処理を実行可能となる。その結果、ユーザ190の手の動きに基づいて対象オブジェクトに作用を与えることが可能となる。   In the above embodiment, the virtual space (VR space) in which the user 190 is immersed by the HMD device 110 has been described as an example. However, as the HMD device 110, a transmissive HMD device may be employed. In this case, an augmented reality (AR) space or a composite image is output by outputting a visual field image obtained by synthesizing a part of an image constituting the virtual space to the real space visually recognized by the user 190 via the transmission type HMD device. A virtual experience in a Reality (MR) space may be provided to the user 190. In this case, instead of the hand object 301, an action may be performed on another virtual object in the virtual space 2 (hereinafter referred to as “target object”) based on the hand movement of the user 190. Specifically, the processor 10 may specify the coordinate information of the position of the hand of the user 190 in the real space and define the position of the target object in the virtual space 2 in relation to the coordinate information in the real space. . Thereby, the processor 10 grasps the positional relationship between the hand of the user 190 in the real space and the target object in the virtual space 2, and performs processing corresponding to the above-described collision control between the hand of the user 190 and the target object. It becomes executable. As a result, it is possible to act on the target object based on the hand movement of the user 190.

本明細書に開示された主題は、例えば、以下のような項目として示される。   The subject matter disclosed in the present specification is indicated as, for example, the following items.

(項目1)
表示部(ディスプレイ112)を備えるヘッドマウントデバイス(HMD装置110)を介してユーザ(ユーザ190)に仮想空間(仮想空間2)を提供するためにコンピュータ(コンピュータ200またはサーバ150)によって実行される情報処理方法であって、
前記ユーザに関連付けられた操作オブジェクト(操作オブジェクト302)と、所定のモーション情報に基づいて動作する複数の部位を有する標的オブジェクト(標的オブジェクト400)とを含む前記仮想空間を規定する仮想空間データを生成するステップ(図10のステップS1または図12のステップS21)と、
前記操作オブジェクトと前記標的オブジェクトとの衝突が検出された場合に、該衝突に基づく前記標的オブジェクトの衝突部位のフィードバック動作を少なくとも示すフィードバック情報を生成するステップ(図12のステップS27)と、
前記モーション情報および前記フィードバック情報を用いて、少なくとも前記衝突部位の動作を更新するステップ(図12のステップS28)と、
前記仮想空間データと、更新された前記少なくとも衝突部位の動作とに基づいて視界画像(視界画像300)を生成し、前記表示部に該視界画像を表示させるステップ(図10のステップS10または図12のステップS29)と
を含む情報処理方法。
(Item 1)
Information executed by a computer (computer 200 or server 150) to provide a virtual space (virtual space 2) to a user (user 190) via a head mounted device (HMD device 110) including a display unit (display 112). A processing method,
Generate virtual space data defining the virtual space including an operation object (operation object 302) associated with the user and a target object (target object 400) having a plurality of parts that operate based on predetermined motion information (Step S1 in FIG. 10 or Step S21 in FIG. 12)
When a collision between the operation object and the target object is detected, a step of generating feedback information indicating at least a feedback operation of a collision portion of the target object based on the collision (step S27 in FIG. 12);
Using the motion information and the feedback information to update at least the operation of the collision site (step S28 in FIG. 12);
A step of generating a view field image (view field image 300) based on the virtual space data and the updated motion of at least the collision site, and displaying the view field image on the display unit (step S10 in FIG. 10 or FIG. 12). Information processing method including step S29).

本項目の情報処理方法によれば、操作オブジェクトと標的オブジェクトとが衝突すると、標的オブジェクトの衝突部位がフィードバック動作を行う。このフィードバック動作による視覚的な演出により、ユーザは操作オブジェクトが標的オブジェクトのどこに当たったかを一目で把握できる。この結果、仮想空間におけるユーザの仮想体験のエンタテイメント性を向上させることができる。   According to the information processing method of this item, when the operation object and the target object collide, the collision part of the target object performs a feedback operation. The visual presentation by the feedback operation allows the user to grasp at a glance where the operation object hits the target object. As a result, it is possible to improve the entertainment property of the user's virtual experience in the virtual space.

また、本項目の情報処理方法によれば、衝突時の標的オブジェクトの動作を、モーション情報を用いることなくリアルタイムに計算することで、モーション情報を用いる場合よりも高速にフィードバック情報が得られるので、標的オブジェクトの動作を高速に更新することができる。衝突のフィードバックが早く処理されるので、仮想空間を円滑に表示させ続けることができる。ひいてはユーザのVR酔いを防止することが可能になる。   In addition, according to the information processing method of this item, since the motion of the target object at the time of collision is calculated in real time without using motion information, feedback information can be obtained faster than when using motion information. The motion of the target object can be updated at high speed. Since the collision feedback is processed quickly, the virtual space can be displayed smoothly. As a result, it is possible to prevent the VR sickness of the user.

(項目2)
前記衝突部位を含む2以上の前記部位のフィードバック動作を示す前記フィードバック情報を生成するステップ(図12のステップS27)
を含む項目1の情報処理方法。
(Item 2)
The step of generating the feedback information indicating the feedback operation of two or more parts including the collision part (step S27 in FIG. 12).
Information processing method for item 1 including:

本項目の情報処理方法によれば、衝突部位を含む複数の部位に対してフィードバック動作が適用されるので、仮想空間におけるユーザの仮想体験のエンタテイメント性をさらに向上させることができる。各部位のフィードバック動作はモーション情報を用いることなくリアルタイムに計算されるので、複数の部位の動作を高速に更新することができ、その結果、仮想空間を円滑に表示させ続けることができる。   According to the information processing method of this item, since the feedback operation is applied to a plurality of parts including the collision part, the entertainment property of the user's virtual experience in the virtual space can be further improved. Since the feedback operation of each part is calculated in real time without using motion information, the actions of a plurality of parts can be updated at high speed, and as a result, the virtual space can be displayed smoothly.

(項目3)
前記操作オブジェクトと前記標的オブジェクトとの衝突点(衝突点HP)を特定するステップ(図14のステップS271)と、
前記標的オブジェクトと衝突した前記操作オブジェクトの動作を示すヒットベクトル(ヒットベクトルHV)を算出するステップ(図14のステップS271)と、
前記2以上の部位のそれぞれについて、該部位のジョイント(ジョイント421〜424)から前記衝突点に至るジョイントベクトル(ジョイントベクトル511〜514)を算出するステップ(図14のステップS272〜S277)と、
前記2以上の部位のそれぞれについて、前記ヒットベクトルと該部位に対応する前記ジョイントベクトルとに基づいて該部位の前記フィードバック情報を生成するステップ(図14のステップS272〜S277)と
を含む項目2の情報処理方法。
(Item 3)
A step of identifying a collision point (collision point HP) between the operation object and the target object (step S271 in FIG. 14);
A step of calculating a hit vector (hit vector HV) indicating a motion of the operation object colliding with the target object (step S271 in FIG. 14);
For each of the two or more parts, calculating a joint vector (joint vectors 511 to 514) from the joint (joint 421 to 424) of the part to the collision point (steps S272 to S277 in FIG. 14);
For each of the two or more parts, the step of generating the feedback information of the part based on the hit vector and the joint vector corresponding to the part (steps S272 to S277 in FIG. 14) Information processing method.

本項目の情報処理方法によれば、ヒットベクトルおよび衝突点を固定させつつ、各部位のジョイントベクトルを用いて各部位のフィードバック情報が生成される。ヒットベクトルの位置および向きを移動させたり変形させたりする必要がないので、その分だけ計算量が低減される。したがって、フィードバック情報を生成する時間を短縮することができる。   According to the information processing method of this item, feedback information of each part is generated using the joint vector of each part while fixing the hit vector and the collision point. Since it is not necessary to move or change the position and orientation of the hit vector, the amount of calculation is reduced accordingly. Therefore, the time for generating feedback information can be shortened.

(項目4)
前記衝突部位から離れた部位ほど前記ヒットベクトルを減衰させるステップ
を含む項目3の情報処理方法。
(Item 4)
4. The information processing method according to item 3, including a step of attenuating the hit vector toward a part farther from the collision part.

本項目の情報処理方法によれば、ヒットベクトルの位置および向きを移動させたり変形させたりせず、ヒットベクトルの大きさのみが衝突部位からの距離に応じて減ぜられる。このようにヒットベクトルの大きさだけを調整することで、フィードバック情報の計算量を抑えつつ、迫真のあるフィードバック操作を出力することが可能になる。   According to the information processing method of this item, the position and direction of the hit vector are not moved or deformed, and only the size of the hit vector is reduced according to the distance from the collision site. In this way, by adjusting only the size of the hit vector, it is possible to output an accurate feedback operation while suppressing the amount of calculation of feedback information.

(項目5)
前記ヒットベクトルの向きに基づいて各ジョイントベクトルの向きを補正するステップ
を含む項目3または4の情報処理方法。
(Item 5)
5. The information processing method according to item 3 or 4, comprising a step of correcting the direction of each joint vector based on the direction of the hit vector.

本項目の情報処理方法によれば、操作オブジェクトの動作に合わせてジョイントベクトルの向きを補正することで、迫真のあるフィードバック操作を出力することが可能になる。   According to the information processing method of this item, it is possible to output a true feedback operation by correcting the direction of the joint vector in accordance with the operation of the operation object.

(項目6)
各部位の前記フィードバック動作が、該部位のボーン(ボーン411〜414)と交差する方向に沿った振動を含む、
項目1〜5のいずれかの情報処理方法。
(Item 6)
The feedback action of each part includes vibrations along a direction intersecting the bones of the part (bones 411 to 414).
The information processing method according to any one of items 1 to 5.

本項目の情報処理方法によれば、フィードバック動作が振動で表されるので、衝突時の演出が高まる。その結果、仮想空間におけるユーザの仮想体験のエンタテイメント性を向上させることができる。   According to the information processing method of this item, since the feedback operation is represented by vibration, the effect at the time of collision is enhanced. As a result, it is possible to improve the entertainment characteristics of the virtual experience of the user in the virtual space.

(項目7)
項目1〜6のいずれかの情報処理方法をコンピュータに実行させるプログラム。
(Item 7)
A program for causing a computer to execute the information processing method according to any of items 1 to 6.

(項目8)
少なくともメモリ(メモリモジュール240)と、前記メモリに結合されたプロセッサ(プロセッサ10)とを備え、前記プロセッサの制御により項目1〜6のいずれかの情報処理方法を実行する、装置。
(Item 8)
An apparatus comprising at least a memory (memory module 240) and a processor (processor 10) coupled to the memory, wherein the information processing method according to any one of items 1 to 6 is executed under the control of the processor.

1…仮想カメラ、2…仮想空間、5…基準視線、10…プロセッサ、11…メモリ、12…ストレージ、13…入出力インターフェース、14…通信インターフェース、15…バス、19…ネットワーク、21…中心、22…仮想空間画像、23…視界領域、24,25…領域、30…グリップ、31…フレーム、32…天面、33,34,36,37…ボタン、35…赤外線LED、38…アナログスティック、100,100A,100B,100C…HMDシステム、110,110A,110B,110C…HMD装置、112…ディスプレイ、114…センサ、116…カメラ、118…マイク、120…HMDセンサ、130…モーションセンサ、140…注視センサ、150…サーバ、160…コントローラ、160R…右コントローラ、190,190A…ユーザ、200…コンピュータ、220…表示制御モジュール、221…仮想カメラ制御モジュール、222…視界領域決定モジュール、223…視界画像生成モジュール、224…基準視線特定モジュール、230…仮想空間制御モジュール、231…仮想空間定義モジュール、232…仮想オブジェクト制御モジュール、233…フィードバックモジュール、240…メモリモジュール、241…空間情報、242…オブジェクト情報、243…ユーザ情報、250…通信制御モジュール、300…視界画像、301…手オブジェクト、302…操作オブジェクト、400…標的オブジェクト、401…ボーン、402…ジョイント、411…手ボーン、412…前腕ボーン、413…上腕ボーン、414…胸ボーン、511〜514,511´〜514´…ジョイントベクトル、810…右手、HV,HV´…ヒットベクトル、HP,HP´…衝突点。 DESCRIPTION OF SYMBOLS 1 ... Virtual camera, 2 ... Virtual space, 5 ... Base line of sight, 10 ... Processor, 11 ... Memory, 12 ... Storage, 13 ... Input / output interface, 14 ... Communication interface, 15 ... Bus, 19 ... Network, 21 ... Center, 22 ... Virtual space image, 23 ... Field of view, 24, 25 ... Area, 30 ... Grip, 31 ... Frame, 32 ... Top, 33, 34, 36, 37 ... Button, 35 ... Infrared LED, 38 ... Analog stick, 100, 100A, 100B, 100C ... HMD system, 110, 110A, 110B, 110C ... HMD device, 112 ... display, 114 ... sensor, 116 ... camera, 118 ... microphone, 120 ... HMD sensor, 130 ... motion sensor, 140 ... Gaze sensor 150 ... server 160 ... controller 160R ... right Troller, 190, 190A ... user, 200 ... computer, 220 ... display control module, 221 ... virtual camera control module, 222 ... visual field region determination module, 223 ... visual field image generation module, 224 ... reference visual line identification module, 230 ... virtual space Control module, 231 ... Virtual space definition module, 232 ... Virtual object control module, 233 ... Feedback module, 240 ... Memory module, 241 ... Spatial information, 242 ... Object information, 243 ... User information, 250 ... Communication control module, 300 ... Field-of-view image, 301 ... hand object, 302 ... operation object, 400 ... target object, 401 ... bone, 402 ... joint, 411 ... hand bone, 412 ... forearm bone, 413 ... upper arm bone, 41 ... breast bone, 511~514,511'~514' ... joint vector, 810 ... right hand, HV, HV' ... hit vector, HP, HP' ... the collision point.

Claims (5)

表示部を備えるヘッドマウントデバイスを介してユーザに仮想空間を提供するためにコンピュータによって実行される情報処理方法であって、
前記ユーザに関連付けられた操作オブジェクトと、所定のモーション情報に基づいて動作する複数の部位を有する標的オブジェクトとを含む前記仮想空間を規定する仮想空間データを生成するステップと、
前記操作オブジェクトと前記標的オブジェクトとの衝突が検出された場合に、該衝突に基づく前記標的オブジェクトの衝突部位を含む2以上の前記部位のフィードバック動作を示すフィードバック情報を生成するステップと、
前記モーション情報および前記フィードバック情報を用いて、少なくとも前記衝突部位の動作を更新するステップと、
前記仮想空間データと、更新された前記少なくとも衝突部位の動作とに基づいて視界画像を生成し、前記表示部に該視界画像を表示させるステップと、をみ、
前記フィードバック情報を生成するステップは、
前記操作オブジェクトと前記標的オブジェクトとの衝突点を特定するステップと、
前記標的オブジェクトと衝突した前記操作オブジェクトの動作を示すヒットベクトルを算出するステップと、
前記2以上の部位のそれぞれについて、該部位のジョイントから前記衝突点に至るジョイントベクトルを算出するステップと、
前記ヒットベクトルの向きに基づいて各ジョイントベクトルの向きを補正するステップと、
前記2以上の部位のそれぞれについて、前記ヒットベクトルと該部位に対応しかつ向きが補正された前記ジョイントベクトルとに基づいて該部位の前記フィードバック情報を生成するステップと、を含む情報処理方法。
An information processing method executed by a computer to provide a virtual space to a user via a head-mounted device including a display unit,
Generating virtual space data defining the virtual space including an operation object associated with the user and a target object having a plurality of parts that operate based on predetermined motion information;
If the collision with the operation object and the target object is detected, and generating two or more indicates to the feedback information feedback operation of the site containing the impingement site of the target object based on the collision,
Using the motion information and the feedback information to update at least the operation of the collision site;
The virtual space data, updated the generate field image based on the operation of the at least crash site, seen including a step of displaying the convergent field image, to the display unit,
The step of generating the feedback information includes:
Identifying a collision point between the operation object and the target object;
Calculating a hit vector indicating a motion of the operation object colliding with the target object;
For each of the two or more parts, calculating a joint vector from the joint of the part to the collision point;
Correcting the direction of each joint vector based on the direction of the hit vector;
Wherein each of the two or more sites, step a, an including information processing method for generating the feedback information the site on the basis of said joint vector the hit vector and corresponding vital direction to the site is corrected.
前記衝突部位から離れた部位ほど前記ヒットベクトルを減衰させるステップを含む請求項に記載の情報処理方法。 Including steps of attenuating the hit vector as a site distant from the collision site, information processing method according to claim 1. 各部位の前記フィードバック動作が、該部位のボーンと交差する方向に沿った振動を含む、請求項1又は2に記載の情報処理方法。 The feedback operation of each site comprises a vibration along the direction intersecting with the site of bone, information processing method according to Motomeko 1 or 2. 請求項1〜のいずれか一項に記載の情報処理方法をコンピュータに実行させるプログラム。 The program which makes a computer perform the information processing method as described in any one of Claims 1-3 . 少なくともメモリと、前記メモリに結合されたプロセッサとを備え、前記プロセッサの制御により請求項1〜のいずれか一項に記載の情報処理方法を実行する、装置。 At least comprising a memory and a processor coupled to the memory, to execute the information processing method according to any one of claims 1 to 3 by the control of the processor, device.
JP2017080877A 2017-04-14 2017-04-14 Information processing method, apparatus, and program for causing computer to execute information processing method Active JP6298557B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017080877A JP6298557B1 (en) 2017-04-14 2017-04-14 Information processing method, apparatus, and program for causing computer to execute information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017080877A JP6298557B1 (en) 2017-04-14 2017-04-14 Information processing method, apparatus, and program for causing computer to execute information processing method

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2018031366A Division JP2018175849A (en) 2018-02-23 2018-02-23 Information processing method, apparatus, and program for implementing that information processing method in computer

Publications (2)

Publication Number Publication Date
JP6298557B1 true JP6298557B1 (en) 2018-03-20
JP2018181017A JP2018181017A (en) 2018-11-15

Family

ID=61629133

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017080877A Active JP6298557B1 (en) 2017-04-14 2017-04-14 Information processing method, apparatus, and program for causing computer to execute information processing method

Country Status (1)

Country Link
JP (1) JP6298557B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112424728A (en) * 2018-07-20 2021-02-26 索尼公司 Information processing apparatus, information processing method, and program

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001067490A (en) * 1999-08-25 2001-03-16 Namco Ltd Image generation system and information recording medium
JP2007272267A (en) * 2006-03-30 2007-10-18 Namco Bandai Games Inc Image generation system, program and information storage medium
JP6058184B1 (en) * 2016-03-10 2017-01-11 株式会社コロプラ Method and program for controlling head mounted display system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001067490A (en) * 1999-08-25 2001-03-16 Namco Ltd Image generation system and information recording medium
JP2007272267A (en) * 2006-03-30 2007-10-18 Namco Bandai Games Inc Image generation system, program and information storage medium
JP6058184B1 (en) * 2016-03-10 2017-01-11 株式会社コロプラ Method and program for controlling head mounted display system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112424728A (en) * 2018-07-20 2021-02-26 索尼公司 Information processing apparatus, information processing method, and program

Also Published As

Publication number Publication date
JP2018181017A (en) 2018-11-15

Similar Documents

Publication Publication Date Title
JP6263252B1 (en) Information processing method, apparatus, and program for causing computer to execute information processing method
JP6201028B1 (en) Information processing method, apparatus, and program for causing computer to execute information processing method
JP6248219B1 (en) Information processing method, computer, and program for causing computer to execute information processing method
JP2018147465A (en) Information processing method, device, and program for causing computer to execute the method
JP6368404B1 (en) Information processing method, program, and computer
JP6479933B1 (en) Program, information processing apparatus, and method
JP2019133309A (en) Program, information processor and information processing method
JP2018175849A (en) Information processing method, apparatus, and program for implementing that information processing method in computer
JP6419268B1 (en) Information processing method, apparatus, and program for causing computer to execute information processing method
JP6966257B2 (en) Information processing methods, programs, and computers
JP6978240B2 (en) An information processing method, a device, and a program for causing a computer to execute the information processing method.
JP2019087262A (en) Program, information processing device and method
JP6278546B1 (en) Information processing method, apparatus, and program for causing computer to execute information processing method
JP6263292B1 (en) Information processing method, computer, and program for causing computer to execute information processing method
JP6298557B1 (en) Information processing method, apparatus, and program for causing computer to execute information processing method
JP2019020836A (en) Information processing method, device, and program for causing computer to execute the method
JP2018092592A (en) Information processing method, apparatus, and program for implementing that information processing method on computer
JP6965304B2 (en) Programs, information processing devices, and information processing methods
JP2018067297A (en) Information processing method, apparatus, and program for causing computer to implement information processing method
JP6392953B1 (en) Information processing method, apparatus, and program for causing computer to execute information processing method
JP6441517B1 (en) Program, information processing apparatus, and method
JP7064265B2 (en) Programs, information processing devices, and information processing methods for providing virtual experiences
JP6330072B1 (en) Information processing method, apparatus, and program for causing computer to execute information processing method
JP2019016358A (en) Information processing method, program and computer
JP2019048045A (en) Information processing method device, and program for causing computer to execute the information processing method

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171215

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180223

R150 Certificate of patent or registration of utility model

Ref document number: 6298557

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250