# Patent

## Title
Information processing apparatus and computer readable storage medium

## Abstract

A player can change the direction of the right hand of a character object, or extend and retract the right arm of the character object, by changing the direction of the core unit 70. The player can change the direction of the left hand of the character object, or extend and retract the left arm of the character object by changing the direction of the subunit 76. The player can retract and extend a leg of the character object, by shifting the center of gravity in the front-back direction when the player is standing on the load controller 36.

## Background
CROSS REFERENCE TO RELATED APPLICATION
The disclosure of Japanese Patent Application No. 2008-304822, filed Nov. 28, 2008, is incorporated herein by reference.
FIELD
The technology herein relates to an information processing apparatus and a computer readable storage medium; and more specifically to an information processing apparatus and a computer readable storage medium which are capable of causing a character object displayed on a display apparatus to move in response to a user operation.
BACKGROUND AND SUMMARY
Conventionally, a game that uses a combination of input means operated by hand and input means operated by foot has been known.
For example, patent document 1 (Japanese Laid-Open Patent Publication No. 2008-49117) discloses an information processing apparatus that includes a hand input unit having an inclination sensor, and mat unit having a foot switch. According to this information processing apparatus, the hand input unit is operated by hand and the mat unit is operated by a foot stepping motion.
Furthermore, non-patent document 1 (Nintendo Co., Ltd. “Aerobic exercise: Rhythm boxing”, search result of Oct. 27, 2008, internet URL: www.nintendo.co.jp/wii/rfnj/training/aerobics/aerobics07.html) discloses a game apparatus that includes a controller with a built-in acceleration sensor, and a board having a built-in load sensor. According to this game apparatus, the controller is operated by being held in hand, and the board is operated by placing a foot thereon.
However, according to the invention in patent document 1, a way of holding the hand input unit by a player is judged whether it is identical to a way of holding the hand input unit by a motion instructing character displayed on a screen, based on inclination information from the inclination sensor. And if the hand input unit is held by the player in a wrong direction, an instruction is given to the player to correct the way of holding. As a result, there is a problem in which only an operation instructed in the screen is allowed, and there is a small degree of freedom for operation. Furthermore, patent document 1 discloses, for the operation of a foot switch provided within the mat unit using the left and the right foot placed on the mat unit, a disposition of two foot-switches ([0026]), or four foot-switches in a straight line ([0162], FIG. 31). However, only on or off of the foot switches is detected, and there is a small range of detectable values. The invention in patent document 1 does not provide a sensor that detects a load, and does not cause the character to conduct a variety of motions in response to a large range of load values detected by the sensor.
Furthermore, according to the invention in non-patent document 1, a player moves the hand-held controller in a predetermined direction as if throwing a punch, following a motion by a trainer displayed on a screen, thus, only the predetermined operation instructed on the screen is allowed and cannot cause the character to conduct a variety of motions in response to motions of the controller, therefore, the invention in non-patent document 1 has a small degree of freedom. Additionally, the foot operation on the board is one that moves a predetermined foot off the board following a motion by the trainer displayed on the screen, thus, only the predetermined operation is allowed, therefore the invention in non-patent document 1 has a small degree of freedom.
Hence, an objective of certain example embodiments is to provide an information processing apparatus and a computer readable storage medium, which are capable of achieving a diverse and complicated operation intuitively, by having operating means that detects motion and operating means that detects load.
Furthermore, another objective of certain example embodiments is to provide a game apparatus and a computer readable storage medium, which are highly entertaining when played.
In order to achieve at least one of the above objectives, the following configuration is adopted in certain example embodiments. Reference numerals in parenthesis and supplementary explanations merely describe one instance of a correspondence relationship with later-described embodiments, in order to help in their understanding and do not limit the scope of the current invention in any way.
In certain example embodiments, an information processing apparatus includes: a display apparatus (34), first operating means (70), second operating means (76), third operating means (36), display control means (40), first attitude calculation means (40, S27), second attitude calculation means (40, S47), load detection means (36b), first motion instructing means (40, S11), second motion instructing means (40, S12), and third motion instructing means (40, S13). The display control means displays a character object on the display apparatus. The first attitude calculation means calculates the attitude of the first operating means. The second attitude calculation means calculates the attitude of the second operating means. The load detection means detects a load applied to the third operating means. The first motion instructing means causes the character object to conduct one or more motions among a plurality of motions, in response to the attitude of the first operating means calculated by the first attitude calculation means. The second motion instructing means causes the character object to conduct one or more motions among a plurality of motions, in response to the attitude of the second operating means calculated by the second attitude calculation means. The third motion instructing means causes the character object to conduct one or more motions among a plurality of motions, in response to a load applied to the third operating means and detected by the load detection means.
With this, it is possible for a user (operator) to cause the character object to conduct a variety of motions intuitively, by having the user (operator) incline the first operating means and the second operating means, and apply a load to the third operating means.
The first attitude calculation means may calculate an inclination direction of the first operating means based on a value obtained from an acceleration sensor (701) built into the first operating means. The second attitude calculation means may calculate an inclination direction of the second operating means based on a value obtained from an acceleration sensor (761) built into the second operating means. The first motion instructing means may cause the character object to conduct two different motions in each of the following cases: when the inclination direction of the first operating means is an inclination direction about a first axis, and when the inclination direction is about a second axis which is different from the inclination direction about the first axis. The second motion instructing means may cause the character object to conduct two different motions in each of the following cases: when the inclination direction of the second operating means is an inclination direction about a third axis, and when the inclination direction is about a fourth axis which is different from the inclination direction about the third axis.
With this, it is possible for the user to cause the character object to conduct a variety of motions intuitively.
The load detection means may have at least three load sensors (36b), and the third motion instructing means may cause the character object to conduct two different motions in each of the cases, when a load value detected by the load sensor is in a first state and when the load value detected by the load sensor is in a second state.
With this, it is possible for the user to cause the character object to conduct a variety of motions intuitively.
The load detection means: may have at least three load sensors (36b), and the third motion instructing means may select at least one group that includes at least one load sensor among the at least three load sensors (e.g. a group that consists of two load sensors positioned on the right side of the player, or a group that consists of two load sensors positioned on the left side of the player); may calculate, a sum of load values detected by the load sensors included in each group; and may control a fourth motion of the character object (S65, S69) based on at least one sum of load values of a group. The third motion instructing means may further select, among the at least three load sensors, at least one other group which is different from the above described group (e.g. a group that consists of two load sensors positioned in front of the player, or a group that consists of two load sensors positioned in the back of the player); may calculate each sum of load values detected by the load sensors included in each of the selected groups; and may control a fifth motion of the character object (S76), which is a motion different from the fourth motion, based on at least one sum of a selected groups.
With this, it is possible for the user to cause the character object to conduct a variety of motions intuitively. Especially, by using the third operating means, at least two types of motion instructions can be inputted simultaneously.
At least one among the first attitude calculation means, the second attitude calculation means, or the load detection means may cause the character object to conduct another additional motion as a result of a combination of operation buttons (B button of FIG. 14, Z button of FIG. 17).
With this, the user can conduct further diverse and complicated operations.
A motion conducted by the first motion instructing means may be a motion associated with a first part (right hand) of the character object, a motion conducted by the second motion instructing means may be a motion associated with a second part (left hand) of the character object, and a motion conducted by the third motion instructing means may be a motion associated with a third part (foot) of the character object.
With this, the user can control a complicated motion of the character object easily and intuitively by using the first operating means, the second operating means, and the third operating means.
The first operating means may be operated by the right hand of the player, the second operating means may be operated by the left hand of the player, and the third operating means may be operated by a foot of the player. Furthermore, the first motion instructing means may be associated with a motion of the right hand of the character object, the second motion instructing means may be associated with a motion of the left hand of the character object, and the third motion instructing means may be associated with a motion of a foot of the character object.
With this, the user can operate the character object intuitively since the character object moves in coordination with an actual movement by the user.
The information processing apparatus may further include: first compensation means for compensating the attitude of the first operating means calculated by the first attitude calculation means, in response to a load applied to the third operating means and detected by the load detection means; and second compensation means for compensating the attitude of the second operating means calculated by the second attitude calculation means, in response to a load applied to the third operating means and detected by the load detection means.
With this, it is possible for an input operation to be as intended by the user, by taking into consideration the body position of the user.
The information processing apparatus may further include third compensation means for compensating a load applied to the third operating means and detected in a detection result of the load detection means, in response to an attitude calculated by the first attitude calculation means and/or the second attitude calculation means.
With this, it is possible for an input operation intended by the user, by taking into consideration of the body position of the user.
In certain example embodiments, an information processing apparatus includes the display apparatus (34), the first operating means (70), the second operating means (76), and the third operating means (36). In certain example embodiments, a computer readable storage medium is a storage medium that stores a computer program, and the computer program causes a computer (40) that is a part of the information processing apparatus to function as the display control means (40), the first attitude calculation means (40, S27), the second attitude calculation means (40, S47), the load detection means (40, S60), the first motion instructing means (40, S11), the second motion instructing means (40, S12), and the third motion instructing means (40, S13).
The display control means (40) displays the character object on the display apparatus. The first attitude calculation means calculates the attitude of the first operating means. The second attitude calculation means calculates the attitude of the second operating means. The load detection means detects a load applied to the third operating means. The first motion instructing means causes the character object to conduct at least one motion among a plurality of motions, in response to the attitude of the first operating means calculated by the first attitude calculation means. The second motion instructing means causes the character object to conduct at least one motion among a plurality of motions, in response to the attitude of the second operating means calculated by the second attitude calculation means. The third motion instructing means causes the character object to conduct at least one motion among a plurality of motions, in response to a load applied to the third operating means and detected by the load detection means.
With this, the user can cause the character object to conduct a variety of motions intuitively, by inclining the first operating means and the second operating means, and by applying load to the third operating means.
In certain example embodiments, the user can cause the character object to conduct a variety of motions intuitively.
The objective described above, other objectives, characteristics, and advantages, of certain example embodiments may become known when taken in conjuction with the following detailed description and drawings.



BRIEF DESCRIPTION OF THE DRAWINGS
These and other features and advantages may be better and more completely understood by reference to the following detailed description of exemplary illustrative embodiments in conjunction with the drawings, of which:
FIG. 1 is an exterior view of a game system 10 according to certain example embodiments;
FIG. 2 is a functional block diagram of the game system 10;
FIG. 3 is an exterior view of a controller 7;
FIG. 4 is a perspective view showing an internal configuration of a core unit 70;
FIG. 5 is a perspective view of an internal configuration of a subunit 76;
FIG. 6 is a functional block diagram of the controller 7;
FIG. 7 is a perspective view of a load controller 36;
FIG. 8 is a cross sectional view of the load controller 36;
FIG. 9 is a functional block diagram of the load controller 36;
FIG. 10 shows a player when playing a game;
FIG. 11 is one example of a game image displayed on a monitor 34;
FIG. 12 shows a character object operation method using the core unit 70;
FIG. 13 shows a character object operation method using the core unit 70;
FIG. 14 shows a character object operation method using the core unit 70;
FIG. 15 shows a character object operation method using a subunit 76;
FIG. 16 shows a character object operation method using the subunit 76;
FIG. 17 shows a character object operation method using the subunit 76;
FIG. 18 shows a motion of a character object;
FIG. 19 shows a character object operation method using a load controller 36;
FIG. 20 shows a character object operation method using the load controller 36;
FIG. 21 shows a character object operation method using the load controller 36;
FIG. 22 shows a memory map of an external main memory 46;
FIG. 23 shows a flowchart of the whole flow of a game process;
FIG. 24 shows a flowchart of a right hand operation process;
FIG. 25 shows a flowchart of a left hand operation process;
FIG. 26 shows a flowchart of a foot operation process; and
FIG. 27 shows a general outline of a compensation process according to alternate embodiment 1.



