Game program, information processing device, and object control method

The game program addresses character clustering issues by using an object control unit, contact determination, and density control to manage character movement and distribution, enhancing gameplay experience by preventing high-speed vibrations and maintaining smooth interactions.

JP7716224B2Active Publication Date: 2025-07-31KOEI TECMO GAMES CO LTD
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2021080542
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-05-11
Publication Date
2025-07-31
Estimated Expiration
2041-05-11

AI Technical Summary

Technical Problem

Conventional game technologies face issues with character behavior defects when a large number of characters concentrate, leading to unintended movements such as high-speed vibrations and reduced game interest due to character pushing and clustering.

Method used

A game program that includes an object control unit to manage character movement, a contact determination unit to assess collisions, and a density control unit to adjust character density based on proximity to the player character, prioritizing positions to prevent clustering and high-speed vibrations.

Benefits of technology

The solution effectively suppresses character clustering and high-speed vibrations, maintaining game interest by ensuring smooth character movement and distribution.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007716224000001
    Figure 0007716224000001
  • Figure 0007716224000002
    Figure 0007716224000002
  • Figure 0007716224000003
    Figure 0007716224000003
Patent Text Reader

Abstract

To prevent a deterioration of a user's interest in a game caused by the clustering or non-clustering of characters.SOLUTION: A game program causes an information processing device to function as: an object control unit that moves a plurality of objects in a virtual space; a contact determination unit that determines contact between the plurality of objects; and a clustering control unit that, if predetermined conditions are met, performs control to change the degree of clustering of the plurality of objects for which contact is determined by the contact determination unit.SELECTED DRAWING: Figure 2B
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a game program, an information processing apparatus, and an object control method.

Background Art

[0002] Games in which a large number of characters are concentrated, such as action games and simulation games, are known. For example, in an action game, enemy characters that try to attack the player character may be concentrated around the player character.

[0003] Techniques for controlling the movement of concentrated enemy characters have been devised (see, for example, Patent Document 1). Patent Document 1 discloses an image processing method for displaying the movement of concentrated enemy characters in a more natural manner.

Prior Art Documents

Patent Documents

[0004]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0005] However, in the conventional technology, there is a problem that when each character is concentrated, a defect may occur in the behavior of the character. For example, when a large number of enemy characters try to approach the player character, the enemy character tries to advance even if there is another enemy character at the destination. When the characters are concentrated in this way, pushing between the characters occurs, and the characters cannot move as intended, resulting in a defect, which is a factor in reducing the interest of the game.

[0006] In view of the above problems, an object of the present invention is to provide a game program that suppresses a decrease in the interestingness caused by the concentration of characters.

Means for Solving the Problems

[0007] In view of the above problems, the present invention provides a game program that causes an information processing apparatus to function as an object control unit that moves a plurality of objects in a virtual space, a contact determination unit that determines the contact of the plurality of objects, and a density control unit that performs control to change the density of the plurality of objects determined to be in contact by the contact determination unit when a predetermined condition is satisfied.

Effects of the Invention

[0008] It is possible to suppress a decrease in the interestingness caused by the concentration or non-concentration of characters.

Brief Description of the Drawings

[0009]

Figure 1

Figure 2A

Figure 2B

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

Figure 13

Figure 14

Figure 15

Embodiments for Carrying Out the Invention

[0010] Hereinafter, embodiments for carrying out the game program of the present disclosure and an object control method performed by the game program will be described with reference to the drawings. In the present specification and drawings, substantially the same configurations are denoted by the same reference numerals, and redundant explanations are omitted.

Examples

[0011] <An example of the movement of an unintended enemy character> First, an example of the movement of an unintended enemy character will be described. In some cases, when enemy characters gather closely, a phenomenon occurs where the enemy characters vibrate at high speed. High-speed vibration refers to a phenomenon where the whole or a part of an enemy character repeats the same action of pushing against each other, making one enemy character (or a part of an enemy character) appear as multiple. The following are considered as the causes of this phenomenon. 1. It tries to move forward even if there is another enemy character at the destination. 2. It takes time for the characters to be arranged in a dense formation. Arranging the characters in a dense formation means that the contact between the enemy characters generated by gathering closely is eliminated. When the enemy characters gather closely, the following phenomena occur.

[0012] When characters come into contact (overlap), in order to eliminate the contact, pushing occurs between the enemy characters. However, in the prior art, since the pushing from both the front and the back occurs repeatedly, it takes time until all the pushing is completed and all the overlaps are eliminated. Also, due to the repeated fine pushing from the front and the back, a subtle change in position continues, making it look like vibration. This position adjustment should not be visible to the player, but if it takes time for the characters to be arranged in a dense formation, it becomes more visible.

[0013] Referring to FIG. 1, a supplementary explanation will be given for the first cause. FIG. 1 is a diagram for explaining one of the causes of high-speed vibration. The enemy characters A to C in FIG. 1(a) have the same collision priority. The collision priority is a value for the game system to determine which position is prioritized when contact occurs between characters. There is a player character on the right side (towards the left) of the enemy character A, and the enemy characters A to C move towards the player character as the target.

