(57)【要約】【課題】動きを検出する操作手段と荷重を検出する操作手段とを用いて、多様で複雑な操作をより直感的に実現可能な情報処理装置およびコンピュータプログラムを提供すること。【解決手段】プレイヤは、コアユニット７０の向きを変えることによって、キャラクタオブジェクトの右手の向きを変えたり、キャラクタオブジェクトの右腕を伸ばしたり曲げたりすることができる。プレイヤは、サブユニット７６の向きを変えることによって、キャラクタオブジェクトの左手の向きを変えたり、キャラクタオブジェクトの左腕を伸ばしたり曲げたりすることができる。プレイヤは、プレイヤは、荷重コントローラ３６の上に乗った状態で、重心を前後方向に移動させることによって、キャラクタオブジェクトの足を曲げたり伸ばしたりすることができる。【選択図】図１０
2010125171.tif 000002
【特許請求の範囲】
【請求項１】
表示装置と、第１操作手段と、第２操作手段と、第３操作手段とを備える情報処理装置であって、
前記表示装置にキャラクタオブジェクトを表示する表示制御手段と、
前記第１操作手段の姿勢を算出する第１姿勢算出手段と、
前記第２操作手段の姿勢を算出する第２姿勢算出手段と、
前記第３操作手段に加わる荷重を検出する荷重検出手段と、
前記第１姿勢算出手段によって算出された前記第１操作手段の姿勢に応じて、前記キャラクタオブジェクトに対して複数の動作のうち１つ以上の動作を行わせる第１動作指示手段と、
前記第２姿勢算出手段によって算出された前記第２操作手段の姿勢に応じて、前記キャラクタオブジェクトに対して複数の動作のうち１つ以上の動作を行わせる第２動作指示手段と、
前記荷重検出手段によって検出された前記第３操作手段に加わる荷重に応じて、前記キャラクタオブジェクトに対して複数の動作のうち１つ以上の動作を行わせる第３動作指示手段と、
を備える情報処理装置。
【請求項２】
前記第１姿勢算出手段は、前記第１操作手段に内蔵される加速度センサによって得られた値に基づいて前記第１操作手段の傾き方向を算出し、
前記第２姿勢算出手段は、前記第２操作手段に内蔵される加速度センサによって得られた値に基づいて前記第２操作手段の傾き方向を算出し、
前記第１動作指示手段は、前記第１操作手段の傾き方向が第１軸回りの傾き方向の場合と、当該第１軸回りの傾き方向とは異なる第２軸回りの傾き方向の場合とで、前記キャラクタオブジェクトに対してそれぞれ異なる動作を行わせ、
前記第２動作指示手段は、前記第２操作手段の傾き方向が第３軸回りの傾き方向の場合と、当該第３軸回りの傾き方向とは異なる第４軸回りの傾き方向の場合とで、前記キャラクタオブジェクトに対してそれぞれ異なる動作を行わせる、請求項１に記載の情報処理装置。
【請求項３】
前記荷重検出手段は、少なくとも３個の荷重センサを有し、
前記第３動作指示手段は、前記荷重センサにより検出される荷重値が第１の状態であるときと第２の状態であるときとで、前記キャラクタオブジェクトに対してそれぞれ異なる動作を行わせる、請求項１または２に記載の情報処理装置。
【請求項４】
前記荷重検出手段は、少なくとも３個の荷重センサを有し、
前記第３動作指示手段は、前記少なくとも３個の荷重センサから、１個以上の荷重センサからなる少なくとも１つの組を選択し、当該組毎に、各組に含まれる荷重センサにより検出される荷重値の和をそれぞれ算出し、当該少なくとも１つの組の荷重値の和に基づいて、前記キャラクタオブジェクトの第４の動作を制御し、
前記第３動作指示手段は、さらに、前記少なくとも３個の荷重センサから、前記組とは別の組をさらに少なくとも１つ選択し、当該さらに選択した組毎に、各組に含まれる荷重センサにより検出される荷重値の和をそれぞれ算出し、当該さらに選択した少なくとも１つの組の和に基づいて、前記キャラクタオブジェクトの前記第４の動作とは異なる第５の動作を制御する、請求項１または２に記載の情報処理装置。
【請求項５】
前記第１姿勢算出手段、前記第２姿勢算出手段、前記荷重検出手段の少なくとも１つは、操作ボタンとの組み合わせによって、前記キャラクタオブジェクトに対してさらに異なる動作を行わせることができる、請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記第１動作指示手段によって行われる動作は、前記キャラクタオブジェクトの第１の部位に関する動作であり、
前記第２動作指示手段によって行われる動作は、前記キャラクタオブジェクトの第２の部位に関する動作であり、
前記第３動作指示手段によって行われる動作は、前記キャラクタオブジェクトの第３の部位に関する動作である、請求項１〜５のいずれか１項に記載の情報処理装置。
【請求項７】
前記第１操作手段はプレイヤの右手で操作され、
前記第２操作手段はプレイヤの左手で操作され、
前記第３操作手段はプレイヤの足で操作され、
前記第１動作指示手段は前記キャラクタオブジェクトの右手に関する動作であり、
前記第２動作指示手段は前記キャラクタオブジェクトの左手に関する動作であり、
前記第３動作指示手段は前記キャラクタオブジェクトの足に関する動作である、請求項６に記載の情報処理装置。
【請求項８】
前記第１姿勢算出手段によって算出された前記第１操作手段の姿勢を、前記荷重検出手段によって検出された前記第３操作手段に加わる荷重に応じて補正する第１補正手段、および
前記第２姿勢算出手段によって算出された前記第２操作手段の姿勢を、前記荷重検出手段によって検出された前記第３操作手段に加わる荷重に応じて補正する第２補正手段をさらに備える、請求項１〜７のいずれか１項に記載の情報処理装置。
【請求項９】
前記荷重検出手段によって検出された前記第３操作手段に加わる荷重を、前記第１姿勢算出手段または／および前記第２姿勢算出手段によって算出された姿勢に応じて補正する第３補正手段をさらに備える、請求項１〜７のいずれか１項に記載の情報処理装置。
【請求項１０】
表示装置と、第１操作手段と、第２操作手段と、第３操作手段とを備えた情報処理装置のコンピュータを、
前記表示装置にキャラクタオブジェクトを表示する表示制御手段、
前記第１操作手段の姿勢を算出する第１姿勢算出手段、
前記第２操作手段の姿勢を算出する第２姿勢算出手段、
前記第３操作手段に加わる荷重を検出する荷重検出手段、
前記第１姿勢算出手段によって算出された前記第１操作手段の姿勢に応じて、前記キャラクタオブジェクトに対して複数の動作のうち１つ以上の動作を行わせる第１動作指示手段、
前記第２姿勢算出手段によって算出された前記第２操作手段の姿勢に応じて、前記キャラクタオブジェクトに対して複数の動作のうち１つ以上の動作を行わせる第２動作指示手段、および、
前記荷重検出手段によって検出された前記第３操作手段に加わる荷重に応じて、前記キャラクタオブジェクトに対して複数の動作のうち１つ以上の動作を行わせる第３動作指示手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報処理装置およびコンピュータプログラムに関し、より特定的には、表示装置に表示されたキャラクタオブジェクトをユーザの操作に応じて動作させる情報処理装置およびコンピュータプログラムに関する。
【背景技術】
【０００２】
従来から、手で操作する入力手段と、足で操作する入力手段を組み合わせて使用したゲームが知られている。
【０００３】
例えば、特許文献１には、傾きセンサを含む手入力ユニットを手で操作し、また、フットスイッチを含むマットユニットを足で踏んで操作するという情報処理装置が開示されている。
【０００４】
また、非特許文献１では、加速度センサが内蔵されたコントローラを手で持って操作し、荷重センサが内蔵されたボードに足を乗せて操作するゲーム装置が開示されている。
【特許文献１】特開２００８−４９１１７号公報
【非特許文献１】任天堂株式会社、“有酸素運動：リズムボクシング”、［online］、［平成２０年１０月２７日検索］、インターネット＜ＵＲＬ：http://www.nintendo.co.jp/wii/rfnj/training/aerobics/aerobics07.html＞
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１では、傾きセンサからの傾き情報に基づいてプレイヤの手入力ユニットの持ち方が、画面に表示されている運動指示キャラクタの持ち方と同じか否かを判断し、誤った方向に持っている場合は、プレイヤに対し、持ち方を直すように指示するものなので、画面で指示されたとおりの操作しか許されず、操作の自由度に乏しいという問題があった。また、マットユニット内に設けられるフットスイッチに左足と右足を置いて操作するために、フットスイッチは２つ（００２６）、または、同一直線上に４つ（０１６２、図３１）配置されていることが開示されるが、単に、フットスイッチのオン／オフを検出するだけであり、検出できる値のバリエーションが少ない。荷重を検出するセンサを設けてセンサから検出される広いバリエーションを持つ荷重の値に応じてキャラクタに多様な動作を行わせるものではない。
【０００６】
また、非特許文献１では、画面に表示されるトレーナーの動きに合わせてパンチをするように手で把持するコントローラを所定の方向に動かすものなので、画面で指示された所定の操作しか許されず、コントローラの動きに応じてキャラクタに多様な動作を行わせることができず自由度に乏しい。またボード上における足の操作についても、画面に表示されるトレーナーの動きに合わせて所定の足をボードから下ろすものなので、所定の操作しか許されず、自由度に乏しい。
【０００７】
ゆえに、この発明の目的は、動きを検出する操作手段と荷重を検出する操作手段とを用いて、多様で複雑な操作をより直感的に実現可能な情報処理装置およびコンピュータプログラムを提供することである。
【０００８】
また、この発明のその他の目的は、興趣性の高いゲーム装置およびゲームプログラムを提供することである。
【課題を解決するための手段】
【０００９】
上記目的の少なくとも１つを達成するために、この発明は以下の構成を採用した。なお、括弧内の参照符号および補足説明は、この発明の理解を助けるために、後述する実施例との対応関係の一例を記したものであって、この発明の範囲を何ら限定するものではない。
【００１０】
この発明の情報処理装置は、表示装置（３４）と、第１操作手段（７０）と、第２操作手段（７６）と、第３操作手段（３６）と、表示制御手段（４０）と、第１姿勢算出手段（４０、Ｓ２７）と、第２姿勢算出手段（４０、Ｓ４７）と、荷重検出手段（３６ｂ）と、第１動作指示手段（４０、Ｓ１１）と、第２動作指示手段（４０、Ｓ１２）と、第３動作指示手段（４０、Ｓ１３）とを備える。
上記表示制御手段は、上記表示装置にキャラクタオブジェクトを表示する。上記第１姿勢算出手段は、上記第１操作手段の姿勢を算出する。上記第２姿勢算出手段は、上記第２操作手段の姿勢を算出する。上記荷重検出手段は、上記第３操作手段に加わる荷重を検出する。上記第１動作指示手段は、上記第１姿勢算出手段によって算出された上記第１操作手段の姿勢に応じて、上記キャラクタオブジェクトに対して複数の動作のうち１つ以上の動作を行わせる。上記第２動作指示手段は、上記第２姿勢算出手段によって算出された上記第２操作手段の姿勢に応じて、上記キャラクタオブジェクトに対して複数の動作のうち１つ以上の動作を行わせる。上記第３動作指示手段は、上記荷重検出手段によって検出された上記第３操作手段に加わる荷重に応じて、上記キャラクタオブジェクトに対して複数の動作のうち１つ以上の動作を行わせる。
これにより、ユーザ（操作者）は、第１操作手段および第２操作手段を傾けたり、第３操作手段に荷重を加えたりすることによって、直感的に多様な動作をキャラクタオブジェクトに行わせることができる。
【００１１】
上記第１姿勢算出手段は、上記第１操作手段に内蔵される加速度センサ（７０１）によって得られた値に基づいて上記第１操作手段の傾き方向を算出し、上記第２姿勢算出手段は、上記第２操作手段に内蔵される加速度センサ（７６１）によって得られた値に基づいて上記第２操作手段の傾き方向を算出し、上記第１動作指示手段は、上記第１操作手段の傾き方向が第１軸回りの傾き方向の場合と、当該第１軸回りの傾き方向とは異なる第２軸回りの傾き方向の場合とで、上記キャラクタオブジェクトに対してそれぞれ異なる動作を行わせ、上記第２動作指示手段は、上記第２操作手段の傾き方向が第３軸回りの傾き方向の場合と、当該第３軸回りの傾き方向とは異なる第４軸回りの傾き方向の場合とで、上記キャラクタオブジェクトに対してそれぞれ異なる動作を行わせるようにしてもよい。
これにより、ユーザは、直感的に多様な動作をキャラクタオブジェクトに行わせることができる。
【００１２】
上記荷重検出手段は、少なくとも３個の荷重センサ（３６ｂ）を有し、上記第３動作指示手段は、上記荷重センサにより検出される荷重値が第１の状態であるときと第２の状態であるときとで、上記キャラクタオブジェクトに対してそれぞれ異なる動作を行わせるようにしてもよい。
これにより、ユーザは、直感的に多様な動作をキャラクタオブジェクトに行わせることができる。
【００１３】
上記荷重検出手段は、少なくとも３個の荷重センサ（３６ｂ）を有し、上記第３動作指示手段は、上記少なくとも３個の荷重センサから、１個以上の荷重センサからなる少なくとも１つの組（たとえば、プレイヤから見て右側に位置する２つの荷重センサからなる組と、プレイヤから見て左側に位置する２つの荷重センサからなる組）を選択し、当該組毎に、各組に含まれる荷重センサにより検出される荷重値の和をそれぞれ算出し、当該少なくとも１つの組の荷重値の和に基づいて、上記キャラクタオブジェクトの第４の動作を制御し（Ｓ６５、Ｓ６９）、上記第３動作指示手段は、さらに、上記少なくとも３個の荷重センサから、上記組とは別の組をさらに少なくとも１つ選択し（たとえば、プレイヤから見て前方に位置する２つの荷重センサからなる組と、プレイヤから見て後方に位置する２つの荷重センサからなる組）、当該さらに選択した組毎に、各組に含まれる荷重センサにより検出される荷重値の和をそれぞれ算出し、当該さらに選択した少なくとも１つの組の和に基づいて、上記キャラクタオブジェクトの上記第４の動作とは異なる第５の動作を制御する（Ｓ７６）ようにしてもよい。
これにより、ユーザは、直感的に多様な動作をキャラクタオブジェクトに行わせることができる。特に、第３操作手段を用いて、少なくとも２種類の動作指示を同時に入力することができる。
【００１４】
上記第１姿勢算出手段、上記第２姿勢算出手段、上記荷重検出手段の少なくとも１つは、操作ボタン（図１４のＢボタン、図１７のＺボタン）との組み合わせによって、上記キャラクタオブジェクトに対してさらに異なる動作を行わせるようにしてもよい。
これにより、ユーザは、より多様で複雑な操作が可能となる。
【００１５】
上記第１動作指示手段によって行われる動作は、上記キャラクタオブジェクトの第１の部位（右手）に関する動作であり、上記第２動作指示手段によって行われる動作は、上記キャラクタオブジェクトの第２の部位（左手）に関する動作であり、上記第３動作指示手段によって行われる動作は、上記キャラクタオブジェクトの第３の部位（足）に関する動作であってもよい。
これにより、ユーザは、キャラクタオブジェクトの複雑な動きを、第１操作手段、第２操作手段および第３操作手段を用いて、直感的に簡単に制御することができる。
【００１６】
上記第１操作手段はプレイヤの右手で操作され、上記第２操作手段はプレイヤの左手で操作され、上記第３操作手段はプレイヤの足で操作され、上記第１動作指示手段は上記キャラクタオブジェクトの右手に関する動作であり、上記第２動作指示手段は上記キャラクタオブジェクトの左手に関する動作であり、上記第３動作指示手段は上記キャラクタオブジェクトの足に関する動作であってもよい。
これにより、実際のユーザの動きと連動するようにキャラクタオブジェクトが動作するため、ユーザは、キャラクタオブジェクトを直感的に操作できる。
【００１７】
上記情報処理装置は、上記第１姿勢算出手段によって算出された上記第１操作手段の姿勢を、上記荷重検出手段によって検出された上記第３操作手段に加わる荷重に応じて補正する第１補正手段、および上記第２姿勢算出手段によって算出された上記第２操作手段の姿勢を、上記荷重検出手段によって検出された上記第３操作手段に加わる荷重に応じて補正する第２補正手段をさらに備えてもよい。
これにより、ユーザの体勢を考慮して、ユーザの意図した通りの入力操作が可能となる。
【００１８】
上記情報処理装置は、上記荷重検出手段の検出結果によって検出された上記第３操作手段に加わる荷重を、上記第１姿勢算出手段または／および上記第２姿勢算出手段によって算出された姿勢に応じて補正する第３補正手段をさらに備えてもよい。
これにより、ユーザの体勢を考慮して、ユーザの意図した通りの入力操作が可能となる。
【００１９】
この発明のコンピュータプログラムは、表示装置（３４）と、第１操作手段（７０）と、第２操作手段（７６）と、第３操作手段（３６）とを備えた情報処理装置のコンピュータ（４０）を、表示制御手段（４０）、第１姿勢算出手段（４０、Ｓ２７）、第２姿勢算出手段（４０、Ｓ４７）、荷重検出手段（４０、Ｓ６０）、第１動作指示手段（４０、Ｓ１１）、第２動作指示手段（４０、Ｓ１２）、および第３動作指示手段（４０、Ｓ１３）として機能させる。
上記表示制御手段（４０）は、上記表示装置にキャラクタオブジェクトを表示する。上記第１姿勢算出手段は、上記第１操作手段の姿勢を算出する。上記第２姿勢算出手段は、上記第２操作手段の姿勢を算出する。上記荷重検出手段は、上記第３操作手段に加わる荷重を検出する。上記第１動作指示手段は、上記第１姿勢算出手段によって算出された上記第１操作手段の姿勢に応じて、上記キャラクタオブジェクトに対して複数の動作のうち１つ以上の動作を行わせる。上記第２動作指示手段は、上記第２姿勢算出手段によって算出された上記第２操作手段の姿勢に応じて、上記キャラクタオブジェクトに対して複数の動作のうち１つ以上の動作を行わせる。上記第３動作指示手段は、上記荷重検出手段によって検出された前記第３操作手段に加わる荷重に応じて、上記キャラクタオブジェクトに対して複数の動作のうち１つ以上の動作を行わせる。
これにより、ユーザは、第１操作手段および第２操作手段を傾けたり、第３操作手段に荷重を加えることによって、直感的に多様な動作をキャラクタオブジェクトに行わせることができる。
【発明の効果】
【００２０】
この発明によれば、ユーザは、直感的に多様な動作をキャラクタオブジェクトに行わせることができる。
【００２１】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００２２】
図１を参照して、この発明の一実施例であるゲームシステム１０は、ビデオゲーム装置（以下、単に「ゲーム装置」という。）１２、コントローラ７および荷重コントローラ３６を含む。なお、図示は省略するが、この実施例のゲーム装置１２は、最大４つのコントローラ（７，３６）と通信可能に設計されている。また、ゲーム装置１２と各コントローラ（７，３６）とは、無線によって接続される。たとえば、無線通信は、Ｂｌｕｅｔｏｏｔｈ（登録商標）規格に従って実行されるが、赤外線や無線ＬＡＮなど他の規格に従って実行されてもよい。
【００２３】
ゲーム装置１２は、略直方体のハウジング１４を含み、ハウジング１４の前面にはディスクスロット１６が設けられる。ディスクスロット１６から、ゲームプログラム等を記憶した情報記憶媒体の一例である光ディスク１８が挿入されて、ハウジング１４内のディスクドライブ５４（図２参照）に装着される。ディスクスロット１６の周囲には、ＬＥＤと導光板が配置され、さまざまな処理に応答させて点灯させることが可能である。
【００２４】
また、ゲーム装置１２のハウジング１４の前面であり、その上部には、電源ボタン２０ａおよびリセットボタン２０ｂが設けられ、その下部には、イジェクトボタン２０ｃが設けられる。さらに、リセットボタン２０ｂとイジェクトボタン２０ｃとの間であり、ディスクスロット１６の近傍には、外部メモリカード用コネクタカバー２８が設けられる。この外部メモリカード用コネクタカバー２８の内側には、外部メモリカード用コネクタ６２（図２参照）が設けられ、図示しない外部メモリカード（以下、単に「メモリカード」という。）が挿入される。メモリカードは、光ディスク１８から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム１０を利用してプレイしたゲームのゲームデータ（ゲームの結果データまたは途中データ）を保存（セーブ）しておいたりするために利用される。ただし、上記のゲームデータの保存は、メモリカードに対して行うことに代えて、たとえばゲーム装置１２の内部に設けられるフラッシュメモリ４４（図２参照）のような内部メモリに対して行うようにしてもよい。また、メモリカードは、内部メモリのバックアップメモリとして用いるようにしてもよい。
【００２５】
なお、メモリカードとしては、汎用のＳＤメモリカードを用いることができるが、メモリスティックやマルチメディアカード（登録商標）のような他の汎用のメモリカードを用いることもできる。
【００２６】
ゲーム装置１２のハウジング１４の後面には、ＡＶコネクタ５８（図２参照）が設けられ、そのＡＶコネクタ５８を用いて、ＡＶケーブル３２ａを通してゲーム装置１２にモニタ３４およびスピーカ３４ａを接続する。このモニタ３４およびスピーカ３４ａは典型的にはカラーテレビジョン受像機であり、ＡＶケーブル３２ａは、ゲーム装置１２からの映像信号をカラーテレビのビデオ入力端子に入力し、音声信号を音声入力端子に入力する。したがって、カラーテレビ（モニタ）３４の画面上にたとえば３次元（３Ｄ）ビデオゲームのゲーム画像が表示され、左右のスピーカ３４ａからゲーム音楽や効果音などのステレオゲーム音声が出力される。また、モニタ３４の周辺（この実施例では、モニタ３４の上側）には、２つの赤外ＬＥＤ（マーカ）３４０ｍ，３４０ｎを備えるマーカ部３４ｂが設けられる。このマーカ部３４ｂは、電源ケーブル３２ｂを通してゲーム装置１２に接続される。したがって、マーカ部３４ｂには、ゲーム装置１２から電源が供給される。これによって、マーカ３４０ｍ，３４０ｎは発光し、それぞれモニタ３４の前方に向けて赤外光を出力する。
【００２７】
なお、ゲーム装置１２の電源は、一般的なＡＣアダプタ（図示せず）によって与えられる。ＡＣアダプタは家庭用の標準的な壁ソケットに差し込まれ、ゲーム装置１２は、家庭用電源（商用電源）を、駆動に適した低いＤＣ電圧信号に変換する。他の実施例では、電源としてバッテリが用いられてもよい。
【００２８】
このゲームシステム１０において、ユーザまたはプレイヤがゲーム（またはゲームに限らず、他のアプリケーション）をプレイするために、ユーザはまずゲーム装置１２の電源をオンし、次いで、ユーザはビデオゲーム（もしくはプレイしたいと思う他のアプリケーション）のプログラムを記録している適宜の光ディスク１８を選択し、その光ディスク１８をゲーム装置１２のディスクドライブ５４にローディングする。応じて、ゲーム装置１２がその光ディスク１８に記録されているプログラムに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。ユーザはゲーム装置１２に入力を与えるためにコントローラ７を操作する。コントローラ７は、コアユニット７０とサブユニット７６を接続ケーブル７９で接続して構成されている。たとえば、コアユニット７０に設けられた特定の操作ボタンを操作することによって、ユーザはゲームもしくは他のアプリケーションをスタートさせることができる。また、操作ボタンに対する操作以外にも、コアユニット７０もしくはサブユニット７６自体を動かすことによって、動画オブジェクト（プレイヤオブジェクト）を異なる方向に移動させ、または３Ｄのゲーム世界におけるユーザの視点（カメラ位置）を変化させることができる。
【００２９】
図２は、この実施例のビデオゲームシステム１０の電気的な構成を示すブロック図である。図示は省略するが、ハウジング１４内の各コンポーネントは、プリント基板に実装される。図２に示すように、ゲーム装置１２には、ＣＰＵ４０が設けられる。このＣＰＵ４０は、ゲームプロセッサとして機能する。このＣＰＵ４０には、システムＬＳＩ４２が接続される。このシステムＬＳＩ４２には、外部メインメモリ４６、ＲＯＭ／ＲＴＣ４８、ディスクドライブ５４およびＡＶ  ＩＣ５６が接続される。
【００３０】
外部メインメモリ４６は、ゲームプログラム等のプログラムを記憶したり、各種データを記憶したりし、ＣＰＵ４０のワーク領域やバッファ領域として用いられる。ＲＯＭ／ＲＴＣ４８は、いわゆるブートＲＯＭであり、ゲーム装置１２の起動用のプログラムが組み込まれるとともに、時間をカウントする時計回路が設けられる。ディスクドライブ５４は、光ディスク１８からプログラムデータやテクスチャデータ等を読み出し、ＣＰＵ４０の制御の下で、後述する内部メインメモリ４２ｅまたは外部メインメモリ４６に書き込む。
【００３１】
システムＬＳＩ４２には、入出力プロセッサ４２ａ、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）４２ｂ、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）４２ｃ、ＶＲＡＭ４２ｄおよび内部メインメモリ４２ｅが設けられ、図示は省略するが、これらは内部バスによって互いに接続される。
【００３２】
入出力プロセッサ（Ｉ／Ｏプロセッサ）４２ａは、データの送受信を実行したり、データのダウンロードを実行したりする。データの送受信やダウンロードについては後で詳細に説明する。
【００３３】
ＧＰＵ４２ｂは、描画手段の一部を形成し、ＣＰＵ４０からのグラフィクスコマンド（作画命令）を受け、そのコマンドに従ってゲーム画像データを生成する。ただし、ＣＰＵ４０は、グラフィクスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラムをＧＰＵ４２ｂに与える。
【００３４】
図示は省略するが、上述したように、ＧＰＵ４２ｂにはＶＲＡＭ４２ｄが接続される。ＧＰＵ４２ｂが作画命令を実行するにあたって必要なデータ（画像データ：ポリゴンデータやテクスチャデータなどのデータ）は、ＧＰＵ４２ｂがＶＲＡＭ４２ｄにアクセスして取得する。なお、ＣＰＵ４０は、描画に必要な画像データを、ＧＰＵ４２ｂを介してＶＲＡＭ４２ｄに書き込む。ＧＰＵ４２ｂは、ＶＲＡＭ４２ｄにアクセスしてゲーム画像データを作成する。
【００３５】
なお、この実施例では、ＧＰＵ４２ｂがゲーム画像データを生成する場合について説明するが、ゲームアプリケーション以外の任意のアプリケーションを実行する場合には、ＧＰＵ４２ｂは当該任意のアプリケーションについての画像データを生成する。
【００３６】
また、ＤＳＰ４２ｃは、オーディオプロセッサとして機能し、内部メインメモリ４２ｅや外部メインメモリ４６に記憶されるサウンドデータや音波形（音色）データを用いて、スピーカ３４ａから出力すべき音、音声或いは音楽に対応するオーディオデータを生成する。
【００３７】
上述のように生成されたゲーム画像データおよびオーディオデータは、ＡＶ  ＩＣ５６によって読み出され、ＡＶコネクタ５８を介してモニタ３４およびスピーカ３４ａに出力される。したがって、ゲーム画面がモニタ３４に表示され、ゲームに必要な音（音楽）がスピーカ３４ａから出力される。
【００３８】
また、入出力プロセッサ４２ａには、フラッシュメモリ４４、無線通信モジュール５０および無線コントローラモジュール５２が接続されるとともに、拡張コネクタ６０および外部メモリカード用コネクタ６２が接続される。また、無線通信モジュール５０にはアンテナ５０ａが接続され、無線コントローラモジュール５２にはアンテナ５２ａが接続される。
【００３９】
入出力プロセッサ４２ａは、無線通信モジュール５０を介して、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。ただし、ネットワークを介さずに、直接的に他のゲーム装置と通信することもできる。入出力プロセッサ４２ａは、定期的にフラッシュメモリ４４にアクセスし、ネットワークへ送信する必要があるデータ（送信データとする）の有無を検出し、当該送信データが有る場合には、無線通信モジュール５０およびアンテナ５０ａを介してネットワークに送信する。また、入出力プロセッサ４２ａは、他のゲーム装置から送信されるデータ（受信データとする）を、ネットワーク、アンテナ５０ａおよび無線通信モジュール５０を介して受信し、受信データをフラッシュメモリ４４に記憶する。ただし、受信データをそのまま破棄する場合もある。さらに、入出力プロセッサ４２ａは、ダウンロードサーバからダウンロードしたデータ（ダウンロードデータとする）をネットワーク、アンテナ５０ａおよび無線通信モジュール５０を介して受信し、ダウンロードデータをフラッシュメモリ４４に記憶する。
【００４０】
また、入出力プロセッサ４２ａは、コントローラ７や荷重コントローラ３６から送信される入力データをアンテナ５２ａおよび無線コントローラモジュール５２を介して受信し、内部メインメモリ４２ｅまたは外部メインメモリ４６のバッファ領域に記憶（一時記憶）する。入力データは、ＣＰＵ４０のゲーム処理によって利用された後、バッファ領域から消去される。
【００４１】
なお、この実施例では、上述したように、無線コントローラモジュール５２は、Ｂｌｕｅｔｏｏｔｈ規格にしたがってコントローラ７や荷重コントローラ３６との間で通信を行う。
【００４２】
また、図面の都合上、図２では、コントローラ７と荷重コントローラ３６とをまとめて記載してある。
【００４３】
さらに、入出力プロセッサ４２ａには、拡張コネクタ６０および外部メモリカード用コネクタ６２が接続される。拡張コネクタ６０は、ＵＳＢやＳＣＳＩのようなインターフェイスのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したりすることができる。また、拡張コネクタ６０に有線ＬＡＮアダプタを接続し、無線通信モジュール５０に代えて当該有線ＬＡＮアダプタを利用することもできる。外部メモリカード用コネクタ６２には、メモリカードのような外部記憶媒体を接続することができる。したがって、たとえば、入出力プロセッサ４２ａは、拡張コネクタ６０や外部メモリカード用コネクタ６２を介して、外部記憶媒体にアクセスし、そこにデータを保存したり、そこからデータを読み出したりすることができる。
【００４４】
詳細な説明は省略するが、図１にも示したように、ゲーム装置１２（ハウジング１４）には、電源ボタン２０ａ、リセットボタン２０ｂおよびイジェクトボタン２０ｃが設けられる。電源ボタン２０ａは、システムＬＳＩ４２に接続される。この電源ボタン２０ａがオンされると、ゲーム装置１２の各コンポーネントに図示しないＡＣアダプタを経て電源が供給され、システムＬＳＩ４２は、通常の通電状態となるモード（通常モードと呼ぶこととする）を設定する。一方、電源ボタン２０ａがオフされると、ゲーム装置１２の一部のコンポーネントのみに電源が供給され、システムＬＳＩ４２は、消費電力を必要最低限に抑えるモード（以下、「スタンバイモード」という。）を設定する。この実施例では、スタンバイモードが設定された場合には、システムＬＳＩ４２は、入出力プロセッサ４２ａ、フラッシュメモリ４４、外部メインメモリ４６、ＲＯＭ／ＲＴＣ４８および無線通信モジュール５０、無線コントローラモジュール５２以外のコンポーネントに対して、電源供給を停止する指示を行う。したがって、このスタンバイモードは、ＣＰＵ４０によってアプリケーションの実行が行われないモードである。
【００４５】
なお、システムＬＳＩ４２には、スタンバイモードにおいても電源が供給されるが、ＧＰＵ４２ｂ、ＤＳＰ４２ｃおよびＶＲＡＭ４２ｄへのクロックの供給を停止することにより、これらを駆動させないようにして、消費電力を低減するようにしてある。
【００４６】
また、図示は省略するが、ゲーム装置１２のハウジング１４内部には、ＣＰＵ４０やシステムＬＳＩ４２などのＩＣの熱を外部に排出するためのファンが設けられる。スタンバイモードでは、このファンも停止される。
【００４７】
ただし、スタンバイモードを利用したくない場合には、スタンバイモードを利用しない設定にしておくことにより、電源ボタン２０ａがオフされたときに、すべての回路コンポーネントへの電源供給が完全に停止される。
【００４８】
また、通常モードとスタンバイモードの切り替えは、コントローラ７に設けられた電源スイッチ７２ｈ（図３参照）のオン／オフの切り替えによっても遠隔操作によって行うことが可能である。当該遠隔操作を行わない場合には、スタンバイモードにおいて無線コントローラモジュール５２への電源供給を行わない設定にしてもよい。
【００４９】
リセットボタン２０ｂもまた、システムＬＳＩ４２に接続される。リセットボタン２０ｂが押されると、システムＬＳＩ４２は、ゲーム装置１２の起動プログラムを再起動する。イジェクトボタン２０ｃは、ディスクドライブ５４に接続される。イジェクトボタン２０ｃが押されると、ディスクドライブ５４から光ディスク１８が排出される。
【００５０】
＜コントローラ７＞
次に、図３〜図６を参照して、コントローラ７について説明する。なお、図３は、コントローラ７の外観構成を示す斜視図である。
【００５１】
図３において、コントローラ７は、コアユニット７０とサブユニット７６とが接続ケーブル７９で接続されて構成されている。コアユニット７０は、ハウジング７１を有しており、当該ハウジング７１に複数の操作部７２が設けられている。一方、サブユニット７６は、ハウジング７７を有しており、当該ハウジング７７に複数の操作部７８が設けられている。
【００５２】
接続ケーブル７９の一方端にはコネクタ７９１が設けられており、接続ケーブル７９の他方端は固定的にサブユニット７６と接続されている。そして、接続ケーブル７９のコネクタ７９１は、コアユニット７０の底面に設けられたコネクタ７３（図４参照）と嵌合し、コアユニット７０とサブユニット７６とが当該接続ケーブル７９を介して接続される。
【００５３】
コアユニット７０は、例えばプラスチック成型によって形成されたハウジング７１を有している。ハウジング７１は、略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。
【００５４】
ハウジング７１の表面に、方向指示手段である十字キー７２ａが設けられる。この十字キー７２ａは、十字型の４方向プッシュスイッチであり、４つの方向（上下左右）に対応する操作部分が十字の突出片にそれぞれ９０°間隔で配置される。プレイヤが十字キー７２ａのいずれかの操作部分を押下することによって上下左右いずれかの方向が選択される。例えばプレイヤが十字キー７２ａを操作することによって、仮想ゲーム世界に登場するプレイヤキャラクタ等の移動方向を指示したり、カーソルの移動方向を指示したりすることができる。なお、十字キー７２ａの代わりに３６０°指示可能なジョイスティックを設けても良い。
【００５５】
ハウジング７１の表面の十字キー７２ａより底面側に、複数の操作ボタン７２ｂ〜７２ｇが設けられる。操作ボタン７２ｂ〜７２ｇは、プレイヤがボタン頭部を押下することによって、それぞれの操作ボタン７２ｂ〜７２ｇに割り当てられた操作信号を出力する操作部である。例えば、操作ボタン７２ｂ〜７２ｄには、１番ボタン、２番ボタン、およびＡボタン等としての機能が割り当てられる。また、操作ボタン７２ｅ〜７２ｇには、マイナスボタン、ホームボタン、およびプラスボタン等としての機能が割り当てられる。これら操作ボタン７２ｂ〜７２ｇは、ゲーム装置１２が実行するゲームプログラムに応じてそれぞれの機能が割り当てられる。
【００５６】
また、ハウジング７１の表面の十字キー７２ａより上面側に、電源スイッチ７２ｈが設けられる。電源スイッチ７２ｈは、ゲーム装置１２の電源を遠隔制御によりオン／オフするための操作部である。
【００５７】
また、ハウジング７１の表面の操作ボタン７２ｃより底面側に、複数のＬＥＤ７０２が設けられる。ここで、コントローラ７は、他のコントローラ７と区別するためにコントローラ種別（番号）が設けられている。例えば、ＬＥＤ７０２は、コントローラ７に現在設定されている上記コントローラ種別をプレイヤに通知するために用いられる。具体的には、コアユニット７０からゲーム装置１２へ送信データを送信する際、上記コントローラ種別に応じて複数のＬＥＤ７０２のうち、種別に対応するＬＥＤが点灯する。
【００５８】
また、ハウジング７１の表面には、操作ボタン７２ｂおよび操作ボタン７２ｆの間に後述するスピーカ７０６（図４参照）からの音を外部に放出するための音抜き孔が形成されている。
【００５９】
一方、ハウジング７１の裏面には、プレイヤがコアユニット７０を把持したときに当該プレイヤの人差し指または中指が位置するような位置に、操作ボタン（図示せず）が設けられる。この操作ボタンは、例えばＢボタンとして機能する操作部であり、例えばシューティングゲームにおけるトリガスイッチとして用いられる。
【００６０】
また、ハウジング７１の上面には、撮像情報演算部７４（図６参照）の一部を構成する撮像素子７４３（図６参照）が設けられる。ここで、撮像情報演算部７４は、コアユニット７０が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを検出するためのシステムであり、例えば、最大２００フレーム／秒程度のサンプリング周期で画像データを解析するため、比較的高速なコアユニット７０の動きでも追跡して解析することができる。この撮像情報演算部７４の詳細な構成については、後述する。また、ハウジング７１の底面には、コネクタ７３（図４参照）が設けられている。コネクタ７３は、例えば３２ピンのエッジコネクタであり、接続ケーブル７９のコネクタ７９１と嵌合して接続するために利用される。
【００６１】
次に、図４を参照して、コアユニット７０の内部構造について説明する。なお、図４は、コアユニット７０の上筐体（ハウジング７１の一部）を外した状態を示す斜視図である。
【００６２】
図４において、ハウジング７１の内部には基板７００が固設されており、当該基板７００の上主面上に操作ボタン７２ａ〜７２ｈ、加速度センサ７０１、ＬＥＤ７０２、スピーカ７０６、およびアンテナ７５４等が設けられる。そして、これらは、基板７００等に形成された配線（図示せず）によってマイクロコンピュータ（Ｍｉｃｒｏ  Ｃｏｍｐｕｔｅｒ：マイコン）７５１等（図６参照）に接続される。なお、加速度センサ７０１が基板７００の中央部ではなく周辺部に設けられていることにより、コアユニット７０の長手方向を軸とした回転に応じて、重力加速度の方向変化に加え、遠心力による成分の含まれる加速度を検出することができるので、所定の演算により、検出される加速度データからコアユニット７０の回転を良好な感度で判定することができる。
【００６３】
一方、基板７００の下主面上には、撮像情報演算部７４やコネクタ７３が取り付けられる。
【００６４】
図３および図５を参照して、サブユニット７６について説明する。なお、図５は、サブユニット７６の上筐体（ハウジング７７の一部）を外した状態を示す斜視図である。
【００６５】
図３において、サブユニット７６は、例えばプラスチック成型によって形成されたハウジング７７を有している。ハウジング７７は、全体として大人や子供の片手で把持可能な大きさである。
【００６６】
ハウジング７７の表面に、方向指示手段であるスティック７８ａが設けられる。スティック７８ａは、ハウジング７７の表面から突出した傾倒可能なスティックを倒すことによって、傾倒方向に応じて操作信号を出力する操作部である。例えば、プレイヤがスティック先端を３６０°任意の方向に傾倒することによって任意の方向や位置を指定することができ、仮想ゲーム世界に登場するプレイヤキャラクタ等の移動方向を指示したり、カーソルの移動方向を指示したりすることができる。なお、スティック７８ａの代わりに十字キーを設けても良い。
【００６７】
サブユニット７６のハウジング７７の上面に、複数の操作ボタン７８ｄおよび７８ｅが設けられる（図５参照）。操作ボタン７８ｄおよび７８ｅは、プレイヤがボタン頭部を押下することによって、それぞれの操作ボタン７８ｄおよび７８ｅに割り当てられた操作信号を出力する操作部である。例えば、操作ボタン７８ｄおよび７８ｅには、ＸボタンおよびＹボタン等としての機能が割り当てられる。これら操作ボタン７８ｄおよび７８ｅは、ゲーム装置１２が実行するゲームプログラムに応じてそれぞれの機能が割り当てられる。
【００６８】
図５において、ハウジング７７の内部には基板が固設されており、当該基板の上主面上にスティック７８ａおよび加速度センサ７６１等が設けられる。そして、これらは、基板等に形成された配線（図示せず）を介して接続ケーブル７９と接続されている。
【００６９】
次に、図６を参照して、コントローラ７の内部構成について説明する。なお、図６は、コントローラ７の構成を示すブロック図である。
【００７０】
図６において、コアユニット７０は、操作部７２、撮像情報演算部７４、加速度センサ７０１、スピーカ７０６、サウンドＩＣ７０７、およびアンプ７０８の他に、その内部に通信部７５を備えている。また、サブユニット７６は、上述した操作部７８および加速度センサ７６１を備えており、接続ケーブル７９とコネクタ７９１およびコネクタ７３とを介して、マイコン７５１と接続されている。
【００７１】
撮像情報演算部７４は、赤外線フィルタ７４１、レンズ７４２、撮像素子７４３、および画像処理回路７４４を含んでいる。赤外線フィルタ７４１は、コアユニット７０の上面から入射する光から赤外線のみを通過させる。レンズ７４２は、赤外線フィルタ７４１を透過した赤外線を集光して撮像素子７４３へ出射する。撮像素子７４３は、例えばＣＭＯＳセンサやＣＣＤのような固体撮像素子であり、レンズ７４２が集光した赤外線を撮像する。したがって、撮像素子７４３は、赤外線フィルタ７４１を通過した赤外線だけを撮像して画像データを生成する。撮像素子７４３で生成された画像データは、画像処理回路７４４で処理される。具体的には、画像処理回路７４４は、撮像素子７４３から得られた画像データを処理して高輝度部分を検知し、それらの位置座標や面積を検出した結果を示す処理結果データを通信部７５へ出力する。なお、撮像情報演算部７４は、コアユニット７０のハウジング７１に固設されており、ハウジング７１自体の方向を変えることによってその撮像方向を変更することができる。この撮像情報演算部７４から出力される処理結果データに基づいて、コアユニット７０の位置や動きに応じた信号を得ることができる。
【００７２】
コアユニット７０は、本実施例では、加速度センサ７０１を備える。ここで、コアユニット７０は、互いに直交する３軸（図４のＸ軸、Ｙ軸、Ｚ軸）の加速度センサ７０１を備えていることが好ましい。また、サブユニット７６は、３軸（図５のＸ軸、Ｙ軸、Ｚ軸）の加速度センサ７６１を備えていることが好ましい。この３軸の加速度センサ７０１および７６１は、それぞれ３方向、すなわち、Ｘ軸方向（左側面→右側面方向）、Ｙ軸方向（上面→底面方向）、Ｚ軸方向（表面→裏面方向）で直線加速度を検知する。また、他の実施形態においては、ゲーム処理に用いる制御信号の種類によっては、Ｘ軸方向およびＹ軸方向（または他の対になった方向）のそれぞれに沿った直線加速度のみを検知する２軸の加速度検出手段を使用してもよい。さらにはＸ軸方向（または他の方向）に沿った直線加速度のみを検知する１軸の加速度検出手段を使用してもよい。例えば、この３軸または２軸または１軸の加速度センサ７０１および７６１は、アナログ・デバイセズ株式会社（Ａｎａｌｏｇ  Ｄｅｖｉｃｅｓ，  Ｉｎｃ．）またはＳＴマイクロエレクトロニクス社（ＳＴＭｉｃｒｏｅｌｅｃｔｒｏｎｉｃｓ  Ｎ．Ｖ．）から入手可能であるタイプのものでもよい。加速度センサ７０１および７６１は、シリコン微細加工されたＭＥＭＳ（Ｍｉｃｒｏ  Ｅｌｅｃｔｒｏ  Ｍｅｃｈａｎｉｃａｌ  Ｓｙｓｔｅｍｓ：微小電子機械システム）の技術に基づいた静電容量式（静電容量結合式）であってもよい。また、既存の加速度検出手段の技術（例えば、圧電方式や圧電抵抗方式）あるいは将来開発される他の適切な技術を用いて３軸または２軸または１軸の加速度センサ７０１および７６１が提供されてもよい。
【００７３】
当業者には公知であるように、加速度センサ７０１および７６１に用いられるような加速度検出手段は、加速度センサの持つ各軸に対応する直線に沿った加速度（直線加速度）のみを検知することができる。つまり、加速度センサ７０１および７６１からの直接の出力は、その各軸に沿った直線加速度（静的または動的）を示す信号である。このため、加速度センサ７０１および７６１は、非直線状（例えば、円弧状）の経路に沿った動き、回転、回転運動、角変位、傾斜、位置、または姿勢等の物理特性を直接検知することはできない。
【００７４】
しかしながら、加速度センサ７０１および７６１からそれぞれ出力される加速度の信号に対して追加の処理を行うことによって、コアユニット７０およびサブユニット７６に関するさらなる情報をそれぞれ推測または算出することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、静的な加速度（重力加速度）が検知されると、加速度センサ７０１および７６１からの出力を用いて、傾斜角度と検知された加速度とを用いた演算によって重力ベクトルに対する対象（コアユニット７０またはサブユニット７６）の傾きをそれぞれ推測することができる。このように、加速度センサ７０１および７６１をマイコン７５１（または他のプロセッサ）と組み合わせて用いることによって、コアユニット７０およびサブユニット７６の傾き、姿勢または位置を決定することができる。同様に、加速度センサ７０１を備えるコアユニット７０または加速度センサ７６１を備えるサブユニット７６が、ここで説明されているように、例えばユーザの手で動的に加速されてそれぞれ動かされる場合に、加速度センサ７０１および７６１によって生成される加速度信号をそれぞれ処理することによって、コアユニット７０およびサブユニット７６のさまざまな動きおよび／または位置をそれぞれ算出または推測することができる。他の実施例では、加速度センサ７０１および７６１は、信号をマイコン７５１に出力する前に内蔵の加速度検出手段から出力される加速度信号に対して所望の処理を行うための、組込み式の信号処理装置または他の種類の専用の処理装置をそれぞれ備えていてもよい。例えば、組込み式または専用の処理装置は、加速度センサが静的な加速度（例えば、重力加速度）を検出するためのものである場合、検知された加速度信号をそれに相当する傾斜角に変換するものであってもよい。加速度センサ７０１および７６１でそれぞれ検知された加速度を示すデータは通信部７５に出力される。
【００７５】
通信部７５は、マイコン７５１、メモリ７５２、無線モジュール７５３、およびアンテナ７５４を含んでいる。マイコン７５１は、処理の際にメモリ７５２を記憶領域として用いながら、送信データを無線送信する無線モジュール７５３を制御する。また、マイコン７５１は、アンテナ７５４を介して無線モジュール７５３が受信したゲーム装置１２からのデータに応じて、サウンドＩＣ７０７の動作を制御する。サウンドＩＣ７０７は、通信部７５を介してゲーム装置１２から送信されたサウンドデータ等を処理する。
【００７６】
コアユニット７０に設けられた操作部７２からの操作信号（コアキーデータ）、加速度センサ７０１からの加速度信号（コア加速度データ）、および撮像情報演算部７４からの処理結果データは、マイコン７５１に出力される。また、接続ケーブル７９を介して、サブユニット７６に設けられた操作部７８からの操作信号（サブキーデータ）および加速度センサ７６１からの加速度信号（サブ加速度データ）は、マイコン７５１に出力される。マイコン７５１は、入力した各データ（コアキーデータ、サブキーデータ、コア加速度データ、サブ加速度データ、処理結果データ）をゲーム装置１２へ送信する送信データとして一時的にメモリ７５２に格納する。ここで、通信部７５からゲーム装置１２への無線送信は、所定の周期毎に行われるが、ゲームの処理は１／６０秒を単位として行われることが一般的であるので、それよりも短い周期でデータを収集して送信を行うことが必要となる。具体的には、ゲームの処理単位は１６．７ｍｓ（１／６０秒）であり、Ｂｌｕｅｔｏｏｔｈで構成される通信部７５の送信間隔は５ｍｓである。マイコン７５１は、ゲーム装置１２への送信タイミングが到来すると、メモリ７５２に格納されている送信データを一連の操作情報として無線モジュール７５３へ出力する。そして、無線モジュール７５３は、例えばＢｌｕｅｔｏｏｔｈの技術に基づいて、所定周波数の搬送波を操作情報で変調し、その微弱電波信号をアンテナ７５４から放射する。つまり、コアユニット７０に設けられた操作部７２からのコアキーデータ、サブユニット７６に設けられた操作部７８からのサブキーデータ、コアユニット７０に設けられた加速度センサ７０１からのコア加速度データ、サブユニット７６に設けられた加速度センサ７６１からのサブ加速度データ、および撮像情報演算部７４からの処理結果データは、微弱電波信号としてコアユニット７０から出力される。そして、ゲーム装置１２の無線コントローラモジュール５２でその微弱電波信号を受信し、ゲーム装置１２で当該微弱電波信号を復調や復号することによって、ゲーム装置１２のＣＰＵ４０は、一連の操作情報（コアキーデータ、サブキーデータ、コア加速度データ、サブ加速度データ、および処理結果データ）を取得することができる。そして、ゲーム装置１２のＣＰＵ４０は、取得した操作情報とゲームプログラムとに基づいて、ゲーム処理を行う。なお、Ｂｌｕｅｔｏｏｔｈの技術を用いて通信部７５を構成する場合、通信部７５は、他のデバイスから無線送信された送信データを受信する機能も備えることができる。
【００７７】
＜荷重コントローラ３６＞
図７は図１に示した荷重コントローラ３６の外観を示す斜視図である。図７に示すように、荷重コントローラ３６は、プレイヤがその上に乗る（プレイヤの足を乗せる）台３６ａと、台３６ａにかかる荷重を検出するための４つの荷重センサ３６ｂを備える。なお、各荷重センサ３６ｂは台３６ａに内包されており（図８参照）、図７においてはその配置位置が点線で示されている。
【００７８】
台３６ａは、略直方体に形成されており、上面視で略長方形状である。たとえば長方形の短辺が３０ｃｍ程度に設定され、その長辺が５０ｃｍ程度に設定される。プレイヤが乗る台３６ａの上面は平坦にされる。台３６ａの４隅の側面は、部分的に円柱状に張り出すように形成されている。
【００７９】
この台３６ａにおいて、４つの荷重センサ３６ｂは、所定の間隔を置いて配置される。この実施例では、４つの荷重センサ３６ｂは、台３６ａの周縁部に、具体的には４隅にそれぞれ配置される。荷重センサ３６ｂの間隔は、台３６ａに対するプレイヤの荷重のかけ方によるゲーム操作の意図をより精度良く検出できるように適宜な値に設定される。
【００８０】
図８は、図７に示した荷重コントローラ３６のＶＩ−ＶＩ断面図を示すとともに、荷重センサ３６ｂの配置された隅の部分が拡大表示されている。この図８から分かるように、台３６ａは、プレイヤが乗るための支持板３６０と脚３６２を含む。脚３６２は、荷重センサ３６ｂが配置される箇所に設けられる。この実施例では４つの荷重センサ３６ｂが４隅に配置されるので、４つの脚３６２が４隅に設けられる。脚３６２は、たとえばプラスチック成型によって略有底円筒状に形成されており、荷重センサ３６ｂは、脚３６２内の底面に設けられた球面部品３６２ａ上に配置される。支持板３６０は、この荷重センサ３６ｂを介して脚３６２に支持される。
【００８１】
支持板３６０は、上面と側面上部とを形成する上層板３６０ａ、下面と側面下部とを形成する下層板３６０ｂ、および上層板３６０ａと下層板３６０ｂとの間に設けられる中層板３６０ｃを含む。上層板３６０ａと下層板３６０ｂとは、たとえばプラスチック成型により形成されており、接着等により一体化される。中層板３６０ｃは、たとえば１枚の金属板のプレス成型により形成されている。この中層板３６０ｃが、４つの荷重センサ３６ｂの上に固定される。上層板３６０ａは、その下面に格子状のリブ（図示しない）を有しており、当該リブを介して中層板３６０ｃに支持されている。したがって、台３６ａにプレイヤが乗ったときには、その荷重は、支持板３６０、荷重センサ３６ｂおよび脚３６２を伝達する。図８に矢印で示したように、入力される荷重によって生じた床からの反作用は、脚３６２から、球面部品３６２ａ、荷重センサ３６ｂ、中層板３６０ｃを介して、上層板３６０ａに伝達する。
【００８２】
荷重センサ３６ｂは、たとえば歪ゲージ（歪センサ）式ロードセルであり、入力された荷重を電気信号に変換する荷重変換器である。荷重センサ３６ｂでは、荷重入力に応じて、起歪体３７０ａが変形して歪が生じる。この歪が、起歪体３７０ａに貼り付けられた歪センサ３７０ｂによって、電気抵抗の変化に変換され、さらに電圧変化に変換される。したがって、荷重センサ３６ｂは、入力荷重を示す電圧信号を出力端子から出力する。
【００８３】
なお、荷重センサ３６ｂは、音叉振動式、弦振動式、静電容量式、圧電式、磁歪式、またはジャイロ式のような他の方式の荷重センサであってもよい。
【００８４】
図７に戻って、荷重コントローラ３６には、さらに、電源ボタン３６ｃが設けられる。この電源ボタン３６ｃがオンされると、荷重コントローラ３６の各回路コンポーネント（図９参照）に電源が供給される。ただし、荷重コントローラ３６は、ゲーム装置１２からの指示に従ってオンされる場合もある。また、荷重コントローラ３６は、プレイヤが乗っていない状態が一定時間（たとえば、３０秒）以上継続すると、電源がオフされる。ただし、荷重コントローラ３６が起動されている状態で、電源ボタン３６ｃをオンしたときに、電源がオフされてもよい。
【００８５】
図９のブロック図には、荷重コントローラ３６の電気的な構成の一例が示される。なお、この図９では、信号および通信の流れは実線矢印で示される。破線矢印は、電源の供給を示している。
【００８６】
荷重コントローラ３６は、その動作を制御するためのマイクロコンピュータ（マイコン）１００を含む。マイコン１００は図示しないＣＰＵ、ＲＯＭおよびＲＡＭ等を含み、ＣＰＵはＲＯＭに記憶されたプログラムに従って荷重コントローラ３６の動作を制御する。
【００８７】
マイコン１００には、電源ボタン３６ｃ、ＡＤコンバータ１０２、ＤＣ−ＤＣコンバータ１０４および無線モジュール１０６が接続される。さらに、無線モジュール１０６には、アンテナ１０６ａが接続される。また、４つの荷重センサ３６ｂ（この実施例ではロードセル）は、それぞれ、増幅器１０８を介してＡＤコンバータ１０２に接続される。
【００８８】
また、荷重コントローラ３６には電源供給のために電池１１０が収容されている。他の実施例では、電池に代えてＡＣアダプタを接続し、商用電源を供給するようにしてもよい。かかる場合には、ＤＣ−ＤＣコンバータ１０４に代えて、交流を直流に変換し、直流電圧を降圧および整流する電源回路を設ける必要がある。この実施例では、マイコン１００および無線モジュール１０６への電源の供給は、電池１１０から直接的に行われる。つまり、マイコン１００内部の一部のコンポーネント（ＣＰＵ）と無線モジュール１０６とには、常に電源が供給されており、電源ボタン３６ｃがオンされたか否か、ゲーム装置１２から電源オン（荷重検出）のコマンドが送信されたか否かを検出する。一方、荷重センサ３６ｂ、ＡＤコンバータ１０２および増幅器１０８には、電池１１０からの電源がＤＣ−ＤＣコンバータ１０４を介して供給される。ＤＣ−ＤＣコンバータ１０４は、電池１１０からの直流電流の電圧値を異なる電圧値に変換して、荷重センサ３６ｂ、ＡＤコンバータ１０２および増幅器１０８に与える。
【００８９】
これら荷重センサ３６ｂ、ＡＤコンバータ１０２および増幅器１０８への電源供給は、マイコン１００によるＤＣ−ＤＣコンバータ１０４の制御によって、必要に応じて行われるようにしてもよい。つまり、マイコン１００は、荷重センサ３６ｂを動作させて荷重を検出する必要があると判断されるときに、ＤＣ−ＤＣコンバータ１０４を制御して、各荷重センサ３６ｂ、ＡＤコンバータ１０２および各増幅器１０８に電源を供給するようにしてもよい。
【００９０】
電源が供給されると、各荷重センサ３６ｂは、入力された荷重を示す信号を出力する。当該信号は各増幅器１０８で増幅され、ＡＤコンバータ１０２でアナログ信号からディジタルデータに変換されて、マイコン１００に入力される。各荷重センサ３６ｂの検出値には各荷重センサ３６ｂの識別情報が付与されて、いずれの荷重センサ３６ｂの検出値であるかが識別可能にされる。このようにして、マイコン１００は、同一時刻における４つの荷重センサ３６ｂのそれぞれの荷重検出値を示すデータを取得することができる。
【００９１】
一方、マイコン１００は、荷重センサ３６ｂを動作させる必要がないと判断されるとき、つまり、荷重検出タイミングでないとき、ＤＣ−ＤＣコンバータ１０４を制御して、荷重センサ３６ｂ、ＡＤコンバータ１０２および増幅器１０８への電源の供給を停止する。このように、荷重コントローラ３６では、必要なときにだけ、荷重センサ３６ｂを動作させて荷重の検出を行うことができるので、荷重検出のための電力消費を抑制することができる。
【００９２】
荷重検出の必要なときとは、典型的には、ゲーム装置１２が荷重データを取得したいときである。たとえば、ゲーム装置１２が荷重情報を必要とするとき、ゲーム装置１２は荷重コントローラ３６に対して荷重取得命令を送信する。マイコン１００は、ゲーム装置１２から荷重取得命令を受信したときに、ＤＣ−ＤＣコンバータ１０４を制御して、荷重センサ３６ｂ等に電源を供給し、荷重を検出する。一方、マイコン１００は、ゲーム装置１２から荷重取得命令を受信していないときには、ＤＣ−ＤＣコンバータ１０４を制御して、荷重センサ３６ｂ等への電源供給を停止する。
【００９３】
あるいは、マイコン１００は、一定時間ごとに荷重検出タイミングであると判断して、ＤＣ−ＤＣコンバータ１０４を制御するようにしてもよい。このような周期的な荷重検出を行う場合、周期情報は、たとえば、初めにゲーム装置１２から荷重コントローラ３６のマイコン１００に与えられて記憶されてもよいし、または、予めマイコン１００に記憶されていてもよい。
【００９４】
荷重センサ３６ｂからの検出値を示すデータは、荷重コントローラ３６の操作データ（入力データ）として、マイコン１００から無線モジュール１０６およびアンテナ１０６ａを介してゲーム装置１２に送信される。たとえば、ゲーム装置１２からの荷重取得命令を受けて荷重検出を行った場合、マイコン１００は、ＡＤコンバータ１０２から荷重センサ３６ｂの検出値データを受信したときに、当該検出値データをゲーム装置１２に送信する。あるいは、マイコン１００は、一定時間ごとに検出値データをゲーム装置１２に送信するようにしてもよい。荷重の検出周期よりも送信周期が長い場合には、送信タイミングまでに検出された複数の検出タイミングの荷重値を含むデータが送信される。
【００９５】
なお、無線モジュール１０６は、ゲーム装置１２の無線コントローラモジュール５２と同じ無線規格（Ｂｌｕｅｔｏｏｔｈ、無線ＬＡＮなど）で通信可能にされる。したがって、ゲーム装置１２のＣＰＵ４０は、無線コントローラモジュール５２等を介して荷重取得命令を荷重コントローラ３６に送信することができる。荷重コントローラ３６のマイコン１００は、無線モジュール１０６およびアンテナ１０６ａを介して、ゲーム装置１２からの荷重取得命令を受信し、また、各荷重センサ３６ｂの荷重検出値（または荷重算出値）を含む入力データをゲーム装置１２に送信することができる。
【００９６】
たとえば４つの荷重センサ３６ｂで検出される４つの荷重値の単なる合計値に基づいて実行されるようなゲームの場合には、４つの荷重センサ３６ｂで検出される４つの荷重値が、それぞれ、いずれの荷重センサ３６ｂによって検出されたものかを区別する必要は無い。したがって、プレイヤは荷重コントローラ３６の４つの荷重センサ３６ｂに対して任意の位置をとることができ、つまり、プレイヤは台３６ａの上の任意の位置に任意の向きで乗ってゲームをプレイすることができる。しかし、ゲームの種類によっては、各荷重センサ３６ｂで検出される荷重値がプレイヤから見ていずれの方向の荷重値であるかを識別して処理を行う必要があり、つまり、荷重コントローラ３６の４つの荷重センサ３６ｂとプレイヤとの位置関係が把握されている必要がある。この場合、たとえば、４つの荷重センサ３６ｂとプレイヤとの位置関係を予め規定しておき、当該所定の位置関係が得られるようにプレイヤが台３６ａ上に乗ることが前提とされてよい。典型的には、台３６ａの中央に乗ったプレイヤの前後左右にそれぞれ荷重センサ３６ｂが２つずつ存在するような位置関係、つまり、プレイヤが荷重コントローラ３６の台３６ａの中央に乗ったとき、プレイヤの中心から右前、左前、右後および左後の方向にそれぞれ荷重センサ３６ｂが存在するような位置関係が規定される。この場合、この実施例では、荷重コントローラ３６の台３６ａが平面視で矩形状に形成されるとともにその矩形の１辺（長辺）に電源ボタン３６ｃが設けられているので、この電源ボタン３６ｃを目印として利用して、プレイヤには電源ボタン３６ｃの設けられた長辺が所定の方向（前、後、左または右）に存在するようにして台３６ａに乗ってもらうことを予め決めておく。このようにすれば、各荷重センサ３６ｂで検出される荷重値は、プレイヤから見て所定の方向（右前、左前、右後および左後）の荷重値となる。したがって、荷重コントローラ３６およびゲーム装置１２は、荷重検出値データに含まれる各荷重センサ３６ｂの識別情報と、予め設定（記憶）された各荷重センサ３６ｂのプレイヤに対する位置ないし方向を示す配置データとに基づいて、各荷重検出値がプレイヤから見ていずれの方向に対応するかを把握することができる。これにより、たとえば前後左右の操作方向のようなプレイヤによるゲーム操作の意図を把握することが可能になる。
【００９７】
なお、各荷重センサ３６ｂのプレイヤに対する配置は予め規定せずに、初期設定やゲーム中の設定などでプレイヤの入力によって配置が設定されるようにしてもよい。たとえば、プレイヤから見て所定の方向（左前、右前、左後または右後など）の部分に乗るようにプレイヤに指示する画面を表示するとともに荷重値を取得することによって、各荷重センサ３６ｂのプレイヤに対する位置関係を特定することができるので、この設定による配置データを生成して記憶するようにしてよい。あるいは、モニタ３４の画面上に、荷重コントローラ３６の配置を選択するための画面を表示して、目印（電源ボタン３６ｃ）がプレイヤから見てどの方向に存在するかをコントローラ７による入力によって選択してもらい、この選択に応じて各荷重センサ３６ｂの配置データを生成して記憶するようにしてよい。
【００９８】
＜ゲームプレイ方法＞
図１０は、プレイヤがコントローラ７および荷重コントローラ３６を用いてゲームプレイするときの状態を概説する図である。図１０に示すように、ビデオゲームシステム１０でコントローラ７および荷重コントローラ３６を用いてゲームをプレイする際、プレイヤは、荷重コントローラ３６の上に乗り、一方の手（例えば右手）でコアユニット７０を把持し、他方の手（例えば左手）でサブユニット７６を把持する。
【００９９】
なお、図１０では、モニタ３４の画面に対して荷重コントローラ３６を縦置き（荷重コントローラ３６の短辺が画面に平行になるような配置）にしてプレイヤが画面に対して横向きになっている場合を示しているが、画面に対する荷重コントローラ３６の配置やプレイヤの向きはゲームの種類に応じて適宜変更可能であり、たとえば、荷重コントローラ３６を画面に対して横置き（荷重コントローラ３６の長辺が画面に平行になるような配置）にしてプレイヤが画面に対して正面を向くようにしてもよい。
【０１００】
上述したように、コアユニット７０に設けられた加速度センサ７０１からの出力（コア加速度データ）を用いることによって、コアユニット７０の傾き、姿勢、位置、または、動き（移動や振りなど）を決定することができる。つまり、プレイヤがコアユニット７０を把持した手を上下左右等に動かすことによって、コアユニット７０は、プレイヤの手の運動や向きに応じた操作入力手段として機能する。また、上述したようにサブユニット７６に設けられた加速度センサ７６１からの出力（サブ加速度データ）を用いることによって、サブユニット７６の傾き、姿勢、位置、または、動き（移動や振りなど）を決定することができる。つまり、プレイヤがサブユニット７６を把持した手を上下左右等に動かすことによって、サブユニット７６は、プレイヤの手の運動や向きに応じた操作入力手段として機能する。これによって、プレイヤが両方の手に別々のユニットを把持してそれぞれの手自体を動かして操作するような入力を行うことができる。
【０１０１】
また、上述したように、荷重コントローラ３６に設けられた４つの荷重センサ３６ｂで検出される４つの荷重値に基づいて、荷重コントローラ３６の上に足を乗せたり下ろしたりするようなプレイヤの動作や、荷重コントローラ３６の上に乗っているプレイヤの重心位置（４つの荷重値の割合等によって算出される位置）を判断することができる。つまり、プレイヤが荷重コントローラ３６の上で前後左右に重心を移動させたり、片足立ちしたり、つま先立ちしたりすることによって、荷重コントローラ３６は、プレイヤの足の運動に応じた操作入力手段として機能する。これによって、プレイヤが荷重コントローラ３６の上に乗って足を動かして操作するような入力を行うことができる。
【０１０２】
なお、上述した説明では、コントローラ７とゲーム装置１２とが無線通信によって接続された態様を用いたが、コントローラ７とゲーム装置１２とがケーブルを介して電気的に接続されてもかまわない。この場合、コアユニット７０に接続されたケーブルをゲーム装置１２の接続端子に接続する。
【０１０３】
また、コントローラ７を構成するコアユニット７０およびサブユニット７６のうち、コアユニット７０のみに通信部７５を設けたが、ゲーム装置１２へ送信データを無線送信（または有線通信）する通信部をサブユニット７６に設けてもかまわない。また、コアユニット７０およびサブユニット７６それぞれに上記通信部を設けてもかまわない。例えば、コアユニット７０およびサブユニット７６に設けられた通信部がそれぞれゲーム装置１２へ送信データを無線送信してもいいし、サブユニット７６の通信部からコアユニット７０へ送信データを無線送信してコアユニット７０の通信部７５で受信した後、コアユニット７０の通信部７５がサブユニット７６の送信データと共にコアユニット７０の送信データをゲーム装置１２へ無線送信してもいい。これらの場合、コアユニット７０とサブユニット７６とを電気的に接続する接続ケーブル７９が不要となる。
【０１０４】
＜ゲーム処理の概要＞
次に、ゲーム装置１２で実行されるゲーム処理の概要を説明する。
【０１０５】
図１１は、ゲーム装置１２によって生成され、モニタ３４の画面に表示されるゲーム画像の一例である。この実施例では、ゲーム空間において、プレイヤの操作に応じてキャラクタがロッククライミングを行うゲームを実行する場合を説明する。ゲーム画面には、プレイヤによって操作可能なキャラクタオブジェクトが表示される。このゲームの目的は、崖に設けられた「ホールド」と呼ばれる複数の突起を利用して、キャラクタオブジェクトを「ゴールホールド」まで導くことである。キャラクタオブジェクトは、プレイヤの操作に基づいて、ホールドを手でつかんだり、ホールドの上に足をおいたりすることができる。プレイヤは、コントローラ７および荷重コントローラ３６を用いてキャラクタオブジェクトの手足の動きを制御することができる。
【０１０６】
次に、図１２〜図１８を参照して、キャラクタオブジェクトの各部の操作方法について説明する。
【０１０７】
（右腕の回転）
プレイヤは、基本的には、コアユニット７０の長軸方向が鉛直方向となるように、なおかつ、コアユニット７０の裏面（図３参照）がモニタ３４側を向くように（すなわち、コアユニット７０の裏面がプレイヤの前方を向くように）、コアユニット７０を右手で把持するものとする。そして、プレイヤは、コアユニット７０の向きを変える（この実施例では左右に倒す）ことによって、キャラクタオブジェクトの右手の向きを変えることができる。例えば、図１２に示すように、コアユニット７０のＺ軸回りの角度（例えば、水平面とコアユニット７０の長手方向との間のＺ軸回りの角度θ１）を変化させることによって、キャラクタオブジェクトの右手の角度（例えば、ゲーム空間における水平面と、キャラクタオブジェクトの右腕の方向（右肩と右手先を結ぶ方向）との間の角度θ２）を変化させることができる。これにより、コアユニット７０を把持するプレイヤの右手の動きに連動して、キャラクタオブジェクトの右手の向きが変化することになる。なお、θ１とθ２は一致している必要はなく、θ１に応じてθ２が一意に決定される関係であればよい。
【０１０８】
（右腕の曲げ伸ばし）
プレイヤは、コアユニット７０の向きを変える（この実施例では前後に倒す）ことによって、キャラクタオブジェクトの右腕を伸ばしたり曲げたりすることができる。例えば、図１３に示すように、コアユニット７０のＸ軸回りの角度（例えば、水平面とコアユニット７０の長手方向との間のＸ軸回りの角度θ３）を変化させることによって、キャラクタオブジェクトの右腕を伸ばしたり曲げたりすることができる。具体的には、図１３の（ａ）に示すようにコアユニット７０のＸ軸回りの角度θ３が所定の閾値（例えば、水平面と基準面（例えば鉛直面）と間の角度）よりも大きい場合にはキャラクタオブジェクトが右腕を伸ばし、図１３の（ｂ）に示すようにコアユニット７０のＸ軸回りの角度θ３が所定の閾値よりも小さい場合にはキャラクタオブジェクトが右腕を曲げる。これにより、コアユニット７０を把持するプレイヤの右手の動きに連動して、キャラクタオブジェクトの右腕が伸びたり曲がったりすることになる。なお、ここではθ３が所定の閾値よりも大きいか否かに応じてキャラクタオブジェクトの右腕の曲がり具合を２段階で変化させているが、これに限らず、θ３に応じてキャラクタオブジェクトの右腕の曲がり具合を多段階もしくは連続的に変化させても良い。
【０１０９】
（右手のひらの開閉）
プレイヤは、コアユニット７０に設けられた操作部７２を操作することによって、キャラクタオブジェクトの右手のひらを開いたり閉じたりすることができる。例えば図１４の（ａ）に示すようにコアユニット７０に設けられたＢボタンが押されていない場合にはキャラクタオブジェクトが右手のひらを開き、図１４の（ｂ）に示すようにコアユニット７０に設けられたＢボタンが押されている場合にはキャラクタオブジェクトが右手のひらを閉じる。これにより、プレイヤは、キャラクタオブジェクトに右手でホールドを掴ませたり、ホールドを放させたりすることができる。
【０１１０】
（左腕の回転）
プレイヤは、基本的には、サブユニット７６の長軸方向が鉛直方向となるように、なおかつ、サブユニット７６の裏面（図３参照）がモニタ３４側を向くように（すなわち、サブユニット７６の裏面がプレイヤの前方を向くように）、サブユニット７６を左手で把持するものとする。プレイヤは、サブユニット７６の向きを変える（この実施例では左右に倒す）ことによって、キャラクタオブジェクトの左手の向きを変えることができる。例えば、図１５に示すように、サブユニット７６のＺ軸回りの角度（例えば、水平面とサブユニット７６の長手軸方向との間のＺ軸回りの角度θ４）を変化させることによって、キャラクタオブジェクトの左手の角度（例えば、ゲーム空間における水平面と、キャラクタオブジェクトの左腕の方向（左肩と左手先を結ぶ方向）との間の角度θ５）を変化させることができる。これにより、サブユニット７６を把持するプレイヤの左手の動きに連動して、キャラクタオブジェクトの左手の向きが変化することになる。なお、θ４とθ５は一致している必要はなく、θ４に応じてθ５が一意に決定される関係であればよい。
【０１１１】
（左腕の曲げ伸ばし）
プレイヤは、サブユニット７６の向きを変える（この実施例では前後に倒す）ことによって、キャラクタオブジェクトの左腕を伸ばしたり曲げたりすることができる。例えば、図１６に示すように、サブユニット７６のＸ軸回りの角度（例えば、水平面とサブユニット７６の長手方向との間のＸ軸回りの角度θ６）を変化させることによって、キャラクタオブジェクトの左腕を伸ばしたり曲げたりすることができる。具体的には、図１６の（ａ）に示すようにサブユニット７６のＸ軸回りの角度θ６が所定の閾値（例えば、水平面と基準面（例えば鉛直面）と間の角度）よりも大きい場合にはキャラクタオブジェクトが左腕を伸ばし、図１６の（ｂ）に示すようにサブユニット７６のＸ軸回りの角度θ６が所定の閾値よりも小さい場合にはキャラクタオブジェクトが左腕を曲げる。これにより、サブユニット７６を把持するプレイヤの左手の動きに連動して、キャラクタオブジェクトの左腕が伸びたり曲がったりすることになる。なお、ここではθ６が所定の閾値よりも大きいか否かに応じてキャラクタオブジェクトの左腕の曲がり具合を２段階で変化させているが、これに限らず、θ６に応じてキャラクタオブジェクトの左腕の曲がり具合を多段階もしくは連続的に変化させても良い。
【０１１２】
（左手のひらの開閉）
プレイヤは、サブユニット７６に設けられた操作部７８を操作することによって、キャラクタオブジェクトの左手のひらを開いたり閉じたりすることができる。例えば図１７の（ａ）に示すようにサブユニット７６に設けられたＺボタンが押されていない場合にはキャラクタオブジェクトが左手のひらを開き、図１７の（ｂ）に示すようにサブユニット７６に設けられたＺボタンが押されている場合にはキャラクタオブジェクトが左手のひらを閉じる。これにより、プレイヤは、キャラクタオブジェクトに左手でホールドを掴ませたり、ホールドを放させたりすることができる。
【０１１３】
上記のような操作を組み合わせることによって、プレイヤは、所望のホールドをキャラクタオブジェクトに掴ませて、キャラクタオブジェクトを上方に移動させることができる。例えば、図１８に示すように、キャラクタオブジェクトの右手のひらおよび左手のひらを開いたまま、キャラクタオブジェクトの右腕および左腕を伸ばして、キャラクタオブジェクトの右手および左手を所望のホールドにそれぞれ接近させ（図１８（ａ））、その後、キャラクタオブジェクトの右手のひらおよび左手のひらを閉じて、キャラクタオブジェクトにホールドを掴ませ（図１８（ｂ））、その後、キャラクタオブジェクトの右手のひらおよび左手のひらを閉じたまま、キャラクタオブジェクトの右腕および左腕を曲げることによって、キャラクタオブジェクトの体を引き上げさせることができる（図１８（ｃ））。
【０１１４】
（足の上げ下ろし）
プレイヤは、荷重コントローラ３６の上に右足を乗せたり、荷重コントローラ３６から右足を離したりすることによって、キャラクタオブジェクトの右足をホールドの上に乗せたり、キャラクタオブジェクトの右足をホールドから離したりすることができる。同様に、プレイヤは、荷重コントローラ３６の上に左足を乗せたり、荷重コントローラ３６から左足を離したりすることによって、キャラクタオブジェクトの左足をホールドの上に乗せたり、キャラクタオブジェクトの左足をホールドから離したりすることができる。例えば、図１９の（ａ）に示すように、プレイヤが荷重コントローラ３６の上に両足で乗ることによって、キャラクタオブジェクトの両足をホールドの上に乗せることができる。また、図１９の（ｂ）に示すように、プレイヤが荷重コントローラ３６の上で右足だけで片足立ちすることによって、キャラクタオブジェクトの右足をホールドの上に乗せ、キャラクタオブジェクトの左足を宙に浮かせることができる。また、図１９の（ｃ）に示すように、プレイヤが荷重コントローラ３６の上で左足だけで片足立ちすることによって、キャラクタオブジェクトの左足をホールドの上に乗せ、キャラクタオブジェクトの右足を宙に浮かせることができる。また、図１９の（ｄ）に示すように、プレイヤが荷重コントローラ３６から両足とも離す（すなわちプレイヤが荷重コントローラ３６から降りた状態）ことによって、キャラクタオブジェクトの両足を宙に浮かせることができる。キャラクタオブジェクトの両足が宙に浮いた状態では、キャラクタオブジェクトは少なくとも一方の手でホールドを掴んでいなくてはならない。さもないと、キャラクタオブジェクトが落下してしまい、ゲームオーバとなってしまう。
【０１１５】
なお、例えばキャラクタオブジェクトの右足が宙に浮いている状態から、プレイヤが荷重コントローラ３６の上に右足を乗せると、キャラクタオブジェクトは、その時点でキャラクタオブジェクトの右足の近くにあるホールドの上に右足を乗せる。
【０１１６】
（足の曲げ伸ばし）
プレイヤは、荷重コントローラ３６の上に乗った状態で、重心を前後方向に移動させることによって、ホールドの上に乗せられているキャラクタオブジェクトの足（右足、左足、もしくは両足）を曲げたり伸ばしたりすることができる。例えば、図２０の（ａ）に示すように、プレイヤが荷重コントローラ３６の上に両足で乗っている状態で、プレイヤがより前方に重心を移動させるほど、キャラクタオブジェクトは両足をより伸ばし、図２０の（ｃ）に示すように、プレイヤが荷重コントローラ３６の上に両足で乗っている状態で、プレイヤがより後方に重心を移動させるほど、キャラクタオブジェクトは両足をより曲げる。また例えば、図２１の（ａ）に示すように、プレイヤが荷重コントローラ３６の上に右足だけで片足立ちしている状態で、プレイヤがより前方に重心を移動させるほど、キャラクタオブジェクトは右足をより伸ばし、図２１の（ｃ）に示すように、プレイヤが荷重コントローラ３６の上に右足だけで片足立ちしている状態で、プレイヤがより後方に重心を移動させるほど、キャラクタオブジェクトは右足をより曲げる。これにより、プレイヤは、キャラクタオブジェクトの手や宙に浮いている足を、所望の高さに移動させることができる。
【０１１７】
プレイヤは、上記のようにしてコントローラ７および荷重コントローラ３６を用いてキャラクタオブジェクトの手足を適切に制御することによって、キャラクタオブジェクトをゴールホールドまで導くことができる。
【０１１８】
（ゲーム装置の処理の詳細）
次に、上記のようなゲームを実現するためのゲーム装置１２の処理について詳細に説明する。
【０１１９】
図２２は、外部メインメモリ４６のメモリマップである。なお、この実施例ではＣＰＵ４０が外部メインメモリ４６を用いてゲーム処理を実行する例を説明するが、これに限らず、ＣＰＵ４０が内部メインメモリ４２ｅを用いてゲーム処理を実行してもよい。外部メインメモリ４６には、光ディスク１８に格納されたゲームプログラムおよび画像データがロードされる。なお、ゲームプログラムおよび画像データは、光ディスク１８に限らず、他の任意のコンピュータ読み取り可能な記憶媒体や、有線または無線のネットワークを通じてゲーム装置１２に供給されてもよい。外部メインメモリ４６は、ゲームプログラムの実行時に利用される４つの操作対象フラグ（右手、左手、右足、左足の操作対象フラグ）の記憶領域としても利用される。
【０１２０】
（メイン処理）
次に、図２３〜図２６のフローチャートを参照して、上記ゲームプログラムに基づいて実行されるＣＰＵ４０の処理の流れを説明する。
【０１２１】
図２３において、ゲームプログラムの実行が開始されると、ＣＰＵ４０は、ステップＳ１０で、初期化処理を実行する。初期化処理では、外部メインメモリ４６における上記操作対象フラグの格納領域の確保（リセット）などが行われる。
【０１２２】
ステップＳ１１では、ＣＰＵ４０は、右手操作処理を実行する。右手操作処理は、キャラクタオブジェクトの右手の動きを制御する処理である。右手操作処理の詳細は後述する。
【０１２３】
ステップＳ１２では、ＣＰＵ４０は、左手操作処理を実行する。左手操作処理は、キャラクタオブジェクトの左手の動きを制御する処理である。左手操作処理の詳細は後述する。
【０１２４】
ステップＳ１３では、ＣＰＵ４０は、足操作処理を実行する。足操作処理は、キャラクタオブジェクトの足の動きを制御する処理である。足操作処理の詳細は後述する。
【０１２５】
ステップＳ１４では、ＣＰＵ４０は、ゲームを終了するかどうかを判断し、ゲームを続行する場合には処理はステップＳ１１に戻り、ゲームを終了する場合にはゲームプログラムの実行を終了する。ＣＰＵ４０は、例えば、キャラクタオブジェクトがゴールホールドを掴んだ場合や、キャラクタオブジェクトが落下した場合に、ゲームを終了する。
【０１２６】
なお、図２３では、キャラクタオブジェクトの手や足の位置を決定する処理のみを示しているが、実際には、キャラクタオブジェクトの手や足の動きに応じてキャラクタオブジェクトの胴体を動かす処理や、キャラクタオブジェクトやホールドやゴールホールドや背景などからなるゲーム画像を生成してモニタ３４に出力する処理なども行われる。
【０１２７】
（右手操作処理）
次に、図２３のステップＳ１１の右手操作処理の詳細を、図２４のフローチャートを参照して説明する。
【０１２８】
右手操作処理が開始されると、ＣＰＵ４０は、ステップＳ２０で、コアユニット７０に設けられているＢボタン（図１４）が押されているかどうかを判断し、Ｂボタンが押されている場合には処理はステップＳ２１に進み、そうでない場合には処理はステップＳ２４に進む。
【０１２９】
ステップＳ２１では、ＣＰＵ４０は、キャラクタオブジェクトの右手付近にホールドがあるかどうかを判断し、キャラクタオブジェクトの右手付近にホールドがある場合には処理はステップＳ２２に進み、そうでない場合には処理はステップＳ２４に進む。
【０１３０】
ステップＳ２２では、ＣＰＵ４０は、キャラクタオブジェクトの右手を、当該右手付近にあるホールドに固定する（図１４（ｂ））。そして、処理はステップＳ２３に進む。
【０１３１】
ステップＳ２３では、ＣＰＵ４０は、右手の操作対象フラグをオフにする。そして、処理はステップＳ２６に進む。
【０１３２】
ステップＳ２４では、ＣＰＵ４０は、キャラクタオブジェクトの右手をホールドから離す（図１４（ａ））。そして、処理はステップＳ２５に進む。
【０１３３】
ステップＳ２５では、ＣＰＵ４０は、右手の操作対象フラグをオンにする。そして、処理はステップＳ２６に進む。
【０１３４】
ステップＳ２６では、ＣＰＵ４０は、コアユニット７０の加速度データ（加速度センサ７０１によって検出されるＸ軸方向、Ｙ軸方向およびＺ軸方向のそれぞれの加速度）を取得する。そして、処理はステップＳ２７に進む。
【０１３５】
ステップＳ２７では、ＣＰＵ４０は、ステップＳ２６で取得したコアユニット７０の加速度データに基づいて、図１２のθ１および図１３のθ３を算出する。そして、処理はステップＳ２８に進む。なお、θ１は、加速度センサ７０１によって検出されるＸ軸方向およびＹ軸方向の加速度から計算により求めることができる。θ３は、加速度センサ７０１によって検出されるＹ軸方向およびＺ軸方向の加速度から計算により求めることができる。
【０１３６】
ステップＳ２８では、ＣＰＵ４０は、右手の操作対象フラグがオンかどうかを判断し、オンである場合（すなわち、キャラクタオブジェクトの右手がいずれのホールドも掴んでいない場合）には、処理はステップＳ２９に進み、そうでない場合（すなわち、キャラクタオブジェクトの右手がいずれかのホールドを掴んでいる場合）には、処理はステップＳ３０に進む。
【０１３７】
ステップＳ２９では、ＣＰＵ４０は、ステップＳ２７で算出したθ１に応じて、キャラクタオブジェクトの右腕の向き（図１２のθ２）を決定する。そして、処理はステップＳ３０に進む。
【０１３８】
ステップＳ３０では、ＣＰＵ４０は、ステップＳ２７で算出したθ３が、予め定められた閾値よりも小さいかどうかを判断し、小さい場合（図１３（ｂ））には、処理はステップＳ３１に進み、そうでない場合（図１３（ａ））には、処理はステップＳ３２に進む。
【０１３９】
ステップＳ３１では、ＣＰＵ４０は、キャラクタオブジェクトの右腕を曲げる（図１３（ｂ））。そして、右手操作処理を終了する。
【０１４０】
ステップＳ３２では、ＣＰＵ４０は、キャラクタオブジェクトの右腕を伸ばす（図１３（ａ））。そして、右手操作処理を終了する。
【０１４１】
（左手操作処理）
次に、図２３のステップＳ１２の左手操作処理の詳細を、図２５のフローチャートを参照して説明する。
【０１４２】
左手操作処理が開始されると、ＣＰＵ４０は、ステップＳ４０で、サブユニット７６に設けられているＺボタン（図１７）が押されているかどうかを判断し、Ｚボタンが押されている場合には処理はステップＳ４１に進み、そうでない場合には処理はステップＳ４４に進む。
【０１４３】
ステップＳ４１では、ＣＰＵ４０は、キャラクタオブジェクトの左手付近にホールドがあるかどうかを判断し、キャラクタオブジェクトの左手付近にホールドがある場合には処理はステップＳ４２に進み、そうでない場合には処理はステップＳ４４に進む。
【０１４４】
ステップＳ４２では、ＣＰＵ４０は、キャラクタオブジェクトの左手を、当該左手付近にあるホールドに固定する（図１７（ｂ））。そして、処理はステップＳ４３に進む。
【０１４５】
ステップＳ４３では、ＣＰＵ４０は、左手の操作対象フラグをオフにする。そして、処理はステップＳ４６に進む。
【０１４６】
ステップＳ４４では、ＣＰＵ４０は、キャラクタオブジェクトの左手をホールドから離す（図１７（ａ））。そして、処理はステップＳ４５に進む。
【０１４７】
ステップＳ４５では、ＣＰＵ４０は、左手の操作対象フラグをオンにする。そして、処理はステップＳ４６に進む。
【０１４８】
ステップＳ４６では、ＣＰＵ４０は、サブユニット７６の加速度データ（加速度センサ７６１によって検出されるＸ軸方向、Ｙ軸方向およびＺ軸方向のそれぞれの加速度）を取得する。そして、処理はステップＳ４７に進む。
【０１４９】
ステップＳ４７では、ＣＰＵ４０は、ステップＳ４６で取得したサブユニット７６の加速度データに基づいて、図１５のθ４および図１６のθ６を算出する。そして、処理はステップＳ４８に進む。なお、θ４は、加速度センサ７６１によって検出されるＸ軸方向およびＹ軸方向の加速度から計算により求めることができる。θ６は、加速度センサ７６１によって検出されるＹ軸方向およびＺ軸方向の加速度から計算により求めることができる。
【０１５０】
ステップＳ４８では、ＣＰＵ４０は、左手の操作対象フラグがオンかどうかを判断し、オンである場合（すなわち、キャラクタオブジェクトの左手がいずれのホールドも掴んでいない場合）には、処理はステップＳ４９に進み、そうでない場合（すなわち、キャラクタオブジェクトの左手がいずれかのホールドを掴んでいる場合）には、処理はステップＳ５０に進む。
【０１５１】
ステップＳ４９では、ＣＰＵ４０は、ステップＳ４７で算出したθ４に応じて、キャラクタオブジェクトの左腕の向き（図１５のθ５）を決定する。そして、処理はステップＳ５０に進む。
【０１５２】
ステップＳ５０では、ＣＰＵ４０は、ステップＳ４７で算出したθ６が、予め定められた閾値よりも小さいかどうかを判断し、小さい場合（図１６（ｂ））には、処理はステップＳ５１に進み、そうでない場合（図１６（ａ））には、処理はステップＳ５２に進む。
【０１５３】
ステップＳ５１では、ＣＰＵ４０は、キャラクタオブジェクトの左腕を曲げる（図１６（ｂ））。そして、左手操作処理を終了する。
【０１５４】
ステップＳ５２では、ＣＰＵ４０は、キャラクタオブジェクトの左腕を伸ばす（図１６（ａ））。そして、左手操作処理を終了する。
【０１５５】
（足操作処理）
次に、図２３のステップＳ１３の足操作処理の詳細を、図２６のフローチャートを参照して説明する。
【０１５６】
足操作処理が開始されると、ＣＰＵ４０は、ステップＳ６０で、荷重コントローラ３６に設けられている４つの荷重センサ３６ｂによってそれぞれ検出された荷重値を取得する。そして、処理はステップＳ６１に進む。
【０１５７】
ステップＳ６１では、ＣＰＵ４０は、ステップＳ６０で取得した４つの荷重センサ３６ｂの荷重値を加算して“全体合計荷重値”を算出し、当該全体合計荷重値が一定値（例えば７ｋｇ）以上であるかどうかを判断する。そして、全体合計荷重値が一定値以上である場合には処理はステップＳ６５に進み、そうでない場合（すなわち、プレイヤが荷重コントローラ３６から両足とも離していると想定される場合）には処理はステップＳ６２に進む。
【０１５８】
ステップＳ６２では、ＣＰＵ４０は、キャラクタオブジェクトの両足をホールドから離す。そして、処理はステップＳ６３に進む。
【０１５９】
ステップＳ６３では、ＣＰＵ４０は、右足の操作対象フラグをオフにする。そして、処理はステップＳ６４に進む。
【０１６０】
ステップＳ６４では、ＣＰＵ４０は、左足の操作対象フラグをオフにする。そして、処理はステップＳ７６に進む。
【０１６１】
ステップＳ６５では、ＣＰＵ４０は、ステップＳ６０で取得した４つの荷重センサ３６ｂのうち、プレイヤから見て右側に位置する２つの荷重センサ３６ｂの荷重値を加算して“右側合計荷重値”を算出し、当該右側合計荷重値が全体合計荷重値の８割以上であるかどうかを判断する（ただし“８割”というのは単に一例に過ぎない）。そして、右側合計荷重値が全体合計荷重値の８割以上である場合（すなわち、プレイヤが荷重コントローラ３６の上で右足だけで片足立ちしていると想定される場合）には処理はステップＳ６６に進み、そうでない場合には処理はステップＳ６９に進む。
【０１６２】
ステップＳ６６では、ＣＰＵ４０は、キャラクタオブジェクトの右足のみをホールドに固定し、キャラクタオブジェクトの左足はホールドから離す。そして、処理はステップＳ６７に進む。
【０１６３】
ステップＳ６７では、ＣＰＵ４０は、右足の操作対象フラグをオンにする。そして、処理はステップＳ６８に進む。
【０１６４】
ステップＳ６８では、ＣＰＵ４０は、左足の操作対象フラグをオフにする。そして、処理はステップＳ７６に進む。
【０１６５】
ステップＳ６９では、ＣＰＵ４０は、ステップＳ６０で取得した４つの荷重センサ３６ｂのうち、プレイヤから見て左側に位置する２つの荷重センサ３６ｂの荷重値を加算して“左側合計荷重値”を算出し、当該左側合計荷重値が全体合計荷重値の８割以上であるかどうかを判断する（ただし“８割”というのは単に一例に過ぎない）。そして、左側合計荷重値が全体合計荷重値の８割以上である場合（すなわち、プレイヤが荷重コントローラ３６の上で左足だけで片足立ちしていると想定される場合）には処理はステップＳ７０に進み、そうでない場合（すなわち、プレイヤが荷重コントローラ３６の上に両足で立っていると想定される場合）には処理はステップＳ７３に進む。
【０１６６】
ステップＳ７０では、ＣＰＵ４０は、キャラクタオブジェクトの左足のみをホールドに固定し、キャラクタオブジェクトの右足はホールドから離す。そして、処理はステップＳ７１に進む。
【０１６７】
ステップＳ７１では、ＣＰＵ４０は、右足の操作対象フラグをオフにする。そして、処理はステップＳ７２に進む。
【０１６８】
ステップＳ７２では、ＣＰＵ４０は、左足の操作対象フラグをオンにする。そして、処理はステップＳ７６に進む。
【０１６９】
ステップＳ７３では、ＣＰＵ４０は、キャラクタオブジェクトの両足をホールドに固定する。そして、処理はステップＳ７４に進む。
【０１７０】
ステップＳ７４では、ＣＰＵ４０は、右足の操作対象フラグをオンにする。そして、処理はステップＳ７５に進む。
【０１７１】
ステップＳ７５では、ＣＰＵ４０は、左足の操作対象フラグをオンにする。そして、処理はステップＳ７６に進む。
【０１７２】
ステップＳ７６では、ＣＰＵ４０は、荷重コントローラ３６上におけるプレイヤの前後方向の重心位置を算出する。例えば、ステップＳ６０で取得した４つの荷重センサ３６ｂのうち、プレイヤから見て前方に位置する２つの荷重センサ３６ｂの荷重値を加算して“前方合計荷重値”を算出し、全体合計荷重値に対する前方合計荷重値の比率を、荷重コントローラ３６上におけるプレイヤの前後方向の重心位置として利用することができる。そして、処理はステップＳ７７に進む。
【０１７３】
ステップＳ７７では、ＣＰＵ４０は、キャラクタオブジェクトにおいて、操作対象フラグがオンになっている足の膝の角度を、ステップＳ７６で算出した重心位置（荷重コントローラ３６上におけるプレイヤの前後方向の重心位置）に応じて決定する（図２０、図２１）。そして、足操作処理を終了する。
【０１７４】
以上のように、この実施例によれば、プレイヤは、コントローラ７および荷重コントローラ３６を操作することによって、キャラクタオブジェクトの手足を直感的にかつ多様に制御することができる。
【０１７５】
なお、この実施例では、コアユニット７０のＺ軸回りの傾き（図１２）や、Ｘ軸回りの傾き（図１３）に応じてキャラクタオブジェクトの右手を制御しているが、この発明はこれに限らず、コアユニット７０の姿勢に応じてキャラクタオブジェクトの右手を制御するものであればよい。
【０１７６】
また、この実施例では、サブユニット７６のＺ軸回りの傾き（図１５）や、Ｘ軸回りの傾き（図１６）に応じてキャラクタオブジェクトの左手を制御しているが、この発明はこれに限らず、サブユニット７６の姿勢に応じてキャラクタオブジェクトの左手を制御するものであればよい。
【０１７７】
また、この実施例では、４つの荷重センサ３６ｂのうち、２つの荷重センサ３６ｂの荷重値を加算して片側における合計荷重値（請求項４で説明している１つの組の荷重値の和）を算出し、片側における合計荷重値の全体合計荷重値に対する比率によってキャラクタオブジェクトの足を制御しているが、１つの荷重センサ３６ｂの荷重値（請求項４で説明している１つの組の荷重値の和）の全体合計荷重値に対する比率によってキャラクタオブジェクトの足を制御するものであってもよい。また、１つの組の荷重値の和と、全体合計荷重値との比率によらず、２つの組の荷重値の和の比率、たとえば“右側合計荷重値”と“左側合計荷重値”との比によってキャラクタオブジェクトの足を制御するようにしてもよい。
【０１７８】
また、この実施例では、荷重コントローラ３６上におけるプレイヤの左右方向の重心位置（図１９（ｂ）、図１９（ｃ））や、前後方向の重心位置（図２０、図２１）に応じてキャラクタオブジェクトの動作を変化させているが、この発明はこれに限らず、荷重コントローラ３６の対角線方向のように、斜め方向に関する重心位置の移動に応じてキャラクタオブジェクトの動作を変化させてもよい。
【０１７９】
また、この実施例では、荷重コントローラ３６の４隅に荷重センサ３６ｂを設けているが、この発明はこれに限らず、荷重センサ３６ｂの設置位置は任意である。例えば、荷重コントローラ３６の４つの辺のそれぞれの中心付近に荷重センサ３６ｂを設けてもよい。
【０１８０】
また、この実施例では、荷重コントローラ３６に４つの荷重センサ３６ｂを設けているが、この発明はこれに限らず、２つ、３つ、もしくは５つ以上の荷重センサ３６ｂを設けてもよい。なお、荷重センサ３６ｂを２つだけ設けた場合には、重心位置を１次元的にしか検知できないが、荷重センサ３６ｂを３つ以上設けることによって、重心位置を２次元的に検知することが可能となる。
【０１８１】
また、この実施例では、ユーザの操作に応じて、人間を模したキャラクタオブジェクトを制御しているが、この発明はこれに限らず、キャラクタオブジェクトは生き物を模したものであってもよいし、他の物体（現実世界の物体もしくは架空世界の物体）を模したものであってもよい。ユーザの操作に応じて、飛行機を模したキャラクタオブジェクトを制御する場合には、例えば、コアユニット７０の姿勢に基づいて当該飛行機の右翼の制御を行い、サブユニット７６の姿勢に基づいて当該飛行機の左翼の制御を行い、荷重コントローラ３６に加えられた荷重に基づいて当該飛行機の尾翼の制御を行ってもよい。
【０１８２】
（変形例１）
なお、上記のコアユニット７０またはサブユニット７６のように、プレイヤによって把持される少なくとも１つの手持ち型コントローラと、上記の荷重コントローラ３６のように、上記手持ち型コントローラを把持したプレイヤがその上に乗るボード型コントローラとを入力装置として備えたゲームシステムにおいて、上記手持ち型コントローラの傾き方向と、上記ボード型コントローラ上に乗っているプレイヤの重心とを検出して、これらの検出結果の両方を同時に用いてゲーム処理を実行する場合には、プレイヤの体勢によっては、プレイヤの意図した通りの入力操作が行われない場合がある。例えば、コアユニット７０の長軸方向が鉛直になるようにプレイヤがコアユニット７０を保持する状況を想定すると、図２７（ａ）に示すようにプレイヤが荷重コントローラ３６の上で直立している場合（すなわち、荷重コントローラ３６上におけるプレイヤの前後方向の重心位置が、荷重コントローラ３６のほぼ中央に位置する場合）には、コアユニット７０の長軸方向の向きは、プレイヤが意図した通り（すなわち、コアユニット７０の長軸方向が鉛直になるように）の向きになる。しかしながら、図２７（ｂ）に示すようにプレイヤが荷重コントローラ３６の上で前傾姿勢をとっている場合（すなわち、荷重コントローラ３６上におけるプレイヤの前後方向の重心位置が、図２７（ａ）と比較して、プレイヤから見て前方に移動した場合）には、プレイヤ自身は、コアユニット７０の長軸方向が鉛直になるようにコアユニット７０を保持しているように感じているにも関わらず、コアユニット７０の長軸方向の実際の向きは、鉛直方向からずれてしまいがちである。プレイヤが荷重コントローラ３６の上で後ろ側や右側や左側に傾いて立っている場合についても同様である。その結果、プレイヤは、意図した通りの操作が行えず、操作性が悪いと感じてしまうおそれがある。そこで、このようなおそれを無くすために、上記のようにして検出された手持ち型コントローラの傾き方向を、上記のようにして検出されたプレイヤの重心に応じて補正した上で、ゲーム処理に利用するようにしてもよい。例えば、図２７（ｂ）の例では、コアユニット７０に設けられた加速度センサ７０１の検出結果に基づいて算出されるコアユニット７０の姿勢（傾き）を、θ７だけ補正することによって、プレイヤの意図した通りの入力が行われるようになる。補正量は、例えば、ボード型コントローラ上に乗っているプレイヤの重心と補正量とを対応付けたルックアップテーブルを用いて決定すればよい。このように、検出された手持ち型コントローラの傾き方向を、プレイヤの傾き方向および傾き度合い（これらは重心位置から判断することができる）に応じて補正することにより、プレイヤの意図した通りの入力が行われるようになる。
【０１８３】
なお、上記の例では、検出された手持ち型コントローラの傾き方向を、プレイヤの傾き方向とは反対方向に補正している。例えば、プレイヤの体がプレイヤの前方に傾いている場合には、検出された手持ち型コントローラの傾き方向を実際の方向よりもプレイヤの後方に補正している。しかしながら、場合によっては（すなわち、そうした方がプレイヤの意図した通りの入力が行われるようなケースでは）、検出された手持ち型コントローラの傾き方向を、プレイヤの傾き方向と同一方向に補正してもよい。たとえば、プレイヤが、図１３に示したθ３が大きくなる方向にコアユニット７０を傾ける場合（すなわち、プレイヤがコアユニット７０を前方に倒す場合）、プレイヤがコアユニット７０を前方に大きく傾けようとするほど、操作に熱中して無意識に体全体が前のめりになるかも知れない。したがって、この場合には、荷重コントローラ３６上における前後方向の重心位置が前方に移動したことから、コアユニット７０を前方にもっと大きく傾けたいというプレイヤの意向を汲んで、検出されたコアユニット７０の傾き方向θ３を、より大きい値になるように補正するのが好ましい。これにより、プレイヤの意図した通りの入力が行われるようになる。
【０１８４】
（変形例２）
なお、上記変形例１では、検出された手持ち型コントローラの傾き方向を、ボード型コントローラ上に乗っているプレイヤの重心に応じて補正する例を説明したが、これとは逆に、検出されたボード型コントローラ上に乗っているプレイヤの重心を、手持ち型コントローラの傾き方向に応じて補正する例も考えられる。例えば、上述したように、プレイヤが、図１３に示したθ３が大きくなる方向にコアユニット７０を傾ける場合（すなわち、プレイヤがコアユニット７０を前方に倒す場合）、プレイヤがコアユニット７０を前方に大きく傾けようとするほど、操作に熱中して無意識に体全体が前のめりになるかも知れない。その結果、荷重コントローラ３６上における前後方向の重心位置が前方に移動し、ユーザの意図に反してキャラクタオブジェクトの膝が伸びてしまうことになる。したがって、この場合には、コアユニット７０の傾き方向θ３が大きくなったことから、荷重コントローラ３６上においてプレイヤが無意識に前のめりになっていると推測し、検出された重心位置を、より後方になるように補正するのが好ましい。これにより、プレイヤの意図した通りの入力が行われるようになる。
【図面の簡単な説明】
【０１８５】
【図１】この発明の一実施例のゲームシステム１０の外観図
【図２】ゲームシステム１０の機能ブロック図
【図３】コントローラ７の外観図
【図４】コアユニット７０の内部構成を示す斜視図
【図５】サブユニット７６の内部構成を示す斜視図
【図６】コントローラ７の機能ブロック図
【図７】荷重コントローラ３６の斜視図
【図８】荷重コントローラ３６の断面図
【図９】荷重コントローラ３６の機能ブロック図
【図１０】ゲームプレイ時のプレイヤの様子を示す図
【図１１】モニタ３４に表示されるゲーム画像の一例
【図１２】コアユニット７０を用いたキャラクタオブジェクトの操作方法を示す図
【図１３】コアユニット７０を用いたキャラクタオブジェクトの操作方法を示す図
【図１４】コアユニット７０を用いたキャラクタオブジェクトの操作方法を示す図
【図１５】サブユニット７６を用いたキャラクタオブジェクトの操作方法を示す図
【図１６】サブユニット７６を用いたキャラクタオブジェクトの操作方法を示す図
【図１７】サブユニット７６を用いたキャラクタオブジェクトの操作方法を示す図
【図１８】キャラクタオブジェクトの動きを示す図
【図１９】荷重コントローラ３６を用いたキャラクタオブジェクトの操作方法を示す図
【図２０】荷重コントローラ３６を用いたキャラクタオブジェクトの操作方法を示す図
【図２１】荷重コントローラ３６を用いたキャラクタオブジェクトの操作方法を示す図
【図２２】外部メインメモリ４６のメモリマップ
【図２３】ゲーム処理の全体の流れを示すフローチャート
【図２４】右手操作処理の流れを示すフローチャート
【図２５】左手操作処理の流れを示すフローチャート
【図２６】足操作処理の流れを示すフローチャート
【図２７】変形例１に係る補正処理の概要を示す図
【符号の説明】
【０１８６】
１０    ゲームシステム
１２    ゲーム装置
１８    光ディスク
３４    モニタ
３６    荷重コントローラ
３６ａ    台
３６ｂ    荷重センサ（ロードセル）
３６ｃ    電源ボタン
７    コントローラ
７０    コアユニット
７０１    加速度センサ
７１    ハウジング
７２    操作部
７６    サブユニット
７６１    加速度センサ
７７    ハウジング
７８    操作部
【図１】
2010125171.tif 000003
【図２】
2010125171.tif 000004
【図３】
2010125171.tif 000005
【図４】
2010125171.tif 000006
【図５】
2010125171.tif 000007
【図６】
2010125171.tif 000008
【図７】
2010125171.tif 000009
【図８】
2010125171.tif 000010
【図９】
2010125171.tif 000011
【図１０】
2010125171.tif 000012
【図１１】
2010125171.tif 000013
【図１２】
2010125171.tif 000014
【図１３】
2010125171.tif 000015
【図１４】
2010125171.tif 000016
【図１５】
2010125171.tif 000017
【図１６】
2010125171.tif 000018
【図１７】
2010125171.tif 000019
【図１８】
2010125171.tif 000020
【図１９】
2010125171.tif 000021
【図２０】
2010125171.tif 000022
【図２１】
2010125171.tif 000023
【図２２】
2010125171.tif 000024
【図２３】
2010125171.tif 000025
【図２４】
2010125171.tif 000026
【図２５】
2010125171.tif 000027
【図２６】
2010125171.tif 000028
【図２７】
2010125171.tif 000029