Game program, game control method and information processing device

The game program optimizes occlusion checks for multiple objects by calculating occlusion levels and update frequencies, reducing rendering load and ensuring high-quality game images.

JP7795435B2Active Publication Date: 2026-01-07KOEI TECMO GAMES CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2022132459
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-08-23
Publication Date
2026-01-07
Estimated Expiration
2042-08-23

AI Technical Summary

Technical Problem

Existing game rendering technologies face challenges in efficiently performing occlusion checks for multiple objects, leading to increased rendering processing load.

Method used

A game program that treats multiple objects as a single object, calculates occlusion levels based on proximity and angle, determines update frequencies, and controls rendering processes accordingly to reduce load.

Benefits of technology

Reduces rendering processing load while maintaining high-quality game images by optimizing occlusion checks for multiple objects.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007795435000001
    Figure 0007795435000001
  • Figure 0007795435000002
    Figure 0007795435000002
  • Figure 0007795435000003
    Figure 0007795435000003
Patent Text Reader

Abstract

To facilitate occlusion test on a plurality of objects.SOLUTION: A game program causes a computer to execute processing to draw a game image captured by a virtual camera, the processing including: (a) when there are multiple objects that the virtual camera is imaging, calculating an occlusion level of one object, which is each of the above multiple objects, in accordance with the presence of another object located within a predetermined angle with respect to a direction from the one object toward the virtual camera, the other object being located within a predetermined distance from the one object; (b) determining update frequency of each of the objects, based on the occlusion levels of the objects; and (c) controlling update of drawing processing of each of the objects, based on the update frequencies of the objects.SELECTED DRAWING: Figure 7
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to a game program, a game control method, and an information processing device. [Background technology]

[0002] Patent document 1 describes measuring the surface area of ​​objects exposed in the field of view of the player character, and preferentially loading objects whose measured surface area is least obscured by the surface area of ​​other objects. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Patent No. 4503073 Summary of the Invention [Problem to be solved by the invention]

[0004] Patent Document 1 discloses a number of algorithms capable of checking whether an object exposed in the field of view of a player character is occluded by another object. For example, Patent Document 1 describes that various algorithms can be selected for checking the occlusion, such as Occlusion Horizon, ShaftOcclusionCulling, HardwareOcclusionQuery, Hierarchical Z-Buffering, and TheHOM Algorithm.

[0005] The present disclosure proposes a technique that can easily perform occlusion checks for multiple objects and reduce the load of rendering processing. [Means for solving the problem]

[0006] In one embodiment, a game program is provided that causes a computer to execute a rendering process for a game image being captured by a virtual camera in a virtual space, the game program executing the following processes: (a) when there are multiple objects being captured by the virtual camera, each of the multiple objects is treated as a single object, and the program calculates the occlusion level of the single object depending on whether there are other objects within a predetermined distance from the single object and within a predetermined angle in the direction from the single object toward the virtual camera; (b) determines the update frequency for each of the multiple objects based on the occlusion level for each of the multiple objects; and (c) controls the updating of the rendering process for each of the multiple objects based on the update frequency for each of the multiple objects. [Effects of the Invention]

[0007] According to one aspect, the present disclosure can easily perform occlusion checks for multiple objects, thereby reducing the load of rendering processing. [Brief explanation of the drawings]

[0008] [Figure 1] FIG. 1 is a diagram showing an example of the configuration of a game system according to an embodiment. [Figure 2] FIG. 10 is a diagram showing another example of the configuration of the game system according to the embodiment. [Figure 3] FIG. 1 is a diagram showing the hardware configuration of a game machine according to an embodiment. [Figure 4] FIG. 1 is a diagram showing the functional configuration of a game machine according to an embodiment. [Figure 5] 10A and 10B are diagrams for explaining determination of the update frequency of an object in conventional drawing. [Figure 6] 3 is a flowchart showing a game control method according to the first embodiment. [Figure 7] FIG. 4 is a diagram showing an example of calculation of an occlusion level in the game control method according to the first embodiment. [Figure 8] FIG. 4 is a diagram showing an example of calculation of an occlusion level in the game control method according to the first embodiment. [Figure 9] 10 is a flowchart showing a game control method according to a second embodiment. [Figure 10] FIG. 10 is a diagram showing an example of calculation of an occlusion level in the game control method according to the second embodiment. [Figure 11] FIG. 10 is a diagram showing an example of calculation of an occlusion level in the game control method according to the second embodiment. [Figure 12] FIG. 10 is a diagram showing an example of calculation of an occlusion level in the game control method according to the second embodiment. [Figure 13] 10 is a flowchart showing a game control method according to a third embodiment. [Figure 14] FIG. 11 is a diagram for explaining a game control method according to the third embodiment in comparison with a comparative example. DETAILED DESCRIPTION OF THE INVENTION

[0009] Hereinafter, embodiments of the present disclosure will be described with reference to the drawings. In this specification and the drawings, substantially identical components are designated by the same reference numerals, and redundant description may be omitted.

[0010] [Game System] 1 is a diagram showing an example of the configuration of a game system 1 according to an embodiment. The game system 1 includes a game machine 3, which is an example of an information processing device, a game controller 5, and a display device 7. Each of the game controller 5 and the display device 7 is connected to the game machine 3 via wire or wirelessly so as to be able to communicate with each other.

