Patent Description:
An example of a related art is disclosed in <CIT> (document <NUM>). A game apparatus that changes vibration according to a difference in a displaying manner of an enemy character is disclosed in the document <NUM>.

Moreover, another example of the related art is disclosed in <CIT> (document <NUM>). A configuration of a controller having a vibration portion that is arranged in an interior of a grip portion and generates vibration based on a control signal for an information processing apparatus (game apparatus).

Since the document <NUM> and the document <NUM> do not take into consideration that a plurality of pieces of software are executed at the same time, no consideration is given to a method of presenting vibration in a case where simultaneous presentation of vibration is requested by a plurality of pieces of software.

<CIT>) discloses methods and apparatuses organizing a plurality of haptic output variations into a cohesive semantic framework that uses various information about the alert condition and trigger, application context, and other conditions to provide a system of haptic outputs that share characteristics between related events. In some embodiments, an event class or application class provides the basis for a corresponding haptic output. In some embodiments, whether an alert-salience setting is on provides the basis for adding an increased salience haptic output to the standard haptic output for the alert. In some embodiments, consistent haptics provide for branding of the associated application class, application, and/or context.

<CIT> relates to a method and apparatus for controlling vibration in a portable device. The method includes detecting a user input corresponding to a gesture made on a touch screen by an input device, detecting an action attribute of the portable device corresponding to the user input, determining a first vibration to be output from the input device and a second vibration to be output from the portable device according to the action attribute, and controlling output of the first vibration from the input device and output of the second vibration from the portable device according to the action attribute.

Therefore, it is a primary object of the present invention to provide a novel vibration control system, vibration control apparatus, vibration control program and vibration control method.

Moreover, it is another object of the present invention to provide a vibration control system, vibration control apparatus, vibration control program and vibration control method, capable of appropriately presenting vibration even when being requested simultaneously from a plurality of programs.

A first embodiment is a vibration control system, comprising: a first vibration reception portion, a second vibration reception portion, a sound volume balance setting portion, a first sound reception portion, a second sound reception portion and a vibration control portion a sound control portion. The first vibration reception portion is configured to receive first vibration data that first software generates. The second vibration reception portion is configured to receive second vibration data that second software generates. The sound volume balance setting portion is configured to set a sound volume balance in sound control for the first software and the second software. The first sound reception portion is configured to receive the first sound data. The second sound reception portion is configured to receive the second sound data. The vibration control portion is configured to make, when the second vibration reception portion receives the second vibration data at the same time that the first vibration reception portion receives the first vibration data, a predetermined apparatus or a predetermined terminal connected to the predetermined apparatus vibrate by using either one of the first vibration data and the second vibration data. The sound control portion is configured to output, when the second sound reception portion receives the second sound data at the same time that the first sound reception portion receives the first sound data, at least one of the first sound data and the second sound data while changing an amplitude thereof according to the sound volume balance that is set by the sound volume balance setting portion. That is, as for the sound data, the sound volume is controlled. For example, the sound volume of the software having authority (acquisition right) to acquire input information from input portion such as an input device or controller is set so as to be larger than the sound volume of the software having no acquisition right.

According to the first embodiment, since the predetermined apparatus or the predetermined terminal connected to the predetermined apparatus is made to vibrate by using either one of the first vibration data and the second vibration data when the vibration data are simultaneously received from two pieces of software, it is possible to appropriately present the vibration to the user that holds the predetermined apparatus or the predetermined terminal. Also, since amplitudes of the sound data that are generated from a plurality of pieces of software are controlled according to the set sound volume balance, sound that is to be output in conjunction with the vibration control can be appropriately controlled.

A second embodiment is the vibration control system according to the first embodiment, further comprising a priority setting portion. The priority setting portion is configured to set a priority for indicating a priority level of vibration control for the first software and the second software according to a status of the software, for example. The vibration control portion is configured to use either one of the first vibration data and the second vibration data according to the priority that is set by the priority setting portion.

According to the second embodiment, since the priority for the vibration control is set for the first software and second software, it is possible to appropriately determine according to the priority the vibration data to be used. As a result, the vibration can be appropriately presented.

A third embodiment is a vibration control apparatus, comprising: a first vibration reception portion configured to receive first vibration data that first software generates; a second vibration reception portion configured to receive second vibration data that second software generates; a first sound reception portion configured to receive first sound data that the first software generates, a second sound reception portion configured to receive second sound data that the second software generates; a sound volume balance setting portion configured to set a sound volume balance in sound control for the first software and the second software; a vibration control portion configured to make, when the second vibration reception portion receives the second vibration data at the same time that the first vibration reception portion receives the first vibration data, a predetermined apparatus or a predetermined terminal connected to the predetermined apparatus vibrate by using either one of the first vibration data and the second vibration data; and a sound control portion configured to output, when the second sound reception portion receives the second sound data at the same time that the first sound reception portion receives the first sound data, at least one of the first sound data and the second sound data while changing an amplitude thereof according to the sound volume balance that is set by the sound volume balance setting portion.

A fourth embodiment is a vibration control program executable by a computer, which causes a processor of the computer to perform steps of: a first vibration receiving step receiving first vibration data that is generated by first software; a second vibration receiving step receiving second vibration data that is generated by second software; a sound volume balance setting step setting a sound volume balance in sound control for the first software and the second software; a first sound reception step receiving the first sound data that is generated by the first software; a second sound reception step receiving the second sound data that is generated by the second software; a vibration control step making, when the second vibration data is received in the second vibration receiving step at the same time that the first vibration data is received in the first vibration receiving step, the computer or a predetermined terminal connected to the computer vibrate by using either one of the first vibration data and the second vibration data; and a sound control step making, when the second sound data is received in the second sound receiving step at the same time that the first sound data is received at the first sound receiving step, the sound control portion to output at least one of the first sound data and the second sound data while changing an amplitude thereof according to the sound volume balance that is set by the sound volume balance setting step.

A fifth embodiment is a vibration control method, comprising steps of: (a) receiving first vibration data that first software generates; (b) receiving second vibration data that second software generates; (c) setting a sound volume balance in sound control for the first software and the second software; (d) receiving first sound data that the first software generates; (e) receiving second sound data that the second software generates; (f) making, when the second vibration data is received in the step (b) at the same time that the first vibration data is received in the step (a), a predetermined apparatus or a predetermined terminal connected to the predetermined apparatus vibrate by using either one of the first vibration data and the second vibration data and (g) making, when the second sound data is received in step (e) at the same time that the first sound data is received in step (d), the sound control portion output at least one of the first sound data and the second sound data while changing an amplitude thereof according to the sound volume balance that is set in step (c).

