Game program, game system, game device, and game processing method

JP2024075657A5Pending Publication Date: 2025-05-26NINTENDO CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024041495
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-03-15
Publication Date
2025-05-26

AI Technical Summary

Technical Problem

Existing games using inertial sensors for swing inputs lack accuracy in determining the type and direction of swing inputs, leading to potential inaccuracies in game processing.

Method used

A game program utilizing a computer system that includes an operation data acquisition means, swing determination means, management means, and swing direction determination means, which uses a learned model to analyze data from an inertial sensor to accurately determine the swing direction based on trained models and thresholds, allowing for improved swing input detection.

Benefits of technology

The solution enhances the accuracy of swing input determination by accounting for individual differences and game situations, improving user experience and game progression.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

To provide a game program, a game system, a game device, and a game processing method capable of increasing determination precision of a swinging way (swinging direction) of an operation device pertaining to swing input.SOLUTION: Based on operation data acquired from an operation device that an inertia sensor has, it is determined whether swing input is performed to the operation device. Each is generated based on plural pieces of teacher data correlated with one of plural swing directions, and a learned model for determining in which direction the operation device is swung from among the plural swing directions is managed. Operation data acquired during a period of swing input are inputted to the learned model, a swing direction in which the operation device is swung is determined based on output from the learned model corresponding to the input, and game processing is executed based on the swing direction.SELECTED DRAWING: Figure 16
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates to game processing that utilizes an input device equipped with an inertial sensor. [Background technology]

[0002] 2. Description of the Related Art Conventionally, there have been known games that allow input using an inertial sensor, in which movement of an object is initiated by a swing input of swinging a controller (for example, Patent Document 1). [Prior art documents] [Patent documents]

[0003] [Patent Document 1] JP 2017-217489 A Summary of the Invention [Problem to be solved by the invention]

[0004] In the above game, when a swing input is made at a predetermined timing, a predetermined object is caused to start moving in the virtual space.

[0005] In this regard, depending on the game content, it may be necessary to determine what kind of swing was performed and in what direction the swing input made by the user was. In such cases, there is room for improving the accuracy of the swing determination.

[0006] Therefore, an object of the present disclosure is to provide a game program, a game system, a game device, and a game processing method that can improve the accuracy of determining the swing (swing direction) of an operating device related to a swing input. [Means for solving the problem]

[0007] In order to achieve the above object, for example, the following configuration example can be given.

[0008] One example of the configuration is a game program executed by a computer of a game device, The computer is caused to function as operation data acquisition means, swing determination means, management means, swing direction determination means, and game processing execution means. The operation data acquisition means acquires operation data based on an output of an inertial sensor from an operation device equipped with an inertial sensor. The swing determination means determines whether or not a swing input has been made to the operation device based on the operation data. The management means manages a trained model that is generated based on a plurality of teacher data each corresponding to one of a plurality of swing directions and is used to determine in which of the plurality of swing directions the operation device has been swung. The swing direction determination means inputs operation data acquired during a period in which a swing input has been made to the trained model, and determines the swing direction in which the operation device has been swung based on an output of the trained model in response to the input. The game processing execution means executes game processing based on the swing direction in which it has been determined that the operation device has been swung.

[0009] According to the above configuration example, the swing direction of the controller device can be determined based on the result obtained by inputting the operation data related to the swing input into the trained model, thereby improving the accuracy of determining the swing input in the game processing.

[0010] As another configuration example, the swing direction determination means may input a plurality of operation data gradually acquired during a period in which a swing input was performed into the trained model, and determine the swing direction in which the operating device was swung based on the output of the trained model in response to the input.

[0011] According to the above configuration example, a determination can be made using a plurality of pieces of operation data during a period in which a swing input is performed, thereby improving the accuracy of the determination.

[0012] As another configuration example, the swing determination means may determine that the swing input has started when the magnitude of acceleration indicated by the acceleration data included in the acquired operation data exceeds a threshold value, and may determine that the swing input has ended at a release timing after the magnitude of the acceleration has reached a peak.The swing direction determination means may determine the swing direction based on an output from the trained model in response to input of a plurality of pieces of operation data acquired from the start of the swing input to the release timing.

[0013] According to the above configuration example, the start and end of the swing input are determined by observing the change in acceleration. This allows the start and end of the swing input to be detected by simple processing. Also, more accurate determination can be made using operation data during the swing input period.

[0014] As another configuration example, the swing direction determination means may determine in which of a plurality of swing directions the operating device was swung, using a similarity corresponding to each of the plurality of swing directions that is output when operation data is input to the learned model.

[0015] According to the above configuration example, the direction in which the operation device is swung is determined by checking the similarity with each of the multiple swing directions. As a result, even if the operation device is swung in a swing direction that is somewhat similar to a predetermined swing direction, it can be treated as being swung in the predetermined swing direction. This makes it possible to make a determination that absorbs to a certain degree the individual differences in the swinging manner of each user, thereby improving the determination accuracy.

[0016] As another configuration example, the swing direction determination means may determine that the operating device has been swung in the swing direction associated with the highest similarity when the similarities corresponding to two or more swing directions among the multiple swing directions each satisfy a predetermined similarity condition.

[0017] According to the above configuration example, the direction having the highest similarity is selected from among those satisfying the similarity condition and determined as the swing direction, so that the determination accuracy can be further improved.

[0018] As another configuration example, the predetermined similarity condition regarding the degree of similarity may be set to differ depending on the game situation resulting from the execution of the game process.

[0019] According to the above configuration example, the similarity condition can be dynamically changed according to the game situation. This makes it possible to create a state in which a predetermined swing input is likely to be determined according to the game development. For example, even in a situation in which the movement of the user's arm swinging the operation device tends to be small, it is possible to determine that the user has performed a predetermined swing input.

[0020] As another configuration example, the teacher data may include a first parameter including at least the magnitude of acceleration or the magnitude of angular velocity, and the operation data may include a second parameter including at least the magnitude of acceleration or the magnitude of angular velocity.

[0021] As another configuration example, each of the first parameter and the second parameter may further include attitude data indicating the attitude of the controller device.

[0022] According to the above configuration example, the similarity determination can be performed using the posture data, and the determination accuracy can be further improved.

[0023] As another configuration example, while it is determined that no swing input is being made to the operation device, the posture of a player character object placed in a virtual space may be changed to a posture corresponding to a posture indicated by posture data calculated based on the operation data.

[0024] According to the above configuration example, while the user is not swinging the operation device, the change in posture of the operation device moved by the user is reflected in the posture of the player character object, thereby increasing the sense of immersion in the game.

[0025] As another configuration example, the game processing execution means may execute the game processing when it is determined that a swing input to the operation device has been performed at a timing during the game that satisfies an execution condition.

[0026] According to the above configuration example, the game element of having the user determine the timing for performing the swing input can be provided, and the entertainment value of the game can be improved.

[0027] As another configuration example, when it is determined that a swing input to the operating device has been made at a time when the position of a player object placed in the virtual space and the position of a moving object have a predetermined positional relationship, the game processing execution means may execute processing to move the moving object based on the swing direction in which it is determined that the operating device was swung.

[0028] According to the above configuration example, in a game that progresses by moving a moving object, it is possible to improve the accuracy of determining a swing input for causing the movement, and ultimately to improve the user experience of such a game.

[0029] As another configuration example, the game program may further cause the computer to function as a movement control means for moving a moving object at a predetermined speed, and, if the height of the moving object in the virtual space falls below the predetermined height, decelerating the moving object so that its speed is slower than the predetermined speed.

[0030] According to the above configuration example, in a certain situation (for example, a situation where a moving object is close to the ground), a time allowance can be given to the user to perform a swing input. This makes it easier for a swing judgment to be made, improving the user experience.

[0031] As another configuration example, the game processing execution means may execute game processing so as to be more advantageous when a predetermined positional relationship and a swing direction in which it is determined that the operating device has been swung satisfy a predetermined condition than when the predetermined condition is not satisfied.

[0032] According to the above configuration example, it is possible to provide a gaming experience in which the user performs a swing input so as to satisfy a predetermined condition, thereby making the game more entertaining.

[0033] As another configuration example, if the output of the trained model indicates that there is no swing direction that satisfies a specified similarity condition, the game processing execution means may execute game processing assuming that no swing input has been made to the operating device.

[0034] According to the above configuration example, if the action is not similar to any of the above, a game process can be executed in which, for example, no action is taken, and the user can be made aware that the swing input was not performed properly.

[0035] In another configuration example, when the output of the trained model indicates that there is no swing direction that satisfies a predetermined similarity condition, the game processing execution means The posture of the player character object may be changed in response to a change in the posture of the operation device calculated based on the posture of the operation device.

[0036] According to the above configuration example, it is possible to cause the player character object to perform some kind of action in response to a swing input made by the user.

[0037] As another configuration example, when the output of the trained model indicates that there is no swing direction that satisfies a predetermined similarity condition, the swing direction determination means may determine that the operation device has been swung in a swing direction that does not satisfy the similarity condition but has the highest similarity to the swing direction calculated from the operation data. Then, the game processing means may execute game processing based on the swing direction.

[0038] According to the above configuration example, some kind of game processing can be executed in response to the swing input. This can prevent the game from coming to a standstill or becoming disadvantageous in terms of the game due to the swing input not being accepted, and can lower the difficulty level of the game. Effect of the Invention

[0039] According to this embodiment, the accuracy of determining a swing input can be improved. [Brief description of the drawings]

[0040] [Figure 1] FIG. 1 shows an example of a state in which a left controller 3 and a right controller 4 are attached to a main unit 2. [Diagram 2] FIG. 1 shows an example of a state in which the left controller 3 and the right controller 4 are removed from the main unit 2. [Diagram 3] Six-sided views showing an example of the main unit 2 [Figure 4] Six-sided diagram showing an example of the left controller 3 [Diagram 5] Six-sided diagram showing an example of the right controller 4 [Figure 6] A block diagram showing an example of the internal configuration of the main unit 2. [Figure 7] A block diagram showing an example of the internal configuration of the main unit 2, the left controller 3, and the right controller 4. [Figure 8] An example of a game screen according to the present embodiment [Figure 9] An example of over movement [Figure 10] An example of over movement [Figure 11] An example of over movement [Figure 12] An example of underforearm movement [Figure 13] An example of underforearm movement [Figure 14] An example of underback movement [Figure 15] An example of underback movement [Figure 16] FIG. 1 is a diagram for explaining an overview of processing according to the present embodiment; [Figure 17] An example of a waveform showing the controller's posture change when overshooting [Figure 18] An example of a waveform showing the controller's posture change when under-forward [Figure 19] An example of a waveform showing the controller's posture change when under-back [Figure 20] An example of a possible shot area [Figure 21] A memory map showing an example of various data stored in the DRAM 85. [Figure 22] An example of player character data 303 [Diagram 23] An example of operation data 306 [Figure 24] A flowchart showing details of a badminton game process according to the present embodiment. [Diagram 25] Flowchart showing details of match processing [Figure 26] Flowchart showing details of player character control processing [Figure 27] Flowchart showing details of processing related to swing input [Figure 28] Flowchart showing details of swing direction determination process [Figure 29] Flowchart showing details of shot occurrence determination processing [Diagram 30] Flowchart showing details of shot occurrence determination processing [Diagram 31] Flowchart showing details of shuttle movement control process DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0041] An embodiment will be described below.

