Virtual space generation program and virtual space generation device

A computer system efficiently manages and generates sound effects in large-scale virtual spaces by reading and storing volume element data, addressing the challenge of information acquisition in large-scale virtual spaces.

JP7758953B2Active Publication Date: 2025-10-23CAPCOM CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2022108950
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-07-06
Publication Date
2025-10-23
Estimated Expiration
2042-07-06

AI Technical Summary

Technical Problem

Efficient acquisition of information about large-scale virtual spaces for sound effects becomes necessary as virtual spaces grow larger.

Method used

A computer system that reads and stores volume element data, including type and characteristic information of virtual space areas, using a root-based and distance-based method to manage data efficiently, and generates audio data based on this information.

Benefits of technology

Improves the efficiency of information acquisition in virtual spaces, enabling effective sound generation and management even in large-scale environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007758953000001
    Figure 0007758953000001
  • Figure 0007758953000002
    Figure 0007758953000002
  • Figure 0007758953000003
    Figure 0007758953000003
Patent Text Reader

Abstract

To enhance the efficiency of information acquisition in a virtual space.SOLUTION: A virtual space creation program makes a computer function as a reading unit which reads, from a first storage device, volume element data indicating a predetermined area in a virtual space, and stores, in a second storage device, the read volume element data. The volume element data includes first information for identifying a type of the predetermined area, and second information for identifying characteristic of elements which constitute the predetermined area.SELECTED DRAWING: Figure 5
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to a virtual space generation program and a virtual space generation device. [Background technology]

[0002] A technology for processing sound in a virtual space is disclosed in Patent Document 1. In the example of Patent Document 1, acoustic space information, which is information relating to sounds that can occur in a virtual acoustic space, is stored. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2014-222306 Summary of the Invention [Problem to be solved by the invention]

[0004] When a virtual space becomes large-scale, a means for efficiently acquiring information about the virtual space required for sound effects and the like becomes necessary.

[0005] An object of the present disclosure is to improve the efficiency of information acquisition in virtual space. [Means for solving the problem]

[0006] A first aspect provides a computer comprising: functioning as a reading unit that reads volume element data indicating a predetermined area in the virtual space from the first storage device and stores the read volume element data in the second storage device; The volume element data includes: First information for identifying the type of the predetermined area; second information for identifying characteristics of elements constituting the predetermined area; Contains It is a virtual space generation program.

[0007] In the first aspect, the first information may be an index of a list that stores information that identifies the type of the predetermined area.

[0008] In the above aspect, the second information may be an index of a list that stores information that identifies characteristics of elements that make up the predetermined area.

[0009] In the above aspect, a plurality of volume element data are associated with the virtual space, the reading unit reads a portion of the plurality of volume element data from the first storage device, The list may be provided corresponding to a unit of reading by the reading unit.

[0010] In the above aspect, the volume element data may include third information.

[0011] In the above aspect, the computer is functioning as a character control unit that controls the movement of a character within the virtual space; The reading unit may read the volume element data from the first storage device for a path along which the character can move from a current position of the character in the virtual space.

[0012] In the above aspect, the reading unit may limit the range of volume element data to be read to the volume element data within a range that the character can reach with a movement equal to or less than a first threshold.

[0013] In the above aspect, the reading unit may read from the first storage device the volume element data that, as a result of the character moving, is now included in a range that the character can reach with a movement of less than or equal to a first threshold value from the position of the character after the movement.

[0014] In the above aspect, the reading unit may be configured to unload from the second storage device the volume element data whose distance from the position of the character after the movement becomes greater than a second threshold as a result of the character moving.

[0015] In the above aspect, the device functions as a character control unit that controls the movement of a character in the virtual space, The reading unit may be configured to read the volume element data from the first storage device for a predetermined range around the character when a movable area of ​​a size equal to or larger than a third threshold extends around the current position of the character in the virtual space.

[0016] In the above aspect, The reading unit may read from the first storage device the volume element data that has become included in a new movable area that is equal to or larger than the third threshold as a result of the character moving.

[0017] In the above aspect, the reading unit may unload from the second storage device the volume element data whose distance from the position of the character after the movement becomes greater than a fourth threshold as a result of the character moving.

[0018] In the above aspect, the computer is caused to function as a playback unit that generates audio data, The reproduction unit may generate the audio data using at least one of the first information and the second information.

[0019] In addition, a second aspect is a virtual space generation program according to the above aspect, a control unit that executes the virtual space generation program; It is a virtual space generation device equipped with the above. [Effects of the Invention]

[0020] According to the present disclosure, it is possible to improve the efficiency of information acquisition in virtual space. [Brief explanation of the drawings]