DETAILED DESCRIPTION
As shown in FIG. 1, a game system 10 that is an embodiment includes: a video game apparatus 12 (hereinafter, simply referred as “game apparatus”), a controller 7, and a load controller 36. Although a diagrammatic representation is omitted, the game apparatus 12 of this embodiment is designed such that it can communicate with a maximum of four controllers (7, 36). Furthermore, the game apparatus 12 and each of the controllers (7,36) are connected via wireless communication. For example, the wireless communication is executed in accordance with Bluetooth (registered trademark) standard, however, wireless communication may also be executed in accordance with other specifications such as infrared light and wireless LAN.
The game apparatus 12 includes a housing 14 which is parallelepiped shaped, and a disk slot 16 is provided on the front surface of the housing 14. An optical disc 18, which is one example of an information storage medium that stores a game program and the like, is inserted through the disk slot 16, and the optical disc 18 is mounted on a disk drive 54 (refer FIG. 2) disposed within the housing 14. An LED and a light guide plate are disposed in the surrounding area of the disk slot 16, and the LED may be lit up in response to a variety of processes.
Furthermore, on the front surface of the housing 14 of the game apparatus 12, a power button 20a and a reset button 20b are provided on the upper section, and an eject button 20c is provided on the lower section. Moreover, an external memory card connector cover 28 is provided in between the reset button 20b and the eject button 20c in proximity of the disk slot 16. An external memory card connector 62 (refer FIG. 2) is provided inside the external memory card connector cover 28, and an external memory card (hereinafter, simply referred to as “memory card”), which is not diagrammatically represented, is inserted in the external memory card connector 62. The memory card is used for loading and temporarily storing a game program or the like which is read out from the optical disc 18, or for saving a game data of a game played on this game system 10 (a result data or a progress data of the game). However, instead of saving the game data on the memory card, an internal memory, such as a flash memory 44 (refer FIG. 2) provided inside of the game apparatus 12, may be used to save the game data. Furthermore, the memory card may be used as a back-up memory of the internal memory.
A generic SD memory card may be used as the memory card, however, other generic memory cards such as a memory stick and a multimedia card (registered trademark) may also be used.
An AV connector 58 (refer FIG. 2) is provided on the rear surface of the housing 14 of the game apparatus 12, and the AV connector 58 is used for connecting the game apparatus 12 to a monitor 34 and a speaker 34a via an AV cable 32a. The monitor 34 and the speaker 34a are typically a part of a color television receiver, and the AV cable 32a allows a video signal that originated from the game apparatus 12 to be inputted into a video input terminal of the color television, and allows an audio signal to be inputted into an audio input terminal of the color television. Therefore, a game image of, for example, a three dimensional (3D) video game is displayed on a screen of the color television (monitor) 34, and a stereo game audio, such as a game music or a sound effect, is outputted from right and left speakers 34a. Furthermore, a marker section 34b, which includes two infrared LEDs (markers) 340m and 340n, is provided in the periphery of the monitor 34 (in this embodiment, on the upper side of the monitor 34). This marker section 34b is connected to the game apparatus 12 via a power cable 32b. Therefore, power is provided from the game apparatus 12 to the marker section 34b. By this, the markers 340m and 340n produce luminescence, and infrared lights are outputted from each of the markers toward the front of the monitor 34.
Power for the game apparatus 12 is provided from a general AC adaptor (not shown). The AC adaptor is plugged into a standard household wall socket, and the game apparatus 12 converts the household power (commercial power) into a low DC voltage signal suitable for driving the game apparatus 12. A battery may be used as a power source in another embodiment.
With regard to this game system 10, the user first turns on the power of the game apparatus 12 in order for the user or the player to play a game (or other applications instead of a game); and then the user selects, as appropriate, an optical disc 18 in which a video game program is recorded (or another application desired to be played), resulting in the loading of the optical disc 18 onto the disk drive 54 of the game apparatus 12. Consequently, the game apparatus 12 starts executing the video game or another application based on a program recorded on the optical disc 18. The user operates a controller 7 in order to provide input to the game apparatus 12. The controller 7 includes a core unit 70, a subunit 76, and a connection cable 79, and the core unit 70 and the subunit 76 are connected to each other with the connection cable 79. For example, the user can start a game or another application by operating a specific operation button provided on the core unit 70. Furthermore, other than by operating the operation button, the user can cause an animated object (player object) to move in a different direction, or change the user's viewpoint (camera position) within the 3D game world, by moving the core unit 70 or the subunit 76 themselves.
FIG. 2 is a block diagram showing an electrical configuration of the video game system 10 of this embodiment. Although not shown, each component within the housing 14 is mounted on a printed-circuit board. As shown in FIG. 2, a CPU 40 is provided to the game apparatus 12. This CPU 40 functions as a game processor. A system LSI 42 is connected to the CPU 40. An external main memory 46, a ROM/RTC 48, the disk drive 54, and an AV IC 56 are connected to the system LSI 42.
The external main memory 46 is used: for storing programs such as a game program and the like; for storing various data; and as a work area and a buffer area of the CPU 40. The ROM/RTC 48, which is a so-called boot ROM, is incorporated with a program in order to start up the game apparatus 12. The ROM/RTC 48 is also provided with a clock circuit for counting time. The disk drive 54 reads out a program data, a texture data, or the like from the optical disc 18; and writes these data onto a later described internal main memory 42e or an external main memory 46, under a control of the CPU 40.
An input/output processor 42a, a GPU (Graphics Processor Unit) 42b, a DSP (Digital Signal Processor) 42c, a VRAM 42d, and the internal main memory 42e, are provided to the system LSI 42. Although not shown, these components are connected to each other by an internal bus.
The input/output processor (I/O processor) 42a executes transmission and reception of a data, and also executes download of a data. Transmission and reception, and download of data are described in detail below.
The GPU 42b forms a part of drawing means, and upon receiving a graphics command (drawing generation order) from the CPU 40, follows the command and generates a game image data. In addition to the graphics command, the CPU 40 also provides the GPU 42b with an image-generating program necessary for generating the game image data.
Although not shown, the VRAM 42d is connected to the GPU 42b as described above. The GPU 42b accesses the VRAM 42d in order to acquire a data (an image data which is a data such as a polygon data and a texture data) necessary for the GPU 42b to execute the drawing generation order. The CPU 40 writes the image data necessary for drawing onto the VRAM 42d via the GPU 42b. The GPU 42b forms a game image data by accessing the VRAM 42d. 
In this embodiment, a case is described in which the GPU 42b generates the game image data. However, in a case in which an arbitrary application other than a game application is executed, the GPU 42b generates an image data for the arbitrary application.
Furthermore, the DSP 42c functions as an audio processor, and generates an audio data that corresponds to a sound, an audio, and a music, which are then to be outputted from the speaker 34a. The generation of the audio data by the DSP 42c is conducted by using a sound data and a sound waveform (tone) data, which are stored in the internal main memory 42e and the external main memory 46.
As described above, the generated game image data and audio data are read by the AV IC 56, and are outputted from the monitor 34 and the speaker 34a via the AV connector 58. Therefore, a game screen is displayed on the monitor 34, and a sound (music) necessary for the game is outputted from the speaker 34a. 
Furthermore, connected to the input/output processor 42a are: the flash memory 44, a wireless communication module 50, and a wireless controller module 52. Additionally, an expansion connector 60 and the external memory card connector 62 are also connected to the input/output processor 42a. Moreover, an antenna 50a is connected to the wireless communication module 50, and the antenna 52a is connected to the wireless controller module 52.
The input/output processor 42a can communicate, via the wireless communication module 50, with other game apparatuses and various servers connected to a network. However, the input/output processor 42a can also communicate directly with other game apparatuses without going through the network. The input/output processor 42a periodically accesses the flash memory 44, and detects whether a data (transmission data) that needs to be transmitted to the network exists or not, and if there is such a transmission data, this transmission data is transmitted to the network via the wireless communication module 50 and the antenna 50a. Furthermore, the input/output processor 42a receives a data (received data) transmitted from other game apparatuses via, the network, the antenna 50a, and the wireless communication module 50; and stores the received data onto the flash memory 44. However, there are cases in which the received data is discarded without being stored. Furthermore, the input/output processor 42a receives data (download data) downloaded from a download server via the network, the antenna 50a, and the wireless communication module 50; and stores the download data onto the flash memory 44.
Moreover, the input/output processor 42a receives an input data transmitted from the controller 7 and the load controller 36 via the antenna 52a and the wireless controller module 52; and (temporary) stores the input data onto a buffer area of the internal main memory 42e or the external main memory 46. The input data is erased from the buffer area after being used by a game process of the CPU 40.
As described above, in this embodiment, the wireless controller module 52 communicates with the controller 7 and the load controller 36 in accordance with Bluetooth (registered trademark) standard.
Furthermore, for convenience of the drawings, the controller 7 and the load controller 36 are both drawn in FIG. 2.
Moreover, the expansion connector 60 and the external memory card connector 62 are connected to the input/output processor 42a. The expansion connector 60 is a connector for an interface, such as USB or SCSI, and can connect to a medium such as an external storage medium, and can also connect to peripheral devices such as other controllers. Furthermore, a LAN cable adaptor may be connected to the expansion connector 60, and this LAN cable adaptor may be used instead of the wireless communication module 50. An external storage medium such as a memory card may be connected to the external memory card connector 62. Therefore, for example, the input/output processor 42a can access the external storage medium via the expansion connector 60 and the external memory card connector 62; and can save data to, or read data from the external storage medium.
Although not described in detail, the power button 20a, the reset button 20b, and the eject button 20c, are disposed on the game apparatus 12 (housing 14) as shown in FIG. 1. The power button 20a is connected to the system LSI 42. When this power button 20a is turned on, power is provided through the AC adaptor which is not diagrammatically represented, to each component of the game apparatus 12, and the system LSI 42 is set to a normal electricity conducting state mode (normal mode). On the other hand, when the power button 20a is turned off, power is provided only to a part of the components of the game apparatus 12, and the system LSI 42 is set to a mode that suppresses electricity consumption to a minimum necessary level (hereinafter, referred to as “stand-by mode”). In this embodiment, when set to the stand-by mode, the system LSI 42 instructs termination of power supply for components other than the input/output processor 42a, the flash memory 44, the external main memory 46, the ROM/RTC 48, the wireless communication module 50, and the wireless controller module 52. Therefore, this stand-by mode is a mode in which execution of an application by the CPU 40 is not conducted.
Although power is provided to the system LSI 42 even in the stand-by mode; electricity consumption is reduced by not providing a clock signal to the GPU 42b, the DSP 42c, and the VRAM 42d, and by preventing these components from driving.
Although not shown, a fan is provided inside the housing 14 of the game apparatus 12, in order to discharge heat generated from ICs such as the CPU 40 and the system LSI 42. The fan is also stopped in the stand-by mode.
However, when the user does not intend to use the stand-by mode, by applying a setting that does not use the stand-by mode, supply of power to all circuit components is completely terminated when the power button 20a is turned off.
Furthermore, switching between the normal mode and the stand-by mode can also be conducted through remote operation by switching on/off a power switch 72h (refer FIG. 3) provided to the controller 7. When the remote operation is not conducted, a setting that does not supply power to the wireless controller module 52 in the stand-by mode may be applied.
The reset button 20b is also connected to the system LSI 42. When the reset button 20b is pressed, the system LSI 42 restarts a start-up program of the game apparatus 12. The eject button 20c is connected to the disk drive 54. When the eject button 20c is pressed, the optical disc 18 is discharged from the disk drive 54.
<Controller 7>
The controller 7 will be described below with reference to FIG. 3 to FIG. 6. FIG. 3 is a perspective view showing the external configuration of the controller 7.
As shown in FIG. 3, the controller 7 includes the core unit 70, the subunit 76, and the connection cable 79; and the core unit 70 and the subunit 76 are connect to each other with the connection cable 79. The core unit 70 includes a housing 71, and the housing 71 is provided with a plurality of operation sections 72. On the other hand, the subunit 76 includes a housing 77, and the housing 77 is provided with a plurality of operation sections 78.
A connector 791 provided at one end of the connection cable 79, and the other end of the connection cable 79 is statically connected to the subunit 76. The connector 791 of the connection cable 79 is engaged with the connector 73 (refer FIG. 4) provided on the bottom surface of the core unit 70, hence, the core unit 70 and the subunit 76 are connected via the connection cable 79.
The core unit 70 includes a housing 71 formed, for example, by plastic molding. The housing 71 has a parallelepiped shape, and has an overall size small enough for being held by one hand of an adult or a child.
A cross key 72a, which is direction instructing means, is provided on the front surface of the housing 71. This cross key 72a is a cross-shaped four-directional push switch. Operation sections are disposed on each of the four projecting portions of the cross-shape at 90° intervals, and each of the four operation sections corresponds to four directions (up, down, right, and left). By having the player hold down one operation section of the cross key 72a, either one direction of, up, down, right, or left, is selected. For example, by operating the cross key 72a, the player can give an instruction about a moving direction of a player character or the like that appears in a virtual game world, or give an instruction about a moving direction of a cursor. A joystick, which is capable of giving instructions in a 360° range direction, may be provided instead of the cross key 72a. 
A plurality of operation buttons 72b to 72g are provided on the side toward the bottom surface from the cross key 72a, on the front surface of the housing 71. The operation buttons 72b to 72g are operation sections that output operation signals assigned to each of the operation buttons 72b to 72g, by having the player hold down a button head section. For example, functions such as a No. 1 button, a No. 2 button, and an A button, are assigned to operation buttons 72b to 72d, respectively. Furthermore, functions such as a minus button, a home button, and a plus button, are assigned to operation buttons 72e to 72g, respectively. Various functions are assigned to these operation buttons 72b to 72g depending on a game program executed by the game apparatus 12.
Furthermore, the power switch 72h is provided on the side toward the upper surface from the cross key 72a, on the front surface of the housing 71. The power switch 72h is an operation section for turning on/off the power of the game apparatus 12 by remote control.
Moreover, a plurality of LEDs 702 are provided on the side toward the bottom surface from the operation button 72c, on the front surface of the housing 71. Here, a controller 7 is provided with a controller type (number) in order to be distinguished from other controllers 7. In one instance, the LEDs 702 are used to notify the player about the above described controller type currently assigned to a controller 7. Specifically, among the plurality of LEDs 702, an LED that corresponds to the controller type lights up, when a transmission data is transmitted from the core unit 70 to the game apparatus 12.
Furthermore, sound holes are formed on the front surface of the housing 71 in between the operation button 72b and the operation button 72f, in order to release outwards a sound that originated from a later described speaker 706 (refer FIG. 4).
Additionally, an operation button (not shown) is provided on the rear surface of the housing 71 in a position where an index finger or a middle finger of the player is positioned when the core unit 70 is held by the player. This operation button is an operation section that functions as, for example, a B button; and used, for example, as a trigger switch in a shooting game.
Furthermore, an image pickup device 743 (refer FIG. 6) that consists a part of an imaging information calculation section 74 (refer FIG. 6) is provided on the upper surface of the housing 71. The imaging information calculation section 74 is a system that analyzes an image data that have been taken by the core unit 70, determines a location that has the highest brightness from this analysis, and detects the center of gravity, size, and the like of this location. For example, since the imaging information calculation section 74 analyzes an image data sampled at a sampling cycle of about a maximum of 200 frame/second, the imaging information calculation section 74 is capable of tracking and analyzing a relatively high-speed motion of the core unit 70. The detailed configuration of this imaging information calculation section 74 is described later. Furthermore, the connector 73 (refer FIG. 4) is provided on the bottom surface of the housing 71. The connector 73 is, for example, a 32-pin edge connector, and is used for engaging and connecting to the connector 791 of the connection cable 79.
An internal structure of the core unit 70 will be described below with reference to FIG. 4. FIG. 4 is a perspective view of a state in which an upper case of the core unit 70 (a part of housing 71) is removed.
As shown in FIG. 4, a substrate 700 is fixed inside the housing 71; and the operation buttons 72a to 72h, an acceleration sensor 701, the LEDs 702, the speaker 706, an antenna 754, and the like are provided on an upper main surface of the substrate 700. These components are connected to a microcomputer 751 (refer FIG. 6) and the like by wirings (not shown) formed on the substrate 700 and the like. By providing the acceleration sensor 701 at a peripheral section of the substrate 700 rather than at a central section, a rotation of the core unit 70 can be decided with an excellent sensitivity from a detected acceleration data by a predetermined calculation, since an acceleration included in a centrifugal force component is detected together with a directional change of a gravitational acceleration in response to a rotation about a longitudinal direction axis of the core unit 70.
On the other hand, the imaging information calculation section 74 and the connector 73 are attached to a lower main surface of the substrate 700.
The subunit 76 will be described below with reference to FIG. 3 and FIG. 5. FIG. 5 is a perspective view showing a state in which an upper case of the subunit 76 (a part of the housing 77) is removed.
As shown in FIG. 3, the subunit 76 has the housing 77 formed, for example, by plastic molding. The housing 77 has an overall size small enough for being held by one hand of an adult or a child.
A stick 78a, which is direction instructing means, is provided on the front surface of the housing 77. The stick 78a is an operation section, and by tilting down the stick which projects out from the front surface of the housing 77 and is capable of being tilted down, the stick outputs an operation signal in response to the direction where the stick is tilted down. For example, by tilting down the stick tip to an arbitrary direction chosen from a 360° range, the player can point to an arbitrary direction or position; and can give an instruction about a moving direction of a player character or the like that appears in a virtual game world, or give instructions about a moving direction of a cursor. A cross key may be provided instead of the stick 78a. 
Operation buttons 78d and 78e are provided on the upper surface of the housing 77 of the subunit 76 (refer FIG. 5). The operation buttons 78d and 78e are operation sections that output operation signals assigned respectively to each of the operation buttons 78d and 78e, as a result of the player holding down a button head section. For example, functions such as an X button and a Y button are assigned to operation buttons 78d and 78e respectively. Depending on a game program executed by the game apparatus 12, various functions are assigned to these operation buttons 78d and 78e. 
As shown in FIG. 5, a substrate is fixed inside the housing 77, and the stick 78a, the acceleration sensor 761, and the like are provided on an upper main surface of the substrate. These components are connected to the connection cable 79 via wirings (not shown) formed on the substrate and the like.
An internal configuration of the controller 7 will be described below with reference to FIG. 6. FIG. 6 is a block diagram showing the configuration of the controller 7.
As shown in FIG. 6, the core unit 70 includes: the operation sections 72, the imaging information calculation section 74, the acceleration sensor 701, the speaker 706, a sound IC 707, an amplifier 708, and a communication section 75 that is disposed inside of the core unit 70. Furthermore, the subunit 76 includes the operation sections 78 and the acceleration sensor 761, both of which are described above; and the subunit 76 is connect to the microcomputer 751 via the connection cable 79, the connector 791, and the connector 73.
The imaging information calculation section 74 includes: an infrared filter 741, a lens 742, an image pickup device 743, and an image processing circuit 744.
Among the incoming light from the upper surface of the core unit 70, only infrared light is allowed to pass through the infrared filter 741. The lens 742 converges the infrared light that is transmitted through the infrared filter 741, and outputs the converged infrared light toward the image pickup device 743. The image pickup device 743 is a solid image pickup element, for example, such as a CMOS sensor or a CCD, and takes an image of the infrared light that is converged by the lens 742. Therefore, the image pickup device 743 generates an image data by imaging only the infrared light that passed through the infrared filter 741. The image data generated by the image pickup device 743 is processed by the image processing circuit 744. Specifically, the image processing circuit 744: processes the image data obtained from the image pickup device 743; senses areas of the image which have high brightness; and outputs, a process result data indicating a detection result of positional coordination and area size of such areas, to the communication section 75. The imaging information calculation section 74 is fixed on the housing 71 of the core unit 70, and the imaging direction of the imaging information calculation section 74 can be altered by changing the direction of the housing 71 itself. A signal in response to the position and the motion of the core unit 70 can be obtained based on the process result data outputted from this imaging information calculation section 74.
In the current embodiment, the core unit 70 includes the acceleration sensor 701. Here, the core unit 70 preferably includes an acceleration sensor 701 adapted for three axes orthogonal to each other (X-axis, Y-axis, and Z-axis of FIG. 4). Furthermore, the subunit 76 preferably includes an acceleration sensor 761 adapted for three axes (X-axis, Y-axis, and Z-axis of FIG. 5). The three-axis acceleration sensors 701 and 761 sense linear accelerations in three directions, which are the X-axis direction (direction from the left side surface to the right side surface), the Y-axis direction (direction from the upper surface to the bottom surface), and the Z-axis direction (direction from the front surface to the rear surface). Furthermore, in another embodiment, two-axis acceleration detection means that senses linear accelerations only along each of the X-axis direction and the Y-axis direction (or a direction of other pairs) may be used depending on the type of control signal used in a game process. Moreover, one-axis acceleration detection means that senses a linear acceleration only along an X-axis direction (or along another direction) may be used. For example, the acceleration sensors 701 and 761 of three-axis, two-axis, or one-axis type, may be a type available from Analog Devices, Inc., or STMicroelectronics N.V. The acceleration sensors 701 and 761 may be an electrostatic capacitance type (capacitance-coupling type) based on silicon micro-machined MEMS (Micro Electro Mechanical Systems) technology. Furthermore, the acceleration sensors 701 and 761 of three-axis, two-axis, or one-axis, may be provided from a suitable technology of known acceleration detection means (e.g. piezoelectric method or piezoresistance type method) or from another suitable technology that might be developed in the future.
As understood by anyone skilled in the art, such acceleration detection means that is used in acceleration sensors 701 and 761 can only sense acceleration (linear acceleration) along a straight line which corresponds to each axis of the acceleration sensor. Thus, direct outputs from the acceleration sensors 701 and 761 are signals indicating linear acceleration (static or dynamic) along each axis. Therefore, the acceleration sensors 701 and 761 cannot directly sense physical properties such as a motion along a non-linear (e.g. circular arc shape) pathway, a rotation, a rotational motion, an angular displacement, the inclination, the position, the attitude, and the like.
However, by reading the description in this specification, anyone skilled in the art can easily understand that additional information related to the core unit 70 and the subunit 76 can be presumed or calculated by additionally processing acceleration signals outputted from each of the acceleration sensors 701 and 761. For example, when a static acceleration (gravitational acceleration) is sensed, inclinations against the gravity vector for each of the objects (core unit 70 and subunit 76) can be presumed from a calculation using, an inclination angle and the sensed acceleration, which are both obtained by outputs from the acceleration sensors 701 and 761. As described above, inclinations, attitudes and positions of the core unit 70 and the subunit 76 can be determined by using a combination of the acceleration sensors 701 and 761 and the microcomputer 751 (or another processor). Similarly, when the core unit 70 having the acceleration sensor 701, and the subunit 76 having the acceleration sensor 761, for example, are accelerated dynamically by the user's hands, the core unit 70 and the subunit 76 can calculate or presume their various motions and/or positions, by processing each of the acceleration signals generated by the acceleration sensors 701 and 761. In an alternate embodiment, the acceleration sensors 701 and 761 each may include an embedded signal processing apparatus or another type of process apparatus for, before outputting a signal to the microcomputer 751, conducting a desired process on the acceleration signal outputted from the built-in acceleration detection means. For example, when the acceleration sensor is designed for detecting a static acceleration (e.g. gravitational acceleration), the embedded or dedicated process apparatus may be designed for converting sensed acceleration signals into each corresponding inclination angle. Data that represent accelerations sensed by the acceleration sensors 701 and 761 are outputted to the communication section 75.
The communication section 75 includes: the microcomputer 751, a memory 752, a wireless module 753, and the antenna 754. The microcomputer 751 controls the wireless module 753 which wirelessly transmits a transmission data, by using the memory 752 as a storage area during processing. Furthermore, the microcomputer 751 controls a behavior of the sound IC 707 in response to a data from the game apparatus 12 received by the wireless module 753 via the antenna 754. The sound IC 707 processes a sound data and the like transmitted from the game apparatus 12 via the communication section 75.
Operation signals (core key data) from the operation sections 72 provided in the core unit 70, an acceleration signal (core acceleration data) from the acceleration sensor 701, and a process result data from the imaging information calculation section 74, are outputted to the microcomputer 751. Furthermore, operation signals (sub key data) from the operation sections 78 provided in the subunit 76, and an acceleration signal (sub acceleration data) from the acceleration sensor 761, are outputted to the microcomputer 751 via the connection cable 79. The microcomputer 751 temporarily stores each of the inputted data (core key data, sub key data, core acceleration data, sub acceleration data, and process result data) onto the memory 752 as a transmission data to be transmitted to the game apparatus 12. A wireless transmission from the communication section 75 to the game apparatus 12 is conducted periodically at a predetermined time interval. Since a game process is generally conducted at a cycle unit of 1/60 sec., it is necessary to collect and transmit data in a shorter cycle unit. Specifically, a process unit of the game is 16.7 ms ( 1/60 sec.), and a transmission interval of the communication section 75 that adopts Bluetooth (registered trademark) is 5 ms. At the time of transmitting to the game apparatus 12, the microcomputer 751 outputs, the transmission data stored in the memory 752 as a series of operation information, to the wireless module 753. Then, the wireless module 753 modulates a carrier wave having a predetermined frequency by using the operation information; and radiates the resultant weak radio signal from the antenna 754; based on, for example, Bluetooth (registered trademark) technology. Thus, the core key data provided to the core unit 70 from the operation sections 72; the sub key data provided to the subunit 76 from the operation sections 78; the core acceleration data provided to the core unit 70 from the acceleration sensor 701; the sub acceleration data provided to the subunit 76 from the acceleration sensor 761; and the process result data provided from the imaging information calculation section 74; are all outputted as a weak radio signal from the core unit 70. Then, the weak radio signal is received by the wireless controller module 52 of the game apparatus 12, and the weak radio signal is demodulated and decoded in the game apparatus 12. This is how the CPU 40 of the game apparatus 12 can acquire the series of operation information (core key data, sub key data, core acceleration data, sub acceleration data, and process result data). Then, the CPU 40 of the game apparatus 12 conducts a game process based on, the acquired operation information and the game program. When Bluetooth (registered trademark) technology is adopted to the communication section 75, the communication section 75 may also include a function for receiving a transmission data that is wirelessly transmitted from other devices.
<Load Controller 36>
FIG. 7 is a perspective view showing an exterior view of the load controller 36 shown in FIG. 1. As shown in FIG. 7, the load controller 36 includes: a platform 36a on which the player stands on (the player places his/her foot on); and four load sensors 36b for detecting a load applied to the platform 36a. Each of the load sensors 36b is included in the platform 36a (refer FIG. 8), and the positions where the load sensors 36b are disposed are indicated as dotted lines in FIG. 7.
The platform 36a has a parallelepiped form, and the top-down perspective of the platform 36a is a rectangular shape. For example, the short side of the rectangle is set to be approximately 30 cm, and the long side is set to be approximately 50 cm. The upper surface of the platform 36a where the player stands on is flat. Side surfaces around the four corners of the platform 36a are formed such that they partially extend out cylindrically.
The four load sensors 36b are disposed to this platform 36a with predetermined intervals between each other. In this embodiment, the four load sensors 36b are disposed in marginal sections, more specifically in the four corners, of the platform 36a. The intervals between the load sensors 36b are set to a value that is appropriate for detecting a player's intention for game operation with excellent precision, based on the way the player applies a load against the platform 36a. 
FIG. 8 shows: a cross sectional view along line VI-VI of the load controller 36 shown in FIG. 7, and an enlarged view of a corner part where a load sensor 36b is disposed. As obvious from FIG. 8, the platform 36a includes: a supporting plate 360 for having the player to stand on, and support legs 362. The support legs 362 are provided where the load sensor 36b is disposed. In this embodiment, four support legs 362 are provided to the four corners, since the four load sensors 36b are disposed in the four corners. The support legs 362 are formed to be approximately a bottom-sealed cylindrical shape, for example, by plastic molding; and the load sensor 36b is disposed on a spherical surface component 362a which is provided on a bottom surface within the support legs 362. The supporting plate 360 is supported by the support legs 362 via the load sensors 36b. 
The supporting plate 360 includes: an upper-layer plate 360a which forms the upper surface and the upper sections of side surfaces; a lower-layer plate 360b which forms the lower surface and lower sections of side surfaces; a mid-layer plate 360c which is provided in between the upper-layer plate 360a and the lower-layer plate 360b. The upper-layer plate 360a and the lower-layer plate 360b are formed, for example, by plastic molding; and the two are combined into one by adhesion and the like. The mid-layer plate 360c is formed, for example, by press molding a single layer metal plate. This mid-layer plate 360c is fixed on top of the four load sensors 36b. The upper-layer plate 360a includes ribs (not shown) in a grid pattern on its lower surface, and the upper-layer plate 360a is supported by the mid-layer plate 360c via these ribs. Therefore, when the player stands on the platform 36a, the load is transferred to the supporting plate 360, the load sensor 36b, and the support legs 362. As shown in FIG. 8 with an arrow, a counteraction, from the floor and generated by the inputted load, is transferred to the upper-layer plate 360a from the support legs 362 through the spherical surface component 362a, the load sensor 36b, and the mid-layer plate 360c. 
The load sensor 36b is, for example, a strain gauge (strain sensor) type load cell, which is a load converter that converts an inputted load into an electrical signal. In the load sensor 36b, in response to a load input, an elastic body 370a deforms and a deformation is generated. This deformation is converted into a change in electrical resistance by a strain sensor 370b attached to the elastic body 370a, and then converted into a change in voltage. As a result, the load sensor 36b outputs, a voltage signal that represents the input load, from an output terminal.
The load sensor 36b may be a load sensor of other types, such as a tuning fork type, a vibrating wire type, an electrostatic capacitance type, a piezoelectric type, a magnetostrictive type, and a gyro type.
As shown in FIG. 7, a power button 36c is further provided to the load controller 36. When this power button 36c is turned on, power is provided to each circuit component (refer FIG. 9) of the load controller 36. However, there are cases in which the load controller 36 is turned on following an instruction by the game apparatus 12. Furthermore, when a state, in which the player has not been standing on the load controller 36, continues for a certain period of time (e.g. 30 sec.) or more; the power is turned off. On the other hand, the power may be turned off, if the power button 36c is pressed when the load controller 36 is active.
The block diagram in FIG. 9 shows one example of an electrical configuration of the load controller 36. In this FIG. 9, the flow of signals and communications are shown with solid line arrows. Dashed arrows show the supply of power.
The load controller 36 includes a microcomputer 100 for controlling the behavior of the load controller 36. Although not shown, the microcomputer 100 includes a CPU, a ROM, a RAM, and the like; and the CPU controls the behavior of the load controller 36 in accordance with a program stored on the ROM.
The power button 36c, an AD converter 102, a DC-DC converter 104, and a wireless module 106, are connected to the microcomputer 100. Furthermore, an antenna 106a is connected to the wireless module 106. Additionally, the four load sensors 36b (load cells in this embodiment) are connected to the AD converter 102 via an amplifier 108.
Moreover, a battery 110 is contained in the load controller 36 for supplying power. In another embodiment, a commercial power source may be provided by connecting an AC adaptor instead of the battery. In such a case, instead of the DC-DC converter 104, a power circuit, which converts alternating current into direct current, and steps down and rectifies the resulting DC voltage, is required. In this embodiment, supplying power to the microcomputer 100 and the wireless module 106 is conducted directly from the battery 110. Thus, a component (CPU) that is contained inside the microcomputer 100 as a part of it; and the wireless module 106; are constantly supplied with power, and detect whether or not a power button 36c is turned on or a power-on (load detection) command is transmitted from the game apparatus 12. On the other hand, power is supplied from the battery 110 to the load sensor 36b, AD converter 102, and the amplifier 108, via the DC-DC converter 104. The DC-DC converter 104 converts a voltage value of DC electricity supplied from the battery 110 into a different voltage value, and supplies the resulting DC electricity to the load sensor 36b, the AD converter 102, and the amplifier 108.
The supply of power to the load sensor 36b, the AD converter 102, and the amplifier 108, may be conducted if needed, by having the microcomputer 100 controlling the DC-DC converter 104. That means, when it is judged that it is necessary to activate the load sensor 36b in order to detect a load, the microcomputer 100 may control the DC-DC converter 104, and supply power to each load sensor 36b, the AD converter 102, and each amplifier 108.
When power is provided, each load sensor 36b outputs a signal indicating an inputted load. The signal is amplified at each amplifier 108, converted from an analog signal to a digital data by the AD converter 102, and is inputted into the microcomputer 100. Identification information of each load sensor 36b is given to each detected value obtained from each load sensor 36b. As a result, it is possible to identify the load sensor 36b that has produced a certain detected value. In this way, the microcomputer 100 can acquire data representing the detected load values at a certain time point from each of the four load sensors 36b. 
On the other hand, when it is judged that it is not necessary to activate the load sensor 36b, which is, when it is not time for load detection, the microcomputer 100 controls the DC-DC converter 104 and terminates the supply of power to the load sensor 36b, the AD converter 102, and the amplifier 108. In this manner, since the load sensor 36b can be activated for load detection only when necessary, in the load controller 36, it is possible to suppress electricity consumption required for load detection.
A time when it is necessary for load detection is typically a time when the game apparatus 12 needs to acquire a load data. For example, when the game apparatus 12 needs load information, the game apparatus 12 transmits a load acquisition order to the load controller 36. When the microcomputer 100 receives the load acquisition order from the game apparatus 12, the microcomputer 100 controls the DC-DC converter 104, supplies power to the load sensor 36b and the like, and detects a load. On the other hand, when the microcomputer 100 is not receiving a load acquisition order from the game apparatus 12, the microcomputer 100 controls the DC-DC converter 104, and terminates the supply of power to the load sensor 36b and the like.
Alternatively, the microcomputer 100 may judge it is time for load detection every certain period of time, and may control the DC-DC converter 104. When such periodical load detection is conducted, a period information may be given from the game apparatus 12 to the microcomputer 100 of the load controller 36 at the beginning and stored, or may be stored in the microcomputer 100 in advance.
A data representing a detected value obtained from the load sensor 36b is transmitted from the microcomputer 100 to the game apparatus 12 via the wireless module 106 and the antenna 106a as an operation data (input data) of the load controller 36. For example, when load detection is conducted after receiving a load acquisition order from the game apparatus 12, after receiving a detected value data of the load sensor 36b from the AD converter 102, the microcomputer 100 transmits the detected value data to the game apparatus 12. Alternatively, the microcomputer 100 may transmit a detected value data to the game apparatus 12 every certain period of time. When a transmission cycle is longer than a detection cycle of a load; data, which includes load values detected at a plurality of detection time points before the next transmission, is transmitted.
The wireless module 106 is capable of communicating with the same wireless standard (Bluetooth (registered trademark), wireless LAN, and the like) as the wireless standard of the wireless controller module 52 of the game apparatus 12. Therefore, the CPU 40 of the game apparatus 12 can transmit a load acquisition order to the load controller 36 via the wireless controller module 52 and the like. The microcomputer 100 in the load controller 36, can receive the load acquisition order from the game apparatus 12 via the wireless module 106 and the antenna 106a, and can also transmit the input data that includes the detected load value (or calculated load value) of each load sensor 36b to the game apparatus 12.
For example, in a case of a game that is executed based on just the summation value of the four load values has detected by the four load sensors 36b, it is not necessary to determine which load sensor 36b detected each of the four load values detected by one of the four load sensors 36b. Therefore, the player can assume any position with regard to the four load sensors 36b of the load controller 36. Hence, the player can stand on the platform 36a and play the game in any position and in any direction. However, depending on the type of the game, it is necessary to identify, with regard to a player, a direction of a load value detected by each load sensor 36b, and conduct a process. Thus, depending on the type of the game, it is necessary for the positional relationship of the four load sensors 36b of the load controller 36 and the player, to be understood. In this case, for example, if the positional relationship of the four load sensors 36b and the player is established in advance, it can be assumed that the player would stand on the platform 36a to obtain the predetermined positional relationship. Typically, an established positional relationship is, a positional relationship in which two load sensors 36b exists in the front, rear, right, and left, of the player standing in the center of the platform 36a; in other words, when the player is standing in the center of the platform 36a of the load controller 36, a load sensor 36b exists in each of, the front right, the front left, the rear right, and the rear left, directions from the player. In this case and in this embodiment, since the platform 36a of the load controller 36 has a rectangular shape in a planar view, and since the power button 36c is provided on one side (long side) of the rectangle; by using this power button 36c as a marker, it can be decided in advance that the player is asked to stand on the platform 36a having the long side that has the power button 36c in a predetermined direction (forward, backward, rightward, or leftward). In this way, a load value detected by each load sensor 36b will be a load value from a predetermined direction (front right, front left, rear right, and rear left) with regard to the player. Therefore, the load controller 36 and the game apparatus 12 can understand the correspondence of each detected load value to the directions with regard to the player, based on an identification information of each load sensor 36b contained in an detected load value data, and a disposition data, which is configured (stored) in advance, indicating the position or the direction of each load sensor 36b with regard to the player. With this, it is possible to understand a player's intention of game operation, such as an operating direction, for example, forward, backward, rightward, and leftward.
The disposition of each load sensor 36b with regard to the player may be established, in an initial setting or configured while a game is being played, by a player input, instead of being established in advance. For example, since the positional relationship of each load sensor 36b with regard to the player can be specified by, displaying a screen instructing the player to stand in a predetermined direction (front left, front right, rear left, and rear right) with regard to the player, and acquiring a load value; a disposition data with this positional relationship may be generated and stored. Alternatively, a screen for selecting the disposition of the load controller 36 may be displayed on the screen of the monitor 34; and the player may be asked to select the direction where the marker (power button 36c) exists with regard to the player, by an input with the controller 7. Then, a disposition data of each load sensor 36b based on this selection may be generated and stored.
<Game Playing Method>
FIG. 10 shows a general outline of how the player plays the game using the controller 7 and the load controller 36. As shown in FIG. 10, when the player plays a game of the video game system 10 using the controller 7 and the load controller 36, the player stands on the load controller 36, holds the core unit 70 in one hand (e.g. right hand), and holds the subunit 76 in the other hand (e.g. left hand).
FIG. 10 shows a case in which the player is facing sideways with regard to the screen by placing the load controller 36 lengthwise (disposed such that a short side of the load controller 36 is parallel to the screen) with regard to the screen of the monitor 34. However, a disposition of the load controller 36 and a facing direction of the player, with regard to the screen, can be altered as appropriate depending on the type of game. For example, the player may face the front surface of the screen by placing the load controller 36 crosswise (disposed such that a long side of the load controller 36 is parallel to the screen) with regard to the screen.
As described above, the inclination, the attitude, the position, and the motion (traveling motion, swinging motion, and the like), of the core unit 70 can be determined by using an output (core acceleration data) from the acceleration sensor 701 provided in the core unit 70. Thus, as a result of the player moving his/her hand that holds the core unit 70, upward, downward, rightward, leftward, and the like; the core unit 70 functions as operation input means that responds to the player's hand motion and direction. Furthermore, as described above, the inclination, the attitude, the position, and the motion (traveling motion, swinging motion, and the like) of the subunit 76 can be determined by using an output (sub acceleration data) from the acceleration sensor 761 provided in the subunit 76. Thus, as a result of the player moving his/her hand that holds the subunit 76 upward, downward, rightward, leftward, and the like; the subunit 76 functions as operation input means that responds to the player's hand motion and direction. Accordingly, motion of both hands can be inputted by having the player hold the two units, one in each hand, and operate the two units by moving both hands.
Furthermore, as described above, a player's motion such as placing or removing a foot on/from the load controller 36, or a position of the center of gravity (a position calculated by a ratio and the like, of the four load value) of a player standing on the load controller 36, can be judged, based on the four load values detected by the four load sensors 36b provided in the load controller 36. Thus, as a result of the player on the load controller 36: moving his/her center of gravity forward, backward, rightward, and leftward; standing on one foot; or tip-toeing; the load controller 36 functions as operation input means that responds to the player's foot motion. Accordingly, motion of the foot can be inputted by having the player stand on the load controller 36, and operate the load controller 36 by moving his/her foot.
A mode, in which the controller 7 and the game apparatus 12 are connected by wireless communication, is described above. However, the controller 7 and the game apparatus 12 may also be electrically connect by a cable. In this case, the cable connected to the core unit 70 is also connected to a connection terminal of the game apparatus 12.
Furthermore, among the core unit 70 and the subunit 76 which are a part of the controller 7, the communication section 75 is provided only to the core unit 70 in the description above. However, a communication section that transmits the transmission data to the game apparatus 12 via wireless transmission (or wired communication) may be provided to the subunit 76. Moreover, communication sections may be provided to both the core unit 70 and the subunit 76. For example, communication sections provided in both the core unit 70 and the subunit 76 may each wirelessly transmit transmission data to the game apparatus 12; or after the communication section 75 of the core unit 70 receives a transmission data from the communication section of the subunit 76 as a wireless transmission for the core unit 70, the communication section 75 of the core unit 70 may wirelessly transmit, the transmission data of the subunit 76 together with the transmission data of the core unit 70, to the game apparatus 12. In this case, there is no need for a connection cable 79 that electrically connect the core unit 70 and the subunit 76.
<General Outline of a Game Process>
A general outline of a game process executed by the game apparatus 12 will be described below.
FIG. 11 shows one example of a game image generated by the game apparatus 12, and displayed on the screen of the monitor 34. The case described in this embodiment is about an executed game in which, a character conducts rock climbing in a game space in response to an operation by the player. A character object capable of being operated by the player is displayed on the game screen. The objective of this game is to lead the character object to a “goal hold” by using a plurality of protrusions called “holds” that are provided on a cliff. The character object can grab a hold by hand, or place a foot on a hold, based on a player's operation. The player can control motions of the hands and the feet of the character object by using the controller 7 and the load controller 36.
An operation method for each sections of the character object will be described below with reference to FIG. 12 to FIG. 18.
(Rotation of the Right Arm)
The player is instructed basically to hold the core unit 70 in the right hand such that the longitudinal direction of the core unit 70 is aligned with the vertical direction, and the rear surface (refer FIG. 3) of the core unit 70 faces toward the monitor 34 (i.e. the rear surface of the core unit 70 faces the player's forward direction). Then, by changing the direction of the core unit 70 (in this embodiment, tilt right or left), the player can change the direction of the character object's right hand. For example, as shown in FIG. 12, by changing an angle about the Z-axis of the core unit 70 (e.g. angle θ1 about the Z-axis between the horizontal plane and a longitudinal direction of the core unit 70), an angle of the character object's right hand (e.g. an angle θ2 between the horizontal plane in the game space and the direction of the character object's right arm (direction from the right shoulder toward the right hand fingertip)) can be changed. With this, the direction of the character object's right hand changes in coordination with the motion of the player's right hand that holds the core unit 70. As a footnote, θ1 and θ2 do not necessary have to be identical, as long as θ2 is determined uniquely by θ1.
(Extending and Retracting the Right Arm)
The player can extend and retract the character object's right arm by changing the direction of the core unit 70 (in this embodiment, tilt forward or backward). For example, as shown in FIG. 13, by changing an angle about the X-axis of the core unit 70 (e.g. an angle θ3 about the X-axis between the horizontal plane and a longitudinal direction of the core unit 70), the character object's right arm can be extended and retracted. Specifically, the character object's right arm is extended when the angle θ3 of the core unit 70 about the X-axis is larger than a predetermined threshold (e.g. an angle between the horizontal plane and a reference plane (e.g. vertical plane that faces the player)) as shown in (a) of FIG. 13; and the character object's right arm is retracted when the angle θ3 of the core unit 70 about the X-axis is smaller than a predetermined threshold as shown in (b) of FIG. 13. With this, the character object's right arm is extended and retracted in coordination with the motion of the player's right hand holding the core unit 70. As a footnote, here, the degree of retraction of the character object's right arm is changed between two levels depending on whether θ3 is larger or smaller than the predetermined threshold. However, it is not limited to this form, and the degree of retraction of the character object's right arm may be changed in multiple levels or continuously depending on θ3.
(Opening and Closing the Right Palm)
The player can open and close the character object's right palm by operating the operation sections 72 provided to the core unit 70. For example, as shown in (a) of FIG. 14, the character object's right palm opens when the B button provided to the core unit 70 is not pressed; and as shown in (b) of FIG. 14, the character object's right palm closes when the B button provided to the core unit 70 is pressed. With this, the player can cause the character object to grab a hold or release the hold, with its right hand.
(Rotation of the Left Arm)
The player is instructed basically to hold the subunit 76 in the left hand such that the longitudinal direction of the subunit 76 is aligned with the vertical direction, and the rear surface (refer FIG. 3) of the subunit 76 faces toward the monitor 34 (i.e. the rear surface of the subunit 76 faces the player's forward direction). Then, by changing the direction of the subunit 76 (in this embodiment, tilt right or left), the player can change the direction of the character object's left arm. For example, as shown in FIG. 15, by changing an angle about the Z-axis of the subunit 76 (e.g. angle θ4 about the Z-axis between the horizontal plane and a longitudinal direction of the subunit 76), an angle of the character object's left arm (e.g. an angle θ5 between the horizontal plane in the game space and the direction of the character object's left arm (direction from the left shoulder toward the left hand fingertip)) can be changed. With this, the direction of the character object's left arm changes in coordination with the motion of the player's left hand that holds the subunit 76. As a footnote, θ4 and θ5 do not necessary have to be identical, as long as θ5 is determined uniquely by θ4.
(Retracting and Extending the Left Arm)
The player can extend and retract the character object's left arm by changing the direction of the subunit 76 (in this embodiment, tilt forward or backward). For example, as shown in FIG. 16, by changing an angle about the X-axis of the subunit 76 (e.g. an angle θ6 about the X-axis between the horizontal plane and a longitudinal direction of the subunit 76), the character object's left arm can be extended and retracted. Specifically, the character object's left arm is extended when the angle θ6 of the subunit 76 about the X-axis is larger than a predetermined threshold (e.g. an angle between the horizontal plane and a reference plane (e.g. vertical plane that faces the player)) as shown in (a) of FIG. 16; and the character object's left arm is retracted when the angle θ6 of the subunit 76 about the X-axis is smaller than a predetermined threshold as shown in (b) of FIG. 16. With this, the character object's left arm is extended and retracted in coordination with the motion of the player's left hand holding the subunit 76. As a footnote, here, the degree of retraction of the character object's left arm is changed between two levels depending on whether θ6 is larger or smaller than the predetermined threshold. However, it is not limited to this form, and the degree of retraction of the character object's left arm may be changed in multiple levels or continuously depending on θ6.
(Opening and Closing the Left Palm)
The player can open and close the character object's left palm by operating the operation sections 78 provided to the subunit 76. For example, as shown in (a) of FIG. 17, the character object's left palm opens when the Z button provided to the subunit 76 is not pressed; and as shown in (b) of FIG. 17, the character object's left palm is closed when the Z button provided to the subunit 76 is pressed. With this, the player can cause the character object to grab a hold with its left hand, or release the hold.
By combining the above-described operations, the player can cause the character object to grab a desired hold, and cause the character object to move upward. For example, as shown in FIG. 18, the player can cause the character object to: extend the right and the left arms of the character object while having the right and the left palms of the character object open, and move the right and the left hands of the character object each toward desired holds ((a) of FIG. 18); grab the holds by closing the right and the left palms of the character object ((b) of FIG. 18); and retract the right and the left arms of the character object while having the right and the left palms of the character object closed, and pull up the character object's body ((c) of FIG. 18).
(Pulling Up and Putting Down a Foot)
The player can place the character object's right foot on a hold and remove the character object's right foot from the hold, by placing his/her right foot on the load controller 36 or removing his/her right foot from the load controller 36. Similarly, the player can place the character object's left foot on a hold or remove the character object's left foot from the hold, by placing his/her left foot on the load controller 36 or removing his/her left foot from the load controller 36. For example, as shown in (a) of FIG. 19, the player can place the character object's both feet on holds by standing on the load controller 36 with both feet. Furthermore, as shown in (b) of FIG. 19, the player can place the character object's right foot on a hold and keep the character object's left foot in midair by standing on the load controller 36 with just the right foot. Additionally, as shown in (c) of FIG. 19, the player can place the character object's left foot on a hold and keep the character object's right foot in midair by standing on the load controller 36 with just the left foot. Furthermore, as shown in (d) of FIG. 19, the player can keep the character object's both feet in midair by removing both feet from the load controller 36 (i.e. a state in which the player has stepped off the load controller 36). In the state in which the character object's both feet are in midair, the character object has to be grabbing a hold with at least one hand. Otherwise, the character object falls and it will be game over.
For example, if the player places his/her right foot on the load controller 36 when the character object's right foot is in midair, the character object places the character object's right foot on a hold that is near the right foot at that point in time.
(Extending and Retracting a Leg)
The player can retract and extend the character object's leg (right leg, left leg, or both legs) which is on a hold, by moving his/her center of gravity in the front-back direction when standing on the load controller 36. For example, as shown in (a) of FIG. 20, when the player is standing on the load controller 36 with both feet, the further the player moves his/her center of gravity forward, the more the character object extends both legs; and as shown in (c) of FIG. 20, when the player is standing on the load controller 36 with both feet, the further the player moves his/her center of gravity backward, the more the character object retracts both legs. Furthermore, for example, as shown in (a) of FIG. 21, when the player is standing on the load controller 36 with only the right foot, the further the player moves his/her center of gravity forward, the more the character object extends the right leg; and as shown in (c) of FIG. 21, when the player is standing on the load controller 36 with just the right foot, the further the player moves his/her center of gravity backward, the more the character object retracts the right leg. With this, the player can move the character object's hand, and the character object's foot which is kept in midair, to a desired height level.
As described above, the player can lead the character object to the goal hold, by using, the controller 7 and the load controller 36, and by properly controlling the hands and feet of the character object.
(Process Details of the Game Apparatus)
Details about processes of the game apparatus 12 for achieving the above-described game will be described next.
FIG. 22 shows a memory map of the external main memory 46. In this embodiment, an example, in which the CPU 40 executes a game process by using the external main memory 46, is described. However, it is not limited to this manner, and the CPU 40 may execute the game process by using the internal main memory 42e. A game program and an image data, stored on the optical disc 18 are loaded on the external main memory 46. The game program and the image data may be provided to the game apparatus 12, not just from the optical disc 18, but also from other arbitrary computer readable storage medium, or a network of wired or wireless communication. The external main memory 46 is also used as a storage area for four operating object flags (operating object flags for the right hand, the left hand, the right foot, and the left foot) used when the game program is executed.
(Main Process)
The processes of the CPU 40 executed based on the above-described game program will be described below with reference to the flowcharts in FIG. 23 to FIG. 26.
As shown in FIG. 23, when the execution of the game program is initiated, the CPU 40 executes an initialization process at step S10. At the initialization process, securement (resetting) of the storage area for the above described operating object flags in the external main memory 46 is conducted.
At step S11, the CPU 40 executes a right hand operation process. The right hand operation process is a process that controls the motion of the character object's right hand. Details of the right hand operation process will be described later.
At step S12, the CPU 40 executes a left hand operation process. The left hand operation process is a process that controls the motion of the character object's left hand. Details of the left hand operation process will be described later.
At step S13, the CPU 40 executes a foot operation process. The foot operation process is a process that controls the motion of the character object's foot. Details of the foot operation process will be described below.
At step S14, the CPU 40 judges whether to quit the game or not. The process goes back to step S11 when continuing the game, and the CPU 40 ceases the execution of the game program when quitting the game. The CPU 40 quits the game, for example, when the character object has grabbed the goal hold, or when the character object has fallen.
Only a process for determining the positions of the character object's hand and foot is shown in FIG. 23, but in reality, a process for moving the character object's torso in response to the character object's hand and foot motion; a process for generating, a game image that includes the character object, the holds, the goal hold, a background, and the like, and for outputting the game image to the monitor 34; and the like are also conducted.
(Right Hand Operation Process)
Details of the right hand operation process at step S11 in FIG. 23 will be described below with reference to the flowchart in FIG. 24.
When the right hand operation process is initiated, the CPU 40 judges whether the B button (FIG. 14) provided to the core unit 70 is pressed or not at step S20. The process proceeds to step S21 if the B button is pressed, and if not, the process proceeds to step S24.
At step S21, the CPU 40 judges whether a hold exists in the vicinity of the character object's right hand. The process proceeds to step S22 if there is a hold in the vicinity of the character object's right hand, and if not, the process proceeds to step S24.
At step S22, the CPU 40 fixes the character object's right hand to the hold that is in the vicinity of the right hand ((b) of FIG. 14). Then, the process proceeds to step S23.
At step S23, the CPU 40 turns off the operating object flag for the right hand. Then, the process proceeds to step S26.
At step S24, the CPU 40 removes the character object's right hand from a hold ((a) of FIG. 14). Then, the process proceeds to step S25.
At step S25, the CPU 40 turns on the operating object flag for the right hand. Then, the process proceeds to step S26.
At step S26, the CPU 40 acquires acceleration data (each acceleration of the X-axis direction, the Y-axis direction, and the Z-axis direction, detected by the acceleration sensor 701) of the core unit 70. Then, the process proceeds to step S27.
At step S27, the CPU 40 calculates θ1 in FIGS. 12, and θ3 in FIG. 13, based on the acceleration data of the core unit 70 acquired at step S26. Then, the process proceeds to step S28. θ1 can be calculated from the accelerations in the X-axis direction and the in Y-axis direction, detected by the acceleration sensor 701. θ3 can be calculated from the accelerations in the Y-axis direction and in the Z-axis direction, detected by the acceleration sensor 701.
At step S28, the CPU 40 judges whether the operating object flag for the right hand is turned on or not. If it is turned on (i.e. when the character object's right hand is not grabbing any holds), the process proceeds to step S29, and if not (i.e. when the character object's right hand is grabbing any one of the holds), the process proceeds to step S30.
At step S29, the CPU 40 determines the direction of the character object's right arm (θ2 in FIG. 12), based on θ1 calculated at step S27. Then, the process proceeds to step S30.
At step S30, the CPU 40 judges whether θ3 calculated at step S27 is smaller than the predetermined threshold. The process proceeds to step S31 if θ3 is smaller than the predetermined threshold ((b) of FIG. 13), and if not ((a) of FIG. 13), the process proceeds to step S32.
At step S31, the CPU 40 retracts the character object's right arm ((b) of FIG. 13). Then, the right hand operation process is ended.
At step S32, the CPU 40 extends the character object's right arm ((a) of FIG. 13). Then, the right hand operation process is ended.
(Left Hand Operation Process)
Details of the left hand operation process at step S12 in FIG. 23 will be described below with reference to the flowchart in FIG. 25.
When the left hand operation process is initiated, the CPU 40 judges whether the Z button (FIG. 17) provided to the subunit 76 is pressed or not at step S40. The process proceeds to step S41 if the Z button is pressed, and if not, the process proceeds to step S44.
At step S41, the CPU 40 judges whether a hold exists in the vicinity of the character object's left hand. The process proceeds to step S42 if there is a hold in the vicinity of the character object's left hand, and if not, the process proceeds to step S44.
At step S42, the CPU 40 fixes the character object's left hand to the hold that is in the vicinity of the character object's left hand ((b) of FIG. 17). Then, the process proceeds to step S43.
At step S43, the CPU 40 turns off the operating object flag for the left hand. Then, the process proceeds to step S46.
At step S44, the CPU 40 removes the character object's left hand from a hold ((a) of FIG. 17). Then, the process proceeds to step S45.
At step S45, the CPU 40 turns on the operating object flag for the left hand. Then, the process proceeds to step S46.
At step S46, the CPU 40 acquires acceleration data (each acceleration of the X-axis direction, the Y-axis direction, and the Z-axis direction, detected by the acceleration sensor 761) of the subunit 76. Then, the process proceeds to step S47.
At step S47, the CPU 40 calculates θ4 in FIGS. 15, and θ6 in FIG. 16, based on the acceleration data of the subunit 76 acquired at step S46. Then, the process proceeds to step S48. θ4 can be calculated from the accelerations in the X-axis direction and in the Y-axis direction, detected by the acceleration sensor 761. θ6 can be calculated from the accelerations in the Y-axis direction and in the Z-axis direction, detected by the acceleration sensor 761.
At step S48, the CPU 40 judges whether the operating object flag for the left hand is turned on or not. If it is turned on, (i.e. when the character object's left hand is not grabbing any holds), the process proceeds to step S49, and if not, (i.e. when the character object's left hand is grabbing any one of the holds), the process proceeds to step S50.
At step S49, the CPU 40 determines the direction of the character object's left arm (θ5 in FIG. 15), based on θ4 calculated at step S47. Then, the process proceeds to step S50.
At step S50, the CPU 40 judges whether θ6 calculated at step S47 is smaller than the predetermined threshold. The process proceeds to step S51 if θ6 is smaller than the predetermined threshold ((b) of FIG. 16), and if not ((a) of FIG. 16), the process proceeds to step S52.
At step S51, the CPU 40 retracts the character object's left arm ((b) of FIG. 16). Then, the left hand operation process is ended.
At step S52, the CPU 40 extends the character object's left arm ((a) of FIG. 16). Then, the left hand operation process is ended.
(Foot Operation Process)
Details of the foot operation process at step S13 in FIG. 23 will be described below with reference to the flowchart in FIG. 26.
When the foot operation process is initiated, the CPU 40 acquires, at step S60, load values detected by each of the four load sensors 36b provided to the load controller 36. Then, the process proceeds to step S61.
At step S61, the CPU 40 calculates a “whole load summation value” by adding the load values of the four load sensor 36b acquired at step S60; and judges whether the whole load summation value is equal to or more than a certain value (e.g. 7 kg). Then, the process proceeds to step S65 if the whole load summation value is equal to or more than a certain value, and if not (i.e. when it is assumed that the player has both of his/her feet off the load controller 36), the process proceeds to step S62.
At step S62, the CPU 40 removes the character object's both feet from the holds. Then, the process proceeds to step S63.
At step S63 the CPU 40 turns off the operating object flag for the right foot. Then, the process proceeds to step S64.
At step S64, the CPU 40 turns off the operating object flag for the left foot. Then, the process proceeds to step S76.
At step S65, the CPU 40, calculates a “right side load summation value” by adding the load values of the two load sensors 36b positioned on the right side of the player among the load values of the four load sensor 36b acquired at step S60, and judges whether the right side load summation value is equal to or more than 80% of the whole load summation value (however, “80%” is merely one example). Then, the process proceeds to step S66 if the right side load summation value is equal to or more than 80% of the whole load summation value (i.e. a case in which it is assumed that the player is standing on the load controller 36 with just the right foot), and if not, the process proceeds to step S69.
At step S66, the CPU 40 fixes only the character object's right foot on the hold, and removes the character object's left foot from the hold. Then, the process proceeds to step S67.
At step S67, the CPU 40 turns on the operating object flag for the right foot. Then, the process proceeds to step S68.
At step S68, the CPU 40 turns off the operating object flag for the left foot. Then, the process proceeds to step S76.
At step S69, the CPU 40, calculates a “left side load summation value” by adding the load value of the two load sensors 36b positioned on the left side of the player among the load values of the four load sensors 36b acquired at step S60, and judges whether the left side load summation value is equal to or more than 80% of the whole load summation value (however, “80%” is merely one example). Then, the process proceeds to step S70 if the left side load summation value is equal to or more than 80% of the whole load summation value (i.e. a case in which it is assumed that the player is standing on the load controller 36 with just the left foot), and if not (i.e. a case in which it is assumed that the player is standing on the load controller 36 with both feet), the process proceeds to step S73.
At step S70, the CPU 40 fixes only the character object's left foot on the hold, and removes the character object's right foot from the hold. Then, the process step proceeds to S71.
At step S71, the CPU 40 turns off the operating object flag for the right foot. Then, the process proceeds to step S72.
At step S72, the CPU 40 turns on the operating object flag for the left foot. Then, the process proceeds to the step S76.
At step S73, the CPU 40 fixes character object's both feet on the holds. Then, the process proceeds to step S74.
At step S74, the CPU 40 turns on the operating object flag for the right foot. Then, the process proceeds to step S75.
At step S75, the CPU 40 turns on the operating object flag for the left foot. Then, the process proceeds to step S76.
At step S76, the CPU 40 calculates the player's position of center of gravity on the load controller 36 in the front-back direction. For example, the CPU 40, calculates a “front load summation value” by adding the load values of the two load sensors 36b positioned in front of the player among the load values of the four load sensors 36b acquired at step S60, and utilizes a ratio of the front load summation value to the whole load summation value as the position of center of gravity of the player on the load controller 36 in the front-back direction. Then, the process proceeds to step S77.
At step S77, the CPU 40 determines a character object's knee angle on the side of the foot where the operating object flag thereof is turned on, based on the position of center of gravity (the position of center of gravity of the player on the load controller 36 in the front-back direction) calculated at step S76 (FIG. 20, FIG. 21). Then, the foot operation process is ended.
As described above, according to this embodiment, the player can control the hands and feet of the character object intuitively and variedly, by operating the controller 7 and the load controller 36.
In this embodiment, the character object's right hand is controlled in response to the inclination about the Z-axis (FIG. 12) and the inclination about the X-axis (FIG. 13), of the core unit 70. However, and other ways of control may be used as long as the character object's right hand is controlled in response to the attitude of the core unit 70.
Furthermore, in this embodiment, the character object's left hand is controlled in response to the inclination about the Z-axis (FIG. 15), and the inclination about the X-axis (FIG. 16), of the subunit 76. However, and other ways of control may be used as long as the character object's left hand is controlled in response to the attitude of the subunit 76.
Still further, in this embodiment, among the four load sensors 36b, a load summation value on one side (sum of load values within one group, as described in claim 4) is calculated by adding the load values of two load sensors 36b; and the character object's foot is controlled by using the ratio of the load summation value on one side to the whole load summation value. However, the character object's foot may be controlled by using the ratio of a load value of one load sensor 36b (sum of load values within one group, as described in claim 4) to the whole load summation value. Moreover, instead of using a ratio of a sum of load values within one group, to the whole load summation value; the character object's foot may be controlled by using a ratio of two sums of load values from two groups, such as the ratio of the “right side load summation value” to the “left side load summation value”.
Furthermore, in this embodiment, the motion of the character object is changed in response to, the position of center of gravity in the right-left direction ((b) and (c) of FIG. 19), and the position of center of gravity in the front-back direction (FIG. 20, FIG. 21), of the player on the load controller 36. However, the current invention is not limited to such way of controlling, and the motion of the character object may be changed in response to the player's center of gravity position movement in a slanted direction, such as a diagonal direction of the load controller 36.
Moreover, in this embodiment, the load sensors 36b are provided to the four corners of the load controller 36. However, the current invention is not limited to this configuration, and the installation position of the load sensors 36b may be arbitrarily determined. For example, load sensors 36b may be provided in the vicinity of respective centers of the four sides of the load controller 36.
In this embodiment, four load sensors 36b are provided to the load controller 36. However, the current invention is not limited to this configuration, and two, three, five, or more load sensors 36b may be provided. The position of center of gravity can only be sensed one-dimensionally if only two load sensors 36b are provided. On the other hand, the position of center of gravity can be sensed two-dimensionally if three or more load sensors 36b are provided.
Moreover, in this embodiment, a character object that simulates a human is controlled in response to the user operation. However, the current invention is not limited to such form of a character object, and a character object may be a simulation of other creatures, or other objects (objects from the real world, or from a virtual world). In a case in which a character object that simulates an airplane is controlled in response to a user operation, for example, the right wing of the airplane may be controlled based on the attitude of the core unit 70, the left wing of the airplane may be controlled based on the attitude of the subunit 76, and the tail wing of the airplane may be controlled based on a load applied to the load controller 36.
Alternate Embodiment 1
Depending on the body position of the player, there may be a case in which an input operation intended by the player is not conducted. This case may happen in a game system that includes, as input apparatuses, at least one hand-held type controller that is held by the player, such as the core unit 70 or the subunit 76; and a stand board type controller in which a player holding the hand-held type controller stands on, such as the load controller 36; and when the executed game process detects the inclination direction of the hand-held type controller and the center of gravity of the player standing on the board type controller, and utilizes both detection results. For example, when assuming a situation in which the player holds the core unit 70 such that the longitudinal direction of the core unit 70 is vertical, as shown in (a) of FIG. 27, if the player is standing upright on the load controller 36 (i.e. if the position of center of gravity of the player in the front-back direction on the load controller 36, is almost in the central position of the load controller 36), the longitudinal direction of the core unit 70 becomes a direction intended by the player (i.e. such that the longitudinal direction of the core unit 70 becomes vertical). However, if the player is in a forward leaning attitude on the load controller 36 as shown in (b) of FIG. 27 (i.e. if the position of center of gravity of the player in the front-back direction on the load controller 36 has shifted forward, with regard to the player, when compared to the case in (a) of FIG. 27), even when the player himself/herself is feeling as if he/she is holding the core unit 70 such that the longitudinal direction of the core unit 70 is vertical, the actual longitudinal direction of the core unit 70 tends to shift away from the vertical direction. It is similar when the player standing on the load controller 36 is leaning backward, rightward, or leftward. As a result, the player may not be able to conduct the intended operation, and there is a possibility that the player may feel that the game system has an inferior operability. Therefore, in order to negate such possibilities, the detected inclination direction of the hand-held type controller may be compensated in response to the detected center of gravity of the player, and then utilized in the game process. For example, in the case in (b) of FIG. 27, the input intended by the player can be conducted by compensating the calculated attitude (inclination) of the core unit 70, which is an attitude obtained based on the detection result of the acceleration sensor 701 provided in the core unit 70, by an angle of θ7. The compensation amount can be determine by, for example, a look-up table that associates the center of gravity of the player standing on the board type controller, and the compensation amount. An input can be conducted as the player has intended, by compensating a detected inclination direction of the hand-held type controller in response to the degree of inclination of the player's inclination direction (this can be judged from the position of center of gravity).
Furthermore, in the above embodiment, the detected inclination direction of the hand-held type controller is compensated in the opposite direction of the player's inclination direction. For example, when the player's body is inclined in the forward direction of the player, the detected inclination direction of the hand-held type controller is compensated backward of the actual player's direction. However, in some cases the detected inclination direction of the hand-held type controller may be compensated in the same direction of the player's inclination direction (i.e. in cases in which such compensation allows conducting an input intended by the player better). For example, when the player inclines the core unit 70 in a direction that enlarges θ3 which is shown in FIG. 13 (i.e. when the player tilts the core unit 70 forward), the more the player tries to inclines the core unit 70 forward, the higher the chance that the player's whole body would unintentionally tip forward due to the player being obsessed in the operation of the game becomes. Therefore, in this case, it is preferable that θ3, which is the detected inclination direction of the core unit 70, is compensated to be a larger value than original, by understanding, a forward motion of the position of center of gravity of the player on the load controller 36 in the front-back direction, as an intention of the player desiring to incline forward the core unit further. With this, an input as intended by the player can be conducted.
Alternate Embodiment 2
In the above described alternate example 1, an example in which the detected inclination direction of the hand-held type controller is compensated in response to the center of gravity of the player standing on the board type controller. However, conversely, a case taken into consideration may be one in which the detected center of gravity of the player standing on the board type controller is compensated in response to the inclination direction of the hand-held type controller. For example, as described above, when the player inclines the core unit 70 in a direction that enlarges θ3 which is shown in FIG. 13 (i.e. when the player tilts the core unit 70 forward), the more the player tries to incline the core unit 70 forward, the chances that the player's whole body would unintentionally tip forward due to the player being obsessed in the operation of the game. As a result, the position of center of gravity of the player on the load controller 36 in the front-back direction shifts forward, and the character object's knee will extend without the user's intention. Therefore, in this case, it is preferable if the detected position of center of gravity is compensated further backward, presuming, based on θ3 the inclination direction of the core unit 70 becoming larger, that the player on the load controller 36 has unintentionally tipped forward. With this, an input as intended by the player can be conducted.
While the embodiments herein have been described in detail, the foregoing description is in all aspects illustrative and not restrictive. It is understood that numerous other modifications and variations can be devised without departing from the scope of the invention.