[0014] First, as shown in Fig. 1(b), enemy character B moved towards enemy character A. As a result, contact occurred between enemy character B and enemy character A. Since the collision priorities of enemy characters A and B are the same, enemy character A and enemy character B are each pushed out by 1 / 2 of the overlapping collision. Enemy character B is pushed towards enemy character C, and since enemy character C also approaches enemy character B, enemy character B and enemy character C come into contact. Since the collisions of enemy characters B and C overlap, they try to push out the overlapping part to eliminate the overlap.

[0015] In this way, enemy character B sandwiched between enemy characters A and C cannot form a dense formation and will move between enemy characters A and C each time they come into contact, and may appear to the player to be vibrating rapidly (Fig. 1(c)). Note that the explanation in Fig. 1 simplifies the phenomenon, and in reality, more enemy characters are densely present and interfere with each other, so any enemy character may vibrate rapidly.

[0016] <Overview of this embodiment> Therefore, in this embodiment, when enemy characters with the same collision priority come into contact, the superiority or inferiority of the contacting enemy characters is determined according to the distance between the player character (hereinafter referred to as PC) and the enemy characters. The enemy character with the inferior position priority moves away from the PC, so it is easier to eliminate the dense state where enemy characters come into contact one after another, and the unintended movement of enemy characters can be suppressed.

[0017] Figs. 2A and 2B are diagrams for explaining the dense suppression control that reduces the problems (such as rapid vibration) when enemy characters are dense. As shown in Fig. 2A(a), enemy characters A to C are densely packed on the left side (towards the right) of PC4. In reality, enemy characters may exist 360° around PC4, but Figs. 2A and 2B are simplified.

[0018] (i) Near PC4, enemy characters A to C move according to instructions such as AI. For example, enemy character B moves in the direction of enemy character A.

[0019] (ii) As shown in FIG. 2A(b), enemy characters A and B come into contact. Since the collision priorities of enemy characters A to C are the same, there is no superiority or inferiority.

[0020] (iii) In this case, in the present embodiment, the superiority or inferiority of the enemy characters is determined based on the distance between PC4 and the enemy characters. That is, it is determined that the one with the smaller distance has a superior position priority. As shown in FIG. 2A(a), "the distance L1 (an example of the first distance) between enemy character A and PC4 < the distance L2 (an example of the second distance) between enemy character B and PC4". Therefore, enemy character A is superior in terms of position priority, and enemy character B is pushed out by the amount of the overlapping collision.

[0021] (iv) Next, enemy character B (an example of the first object) is pushed out in (iii) above, and enemy character C (an example of the second object) also approaches enemy character B.

[0022] (v) As shown in FIG. 2B(a), enemy characters B and C come into contact. Since the collision priorities of enemy characters A to C are the same, there is no superiority or inferiority.

[0023] (vi) In this case, "the distance L2 between enemy character B and PC4 < the distance L3 between enemy character C and PC4". The game system determines that enemy character B is superior as the position priority, and enemy character C is pushed out in the direction away from PC4 by the amount of the overlapping collision with enemy character B (FIG. 2B(b)).

[0024] For example, when enemy character A moves in the direction of enemy character B and comes into contact with enemy character B, the same applies, and enemy character B far from PC4 moves away from PC4. In this case, enemy character C also moves in the direction away from PC4.

[0025] In this way, an enemy character far from PC4 cannot move in the direction of contacting an enemy character close to it, but an enemy character close to PC4 can move in the direction of contacting an enemy character far from it. As a result, during repeated collisions, the enemy characters move away from PC4, so they become more evenly spaced. Also, it is possible to suppress unintended movements (such as high-speed vibrations) that are likely to occur when enemy characters with the same collision priority repeatedly come into contact. High-speed vibrations are caused by an enemy character being repeatedly pushed out by enemy characters with the same collision priority existing in both the front and back directions. Therefore, by differentiating priorities according to position in this technology, the pushing can be made from only one direction, and high-speed vibrations can be suppressed. Also, by preventing repeated pushing, all enemy characters can be arranged at appropriate positions in a short time (with a small number of frames).

[0026] <Regarding terms> An object means a target. In this embodiment, mainly people and objects existing in a virtual space (for example, a virtual three-dimensional space) are collectively referred to as objects. For example, PCs, enemy characters, rocks, buildings, etc., which generally appear in the virtual space, are objects.

[0027] Clustering means that objects gather so that there are no gaps. Clustering suppression control means suppressing clustering, which includes both leveling out clustering after it has occurred and controlling to prevent clustering from occurring.

[0028] The clustering degree is the degree of clustering, and it may or may not be quantified. For example, it is quantified when there are a predetermined number or more of characters within a radius of x [m] of PC4. Controlling the clustering degree includes cases where the degree of clustering is changed in the impression seen by the player.

[0029] <Game system> First, with reference to FIG. 3, a configuration example of the game system will be described. FIG. 3 is a diagram showing the configuration of the game system 1 of the present embodiment. The game system 1 includes an information processing device 3, a game controller 5, and a display device 7. Each of the game controller 5 and the display device 7 is communicably connected to the information processing device 3 by wire or wirelessly.

[0030] The information processing device 3 is, for example, a dedicated stationary game machine. However, it is not limited thereto, and the information processing device 3 may be, for example, a portable game machine integrally provided with an input unit, a display unit, etc.

