(57)【要約】    【構成】  ゲーム装置１２はＣＰＵ（６０）を含み、このＣＰＵ（６０）は第１コントローラ３４から送信される角速度データ、すなわちジャイロセンサユニット１００（ジャイロセンサ１０４）の姿勢に基づいて、ゲーム空間内の移動オブジェクト（１４２）の移動方向、すなわち位置および姿勢を設定する。そして、第２コントローラ３６を、Ｃボタン（５４ｂ）およびＺボタン（５４ｃ）を同時に押した状態で手前側に引き、その状態でＣボタン（５４ｂ）およびＺボタン（５４ｃ）を同時に離したとき、移動オブジェクト（１４２）を発射する。    【効果】  ジャイロセンサの姿勢によって移動オブジェクトの移動方向を設定するので、設定が迅速に行なえる。【選択図】  図１
2010017389.tif 000002
【特許請求の範囲】
【請求項１】
入力装置の姿勢に応じたゲーム処理を行うゲーム装置であって、
姿勢に基づいて姿勢相関データを出力する入力装置から操作データを取得する操作データ取得手段、
前記姿勢相関データに応じてゲーム空間内の第１のオブジェクトの移動予定方向を変化させる移動方向設定手段、
前記操作データに基づいて、前記第１のオブジェクトの移動を指示する移動指示入力手段、および
前記第１のオブジェクトの移動方向を、前記移動指示入力に基づくタイミングにおいて設定されている前記移動予定方向に決定し、前記第１のオブジェクトを当該方向に移動開始させる移動開始手段を備える、ゲーム装置。
【請求項２】
前記入力装置の姿勢に応じて第２のオブジェクトの姿勢を決定する姿勢設定手段をさらに備え、
前記移動予定方向設定手段は、前記第２のオブジェクトの姿勢に対応させて前記第１のオブジェクトの移動方向を変化させる、請求項１記載のゲーム装置。
【請求項３】
前記入力装置は、ジャイロセンサを備え、前記操作データとして少なくとも当該ジャイロセンサの出力に基づく角速度データを出力し、
前記移動予定方向設定手段は、前記角速度データに基づいて前記第１のオブジェクトの移動予定方向を変化させる、請求項１記載のゲーム装置。
【請求項４】
前記入力装置は、前記ジャイロセンサと共に動かすことのできる第１の加速度センサをさらに備え、前記操作データとして少なくとも当該第１の加速度センサの出力に基づく加速度データをさらに出力し、
前記移動予定方向設定手段は、前記角速度データと、前記加速度データに基づいて前記第１のオブジェクトの移動予定方向を変化させる、請求項３記載のゲーム装置。
【請求項５】
前記移動予定方向設定手段は、前記角速度データに基づいて姿勢を算出し、当該姿勢を前記加速度データに基づいて補正することによって算出された姿勢に対応させて、前記第１のオブジェクトの移動予定方向を算出する、請求項４記載のゲーム装置。
【請求項６】
前記移動予定方向設定手段は、前記角速度データに基づいてヨー方向の姿勢を算出し、前記加速度データに基づいてピッチ方向の姿勢を算出する、請求項４記載のゲーム装置。
【請求項７】
前記入力装置は、第１のキーをさらに備え、前記操作データとして当該第１のキーへの操作に基づくキーデータをさらに出力し、
前記移動指示入力手段は、前記キーデータが所定の条件を満たしたタイミングで前記第１のオブジェクトの移動を指示する、請求項３記載のゲーム装置。
【請求項８】
前記入力装置は、前記ジャイロセンサとは独立に動かすことのできる第２の加速度センサをさらに備え、前記操作データとして当該第２の加速度センサの出力に基づく加速度データをさらに出力し、
前記移動指示入力手段は、前記第１のキーが操作されたまま前記入力装置が所定方向へ移動した状態を前記キーデータおよび加速度データに基づいて判定し、かつ当該状態において前記第１のキーの操作が解除されたタイミングで前記第１のオブジェクトの移動を指示する、請求項７記載のゲーム装置。
【請求項９】
前記入力装置は、方向入力が可能なスティックをさらに備え、前記操作データとしてス
ティック入力データをさらに出力し、
前記移動指示入力手段は、スティック入力データが所定の条件を満たしたタイミングで前記第１のオブジェクトの移動を指示する、請求項３記載のゲーム装置。
【請求項１０】
前記入力装置は、第２のキーをさらに備え、前記操作データとして当該第２のキーへの操作に基づくキーデータをさらに出力し、
前記移動予定方向設定手段は、前記キーが操作されている期間中において、前記キーが操作されたタイミングでの姿勢からの変化に基づいて、基準からの姿勢の変化を算出する、請求項１記載のゲーム装置。
【請求項１１】
入力装置の姿勢に応じたゲーム処理を行うゲーム装置のプロセサを、
姿勢に基づいて姿勢相関データを出力する入力装置から操作データを取得する操作データ取得手段、
前記姿勢相関データに応じてゲーム空間内の第１のオブジェクトの移動予定方向を変化させる移動方向設定手段、
前記操作データに基づいて、前記第１のオブジェクトの移動を指示する移動指示入力手段、および
前記第１のオブジェクトの移動方向を、前記移動指示入力に基づくタイミングにおいて設定されている前記移動予定方向に決定し、前記第１のオブジェクトを当該方向に移動開始させる移動開始手段として機能させる、ゲームプログラム。
【請求項１２】
前記プロセサをさらに、前記入力装置の姿勢に応じて第２のオブジェクトの姿勢を決定する姿勢設定手段として機能させ、
前記移動予定方向設定手段は、前記第２のオブジェクトの姿勢に対応させて前記第１のオブジェクトの移動方向を変化させる、請求項１１記載のゲームプログラム。
【請求項１３】
前記入力装置は、ジャイロセンサを備え、前記操作データとして少なくとも当該ジャイロセンサの出力に基づく角速度データを出力し、
前記移動予定方向設定手段は、前記角速度データに基づいて前記第１のオブジェクトの移動予定方向を変化させる、請求項１１記載のゲームプログラム。
【請求項１４】
前記入力装置は、前記ジャイロセンサと共に動かすことのできる第１の加速度センサをさらに備え、前記操作データとして少なくとも当該第１の加速度センサの出力に基づく加速度データをさらに出力し、
前記移動予定方向設定手段は、前記角速度データと、前記加速度データに基づいて前記第１のオブジェクトの移動予定方向を変化させる、請求項１３記載のゲームプログラム。
【請求項１５】
前記移動予定方向設定手段は、前記角速度データに基づいて姿勢を算出し、当該姿勢を前記加速度データに基づいて補正することによって算出された姿勢に対応させて、前記第１のオブジェクトの移動予定方向を算出する、請求項１４記載のゲームプログラム。
【請求項１６】
前記移動予定方向設定手段は、前記角速度データに基づいてヨー方向の姿勢を算出し、前記加速度データに基づいてピッチ方向の姿勢を算出する、請求項１４記載のゲームプログラム。
【請求項１７】
前記入力装置は、第１のキーをさらに備え、前記操作データとして当該第１のキーへの操作に基づくキーデータをさらに出力し、
前記移動指示入力手段は、前記キーデータが所定の条件を満たしたタイミングで前記第１のオブジェクトの移動を指示する、請求項１３記載のゲームプログラム。
【請求項１８】
前記入力装置は、前記ジャイロセンサとは独立に動かすことのできる第２の加速度センサをさらに備え、前記操作データとして当該第２の加速度センサの出力に基づく加速度データをさらに出力し、
前記移動指示入力手段は、前記第１のキーが操作されたまま前記入力装置が所定方向へ移動した状態を前記キーデータおよび加速度データに基づいて判定し、かつ当該状態において前記第１のキーの操作が解除されたタイミングで前記第１のオブジェクトの移動を指示する、請求項１７記載のゲームプログラム。
【請求項１９】
前記入力装置は、方向入力が可能なスティックをさらに備え、前記操作データとしてスティック入力データをさらに出力し、
前記移動指示入力手段は、スティック入力データが所定の条件を満たしたタイミングで前記第１のオブジェクトの移動を指示する、請求項１３記載のゲームプログラム。
【請求項２０】
前記入力装置は、第２のキーをさらに備え、前記操作データとして当該第２のキーへの操作に基づくキーデータをさらに出力し、
前記移動予定方向設定手段は、前記キーが操作されている期間中において、前記キーが操作されたタイミングでの姿勢からの変化に基づいて、基準からの姿勢の変化を算出する、請求項１１記載のゲームプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はゲーム装置およびゲームプログラムに関し、特にたとえば、弓矢やボーガンなどのように、方向を定めてオブジェクトを発射または射出するようなゲーム処理を実行する、ゲーム装置およびゲームプログラムに関する。
【背景技術】
【０００２】
従来のこの種のゲーム装置の一例が非特許文献１に開示されている。この非特許文献１のゲーム装置では、矢の発射方向を十字キーで決定し、ジョイスティックを後ろへ倒すことによって矢を番えた弓の弦を引き、そのジョイスティックを前傾させることによって、矢を発射するようにしている。
【非特許文献１】２００６年２月１６日発売の「モンスターハンター２」の解説書４９ページ
【発明の開示】
【発明が解決しようとする課題】
【０００３】
この非特許文献１の背景技術では、矢の移動方向を十字キーで調整するようにしているため、移動方向を決定するまでに、つまり狙いを定めるまでに時間かかかるという問題がある。また、十字キーで弓の狙いを定めるという行為はあまり直感的でないという問題もある。
【０００４】
それゆえに、この発明の主たる目的は、新規な、ゲーム装置およびゲームプログラムを提供することである。
【０００５】
この発明の他の目的は、直感的な操作を行うことのできる、ゲーム装置およびゲームプログラムを提供することである。
【０００６】
この発明のさらに他の目的は、オブジェクトの移動方向をすばやく設定または決定することができる、ゲーム装置およびゲームプログラムを提供することである。
【課題を解決するための手段】
【０００７】
この発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、この発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、この発明を何ら限定するものではない。
【０００８】
第１の発明は、入力装置の姿勢に応じたゲーム処理を行うゲーム装置であって、姿勢に基づいて姿勢相関データを出力する入力装置から操作データを取得する操作データ取得手段、姿勢相関データに応じてゲーム空間内の第１のオブジェクトの移動予定方向を変化させる移動予定方向設定手段、操作データに基づいて、第１のオブジェクトの移動を指示する移動指示入力手段、および第１のオブジェクトの移動方向を、移動指示入力に基づくタイミングにおいて設定されている移動予定方向に決定し、第１のオブジェクトを当該方向に移動開始させる移動開始手段を備える、ゲーム装置である。
【０００９】
第１の発明では、ゲーム装置（１２：実施例において相当する部分を例示する参照符号。以下同じ。）は、実施例では、入力装置（１４）として、第１コントローラ（リモコン）（３４）すなわちジャイロセンサユニット（１００）、さらには第２コントローラ（３６）を用いる。この入力装置は、それの姿勢に基づく姿勢相関データ（ヨー角、ピッチ角、ロール角）を出力するとともに、入力手段または操作部（４６）の操作に応じた操作デ
ータを出力する。この姿勢相関データや操作データが、たとえば無線によって、操作データ取得手段（６２）に入力される。移動予定方向設定手段（６０，Ｓ１５，図２８）が、入力装置の姿勢すなわち姿勢相関データに応じて、ゲーム空間内の第１のオブジェクト、たとえば矢オブジェクト（１４４）の移動予定方向を設定する。たとえば、第２コントローラ（３６）のような入力装置の操作データに基づいて、移動指示が入力される。実施例では、移動指示入力手段（６０，Ｓ１１，Ｓ１７）は、第２コントローラ（３６）が所定の状態で手前側に引かれ、その後所定の状態が解除されたとき、第１のオブジェクトの移動を指示する。そして、移動開始手段（６０，Ｓ２１，Ｓ２３）が第１のオブジェクトの移動方向を、移動指示入力に基づくタイミングにおいて設定されている移動予定方向に決定して、第１のオブジェクトの移動を開始させる。
【００１０】
移動指示入力手段は、これとは別に、たとえば第２のコントローラ（３６）のジョイスティック（５４ａ）の操作に基づいて移動指示を入力するようにしてもよく、あるいは第１のコントローラ（３４）の特定のボタン（たとえばＡボタン４６ｄ）の操作に応答して移動指示を入力するようにしてもよい。
【００１１】
第１の発明では、入力装置の姿勢を変化させることによって第１のオブジェクトの移動方向ないし移動予定方向を設定または決定できる。したがって、移動方向の設定が迅速に行なえる。
【００１２】
第２の発明は、第１の発明に従属し、入力装置の姿勢に応じて第２のオブジェクトの姿勢を決定する姿勢設定手段をさらに備え、移動予定方向設定手段は、第２のオブジェクトの姿勢に対応させて第１のオブジェクトの移動方向を変化させる、ゲーム装置である。
【００１３】
第２の発明では、姿勢設定手段（６０，Ｓ７，Ｓ１３）は第２のオブジェクト、実施例では、第１のオブジェクトが矢オブジェクト（１４４）であるときの弓オブジェクト（１４２）の姿勢を設定する。したがって、第１のオブジェクトの移動方向が第２のオブジェクトの姿勢に応じて変化される。第２の発明によれば、第２のオブジェクトの姿勢を調整することによって、第１のオブジェクト（移動オブジェクト）の移動予定方向を設定することができる。
【００１４】
第３の発明は、第１の発明に従属し、入力装置は、ジャイロセンサを備え、操作データとして少なくとも当該ジャイロセンサの出力に基づく角速度データを出力し、移動予定方向設定手段は、角速度データに基づいて第１のオブジェクトの移動予定方向を変化させる、ゲーム装置である。
【００１５】
第３の発明では、入力装置（１４）は、ジャイロセンサ（１０４）を含み、入力装置からはジャイロセンサによって検出した角速度のデータが姿勢相関データとして出力される。したがって、移動予定方向設定手段（６０，Ｓ１５，図２８）はその角速度データに応じて、第１のオブジェクトの移動予定方向を設定する。第３の発明によれば、ジャイロセンサによって、移動予定方向を設定できる。
【００１６】
第４の発明は、第３の発明に従属し、入力装置は、ジャイロセンサと共に動かすことのできる第１の加速度センサをさらに備え、操作データとして少なくとも当該第１の加速度センサの出力に基づく加速度データをさらに出力し、移動予定方向設定手段は、角速度データと、加速度データに基づいて第１のオブジェクトの移動予定方向を変化させる、ゲーム装置である。
【００１７】
第４の発明では、入力装置（１４）はさらに、第１の加速度センサ（８４）をさらに備える。移動予定方向設定手段は、角速度データと、加速度データとに基づいて第１のオブ
ジェクトの移動予定方向を変化させる。第４の発明によれば、角速度と加速度とに基づいて移動予定方向が調整できる。
【００１８】
第５の発明は、第４の発明に従属し、移動予定方向設定手段は、角速度データに基づいて姿勢を算出し、当該姿勢を加速度データに基づいて補正することによって算出された姿勢に対応させて、第１のオブジェクトの移動予定方向を算出する、ゲーム装置である。
【００１９】
第５の発明では、たとえば毎フレーム、算出された姿勢を加速度データによって決定される姿勢に近づけることによって、ジャイロセンサからの角速度データの累積誤差を補正する。実施例では、第１コントローラ（３４）の姿勢から想定される重力方向（ｖ）が、第１の加速度センサ（８４）によって検出される加速度ベクトル（ａ）の向きに近づく回転（Ｍ）を計算する。この回転（Ｍ）の回転量は、加速度ベクトル（ａ）の大きさが重力加速度の大きさに近いほど、重力方向（ｖ）が加速度ベクトル（ａ）に近くなるように設定している。第５の発明によれば、ジャイロセンサからの角速度に基づく処理において必然的に生じる累積誤差を効果的に除去できる。
【００２０】
第６の発明は、第４の発明に従属し、移動予定方向設定手段は、角速度データに基づいてヨー方向の姿勢を算出し、加速度データに基づいてピッチ方向の姿勢を算出する、ゲーム装置である。
【００２１】
第６の発明のように、ジャイロセンサ（１０４）からの角速度データに基づいて移動オブジェクトのヨー方向の姿勢を算出し、加速度センサ（８４）からの加速度データに基づいてピッチ方向の姿勢を算出するようにしてもよい。
【００２２】
第７の発明は、第３の発明に従属し、入力装置は、第１のキーをさらに備え、操作データとして当該第１のキーへの操作に基づくキーデータをさらに出力し、移動指示入力手段は、キーデータが所定の条件を満たしたタイミングで第１のオブジェクトの移動を指示する、ゲーム装置である。
【００２３】
第７の発明では、入力装置は、第１のキー、実施例で言えばヌンチャク（３６）のＣボタン（５４ｂ）および/またはＺボタン（５４ｃ）を備える。入力装置からのキーデータ
において、第１のキーのキーデータが所定の条件（たとえば、Ｃボタン（５４ｂ）およびＺボタン（５４ｃ）の同時解除）を満たしたとき、移動指示入力手段が移動指示を入力する。第７の発明によれば、キーデータによって移動指示を入力することもできる。
【００２４】
第８の発明は、第７の発明に入力装置は、ジャイロセンサとは独立に動かすことのできる第２の加速度センサをさらに備え、操作データとして当該第２の加速度センサの出力に基づく加速度データをさらに出力し、移動指示入力手段は、第１のキーが操作されたまま入力装置が所定方向へ移動した状態をキーデータおよび加速度データに基づいて判定し、かつ当該状態において第１のキーの操作が解除されたタイミングで第１のオブジェクトの移動を指示する、ゲーム装置である。
【００２５】
第８の発明では、たとえば第２コントローラ（３６）に別の加速度センサ（８６）を設け、上記第１のキーをそのコントローラ（３６）に設けている場合、第１のキー、たとえばＣボタン（５４ｂ）およびＺボタン（５４ｃ）が同時に押された状態で、第２の加速度センサ（８６）からの加速度データに基づいて、移動指示の前提操作があったことを検出する。実施例では、第２コントローラ（３６）の加速度センサ（８６）で検出した加速度に所定のダンパ係数を掛けた後の加速度データから、Ｙ軸を基準にして第２コントローラ（３６）の姿勢を求め、その姿勢の「−Ｚ方向の単位ベクトル」と「現ステップの加速度と前ステップの加速度との差分」との内積が一定の値を超えたかどうか判断し、内積が一
定値を超えていれば、移動指示入力が有ると判断する。第８の発明によれば、第２コントローラ（３６）をたとえば手前側に一定以上の速さで引いたとき、移動指示の前提が確立したと判断するので、たとえば弓矢を使う射撃ゲームであれば、第２コントローラを引くことによって弓を引く動作をさせることができ、弓に対して直観的な操作で矢を発射することができる。
【００２６】
第９の発明は、第３の発明に従属し、入力装置は、方向入力が可能なスティックをさらに備え、操作データとしてスティック入力データをさらに出力し、移動指示入力手段は、スティック入力データが所定の条件を満たしたタイミングで第１のオブジェクトの移動を指示する、ゲーム装置である。
【００２７】
第９の発明では、入力装置（１４）は、たとえば第２コントローラ（３６）にジョイスティック（５４ａ）を備え、移動指示入力手段は、そのジョイスティック（５４ａ）の操作、たとえば、後方傾斜から前方傾斜への移行操作に応じて移動指示を入力する。第９の発明によれば、従来の類似のゲーム装置と同様に、ジョイスティックによって移動指示を入力することができる。
【００２８】
第１０の発明は、第１の発明に従属し、入力装置は、第２のキーをさらに備え、操作データとして当該第２のキーへの操作に基づくキーデータをさらに出力し、移動予定方向設定手段は、キーが操作されている期間中において、キーが操作されたタイミングでの姿勢からの変化に基づいて、基準からの姿勢の変化を算出する、ゲーム装置である。
【００２９】
第１０の発明では、入力装置（１４）は、第２のキーとして、たとえば、第１コントローラ（３４）に設けたＡボタン（４６ｄ）またはＢボタン（４６ｈ）を備える。Ａボタン（４６ｄ）またはＢボタン（４６ｈ）が操作されたとき、入力装置（１４）の基本姿勢を基準として決定し、入力装置（１４）の基本姿勢からの変化に応じて、移動予定方向設定手段（６０，Ｓ１５，図２８）が移動予定方向を設定する。第１０の発明によれば、第２のキーたとえばＡボタン（４６ｄ）またはＢボタン（４６ｈ）の操作によって基準または基本姿勢を決定し、そこからの変化に応じて移動予定方向を設定するので、たとえば、プレイヤをたとえばモニタ（２６）に正しく向かわせるという効果が期待できる。
【００３０】
第１１の発明は、入力装置の姿勢に応じたゲーム処理を行うゲーム装置のプロセサを、姿勢に基づいて姿勢相関データを出力する入力装置から操作データを取得する操作データ取得手段、姿勢相関データに応じてゲーム空間内の第１のオブジェクトの移動予定方向を変化させる移動方向設定手段、操作データに基づいて、第１のオブジェクトの移動を指示する移動指示入力手段、および第１のオブジェクトの移動方向を、移動指示入力に基づくタイミングにおいて設定されている移動予定方向に決定し、第１のオブジェクトを当該方向に移動開始させる移動開始手段として機能させる、ゲームプログラムである。
【００３１】
第１１の発明においても、第１の発明と同様の効果が期待できる。
【００３２】
第１２の発明は、プロセサをさらに、入力装置の姿勢に応じて第２のオブジェクトの姿勢を決定する姿勢設定手段として機能させ、移動予定方向設定手段は、第２のオブジェクトの姿勢に対応させて第１のオブジェクトの移動方向を変化させる、請求項１１記載のゲームプログラムである。
【００３３】
第１２の発明においても、第２の発明と同様の効果が期待できる。
【００３４】
第１３の発明は、入力装置は、ジャイロセンサを備え、操作データとして少なくとも当該ジャイロセンサの出力に基づく角速度データを出力し、移動予定方向設定手段は、角速
度データに基づいて第１のオブジェクトの移動予定方向を変化させる、請求項１１記載のゲームプログラムである。
【００３５】
第１３の発明においても、第３の発明と同様の効果が期待できる。
【００３６】
第１４の発明は、入力装置は、前記ジャイロセンサと共に動かすことのできる第１の加速度センサをさらに備え、操作データとして少なくとも当該第１の加速度センサの出力に基づく加速度データをさらに出力し、移動予定方向設定手段は、角速度データと、加速度データに基づいて第１のオブジェクトの移動予定方向を変化させる、請求項１３記載のゲームプログラムである。
【００３７】
第１４の発明においても、第４の発明と同様の効果が期待できる。
【００３８】
第１５の発明は、移動予定方向設定手段は、角速度データに基づいて姿勢を算出し、当該姿勢を加速度データに基づいて補正することによって算出された姿勢に対応させて、第１のオブジェクトの移動予定方向を算出する、請求項１４記載のゲームプログラムである。
【００３９】
第１５の発明においても、第５の発明と同様の効果が期待できる。
【００４０】
第１６の発明は、移動予定方向設定手段は、角速度データに基づいてヨー方向の姿勢を算出し、加速度データに基づいてピッチ方向の姿勢を算出する、請求項１４記載のゲームプログラムである。
【００４１】
第１６の発明においても、第６の発明と同様の効果が期待できる。
【００４２】
第１７の発明は、入力装置は、第１のキーをさらに備え、操作データとして当該第１のキーへの操作に基づくキーデータをさらに出力し、移動指示入力手段は、キーデータが所定の条件を満たしたタイミングで第１のオブジェクトの移動を指示する、請求項１３記載のゲームプログラムである。
【００４３】
第１７の発明においても、第７の発明と同様の効果が期待できる。
【００４４】
第１８の発明は、入力装置は、ジャイロセンサとは独立に動かすことのできる第２の加速度センサをさらに備え、操作データとして当該第２の加速度センサの出力に基づく加速度データをさらに出力し、移動指示入力手段は、第１のキーが操作されたまま入力装置が所定方向へ移動した状態をキーデータおよび加速度データに基づいて判定し、かつ当該状態において第１のキーの操作が解除されたタイミングで第１のオブジェクトの移動を指示する、請求項１７記載のゲームプログラムである。
【００４５】
第１８の発明においても、第８の発明と同様の効果が期待できる。
【００４６】
第１９の発明は、入力装置は、方向入力が可能なスティックをさらに備え、操作データとしてスティック入力データをさらに出力し、移動指示入力手段は、スティック入力データが所定の条件を満たしたタイミングで第１のオブジェクトの移動を指示する、請求項１３記載のゲームプログラムである。
【００４７】
第１９の発明においても、第９の発明と同様の効果が期待できる。
【００４８】
第２０の発明は、入力装置は、第２のキーをさらに備え、操作データとして当該第２の
キーへの操作に基づくキーデータをさらに出力し、移動予定方向設定手段は、キーが操作されている期間中において、キーが操作されたタイミングでの姿勢からの変化に基づいて、基準からの姿勢の変化を算出する、請求項１１記載のゲームプログラムである。
【００４９】
第２０の発明においても、第１０の発明と同様の効果が期待できる。
【発明の効果】
【００５０】
この発明によれば、入力装置の姿勢を変化させることによってオブジェクトの移動方向を調整できるので、オブジェクトの移動方向を容易にかつすばやく設定または決定することができる。
【００５１】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００５２】
図１を参照して、この発明の一実施例であるゲームシステム１０は、ビデオゲーム装置（以下、単に「ゲーム装置」ということがある。）１２およびコントローラ１４を含む。コントローラ１４は、ユーザないしプレイヤの入力装置ないし操作装置として機能する。ゲーム装置１２とコントローラ１４とは無線によって接続される。たとえば、無線通信は、Bluetooth（登録商標）規格に従って実行されるが、赤外線や無線ＬＡＮなど他の規格
に従って実行されてもよい。
【００５３】
ゲーム装置１２は、略直方体のハウジング１６を含み、ハウジング１６の前面にはディスクスロット１８および外部メモリカードスロットカバー２０が設けられる。ディスクスロット１８から、ゲームプログラムおよびデータを記憶した情報記憶媒体の一例である光ディスク２２が挿入されて、ハウジング１６内のディスクドライブ７４（図１０）に装着される。外部メモリカードスロットカバー２０の内側には外部メモリカード用コネクタ４８（図１０）が設けられており、その外部メモリカード用コネクタ４８には外部メモリカード（図示せず）が挿入される。メモリカードは、光ディスク２２から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム１０を利用してプレイされたゲームのゲームデータ（結果データまたは途中データ）を保存（セーブ）しておいたりするために利用される。また、上記ゲームデータの保存は、外部メモリカードに代えて、たとえばフラッシュメモリ６４（図１０）等の内部メモリに対して行うようにしてもよい。
【００５４】
ゲーム装置１２のハウジング１６の後面には、ＡＶケーブルコネクタ（図示せず）が設けられ、当該コネクタを用いて、ゲーム装置１２はＡＶケーブル２４を介してモニタ（ディスプレイ）２６に接続される。このモニタ２６は典型的にはカラーテレビジョン受像機であり、ＡＶケーブル２４は、ゲーム装置１２からの映像信号をカラーテレビのビデオ入力端子に入力し、音声信号を音声入力端子に入力する。したがって、カラーテレビ（モニタ）２６の画面上にたとえば３Ｄビデオゲームのゲーム画像が表示され、内蔵されるスピーカ２８からゲーム音楽や効果音などのステレオゲーム音声が出力される。
【００５５】
また、モニタ２６の周辺（この実施例では、モニタ２６の上側）には、２つの赤外ＬＥＤ（マーカ）３０ａおよび３０ｂを備えるマーカ部３０が設けられる。このマーカ部３０は、電源ケーブル（図示せず）を通してゲーム装置１２に接続される。したがって、マーカ部３０には、ゲーム装置１２から電源が供給される。これによって、マーカ３０ａ，３０ｂは発光し、それぞれモニタ２６の前方に向けて赤外光を出力する。
【００５６】
なお、ゲーム装置１２の電源は、一般的なＡＣアダプタ（図示せず）によって与えられ
る。ＡＣアダプタは家庭用の標準的な壁ソケットに接続され、家庭用電源を、ゲーム装置１２を駆動するのに適した低いＤＣ電圧信号に変換する。他の実施例では、電源としてバッテリが用いられてもよい。
【００５７】
コントローラ１４は、詳細は後述されるが、それぞれが片手で把持可能な第１コントローラ３４および第２コントローラ３６と、第１コントローラ３４に着脱可能に装着されるジャイロセンサユニット１００とを含む。第１コントローラ３４の後端面にはコネクタ４２（図２（Ａ）、図１１）が設けられ、第２コントローラ３６の後端から延びるケーブル３８の先端にはコネクタ４０（図１、図５、図１１）が設けられ、そしてジャイロセンサユニット１００の先端面および後端面にはコネクタ１０６および１０８（図６（Ａ）、図６（Ｂ）、図７および図１１）がそれぞれ設けられる。ジャイロセンサユニット１００の先端面側のコネクタ１０６は第１コントローラ３４のコネクタ４２と接続可能であり、第２コントローラ３６のコネクタ４０は第１コントローラ３４のコネクタ４２またはジャイロセンサユニット１００の後端面側のコネクタ１０８と接続可能である。
【００５８】
コネクタ１０６をコネクタ４２に接続することで、ジャイロセンサユニット１００は、第１コントローラ３４と物理的および電気的に結合される。こうして第１コントローラ３４に装着（一体化）されたジャイロセンサユニット１００からは、第１コントローラ３４の角速度を示す角速度データが出力される。
【００５９】
こうして第１コントローラ３４にジャイロセンサユニット１００が装着された場合、第２コントローラ３６のコネクタ４０は、ジャイロセンサユニット１００の後端面側のコネクタ１０８に接続される。すなわち、コネクタ４２は、コネクタ１０６とコネクタ４０の両者を選択的に接続可能な構造であって、コネクタ４０は、コネクタ４２とコネクタ１０８の両者に選択的に接続可能な構造である。したがって、ジャイロセンサユニット１００に設けられるコネクタ１０６とコネクタ１０８とは、同一のハウジングに設けられるため実際は接続できないが、コネクタの形状としては互いに接続可能な形状をしていることになる。第２コントローラ３６の入力データは、ケーブル３８およびジャイロセンサユニット１００を介して第１コントローラ３４に与えられる。第１コントローラ３４は、第１コントローラ３４自身の入力データと、ジャイロセンサユニット１００からの角速度データと、第２コントローラ３６の入力データとを含むコントローラデータをゲーム装置１２に送信する。
【００６０】
なお、コネクタ４０をコネクタ４２に接続した場合には、第２コントローラ３６の操作データないし入力データはケーブル３８を介して第１コントローラ３４に与えられ、第１コントローラ３４は、第１コントローラ３４自身の入力データと第２コントローラ３６の入力データとを含むコントローラデータをゲーム装置１２に送信する。
【００６１】
このとき、第１コントローラ３４の入力データと、第２コントローラ３６の入力データを送信するシステムにおいて、一度に送信するデータ量を追加することができないように設計されている場合もあるが、ジャイロユニット１００を追加した場合に、ジャイロユニット１００からの角速度データと、第２コントローラ３６からの入力データとを交互に第１コントローラ３６へ出力することによって、両者のデータを送信することができる。このデータ制御はジャイロユニット１００で行うことができるので、第１コントローラ３４や第２コントローラ３６には何ら設計の変更をする必要がない。
【００６２】
このように、第１コントローラ３４がゲーム装置１２から離れて、無線などによって、そのコントローラ３４の操作信号や操作データ(データ)だけでなく、第２コントローラ３６やジャイロセンサユニット１００からの操作信号や操作データ(データ)を、ゲーム装置１２に対して入力するので、第１コントローラ３４を以下において、「リモコン」と呼ぶ
こともある。また、第２コントローラ３６は、その形態から「ヌンチャク」と愛称されているので、以下において、そのように呼ぶこともある。
【００６３】
このように、ジャイロセンサユニット１００は、既存の第１コントローラ３４および第２コントローラ３６をそのまま利用しながら、第１コントローラ３４にジャイロ機能を付加するための拡張ユニットである。
【００６４】
このゲームシステム１０において、ゲーム（または他のアプリケーション）をプレイするために、ユーザはまずゲーム装置１２の電源をオンし、次いで、ユーザはビデオゲーム（もしくは実行したいと思う他のアプリケーション）を記憶している適宜の光ディスク２２を選択し、その光ディスク２２をゲーム装置１２のディスクスロット１８からディスクドライブ７４にローディングする。これに応じて、ゲーム装置１２がその光ディスク２２に記憶されているソフトウェアに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。ユーザはゲーム装置１２に入力を与えるためにコントローラ１４を操作する。
【００６５】
図２にはリモコンまたは第１コントローラ３４の外観の一例が示される。図２（Ａ）は、第１コントローラ３４を上面後方から見た斜視図であり、図２（Ｂ）は、第１コントローラ３４を下面前方から見た斜視図である。
【００６６】
第１コントローラ３４は、たとえばプラスチック成型によって形成されたハウジング４４を有している。ハウジング４４は、その前後方向（Ｚ軸方向）を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。一例として、ハウジング４４は人間の掌とほぼ同じ長さまたは幅を持つ大きさをしている。プレイヤは、第１コントローラ３４を用いて、それに設けられたボタンを押下することと、第１コントローラ３４自体の位置や向きを変えることとによって、ゲーム操作を行うことができる。
【００６７】
ハウジング４４には、複数の操作ボタンが設けられる。すなわち、ハウジング４４の上面には、十字キー４６ａ、１（いち）ボタン４６ｂ、２（に）ボタン４６ｃ、Ａボタン４６ｄ、−（マイナス)ボタン４６ｅ、ホーム（HOME）ボタン４６ｆ、および＋（プラス）
ボタンないしスタートボタン４６ｇが設けられる。一方、ハウジング４４の下面には凹部が形成されており、当該凹部の後方側傾斜面にはＢボタン４６ｈが設けられる。これら各ボタン（スイッチ）４６ａ−４６ｈには、ゲーム装置１２が実行するゲームプログラムに応じてそれぞれ適宜な機能が割り当てられる。また、ハウジング４４の上面には、遠隔からゲーム装置１２本体の電源をオン／オフするための電源スイッチ４６ｉが設けられる。第１コントローラ３４に設けられる各ボタン（スイッチ）は、包括的に参照符号４６を用いて操作手段または入力手段として示されることもある。
【００６８】
十字キー４６ａは、４方向プッシュスイッチであり、矢印で示す４つの方向、前（または上）、後ろ（または下）、右および左の操作部を含む。この操作部のいずれか１つを操作することによって、プレイヤによって操作可能なキャラクタまたはオブジェクト（プレイヤキャラクタまたはプレイヤオブジェクト）の移動方向を指示したり、カーソルの移動方向を指示したり、単に方向を指示したりすることができる。
【００６９】
１ボタン４６ｂおよび２ボタン４６ｃは、それぞれ、押しボタンスイッチである。たとえば３次元ゲーム画像を表示する際の視点位置や視点方向、すなわち仮想カメラの位置や画角を調整する等のゲームの操作に使用される。または、１ボタン４６ｂおよび２ボタン４６ｃは、Ａボタン４６ｄおよびＢボタン４６ｈと同じ操作或いは補助的な操作をする場合に用いるようにしてもよい。
【００７０】
Ａボタンスイッチ４６ｄは、押しボタンスイッチであり、プレイヤキャラクタまたはプレイヤオブジェクトに、方向指示以外の動作、すなわち、打つ（パンチ）、投げる、つかむ（取得）、乗る、ジャンプするなどの任意のアクションをさせるために使用される。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かすなどを指示することができる。また、ロールプレイングゲーム（ＲＰＧ）やシミュレーションＲＰＧにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。また、Ａボタンスイッチ４６ｄは、コントローラ３４をポインティングデバイスとして用いる場合に、ゲーム画面上でポインタ（指示画像）が指示するアイコンないしボタン画像の決定を指示するために使用される。たとえば、アイコンやボタン画像が決定されると、これらに対応して予め設定されている指示ないし命令（コマンド）を入力することができる。
【００７１】
−ボタン４６ｅ、ホームボタン４６ｆ、＋ボタン４６ｇおよび電源スイッチ４６ｉもまた、押しボタンスイッチである。−ボタン４６ｅは、ゲームモードを選択するために使用される。ホームボタン４６ｆは、ゲームメニュー（メニュー画面）を表示するために使用される。＋ボタン４６ｇは、ゲームを開始（再開）したり、一時停止したりするなどのために使用される。電源スイッチ４６ｉは、ゲーム装置１２の電源を遠隔操作によってオン／オフするために使用される。
【００７２】
なお、この実施例では、コントローラ３４自体をオン／オフするための電源スイッチは設けておらず、コントローラ３４の操作手段ないし入力手段４６のいずれかを操作することによってコントローラ３４はオンとナリ、一定時間（たとえば、３０秒）以上操作しなければ自動的にオフとなるようにしてある。
【００７３】
Ｂボタン４６ｈもまた、押しボタンスイッチであり、主として、弾を撃つなどのトリガを模した入力を行ったり、コントローラ３４で選択した位置を指定したりするために使用される。また、Ｂボタン４６ｈを押し続けると、プレイヤオブジェクトの動作やパラメータを一定の状態に維持することもできる。また、一定の場合には、Ｂボタン４６ｈは、通常のＢボタンと同様に機能し、Ａボタン４６ｄによって決定したアクションやコマンドなどを取り消すなどのために使用される。
【００７４】
ハウジング４４内には、図２に示すＸ、ＹおよびＺの３軸方向（すなわち左右方向、上下方向および前後方向）の加速度を検出する加速度センサ８４（図１１）が設けられる。なお、加速度センサ８４としては、ハウジング４４の形状または第１コントローラ３４の持たせ方の限定等に応じて、上下方向、左右方向および前後方向のうちいずれか２方向の加速度を検出する２軸加速度センサが用いられてもよい。場合によっては１軸加速度センサが用いられてもよい。
【００７５】
ハウジング４４の前面には光入射口４４ｂが形成され、ハウジング４４内には撮像情報演算部５０がさらに設けられる。撮像情報演算部５０は、赤外線を撮像するカメラと撮像対象の画像内での座標を算出する演算部とによって構成され、上述のマーカ３０ａおよび３０ｂを含む被写界を赤外線で捉えて、マーカ３０ａおよび３０ｂの被写界内における位置座標を算出する。
【００７６】
また、ハウジング４４の後面には、上述のコネクタ４２が設けられている。コネクタ４２は、第１コントローラ３４に他の機器を接続するために利用される。この実施例では、コネクタ４２には第２コントローラ３６のコネクタ４０またはジャイロセンサユニット１００のコネクタ１０６が接続される。
【００７７】
ハウジング４４の後面にはまた、コネクタ４２を左右（Ｘ軸方向）に挟んで対向する位置に、一対の孔４８ａおよび４８ｂが形成されている。この一対の孔４８ａおよび４８ｂは、ジャイロセンサユニット１００をハウジング４４の後面に固定するためのフック１１２Ｆａおよび１１２Ｆｂ（図６（Ａ））が挿入される。ハウジング４４の後面にはさらに、ストラップ５６（図５）を装着するための孔４８ｃも形成されている。
【００７８】
図３にはヌンチャクまたは第２コントローラ３６の本体の外観の一例が示される。図３（Ａ）は、第２コントローラ３６を上面後方から見た斜視図であり、図３（Ｂ）は、第２コントローラ３６を下面前方から見た斜視図である。なお、図３では、第２コントローラ３６のケーブル３８は省略されている。
【００７９】
第２コントローラ３６は、たとえばプラスチック成型によって形成されたハウジング５２を有している。ハウジング５２は、平面視では、前後方向（Ｚ軸方向）に略細長い楕円形状を有し、後端側の左右方向（Ｘ軸方向）の幅が先端側のそれよりも狭くされている。また、ハウジング５２は、側面視では、全体として湾曲した形状を有しており、先端側の水平部分から後端側に向かって下がるように湾曲している。ハウジング５２は、第１コントローラ３４と同様に、全体として大人や子供の片手で把持可能な大きさであるが、長手方向（Ｚ軸方向）の長さは、第１コントローラ３４のハウジング４４よりもやや短くされている。この第２コントローラ３６でも、プレイヤは、ボタンやスティックを操作することと、コントローラ自体の位置や向きを変えることとによって、ゲーム操作を行うことができる。
【００８０】
ハウジング５２の上面の先端側には、アナログジョイスティック５４ａが設けられる。ハウジング５２の先端には、後方にやや傾斜する先端面が設けられており、この先端面には、上下方向（図３に示すＹ軸方向）に並べて、Ｃボタン５４bおよびＺボタン５４ｃが
設けられる。アナログジョイスティック５４ａおよび各ボタン５４ｂ，５４ｃには、ゲーム装置１２が実行するゲームプログラムに応じてそれぞれ適宜な機能が割り当てられる。第２コントローラ３６に設けられるアナログジョイスティック５４ａおよび各ボタン５４ｂ，５４ｃは、包括的に参照符号８８を用いて示されることもある。
【００８１】
また、第２コントローラ３６のハウジング５２内には加速度センサ８６（図１１）が設けられている。この加速度センサ８６としては、第１コントローラ３４の加速度センサ８４と同様の加速度センサが適用される。具体的には、この実施例では３軸加速度センサが適用され、第２コントローラ３６の上下方向（Ｙ軸方向）、左右方向（Ｘ軸方向）および前後方向（Ｚ軸方向）の３軸方向のそれぞれで加速度を検知する。したがって、第１コントローラ３４の場合と同様に、検出された加速度に適宜な演算処理を施すことによって、第２コントローラ３６の傾きや回転、重力方向に対する加速度センサ８６の姿勢などを算出することができる。また、振り等によって第１コントローラ３４に加えられた動きについても同様に算出することができる。
【００８２】
図４には第２コントローラ３６のコネクタ４０の外観の一例が示される。図４は、コネクタ４０を下面前方から見た斜視図である。なお、ここでもケーブル３８は省略されている。コネクタ４０は、たとえばプラスチック成型によって形成されたハウジング１２２を有する。ハウジング１２２の下面にはフック１２４が設けられている。このフック１２４は、本来的には、図５に示すように、コネクタ４０を第１コントローラ３４（のコネクタ４２）と直に接続した場合に、第１コントローラ３４に装着されたストラップ５６のひもを掛け止めるためのものである。ストラップ５６のひもをフック１４４に掛け止めることによって、第１コントローラ３４と第２コントローラ３６とがしっかり固定される。
【００８３】
図６にはジャイロセンサユニット１００の外観の一例が示される。図６（Ａ）は、ジャイロセンサユニット１００を上面前方から見た斜視図であり、図６（Ｂ）は、ジャイロセンサユニット１００を下面後方から見た斜視図である。
【００８４】
ジャイロセンサユニット１００は、たとえばプラスチック成型によって形成されたハウジング１１０を有している。ハウジング１１０は、略直方体形状を有しており、その長さは第１コントローラ３４のハウジング４４の長さのおよそ１／５、その幅および厚みはハウジング４４の幅および厚みとほぼ同じである。プレイヤは、第１コントローラ３４にジャイロセンサユニット１００を装着した状態でも、第１コントローラ３４自体の位置や向きを変えることによって、ゲーム操作を行うことができる。
【００８５】
ハウジング１１０の前面および後面には上述のコネクタ１０６および１０８が、ハウジング１１０の両側面には一対のリリースボタン１１２ａおよび１１２ｂが、そしてハウジング１１０の下面にはロックスイッチ１１４が、それぞれ設けられている。ハウジング１１０の前面下端から下面先端にかけては、第１コントローラ３４にジャイロセンサユニット１００を装着した状態でストラップ５６用の孔４８ｃが露見するように（図８）、略球面状の凹部１１０ａが設けられている。
【００８６】
ハウジング１１０の前面にはまた、コネクタ１０６を挟んで横方向（Ｘ軸方向）に対向する位置に、一対のリリースボタン１１２ａおよび１１２ｂとそれぞれ連繋する一対のフック１１２Ｆａおよび１１２Ｆｂが設けられている。ジャイロセンサユニット１００を第１コントローラ３４に装着するべく、コネクタ１０６をコネクタ４２に接続すると、一対のフック１１２Ｆａおよび１１２Ｆｂはハウジング４４後面の一対の孔４８ａおよび４８ｂ（図２（Ａ））に挿入され、フック１１２Ｆａおよび１１２Ｆｂの爪がハウジング４４の内壁に引っ掛かる。これによって、ジャイロセンサユニット１００は、第１コントローラ３４の後面に固定される。
【００８７】
こうして第１コントローラ３４に装着されたジャイロセンサユニット１００が図８に示される。この状態で一対のリリースボタン１１２ａおよび１１２ｂを押せば、爪の引っ掛かりは解け、ジャイロセンサユニット１００を第１コントローラ３４から取り外せるようになる。
【００８８】
ロックスイッチ１１４は、このようなリリースボタン１１２ａおよび１１２ｂにロックをかけるためのスライドスイッチである。リリースボタン１１２ａおよび１１２ｂは、ロックスイッチ１１４が第１位置（たとえば後ろ寄り）にあるとき押下不能（ロック状態）であり、ロックスイッチ１１４が第２位置（たとえば前寄り）にあるとき押下可能（解除状態）である。ハウジング１１０内には、ロックバネ１１８ａおよび１１８ｂ（図７）が設けられ、リリースボタン１１２ａおよび１１２ｂを押下すると反発するように構成され、押下されていないときは爪が引っ掛かった状態を維持するように構成されている。このため、ジャイロセンサユニット１００を取り外すには、ユーザは、ロックスイッチ１１４を第１位置から第２位置にスライドさせたうえで、リリースボタン１１２ａおよび１１２ｂを押す必要がある。
【００８９】
このように、ジャイロセンサユニット１００は、第１コントローラ３４の後面に装着されるため、ゲーム操作中にジャイロセンサユニット１００に加わる遠心力は専ら、ジャイロセンサユニット１００を第１コントローラ３４に押し付けるように作用する。また、ジャイロセンサユニット１００をフック１１２Ｆａおよび１１２Ｆｂで第１コントローラ３４の後面に固定する一方、フック１１２Ｆａおよび１１２Ｆｂを開放するためリリースボタン１１２ａおよび１１２ｂにはロックスイッチ１１４を設けたため、ゲーム操作中であってもジャイロセンサユニット１００と第１コントローラ３４とがしっかり固定された状態にすることができる。
【００９０】
ハウジング１１０の後面にはまた、コネクタ１０８に装着されるコネクタカバー１１６を収納可能な凹部１１０ｂが、このコネクタ１０８の周囲に形成される。コネクタカバー１１６は、その主面の一方端部に、前後（Ｚ軸方向）に長細い薄手の（すなわち曲折容易な）突起１１６ａを有する。この突起１１６ａの先端部分がハウジング１１０と係合されており、コネクタカバー１１６は、コネクタ１０８から取り外された状態でもハウジング１１０に係留される。
【００９１】
コネクタカバー１１６はまた、その主面の他方端部に、左右（Ｘ軸方向）に長細い厚手の（すなわち曲折困難な）突起１１６ｂを有する。突起１１６ｂの厚み（Ｚ軸方向の高さ）は、第２コントローラ３６のコネクタ４０に設けられたフック１２４（図４）の厚み（Ｙ軸方向の高さ）とほぼ同じである。第１コントローラ３４にジャイロセンサユニット１００を介して第２コントローラ３６が接続された場合、コネクタカバー１１６は、図９に示すように、その主面が水平となって、突起１１６ｂがフック１２４の側面と係合される。コネクタ１０８から取り外されたコネクタカバー１１６をこうしてコネクタ４０と一体化することで、操作性や見た目が改善されるだけでなく、コネクタ４０とジャイロセンサユニット１００とがしっかり固定される。
【００９２】
図７にはジャイロセンサユニット１００の構成の一例が示される。ジャイロセンサユニット１００は、上述したハウジング１１０、コネクタ１０６および１０８、リリースボタン１１２ａおよび１１２ｂ、フック１１２Ｆａおよび１１２Ｆｂ、ロックスイッチ１１４、コネクタカバー１１６ならびにロックバネ１１８ａおよび１１８ｂに加え、ジャイロ基板１２０および支持部材１２２を備える。ジャイロ基板１２０はコネクタ１０６および１０８の各々と信号線で接続され、支持部材１２２はジャイロ基板１２０ならびにコネクタ１０６および１０８を支持する。
ジャイロ基板１２０にはジャイロセンサ１０４が設けられる。ジャイロセンサ１０４は、１軸のジャイロセンサ１０４ａおよび２軸のジャイロセンサ１０４ｂの２チップで構成される。ジャイロセンサ１０４ａはヨー角に関する角速度（Ｙ軸周りの角速度）を検出するためのものであり、ジャイロセンサ１０４ｂはロール角およびピッチ角に関する２つの角速度（Ｚ軸周りの角速度およびＸ軸周りの角速度）を検出するためのものである。ジャイロセンサ１０４ａおよび１０４ｂは、ジャイロ基板１２０の上面１２０ａに水平に並べて設けられる。
【００９３】
なお、ジャイロセンサ１０４ａおよび１０４ｂの配置は、図７に示されたものに限らない。他の実施例では、ジャイロセンサ１０４ａは、ジャイロ基板１２０の上面１２０ａおよび下面１２０ｂの一方に水平に設けられ、ジャイロセンサ１０４ｂは、ジャイロ基板１２０の上面１２０ａおよび下面１２０ｂの他方に水平に、ジャイロ基板１２０を挟んでジャイロセンサ１０４ａと対向するように設けられる。その他の実施例では、ジャイロセンサ１０４ａはジャイロ基板１２０の上面１２０ａおよび下面１２０ｂの一方に垂直に設けられ、ジャイロセンサ１０４ｂはジャイロ基板１２０の上面１２０ａおよび下面１２０ｂの他方に水平に設けられる。
【００９４】
また、ジャイロセンサ１０４は、２チップ構成とは限らず、３個の１軸ジャイロセンサ（３チップ）で構成してもよく、１個の３軸ジャイロセンサ（１チップ）で構成してもよい。いずれの場合も、上述の３つの角速度を適正に検出できるように、各チップの位置や向きが決定される。さらにまた、場合によっては、ジャイロセンサ１０４は、１個の２軸ジャイロセンサで構成しても、２個または１個の１軸ジャイロセンサで構成してもよい。
【００９５】
なお、図２に示した第１コントローラ３４、図３および図４に示した第２コントローラ３６、および図６に示したジャイロセンサユニット１００の形状や、ボタン（スイッチまたはスティック等）の形状、数および設置位置等は単なる一例に過ぎず、他の形状、数および設置位置等に適宜変更され得る。
【００９６】
なお、センサは、好ましい実施例ではジャイロセンサ（角速度センサ）であるが、たとえば加速度センサ、速度センサ、変位センサ、回転角センサなど、他のモーションセンサでもよい。モーションセンサ以外にも、傾斜センサ、イメージセンサ、光センサ、圧力センサ、磁気センサ、温度センサなどがあり、いずれのセンサを追加する場合でも、センサの検出対象を利用した操作が可能となる。いずれのセンサを用いた場合でも、従来操作装置に接続されていた他の装置をそのまま使用しながら、操作装置に当該センサを追加することができる。
【００９７】
また、コントローラ１４の電源は、第１コントローラ３４内に取替可能に収容されるバッテリ（図示せず）によって与えられる。第２コントローラ３６には、コネクタ４０およびケーブル３８を介してこの電源が供給される。第１コントローラ３４にジャイロセンサユニット１００が接続されている場合、ジャイロセンサユニット１００にはコネクタ４２および１０６を介してこの電源が供給される。さらにジャイロセンサユニット１００に第２コントローラ３６が接続されていれば、第１コントローラ３４からジャイロセンサユニット１００に供給された電源の一部は、コネクタ１０８、コネクタ４０およびケーブル３８を介して第２コントローラ３６にも与えられる。
【００９８】
図１０は図１実施例のビデオゲームシステム１０の電気的な構成を示すブロック図である。図示は省略するが、ハウジング１４内の各コンポーネントは、プリント基板に実装される。図２に示すように、ゲーム装置１２には、ＣＰＵ６０が設けられ、ゲームプロセッサとして機能する。また、ＣＰＵ６０には、システムＬＳＩ６２が接続される。このシステムＬＳＩ６２には、外部メインメモリ６６、ＲＯＭ／ＲＴＣ６８、ディスクドライブ７４およびＡＶ  ＩＣ７６が接続される。
【００９９】
外部メインメモリ６６は、ゲームプログラム等のプログラムを記憶したり、各種データを記憶したりして、ＣＰＵ６０のワーク領域やバッファ領域として用いられる。ＲＯＭ／ＲＴＣ６８は、いわゆるブートＲＯＭであり、ゲーム装置１２の起動用のプログラムが組み込まれるとともに、時間をカウントする時計回路が設けられる。ディスクドライブ７４は、光ディスク１８からプログラム，画像データや音声データ等を読み出し、ＣＰＵ６０の制御の下で、後述する内部メインメモリ６２ｅまたは外部メインメモリ６６に書き込む。
【０１００】
システムＬＳＩ６２には、入出力プロセッサ６２ａ、ＧＰＵ(GraphicsProcessor Unit)６２ｂ，ＤＳＰ(Digital Signal Processor)６２ｃ，ＶＲＡＭ６２ｄおよび内部メインメモリ６２ｅが設けられ、図示は省略するが、これらは内部バスによって互いに接続される。入出力プロセッサ（Ｉ／Ｏプロセッサ）６２ａは、データの送受信を実行したり、データのダウンロードを実行したりする。データの送受信やダウンロードについては後述する。
【０１０１】
ＧＰＵ６２ｂは、描画手段の一部を形成し、ＣＰＵ６０からのグラフィクスコマンド(
作画命令)を受け、そのコマンドに従ってゲーム画像データを生成する。ただし、ＣＰＵ
６０は、グラフィクスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラムをＧＰＵ６２ｂに与える。
【０１０２】
図示は省略するが、上述したように、ＧＰＵ６２ｂにはＶＲＡＭ６２ｄが接続される。
ＧＰＵ６２ｂが作画コマンドを実行するにあたって必要なデータ（画像データ：ポリゴンデータやテクスチャデータなどのデータ）は、ＧＰＵ６２ｂがＶＲＡＭ６２ｄにアクセスして取得する。ただし、ＣＰＵ６０は、描画に必要な画像データを、ＧＰＵ６２ｂを介してＶＲＡＭ６２ｄに書き込む。ＧＰＵ６２ｂは、ＶＲＡＭ６２ｄにアクセスして描画のためのゲーム画像データを作成する。
【０１０３】
なお、この実施例では、ＧＰＵ６２ｂがゲーム画像データを生成する場合について説明するが、ゲームアプリケーション以外の任意のアプリケーションを実行する場合には、ＧＰＵ６２ｂは当該任意のアプリケーションについての画像データを生成する。
【０１０４】
また、ＤＳＰ６２ｃは、オーディオプロセッサとして機能し、内部メインメモリ６２ｅや外部メインメモリ６６に記憶されるサウンドデータや音波形（音色）データを用いて、スピーカ２８から出力する音、音声或いは音楽に対応するオーディオデータを生成する。
【０１０５】
上述のように生成されたゲーム画像データおよびオーディオデータは、ＡＶ  ＩＣ７６によって読み出され、ＡＶコネクタ７８を介してモニタ２６およびスピーカ２８に出力される。したがって、ゲーム画面がモニタ２６に表示され、ゲームに必要な音（音楽）がスピーカ２８から出力される。
【０１０６】
また、入出力プロセッサ６２ａには、フラッシュメモリ６４、無線通信モジュール７０および無線コントローラモジュール７２が接続されるとともに、拡張コネクタ８０およびメモリカード用コネクタ８２が接続される。また、無線通信モジュール７０にはアンテナ７０ａが接続され、無線コントローラモジュール７２にはアンテナ７２ａが接続される。
【０１０７】
図示は省略するが、入出力プロセッサ６２ａは、無線通信モジュール７０を介して、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。ただし、ネットワークを介さずに、直接的に他のゲーム装置と通信することもできる。入出力プロセッサ６２ａは、定期的にフラッシュメモリ６４にアクセスし、ネットワークへ送信する必要があるデータ（「送信データ」とする）の有無を検出し、当該送信データが有る場合には、無線通信モジュール７０およびアンテナ７０ａを介してネットワークに送信する。また、入出力プロセッサ６２ａは、他のゲーム装置から送信されるデータ（「受信データ」とする）を、ネットワーク、アンテナ７０ａおよび無線通信モジュール７０を介して受信し、当該受信データをフラッシュメモリ６４に記憶する。ただし、受信データが一定の条件を満たさない場合には、当該受信データはそのまま破棄される。さらに、入出力プロセッサ６２ａは、ダウンロードサーバからダウンロードしたデータ（ダウンロードデータとする）をネットワーク、アンテナ７０ａおよび無線通信モジュール７０を介して受信し、そのダウンロードデータをフラッシュメモリ６４に記憶する。
【０１０８】
また、入出力プロセッサ６２ａは、コントローラ３４から送信される入力データをアンテナ７２ａおよび無線コントローラモジュール７２を介して受信し、内部メインメモリ６２ｅまたは外部メインメモリ６６のバッファ領域に記憶（一時記憶）する。入力データは、ＣＰＵ６０の処理（たとえば、ゲーム処理）によって利用された後、バッファ領域から消去される。
【０１０９】
なお、この実施例では、上述したように、無線コントローラモジュール７２は、Bluetooth規格に従ってコントローラ３４との間で通信を行う。このため、コントローラ１４か
らデータを取得するだけでなく、ゲーム装置１２からコントローラ１４に所定の命令を送信し、コントローラ１４の動作をゲーム装置１２から制御することもできる。
【０１１０】
さらに、入出力プロセッサ６２ａには、拡張コネクタ８０およびメモリカード用コネク
タ８２が接続される。拡張コネクタ８０は、ＵＳＢやＳＣＳＩのようなインタフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、コントローラ３４とは異なる他のコントローラのような周辺機器を接続したりすることができる。また、拡張コネクタ８０に有線ＬＡＮアダプタを接続し、無線通信モジュール７０に代えて当該有線ＬＡＮを利用することもできる。メモリカード用コネクタ８２には、メモリカードのような外部記憶媒体を接続することができる。したがって、たとえば、入出力プロセッサ６２ａは、拡張コネクタ８０やメモリカード用コネクタ８２を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【０１１１】
詳細な説明は省略するが、電源ボタンがオンされると、システムＬＳＩ６２には、ゲーム装置１２の各コンポーネントに図示しないＡＣアダプタを経て電源が供給され、通常の通電状態となるモード（「通常モード」と呼ぶこととする）が設定される。一方、電源ボタンがオフされると、システムＬＳＩ６２には、ゲーム装置１２の一部のコンポーネントのみに電源が供給され、消費電力を必要最低限に抑えるモード（以下、「スタンバイモード」という）が設定される。
【０１１２】
この実施例では、スタンバイモードが設定された場合には、システムＬＳＩ６２は、入出力プロセッサ６２ａ、フラッシュメモリ６４、外部メインメモリ６６、ＲＯＭ／ＲＴＣ６８および無線通信モジュール７０、無線コントローラモジュール７２以外のコンポーネントに対して、電源供給を停止する指示を行う。したがって、この実施例では、スタンバイモードにおいて、ＣＰＵ６０がアプリケーションを実行することはない。
【０１１３】
なお、システムＬＳＩ６２には、スタンバイモードにおいても電源が供給されるが、ＧＰＵ６２ｂ、ＤＳＰ６２ｃおよびＶＲＡＭ６２ｄへのクロックの供給を停止することにより、これらを駆動しないようにして、消費電力を低減するようにしてある。
【０１１４】
また、図示は省略するが、ゲーム装置１２のハウジング１４内部には、ＣＰＵ６０やシステムＬＳＩ６２などのＩＣの熱を外部に排出するためのファンが設けられる。スタンバイモードでは、このファンも停止される。
【０１１５】
ただし、スタンバイモードを利用したくない場合には、スタンバイモードを利用しない設定にしておくことにより、電源ボタンがオフされたときに、すべての回路コンポーネントへの電源供給が完全に停止される。
【０１１６】
また、通常モードとスタンバイモードとの切り替えは、コントローラ３４の電源スイッチ８０ｉのオン／オフの切り替えによって、遠隔操作によって行うことが可能である。当該遠隔操作を行わない場合には、スタンバイモードにおいて無線コントローラモジュール７２ａへの電源供給を行わない設定にしてもよい。
【０１１７】
リセットボタンもまた、システムＬＳＩ６２に接続される。リセットボタンが押されると、システムＬＳＩ６２は、ゲーム装置１２の起動プログラムを再起動する。イジェクトボタンは、ディスクドライブ７４に接続される。イジェクトボタンが押されると、ディスクドライブ７４から光ディスク２２が排出される。
【０１１８】
図１１には、第１コントローラ３４と第２コントローラ３６とがジャイロセンサユニット１００を介して接続されたときのコントローラ１４全体の電気的構成の一例が示される。
【０１１９】
第１コントローラ３４は、その内部に通信部８８を備え、通信部８８には、操作部４６、撮像情報演算部５０、加速度センサ８４およびコネクタ４２が接続される。操作部４６
は、上述の操作ボタンないし操作スイッチ４６ａ‐４６ｉを示す。操作部４６が操作されると、その操作を示すデータが通信部８８に出力される。撮像情報演算部５０からは、マーカ３０ａおよび３０ｂの被写界内における位置座標を示すデータが通信部８８に出力される。
【０１２０】
さらに、上述したように、コントローラ３４には、撮像情報演算部５０が設けられる。この撮像情報演算部５０は、赤外線フィルタ５０ａ、レンズ５０ｂ、撮像素子５０ｃおよび画像処理回路５０ｄによって構成される。赤外線フィルタ５０ａは、コントローラ３４の前方から入射する光から赤外線のみを通過させる。上述したように、モニタ２６の表示画面近傍（周辺）に配置されるマーカ３０ａおよび３０ｂは、モニタ２６の前方に向かって赤外光を出力する赤外ＬＥＤである。したがって、赤外線フィルタ５０ａを設けることによってマーカ３０ａおよび３０ｂの画像をより正確に撮像することができる。レンズ５０ｂは、赤外線フィルタ５０ａを透過した赤外線を集光して撮像素子５０ｃへ出射する。撮像素子５０ｃは、たとえばＣＭＯＳセンサあるいはＣＣＤのような固体撮像素子であり、レンズ５０ｂによって集光された赤外線を撮像する。したがって、撮像素子５０ｃは、赤外線フィルタ５０ａを通過した赤外線だけを撮像して画像データを生成する。以下では、撮像素子５０ｃによって撮像された画像を撮像画像と呼ぶ。撮像素子５０ｃによって生成された画像データは、画像処理回路５０ｄで処理される。画像処理回路５０ｄは、撮像画像内における撮像対象（マーカ３０ａおよび３０ｂ）の位置を算出し、第４所定時間毎に、当該位置を示す各座標値を撮像データ（後述するマーカ座標データ）としてプロセッサ７０に出力する。なお、画像処理回路５０ｄにおける処理については後述する。
【０１２１】
図１２は、コントローラ３４を用いてゲームプレイするときの状態を概説する図解図である。ただし、ゲームプレイのみならず、他のアプリケーションを実行したり、ＤＶＤを再生したりする場合も同様である。図１２に示すように、ビデオゲームシステム１０でコントローラ３４を用いてゲームをプレイする際、プレイヤは、一方の手でコントローラ３４を把持する。厳密に言うと、プレイヤは、コントローラ３４の先端面（撮像情報演算部５０が撮像する光の入射口４４ｂ側）がマーカ３０ａおよび３０ｂの方を向く状態でコントローラ３４を把持する。ただし、図１からも分かるように、マーカ３０ａおよび３０ｂは、モニタ２６の画面の横方向と平行に配置されている。この状態で、プレイヤは、コントローラ３４が指示する画面上の位置を変更したり、コントローラ３４と各マーカ３０ａおよび３０ｂとの距離を変更したりすることによってゲーム操作を行う。
【０１２２】
なお、図１２では分かり難いが、上述したジャイロユニット１００がコントローラ３４に接続される場合も同様である。
【０１２３】
図１３は、マーカ３０ａおよび３０ｂと、コントローラ３４との視野角を説明するための図である。図１３に示すように、マーカ３０ａおよび３０ｂは、それぞれ、視野角θ１の範囲で赤外光を放射する。また、撮像情報演算部５０の撮像素子５０ｃは、コントローラ３４の視線方向を中心とした視野角θ２の範囲で入射する光を受光することができる。たとえば、マーカ３０ａおよび３０ｂの視野角θ１は、共に３４°（半値角）であり、一方、撮像素子５０ｃの視野角θ２は４１°である。プレイヤは、撮像素子５０ｃが２つのマーカ３０ａおよび３０ｂからの赤外光を受光することが可能な位置および向きとなるように、コントローラ３４を把持する。具体的には、撮像素子５０ｃの視野角θ２の中にマーカ３０ａおよび３０ｂの少なくとも一方が存在し、かつ、マーカ３０ａまたは３０ｂの少なくとも一方の視野角θ１の中にコントローラ３４が存在する状態となるように、プレイヤはコントローラ３４を把持する。この状態にあるとき、コントローラ３４は、マーカ３０ａおよび３０ｂの少なくとも一方を検知することができる。プレイヤは、この状態を満たす範囲でコントローラ３４の位置および向きを変化させることによってゲーム操作を行うことができる。
【０１２４】
なお、コントローラ３４の位置および向きがこの範囲外となった場合、コントローラ３４の位置および向きに基づいたゲーム操作を行うことができなくなる。以下では、上記範囲を「操作可能範囲」と呼ぶ。
【０１２５】
操作可能範囲内でコントローラ３４が把持される場合、撮像情報演算部５０によって各マーカ３０ａおよび３０ｂの画像が撮像される。すなわち、撮像素子５０ｃによって得られる撮像画像には、撮像対象である各マーカ３０ａおよび３０ｂの画像（対象画像）が含まれる。図１４は、対象画像を含む撮像画像の一例を示す図である。対象画像を含む撮像画像の画像データを用いて、画像処理回路５０ｄは、各マーカ３０ａおよび３０ｂの撮像画像における位置を表す座標（マーカ座標）を算出する。
【０１２６】
撮像画像の画像データにおいて対象画像は高輝度部分として現れるため、画像処理回路５０ｄは、まず、この高輝度部分を対象画像の候補として検出する。次に、画像処理回路５０ｄは、検出された高輝度部分の大きさに基づいて、その高輝度部分が対象画像であるか否かを判定する。撮像画像には、対象画像である２つのマーカ３０ａおよび３０ｂに対応する画像３０ａ’および３０ｂ’のみならず、窓からの太陽光や部屋の蛍光灯の光によって対象画像以外の画像が含まれていることがある。高輝度部分が対象画像であるか否かの判定処理は、対象画像である画像３０ａ’および３０ｂ’と、それ以外の画像とを区別し、対象画像を正確に検出するために実行される。具体的には、当該判定処理においては、検出された高輝度部分が、予め定められた所定範囲内の大きさであるか否かが判定される。そして、高輝度部分が所定範囲内の大きさである場合には、当該高輝度部分は対象画像を表すと判定される。逆に、高輝度部分が所定範囲内の大きさでない場合には、当該高輝度部分は対象画像以外の画像を表すと判定される。
【０１２７】
さらに、上記の判定処理の結果、対象画像を表すと判定された高輝度部分について、画像処理回路５０ｄは当該高輝度部分の位置を算出する。具体的には、当該高輝度部分の重心位置を算出する。ここでは、当該重心位置の座標をマーカ座標と呼ぶ。また、重心位置は撮像素子５０ｃの解像度よりも詳細なスケールで算出することが可能である。ここでは、撮像素子５０ｃによって撮像された撮像画像の解像度が１２６×９６であるとし、重心位置は１０２４×７６８のスケールで算出されるものとする。つまり、マーカ座標は、（０，０）から（１０２４，７６８）までの整数値で表現される。
【０１２８】
なお、撮像画像における位置は、撮像画像の左上を原点とし、下向きをＹ軸正方向とし、右向きをＸ軸正方向とする座標系（ＸＹ座標系）で表現されるものとする。
【０１２９】
また、対象画像が正しく検出される場合には、判定処理によって２つの高輝度部分が対象画像として判定されるので、２箇所のマーカ座標が算出される。画像処理回路５０ｄは、算出された２箇所のマーカ座標を示すデータを出力する。出力されたマーカ座標のデータ（マーカ座標データ）は、上述したように、プロセッサ７０によって入力データに含まれ、ゲーム装置１２に送信される。
【０１３０】
ゲーム装置１２（ＣＰＵ６０）は、受信した入力データからマーカ座標データを検出すると、このマーカ座標データに基づいて、モニタ２６の画面上におけるコントローラ３４の指示位置（指示座標）と、コントローラ３４からマーカ３０ａおよび３０ｂまでの各距離とを算出することができる。具体的には、２つのマーカ座標の中点の位置から、コントローラ３４の向いている位置すなわち指示位置が算出される。また、撮像画像における対象画像間の距離が、コントローラ３４と、マーカ３０ａおよび３０ｂとの距離に応じて変化するので、２つのマーカ座標間の距離を算出することによって、ゲーム装置１２はコントローラ３４と、マーカ３３０ａおよび３０ｂとの間の距離を把握できる。
【０１３１】
図１１に戻って、加速度センサ８４が検出した加速度を示すデータもまた、通信部８８へ出力される。加速度センサ８４は、たとえば最大２００フレーム／秒程度のサンプリング周期を有する。
【０１３２】
コネクタ４２には、ジャイロセンサユニットのコネクタ１０６が接続される。ジャイロセンサユニット１００は、その内部にマイコン１０２およびジャイロセンサ１０４を含む。ジャイロセンサ１０４は、上述のジャイロセンサ１０４ａおよび１０４ｂを示しており、たとえば加速度センサ８４と同様のサンプリング周期を有する。マイコン１０２は、ジャイロセンサ１０４が検出した角速度を示すデータをコネクタ１０６およびコネクタ４２を介して通信部８８に出力する。
【０１３３】
ジャイロセンサユニット１００のコネクタ１０８には、第２コントローラ３６から延びるケーブル３８のコネクタ４０が接続される。コネクタ４０には、第２コントローラ３６の操作部８８および加速度センサ８６が接続される。操作部８８は、上述のスティック５４ａおよび操作ボタン５４ｂ、５４ｃを示す。操作部８８が操作されると、その操作を示すデータがケーブル３８、コネクタ４０およびコネクタ４２を介してジャイロセンサユニット１００のマイコン１０２に与えられる。マイコン１０２は、このデータをコネクタ１０６、コネクタ４２を介して通信部８８に出力する。また、加速度センサ８６も、加速度センサ８４と同様のサンプリング周期を有しており、これにより検出された加速度を示すデータもまた、マイコン１０２によって通信部８８に出力される。
【０１３４】
なお、上述した通信部８８への各出力は、たとえば１／２００秒周期で実行される。したがって、任意の１／２００秒間に、操作部４６からの操作データと、撮像情報演算部５０のからの位置座標データと、加速度センサ８４からの加速度データと、ジャイロセンサ１０４からの角速度データと、操作部８８からの操作データと、加速度センサ８６からの加速度データとが、１回ずつ通信部８８に出力される。
【０１３５】
図１６には、図１１に示した全体構成のうちジャイロセンサユニット１００の要部構成が示される。上述のコネクタ４２、コネクタ１０６、コネクタ１０８およびコネクタ４０は、それぞれたとえば６ピンのコネクタであり、この６ピンの中に、コネクタ間の接続状態を示す変数“Attach”を制御するためのAttachピンが含まれている。Attachは、コネクタ間が切断されていることを示す“Ｌｏｗ”と、コネクタ間が接続されていることを示す“Ｈｉｇｈ”との間で変化する。以下では特に、コネクタ４２・コネクタ１０６間つまり第１コントローラ３４・ジャイロセンサユニット１００間のAttachを“Attach１”と呼び、コネクタ１０８・コネクタ４０間つまりジャイロセンサユニット１００・第２コントローラ３６間のAttachを“Attach２”と呼ぶ。
【０１３６】
Attach１は、第１コントローラ３４にジャイロセンサユニット１００が装着されていても、アプリケーションがジャイロ非対応型であり、かつジャイロセンサユニット１００に第２コントローラ３６が接続されていない場合には、このジャイロ非対応アプリからジャイロセンサユニット１００が見えなくなるように、ジャイロセンサユニット１００のマイコン１０２によって“Ｌｏｗ”に制御される（スタンバイモード：図１４参照）。スタンバイモードでは、ジャイロセンサ１０４への電源供給は停止され、ジャイロ機能は停止状態となる。マイコン１０２は専ら、Attach２に基づくモード切り替えと、ジャイロ対応アプリからの指示に基づく電源管理とを行う。
【０１３７】
上記６ピンのうち他の２つにはＩ２Ｃバスが割り当てられており、ジャイロセンサユニット１００は、第１コントローラ３４側のＩ２Ｃバスと第２コントローラ３６側のＩ２Ｃバスとを互いに接続／分離するためのバススイッチＳＷをさらに含む。バススイッチＳＷ
は、第２コントローラ３６がジャイロセンサユニット１００を介して第１コントローラ３４に接続された状態で、ジャイロ非対応アプリが実行されるときに、マイコン１０２によりオンされる。以降、第２コントローラ３６からのデータは、マイコン１０２を経由することなく、Ｉ２Ｃバスを通じて通信部８８に出力されるようになる（バイパスモード：図１４参照）。したがって、マイコン１０２は、スタンバイモードと同様、モード切り替えと電源管理とを行えばよく、消費電力が抑制される。また、ジャイロセンサユニット１００を装着したままでも、ジャイロ非対応アプリを実行できる。バススイッチＳＷがオフのときは、バスはマイコン１０２に接続され、第１コントローラ３４に出力するデータは、マイコン１０２によって制御される。
【０１３８】
バススイッチＳＷはまた、スタンバイモードでもオンされる。これによって、ジャイロ対応型のアプリケーションは、上述のようにAttach１が“Ｌｏｗ”に制御されていても、Ｉ２Ｃバスの特別なアドレスを参照することで、第１コントローラ３４にジャイロセンサユニット１００が装着されているかどうかを確認できる。
【０１３９】
なお、ジャイロセンサユニット１００には、上述した“スタンバイ”および“バイパス”に加え、“ジャイロ”および“ジャイロ＆第２コントローラ”の計４モードが準備されている。後の２つのモードでは、バススイッチＳＷはオフされる。
【０１４０】
ジャイロセンサユニット１００のマイコン１０２は、２種類のＡ／Ｄ変換回路１０２ａおよび１０２ｂを含んでおり、ジャイロセンサ１０４から出力される３軸周りの角速度信号は、これらＡ／Ｄ変換回路１０２ａおよび１０２ｂの各々に与えられる。Ａ／Ｄ変換回路１０２ａでは、ジャイロセンサ１０４の検出範囲の全部（たとえば±３６０度／秒）を対象とする高角速度モードのＡ／Ｄ変換処理が実行され、Ａ／Ｄ変換回路１０２ｂでは、ジャイロセンサ１０４の検出範囲の一部（たとえば±９０度／秒）を対象とする低角速度モードのＡ／Ｄ変換処理が実行される。マイコン１０２は、これら２種類のＡ／Ｄ変換結果のいずれか一方を角速度データとして出力する。
【０１４１】
具体的には、Ａ／Ｄ変換回路１０２ａおよび１０２ｂからある時刻に対応する２種類の角速度データが出力されると、マイコン１０２は最初、このうち低角速度モードの角速度データについて、その値Ａが第１閾値Ｔｈ１から第２閾値Ｔｈ２（＞Ｔｈ１）までの範囲内にあるかどうか、すなわち条件“Ｔｈ１≦Ａ≦Ｔｈ２”が満足されるか否かを、軸毎に、つまりヨー、ロールおよびピッチの各々について判定する。次に、これら３つの判定結果に基づいて、低角速度モードおよび高角速度モードのいずれか１つを選択する。たとえば、３つの判定結果それぞれに関して、ＹＥＳであれば低角速度モードを選択し、ＮＯであれば高角速度モードを軸ごとに選択する。そして、軸ごとに選択されたモードに従う角速度データを、選択されたモードを示すモード情報と共にそれぞれ出力する。つまり、角速度に応じてデータの精度を変えることによって、同じデータ量であっても、低速のときにはより精度の高いデータを出力することができる。
【０１４２】
図１６には、ジャイロセンサユニット１００が取り扱うデータのフォーマットが示される。図１６（Ａ）はジャイロセンサユニット１００用データのフォーマットを示し、図１６（Ｂ）は第２コントローラ３６用データのフォーマットを示す。ジャイロセンサユニット１００用のデータは、ヨー角速度データ、ロール角速度データおよびピッチ角速度データと、ヨー角速度モード情報、ロール角速度モード情報およびピッチ角速度モード情報と、第２コネクタ接続情報と、ジャイロ・第２コントローラ識別情報とを含む。
【０１４３】
ただし、図１７に示すように、ｙ軸の回転がヨー角で表わされ、ｘ軸の回転がピッチ角で表わされ、そして、ｚ軸の回転がロール角で表わされるものとする。
【０１４４】
ヨー角速度データ、ロール角速度データおよびピッチ角速度データは、ジャイロセンサ１０４から出力されるヨー角速度信号、ロール角速度信号およびピッチ角速度信号をＡ／Ｄ変換して得られる、たとえば各１４ビットのデータである。ヨー角速度モード情報、ロール角速度モード情報およびピッチ角速度モード情報は、それぞれ対応する角速度データのモードを示す各１ビットの情報であり、高角速度モードに対応する“０”と、低角速度モードに対応する“１”との間で変化する。
【０１４５】
第２コントローラ接続情報は、コネクタ１０６に第２コントローラ３６が接続されているか否かを示す１ビットの情報であり、非接続を示す“０”と、接続を示す“１”との間で変化する。ジャイロ・第２コントローラ識別情報は、当該データがジャイロセンサユニット１００から出力されたデータであるか第２コントローラ３６から出力されたデータであるかを識別する１ビットの情報であり、ジャイロセンサユニット１００からのデータであることを示す“１”と、第２コントローラ３６からのデータであることを示す“０”との間で変化する。
【０１４６】
一方、第２コントローラ３６用のデータは、左右方向（Ｘ軸方向）のスティック操作および前後方向（Ｚ軸方向）のスティック操作をそれぞれ示すＸスティック操作データおよびＹスティック操作データと、Ｘ軸方向の加速度、Ｙ軸方向の加速度およびＺ軸方向の加速度をそれぞれ示すＸ加速度データ、Ｙ加速度データおよびＺ加速度データと、ボタン操作データと、第２コネクタ接続情報と、ジャイロ・第２コントローラ識別情報とを含む。
【０１４７】
ジャイロセンサユニット１００は通信部８８に、図１６（ａ）のフォーマットに従うジャイロ用データと、図１６（Ｂ）のフォーマットに従う第２コントローラ用データとを、それぞれたとえば１／２００秒周期で交互に出力する。したがって、片方のフォーマットに関しては、１／１００秒周期で出力されることになるが、これはゲームの処理等で一般的な処理期間である１／６０秒周期よりも十分短いことから、データを交互に出力してもゲーム処理で両方のデータを１フレームで同時に利用することができる。
【０１４８】
図１１に示す通信部８８は、マイクロコンピュータ（マイコン）９０、メモリ９２、無線モジュール９４およびアンテナ９６を含む。マイコン９０は、処理の際にメモリ９２を記憶領域（作業領域やバッファ領域）として用いながら、無線モジュール９４を制御して、取得したデータをゲーム装置１２に送信したりゲーム装置１２からのデータを受信したりする。
【０１４９】
ジャイロセンサユニット１００から通信部８８に出力されたデータは、マイコン９０を経て一時的にメモリ９２に格納される。第１コントローラ３４内の操作部４６、撮像情報演算部５０および加速度センサ８４から通信部８８に出力されたデータもまた、メモリ９２に一時的に格納される。マイコン９０は、ゲーム装置１２への送信タイミングが到来すると、メモリ９２に格納されているデータをコントローラデータとして無線モジュール９４へ出力する。コントローラデータには、図１６（Ａ）および図１６（Ｂ）に示したジャイロ用データおよび／または第２コントローラ用データに加えて、第１コントローラ用データが含まれる。第１コントローラ用データには、加速度センサ８４の出力に基づくＸ加速度データ、Ｙ加速度データおよびＺ加速度データと、撮像情報演算部５０の出力に基づく位置座標データと、操作部または入力手段４６の出力に基づくボタン操作データ（キーデータ）とが含まれる。
【０１５０】
無線モジュール９４は、Bluetoothのような近距離無線通信技術を用いて、所定周波数
の搬送波をコントローラデータで変調し、その微弱電波信号をアンテナ９６から放射する。つまり、コントローラデータは、無線モジュール９４で微弱電波信号に変調されて第１コントローラ３４から送信される。微弱電波信号はゲーム装置１２側のBluetooth通信ユ
ニット７４で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置１２はコントローラデータを取得することができる。ゲーム装置１２のＣＰＵ６０は、コントローラ１４から取得したコントローラデータに基づいてゲーム処理を行う。なお、第１コントローラ３４とゲーム装置１２との無線通信は、無線ＬＡＮなど他の規格に従って実行されてもよい。
【０１５１】
このゲームシステム１０では、ボタン操作だけでなく、コントローラ１４自体を動かすことによっても、ゲームなどのアプリケーションに対する入力を行うことができる。ゲームをプレイする際には、たとえば図１８に示すように、プレイヤは、その右手で第１コントローラ３４（具体的にはハウジング４４の把持部４４ａ：図２）を持ち、その左手で第２コントローラ３６を持つ。上述のように、第１コントローラ３４には３軸方向の加速度を検出する加速度センサ８４が内蔵され、第２コントローラ３６にも同様の加速度センサ８６が内蔵されている。第１コントローラ３４および第２コントローラ３６がそれぞれプレイヤによって動かされると、加速度センサ８４および加速度センサ８６によって、それぞれのコントローラ自身の動きを示す３軸方向の加速度値が検出される。第１コントローラ３４にジャイロセンサユニット１００が装着されている場合には、第１コントローラ３４自身の動きを示す３軸周りの角速度値がさらに検出される。
【０１５２】
これらの検出値は、先述したコントローラデータの態様でゲーム装置１２に送信される。ゲーム装置１２（図１０）では、コントローラ１４からのコントローラデータは、入出力プロセッサ６２ａによってアンテナ７２ａおよび無線コントローラモジュール７２を介して受信され、受信されたコントローラデータは、内部メインメモリ６２ｅまたは外部メインメモリ６６のバッファ領域に書き込まれる。ＣＰＵ４４は、内部メインメモリ６２ｅまたは外部メインメモリ６６のバッファ領域に格納されたコントローラデータを読み出し、このコントローラデータから検出値つまりコントローラ１４によって検出された加速度および／または角速度の値を復元する。
【０１５３】
なお、角速度データには高角速度および低角速度の２つのモードがあるため、これら２つのモードにそれぞれ対応する２種類の角速度復元アルゴリズムが準備される。角速度データから角速度の値を復元するにあたっては、当該角速度データのモードに対応する角速度復元アルゴリズムが、角速度モード情報に基づいて選択される。
【０１５４】
ＣＰＵ６０はまた、このような復元処理と並行して、復元された加速度からコントローラ１４の速度を計算する処理を実行してもよい。さらに並行して、計算された速度からコントローラ１４の移動距離ないし位置を求めることもできる。一方、復元された角速度からは、コントローラ１４の回転角が求まる。なお、加速度を積算して速度を求めたり、角速度を積算して回転角を求めたりする際の初期値（積分定数）は、たとえば、撮像情報演算部５０のからの位置座標データに基づいて計算できる。位置座標データはまた、積算によって蓄積されていく誤差の修正にも用いることができる。
【０１５５】
ゲーム処理は、こうして求められた加速度、速度、移動距離、角速度および回転角などの変数に基づいて実行される。したがって、上記の処理は全てを行わなくともよく、ゲーム処理に必要な変数を適宜算出すればよい。なお、角速度や回転角も、原理的には加速度から計算し得るが、そのためには、ゲームプログラムに複雑なルーチンが必要で、ＣＰＵ６０にも重い処理負荷がかかる。ジャイロセンサユニット１００を利用することで、プログラム開発が容易になり、ＣＰＵ６０の処理負荷も軽減される。
【０１５６】
ところで、ゲームには、第１コントローラ３４しか利用しない１コントローラ用ゲームと、第１コントローラ３４および第２コントローラ３６を利用する２コントローラ用ゲームとがあり、そして各ゲームは、ジャイロ対応およびジャイロ非対応のいずれかに分類さ
れる。メインコントローラである第１コントローラ３４は、どのゲームをプレイする場合にも必要である。また、拡張コントローラである第２コントローラ３６は、２コントローラ用ゲームをプレイするときジャイロセンサユニット１００を介して、または直に第１コントローラ３４に接続され、１コントローラゲームをプレイするときには通常取り外される。
【０１５７】
一方、拡張センサないし拡張コントローラであるジャイロセンサユニット１００は、ジャイロ非対応ゲームをプレイする場合には不要であるが、わざわざ取り外さなくてもよい。このため、ジャイロセンサユニット１００は通常、第１コントローラ３４に装着したままにされ、第１コントローラ３４と一体で取り扱われる。第２コントローラ３６は、コネクタ４０の接続先がコネクタ４２からコネクタ１０８に変わる点を除けば、ジャイロセンサユニット１００が介在しない場合と同様に着脱される。
【０１５８】
図１９には、ジャイロセンサユニット１００のマイコン１０２による制御がモード毎に記載したテーブルが示される。ジャイロセンサユニット１００に準備されているモードは、先述した“スタンバイ”、“バイパス”、“ジャイロ”および“ジャイロ＆第２コントローラ”の４種類であり、マイコン１０２の制御対象は、“ジャイロ機能”、“ジャイロ電源”、“バススイッチ”、“拡張コネクタ”、“Attach１”および“Ｉ２Ｃアドレス”の６項目に及ぶ。
【０１５９】
ジャイロ機能は、スタンバイおよびバイパスの各モードでは停止状態（No Active）に
置かれる一方、ジャイロおよびジャイロ＆第２コントローラの各モードでは起動状態（Active）に置かれる。ジャイロ電源つまりジャイロセンサ１０４への電源供給は、スタンバイおよびバイパスの各モードで停止（ＯＦＦ）され、ジャイロおよびジャイロ＆第２コントローラの各モードではていし停止（ＯＮ）される。バススイッチＳＷは、スタンバイおよびバイパスの各モードで接続（Connect）され、ジャイロおよびジャイロ＆第２コント
ローラの各モードでは切断（Disconnect）される。
【０１６０】
拡張コネクタつまりコネクタ１０８は、バイパスおよびジャイロ＆第２コントローラの各モードで起動状態に置かれ、スタンバイおよびジャイロの各モードでは停止状態に置かれる。Ａｔｔａｃｈ１は、スタンバイモードで非接続状態を示す“Ｌｏｗ”に制御され、バイパス、ジャイロおよびジャイロ＆第２コントローラの各モードでは接続状態を示す“Ｈｉｇｈ”に制御される。Ｉ２Ｃアドレスに関しては、スタンバイおよびバイパスの各モードに限って、特別なアドレスが注目される。
【０１６１】
モード間の切り換えは、図２０に示す要領で行われる。図２０（Ａ）にはアプリケーションがジャイロ対応である場合の切り換え処理が、図２０（Ｂ）にはアプリケーションがジャイロ非対応である場合の切り換え処理が、それぞれ示される。図２０（Ａ）および図２０（Ｂ）に共通して、すなわちジャイロ対応アプリかジャイロ非対応アプリかによらず、ジャイロセンサユニット１００は、ジャイロセンサユニット１００自身が第１コントローラ３４に接続されるのに応答して起動し、初期モードであるスタンバイモードに入る。ここで第２コントローラ３６が接続されると、スタンバイモードからバイパスモードに移行し、その後に第２コントローラ３６が取り外されると、バイパスモードからスタンバイモードに復帰する。
【０１６２】
ここで、ジャイロ対応アプリは、必要に応じて角速度データを取得するべく、ジャイロセンサユニット１００に対して呼び出しおよびリセットをかける。上述のように、本実施例では、通信によってゲーム機からコントローラを制御することが可能であるので、アプリケーションによってジャイロセンサユニット１００を制御することが可能である。このため、図１９（Ａ）に示すように、ジャイロセンサユニット１００は、スタンバイモード
でアプリケーションから呼び出しを受けるとジャイロモードに移行し、ジャイロモードでアプリケーションからリセットを受けるとスタンバイモードに復帰する。ジャイロセンサユニット１００はまた、ジャイロモードで第２コントローラ３６が接続されるとジャイロ＆第２コントローラモードに移行し、ジャイロ＆第２コントローラモードで第２コントローラ３６が取り外されるとジャイロモードに復帰する。ジャイロセンサユニット１００はさらにまた、ジャイロ＆第２コントローラモードでアプリケーションからリセットを受けるとバイパスモードに移行し、バイパスモードでアプリケーションから呼び出しを受けるとジャイロ＆第２コントローラモードに復帰する。
【０１６３】
一方、ジャイロ非対応アプリは、ジャイロセンサユニット１００に対して呼び出しやリセットといった働きかけを行う機能がない。このため、ジャイロ非対応アプリを実行する際には、図２０（Ｂ）に示すように、ジャイロセンサユニット１００のモードは、スタンバイモードおよびバイパスモードの間で切り換わるに止まる。
【０１６４】
ジャイロセンサユニット１００のこのようなモード切り替えは、マイコン１０２が、図１９に示したテーブルを参照して、実現するが、ここではこれ以上の詳細な説明は省略する。
【０１６５】
このようなゲームシステム１０を用いた仮想ゲームの一例を、図面を参照しながら説明することにする。まず、ゲームの概要について説明をする。この実施例は、上述のジャイロ対応アプリに該当し、したがって、ジャイロセンサユニット１００をリモコン３４に装着し、さらにヌンチャク３６も使用する。実施例のゲームは、弓のような射撃装置（第２のオブジェクト）によって矢のような移動オブジェクト（第１のオブジェクト）をゲーム空間内を移動させ、的のような固定オブジェクトに命中したかどうか、どの辺に当たるかなどによって点数を競うものである。たとえばユーザは、図２９のような体勢で、リモコン３４を弓に見立て、ヌンチャク３６を弓に番えた矢に見立てて操作を行うことができる。すなわち、リモコン３４に装着されたジャイロセンサユニット１００によってリモコン３４の姿勢を算出できるので、ゲームにおいて弓を向ける方向の制御ができ、さらにヌンチャク３６の加速度センサによって弓を引くような動作を検出することができる。
【０１６６】
図２１は上述した仮想ゲームのゲーム画面１３０の一例を示す図解図である。この図２１に示すゲーム画面１３０では、的（固定オブジェクト）１３２が表示され、弓オブジェクト１３４を用いて、プレイヤオブジェクト１３６が、矢オブジェクト１４２（図２２）でその的オブジェクト１３２を射撃する。ただし、この図２１の場面は、プレイヤがたとえばＡボタン４６ｄ（図２）を操作する前の段階、つまりプレイヤオブジェクト１３６によって矢を弓に番える前の段階を図解したものである。
【０１６７】
ゲーム画面１３０の左上にはミスした回数を表示するための表示領域１３８が形成され、右上には現在までの得点を表示するための表示領域１４０が形成される。
【０１６８】
この実施例では、プレイヤが図２９に示すようにリモコン３４を立てて構えた状態でさらにコントローラ３４の所定のボタン（たとえば、Ａボタン４６ｄまたはＢボタン４６ｈ）を押す（オンする）と、図２１の画面から、図２２に示すように仮想カメラが矢に近づいてプレイヤオブジェクトから見たような視点に切り替わり、弓オブジェクト１３４に矢（移動）オブジェクト１４２（図２２）を番える動作をさせる。なお、プレイヤオブジェクト１３６の画像には腕１３６ａが含まれる。
【０１６９】
このように、Ａボタン４６ｄまたはＢボタン４６ｈの操作に応じて画面（視点）を切り替えてから、発射操作に移行させるようにしたのは、ジャイロユニット１００が接続されたコントローラ３４を所持するゲームプレイヤを、射撃操作開始前にモニタ２６（図１)
に正対させるためである。ジャイロセンサ１０４（図１１，図１２）はそれが設けられたジャイロセンサユニット１００すなわち第１コントローラまたはリモコン３４の姿勢の変化を検出できるだけであり、リモコン３４の絶対的な姿勢を検出できる訳ではない。換言すれば、プレイヤがモニタ２６に正対していない状態でコントローラ３４の姿勢を変えるように操作しても、上で説明したように、その姿勢変化のデータがゲーム装置１２すなわちＣＰＵ６０（図１０)に入力され、ＣＰＵ６０による適正なゲーム処理が実行され得る
。つまり、ゲームプレイヤがモニタ２６に向かっていない状態でもゲーム空間内のオブジェクトを操作できることになり、それは不自然なので、プレイヤがモニタに正対してから開始できるようにして、それによって移動オブジェクト１４２を発射するときの実空間におけるコントローラ３４の位置および向き（姿勢）が所望の位置および所望の姿勢になるように誘導するためである。すなわち、プレイヤが図２９のようにコントローラ３４を立てて持ち、かつモニタ２６に正対した姿勢でゲームを始めるのが望ましい。逆に、複数のプレイヤでプレイする場合等には、必要に応じて正対していない状態でも同様にゲームをプレイすることはできる。
【０１７０】
ボタン操作により、図２２ようにプレイヤオブジェクト１３６が矢オブジェクト１４２を弓オブジェクト１３４にセットする（番える）。その状態で、プレイヤはコントローラ３４を立てたまま動かすことによって矢オブジェクトの移動方向（発射方向）を調整する。
【０１７１】
図２２のゲーム画面１３０では、図２１ではっきりと表示されていたプレイヤオブジェクト１３６がごく薄く(半透明で)表示され、的オブジェクト１３２と矢オブジェクト１４２だけがはっきりと視認できる。その理由は、もしプレイヤオブジェクト１３６が普通に表示されてしまうと、的オブジェクト１３２や矢オブジェクト１４２がプレイヤオブジェクト１３６の陰に隠れてしまい、矢オブジェクト１４２の移動方向（狙い)をうまく設定
できないからである。
【０１７２】
図２２の状態で矢オブジェクト１４２の移動方向を調整または設定するのであるが、先に説明した背景技術では、これを十字キーの操作で行っていたので、時間がかかっていた。これに対して、この実施例では、コントローラ３４に付属のジャイロセンサ１０４（図１１，１２)で検出したコントローラ３４の位置や姿勢の変化で制御するようにしている
。つまり、コントローラ３４をゲーム画面１３０に表示された的オブジェクト１３２の方向へ向けるだけで、矢オブジェクト１４２の移動予定方向（移動方向）を決定できるので、その移動予定方向の設定がすばやくできるのである。また、実際に弓を持って狙いを定めているかのような、直感的な操作を行うことができる。
【０１７３】
そして、ユーザの所定の操作に基づいて、番えた矢を引く操作が行われる。たとえば、コントローラ３４に連結されているヌンチャク３６を、それに設けたＣボタン５４ｂとＺボタン５４ｃ（図３）とを同時に押しながら(オンした状態で)、一定以上の加速度でプレイヤに近づく方向（モニタ２６から遠ざかる方向）へ引くことによって、矢オブジェクト１４２を引くように、プレイヤオブジェクト１３６を操作することができる。矢を引いた状態では図２３に示すように、矢が画面手前に表示される。また、このとき、矢の発射方向を図２３のように矢印オブジェクト１４４で表示するようにして狙えるようにしてもよい。図２３の矢を引いた状態においても、図２２の状態と同様に、引き続きコントローラ３４の姿勢を変えることで弓の向きを変えることができる。すなわち、弓を引いている間も矢の発射方向を調整することができる。
【０１７４】
図２２すなわち図２３で矢オブジェクト１４２の移動方向を決定した後、ヌンチャク３６のＣボタン５４ｂとＺボタン５４ｃとを同時に離す（オフする）ことによって、矢オブジェクト１４２が弓オブジェクト１３４（図２１）から放れて決定された移動方向へ向か
って所定の初速度で飛び始める。その後は物理演算等によって放物線軌道を描きながら飛行し、プレイヤの狙いが正確であった場合には的オブジェクト１３２へ向かって飛行する。その状態を示すアニメーションがゲーム画面１３０に図２４に示すように表示される。ここで参照番号１４２ａは矢オブジェクト１４２のアニメーション画像である。
【０１７５】
次に、上記のゲームを実施するためのゲーム処理について詳細に説明する。図２５は図２に示した内部メインメモリ６２ｅまたは外部メインメモリ６６のメモリマップを示す図解図である。図２５に示すように、メインメモリ（６２ｅ，４６）は、プログラム記憶領域１５０およびデータ記憶領域１５２を含む。なお、データ記憶領域１５２の具体的な内容については、図２６に示す。
【０１７６】
プログラム記憶領域１５０には、ゲームプログラムが記憶され、ゲームプログラムは、ゲームメイン処理プログラム１５０ａ、画像生成プログラム１５０ｂ、画像表示プログラム１５０ｃ、角速度検出プログラム１５０ｄ、加速度検出プログラム１５０ｅ、構え処理プログラム１５０ｆ、矢オブジェクト姿勢決定プログラム１５０ｇ、矢オブジェクト飛行計算プログラム１５０ｈなどによって構成される。
【０１７７】
ゲームメイン処理プログラム１５０ａは、この実施例の仮想ゲームのメインルーチンを処理するためのプログラムである。画像生成プログラム１５０ｂは、後述する画像データ１５２ａ（図２６参照）を用いて、モニタ２６にゲーム画面１３０を表示するためのゲーム画像を生成するプログラムである。画像表示プログラム１５０ｃは、画像生成プログラム１５０ｂに従って生成されたゲーム画像をゲーム画面１３０としてモニタ２６に表示するためのプログラムである。
【０１７８】
角速度検出プログラム１５０ｄは、ジャイロセンサ１０４で検出された角速度についての角速度データを検出するためのプログラムである。上述したように、角速度データは、コントローラ３４からの入力データに含まれているため、ＣＰＵ６０は、角速度検出プログラム１５０ｄに従って、コントローラ３４からの入力データに含まれる角速度データを検出する。
【０１７９】
加速度検出プログラム１５０ｅは、加速度センサ８４および８６（図１１）で検出された加速度についての加速度データを検出するためのプログラムである。上述したように、加速度データは、コントローラ３４からの入力データに含まれているため、ＣＰＵ６０は、加速度検出プログラム１５０ｅに従って、コントローラ３４からの入力データに含まれる１つまたは２つの加速度データを検出するのである。
【０１８０】
構え処理プログラム１５０ｆは、ゲーム空間内における弓オブジェクトおよび矢オブジェクト１４４の姿勢を決定し、それに伴い移動オブジェクトすなわち矢オブジェクト１４４の発射後の移動方向を決定するためのプログラムであり、矢オブジェクトを弓オブジェクトへ番えてから発射されるまでこの構え処理が実行される。具体的には、図２８に示される。
【０１８１】
矢オブジェクト飛行計算プログラム１５０ｈは、矢オブジェクト１４４が弓オブジェクト１４２から放たれた後の、飛行軌跡を、物理学の原理（放物線）に従って、計算するためのプログラムである。
【０１８２】
なお、図示は省略するが、ゲームプログラムには、音出力プログラムやバックアッププログラムなども含まれる。音出力プログラムは、音（音楽）データを用いて、音楽（ＢＧＭ）、オブジェクトの音声ないし擬声音、効果音のようなゲームに必要な音を出力するためのプログラムである。バックアッププログラムは、ゲームデータ（途中データ，結果デ
ータ）をメモリカードにセーブ（保存）するためのプログラムである。
【０１８３】
また、図２６に示すように、データ記憶領域１５２には、画像データ１５２ａ、角速度データ１５２ｂ、加速度データ１５２ｃ、および移動オブジェクトデータ１５２ｄなどの各種データが一時的に記憶される。また、図示しないが、データ記憶領域１５２には、タイマやレジスタさらには必要なフラグ領域が適宜設けられる。
【０１８４】
画像データ１５２ａは、ゲーム画像を生成するための画像データであり、ポリゴンデータやテクスチャデータなどを含む。特に、実施例では、後述のゲーム画面１３０に表示される、固定オブジェクト（的オブジェクト）１３２、弓オブジェクト１３４、プレイヤキャラクタ１３６、矢オブジェクト１４２、さらにはアニメーション画像データを含む。角速度データ１５２ｂは、角速度検出プログラム１５０ｄに従って検出された角速度データである。ただし、この実施例では、１フレーム毎に、３ないし４個の角速度データが検出される。加速度データ１５２ｃは、加速度検出プログラム１５０ｅに従って検出されたリモコン３４およびヌンチャク３６の加速度データである。角速度や加速度のデータは、フレーム毎に姿勢を算出するために用いられるが、補正等の目的のために複数フレーム期間分の個数（たとえば２０個）記憶しておくようにしてもよい。
【０１８５】
移動オブジェクトデータ１５２ｄは、移動オブジェクトすなわち矢オブジェクト１４２についてのデータであり、シミュレーション（飛行軌跡）位置データ１５４、現在位置データ１５６および物理量データ１５８を含む。シミュレーション位置データ１５４は、矢オブジェクト１４２についての１フレーム毎の３次元座標のデータである。また、現在位置データ１５６は、矢オブジェクト１４２の現フレームについての３次元座標のデータである。物理量データ１５８は、現フレームにおいて移動オブジェクト１４２に作用する、重力、空気抵抗力、回転による揚力および平面効果による揚力などの物理量についてのデータである。
【０１８６】
姿勢データ１５２ｅは、構え処理プログラム１５０ｆにおいて算出されたコントローラ３４の姿勢や、それに基づいて算出される弓矢の姿勢等を記憶するデータである。
【０１８７】
なお、図示は省略するが、データ記憶領域１５２には、音データやスコアデータのような他のデータも記憶され、ゲームに必要な、他のタイマ（カウンタ）や他のフラグなども設けられる。
【０１８８】
図１０に示したＣＰＵ６０が実行する本実施例の処理について、図２７および図２８を参照して説明する。図２７に示すように、ステップＳ１において、リモコンないし第１コントローラ３４のＡボタン４６ｄまたはＢボタン４６ｈがゲームプレイヤによってオンされたことが検出されたとき、ＣＰＵ６０は、弓を射るためのゲーム処理を開始する。操作データは先に説明したように、第１コントローラ３４の無線部８８（図１１）からゲーム装置１２へ送信されるので、ＣＰＵ６０は、そのときのデータ記憶領域１５２に一時記憶されている操作データを参照することによって、Ａボタン４６ｄまたはＢボタン４６ｈがオンされたかどうか判断することができる。
【０１８９】
ステップＳ１で“ＹＥＳ”を判断したとき、ＣＰＵ６０は次のステップＳ３において、そのときのリモコン３４すなわちジャイロセンサユニット１００の初期姿勢をデータ記憶領域１５２に記録する。ただし、その姿勢は、３×３の回転行列Ｇであらわされ、リモコン３４が基準となる状態からどれだけ回転をしたかを表す行列の形式で記憶される。したがって、この姿勢Ｇは、モニタ２６に正対させ、かつリモコン３４を水平に配置した状態、つまり、真っ直ぐの状態からリモコン３４すなわちジャイロセンサユニット１００をどのように回転させたかを表すものである。真っ直ぐの状態は事前に算出されている値で、
これはリモコン３４の静止時等、重力以外の加速度が加えられていないときに加速度データから絶対的な値を決定することができるものである。ただし、ヨー方向の姿勢は重力からは算出できないため、ヨー方向については所定のタイミングでの姿勢を真っ直ぐの姿勢として定義することにする。したがって、たとえば、ゲーム前の初期設定等において、リモコン３４をモニタへ向けたまま静止させる等の操作を行えば、以降リモコン３４の絶対的な姿勢を算出し続けることができる。なお、姿勢Ｇは、リモコン３４の絶対的な姿勢（と想定される姿勢）を算出し続けるため、本実施例のゲームを行うとき以外にも常に更新されるが、別の実施形態においては、弓を射る毎や、もしくは所定のタイミングのたびに初期設定を行うようにしてもよい。そして、本実施例のゲーム処理において、Ａボタンがオンされたときのリモコン３４の姿勢Ｇが、初期姿勢Ｇ０として記憶される。
【０１９０】
続くステップＳ５において、ＣＰＵ６０は、弓オブジェクト１４２（図２２）の姿勢を初期化する。つまり、Ａボタンがオンされたタイミングでの姿勢Ｇ０に対応する姿勢が弓を的オブジェクト１３２に真っ直ぐ向けた状態に対応するように設定する。この状態が図２２に示す状態である。
【０１９１】
図２２に示す状態すなわち弓オブジェクト１４２の姿勢を初期化した後、次のステップＳ７に示す構え処理を実行する。この構え処理は具体的には、図２８の手順で実行される。
【０１９２】
図２８のステップＳ３１−Ｓ３５において、ＣＰＵ６０は、ジャイロセンサ１０４で検出した角速度によって、リモコン３４の姿勢Ｇを回転させて、更新する。これは、現在の姿勢Ｇに対して角速度によって示される単位時間あたりの回転を加えたものになる。そして算出された姿勢Ｇに対してさらに、ステップＳ３３に示すような加速度を使った補正を行う。具体的には、姿勢すなわち回転行列Ｇが示す鉛直下向き、つまりリモコン３４の姿勢から想定される重力方向ｖが、リモコン３４の加速度センサ８４（図１１）によって検出される加速度ベクトルａの向きに近づく回転Ｍを計算する。この回転Ｍの回転量は、一例として、加速度ベクトルａの大きさが重力加速度の大きさに近いほど、重力方向ｖが加速度ベクトルａに近くなるように設定している。つまり、重力加速度からは絶対的な姿勢が算出できると考えられるため、姿勢Ｇが示す鉛直下方向ｖを、重力加速度と想定されるａに近づけることで、ジャイロの誤差による影響を排することができるものである。その上で、加速度の大きさが重力加速度の大きさに近いほど、重力加速度以外の加速度の影響が少ないと考えられるため、近づける度合いを高めている。そして、次のステップＳ３５において、回転行列Ｇに回転Ｍを加えて、Ｇを更新する。つまり、Ｇに上記補正を加えるように回転させる。
【０１９３】
このように、ステップＳ３３において、リモコン３４の姿勢を加速度によって毎フレーム補正するのは、ジャイロセンサ特有の累積誤差を可及的除去するためである。
【０１９４】
なお、ステップＳ３１からステップＳ３５までの処理は、図２７のゲーム処理中以外にも常に行われていて、絶対的なリモコン３４の姿勢を算出し続けるものである。ただし、ジャイロの誤差を考慮しなければこの補正ステップＳ３３およびステップＳ３５を用いず、ステップＳ３１のみによって、角速度だけでリモコン３４の姿勢Ｇを決定するようにしてもよい。
【０１９５】
次のステップＳ３７−Ｓ３９において、ＣＰＵ６０は、リモコン３４の姿勢に応じて弓オブジェクト１４２の姿勢を更新する。まず、ステップＳ３７で、ステップＳ３５で更新した回転行列Ｇに従って、弓オブジェクト１４２の姿勢Ｂを計算する。つまり、ジャイロセンサで検出したリモコン３４の姿勢をゲーム画面１３０上の弓オブジェクト１４２の姿勢に反映させる。具体的には、リモコン３４の回転行列（姿勢）Ｇを弓オブジェクト１４
２の姿勢へ変換するための座標変換を実行する。この弓オブジェクト１４２の姿勢Ｂもまた、たとえば３×３の回転行列で表現される。具体的には、弓の操作は図２９に示すようにリモコン３４を立てて行うことを前提としているので、リモコンを９０度手前に立てた状態で弓オブジェクトが真っ直ぐの状態となるような変換を加える。矢オブジェクト１４４の姿勢は弓オブジェクト１４２の姿勢に対応して決定される。
【０１９６】
続くステップＳ３９において、ＣＰＵ６０は、Ａボタン４６ｄまたはＢボタン４６ｈをゲームプレイヤが押した時点での基本姿勢Ｇ０の分だけ弓オブジェクト１４２すなわち矢オブジェクト１４４を逆回転させるように、姿勢Ｂに、姿勢Ｇ０の逆の回転を加えることによって、姿勢Ｂを計算する。すなわち、ボタンをオンしたタイミングにおいて、ユーザが厳密にリモコン３４を真っ直ぐに立てているわけではないので、ボタンをオンしたタイミングでの姿勢において弓オブジェクトが真っ直ぐになるように、姿勢Ｇ０の逆の回転を加えることによって、ステップＳ３７で変換された姿勢Ｂがボタンがオンされたときからの回転に対応する姿勢に変換されるのである。
【０１９７】
その後、ステップＳ４１において、ＣＰＵ６０は、プレイヤキャラクタ１３６の腕１３６ａ（図２２）を半径とする球を想定または計算し、その球の表面上の、姿勢Ｂに対応する位置に弓矢オブジェクト１４２および１４４を移動する。すなわち、球の中心から当該位置への向きが、弓を持った腕の向きになるような球面上の位置である。そして、ステップＳ４３において、その位置に、上記姿勢Ｂに応じた姿勢で、弓矢オブジェクトを描画する。その状態が図２３に示される。そして、図２７のメイン処理にリターンする。
【０１９８】
このように、この実施例のゲーム装置では、リモコン３４すなわちジャイロセンサユニット１００の姿勢Ｇの変化に対応して弓矢オブジェクトの姿勢Ｂが変化するようにしているので、ゲームプレイヤはリモコン（ジャイロセンサ）の姿勢を実空間内で変化させるだけで、極めて容易に、かつ短時間に矢オブジェクト１４４の移動方向を設定ないし決定することができる（狙いを定めることができる）。そして、本当の弓を構えて狙っているかのような直感的な操作を実現することができる。
【０１９９】
なお、上述の構え処理においては、各軸回りの回転に関して、角速度データに基づいて弓オブジェクト１４２すなわち矢オブジェクト１４４の姿勢を設定した。そして当該姿勢の決定のために加速度データによる補正を行った。しかしながら、弓オブジェクト１４２を上下に動かす場合、つまり、ピッチ角を制御する場合には加速度センサからの加速度データを用い、弓オブジェクト１４２を左右に動かすとき（ロール角）やひねるとき（ヨー角）だけジャイロセンサ１０４からの角速度データを用いるようにしてもよい。そのようにすれば、初期姿勢Ｇ０に関わらず、ピッチ角だけは実際の姿勢と同じに制御することができる。本実施例においてはボタンをオンしたときの姿勢、特にヨー角に弓の初期姿勢を対応付けるため、プレイヤの立ち位置や、ゲームをプレイする場所の問題でモニタに正対できない場合にもプレイ可能であるが、ピッチ角だけは加速度によって絶対的な姿勢に対応付けるようにすれば、人間が実際に弓を射る姿勢でゲームをする、という前提を確保することができる。
【０２００】
図２７に戻って、構え処理をステップＳ７で実行した後、ステップＳ９においてＣＰＵ６０は、Ａボタン４６ｄまたはＢボタン４６ｈをゲームプレイヤがオフしたかどうかをそのときの操作データを監視することによって、判断する。“ＹＥＳ”なら、プレイヤは矢オブジェクト１４４の移動方向設定をやり直す意思表示と推測し、そのまま、先のステップＳ１の判断を待つ。
【０２０１】
ステップＳ９で“ＮＯ”なら、射撃操作を継続することを意味し、その場合には、ＣＰＵ６０は、続くステップＳ１１で、矢を引く動作が行われたか判断する。具体的には、ヌ
ンチャク３６が、それのＣボタン５４ｂおよびＺボタン５４ｃを両方とも押しながら、モニタ２６から離れる方向すなわちプレイヤ自身の方向へ引かれたかどうか、判断する。引かれたかどうかの判定方法としては、加速度データから、Ｙ軸を基準にしたヌンチャク３６の姿勢を求める。その姿勢の「−Ｚ方向の単位ベクトル」と「ヌンチャク３６の現ステップ（タイミング）の加速度と前ステップの加速度との差分」との内積が一定の値を超えたかどうか判断する。その内積が一定値を超えていれば、ＣＰＵ６０は、ヌンチャク３６が−Ｚ方向へ引かれたと判断する。ここで、加速度データを所定期間にわたり記憶しておくようにしい、ヌンチャク３６の加速度センサ８６で検出した加速度に所定のダンパ係数（ローパスフィルタ)を掛け、その加速度の変化を緩和してノイズを軽減させたものを判
定に用いてもよい。ただし、このステップＳ１１の具体的な判断手法は、この方法に限定されるものではない。
【０２０２】
このステップＳ１１ではつまり、第２コントローラ３６をたとえば手前側に一定以上の速さで引いたとき、移動指示の前提が確立したと判断している。実施例のような弓矢を使う射撃ゲームであれば、第２コントローラすなわちヌンチャク３６を引くことによって弓を引く動作をさせることができ、現実の弓操作と同様に、弓に対して直観的な操作で矢を発射することができる。
【０２０３】
このようにして、ステップＳ１１でヌンチャク３６が所定方向に引かれたと判断したとき、ＣＰＵ６０は、図２３のように、プレイヤキャラクタ１３６が弓オブジェクト１４２を引いた状態をゲーム画面１３０に表示する。
【０２０４】
その後、ステップＳ１３においても、先のステップＳ７と同様にして、構え処理を実行する。したがって、矢を引いた後でも発射方向を制御可能である。
【０２０５】
ステップＳ１３で構え処理を実行した後、ステップＳ１５においてＣＰＵ６０は、Ａボタン４６ｄまたはＢボタン４６ｈをゲームプレイヤがオフしたかどうかを判断する。“ＹＥＳ”なら、プレイヤは矢オブジェクト１４４の移動方向設定をやり直す意思表示と推測し、そのまま、先のステップＳ１の判断を待つ。
【０２０６】
“ＮＯ”なら、次のステップＳ１５において、ＣＰＵ６０は、ヌンチャク３６のＣボタン５４ｂおよびＺボタン５４ｃが両方ともオフされたかどうか判断する。この実施例では、Ｃボタン５４ｂおよびＺボタン５４ｃを同時に押しながらヌンチャク３６を引いたとき、プレイヤが弓を引いたと判断し、その後、ヌンチャク３６のＣボタン５４ｂおよびＺボタン５４ｃが同時にオフされたとき、矢オブジェクト１４４を発射させるように設計している。したがって、このステップＳ１７において“ＮＯ”が判断されたときには、ステップＳ１３およびＳ１５を繰り返し実行する。ヌンチャク３６を引いた状態で、Ｃボタン５４ｂおよびＺボタン５４ｃを離すことで弓を発射するので、発射の仕方も実際の弓矢を射る方法に近い直感的なものとなる。
【０２０７】
ステップＳ１７において“ＹＥＳ”を判断したとき、ＣＰＵ６０は、矢オブジェクト１４４を弓オブジェクト１４２から発射させる。このとき、ステップＳ１３の構え処理で決定された矢オブジェクト１４４の位置および姿勢（矢が向いている方向）に、所定の初速度で発射されたものとし、飛行軌跡計算プログラムに従って、矢オブジェクトの飛行軌跡を、データ記憶領域１５２に記憶している物理量を考慮して、計算する。
【０２０８】
そして、ステップＳ２１において、ＣＰＵ６０は、図２４のゲーム画面のような矢オブジェクト１４４の飛行アニメーションを描画する。
【０２０９】
最後に、そのようにして飛行した矢オブジェクト１４４が的オブジェクト１３２に当た
ったかどうか、どの位置に当たったかなどを周知の衝突判定計算に従って計算して、得点を計上するなどして、ステップＳ２３の結果判定を実行する。勿論、中央に命中している場合が最高点で、中心から外れるに従って、得点が低く計算される。
【０２１０】
なお、上述の実施例では、ヌンチャク３６のＣボタン５４ｂおよびＺボタン５４ｃを同時に押しながらヌンチャク３６を手前側に引いたとき弓を引いたことにし、Ｃボタン５４ｂおよびＺボタン５４ｃを同時に離したとき、矢を発射するようにした。つまり、移動指示入力手段として、第２コントローラすなわちヌンチャク３６の前後の移動とボタン操作を用いた。しかしながら、移動指示の方法は、ヌンチャク３６のジョイスティック５４ａを倒す操作によって弓を引き、離すことで矢を発射させる方法に代えられてもよい。この場合、ジョイスティック５４ａの２軸の絶対値（原点からの距離）が閾値を越えたとき、弓を引き（ステップＳ１１で“ＹＥＳ”と判断する。）、その絶対値の前フレームと現フレームとの差分が一定値を超えて大きく減少していれば、あるいは、その絶対値が閾値を下回ったら、矢を放つ（ステップＳ１７で“ＹＥＳ”と判断する。）ようにしてもよい。この実施例では、移動指示入力手段は、そのジョイスティック５４ａの後方傾斜から前方傾斜への移行操作に応じて移動指示を入力することになる。この例においても、引いて離すという要素が含まれているので、弓矢を射るゲームとして直感的な操作である。また、それ以外であっても、単にボタン操作による移動指示入力であっても構わない。
【０２１１】
さらに、移動指示入力手段は第１コントローラ３４のＡボタン４６ｄのような、特定の操作ボタンに代替されてもよい。この場合、Ａボタン４６ｄをオンしたとき、移動指示が入力されるようにすればよい。
【０２１２】
上述の実施例では、コントローラ３４にジャイロユニット１００（ジャイロセンサ１０４）を接続するようにしたが、ジャイロセンサ１０４をコントローラ３４に内蔵するようにしてもよい。
【図面の簡単な説明】
【０２１３】
【図１】図１はこの発明の一実施例の構成を示すブロック図である。
【図２】図２は図１実施例に適用される第１コントローラ（リモコン)の外観を示す図解図であり、図２（Ａ）は第１コントローラを上面後方から見た斜視図であり、図２（Ｂ）は第１コントローラを下面前方から見た斜視図である。
【図３】図３は図１実施例に適用される第２コントローラ（ヌンチャク）の本体の外観を示す図解図であり、図３（Ａ）は第２コントローラ本体を上面後方から見た斜視図であり、図３（Ｂ）は第１コントローラ本体を下面前方から見た斜視図である。
【図４】図４は第２コントローラのコネクタの外観を示す図解図である。
【図５】図５は第１コントローラに第２コントローラのコネクタを接続した状態で、第１コントローラに装着されたストラップのひもをコネクタのフックに掛け止めた様子を示す図解図である。
【図６】図６は図１実施例に適用されるジャイロセンサユニットの外観を示す図解図であり、図６（Ａ）はジャイロセンサユニットを上面前方から見た斜視図であり、図６（Ｂ）はジャイロセンサユニットを下面後方から見た斜視図である。
【図７】図７はジャイロセンサユニットの構成を示す図解図である。
【図８】図８は第１コントローラにジャイロセンサユニットを接続した状態を示す図解図である。
【図９】図９は第１コントローラにジャイロセンサユニット介して第２コントローラを接続した状態を示す図解図である。
【図１０】図１０は図１実施例の電気的な構成を示すブロック図である。
【図１１】図１１は図１実施例に適用されるコントローラ全体の電気的な構成を示すブロック図である。
【図１２】図１２は図１に示すジャイロユニットが接続されたコントローラを用いてゲームプレイするときの状態を概説するための図解図である。
【図１３】図１３は図１に示すマーカおよびコントローラの視野角を説明するための図解図である。
【図１４】図１４は対象画像を含む撮像画像の一例を示す図解図である。
【図１５】図１５は図１１のコントローラにおいて、第１コントローラおよび第２コントローラの間に介在するジャイロセンサユニットの電気的な構成を示すブロック図である。
【図１６】図１６はジャイロセンサユニットが取り扱うデータのフォーマットを示す図解図であり、図１６（Ａ）はジャイロ用データのフォーマットを示す図解図であり、図１６（Ｂ）は第２コントローラ用データのフォーマットを示す図解図である。
【図１７】図１７はジャイロセンサが検出できるヨー角、ピッチ角、ロール角を示す図解図である。
【図１８】図１８はコントローラを用いて実際にゲームをプレイするときにゲームプレイヤが第１コントローラおよび第２コントローラを持っている状態の一例を示す図解図である。
【図１９】図１９はジャイロセンサユニットのマイコンによる制御をモード毎に記載したテーブルを示す図解図である。
【図２０】図２０はジャイロセンサユニットに適用されるモード切り替えを示す図解図であり、図２０（Ａ）はアプリケーションがジャイロ対応型である場合のモード切り替えを示す図解図であり、図２０（Ｂ）はアプリケーションがジャイロ非対応型である場合のモード切り替えを示す図解図である。
【図２１】図２１は図１に示すモニタに表示されるゲーム画面の一例を示す図解図である。
【図２２】図２２はゲーム画面の他の例を示す図解図である。
【図２３】図２３はゲーム画面のさらに他の例を示す図解図である。
【図２４】図２４はゲーム画面のその他の例を示す図解図である。
【図２５】図２５は図１０に示すメインメモリのメモリマップを示す図解図である。
【図２６】図２６は図２５に示すデータ記憶領域の具体例を示す図解図である。
【図２７】図２７は実施例において図１０に示すＣＰＵのゲーム処理を示すフロー図である。
【図２８】図２８は図２７に示す構え処理の動作を示すフロー図である。
【図２９】図２９は本実施例のゲームをユーザが操作する様子を示す図である。
【符号の説明】
【０２１４】
１０  …ゲームシステム
１２  …ゲーム装置
３４  …第１コントローラ（リモコン）
３６  …第２コントローラ（ヌンチャク）
６０  …ＣＰＵ
６２  …システムＬＳＩ
７０  …無線通信モジュール
８４，８６  …加速度センサ
１００  …ジャイロセンサユニット
１０４  …ジャイロセンサ
【図１】
2010017389.tif 000003
【図２】
2010017389.tif 000004
【図３】
2010017389.tif 000005
【図４】
2010017389.tif 000006
【図５】
2010017389.tif 000007
【図６】
2010017389.tif 000008
【図７】
2010017389.tif 000009
【図８】
2010017389.tif 000010
【図９】
2010017389.tif 000011
【図１０】
2010017389.tif 000012
【図１１】
2010017389.tif 000013
【図１２】
2010017389.tif 000014
【図１３】
2010017389.tif 000015
【図１４】
2010017389.tif 000016
【図１５】
2010017389.tif 000017
【図１６】
2010017389.tif 000018
【図１７】
2010017389.tif 000019
【図１８】
2010017389.tif 000020
【図１９】
2010017389.tif 000021
【図２０】
2010017389.tif 000022
【図２１】
2010017389.tif 000023
【図２２】
2010017389.tif 000024
【図２３】
2010017389.tif 000025
【図２４】
2010017389.tif 000026
【図２５】
2010017389.tif 000027
【図２６】
2010017389.tif 000028
【図２７】
2010017389.tif 000029
【図２８】
2010017389.tif 000030
【図２９】
2010017389.tif 000031