[0011] The game machine 3 is, for example, a stationary game machine, but is not limited to this, and may be, for example, a portable game machine that is integrally provided with an input unit, a display unit, etc.

[0012] Furthermore, the game machine 3 is not limited to a dedicated game machine, but may be, for example, a computer, desktop computer, notebook computer, tablet computer, or other computer that is manufactured, sold, etc., or a portable terminal that also functions as a telephone, such as a smartphone, mobile phone, phablet, etc. These devices are usually used as general-purpose information processing terminal devices, but when a player executes the installed game program, the player can progress through the game, just like a dedicated game machine.

[0013] The game program of this embodiment is installed in the game machine 3. The game program is distributed in a state stored on an optical storage medium such as a CD-ROM or a semiconductor memory such as a USB memory, or is distributed in a form in which it is downloaded from a server device.

[0014] A player uses a game controller 5 to perform various operation inputs. In the example shown in FIG. 1, the game controller 5 has, for example, a cross key 9 and a plurality of buttons 8. Note that the game controller 5 may have, for example, a joystick or a touchpad instead of or in addition to the above. The game controller 5 may also have a microphone, allowing for voice operation. The game controller 5 may also have a gyro sensor, an acceleration sensor, or the like, allowing for operation by the player changing the orientation of the game controller 5.

[0015] Furthermore, the game machine 3 may further communicate with a server device on the network (see FIG. 2). Multiple game machines 3 running the same game program connect to the server device, enabling so-called online games. An online game is, for example, a game in which multiple players can operate the same game program in a cooperative manner. The server device for an online game may receive the positions and operation commands of other players and transmit them to the game machines 3 of the other players. The game machine 3 performs actual game processing, such as drawing each player and reflecting the operation commands.

[0016] 2 is a diagram showing another example of the configuration of the game system 1 according to the embodiment. The game system 1 according to the embodiment provides various game-related services to players via a network N (for example, the Internet, etc.). The game system 1 includes a server device 2 and a terminal device 30. The server device 2 is an example of an information processing device that provides various game-related services to the terminal device 30. The server device 2 may be a personal computer, a workstation, a cloud computer, etc.

[0017] The terminal device 30 is an example of an information processing device used by a player when playing a game. The terminal device 30 may be a game console, a computer, a desktop computer, a notebook computer, a tablet computer, or the like that is manufactured, sold, or the like as a computer, or a mobile terminal that also functions as a telephone, such as a smartphone, a mobile phone, or a phablet.

[0018] The terminal device 30 requests the server device 2 to distribute various information related to the game (such as a game program describing a game control method and game screens). Upon receiving the request for distribution of various information from the terminal device 30, the server device 2 distributes a web page of the game program and game screens to be played on the terminal device 30.

[0019] The terminal device 30 has a web browser function that allows the player to browse a web page that displays a game screen. This allows the terminal device 30 to display a web page such as a game screen distributed from the server device 2. The server device 2 may provide a game such as an online game in which player characters and non-player characters operated by players are divided into allies and enemies and compete against each other.

[0020] The game system 1 may be a so-called P2P (Peer to Peer) system in which a game machine 3 illustrated in FIG. 1 or a terminal device 30 illustrated in FIG. 2 communicates with another game machine 3 or another terminal device 30. In this case, the server device 2 illustrated in FIG. 2 does not need to be provided. The game system 1 may also be a so-called cloud game. Note that the game system 1 illustrated in FIGS. 1 and 2 is an example, and various system configuration examples are possible depending on the application and purpose. The game system 1 of this embodiment will be described below mainly using the configuration illustrated in FIG. 1.

[0021] The game machine 3 can provide all kinds of games, such as fighting games, sports games, racing games, and city-building games. The game machine 3 can also provide games through gacha or the like. However, the games executed by the game system 1 disclosed in this embodiment are 3D or 2D games executed in a virtual space, and fighting games (action games) are preferred. In this embodiment, the game processing is controlled to present a more natural game in the battle between the first character and the second character.

[0022] In this embodiment, the term "object" refers to a general term for objects, including characters, that exist mainly in virtual space (e.g., 3D space). For example, player characters (PCs), non-player characters (hereinafter also referred to as "NPCs"), buildings, and other objects that appear in virtual space are generally objects. Characters include enemy characters and ally characters, and may be player characters controlled by a player or non-player characters automatically controlled by AI or the like.

[0023] [Game console hardware configuration] Next, the hardware configuration of the game machine 3 will be described with reference to FIG. 3. FIG. 3 is a diagram showing the hardware configuration of the game machine 3 according to the embodiment. The game machine 3 has a CPU (Central Processing Unit) 121, a memory 122, a communication device 123, an input device 124, and a display device 125. The CPU 121 controls the game machine 3. The memory 122 is, for example, a storage medium in the game machine 3 that is directly accessible by the CPU 121. The communication device 123 is a communication device such as a network circuit that controls communication with other devices. The input device 124 is an input device that is connected to the game machine 3 like the game controller 5 and does not have to be located inside the game machine 3. The input device 124 may be an input device such as a camera or a touch panel. The display device 125 is an output device such as a display.

[0024] The game machine 3 may be equipped with various microprocessors such as a GPU (Graphics Processing Unit) and a DSP (Digital Signal Processor), and various memories 122 such as a VRAM, RAM, and ROM.