According to the third to fifth embodiments, as similar to the first embodiment, it is possible to appropriately present vibration.

The above described objects and other objects, features, aspects and advantages of the embodiments will become more apparent from the following detailed description when taken in conjunction with the accompanying drawings. controlled in a case where sound output is requested by the program (<NUM>) and the program (<NUM>) simultaneously.

With reference to <FIG>, a non-limiting example game apparatus <NUM> is a predetermined apparatus such as a portable game apparatus, and includes a CPU <NUM>. The CPU <NUM> is connected with a RAM <NUM>, a flash memory <NUM>, a wireless communication module <NUM>, an input device <NUM>, a display driver <NUM>, a digital to analog (D/A) converter <NUM> and a motor driver <NUM>. Moreover, a display device <NUM> is connected to the display driver <NUM>, and a speaker <NUM> is connected to the D/A converter <NUM>. Furthermore, a vibration motor (vibrator) <NUM> is connected to the motor driver <NUM>.

In addition, a case where the portable game apparatus <NUM> is used as an example of an information processing apparatus or information processing terminal will be described in this specification, but a smartphone, a tablet terminal, etc. can be used.

Moreover, in the portable game apparatus <NUM>, a configuration that the input device <NUM> (controller) is attachable to or detachable from a main body apparatus may be adopted. In such a case, when the input device <NUM> is in a state detached from the main body apparatus, the main body apparatus performs wireless communication with the input device <NUM>. On the other hand, when the input device <NUM> is in a state attached to the main body apparatus, the main body apparatus performs wire-communication with the input device <NUM>. Moreover, the motor driver <NUM> and the vibration motor <NUM> are provided in an interior of the input device <NUM>.

Furthermore, it is possible to use not only a portable apparatus or terminal but a stationary game apparatus, personal computer having a game function, etc. In this case, similar to the case where the input device <NUM> is in a state detached from the main body apparatus of the game device <NUM>, the input device <NUM> (controller) is connected to the main body apparatus of the game device <NUM> wire-communicably or wireless-communicably, and input device <NUM> is provided with the motor driver <NUM> and the vibration motor <NUM>. Similarly, the motor driver <NUM> and the vibration motor <NUM> may be provided in an input means connected to personal computer wire-communicably or wireless-communicably.

The CPU <NUM> is in charge of overall control of the game apparatus <NUM>. The RAM <NUM> is a volatile storage device, and is used as a working area and a buffer area of the CPU <NUM>. The flash memory <NUM> is a nonvolatile storage device, and stores various software (programs) that are executable by the game apparatus <NUM>, save data, etc..

However, the software is system software (system program) and application software (application program). For example, the system program is software that performs management, control, etc. of hardware of a computer, and corresponds to a program related to main body functions such as an operating system, a device driver, etc. As the main body function, control of sound volume, control of screen brightness, turn-on/off of a wireless communication function, etc. correspond. Moreover, the application program (information processing program) is software to be used for specific purposes such as game, content reproduction, browser, character practice, language exercise, direction guide, dictionary, drawing, email, word processor, spreadsheet, etc. In the following, when there is no necessity of distinguishing a system program and an application program, a term "program" is simply used.

The wireless communication module <NUM> has a function to access a wireless LAN according to the standard of IEEE802. b/g, for example. Therefore, the CPU <NUM> transmits or receives data to or from other equipment (computers, other game apparatuses10, etc.) via an access point and Internet (network) with using the wireless communication module <NUM>. However, it is also possible to transmit or receive data to or from other equipment directly.

Otherwise, the wireless communication module <NUM> has a function to perform short-distance wireless communication. Specifically, the wireless communication module <NUM> has a function to transmit or receive an infrared signal to or from other equipment (other game apparatuses etc. ) with a predetermined communication system (infrared system, for example), and a function to perform wireless communication with the same or similar kind of game apparatus according to a predetermined communication protocol (multilink protocol, for example). Therefore, the CPU <NUM> can transmit or receive data to or from the same or similar kind of other game apparatuses directly with using the wireless communication module <NUM>. However, instead of the short-distance wireless communication of an infrared system, short-distance wireless communication according to other wireless-communication standards such as Bluetooth (registered trademark) may be performed.

The input device <NUM> includes various kinds of operation buttons, keys or switches. Moreover, a joy stick or/and a slide pad may be included in the input device <NUM>. Furthermore, when the game apparatus <NUM> comprises a touch panel, this touch panel also functions as a part of the input devices <NUM>. For example, the touch panel is provided on the display device <NUM>. However, a touch display that a touch panel is integrally formed with the display device <NUM> may be used.

The display driver <NUM> includes a GPU and a video RAM, and generates in the video RAM, under instructions of the CPU <NUM>, image data for a game screen to be displayed on the display device <NUM>, and outputs the image data to the display device <NUM>. The D/A converter <NUM> converts sound data that is output from the CPU <NUM> into an analog sound signal, thereby to output to the speaker <NUM>.

The motor driver <NUM> drives the vibration motor <NUM> according to instructions of the CPU <NUM>. However, upon acquisition of the vibration data from the program being executed, the CPU <NUM> applies the acquired vibration data to the motor driver <NUM>. The motor driver <NUM> generates a driving signal for driving the vibration motor <NUM> based on the vibration data applied from the CPU <NUM>, and applies the generated driving signal to the vibration motor <NUM>. Therefore, the vibration motor <NUM> operates according to the vibration data from the CPU <NUM>. Accordingly, vibration that is generated by driving the vibration motor <NUM> is conveyed to a user or player (hereinafter, simply called "player") that holds the game apparatus <NUM>.

For example, the vibration motor <NUM> is a linear motor that outputs (vibrates) with a pattern according to an input waveform (vibration waveform) of an analog signal (driving signal) such as a sound signal. However, in this first embodiment, the vibration data is data of a set of a value of a frequency and a voltage value of an amplitude both corresponding to a signal value of the analog signal (vibration signal) at each time point. By being applied with a voltage value indicated by the vibration data so as to increase or decrease at a frequency indicated by the vibration data in accordance with the signal value at each time point of the vibration signal, a position of an internal weight is varied, whereby the linear motor as the vibration motor <NUM> can output with the pattern according to the input waveform.