[0031] Further, the information processing device 3 does not have to be a dedicated game machine. For example, it may be manufactured, sold, etc. as a computer such as a computer, a desktop computer, a notebook computer, a tablet computer, etc., or manufactured, sold, etc. as a telephone such as a smartphone, a mobile phone, a phablet, etc. These devices are usually used as general-purpose information processing terminals, but when a player installs and executes a game program, the player can play the game in the same way as a dedicated game machine.

[0032] The game program of the present embodiment is installed in the information processing device 3. The game program is distributed in a state stored in an optical storage medium such as a CD-ROM or a semiconductor memory such as a USB memory, or is distributed in a form downloaded from a server.

[0033] The player performs various operation inputs using the game controller 5. In the example shown in FIG. 3, 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, instead of or in addition to the above, for example, a joystick, a touch pad, etc. Further, the game controller 5 may be provided with a microphone and voice operation may be possible. The game controller 5 may be provided with a gyro sensor, an acceleration sensor, etc., and the operation may be possible by the player changing the posture of the game controller 5.

[0034] Further, the information processing device 3 may further communicate with a server on the network. In this case, since a plurality of information processing devices 3 that execute the same game program are connected to the server, a so-called online game becomes possible. An online game refers to, for example, a game in which multiple players can cooperate to operate the same game program. The server of the online game performs at least the process of receiving the positions and operation commands of other players and transmitting them to the information processing devices 3 of other players. The information processing device 3 performs actual game processing such as drawing of each player and reflection processing of operation commands.

[0035] Also, the game system 1 may be a so-called P2P (Peer To Peer) method in which the information processing device 3 communicates with another information processing device 3.

[0036] Also, the game system 1 may be a so-called cloud game. Hereinafter, the game system 1 of the present embodiment will be mainly described using the configuration of FIG. 3.

[0037] <Example of the hardware configuration of the information processing device> FIG. 4 is an example of a hardware configuration diagram of the information processing device 3. As shown in FIG. 4, the information processing device 3 includes, for example, a CPU 501, a ROM 502, a RAM 503, a GPU 504, a dedicated integrated circuit 505 constructed for a specific purpose such as an ASIC or an FPGA, an input device 506, an output device 507, a recording device 508, a drive 509, a connection port 510, and a communication device 511. These components are connected to be able to transmit signals to each other via a bus 513, an input / output interface 514, etc.

[0038] The game program can be recorded, for example, in the ROM 502, the RAM 503, the recording device 508, etc.

[0039] Also, the game program can be temporarily or permanently (non-temporarily) recorded on a removable recording medium 512 such as a magnetic disk like a flexible disk, various CDs, MO disks, optical disks such as DVDs, or a semiconductor memory. Such a recording medium 512 can also be provided as so-called packaged software. In this case, the game program recorded on these recording media 512 may be read by the drive 509 and recorded on the recording device 508 via the input / output interface 514, the bus 513, etc.

[0040] The CPU 501 may, for example, directly read and execute the game program from the recording device 508, or may execute it after once loading it into the RAM 503. Further, when the CPU 501 receives the game program via the communication device 511, the drive 509, or the connection port 510, for example, it may directly execute the received game program without recording it on the recording device 508.

[0041] Also, the CPU 501 may perform various processes based on signals and information input from an input device 506 such as a mouse, a keyboard, a microphone, etc. (not shown), including the aforementioned game controller 5, as necessary.

[0042] The GPU 504 performs processes for image display such as rendering processing, for example, in response to an instruction from the CPU 501.

[0043] Then, the CPU 501 and the GPU 504 output the results of executing the above processes from an output device 507 including, for example, the aforementioned display device 7 and the audio output unit. The CPU 501 and the GPU 504 may transmit this processing result via the communication device 511 or the connection port 510 as necessary, or may record it on the recording device 508 or the recording medium 512.

[0044] Note that for the convenience of explaining this embodiment, it is assumed that the hardware configuration of the server or the general-purpose information processing device is the same as or different from that of the information processing device 3 without any problem.

[0045] <Regarding functions> FIG. 5 is an example of a functional block diagram for explaining the functions of the information processing apparatus 3 in a block form. As shown in FIG. 5, the information processing apparatus 3 includes an object control unit 31, a contact determination unit 32, a priority determination unit 33, a density control unit 34, an operation reception unit 35, an image data generation unit 36, and a display control unit 37. Each of these functional units of the information processing apparatus 3 is a function or means realized by the CPU 501 shown in FIG. 4 executing a game program developed in the RAM 503.

[0046] The object control unit 31 controls the positions and behaviors of characters other than the PC 4. For example, the position of the enemy character is updated for each frame with a position corresponding to the character's nature (friend, foe, role, etc.) within a range determined according to the character. Also, the position of the character is determined to move on a mesh called a navigation mesh according to the character's nature. Also, behaviors are, for example, attacking, talking, or simply moving, etc., and the object control unit 31 determines these according to the character's nature. Such character attributes are stored in the character data storage unit 39.

[0047] FIG. 6 is an example of the character data stored in the character data storage unit 39. The attributes that a character has are various, and a part of them is shown in FIG. 6. The character data storage unit 39 has movement rules, collision priorities, and weapon items in association with an object ID for identifying the character.