[0042] A game system according to an example of this embodiment will be described below. An example of the game system 1 in this embodiment includes a main unit (information processing device; in this embodiment, it functions as a game device main unit) 2, a left controller 3, and a right controller 4. The left controller 3 and the right controller 4 are each detachable from the main unit 2. In other words, the game system 1 can be used as an integrated device by attaching the left controller 3 and the right controller 4 to the main unit 2. The game system 1 can also be used as a separate device from the main unit 2, the left controller 3, and the right controller 4 (see FIG. 2). The hardware configuration of the game system 1 of this embodiment will be described below, and then the control of the game system 1 of this embodiment will be described.

[0043] Fig. 1 is a diagram showing an example of a state in which a left controller 3 and a right controller 4 are attached to a main unit 2. As shown in Fig. 1, the left controller 3 and the right controller 4 are each attached to and integrated with the main unit 2. The main unit 2 is a device that executes various processes (e.g., game processes) in the game system 1. The main unit 2 includes a display 12. The left controller 3 and the right controller 4 are devices that include an operation unit that allows the user to perform input.

[0044] Fig. 2 is a diagram showing an example of a state in which the left controller 3 and the right controller 4 have been removed from the main unit 2. As shown in Figs. 1 and 2, the left controller 3 and the right controller 4 are detachable from the main unit 2. In the following, the left controller 3 and the right controller 4 may be collectively referred to as "controller."

[0045] Fig. 3 is a six-sided view showing an example of the main unit 2. As shown in Fig. 3, the main unit 2 includes a substantially plate-shaped housing 11. In this embodiment, the main surface of the housing 11 (in other words, the front surface, i.e., the surface on which the display 12 is provided) is generally rectangular in shape.

[0046] The shape and size of the housing 11 are arbitrary. As an example, the housing 11 may be of a size that is portable. Furthermore, the main unit 2 alone or an integrated device in which the left controller 3 and the right controller 4 are attached to the main unit 2 may be a portable device. Furthermore, the main unit 2 or the integrated device may be a handheld device. Furthermore, the main unit 2 or the integrated device may be a portable device.

[0047] 3, the main unit 2 includes a display 12 provided on a main surface of a housing 11. The display 12 displays an image generated by the main unit 2. In this embodiment, the display 12 is a liquid crystal display (LCD). However, the display 12 may be any type of display device.

[0048] The main unit 2 also includes a touch panel 13 on the screen of the display 12. In this embodiment, the touch panel 13 is of a type that allows multi-touch input (e.g., a capacitive type). However, the touch panel 13 may be of any type, and may be of a type that allows single-touch input (e.g., a resistive film type). .

[0049] The main unit 2 includes a speaker (i.e., speaker 88 shown in FIG. 6) inside the housing 11. As shown in FIG. 3, speaker holes 11a and 11b are formed in the main surface of the housing 11. The output sound of the speaker 88 is output from these speaker holes 11a and 11b, respectively.

[0050] The main unit 2 also has a left side terminal 17, which is a terminal through which the main unit 2 performs wired communication with the left controller 3, and a right side terminal 21 through which the main unit 2 performs wired communication with the right controller 4.

[0051] As shown in FIG. 3, the main unit 2 includes a slot 23. The slot 23 is provided on the upper side of the housing 11. The slot 23 has a shape that allows a predetermined type of storage medium to be attached thereto. The predetermined type of storage medium is, for example, a storage medium (e.g., a dedicated memory card) dedicated to the game system 1 and the same type of information processing device. The predetermined type of storage medium is used, for example, to store data used in the main unit 2 (e.g., application save data, etc.) and / or programs executed in the main unit 2 (e.g., application programs, etc.). The main unit 2 also includes a power button 28.

[0052] The main unit 2 includes a lower terminal 27. The lower terminal 27 is a terminal through which the main unit 2 communicates with the cradle. In this embodiment, the lower terminal 27 is a USB connector (more specifically, a female connector). When the all-in-one device or the main unit 2 alone is placed on the cradle, the game system 1 can display images generated and output by the main unit 2 on a stationary monitor. In this embodiment, the cradle also has a function of charging the all-in-one device or the main unit 2 alone that is placed on it. The cradle also has a function of a hub device (more specifically, a USB hub).

[0053] FIG. 4 is a six-sided view showing an example of the left controller 3. As shown in FIG. 4, the left controller 3 includes a housing 31. In this embodiment, the housing 31 has a vertically long shape, that is, a shape that is long in the up-down direction in FIG. 4 (z-axis direction shown in FIG. 4). The left controller 3 can also be held in a vertically long orientation when removed from the main unit 2. The housing 31 has a shape and size that allows it to be held in one hand, particularly the left hand, when held in a vertically long orientation. The left controller 3 can also be held in a horizontally long orientation. When the left controller 3 is held in a horizontally long orientation, it may be held with both hands.

[0054] The left controller 3 includes a left analog stick (hereinafter, referred to as the left stick) 32, which is an example of a directional input device. As shown in FIG. 4, the left stick 32 is provided on the main surface of the housing 31. The left stick 32 can be used as a directional input unit capable of inputting a direction. By tilting the left stick 32, the user can input a direction according to the tilt direction (and input a magnitude according to the tilt angle). Note that the left controller 3 may include a cross key or a slide stick capable of slide input, instead of an analog stick, as the directional input unit. In addition, in this embodiment, an input can be made by pressing the left stick 32.

[0055] The left controller 3 is equipped with various operation buttons. The left controller 3 is equipped with four operation buttons 33 to 36 (specifically, a right direction button 33, a down direction button 34, an up direction button 35, and a left direction button 36) on the main surface of the housing 31. Furthermore, the left controller 3 is equipped with a record button 37 and a - (minus) button 47. The left controller 3 is The left controller 3 is provided with a first L button 38 and a ZL button 39 at the top left of the side of the housing 31. In addition, the left controller 3 is provided with a second L button 43 and a second R button 44 on the side of the housing 31 that is attached when the left controller 3 is attached to the main unit 2. These operation buttons are used to give instructions according to various programs (for example, OS programs and application programs) executed on the main unit 2.

[0056] In addition, the left controller 3 is equipped with a terminal 42 that enables the left controller 3 to communicate with the main unit 2 via wire.

[0057] FIG. 5 is a six-sided view showing an example of the right controller 4. As shown in FIG. 5, the right controller 4 includes a housing 51. In this embodiment, the housing 51 has a vertically long shape, that is, a shape that is long in the up-down direction in FIG. 5 (z-axis direction shown in FIG. 5). The right controller 4 can also be held in a vertically long orientation when removed from the main unit 2. The housing 51 has a shape and size that allows it to be held in one hand, particularly the right hand, when held in a vertically long orientation. The right controller 4 can also be held in a horizontally long orientation. When the right controller 4 is held in a horizontally long orientation, it may be held with both hands.

[0058] The right controller 4, like the left controller 3, is provided with a right analog stick (hereinafter, referred to as the right stick) 52 as a direction input unit. In this embodiment, the right stick 52 has the same configuration as the left stick 32 of the left controller 3. The right controller 4 may be provided with a cross key or a slide stick capable of slide input, instead of an analog stick. The right controller 4, like the left controller 3, is provided with four operation buttons 53 to 56 (specifically, an A button 53, a B button 54, an X button 55, and a Y button 56) on the main surface of the housing 51. The right controller 4 further includes a + (plus) button 57 and a home button 58. The right controller 4 is provided with a first R button 60 and a ZR button 61 on the upper right of the side surface of the housing 51. The right controller 4 is provided with a second L button 65 and a second R button 66, like the left controller 3.

[0059] In addition, the right controller 4 is equipped with a terminal 64 for enabling the right controller 4 to communicate with the main unit 2 via wire.

[0060] Fig. 6 is a block diagram showing an example of the internal configuration of main unit 2. In addition to the configuration shown in Fig. 3, main unit 2 includes components 81-91, 97, and 98 shown in Fig. 6. Some of these components 81-91, 97, and 98 may be mounted on an electronic circuit board as electronic components and housed in housing 11.

[0061] The main body device 2 includes a processor 81. The processor 81 is an information processing unit that executes various information processes executed in the main body device 2, and is, for example, a CPU (Central Processing Unit). It may be composed of only a Graphics Processing Unit (GPU) or may be composed of a System-on-a-chip (SoC) including multiple functions such as a CPU function and a Graphics Processing Unit (GPU) function. The processor 81 executes various types of information processing by executing an information processing program (e.g., a game program) stored in a storage unit (specifically, an internal storage medium such as a flash memory 84, or an external storage medium inserted in the slot 23).

[0062] The main unit 2 includes a flash memory 84 and a dynamic random access memory (DRAM) 85 as examples of internal storage media built into the main unit 2. The flash memory 84 and the DRAM 85 are connected to the processor 81. The flash memory 84 is a memory used mainly for storing various data (which may be programs) stored in the main unit 2. The DRAM 85 is a memory used for temporarily storing various data used in information processing.

[0063] The main device 2 includes a slot interface (hereinafter abbreviated as "I / F") 91. The slot I / F 91 is connected to the processor 81. The slot I / F 91 is connected to the slot 23, and reads and writes data from and to a predetermined type of storage medium (e.g., a dedicated memory card) inserted in the slot 23 in response to an instruction from the processor 81.

[0064] The processor 81 appropriately reads and writes data from and to the flash memory 84, DRAM 85, and each of the above storage media to execute the above information processing.