In addition, although the linear motor is used as the vibration motor <NUM> in this embodiment, there is no necessity of being limited to this, and a piezoelectric element or a voice coil can be used, for example.

Moreover, the vibration data is generated by the CPU <NUM> by executing a program that generates vibration data or by reading vibration data that is stored. Although the vibration data is data about a set of the value of a frequency and the voltage value of an amplitude both corresponding to the vibration waveform (waveform of the analog signal) in this first embodiment, the vibration data may be a signal of a vibration waveform itself, or data obtained by digitizing a vibration waveform. Moreover, the vibration data may be data of a set of values indicating a frequency and an amplitude, different from a set of the value of a frequency and the voltage value corresponding to an amplitude.

Moreover, the electric configuration of the game apparatus <NUM> shown in <FIG> is an example, and should not be limited. For example, an inertia sensor (an acceleration sensor or/and gyro sensor) for detecting a direction (attitude) or/and movement of the game apparatus <NUM> may be provided.

With such the game apparatus <NUM> having such a configuration, during execution of a program (program (<NUM>)) such a game program, another program (program (<NUM>)) such as an email program is concurrently executed, whereby an email can be received while playing the game. Moreover, it is possible to compose and transmit an email as necessary with interrupting the game or without interrupting the game. However, the program (<NUM>) (equivalent to first software) and the program (<NUM>) (equivalent to second software) are examples, and should not be limited.

Moreover, in this specification, as for programs stored in the game apparatus <NUM>, each program is expressed in an identifiable manner using an alphabet (see <FIG>), and among them, two programs that are started (executed) may be expressed as the program (<NUM>) and the program (<NUM>).

When the game apparatus <NUM> is executing an application program (program (<NUM>)) of a game, a game screen is displayed on the display device <NUM> and a sound (music) of the game is output from the speaker <NUM>. Moreover, the vibration motor <NUM> is driven in response to occurrence of a predetermined event. Furthermore, the game apparatus <NUM> concurrently executes an application program (program (<NUM>)) of an email with a game program, and waits for reception of an email or input of an instruction to compose an email.

As described above, if receiving an email while the game is being played, an image (notification image) for notifying that an email is received is displayed on a part of a game screen. The notification image is superimposed (on the front side) on the game screen. Such a notification image is displayed on an upper edge etc. of a display plane of the display device <NUM> with a size smaller than the game screen so as not to disturb the game. At this time, the reception of an email may be notified by a sound or/and vibration not only by the notification image.

In a case where the reception of an email is notified with a sound (notification sound), it is considered that the player can distinguish a game sound and a notification sound from each other. However, in a case where reception of an email is notified with vibration, it is considered that it is difficult for the player to perceive whether vibration is generated due to the occurrence of an event in the game or vibration is generated due to the reception of an email.

Therefore, in this first embodiment, a program to be granted with authority of generating vibration and a program to be granted with authority of outputting sound are determined in accordance with a predetermined rule, so that the vibration is appropriately controlled in a case where vibration generation is requested by the program (<NUM>) and the program (<NUM>) simultaneously, and the sound is appropriately controlled in a case where sound output is requested by the program (<NUM>) and the program (<NUM>) simultaneously.

<FIG> is an illustration view showing a non-limiting example state (first pattern) where a screen of the program (<NUM>) (first image) is displayed on the display device <NUM>. <FIG> is an illustration view showing a non-limiting example state (second pattern) where a screen of the program (<NUM>) (second image) is displayed on a part of the first image that is displayed on the display device <NUM>. <FIG> is an illustration view showing another non-limiting example state (third pattern) where the second image is displayed on a part of the first image that is displayed on the display device <NUM>. <FIG> is an illustration view showing a non-limiting example state (fourth pattern) where the second image is displayed on the display device <NUM> while covering a whole of the first image. That is, in a case shown in <FIG>, the second image is displayed on the front of the first image.

In the first pattern, the program (<NUM>) is executed, and as shown in <FIG>, the first image related to the program (<NUM>) is displayed on the display device <NUM>. For example, the first image is a game screen. In this case, the game is played according to an operation of the player so that the game screen is updated and the game sound is output from the speaker <NUM>. Moreover, when an event occurs in the game, the vibration motor <NUM> is driven.

In the second pattern, the program (<NUM>) is concurrently executed with the program (<NUM>), and as shown in <FIG>, the second image related to the program (<NUM>) is displayed in an upper left portion of the first image. For example, the second image shown in <FIG> is the notification image of an email. Therefore, when the notification image is displayed on a part of the game screen, the notification sound is output from the speaker <NUM>. At this time, the sound volume of the game sound may be reduced. As described above, since it is difficult to perceive the vibration due to the event in the game and the vibration for notifying the reception of email distinguishably, the vibration for notifying the reception of email is not generated. Moreover, the notification image is non-displayed a few or several seconds after the same is displayed. In this case, since the player does not operate with respect to the second image, the program (<NUM>) does not need to receive input information of the operation by the player.

In addition, although a case where it is not necessary for the program (<NUM>) to receive the input information is described in the above-described example, the program (<NUM>) may be made to receive the input information. For example, when the notification image is displayed on a part of the game screen and the notification sound is output from the speaker <NUM>, the input information from the player may be temporarily received by the program (<NUM>) rather than the program (<NUM>). In this case, the operation for the game (program (<NUM>)) is not received until the player performs an input operation of a button depression etc. That is, the program (<NUM>) cannot acquire input information, but the program (<NUM>) acquires input information. During this time period, the game sound is reduced or not output. If a button is operated, the notification image is made to be non-displayed, and then, the program (<NUM>) acquires the input information. This makes it possible for the player to reliably recognize the notification (notification image) related to the program (<NUM>).

In the third pattern, the program (<NUM>) is concurrently executed with the program (<NUM>), and as shown in <FIG>, the second image related to the program (<NUM>) is displayed as a part of the first image to cover substantially a lower half of the first image. For example, the first image shown in <FIG> is a game screen. On the other hand, the second image shown in <FIG> is a display screen of a received mail or a composition screen of reply (transmission) mail. However, a software keyboard is also displayed when the composition screen of reply (transmission) mail is displayed.

In this third pattern, since a half of the first image is substantially covered with the second image, the player can perform an operation on the second image that is displayed on the front, but cannot perform an operation on the first image that is displayed on the back.