[0025] The game machine 3 has a game management function that stores various game data necessary for playing the game through arithmetic processing in the memory 122 and controls and manages the game processing. The CPU 121 performs arithmetic processing based on a predetermined game program and game data, thereby executing a game control method.

[0026] [Game console functional configuration] Next, the functional configuration of the game machine 3 will be described with reference to Fig. 4. Fig. 4 is a diagram showing the functional configuration of the game machine 3 according to the embodiment. The game machine 3 has a control unit 11, a storage unit 12, and a communication unit 13.

[0027] The control unit 11 exchanges data between the various units and controls the game machine 3. The control unit 11 is realized by the CPU 121 executing a game program stored in the memory 122.

[0028] The storage unit 12 stores a game program that causes the computer to execute a game, various data, and various information. The game program includes a program that causes the computer to execute a rendering process of game images captured by a virtual camera in a virtual space. The storage unit 12 is realized, for example, by the memory 122. The storage unit 12 has a ROM (Read Only Memory), which is a read-only storage area in which the game program is stored, and a RAM (Random Access Memory), which is a rewritable storage area used as a work area for arithmetic processing by the control unit 11. The storage unit 12 is realized, for example, by a non-volatile storage device such as a flash memory or a hard disk. Part or all of the game program may be stored in the RAM.

[0029] Furthermore, the storage unit 12 stores an obstruction level 21 and character information 22. The calculation of the obstruction level 21 will be described later. The character information 22 includes the size of the character, the importance of the character, the movement speed of the character, the motion of the character (whether the character is in an attack motion or is being attacked, etc.), the distance between the character and the player character, the distance between the character and the virtual camera, etc.

[0030] The communication unit 13 has a function for communicating with the terminal device and / or other devices. The communication unit 13 has a function as a receiving unit that receives various data transmitted from the terminal device and / or other devices, and a function as a transmitting unit that transmits various data to the terminal device and / or other devices in response to commands from the control unit 11. The communication unit 13 is realized by, for example, a network interface card (NIC).

[0031] The control unit 11 has a game execution processing unit 14, a calculation unit 15, an update control unit 16, a collision determination unit 17, and a display control unit 18. The game execution processing unit 14 executes a fighting game in a virtual space, for example, in which a player character operated by a player fights against an enemy boss character. However, the game executed by the game execution processing unit 14 may be various games other than fighting games.

[0032] In this specification, an object is a display component displayed in a virtual space, and includes movable objects and fixed objects displayed on the game screen. Movable objects include player characters, non-player characters, horses, weapons, etc. Objects such as buildings and mountains are usually fixed objects, but they may also be movable objects.

[0033] When there are multiple objects photographed by the virtual camera, the calculation unit 15 treats each of the multiple objects as one object and calculates the occlusion level of the one object depending on whether there is another object within a predetermined distance from the one object and within a predetermined angle with respect to the direction from the one object toward the virtual camera.

[0034] When there is another object within a predetermined angle, the calculation unit 15 may calculate the occlusion level of the one object to be higher than the occlusion levels of the other objects, or when there is no other object within the predetermined angle, the calculation unit 15 may set the occlusion level of the one object to the lowest level.

[0035] The calculation unit 15 may calculate the occlusion level of one of the plurality of objects by classifying the object closest to the virtual camera as one object.

[0036] The calculation unit 15 may calculate the occlusion levels of the plurality of objects until the occlusion levels of the plurality of objects in the latest frame (next frame) do not change from the occlusion levels of the plurality of objects in the immediately preceding frame (previous frame). The calculation unit 15 may end the calculation of the occlusion levels when the occlusion levels of the plurality of objects in the latest frame (next frame) do not change from the occlusion levels of the plurality of objects in the immediately preceding frame (previous frame).

[0037] The update control unit 16 determines the update frequency for each of the plurality of objects based on the occlusion level for each of the plurality of objects, and controls updating of the drawing process for each of the plurality of objects based on the update frequency for each of the plurality of objects.

[0038] The update control unit 16 may determine whether or not each of the plurality of objects needs to be updated for each frame according to the update frequency for each of the plurality of objects, and update the drawing process of the object that is determined to need to be updated.

[0039] The collision determination unit 17 determines whether a plurality of objects collide with each other. The collision determination unit 17 will be described in detail in the third embodiment.

[0040] The display control unit 18 draws game scenes such as characters on the game screen in accordance with drawing processing of game images captured by a virtual camera in the virtual space. The display control unit 18 controls updating of the drawing processing for each of the plurality of objects based on the update frequency for each of the plurality of objects. The display control unit 18 displays a virtual space in which a plurality of characters and other objects appear on the display device 125 of the game machine 3. The display control unit 18 may control a web page of the game screen, transmit the web page of the game screen via the communication unit 13 to a terminal device on which the game is played, and display it on the screen of the terminal device.

[0041] [Conventional update frequency determination] A conventional method for determining the update frequency will be described with reference to Fig. 5. Fig. 5 is a diagram for explaining a conventional method for determining the update frequency of an object in drawing.

[0042] When drawing characters and other objects on the game screen, update processing may be thinned out or the display of distant objects may be simplified. In particular, when updating the drawing of the actions of a large number of characters every frame, updating the actions of all characters can slow down the drawing processing. Therefore, to determine the update frequency for each character, an update priority is determined to determine which characters' drawing processing should be thinned out or whose display should be simplified, and most of the methods for this determination use the distance from the virtual camera to the character.