[0065] The main unit 2 includes a network communication unit 82. The network communication unit 82 is connected to the processor 81. The network communication unit 82 communicates with an external device via a network (specifically, wireless communication). In this embodiment, the network communication unit 82 connects to a wireless LAN and communicates with an external device using a method conforming to the Wi-Fi standard as a first communication mode. The network communication unit 82 also performs wireless communication with other main units 2 of the same type using a predetermined communication method (for example, communication using a unique protocol or infrared communication) as a second communication mode. Note that the wireless communication using the second communication mode enables wireless communication with other main units 2 located within a closed local network area, and realizes a function that enables so-called "local communication" in which data is transmitted and received by directly communicating between multiple main units 2.

[0066] The main unit 2 includes a controller communication unit 83. The controller communication unit 83 is connected to the processor 81. The controller communication unit 83 performs wireless communication with the left controller 3 and / or the right controller 4. Any communication method may be used between the main unit 2 and the left controller 3 and right controller 4, but in this embodiment, the controller communication unit 83 performs communication with the left controller 3 and the right controller 4 in accordance with the Bluetooth (registered trademark) standard.

[0067] The processor 81 is connected to the left terminal 17, the right terminal 21, and the lower terminal 27. When the processor 81 performs wired communication with the left controller 3, it transmits data to the left controller 3 via the left terminal 17 and receives operation data from the left controller 3 via the left terminal 17. When the processor 81 performs wired communication with the right controller 4, it transmits data to the right controller 4 via the right terminal 21 and receives operation data from the right controller 4 via the right terminal 21. When the processor 81 performs communication with the cradle, it transmits data to the cradle via the lower terminal 27. Thus, in this embodiment, the main unit 2 can perform both wired communication and wireless communication with the left controller 3 and the right controller 4. When the main unit 2 alone or an integrated device with the left controller 3 and the right controller 4 attached to the main unit 2 is attached to the cradle, the main unit 2 can output data (e.g., image data and audio data) to a stationary monitor or the like via the cradle.

[0068] Here, the main unit 2 can communicate with multiple left controllers 3 simultaneously (in other words, in parallel). The main unit 2 can also communicate with multiple right controllers 4 simultaneously (in other words, in parallel). Therefore, multiple users can simultaneously input to the main unit 2 using each set of left controller 3 and right controller 4. As an example, while a first user is making an input to the main unit 2 using a first set of left controller 3 and right controller 4, a second user is simultaneously making an input to the main unit 2 using a first set of left controller 3 and right controller 4. It is possible to input to the main unit 2 using the second set of rollers 3 and right controller 4.

[0069] The main device 2 includes a touch panel controller 86, which is a circuit that controls the touch panel 13. The touch panel controller 86 is connected between the touch panel 13 and the processor 81. The touch panel controller 86 generates data indicating, for example, the position where a touch input has been performed based on a signal from the touch panel 13, and outputs the data to the processor 81.

[0070] The display 12 is also connected to the processor 81. The processor 81 displays on the display 12 an image generated (for example, by executing the above-mentioned information processing) and / or an image acquired from the outside.

[0071] The main unit 2 includes a codec circuit 87 and speakers (specifically, a left speaker and a right speaker) 88. The codec circuit 87 is connected to the speaker 88 and the audio input / output terminal 25, and is also connected to the processor 81. The codec circuit 87 is a circuit that controls the input and output of audio data to and from the speaker 88 and the audio input / output terminal 25.

[0072] The main unit 2 includes a power control unit 97 and a battery 98. The power control unit 97 is connected to the battery 98 and the processor 81. Although not shown, the power control unit 97 is also connected to each unit of the main unit 2 (specifically, each unit that receives power from the battery 98, the left terminal 17, and the right terminal 21). The power control unit 97 controls the supply of power from the battery 98 to each of the above-mentioned units based on instructions from the processor 81.

[0073] Furthermore, battery 98 is connected to lower terminal 27. When an external charging device (e.g., a cradle) is connected to lower terminal 27 and power is supplied to main unit 2 via lower terminal 27, battery 98 is charged with the supplied power.

[0074] Fig. 7 is a block diagram showing an example of the internal configuration of the main unit 2, the left controller 3, and the right controller 4. Note that details of the internal configuration of the main unit 2 are omitted in Fig. 7 because they are shown in Fig. 6.

[0075] The left controller 3 includes a communication control unit 101 that communicates with the main unit 2. As shown in FIG. 7, the communication control unit 101 is connected to each component including the terminal 42. In this embodiment, the communication control unit 101 can communicate with the main unit 2 by both wired communication via the terminal 42 and wireless communication not via the terminal 42. The communication control unit 101 controls the communication method by which the left controller 3 communicates with the main unit 2. That is, when the left controller 3 is attached to the main unit 2, the communication control unit 101 communicates with the main unit 2 via the terminal 42. Also, when the left controller 3 is detached from the main unit 2, the communication control unit 101 performs wireless communication with the main unit 2 (specifically, the controller communication unit 83). The wireless communication between the controller communication unit 83 and the communication control unit 101 is performed according to, for example, the Bluetooth (registered trademark) standard.

[0076] The left controller 3 also includes a memory 102, such as a flash memory. The communication control unit 101 is configured with, for example, a microcomputer (also called a microprocessor), and executes firmware stored in the memory 102 to perform various processes.

[0077] The left controller 3 includes buttons 103 (specifically, buttons 33 to 39, 43, 44, and 47). The left controller 3 also includes a left stick 32. Each button 103 and the left stick 32 stores information about an operation performed on the button 103 and the left stick 32 in an appropriate manner. The signal is repeatedly output to the communication control unit 101 at the appropriate timing.

[0078] The left controller 3 includes an inertial sensor. Specifically, the left controller 3 includes an acceleration sensor 104. The left controller 3 also includes an angular velocity sensor 105. In this embodiment, the acceleration sensor 104 detects the magnitude of acceleration along three predetermined axes (for example, the x, y and z axes shown in FIG. 4). The acceleration sensor 104 may detect acceleration in one or two axial directions. In this embodiment, the angular velocity sensor 105 detects angular velocity around three predetermined axes (for example, the x, y and z axes shown in FIG. 4). The angular velocity sensor 105 may detect angular velocity around one or two axes. The acceleration sensor 104 and the angular velocity sensor 105 are each connected to the communication control unit 101. The detection results of the acceleration sensor 104 and the angular velocity sensor 105 are repeatedly output to the communication control unit 101 at appropriate timing.

[0079] The communication control unit 101 acquires information related to the input (specifically, information related to the operation, or the detection results by the sensors) from each input unit (specifically, each button 103, left stick 32, each sensor 104 and 105). The communication control unit 101 transmits operation data including the acquired information (or information obtained by performing a specified process on the acquired information) to the main unit 2. The operation data is repeatedly transmitted once every specified time. The interval at which the information related to the input is transmitted to the main unit 2 may or may not be the same for each input unit.

[0080] By transmitting the above operation data to the main unit 2, the main unit 2 can obtain the input performed on the left controller 3. That is, the main unit 2 can determine the operations on the buttons 103 and the left stick 32 based on the operation data. In addition, the main unit 2 can calculate information regarding the movement and / or attitude of the left controller 3 based on the operation data (specifically, the detection results of the acceleration sensor 104 and the angular velocity sensor 105).

[0081] The left controller 3 is equipped with a power supply unit 108. In this embodiment, the power supply unit 108 has a battery and a power control circuit. Although not shown, the power control circuit is connected to the battery and to each part of the left controller 3 (specifically, each part that receives power from the battery).

[0082] As shown in FIG. 7, the right controller 4 includes a communication control unit 111 that communicates with the main unit 2. The right controller 4 also includes a memory 112 that is connected to the communication control unit 111. The communication control unit 111 is connected to each component including the terminal 64. The communication control unit 111 and the memory 112 have the same functions as the communication control unit 101 and the memory 102 of the left controller 3. Therefore, the communication control unit 111 can communicate with the main unit 2 by both wired communication via the terminal 64 and wireless communication (specifically, communication in accordance with the Bluetooth (registered trademark) standard) that does not go through the terminal 64, and controls the method of communication that the right controller 4 uses with the main unit 2.

[0083] The right controller 4 has input units similar to those of the left controller 3. Specifically, it has buttons 113, a right stick 52, and inertial sensors (an acceleration sensor 114 and an angular velocity sensor 115). These input units have the same functions as those of the left controller 3, and operate in the same manner.

[0084] The right controller 4 is equipped with a power supply unit 118. The power supply unit 118 has the same functions as the power supply unit 108 of the left controller 3, and operates in the same manner.

[0085] [Outline of game processing in this embodiment] Next, an overview of the operation of the game processing executed by the game system 1 according to this embodiment will be described. As described above, in the game system 1, the main unit 2 is configured so that the left controller 3 and the right controller 4 can be attached and detached. When playing a game with the left controller 3 and the right controller 4 attached to the main unit 2, game images are output to the display 12. In addition, when the main unit 2 alone with the left controller 3 and the right controller 4 removed is attached to a cradle, the main unit 2 can also output game images to a stationary monitor or the like via the cradle. In this embodiment, the latter mode of game play will be described as an example. Specifically, the main unit 2 alone with the left controller 3 and the right controller 4 removed is attached to a cradle, and the main unit 2 outputs game images and the like to a stationary monitor or the like via the cradle. In the following description, the left controller 3 or the right controller 4 may be simply called a controller.

[0086] In the following description, unless otherwise specified, it is assumed that a right-handed user plays the game while holding the right controller 4 in his / her right hand. If the user is left-handed, the process described below may be performed using the left controller 3 instead of the right controller 4.

[0087] [About the assumed game] The game assumed in this embodiment is a badminton game played in a virtual three-dimensional space. In this embodiment, a singles match against a CPU is described as an example. Of course, the match may be a match between players, with another player controlling the opponent. In the case of a match between players, two players may play against each other using one game device, or two game devices may be connected via a network to play a communication match. Also, the match may be a doubles match instead of a singles match.

[0088] FIG. 8 shows an example of a game image of a badminton game according to this embodiment. The game image shown in FIG. 8 is an image captured by a virtual camera in a three-dimensional virtual space (virtual court). Two player characters are displayed in the game image (within the virtual court). A player character object (hereinafter referred to as a player character) PC, which is an object to be operated by a user, is placed in the court on the front side of the virtual court (the player's court). In addition, an opponent player character (hereinafter referred to as an opponent character) NPC is placed in the court on the back side beyond the net (the opponent's court). In addition, each player character holds a racket object (hereinafter simply referred to as a racket) in his right hand. In addition, a shuttle object (hereinafter simply referred to as a shuttle) 203, which is a moving object, is also displayed in the game image.

