WO2017047348A1 - プレイヤの意図を予測してレンダリングするためのリソース配分を決定するプログラム、電子装置、システム及び方法 - Google Patents

プレイヤの意図を予測してレンダリングするためのリソース配分を決定するプログラム、電子装置、システム及び方法 Download PDF

Info

Publication number
WO2017047348A1
WO2017047348A1 PCT/JP2016/074770 JP2016074770W WO2017047348A1 WO 2017047348 A1 WO2017047348 A1 WO 2017047348A1 JP 2016074770 W JP2016074770 W JP 2016074770W WO 2017047348 A1 WO2017047348 A1 WO 2017047348A1
Authority
WO
WIPO (PCT)
Prior art keywords
event
candidate
candidate object
determining
score
Prior art date
Application number
PCT/JP2016/074770
Other languages
English (en)
French (fr)
Inventor
修一 倉林
Original Assignee
株式会社Cygames
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社Cygames filed Critical 株式会社Cygames
Priority to CN201680066537.5A priority Critical patent/CN108290071B/zh
Publication of WO2017047348A1 publication Critical patent/WO2017047348A1/ja
Priority to US15/925,344 priority patent/US10675538B2/en
Priority to HK18114081.1A priority patent/HK1254974A1/zh

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/214Input arrangements for video game devices characterised by their sensors, purposes or types for locating contacts on a surface, e.g. floor mats or touch pads
    • A63F13/2145Input arrangements for video game devices characterised by their sensors, purposes or types for locating contacts on a surface, e.g. floor mats or touch pads the surface being also a display device, e.g. touch screens
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating 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/67Generating 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/61Score computation
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/64Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car