[0021] [Figure 1] FIG. 2 is a block diagram showing a configuration of a data generating device. [Figure 2] FIG. 1 is a diagram illustrating an example of a building arranged in a virtual space. [Figure 3] FIG. 1 is a diagram illustrating an example in which the interior of a building is divided into subspaces. [Figure 4] FIG. 2 is a diagram illustrating an example of a route. [Figure 5] FIG. 2 is a block diagram showing the configuration of the game device. [Figure 6] FIG. 1 is a diagram illustrating the concept of the root-based method. [Figure 7] FIG. 10 is a diagram illustrating the concept of unloading voxel data. [Figure 8] FIG. 1 is a diagram illustrating the concept of the distance reference method. DETAILED DESCRIPTION OF THE INVENTION

[0022] [Embodiment] In this disclosure, an example will be described in which a virtual space generation program is implemented as a game program. Some of the data used in the virtual space generation program is generated by a data generation device (described later).

[0023] In the present disclosure, an example will be described in which the virtual space generation device is realized as a game device 5. A game program (virtual space generation program) is executed in the game device 5 (virtual space generation device).

[0024] "overview" In a game based on this game program, the player's characters are operated by the user to move around in a virtual space, and the player characters are organized into groups to perform various actions. In the following description, the virtual space is three-dimensional.

[0025] In the virtual space, there are objects that move without user operation. Examples of objects that move without user operation include so-called non-player characters. In the following, player characters and non-player characters may be simply referred to as characters.

[0026] In addition to player characters and non-player characters, various objects are placed in the virtual space. Some of the objects represent the terrain within the virtual space. Examples of objects representing the terrain include mountains, trees, rocks, and caves.

[0027] The virtual space also contains towns. The towns contain buildings. The buildings have the same structure as real buildings, including rooms, windows, and doors. Some buildings contain multiple rooms connected by corridors. Various objects (room furniture) may be placed in the rooms.

[0028] In this game, various game sounds are played. In this specification, game sounds refer to sounds that are played from the game device's speakers (described below) during the game. Examples of game sounds include sounds emitted by various objects (such as an object representing a telephone) placed in the virtual space and people speaking.

[0029] Other examples of game sounds include environmental sounds such as the sound of machinery operating, the sound of wind blowing from the entrance to the exit of a cave, the sounds of the hustle and bustle of a town (such as the voices of passersby and the sounds of cars passing nearby), and the sound of wind blowing through a forest or grassland.

[0030] <<Data generation device 10>> The data generation device 10 is a device that creates in advance data necessary for generating a virtual space. The data generation device 10 is a tool for building services that use virtual spaces.

[0031] The data generating device 10 is used, for example, as a development tool for a game program. The data generated by the data generating device 10 is used in a virtual space generating device (for example, a game device).

[0032] The data generating device 10 can be configured, for example, by installing predetermined software on a personal computer. A data generating program is installed in the data generating device 10.

[0033] <Hardware configuration> Fig. 1 is a block diagram showing the configuration of a data generating device 10. As shown in Fig. 1, a display 91 and a keyboard 93 are connected to the data generating device 10.

[0034] The data generating device 10 has a network interface 81, a graphics processing unit 82, an operation unit 84, a storage unit 85, and a control unit 86. The graphics processing unit 82, the operation unit 84, and the storage unit 85 are electrically connected to the control unit 86 via a bus 87.

[0035] The network interface 81 is communicably connected to the communication network in order to transmit and receive various data to and from, for example, other game development devices and server devices (neither of which are shown).

[0036] The graphics processing unit 82 is connected to a display 91 (for example, a liquid crystal display). The graphics processing unit 82 displays various images on the display 91 in accordance with image information output from the control unit 86.

[0037] The operation unit 84 is connected to a keyboard 93. An operation signal is input to the operation unit 84 in response to an operation of the keyboard 93 by a user (for example, a game developer). By operating the keyboard 93, the user can execute various programs stored in the storage unit 85. By operating the keyboard 93, the user can input various pieces of information.

[0038] The storage unit 85 is configured with an HDD, an SSD, a RAM, a ROM, etc. The storage unit 85 stores various programs and the like.

[0039] The control unit 86 controls the data generating device 10. The control unit 86 includes a CPU (microcomputer) and a semiconductor memory (not shown). The semiconductor memory stores programs for operating the CPU. For example, the semiconductor memory stores a data generating program.

[0040] <Functional Configuration of the Control Unit in the Data Generator 10> The control unit 86 of the data generating device 10 functions as a mesh generating unit 861, a voxel generating unit 862, a space dividing unit 863, an embedded information creating unit 864, a route information creating unit 865, and a data output unit 866 by its CPU executing a data generating program.

[0041] -Mesh generation part 861- A mesh is an object in a virtual space that has been divided (discretized) into elements with simple shapes (for example, elements formed by polygons such as triangles). When developing game programs, mesh data is often prepared for objects in the virtual space (such as buildings and caves). For example, in a game program, mesh data for drawing objects (hereafter referred to as drawing mesh) is prepared.