[0089] The basic specifications and operation method of the badminton game according to this embodiment will be described. First, in this game, the user can make the player character PC swing the racket by swinging (performing a swing input) a controller that resembles a racket. Here, in this embodiment, the player character PC is basically made to perform one of the following three types of motions as the motion of swinging the racket (hereinafter, racket swing animation). That is, the player character PC is made to perform one of the racket swing animations, namely, an overhead stroke (hereinafter, simply called "over"), a forehand underhand stroke (hereinafter, simply called "under forehand"), or a backhand underhand stroke (hereinafter, simply called "under backhand").

[0090] Figures 9 to 15 show the three types of racket swing animations performed by the player character PC. 9 to 11 show examples of an over-the-top racket swing animation performed by a player character PC. As shown in these figures, the player character PC swings the racket downward from above. In order to perform such a movement, the user performs a swing input of swinging the controller (in this case, the right controller 4, since this is an example of a right-handed player) downward from above. In other words, in order to have the player character PC perform an over-the-top racket swing animation, the user is required to perform a swing input (downward swing) in which the user takes a position in which the controller is raised (corresponding to the state in FIG. 9) and then swings the controller downward from the user's perspective (corresponding to the state in FIG. 10 to FIG. 11).

[0091] 12 and 13 are examples of an under-forehand racket swing animation performed by a player character PC. As shown in these figures, the player character PC performs a movement of swinging the racket upward to the left (from the right side of the player character PC). In order to make the player character PC perform such an under-forehand racket swing animation, the user is required to hold the controller to his / her right side (corresponding to the state in FIG. 12) and then swing the controller upward to the left as seen by the user (corresponding to the state in FIG. 13), thereby inputting a swing (swinging upward to the left).

[0092] 14 and 15 are examples of an under-back racket swing animation performed by a player character PC. As shown in these figures, the player character PC performs a movement of swinging the racket up (from the left side of the player character PC) toward the upper right. In order to make the player character PC perform such an under-back racket swing animation, the user is required to hold the controller on his / her left side (corresponding to the state in FIG. 14) and then swing the controller toward the upper right as seen by the user (corresponding to the state in FIG. 15), thereby inputting a swing (swinging up toward the upper right).

[0093] Next, the movement of the player character PC will be described. In this game, the movement of the player character PC is automatically controlled. Specifically, the player character PC automatically moves in the player's own court to a position where the shuttle 203 can be hit back according to the movement trajectory (movement direction) of the shuttle 203 (hereinafter, such movement is called automatic movement). For example, assume that the player character PC is located on the left side of the player's own court and the shuttle 203 moves toward the right side of the player's own court. In this case, a position where the shuttle 203 can be hit back (for example, any position on the left side of the trajectory of the shuttle 203) is calculated. Then, the player character PC is controlled to automatically move toward the calculated position (hereinafter, automatic movement destination). When calculating the automatic movement destination, parameters such as the movement speed set for the player character PC, the movement direction and movement speed of the shuttle 203, and the position of the player character PC at the time when the shuttle 203 starts to move may be used. When calculating the auto-movement destination of the player character PC, the auto-movement destination may be calculated so that a position closer to the center of the x-axis of the player's court is given priority as the auto-movement destination with respect to whether the left or right side of the trajectory of the shuttlecock 203 is designated as the auto-movement destination. For example, if the position of the player character PC at the time when the shuttlecock 203 starts moving is located near the right end of the player's court, and the shuttlecock 203 moves on a trajectory that passes to the left of the current position of the player character PC, an arbitrary position on the left side of the trajectory of the shuttlecock 203 may be calculated as the auto-movement destination. This makes it possible to control the position of the player character PC so that the player character PC is located as close to the center of the court as possible. If there is no time to move to a position on the court center side as viewed from the trajectory of the shuttlecock 203, a position on the court edge side as viewed from the trajectory of the shuttlecock 203 may be calculated as the auto-movement destination instead.

[0094] In this way, the badminton game of this embodiment is a game in which the movement of the player character PC is left to automatic movement, and the user only needs to concentrate on swinging the controller. In other words, the game is one in which the user swings the controller in an appropriate swing direction (a swing direction that allows the user to hit the shuttlecock 203 back) from among the three swing directions (swing directions) mentioned above, depending on the timing when the shuttlecock 203 approaches.

[0095] Next, a method for detecting a swing input in this embodiment will be described. In this embodiment, the controller transmits operation data including the output of the inertial sensor to the main unit 2 by the above-mentioned method. Then, if the operation data satisfies a condition related to the swing input, it is determined that a swing input has been made to the controller. The condition related to the swing input may be set appropriately, but for example, in this embodiment, it may be determined that a swing input has been made to the controller when the operation data indicates that the magnitude of acceleration related to a predetermined axis of the inertial sensor exceeds a threshold value. Then, if it is determined that a swing input has been made to the controller, the main unit 2 performs a process described below to determine what kind of swing was made, that is, the direction of the swing.

[0096] Next, an overview of the process for determining how to swing the controller (swing direction) performed in the badminton game of this embodiment will be described. FIG. 16 is a diagram showing an overview of a badminton game process using a swing direction determination method in this embodiment and the result of the determination. In this embodiment, a trained model generated using deep learning is used to determine a swing input made by a user. The upper half of FIG. 16 shows the process of generating the trained model. The lower half shows an overview of the badminton game process according to this embodiment using the trained model.

[0097] [About the learning process] First, the generation (learning process) of the trained model will be briefly described. In this embodiment, a plurality of data sets (hereinafter referred to as teacher data) each including a set of raw data obtained by the swing input of the controller and a label indicating the swing are prepared as a learning data set. Specifically, as the raw data, a data set consisting of acceleration data and angular velocity data gradually acquired during the period when one swing input is being performed and the attitude data of the controller is used (the attitude data is calculated based on the acceleration and angular velocity). Then, a label indicating the swing at that time is attached to each raw data. As the label, a label indicating one of the three types of swings, namely, over (swinging down), under fore (swinging up to the upper left), and under back (swinging up to the upper right), as described above, is used. In addition, about 5,000 pieces of teacher data are prepared for each swing (as an example). Then, the training data set consisting of a set of teacher data is subjected to deep learning to generate a trained model. The trained model may be, for example, an inference program incorporating trained parameters adjusted by the deep learning.

[0098] Next, an overview of the badminton game processing of this embodiment using the above-mentioned trained model will be briefly described.

[0099] [Similarity calculation] In this game processing, first, the similarity is calculated using swing input data relating to one swing input by the user and a trained model relating to the above three types of swings. The swing input data includes operation data (acceleration and angular velocity data) and controller attitude data calculated from the operation data. By inputting the swing input data into the trained model, the similarity for each of the above three types of swings is calculated as an output result from the trained model (inference processing). In this embodiment, an example of the similarity value will be described in which a value is calculated within the range of -50 to +50. The value is based on 0, and the higher the + value, the higher the similarity, and the higher the - value, the lower the similarity. For example, when a certain swing input When force data is input into the trained model, the trained model outputs something like "Over: +10, Under Fore: -10, Under Back: -20."

[0100] Here, a supplementary explanation will be given regarding the calculation of similarity (judgment of similarity). As described above, in this embodiment, the acceleration data and angular velocity data gradually acquired during the period in which the swing input is being performed, and the controller posture data are used as teacher data. Therefore, in this embodiment, it can be said that the similarity is calculated based on the progress of the change in the acceleration, angular velocity, and controller posture during the period in which the swing input is being performed. In other words, during the period from the start to the end of the user's swing input, a data set consisting of the acceleration, angular velocity, and controller posture is obtained for each predetermined unit time (for example, one frame). Then, the similarity between these data sets obtained during this period and a learning data set (which uses a similar data format) is judged. In addition, the similarity between the data set related to a single frame and the learning data set is judged, instead of the similarity between the data set related to each frame and the data set of multiple frames from the start to the end of the swing input.

[0101] As a conceptual example of the similarity determination method in this embodiment, an example focusing on values ​​indicating the transition of the coordinates of the controller in a predetermined coordinate system, which are calculated based on the acceleration and angular velocity of the controller, will be given. In this embodiment, among the coordinates of the controller in a three-dimensional coordinate system set when the controller is in a reference posture, the focus is on the change in coordinates on the xy axis from the start of swinging the controller to the end of swinging. Figs. 17 to 19 are waveforms (graphs) showing an example of the transition of the coordinates of the controller in a predetermined coordinate system relating to each of the above three types of swinging. Based on the swing input data (attitude data included in it) relating to one swing input, such waveforms can be derived as the transition of the coordinates of the controller on the x and y axes in the predetermined coordinate system. Fig. 17 shows a waveform in the case of over, Fig. 18 shows a waveform in the case of under fore, and Fig. 19 shows a waveform in the case of under back. In each waveform, the horizontal axis corresponds to the x axis in the predetermined coordinate system, and the vertical axis corresponds to the y axis. Swinging movements vary from person to person, and the changes in coordinates on specific coordinate axes of the controller shown in Figures 17 to 19 are just one example.As this shows, there are differences in the values ​​obtained depending on the swinging method, and the waveforms that can be derived from these also differ.

[0102] In addition, although not shown in the figure, a value indicating the transition of the coordinates of the z-axis of the controller in a predetermined coordinate system is derived, and the value may be used in the similarity determination. As another example, instead of a value indicating the coordinates of the controller in a predetermined coordinate system, a value indicating the transition of the change in acceleration or angular velocity for each axis may be derived, and such a value may be used in the similarity determination. Such values ​​are included in the learning data set (each teacher data) and the swing input data. In this embodiment, the swing of the controller is determined by utilizing the fact that there is a difference in the value obtained depending on the swing. The learning data set (each teacher data) used in this embodiment is prepared by attaching a label indicating the swing direction to raw data obtained in advance by actually swinging the controller. Then, the swing input data based on the swing operation of the user in the actual game is input to the trained model generated using the learning data set prepared in this way, and the similarity between each of the three swings and the current swing operation is calculated and output. Then, a process is performed in which it is determined that the current swing operation was performed for the swing that is considered to have the highest similarity.