[0048] · The object ID is identification information of the character. The character in FIG. 6 is a character with low attack power and defense power that exists in a large number in the virtual space. In the game, it is called a mook character.

[0049] · Movement rules define how characters move in the virtual space. For example, the movement rules state that while patrolling a predefined range, when PC4 enters a predetermined range, it transforms into a chaser (pursuing PC4), and when it gets closer within a certain distance, it attacks PC4 according to a controlled probability, etc. Movement rules vary depending on the type of character.

[0050] · Collision priority indicates, by a value (e.g., a numerical value), which character's position takes precedence when two characters come into contact. The higher the numerical value (1 - 5), the higher the collision priority. Also, the five - step numerical value is just an example. Collision priorities may vary depending on the character type, or there may be characters with different types but the same collision priority. When characters with different collision priorities come into contact, the position of the character with the higher collision priority is preferentially determined. If the character with the higher collision priority attempts to move, the character with the higher collision priority can move (the character with the lower collision priority is pushed out by the amount of the overlapping collision). If the character with the lower collision priority attempts to move, the character with the lower collision priority is pushed out by the amount of the overlapping collision. When characters with the same collision priority attempt to move and come into contact, the character attempting to move is also pushed out by the amount of the overlapping collision.

[0051] · Weapons are items that characters can use for attacks. Weapons have determined attack powers, etc.

[0052] Returning to FIG. 5, the contact determination unit 32 determines whether or not objects are in contact with each other. The objects for which contact is determined include the PC 4 and other characters, the PC 4 and structures fixed to the ground (such as walls, rocks, buildings, trees, etc.), movable objects (such as furniture, home appliances, doors, etc.), projectiles such as bullets and magic power and the PC 4 (or enemy characters), the virtual camera and structures or movable objects, and so on. Objects within a predetermined range from the PC 4 (characters that are so far away as not to affect the PC 4 are stopped in the first place) may be subject to contact determination with other objects. In this embodiment, mainly, contact determination between enemy characters is performed.

[0053] The determination result of contact by the contact determination unit 32 (which characters are in contact with which characters) is notified to the priority determination unit 33. The priority determination unit 33 determines the relative magnitudes of the collision priorities in the character data storage unit. When the collision priorities of the two characters in contact are different, the object control unit 31 preferentially determines the position of the character with the higher collision priority.

[0054] When the collision priorities of the two characters in contact are the same, the density control unit 34 performs control related to density. Control related to density refers to density suppression control for suppressing density or density promotion control for promoting density. In this embodiment, mainly density suppression control will be described, but density promotion control can be realized by switching which of the closer object and the farther object is to be prioritized.

[0055] The density control unit 34 calculates the distances from the PC 4 to the two enemy characters in contact, respectively, and determines that the priority of the position of the character with the shorter distance is superior. The object control unit 31 preferentially determines the position of the character with the superior position priority.

[0056] The operation reception unit 35 receives operations from the player with respect to the game controller 5. The operation reception unit 35 can receive any operation possible within the game program, but in this embodiment, mainly receives operations such as movement and attack operations of the PC 4.

[0057] The image data generation unit 36 converts the objects in the virtual space with the virtual camera arranged in the virtual space as the viewpoint into image data. An image in which the objects are projected onto the virtual camera arranged in the virtual space is obtained. The object is a three-dimensional solid. In computer graphics, a three-dimensional object is composed of polygons (or a collection of three-dimensional points). A polygon is polygon data formed by connecting three or more vertices and is the minimum unit that constitutes a curved surface.

[0058] The display control unit 37 displays the image data generated by the image data generation unit 36 on the display device 7.

[0059] <An example of the dense state> FIG. 7 is a diagram showing an example of a state in which enemy characters are dense. In FIG. 7, many enemy characters 1001 exist around the PC 4. Since each enemy character 1001 is moved by the object control unit 31, there may be a case where the enemy characters come into contact with each other.

[0060] <Determination of the priority of the position using the distance from the PC> FIG. 8 is a diagram for explaining a method of determining the priority of the position using the distance from the PC 4 when characters with the same collision priority come into contact. FIG. 8 is the XZ plane (top view of the virtual space). In FIG. 8, A represents the PC 4, and the other alphabets represent enemy characters. The collision priorities of the enemy characters in FIG. 8 are the same and are lower than the collision priority of the PC 4.

[0061] In FIG. 8, the distance from the PC 4 is indicated by a circle 201 representing equal distances. Thus, in the XZ plane, the distance between the PC 4 and the enemy characters is calculated regardless of the direction. The priority of the position is higher for the enemy character with a shorter distance L in FIG. 8. For example, since the enemy character C tries to move in the direction of the arrow 202, the enemy character C comes into contact with the enemy characters H and G.

[0062] For enemy characters C and H, enemy character H has a longer distance L, so its position priority is lower. Similarly, for enemy characters C and G, enemy character G has a longer distance L, so its position priority is lower. For these reasons, enemy character C can move in the direction of arrow 202.

[0063] Conversely, when enemy character H or G tries to approach PC4 and contacts enemy character C, enemy character H or G cannot approach PC4 because its position priority is lower than that of enemy character C. Therefore, enemy characters with the same collision priority tend to move away from PC4 more, the greater the distance L from PC4. As a result, they are more likely to be scattered.