## Claims

1. An information processing apparatus comprising:
a display apparatus;
a first input device;
a second input device;
a third input device;
a load detector that includes at least three load sensors, the load detector configured to detect a load applied to the third input device;
a processing system that includes at least one processor, the processing system configured to:
output a character object to the display apparatus;
calculate a first attitude of the first input device;
calculate a second attitude of the second input device;
cause the character object to conduct at least one first motion among a plurality of motions, in response to the calculated first attitude;
cause the character object to conduct at least one second motion among a plurality of motions, in response to the calculated second attitude;
select at least one group that includes at least one load sensor from among the at least three load sensors;
calculate a sum of load values detected by the load sensors included within each of the at least one group; and
control a third motion of the character object based on the calculated sum of load values of the selected at least one group.

2. The information processing apparatus according to claim 1, wherein the first and second input devices respectively include at least one acceleration sensor and the processing system is further configured to:
calculate a first inclination direction based on a value obtained by the at least one acceleration sensor of the first input device;
calculate a second inclination direction based on a value obtained by the at least one acceleration sensor of the second input device;
cause the character object to conduct different motions in cases when the first inclination direction about a first axis as opposed to being about a second axis which is different from the first axis; and
cause the character object to conduct different motions in cases when the second inclination direction is an inclination direction about the third axis as opposed to being about a fourth axis which is different from the third axis.

