Program and information processing system
Patent Information
- Application Number
- JP2024001196
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-01-09
- Publication Date
- 2025-09-29
AI Technical Summary
Existing virtual space services do not adequately address the discomfort users may experience due to nuisance behaviors from other users' avatars, leading to an uncomfortable interaction environment.
A system that includes detection means for identifying nuisance behaviors and specific control execution to mitigate such behaviors by altering the appearance, voice, or behavior of the offending avatar, thereby reducing user discomfort.
The system effectively reduces the likelihood of users feeling uncomfortable by modifying the appearance, voice, or behavior of avatars engaged in nuisance actions, creating a more comfortable virtual interaction space.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to a program and an information processing system. [Background technology]
[0002] 2. Description of the Related Art Services (eg, games, etc.) that allow users to interact with other users in a virtual space have been known (eg, see Patent Document 1). [Prior art documents] [Patent documents]
[0003] [Patent Document 1] JP 2021-114036 A Summary of the Invention [Problem to be solved by the invention]
[0004] However, in such services, there is a demand for providing users with a virtual space in which the likelihood of the users feeling uncomfortable is reduced.
[0005] The present invention has been made in consideration of the above circumstances, and aims to provide a user with a virtual space in which the likelihood of the user feeling uncomfortable is reduced. [Means for solving the problem]
[0006] According to one embodiment shown in the present disclosure, Computer, A detection means for detecting nuisance behavior of a character in a virtual space in which characters corresponding to each of a plurality of users can appear; A specific control execution means for executing a specific control based on the detection of the nuisance behavior; A program is provided to function as a Effect of the Invention
[0007] According to the present invention, it is possible to provide a user with a virtual space in which the likelihood of the user feeling uncomfortable is reduced. [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 8A] FIG. 2 is a diagram illustrating a schematic configuration of a controller according to an embodiment. [Figure 8B] 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 process executed in an HMD set according to an embodiment. [Figure 12A] 1 is a schematic diagram showing a situation in which each HMD provides a virtual space to a user in a network. [Figure 12B] FIG. 12B is a diagram showing a field of view image of a user 5A in FIG. 12A. [Figure 13] 1 is a sequence chart 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] FIG. 2 is a block diagram illustrating a server according to one embodiment in a modular configuration. [Figure 16] 11 is a flowchart showing a display change process executed in an HMD system according to an embodiment. [Figure 17] A figure showing an example of the appearance and handle name of an avatar object according to one embodiment, where (a) shows before the specified settings are made, and (b) shows after the specified settings are made. [Figure 18] 11 is a flowchart showing a dummy placement process executed in an HMD system according to an embodiment. [Figure 19] FIG. 13 is a schematic diagram showing a virtual space when a dummy placement process is executed in an HMD system according to an embodiment. [Figure 20] 11 is a flowchart showing a nuisance behavior determination process (part 1) executed in an HMD system according to an embodiment. [Figure 21] 13 is a flowchart showing a nuisance behavior determination process (part 2) executed in an HMD system according to an embodiment. [Figure 22] 13 is a flowchart showing a nuisance behavior determination process (part 3) executed in the HMD system according to an embodiment. [Diagram 23] 13 is a flowchart showing a nuisance behavior determination process (part 4) executed in the HMD system according to an embodiment. [Figure 24] 13 is a flowchart showing a nuisance behavior determination process (part 5) executed in the HMD system according to an 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. The HMD system 100 provides a predetermined service to a user.
[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. Examples of the transmissive monitor 130 include glasses and contact lenses. The HMD 120 may be an open type that does not cover the eyes of the user 5, 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 configured 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 constitutes a virtual space and the 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 a certain aspect, the motion sensor 420 is attached to the hand of the user 5 to detect the movement of the hand of the user 5. Attaching to the hand of the user 5 means, for example, that the motion sensor 420 is provided in a controller 300 configured to be held by the user 5. An example of the hold-type controller 300 will be described later with reference to FIG. 8. The motion sensor 420 may also be provided in a glove-type device (in other words, a glove-type controller 300) configured to be worn by the user 5. The glove-type controller 300 is not easily blown away compared to the hold-type controller 300, so safety in the real space can be ensured. The motion sensor 420 detects, for example, the rotation speed, number of rotations, and finger movement of the hand. The detected signal is sent to the computer 200. The glove-type controller 300 may be configured to be able to detect the movement of a larger number of fingers (for example, all fingers) compared to the hold-type controller 300. In another aspect, a sensor that is not worn by the user 5 may detect the hand movement of the user 5. For example, a signal from a camera that captures an image of the user 5 may be input to the computer 200 as a signal representing the movement of the user 5. As an example, the motion sensor 420 and the computer 200 are connected to each other wirelessly. In the case of wireless communication, the communication format is not particularly limited, and for example, Bluetooth (registered trademark) or other known communication methods may be 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. The external device 700 may also be, for example, a device capable of communicating with the server 600 via the network 2. 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 Wi-Fi (registered trademark), Bluetooth (registered trademark), or near field communication (NFC). The communication interface 250 is not limited to the 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 (registered trademark), 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 Wi-Fi, 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 (in other words, a character object of the user 5) which is an avatar 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 which 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 arranges the avatar object. The control module 510 reflects the detected movement of the facial organs in the face of the avatar object arranged in the virtual space 11. The control module 510 receives gaze information of the other user 5 from the server 600 and reflects it in the gaze 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 may include 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 movement of the controller 300 may be the movement of the analog stick 390, the movement of the buttons 370 and 380, or the like. The control module 510 may then move the avatar object within the virtual space 11 based on, for example, the movement of the analog stick 390 (in other words, the user's operation on the analog stick 390).
[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. The user information also includes information managed for each service account (in other words, for each user ID).
[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 the memory module 530. The software is read from the memory module 530 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, the processor 210 executes an application program, and creates an object in the virtual space 11 based on an instruction included in the application program. Place the following.
[0112] In step S1160, controller 300 detects an operation by user 5, and outputs detection data representing the detected operation to computer 200. In another aspect, the operation by user 5 may be detected based on an image from a camera 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 movements of the user 5B (the movements of the HMD 120B and the controller 300B) are reflected in the avatar object 6B placed in the virtual space 11A by the processor 210A. As a result, the avatar object 6B that moves as operated by the user 5B is visually recognized by the user 5A.
[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 inclination of the HMD 120A, information indicating the hand movement of the user 5A detected by the motion sensor 420A, and information indicating the user's operation detected by the controller 300. 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, and information specifying the virtual space 11A in which the avatar object 6A exists. An example of the information for identifying the avatar object 6A or the user 5A is a user ID. An example of the information for identifying the virtual space 11A in which the avatar object 6A exists is 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 avatar 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.
[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. The field of view area determination module 1422 defines the field of view 15 according to the orientation of the head of the user wearing the HMD 120 and the placement position of the virtual camera 14. 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 area 15.
[0132] 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) 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 movement detection module 1425 detects the movement (shape) of each organ detected by the face organ detection module 1424.
[0133] 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.
[0134] 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.
[0135] 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.
[0136] The avatar control module 1429 generates data for placing an avatar object 6 of a user of another computer 200 connected via the network 2 in the virtual space 11. In one aspect, the avatar control module 1429 generates data for placing an avatar object 6 of a user 5 in the virtual space 11. In one aspect, the avatar control module 1429 generates an avatar object 6 that imitates the user 5 based on an image including the user 5. In another aspect, the avatar control module 1429 generates data for placing an avatar object 6 selected by the user 5 from among a plurality of types of avatar objects 6 (for example, objects imitating animals or deformed human objects) in the virtual space 11.
[0137] The avatar control module 1429 reflects the movement of the HMD 120 detected by the HMD sensor 410 to the avatar object 6. For example, the avatar control module 1429 detects that the HMD 120 is tilted and generates data for tilting and arranging the avatar object 6. In one aspect, the avatar control module 1429 reflects the movement of the controller 300 to the avatar object 6. In another aspect, the avatar control module 1429 reflects the movement of the facial organs detected by the movement detection module 1425 to the face of the avatar object 6 arranged in the virtual space 11. That is, the avatar control module 1429 reflects the movement of the face of the user 5A to the avatar object 6. In this way, the avatar object 6 is operated (in other words, moved) by the movement detected by the HMD sensor 410, the controller 300, or the movement detection module 1425.
[0138] [Server module configuration] The module configuration of server 600 will be described with reference to Fig. 15. Fig. 15 is a block diagram showing the module configuration of server 600 according to an embodiment. As shown in Fig. 15, server 600 includes a control module 1610, a memory module 1630, and a communication control module 1640. In one aspect, control module 1610 is realized by processor 610. Memory module 1630 is realized by memory 620 or storage 630. Communication control module 1640 is realized by communication interface 650.
[0139] The control module 1610 includes a reality information acquisition module 1731 .
[0140] The memory module 1630 holds data used by the computer 200 to provide the virtual space 11 to the user 5. In one aspect, the memory module 1630 holds space information, object information, and user information. The space information, object information, and user information of the memory module 1630 may include the space information, object information, and user information of the memory module 530 described above, respectively. Therefore, a description thereof will be omitted here.
[0141] The communication control module 1640 receives various information and various requests from each HMD set 110. As an example, the information that the communication control module 1640 receives from each HMD set 110 may include spatial information, object information, user information, and avatar information. The communication control module 1640 transmits various information and various requests to each HMD set 110. As an example, the information that the communication control module 1640 transmits to each HMD set 110 may include spatial information, object information, user information, and avatar information.
[0142] The processing in the server 600 is realized by hardware and software executed by the processor 610. Such software may be stored in advance in a hard disk or other memory module 1630. 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 a predetermined computer via the communication control module 1640, and then temporarily stored in the memory module 1630. The software is read from the memory module 1630 by the processor 610 and stored in the RAM in the form of an executable program. The processor 610 executes the program.
[0143] The above-mentioned module configurations of the computer 200 and the server 600 are merely examples. Each of the devices of the computer 200 and the server 600 may include at least a part of the modules (in other words, functions) included in the other devices. Furthermore, each of the devices such as the computer 200 and the server 600 may not be realized by an integrated device, and may be realized by, for example, a plurality of devices connected via a network or the like.
[0144] In this embodiment, the processor 210 of the computer 200 or the processor 610 of the server 600 executes a program stored in the HMD system 100 to perform the above-mentioned or later-described processes. However, at least a part of the above-mentioned or later-described processes performed by the processor 210 may be executed by a processor other than the processor 210. Also, at least a part of the above-mentioned or later-described processes performed by the processor 610 may be executed by a processor other than the processor 610. In other words, the computer that executes the program in this embodiment may be either the computer 200 or the server 600, or may be realized by a combination of multiple devices.
[0145] [Processing according to this embodiment] When the control module 510 of the computer 200 detects an utterance using the microphone 170, it identifies the computer 200 to which voice data corresponding to the utterance is to be transmitted, and transmits the voice data. When the control module 510 receives voice data from the computer 200 of another user, it outputs a voice corresponding to the voice data from the speaker 180. For example, in the state shown in FIG. 12(B), the voice of the user 5A acquired by the microphone 170A is transmitted to the HMD 120B of the user 5B, and is output from the speaker 180B provided in the HMD 120B. On the other hand, the voice of the user 5B is transmitted to the HMD 120A of the user 5A, and is output from the speaker 180A provided in the HMD 120A. In this way, in the virtual space 11, the user 5A and the user 5B can converse with each other via the avatar object 6A and the avatar object 6B. The avatar control module 1429 (character control means) included in the control module 510 of each computer 200 makes an avatar object 6 (character) appear in the virtual space 11, and enables a conversation via the avatar object 6. Note that the conversation between the user 5A and the user 5B in the virtual space 11 (in other words, the conversation via the avatar object 6A and the avatar object 6B) may be by exchanging text messages, etc.
[0146] Hereinafter, a case will be described in which each HMD 120 provides a virtual space 11 to a user 5 as shown in Fig. 12(A). In addition, in the virtual space 11 shown in Fig. 12(A), it is assumed that an avatar object 6B is performing a nuisance behavior, such as unilaterally following an avatar object 6A, or stalking an avatar object 6A while maintaining a certain distance from the avatar object 6A without coming into contact with the avatar object 6A. Such a nuisance behavior is a so-called stalking behavior. It can be said that the avatar object 6A is a victim of a stalking behavior in the virtual space 11.
[0147] In this embodiment, when a user 5A who operates an avatar object 6A sets a predetermined setting for an avatar object 6B in the virtual space 11, the distinctiveness of the avatar object 6A to a user 5B who operates the avatar object 6B changes. The distinctiveness (in other words, distinctive characteristics) can be said to be a property (in other words, distinctive information) by which each avatar object 6 (in other words, each user 5) can be distinguished, and specifically includes appearance, a distinguishing object, a voice, behavior, and the like.
[0148] (Distinctness) Appearance can also be referred to as appearance, external appearance, etc. When the appearance of the avatar object 6A for the user 5B who operates the avatar object 6B changes based on the user 5A who operates the avatar object 6A making a predetermined setting for the avatar object 6B, it becomes difficult for the user 5B who operates the avatar object 6B to find the avatar object 6A in the virtual space 11. This makes it difficult for the avatar object 6B to cause trouble to the avatar object 6A. In other words, the troublesome behavior can be suppressed. Moreover, the object for identification includes, for example, a handle name display (hereinafter, a handle name). In this embodiment, in the virtual space 11, a handle name related to each avatar object 6 can be displayed around (for example, above) the avatar object 6. The handle name can be set by the user 5 of each avatar object 6. The handle name may be the same as the user ID. The handle name can also be said to be an identification name that makes each user 5 (in other words, each avatar object 6) identifiable. Note that being identifiable may mean that the user 5 can be uniquely identified, or may not be uniquely identified. In other words, the same handle name may be assigned to multiple users 5, or may not be assigned. The identification name may include a name associated with the avatar object 6 (character). The object for identification is not limited to a handle name, and may be an indication of the profile or status of the user 5 (in other words, the avatar object 6). When a user 5A who operates avatar object 6A performs a predetermined setting for avatar object 6B and an object for identifying avatar object 6A for user 5B (e.g., a handle name) is changed, user 5B may think that the avatar object he thought was avatar object 6A may not be avatar object 6A, and is more likely to stop causing trouble to avatar object 6A. In other words, it is possible to suppress nuisance behavior toward avatar object 6A.
[0149] Next, a case where the voice as a distinguishing feature has changed will be described. When the voice of the avatar object 6A for the user 5B has changed, the user 5B hears a voice different from the voice uttered by the user 5A. The change in voice may be a change in voice quality (e.g., pitch) or a change in speaking style such as intonation or dialect. When the voice of the avatar object 6A (user 5A) has changed based on the user 5A's setting, for example, from standard Japanese to Kansai dialect, the user 5B feels a sense of incongruity and thinks that the avatar object he thought was the avatar object 6A may not be the avatar object 6A, and is more likely to stop nuisance behavior toward the avatar object 6A. In other words, nuisance behavior toward the avatar object 6A can be suppressed. Next, a case where the behavior as the distinguishability has changed will be described. The behavior can be called behavior and the like. The behavior may include a habit of action. When the behavior of the avatar object 6A with respect to the user 5B has changed, the behavior of the avatar object 6A visually recognized by the user 5B is partially different from the behavior of the user 5A. As an example of a change in behavior, when the user 5A moves his / her right arm while holding the controller 300 for the right hand, the left arm of the avatar object 6A is controlled to move in response to the movement. In addition, even if the user 5A does not perform a predetermined action (e.g., an action of brushing back hair) with the hand holding the controller 300, the avatar object 6A is controlled to perform the predetermined action with a predetermined frequency. When the behavior of the avatar object 6A has changed, for example, the avatar object 6A that frequently used its right hand has started to use its left hand more frequently, the user 5B feels a sense of incongruity and thinks that the avatar object 6A that he / she thought was the avatar object 6A may not be the avatar object 6A, and is more likely to stop the nuisance behavior toward the avatar object 6A. In other words, nuisance behavior against the avatar object 6A can be suppressed. In the following, in this embodiment, we will explain the case where the appearance and handle name are changed as the distinctiveness of the avatar object 6A based on specified settings by the user 5A, but the distinctiveness that is changed based on the specified settings is not limited to this.
[0150] (Block settings) The user 5A who operates the avatar object 6A can perform a block setting as a predetermined setting for the avatar object 6B. For example, the user 5A can operate the controller 300A to display a menu image on the monitor 130A, select "block setting" from the menu image, and input an operation to determine the avatar object 6B as a block target. When the user 5A selects "block setting", for example, avatar objects 6 that exist within a predetermined range centered on the position of the avatar object 6A (or have existed within the predetermined range within a predetermined period) may be displayed, and the avatar object 6B may be selectable from among them. Also, it may be possible to select "block setting" and input the handle name or the like of the avatar object 6B to search for and select the avatar object 6B. Also, if the avatar object 6A and the avatar object 6B are in a friend relationship (described later), the user 5A may select "friend list" from the menu image, select the avatar object 6B from the displayed friends, and perform a block setting for the avatar object 6B.
[0151] As shown in FIG. 13, the HMD set 110A (specifically, the avatar control module 1429A) acquires avatar information (step S1310A) and transmits the acquired avatar information to the server 600. In this embodiment, when the user 5A performs the above-mentioned block setting, the avatar control module 1429A transmits the avatar information including the block information to the server 600. Note that the block information may be transmitted to the server 600 separately from the avatar information. The block information includes, for example, the ID of the user 5 who performed the block setting and the ID of the user 5 of the avatar object 6 that is to be blocked.
[0152] The server 600 temporarily stores the received avatar information, executes synchronization processing (step S1320), and transmits the avatar information to each HMD set 110. However, if the avatar information received from an HMD set 110 contains block information, the avatar information transmitted to a specific HMD set 110 is avatar information that reflects the next display change processing (identifiability change processing).
[0153] (Display change processing) 15, the control module 1610 of the server 600 includes a block control module 1741 (setting reflecting means). The block control module 1741 executes a display change process when it determines that block information is included in the avatar information received from the HMD set 110. Fig. 16 is a flowchart showing the flow of the display change process.
[0154] The block control module 1741 identifies the user who set the block (first user) and the user to be blocked (second user) based on the received block information (step S1).
[0155] Next, the block control module 1741 changes information (first information) indicative of the appearance and handle name of the avatar object 6 of the first user in the avatar information to be transmitted to the HMD set 110 of the second user (step S2). Here, it is assumed that the block control module 1741 changes information indicative of the appearance and handle name of the avatar object 6A of the user 5A in the avatar information to be transmitted to the HMD set 110B of the user 5B.
[0156] Regarding the appearance after the change in step S2, the change in appearance may be to change the appearance of the avatar object 6 to another appearance with a different gender, physique, facial shape, race, or species of creature, for example. For example, if the avatar object 6 of the first user has a female appearance, it may be changed to a male appearance, or to an animal appearance such as a panda. In addition, the change in appearance may be to change, for example, a part of the appearance or equipment of the current avatar object 6. For example, the hairstyle, clothes, accessories, glasses, etc. may be changed. Note that changing the appearance may be referred to as changing the skin.
[0157] It is preferable that the change in appearance of the avatar object 6 in step S2 is made to such an extent that it is impossible to identify that the avatar object 6 is the same before and after the change. For example, it is preferable that the gender, facial shape, etc. are changed, or the face is covered with a mask or the like.
[0158] Moreover, it is preferable that the handle name change in step S2 is made to such an extent that it is impossible to identify that the avatar object 6 is the same before and after the change. For example, if the gender currently set for the avatar object 6 is female, it is preferable that the handle name be changed to one that evokes the gender of the avatar object 6 as male.
[0159] In the process of step S2, the block control module 1741 may automatically select the changed appearance or the changed handle name of the first user's avatar object 6. In other words, the block control module 1741 may automatically select the changed appearance or the changed handle name of the first user's avatar object 6 from one or more candidates stored in the memory module 1630.
[0160] Furthermore, the first user may be able to select the changed appearance and handle name of the avatar object 6 of the first user when making a block setting, etc. When selected by the first user, the first user's avatar control module 1429 transmits block information including the selected information to the server 600. Then, in the process of step S2 described above, the block control module 1741 regards the appearance and handle name of the avatar object 6 of the first user as being selected by the first user. In addition, when there are multiple second users that the first user wants to block, the first user may be able to set different appearances and handle names for his / her avatar object 6 for each second user.
[0161] When the block control module 1741 executes the display change process, it transmits the avatar information in which the display change process is reflected to the HMD set 110 of the second user. In this embodiment, the block control module 1741 transmits the avatar information in which the display change process is reflected to the HMD set 110B of the user 5B. Then, in step S1330B of FIG. 13, the avatar control module 1429B in the HMD set 110B displays the avatar object 6A with the changed appearance and the changed handle name based on the received avatar information (specifically, the first information). When the block setting is performed, the appearance of the avatar object 6A for the blocked user 5B is changed to an appearance different from the appearance before the change (in other words, the appearance for a user not blocked). Note that when changing the appearance (distinguishing property), it is sufficient that the appearance (distinguishing property) of the avatar object 6A becomes different as a result of the display based on the information received by the avatar control module 1429B. Furthermore, when changing the voice as distinctiveness, in the process of step S2, the setting reflecting means sets the changed voice (voice quality, speaking style) of the avatar object 6 of the first user (user 5A). After the setting, the HMD set 110 (avatar control module 1429B) of the second user (user 5B) sets the voice of the avatar object 6A, which is output based on the acquisition of the voice data of the user 5A, to the changed voice. When changing the behavior as distinctiveness, in the process of step S2, the setting reflecting means sets the changed behavior (habit) of the avatar object 6 of the first user (user 5A). After the setting, the HMD set 110 (avatar control module 1429B) of the second user (user 5B) controls the behavior of the avatar object 6A so that some of the behavior is different from that of the user 5A.
[0162] For example, in the case of changing the appearance, the block control module 1741 may change the appearance by including a process of generating an avatar object with a changed appearance, or may change the appearance without including a process of generating an avatar object with a changed appearance. For example, the memory module 530 of the HMD set 110 or the memory module 1630 of the server 600 may have object data representing the avatar object 6A before the change and object data representing the avatar object 6A after the change prepared in advance, and the setting reflection means may change the appearance of the avatar object 6A for the user 5B by changing the object data to be transmitted to the HMD set 110B of the user 5B based on the setting (e.g., block setting) of the user 5A. Here, the object data representing the avatar object 6A before the change and the object data representing the avatar object 6A after the change may be prepared by the user 5A (in other words, registered by the user 5A).
[0163] 17(a) shows an example of a field of view image 17B of a user 5B before the user 5A sets a block on an avatar object 6B. The avatar object 6A has the appearance of a female idol, and has the handle name "minamina." 17(b) shows an example of a field of view image 17B of the user 5B after the user 5A sets a block on the avatar object 6B. The avatar object 6A has the appearance of a young male, and has the handle name "gonzou."
[0164] The block control module 1741 controls so as not to change the appearance and handle name of the avatar object 6A for the user 5 who operates the avatar object 6 other than the avatar object 6B. In other words, the appearance and handle name of the avatar object 6A for the user 5B who operates the avatar object 6B for which the user 5A has set a block, is changed, but the appearance and handle name of the avatar object 6A for the user (e.g., user 5C) who operates the avatar object (e.g., avatar object 6C) for which the user 5A has not set a block, is not changed. The block control module 1741 transmits avatar information reflecting the display change process to the HMD set 110B of the user 5B who operates the avatar object 6B for which the user 5A has set a block, but does not transmit the avatar information to the HMD set 110 of the user 5 who operates the avatar object 6 for which the user 5A has not set a block.
[0165] In this embodiment, the appearance and handle name of the avatar object 6 of the first user who has set the block are changed for the second user who has been set the block. In this case, the distinctiveness (appearance and handle name) of the avatar object 6 of the second user for the first user may also be changed. In other words, the distinctiveness (appearance and handle name) of the avatar object 6B of the user 5B for the user 5A may also be changed.
[0166] In this case, in the process of step S2 in Fig. 16, the block control module 1741 (1) changes information indicating the appearance and handle name of the avatar object 6 of the first user in the avatar information to be transmitted to the HMD set 110 of the second user, and (2) changes information indicating the appearance and handle name of the avatar object 6 of the second user in the avatar information to be transmitted to the HMD set 110 of the first user. Then, the second user's avatar control module 1429 displays the avatar object 6 of the first user with the changed appearance and the changed handle name based on the received avatar information, and the first user's avatar control module 1429 displays the avatar object 6 of the second user with the changed appearance and the changed handle name based on the received avatar information. In other words, the appearance of the avatar object 6 of the first user provided to the second user will have changed from its appearance before the block setting was made, and the appearance of the avatar object 6 of the second user provided to the first user will have changed from its appearance before the block setting was made.
[0167] There is a possibility that user 5A (first user) who operates avatar object 6A feels fear, disgust, etc. toward avatar object 6B (avatar object 6 of second user). Therefore, by changing the appearance and handle name of avatar object 6B when blocking, it becomes difficult for user 5A to recognize the existence of avatar object 6B after blocking. This reduces fear, disgust, etc. toward avatar object 6B.
[0168] In this embodiment, avatar objects 6 can have a friend relationship in virtual space 11. For example, in virtual space 11, when a user 5C who operates avatar object 6C makes a friend request to avatar object 6A and the user 5A of avatar object 6A approves the request, the avatar object 6C and avatar object 6A have a friend relationship. Note that each user 5 can make a friend request or approve the request by operating controller 300. Also, the friend relationship between avatar object 6C and avatar object 6A may be referred to as the user 5C and user 5A being friends.
[0169] In this embodiment, when avatar object 6C and avatar object 6A are in a friend relationship, at least one of avatar control module 1429C and avatar control module 1429A transmits avatar information including information (friend information) indicating that avatar object 6C and avatar object 6A are friends to server 600. The friend information includes at least the ID of user 5 who requested to be friends and the ID of user 5 who approved the request.
[0170] 15, the control module 1610 of the server 600 includes a friend management module (friend management means) 1751. For each avatar object 6, the friend management module 1751 creates a list of avatar objects 6 that have a friend relationship with the avatar object 6 (specifically, a friend list), and stores the list in the memory module 1630. Based on the reception of friend information, the friend management module 1751 updates the corresponding friend list.
[0171] For the sake of explanation, the appearance of the avatar object 6A shown in FIG. 17(a) is referred to as the "true appearance", and the appearance of the avatar object 6A shown in FIG. 17(b) is referred to as the "fake appearance". In this embodiment, when the user 5A performs a block setting targeting the avatar object 6B, the fake appearance of the avatar object 6A is visible to the user 5B. Note that even if the avatar object 6A and the avatar object 6B are in a friend relationship, the block setting is prioritized, and the fake appearance of the avatar object 6A is visible to the user 5B.
[0172] Furthermore, in this embodiment, the true appearance of the avatar object 6A can be seen by a user 5 of an avatar object 6 that is not blocked by the user 5A, regardless of whether the user 5 of the avatar object 6 is in a friend relationship with the avatar object 6A. Note that the user 5 of the avatar object 6 that is not set as a block by the user 5A and has a friend relationship with the avatar object 6A may view the true appearance of the avatar object 6A, but the user 5 of the avatar object 6 that is not set as a block by the user 5A and has a friend relationship with the avatar object 6A may view the fake appearance of the avatar object 6A. In other words, for example, when the user 5A (avatar object 6A) sets the user 5C (avatar object 6C) as a friend, the control module 1610 may change the appearance of the avatar object 6A that is viewed by the user 5C from the fake appearance before setting as a friend to the true appearance. In other words, each user 5 can register multiple types of appearances, including an appearance to be shown to users 5 that the user 5 has set as special users 5 (e.g., friends) and an appearance to be shown to users 5 that the user has not set as special users 5, and an avatar object 6 with a predetermined appearance may be provided to other users 5 according to the settings.
[0173] In this embodiment, an avatar object (assumed to be avatar object 6C here) that is in a friend relationship with avatar object 6A of user 5A is relatively likely to act together with avatar object 6A in virtual space 11. In this case, user 5B of avatar object 6B that has been blocked by user 5A may indirectly see through the true identity of avatar object 6A by looking at avatar object 6C that is in a friend relationship with avatar object 6A of user 5A. Seeing through the true identity means realizing that avatar object 6A (gonzou) having the appearance (false appearance) of FIG. 17(b) is actually avatar object 6A (minamina) having the appearance (true appearance) of FIG. 17(a). In other words, it means realizing that the appearance of avatar object 6A has changed.
[0174] In order to prevent the identification of the true identity through such a friend avatar object 6, the following configuration may be adopted. In the process of step S2 in FIG. 16, the block control module 1741 changes (α) information indicative of the appearance and handle name of the avatar object 6 of the first user (user 5A) in the avatar information to be transmitted to the HMD set 110 of the second user (user 5B), and (β) information indicative of the appearance and handle name of all avatar objects 6 (avatar objects 6C) in a friend relationship with the avatar object 6 of the first user (user 5A). The block control module 1741 can identify avatar objects 6 in a friend relationship with the avatar object 6 of the first user (user 5A) from the friend list of the avatar object 6 of the first user (user 5A) stored in the memory module 1630.
[0175] When the distinctiveness (appearance and handle name) of avatar object 6C, which is in a friend relationship with avatar object 6A, is changed in addition to the appearance and handle name of avatar object 6A, it becomes difficult for user 5B to figure out the true identity of avatar object 6A through friend avatar object 6C. This makes it even more difficult for avatar object 6B to cause trouble to avatar object 6A.
[0176] According to this embodiment, it is difficult for user 5B who operates avatar object 6B to find avatar object 6A in virtual space 11, but user 5 who operates avatar object 6 other than avatar object 6B can find avatar object 6A in virtual space 11. Therefore, user 5A who operates avatar object 6A can have a conversation or the like with user 5 who operates avatar object 6 other than avatar object 6B through avatar object 6 while suppressing avatar object 6B from causing trouble to avatar object 6A. This makes it possible to provide user 5 with a game space (i.e., virtual space 11) in which the possibility of user 5 feeling uncomfortable is reduced.
[0177] In addition, if the sanctions imposed when the predetermined setting is made are direct and severe, such as when the user 5A who operates the avatar object 6A makes a predetermined setting (for example, a block setting) for the avatar object 6B, and the user 5B who operates the avatar object 6B is unable to make the avatar object 6B appear in the virtual space 11, the user 5B who operates the avatar object 6B may be stimulated, and the user 5B may be more likely to attempt a nuisance in another way. In this embodiment, the sanctions imposed when the predetermined setting is made change the appearance of the avatar object 6A for the user 5B, and the avatar object 6B can be made to appear in the virtual space 11, so that the sanctions are relatively not too severe and the possibility of irritating the user 5 who operates the avatar object 6B may be reduced.
[0178] (Modification) In this embodiment, when the user 5A performs a block setting targeting the avatar object 6B, a display change process is executed to change the discernibility of the avatar object 6A to the user 5B who operates the avatar object 6B, but instead of or in addition to the display change process, another process different from the display change process may be executed. Below, a case where a dummy arrangement process is executed instead of the display change process will be described.
[0179] When the dummy placement process is executed, at least one dummy avatar object 6A' (hereinafter, referred to as dummy character 6A') corresponding to the avatar object 6A is placed in the virtual space 11. A dummy can be a ghost, an alter ego, a substitute, a stand-in, a fake (fake character), or the like. The dummy character 6A' has the same appearance as the avatar object 6A. In other words, the dummy character 6A' is a duplicate of the avatar object 6A. The dummy character 6A' may have a different appearance (similar appearance) from the avatar object 6A. The different appearance (similar appearance) refers to, for example, having the same face but different hairstyles, clothes, or colors of clothes. In addition, when a plurality of dummy characters 6A' are placed, the appearances of the dummy characters 6A' may be the same or different (for example, similar). In this embodiment, when multiple dummy characters 6A' are arranged, the dummy characters 6A' are similar to each other, but differ in, for example, the color of their clothes (part of their appearance).
[0180] When the dummy arrangement process is executed and the dummy character 6A' appears, the user 5B may mistake the dummy character 6A' for the avatar object 6A, and the avatar object 6B may be more likely to follow the dummy character 6A', making it more difficult for the avatar object 6B to cause trouble to the avatar object 6A. In addition, when a plurality of dummy characters 6A' appear, the possibility that the user 5B who operates the avatar object 6B feels uncomfortable seeing the dummy character 6A' can be reduced if the appearances of the dummy characters 6A' are similar to each other rather than being identical. In other words, the possibility that the user 5B follows the dummy character 6A' without noticing that it is a dummy character 6A' can be increased.
[0181] In addition, the dummy character 6A' may have the same handle name (object for identification) as the avatar object 6A. In this case, the possibility of mistaking the dummy character 6A' for the avatar object 6A increases, making it more difficult for the avatar object 6B to cause trouble to the avatar object 6A.
[0182] As will be described later, the dummy character 6A' does not move based on the operation of the user 5A. Also, unlike the avatar object 6A, the dummy character 6A' cannot engage in conversation. Note that, although the dummy character 6A' cannot engage in conversation in this embodiment, it may be controlled by, for example, an AI or the like and be capable of responding. The dummy character 6A' has no substance (in other words, it has no content).
[0183] 13, HMD set 110A (specifically, avatar control module 1429A) acquires avatar information (step S1310A) and transmits the acquired avatar information to server 600. Server 600 temporarily stores the received avatar information, executes synchronization processing (step S1320), and transmits the avatar information to each HMD set 110. If the avatar information received from HMD set 110 includes block information, server 600 executes dummy placement processing. FIG. 18 is a flowchart showing the flow of the dummy placement processing.
[0184] (Dummy placement process) The block control module 1741 identifies the user who set the block (first user) and the user to be blocked (second user) based on the received block information (step S10).
[0185] Next, the block control module 1741 adds information (second information) instructing the placement of at least one (in other words, one) dummy character 6A' of the avatar object 6 of the first user to the avatar information to be transmitted to the HMD set 110 of the second user (step S20). Note that in this embodiment, the second information is added to the avatar information, but the second information may be transmitted to the HMD set 110 of the second user separately from the avatar information. Here, the block control module 1741 transmits information (second information) instructing the placement of three dummy characters 6A' of the avatar object 6A of the user 5A to the HMD set 110B of the user 5B.
[0186] When the block control module 1741 executes the dummy placement process, it transmits avatar information reflecting the dummy placement process to the HMD set 110 of the second user. In this embodiment, the block control module 1741 transmits avatar information reflecting the dummy placement process to the HMD set 110B of the user 5B. In step S1330B of FIG. 13, the avatar control module 1429B in the HMD set 110B places three dummy characters 6A' of the avatar object 6A in the virtual space 11B based on the received avatar information. In other words, the block control module 1741 transmits information (second information) instructing the avatar control module 1429B to place the dummy characters 6A', and the avatar control module 1429B places the dummy characters 6A' in the virtual space 11B based on the information.
[0187] 19 shows an example of the virtual space 11B after the user 5A sets an avatar object 6B as a block. In addition to the avatar object 6A, three dummy characters 6A' appear in the virtual space 11B.
[0188] The block control module 1741 controls so that the dummy character 6A' is not visible to the user 5 who operates the avatar object 6 other than the avatar object 6B. In other words, the dummy character 6A' of the avatar object 6A is visible to the user 5B of the avatar object 6B with the block setting, but the dummy character 6A' of the avatar object 6A is not visible to the user (e.g., the user 5C) who operates the avatar object (e.g., the avatar object 6C) with no block setting. The block control module 1741 transmits avatar information reflecting the dummy arrangement process to the HMD set 110B of the user 5B who operates the avatar object 6B with the block setting from the user 5A, but does not transmit the avatar information to the HMD set 110 of the user 5 who operates the avatar object 6 with no block setting from the user 5A. In other words, for example, the dummy character 6A' is not arranged in the virtual space 11C.
[0189] In this modified example, the dummy character 6A' is not visible to the user 5 of an avatar object 6 that is not blocked by the user 5A, regardless of whether the user 5 of the avatar object 6 is a friend of the avatar object 6A. The dummy character 6A' may not be visible to a user 5 of an avatar object 6 that is not blocked by user 5A and that has a friend relationship with avatar object 6A, but the dummy character 6A' may be visible to a user 5 of an avatar object 6 that is not blocked by user 5A and that does not have a friend relationship with avatar object 6A. Furthermore, the dummy character 6A' is not visible to the user 5A of the avatar object 6A for which a block has been set, but the dummy character 6A' may be visible to the user 5A as well.
[0190] The user 5A can operate the avatar object 6A. On the other hand, the user 5A cannot operate the dummy character 6A' of the avatar object 6A. The dummy character 6A' is not operated by the user, but operates based on a program and moves around the virtual space 11 automatically. The block control module 1741 controls the movement of the dummy character 6A' in the virtual space 11. The block control module 1741 controls the dummy character 6A' to move around randomly in the virtual space 11. Moving around randomly is not limited to always moving, and may be moving and stopping alternately. When arranging a plurality of dummy characters 6A' in the virtual space 11, it is preferable that the block control module 1741 scatters the dummy characters 6A'.
[0191] The block control module 1741 transmits information instructing the movement of the dummy character 6A' to at least the HMD set 110 (HMD set 110B) of the second user (user 5B). The avatar control module 1429B of the HMD set 110 (HMD set 110B) moves the dummy character 6A' based on the received information.
[0192] The block control module 1741 may create an AI by learning the behavior history of the avatar object 6A, and control the behavior of the dummy character 6A' in the virtual space 11 based on the AI. In this case, the behavior pattern of the dummy character 6A' becomes closer to the behavior pattern of the avatar object 6A. Therefore, it becomes more difficult to distinguish whether it is the avatar object 6A or the dummy character 6A'. This makes it more difficult for the avatar object 6B to cause trouble to the avatar object 6A.
[0193] When the user 5A performs a block setting for the avatar object 6B, both the display change process and the dummy arrangement process may be executed. In this case, for example, at least one dummy character 6A' corresponding to the avatar object 6A before the change (i.e., the true appearance) is arranged, and the appearance of the avatar object 6A for the user 5B who operates the avatar object 6B is controlled to be the changed appearance (i.e., the false appearance). In this case, since it becomes difficult to find the avatar object 6A, the possibility of following the dummy character 6A' becomes relatively higher, and it becomes more difficult for the avatar object 6B to cause trouble to the avatar object 6A. In addition, both the display change process and the dummy placement process may be executed, and the appearance of the avatar object 6A for the user 5B operating the avatar object 6B may be changed to a changed appearance, and at least one dummy character 6A' corresponding to the avatar object 6A having the changed appearance may be placed.
[0194] Furthermore, when the user 5A performs a block setting targeting the avatar object 6B, the user 5B (only) who operates the avatar object 6B may be unable to view the avatar object 6A.
[0195] According to this modification, the user 5B who operates the avatar object 6B is likely to mistake the dummy character 6A' for the avatar object 6A in the virtual space 11, and the avatar object 6B is likely to follow the dummy character 6A', making it difficult for the avatar object 6B to cause trouble to the avatar object 6A. This makes it possible to provide the user 5 with a game space (i.e., the virtual space 11) in which the possibility of the user 5 feeling uncomfortable is reduced.
[0196] (Second embodiment) Next, a second embodiment of the present invention will be described. The HMD system 100 according to this embodiment has a configuration basically similar to that of the HMD system 100 according to the first embodiment, so the description of the configuration similar to that of the HMD system 100 according to the first embodiment will be omitted or simplified.
[0197] As shown in FIG. 15, the control module 1610 of the server 600 includes a nuisance behavior determination module 1761 (determination means, detection means). The nuisance behavior determination module 1761 can determine which type of communication between avatar objects 6 in the virtual space 11 is, and one of the types is a type in which a specific avatar object performs a nuisance behavior (so-called stalking behavior) on a specific avatar object. Note that the type of communication determined by the nuisance behavior determination module 1761 may be only a type in which a specific avatar object performs a nuisance behavior on a specific avatar object. The nuisance behavior determination module 1761 can automatically determine whether or not a nuisance behavior is being performed. The nuisance behavior determination module 1761 can detect behavior of an avatar object in the virtual space 11 that becomes a nuisance behavior.
[0198] 12(A), a case will be described in which each HMD set 110 provides a virtual space 11 to a user 5. Similarly to the first embodiment, a case will be described in which an avatar object 6B is causing trouble to an avatar object 6A in the virtual space 11.
[0199] 13, for example, the HMD set 110B (specifically, the avatar control module 1429B) acquires avatar information (step S1310B) and transmits the acquired avatar information to the server 600. The avatar information transmitted from each HMD set 110 to the server 600 includes information (position information) indicating the position in the virtual space 11 of the avatar object 6 operated by the user 5 of the HMD set 110.
[0200] In this embodiment, the field of view image generation module 1438B of the HMD set 110B generates a field of view image 17B to be displayed on the monitor 130B based on the field of view area 15B. The field of view image generation module 1438B transmits information regarding the field of view of the user 5B to the server 600. The information regarding the field of view of the user 5B may be, for example, the field of view image 17B, or may be information indicating an object displayed in an image (i.e., the field of view image 17B) presented to the user 5B. Similarly, the other HMD sets 110 transmit information regarding the field of view of the user 5 of the HMD set 110 to the server 600. Hereinafter, the information regarding the field of view of the user 5 is referred to as field of view information.
[0201] (Decision based on visibility information) The nuisance behavior determination module 1761 performs a nuisance behavior determination process based on visibility information received from the HMD set 110. Fig. 20 is a flowchart showing the flow of the nuisance behavior determination process. In Fig. 20, the nuisance behavior determination process based on visibility information received from the HMD set 110B will be described.
[0202] The nuisance behavior determination module 1761 determines whether the field of view information received from the HMD set 110B indicates that the field of view includes the avatar object 6 (step S101). If it is determined in step S101 that the field of view information does not indicate that the field of view includes the avatar object 6 (step S101: NO), the nuisance behavior determination module 1761 repeats the process of step S101.
[0203] In step S101, when it is determined that the field of view information indicates that the avatar object 6 is included in the field of view (step S101: YES), the nuisance behavior determination module 1761 determines whether or not the avatar object 6 is a friend of the avatar object 6B of the user 5B of the HMD set 110B (step S102). In step S102, when it is determined that the avatar object 6 is a friend of the avatar object 6B (step S102: YES), the process returns to step S101. On the other hand, in step S102, when it is determined that the avatar object 6 is not a friend of the avatar object 6B (step S102: NO), the process proceeds to step S103. Here, it is assumed that the field of view information received from the HMD set 110B includes the avatar object 6A, and the avatar object 6A and the avatar object 6B are not friends.
[0204] The nuisance behavior determination module 1761 starts measuring the time during which the avatar object 6A is included in the field of view (in other words, is caught in the field of view) (step S103).
[0205] Next, the nuisance behavior determination module 1761 determines whether the state in which the avatar object 6A is included in the field of view continues based on the field of view information received from the HMD set 110B (step S104). If it is determined in step S104 that the state in which the avatar object 6A is included in the field of view continues (step S104: YES), the nuisance behavior determination module 1761 continues measuring time and repeats the process of step S104. On the other hand, if it is determined in step S104 that the state in which the avatar object 6A is included in the field of view does not continue (step S104: NO), the nuisance behavior determination module 1761 ends measuring time and determines whether the measured time is equal to or longer than a first predetermined time (step S105). The measured time can be said to be the time during which the avatar object 6A is captured in the field of view of the user 5B. The first predetermined time is, for example, one hour. Note that step S104 may be configured to continue measuring time without determining that the avatar object 6A is not continuously in the field of view (step S104: NO) when the user 5B merely looks away from the avatar object 6A for a relatively short time. In other words, when the user 5B looks away from the avatar object 6A for a short time (e.g., 5 seconds) and then looks back at the avatar object 6A, the process of step S104 may continue and the process may not proceed to step S105.
[0206] In step S105, when it is determined that the measured time is less than the first predetermined time (step S105: NO), the nuisance behavior determination module 1761 does not determine that the type of communication of the avatar object 6B with respect to the avatar object 6A is a nuisance type (does not detect behavior that constitutes a nuisance), and returns to the process of step S101. On the other hand, in step S105, when it is determined that the measured time is equal to or greater than the first predetermined time (step S105: YES), the nuisance behavior determination module 1761 determines that the type of communication of the avatar object 6B with respect to the avatar object 6A is a nuisance type (in other words, it recognizes the avatar object 6B as the avatar object 6 that is performing a nuisance) (in other words, it detects behavior that constitutes a nuisance), and transmits nuisance behavior detection information to the specific control execution module 1771 (step S106). The nuisance behavior detection information includes at least the ID of the user (user 5B) of the avatar object (avatar object 6B) determined to be engaging in nuisance behavior, and the ID of the user (user 5A) of the avatar object (avatar object 6A) determined to be a victim of nuisance behavior.
[0207] Even if it is determined in step S104 that the avatar object 6A continues to be included in the field of view, if the state in which both the avatar object 6A and the avatar object 6B are stopped continues for a certain period of time, the measurement of time may be stopped once, and the measurement of time may be resumed when either one of the avatar objects starts to move. In other words, the first predetermined time may be configured not to include the predetermined time that has elapsed while both the avatar object 6A and the avatar object 6B are stopped. In a case in which the avatar object 6B is not causing any nuisance to the avatar object 6A, and both the avatar object 6A and the avatar object 6B are simply left standing without performing any operation, if the measurement of time in step S104 is continued, there is a risk that the avatar object 6B may be determined to be causing a nuisance to the avatar object 6B. Therefore, by not including the time during which both the avatar object 6A and the avatar object 6B are stopped in the first predetermined time, the possibility of such a determination being made can be reduced.
[0208] Also, in step S105, the nuisance behavior determination module 1761 may change the first predetermined time period according to the attribute of the avatar object 6A captured in the field of view. For example, if the avatar object 6A has an attribute that can attract the gaze of the user 5 who operates other avatar objects 6, the first predetermined time period may be set longer (e.g., 3 hours). Such attributes include having a relatively large number of friends, wearing an extremely rare item, and the like. If the first predetermined time period is set longer when the avatar object 6A has such an attribute, it is possible to reduce the possibility of determining that the avatar object 6B, which is not nuisance behavior toward the avatar object 6A and is following the avatar object 6A that is popular in the virtual space 11 with good intentions, is nuisance behavior.
[0209] The nuisance behavior determination process shown in Figure 20 can be said to determine whether avatar object 6B is engaging in nuisance behavior based on whether the length of time that avatar object 6A is continuously within the field of view of user 5B operating avatar object 6B is equal to or longer than a first predetermined time.
[0210] (Modification) Step S105 and subsequent steps in Fig. 20 may be configured as follows. As shown in Fig. 21, the nuisance behavior determination module 1761 ends the measurement of time and updates the stored value of the total time stored in the memory module 1630 (step S105'). The total time is the total (in other words, accumulated) time during a predetermined period during which a predetermined avatar object (avatar object 6A) is in the field of view of a user 5B operating a predetermined avatar object (avatar object 6B). The predetermined period may be, for example, one day or one week.
[0211] Next, the nuisance behavior determination module 1761 determines whether the total time stored in the memory module 1630 is equal to or greater than a second predetermined time (step S106'). When the predetermined period is one day, the second predetermined time is, for example, three hours. Note that the nuisance behavior determination module 1761 may change the second predetermined time according to the attribute of the avatar object 6 captured in the field of view, similar to the first predetermined time.
[0212] If it is determined in step S106' that the total time is less than the second predetermined time (step S106': NO), the nuisance behavior determination module 1761 does not determine that the type of communication of avatar object 6B with avatar object 6A is a nuisance type (does not detect behavior that constitutes a nuisance), and returns to the process of step S101. On the other hand, if it is determined in step S106' that the total time is equal to or greater than the second predetermined time (step S106': YES), the nuisance behavior determination module 1761 determines that the type of communication of avatar object 6B with avatar object 6A is a nuisance type (detects behavior that constitutes a nuisance), and transmits nuisance behavior detection information to the specific control execution module 1771 (step S107).
[0213] In this modified example, the condition for determining whether avatar object 6B is engaging in nuisance behavior is whether the total time that avatar object 6A is within the field of view of user 5B operating avatar object 6B during a specified period of time is equal to or longer than a second specified time.
[0214] The predetermined period may be, for example, one week, and the condition for determining whether the avatar object 6B is committing a nuisance may be whether the number of days during which the avatar object 6A is in the field of view of the user 5B who operates the avatar object 6B is a predetermined number or more in the predetermined period. In this case, if the number of days during which the avatar object 6A is in the field of view of the user 5B who operates the avatar object 6B is a predetermined number or more in the predetermined period, the avatar object 6B is determined to be committing a nuisance.
[0215] As described above, the nuisance behavior determination means may determine whether or not a nuisance behavior is being performed based on the time that the avatar object 6 is captured in the field of view of the user 5.
[0216] (Specific Control) The specific control execution module 1771 (specific control execution means) of the server 600 executes specific control when it receives the nuisance detection information. The specific control may be, for example, a control to notify the user 5A of the avatar object 6A determined to be a victim of a nuisance that the avatar object 6B is engaging in a nuisance (or may be engaging in a nuisance). The notification may be, for example, a notification screen that the specific control execution module 1771 sends information related to the notification to the control module 510A of the HMD set 110A, and the control module 510A displays a display (i.e., a notification screen) on the monitor 130A based on the information that the avatar object 6B may be engaging in a nuisance. In this case, the block setting may be made from the notification screen. In other words, a predetermined operation related to the block setting may be accepted on the notification screen.
[0217] By receiving the notification, the user 5A can become aware that the avatar object 6B may be engaging in nuisance behavior, and can consider whether or not measures need to be taken, and if necessary, can take measures such as blocking settings.
[0218] The specific control may be a control to impose a sanction on the user 5B who operates the avatar object 6B. For example, the user 5B may be placed in a state where the avatar object 6B determined to be performing a nuisance action cannot be made to appear in the virtual space 11. This control may be said to be a control to expel the avatar object 6B from the virtual space 11, or to be a control to prohibit the placement of the avatar object 6B in the virtual space 11. When this control is executed, the user 5B cannot make his / her avatar object 6B appear in the virtual space 11. Therefore, the avatar object 6B is placed in a state where it cannot perform a nuisance action against the avatar object 6A at all.
[0219] The specific control may be the display change process shown in the first embodiment. In this case, the specific control execution module 1771 instructs the block control module 1741 to change the distinctiveness of the avatar object 6A based on the reception of the nuisance detection information. In this case, the display change process is executed without the need to receive block information based on the block setting of the user 5A. The specific control may be the dummy placement process shown in the first embodiment. In this case, the specific control execution module 1771 instructs the block control module 1741 to place at least one dummy character 6A' of the avatar object 6A based on the reception of the nuisance detection information. In this case, the dummy placement process is executed without the need to receive block information based on the block setting of the user 5A.
[0220] According to this embodiment, when it is determined that the avatar object 6B is of a type that causes nuisance behavior with respect to the avatar object 6A (when behavior that constitutes nuisance behavior is detected), a specific control is automatically executed. If the specific control is executed based on a predetermined setting by the user 5, the nuisance behavior may be repeated until the user 5 sets the predetermined setting, and the user 5 may feel uncomfortable. According to this configuration, since the specific control is automatically executed when behavior that constitutes nuisance behavior is detected, the frequency with which the user 5 feels uncomfortable can be reduced. This makes it possible to provide the user 5 with a game space (i.e., the virtual space 11) in which the possibility of the user 5 feeling uncomfortable is reduced. Furthermore, if the user 5 judges for himself whether or not he is being subjected to nuisance behavior, and takes measures when he judges that he is being subjected to nuisance behavior, the time required to take the measures increases the likelihood that the user 5 will be subjected to the nuisance behavior and feel uncomfortable. In contrast, according to the present embodiment, specific control is automatically executed based on the detection of behavior that constitutes a nuisance behavior. Therefore, measures can be taken in a relatively short time, and the possibility that the user 5 will feel uncomfortable can be reduced. This makes it possible to provide the user with a virtual space 11 in which the possibility that the user 5 will feel uncomfortable is reduced.
[0221] (Decision based on location information) The nuisance behavior determination module 1761 may perform a nuisance behavior determination process based on the position information received from the HMD set 110. A specific description will be given below. Fig. 22 is a flowchart showing the flow of the nuisance behavior determination process.
[0222] Based on the received position information, the nuisance behavior determination module 1761 determines whether or not another avatar object 6 exists within a predetermined area (in other words, within a predetermined range) centered on the position of the avatar object 6 (reference avatar object 6) corresponding to each avatar object 6 of the user 5 of each HMD set 110 in the virtual space 11 (step S201). The predetermined area is, for example, an area in which the reference avatar object 6 can be viewed in the virtual space 11.
[0223] In step S201, if it is determined that another avatar object 6 does not exist within the predetermined area centered on the position of the reference avatar object 6 (step S201: NO), the process of step S201 is repeated. On the other hand, if it is determined that another avatar object 6 exists within the predetermined area centered on the position of the reference avatar object 6 (step S201: YES), the nuisance behavior determination module 1761 determines whether the other avatar object 6 is a friend of the reference avatar object 6 (step S202). In step S202, if it is determined that the other avatar object 6 is a friend of the reference avatar object 6 (step S202: YES), the process returns to step S201. On the other hand, if it is determined that the other avatar object 6 is not a friend of the reference avatar object 6 (step S202: NO), the process proceeds to step S203.
[0224] Next, the nuisance behavior determination module 1761 determines whether the reference avatar object 6 is being followed by another avatar object 6 (step S203). For example, the nuisance behavior determination module 1761 determines whether the reference avatar object 6 is being followed based on whether the other avatar object 6 is moving in the same direction as the reference avatar object 6 after the reference avatar object 6 moves. If it is determined in step S203 that the reference avatar object 6 is being followed by another avatar object 6 (step S203: YES), the process proceeds to step S204. On the other hand, if it is determined in step S203 that the reference avatar object 6 is not being followed by another avatar object 6 (step S203: NO), the process returns to step S201.
[0225] Here, the processing flow will be described using as an example a case in which (1) avatar object 6B (or avatar object 6A) exists within a specified area centered on the position of avatar object 6A (or avatar object 6B), (2) avatar object 6A and avatar object 6B are not friends, and (3) after avatar object 6A moves, avatar object 6B moves in the same direction as avatar object 6A, and after avatar object 6B moves, avatar object 6A does not move in the same direction as avatar object 6B.
[0226] If the reference avatar object 6 is avatar object 6A, in step S201 it is determined that avatar object 6B is present within a specified area centered on the position of avatar object 6A, in step S202 it is determined that avatar object 6B is not friends with avatar object 6B, in step S203 it is determined that avatar object 6A is being followed by avatar object 6B, and the process proceeds to step S204. On the other hand, if the reference avatar object 6 is avatar object 6B, in step S201 it is determined that avatar object 6A is present within a specified area centered on the position of avatar object 6B, in step S202 it is determined that avatar object 6A is not friends with avatar object 6A, and in step S203 it is determined that avatar object 6B is not being followed by avatar object 6A, and the processing returns to step S201.
[0227] The following describes a case where the reference avatar object 6 is the avatar object 6A. The nuisance behavior determination module 1761 starts measuring the time during which the avatar object 6B is present within a predetermined area centered on the position of the avatar object 6A (step S204).
[0228] Next, the nuisance behavior determination module 1761 determines whether the state in which the avatar object 6B exists within the predetermined area centered on the position of the avatar object 6A continues (step S205). If it is determined in step S205 that the state in which the avatar object 6B exists within the predetermined area centered on the position of the avatar object 6A continues (step S205: YES), the nuisance behavior determination module 1761 continues measuring time and repeats the process of step S205. On the other hand, if it is determined in step S205 that the state in which the avatar object 6B exists within the predetermined area centered on the position of the avatar object 6A does not continue (step S205: NO), the nuisance behavior determination module 1761 ends measuring time and determines whether the measured time is equal to or longer than a third predetermined time (for example, one hour) (step S206).
[0229] In step S206, when it is determined that the measured time is less than the third predetermined time (step S206: NO), the nuisance behavior determination module 1761 does not determine that the type of communication of avatar object 6B with avatar object 6A is a nuisance type (does not detect behavior that becomes a nuisance), and returns to the process of step S201. On the other hand, in step S206, when it is determined that the measured time is equal to or greater than the third predetermined time (step S206: YES), the nuisance behavior determination module 1761 determines that the type of communication of avatar object 6B with avatar object 6A is a nuisance type (detects behavior that becomes a nuisance), and transmits nuisance behavior detection information to the specific control execution module 1771 (step S207).
[0230] In step S206, the nuisance behavior determination module 1761 may change the third predetermined time in accordance with the attribute of the avatar object 6A, as in the case of the first predetermined time. Also, the nuisance behavior determination module 1761 may determine whether or not a nuisance behavior is being performed based on the total time in a predetermined period, as in the case of determining using the above-mentioned second predetermined time.
[0231] Also, in step S205, even if avatar object 6B continues to exist within a predetermined area centered on the position of avatar object 6A, if both avatar object 6A and avatar object 6B continue to be stationary for a certain period of time, the measurement of time may be stopped once, and may be resumed when either one of them starts to move. In other words, the third predetermined time may be configured not to include the predetermined time that has elapsed while both avatar object 6A and avatar object 6B are stationary.
[0232] In this example, it can be said that the condition for determining whether avatar object 6B is committing a nuisance behavior is whether the time during which avatar object 6B is continuously present within a predetermined area centered on the position of avatar object 6A is equal to or longer than a third predetermined time. The nuisance behavior determination means may determine whether avatar object 6B is committing a nuisance behavior based on the time during which avatar object 6B is present within a predetermined range from avatar object 6A.
[0233] (Modification) If it is determined in the above-mentioned step S206 that the measured time is equal to or longer than the third predetermined time (step S206: YES), the following configuration may be adopted. As shown in FIG. 23, the nuisance behavior determination module 1761 determines whether or not a predetermined history exists between the avatar object 6B (another avatar object 6) and the avatar object 6A (reference avatar object 6) during the third predetermined time (step S207'). The control module 1610 of the server 600 includes a history management module (history management means) 1781. The history management module 1781 stores history information including the behavior history of each avatar object 6 in the virtual space 11 in the memory module 1630. The nuisance behavior determination module 1761 performs the process of step S207' based on the history information.
[0234] The predetermined history may be a history of face-to-face meetings between avatar object 6B and avatar object 6A, or a history of conversations between user 5B of avatar object 6B and user 5A of avatar object 6A. Note that the history of conversations is not limited to a history of two-way exchange of voice data, and may be a history of one-way transmission of voice data from one side to the other.
[0235] In step S207', when it is determined that a predetermined history exists between avatar object 6B and avatar object 6A during the third predetermined time (step S207': YES), the nuisance behavior determination module 1761 does not determine that the type of communication of avatar object 6B with respect to avatar object 6A is a nuisance type (does not detect behavior that constitutes a nuisance), and returns to the process of step S201. On the other hand, in step S207', when it is determined that a predetermined history does not exist between avatar object 6B and avatar object 6A during the third predetermined time (step S207': NO), the nuisance behavior determination module 1761 determines that the type of communication of avatar object 6B with respect to avatar object 6A is a nuisance type (detects behavior that constitutes a nuisance), and transmits nuisance behavior detection information to the specific control execution module 1771 (step S208).
[0236] If a predetermined history exists within the third predetermined time, there is a possibility that the user 5A of the avatar object 6A does not have fear or dislike for the avatar object 6B. This configuration can reduce the possibility of determining that such an avatar object 6B is performing a nuisance. It can be said that this modified example determines that the avatar object 6B is performing a nuisance when the avatar object 6B is continuously present within a predetermined area centered on the position of the avatar object 6A for a period of time equal to or longer than the third predetermined time, and when there is no predetermined history between the avatar object 6B and the avatar object 6A during the third predetermined time.
[0237] (Judgment based on number of passes) The nuisance behavior determination module 1761 may perform the nuisance behavior determination process based on not only visibility information and position information but also pass-through count information. A specific description will be given below. In this example, it is assumed that no contact (clash) between avatar objects 6 is detected in the virtual space 11, and one avatar object 6 can pass through the other avatar object 6.
[0238] Even if avatar object 6B walks toward avatar object 6A and comes into contact with avatar object 6A, the contact between the two is not detected, and avatar object 6B passes through avatar object 6A. Avatar object 6B that is causing trouble to avatar object 6A walks around avatar object 6A, and is likely to pass through avatar object 6A more frequently than other avatar objects 6 that are not causing trouble to avatar object 6A.
[0239] The history management module 1781 stores, as history information, in the memory module 1630, for each avatar object 6, slip-through count information indicating the number of times that the avatar object 6 has slipped through other avatar objects 6 during a predetermined period. When there are a plurality of other avatar objects 6, the slip-through count information can be stored for each of the other avatar objects 6. The predetermined period may be, for example, one day. The nuisance behavior determination module 1761 performs a nuisance behavior determination process based on the slip-through count information.
[0240] FIG. 24 is a flowchart showing the flow of the nuisance behavior determination process. The nuisance behavior determination module 1761 determines whether or not there is an avatar object 6 whose number of times of passing through within a predetermined period of time has reached a predetermined number (for example, 10 times) based on the number of times of passing through (step S301).
[0241] In step S301, if it is determined that there is no avatar object 6 whose number of times of passing through has reached a predetermined number (e.g., 10 times) (step S301: NO), the process of step S301 is repeated. On the other hand, if it is determined that there is an avatar object 6 whose number of times of passing through has reached a predetermined number (e.g., 10 times) (step S301: YES), the nuisance behavior determination module 1761 identifies the avatar object 6 that has passed through (avatar object 6B in this case) and the avatar object 6 that has been passed through (avatar object 6A in this case) (step S302).
[0242] Next, the nuisance behavior determination module 1761 determines whether the avatar objects identified in step S302, i.e., the avatar object 6B and the avatar object 6A, are friends (step S303). If it is determined in step S303 that the avatar object 6B and the avatar object 6A are friends (step S303: YES), the process returns to step S301. On the other hand, if it is determined in step S303 that the avatar object 6B and the avatar object 6A are not friends (step S303: NO), the nuisance behavior determination module 1761 determines that the avatar object 6B is causing a nuisance behavior to the avatar object 6A (detects behavior that constitutes a nuisance behavior), and transmits nuisance behavior detection information to the specific control execution module 1771 (step S304).
[0243] In this example, it can be said that the condition for determining whether avatar object 6B is committing a nuisance behavior is whether or not the number of times avatar object 6B has passed through avatar object 6A in a predetermined period of time has reached a predetermined number. The predetermined period may be, for example, one week, and the condition for determining whether the avatar object 6B is committing a nuisance may be whether the number of days during the week on which the avatar object 6B has passed through the avatar object 6A a predetermined number of times or more is a predetermined number or more. In this case, if the number of days during the predetermined period on which the avatar object 6B has passed through the avatar object 6A a predetermined number of times or more is a predetermined number or more, the avatar object 6B is determined to be committing a nuisance.
[0244] The present invention is not limited to the above-described embodiment, and can be modified in various ways without departing from the gist of the present invention. Within the scope of the present invention, the components can be freely combined, any components can be modified, or any components can be omitted. The process flow described in this specification is merely an example, and the order and configuration of each process may be different. In addition, some processes such as the various determination processes shown in each flowchart may not exist. In other words, the process flow and specific determination processes may be different from those exemplified in this specification.
[0245] [Note] The matters described in the above embodiment can also be described as follows.
[0246] (Appendix 1) Computer, A setting reflection means (e.g., a block control module 1741) for changing the discernibility of the first character to a user who operates a second character without changing the discernibility of the first character to users who operate characters other than the second character, based on a predetermined setting made by a user who operates a first character for a second character with respect to a virtual space in which a character corresponding to the user can appear. A program that functions as a According to such a configuration, since the identifiability of the first character changes based on the predetermined setting, it becomes difficult for the user who operates the second character to identify the first character in the virtual space. On the other hand, the user who operates a character other than the second character can identify the first character in the virtual space. Therefore, the user who operates the first character can suppress the second character from causing trouble to the first character. In addition, the user who operates the first character can communicate with the user who operates a character other than the second character through the character in the virtual space. This makes it possible to provide the user with a virtual space in which the possibility of the user feeling uncomfortable is reduced.
[0247] (Appendix 2) The distinctive feature is appearance. 2. The program described in Appendix 1. According to this configuration, the appearance of the first character changes based on the specified setting, so that the user operating the second character has difficulty finding the first character in the virtual space. This makes it difficult for the second character to cause trouble to the first character, and reduces the possibility that the user operating the first character will feel uncomfortable.
[0248] (Appendix 3) The distinctive feature is an object for distinguishing the first character that is displayed together with the first character. 2. A program according to claim 1 or 2. According to this configuration, the identification object for the first character changes based on the specified setting, so that it becomes more difficult for the user operating the second character to identify the first character in the virtual space. This makes it difficult for the second character to cause trouble to the first character, and reduces the possibility that the user operating the first character will feel uncomfortable.
[0249] (Appendix 4) The setting reflecting means changes an appearance of the second character with respect to a user who operates the first character based on the predetermined setting. 2. A program according to claim 1 or 2. According to this configuration, it becomes difficult for the user operating the first character to recognize the presence of the second character in the virtual space, which reduces the fear, disgust, etc., that the user operating the first character may have toward the second character.
[0250] (Appendix 5) The setting reflecting means changes an appearance of a friend character of the first character with respect to the user who operates the second character based on the predetermined setting. 2. A program according to claim 1 or 2. According to this configuration, it is possible to reduce the possibility that a user who operates a second character will find out the true identity of the first character through the friend of the first character in the virtual space. Finding out the true identity means noticing that the distinctiveness of the first character has changed. This makes it more difficult for the second character to cause trouble to the first character, and reduces the possibility that the user who operates the first character will feel uncomfortable.
[0251] (Appendix 6) The device includes a setting reflection means (e.g., a block control module 1741) for changing the distinguishability of the first character to a user who operates a second character, without changing the distinguishability of the first character to users who operate characters other than the second character, based on a predetermined setting made by a user who operates a first character for a second character, with respect to a virtual space in which a character corresponding to the user can appear. Information processing system. According to this configuration, the same effects as those of the program described in Supplementary Note 1 can be achieved.
[0252] (Appendix 7) Computer, A setting reflection means (e.g., a block control module 1741) for causing at least one dummy character to appear in a virtual space in which a character corresponding to a user can appear, based on a predetermined setting made for a second character by a user who operates a first character. A program that functions as a According to this configuration, since the dummy character appears based on the specified setting, the user who operates the second character may mistake the dummy character for the first character, and the second character may be more likely to stalk the dummy character. This makes it difficult for the second character to cause trouble to the first character. This makes it possible to provide the user with a virtual space in which the possibility of the user feeling uncomfortable is reduced.
[0253] (Appendix 8) The setting reflecting means causes a plurality of the dummy characters having different appearances to appear in the virtual space based on the predetermined setting. 7. The program described in Appendix 7. With this configuration, the possibility that a user who operates the second character will feel uncomfortable seeing the dummy character can be reduced compared to when the appearances of multiple dummy characters are all the same. This increases the possibility that the second character will follow the dummy character without the user realizing that it is a dummy character. This reduces the possibility that a user who operates the first character will feel uncomfortable.
[0254] (Appendix 9) The setting reflecting means changes the discernibility of the first character to a user who operates the second character based on the predetermined setting. 13. A program according to claim 7 or 8. According to this configuration, since the identifiability of the first character changes, it becomes more difficult to identify the first character in the virtual space, and the possibility of the dummy character being stalked increases. This makes it more difficult for the second character to cause trouble to the first character, and reduces the possibility that the user operating the first character will feel uncomfortable.
[0255] (Appendix 10) The system further includes a setting reflecting means (e.g., a block control module 1741) for causing at least one dummy character to appear in a virtual space in which a character corresponding to a user can appear, based on a predetermined setting made for a second character by a user who operates a first character. Information processing system. According to this configuration, the same effects as those of the program described in Supplementary Note 7 can be achieved.
[0256] (Appendix 11) Computer, A detection means (e.g., a nuisance behavior determination module 1761) capable of detecting nuisance behavior of a character in a virtual space in which characters corresponding to each of a plurality of users can appear; A specific control execution means (e.g., a specific control execution module 1771) for executing specific control based on the detection of the nuisance behavior; A program that functions as a For example, if a user determines for himself whether or not a nuisance is occurring, and takes measures when he or she determines that a nuisance is occurring, the time required to take the measures increases the likelihood that the user will be subjected to the nuisance and feel uncomfortable. In contrast, according to the present configuration, specific control is automatically executed based on the detection of a behavior that constitutes a nuisance. Therefore, measures can be taken in a relatively short time, and the likelihood that the user will feel uncomfortable can be reduced. This makes it possible to provide the user with a virtual space in which the likelihood that the user will feel uncomfortable is reduced.
[0257] (Appendix 12) The specific control execution means, based on the detection of the nuisance behavior of the second character against the first character, notifies the user operating the first character that the second character is engaging in the nuisance behavior as the specific control. 12. The program according to claim 11. According to this configuration, the user operating the first character can notice that the second character is causing trouble and can take measures quickly.
[0258] (Appendix 13) The detection means detects the nuisance behavior based on a time during which the user views a predetermined character. 13. The program according to claim 11 or 12. According to this configuration, the behavior of a user who keeps a specific character in view for a relatively long period of time can be determined to be a nuisance behavior.
[0259] (Appendix 14) A detection means for detecting nuisance behavior of a character in a virtual space in which characters corresponding to each of a plurality of users can appear; A specific control execution means (e.g., a specific control execution module 1771) for executing specific control based on the detection of the nuisance behavior. Information processing system. According to this configuration, the same effects as those of the program described in Supplementary Note 11 can be achieved. [Explanation of symbols]
[0260] 5 User, 6 Avatar object, 11 Virtual space, 100 HMD system, 110 HMD set, 120 HMD, 130 Monitor, 200 Computer, 210 Processor, 220 Memory, 230 Storage, 240 Input / output interface, 250 Communication interface, 300 Controller, 410 HMD sensor, 420 Motion sensor, 510 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, 700 External device, 1421 Virtual camera control module, 1422 Viewing area determination module, 1423 Reference line of sight identification module, 1424 Face organ detection module, 1425 Motion detection module, 1426 Virtual space definition module, 1427 Virtual object generation module, 1428 Operation object control module, 1429 avatar control module, 1438 field of view image generation module, 1610 control module, 1630 memory module, 1640 communication control module, 1741 block control module, 1751 friend management module, 1761 nuisance behavior determination module, 1771 specific control execution module, 1781 history management module
Claims
1. Computer, a detection means for detecting nuisance behavior of a character in a virtual space in which characters corresponding to each of a plurality of users can appear; a specific control execution means for executing specific control related to measures against the nuisance behavior based on the detection of the nuisance behavior; The detection means determines that the second character is committing the nuisance behavior against the first character when the number of times the second character has slipped past the first character reaches a predetermined number within a predetermined period of time, and detects the behavior that constitutes the nuisance behavior.
2. The program described in claim 1, wherein the specific control execution means, based on detection of the second character's behavior that constitutes the nuisance behavior toward the first character, notifies the user operating the first character that the second character is engaging in the nuisance behavior as the specific control.
3. The program of claim 1, wherein the detection means does not detect the nuisance behavior if the first character and the second character have a predetermined relationship, even if the number of times the second character has slipped past the first character reaches the predetermined number during the predetermined period.
4. a detection means for detecting nuisance behavior of a character in a virtual space in which characters corresponding to each of a plurality of users can appear; a specific control execution means for executing specific control relating to measures against the nuisance behavior based on the detection of the nuisance behavior, The detection means determines that the second character is committing the nuisance behavior against the first character when the number of times the second character has slipped past the first character reaches a predetermined number within a predetermined period of time, and detects the behavior that constitutes the nuisance behavior.