[0042] The mesh generation unit 861 uses existing mesh data (for example, data of a drawing mesh) to generate mesh data (hereinafter referred to as voxel mesh data) for associating voxels (described later) with virtual space. The voxel mesh data defines a target object with fewer polygons than the drawing mesh.

[0043] -Voxel Generation Unit 862- The voxel generation unit 862 associates voxels with objects represented by the voxel mesh data. A voxel is an element (volume element data) that has a volume in virtual space. All voxels associated with an object have the same shape. Hereinafter, associating a voxel with a position (or object) in virtual space may be expressed as "placing a voxel in virtual space."

[0044] -Space division part 863- The space dividing unit 863 divides the virtual space into predetermined small spaces (subspaces) by grouping the voxels arranged in the virtual space. Figure 2 is a diagram showing an example of a building arranged in the virtual space. Figure 2 is a diagram looking down on the inside of the building from the ceiling side.

[0045] As shown in Figure 2, building B has subspaces such as room R and corridor C. In Figure 2, the thick lines indicate the surfaces of the building walls (hereafter referred to as walls W). In Figure 2, the voxels Vx located on the walls W and the subspaces are represented by rectangles.

[0046] The space dividing unit 863 divides the interior of the building B into partial spaces (room R, corridor C, etc.) in the following procedure.

[0047] (1) A vector V is created starting from the center point of a voxel Vx corresponding to a wall W and pointing toward the interior of the room R. Note that the starting point is not limited to the center point of the voxel Vx. The starting point may be, for example, a point corresponding to the surface of a wall or the like.

[0048] (2) The end point of vector V is chosen so as to maximize the sum of the distances between the end point and other surrounding walls, the distance between the end point and the floor, and the distance between the end point and the ceiling.

[0049] (3) Create a plurality of such vectors V. The number of vectors V to be created may be set appropriately by, for example, the developer.

[0050] (4) For the created vector V, create a set of vectors V whose end points are close to each other. The dashed ellipse in Figure 2 encloses the end points of the vectors V that make up the set. Note that the developer can select, as appropriate, the distance that is considered "close."

[0051] (5) The convex polygon connecting the starting points of the vectors V that make up the set of vectors V is defined as the desired region (one divided subspace). The voxels that overlap the desired region (subspace) form one group. Figure 3 shows an example of the division of building B into subspaces. In the example of Figure 3, building B is divided into five subspaces (spaces S1 to S5).

[0052] -Embedded Information Creation Unit 864- The embedded information creation unit 864 creates information such as an attribute list and a material list.

[0053] An attribute list can store multiple pieces of information (elements), and information can be read by specifying an index. The elements of an attribute list are information (hereinafter referred to as first information) that specifies the type of space (a specific area in virtual space) included in the target range of the list.

[0054] For example, assume that space S1 (see FIG. 3) is a room in a building. The embedded information creation unit 864 stores information such as {room} as the type of space in the attribute list for space S1. Other examples of space types include {corridor}, {cave}, and {plain}. Depending on the configuration of the subspace, multiple types of spaces may be stored in the list. The attribute list of this embodiment is configured so that an index can be expressed in 3 bits.

[0055] The material list can also store multiple pieces of information (elements), and information can be read by specifying an index. Elements that make up a space (such as wall W) have "material" set as one of their properties. The elements of the material list are information that specifies the material set for the elements that make up the space (hereinafter referred to as "second information").

[0056] For example, suppose space S1 is a room in a building. The room has wooden floors and ceilings, concrete walls, and glass windows. The embedded information creation unit 864 stores elements such as {wood}, {concrete}, and {glass} in the material list for space S1. The material list of this embodiment is configured so that indexes can be expressed in 5 bits.

[0057] These lists are created for each subspace. A "subspace" is a subspace divided by the space dividing section 863. For example, each of the spaces S1 to S5 in Fig. 3 is an example of a "subspace".

[0058] The embedded information creation unit 864 embeds the first information and the second information in each voxel arranged in the subspace. Specifically, the embedded information creation unit 864 embeds an index of the attribute list in the voxel as the first information, and an index of the material list in the voxel as the second information.

[0059] For example, for a voxel placed on {floor} whose material is {wood}, the embedded information creation unit 864 embeds an index corresponding to {floor} in the attribute list as the first information, and embeds an index corresponding to {wood} in the material list as the second information.

[0060] The attribute list index and the material list index can be embedded in the voxel as separate data, or packed into a single block of data and embedded in the voxel. When these indexes are packed into a single block of data, they can be packed into a single unit of data (byte, word, etc.) in the computer (CPU).

[0061] In this embodiment, the attribute list index can be represented by 3 bits, and the material list index can be represented by 5 bits. In other words, the attribute list index and the material list index can be combined into one byte. The embedding information creation unit 864 combines the attribute list index and the material list index into one byte and embeds them in the voxel data.