3. The information processing apparatus according to claim 1, wherein the processing system is further configured to cause the character object to conduct another additional motion based on the first attitude, second attitude, and/or the load applied to the third input device in combination with operation buttons.

4. The information processing apparatus according to claim 1, wherein
the at least one first motion is a motion associated with a first part of the character object;
the at least one second motion is a motion associated with a second part of the character object; and
the third motion is a motion associated with a third part of the character object.

5. The information processing apparatus according to claim 4, wherein
the first input device is configured to be operated by a right hand of a player,
the second input device is configured to be operated by a left hand of the player,
the third input device is configured to be operated by at least one foot of the player,
the first part is a right hand of the character object,
the second part is a motion of a left hand of the character object, and
the third part is a motion of at least one foot of the character object.

6. The information processing apparatus according to claim 1, wherein the processing system is further configured to:
compensate the first attitude in response to a load applied to the third input device; and
compensate the second attitude in response to a load applied to the third input device.

7. The information processing apparatus according to claim 1, wherein the processing system is further configured to compensate the load applied to the third input device in response to calculation of the first and/or second attitude.

8. The apparatus of claim 1, wherein the processing system is further configured to cause the character object to conduct different motions in cases when load values detected by the at least three load sensors are in a first state, and when load values detected by the at least three load sensors are in a second state.

