TECHNICAL FIELDThe present invention relates to a game device, a control method of controlling a game in the game device, a program controlling the game and a computer-readable recording medium storing the program, all of which detect a game operation of the player from an input signal or the like, and cause a computer of the game device to execute game processing on the basis of the detected input signal.
BACKGROUND ARTConventionally, for game devices such as home games, arcade games and the like, as a method of detecting an operation of the player to play a game (hereinafter referred to as “operation input”), there have been known detection methods with reference to a plurality of operation means such as a detection with reference to a button pressing operation, a detection with reference to the player stepping operation, a detection with reference to images of the player in motion taken by a camera, a detection of vibration resulting from a tap motion by the player, and the like.
In the detection methods with reference to the above-described player button pressing operation and the above-described player stepping operation, the player can carry out his desired game operation by appropriately operating a button or a specific site on a console platform for stepping operation (for example, a pedal or the like) necessary to provide operation input (seePatent Document 1 and Patent Document 2).
Also, as a method that releases the player from learning how to operate the button and the like required for input for game operation, a method of detecting a motion of the player with a camera, a method of detecting vibration produced in the device by a “tap motion” of the player tapping the operation input means, and the like are proposed. The employment of a method for detecting such special operation input enables accurate reflection of a game operation desired by the player (see Patent Document 3).
PRIOR ART DOCUMENT(S)Patent Document(s)- Patent Document 1: Japanese Patent Application Laid-Open No. 2001-232060
- Patent Document 2: Japanese Patent Application Laid-Open No. 2008-036167
- Patent Document 3: Japanese Patent Application Laid-Open No. 2005-287794
DISCLOSURE OF THE INVENTIONProblems to be Solved by the InventionHowever, game devices employing the aforementioned detection methods proposed inPatent Document 1 orPatent Document 2 have the disadvantages that the player must hold a device required to provide operation input (controller) and learn the functions of the buttons required for operation input in order to carry out the operation. Game operation performed by the appropriate operation of a specific site of a platform involves the disadvantage that, unless the player learns the specific site on the platform, the player cannot carry out the game operation for an actual game. Therefore, the necessity for the player to hold a device required for operation input by hand or the necessity for the player to memorize various motions for providing operation input is a considerable burden on players who cannot hold a device necessary for operation input for some reason or who are beginners in game, which is one of the causes of losing interest in games.
In game devices employing the aforementioned detection methods proposed byPatent Document 3, the use of a special device designed specially for implementing the special detection methods is required. The special-designed device is incapable of being used for any game except for a special game using the specially-designed device. Even if the special-designed device can be used for a game other than the special game, an error or noise may possibly be included in an input signal in the input method based on the operation of the specially-designed device. Moreover, a game device employing the input method based on the specially-designed device is limited in installation site, resulting in lack of versatility and also lack of reality.
The present invention has been made in view of the above circumstances. It is an object of the present invention to provide a game device, a method for controlling a game of the game device, a program controlling the game and a computer-readable recording medium storing the program, which use a widely available, versatile operation device, in particular, vibration detecting means for detecting vibration, to detect a vibration signal without use of a special game device as described above, in particular, of a special game operation device, and determine it as an operation signal for controlling a game in order to enable players to operate the game without learning the use of various buttons or a specific site on a console platform which are necessary to input the operation signal.
Means for Solving the Problem(s)To address the problems, an invention according toclaim1 provides a game device, comprising:
input means capable of acquiring operation input in a game as operation input information; and
control means for controlling game progress on the basis of the operation input information,
wherein the input means comprises vibration detection means for detecting vibration applied to the input means,
the control means comprises vibration level determination means for determining a level of a vibration detection signal detected by the vibration detection means, and
the control means executes game control using determination information determined by the vibration level determination means as the operation input information received from the input means.
An invention according toclaim2 provides a game device, comprising:
input means capable of acquiring operation input in a game as operation input information; and
control means for controlling game progress on the basis of the operation input information,
wherein the input means comprises,
vibration detection means for detecting vibration applied to the input means, and
vibration level determination means for determining a level of a vibration detection signal detected by the vibration detection means, and
the control means executes game control using determination information determined by the vibration level determination means as the operation input information received from the input means.
An invention according toclaim3 provides a game device, comprising:
input means capable of acquiring operation input in a game as operation input information; and
control means for controlling game progress on the basis of the operation input information,
wherein the input means comprises vibration detection means for detecting vibration applied to the input means,
the control means comprises
vibration pattern determination means for determining one or more level pattern of a vibration detection signal detected by the vibration detection means, and
special input command determination means for determining whether or not an array corresponding to time sequence of information relating to the level pattern determined by the vibration pattern determination means matches a special input command previously set, and
the control means executes game control using the special input command matching determined by the special input command determination means as the operation input means received from the input means.
An invention according toclaim4 provides a game device, comprising:
input means capable of acquiring operation input in a game as operation input information; and
control means for controlling game progress on the basis of the operation input information,
wherein the input means comprises
vibration detection means for detecting vibration applied to the input means, and
vibration pattern determination means for determining one or more level patterns of a vibration detection signal detected by the vibration detection means,
the control means comprises special input command determination means for determining whether or not an array corresponding to time sequence of information relating to the level pattern determined by the vibration pattern determination means matches a special input command previously set, and
the control means executes game control using the special input command matching determined by the special input command determination means as the operation input means received from the input means.
An invention according toclaim5 relates to the game device according to any ofclaim1 orclaim2, wherein
the input means comprises vibration generation means,
the control means comprises
mounting determination means for determining that the input means is mounted on an installable mounting site when a vibration detection signal of a previously-set first predetermined value or less is received for a certain time-period from the vibration detection means,
vibration generation means for allowing the vibration generation means mounted on the mounting site to generate a first vibration for a predetermined time on the basis of a determination result by the mounting determination means,
natural-vibration value calculation means for calculating a natural vibration value in the mounting site from the vibration detection signal of the first vibration detected by the vibration detection means, and
vibration correction value calculation means for correcting a vibration detection signal of a second vibration applied to the mounting site as the operation input information detected by the vibration detection means, on the basis of the natural vibration value, and
the vibration level determination means determines the level on the basis of the vibration detection signal of the second vibration corrected by the vibration correction value calculation means.
An invention according toclaim6 relates to the game device according to any ofclaim3 orclaim4, wherein
the input means comprises vibration generation means,
the control means comprises
mounting determination means for determining that the input means is mounted on an installable mounting site when a vibration detection signal of a previously-set first predetermined value or less is input for a certain time-period from the vibration detection means,
vibration generation means for allowing the vibration generation means mounted on the mounting site to generate a first vibration for a predetermined time on the basis of a determination result by the mounting determination means,
natural-vibration value calculation means for calculating a natural vibration value in the mounting site from the vibration detection signal of the first vibration detected by the vibration detection means, and
vibration correction value calculation means for correcting a vibration detection signal of a second vibration applied to the mounting site as the operation input information detected by the vibration detection means, on the basis of the natural vibration value, and
the vibration pattern determination means determines the level pattern on the basis of the vibration detection signal of the second vibration corrected by the vibration correction value calculation means.
An invention according toclaim7 relates to the game device according toclaim6, wherein the vibration pattern determination means comprises input vibration classification means for classifying the corrected vibration detection signal of the second vibration in one or more level patterns with use of intensity as a criterion by a level of the corrected vibration detection signal of the second vibration.
An invention according toclaim8 relates to the game device according toclaim6, wherein the vibration pattern determination means comprises tap/rest setting means for making a level of the corrected vibration detection signal of the second vibration correspond to an elapsed time axis to set a level pattern including a tap input period in which it is determined that the vibration detection signal has been input, and a rest period in which the vibration detection signal has not been input.
An invention according toclaim9 relates to the game device according toclaim7, further comprising storage means,
wherein the control means
the vibration pattern determination means comprises
vibration correction value storage means for sequentially storing the vibration detection signals of the second vibration corrected by the vibration correction value calculation means in time sequence order in the storage means as a third vibration detection signal,
level pattern threshold calculation means for calculating a threshold used for classification for determining which level pattern the third vibration detection signal belongs to, on the basis of one or more piece of information including newest information on the third vibration detection signals stored in time sequence by the vibration correction value storage means, and
level pattern storage means for determining which level pattern the newest third vibration detection signal after correction belongs to, on the basis of the calculated threshold, and storing information relating to the determined level pattern in the storage means.
An invention according toclaim10 relates to the game device according toclaim8, further comprising storage means,
wherein the control means comprises
tap time-interval storage means for, regarding the vibration detection signal of the second vibration corrected by the vibration value calculation means, sequentially storing, in time sequence order, time intervals at which the vibration detection signals of the second vibration adjacent to each other in time sequence are input in the storing means,
rest determination time correction means for calculating a corrected rest determination time corrected, on the basis of the time interval and/or a previously-set rest determination time stored in the tap time-interval storage means, when it is determined that the vibration detection signal is not input, and
rest period determination means for determining, as the rest period, the elapsed time axis along which it is determined that the vibration detection signal is not input, when it is determined that a difference time value S between a current time value and a time value input by the vibration detection signal of the second vibration is larger than the corrected rest determination time.
An invention according toclaim11 relates to the game device according to any ofclaims1 to4, further comprising
conversion value calculation means for calculating a conversion value on the basis of a predetermined equation when the vibration detection signal detected by the vibration detection means is equal to or less than a second predetermined value.
An invention according toclaim12 relates to the game device according to any ofclaims1 to4, further comprising
associated vibration setting means for measuring vibration detection signals predetermined times detected by the vibration detection means, and when the input means detects one-time vibration, for setting vibration detected except for the one-time vibration as associated vibration generated with the one-time vibration, on the basis of the vibration detection signals measured predetermined times.
Further, an invention according toclaim13 provides a method of controlling game progress in a game device including input means having vibration detection means for detecting vibration, comprising
a vibration level determination step of determining a level pattern of a vibration value detected by the vibration detection means to obtain determination information; and
a vibration-level-determination-based game-control step of controlling execution of a game by use of the determination information obtained by the vibration level determination step as game control information.
An invention according toclaim14 provides a method of controlling game progress in a game device including input means having vibration generation means and vibration detection means for detecting vibration, comprising
a mounting determination step of determining that the input means is mounted on an installable mounting site when a vibration value of a previously-set predetermined value or less is detected for a certain time-period by the vibration detection means;
a vibration start step of starting a first vibration by the vibration generation means on the basis of a determination result in the mounting determination step;
a vibration detection step of actuating the vibration detection means to detect the first vibration when the first vibration occurs by the vibration start step;
a natural-vibration value calculation step of calculating a natural vibration value in the mounting site from a first vibration value based on the first vibration detected by the vibration detection step;
when the vibration detection means detects a second vibration applied to the mounting site and used for operation input, a correction value calculation step of calculating a correction value on the basis of a second vibration value based on the second vibration and the natural vibration value; and
a correction value operation conversion step of converting operation input information based on the correction value into game control information.
An invention according toclaim15 relates to the method of game control according toclaim14, comprising:
a vibration pattern determination step of determining one or more level patterns of the correction value calculated in the correction value calculation step;
a special input commend determination step of determining whether or not an array corresponding to time sequence of information relating to the level pattern determined in the vibration pattern determination step matches a previously-set special input command; and
a command execution step of executing game control by use of the special input command determined to match in the special input signal determination step as the operation input information input from the input means.
An invention according to claim16 relates to the method of game control according toclaim14, wherein the vibration pattern determination step comprises input vibration classification step of classifying the corrected vibration detection signal of the second vibration in one or more level patterns with use of intensity as a criterion by a level of the corrected vibration detection signal of the second vibration.
An invention according to claim17 relates to the method of game control according toclaim14, wherein the vibration pattern determination step comprises tap/rest setting step of making a level of the corrected vibration detection signal of the second vibration correspond to an elapsed time axis to set a level pattern including a tap input period in which it is determined that the vibration detection signal has been input, and a rest period in which the vibration detection signal has not been input.
An invention according to claim18 provides a program of controlling game progress in a game device including input means having vibration detection means for detecting vibration, comprising
a vibration level determination program of determining a level pattern of a vibration value detected by the vibration detection means to obtain determination information; and
a vibration-level-determination-based game-control program of controlling execution of a game by use of the determination information obtained by the vibration level determination program as game control information.
An invention according to claim19 provides a program of controlling game progress in a game device including input means having vibration generation means and vibration detection means for detecting vibration, comprising
a mounting determination program having a step of determining that the input means is mounted on an installable mounting site when a vibration value of a previously-set predetermined value or less is detected for a certain time-period by the vibration detection means;
a vibration start program having a step of starting a first vibration by the vibration generation means on the basis of a determination result in the mounting determination program;
a vibration detection program having a step of actuating the vibration detection means to detect the first vibration when the first vibration occurs by the vibration start program;
a natural-vibration value calculation program having a step of calculating a natural vibration value in the mounting site from a first vibration value based on the first vibration detected by the vibration detection program;
a correction value calculation program that has, when the vibration detection means detects a second vibration applied to the mounting site and used for operation input, a step of calculating a correction value on the basis of a second vibration value based on the second vibration and the natural vibration value; and
a correction value operation conversion program having a step of converting operation input information based on the correction value into game control information.
An invention according toclaim20 relates to the program of game control according to claim19, which comprises:
a vibration pattern determination program having a step of determining which level pattern of one or more level patterns the correction value calculated by the correction value calculation program corresponds to;
a special input signal determination program having a step of determining whether or not an array corresponding to time sequence of information relating to the level pattern determined by the vibration pattern determination program matches a previously-set special input command; and
a command execution program having a step of executing game control by use of the special input command determined to match by the special input signal determination program as the operation input information input from the input means.
An invention according to claim21 relates to the program of game control according to claim19, wherein the vibration pattern determination program comprises input vibration classification program having a step of classifying the corrected vibration detection signal of the second vibration in one or more level pattern with use of intensity as a criterion by a level of the corrected vibration detection signal of the second vibration.
An invention according to claim22 relates to the program of game control according to claim19, wherein the vibration pattern determination program comprises tap/rest setting program having a step of making a level of the corrected vibration detection signal of the second vibration correspond to an elapsed time axis to set a level pattern including a tap input period in which it is determined that the vibration detection signal has been input, and a rest period in which the vibration detection signal has not been input.
An invention according to claim23 provides a computer-readable recording medium storing the program according to any of claim18 to claim22.
The computer-readable recording medium includes a recording medium capable of recording data of a program such as an optical disc including a CD-ROM, a DVD and the like, a flash memory, a RAM, a ROM, a magnetic disc drive and the like.
The aforementioned input means is an input device capable of accepting various input operations of a player, for example, an input device including a remote controller, a controller and the like.
The first predetermined value means a threshold for detecting primitive (natural occurrence) vibration without application of vibration generated by vibration start means to a mounting site, and also irrespective of operation of the player. The second predetermined value means a value serving as a reference for input as an operation signal, which is greater than the vibration in the mounting site (first predetermined value) out of the vibrations detected by the vibration detection means. In a process in the present invention, a detected vibration value equal to or less than the first predetermined value is assumed as a naturally generated vibration value and is not employed as operation input signal. Then, when the detected vibration value is equal to or greater than the first predetermined value and equal to or less than the second predetermined value, a conversion process is performed by predetermined procedure in order to use the vibration value as a game control signal, so that the converted information is used as the operation input signal to execute game control.
Moreover, the aforementioned game control program based on the vibration level determination refers to a program for controlling a previously set game for each piece of determination information determined in the aforementioned vibration level determination step (or by vibration level program). The game control program based on the vibration level determination refers to, for each piece of determination information, for example, a program for displaying a presentation of moving image of a small-scaled firework on the monitor, a program for displaying a presentation of moving image of continuous launching of large-scaled fireworks on the monitor, or the like.
Advantages of the InventionAccording to the present invention, a game device comprising input means capable of acquiring operation input in a game as operation input information, and control means for controlling game progress on the basis of the operation input information. The input means comprises vibration detection means for detecting vibration applied to the input means, and determination means for determining a level of the vibration value detected by the vibration detection means. The control means changes the result of the determination by the determination means to be used as operation input information in the input means for game control information. As a result, for example, widely available and versatile input means, as long as it has vibration detection means as typified by a detection sensor or the like, can be used in the game system according to the present invention.
When the control means determines a level of a vibration value, the input means may include only the essential structure (vibration detection means), resulting in simplification of the structure of the input means.
If the input means determines a level of a vibration, when the input means detects vibration, the input means can additionally determine the vibration. Accordingly, the control means simply use the determination result by the input means (the result by the vibration determination) as the operation input information, resulting in a reduction in load on the control means for the game control processing.
Means for classifying vibration subsequently applied in time sequence to the mounting base or the like into intensity patterns is provided. This makes it possible to provide a game device with new attractive ideas enabling execution of special game control, although the operation method is simple in that it is necessary only to change the intensity of a tap motion once an array of intensity patterns in time sequence order corresponding to the strength produced by the player tapping the mounting base or the like becomes coincident with the predetermined commend. In addition, it is possible to determine the intensity on a player basis, even when the strength varies depending on various situations when the player taps the mounting base or the like (the degree of strength to tap, times of a day, mental condition and the like) and on attribution of a player himself (small child, child, adult, or the like).
Means is provided for dividing the vibration sequentially applied in time sequence to the mounting base or the like (that is, “tap rhythm”) into two periods, one being a tap period in which vibration is detected according to elapsed time and the other being a rest period in which vibration is not detected. This means makes it possible to provide a game device with new attractive ideas enabling execution of special game control, although the operation method is simple in that when an array of time sequence order of the tap period and the rest period corresponding to tap rhythm of the player matches a command previously set, the rhythm of a tap motion changes simply. In addition, it is possible to determine the “tap rhythm” on a player basis, even when the “tap rhythm” varies depending on various situations when the player taps the mounting base or the like (the degree of strength to tap, times of a day, mental condition and the like) and on attribution of a player himself (small child, child, adult, or the like).
BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 is an external view illustrating agame system1 according to an embodiment of the present invention.
FIG. 2 is a function block diagram illustrating the hardware configuration of agame device3 forming part of thegame system1 according to the embodiment.
FIGS. 3A,3B are perspective views of the top surface and the underside of acontroller7 forming part of thegame system1 according to the embodiment when viewed from the rear end.
FIGS. 4A,4B are likewise perspective views illustrating thecontroller7 forming part of thegame system1 according to the embodiment, without its upper housing element and lower housing element.
FIG. 5 is likewise a function block diagram illustrating the hardware configuration of thecontroller7 forming part of thegame system1 according to the embodiment.
FIGS. 6A,6B are diagrams illustrating an example of a screen in a game assumed by thegame system1 according to the embodiment.
FIGS. 7A,7B are likewise diagrams illustrating an example of a screen in a game made up by thegame system1 according to the embodiment.
FIG. 8 is a diagram illustrating an example of a structure of a program controlling a game stored in thegame device3 forming part of thegame system1 according to the embodiment.
FIG. 9A is a flowchart illustrating an example of the procedure for controlling the game in the control program stored in thegame device3 forming part of thegame system1 according to the embodiment, andFIG. 9B is a diagram illustrating an example of a menu screen displayed on a monitor by the control program.
FIG. 10 is likewise a flowchart illustrating an example of the procedure for controlling a game in the control program.
FIG. 11 is likewise a flowchart illustrating an example of the procedure for controlling a game in the control program.
FIG. 12 is likewise a flowchart illustrating an example of the procedure for controlling a game in the control program.
FIGS. 13A,13B are graphs showing changes in vibration values in each mounting place of thecontroller7 of thegame system1 according to the embodiment,FIG. 13A showing when thecontroller7 is mounted on a hard surface andFIG. 13B showing when thecontroller7 is mounted on a soft surface.
FIG. 14 is a flowchart illustrating an example of the procedure for controlling a game in the control program stored in thegame device3 forming part of thegame system1 according to the embodiment.
FIG. 15 is likewise a flowchart illustrating an example of the procedure for controlling a game in the control program.
FIG. 16 is likewise a flowchart illustrating an example of the procedure for controlling a game in the control program.
FIG. 17 is a graph showing an example of the time-series variations in the results of the correction processing performed on vibration values (weak input) transmitted to thegame device3 after being detected by thecontroller7 of thegame system1 according to the embodiment following a top motion of the player.
FIG. 18 is a graph showing an example of the time-series variations in the results of the correction processing performed on vibration values (medium input) transmitted to thegame device3 after being detected by thecontroller7 of thegame system1 according to the embodiment following a top motion of the player.
FIG. 19 is a graph showing an example of the time-series variations in the results of the correction processing performed on vibration values (strong input) transmitted to thegame device3 after being detected by thecontroller7 of thegame system1 according to the embodiment following a top motion of the player.
FIG. 20 is a flowchart illustrating an example of the procedure for controlling a game in the control program stored in thegame device3 forming part of thegame system1 according to the embodiment.
FIG. 21 is likewise a flowchart illustrating an example of the procedure for controlling a game in the control program stored in thegame device3 forming part of thegame system1 according to the embodiment.
FIGS. 22A,22B are likewise diagrams illustrating an example of data structure in command determination tables built for controlling a game by the control program,FIG. 22A showing a table for determining a command about the magnitude of vibration value, andFIG. 22B showing a table used for determining the rhythm of rests and the occurrence of vibrations.
FIGS. 23A,23B are likewise diagrams illustrating an example of data structure in special input command tables contained in the control program,FIG. 23A showing a table in which special commands about the magnitude of vibration value are registered,FIG. 23B showing a table in which special commands about rests and the occurrence of vibrations are registered.
THE BEST MODE FOR CARRYING OUT THE INVENTIONAn embodiment according to the present invention will be described below with reference to the accompanying drawings.FIG. 1 is an external view illustrating agame system1 using a game device according to the embodiment.
[Overall Structure of Game Device]
InFIG. 1, thegame system1 includes a stationary game device (hereinafter referred to as a “game device”)3 which is connected through a connecting cord to a display (hereinafter referred to as a “monitor”)2 equipped withspeakers2asuch as a television receiver for home use, acontroller7 which provides information on game operation and the like to thegame device3, and a mountingbase8 on which thecontroller7 is mounted.
Thegame device3 is connected to areceiver unit6 via a connection terminal. Thereceiver unit6 receives transmission data transmitted from thecontroller7 over the radio, so that thecontroller7 and thegame device3 are connected by communicating over the radio. Thegame device3 includes a disc drive40 (seeFIG. 2) apparatus on and from which a removableoptical disc4 which is an example of information recording media for use in thegame device3 is loaded and unloaded. Further, thegame device3 is provided with a switch for powering thegame device3 ON/OFF, a reset switch for game processing, and an OPEN switch for opening a disc tray in order to load/unload anoptical disc4 on/from thedisc drive40, all of which are not shown. In this connection, the player depresses the OPEN switch, whereupon the disc tray is ejected from the inside of thegame device3 to enable the player to load/unload theoptical disc4. After theoptical disc4 is unloaded/loaded again, the disc tray is slid back into thegame device3 to enable thegame device3 to read theoptical disc4. In this regard, thecontroller7 corresponds to input means in the embodiment.
Thegame device3 is fitted with anexternal memory card5 which is removable as appropriate. Theexternal memory card5 has backup memory permanently storing saved data and the like. Thegame device3 executes a game based on a game program stored on theoptical disc4 or in response to an input signal from the input means (controller7), and displays the result as a game image on themonitor2 serving as display means. When theexternal memory card5 is inserted, thegame device3 can use the saved data stored in theexternal memory card5 to reproduce the state of a game which has been carried out by the player in past times, and display the result, for example, as a game image on themonitor2 serving as the display means. Alternatively, instead of theexternal memory card5, a memory, not shown, specially designed for saved data is provided in themain memory33 within the main body or in the main body itself in order to store saved data. Then, while looking at the game image displayed on themonitor2, the player operates thecontroller7 to proceed to carry out the rest of the game.
Thecontroller7 operates acommunication unit75 provided therein (seeFIG. 5) to send transmission data via radio to thegame device3 connected to thereceiver unit6 by the use of techniques of, for example, Bluetooth (trademark). Thecontroller7 is operating (input) means for acquiring, mainly, the operation input information required for operating the player object appearing on the game space displayed on themonitor2. Thecontroller7 is equipped with operating switches including a plurality of operation buttons, keys, sticks and the like.
The mountingbase8 serves as a mounting place enabling the mounting of thecontroller7. The player taps the mountingbase8, whereupon vibration (second vibration) is created in the mountingbase8, which then travel to thecontroller7, so that the vibration traveling to thecontroller7 are detected. In the embodiment, a box-shaped mounting base made of cardboard or the like is employed. Note that the material of the mountingbase8 is not limited particularly to cardboard or the like as long as the material is able to transmit vibration to thecontroller7 when the player taps the mounting base8 (for example, a box made of cardboard or the like or a plate made of wood or the like). However, a soft material incapable of transmitting vibration by absorbing the vibration produced in the mountingbase8 by the player is not desirable. Also, the shape of the mountingbase8 is not limited to a box shape, and, for example, it may be a plate shape (wood or the like), or alternatively the floor itself may be used as a mounting place.
(Control Mechanism of Game Device)
Next, the configuration of the control mechanism for controlling the operation of thegame device3 will be described with reference toFIG. 2.FIG. 2 is a functional block diagram illustrating the processing functions of thegame device3.
InFIG. 2, thegame device3 includes, for example, a CPU (Central Processing Unit)30 for executing and controlling various programs. TheCPU30 executes a boot program stored in a boot ROM, not shown, and then initializes the memory in themain memory33 and the like. Then, theCPU30 executes a game program stored on theoptical disc4 to carry out game processing or the like in accordance with the game program. TheCPU30 is connected via amemory controller31 to a GPU (Graphics Processing Unit)32, amain memory33, a DSP (Digital Signal Processor)34 and an ARAM (Audio RAM)35. Thememory controller31 is connected via a predetermined bus to a controller I/F (Inter-Face)36, video I/F37, external memory I/F38, audio I/F39, and a disc I/F41, which in turn are respectively connected to areceiver unit6, monitor2,external memory card5,speaker2aand adisc drive40.
TheGPU32 performs image processing on the basis of the instructions of theCPU30, and is formed of, for example, a semiconductor chip performing the computer processing necessary for a 3D graphics display. TheGPU32 generates an image-processed picture using an image-processing memory, not shown, or a part of the memory area of the main memory, and then outputs it to themonitor2 via thememory controller31 and the video I/F37 as appropriate. TheCPU30 and theGPU32 correspond to an example of control means in the embodiment.
Themain memory33 includes a ROM (Read Only Memory) and a RAM (Random Access Memory), which are not shown and a memory area used by theCPU30, and stores a game program and the like necessary for theCPU30 to perform processing as appropriate. For example, themain memory33 stores a game program, various types of data such as data tables and the like which are read from theoptical disc4 by theCPU30. TheCPU30 executes and uses the game program, various types of data and the like which are stored in themain memory33. The structure of a game program will be described later.
TheDSP34 processes the sound data and the like generated by theCPU30 at the execution of a game program, and is connected to theARAM35 for storing the sound data. TheARAM35 is used when theDSP34 performs predetermined processing (for example, storing of previously read game program data and sound data). TheDSP34 reads the sound data stored inARAM35 and sends it through thememory controller31 and the audio I/F39 to allow thespeaker2ato output it as a sound effect, music, and voice. In this connection, a speaker provided in themonitor2 may be used as thespeaker2a.
Thememory controller31 controls overall data transmission and is connected to the aforementioned various interfaces. The controller I/F36 is made up of, for example, 4 controller I/Fs36ato36dwhich connect external devices and thegame device3 through their own respective connectors to conduct communications between them. For example, thereceiver unit6 is fitted into the connector and connected to thegame device3 through the controller I/F36. As described earlier, thereceiver unit6 receives the data transmitted from thecontroller7 and outputs the transmission data to theCPU30 through the controller I/F36.
The video I/F37 is connected to themonitor2. The external memory I/F38 is connected to theexternal memory card5 and is made accessible to a backup memory and the like provided in theexternal memory card5. The audio I/F39 is connected to thespeaker2aprovided in themonitor2, so that sound data read from theARAM35 by theDSP34 and sound data output directly from thedisc drive40 can be output from thespeaker2a. The disc I/F41 is connected to thedisc drive40. Thedisc drive40 reads data stored on theoptical disc4 placed in a predetermined reading position, and outputs it to the bus of thegame device3 and/or the audio I/F39. Note that thegame device3 is equipped with a timer for measuring the elapsed time which is not shown inFIG. 2, and can read a current time value by program processing.
(Structure of Controller)
The controller, which is an example of an input device corresponding to the input means of the present invention, will be described with reference toFIGS. 3A,3B.FIG. 3A is a perspective view of a top surface of thecontroller7 when viewed from the rear end.FIG. 3B is a perspective view of the underside of thecontroller7 when viewed from the rear end.
InFIGS. 3A and 3B, thecontroller7 has ahousing71 which is formed by, for example, plastic molding. A plurality of operation console switches72 are provided in thehousing71. Thehousing71 is formed in an approximately rectangular parallelepiped shape with the longitudinal direction extending in the fore-and-aft direction and it's entire size is such that an adult or a child can grasp it in one hand.
A cross key72ais provided on a forward central portion of the top surface of thehousing71. The cross key72ais a cross-shaped four-direction push switch of which operating parts corresponding to the four directions (front, rear, right and left) shown by arrows are respectively placed in projections of the cross at 90-degree intervals. The player depresses any of the operating switches of the cross key72ato select one of the front, rear, right and left directions. For example, the player operates the cross key72ato instruct the moving direction of the player character or the like appearing on a virtual game world (space), or instruct the moving direction of a cursor.
The cross key72ais an operating switch outputting an operation signal in response to the aforementioned direction input operation of the player, but may be an operating switch of another form. In stead of the above-described cross key72a, for example, a complex switch consisting of a push switch including four-direction operating parts arranged in a ring shape and a center switch provided in the center of the push switch, or a tiltable stick protruding from the top surface of thehousing71, or the like can be provided. Another operating switch may be provided instead of the cross key72a, which includes a horizontally-movable disc-shaped member and, when the member is slid, outputs an operation signal according to the sliding direction. Yet another operating switch may be provided instead of the cross key72a, which outputs an operation signal in response to a switch depressed by the player out of the switches respectively representing at least four directions (front, rear, right and left).
A plurality ofoperation buttons72bto72gare provided on a portion of the top surface of thehousing71 rearward of the cross key72a. Theoperation buttons72bto72gare operating switches each of which outputs an operation signal assigned to the switch when the button head is depressed by the player. For example, theoperation buttons72bto72d, serving as an X button, a Y button and a B button or the like, are respectively assigned functions executed for displaying a new window on themonitor2, acknowledging or denying the operation instruction confirmation displayed on themonitor2, and the like in response to the game contents. Theoperation buttons72eto72gare assigned functions as a selection switch, a menu switch and a start switch or the like. Theoperation buttons72bto72gare respectively assigned functions in association with a game program executed by thegame device3. In this regard, if avibrator74 corresponding to vibration generation means and anacceleration sensor73 corresponding to vibration detection means are provided, there may be no particular need to have all the above-described operation buttons. Therefore, thecontroller7 is not limited to a general-purpose controller, and may be operation means (input means) even if it is operation means such as, for example, a mouse.
Anoperation button72his provided on the top surface of thehousing71 forward of the cross key72a. Theoperation button72his a power switch for remotely powering the body of thegame device3 ON/OFF. Alternatively, theoperation button72hmay be a power switch of powering thecontroller7 ON/OFF. Theoperation button72hmay have the top surface located below the top surface of thehousing71 in order to prevent the player from accidentally depressing theoperation button72h.
A plurality ofLEDs702 are provided on the top surface of thehousing71 rearward of theoperation button72c. TheLEDs702 can be used to notify the player of the controller mode in which thecontroller7 is currently placed. For example, when a plurality of players operate characters displayed on a plurality of game screens, the plurality ofLEDs702 can emit light by different methods in order to tell the players which controller a character operated on the game screen based on an operation input signal has been transmitted by. Further, the plurality of LEDs of a controller can be operated to emit light simultaneously in order to notify the players of the recognition of the controller by the game device or of some error.
Now, a coordinate system set in thecontroller7 will be described. As shown inFIGS. 3(a) and3(b), X, Y and Z axes at right angles to one another are defined as a coordinate system with respect to thecontroller7. Specifically, the longitudinal direction of thehousing71 which is the fore-and-aft direction of thecontroller7 is defined as the Z axis, in which the direction of the front face (the face closer to the vibrator74) is defined as the positive Z axis direction. The up-and-down direction of thecontroller7 is defined as the Y axis, in which the direction of the top surface (the face on which the cross key72ais provided) is defined as the positive Y axis direction. The right-and-left direction of thecontroller7 is defined as the X axis, in which the direction of the left side face (the face not shown inFIG. 3(a) and shown inFIG. 3(b)) of thehousing71 is defined as the positive X axis direction.
Next, the internal structure of thecontroller7 will be described with reference toFIGS. 4A,4B.FIG. 4A is a perspective view illustrating thecontroller7 when the upper housing (part of the housing71) is removed from thecontroller7.FIG. 4B is a perspective view illustrating thecontroller7 when the lower housing (part of the housing71) is removed from thecontroller7. In this regard, abase board700 shown in the perspective view inFIG. 4B is when viewed from the underside of thebase board700 shown inFIG. 4A.
InFIG. 4A, thebase board700 is secured within thehousing71. Theoperation buttons72ato72h, theacceleration sensor73, theLEDs702, a crystal-quartz oscillator703, aradio module53, anantenna54 and the like are provided on the upper main surface of thebase board700, and are connected to a microcomputer51 (hereinafter referred to as the “MC”, seeFIG. 5) through wiring (not shown) in thebase board700 or the like. Theacceleration sensor73 detects and outputs an acceleration which can be used to calculate a tilt, a vibration and the like in the three-dimensional space in which thecontroller7 is provided. Theacceleration sensor73, together with a vibration detection program23 which will be described later, corresponds to the vibration detection means in the embodiment.
In the embodiment, thecontroller7 includes a three-axis acceleration sensor73 as shown inFIG. 5. The three-axis acceleration sensor73 detects a linear acceleration in three directions, namely, the up-and-down direction (Y axis shown inFIGS. 3A,3B), the right-and-left direction (X axis shown inFIGS. 3A,3B), and the fore-and-aft direction (Z axis shown inFIGS. 3A,3B).
In the use of a combination of theacceleration sensor73 with the MC51 (or another processor), for example, upon the detection of a static acceleration (gravity acceleration), the output of theacceleration sensor73 is sent to theMC51. By program processing of theMC5, an operation can be carried out using a tile angle and a detected acceleration to determine a tilt of an object (controller7) relative to gravity vector. In this manner, using theacceleration sensor73 in combination with the MC51 (or another processor) makes it possible to determine tilt, posture and position of thecontroller7.
Thecontroller7 functions as a wireless controller with thecommunication unit75 having aradio module53 and anantenna54. The crystal-quartz oscillator703 generates a clock signal on which the operation of theMC51 described later is based.
On the other hand, inFIG. 4B, abattery76 is held in the rear end of the lower main surface of thesubstrate700. Avibrator74 is mounted on the lower main surface of thesubstrate700. Thevibrator74 may be, for example, a vibration motor or a solenoid. Vibration is produced in thecontroller7 by actuating thevibrator74. Thevibrator74 corresponds to vibration generation means for generating a first vibration in the embodiment.
(Control Mechanism of Controller)
ReferringFIG. 5, next, the internal configuration (structure of the control mechanism) for controlling the operation of thecontroller7 will be described.FIG. 5 is a block diagram illustrating the function configuration of thecontroller7.
Theacceleration sensor73 detects and outputs separately three-axis components of the up-and-down direction (Y-axis direction), the right-and-left direction (X-axis direction) and the fore-and-aft direction (Z-axis direction) of thecontroller7 as described earlier. The data on accelerations of the three-axis components detected by theacceleration sensor73 is sent to thecommunication unit75. The movement of thecontroller7 can be determined on the basis on the acceleration data output from theacceleration sensor73. Theacceleration sensor73 employed may be an acceleration sensor that detects accelerations in any two axes in accordance with data required to a specific application.
Thecommunication unit75 includes theMC51, thememory52, theradio module53, and theantenna54. TheMC51 controls theradio module53 transmitting transmission data over radio while using thememory52 as a storage area in processing.
TheMC51 receives the operation signal (key data) output from theoperation console switch72 provided in thecontroller7 and acceleration signals in the three-axis directions (data on accelerations in X-, Y- and Z-axis directions) output from theacceleration sensor73. TheMC51 temporary stores each piece of data (key data, acceleration data in the X-, Y- and Z-axis directions) as transmission data to be transmitted to thereceiver unit6 in thememory52. At this stage, radio transmission from thecommunication unit75 to thereceiver unit6 is carried out once every predetermined time period. However, the game processing is typically executed on a 1/60 second basis. Therefore, transmission is required to be carried out once every time period shorter than the typical one. Specifically, the game processing is performed on a 16.7 ms basis (1/60 seconds), and a transmission interval of thecommunication unit75 based on Bluetooth (trademark) is, for example, 5 ms.
When determining that the time has come for transmission to thereceiver unit6, theMC51 outputs the transmission data stored in thememory52 as a series of operation information to theradio module53, on the basis of the program stored in thememory52. Thereupon, theradio module53 transmits the operation information from theantenna54 as a radio signal using a carrier wave of predetermined frequency by use of techniques of, for example, Bluetooth (trademark). That is, the key data from theoperation console switch72 provided in thecontroller7 and the data on accelerations in the X-, Y- and Z-axis directions output from the acceleration sensor73 (measured values of vibration) are transmitted from thecontroller7 to thegame device3.
Then, thereceiver unit6 of thegame device3 receives the radio signal. Thegame device3 demodulates and decodes the received radio signal to obtain a series of operation information (key data) and acceleration data in the X-, Y- and Z-axis directions. Next, theCPU30 of thegame device3 performs the game processing on the basis of the obtained operation information and the game program. Note that if the technique of Bluetooth (trademark) is used to configure thecommunication unit75, thecommunication unit75 can have the capability of receiving transmission data transmitted from another device over air.
(Example of Applicable Games)
Next, the outline of a game assumed in the embodiment will be described with reference toFIGS. 6A,6B,7A,7B.FIGS. 6A,6B,7A,7B illustrate examples of the screens of the game assumed in the embodiment.
InFIG. 6A, themonitor2 displays a character representing a person (hereinafter referred to as “character C1”) standing on the ground (the floor existing in a three-dimensional space). In this game, the player taps the mountingbase8 on which thecontroller7 is placed, so that the vibration thus generated is detected by thecontroller7. Depending upon the degree of intensity (intensity level) of the vibration detected by thecontroller7, that is, a motion of the player (the motion of tapping the mountingbase8, which is hereinafter uniformly referred to as a “motion”), character C1 starts its motion (“walking”, “running”, “jumping (flying)”). Also, inFIGS. 6A,6B,7A,7B, the number symbols shown below the ground (the number symbols following “StaGe1-1”) represent the time elapsed from the game start (shown on the millisecond (ms) time scale).
FIG. 6A shows the state of the game start. At this stage, character C1 remains still while standing on the ground. That is, this stage comes before the player makes a motion and thecontroller7 has not yet detected any vibration.
FIG. 6B shows the state of C1 at the stage when about 5 seconds have elapsed from the time inFIG. 6A. At this stage, character C1 is walking. That is, at this time point, the player has made a motion and thecontroller7 has detected the vibration resulting from this motion. In this regard, the motion of the player on this occasion is recognized as vibration of weak input (seeFIG. 17 described later).
FIG. 7A shows the state of C1 at a stage when about 12 seconds have elapsed from the time shown inFIG. 6A. At this stage, character C1 is running. That is, at this time point, the player has made a motion stronger than the motion inFIG. 6B, and thecontroller7 has detected the vibration resulting from this strong motion. In this regard, the motion of the player on this occasion is recognized as vibration of medium input.
Further,FIG. 7B shows the state of character C1 at a stage when about 20 seconds have elapsed from the time shown inFIG. 6A. At this stage, character C1 is jumping over an obstacle (shown as a hurdle). That is, at this time point, the player has made a motion even stronger than the motions inFIG. 6B andFIG. 7A, and thecontroller7 has detected the vibration resulting from this strong motion. In this regard, the motion of the player on this occasion is recognized as vibration of strong input. Alternatively, if the player continues to provide medium input to the mountingbase8 without strongly tapping the mountingbase8, character C1 may be automatically jumped when character C1 enters the region of the obstacle (shown as a hurdle) with collision. These respects can be changed as appropriate based on game contents.
In this manner, in the game assumed in the embodiment, a vibration based on the degree of a motion of the player tapping the mount base8 (strong, medium, weak input) is reflected in the motion of character C1 as shown inFIG. 6B toFIG. 7B. Then, the vibration resulting from the motions of the player are reflected in the game until the character C1 reaches the goal. In this manner, the example of the game shown inFIG. 6A toFIG. 7B is a competitive game based on how quickly the players operate their characters C1 to reach the goal.
The present invention can be widely applied also to generally called “visualizer” games in addition to games bringing characters into competition as shown inFIG. 6A toFIG. 7B. The “visualizer” described in this application refers to a program for dynamically creating a pattern and/or the like on the display screen in accordance with an operation input signal entered through the input means provided in thegame device3, a waveform of sound data, and/or the like. The “visualizer” described in this application may be decorative software or to display, together with a pattern and/or the like, scoring of results of counting the number of times a command is established as described later and/or the like. The present invention can be applied to a game in which a variety of special images (including moving images) are displayed on themonitor2, for example, when the strength of the player tapping the mountingbase8, that is, an intensity level of a detected vibration value, or an intensity level pattern of vibration values sequentially receiving in time sequence, or a pattern of rhythm of vibration values sequentially receiving in time sequence (“tap rhythm” described later) (pattern of vibration input and rest), matches a command constructed by a combination of a previously-set pattern or more.
(Program Structure)
Next, the structure of control programs (game control programs) stored in themain memory33 of thegame device3 will be described.
In the present invention, the control program P which is the control means includes at least a variety of programs shown inFIG. 8. As shown inFIG. 8, the control program P includes a main control program P0, mounting determination program P1, vibration start program P2, vibration detection program P3, natural-vibration value calculation program P4, correction-value calculation program P5, correction-value operation conversion program P6, associated vibration setting program P7, vibration pattern determination program P8, special input command determination program P9, and a presentation processing program P10. TheCPU30 reads the programs as appropriate to execute a variety of processing.
The main control program P0 is a program for exercising control over the operation of thegame system1, and includes a communication program for communication with thecontroller7.
The mounting determination program P1 is a program for confirming that thecontroller7 has been mounted on the mountingbase8 when, at the start of a game, theacceleration sensor73 receives, for a certain period time, vibration detection signals (first vibration detection signal) representative of a constant predetermined value (threshold) (first vibration value) or less for predetermined time. If the mounting of thecontroller7 cannot be confirmed, a message urging the mounting of thecontroller7 can be displayed on themonitor2 as appropriate in addition to the above.
The vibration start program P2 is a program necessary for the vibration detection program P3 to detect vibration after activation of the mounting determination program P1. By activation of the vibration start program P2, the vibration generation means (vibrator74) starts operation, so that theMC51 can fetch the vibration detected by theacceleration sensor73 and thegame device3 can acquire a measured value of the vibration.
In the present invention, at an initial stage of a game, when thecontroller7 is mounted on the mountingbase8, it is determined how much the mountingbase8 sways, that is, a value of natural vibration of the mountingbase8 is determined. Since the vibration produced by the vibration generation means (vibrator74) mechanically occurs at constant predetermined intensity, thegame device3 determines how much the mountingbase8 sways on the basis of the value detected by theacceleration sensor73 when the vibration is produced at a constant intensity in the mountingbase8.
The vibration detection program P3 is a program for receiving a measured value of the vibration produced by the control of the vibration start program P2, from thecontroller7 and storing it in the main memory. The vibration detection program P3 enables thegame system1 to detect whether or not vibration is imposed on thecontroller7. In addition, the vibration detection program P3 is used not only to determine how much the mountingbase8 sways at the initial stage of the game, but also as means for detecting vibration throughout the entire game.
The natural-vibration value calculation program P4 is a program for performing the process of determining a value of the natural vibration of the mountingbase8, and calculates a natural-vibration value on the basis of the measured value of vibration detected in the vibration detection program P3. When receiving the measured value of the vibration caused by the player tapping the mountingbase8 in the game, the natural-vibration value calculated in the natural-vibration value calculation program P4 is used to correct the measured value. The natural-vibration value calculation program P4 serves as the natural-vibration value calculation means.
The correction-value calculation program P5 is a program for performing the process of making a correction to the measured value of the vibration when the vibration detection program P3 acquires the measured value of the vibration (a second vibration value) produced by the player tapping the mountingbase8 in the game. Specifically, adding a correction value to the vibration value in the mountingbase8 eliminates a need to change (adjust) the intensity of vibration produced in the mountingbase8 by the player depending on materials of the mountingbase8. For example, this produces an advantageous effect that the player is not required to consciously adjust the tapping strength even when the material of the mountingbase8 is soft (not-easily vibrating material) or hard (material easily transmitting vibration).
The correction-value operation conversion program P6 is a program for performing the conversion process of the measured vibration value after being subjected to the correction processing by the correction-value calculation program P5 in order to use for the game control. That is, the program performs process for reflecting the motion (operation) of the player tapping the mountingbase8 in the game.
The associated vibration setting program P7 is a program executing the process of determining an associated vibration resulting from a tap motion of the player from the measured value of the vibration transmitted from thecontroller7 with a motion of the player tapping the mountingbase8. The associated vibration setting program P7 enables reliable acquisition of vibration accompanying a tap motion of the player in association with the tap motion. The associated vibration setting program P7 may be provided as a sub-program of the correction-value operation conversion program P6.
The vibration pattern determination program P8 forming part of vibration pattern determination means includes an intensity threshold calculation classification program P8aand a tap/rest determination program P8b.
The intensity threshold calculation classification program P8ais a program executing the process of classifying the measured values of vibration (vibration detection signals) receiving as operation signals in time sequence, into at least one pattern or more representative of “strong and weak” vibrations, “strong, medium, and weak” vibrations or the like according to the intensity level of the vibration. The intensity threshold calculation classification program P8aforms part of the input vibration classification means.
The tap/rest determination program P8bis a program executing the process of determining a time interval in which the vibration detection signal is not received (hereinafter referred to as a “rest interval”) and making a further classification into two patterns indicative of a time interval in which the vibration detection signals are received along the time axis in terms of time sequence (hereinafter referred to as “tap input period”) and the rest period in which the vibration detection signal is not received. The tap/rest determination program P8bserves as the tap/rest setting means.
The special inputcommand determination program9 is a program executing the process of determining whether or not a time-series array of classified patterns in the intensity threshold calculation classification program P8aor the tap/rest setting program P8bmatches any of a plurality of previously-set special input commands. If it is determined that the array matches any of a plurality of types of previously-set special input commands, the main control program P0 performs the process of executing a previously-set game control program (game control program based on vibration level determination) in accordance with the matched special input command. For example, a moving image of large-scale, middle-scale or small-scale fireworks continuously set off is displayed on themonitor2 in accordance with the matched special input commands. The special input command determination program P9 serves as the special input command determination means.
The presentation processing program P10 is activated by control of the main control program P0, and includes a presentation image display control program P10aof controlling display of various presentation images on themonitor2 and a presentation sound output processing program P10bof outputting music, effective sound and voice to thespeaker2a.
(Game Control)
Next, game execution control executed by thegame system1 according to the embodiment will be described.FIGS. 9(a) to11 are flowcharts illustrating the flow of basic control of game processing for a game which is controlled by the main control program P0 stored in themain memory33 of thegame device3.
Upon power-up of thegame device3, theCPU30 of thegame device3 executes a boot program stored in the boot ROM, not shown, so as to initialize each unit such as themain memory33 and the like. Then, themain memory33 and the like read the game control program stored on theoptical disc4 and information on various presentation image data, various presentation sound data and previously-set reference data (various data tables and the like), and then theCPU30 starts execution of the game control program.
First, the outline of the entire control of the game processing is described in each step in the flowchart illustrated inFIG. 9A.
[Outline of Game Control]
(Step S1)
Upon start-up of the main control program P0 in the game control program, a game menu screen as shown inFIG. 9B is displayed on themonitor2. The player operates thecontroller7 to select one of games, “game A”, “game B” and “game C”, from the game menu displayed on the menu screen. Thereupon, the main control program P0 displays a welcome screen of the selected game on themonitor2, and also activates a program for various initializations.
In the initialization processing, the mounting determination program P1, the vibration start program P2, the vibration detection program P3 and the natural vibration value calculation program P4 are activated to obtain a natural-vibration value of the mountingbase8. In the initialization processing, the presentation image display program P10adisplays a presentation initialization screen on themonitor2, and outputs presentation music from thespeaker2a. The process of obtaining a natural vibration value of the mountingbase8 will be described in detail later.
(Step S2)
A vibration produced by the motion of the player tapping the mountingbase8 to play the game is input as a vibration detection signal (measured value) from thecontroller7 for the process of controlling the game progress (progress main processing). In the progress main processing, the correction-value calculation program P5, the correction-value operation conversion program P6 and the associated vibration setting program P7 execute preprocessing for reflecting the vibration detection signal of the vibration entered by the player's operation of tapping the mountingbase8 in the game. Then, it is determined whether or not the information obtained through the preprocessing matches effective operation input information used for the control of game progress and/or a special input command. If it is determined that it matches the operation input information and/or the special input command, game control previously set on an operation-input-information-and/or-special-input-command basis, for example, a presentation moving image set on a special input command basis is displayed on themonitor2 for a predetermined time or is continued to be displayed on themonitor2 on the basis of the operation input information until it matches the next special input command. The preprocessing in the progress main processing will be described in detail later.
(Step S3)
It is determined whether or not a game end signal is input by for example, the player's operation of thecontroller7, and if the game end signal is not input, the flow goes back to the processing in step S2 to continue the game. On the other hand, if the game end signal is input, the flow goes to step S4.
(Step S4)
The processing of game end presentation is carried out to end the game. In the presentation processing for game end, for example, gaming time, the number of times the motion of the player tapping the mountingbase8 matches an effective special input command, and the like are displayed on themonitor2.
(Process for Obtaining Natural Vibration Value of Mounting Base)
Next, in the above-described processing in step S1, the natural vibration value calculation program P4 calculates a natural vibration of the mountingbase8. This process will be described in detail in each step of the flowchart inFIG. 12.
FIG. 12 illustrates the process of detecting a natural vibration value in a mounting place (the mountingbase8 in the embodiment) when the game starts. A vibration value (measured value) described in the embodiment refers to a total value of components of acceleration data in the X-, Y- and Z-axis directions measured by the acceleration sensor73 (measured values of the respective X, Y and Z components). Alternatively, a vector value synthesized from the measured values of the respective X, Y and Z components may be set as a vibration value. Either case can be selected in accordance with game contents as appropriate.
(Step S101) (Step S102)
At the start of the game, thecontroller7 is mounted on the mountingbase8 and theCPU30 is set at N=1 and a current maximum vibration value is cleared (when themain memory33 stores a maximum vibration value, this is cleared). The “N” is a variable used in a pre-specified predetermined number (N) of measurements of the maximum vibration value.
(Step S103)
Next, theCPU30 activates the vibration start program P2 to cause thecontroller7 to start the vibration operation. Specifically, theCPU30 transmits a signal to operate thevibrator74 via theMC51 of thecontroller7, and theMC51 of thecontroller7 activates thevibrator74, so that thecontroller7 starts the vibration operation.
(Step S104)
Then, in thecontroller7, theMC51 transmits the vibration of thecontroller7 caused by the vibration operation of thevibrator74, and a value of vibration measured by theacceleration sensor73 as a measure value (vibration value), from theMC51 via theradio module53 to thegame device3 at predetermined time intervals. In this manner, theCPU30 acquires the measured value (vibration value).
(Step S105)
Next, theCPU30 performs the process of comparing and determining whether or not the acquired current vibration value is equal to or lager than the maximum vibration value stored in themain memory33 as of this time (current). The maximum vibration value is subjected to the comparison determination processing only when “N” is 2 or larger. Accordingly, when “N”=1, the determination in step S105 is affirmation (step S105=YES).
(Step S106)
If it is determined at step S105 that the acquired current vibration value is equal to or larger than the current maximum vibration value, theCPU30 stores this current vibration value as a current maximum vibration value in themain memory33.
On the other hand, if it is determined at step S105 that the acquired current vibration value is less than the current maximum vibration value, the process in the step S106 is not performed and the flow goes to step S107.
(Step S107)
Next, theCPU30 determines whether or not the vibration operation of thecontroller7 is in action and also the vibration operation time is equal to or longer than a specified time (e.g., 5 ms).
(Step S108)
If it is determined at step S107 that the vibration operation of thecontroller7 is in action and also the vibration operation time is equal to or longer than a specified time, theCPU30 transmits a signal to stop the vibration operation (that is, the operation of the vibrator74) to thecontroller7.
(Step S109)
If the vibration operation of thecontroller7 is stopped in step S108, and, if it is determined at step S107 that thecontroller7 is in the vibration operation and the time period of the vibration operation is less than the specified time, the CPU determines whether or not the measurement time to measure a vibration value is equal to or longer than a previously-set, predetermined time. If the measurement time is less than the predetermined time, the flow goes back to step S104 to repeat the processing after step S104.
(Step S110)
If it is determined at step S109 that the measurement time has reached the predetermined time, theCPU30 stores the current maximum vibration value (the maximum vibration value stored in the main memory33) as a maximum vibration value obtained in an Nth measurement, in themain memory33.
(Step S111) (Step S112)
Next, theCPU30 increments “N” to “N+1”, and determines whether or not “N” is a predetermined value or larger. The aforementioned processing from step S102 to step S112 is repeated until “N” reaches the predetermined value.
(Step S113)
If it is determined at step S112 that “N” is the predetermined value or larger, theCPU30 calculates an average of “N−2” maximum vibration values of the maximum vibration values obtained in the N measurements and stored in themain memory33, that is, of the “N” maximum vibration values except for the maximum value and the minimum value, and stores the calculated average as a unit vibration value (natural vibration value) in themain memory33.
(Step S114)
A correction coefficient of the vibration value which is stored in the vibration conversion table in correspondence with the natural vibration values calculated in step S113 is calculated in reference to a vibration conversion table pre-stored in themain memory33, and then stored in themain memory33. The vibration conversion table is a data table of experimentally-found coefficients used to correct vibration values for each natural vibration value previously measured when thecontroller7 is placed in a variety of mounting places. The correction coefficient is a value ranging from 0.7 to 1.3.
By previously calculating a correction coefficient of a vibration value in this manner, a measured value of vibration in response to a motion of the player in accordance with the environment of the mounting place can be reflected in the game control by using the correction coefficient for correction. Specifically, if such means for correcting a measured value of vibration is provided, even when the controller is mounted in a mounting place where vibration and noise occur without stopping, a detection of such vibration and noise together with a motion of the player can be avoided as much as possible.
The processing of previously calculating the correction coefficient for vibration values may be carried out by theMC51 of thecontroller7.
If vibration is imposed to thecontroller7 mounted on the mounting place, then it is possible to obtain a change in vibration values according to a hardness (solidity) of a mounting place (for example, the hardness of the ground as a mounting place, the hardness of a material of a mounting board, or the like).FIG. 13A shows a change in vibration value when thecontroller7 is mounted on a hard surface (for example, on an asphalt surface, a steel plate or the like), whileFIG. 13B shows a change in vibration value when it is mounted on a soft surface (for example, on cardboard or the like). InFIGS. 13A,13B, the vertical axis represents vibration values and the horizontal axis represents time.
In this manner, a hardness of the mounting place and/or the like can be measured from a change of vibration values. Accordingly, even when the player taps at equal strength, the input vibration value varies according to properties such as a hardness and the like of the mounting place on which thecontroller7 is mounted. In the game system according to the embodiment, the correction-value calculation program P5 is executed. This makes it possible to previously obtain a correction value for correcting a vibration value according to the vibration input by the player tapping the mountingbase8. And then, the vibration provided by the player during the execution of the actual game can be identified as an operation input signal. As a result, as long as thecontroller7 can be stably mounted, the player can enjoy games in accordance with the environment of the mounting place.
(Progress Main Processing)
Next, the processing details of the progress main processing which is the processing at step S2 shown inFIG. 9A will be described. The progress main processing includes: a process of operating thecontroller7 to measure a vibration produced by the player tapping the mountingbase8, and then transmitting the measured vibration value to thegame device3; a process of correcting the transmitted vibration value and converting it to be reflected in the game; and a portion of performing game control on the basis of the converted information.
FIG. 10 shows the outline of the procedure of the progress main processing. The outline of the progress main processing will be described below with reference toFIG. 10.
(Step S21)
An input signal representative of vibration produced by the player tapping the mountingbase8 is converted into information on operation input by the player, and the information is sequentially stored in time-series order in themain memory33. In step S21, information relating to “rest” described later is also subjected to the process of conversion into information on operation input by the player. These processes will be described in detail later, in which the correction-value calculation program P5, correction-value operation conversion program P6, associated vibration setting program P7, vibration pattern determination program P8, special input command determination program P9 and the like are operated based on control of the main control program P0. The above-described “rest” means a motion of the player not tapping the mountingbase8, that is, a time interval during which the mountingbase8 is not tapped.
(Step S22)
It is determined whether or not some kind of “input signal” other than the tapping motion is entered via thecontroller7 or the screen on themonitor2. As a result of the determination, if there is no entry, the processes in step S23 and step S24 relating to the progress main processing are not performed, thereby terminating the progress main processing.
(Step S23)
Since the operation signal representative of vibration produced by the player tapping the mounting base8 (measured value of vibration) is input at step S21, the main control program P0 initiates the process of displaying a regular presentation image to display a previously-set presentation image (which may include a moving image) on themonitor2. In the process of displaying a regular presentation image, for example, the process of displaying a moving image of small-scale fireworks intermittently set off is performed as a game control step based on the vibration level determination.
(Step S24)
Regarding operation signals acquired when the player continuously taps the mountingbase8 sequentially, it is determined whether or not a time-series array of the operation input information sequentially stored in themain memory33 in the process in step S21 matches any of a plurality of kinds of previously-set special input commands. As a result of the determination, if the array matches any of the special input commands, the process of previously-set game control is performed on a special-input-command basis. In the process of the game control, for example, the process of displaying the aforementioned moving image of large-scale fireworks continuously set off on themonitor2 is performed as a game control step based on the vibration level determination.
In the aforementioned process in step S1, depending on a game name selected from the game menu screen by the player, the process in step S24 based on the special input command described above may possibly not be included. For this reason, in the process in step S24 in a program for execution of such a game, for example, every time vibration is acquired when the player taps the mountingbase8 one time, an intensity level of the vibration value is determined so that the game control is performed according to the intensity level.
For example, if the intensity level of the vibration resulting from a tap motion is determined to be “strong”, the process of displaying the moving image of large-scale fireworks continuously set off on themonitor2 is not performed. If the intensity level is determined to be “weak”, the process of displaying the moving image of a single small-scale firework set off on themonitor2 is performed.
FIGS. 14 and 15 show processing flows when, in step S21 of the progress main processing, a vibration value detected by thecontroller7 during game execution is subjected to correction processing and conversion processing by the correction-value calculation program P5, the correction-value operation conversion program P6 and the associated vibration setting program P7. The process for correcting and converting the vibration value will be described below with reference toFIGS. 14 and 15.
(Correction Processing for Vibration Value)
FIG. 14 shows an example of the correction processing performed on a vibration value by the correction-value calculation program P5. The processing procedure will be described below on a step-by-step basis.
(Step S201) (Step S202)
First, theCPU30 calculates a vibration ratio R based on a measured vibration value. As shown inFIG. 14, the vibration ratio R is calculated by dividing “a value calculated by subtracting a mean vibration value from a measured vibration value” by “a value calculated by subtracting a mean vibration value from a predicted maximum vibration value”.
In this connection, the mean vibration value refers to a vibration value measured when thecontroller7 is maintained in a still state on the mountingbase8, which will be described in detail later. The predicted maximum vibration value refers to a maximum vibration value admissible as an operation input signal generated by a tap motion of the player during game execution in the mounting place (mounting base8) measured by the processing inFIG. 12, which is calculated in accordance with an environment of the mounting place measured by use of a vibrating function.
The measured vibration value is multiplied by a correction coefficient obtained from the aforementioned natural vibration value to calculate a vibration value, and the calculated vibration value is employed as required.
(Step S203)
Next, theCPU30 determines whether or not the vibration ratio R calculated in step S202 is equal to or less than a vibration ratio threshold R0. A predetermined value (e.g., 0.5) is previously determined for the vibration ratio threshold R0.
(Step S204)
If it is determined at step S203 that the vibration ratio R is equal to or less than the vibration ratio threshold R0, theCPU30 calculates a conversion value from the equation shown inFIG. 14. That is, when the vibration ratio R is equal to or less than the vibration ratio threshold R0, data processing using logarithmic conversion is performed. As a result, even when a detected vibration value is a minimum value, it can be reflected as a motion of the player in the game.
Symbol “A0” inFIG. 14 refers to a value converted from the vibration ratio threshold R0(a converted value in the vibration ratio threshold). A predetermined value (e.g., 0.6) is previously determined as the “A0”.
(step S205)
On the other hand, if it is determined at step S203 that the vibration ratio R is not equal to or less than the vibration ratio threshold R0, theCPU30 calculates a conversion value from the equation shown inFIG. 14. That is, when the vibration ratio R exceeds the vibration ratio threshold R0, data processing without logarithmic conversion is performed.
From this, the vibration ratio threshold R0can be described as a reference value (threshold) for determining whether or not the vibration value is a minimum value.
As described at step S202, the vibration ratio R is calculated based on the mean vibration value.FIG. 15 is a flowchart showing a method of calculating a mean vibration value. As described earlier, the mean vibration value is a vibration value obtained when thecontroller7 is placed on the mountingbase8 and in the still state. The procedure of calculating the means vibration value will be described below with reference toFIG. 15. Desirably, a program for calculating the mean vibration value is included as a sub-program in the aforementioned natural-vibration-value calculation program P4, and when calculating a natural vibration value, the mean vibration value is calculated.
(Procedure of Calculating Mean Vibration Value)
Next, the aforementioned procedure for calculating a means vibration value will be described with reference to the flowchart inFIG. 15.
(Step S301) (Step S302)
First, when themain memory33 already stores data on vibration values, theCPU30 clears the data (initialization) and acquires a vibration value, measured by theacceleration sensor73 in thecontroller7, as transmission data and stores it in themain memory33.
(Step S303)
Next, theCPU30 determines whether or not the number of measurements of vibration values is equal to or larger than a previously-set, predetermined number of measurements. In this connection, the processes after step S302 are repeated until the number of measurements reaches the predetermined number.
(Step S304) (Step S305)
If it is determined at step S303 that the number of measurements of vibration values is equal to or larger than a previously-set, predetermined number of measurements, theCPU30 calculates a mean value of the vibration values stored in themain memory33 in step S302 to step S303, and defines it as a mean vibration value. A maximum vibration value of the stored vibration values is set as a maximum vibration value.
(Step S306)
Next, theCPU30 subtracts the mean vibration value calculated in step S304 from the maximum vibration value determined in step S305, and then determines whether or not the value (error) obtained by this subtraction is equal to or less than a certain value. The “certain value” described here is desirably set to, for example, a value capable of approximating the error between the maximum vibration value and the mean vibration value to a minimum difference (in the embodiment, it is set to 0.001). As a result, the closer to zero the certain value becomes, the higher the accuracy of the mean vibration value would be.
(Step S307)
If it is determined at step S306 that the error is equal to or less than the certain value, theCPU30 stores the mean vibration value calculated in step S304 as a mean vibration value in the mountingbase8 into themain memory33.
On the other hand, if the determination in step S306 is not satisfied, the flow goes back to step S301 to repeat the processes from step S301 to step S306.
(Conversion Processing for Vibration Value)
A description will be given of the process of converting a vibration value and the process of detecting noise vibration which are performed by the correction-value operation conversion program P6 when a motion of the player tapping the mountingbase8 is received after the game starts.FIG. 16 shows an example of the processing procedure of the correction-value operation conversion program P6. The processing contents will be described below in a processing step basis with reference toFIG. 16.
(Step S401)
First, theCPU30 sets “M” to zero. The “M” is a correction type flag used for correction of a vibration value, which is a flag for holding information on determination results of the following processes in the processes.
(Step S402) (Step S403)
Next, theCPU30 acquires, as transmission data, a vibration value measured by theacceleration sensor73 in thecontroller7, and calculates the rate of change of acceleration (hereinafter uniformly referred to as the “acceleration change rate”). Four-time measurements are made in a frame (e.g., 1/60 seconds) in each of data components of accelerations in the X-, Y- and Z-axis directions measured by theacceleration sensor73, and the “acceleration change rate” refers to a value of the sum of differences each of which is between a value in each measurement and a value of the past measurement. A value with consideration given to sign, rather than an absolute value, is employed for this difference. Calculating the difference makes it possible to precisely detect an operation input signal generated upon a motion of one-time tap of the player, as one-time tap.
In this regard, “past” described here refers to, if four-time measurements are made in a frame, the first measurement when the second measurement is made, and the second measurement when the third measurement is made.
(Step S404)
Next, theCPU30 stores a maximum value of the acceleration change rate measured during one frame (for example, 1/60 seconds) of the acceleration change rates calculated in step S403, as a frame acceleration change rate in themain memory33.
(Step S405) (Step S406)
Next, theCPU30 turns once OFF a vibration trigger flag (hereinafter simply referred to as a “vibration trigger”) (for example, stores “0”), and calculates a difference D between the acceleration change rates in frames from an equation shown inFIG. 16. The difference D is calculated by subtracting the acceleration change rate in the frame immediately before a current frame (described as “acceleration change rate in the preceding frame” inFIG. 16) from the acceleration change rate in the current frame. The vibration trigger is a flag located in themain memory33 in order to store information representing input of vibration resulting from a tap motion of the player, that is, start-up of a change in vibration value.
(Step S407)
The difference D is calculated in step S406, whereupon theCPU30 determines whether or not “M” is equal to zero (M=0).
(Step S408)
If it is determined at step S407 that M=0, theCPU30 determines whether or not the difference D is larger than (exceeds) a predetermined value (first predetermined value).
(Step S409) (Step S410)
If it is determined at step S408 that the difference D is larger than the predetermined value, theCPU30 sets M=1, then determines that a vibration change starts up and therefore turns the vibration trigger ON (stores “1”). TheCPU30 also stores the time value at this time. Further, theCPU30 stores in the main memory33 a maximum acceleration change rate when the frame acceleration change rate in a frame after the vibration trigger has been turned ON is increased, as an acceleration change rate corresponding to the process of turning the vibration trigger ON. Then, the flow goes back to step S402. If it is determined at step S408 that the difference D is equal to or less than the predetermined value, the processes in step S409 to step S410 are not performed and the flow goes back to step S402.
In this manner, a vibration trigger is used for determinations, so that, when the vibration trigger is ON, the aforementioned maximum acceleration change rate is obtained from the vibration values received in sequence. Then, the next re-vibration acceptance time (time until re-measurement) is set according to the magnitude of the maximum acceleration change rate. This makes it possible to cancel a signal (even if it is a value determined to be stronger than the operation input signal), except for a signal used as an operation input signal, without recognizing it as an operation input signal.
(Step S411)
On the other hand, if it is determined at step S407 that M is not equal to zero, theCPU30 determines whether or not M=1.
(Step S412)
If it is determined at step S411 that M=1, theCPU30 determines whether or not the difference D is equal to or less than zero.
(Step S413) (Step S414)
If it is determined as step S412 that the difference D is zero or less, theCPU30 sets M=2 and also determines the re-vibration acceptance time. The re-vibration acceptance time is determined according to the magnitude of the acceleration change rate in the preceding frame. Then, the flow goes back to step S402.
On the other hand, if it is determined at step S412 that the difference D exceeds zero, the processes in step S413 and step S414 are not performed and the flow goes back to step S402.
(Step S415)
If it is determined at step S411 that M is not equal to 1, theCPU30 determines whether or not the difference D is zero or larger.
(Step S416)
If it is determined at step S415 that the difference D is zero or larger, in this event, since the acceleration change rate in the current frame is greater than the acceleration change rate in the preceding frame, there is a high possibility that a motion of a new player is detected. Then, theCPU30 determines whether or not the re-vibration acceptance time has elapsed and the difference D is equal to or greater than the predetermined value.
(Step S417) (Step S418)
If it is determined at step S416 that the re-vibration acceptance time has elapsed and the difference D is equal to or greater than the predetermined value, theCPU30 sets M=1 and turns the vibration trigger ON (stores “1”). TheCPU30 also stores a time value at this time. Further, as in the case of step S410, theCPU30 stores a maximum acceleration change rate when the frame acceleration change rate in a frame after the vibration trigger has been turned ON is increased, as an acceleration change rate corresponding to the process of turning the vibration trigger ON, in themain memory33. Then, the flow goes back to step S402.
(Step S419)
On the other hand, if it is determined at step416 that the re-vibration acceptance time has not elapsed or the difference D is not equal to or greater than the predetermined value, theCPU30 sets the counter of the re-vibration acceptance time at zero and the flow returns to step S402.
(Step S420)
On the other hand, if it is determined at step S415 that the difference D is less than zero, theCPU30 determines whether or not the difference D is equal to or less than a predetermined value.
(Step S421)
If it is determined at step S420 that the difference D is equal to or less than the predetermined value, theCPU30 sets M=0 and the flow returns to step S402.
If it is determined at step S420 that the difference D exceeds the predetermined value, the process in step S421 is not performed and the flow returns to step S402
FIGS. 17 to 19 are graphs showing a change when the vibration value is actually corrected by the aforementioned procedure shown inFIG. 16.FIG. 17 shows the change when a motion of the player is detected as weak input. Likewise,FIG. 18 shows the change when a motion of the player is detected as medium input, whileFIG. 19 shows the change when one-time motion of the player is detected as strong input. The solid line extending downward inFIGS. 17 to 19 shows that a motion of the player is detected as a vibration trigger, the dotted line shows the acceleration change rate, and the two-dot chain line shows the maximum acceleration change rate in a frame.
For example, each of the gray and white divisions inFIG. 19 corresponds to a frame. After a vibration trigger has been turned ON, the maximum acceleration change rate decreases in the 4thframe after the vibration trigger has been turned ON, and the maximum acceleration change rate increases in the 5thframe after the vibration trigger has been turned ON. However, the maximum acceleration change rate in the 5thframe is not connected with the vibration trigger. By doing so, a motion of the player can be precisely detected as a vibration trigger.
The aforementioned processes in steps S407 to S419 and steps S420 to S21 correspond to the processing performed by the associated vibration setting program P7. In the associated vibration setting program P7, after vibration generated upon a motion of one-time tap of the player is detected, based on the detected vibration value, vibration detected after the one-time tap motion is set as noise which is associated vibration associated with the one-time tap motion. This setting avoids the event in which, although the motion of the player is received just one time, a reverberation (aftershock, relapse) of the one-time motion may be detected as another motion. That is, a detection of one-time motion of the player as a plurality of tap motions is eliminated, thus improving precision of detection of a tap motion of the player.
Next, a description will be given of processing performed by the vibration pattern determination program P8 in the process in step S21 in the progress main processing shown inFIG. 10. The vibration pattern determination program P8 includes the intensity threshold calculation classification program P8aand the tap/rest determination program P8bas shown inFIG. 8. The main control program P0 controls the execution of those programs in response to the game contents of the game A, B, C which has been selected from the menu screen by the player in the aforementioned process of step S1.
As described earlier, upon determination that a measured value of vibration acquired from thecontroller7 is a measured value of vibration generated by the player tapping the mountingbase8, thegame device3 performs a process for performing processes for correcting and converting the acquired vibration value by the correction-value calculation program P5, the correction-value operation conversion program26 and the associated vibration setting program P7, to obtain information on a vibration value corresponding to each tap motion of the player and information used for game control (hereinafter referred to as the “tap operation input information”).
As a program for performing the process of obtaining the tap operation input information, the aforementioned intensity threshold calculation classification program P8aand the tap/rest determination program P8bare provided.
The intensity threshold calculation classification program P8ais a program performing a process for obtaining information required to be reflected in the game control, from the tap operation input information which is obtained by performing the above-described process of sequentially converting the measured values of vibration sequentially received in time sequence. In order to obtain the information required to be reflected in the game control, the tap operation input information is processed to be classified by intensity levels such as into two “strong, weak” levels, three “strong, medium, weak” levels, or the like. That is, the tap operation input information on vibration in relation to each tap generated every time the player taps the mountingbase8 is processed to be classified in any of patterns each including two or more levels of intensity (intensity level pattern) in accordance with a strength varying depending on various situations when the player taps the mounting base8 (the degree of strength to tap, times of a day, mental condition and the like) and on attribution of a player himself (small child, child, adult, or the like).
(Process for Determining Intensity Level Pattern)
FIG. 20 is a flowchart showing an example of the procedure of the intensity threshold calculation classification program P8aperforming a process of classifying the tap operation input information relating to each tap generated every time the player taps the mountingbase8 to play the game, in any of two or more levels in accordance with the intensity. The process procedure of the intensity threshold calculation classification program P8awill be described below with reference toFIG. 20. The intensity threshold calculation classification program P8ais executed at predetermined time intervals under the control of the main control program P0.
(Step S501)
The tap operation input information relating to each tap occurring every time the player taps the mountingbase8 to play the game is stored in an archive data storage area of themain memory33 under the control of the main control program P0. At step S501, a count storage area, which is defined for counting the number (R) of tap operation input information stored in the archive data storage area, is initialized to “zero”.
(Step S502)
It is determined whether or not vibration by operation of a player tapping the mountingbase8 to play the game is input to thegame device3, that is, the aforementioned vibration trigger is “ON”. As a result of this determination process, if “1” (=ON) is stored in the “vibration trigger”, the flow goes to the next step S503, but if “0” (=OFF) is stored, the flow goes back to step S502. The processes after step S502 are executed at predetermined time intervals.
(Step S503)
In the aforementioned process in step S410 or step S418 shown inFIG. 16, a process is performed for determining the acceleration change rate in the frame after the “vibration trigger” has been turned ON as the magnitude (E) of the current vibration value input in response to one-time tap operation of the player at this time. Then, the magnitude (E) of the current vibration value is once stored in themain memory33.
(Step S504)
It is determined whether or not the number of counts R exceeds a previously-set upper limit (maximum number of stored intensities). As a result of the determination process, if it is determined that it does not exceed the upper limit, the flow goes to step S506, and if it is determined that it exceeds the upper limit, the flow goes to step S505. The upper limit may be set in a range from about 7 to about 15 in order to grasp a habit of the tap motion of the player.
(Step S505)
A process is performed for deleting the magnitude (E) of the oldest vibration value in time sequence in the archive data storage area defined in themain memory33 for sequentially storing the magnitudes (E) of current vibration values. Then, the subtraction of 1 from the number of counts R is performed, and then the flow goes to step S506.
(Step S506)
The magnitudes (E) of the current vibration values once stored in themain memory33 in step S503 are stored in time-series order in the archive data storage area defined in themain memory33. Then, an addition of “1” to the number of counts (R) is performed.
(Step S507)
It is determined whether or not the number of counts (R) is less than a previously-set minimum computationally effective value R0. As a result of the determination process, if R>R0, the flow goes to step S508, and if it is determined that R is equal to or less than R0, the flow goes to step S514. The value of minimum computationally effective value R0 is set to any value of “3” or “4” or greater.
(Step S508)
Regarding the magnitudes (E) of current vibration values sequentially stored in the archive data storage area, a median (C) of the magnitudes (E) is calculated and stored in themain memory33.
(Step S509)
Regarding the magnitudes (E) of vibration values sequentially stored in the archive data storage area, a mean value (U) larger than the median (C) calculated in step S508, and a mean value (L) smaller than the median (C) are each calculated and stored in themain memory33.
(Step S510)
Assuming that a median (C) of the total is “0.5”, a mean value (U) is “0.75” which is a median equal to or larger than the median (C), a threshold for determining “medium, strong” levels of vibration is “07”, and similarly a threshold for determining “weak, medium” levels of vibration is “0.3”. In the game control, thresholds Y1 and Y2 are calculated for classifying vibration into “strong, medium, weak” levels.
In step S510, the threshold Y1, which becomes “0.5” or larger when the median (C) of the total is assumed to be “0.5”, is calculated from thefollowing equation 1 by proportional distribution.
07.5−0.5:(0.7−0.5)=mean value(U)−median(C):Y1−median(C) (1)
The threshold Y1 is a threshold for classifying vibration into “medium, strong” levels, in which, for example, when the vibration value exceeds the threshold Y1, the vibration is determined to be in a “strong level”, and when it is equal to or less than the threshold Y1, the vibration is determined to be in a “medium level”.
(Step S511)
In step S511, the threshold Y2, which becomes “0.5” or lower when the median (C) of the total is assumed to be “0.5”, is calculated from the following equation (2) by proportional distribution.
0.50−0.25:(0.5−0.3)=median(C)−mean value(L):median(C)−Y2 (2)
The threshold Y2 is a threshold for classifying vibration into “weak, medium” levels, in which, for example, when the vibration value exceeds the threshold Y2, the vibration is determined to be in a “medium level”, and when it is equal to or less than the threshold Y2, the vibration is determined to be in a “weak level”.
(Step S512)
Referring to the thresholds Y1 and Y2 calculated from equations (1) and (2), it is determined which level of the “strong, medium, weak” pattern the magnitude (E) of the current vibration value corresponds to. For the determination process, for example, the following process is performed.
(1) When the magnitude (E) of the current vibration value exceeds the threshold Y1, the magnitude (E) of the current vibration value is determined to be in a “strong” level in the “strong, medium, weak” pattern.
(2) When the magnitude (E) of the current vibration value is the threshold Y1 or lower and exceeds the threshold Y2, the magnitude (E) of the current vibration value is determined to be in a “medium” level in the “strong, medium, weak” pattern.
(3) When the magnitude (E) of the current vibration value is lower than the threshold Y2, the magnitude (E) of the current vibration value is determined to be in a “weak” level in the “strong, medium, weak” pattern.
The flow goes to step S514 after the termination of the process at step S512.
(Step S513)
It is determined which range the magnitude (E) of the current vibration value is included in by comparison with a tentative threshold “0.7” for determining the “medium, strong” levels of the vibration and a tentative threshold “0.3” for determining the “weak, medium” levels of the vibration. It is determined which level in the “strong, medium, weak” pattern the magnitude (E) of the current vibration value corresponds to. In the determination process, for example, the following process is performed.
(1) When the magnitude (E) of the current vibration value exceeds “0.7”, the magnitude (E) of the current vibration value is determined to be in a “strong” level in the “strong, medium, weak” pattern.
(2) When the magnitude (E) of the current vibration value is the threshold “0.7” or lower and exceeds the threshold “0.3”, the magnitude (E) of the current vibration value is determined to be in a “medium” level in the “strong, medium, weak” pattern.
(3) When the magnitude (E) of the current vibration value is lower than “0.3”, the magnitude (E) of the current vibration value is determined to be in a “weak” level in the “strong, medium, weak” pattern.
The flow goes to step S514 after the termination of the process at step S513.
(Step S514)
The information on levels of the “strong, medium, weak” pattern determined in the process of step S512 or step S513 is stored in magnitude type archive memory generated in themain memory33. Then, information, indicating that an input value, which is determined based on the information on levels in a pattern stored in the magnitude type archive memory, corresponds to which value of the pattern (to the “weak” level, the “medium” level or the “strong” level), is stored in a command determination table in time-series order.
The execution of the above-described processes in step S501 to step S514 provides information relating to a level pattern in which vibration generated every time the player taps the mountingbase8 one time to play the game is classified into any one of “strong, medium, weak” level patterns. Information determined based on the provided level pattern is sequentially stored in time-series order in the command determination table in themain memory33. The procedure of a process for storing a “strong, medium or weak” level pattern in the command determination table is described in steps S24ato S24cwhich will be described later.
(Process for Command Determination)
Next, the procedure of the “command determination process” which is the process in step S24 shown inFIG. 10 will be described with reference to the flowchart inFIG. 11. The command determination process is executed by the special input command determination program P9.
(Step S24a) (Step S24b)
It is determined whether or not the number of “strong, medium, weak” level patterns stored in the aforementioned command determination table reaches an upper limit. The upper limit is set, for example at an appropriate value from about “7” to about “15”. As a result of this determination process, if it is determined that it reaches the upper limit, the flow goes to step S24bto perform a process of deleting oldest information in time-series order from the information relating to the “strong, medium, weak” level patterns stored in the command determination table in order to shift (relocate) in time-series order information stored in the command determination table. On the other hand, if it is determined that it does not reach the upper limit, the flow goes to step S24c.
(Step S24c)
The information on the levels of the “strong, medium, weak” pattern determined in the process of step S512 or step S513 is stored in the command determination table. Any one piece of the information on the “strong, medium, weak” level pattern of vibration corresponding to a tap motion of the player every time the player taps the mountingbase8 to play the game is stored in time-series order in the command process table.FIG. 22A is a table illustrating an example of data structure of the command determination table (TC1). The command determination table (TC1) shown inFIG. 22A shows an example that the upper limit of the number of stored pieces of information on the “strong, medium, weak” level pattern is set at 10, in which three level patterns are stored at this moment. InFIG. 22A, the larger the number in storage order, the older the information relating to the “strong, medium, weak” level pattern in time sequence.
(Step S24d)
It is determined whether or not, referring to the special input command table, the array in time series order (array in chronological order) of the information relating to the “strong, medium, weak” level pattern stored in the command determination table (TC1) matches any one of special input commands pre-registered in the special input command table. That is, it is determined whether or not, when thegaming machine3 sequentially acquires vibrations generated by motions of the player continuously tapping the mounting base8 a plurality of times, the vibration is established as a command (special input command) for controlling the game. As a result of the determination process, if it matches, the flow goes to step S24e, and if it does not match, this command determination process is terminated.
The special input command refers to a plurality of control commands including a combination of one or more patterns previously set for executing the game control. If an array of information sequentially stored in time series order in the command determination table, of the information relating to a plurality of vibration values input, matches a predetermined control command, the array is determined to be input as a special input command. Then, for each special input command, for example, the main control program P0 performs a process of displaying a previously-set unique image on themonitor2.FIG. 23A shows an example of the data structure of a previously-set special input command table (TT1) for executing game control for each type of previously-set special input commands.
The special input command table (TT1) shown inFIG. 23A is a data table in which, based on identification information on each of types of previously-set special input commands, information including array of a plurality of pieces of information relating to the aforementioned “strong, medium, weak” level pattern showing each of the special input commands, and a command execution program name (start address of a program) required for executing the game control for each special input command are stored.
(Step S24e)
Since it is determined at step S24dthat the motion of the player continuously tapping the mountingbase8 multiple times is established as a special input command for controlling the game, the main control program P0 performs a process of executing the program of the command execution program name registered in the special input command table (TT1) in accordance with the established special command. For example, if it is determined that the array in time series order of a “strong, medium, weak” level pattern corresponding to a motion of the player continuously tapping the mountingbase8 multiple times is made up of “strong”, “strong”, “strong”, “weak” (identification information of the special input command is “02”), the main control program P0 executes a program for a “large-scale firework display” shown in the special input command table (TT1). As a result, a moving image of the large-scale firework display and the sound effects are output from themonitor2.
At this stage, for the purpose of notifying the player which array the special input command is established by, insofar as the special input command is established, the established special input command may be displayed using diagrams, characters and the like on themonitor2. Implementation of such control makes it possible for the player to look at a desired image if information on a vibration value corresponding to a tap motion of the player matches a special input command.
(Step S24f)
The stored contents of the command determination table TC1 is cleared (reset), followed by termination of the command determination process. In this manner, if the player continuously taps the mountingbase8, the processes in step S24ato step S24fare repeatedly executed.
The aforementioned special input command table (TT1) is adapted to be employed for, for example, game B in the menu of games executed by thegame device3 shown inFIG. 9B.
(Example of Game Control Allowing for Tap Rhythm)
Next, a description will be given of an embodiment in which, when the player continuously taps the mountingbase8, his “tap rhythm” is determined, and if the “determined tap rhythm” matches a previously-set special input command, previously-set game control is performed in accordance with the matched special input command. The embodiment comprises means for performing the previously-set game control in accordance with the matched special input command.
The determination of the “tap rhythm” generated when the player taps the mountingbase8 can be implemented by separating a time period during which vibration generated by tapping the mounting base8 (vibration detection signal) is input to the game device3 (hereinafter referred to as a “tap input period”) and a time period during which the vibration detection signal is not input (hereinafter referred to as a “rest period”) in terms of the elapsed time axis in time sequence. The “tap input period” and the “rest period” forming the “tap rhythm” are varied in length by various situations when the player taps the mounting base8 (the degree of strength to tap, times of a day, mental condition and the like) and on attribution of a player himself (small child, child, adult, or the like). Accordingly, for the determination of “tap rhythm”, if a determination process which prevents, in particular, the determination of the “rest period” from being affected as much as possible by those situations and attribution is adopted, it is conceivable that accurate determination of the “rest period” is achieved.
The embodiment according to the present invention comprises means for accurately determining the “rest period” in accordance with the procedure shown inFIG. 21.
The method of determining the “rest period” will be described below with reference to the flowchart inFIG. 21. The process of determining the “rest period” is executed by the tap/rest command determination program P9ashown inFIG. 8.
(step S601)
As initialization processing, “zero” is stored in a count area defined in themain memory33 in order to count number (I) which stores “S” ((current time)−(time of the preceding tap)) described later. Then, in the determination process, for the purpose of storing the “tap input period” or the “rest period” which is the determination result, “zero” representative of the “rest period” is stored (“OFF” illustrated inFIG. 21) in a tap-rest flag (“FLAG” illustrated inFIG. 21) generated in themain memory33.
Upon FLAG turning ON, the “tap rhythm” input after FLAG has been turned ON is recognized as a command (special input command). Accordingly, if it is determined that the rest period is longer than a certain set time, FLAG is turned OFF, so that the “tap rhythm” input at an interval which is unrecognizable as a command is not recognized as a command, which will be described later.
(Step S602)
The same process as that in step S502 is executed. Specifically, it is determined whether or not, because the player has operated by tapping the mountingbase8 to play the game, the measured value of vibration acquired from thecontroller7 is input as an operation signal to thegame device3. For this determination, for example, it is determined whether or not the stored contents of the “vibration trigger” processed in step S405, S410 or S418 showing the processing of the correction-value operation program P6 shown inFIG. 16 is ON (“1”).
As a result of the determination process, if “1” is stored in the “vibration trigger”, the flow goes to the next step S603, and if “0” is stored, the flow goes to step S611. The main control program P0 controls such that the processes after step S602 are executed at predetermined time intervals.
(Step S603) (Step S604)
It is determined whether or not “1” representative of “ON” is stored in the tap/rest flag. If “1” is not stored, the process of storing “1” in the tap/rest flag again is performed. Then the flow goes back to step602. Then, the process in step S602 is executed after the elapse of a predetermined time.
(Step S605)
The process “S=(current time)−(time of the preceding tap) is performed. The value of S is once stored in themain memory33. The “S” means a difference (tap interval) between current time (time value) and a time value of the preceding tap. The time of the preceding tap reference to a time value when a newest vibration trigger with going back from the current time in time sequence is turned ON.
(Step S606) (Step S607)
It is determined whether or not the number of counts (I) exceeds a previously-set maximum number (upper limit). Note that “I” means the number of tap intervals stored in the interval storage memory for preserving the input interval time. As a result of the determination process, if it is determined that “I” exceeds the upper limit, the flow goes to step S607 to delete the oldest time from the interval storage memory. If not exceeding, the flow goes to step S608.
As the upper limit of the number of counts (I), a value of around “2” or in a range from about “2” to about “5” is set. The upper limit is “2” or “2” or larger, and if a value closer to “2” is used, the number of counts (I) can be determined by newest tap rhythm generated by a motion of the player tapping the mountingbase8. The number of counts (I) is a value necessary for the rest determination time which is the base time for determining whether or not FLAG is turned OFF after input.
(Step S607)
A process is performed for deleting the oldest S in time sequence in the preserved data storage area defined in themain memory33 for sequentially storing the values of S calculated in step S605. Then, the subtraction of “1” from the number of counts I is performed, and then the flow goes to step S608.
(Step S608)
The value of S calculated by the process in step S605 is stored in the preserved data storage area defined in themain memory33. A process is performed for storing the values of S in time sequence order in the preserved data storage area. The addition of “1” to the number of counts (I) is performed.
(Step S609)
It is determined that the tap/rest flag is “ON”, that is, a tap signal is input (the measured value detected by theaccelerator sensor73 is a value indicating that the player has tapped), so that “2” representative of “tap period” is stored.
(Step S610)
The information stored in the tap/rest flag is stored in time series order in the command determination table (TC2) constructed in themain memory33.FIG. 22B shows an example of data structure of the command determination table TC2. Information relating to the tap/rest flag, “02 (tap input period)”, “02 (tap input period)”, and “01 (rest period)”, are stored in time sequence order (in reverse chronological order) in the command determination table (TC2) shown inFIG. 2B.
(Step S611)
It is determined whether or not “2” representative of “ON” is stored in the tap/rest flag. If “2” is stored, the flow goes to step S612. If “1” representative of “OFF” is stored, the flow goes to step S619.
(Step S612) (Step S613)
It is determined whether or not the number of counts (I) is larger than “zero”, that is, a value of S is stored in the preserved data storage area. As a result of the determination, if it is determined that the number of counts (I) is zero, the flow goes to step S613 to store a previously-set rest determination time (T0) in an area defined for storing a rest determination time (T) in themain memory33. Then, the flow goes to step S616. The rest determination time (T0) is a value assumed as a time interval between regular tap motions of the player, that is, a time acting as a criterion for determined whether or not to turn FLAG OFF after tap input (after a tap input period has been determined). A value of, for example, about 0.3 seconds to about 0.5 seconds is set as the rest determination time (T0).
(Step S614)
A mean value (A) of differences between all the time values (S) stored in the preserved data storage area and the rest determination times (T0) is calculated and stored in themain memory33.
(Step S615)
The following equation (3) is calculated to obtain a value of the rest determination time (T).
T=rest determination time(T0)−A×(rest determination
correction value) (3)
The aforementioned “A” is a value calculated at step S614. The “rest determination correction value” is a time value for adjustment previously set for determining whether or not the time axis is in the rest period.
Instead of the aforementioned Equation (3), “T=A×(rest determination correction value)” may be used. When the mean value (A) of the differences between all the newest time values (S) stored in the preserved data storage area and the rest determination time (T0) is assumed as (A1), the following equation may be used.
T=rest determination time(T0)−A1×(rest determination
correction value)
(Step S616)
The process, Sa=(current time)−(time of the preceding tap), is performed, and then the value of Sa is once stored in themain memory33.
(Step S617)
It is determined whether or not Sa>T holds. As a result of the determination, if Sa>T does not hold, the flow goes back to step S602. If it holds, the flow goes to Step S618. If Sa>T holds, it means that the rest period is longer than is required to be recognized as a command, so that the process is performed at step S618. If Sa>T does not hold, it means to be during the rest period required to be recognized as a command. Therefore, the flow goes back to step S602.
(Step S618)
The tap/rest flag is turned OFF (“1” is stored). That is, the rest period is recognized as one exceeding the period of time required of a command. Accordingly, the “tap rhythm” is input at intervals which cannot be recognized as a command, and a command as a tap input period is not determined. In short, this step corresponds to “NO” in step S24dinFIG. 11, and the command determination process is terminated.
(Step S619)
The process “Sb=(current time)θ(time of the preceding rest)” is performed, and then the value of Sb is once stored in themain memory33. The time of the preceding rest can be calculated by, for example, a process of sequentially storing a time value at which the tap/rest flag is turned “OFF” and a time value at which the tap/rest flag is tuned “ON”.
(Step S620)
It is determined whether or not “Sb>maximum rest time (Tm)” holds. As a result of the determination, if Sb>Tm holds, the flow goes to step S618. If it does not hold, the flow goes back to step S602. The maximum rest time (Tm) is a time value previously set for determining that a rest period continues after a period required to be recognized as a rest period, which is a time for determining whether or not the rest will be followed by another rest. For example, a value ranging from around 0.6 seconds to around 1.2 seconds is set as the maximum rest time (Tm). When the processes from step S620 to step S618 are executed, the rest period is recognized as one exceeding a time required to be recognized as a command. Accordingly, the “tap rhythm” is input at intervals which cannot be recognized as a command, and a command as a tap input period is not determined.
When the tap/rest command determination program P9bis executed in accordance with the procedure shown inFIG. 21, the information about a tap period and a rest period is stored in time sequence order in the command determination table TC2 by the process in step S610. In this regard, the tap period is a period without consideration given to a level of the intensity of input vibration. This means that information relating to rhythm of taps and rests when the player continuously taps the mountingbase8 is stored in the command determination table TC2.
In the embodiment, when the “tap rhythm” generated when the player continuously taps the mountingbase8 matches previously set rhythm, in other words, a line of time sequence order of the tap input period and the rest period matches a previously set array (special input command), the main control program P0 executes game control set for the matching special input command.FIG. 23B shows an example of the data structure when a plurality of types of previously-set special input commands are set as a special input command table (TT2).
As shown inFIG. 23B, the special input command table (TT2) is a data table in which patterns of arrays of information on the tap input period and the rest period serving as individual special input commands, and command execution program names (program start address) for executing game control for the respective special input commands are stored with being organized by identification information on each type of previously-set special input commands.
In the special input command table (TT2) shown inFIG. 23B, when, in the special-input-command identification information (A1), the “tap rhythm” generated when the player continuously taps the mountingbase8 matches “T”, “T”, “R”, “T”, namely, “tap (tap input period)”, “tap (tap input period)”, “rest (rest period)”, “tap (tap input period)” in time sequence, themonitor2 displays a moving image of swimming killifish. As shown in the special input command table (TT2), when the “tap rhythm” when the player continuously taps the mountingbase8 matches “triple, triple, septuple” rhythm (the special input command identification information “A3”), the main control program. P0 performs the process of operating themonitor2 to display a moving image of swimming and jumping whales.
The embodiment relating to the aforementioned game control in consideration of tap rhythm has described an example of control without, in the tap input period, making a determination of a level of the intensity when the player taps the mountingbase8. However, when means for determining an intensity level illustrated in the procedure inFIG. 20 is used, this makes it possible to implement game control in which an intensity level of a tap motion of the player is reflected in tap rhythm.
The embodiments according to the present invention have described an example of effectively using vibration generated by a tap motion of the player for a game. However, the present invention can be applied to a device of operating a liquid crystal display to display various relaxing images with music in response to a pattern of, for example, a motion of tapping a wall or the like in a waiting room of a hospital, a doctor's office or the like, a break room, or the like.
For the controller used in the present invention, an application program for communicating vibration detected by a 3D acceleration sensor via infrared communication is installed on a mobile telephone with a 3D acceleration sensor and an infrared communication function, thereby using the mobile telephone as the controller used in the present invention. The aforementioned embodiments are not intended to unjustly limit the contents of the present invention cited in the claims. Also, the structure described in the embodiments is not alone the indispensable constituent features of the present invention.
EXPLANATION OF REFERENCE NUMERALS- 1 GAME SYSTEM
- 2 MONITOR
- 2aSPEAKER
- 3 GAME DEVICE
- 6 RECEIVER UNIT
- 7 CONTROLLER
- 30 CPU
- 31 MEMORY CONTROLLER
- 32 GPU
- 33 MAIN MEMORY (STORAGE MEANS)
- 51 MICROCOMPUTER
- 52 MEMORY
- 53 RADIO MODULE
- 73 ACCELERATION SENSOR
- 74 VIBRATOR
- P0 MAIN CONTROL PROGRAM
- P3 VIBRATION DETECTION PROGRAM
- P4 NATURAL-VIBRATION-VALUE CALCULATION PROGRAM
- P5 CORRECTION-VALUE CALCULATION PROGRAM
- P6 CORRECTION-VALUE OPERATION CONVERSION PROGRAM
- P8 VIBRATION PATTERN DETERMINATION PROGRAM
- P9 SPECIAL INPUT COMMAND DETERMINATION PROGRAM
- P10 PRESENTATION PROCESSING PROGRAM