GAME PROGRAM, GAME SYSTEM, GAME DEVICE, AND GAME PROCESSING METHOD
By employing a vertex shader to adjust object sizes and applying depth effects, the method addresses the lack of depth perception in orthogonal projection, resulting in a more realistic game image with enhanced visual depth.
Patent Information
- Application Number
- JP2023149370
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2023-09-14
- Publication Date
- 2025-01-15
- Estimated Expiration
- 2043-09-14
AI Technical Summary
Conventional games using orthogonal projection fail to effectively convey depth perception as characters appear the same size regardless of their position, leading to a lack of realism in the game space.
Utilizing a vertex shader to enlarge or reduce objects based on their position relative to the virtual camera, adjusting their size and depth in the frame buffer without altering their size in the game space, and applying depth effects like bloom to enhance the sense of depth.
This approach allows for a more realistic depiction of depth in game images, enhancing the visual experience by making characters appear closer or farther without changing their size in the game space, and adding effects that enhance the perception of distance.
Smart Images

Figure 0007614280000001 
Figure 0007614280000002 
Figure 0007614280000003
Abstract
Description
[Technical field]
[0001] The present disclosure relates to information processing for games and the like. [Background technology]
[0002] Conventionally, there have been games in which the game space is rendered in orthogonal projection and scrolled sideways (for example, Patent Document 1). [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Patent No. 5643617 Summary of the Invention [Problem to be solved by the invention]
[0004] When rendering the game space using orthogonal projection, the apparent size of a character does not change even if it is placed further forward or further back than usual, so there was a need for an image representation that made the character appear to be sufficiently close to the player.
[0005] Therefore, an object of the present invention is to provide a game program, a game system, a game device, and a game processing method that can produce an image representation in which a character appears sufficiently to be in the foreground or background even when the game space is rendered using orthogonal projection. [Means for solving the problem]
[0006] In order to achieve the above object, for example, the following configuration example can be given.
[0007] The first configuration example is a game program that causes a computer of an information processing device to control at least a player character object and a virtual camera in a virtual space in which at least a player character object and a terrain object are placed, to draw objects in the virtual space in a frame buffer based on orthogonal projection, and further to draw at least the player character object and some terrain objects among the objects in the virtual space in a first scene during the game, by performing a transformation using a vertex shader to move them forward and enlarge them, or move them backward and shrink them.
[0008] According to the first configuration example, since the vertex shader scales up or down the object when rendering the virtual space by orthogonal projection, it is possible to express that the object is located on the front or back side, and it is possible to effectively express the sense of depth of the game image. Furthermore, since the vertex shader scales up or down the object when rendering the virtual space, rather than scaling up or down the object that exists in the virtual space, it is not necessary to modify the game processing such as collision detection in response to scaling up or down the object that exists in the virtual space.
[0009] A second configuration example is configured such that, in the above-mentioned first configuration example, when a first condition in the game is satisfied based on the control of a player character object, a first terrain object appears, and in a subsequent scene, a first scene, the player character object and the first terrain object are rendered while being transformed.
[0010] According to the second configuration example described above, it is possible to present a game image in which the player character moves on a land object that has newly appeared on the foreground or background.
[0011] A third configuration example is a configuration example in which, in the above-mentioned first configuration example, the computer is caused to draw objects in the virtual space in a frame buffer based on orthogonal projection, and further, among the objects in the virtual space, a second terrain object is drawn while performing a transformation, and when a second condition in the game is satisfied based on the control of the player character, the player character object is moved, and in a subsequent scene, a first scene, the player character object is further drawn while performing a transformation.
[0012] According to the third configuration example, it is possible to present a game image in which the player character moves on a land object that has already been placed on the foreground or background.
[0013] A fourth configuration example is the first configuration example, in which the computer draws objects in a virtual space in a frame buffer while performing a depth test, and further adds a predetermined effect to the image drawn in the frame buffer based on the depth of the depth buffer and based on pixels in a second range excluding a first range in which the depth is small.
[0014] According to the fourth configuration example, a predetermined effect can be added only to the range on the far side of the game image. Also, characters drawn by moving to the far side are subject to the predetermined effect, creating a sense of depth.
[0015] In a fifth configuration example, in the above-mentioned fourth configuration example, the predetermined effect is a bloom effect.
[0016] According to the fifth configuration example, a bloom effect with a sense of depth can be expressed.
[0017] A sixth configuration example is the fifth configuration example, in which when a color is added to pixels in a first range due to a bloom effect based on pixels in a second range, the computer corrects the color to be added based on at least a power.
[0018] According to the sixth configuration example, a bloom effect with a greater sense of depth can be expressed. Effect of the Invention
[0019] According to this embodiment, it is possible to provide a game program, a game system, a game device, and a game processing method that can produce image representations that make characters appear sufficiently to be in the foreground or background even when the game space is rendered using orthogonal projection. [Brief description of the drawings]
[0020] [Figure 1] FIG. 1 shows an example of a state in which a left controller 3 and a right controller 4 are attached to a main unit 2. [Diagram 2] A block diagram showing an example of the internal configuration of the main unit 2. [Diagram 3] A block diagram showing an example of the internal configuration of the main unit 2, the left controller 3, and the right controller 4. [Figure 4] FIG. 13 is a diagram illustrating an example of a game screen; [Diagram 5] FIG. 1 is a diagram illustrating an example of a game space; [Figure 6] An example of a conceptual diagram of vertex shader transformation when drawing with orthogonal projection [Figure 7] FIG. 13 is a diagram illustrating an example of a game screen; [Figure 8] FIG. 13 is a diagram illustrating an example of a game screen; [Figure 9] FIG. 13 is a diagram illustrating an example of a game screen; [Figure 10] FIG. 13 is a diagram illustrating an example of a game screen; [Figure 11] FIG. 1 is a diagram illustrating an example of a game space; [Figure 12] An example of a conceptual diagram of vertex shader transformation when drawing with orthogonal projection [Figure 13] FIG. 1 is a diagram illustrating an example of a game space; [Figure 14] An example of a conceptual diagram of vertex shader transformation when drawing with orthogonal projection [Figure 15]FIG. 13 is a diagram illustrating an example of a game screen; [Figure 16] Diagram to explain the Bloom effect [Figure 17] FIG. 13 shows an example of various data stored in the DRAM 85. [Figure 18] An example of a flowchart for game processing, drawing processing, etc. [Figure 19] FIG. 1 is a diagram illustrating an example of a game space; [Figure 20] An example of a conceptual diagram of vertex shader transformation when drawing with orthogonal projection DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0021] An embodiment will be described below.
[0022] [Hardware configuration of information processing system]
[0023] An information processing system (game system, game device) according to an example of this embodiment will be described below. An example of the game system 1 in this embodiment includes a main unit (information processing device; in this embodiment, it functions as a game device main unit) 2, a left controller 3, and a right controller 4. The left controller 3 and the right controller 4 are detachable from the main unit 2. That is, the game system 1 can be used as an integrated device by attaching the left controller 3 and the right controller 4 to the main unit 2. The game system 1 can also be used as a separate device from the main unit 2, the left controller 3, and the right controller 4. The hardware configuration of the game system 1 of this embodiment will be described below, and then the control of the game system 1 of this embodiment will be described.
[0024] Fig. 1 is a diagram showing an example of a state in which a left controller 3 and a right controller 4 are attached to a main unit 2. As shown in Fig. 1, the left controller 3 and the right controller 4 are each attached to and integrated with the main unit 2. The main unit 2 is a device that executes various processes in the game system 1. The main unit 2 includes a display 12. The left controller 3 and the right controller 4 are devices that include an operation unit that allows the user to perform input.
[0025] Furthermore, the main unit 2 is equipped with a speaker, and sounds such as sound effects are output from the speaker.
[0026] The main unit 2 also has a left side terminal through which the main unit 2 communicates with the left controller 3 via a wired connection, and a right side terminal through which the main unit 2 communicates with the right controller 4 via a wired connection.
[0027] The main unit 2 also includes a slot. The slot is provided on the upper side of the housing of the main unit 2. The slot has a shape that allows a predetermined type of storage medium to be attached thereto. The predetermined type of storage medium is, for example, a storage medium (e.g., a dedicated memory card) dedicated to the game system 1 and the same type of information processing device. The predetermined type of storage medium is used, for example, to store data used in the main unit 2 (e.g., application save data, etc.) and / or programs executed in the main unit 2 (e.g., application programs, etc.).
[0028] The left controller 3 and the right controller 4 each include various operation buttons, etc. The various operation buttons, etc. are used to give instructions according to various programs (for example, OS programs and application programs) executed on the main unit 2.
[0029] In addition, the left controller 3 and the right controller 4 each have a terminal for wired communication with the main unit 2.
[0030] 2 is a block diagram showing an example of the internal configuration of the main unit 2. The main unit 2 includes a processor 81. The processor 81 is an information processing unit that executes various types of information processing executed in the main unit 2, and may be configured, for example, as a system-on-a-chip (SoC) including multiple functions such as a central processing unit (CPU) function and a graphics processing unit (GPU) function. The processor 81 executes various types of information processing by executing an information processing program (for example, a game program) stored in a storage unit (specifically, an internal storage medium such as a flash memory 84, or an external storage medium inserted in the slot 23, etc.).
[0031] The main unit 2 includes a flash memory 84 and a dynamic random access memory (DRAM) 85 as examples of internal storage media built into the main unit 2. The flash memory 84 and the DRAM 85 are connected to the processor 81. The flash memory 84 is a memory used mainly for storing various data (which may be programs) saved in the main unit 2. The DRAM 85 is a memory used for temporarily storing various data used in information processing.
[0032] The main device 2 includes a slot interface (hereinafter abbreviated as "I / F") 91. The slot I / F 91 is connected to the processor 81. The slot I / F 91 is connected to the slot 23, and reads and writes data from and to a predetermined type of storage medium (e.g., a dedicated memory card) inserted in the slot 23 in response to an instruction from the processor 81.
[0033] The processor 81 appropriately reads and writes data from and to the flash memory 84, DRAM 85, and each of the above storage media to execute the above information processing.
[0034] The main body device 2 includes a network communication unit 82. The network communication unit 82 is connected to the processor 81. The network communication unit 82 communicates (specifically, wirelessly communicates) with an external device via a network. In this embodiment, the network communication unit 82 connects to a wireless LAN using a method conforming to the Wi-Fi standard, for example, and performs Internet communication with an external device (another main body device 2). The network communication unit 82 can also perform short-range wireless communication (for example, infrared communication) with another main body device 2.
[0035] The main unit 2 includes a controller communication unit 83. The controller communication unit 83 is connected to the processor 81. The controller communication unit 83 performs wireless communication with the left controller 3 and / or the right controller 4. Any communication method may be used between the main unit 2 and the left controller 3 and right controller 4, but in this embodiment, the controller communication unit 83 performs communication with the left controller 3 and the right controller 4 in accordance with the Bluetooth (registered trademark) standard.
[0036] The processor 81 is connected to the left terminal 17, the right terminal 21, and the lower terminal 27. When the processor 81 performs wired communication with the left controller 3, it transmits data to the left controller 3 via the left terminal 17 and receives operation data from the left controller 3 via the left terminal 17. When the processor 81 performs wired communication with the right controller 4, it transmits data to the right controller 4 via the right terminal 21 and receives operation data from the right controller 4 via the right terminal 21. When the processor 81 performs communication with the cradle, it transmits data to the cradle via the lower terminal 27. Thus, in this embodiment, the main unit 2 can perform both wired communication and wireless communication with the left controller 3 and the right controller 4. When the main unit 2 alone or an integrated device with the left controller 3 and the right controller 4 attached to the main unit 2 is attached to the cradle, the main unit 2 can output data (e.g., image data and audio data) to a stationary monitor or the like via the cradle.
[0037] The main device 2 includes a touch panel controller 86, which is a circuit that controls the touch panel 13. The touch panel controller 86 is connected between the touch panel 13 and the processor 81. The touch panel controller 86 generates data indicating, for example, the position where a touch input has been performed based on a signal from the touch panel 13, and outputs the data to the processor 81.
[0038] The display 12 is also connected to the processor 81. The processor 81 displays on the display 12 an image generated (for example, by executing the above-mentioned information processing) and / or an image acquired from the outside.
[0039] The main unit 2 includes a codec circuit 87 and speakers (specifically, a left speaker and a right speaker) 88. The codec circuit 87 is connected to the speaker 88 and the audio input / output terminal 25, and is also connected to the processor 81. The codec circuit 87 is a circuit that controls the input and output of audio data to and from the speaker 88 and the audio input / output terminal 25.
[0040] The main unit 2 includes a power control unit 97 and a battery 98. The power control unit 97 is connected to the battery 98 and the processor 81. Although not shown, the power control unit 97 is also connected to each unit of the main unit 2 (specifically, each unit that receives power from the battery 98, the left terminal 17, and the right terminal 21). The power control unit 97 controls the supply of power from the battery 98 to each of the above-mentioned units based on instructions from the processor 81.
[0041] Furthermore, battery 98 is connected to lower terminal 27. When an external charging device (e.g., a cradle) is connected to lower terminal 27 and power is supplied to main unit 2 via lower terminal 27, battery 98 is charged with the supplied power.
[0042] Fig. 3 is a block diagram showing an example of the internal configuration of the main unit 2, the left controller 3, and the right controller 4. Note that details of the internal configuration of the main unit 2 are omitted in Fig. 3 because they are shown in Fig. 2.
[0043] The left controller 3 includes a communication control unit 101 that communicates with the main unit 2. As shown in FIG. 3, the communication control unit 101 is connected to each component including the terminal 42. In this embodiment, the communication control unit 101 can communicate with the main unit 2 by both wired communication via the terminal 42 and wireless communication not via the terminal 42. The communication control unit 101 controls the communication method by which the left controller 3 communicates with the main unit 2. That is, when the left controller 3 is attached to the main unit 2, the communication control unit 101 communicates with the main unit 2 via the terminal 42. Also, when the left controller 3 is detached from the main unit 2, the communication control unit 101 performs wireless communication with the main unit 2 (specifically, the controller communication unit 83). The wireless communication between the controller communication unit 83 and the communication control unit 101 is performed according to, for example, the Bluetooth (registered trademark) standard.
[0044] The left controller 3 also includes a memory 102, such as a flash memory. The communication control unit 101 is configured with, for example, a microcomputer (also called a microprocessor), and executes firmware stored in the memory 102 to perform various processes.
[0045] The left controller 3 includes each button 103. The left controller 3 also includes a left stick 32. Each button 103 and left stick 32 repeatedly outputs information relating to an operation performed on that button 103 and left stick 32 to the communication control unit 101 at an appropriate timing.
[0046] The left controller 3 includes an inertial sensor. Specifically, the left controller 3 includes an acceleration sensor 104. The left controller 3 also includes an angular velocity sensor 105. In this embodiment, the acceleration sensor 104 detects the magnitude of acceleration along three predetermined axes (for example, the x, y and z axes shown in FIG. 4). The acceleration sensor 104 may detect acceleration in one or two axial directions. In this embodiment, the angular velocity sensor 105 detects angular velocity around three predetermined axes (for example, the x, y and z axes shown in FIG. 4). The angular velocity sensor 105 may detect angular velocity around one or two axes. The acceleration sensor 104 and the angular velocity sensor 105 are each connected to the communication control unit 101. The detection results of the acceleration sensor 104 and the angular velocity sensor 105 are repeatedly output to the communication control unit 101 at appropriate timing.
[0047] The communication control unit 101 acquires information related to the input (specifically, information related to the operation, or the detection results by the sensors) from each input unit (specifically, each button 103, left stick 32, each sensor 104 and 105). The communication control unit 101 transmits operation data including the acquired information (or information obtained by performing a specified process on the acquired information) to the main unit 2. The operation data is repeatedly transmitted once every specified time. The interval at which the information related to the input is transmitted to the main unit 2 may or may not be the same for each input unit.
[0048] By transmitting the above operation data to the main unit 2, the main unit 2 can obtain the input performed on the left controller 3. That is, the main unit 2 can determine the operations on the buttons 103 and the left stick 32 based on the operation data. In addition, the main unit 2 can calculate information regarding the movement and / or attitude of the left controller 3 based on the operation data (specifically, the detection results of the acceleration sensor 104 and the angular velocity sensor 105).
[0049] The left controller 3 is equipped with a power supply unit 108. In this embodiment, the power supply unit 108 has a battery and a power control circuit. Although not shown, the power control circuit is connected to the battery and to each part of the left controller 3 (specifically, each part that receives power from the battery).
[0050] As shown in FIG. 3, the right controller 4 includes a communication control unit 111 that communicates with the main unit 2. The right controller 4 also includes a memory 112 that is connected to the communication control unit 111. The communication control unit 111 is connected to each component including the terminal 64. The communication control unit 111 and the memory 112 have the same functions as the communication control unit 101 and the memory 102 of the left controller 3. Therefore, the communication control unit 111 can communicate with the main unit 2 by both wired communication via the terminal 64 and wireless communication (specifically, communication in accordance with the Bluetooth (registered trademark) standard) that does not go through the terminal 64, and controls the method of communication that the right controller 4 uses with the main unit 2.
[0051] The right controller 4 has input units similar to those of the left controller 3. Specifically, it has buttons 113, a right stick 52, and inertial sensors (an acceleration sensor 114 and an angular velocity sensor 115). These input units have the same functions as those of the left controller 3, and operate in the same manner.
[0052] The right controller 4 is equipped with a power supply unit 118. The power supply unit 118 has the same functions as the power supply unit 108 of the left controller 3, and operates in the same manner.
[0053] [Games assumed in this embodiment] Next, an overview of game processing (an example of information processing) executed by the game system 1 according to this embodiment will be described. The game assumed in this embodiment is an action game in which a player character object (sometimes called a "player character") that operates according to the operation of a player (user) moves through a virtual space (game space) in which various objects are arranged to reach a goal point. This game is a game in which the game space is photographed by a virtual camera using orthogonal projection (parallel projection), and a game image like that of a two-dimensional game is displayed on the screen (display 12). This game is not limited to an action game, and may be another type of game.
[0054] [Overview of game processing and drawing processing in this embodiment] FIG. 4 is a diagram showing an example of a game screen of this game. As shown in FIG. 4, a terrain object A, a terrain object B, and a terrain object C are displayed on the game screen. On the terrain object A, one enemy character object (sometimes called "enemy character") 201, one player character 200, and one entrance object (sometimes simply called "entrance") 205 are displayed. On the terrain object B, two enemy characters 201, one entrance 202, and one entrance 203 are displayed. On the terrain object C, two enemy characters 201, one entrance 204, and three tree objects (sometimes simply called "trees") 210 are displayed. Note that the terrain object A and an object displayed on the terrain object A may be referred to as "layer A", the terrain object B and an object displayed on the terrain object B may be referred to as "layer B", and the terrain object C and an object displayed on the terrain object C may be referred to as "layer C".
[0055] The player operates the player character 200 to move the player character 200 toward a goal point (not shown) in the right direction (the direction in which the x-axis increases). When the player character 200 moves rightward or leftward in response to the player's operation, layers A, B, and C are displayed with horizontal scrolling so that the player character 200 does not go outside the display range of the screen. If the player character 200 comes into contact with an enemy character 201, it will receive damage.
[0056] Enemy characters 201 are of the same type and are the same size in the game space. Trees 210 are also of the same type and are the same size in the game space. Doorways 203 and 205 are the same size in the game space, and doorways 202 and 204 are also the same size in the game space.
[0057] As shown in Figure 4, in the game screen of this game, layer A, which is displayed as the foreground, is enlarged, and layer C, which is displayed as the background, is reduced. This makes it possible to display a game image with a sense of depth even when the game space is photographed using orthogonal projection. In conventional methods, when the game space is photographed using orthogonal projection, the foreground layer and the background layer are displayed at the same size (same magnification), so the sense of depth as in Figure 4 is not achieved.
[0058] FIG. 5 is a diagram for explaining a game space that is photographed to render the game screen (game image) of FIG. 4. As shown in FIG. 5, a virtual camera 220 and terrain objects A to C are arranged in the game space. The terrain objects A to C are arranged in an order in the vertical direction (Y-axis direction) at equal depth positions (same distance in the z direction) from the virtual camera 220 in the game space. One enemy character 201 and one player character 200 are arranged above the terrain object A (increasing direction of the y-axis). Two enemy characters 201 are arranged above the terrain object B. Two enemy characters 201 are arranged above the terrain object C. Note that, for convenience, in FIG. 5, the terrain object is illustrated as a board shape, the enemy character 201 and the player character 200 are illustrated as oval shapes, and objects such as trees and entrances are omitted. In the example of FIG. 5, the depths of the terrain objects A to C in the game space and the depths of the characters on the terrain objects are the same, but they may be shifted.
[0059] 5 illustrates a rectangular area 230 of a terrain object B photographed using orthogonal projection by the virtual camera 220. Also, a rectangular area 231 having the same size as the area 230 is illustrated on the terrain object A, and a rectangular area 232 having the same size as the area 230 is illustrated on the terrain object C.
[0060] Here, when photographing using orthogonal projection in the conventional manner, although not shown, in the game space, layer A (terrain object A and objects placed on it) is positioned in front of layer B (terrain object B and objects placed on it) as viewed from virtual camera 220, and layer C (terrain object C and objects placed on it) is positioned behind layer B as viewed from virtual camera 220, and layers A to C must be positioned so that they are all included in the field of view of the virtual camera (i.e., areas 230, 231, and 232 overlap as viewed from the virtual camera), and then photographed (drawn in the frame buffer).
[0061] FIG. 6 is a diagram for explaining the conversion performed by the vertex shader when drawing the game space of FIG. 5 in the frame buffer (in the process of drawing). As shown in FIG. 6, in the drawing process of this embodiment, the vertex shader moves layer A to a predetermined position on the front side of layer B as viewed from the virtual camera 220 and enlarges it, moves layer C to a predetermined position on the back side of layer B as viewed from the virtual camera 220 and shrinks it, and then performs a depth test (Z test) using a depth buffer (Z buffer) to draw it. In FIG. 6, an area 231 shows how large the area corresponding to the area 231 in FIG. 5 becomes when layer A is enlarged. Also, in FIG. 6, an area 232 shows how large the area corresponding to the area 232 in FIG. 5 becomes when layer C is reduced. An area 241 is the area of layer A photographed by the virtual camera 220, and an area 242 is the area of layer C photographed by the virtual camera 220.
[0062] When scrolling layers A to C horizontally, it is possible to express the scrolling by translating the virtual camera, but in this case, in the case of perspective projection, the layer closer to the front will appear to scroll horizontally faster. In this embodiment, in order to express such a sense of perspective, the layer closer to the front will be scrolled horizontally faster. Specifically, when drawing the game space, the positions of layers A to C are adjusted by a vertex shader, and layers A to C are scrolled horizontally so that the layer closer to the front appears to scroll horizontally faster in the game image (see FIG. 4). For example, when moving the virtual camera parallel, the layer closer to the front is further moved in the opposite direction to the moving direction of the virtual camera, and the layer closer to the back is drawn by converting the positions of the vertices to positions further moved along the moving direction of the virtual camera.
[0063] As described above, in this embodiment, when the game space (see FIG. 5) is rendered (photographed) in orthogonal projection, the layer (layer A) to be displayed as the object in the foreground is moved to a predetermined position in the foreground and enlarged, and the layer (layer C) to be displayed as the object in the background is moved to a predetermined position in the background and reduced for rendering, by the vertex shader. This makes it possible to display a game image that fully expresses a sense of depth, as shown in FIG. 4.
[0064] In addition, in this embodiment, physical calculation processing (physical simulation) such as collision detection is performed in the game space (see FIG. 5), and as described above, when the game space is rendered, the vertex shader performs the conversion (enlargement, reduction, movement) described with reference to FIG. 6. That is, in this embodiment, the object itself is not enlarged or reduced in the game space. If the size is changed in the game space, it may affect the physical calculation processing such as collision detection, and verification costs will be incurred. However, in this embodiment, the processing in the game space is left as is, and only the position and size at the time of rendering are changed, so that a game image that fully expresses a sense of depth as shown in FIG. 4 can be displayed without adjusting (modifying) the physical calculation processing.
[0065] As described above, in this embodiment, when rendering the game space (see FIG. 5), the layer (layer A) to be displayed as an object in the foreground is moved to a predetermined position in the foreground, and the layer (layer C) to be displayed as an object in the background is moved to a predetermined position in the background. This facilitates the task of designing (placing) objects in the game space during development.
[0066] Fig. 7 is a diagram showing an example of a game screen of this game. In the game screen of Fig. 7, the player character 200 displayed in layer A in the game screen of Fig. 4 is displayed in layer C. That is, in the case of Fig. 7, the player character 200 is located in layer C, not in layer A, in Fig. 5 and Fig. 6. Note that although the cases where the player character 200 is located in layers A and C have been described in Figs. 4 and 7, there are also cases where the player character 200 is located in layer B.
[0067] FIG. 8 is a diagram for explaining an example of a case where the player character 200 moves from layer B to layer A on the game screen of this game. As shown in FIG. 8(1), when the player character 200 displayed on layer B enters the entrance 203 in response to the player's operation (an example of a case where the "second condition" is satisfied), the player character 200 comes out from the entrance 205 and is displayed on layer A, as shown in FIG. 8(2). Also, when the player character 200 displayed on layer A enters the entrance 205 in response to the player's operation, the player character 200 comes out from the entrance 203 and is displayed on layer B (not shown). This allows the player character 200 to move between layer A and layer B.
[0068] FIG. 9 is a diagram for explaining a case where the player character 200 moves from layer B to layer C on the game screen of this game. As shown in FIG. 9(1), when the player character 200 displayed on layer B enters the entrance 203 in response to the player's operation (an example of a case where the "second condition" is satisfied), the player character 200 comes out from the entrance 204 and is displayed on layer C, as shown in FIG. 9(2). Also, when the player character 200 displayed on layer C enters the entrance 204 in response to the player's operation, the player character 200 comes out from the entrance 203 and is displayed on layer B (not shown). This allows the player character 200 to move between layer B and layer C. There may be an entrance through which the player character 200 can move between layer A and layer C.
[0069] Fig. 10 is a diagram for explaining another example of a case where the player character 200 moves from layer B to layer A on the game screen of the present game. In Fig. 10, as shown in (1), layer A is not displayed on the game screen. In other words, layer A is hidden on the game screen.
[0070] FIG. 11 is a diagram for explaining a game space photographed to render the game screen (game image) of FIG. 10(1). As shown in FIG. 11, the virtual camera 220 and each object are arranged in the game space, as in FIG. 5. In FIG. 11, the player character 200 is located in layer B. FIG. 12 is a diagram for explaining the conversion performed by the vertex shader when rendering (in the process of rendering) the game space of FIG. 11. As shown in FIG. 12, in the rendering process for the game space of FIG. 11, the vertex shader moves layer B to a predetermined position on the back side of layer B as seen from the virtual camera 220 and reduces it (without performing the process of moving or enlarging layer A (see FIG. 6)), and then performs a depth test using a depth buffer to perform rendering. As a result, a game screen in which layer A is not displayed is displayed, as shown in FIG. 10(1).
[0071] Then, as shown in FIG. 10(1), when the player character 200 displayed on layer B enters an entrance / exit 203 in response to the player's operation (an example of when the "first condition" is satisfied), as shown in FIG. 10(2), layer A appears in front of layer B, and then player character 200 comes out of the entrance / exit 205 and is displayed on layer A.
[0072] FIG. 13 is a diagram for explaining a game space that is photographed to draw the game screen (game image) of FIG. 10(2). As shown in FIG. 13, the virtual camera 220 and each object are arranged in the game space in the same way as in FIG. 5. Note that in FIG. 13, the position of the player character 200 of layer A is different from that in FIG. 5. FIG. 14 is a diagram for explaining a conversion performed by a vertex shader when drawing (in the process of drawing) the game space of FIG. 13. As shown in FIG. 14, in the drawing process for the game space of FIG. 13, the vertex shader moves layer A to a predetermined position on the front side of layer B as viewed from the virtual camera 220 and shrinks it, moves layer C to a predetermined position on the back side of layer B as viewed from the virtual camera 220 and shrinks it, and then performs a depth test using a depth buffer to perform drawing. That is, drawing is performed in the same way as in FIG. 6. As a result, a game screen in which layer A appears is displayed as shown in FIG. 10(2). Note that drawing may be performed so that layer A appears rising upward in the game screen of FIG. 10(2).
[0073] In the above, a case where layer A appears when the player character 200 moves to the hidden layer A on the front side has been described, but the same applies to a case where layer C appears when the player character 200 moves to the hidden layer C on the back side. FIG. 15 is a diagram for explaining an example of a case where the player character 200 moves from layer B to hidden layer C in the game screen of this game. As shown in FIG. 15(1), when the player character 200 enters the entrance 202 of layer B in response to the player's operation (an example of a case where the "first condition" is satisfied), a game screen is displayed in which layer C appears and then the player character 200 comes out of the entrance 204 of layer C, as shown in FIG. 15(2). Note that, when drawing the game screen (game image) of FIG. 15(1), the vertex shader moves layer A to a predetermined position on the front side of layer B as viewed from the virtual camera 220 and reduces it (without executing the process of moving or reducing layer C (see FIG. 6)), and then draws it by executing a depth test using a depth buffer.
[0074] Fig. 16 is a diagram for explaining a case where a bloom effect (an effect as if illuminated by light) is added to a game image of the present game. Note that, for the sake of convenience, layer A is colored black in Fig. 16.
[0075] In this embodiment, a bloom effect may be added to a game image drawn in a frame buffer by performing conversion processing by a vertex shader described with reference to FIG. 6, etc., by setting a mask based on the depth (Z value, depth value) of the depth buffer of the game image. For example, as shown in FIG. 16(1), a bloom mask is set to pixels of layer A (an example of a "first range") with a small depth of the depth buffer to add a bloom effect. As a result, as shown in FIG. 16(1), the bloom effect is added to pixels of layer B and layer C (an example of a "second range") and pixels in the area near the boundary of layer A where the bloom mask is set (near the boundary with layer C in the case of FIG. 16(1)). As a result, as shown in FIG. 16(1), the pixels of layer B and layer C are displayed brightly as if illuminated by light, and a sense of depth is expressed. In addition, color is added (added) to pixels in the area near the boundary of layer A where the bloom mask is set, as pixels of layer B etc. illuminated by light are blurred. At this time, the color to be added (color intensity) is corrected by raising it to a power (or multiplying it), and then the corrected color is added. As a result, the color (color intensity) of the pixels in the area near the boundary of layer A, where the bloom mask is set, is weakened compared to when this correction is not performed, and the attenuation of the color (color intensity) becomes extremely fast.
[0076] The depth value for setting the mask may be any value, and may be a value that allows layer B to be the target of the mask. In addition, it is possible that the depth of objects in a layer is not constant, and in such a case, a value may be set that allows some objects in the layer to be masked and the rest to be excluded from the mask. When drawing, the depth value of the back layer is increased by the vertex shader and stored in the depth buffer, so that it can be used as the target of blooming, and different expressions can be made between the back and front sides, resulting in an expression with a greater sense of perspective.
[0077] FIG. 16(2) is an image diagram of the area near the boundary of layer A when the above-mentioned correction is performed, and FIG. 16(3) is an image diagram of the area near the boundary of layer A when the above-mentioned correction is not performed. As can be seen from FIG. 16(2) and (3), by performing the above-mentioned correction, the boundary of layer A where the bloom mask is set becomes clearly noticeable (prominent), and a sense of light emission that gives a sense of depth as if light is leaking out can be created. Note that, for convenience of illustration, the above-mentioned correction is not shown on the enemy character 201 and the entrance / exit 205 of layer A (and also on the player character 200 when the player character 200 is in layer A) in FIG. 16, but the above-mentioned correction is also performed on these objects.
[0078] [Details of information processing in this embodiment] Next, the information processing of this embodiment will be described in detail with reference to FIGS.
[0079] [About data usage] Various data used in this game processing will be described. Fig. 17 shows an example of data stored in the DRAM 85 of the game system 1. As shown in Fig. 17, the DRAM 85 is provided with at least a program memory area 301 and a data memory area 302. The program memory area 301 stores a game program 401. The data memory area 302 stores game control data 402, image data 408, virtual camera control data 409, operation data 410, transmission data 411, reception data 412, etc. The game control data 402 includes object data 403.
[0080] The game program 401 is a game program for executing the game processing.
[0081] The object data 403 is data on objects placed in the virtual space, such as a player character, an enemy character, an item, the ground (terrain), a block, a rock, a stone, a tree, a building, etc. The object data 403 also includes data on the coordinates (position), direction, posture, state, etc. of the object.
[0082] Image data 408 is image data such as background and virtual effects.
[0083] The virtual camera control data 409 is data for controlling the movement of a virtual camera placed in a virtual space, specifically, data for specifying the position, attitude, angle of view, imaging direction, etc. of the virtual camera.
[0084] The operation data 410 is data indicating the contents of operations performed on the left controller 3 and the right controller 4. For example, it includes data indicating the input states of the movements and posture changes of the left controller 3 and the right controller 4, and the pressed states of various buttons. The contents of the operation data are updated at a predetermined cycle based on signals from the left controller 3 and the right controller 4.
[0085] The transmission data 411 is data to be transmitted to other game systems 1, and includes at least information for identifying the transmission source and the contents of the operation data 410. The transmission data 411 includes data related to the player's character (data indicating coordinates (position), posture, state, etc.) to be transmitted to other game systems 1 (or servers) of the multiplayer partners.
[0086] The received data 412 is data for transmission received from other game systems 1 and stored so as to be identifiable for each other game system 1 (i.e., the sender). The received data 412 includes data relating to other player characters (data indicating coordinates (position), posture, state, etc.) received from other game systems 1 (or servers) of the multiplayer opponents.
[0087] Additionally, the DRAM 85 stores various types of data used in game processing and drawing processing as necessary.
[0088] [Details about game processing] Next, the game processing and the drawing processing according to this embodiment will be described with reference to a flowchart. Fig. 18 is an example of a flowchart showing the game processing and the drawing processing according to this embodiment. Note that, in the following, the processing characteristic of this embodiment will be mainly described, and other descriptions will be omitted.
[0089] When this game process is started, the process of the flowchart in FIG. 18 begins.
[0090] In step S100, the processor 81 (CPU function of the processor 81) performs game processing in the game space. Specifically, the processor 81 performs physics calculation processing in the game space, movement processing of the enemy character 201, movement processing of the player character 200 based on the operation data 410, and the like. Thereafter, the process proceeds to step S200.
[0091] In step S200, the processor 81 (the GPU function of the processor 81) performs a drawing process for drawing the game space by orthogonal projection to generate a game image. Specifically, as described with reference to Figs. 4 to 7, etc., the processor 81 uses a vertex shader to move a layer (layer A) to be displayed as an object on the front side to a predetermined position on the front side and enlarge it, and moves a layer (layer C) to be displayed as an object on the back side to a predetermined position on the back side and shrinks it, and draws it in the frame buffer. Also, as described with reference to Figs. 10 to 15, etc., when the player character 200 moves to a hidden layer based on the player's operation, the processor 81 performs a drawing process for making the hidden layer appear on the game screen (game image). Also, as described with reference to Fig. 16, the processor 81 performs a process for adding a bloom effect to the game image drawn in the frame buffer by performing a conversion process using the vertex shader, based on the depth of the depth buffer of the game image. At that time, the processor 81 sets a bloom mask in a predetermined layer and performs a process of performing a predetermined correction related to the bloom effect on pixels in an area near the boundary of the predetermined layer, as described with reference to Fig. 16. After that, the process proceeds to step S300.
[0092] In step S300, the display 12 displays the game image generated in step S200. Then, the process returns to step S100.
[0093] By repeating the processing of steps S100 to S300, the game space is drawn and game images are displayed while the game progresses. Then, when a condition for ending the game is satisfied (for example, when an operation to end the game is performed by the player), the processing of the flowchart in FIG. 18 ends.
[0094] As described above, according to this embodiment, when drawing a game image in orthogonal projection, a layer to be displayed as an object in the foreground is moved to a predetermined position in the foreground and enlarged, and a layer to be displayed as an object in the background is moved to a predetermined position in the background and reduced, and then drawn in the frame buffer (see FIGS. 4 to 7, etc.). As a result, according to this embodiment, a sufficient sense of depth can be expressed in the game image drawn (photographed) in orthogonal projection.
[0095] Furthermore, according to this embodiment, a bloom effect is added to the game image drawn in the frame buffer based on the depth of the depth buffer of this game image, and at that time, a bloom mask is set to a predetermined layer, and a predetermined correction related to the bloom effect is performed on the pixels in the area near the boundary of this predetermined layer (see FIG. 16). As a result, according to this embodiment, a luminous feeling that gives a sufficient sense of depth can be expressed for the game image drawn (photographed) by orthogonal projection.
[0096] [Variations] In the above-described embodiment, an example was given in which objects (terrain object, player character, enemy character, etc.) displayed as the same layer on the game screen are arranged as the same layer in the game space, etc. (see Figs. 4 to 7, etc.). For example, objects (terrain object, player character, enemy character, etc.) included in layer A displayed in the game image of Fig. 4 are arranged in layer A in the game space of Fig. 5 and in the scene of conversion during the drawing process of Fig. 6. However, for example, an object displayed as being on the terrain in the game screen in the game space may be arranged in a layer different from the terrain layer. In the example of Fig. 19, the player character 200 displayed as being on the terrain object A in the game screen (see Fig. 4) is arranged closer to the virtual camera 220 (closer) than the terrain object A in the game space. Then, in the physical calculation process such as the collision determination process, the setting (processing) is made to be the same as when the player character 200 is on the terrain object A. In other words, the physical calculation process is set so that the player character 200 does not fall because the terrain object A is not present under the player character 200. Then, in the conversion scene during the drawing process, as shown in FIG. 20, by moving both the player character 200 and layer A to a predetermined position in the foreground and enlarging them so as to draw them in the frame buffer, the same game image as in FIG. 4 can be generated.
[0097] In the above-described embodiment, an example in which three layers (layers A to C) are arranged in the game space has been given (see FIGS. 4 to 6, etc.). However, the number of layers arranged in the game space is not limited to this.
[0098] In the above-described embodiment, when performing conversion by the vertex shader in the drawing process, layer B is used as a reference layer that is not moved, and other layers are moved to generate a game image (see FIG. 5, FIG. 6, etc.). However, this is not limited to the above, and for example, layer A may be used as a reference layer that is not moved, and other layers may be moved to generate a game image. In this case, conversion is performed by the vertex shader to move layer B and layer C to the back side of layer A and reduce them. Also, for example, layer C may be used as a reference layer that is not moved, and other layers are moved to generate a game image. In this case, conversion is performed by the vertex shader to move layer A and layer B to the front side of layer C and enlarge them.
[0099] In the above-described embodiment, layers A to C are arranged at the same depth from virtual camera 220 in the game space (see FIG. 5, etc.). However, layers A to C may be arranged at any position in the game space as long as the position of the layer converted by the vertex shader in the drawing process (see FIG. 6) does not change. For example, layer C may be arranged at a position on the front side of layer B (position on the virtual camera 220 side) in the game space of FIG. 5, and the position of layer C after conversion by the vertex shader in the drawing process may be set to the position shown in FIG. 6 (position on the back side of layer B) to draw a game image.
[0100] In the above embodiment, the series of processes related to the game processing is executed by a single game device. In another embodiment, the series of processes may be executed in an information processing system consisting of a plurality of information processing devices. For example, in an information processing system including a terminal device and a server device capable of communicating with the terminal device via a network, a part of the series of processes may be executed by the server device. Furthermore, in an information processing system including a terminal device and a server device capable of communicating with the terminal device via a network, a main part of the series of processes may be executed by the server device, and a part of the processes may be executed by the terminal device. In the above information processing system, the server system may be composed of a plurality of information processing devices, and the processes to be executed on the server side may be shared and executed by the plurality of information processing devices. Also, a so-called cloud gaming configuration may be used. For example, the game device may be configured to send operation data indicating a user's operation to a predetermined server, and various game processes may be executed in the server, and the execution results may be streamed to the game device as video and audio.
[0101] Although the present embodiment and the modified examples have been described above, these descriptions are merely illustrative in every respect and are not intended to limit the scope of the present embodiment and the modified examples. It goes without saying that various improvements and modifications can be made to the present embodiment and the modified examples. [Explanation of symbols]
[0102] 1. Game System 3, 4 Controller 12 Display 81 Processor (CPU, GPU) 85 DRAM 200 Player Characters 201 Enemy characters 202, 203, 204, 205 entrance / exit 220 Virtual Camera A, B, C Terrain Objects (Layers)
Claims
1. The computer of the information processing device controlling at least a player character object and a virtual camera in a virtual space in which at least a player character object and a terrain object are arranged; A game program which causes objects in the virtual space to be rendered in a frame buffer based on orthogonal projection, and further causes at least the player character object and a part of the terrain object among the objects in the virtual space to be rendered by a vertex shader while being transformed to move forward and enlarge, or move backward and shrink.
2. The computer includes: when a first condition in the game is satisfied based on the control of the player character object, a first terrain object is caused to appear; The computer-readable storage medium according to claim 1 , further comprising: a controller configured to perform the conversion on the player character object and the first terrain object in the first scene, the player character object and the first terrain object being rendered while the conversion is being performed on the player character object and the first terrain object in the first scene, the player character object and the first terrain object being rendered.
3. The computer includes: Rendering the objects in the virtual space in a frame buffer based on the orthogonal projection, and further rendering a second terrain object among the objects in the virtual space while performing the transformation; moving the player character object when a second condition in the game is satisfied based on the control of the player character object; The computer-readable storage medium according to claim 1 , further comprising: a processor configured to execute a process of converting the player character object into a character image in a first scene that is a subsequent scene.
4. The computer includes: Rendering objects in the virtual space onto the frame buffer while performing a depth test; Further, for the image drawn in the frame buffer, 2. The game program according to claim 1, further comprising: a predetermined effect being added based on pixels in a second range excluding a first range in which the depth is small, based on the depth in the depth buffer.
5. The game program according to claim 4 , wherein the predetermined effect is a bloom effect.
6. The computer includes:
6. The game program according to claim 5, wherein when a color is added to pixels in the first range by the bloom effect based on pixels in the second range, the color to be added is corrected based on at least a power.
7. A gaming system including a processor, The processor, A game system comprising: a virtual space in which at least a player character object and a terrain object are arranged, the virtual space being controlled by at least the player character object and a virtual camera; an object in the virtual space being rendered in a frame buffer based on orthogonal projection; and a vertex shader being used to render at least the player character object and a part of the terrain object among the objects in the virtual space, in a first scene during a game, by performing a transformation such that the object moves forward and is enlarged, or moves backward and is reduced.
8. The processor, when a first condition in the game is satisfied based on the control of the player character object, a first terrain object is caused to appear; 8. The game system according to claim 7, wherein in the first scene which is a subsequent scene, the player character object and the first terrain object are rendered while undergoing the transformation.
9. The processor, Rendering the objects in the virtual space in a frame buffer based on the orthogonal projection, and further rendering a second terrain object among the objects in the virtual space while performing the transformation; moving the player character object when a second condition in the game is satisfied based on the control of the player character object; 8. The game system according to claim 7, wherein in a subsequent scene, the first scene, the player character object is further rendered while being subjected to the transformation.
10. The processor, Rendering objects in the virtual space onto the frame buffer while performing a depth test; Further, for the image drawn in the frame buffer, 8. The game system according to claim 7, further comprising: a predetermined effect that is based on pixels in a second range excluding a first range in which the depth is small, based on the depth in the depth buffer.
11. The game system according to claim 10 , wherein the predetermined effect is a bloom effect.
12. The processor, The game system according to claim 11 , wherein when a color is added to pixels in the first range by the bloom effect based on pixels in the second range, the color to be added is corrected based on at least a power before being added.
13. A gaming device including a processor, The processor, A game device which controls at least a player character object and a virtual camera in a virtual space in which at least the player character object and a terrain object are arranged, draws objects in the virtual space in a frame buffer based on orthogonal projection, and further draws at least the player character object and a part of the terrain object among the objects in the virtual space, by performing a transformation using a vertex shader to move them forward and enlarge them, or move them backward and reduce them, in a first scene during a game.
14. The processor, when a first condition in the game is satisfied based on the control of the player character object, a first terrain object is caused to appear; The game device according to claim 13, wherein in the first scene which is a subsequent scene, the player character object and the first terrain object are rendered while being subjected to the transformation.
15. The processor, Rendering the objects in the virtual space in a frame buffer based on the orthogonal projection, and further rendering a second terrain object among the objects in the virtual space while performing the transformation; moving the player character object when a second condition in the game is satisfied based on the control of the player character object; The game device according to claim 13, wherein in the first scene which is a subsequent scene, the player character object is further rendered while being subjected to the transformation.
16. The processor, Rendering objects in the virtual space onto the frame buffer while performing a depth test; Further, for the image drawn in the frame buffer, 14. The game device according to claim 13, wherein a predetermined effect is applied based on pixels in a second range excluding a first range in which the depth is small, based on the depth in the depth buffer.
17. The gaming device according to claim 16, wherein the predetermined effect is a bloom effect.
18. The processor, The game device according to claim 17 , wherein when a color is added to pixels in the first range by the bloom effect based on pixels in the second range, the color to be added is corrected based on at least a power before being added.
19. A game processing method executed by a computer of an information processing device, comprising: The computer includes: controlling at least a player character object and a virtual camera in a virtual space in which at least a player character object and a terrain object are arranged; A game processing method comprising: rendering objects in the virtual space in a frame buffer based on orthogonal projection; and further rendering at least the player character object and a part of the terrain object among the objects in the virtual space by a vertex shader, the object being transformed to move forward and enlarge, or move backward and shrink.
20. The computer includes: when a first condition in the game is satisfied based on the control of the player character object, a first terrain object is caused to appear; 20. The game processing method according to claim 19, further comprising rendering said player character object and said first terrain object while performing said transformation in said first scene which is a subsequent scene.
21. The computer includes: Rendering the objects in the virtual space in a frame buffer based on the orthogonal projection, and further rendering a second terrain object among the objects in the virtual space while performing the transformation; moving the player character object when a second condition in the game is satisfied based on the control of the player character object; The game processing method according to claim 19, further comprising rendering said player character object while performing said transformation in said first scene which is a subsequent scene.
22. The computer includes: Rendering objects in the virtual space onto the frame buffer while performing a depth test; Further, for the image drawn in the frame buffer, The game processing method according to claim 19, further comprising adding a predetermined effect based on pixels in a second range excluding a first range in which the depth is small, based on the depth in the depth buffer.
23. The game processing method according to claim 22, wherein the predetermined effect is a bloom effect.
24. The computer includes: The game processing method according to claim 23, wherein when a color is added to pixels in the first range by the bloom effect based on pixels in the second range, the color to be added is corrected based on at least a power.
Citation Information
Patent Citations
Ultrashort focus achromat objective lens
JP1981043617A
Game device and operational system for the same
JP2002200330A
Program, information storage medium and image generation system
JP2007226576A
Program, information storage medium, and image generation system
JP2010033297A
Program, information storage medium, and image generating device
JP2011101752A