9. The apparatus of claim 1, wherein the processing system is further configured to:
select, from among the at least three load sensors, a second group that is different from the at least one group;
calculate each sum of load values detected by the load sensors included in each of the selected groups; and
control a fourth motion of the character object, which is a motion different from the third motion, based on at least one sum of the selected groups.

10. A non-transitory computer readable storage medium that stores a computer program for use with an information processing apparatus that includes a processing system that includes at least one processor, the information processing apparatus configured to communicate with a display apparatus, a first input device, a second input device, and a third input device, as the stored instructions comprising instructions that are configured to:
display a character object on the display apparatus;
calculate a first attitude of the first input device;
calculate a second attitude of the second input device;
process a load value that is based on a load applied to the third input device, the third input device set to include at least three load sensors that detect the load applied the third input device;
cause the character object to conduct at least a first motion among a plurality of motions based on the first attitude;
cause the character object to conduct at least a second motion among a plurality of motions based on the second attitude;
select a group that includes at least one load sensor from among the at least three load sensors;
calculate a sum of load values detected by the load sensors based on the at least one load sensor within the selected group; and
control a third motion of the character object based on the calculated sum of load values of the selected group.

11. The medium of claim 10, wherein the first and second input devices are set to respectively include at least one acceleration sensor and the stored instructions further comprise instructions that are configured to:
calculate a first inclination direction based on a value obtained by the at least one acceleration sensor of the first input device;
calculate a second inclination direction based on a value obtained by the at least one acceleration sensor of the second input device;
cause the character object to conduct a first motion when the first inclination direction is about a first axis and conduct a second motion, which is different from the first motion, when the first inclination direction is about a second axis that is different from the first axis; and
cause the character object to conduct a third motion when the second inclination direction is about a third axis and conduct a fourth motion, which is different from the third motion, when the second inclination direction is about a fourth axis that is different from the third axis.