[0064] Next, referring to FIG. 9, the case of multiplayer with two players will be described. FIG. 9 is a diagram for explaining a method of determining position priority according to distance in the case of multiplayer. In the case of multiplayer, the density control unit 34 determines the position priority of each enemy character when the enemy characters come into contact with each other, based on the distances L4 and L5 from the enemy characters to the line segment 203 connecting the PC4s.

[0065] For example, the distances between enemy characters C, H, G and the line segment 203 are the lengths of the perpendicular lines 204, 205, 206 drawn from enemy characters C, H, G to the line segment 203. There is a relationship where the length of perpendicular line 204 < the length of perpendicular line 205, and the length of perpendicular line 204 < the length of perpendicular line 206. Therefore, when enemy characters C and H come into contact, and when enemy characters C and G come into contact, the density control unit 34 can determine the position priority in the same way as in FIG. 8.

[0066] Also, when a perpendicular line cannot be drawn to the line segment 203, as in the case of enemy character I, the shorter of the distances between enemy character I and the two PC4s is the distance between enemy character I and the line segment 203. Whether a perpendicular line can be drawn to the line segment 203 is determined, for example, by regarding the line segment 203 and the straight lines connecting PC4 and enemy character I as vectors respectively, and checking whether the inner product is positive (a perpendicular line can be drawn) or negative (a perpendicular line cannot be drawn).

[0067] As described above, even in the case of multiplayer, the same processing as in single-player makes it easier to align the density of enemy characters.

[0068] <Calculation of the distance between the PC and the enemy character> FIG. 10 is a diagram for explaining a method of calculating the distance between the PC 4 and the enemy character. FIG. 10(a) is a diagram for explaining a method of calculating the distance using the coordinates of the PC 4 and the enemy character in the virtual space. The PC 4 and the enemy character are arranged in a virtual space whose position is managed in the world coordinate system. When the PC 4 and the enemy character move on a plane, the position can be specified by the (x, z) coordinates indicating a point on the XZ plane. Therefore, the density control unit 34 can easily calculate the distance between the PC 4 and the enemy character as the distance between two points.

[0069] FIG. 10(b) shows the positions of the PC 4 and the enemy character on the navigation mesh. The navigation mesh is used for specifying the position of an object, determining the path for the object control unit 31 to move the enemy character, etc. The navigation mesh is generated for each section (area) when the virtual space where the PC moves is divided by design and coordinate range. The areas are various depending on the game, such as a grassland area, a building area, a town area, a sea area, a desert area, etc. In the navigation mesh, the position of an object is specified by the identification information (i, j) of the mesh.

[0070] Similarly, in the case of the navigation mesh, regarding (i, j) as coordinates, the density control unit 34 can easily calculate the distance between the PC 4 and the enemy character as the distance between two points.

[0071] Also, in this embodiment, the distance to the enemy character is calculated with the position of the PC 4 as a reference point, and the superiority or inferiority regarding the priority of the position is determined based on the distance. However, the density control unit 34 may determine the superiority or inferiority according to the distance to the enemy character from other reference points. Examples of other reference points include the origin of the world coordinate system or the origin of the navigation mesh.

[0072] However, when using the origin of the world coordinate system or the like as a reference point, depending on the position of PC4, there is a risk that the chasing enemy character may be blocked by another enemy character (for example, when another enemy character is closer to the origin than the chasing enemy character).

[0073] Also, by using the position of PC4 as a reference point, there are the following advantages. · Even if an enemy character is sandwiched between "another enemy character with a higher position priority" and "a feature of the stage or the like (non-mobile)", the enemy character that vibrates rapidly can be made to be only one of the sandwiched enemy characters · Even if the enemy character sandwiched in the above situation vibrates rapidly, from the perspective of PC4, the sandwiched enemy character exists on the other side of at least one or more other enemy characters (the enemy character closest to PC4 has a different collision priority from PC4, and since it wins in terms of position priority over the enemy characters behind it, it does not vibrate rapidly), so it is difficult for the player to visually recognize it

[0074] Furthermore, in this embodiment, the case where PC4 is the reference point is described, but an enemy character may also be the reference point. For example, when enemy characters are densely packed, if the density control unit 34 sets one of the densely packed enemy characters as the reference point, any density can be adjusted.

[0075] <Operation Procedure> FIG. 11 is an example of a flowchart showing the procedure by which the information processing apparatus 3 determines the positions of enemy characters when contact occurs between enemy characters.

[0076] The object control unit 31 updates the position of each enemy character for each frame. The collision determination unit 32 extracts pairs of two enemy characters existing at the updated positions and determines whether there is a collision (S1). Since there are various methods for determining the collision between characters, an example will be described. An example of the method for determining the collision between characters will be described. As an example of the collision determination method, the torso of the enemy character is surrounded by a cylinder and the head by a hemisphere, and it is determined whether this cylinder or hemisphere contacts the cylinder or hemisphere of another enemy character. Two cylinders are in contact when the shortest distance between the reference lines (central axes) of the two cylinders is shorter than the sum of the radii of the cylinders. This cylinder is called a collision, and the cylinder is an example of the shape of a collision. Two spheres are in contact when the distance between the centers of the two spheres is shorter than the sum of the radii of the two spheres. If there is no contact, the process of FIG. 11 ends, and another pair of two enemy characters is processed.