[0043] In this way, conventional methods determine the update priority for each character according to their distance from the virtual camera, and change to lighter updates and thin out update processing for characters with lower update priorities. For example, in Figure 5, character N located in area B is closer to the virtual camera (easier to see), so its update priority is set high. On the other hand, character N located in area A is farther from the virtual camera (harder to see from the virtual camera because it is hidden by the character in front), so its update priority is set low. Note that the circle in the figure indicates a non-player character (NPC), but it may also be a player character.

[0044] In contrast, in this embodiment, occlusion check is performed based on the adjacent or contact status of characters, and visibility (obscurity) from the virtual camera is estimated and used to determine the update frequency. For example, in this embodiment, occlusion check is easily performed for multiple objects to calculate the occlusion level. Then, the update frequency is determined based on the occlusion level, and update processing is thinned out or the display of distant objects is simplified, thereby reducing the load on the rendering process.

[0045] This makes it difficult for the user to see characters that have undergone low-quality update processing or that have been thinned out in update processing. This makes it possible to provide high-quality game images to the user while reducing the load on the rendering processing. Game control methods according to the first to third embodiments will be described below in order.

[0046] First Embodiment First, a game control method according to the first embodiment will be described with reference to Fig. 6 to Fig. 8. Fig. 6 is a flowchart showing the game control method according to the first embodiment. Figs. 7 and 8 are diagrams showing an example of calculation of an occlusion level in the game control method according to the first embodiment.

[0047] [Game Control Method] When the game control method is started, the game machine 3 executes each process of the flowchart shown in Fig. 6. Characters on the screen of the game executed by the game execution processing unit 14 are photographed by the virtual camera 10. Here, an example will be described in which the virtual camera 10 photographs a plurality of characters. The characters may be non-player characters (NPCs) or player characters (PCs).

[0048] First, in step S1, update control unit 16 sets all characters captured by virtual camera 10 as unprocessed characters (characters whose occlusion level update has not been processed). Next, in step S2, calculation unit 15 creates a list of unprocessed characters captured by virtual camera 10 for each frame, sorted in order of proximity to virtual camera 10.

[0049] Next, in step S3, the calculation unit 15 determines whether there is an unprocessed character whose occlusion level has not been updated. If it is determined that there is an unprocessed character, the calculation unit 15 proceeds to step S5. If it is determined that there is no unprocessed character, the calculation unit 15 proceeds to step S13.

[0050] In step S5, the calculation unit 15 identifies the character closest to the virtual camera 10 among the unprocessed characters. Next, in step S7, the calculation unit 15 determines whether there are other characters within a certain distance from the identified character and within 45 degrees to the left or right of the identified character in the camera direction. The condition "whether there are other characters within a certain distance from the identified character and within 45 degrees to the left or right of the identified character in the camera direction" is referred to as "Condition 1." The fan-shaped region R in FIGS. 7(a) and 7(b) is an example of the "region within a certain distance and within 45 degrees to the left or right of the camera direction" indicated by Condition 1. In FIGS. 7(a) and 7(b), the fan-shaped region R is "the region within a certain distance P with a radius F from the character N1 and within 45 degrees to the left or right of the direction C of the virtual camera 10 from the character N1." Note that the certain distance P and within 45 degrees to the left or right of the direction C of the virtual camera 10 are merely examples, and any distance and angle can be set.

[0051] If it is determined in step S7 that there is no other character that satisfies condition 1, the calculation unit 15 proceeds to step S9, sets the occlusion level of the identified character to "0", and returns to step S3. In the case of FIG. 7(a), there are no other characters in the fan-shaped region R. In this case, the occlusion level of character N1 is set to "0". The numerical value shown inside character N1 in FIG. 7(a) indicates the occlusion level. Note that a value other than "0" may be used as long as the occlusion level of the identified character is set to the lowest level.

[0052] On the other hand, if it is determined in step S7 that there is another character that satisfies condition 1, the calculation unit 15 proceeds to step S11. In step S11, the calculation unit 15 sets the occlusion level of the identified character to a value obtained by adding "1" to the maximum occlusion level of the other characters that satisfy condition 1, and then returns to step S3. In the case of FIG. 7(b), other characters N2 and N3 are present in the fan-shaped region R. In this case, the calculation unit 15 sets the occlusion level of the character N1 to "2," which is a value obtained by adding "1" to the maximum occlusion level "1" of the other characters N2 and N3. Note that, as long as the occlusion level of the identified character is set to a value higher than the occlusion levels of other objects that satisfy condition 1, a value other than the value obtained by adding "1" to the maximum occlusion level of the other characters may be used.

[0053] The above-described processing of steps S1 to S11 is repeated until it is determined in step S3 that there are no unprocessed characters whose occlusion levels have not been updated since the previous frame. As a result, the occlusion level update processing is executed for all characters, as shown in an example in Figure 8. This determines the final occlusion level for each character N.

[0054] If it is determined in step S3 that there are no unprocessed characters, the process proceeds to step S13, where update control unit 16 determines the update frequency for each of the multiple characters based on the occlusion level of each of the multiple characters. For example, update control unit 16 performs update processing once every five frames for characters with an occlusion level of 4 or higher, and updates characters with an occlusion level of 1 or higher but lower than 4, once every three frames. Update control unit 16 also determines the update frequency, such as performing update processing for characters with an occlusion level of 0 every frame. Characters with a high occlusion level are less visible from virtual camera 10, so the update frequency is reduced.