Definitions

  • the present invention relates to a program, an electronic apparatus, a system, and a method for determining resource allocation for rendering by predicting a player's intention based on a history.
  • a technique for rendering a three-dimensional graphic by rendering a three-dimensional object composed of a plurality of polygons arranged in a virtual three-dimensional space is known.
  • Such three-dimensional graphics are increasingly used in the field of games.
  • objects such as characters and buildings that can be operated by a controller are arranged in a virtual three-dimensional space, and an image in which these are drawn based on a set viewpoint (viewpoint camera) is generated.
  • the image is displayed on a display device such as a display.
  • 3D image display is realized by, for example, a GPU equipped with a programmable shader.
  • the CPU writes a command related to drawing into the memory
  • the GPU refers to the command, and renders the object through a programmable shader mounted on the GPU.
  • the shader includes a vertex shader that performs processing on vertices, a geometry shader that performs processing to increase or decrease the number of vertices constituting a primitive, a pixel shader that performs processing for each pixel, and the like.
  • the drawing quality of an object displayed in the game is greatly influenced by the number of shader units used for drawing the object. That is, an object drawn using more shader units has a higher quality as viewed from the player, while an object drawn using fewer shader units has a relatively lower quality.
  • shader units In order to realize the image quality appealing to the player, it is desirable to allocate more shader units to the object that is noticed in the game.
  • GPGPUs In recent years, with the spread of programmable shaders and GPGPUs, it has become possible to dynamically allocate resources for shader units in real-time 3D image rendering. For example, in sunset scenes, many of the shader units are used as pixel shaders that calculate colors, and in scenes where a large number of polygons are displayed, the majority of shader units are used as vertex shaders. It has been.
  • the GPU Since portable devices such as smartphones have power battery capacity and mounting area limitations, the GPU has only a limited number of shader units compared to PCs and game consoles. Therefore, the importance of accurate resource allocation of shader units in portable devices is higher.
  • Patent Document 1 achieves a technique for reducing the processing load of the terminal by changing the image resolution of the object to be displayed according to the viewpoint position of the player.
  • Patent Document 1 describes a technique for determining an attention area of a player using a camera of a terminal and selecting high / low resolution of an image to be drawn according to the determination result.
  • this technique requires an external device such as a camera, there is a problem that application is limited.
  • An object of the present invention is to predict the next action that a player can take without using an external device such as a camera, while resources necessary for graphics processing such as a shader unit of a GPU are limited.
  • optimal resource allocation for improving the substantial 3D object drawing quality seen from the player is realized.
  • the present invention has been made in view of the above problems, and has the following characteristics. That is, the program as one aspect of the present invention performs resource allocation of the processing unit that renders a plurality of three-dimensional objects arranged in a three-dimensional virtual space, which is executed in an electronic device including a display unit and a processing unit.
  • the event history information includes event frequency information indicating an appearance frequency for each pattern of an event sequence composed of two or more consecutive events in the history of events that have occurred.
  • the event frequency information includes information indicating an appearance frequency for each pattern of an event sequence including N or less consecutive N (N ⁇ 2) events, and determines the attention score.
  • calculating the attention score of each of the candidate objects by calculating a score indicating the possibility that each of the candidate events will occur next.
  • the program further causes the electronic device to execute a step of storing an event that has occurred.
  • the electronic device is connected to a server via a network, and the program receives the event history information from the server to the electronic device, and an event that has occurred in the server. To store information including an event that has occurred to the server.
  • the processing unit includes a plurality of shader units, and the resource allocation of the processing unit includes the allocation of the shader units used for rendering the candidate objects.
  • An electronic device is an electronic device including a display unit and a processing unit, and relates to a game event from a three-dimensional object arranged in a three-dimensional virtual space drawn on the display unit.
  • Candidate object selection means for selecting an object to be selected as a candidate object, and the candidate object based on event history information including information about the selected candidate object, the event or event sequence that occurred immediately before, and the event that occurred
  • Attention level score determining means for determining an attention level score indicating a degree of attention by each player of the candidate object by determining a weight related to occurrence of each candidate event that is a related event, and the attention level score And the candidate object from the player's point of view.
  • an electronic device and a resource allocation determining means for determining respective resource allocation of the processing unit for rendering the candidate object.
  • a system is a system including a server and an electronic device that is connected to the server via a network and includes a display unit and a processing unit, and is a three-dimensional virtual image drawn on the display unit
  • Candidate object selection means for selecting an object related to a game event as a candidate object from three-dimensional objects arranged in space, the selected candidate object, the event or event sequence that occurred immediately before, and the event that occurred Attention indicating the degree of attention received by each player of the candidate object by determining a weight related to occurrence of each candidate event that is an event related to the candidate object based on event history information including information about the candidate object Attention score determination to determine the degree score
  • resource allocation determining means for determining resource allocation of the processing unit for rendering each candidate object based on the attention score and the depth distance of the candidate object from the viewpoint of the player.
  • each means is provided in the server or the electronic device.
  • the system further includes a storage unit that stores an event that has occurred, and the server or the electronic device further includes two consecutive events in the history of events stored in the storage unit.
  • This is a system for creating event history information including event frequency information indicating an appearance frequency for each pattern of an event sequence including the above events.
  • the event frequency information includes information indicating an appearance frequency for each pattern of an event sequence including N or less consecutive N (N ⁇ 2) events. Is based on the occurrence frequency of an event sequence or event sequence that occurred immediately before the candidate event in the event frequency information and n consecutive event sequences (2 ⁇ n ⁇ N) composed of the candidate events, for each of the candidate events.
  • N ⁇ 2 consecutive N
  • it includes a degree-of-interest score calculation means for calculating the degree-of-interest score of each of the candidate objects by calculating a score indicating the possibility that each of the candidate events will occur next.
  • a method is a system including a server and an electronic apparatus connected to the server through a network and including a display unit and a processing unit.
  • a method for determining resource allocation of the processing unit for rendering an object of a game the step of selecting an object related to a game event as a candidate object from the objects drawn on the display unit, and the selected Determining a weight for each occurrence of a candidate event that is an event related to the candidate object, based on event history information including information about the candidate object, the event or event sequence that occurred immediately before, and the event that occurred.
  • each candidate object A step of determining an attention score indicating a degree of attention from the ear, and the processing for rendering each candidate object based on the attention score and the depth distance of the candidate object from the viewpoint of the player Determining the resource allocation of each unit, each step being a method performed by the server or the electronic device.
  • the present invention predicts the next action that the player can take by analyzing the event history of the game, and allows the player to pay attention to the object that the predicted action affects and the object that is the execution subject of the action.
  • a resource (such as a shader unit) that determines rendering quality is allocated in the descending order of extraction as an object having a high probability and a high possibility of attention.
  • the number of objects that the player can pay attention to at one time is about 1 to 3
  • the rendering quality of the non-attention object can be reduced by about 30%.
  • the game to which the present invention is applied can improve the rendering quality when viewed from the player by about 10 to 30% as compared with the conventional game.
  • the rendering quality means, for example, the number of polygons (LOD) used for drawing one object and the complexity of the coloring process by the pixel shader.
  • the present invention does not require an external device such as a camera, and can therefore be realized in a standard smartphone. Unlike the gaze detection method using a camera, since the present invention predicts the movement of the player's gaze, the rendering quality can be controlled prior to the movement of the player's gaze.
  • GPU resource allocation such as shader units can be executed without applying a load to the smartphone.
  • FIG. 1 illustrates a hardware configuration of an electronic device according to an embodiment of the present invention.
  • 1 illustrates a hardware configuration of an electronic device including a CPU and a GPU according to an embodiment of the present invention.
  • 2 shows coordinate axes of a touch panel of an electronic device according to an embodiment of the present invention.
  • 1 shows a functional block diagram of an electronic device according to one embodiment of the present invention.
  • 1 illustrates a graphics pipeline of a GPU according to one embodiment of the present invention. It is the flowchart which showed the information processing which concerns on one Embodiment of this invention.
  • Fig. 4 shows a history of events that have occurred according to one embodiment of the invention.
  • Fig. 6 illustrates a history of events that have occurred according to one embodiment of the present invention divided into N consecutive combinations.
  • FIG. 4 shows a history of events that have occurred according to one embodiment of the invention.
  • Fig. 6 illustrates a history of events that have occurred according to one embodiment of the present invention divided into N consecutive combinations.
  • FIG. 6 shows a state in which an occurrence frequency according to an embodiment of the present invention is indexed by counting appearance frequencies for every N consecutive combinations.
  • FIG. An example of a wi function used for a score function according to an embodiment of the present invention is shown.
  • 4 shows an example of GPU resource allocation according to one embodiment of the present invention.
  • 1 shows an example of the overall configuration of a system according to an embodiment of the present invention. 1 shows a hardware configuration of a server according to an embodiment of the present invention. 1 shows a functional block diagram of a system according to one embodiment of the present invention.
  • FIG. 1 shows a system architecture of a system according to one embodiment of the present invention.
  • the system according to the present embodiment can be realized by a system in which a plurality of electronic devices are connected via a network, but can also be realized by a single electronic device.
  • a system connected to a network will be described.
  • the system connected to the network is described assuming a server-client system, it can also be configured by a system without a server such as PtoP.
  • the game in this embodiment is a game in which a plurality of objects are arranged on the screen.
  • the player can select or operate an object by a touch operation.
  • the object includes an object related to the event and an object not related to the event. Unless otherwise stated, the following simply refers to an object related to an event.
  • the object related to the event can generate an event for an object that can be operated by the player, an object that can be operated by the object that can be operated by the player, and an object that can be operated by the player.
  • an event means a process or control having a single meaning and unit that is generated by an operation of the player or a process on the game system side in the game, or by an operation of a player or an operation of another player, or
  • predetermined game processing or control is performed. For example, when a plurality of teammate characters (objects) that can be operated by the player and a plurality of enemy characters facing the character are displayed on the screen, the player operates the teammate character A1 to “punch” the enemy character B1.
  • the object A1 is an object related to the event of “punching” the object B1.
  • the enemy character B2 can generate an event “kick” the teammate character A2
  • the object B2 is an object related to the event “kick” the object A2.
  • the object B1 can be an object related to the event of “punching”
  • the object A2 can be an object related to the event of “kicking”.
  • an event is associated with at least one object, and each object can be associated with one or more events.
  • an identifier for identifying each object is attached to each object.
  • FIG. 1 a is a block diagram showing a hardware configuration of an electronic device 100 according to an embodiment of the present invention.
  • the electronic device 100 includes a processing unit 101, a display unit 102, a contact type input unit 103, a storage unit 104, and a communication unit 105. Each of these components is connected by the bus 108, but each may be individually connected as necessary.
  • the electronic device 100 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 101 performs various processes such as a game process and an image generation process based on the program 106, the input data from the contact-type input unit 103, or the data received from the communication unit 105.
  • the processing unit 101 includes a CPU that controls each unit included in the electronic apparatus 100, and preferably includes a GPU that performs a drawing process.
  • the storage unit 104 includes a hard disk, a main memory, and a buffer memory.
  • a program 106 is stored in the hard disk.
  • the hard disk may be any non-volatile storage as long as it can store information. It may be removable.
  • the electronic device 100 when it is a smartphone, it includes ROM and RAM.
  • the storage unit 104 stores the program 106 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, a video game or a web browser, or a shader program, preferably a game engine.
  • the various data includes, for example, image data for displaying various images such as objects appearing in the game, and data such as coordinates that can be written in the storage unit 104 during the game.
  • the storage unit 104 includes a database 107 regarding event history information and frequency information of continuously generated event history.
  • the database 107 includes an event history information database related to event history information including information about an event that has occurred, and an appearance frequency for each pattern of an event sequence including two or more consecutive events based on the event history information. And an event frequency information database related to the event frequency information shown.
  • the communication unit 105 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
  • Display unit (display) 102 displays an image output by program 106 to be executed.
  • a liquid crystal display is preferable, but a display using an organic EL, a plasma display, or the like may be used.
  • FIG. 1B shows a block diagram showing a hardware configuration of the electronic device 100 according to one embodiment when the processing unit 101 includes a CPU and a GPU.
  • the CPU 109 writes the drawing command to the main memory 111
  • the GPU 110 having a plurality of shader units (not shown) writes the drawing data to the frame buffer on the video memory 112 with reference to the drawing command, and the content read from the frame buffer is used as it is.
  • Drawing on the display unit 102 As an example, the CPU 109 stores drawing data such as primitives in a buffer on the main memory 111, and transfers the drawing data to a buffer on the video memory 112 managed by OpenGL (registered trademark), for example. Then, after processing by the graphics pipeline, the image is drawn on the display unit 102 as it is.
  • OpenGL registered trademark
  • the contact-type input unit 103 gives an input to the electronic device 100 based on the position touched by the player, such as a touch pad.
  • the display unit 102 and the contact-type input unit 103 are an integrated touch panel, but may be in separate forms arranged at different positions.
  • the input by the player's touch on the display unit 102 is accepted, and the contact type input unit 103 displays the coordinates corresponding to the position touched by the player. Detect and apply to electronic device 100.
  • the detection method can include all methods such as a capacitance method in a touch panel, for example, but the contact-type input unit 103 detects that two or more points are touched simultaneously by a player's finger and corresponds to the detected position. It is preferable that each coordinate information to be given is given to the electronic device 100.
  • the touch is an operation or a state in which a finger or the like touches the contact type input unit 103, in this embodiment, the touch panel.
  • the touch by the player is described as being performed by the player's finger, but may be touched by any finger, or may be another such as a stylus pen.
  • the release is an operation or state in which a finger or the like is separated from the touch panel.
  • the player mainly operates the electronic device 100 by touching or releasing it.
  • touch operations may include touch, long touch, multi-touch, release, swipe, tap, double tap, long tap, drag, and flick.
  • a tap is an operation for releasing a touch without moving the touch position following the touch.
  • the processing unit 101 determines part or all of the types of touch operations based on contact with a touch panel such as a finger, contact position, contact time, or number of contacts.
  • the display unit 102 and the contact input unit 103 are an integrated touch panel 113.
  • the contact-type input unit 103 is designated by coordinates using a coordinate plane composed of a first axis and a second axis that is substantially orthogonal to the first axis.
  • the first axis is substantially parallel to the short side of the touch panel 113 (contact type input unit 103) having a substantially rectangular shape
  • the second axis is substantially parallel to the long side of the touch panel 113.
  • the coordinate axis (horizontal axis) in the first axis direction and the coordinate axis (vertical axis) in the second axis direction are represented as coordinates (x, y).
  • the processing unit 101 can acquire a touch position detected by the touch panel 113 as the coordinate (x, y) data using a program or the like.
  • the resolution can be 640 dots in the horizontal axis direction and 1,136 dots in the vertical axis direction.
  • the dot may be a single point or a certain region (cell).
  • the distance between the dots is usually different for each touch panel (electronic device).
  • distance represents a coordinate distance.
  • the coordinate setting shown in FIG. 2 is an example of this, and the coordinate axes can be set by a program. Also, polar coordinates can be set, and other coordinate systems can be set by coordinate conversion.
  • the coordinates are set in the contact type input unit 103 as described above, and the display unit 102 has a contact type. Coordinates corresponding to the coordinates of the input unit 103 can be set.
  • FIG. 3 shows an example of a functional block diagram of the electronic device of the present invention.
  • the electronic device 100 includes a touch position detection unit 301, a screen display unit 302, a candidate object selection unit 303, an attention score determination unit 304, a resource allocation determination unit 305, a storage unit 306, a communication unit 307, and a temporary storage unit 308. .
  • the touch position detection unit 301 has a function of detecting a touch position by the player on the contact-type position input unit 103 and giving it to the electronic device 100.
  • the screen display unit 302 has a function of displaying the output from the electronic device 100 on the display unit 102, and displays an object on the display unit 102. For example, the data written in the frame buffer on the video memory shown in FIG.
  • the candidate object selection unit 303 has a function of selecting an object related to a game event from the objects displayed by the screen display unit 302.
  • Candidate object selection means 303 can select only an object that can be operated by the player from among objects related to the event, or can select an event for an object that can be operated by the player and an object that can be operated by the player. It is also possible to select only objects that can be generated.
  • the degree-of-attention score determination unit 304 selects the candidate object based on event history information including information about the selected candidate object, the event or event sequence (two or more consecutive events) that occurred immediately before, and the event that occurred. By determining the weight related to the occurrence of each candidate event, which is an event related to, the attention score indicating the degree to which each candidate object is noticed by the player is determined. Note that the event that occurred immediately before is the latest event among the events that have occurred so far that the player is operating.
  • the weight related to occurrence can be a score indicating the possibility of occurrence next, or can be a priority related to occurrence. For example, if the score indicates the possibility of occurrence of a weight related to occurrence, the score of each candidate event is calculated as the weight related to occurrence of each candidate event. The score is calculated based on the frequency information of the event history, for example, and represents the possibility of occurrence of each candidate event as a numerical value. In this case, the attention score of each candidate object is calculated based on the score, and is preferably normalized. Also, as described above, a candidate object may be associated with more than one candidate event. In this case, the attention score of candidate objects related to two or more candidate events can be calculated based on a value obtained by adding the scores of the candidate events.
  • the resource distribution unit 305 has a function of determining the resource distribution of the processing unit 101 for rendering each candidate object based on the determined or calculated attention score and the depth distance of the candidate object from the viewpoint of the player.
  • the resource allocation of the processing unit 101 for rendering an object is the allocation of shader units in the GPU 110. As a result of this allocation, for example, the number of polygons used for rendering the object changes.
  • the resource allocation based on the depth distance of the object from the player's viewpoint can include LOD (Level of Detail) that reduces the number of polygons according to the distance from the viewpoint camera.
  • the resources of the processing unit 101 for rendering include resources that are dynamically allocated by the resource allocation unit 305 and resources that are statically allocated.
  • an object other than a candidate object is rendered using a statically allocated resource, but the object is preferably rendered with fewer resources than the resources allocated to each candidate object by the resource distribution means 305. Is done. If there is no candidate object, all the resources of the processing unit 101 are statically distributed resources.
  • the storage unit 306 has a function of storing programs, data, and the like in the storage unit 104.
  • the temporary storage unit 308 included in the storage unit 306 has a buffer function for temporarily storing data, and accumulates a history of occurrence of events related to the object in the buffer.
  • the accumulated event history information is preferably in a state of accumulating event history information up to the present time operated by the player until a certain period elapses or until a certain number is accumulated.
  • the storage means 308 accumulates the event history information accumulated in the buffer, preferably periodically, in the event history information database.
  • the storage unit 308 aggregates the appearance frequency for each pattern of an event sequence including two or more consecutive events based on the event history information, and stores the event frequency information indicating the appearance frequency in the event frequency information database.
  • the attention level score determination unit 304 can acquire the event history information or the event frequency information necessary for determining the attention level score by referring to the database 107 as a query of the event history information accumulated in the buffer.
  • the event history information and the event frequency information are preferably stored in separate databases.
  • the event frequency information is information created based on the event history information, the event history information is the event frequency. It can be interpreted as a component of a broad concept that encompasses information.
  • the event frequency information when the event frequency information is created, it may be created while considering some other information in the event history information in consideration of the type and nature of the game in which the present invention is implemented.
  • the event frequency information is not necessarily information created only from the event history information. For example, a process that preferentially handles frequency information including the event may be realized by applying a strong weight to an event having an important meaning in the game.
  • the communication unit 307 has a function of performing wireless communication and wired communication.
  • the storage unit 308 can acquire and store programs or data from a server, an optical disk, or the like via the communication unit 309.
  • the electronic device 100 realizes these functions by executing the program 106. Therefore, the other means may have some functions of one means. Note that some of these functions can also be realized by configuring an electronic circuit or the like.
  • FIG. 4 is a diagram illustrating a graphics pipeline for calculating a three-dimensional image included in the GPU 110 according to an embodiment of the present invention, which includes a vertex shader 401, a geometry shader 402, a rasterizer 403, and pixels.
  • a shader 404 and an output composition 405 are included.
  • the graphics pipeline is illustrated for illustrative purposes, and the pipeline can have fewer stages, can include additional stages, or can include alternative stages.
  • the vertex shader 401 changes the attribute information for the vertex.
  • Vertex attribute information includes position, vertex color, normal, information for animation, texture coordinates for texture mapping, and the like.
  • coordinate system conversion such as conversion to the coordinate system viewed from the virtual camera, shape conversion processing for character animation, and the like are performed.
  • the vertex shader 401 may perform a lighting operation. Vertices calculated by the vertex shader 401 are usually passed to the geometry shader 402 or passed to the pixel shader 404 as they are.
  • the geometry shader 402 is used to process a set of vertices in the object passed to the rasterizer 403 and the pixel shader 404.
  • the geometry shader 402 can increase or decrease the number of vertices at the time of execution. In this case, the number of vertices belonging to the input primitive may be changed in the output primitive.
  • processing may be performed through a plurality of stages. That is, the primitive once processed by the geometry shader 402 is stored in a GPU cache or the like and is input to the geometry shader 402 again.
  • the graphics pipeline writes the output of the vertex shader 401 or the geometry shader 402 to a memory resource such as a buffer on the video memory without passing the output of the vertex shader 401 or the geometry shader 402 to the rasterizer 403 or the pixel shader 404, and then the vertex shader 401 or It can also be re-entered into the geometry shader 402.
  • the rasterizer 403 prepares primitives for the pixel shader 404 and performs processing to divide it into a collection of pixels. For example, a fragment is generated from primitive information composed of vertices. Each fragment is accompanied by not only position information but also information such as normals and texture coordinates. These pieces of information are obtained by interpolation calculation based on vertex position information.
  • the pixel shader 404 sequentially processes the pixels generated by the rasterizer 403. Here, processing (shading) for determining the final color for the pixel is performed. Processing for shading includes texture mapping, lighting processing, and the like. In addition, various processes are performed as other fragment-unit processes.
  • Output composition 405 combines various types of output data (such as pixel shader values, depth and stencil information) to produce the final result.
  • the vertex shader 401, the geometry shader 402, and the pixel shader 404 are programmable shaders, and these shaders can be individually configured, or they can be integrated and configured as an integrated shader. it can.
  • a game engine In general, in an application such as a game, a game engine generates a graphics command at a predetermined time interval that is assumed in advance and sends it to the GPU. For example, when the electronic device 100 is a smartphone, the screen is updated every certain time (for example, 1/30 seconds, 1/60 seconds).
  • the game engine can implement a conventionally known LOD that reduces the number of polygons according to the distance from the viewpoint camera, but can also implement a shader program.
  • FIG. 5 is a flowchart showing information processing according to one embodiment of the present invention.
  • the information processing in this flowchart is preferably executed by a shader program (GPU side). However, some or all of the steps may be executed by the application (CPU side).
  • the CPU side writes the drawing command into the main memory and stores the vertex attribute information in the buffer object secured in the video memory.
  • step 501 the presence / absence of a candidate object that is an object related to a game event is determined from the objects drawn on the display unit.
  • the object drawn on the display unit is an object drawn by the GPU from now on. If there is a candidate object, the candidate object is selected in step 502.
  • Each candidate object can have a buffer object ID. If there is no candidate object, the flow ends, and processing is performed by the existing graphics pipeline. This flow is preferably executed in the screen update time period described above.
  • the candidate object may be an object related to a game event among objects drawn on the display unit and can be operated by the player. In this case, it is possible to perform resource distribution for rendering focused on the object operated by the player.
  • a weight for each occurrence of the candidate event which is an event related to the candidate object is determined.
  • the weight related to the occurrence is a score indicating the possibility of the next occurrence, and the event history information including information about the selected candidate object, the event or event sequence that occurred immediately before, and the event that occurred. Based on this, the score of each candidate event is calculated.
  • a history of events that have occurred is stored as shown in FIG.
  • the history of events stored is related to the object.
  • the candidate object is an object related to a game event among objects drawn on the display unit and is an object that can be operated by the player
  • the history of the stored event is operated by the player.
  • the temporary storage unit 308 accumulates the history of events that have occurred in the buffer as event history information, and the storage unit 308 stores the accumulated data in the event history information database.
  • the periodically accumulated data is stored in the event history information database.
  • the storage unit 308 aggregates the appearance frequency for each pattern of an event sequence including two or more continuous events from the event history information, and stores the event frequency information indicating the appearance frequency in the event frequency information database.
  • an event since an event is associated with an object, it may have a concept equivalent to the object itself in some embodiments.
  • the stored event history shown in FIG. 6A may be an object history.
  • the storage means 308 can also prevent the event history information accumulated in the buffer from being stored in the event history information database. In this case, event history information acquired in advance is stored in the event history information database.
  • the event frequency information database is queried using an event sequence in which candidate events are added to part or all of the event history information accumulated in the buffer as a query.
  • Step 503 includes the entire process of the behavior prediction method based on the past event history information or the frequency information of the past event history, but a score calculation method using n-gram will be described as one embodiment.
  • event history is stored as shown in FIG. 6a.
  • the event history is recorded in the order of A ⁇ B ⁇ A ⁇ B ⁇ C ⁇ D.
  • operation history is divided into N consecutive combinations (event sequences) such as 2-gram, 3-gram, 4-gram, and the like.
  • the operation history of A ⁇ B ⁇ A ⁇ B ⁇ C ⁇ D is divided into five types of combinations of two elements AB, BA, AB, BC, and CD in 2-gram, and the corresponding frequency information Added.
  • 3-gram it is divided into four types of combinations of three elements, ABA, BAB, ABC, and BCD, and added to the corresponding frequency information.
  • an index indicating that a group having a high appearance frequency is a combination of events that frequently occur is provided.
  • the data structure H of the index shown in FIG. 6c is as follows.
  • H ⁇ ngram1, frequency1>, ⁇ ngram2, frequency2>,..., ⁇ ngramk, frequencyk> ⁇
  • ngramk is a k-th type n-gram
  • frequency is a frequency value corresponding thereto.
  • n-gram key is generated by adding each candidate event related to each candidate object to the end.
  • n-gram generated from the candidate event X1 is DX1 (2-gram), CDX1. (3-gram), BCDX1 (4-gram), and so on, N combinations are repeatedly generated.
  • This system uses the generated n-gram as a query and collates it with all the frequency information accumulated in the event frequency information database so far.
  • a function score for score calculation according to one embodiment is shown in Expression (1).
  • p is a sequence of (N ⁇ 1) events so far in the event history
  • x is a candidate event
  • H is a database of all frequency information accumulated so far.
  • the score function uses two functions internally. The first function is query (p, i, x).
  • This function Q (query (p, i, x)) extracts n-1 elements from the end of (N-1) event sequences up to the present in the event history, and adds them to the end of the extracted elements. A new combination with x added is generated. Thereby, gram which becomes a query as mentioned above can be generated.
  • the second function is freq (H, Q).
  • This function is a function for calculating the frequency at which the query generated by the query () function appears in the frequency information database. Further, in the present embodiment, it is considered that matching a longer combination (event sequence) clearly matches the intention of the player, and it is preferable to multiply a larger coefficient as n of the index is larger. This coefficient is wi in the equation.
  • wi can be implemented as a function that is more strongly reflected in the score as i increases.
  • wi can be a function that increases nonlinearly as i increases.
  • the attention score of each candidate object is determined using the score of the candidate event calculated as described above.
  • the attention score of a candidate object is calculated by adding and normalizing the scores of candidate events related to each candidate object.
  • the attention score of candidate objects is normalized by adding the scores of candidate events related to each candidate object and multiplying by a predetermined coefficient corresponding to the number of candidate events added. That's it.
  • an index value for determining resource allocation for rendering the 3D object is calculated using the determined or calculated attention score.
  • Intention-Aware LOD defined by the following equation is used as an index value for determining resource allocation.
  • the intention-score function indicates the attention level score of the candidate object x calculated based on the score function of Expression (1).
  • the distance function indicates weighting according to the distance from the viewpoint camera in the game space, and corresponds to the conventional LOD. By multiplying them, a new index value corresponding to the attention level of the player of the present invention and the conventional LOD can be calculated.
  • GPU resource allocation is performed based on the calculated index value.
  • Examples of GPU resource allocation include allocation of the number of polygons used for drawing candidate objects.
  • a lookup table that links an identifier attached to an object and an ID in a buffer object is prepared, and the geometry shader is used by using the lookup table and the calculated index value. This is realized by dynamically increasing / decreasing primitives.
  • the resources dynamically allocated in step 506 are not all the resources of the processing unit for rendering.
  • the primitive includes a polygon (typically a triangle), a normal vector, a point, and the like. When the primitive is a triangle, each triangle is defined by three vertices. For example, when vertex data of the highest definition 3D model is stored in the buffer object, primitives are dynamically reduced in the geometry shader.
  • a mounting method using GLSL will be described as one embodiment.
  • OpenGL registered trademark
  • a transform feedback function a function of storing a calculation result in a vertex shader or a geometry shader in a vertex buffer object (VBO) without using a CPU is provided. Since the contents of the vertex buffer object can be used as the vertex attribute input to the vertex shader, the vertex attribute can be updated / reduced by the GPU alone by this transform feedback function. Therefore, the dynamic and real-time control according to the present invention can be implemented by being closed in the GPU.
  • FIG. 7 shows an example of GPU resource allocation as one embodiment.
  • the graph of FIG. 7 shows a conventional rendering method (graph right) and a rendering method according to the present invention (graph left) when a game character is drawn using a smartphone having a GPU capable of displaying 600,000 polygons at a time. Is a comparison.
  • the present invention and the conventional method when both use the same hardware, the total number of polygons displayed in one screen is the same. Therefore, in the stacked graph of FIG. 7, the total value of both is substantially the same.
  • the maximum number of polygons used for drawing one character is greatly different.
  • the rendering according to the present invention only the character that the player is interested in can be drawn with 80,000 polygons. Is uniformly drawn, the maximum number of polygons is 6,000. That is, according to the present invention, the rendering quality that the player feels can be made ten times or more that of the conventional method on the same hardware.
  • FIG. 8 shows an example of the overall configuration of a system according to one embodiment of the present invention.
  • the system 800 includes a plurality of electronic devices 100 and a server 900. These are connected to each other by the network 801, but may be individually connected as necessary. When one of the plurality of electronic devices also functions as a server, the system 800 can be configured not to include the server 900.
  • the system 800 can also include a database 802. When the system 800 includes the database 802, the database 802 stores event history information and frequency information of continuously generated event history, and the electronic device 100 or the server 900 obtains desired data by referring to the database 802. can do.
  • the database in the server 900 is mainly used, but the same applies to the case where the database 802 directly connected to the network is used.
  • FIG. 9 is a block diagram showing a hardware configuration of the server 900 according to the embodiment of the present invention.
  • the server 900 includes a processing unit 901, a display unit 902, an input unit 903, a storage unit 904, and a communication unit 905. Each of these components is connected by the bus 908, but may be individually connected as necessary.
  • the processing unit 901 includes a processor that controls each unit included in the server 900, and performs various processes using the storage unit 904 as a work area.
  • the display unit 902 has a function of displaying information to the user.
  • the input unit 903 has a function of accepting input from the user, such as a keyboard and a mouse.
  • the storage unit 904 includes a hard disk, a main memory, and a buffer memory.
  • a program 906 is stored in the hard disk.
  • the hard disk may be any nonvolatile storage that can store information. It may be removable.
  • the storage unit 904 stores a program 906 and various types of data that can be referred to when the program is executed.
  • the storage unit 904 can include a database 907 relating to event history information and frequency information of continuously generated event history.
  • the database 907 is preferably an event history information database related to event history information including information about an event that has occurred, and an event string pattern that includes two or more consecutive events based on the event history information.
  • an event frequency information database related to event frequency information indicating the frequency.
  • a communication unit 905 performs wired communication using an Ethernet (registered trademark) cable, mobile communication, wireless communication such as a wireless LAN, and connects to the network 950.
  • the server 900 realizes various functions by executing the program 906, but some of these functions can also be realized by configuring an electronic circuit or the like.
  • the hardware configuration of the electronic device 100 is as shown in FIG.
  • FIG. 10 shows an example of a functional block diagram of the system of the present invention. Each function shown in FIG. 10 has the same function as that shown in FIG.
  • the system 800 can realize the various functions illustrated in FIG.
  • the case where the electronic device 100 or the server 900 includes the database 107 or 907 will be described.
  • the system 800 is separate from the electronic device 100 and the server 900 and the database 802 connected to the network. In this case, the electronic device 100 or the server 900 can acquire data from the database 802.
  • the electronic device 100 includes a touch position detection unit 1001, a screen display unit 1002, a candidate object selection unit 1003, a resource allocation determination unit 1005, a storage unit 1006, a communication unit 1007, and a temporary storage unit 1008.
  • the server 900 includes attention level score determination means 304, storage means 1006, and communication means 1007.
  • the system 800 can execute the information processing shown in the flowchart of FIG. 5.
  • the electronic apparatus 100 executes steps other than steps 503 and 504, and the server 900 executes steps 503 and 504.
  • the server 900 transmits the attention level score determined in steps 503 and 504 to the electronic device 100, and the electronic device 100 can continuously execute the processing in and after step 505 by receiving the attention level score. .
  • the event history information is stored in the buffer of the electronic device 100 by the temporary storage unit 1008, and the electronic device 100 transmits the data stored by the communication unit 1007 to the server 900, preferably periodically, and stores the data.
  • 1008 stores the received data in the event history information database of the database 907.
  • the storage unit 1006 aggregates the appearance frequency for each pattern of an event sequence including two or more continuous events from the event history information, and the event frequency information database in which the database 907 has event frequency information indicating the appearance frequency. Can be stored.
  • the electronic apparatus 100 does not include the database 107, and includes each function other than the functions related to the database in the storage unit 1006.
  • the server 900 includes the database 907, and the storage unit 1006 and the communication unit 1007. It has the function of.
  • the system 800 can execute the information processing shown in the flowchart of FIG. 5. In this case, the electronic apparatus 100 executes all the steps. However, in step 504, the event history information and / or event frequency information is referred to the database 907, and the attention score is determined by obtaining desired data.
  • the event history information is stored in the buffer of the electronic device 100 by the temporary storage unit 1008.
  • the electronic device 100 transmits the data stored by the communication unit 1007 to the server 900, preferably periodically, and the storage unit 1006 receives the data.
  • the stored data is stored in the event history information database of the database 907.
  • the system according to the present embodiment can be realized by a single electronic device or by a system in which a plurality of electronic devices are connected via a network.
  • the system has the functions shown in FIG. 10, but the system architecture 1100 according to one embodiment can be composed of six modules shown in FIG. By modularizing in this way, some modules can be changed and applied to various games.
  • the operation frequency database 1101 is a database that stores frequency information of continuously performed operations or frequency information of events that have occurred continuously, and corresponds to the database 907 and the like, and corresponds to a part of the storage unit 1006 It is what has.
  • the latest operation (event) buffer 1102 is a buffer for recording (N ⁇ 1) operation histories or event histories immediately before the player.
  • This module corresponds to the buffer included in the storage unit and has a function corresponding to a part of the storage unit 908 and the temporary storage unit 911 described above.
  • the candidate object selection 1103 is a module that selects an object to be subjected to LOD control according to the degree of attention on the screen.
  • This module for example, selects a character operated by the player or an enemy character related to the game as a candidate, not a tree that is part of the background or a character unrelated to the game. It has a corresponding function.
  • a game developer mounts these 3D objects in a game, it is desirable to tag an object to be subjected to LOD control according to the present invention.
  • the behavior prediction engine 1104 is a software module that predicts the next behavior of the player, and has a function corresponding to a part of the attention score determination unit 1004.
  • the Intention-Aware LOD calculation 1105 calculates the index value shown in Expression 2, and has a function corresponding to a part of the attention score determination unit 1004.
  • GPU resource allocation is to dynamically reduce primitives in the buffer using a geometry shader, and has a function corresponding to the resource allocation determination means 1005.
  • One embodiment of the present invention assumes that the highest definition 3D model is stored in the buffer. That is, the Intent-Aware LOD application process according to the present invention is realized as a process of reducing primitives from the 3D model in the buffer.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • General Engineering & Computer Science (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

プレイヤが次に取りうるアクションを予測することで、プレイヤから見た実質的な3Dオブジェクトの描画品質を向上させるための最適なリソース配分を実現する。 本発明は、表示部及び処理部を備える電子装置に、表示部に描画されるオブジェクトから、ゲームのイベントに関連するオブジェクトを候補オブジェクトとして選択するステップと、選択された候補オブジェクト、直前に発生したイベント列、及びイベント履歴情報に基づいて、候補オブジェクトに関連するイベントである候補イベント各々の発生に関する重みを決定することにより、候補オブジェクト各々のプレイヤにより注目される度合いを示す注目度スコアを決定するステップと、注目度スコア及びプレイヤの視点からの候補オブジェクトの奥行き距離に基づいて、各候補オブジェクトをレンダリングするための処理部のリソース配分を決定するステップと、を実行させるプログラムである。

Description

プレイヤの意図を予測してレンダリングするためのリソース配分を決定するプログラム、電子装置、システム及び方法
 本発明は、履歴に基づいてプレイヤの意図を予測することによりレンダリングするためのリソース配分を決定するプログラム、電子装置、システム及び方法に関する。
 従来、仮想の3次元空間内に配置された複数のポリゴンからなる3次元オブジェクトをレンダリングして3次元グラフィックスを描画する手法が知られている。このような3次元グラフィックスは、ゲームの分野において利用されることが多くなってきている。ゲームにおいては、仮想の3次元空間内に、コントローラにより操作可能なキャラクタや建物などのオブジェクトが配置され、設定された視点(視点カメラ)に基づいてこれらを描画した画像が生成される。当該画像はディスプレイなどの表示装置に表示される。
 3次元の画像表示は、例えばプログラマブルなシェーダが実装されたGPUなどにより実現される。GPUで3次元の画像表示を行う方法としては、CPUが描画に関するコマンドをメモリに書き込み、GPUが当該コマンドを参照し、GPUに実装されたプログラマブルなシェーダを通してオブジェクトに対してレンダリングを行う。例えばシェーダは、頂点に対して処理を行う頂点シェーダ、プリミティブを構成する頂点数を増減する処理を行うジオメトリシェーダやピクセルごとの処理を行うピクセルシェーダなどを含む。
 このような3次元画像表示を行う3Dゲームにおいて、ゲーム内に表示されるオブジェクトの描画品質は、当該オブジェクトの描画に用いるシェーダユニットの数に大きく影響される。すなわち、より多くのシェーダユニットを用いて描画されたオブジェクトはプレイヤから見て高い品質を持ち、一方、より少ないシェーダユニットを用いて描画されたオブジェクトは相対的に低い品質となる。
 したがって、プレイヤに訴求する画像品質を実現するためには、ゲーム内で注目されるオブジェクトに、より多くのシェーダユニットを割り当てることが望ましい。近年、プログラマブルシェーダやGPGPUの普及に伴い、リアルタイムの3D画像のレンダリングにおいて、シェーダユニットの資源配分を動的に行うことが可能になっている。例えば、夕焼けのシーンにおいてはシェーダユニットの多くを色の計算を行うピクセルシェーダとして用い、多数のポリゴンが表示されるシーンにおいてはシェーダユニットの大多数を頂点シェーダとして用いるなどの資源配分方式がよく知られている。
 スマートフォンなどの携帯機器には電源バッテリーの容量や実装面積の制限などがあるため、そのGPUは、PCやゲーム専用機と比較して、より限られた数のシェーダユニットしか搭載していない。そのため、携帯機器におけるシェーダユニットの的確な資源配分の重要性はより高い。
 同様の観点で、例えば特許文献1は、プレイヤの視点位置に応じて表示するオブジェクトの画像解像度を変更することにより、端末の処理負荷を軽減する技術を達成している。
国際公開第2014/091824号
 3次元画像表示を行うにあたっては、すべてのオブジェクトを高精細に描画することができる程度のグラフィックス処理能力を有するのが好ましいが、前述のとおり、GPUのリソースは有限である。特にスマートフォン等の携帯機器はその傾向が顕著である。一方、人間の視覚の認識力は、中心視野に偏っており、周辺視野を詳細に認識することはできない。したがって、実際にプレイヤが細部を認識できるオブジェクトは、プレイヤが意識的に注目し、中心視野内で閲覧しているごく一部のオブジェクトのみである。そこで本発明者は、ゲームにおいては、3Dオブジェクトをモデルに忠実に描画する品質よりも、プレイヤが実感する3Dオブジェクトの品質を向上させることが重要であると考えた。すなわち、すべてのオブジェクトを一様の精度でレンダリングせずに、プレイヤからの注目度に応じたGPUリソース配分の仕組みを実現することが、スマートフォン等のゲームの画像品質を向上させるために本質的に重要であると考えた。
 特許文献1はプレイヤの注目領域を端末のカメラを用いて判定し、判定結果に応じて描画する画像の解像度の高/低を選択する技術を記載する。しかしながら当該技術はカメラなどの外部デバイスを必要とするため、適用が限定されるという問題があった。
 本発明の目的は、例えばGPUのシェーダユニットなどのグラフィックス処理に必要なリソースが限られている中で、プレイヤが次に取りうるアクションをカメラなどの外部デバイスを使用せずに予測することで、一般的な電子装置において、プレイヤから見た実質的な3Dオブジェクトの描画品質を向上させるための最適なリソース配分を実現することである。
 本発明は上記の課題に鑑みてなされたものであり、以下のような特徴を有している。すなわち、本発明の一態様としてのプログラムは、表示部及び処理部を備える電子装置において実行される、3次元仮想空間に配置された複数の3次元のオブジェクトをレンダリングする上記処理部のリソース配分を決定するためのプログラムであって、上記電子装置に、上記表示部に描画されるオブジェクトから、ゲームのイベントに関連するオブジェクトを候補オブジェクトとして選択するステップと、選択された上記候補オブジェクト、直前に発生したイベント又はイベント列、及び発生したイベントについての情報を含むイベント履歴情報に基づいて、上記候補オブジェクトに関連するイベントである候補イベントのそれぞれの発生に関する重みを決定することにより、上記候補オブジェクトのそれぞれのプレイヤにより注目される度合いを示す注目度スコアを決定するステップと、上記注目度スコア、及びプレイヤの視点からの上記候補オブジェクトの奥行き距離に基づいて、それぞれの上記候補オブジェクトをレンダリングするための上記処理部のリソース配分を決定するステップと、を実行させるプログラムである。
 本発明の一態様として、上記イベント履歴情報は、発生したイベントの履歴における連続する2つ以上のイベントからなるイベント列のパターンごとの出現頻度を示すイベント頻度情報を含む。
 本発明の一態様として、上記イベント頻度情報は、連続するN(N≧2)個以下のイベントからなるイベント列のパターンごとの出現頻度を示す情報を含むものであり、上記注目度スコアを決定するステップは、それぞれの上記候補イベントについて、上記イベント頻度情報における上記候補イベント直前に発生したイベント又はイベント列及び上記候補イベントからなる連続するn個(2≦n≦N)のイベント列の出現頻度に基づいて、上記候補イベントのそれぞれが次に発生する可能性を示すスコアを算出することにより、上記候補オブジェクトのそれぞれの上記注目度スコアを算出するステップを含む。
 本発明の一態様として、上記注目度スコアを決定するステップは、それぞれの上記候補イベントについて、上記スコアをn=n1~n2(2≦n1<n2≦N)それぞれで算出し、算出されたスコアにnの値の大きさに対応する所定の係数を掛け合わせて加算するステップを含む。
 本発明の一態様として、上記プログラムは、上記電子装置に、発生したイベントを記憶するステップをさらに実行させる。
 本発明の一態様として、上記電子装置は、ネットワークを介してサーバに接続され、上記プログラムは、上記電子装置に、上記サーバから上記イベント履歴情報を受信するステップと、上記サーバに、発生したイベントを記憶させるために、上記サーバに対して発生したイベントを含む情報を送信するステップをさらに実行させる。
 本発明の一態様として、上記処理部には複数のシェーダユニットが含まれ、上記処理部のリソース配分は、それぞれの上記候補オブジェクトの描画に使用する上記シェーダユニットの配分を含む。
 本発明の一態様としての電子装置は、表示部及び処理部を備える電子装置であって、上記表示部に描画される3次元仮想空間に配置された3次元のオブジェクトから、ゲームのイベントに関連するオブジェクトを候補オブジェクトとして選択する候補オブジェクト選択手段と、選択された上記候補オブジェクト、直前に発生したイベント又はイベント列、及び発生したイベントについての情報を含むイベント履歴情報に基づいて、上記候補オブジェクトに関連するイベントである候補イベントのそれぞれの発生に関する重みを決定することにより、上記候補オブジェクトのそれぞれのプレイヤにより注目される度合いを示す注目度スコアを決定する注目度スコア決定手段と、上記注目度スコア、及びプレイヤの視点からの上記候補オブジェクトの奥行き距離に基づいて、それぞれの上記候補オブジェクトをレンダリングするための上記処理部のリソース配分を決定するリソース配分決定手段と、を備える電子装置である。
 本発明の一態様としてのシステムは、サーバと、上記サーバにネットワークを介して接続され、表示部及び処理部を備える電子装置とを含むシステムであって、上記表示部に描画される3次元仮想空間に配置された3次元のオブジェクトから、ゲームのイベントに関連するオブジェクトを候補オブジェクトとして選択する候補オブジェクト選択手段と、選択された上記候補オブジェクト、直前に発生したイベント又はイベント列、及び発生したイベントについての情報を含むイベント履歴情報に基づいて、上記候補オブジェクトに関連するイベントである候補イベントのそれぞれの発生に関する重みを決定することにより、上記候補オブジェクトのそれぞれのプレイヤにより注目される度合いを示す注目度スコアを決定する注目度スコア決定手段と、上記注目度スコア、及びプレイヤの視点からの上記候補オブジェクトの奥行き距離に基づいて、それぞれの上記候補オブジェクトをレンダリングするための上記処理部のリソース配分を決定するリソース配分決定手段と、の各手段を上記サーバ又は上記電子装置が備える、システムである。
 本発明の一態様として、上記システムは、発生したイベントを記憶する記憶手段を上記サーバ又は上記電子装置がさらに備え、上記記憶手段は、上記記憶手段に記憶されたイベントの履歴における連続する2つ以上のイベントからなるイベント列のパターンごとの出現頻度を示すイベント頻度情報を含むイベント履歴情報を作成するシステムである。
 本発明の一態様として、上記イベント頻度情報は、連続するN(N≧2)個以下のイベントからなるイベント列のパターンごとの出現頻度を示す情報を含むものであり、上記注目度スコア決定手段は、それぞれの上記候補イベントについて、上記イベント頻度情報における上記候補イベント直前に発生したイベント又はイベント列及び上記候補イベントからなる連続するn個(2≦n≦N)のイベント列の出現頻度に基づいて、上記候補イベントのそれぞれが次に発生する可能性を示すスコアを算出することにより、上記候補オブジェクトのそれぞれの上記注目度スコアを算出する注目度スコア算出手段を備える。
 本発明の一態様としての方法は、サーバと、上記サーバにネットワークを介して接続され、表示部及び処理部を備える電子装置とを含むシステムにおいて、3次元仮想空間に配置された複数の3次元のオブジェクトをレンダリングする上記処理部のリソース配分を決定するための方法であって、上記表示部に描画されるオブジェクトから、ゲームのイベントに関連するオブジェクトを候補オブジェクトとして選択するステップと、選択された上記候補オブジェクト、直前に発生したイベント又はイベント列、及び発生したイベントについての情報を含むイベント履歴情報に基づいて、上記候補オブジェクトに関連するイベントである候補イベントのそれぞれの発生に関する重みを決定することにより、上記候補オブジェクトのそれぞれのプレイヤにより注目される度合いを示す注目度スコアを決定するステップと、上記注目度スコア、及びプレイヤの視点からの上記候補オブジェクトの奥行き距離に基づいて、それぞれの上記候補オブジェクトをレンダリングするための上記処理部のリソース配分を決定するステップと、を備え、各ステップは上記サーバ又は上記電子装置により実行される方法である。
 上記のとおり本発明は、ゲームのイベント履歴を分析することによりプレイヤが次に取りうるアクションを予測し、予測したアクションが影響を及ぼすオブジェクトやアクションの実行主体となるオブジェクトを、プレイヤが注目する可能性が高いオブジェクトとして抽出し、注目する可能性が高い順に、レンダリング品質を決定するリソース(シェーダユニットなど)をより多く割り当てるものである。
 したがって、例えばゲーム画面内に10個の主要なオブジェクトが存在し、プレイヤが一時に注目できるオブジェクトの数は1~3個程度であって、非注目オブジェクトのレンダリング品質を30%程度低下させることが許容されるとき、同一のハードウェアを用いた場合、本発明を適用したゲームは、プレイヤから見たときのレンダリング品質を従来よりも10~30%ほど向上させることができる。なおレンダリング品質とは、例えば1つのオブジェクトの描画に用いるポリゴン数(LOD)及びピクセルシェーダによる色づけ処理の複雑さを意味する。
 また本発明は、カメラなどの外部デバイスが不要であるため、標準的なスマートフォンにおいて実現することができる。カメラを用いた視線検出の方式と異なり、本発明はプレイヤの視線移動を予測するため、プレイヤの視線移動に先んじてレンダリング品質を制御することができる。
 さらに本発明の1つの実施形態として、プレイヤの行動予測をサーバ側で実行することにより、スマートフォンに負荷をかけることなく、シェーダユニット等のGPUリソース配分を実行することができる。
本発明の1つの実施形態に係る電子装置のハードウェア構成を示す。 本発明の1つの実施形態に係るCPU及びGPUを備える電子装置のハードウェア構成を示す。 本発明の1つの実施形態に係る電子装置のタッチパネルの座標軸を示す。 本発明の1つの実施形態に係る電子装置の機能ブロック図を示す。 本発明の1つの実施形態に係るGPUが有するグラフィックスパイプラインを示す。 本発明の1つの実施形態に係る情報処理を示したフローチャートである。 本発明の1つの実施形態に係る発生したイベントの履歴を示す。 本発明の1つの実施形態に係る発生したイベントの履歴をN個の連続する組み合わせに分割した様子を示す。 本発明の1つの実施形態に係る発生したイベントの履歴をN個の連続する組み合わせ毎に出現頻度を集計しインデックスを作成した様子を示す。 本発明の1つの実施形態に係るscore関数に用いられるwi関数の一例を示す。 本発明の1つの実施形態に係るGPUリソース配分例を示す。 本発明の実施形態に係るシステムの全体構成の一例を示す。 本発明の実施形態に係るサーバのハードウェア構成を示す。 本発明の1つの実施形態に係るシステムの機能ブロック図を示す。 本発明の1つの実施形態に係るシステムのシステムアーキテクチャを示す。
 以下、図面を参照して、本発明の実施形態を説明する。本実施形態に係るシステムは、ネットワークを介して複数の電子装置が接続されるシステムによって実現することができるが、一台の電子装置によっても実現することもできる。最初に一台の電子装置で実現する実施形態を説明し、その後ネットワークに接続されたシステムについて説明する。なお、ネットワークに接続されたシステムは、サーバ‐クライアントシステムを想定して説明しているが、PtoPのようなサーバのないシステムで構成することもできる。
 また本実施形態は主として3Dゲームのゲームシステムについて説明するが、他のシステムにおいて利用することもできる。本実施形態におけるゲームは、画面上に複数のオブジェクトが配置されるゲームである。例えばプレイヤは、タッチ操作によりオブジェクトを選択又は操作することができる。オブジェクトはイベントに関連するオブジェクトと、イベントに関連しないオブジェクトとを含む。特に言及がない限り、以下で単にオブジェクトという場合は、イベントに関連するオブジェクトを示すものとする。
 イベントに関連するオブジェクトは、プレイヤが操作可能なオブジェクトと、当該プレイヤが操作可能なオブジェクトがイベントを発生させることができるオブジェクトと、当該プレイヤが操作可能なオブジェクトに対してイベントを発生させることができるオブジェクトとを含む。ここでイベントとは、ゲーム内でプレイヤの操作やゲームシステム側の処理により発生する、一つの意味とまとまりを持った処理または制御のことを示し、プレイヤの操作もしくは他のプレイヤの操作により、又はゲームの進行に伴って、イベントが発生すると、所定のゲーム処理又は制御が行われる。例えばプレイヤが操作可能な複数の味方キャラクタ(オブジェクト)や当該キャラクタと対峙する複数の敵キャラクタが画面に表示される場合、プレイヤは味方キャラクタA1を操作して敵キャラクタB1を「パンチする」というイベントを発生させることができるとすると、オブジェクトA1はオブジェクトB1を「パンチする」というイベントに関連するオブジェクトである。一方、敵キャラクタB2が味方キャラクタA2を「キックする」というイベントを発生させることができるとすると、オブジェクトB2はオブジェクトA2を「キックする」というイベントに関連するオブジェクトである。上記2つの例示に関しては、オブジェクトB1は「パンチする」というイベントに関連するオブジェクトであることができ、オブジェクトA2は「キックする」というイベントに関連するオブジェクトであることができる。このように、イベントは少なくとも1つのオブジェクトに関連するものであり、各オブジェクトは1つ以上のイベントに関連するものであることができる。また好ましくは、各オブジェクトは、それぞれを識別するための識別子が付けられる。
 [電子装置により実現される実施形態]
 図1aは本発明の実施形態に係る電子装置100のハードウェア構成を示すブロック図である。電子装置100は処理部101、表示部102、接触型入力部103、記憶部104、及び通信部105を備える。これらの各構成部はバス108によって接続されるが、それぞれが必要に応じて個別に接続される形態であってもかまわない。
 電子装置100は、好ましくはスマートフォンであるが、例えば、携帯電話、携帯型情報端末、タブレット型コンピュータ、ビデオゲーム機、携帯型ビデオゲーム機、タッチパッド等の接触型入力装置を備えるコンピュータも含まれる。
 処理部101は、プログラム106、接触型入力部103からの入力データ、又は通信部105から受信したデータに基づいて、ゲーム処理や画像生成処理などの各種の処理を行う。処理部101は、電子装置100が備える各部を制御するCPUを備え、好ましくは描画処理を行うGPUを備える。
 記憶部104は、ハードディスク、メインメモリ、及びバッファメモリを含む。ハードディスクにはプログラム106が記憶される。ただしハードディスクは、情報を格納できるものであればいかなる不揮発性ストレージであってもよい。着脱可能なものであっても構わない。例えば電子装置100がスマートフォンである場合はROM及びRAMを含む。記憶部104には、プログラム106や当該プログラムの実行に伴って参照され得る各種のデータが記憶される。当該プログラムは、オペレーティングシステム、ビデオゲーム若しくはウェブブラウザ等のユーザ入力を要求するあらゆるアプリケーションのためのプログラム、又はシェーダプログラムを含み、好ましくはゲームエンジンを含む。各種のデータには、例えばゲームに登場するオブジェクトなどの各種画像を表示するための画像データや、ゲーム中に記憶部104に書き込まれうる座標等のデータも含まれる。さらに記憶部104はイベントの履歴情報や連続的に発生したイベント履歴の頻度情報に関するデータベース107を含む。好ましくは、データベース107は、発生したイベントについての情報を含むイベント履歴情報に関するイベント履歴情報用データベースと、イベント履歴情報に基づいた連続する2つ以上のイベントからなるイベント列のパターンごとの出現頻度を示すイベント頻度情報に関するイベント頻度情報用データベースとを有する。
 通信部105はイーサネット(登録商標)ケーブル等を用いた有線通信や移動体通信、無線LAN等の無線通信を行い、ネットワーク101へ接続する。
 表示部(ディスプレイ)102は、実行されるプログラム106によって出力される画像を表示する。好ましくは液晶ディスプレイであるが、有機ELを用いたディスプレイやプラズマディスプレイ等であってもよい。
 処理部101がCPU及びGPUを備える場合の1つの実施形態に係る電子装置100のハードウェア構成を表すブロック図を図1bに示す。CPU109はメインメモリ111に描画コマンドを書き込み、図示しない複数のシェーダユニットを備えているGPU110は描画コマンドを参照してビデオメモリ112上のフレームバッファに描画データを書き込み、フレームバッファから読み取った内容をそのまま表示部102に描画する。1つの実施例として、CPU109は、プリミティブなどの描画データをメインメモリ111上のバッファに格納し、例えばOpenGL(登録商標)の管理下のビデオメモリ112上のバッファに描画データを転送し、GPU110は、グラフィックスパイプラインにより処理した後、そのまま表示部102に描画する。
 接触型入力部103は例えばタッチパッドのように、プレイヤがタッチした位置に基づいた入力を電子装置100に与える。好ましくは表示部102と接触型入力部103は一体としたタッチパネルであるが、別の位置に配置される別個の形態であっても構わない。例えば表示部102と接触型入力部103が一体となったタッチパネルである場合は、表示部102へのプレイヤのタッチによる入力を受け付け、接触型入力部103はプレイヤがタッチした位置に対応する座標を検出し、電子装置100に与える。検出方式は、例えばタッチパネルにおける静電容量方式などのあらゆる方式を含みうるが、接触型入力部103は、2以上の点を同時にプレイヤの指などがタッチしたことを検出し、検出した位置に対応する各座標情報を電子装置100に与えられるものであることが好ましい。
 ここでタッチとは、指などが接触型入力部103、本実施形態においてはタッチパネルに接触する動作や状態である。なお本実施形態においては、プレイヤによるタッチはプレイヤの指によるものとして説明するが、どの指によるタッチでもよく、又は例えばスタイラスペンのような、その他のものであってもよい。一方、リリースとは指などがタッチパネルから離れる動作や状態である。プレイヤは主に電子装置100をタッチやリリースすることにより操作する。このようなタッチ操作には、タッチ、ロングタッチ、マルチタッチ、リリース、スワイプ、タップ、ダブルタップ、ロングタップ、ドラッグ、及びフリックなどを含むことができる。例えばタップは、タッチに続いて、タッチ位置を移動させずにリリースをする操作である。好ましくは、処理部101が、指などのタッチパネルへの接触、接触位置、接触時間又は接触回数に基づいてタッチ操作の種類の一部又は全部を判別する。
 例えば電子装置100としてスマートフォンを用いた場合、表示部102と接触型入力部103は一体となったタッチパネル113である。接触型入力部103は、第1軸及び第1軸に実質的に直交する第2軸からなる座標平面を用いて、座標により位置が指定される。好ましくは図2に示すように、第1軸は略長方形であるタッチパネル113(接触型入力部103)の短辺と、第2軸はタッチパネル113の長辺と、実質的に平行であって、第1軸方向の座標軸(横軸)及び第2軸方向の座標軸(縦軸)により座標(x,y)として表される。処理部101はプログラム等を用いて、タッチパネル113により検出するタッチ位置を当該座標(x,y)データとして取得することができる。例えばタッチパネル113の検出精度が640ドット×1,136ドットである場合は、横軸方向に640ドット、縦軸方向に1,136ドットの分解能を有することができる。この場合のドットは1つの点であってもよいし、一定の領域(セル)であっても構わない。ただしドット間の距離は、通常タッチパネル(電子装置)毎に異なることに注意が必要である。本明細書において、特に言及が無い限り、「距離」は座標上の距離を表すものとする。なお図2に示す座標設定はこの一例であり、座標軸はプログラムにより設定することもできる。また極座標を設定することもできるし、座標変換により他の座標系を設定することもできる。
 また例えば、表示部102と接触型入力部103が別の位置に配置される別個の形態である場合、接触型入力部103には上記のように座標を設定し、表示部102には接触型入力部103の座標に対応する座標を設定することができる。
 図3は本発明の電子装置の機能ブロック図の一例を示す。電子装置100は、タッチ位置検出手段301、画面表示手段302、候補オブジェクト選択手段303、注目度スコア決定手段304、リソース配分決定手段305、記憶手段306、通信手段307、及び一時記憶手段308を備える。
 タッチ位置検出手段301は、接触型位置入力部103上へのプレイヤによるタッチ位置を検出し、電子装置100に与える機能を有する。
 画面表示手段302は、電子装置100による出力を表示部102へ表示する機能を有し、オブジェクトを表示部102へ表示する。例えば図1bに示すビデオメモリ上のフレームバッファに書き込まれたデータを表示部102に描画する。
 候補オブジェクト選択手段303は、画面表示手段302により表示されるオブジェクトから、ゲームのイベントに関連するオブジェクトを選択する機能を有する。候補オブジェクト選択手段303は、イベントに関連するオブジェクトのうち、プレイヤが操作可能なオブジェクトのみを選択することもできるし、又はプレイヤが操作可能なオブジェクト及び当該プレイヤが操作可能なオブジェクトに対してイベントを発生させることができるオブジェクトのみを選択することもできる。
 注目度スコア決定手段304は、選択された候補オブジェクト、直前に発生したイベント又はイベント列(2つ以上の連続したイベント)、及び発生したイベントについての情報を含むイベント履歴情報に基づいて、候補オブジェクトに関連するイベントである候補イベントのそれぞれの発生に関する重みを決定することにより、それぞれの候補オブジェクトがプレイヤにより注目される度合いを示す注目度スコアを決定する機能を有する。なお直前に発生したイベントとは、プレイヤが操作している現時点までに発生したイベントのうち最新のイベントをいう。
 発生に関する重みは、次に発生する可能性を示すスコアであることもできるし、発生に関する優先度であることもできる。例えば発生に関する重みが発生する可能性を示すスコアである場合は、候補イベントそれぞれの発生に関する重みとして候補イベントそれぞれのスコアを算出する。当該スコアは、例えばイベント履歴の頻度情報に基づいて算出されるものであり、候補イベントそれぞれが発生する可能性を数値で表したものである。この場合、候補オブジェクトそれぞれの注目度スコアは、当該スコアに基づいて算出されるものであり、好ましくは正規化されたものである。また前述のとおり、候補オブジェクトは2つ以上の候補イベントに関連することがある。この場合は、2つ以上の候補イベントに関連する候補オブジェクトの注目度スコアは、候補イベントそれぞれのスコアを加算した値に基づいて算出することができる。
 リソース配分手段305は、決定又は算出された注目度スコア、及びプレイヤの視点からの候補オブジェクトの奥行き距離に基づいて、それぞれの候補オブジェクトをレンダリングするための処理部101のリソース配分を決定する機能を有する。オブジェクトをレンダリングするための処理部101のリソース配分とは、GPU110におけるシェーダユニットの配分のことであり、この配分の結果、例えば当該オブジェクトの描画に用いるポリゴン数が変化する。またプレイヤの視点からのオブジェクトの奥行き距離に基づいたリソース配分としては、視点カメラからの距離に応じてポリゴン数を減少させるLOD(Level of Detail)を含むことができる。なおレンダリングするための処理部101のリソースは、リソース配分手段305により動的に配分されるリソースと、静的に配分されるリソースとを含む。例えば、候補オブジェクト以外のオブジェクトは、静的に配分されるリソースを用いてレンダリングされるが、当該オブジェクトは、好ましくは、リソース配分手段305により各候補オブジェクトに配分されるリソースよりも少ないリソースでレンダリングされる。なお候補オブジェクトがない場合、処理部101のリソースはすべて静的に配分されるリソースとなる。
 記憶手段306は、プログラムやデータ等を記憶部104へ格納する機能を有する。記憶手段306が含む一時記憶手段308は、一時的にデータを蓄えるバッファ機能を有し、オブジェクトと関連するイベントの発生した履歴をバッファに蓄積する。蓄積されたイベント履歴情報は、好ましくは一定期間が経過するまで又は一定個数が蓄積されるまで、プレイヤが操作している現在までのイベント履歴情報を蓄積した状態にある。記憶手段308は、バッファに蓄積されたイベント履歴情報を、好ましくは定期的に、イベント履歴情報用データベースへ蓄積する。さらに記憶手段308は、イベント履歴情報に基づいて連続する2つ以上のイベントからなるイベント列のパターンごとの出現頻度を集計し、当該出現頻度を示すイベント頻度情報をイベント頻度情報用データベースへ格納する。注目度スコア決定手段304は、バッファに蓄積されたイベント履歴情報をクエリとしてデータベース107に照会することで、注目度スコア決定に必要なイベント履歴情報又はイベント頻度情報を取得することができる。なお、本実施形態においては、イベント履歴情報とイベント頻度情報はそれぞれ別々のデータベースに格納されることが好ましいが、イベント頻度情報はイベント履歴情報に基づき作成される情報ゆえ、イベント履歴情報はイベント頻度情報を包含する広い概念の構成要素として解釈することができる。ただし、イベント頻度情報が作成される際には、本発明が実施されるゲームの種類や性質なども考慮し、何らかの別の情報をイベント履歴情報に加味しながら作成してもよい。イベント頻度情報は必ずしもイベント履歴情報のみから作成される情報ではない。例えば、ゲーム内において重要な意味を持つイベントに強い重みをかけることにより、当該イベントを含む頻度情報を優先的に扱う処理を実現してもよい。
 通信手段307は無線通信、有線通信を行う機能を有する。記憶手段308は、通信手段309を介して、サーバ、光学ディスク等からプログラム又はデータを取得して、格納することができる。
 電子装置100は、プログラム106が実行されることによってこれらの機能が実現される。したがって、一つの手段の一部の機能を他の手段が有してもよい。なお、これらの機能の一部は電子回路等を構成することによっても実現できる。
 図4は、本発明の1つの実施形態に係る、GPU110が有する3次元画像を演算するためのグラフィックスパイプラインを示す図であり、頂点シェーダ(バーテックスシェーダ)401、ジオメトリシェーダ402、ラスタライザ403、ピクセルシェーダ404、及び出力合成405を含む。グラフィックスパイプラインは説明の都合上例示したものであり、当該パイプラインは、より少ないステージであることもでき、さらなるステージを含むこともでき、又は代替的なステージを含むこともできる。
 頂点シェーダ401は、頂点に対してその属性情報に変更を加えるものである。頂点の属性情報は位置、頂点カラー、法線、アニメーションのための情報やテクスチャマッピングのためのテクスチャ座標などにより構成される。頂点シェーダ401のステージで仮想カメラから見た座標系への変換などの座標系の変換やキャラクターアニメーションのための形状変換処理などが行われる。また、頂点シェーダ401でライティング演算が行われることもある。頂点シェーダ401で計算された頂点は通常はジオメトリシェーダ402に渡されるか、そのままピクセルシェーダ404に渡される。
 ジオメトリシェーダ402は、ラスタライザ403やピクセルシェーダ404に渡されるオブジェクト内の頂点の集合を加工するために使用される。ジオメトリシェーダ402では実行時に頂点数を増減させることが可能となる。この場合入力されるプリミティブに属する頂点の数が、出力されるプリミティブでは変更されることもある。またジオメトリシェーダ402では、複数のステージを通じて処理が行われる場合も存在する。すなわち、一度ジオメトリシェーダ402にて処理を行われたプリミティブがGPUのキャッシュなどに保存され、再度ジオメトリシェーダ402に入力されるような処理である。またグラフィックスパイプラインは、頂点シェーダ401又はジオメトリシェーダ402の出力をラスタライザ403やピクセルシェーダ404に渡さずに、ビデオメモリ上のバッファなどのメモリリソースに書き出した後、CPUを介することなく頂点シェーダ401又はジオメトリシェーダ402に再入力することもできる。
 ラスタライザ403は、ピクセルシェーダ404のためにプリミティブを準備し、ピクセルの集まりに分割する処理を行う。例えば、頂点によって構成されるプリミティブ情報からフラグメントを生成する。各フラグメントには位置情報だけではなく法線やテクスチャ座標などの情報も付随する。これらの情報は頂点の位置情報を元に補間計算により求められる。
 ピクセルシェーダ404は、ラスタライザ403で生成されたピクセルを順次処理していく。ここでは、ピクセルに対する最終的な色を決定するための処理(陰影付け)が行われる。陰影付けのための処理としてはテクスチャマッピング、ライティングなどの処理などが含まれる。また、その他フラグメント単位の処理として様々な処理が行われる。
 出力合成405は、最終結果を生成するために(ピクセルシェーダ値、深さ及びステンシル情報などの)種々のタイプの出力データを組み合わせる。
 一般的にグラフィックスパイプラインは、プログラマブルステージと、固定関数ステージとを含む。例えば、グラフィックスパイプラインのあるステージに関連するオペレーションはプラグラマブルシェーダによって実行され、グラフィックスパイプラインの他のステージに関連する他のオペレーションは固定関数ユニットなどの非プログラマブルな固定関数ハードウェアユニットによって実行される。
 図4においては、例えば頂点シェーダ401、ジオメトリシェーダ402、及びピクセルシェーダ404はプログラマブルシェーダであり、これらのシェーダをそれぞれ個別に構成することもできるし、これらを統合して統合シェーダとして構成することもできる。
 なお一般的にゲームなどのアプリケーションにおいては、ゲームエンジンがグラフィックスコマンドを予め想定された所定の時間間隔で生成してGPUへ送る。例えば電子装置100がスマートフォンである場合、一定時間(例えば1/30秒、1/60秒)毎に画面更新を行う。またゲームエンジンは、視点カメラからの距離に応じてポリゴン数を減少させる従来から知られているLODを実装することができるが、シェーダプログラムが実装することもできる。
 図5は、本発明の1つの実施形態に係る情報処理を示したフローチャートである。本フローチャートの情報処理は、好ましくはシェーダプログラム(GPU側)により実行される。ただし、一部又は全部のステップがアプリケーション(CPU側)により実行されてもよい。
 本フローチャート開始時においては、CPU側が描画コマンドをメインメモリに書き込むとともに、頂点の属性情報をビデオメモリ内に確保したバッファオブジェクトに格納した状態にある。ステップ501において、表示部に描画されるオブジェクトからゲームのイベントに関連するオブジェクトである候補オブジェクトの有無を判定する。表示部に描画されるオブジェクトとは、これからGPUにより描画されるオブジェクトである。候補オブジェクトが有る場合、ステップ502において候補オブジェクトを選択する。なお各候補オブジェクトは、バッファオブジェクトのIDを有することができる。候補オブジェクトが無い場合、当該フローは終了し、上記の既存のグラフィックスパイプラインにより処理が行われる。本フローは、好ましくは、前述した画面更新時間周期で実行する。
 1つの実施例として、候補オブジェクトは、表示部に描画されるオブジェクトのうちゲームのイベントに関連するオブジェクトであって、かつプレイヤが操作可能なオブジェクトであることができる。この場合、プレイヤが操作するオブジェクトに対して重点的にレンダリングするためのリソース配分を行うことができる。
 続いてステップ503において、候補オブジェクトに関連するイベントである候補イベントのそれぞれの発生に関する重みを決定する。本フローチャートにおいては、発生に関する重みは、次に発生する可能性を示すスコアであり、選択された候補オブジェクト、直前に発生したイベント又はイベント列、及び発生したイベントについての情報を含むイベント履歴情報に基づいて、候補イベントそれぞれのスコアを算出する。
 本実施形態においては、図6aに示すように発生したイベントの履歴を記憶する。記憶されるイベントの履歴はオブジェクトと関連するものである。1つの実施例として、候補オブジェクトが表示部に描画されるオブジェクトのうちゲームのイベントに関連するオブジェクトであって、かつプレイヤが操作可能なオブジェクトである場合、記憶されるイベントの履歴はプレイヤが操作可能なオブジェクトと関連するイベントの履歴である。一時記憶手段308は、発生したイベントの履歴をイベント履歴情報としてバッファに蓄積し、記憶手段308は、蓄積されたデータをイベント履歴情報用データベースに格納する。好ましくは定期的に蓄積されたデータをイベント履歴情報用データベースに格納する。記憶手段308は、イベント履歴情報から、連続する2つ以上のイベントからなるイベント列のパターンごとの出現頻度を集計し、当該出現頻度を示すイベント頻度情報をイベント頻度情報用データベースに格納する。ただし前述のとおり、イベントはオブジェクトと関連するものであるため、実施形態によってはオブジェクトそのものと等価の概念を有することができる。この場合、例えば図6aに示す記憶されるイベントの履歴はオブジェクトの履歴であることもできる。なお記憶手段308は、バッファに蓄積されたイベント履歴情報をイベント履歴情報用データベースに格納しないようにすることもできる。この場合イベント履歴情報用データベースには予め取得されたイベント履歴情報が格納される。
 スコアの算出においては、バッファに蓄積されたイベント履歴情報の一部又は全部に候補イベントを加えたイベント列をクエリとしてイベント頻度情報用データベースに照会する。
 ステップ503は、過去のイベント履歴情報又は過去のイベント履歴の頻度情報に基づいた行動予測方法の処理全般を含むものであるが、1つの実施形態としてn‐gramを用いたスコア算出方法を説明する。
 最初にデータベース107がイベント頻度情報として格納するデータについて説明する。直前の(N-1)個のイベントログに基づいた次に発生するイベントを予測するモデルとして、1つ前(N=2)、2つ前(N=3)、3つ前(N=4)、といったイベントログの結びつきを分析するために、遡及回数に応じてイベント頻度情報を蓄積するためのインデックスを作成する。前述のとおりイベントの履歴は、図6aに示すように記憶されているが、図6aの例では、A→B→A→B→C→Dという順序でイベントの履歴が記録されている。n‐gramモデルでは、図6bに示すように、この操作履歴を、2‐gram、3‐gram、4‐gram…というように、N個の連続する組み合わせ(イベント列)として分割し、それぞれの組み合わせの出現頻度を集計する。例えば、A→B→A→B→C→Dという操作履歴は、2‐gramでは、AB、BA、AB、BC、CDという2要素の5種類の組み合わせに分割され、それぞれ対応する頻度情報に加えられる。3‐gramでは、ABA、BAB、ABC、BCDという3要素の4種類の組み合わせに分割され、それぞれ対応する頻度情報に加えられる。このように、連続するN個の履歴を分割して出現頻度を計量することにより、図6cに示すように、出現頻度が高い組は頻繁に発生するイベントの組み合わせであることを意味するインデックスを作成することができる。例えば、図6cに示すインデックスのデータ構造Hは、次の通りである。
 H:={<ngram1, frequency1>,<ngram2, frequency2>,…,<ngramk, frequencyk>}
 ここで、ngramkはk種類目のn‐gramであり、frequencykはそれに対応する頻度の値である。
 続いてイベント頻度情報の照合方法について説明する。候補オブジェクトX、Y、Zが選択されたときのスコア算出方法を示す。例えば、候補オブジェクトXに関連するイベントは3つ(X1、X2、X3)あり、候補オブジェクトYに関連するイベントは2つ(Y1、Y2)あり、候補オブジェクトZに関連するイベントは1つ(Z1)あるとすると、各候補オブジェクトに関連する候補イベントそれぞれを末尾に追加したn‐gramのキーを生成する。図6aに示すように、A→B→A→B→C→Dという順序でプレイヤが操作を行ったとき、例えば候補イベントX1から生成されるn‐gramは、DX1(2‐gram)、CDX1(3‐gram)、BCDX1(4‐gram)、以下、N個の組み合わせまで繰り返し組み合わせを生成する。
 本システムは、生成したn‐gramをクエリとして、これまでにイベント頻度情報用データベースが蓄積したすべての頻度情報との照合を行い、出現頻度が高ければ高いほど、また、n‐gramのnが大きければ大きいほど、候補イベントへ高いスコア付けを行う。1つの実施形態に係るスコア算出のための関数scoreを式(1)に示す。
Figure JPOXMLDOC01-appb-I000001
 ここで、pはイベント履歴における現時点までの(N-1)個のイベント列であり、xは候補イベントであり、Hはこれまでに蓄積したすべての頻度情報のデータベースである。score関数は、内部で2つの関数を用いている。1つ目の関数は、query(p,i,x)である。この関数Q(query(p,i,x))は、イベント履歴における現時点までの(N-1)個のイベント列の末尾から、n-1個の要素を取り出し、その取り出した要素の末尾にxを追加した新しい組み合わせを生成する。これにより、前述のようなクエリとなるgramを生成することができる。2つ目の関数はfreq(H,Q)である。この関数は、query()関数により生成されたクエリが、頻度情報のデータベース内に出現する頻度を計算する関数である。また本実施形態においては、より長い組み合わせ(イベント列)にマッチすることは、プレイヤの意図により明確にマッチすると考え、インデックスのnが大きいほど大きい係数を掛けることが好ましい。この係数が、数式中のwiである。iは、2からNまで増加する変数であるため、iが増加すればするほど強くスコアに反映させる関数としてwiを実装することができる。例えば、図6dに示すように、wiはiが増加すればするほど非線形に上昇する関数であることができる。
 ステップ504において、上記のとおり算出された候補イベントのスコアを用いて、各候補オブジェクトの注目度スコアを決定する。1つの実施例として、候補オブジェクトの注目度スコアは、各候補オブジェクトに関連する候補イベントのスコアを加算し、正規化することで、算出する。また他の1つの実施例として、候補オブジェクトの注目度スコアは、各候補オブジェクトに関連する候補イベントのスコアを加算し、加算した候補イベントの数に応じた所定の係数を掛けあわせ、正規化することで、算出する。
 続いてステップ505において、決定又は算出された注目度スコアを用いて、3Dオブジェクトをレンダリングするためのリソース配分を決定するための指標値を算出する。本実施形態では、以下の式で定義されるIntention‐Aware LODを、リソース配分を決定するための指標値として用いる。
Figure JPOXMLDOC01-appb-I000002
 ここで、intention‐score関数は、式(1)のscore関数に基づいて算出された、候補オブジェクトxの注目度スコアを示すものである。distance関数は、ゲーム空間上での視点カメラからの距離に応じた重み付けを示すものであって、従来のLODに対応したものである。これらを掛けあわせることにより、本発明のプレイヤの注目度と従来のLODに対応した新たな指標値を算出することができる。
 続いてステップ506において、算出された指標値に基づいてGPUリソース配分を行う。GPUリソース配分としては、例えば候補オブジェクトの描画に用いるポリゴン数の配分がある。具体的なリソース配分方法としては、例えばオブジェクトに付けられた識別子と、バッファオブジェクト内のIDとを結びつけるルックアップテーブルを用意し、当該ルックアップテーブルと算出された指標値を用いて、ジオメトリシェーダにおいてプリミティブを動的に増減することで実現される。ただし、前述のとおり、ステップ506において動的に配分されるリソースは、レンダリングするための処理部のリソースすべてではないことに留意する。なおプリミティブはポリゴン(典型的には三角形)、法線ベクトル、点などを含み、プリミティブが三角形の場合は、各三角形は3つの頂点によって画定されるものである。例えばバッファオブジェクトに最も高精細の3Dモデルの頂点データが格納される場合、ジオメトリシェーダにおいてプリミティブを動的に削減する。
 ここで1つの実施例として、GLSLを用いた実装方法について述べる。OpenGL(登録商標)では、トランスフォームフィードバック機能として、頂点シェーダやジオメトリシェーダでの計算結果を、CPUを介さずに頂点バッファオブジェクト(VBO)に格納する機能を提供している。頂点バッファオブジェクトの内容は頂点シェーダに入力する頂点属性として使えるため、このトランスフォームフィードバック機能により頂点属性をGPU単独で更新/削減することが出来るようになる。したがって、本発明による動的、かつ、リアルタイムの制御を、GPU内に閉じて実装することができる。
 1つの実施例としてのGPUリソース配分例を図7に示す。図7のグラフは、一度に60万ポリゴンを表示可能なGPUを有するスマートフォンを用いて、ゲームキャラクタを描画したときの、従来のレンダリング方式(グラフ右)と、本発明によるレンダリング方式(グラフ左)を比較したものである。本発明と、従来方式は、両者が同一のハードウェアを用いるとき、1画面中に表示される総ポリゴン数は同一である。したがって、図7の積み上げグラフでは、両者の合計値はほぼ同一となっている。一方、1つのキャラクタの描画に用いるポリゴン数の最大値は大きく異なり、本発明によるレンダリングでは、プレイヤが注目するキャラクタのみを8万ポリゴンで描画可能である一方、従来のレンダリング方式では、すべてのキャラクタを一様に描画するため、ポリゴン数の最大値は6千となっている。すなわち、本発明により、同一のハードウェアにおいて、プレイヤが実感するレンダリング品質を従来方式の10倍以上にすることができる。
 [システムにより実現される実施形態]
 図8は本発明の1つの実施形態に係るシステムの全体構成の一例を示す。システム800は、複数の電子装置100と、サーバ900と、を含んで構成される。これらはネットワーク801によって互いに接続されるが、それぞれが必要に応じて個別に接続される形態であってもかまわない。また複数の電子装置のうちの一台をサーバとしても機能させる場合、システム800はサーバ900を含まない構成とすることもできる。またシステム800は、さらにデータベース802を含むこともできる。システム800がデータベース802を含む場合、データベース802はイベント履歴情報や連続的に発生したイベント履歴の頻度情報を格納し、電子装置100又はサーバ900はデータベース802に照会することで、所望のデータを取得することができる。以下では主としてサーバ900内のデータベースの使用を想定しているが、ネットワークに直接接続されたデータベース802を使用した場合においても同様である。
 図9は本発明の実施形態に係るサーバ900のハードウェア構成を示すブロック図である。サーバ900は、処理部901、表示部902、入力部903、記憶部904及び通信部905を備える。これらの各構成部はバス908によって接続されるが、それぞれが必要に応じて個別に接続される形態であってもかまわない。
 処理部901は、サーバ900が備える各部を制御するプロセッサを備えており、記憶部904をワーク領域として各種処理を行う。表示部902は使用者に情報を表示する機能を有する。入力部903はキーボードやマウス等のように使用者からの入力を受け付ける機能を有するものである。
 記憶部904は、ハードディスク、メインメモリ、及びバッファメモリを含む。ハードディスクにはプログラム906が記憶される。ただしハードディスクについては、情報を格納できるものであればいかなる不揮発性ストレージであってもよい。着脱可能なものであっても構わない。記憶部904には、プログラム906や当該プログラムの実行に伴って参照され得る各種のデータが記憶される。さらに記憶部904はイベント履歴情報や連続的に発生したイベント履歴の頻度情報に関するデータベース907を含むこともできる。この場合データベース907は、好ましくは、発生したイベントについての情報を含むイベント履歴情報に関するイベント履歴情報用データベースと、イベント履歴情報に基づいた連続する2つ以上のイベントからなるイベント列のパターンごとの出現頻度を示すイベント頻度情報に関するイベント頻度情報用データベースとを有する。通信部905はイーサネット(登録商標)ケーブル等を用いた有線通信や移動体通信、無線LAN等の無線通信を行い、ネットワーク950へ接続する。
 サーバ900は、プログラム906が実行されることによって様々な機能が実現されるが、これらの機能の一部は電子回路等を構成することによっても実現できる。
 電子装置100のハードウェア構成は図1aに示すとおりである。
 図10は本発明のシステムの機能ブロック図の一例を示す。図10が示す各機能は、図3に示すものと同等の機能を有する。電子装置100及び/又はサーバ900が図10に示す各種機能を備えることにより、システム800は、図10に示す各種機能を実現することができる。以下の実施形態においては電子装置100又はサーバ900がデータベース107又は907を含む場合について説明するが、前述のとおり、システム800は、電子装置100やサーバ900とは別に、ネットワークに接続されたデータベース802を含むことができ、この場合、電子装置100やサーバ900はデータベース802からデータを取得することができる。
 1つの実施形態に係るシステムとして、電子装置100は、タッチ位置検出手段1001、画面表示手段1002、候補オブジェクト選択手段1003、リソース配分決定手段1005、記憶手段1006、通信手段1007、及び一時記憶手段1008を備え、サーバ900は、注目度スコア決定手段304、記憶手段1006、及び通信手段1007を備える。本実施形態においては、データベース907を用いることを想定しており、データベース107及び802を含まない構成とすることが好ましい。例えばシステム800は、図5のフローチャートに示す情報処理を実行することができるが、この場合、ステップ503及び504以外を電子装置100が実行し、ステップ503及び504をサーバ900が実行する。サーバ900は、ステップ503及び504で決定された注目度スコアを電子装置100へ送信し、電子装置100は注目度スコアを受信することで、ステップ505以降の処理を継続して実行することができる。
 ここでイベント履歴情報については、一時記憶手段1008により電子装置100のバッファに蓄積され、電子装置100は通信手段1007により蓄積されたデータをサーバ900へ、好ましくは定期的に、送信し、記憶手段1008は受信したデータをデータベース907が有するイベント履歴情報用データベースに格納する。さらに記憶手段1006は、イベント履歴情報から、連続する2つ以上のイベントからなるイベント列のパターンごとの出現頻度を集計し、当該出現頻度を示すイベント頻度情報をデータベース907が有するイベント頻度情報用データベースに格納することができる。
 他の1つの実施形態に係るシステムとして、電子装置100はデータベース107を備えず、記憶手段1006におけるデータベースに関する機能以外の各機能を備え、サーバ900はデータベース907を備え、記憶手段1006及び通信手段1007の機能を備える。例えばシステム800は、図5のフローチャートに示す情報処理を実行することができるが、この場合、電子装置100がすべてのステップを実行する。ただしステップ504においては、イベント履歴情報及び/又はイベント頻度情報をデータベース907に照会し、所望のデータを取得することで注目度スコアを決定する。イベント履歴情報は、一時記憶手段1008により電子装置100のバッファに蓄積され、電子装置100は通信手段1007により蓄積されたデータをサーバ900へ、好ましくは定期的に、送信し、記憶手段1006は受信したデータをデータベース907が有するイベント履歴情報用データベースに格納する。
 上記のとおり、本実施形態に係るシステムは、一台の電子装置によっても、ネットワークを介して複数の電子装置が接続されるシステムによっても実現することができる。当該システムは、図10に示す機能を有するものであるが、1つの実施形態に係るシステムアーキテクチャ1100は、図11に示す6つのモジュールから構成することができる。このようにモジュール化を行うことにより、一部のモジュールを変更して各種のゲームに適用することが可能になる。
 操作頻度データベース1101は、連続的に行われた操作の頻度情報又は連続的に発生したイベントの頻度情報を格納するデータベースであり、データベース907などに対応し、記憶手段1006の一部に対応する機能を有するものである。
 直近操作(イベント)バッファ1102は、プレイヤの直前の(N-1)個の操作履歴又はイベント履歴を記録するバッファである。本モジュールは、記憶部が含むバッファに対応し、前述した記憶手段908の一部や一時記憶手段911に対応する機能を有するものである。
 候補オブジェクト選択1103は、画面上で注目度に応じたLOD制御の対象となるオブジェクトを選択するモジュールである。本モジュールは、例えば、背景の一部となる木々やゲームと関係の無いキャラクタではなく、プレイヤが操作するキャラクタやゲームに関わる敵キャラクタを、候補として選択するものであり、候補オブジェクト選択手段1003に対応する機能を有するものである。ゲーム開発者は、これらの3Dオブジェクトをゲーム内に実装する際、本発明によるLOD制御の対象となるオブジェクトにタグ付けを行うことが望ましい。
 行動予測エンジン1104は、プレイヤの次の行動を予測するソフトウェアモジュールであり、注目度スコア決定手段1004の一部に対応する機能を有するものである。Intention-Aware LOD算出1105は、式2で示す指標値を算出するものであり、注目度スコア決定手段1004の一部に対応する機能を有するものである。
 GPU資源配分(プリミティブ削減)は、ジオメトリシェーダを用いて、当該バッファ内のプリミティブを動的に削減するものであり、リソース配分決定手段1005に対応する機能を有するものである。本発明の1つの実施形態では、バッファ内に、最も高精細の3Dモデルが格納されていることを前提としている。すなわち、本発明によるIntention-Aware LODの適用処理は、バッファ内の3Dモデルから、プリミティブを削減する処理として実現される。
 以上に説明した処理又は動作において、あるステップにおいて、そのステップではまだ利用することができないはずのデータを利用しているなどの処理又は動作上の矛盾が生じない限りにおいて、処理又は動作を自由に変更することができる。また以上に説明してきた各実施例は、本発明を説明するための例示であり、本発明はこれらの実施例に限定されるものではない。本発明は、その要旨を逸脱しない限り、種々の形態で実施することができる。
100 電子装置
101、901 処理部
102、902 表示部
103、903 入力部
104、904 記憶部
105、905 通信部
106、906 プログラム
107、907 データベース
108、908 バス
109 CPU
110 GPU
111 メインメモリ
112 ビデオメモリ
113 タッチパネル
301、1001 タッチ位置検出手段
302、1002 画面表示手段
303、1003 候補オブジェクト選択手段
304、1004 注目度スコア決定手段
305、1005 リソース配分決定手段
306、1006 記憶手段
307、1007 通信手段
308、1008 一時記憶手段
401 頂点シェーダ
402 ジオメトリシェーダ
403 ラスタライザ
404 ピクセルシェーダ
405 出力合成
800 システム
801 ネットワーク
802 データベース
900 サーバ
1100 システムアーキテクチャ
1101 操作履歴DB
1102 直近操作バッファ
1103 候補オブジェクト選択
1104 行動予測エンジン
1105 Intention-Aware LOD算出
1106 GPU資源配分

Claims (12)

  1.  表示部及び処理部を備える電子装置において実行される、3次元仮想空間に配置された複数の3次元のオブジェクトをレンダリングする前記処理部のリソース配分を決定するためのプログラムであって、前記電子装置に、
     前記表示部に描画されるオブジェクトから、ゲームのイベントに関連するオブジェクトを候補オブジェクトとして選択するステップと、
     選択された前記候補オブジェクト、直前に発生したイベント又はイベント列、及び発生したイベントについての情報を含むイベント履歴情報に基づいて、前記候補オブジェクトに関連するイベントである候補イベントのそれぞれの発生に関する重みを決定することにより、前記候補オブジェクトのそれぞれのプレイヤにより注目される度合いを示す注目度スコアを決定するステップと、
     前記注目度スコア、及びプレイヤの視点からの前記候補オブジェクトの奥行き距離に基づいて、それぞれの前記候補オブジェクトをレンダリングするための前記処理部のリソース配分を決定するステップと、
     を実行させるプログラム。
  2.  前記イベント履歴情報は、発生したイベントの履歴における連続する2つ以上のイベントからなるイベント列のパターンごとの出現頻度を示すイベント頻度情報を含む、請求項1に記載のプログラム。
  3.  前記イベント頻度情報は、連続するN(N≧2)個以下のイベントからなるイベント列のパターンごとの出現頻度を示す情報を含むものであり、
     前記注目度スコアを決定するステップは、
     それぞれの前記候補イベントについて、前記イベント頻度情報における前記候補イベント直前に発生したイベント又はイベント列及び前記候補イベントからなる連続するn個(2≦n≦N)のイベント列の出現頻度に基づいて、前記候補イベントのそれぞれが次に発生する可能性を示すスコアを算出することにより、前記候補オブジェクトのそれぞれの前記注目度スコアを算出するステップを含む、請求項2に記載のプログラム。
  4.  前記注目度スコアを決定するステップは、
     それぞれの前記候補イベントについて、前記スコアをn=n1~n2(2≦n1<n2≦N)それぞれで算出し、算出されたスコアにnの値の大きさに対応する所定の係数を掛け合わせて加算するステップを含む、請求項3に記載のプログラム。
  5.  前記プログラムは、前記電子装置に、
     発生したイベントを記憶するステップをさらに実行させる、請求項1から4のいずれか1項に記載のプログラム。
  6.  前記電子装置は、ネットワークを介してサーバに接続され、
     前記プログラムは、前記電子装置に、
     前記サーバから前記イベント履歴情報を受信するステップと、
     前記サーバに、発生したイベントを記憶させるために、前記サーバに対して発生したイベントを含む情報を送信するステップをさらに実行させる、請求項1から5のいずれか1項に記載のプログラム。
  7.  前記処理部には複数のシェーダユニットが含まれ、前記処理部のリソース配分は、それぞれの前記候補オブジェクトの描画に使用する前記シェーダユニットの配分を含む、請求項1から6のいずれか1つに記載のプログラム。
  8.  表示部及び処理部を備える電子装置であって、
     前記表示部に描画される3次元仮想空間に配置された3次元のオブジェクトから、ゲームのイベントに関連するオブジェクトを候補オブジェクトとして選択する候補オブジェクト選択手段と、
     選択された前記候補オブジェクト、直前に発生したイベント又はイベント列、及び発生したイベントについての情報を含むイベント履歴情報に基づいて、前記候補オブジェクトに関連するイベントである候補イベントのそれぞれの発生に関する重みを決定することにより、前記候補オブジェクトのそれぞれのプレイヤにより注目される度合いを示す注目度スコアを決定する注目度スコア決定手段と、
     前記注目度スコア、及びプレイヤの視点からの前記候補オブジェクトの奥行き距離に基づいて、それぞれの前記候補オブジェクトをレンダリングするための前記処理部のリソース配分を決定するリソース配分決定手段と、
     を備える電子装置。
  9.  サーバと、前記サーバにネットワークを介して接続され、表示部及び処理部を備える電子装置とを含むシステムであって、
     前記表示部に描画される3次元仮想空間に配置された3次元のオブジェクトから、ゲームのイベントに関連するオブジェクトを候補オブジェクトとして選択する候補オブジェクト選択手段と、
     選択された前記候補オブジェクト、直前に発生したイベント又はイベント列、及び発生したイベントについての情報を含むイベント履歴情報に基づいて、前記候補オブジェクトに関連するイベントである候補イベントのそれぞれの発生に関する重みを決定することにより、前記候補オブジェクトのそれぞれのプレイヤにより注目される度合いを示す注目度スコアを決定する注目度スコア決定手段と、
     前記注目度スコア、及びプレイヤの視点からの前記候補オブジェクトの奥行き距離に基づいて、それぞれの前記候補オブジェクトをレンダリングするための前記処理部のリソース配分を決定するリソース配分決定手段と、
     の各手段を前記サーバ又は前記電子装置が備える、システム。
  10.  前記システムは、
     発生したイベントを記憶する記憶手段を前記サーバ又は前記電子装置がさらに備え、
     前記記憶手段は、
     前記記憶手段に記憶されたイベントの履歴における連続する2つ以上のイベントからなるイベント列のパターンごとの出現頻度を示すイベント頻度情報を含むイベント履歴情報を作成する、請求項9に記載のシステム。
  11.  前記イベント頻度情報は、連続するN(N≧2)個以下のイベントからなるイベント列のパターンごとの出現頻度を示す情報を含むものであり、
     前記注目度スコア決定手段は、
     それぞれの前記候補イベントについて、前記イベント頻度情報における前記候補イベント直前に発生したイベント又はイベント列及び前記候補イベントからなる連続するn個(2≦n≦N)のイベント列の出現頻度に基づいて、前記候補イベントのそれぞれが次に発生する可能性を示すスコアを算出することにより、前記候補オブジェクトのそれぞれの前記注目度スコアを算出する注目度スコア算出手段を備える、請求項10に記載のシステム。
  12.  サーバと、前記サーバにネットワークを介して接続され、表示部及び処理部を備える電子装置とを含むシステムにおいて、3次元仮想空間に配置された複数の3次元のオブジェクトをレンダリングする前記処理部のリソース配分を決定するための方法であって、
     前記表示部に描画されるオブジェクトから、ゲームのイベントに関連するオブジェクトを候補オブジェクトとして選択するステップと、
     選択された前記候補オブジェクト、直前に発生したイベント又はイベント列、及び発生したイベントについての情報を含むイベント履歴情報に基づいて、前記候補オブジェクトに関連するイベントである候補イベントのそれぞれの発生に関する重みを決定することにより、前記候補オブジェクトのそれぞれのプレイヤにより注目される度合いを示す注目度スコアを決定するステップと、
     前記注目度スコア、及びプレイヤの視点からの前記候補オブジェクトの奥行き距離に基づいて、それぞれの前記候補オブジェクトをレンダリングするための前記処理部のリソース配分を決定するステップと、
     を備え、各ステップは前記サーバ又は前記電子装置により実行される方法。
PCT/JP2016/074770 2015-09-17 2016-08-25 プレイヤの意図を予測してレンダリングするためのリソース配分を決定するプログラム、電子装置、システム及び方法 WO2017047348A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201680066537.5A CN108290071B (zh) 2015-09-17 2016-08-25 用于在预测游戏者的意图的情况下确定用于执行绘制的资源分配的介质、装置、系统和方法
US15/925,344 US10675538B2 (en) 2015-09-17 2018-03-19 Program, electronic device, system, and method for determining resource allocation for executing rendering while predicting player's intent
HK18114081.1A HK1254974A1 (zh) 2015-09-17 2018-11-05 用於在預測遊戲者的意圖的情況下確定用於執行繪製的資源分配的程序、電子裝置、系統和方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015184243A JP5899364B1 (ja) 2015-09-17 2015-09-17 プレイヤの意図を予測してレンダリングするためのリソース配分を決定するプログラム、電子装置、システム及び方法
JP2015-184243 2015-09-17

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/925,344 Continuation US10675538B2 (en) 2015-09-17 2018-03-19 Program, electronic device, system, and method for determining resource allocation for executing rendering while predicting player's intent

Publications (1)

Publication Number Publication Date
WO2017047348A1 true WO2017047348A1 (ja) 2017-03-23

Family

ID=55648269

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/074770 WO2017047348A1 (ja) 2015-09-17 2016-08-25 プレイヤの意図を予測してレンダリングするためのリソース配分を決定するプログラム、電子装置、システム及び方法

Country Status (5)

Country Link
US (1) US10675538B2 (ja)
JP (1) JP5899364B1 (ja)
CN (1) CN108290071B (ja)
HK (1) HK1254974A1 (ja)
WO (1) WO2017047348A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6677788B1 (ja) * 2018-11-29 2020-04-08 株式会社Cygames 情報処理プログラム、情報処理方法およびゲーム装置
KR102257891B1 (ko) * 2019-05-24 2021-05-28 서울시립대학교 산학협력단 비동기 로딩 장치 및 방법
CN111325822B (zh) * 2020-02-18 2022-09-06 腾讯科技(深圳)有限公司 热点图的显示方法、装置、设备及可读存储介质
CN111737594B (zh) * 2020-06-24 2023-07-25 中网数据(北京)股份有限公司 基于无监督标签生成的虚拟网络角色行为塑造方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08137380A (ja) * 1994-11-09 1996-05-31 Namco Ltd 3次元シミュレータ装置及び画像合成方法
WO1996034364A1 (fr) * 1995-04-27 1996-10-31 Sega Enterprises Ltd. Dispositif de traitement d'images, procede de traitement d'images, appareil de jeu les utilisant et support de memoire
JPH10174781A (ja) * 1996-10-18 1998-06-30 Namco Ltd ゲーム装置及び情報記憶媒体
JPH11339061A (ja) * 1998-05-22 1999-12-10 Fujitsu Ltd 階層化ポリゴンデータを用いた3次元ポリゴン表示装置
JP2000030083A (ja) * 1999-06-15 2000-01-28 Sega Enterp Ltd 画像処理装置及びこれを備えたゲ―ム装置
JP2005204949A (ja) * 2004-01-22 2005-08-04 Sony Corp 電子機器装置及び画像表示方法
WO2014091824A1 (ja) * 2012-12-10 2014-06-19 ソニー株式会社 表示制御装置、表示制御方法およびプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2299004B (en) * 1994-09-16 1998-08-05 Namco Ltd Three-dimensional simulator and image synthesis method
JP3961525B2 (ja) * 2004-09-22 2007-08-22 株式会社コナミデジタルエンタテインメント 画像処理装置、画像処理方法、ならびに、プログラム
EP2141932A1 (en) * 2008-06-30 2010-01-06 France Telecom 3D rendering method and system
CN101320482B (zh) * 2008-07-08 2011-09-07 浙江大学 基于视频纹理的虚拟跑步运动员的绘制方法
JP2014170367A (ja) * 2013-03-04 2014-09-18 Nec Casio Mobile Communications Ltd 物体検出装置、物体検出方法、物体検出システム及びプログラム
US10062354B2 (en) * 2014-10-10 2018-08-28 DimensionalMechanics, Inc. System and methods for creating virtual environments

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08137380A (ja) * 1994-11-09 1996-05-31 Namco Ltd 3次元シミュレータ装置及び画像合成方法
WO1996034364A1 (fr) * 1995-04-27 1996-10-31 Sega Enterprises Ltd. Dispositif de traitement d'images, procede de traitement d'images, appareil de jeu les utilisant et support de memoire
JPH10174781A (ja) * 1996-10-18 1998-06-30 Namco Ltd ゲーム装置及び情報記憶媒体
JPH11339061A (ja) * 1998-05-22 1999-12-10 Fujitsu Ltd 階層化ポリゴンデータを用いた3次元ポリゴン表示装置
JP2000030083A (ja) * 1999-06-15 2000-01-28 Sega Enterp Ltd 画像処理装置及びこれを備えたゲ―ム装置
JP2005204949A (ja) * 2004-01-22 2005-08-04 Sony Corp 電子機器装置及び画像表示方法
WO2014091824A1 (ja) * 2012-12-10 2014-06-19 ソニー株式会社 表示制御装置、表示制御方法およびプログラム

Also Published As

Publication number Publication date
US10675538B2 (en) 2020-06-09
US20180207531A1 (en) 2018-07-26
JP5899364B1 (ja) 2016-04-06
HK1254974A1 (zh) 2019-08-02
CN108290071A (zh) 2018-07-17
CN108290071B (zh) 2021-09-03
JP2017056038A (ja) 2017-03-23

Similar Documents

Publication Publication Date Title
KR101640904B1 (ko) 온라인 게이밍 경험을 제공하기 위한 컴퓨터 기반 방법, 기계 판독가능 비일시적 매체 및 서버 시스템
CN110097625B (zh) 片段着色器执行顶点着色器计算
US10909768B2 (en) Virtual item simulation using detected surfaces
JP2021061041A (ja) 中心窩ジオメトリテッセレーション
WO2017047348A1 (ja) プレイヤの意図を予測してレンダリングするためのリソース配分を決定するプログラム、電子装置、システム及び方法
EP2973355B1 (en) Campaign optimization for experience content dataset
US20140362100A1 (en) Scheme for compressing vertex shader output parameters
CN102915232B (zh) 一种3d控件的交互方法及通信终端
US9495748B2 (en) Segmentation of content delivery
US20130093779A1 (en) Graphics processing unit memory usage reduction
CN115018955A (zh) 一种图像生成方法及设备
US9824487B2 (en) Storage medium, luminance computation apparatus and luminance computation method
CN113486415B (zh) 模型透视方法、智能终端以及存储装置
CN115908687A (zh) 渲染网络的训练、渲染方法、装置及电子设备
JP6550418B2 (ja) オンラインゲーム
CN114842122B (zh) 模型渲染方法、装置、设备及存储介质
WO2023280291A1 (en) Method and apparatus for computer model rasterization
JP6446149B1 (ja) プログラム、処理装置及び処理方法
US9633476B1 (en) Method and apparatus for using augmented reality for business graphics
CN114546314A (zh) 一种窗口显示方法、装置、电子设备及存储介质
TW202341062A (zh) 計算機圖形處理方法以及系統
CN116894897A (zh) 计算机图形处理方法以及系统

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: 16846219

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: 16846219

Country of ref document: EP

Kind code of ref document: A1