In the third pattern, when the player performs an operation on the display screen of the received mail, according to an operation by the player, the display screen may be scrolled, or the composition screen of reply mail may be displayed instead of the display screen. Moreover, in the third pattern, when the player performs an operation on the composition (transmission) screen of reply mail, according to an operation of the player, a destination and a subject may be entered or changed, a body text may be input, or transmitting the reply mail or transmission mail may be instructed. In these cases, a click sound accompanying the operation for an email is output from the speaker <NUM>, and the vibration accompanying the operation for an email is presented from the vibration motor <NUM>. In such a case, the sound of the program (<NUM>) for the game is not output, or the sound volume of the program (<NUM>) is reduced in comparison with the sound volume of the program (<NUM>) for the email is reduced. Moreover, the vibration motor <NUM> is not driven according to the vibration data from the program (<NUM>).

Moreover, in the third pattern, a program (<NUM>) for an arbitrary application and a program (<NUM>) for the setting of a main body function may be executed. In this case, for example, the first image may be an execution screen of the arbitrary application, and the second image may be a setting screen of the main body function. As described above, the main body function is the sound volume, brightness of screen, wireless communication function, etc..

When the player sets the main body function, according to an operation of the player, control of the sound volume, control of the brightness of screen, turn-on/off of the wireless communication function, etc. are performed. In such a case, the click sound accompanying an operation of setting the main body function is output from the speaker <NUM>, and the vibration accompanying an operation of setting the main body function is presented from the vibration motor <NUM>. Since no operation is performed on the arbitrary application at this time, the sound of the program (<NUM>) is not output, or the sound volume of the program (<NUM>) is reduced in comparison with the sound volume of the sound of the program (<NUM>). Moreover, the vibration motor <NUM> is not driven according to the vibration data from the program (<NUM>).

In the fourth pattern, the program (<NUM>) is concurrently executed with the program (<NUM>), and as shown in <FIG>, the second image related to the program (<NUM>) is displayed so as to cover the whole first image related to the program (<NUM>). In addition, a state where only the program (<NUM>) is executed and thus only the second image is displayed on the display device <NUM> is classified into the above-described first pattern.

In the fourth pattern, although the first image is in an invisible state, it is the game screen, for example, and the second image is the display screen of the received mail or the composition screen of the reply (transmission) mail.

In this fourth pattern, no operation is performed on the program (<NUM>). Therefore, the sound of the program (<NUM>) is not output, or the sound volume is reduced in comparison with the sound volume of the sound of the program (<NUM>). Moreover, the vibration motor <NUM> is not driven according to the vibration data from the program (<NUM>).

In the fourth pattern, when the player performs an operation on the display screen of the received mail, according to the operation by the player, the display screen may be scrolled, or the composition screen of reply mail may be displayed instead of the display screen. Moreover, in the fourth pattern, when the player performs an operation on the reply (transmission) mail composition screen, according to the operation of the player, a destination and a subject may be entered or changed, a body text may be input, or transmitting the reply mail or transmission mail may be instructed. In these cases, a click sound accompanying the operation for an email is output from the speaker <NUM>, and the vibration accompanying the operation for an email is presented from the vibration motor <NUM>.

Thus, in this first embodiment, when the vibration data are simultaneously input from two different programs, a program that is to be granted with a priority for indicating a priority level of vibration control (hereinafter, called "vibration control right") is determined according to a predetermined rule (first rule), and when performing the vibration control, the vibration data from the program having been granted with the vibration control right is used. Moreover, when the sound data are simultaneously input from two different programs, one or more programs each to be granted with authority of performing sound output control (sound control) (sound output right) is to be granted are determined according to a second rule different from the first rule, and when granting the sound output right to a plurality of programs, the sound data from respective programs are used while controlling the sound volumes.

In this first embodiment, basically, the vibration control right is granted to a program corresponding to an image displayed on the uppermost part (front most) of the display plane of the display device <NUM>. Therefore, in a case shown in <FIG> (the first pattern), the vibration control right is granted to the program (<NUM>). In this case, authority of acquiring input information from the input device <NUM> (controller) (hereinafter, called "acquisition right") is held by the program (<NUM>). Similarly, in a case shown in <FIG> (the fourth pattern), the program (<NUM>) is granted with the vibration control right. In this case, the acquisition right is held by the program (<NUM>).

However, when a plurality of images (first image and second image) are displayed on the display plane of the display device <NUM> like cases shown in <FIG>, it is determined, according to whether the acquisition right is held by which program, the vibration control right is to be granted to a program corresponding to which image.

The vibration control right is granted to one program out of one or more programs being executed (activated) according to such the first rule. Then, as described later, when receiving a vibration generating request simultaneously from a plurality of programs, the vibration motor <NUM> is driven based on the vibration value from a program having the vibration control right.

Moreover, the sound output right is basically granted to a program being executed. Furthermore, in a case where there are plurality of programs each being executed, the sound output right is granted to each program being executed, and balance information of sound volume for controlling the sound volumes of the sound data that are input from respective programs is set.

Therefore, in a case shown in <FIG> (the first pattern), the sound output right is granted to the program (<NUM>). In this case, the sound data of the program (<NUM>) is output to the speaker <NUM> through the D/A converter <NUM>.

Moreover, in cases shown in <FIG> (the second pattern - the fourth pattern), the sound output right is granted to the program (<NUM>) and the program (<NUM>). In these cases, the balance information of sound volume is set based on the acquisition right as an example. The balance information of sound volume is set with a ratio (for example, <NUM>:<NUM>) of the sound volume of the sound data of the program having the acquisition right and the sound volume of the sound data of the program not having the acquisition right. Moreover, the balance information of sound volume may be set, without relation to the acquisition right, by instructing how much the volume is controlled for each program. For example, the sound volume may be maintained as it is (without controlling) as for the sound data of the program (<NUM>), and the sound volume may be controlled to <NUM> percents (%) as for the sound data of the program (<NUM>).

When the sound output right is granted to one or more programs each being executed (activated) according to such the second rule, and when the sound output right is granted to a plurality of programs, according to such the second rule, the balance information of sound volume is further set.

In addition, although the second rule for setting both the sound output right and the balance information of sound volume is different from the first rule for setting the vibration control right, the same rule may be adopted.