[0077] If there is a collision (Yes in S2), the priority determination unit 33 determines whether the collision priorities of the two enemy characters are the same (S3). If the collision priorities are different, the process proceeds to step S7.

[0078] If the collision priorities are the same, the density control unit 34 calculates the distances between the PC 4 and each enemy character (S4). The fact that Yes holds in step S3 and No holds in S5 is an example of a predetermined condition.

[0079] Although it is considered very rare for the distances to match, in this case, the process proceeds to step S8.

[0080] If the distances do not match, the object control unit 31 determines that the enemy character with the shorter distance is superior in terms of position priority and preferentially determines the position of the enemy character with the shorter distance (S6). The enemy character with the longer distance is pushed out by the amount of the overlapping collision.

[0081] In this embodiment, the priority of the position of an enemy character at a short distance is always higher than that of an enemy character at a long distance. However, probabilistically, the priority of the position of an enemy character at a short distance may be controlled to be higher than that of an enemy character at a long distance. For example, the density control unit 34 counts the number of collisions and determines, at a certain frequency such as two out of three times, that the priority of the position of an enemy character at a short distance is higher than that of an enemy character at a long distance.

[0082] When the collision priorities are not the same, the object control unit 31 preferentially determines the position of the enemy character with a higher collision priority (S7). For example, the boss of the stage has a high collision priority.

[0083] Also, when the distances match in step S5, both the collision priority and the position priority are ties. To avoid collisions, the object control unit 31 preferentially determines the position of any enemy character (S8). The any enemy character may be determined randomly, may be the enemy character attempting to move, or may be the stationary enemy character.

[0084] Note that the processes of steps S4 and S5 in FIG. 11 may be performed only when the two enemy characters in contact are in a dense state. The dense state means that, for example, there are enemy characters equal to or more than a threshold value within a predetermined range of the navigation mesh centered on the two enemy characters in contact.

[0085] <Main effects> As described above, in the information processing apparatus of this embodiment, an enemy character at a long distance from the PC4 cannot move in the direction of contacting an enemy character at a short distance, but an enemy character at a short distance from the PC4 can move in the direction of contacting an enemy character at a long distance. As a result, during repeated collisions, the enemy characters move away from the PC4, so that they become less dense. In addition, it is possible to suppress unintentional movements (for example, high-speed vibration) that are likely to occur when enemy characters with the same collision priority repeatedly come into contact.

Example

[0086] In this example, a game program in which the density control unit 34 restricts the movement of enemy characters so that density is less likely to occur will be described.

[0087] In this example, it will be described assuming that the hardware configuration diagram of FIG. 4 and the functional block diagram shown in FIG. 5 described in the above example can be adopted.

[0088] <An Example of Density Suppression Control in this Example> As methods for not causing density, the following two methods will be described. 1. A method in which the density control unit 34 calculates the density of enemy characters, and when the density is equal to or higher than a threshold value, causes the object control unit 31 to restrict the movement of the enemy characters 2. A method in which the density control unit 34 irradiates a raycast to the movement destination of the enemy character that the object control unit 31 is about to move, and when there is another enemy character, causes the object control unit 31 to restrict the movement of the enemy character <<Restriction of Enemy Character Movement Based on Enemy Character Density>> FIG. 12 is a diagram for explaining a method of calculating the density of enemy characters. In FIG. 12, for simplicity of explanation, enemy characters arranged on the plane of the navigation mesh are schematically shown. Also, in this example, based on the temporary movement destination before the object control unit 31 actually moves the enemy character, the density of the enemy character is calculated, and the position of the enemy character is optimized so that an area where the density is equal to or higher than the threshold value is less likely to occur.

[0089] The object control unit 31 notifies the density control unit 34 of the position of the destination for each enemy character. In FIG. 12, it is notified that the enemy character 270 moves to the mesh 210. The density control unit 34 calculates the density of the enemy characters for each area 220 of a predetermined size by sliding it one by one. The range in which the area 220 moves only needs to include the range including the mesh 210 of the temporary destination. In FIG. 12, only three areas 220 are shown among them.

[0090] Then, the density control unit 34 determines whether there is an area 220 whose density is equal to or higher than the threshold value. When there are N or more areas where the density is equal to or higher than the threshold value, it notifies the object control unit 31 of the movement restriction. The object control unit 31 adjusts the temporary destination of the enemy character to another destination and repeats the same process.

[0091] According to such processing, since up to N - 1 areas 220 with a density equal to or higher than the threshold value can be tolerated, in a game where, for example, a player battles a large number of enemy characters, or in a game or scene where some degree of density is desired (in such cases, the value of N can be set large), the density can be suppressed without damaging the worldview of the game.

[0092] FIG. 13 is an example of a flowchart showing a procedure in which the density control unit 34 does not cause the density of enemy characters based on the density of enemy characters.

[0093] The object control unit 31 takes out one enemy character and determines a temporary destination before actually moving it (S11). The enemy characters are not limited to one by one, and the object control unit 31 may collectively determine the temporary destinations of a plurality of enemy characters.