[0055] Next, in step S15, the display control unit 18 controls the update for each of the multiple characters based on the update frequency for each of the multiple characters to draw a game image. Next, in step S17, the update control unit 16 determines whether the game is to end. If the update control unit 16 determines in step S17 that the game is to end, it ends this processing. If the update control unit 16 determines in step S17 that the game is not to end, it returns to step S1, sets all characters captured by the virtual camera 10 as unprocessed characters (characters whose occlusion level updates have not been processed), and continues processing.

[0056] According to the game control method of the first embodiment, occlusion inspection of multiple characters can be easily performed based on the distance from a specific character whose occlusion level is calculated, the direction of the virtual camera 10, and Condition 1, which restricts the status of surrounding characters. This determines the occlusion level for each character, determines the update frequency for each character according to the occlusion level, and updates the rendering of each character based on the update frequency. This makes it difficult for the user to see characters with low-quality update processing or characters for which update processing has been thinned out. This reduces the load on the rendering processing, while clearly rendering game images visible to the user and providing the user with high-quality game images.

[0057] Second Embodiment In the first embodiment, when updating the occlusion level for each character, the correct occlusion level cannot be calculated unless the update is performed starting with the character closest to the virtual camera 10. Therefore, in order to perform the update correctly, it is necessary to create a list in which the characters are sorted in order of proximity to the virtual camera 10 (FIG. 6, S1). However, as the number of characters increases, the processing cost for this sorting increases.

[0058] In contrast, in the game control method according to the second embodiment, the occlusion level for the current frame is calculated by referencing the occlusion level from the previous update (previous frame), and the occlusion level for each character is calculated over multiple frames. This allows the occlusion levels for each of multiple characters to converge to the correct occlusion level value without rearranging the characters. This allows the occlusion level from the previous frame to be reused, simplifying processing. As a result, the load on the rendering process can be reduced, and the game video visible to the user can be rendered clearly, providing the user with high-quality game images.

[0059] A game control method according to the second embodiment will be described with reference to Figs. 9 to 12. Fig. 9 is a flowchart showing the game control method according to the second embodiment. Note that when the step numbers in Fig. 9 are the same as those in Fig. 6, they indicate the same processing. Figs. 10 to 12 are diagrams showing an example of calculation of the occlusion level in the game control method according to the second embodiment.

[0060] [Game Control Method] When the game control method is started, the game machine 3 executes each process of the flowchart shown in Fig. 9. Characters on the screen of the game executed by the game execution processing unit 14 are photographed by the virtual camera 10. Here, an example will be described in which the virtual camera 10 photographs a plurality of characters. The characters may be non-player characters (NPCs) or player characters (PCs).

[0061] First, in step S1, update control unit 16 sets all characters captured by virtual camera 10 as unprocessed characters (characters whose occlusion level update has not been processed). Fig. 10 shows an example of the initial occlusion levels of unprocessed characters N1 to N10 captured by virtual camera 10. The occlusion levels of all characters are set to "0".

[0062] Next, in step S3, the calculation unit 15 determines whether there is an unprocessed character whose occlusion level has not been updated. If it is determined that there is an unprocessed character, the calculation unit 15 proceeds to step S4. If it is determined that there is no unprocessed character, the calculation unit 15 proceeds to step S13.

[0063] In step S4, the calculation unit 15 selects one of the unprocessed characters. The selection here does not have to be made according to a specific procedure, but may be made randomly, for example.

[0064] Next, in step S7, the calculation unit 15 determines whether there is another character within a certain distance from the identified character and within 45 degrees to the left or right of the camera direction from the identified character (condition 1).

[0065] If it is determined in step S7 that there is no other character that satisfies condition 1, the calculation unit 15 proceeds to step S9, sets the occlusion level of the identified character to "0", and returns to step S3.

[0066] On the other hand, if it is determined in step S7 that there is another character that satisfies condition 1, the calculation unit 15 proceeds to step S12. In step S12, the calculation unit 15 sets the occlusion level of the identified character to a value obtained by adding "1" to the maximum occlusion level of the other characters that satisfy condition 1 in the previous frame, and then returns to step S3.

[0067] The above-described processing of steps S1 to S12 is repeated until it is determined in step S3 that there are no unprocessed characters whose occlusion levels have not been updated since the previous frame. This completes the occlusion level update processing for all characters. This determines the final occlusion level for each character N.

[0068] If it is determined in step S3 that there are no unprocessed characters, the process proceeds to step S13, where the update control unit 16 determines the update frequency for each of the multiple characters based on the occlusion level of each of the multiple characters. At this time, as shown in the first time in Figure 11(a), the occlusion levels of characters N1 to N5 that satisfy condition 1 become "1." The occlusion levels of characters N6 to N10 remain "0."

[0069] Next, in step S14, the update control unit 16 saves the occlusion level of the latest frame as the occlusion level of the previous frame. Next, in step S15, the display control unit 18 controls the update for each of the multiple characters based on the update frequency for each of the multiple characters to draw a game image. Next, in step S17, the update control unit 16 determines whether the game is to end. If the update control unit 16 determines in step S17 that the game is to end, it ends this processing. If the update control unit 16 determines in step S17 that the game is not to end, it returns to step S1, sets all characters captured by the virtual camera 10 as unprocessed characters (characters whose occlusion level updates have not been processed), and continues processing.