[0062] The embedded information creating unit 864 may embed information (third information) different from the first information and second information into a voxel. Examples of the third information include the distance from the center of gravity of the voxel to a surrounding object (e.g., a wall), and the density of objects (e.g., grass and trees) arranged around the voxel.

[0063] -Route Information Creation Department 865- Predetermined objects such as characters can move within the virtual space by user operation or computer control. The route information creation unit 865 creates a database of information such as routes along which objects can move within the virtual space.

[0064] One route (path) can be defined as a set of subspaces divided by the space dividing unit 863. Figure 4 is a diagram for explaining an example of a route. The area surrounded by a dashed line in Figure 4 is a subspace.

[0065] In this specification, a partial space that is connected to only one other partial space among the partial spaces that make up a route is called an “edge.” In the virtual space VS shown in Figure 4, the partial space R1 is an “edge.”

[0066] Furthermore, among the subspaces that make up the root, a subspace that is connected to multiple subspaces is called a "node." In the example of Figure 4, subspaces R2, R3, R4, R5, R6, R7, etc. are "nodes." In the virtual space VS, subspaces can be connected in various ways, such as "end to end," "end to node," "node to node," and "node to end."

[0067] The route information creation unit 865 extracts a connection of subspaces (a set of voxels) that do not branch off along the way from within the virtual space as a single route. In the example of Fig. 4, in subspace R8, the route branches off into multiple subspaces (R9, R10). In the example of Fig. 4, the subspaces from subspace R1 to subspace R7 form a single route.

[0068] The route information creation unit 865 creates a database of each route extracted as one route. Hereinafter, this database will be referred to as a route database. The route information creation unit 865 creates a route database that stores the distance values ​​between the center of gravity of each subspace that makes up the route and the opening in that subspace (the part that connects to other subspaces) so that the distance can be obtained.

[0069] The data of the voxels that form the root may be managed as tree-structured data based on their positions in the virtual space, using, for example, a Bounding Volume Hierarchy (hereinafter abbreviated as BVH).

[0070] In this embodiment, for routes registered in the route database, the voxels that make up the route are managed using BVH. In other words, the control unit 56 can search for the voxels that make up the route using BVH. In this embodiment, the route information creation unit 865 creates the BVH.

[0071] -Data Output Unit 866- The data output unit 866 outputs information on the voxels arranged by the voxel generation unit 862, the attribute list, the material list, and the route database (including BVH) to a predetermined recording medium as data in a format that can be used by other programs (hereinafter referred to as distribution data). The recording medium to which the distribution data is output is, for example, a storage device of a server (not shown) connected to the data generation device 10.

[0072] <Example of Operation of Data Generating Device 10> The operation of the data generating device 10 will be described using the development of a game program as an example. In the development of this game program, mesh data is prepared for objects (such as buildings and caves) in the virtual space. This mesh is a drawing mesh for drawing the object.

[0073] In the data generating device 10, the mesh generating unit 861 reads data of a drawing mesh in response to an operation by a user (here, a game program developer). The mesh generating unit 861 uses the data of the drawing mesh to generate mesh data for voxels. The voxel generating unit 862 associates voxels with objects indicated by the mesh data for voxels.

[0074] Next, in the data generating device 10, the space dividing unit 863 divides the voxels arranged in the virtual space into groups, and divides the virtual space into predetermined spaces (subspaces) (see FIG. 2).

[0075] The embedded information creation unit 864 creates an attribute list and a material list. Furthermore, the embedded information creation unit 864 embeds the first information and the second information into voxels. The embedded information creation unit 864 may also embed third information into voxels.

[0076] The route information creation unit 865 extracts a connection of partial spaces that does not branch off midway from within the virtual space as one route, and builds a route database based on the extracted route.

[0077] The distribution data is created through the above operations. The data output unit 866 outputs the distribution data to a predetermined recording medium.

[0078] "Game Device 5" <Hardware configuration> The game device 5 executes a predetermined game based on user operations. Fig. 5 is a block diagram showing the configuration of the game device 5. The game device 5 has a display 61, a speaker 62, and a controller 63 either externally connected or built-in.

[0079] The game device 5 may be a commercially available device such as a personal computer, PlayStation (registered trademark), XBox (registered trademark), PlayStation Vita (registered trademark), or Nintendo Switch (registered trademark).

[0080] In the game device 5, for example, a game progresses based on the installed game program and game data. Note that the game devices 5 can also communicate data with each other using a communication network (not shown) or a short-range wireless communication device (not shown).

[0081] The game device 5 has a network interface 51, a graphics processing unit 52, an audio processing unit 53, an operation unit 54, a storage unit 55, and a control unit 56. The network interface 51, the graphics processing unit 52, the audio processing unit 53, the operation unit 54, and the storage unit 55 are electrically connected to the control unit 56 via a bus 59.

