Programs and systems
The system enhances content control usability in HMDs by incorporating motion detection and customizable operation modes, thereby improving visual control operability and user experience in virtual environments.
Patent Information
- Application Number
- JP2024058876
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2024-04-01
- Publication Date
- 2025-05-14
- Estimated Expiration
- 2038-12-27
AI Technical Summary
There is a need to improve the usability of content control in virtual spaces provided by head-mounted displays (HMDs), particularly in controlling the user's field of vision in response to head movements or external controller inputs.
The system includes a control means for managing content, a motion detection means to track device movements, a reception means for accepting input to control content, and operation modes that adjust content control based on the amount of device movement or movement speed, allowing users to select their preferred control mode.
This solution enhances the operability of visual control in HMD systems, providing users with intuitive and customizable control over their field of vision, thereby improving the overall user experience in virtual environments.
Smart Images

Figure 0007676618000001 
Figure 0007676618000002 
Figure 0007676618000003
Abstract
Description
[Technical field]
[0001] The present disclosure relates to a program and a system. [Background technology]
[0002] In a virtual space provided to a user by a head mounted display, the user's field of view is usually controlled by the movement of the head mounted display, but may also be controlled in response to input from an external controller (see, for example, Patent Document 1). [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Patent No. 5869177 Summary of the Invention [Problem to be solved by the invention]
[0004] Control of content on users' devices leaves room for improvement.
[0005] The present disclosure aims to improve operability for controlling content. [Means for solving the problem]
[0006] According to one aspect of the present disclosure, a program includes: a control unit for controlling content; The computer is caused to execute a motion detection means for detecting motion of a device for controlling the content, a reception means for receiving an input for enabling control of the content in accordance with the motion of the device, and a content control means for controlling the content in accordance with an operation mode selected by a user on a menu screen from among a first operation mode for controlling the content in accordance with the amount of movement of the device and a second operation mode for controlling the content in accordance with the movement speed of the device while the enabling input is being received. Effect of the Invention
[0007] According to the present disclosure, it is possible to improve the operability of field of view control. [Brief description of the drawings]
[0008] [Figure 1] FIG. 1 is a diagram illustrating an outline of the configuration of an HMD system according to an embodiment. [Diagram 2] FIG. 1 is a block diagram illustrating an example of a hardware configuration of a computer according to an embodiment. [Diagram 3] FIG. 2 is a diagram conceptually illustrating a uvw field of view coordinate system set in an HMD according to an embodiment. [Figure 4] FIG. 1 is a diagram conceptually illustrating one mode of expressing a virtual space according to an embodiment. [Diagram 5] 1 is a top view of the head of a user wearing an HMD according to one embodiment. [Figure 6] 1 is a diagram showing a YZ cross section of a field of view in a virtual space as viewed from an X direction. [Figure 7] 1 is a diagram showing an XZ cross section of a field of view in a virtual space as viewed from the Y direction. [Figure 8(A)] FIG. 2 is a diagram illustrating a schematic configuration of a controller according to an embodiment. [Figure 8(B)] FIG. 2 illustrates an example of yaw, roll, and pitch directions defined relative to a user's right hand according to one embodiment. [Figure 9] FIG. 2 is a block diagram illustrating an example of a hardware configuration of a server according to an embodiment. [Figure 10] FIG. 1 is a block diagram illustrating a modular configuration of a computer according to an embodiment. [Figure 11] 1 is a sequence chart showing a part of a process executed in an HMD set according to an embodiment. [Figure 12(A)] 1 is a schematic diagram showing a situation in which each HMD provides a virtual space to a user in a network. [Figure 12(B)] FIG. 13 is a diagram showing a visual field image of a user 5A in FIG. [Figure 13] FIG. 2 is a sequence diagram showing a process executed in an HMD system according to an embodiment. [Figure 14] FIG. 2 is a block diagram illustrating a detailed configuration of a module of a computer according to an embodiment. [Figure 15] 10 is a flow chart illustrating a process for controlling a gaze direction according to one embodiment. [Figure 16] 11A to 11C are diagrams illustrating an example of control of the line of sight direction in accordance with the movement of the controller. [Figure 17] 11A to 11C are diagrams illustrating an example of control of the line of sight direction in accordance with the movement of the controller. [Figure 18] FIG. 17 is a diagram showing an example of a field of view image in the state shown in FIG. 16. [Figure 19] FIG. 18 is a diagram showing an example of a field of view image in the state shown in FIG. 17. [Figure 20] 4 is a flow chart illustrating a process for controlling video playback according to one embodiment. [Figure 21] FIG. 13 is a diagram showing an example of a field of view image when controlling playback of a video. [Figure 22] 10 is a flow chart illustrating a process for controlling a gaze direction according to one embodiment. [Diagram 23] 1 is a flow chart illustrating an example of a field of view image displayed according to one embodiment. [Figure 24] 1 is a flow chart illustrating an example of a field of view image displayed according to one embodiment. [Diagram 25] 1 is a flow chart illustrating an example of a field of view image displayed according to one embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0009] Hereinafter, the embodiment of this technical idea will be described in detail with reference to the drawings. In the following description, the same parts are given the same reference numerals. Their names and functions are also the same. Therefore, detailed descriptions thereof will not be repeated. In one or more embodiments shown in this disclosure, the elements included in each embodiment can be combined with each other, and the combined result also forms part of the embodiment shown in this disclosure.
[0010] [HMD system configuration] The configuration of an HMD (Head-Mounted Device) system 100 will be described with reference to Fig. 1. Fig. 1 is a diagram showing an outline of the configuration of an HMD system 100 according to the present embodiment. The HMD system 100 is provided as a system for home use or a system for commercial use.
[0011] The HMD system 100 includes a server 600, HMD sets 110A, 110B, 110C, and 110D, an external device 700, and a network 2. Each of the HMD sets 110A, 110B, 110C, and 110D is configured to be able to communicate with the server 600 and the external device 700 via the network 2. Hereinafter, the HMD sets 110A, 110B, 110C, and 110D are collectively referred to as an HMD set 110. The number of HMD sets 110 constituting the HMD system 100 is not limited to four, and may be three or less, or five or more. The HMD set 110 includes an HMD 120, a computer 200, an HMD sensor 410, a display 430, and a controller 300. The HMD 120 includes a monitor 130, a gaze sensor 140, a first camera 150, a second camera 160, a microphone 170, and a speaker 180. The controller 300 may include a motion sensor 420.
[0012] In one aspect, the computer 200 can be connected to the Internet or other network 2, and can communicate with a server 600 or other computers connected to the network 2. Examples of the other computers include computers of other HMD sets 110 and external devices 700. In another aspect, the HMD 120 can include a sensor 190 instead of the HMD sensor 410.
[0013] The HMD 120 is worn on the head of the user 5 and can provide a virtual space to the user 5 during operation. More specifically, the HMD 120 displays an image for the right eye and an image for the left eye on the monitor 130. When each eye of the user 5 views the respective image, the user 5 can recognize the image as a three-dimensional image based on the parallax between the two eyes. The HMD 120 can include both a so-called head-mounted display equipped with a monitor and a head-mounted device to which a smartphone or other terminal having a monitor can be attached.
[0014] The monitor 130 is realized, for example, as a non-transmissive display device. In one aspect, the monitor 130 is disposed on the body of the HMD 120 so as to be located in front of both eyes of the user 5. Therefore, when the user 5 visually recognizes the three-dimensional image displayed on the monitor 130, the user 5 can be immersed in the virtual space. In one aspect, the virtual space includes, for example, images of a background, objects that the user 5 can operate, and menus that the user 5 can select. In one aspect, the monitor 130 can be realized as a liquid crystal monitor or an organic EL (Electro Luminescence) monitor provided in a so-called smartphone or other information display terminal.
[0015] In another aspect, the monitor 130 may be realized as a transmissive display device. In this case, the HMD 120 may be an open type such as a glasses type, instead of a closed type that covers the eyes of the user 5 as shown in FIG. 1. The transmissive monitor 130 may be temporarily configurable as a non-transmissive display device by adjusting the transmittance. The monitor 130 may include a configuration that simultaneously displays a part of an image that configures a virtual space and a real space. For example, the monitor 130 may display an image of the real space captured by a camera mounted on the HMD 120, or may make the real space visible by setting a part of the transmittance high.
[0016] In one aspect, the monitor 130 may include a sub-monitor for displaying an image for the right eye and a sub-monitor for displaying an image for the left eye. In another aspect, the monitor 130 may be configured to integrally display an image for the right eye and an image for the left eye. In this case, the monitor 130 includes a high-speed shutter. The high-speed shutter operates to alternately display an image for the right eye and an image for the left eye so that the image is recognized by only one of the eyes.
[0017] In one aspect, the HMD 120 includes a plurality of light sources (not shown). Each light source is realized, for example, by an LED (Light Emitting Diode) that emits infrared rays. The HMD sensor 410 has a position tracking function for detecting the movement of the HMD 120. More specifically, the HMD sensor 410 reads a plurality of infrared rays emitted by the HMD 120 and detects the position and inclination of the HMD 120 in the real space.
[0018] In another aspect, the HMD sensor 410 may be realized by a camera. In this case, the HMD sensor 410 can detect the position and inclination of the HMD 120 by performing image analysis processing using image information of the HMD 120 output from the camera.
[0019] In another aspect, the HMD 120 may include a sensor 190 as a position detector instead of or in addition to the HMD sensor 410. The HMD 120 may detect the position and tilt of the HMD 120 itself using the sensor 190. For example, if the sensor 190 is an angular velocity sensor, a geomagnetic sensor, or an acceleration sensor, the HMD 120 may detect the position and tilt of the HMD 120 itself using any of these sensors instead of the HMD sensor 410. As an example, if the sensor 190 is an angular velocity sensor, the angular velocity sensor detects the angular velocity of the HMD 120 around three axes in real space over time. The HMD 120 calculates the change in angle of the HMD 120 around the three axes over time based on each angular velocity, and further calculates the tilt of the HMD 120 based on the change in angle over time.
[0020] The gaze sensor 140 detects the direction in which the gaze of the right eye and the left eye of the user 5 are directed. That is, the gaze sensor 140 detects the gaze of the user 5. The detection of the gaze direction is realized, for example, by a known eye tracking function. The gaze sensor 140 is realized by a sensor having the eye tracking function. In a certain aspect, the gaze sensor 140 preferably includes a sensor for the right eye and a sensor for the left eye. The gaze sensor 140 may be, for example, a sensor that irradiates the right eye and the left eye of the user 5 with infrared light and detects the rotation angle of each eyeball by receiving reflected light from the cornea and the iris of the irradiated light. The gaze sensor 140 can detect the gaze of the user 5 based on each detected rotation angle.
[0021] The first camera 150 photographs the lower part of the face of the user 5. More specifically, the first camera 150 photographs the nose, mouth, and the like of the user 5. The second camera 160 photographs the eyes, eyebrows, and the like of the user 5. The housing of the HMD 120 on the user 5 side is defined as the inside of the HMD 120, and the housing of the HMD 120 on the opposite side to the user 5 is defined as the outside of the HMD 120. In one aspect, the first camera 150 may be disposed outside the HMD 120, and the second camera 160 may be disposed inside the HMD 120. Images generated by the first camera 150 and the second camera 160 are input to the computer 200. In another aspect, the first camera 150 and the second camera 160 may be realized as a single camera, and the face of the user 5 may be photographed by this single camera.
[0022] The microphone 170 converts the speech of the user 5 into an audio signal (electrical signal) and outputs it to the computer 200. The speaker 180 converts the audio signal into sound and outputs it to the user 5. In another aspect, the HMD 120 may include earphones instead of the speaker 180.
[0023] The controller 300 is connected to the computer 200 by wire or wirelessly. The controller 300 accepts input of a command from the user 5 to the computer 200. In one aspect, the controller 300 is configured to be held by the user 5. In another aspect, the controller 300 is configured to be attached to a part of the body or clothing of the user 5. In yet another aspect, the controller 300 may be configured to output at least one of vibration, sound, and light based on a signal transmitted from the computer 200. In yet another aspect, the controller 300 accepts an operation from the user 5 to control the position and movement of an object placed in a virtual space.
[0024] In one aspect, the controller 300 includes a plurality of light sources. Each light source is realized, for example, by an LED that emits infrared rays. The HMD sensor 410 has a position tracking function. In this case, the HMD sensor 410 reads a plurality of infrared rays emitted by the controller 300 and detects the position and tilt of the controller 300 in the real space. In another aspect, the HMD sensor 410 may be realized by a camera. In this case, the HMD sensor 410 can detect the position and tilt of the controller 300 by performing an image analysis process using image information of the controller 300 output from the camera.
[0025] In one aspect, the motion sensor 420 is attached to the hand of the user 5 and detects the movement of the hand of the user 5. For example, the motion sensor 420 detects the rotation speed, number of rotations, etc. of the hand. The detected signal is sent to the computer 200. The motion sensor 420 is provided, for example, in the controller 300. In one aspect, the motion sensor 420 is provided, for example, in the controller 300 configured to be held by the user 5. In another aspect, for safety in the real space, the controller 300 is attached to something that is not easily blown away by being worn on the hand of the user 5, such as a glove type. In yet another aspect, a sensor that is not worn by the user 5 may detect the movement of the hand of the user 5. For example, a signal from a camera that captures the user 5 may be input to the computer 200 as a signal representing the movement of the user 5. The motion sensor 420 and the computer 200 are connected to each other wirelessly, for example. 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.
[0026] The display 430 displays an image similar to the image displayed on the monitor 130. This allows users other than the user 5 wearing the HMD 120 to view the same image as the user 5. The image displayed on the display 430 does not need to be a three-dimensional image, and may be an image for the right eye or an image for the left eye. Examples of the display 430 include a liquid crystal display and an organic EL monitor.
[0027] The server 600 may transmit a program to the computer 200. In another aspect, the server 600 may communicate with other computers 200 for providing a virtual reality to the HMD 120 used by other users. For example, in an amusement facility, when multiple users play a participatory game, each computer 200 communicates a signal based on the operation of each user with the other computers 200 via the server 600, enabling multiple users to enjoy a common game in the same virtual space. Each computer 200 may communicate a signal based on the operation of each user with the other computers 200 without going through the server 600.
[0028] The external device 700 may be any device capable of communicating with the computer 200. The external device 700 may be, for example, a device capable of communicating with the computer 200 via the network 2, or a device capable of directly communicating with the computer 200 via short-distance wireless communication or a wired connection. Examples of the external device 700 include, but are not limited to, a smart device, a PC (Personal Computer), and a peripheral device of the computer 200.
[0029] [Computer hardware configuration] A computer 200 according to this embodiment will be described with reference to Fig. 2. Fig. 2 is a block diagram showing an example of a hardware configuration of computer 200 according to this embodiment. Computer 200 includes, as main components, a processor 210, a memory 220, a storage 230, an input / output interface 240, and a communication interface 250. Each component is connected to a bus 260.
[0030] Processor 210 executes a series of instructions included in a program stored in memory 220 or storage 230, based on a signal provided to computer 200 or based on the establishment of a predetermined condition. In one aspect, processor 210 is realized as a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor unit (MPU), a field-programmable gate array (FPGA), or other device.
[0031] The memory 220 temporarily stores programs and data. The programs are loaded from, for example, the storage 230. The data includes data input to the computer 200 and data generated by the processor 210. In one aspect, the memory 220 is realized as a random access memory (RAM) or other volatile memory.
[0032] The storage 230 permanently holds programs and data. The storage 230 is realized, for example, as a ROM (Read-Only Memory), a hard disk drive, a flash memory, or other non-volatile storage device. The programs stored in the storage 230 include a program for providing a virtual space in the HMD system 100, a simulation program, a game program, a user authentication program, and a program for realizing communication with other computers 200. The data stored in the storage 230 includes data and objects for defining the virtual space.
[0033] In another aspect, the storage 230 may be realized as a removable storage device such as a memory card. In yet another aspect, a configuration may be used in which programs and data stored in an external storage device are used instead of the storage 230 built into the computer 200. With such a configuration, for example, in a scene where a plurality of HMD systems 100 are used, such as an amusement facility, it becomes possible to collectively update the programs and data.
[0034] The input / output interface 240 communicates signals between the HMD 120, the HMD sensor 410, the motion sensor 420, and the display 430. The monitor 130, the gaze sensor 140, the first camera 150, the second camera 160, the microphone 170, and the speaker 180 included in the HMD 120 can communicate with the computer 200 via the input / output interface 240 of the HMD 120. In one aspect, the input / output interface 240 is realized using a terminal such as a Universal Serial Bus (USB), a Digital Visual Interface (DVI), a High-Definition Multimedia Interface (HDMI (registered trademark)), or the like. The input / output interface 240 is not limited to those described above.
[0035] In one aspect, the input / output interface 240 may further communicate with the controller 300. For example, the input / output interface 240 receives input of signals output from the controller 300 and the motion sensor 420. In another aspect, the input / output interface 240 sends an instruction output from the processor 210 to the controller 300. The instruction instructs the controller 300 to vibrate, output sound, emit light, or the like. Upon receiving the instruction, the controller 300 executes one of the vibration, sound output, or light emission in response to the instruction.
[0036] The communication interface 250 is connected to the network 2 and communicates with other computers (e.g., the server 600) connected to the network 2. In one aspect, the communication interface 250 is realized as, for example, a wired communication interface such as a local area network (LAN), or a wireless communication interface such as wireless fidelity (WiFi), Bluetooth (registered trademark), near field communication (NFC), etc. The communication interface 250 is not limited to those mentioned above.
[0037] In one aspect, the processor 210 accesses the storage 230, loads one or more programs stored in the storage 230 into the memory 220, and executes a series of instructions included in the programs. The one or more programs may include an operating system of the computer 200, an application program for providing a virtual space, game software executable in the virtual space, and the like. The processor 210 sends a signal for providing the virtual space to the HMD 120 via the input / output interface 240. The HMD 120 displays an image on the monitor 130 based on the signal.
[0038] 2 shows a configuration in which the computer 200 is provided outside the HMD 120, but in another aspect, the computer 200 may be built into the HMD 120. As an example, a portable information and communication terminal (e.g., a smartphone) including the monitor 130 may function as the computer 200.
[0039] The computer 200 may be configured to be shared by multiple HMDs 120. With such a configuration, for example, the same virtual space can be provided to multiple users, allowing each user to enjoy the same application as other users in the same virtual space.
[0040] In one embodiment, in the HMD system 100, a real coordinate system, which is a coordinate system in real space, is set in advance. The real coordinate system has three reference directions (axes) that are parallel to the vertical direction in real space, the horizontal direction perpendicular to the vertical direction, and the front-rear direction perpendicular to both the vertical direction and the horizontal direction. The horizontal direction, the vertical direction (up-down direction), and the front-rear direction in the real coordinate system are defined as the x-axis, y-axis, and z-axis, respectively. More specifically, in the real coordinate system, the x-axis is parallel to the horizontal direction in real space. The y-axis is parallel to the vertical direction in real space. The z-axis is parallel to the front-rear direction in real space.
[0041] In one aspect, the HMD sensor 410 includes an infrared sensor. When the infrared sensor detects infrared rays emitted from each light source of the HMD 120, it detects the presence of the HMD 120. The HMD sensor 410 further detects the position and tilt (orientation) of the HMD 120 in the real space according to the movement of the user 5 wearing the HMD 120 based on the value of each point (each coordinate value in the real coordinate system). More specifically, the HMD sensor 410 can detect the temporal change in the position and tilt of the HMD 120 using each value detected over time.
[0042] Each tilt of the HMD 120 detected by the HMD sensor 410 corresponds to each tilt around the three axes of the HMD 120 in the real coordinate system. The HMD sensor 410 sets a uvw field of view coordinate system for the HMD 120 based on the tilt of the HMD 120 in the real coordinate system. The uvw field of view coordinate system set for the HMD 120 corresponds to a viewpoint coordinate system when the user 5 wearing the HMD 120 views an object in a virtual space.
[0043] [uvw field of view coordinate system] The uvw field of view coordinate system will be described with reference to Fig. 3. Fig. 3 is a conceptual diagram showing the uvw field of view coordinate system set in the HMD 120 according to an embodiment. The HMD sensor 410 detects the position and inclination of the HMD 120 in the real coordinate system when the HMD 120 is started up. The processor 210 sets the uvw field of view coordinate system in the HMD 120 based on the detected values.
[0044] 3, the HMD 120 sets a three-dimensional uvw visual coordinate system with the head of the user 5 wearing the HMD 120 as its center (origin). More specifically, the HMD 120 tilts the horizontal, vertical, and front-back directions (x-axis, y-axis, z-axis) that define the real coordinate system around each axis by the tilt of the HMD 120 around each axis in the real coordinate system, and sets the three newly obtained directions as the pitch axis (u-axis), yaw axis (v-axis), and roll axis (w-axis) of the uvw visual coordinate system in the HMD 120.
[0045] In a certain situation, when the user 5 wearing the HMD 120 stands upright and looks straight ahead, the processor 210 sets a uvw field of view coordinate system parallel to the real coordinate system in the HMD 120. In this case, the horizontal direction (x-axis), vertical direction (y-axis), and front-back direction (z-axis) in the real coordinate system coincide with the pitch axis (u-axis), yaw axis (v-axis), and roll axis (w-axis) of the uvw field of view coordinate system in the HMD 120.
[0046] After the uvw visual coordinate system is set in the HMD 120, the HMD sensor 410 can detect the tilt of the HMD 120 in the set uvw visual coordinate system based on the movement of the HMD 120. In this case, the HMD sensor 410 detects the pitch angle (θu), yaw angle (θv), and roll angle (θw) of the HMD 120 in the uvw visual coordinate system as the tilt of the HMD 120. The pitch angle (θu) represents the tilt angle of the HMD 120 around the pitch axis in the uvw visual coordinate system. The yaw angle (θv) represents the tilt angle of the HMD 120 around the yaw axis in the uvw visual coordinate system. The roll angle (θw) represents the tilt angle of the HMD 120 around the roll axis in the uvw visual coordinate system.
[0047] The HMD sensor 410 sets, in the HMD 120, a uvw visual field coordinate system in the HMD 120 after the HMD 120 moves, based on the detected tilt of the HMD 120. The relationship between the HMD 120 and the uvw visual field coordinate system of the HMD 120 is always constant, regardless of the position and tilt of the HMD 120. When the position and tilt of the HMD 120 change, the position and tilt of the uvw visual field coordinate system of the HMD 120 in the real coordinate system change in conjunction with the change in the position and tilt.
[0048] In one aspect, the HMD sensor 410 may specify the position of the HMD 120 in the real space as a relative position with respect to the HMD sensor 410 based on the light intensity of the infrared light acquired based on the output from the infrared sensor and the relative positional relationship between a plurality of points (e.g., the distance between each point, etc.). The processor 210 may determine the origin of the uvw field of view coordinate system of the HMD 120 in the real space (actual coordinate system) based on the specified relative position.
[0049] [Virtual space] The virtual space will be further described with reference to FIG. 4. FIG. 4 is a diagram conceptually showing one mode of expressing the virtual space 11 according to an embodiment. The virtual space 11 has a spherical structure covering the entire 360-degree direction of the center 12. In FIG. 4, in order to avoid complicating the description, the upper half of the celestial sphere in the virtual space 11 is illustrated. Each mesh is defined in the virtual space 11. The position of each mesh is defined in advance as a coordinate value in the XYZ coordinate system, which is a global coordinate system defined in the virtual space 11. The computer 200 associates each partial image constituting the panoramic image 13 (still image, video, etc.) that can be deployed in the virtual space 11 with each corresponding mesh in the virtual space 11.
[0050] In a certain aspect, an XYZ coordinate system is defined in the virtual space 11 with the center 12 as the origin. The XYZ coordinate system is, for example, parallel to the real coordinate system. The horizontal direction, vertical direction (up-down direction), and front-back direction in the XYZ coordinate system are defined as the X-axis, Y-axis, and Z-axis, respectively. Therefore, the X-axis (horizontal direction) of the XYZ coordinate system is parallel to the x-axis of the real coordinate system, the Y-axis (vertical direction) of the XYZ coordinate system is parallel to the y-axis of the real coordinate system, and the Z-axis (front-back direction) of the XYZ coordinate system is parallel to the z-axis of the real coordinate system.
[0051] When the HMD 120 is started up, that is, in the initial state of the HMD 120, the virtual camera 14 is placed at the center 12 of the virtual space 11. In a certain aspect, the processor 210 displays an image captured by the virtual camera 14 on the monitor 130 of the HMD 120. The virtual camera 14 moves in the virtual space 11 in conjunction with the movement of the HMD 120 in the real space. This allows changes in the position and inclination of the HMD 120 in the real space to be reproduced in the virtual space 11 in the same manner.
[0052] A uvw field of view coordinate system is defined for the virtual camera 14, similarly to the case of the HMD 120. The uvw field of view coordinate system of the virtual camera 14 in the virtual space 11 is defined so as to be linked to the uvw field of view coordinate system of the HMD 120 in the real space (actual coordinate system). Therefore, when the inclination of the HMD 120 changes, the inclination of the virtual camera 14 also changes accordingly. The virtual camera 14 can also move in the virtual space 11 in conjunction with the movement in the real space of the user 5 wearing the HMD 120.
[0053] Processor 210 of computer 200 defines viewing area 15 in virtual space 11 based on the position and inclination (reference line of sight 16) of virtual camera 14. Viewing area 15 corresponds to the area of virtual space 11 that is visually recognized by user 5 wearing HMD 120. In other words, the position of virtual camera 14 can be said to be the viewpoint of user 5 in virtual space 11.
[0054] The line of sight of the user 5 detected by the gaze sensor 140 is a direction in the viewpoint coordinate system when the user 5 views an object. The uvw field of view coordinate system of the HMD 120 is equal to the viewpoint coordinate system when the user 5 views the monitor 130. The uvw field of view coordinate system of the virtual camera 14 is linked to the uvw field of view coordinate system of the HMD 120. Therefore, in a certain aspect, the HMD system 100 can consider the line of sight of the user 5 detected by the gaze sensor 140 as the line of sight of the user 5 in the uvw field of view coordinate system of the virtual camera 14.
[0055] [User's gaze] Determination of the line of sight of the user 5 will be described with reference to Fig. 5. Fig. 5 is a top view of the head of the user 5 wearing the HMD 120 according to an embodiment.
[0056] In one aspect, the gaze sensor 140 detects the gaze of each of the right eye and the left eye of the user 5. In one aspect, when the user 5 is looking at something close, the gaze sensor 140 detects the gazes R1 and L1. In another aspect, when the user 5 is looking at something far away, the gaze sensor 140 detects the gazes R2 and L2. In this case, the angle that the gazes R2 and L2 make with respect to the roll axis w is smaller than the angle that the gazes R1 and L1 make with respect to the roll axis w. The gaze sensor 140 transmits the detection result to the computer 200.
[0057] When the computer 200 receives the detection values of the lines of sight R1 and L1 from the gaze sensor 140 as the gaze detection result, the computer 200 identifies the gaze point N1, which is the intersection of the lines of sight R1 and L1, based on the detection values. On the other hand, when the computer 200 receives the detection values of the lines of sight R2 and L2 from the gaze sensor 140, the computer 200 identifies the intersection of the lines of sight R2 and L2 as the gaze point. The computer 200 identifies the gaze N0 of the user 5 based on the position of the identified gaze point N1. For example, the computer 200 detects the direction of the line passing through the midpoint of the line connecting the right eye R and the left eye L of the user 5 and the gaze point N1 as the gaze N0. The gaze N0 is the direction in which the user 5 actually looks with both eyes. The gaze N0 corresponds to the direction in which the user 5 actually looks with respect to the field of view 15.
[0058] In another aspect, the HMD system 100 may include a television broadcast receiving tuner. With such a configuration, the HMD system 100 can display television programs in the virtual space 11.
[0059] In yet another aspect, the HMD system 100 may be provided with a communication circuit for connecting to the Internet, or a telephone function for connecting to a telephone line.
[0060] [Visibility area] The field of view 15 will be described with reference to Fig. 6 and Fig. 7. Fig. 6 is a diagram showing a YZ cross section of the field of view 15 in the virtual space 11 as viewed from the X direction. Fig. 7 is a diagram showing an XZ cross section of the field of view 15 in the virtual space 11 as viewed from the Y direction.
[0061] 6, the field of view 15 in the YZ cross section includes an area 18. The area 18 is defined by the position of the virtual camera 14, the reference line of sight 16, and the YZ cross section of the virtual space 11. The processor 210 defines as the area 18 a range including the polar angle α centered on the reference line of sight 16 in the virtual space.
[0062] 7, the field of view 15 in the XZ cross section includes an area 19. The area 19 is defined by the position of the virtual camera 14, the reference line of sight 16, and the XZ cross section of the virtual space 11. The processor 210 defines a range including an azimuth angle β centered on the reference line of sight 16 in the virtual space 11 as the area 19. The polar angles α and β are determined according to the position of the virtual camera 14 and the inclination (direction) of the virtual camera 14.
[0063] In a certain aspect, the HMD system 100 provides the user 5 with a field of view in the virtual space 11 by displaying a field of view image 17 on the monitor 130 based on a signal from the computer 200. The field of view image 17 is an image corresponding to a portion of the panoramic image 13 that corresponds to the field of view area 15. When the user 5 moves the HMD 120 worn on the head, the virtual camera 14 also moves in conjunction with the movement. As a result, the position of the field of view area 15 in the virtual space 11 changes. As a result, the field of view image 17 displayed on the monitor 130 is updated to an image of the panoramic image 13 that is superimposed on the field of view area 15 in the direction in which the user 5 is facing in the virtual space 11. The user 5 can view a desired direction in the virtual space 11.
[0064] In this way, the inclination of virtual camera 14 corresponds to the line of sight (reference line of sight 16) of user 5 in virtual space 11, and the position at which virtual camera 14 is placed corresponds to the viewpoint of user 5 in virtual space 11. Therefore, by changing the position or inclination of virtual camera 14, the image displayed on monitor 130 is updated and the field of view of user 5 is moved.
[0065] While wearing the HMD 120, the user 5 can view only the panoramic image 13 deployed in the virtual space 11, without viewing the real world. Therefore, the HMD system 100 can give the user 5 a high sense of immersion in the virtual space 11.
[0066] In one aspect, the processor 210 may move the virtual camera 14 in the virtual space 11 in conjunction with the movement in real space of the user 5 wearing the HMD 120. In this case, the processor 210 specifies the image area (field of view area 15) to be projected onto the monitor 130 of the HMD 120 based on the position and inclination of the virtual camera 14 in the virtual space 11.
[0067] In one aspect, the virtual camera 14 may include 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. An appropriate parallax is set for the two virtual cameras so that the user 5 can recognize the three-dimensional virtual space 11. In another aspect, the virtual camera 14 may be realized by one virtual camera. In this case, an image for the right eye and an image for the left eye may be generated from an image obtained by one virtual camera. In this embodiment, the technical idea according to the present disclosure is illustrated by assuming that the virtual camera 14 includes two virtual cameras and is configured so that a roll axis (w) generated by combining the roll axes of the two virtual cameras is adapted to the roll axis (w) of the HMD 120.
[0068] [controller] An example of the controller 300 will be described with reference to Fig. 8. Fig. 8 is a diagram showing a schematic configuration of the controller 300 according to an embodiment.
[0069] As shown in FIG. 8, in one aspect, the controller 300 may include a right controller 300R and a left controller (not shown). The right controller 300R is operated by the right hand of the user 5. The left controller is operated by the left hand of the user 5. In one aspect, the right controller 300R and the left controller are configured symmetrically as separate devices. Therefore, the user 5 can freely move the right hand holding the right controller 300R and the left hand holding the left controller. In another aspect, the controller 300 may be an integrated controller that accepts operations from both hands. The right controller 300R will be described below.
[0070] The right controller 300R includes a grip 310, a frame 320, and a top surface 330. The grip 310 is configured to be held by the right hand of the user 5. For example, the grip 310 can be held by the palm and three fingers (middle finger, ring finger, and little finger) of the right hand of the user 5.
[0071] The grip 310 includes buttons 340 and 350 and a motion sensor 420. The button 340 is disposed on a side of the grip 310 and is operated by the middle finger of the right hand. The button 350 is disposed on the front of the grip 310 and is operated by the index finger of the right hand. In one aspect, the buttons 340 and 350 are configured as trigger-type buttons. The motion sensor 420 is built into the housing of the grip 310. In a case where the movement of the user 5 can be detected from around the user 5 by a camera or other device, the grip 310 does not need to include the motion sensor 420.
[0072] The frame 320 includes a plurality of infrared LEDs 360 arranged along its circumferential direction. The infrared LEDs 360 emit infrared light in accordance with the progress of a program using the controller 300 during execution of the program. The infrared light emitted from the infrared LEDs 360 can be used to detect the positions and attitudes (tilt, direction) of the right controller 300R and the left controller. In the example shown in FIG. 8, the infrared LEDs 360 are arranged in two rows, but the number of rows is not limited to that shown in FIG. 8. An arrangement in one row or three or more rows may be used.
[0073] The top surface 330 includes buttons 370, 380 and an analog stick 390. The buttons 370, 380 are configured as push buttons. The buttons 370, 380 are operated by the thumb of the right hand of the user 5. The analog stick 390, in a certain situation, is operated in any direction within 360 degrees from an initial position (neutral position). The operation includes, for example, an operation for moving an object placed in the virtual space 11.
[0074] In one aspect, the right controller 300R and the left controller include a battery for driving the infrared LED 360 and other components. The battery may be, but is not limited to, a rechargeable battery, a button battery, or a dry cell battery. In another aspect, the right controller 300R and the left controller may be connected to, for example, a USB interface of the computer 200. In this case, the right controller 300R and the left controller do not require a battery.
[0075] 8, for example, the yaw, roll, and pitch directions are defined for the right hand of the user 5. When the user 5 extends his / her thumb and index finger, the extending direction of the thumb is defined as the yaw direction, the extending direction of the index finger is defined as the roll direction, and the direction perpendicular to the plane defined by the axis of the yaw direction and the axis of the roll direction is defined as the pitch direction.
[0076] [Server hardware configuration] Server 600 according to this embodiment will be described with reference to Fig. 9. Fig. 9 is a block diagram showing an example of a hardware configuration of server 600 according to an embodiment. Server 600 includes, as main components, a processor 610, a memory 620, a storage 630, an input / output interface 640, and a communication interface 650. Each component is connected to a bus 660.
[0077] The processor 610 executes a series of instructions included in a program stored in the memory 620 or the storage 630 based on a signal provided to the server 600 or based on the establishment of a predetermined condition. In one aspect, the processor 610 is realized as a CPU, a GPU, an MPU, an FPGA, or other device.
[0078] The memory 620 temporarily stores programs and data. The programs are loaded from, for example, the storage 630. The data includes data input to the server 600 and data generated by the processor 610. In one aspect, the memory 620 is realized as a RAM or other volatile memory.
[0079] The storage 630 permanently holds programs and data. The storage 630 is realized, for example, as a ROM, a hard disk drive, a flash memory, or other non-volatile storage device. The programs stored in the storage 630 may include a program for providing a virtual space in the HMD system 100, a simulation program, a game program, a user authentication program, and a program for realizing communication with the computer 200. The data stored in the storage 630 may include data and objects for defining the virtual space.
[0080] In another aspect, the storage 630 may be realized as a removable storage device such as a memory card. In yet another aspect, a configuration may be used in which programs and data stored in an external storage device are used instead of the storage 630 built into the server 600. With such a configuration, for example, in a scene where a plurality of HMD systems 100 are used, such as an amusement facility, it becomes possible to collectively update programs and data.
[0081] The input / output interface 640 communicates signals with input / output devices. In one aspect, the input / output interface 640 is realized using a terminal such as a USB, a DVI, an HDMI, etc. The input / output interface 640 is not limited to the above.
[0082] The communication interface 650 is connected to the network 2 and communicates with the computer 200 connected to the network 2. In one aspect, the communication interface 650 is realized as, for example, a LAN or other wired communication interface, or a wireless communication interface such as WiFi, Bluetooth, NFC, etc. The communication interface 650 is not limited to the above.
[0083] In one aspect, the processor 610 accesses the storage 630, loads one or more programs stored in the storage 630 into the memory 620, and executes a series of instructions included in the programs. The one or more programs may include an operating system of the server 600, an application program for providing a virtual space, game software executable in the virtual space, etc. The processor 610 may send a signal for providing the virtual space to the computer 200 via the input / output interface 640.
[0084] [HMD control device] The control device of the HMD 120 will be described with reference to Fig. 10. In one embodiment, the control device is realized by a computer 200 having a known configuration. Fig. 10 is a block diagram showing the computer 200 according to one embodiment as a modular configuration.
[0085] 10, the computer 200 includes a control module 510, a rendering module 520, a memory module 530, and a communication control module 540. In one aspect, the control module 510 and the rendering module 520 are implemented by the processor 210. In another aspect, a plurality of processors 210 may operate as the control module 510 and the rendering module 520. The memory module 530 is implemented by the memory 220 or the storage 230. The communication control module 540 is implemented by the communication interface 250.
[0086] The control module 510 controls the virtual space 11 provided to the user 5. The control module 510 defines the virtual space 11 in the HMD system 100 by using virtual space data representing the virtual space 11. The virtual space data is stored in, for example, the memory module 530. The control module 510 may generate the virtual space data or obtain the virtual space data from the server 600 or the like.
[0087] The control module 510 places the object in the virtual space 11 using object data representing the object. The object data is stored in, for example, the memory module 530. The control module 510 may generate the object data or obtain the object data from the server 600 or the like. The object may include, for example, an avatar object that is an alter ego of the user 5, a character object, an operation object such as a virtual hand operated by the controller 300, landscapes including forests, mountains, and the like, cityscapes, animals, and the like that are placed according to the progress of the story of the game.
[0088] Control module 510 places an avatar object of user 5 of another computer 200 connected via network 2 in virtual space 11. In one aspect, control module 510 places an avatar object of user 5 in virtual space 11. In one aspect, control module 510 places an avatar object imitating user 5 in virtual space 11 based on an image including user 5. In another aspect, control module 510 places an avatar object selected by user 5 from among a plurality of types of avatar objects (e.g., objects imitating animals and deformed human objects) in virtual space 11.
[0089] The control module 510 determines the inclination of the HMD 120 based on the output of the HMD sensor 410. In another aspect, the control module 510 determines the inclination of the HMD 120 based on the output of the sensor 190 functioning as a motion sensor. The control module 510 detects organs (e.g., mouth, eyes, eyebrows) constituting the face of the user 5 from the image of the face of the user 5 generated by the first camera 150 and the second camera 160. The control module 510 detects the movement (shape) of each detected organ.
[0090] The control module 510 detects the line of sight of the user 5 in the virtual space 11 based on a signal from the gaze sensor 140. The control module 510 detects a viewpoint position (coordinate value in the XYZ coordinate system) where the detected line of sight of the user 5 intersects with the celestial sphere of the virtual space 11. More specifically, the control module 510 detects the viewpoint position based on the line of sight of the user 5 defined in the uvw coordinate system and the position and inclination of the virtual camera 14. The control module 510 transmits the detected viewpoint position to the server 600. In another aspect, the control module 510 may be configured to transmit line of sight information representing the line of sight of the user 5 to the server 600. In such a case, the server 600 may calculate the viewpoint position based on the line of sight information received.
[0091] The control module 510 reflects the movement of the HMD 120 detected by the HMD sensor 410 in the avatar object. For example, the control module 510 detects that the HMD 120 is tilted and tilts and positions the avatar object. The control module 510 reflects the detected movement of the facial organs in the face of the avatar object placed in the virtual space 11. The control module 510 receives line-of-sight information of the other user 5 from the server 600 and reflects it in the line of sight of the avatar object of the other user 5. In a certain aspect, the control module 510 reflects the movement of the controller 300 in the avatar object or the operation object. In this case, the controller 300 includes a motion sensor, an acceleration sensor, or a plurality of light-emitting elements (e.g., infrared LEDs) for detecting the movement of the controller 300.
[0092] The control module 510 places an operation object in the virtual space 11 for receiving an operation of the user 5 in the virtual space 11. The user 5 operates the operation object to, for example, operate an object placed in the virtual space 11. In one aspect, the operation object may include, for example, a hand object that is a virtual hand corresponding to the hand of the user 5. In one aspect, the control module 510 moves the hand object in the virtual space 11 in conjunction with the movement of the hand of the user 5 in the real space based on the output of the motion sensor 420. In one aspect, the operation object may correspond to a part of the hand of an avatar object.
[0093] The control module 510 detects a collision when each of the objects arranged in the virtual space 11 collides with another object. The control module 510 can detect, for example, the timing when a collision area of a certain object touches a collision area of another object, and performs a predetermined process when the detection is made. The control module 510 can detect the timing when an object is no longer in contact with another object, and performs a predetermined process when the detection is made. The control module 510 can detect a state in which an object is in contact with another object. For example, when an operation object touches another object, the control module 510 detects that the operation object has touched the other object, and performs a predetermined process.
[0094] In one aspect, the control module 510 controls image display on the monitor 130 of the HMD 120. For example, the control module 510 places a virtual camera 14 in the virtual space 11. The control module 510 controls the position of the virtual camera 14 in the virtual space 11 and the tilt (direction) of the virtual camera 14. The control module 510 defines a field of view 15 according to the tilt of the head of the user 5 wearing the HMD 120 and the position of the virtual camera 14. The rendering module 520 generates a field of view image 17 to be displayed on the monitor 130 based on the determined field of view 15. The field of view image 17 generated by the rendering module 520 is output to the HMD 120 by the communication control module 540.
[0095] When the control module 510 detects an utterance by the user 5 using the microphone 170 from the HMD 120, it identifies the computer 200 to which voice data corresponding to the utterance is to be transmitted. The voice data is transmitted to the computer 200 identified by the control module 510. When the control module 510 receives voice data from another user's computer 200 via the network 2, it outputs a voice (utterance) corresponding to the voice data from the speaker 180.
[0096] The memory module 530 holds data used by the computer 200 to provide the virtual space 11 to the user 5. In one aspect, the memory module 530 holds space information, object information, and user information.
[0097] The spatial information holds one or more templates defined to provide the virtual space 11 .
[0098] The object information includes a plurality of panoramic images 13 constituting the virtual space 11, and object data for arranging objects in the virtual space 11. The panoramic images 13 may include still images and moving images. The panoramic images 13 may include images of unreal spaces and images of real spaces. Examples of images of unreal spaces include images generated by computer graphics.
[0099] The user information holds a user ID for identifying the user 5. The user ID may be, for example, an Internet Protocol (IP) address or a Media Access Control (MAC) address set in the computer 200 used by the user. In another aspect, the user ID may be set by the user. The user information includes a program for causing the computer 200 to function as a control device for the HMD system 100, and the like.
[0100] The data and programs stored in the memory module 530 are input by the user 5 of the HMD 120. Alternatively, the processor 210 downloads the programs or data from a computer (e.g., the server 600) operated by the operator providing the content, and stores the downloaded programs or data in the memory module 530.
[0101] The communication control module 540 can communicate with the server 600 and other information communication devices via the network 2.
[0102] In one aspect, the control module 510 and the rendering module 520 may be realized using, for example, Unity (registered trademark) provided by Unity Technologies, Inc. In another aspect, the control module 510 and the rendering module 520 may be realized as a combination of circuit elements that realize each process.
[0103] The processing in the computer 200 is realized by hardware and software executed by the processor 210. Such software may be stored in advance in a hard disk or other memory module 530. The software may be stored in a CD-ROM or other computer-readable non-volatile data recording medium and distributed as a program product. Alternatively, the software may be provided as a downloadable program product 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 reading device, or downloaded from the server 600 or other computer via the communication control module 540, and then temporarily stored in a storage module. The software is read from the storage module by the processor 210 and stored in the RAM in the form of an executable program. The processor 210 executes the program.
[0104] [HMD system control structure] The control structure of the HMD set 110 will be described with reference to Fig. 11. Fig. 11 is a sequence chart showing a part of the processing executed in the HMD set 110 according to an embodiment.
[0105] As shown in FIG. 11, in step S1110, the processor 210 of the computer 200, acting as the control module 510, specifies virtual space data and defines the virtual space 11.
[0106] In step S1120, the processor 210 initializes the virtual camera 14. For example, the processor 210 places the virtual camera 14 at a center 12 defined in advance in the virtual space 11 in a work area of the memory, and directs the line of sight of the virtual camera 14 in the direction in which the user 5 is facing.
[0107] In step S1130, the processor 210, functioning as the rendering module 520, generates field of view image data for displaying an initial field of view image. The generated field of view image data is output to the HMD 120 by the communication control module 540.
[0108] In step S1132, the monitor 130 of the HMD 120 displays a field of view image based on the field of view image data received from the computer 200. The user 5 wearing the HMD 120 can recognize the virtual space 11 by visually recognizing the field of view image.
[0109] In step S1134, the HMD sensor 410 detects the position and inclination of the HMD 120 based on the multiple infrared lights emitted from the HMD 120. The detection result is output to the computer 200 as motion detection data.
[0110] In step S1140, the processor 210 identifies the viewing direction of the user 5 wearing the HMD 120 based on the position and tilt included in the motion detection data of the HMD 120.
[0111] In step S1150, processor 210 executes the application program and places objects in virtual space 11 based on instructions included in the application program.
[0112] In step S1160, controller 300 detects an operation of user 5 based on a signal output from motion sensor 420, and outputs detection data representing the detected operation to computer 200. In another aspect, the operation of controller 300 by user 5 may be detected based on images from cameras arranged around user 5.
[0113] In step S1170, processor 210 detects an operation of controller 300 by user 5 based on the detection data acquired from controller 300.
[0114] In step S1180, the processor 210 generates field of view image data based on the operation of the controller 300 by the user 5. The generated field of view image data is output to the HMD 120 by the communication control module 540.
[0115] In step S1190, the HMD 120 updates the field of view image based on the received field of view image data, and displays the updated field of view image on the monitor 130.
[0116] [Avatar Object] Avatar objects according to the present embodiment will be described with reference to Figs. 12(A) and (B). Hereinafter, avatar objects of each user 5 of HMD sets 110A and 110B will be described. Hereinafter, the user of HMD set 110A will be represented as user 5A, the user of HMD set 110B as user 5B, the user of HMD set 110C as user 5C, and the user of HMD set 110D as user 5D. A is added to the reference symbol of each component related to HMD set 110A, B is added to the reference symbol of each component related to HMD set 110B, C is added to the reference symbol of each component related to HMD set 110C, and D is added to the reference symbol of each component related to HMD set 110D. For example, HMD 120A is included in HMD set 110A.
[0117] FIG. 12(A) is a schematic diagram showing a situation in which each HMD 120 provides a virtual space 11 to a user 5 in a network 2. Computers 200A to 200D provide virtual spaces 11A to 11D to users 5A to 5D via HMDs 120A to 120D, respectively. In the example shown in FIG. 12(A), virtual space 11A and virtual space 11B are configured by the same data. In other words, computer 200A and computer 200B share the same virtual space. In virtual space 11A and virtual space 11B, an avatar object 6A of user 5A and an avatar object 6B of user 5B exist. Although avatar object 6A in virtual space 11A and avatar object 6B in virtual space 11B each wear an HMD 120, this is for the sake of easy understanding of the explanation, and in reality, these objects do not wear an HMD 120.
[0118] In one aspect, the processor 210A may place a virtual camera 14A that captures a field of view image 17A of the user 5A at the eye position of the avatar object 6A.
[0119] Fig. 12(B) is a diagram showing a field of view image 17A of user 5A in Fig. 12(A). Field of view image 17A is an image displayed on monitor 130A of HMD 120A. This field of view image 17A is an image generated by virtual camera 14A. An avatar object 6B of user 5B is displayed in field of view image 17A. Although not particularly shown, avatar object 6A of user 5A is also displayed in the field of view image of user 5B.
[0120] 12(B), the user 5A can communicate with the user 5B by dialogue via the virtual space 11A. More specifically, the voice of the user 5A acquired by the microphone 170A is transmitted to the HMD 120B of the user 5B via the server 600 and output from the speaker 180B provided in the HMD 120B. The voice of the user 5B is transmitted to the HMD 120A of the user 5A via the server 600 and output from the speaker 180A provided in the HMD 120A.
[0121] The motion of the user 5B (the motion of the HMD 120B and the motion of the controller 300B) is reflected in the avatar object 6B placed in the virtual space 11A by the processor 210A. This allows the user 5A to recognize the motion of the user 5B through the avatar object 6B.
[0122] Fig. 13 is a sequence chart showing a part of the processing executed in the HMD system 100 according to the present embodiment. Although the HMD set 110D is not shown in Fig. 13, the HMD set 110D operates in the same manner as the HMD sets 110A, 110B, and 110C. In the following description, A is added to the reference symbol of each component related to the HMD set 110A, B is added to the reference symbol of each component related to the HMD set 110B, C is added to the reference symbol of each component related to the HMD set 110C, and D is added to the reference symbol of each component related to the HMD set 110D.
[0123] In step S1310A, the processor 210A in the HMD set 110A acquires avatar information for determining the movement of the avatar object 6A in the virtual space 11A. The avatar information includes information about the avatar, such as, for example, movement information, face tracking data, and voice data. The movement information includes information indicating a temporal change in the position and tilt of the HMD 120A, and information indicating the hand movement of the user 5A detected by the motion sensor 420A, etc. The face tracking data includes data specifying the position and size of each part of the face of the user 5A. The face tracking data includes data indicating the movement of each organ constituting the face of the user 5A and gaze data. The voice data includes data indicating the voice of the user 5A acquired by the microphone 170A of the HMD 120A. The avatar information may include information specifying the avatar object 6A or the user 5A associated with the avatar object 6A, information specifying the virtual space 11A in which the avatar object 6A exists, and the like. The information specifying the avatar object 6A or the user 5A includes a user ID. The information for identifying the virtual space 11A in which the avatar object 6A exists may be a room ID. The processor 210A transmits the avatar information acquired as described above to the server 600 via the network 2.
[0124] In step S1310B, similar to the process in step S1310A, processor 210B in HMD set 110B obtains avatar information for determining the movement of avatar object 6B in virtual space 11B and transmits it to server 600. Similarly, in step S1310C, processor 210C in HMD set 110C obtains avatar information for determining the movement of avatar object 6C in virtual space 11C and transmits it to server 600.
[0125] In step S1320, the server 600 temporarily stores the player information received from each of the HMD sets 110A, 110B, and 110C. The server 600 integrates the avatar information of all users (users 5A to 5C in this example) associated with the common virtual space 11 based on the user ID and room ID included in each piece of avatar information. Then, the server 600 transmits the integrated avatar information to all users associated with the virtual space 11 at a predetermined timing. This executes a synchronization process. This synchronization process allows the HMD sets 110A, 110B, and 110C to share each other's avatar information at approximately the same timing.
[0126] Subsequently, each of the HMD sets 110A to 110C executes the processes of steps S1330A to S1330C based on the avatar information transmitted to each of the HMD sets 110A to 110C from the server 600. The process of step S1330A corresponds to the process of step S1180 in FIG.
[0127] In step S1330A, the processor 210A in the HMD set 110A updates information on the avatar objects 6B and 6C of the other users 5B and 5C in the virtual space 11A. Specifically, the processor 210A updates the position, orientation, and the like of the avatar object 6B in the virtual space 11 based on the motion information included in the avatar information transmitted from the HMD set 110B. For example, the processor 210A updates information (position, orientation, and the like) of the avatar object 6B included in the object information stored in the memory module 530. Similarly, the processor 210A updates information (position, orientation, and the like) of the avatar object 6C in the virtual space 11 based on the motion information included in the avatar information transmitted from the HMD set 110C.
[0128] In step S1330B, processor 210B in HMD set 110B updates information on avatar objects 6A and 6C of users 5A and 5C in virtual space 11B, similar to the process in step S1330A. Similarly, in step S1330C, processor 210C in HMD set 110C updates information on avatar objects 6A and 6B of users 5A and 5B in virtual space 11C.
[0129] [Module detailed configuration] The details of the module configuration of computer 200 will be described with reference to Fig. 14. Fig. 14 is a block diagram showing the detailed configuration of modules of computer 200 according to an embodiment.
[0130] 14, the control module 510 includes a virtual camera control module 1421, a field of view determination module 1422, a reference gaze identification module 1423, a face organ detection module 1424, a motion detection module 1425, a virtual space definition module 1426, a virtual object generation module 1427, an operation object control module 1428, and an avatar control module 1429. The rendering module 520 includes a field of view image generation module 1438. The memory module 530 holds space information 1431, object information 1432, user information 1433, and face information 1434.
[0131] The virtual camera control module 1421 places the virtual camera 14 in the virtual space 11. The virtual camera control module 1421 controls the placement position of the virtual camera 14 in the virtual space 11 and the orientation (tilt) of the virtual camera 14.
[0132] The virtual camera control module 1421 can control the orientation of the virtual camera 14, that is, the direction of the line of sight from the virtual viewpoint, according to the movement of the user's head. The movement of the user's head is the movement of the HMD 120 associated with the user, that is, the HMD 120 worn by the user, and is detected by the HMD sensor 410. The HMD sensor 410 detects the direction, amount, and speed of head movement as the movement of the user's head based on the change in the position of the user's head over time.
[0133] The virtual camera control module 1421 can also control the direction of the line of sight from the virtual viewpoint according to the movement (position, posture) of the controller 300. The movement of the controller 300 is detected by the HMD sensor 410 using, for example, infrared rays emitted from the infrared LED 360. The HMD sensor 410 detects the movement direction, movement amount, movement speed, etc. of the controller 300 as the movement of the controller 300 based on the change in the position of the controller 300 over time.
[0134] The virtual camera control module 1421 normally controls the direction of the gaze in accordance with the movement of the user's head, but when it receives an input from the controller 300 that enables control of the direction of the gaze in accordance with the movement of the controller 300, it controls the direction of the gaze in accordance with the movement of the controller 300 while this input is being accepted.
[0135] 6 and 7, the field of view determination module 1422 determines the field of view 15 based on the position of the virtual camera 14, i.e., the virtual viewpoint and the line of sight direction from the virtual viewpoint. The field of view image generation module 1438 generates the field of view image 17 to be displayed on the monitor 130 based on the determined field of view 15.
[0136] The reference gaze identification module 1423 identifies the gaze of the user 5 based on a signal from the gaze sensor 140. The face organ detection module 1424 detects organs (e.g., mouth, eyes, eyebrows) that constitute the face of the user 5 from the image of the user 5's face generated by the first camera 150 and the second camera 160. The movement detection module 1425 detects the movement (shape) of each organ detected by the face organ detection module 1424.
[0137] The virtual space definition module 1426 defines the virtual space 11 in the HMD system 100 by generating virtual space data representing the virtual space 11.
[0138] The virtual object generation module 1427 generates objects to be placed in the virtual space 11. The objects may include, for example, scenery including forests, mountains, and the like, animals, and the like that are placed according to the progress of the story of the game.
[0139] The operation object control module 1428 places an operation object in the virtual space 11 for receiving an operation by the user in the virtual space 11. The user operates the operation object to operate, for example, an object placed in the virtual space 11. In one aspect, the operation object may include, for example, a hand object corresponding to the hand of the user wearing the HMD 120. In one aspect, the operation object may correspond to the hand portion of an avatar object described later.
[0140] Avatar control module 1429 generates data for placing, in virtual space 11, avatar objects of users of other computers 200 connected via network 2. In one aspect, avatar control module 1429 generates data for placing, in virtual space 11, an avatar object of user 5. In one aspect, avatar control module 1429 generates an avatar object that imitates user 5 based on an image including user 5. In another aspect, avatar control module 1429 generates data for placing, in virtual space 11, an avatar object selected by user 5 from among a plurality of types of avatar objects (for example, objects imitating animals and deformed human objects).
[0141] The avatar control module 1429 reflects the movement of the HMD 120 detected by the HMD sensor 410 in the avatar object. For example, the avatar control module 1429 detects that the HMD 120 is tilted and generates data for tilting and arranging the avatar object. In a certain aspect, the avatar control module 1429 reflects the movement of the controller 300 in the avatar object. In this case, the controller 300 includes a motion sensor, an acceleration sensor, or a plurality of light-emitting elements (e.g., infrared LEDs) for detecting the movement of the controller 300. The avatar control module 1429 reflects the movement of the facial organs detected by the movement detection module 1425 in the face of the avatar object arranged in the virtual space 11. That is, the avatar control module 1429 reflects the facial movement of the user 5A in the avatar object.
[0142] The control module 510 detects a collision when each of the objects arranged in the virtual space 11 collides with another object. The control module 510 can detect, for example, the timing when a certain object touches another object, and performs a predetermined process when the detection is made. The control module 510 can detect the timing when the objects are no longer in contact with each other, and performs a predetermined process when the detection is made. The control module 510 can detect that an object is in contact with another object. Specifically, the operation object control module 1428 detects the contact between the operation object and another object when the operation object touches another object, and performs a predetermined process.
[0143] The memory module 530 holds data used by the computer 200 to provide the virtual space 11 to the user 5. In one aspect, the memory module 530 holds space information 1431, object information 1432, user information 1433, and face information 1434.
[0144] The space information 1431 holds one or more templates defined for providing the virtual space 11 .
[0145] The object information 1432 holds content to be reproduced in the virtual space 11, objects used in the content, and information (e.g., position information) for arranging the objects in the virtual space 11. The content may include, for example, a game, content showing a landscape similar to that in the real world, and the like.
[0146] The user information 1433 holds a program for causing the computer 200 to function as a control device for the HMD system 100, an application program that uses each content held in the object information 1432, and the like.
[0147] The face information 1434 holds pre-stored templates for the face organ detection module 1424 to detect the face organs of the user 5. In one aspect, the face information 1434 holds a mouth template 1435, an eye template 1436, and an eyebrow template 1437. Each template may be an image corresponding to an organ that constitutes a face. For example, the mouth template 1435 may be an image of a mouth. Each template may include multiple images.
[0148] [View 360-degree video] In one aspect, the processor 210 defines a virtual space using a 360-degree video as virtual space data. This provides a field of view image including the 360-degree video in the field of view on the monitor 130 of the HMD 120. The 360-degree video may be, for example, a 360-degree video stored in advance in the storage 230, a 360-degree video downloaded from an external source, or the like. The 360-degree video may be a 360-degree video taken by a 360-degree camera connected to the computer 200, or an animated video such as a background video of a game program.
[0149] [Gaze direction control] In one embodiment, processor 210 in computer 200 has, as a control mode of the gaze direction, a mode (third mode) in which the gaze direction is controlled in response to the movement of the user's head, and a mode (fourth mode) in which the gaze direction is controlled in response to the movement of controller 300. The user can switch the control mode by operating controller 300.
[0150] Fig. 15 is a flowchart showing the processing executed by processor 210 in a control mode of the gaze direction according to the movement of the user's head. During this control mode, processor 210 disables the other control mode, i.e., the control of the gaze direction according to the movement of controller 300. During this control mode, processor 210 repeatedly executes the processing shown in Fig. 15.
[0151] 15, in step S1501, processor 210 determines whether or not an input for enabling control of the line of sight direction according to the movement of controller 300 has been received from controller 300. The input for enabling may be any input operation, such as pressing button 350 provided on controller 300. If the input for enabling has not been received (S1501: NO), processor 210 ends the processing shown in FIG.
[0152] If an enable input is received in step S1501 (S1501: YES), in step S1502, processor 210 switches the control mode of the gaze direction to a control mode according to the movement of controller 300. In step S1503, processor 210 disables the other control mode, that is, control according to the movement of the user's head.
[0153] In step S1504, the processor 210 determines whether or not the movement of the controller 300 is detected. If the movement of the controller 300 is not detected (S1504; NO), the process proceeds to step S1510. If the movement of the controller 300 is detected (S1504; YES), in step S1505, the processor 210 determines whether the operation mode of the controller 300 is a drag operation mode (first mode) or a flick operation mode (second mode). The drag operation mode is an operation mode in which the direction of the line of sight can be controlled based on the amount of movement of the controller 300, and the flick operation mode is an operation mode in which the direction of the line of sight can be controlled based on the moving speed of the controller 300. The processor 210 accepts a selection input by the user on a menu screen or the like and presets either the drag operation mode or the flick operation mode as a default operation mode, but may be configured to accept an input to change the operation mode from the user and switch at any timing.
[0154] In the case of the drag operation mode (S1505; drag), in step S1506, the processor 210 changes the direction of the line of sight from the virtual viewpoint to a direction determined according to the movement of the controller 300. For example, the processor 210 may translate the line of sight together with the virtual viewpoint in the same direction as the moving direction of the controller 300. The processor 210 may also rotate the line of sight in a rotation direction determined according to the moving direction of the controller 300 with the virtual viewpoint as the base point. The rotation direction determined according to the moving direction of the controller 300 is, for example, a counterclockwise direction with the virtual viewpoint as the base point when the moving direction of the controller 300 is to the right, and a clockwise direction of the line of sight when the moving direction of the controller 300 is to the left. With a simple operation, the line of sight can be changed with a feeling of a drag operation as if the virtual space is being grabbed and moved, and the virtual experience can be improved.
[0155] In one aspect, the processor 210 changes the direction of the line of sight at a constant speed regardless of the moving speed of the controller 300. This makes it possible to limit the speed at which the field of view is changed to a constant speed, thereby suppressing VR sickness caused by the change in the field of view. For example, the constant speed may be selected as a speed that is experimentally determined so that VR sickness does not occur.
[0156] When the processor 210 rotates the line of sight in a rotation direction determined according to the moving direction of the controller 300, with the virtual viewpoint as the base point, the rotation is performed at a constant angular velocity regardless of the moving speed of the controller 300. The processor 210 determines the amount of rotation at this time according to the amount of movement of the controller 300. For example, the greater the amount of movement of the controller 300, the greater the amount of rotation of the line of sight. The user 5 can adjust the amount of rotation according to the amount of movement of the controller 300, and can make the adjustment intuitively and easily.
[0157] In step S1507, the processor 210 generates a field of view image corresponding to the field of view determined according to the line of sight. The generated field of view image is displayed by the HMD 120.
[0158] 16 and 17 are diagrams for explaining an example of control of the direction of the line of sight 16 according to the movement of the controller 300. Fig. 16 is a diagram showing a state before the direction of the line of sight 16 is rotated, and Fig. 17 is a diagram showing a state after the direction of the line of sight 16 is rotated. Fig. 18 is a diagram showing a field of view image 1821 in the state of Fig. 16, and Fig. 19 is a diagram showing a field of view image 1921 in the state of Fig. 17. Note that the field of view image 1821 in Fig. 18 and the field of view image 1921 in Fig. 19 include a virtual hand 1831 corresponding to the hand of the user 5.
[0159] 16, object 1645 placed in virtual space 11 is within viewing area 15, but object 1643 is outside viewing area 15. Therefore, as shown in FIG. 18, object 1645 is included in viewing area image 1821, but object 1643 is not included. Thereafter, when the user 5 continues to input the activation signal and moves the controller 300 in the direction of the arrow 1644 as shown in Fig. 16, the processor 210 moves the virtual hand 1831 placed in the virtual space in the direction of the arrow 1841 as shown in Fig. 18. At this time, the processor 210 may place the virtual hand 1831 in an open shape in the virtual space 11 while there is no activation signal, and may change the shape to the virtual hand 1831 in a shape according to the drag operation mode, for example, a grabbing shape, while the activation signal is being accepted.
[0160] Processor 210 rotates the direction of line of sight 16 from virtual camera 14 (virtual viewpoint) in the direction indicated by arrow 1644 in Fig. 16 in response to the movement of controller 300. Then, processor 210 rotates by an amount corresponding to the amount of movement of controller 300, and stops it in the orientation shown in Fig. 17. Since object 1643 is also included in field of view 15 after rotating line of sight 16, object 1643 is also included in field of view image 1921 shown in Fig. 19.
[0161] In one aspect, the processor 210 sets a threshold value for the moving speed of the controller 300, and when the detected moving speed of the controller 300 is less than the threshold value, the controller 300 is rotated at an angular velocity determined according to the moving speed, and when the detected moving speed is equal to or greater than the threshold value, the controller 300 is rotated at a constant angular velocity determined according to the threshold value. The user 5 can adjust the amount of rotation according to the moving speed of the controller 300, and can make the adjustment intuitively and easily. When a certain moving speed is reached, the speed of rotation of the field of view is fixed constant, and therefore VR sickness caused by a change in the field of view can be reduced.
[0162] On the other hand, when the operation mode of the controller 300 is the flick operation mode (S1505: flick), in step S1508, the processor 210 rotates the line of sight from the virtual viewpoint in a rotation direction determined according to the moving direction of the controller 300. The processor 210 also rotates the line of sight at an angular velocity determined according to the moving speed of the controller 300. For example, the faster the moving speed of the controller 300, the faster the angular velocity. This allows the operation to be performed with a feeling of flick operation as if shaking off the virtual space, and the virtual experience can be improved with an easy operation. In the case of a flick operation, the shape of the virtual hand included in the field of view image may be the shape of a hand with fingers spread. By making the hand shape different from that of the drag operation mode, the user 5 can easily recognize the difference between the operation modes.
[0163] In step S1509, the processor 210 generates a field of view image corresponding to a field of view determined according to the direction of the line of sight. In a certain aspect, the processor 210 generates a field of view image with reduced visibility while the line of sight is rotated, compared to when the line of sight is not rotated. The processor 210 can reduce visibility by image processing the field of view image corresponding to the field of view determined by the rotated line of sight direction. As an image with reduced visibility, an image with a reduced amount of information visually recognized by the user can be used, and examples thereof include an image with a lower resolution than the field of view image when the line of sight is not rotated, an image with a lower contrast, an image with a narrow field of view due to the periphery being painted black, etc.
[0164] In step S1510, processor 210 determines whether or not the input for enabling the gaze direction control corresponding to the movement of controller 300 has ended. For example, when the pressing operation of button 350 corresponding to the input for enabling has been released, processor 210 determines that the input for enabling has ended. If the input for enabling has not ended (step S1510; NO), the process returns to step S1504.
[0165] When the input of the enablement has been completed (S1510: YES), in step S1511, the processor 210 switches from a control mode in which the line of sight direction is controlled in response to the movement of the controller 300 to a control mode in which the line of sight direction is controlled in response to the movement of the head of the user 5. In step S1512, the processor 210 disables the control of the line of sight direction in response to the movement of the controller 300.
[0166] In the above process, the processor 210 may define a standard direction of the line of sight, such as a home position, and upon receiving a predetermined input for resetting, perform directional control to return the line of sight to the standard direction. The standard direction of the line of sight may be the direction immediately before receiving the activation input, or may be a predetermined direction. The predetermined input may be, for example, an operation of the controller 300, such as pressing multiple buttons 350 simultaneously, or a predetermined movement of the head of the user 5 detected by the HMD sensor 410. According to this control, even if the line of sight direction is significantly changed, it can be easily returned to the standard direction.
[0167] In one aspect, processor 210 performs a charging process in response to control of the line of sight direction in response to the movement of controller 300. The amount charged in the charging process may be a fixed amount, or may be an amount according to the amount of change in the line of sight direction. For example, processor 210 may perform pay-per-use charging in which the amount charged increases as the amount of rotation in response to the movement of controller 300 increases. User 5 can enjoy a highly immersive virtual experience with simple operations by charging.
[0168] As described above, by controlling the line of sight direction according to the movement of the controller 300 while the activation input is being accepted, the user 5 normally changes the line of sight direction by moving his / her head, and when it is difficult to change the line of sight direction by moving his / her head, such as when facing directly behind or when operating while lying down, the line of sight direction can be changed by the controller 300 by performing an activation input operation only during those times. Operation by the controller 300 can be switched to with a simple operation only when necessary, and the virtual experience of the user 5 can be improved.
[0169] In addition, since the direction of the line of sight can be changed in accordance with the movement of the controller 300 in the drag operation mode or the flick operation mode, the user 5 can have a virtual experience as if he or she were changing the field of view in the virtual space with the hand of the user 5, resulting in a deeper sense of immersion.
[0170] In the above embodiment, the processor 210 may accept, as an input for validation, that the hand shape of the user 5 is a specific shape, regardless of the operation of the controller 300. For example, the specific shape is a clenched hand. For example, when the HMD sensor 410 is realized by a camera, the hand shape of the user 5 is detected by the processor 210 performing image analysis processing on an image of the hand of the user 5 captured and output by the camera.
[0171] Similarly, while accepting the activation input, processor 210 may control the gaze direction in response to the hand movement of user 5. As described above, processor 210 detects hand movement such as the movement direction, movement amount, and movement speed of the hand from temporal changes in the position, shape, posture, etc. of the hand detected by image analysis processing of the image of the hand. Processor 210 controls the gaze direction in response to the detected hand movement in the same manner as in controlling the gaze direction in response to the movement of controller 300.
[0172] [Video playback control] In one embodiment, processor 210 plays a video in a virtual space. The video may be a 360-degree video that defines the virtual space, or a video played on an object such as a screen arranged in the virtual space. Processor 210 controls the playback of the video according to the movement of controller 300 while accepting an input from controller 300 to enable the playback control of the video according to the movement of controller 300.
[0173] FIG. 20 is a flowchart showing a processing procedure when the processor 210 controls playback of a moving image. 20, in step S2021, processor 210 determines whether or not an input for enabling playback control according to the movement of controller 300 has been received from controller 300. The input for enabling may be any input operation, such as pressing button 350 provided on controller 300. If the input for enabling has not been received (S2021: NO), processor 210 ends this process.
[0174] On the other hand, if an activation input has been received (S2021: YES), in step S2022, processor 210 determines whether or not a movement of controller 300 has been detected. If a movement of controller 300 has not been detected (S2022: NO), the process proceeds to step S2004.
[0175] If a movement of the controller 300 is detected (S2022: YES), in step S2023, the processor 210 performs playback control of the video according to the movement of the controller 300. In one aspect, the processor 210 performs playback control corresponding to the moving direction of the controller 300. For example, the processor 210 performs playback control to fast-forward the video if the moving direction of the controller 300 is to the right, and to rewind the video if the moving direction of the controller 300 is to the left. The processor 210 also performs playback control according to the amount of movement or the moving speed of the controller 300. For example, in the case of fast-forward, the processor 210 increases the fast-forward speed the greater the amount of movement of the controller 300 or the faster the moving speed.
[0176] In one aspect, processor 210 may perform playback control according to an operation mode selected by user 5 on a menu screen or the like from among a drag operation mode in which playback control is performed in accordance with the amount of movement of controller 300, and a flick operation mode in which playback control is performed in accordance with the movement speed of controller 300. In step S2024, the processor 210 generates a field of view image corresponding to the field of view determined by the line of sight. The generated field of view image is displayed by the HMD 120.
[0177] FIG. 21 shows an example of a field of view image during playback control. The field of view image 2121 shown in FIG. 21 is a field of view image generated from a 360-degree video that defines a virtual space. The field of view image 2121 includes a virtual hand 2122 corresponding to the hand of the user 5. When performing an operation of fast-forwarding a 360-degree video with the controller 300, the user 5 moves the controller 300 to the right while performing an input operation of enabling playback control with the controller 300. In response to the movement of the controller 300 to the right, the processor 210 moves the virtual hand 2122 arranged in the virtual space to the right and increases the frame rate of the field of view image output to the HMD 120 to fast-forward the 360-degree video. In addition, the processor 210 compares the amount of movement of the controller 300 with a threshold value, for example, and divides it into three stages, and increases the fast-forward speed in the order of 2x speed, 4x speed, and 8x speed as the amount of movement increases.
[0178] When the field of view image 2121 includes the fast-forward mark 2124, it is easy for the user 5 to understand that fast-forwarding is occurring. A mark indicating the content of playback control such as the mark 2124 is displayed in the field of view image by, for example, the processor 210 placing a mark object in a virtual space or by performing image processing on the field of view image.
[0179] In a certain aspect, the processor 210 controls the volume of the video in accordance with the movement of the controller 300 while accepting an input from the controller 300 to enable playback control of the video in accordance with the movement of the controller 300. For example, when an operation to lower the volume is performed with the controller 300 in the field of view image 2121 shown in FIG. 21, the user 5 moves the controller 300 downward while performing an input operation to enable playback control with the controller 300. The processor 210 moves the virtual hand 2122 downward in response to the downward movement of the controller 300, and lowers the volume output to the HMD 120. The processor 210 also performs display control to lower a gauge indicating the volume of the volume bar 2125 included in the field of view image 2121, similar to the mark 2124.
[0180] In step S2025, processor 210 determines whether or not the input of the activation has been completed. If the input of the activation has not been completed (S2025: NO), the process returns to step S2022. On the other hand, if the input of the activation has been completed (S2025: YES), the process ends.
[0181] As described above, while accepting activation input, processor 210 controls video playback in accordance with the movement of controller 300, allowing user 5 to operate playback with simple and intuitive operations, improving operability and the virtual experience.
[0182] [Controlling gaze direction according to the movement of an information display device] In one embodiment, a portable terminal such as a smartphone or tablet terminal functions as a computer 200, and the display of the terminal functions as a monitor 130 that displays a field of view image. The terminal is equipped with a gyro sensor or the like and can detect the tilt, movement, and other movements of the terminal. The processor 210 in the terminal is capable of controlling the direction of the line of sight in response to the detected movement of the terminal to generate a field of view image, in a manner similar to the above embodiment in which the direction of the line of sight is controlled in response to the movement of the head of the user 5.
[0183] The processor 210 of the terminal normally disables the control of the line of sight direction according to the movement of the terminal, and controls the line of sight direction according to the movement of the terminal while receiving an input from the terminal to enable the control of the line of sight direction according to the movement of the terminal. FIG. 22 shows the processing executed by the processor 210 of the terminal when control of the gaze direction in response to the movement of the terminal is disabled.
[0184] 22, in step S2221, the processor 210 determines whether or not an input for enabling control of the line of sight direction according to the movement of the terminal has been received. The input for enabling may be, for example, a touch on the display if the display of the terminal is a touch panel, or may be a pressing operation of a button such as a home button if the button is provided.
[0185] If the input of activation has not been accepted (S2221: NO), processor 210 ends this process. On the other hand, if the input for enabling is accepted (S2221: YES), in step S2222, processor 210 enables control of the direction of the line of sight according to the movement of the terminal. Processor 210 moves the line of sight in the direction in which the terminal moves according to the movement of the terminal detected by a gyro sensor or the like of the terminal, for example, the movement of the position of the terminal, the tilt, etc., and changes the direction of the line of sight to the direction in which the terminal is tilted.
[0186] In step S2223, the processor 210 determines whether the input of the activation has been completed. If the input of the activation has not been completed (S2223: NO), the process returns to step S2222. If the input of the activation has been completed (S2223: YES), in step S2224, the processor 210 disables the control of the line of sight direction according to the movement of the terminal, and ends this process.
[0187] Fig. 23 to Fig. 25 show examples of display of a field of view image on a terminal. Fig. 23 and Fig. 24 are examples of display of a field of view image when the control of the line of sight direction according to the movement of the terminal is disabled. Fig. 25 is an example of display of a field of view image when the control of the line of sight direction according to the movement of the terminal is enabled. As shown in Fig. 23, a field of view image 2322 is displayed on terminal 2321. Since line of sight direction control is disabled until an activation input is received, the line of sight direction does not change even if terminal 2321 is tilted, as shown in Fig. 24. Therefore, there is no tilt of the field of view, and the field of view image 2322 does not change.
[0188] On the other hand, when an input for enabling is received, control of the direction of the line of sight according to the movement of the terminal is enabled while the input is being received. As shown in Fig. 25, when the tilt of the terminal 2321 is detected, the processor 210 rotates, for example, the direction of the line of sight in the virtual space by the same amount of tilt as the tilt of the terminal 2321, with the virtual viewpoint as the base point. Therefore, the terminal 2321 displays a field of view image 2521 in which the field of view is tilted due to the rotation of the line of sight.
[0189] As described above, while accepting the activation input, the processor 210 controls the line of sight direction according to the movement of the terminal, so the user 5 can change the field of view by moving the terminal with a simple operation only for as long as necessary. If there is no activation input, the line of sight direction does not change even if the terminal moves, so it is possible to eliminate the annoyance of the line of sight direction being changed unintentionally by the user 5, such as when the terminal is tilted by mistake.
[0190] In the above embodiment, the virtual space (VR space) in which the user is immersed by the HMD has been described as an example, but a see-through HMD may be adopted as the HMD. In this case, a field of view image in which a part of the image constituting the virtual space is synthesized in the real space visually recognized by the user through the see-through HMD may be output to provide the user with a virtual experience in an augmented reality (AR) space or a mixed reality (MR) space. In this case, an action on a target object in the virtual space may be generated based on the movement of the user's hand instead of the operation object. Specifically, the processor may specify coordinate information of the position of the user's hand in the real space and define the position of the target object in the virtual space in relation to the coordinate information in the real space. This allows the processor to grasp the positional relationship between the user's hand in the real space and the target object in the virtual space, and to execute processing corresponding to the above-mentioned collision control between the user's hand and the target object. As a result, it becomes possible to give an action to the target object based on the movement of the user's hand.
[0191] The present invention is not limited to the above-described embodiments, and various modifications are possible within the scope of the claims. Embodiments obtained by appropriately combining the technical means disclosed in different embodiments are also included in the technical scope of the present invention.
[0192] [Note] The technical features disclosed above can be summarized as follows.
[0193] (Appendix 1) According to an embodiment, a computer-executable program is provided, which causes a computer to execute the steps of: defining a virtual space including a virtual viewpoint; detecting a head movement of a user associated with a head-mounted device; controlling a line of sight direction from the virtual viewpoint in response to the head movement of the user; detecting a movement of a controller held by the user; receiving an input from the controller to enable control of the line of sight direction in response to the movement of the controller; controlling the line of sight direction in response to the movement of the controller while the enabling input is being received; and displaying, on the head-mounted device, a field of view image corresponding to a field of view determined in response to the line of sight direction.
[0194] (Appendix 2) The program is the program described in (Appendix 1), wherein the step of controlling the direction of the line of sight in accordance with the movement of the controller changes the direction of the line of sight to a direction determined in accordance with the movement of the controller at a constant speed regardless of the movement speed of the controller.
[0195] (Appendix 3) The program is a program described in (Appendix 2), in which the step of controlling the direction of the line of sight in accordance with the movement of the controller rotates the line of sight, with the virtual viewpoint as a base point, in a rotation direction determined in accordance with the movement direction of the controller, by an amount determined in accordance with the movement amount of the controller, at a constant angular velocity regardless of the movement speed of the controller.
[0196] (Appendix 4) The program is the program described in (Appendix 1), wherein the step of controlling the direction of the line of sight in accordance with the movement of the controller, when the movement speed of the controller is less than a threshold, rotates the line of sight, with the virtual viewpoint as a base point, in a rotation direction determined in accordance with the movement direction of the controller, by an amount of rotation determined in accordance with the movement amount of the controller, at an angular velocity determined in accordance with the movement speed, and when the movement speed of the controller is equal to or greater than the threshold, rotates the line of sight, with the virtual viewpoint as a base point, in the rotation direction by the amount of rotation, at a constant angular velocity determined in accordance with the threshold.
[0197] (Appendix 5) The program is a program described in (Appendix 1), in which the step of controlling the direction of the line of sight in accordance with the movement of the controller rotates the line of sight, with the virtual viewpoint as a base point, in a rotation direction determined in accordance with the movement direction of the controller, at an angular velocity determined in accordance with the movement speed of the controller, and the step of displaying the field of view image on the head-mounted device displays, while the line of sight is rotating, a field of view image with reduced visibility compared to when the line of sight is not rotated, on the head-mounted device.
[0198] (Appendix 6) The program further causes the computer to execute a step of receiving an input from the controller to select either a first mode in which the direction of the line of sight is controlled based on the amount of movement of the controller, or a second mode in which the direction of the line of sight is controlled based on the movement speed of the controller, and the step of controlling the direction of the line of sight in accordance with the movement of the controller controls the direction of the line of sight based on the amount of movement of the controller when the first mode is selected, and controls the direction of the line of sight based on the movement speed of the controller when the second mode is selected. This is the program described in any one of (Appendix 1) to (Appendix 5).
[0199] (Appendix 7) The program further causes the computer to execute the steps of: switching from a third mode, in which the field of view is controlled in response to head movement, to a fourth mode, in which the field of view is controlled in response to controller movement, in response to start of acceptance of the enabling input; and switching from the fourth mode to the third mode in response to end of acceptance of the enabling input, wherein in the third mode, control of the field of view in response to controller movement is disabled, and in the fourth mode, control of the field of view in response to head movement is disabled.The program is described in any of (Appendix 1) to (Appendix 6).
[0200] (Appendix 8) The program is a program described in any one of (Appendix 1) to (Appendix 7) for causing the computer to further execute a step of performing billing processing in accordance with control of the direction of the line of sight in accordance with the movement of the controller.
[0201] (Appendix 9) According to one embodiment, there is provided a program executed by a computer, the program causing a computer to execute the steps of: defining a virtual space including a virtual viewpoint, playing a video in the virtual space, detecting a movement of a controller held by a user, receiving an input from the controller for enabling control of the playback of the video in accordance with the movement of the controller, controlling the playback of the video in accordance with the movement of the controller while the enabling input is being received, and displaying a field of view image corresponding to a field of view from the virtual viewpoint on a head-mounted device associated with the user.
[0202] (Appendix 10) According to one embodiment, a computer-implemented method is provided, comprising the steps of: defining a virtual space including a virtual viewpoint; detecting a head movement of a user associated with a head-mounted device; controlling a line of sight direction from the virtual viewpoint in response to the head movement of the user; detecting a movement of a controller held by the user; receiving an input from the controller to enable control of the line of sight direction in response to the movement of the controller; controlling the line of sight direction in response to the movement of the controller while the enabling input is being received; and displaying, on the head-mounted device, a field of view image corresponding to a field of view determined in response to the line of sight direction.
[0203] (Appendix 11) According to an embodiment, an information processing device is provided, the information processing device includes a storage unit that stores the program, and a computer that executes the program, the program causes the computer to execute the steps of: defining a virtual space including a virtual viewpoint, detecting a head movement of a user associated with a head-mounted device, controlling a line of sight from the virtual viewpoint in response to the head movement of the user, detecting a movement of a controller held by the user, receiving an input from the controller to enable control of the line of sight direction in response to the movement of the controller, controlling the line of sight direction in response to the movement of the controller while the enabling input is being received, and displaying, on the head-mounted device, a field of view image corresponding to a field of view determined in response to the line of sight direction.
[0204] (Appendix 12) According to an embodiment, a computer-executable program is provided, which causes a computer to execute the steps of: defining a virtual space including a virtual viewpoint, detecting a motion of a terminal, receiving an input for enabling control of a line-of-sight direction from the virtual viewpoint in accordance with the motion of the terminal, controlling the line-of-sight direction from the virtual viewpoint in accordance with the motion of the terminal while the enabling input is being received, and displaying, on the terminal, a field-of-view image corresponding to a field of view determined in accordance with the line-of-sight direction.
[0205] The embodiments disclosed herein should be considered to be illustrative and not restrictive in all respects. The scope of the present invention is defined by the claims, not the above description, and is intended to include all modifications within the meaning and scope of the claims. [Explanation of symbols]
[0206] 2...Network, 5...User, 6...Avatar object, 11...Virtual space, 12...Center, 14...Virtual camera, 15...Viewing area, 100...HMD system, 110...HMD set, 130...Monitor, 170...Microphone, 180...Speaker, 190...Sensor, 200...Computer, 210...Processor, 220...Memory, 230...Storage, 240...Input / output interface, 250...Communication interface, 300...Controller, 310...Grip, 320...Frame, 340, 350, 370, 380...Button, 390...Analog stick, 410...HMD sensor, 420...Motion sensor, 430...Display, 5 10...control module, 520...rendering module, 530...memory module, 540...communication control module, 600...server, 610...processor, 620...memory, 630...storage, 640...input / output interface, 650...communication interface, 1421...virtual camera control module, 1422...field of view area determination module, 1423...reference gaze identification module, 1424...motion detection module, 1426...virtual space definition module, 1427...virtual object generation module, 1428...operated object control module, 1429...avatar control module, 1438...field of view image generation module.
Claims
1. A control means for controlling the direction of gaze; A motion detection means for detecting a motion of a terminal whose line of sight direction is controlled; A receiving means for receiving an input for enabling control of the line of sight direction in accordance with a movement of the terminal; a gaze direction control means for controlling the gaze direction in response to a movement of the terminal while the enabling input is being accepted; A program for causing a computer to execute the following.
2. The program described in Claim 1, characterized in that it is characterized by being provided with a display control means for displaying an image on the terminal according to the direction of the line of sight.
3. A control means for controlling the direction of gaze; A motion detection means for detecting a motion of a terminal whose line of sight direction is controlled; A receiving means for receiving an input for enabling control of the line of sight direction in accordance with a movement of the terminal; and a gaze direction control means for controlling the gaze direction in response to a movement of the terminal while the input to be enabled is being accepted. system.
Citation Information
Patent Citations
Solid-state image pickup device
JP1983069177A
Input supporting device
JP2006163747A
Display system and display control method
JP2016161611A
Display control method and program for causing computer to execute the method
JP2018171455A
Program and system
JP2023099570A