[0070] After returning to step S1, the processes of steps 1 to S12 are executed again, and the calculation unit 15 adds another "1" to the occlusion level of the character that satisfies condition 1. If the determination in step S3 is "No" again, step S13 is executed again. In step S13, the update control unit 16 determines the update frequency for each of the multiple characters based on the occlusion level for each of the multiple characters.

[0071] At this time, as shown for the second time in Figure 11(b), the shielding levels of characters N1 to N4 that satisfy condition 1 are further increased by "1" to become "2." As a result, the shielding level of character N5 becomes "1," and the shielding levels of characters N6 to N10 remain at "0."

[0072] In the processing of steps S1 to S12 for the third time, the calculation unit 15 further adds "1" to the obscuration levels of the characters that satisfy condition 1. If the determination in step S3 is again "No," step S13 is executed again. In step S13, the update control unit 16 determines the update frequency for each of the multiple characters based on the obscuration levels of each of the multiple characters. At this time, as shown in FIG. 12(a) for the third time, the obscuration levels of characters N1 and N2 that satisfy condition 1 are further added by "1" to become "3." As a result, the obscuration levels of characters N3 and N4 become "2," the obscuration level of character N5 remains "1," and the obscuration levels of characters N6 to N10 remain "0."

[0073] In the fourth processing of steps S1 to S12, the calculation unit 15 further adds "1" to the shielding level of the characters that satisfy condition 1. At this time, as shown in FIG. 12(b) for the fourth time, the shielding level of character N1 that satisfies condition 1 is further added with "1" to become "4." As a result, the shielding level of character N2 becomes "3," the shielding levels of characters N3 and N4 are "2," the shielding level of character N5 is "1," and the shielding levels of characters N6 to N10 remain "0."

[0074] If step S3 is again determined to be "No," step S13 is executed again. In step S13, the update control unit 16 determines the update frequency for each of the multiple characters based on the occlusion level for each of the multiple characters. Next, in step S14, the update control unit 16 saves the occlusion level of the latest frame as the occlusion level of the previous frame. Next, in step S15, the display control unit 18 controls the update for each of the multiple characters based on the update frequency for each of the multiple characters to draw a game image. Then, if it is determined in step S17 that the game is to end, this process ends.

[0075] According to the game control method of the second embodiment, the occlusion level is calculated over multiple frames by referencing the occlusion level at the time of update one frame before. This allows the occlusion levels of multiple characters to converge to the correct occlusion level value without rearranging the characters. This reduces the load on the rendering process, while clearly rendering the game image visible to the user and providing the user with high-quality game images.

[0076] <Third embodiment> [Game Control Method] Next, a game control method according to the third embodiment will be described with reference to Fig. 13 and Fig. 14. Fig. 13 is a flowchart showing the game control method according to the third embodiment. Fig. 14 is a diagram for explaining the game control method according to the third embodiment in comparison with a comparative example.

[0077] In the game control method according to the first embodiment, as shown in Fig. 14(a), each time the occlusion level of each character is calculated, the distance between the target character (character N1 in the example of Fig. 14(a)) and the other characters N2 to N10 is calculated, and it is determined whether or not the distance satisfies "within a certain distance" indicated in Condition 1. In this way, to calculate the occlusion levels of all N characters, it is necessary to calculate the distances to the other characters N(N-1) times, and the larger N becomes, the higher the processing load becomes.

[0078] Therefore, in the game control method according to the third embodiment, each character is pushed out by a collision object to prevent the characters from colliding with each other. The number of calculations can be significantly reduced by saving the contact information of the collision object, and creating a list of other characters that each character has come into contact with for each character, and storing this list in the storage unit 12. Furthermore, if a character is within the contact distance of the collision object, it is considered to be a nearby character, and the calculation of the distance can be omitted.

[0079] 14(b), each character is covered by a collision object D, and the collision of each object with another object can be determined by the collision object D of each object. In other words, the collision determination unit 17 determines that the characters are colliding if the collision objects D of the characters are in contact with each other.

[0080] In the example of Figure 14(b), the collision determination unit 17 determines that characters N2, N3, and N9 of collision object D that come into contact with collision object D of character N1 are other characters that will collide with character N1. As a result, the characters in the vicinity of character N1 can be identified as characters N2, N3, and N9. Therefore, it is only necessary to determine whether or not only characters N2, N3, and N9 are within region R, which allows for a significant reduction in processing costs and an increase in processing speed.

[0081] The collision object D is a virtual object and is not displayed on the screen. Therefore, the player cannot see the collision object D. In this embodiment, the shape of the object C is spherical, but this is not limiting and various shapes and sizes can be used, such as capsule-shaped, square, spherical, cylindrical, etc.

[0082] If the collision object D is spherical, and the radius of the fan-shaped region R is larger than twice the radius of the collision object D, there will be other characters that are within the fan-shaped region R but have not come into contact with the collision object D. This makes it impossible to determine the characters in the vicinity. Therefore, twice the radius of the collision object D must be larger than the radius of the region R within a predetermined angle with respect to the direction from one object toward the virtual camera 10 and within a predetermined distance from the one object.