[0094] When the enemy character moves to the temporary destination, the density control unit 34 calculates the density for each area 220 of the navigation mesh (S12).

[0095] The density control unit 34 determines whether or not there are N or more areas where the density is equal to or higher than the threshold value (S13). The value of N can vary depending on the size of the navigation mesh, the required game worldview, etc. Also, if the destination of the enemy character cannot be determined for a certain number of times or more, the density control unit 34 may increase N. This can suppress the continuation of the state where the position of the enemy character cannot be determined. The establishment of Yes in step S13 is an example of a predetermined condition.

[0096] If the determination in step S13 is Yes, the density control unit 34 notifies the object control unit 31 of the movement restriction and requests a different destination (S14).

[0097] In FIG. 13, the density is calculated when each enemy character is moved one by one. However, at the same time, all enemy characters near the PC4 may be moved to calculate the density. If the number of directions in which the enemy character can move is 8, there are 8 to the power of the "number of enemy characters" movement patterns. The density control unit 34 counts the number of areas where the density is equal to or higher than the threshold value in all movement patterns, and moves each enemy character in the movement pattern with the smallest such number. If the number of all movement patterns is large, the movement directions may be limited to 4 or the like.

[0098] <<Movement restriction of enemy characters based on collision detection by ray casting>> FIG. 14 is a diagram for explaining a method of determining whether or not there is another enemy character at the movement destination of an enemy character. The object control unit 31 notifies the density control unit 34 of a temporary movement destination for each enemy character. When it is notified that the enemy character 250 moves to the mesh 240, the density control unit 34 irradiates a ray cast in the movement direction (mesh 240) from the current position. Since there is no enemy character in the mesh 240, the density control unit 34 notifies the object control unit 31 that the movement is possible.

[0099] When it is notified that the enemy character 250 moves to the mesh 230, the density control unit 34 irradiates a raycast in the moving direction (mesh 230) from the current position. Since there is an enemy character 260 in the mesh 230, a collision between the enemy character 250 and the enemy character 260 is predicted. The density control unit 34 notifies the object control unit 31 of the movement restriction. The object control unit 31 adjusts to another destination and repeats the same process.

[0100] According to such processing, since contact between enemy characters does not occur, it is possible to suppress unintended movement of enemy characters due to contact between enemy characters.

[0101] Note that the prediction of a collision with another enemy character by raycast is the case where the shortest distance between the axis of the cylinder arranged around another enemy character and the raycast (straight line) is shorter than the radius of the cylinder, and the distance from the axis of the cylinder of one enemy character to the axis of the cylinder of another enemy character is within the threshold value (for example, the size of one mesh that the enemy character moves).

[0102] FIG. 15 is an example of a flowchart showing a procedure in which the density control unit 34 does not cause density of enemy characters based on collision determination with an enemy character by raycast.

[0103] The object control unit 31 takes out one enemy character and determines a temporary destination before actually moving it (S21). The object control unit 31 may collectively determine the temporary destinations of a plurality of enemy characters, not limited to one by one.

[0104] The density control unit 34 irradiates a raycast in the moving direction of the enemy character (S22).

[0105] The density control unit 34 determines whether there is another enemy character at the destination (S23). The establishment of Yes in step S23 is an example of a predetermined condition.

[0106] If the determination in step S23 is Yes, the density control unit 34 notifies the object control unit 31 of the movement restriction and requests a different destination (S24). If the destination of the enemy character cannot be determined for a certain number of times or more, the density control unit 34 may keep the movement restricted. In this case, the density control unit 34 records the number of times the movement has been restricted for each enemy character, and for an enemy character whose count is equal to or greater than the threshold, even if there is another enemy character at the destination, the movement is permitted. By doing so, it is possible to suppress the continuation of the state where the destination position cannot be determined, and furthermore, it is possible to prevent the occurrence of enemy characters that do not move.

[0107] <Main effects> As described above, in the information processing apparatus of the present embodiment, since the density control unit 34 restricts the movement of the enemy characters, it is possible to suppress the occurrence of density. In addition, it is possible to suppress unintended movements (for example, high-speed vibrations) that are likely to occur when enemy characters with the same collision priority repeatedly come into contact. Note that Examples 1 and 2 can be applied in combination as appropriate.

[0108] <Other application examples, etc.> Note that the present invention is not limited to the above-described embodiments, and various modifications are possible without departing from the spirit and technical idea thereof.

[0109] For example, in the present embodiment, a method for avoiding the density of enemy characters on a two-dimensional plane has been mainly described, but the same applies to a three-dimensional space. For example, when the PC is surrounded by enemy characters in the air, water, or underground, the priority of the position of each enemy character can be determined according to the three-dimensional distance from the PC.

[0110] Also, in the present embodiment, the density of enemy characters has been mainly described as an example, but it can also be applied when friendly characters, etc., are dense. The present embodiment is applicable to objects that can become dense by moving.

[0111] In addition, in this embodiment, an action game is mainly used as an example for explanation. However, in addition to this type of game, there are also shooting games, simulation games, racing games, adventure games, role-playing games, and sports games, as well as games that incorporate multiple elements of these. This embodiment can be applied regardless of the genre of the game.