<FIG> is a functional block diagram showing a non-limiting example vibration control function of the game apparatus <NUM>. A plurality of programs are stored in the game apparatus <NUM>. In the example shown in <FIG>, a program A, a program B and a program C are stored in the game apparatus <NUM>.

The program A - program C stored in the game apparatus <NUM> include processing that presents vibration, and in case of presenting the vibration, vibration data is input to a vibration control process together with own identification information (program ID). A manager manages a start (execution), termination, status transition, etc. of each program, and notifies the program ID having the vibration control right to the vibration control process. However, the manager determines a program to be granted with the vibration control right according to the above-described first rule. The vibration control process outputs a control signal (vibration value) based on the vibration data that is input together with the program ID of the program that has the vibration control right to a motor driver <NUM> when the vibration data are simultaneously input from a plurality of (two, in the first embodiment) programs. The motor driver <NUM> drives the vibration motor <NUM> based on the vibration data from the program having the vibration control right.

Next, a sound output control function in the game apparatus <NUM> will be described. <FIG> is a functional block diagram showing a non-limiting example sound output control process of the game apparatus <NUM>. The sound control process is performed separately from the above-described vibration control process. A program A - program C also include sound output processing that outputs a sound (voice, music), and when outputting the sound, sound data is input to the sound control process together with an own identification information (program ID). A manager notifies to the sound control process the balance information of sound volume together with the program ID of the program that has a priority (sound output right) for control of sound output (sound control). However, the manager determines a program to be granted with the sound output right according to the above-described second rule. That is, basically, the sound output right is granted to the program being executed, and when executing a plurality of programs, the balance information of sound volume for controlling the sound volume of the sound data that are input from respective programs is set. The sound control process controls, based on the balance information of sound volume, the sound volumes of the sound data from the respective programs when receiving sound output requests simultaneously from a plurality of (two) programs, that is, when two pieces of sound data are input, and outputs sound data obtained by mixing the controlled sound data to the D/A converter <NUM>. Therefore, a voice (sound) that is output from the speaker <NUM> can be heard by the player.

<FIG> is an illustration view showing a non-limiting example memory map <NUM> of the RAM <NUM> shown in <FIG>. As shown in <FIG>, the RAM <NUM> includes a program storage area <NUM> and a data storage area <NUM>. Various kinds of programs are stored in the program storage area <NUM>. The various programs are partly or wholly read from the flash memory <NUM> and stored in the RAM <NUM>, at a proper timing after a power source is supplied to the game apparatus <NUM>.

In addition, instead of the flash memory <NUM>, the various programs may be acquired (downloaded) from a memory or optical disk attachable/detachable to or from the game apparatus <NUM>, and when the game apparatus <NUM> is provided with a function of communication with other information processing apparatuses (computers), the various programs may be acquired directly or via a network from the other information processing apparatus.

As shown in <FIG>, the program storage area <NUM> is stored with a main processing program 302a, an image generation program 302b, an image display program 302c, a communication program 302d, an operation detection program 302e, a vibration control program 302f, a sound output control program <NUM>, a first program <NUM>, a second program 302i, a third program 302j, etc..

The main processing program 302a is a program (operating system, for example) for processing a main routine of an operation of the game apparatus <NUM>. The image generation program 302b is a program for generating image data corresponding to images to be displayed on the display device <NUM> with using image generation data 304b including polygon data, texture data, etc. The image display program 302c is a program for outputting the image data generated according to the image generation program 302b to the display device <NUM>.

The communication program 302d is a program for performing communication with other game apparatuses <NUM> or computers. The operation detection program 302e is a program for detecting operation data from the input device <NUM> so as to store the operation data in an operation data buffer 304a.

The vibration control program 302f is a control program for performing drive control of the vibration motor <NUM> with using the vibration data that is input from the first program <NUM>, the second program 302i or the third program 302j having the vibration control right. Moreover, the vibration control program 302f includes a management program that manages a start (execution), termination and status transition of the system program and the application program and determines the system program and the application program to be granted with the vibration control right.

The sound output control program <NUM> is a control program for control (sound output control) that outputs a sound (voice, music) with using the sound data that is input from at least one of the first program <NUM>, the second program 302i and the third program 302j having the sound output right. Moreover, the sound output control program <NUM> includes a management program that manages a start (execution), termination and status transition of the system program and the application program, and determines the system program and the application program to be granted with the sound output control right, and sets the balance information of sound volume.

Each of the first program <NUM> - third program 302j is a system program or an application program. The first program <NUM> - third program 302j correspond to the program A - program C shown in <FIG> and <FIG>, and include the processing that generates vibration and the processing that outputs a sound.

In addition, although illustration is omitted, the program storage area <NUM> is further stored with a save program for saving, in the flash memory <NUM>, data generated by executing the first program <NUM> - third program 302j etc..

Moreover, although the first program <NUM> - the third program 302j are stored in the program storage area <NUM>, it is sufficient that at least one program is stored, and four or more programs may be stored.

The data storage area <NUM> is stored with the operation data buffer 304a, a vibration data buffer 304b, a sound data buffer 304c, the image generation data 304d, a vibration control right data 304e, a sound output right data 304f, balance information data <NUM>, etc..

The operation data buffer 304a is stored with the operation data detected by the operation data detection program 302e according to time series. The vibration data buffer 304b is stored with the vibration data (program ID is added) that is input from one or more programs being executed. The sound data buffer 304c is stored with the sound data (program ID is added) that is input from one or more programs being executed.

The image generation data 304b is data for generating image data corresponding to images (screens) to be displayed on the display device <NUM>, such as polygon data, texture data, etc. The vibration control right data 304e is data about a program ID indicative of one program having the vibration control right among one or more programs being executed. The sound output control right data 304f is data about a program ID indicative of one or more programs having the sound output control right among one or more programs being executed. The balance information data <NUM> is data on balance information (ratio or rate) for controlling the balance of sound volume of the sound data from a plurality of programs each having the sound output right.

Although illustration is omitted, the data storage area <NUM> is stored with other data necessary for controlling the operation of the game apparatus <NUM>, and provided with counters (timers) required necessary for controlling the operation of the game apparatus <NUM>.

<FIG> is a flow chart showing non-limiting example vibration control right setting processing of the CPU <NUM> shown in <FIG>. The CPU <NUM> starts the setting processing of the vibration control right in response to a predetermined timing that the application containing processing that presents vibration is started, that a predetermined event occurs in the application concerned or the like.

