WO2017077783A1 - プレイヤの移動履歴に基づいてノンプレイヤキャラクタの経路探索を行うゲームシステム等 - Google Patents
プレイヤの移動履歴に基づいてノンプレイヤキャラクタの経路探索を行うゲームシステム等 Download PDFInfo
- Publication number
- WO2017077783A1 WO2017077783A1 PCT/JP2016/077965 JP2016077965W WO2017077783A1 WO 2017077783 A1 WO2017077783 A1 WO 2017077783A1 JP 2016077965 W JP2016077965 W JP 2016077965W WO 2017077783 A1 WO2017077783 A1 WO 2017077783A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- movement
- determined
- player
- route
- game
- Prior art date
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/56—Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
- A63F13/67—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor adaptively or by learning from player actions, e.g. skill level adjustment or by storing successful combat sequences for re-use
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/79—Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
Definitions
- the present invention relates to a game system, a program, a server, an electronic device, and a game control method for searching for a route of a non-player character based on a player's movement history.
- the game is realized by a game system in which an electronic device such as a game machine, a PC terminal, or a mobile phone communicates with a server device or the like of a game operator, and a player who operates the electronic device cooperates with other players.
- a game can be progressed or a battle can be played in a battle game.
- Characters appearing in the game include non-player characters (hereinafter referred to as “NPC”) that are not operated by the player, in addition to player characters that can be operated by the player, and the computer can control the NPC to act independently. it can.
- NPC non-player characters
- Patent Document 1 describes a technique for running an NPC (ghost car) according to a record operated by a player before.
- NPC network-connected computer
- a game is released in which an NPC existing in a virtual space other than the peripheral area of the player character moves with some target as a target position.
- the most common NPC in such a game is a common enemy character in a genre called an action game or role-playing game, and these enemy characters attack the player or act to interfere with the player's action. It is arranged in the game for the purpose of performing, that is, targeting the player character operated by the player. Defeating or avoiding these enemy characters is one of the funs of the game.
- NPC is controlled by using artificial intelligence (AI) technology for games, and the movement of NPC has been controlled by the shortest path search method which is one field of artificial intelligence research in the prior art.
- AI artificial intelligence
- a shortest path search algorithm such as an A * (Aster) algorithm or a JPS (Jump Point Search) algorithm is applied to a 3D map to select an NPC movement path.
- the route search algorithm extracts the shortest route, the route of the character moved by a human who does not always move along the shortest route and the movement route of the NPC controlled by the computer become more dissimilar as the map becomes more complicated. Will do. Due to such a behavior gap between humans and NPCs, the behavior of NPCs appears unnatural and monotonous to human players. In particular, the player often feels unreasonable when he sees the NPC moving without difficulty on a short route, although the operation for movement is complicated.
- Fuzzy control and agent model can give human-like behavior at first glance, but when 3D maps become complicated, it is necessary to prepare control parameters according to the complexity. Is difficult.
- the shortest route search algorithm Since the shortest route search algorithm has a problem of computational complexity, it is difficult to perform route search considering various elements other than distance by weighting to the shortest route search algorithm. Parameter adjustment for selecting a route to be performed or a route that facilitates a moving operation is extremely difficult. In particular, in the case of a map having a complicated structure, there are a variety of factors to consider other than the distance on the route, such as securing the field of view and moving speed. Difficult to get.
- the present invention has been made in view of such a situation, and on the complicated map in the 3D game, the player recognizes as if the NPC is operated by a human being, thereby making the player feel realistic.
- the function of automatically weighting and determining the route of the NPC is provided.
- a function for automatically performing a route search in accordance with the strength and nature of the character in the game is provided. provide.
- a system includes a server and one or more electronic devices connected to the server via a network, and a character operated by a player of the electronic device connected to the server.
- a game system in which a game is progressed by being arranged in a common game field, and each of the game fields is composed of a plurality of navigation blocks each defining a movable position of a character.
- the movement start determining means for determining the movement start position and the movement target position of the non-player character and one or more players are operated.
- a global movement path determination means for determining a global movement path, and any log block that does not include the determined movement start position and movement target position among the log blocks constituting the determined global movement path;
- Each of the navigation block positions is selected as a small destination position, and from the determined movement start position or small destination position, the small destination position in the next log block on the determined global movement path or the above Local movement path determination means for determining a path to the determined movement target position, and movement control for moving the non-player character according to the determined path
- the means of the said server or said electronic device comprises a gaming system.
- the local movement route determination means selects a small destination position so that a route passing only in the adjacent log block on the determined global movement route can be secured.
- the history information is divided into groups according to at least one of player attributes and game progress, and the global movement path determination means includes the history information of the group corresponding to the player. Based on the above, a global movement route that is most frequently selected by one or more players is determined.
- the player attributes include at least one of a player's proficiency level, total play time, characters to be used, attributes of characters to be used, charge amount, country to which the player belongs, and the number of players.
- the server or the electronic device further includes a movement path learning unit, and the movement path learning unit is configured to log block based on time when a player character is located in the same log block or progress of the game.
- the movement start position and the movement target position represented by the position are determined, and a global movement path from the movement start position to the movement target position is stored as the history information.
- the history information is frequency information calculated for each combination of a log block at a movement start position and a log block at a movement end position.
- a program as one aspect of the present invention is a program for a game in which characters operated by players of one or more electronic devices connected to a server via a network are arranged and played in a common game field.
- the game field composed of a plurality of navigation blocks each defining a movable position of the character includes a plurality of log blocks each composed of a plurality of navigation blocks, and the program is stored in the server.
- the program stores, on the server, the movement start position and the movement target position represented by the position of the log block based on the time when the player character is located in the same log block or the progress of the game.
- the step of storing the global movement path from the movement start position to the movement target position as the history information is further executed.
- a server includes a server and one or more electronic devices connected to the server via a network, and uses a common character operated by a player of the electronic device connected to the server.
- a server in a game system that advances a game by placing it in a game field, and each of the game fields is composed of a plurality of navigation blocks each defining a movable position of a character.
- the movement start determining means for determining the movement start position and the movement target position of the non-player character and one or more players are operated.
- the movement target position from the movement start position of the player character The frequency of selection by one or more players from the determined movement start position to the determined movement target position based on the history information of the global movement route represented by the order of the log block positions at A global movement path determination means for determining the highest global movement path, and a log block that does not include the determined movement start position and movement target position among the log blocks constituting the determined global movement path; Select a position of an arbitrary navigation block as a small destination position, and from the determined movement start position or small destination position, the small destination position in the next log block on the determined global movement route Alternatively, a local movement route determination means for determining a route to the determined movement target position and a movement for moving the non-player character according to the determined route. It includes a control means, and a server.
- An electronic device includes a server and one or more electronic devices connected to the server via a network, and has a common character operated by a player of the electronic device connected to the server.
- An electronic device in a game system that is arranged in a game field and advances a game, each of which is composed of a plurality of navigation blocks each defining a movable position of a character, each of which is composed of a plurality of navigation blocks
- a movement start determining means for determining a movement start position and a movement target position of the non-player character in order to move the non-player character not operated by the player, and one or more players The movement target from the movement start position of the player character operated by The frequency selected by one or more players from the determined movement start position to the determined movement target position based on the history information of the global movement route represented by the order of the log block positions up to
- a global movement path determination means for determining the global movement path having the highest value, and a log block that does not include the determined movement start position and movement target position among the log blocks
- a game control method as one aspect of the present invention includes a server and one or more electronic devices connected to the server via a network, and a character operated by a player of the electronic device connected to the server.
- Flop is a game control method executed by the server or the electronic device.
- the human movement route calculated from the frequency information of the human movement route is generally adopted, and the shortest route search algorithm is locally applied.
- the present invention also classifies players into predetermined groups, and automatically performs a route search according to the strength and nature of the character in the game using the frequency information of the movement route for each classified player.
- the behavior of the NPC becomes more natural than before, and in game titles that are operated for a long time, it is possible for the NPC to automatically adopt common-sense mobile tactics among players. .
- the present invention automatically performs a route search in accordance with the strength and nature of the character in the game and controls the NPC, thereby changing his / her behavior in accordance with the speed at which a group of players become familiar with the game.
- NPC can be realized. This is particularly effective in a social game in which it is important to adjust the difficulty level at a speed at which the player group becomes familiar with the game system.
- 1 is an overall configuration of a system according to one embodiment of the present invention. It is a hardware constitutions of the server concerning one embodiment of the present invention. 1 is a hardware configuration of an electronic device according to an embodiment of the present invention. It is a functional block diagram of the game system concerning one embodiment of the present invention. It is a figure which shows a mode that the movement path
- the game system provides a game in which one or more players can participate by connecting one or more electronic devices via a network or the like and transmitting and receiving information with each electronic device.
- the game system according to this embodiment in which each electronic device is connected via the network is assumed to be a server-client system, but may be configured by a system without a server such as PtoP.
- One electronic device may be connected to the network.
- the present invention can be realized only by one electronic device without being connected to a network.
- an embodiment realized mainly by a system in which a plurality of electronic devices are connected via a network Will be explained.
- each character operated on each electronic device is placed in a game field or a game map, which is a virtual space on the game, and played by each player, and a non-player character (NPC) that is not operated by the player. ) Is placed in the game field to control movement including movement.
- NPC non-player character
- the game field is a three-dimensional virtual space and is formed by a navigation mesh (hereinafter referred to as “navigation mesh”).
- the navigation mesh (or game field) is composed of a plurality of navigation blocks, and the navigation block defines a movable position (movable point) of the character on the game field.
- each navigation block constituting the navigation mesh is a polygon
- each polygon is a polygon that indicates a movable position (walkable area) of the character, which is different from a polygon for expressing a background, an object, or the like.
- the data related to Navimesh is generated from map data.
- the Navimesh database stores the data of each polygon constituting the Navimesh.
- the Navimesh database stores surface portions of the scene geometry in the game as convex polygons.
- one technical feature of the present invention is to determine a route from the movement start position of the NPC to the movement target position when it is necessary to move the NPC. Accordingly, the character needs to move on the game field. For example, in the game, when a player clears a certain stage and moves to the next stage or when an event occurs, the player goes to defeat the target enemy or acquires the target item. In addition, it is necessary to move a character including NPC.
- the event indicates a process or control having a single meaning and unit that is generated by a player operation in the game or a process on the game system side.
- the route from the NPC movement start position to the movement target position is determined unless the movement target position is in the field of view of the NPC at the movement start position (or in the viewpoint camera) unless otherwise specified. Assume the case.
- a log block composed of a plurality of navigation blocks is determined and used to calculate the frequency of the movement route.
- the game field is also formed by a log mesh composed of a plurality of log blocks.
- the log mesh is a sparse mesh having a larger granularity than the Navi mesh, preferably a mesh structure having an outer edge equal to that of the Navi mesh, and covers the entire game field.
- An area (position) corresponding to each mesh area of the navigation mesh is a navigation block
- an area corresponding to each mesh area of the log mesh is a log block.
- log block By defining the log block (log mesh) in this way, it is possible to grasp the frequency of the global movement route based on the history of the position of the log block that the player character has passed.
- the log mesh database stores information on log blocks constituting the log mesh, and the path frequency information database stores movement path frequency information. Details are described below. In the present specification, unless otherwise stated, simply describing the position represents the position of the navigation block.
- FIG. 1 shows an example of the overall configuration of a game system 100 according to an embodiment of the present invention.
- the system 100 includes a server 200 and a plurality of electronic devices 300. These are connected to each other by the network 101, but may be individually connected as necessary. When one of the plurality of electronic devices also functions as a server, the system 100 can be configured not to include the server.
- the system 100 can also include a database 150 separately from the database that the server 200 and the electronic apparatus 300 can have.
- the database 150 stores various databases, and the server 200 or the electronic device 300 can acquire desired data by referring to the database 150.
- the database in the server 200 is mainly used, but the same applies when the database 150 directly connected to the network is used.
- FIG. 2 is a block diagram showing a hardware configuration of the server 200 according to the embodiment of the present invention.
- the server 200 includes a processing unit 201, a display unit 202, an input unit 203, a storage unit 204, and a communication unit 205. Each of these components is connected by the bus 210, but each may be individually connected as necessary.
- the processing unit 201 includes a processor that controls each unit included in the server 200, and performs various processes using the storage unit 204 as a work area.
- the display unit 202 has a function of displaying information to the user.
- the input unit 203 has a function of receiving input from the user, such as a keyboard and a mouse.
- the storage unit 204 includes a hard disk, a main memory, and a buffer memory.
- a program 206 is stored in the hard disk.
- the hard disk may be any non-volatile storage or non-volatile memory as long as it can store information, and may be removable.
- the storage unit 204 stores a program 206 and various types of data that can be referred to when the program is executed.
- the storage unit 204 can include a database 207.
- the database 207 includes a navigation mesh database, a log mesh database, and a route frequency information database that stores frequency information of travel routes.
- the communication unit 205 connects to the network 101 by performing wired communication using an Ethernet (registered trademark) cable, mobile communication, wireless communication such as wireless LAN, and the like.
- Ethernet registered trademark
- mobile communication such as wireless LAN, and the like.
- the server 200 is an information processing apparatus having the above hardware configuration that is used when a system administrator or the like operates and manages a game service.
- the server 200 receives various commands (requests) from the electronic apparatus 300, the electronic apparatus It is possible to distribute (response) a game program that can be operated on the server 300, a Web page created in a markup language that conforms to the standard of the electronic device 300, a game screen, or the like.
- the server 200 implements various functions by executing the program 206, but some of these functions can also be implemented by configuring an electronic circuit or the like.
- FIG. 3 is a block diagram showing a hardware configuration of the electronic apparatus 300 according to the embodiment of the present invention.
- the electronic device 300 includes a processing unit 301, a display unit 302, an input unit 303, a storage unit 304, and a communication unit 305. Each of these components is connected by a bus 310, but each may be individually connected as necessary.
- the electronic device 300 is preferably a smartphone, but includes, for example, a computer including a contact input device such as a mobile phone, a portable information terminal, a tablet computer, a video game machine, a portable video game machine, and a touch pad. .
- a contact input device such as a mobile phone, a portable information terminal, a tablet computer, a video game machine, a portable video game machine, and a touch pad.
- the processing unit 301 performs various processes such as a game process and an image generation process based on the program, the input data from the input unit 303, or the data received from the server.
- the processing unit 301 includes a processor that controls each unit included in the electronic apparatus 300, and performs various processes using the storage unit 304 as a work area.
- the display unit (display) 302 displays a screen according to the progress of the game and the player operation in accordance with the control of the processing unit 301.
- a liquid crystal display is preferable, but a display using an organic EL, a plasma display, or the like may be used.
- the input unit 303 has a function of receiving input from the user, such as a touch panel, a touch pad, a keyboard, a mouse, or a game controller.
- a touch panel an input based on the position touched by the player is given to the electronic device 300.
- the display unit 302 and the input unit 303 have an integrated structure, accepts an input by the player's touch on the display unit 302, the input unit 303 detects coordinates corresponding to the position touched by the player, and the electronic device 300.
- the detection method may include any method (for example, a capacitance method in a touch panel), but the input unit 303 detects that the player's finger or the like has touched at least two points simultaneously, and each coordinate information corresponding to the detected position Is preferably provided to the electronic device 300.
- the storage unit 304 includes a hard disk, a main memory, and a buffer memory.
- a program 306 is stored in the hard disk.
- the hard disk may be any non-volatile storage or non-volatile memory as long as it can store information, and may be removable.
- the electronic device 300 when it is a smartphone, it includes ROM and RAM.
- the storage unit 304 stores a program 306 and various types of data that can be referred to when the program is executed.
- the program includes a program for any application that requires user input such as an operating system or a video game, a web browser, etc., and various data for displaying various images such as objects appearing in the game. Image data and data that can be written to the storage unit 304 during the game are also included.
- the storage unit 304 can include a database 307 instead of the database 207 of the server 200.
- the database 307 includes a navigation mesh database, a log mesh database, and a route frequency information database that stores frequency information of travel routes.
- the communication unit 305 performs wired communication using an Ethernet (registered trademark) cable, mobile communication, wireless communication such as a wireless LAN, and connects to the network 101.
- Ethernet registered trademark
- mobile communication such as a wireless LAN
- the electronic device 300 realizes these functions by executing the program 306, but these functions can also be realized by configuring an electronic circuit or the like.
- FIG. 4 shows an example of a functional block diagram of the game system of the present invention.
- the system 100 includes an input reception unit 401, a screen display unit 402, a movement control unit 403, a movement route learning unit 404, a movement route frequency determination unit 405, a movement start determination unit 406, a global movement route determination unit 407, a local movement route.
- a determination unit 408, a storage unit 409, and a communication unit 410 are provided.
- these functions are realized by causing the server 200 to execute the program 206, realized by causing the electronic device 300 to execute the program 306, or causing the server 200 to execute the program 206.
- it is realized by causing the electronic device 300 to execute the program 306. That is, at least one of the server 200 and the electronic device 300 has various functions shown in FIG. As described above, when various functions are realized by reading a program, it is a matter of course that other means may have some functions of one means.
- the input receiving unit 401 is a function provided in the electronic device 300, and has a function of detecting an input by the player and giving the input to the electronic device 300. For example, when the electronic device 300 has a touch panel, a touch position by the player on the input unit 303 is detected and given to the electronic device 300.
- the screen display unit 402 has a function of displaying the image output data processed by the processing unit 301 on the display unit 302.
- the web page and game screen received from the server 200 can also be displayed as they are.
- the movement control means 403 has a function of referring to the navigation mesh database and controlling the movement of the character such as checking the movable area and moving speed. Further, the NPC can be moved according to the route determined by the local movement route determining means 408 described later.
- the movement path learning means 404 has a function of learning a global movement path from an arbitrary movement start position to a movement end position (movement target position) with respect to a movement path of a connection of player characters.
- the movement start position and movement end position to be learned are the positions of the log blocks where each is located, and the movement path to be learned is the position of the log block that has passed.
- the learning movement path is a series of movement paths of player characters operated by one or more players. That is, the movement path learning unit 404 is represented in the order of the log block positions passed by the player character including the movement start position and the movement end position log block position of the player character operated by one or more players.
- the history information of the global movement route can be stored in a route history information database that the database 207 or 307 can include. Alternatively, the history information can be directly passed to the movement route frequency determining means 405 without being stored in the route history information database.
- the movement route learning unit 404 goes to the next scene in the progress of the game or when an event occurs, goes to defeat the target enemy, or acquires the target item.
- it becomes necessary for example, it is determined that a connected movement path has started, and the position of the log block where the player character is located at that time is determined as the movement start position, and when the player character reaches the target position The position of the log block where the player character at that time is located is determined as the movement end position.
- the movement path learning unit 404 determines the position of the log block as the movement start position when the player character is located in the same log block for a predetermined time or more, and then the position of the player character is When the player character moves to another log block and the player character is positioned for a predetermined time or longer in the moved log block, the position of the log block is determined as the movement end position.
- the movement path learning unit 404 divides the stored history information into groups according to at least one of the attribute of the player operating the player character to be learned and the degree of progress of the game. Can be tabulated.
- the player's attributes include the proficiency level of the player, the total play time of the player, the character used by the player, the attributes of the character used by the player (for example, the weapon used by the character, the character level, and the game field of the character). Etc.), the billing amount of the player, the country to which the player belongs (for example, the nationality of the player, the country of residence of the player, the country in which the game was downloaded, etc.) and the number of players.
- the movement route frequency determination means 405 uses the history information of the global movement route learned as described above, for each combination of the movement start position (log block position) and movement end position (log block position). It has a function of calculating or determining the frequency of the global movement route.
- the frequency information of the global movement route is stored in the route frequency information database.
- the global movement path is a movement path represented by the order of the positions of the log blocks through which the character passes as described above. Therefore, the route history information database or the route frequency information database is created with reference to the log mesh database.
- the movement route frequency determination means 405 can receive the learned history information of the global movement route as it is, and calculate and determine the movement route frequency.
- the history information and frequency information of the global movement route are stored in separate databases.
- the frequency information is information created based on the history information, the history information includes the frequency information. It can be interpreted as a component of a broad concept.
- the frequency information is created, it may be created while taking into account the history information and some other information in consideration of the type and nature of the game in which the present invention is implemented. Therefore, the frequency information is not necessarily information created only from the history information.
- the movement route frequency determination unit 405 The frequency of the movement route can be calculated or determined using the history information of the global movement route in the group corresponding to the player who actually plays the electronic device 300.
- the movement start determination means 406 has a function of determining the movement of the NPC and the movement start position and the movement target position.
- the NPC movement decision is made to go to the next scene in the progress of the game or when an event occurs, in order to defeat the target enemy or to acquire the target item. Is called. With this determination, the NPC can be moved.
- the movement start position is a position where the NPC exists at the determined time.
- the global movement path determination means 407 performs global movement from the movement start position (log block position) to the movement target position (log block position) for the movement start position and movement target position determined as described above.
- the route is determined based on the moving route frequency determined as described above.
- a global movement route having the highest movement route frequency is determined.
- the global movement path is a movement path represented by sequentially arranging log blocks passing from the movement start position to the movement target position. Since the global movement route is determined based on the high movement route frequency, the global movement route determination unit 407 can include the movement route frequency determination unit 405.
- the local movement path determination means 408 is an arbitrary navigation block in the log block that does not include the movement start position and the movement target position among the log blocks constituting the global movement path determined by the global movement path determination means. Is selected as the small destination position. Then, according to the order of the log blocks in the determined global movement path, (1) determine the path from the movement start position to the small destination position in the next log block on the global movement path, or (2) Determine the path from the small destination position to the small destination position in the next log block on the global travel path, or (3) in the next log block on the global travel path Determine the route to the target position.
- the local movement route determination unit 408 determines any one of the three routes (local movement route)
- the movement control unit 403 moves the NPC according to the determined route.
- the three determined paths are preferably the shortest paths determined using a conventional shortest path search algorithm.
- the determination of the route and the movement of the NPC are repeated again until the NPC reaches the final target position.
- the movement control unit 403 may move the NPC according to the determined route. If the movement start position and the movement target position are in adjacent log blocks, there is no small destination. In this case, a route from the movement start position to the movement target position is searched.
- FIG. 5a shows how the travel route by the log block is learned
- FIG. 5b shows how the learned route is reproduced on the navigation block.
- a log mesh that is a relatively sparse 3D mesh and a navigation mesh that is a relatively dense 3D mesh are used.
- each cell shown in FIG. 5a corresponds to a log block, and each has a coordinate position as shown in FIG. 5a.
- Each square shown in FIG. 5b corresponds to a navigation block, and each has a coordinate position.
- these figures are displayed two-dimensionally, but the 3D mesh is three-dimensional data, and preferably includes information about elevation.
- FIG. 5a shows a state in which a movement path from a movement start position to a movement end position is learned with respect to a movement path of a series of player characters.
- FIG. 5a it moves from the upper left to the lower right.
- the position of the block can be a movement start position and a movement end position, and a movement path between them can be learned.
- Paths 503 to 507 indicate the movement path of the player character operated by the player (human), and path 508 indicates the shortest path. As can be seen from FIG. 5a, there are many frequent detours in the human movement history.
- the log block since the log block is used to acquire the movement history of the player character, even if there is a slight shift for each history, it can be integrated as the movement history to the same place.
- the movement route can be divided for each log block constituting the log mesh, and the frequency of the movement history can be integrated.
- Table 1 is one embodiment of a route frequency information database. Each coordinate shown in Table 1 corresponds to the position of the log block.
- Origin is a movement start position
- Destination is a movement end position
- Path_origin is the start position of the partial path of this movement route
- Path_dest is the end position of the partial path.
- Frequency is the frequency of passing this partial path in the movement from Origin to Destination.
- Table 1 shows only combinations of Origin (0, 0) and Destination (2, 2), but in practice all combinations of Origin and Destination learned Table 1 can include:
- the movement start determination unit 406 determines the movement of the NPC and determines the movement start position 501 and the movement target position 502, the movement start determination unit 406 determines a path for moving the NPC based on the path learned by FIG. 5A. Show the state. Specifically, the path frequency information database is inquired about the position (0, 0) of the log block that is the movement start position (NPC current position) and the position (2, 2) of the log block that is the movement target position. Then, the most frequent column is extracted from the partial paths forming these two points.
- the path with the highest frequency among the partial paths from Path_origin (0, 0) in the movement path of Origin (0, 0) and Destination (2, 2) is the partial path to Path_dest (0, 1). It is. Subsequently, the path with the highest frequency among the partial paths from Path_origin (0, 1) is the partial path to Path_dest (0, 2).
- Path_origin (0,0) and Path_origin (0,1), Path_origin (0,1) and Path_origin (0,2), Path_origin (0,2) and Path_origin (1,2), and Path_origin By extracting partial paths of (1, 2) and Path_origin (2, 2), global movement paths ⁇ (0, 0), (0, 1), (0 , 2), (1, 2), (2, 2) ⁇ . From this global movement route, a small destination 509 is generated as shown in FIG. 5b. The position of the small destination 509 is the position of an arbitrary navigation block in the log block that does not include the movement start position 501 and the movement target position 502 among the log blocks constituting the global movement path. Selected after being determined.
- a path from the movement start position 501 to the small destination position 509 in the next log block (0, 1) on the global movement path (2) determine a path from the small destination position 509 in the log block (0,1) to the small destination position 509 in the next log block (0,2) on the global movement path; The route from the small destination position 509 in the log block (0, 2) to the small destination position 509 in the next log block (1, 2) on the global movement route is determined, and (3) the log block ( The route from the small destination position 509 in 1, 2) to the movement target position 502 in the next log block (2, 2) on the global movement route is determined.
- the shortest route is preferably determined by using a conventional shortest route search algorithm.
- the NPC is moved according to the local movement path determined in this way.
- the NPC may be moved every time the local movement path is determined, and then the determination of the local movement path and the movement of the NPC may be repeatedly performed.
- the NPC may be moved after the determination.
- the movement path between the small destination positions (from the start position of the partial path to the end position of the partial path) must not pass log blocks other than the log block having the two target small destination positions. is there. Otherwise, the NPC will not go through the determined global movement path. Therefore, it is preferable to select the small destination position so that a route passing only in the adjacent log block on the determined global movement route can be secured. The same applies to the movement from the movement start position to the small destination position or from the small destination position to the movement target position.
- a natural route search is realized by using a log block that constitutes a log mesh that is a relatively sparse 3D mesh and a navigation block that constitutes a navigation mesh that is a relatively dense 3D mesh. Can do.
- the storage unit 409 has a function of storing programs, data, and the like in the storage unit 204 or 304. It can also be stored in various databases.
- the travel route learning unit 404 can also be regarded as a part of the storage unit 409.
- the communication unit 410 has a function of performing wireless communication and wired communication.
- the storage unit 409 can acquire and store a program or data from a server, an optical disk, or the like via the communication unit 410.
- the game provided by the game system in the present invention is realized by causing the server 200 to execute the program 206 and causing the electronic device 300 to execute the program 306.
- the electronic device 300 can be realized by causing the electronic device 300 to execute the process or operation to be executed by the server 200 by the program 206 using the program 306. The reverse is also true.
- FIG. 6 is a flowchart showing information processing of the server 200 and the electronic device 300 in the system 100 according to an embodiment.
- the electronic device 300 starts the game by executing the program 306 (step 601), and starts communication with the server 200.
- the program 306 can include a game application, and the player can start the game by starting the application.
- the server 200 recognizes the electronic device 300 (step 602).
- the server 200 reads a game field from the program 206, for example, and transmits information related to the game field to the electronic device 300 (step 603).
- the game field may be read or generated by executing the program 306.
- the electronic device 300 generates a player character (step 604).
- the player character is generated automatically by selection of the player or by a program.
- the electronic device 300 transmits the generated player character information to the server 200 (step 604).
- the server 200 stores the character information and character information transmitted from other players (step 605). However, if the server 200 has already stored the character information transmitted from another player or there is no other player, the character information transmitted from the other player is not stored in step 605.
- the character information indicates various statuses of the character in the game, and can include character movement at that time and position information of the character in the game field.
- Electronic device 300 and server 200 exchange game information including such character information.
- the data structure about the information regarding a game is not limited to these.
- the server 200 transmits the stored character information and part or all of the NPC character information read from the program 206 or the like to each electronic device 300 (step 606).
- the electronic device 300 receives the character information from the server 200 and updates the screen and various statuses of each character (step 607).
- the information to be received may not be all information necessary for the game but only information necessary for the player to operate the game.
- the character information including the position information is updated by operating the player character or by an event on the game field.
- the electronic device 300 transmits game information including player character information and a transmission request to the server to the server 200 at predetermined intervals (step 608).
- the electronic apparatus 300 may periodically transmit to the server 200 as described above, or may transmit game information to the server 200 in response to a request from the server 200.
- the server 200 stores game information received from each electronic device 300 (step 609), and transmits game information including part or all of the stored character information and character information read from the program 206 or the like (step 610).
- the electronic device 300 receives the information.
- the server 200 may transmit game information including each character information to each electronic device 300 at a predetermined interval, or may transmit it in response to a request from the electronic device 300. Thereafter, as long as the electronic device 300 continues to execute the game (step 611), step 607 to step 611 are repeated.
- the present invention When the present invention is realized by one electronic device that is not connected to the network, it is realized by causing the electronic device 300 to execute the program 306, and the electronic device 300 has all the functions shown in FIG. In this case, communication as shown in FIG. 6 is not performed.
- the server 200 includes the partial function illustrated in FIG. 4, the electronic apparatus 300 needs to be connected to the server 200, and thus performs communication including part or all of the information processing of the flowchart illustrated in FIG.
- FIG. 7 is a flowchart showing the information processing of the travel route search in the game system according to one embodiment of the present invention.
- the server 200 includes a travel control unit 403, a travel route learning unit 404, a travel route frequency determining unit 405, It is a flowchart on the assumption that a movement start determination unit 406, a global movement route determination unit 407, and a local movement route determination unit 408 are provided.
- the processes in the following flowchart are executed simultaneously when steps 607 to 611 in FIG. 6 are executed. However, it can also be configured to be executed by information processing of one flowchart by modifying it so that it is incorporated from step 607 to step 611.
- the movement start determining means 406 determines the movement of the NPC
- the flow starts, and the movement start position (generally the current NPC position) and the movement target position are determined (step 701).
- the movement start determining means 406 is an NPC for defeating a target enemy or acquiring a target item when the game proceeds to the next scene or when an event occurs.
- the movement start position and the movement target position are determined. Preferably, these positions are determined as the position of the navigation block by appropriately referring to the navigation mesh database.
- the global movement route determination unit 407 determines the movement start position and the movement target position based on the frequency of the movement route determined by the movement route frequency determination unit 405 for the determined movement start position and movement target position. A global movement route from the movement target position to the movement target position is determined (step 702).
- the local movement path determination unit 408 includes any log block that does not include the movement start position and the movement target position among the log blocks constituting the global movement path determined by the global movement path determination unit.
- the position of the navigation block is determined as the small destination position (step 703). However, when the movement start position and the movement target position are in the adjacent log blocks, there is no small destination, so that the determination is not performed.
- a route from the movement start position to the small destination position in the next log block on the movement route is searched (step 704).
- the route search here is preferably a shortest route search. When the small destination does not exist, a route from the movement start position to the movement target position is searched.
- the local movement route determination means 408 determines whether the route has been determined by searching (step 705).
- the case where the route cannot be determined means that when a route passing through two positions to be searched for is not found, or when a route is found but the found route is a log block other than the log block in which each of the two positions is located. This is a case of passing. If the route can be determined, the process proceeds to step 406. If the route cannot be determined, the NPC cannot be moved. Therefore, the information processing flow shown in FIG. 7 is terminated, or step 702 or 703 is performed again. Return to (not shown). If the route cannot be determined, the event can be reported to the administrator.
- the movement control means 403 moves the NPC according to the determined route (step 706).
- the movement of the NPC is completed, it is determined whether or not the movement target position has been reached (step 707). If it has reached, the information processing flow shown in FIG. 7 is terminated. If not reached, the process returns to step 704 to search for a route from the small destination position where the NPC is currently located to the small destination position or the movement target position in the next log block on the movement route, and proceeds to step 705. These processes are repeated until the NPC reaches the movement target position.
- step 701 is executed by a call from the main loop of the game program with step 701 as a trigger, or is executed as a part of the main loop of the game program.
- Various interrupt processes exist in the main loop of the game program, and when the predetermined interrupt process is executed, the information processing shown in FIG. 7 ends. This is the case, for example, when the NPC encounters an enemy player character, or when the game scene status is changed, for example, the game stage ends before reaching the final target position.
- system architecture 800 can be composed of nine modules shown in FIG. By modularizing in this way, some modules can be changed and applied to various games.
- the input module 801 is a module that receives input from a human through the user interface of the terminal where the game is being executed. This corresponds to an input event handler of an existing game system, and has a function corresponding to the input receiving means 401.
- the movement control module 802 is a module that controls the movement of the player character, such as checking a movable area and moving speed, and has a function corresponding to the movement control means 403. Since the navigation block information stored in the navigation mesh DB is necessary for the movement control of the player character, the navigation mesh DB is appropriately referred to.
- the path frequency calculator 803 is a module for accumulating the frequency of a moving path of a connection of player characters for each log block constituting the log mesh, and has a function corresponding to the moving path frequency determination means 405.
- the log mesh DB 804 is a database that stores data related to a log mesh having a particle size larger than that of the Navi mesh for calculating the frequency of the movement route.
- the natural path frequency DB 805 is a database for storing the frequency information of the movement route having the data structure shown in Table 1, and has a function corresponding to the route frequency information database.
- the action determination AI module 806 is a software module that determines the action of the NPC and has a function corresponding to the movement start determination means 406. When this module determines NPC movement, Origin (movement start position) and Destination (movement target position) are input as parameters to the natural path finder 807.
- the natural path finder 807 is a module that extracts a high-frequency route from the natural path frequency DB 805 as a sequence of partial routes, and performs a global route search using a history of human movement routes. A function corresponding to the means 407 is provided.
- the shortest path finder 808 is a module that searches for a movement route between partial routes output by the natural path finder 807 as a shortest route using a navigation block that forms a navigation mesh, and corresponds to the local movement route determination means 408. It has a function. This module repeats the route search and moves the NPC until one of the following conditions is satisfied: (i) the target position of movement is reached, or (ii) there is an interrupt such as an enemy with the player.
- the navigation mesh DB 809 is a database that stores data related to navigation mesh.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Transfer Between Computers (AREA)
- Navigation (AREA)
- Processing Or Creating Images (AREA)
Abstract
NPCが人間により操作されているかのようにプレイヤが認識するように、NPCの移動経路の重み付けと決定を自動的に行う機能を提供する。 サーバと、サーバにネットワークを介して接続された1以上の電子装置とを備え、プレイヤにより操作されるキャラクタを共通のゲームフィールドに配置させてゲームを進行させるシステムは、NPCを移動させるための移動開始位置及び移動目標位置を決定し、1以上のプレイヤにより操作されたプレイヤキャラクタの移動開始位置から移動目標位置までのログブロックの位置の順番で表される大局的移動経路の履歴情報に基づいてプレイヤにより選択される頻度が最も高い大局的移動経路を決定し、決定された移動開始位置又は小目的地位置から、決定された大局的移動経路上の次のログブロック内の小目的地位置又は決定された移動目標位置までの経路を決定し、及び決定された経路に従ってNPCを移動させる。
Description
本発明は、プレイヤの移動履歴に基づいてノンプレイヤキャラクタの経路探索を行うゲームシステム、プログラム、サーバ、電子装置、及びゲーム制御方法に関する。
近年、ネットワークを通じて複数のプレイヤが参加可能なネットワーク対応のゲームを楽しむプレイヤが増えている。当該ゲームは、ゲーム機、PC端末、又は携帯電話等の電子装置がゲーム運営者のサーバ装置等と通信を行うゲームシステムにより実現され、電子装置を操作するプレイヤは、他のプレイヤと協力してゲームを進行したり、対戦ゲームにおいて対戦したりすることができる。
ゲームに登場するキャラクタは、プレイヤが操作可能なプレイヤキャラクタの他に、プレイヤが操作しないノンプレイヤキャラクタ(以下「NPC」という)があり、コンピュータは、NPCを制御して自立して行動させることができる。
例えばカーレースゲームにおいては、プレイヤの以前操作した記録に応じてNPC(ゴーストカー)を走らせる技術が特許文献1に記載されている。また例えば複数のキャラクタが登場するゲームにおいては、プレイヤキャラクタの周辺領域以外の仮想空間に存在するNPCが、何らかのターゲットを目標位置として移動するようなゲームがリリースされている。このようなゲームにおいて最も一般的なNPCは、アクションゲームやロールプレイングゲームと呼ばれるジャンルにおいて一般的な敵キャラクタであり、これらの敵キャラクタは、プレイヤへの攻撃や、プレイヤの行動を妨害する行為を行うことを目的として、すなわちプレイヤの操作するプレイヤキャラクタをターゲットとするようゲーム内に配置されている。これらの敵キャラクタを倒すこと、あるいは、回避することがゲームの面白さの一つになっている。NPCは、ゲーム用人工知能(Artificial Intelligence, AI)技術を用いて制御されており、NPCの移動も、従来技術では、人工知能研究の一分野である最短経路探索法により制御されてきた。
上記のように何らかのターゲットを目標位置としてNPCを移動させる場合、これらのキャラクタが含まれる探索領域を設定し、目標位置までの経路探索を行い、この探索結果に従ってNPCを移動させることとなる。3Dゲームにおいて、プレイヤが様々な経路で移動することができる複雑なマップは、多様な戦術を生み出すため、ゲームの面白さを向上させる重要な要素であるが、経路探索の実施にあたって以下のような問題がある。
従来の3Dゲームでは、A*(エイスター)アルゴリズムやJPS(Jump Point Search)アルゴリズムなどの最短経路探索アルゴリズムを3Dマップに適用し、NPCの移動経路を選択している。この方式では、経路探索アルゴリズムが最短経路を抽出するため、最短経路を常に移動するわけではない人間が動かすキャラクタの経路とコンピュータが制御するNPCの移動経路は、マップが複雑化すればするほど乖離することになる。このような人間とNPCとの行動のギャップにより、人間のプレイヤからはNPCの振る舞いが不自然かつ単調に見えてしまう。特に、移動のための操作が煩雑であるが距離の短い経路を、NPCが難なく移動するさまを見たとき、プレイヤは理不尽さを感じることが多い。
人間に近く、自然に見える経路を選択する方法としては、ファジー制御やエージェントモデルを最短経路探索アルゴリズムの重みとして適用する方法がある。ファジー制御やエージェントモデルは、一見人間に近い振る舞いを与えることができるものの、3Dマップが複雑になると、その複雑さに応じて、制御パラメータを用意する必要があるため、複雑なマップに適用することが困難である。
最短経路探索アルゴリズムは、計算量の問題があるため、最短経路探索アルゴリズムへの重みづけでは、距離以外の多様な要素を考慮した経路探索を行うことが困難であり、通常の最短経路を大きく迂回する経路や、移動操作が容易になる経路を選択するためのパラメータ調整は困難を極める。特に複雑な構造を有するマップの場合、視野の確保や移動速度など、経路上の距離以外に考慮すべき要素が多岐にわたるため、最短経路探索アルゴリズムへの重みづけでは、人間から見て自然な経路を得ることが難しい。
本発明は、このような状況を鑑みてなされたものであり、3Dゲームにおける複雑なマップ上で、NPCが人間により操作されているかのようにプレイヤが認識するように、それによってプレイヤが臨場感と没入間を持つことができるように、NPCの移動経路の重み付けと決定を自動的に行う機能を提供する。さらに、3Dマップでのキャラクタの位置取りが勝敗に強い影響を及ぼすゲームにおいてリアリティのあるNPCを実現するために、ゲーム内でのキャラクタの強さや性質に応じた経路探索を自動的に行う機能を提供する。また一般的なゲームにおいては、プレイヤがゲームシステムに習熟するスピードに合わせて徐々に強く賢い敵が登場することが期待されるため、プレイヤの行動の変化に応じてNPCの行動が変化するように経路探索を行う学習機能を提供する。
本発明は上記の課題に鑑みてなされたものであり、以下のような特徴を有している。すなわち、本発明の一態様としてのシステムは、サーバと、上記サーバにネットワークを介して接続された1以上の電子装置とを備え、上記サーバに接続された電子装置のプレイヤにより操作されるキャラクタを共通のゲームフィールドに配置させてゲームを進行させるゲームシステムであって、各々がキャラクタの移動可能位置を定める複数のナビブロックから構成される上記ゲームフィールドは、各々が複数のナビブロックから構成される複数のログブロックを含むものであり、プレイヤが操作しないノンプレイヤキャラクタを移動させるために、当該ノンプレイヤキャラクタの移動開始位置及び移動目標位置を決定する移動開始決定手段と、1以上のプレイヤにより操作されたプレイヤキャラクタの移動開始位置から移動目標位置までのログブロックの位置の順番で表される大局的移動経路の履歴情報に基づいて、上記決定された移動開始位置から上記決定された移動目標位置までの1以上のプレイヤにより選択される頻度が最も高い大局的移動経路を決定する大局的移動経路決定手段と、上記決定された大局的移動経路を構成するログブロックのうち上記決定された移動開始位置及び移動目標位置を含まないログブロック内の任意のナビブロックの位置を小目的地位置として各々選択し、上記決定された移動開始位置又は小目的地位置から、上記決定された大局的移動経路上の次のログブロック内の小目的地位置又は上記決定された移動目標位置までの経路を決定する局所的移動経路決定手段と、上記決定された経路に従ってノンプレイヤキャラクタを移動させる移動制御手段と、の各手段を、上記サーバ又は上記電子装置が備える、ゲームシステムである。
本発明の一態様として、上記局所的移動経路決定手段は、上記決定された大局的移動経路上における隣接するログブロック内のみを通る経路を確保できるように、小目的地位置を選択する。
本発明の一態様として、上記履歴情報は、プレイヤの属性及びゲームの進行度のうちの少なくとも1つによりグループに分けられ、上記大局的移動経路決定手段は、プレイヤに対応したグループの上記履歴情報に基づいて、1以上のプレイヤにより選択される頻度が最も高い大局的移動経路を決定する。
本発明の一態様として、上記プレイヤの属性は、プレイヤの習熟度、総プレイ時間、使用するキャラクタ、使用するキャラクタの属性、課金金額、属する国、及びプレイ人数の少なくとも1つを含む。
本発明の一態様として、上記サーバ又は上記電子装置は移動経路学習手段をさらに備え、上記移動経路学習手段は、同一のログブロック内にプレイヤキャラクタが位置する時間又はゲームの進行に基づいてログブロックの位置で表される移動開始位置及び移動目標位置を決定するとともに、移動開始位置から移動目標位置までの大局的移動経路を上記履歴情報として記憶する。
本発明の一態様として、上記履歴情報は、移動開始位置のログブロックと移動終了位置のログブロックの各々の組み合わせごとに算出された頻度情報である。
本発明の一態様としてのプログラムは、ネットワークを介してサーバに接続された1以上の電子装置のプレイヤにより操作されるキャラクタを共通のゲームフィールドに配置させてプレイさせるゲームのためのプログラムであって、各々がキャラクタの移動可能位置を定める複数のナビブロックから構成される上記ゲームフィールドは、各々が複数のナビブロックから構成される複数のログブロックを含むものであり、上記プログラムは、上記サーバに、プレイヤが操作しないノンプレイヤキャラクタを移動させるために、当該ノンプレイヤキャラクタの移動開始位置及び移動目標位置を決定するステップと、1以上のプレイヤにより操作されたプレイヤキャラクタの移動開始位置から移動目標位置までのログブロックの位置の順番で表される大局的移動経路の履歴情報に基づいて、上記決定された移動開始位置から上記決定された移動目標位置までの1以上のプレイヤにより選択される頻度が最も高い大局的移動経路を決定するステップと、上記決定された大局的移動経路を構成するログブロックのうち上記決定された移動開始位置及び移動目標位置を含まないログブロック内の任意のナビブロックの位置を小目的地位置として各々選択し、上記決定された移動開始位置又は小目的地位置から、上記決定された大局的移動経路上の次のログブロック内の小目的地位置又は上記決定された移動目標位置までの経路を決定するステップと、上記決定された経路に従ってノンプレイヤキャラクタを移動させるステップと、を実行させるプログラムである。
本発明の一態様として、上記プログラムは、上記サーバに、同一のログブロック内にプレイヤキャラクタが位置する時間又はゲームの進行に基づいてログブロックの位置で表される移動開始位置及び移動目標位置を決定するとともに、移動開始位置から移動目標位置までの大局的移動経路を上記履歴情報として記憶するステップをさらに実行させる。
本発明の一態様としてのサーバは、サーバと、上記サーバにネットワークを介して接続された1以上の電子装置とを備え、上記サーバに接続された電子装置のプレイヤにより操作されるキャラクタを共通のゲームフィールドに配置させてゲームを進行させるゲームシステムにおけるサーバであって、各々がキャラクタの移動可能位置を定める複数のナビブロックから構成される上記ゲームフィールドは、各々が複数のナビブロックから構成される複数のログブロックを含むものであり、プレイヤが操作しないノンプレイヤキャラクタを移動させるために、当該ノンプレイヤキャラクタの移動開始位置及び移動目標位置を決定する移動開始決定手段と、1以上のプレイヤにより操作されたプレイヤキャラクタの移動開始位置から移動目標位置までのログブロックの位置の順番で表される大局的移動経路の履歴情報に基づいて、上記決定された移動開始位置から上記決定された移動目標位置までの1以上のプレイヤにより選択される頻度が最も高い大局的移動経路を決定する大局的移動経路決定手段と、上記決定された大局的移動経路を構成するログブロックのうち上記決定された移動開始位置及び移動目標位置を含まないログブロック内の任意のナビブロックの位置を小目的地位置として各々選択し、上記決定された移動開始位置又は小目的地位置から、上記決定された大局的移動経路上の次のログブロック内の小目的地位置又は上記決定された移動目標位置までの経路を決定する局所的移動経路決定手段と、上記決定された経路に従ってノンプレイヤキャラクタを移動させる移動制御手段と、を備える、サーバである。
本発明の一態様としての電子装置は、サーバと、上記サーバにネットワークを介して接続された1以上の電子装置とを備え、上記サーバに接続された電子装置のプレイヤにより操作されるキャラクタを共通のゲームフィールドに配置させてゲームを進行させるゲームシステムにおける電子装置であって、各々がキャラクタの移動可能位置を定める複数のナビブロックから構成される上記ゲームフィールドは、各々が複数のナビブロックから構成される複数のログブロックを含むものであり、プレイヤが操作しないノンプレイヤキャラクタを移動させるために、当該ノンプレイヤキャラクタの移動開始位置及び移動目標位置を決定する移動開始決定手段と、1以上のプレイヤにより操作されたプレイヤキャラクタの移動開始位置から移動目標位置までのログブロックの位置の順番で表される大局的移動経路の履歴情報に基づいて、上記決定された移動開始位置から上記決定された移動目標位置までの1以上のプレイヤにより選択される頻度が最も高い大局的移動経路を決定する大局的移動経路決定手段と、上記決定された大局的移動経路を構成するログブロックのうち上記決定された移動開始位置及び移動目標位置を含まないログブロック内の任意のナビブロックの位置を小目的地位置として各々選択し、上記決定された移動開始位置又は小目的地位置から、上記決定された大局的移動経路上の次のログブロック内の小目的地位置又は上記決定された移動目標位置までの経路を決定する局所的移動経路決定手段と、上記決定された経路に従ってノンプレイヤキャラクタを移動させる移動制御手段と、を備える、電子装置である。
本発明の一態様としてのゲーム制御方法は、サーバと、上記サーバにネットワークを介して接続された1以上の電子装置とを備え、上記サーバに接続された電子装置のプレイヤにより操作されるキャラクタを共通のゲームフィールドに配置させてゲームを進行させるゲームシステムにおけるゲーム制御方法であって、各々がキャラクタの移動可能位置を定める複数のナビブロックから構成される上記ゲームフィールドは各々が複数のナビブロックから構成される複数のログブロックを含むものであり、プレイヤが操作しないノンプレイヤキャラクタを移動させるために、当該ノンプレイヤキャラクタの移動開始位置及び移動目標位置を決定するステップと、1以上のプレイヤにより操作されたプレイヤキャラクタの移動開始位置から移動目標位置までのログブロックの位置の順番で表される大局的移動経路の履歴情報に基づいて、上記決定された移動開始位置から上記決定された移動目標位置までの1以上のプレイヤにより選択される頻度が最も高い大局的移動経路を決定するステップと、上記決定された大局的移動経路を構成するログブロックのうち上記決定された移動開始位置及び移動目標位置を含まないログブロック内の任意のナビブロックの位置を小目的地位置として各々選択し、上記決定された移動開始位置又は小目的地位置から、上記決定された大局的移動経路上の次のログブロック内の小目的地位置又は上記決定された移動目標位置までの経路を決定するステップと、上記決定された経路に従ってノンプレイヤキャラクタを移動させるステップと、を備え、各ステップは上記サーバ又は上記電子装置により実行されるゲーム制御方法である。
本発明は、NPCの移動開始地点から目的地までの経路探索において、大局的には人間の移動経路の頻度情報から算出した人間の移動経路を採用し、局所的には最短経路探索アルゴリズムを適用することで、ゲームとして適切であり、かつ、人間から見て自然な経路探索を実現することができる。したがって、プレイヤに臨場感と没入間を持ってプレイさせることを可能にする。
また本発明は、プレイヤを所定のグループにクラス分けし、クラス分けされたプレイヤ毎の移動経路の頻度情報を用いて、ゲーム内でのキャラクタの強さや性質に応じた経路探索を自動的に行ってNPCを制御することにより、NPCの振る舞いが従来よりも自然になるとともに、長期に運用するゲームタイトルにおいては、プレイヤ間では常識的な移動戦術をNPCが自動的に採用することを可能にする。
さらに本発明は、ゲーム内でのキャラクタの強さや性質に応じた経路探索を自動的に行ってNPCを制御することで、プレイヤの集団がゲームに習熟する速度に合わせて自らの行動を変化させるNPCを実現することができる。これは、プレイヤ集団がゲームシステムに習熟する速度で難易度を調整することが重要であるソーシャルゲームにおいては特に有効である。
以下、図面を参照して、本発明の実施形態を説明する。本実施形態に係るゲームシステムは、1以上の電子装置がネットワーク等で接続され、それぞれの電子装置で情報を送受信することにより、1以上のプレイヤが参加可能なゲームを提供する。
このようにネットワークを介して各電子装置が接続される本実施形態に係るゲームシステムは、サーバ‐クライアントシステムを想定しているが、PtoPのようなサーバのないシステムで構成することもできる。またネットワークに接続される電子装置は1つであってもよい。なお本発明は、ネットワークに接続せずに1つの電子装置によってのみ実現することもできるが、本明細書では主に、ネットワークを介して複数の電子装置が接続されるシステムによって実現される実施形態を説明する。
続いて本発明の1つの実施形態に係るゲームシステムが提供するゲームの概要について説明する。当該ゲームは、それぞれの電子装置上で操作される各キャラクタを、ゲーム上の仮想空間であるゲームフィールド又はゲームマップに配置させて、各プレイヤにプレイさせるとともに、プレイヤが操作しないノンプレイヤキャラクタ(NPC)をゲームフィールドに配置し、移動を含む動作を制御する。
本実施形態においてゲームフィールドは3次元の仮想空間であり、ナビゲーションメッシュ(以下「ナビメッシュ」という)により形成される。ナビメッシュ(又はゲームフィールド)は、複数のナビブロックから構成されるものであり、ナビブロックは、ゲームフィールド上におけるキャラクタの移動可能位置(移動可能地点)を定めるものである。例えばナビメッシュを構成する各々のナビブロックはポリゴンであり、各ポリゴンは、背景やオブジェクト等を表現するためのポリゴンとは別の、キャラクタの移動可能位置(歩行可能エリア)を示すポリゴンである。1つの実施例においては、ナビメッシュに関するデータはマップデータから生成される。またナビメッシュを構成する各ポリゴンのデータについては、ナビメッシュデータベースが格納する。1つの実施例においては、ナビメッシュデータベースは、ゲームにおけるシーンのジオメトリの表面部分を凸ポリゴンとして格納する。
また本発明の1つの技術的特徴は、NPCを移動させる必要が生じた場合に、NPCの移動開始位置から移動目標位置までの経路を決定するものであるため、当該ゲームは、ゲームの進行に応じて、キャラクタがゲームフィールド上で移動する必要のあるものである。例えば当該ゲームは、プレイヤがあるステージをクリアして次のステージに移行した場合や何らかのイベントが発生した場合などに、目標となる敵を倒しに行くために、又は目標となるアイテムを取得するために、NPCを含むキャラクタを移動させる必要が発生するものである。なお、ここでイベントとは、ゲーム内でのプレイヤの操作やゲームシステム側の処理により発生する、一つの意味とまとまりを持った処理又は制御のことを示す。また本発明においてNPCの移動開始位置から移動目標位置までの経路を決定する場合というのは、特に言及がない限り、移動目標位置が移動開始位置にいるNPCの視界(又は視点カメラ内)にない場合を想定している。
さらに本発明においては複数のナビブロックから構成されるログブロックを定め、移動経路の頻度計算を行うために使用する。ゲームフィールドは、複数のログブロックから構成されるログメッシュによっても形成される。メッシュ構造の観点から記載すれば、ログメッシュは、ナビメッシュよりも大きな粒度を持つ疎なメッシュであり、好ましくはナビメッシュと等しい外縁を持つメッシュ構造であり、ゲームフィールド全体をカバーするものである。そして、ナビメッシュの各々の網目領域に対応する領域(位置)がナビブロックであり、ログメッシュの各々の網目領域に対応する領域がログブロックである。このようにログブロック(ログメッシュ)を定めることにより、プレイヤキャラクタが通過したログブロックの位置の履歴に基づいて、大局的な移動経路の頻度を把握することができる。ログメッシュを構成するログブロックに関する情報は、ログメッシュデータベースが格納し、移動経路の頻度情報は、経路頻度情報データベースが格納する。詳細については以下に記載する。なお本明細書においては、特に言及がない限り、単に位置と記載した場合はナビブロックの位置を表すものとする。
[システム構成]
図1は本発明の実施形態に係るゲームシステム100の全体構成の一例を示す。システム100は、サーバ200と、複数の電子装置300と、を含んで構成される。これらはネットワーク101によって互いに接続されるが、それぞれが必要に応じて個別に接続される形態であってもかまわない。また複数の電子装置のうちの1つをサーバとしても機能させる場合、システム100はサーバを含まない構成とすることもできる。
図1は本発明の実施形態に係るゲームシステム100の全体構成の一例を示す。システム100は、サーバ200と、複数の電子装置300と、を含んで構成される。これらはネットワーク101によって互いに接続されるが、それぞれが必要に応じて個別に接続される形態であってもかまわない。また複数の電子装置のうちの1つをサーバとしても機能させる場合、システム100はサーバを含まない構成とすることもできる。
またシステム100は、サーバ200や電子装置300が備えうるデータベースとは別に、データベース150を含むこともできる。システム100がデータベース150を含む場合、データベース150は各種データベースを格納し、サーバ200又は電子装置300はデータベース150に照会することで、所望のデータを取得することができる。以下では主としてサーバ200内のデータベースの使用を想定しているが、ネットワークに直接接続されたデータベース150を使用した場合においても同様である。
[サーバの構成概要]
図2は本発明の実施形態に係るサーバ200のハードウェア構成を示すブロック図である。サーバ200は、処理部201、表示部202、入力部203、記憶部204及び通信部205を備える。これらの各構成部はバス210によって接続されるが、それぞれが必要に応じて個別に接続される形態であってもかまわない。
図2は本発明の実施形態に係るサーバ200のハードウェア構成を示すブロック図である。サーバ200は、処理部201、表示部202、入力部203、記憶部204及び通信部205を備える。これらの各構成部はバス210によって接続されるが、それぞれが必要に応じて個別に接続される形態であってもかまわない。
処理部201は、サーバ200が備える各部を制御するプロセッサを備えており、記憶部204をワーク領域として各種処理を行う。表示部202は使用者に情報を表示する機能を有する。入力部203はキーボードやマウス等のように使用者からの入力を受け付ける機能を有するものである。
記憶部204は、ハードディスク、メインメモリ、及びバッファメモリを含む。ハードディスクにはプログラム206が記憶される。ただしハードディスクは、情報を格納できるものであればいかなる不揮発性ストレージ又は不揮発性メモリであってもよく、着脱可能なものであっても構わない。記憶部204には、プログラム206や当該プログラムの実行に伴って参照され得る各種のデータが記憶される。さらに記憶部204は、データベース207を含むことができる。この場合データベース207は、ナビメッシュデータベースと、ログメッシュデータベースと、移動経路の頻度情報を格納する経路頻度情報データベースと、を含む。
通信部205はイーサネット(登録商標)ケーブル等を用いた有線通信や移動体通信、無線LAN等の無線通信を行い、ネットワーク101へ接続する。
例えばサーバ200は、システム管理者等がゲームサービスを運営、管理する際に利用する上記ハードウェア構成を備えた情報処理装置であり、電子装置300から各種のコマンド(リクエスト)を受信すると、電子装置300上で動作可能なゲームプログラム、又は電子装置300の規格に合わせたマークアップ言語で作成されたWebページやゲーム画面等を配信(レスポンス)することができる。
サーバ200は、プログラム206が実行されることによって様々な機能が実現されるが、これらの機能の一部は電子回路等を構成することによっても実現できる。
[電子装置の構成概要]
図3は本発明の実施形態に係る電子装置300のハードウェア構成を示すブロック図である。電子装置300は、処理部301、表示部302、入力部303、記憶部304、及び通信部305を備える。これらの各構成部はバス310によって接続されるが、それぞれが必要に応じて個別に接続される形態であってもかまわない。
図3は本発明の実施形態に係る電子装置300のハードウェア構成を示すブロック図である。電子装置300は、処理部301、表示部302、入力部303、記憶部304、及び通信部305を備える。これらの各構成部はバス310によって接続されるが、それぞれが必要に応じて個別に接続される形態であってもかまわない。
電子装置300は、好ましくはスマートフォンであるが、例えば、携帯電話、携帯型情報端末、タブレット型コンピュータ、ビデオゲーム機、携帯型ビデオゲーム機、タッチパッド等の接触型入力装置を備えるコンピュータも含まれる。
処理部301は、プログラム、入力部303からの入力データ、又はサーバから受信したデータに基づいて、ゲーム処理、画像生成処理などの各種の処理を行う。処理部301は、電子装置300が備える各部を制御するプロセッサを備えており、記憶部304をワーク領域として各種処理を行う。
表示部(ディスプレイ)302は、処理部301の制御に従って、ゲームの進行やプレイヤ操作に応じた画面を表示する。好ましくは液晶ディスプレイであるが、有機ELを用いたディスプレイやプラズマディスプレイ等であってもよい。
入力部303は、タッチパネル、タッチパッド、キーボード、マウス、又はゲームコントローラ等のように使用者からの入力を受け付ける機能を有するものである。例えばタッチパネルの場合、プレイヤがタッチした位置に基づいた入力を電子装置300に与える。この場合、表示部302と入力部303は一体とした構造であり、表示部302へのプレイヤのタッチによる入力を受け付け、入力部303はプレイヤがタッチした位置に対応する座標を検出し、電子装置300に与える。検出方式は(例えばタッチパネルにおける静電容量方式等)あらゆる方式を含みうるが、入力部303は、少なくとも2点同時にプレイヤの指等がタッチしたことを検出し、検出した位置に対応する各座標情報を電子装置300に与えるものであることが好ましい。
記憶部304は、ハードディスク、メインメモリ、及びバッファメモリを含む。ハードディスクにはプログラム306が記憶される。ただしハードディスクは、情報を格納できるものであればいかなる不揮発性ストレージ又は不揮発性メモリであってもよく、着脱可能なものであっても構わない。例えば電子装置300がスマートフォンである場合はROM及びRAMを含む。記憶部304には、プログラム306や当該プログラムの実行に伴って参照され得る各種のデータが記憶される。当該プログラムは、オペレーティングシステム、又はビデオゲーム、ウェブブラウザ等のユーザ入力を要求するあらゆるアプリケーションのためのプログラムを含み、各種のデータには、例えばゲームに登場するオブジェクトなどの各種画像を表示するための画像データやゲーム中に記憶部304に書き込まれうるデータも含まれる。記憶部304は、サーバ200の有するデータベース207に代わって、データベース307を含むことができる。この場合データベース307は、ナビメッシュデータベースと、ログメッシュデータベースと、移動経路の頻度情報を格納する経路頻度情報データベースと、を含む。
通信部305はイーサネット(登録商標)ケーブル等を用いた有線通信や移動体通信、無線LAN等の無線通信を行い、ネットワーク101へ接続する。
電子装置300は、プログラム306が実行されることによってこれらの機能が実現されるが、これらの機能は電子回路等を構成することによっても実現できる。
[機能ブロック]
図4は本発明のゲームシステムの機能ブロック図の一例を示す。システム100は、入力受付手段401、画面表示手段402、移動制御手段403、移動経路学習手段404、移動経路頻度決定手段405、移動開始決定手段406、大局的移動経路決定手段407、局所的移動経路決定手段408、記憶手段409、及び通信手段410を備える。前述のとおり、これらの機能は、プログラム206をサーバ200に実行させることで実現されるか、プログラム306を電子装置300に実行させることで実現されるか、又はプログラム206をサーバ200に実行させ、かつプログラム306を電子装置300に実行させることで実現される。すなわち、サーバ200及び電子装置300の少なくとも一方が図4に示す各種機能を備える。このように各種機能がプログラム読み込みにより実現される場合は、当然ながら1つの手段の一部の機能を他の手段が有していてもよい。
図4は本発明のゲームシステムの機能ブロック図の一例を示す。システム100は、入力受付手段401、画面表示手段402、移動制御手段403、移動経路学習手段404、移動経路頻度決定手段405、移動開始決定手段406、大局的移動経路決定手段407、局所的移動経路決定手段408、記憶手段409、及び通信手段410を備える。前述のとおり、これらの機能は、プログラム206をサーバ200に実行させることで実現されるか、プログラム306を電子装置300に実行させることで実現されるか、又はプログラム206をサーバ200に実行させ、かつプログラム306を電子装置300に実行させることで実現される。すなわち、サーバ200及び電子装置300の少なくとも一方が図4に示す各種機能を備える。このように各種機能がプログラム読み込みにより実現される場合は、当然ながら1つの手段の一部の機能を他の手段が有していてもよい。
入力受付手段401は、電子装置300が備える機能であり、プレイヤによる入力を検出し、電子装置300に与える機能を有する。例えば電子装置300がタッチパネルを有する場合、入力部303上へのプレイヤによるタッチ位置を検出し、電子装置300に与える。
画面表示手段402は、処理部301により処理された画像出力データを表示部302へ表示する機能を有する。サーバ200から受信したwebページやゲーム画面等をそのまま表示することもできる。
移動制御手段403は、ナビメッシュデータベースを参照し、移動可能な領域のチェックや移動速度等のキャラクタの移動を制御する機能を有する。また後述の局所的移動経路決定手段408により決定された経路に従って、NPCを移動させることができる。
移動経路学習手段404は、プレイヤキャラクタのひとつながりの移動経路について、任意の移動開始位置から移動終了位置(移動目標位置)までの大局的な移動経路を学習する機能を有する。学習する移動開始位置及び移動終了位置は、各々が位置するログブロックの位置であり、学習する移動経路は通過したログブロックの位置である。また学習する移動経路は、1以上のプレイヤにより操作されたプレイヤキャラクタの一連の移動経路である。すなわち移動経路学習手段404は、1以上のプレイヤにより操作されたプレイヤキャラクタの移動開始位置及び移動終了位置のログブロックの位置を含む当該プレイヤキャラクタが通過したログブロックの位置の順番で表される大局的移動経路を記憶する。この大局的移動経路の履歴情報は、データベース207又は307が含みうる経路履歴情報データベースに記憶することができる。あるいは当該履歴情報は、経路履歴情報データベースに記憶せずに、移動経路頻度決定手段405にそのまま渡すこともできる。
1つの実施形態として、移動経路学習手段404は、ゲームの進行において次の場面に移行した場合や何らかのイベントが発生した場合において、目標となる敵を倒しに行く、又は目標となるアイテムを取得する必要が生じた場合などに、ひとつながりの移動経路を開始したと判断し、その時点のプレイヤキャラクタが位置するログブロックの位置を移動開始位置として決定するとともに、プレイヤキャラクタが目標位置に達したときに移動経路を終了したと判断し、その時点のプレイヤキャラクタが位置するログブロックの位置を移動終了位置として決定する。他の1つの実施形態として、移動経路学習手段404は、同一のログブロック内に所定時間以上プレイヤキャラクタが位置する場合に当該ログブロックの位置を移動開始位置として決定し、その後プレイヤキャラクタの位置が他のログブロックへ移動し、移動後のログブロック内に所定時間時間以上プレイヤキャラクタが位置する場合に当該ログブロックの位置を移動終了位置として決定する。
さらなる他の1つの実施形態として、移動経路学習手段404は、学習する対象のプレイヤキャラクタを操作するプレイヤの属性及びゲームの進行度のうちの少なくとも1つにより、記憶された履歴情報をグループに分けて集計することができる。プレイヤの属性は、当該プレイヤの習熟度、当該プレイヤの総プレイ時間、当該プレイヤの使用するキャラクタ、当該プレイヤの使用するキャラクタの属性(例えばキャラクタの使用する武器、キャラクタのレベル、キャラクタのゲームフィールドとの相性等)、当該プレイヤの課金金額、当該プレイヤの属する国(例えばプレイヤの国籍、プレイヤの居住国、ゲームがダウンロードされた国等)、及びプレイ人数の少なくとも1つを含むことができる。
移動経路頻度決定手段405は、前述のとおり学習した大局的移動経路の履歴情報を用いて、移動開始位置(ログブロックの位置)と移動終了位置(ログブロックの位置)の各々の組み合わせごとに、大局的移動経路の頻度を算出又は決定する機能を有する。大局的移動経路の頻度情報は、経路頻度情報データベースに記憶する。ここで大局的移動経路は、前述のとおりキャラクタが通過するログブロックの位置の順番で表される移動経路である。したがって経路履歴情報データベース又は経路頻度情報データベースは、ログメッシュデータベースを参照して作成される。また移動経路頻度決定手段405は、学習した大局的移動経路の履歴情報をそのまま受け取り、移動経路頻度を算出し決定することができる。なお本実施形態においては、大局的移動経路の履歴情報と頻度情報はそれぞれ別々のデータベースに格納されることが好ましいが、頻度情報は履歴情報に基づき作成される情報ゆえ、履歴情報は頻度情報を包含する広い概念の構成要素として解釈することができる。ただし、頻度情報が作成される際には、本発明が実施されるゲームの種類や性質なども考慮し、何らかの別の情報を履歴情報に加味しながら作成してもよい。したがって、頻度情報は必ずしも履歴情報のみから作成される情報ではない。
移動経路学習手段404が、大局的移動経路の履歴情報を、プレイヤキャラクタを操作するプレイヤの属性及びゲームの進行度のうちの少なくとも1つによりグループに分けている場合、移動経路頻度決定手段405は、実際に電子装置300をプレイするプレイヤに対応するグループにおける大局的移動経路の履歴情報を用いて、移動経路の頻度を算出又は決定することができる。
移動開始決定手段406は、NPCの移動を決定するとともに、移動開始位置及び移動目標位置を決定する機能を有する。NPCの移動の決定は、ゲームの進行において次の場面に移行した場合や何らかのイベントが発生した場合に、目標となる敵を倒しに行くために、又は目標となるアイテムを取得するために、行われる。この決定によりNPCを移動させることができる。概して移動開始位置は、決定した時点においてNPCが存在する位置である。
大局的移動経路決定手段407は、前述のとおり決定された移動開始位置及び移動目標位置について、当該移動開始位置(ログブロックの位置)から当該移動目標位置(ログブロックの位置)までの大局的移動経路を、前述のとおり決定された移動経路頻度の高さに基づいて決定する。好ましくは移動経路頻度が最も高い大局的移動経路を決定する。前述のとおり大局的移動経路は、移動開始位置から移動目標位置までに通過するログブロックを順番に並べて表された移動経路である。なお移動経路頻度の高さに基づいて大局的移動経路は決定されるため、大局的移動経路決定手段407は、移動経路頻度決定手段405を含むことができる。
局所的移動経路決定手段408は、大局的移動経路決定手段により決定された大局的移動経路を構成する各ログブロックのうち、移動開始位置及び移動目標位置を含まないログブロック内の任意のナビブロックの位置を小目的地位置として選択する。その後、決定された大局的移動経路におけるログブロックの順番に従って、(1)移動開始位置から大局的移動経路上の次のログブロック内の小目的地位置までの経路を決定するか、(2)小目的地位置から大局的移動経路上の次のログブロック内の小目的地位置までの経路を決定するか、又は(3)小目的地位置から大局的移動経路上の次のログブロック内の移動目標位置までの経路を決定する。局所的移動経路決定手段408は上記3つのいずれかの経路(局所的移動経路)を決定すると、移動制御手段403は、決定された経路に従ってNPCを移動させる。上記3つの決定される経路は、従来の最短経路探索アルゴリズムを用いて決定される最短経路であることが好ましい。NPCの移動が終了すると、再び経路の決定とNPCの移動をNPCが最終目標位置に到達するまで繰り返す。ただし、局所的移動経路決定手段408が上記3つの経路をすべて決定した後、移動制御手段403が決定された経路に従ってNPCを移動させてもよい。なお、移動開始位置と移動目標位置が隣接するログブロック内にある場合は、小目的地は存在しない。この場合は、移動開始位置から移動目標位置までの経路を探索する。
ここで移動経路の学習及び決定に関して以下に詳細に説明する。図5aは、ログブロックによる移動経路を学習する様子を示し、図5bは、学習した経路をナビブロック上で再現する様子を示す。図5aと図5bが示すように、本発明においては、比較的疎な3Dメッシュであるログメッシュと、比較的密な3Dメッシュであるナビメッシュとを用いる。ここで図5aに示す各々の升目はログブロックに対応し、それぞれが図5aに示すように座標位置を有する。また図5bに示す各々の升目はナビブロックに対応し、それぞれが座標位置を有する。説明を簡単にするため、これらの図は二次元的に表示しているが、3Dメッシュは3次元データであり、好ましくは高低に関する情報も含む。
具体的には、図5aは、プレイヤキャラクタのひとつながりの移動経路について、移動開始位置から移動終了位置までの移動経路を学習する様子を示す。図5aにおいては、左上から右下へ移動している。ここでは説明を簡単にするために、ログブロックの位置における移動開始位置(0,0)から移動終了位置(2,2)までの移動経路を学習する様子のみを表すが、実際にはあらゆるログブロックの位置が移動開始位置及び移動終了位置となりえ、その間の移動経路が学習されうる。経路503~507は、プレイヤ(人間)により操作されたプレイヤキャラクタの移動経路を示し、経路508は、最短経路を示す。図5aから分かるように、人間の移動履歴では大きく迂回する経路が頻出している。本発明においては、プレイヤキャラクタの移動履歴を取得するのにログブロックを用いているため、履歴ごとに多少のずれがあっても、同一の場所への移動履歴として積算することができる。具体的には、表1に示すように、ログメッシュを構成するログブロックごとに移動経路を分割し、移動履歴の頻度を積算することができる。表1は、経路頻度情報データベースの1つの実施形態である。表1に示される各座標はログブロックの位置に対応するものである。ここで、Originは、移動開始位置であり、Destinationは、移動終了位置である。Path_originは、この移動経路の部分パスの開始位置であり、Path_destは、部分パスの終了位置である。そしてFrequencyが、OriginからDestinationへの移動においてこの部分パスを通過した頻度である。このようにして、ある地点から別の地点へ移動する際に辿った経路を、大局的に学習することができる。前述のとおり、ここでは説明を簡単にするために、表1はOrigin(0,0)及びDestination(2,2)の組み合わせのみを記載するが、実際には学習したすべてのOriginとDestinationの組み合わせを表1は含むことができる。
図5bは、移動開始決定手段406が、NPCの移動を決定し、移動開始位置501及び移動目標位置502を決定した場合において、図5aにより学習した経路に基づいてNPCを移動させる経路を決定する様子を示す。具体的には、経路頻度情報データベースに対して、移動開始位置(NPCの現在位置)であるログブロックの位置(0,0)及び移動目標位置であるログブロックの位置(2,2)を照会し、それら2地点を形成する部分パスのうち、最も頻度が高い列を抽出する。この場合、Origin(0,0)及びDestination(2,2)の移動経路において、Path_origin(0,0)からの部分パスのうち最も頻度が高い経路は、Path_dest(0,1)への部分パスである。続いてPath_origin(0,1)からの部分パスのうち最も頻度が高い経路は、Path_dest(0,2)への部分パスである。同様の処理を繰り返し、Path_origin(0,0)及びPath_origin(0,1)、Path_origin(0,1)及びPath_origin(0,2)、Path_origin(0,2)及びPath_origin(1,2)、並びにPath_origin(1,2)及びPath_origin(2,2)の部分パスを抽出することにより、ログブロックの位置の順番で表される大局的移動経路{(0,0)、(0,1)、(0,2)、(1,2)、(2,2)}を決定する。この大局的移動経路から、図5bに示すように小目的地509を生成する。小目的地509の位置は、大局的移動経路を構成するログブロックのうち、移動開始位置501及び移動目標位置502を含まないログブロック内の任意のナビブロックの位置であり、大局的移動経路が決定された後に選択される。
続いて決定された大局的移動経路におけるログブロックの順番に従って、(1)移動開始位置501から大局的移動経路上の次のログブロック(0,1)内の小目的地位置509までの経路を決定し、(2)ログブロック(0,1)内の小目的地位置509から大局的移動経路上の次のログブロック(0,2)内の小目的地位置509までの経路を決定し、ログブロック(0,2)内の小目的地位置509から大局的移動経路上の次のログブロック(1,2)内の小目的地位置509までの経路を決定し、(3)ログブロック(1,2)内の小目的地位置509から大局的移動経路上の次のログブロック(2,2)内の移動目標位置502までの経路を決定する。小目的地位置間の移動経路(局所的移動経路)の探索には、好ましくは従来の最短経路探索アルゴリズムを用いることで、最短経路を決定する。このように決定された局所的移動経路に従ってNPCを移動させる。なおNPCの移動については、局所的移動経路を決定するごとにNPCを移動させ、その後局所的移動経路の決定とNPCの移動とを繰り返し行うようにしてもよいし、すべての局所的移動経路を決定した後にNPCを移動させてもよい。ここで、小目的地位置間(部分パスの開始位置から部分パスの終了位置)の移動経路は、対象の2つの小目的地位置のあるログブロック以外のログブロックを通過しないようにする必要がある。さもなければ、NPCは決定された大局的移動経路を通らないこととなるからである。したがって、決定された大局的移動経路上における隣接するログブロック内のみを通る経路を確保できるように、小目的地位置を選択することが好ましい。これらは移動開始位置から小目的地位置、又は小目的地位置から移動目標位置への移動においても同様である。
このように、比較的疎な3Dメッシュであるログメッシュを構成するログブロックと、比較的密な3Dメッシュであるナビメッシュを構成するナビブロックとを用いることにより、自然な経路探索を実現することができる。
記憶手段409は、プログラムやデータ等を記憶部204又は304へ格納する機能を有する。各種データベースへ蓄積することもできる。なお、移動経路学習手段404は、記憶手段409の一部とみなすこともできる。
通信手段410は無線通信、有線通信を行う機能を有する。記憶手段409は、通信手段410を介して、サーバ、光学ディスク等からプログラム又はデータを取得して、格納することができる。
[情報処理]
本発明においてゲームシステムが提供するゲームは、プログラム206をサーバ200に実行させ、かつプログラム306を電子装置300に実行させることで実現される。以下に説明する処理又は動作において、処理又は動作上の矛盾が生じない限りにおいて、プログラム206によりサーバ200に実行させる処理又は動作をプログラム306により電子装置300に実行させることで実現させることができ、その逆もまた同様である。
本発明においてゲームシステムが提供するゲームは、プログラム206をサーバ200に実行させ、かつプログラム306を電子装置300に実行させることで実現される。以下に説明する処理又は動作において、処理又は動作上の矛盾が生じない限りにおいて、プログラム206によりサーバ200に実行させる処理又は動作をプログラム306により電子装置300に実行させることで実現させることができ、その逆もまた同様である。
図6は、1つの実施形態に係るシステム100におけるサーバ200と電子装置300の情報処理を示すフローチャートである。電子装置300は、プログラム306が実行されることでゲームを起動し(ステップ601)、サーバ200との通信を開始する。例えば電子装置300としてスマートフォンを用いる場合、プログラム306はゲーム用アプリを含むことができ、プレイヤは当該アプリを起動してゲームを開始することができる。これによりサーバ200は電子装置300を認識する(ステップ602)。続いてサーバ200は、例えばプログラム206から、ゲームフィールドを読み込み、ゲームフィールドに関する情報を電子装置300に送信する(ステップ603)。ただしプログラム306の実行によりゲームフィールドが読み込まれ、又は生成されてもよい。
続いて電子装置300はプレイヤキャラクタを生成する(ステップ604)。プレイヤキャラクタは、プレイヤの選択により又はプログラムにより自動で、生成される。電子装置300は、生成したプレイヤキャラクタ情報をサーバ200に送信する(ステップ604)。サーバ200は当該キャラクタ情報を記憶するとともに、他のプレイヤから送信されるキャラクタ情報を記憶する(ステップ605)。ただし、サーバ200がすでに他のプレイヤから送信されるキャラクタ情報を記憶していた場合や他のプレイヤが存在しない場合は、ステップ605において他のプレイヤから送信されるキャラクタ情報を記憶しない。
ここでキャラクタ情報は、ゲームにおけるキャラクタの各種ステータスを示すものであり、当該時点におけるキャラクタの動作やキャラクタのゲームフィールド内の位置情報を含むことができる。電子装置300とサーバ200はこのようなキャラクタ情報等を含むゲーム情報をやりとりする。ただしゲームに関する情報についてのデータ構造はこれらに限定されない。
サーバ200は、記憶したキャラクタ情報及びプログラム206等から読み込んだNPCのキャラクタ情報の一部又は全部を、各電子装置300に送信する(ステップ606)。
続いて電子装置300は、サーバ200からキャラクタ情報を受信し、画面や各キャラクタの各種ステータスを更新する(ステップ607)。受信する情報は、ゲームに関して必要な情報すべてではなく、プレイヤがゲームを操作する上で必要な情報だけでもよい。
ゲームの進行に伴って、プレイヤキャラクタが操作されることにより又はゲームフィールド上のイベントにより、位置情報を含むキャラクタ情報が更新される。電子装置300は所定の間隔でプレイヤキャラクタ情報やサーバに対する送信要求などを含むゲーム情報をサーバ200に送信する(ステップ608)。電子装置300は、このように定期的にサーバ200へ送信してもよいし、サーバ200からの要求に応じて、ゲーム情報をサーバ200に送信してもよい。サーバ200は、各電子装置300より受信したゲーム情報を記憶し(ステップ609)、記憶したキャラクタ情報及びプログラム206等から読み込んだキャラクタ情報の一部又は全部を含むゲーム情報を送信し(ステップ610)、電子装置300は当該情報を受信する。サーバ200も同様に、所定の間隔で各電子装置300に各キャラクタ情報を含むゲーム情報を送信してもよいし、電子装置300からの要求に応じて送信してもよい。以降は、電子装置300がゲームを継続して実行し続ける限り(ステップ611)、ステップ607からステップ611を繰り返す。
本発明がネットワークに接続されない1つの電子装置によって実現される場合は、プログラム306を電子装置300に実行させることで実現され、電子装置300が図4に示す機能をすべて備える。この場合、図6に示すような通信は行われない。ただし図4に示す一部機能をサーバ200が備える場合、電子装置300はサーバ200に接続する必要があるため、図6に示すフローチャートの一部又は全部の情報処理を含む通信を行う。
図7は、本発明の1つの実施形態に係るゲームシステムにおける移動経路探索の情報処理を示すフローチャートであり、サーバ200が、移動制御手段403、移動経路学習手段404、移動経路頻度決定手段405、移動開始決定手段406、大局的移動経路決定手段407、及び局所的移動経路決定手段408を備えることを想定したフローチャートである。以下のフローチャートの処理は、図6のステップ607からステップ611が実行されるときに同時に実行されるものである。ただし、ステップ607からステップ611に組み込まれるように変形することで、1つのフローチャートの情報処理で実行されるように構成することもできる。
まず移動開始決定手段406がNPCの移動を決定することで当該フローは開始し、移動開始位置(概して現在のNPCの位置)と移動目標位置を決定する(ステップ701)。移動開始決定手段406は、ゲームの進行において次の場面に移行した場合や何らかのイベントが発生した場合に、目標となる敵を倒しに行くために、又は目標となるアイテムを取得するために、NPCの移動の決定し、移動開始位置及び移動目標位置を決定する。好ましくは、これらの位置は、ナビメッシュデータベースを適宜参照することで、ナビブロックの位置として決定する。
続いて、大局的移動経路決定手段407が、決定された移動開始位置及び移動目標位置について、移動経路頻度決定手段405により決定された当該移動経路の頻度の高さに基づいて、当該移動開始位置から当該移動目標位置までの大局的移動経路を決定する(ステップ702)。
続いて、局所的移動経路決定手段408が、大局的移動経路決定手段により決定された大局的移動経路を構成するログブロックのうち、移動開始位置及び移動目標位置を含まないログブロック内の任意のナビブロックの位置を小目的地位置として決定する(ステップ703)。ただし、移動開始位置と移動目標位置が隣接するログブロック内にある場合は、小目的地は存在しないため、当該決定は行なわれない。小目的地位置を決定した後、移動開始位置から移動経路上の次のログブロック内の小目的地位置までの経路を探索する(ステップ704)。前述のとおり、ここでの経路探索は最短経路探索であるのが好ましい。小目的地が存在しない場合は、移動開始位置から移動目標位置までの経路を探索する。
続いて、局所的移動経路決定手段408は、探索して経路を決定できたかを判断する(ステップ705)。経路が決定できない場合とは、経路探索対象の2つの位置を通る経路が見つからなかった場合や、経路は見つかったものの、見つかった経路が2つの位置の各々が位置するログブロック以外のログブロックを通過するものである場合である。経路を決定できた場合はステップ406へ進むが、経路を決定できなかった場合は、NPCを移動させることができないため、図7に示す情報処理のフローを終了するか、又は再度ステップ702若しくは703へ戻る(図示せず)。経路を決定できなかった場合には、当該事象を管理者へ報告するように構成することもできる。
経路が決定されると、移動制御手段403が、決定された経路に従ってNPCを移動させる(ステップ706)。NPCの移動が終了すると、移動目標位置へ到達したかどうかを判断する(ステップ707)。到達した場合は図7に示す情報処理のフローを終了する。到達していない場合は、ステップ704へ戻り、NPCが現在いる小目的地位置から移動経路上の次のログブロック内の小目的地位置又は移動目標位置までの経路を探索し、ステップ705へ進み、これらの処理をNPCが移動目標位置に到達するまで繰り返す。
図7に示す情報処理のフローは、ステップ701をトリガーとしてゲームプログラムのメインループからの呼び出しにより実行されるか、又はゲームプログラムのメインループの一部として実行される。ゲームプログラムのメインループにおいては様々な割り込み処理が存在し、所定の割り込み処理が実行されると、図7に示す情報処理は終了する。それは例えば、NPCが敵であるプレイヤキャラクタと遭遇した場合や、最終目的位置へ到達する前にゲームのステージが終了するなどゲームの場面ステータスが変更された場合などである。
[システムアーキテクチャ]
上記のとおり、本実施形態に係るシステムは、1つの電子装置によっても、ネットワークを介して複数の電子装置が接続されるシステムによっても実現することができる。当該システムは、図4に示す機能を有するものであるが、1つの実施形態に係るシステムアーキテクチャ800は、図8に示す9つのモジュールから構成することができる。このようにモジュール化を行うことにより、一部のモジュールを変更して各種のゲームに適用することが可能になる。
上記のとおり、本実施形態に係るシステムは、1つの電子装置によっても、ネットワークを介して複数の電子装置が接続されるシステムによっても実現することができる。当該システムは、図4に示す機能を有するものであるが、1つの実施形態に係るシステムアーキテクチャ800は、図8に示す9つのモジュールから構成することができる。このようにモジュール化を行うことにより、一部のモジュールを変更して各種のゲームに適用することが可能になる。
インプットモジュール801は、ゲームが実行されている端末のユーザインターフェイスを通じて人間からの入力を受け付けるモジュールである。既存のゲームシステムが有するインプット・イベント・ハンドラに相当し、入力受付手段401に対応する機能を有する。
移動制御モジュール802は、移動可能な領域のチェックや移動速度など、プレイヤキャラクタの移動を制御するモジュールであり、移動制御手段403に対応する機能を有する。プレイヤキャラクタの移動制御には、ナビメッシュDB内に格納されているナビブロックの情報が必要であるため、適宜ナビメッシュDBを参照する。
パスフリークエンシーカルキュレータ803は、プレイヤキャラクタのひとつながりの移動経路を、ログメッシュを構成するログブロックごとに、頻度を積算するモジュールであり、移動経路頻度決定手段405に対応する機能を有する。
ログメッシュDB804は、移動経路の頻度計算を行うための、ナビメッシュよりも大きな粒度のログメッシュに関するデータを格納するデータベースである。
ナチュラルパスフリークエンシーDB805は、表1に示すデータ構造の、移動経路の頻度情報を格納するデータベースであり、経路頻度情報データベースに対応する機能を有する。
行動決定AIモジュール806は、NPCの行動を決定するソフトウェアモジュールであり、移動開始決定手段406に対応する機能を有するものである。このモジュールが、NPCの移動を決定した時に、Origin(移動開始位置)とDestination(移動目標位置)をナチュラルパスファインダ807へのパラメータとして入力する。
ナチュラルパスファインダ807は、ナチュラルパスフリークエンシーDB805の中で頻度の高い経路を部分経路の列として抽出し、大局的経路探索を人間の移動経路の履歴を用いて行うモジュールであり、大局的移動経路決定手段407に対応する機能を有する。
最短パスファインダ808は、ナチュラルパスファインダ807が出力した部分経路間の移動経路を、ナビメッシュを構成するナビブロックを用いて最短経路として探索するモジュールであり、局所的移動経路決定手段408に対応する機能を有する。本モジュールは、(i)移動目標位置に到達する、(ii)プレイヤとの会敵などの割り込みがある、のいずれかの条件を満たすまで、経路探索を繰り返し、NPCを移動させる。
ナビメッシュDB809は、ナビメッシュに関するデータを格納するデータベースである。
以上に説明した処理又は動作において、あるステップにおいて、そのステップではまだ利用することができないはずのデータを利用しているなどの処理又は動作上の矛盾が生じない限りにおいて、処理又は動作を自由に変更することができる。また以上に説明してきた各実施例は、本発明を説明するための例示であり、本発明はこれらの実施例に限定されるものではない。本発明は、その要旨を逸脱しない限り、種々の形態で実施することができる。
100 システム
101 ネットワーク
150 データベース
200 サーバ
201、301 処理部
202、302 表示部
203、303 入力部
204、304 記憶部
205、305 通信部
206、306 プログラム
207、307 データベース
210、310 バス
300 電子装置
401 入力受付手段
402 画面表示手段
403 移動制御手段
404 移動経路学習手段
405 移動経路頻度決定手段
406 移動開始決定手段
407 大局的移動経路決定手段
408 局所的移動経路決定手段
409 記憶手段
410 通信手段
501 移動開始位置
502 移動終了位置(移動目標位置)
503、504、505、506、507 経路
508 最短経路
509 小目的地
800 システムアーキテクチャ
801 インプットモジュール
802 移動制御モジュール
803 パスフリークエンシーカルキュレータ
804 ログメッシュDB
805 ナチュラルパスフリークエンシーDB
806 行動決定AIモジュール
807 ナチュラルパスファインダ
808 最短パスファインダ
809 ナビメッシュDB
101 ネットワーク
150 データベース
200 サーバ
201、301 処理部
202、302 表示部
203、303 入力部
204、304 記憶部
205、305 通信部
206、306 プログラム
207、307 データベース
210、310 バス
300 電子装置
401 入力受付手段
402 画面表示手段
403 移動制御手段
404 移動経路学習手段
405 移動経路頻度決定手段
406 移動開始決定手段
407 大局的移動経路決定手段
408 局所的移動経路決定手段
409 記憶手段
410 通信手段
501 移動開始位置
502 移動終了位置(移動目標位置)
503、504、505、506、507 経路
508 最短経路
509 小目的地
800 システムアーキテクチャ
801 インプットモジュール
802 移動制御モジュール
803 パスフリークエンシーカルキュレータ
804 ログメッシュDB
805 ナチュラルパスフリークエンシーDB
806 行動決定AIモジュール
807 ナチュラルパスファインダ
808 最短パスファインダ
809 ナビメッシュDB
Claims (11)
- サーバと、前記サーバにネットワークを介して接続された1以上の電子装置とを備え、前記サーバに接続された電子装置のプレイヤにより操作されるキャラクタを共通のゲームフィールドに配置させてゲームを進行させるゲームシステムであって、各々がキャラクタの移動可能位置を定める複数のナビブロックから構成される前記ゲームフィールドは、各々が複数のナビブロックから構成される複数のログブロックを含むものであり、
プレイヤが操作しないノンプレイヤキャラクタを移動させるために、当該ノンプレイヤキャラクタの移動開始位置及び移動目標位置を決定する移動開始決定手段と、
1以上のプレイヤにより操作されたプレイヤキャラクタの移動開始位置から移動目標位置までのログブロックの位置の順番で表される大局的移動経路の履歴情報に基づいて、前記決定された移動開始位置から前記決定された移動目標位置までの1以上のプレイヤにより選択される頻度が最も高い大局的移動経路を決定する大局的移動経路決定手段と、
前記決定された大局的移動経路を構成するログブロックのうち前記決定された移動開始位置及び移動目標位置を含まないログブロック内の任意のナビブロックの位置を小目的地位置として各々選択し、前記決定された移動開始位置又は小目的地位置から、前記決定された大局的移動経路上の次のログブロック内の小目的地位置又は前記決定された移動目標位置までの経路を決定する局所的移動経路決定手段と、
前記決定された経路に従ってノンプレイヤキャラクタを移動させる移動制御手段と、
の各手段を、前記サーバ又は前記電子装置が備える、ゲームシステム。 - 前記局所的移動経路決定手段は、前記決定された大局的移動経路上における隣接するログブロック内のみを通る経路を確保できるように、小目的地位置を選択する、請求項1に記載のゲームシステム。
- 前記履歴情報は、プレイヤの属性及びゲームの進行度のうちの少なくとも1つによりグループに分けられ、
前記大局的移動経路決定手段は、プレイヤに対応したグループの前記履歴情報に基づいて、1以上のプレイヤにより選択される頻度が最も高い大局的移動経路を決定する、請求項1又は2に記載のゲームシステム。 - 前記プレイヤの属性は、プレイヤの習熟度、総プレイ時間、使用するキャラクタ、使用するキャラクタの属性、課金金額、属する国、及びプレイ人数の少なくとも1つを含む、請求項3に記載のゲームシステム。
- 前記サーバ又は前記電子装置は移動経路学習手段をさらに備え、
前記移動経路学習手段は、同一のログブロック内にプレイヤキャラクタが位置する時間又はゲームの進行に基づいてログブロックの位置で表される移動開始位置及び移動目標位置を決定するとともに、移動開始位置から移動目標位置までの大局的移動経路を前記履歴情報として記憶する、請求項1から4のいずれか1項に記載のゲームシステム。 - 前記履歴情報は、移動開始位置のログブロックと移動終了位置のログブロックの各々の組み合わせごとに算出された頻度情報である、請求項1から4のいずれか1項に記載のゲームシステム。
- ネットワークを介してサーバに接続された1以上の電子装置のプレイヤにより操作されるキャラクタを共通のゲームフィールドに配置させてプレイさせるゲームのためのプログラムであって、各々がキャラクタの移動可能位置を定める複数のナビブロックから構成される前記ゲームフィールドは、各々が複数のナビブロックから構成される複数のログブロックを含むものであり、前記プログラムは、前記サーバに、
プレイヤが操作しないノンプレイヤキャラクタを移動させるために、当該ノンプレイヤキャラクタの移動開始位置及び移動目標位置を決定するステップと、
1以上のプレイヤにより操作されたプレイヤキャラクタの移動開始位置から移動目標位置までのログブロックの位置の順番で表される大局的移動経路の履歴情報に基づいて、前記決定された移動開始位置から前記決定された移動目標位置までの1以上のプレイヤにより選択される頻度が最も高い大局的移動経路を決定するステップと、
前記決定された大局的移動経路を構成するログブロックのうち前記決定された移動開始位置及び移動目標位置を含まないログブロック内の任意のナビブロックの位置を小目的地位置として各々選択し、前記決定された移動開始位置又は小目的地位置から、前記決定された大局的移動経路上の次のログブロック内の小目的地位置又は前記決定された移動目標位置までの経路を決定するステップと、
前記決定された経路に従ってノンプレイヤキャラクタを移動させるステップと、
を実行させるプログラム。 - 前記プログラムは、前記サーバに、
同一のログブロック内にプレイヤキャラクタが位置する時間又はゲームの進行に基づいてログブロックの位置で表される移動開始位置及び移動目標位置を決定するとともに、移動開始位置から移動目標位置までの大局的移動経路を前記履歴情報として記憶するステップをさらに実行させる、請求項7に記載のプログラム。 - サーバと、前記サーバにネットワークを介して接続された1以上の電子装置とを備え、前記サーバに接続された電子装置のプレイヤにより操作されるキャラクタを共通のゲームフィールドに配置させてゲームを進行させるゲームシステムにおけるサーバであって、各々がキャラクタの移動可能位置を定める複数のナビブロックから構成される前記ゲームフィールドは、各々が複数のナビブロックから構成される複数のログブロックを含むものであり、
プレイヤが操作しないノンプレイヤキャラクタを移動させるために、当該ノンプレイヤキャラクタの移動開始位置及び移動目標位置を決定する移動開始決定手段と、
1以上のプレイヤにより操作されたプレイヤキャラクタの移動開始位置から移動目標位置までのログブロックの位置の順番で表される大局的移動経路の履歴情報に基づいて、前記決定された移動開始位置から前記決定された移動目標位置までの1以上のプレイヤにより選択される頻度が最も高い大局的移動経路を決定する大局的移動経路決定手段と、
前記決定された大局的移動経路を構成するログブロックのうち前記決定された移動開始位置及び移動目標位置を含まないログブロック内の任意のナビブロックの位置を小目的地位置として各々選択し、前記決定された移動開始位置又は小目的地位置から、前記決定された大局的移動経路上の次のログブロック内の小目的地位置又は前記決定された移動目標位置までの経路を決定する局所的移動経路決定手段と、
前記決定された経路に従ってノンプレイヤキャラクタを移動させる移動制御手段と、
を備える、サーバ。 - サーバと、前記サーバにネットワークを介して接続された1以上の電子装置とを備え、前記サーバに接続された電子装置のプレイヤにより操作されるキャラクタを共通のゲームフィールドに配置させてゲームを進行させるゲームシステムにおける電子装置であって、各々がキャラクタの移動可能位置を定める複数のナビブロックから構成される前記ゲームフィールドは、各々が複数のナビブロックから構成される複数のログブロックを含むものであり、
プレイヤが操作しないノンプレイヤキャラクタを移動させるために、当該ノンプレイヤキャラクタの移動開始位置及び移動目標位置を決定する移動開始決定手段と、
1以上のプレイヤにより操作されたプレイヤキャラクタの移動開始位置から移動目標位置までのログブロックの位置の順番で表される大局的移動経路の履歴情報に基づいて、前記決定された移動開始位置から前記決定された移動目標位置までの1以上のプレイヤにより選択される頻度が最も高い大局的移動経路を決定する大局的移動経路決定手段と、
前記決定された大局的移動経路を構成するログブロックのうち前記決定された移動開始位置及び移動目標位置を含まないログブロック内の任意のナビブロックの位置を小目的地位置として各々選択し、前記決定された移動開始位置又は小目的地位置から、前記決定された大局的移動経路上の次のログブロック内の小目的地位置又は前記決定された移動目標位置までの経路を決定する局所的移動経路決定手段と、
前記決定された経路に従ってノンプレイヤキャラクタを移動させる移動制御手段と、
を備える、電子装置。 - サーバと、前記サーバにネットワークを介して接続された1以上の電子装置とを備え、前記サーバに接続された電子装置のプレイヤにより操作されるキャラクタを共通のゲームフィールドに配置させてゲームを進行させるゲームシステムにおけるゲーム制御方法であって、各々がキャラクタの移動可能位置を定める複数のナビブロックから構成される前記ゲームフィールドは各々が複数のナビブロックから構成される複数のログブロックを含むものであり、
プレイヤが操作しないノンプレイヤキャラクタを移動させるために、当該ノンプレイヤキャラクタの移動開始位置及び移動目標位置を決定するステップと、
1以上のプレイヤにより操作されたプレイヤキャラクタの移動開始位置から移動目標位置までのログブロックの位置の順番で表される大局的移動経路の履歴情報に基づいて、前記決定された移動開始位置から前記決定された移動目標位置までの1以上のプレイヤにより選択される頻度が最も高い大局的移動経路を決定するステップと、
前記決定された大局的移動経路を構成するログブロックのうち前記決定された移動開始位置及び移動目標位置を含まないログブロック内の任意のナビブロックの位置を小目的地位置として各々選択し、前記決定された移動開始位置又は小目的地位置から、前記決定された大局的移動経路上の次のログブロック内の小目的地位置又は前記決定された移動目標位置までの経路を決定するステップと、
前記決定された経路に従ってノンプレイヤキャラクタを移動させるステップと、
を備え、各ステップは前記サーバ又は前記電子装置により実行されるゲーム制御方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201680077742.1A CN108463273B (zh) | 2015-11-04 | 2016-09-23 | 基于游戏者的移动历史来进行非游戏者角色的路径寻找的游戏*** |
US15/969,610 US10828568B2 (en) | 2015-11-04 | 2018-05-02 | Game system, etc. performing path finding of non-player character on the basis of movement history of player |
HK18114080.2A HK1254973A1 (zh) | 2015-11-04 | 2018-11-05 | 基於遊戲者的移動歷史來進行非遊戲者角色的路徑尋找的遊戲系統等 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015-216912 | 2015-11-04 | ||
JP2015216912A JP5887458B1 (ja) | 2015-11-04 | 2015-11-04 | プレイヤの移動履歴に基づいてノンプレイヤキャラクタの経路探索を行うゲームシステム等 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/969,610 Continuation US10828568B2 (en) | 2015-11-04 | 2018-05-02 | Game system, etc. performing path finding of non-player character on the basis of movement history of player |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2017077783A1 true WO2017077783A1 (ja) | 2017-05-11 |
Family
ID=55524006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2016/077965 WO2017077783A1 (ja) | 2015-11-04 | 2016-09-23 | プレイヤの移動履歴に基づいてノンプレイヤキャラクタの経路探索を行うゲームシステム等 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10828568B2 (ja) |
JP (1) | JP5887458B1 (ja) |
CN (1) | CN108463273B (ja) |
HK (1) | HK1254973A1 (ja) |
WO (1) | WO2017077783A1 (ja) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101875913B1 (ko) * | 2016-05-20 | 2018-07-06 | 주식회사 엑소게임즈 | 사용자 단말에서 수행되는 다중 접속 네트워크 게임 제공 방법 및 사용자 단말 |
WO2018130135A1 (zh) * | 2017-01-13 | 2018-07-19 | 腾讯科技(深圳)有限公司 | 一种控制模拟对象寻路的方法、装置及服务器 |
CN107357563B (zh) | 2017-05-25 | 2018-11-09 | 腾讯科技(深圳)有限公司 | 对象移动方法和装置以及存储介质、电子装置 |
KR102085440B1 (ko) | 2017-12-26 | 2020-03-05 | (주)스코넥엔터테인먼트 | 가상 현실 제어 시스템 |
WO2019132522A1 (ko) * | 2017-12-26 | 2019-07-04 | 스코넥엔터테인먼트주식회사 | 가상 현실 제어 시스템 |
CN109331466A (zh) * | 2018-09-14 | 2019-02-15 | 北京智明星通科技股份有限公司 | 一种游戏方法、***及其装置 |
US10792568B1 (en) * | 2018-09-24 | 2020-10-06 | Amazon Technologies, Inc. | Path management for virtual environments |
CN109240302B (zh) * | 2018-09-30 | 2022-04-22 | 北京金山安全软件有限公司 | 一种使用机器人赛车的方法、装置、电子设备及存储介质 |
CN109550249B (zh) * | 2018-11-28 | 2022-04-29 | 腾讯科技(深圳)有限公司 | 一种目标对象的控制方法、装置及设备 |
CN109731332B (zh) * | 2018-12-21 | 2023-03-07 | 网易(杭州)网络有限公司 | 非玩家角色的控制方法、装置、设备及存储介质 |
CN110064205B (zh) * | 2019-04-24 | 2023-02-17 | 腾讯科技(深圳)有限公司 | 用于游戏的数据处理方法、设备和介质 |
US11241621B2 (en) | 2019-09-03 | 2022-02-08 | Square Enix Co., Ltd. | Non-transitory computer-readable medium and video game processing system |
JP2021037140A (ja) * | 2019-09-04 | 2021-03-11 | 株式会社スクウェア・エニックス | ビデオゲーム処理プログラム、及びビデオゲーム処理システム |
CN110538455B (zh) * | 2019-09-05 | 2021-03-19 | 腾讯科技(深圳)有限公司 | 虚拟对象的移动控制方法、装置、终端及存储介质 |
CN110604920A (zh) * | 2019-09-16 | 2019-12-24 | 腾讯科技(深圳)有限公司 | 基于游戏的学习方法、装置、电子设备及存储介质 |
CN110681156B (zh) * | 2019-10-10 | 2021-10-29 | 腾讯科技(深圳)有限公司 | 虚拟世界中的虚拟角色控制方法、装置、设备及存储介质 |
CN110755848B (zh) * | 2019-11-06 | 2023-09-15 | 网易(杭州)网络有限公司 | 一种游戏中的寻路方法、终端及可读存储介质 |
CN111111193B (zh) * | 2019-12-25 | 2023-09-22 | 北京奇艺世纪科技有限公司 | 一种游戏控制方法、装置及电子设备 |
CN111151007B (zh) * | 2019-12-27 | 2023-09-08 | 上海米哈游天命科技有限公司 | 一种对象选择方法、装置、终端及存储介质 |
CN111389007B (zh) * | 2020-03-13 | 2022-05-31 | 腾讯科技(深圳)有限公司 | 一种游戏控制方法、装置、计算设备及存储介质 |
CN113877208A (zh) * | 2020-07-03 | 2022-01-04 | 上海莉莉丝科技股份有限公司 | 游戏对象寻路方法、装置及计算机可读存储介质 |
CN112044074B (zh) * | 2020-09-04 | 2024-06-11 | 网易(杭州)网络有限公司 | 对非玩家角色寻路的方法、装置、存储介质及计算机设备 |
JP2023011071A (ja) * | 2021-07-11 | 2023-01-23 | 株式会社スクウェア・エニックス | プラン処理プログラムおよびプラン処理システム |
CN113559517B (zh) * | 2021-07-30 | 2023-07-14 | 腾讯科技(深圳)有限公司 | 非玩家虚拟角色的控制方法和装置、存储介质及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010068872A (ja) * | 2008-09-16 | 2010-04-02 | Namco Bandai Games Inc | プログラム、情報記憶媒体及びゲーム装置 |
JP2015024159A (ja) * | 2014-09-30 | 2015-02-05 | 株式会社カプコン | ゲームプログラム、及びゲームシステム |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000237453A (ja) | 1999-02-16 | 2000-09-05 | Taito Corp | 課題解決型乗り物ゲーム装置 |
US20020175918A1 (en) * | 2001-04-17 | 2002-11-28 | Barber John S. | Method and system for implementing a path network in a computer graphics scene |
GB0407336D0 (en) * | 2004-03-31 | 2004-05-05 | British Telecomm | Pathfinding system |
JP3770499B1 (ja) * | 2004-11-02 | 2006-04-26 | 任天堂株式会社 | ゲーム装置及びゲームプログラム |
KR100657962B1 (ko) * | 2005-06-21 | 2006-12-14 | 삼성전자주식회사 | 3차원 그래픽 디스플레이 장치 및 방법 |
CN100589499C (zh) * | 2005-09-26 | 2010-02-10 | 腾讯科技(深圳)有限公司 | 一种联网游戏中角色的移动方法 |
JP2008032596A (ja) * | 2006-07-31 | 2008-02-14 | Mobile Mapping Kk | 3次元マップマッチング処理装置、3次元マップマッチング処理方法、3次元マップマッチング処理プログラム、ナビゲーション装置、ナビゲーション方法、ナビゲーションプログラム、および、自動車 |
JP4979313B2 (ja) * | 2006-09-13 | 2012-07-18 | 任天堂株式会社 | ゲームプログラムおよびゲーム装置 |
JP5261520B2 (ja) * | 2011-03-08 | 2013-08-14 | 株式会社コナミデジタルエンタテインメント | ゲームシステム及び、それに用いる制御方法 |
CN103593546B (zh) * | 2012-08-17 | 2015-03-18 | 腾讯科技(深圳)有限公司 | 一种无动态阻挡网络游戏***及其处理方法 |
CN104225918A (zh) * | 2013-06-06 | 2014-12-24 | 苏州蜗牛数字科技股份有限公司 | 基于网络游戏的npc自主反馈交互方法 |
-
2015
- 2015-11-04 JP JP2015216912A patent/JP5887458B1/ja active Active
-
2016
- 2016-09-23 CN CN201680077742.1A patent/CN108463273B/zh active Active
- 2016-09-23 WO PCT/JP2016/077965 patent/WO2017077783A1/ja active Application Filing
-
2018
- 2018-05-02 US US15/969,610 patent/US10828568B2/en active Active
- 2018-11-05 HK HK18114080.2A patent/HK1254973A1/zh unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010068872A (ja) * | 2008-09-16 | 2010-04-02 | Namco Bandai Games Inc | プログラム、情報記憶媒体及びゲーム装置 |
JP2015024159A (ja) * | 2014-09-30 | 2015-02-05 | 株式会社カプコン | ゲームプログラム、及びゲームシステム |
Non-Patent Citations (3)
Title |
---|
BUCKLAND, MAT: "Jissenteki na Keiro Planning, Programming game AI by example", 26 September 2007 (2007-09-26), pages 337 - 382 * |
SMED, JOUNI ET AL., ALGORITHMS AND NETWOKING FOR COMPUTER GAMES, 25 October 2007 (2007-10-25), pages 081 - 092 * |
TAHIR ARAI: "Middleware for Game Development", THE JOURNAL OF THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS, vol. 96, no. 1, 1 January 2013 (2013-01-01), pages 14 - 17 * |
Also Published As
Publication number | Publication date |
---|---|
JP2017086215A (ja) | 2017-05-25 |
US10828568B2 (en) | 2020-11-10 |
US20180250595A1 (en) | 2018-09-06 |
CN108463273A (zh) | 2018-08-28 |
HK1254973A1 (zh) | 2019-08-02 |
JP5887458B1 (ja) | 2016-03-16 |
CN108463273B (zh) | 2021-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5887458B1 (ja) | プレイヤの移動履歴に基づいてノンプレイヤキャラクタの経路探索を行うゲームシステム等 | |
JP5951555B2 (ja) | ビデオゲーム処理プログラム、及びビデオゲーム処理システム | |
US9656169B2 (en) | Characterization of player type by visual attributes | |
JP2016159118A (ja) | プログラム及びサーバシステム | |
JP2017051493A (ja) | プログラム及びゲームシステム | |
KR20220139970A (ko) | 가상 장면에서의 데이터 처리 방법, 디바이스, 저장 매체, 및 프로그램 제품 | |
JP5617022B1 (ja) | 仮想空間の表示画像を生成するためのシステム、プログラム及び方法 | |
WO2019035193A1 (ja) | ゲームプログラム、及びゲームプログラム制御方法 | |
KR20170013539A (ko) | 증강현실 기반의 게임 시스템 및 방법 | |
CN113856200A (zh) | 一种画面显示方法、装置、电子设备及可读存储介质 | |
CN111389007B (zh) | 一种游戏控制方法、装置、计算设备及存储介质 | |
JP2020044134A (ja) | ゲームプログラム、方法、および情報処理装置 | |
JP2023164687A (ja) | 仮想オブジェクトの制御方法及び装置並びにコンピュータ装置及びプログラム | |
JP5617021B1 (ja) | 仮想空間の表示画像を生成するためのシステム、プログラム及び方法 | |
US11298617B2 (en) | Game program, game processing method, and information processing device | |
JP2022188519A (ja) | 表示制御方法およびプログラム | |
JP2015082322A (ja) | 仮想空間の表示画像を生成するためのシステム、プログラム及び方法 | |
JP7502646B2 (ja) | 端末装置、制御プログラム、情報処理装置及びサーバ装置用プログラム | |
JP7141486B1 (ja) | プログラム、情報処理装置、方法、及びシステム | |
KR101182034B1 (ko) | 게임 캐릭터의 이미지를 변경하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 | |
JP2024527463A (ja) | 仮想環境に適用される座標軸表示方法、装置、端末及びコンピュータプログラム | |
JP6145661B2 (ja) | ゲーム制御装置、プログラム、ゲームシステム | |
CN115624748A (zh) | 游戏中的信息处理方法、装置、电子设备及存储介质 | |
Tang et al. | 3DHero: An Interactive Puzzle Game Platform for 3D Spatial and Reasoning Training using Game Engine and Machine Learning | |
JP2023049267A (ja) | ゲームシステム、プログラム及びゲーム提供方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 16861852 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 16861852 Country of ref document: EP Kind code of ref document: A1 |