[0112] In addition, the configuration example in FIG. 5 and the like is divided according to the main functions in order to facilitate the understanding of the processing by the information processing apparatus 3. The present invention is not limited by the way of dividing the processing units or their names. The processing of the information processing apparatus 3 can be further divided into more processing units according to the processing content. Also, one processing unit can be divided so as to include more processing.

[0113] In addition, in this embodiment, part or all of the processing assumed to be performed by the game program may be performed by a hardware processing circuit such as an ASIC (Application Specific Integrated Circuit), a DSP (digital signal processor), or an FPGA (field programmable gate array).

Explanation of Reference Numerals

[0114] 1 Game system 3 Information processing apparatus 5 Game controller 7 Display device

Claims

1. An information processing apparatus, an object control unit that moves a plurality of objects in a virtual space, a contact determination unit that determines contact of the plurality of objects moved by the object control unit, a density control unit that performs control to change the density of the plurality of objects determined to be in contact by the contact determination unit when a predetermined condition is satisfied, functioning as, the density control unit, when the predetermined condition is satisfied, performs density suppression control on at least one of the plurality of objects, as the density suppression control, the superiority used to determine which object's position is prioritized when the first object and the second object come into contact is determined based on a first distance between the reference point and the first object and a second distance between the reference point and the second object, the object control unit, A game program that preferentially determines the position of the object determined to be superior over the object determined to be inferior.

2. A priority for determining which object's position is prioritized when the plurality of objects come into contact with other objects is set for the plurality of objects, The game program according to claim 1, wherein the predetermined condition is a case where the priorities of the first object and the second object that have come into contact are the same and the first distance and the second distance are different.

3. When the predetermined condition is satisfied, the density control unit, as the density suppression control, preferentially determines the position of the object closer to the reference point over the object farther from the reference point. The game program according to claim 2.

4. When the predetermined condition is satisfied, the density control unit, as the density suppression control, moves the object farther from the reference point so as to be even farther from the reference point. The game program according to claim 2 or 3.

5. When there are two reference points, the density control unit, as the density suppression control, preferentially determines the position of the object closer to the line segment connecting the two reference points over the object farther from the line segment. The game program according to any one of claims 1 to 4.

6. An information processing apparatus, an object control unit that moves a plurality of objects in a virtual space, A contact determination unit that determines contact of the plurality of objects moved by the object control unit; A density control unit that performs control to change the density of the plurality of objects determined to be in contact by the contact determination unit when a predetermined condition is satisfied; Function as; The density control unit; When the predetermined condition is satisfied, perform density suppression control on at least one of the plurality of objects; The object control unit determines a temporary movement destination of the object; The density control unit calculates the density of objects in a plurality of areas including the object when the object moves to the temporary movement destination; As the predetermined condition, when there are N or more areas where the density is equal to or higher than the threshold value; The density control unit is a game program that restricts the movement of the object to the temporary movement destination as the density suppression control.

7. An information processing apparatus, An object control unit that moves a plurality of objects in a virtual space; A contact determination unit that determines contact of the plurality of objects moved by the object control unit; A density control unit that performs control to change the density of the plurality of objects determined to be in contact by the contact determination unit when a predetermined condition is satisfied; Function as; The density control unit; When the predetermined condition is satisfied, perform density suppression control on at least one of the plurality of objects; The object control unit determines a temporary movement destination of the object; As the predetermined condition, when there is another object at the temporary movement destination; The density control unit is a game program that restricts the movement of the object to the temporary movement destination as the density suppression control.

8. An information processing apparatus that executes a game program, An object control unit that moves a plurality of objects in a virtual space; A contact determination unit that determines contact of the plurality of objects moved by the object control unit; A density control unit that performs control to change the density of the plurality of objects determined to be in contact by the contact determination unit when a predetermined condition is satisfied; Having; The density control unit; When the predetermined condition is satisfied, perform density suppression control on at least one of the plurality of objects; As the density suppression control, the superiority used for determining which object's position takes precedence when a first object and a second object come into contact is determined based on a first distance between a reference point and the first object and a second distance between the reference point and the second object. The object control unit An information processing apparatus that preferentially determines the position of an object determined to be superior over the position of an object determined to be inferior.

9. A step in which an object control unit moves a plurality of objects within a virtual space; A step in which a contact determination unit determines the contact of the plurality of objects moved by the object control unit; A step in which a density control unit performs control to change the density of the plurality of objects determined to be in contact by the contact determination unit when a predetermined condition is satisfied; comprising The step of performing control to change the density When the predetermined condition is satisfied, performs density suppression control on at least one of the plurality of objects. As the density suppression control, the superiority used for determining which object's position takes precedence when a first object and a second object come into contact is determined based on a first distance between a reference point and the first object and a second distance between the reference point and the second object. The step of moving the plurality of objects within a virtual space An object control method for a game program that preferentially determines the position of an object determined to be superior over the position of an object determined to be inferior.

Citation Information

Patent Citations

  • Image generating device and information memory medium

    JP1999137843A

  • Method and system for on-screen navigation of digital characters or the like

    JP2007529796A

  • Program, information storage medium and game device

    JP2010068872A

  • Game device, game device control method, and program

    JP2010075417A

  • Program, image processing method, and image processing apparatus

    JP2019118687A