As shown in <FIG>, if the vibration control right setting processing (processing by the manager) is started, the CPU <NUM> grants, in a step S1, an acquisition right of an input from the input device <NUM> and a vibration control right to the program (<NUM>) that is executed alone. Here, the CPU <NUM> stores the vibration control right data 304e for the identification information indicative of the program (<NUM>) to the data storage area <NUM>. In the following, this is true for a case of granting the vibration control right.

In a next step S3, it is determined whether the second program (<NUM>) is executed. If "NO" is determined in the step S3, that is, if the second program (<NUM>) is not executed, it is determined, in a step S5, whether the program (<NUM>) is being executed.

If "NO" is determined in the step S5, that is, if the program (<NUM>) is ended, the vibration control right setting processing is terminated. On the other hand, if "YES" is determined in the step S5, that is, if the program (<NUM>) is being executed, the process returns to the step S1.

Moreover, if "YES" is determined in the step S3, that is, if the second program (<NUM>) is executed, it is determined, in a step S7, whether a screen of the second program (<NUM>) is displayed on a part of a screen of the program (<NUM>).

If "NO" is determined in the step S7, that is, if the screen of the program (<NUM>) is displayed forefront so as to cover the screen of the program (<NUM>) as in the fourth pattern shown in <FIG>, the process returns to the step S3 after granting the vibration control right to the second program (<NUM>) in a step S9.

On the other hand, if "YES" is determined in the step S7, that is, if the screen of the second program (<NUM>) is displayed on a part of the screen of the program (<NUM>), it is determined, in a step S11, whether the program (<NUM>) has the acquisition right of an input of the input device <NUM>.

If "YES" is determined in the step S11, that is, if the program (<NUM>) has the acquisition right of an input of the input device <NUM> as in the third pattern shown in <FIG>, the process proceeds to the step S9. On the other hand, if "NO" is determined in the step S11, that is, if the program (<NUM>) has the acquisition right of an input of the input device <NUM> as in the second pattern shown in <FIG>, the vibration control right is granted to the program (<NUM>) in a step S13, and then, the process returns to the step S3.

<FIG> is a flow chart showing non-limiting example vibration control processing (vibration control process) of the CPU <NUM> shown in <FIG>. The vibration control processing is started when the power source of the game apparatus <NUM> is turned on, or when any program (the program A, B or C, in <FIG>) is started.

As shown in <FIG>, if the vibration control processing is started, in a step S31, the CPU <NUM> refers to the vibration control right data 304e, thereby to confirm a program having the vibration control right. In a next step S33, it is determined whether the vibration data from the program (<NUM>) is received. If "NO" is determined in the step S33, that is, if the vibration data is not received from the program (<NUM>), the process proceeds to a step S39. On the other hand, if "YES" is determined in the step S33, that is, if the vibration data is received from the program (<NUM>), it is determined, in a step S35, whether the program (<NUM>) has the vibration control right.

If "NO" is determined in the step S35, that is, if the program (<NUM>) does not have the vibration control right, the process proceeds to the step S39. On the other hand, if "YES" is determined in the step S35, that is, if the program (<NUM>) has the vibration control right, the process proceeds to a step S45 after outputting the vibration data from the program (<NUM>) to the motor driver <NUM> in a step S37.

In the step S39, it is determined whether the vibration data from the program (<NUM>) is received. If "NO" is determined in the step S39, that is, if the vibration data is not received from the program (<NUM>), the process proceeds to the step S45. On the other hand, if "YES" is determined in the step S39, that is, if the vibration data is received from the program (<NUM>), it is determined, in a step S41, whether the program (<NUM>) has the vibration control right.

If "NO" is determined in the step S41, that is, if the program (<NUM>) does not have the vibration control right, the process proceeds to the step S45. On the other hand, if "YES" is determined in the step S41, that is, if the program (<NUM>) has the vibration control right, the process proceeds to the step S45 after outputting the vibration data from the program (<NUM>) to the motor driver <NUM> in a step S43.

In the step S45, it is determined whether it is to be ended. Here, the CPU <NUM> determines whether execution of all the application programs is ended, or the power source of the game apparatus <NUM> is truned off. If "NO" is determined in the step S45, that is, if it is not to be ended, the process returns to the step S31. On the other hand, if "YES" is determined in the step S45, that is, if it is to be ended, the vibration control processing is terminated.

<FIG> is a flow chart showing non-limiting example sound output right setting processing of the CPU <NUM> shown in <FIG>. In the following, although the sound output right setting processing will be described, the same contents as those the vibration control right setting processing shown in <FIG> will be briefly described.

The CPU <NUM> starts the sound output right setting processing in response to a predetermined timing that the program containing processing that outputs sound is started. As shown in <FIG>, if the sound output right setting processing is started, the CPU <NUM> grants the acquisition right of an input of the input device <NUM> and the sound output right to the program (<NUM>) that is executed alone. Here, the CPU <NUM> stores the sound output right data 304f for the identification information indicative of the program (<NUM>) to the data storage area <NUM>. In the following, this is true for a case of granting the sound output right.

In a next step S63, it is determined whether the second program (<NUM>) is executed. If "NO" is determined in the step S63, it is determined, in a step S65, whether the program (<NUM>) is being executed. If "NO" is determined in the step S65, the sound output right setting processing is terminated. On the other hand, if "YES" is determined in the step S65, the process returns to the step S61.

Moreover, if "YES" is determined in the step S63, it is determined, in a step S67, whether a screen of the second program (<NUM>) is displayed on a part of a screen of the program (<NUM>). If "NO" is determined in the step S67, the process returns to the step S63 after granting the acquisition right of an input of the input device <NUM> and the sound output right to the second program (<NUM>) in a step S69. On the other hand, if "YES" is determined in the step S67, in a step S71, the CPU grants the acquisition right to the program (<NUM>) or the program (<NUM>) and the sound output right to the program (<NUM>) and the program (<NUM>). In order to manage a start, termination, status transition, etc. of the program, the CPU <NUM> grants the acquisition right to the program (<NUM>) or the program (<NUM>) in the step S71 according to the content to be managed. Then, in the step S73, the balance information of sound volume is set, and the process returns to the step S63. In the step S73, the balance information data <NUM> is stored in the data storage area <NUM>.