[0083] A game control method according to the third embodiment will be described with reference to FIG. 13. Note that when the step numbers in FIG. 13 are the same as those in FIG. 6, they indicate the same processing. When this processing starts, first, in step S1, update control unit 16 sets all characters captured by virtual camera 10 as unprocessed characters (characters whose occlusion level update has not been processed). Next, in step S2, calculation unit 15 creates a list in which unprocessed characters captured by virtual camera 10 for each frame are sorted in order of proximity to virtual camera 10.

[0084] Next, in step S3, the calculation unit 15 determines whether there is an unprocessed character whose occlusion level has not been updated. If it is determined that there is an unprocessed character, the calculation unit 15 proceeds to step S5. If it is determined that there is no unprocessed character, the calculation unit 15 proceeds to step S13.

[0085] In step S5, calculation unit 15 identifies the character closest to virtual camera 10 among the unprocessed characters. Next, in step S37, collision determination unit 17 determines another character that will collide with the identified character. Collision determination unit 17 determines that a character of collision object D that comes into contact with the collision object D of the identified character is the other character that will collide with the identified character.

[0086] Next, in step S39, the calculation unit 15 determines whether any of the other characters with which the collision will occur is within an area of ​​45 degrees to the left or right of the camera direction. This condition is referred to as "Condition 2." In FIG. 14(b), there are no other characters with which the collision will occur that are within area R. In other words, there are no other characters with which the collision will occur that satisfy Condition 2. Note that the area within 45 degrees to the left or right of the direction C of the virtual camera 10 is just an example, and any angle can be set.

[0087] If it is determined in step S39 that there is no character that satisfies condition 2, the calculation unit 15 proceeds to step S41, sets the obscuration level of the identified character to "0", and returns to step S3. For example, in the case of Fig. 14(b), the obscuration level of the identified character N1 is set to "0".

[0088] On the other hand, if it is determined in step S39 that there is a character that satisfies condition 2, the calculation unit 15 proceeds to step S43, sets the occlusion level of the identified character to a value obtained by adding "1" to the maximum occlusion level of the other characters determined to collide, and returns to step S3.

[0089] The above-described processes of steps S1 to S5 and S37 to S43 are repeated until it is determined in step S3 that there are no unprocessed characters whose occlusion levels have not been updated since the previous frame. As a result, the occlusion level update process is executed for all characters, and the final occlusion level for each character is determined.

[0090] If it is determined in step S3 that there are no unprocessed characters, the process proceeds to step S13, where the update control unit 16 determines the update frequency for each of the plurality of characters based on the occlusion level of each of the plurality of characters.

[0091] Next, in step S15, the display control unit 18 controls the update for each of the multiple characters based on the update frequency for each of the multiple characters to draw a game image. Next, in step S17, the update control unit 16 determines whether the game is to end. If the update control unit 16 determines in step S17 that the game is to end, it ends this processing. If the update control unit 16 determines in step S17 that the game is not to end, it returns to step S1, sets all characters captured by the virtual camera 10 as unprocessed characters (characters whose occlusion level updates have not been processed), and continues processing.

[0092] According to the game control method of the third embodiment, by performing collision detection between characters using the collision object D, it is possible to determine that a character determined to collide is another character in the vicinity of the first character. Then, by calculating the occlusion level of the first character depending on whether or not the other characters determined to be in the vicinity satisfy condition 2, it is possible to more easily check occlusion of multiple objects and further reduce the load of the rendering process.

[0093] In the game control method of the first to third embodiments, if there is no change in the occlusion level from the previous frame, the processing ends. After that, when the position of the character photographed by virtual camera 10 changes, the game control method of any of the first to third embodiments is started again.

[0094] [Variations] In the game control methods of the first to third embodiments, the update frequency is changed. However, not only the update frequency but also the update content may be changed. For example, when updating a character's motion, the update content can be reduced by eliminating the process of turning the head. In this case, the character moves with the neck fixed. In addition, the update content can be reduced by eliminating the process of putting the character's feet on the ground.

[0095] Typically, the process of updating a character's movement involves multiple steps: (1) updating the character's motion, (2) updating the character's position, and (3) correcting the character's motion. For example, the number of updates can be reduced by not performing step (3).

[0096] Furthermore, the update frequency may be determined not only based on the occlusion level but also based on the occlusion level and the size of the character. For example, the update frequency may be increased as the character becomes larger, and decreased as the character becomes smaller.

[0097] The update frequency may be determined based on the occlusion level and the importance of the character. For example, the update frequency may be increased as the importance of the character increases, and decreased as the importance of the character decreases.

[0098] The update frequency may be determined based on the occlusion level and the character's movement speed or acceleration. For example, the faster the character's movement speed, the higher the update frequency, and the slower the character's movement speed, the lower the update frequency. Conversely, the faster the character's movement speed, the lower the update frequency, and the slower the character's movement speed, the higher the update frequency.

[0099] The update frequency may be determined based on the level of obscuration and the character's action. For example, if the character is in an attacking motion, the update frequency may be increased. For example, if the character is attacking, the update frequency may be increased.

[0100] The update frequency may be determined using the occlusion level and the distance from the virtual camera 10. For example, the update frequency may be increased as the distance from the virtual camera 10 to the character is shorter, and may be decreased as the distance from the virtual camera 10 to the character is longer.

[0101] The size of the character, the importance of the character, the movement speed or acceleration of the character, the action of the character, and the distance from the virtual camera 10, which determine the update frequency together with the occlusion level, are stored in the storage unit 12 as character information 22. In the above example, the update frequency may be determined using at least one of the occlusion level and the character information 22.

