CROSS REFERENCE OF RELATED APPLICATIONThe disclosure of Japanese Patent Application No. 2007-111177 is incorporated herein by reference.
BACKGROUND OF THE INVENTION1. Field of the Invention
The present invention relates to a game controller, a storage medium storing a game program, and a game apparatus, and particularly to the game controller including a plurality of load sensors, the storage medium storing a game program for performing game processing with the game controller, and the game apparatus.
2. Description of the Related Art
Conventionally, there is known a load detecting device including a plurality of load sensors in the field of medical equipment for the purpose of training such as rehabilitation.
For example, Japanese Patent Publication Laid-Open No. 62-34016 discloses a variable load display apparatus including the two load sensors. In the variable load display apparatus, legs are ridden on the load sensors respectively, and a balance between right and left is measured by displaying load values detected from the two load sensors.
Japanese Patent Publication Laid-Open No. 7-275307 discloses a barycentric movement training apparatus including three load detecting means. In the barycentric movement training apparatus, legs are ridden on a detecting board in which the three load detecting means are provided. A barycentric position is computed and displayed by computation of signals detected from the three load detecting means, thereby conducting barycentric movement training.
On the other hand, in a conventional general-purpose game controller, a cross key, for example, is provided, and at least four-directional instructions can be issued.
In view of the application of the apparatus including the load sensor of Japanese Patent Publication Laid-Open Nos. 62-34016 and 7-275307 to the game controller, only the instructions in the right and left directions are enabled using outputs of the right and left sensors in the technique disclosed in Japanese Patent Publication Laid-Open No. 62-34016, and the instructions in the three directions are enabled using the load values of the three load detecting means in the technique disclosed in Japanese Patent Publication Laid-Open No. 7-275307.
Thus, unfortunately the techniques disclosed in Japanese Patent Publication Laid-Open Nos. 62-34016 and 7-275307 are hardly used as the general-purpose game controller in which manipulations are required in at least four directions.
In the technique disclosed in Japanese Patent Publication Laid-Open No. 62-34016, because the values detected from the two load sensors are directly used, only simple measurement can be performed to hardly make an interesting game, even if the technique is applied to the game processing.
In the technique disclosed in Japanese Patent Publication Laid-Open No. 7-275307, the barycentric position is computed by the three load detecting means and an image indicating the barycentric position is displayed. However, various quantities of load values are not computed from the signals of the three load detecting means.
SUMMARY OF THE INVENTIONIn view of the foregoing, an object of the present invention is to provide a novel game controller.
Another object of the present invention is to provide a game controller that can perform various manipulations using the load sensor.
Still another object of the present invention is to provide a novel storage medium storing a game program, in which a game controller including a plurality of load sensors is used, and a game apparatus.
Still another object of the present invention is to provide a storage medium storing a game program, which can compute a quantity of load values necessary for game processing to perform game processing using a game controller including a plurality of load sensors, and a game apparatus.
In the present invention, the following configurations are adopted to solve the problems. A parenthetic reference numeral and supplementary explanation indicate correlation with the later-described embodiments for the purpose of the easy understanding of the present invention, and do not restrict the present invention.
In a first aspect of the present invention, a game controller used in a game machine, includes a support portion on which player's legs are ridden; at least four load sensors disposed at predetermined intervals below the support portion; and a communication means for transmitting a load value as manipulation data detected from each of the four load sensors.
In the first aspect of the present invention, the game controller (10) is used as the manipulation means or input means of the game machine (52). The game controller includes the support portion (16) on which the player's legs are ridden, and at least the four load sensors (14) are disposed at predetermined intervals below the support portion. The load applied by the player ride on the support portion is detected by the four load sensors. The communication means (20,42, S7) transmits the load value as the manipulation data detected from each of the four load sensors. Accordingly, in the game machine, the game can be performed based on the load values detected by the four load sensors.
According to the first aspect of the present invention, the four load sensors are provided, and the load value as the manipulation data detected from each of the four load sensors is transmitted to the game machine, so that the game controller that can perform various manipulations using the load applied by the player can be provided.
In a second aspect of the present invention, preferably a game controller according to the first aspect of the present invention further includes a power supply unit that supplies electric power to the load sensor; and a power supply control means for controlling power supply from the power supply unit to the load sensor, wherein the communication means includes a reception determining means for determining whether or not a load obtaining command is received from the game machine, the power supply control means supplies electric power from the power supply unit to the load sensor when the reception determining means determines that the load obtaining command is received, and the power supply control means stops electric power supply from the power supply unit to the load sensor when the reception determining means determines that the load obtaining command is not received.
In the second aspect of the present invention, the power supply from the power supply unit (30) to the load sensor is controlled by the power supply control means (20,26). Specifically, the electric power is supplied to the load sensor when the reception determining means (20, S1) determines that the load obtaining command is received from the game machine, and the electric power supply is stopped when the reception determining means determines that the load obtaining command is not received. Accordingly, the electric power is supplied to detect the load only when the load is required, so that power consumption for operating the load sensor can be suppressed.
A third aspect of the present invention is a game controller according to the first aspect of the present invention, preferably the communication means includes a wireless communication unit receiving wirelessly the load obtaining command from the game machine; and a processing means for imparting the load value as the manipulation data detected from each of the four load sensors to the wireless communication unit when the wireless communication unit receives the load obtaining command, and the wireless communication unit wirelessly transmits the manipulation data received from the processing means to the game machine.
In the third aspect of the invention, the wireless communication unit (42) conducts wireless communication with the game machine. The processing means (20) imparts the load value as the manipulation data detected from each of the four load sensors to the wireless communication unit when the load obtaining command is received and the wireless communication unit transmits the manipulation data to the game machine. Accordingly, the wireless game controller that can wirelessly transmit and receive the data to and from the game machine can be provided.
A fourth aspect of the present invention is a game controller according to the second aspect of the present invention, preferably the communication means includes a wireless communication unit receiving wirelessly the load obtaining command from the game machine; and a processing means for imparting the load value as the manipulation data detected from each of the four load sensors to the wireless communication unit when the wireless communication unit receives the load obtaining command, and the wireless communication unit transmits wirelessly the manipulation data received from the processing means to the game machine.
In the fourth aspect of the present invention, similarly to the third aspect of the present invention, the wireless game controller that can wirelessly transmit and receive the data to and from the game machine can be provided.
A fifth aspect of the present invention is a game controller according to the first aspect of the present invention, preferably the communication means includes a connector unit detachable from a different type of game controller, and the communication means transmits the load value to the game machine through the different type of game controller attached to the connector unit.
In the fifth aspect of the present invention, the game controller is connected to the different type of game controller (54) by the connector unit (24). The communication means transmits the load value to the game machine through the different type of game controller. Accordingly, the extended type game controller that is used while attached to the different type of game controller by the connector unit can be provided.
A sixth aspect of the present invention is a game controller according to the first aspect of the present invention, preferably the communication means includes a command determining means for determining which load obtaining command in a plurality of types of load obtaining commands is received from the game machine; and a manipulation data computing means for computing a predetermined quantity of pieces of manipulation data according to the load obtaining command determined by the command determining means from the load value detected from each of the four load sensors.
In the sixth aspect of the present invention, the command determining means (20, S621 to S625) determines the type of load obtaining command from the game machine. The manipulation data computing means (20, S627, S631, S633) computes the predetermined quantity of pieces of manipulation data according to the determined command. Accordingly, because the quantity of pieces of manipulation data according to the command can be transmitted to the game machine, various quantities of pieces of manipulation data can be imparted to the game machine according to contents of the game.
In a seventh aspect of the present invention, preferably a game controller according to the first aspect of the present invention further includes a manipulation button provided in a surface different from an upper surface of the support portion to be manipulated by the player's legs.
In the seventh aspect of the invention, the manipulation button (40) manipulated by the player's legs is provided in the surface different from the upper surface of the support portion on which the player rides. When the manipulation button is manipulated, the communication means transmits the manipulation data of the manipulation button to the game machine. Accordingly, the game controller in which button manipulation can be performed by the legs can be provided.
In an eighth aspect of the present invention, a storage medium stores a game program executed in a computer of a game machine that performs a game using a game controller including a plurality of load sensors, wherein the game program causes the computer to execute a detection value obtaining step of obtaining a detection value outputted from each of the plurality of load sensors; a quantity determining step of determining a quantity of load values necessary for game processing; a load value computing step of computing the quantity of load values determined by the quantity determining step from a plurality of detection values; and a game processing step of performing game processing based on the load value.
In the eighth aspect of the present invention, the game program is executed by the computer (82) of the game machine (52), and the game is performed using the game controller (10) including the plurality of load sensors (14) in the game machine. The detection value outputted from each of the plurality of load sensors is obtained in the detection value obtaining step (S49, S399). The quantity of load values necessary for the game processing is determined in the quantity determining step (S53 to S57, S403, S405). The determined quantity of load values are computed from the plurality of detection values in the load value computing step (S101, S151, S153, S181, S311, S351, S431, S471, S511, S543). The game processing is performed based on the load value in the game processing step (S59, S61, S63, S407, S409).
According to the eighth aspect of the present invention, the quantity of load values necessary for the game processing, and the necessary quantity of load values is computed from the plurality of load detection values. Therefore, various quantities of load values can be used in the game by a combination of values of the plurality of load sensors, and novel play can be proposed.
A ninth aspect of the present invention is a storage medium storing a game program according to the eighth aspect of the present invention, preferably the game program causes the computer to further execute a selection step of causing a player to select a type of game, and the quantity determining step determines the necessary quantity according to the type of game by determining the type of game.
In the ninth aspect of the present invention, the type of game is selected by the player in the selection step (S43). In the quantity determining step (S53 to S57), the type of game is determined, and the necessary quantity according to the type of game is determined. According to the ninth aspect of the present invention, the necessary quantity of load values can appropriately be set in each game, and the necessary quantity of load values can be computed in each playing game to perform the game processing, so that various games can be proposed.
A tenth aspect of the present invention is a storage medium storing a game program according to the eighth aspect of the present invention, preferably the game program causes the computer to further execute a difference computing step of computing difference of the detection values outputted from the plurality of load sensors; and a correction step of correcting the detection value based on the difference computed by the difference computing step.
In the tenth aspect of the present invention, the difference of the detection values outputted from the plurality of load sensors is computed in the difference computing step (S41, S77, S85). In the correction step (S51, S401), the detection value is corrected based on the computed difference. Accordingly, a fluctuation in load detection value caused by an attitude and a standing position, etc. of the player can properly be corrected.
An eleventh aspect of the present invention is a storage medium storing a game program according to the tenth aspect of the present invention, preferably the difference computing step includes a first difference computing step of dividing the detection values into first two sets to compute difference between the first two sets, the detection value being outputted from each of the plurality of load sensors; and a second difference computing step of dividing the detection values into second two sets to compute difference between the second two sets, the detection value being outputted from each of the plurality of load sensors, the second two sets being different from the first two sets, and the correction step corrects the detection value based on the first difference and the second difference.
In the eleventh aspect of the present invention, the plurality of detection values are divided into the first two sets to compute the difference between the first two sets in the first difference computing step (S77). The plurality of detection values are divided into the second two sets different from the first two sets to compute the difference between the second two sets in the second difference computing step (S85). In the correction step, the detection value is corrected based on the first difference and the second difference. The plurality of load detection values are corrected based on the two types of differences of the different combinations, so that accuracy of load value correction can be improved.
A twelfth aspect of the present invention is a storage medium storing a game program according to the eighth aspect of the present invention, preferably the game program causes the computer to further execute a load value comparing step of comparing the load values computed by the load value computing step, and the game processing step performs the game processing based on the load value that is determined to be the largest value as a result of comparison in the load value comparing step.
In the twelfth aspect of the present invention, the computed load values are compared to another in the load value comparing step (S211 to S217, S271 to S277, S353 to S357, S433 to S437, S545 to S549), and the game processing is performed based on the maximum load value in the game processing step (S219 to S233, S279 to S285, S359 to S373, S439 to S453, S551 to S557).
According to the twelfth aspect of the present invention, the largest load value is selected in the plurality of load values, and the game processing can be performed based on the selected load value. Accordingly, a novel manipulation can be realized by such simple processing that a character is moved in one of the vertical and horizontal directions according to the selected load value.
A thirteenth aspect of the present invention is a storage medium storing a game program according to the eighth aspect of the present invention, preferably the quantity determining step determines the necessary quantity according to a scene by determining the scene in the game.
In the thirteenth aspect of the present invention, the necessary quantity is determined according to the scene by determining the scene in the game in the quantity determining step (S403,S405). According to the thirteenth aspect of the invention, the necessary quantity of load values can appropriately be set in each scene of the game, and the necessary quantity of load values can be computed in each scene of the game to perform the game processing. Therefore, the game can be played by various manipulations.
In a fourteenth aspect of the present invention, a storage medium stores a game program executed in a computer of a game machine that performs a game using a game controller including the plurality of load sensors, wherein the game program causes the computer to execute a quantity determining step of determining a quantity of load values necessary for game processing; a command transmitting step of transmitting a command according to the quantity determined by the quantity determining step to the game controller; a load value obtaining step of obtaining the quantity of load values according to the command from the game controller; and a game processing step of performing game processing based on the load value obtained by the load value obtaining step.
In the fourteenth aspect of the present invention, the game program is executed in the computer (82) of the game machine (52), and the game is performed using the game controller (10) including the plurality of load sensors (14) in the game machine. The quantity of load values necessary for the game processing is determined in the quantity determining step (S53 to S57, S403, S405). The command according to the determined quantity is transmitted to the game controller in the command transmitting step (S581, S585, S589, S601, S605). The quantity of load values according to the command is obtained from the game controller in the load value obtaining step (S583, S587, S591, S603, S607). The game processing is performed based on the obtained load value in the game processing step (S59, S61, S63, S407, S409).
According to the fourteenth aspect of the present invention, the command according to the necessary quantity is transmitted to the game controller, and the necessary quantity of load values according to the command can be obtained from the game controller. Therefore, the game processing can be performed based on the various quantities of load values according to contents of the game. Accordingly, various quantities of load values can be used in the game by a combination of values of the plurality of load sensors, and novel play can be proposed.
In a fifteenth aspect of the present invention, a game apparatus executing a game played by a load of a player includes a manipulation means including a support portion on which player's legs are ridden and a plurality of load sensors detecting a load applied to the support portion; a quantity determining means for determining a quantity of load values necessary for game processing; a load value computing means for computing the quantity of load values based on a detection value detected by each of the plurality of load sensors, the quantity of load values being determined by the quantity determining step; and a game processing means for performing the game processing based on the load value computed by the load value computing means.
In the fifteenth aspect of the present invention, the game apparatus (50,52) includes the manipulation means (10) to perform the game played by the load of the player, and the manipulation means includes the support portion (16) on which the player's legs are ridden and the plural load sensors (14) detecting the load applied to the support portion. The quantity determining means (82, S53 to S57, S403 to S405,20, S621 to S625) determines the quantity of load values necessary for the game processing. The load value computing means (82, S101, S151, S153, S181, S311, S351, S431, S471, S511, S543,20, S627, S631, S633) computes the determined quantity of load values based on the detection values of the plurality of load sensors. The game processing means (82, S59, S61, S63, S407, S409) performs the game processing based on the computed load value.
According to the fifteenth aspect of the present invention, the four load sensors are provided in the manipulation means, the quantity of load values necessary for the game processing is determined, and the necessary quantity of load values is computed from the plurality of load detection values, so that the game processing can be performed based on the various quantities of load values by various combinations of values of the plurality of load sensors. Accordingly, a novel game played by various manipulations according to the load of the player can be performed.
According to the present invention, the load of the player is detected by at least the four load sensors and the detected load value is set to the manipulation data to perform the game processing, so that the game controller that can perform various manipulations using the load sensors can be provided.
The necessary quantity is determined and the necessary quantity of load values is computed, so that various quantities of load values can be used in the game processing by various combinations of values of the plural load sensors. Accordingly, a novel game played by the load of the player using the game controller including the plurality of load sensors can be proposed.
The above described objects and other objects, features, aspects and advantages of the present invention will become more apparent from the following detailed description of the present invention when taken in conjunction with the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 is a perspective view showing an appearance of a game controller according to an embodiment of the present invention;
FIG. 2 is a diagonal sectional view showing the game controller shown in FIG.1;
FIG. 3 is a block diagram showing an example of an electric configuration of the game controller shown inFIG. 1;
FIG. 4 is an illustrative view showing an appearance of a game system according to an embodiment of the present invention;
FIG. 5 is a block diagram showing an example of an electric configuration of the game system shown inFIG. 4;
FIG. 6 is an illustrative view showing an appearance of the controller shown inFIG. 4;
FIG. 7 is a block diagram showing an example of an electric configuration of the controller shown inFIG. 4;
FIG. 8 is an illustrative view showing a state in which a position on a screen is indicated using the controller shown inFIG. 4;
FIG. 9 is an illustrative view for explaining view angles of marker units and controller shown inFIG. 4;
FIG. 10 is an illustrative view showing an example of a taken image including a target image;
FIG. 11 is an illustrative view showing a state in which the game is played using the game controller shown inFIG. 1;
FIG. 12 is an illustrative view showing an example of a screen of a total load game;
FIG. 13 is an illustrative view for explaining a right and left balance game;
FIG. 14 is an illustrative view for explaining a four-directional balance game;
FIG. 15 is an illustrative view partially showing a memory map of the game machine shown inFIG. 4;
FIG. 16 is a flowchart showing an example of an operation of the game controller shown inFIG. 1;
FIG. 17 is a flowchart showing an example of an operation of the controller shown inFIG. 4;
FIG. 18 is a flowchart showing an example of an operation of the game machine shown inFIG. 4;
FIG. 19 is a flowchart showing an example of an operation of correction value computing processing shown inFIG. 18;
FIG. 20 is a flowchart showing an example of an operation of game processing1 (total load game) shown inFIG. 18;
FIG. 21 is a flowchart showing an example of an operation of game processing2 (right and left balance game) shown inFIG. 18;
FIG. 22 is a flowchart showing an example of an operation of game processing3 (four-directional balance game) shown inFIG. 18;
FIG. 23 is an illustrative view for explaining a hoop game;
FIG. 24 is an illustrative view partially showing a memory map when the hoop game is performed;
FIG. 25 is a flowchart partially showing the operation of the game processing3 (hoop game) shown inFIG. 18;
FIG. 26 is a flowchart succeedingFIG. 25;
FIG. 27 is an illustrative view for explaining a quiz game;
FIG. 28 is an illustrative view partially showing the memory map when the quiz game is performed;
FIG. 29 is a flowchart showing an example of the operation of the game processing3 (quiz game) shown inFIG. 18;
FIG. 30 is an illustrative view for explaining a ski game;
FIG. 31 is an illustrative view partially showing the memory map when the ski game is performed;
FIG. 32 is a flowchart showing an example of the operation of the game processing3 (ski game) shown inFIG. 18;
FIG. 33 is an illustrative view for explaining a moving game;
FIG. 34 is an illustrative view partially showing the memory map when the moving game is performed;
FIG. 35 is a flowchart showing an example of the operation of the game processing3 (moving game) shown inFIG. 18;
FIG. 36 is an illustrative view for explaining an action game,FIG. 36(A) shows a field scene, andFIG. 36(B) shows a battle scene;
FIG. 37 is an illustrative view partially showing the memory map when the action game is performed;
FIG. 38 is a flowchart showing an example of the operation of the game machine when the action game is performed;
FIG. 39 is a flowchart showing an example of an operation of moving processing based on four values shown inFIG. 38;
FIG. 40 is a flowchart showing an example of the operation of the battle processing based on two values shown inFIG. 38;
FIG. 41 is an illustrative view for explaining movement of a role-playing game;
FIG. 42 is an illustrative view for explaining battle of the role-playing game;
FIG. 43 is an illustrative view partially showing the memory map when the role-playing game is performed;
FIG. 44 is a flowchart showing an example of the operation of the game machine when the role-playing game is performed;
FIG. 45 is a flowchart showing an example of the operation of the moving processing based on a barycenter shown inFIG. 44;
FIG. 46 is a flowchart showing an example of the operation of the battle processing based on the four values shown inFIG. 44;
FIG. 47 is a flowchart showing an example of the operation of the game machine transmitting a load command according to the game;
FIG. 48 is a flowchart showing an example of the operation of the game machine transmitting the load command according to the scene;
FIG. 49 is a flowchart showing an example of the operation of the game controller computing a load according to a type of command;
FIG. 50 is a perspective view showing an appearance of a game controller having a manipulation button;
FIG. 51 is a flowchart showing an example of an operation concerning the manipulation button of the game controller shown inFIG. 50;
FIG. 52 is an illustrative view showing an appearance of a game system in which a game controller and a game machine are connected in a wired manner;
FIG. 53 is an illustrative view showing an appearance of a game system in which a game controller and a game machine conduct wireless communication with each other;
FIG. 54 is a block diagram showing an example of an electric configuration of the game controller shown inFIG. 53;
FIG. 55 is an illustrative view showing a modification of a board shape of the game controller;
FIG. 56 is an illustrative view showing a modification of the board shape of the game controller;
FIG. 57 is an illustrative view showing a modification of an arrangement of the four load sensors of the game controller; and
FIG. 58 is an illustrative view showing a modification of an intermediate-layer plate in support plates of the game controller.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTSWith reference toFIG. 1, agame controller10 according to an embodiment of the present invention is a manipulation device or input device for game. Thegame controller10 includes aboard12 on which a player rides and fourload sensors14 that detect loads applied on theboard12. Theload sensors14 are accommodated in the board12 (seeFIG. 2), and the arrangement of theload sensors14 is shown by dotted line inFIG. 1.
Theboard12 is formed in a substantially rectangular solid, and theboard12 has a substantially square shape when viewed from above. For example, one side of the square is set in a range of about 30 cm to 50 cm. An upper surface of theboard12 on which the player rides is formed in flat. Side faces at four corners of theboard12 are formed so as to be partially projected in a cylindrical shape.
In theboard12, the fourload sensors14 are arranged at predetermined intervals. In the embodiment, the fourload sensors14 are arranged in peripheral portions of theboard12, specifically, at the four corners. The interval between theload sensors14 is set an appropriate value such that player's intention can accurately be detected for the load applied to theboard12 in a game manipulation.
FIG. 2 shows a diagonal sectional view of thegame controller10, andFIG. 2 also shows an enlarged corner portion disposed in theload sensor14.
As can be seen fromFIG. 2, theboard12 includes asupport plate16 on which the player rides andlegs18. Thelegs18 are provided at positions where theload sensors14 are arranged. In the embodiment, because the fourload sensors14 are arranged at four corners, the fourlegs18 are provided at the four corners. Theleg18 is formed in a cylindrical shape with bottom by, e.g., plastic molding. Theload sensor14 is placed on aspherical part18aprovided in the bottom of theleg18. Thesupport plate16 is supported by theleg18 while theload sensor14 is interposed.
Thesupport plate16 includes an upper-layer plate16athat constitutes an upper surface and an upper side face, a lower-layer plate16bthat constitutes a lower surface and a lower side face, and an intermediate-layer plate16cprovided between the upper-layer plate16aand the lower-layer plate16b. For example, the upper-layer plate16aand the lower-layer plate16bare formed by plastic molding and integrated with each other by bonding. For example, the intermediate-layer plate16cis formed by pressing one metal plate. The intermediate-layer plate16cis fixed onto the fourload sensors14. The upper-layer plate16ahas a lattice-shaped rib (not shown) in a lower surface thereof, and the upper-layer plate16ais supported by the intermediate-layer plate16cwhile the rib is interposed.
Accordingly, when the player rides on theboard12, the load is transmitted to thesupport plate16, theload sensor14, and theleg18. As shown by an arrow inFIG. 2, reaction generated from a floor by the input load is transmitted from theleg18 to the upper-layer plate16athrough thespherical part18a, theload sensor14, and the intermediate-layer plate16c.
Theload sensor14 is formed by, e.g., a strain gage (strain sensor) type load cell, and theload sensor14 is a load transducer that converts the input load into an electric signal. In theload sensor14, astrain inducing element14ais deformed to generate a strain according to the input load. The strain is converted into a change in electric resistance by astrain sensor14badhering to thestrain inducing element14a, and the change in electric resistance is converted into a change in voltage. Accordingly, theload sensor14 outputs a voltage signal indicating the input load from an output terminal when the voltage is imparted to theload sensor14 from a power supply terminal.
Other types of load sensors such as a folk vibrating type, a string vibrating type, an electrostatic capacity type, a piezoelectric type, a magneto-striction type, and gyroscope type may be used as theload sensor14.
FIG. 3 is a block diagram showing an example of an electric configuration of thegame controller10. InFIG. 3, the signal and communication stream are indicated by solid-line arrows, and electric power supply is indicated by broken-line arrows.
Thegame controller10 includes amicrocomputer20 that controls an operation of thegame controller10. Themicrocomputer20 includes a ROM and a RAM (not shown) and controls the operation of thegame controller10 according to a program stored in the ROM.
AnAD converter22, aconnector24, and a DC-DC converter26 are connected to themicrocomputer20. InFIG. 3, the fourload sensors14 are shown as theload cell14. Each of the fourload sensors14 is connected to theAD converter22 through eachamplifier28.
Theconnector24 is provided such that thegame controller10 conducts communication with a game machine52 (seeFIG. 4). Although not shown inFIG. 1, theconnector24 is provided at a front end of a cable32 (seeFIG. 4). Thegame controller10 may directly be connected to thegame machine52 using theconnector24 or thegame controller10 may be connected to a device that can conduct communication with thegame machine52. For example, thegame controller10 may be connected to thegame machine52 through a different type of controller54 (seeFIG. 4) for thegame machine52.
Abattery30 that supplies the electric power is also accommodated in thegame controller10. However, in the embodiment, the electric power is supplied to themicrocomputer20 from an external device, such as thegame machine52 and the different type ofcontroller54, which is connected using theconnector24. On the other hand, the electric power is supplied from thebattery30 to theload sensor14, theamplifier28, and theAD converter22 through the DC-DC converter26. The DC-DC converter26 converts a direct-current voltage from thebattery30 into a different voltage to impart the converted voltage to theload sensor14, theamplifier28, and theAD converter22.
The electric power may be supplied to theload sensor14, theAD converter22, and theamplifier28 if needed such that themicrocomputer20 controls the DC-DC converter26. That is, when themicrocomputer20 determines that a need to operate theload sensor14 to detect the load arises, themicrocomputer20 may control the DC-DC converter26 to supply the electric power to eachload sensor14, eachamplifier28, and theAD converter22.
Once the electric power is supplied, eachload sensor14 outputs a signal indicating the input load. The signal is amplified by eachamplifier28, and the analog signal is converted into a digital data by theAD converter22. Then, the digital data is inputted to themicrocomputer20. Identification information on eachload sensor14 is imparted to the detection value of eachload sensor14, allowing for distinction among the detection values of theload sensors14. Thus, themicrocomputer20 can obtains the pieces of data indicating the detection values of the fourload sensors14 at the same time.
On the other hand, when themicrocomputer20 determines that the need to operate theload sensor14 does not arise, i.e., when themicrocomputer20 determines it is not the time the load is detected, themicrocomputer20 controls the DC-DC converter26 to stop the supply of the electric power to theload sensor14, theamplifier28, and theAD converter22. Thus, in thegame controller10, theload sensor14 is operated to detect the load only when needed, so that the power consumption for detecting the load can be suppressed.
Typically, the time the load detection is required shall means the time the game machine52 (FIG. 4) obtains the load data. For example, when thegame machine52 requires the load information, thegame machine52 transmits a load obtaining command to thegame controller10. When themicrocomputer20 receives the load obtaining command from thegame machine52, themicrocomputer20 controls the DC-DC converter26 to supply the electric power to theload sensor14, etc., thereby detecting the load. On the other hand, when themicrocomputer20 does not receive the load obtaining command from thegame machine52, themicrocomputer20 controls the DC-DC converter26 to stop the electric power supply. Alternatively, themicrocomputer20 determines it is the time the load is detected at regular time intervals, and themicrocomputer20 may control the DC-DC converter26. In the case when themicrocomputer20 periodically obtains the load, information on the period may initially be imparted from thegame machine52 to themicrocomputer20 or previously stored in themicrocomputer20.
The data indicating the detection value from theload sensor14 is transmitted as the manipulation data (input data) of thegame controller10 from themicrocomputer20 to the game machine52 (FIG. 4) through theconnector24. For example, in the case where the command is received from thegame machine52 to detect the load, themicrocomputer20 transmits the detection value data to thegame machine52 when receiving the detection value data of theload sensor14 from theAD converter22. Alternatively, themicrocomputer20 may transmit the detection value data to thegame machine52 at regular time intervals.
FIG. 4 shows an example of a game system orgame apparatus50 in which thegame controller10 is used. With reference toFIG. 4, thegame system50 includes a video game machine (hereinafter simply referred to as “game machine”)52 and acontroller54. Although not shown, thegame machine52 of the embodiment is designed to be able to conduct communication with up to fourcontrollers54. Thegame machine52 and thecontrollers54 are wirelessly connected. For example, the wireless communication is conducted pursuant to Bluetooth (registered trademark) standard. However, the wireless communication may be conducted pursuant to other standards such as an infrared ray and wireless LAN. In another embodiment, thecontroller54 may be connected to thegame machine52 in a wired manner.
Thecontroller54 is a game controller, a different type from thegame controller10. In the embodiment, thecontroller54 is a main game controller of thegame machine52, and thegame controller10 is prepared as an extended unit of thecontroller54 in order to utilize a wireless communication function of thecontroller54 with thegame machine52. Thegame controller10 is connected to thecontroller54 by theconnector24 that is located at the front end of thecable32 extended from theboard12. For the purpose of distinction, sometimes thecontroller54 is referred to as “remote control”.
Thegame machine52 includes ahousing56 having a substantially rectangular solid, and adisk slot58 is provided in a front face of thehousing56. Anoptical disk60 that is of an example of an information storage medium in which the game program and the like are stored is inserted from thedisk slot58 and placed on a disk drive62 (seeFIG. 5) in thehousing56. Although not shown, an LED and a light guide plate can be disposed around thedisk slot58 to turn on or blink the light of thedisk slot58 in response to various kinds of processing.
Apower button64aand areset button64bare provided in the front face and in the upper portion of thehousing56 of thegame machine52, and aneject button64cis provided in the front face and in the lower portion of thehousing56. An external memorycard connector cover66 is provided between thereset button64band theeject button64cand near thedisk slot58. An external memory card connector68 (seeFIG. 5) is provided inside the external memorycard connector cover66, and an external memory card (not shown, hereinafter simply referred to as “memory card”) is inserted in the externalmemory card connector68. The memory card is used to load and temporarily store the game program, etc. from theoptical disk60 or to store (save) game data (game result or data in the midstream of the game) of the game played using thegame system50. However, instead of the storage of the game data in the memory card, the game data may be stored in an internal memory such as a flash memory70 (seeFIG. 5) provided inside thegame machine52. The memory card may be used as a backup memory of the internal memory. Application except for the game can be performed in thegame machine52. In such cases, pieces of data of other applications can be stored in the memory card.
A general-purpose SD card can be used as the memory card, and other general-purpose memory cards such as Memory Stick and MultiMediaCard (registered trademark) can also be used.
Although not shown inFIG. 4, an AV cable connector72 (seeFIG. 5) is provided in a rear face of thehousing56 of thegame machine52, and amonitor76 and aspeaker76aare connected to thegame machine52 through anAV cable74 using theAV connector72. Typically, themonitor76 and thespeaker76aare a color television receiver, a video signal is inputted from thegame machine52 to a video input terminal of the color television receiver by theAV cable74, and an audio signal is inputted from thegame machine52 to an audio input terminal. Accordingly, for example, a game image of a three-dimensional (3D) video game is displayed on a screen of the color television receiver (monitor)76 while the stereo game sound such as game music and sound effect is outputted from the right and leftspeakers76a. Amarker unit78 including two infrared LEDs (markers)78mand78nis provided around the monitor76 (in the embodiment, on the monitor76). Themarker unit78 is connected to thegame machine52 through apower cable78a, which allows the electric power to be supplied to themarker unit78 from thegame machine52. Therefore, themarkers78mand78nemit the light to output the infrared light ahead of themonitor76.
The electric power of thegame machine52 is imparted by a general AC adaptor (not shown). The AC adaptor is inserted in a standard wall socket in home, and thegame machine52 converts home-use power supply (commercial power supply) into a low DC voltage signal suitable to the drive of thegame machine52. In another embodiment, the battery is used as the power supply.
In order that a user or player plays a game (or other applications except for the game) with thegame system50, the user turns on the power of thegame machine52, then the user appropriately selects theoptical disk60 in which a program of a video game (or another application to be played) is stored, and the user loads theoptical disk60 on thedisk drive62 of thegame machine52. Accordingly, thegame machine52 starts the execution of the video game or another application based on the program recorded in theoptical disk60. The user manipulates theremote control54 or thegame controller10 to impart the input to thegame machine52. For example, the game or another application can be started by manipulating one of input means80 such as various manipulation buttons provided in theremote control54 or using thegame controller10. In addition to the manipulation of the input means80, the movement of theremote control54 itself or the use of thegame controller10 can move a moving picture object (player object) in a different direction or change a viewpoint (camera position) of the user in the 3D game world.
Alternatively, the program of the video game or another application may be stored (installed) in the internal memory (flash memory70) of thegame machine52 and executed from the internal memory. In such cases, the program stored in the storage medium such as theoptical disk60 may be installed in the internal memory or downloaded program may be installed in the internal memory.
FIG. 5 is a block diagram showing an example of an electric configuration of thegame system50 of the embodiment shown inFIG. 4. Although not shown, each component in thehousing56 is mounted on a printed board. As shown inFIG. 5, aCPU82 is provided in thegame machine52 to act as a game processor. Asystem LSI84 is connected to theCPU82. An externalmain memory86, a ROM/RTC88, and thedisk drive62, and anAVIC90 are connected to thesystem LSI84.
The externalmain memory86 is used to store the programs such as the game program or various kinds of data, and the externalmain memory86 is used as a work area or a buffer area of theCPU82. The ROM/RTC88 is a so-called boot ROM into which a program starting up thegame machine52 is incorporated, and a time circuit is provided to count time in the ROM/RTC88. Thedisk drive62 reads the program or texture data or the like from theoptical disk60, and thedisk drive62 writes the program or texture data or the like in an internalmain memory84eor an externalmain memory86 under the control of theCPU82.
An input andoutput processor84a, a GPU (Graphics Processor Unit)84b, a DSP (Digital Signal Processor)84c, a VRAM84d, and an internalmain memory84eare provided in thesystem LSI84 and connected to one another by an internal bus (not shown).
The input and output processor (I/O processor)84aperforms the transmission and reception of the data or the download of the data.
TheGPU84bconstitutes a part of a drawing means and receives a graphics command (graphics generation command) from theCPU82 to generate game image data according to the command. In addition to the graphics command, theCPU82 imparts an image producing program necessary to produce the game image data to theGPU84b.
Although not shown, as described above, theVRAM84dis connected to theGPU84b. TheGPU84baccesses theVRAM84dto obtain the data (image data such as polygon data and texture data) necessary to execute the graphics generation command. TheCPU82 writes the image data necessary for the graphics generation in theVRAM84dthrough theGPU84b. TheGPU84baccesses theVRAM84dto produce the game image data for drawing.
In the embodiment, the explanation will be made in a case where theGPU84bproduces the game image data. However, in a case where any application except for the game application is executed, theGPU84bproduces the image data for the application.
TheDSP84cacts as an audio processor that produces audio data corresponding to the sound, voice, or music outputted from thespeaker76ausing sound data or sound waveform (tone) data stored in the internalmain memory84eor externalmain memory86.
The game image data and audio data produced in the above-described ways are read by theAVIC90 and outputted to themonitor76 andspeaker76athrough theAV connector72. Accordingly, a game screen is displayed on themonitor76, and the sound (music) necessary for the game is outputted from thespeaker76a.
Aflash memory70, awireless communication module92, and awireless controller module94 are connected to the input andoutput processor84a. Anextended connector96 and thememory card connector68 are also connected to the input andoutput processor84a. Anantenna92ais connected to thewireless communication module92 and anantenna94ais connected to thewireless controller module94.
The input andoutput processor84acan conduct communication with another game apparatus and various servers connected to a network through thewireless communication module92. However, the input andoutput processor84acan directly conduct communication with another game apparatus without the network. The input andoutput processor84aperiodically accesses theflash memory70 to detect the presence or absence of data (referred to as “transmission data”) necessary to be transmitted to the network, and the input andoutput processor84acan transmit the transmission data to the network through thewireless communication module92 andantenna92awhen the transmission data exists. The input andoutput processor84areceives data (referred to as “reception data”) transmitted from another game apparatus through the network,antenna92a, andwireless communication module92, and the input andoutput processor84acan store the reception data in theflash memory70. However, the reception data is directly destroyed in the case where the reception data does not satisfy a predetermined condition. The input andoutput processor84areceives data (referred to as “download data”) downloaded from a download server through the network,antenna92a, andwireless communication module92, and the input andoutput processor84acan store the download data in theflash memory70.
The input andoutput processor84areceives the input data (manipulation data) transmitted from theremote control54 through theantenna94aandwireless controller module94, and the input andoutput processor84astores (temporarily stores) the input data in the buffer area in the internalmain memory84eor externalmain memory86. The input data is erased from the buffer area after used in processing (for example, game processing) of theCPU82.
In the embodiment, as described above, thewireless controller module94 conducts communication with theremote control54 pursuant to the Bluetooth standard.
Moreover, theextended connector96 and thememory card connector68 are connected to the input andoutput processor84a. Theextended connector96 is a connector used for an interface such as a USB and an SCSI, and a medium such as an external storage medium or a peripheral device such as a controller different from theremote control54 can be connected to theextended connector96. The wired LAN can also be used instead of thewireless communication module92 by connecting a wired LAN adaptor to theextended connector96. An external storage medium such as the memory card can be connected to thememory card connector68. Accordingly, the input andoutput processor84acan access the storage medium to store or read the data through theextended connector96 ormemory card connector68.
Although the detailed description is omitted, thepower button64a, thereset button64b, and theeject button64care provided in the game machine52 (housing56) as shown inFIG. 4. Thepower button64ais connected to thesystem LSI84. When thepower button64ais turned on, the electric power is supplied to each component of thegame machine52 through the AC adaptor (not shown), and thesystem LSI84 is set to a mode (referred to as “normal mode”) in which a normal electric conduction state is established. On the other hand, when thepower button64ais turned off, the electric power is supplied only to a part of the components of thegame machine52, and thesystem LSI84 is set to a mode (hereinafter referred to as “standby mode”) in which the power consumption is kept at a minimum level. In the case where the standby mode is set, thesystem LSI84 provides an instruction to stop the electric power supply to the components except for the input andoutput processor84a, theflash memory70, the externalmain memory86, the ROM/RTC88, thewireless communication module92, and thewireless controller module94. Accordingly, in the standby mode, theCPU82 does not execute the application.
Although the electric power is supplied to thesystem LSI84 even in the standby mode, theGPU84b, theDSP84c, and theVRAM84dare not driven to reduce the power consumption by stopping clock supply to theGPU84b, theDSP84c, and theVRAM84d.
Although not shown, a fan is provided in thehousing56 of thegame machine52 to discharge heat of ICs such as theCPU82 and thesystem LSI84 to the outside. The fan is also stopped in the standby mode.
In the case where the standby mode is not utilized, the electric power supply is completely stopped to all the circuit components by selecting a setting in which the standby mode is not utilized, when thepower button64ais turned off.
The switch between the normal mode and the standby mode can remotely be performed by the switch of on/off of apower switch80h(seeFIG. 6) of theremote control54. In the case where the remote manipulation is not performed, a setting in which the electric power is not supplied to thewireless controller module94amay be established in the standby mode.
Thereset button64bis also connected to thesystem LSI84. When thereset button64bis pressed, thesystem LSI84 restarts a start-up program of thegame machine52. Theeject button64cis connected to thedisk drive62. When theeject button64cis pressed, theoptical disk60 is ejected from thedisk drive62.
FIGS. 6(A) to 6(E) show an example of an appearance of theremote control54.FIG. 6(A) shows a front-end surface of theremote control54,FIG. 6(B) shows an upper surface of theremote control54,FIG. 6(C) shows a right side face of theremote control54,FIG. 6(D) shows a lower surface of theremote control54, andFIG. 6(E) shows a rear-end surface of theremote control54.
With reference toFIGS. 6(A) to 6(E), theremote control54 has ahousing98 formed by, e.g., plastic molding. Thehousing98 is formed in a substantially rectangular solid, and thehousing98 has a size that can be grasped by a single hand of the user. Input means (a plurality of buttons and switches)80 are provided in the housing98 (remote control54). Specifically, as shown inFIG. 6(B), a cross key80a, a (1)button80b, a (2)button80c, anA button80d, a (−)button80e, aHOME button80f, a (+)button80g, and thepower button80hare provided in an upper surface of thehousing98. As shown inFIGS. 6(C) and 6(D), an inclined surface is provided in a lower surface of thehousing98, and aB trigger switch80iis provided in the inclined surface.
The cross key80ais a four-directional push switch, and the cross key80aincludes manipulation portions of four directions shown by arrows, i.e., forward (or upward), backward (or downward), rightward, and leftward directions. For example, the player can provide the instruction of moving direction of a manipulable character or object (player character or player object) or cursor by manipulating one of the manipulation portions.
The (1)button80band the (2)button80care push-button switches. For example, the (1)button80band the (2)button80care used in the game manipulation such that the viewpoint position or the viewpoint direction, i.e, the position or a view angle of a virtual camera are adjusted when the three-dimensional game image is displayed. Alternatively, the (1)button80band the (2)button80cmay be used to perform the same manipulations as theA button80dandB trigger switch80ior a supplementary manipulation.
TheA button switch80dis a push-button switch used to cause the player character or player object to perform motions except for the directional instruction, i.e., any action such as punch, throw, grasp (obtaining), ride, and jump. For example, in an action game, the user can provide the instructions such as the jump, punch, and movement of a weapon. In a role-playing game (RPG) or a simulation RPG, the user can provide the instructions such as obtaining of an item and selection and determination of the weapon or command. TheA button switch80dis also used to instruct the determination of an icon indicated by a pointer (indicated image) or a button image on the game screen. For example, when the icon or button image is determined, the instruction or command (game command) previously set corresponding to the icon or button image can be inputted.
Similarly, the (−)button80e, theHOME button80f, the (+)button80g, and thepower button80hare push-button switches. For example, the (−)button80eis used to select a game mode. TheHOME button80fis used to display a game menu (menu screen). The (+)button80gis used to start (resume) the game or suspend the game. Thepower switch80his used to remotely turn on/off the power of thegame machine52.
In the embodiment, a power switch for turning on/off theremote control54 itself is not provided. Theremote control54 is turned on by manipulating one of the input means80 of theremote control54, and theremote control54 is automatically turned off unless manipulated for over a predetermined time (for example, 30 seconds).
TheB trigger switch80iis also a push-button switch, and is mainly used to perform the input emulating a trigger such as shooting or specify the position selected by theremote control54. When theB trigger switch80iis continuously pressed, the motion or a parameter of the player object can be kept at a constant state. In a certain state, theB trigger switch80iacts as the normal B button, and theB trigger switch80iis used to delete the action or command or the like determined by theA button80d.
As shown inFIG. 6(E), an externalextended connector100 is provided in a rear end face of thehousing98, and anindicator102 is provided in the upper surface of thehousing98 and on the rear end face side as shown inFIG. 6(B). The externalextended connector100 is used to connect an extended controller different from theremote control54. Theindicator102 includes, e.g. four LEDs. Theindicator102 can indicate identification information (controller number) of theremote control54 according to the lit LED by lighting on one of the four LEDs. Theindicator102 can also indicate a remaining battery level of theremote control54 by the number of lit LEDs.
Theremote control54 includes an imaging information computation unit104 (seeFIG. 7), and alight incident port106 of the imaginginformation computation unit104 is provided in a front-end face of thehousing98 as shown inFIG. 6(A). Theremote control54 includes a speaker108 (seeFIG. 7), and thespeaker108 is provided in thehousing98 according to asound release hole110 provided in the upper surface of thehousing98 and between the (1)button80band theHOME button80fas shown inFIG. 6(B).
The shape of theremote control54 and the shape, the quantity, and the installation position, etc. of each input means80 are shown inFIGS. 6(A) to 6(E) only by way of example, and which may be changed as appropriate.
FIG. 7 is a block diagram showing an example of the electric configuration of theremote control54. With reference toFIG. 7, theremote control54 includes aprocessor112, and the externalextended connector100, the input means80, amemory114, anacceleration sensor116, awireless module118, the imaginginformation computation unit104, the LED120 (indicator102), avibrator122, thespeaker108, and apower supply circuit124 are connected to theprocessor112 by an internal bus (not shown). Anantenna118ais connected to thewireless module118.
Apower supply circuit124 supplies the electric power to each component of theremote control54. Typically thepower supply circuit124 is a battery exchangeably accommodated in thehousing98. Thepower supply circuit124 can also supply the electric power to the extended units (such as the game controller10) connected through the externalextended connector100.
Although not shown inFIG. 7 for the purpose of simple explanation, theindicator102 includes the fourLEDs120 as described above.
Theprocessor112 controls the whole of theremote control54. Theprocessor112 transmits (inputs) pieces of information (input information) inputted by the input means80,acceleration sensor116, and imaginginformation computation unit104 and pieces of information (such as data from the game controller10) obtained through the externalextended connector100 to thegame machine52 through thewireless module118 andantenna118ain the form of the input data (manipulation data). At this point, theprocessor112 uses thememory114 as the work area or buffer area. The manipulation signals (pieces of manipulation data) from the input means80 (80ato80i) are inputted to theprocessor112, and theprocessor112 temporarily stores the pieces of manipulation data in thememory114.
Theacceleration sensor116 detects acceleration in each of three axes of a longitudinal direction (y-axis direction), a crosswise direction (x-axis direction), and a fore-and-aft direction (z-axis direction) of theremote control54. Typically, an electrostatic capacity type acceleration sensor is used as theacceleration sensor116. However, different type acceleration sensor may be used.
For example, theacceleration sensor116 detects the acceleration (ax, ay, az) for the x-axis, y-axis, and z-axis at first predetermined time intervals, and theacceleration sensor116 inputs the detected acceleration data to theprocessor112. For example, theacceleration sensor116 detects the acceleration in each axial direction in a range of −2.0 g to 2.0 g (g is gravitational acceleration, hereinafter the same). Theprocessor112 detects the acceleration data imparted from theacceleration sensor116 at second predetermined time intervals, and theprocessor112 temporarily stores the acceleration data in thememory114.
Theprocessor112 produces input data (manipulation data) including at least one of the manipulation data, the acceleration data, and later-mentioned marker coordinate data, and theprocessor112 transmits the produced input data to thegame machine52 at third predetermined time intervals (for example, 5 ms). Theprocessor112 can add the data received from thegame controller10 through the externalextended connector100 to the input data.
Although not shown inFIGS. 6(A) to 6(E), in the embodiment, theacceleration sensor116 is provided near the position where the cross key80ais disposed on the board in thehousing98.
At this point, those skilled in the art easily understand from the description of the present invention that the computer such as the processor (for example, CPU82) of thegame machine52 and the processor (for example, processor112) of theremote control54 can perform processing to estimate or compute (determine) further information on theremote control54 based on the acceleration data outputted from theacceleration sensor116.
For example, in the case where theuni-axial acceleration sensor116 is mounted on theremote control54 to perform the processing on the computer side while theremote control54 is assumed to be in the static state, namely, in the case where the processing is performed while the acceleration detected by theacceleration sensor116 is assumed to be formed only by the gravitational acceleration, whether or not an attitude of theremote control54 is inclined with respect to the gravitational direction or how much the attitude of theremote control54 is inclined with respect to the gravitational direction can be understood based on the detected acceleration data when theremote control54 is actually in the static state. Specifically, on the basis of the state in which theacceleration sensor116 has a vertically-downward detection axis, whether or not the attitude of theremote control54 is inclined by the application of 1 g (gravitational acceleration) and how much the attitude of theremote control54 is inclined by a magnitude of the acceleration can be understood.
In the case where themulti-axis acceleration sensor116 is mounted on theremote control54, how much the attitude of theremote control54 is inclined with respect to the gravitational direction can be understood in detail by performing processing to the acceleration data of each axis. In this case, theprocessor112 may perform processing for computing data of an inclination angle of theremote control54 based on the output of theacceleration sensor116, or processing for roughly estimating the inclination may be performed without performing the processing for computing the data of the inclination angle based on the output from theacceleration sensor116. Thus, the inclination, attitude, or position of theremote control54 can be determined by the combination of theacceleration sensor116 and theprocessor112.
On the other hand, assuming that theacceleration sensor116 is in a dynamic state, because the acceleration is detected according to the motion of the acceleration sensor in addition to the gravitational acceleration component, the direction of the motion and the like can be understood when the gravitational acceleration component is removed by predetermined processing. Specifically, in the case where theremote control54 on which theacceleration sensor116 is mounted is moved by the user while dynamically accelerated, various motions and/or positions of theremote control54 can be computed by processing the acceleration data produced by theacceleration sensor116.
Even if theacceleration sensor116 is assumed to be in the dynamic state, the inclination can be understood with respect to the gravitational direction when the acceleration corresponding to the motion of theacceleration sensor116 is removed by predetermined processing. In another embodiment, theacceleration sensor116 may include a built-in signal processing unit or another dedicated processing unit in order to perform desired processing to the acceleration signal (acceleration data) outputted from the built-in acceleration detection means before the acceleration data is outputted from theprocessor112. For example, in the case where theacceleration sensor116 is used to detect the static acceleration (for example, gravitational acceleration), the built-in or dedicated processing unit may convert the detected acceleration data into the corresponding inclination angle (or other preferable parameter).
Thewireless module118 uses, e.g., the Bluetooth technique to modulate a carrier wave having a predetermined frequency using the input data, and thewireless module118 radiates the weak radio signal from theantenna118a. That is, the input data is modulated into the weak radio signal by thewireless module118 and transmitted from theantenna118a(remote control54). The weak radio signal is received by thewireless controller module94 provided in thegame machine52. Demodulation and decoding are performed to the received weak radio signal, which allows the game machine52 (CPU82) to obtain the input data from theremote control54. TheCPU82 can perform the application processing (game processing) according to the obtained input data and the application program (game program).
As described above, the imaginginformation computation unit104 is provided in theremote control54. The imaginginformation computation unit104 includes aninfrared filter104a, alens104b, animaging device104c, and animage processing circuit104d. Theinfrared filter104atransmits only the infrared ray in the light incident from ahead of theremote control54. As described above, themarkers78mand78ndisposed near (around) the display screen of themonitor76 are infrared LEDs that output the infrared ray ahead of themonitor76. Accordingly, the images of themarkers78mand78ncan be taken more exactly by providing theinfrared filter104a. The infrared ray transmitted through theinfrared filter104ais outputted to theimaging device104cthrough thelens104b. Theimaging device104cis a solid-state imaging device, such as a CMOS sensor or a CCD, which images the infrared ray collected by thelens104b. Accordingly, theimaging device104cimages only the infrared ray transmitted through theinfrared filter104ato produce the image data. Hereinafter the image taken by theimaging device104cis referred to as taken image. The image data produced by theimaging device104cis processed by theimage processing circuit104d. Theimage processing circuit104dcomputes the position of the imaging target (markers78mand78n) in the taken image and outputs each coordinate value indicating the position as imaging data (later-mentioned marker coordinate data) to theprocessor112 at fourth predetermined time intervals. The processing performed in theimage processing circuit104dis described later.
FIG. 8 is an illustrative view roughly explaining a state in which the game is played using theremote control54 in thevideo game system50. As shown inFIG. 8, the player grasps theremote control54 in one hand. Exactly, in the case where the pointing function of theremote control54 is used, the player grasps theremote control54 while the front-end surface (the side of theincident port106 to which the light imaged by the imaginginformation computation unit104 is incident) of theremote control54 is orientated toward themarkers78mand78n. However, as can be seen fromFIG. 4, themarkers78mand78nare disposed in parallel with the crosswise direction of the screen of themonitor76. In this state of things, the player changes the position on the screen indicated by theremote control54 or the distance between theremote control54 and themarker78mor78nto perform the game manipulation.
FIG. 9 is an illustrative view for explaining view angles of themarkers78mand78nandremote control54. As shown inFIG. 9, themarkers78mand78neach emit the infrared ray in a range of a view angle θ1. Theimaging device104cof the imaginginformation computation unit104 can receive the incident light in a range of a view angle θ2 around a visual axis direction of theremote control54. For example, each of themarkers78mand78nhas the view angle θ1 of 34° (half-value angle), and theimaging device104chas the view angle θ2 of 41°. The player grasps theremote control54 such that theimaging device104cis set to the position and orientation at which the infrared rays can be received from the twomarkers78mand78n. Specifically, the player grasps theremote control54 such that at least one of themarkers78mand78nexists in the view angle θ2 of theimaging device104cwhile theremote control54 exists in the view angle θ1 of at least one of themarkers78mand78n. In this state, theremote control54 can detect at least one of themarkers78mand78n. The player can change the position and orientation of theremote control54 to perform the game manipulation in the range satisfying this state. In the case where one of themarkers78mand78nis detected, for example, a tentative marker coordinate is set instead of the marker that is not detected by utilizing the immediately preceding pieces of data in which the twomarkers78mand78nare detected, allowing the computation of the position indicated by theremote control54.
In the case where the position and orientation of theremote control54 are out of the range, the game manipulation cannot be performed based on the position and orientation of theremote control54. Hereinafter the range is referred to as “manipulable range”.
In the case where theremote control54 is grasped in the manipulable range, the images of themarkers78mand78nare taken by the imaginginformation computation unit104. That is, the taken image obtained by theimaging device104cincludes the images (target images) of themarkers78mand78nthat are of the imaging target.FIG. 10 is a view showing an example of the taken image including the target image. Using the image data of the taken image including the target image, theimage processing circuit104dcomputes the coordinate (marker coordinate) indicating the position in the taken images of themarkers78mand78n.
Because the target image appears as a high-brightness portion in the image data of the taken image, theimage processing circuit104ddetects the high-brightness portion as a candidate of the target image. Then, theimage processing circuit104ddetermines whether or not the high-brightness portion is the target image based on the size of the detected high-brightness portion. Sometimes the taken image includes not onlyimages78m′ and78n′ corresponding to the twomarkers78mand78nthat are of the target image but also the image except for the target image due to the sunlight from a window or a fluorescent light. The processing of the determination whether or not the high-brightness portion is the target image is performed in order to distinguish theimages78m′ and78n′ that are of the target image from other images to exactly detect the target image. Specifically, the determination whether or not the detected high-brightness portion has the size within a predetermined range is made in the determination processing. When the high-brightness portion has the size within the predetermined range, it is determined that the high-brightness portion indicates the target image. On the contrary, when the high-brightness portion does not have the size within the predetermined range, it is determined that the high-brightness portion indicates the image except for the target image.
Then, theimage processing circuit104dcomputes the position of the high-brightness portion for the high-brightness portion in which it is determined as a result of the determination processing that the high-brightness portion indicates the target image. Specifically, a barycentric position of the high-brightness portion is computed. Hereinafter the coordinate of the barycentric position is referred to as marker coordinate. The barycentric position can be computed in more detail compared with resolution of theimaging device104c. At this point, it is assumed that the image taken by theimaging device104chas the resolution of 126×96 and the barycentric position is computed in a scale of 1024×768. That is, the marker coordinate is expressed by an integer number of (0, 0) to (1024, 768).
The position in the taken image is expressed by a coordinate system (XY-coordinate system) in which an origin is set to an upper left of the taken image, a downward direction is set to a positive Y-axis direction, and a rightward direction is set to a positive X-axis direction.
In the case where the target image is correctly detected, two marker coordinates are computed because the two high-brightness portions are determined as the target image by the determination processing. Theimage processing circuit104doutputs the pieces of data indicating the two computed marker coordinates. As described above, the outputted pieces of marker coordinate data are added to the input data by theprocessor112 and transmitted to thegame machine52.
When the game machine52 (CPU82) detects the marker coordinate data from the received input data, thegame machine52 can compute the position (indicated coordinate) indicated by theremote control54 on the screen of themonitor76 and the distances between theremote control54 and themarkers78mand78nbased on the marker coordinate data. Specifically, the position toward which theremote control54 is orientated, i.e., the indicated position is computed from the position at the midpoint of the two marker coordinates. When the coordinate of the position indicated by theremote control54 is computed from the marker coordinate, the coordinate system of the taken image ofFIG. 10 is appropriately converted into the coordinate system for expressing the position on the screen.
In the embodiment, theremote control54 performs the predetermined computation processing to the imaging data to detect the marker coordinate, and the marker coordinate data is transmitted to thegame machine52. Alternatively, in another embodiment, the imaging data is transmitted as the input data from theremote control54 to thegame machine52, and theCPU82 of thegame machine52 may perform the predetermined computation processing to the imaging data to detect the marker coordinate and the coordinate of the indicated position.
The distance between the target images in the taken image is changed according to the distances between theremote control54 and themarkers78mand78n. The distance between themarkers78mand78n, a width of the taken image, and the view angle θ2 of theimaging device104care previously determined, so that thegame machine52 can compute the current distances between theremote control54 and themarkers78mand78nby computing the distance between the marker coordinates.
In thegame system50, thegame controller10 is used for the game manipulation by the load applied by the player. Theconnector24 of thegame controller10 is connected to the externalextended connector100 of theremote control54, thereby connecting thegame controller10 and theremote control54. This enables thegame controller10 to transmit and receive the data to and from thegame machine52 through theremote control54.
As described above, thegame controller10 can detect the load only when thegame machine52 requires the load. Specifically, when thegame machine52 requires the load detected by thegame controller10, theCPU82 of thegame machine52 wirelessly transmits the load obtaining command for thegame controller10 to theremote control54. When theprocessor112 of theremote control54 receives the load obtaining command from thegame machine52, theprocessor112 transmits the load obtaining command to thegame controller10 through the externalextended connector100. When themicrocomputer20 of thegame controller10 receives the load obtaining command through theconnector24 andcable32, themicrocomputer20 controls the DC-DC converter26 to supply the electric power to theload sensor14,amplifier28, andAD converter22. Therefore, the signal indicating the load applied to eachload sensor14 is outputted, and the signal is amplified by eachamplifier28 and imparted to theAD converter22. TheAD converter22 converts the signal into the digital data and outputs the digital data to themicrocomputer20. Accordingly, themicrocomputer20 can obtain the load detection value data detected by each of the fourload sensors14.
Themicrocomputer20 transmits the obtained load detection value data to theremote control54 through thecable32 andconnector24. The load detection value data may directly be transmitted, or the load detection value data may be transmitted after predetermined computation processing is performed to the detection value or computation processing is performed according to the load obtaining command. Theprocessor112 of theremote control54 stored the load detection value data in thememory114 when receiving the load detection value data from thegame controller10 through the externalextended connector100. Theprocessor112 produces the input data (manipulation data) including the load detection value data and transmits the input data togame machine52 through thewireless module118. TheCPU82 of thegame machine52 obtains the load value of thegame controller10 from the received input data, and theCPU82 can use the load value for the game processing. Accordingly, the player can perform various game manipulations by the load applied to thegame controller10.
FIG. 11 is an illustrative view roughly explaining a state in which the game is played using thegame controller10. The devices except for theboard12 of thegame controller10 and themonitor76 are omitted inFIG. 11. In playing the game with the load, typically the player puts the player's legs on theboard12 of thegame controller10 as shown inFIG. 11. The fourload sensors14 detect the loads applied to thegame controller10 by the player, and the load detection value that is of the manipulation data by the player is transmitted to thegame machine52. The load value detected by eachload sensor14 depends on the position where the player rides on theboard12. The load value detected by eachload sensor14 is changed according to the change in load when the player moves the body on theboard12 or when the player changes the loads applied to the right and left legs or the like. In thegame machine52, the game processing is performed based on the load applied by the player. Accordingly, the player can play the game by performing the game manipulation for appropriately applying the load such as the change in position where the player rides on theboard12 and the movement of the body.
For example, in the case of a game performed based on the simple total value of the four load values detected by the fourload sensors14, the player can take any position with respect to the fourload sensors14 of thegame controller10, that is, the player can play the game while riding on any position of theboard12 with any orientation. However, depending on the type of the game, it is necessary to perform processing while determining toward which direction the load value detected by eachload sensors14 is orientated when viewed from the player. That is, it is necessary to understand a positional relationship between the fourload sensors14 of thegame controller10 and the player. For example, the positional relationship between the fourload sensors14 and the player is previously defined, and it may be assumed that the player rides on theboard12 such that the predetermined positional relationship is obtained. Typically, there is defined such the positional relationship that each twoload sensors14 exist at the front and the back of and on right and left sides of the player riding on the center of theboard12, i.e. such the positional relationship that theload sensors14 exist in the right front, left front, right rear, and left rear directions from the center of the player respectively when the player rides on the center of theboard12 of thegame controller10. In the typical game in which the screen of themonitor76 is located at the front of the player, as shown inFIG. 11, thegame controller10 is disposed such that a predetermined one side of theboard12 is located on the side of themonitor76 in parallel with the screen. Therefore, the above-described predetermined positional relationship is easily obtained, and the load value of eachload sensor14 becomes the load value in the predetermined direction when viewed from the player.
A spot may be provided in theboard12 in order to provide information on such the arrangement of thegame controller10 that the predetermined positional relationship is obtained to the player. For example, in order that the twoadjacent load sensors14 in predetermined one side of theboard12 are disposed at the front of the player, i.e., on the side of themonitor76, the spot may be provided in a predetermined portion such as the upper surface or side face along the predetermined one side of theboard12. Alternatively, thecable32 of theconnector24 is configured to be extracted from a predetermined portion in the side face or lower surface along the predetermined one side of theboard12, and the position from which thecable32 is extracted may be set to the spot.
Thegame controller10 and thegame machine52 can understand that the load detection values correspond to which direction when viewed from the player based on the identification information on eachload sensor14 included in the load detection value data and the previously-set (stored) information on the arrangement of theload sensors14. Accordingly, the intention of the game manipulation, such as the front, rear, right, and left manipulation directions, which is performed by the player can be understood.
The arrangement of theload sensors14 relative to the player is not previously defined but the arrangement may be set by the player's input in the initial setting or the like. For example, the load is obtained while the screen in which the player instructed to ride on the portion in a predetermined direction (such as the right front, left front, right rear, and left rear directions) when viewed from the player. Therefore, the positional relationship between eachload sensor14 and the player can be specified, and the information on the arrangement by the setting can be generated and stored.
A positional relationship in which theload sensors14 exist at the front and back of and on right and left sides of the player respectively may be assumed in another embodiment. In this case, thegame controller10 is disposed such that one predetermined corner of theboard12 exists on the side of themonitor76 while a predetermined diagonal line is parallel to the screen. The spot may be provided in the upper surface or side face at the one predetermined corner of theboard12.
In thegame system50, the quantity of load values necessary to the game processing is determined, and the determined quantity of load values is computed from the four load detection values. The game processing is performed based on the necessary quantity of load computation values. Because the necessary quantity of load values is computed from the four load detection values to perform the game processing, a novel game with thegame controller10 including theload sensor14 can be proposed to perform various games.
In the embodiment, the game is performed such that the necessary quantity of load values is kept constant.FIGS. 12 to 14 show screens of the three games of the embodiment.
FIG. 12 shows the screen of the game in which the one load value is required. In the game, one load value is computed from the four load detection values and the game processing is performed based on the load value. The game is called a total load game (total load mode) and based on the summation (total load value) of the four load detection values. An example of the total load game is a squat game in which the player does the squat (knee bending) on theboard12. For example, a message of “Do squat!” is displayed on the screen, and the player is required to do the squat as many as possible within a time-limit. The determination whether or not the player is successful in the squat is made based on the total load value. For example, a waveform indicating a temporal change in total load value is shown by a graph. When the waveform is changed in a predetermined shape, it is determined that the player is successful in the squat, and the character of success and the number of successful times are displayed on the screen. When the waveform is not changed in the predetermined shape, it is determined that the player fails in the squat, and the character of failure is displayed. A score is given to the player according to the number of successful times within the time-limit.
FIG. 13 shows the screen of the game in which the two load values are required. In the game, two load values are computed from the four load detection values and the game processing is performed based on the two load values. The game is called right and left balance game (right and left balance mode) played by the balance of the player in the right and left directions. Specifically, as shown in the lower portion ofFIG. 13, the fourload sensors14 of thegame controller10 are divided into two sets of the right set including the twoload sensors14 and the left set including the twoload sensors14. The player's legs are schematically shown by the two shapes shown by the dotted line on thegame controller10 for the purpose of easy understanding of the positional relationship between the player and the fourload sensors14. The numeral14adesignates theload sensor14 located in the upper left (left front) of the player, the numeral14bdesignates theload sensor14 located in the lower left (left rear) of the player, the numeral14cdesignates theload sensor14 located in the upper right (right front) of the player, and the numeral14ddesignates theload sensor14 located in the lower right (right rear) of the player. The load values of the two sets are computed. That is, the summation (left load value) of the load detection values of theload sensors14aand14bon the left side of the player and the summation (right load value) of the load detection values of theload sensors14cand14don the right side of the player are computed. In the game, the player is required to keep the right and left balance such that the right load value and the left load value are kept within each predetermined range for a predetermined time. A message of “Stop motion in a frame for three seconds!”, a bar graph indicating the right load value, a bar graph indicating the left load value, and two frames indicating target ranges of the right and left load values are shown on the screen. When the upper end of the bar indicating each load value is falls within each frame for three seconds, the game is cleared and a score is given to the player.
FIG. 14 shows the screen of the game in which the four load values are required. In the game, the four load values are computed from the four load detection values and the game processing is performed based on the four load values. The game is called four-directional balance game (four-directional balance mode) played by the balance of the player in the vertical and horizontal directions. As used herein, the vertical direction of the player shall mean the fore-and-aft direction of the player. Specifically, as shown in the lower portion ofFIG. 14, the load values are computed in the vertical and horizontal directions of the player. That is, the summation (upper load value) of the load detection values of theload sensors14aand14con the upper side of the player, the summation (lower load value) of the load detection values of theload sensors14band14don the lower side of the player, the summation (left load value) of the load detection values of theload sensors14aand14bon the left side of the player, and the summation (right load value) of the load detection values of theload sensors14cand14don the right side of the player are computed. In the game, the player is required to keep the vertical and horizontal balances such that the upper load value, the lower load value, the right load value, and the left load value are kept within each predetermined range for a predetermined time. Similarly to the right and left balance game, a message, four bar graphs indicating the load values, and four frames indicating target ranges of the load values are shown on the screen. When the upper end of the bar indicating each load value is falls within each frame for three seconds, the game is cleared and a score is given to the player.
FIG. 15 shows an example of a memory map of thegame machine52. The memory map includes aprogram memory area200 and adata memory area202. The program and part of pieces of data are read at once from theoptical disk60 or read partially and sequentially if needed, and the program and part of pieces of data are stored in the externalmain memory86.FIG. 15 only shows a part of the memory map, and other program and pieces of data necessary for the processing are also stored. For example, the sound data for outputting the sound such as the voice, sound effect, and music, the image data for producing the screen, the sound output program, and the image producing display program are read from theoptical disk60 and stored in thedata memory area202 orprogram memory area200. In the embodiment, the program and part of pieces of data are read from theoptical disk60. However, in another embodiment, the program and pieces of data previously stored in a nonvolatile storage medium such as theflash memory70 incorporated in thegame machine52 may be read and stored in the externalmain memory86. At this point, the program downloaded through the network may be stored in the storage medium using thewireless communication module92 of thegame machine52 or the communication module connected to theextended connector96.
A game selection program is stored in amemory area204. The game selection program is used to select the game (mode) to be performed. For example, one game is selected from the plurality of games (the total load game, the right and left balance game, and the four-directional balance game) by the input of the player. In the case where the selection is made by the player input, a game selection screen having icons corresponding to the plurality of games is displayed, and the icon is selected by the position indication using the imaginginformation computation unit104 of theremote control54, the indication using the cross key80a, or the indication using thegame controller10, or the like. Alternatively, the game may be selected according to the performance order previously determined in the program or the game may randomly be selected.
A command transmission program is stored in amemory area206. The command transmission program is used to transmit the load obtaining command to thegame controller10. The load obtaining command is transmitted when the load value is required (load obtaining timing). The load obtaining timing may be set so as to come at regular time intervals, or the load obtaining timing may be set only when a predetermined game status or an event is generated. When thegame controller10 receives the load obtaining command, in thegame controller10, the load is detected by theload sensor14 and the load detection value is transmitted to thegame machine52.
A load detection value obtaining program is stored in amemory area208. The load detection value obtaining program is used to receive and obtain the load detection value transmitted from thegame controller10.
A correction program is stored in amemory area210. The correction program is used to correct the obtained load detection value. For example, even if the player believes that the player rides on the center of theboard12, namely, even if the player believes the player rides on theboard12 such that the barycenter is located in the center of theboard12, sometimes a variation in load values detected by the fourload sensors14 is generated depending on individual characteristics such as the attitude of the player, a standing position, a physical feature (such as difference in length of the legs), and a habit. Accordingly, in the embodiment, the load detection value is appropriately corrected to accurately recognize the game manipulation by the load of the player. The correction is performed based on difference of the load detection values of the fourload sensors14. Specifically, the detection value is corrected based on a correction value computed by a correction value computing program described below.
The correction value computing program is stored in amemory area212. The correction value computing program is used to compute the correction value for correcting the load detection value. The correction value computation is performed by the initial setting before the game is started. For example, the image in which the player is instructed to ride on the center of theboard12 of thegame controller10 is displayed on themonitor76, and the four load detection values detected by the fourload sensors14 are obtained. The two kinds of the differences are computed in the different combinations from the four load detection values, and the correction value is computed based on the two kinds of the differences. Specifically, the fourload sensors14 are divided into first two sets, i.e., into the right and left, the right load value and the left load value are computed, and a first difference is computed by taking the difference between the right load value and the left load value. A first correction value is computed to correct each of the load detection values divided into the right and left based on the first difference. The fourload sensors14 are divided into second two sets, i.e., into the upper and lower portions, the upper load value and the lower load value are computed, and a second difference is computed by taking the difference between the upper load value and the lower load value. A second correction value is computed to correct each of the load detection values divided into the upper and lower portions based on the second difference. Then, a final correction value of each load detection value is computed based on the first difference and the second difference. Each load detection value is corrected based on each final correction value.
For example, assuming that the left load has the value of 60 and the right load has the value of 40, the first difference becomes 20, and the first correction value is computed by equally dividing the first difference into four. That is, the first correction value for the upperleft load sensor14aand lowerleft load sensor14bbecomes −5 (=−20/4), and the first correction value for the upperright load sensor14cand lowerright load sensor14dbecomes 5(=20/4). Assuming that the upper load has the value of 30 and the lower load has the value of 70, the second difference becomes 40, and the second correction value is computed by equally dividing the second difference into four. That is, the second correction value for the upperleft load sensor14aand upperright load sensor14cbecomes 10 (=40/4), and the second correction value for the lowerleft load sensor14band lowerright load sensor14dbecomes −10 (=−40/4). The correction values finally set for the fourload sensors14 are computed based on the first correction value and the second correction value. Specifically, the final correction value is computed by adding the first correction value and the second correction value. That is, the final correction value for the upperleft load sensor14abecomes +5 (=−5+10), the final correction value for the lowerleft load sensor14bbecomes −15 (=−5-10), the final correction value for the upperright load sensor14cbecomes +15 (=5+10), and the final correction value for the lowerright load sensor14dbecomes −5 (=5-10).
A necessary quantity determining program is stored in amemory area214. The necessary quantity determining program is used to determine the quantity of load values necessary for the game processing. In the embodiment, because the total load game, the right and left balance game, and the four-directional balance game, etc. as described above are performed, the necessary quantity of load values is determined in each game or game mode or the like, and information such as a quantity table in which the necessary quantity of load values is set in each game or game mode or the like is previously stored. Accordingly, the necessary quantity of load values can be determined by the identification information such as a game name or the type or mode of the game. In another embodiment, the necessary quantity of load values may be changed according to the scene or status or the like of the game. In such cases, the necessary quantity of load values is determined by the scene of the game or the like.
A load value computing program is stored in amemory area216. The load value computing program is used to compute the quantity of load values necessary for the game processing based on the load detection values from the fourload sensors14. In the case where the correction is performed by the correction program, the load value is computed based on the corrected load detection value. Specifically, the summation (total load value) of the four load detection values is computed in the case of the total load game, the right and left load values are computed in the case of the right and left balance game, and the left load value, the right load value, the upper load value, and the lower load value are computed in the case of the four-directional balance game. Because the necessary quantity of load values is computed from the four load detection values, the game processing can be performed using various quantities of load values according to the game. Depending on the game, sometimes the load detection value (corrected load detection value) is directly used. In such cases, the load detection value (corrected load detection value) is directly computed as the load computation value.
A game processing program is stored in amemory area218. The game processing program is used to perform the game processing based on the load computation value. In the embodiment, the game processing is performed for the total load game, the right and left balance game, and the four-directional balance game, etc.
Amemory area220 is an input data buffer in which the pieces of input data (manipulation data) from thegame controller10 andremote control54 are stored. Amemory area222 is a selection game memory area where the identification information on the game selected by the game selection program is stored.
The load detection values of the fourload sensors14 obtained from theinput data buffer220 using the load detection value obtaining program are stored in amemory area224. The correction values, i.e., the final correction values for the fourload sensors14 computed using the correction value computing program are stored in amemory area226. The load detection values corrected using the correction program are stored in amemory area228.
The quantity table indicating the quantity of load values necessary for the game processing is stored in amemory area230. In the embodiment, the necessary quantity of load values is stored while correlated with the name or type of the game or the like. The load computation value obtained using the load value computing program is stored in amemory area232.
A squat flag is stored in amemory area234. The squat flag indicates status in action or at rest in the total load game. For example, the squat flag is turned on when the change in summation (total load value) of the four load detection values is not lower than a predetermined value. A squat success counter indicating the number of times at which the player is successful in the squat is stored in amemory area236. A time counter is stored in amemory area238. In the squat determination of the total load game, the time counter is used to measure a time for one-time squat. In the right and left balance game and the four-directional balance game, the time counter is used to measure a time during which each load computation value falls within the predetermined target range.
FIG. 16 shows an example of the operation of thegame controller10. Themicrocomputer20 of thegame controller10 performs the operation ofFIG. 16 at regular time intervals. In a step S1, themicrocomputer20 determines whether or not the load obtaining command is received from thegame machine52. In the embodiment, because thegame controller10 is connected to theremote control54, themicrocomputer20 determines whether or not the command of thegame machine52 is received from theremote control54 through theconnector24.
If “YES” in the step S1, themicrocomputer20 controls the DC-DC converter26 to supply the electric power to the fourload sensors14 in a step S3. At the same time, the electric power is also supplied to eachamplifier28 and theAD converter22. Accordingly, eachload sensor14 imparts the signal to theAD converter22 through eachamplifier28 according to the detected load, and theAD converter22 produces the data indicating the load detection value of eachload sensor14 and imparts the data to themicrocomputer20.
In a step S5, themicrocomputer20 obtains the load detection values from the fourload sensors14. Specifically, themicrocomputer20 obtains the pieces of data indicating the four load detection values from theAD converter22 and stored the pieces of data in an internal memory (not shown).
In a step S7, themicrocomputer20 transmits the obtained four pieces of load detection value data to thegame machine52. In the embodiment, the load detection value data is transmitted to theremote control54 through theconnector24, and the load detection value data is transmitted from theremote control54 to thegame machine52.
On the other hand, if “NO” in the step S1, that is when the load obtaining command is not received from thegame machine52, themicrocomputer20 controls the DC-DC converter26 to stop the electric power supplied to the fourload sensors14 in a step S9. The electric power supplied to eachamplifier28 and theAD converter22 is also stopped at the same time. When the step S7 or S9 is ended, the processing is ended. Thus, in thegame controller10, the electric power is supplied from thebattery30 to theload sensors14 and the like only when the load detection is required, so that the power consumption can be suppressed at a lower level.
FIG. 17 shows an example of the operation of theremote control54.FIG. 17 shows only the processing concerning the load detection of thegame controller10 in the operations of theprocessor112, and the processing for obtaining manipulation data using the input means80,acceleration sensor116, and imaginginformation computation unit104 is omitted.
In a step S21, theprocessor112 determines whether or not the load obtaining command is received from thegame machine52 through thewireless module118. If “YES” in the step S21, theprocessor112 transmits the load obtaining command to thegame controller10 through theconnector100 in a step S23. Therefore, in thegame controller10, the load value is detected as described above and the load detection value data is transmitted to theremote control54.
When the step S23 is ended, or If “NO” in the step S21, theprocessor112 determines whether or not the load detection value data is received from thegame controller10 through theconnector100 in a step S25. If “YES” in the step S25, theprocessor112 stores the received four pieces of load detection value data in thememory114 in a step S27. In a step S29, theprocessor112 produces the input data (manipulation data) including the four pieces of load detection value data and transmits the input data to thegame machine52 through thewireless module118. This enables the four load detection values to be imparted from thegame controller10 to thegame machine52. The transmission is performed when the load detection value data is received from thegame controller10. Alternatively, the transmission may be performed at a predetermined time theremote control54 transmits the input data including the manipulation data of the input means80, the acceleration data detected by theacceleration sensor116, and the marker coordinate data from the imaginginformation computation unit104. When the step S29 is ended or If “NO” in the step S25, the processing is ended.
FIG. 18 shows an example of the operation of thegame machine52. The flowchart ofFIG. 18 shows only the processing concerning the load. Although theCPU82 concurrently performs processing for the screen display (update) and processing for outputting the sound and the like at regular time intervals, these pieces of processing are omitted in the flowchart ofFIG. 18.
In a step S41, theCPU82 performs correction value computing processing. The correction value computing processing is performed according to the correction value computing program, andFIG. 19 shows an example of the detailed operation of the correction value computing processing.
In a step S71 ofFIG. 19, theCPU82 obtains the load detection values from the fourload sensors14. For example, using theGPU84b, theCPU82 produces the screen in which the player is instructed to ride on the center of theboard12 of thegame controller10 and causes themonitor76 to display the screen. Then, theCPU82 transmits the load obtaining command to thegame controller10 through thewireless controller module94. In response to the transmission of the load obtaining command, the load value is detected through the processingFIGS. 16 and 17, and the input data (manipulation data) including the load detection value data is transmitted to thegame machine52. Thus, theCPU82 can obtain the four pieces of load detection value data from theinput data buffer220.
In a step S73, theCPU82 computes the summation of the two load detection values on the left side, i.e., the left load value. In a step S75, theCPU82 computes the summation of the two load detection values on the right side, i.e., the right load value. In a step S77, theCPU82 computes the difference (first difference) between the left load value and the right load value. In a step S79, theCPU82 computes the correction values of the load detection values from the fourload sensors14 based on the computed first difference. The correction value is the first correction value obtained by dividing the fourload sensors14 into the left and right, and the first correction value is computed by equally dividing the first difference into four and by allocating the equally-divided difference to eachload sensor14. Accordingly, absolute values of the first correction values for theload sensors14 are equal to one another, and the left side differs from the right side in the sign.
In a step S81, theCPU82 computes the summation of the two load detection values on the upper side, i.e., the upper load value. In a step S83, theCPU82 computes the summation of the two load detection values on the lower side, i.e., the lower load value. In a step S85, theCPU82 computes the difference (second difference) between the upper load value and the lower load value. In a step S87, theCPU82 computes the correction values of the load detection values from the fourload sensors14 based on the computed second difference. The correction value is the second correction value obtained by vertically dividing the fourload sensors14 into the two sets, and the second correction value is computed by equally dividing the second difference into four and by allocating the equally-divided difference to eachload sensor14. Accordingly, absolute values of the second correction values for theload sensors14 are equal to one another, and the upper side differs from the lower side in the sign.
In a step S89, theCPU82 computes the final correction values of the fourload sensors14 based on the two computed correction values. Specifically, the first correction value and the second correction value are added to each other for eachload sensor14, thereby computing the finally-set correction values. In a step S91, theCPU82 writes the final correction value of each of the fourload sensors14 in the correctionvalue memory area226. When the step S91 is ended, the correction value computing processing is ended and the processing returns to a step S43 ofFIG. 18.
In the step S43 ofFIG. 18, theCPU82 performs game selection processing. In the embodiment, as described above, because the total load game, right and left balance game, and four-directional balance game having the different necessary quantities of load values are performed, the game to be performed is selected based on the player's input or a rule previously set to the program or the like. The identification information indicating the selected game is stored in thememory area222.
Then, theCPU82 starts the processing for the selected game. In a step S45, theCPU82 determines whether or not it is load obtaining timing. The load obtaining timing is a time the load value is required in the game processing. In the case where the load is required at regular time intervals, the processing is configured to determine that it is the load obtaining timing at regular time intervals. Alternatively, the load obtaining timing may be a time at a predetermined event is generated or a time at a predetermined status is generated in the game. The processing in the step S45 is performed at regular time intervals until theCPU82 determines that it is the load obtaining timing.
If “YES” in the step S45, theCPU82 transmits the load obtaining command to thegame controller10 in a step S47. Specifically, theCPU82 transmits the load obtaining command to theremote control54 through thewireless controller module94, etc. In response to the transmission of the load obtaining command, the manipulation data including the four pieces of load detection value data is transmitted from the game controller10 (remote control54) through the processing performed by theremote control54 and thegame controller10. The four pieces of load detection value data are received through thewireless controller module94, etc. and stored in theinput data buffer220. In a step S49, theCPU82 obtains the four pieces of load detection value data from thegame controller10. Specifically, theCPU82 reads the four pieces of load detection value data from theinput data buffer220 and stores the four pieces of load detection value data in the load detectionvalue memory area224.
In a step S51, theCPU82 corrects the four load detection values based on the correction values stored in the correctionvalue memory area226. Specifically, theCPU82 adds the final correction values for the fourload sensors14 to the four load detection values respectively, and theCPU82 stores the computed values in thememory area228 for the corrected load detection values.
In steps S53 to S57, theCPU82 determines the quantity of load values necessary for the game processing. In the embodiment, the necessary quantity of load values is kept constant in each selection game, so that the necessary quantity of load values corresponding to the selection game stored in thememory area222 can be specified by referring to the quantity table stored in thememory area230.
In the step S53, theCPU82 determines whether or not the necessary quantity of load values is one. If “YES” in the step S53, theCPU82 performs thegame processing1 in a step S59. In the embodiment, the necessary quantity of load values is one in the total load game, andFIG. 20, which will be described later, shows the operation of thegame processing1 for the total load game.
On the other hand, if “NO” in the step S53, theCPU82 determines whether or not the necessary quantity of load values is two in the step S55. If “YES” in the step S55, theCPU82 performs thegame processing2 in a step S61. In the embodiment, the necessary quantity of load values is two in the right and left balance game, andFIG. 21, described later, shows the operation of thegame processing2 for the right and left balance game.
If “NO” in the step S55, theCPU82 determines whether or not the necessary quantity of load values is four in the step S57. If “YES” in the step S57, theCPU82 performs thegame processing3 in a step S63. In the embodiment, the necessary quantity of load values is four in the four-directional balance game, andFIG. 22, described later, shows the operation of thegame processing3 for the four-directional balance game.
If “NO” in the step S57, theCPU82 performs another piece of game processing in a step S65.
A game end determination is made in each game processing. When the game is not ended, the processing returns to the step S45. Accordingly, the pieces of processing from the step S45 are repeated and the game advances until theCPU82 determines that the game is ended. On the other hand, when theCPU82 determines that the game is ended, the game processing in the step S59, S61, S63, or S65 is ended.
FIG. 20 shows an example of the operation of thegame processing1 for the total load game in which the necessary quantity of load values is one. When thegame processing1 is started, theCPU82 computes the summation (total load value) of the four load detection values in a step S101. The computation is performed using the corrected load detection values of thememory area228.
In a step S103, theCPU82 stores the summation (total load value) in the memory. Specifically, the summation is written in the load computationvalue memory area232. A history of the summation is stored in thememory area232.
On the basis of the summation, it is determined whether or not the squat is performed. The change in summation is increased while the player does the squat, that is, the change from the previous load obtaining timing becomes a predetermined value or more. Accordingly, when the change in summation is not lower than the predetermined value, it can be determined that the squat is performed, and the summation at that time is recorded. When the squat is finished, the change from the previous load obtaining timing becomes lower than a predetermined value. Accordingly, when the change in summation becomes lower than the predetermined value, it is considered that the one-time squat is finished, and it is determined whether or not the squat is actually performed based on the recorded waveform of the temporal change in summation. The squat determination is made by a determination of a vertical length in the waveform and a determination of a horizontal length in the waveform. That is, the determination whether or not the squat is performed is made by such squat conditions that the difference between the maximum value and the minimum value of the summation in the squat is not lower than the predetermined value and the elapse time during the squat is not lower than the predetermined value.
Specifically, in a step S105, theCPU82 determines whether or not the difference between the current summation and the previous summation is not lower than the predetermined value, namely, the player is in the squat or at rest. If “YES” in the step S105, namely, in the case where it can be considered that the squat is being performed, theCPU82 turns on the squat flag of thememory area234 in a step S107.
In a step S109, theCPU82 increments the time counter of thememory area238. This enables an elapsed time to be measured when the squat flag is turned on.
In a step S111, theCPU82 determines whether or not the game is ended. Examples of the game end condition include that the squat is performed the predetermined times and that a predetermined time-limit elapses since the game is started. If “NO” in the step S111, the processing returns to the step S45 ofFIG. 18. Accordingly, thegame processing1 is continued based on the summation.
On the other hand, if “NO” in the step S105, theCPU82 determines whether or not the squat flag of thememory area234 is turned on in a step S113. At this point, theCPU82 determines whether or not the state in which the squat is performed is changed to the rest state, that is, whether or not the one-time squat is ended. If “YES” in the step S113, theCPU82 turned off the squat flag of thememory area234 in a step S115. In a step S117, theCPU82 resets the time counter of thememory area238. However, because the elapsed time until the squat flag is turned off since the squat flag is turned on, i.e., the time of the current squat is recorded in the time counter, the value indicated by the time counter is stored in another predetermined area of thedata memory area202 to use the elapsed time for the squat determination before the time counter is reset.
In a step S119, theCPU82 detects the maximum value and the minimum value in the summation history stored in thememory area232 when the squat flag is turned on, and computes the difference between the maximum value and the minimum value. In a step S121, theCPU82 determines whether or not the difference between the maximum value and the minimum value is not lower than a predetermined value. That is, theCPU82 determines whether or not the vertical length in the waveform of the summation is not lower than the predetermined value. If “YES” in the step S121, theCPU82 determines whether or not the time count is not lower than the predetermined value in a step S123. Thus, the determination is made based on the time that elapsed when the squat flag is turned on. The elapsed time is stored in the predetermined area before the time counter is reset in the step S117. That is, theCPU82 determines whether or not the horizontal length in the waveform of the summation is not lower than the predetermined value. If “YES” in the step S123, that is, when theCPU82 recognizes that the squat is performed, theCPU82 increments the squat success counter of thememory area236, namely, theCPU82 counts the number of squat success times in a step S125. When the step S125 is ended, the processing goes to a step S111. If “NO” in the step S121, or if “NO” in the step S123, because theCPU82 cannot recognize that the squat is performed, the processing goes directly to the step S111. If “NO” in the step S113, that is, even if theCPU82 recognizes that the player does not the squat but is at rest, the processing also goes to the step S111.
If “YES” in the step S111, that is, when the game end condition is satisfied, theCPU82 turns off the squat flag of thememory area234 in a step S127, and theCPU82 resets the time counter of thememory area238 in a step S129. In a step S131, theCPU82 performs score processing based on the number of squat success times. The number of squat success times is recorded in a squat success counter of thememory area236, and the score of the player is computed based on the number of squat success times. In a step S133, theCPU82 resets the squat success counter of thememory area236 to end thegame processing1.
FIG. 21 shows an example of the operation of thegame processing2 for the right and left balance game in which the necessary quantity of load values is two. When thegame processing2 is started, theCPU82 computes the summation of the two load detection values on the left side, i.e., the left load value in a step S151. In a step S153, theCPU82 computes the summation of the two load detection values on the right side, i.e., the right load value. The corrected load detection value of thememory area228 is used to compute the load value. The computed right and left load values are stored in thememory area232.
The method for computing the right and left load values is not limited to the embodiment. Alternatively, the right and left load values can be computed using the summation of the four load detection values. For example, the summation (total load value) of the four load detection values and the summation (right load value) of the two load detection values on the right side are computed, and the summation (left load value) of two load detection values on the left side may be computed from the difference (or ratio) between the load values.
In a step S155, theCPU82 determines whether or not the right and left load values fall within respective predetermined ranges as targets. If “YES” in the step S155, theCPU82 increments the time counter of thememory area238 in a step S157. Therefore, the time during which the horizontal balance maintains the target state is measured.
In a step S159, theCPU82 determines whether or not a predetermined time (for example, three seconds) elapses based on the time counter value of thememory area238. That is, theCPU82 determines whether or not the horizontal balance state in which the right and left load values fall within the predetermined ranges respectively is maintained for three seconds. If “YES” in the step S159, that is, when the target horizontal balance state is maintained for the predetermined time, theCPU82 performs game clear processing in a step S161, and theCPU82 resets the time counter of thememory area238 in a step S163. If “NO” in the step S159, the processing goes directly to a step S167.
If “NO” in the step S155, that is, when the target horizontal balance is not achieved, theCPU82 resets the time counter of thememory area238 in a step S165. When the step S165 is ended, the processing goes to the step S167.
In the step S167, theCPU82 determines whether or not the game is ended. Examples of the game end condition include that a predetermined time elapses since the game is started, that the maintenance of the target horizontal balance state is not achieved, and that the predetermined number of right and left balance games is cleared. If “NO” in the stop S167, the processing returns to the step S45 ofFIG. 18. Accordingly, thegame processing2 is continued based on the two load computation values. On the other hand, if “YES” in the step S167, theCPU82 performs the score processing to compute the score of the player according to the result of the right and left balance game in a step S169. When the step S169 is ended, thegame processing2 is ended.
FIG. 22 shows an example of the operation of thegame processing3 for the four-directional balance game in which the necessary quantity of load values is four. When thegame processing3 is started, theCPU82 computes the upper load value, the lower load value, the right load value, and the left load value in a step S181. The upper load value is the summation of the upper-left load value and the upper-right load value, the lower load value is the summation of the lower-left load value and the lower-right load value, the right load value is the summation of the upper-right load value and the lower-right load value, and the left load value is the summation of the upper-left load value and the lower-left load value. The corrected load detection value of thememory area228 is used for the computation. The four computed load values are stored in thememory area232.
In a step S183, theCPU82 determines whether or not the four load computation values fall within respective predetermined ranges as targets. If “YES” in the step S183, theCPU82 increments the time counter of thememory area238 in a step S185. Therefore, the time during which the four-directional balance maintains the target state is measured.
In a step S187, theCPU82 determines whether or not the predetermined time (for example, three seconds) elapses based on the time counter value of thememory area238. That is, theCPU82 determines whether or not the four-directional balance state in which the vertical and horizontal load values fall within the predetermined ranges respectively is maintained for three seconds. If “YES” in the step S187, that is, when the target four-directional balance state is maintained for the predetermined time, theCPU82 performs the game clear processing in a step S189, and theCPU82 resets the time counter of thememory area238 in a step S191. If “NO” in the step S187, the processing goes directly to a step S195.
If “NO” in the step S183, that is, when the target four-directional balance state is not achieved, theCPU82 resets the time counter of thememory area238 in a step S193. When the step S193 is ended, the processing goes to the step S195.
In the step S195, theCPU82 determines whether or not the game is ended. Examples of the game end condition include that a predetermined time elapses since the game is started, that the maintenance of the target four-directional balance state is not achieved, and that the predetermined number of four-directional balance games is cleared. If “NO” in the step S195, the processing returns to the step S45 ofFIG. 18. Accordingly, thegame processing3 is continued based on the four load computation values. On the other hand, if “YES” in the step S195, theCPU82 performs the score processing to compute the score of the player according to the result of the four-directional balance game in a step S197. When the step S197 is ended, thegame processing3 is ended.
According to the embodiment, the quantity of load values necessary for the game processing is determined, and the necessary quantity of load values is computed from the load detection values of the fourload sensors14, so that the game processing can be performed using the various quantities of load values according to the game. Therefore, the novel play can be proposed with the load applied by the player.
FIG. 23 shows an example of the screen of another game in which the four load values are required. The game is a hoop game, and a player character that plays the hoop according to the player's manipulation is displayed on the screen. When the player rotates a waist as if the player plays the hoop on thegame controller10, the player character also rotates the waist to rotate the hoop on the screen.
When the player rotates the waist on thegame controller10, the detected load value is changed according to the rotation. Accordingly, in the game processing, the waist rotation of the player is determined by the load value. The four load detection values are directly computed as the four load computation values to determine the waist rotation. The four load computation values are compared to one another, and the game processing is performed based on the load value having the determined maximum value. Specifically, the waist of the player character is moved toward the maximum load detection value. That is, the waist of the player character is moved toward the left front direction in the case where the upper-leftload sensor14ahas the maximum load detection value, the waist of the player character is moved toward the left rear direction in the case where the lower-leftload sensor14bhas the maximum load detection value, the waist of the player character is moved toward the right front direction in the case where the upper-right load sensor14chas the maximum load detection value, and the waist of the player character is moved toward the right rear direction in the case where the lower-right load sensor14dhas the maximum load detection value. The history of the waist position is recorded. It is determined whether or not the waist movement indicates the rotation in a constant direction. When it is determined that the waist is rotated in the constant direction, the hoop can be rotated.
FIG. 24 partially shows the memory map when the hoop game is performed. The current waist position is stored in amemory area240 of thedata memory area202. Four positions (the position in the left front direction, the position in the right front direction, the position in the right rear direction, and the position in the left rear direction) are previously determined as the waist position that can be taken by the player character, and the four positions are determined by the maximum load value as described above. The player character is controlled such that the waist of the player character is moved to the position stored in thememory area240.
A flag N for recording the histories of the waist positions of the player and player character is stored in amemory area242. It is determined whether or not the change in waist position recorded in the flag N indicates the rotation in the constant direction. The variable N of the flag N has an initial value of 1, and the variable N is incremented every load obtaining timing. In the embodiment, the variable N is up to 4, namely, it is determined whether or not the waist is rotated in the constant direction during the four-time load obtaining timing. For example, the numerical values of 1 to 4 are allocated to theload sensors14 in the arrangement order of the fourload sensors14 respectively, and the allocated value are recorded in the flag N. In the embodiment, the numerical values called movement numbers of 1 to 4 are allocated in the clockwise direction of the upper left, upper right, lower right, and lower left. When the movement numbers recorded in theflags1 to4 in sequence are changed in the ascending (or descending) order, it is determined that the waist is rotated in the constant direction, namely, the hoop is successfully rotated. A rotating number counter is stored in amemory area244. Therefore the number of successful rotations of the hoop is counted.
Because the four load values are required in the game processing of the hoop game, the game processing is performed as thegame processing3 in the step S63 ofFIG. 18.FIGS. 25 and 26 show an example of the operation of thegame processing3 for the hoop game. When thegame processing3 is started, theCPU82 compares the four load values to one another to detect the maximum value in a step S211. As described above, in the embodiment, because the four load detection values are directly computed as the four load computation values, the four load detection values are stored in the load computationvalue memory area232 although not shown inFIG. 25. In the case where the correction is performed using the correction program, obviously the corrected load detection value of thememory area228 is stored in the load computationvalue memory area232. The comparison in the step S211 is performed by the load computation values of thememory area232.
In steps S213 to S217, it is determined which load value indicates the maximum value, and the waist position is determined based on the load value having the determined maximum value.
Specifically, in a step S213, theCPU82 determines whether or not the upper-left load value is the maximum. If “YES” in the step S213, theCPU82 moves the waist of the player character toward the left front direction in a step S219. The position in the left front direction is stored in the waistposition memory area240. In a step S221, theCPU82 sets (stores) themovement number1 indicating the left front direction to the flag N of thememory area242.
On the other hand, if “NO” in the step S213, theCPU82 determines whether or not the upper-right load value is the maximum in a step S215. If “YES” in the step S215, theCPU82 moves the waist of the player character toward the right front direction in a step S223. The position in the right front direction is stored in the waistposition memory area240. In a step S225, theCPU82 sets (stores) themovement number2 indicating the right front direction to the flag N of thememory area242.
If “NO” in the step S215, theCPU82 determines whether or not the lower-right load value is the maximum in a step S217. If “YES” in the step S217, theCPU82 moves the waist of the player character toward the right rear direction in a step S227. The position in the right rear direction is stored in the waistposition memory area240. In a step S229, theCPU82 sets (stores) themovement number3 indicating the right rear direction to the flag N of thememory area242.
If “NO” in the step S217, namely, when the lower-left load value is the maximum, theCPU82 moves the waist of the player character toward the left rear direction in a step S231. The position in the left rear direction is stored in the waistposition memory area240. In a step S233, theCPU82 sets (stores) themovement number4 indicating the left rear direction to the flag N of thememory area242.
When the step S221, S225, S229, or S233 is ended, the processing goes to a step S235 ofFIG. 26. In the step S235, theCPU82 determines whether or not the variable N is 4. That is, theCPU82 determines whether or not the history of the four-time waist positions is recorded to determine the waist rotation.
If “NO” in the step S235, theCPU82 increments the variable N in a step S237, and the processing goes to a step S249. In the step S249, theCPU82 determines whether or not the game is ended. Examples of the game end condition include that a predetermined time elapses since the game is started and that the hoop is not successfully rotated. If “NO” in the step S249, the processing returns to the step S45 ofFIG. 18. Accordingly, the hoop game is continued.
On the other hand, if “YES” in the step S235, theCPU82 determines whether or not the four movement numbers set in theflags1 to4 of thememory area242 are in the ascending (or descending) order in a step S239. That is, theCPU82 determines whether or not the waist is rotated in the constant direction. If “YES” in the step S239, theCPU82 performs hoop rotation processing in a step S241. Therefore, the hoop is controlled so as to be rotated around a torso of the player character. Because the rotation is required to rotate in the constant direction, it is determined “NO” in the step S239, when the orientation (ascending or descending order) of the change in the movement number is changed from, the previous rotation. In a step S243, theCPU82 increments the rotating number counter of thememory area244.
If “NO” in the step S239, theCPU82 performs hoop rotation failure processing in a step S245. Therefore, the hoop is controlled so as to be stopped the rotation thereof.
When the step S243 or S245 is ended, theCPU82 sets the variable N to the initial value of 1 for the purpose of the next rotation in a step S247. Then, the processing goes to the step S249.
If “YES” in the step S249, theCPU82 performs the score processing based on the number of rotations stored in thememory area244 in a step S251. The score is computed according to the number of successful rotations. In a step S253, theCPU82 resets the rotating number counter of thememory area244 and the flag N of thememory area242 to end thegame processing3.
FIG. 27 shows an example of the screen of another game in which the four load values are required. The game is a quiz game, and a question and four choices of an answer are displayed on the screen. The four choices are correlated with the fourload sensors14 respectively, and the four choices are arranged according to the arrangement of the fourload sensors14. The example ofFIG. 27 is a question for searching a wrong combination from four combinations of salutation and complimentary close. Ananswer1 of “Dear Sir or Madam-Yours truly”, ananswer2 of “Dear Sir or Madam-Best wishes”, ananswer3 of “In reply to your letter-Yours truly”, and ananswer4 of “Dear-Best wishes” are cited on the screen. Theanswers1 to4 are correlated with the upper-left, upper-right, lower-left, and lower-right load sensors14 respectively.
In the quiz game, similarly to the hoop game, the four load detection values are directly computed as the four load computation values. The four load computation values are compared to one another, and the game processing is performed based on the load value having the determined maximum value. Specifically, the answer corresponding to the maximum load detection value is selected, and it is determined whether or not the selected answer is correct. On thegame controller10, the player put a player's weight on the direction corresponding to the answer that the player considers to be correct, or the player's leg rides on the portion corresponding to the answer. Therefore, the load value of theload sensor14 corresponding to the answer is caused to become the maximum to reply the question. Thus, thegame controller10 is used to perform the game manipulation using the load, which allows the game to be played by selecting the answer from the plurality of choices like the general-purpose game controller including the conventional cross key, stick, and manipulation button, etc.
FIG. 28 partially shows the memory map when the quiz game is performed. Correct answer data indicating the correct answer for the question is stored in amemory area250 of thedata memory area202. The answer selected by the player is stored in amemory area252.
Because the four load values are required in the game processing of the quiz game, the game processing is performed as thegame processing3 in the step S63 ofFIG. 18.FIG. 29 shows an example of the operation of thegame processing3 for the quiz game. When thegame processing3 is started, theCPU82 compares the four load values to one another to detect the maximum value in a step S271. Similarly to the step S211 (FIG. 25) of the hoop game, the compared load values are the four load detection values (corrected load detection values) stored in the load computationvalue memory area232.
In steps S273 to S277, it is determined which load value indicates the maximum value, and the answer by the player is selected based on the load value having the determined maximum value.
Specifically, in a step S273, theCPU82 determines whether or not the upper-left load value is the maximum. If “YES” in the step S273, theCPU82 selects theanswer1 corresponding to the upper-leftload sensor14ain a step S279. The identification information indicating theanswer1 is stored in theanswer memory area252.
On the other hand, if “NO” in the step S273, theCPU82 determines whether or not the upper-right load value is the maximum in a step S275. If “YES” in the step S275, theCPU82 selects theanswer2 corresponding to the upper-right load sensor14cin a step S281. The identification information indicating theanswer2 is stored in theanswer memory area252.
If “NO” in the step S275, theCPU82 determines whether or not the lower-left load value is the maximum in a step S277. If “YES” in the step S277, theCPU82 selects theanswer3 corresponding to the lower-leftload sensor14bin a step S283. The identification information indicating theanswer3 is stored in theanswer memory area252.
If “NO” in the step S277, that is, when the lower-right load value is the maximum, theCPU82 selects theanswer4 corresponding to the lower-right load sensor14din a step S285. The identification information indicating theanswer4 is stored in theanswer memory area252.
When the steps S279, S281, S283, or S285 is ended, theCPU82 compares the selected answer to the correct answer based on the answer stored in thememory area252 and the correct answer data stored in thememory area250 in a step S287. In a step S289, theCPU82 determines whether or not the selected answer is correct. If “YES” in the step S289, theCPU82 performs correct answer processing in a step S291. For example, the player's score is computed by adding the point according to the question. On the other hand, if “NO” in the step S289, theCPU82 performs incorrect answer processing in a step S293. For example, the player's score is computed by subtracting the point according to the question.
When the step S291 or S293 is ended, theCPU82 determines whether or not the game is ended in a step S295. Examples of the game end condition include that the predetermined number of questions are taken, that the predetermined number of correct answer or incorrect answer is obtained, and that the time-limit elapses. If “NO” in the step S295, the processing returns to the step S45 ofFIG. 18. Accordingly, thegame processing3 is continued based on the four load values. On the other hand, if “YES” in the step S295, thegame processing3 is ended.
FIG. 30 shows an example of the screen of another game in which the four load values are required. The game is a ski game, and the player character that skis according to the player's manipulation is displayed on the screen. In the ski game, similarly to the four-directional balance game, the four load values of the upper load value, lower load value, right load value, and left load value are computed from the four load detection values. The upper load value and the lower load value are used to compute the acceleration and deceleration of the player character, and a movement speed of the player character is controlled based on the acceleration and deceleration. The right load value and the left load value are used to control the turning movement in the right and left directions of the player character. Accordingly, on thegame controller10, the player can apply the load in the forward or backward (upward or downward) direction to increase or decrease the movement speed of the player character, and the player can apply the load in the left or right direction to turn the player character in the left or right direction.
FIG. 31 partially shows the memory map when the ski game is performed. The acceleration and deceleration of the player character is stored in amemory area260 of thedata memory area202. The movement speed of the player character is stored in amemory area262. The movement speed of the player character is computed based on the acceleration and deceleration of thememory area260 and the previous movement speed. The position (coordinate) of the player character is stored in amemory area264.
Because the four load values are required in the game processing of the ski game, the game processing is performed as thegame processing3 in the step S63 ofFIG. 18.FIG. 32 shows an example of the operation of thegame processing3 for the ski game. When thegame processing3 is started, theCPU82 computes the upper load value, the lower load value, the right load value, and the left load value in a step S311. In the case where the correction is performed, the corrected load detection value of thememory area228 is used. The four computed load values are stored in the load computationvalue memory area232.
In a step S313, theCPU82 determines whether or not the upper load value is larger than lower load value based on the load computation value of thememory area232. If “YES” in the step S313, theCPU82 computes the acceleration of the player character based on the upper load value in a step S315. The computed acceleration is stored in thememory area260. In a step S317, theCPU82 controls the movement speed of the player character based on the computed acceleration of thememory area206. The current movement speed is computed based on the previous movement speed stored in thememory area262 and the acceleration, and the current movement speed is stored in thememory area262.
On the other hand, if “NO” in the step S313, theCPU82 computes the deceleration of the player character based on the lower load value in a step S319. The computed deceleration is stored in thememory area260. In a step S321, theCPU82 controls the movement speed of the player character based on the computed deceleration of thememory area260. The current movement speed is computed based on the previous movement speed stored in thememory area262 and the deceleration, and the current movement speed is stored in thememory area262.
When the step S317 or S321 is ended, in a step S323, theCPU82 determines whether or not the right load value is larger than the left load value based on the load computation value of thememory area232. If “YES” in the step S323, theCPU82 turns the player character in the right direction based on the right load value in a step S325. The turning movement is controlled based on the movement speed of thememory area262. A turning radius may be computed based on the right load value. The current position of the player character is computed based on the previous position stored in the characterposition memory area264, the movement speed, and the turning radius in the right direction, etc.
On the other hand, if “NO” in the step S323, theCPU82 turns the player character in the left direction based on the left load value in a step S327. The turning movement is controlled based on the movement speed of thememory area262. The turning radius may be computed based on the left load value. The current position of the player character is computed based on the previous position stored in the characterposition memory area264, the movement speed, and the turning radius in the left direction, etc.
When the step S325 or S327 is ended, in a step S329, theCPU82 determines whether or not the player character reaches a goal. Specifically, theCPU82 determines whether or not the position of the player character moved in the step S325 or S327 becomes a position within a region indicating a predetermined goal point previously stored. If “NO” in the step S329, the processing returns to the step S45 ofFIG. 18. Accordingly, thegame processing3 is continued based on the four load values. On the other hand, if “YES” in the step S329, theCPU82 performs game end processing in a step S331. For example, ranking is performed according to a sliding time or the score is computed. When the step S331 is ended, thegame processing3 is ended.
FIG. 33 shows an example of another game in which the four load values are required. The game ofFIG. 33 is a game in which the player character is moved according to the manipulation like a role-playing game, and the player character that is moved according to the player's manipulation is displayed on the screen. For the convenience sake, the game is called a moving game. In the moving game, similarly to the four-directional balance game and the ski game, the four load values of the upper load value, lower load value, right load value, and left load value are computed from the four load detection values. The player character is moved in the direction corresponding to the maximum value in the four load computation values by a movement amount based on the maximum value. Accordingly, on thegame controller10, the player can apply the load to the desired direction in the four directions to move the player character to the desired direction. Thus, the directional instruction can be provided by the load applied on to thegame controller10, and the player character can be moved like the general-purpose game controller including the conventional cross key or joystick or the like.
FIG. 34 partially shows the memory map when the moving game is performed. The movement amount of the player character is stored in amemory area270 of thedata memory area202. In the embodiment, the movement amount of the player character is computed based on the maximum value in the four load computation values. The position (coordinate) of the player character is stored in amemory area272.
Because the four load values are required in the game processing of the moving game, the game processing is performed as thegame processing3 in the step S63 ofFIG. 18.FIG. 35 shows an example of the operation of thegame processing3 for the moving game. When thegame processing3 is started, theCPU82 computes the upper load value, the lower load value, the right load value, and the left load value in a step S351. In the case where the correction is performed, the corrected load detection value of thememory area228 is used. The four computed load values are stored in the load computationvalue memory area232.
In steps S353 to S357, it is determined which load computation value is the maximum, and the moving direction and movement amount of the player character are controlled based on the load value having the determined maximum value.
Specifically, in a step S353, theCPU82 determines whether or not the upper load value is the maximum. If “YES” in the step S353, theCPU82 computes the movement amount of the player character based on the upper load value in a step S359. For example, the movement amount of the player character is increased with increasing load value. The movement amount computed based on the load computation value is stored in thememory area270. In a step S361, theCPU82 moves the player character in the upward direction according to the computed movement amount. The current position of the player character is computed based on the previous position stored in the characterposition memory area272 and the upward movement amount stored in thememory area270.
On the other hand, if “NO” in the step S353, theCPU82 determines whether or not the lower load value is the maximum in a step S355. If “YES” in the step S355, theCPU82 computes the movement amount of the player character based on the lower load value in a step S363. In a step S365, theCPU82 moves the player character in the downward direction according to the computed movement amount of thememory area270. The current position of the player character is computed based on the previous position stored in the characterposition memory area272 and the downward movement amount stored in thememory area270.
If “NO” in the step S355, theCPU82 determines whether or not the right load value is the maximum in a step S357. If “YES” in the step S357, theCPU82 computes the movement amount of the player character based on the right load value in a step S367. In a step S369, theCPU82 moves the player character in the right direction according to the computed movement amount of thememory area270. The current position of the player character is computed based on the previous position stored in the characterposition memory area272 and the rightward movement amount stored in thememory area270.
If “NO” in the step S357, that is, when the left load value is the maximum, theCPU82 computes the movement amount of the player character based on the left load value in a step S371. In a step S373, theCPU82 moves the player character in the left direction according to the computed movement amount of thememory area270. The current position of the player character is computed based on the previous position stored in the characterposition memory area272 and the leftward movement amount stored in thememory area270.
When the step S361, S365, S369, or S373 is ended, theCPU82 determines whether or not the game is ended in a step S375. Examples of the game end condition include that the character position enters a predetermined region and that a predetermined time-limit elapses. If “NO” in the step S375, the processing returns to the step S45 ofFIG. 18. Accordingly, thegame processing3 is continued based on the four load values. On the other hand, if “YES” in the step S375, theCPU82 performs game end processing to end thegame processing3 in a step S377.
In the moving game, the movement target is the player character (player object). Alternatively, the moving processing in the moving game can also be applied to the movement of a cursor or a pointer and the movement of a viewpoint or a point of gaze of a virtual camera or the like.
In each of the above-described embodiments, the necessary quantity of load values is kept constant in each game. However, in another embodiment, the necessary quantity of load values may be changed in the one game according to the status or scene or the like. In the embodiment, the necessary quantity of load values is determined according to the status or scene of the game, and the game processing is performed based on the necessary quantity of load values. Various quantities of load values can be computed according to the status or scene of the game to perform various game manipulations.
FIG. 36 shows an example of a screen of an action game in which the necessary quantity of load values is changed in each status or scene in the game. In the action game, as shown inFIG. 36(A), it is determined that the four load values are required in a scene in which the player character is moved on a field, and the moving processing is performed based on the four load values. For example, similarly to the moving game ofFIG. 33, the player character is moved in the four directions based on the upper load value, the lower load value, the left load value, and the right load value. Specifically, the player character is moved in the direction corresponding to the maximum load value in the four load computation values by the movement amount based on the maximum value. Thus, in the moving scene, the moving direction of the player character can be manipulated by the game manipulation using the load applied onto thegame controller10 like the general-purpose game controller having the conventional cross key or joystick or the like.
As shown inFIG. 36(B), it is determined that the two load values are required in a battle scene in which the player character fights against an enemy character, and battle processing is performed based on the two load values. Specifically, the right load value and the left load value are computed, and predetermined attack or defense is performed based on the larger load computation value. In the embodiment, as shown inFIG. 36(B), because the player character faces the enemy character while having a sword in a right hand and a shield in a left hand, the attack is performed with the sword when the right load value becomes larger, and the defense is performed with the shield when the left load value becomes larger. The action or motion such as the attack and the defense of the player character can be manipulated by the game manipulation using the load applied onto thegame controller10 like the general-purpose game controller having the conventional manipulation button or the like.
FIG. 37 partially shows the memory map when the action game is performed. The moving amount of the player character is stored in amemory area280 of thedata memory area202. The position (coordinate) of the player character is stored in amemory area282. The position (coordinate) of the enemy character is stored in amemory area284. A scene flag indicating the current scene is stored in amemory area286. The field scene in which the player character is moved on the field, the battle scene in which the player character fights against the enemy character, and other scenes are provided in the action game. When the player character encounters the enemy character while being moved on the field, for example, when the positions of the player character and enemy character are brought close to each other within a predetermined range, the scene flag is switched from the field scene to the battle scene. When the battle is finished, the scene flag is switched from the battle scene to the field scene. Although only the settings of the battle scene and field scene are shown in the later-mentioned flowchart for the purpose of simple explanation, other scenes can also be set. HPs (Hit. Point) indicating physical strengths or lifetimes of the player character and enemy character are stored in amemory area288.
FIG. 38 shows an example of the operation of thegame machine52 when the action game is performed. When the processing is started, theCPU82 performs game start processing in a step S391. In the game start processing, the initial setting is performed to start the action game, and various variables, the flag, and the like are set to the initial values. The scene flag of thememory area286 is set to a value indicating the field.
In a step S393, theCPU82 performs correction value computing processing. The correction value computing processing is similar to the step S41 ofFIG. 18, i.e., the correction value computing processing ofFIG. 19, so that the detailed descriptions are omitted. Therefore, the correction value for correcting the load detection value is stored in the correctionvalue memory area226.
The pieces of processing of steps S395, S397, S399, and S401 are similar to those of steps S45, S47, S49, and S51 ofFIG. 18, so that the detailed descriptions are omitted.
In steps S403 and S405, the necessary quantity of load values is determined according to the scene and status of the game. The determination is made based on the scene flag of thememory area286.
Specifically, in the step S403, theCPU82 determines whether or not the scene is the field based on the scene flag. If “YES” in the step S403, namely, when it is determined that the four load values are required, theCPU82 performs the moving processing based on the four values in a step S407. The four values mean the four load computation values.FIG. 39 shows the detailed operation of the moving processing later.
On the other hand, if “NO” in the step S403, theCPU82 determines whether or not scene is the battle scene based on the scene flag in a step S405. If “YES” in the step S405, namely, when it is determined that the two load values are required, theCPU82 performs the battle processing based on the two values in a step S409. The two values mean the two load computation values.FIG. 40 shows the detailed operation of the battle processing later.
If “NO”, in the step S405, namely, in the case of other scenes except for the filed and battle, theCPU82 performs other pieces of processing in a step S411.
When the step S407, S409, or S411 is ended, theCPU82 determines whether or not the game is ended in a step S413. Examples of the game end condition include that the player character loses battle in the battle processing and the predetermined number of enemy characters are struck down. If “NO” in the step S413, the processing returns to the step S395. Accordingly, the action game in which the necessary number of load values is changed according to the scene and status is continued. On the other hand, if “YES” in the step S413, the game processing is ended.
FIG. 39 shows an example of the operation of moving processing based on the four values in the step S407 ofFIG. 38. As described above, the moving processing is performed based on the maximum value in the upper load value, the lower load value, the right load value, and the left load value. The pieces of processing of steps S431 to S453 ofFIG. 39 are similar to those of steps S351 to S373 ofFIG. 35, so that the detailed descriptions are omitted. The movement amount computed in steps S439, S443, S447, and S451 is stored in thememory area280, and the player character position computed in steps S441, S445, S449, and S453 is stored in thememory area282.
When the step S441, S445, S449, or S453 is ended, theCPU82 determines whether or not the player character encounters the enemy character in a step S455. Specifically, theCPU82 determines whether or not the position of the player character of thememory area282 and the position of the enemy character of thememory area284 are brought close to each other within the predetermined range. The movement of the enemy character is controlled by the program, and the computed position of the enemy character is stored in thememory area284.
If “YES” in the step S455, theCPU82 sets the scene flag to the battle by storing the value indicating the battle in the sceneflag memory area286 in a step S457. On the other hand, if “NO” in the step S455, the moving processing based on the four values is ended, and the processing goes to the step S413 ofFIG. 38.
FIG. 40 shows an example of the operation of the battle processing based on the two values in the step S409 ofFIG. 38. When the battle processing is started, in a step S471, theCPU82 computes the right load value and the left load value based on the corrected load detection value of thememory area228, and theCPU82 stores the right load value and the left load value in the load computationvalue memory area232.
In a step S473, theCPU82 determines whether or not the right load value is larger than the left load value. If “YES” in the step S473, theCPU82 performs motion processing in a step S475 in order that the player character attacks against the enemy character with the sword in the player character's right hand. For example, the motion processing is performed based on previously-stored motion data with which the player character wields the sword in the right hand. On the other hand, if “NO” in the step S473, theCPU82 performs motion processing in a step S477 in order that the player character protects against the enemy character with the shield in the left hand. The motion processing is also performed based on previously-stored motion data with which the player character puts the shield in the left hand forward.
When step S475 or S477 is ended, theCPU82 performs other pieces of processing in a step S479. Examples of other pieces of processing include enemy character attack processing and defense processing, and other pieces of processing are performed according to the program.
In a step S481, theCPU82 performs HP subtraction processing to the player character and enemy character based on the attack processing or the defense processing. For example, when it is determined that one character hits the other character, the HP of the other character is subtracted by a predetermined value in the case where the other character does not protect against the one character, and the HP of the other character is not subtracted in the case where the other character protects against the one character. The computed HPs of the player character and enemy character are stored in thememory area288.
In a step S483, theCPU82 determines whether or not the battle is ended. For example, theCPU82 determines that the battle is ended when one of the HPs becomes zero. When the HP of the player character becomes zero, it is determined that the player character loses the battle. When the HP of the enemy character becomes zero, it is determined that the player character wins the battle. If “YES” in the step S483, theCPU82 sets the scene flag to the field by storing the value indicating the field in the sceneflag memory area286 in a step S485. On the other hand, if “NO” in the step S483, the battle processing based on the two values is directly ended (battle scene is continued), and the processing returns to the step S413 ofFIG. 38.
In the embodiment of the action game, the necessary quantity of load values is determined according to the scene of the game, and the moving processing and battle processing of the player character are performed based on the necessary quantity of load values. However, in another embodiment, the game processing may be performed while the barycentric position and the necessary quantity of load values are used according to the game scene. In the following embodiment of the role-playing game, the movement of the player character is controlled based on the barycentric position, and the battle of the player character is controlled based on the necessary quantity of load values.
FIG. 41 is an illustrative view for explaining the movement control based on the barycentric position. In the embodiment, the movement speed of the player character is controlled based on the barycentric position. Specifically, assuming that a is the load detection value of the upper-leftload sensor14a, bis the load detection value of the lower-leftload sensor14b, cis the load detection value of the upper-right load sensor14c, and d is the load detection value of the lower-right load sensor14d, an X coordinate (XG) and a Y coordinate (YG) of the barycenter in the coordinate system on the screen are computed by the following equations:
XG=((c+d)−(a+b))×m [Formula 1]
YG=((a+c)−(b+d))×n [Formula 2]
Where m and n are a constant. An XY is the coordinate system on the screen, an origin (0, 0) is set in the center of the screen, and −1≦X≦1 and −1≦Y≦1.
Thus, the XG is computed based on the difference between the right load value and the left load value, and the YG is computed based on the difference between the upper load value and the lower load value.
The moving direction and movement speed of the player character are controlled based on the coordinate of the barycenter. Assuming that the origin of the screen coordinate system is the position of the player character and the center of theboard12 of thegame controller10, the distance with the barycentric position and the orientation from the origin toward the barycentric position are used in the movement control. Specifically, a vector V connecting the center (0, 0) of the screen and the barycenter (XG, YG) is computed, and the movement speed of the player character is computed based on a size of the vector V. The player character is moved at the computed movement speed in the orientation of the vector V. In the case of the two-dimensional virtual game space, the player character may be moved at the computed movement speed in the orientation of the vector V computed using the screen coordinate system. On the other hand, in the case of the three-dimensional virtual game space, for example, the screen coordinate system is considered to be a plane coordinate system in a three-dimensional coordinate system of the game space, and the player character may be moved on the plane at the computed movement speed in the orientation of the vector V. From the view point of display, as shown inFIG. 41, the background may be scrolled while the position of the player character is fixed to the center of the screen.
FIG. 42 shows an example of the game screen in battle scene. In the embodiment, the four load values are required in the battle scene, and the upper load value, the lower load value, the right load value, and the left load value are computed. Various commands for the battle are allocated to the four load computation values respectively. The command corresponding to the maximum load computation value is selected in the four load detection values, and the battle processing corresponding to the command is performed. For example, a command of “fight” for the attack is allocated to the upper load value, a command of “protect” for the defense is allocated to the lower load value, a command of “magic” for working magic is allocated to the right load value, and a command of “escape” for escape from the battle is allocated to the left load value. The screen shown inFIG. 42 is used in both the screen indicating the battle scene and the command selection screen, and the icons indicating the command are displayed at the upper, lower, right, and left positions on the screen such that the player clearly recognizes the correlation in which the commands are allocated to the upper, lower, right, and left directions respectively. In another embodiment, a command selection screen in which the screen is divided into the upper, lower, right, and left regions corresponding to the commands may be displayed independently of the battle scene. The manipulations such as the command selection can be performed by providing the direction instruction using the load applied onto thegame controller10 like the general-purpose game controller having the conventional cross key or joystick or the like.
FIG. 43 partially shows the memory map when the role-playing game is performed. The barycentric position is stored in amemory area300 of thedata memory area202. The X coordinate and Y coordinate of the barycenter are computed according to the above-mentionedFormula 1 andFormula 2. A moving vector is stored in amemory area302. The moving vector is a vector connecting the origin (0, 0) and the barycenter (XG, YG). The movement speed is stored in amemory area304. The movement speed is computed by magnitude of the moving vector. Similarly to the action game, the position of the player character is stored in thememory area282, the position of the enemy character is stored in thememory area284, the scene flag is stored in thememory area286, and the HP is stored in thememory area288.
FIG. 44 shows an example of the operation of thegame machine52 when the role-playing game is performed. The pieces of processing of steps S391 to S405, S411, and S413 are similar to those of the same reference numerals ofFIG. 38, so that the detailed descriptions are omitted.
If “YES” in the step S403, namely, in the case of the field scene, theCPU82 performs the moving processing based on the barycenter in a step S501.FIG. 45 shows the detailed operation of the moving processing. If “YES” in the step S405, namely, in the case of the battle scene, theCPU82 performs the battle processing based on the four values in a step S503.FIG. 46 shows the detailed operation of the battle processing. When the step S501 or S503 is ended, the processing goes to the step S413.
FIG. 45 shows an example of the operation of the moving processing based on a barycenter. In a step S511, theCPU82 computes the upper load value, the lower load value, the right load value, and the left load value. Because the correction is performed in the embodiment, each load value is computed based on the corrected load detection value of thememory area228.
In a step S513, theCPU82 computes difference (referred to as horizontal difference) between the right load value and the left load value. In a step S515, theCPU82 computes difference (referred to as vertical difference) between the upper load value and the lower load value. In a step S517, theCPU82 computes the X and Y coordinates at the barycentric position with respect to the center position (origin) based on the horizontal difference and vertical difference. The computation is performed according to the above-mentionedFormula 1 andFormula 2. The computed barycentric coordinate is stored in thememory area300.
In a step S519, theCPU82 computes the vector connecting the origin and the barycenter, and theCPU82 stores the vector in thememory area302. In a step S521, theCPU82 computes the movement speed of the player character based on the magnitude (length) of the vector and stores the movement speed in thememory area304. In a step S523, theCPU82 performs the moving processing for moving the player character at the computed movement speed toward the orientation of the vector. The position of the player character is computed based on the orientation of the vector, the movement speed, and the previous position and is stored in thememory area282.
In a step S525, theCPU82 determines whether or not the player character encounters the enemy character. The movement of the enemy character is controlled by the program, and the computed position of the enemy character is stored in thememory area284. Accordingly, it is determined whether the positions of the player character stored in thememory area282 and enemy character stored in thememory area284 are brought close to each other within the predetermined range. If “YES” in the step S525, theCPU82 sets the scene flag to the battle by storing the value indicating the battle in the sceneflag memory area286 in a step S527. When the step S527 is ended, or if “NO” in the step S525, the moving processing based on the barycenter is ended, and the processing returns to the step S413 ofFIG. 44.
FIG. 46 shows an example of the operation of the battle processing based on the four values. In a step S541, theCPU82 displays the command selection screen using theGPU84b. In the command selection screen of the embodiment, as shown inFIG. 42, the icons indicating the commands are displayed at predetermined upper, lower, right, and left positions on the screen.
In a step S543, theCPU82 computes the upper load value, the lower load value, the right load value, and the left load value based on the corrected load detection value of thememory area228 and stores the load values in the load computationvalue memory area232.
In steps S545 to S549, it is determined which load computation value indicates the maximum value. In a step S545, theCPU82 determines whether or not the upper load value is the maximum. If “YES” in the step S545, namely, when theCPU82 determines that the command of “fight” corresponding to the upward direction is selected, theCPU82 performs the attack processing with the weapon in a step S551. Therefore, the player character attacks against the enemy character.
On the other hand, if “NO” in the step S545, theCPU82 determines whether or not the lower load value is the maximum in a step S547. If “YES” in the step S547, namely, when theCPU82 determines that the command of “protect” corresponding to the downward direction is selected, theCPU82 performs the defense processing in a step S553. Therefore, the player character takes a defensive pose to protect against the attack of the enemy character.
If “NO” in the step S547, theCPU82 determines whether or not the right load value is the maximum in a step S549. If “YES” in the step S549, namely, when theCPU82 determines that the command of “magic” corresponding to the right direction is selected, theCPU82 performs the magic working processing in a step S555. Therefore, the player character damages the enemy character with the magic.
If “NO” in the step S549, namely, when theCPU82 determines that the command of “escape” corresponding to the left direction is selected while the left load value is the maximum, theCPU82 performs the processing for escaping from the battle scene in a step S557. For example, the player character tries to escape from the battle. The battle is ended in the case where the player character escapes successfully from the battle, and the battle is continued in the case where the player character fails to escape from the battle. The successful and failure of the escape may be determined by the difference between the HPs or a random number or the like.
When the step S551, S553, S555, or S557 is ended, theCPU82 performs other pieces of processing in a step S559. Specifically, examples of other pieces of processing include enemy character attack processing, defense processing, and magic processing.
In a step S561, theCPU82 performs the HP subtraction processing to the player character and enemy character based on the attack processing, the defense processing and the magic processing. The HP is subtracted by the predetermined value according to the attack and magic of the opponent. In the case where the opponent protects against the attack, the HP of the opponent is subtracted by the predetermined value which is lower than that of the case in which the opponent does not protect against the attack. The computed HPs of the player character and enemy character are stored in thememory area288.
In a step S563, theCPU82 determines whether or not the battle is ended. Examples of the battle end condition include that the HP of the player character or enemy character becomes zero and that the player character escapes successfully from the battle. In the case where the player character loses the battle, it is determined that the game is ended in the step S413 ofFIG. 44. If “YES” in the step S563, theCPU82 set the scene flag to the field by storing the value indicating the field in the sceneflag memory area286 in a step S565. When the step S565 is ended, or if “NO” in the step S563, the battle processing based on the four load values is ended, and the processing returns to the step S413 ofFIG. 44.
In the role-playing game, the movement target is the player character. Alternatively, the moving processing can also be applied to the movement of the cursor or pointer and the movement of the viewpoint or point of gaze of the virtual camera and the like.
In each of the above-described embodiments, thegame machine52 obtains the four load detection values from thegame controller10 and computes the necessary quantity of load computation values. However, in another embodiment, thegame machine52 informs thegame controller10 of the necessary quantity of load computation values, and thegame controller10 may compute the necessary quantity of load computation values in response to the notification and transmit the necessary quantity of load computation values to thegame machine52.
Specifically, thegame machine52 determines the necessary quantity of load values at the load obtaining timing, and thegame machine52 transmits the load obtaining command for obtaining the necessary quantity of load values to thegame controller10. Thegame controller10 that receives the command determines the type of the command to compute the necessary quantity of load values according to the command, and thegame controller10 transmits the computed load values to thegame machine52. In thegame machine52, the game processing is performed based on the received necessary quantity of load values.
FIG. 47 shows an example of the operation of thegame machine52 of the embodiment.FIG. 47 shows a modification of the operation ofFIG. 18, and the necessary quantity of load values is determined in each game in the modification ofFIG. 47. InFIG. 47, the processing similar to that ofFIG. 18 is designated by the same reference numeral, and the detailed description is omitted. Because thegame controller10 performs the load computation, the correction value computing processing in the step S41 ofFIG. 18 is not performed in thegame machine52 of the modification.
In the case where it is the load obtaining timing in the step S45, the necessary quantity of load values is determined in the steps S53 to S57. Specifically, in the step S53, theCPU82 determines whether or not the necessary quantity of load values is one. If “YES” in the step S53, namely, in the case of the total load game, theCPU82 transmits a total load command to thegame controller10 in a step S581. The total load command is used to obtain the summation (total load value) of the four load detection values. The transmission to thegame controller10 is performed to theremote control54, and the total load command is transmitted from theremote control54 to thegame controller10. In response to the total load command, thegame controller10 detects the four load values and computes the summation of the four load detection values. The summation is transmitted as the input data through theremote control54 and received by thewireless controller module94 of thegame machine52. Accordingly, in a step S583, theCPU82 obtains the summation from thegame controller10 through theinput data buffer220. In the step S59, theCPU82 performs thegame processing1 based on the summation. Because the summation is received from thegame controller10, the load computing processing (step S101 ofFIG. 20) is not performed in thegame processing1.
On the other hand, if “NO” in the step S53, theCPU82 determines whether or not the necessary quantity of load values is two in the step S55. If “YES” in the step S53, namely, in the case of the right and left balance game, theCPU82 transmits a horizontal load command to thegame controller10 in a step S585. The horizontal load command is used to obtain the right and left load values. In response to the horizontal load command, thegame controller10 detects the four load values and computes the right and left load values. The right and left load values are transmitted to thegame machine52. Accordingly, in a step S587, theCPU82 obtains the right and left load values from thegame controller10 through theinput data buffer220. In the step S61, theCPU82 performs thegame processing2 based on the right and left load values. The load computing processing (steps S151 and S153 ofFIG. 21) is also not performed in thegame processing2.
If “NO” in the step S55, theCPU82 determines whether or not the necessary quantity of load values is four in the step S57. If “YES” in the step S57, namely, in the cases of the four-directional balance game, the hoop game, and the like, theCPU82 transmits a four-directional load command to thegame controller10 in a step S589. The four-directional load command is used to obtain the four load detection values. In response to the four-directional load command, thegame controller10 detects the four load values and transmits the four load detection values to thegame machine52. Accordingly, in a step S591, theCPU82 obtains the four load detection values from thegame controller10 through theinput data buffer220. In the step S63, theCPU82 performs thegame processing3 based on the four load detection values. In the embodiment, in the case where the four load values are required, because the four load detection values is obtained from thegame controller10, the load computing processing (step S181 ofFIG. 22) is performed in thegame processing3 when the upper load value, the lower load value, the right load value, and the left load value are required. However, as shown in thegame processing3 ofFIG. 25 or29, in the case where the four load detection values are directly required, the received four load detection values are directly used as the four load computation values. In the case of the game in which the four load detection values are not required in thegame machine52, the upper load value, the lower load value, the right load value, and the left load value may be obtained from thegame controller10. In such cases, the load computing processing is not performed in thegame processing3.
FIG. 48 shows another example of the operation of thegame machine52 of the embodiment.FIG. 48 shows a modification of the operation ofFIG. 38, and the necessary quantity of load values is changed according to the scene and status of the game in the modification ofFIG. 48. InFIG. 48, the processing similar to that ofFIG. 38 is designated by the same reference numeral, and the detailed description is omitted.
In the case where it is the load obtaining timing in the step S395, the necessary quantity of load values is determined by determining the scene in the steps S403 to S405. Specifically, in the step S403, theCPU82 determines whether or not the field is set in the scene flag of thememory area286. If “YES” in the step S403, namely, in the case where the four load values are required, theCPU82 transmits a four-directional load obtaining command to thegame controller10 in a step S601. In response to the four-directional load obtaining command, thegame controller10 transmits the four load detection values to thegame machine52, and the four load detection values are received by thewireless controller module94. Accordingly, in a step S603, theCPU82 obtains the four load detection values from thegame controller10 through theinput data buffer220. In the step S407, theCPU82 performs the moving processing based on the four values. In the embodiment, because the four load detection values are obtained from thegame controller10 in the case where the four load values are required, the load computing processing (step S431 ofFIG. 39) is performed in the case where the upper load value, the lower load value, the right load value, and the left load value are required in the moving processing based on the four values. However, in the case where the four load detection values are directly required, the received four load detection values are directly used as the four load computation values. In the case of the game in which the four load detection values are not required in thegame machine52, the upper load value, the lower load value, the right load value, and the left load value may be obtained from thegame controller10. In such cases, the load computing processing is not performed in the moving processing based on the four values.
On the other hand, if “NO” in the step S403, theCPU82 determines whether or not the battle is set in the scene flag of thememory area286 in the step S405. If “YES” in the step S405, namely, in the case where the two load values are required, theCPU82 transmits a horizontal load obtaining command to thegame controller10 in a step S605. In response to the horizontal load obtaining command, thegame controller10 transmits the right and left load values. Accordingly, in a step S607, theCPU82 obtains the right and left load values from thegame controller10 through theinput data buffer220. In the step S409, theCPU82 performs the battle processing based on the two values. Because the right and left load values are received, the load computing processing (step S471 ofFIG. 40) is not performed in the battle processing based on the two values.
FIG. 49 shows an example of the operation of thegame controller10 when thegame controller10 computes the predetermined necessary quantity of load values according to the command. InFIG. 49, the processing similar to that ofFIG. 16 is designated by the same reference numeral, and the detailed description is omitted.
After the load detection values are obtained from the fourload sensors14 in the step S5, theCPU82 determines whether or not the command from thegame machine52 is the total load command in a step S621. If “YES” in the step S621, namely, in the case where one load value is required, themicrocomputer20 computes the summation of the four load detection values in a step S627. In a step S629, themicrocomputer20 transmits the computed summation to thegame machine52. The transmission to thegame machine52 is performed to theremote control54 through theconnector24, and the load computation values are transmitted as the input data from theremote control54 to thegame machine52.
On the other hand, if “NO” in the step S621, themicrocomputer20 determines whether or not the command is the horizontal load command in a step S623. If “YES” in the step S623, namely, in the case where the two load values are required, themicrocomputer20 computes the left load value, i.e., the summation of the two load detection values on the left sides in a step S631. In a step S633, themicrocomputer20 computes the right load value, i.e., the summation of the two load detection values on the right sides. In a step S635, themicrocomputer20 transmits the right load value data and the left load value data to thegame machine52 through theremote control54.
If “NO” in the step S623, themicrocomputer20 determines whether or not the command is the four-directional load command in a step S625. If “YES” in the step S625, themicrocomputer20 transmits the four load detection values to thegame machine52 through theremote control54 in a step S637. In another embodiment, themicrocomputer20 may compute such the four load computation values as the upper load value, the lower load value, the left load value, and the right load value from the four pieces of load detection values and transmit the four load computation value data to thegame machine52.
Although not shown inFIG. 49, in the case where the necessary quantity of load computation values is computed according to the command on the side of thegame controller10, themicrocomputer20 may perform the correction value computing processing (FIG. 19) according to correction value computing program and the correction processing (step S51 ofFIG. 18) of the load detection value according to the correction program. In such cases, the load values are computed based on the corrected load detection values.
Theprocessor112 of theremote control54 obtains the four load detection values from thegame controller10, and theprocessor112 may compute the quantity of load computation values according to the command. Theprocessor112 of theremote control54 may also perform the correction value computing processing and the load detection value correction processing.
In each of the above-described embodiments, when the necessary quantity of the load values is two, the fourload sensors14 are equally and horizontally divided into two sets to compute the summation of the two load detection values adjacent to each other on the left side and the summation of the two load detection values adjacent to each other on the right side. However, the patterns of the combinations of the plurality of load detection values may appropriately be changed when the load computation values are computed. For example, the two load computation values of the summation (upper load value) of the two load detection values adjacent to each other on the upper side and the summation (lower load value) of the two load detection values adjacent to each other on the lower side may be computed. The plurality of load detection values may unequally be combined. For example, the two load computation values of the one load detection value and the summation of the three load detection values may be computed, or the three load computation values of the summation of the two load detection values and each of the two remaining load detection values may be computed.
In each of the above-described embodiments, only theload sensor14 that is of the manipulation means or input means manipulated by the player is provided in thegame controller10. However, in another embodiment, as shown inFIG. 50, one or a plurality ofmanipulation buttons40 may further be provided in thegame controller10. Themanipulation button40 is one that is manipulated by the player's leg, and themanipulation buttons40 has a predetermined size so as to be pressed down by the leg. Thefoot manipulation button40 is provided in a surface different from the upper surface of theboard12 on which the player rides. InFIG. 50, the twofoot manipulation buttons40 are provided in one side face of theboard12. Possibly thefoot manipulation button40 is provided in the upper surface of theboard12. Thecable32 is not shown inFIG. 50.
When thefoot manipulation button40 is pressed down by the player's leg, a manipulation signal corresponding to thefoot manipulation button40 is inputted to themicrocomputer20, and the manipulation data is transmitted to thegame machine52. Accordingly, the game processing is performed based on the foot manipulation data.
The functions allocated to thefoot manipulation buttons40 are appropriately set. For example, the twofoot manipulation buttons40 may be the start button for starting the game and the select button for selecting the game. Alternatively, the twofoot manipulation buttons40 may be the A button for providing the instructions such as the predetermined motion and determination and the B button for providing the instructions such as the predetermined motion and cancellation. According to thegame controller10, the player can perform the game manipulation by the way the load is applied, and the player can also press down thefoot manipulation button40 to manipulate the game using the function allocated to thefoot manipulation button40.
FIG. 51 shows an example of the operation of themicrocomputer20 concerning thefoot manipulation button40. In a step S651, themicrocomputer20 determines whether or not thefoot manipulation button40 is pressed down. If “YES” in the step S651, namely, when the manipulation signal is inputted from thefoot manipulation button40, themicrocomputer20 transmits the manipulation data corresponding to the pressed-downfoot manipulation button40 to thegame machine52 in a step S653. As with theload sensor14, the transmission is performed to theremote control54. Theremote control54 transmits the input data including the manipulation data of thefoot manipulation button40 to thegame machine52. Accordingly, theCPU82 of thegame machine52 can perform the game processing based on the manipulation data of thefoot manipulation button40.
In each of the above-described embodiments, thegame controller10 conducts communication with thegame machine52 through theremote control54. Theremote control54 is different type of game controller, and theremote control54 can wirelessly conduct communication with thegame machine52. However, in another embodiment, thegame controller10 may directly conduct communication with thegame machine52.
In the embodiment shown inFIG. 52, thegame controller10 is connected to thegame machine52 in the wired way. Specifically, theconnector24 located at the front end of thecable32 of thegame controller10 is connected to theextended connector96 located in the backside of thehousing56 of thegame machine52. Accordingly, theCPU82 of thegame machine52 can transmit the load obtaining command to thegame controller10 through theextended connector96. Themicrocomputer20 of thegame controller10 can transmit the input data including the load detection value (or load computation value) of eachload sensor14 to thegame machine52 through theconnector24.
In the embodiment shown inFIG. 53, thegame controller10 is wirelessly connected to thegame machine52. As shown inFIG. 54, thegame controller10 includes awireless module42 connected to themicrocomputer20. In this case, the electric power is supplied from thebattery30 to themicrocomputer20 and thewireless module42. Anantenna42ais connected to thewireless module42. Thewireless module42 can conduct communication pursuant to the same wireless communication standard (such as Bluetooth and wireless LAN) as thewireless controller module94 of thegame machine52. Accordingly, theCPU82 of thegame machine52 can transmit the load obtaining command to thegame controller10 through thewireless controller module94. Themicrocomputer20 of thegame controller10 can receive the command from thegame machine52 through thewireless module42 andantenna42a, and themicrocomputer20 can transmit the input data including the load detection value (or load computation value) of eachload sensor14 to thegame machine52.
In each of the above-described embodiments, the board12 (support plate16) of thegame controller10 is formed in the square or rectangular shape when viewed from above. However, the shape of the board12 (support plate16) can appropriately be changed. For example, as shown inFIG. 55, the board12 (support plate16) may be formed in a round shape when viewed from above. Alternatively, as shown inFIG. 56, theboard12 may be formed in a leg shape, namely, theboard12 may be formed so as to have two portions on which the legs ride.
In each of the above-described embodiments, the fourload sensors14 are arranged in the peripheral portion of the board12 (support plate16). In another embodiment, the fourload sensors14 may be arranged inside the peripheral portion as shown inFIG. 57. However, the fourload sensors14 are arranged at predetermined intervals so as to ensure the accuracy of load detection.
In each of the above-described embodiments, the intermediate-layer plate16cincluded in thesupport plate16 is supported by the fourload sensors14. However, in another embodiment, the intermediate-layer plate16cmay be divided into four as shown inFIG. 58. That is, and eachload sensor14 may support each intermediate-layer plate16cwhile the four intermediate-layer plates16csupport the one upper-layer plate16a. In this case, the load applied to each intermediate-layer plate16cis detected more directly by eachload sensor14, so that the detection accuracy can be enhanced.
In each of the above-described embodiments, the onegame controller10 is connected to thegame machine52. However, in another embodiment, thegame system50 may be configured such that the plurality ofgame controllers10 are directly connected to thegame machine52 or such that the plurality ofgame controllers10 are connected to thegame machine52 through the plurality ofremote controls54, a junction device, or the network. In such cases, the game for the plurality of players can be performed.
In each of the above-described embodiments, the fourload sensors14 are provided in thegame controller10. However, in another embodiment, four ormore load sensors14 may be provided in thegame controller10. In such cases, further various quantities of load computation values can be computed to perform the game processing.
Although the present invention has been described and illustrated in detail, it is clearly understood that the same is by way of illustration and example only and is not to be taken by way of limitation, the spirit and scope of the present invention being limited only by the terms of the appended claims.