<FIG> and <FIG> are flow charts showing non-limiting example sound control processing (sound control process) of the CPU <NUM> shown in <FIG>. The sound control processing is started when the power source of the game apparatus <NUM> is turned on, or when any application program is started. In the following, although the sound control processing will be described, the same contents as those of the vibration control right setting processing shown in <FIG> will be briefly described.

As shown in <FIG>, if the sound control processing is started, in a step S91, the CPU <NUM> refers to the sound output right data 304f, thereby to confirm a program that has the sound output right. In a next step S93, it is determined whether the sound data from the program (<NUM>) is received.

If "YES" is determined in the step S93, it is determined, in a step S95, whether the sound data from the program (<NUM>) is received. If "NO" is determined in the step S95, it is determined, in a step S109 shown in <FIG>, the program (<NUM>) has the sound output right. If "NO" is determined in the step S109, the process proceeds to a step S107 of <FIG>. On the other hand, if "YES" is determined in the step S109, the sound data from the program (<NUM>) is output to the D/A converter <NUM> in a step S111, and the process proceeds to the step S107.

On the other hand, if "YES" is determined in the step S95, it is determined, in a step S97, whether the program (<NUM>) and the program (<NUM>) each having the sound output right. If "NO" is determined in the step S97, that is, if at least one of the program (<NUM>) and the program (<NUM>) does not have the sound output right, it is determined, in a step S113 shown in <FIG>, whether the program (<NUM>) has the sound output right. If "NO" is determined in the step S113, the process proceeds to a step S103 of <FIG>. On the other hand, if "YES" is determined in the step S113, the sound data from the program (<NUM>) is output to the D/A converter <NUM> in a stepS115, and the process proceeds to the step S107.

Moreover, if "YES" is determined in the step S97, that is, if the program (<NUM>) and the program (<NUM>) have the sound output right, in a step S99, the balance of the sound volume of the sound data from the program (<NUM>) and the sound volume of the sound data from the program (<NUM>) are controlled based on the balance information of sound volume indicated by the balance information data <NUM>, thereby to output the sound data obtained by mixing two pieces of sound data that the sound volumes are controlled to the D/A converter <NUM>, and the process proceeds to the step S107.

Moreover, if "NO" is determined in the step S93, it is determined, in a step S101, whether the sound data from the program (<NUM>) is received. If "NO" is determined in the step S101, the process proceeds to the step S107. On the other hand, if "YES" is determined in the step S101, it is determined, in the step S103, whether the program (<NUM>) has the sound output right. If "NO" is determined in the step S103, the process proceeds to the step S107. On the other hand, if "YES" is determined in the step S103, the sound data from the program (<NUM>) is output to the D/A converter <NUM> in a step S105, and the process proceeds to the step S107.

In the step S107, it is determined whether it is to be ended. If "NO" is determined in the step S107, the process returns to the step S91. On the other hand, if "YES" is determined in the step S107, that is, if it is to be ended, the sound control processing is terminated.

According to this first embodiment, when there are a vibration generation request and a sound output request from a plurality of programs, the vibration is generated based on the vibration control right that is granted to the program, and the sound is generated based on the sound output right and the balance information of sound volume that are granted to the program, it is possible to appropriately present not only the vibration but also the sound.

In addition, it is described in this first embodiment that if the vibration data are simultaneously input when two programs (program (<NUM>) and program (<NUM>)) among the program A, the program B and the program C are being executed, that is, if the vibration generation requests are simultaneously received, the vibration motor is driven based on the vibration data from the program (<NUM>) or the program (<NUM>) that is granted with the vibration control right, it does not need to be limited to this. When three or more programs are being executed, a priority level of vibration control is set to each program according to a predetermined rule, and if the vibration generation requests are simultaneously received from a plurality of programs, the vibration motor is driven based on the vibration data from a program having the highest priority level.

Moreover, although the vibration motor is driven based on the vibration data from the program that holds the vibration control right in this first embodiment, it does not need to be limited to this. In some cases, the vibration control right may be granted to a plurality of programs, a ratio of mixing vibration is set, and vibration data from the plurality of programs each having vibration control right are mixed at the ratio being set, thereby to drive the vibration motor with the mixed vibration data.

Further, although the first embodiment is described for only a case where the sound (voice and music) is output from the speaker <NUM>, the sound (voice and music) may be output to an earphone through an earphone jack.

Furthermore, in the first embodiment, when there are requests to output the sound data from a plurality of programs, the sound volume(s) of the sound data of the program having the acquisition right and the sound volume(s) of the sound data of the program not having the acquisition right are controlled, and these sound data are mixed and the mixed sound data is output to the D/A converter <NUM>, but should not be limited to this. For example, it may be configured to fade-in the sound data that is input from the program having the acquisition right and to fade-out the sound data that is input from the program not having acquisition right. In such a case, in the sound control process, the sound volume of the sound data to be faded-in and the sound volume of the sound data to be faded-out are controlled, and these the sound data are mixed, thereby to output the mixed sound data to the D/A converter <NUM>. However, the program to be faded-in and the program to be faded-out are notified to the sound control process from the manager.

Moreover, in the first embodiment, a case where both vibration generation and sound output are performed was described, but it is also possible to perform only the vibration generation or the sound output.

The second embodiment is the same or similar to the first embodiment except that a game apparatus <NUM> of the second embodiment is a stationary game apparatus, and except that a controller <NUM> is communicably connected to a main body of the game apparatus <NUM> instead of the input device <NUM>, and vibration is generated in the controller <NUM>, and therefore, a duplicate description will be omitted in the following.

As shown in <FIG>, a predetermined terminal like the controller <NUM> is connected to the game apparatus <NUM> communicably, and the television receiver <NUM> is also connected to the game apparatus <NUM>. The game apparatus <NUM>, a plurality of controllers <NUM> and the television receiver <NUM> are called a game system <NUM> collectively. Moreover, when it is necessary to distinguish between the two controllers <NUM>, one controller <NUM> may be referred to as a first controller 200a, and the other controller <NUM> may be referred to as a second controller 200b.

In the second embodiment, in order to generate vibration in the controller <NUM>, the motor driver <NUM> and the vibration motor <NUM> shown in <FIG> are provided in the controller <NUM>. In addition, although two controllers <NUM> are communicably connected to the game apparatus <NUM>, the number of the controllers <NUM> may be one (<NUM>) or three (<NUM>) or more.