[0103] In this embodiment, an example is shown in which the acceleration, angular velocity, and (controller) posture data are used as the teacher data, but in other embodiments, posture data may not be included in the teacher data. In other words, only acceleration and angular velocity may be used without using posture data to determine similarity. However, by using posture data to determine similarity as in this embodiment, improvement in the accuracy of the determination can be expected.

[0104] [Determining the swing direction used in game processing] Once the similarity of each of the three swings is obtained as described above, the swing associated with the user's swing input is determined by selecting from these three similarities the one with a similarity equal to or greater than a predetermined threshold (e.g., +1). If there are two or more swings with a similarity equal to or greater than the predetermined threshold, the swing with the highest similarity is selected from among them. Then, if it can be determined which of the three swings it is, it can be treated as if the controller was swung in the swing direction corresponding to each swing. In other words, it is determined that the swing with the highest similarity was made from among these three swings, and the subsequent game processing is carried out.

[0105] [Game processing based on the roll] Next, game processing is performed based on the swing (swing direction) determined above. Specifically, it is determined whether or not the shuttlecock 203 can be hit back based on the swing and the positional relationship between the player character PC and the shuttlecock 203 (in other words, the timing of swinging the controller). If it is determined that the shuttlecock 203 can be hit back, a racket swing animation according to the swing (swing direction) is played back, and processing is performed to hit (move) the shuttlecock 203 back to the opponent's court.

[0106] Here, a supplementary explanation will be given regarding the positional relationship between the player character PC and the shuttlecock 203 that allows a return shot. In this embodiment, a three-dimensional area in which the shuttlecock 203 can be returned is predefined according to each of the above three types of swinging. In the following explanation, the area in which an overshot is possible is called the "overshot possible area", the area in which an underforeshot is possible is called the "underforeshot possible area", and the area in which an underbackshot is possible is called the "underbackshot possible area". These three areas may also be collectively called the "shot possible area".

[0107] FIG. 20 shows an example of the setting of the above-mentioned shot possible area. The shot possible area is provided in a position near the front of the player character PC. Regarding each area, first, the over possible area is a vertically elongated area located in front of the head of the player character PC and extending upward. The under fore possible area is a horizontally elongated area that is approximately below the chest position as seen from the player character PC and extends from the center of the player character PC to the right. The under back possible area is a horizontally elongated area that is approximately below the chest position as seen from the player character PC and extends from the center of the player character PC to the left. Then, when the shuttlecock 203 is in any of these areas, if a swing corresponding to each area is performed, the shuttlecock 203 can be hit back. Note that the shape, position, and size of each area are merely examples, and the shape of the area may be a spherical area, for example.

[0108] [About missed shots] Here, in this embodiment, if a swing input is made when the shuttlecock 203 is not within the shot possible area, it is treated as a "miss swing" in principle. That is, only a racket swing animation corresponding to the swing determined using the learned model is played. However, as an exception, in this embodiment, a process of generating a "miss shot" is also performed under certain conditions. Specifically, in a situation where the shuttlecock 203 should be hit back with an under-forehand or under-backhand, if a swing corresponding to an overhand is performed, it becomes a "miss shot". A situation where the shuttlecock 203 should be hit back with an under-forehand or under-backhand is a timing when the shuttlecock 203 is within the under-forehand possible area or under-backhand possible area. In this case, a racket swing animation for a "miss shot" is played, and the shuttlecock 203 can be hit back (for the time being). However, when a miss shot is hit back, the moving speed of the hit shuttlecock 203 is changed. In other words, when the shuttlecock 203 is hit back with a bad shot, the momentum of the shuttlecock 203 is reduced, making it easier for the opponent to gauge the timing of the return (a disadvantageous situation for the player). In another example, when a swing input is made when the shuttlecock 203 is not within the shot possible area, it is not necessary to play back the racket swing animation corresponding to the determined swing.

[0109] In addition, when the shuttlecock 203 should be hit over, if the swing is made under the forehand or under the backhand, it will be called a "swing and miss."

[0110] [About Smash] Furthermore, in this embodiment, when the shuttlecock 203 is within the over-hit area and the shuttlecock is at a height equal to or higher than a certain level and an over-hit swing is performed, a process of generating a "smash" is also performed. For example, as shown in FIG. 20, the upper half of the over-hit area is also defined as the "smashable area". When the shuttlecock 203 is within the "smashable area" and an over-hit swing is performed, a "smash" occurs. In this case, a racket swing animation for smashes that is slightly different from the over-hit swing animation is played, and the speed of the shuttlecock 203 that is hit back is controlled to move faster than when it is hit back over.

[0111] [About deceleration adjustment near the ground] In addition to the above-mentioned process related to swing judgment, in this embodiment, when the shuttle 203 is close to the ground of the virtual court (when the height from the ground is equal to or less than a predetermined threshold value), a process of decelerating the moving speed of the shuttle 203 at a rate according to the height from the ground is also performed. For example, when the shuttle 203 is at a height of 40 cm or less from the ground in the virtual space, the moving speed of the shuttle 203 is reduced to 90% of the original speed within a range of less than 40 cm and 30 cm or more, the moving speed of the shuttle 203 is reduced to 75% of the original speed within a range of less than 30 cm and 20 cm or more, the moving speed of the shuttle 203 is reduced to 60% of the original speed within a range of less than 20 cm and 10 cm or more, and the moving speed of the shuttle 203 is reduced to 50% of the original speed below 10 cm. In this way, by temporarily reducing the moving speed when the shuttle 203 is somewhat close to the ground, a user can be given a grace period to perform a swing input that corresponds to an under-forehand or under-backhand swing. In addition, in this embodiment, the processing of a badminton game is performed, but in reality, the center of gravity of a badminton shuttlecock is biased toward the cork part due to its shape. Therefore, when the movement of the shuttlecock 203 is controlled by physical calculation in the game processing, the falling speed (acceleration) of the shuttlecock 203 increases as it approaches the ground, which may make it difficult for the user to get the timing right. As a result, the possibility that the user will not be able to make a swing input related to an under-forehand or under-backhand swing increases. Therefore, by performing the deceleration adjustment as described above, it is possible to give the user more time to make a swing input, which is particularly useful control in a badminton game.

[0112] [Details of the badminton game processing in this embodiment] Next, the badminton game processing in this embodiment will be described in more detail with reference to FIGS.

[0113] [About data usage] First, various data used in the badminton game process will be described. Fig. 21 is a memory map showing an example of various data stored in the DRAM 85 of the main unit 2. The DRAM 85 of the main unit 2 stores a game program 301, a trained model 302, The data stored include layer character data 303, opponent character data 304, shuttle movement parameters 305, operation data 306, swing determination data 307, swing direction information 308, playback animation designation information 309, progress management data 310, swing state flag 311, shot occurrence flag 312, etc.

[0114] The game program 301 is a program for executing the badminton game processing in this embodiment.

[0115] The trained model 302 is a stored trained model generated by deep learning as described above. In this embodiment, the trained model 302 is a trained model that is incorporated as part of a game application (as game data) and loaded into the DRAM 85 for use. In other words, a trained model that has been prepared in advance is used. In other embodiments, the trained model may be downloaded and acquired from a predetermined server at a predetermined timing, such as when the game starts.

[0116] The player character data 303 is data related to the player character PC. Fig. 22 shows an example of the data configuration of the player character data 303. The player character data 303 includes appearance data 331, character position data 332, character posture data 333, auto movement destination data 334, player state data 335, animation data 336, and the like.

[0117] The appearance data 331 is data for configuring the appearance of the player character PC. The appearance data 331 includes, for example, modeling data of a three-dimensional model of the player character PC, texture data, and the like.

[0118] The character position data 332 is coordinate data for indicating the current position of the player character PC. The character posture data 333 is data for indicating the current posture of the player character PC (such as the direction in which the player character PC is facing).

[0119] The auto movement destination data 334 is coordinate data indicating the position to be the auto movement destination.

[0120] The player state data 335 is data for managing the current state of the player character PC (hereinafter, player state). In this embodiment, the following states are used as the player state. And, in the player state data 335, information indicating any one of the following player states is set. "Moving": Indicates the state in which the player character PC is moving towards the auto movement destination. "Over": Indicates the state in which the player character PC is performing an over action. "Smash": Indicates the state in which the player character PC is performing a smash action. "Underfore": Indicates a state in which the player character PC is performing an underfore action. "Underback": Indicates the state in which the player character PC is performing the underback action. "Miss shot": Indicates a state in which the player character PC is performing a miss shot action. "Waiting": Indicates a state other than any of the above states.

[0121] The animation data 336 is data of animations corresponding to various movements of the player character PC. The animation data 336 includes the racket swing animation (including animations of miss shots and smashes) and animations of the player character PC during "standby". This includes data such as animations and animations during auto movement.

[0122] With regard to the animation data 336, data of a plurality of animations may be prepared as racket swing animations corresponding to one swing. These plurality of animations may be prepared according to the height of the shuttlecock 203. For example, as animation data corresponding to "over," a plurality of animations according to the height of the shuttlecock 203 may be prepared. Then, the "over" animation according to the height of the shuttlecock 203 when the swing input related to the over is performed may be selected and played.

[0123] 21, the other-party character data 304 is data relating to the other-party character NPC. The contents thereof are the same as those of the player character data 303.

[0124] The shuttle movement parameters 305 are data for controlling the movement of the shuttle 203. The shuttle movement parameters 305 include various parameters indicating, for example, the current position, movement trajectory, and movement speed of the shuttle 203, and the current state of the shuttle 203 (whether the shuttle 203 has been mis-shot, etc.).

[0125] The operation data 306 is data obtained from the controller, and is data indicating the operation contents of the user. FIG. 23 shows an example of the data configuration of the operation data 306. The operation data 306 includes at least digital button data 361, right stick data 362, left stick data 363, right inertial sensor data 364, and left inertial sensor data 365. The digital button data 361 is data indicating the pressed state of various buttons of the controller. The right stick data 362 is data for indicating the operation contents of the right stick 52. Specifically, it includes two-dimensional data of x and y. The left stick data 363 is data for indicating the operation contents of the left stick 32. The right inertial sensor data 364 is data indicating the detection results of the inertial sensors of the acceleration sensor 114 and the angular velocity sensor 115 of the right controller 4. Specifically, it includes three-axis acceleration data and three-axis angular velocity data. The left inertial sensor data 365 is data that indicates the detection results of the inertial sensors, such as the acceleration sensor 104 and the angular velocity sensor 105 of the left controller 3. Note that in the following description, the right inertial sensor data 364 and the left inertial sensor data 365 may be collectively referred to as inertial sensor data.

