PROGRAM, INFORMATION PROCESSING APPARATUS AND INFORMATION PROCESSING METHOD
The program and device control the virtual camera based on the player's character and surrounding enemy characters to maintain high visibility, addressing the visibility issues in conventional systems by ensuring all relevant characters are displayed during close combat.
Patent Information
- Application Number
- JP2021160682
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-09-30
- Publication Date
- 2026-02-10
- Estimated Expiration
- 2041-09-30
AI Technical Summary
Conventional information processing devices fail to maintain high visibility of multiple enemy characters when the player's character and multiple enemy characters approach each other, reducing the visibility of enemy characters other than the locked-on target.
A program and information processing device that control the virtual camera based on the position and type of action of the player's character and surrounding enemy characters, determining a specific point and adjusting the virtual camera's position and orientation to ensure all relevant characters are visible.
Enhances visibility of multiple enemy characters by automatically and appropriately displaying them in the vicinity of the player's character, improving the gaming experience during close combat scenarios.
Smart Images

Figure 0007812633000001 
Figure 0007812633000002 
Figure 0007812633000003
Abstract
Description
[Technical Field]
[0001] The present invention relates to a program, an information processing device, and an information processing method. [Background technology]
[0002] BACKGROUND ART Conventionally, information processing devices that generate an image viewed from a virtual camera (given viewpoint) in an object space (virtual three-dimensional space) in which objects such as characters are placed are known.
[0003] Some information processing devices of this type lock on to enemy characters within a predetermined distance from the player's own character as a target for attack, orient the player's own character in the direction of the locked-on enemy character, and control the virtual camera so that it photographs the player's own character from behind (see Patent Document 1). [Prior art documents] [Patent documents]
[0004] [Patent Document 1] Patent No. 6318228 Summary of the Invention [Problem to be solved by the invention]
[0005] However, conventional information processing devices do not take into consideration the control of the virtual camera when the player's character and multiple enemy characters approach each other, and therefore, in the image generated when the player's character and multiple enemy characters approach each other, the visibility of enemy characters other than the locked-on enemy character is reduced.
[0006] The present invention has been made in view of the above circumstances, and an object of the present invention is to provide a program, an information processing device, and an information processing method that are capable of generating an image with high visibility. [Means for solving the problem]
[0007] (1) The present invention relates to a program for generating an image of a virtual space viewed from a virtual camera, the program causing a computer to function as an object control unit that controls the movement in the virtual space of a first object that can be controlled by a player and one or more second objects that cannot be controlled by the player; a highest priority object setting unit that sets the highest priority second object from among the second objects that exist around the first object; a specific point determination unit that determines a specific point based on the position of the highest priority second object and the positions of the other second objects when other second objects exist around the set highest priority second object; and a virtual camera control unit that controls at least one of the position and orientation of the virtual camera based on the determined specific point.
[0008] In the present invention, a specific point is determined based on the position of the highest priority second object and the positions of other second objects, and at least one of the position and orientation of the virtual camera is controlled based on the specific point, so that even if multiple second objects exist around the first object, the multiple second objects can be automatically and appropriately displayed.
[0009] (2) In the present invention, the virtual camera control unit may control the orientation of the virtual camera so that the specific point falls within a predetermined range of the image viewed from the virtual camera.
[0010] In this way, a plurality of second objects can be automatically and appropriately displayed in the vicinity of a predetermined range.
[0011] (3) In the present invention, the virtual camera control unit may control the orientation of the virtual camera based on the type of action of the first object.
[0012] In this way, a plurality of second objects can be automatically and appropriately displayed according to the type of action of the first object.
[0013] (4) In the present invention, the virtual camera control unit may control the position of the virtual camera based on at least one of the position, the number, and the size of the second object.
[0014] In this way, the second objects can be automatically and appropriately displayed depending on at least one of the positions, the number, and the sizes of the second objects.
[0015] (5) The present invention also relates to an information processing device for generating an image of a virtual space viewed from a virtual camera, the information processing device including: an object control unit that controls the movement in the virtual space of a first object that can be controlled by a player and one or more second objects that cannot be controlled by the player; a highest priority object setting unit that sets the highest priority second object from among the second objects that exist within a first range according to the position of the first object; a specific point determination unit that determines a specific point based on the position of the highest priority second object and the positions of the other second objects when other second objects exist around the set highest priority second object; and a virtual camera control unit that controls at least one of the position and orientation of the virtual camera based on the determined specific point.
[0016] (6) The present invention also relates to an information processing method executed by a computer for generating an image of a virtual space viewed from a virtual camera, the information processing method controlling the movement in the virtual space of a first object that can be controlled by a player and one or more second objects that cannot be controlled by the player, setting a highest priority second object from among the second objects that exist within a first range according to the position of the first object, determining a specific point based on the position of the highest priority second object and the positions of the other second objects when other second objects exist around the set highest priority second object, and controlling at least one of the position and orientation of the virtual camera based on the determined specific point.
[0017] (7) The present invention also relates to a non-transient computer-readable information storage medium that stores a program that causes a computer to function as an object control unit for generating an image of a virtual space viewed from a virtual camera, the program including: an object control unit that controls the movement in the virtual space of a first object that can be controlled by a player and one or more second objects that cannot be controlled by the player; a highest priority object setting unit that sets the highest priority second object from among the second objects that exist around the first object; a specific point determination unit that determines a specific point based on the position of the highest priority second object and the positions of the other second objects when other second objects exist around the set highest priority second object; and a virtual camera control unit that controls at least one of the position and orientation of the virtual camera based on the determined specific point. [Brief explanation of the drawings]
[0018] [Figure 1] 1 is a schematic block diagram illustrating a configuration of an information processing system according to an embodiment of the present invention. [Figure 2] FIG. 2 is a functional block diagram illustrating functions of a server device according to an embodiment of the present invention. [Figure 3]FIG. 2 is a functional block diagram showing functions of a terminal device according to an embodiment of the present invention. [Figure 4] FIG. 10 is a diagram showing an image displayed on a terminal device according to an embodiment of the present invention. [Figure 5] FIG. 2 is a diagram illustrating a controller of the terminal device according to the embodiment of the present invention. [Figure 6] FIG. 2 is a diagram illustrating a virtual three-dimensional space according to an embodiment of the present invention. [Figure 7] FIG. 2 is a diagram illustrating a virtual three-dimensional space according to an embodiment of the present invention. [Figure 8] FIG. 2 is a diagram illustrating a virtual three-dimensional space according to an embodiment of the present invention. [Figure 9] FIG. 2 is a diagram illustrating a virtual three-dimensional space according to an embodiment of the present invention. [Figure 10] FIG. 2 is a diagram showing a virtual three-dimensional space according to an embodiment of the present invention. [Figure 11] FIG. 2 is a diagram illustrating a virtual three-dimensional space according to an embodiment of the present invention. [Figure 12] FIG. 10 is a diagram showing an image displayed on a terminal device according to an embodiment of the present invention. [Figure 13] 1 is a flowchart illustrating a processing flow according to an embodiment of the present invention. [Figure 14] 1 is a flowchart illustrating a processing flow according to an embodiment of the present invention. [Figure 15] 1 is a flowchart illustrating a processing flow according to an embodiment of the present invention. [Figure 16] 1 is a flowchart illustrating a processing flow according to an embodiment of the present invention. [Figure 17] 1 is a flowchart illustrating a processing flow according to an embodiment of the present invention. [Figure 18] 1 is a flowchart illustrating a processing flow according to an embodiment of the present invention. [Figure 19] 1 is a flowchart illustrating a processing flow according to an embodiment of the present invention. DETAILED DESCRIPTION OF THE INVENTION
[0019] The following describes an embodiment of the present invention. Note that the embodiment described below does not unduly limit the content of the present invention described in the claims. Furthermore, not all of the configurations described in the embodiment are necessarily essential components of the present invention.
[0020] 1. Information processing system configuration Fig. 1 is a schematic block diagram showing the configuration of an information processing system 10 according to this embodiment. As shown in Fig. 1, in the information processing system 10, a server device 12 and multiple terminal devices 14 are connected via a network 16 such as the Internet, a mobile phone network, a LAN, or a WAN, forming a so-called client-server communication system. Each of the multiple terminal devices 14 communicates with the server device 12 via the network 16 to send and receive various information, and communicates with the other terminal devices 14 via the network 16 and the server device 12 to send and receive various information.
[0021] The server device 12 includes a processor such as a CPU, a main memory such as a ROM or RAM, an external memory such as a hard disk, an input device such as a keyboard, a display device such as an LCD display, a communication device, etc. In the server device 12, the CPU executes various processes according to programs stored in the main memory or programs loaded into the main memory from the external memory, and receives information from the terminal device 14 and transmits information to the terminal device 14 via the communication device.
[0022] The terminal device 14 can be an information processing device of various forms, such as a smartphone, tablet, personal computer, portable game console, or stationary game console, and each of these devices also includes a processor such as a CPU, a main memory such as a ROM or RAM, an external memory such as a flash memory or a hard disk, an input device such as a touch panel, keyboard, or microphone, a display device such as an LCD display or an organic EL display, a sound output device such as a speaker, a communication device, etc. In the terminal device 14, the CPU also executes various processes according to programs stored in the main memory or programs loaded into the main memory from an external memory device, and receives information from the server device 12 via the communication device, and transmits information to the server device 12 or other terminal devices 14.
[0023] Fig. 2 is a functional block diagram showing the functions of the server device 12 of this embodiment. As shown in Fig. 2, the server device 12 of this embodiment includes a server information storage medium 20, a server storage unit 30, a server communication unit 36, and a server information processing unit 40. Note that some of the components (units) of Fig. 2 may be omitted.
[0024] The server information storage medium 20 stores programs and data for the server information processing unit 40 and the server communication unit 36 to perform various processes, and its functions can be realized by a flash memory, a hard disk, an optical disc (DVD, BD), etc. In other words, the server information storage medium 20 stores programs for causing a computer to function as each unit of this embodiment (programs for causing a computer to execute the processing of each unit).
[0025] The server storage unit 30 serves as a work area for the server information processing unit 40 and the server communication unit 36, and its functions can be realized by RAM (main memory), VRAM (video memory), etc. In detail, the server storage unit 30 includes a main memory unit 32 into which programs and data are read from the server information storage medium 20.
[0026] The server communication unit 36 performs various controls for communication with an external network (e.g., other server devices 12 or terminal devices 14), and its functions can be realized by various processors (CPU (main processor), GPU (graphics processor), DSP, etc.), or hardware such as a communication ASIC, or programs.
[0027] The server information processing unit 40 performs various processes such as game processing based on the received data received by the server communication unit 36 and various programs and data in the server memory unit 30, using the main memory unit 32 as a work area, and its functions can be realized by hardware such as various processors and ASICs, or programs.
[0028] The server information processing unit 40 includes a server game processing unit 42 and a server communication control unit 48. Note that some of these components may be omitted.
[0029] Based on the received data received by the server communication unit 36, the results of various processes performed by the server information processing unit 40, and the programs and data loaded into the main memory unit 32, the server game processing unit 42 performs processes such as starting a game when a game start condition is met, executing a game function selected from multiple types of game functions, matching multiple players (player identification information, player IDs) to form a single group, having multiple players forming a single group participate in a common game, controlling a competitive game, progressing the game, determining by lottery from multiple game media game media such as characters and items to be provided (granted) to players, generating an event when an event occurrence condition is met, calculating the game result, or ending the game when a game end condition is met.
[0030] The server communication control unit 48 causes the server communication unit 36 to communicate with other server devices 12 or terminal devices 14, and performs processing for transmitting and receiving various information. For example, the server communication control unit 48 causes the server communication unit 36 to transmit and receive information necessary for the process of newly registering a player in the information processing system 10, information necessary for the process of logging a player into the information processing system 10, information necessary for the process of setting an opponent player who will cooperate or compete with the logged-in player, information necessary for the process of synchronizing multiple terminal devices 14, and information necessary for the process of running a common game on multiple terminal devices 14. The server communication control unit 48 also causes the server communication unit 36 to transmit and receive destination information indicating the destination of the information, source information indicating the source of the information, identification information identifying the information processing system 10 that generated the information, and the like.
[0031] Fig. 3 is a functional block diagram showing the functions of the terminal device 14 of this embodiment. As shown in Fig. 3, the terminal device 14 of this embodiment includes a player input detection unit 50, a display unit 52, a sound output unit 54, a terminal information storage medium 56, a terminal storage unit 60, a terminal communication unit 66, and a terminal information processing unit 100. Note that some of the components (units) of Fig. 3 may be omitted.
[0032] The player input detection unit 50 is for detecting inputs made by the player to the terminal device 14 as player inputs, and its function can be realized by a touch sensor, a switch, an optical sensor, a variable resistance sensor (potentiometer), an acceleration sensor, a microphone, etc.
[0033] The display unit 52 displays images on a display screen, and its function can be realized by a liquid crystal display, an organic EL display, or the like.
[0034] The sound output unit 54 outputs sound, and its function can be realized by a speaker, headphones, or the like.
[0035] The terminal information storage medium 56 stores programs and data for the terminal information processing unit 100 and the terminal communication unit 66 to perform various processes, and the functions thereof can be realized by a flash memory, a hard disk, an optical disc (DVD, BD), etc. That is, the terminal information storage medium 56 stores programs for causing a computer to function as each unit of this embodiment (programs for causing a computer to execute the processing of each unit).
[0036] The terminal storage unit 60 serves as a work area for the terminal information processing unit 100 and the terminal communication unit 66, and its functions can be realized by RAM (main memory), VRAM (video memory), etc. In detail, the terminal storage unit 60 includes a main memory unit 62 into which programs and data are read from the terminal information storage medium 56, and a drawing buffer 64 into which images to be displayed on the display unit 52 are drawn.
[0037] The terminal communication unit 66 performs various controls for communication with an external network (e.g., a server device 12 or another terminal device 14), and its functions can be realized by hardware such as various processors or communication ASICs, or programs.
[0038] In addition, the programs (data) for causing the computer to function as each part of this embodiment may be downloaded from the server device 12 to the terminal information storage medium 56 (or main memory unit 62) of the terminal device 14 via the network 16 and the terminal communication unit 66, and such use of the server device 12 may also be included within the scope of the present invention.
[0039] The terminal information processing unit 100 performs various processes such as game processing, image generation processing, and sound generation processing based on the player input detected by the player input detection unit 50, the received data received by the terminal communication unit 66, and the various programs and data in the terminal storage unit 60, using the main storage unit 62 as a work area, and its functions can be realized by various processors (CPU (main processor), GPU (graphics processor), DSP, etc.), hardware such as ASIC, and programs.
[0040] The terminal information processing unit 100 includes a terminal game processing unit 102, an input receiving unit 103, a display control unit 104, an image generation unit 108, a sound generation unit 110, and a terminal communication control unit 112. Note that some of these units may be omitted.
[0041] The terminal game processing unit 102 (game processing unit) performs the following processes based on the player input detected by the player input detection unit 50, the received data received by the terminal communication unit 66, the results of various processes performed by the terminal information processing unit 100, and the programs and data loaded into the main memory unit 62: starting a game when a game start condition is met, executing a game function selected from multiple types of game functions, matching a player (player ID) of the terminal with a player (other player ID) of another terminal to participate in a common game, controlling a competitive game, progressing the game, generating an event when an event generation condition is met, updating various parameters of the player or character of the terminal, calculating the game result, or ending the game when a game end condition is met.
[0042] The input acceptance unit 103 accepts the player's input as an input appropriate for the situation, or does not accept the player's input, based on the player input detected by the player input detection unit 50, the received data received by the device communication unit 66, the results of various processes performed by the device information processing unit 100, the programs and data loaded into the main memory unit 62, etc. For example, when a GUI such as a button is displayed and the GUI is tapped, the tap is accepted as an input appropriate for the type of GUI displayed.
[0043] The display control unit 104 controls the display of images displayed on the display unit 52. Specifically, the display control unit 104 controls the display content, display mode, display timing, etc. of various objects and pre-rendered images (movie images) based on the player input detected by the player input detection unit 50, the received data received by the device communication unit 66, the results of various processes performed by the device information processing unit 100, the programs and data loaded into the main memory unit 62, etc.
[0044] For example, object data of various objects such as background objects for displaying backgrounds, effect objects for displaying effects, GUI objects for displaying GUIs (Graphical User Interfaces) such as buttons, character objects for displaying a player's own character (first object) whose movement and actions can be controlled by the player and one or more enemy characters (second objects) whose movement and actions cannot be controlled by the player, non-character objects for displaying objects other than characters such as buildings, tools, vehicles, and terrain, and image data of various pre-rendered images are stored in the terminal information storage medium 56.
[0045] The display control unit 104 controls the display of objects and pre-rendered images based on the object data and image data of pre-rendered images loaded into the main memory unit 62, depending on the type of game function being executed and the progress of the game.
[0046] When displaying a three-dimensional game image, the display control unit 104 performs processing to place, move, or operate objects made up of primitives such as polygons, free-form surfaces, and two-dimensional images that represent the objects in a virtual three-dimensional space (virtual space) based on the object data loaded into the main memory unit 62. The display control unit 104 also performs processing to control the position, direction (line of sight direction), and angle of view (field of view range) of a virtual camera (viewpoint) to generate an image that can be seen from a given (arbitrary) viewpoint in the virtual three-dimensional space.
[0047] More specifically, the display control unit 104 includes an object control unit 120 , a highest priority object setting unit 122 , a specific point determination unit 124 , and a virtual camera control unit 126 .
[0048] The object control unit 120 performs processing to place various objects configured with primitive surfaces such as polygons in a virtual three-dimensional space. Specifically, the object control unit 120 determines the position and orientation (rotation angle) of an object in the world coordinate system for each frame (1 / 30 seconds) based on the player input detected by the player input detection unit 50, the received data received by the device communication unit 66, the results of various processes performed by the device information processing unit 100, and programs and data loaded into the main memory unit 62, and places the object at the determined position (three-dimensional coordinates) in the determined orientation.
[0049] Furthermore, the object control unit 120 performs movement calculations and motion calculations (movement or motion simulations) for moving or moving objects such as the player's character and enemy characters. Specifically, the object control unit 120 calculates object movement information (position, rotation angle, speed, acceleration, etc.) and motion information (position, rotation angle, speed, acceleration, etc.) for each frame based on the player input detected by the player input detection unit 50, the received data received by the device communication unit 66, the results of various processes performed by the device information processing unit 100, and the movement algorithm, motion algorithm, and motion data loaded into the main memory unit 62, and performs processing to move the object within the virtual three-dimensional space and to cause each of the multiple parts that make up the object to move (animate).
[0050] In particular, when the object is a character object, the object control unit 120 controls the movement of the character object based on motion data associated with each character. Specifically, the motion data includes the position and rotation angle (the rotation angle of a child bone relative to a parent bone) of each bone that constitutes the skeleton of the character object (the part objects, joints, and motion bones that constitute the character), and the object control unit 120 controls the attacking action, defensive action, moving action, etc. of the character object by moving each bone that constitutes the skeleton of the character object based on the motion data or by deforming the skeleton shape.
[0051] The highest priority object setting unit 122 detects enemy characters that exist within a range corresponding to the position of the player's character, and sets the highest priority enemy character from among the detected enemy characters.
[0052] A specific point determination unit 124 determines a specific point based on the position of the enemy character with the highest priority when no other enemy characters exist around the set enemy character with the highest priority, and determines a specific point based on the position of the enemy character with the highest priority and the positions of the other enemy characters when other enemy characters exist around the set enemy character with the highest priority.
[0053] The virtual camera control unit 126 performs processing to control a virtual camera (viewpoint) for generating an image seen from a given (arbitrary) viewpoint in the virtual three-dimensional space. Specifically, the virtual camera control unit 126 determines the position, orientation (rotation angle), and angle of view of the virtual camera in the world coordinate system for each frame (1 / 30 seconds) based on the player input detected by the player input detection unit 50, the received data received by the device communication unit 66, the results of various processes performed by the device information processing unit 100, the program and virtual camera control data loaded into the main memory unit 62, etc., and places the virtual camera at the determined position with the determined orientation and angle of view.
[0054] Here, the orientation of the virtual camera may be controlled by setting a gaze point, which is the point from which the virtual camera looks, in the virtual three-dimensional space, and controlling the orientation of the virtual camera so that it faces the set gaze point. The angle of view of the virtual camera may be controlled by expanding or contracting the angle of view, or by changing the distance between the virtual camera and a screen (projection surface) onto which the object is projected. By narrowing the angle of view of the virtual camera or increasing the distance between the screen and the virtual camera, an image that zooms in on the target object can be generated, and by widening the angle of view of the virtual camera or decreasing the distance between the screen and the virtual camera, an image that zooms back from the target object can be generated.
[0055] The virtual camera control unit 126 also controls the position, orientation, and angle of view of the virtual camera so that the virtual camera follows changes in the position and orientation of the player's character, which moves and performs actions based on player input, and so that the position, orientation, and angle of view of the virtual camera change based on player input.
[0056] Furthermore, based on virtual camera control data for specifying the position (movement path), orientation, angle of view, and point of interest of the virtual camera, virtual camera control unit 126 controls the position, orientation, and angle of view of the virtual camera so that the virtual camera moves to a predetermined position, moves along a predetermined movement path, rotates its orientation by a predetermined rotation angle, or changes its angle of view to a predetermined angle of view. The virtual camera control data may include the position, rotation angle, angle of view, and point of interest of the virtual camera for each frame, as well as the amount of change, rate of change, and period of change (number of frames) for each frame of the position, rotation angle, angle of view, and point of interest of the virtual camera.
[0057] Furthermore, the virtual camera control unit 126 controls at least one of the position and the orientation of the virtual camera based on the specific point determined by the specific point determination unit 124 .
[0058] The image generation unit 108 performs processing to draw a game image in the drawing buffer 64 for each frame based on the player input detected by the player input detection unit 50, the received data received by the device communication unit 66, the results of various processes performed by the device information processing unit 100, in particular the results of various processes performed by the display control unit 104, and the programs and data loaded into the main memory unit 62, thereby generating a game image in which various objects and various pre-rendered images are displayed, and outputs the generated game image to the display unit 52 to display the game image.
[0059] When generating a three-dimensional game image, object data (model data) including vertex data (vertex position coordinates, texture coordinates, color data, normal vector or alpha value, etc.) for each vertex of the object (model) is obtained based on various processing results of the display control unit 104, and vertex processing (shading by a vertex shader) is performed based on the vertex data included in the obtained object data.
[0060] In vertex processing, vertex movement processing, coordinate transformation (world coordinate transformation, camera coordinate transformation), clipping processing, perspective transformation, and other geometric processing are performed in accordance with a vertex processing program (vertex shader program), and based on the results of this processing, the vertex data given for the group of vertices that make up the object is changed (updated, adjusted).
[0061] After vertex processing, rasterization (scan conversion) is performed based on the vertex data after vertex processing, and the faces of the polygons (primitives) are associated with the pixels. After rasterization, pixel processing (shading by pixel shaders, fragment processing) is performed to draw the pixels that make up the image (fragments that make up the display screen).
[0062] In pixel processing, various processes such as texture mapping, hidden surface removal, setting / changing color data, semi-transparent compositing, and anti-aliasing are performed in accordance with the pixel processing program (pixel shader program) to determine the final drawing color of the pixels that make up the image, and the drawing color of the perspective-transformed object is output (drawn) to the drawing buffer 64 (a buffer that can store image information on a pixel-by-pixel basis; a rendering target). In other words, in pixel processing, per-pixel processing is performed to set or change image information (color value, brightness value, Z value, normal, alpha value, etc.) on a pixel-by-pixel basis. This generates an image that can be seen from a virtual camera (a given viewpoint) in virtual 3D space.
[0063] The sound generation unit 110 performs sound processing based on the results of various processes performed by the terminal information processing unit 100, generates game sounds such as music, background music, sound effects, or voices, and outputs them to the sound output unit .
[0064] The terminal communication control unit 112 performs processing to cause the terminal communication unit 66 to communicate with the server device 12 or other terminal devices 14 and to transmit and receive various information. For example, the terminal communication control unit 112 causes the terminal communication unit 66 to transmit and receive information necessary for the process of newly registering a player in the information processing system 10, information necessary for the process of logging a player into the information processing system 10, information necessary for the process of setting an opponent player who will cooperate or compete with the logged-in player, information necessary for the process of synchronizing multiple terminal devices 14, and information necessary for the process of running a common game on multiple terminal devices 14. The terminal communication control unit 112 also causes the terminal communication unit 66 to transmit and receive destination information indicating the destination of the information, source information indicating the source of the information, identification information identifying the information processing system 10 that generated the information, and the like.
[0065] In addition, the server device 12 may be provided with all or part of the functions of the terminal information storage medium 56 of the terminal device 14, all or part of the functions of the terminal memory unit 60, all or part of the functions of the terminal communication unit 66, and all or part of the functions of the terminal information processing unit 100, or the terminal device 14 may be provided with all or part of the functions of the server information storage medium 20 of the server device 12, all or part of the functions of the server memory unit 30, all or part of the functions of the server communication unit 36, and all or part of the functions of the server information processing unit 40.
[0066] 2. Control method of this embodiment The control method of this embodiment will be described in detail below, taking as an example a case where the terminal device 14 is a console video game machine and the game program of this embodiment is applied as a game application for the console video game machine.
[0067] 4 is a diagram showing an example of a game image generated by the game program of this embodiment and displayed on the display 200. The game program of this embodiment is configured to be able to execute an action game from a third-person perspective, and generates an image of the player's character viewed from the right rear of the player's character, as shown in FIG. 4, and displays it on the display 200. In the example of FIG. 4, two enemy characters are displayed in front of the player's character.
[0068] While viewing the display 200, the player uses the controller 202 of the console video game machine shown in FIG. 5 to input movements and actions of the player's character, and enjoys the game battling multiple enemy characters that move and act according to a given algorithm.
[0069] As shown in FIG. 5, the controller 202 is provided with a left analog stick 204, a right analog stick 206, multiple buttons 208, a directional pad 210, etc., and the direction and amount of tilt of the left analog stick 204 and the right analog stick 206 are detected by variable resistance sensors.
[0070] When the left analog stick 204 is tilted, this is detected as a movement input for moving the player's character, and the player's character moves according to the direction and amount of tilt of the left analog stick 204. When the right analog stick 206 is tilted, this is detected as a virtual camera input for changing the orientation of the virtual camera, and the orientation of the virtual camera changes according to the direction and amount of tilt of the right analog stick 206.
[0071] Furthermore, when any of the buttons 208 or directional pad 210 is pressed, depending on the type of button 208 pressed or the position on the directional pad 210 pressed, it is detected as an attack input that causes the player's character to perform an attack action against an enemy character, or as an evasion input that causes the player's character to perform an evasion action against the enemy character's attack.
[0072] The virtual camera is basically placed at a reference position a predetermined distance to the rear and right of the player's character, and is oriented so as to tilt slightly to the left relative to the direction of the player's character, and as shown in Fig. 4, the player's character is displayed at a position shifted to the lower left from the center of the display area of the display 200. When the player's character moves and the position and orientation of the player's character change, the position and orientation of the virtual camera are controlled to follow the changes in the position and orientation of the player's character.
[0073] In detail, when a movement input is made without a virtual camera input, attack input, or evasion input being made, causing the position and orientation of the character to change, the position and orientation of the virtual camera are controlled so that the relationship between the position of the player's character and the position of the virtual camera, and the relationship between the orientation of the player's character and the orientation of the virtual camera are in a predetermined relationship.
[0074] However, when engaging in close combat with an enemy character, if the orientation of the virtual camera changes to follow the orientation of your character, the enemy character may not be displayed, which can make it difficult to fight the enemy character and other inconveniences.
[0075] Therefore, in the game program of this embodiment, each time a frame is updated and the position of an object is updated, one enemy character is set as the top priority target (top priority object) based on the player's input and the relative positions of the player's character and enemy characters, and a correction process is performed to correct (control) at least one of the position and orientation of the virtual camera so that the top priority target is automatically displayed.
[0076] In detail, when a movement input, attack input or evasion input is being performed, no virtual camera input is being performed and the player's character is equipped with a melee weapon, an enemy character detection process is first performed to detect the enemy character that is the target of the correction process.
[0077] Fig. 6 is a diagram showing a top view of the virtual three-dimensional space when the image in the example of Fig. 4 is generated. In the enemy character detection process, as shown in Fig. 6, enemy characters present within the detection range of a rectangular parallelepiped with a square bottom (around the first object) are detected, and the detected enemy character is set as the enemy character to be processed.
[0078] The detection range is set so that the position of the player's character is at the center of the bottom of the detection range and so that the player's character is facing in the same direction as the virtual camera, and so that the detection range follows the position of the player's character and the direction of the virtual camera.
[0079] However, enemy characters that are hidden by an object such as a wall when viewed from the player character are excluded from the enemy characters to be processed even if they are within the detection range.
[0080] In the example of Figure 6, enemy character A, enemy character B, and enemy character C are detected as enemy characters within the detection range, but since enemy character C is in an obstructed state, enemy character A and enemy character B, excluding enemy character C, are set as the enemy characters to be processed.
[0081] However, if an enemy character that was set as the top priority target in the previous frame is within the detection range, even if it is in an obstructed state, it will remain set as the top priority target until two seconds have passed since it was in an obstructed state, and will not be excluded from the enemy characters to be processed.
[0082] Therefore, if an enemy character that was set as the top priority target in the previous frame remains in an obscured state for two seconds, the top priority target setting will be canceled and the enemy character will be excluded from the enemy characters to be processed.
[0083] This means that even if the enemy character set as the top priority target becomes momentarily obscured due to movement of the player's character or the enemy character set as the top priority target, or a change in the direction of the virtual camera, the enemy character remains the top priority target, so the top priority target does not change frequently.
[0084] The size of the detection range varies depending on the type of enemy character placed in the virtual three-dimensional space, and the larger the enemy character, the larger the detection range that is set.
[0085] If the result of the enemy character detection process is that there are enemy characters to be processed, a top priority target setting process is performed to set one of the enemy characters to be processed as the top priority target. The conditions for the top priority target differ depending on the game situation; if the player's character is performing an attack action with a melee weapon, the enemy character being attacked is set as the top priority target, and if the player's character is performing an evasive action, the enemy character attacking the player's character is set as the top priority target.
[0086] Additionally, when the player's character is moving and not performing an attack or evasion action, the highest priority target enemy character is set based on the player's input and the relative positions of the player's character and enemy character.
[0087] 7 is a diagram showing the positional relationship between the player's character and the enemy character. As shown in FIG. 7, when an enemy character to be processed exists within a first range centered on the player's character's position, the enemy character closest to the player's character is basically set as the highest priority target. Note that the first range is a range included in the detection range shown in FIG. 6, and the second range centered on the player's character's position is a range included in the first range.
[0088] In the example of FIG. 7, enemy character A is the enemy character to be processed that is closest to the player character, and therefore enemy character A is set as the top priority target.
[0089] However, even if the enemy character that was set as the top priority target in the previous frame is not the closest to the player's character, if it exists within the first range and there is no other enemy character to be processed that is closer to the player's character within the second range, the setting of the top priority target will be maintained.
[0090] Therefore, if the enemy character that was set as the top priority target in the previous frame is not present within the first range, and another enemy character to be processed is present within the first range, the other enemy character to be processed that is closest to the player's character within the first range is set as the top priority target instead of the enemy character that was set as the top priority target in the previous frame.
[0091] Furthermore, even if an enemy character that was set as the top priority target in the previous frame is present within the first range, if there is another enemy character to be processed that is closer to the player's character within the second range, the setting of the top priority target is canceled, and the other enemy character to be processed that is closest to the player's character within the second range is set as the top priority target.
[0092] This means that even if the enemy character closest to the player's character is within the first range but is replaced by another enemy character outside the second range due to movement of the player's character or enemy character, the top priority target is maintained, so the top priority target can be prevented from being changed frequently.
[0093] On the other hand, as shown in Figure 8, if there is no enemy character to be processed within the first range, i.e., if there is an enemy character to be processed outside the first range, and there is a movement input, the enemy character with the smallest angle difference between the movement direction of the player character and the direction of the enemy character from the player character is set as the top priority target.
[0094] In the example of Figure 8, enemy character A is the enemy character to be processed that is closest to the player character, but the player character's movement direction is to the right in the figure, and the angular difference A1 between the player character's movement direction and the direction of enemy character B is smaller than the angular difference A2 between the player character's movement direction and the direction of enemy character A. Therefore, enemy character B is the enemy character to be processed that has the smallest angular difference from the player character's movement direction, and therefore enemy character B is set as the top priority target.
[0095] However, even if the enemy character that was set as the top priority target in the previous frame does not have the smallest angular difference with the movement direction of the player character, if there is no other enemy character to be processed whose angular difference with the movement direction of the player character is equal to or less than the first angle, the setting of the top priority target in the previous frame will be maintained.
[0096] Therefore, if there is another enemy character to be processed whose angular difference with the movement direction of the player character is equal to or less than the first angle and smaller than the highest priority target, the other enemy character to be processed whose angular difference with the movement direction of the player character is the smallest is set as the highest priority target instead of the enemy character that was set as the highest priority target in the previous frame.
[0097] This means that even if the enemy character with the smallest angle difference from the direction of movement of the player's character is replaced with an angle difference greater than the first angle due to the movement of the player's character or enemy character, the top priority target is maintained, so that the top priority target does not change frequently.
[0098] Also, as shown in Figure 9, if there is no enemy character to be processed within the first range, i.e., if there is an enemy character to be processed outside the first range and no movement input is made, the enemy character with the smallest angular difference between the direction of the virtual camera and the direction of the enemy character from the player's character is set as the top priority target.
[0099] In the example of Figure 9, the virtual camera is facing upward and left in the figure, and the angular difference A3 between the virtual camera's direction and the direction of enemy character A is smaller than the angular difference A4 between the virtual camera's direction and the direction of enemy character B. Therefore, enemy character A is the enemy character to be processed that has the smallest angular difference from the virtual camera's direction, and therefore enemy character A is set as the top priority target.
[0100] However, even if the enemy character that was set as the top priority target in the previous frame does not have the smallest angle difference with the direction of the virtual camera, if there is no other enemy character to be processed whose angle difference with the direction of the virtual camera is equal to or less than the second angle, the setting of the top priority target in the previous frame will be maintained.
[0101] Therefore, if there is another enemy character to be processed whose angular difference with the direction of the virtual camera is equal to or less than the second angle and smaller than that of the highest priority target, the enemy character to be processed whose angular difference with the direction of the virtual camera is the smallest is set as the highest priority target in place of the enemy character that was set as the highest priority target in the previous frame.
[0102] This means that even if the enemy character with the smallest angle difference from the direction of the virtual camera is replaced with an angle difference greater than the second angle due to movement of the player's character or enemy character, the top priority target is maintained, so the top priority target can be prevented from being changed frequently.
[0103] When the highest priority target is set, a specific point determination process is performed to determine a specific point for controlling the orientation of the virtual camera based on the position of the enemy character of the highest priority target.
[0104] 10 is a diagram showing the positional relationship between the top priority target and the specific point. As shown in Fig. 10, if there are no other enemy characters to be processed within the third range (around the top priority second object) centered on the position of the enemy character of the top priority target, the position of the enemy character of the top priority target is determined as the specific point.
[0105] On the other hand, as shown in FIG. 11, if there are other enemy characters to be processed within the third range, the specific point is determined based on the position of the enemy character that is the top priority target and the positions of the other enemy characters to be processed.
[0106] In detail, the positions of the enemy characters within the third range are weighted so that the position of the enemy character with the highest priority target is weighted the most, and the specific point is determined by finding the center of gravity of the positions of the enemy characters within the third range.
[0107] In the example of Figure 11, within the third range, enemy character B is located to the right of enemy character A, the top priority target, so based on the positions of enemy character A, enemy character B, and the weighting of the positions of each enemy character, a specific point is determined to be at a position shifted to the right from the position of enemy character A, the top priority target.
[0108] This makes it possible to control the orientation of the virtual camera so that the player can easily grasp the position of each enemy character, even when there are multiple enemy characters.
[0109] Fig. 12 is a diagram showing an example of a game image displayed on the display 200. In the example of Fig. 12, enemy character A is set as the top priority target, but enemy character B exists to the right of enemy character A, the top priority target, within the above-mentioned third range, and therefore the specific point is determined to be at a position shifted to the right from the position of enemy character A, the top priority target.
[0110] Once the specific point is determined, if the player's character is performing an attack action with a melee weapon or an evasion action, a virtual camera correction process is performed to correct the orientation of the virtual camera so that a spherical specific range centered on the specific point falls within the first judgment range (predetermined range) shown in Figure 12.
[0111] Specifically, the first determination range is set on a screen onto which an object placed in the virtual three-dimensional space is projected so that the center of the first determination range is the center of the screen. Then, if a cone-shaped range connecting the position of the virtual camera and the specific range does not intersect with the screen inside the first determination range, the orientation of the virtual camera is corrected so that the cone-shaped range intersects with the screen inside the first determination range.
[0112] This allows the enemy character being attacked to be displayed as close to the center of the display area of the display 200 as possible when the player's character is performing an attack action with a close-range weapon, and the enemy character attacking the player's character to be displayed as close to the center of the display area of the display 200 as possible when the player's character is performing an evasive action.
[0113] However, when the player's character is performing an evasive action, the player's character's movement speed is high, so if the orientation of the virtual camera is corrected so that the specific range always falls within the first judgment range, the orientation of the virtual camera may change suddenly, resulting in an image that is difficult to see.
[0114] Therefore, when the player's character is taking an evasive action, the orientation of the virtual camera is corrected toward the closest position where the specific range fits within the first determination range, within the limit of the amount of correction of the virtual camera orientation in one frame, so that the orientation of the virtual camera does not change suddenly. Therefore, when the player's character is taking an evasive action, there are cases where the specific range does not fit completely within the first determination range.
[0115] Furthermore, when the player's character is moving, the orientation of the virtual camera is corrected so that a specific spherical range centered on a specific point falls within the second determination range (predetermined range) shown in FIG.
[0116] Specifically, the second judgment range is set to be wider than the first judgment range, and the center of the second judgment range on the screen is set to be slightly shifted to the right from the center of the screen. If the cone-shaped range connecting the virtual camera position and the specific range does not intersect with the screen inside the second judgment range, the orientation of the virtual camera is corrected so that the cone-shaped range intersects with the screen inside the second judgment range.
[0117] This allows the virtual camera orientation to be corrected less frequently based on a specific point when the player's character is moving than when the player's character is performing an attack action with a melee weapon or an evasive action, while also allowing the top priority target enemy character to be displayed more often to the right of the player's character, who is displayed in a position shifted downward and to the left from the center of the display area of display 200.
[0118] It should be noted that the specific points, specific ranges, first determination ranges, and second determination ranges shown in FIG. 12 exist as data but are not displayed as images.
[0119] Although not shown, when a large enemy character such as a dragon is set as the top priority target, a cubic specific area larger than the spherical specific area described above is set around an important part of the large enemy character, such as the face, and the orientation of the virtual camera is corrected so that the cubic specific area falls within the first judgment range or the second judgment range. In this way, the size and shape of the specific area differ depending on the size and shape of the enemy character.
[0120] However, for large enemy characters, although the specific range of the large enemy character falls within the first judgment range or the second judgment range, the end portion of the large enemy character may be outside the screen, i.e., outside the display range, and may not be displayed on the display 200.
[0121] Furthermore, if the other enemy characters to be processed within the third range centered on the top priority target enemy character are large enemy characters, simply correcting the orientation of the virtual camera may result in the large enemy character not being displayed, so the position of the virtual camera is corrected in the direction along the orientation of the virtual camera so that it moves away from the player's character.
[0122] In detail, the distance between the virtual camera and the player's character is determined for each of multiple types of large enemy characters according to the size and shape of the large enemy character, and the position of the virtual camera is corrected so that the distance between the virtual camera and the player's character becomes the distance determined for the large enemy character.
[0123] Furthermore, if the distance between the player's character and the highest priority target is short and an enemy character within the third range is outside the display range, the position of the virtual camera is corrected to move away from the player's character in a direction along the direction of the virtual camera so that the enemy character within the third range is within the display range.
[0124] Furthermore, if there are a large number of enemy characters to be processed and an enemy character is present within a fourth range behind the virtual camera even if it is not within the third range, the position of the virtual camera is corrected to move away from the player's character in a direction along the direction of the virtual camera so that the enemy character within the fourth range is within the display range.
[0125] Thus, in this embodiment, even if the player does not perform any virtual camera input or input to select the highest priority target, the enemy characters to be displayed are automatically and appropriately displayed according to the positions, orientations, sizes, etc. of the player's own character and multiple enemy characters.
[0126] As a result, in this embodiment, when battling multiple enemy characters, the player can concentrate on movement input, attack input, or evasion input, allowing the player to enjoy battling multiple enemy characters.
[0127] The flow of processing performed by the terminal information processing unit 100 of the terminal device 14 of this embodiment will be described below with reference to the flowcharts of Figures 13 to 19. In particular, the enemy character detection processing shown in Figure 14 and the highest priority target setting processing shown in Figures 15 and 16 are performed by the highest priority object setting unit 122, the specific point determination processing shown in Figure 17 is performed by the specific point determination unit 124, and the virtual camera correction processing shown in Figures 18 and 19 is performed by the virtual camera control unit 126.
[0128] As shown in FIG. 13, when the frame is updated and the object placement is updated (Y in step S100), there is player input (Y in step S102), and if there is virtual camera input (Y in step S104), it is determined whether or not a top priority target is being set (step S106), and if a top priority target is being set (Y in step S106), the top priority target setting is canceled (step S108), and the processing ends.
[0129] On the other hand, if there is player input (Y in step S102) but no virtual camera input (N in step S104), it is determined whether the player's character is equipped with a melee weapon (step S110), and if the player's character is equipped with a melee weapon (Y in step S110), enemy character detection processing is performed (step S112), and if the player's character is not equipped with a melee weapon (N in step S110), the processing ends.
[0130] As a result of the enemy character detection process, if an enemy character to be processed exists (Y in step S114), a top priority target setting process (step S116), a specific point determination process (step S118), and a virtual camera correction process (step S120) are performed.
[0131] As shown in FIG. 14, in the enemy character detection process, a detection range is acquired based on the position of the player's character and the direction of the virtual camera (step S200), and enemy characters within the acquired detection range are detected (step S202).
[0132] Then, if the top priority target is being set (Y in step S204), is within the detection range (Y in step S206), is obscured (Y in step S208), and remains obscured for a predetermined period of time (Y in step S210), the setting of the top priority target is cancelled (step S212).
[0133] Also, if the top priority target is not within the detection range (N in step S206), the setting of the top priority target is cancelled (step S212).
[0134] On the other hand, if the top priority target is not being set (N in step S204), if the top priority target is not in an obscured state (N in step S208), or if the obscured state has not continued for a predetermined period of time (N in step S210), the setting of the top priority target will not be released.
[0135] Then, from the detected enemy characters, enemy characters in an obstructed state, excluding the highest priority target, are excluded and set as enemy characters to be processed (step S214).
[0136] As shown in FIG. 15, in the top priority target setting process, if the player's character is performing an attack action with a melee weapon (Y in step S220), the enemy character being attacked is set as the top priority target (step S222).
[0137] Furthermore, if the player's character is currently taking an evasive action (Y in step S224), the enemy character attacking the player's character is set as the top priority target (step S226).
[0138] Furthermore, if the player's character is not performing an attack action with a melee weapon (N in step S220), if the player's character is not performing an evasion action (N in step S224), and if an enemy character to be processed exists within the first range (Y in step S228), it is determined whether or not a top priority target exists within the first range (step S230).
[0139] If the highest priority target exists within the first range (Y in step S230), an enemy character to be processed exists within the second range (Y in step S232), and an enemy character to be processed that is closer to the player's character than the highest priority target exists (Y in step S234), the closest enemy character to be processed is set as the highest priority target (step S236).
[0140] On the other hand, if there is no top priority target within the first range (N in step S230), the enemy character to be processed that is closest to the player's character is set as the top priority target (step S236).
[0141] Also, if there is no enemy character to be processed within the first range (N in step S228), as shown in FIG. 16, there is a movement input (Y in step S240), there is a top priority target outside the first range (Y in step S242), there is an enemy character to be processed whose angular difference from the movement direction is less than the first angle (Y in step S244), and there is an enemy character to be processed whose angular difference from the movement direction is smaller than that of the top priority target (Y in step S246), then the enemy character to be processed whose angular difference from the movement direction is smallest is set as the top priority target (step S248).
[0142] Furthermore, if there is no movement input (N in step S240), the highest priority target exists outside the first range (Y in step S250), there is an enemy character to be processed whose angular difference from the direction of the virtual camera is equal to or less than the second angle (Y in step S252), and there is an enemy character to be processed whose angular difference from the direction of the virtual camera is smaller than that of the highest priority target (Y in step S254), the enemy character to be processed whose angular difference from the direction of the virtual camera is the smallest is set as the highest priority target (step S256).
[0143] Also, as shown in FIG. 15, if the highest priority target exists within the first range (Y in step S230) but there is no enemy character to be processed within the second range (N in step S232), or if there is no enemy character to be processed that is closer to the player's character than the highest priority target (N in step S234), the setting of the highest priority target in the previous frame is maintained.
[0144] Also, as shown in FIG. 16, if there is a top priority target outside the first range (Y in step S242), but there is no enemy character to be processed whose angular difference from the moving direction is less than the first angle (N in step S244), if there is no enemy character to be processed whose angular difference from the moving direction is less than that of the top priority target (N in step S246), if there is no enemy character to be processed whose angular difference from the direction of the virtual camera is less than the second angle (N in step S252), or if there is no enemy character to be processed whose angular difference from the direction of the virtual camera is less than that of the top priority target (N in step S254), the setting of the top priority target in the previous frame is maintained.
[0145] 17, in the specific point determination process, if there is another enemy character to be processed within a third range centered on the top priority target (Y in step S270), a specific point is determined based on the position of the top priority target and the positions of the other enemy characters to be processed (step S272).On the other hand, if there is no other enemy character to be processed within the third range (N in step S270), the position of the top priority target is determined as the specific point (step S274).
[0146] 18, in the virtual camera correction process, if the player's character is performing an attack action with a close-range weapon (Y in step S280) and the specific range is outside the first determination range (Y in step S282), the orientation of the virtual camera is corrected so that the specific range is within the first determination range (step S284). On the other hand, if the specific range is not outside the first determination range (N in step S282), the orientation of the virtual camera is not corrected.
[0147] Furthermore, if the player's character is performing an evasive action (Y in step S286) and the specific range is outside the first determination range (Y in step S288), the orientation of the virtual camera is corrected so that the specific range is within the first determination range within the correction amount limit (step S290). On the other hand, if the specific range is not outside the first determination range (N in step S288), the orientation of the virtual camera is not corrected.
[0148] Furthermore, if the player's character is not performing an attack action with a close-range weapon (N in step S280), is not performing an evasion action (N in step S286), and the specific range is outside the second determination range (Y in step S292), the orientation of the virtual camera is corrected so that the specific range is within the second determination range (step S294).On the other hand, if the specific range is not outside the second determination range (N in step S292), the orientation of the virtual camera is not corrected.
[0149] Furthermore, as shown in FIG. 19, if the enemy character within the third range is a large enemy character (Y in step S296), the position of the virtual camera is corrected according to the type of large enemy character (step S298).
[0150] Furthermore, if the position of the enemy character within the third range is outside the display range (Y in step S300), the position of the virtual camera is corrected so that the position of the enemy character within the third range is within the display range (step S302).
[0151] Furthermore, if an enemy character is present within a fourth range behind the virtual camera (Y in step S304), the position of the virtual camera is corrected so that the enemy character within the fourth range is within the display range (step S306).
[0152] 3. Variations The present invention is not limited to the above-described embodiment, and various modifications are possible, and modifications are introduced below. Note that the above-described embodiment and the various methods described below as modifications can be appropriately combined and adopted as a method for realizing the present invention.
[0153] First, in the above embodiment, an example was given in which an image of the player's character viewed from the right rear of the player's character was generated, as shown in Fig. 4, but an image of the player's character viewed from above and behind the player's character may also be generated. In this case, the player's character is displayed in a position shifted downward from the center of the display area of display 200, and the second judgment range is set so that the center of the second judgment range is shifted slightly upward from the center of the screen.
[0154] In addition, in the above embodiment, an example was given in which the setting of the highest priority target in the previous frame is maintained if there are no other enemy characters to be processed whose angular difference with the movement direction of the player character is less than or equal to the first angle, and if there are no other enemy characters to be processed whose angular difference with the direction of the virtual camera is less than or equal to the second angle, but the first angle and the second angle may be the same angle or different angles.
[0155] In the above embodiment, an example was given in which the detection range shown in Figure 6 and the first and second ranges shown in Figure 7 are set around the position of the player's character, and the third range shown in Figure 10 is set around the position of the enemy character that is the top priority target, but the detection range, first range, second range and third range may also be set around the position of the virtual camera.
[0156] In the above embodiment, an example was given in which the orientation of the virtual camera is corrected so that a specific spherical range centered on a specific point falls within the first judgment range or the second judgment range shown in Figure 12, but the orientation of the virtual camera may also be corrected so that the specific point falls within the first judgment range or the second judgment range.
[0157] In the above embodiment, an example was given in which the orientation of the virtual camera is corrected based on a first judgment range when the player's character is performing an attack action with a melee weapon or an evasive action, and the orientation of the virtual camera is corrected based on a second judgment range when the player's character is moving; however, the orientation of the virtual camera may be corrected based on a common judgment range when the player's character is performing an attack action with a melee weapon, when the player's character is performing an evasive action, and when the player's character is moving, or the orientation of the virtual camera may be corrected based on different judgment ranges when the player's character is performing an attack action with a melee weapon, when the player's character is performing an evasive action, and when the player's character is moving.
[0158] Furthermore, the position of the virtual camera may be corrected so that a specific range or specific point falls within the first determination range or the second determination range, or the orientation of the virtual camera may be corrected according to the type of large enemy character, or the orientation of the virtual camera may be corrected so that the position of an enemy character within a third range falls within the display range. In other words, at least one of the position and orientation of the virtual camera may be controlled based on the specific point.
[0159] Furthermore, when the number of enemy characters within a predetermined range of the highest priority target is greater than a predetermined number, at least one of the orientation and position of the virtual camera may be corrected.
[0160] Furthermore, in the above embodiment, an example was given of the application of the present invention to a solo-player action game, but the present invention may also be applied to a multiplayer competitive game, in which case enemy characters may be controllable by other players.
[0161] In addition, in the above embodiment, an example was given of the present invention being applied to an action game, but the present invention may also be applied to various third-person perspective games, such as sports games such as soccer and basketball, fighting games, and racing games.
[0162] In the above embodiment, the present invention has been described as being applied to a game application for a console video game machine. However, the present invention may also be applied to a smartphone (information processing device) or an arcade game device (information processing device) installed in a store. Even when the present invention is applied to a smartphone or an arcade game device, the terminal devices may be smartphones or arcade game devices, and multiple terminal devices may communicate with a server device. In this case, the present invention may be applied to the terminal devices or the server device. The present invention may also be applied to a standalone game device that is not connected to the server device 12. [Explanation of symbols]
[0163] 10 Information processing system, 12 Server equipment, 14 Terminal equipment, 16 Network, 20 Server information storage medium, 30 Server storage unit, 36 Server communication unit, 40 server information processing unit, 42 server game processing unit, 48 server communication control unit, 50 player input detection unit, 52 display unit, 54 sound output unit, 56 terminal information storage medium, 60 terminal storage unit, 62 main storage unit, 64 drawing buffer, 66 terminal communication unit, 100 terminal information processing unit, 102 terminal game processing unit, 103 input receiving unit, 104 display control unit, 108 image generation unit, 110 sound generation unit, 112 terminal communication control unit 120 object control unit, 122 highest priority object setting unit, 124 specific point determination unit, 126 virtual camera control unit
Claims
1. A program for generating an image of a virtual space viewed from a virtual camera, an object control unit that controls movement in the virtual space of a first object that can be controlled by a player and one or more second objects that cannot be controlled by the player; a highest priority object setting unit that sets the highest priority second object from among the second objects present around the first object, excluding the second objects that are in an obscured state and are obscured by a third object as seen from the first object; a specific point determination unit that, when other second objects excluding the second object in the occluding state are present around the set second object with the highest priority, determines a specific point based on a position of the second object with the highest priority and positions of the other second objects; A program that causes a computer to function as a virtual camera control unit that controls at least one of the position and orientation of the virtual camera based on the determined specific point.
2. In claim 1, The virtual camera control unit A program for controlling the orientation of the virtual camera so that the specific point falls within a predetermined range that is narrower than the display range of the image seen from the virtual camera.
3. In claim 1 or 2, The highest priority object setting unit setting a second object having the highest priority from among the second objects present in a specific range around the first object, excluding the second object in the occluded state; The specific range is A program that changes depending on the type of the second object.
4. In any one of claims 1 to 3, The highest priority object setting unit A program for setting the second object with the highest priority based on different conditions according to the game situation.
5. An information processing device for generating an image of a virtual space viewed from a virtual camera, an object control unit that controls movement in the virtual space of a first object that can be controlled by a player and one or more second objects that cannot be controlled by the player; a highest priority object setting unit that sets the highest priority second object from among the second objects present around the first object, excluding the second objects that are in an obscured state and are obscured by a third object as seen from the first object; a specific point determination unit that, when other second objects excluding the second object in the occluding state are present around the set second object with the highest priority, determines a specific point based on a position of the second object with the highest priority and positions of the other second objects; an information processing device including a virtual camera control unit that controls at least one of the position and the orientation of the virtual camera based on the determined specific point;
6. An information processing method executed by a computer for generating an image of a virtual space viewed from a virtual camera, comprising: controlling movement in the virtual space of a first object that can be controlled by a player and one or more second objects that cannot be controlled by a player; setting a second object with the highest priority from among the second objects present around the first object, excluding the second objects in an obscured state that are obscured by a third object as seen from the first object; determining a specific point based on a position of the second object having the highest priority and a position of the other second objects when the other second objects, excluding the second object in the occluded state, are present around the second object having the highest priority; An information processing method for controlling at least one of the position and orientation of the virtual camera based on the determined specific point.
Citation Information
Patent Citations
Electronic clinical thermometer
JP1988018228A
Game program
JP2003305275A
3D video game apparatus, control method for virtual camera in 3D video game and program and recording medium
JP2004267247A
Image generation program and game apparatus
JP2005027948A
Program, information storage medium and game device
JP2010068872A