In the game system <NUM> shown in <FIG>, since one or more controllers <NUM> are connected to the game apparatus <NUM> wireless-communicably, a controller communication module <NUM> for performing wireless communication with the controller <NUM> is provided in the game apparatus <NUM>. For example, the controller communication module <NUM> performs wireless communication according to a format of Bluetooth (registered trademark). However, wireless communication according to another format such as Wi-Fi or an infrared system may be performed. As shown in <FIG>, in the second embodiment, operation data is transmitted to the game apparatus <NUM> from the controller <NUM>, and vibration data is transmitted to the controller <NUM> from the game apparatus <NUM>. That is, the game system <NUM> functions also as a vibration control system.

In addition, although that game apparatus <NUM> is made to perform wireless communication with the controller <NUM> in the example shown in <FIG>, wire communication may be performed.

Moreover, in the game system <NUM> shown in <FIG>, since the game apparatus <NUM> is connected to the television receiver <NUM>, the display device <NUM> of the game apparatus <NUM> is omitted and an AV-IC <NUM> is provided. The AV-IC <NUM> outputs image (video) data that is input from the display driver <NUM> and sound data that is input from the CPU <NUM> to the television receiver <NUM>. Therefore, a screen of a program executed in the game apparatus <NUM> is displayed on a television monitor, and voice (sound) generated during execution of the program is output from a speaker of the television receiver <NUM>.

<FIG> is a block diagram showing a non-limiting example electric configuration of the controller <NUM> shown in <FIG>. As shown in <FIG>, the controller <NUM> includes a controller control portion <NUM>, and a wireless communication module <NUM>, an input device <NUM> and a motor driver <NUM> are connected to the controller control portion <NUM>. Moreover, a vibration motor <NUM> is connected to the motor driver <NUM>.

The controller control portion <NUM> is a general-purpose microcomputer, for example, and includes circuitry components, such as a processor, a memory, etc. The processor included in the controller control portion <NUM> controls transmission and reception of data to and from the game apparatuses <NUM>. Moreover, identification information for identifying the controller <NUM> is stored in a ROM provided in the controller control portion <NUM>.

The wireless communication module <NUM> is a communication circuitry for performing communication with the controller communication module <NUM> provided in the game apparatus <NUM>, and the communication is performed according to the format of Bluetooth (registered trademark) that is the same as those of the controller communication module <NUM>. However, when the controller communication module <NUM> performs wireless communication according to a further format, as for the wireless communication module <NUM>, it is necessary to use a module capable of performing similarly wireless communication according to the further format.

Although illustration is omitted, the input device <NUM> includes various kinds of operation buttons or switches, a joystick or/and slide pad that are provided on the controller <NUM>, and inputs operation data according to an operation by the player to the controller control portion <NUM>. The controller control portion <NUM> transmits the operation data that is input from the input device <NUM> to the game apparatus <NUM> by using the wireless communication module <NUM> at the timing of every predetermined time. The identification information of the controller <NUM> is added to the operation data.

Moreover, the vibration data that is transmitted from the game apparatus <NUM> is received by the controller communication module <NUM>, and is input to the controller control portion <NUM>. The controller control portion <NUM> outputs the input vibration data to the motor driver <NUM>. The motor driver <NUM> generates a drive signal based on the vibration data, and applies the generated drive signal to the vibration motor <NUM>. Therefore, the vibration motor <NUM> operates according to the vibration data. Accordingly, vibration generated by driving the vibration motor <NUM> is conveyed to the player that holds the controller <NUM>.

In addition, the vibration data to be transmitted to the controller <NUM> is the same as the vibration data that is output from the CPU <NUM> (vibration control process) of the game apparatus <NUM>.

<FIG> is a functional block diagram showing a non-limiting example vibration control function of the game apparatus <NUM> in the second embodiment. In the second embodiment, since a plurality of controllers <NUM> are connected, a program inputs to the vibration control process the identification information of a target controller to vibrate (to transmit the vibration data) in addition to the program ID and the vibration data. The vibration control process transmits the vibration data of a program corresponding to the program ID notified by the manager to the first controller 200a or/and the second controller 200b. The controller <NUM> of a destination for the vibration data is determined according to the target controller that is input to the vibration control process from the program.

However, the identification information of the controller <NUM> is transmitted (notified) to the game apparatus <NUM> from the controller <NUM> when the controller <NUM> is connected to the game apparatus <NUM> (link processing).

Although illustration is omitted, also in the second embodiment, the vibration control right setting processing is executed according to the flow chart shown in <FIG>. Moreover, also in the second embodiment, the vibration control processing is executed according to the flow chart shown in <FIG>. As described above, the controller <NUM> of the target that presents the vibration is designated from the program.

According to the second embodiment, when vibrating the controller communicably connected to the game apparatus, it is possible to appropriately present the vibration like the first embodiment.

In addition, although a case where a stationary type game apparatus is used in the second embodiment, if a motor driver and a vibration motor are provided in the controller (input device), an arcade game, a personal computer having a game function, etc. are also can be used.

Claim 1:
A vibration control system (<NUM>, <NUM>) in a predetermined apparatus, comprising:
a first vibration reception portion (<NUM>, S33) configured to receive first vibration data that first software generates; when executed by the predetermined apparatus;
a second vibration reception portion (<NUM>, S39) configured to receive second vibration data that second software generates; when executed by the predetermined apparatus;
a sound volume balance setting portion (<NUM>, S73) configured to set a sound volume balance in sound control for the first software and the second software;
a first sound reception portion (<NUM>, S93) configured to receive the first sound data the first software generates; when executed by the predetermined apparatus;
a second sound reception portion (<NUM>, S95, S101) configured to receive the second sound data the second software generates; when executed by the predetermined apparatus;
a vibration control portion (<NUM>, S37, S43) configured to make, when the second vibration reception portion (<NUM>, S39) receives the second vibration data at the same time that the first vibration reception portion (<NUM>, S33) receives the first vibration data, the predetermined apparatus (<NUM>) or a predetermined terminal (<NUM>, <NUM>) connectable to the predetermined apparatus (<NUM>) vibrate by using either one of the first vibration data and the second vibration data; and
a sound control portion (<NUM>, S99) configured to output, when the second sound reception portion (<NUM>, S95, S101) receives the second sound data at the same time that the first sound reception portion (<NUM>, S93) receives the first sound data, at least one of the first sound data and the second sound data while changing an amplitude thereof according to the sound volume balance that is set by the sound volume balance setting portion (<NUM>, S73).