[0082] The network interface 51 is communicably connected to the communication network in order to transmit and receive various data to and from, for example, the game device 5 and an external server device (not shown).

[0083] The graphics processing unit 52 renders game images including the player character and various objects related to the game space in a moving image format in accordance with game image information output from the control unit 56. The graphics processing unit 52 is connected to a display 61 (e.g., a liquid crystal display). The game images rendered in a moving image format are displayed on the display 61 as a game screen.

[0084] The audio processing unit 53 is connected to the speaker 62. The audio processing unit 53 plays digital game sounds in accordance with instructions from the control unit 56. Specifically, the audio processing unit 53 converts the audio data output by the control unit 56 (more precisely, a playback unit 564, described later) into an analog signal and outputs it to the speaker 62.

[0085] The audio processing unit 53 is configured to be capable of multi-channel audio output in order to reproduce three-dimensional sound. Accordingly, a plurality of speakers 62 are connected to the game device 5. These speakers 62 are arranged on the left and right, front and rear, above and below the listener (e.g., the game player) in order to reproduce three-dimensional sound.

[0086] The operation unit 54 is connected to the controller 63. The operation unit 54 transmits and receives data related to operation inputs to and from the controller 63. A game player operates various controls such as buttons on the controller 63 to input operation signals to the game device 5.

[0087] The storage unit 55 (first storage device) is configured with an HDD, SSD, RAM, ROM, etc. The storage unit 55 stores game data, various programs including parts of the game program, etc. An example of game data is distribution data created by the data generation device 10.

[0088] The control unit 56 controls the operation of the game device 5. The control unit 56 includes a CPU (microcomputer) and a semiconductor memory 56a (an example of a second storage device). The semiconductor memory 56a stores programs and data for operating the CPU.

[0089] <Functional Configuration of Control Unit 56> The control unit 56 functions as a character control unit 561, a reading method determination unit 563, a reading unit 562, and a playback unit 564 by executing a game program (virtual space generation program).

[0090] This game program uses distribution data created by the data generation device 10. The distribution data is stored in the storage unit 55. The distribution data is loaded from the storage unit 55 to the semiconductor memory 56a as needed.

[0091] -Character control unit 561- The character control unit 561 moves the player character PC in the virtual space in response to user operations. The character control unit 561 also moves non-player characters and predetermined objects (e.g., vehicles) in the virtual space. The character control unit 561 controls the movements of the non-player characters and predetermined objects using, for example, AI (artificial intelligence). Hereinafter, characters that can be moved in the virtual space by the character control unit 561 will be collectively referred to as "moving characters."

[0092] -Reading unit 562- The reading unit 562 reads the attribute list, material list, route database, and BVH from the storage unit 55. The reading unit 562 stores the read information in the semiconductor memory 56a.

[0093] The reading unit 562 reads voxel data from the storage unit 55 as needed and stores it in the semiconductor memory 56a. The reading unit 562 supports the "root-based method" and the "distance-based method" as methods for loading voxel data into the semiconductor memory 56a (both of which will be described later). When reading voxel data, the reading unit 562 requests the reading method determination unit 563 to determine the loading method.

[0094] Here, the "root-based method" is a method of loading voxel data into the semiconductor memory 56a based on root information (information created by the root information creating unit 865). Figure 6 is a diagram for explaining the concept of the root-based method.

[0095] In the "route-based method," the reading unit 562 searches the route database and obtains the route on which the moving character currently exists (hereinafter referred to as the current route). In the example of FIG. 6, the player character PC exists in the subspace R3. The current route is a route formed by the subspaces R1, R2, R3, R4, R5, R6, and R7.

[0096] From the route database, the distance between the center of gravity and the opening of each subspace that makes up the current route can be obtained. By using this distance value, it is possible to identify subspaces within the current route that the moving character can reach by moving less than a predetermined value (called the first threshold). The first threshold may be set arbitrarily by the developer.

[0097] For example, the first threshold may be changed depending on the type of moving character. Specifically, the first threshold for a certain moving character may be set to be higher than the first threshold for a moving character with a slower moving speed.

[0098] Since the amount of data that can be loaded at one time differs depending on the hardware that runs the program, the first threshold may be changed according to the characteristics of the hardware. For example, the first threshold may be set to a large value to load a large amount of data on a high-spec personal computer, and set to a small value to load a small amount of data on a lower-spec terminal.

[0099] In the "route reference method," the reading unit 562 identifies, from the route database, voxel data that is located in a subspace within the current route that the moving character can reach by moving at or below the first threshold. The reading unit 562 reads voxel data corresponding to the identified route from the storage unit 55.

