Image generation program, recording medium, and image generation method
The image generation program reduces computational load by switching between control point groups with varying numbers of control points, enabling efficient and natural object deformation.
Patent Information
- Application Number
- JP2021181982
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-11-08
- Publication Date
- 2025-10-31
- Estimated Expiration
- 2041-11-08
AI Technical Summary
Conventional image generation methods for deforming objects require complex calculations, leading to a high computational load.
An image generation program that sets multiple control point groups with varying numbers of control points, switches simulation targets between these groups based on predetermined conditions, and generates images using these points to reduce calculation load.
Reduces computational load while maintaining natural object deformation, allowing for efficient image generation without user discomfort.
Smart Images

Figure 0007763074000001 
Figure 0007763074000002 
Figure 0007763074000003
Abstract
Description
[Technical Field]
[0001] The present invention relates to an image generating program, a recording medium, and an image generating method. [Background technology]
[0002] A technique for generating an image in which a character object in a virtual space is deformed is known. This technique changes the positions of the secondary bones in a coordinate system fixed to the primary bones, calculates the positions of control points in a coordinate system fixed to the virtual space based on the amount of change in the positions of the secondary bones, and generates an image in which the shape of the skin is determined based on the calculated positions of the control points, thereby deforming the character object in the virtual space (see, for example, Patent Document 1). [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Patent No. 4579964 Summary of the Invention [Problem to be solved by the invention]
[0004] The above-described conventional technology requires complex calculations to generate an image in which the object is deformed, which poses a problem of a large calculation load.
[0005] The present invention has been made in consideration of these problems, and aims to provide an image generation program, a recording medium, and an image generation method that are capable of generating images in which objects deform while reducing the computational load on an information processing device. [Means for solving the problem]
[0006] In order to achieve the above-mentioned object, the image generation program of the present invention causes an information processing device to function as a control point group setting processing unit that sets multiple control point groups for an object, each of which has a different number of control points arranged thereon; a first target position calculation processing unit that calculates a first target position of each control point that constitutes the control point group by executing a predetermined simulation process to transform the object into one of the multiple control point groups; a control point group switching processing unit that switches the target for executing the predetermined simulation process to one of the multiple control point groups when a predetermined switching condition is satisfied; and an image generation processing unit that generates an image of the object based on the first target positions of the control points.
[0007] In order to achieve the above object, a recording medium of the present invention is a recording medium that stores the image generation program and is readable by an information processing device.
[0008] In order to achieve the above-mentioned object, the image generation method of the present invention is an image generation method executed by an information processing device, and includes the steps of setting a plurality of control point groups for an object, each of which has a different number of control points arranged thereon; calculating a first target position of each control point constituting the control point group by executing a predetermined simulation process for transforming the object into one of the plurality of control point groups; switching the target for executing the predetermined simulation process to one of the plurality of control point groups when a predetermined switching condition is satisfied; and generating an image of the object based on the first target positions of the control points. [Effects of the Invention]
[0009] According to the image generation program of the present invention, it is possible to generate an image in which an object is deformed while reducing the calculation load. [Brief explanation of the drawings]
[0010] [Figure 1]1 is a system configuration diagram illustrating an example of the overall configuration of a game system according to an embodiment. [Figure 2] FIG. 2 is a block diagram illustrating an example of a functional configuration of an information processing device. [Figure 3] FIG. 10 is a front view of a character showing an example of a first control point group set by a control point group setting processing unit. [Figure 4] FIG. 10 is a front view of a character showing an example of a second control point group set by the control point group setting processing unit. [Figure 5] 10 is an explanatory diagram illustrating an example of array generation by a control point array generation processing unit. FIG. [Figure 6] FIG. 1 is a diagram showing an example of a plurality of rectangles that form a three-dimensional object that resembles a square piece of cloth, and a diagram showing an example of a mechanical model assumed when performing calculations required to draw the three-dimensional object. [Figure 7] 10 is an explanatory diagram illustrating an example of a method for calculating a second target position by a second target position calculation processing unit. FIG. [Figure 8] 10A and 10B are diagrams illustrating an example of interpolation of a target position by a target position interpolation processing unit. [Figure 9] 10 is a flowchart illustrating an example of a processing procedure executed by an information processing device. [Figure 10] FIG. 10 is an explanatory diagram showing an example of array generation by a control point array generation processing unit in a modified example in which three or more types of control point groups are set. [Figure 11] FIG. 2 is a block diagram illustrating an example of a hardware configuration of an information processing device. DETAILED DESCRIPTION OF THE INVENTION
[0011] Hereinafter, embodiments of the present invention will be described with reference to the drawings. Note that in the embodiments described below, the present invention will be described as being applied to a game, that is, a game is provided by executing an image generation program and an image generation method of the present invention by an information processing device, but the application is not limited to games.
[0012] <1. Overall structure of the game system> An example of the overall configuration of a game system 1 according to an embodiment will be described with reference to Fig. 1. As shown in Fig. 1, the game system 1 includes an information processing device 3, a game controller 5, and a display device 7. The game controller 5 and the display device 7 are connected to the information processing device 3 so as to be able to communicate with each other via wire or wirelessly.
[0013] The information processing device 3 is, for example, a stationary game console. However, it is not limited to this and may be, for example, a portable game console that is integrated with an input unit, a display unit, etc. In addition to game consoles, it may also be, for example, a computer manufactured and sold, such as a server computer, a desktop computer, a notebook computer, a tablet computer, etc., or a telephone manufactured and sold, such as a smartphone, a mobile phone, a phablet, etc.
[0014] A player performs various operation inputs using a game controller 5. In the example shown in Fig. 1, the game controller 5 has, for example, a cross key 9, a plurality of buttons 10, a joystick 11, a touchpad 12, and the like.
[0015] <2. Functional configuration of information processing device> An example of the functional configuration of the information processing device 3 will be described with reference to FIG. 2 and FIGS.
[0016] As shown in FIG. 2, the information processing device 3 has a control point group setting processing unit 13, a control point array generation processing unit 15, a first target position calculation processing unit 17, a control point group switching processing unit 19, a second target position calculation processing unit 21, a target position interpolation processing unit 23, a control point update processing unit 25, and an image generation processing unit 27.
[0017] The control point group setting processor 13 sets a plurality of control point groups for an object, each of which has an arrangement of control points with a different number of control points. The type of "object" is not particularly limited as long as it is a flexible object that is depicted to deform. In this embodiment, a cloth object will be used as an example. For example, as shown in FIG. 3, in a kimono object 31 worn by a character 29, the cloth objects are the sleeves 31a (an example of an object) and the hem 31b (an example of an object) that is the portion below the obi. The cloth objects of these parts are processed to deform like cloth in response to the body movements of the character 29, etc.
[0018] "Multiple control point groups in which different numbers of control points are arranged" refers to, for example, two types of control point groups, one with a large number of control points and one with a small number of control points, when the number of control points is set to two levels. Note that the number of control points may be set to three or more levels, resulting in three or more types of control point groups. Each of the multiple control point groups is processed as an independent control point group. The multiple control point groups may be positioned at the same height relative to the surface of the object (height in the normal direction of the object surface), or may be positioned so that each control point group is at a different height.
[0019] 3 and 4 show examples of control point groups set by the control point group setting processor 13. In the example shown in FIG. 3, a first control point group 33 is set in the sleeves 31a and hem 31b of a kimono object 31. In the first control point group 33, for example, N first control points 35 (an example of a first number) are arranged in a grid pattern. In the example shown in FIG. 4, a second control point group 37 is set in the sleeves 31a and hem 31b of the kimono object 31. In the second control point group 37, a number of second control points 39 less than N (for example, N / 4, an example of a second number) are arranged in a grid pattern. The arrangement of the second control point group 37 is generated, for example, by thinning out the arrangement of the first control point group 33 so that every other control point is arranged.
[0020] Returning to FIG. 2, the control point array generation processing unit 15 generates an array of second control points 39 in the second control point group 37 by thinning out the array of first control points 35 in the first control point group 33 at predetermined intervals.
[0021] Fig. 5 shows an example of array generation by the control point array generation processing unit 15. In the example shown in Fig. 5, the grid-like array of first control points 35 in the first control point group 33 is thinned out to an array of every other control point, thereby generating an array of second control points 39 in the second control point group 37. In this case, the number of second control points 39 (e.g., 16) is 1 / 4 of the number of first control points 35 (e.g., 64).
[0022] Returning to Figure 2, the first target position calculation processing unit 17 calculates the first target positions of each of the control points 35, 39 that make up the control point groups 33, 37 by executing a predetermined simulation process to deform the object into one of the multiple control point groups 33, 37.
[0023] The "predetermined simulation process" is not particularly limited as long as it is a process capable of simulating the deformation of an object, but a so-called cloth simulation process capable of simulating the deformation of a cloth object is preferable. Specifically, a simulation process that performs mechanical calculations using an elastic spring model may be used. FIG. 6(a) is an explanatory diagram showing an example of a plurality of rectangles that form a three-dimensional object that resembles, for example, a square piece of cloth, and FIG. 6(b) is an explanatory diagram showing an example of a mechanical model that is assumed when performing calculations required to render the three-dimensional object shown in FIG. 6(a).
[0024] When performing the calculations required to render the three-dimensional object shown in Figure 6(a), a spring model is assumed in which the vertices of each rectangle are mass points, adjacent mass points are connected by springs, and each mass point receives force from adjacent mass points (two or three adjacent mass points for mass points at the edge of a piece of cloth) via these springs, as shown in Figure 6(b). With this spring model, for example, when rendering the movement of pulling the edge of a piece of cloth, it is possible to calculate the force acting on the mass point corresponding to the edge of the cloth, the force acting on the mass point adjacent to that mass point, and the force acting on the mass point adjacent to that mass point, making it possible to calculate the change in shape of a three-dimensional object that resembles cloth.
[0025] Additionally, position-based physical simulation (PBD: Position Based Dynamics, paper "Position Based Dynamics", http: / / matthias-mueller-fischer.ch / publications / posBasedDyn.pdf) can be used as a cloth simulation process. PBD is a method of performing physics calculations without velocity information, using the current position, the previous position, and the frame update time Δt (for example, 16.67 ms at 60 fps).
[0026] In addition to the above simulation processes, various other simulation processes can be adopted as long as they are methods that can simulate cloth-like movement. For convenience of explanation, in this specification, the predetermined simulation process executed by first target position calculation processor 17 will also be referred to as "cloth simulation," and the first target positions of control points 35, 39 calculated by first target position calculation processor 17 will also be referred to as "target positions by cloth simulation."
[0027] Returning to FIG. 2, when a predetermined switching condition is met, the control point group switching processor 19 switches the object for which cloth simulation processing is to be performed to one of the plurality of control point groups 33, 37. The "predetermined switching condition" is typically the distance between the viewpoint (virtual camera) and the cloth object. For example, when the distance between the viewpoint and the character 29 is closer than a predetermined threshold, the control point group switching processor 19 switches the object for which cloth simulation processing is to be performed to the first control point group 33, which has a relatively large number of control points. On the other hand, when the distance between the viewpoint and the character 29 is farther than the predetermined threshold, the control point group switching processor 19 switches the object for which cloth simulation processing is to be performed to the second control point group 37, which has a relatively small number of control points.
[0028] Note that the importance of the object may be taken into consideration when switching between the control point groups 33 and 37. For example, if the importance of character 29 is high, such as when character 29 is a player character controlled by a player, then the control point groups 33 and 37 may always be set to the first control point group 33 regardless of the distance between the viewpoint and character 29. On the other hand, if the importance of character 29 is low, such as when character 29 is a non-player character automatically controlled by a game program, then the control point groups 33 and 37 may be switched according to the distance between the viewpoint and character 29 as described above.
[0029] In addition to the above, when character 29 launches an attack, activates a skill, or communicates with the player or another character, and when detailed movements are required for the presentation, the control points may be switched to first control point group 33, which has a relatively large number of control points, and when detailed movements are not required for the presentation, the control points may be switched to second control point group 37, which has a relatively small number of control points. In addition, various contents can be set for the "predetermined switching condition" depending on the specifications of the game, etc.
[0030] Note that the switching of the control point groups 33 and 37 by the control point group switching processing unit 19 is merely a switching of the target for which cloth simulation processing is performed. The image of the object itself is generated by the image generation processing unit 27, which will be described later, based on the first control point group 33 (positions of each first control point 35) which has the largest number of control points.
[0031] When the target for executing cloth simulation processing is switched from the first control point group 33 to the second control point group 37, the second target position calculation processor 21 calculates the second target position of each first control point 35 of the first control point group 33 based on the target position of each second control point 39 of the second control point group 37 determined by cloth simulation. Specifically, the second target position calculation processor 21 calculates (estimates) the second target position of each first control point 35 based on information indicating the degree of association of the multiple second control points 39 associated with the first control point 35 and the target position of each associated second control point 39 determined by cloth simulation. For ease of explanation, the second target position of the first control point 35 calculated by the second target position calculation processor 21 will also be referred to as the "estimated target position" in this specification.
[0032] FIG. 7 shows an example of a method for calculating the second target position by the second target position calculation processor 21. In FIG. 7, each of the first control points 35 constituting the first control point group 33 is indicated by a solid line, and each of the second control points 39 constituting the second control point group 37 is indicated by a dashed line. Weight information is set for each of the first control points 35. The weight information includes information representing the three associated second control points 39 and information (weight values) representing the degree of association between each of the three second control points 39. In the example shown in FIG. 7, the first control point 35 (indicated by a thick line in the figure) to be processed is associated with three second control points 39 (indicated by a thick line in the figure) that are close to the first control point 35, and a weight value is set for each of the second control points 39. The weight value indicates where the initial position of the first control point 35 is located within a triangle 41 connecting the initial positions of the three second control points 39. For example, if the weight values of the three second control points 39 are the same value (1 / 3), the first control point 35 will be located at the center of gravity of the triangle 41. The second target position calculation processing unit 21 calculates an estimated target position of the first control point 35 to be processed, based on the target positions of the three second control points 39 determined by cloth simulation and the weight value.
[0033] Note that the above is an example in which the first control point group 33 and the second control point group 37 are arranged at the same height, but if they are at different heights, a correction value for the height may be included in the weight information. Also, the above calculation method is just one example, and methods other than the above may be used as long as it is possible to identify the position of one first control point 35 based on the positions of multiple (may be other than three) second control points 39. Note that the position of each control point is specified by coordinates in a local coordinate system set for a reference part (e.g., joint, bone, etc.) of the body object of the character 29.
[0034] Returning to FIG. 2, when the target for executing cloth simulation processing is switched between the first control point group 33 and the second control point group 37, the target position interpolation processor 23 interpolates the difference between the target position obtained by cloth simulation and the estimated target position. Specifically, the target position interpolation processor 23 interpolates the difference so as to gradually change the target position before switching toward the target position after switching within a predetermined time from the point in time when the target for executing cloth simulation processing is switched to the first control point group 33 or the second control point group 37. The "predetermined time" is set to an appropriate value (for example, about one second) so as not to cause discomfort to the user.
[0035] 8 shows an example of target position interpolation by the target position interpolation processor 23. For example, when the target for executing cloth simulation processing is switched from the first control point group 33 to the second control point group 37, the target positions of the first control points 35 actually used to display the cloth object will switch from the target positions determined by cloth simulation to estimated target positions. Conversely, when the target for executing cloth simulation processing is switched from the second control point group 37 to the first control point group 33, the target positions of the first control points 35 actually used to display the cloth object will switch from the estimated target positions to the target positions determined by cloth simulation. If a difference occurs between the target positions before and after the switch at this time, the movement of the cloth object will become discontinuous, potentially resulting in an unnatural appearance.
[0036] 8, the target position interpolation processing unit 23 interpolates the target position, for example, every 0.1 seconds, so that the target position before switching changes (increases or decreases) in proportion to time from the timing (time 0) when the control point group is switched to the target position after switching, for example, within 1 second. This makes it possible to express the movement of the cloth object naturally.
[0037] Returning to FIG. 2, control point update processor 25 updates the positions of each of multiple first control points 35 so that they approach the target position. Specifically, when the target for cloth simulation processing is switched to first control point group 33, control point update processor 25 updates the position of each first control point 35 so that they approach the target position calculated by cloth simulation calculated by first target position calculation processor 17. When the target for cloth simulation processing is switched to second control point group 37, control point update processor 25 updates the position of each first control point 35 so that they approach the estimated target position calculated by second target position calculation processor 21. When target position interpolation processor 23 interpolates the target position, control point update processor 25 updates the position of each first control point 35 so that they approach the interpolated target position.
[0038] The image generation processing unit 27 generates an image of the cloth object based on the positions of the first control points 35 updated by the control point update processing unit 25. Specifically, when the target for executing cloth simulation processing is switched to the first control point group 33, the image generation processing unit 27 generates an image of the cloth object based on the positions of the first control points 35 updated by the control point update processing unit 25 so as to approach the target positions of the cloth simulation. On the other hand, when the target for executing cloth simulation processing is switched to the second control point group 37, the image of the cloth object is generated based on the positions of the first control points 35 updated by the control point update processing unit 25 so as to approach the estimated target positions.
[0039] The processing in each processing unit described above is not limited to these examples of division of processing, and may be performed by a smaller number of processing units (for example, one processing unit), or by further subdivided processing units. The functions of each processing unit described above are implemented by a game program executed by CPU 101 (see FIG. 11 described below), but some of them may be implemented by actual devices such as dedicated integrated circuits such as ASICs and FPGAs, or other electrical circuits.
[0040] <3. Processing procedure executed by the information processing device> Next, an example of a processing procedure executed by the information processing device 3 will be described with reference to Fig. 9. Note that, at the start of this flowchart, it is assumed that the control point array generation processing unit 15 has generated an array of the second control point group 37 based on the array of the first control point group 33, and that the control point group setting processing unit 13 has set the first control point group 33 and the second control point group 37 for the cloth object.
[0041] In step S5, the information processing device 3 acquires information for determining the control point group switching condition by the control point group switching processing unit 19. For example, when the determination is based on the distance between the viewpoint and the character 29, information on the distance is acquired.
[0042] In step S10, the information processing device 3 determines, via the control point group switching processing unit 19, based on the information acquired in step S5, whether or not the switching condition for the first control point group 33 is satisfied. For example, if the distance between the viewpoint and the character 29 is closer than a predetermined threshold, it is determined that the switching condition is satisfied (step S10: YES), and the process proceeds to the next step S15. On the other hand, if the distance between the viewpoint and the character 29 is farther than the predetermined threshold, it is determined that the switching condition is not satisfied (step S10: NO), and the process proceeds to step S35, which will be described later.
[0043] In step S15, the information processing device 3 causes the control point group switching processing unit 19 to set (switch) the target for executing the cloth simulation process to the first control point group 33.
[0044] In step S20, the information processing device 3 calculates the target position by cloth simulation of each of the first control points 35 that make up the first control point group 33 by performing cloth simulation processing on the first control point group 33 using the first target position calculation processing unit 17.
[0045] In step S25, the information processing device 3 determines whether or not there has been a switch to the first control point group 33. That is, in step S10, the state in which the first control point group 33 was set was not maintained, but whether or not there has been a switch from the state in which the second control point group 37 was set to the first control point group 33. If there has been a switch to the first control point group 33 (step S25: YES), the process proceeds to the next step S30. On the other hand, if there has not been a switch to the first control point group 33 (step S25: NO), the process proceeds to step S60, which will be described later.
[0046] In step S30, the information processing device 3 causes the target position interpolation processing unit 23 to interpolate the difference between the estimated target positions of the first control points 35 calculated by the second target position calculation processing unit 21 before switching to the first control point group 33 (when the second control point group 37 is set) and the target positions of the first control points 35 by cloth simulation calculated in step S20 after switching to the first control point group 33. Thereafter, the process proceeds to step S60, which will be described later.
[0047] On the other hand, in step S35, the information processing device 3 causes the control point group switching processing unit 19 to set (switch) the target for executing the cloth simulation process to the second control point group 37.
[0048] In step S40, the information processing device 3 calculates the target position by cloth simulation of each second control point 39 that constitutes the second control point group 37 by performing cloth simulation processing on the second control point group 37 using the first target position calculation processing unit 17.
[0049] In step S45, the information processing device 3 calculates, using the second target position calculation processing unit 21, the estimated target position of each first control point 35 of the first control point group 33 based on the target position calculated by cloth simulation for each second control point 39 of the second control point group 37 in step S40 above and the weight information set for each first control point 35.
[0050] In step S50, the information processing device 3 determines whether or not there has been a switch to the second control point group 37. That is, in step S10, the state in which the second control point group 37 was set was not maintained, but whether or not there has been a switch from the state in which the first control point group 33 was set to the second control point group 37. If there has been a switch to the second control point group 37 (step S50: YES), the process proceeds to the next step S55. On the other hand, if there has not been a switch to the second control point group 37 (step S50: NO), the process proceeds to step S60, which will be described later.
[0051] In step S55, the information processing device 3 causes the target position interpolation processing unit 23 to interpolate the difference between the target positions of the first control points 35 by the cloth simulation calculated by the first target position calculation processing unit 17 before switching to the second control point group 37 (when the first control point group 33 is set) and the estimated target positions of the first control points 35 calculated in step S45 after switching to the second control point group 37. Thereafter, the process proceeds to step S60, which will be described later.
[0052] In step S60, the information processing device 3 causes the control point update processing unit 25 to update the position of each of the first control points 35 constituting the first control point group 33 so that the positions approach the target positions determined by the cloth simulation calculated in step S20 or the estimated target positions calculated in step S45. If the target positions have been interpolated in step S30 or step S55, the positions of the first control points 35 are updated so that the positions approach the interpolated target positions.
[0053] In step S65, the information processing device 3 causes the image generation processing unit 27 to generate an image of the cloth object based on the position of the first control point 35 updated in step S60.
[0054] In step S70, the information processing device 3 determines whether or not to end image generation of the cloth object. If image generation is to continue (step S70: NO), the process returns to the initial step S5 and repeats the same procedure. On the other hand, if image generation is to end (step S70: YES), the process ends this flowchart.
[0055] The above-described processing procedure is an example, and at least some of the procedures may be deleted or changed, or other procedures may be added. Furthermore, the order of at least some of the procedures may be changed, or multiple procedures may be combined into a single procedure.
[0056] <4. Effects of the embodiment> As described above, the game program of this embodiment causes the information processing device 3 to function as: a control point group setting processing unit 13 that sets, for a cloth object, multiple control point groups 33, 37, each of which is an arrangement of control points 35, 39 with different numbers of control points; a first target position calculation processing unit 17 that calculates the target position of the cloth simulation for each of the control points 35, 39 that make up the control point groups 33, 37 by executing cloth simulation processing to transform the cloth object into one of the multiple control point groups 33, 37; a control point group switching processing unit 19 that switches the target for executing the cloth simulation processing to one of the multiple control point groups 33, 37 when a predetermined switching condition is satisfied; and an image generation processing unit 27 that generates an image of the cloth object based on the target position of the control points 35, 39 based on cloth simulation.
[0057] In this embodiment, multiple control point groups 33, 37 are set for a cloth object, with different numbers of control points 35, 39 arranged between them, and when a predetermined switching condition is met, the target for executing the cloth simulation process to deform the cloth object is switched to one of the multiple control point groups 33, 37, and the cloth simulation process is executed on the switched control point group 33 or control point group 37, thereby calculating the target position by cloth simulation of each control point 35 or each control point 39 that constitutes the control point group 33 or control point group 37, respectively.
[0058] This makes it possible to switch to control point group 33 with a larger number of control points when, for example, the cloth object is close to the viewpoint (virtual camera) or is a cloth object of high importance, and to switch to control point group 37 with a smaller number of control points when the cloth object is far from the viewpoint or is a cloth object of low importance. In this way, so-called LOD (Level Of Detail), a method of increasing or decreasing the resolution of an object image depending on the level of demand, can be applied to cloth simulation processing.
[0059] As a result, it is possible to generate an image in which an object deforms while reducing the calculation load required for the simulation process compared to when simulation processing is performed for a uniform number of control points. Furthermore, as a switching condition, it is possible to switch to a control point group 37 with a smaller number of control points when, for example, the distance from the viewpoint to the cloth object is far or the importance of the cloth object is low. This makes it possible to reduce the calculation load without causing the user to feel uncomfortable.
[0060] In this embodiment, the multiple control point groups 33, 37 may include a first control point group 33 in which a number N of first control points 35 are arranged, and a second control point group 37 in which a number (for example, N / 4) of second control points 39 are arranged, which is less than the number N, and the game program may further cause the information processing device 3 to function as a second target position calculation processing unit 21 that, when the target for performing cloth simulation processing is switched to the second control point group 37, calculates an estimated target position of each first control point 35 of the first control point group 33 based on the target position by cloth simulation of each second control point 39 of the second control point group 37.In this case, the image generation processing unit 27 may generate an image of the cloth object based on the target position by cloth simulation of each first control point 35 when the target for performing cloth simulation processing is switched to the first control point group 33, and based on the estimated target position of each first control point 35 when the target for performing cloth simulation processing is switched to the second control point group 37.
[0061] Typically, elements used in simulation processing require specifications that link them to some kind of element for updating image information (e.g., mesh information) of the object actually displayed on the screen. In this embodiment, when performing cloth simulation processing on second control point group 37, which has a small number of control points, the target positions of each first control point 35 of first control point group 33 are estimated from the simulation results of second control point group 37 (target positions of second control points 39 by cloth simulation), thereby updating the positions of first control point group 33, which are equivalent to the control point group when LOD is not applied. This reduces the calculation load and makes it possible to naturally express the movement of cloth objects.
[0062] In addition, in this embodiment, the second target position calculation processing unit 21 may calculate the estimated target position of each first control point 35 based on weight information representing the degree of association of multiple second control points 39 associated with the first control point 35 and the target position of each associated second control point 39 determined by cloth simulation.
[0063] In this case, the target position of the first control point 35 can be estimated by simple calculation based on the weight information set for the first control point 35 to be processed and the target position of each associated second control point 39 by cloth simulation. This makes it possible to update the position of each first control point 35 in the first control point group 33 with minimal calculation cost based on the cloth simulation results of the second control point group 37.
[0064] In addition, in this embodiment, the game program may also cause the information processing device 3 to function as a target position interpolation processing unit 23 that interpolates the difference between the target position obtained by cloth simulation and the estimated target position when switching the target for executing cloth simulation processing between the first control point group 33 and the second control point group 37.
[0065] When switching the target for cloth simulation processing between the first control point group 33 and the second control point group 37, the difference between the target position determined by the cloth simulation and the estimated target position may cause the movement of the cloth object to become discontinuous, resulting in an unnatural appearance. In this embodiment, the difference between the target position determined by the cloth simulation and the estimated target position is interpolated when switching between the control point groups 33 and 37, so the movement of the cloth object can be expressed naturally.
[0066] In addition, in this embodiment, the target position interpolation processing unit 23 may interpolate the difference so as to gradually change the target position before switching toward the target position after switching within a predetermined time from the point at which the target for executing the cloth simulation processing is switched to the first control point group 33 or the second control point group 37.
[0067] In this case, discontinuity in the movement of the cloth object can be prevented, and the movement of the cloth object can be expressed more naturally.
[0068] In this embodiment, the first control point group 33 may be configured by arranging N first control points 35 in a grid pattern, and the second control point group 37 may be configured by arranging fewer than N second control points 39 in a grid pattern, in which case the game program may cause the information processing device 3 to further function as a control point array generation processing unit 15 that generates an array of second control points 39 in the second control point group 37 by thinning out the array of first control points 35 in the first control point group 33 at a predetermined interval.
[0069] In this case, the arrangement of the second control point group 37, which has fewer control points than the first control point group 33, can be automatically and easily generated based on the arrangement of the first control point group 33. For example, by thinning out the grid-like control points so that every other control point is arranged, an arrangement with 1 / 4 the number of points can be automatically generated.
[0070] <5. Modifications, etc.> The present invention is not limited to the above-described embodiment, and various modifications are possible within the scope of the spirit and technical concept of the present invention.
[0071] (5-1. When setting three or more types of control points) In the above embodiment, a case has been described in which two types of control point groups are set: first control point group 33 having a large number of control points and second control point group 37 having a small number of control points. However, three or more types of control point groups may be set. For example, in addition to the above-described first control point group 33 and second control point group 37, a third control point group 43 having an even smaller number of control points than second control point group 37 may be set.
[0072] Fig. 10 shows an example of the third control point group 43. In the example shown in Fig. 10, the control point array generation processing unit 15 thins out the grid-like array of the first control points 35 in the first control point group 33 so that every third control point is arranged, thereby generating the array of the third control points 45 in the third control point group 43. In this case, the number of third control points 45 (for example, 9) is 1 / 9 of the number of first control points 35 (for example, 81).
[0073] In this modified example, for example, the distance between the viewpoint and character 29 may be divided into three categories: long distance, medium distance, and short distance using two types of threshold values. Then, the control point group switching processor 19 may switch the target for executing cloth simulation processing to the first control point group 33 when the distance is short distance, to the second control point group 37 when the distance is medium distance, and to the third control point group 43 when the distance is long distance.
[0074] In this modification, weight information is set for each of the second control points 39 that make up the second control point group 37. The weight information includes, for example, information representing three associated third control points 45 and information (weight values) representing the degree of association between each of the three third control points 45. When the target for performing cloth simulation processing is switched to the third control point group 43, the second target position calculation processor 21 described above calculates the estimated target positions of the second control points 39 based on the target positions of the three third control points 45 determined by cloth simulation and the weight values. By performing this processing for all of the second control points 39, the estimated target positions of all of the second control points 39 are calculated.
[0075] Furthermore, similarly to the above-described embodiment, the second target position calculation processor 21 calculates the estimated target position of the first control point 35 to be processed based on the estimated target positions of the three second control points 39 associated with the first control point 35 to be processed and the weight values for each second control point 39. In this way, the target positions of each of the first control points 35 constituting the first control point group 33 can be estimated from the cloth simulation results for the third control point group 43. The other processing is similar to that of the above-described embodiment. By setting three or more types of control point groups in this way, more detailed control point group switching processing is possible.
[0076] Note that even when four or more types of control point groups are set, it is possible to estimate the target position of the first control point 35 in the same manner as described above. Furthermore, when a large number of control point groups are set, a control point group that does not execute cloth simulation processing (a control point group with zero control points) may be provided in addition to or instead of the control point group with the fewest number of control points. When this control point group is switched to, the cloth object is drawn in a fixed shape without deformation.
[0077] (5-2. Other) Although the above description has been given using an example in which the clothing worn by a character is Japanese clothing, the present invention may also be applied to cloth objects that make up Western clothing or other attire. Furthermore, the objects are not limited to the cloth that makes up clothing. For example, the above-described processing may be applied to flexible objects attached to a character, such as cloth equipment (headbands, bandanas, etc.) or cloth or paper items (pieces of cloth, scrolls, flags, etc.), or flexible objects that are part of the body, such as hair. In the case of objects such as hair, the "predetermined simulation processing" is preferably a so-called string simulation processing that can simulate the deformation of objects such as strings or ropes.
[0078] Furthermore, although the above description has been given of the case where the image generation program is a game program, the image generation program can also be applied to technical fields other than games, such as CG animation, computer simulation, and CAD.
[0079] Furthermore, in addition to what has already been described above, the methods according to the above-described embodiments and modifications may be appropriately combined and used. Although not specifically illustrated, the above-described embodiments and modifications may be implemented with various modifications within the scope of their spirit.
[0080] <6. Hardware configuration of information processing device> Next, an example of a hardware configuration of the information processing device 3 that realizes each processing unit implemented by a program executed by the CPU 101 and the like described above will be described with reference to FIG.
[0081] 11, the information processing device 3 includes, for example, a CPU 101, a ROM 103, a RAM 105, a GPU 106, a dedicated integrated circuit 107 constructed for a specific application, such as an ASIC or an FPGA, an input device 113, an output device 115, a recording device 117, a drive 119, a connection port 121, and a communication device 123. These components are connected to each other via a bus 109, an input / output interface 111, etc., so that signals can be transmitted between them.
[0082] The game program can be recorded in, for example, the ROM 103, the RAM 105, or a recording device 117 such as a hard disk.
[0083] The game program may also be temporarily or permanently (non-temporarily) recorded on a removable recording medium 125, such as a magnetic disk such as a flexible disk, various optical disks such as CDs, MO disks, and DVDs, or a semiconductor memory. Such recording medium 125 may also be provided as a so-called package software. In this case, the game program recorded on such recording medium 125 may be read by drive 119 and recorded on the recording device 117 via input / output interface 111, bus 109, etc.
[0084] The game program may also be stored, for example, on a download site, another computer, or another storage device (not shown). In this case, the game program is transferred via a network NW such as a LAN or the Internet, and the communication device 123 receives the program. The program received by the communication device 123 may then be recorded in the storage device 117 via the input / output interface 111, the bus 109, or the like.
[0085] The game program may also be recorded in, for example, an appropriate externally connected device 127. In this case, the game program may be transferred via an appropriate connection port 121 and recorded in the recording device 117 via the input / output interface 111, the bus 109, etc.
[0086] The CPU 101 then executes various processes in accordance with the programs recorded in the recording device 117, thereby realizing processes by the control point group setting processor 13, control point array generation processor 15, first target position calculation processor 17, control point group switching processor 19, second target position calculation processor 21, target position interpolation processor 23, control point update processor 25, image generation processor 27, etc. In this case, the CPU 101 may, for example, directly read out and execute the programs from the recording device 117, or may execute the programs after first loading them into RAM 105. Furthermore, when the CPU 101 receives a program via the communication device 123, drive 119, or connection port 121, for example, the CPU 101 may directly execute the received program without recording it in the recording device 117.
[0087] Furthermore, the CPU 101 may perform various processes based on signals and information input from an input device 113, such as a microphone, mouse, keyboard, etc. (not shown), including the game controller 5 described above, as needed.
[0088] The GPU 106 performs processing for image display, such as rendering processing, in response to instructions from the CPU 101 .
[0089] Then, the CPU 101 and the GPU 106 output the results of the above processing from an output device 115, which may include, for example, the above-mentioned display device 7. Furthermore, the CPU 101 and the GPU 106 may transmit the processing results via the communication device 123 or the connection port 121, as necessary, or may record the results in the recording device 117 or the recording medium 125. [Explanation of symbols]
[0090] 1. Game System 3. Information processing equipment 5. Game Controllers 7 Display device 13 Control point group setting processing section 15 Control point array generation processing unit 17 First target position calculation processing unit 19 Control point group switching processing unit 21 Second target position calculation processing unit 23 Target position interpolation processing unit 25 Control point update processing unit 27 Image generation processing section 29 characters 31 Kimono Objects 31a Sleeve (Object) 31b Hem (object) 33 First control point group 35 First control point 37 Second control point group 39 Second control point 43 Third control point group 45 Third control point 125 Recording Media
Claims
1. An information processing device a control point group setting processing unit that sets a plurality of control point groups for the object, including a first control point group in which a first number of first control points are arranged, and a second control point group in which a second number of second control points, the second number being smaller than the first number, are arranged; a first target position calculation processing unit that executes a predetermined simulation process for transforming the object into any one of the plurality of control point groups, thereby calculating a first target position of each control point that constitutes the control point group for which the predetermined simulation process has been executed; a control point group switching processing unit that switches a control point group that is a target for executing the predetermined simulation process from the first control point group to the second control point group when a predetermined switching condition is satisfied; an image generation processing unit that generates an image of the object based on the first target position of the control point; An image generation program to function as a.
2. The information processing device a second target position calculation processing unit that calculates second target positions of each first control point of the first control point group based on the first target positions of each second control point of the second control point group when the target for executing the predetermined simulation process is switched to the second control point group; It further functions as The image generation processing unit generating an image of the object based on the first target positions of the first control points when the target for executing the predetermined simulation process is switched to the first control point group, and based on the second target positions of the first control points when the target for executing the predetermined simulation process is switched to the second control point group; The image generating program according to claim 1 .
3. The second target position calculation processing unit calculating the second target positions of the first control points based on information indicating degrees of association of the second control points associated with the first control points and the first target positions of the associated second control points; The image generating program according to claim 2 .
4. The information processing device a target position interpolation processing unit that interpolates a difference between the first target position and the second target position when switching the target for executing the predetermined simulation process between the first control point group and the second control point group; 4. The image generating program according to claim 2 or 3, further functioning as:
5. The target position interpolation processing unit interpolating the difference so as to gradually change the target position before switching toward the target position after switching during a predetermined time from the point in time when the target for executing the predetermined simulation process is switched to the first control point group or the second control point group; The image generating program according to claim 4.
6. the first control point group is configured by arranging the first number of first control points in a grid pattern, and the second control point group is configured by arranging the second number of second control points in a grid pattern, The information processing device a control point array generation processing unit that generates the array of the second control points in the second control point group by thinning out the array of the first control points in the first control point group at a predetermined interval; 6. The image generating program according to claim 1, further functioning as:
7. the image generation program is a game program; The image generating program according to any one of claims 1 to 6.
8. 8. A recording medium readable by an information processing device, on which the image generating program according to claim 1 is recorded.
9. An image generation method executed by an information processing device, comprising: setting a plurality of control point groups for the object, the control point group including a first control point group in which a first number of first control points are arranged, and a second control point group in which a second number of second control points, the second number being smaller than the first number, are arranged; executing a predetermined simulation process for transforming the object into one of the plurality of control point groups, thereby calculating a first target position of each control point constituting the control point group for which the predetermined simulation process has been executed; switching a control point group for executing the predetermined simulation process from the first control point group to the second control point group when a predetermined switching condition is satisfied; generating an image of the object based on the first target positions of the control points; An image generating method comprising:
Citation Information
Patent Citations
Image processing apparatus, image processing method and program
JP2011065492A
Image generating program and record medium
JP2017134609A
Information processing system, information processing apparatus, information processing program, and information processing method
JP2018196577A
Image generation program, recording medium, and image generation method
JP2019174871A
Image generating program, storage medium and image generation method
JP2020144519A