[0126] Returning to FIG. 21, the swing judgment data 307 is data for judging whether or not a swing input has been made, and is also data indicating the contents of the swing input (during the period when the swing input is being made). Specifically, the swing judgment data 307 is a buffer capable of storing the acceleration data and angular velocity data obtained from each of the inertial sensors and the controller attitude data calculated based on them for a predetermined period (for example, several tens of frames). The attitude data may be data indicated by a three-axis vector of x, y, and z in the local coordinate system of the controller, for example. In this embodiment, the swing judgment data 307 is used to detect the swing input as described above, and to perform a swing style judgment process using the learned model.

[0127] The swing information 308 is information indicating the swing direction of the controller, obtained as a result of the swing determination using the trained model. In other words, it is information indicating the swing direction determined to be the most similar among the three swing directions. In this embodiment, information indicating one of "over", "under fore", "under back" or "none" is set. The swing information 308 can also be said to be information indicating the swing direction. As described above, in this embodiment, "over" is a downward swing, and "under fore" is a swing to the upper left. A swing to the right and an "under back" swing correspond to a swing to the upper right (both for right-handed players). Therefore, if you can determine the swing style, you can also determine the swing direction.

[0128] The playback animation designation information 309 is information that designates an animation to be played back for the player character PC.

[0129] The progress management data 310 is data for managing the progress of a match, and specifically includes data such as a serve flag indicating whether or not a serve is being made, and score information indicating the score situation.

[0130] The swing state flag 311 is a flag for indicating whether or not the controller is in a "swing state" in which it is being swung. The initial value is off, and when in a swing state, the flag is set to on.

[0131] The shot occurrence flag 312 is a flag for indicating whether or not a state in which a hit (shot) of the shuttlecock 203 occurs as a result of a swing input by the user. The initial value is off, and when a shot occurs, the flag is set to on.

[0132] In addition, various data necessary for game processing is also generated as appropriate and stored in the DRAM 85.

[0133] [Details of the processing performed by Processor 81] Next, the badminton game processing according to this embodiment will be described in detail. Note that the flowchart shown below is merely an example of the processing procedure. Therefore, the processing order of each step may be changed if the same result is obtained. Also, the values ​​of the variables and the threshold values ​​used in the determination step are merely examples, and other values ​​may be adopted as necessary.

[0134] 24 is a flowchart showing the details of the badminton game process. Execution of this process is started when the user performs a predetermined operation to start a match. Note that the process loop of steps S2 to S3 in this flowchart is repeatedly executed for each frame.

[0135] First, in step S1, the processor 81 executes a preparation process for preparing to start a match. In this process, a virtual three-dimensional space in which a virtual court is arranged is constructed, and various objects such as a player character PC and an opponent character NPC are arranged. Then, a game image is generated by capturing an image of the virtual space in which the various objects are arranged with a virtual camera, and the image is output to a stationary monitor or the like. In addition, various data used in the following processes are initialized. After that, for example, a process for displaying a match start performance is performed, and the match begins.

[0136] Next, in step S2, processor 81 executes match processing. Figure 25 is a flowchart showing the details of the match processing.

[0137] [Controlling the player character] 25, first, in step S11, processor 81 executes a player character control process. FIG 26 is a flowchart showing details of the player character control process. In FIG 26, first, in step S21, processor 81 obtains operation data 306.

[0138] [Auto movement control] Next, in step S22, the processor 81 performs automatic movement control of the player character PC. Specifically, processor 81 determines the destination of shuttle 203 based on shuttle movement parameters 305. Furthermore, processor 81 calculates a position where shuttle 203 can be hit back as auto-movement destination data 334. Then, processor 81 performs control to move player character PC toward the auto-movement destination (updates character position data 332). Processor 81 also manages the transition of player state accompanying start and end of movement, and appropriately sets information indicating "waiting" or "moving" in player state data 335. Processor 81 also appropriately sets information specifying an animation corresponding to the player state of "waiting" or "moving" in playback animation specification information 309.

[0139] [Processing related to swing input] Next, in step S23, the processor 81 executes a swing input-related process. In this process, detection of a swing input, a process of determining a swing direction using the trained model, a process of determining whether a shot has occurred, and the like are performed.

[0140] FIG. 27 is a flowchart showing details of the swing input-related process. In FIG. 27, first, in step S31, processor 81 determines whether or not the current state is a swing state based on swing state flag 311. If the result of this determination is that the current state is not a swing state (NO in step S31), in step S32, processor 81 determines whether or not the start of a swing input has been detected, that is, whether or not the swing state has started, based on swing determination data 307. Any method may be used to detect the start and end of the swing state, but for example, it may be determined that the swing state has started when the change in acceleration indicated by the acceleration data included in the above-mentioned operation data 306 becomes equal to or greater than a predetermined threshold. Furthermore, regarding the end of the swing state, it may be determined that the swing state has ended when the magnitude of the acceleration indicated by the acceleration data reaches a peak after it is determined that the swing state has started, and then the magnitude of the acceleration attenuates to a certain degree. Then, it may be determined that the swing input has been performed with the end of the swing state.

[0141] If the result of the above determination is that the swing state has not started (NO in step S32), in step S33, processor 81 changes the posture of the player character PC (and the posture of the racket) based on the inertial sensor data. That is, processor 81 calculates the posture of the controller at that time based on the inertial sensor data, and reflects this posture in the posture of the player character PC. In other words, if the controller is not being swung, the movement and posture change of the controller itself performed by the user will be reflected in the postures of the player character PC and the racket (in other words, the racket will be held in a ready state). Thereafter, processor 81 ends the swing input-related processing.

[0142] On the other hand, if the result of the determination in step S32 above is that the swing state has started (YES in step S32), processor 81 sets swing state flag 311 to ON in step S .

[0143] Next, in step S35, processor 81 updates swing determination data 307. Specifically, processor 81 stores the inertial sensor data included in the operation data in swing determination data 307. That is, during the swing state, a process is executed in which the inertial sensor data is accumulated in swing determination data 307 for each frame. At this time, posture data indicating the posture of the controller is also calculated based on the acceleration and angular velocity data, and this is also accumulated in swing determination data 307. After that, processor 81 ends the swing input related process.

[0144] Next, a process when it is determined in step S31 that the swing state is in progress (YES in step S31) will be described. In this case, first, in step S36, processor 81 determines whether the swing state has ended. The method of determining whether the swing state has ended is as described above. If the result of the determination is that the swing state has not yet ended (NO in step S36), the process proceeds to step S35, where the swing determination data 307 is updated.

[0145] On the other hand, when it is determined that the swing state has ended (YES in step S36), in step S37, the processor 81 executes a swing determination process. In this process, a process for determining the swing performed this time is performed based on the similarity between the swing related to the swing state and the above three swings. FIG. 28 is a flowchart showing the details of the swing determination process. In FIG. 28, first, in step S51, the processor 81 acquires swing determination data 307. Next, in step S52, the processor 81 performs a calculation process of the above similarity using the swing determination data 307 and the trained model 302. Specifically, the processor 81 inputs data on the acceleration, angular velocity, and attitude of the controller during the period of the current swing state (swing input data in FIG. 16) to the trained model 302. As an output result, the similarity between the swing input (swing) performed this time by the user and each of over, under fore, and under back is calculated.

[0146] Next, in step S53, processor 81 determines whether or not the current game situation allows a serve or a smash. In this embodiment, whether or not a serve is possible can be determined based on progress management data 310 (the above-mentioned serve flag). Also, whether or not a smash is possible can be determined based on whether or not the position of shuttlecock 203 is within the above-mentioned smashable area.

[0147] If the result of the above determination is that it is possible to hit either a serve or a smash (YES in step S53), in step S54, processor 81 refers to the three calculated similarities and determines whether or not there is a swing whose value of similarity is a first threshold, specifically, "-1" or more. If the result of the determination is that there is a swing whose similarity is "-1" or more (YES in step S54), then in step S55, processor 81 sets information indicating the swing whose similarity is "-1" or more to swing information 308. As a result, information indicating any of "over", "under forehand", and "under backhand" is set in swing information 308. In addition, if there are two or more swings whose similarity is "-1" or more, the swing with the highest similarity is selected from these swings, and information indicating the swing is set in swing information 308. Thereafter, processor 81 ends the swing determination process.

[0148] On the other hand, if there is no swinging manner with a similarity of "-1" or more, that is, if the similarity of all three swinging manners is less than "-1" (NO in step S54), in step S56, processor 81 sets information of "no match" to swinging manner information 308. After that, processor 81 ends the swinging manner determination process.

[0149] Next, a case where it is determined in step S53 that neither a serve nor a smash is possible will be described. In this case, in step S57, processor 81 refers to the three calculated similarities and determines whether or not there is a swing whose similarity value is a second threshold value greater than the first threshold value, specifically, "+1" or more. If there is only one swing whose similarity is "+1" or more (YES in step S57), then in step S58, processor 81 sets information indicating that swing to swing information 308. If there are two or more swings, processor 81 selects the swing with the highest similarity from these swings and sets information indicating that swing to swing information 308. After that, processor 81 ends the swing determination process.

[0150] On the other hand, if there is no way to assign the number of similarities to the number of points with a similarity of +1 or more, i.e., if there are no ways to assign the number of points with a similarity of +1 or more, then If the similarity is less than "+1" (NO in step S57), the process proceeds to step S56, where the processor 81 sets information of "no match" to the swinging style information 308. After that, the processor 81 ends the swinging style determination process.

[0151] Here, in this embodiment, as described above, by setting the first threshold value smaller than the second threshold value, when a serve or smash is possible, it is easy to determine that a swing input has been made using one of the swings even if the similarity is somewhat low. The reason for using different threshold values ​​(determination conditions) between a serve or smash and a non-serve situation will be supplemented. First, a description will be given of a serve. When performing a serve operation in a badminton game, the user will perform an arm movement that swings up the controller (an under-forehand movement in this embodiment). However, it is considered that many users perform a smaller swing-up movement when serving compared to a swing-up movement when returning the ball in a situation other than a serve. In other words, although the movement is the same swing-up (under-forehand), the magnitude of the movement is expected to tend to be smaller. In this case, the amount of data related to the swing input used to calculate the similarity will be smaller (than in the case of a normal return), and there is a risk of the accuracy of the determination being reduced. For this reason, in this embodiment, when a serve is being performed, the judgment conditions are relaxed compared to when a serve is not being performed, so that it is more likely that an under-forehand swing has been determined to have been performed even if the degree of similarity is somewhat low.