[0100] 6, it is assumed that the player character PC can reach the subspaces on the route from subspace R1 to subspace R3 and the subspaces on the route from subspace R3 to subspace R5 with a movement distance equal to or less than the first threshold. In this case, the reading unit 562 reads voxel data relating to the subspaces R1, R2, R3, R4, and R5 from the storage unit 55. The reading unit 562 loads the read voxel data into the semiconductor memory 56a.

[0101] The reading unit 562 unloads the voxel data loaded into the semiconductor memory 56a as needed. For example, the reading unit 562 determines whether or not unloading is necessary using the movement of a moving character as a trigger.

[0102] Figure 7 is a diagram illustrating the concept of unloading voxel data according to the root-based method. For example, suppose that voxel data is loaded using the root-based method and a moving character moves. In the example of Figure 7, the player character PC moves from subspace R3 to subspace R4.

[0103] The reading unit 562 searches for voxels (voxels to be unloaded) whose distance from the moving character after the movement has become greater than the second threshold as a result of the movement of the moving character. In this embodiment, the second threshold is the same value as the first threshold. Of course, the second threshold and the first threshold do not necessarily have to be the same value. The second threshold may be determined arbitrarily by the developer.

[0104] When a voxel to be unloaded is found, the reading unit 562 unloads the data of the voxel found by the search from the semiconductor memory 56a. In the example of Figure 7, it is assumed that the distance of the subspace R1 from the player character PC is greater than the second threshold. In this case, the reading unit 562 unloads the voxel data related to the subspace R1 from the semiconductor memory 56a.

[0105] Furthermore, the reading unit 562 reads voxel data from the storage unit 55 for a path (subspace) that, as a result of the movement of the moving character, is now included in a range that the moving character can reach by moving less than or equal to the first threshold from the position of the moving character after the movement. Furthermore, the reading unit 562 loads the read voxel data into the semiconductor memory 56a.

[0106] 7, it is assumed that as a result of the movement of the player character PC, the distance from the subspace R4 to the subspace R6 becomes equal to or less than the first threshold value. In this case, the reading unit 562 reads the voxel data relating to the subspace R6 from the storage unit 55 and loads it into the semiconductor memory 56a.

[0107] The "distance-based method" is a method of loading data of voxels that exist within a predetermined range around a moving character. Figure 8 is a diagram illustrating the concept of the distance-based method. Figure 8 shows a portion of the virtual space VS. In Figure 8, the thick straight lines represent subspaces divided by the space dividing unit 863. In Figure 8, the lined squares represent voxels Vx.

[0108] The reading unit 562 loads voxel data contained in a region (hereinafter referred to as the reading region) defined by a cube of a predetermined size, including the moving character. In this example, the reading region is a cube with one side measuring (2 × the third threshold). The third threshold may be arbitrarily determined by the developer.

[0109] Once the position (coordinates) of the moving character in the virtual space can be identified, the voxels included in the read area can be identified. The reading unit 562 reads the data of the identified voxels from the storage unit 55.

[0110] 8, the player character PC is present in the subspace S6. The reading unit 562 identifies a reading area in the subspace S6. The reading unit 562 reads voxel data included in the identified reading area from the storage unit 55 and stores the data in the semiconductor memory 56a.

[0111] The reading unit 562 also unloads the voxel data loaded into the semiconductor memory 56a by the distance-based method as needed. When the voxel data is loaded by the distance-based method, it is assumed that the moving character moves. The reading unit 562 searches for voxels whose distance from the moving character after the movement is greater than the fourth threshold value as a result of the movement of the moving character.

[0112] If a matching voxel is found in the search, the reading unit 562 unloads the data of the voxel found in the search from the semiconductor memory 56a. In this embodiment, the fourth threshold value is the same as the third threshold value. Of course, the fourth threshold value and the third threshold value do not necessarily have to be the same value.

[0113] As the moving character moves, the reading area also changes. Therefore, the reading unit 562 reads the voxel data that is now included in the reading area from the storage unit 55 and loads it into the semiconductor memory 56a.

[0114] -Reading method determination unit 563- The reading method determination unit 563 determines which loading method to use to load the voxel data. In this embodiment, the reading method determination unit 563 determines the loading method based on the current position (coordinates in virtual space) of the moving character.

[0115] First, the reading method determination unit 563 checks which subspace the moving character is in. If the moving character's current position is surrounded by a movable area in the virtual space that is equal to or larger than the third threshold, the reading method determination unit 563 determines the loading method to be the "distance-based method."

[0116] On the other hand, if the size of the movable area is smaller than the third threshold, the reading unit 562 determines the loading method to be the "route-based method." In this embodiment, the "size equal to or larger than the third threshold" means an area larger than a cube with one side measuring (2 × the third threshold). Of course, the "third threshold" is merely an example, and a different value may be used.

