The present invention relates to a game device and a computer program, more specifically, a game device using a controller, and a computer program.
Recently, a technique that a player gets on a controller with a plurality of load sensors provided on, and changing loading modes on the controller to thereby make input operations of the game (Patent Reference 1).
The background art of the invention of the present application is as follows.
Patent Reference 1: Japanese Patent Application Unexamined Publication No. 2008-264195
Patent Reference 2: Japanese Patent Application Unexamined Publication No. 2008-119211
However, by using such controller, realistic operations cannot be always realized.
An object of the present invention is to provide a game device which can realize realistic operations, and a computer program.
According to one aspect of the present invention, the present invention provides a computer program for operating a computer as a game device using a controller including a supporter for supporting a player; a first load sensor provided at a right front part of the supporter, for detecting a load from supporter; a second load sensor provided at a right rear part of the supporter, for detecting a load from the supporter, the third load sensor provided at a left front part of the supporter, for detecting a load from the supporter, and the fourth load sensor provided at a left rear part of the supporter, for detecting a load from the supporter, said computer being operated as an action determination means which calculates a first value, based on a difference of a first load data based on an output of the first load sensor and the second load data based on an output of the second load sensor, calculates a second value based on a difference between a third load data based on an output of the third load sensor and a fourth load data based on an output of the fourth load sensor, and determines an action of an object to be displayed on a display screen, based on the first value and the second value.
According to the other aspect of the present invention, the present invention provides a game device comprising a controller including a supporter for supporting a player, and a first load sensor provided at a right front part of the supporter, for detecting a load from the supporter, a second load sensor provided at a right rear part of the supporter, for detecting a load from the supporter, a third load sensor provided at a front left part of the supporter, for detecting a load from the supporter and a fourth load sensor provided at a left rear part of the supporter, for detecting a load from the supporter, the game device comprising an action determination means which calculates a first value based on a difference between the first load data based on an output of the first load sensor and an output of the second load sensor, calculates a second value, based on a difference between the third load data based on an output of the third load sensor and a fourth load data based on an output of the fourth load sensor, and determines an action of an object to be displayed on a display screen, based on the first value and the second value.
According to the present invention, a first value is calculated, based on a difference between a first load data based on an output of a first load sensor provided at a right front part of the supporter for a player to be supported on, and a second load data based on an output of a second load sensor provided at a right rear part of the supporter. A second value is calculated, based on a difference between a third load data based on an output of a third load sensor provided at a left front part of the supporter and a fourth load data based on an output of a fourth load sensor provided at a left rear part. Based on the first value and the second value, an action of an object displayed on a display screen is determined. Thus, according to the present invention, the object can be cause to make rotation, etc., which makes it possible to realistically enjoy the game.
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
The game device and a computer program according to an embodiment of the present invention will be described with reference to
First, the appearance of the game device 10 according to the present embodiment will be described.
The game device 10 according to the present embodiment is used, connected to a TV monitor (a display, display means) 4 placed on a TV rack 2.
The game device 10 includes a first controller 20 to be operated by a player, and a second controller 22 to be operated by the player.
The game device body 12 and the TV monitor 4 are connected to each other by a cable. The game device body 12 and the first controller 20 can communicate with each other by wireless. The game device body 12 and the second controller 22 can communicate with each other by wireless.
As illustrated in
The second controller 22 is operated by, e.g., a hand 23 of the player. On the operation side of the second controller 22, various operation buttons 28, such as a power source button 28a, a cross button 28b, etc. (see
Next, the structure of the game device according to the present embodiment will be described.
As illustrated in
A program data memory device or a memory storage medium (including an optical disc, an optical disc drive, etc. for driving CD-ROMs, etc. which are game record media) 46 storing the game program and data (including image data and music data), and a BOOT ROM 48 storing programs and data for actuating the game device 10 are connected to the bus arbiter 44 via bus lines.
To generate display images, polygon data having three-dimensional local coordinates data forming objects to be displayed (vertex data), NURBS (Non Uniform Rational B-Spline) data (curved-face or control point data) are stored in the system memory 42, and these are arranged in a world coordinate system of a three-dimensional virtual space by the CPU 40 and a geometry processor (not illustrated) to convert the local coordinates to the world coordinate system.
Furthermore, in the world coordinate system, view point coordinates generated by an operation of a player and in accordance with a progress of the game are set, and objects present in the view range seen at this view point in a prescribed view direction and at a view angle are converted into a view point coordinate system having the view coordinates at the origin, and the converted coordinates of the objects are transmitted to the rendering processor 50.
The rendering processor 50 first makes interpolation processing, such as light source processing, on the transmitted coordinates of the objects and details the surfaces of the objects by adhering texture data stored in the graphic memory 52 to the objects. Furthermore, the rendering processor 50 projects from the three-dimensional stereoscopic projects the objects (polygons) on the two-dimensional plane (screen) for the display on the TV monitor 4 to convert the objects to the two-dimensional coordinate data (screen coordinate system), displays first the polygons whose depth in the Z coordinate are smaller, i.e., nearer to the view point coordinates to thereby generate two-dimensional images, and outputs the two-dimensional images on the TV monitor 4, such as a CRT, a liquid crystal display or others.
Via the bus arbiter 44, the rendering processor 50, which reproduces image (MOVIE) data read from the program data memory device or the memory storage medium 46 and generates images for image displays by an operation of a player or in accordance with a progress of the game, and a graphic memory 52 which stores graphic data, etc. necessary for the rendering processor 50 to generate images are connected to each other. The image signals outputted from the rendering processor 50 are converted from digital signals to analog signals by the video DAC 54 to be displayed by the TV monitor 4.
Via the bus arbiter 44, a sound processor 56 which reproduces music data read from the program data memory device or the memory storage medium 46 and generates effect sounds and voices by an operation of a player and in accordance with a progress of the game, and a sound memory 58 storing sound data, etc. necessary for the sound processor 56 to generate effect sounds and voices are connected to each other. The voice signals outputted from the sound processor 56 are converted from digital signals to analog signals by an audio DAC 60 to be outputted from the speaker of the TV monitor 4.
To the bus arbiter 44, a communication interface 62 is connected. The communication interface 62 is connected to outside networks, such as telephone circuits, etc., via a LAN adapter 64. The game device body 12 is connected to internets by the LAN adapter 64 and can communicate with other game devices, network severs, etc.
The communication interface 62 and the LAN adapter 64 use telephone circuits but may use terminal adapters (TA) or routers using telephone circuits, cable modems using cable TV circuits, wireless communication means using portable telephones or PHS and other communication means, such as optical fiber communication means, etc., using optical fibers.
To the bus arbiter 44, a wireless receiver unit 68 which wireless communicates with the controller 20 and the remote controller 22 is connected. The wireless receiver unit 68 receives information transmitted from the first controller 20 and information transmitted from the second controller 22.
To the bus arbiter 44, a peripheral I/F (Interface) 70 is connected. Via the peripheral I/F 70, various peripheral devices can be connected.
The game device 10 is not essentially a domestic game device and can be a personal computer, a portable electronic game machine, an electronic device, such as a portable telephone, a PDA or others, an information processing device of a game device or others installed in amusements facilities, shops such as game cafes, etc.
Next, the first controller used in the present embodiment will be described with reference to
The first controller 20 of the present embodiment functions as the operation device (operating means) of the game. The controller 20 includes the supporter (support plate) 78 for a player to get on, the load sensors 82a-82d which detect loads applied to the supporter 78. The load sensors 82a-82d are arranged on the four corners of the supporter 78.
More specifically, the first load sensor 82a is arranged at the right front part of the supporter 78, the second load sensor 82b is arranged at the right rear part of the supporter 78, the third load sensor 82c is arranged at the left front part of the supporter 78, and the fourth load sensor 82d is arranged at the left rear part of the supporter 78.
On the four corners of the first controller 20, the legs 80a-80d are provided. The respective legs 80a-80d are formed, e.g., cylindrical. The first load sensor 82a is supported by the leg 80a, the second load sensor 82b is supported by the leg 80b, the third load sensor 82c is supported by the leg 80c, and the fourth load sensor 82d is supported by the leg 80d. That is, the supporter 78 is supported by the four legs 80a-80d via the load sensors 82a-82d provided on the four corners.
When a player 6 gets on the supporter 78 of the first controller 20 as illustrated in
The load sensors 82a-82d can be, e.g., strain gauges-type load cells or others. The load sensors 82a-82d output electric signals of intensities corresponding to applied loads.
The first controller 20 can be suitably a controller which includes a plurality of load sensors for detecting loads applied to the supporter.
As illustrated in
The respective load sensors 82a-82d are connected to an AD converter 86 via the respective amplifiers 84a-84d.
A wireless transmission unit 90 transmits data from the first controller 20 to the game device body 12. The wireless transmission unit 90 is provided in the inside of, e.g., the first controller 20. To the load sensors 82a-82d, the amplifiers 84a-84d, the AD converter 86, the CPU 88 and the wireless communication unit 90, prescribed voltages are supplied from a battery (not illustrated), such as electric cells or others.
The respective load sensors 82a-82d output signals indicating inputted loads. The electric signals outputted from the respective load sensors 82a-82d are amplified respectively by the amplifiers 84, converted from the analog signals to digital data by the AD converter 86, and inputted to the CPU 88. To the data of the detected values of the respective load sensors 82a-82d, identification information of the respective load sensors 82a-82d is added, and which load sensors 82a-82d the detected load values belong to can be identified.
The CPU 88 obtains data f1-f4 of detected load values of the respective load sensors 82a-82d. f1 is data of the detected load value given by the first load sensor 82a, f2 is data of the detected load value given by the second load sensor 82b, f3 is the detected load value given by the third load sensor 82c, and f4 is the detected load value given by the fourth load sensor 82d.
The data f1-f4 of the detected load values given by the load sensors 82a-82d are transmitted as operational input data for the first controller 20 from the CPU 88 to the game device body 12 via the wireless transmission unit 90. The CPU 88 transmits for, e.g., each frame, the data f1-f4 of the detected load values given by the load sensors 82a-82d.
The game execution processing of the game device according to the present embodiment will be described.
In the game of the present embodiment, a player operates with the first controller 20 directions (proceeding directions) of a hover machine (an object) 100 displayed on the TV monitor (a display, display means) 2 and velocities (moving velocities, proceeding velocities) to reach the hover machine 100 to the flag (a target to gain points) 102 displayed on the TV monitor 2 and obtain the flag 102, whereby the player goes on gaining points.
For example, when all of the flags 102 displayed are obtained, the game is set. The player can enjoy the game by competing in obtaining all the flags 102 within a shorter period of time.
On the upper left part of the screen of the TV monitor 4, the best record (BEST RECORD) 104 of the games so far played is indicated. At the upper central part of the TV monitor 4, a number 106 of remaining flags is indicated. At the upper right part of the screen of the TV monitor 4, an elapsed time 108 from the start of the game is indicated. On the screen of the TV monitor 4, flags 102 which are targets to gain points are displayed.
On the screen of the TV monitor 4, the object (the hover machine) 100 to be operated by a player in the three-dimensional virtual space is displayed. On the screen of the TV monitor 4, the hover machine 100 is displayed with an operator (a character) 110 riding the hover machine 100.
At the right front part, the right rear part, the left front part and the right rear part of the hover machine 100, jet engines 112a-112d are respectively provided. The jet engines 112a-112d are for applying driving forces to hover machine 100. The hover machine 100 runs on virtual ice with the driving forces of the jet engines 112a-112d. The jet engines 112a, 112b on the right side, and the jet engines 112c, 112d on the left side are controlled independently. The jet engine 112a at the right front part and the jet engine 112b at the right rear part do not simultaneously jet. The jet engine 112c at the left front part and the jet engine 112d at the left rear part do not simultaneously jet.
For example, by both of the jet engine 112b at the right rear part and the jet engine 112d at the left rear part jetting, forward driving forces are applied to the hover machine 100 by the jet engine 112b at the right rear part and the jet engine 112d at the left rear part, and the hover machine 100 moves forward.
By both of the jet engine 112a at the right front part and the jet engine 112c at the left front part jetting, backward driving forces are applied to the hover machine 100, and the hover machine 100 moves backward.
By the jet engine 112a at the right front part and the jet engine 112d at the left rear part jetting, driving forces are applied to the hover machine 100 by the jet engine 112a at the right front part and the jet engine 112d at the left rear part. When the driving force of the jet engine 112a at the right front part and the driving force of the jet engine 112d at the left rear part are equal to each other, the hover machine 100 rotates right there without changing the central position. When the driving force of the jet engine 112a at the right front part is larger than the driving force of the jet engine 112d at the left rear part, the hover machine 100 moves backward, rotating right. When the driving force of the jet engine 112d at the left rear part is larger than the driving force of the jet engine 112a at the right front part, the hover machine 100 moves forward, rotating right.
By the jet engine 112b at the right rear part and the jet engine 112c at the left front part jetting, driving forces are applied to the hover machine 100 by the jet engine 112b at the right rear part and the jet engine 112c at the left front part. When the driving force of the jet engine 112b at the right rear part and the driving force of the jet engine 112c at the left front part are equal to each other, the hover machine 100 rotates left there without changing the central position. When the driving force of the jet engine 112b at the right rear part is larger than the deriving force of the jet engine 112c at the left front part, the hover machine 100 moves forward, rotating left. When the driving force of the jet engine 112c at the left front part is larger than the driving force of the jet engine 112b at the right rear part, the hover machine 100 moves backward, rotating left.
On the screen of the TV monitor 4, obstacles 114 that hinder the advance of the hover machine 100 are also displayed.
Before the game starts, a display which asks a player to get on the first controller 20 is displayed on the TV monitor 4.
When the player gets on the first controller 20, the measuring of the weight of the player is performed. Specifically, the total value of data f1-f4 of detected load values given by the four load sensors 82a-82d is taken for data F of the weight of the player. The weight F of the player is expressed by the following formula.
F=f
1
+f
2
+f
3
+f
4
The CPU 40 stores the data F of the weight of the player in the player weight memory provided in the system memory 42 (see
Next, the CPU 40 calculates a coefficient a for normalizing the data f1-f4. The coefficient (normalization coefficient) a for normalizing the f1-f4 is expressed by the following formula.
a=1/F
The CPU 40 stores the normalization coefficient a in the normalization coefficient memory provided in the system memory 42 (see
The data f1-f4 of the detected load values of the respective load sensors 82a-82d are obtained for each frame. The CPU 40 stores the data f1-f4 of the obtained detected load values in the f1-f4 memory provided in the system memory 42 (see
The data g1(n)-g4(n) of the detected load values given by normalizing the data f1(n)-f4(n) of the n-th frame are expressed by the following formulas.
g
1(n)
=f
1(n)
×a
g
2(n)
=f
2(n)
×a
g
3(n)
=f
3(n)
×a
g
4(n)
=f
4(n)
×a
Since the data g1(n)-g4(n) are normalized, the total of the data g1(n)-g4(n) is 1.0.
The CPU 40 stores the normalized data g1-g4 in the g1-g4 memory provided in the system memory 42 (see
In the present embodiment, when a player is standing upright on the first controller 20 without motion, correction coefficients (correction values) b1-b4 for making the data g1-g4 of the normalized detected load values 0.25 are determined respectively in advance. The correction coefficients b1-b4 are not determined for the respective players but are applied uniformly to all the players.
The correction coefficients b1-b4 are applied uniformly to all the players here but the correction coefficients may be determined for the respective players.
Data (load data) W1(n)-W4(n) of the detected load values normalized and corrected are expressed by the following formulas.
W
1(n)
=g
1(n)
×b
1
=f
1(n)
×a×b
1
W
2(n)
=g
2(n)
×b
2
=f
2(n)
×a×b
2
W
3(n)
=g
3(n)
×b
3
=f
3(n)
×a×b
3
W
4(n)
=g
4(n)
×b
4
=f
4(n)
×a×b
4
The CPU 40 stores the calculated load data W1(n)-W4(n) in the W1-W4 memory provided in the system memory 42.
The position coordinates P(n) of the object (the hover machine) 100 at the n-th frame in the world coordinate system are expressed as follows.
P
(n)=(PX(n), PY(n), PZ(n))
The position coordinates P(n) are stored in the position coordinates memory provided in the system memory 42 (see
Here, the X Z plane in the world coordinate system is a plane in parallel with the virtual ground, and the Y axis of the world coordinate system is normal to the virtual ground.
On the initial stage of the game, the central line of the object 100 in the left-to-right direction agrees with the X axial direction. More specifically, on the initial stage of the game, the rightward direction of the object 100 agrees with the positive direction of the X axis, and the leftward direction of the object 100 agrees with the negative direction of the X direction.
On the initial stage of the game, the central line of the object 100 in the front-to-rear direction agrees with the Z axial direction. More specifically, on the initial stage of the game, the rear direction of the object 100 agrees with the positive direction of the Z axis, and the forward direction of the object 100 agrees with the negative direction of the Z axis.
In the state that the object 100 is positioned on the horizontal plane, the central line of the object 100 in the up-to-down direction agrees with the Y axis. More specifically, in the state that the object 100 is positioned on the horizontal plane, the downward direction of the object 100 agrees with the positive direction of the Y axis, and the upward direction of the object 100 agrees with the negative direction of the Y axis.
When the execution of the game is started, the CPU makes the normalization with the normalization coefficient a and the correction with the correction coefficients b1-b4 as described above, based on the data f1(n)-f4(n) of the detected load values of the load sensors 82a-82d to thereby calculate the respective load data W1(n)-W4(n) (Step S1). The CPU 40 makes the computation of the respective load data W1(n)-W4(n) for each frame.
The CPU 40 stores the calculated load data W1(n)-W4(n) in the W1-W4 memory provided in the system memory 42 (see
Then, the CPU 40 subtracts first load data W1(n) from the second load data W2(n) to thereby calculate the first value WR(n) (Step S2). The first value WR(n) is calculated for each frame.
The first value WR(n) is expressed by the following formula.
W
R(n)
=W
2(n)
−W
1(n)
The CPU 40 stores the calculated first value WR(n) in the WR(n) memory provided in the system memory 42 (see
The CPU 40 subtracts the third load data W3(n) from the fourth load data W4(n) to thereby calculate the second value WL(n) (Step S3). The second value WL(n) is calculated for each frame.
The second value WL(n) is expressed by the following formula.
W
L(n)
=W
4(n)
−W
3(n)
The CPU 40 stores the calculated second value WL(n) in the WL(n) memory provided in the system memory 42 (see
Next, when the absolute value of the first value WR(n) is smaller than a prescribed threshold value c (Step S4), the CPU 40 corrects the first value WR(n) (Step S5). Specifically, when the absolute value of the first value WR(n) is smaller than the prescribed threshold value c, a the first value WR(n) is multiplied by a prescribed correction coefficient d. The prescribed threshold value c is set at, e.g., 0.05. The prescribed correction coefficient d is set at, e.g., 0.02. Such processing is for preventing from the object 100 from acting by a small change of a load even when a player does not intend. This permits the action of the object 100 to be much suppressed when a player is standing upright without motion.
When the absolute value of the second value WL(n) is smaller than the prescribed threshold value c (Step S6), the CPU 40 corrects the second value WL(n) (Step S7). Specifically, when the absolute value of the second value WL(n) is smaller than the prescribed threshold value c, the second value WL(n) is multiplied by the prescribed correction coefficient d.
Next, the CPU 40 gives a product of the multiplication of the first value WR(n) by the second value WL(n), i.e., the value of (WR(n)×WL(n)) (Step S8). When the value of (WR(n)×WL(n)) is negative and is smaller than the prescribed threshold value e (Step S9), the processing of rotating the object to be described later is made (Steps S11-S15). When the value of (WR(n)×WL(n)) is positive or larger than the prescribed threshold value e even if (WR(n)×WL(n)) is negative, the action of the object 100 is determined as follows, based on the first value WR(n) and the second value WL(n) (Step S10). The prescribed threshold value e can be, e.g., −0.01. Such use of the prescribed threshold value e is for preventing the rotation, etc. of the object 100 due to a small load change even when a player does not intend.
The CPU 40 determines an action of the object 100 as follows, based on the first value WR(n) and the second value WL(n).
The rotation angle A(n) of the object 100 in the n-th frame of the local coordinate system is expressed as follows.
A
(n)=(AX(n), AY(n), AZ(n))
AX(n) is the data of the rotation angle of the object 100 on the rotation axis of the X axis. AY(n) is the data of the rotation angle of the object 100 on the rotation axis of the Y axis. AZ(n) is the data of the rotation angle of the object 100 on the rotation axis of the Z axis. The right rotation on the rotation axis is positive, and the left rotation on the rotation axis is negative.
When the plane on which the object 100 moves is horizontal, no rotation is made on the X axis and no rotation is made on the Z axis. The rotation on the Y axis alone is made. Here, to make the description simple, the description will be made by means of the example that the plane on which the object 100 moves is horizontal. Accordingly, the values of the AX(n) and the AZ(n) are 0 respectively here. AY(n) is 0 when the central line of the object 100 in the front-to-rear direction is parallel with the Z axis and the forward direction of the object 100 agrees with the negative direction of the Z axis.
The object 100 may move on an inclined plane. When the object 100 moves on an inclined plane, not only the AY(n) but also the AX(n) and the AZ(n) are considered.
The rotation angle AY(n) in the local coordinate system is given by the following formula.
A
Y(n)
=A
Y(n−1)+(WL(n)−WR(n))
AY(n−1) is the data of the rotation angle of the n−1-th frame, and AY(n) is the data of the rotation angle of the n−1-th frame. The data AY(n−1) of the rotation angle of the n−1-th frame is stored in the rotation angle memory provided in the system memory 42 (see
The minimum value of the (WL(n)−WR(n)) is −1.0, and the maximum value thereof is 1.0.
The data of the rotation angle A(n) of the n-th frame such given is stored in the rotation angle memory provided in the system memory 42 (see
When the object 100 is displayed in the world coordinate system, the data A(n) of a rotation angle is converted to a value A(n)′ of the angle by a prescribed conversion formula or others.
As such prescribed conversion formula, the following conversion formula, for example, can be used.
A
(n)
′=k×A
(n)×π
k is a prescribed coefficient.
The velocity V(n) of the object 100 in the n-th frame of the world coordinate system is expressed as follows.
V(n)=(VX(n), VY(n), VZ(n))
The velocity VX(n) of the object 100 in the X axial direction is expressed as follows.
V
X(n)=(WR(n)+WL(n))×sin(AY(n)′)
When the plane on which the object 100 moves is horizontal, the VY(n) , the velocity of the object 100 in the Y axial direction is 0.
The velocity VZ(n) of the object 100 in the Z axial direction is expressed as follows.
V
Z(n)=(WR(n)+WL(n))×cos(AY(n)′)
When the object 100 is displayed in the world coordinate system, the conversion or others of the VX(n), the VY(n) and the VZ(n) is made by a prescribed conversion formula or others.
When the gravity center of the right leg 8a of the player is neither forward nor backward (see
When the center of the gravity of the left leg 8b of the player is neither forward nor backward (see
When the player applies the weight to the side of the tiptoe of the right leg 8a (see
When the player applies the weight to the side of the tiptoe of the left leg 8b (see
When the player applies the weight to the side of the heel of the right leg 8a (see
When the player applies the weight to the side of the heel of the left leg 8b (see
When the player applies the weight to the side of the tiptoe of the right leg 8a and also to the side of the tiptoe of the left leg 8b, the CPU 40 displays on the TV monitor 4 the jetting of the jet engines 112b at the right rear part and the jetting of the jet engine 112d at the left rear part. The action of the object 100 is determined as described above.
When a player applies the weight to the heel of the right leg 8a and also to the side of the heel of the left leg 8b, the CPU 40 displays on the TV monitor 4 the jetting of the jet engine 112a at the right front part and also the jetting of the jet engine 112b at the left front part. The action of the object 100 is determined as described above.
In Step S9 (see
As illustrated in
W
R(n)>0
W
L(n)<0
As described above, when the first value WR(n) is positive, and the second value WL(n) is negative (Step S11), the object 100 rotates right.
In this case, however, it is relatively easy for the left leg 8b to apply the weight to the side of the tiptoe, but it is not always easy for the right leg 8a to apply the weight sufficiently to the side of the heel. Accordingly, in this case, the first value WR(n) is corrected (Step S12). Specifically, the first value WR(n) is multiplied by the prescribed correction coefficient h. The prescribed correction coefficient h can be, e.g., 2.
The corrected first value WR(n)′ is expressed as follows.
W
R(n)
′=W
R(n)
×h
The CPU 40 stores the corrected first value WR(n)′ in the WR(n)′ memory provided in the system memory 42 (see
When the object 100 is rotated right, by using the corrected first value WR(n)′ and the second value WL(n), which has not been corrected, an action of the object 100 is determined as follows (Step S13).
The data AY(n) of the rotation angle in the local coordinate system is given by the following formula.
A
Y(n)
=A
Y(n−1)+(WL(n)−WR(n)′)
AY(n−1) is the data of the rotation angle in the n−1-th frame, and AY(n) is the data of the rotation angle in the n-th frame. The data of the rotation angle of the n−1-th frame is stored in the rotation angle memory provided in the system memory 42 (see
The data of the rotation angle AY(n) of the n-th frame thus given is stored in the rotation angle memory provided in the system memory 42 (see
The velocity VX(n) of the object 100 in the X axial direction is expressed as follows.
V
X(n)=(WR(n)′+WL(n))×sin(AY(n)′)
When the plane the object 100 moves on is horizontal, the velocity VY(n) of the object 100 in the Y axial direction is 0.
The velocity VZ(n) of the object 100 in the Z axial direction is expressed as follows.
V
Z(n)=(WR(n)′WL(n))×cos(AY(n)′)
The CPU 40 displays on the TV monitor 4 the jetting of the jet engine 112a at the right front part and also the jetting of the jet engine 112d at the left rear part. The intensities of the respective jettings are set, respectively based on the magnitude of the absolute value of the first value WR(n) and the magnitude of the absolute value of the second value WL(n).
As illustrated in
W
R(n)<0
W
L(n)>0
When the first value WR(n) is negative, and the second value WL(n) is positive as above, the object 100 is rotated left.
In this case, however, it is relatively easy to apply the weight to the side of the tiptoe of the right leg 8a, but it is not always easy sufficiently apply the weight to the side of the heel of the left leg 8b. Accordingly, in this case, the second value WL(n) is corrected (Step S14). Specifically, the second value WL(n) is multiplied by a prescribed correction coefficient h. The prescribed correction coefficient h can be, e.g., 2.
The corrected second value WL(n)′ is expressed as follows.
W
L(n)
′=W
L(n)
×h
The CPU 40 stores the corrected second value WL(n)′ in the WL(n)′ memory provided in the system memory 42 (see
When the object 100 is rotated left, an action of the object 100 is determined as follows by using the first value WR(n) not corrected and the corrected second value WL(n)′ (Step S16).
The data of a rotation angle AY(n) in the local coordinate system is given by the following formula.
A
Y(n)
=A
Y(n−1)+(WL(n)′−WR(n))
AY(n−1) is the data of the rotation angle of the n−1-th frame, and the AY(n) is the data of the rotation angle of the n-th frame. The data AY(n−1) of the rotation angle of the n−1-th frame is stored in the rotation angle memory provided in the system memory 42 (see
The data of the rotation angle AY(n) of the n-th frame thus given is stored in the rotation angle memory provided in the system memory 42 (see
The velocity VX(n) of the object 100 in the X axial direction is expressed as follows.
V
X(n)=(WR(n)+WL(n)′)×sin(AY(n)′)
When the plane the object 100 moves on is horizontal, the velocity VY(n) of the object 100 in the Y axial direction is 0.
The velocity VZ(n) of the object 100 in the Z axial direction is expressed as follows.
V
Z(n)=(WR(n)+WL(n)′)×cos(AY(n)′)
The CPU 40 displays on the TV monitor 4 the image that the jet engine 112c at the left front part jets, and also the jet engine 112b at the right rear part jets. The intensities of the respective jettings are set, respectively based on the magnitudes of the absolute value of the first value WR(n) and the magnitudes of the absolute value of the second value WL(n).
Thus, the action of the object 100 is determined for each frame.
The processing of determinating an action of the object illustrated in
Next, actions of the object 100 will be more specifically described with reference to
In
The value given by subtracting the first value WR(n) from the second value WL(n) is 0, and accordingly, the data AY(n) of the rotation angle of the n-th frame is the same value as the data AY(n−1) of the rotation angle of the n−1-th frame. Accordingly, the object 100 does not change the direction.
The value given by adding the first value WR(n) and the second value WL(n) is −0.6, and accordingly, the object 100 proceeds in the negative direction of the Z axis at a velocity corresponding to the magnitude of 0.6.
The value given by subtracting the first value WR(n) from the second value WL(n) is 0, and accordingly the data AY(n) of the rotation angle of the n-th frame is the same value as the data AY(n−1) of the rotation angle of the n−1-th frame. Accordingly, the object 100 is retained in the same direction as in the n−1-th frame.
The value given by adding the first value WR(n) and the second value WL(n) is −0.6, and accordingly, in the case of
The value given by subtracting the first value WR(n)′ from the second value WL(n) is −0.6, and accordingly, the data AY(n) of the rotation angle of the n-th frame is varied by −0.6 from the data AY(n−1) of the rotation angle of the n−1-th frame. More specifically, by the above-described conversion formula, the value of the rotation angle varies by −0.6 kπ. In
The value given by adding the first value WR(n)′ and the second value WL(n) is 0, and accordingly the positional coordinates of the center of the object 100 do not vary.
Thus, in the case of
The value given by subtracting the first value WR(n) from the second value WL(n) is 0.2, and accordingly, the data AY(n) of the rotation angle of the n-th frame is varied by +0.2 from the data AY(n−1) of the rotation angle of the n−1-th frame. More specifically, when the above-described conversion formula is used, the value of the rotation angle is varied by +0.2 kπ. In
The value given by adding the first value WR(n) and the second value WL(n) is −0.4.
Accordingly, in the case of
The value given by subtracting the first value WR(n) from the second value WL(n)′ is 0.4, and accordingly, the data AY(n) of the rotation angle of the n-th frame is varied by +0.4 from the data AY(n−1) of the rotation angle of the n−1-th frame. More specifically, when the above-described conversion formula is used, the value of the rotation angle is varied by +0.4 kπ. In
The value given by adding the first value WR(n) and the second value WL(n)′ is −0.2.
Accordingly, in the case of
Thus, the actions of the objects 100 are determined, and the object 100 on the screen of the TV monitor 4 acts corresponding to the determined actions.
In the game of the present embodiment, all the flags 102 have been got, the game finishes.
As described above, according to the present embodiment, the first value is calculated, based on a difference between the first load data based on an output of the first load sensor 82a provided at the right front part of the supporter 78 for a player to be supported on, and the second load data based on an output of the second load sensor 82b provided at the right rear part of the supporter 78, and the second value is calculated, based on a difference between the third load data based on an output of the third load sensor 82c provided at the left front part of the supporter 78 and the fourth load data based on an output of the fourth load sensor 82d provided at the left rear part of the supporter 78. Then, based on the first value and the second value, an action of the object to be displayed on the display screen is determined. Thus, according to the present embodiment, the rotation, etc. of the object 100 can be made, which makes the game realistically enjoyable.
The present invention is not limited to the above-described embodiment and can cover other various modifications.
For example, the above-described embodiment is described by means of the example of determinating the actions of the hover machine by the controller, but the object to have the actions determined is not limited to the hover machine. The present invention is applicable to determine actions of, e.g., four-wheel vehicles, two-wheel vehicles, one-wheel vehicles, etc. For example, when the value given by adding the first value and the second value is positive, objects, such as four-wheel vehicles, two-wheel vehicles, one-wheel vehicles, etc., may be caused to proceed, and the objects, such as four-wheel vehicles, two-wheel vehicles, one-wheel vehicles, etc., may be caused to retreat when the value given by adding the first value and the second value is positive. That is, the objects may be moved in the same directions as the object exemplified in the above-described embodiment or may be moved in directions opposite to the directions the exemplified object in the above-described embodiment is moved in. The objects may be turned in the same directions as the object exemplified in the above-described embodiment or may be turned in the directions opposite to the directions the object exemplified in the above-described embodiment is turned in.
The game device and the computer program according to the present invention is useful to provide a game which can be realistically operated.
Number | Date | Country | Kind |
---|---|---|---|
2009-169062 | Jul 2009 | JP | national |
PCT/JP2010/053998 | Mar 2010 | JP | national |
This application is a Continuation of PCT application No. PCT/JP2010/053998, which was filed on Mar. 10, 2010, and which designated the United States of America, the entire contents of which are incorporated herein by reference.