[0152] Next, the case of a smash will be described. As with the case of a serve, the smash is also positioned as a countermeasure against the possibility of a decrease in recognition accuracy. Specifically, when a user recognizes that he is in a situation where he can hit a smash, for example, when the game processing visually indicates to the user that it is a chance for a smash, the user who recognizes this may panic and try to hit a smash. As a result of the user hastily swinging the controller to hit a smash, it is assumed that the swing of the controller will end up being rough. As a result of such a rough swing, there is a possibility that the judgment accuracy (in this case, the judgment of an over shot) will decrease. Therefore, even when the situation is such that a smash can be hit, the judgment conditions are relaxed to make it easier to make a smash (even with a rough swing).

[0153] The specific values ​​of the first threshold and the second threshold are not limited to those mentioned above, and may be appropriately adjusted from the viewpoint of game balance and the like.

[0154] 27, next, in step S38, processor 81 executes a shot occurrence determination process. This is a process for determining whether or not a shot (a return of shuttlecock 203) will occur based on the currently performed swing input and the positional relationship between shuttlecock 203 and player character PC, and for making necessary settings accordingly.

[0155] 29 and 30 are flowcharts showing the details of the shot occurrence determination process. In FIG. 29, first, in step S71, processor 81 determines whether swing information 308 is "over" or not. If the result of the determination is "over" (YES in step S71), processor 81 determines whether shuttlecock 203 is present in the over-enabled area as shown in FIG. 20 or not in step S72. If the result of the determination is that shuttlecock 203 is present (YES in step S72), processor 81 further determines whether shuttlecock 203 is present in the smashable area or not in step S73. If the result of the determination is that shuttlecock 203 is present in the smashable area (YES in step S73), processor 81 sets "smash" to player state data 335 in step S74. On the other hand, if shuttlecock 203 is not present in the smashable area (NO in step S73), processor 81 sets "over" to player state data 335 in step S75.

[0156] Next, in step S76, the processor 81 sets the shot occurrence flag 312 to ON.

[0157] Next, in step S77, processor 81 sets a racket swing animation to be performed by the player character PC. Specifically, processor 81 determines a racket swing animation to be played back based on player state data 335. Then, processor 81 sets information designating an animation related to the determined racket swing animation in playback animation designation information 309. For example, if player state data 335 is "over," an animation of a racket swing animation corresponding to "over" is set in playback animation designation information 309. Note that, as described above, when multiple animations according to the height of shuttlecock 203 are used as racket swing animations corresponding to one swing, an animation according to the height of shuttlecock 203 at this time point may be selected and set in playback animation designation information 309.

[0158] After that, the processor 81 ends the shot occurrence determination process.

[0159] Next, a case will be described where, as a result of the determination in step S72, shuttlecock 203 does not exist within the over-hit possible area (NO in step S72). In this case, in step S78, processor 81 determines whether shuttlecock 203 exists within the under-forehand possible area or the under-backhand possible area. If the result of the determination is that shuttlecock 203 exists (YES in step S78), in step S79, processor 81 sets "miss shot" in player state data 335. That is, when an under-forehand or under-backhand swing input is made in a situation where an over-hit should be made, a setting is made to treat it as a miss shot. Thereafter, the process proceeds to step S76 (note that since a miss shot is not an air shot, shot occurrence flag 312 is set to ON).

[0160] On the other hand, if the result of the above determination is that shuttlecock 203 is not present in the under-forehand possible area or the under-backhand possible area (NO in step S78), in step S80, processor 81 sets player state data 335 to "over". Next, in step S81, processor 81 sets shot occurrence flag 312 to OFF. That is, in this case, processing is performed to result in an "over" racket swing animation being performed, but no shot being generated, resulting in a whiff. Then, processing proceeds to step S77.

[0161] Next, a case where swing information 308 is not "over" as a result of the determination in step S71 above (NO in step S71) will be described. In this case, in step S82 of FIG. 30, processor 81 determines whether swing information 308 is "under fore" or not. If the result of the determination is "under fore" (YES in step S82), processor 81 sets "under fore" to player state data 335 in step S83. Next, in step S84, processor 81 determines whether shuttlecock 203 exists in the under fore possible area. If the result of the determination is that shuttlecock 203 exists (YES in step S84), the process proceeds to step S76 above. On the other hand, if shuttlecock 203 does not exist (NO in step S84), in step S85, processor 81 sets shot occurrence flag 312 to OFF. That is, a setting is made to cause a whiff. Then, the process proceeds to step S77 above.

[0162] On the other hand, if the result of the determination in step S82 above is that swing information 308 is not "under-forward" (NO in step S82), then in step S86, processor 81 determines whether swing information 308 is "under-back." If "under-back" is selected (YES in step S87), then in step S87 processor 81 sets "under-back" in player state data 335. Next, in step S88 processor 81 determines whether or not shuttlecock 203 is present within the under-back possible area. If the result of this determination is that shuttlecock 203 is present within the under-back possible area (YES in step S88), then processing proceeds to step S76. On the other hand, if shuttlecock 203 is not present (NO in step S88), then processing proceeds to step S85.

[0163] On the other hand, if the result of the judgment in step S86 above is that the swinging style information 308 is not "under back" (NO in step S86), "not applicable" is set in the swinging style information 308. In this case, in step S89, "standby" is set in the player status data 335. Thereafter, the process proceeds to step S85 above. In other words, if the user has made a swing input but it is judged to be similar to none of the three swinging styles above, the player character PC will not perform a racket swing animation.

[0164] 27, next, in step S39, processor 81 sets OFF to swing state flag 311. After that, processor 81 ends the swing input-related process.

[0165] [Player character animation control] Returning to FIG. 26, next, in step S24, processor 81 controls the playback of animation of player character PC. Processor 81 plays the animation (including racket swing animation) set in playback animation designation information 309. Furthermore, when playback of a predetermined animation ends, processor updates the contents of player state data 335 as appropriate. For example, when playback of a racket swing animation ends, "waiting" or "moving" is set in player state data 335 depending on the situation of the player character PC at that time. Then, processor 81 ends the player character control process.

[0166] [Controlling the opponent character] Returning to FIG. 25, next, in step S12, processor 81 executes an NPC control process. This process is a process for AI-controlling an opponent character NPC. Although the main operating entity is processor 81 (AI), the basic process content is the same as the player character control process.

[0167] [Shuttle movement control] Next, in step S13, processor 81 executes a shuttle movement control process. FIG. 31 is a flowchart showing details of the shuttle movement control process. In FIG. 31, first, in step S101, processor 81 determines whether or not shot occurrence flag 312 is on. If the result of this determination is that it is off (NO in step S101), the process proceeds to step S106 described below. On the other hand, if it is on (YES in step S101), it means that shuttle 203 has been hit back, so next, in step S102, processor 81 determines whether or not the player state is a "miss shot" based on player state data 335. If the result of this determination is not a "miss shot" (NO in step S102), processor 81 calculates a movement parameter of shuttle 203 that has been hit back (in the case where it is not a miss shot) in step S103. Specifically, the movement trajectory and movement speed of shuttlecock 203 are calculated based on the swing input contents such as the swing speed and the contents of the shot made this time (over or under fore, etc.). Then, processor 81 sets the calculated parameters to shuttlecock movement parameters 305. After that, the process proceeds to step S105.

[0168] On the other hand, if it is a miss shot (YES in step S102), Processor 81 calculates shuttle movement parameters 305 so that the movement of shuttle 203 is the movement in the case of a miss-shot. For example, processor 81 may set the parameter of the movement speed to be slower than normal, set the movement trajectory to be a wobbly trajectory, or set a flag indicating that shuttle 203 is in a miss-shot state to ON.

[0169] Next, in step S105, the processor 81 sets the shot occurrence flag 312 to OFF.

[0170] Next, processor 81 performs the deceleration adjustment control when shuttle 203 is relatively close to the ground as described above. First, in step S106, processor 81 determines whether or not the height of shuttle 203 is equal to or lower than the deceleration threshold, which is a height preset as a threshold for performing deceleration adjustment. If the result of the determination is that the height is equal to or lower than the deceleration threshold (YES in step S106), in step S107, processor 81 adjusts the contents of shuttle movement parameters 305 so that the movement speed of shuttle 203 is decelerated at a deceleration rate according to the height from the ground. In other words, an adjustment is performed so that the movement speed of shuttle 203 is decelerated more significantly the closer it is to the ground.

[0171] On the other hand, if the height of the shuttle 203 is not equal to or less than the deceleration threshold (NO in step S106), the process of step S107 is skipped.

[0172] Next, in step S108, the processor 81 moves the shuttle 203 based on the shuttle movement parameters 305. This ends the shuttle movement control process.

[0173] [Game progress management] Returning to FIG. 25, next, in step S14, processor 81 executes a game progress management process. In this process, score determination, score management, and the like are performed. Processor 81 also performs a process of setting the above-mentioned serve flag on when it is a serve situation, and turning the serve flag off after the serve is hit. In addition, when a condition for ending the match is satisfied, processor 81 sets, for example, an end flag indicating the end of the match to on.

[0174] [Game image generation and output] Next, in step S15, the processor 81 generates a game image. That is, the processor 81 generates a game image by capturing an image of the virtual space in which the above-mentioned processing is reflected with a virtual camera. Then, the processor 81 outputs the generated game image to a stationary monitor or the like. This ends the match processing.

[0175] 24, next, in step S3, processor 81 determines whether the match has ended based on progress management data 310. If the result of the determination is that the match has not ended (NO in step S3), the process returns to step S2 and is repeated. If the match has ended (YES in step S3), processor 81 appropriately performs presentation processing such as displaying the match result, and ends the badminton game processing.

[0176] This concludes the detailed description of the badminton game processing according to this embodiment.