[0117] -Playback section 564- The playback unit 564 generates audio data and outputs the generated audio data to the audio processing unit 53.

[0118] The reproduction unit 564 performs sound image localization when generating audio data. In order to perform sound image localization, the reproduction unit 564 sets a virtual sound receiving point (hereinafter referred to as a virtual microphone L) in the virtual space where the sound is heard. In this example, the virtual microphone L is set near the player character. The virtual microphone L moves in accordance with the movement of the player character.

[0119] In this game, acoustic effects are produced so that sounds appear to be coming from a sound source (virtual sound source) located in the virtual space. The playback unit 564 outputs the sound emitted from the virtual sound source (such as an object) to the speaker 62 in an acoustic representation that makes it appear as if the sound was collected by the virtual microphone L. In other words, the virtual microphone L is a virtual listener and a reference point for sound image localization by the audio processing unit 53.

[0120] The reproduction unit 564 reflects sound effects such as volume adjustment and reverberation (reverberation sound) on the audio data. In this embodiment, the reproduction unit 564 determines what sound effect to apply using at least one of the first information and the second information embedded in the voxels.

[0121] When determining the acoustic effect to be reflected in the audio data, the reproduction unit 564 searches for a voxel corresponding to the position of the virtual sound source from among the voxels loaded in the semiconductor memory 56a. The reproduction unit 564 extracts the first information and the second information from the voxel data found by the search.

[0122] The reproduction unit 564 also searches for a voxel corresponding to the position of the virtual microphone L. The reproduction unit 564 also extracts the first information and the second information from the data of the voxel corresponding to the position of the virtual microphone L.

[0123] When searching for a voxel from voxel data loaded by the root-based method, the playback unit 564 searches the BVH. By using the BVH, the playback unit 564 can perform a high-speed voxel search.

[0124] The reproduction unit 564 obtains the attribute list and material list corresponding to the voxels found in the search, which have been loaded into the semiconductor memory 56a by the reading unit 562.

[0125] The reproduction unit 564 uses the first information to obtain information on the type of space from the attribute list, and uses the second information to obtain information on materials from the material list.

[0126] The reproduction unit 564 determines the degree of reverberation from the type of space, for example. The reproduction unit 564 determines the tone from the material, for example. For example, when creating audio data of footsteps, the reproduction unit 564 changes the type of footsteps depending on the material (wood, earth, gravel, etc.) specified in the second information.

[0127] <Example of operation> When the game starts, the character control unit 561 moves the player character PC in the virtual space in response to the user's (here, the game player's) operation of the controller 63. The character control unit 561 also moves objects such as non-player characters in the virtual space as necessary.

[0128] The reading unit 562 requests the reading method determination unit 563 to determine the loading method. Once the loading method is determined, the reading unit 562 loads the voxel data from the storage unit 55 into the semiconductor memory 56a using that method.

[0129] The reproduction unit 564 identifies voxel data corresponding to the position of a moving character (for example, a player character PC) and voxel data corresponding to the position of a virtual sound source from the voxel data loaded into the semiconductor memory 56a.

[0130] The reproduction unit 564 extracts the first information and the second information from the identified voxel data. The reproduction unit 564 generates audio data using at least one of the extracted first information and second information. The reproduction unit 564 outputs the generated audio data to the audio processing unit 53. As a result, audio is output from the speaker 62.

[0131] To summarize the above, the present embodiment is a game program (virtual space generation program) that causes a computer to function as a reading unit 562 that reads volume element data (voxel data) indicating a specified area in a virtual space VS from a memory unit 55 (an example of a first storage device) and stores the read volume element data in a semiconductor memory 56a (a second storage device), and the volume element data includes first information for identifying the type of the specified area and second information for identifying the characteristics of the elements that make up the specified area.

[0132] Effect of this embodiment As described above, in this embodiment, the first information and the second information are embedded in the voxels. In other words, in this embodiment, information acquisition in the virtual space can be performed in units of voxels. Therefore, according to this embodiment, even if the virtual space becomes large-scale, the efficiency of information acquisition in the virtual space can be improved.

[0133] [Other embodiments] The use of virtual space is not limited to games. The administrator of the virtual space (which can be said to be the user of the virtual space generation program) can provide various services (such as the so-called metaverse) through the virtual space.

[0134] The distribution data may be stored in a server (not shown) connected to the game device 5, instead of being stored in the storage unit 55 of the game device 5. In this case, the reading unit 562 loads the voxel data from the server into the semiconductor memory 56a using the root-based method and the distance-based method.

[0135] The word lengths of the indexes in the attribute list and material list are examples. The first information and the second information do not necessarily have to be combined into one piece (for example, one byte).

[0136] The algorithm for searching for voxels on a line may use Bresenham, which makes it possible to easily obtain voxel data located on a line connecting, for example, a sound source and a virtual listener (virtual microphone L).