[0102] Although the game program, game control method, and information processing device have been described above using the above-mentioned embodiments, the game program, game control method, and information processing device according to the present disclosure are not limited to the above-mentioned embodiments, and various modifications and improvements are possible within the scope of the present embodiments. Furthermore, when there are multiple above-mentioned embodiments and modifications, they can be combined within a range that does not contradict each other. [Explanation of symbols]

[0103] 1. Game System 2. Server device 3. Game consoles 11 Control section 12 Storage section 13 Communications Department 14 Game execution processing unit 15 Calculation section 16 Update control section 17 Collision determination section 18 Display control unit 21 Shielding Level 22 Character Information

Claims

1. A game program that causes a computer to execute a rendering process of a game image captured by a virtual camera in a virtual space, (a) when there are a plurality of objects photographed by the virtual camera, a process of treating each of the plurality of objects as a single object and calculating an occlusion level of the single object depending on whether or not there is another object within a predetermined distance from the single object and within a predetermined angle with respect to a direction from the single object toward the virtual camera; (b) determining an update frequency for each of the plurality of objects based on the occlusion level for each of the plurality of objects; (c) a process of controlling updating of a drawing process for each of the plurality of objects based on an update frequency for each of the plurality of objects; A game program that executes a process including the above.

2. (a) calculates the occlusion level of the one object to be higher than the occlusion level of the other object when the other object is within a predetermined angle; The game program according to claim 1 .

3. (a) sets the occlusion level of the one object to the lowest level when there is no other object within a predetermined angle. The game program according to claim 1 .

4. (a) calculating an occlusion level of one of the plurality of objects by classifying the objects in order from an object closest to the virtual camera as one object; The game program according to any one of claims 1 to 3.

5. A game program that causes a computer to execute a rendering process of a game image captured by a virtual camera in a virtual space, (a) if there are a plurality of objects photographed by the virtual camera, a process of acquiring initial occlusion levels of the plurality of objects and calculating occlusion levels of the next frame using the initial occlusion levels; (b) calculating an occlusion level for the next frame using the calculated occlusion level for the next frame as the occlusion level for the previous frame; (c) determining an update frequency for each of the plurality of objects based on the occlusion level for each of the plurality of objects; (d) a process of controlling updating of a drawing process for each of the plurality of objects based on an update frequency for each of the plurality of objects; Including, (a) considers each of the plurality of objects as one object, and when there is another object that is within a predetermined distance from the one object and is within a predetermined angle with respect to a direction from the one object toward the virtual camera, increases the occlusion level of the one object in the next frame above the occlusion level of the initial state; (b) is a game program that executes a process in which, when each of the plurality of objects is considered to be a single object and there is another object within a predetermined distance from the single object and within a predetermined angle with respect to the direction from the single object toward the virtual camera, the occlusion level of the single object in the next frame is calculated to be higher than the occlusion level of the other object in the previous frame.

6. and (b) calculating the occlusion levels of the plurality of objects until the occlusion levels of the plurality of objects in the next frame do not change from the occlusion levels of the plurality of objects in the previous frame. The game program according to claim 5 .

7. Each of the plurality of objects is covered by a collision object, and collisions of the plurality of objects can be determined; (a) defines each of the plurality of objects as a single object, identifies other objects determined to collide with the single object, and calculates an occlusion level of the single object according to whether or not any of the identified other objects is within a predetermined angle with respect to a direction from the single object toward the virtual camera; The game program according to any one of claims 1 to 3.

8. the collision object is spherical; twice the radius of the collision object is greater than the radius of a region within a predetermined angle with respect to a direction from the one object toward the virtual camera and within a predetermined distance from the one object; The game program according to claim 7.

9. A game control method for causing a computer to execute a rendering process of a game image captured by a virtual camera in a virtual space, comprising: (a) when there are a plurality of objects photographed by the virtual camera, a process of treating each of the plurality of objects as a single object and calculating an occlusion level of the single object depending on whether or not there is another object within a predetermined distance from the single object and within a predetermined angle with respect to a direction from the single object toward the virtual camera; (b) determining an update frequency for each of the plurality of objects based on the occlusion level for each of the plurality of objects; (c) a process of controlling updating of a drawing process for each of the plurality of objects based on an update frequency for each of the plurality of objects; A game control method in which processing is performed by a computer.

10. An information processing device that performs a rendering process of a game image captured by a virtual camera in a virtual space, a calculation unit that, when there are a plurality of objects photographed by the virtual camera, regards each of the plurality of objects as a single object and calculates an occlusion level of the single object depending on whether or not there is another object within a predetermined distance from the single object and within a predetermined angle with respect to a direction from the single object toward the virtual camera; an update control unit that determines an update frequency for each of the plurality of objects based on the occlusion level for each of the plurality of objects, and controls updating of a drawing process for each of the plurality of objects based on the update frequency for each of the plurality of objects; An information processing device having the above.

Citation Information

Patent Citations

  • Image processing device, image processing method and program

    JP2006235748A

  • Game program, recording medium, and computer device

    JP2011186834A

  • Image resource loading system and image resource loading method for loading objects to update the game screen.

    JP4503073B2

  • JPP7015597B

  • Image processor, image processing method and information storage medium

    US20090015581A1