12. The medium of claim 10, wherein the stored instructions further comprise instructions that are configured to cause the character object to conduct another additional motion based on the first attitude, second attitude, and/or the load applied to the third input device in combination with operation buttons.

13. The medium of claim 10, wherein:
the first motion is a motion associated with a first part of the character object;
the second motion is a motion associated with a second part of the character object; and
the third motion is a motion associated with a third part of the character object.

14. The medium of claim 10, wherein the stored instructions further comprise instructions that are configured to:
compensate the first attitude in response to a load applied to the third input device; and
compensate the second attitude in response to a load applied to the third input device.

15. The medium of claim 10, wherein the stored instructions further comprise instructions that are configured to compensate the load applied to the third input device in response to calculation of the first and/or second attitude.

16. A computer implemented method implemented on a processing system that includes at least one processor, the processing system set to communicate with a display device, a first input device, a second input device, and a third input device that is configured to detect a load applied to the third input device, the third input device including at least three load sensors, the method comprising:
outputting a character object to be displayed on the display device;
calculating a first attitude of the first input device;
calculating a second attitude of the second input device;
processing a load value that is based on a load applied to the third input device, the third input device including at least three load sensors that detect the load applied the third input device;
causing the character object to conduct at least a first motion among a plurality of motions based on the first attitude;
causing the character object to conduct at least a second motion among a plurality of motions based on the second attitude;
selecting a group that includes at least one load sensor from among the at least three load sensors;
calculating a sum of load values detected by the load sensors based on the at least one load sensor within the selected group; and
controlling a third motion of the character object based on the calculated sum of load values of the selected group.

17. A computing apparatus that is configured to communicate with a display device, a first input device, a second input device, and a third input device that includes at least three load sensors, the third input device set to detect a load applied to the third input device, the computing apparatus comprising:
a processing system that includes at least one processor, the processing system configured to:
generate a character object to be displayed on the display device;
calculate a first attitude of the first input device;
calculate a second attitude of the second input device;
process a load value that is based on the load detected by the third input device;
cause the character object to conduct at least a first motion among a plurality of motions based on the first attitude;
cause the character object to conduct at least a second motion among a plurality of motions based on the second attitude;
select a group that includes at least one load sensor from among the at least three load sensors;
calculate a sum of load values based on the at least one load sensor within the selected group; and
control a third motion of the character object based on the calculated sum of load values of the selected group.