[0137] The game program may be implemented as a game program for a so-called online game. When the game program is for an online game, the processing that was previously performed by the game device 5 may be performed on the server side instead, or the processing may be shared between the server side and the client (game device 5) side.

[0138] The virtual space is not limited to three dimensions. The virtual space may be a two-dimensional space. Even if the virtual space is a three-dimensional space, it may be processed in two dimensions to simplify the processing. For example, it is possible to perform processing as if there is no height. In this case, the first information and the second information may be embedded in cells (grids), and the voxels may be searched using the grids.

[0139] In the "route-based method," voxels may be loaded across multiple routes. For example, if a route branches, as in the case of subspaces R9 and R10 in Figure 4, voxels may be loaded for each branched route. However, even in this case, the voxels to be loaded must be reachable by a moving character with movement equal to or less than the first threshold.

[0140] The effects of the present embodiment can be achieved even when these other embodiments are adopted. Furthermore, this embodiment can be combined with other embodiments, and other embodiments can be combined with each other as appropriate. [Explanation of symbols]

[0141] 5. Game device (virtual space generation device) 55 Storage unit (first storage device) 56 Control Unit (Computer) 56a Semiconductor memory (secondary storage device) 85 Memory section 86 Control Unit 561 Character Control Unit 562 Reading unit 564 Playback Department PC player character (character) VS Virtual Space

Claims

1. Computer, a reading unit that reads volume element data indicating a predetermined area in the virtual space from the first storage device and stores the read volume element data in the second storage device; The volume element data includes: First information for identifying the type of the predetermined area; second information for identifying characteristics of elements constituting the predetermined area; Contains, The first information is an index of a list that stores information that identifies the type of the predetermined area. Virtual space generation program.

2. A computer, a reading unit that reads volume element data indicating a predetermined area in the virtual space from the first storage device and stores the read volume element data in the second storage device; The volume element data includes: First information for identifying the type of the predetermined area; second information for identifying characteristics of elements constituting the predetermined area; Contains, The second information is an index of a list that stores information that identifies the characteristics of the elements that make up the predetermined area. Virtual space generation program.

3. 2. The virtual space generation program according to claim 1, a plurality of volume element data are associated with the virtual space; the reading unit reads a portion of each of the plurality of volume element data from the first storage device; The list is provided corresponding to the unit of reading by the reading unit. Virtual space generation program.

4. 2. The virtual space generation program according to claim 1, The volume element data includes third information. Virtual space generation program.

5. 2. The virtual space generation program according to claim 1, The computer functioning as a character control unit that controls the movement of a character within the virtual space; The reading unit reads the volume element data from the first storage device for a path that the character can move from a current position of the character in the virtual space. Virtual space generation program.

6. 6. The virtual space generation program according to claim 5, The reading unit limits the range of volume element data to be read to the volume element data within a range that the character can reach with a movement equal to or less than a first threshold. Virtual space generation program.

7. 7. The virtual space generating program according to claim 6, The reading unit reads from the first storage device the volume element data that, as a result of the character moving, is now included in a range that the character can reach with a movement of a first threshold or less from the position of the character after the movement. Virtual space generation program.

8. The virtual space generation program according to any one of claims 5 to 7, The reading unit unloads from the second storage device the volume element data whose distance from the position of the character after the movement becomes greater than a second threshold as a result of the character moving. Virtual space generation program.

9. 6. The virtual space generation program according to claim 1, The computer functioning as a character control unit that controls the movement of a character within the virtual space; The reading unit reads the volume element data for a predetermined range around the character from the first storage device when a movable area having a width equal to or larger than a third threshold is spread around the current position of the character in the virtual space. Virtual space generation program.

10. 10. The virtual space generation program according to claim 9, The reading unit reads from the first storage device the volume element data that has been newly included in a movable area having a size equal to or larger than the third threshold as a result of the character moving. Virtual space generation program.

11. 10. The virtual space generation program according to claim 9, The reading unit unloads from the second storage device the volume element data whose distance from the position of the character after the movement becomes greater than a fourth threshold as a result of the character moving. Virtual space generation program.

12. In claim 1, causing the computer to function as a playback unit that generates audio data; The reproduction unit generates the audio data using at least one of the first information and the second information. Virtual space generation program.

13. a storage unit that stores the virtual space generation program of claim 1; a control unit that executes the virtual space generation program; A virtual space generating device equipped with the above.

Citation Information

Patent Citations

  • Collision avoidance system for object representation on basis of voxel

    JP1996241437A

  • Method and device for modeling three-dimensional shape

    JP1997180003A

  • Game apparatus, field boundary display method, program, and recording medium

    JP2007222310A

  • Video game processing device, and video game processing program

    JP2014222306A

  • Systems, methods, and devices for 3D voxel-based modeling

    JP2018514885A