[0177] In this manner, in this embodiment, in a badminton game in which the above-mentioned three types of swings are used, the similarity between the above-mentioned three types of swings (swing directions) is calculated using a trained model. Then, based on this, the swing related to the swing input made by the user is judged. This makes it possible to improve the accuracy of swing judgment. In other words, the swing input is also an analog input made by moving the user's arm (wrist), For example, even if the same under-forward movement (in this example, swinging up to the upper left) is performed, there is an aspect that individual differences in swinging between users may be large due to differences in the swinging style and swing habits of each user. In such a case where it is desired to distinguish between multiple types of swinging styles, but the range of individual differences in each swinging style is expected to be large, there is a risk that sufficient judgment accuracy cannot be obtained because the individual differences in the swinging styles cannot be absorbed by a method of setting specific values ​​and ranges of acceleration, angular velocity, etc. for each swinging style in the coding of a program. In this regard, by using the judgment of similarity using the trained model as in this embodiment, it is possible to deal with the individual differences as described above, and it is expected that the judgment accuracy of the swinging style related to the swing input will be improved. In addition, the more types of swinging styles to be judged, the more useful the process of this embodiment is.

[0178] In other words, the above process corresponds to the swing input made by the user being one of the three types of swings, and the game process is executed assuming that the swing input was made in that swing.

[0179] [Variations] In the above embodiment, the case where three types of swinging (swinging directions) are determined is exemplified, but the above process can be applied to cases where two types of swinging are determined, or four or more types of swinging are determined. As described above, the more types of swinging that are to be determined, the more useful the process of this embodiment becomes.

[0180] In the above embodiment, when there is no swing that is equal to or more than the first or second threshold in the swing determination process, it is determined that the swing is not similar to any of the three types of swings, and the player character PC is not made to perform a racket swing animation. In other embodiments, even in this case, the swing that is most similar may be selected. In other words, a determination method that does not use the first or second threshold may be used. In this case, a racket swing animation corresponding to any one of the three types of swings is always played in response to a swing input (and a shot may also be generated if the timing is right).

[0181] In still another embodiment, if it is determined that the swing input is not similar to any of the three types, the player character PC may be made to perform a racket swing animation so as to directly reflect the contents of the swing input made at that time. In other words, a racket swing animation other than the above three types of swings may be played. In this case, although the racket swing animation is performed, the shuttlecock 203 may not be hit back and may be processed to be a miss.

[0182] In the above embodiment, an example was shown in which data obtained from an inertial sensor is used as a basic element for judging the swing, such as a learning data set. In addition, for example, a trained model generated by deep learning using image data may be used in combination to judge the similarity of the swing. For example, a trained model may be created using an image (video) of a user swinging a controller as a learning data set. Then, a game system may be configured to capture an image of a user with a predetermined camera during game play, and image data obtained from this camera may be input into a trained model based on the image to judge the similarity. Then, this may be configured to be used in combination as an auxiliary in addition to the similarity judgment based on the data from the inertial sensor. This is expected to further improve the judgment accuracy.

[0183] In another embodiment, the motion of the shuttlecock 203 may be changed depending on the similarity. For example, even if the shuttlecock is hit over the target, the ball speed may be controlled to be faster when the similarity is high than when the similarity is low. A higher similarity may be treated as being "closer to the ideal form," and processing may be performed to provide a more advantageous effect on the progress of the game than a lower similarity.

[0184] In the above embodiment, the swing similarity is determined by comparing the transition of a series of (multiple) changes in acceleration, etc., during the period from the start to the end of the swing state. In other embodiments, the swing input data for a single frame may be used to determine the similarity. For example, the swing input data for any one frame during the period may be used to determine the similarity as described above.

[0185] In the above embodiment, an example was given in which a first threshold value smaller than the second threshold value was used for judgment in a situation where a smash or a serve could be hit. In another embodiment, a smaller threshold value such as the above may be used for judgment only for one of the three swing types selected according to the game situation. In other words, a specific swing type among the three types may be more likely to be judged than the other swing types according to the game situation.

[0186] In another embodiment, the first threshold and the second threshold used in the swing determination process may be dynamically customizable for each user. For example, statistics may be taken for each user for the similarity calculated in the swing determination process (assuming that the user can be identified by performing a predetermined login process at the start of the game). Then, statistics may be taken for the similarity of each of the three swings, and the values ​​used as the first threshold and the second threshold may be adjusted based on the statistical results. For example, assume that the similarity of over is often a value within the range of +15 to +25, but the similarity of under fore is often a value within the range of +1 to +3. In this case, the threshold used to determine under fore, which has a low similarity value, may be slightly lowered to make an adjustment so that under fore is more likely to be determined. Then, such an adjustment result may be saved as personal data for each user.

[0187] Although the badminton game has been exemplified above, the above processing can be applied to any other sports games in which a racket or an equivalent tool is swung, such as table tennis and tennis.

[0188] In the above embodiment, the case where a series of processes related to the badminton game process is executed by a single main unit 2 has been described. In another embodiment, the series of processes may be executed in an information processing system consisting of a plurality of information processing devices. For example, in an information processing system including a terminal device and a server device capable of communicating with the terminal device via a network, a part of the series of processes may be executed by the server device. Furthermore, in an information processing system including a terminal device and a server device capable of communicating with the terminal device via a network, a main part of the series of processes may be executed by the server device, and a part of the processes may be executed by the terminal device. In the above information processing system, the server system may be composed of a plurality of information processing devices, and the processes to be executed on the server side may be shared and executed by the plurality of information processing devices. Also, a so-called cloud gaming configuration may be used. For example, the main unit 2 may be configured to send operation data indicating a user's operation to a predetermined server, and various game processes may be executed in the server, and the execution results may be streamed to the main unit 2 as video and audio. [Explanation of symbols]

[0189] 1. Game System 2 Main Unit 3 Left Controller 4 Right Controller 81 Processor 84 Flash Memory 85 DRAM

Claims

1. A game program to be executed by a computer of a game device, The computer, an operation data acquisition means for acquiring operation data based on an output of an inertial sensor from an operation device equipped with the inertial sensor; a swing determination means for determining whether or not a swing input has been made to the operation device based on the operation data; a management means for managing a trained model, the trained model being generated based on a plurality of teacher data, each of which is associated with one of a plurality of swing directions, and for determining in which of the plurality of swing directions the operation device has been swung; a swing direction determination means for inputting the operation data acquired during the period in which the swing input was performed to the trained model, and determining the swing direction in which the operation device was swung based on an output of the trained model in response to the input; a game processing execution means for executing a game process based on the swing direction in which the operation device is determined to have been swung; when it is determined that the swing input has not been performed on the operation device, the object control means controls an attitude of an object placed in a virtual space so that the attitude corresponds to attitude data indicating the attitude of the operation device calculated based on the operation data; The swing direction determination means determines the swing direction based on an output from the trained model in response to input of a plurality of pieces of operation data acquired from the start of the swing input to the end of the swing input.

2. The game program described in claim 1, wherein the game processing execution means, when it is determined that a swing input has been made to the operating device at a time when the position of a player character object placed in the virtual space and the position of a moving object are in a predetermined positional relationship, executes processing to move the moving object based on the swing direction in which it is determined that the operating device was swung.

3. The game program 3. The game program according to claim 2, further functioning as a movement control means for moving the moving object at a predetermined speed, and, if the height of the moving object in the virtual space falls below the predetermined height, decelerating the moving object so that its speed is slower than the predetermined speed.

4. The game program described in claim 3, wherein the game processing execution means, when the specified positional relationship and the swing direction in which it is determined that the operating device has been swung, executes the game processing so that the game is more advantageous for the player than when the specified condition is not satisfied.

5. The game program described in claim 1, wherein the game processing execution means, when the output of the trained model indicates that there is no swing direction that satisfies the specified similarity condition, executes the game processing as if no swing input has been made to the operating device.

6. The game program described in claim 1, wherein the swing direction determination means inputs a plurality of the operation data gradually acquired during the period in which the swing input is made into the trained model, and determines the swing direction in which the operating device is swung based on the output of the trained model in response to the input.

7. An operation data acquisition means for acquiring operation data based on an output of an inertial sensor from an operation device equipped with an inertial sensor; a swing determination means for determining whether or not a swing input has been made to the operation device based on the operation data; a management means for managing a trained model, the trained model being generated based on a plurality of teacher data, each of which is associated with one of a plurality of swing directions, and for determining in which of the plurality of swing directions the operation device has been swung; a swing direction determination means for inputting the operation data acquired during the period in which the swing input was performed to the trained model, and determining the swing direction in which the operation device was swung based on an output of the trained model in response to the input; a game processing execution means for executing a game process based on the swing direction in which the operation device is determined to have been swung; an object control means for controlling, when it is determined that the swing input has not been performed on the operation device, an attitude of an object placed in a virtual space to be an attitude corresponding to attitude data indicating an attitude of the operation device calculated based on the operation data; The swing direction determination means determines the swing direction based on an output from the trained model in response to input of a plurality of pieces of operation data acquired from the start of the swing input to the end of the swing input.

8. An operation data acquisition means for acquiring operation data based on an output of an inertial sensor from an operation device equipped with an inertial sensor; a swing determination means for determining whether or not a swing input has been made to the operation device based on the operation data; a management means for managing a trained model, the trained model being generated based on a plurality of teacher data, each of which is associated with one of a plurality of swing directions, and for determining in which of the plurality of swing directions the operation device has been swung; a swing direction determination means for inputting the operation data acquired during the period in which the swing input was performed to the trained model, and determining the swing direction in which the operation device was swung based on an output of the trained model in response to the input; a game processing execution means for executing a game process based on the swing direction in which the operation device is determined to have been swung; an object control means for controlling, when it is determined that the swing input has not been performed on the operation device, an attitude of an object placed in a virtual space to be an attitude corresponding to attitude data indicating an attitude of the operation device calculated based on the operation data; The swing direction determination means determines the swing direction based on an output from the trained model in response to input of a plurality of pieces of operation data acquired from the start of the swing input to the end of the swing input.

9. A game processing method executed by a computer of a game device, comprising: The computer includes: acquiring operation data based on an output of an inertial sensor from an operation device including the inertial sensor; determining whether or not a swing input has been made to the operation device based on the operation data; managing a trained model for determining in which of a plurality of swing directions the operation device is swung, the trained model being generated based on a plurality of teacher data each corresponding to one of a plurality of swing directions; The operation data acquired during the period in which the swing input was performed is input to the trained model, and a swing direction in which the operation device was swung is determined based on an output of the trained model in response to the input; executes a game process based on the swing direction in which the operation device is determined to have been swung; when it is determined that the swing input has not been performed on the operation device, controlling a posture of an object placed in a virtual space so that the posture corresponds to posture data indicating a posture of the operation device calculated based on the operation data; A game processing method in which the swing direction is determined based on output from the trained model in response to input of a plurality of pieces of operation data acquired from the start of the swing input to the end of the swing input.