拡張操作装置
【構成】ジャイロセンサユニット100はコネクタ106および108ならびにジャイロセンサ104を含む。コネクタ106は第1コントローラ34のコネクタ42に物理的および電気的に接続可能な第1の形状を有し、ジャイロセンサユニット100はコネクタ42および106を介して第1コントローラ34に接続される。コネクタ108は、第1の形状を有するコネクタが接続可能な第2の形状を有し、従来コネクタ42に接続されていた第2コントローラ36のコネクタ40はコネクタ108にも接続可能である。したがって、コネクタ42にコネクタ106が接続された状態で、コネクタ40にコネクタ108を接続すれば、第2コントローラ36は、ジャイロセンサユニット100を介して第1コントローラ34に接続される結果となる。
【効果】従来第1コントローラに接続されていた第2コントローラをそのまま使用しながら、第1コントローラにジャイロセンサを追加できる。
【効果】従来第1コントローラに接続されていた第2コントローラをそのまま使用しながら、第1コントローラにジャイロセンサを追加できる。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、拡張操作装置に関し、特にたとえば、操作装置にコネクタを介して接続されることによって、当該操作装置と一体で用いられる、拡張操作装置に関する。
【背景技術】
【0002】
この種の装置の一例が、非特許文献1に開示されている。この背景技術では、「Wiiリモコン」(Wii:登録商標)は、自身の傾きや動きの変化を検出する3軸のモーションセンサを備えている。「ヌンチャク」もまた、3軸のモーションセンサを備えている。メインのコントローラであるWiiリモコンには拡張コネクタが設けられており、拡張コントローラであるヌンチャクは、この拡張コネクタを介してWiiリモコンに接続される。
【0003】
プレイヤは、あるゲームでは、Wiiリモコンを片方の手で把持して、Wiiリモコンを動かすことにより操作を行う。別のゲームでは、Wiiリモコンを片方の手で、ヌンチャクをもう片方の手でそれぞれ把持して、Wiiリモコンおよびヌンチャクをそれぞれ動かすことにより操作を行う。
【非特許文献1】http://www.nintendo.co.jp/wii/controllers/index.html
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかし、Wiiリモコンやヌンチャクには、モーションセンサとして加速度センサしか搭載されていないため、回転を伴う動きの検出が容易でない。具体的には、たとえばテニスゲームにおいてスライスショットを実現しようとすると、Wiiリモコンの軸周りの角速度ないし回転角を高い精度で検出する必要がある。これらの変数は、加速度センサによって検出された3軸方向の加速度から計算可能ではあるが、3軸方向の加速度の各々が重力による加速度成分も含むため、角速度ないし回転角を高精度で算出するには、複雑な計算が必要となる。
【0005】
したがって、個々のゲームプログラムにこのような計算のためのルーチンを組み込む必要があり、開発者にとって負担が大きい。また、このような計算を繰り返し実行することで、ゲーム装置のCPUに大きな処理負荷がかかる。そこで、角速度を検出するジャイロセンサを、拡張コネクタを介してWiiリモコンに接続することが考えられる。
【0006】
しかし、ジャイロセンサを接続した状態では、ヌンチャクの使用が不可能となり、Wiiリモコンとヌンチャクとを使うゲームをプレイできない。
【0007】
それゆえに、この発明の主たる目的は、新規な、拡張操作装置を提供することである。
【0008】
この発明の他の目的は、従来操作装置に接続されていた他の装置をそのまま使用しながら、操作装置にセンサを追加できる、拡張操作装置を提供することである。
【課題を解決するための手段】
【0009】
この発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、この発明の理解を助けるために後述する実施形態との対応関係を示したものであって、この発明を何ら限定するものではない。
【0010】
第1の発明は、操作装置にコネクタを介して接続されることによって、当該操作装置と
一体で用いられる拡張操作装置であって、ハウジングと、操作装置に設けられたコネクタに物理的および電気的に接続可能な第1の形状を有する第1のコネクタと、第1の形状を有するコネクタが接続可能な第2の形状を有する第2のコネクタと、センサとを備える。
【0011】
第1の発明では、拡張操作装置(100)は、ハウジング(110)、第1のコネクタ(106)、第2のコネクタ(108)およびセンサ(104)を備える。第1のコネクタは、操作装置に設けられたコネクタ(42)に物理的および電気的に接続可能な第1の形状を有する。このため、第1のコネクタを操作装置のコネクタに接続することで、拡張操作装置は、これら2つのコネクタを介して操作装置に物理的および電気的に接続され、したがって、拡張操作装置を操作装置と一体で用いることが可能となって、操作装置にセンサが追加される結果となる。
【0012】
一方、第2のコネクタは、第1の形状を有するコネクタが接続可能な第2の形状を有する。このため、従来操作装置のコネクタに接続されていた他の装置のコネクタ(たとえば第2コントローラ36のコネクタ40)は、第2のコネクタにも接続可能である。したがって、操作装置のコネクタに第1コネクタが接続された状態で、他の装置のコネクタを第2のコネクタに接続すれば、他の装置は、拡張操作装置を介して操作装置に接続される結果となる。
【0013】
第1の発明によれば、従来操作装置に接続されていた他の装置をそのまま使用しながら、操作装置にセンサを追加することができる。
【0014】
なお、センサは、好ましい実施例ではジャイロセンサ(角速度センサ)であるが、たとえば加速度センサ、速度センサ、変位センサ、回転角センサなど、他のモーションセンサでもよい。モーションセンサ以外にも、傾斜センサ、イメージセンサ、光センサ、圧力センサ、磁気センサ、温度センサなどがあり、いずれのセンサを追加する場合でも、センサの検出対象を利用した操作が可能となる。
【0015】
また、実施例のジャイロセンサは3軸センサであるが、2軸センサでも、1軸センサでもよい。他のモーションセンサの場合も、3軸センサが好ましいが、2軸センサまたは1軸センサでもよい。さらに、実施例の3軸ジャイロセンサは、2軸センサおよび1軸センサの2チップで構成されるが、3軸1チップで構成されても、1軸3チップで構成されてもよい。
【0016】
第2の発明は、第1の発明に従属する拡張操作装置であって、センサは、自身の動きを検出するモーションセンサである。
【0017】
第2の発明では、モーションセンサによって、センサ自身ひいては拡張操作装置およびこれと一体化された操作装置の動きが検出される。
【0018】
第2の発明によれば、モーションセンサが追加されることで、操作装置自体の動きによる操作が可能になる。
【0019】
第3の発明は、第2の発明に従属する拡張操作装置であって、モーションセンサは、3軸のジャイロセンサである。
【0020】
第3の発明では、3軸のジャイロセンサによって、3軸周りの角速度が検出される。なお、好ましい実施例では、操作装置が3軸の加速度センサを備えており、これにより検出される3軸方向の加速度から3軸周りの角速度を求めることは原理的には可能であるが、煩雑な計算を要する。3軸のジャイロセンサが追加されたことで、このような計算は不要
となる。
【0021】
第3の発明によれば、操作装置を利用するアプリケーションの開発が容易となり、また、操作装置からの操作データを処理するマイコンの処理負荷が軽減される。
【0022】
第4の発明は、第2の発明に従属する拡張操作装置であって、操作装置のコネクタが設けられている面には、少なくとも1つの孔部が設けられ、当該孔部に嵌合可能な突起部材を更に備える。
【0023】
第4の発明では、操作装置のコネクタが設けられている面に、少なくとも1つの孔部(82a、82b)が設けられ、拡張操作装置は、当該孔部に嵌合可能な突起部材(112Fa、112Fb)を更に備える。突起部材が孔部に嵌合されることで、操作中であっても拡張操作装置が操作装置にしっかり固定された状態を保つことができる。
【0024】
第5の発明は、第4の発明に従属する拡張操作装置であって、突起部材は開閉可能な爪状部材であって、当該開閉をロックする突起ロック機構を更に備える。
【0025】
第5の発明では、開閉可能な爪状部材が孔部に嵌合される。爪状部材の開閉は、突起ロック機構(114)によってロックされる。
【0026】
第5の発明によれば、爪状部材が孔部に嵌合した状態でロックされるので、よりしっかり固定することができる。
【0027】
第6の発明は、第2の発明に従属する拡張操作装置であって、ハウジングの、第1のコネクタ側の面から底面にかけて凹部をさらに備える。
【0028】
好ましい実施例では、操作装置は、ハウジング(78)と、このハウジングの、コネクタ側の面から底面にかけて、ストラップ(24)の通すための孔(82c)とを備えており、第6の発明では、拡張操作装置のハウジングの、第1のコネクタ側の面から底面にかけて凹部(110a)があるので、拡張操作装置を操作装置に接続した状態で、ストラップ用の孔が凹部から露見する。
【0029】
第6の発明によれば、拡張操作装置を操作装置に接続した状態でも、ストラップの付け外しが行える。
【0030】
第7の発明は、第2の発明に従属する拡張操作装置であって、第2のコネクタを塞ぐことができ、外した際にもハウジングに係留される蓋をさらに備える。
【0031】
第7の発明では、第2のコネクタ塞ぐための蓋(116)は、第2のコネクタから外した際にも、拡張操作装置のハウジングに係留される。
【0032】
第7の発明によれば、蓋の紛失を防ぐことができる。
【0033】
第8の発明は、第2の発明に従属する拡張操作装置であって、第2のコネクタを通じて外部の装置からデータを取得し、当該外部の装置からのデータとモーションセンサからのデータとを第1のコネクタを通じて操作装置へ出力する。
【0034】
第8の発明では、外部の装置(36)からのデータは、第2のコネクタを通じて拡張操作装置に取り込まれた後、拡張操作装置内のモーションセンサからのデータと同様に、第1のコネクタを通じて操作装置へと出力される。
【0035】
第8の発明によれば、外部の装置からのデータは、拡張操作装置を介して操作装置に出力されるので、モーションセンサを追加しても、外部の装置をそのまま利用できる。
【0036】
第9の発明は、第8の発明に従属する拡張操作装置であって、センサからのデータを含む出力データを制御する出力データ制御手段と、第2のコネクタ側の配線を第1のコネクタ側へ直接接続するためのバススイッチと、バススイッチの接続のオン/オフを切り替えるバススイッチ制御手段とをさらに備え、バススイッチがオフのときには第2のコネクタ側の配線が出力データ制御手段を介して第1のコネクタ側に接続される。
【0037】
第9の発明では、センサからのデータを含む出力データは、出力データ制御手段(102)によって制御される。第2のコネクタ側の配線は、バススイッチ(SW)を介して第1のコネクタ側へ直接接続可能であり、このバススイッチによる接続のオン/オフは、バススイッチ制御手段(102)によって切り替えられる。バススイッチがオフのときには、第2のコネクタ側の配線は、出力データ制御手段を介して第1のコネクタ側に接続される。
【0038】
第9の発明によれば、バススイッチがオンされると、第2のコネクタに接続された外部の装置からのデータは、出力データ制御手段の制御を受けることなく、第1のコネクタに接続された操作装置に出力されるようになる。一方、バススイッチがオフされると、外部の装置からのデータは、センサからのデータと共に出力データ制御手段の制御下に置かれるので、これら2種類のデータを出力する際の競合を回避できる。
【0039】
なお、好ましい実施例では、出力データ制御手段は、アプリケーションがジャイロセンサからのデータを利用しないときバススイッチをオンし、ジャイロセンサからのデータを利用するときバススイッチをオフする。出力データ制御手段は、外部の装置からのデータをセンサからのデータと交互に出力する。
【0040】
第10の発明は、第9の発明に従属する拡張操作装置であって、センサへの電源供給のオン/オフを切り替えるセンサ電源管理手段をさらに備え、バススイッチ制御手段は、センサの電源がオフにされているときに、バススイッチの接続をオンにする。
【0041】
第10の発明では、センサ電源管理手段(102)がセンサへの電源供給のオン/オフを切り替える。バススイッチの接続は、センサの電源がオフにされているときに、バススイッチ制御手段によってオンにされる。したがって、センサの電源をオフにすると、バススイッチの接続がオンになり、外部の装置からのデータは、拡張操作装置をスルーして操作装置に到達するようになる。
【0042】
第10の発明によれば、センサからのデータを利用しないときにセンサの電源をオフすることで、消費電力を抑制できる。
【0043】
第11の発明は、第10の発明に従属する拡張操作装置であって、第2のコネクタに対して、さらに所定の装置が接続されているか否かを検出する接続検出手段をさらに備え、出力データ制御手段は、バススイッチの接続がオフであって、かつ第2のコネクタにさらに所定の装置が接続されているとき、当該所定の装置から入力される第1のデータと、センサの出力に基づいた第2のデータとを第1のコネクタから交互に出力させる。
【0044】
第11の発明では、第2のコネクタに所定の装置(36)が接続されているか否かが、接続検出手段(102)によって検出される。バススイッチの接続がオフであって、かつ第2のコネクタに所定の装置が接続されていれば、出力データ制御手段の制御の結果、当
該所定の装置から入力される第1のデータと、センサの出力に基づいた第2のデータとが第1のコネクタから交互に出力される(S31)。
【0045】
第11の発明によれば、第1のデータおよび第2のデータの間の競合を防止できる。
【0046】
第12の発明は、第3の発明に従属する拡張操作装置であって、ジャイロセンサの各軸の検出する角速度の大きさを判定する角速度判定手段と、角速度の大きさが大きい場合に、精度の低い第1の角速度データを出力させ、角速度の大きさが小さい場合には、第1の角速度データと同じデータ量であって精度が高い第2の角速度データを出力させる、角速度データ出力制御手段とをさらに備える。
【0047】
第12の発明では、ジャイロセンサの各軸の検出する角速度の大きさが、角速度判定手段(102)によって判定される。角速度データ出力制御手段(102)は、角速度の大きさが大きいと判定された場合に、精度の低い第1の角速度データを出力させ、角速度の大きさが小さいと判定された場合には、第1の角速度データと同じデータ量であって精度が高い第2の角速度データを出力させる。
【0048】
第12の発明によれば、角速度が大きいときには角速度データの精度を落とし、角速度が小さいときは角速度データの精度を上げることで、角速度データのデータ量を増やすことなく、角速度の検出精度の向上と、角速度の検出範囲の拡大とが共に図れる。
【発明の効果】
【0049】
この発明によれば、従来操作装置に接続されていた他の装置をそのまま使用しながら、操作装置にセンサを追加することができる。
【0050】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【0051】
図1を参照して、この発明の一実施例であるゲームシステム10は、ゲーム装置12およびコントローラ14を含む。ゲーム装置12は据置型ゲーム装置である。コントローラ14は、ユーザないしプレイヤの入力装置ないし操作装置である。ゲーム装置12とコントローラ14とは無線によって接続される。
【0052】
ゲーム装置12は、略直方体のハウジング16を含み、ハウジング16の前面にはディスクスロット18およびメモリカードスロットカバー20が設けられる。ディスクスロット18から、ゲームプログラムおよびデータを記憶した情報記憶媒体の一例である光ディスク66(図10)が挿入されて、ハウジング16内のディスクドライブ54(図10)に装着される。メモリカードスロットカバー20の内側には外部メモリカード用コネクタ62(図10)が設けられており、外部メモリカード(図示せず)が挿入される。外部メモリカードは、光ディスク66(図10)から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム10を利用してプレイされたゲームのゲームデータ(結果データまたは途中データ)を保存(セーブ)しておいたりするために利用される。また、上記ゲームデータの保存は、外部メモリカードに代えて、たとえばフラッシュメモリ等の内部メモリに対して行うようにしてもよい。
【0053】
ゲーム装置12のハウジング16の後面には、AVケーブルコネクタ(図示せず)が設けられ、当該コネクタを用いて、ゲーム装置12はAVケーブル28を介してモニタ(ディスプレイ)30に接続される。このモニタ30は典型的にはカラーテレビジョン受像機であり、AVケーブル28は、ゲーム装置12からの映像信号をカラーテレビのビデオ入
力端子に入力し、音声信号を音声入力端子に入力する。したがって、カラーテレビ(モニタ)30の画面上にたとえば3Dビデオゲームのゲーム画像が表示され、内蔵されるスピーカ32からゲーム音楽や効果音などのステレオゲーム音声が出力される。
【0054】
また、モニタ30の周辺(この実施例では、モニタ30の上側)には、2つの赤外LED(マーカ)22aおよび22bを備えるマーカ部22が設けられる。マーカ22aおよび22bは、それぞれモニタ30の前方に向けて赤外光を出力する。
【0055】
なお、ゲーム装置12の電源は、一般的なACアダプタ(図示せず)によって与えられる。ACアダプタは家庭用の標準的な壁ソケットに接続され、家庭用電源を、ゲーム装置12を駆動するのに適した低いDC電圧信号に変換する。他の実施例では、電源としてバッテリが用いられてもよい。マーカ部22は、図示しない電源線を通してゲーム装置12に接続されており、ゲーム装置12から電源の供給を受ける。
【0056】
コントローラ14は、詳細は後述されるが、それぞれが片手で把持可能な第1コントローラ34および第2コントローラ36と、第1コントローラ34に装着されるジャイロセンサユニット100とを含む。第1コントローラ34の後端面にはコネクタ42(図2(A)、図11)が設けられ、第2コントローラ36の後端から延びるケーブル38の先端にはコネクタ40(図4(A)、図11)が設けられ、そしてジャイロセンサユニット100の先端面および後端面にはコネクタ106および108(図6(A)、図6(B)、図7および図11)がそれぞれ設けられる。ジャイロセンサユニット100の先端面側のコネクタ106は第1コントローラ34のコネクタ42と接続可能であり、第2コントローラ36のコネクタ40は第1コントローラ34のコネクタ42またはジャイロセンサユニット100の後端面側のコネクタ108と接続可能である。
【0057】
コネクタ106をコネクタ42に接続することで、ジャイロセンサユニット100は、第1コントローラ34と物理的および電気的に結合される。こうして第1コントローラ34に装着(一体化)されたジャイロセンサユニット100からは、第1コントローラ34の角速度を示す角速度データが出力される。
【0058】
こうして第1コントローラ34にジャイロセンサユニット100が装着された場合、第2コントローラ36のコネクタ40は、ジャイロセンサユニット100の後端面側のコネクタ108に接続される。すなわち、コネクタ42は、コネクタ106とコネクタ40の両者を選択的に接続可能な構造であって、コネクタ40は、コネクタ42とコネクタ108の両者に選択的に接続可能な構造である。したがって、ジャイロセンサユニット100に設けられるコネクタ106とコネクタ108とは、同一のハウジングに設けられるため実際は接続できないが、コネクタの形状としては互いに接続可能な形状をしていることになる。第2コントローラ36の入力データは、ケーブル38およびジャイロセンサユニット100を介して第1コントローラ34に与えられる。第1コントローラ34は、第1コントローラ34自身の入力データと、ジャイロセンサユニット100からの角速度データと、第2コントローラ36の入力データとを含むコントローラデータをゲーム装置12に送信する。
【0059】
なお、コネクタ40をコネクタ42に接続した場合には、第2コントローラ36の操作データないし入力データはケーブル38を介して第1コントローラ34に与えられ、第1コントローラ34は、第1コントローラ34自身の入力データと第2コントローラ36の入力データとを含むコントローラデータをゲーム装置12に送信する。
【0060】
このとき、第1コントローラ34の入力データと、第2コントローラ36の入力データを送信するシステムにおいて、一度に送信するデータ量を追加することができないように
設計されている場合もあるが、ジャイロユニット100を追加した場合に、ジャイロユニット100からの角速度データと、第2コントローラ36からの入力データとを交互に第1コントローラ36へ出力することによって、両者のデータを送信することができる。このデータ制御はジャイロユニット100で行うことができるので、第1コントローラ34や第2コントローラ36には何ら設計の変更をする必要がない。
【0061】
このように、ジャイロセンサユニット100は、既存の第1コントローラ34および第2コントローラ36をそのまま利用しながら、第1コントローラ34にジャイロ機能を付加するための拡張ユニットである。
【0062】
このゲームシステム10において、ゲーム(または他のアプリケーション)をプレイするために、ユーザはまずゲーム装置12の電源をオンし、次いで、ユーザはビデオゲーム(もしくは実行したいと思う他のアプリケーション)を記憶している適宜の光ディスク66を選択し、その光ディスク66をゲーム装置12のディスクスロット18からディスクドライブ54にローディングする。これに応じて、ゲーム装置12がその光ディスク66に記憶されているソフトウェアに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。ユーザはゲーム装置12に入力を与えるためにコントローラ14を操作する。
【0063】
図2には第1コントローラ34の外観の一例が示される。図2(A)は、第1コントローラ34を上面後方から見た斜視図であり、図2(B)は、第1コントローラ34を下面前方から見た斜視図である。
【0064】
第1コントローラ34は、たとえばプラスチック成型によって形成されたハウジング78を有している。ハウジング78は、その前後方向(Z軸方向)を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。一例として、ハウジング78は人間の掌とほぼ同じ長さまたは幅を持つ大きさをしている。プレイヤは、第1コントローラ34を用いて、それに設けられたボタンを押下することと、第1コントローラ34自体の位置や向きを変えることとによって、ゲーム操作を行うことができる。
【0065】
ハウジング78には、複数の操作ボタンが設けられる。すなわち、ハウジング78の上面には、十字キー80a、Xボタン80b、Yボタン80c、Aボタン80d、セレクトスイッチ80e、メニュースイッチ80f、およびスタートスイッチ80gが設けられる。一方、ハウジング78の下面には凹部が形成されており、当該凹部の後方側傾斜面にはBボタン80hが設けられる。これら各ボタン(スイッチ)80a−80hには、ゲーム装置12が実行するゲームプログラムに応じてそれぞれ適宜な機能が割り当てられる。また、ハウジング78の上面には、遠隔からゲーム装置12本体の電源をオン/オフするための電源スイッチ80iが設けられる。第1コントローラ34に設けられる各ボタン(スイッチ)は、包括的に参照符号80を用いて示されることもある。
【0066】
ハウジング78内には、図2に示すX、YおよびZの3軸方向(すなわち左右方向、上下方向および前後方向)の加速度を検出する加速度センサ84(図11)が設けられる。なお、加速度センサ84としては、ハウジング78の形状または第1コントローラ34の持たせ方の限定等に応じて、上下方向、左右方向および前後方向のうちいずれか2方向の加速度を検出する2軸加速度センサが用いられてもよい。場合によっては1軸加速度センサが用いられてもよい。
【0067】
ハウジング78の前面には光入射口78bが形成され、ハウジング78内には撮像情報演算部81がさらに設けられる。撮像情報演算部81は、赤外線を撮像するカメラと撮像
対象の画像内での座標を算出する演算部とによって構成され、上述のマーカ22aおよび22bを含む被写界を赤外線で捉えて、マーカ22aおよび22bの被写界内における位置座標を算出する。
【0068】
また、ハウジング78の後面には、上述のコネクタ42が設けられている。コネクタ42は、第1コントローラ34に他の機器を接続するために利用される。この実施例では、コネクタ42には第2コントローラ36のコネクタ40またはジャイロセンサユニット100のコネクタ106が接続される。
【0069】
ハウジング78の後面にはまた、コネクタ42を左右(X軸方向)に挟んで対向する位置に、一対の孔82aおよび82bが形成されている。この一対の孔82aおよび82bは、ジャイロセンサユニット100をハウジング78の後面に固定するためのフック112Faおよび112Fb(図6(A))が挿入される。ハウジング78の後面にはさらに、ストラップ24(図4(B))を装着するための孔82cも形成されている。
【0070】
図3には第2コントローラ36の本体の外観の一例が示される。図3(A)は、第2コントローラ36を上面後方から見た斜視図であり、図3(B)は、第2コントローラ36を下面前方から見た斜視図である。なお、図3では、第2コントローラ36のケーブル38は省略されている。
【0071】
第2コントローラ36は、たとえばプラスチック成型によって形成されたハウジング86を有している。ハウジング86は、平面視では、前後方向(Z軸方向)に略細長い楕円形状を有し、後端側の左右方向(X軸方向)の幅が先端側のそれよりも狭くされている。また、ハウジング86は、側面視では、全体として湾曲した形状を有しており、先端側の水平部分から後端側に向かって下がるように湾曲している。ハウジング86は、第1コントローラ34と同様に、全体として大人や子供の片手で把持可能な大きさであるが、長手方向(Z軸方向)の長さは、第1コントローラ34のハウジング78よりもやや短くされている。この第2コントローラ36でも、プレイヤは、ボタンやスティックを操作することと、コントローラ自体の位置や向きを変えることとによって、ゲーム操作を行うことができる。
【0072】
ハウジング86の上面の先端側には、アナログジョイスティック88aが設けられる。ハウジング86の先端には、後方にやや傾斜する先端面が設けられており、この先端面には、上下方向(図3に示すY軸方向)に並べて、Cボタン88bおよびZボタン88cが設けられる。アナログジョイスティック88aおよび各ボタン88b,88cには、ゲーム装置12が実行するゲームプログラムに応じてそれぞれ適宜な機能が割り当てられる。第2コントローラ36に設けられるアナログジョイスティック88aおよび各ボタン88b,88cは、包括的に参照符号88を用いて示されることもある。
【0073】
また、第2コントローラ36のハウジング86内には加速度センサ90(図11)が設けられている。この加速度センサ90としては、第1コントローラ34の加速度センサ84と同様の加速度センサが適用される。具体的には、この実施例では3軸加速度センサが適用され、第2コントローラ36の上下方向(Y軸方向)、左右方向(X軸方向)および前後方向(Z軸方向)の3軸方向のそれぞれで加速度を検知する。したがって、第1コントローラ34の場合と同様に、検出された加速度に適宜な演算処理を施すことによって、第2コントローラ36の傾きや回転、重力方向に対する加速度センサ90の姿勢などを算出することができる。また、振り等によって第1コントローラ34に加えられた動きについても同様に算出することができる。
【0074】
図4には第2コントローラ36のコネクタ40の外観の一例が示される。図4は、コネ
クタ40を下面前方から見た斜視図である。なお、ここでもケーブル38は省略されている。コネクタ40は、たとえばプラスチック成型によって形成されたハウジング142を有する。ハウジング142の下面にはフック144が設けられている。このフック144は、本来的には、図5に示すように、コネクタ40を第1コントローラ34(のコネクタ42)と直に接続した場合に、第1コントローラ34に装着されたストラップ24のひもを掛け止めるためのものである。ストラップ24のひもをフック144に掛け止めることによって、コネクタがよりしっかり固定される。
【0075】
図6にはジャイロセンサユニット100の外観の一例が示される。図6(A)は、ジャイロセンサユニット100を上面前方から見た斜視図であり、図6(B)は、ジャイロセンサユニット100を下面後方から見た斜視図である。
【0076】
ジャイロセンサユニット100は、たとえばプラスチック成型によって形成されたハウジング110を有している。ハウジング110は、略直方体形状を有しており、その長さは第1コントローラ34のハウジング78の長さのおよそ1/5、その幅および厚みはハウジング78の幅および厚みとほぼ同じである。プレイヤは、第1コントローラ34にジャイロセンサユニット100を装着した状態でも、第1コントローラ34自体の位置や向きを変えることによって、ゲーム操作を行うことができる。
【0077】
ハウジング110の前面および後面には上述のコネクタ106および108が、ハウジング110の両側面には一対のリリースボタン112aおよび112bが、そしてハウジング110の下面にはロックスイッチ114が、それぞれ設けられている。ハウジング110の前面下端から下面先端にかけては、第1コントローラ34にジャイロセンサユニット100を装着した状態でストラップ24用の孔82cが露見するように(図8)、略球面状の凹部110aが設けられている。
【0078】
ハウジング110の前面にはまた、コネクタ106を挟んで横方向(X軸方向)に対向する位置に、一対のリリースボタン112aおよび112bとそれぞれ連繋する一対のフック112Faおよび112Fbが設けられている。ジャイロセンサユニット100を第1コントローラ34に装着するべく、コネクタ106をコネクタ42に接続すると、一対のフック112Faおよび112Fbはハウジング78後面の一対の孔82aおよび82b(図2(A))に挿入され、フック112Faおよび112Fbの爪がハウジング78の内壁に引っ掛かる。これによって、ジャイロセンサユニット100は、第1コントローラ34の後面に固定される。
【0079】
こうして第1コントローラ34に装着されたジャイロセンサユニット100が図8に示される。この状態で一対のリリースボタン112aおよび112bを押せば、爪の引っ掛かりは解け、ジャイロセンサユニット100を第1コントローラ34から取り外せるようになる。
【0080】
ロックスイッチ114は、このようなリリースボタン112aおよび112bにロックをかけるためのスライドスイッチである。リリースボタン112aおよび112bは、ロックスイッチ114が第1位置(たとえば後ろ寄り)にあるとき押下不能(ロック状態)であり、ロックスイッチ114が第2位置(たとえば前寄り)にあるとき押下可能(解除状態)である。ハウジング110内には、ロックバネ118aおよび118b(図7)が設けられ、リリースボタン112aおよび112bを押下すると反発するように構成され、押下されていないときは爪が引っ掛かった状態を維持するように構成されている。このため、ジャイロセンサユニット100を取り外すには、ユーザは、ロックスイッチ114を第1位置から第2位置にスライドさせたうえで、リリースボタン112aおよび112bを押す必要がある。
【0081】
このように、ジャイロセンサユニット100は、第1コントローラ34の後面に装着されるため、ゲーム操作中にジャイロセンサユニット100に加わる遠心力は専ら、ジャイロセンサユニット100を第1コントローラ34に押し付けるように作用する。また、ジャイロセンサユニット100をフック112Faおよび112Fbで第1コントローラ34の後面に固定する一方、フック112Faおよび112Fbを開放するためリリースボタン112aおよび112bにはロックスイッチ114を設けたため、ゲーム操作中であってもジャイロセンサユニット100と第1コントローラ34とがしっかり固定された状態にすることができる。
【0082】
ハウジング110の後面にはまた、コネクタ108に装着されるコネクタカバー116を収納可能な凹部110bが、このコネクタ108の周囲に形成される。コネクタカバー116は、その主面の一方端部に、前後(Z軸方向)に長細い薄手の(すなわち曲折容易な)突起116aを有する。この突起116aの先端部分がハウジング110と係合されており、コネクタカバー116は、コネクタ108から取り外された状態でもハウジング110に係留される。
【0083】
コネクタカバー116はまた、その主面の他方端部に、左右(X軸方向)に長細い厚手の(すなわち曲折困難な)突起116bを有する。突起116bの厚み(Z軸方向の高さ)は、第2コントローラ36のコネクタ40に設けられたフック144(図4)の厚み(Y軸方向の高さ)とほぼ同じである。第1コントローラ34にジャイロセンサユニット100を介して第2コントローラ36が接続された場合、コネクタカバー116は、図9に示すように、その主面が水平となって、突起116bがフック144の側面と係合される。コネクタ108から取り外されたコネクタカバー116をこうしてコネクタ40と一体化することで、操作性や見た目が改善されるだけでなく、コネクタ40がジャイロセンサユニット100にしっかりと固定される。
【0084】
図7にはジャイロセンサユニット100の構成の一例が示される。ジャイロセンサユニット100は、上述したハウジング110、コネクタ106および108、リリースボタン112aおよび112b、フック112Faおよび112Fb、ロックスイッチ114、コネクタカバー116ならびにロックバネ118aおよび118bに加え、ジャイロ基板120および支持部材122を備える。ジャイロ基板120はコネクタ106および108の各々と信号線で接続され、支持部材122はジャイロ基板120ならびにコネクタ106および108を支持する。
ジャイロ基板120にはジャイロセンサ104が設けられる。ジャイロセンサ104は、1軸のジャイロセンサ104aおよび2軸のジャイロセンサ104bの2チップで構成される。ジャイロセンサ104aはヨー角に関する角速度(Y軸周りの角速度)を検出するためのものであり、ジャイロセンサ104bはロール角およびピッチ角に関する2つの角速度(Z軸周りの角速度およびX軸周りの角速度)を検出するためのものである。ジャイロセンサ104aおよび104bは、ジャイロ基板120の上面120aに水平に並べて設けられる。
【0085】
なお、ジャイロセンサ104aおよび104bの配置は、図7に示されたものに限らない。他の実施例では、ジャイロセンサ104aは、ジャイロ基板120の上面120aおよび下面120bの一方に水平に設けられ、ジャイロセンサ104bは、ジャイロ基板120の上面120aおよび下面120bの他方に水平に、ジャイロ基板120を挟んでジャイロセンサ104aと対向するように設けられる。その他の実施例では、ジャイロセンサ104aはジャイロ基板120の上面120aおよび下面120bの一方に垂直に設けられ、ジャイロセンサ104bはジャイロ基板120の上面120aおよび下面120b
の他方に水平に設けられる。
【0086】
また、ジャイロセンサ104は、2チップ構成とは限らず、3個の1軸ジャイロセンサ(3チップ)で構成してもよく、1個の3軸ジャイロセンサ(1チップ)で構成してもよい。いずれの場合も、上述の3つの角速度を適正に検出できるように、各チップの位置や向きが決定される。さらにまた、場合によっては、ジャイロセンサ104は、1個の2軸ジャイロセンサで構成しても、2個または1個の1軸ジャイロセンサで構成してもよい。
【0087】
なお、図2に示した第1コントローラ34、図3および図4に示した第2コントローラ36、および図6に示したジャイロセンサユニット100の形状や、ボタン(スイッチまたはスティック等)の形状、数および設置位置等は単なる一例に過ぎず、他の形状、数および設置位置等に適宜変更され得る。
【0088】
なお、センサは、好ましい実施例ではジャイロセンサ(角速度センサ)であるが、たとえば加速度センサ、速度センサ、変位センサ、回転角センサなど、他のモーションセンサでもよい。モーションセンサ以外にも、傾斜センサ、イメージセンサ、光センサ、圧力センサ、磁気センサ、温度センサなどがあり、いずれのセンサを追加する場合でも、センサの検出対象を利用した操作が可能となる。いずれのセンサを用いた場合でも、従来操作装置に接続されていた他の装置をそのまま使用しながら、操作装置に当該センサを追加することができる。
【0089】
また、コントローラ14の電源は、第1コントローラ34内に取替可能に収容されるバッテリ(図示せず)によって与えられる。第2コントローラ36には、コネクタ40およびケーブル38を介してこの電源が供給される。第1コントローラ34にジャイロセンサユニット100が接続されている場合、ジャイロセンサユニット100にはコネクタ42および106を介してこの電源が供給される。さらにジャイロセンサユニット100に第2コントローラ36が接続されていれば、第1コントローラ34からジャイロセンサユニット100に供給された電源の一部は、コネクタ108、コネクタ40およびケーブル38を介して第2コントローラ36にも与えられる。
【0090】
図10にはゲームシステム10の電気的な構成が示される。図示は省略するが、ハウジング16内の各コンポーネントは、プリント基板に実装される。図10に示すように、ゲーム装置12には、CPU44が設けられ、ゲームプロセッサとして機能する。また、CPU44には、システムLSI64が接続される。このシステムLSI64には、外部メインメモリ46、ROM/RTC48、ディスクドライブ54およびAV IC56が接続される。
【0091】
外部メインメモリ46は、ゲームプログラム等のプログラムを記憶したり、各種データを記憶したりして、CPU44のワーク領域やバッファ領域として用いられる。ROM/RTC48は、いわゆるブートROMであり、ゲーム装置12の起動用のプログラムが組み込まれるとともに、時間をカウントする時計回路が設けられる。ディスクドライブ54は、光ディスク66からプログラムやテクスチャデータ等を読み出し、CPU44の制御の下で、後述する内部メインメモリ64eまたは外部メインメモリ46に書き込む。
【0092】
システムLSI64には、入出力プロセッサ64a、GPU(Graphics Processor Unit)64b,DSP(Digital Signal Processor)64c,VRAM64dおよび内部メイン
メモリ42eが設けられ、図示は省略するが、これらは内部バスによって互いに接続される。
【0093】
入出力プロセッサ(I/Oプロセッサ)42aは、データの送受信を実行したり、デー
タのダウンロードを実行したりする。
【0094】
GPU64は、描画手段の一部を形成し、CPU44からのグラフィクスコマンド(作
画命令)を受け、そのコマンドに従ってゲーム画像データを生成する。ただし、CPU4
0は、グラフィクスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラムをGPU64に与える。
【0095】
図示は省略するが、上述したように、GPU64にはVRAM64dが接続される。GPU64が作画命令を実行するにあたって必要なデータ(画像データ:ポリゴンデータやテクスチャデータなどのデータ)は、GPU64がVRAM64dにアクセスして取得する。ただし、CPU44は、描画に必要な画像データを、GPU64を介してVRAM64dに書き込む。GPU64は、VRAM64dにアクセスして描画のためのゲーム画像データを作成する。
【0096】
なお、この実施例では、GPU64がゲーム画像データを生成する場合について説明するが、ゲームアプリケーション以外の任意のアプリケーションを実行する場合には、GPU64は当該任意のアプリケーションについての画像データを生成する。
【0097】
また、DSP64cは、オーディオプロセッサとして機能し、内部メインメモリ64eや外部メインメモリ46に記憶されるサウンドデータや音波形(音色)データを用いて、スピーカ32から出力する音、音声或いは音楽に対応するオーディオデータを生成する。
【0098】
上述のように生成されたゲーム画像データおよびオーディオデータは、AV IC56によって読み出され、AVコネクタ58を介してモニタ30およびスピーカ32に出力される。したがって、ゲーム画面がモニタ30に表示され、ゲームに必要な音(音楽)がスピーカ32から出力される。
【0099】
また、入出力プロセッサ64aには、フラッシュメモリ43、無線通信モジュール50および無線コントローラモジュール52が接続されるとともに、拡張コネクタ60およびメモリカード用コネクタ62が接続される。また、無線通信モジュール50にはアンテナ50aが接続され、無線コントローラモジュール52にはアンテナ52aが接続される。
【0100】
入出力プロセッサ64aは、無線通信モジュール50を介して、ネットワーク(図示せず)に接続される他のゲーム装置や各種サーバと通信することができる。ただし、ネットワークを介さずに、直接的に他のゲーム装置と通信することもできる。入出力プロセッサ64aは、定期的にフラッシュメモリ43にアクセスし、ネットワークへ送信する必要があるデータ(「送信データ」とする)の有無を検出し、当該送信データが有る場合には、無線通信モジュール50およびアンテナ50aを介してネットワークに送信する。また、入出力プロセッサ64aは、他のゲーム装置から送信されるデータ(「受信データ」とする)を、ネットワーク、アンテナ50aおよび無線通信モジュール50を介して受信し、当該受信データをフラッシュメモリ43に記憶する。ただし、受信データが一定の条件を満たさない場合には、当該受信データはそのまま破棄される。さらに、入出力プロセッサ64aは、ダウンロードサーバ(図示せず)からダウンロードしたデータ(ダウンロードデータとする)をネットワーク、アンテナ50aおよび無線通信モジュール50を介して受信し、そのダウンロードデータをフラッシュメモリ43に記憶することもできる。
【0101】
また、入出力プロセッサ64aは、コントローラ14から送信される入力データをアンテナ52aおよび無線コントローラモジュール52を介して受信し、内部メインメモリ64eまたは外部メインメモリ46のバッファ領域に記憶(一時記憶)する。入力データは、CPU44の処理(たとえば、ゲーム処理)によって利用された後、バッファ領域から
消去される。
【0102】
なお、この実施例では、上述したように、無線コントローラモジュール52は、Bluetooth規格に従ってコントローラ14との間で通信を行う。このため、コントローラ14からデータを取得するだけでなく、ゲーム装置12からコントローラ14に所定の命令を送信し、コントローラ14の動作をゲーム装置12から制御することもできる。
【0103】
さらに、入出力プロセッサ64aには、拡張コネクタ60およびメモリカード用コネクタ62が接続される。拡張コネクタ60は、USBやSCSIのようなインタフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、コントローラ14とは異なる他のコントローラのような周辺機器を接続したりすることができる。また、拡張コネクタ60に有線LANアダプタを接続し、無線通信モジュール50に代えて当該有線LANを利用することもできる。メモリカード用コネクタ62には、メモリカード38のような外部記憶媒体を接続することができる。したがって、たとえば、入出力プロセッサ64aは、拡張コネクタ60やメモリカード用コネクタ62を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【0104】
詳細な説明は省略するが、図1にも示したように、ゲーム装置12(ハウジング16)には、電源ボタン20a,リセットボタン20bおよびイジェクトボタン20cが設けられる。電源ボタン20aは、システムLSI64に接続される。この電源ボタン20aがオンされると、システムLSI64には、ゲーム装置12の各コンポーネントに図示しないACアダプタを経て電源が供給され、通電状態となるモードが設定される。
【0105】
リセットボタン20bもまた、システムLSI64に接続される。リセットボタン20bが押されると、システムLSI64は、ゲーム装置12の起動プログラムを再起動する。イジェクトボタン20cは、ディスクドライブ54に接続される。イジェクトボタン20cが押されると、ディスクドライブ54から光ディスク66が排出される。
【0106】
図11には、第1コントローラ34と第2コントローラ36とがジャイロセンサユニット100を介して接続されたときのコントローラ14全体の電気的構成の一例が示される。
【0107】
第1コントローラ34は、その内部に通信部92を備え、通信部92には、操作部80、撮像情報演算部81、加速度センサ84およびコネクタ42が接続される。操作部80は、上述の操作ボタンないし操作スイッチ80a‐80iを示す。操作部80が操作されると、その操作を示すデータが通信部92に出力される。撮像情報演算部81からは、マーカ22aおよび22bの被写界内における位置座標を示すデータが通信部92に出力される。加速度センサ84が検出した加速度を示すデータもまた、通信部92へ出力される。加速度センサ84は、たとえば最大200フレーム/秒程度のサンプリング周期を有する。
【0108】
コネクタ42には、ジャイロセンサユニットのコネクタ106が接続される。ジャイロセンサユニット100は、その内部にマイコン102およびジャイロセンサ104を含む。ジャイロセンサ104は、上述のジャイロセンサ104aおよび104bを示しており、たとえば加速度センサ84と同様のサンプリング周期を有する。マイコン102は、ジャイロセンサ104が検出した角速度を示すデータをコネクタ106およびコネクタ42を介して通信部92に出力する。
【0109】
ジャイロセンサユニット100のコネクタ108には、第2コントローラ36から延びるケーブル38のコネクタ40が接続される。コネクタ40には、第2コントローラ36
の操作部88および加速度センサ90が接続される。操作部88は、上述のスティック88aおよび操作ボタン88b、88cを示す。操作部88が操作されると、その操作を示すデータがケーブル38、コネクタ40およびコネクタ42を介してジャイロセンサユニット100のマイコン102に与えられる。マイコン102は、このデータをコネクタ106、コネクタ42を介して通信部92に出力する。また、加速度センサ90も、加速度センサ84と同様のサンプリング周期を有しており、これにより検出された加速度を示すデータもまた、マイコン102によって通信部92に出力される。
【0110】
なお、上述した通信部92への各出力は、たとえば1/200秒周期で実行される。したがって、任意の1/200秒間に、操作部80からの操作データと、撮像情報演算部81のからの位置座標データと、加速度センサ84からの加速度データと、ジャイロセンサ104からの角速度データと、操作部88からの操作データと、加速度センサ90からの加速度データとが、1回ずつ通信部92に出力される。
【0111】
図12には、図11に示した全体構成のうちジャイロセンサユニット100の要部構成が示される。上述のコネクタ42、コネクタ106、コネクタ108およびコネクタ40は、それぞれたとえば6ピンのコネクタであり、この6ピンの中に、コネクタ間の接続状態を示す変数“Attach”を制御するためのAttachピンが含まれている。Attachは、コネクタ間が切断されていることを示す“Low”と、コネクタ間が接続されていることを示す“High”との間で変化する。以下では特に、コネクタ42・コネクタ106間つまり第1コントローラ34・ジャイロセンサユニット100間のAttachを“Attach1”と呼び、コネクタ108・コネクタ40間つまりジャイロセンサユニット100・第2コントローラ36間のAttachを“Attach2”と呼ぶ。
【0112】
Attach1は、第1コントローラ34にジャイロセンサユニット100が装着されていても、アプリケーションがジャイロ非対応型であり、かつジャイロセンサユニット100に第2コントローラ36が接続されていない場合には、このジャイロ非対応アプリからジャイロセンサユニット100が見えなくなるように、ジャイロセンサユニット100のマイコン102によって“Low”に制御される(スタンバイモード:図14参照)。スタンバイモードでは、ジャイロセンサ104への電源供給は停止され、ジャイロ機能は停止状態となる。マイコン102は専ら、Attach2に基づくモード切り替えと、ジャイロ対応アプリからの指示に基づく電源管理とを行う。
【0113】
上記6ピンのうち他の2つにはI2Cバスが割り当てられており、ジャイロセンサユニット100は、第1コントローラ34側のI2Cバスと第2コントローラ36側のI2Cバスとを互いに接続/分離するためのバススイッチSWをさらに含む。バススイッチSWは、第2コントローラ36がジャイロセンサユニット100を介して第1コントローラ34に接続された状態で、ジャイロ非対応アプリが実行されるときに、マイコン102によりオンされる。以降、第2コントローラ36からのデータは、マイコン102を経由することなく、I2Cバスを通じて通信部92に出力されるようになる(バイパスモード:図14参照)。したがって、マイコン102は、スタンバイモードと同様、モード切り替えと電源管理とを行えばよく、消費電力が抑制される。また、ジャイロセンサユニット100を装着したままでも、ジャイロ非対応アプリを実行できる。バススイッチSWがオフのときは、バスはマイコン102に接続され、第1コントローラ34に出力するデータは、マイコン102によって制御される。
【0114】
バススイッチSWはまた、スタンバイモードでもオンされる。これによって、ジャイロ対応型のアプリケーションは、上述のようにAttach1が“Low”に制御されていても、I2Cバスの特別なアドレスを参照することで、第1コントローラ34にジャイロ
センサユニット100が装着されているかどうかを確認できる。
【0115】
なお、ジャイロセンサユニット100には、上述した“スタンバイ”および“バイパス”に加え、“ジャイロ”および“ジャイロ&第2コントローラ”の計4モードが準備されている。後の2つのモードでは、バススイッチSWはオフされる。
【0116】
ジャイロセンサユニット100のマイコン102は、2種類のA/D変換回路102aおよび102bを含んでおり、ジャイロセンサ104から出力される3軸周りの角速度信号は、これらA/D変換回路102aおよび102bの各々に与えられる。A/D変換回路102aでは、ジャイロセンサ104の検出範囲の全部(たとえば±360度/秒)を対象とする高角速度モードのA/D変換処理が実行され、A/D変換回路102bでは、ジャイロセンサ104の検出範囲の一部(たとえば±90度/秒)を対象とする低角速度モードのA/D変換処理が実行される。マイコン102は、これら2種類のA/D変換結果のいずれか一方を角速度データとして出力する。
【0117】
具体的には、A/D変換回路102aおよび102bからある時刻に対応する2種類の角速度データが出力されると、マイコン102は最初、このうち低角速度モードの角速度データについて、その値Aが第1閾値Th1から第2閾値Th2(>Th1)までの範囲内にあるかどうか、すなわち条件“Th1≦A≦Th2”が満足されるか否かを、軸毎に、つまりヨー、ロールおよびピッチの各々について判定する。次に、これら3つの判定結果に基づいて、低角速度モードおよび高角速度モードのいずれか1つを選択する。たとえば、3つの判定結果それぞれに関して、YESであれば低角速度モードを選択し、NOであれば高角速度モードを軸ごとに選択する。そして、軸ごとに選択されたモードに従う角速度データを、選択されたモードを示すモード情報と共にそれぞれ出力する。つまり、角速度に応じてデータの精度を変えることによって、同じデータ量であっても、低速のときにはより精度の高いデータを出力することができる。
【0118】
図13には、ジャイロセンサユニット100が取り扱うデータのフォーマットが示される。図13(A)はジャイロセンサユニット100用データのフォーマットを示し、図13(B)は第2コントローラ36用データのフォーマットを示す。ジャイロセンサユニット100用のデータは、ヨー角速度データ、ロール角速度データおよびピッチ角速度データと、ヨー角速度モード情報、ロール角速度モード情報およびピッチ角速度モード情報と、第2コネクタ接続情報と、ジャイロ・第2コントローラ識別情報とを含む。
【0119】
ヨー角速度データ、ロール角速度データおよびピッチ角速度データは、ジャイロセンサ104から出力されるヨー角速度信号、ロール角速度信号およびピッチ角速度信号をA/D変換して得られる、たとえば各14ビットのデータである。ヨー角速度モード情報、ロール角速度モード情報およびピッチ角速度モード情報は、それぞれ対応する角速度データのモードを示す各1ビットの情報であり、高角速度モードに対応する“0”と、低角速度モードに対応する“1”との間で変化する。
【0120】
第2コントローラ接続情報は、コネクタ106に第2コントローラ36が接続されているか否かを示す1ビットの情報であり、非接続を示す“0”と、接続を示す“1”との間で変化する。ジャイロ・第2コントローラ識別情報は、当該データがジャイロセンサユニット100から出力されたデータであるか第2コントローラ36から出力されたデータであるかを識別する1ビットの情報であり、ジャイロセンサユニット100からのデータであることを示す“1”と、第2コントローラ36からのデータであることを示す“0”との間で変化する。
【0121】
一方、第2コントローラ36用のデータは、左右方向(X軸方向)のスティック操作お
よび前後方向(Z軸方向)のスティック操作をそれぞれ示すXスティック操作データおよびYスティック操作データと、X軸方向の加速度、Y軸方向の加速度およびZ軸方向の加速度をそれぞれ示すX加速度データ、Y加速度データおよびZ加速度データと、ボタン操作データと、第2コネクタ接続情報と、ジャイロ・第2コントローラ識別情報とを含む。
【0122】
ジャイロセンサユニット100は通信部92に、図13(A)のフォーマットに従うジャイロ用データと、図13(B)のフォーマットに従う第2コントローラ用データとを、それぞれたとえば1/200秒周期で交互に出力する。したがって、片方のフォーマットに関しては、1/100秒周期で出力されることになるが、これはゲームの処理等で一般的な処理期間である1/60秒周期よりも十分短いことから、データを交互に出力してもゲーム処理で両方のデータを1フレームで同時に利用することができる。
【0123】
通信部92は、マイクロコンピュータ(マイコン)94、メモリ96、無線モジュール76およびアンテナ98を含む。マイコン94は、処理の際にメモリ96を記憶領域(作業領域やバッファ領域)として用いながら、無線モジュール76を制御して、取得したデータをゲーム装置12に送信したりゲーム装置12からのデータを受信したりする。
【0124】
ジャイロセンサユニット100から通信部92に出力されたデータは、マイコン94を経て一時的にメモリ96に格納される。第1コントローラ34内の操作部80、撮像情報演算部81および加速度センサ84から通信部92に出力されたデータもまた、メモリ96に一時的に格納される。マイコン94は、ゲーム装置12への送信タイミングが到来すると、メモリ96に格納されているデータをコントローラデータとして無線モジュール76へ出力する。コントローラデータには、図13(A)および図13(B)に示したジャイロ用データおよび/または第2コントローラ用データに加えて、第1コントローラ用データが含まれる。第1コントローラ用データには、加速度センサ84の出力に基づくX加速度データ、Y加速度データおよびZ加速度データと、撮像情報演算部81の出力に基づく位置座標データと、操作部80の出力に基づくボタン操作データとが含まれる。
【0125】
無線モジュール76は、Bluetooth(ブルートゥース)(登録商標)のような近距離無線通信技術を用いて、所定周波数の搬送波をコントローラデータで変調し、その微弱電波信号をアンテナ98から放射する。つまり、コントローラデータは、無線モジュール76で微弱電波信号に変調されて第1コントローラ34から送信される。微弱電波信号はゲーム装置12側のBluetooth通信ユニット74で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置12はコントローラデータを取得することができる。ゲーム装置12のCPU44は、コントローラ14から取得したコントローラデータに基づいてゲーム処理を行う。なお、第1コントローラ34とゲーム装置12との無線通信は、無線LANなど他の規格に従って実行されてもよい。
【0126】
このゲームシステム10では、ボタン操作だけでなく、コントローラ14自体を動かすことによっても、ゲームなどのアプリケーションに対する入力を行うことができる。ゲームをプレイする際には、たとえば図18に示すように、プレイヤは、その右手で第1コントローラ34(具体的にはハウジング78の把持部78a:図2)を持ち、その左手で第2コントローラ36を持つ。上述のように、第1コントローラ34には3軸方向の加速度を検出する加速度センサ84が内蔵され、第2コントローラ36にも同様の加速度センサ90が内蔵されている。第1コントローラ34および第2コントローラ36がそれぞれプレイヤによって動かされると、加速度センサ84および加速度センサ90によって、それぞれのコントローラ自身の動きを示す3軸方向の加速度値が検出される。第1コントローラ34にジャイロセンサユニット100が装着されている場合には、第1コントローラ34自身の動きを示す3軸周りの角速度値がさらに検出される。
【0127】
これらの検出値は、先述したコントローラデータの態様でゲーム装置12に送信される。ゲーム装置12(図10)では、コントローラ14からのコントローラデータは、入出力プロセッサ64aによってアンテナ52aおよび無線コントローラモジュール52を介して受信され、受信されたコントローラデータは、内部メインメモリ64eまたは外部メインメモリ46のバッファ領域に書き込まれる。CPU44は、内部メインメモリ64eまたは外部メインメモリ46のバッファ領域に格納されたコントローラデータを読み出し、このコントローラデータから検出値つまりコントローラ14によって検出された加速度および/または角速度の値を復元する。
【0128】
なお、角速度データには高角速度および低角速度の2つのモードがあるため、これら2つのモードにそれぞれ対応する2種類の角速度復元アルゴリズムが準備される。角速度データから角速度の値を復元するにあたっては、当該角速度データのモードに対応する角速度復元アルゴリズムが、角速度モード情報に基づいて選択される。
【0129】
CPU44はまた、このような復元処理と並行して、復元された加速度からコントローラ14の速度を計算する処理を実行してもよい。さらに並行して、計算された速度からコントローラ14の移動距離ないし位置を求めることもできる。一方、復元された角速度からは、コントローラ14の回転角が求まる。なお、加速度を積算して速度を求めたり、角速度を積算して回転角を求めたりする際の初期値(積分定数)は、たとえば、撮像情報演算部81のからの位置座標データに基づいて計算できる。位置座標データはまた、積算によって蓄積されていく誤差の修正にも用いることができる。
【0130】
ゲーム処理は、こうして求められた加速度、速度、移動距離、角速度および回転角などの変数に基づいて実行される。したがって、上記の処理は全てを行わなくともよく、ゲーム処理に必要な変数を適宜算出すればよい。なお、角速度や回転角も、原理的には加速度から計算し得るが、そのためには、ゲームプログラムに複雑なルーチンが必要で、CPU44にも重い処理負荷がかかる。ジャイロセンサユニット100を利用することで、プログラム開発が容易になり、CPU44の処理負荷も軽減される。
【0131】
ところで、ゲームには、第1コントローラ34しか利用しない1コントローラ用ゲームと、第1コントローラ34および第2コントローラ36を利用する2コントローラ用ゲームとがあり、そして各ゲームは、ジャイロ対応およびジャイロ非対応のいずれかに分類される。メインコントローラである第1コントローラ34は、どのゲームをプレイする場合にも必要である。また、拡張コントローラである第2コントローラ36は、2コントローラ用ゲームをプレイするときジャイロセンサユニット100を介して、または直に第1コントローラ34に接続され、1コントローラゲームをプレイするときには通常取り外される。
【0132】
一方、拡張センサないし拡張コントローラであるジャイロセンサユニット100は、ジャイロ非対応ゲームをプレイする場合には不要であるが、わざわざ取り外さなくてもよい。このため、ジャイロセンサユニット100は通常、第1コントローラ34に装着したままにされ、第1コントローラ34と一体で取り扱われる。第2コントローラ36は、コネクタ40の接続先がコネクタ42からコネクタ108に変わる点を除けば、ジャイロセンサユニット100が介在しない場合と同様に着脱される。
【0133】
図14には、ジャイロセンサユニット100のマイコン102による制御がモード毎に記載したテーブルが示される。ジャイロセンサユニット100に準備されているモードは、先述した“スタンバイ”、“バイパス”、“ジャイロ”および“ジャイロ&第2コントローラ”の4種類であり、マイコン102の制御対象は、“ジャイロ機能”、“ジャイロ電源”、“バススイッチ”、“拡張コネクタ”、“Attach1”および“I2Cアド
レス”の6項目に及ぶ。
【0134】
ジャイロ機能は、スタンバイおよびバイパスの各モードでは停止状態(No Acti
ve)に置かれる一方、ジャイロおよびジャイロ&第2コントローラの各モードでは起動状態(Active)に置かれる。ジャイロ電源つまりジャイロセンサ104への電源供給は、スタンバイおよびバイパスの各モードで停止(OFF)され、ジャイロおよびジャイロ&第2コントローラの各モードでは実行(ON)される。バススイッチSWは、スタンバイおよびバイパスの各モードで接続(Connect)され、ジャイロおよびジャイロ&第2コントローラの各モードでは切断(Disconnect)される。
【0135】
拡張コネクタつまりコネクタ108は、バイパスおよびジャイロ&第2コントローラの各モードで起動状態に置かれ、スタンバイおよびジャイロの各モードでは停止状態に置かれる。Attach1は、スタンバイモードで非接続状態を示す“Low”に制御され、バイパス、ジャイロおよびジャイロ&第2コントローラの各モードでは接続状態を示す“High”に制御される。I2Cアドレスに関しては、スタンバイおよびバイパスの各モードに限って、特別なアドレスが注目される。
【0136】
モード間の切り換えは、図15に示す要領で行われる。図15(A)にはアプリケーションがジャイロ対応である場合の切り換え処理が、図15(B)にはアプリケーションがジャイロ非対応である場合の切り換え処理が、それぞれ示される。図15(A)および図15(B)に共通して、すなわちジャイロ対応アプリかジャイロ非対応アプリかによらず、ジャイロセンサユニット100は、ジャイロセンサユニット100自身が第1コントローラ34に接続されるのに応答して起動し、初期モードであるスタンバイモードに入る。ここで第2コントローラ36が接続されると、スタンバイモードからバイパスモードに移行し、その後に第2コントローラ36が取り外されると、バイパスモードからスタンバイモードに復帰する。
【0137】
ここで、ジャイロ対応アプリは、必要に応じて角速度データを取得するべく、ジャイロセンサユニット100に対して呼び出しおよびリセットをかける。上述のように、本実施例では、通信によってゲーム機からコントローラを制御することが可能であるので、アプリケーションによってジャイロセンサユニット100を制御することが可能である。このため、図15(A)に示すように、ジャイロセンサユニット100は、スタンバイモードでアプリケーションから呼び出しを受けるとジャイロモードに移行し、ジャイロモードでアプリケーションからリセットを受けるとスタンバイモードに復帰する。ジャイロセンサユニット100はまた、ジャイロモードで第2コントローラ36が接続されるとジャイロ&第2コントローラモードに移行し、ジャイロ&第2コントローラモードで第2コントローラ36が取り外されるとジャイロモードに復帰する。ジャイロセンサユニット100はさらにまた、ジャイロ&第2コントローラモードでアプリケーションからリセットを受けるとバイパスモードに移行し、バイパスモードでアプリケーションから呼び出しを受けるとジャイロ&第2コントローラモードに復帰する。
【0138】
一方、ジャイロ非対応アプリは、ジャイロセンサユニット100に対して呼び出しやリセットといった働きかけを行う機能がない。このため、ジャイロ非対応アプリを実行する際には、図15(B)に示すように、ジャイロセンサユニット100のモードは、スタンバイモードおよびバイパスモードの間で切り換わるに止まる。
【0139】
ジャイロセンサユニット100のこのようなモード切り替えは、マイコン102が、図14に示したテーブルを参照して、図16および図17のフローチャートに示す処理を実行することにより実現される。なお、このフローチャートに対応するプログラムと、図14のテーブルとは、不揮発性のメモリ102c(図12)に格納されている。
【0140】
ユーザがジャイロセンサユニット100を第1コントローラ34に装着すると、マイコン102は、第1コントローラ34から電源の供給を受けて起動し、図16および図17のフローチャートに示す処理を実行する。この処理は、ジャイロセンサユニット100が第1コントローラ34から取り外されるまでの期間に渡って実行される。
【0141】
図16を参照して、起動が完了すると、マイコン102は、最初、ステップS1でスタンバイモードへのモード更新を行う。具体的には、マイコン102は、メモリ102c内のテーブル(図14)に記述された“スタンバイ”の規定に従って、ジャイロ機能を休止させ、ジャイロセンサへ104の電源供給を停止し、バススイッチSWを接続し、コネクタ108を休止させ、Attach1を“Low”に制御し、そしてI2Cバスの特別なアドレスへの注目を開始する。こうしてジャイロセンサユニット100がスタンバイモードに移行すると、処理はステップS3およびS5のループに入る。
【0142】
すなわち、マイコン102は、Attach2が“1”であるか否かをステップS3で判別し、ここでNOであれば、アプリケーションから呼び出しがかかったか否かをステップS5でさらに判別する。ここでもNOであれば、処理はステップS3に戻る。なお、このモードにおいては、ジャイロを使用しないことになるので、第1コントローラ34へは操作データが何も出力されないか、操作データが無い旨のみが出力されることになる。第1コントローラ34にジャイロセンサユニット100を介して第2コントローラ36が接続されるのに応じてAttach2が“0”から“1”に変化すると、ステップS3の判別結果がYESとなって、処理はステップS17に移る。一方、アプリケーションからジャイロセンサユニット100に呼び出しがかかると、ステップS5の判別結果がYESとなって、処理はステップS7に移る。
【0143】
ステップS7では、ジャイロモードへのモード更新が行われる。具体的には、マイコン102は、テーブル(図14)に記述された“ジャイロ”の規定に従って、ジャイロ機能を起動させ、ジャイロセンサへの電源供給を開始し、バススイッチSWを切断し、コネクタ108を停止させ、Attach1を“High”に制御する。こうしてジャイロセンサユニット100がジャイロモードに移行すると、処理はステップS9〜S13のループに入る。
【0144】
ステップS9ではAttach2が“1”であるか否かが、ステップS11ではアプリケーションからリセットがかかったか否かが、そしてステップS13では現時刻がデータ出力タイミングに該当するか否かが、それぞれ判別される。Attach2が“0”から“1”に変化すると、ステップS9の判別結果がYESとなり、処理はステップS23に移る。アプリケーションからジャイロセンサ100にリセットがかかると、ステップS11の判別結果がYESとなって、処理はステップS1に戻る。前回のデータ出力から既定時間が経過すると、ステップS13の判別結果がYESとなり、処理はステップS15に移る。ステップS15では、マイコン102は、ジャイロ用データ(図13(A))を第1コントローラ34側に出力する。出力後、処理はステップS9〜S13のループに戻る。
【0145】
図17を参照して、ステップS17では、バイパスモードへのモード更新が行われる。具体的には、マイコン102は、メモリ102c内のテーブル(図14)に記述された“バイパス”の規定に従って、ジャイロセンサ104への電源供給を停止し、ジャイロ機能を停止させ、バススイッチSWを接続し、コネクタ108を起動させ、そしてAttach1を“High”とする。I2Cバスの特別なアドレスへの注目は停止される。こうしてジャイロセンサユニット100がバイパスモードに移行すると、処理はステップS19およびS21のループに入る。
【0146】
ステップS19ではAttach2が“0”であるか否かが、ステップS21ではアプリケーションから呼び出しがかかったか否かが、それぞれ判別される。Attach2が“1”から“0”に変化すると、ステップS19の判別結果がYESとなり、処理はステップS1に戻る。アプリケーションからジャイロセンサユニット100に呼び出しがかかると、ステップS21の判別結果がYESとなって、処理はステップS23に移る。ここで、バイパスモードでは、第2コントローラ36から第2コントローラ用データ(図13(b))が直接第1コントローラ34へ出力されるので、マイコン102からは何も出力されないことになる。
【0147】
ステップS23では、ジャイロ&第2コントローラモードへのモード更新が行われる。具体的には、マイコン102は、メモリ102c内のテーブル(図14)に記述された“ジャイロ&第2コントローラ”の規定に従って、ジャイロセンサ104への電源供給を開始し、ジャイロ機能を起動させ、バススイッチSWを切断し、コネクタ108を起動させ、そしてAttach1を“High”に制御する。I2Cバスの特別なアドレスへの注目は停止される。こうしてジャイロセンサユニット100がジャイロ&第2コントローラモードに移行すると、処理はステップS25〜S29のループに入る。
【0148】
ステップS25ではAttach2が“0”であるか否かが、ステップS27ではアプリケーションからリセットがかかったか否かが、そしてステップS29では現時刻がデータ出力タイミングに該当するか否かが、それぞれ判別される。Attach2が“1”から“0”に変化すると、ステップS25の判別結果がYESとなり、処理はステップS7に戻る。アプリケーションからジャイロセンサ100にリセットがかかると、ステップS27の判別結果がYESとなって、処理はステップS17に戻る。前回のデータ出力から既定時間が経過すると、ステップS29の判別結果がYESとなり、処理はステップS31に移る。ステップS31では、マイコン102は、ジャイロ用データ(図13(A))および第2コントローラ用データ(図13(B))を交互に第1コントローラ34側に出力する。出力後、処理はステップS25〜S29のループに戻る。
【0149】
以上から明らかなように、この実施例では、ジャイロセンサユニット100は、ハウジング110、コネクタ106および108ならびにジャイロセンサ104を備える。コネクタ106は、第1コントローラ34に設けられたコネクタ42に物理的および電気的に接続可能な第1の形状を有する。このため、コネクタ106を第1コントローラ34のコネクタ42に接続することで、ジャイロセンサユニット100は、これら2つのコネクタ42および106を介して第1コントローラ34に物理的および電気的に接続され、ジャイロセンサユニット100を第1コントローラ34と一体で用いることが可能となる。すなわち、第1コントローラ34にジャイロセンサ104が追加される結果となる。
【0150】
一方、コネクタ108は、第1の形状を有するコネクタが接続可能な第2の形状を有する。このため、従来コネクタ42に接続されていた他の装置のコネクタ、たとえば第2コントローラ36のコネクタ40は、コネクタ108にも接続可能である。したがって、コネクタ42にコネクタ106が接続された状態で、コネクタ40をコネクタ108に接続すれば、第2コントローラ36は、ジャイロセンサユニット100を介して第1コントローラ34に接続される結果となる。
【0151】
これにより、従来第1コントローラ34に接続されていた第2コントローラ36などの他の装置をそのまま使用しながら、第1コントローラ34にジャイロセンサ104を追加することができる。角速度を検出する手段としてのジャイロセンサが手首付近に位置するので、角速度は多くの場合に回転軸の近くで検出されることとなり、角速度が検出しやすく、加速度センサは手首よりも前方に位置するので、遠心力の検出が容易になる。つまり
、操作装置全体からみたとき、加速度センサが前方にジャイロセンサが後方にあるので、プレイヤの手の動きをより正確に検出することが可能な操作システムを提供することができる。角速度を検出するジャイロセンサ104を追加したことで、個々のゲームプログラムに角速度ないし回転角を計算するためのルーチンを組み込む必要がなくなり、開発者の負担が軽減される。また、ゲーム装置12のCPU44への処理負荷も軽減される。
【0152】
また、この実施例では、第1コントローラ34は、片手で把持可能な太さを有する長手形状のハウジング78を備える。ハウジング78の上面には、片手の親指で操作可能な位置に第1操作部(操作ボタン80a,80dなど)が設けられ、ハウジング78の下面には、第1操作部に片手の親指を置いたとき当該片手の人差し指で操作可能な位置に第2操作部(操作ボタン80h)が設けられる。ハウジング78にはまた、第1操作部に親指を置き第2操作部に人差し指を置いたとき片手の手のひらとその他の指とによって把持可能な位置に把持部78aが形成される。したがって、第1操作部および第2操作部はハウジング78の先端側に、把持部78aはハウジング78の後端側に、それぞれ位置しており、ユーザは、ハウジング78を片手で把持するにあたって、その上面の第1操作部に親指を置き、その下面の第2操作部に人差し指を置き、そしてその把持部78aを手のひらと他の指とで把持することになる。
【0153】
また、第1コントローラ34は、加速度センサ84をさらに備え、ハウジング78にはさらに、把持部78aとは反対側の端部に撮像情報演算部81が、把持部78a側の端部にはコネクタ42が、それぞれ設けられる。一方、ジャイロセンサユニット100は、ハウジング110と、コネクタ42に接続可能なコネクタ106と、ジャイロセンサ104とを備える。したがって、ユーザがコネクタ106をコネクタ42に接続することで、ジャイロセンサユニット100は、第1コントローラ34に接続される。こうして第1コントローラ34に接続されたジャイロセンサユニット100は、第1コントローラ34の後端側すなわち第1コントローラ34を把持する手の手首付近に位置する(図18)。加速度センサ84およびジャイロセンサ104から出力される加速度値および角速度値は、第1コントローラ34およびジャイロセンサユニット100の加速度および角速度をそれぞれ示す。
【0154】
このように、ジャイロセンサユニット100を第1コントローラ34の後端側に配置したことで、この一体化されたコントローラの重心の位置は後方に移動して手のひらの位置に近づく。このため、第1コントローラ34にジャイロセンサユニット100を接続したことによる遠心力の増大は、ジャイロセンサユニット100を第1コントローラ34の先端側に配置した場合と比べて少なくて済む。また、ジャイロセンサユニット100に働く遠心力は、これを第1コントローラ34に押し付けるように作用するので、ジャイロセンサユニット100と第1コントローラ34とがしっかりと固定される。また、ジャイロセンサ104が手首付近に位置するので、角速度は多くの場合に回転軸の近くで検出されることとなり、角速度の検出精度が高まる。一方、加速度センサ84は手首よりも前方に位置するので、回転に起因する加速度の検出が容易になる。
【0155】
また、この実施例では、第1コントローラ34はストラップ装着部(孔82c)をさらに備え、ここにストラップ24が装着される。ジャイロセンサユニット100は、蓋116をさらに備え、この蓋116によってコネクタ108が塞がれる。蓋116は、コネクタ108から取り外された状態でも、ジャイロセンサユニット100に係留される。第2コントローラ36は、コネクタ40近傍に設けられるフック144をさらに備え、このフック144には、第2コントローラ36を第1コントローラ34に接続した場合は第1コントローラ34に装着されたストラップ24が、第2コントローラ36をジャイロセンサユニット100に接続した場合はジャイロセンサユニット100に係留された蓋116が、それぞれ掛け止めされる。
【0156】
したがって、ストラップ24を当該第1コントローラ34を把持する手の手首に掛けることができる。また、第1コントローラ34および第2コントローラ36の間にジャイロセンサユニット100を追加する場合には、従来ストラップ24を掛け止めしていたフック144に、コネクタ108から取り外されてジャイロセンサユニット100に係留されている蓋116を掛け止めすることで、コネクタ40がコネクタ108から外れ難くなる。これにより、従来第1コントローラ34に接続されていた第2コントローラ36をそのまま使用しながら、第1コントローラ34にジャイロセンサユニット100を追加することができる。
【0157】
なお、この実施例では、ジャイロセンサユニット100と第2コントローラ36との間はケーブル38で接続されたが、無線通信により接続されてもよい。一例を図19に示す。図19の実施例では、ジャイロセンサユニット100は、先述のコネクタ108に代えて無線モジュール108aおよびアンテナ108bを備え、第2コントローラ36は、先述のコネクタ40に代えて無線モジュール40aおよびアンテナ40bを備える。無線モジュール40aおよび108aは、Bluetooth(登録商標)や無線LAN、赤外線通信などの近距離無線通信技術を用いて、アンテナ40bおよび108bを通してデータを送信および受信する。図19の実施例においては、第1コントローラ36は従来のままで、ジャイロセンサユニット100と、無線を用いた第2コントローラ36を追加することで、第2コントローラ36と第1コントローラ34を完全に独立して動かせるので、より自由度の高い操作を行うことができる。また、ジャイロセンサユニット100は、ジャイロを追加できるだけでなく、無線によりより多様な拡張コントローラを接続可能なアダプタとしても機能することになる。
【0158】
以上では、一例として、ゲームシステム10を用いて説明したが、この発明は、操作装置自体の動きに基づいて、ゲームなどのアプリケーションに従う処理を実行する、コンピュータシステムに適用できる。
【図面の簡単な説明】
【0159】
【図1】この発明の一実施例の構成を示すブロック図である。
【図2】図1実施例に適用される第1コントローラの外観を示す図解図であり、図2(A)は第1コントローラを上面後方から見た斜視図であり、図2(B)は第1コントローラを下面前方から見た斜視図である。
【図3】図1実施例に適用される第2コントローラの本体の外観を示す図解図であり、図3(A)は第2コントローラ本体を上面後方から見た斜視図であり、図3(B)は第1コントローラ本体を下面前方から見た斜視図である。
【図4】第2コントローラのコネクタの外観を示す図解図である。
【図5】第1コントローラに第2コントローラのコネクタを接続した状態で、第1コントローラに装着されたストラップのひもをコネクタのフックに掛け止めた様子を示す図解図である。
【図6】図1実施例に適用されるジャイロセンサユニットの外観を示す図解図であり、図6(A)はジャイロセンサユニットを上面前方から見た斜視図であり、図6(B)はジャイロセンサユニットを下面後方から見た斜視図である。
【図7】ジャイロセンサユニットの構成を示す図解図である。
【図8】第1コントローラにジャイロセンサユニットを接続した状態を示す図解図である。
【図9】第1コントローラにジャイロセンサユニット介して第2コントローラを接続した状態を示す図解図である。
【図10】図1実施例の電気的な構成を示すブロック図である。
【図11】図1実施例に適用されるコントローラ全体の電気的な構成を示すブロック図である。
【図12】図11のコントローラにおいて、第1コントローラおよび第2コントローラの間に介在するジャイロセンサユニットの電気的な構成を示すブロック図である。
【図13】ジャイロセンサユニットが取り扱うデータのフォーマットを示す図解図であり、図13(A)はジャイロ用データのフォーマットを示す図解図であり、図13(B)は第2コントローラ用データのフォーマットを示す図解図である。
【図14】ジャイロセンサユニットのマイコンによる制御をモード毎に記載したテーブルを示す図解図である。
【図15】ジャイロセンサユニットに適用されるモード切り替えを示す図解図であり、図15(A)はアプリケーションがジャイロ対応型である場合のモード切り替えを示す図解図であり、図15(B)はアプリケーションがジャイロ非対応型である場合のモード切り替えを示す図解図である。
【図16】ジャイロセンサユニットのマイコン動作の一部を示すフロー図である。
【図17】ジャイロセンサユニットのマイコン動作の他の一部を示すフロー図である。
【図18】プレイヤがコントローラを操作する様子を示す図解図である。
【図19】他の実施例に適用されるコントローラ全体の電気的な構成を示すブロック図である。
【符号の説明】
【0160】
10 …ゲームシステム
12 …ゲーム装置
14 …コントローラ
34 …第1コントローラ
36 …第2コントローラ
40,42,106,108 …コネクタ
80,88 …操作部
84,90 …加速度センサ
92 …通信部
94,102 …マイコン
100 …ジャイロセンサユニット
104 …ジャイロセンサ
【技術分野】
【0001】
この発明は、拡張操作装置に関し、特にたとえば、操作装置にコネクタを介して接続されることによって、当該操作装置と一体で用いられる、拡張操作装置に関する。
【背景技術】
【0002】
この種の装置の一例が、非特許文献1に開示されている。この背景技術では、「Wiiリモコン」(Wii:登録商標)は、自身の傾きや動きの変化を検出する3軸のモーションセンサを備えている。「ヌンチャク」もまた、3軸のモーションセンサを備えている。メインのコントローラであるWiiリモコンには拡張コネクタが設けられており、拡張コントローラであるヌンチャクは、この拡張コネクタを介してWiiリモコンに接続される。
【0003】
プレイヤは、あるゲームでは、Wiiリモコンを片方の手で把持して、Wiiリモコンを動かすことにより操作を行う。別のゲームでは、Wiiリモコンを片方の手で、ヌンチャクをもう片方の手でそれぞれ把持して、Wiiリモコンおよびヌンチャクをそれぞれ動かすことにより操作を行う。
【非特許文献1】http://www.nintendo.co.jp/wii/controllers/index.html
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかし、Wiiリモコンやヌンチャクには、モーションセンサとして加速度センサしか搭載されていないため、回転を伴う動きの検出が容易でない。具体的には、たとえばテニスゲームにおいてスライスショットを実現しようとすると、Wiiリモコンの軸周りの角速度ないし回転角を高い精度で検出する必要がある。これらの変数は、加速度センサによって検出された3軸方向の加速度から計算可能ではあるが、3軸方向の加速度の各々が重力による加速度成分も含むため、角速度ないし回転角を高精度で算出するには、複雑な計算が必要となる。
【0005】
したがって、個々のゲームプログラムにこのような計算のためのルーチンを組み込む必要があり、開発者にとって負担が大きい。また、このような計算を繰り返し実行することで、ゲーム装置のCPUに大きな処理負荷がかかる。そこで、角速度を検出するジャイロセンサを、拡張コネクタを介してWiiリモコンに接続することが考えられる。
【0006】
しかし、ジャイロセンサを接続した状態では、ヌンチャクの使用が不可能となり、Wiiリモコンとヌンチャクとを使うゲームをプレイできない。
【0007】
それゆえに、この発明の主たる目的は、新規な、拡張操作装置を提供することである。
【0008】
この発明の他の目的は、従来操作装置に接続されていた他の装置をそのまま使用しながら、操作装置にセンサを追加できる、拡張操作装置を提供することである。
【課題を解決するための手段】
【0009】
この発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、この発明の理解を助けるために後述する実施形態との対応関係を示したものであって、この発明を何ら限定するものではない。
【0010】
第1の発明は、操作装置にコネクタを介して接続されることによって、当該操作装置と
一体で用いられる拡張操作装置であって、ハウジングと、操作装置に設けられたコネクタに物理的および電気的に接続可能な第1の形状を有する第1のコネクタと、第1の形状を有するコネクタが接続可能な第2の形状を有する第2のコネクタと、センサとを備える。
【0011】
第1の発明では、拡張操作装置(100)は、ハウジング(110)、第1のコネクタ(106)、第2のコネクタ(108)およびセンサ(104)を備える。第1のコネクタは、操作装置に設けられたコネクタ(42)に物理的および電気的に接続可能な第1の形状を有する。このため、第1のコネクタを操作装置のコネクタに接続することで、拡張操作装置は、これら2つのコネクタを介して操作装置に物理的および電気的に接続され、したがって、拡張操作装置を操作装置と一体で用いることが可能となって、操作装置にセンサが追加される結果となる。
【0012】
一方、第2のコネクタは、第1の形状を有するコネクタが接続可能な第2の形状を有する。このため、従来操作装置のコネクタに接続されていた他の装置のコネクタ(たとえば第2コントローラ36のコネクタ40)は、第2のコネクタにも接続可能である。したがって、操作装置のコネクタに第1コネクタが接続された状態で、他の装置のコネクタを第2のコネクタに接続すれば、他の装置は、拡張操作装置を介して操作装置に接続される結果となる。
【0013】
第1の発明によれば、従来操作装置に接続されていた他の装置をそのまま使用しながら、操作装置にセンサを追加することができる。
【0014】
なお、センサは、好ましい実施例ではジャイロセンサ(角速度センサ)であるが、たとえば加速度センサ、速度センサ、変位センサ、回転角センサなど、他のモーションセンサでもよい。モーションセンサ以外にも、傾斜センサ、イメージセンサ、光センサ、圧力センサ、磁気センサ、温度センサなどがあり、いずれのセンサを追加する場合でも、センサの検出対象を利用した操作が可能となる。
【0015】
また、実施例のジャイロセンサは3軸センサであるが、2軸センサでも、1軸センサでもよい。他のモーションセンサの場合も、3軸センサが好ましいが、2軸センサまたは1軸センサでもよい。さらに、実施例の3軸ジャイロセンサは、2軸センサおよび1軸センサの2チップで構成されるが、3軸1チップで構成されても、1軸3チップで構成されてもよい。
【0016】
第2の発明は、第1の発明に従属する拡張操作装置であって、センサは、自身の動きを検出するモーションセンサである。
【0017】
第2の発明では、モーションセンサによって、センサ自身ひいては拡張操作装置およびこれと一体化された操作装置の動きが検出される。
【0018】
第2の発明によれば、モーションセンサが追加されることで、操作装置自体の動きによる操作が可能になる。
【0019】
第3の発明は、第2の発明に従属する拡張操作装置であって、モーションセンサは、3軸のジャイロセンサである。
【0020】
第3の発明では、3軸のジャイロセンサによって、3軸周りの角速度が検出される。なお、好ましい実施例では、操作装置が3軸の加速度センサを備えており、これにより検出される3軸方向の加速度から3軸周りの角速度を求めることは原理的には可能であるが、煩雑な計算を要する。3軸のジャイロセンサが追加されたことで、このような計算は不要
となる。
【0021】
第3の発明によれば、操作装置を利用するアプリケーションの開発が容易となり、また、操作装置からの操作データを処理するマイコンの処理負荷が軽減される。
【0022】
第4の発明は、第2の発明に従属する拡張操作装置であって、操作装置のコネクタが設けられている面には、少なくとも1つの孔部が設けられ、当該孔部に嵌合可能な突起部材を更に備える。
【0023】
第4の発明では、操作装置のコネクタが設けられている面に、少なくとも1つの孔部(82a、82b)が設けられ、拡張操作装置は、当該孔部に嵌合可能な突起部材(112Fa、112Fb)を更に備える。突起部材が孔部に嵌合されることで、操作中であっても拡張操作装置が操作装置にしっかり固定された状態を保つことができる。
【0024】
第5の発明は、第4の発明に従属する拡張操作装置であって、突起部材は開閉可能な爪状部材であって、当該開閉をロックする突起ロック機構を更に備える。
【0025】
第5の発明では、開閉可能な爪状部材が孔部に嵌合される。爪状部材の開閉は、突起ロック機構(114)によってロックされる。
【0026】
第5の発明によれば、爪状部材が孔部に嵌合した状態でロックされるので、よりしっかり固定することができる。
【0027】
第6の発明は、第2の発明に従属する拡張操作装置であって、ハウジングの、第1のコネクタ側の面から底面にかけて凹部をさらに備える。
【0028】
好ましい実施例では、操作装置は、ハウジング(78)と、このハウジングの、コネクタ側の面から底面にかけて、ストラップ(24)の通すための孔(82c)とを備えており、第6の発明では、拡張操作装置のハウジングの、第1のコネクタ側の面から底面にかけて凹部(110a)があるので、拡張操作装置を操作装置に接続した状態で、ストラップ用の孔が凹部から露見する。
【0029】
第6の発明によれば、拡張操作装置を操作装置に接続した状態でも、ストラップの付け外しが行える。
【0030】
第7の発明は、第2の発明に従属する拡張操作装置であって、第2のコネクタを塞ぐことができ、外した際にもハウジングに係留される蓋をさらに備える。
【0031】
第7の発明では、第2のコネクタ塞ぐための蓋(116)は、第2のコネクタから外した際にも、拡張操作装置のハウジングに係留される。
【0032】
第7の発明によれば、蓋の紛失を防ぐことができる。
【0033】
第8の発明は、第2の発明に従属する拡張操作装置であって、第2のコネクタを通じて外部の装置からデータを取得し、当該外部の装置からのデータとモーションセンサからのデータとを第1のコネクタを通じて操作装置へ出力する。
【0034】
第8の発明では、外部の装置(36)からのデータは、第2のコネクタを通じて拡張操作装置に取り込まれた後、拡張操作装置内のモーションセンサからのデータと同様に、第1のコネクタを通じて操作装置へと出力される。
【0035】
第8の発明によれば、外部の装置からのデータは、拡張操作装置を介して操作装置に出力されるので、モーションセンサを追加しても、外部の装置をそのまま利用できる。
【0036】
第9の発明は、第8の発明に従属する拡張操作装置であって、センサからのデータを含む出力データを制御する出力データ制御手段と、第2のコネクタ側の配線を第1のコネクタ側へ直接接続するためのバススイッチと、バススイッチの接続のオン/オフを切り替えるバススイッチ制御手段とをさらに備え、バススイッチがオフのときには第2のコネクタ側の配線が出力データ制御手段を介して第1のコネクタ側に接続される。
【0037】
第9の発明では、センサからのデータを含む出力データは、出力データ制御手段(102)によって制御される。第2のコネクタ側の配線は、バススイッチ(SW)を介して第1のコネクタ側へ直接接続可能であり、このバススイッチによる接続のオン/オフは、バススイッチ制御手段(102)によって切り替えられる。バススイッチがオフのときには、第2のコネクタ側の配線は、出力データ制御手段を介して第1のコネクタ側に接続される。
【0038】
第9の発明によれば、バススイッチがオンされると、第2のコネクタに接続された外部の装置からのデータは、出力データ制御手段の制御を受けることなく、第1のコネクタに接続された操作装置に出力されるようになる。一方、バススイッチがオフされると、外部の装置からのデータは、センサからのデータと共に出力データ制御手段の制御下に置かれるので、これら2種類のデータを出力する際の競合を回避できる。
【0039】
なお、好ましい実施例では、出力データ制御手段は、アプリケーションがジャイロセンサからのデータを利用しないときバススイッチをオンし、ジャイロセンサからのデータを利用するときバススイッチをオフする。出力データ制御手段は、外部の装置からのデータをセンサからのデータと交互に出力する。
【0040】
第10の発明は、第9の発明に従属する拡張操作装置であって、センサへの電源供給のオン/オフを切り替えるセンサ電源管理手段をさらに備え、バススイッチ制御手段は、センサの電源がオフにされているときに、バススイッチの接続をオンにする。
【0041】
第10の発明では、センサ電源管理手段(102)がセンサへの電源供給のオン/オフを切り替える。バススイッチの接続は、センサの電源がオフにされているときに、バススイッチ制御手段によってオンにされる。したがって、センサの電源をオフにすると、バススイッチの接続がオンになり、外部の装置からのデータは、拡張操作装置をスルーして操作装置に到達するようになる。
【0042】
第10の発明によれば、センサからのデータを利用しないときにセンサの電源をオフすることで、消費電力を抑制できる。
【0043】
第11の発明は、第10の発明に従属する拡張操作装置であって、第2のコネクタに対して、さらに所定の装置が接続されているか否かを検出する接続検出手段をさらに備え、出力データ制御手段は、バススイッチの接続がオフであって、かつ第2のコネクタにさらに所定の装置が接続されているとき、当該所定の装置から入力される第1のデータと、センサの出力に基づいた第2のデータとを第1のコネクタから交互に出力させる。
【0044】
第11の発明では、第2のコネクタに所定の装置(36)が接続されているか否かが、接続検出手段(102)によって検出される。バススイッチの接続がオフであって、かつ第2のコネクタに所定の装置が接続されていれば、出力データ制御手段の制御の結果、当
該所定の装置から入力される第1のデータと、センサの出力に基づいた第2のデータとが第1のコネクタから交互に出力される(S31)。
【0045】
第11の発明によれば、第1のデータおよび第2のデータの間の競合を防止できる。
【0046】
第12の発明は、第3の発明に従属する拡張操作装置であって、ジャイロセンサの各軸の検出する角速度の大きさを判定する角速度判定手段と、角速度の大きさが大きい場合に、精度の低い第1の角速度データを出力させ、角速度の大きさが小さい場合には、第1の角速度データと同じデータ量であって精度が高い第2の角速度データを出力させる、角速度データ出力制御手段とをさらに備える。
【0047】
第12の発明では、ジャイロセンサの各軸の検出する角速度の大きさが、角速度判定手段(102)によって判定される。角速度データ出力制御手段(102)は、角速度の大きさが大きいと判定された場合に、精度の低い第1の角速度データを出力させ、角速度の大きさが小さいと判定された場合には、第1の角速度データと同じデータ量であって精度が高い第2の角速度データを出力させる。
【0048】
第12の発明によれば、角速度が大きいときには角速度データの精度を落とし、角速度が小さいときは角速度データの精度を上げることで、角速度データのデータ量を増やすことなく、角速度の検出精度の向上と、角速度の検出範囲の拡大とが共に図れる。
【発明の効果】
【0049】
この発明によれば、従来操作装置に接続されていた他の装置をそのまま使用しながら、操作装置にセンサを追加することができる。
【0050】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【0051】
図1を参照して、この発明の一実施例であるゲームシステム10は、ゲーム装置12およびコントローラ14を含む。ゲーム装置12は据置型ゲーム装置である。コントローラ14は、ユーザないしプレイヤの入力装置ないし操作装置である。ゲーム装置12とコントローラ14とは無線によって接続される。
【0052】
ゲーム装置12は、略直方体のハウジング16を含み、ハウジング16の前面にはディスクスロット18およびメモリカードスロットカバー20が設けられる。ディスクスロット18から、ゲームプログラムおよびデータを記憶した情報記憶媒体の一例である光ディスク66(図10)が挿入されて、ハウジング16内のディスクドライブ54(図10)に装着される。メモリカードスロットカバー20の内側には外部メモリカード用コネクタ62(図10)が設けられており、外部メモリカード(図示せず)が挿入される。外部メモリカードは、光ディスク66(図10)から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム10を利用してプレイされたゲームのゲームデータ(結果データまたは途中データ)を保存(セーブ)しておいたりするために利用される。また、上記ゲームデータの保存は、外部メモリカードに代えて、たとえばフラッシュメモリ等の内部メモリに対して行うようにしてもよい。
【0053】
ゲーム装置12のハウジング16の後面には、AVケーブルコネクタ(図示せず)が設けられ、当該コネクタを用いて、ゲーム装置12はAVケーブル28を介してモニタ(ディスプレイ)30に接続される。このモニタ30は典型的にはカラーテレビジョン受像機であり、AVケーブル28は、ゲーム装置12からの映像信号をカラーテレビのビデオ入
力端子に入力し、音声信号を音声入力端子に入力する。したがって、カラーテレビ(モニタ)30の画面上にたとえば3Dビデオゲームのゲーム画像が表示され、内蔵されるスピーカ32からゲーム音楽や効果音などのステレオゲーム音声が出力される。
【0054】
また、モニタ30の周辺(この実施例では、モニタ30の上側)には、2つの赤外LED(マーカ)22aおよび22bを備えるマーカ部22が設けられる。マーカ22aおよび22bは、それぞれモニタ30の前方に向けて赤外光を出力する。
【0055】
なお、ゲーム装置12の電源は、一般的なACアダプタ(図示せず)によって与えられる。ACアダプタは家庭用の標準的な壁ソケットに接続され、家庭用電源を、ゲーム装置12を駆動するのに適した低いDC電圧信号に変換する。他の実施例では、電源としてバッテリが用いられてもよい。マーカ部22は、図示しない電源線を通してゲーム装置12に接続されており、ゲーム装置12から電源の供給を受ける。
【0056】
コントローラ14は、詳細は後述されるが、それぞれが片手で把持可能な第1コントローラ34および第2コントローラ36と、第1コントローラ34に装着されるジャイロセンサユニット100とを含む。第1コントローラ34の後端面にはコネクタ42(図2(A)、図11)が設けられ、第2コントローラ36の後端から延びるケーブル38の先端にはコネクタ40(図4(A)、図11)が設けられ、そしてジャイロセンサユニット100の先端面および後端面にはコネクタ106および108(図6(A)、図6(B)、図7および図11)がそれぞれ設けられる。ジャイロセンサユニット100の先端面側のコネクタ106は第1コントローラ34のコネクタ42と接続可能であり、第2コントローラ36のコネクタ40は第1コントローラ34のコネクタ42またはジャイロセンサユニット100の後端面側のコネクタ108と接続可能である。
【0057】
コネクタ106をコネクタ42に接続することで、ジャイロセンサユニット100は、第1コントローラ34と物理的および電気的に結合される。こうして第1コントローラ34に装着(一体化)されたジャイロセンサユニット100からは、第1コントローラ34の角速度を示す角速度データが出力される。
【0058】
こうして第1コントローラ34にジャイロセンサユニット100が装着された場合、第2コントローラ36のコネクタ40は、ジャイロセンサユニット100の後端面側のコネクタ108に接続される。すなわち、コネクタ42は、コネクタ106とコネクタ40の両者を選択的に接続可能な構造であって、コネクタ40は、コネクタ42とコネクタ108の両者に選択的に接続可能な構造である。したがって、ジャイロセンサユニット100に設けられるコネクタ106とコネクタ108とは、同一のハウジングに設けられるため実際は接続できないが、コネクタの形状としては互いに接続可能な形状をしていることになる。第2コントローラ36の入力データは、ケーブル38およびジャイロセンサユニット100を介して第1コントローラ34に与えられる。第1コントローラ34は、第1コントローラ34自身の入力データと、ジャイロセンサユニット100からの角速度データと、第2コントローラ36の入力データとを含むコントローラデータをゲーム装置12に送信する。
【0059】
なお、コネクタ40をコネクタ42に接続した場合には、第2コントローラ36の操作データないし入力データはケーブル38を介して第1コントローラ34に与えられ、第1コントローラ34は、第1コントローラ34自身の入力データと第2コントローラ36の入力データとを含むコントローラデータをゲーム装置12に送信する。
【0060】
このとき、第1コントローラ34の入力データと、第2コントローラ36の入力データを送信するシステムにおいて、一度に送信するデータ量を追加することができないように
設計されている場合もあるが、ジャイロユニット100を追加した場合に、ジャイロユニット100からの角速度データと、第2コントローラ36からの入力データとを交互に第1コントローラ36へ出力することによって、両者のデータを送信することができる。このデータ制御はジャイロユニット100で行うことができるので、第1コントローラ34や第2コントローラ36には何ら設計の変更をする必要がない。
【0061】
このように、ジャイロセンサユニット100は、既存の第1コントローラ34および第2コントローラ36をそのまま利用しながら、第1コントローラ34にジャイロ機能を付加するための拡張ユニットである。
【0062】
このゲームシステム10において、ゲーム(または他のアプリケーション)をプレイするために、ユーザはまずゲーム装置12の電源をオンし、次いで、ユーザはビデオゲーム(もしくは実行したいと思う他のアプリケーション)を記憶している適宜の光ディスク66を選択し、その光ディスク66をゲーム装置12のディスクスロット18からディスクドライブ54にローディングする。これに応じて、ゲーム装置12がその光ディスク66に記憶されているソフトウェアに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。ユーザはゲーム装置12に入力を与えるためにコントローラ14を操作する。
【0063】
図2には第1コントローラ34の外観の一例が示される。図2(A)は、第1コントローラ34を上面後方から見た斜視図であり、図2(B)は、第1コントローラ34を下面前方から見た斜視図である。
【0064】
第1コントローラ34は、たとえばプラスチック成型によって形成されたハウジング78を有している。ハウジング78は、その前後方向(Z軸方向)を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。一例として、ハウジング78は人間の掌とほぼ同じ長さまたは幅を持つ大きさをしている。プレイヤは、第1コントローラ34を用いて、それに設けられたボタンを押下することと、第1コントローラ34自体の位置や向きを変えることとによって、ゲーム操作を行うことができる。
【0065】
ハウジング78には、複数の操作ボタンが設けられる。すなわち、ハウジング78の上面には、十字キー80a、Xボタン80b、Yボタン80c、Aボタン80d、セレクトスイッチ80e、メニュースイッチ80f、およびスタートスイッチ80gが設けられる。一方、ハウジング78の下面には凹部が形成されており、当該凹部の後方側傾斜面にはBボタン80hが設けられる。これら各ボタン(スイッチ)80a−80hには、ゲーム装置12が実行するゲームプログラムに応じてそれぞれ適宜な機能が割り当てられる。また、ハウジング78の上面には、遠隔からゲーム装置12本体の電源をオン/オフするための電源スイッチ80iが設けられる。第1コントローラ34に設けられる各ボタン(スイッチ)は、包括的に参照符号80を用いて示されることもある。
【0066】
ハウジング78内には、図2に示すX、YおよびZの3軸方向(すなわち左右方向、上下方向および前後方向)の加速度を検出する加速度センサ84(図11)が設けられる。なお、加速度センサ84としては、ハウジング78の形状または第1コントローラ34の持たせ方の限定等に応じて、上下方向、左右方向および前後方向のうちいずれか2方向の加速度を検出する2軸加速度センサが用いられてもよい。場合によっては1軸加速度センサが用いられてもよい。
【0067】
ハウジング78の前面には光入射口78bが形成され、ハウジング78内には撮像情報演算部81がさらに設けられる。撮像情報演算部81は、赤外線を撮像するカメラと撮像
対象の画像内での座標を算出する演算部とによって構成され、上述のマーカ22aおよび22bを含む被写界を赤外線で捉えて、マーカ22aおよび22bの被写界内における位置座標を算出する。
【0068】
また、ハウジング78の後面には、上述のコネクタ42が設けられている。コネクタ42は、第1コントローラ34に他の機器を接続するために利用される。この実施例では、コネクタ42には第2コントローラ36のコネクタ40またはジャイロセンサユニット100のコネクタ106が接続される。
【0069】
ハウジング78の後面にはまた、コネクタ42を左右(X軸方向)に挟んで対向する位置に、一対の孔82aおよび82bが形成されている。この一対の孔82aおよび82bは、ジャイロセンサユニット100をハウジング78の後面に固定するためのフック112Faおよび112Fb(図6(A))が挿入される。ハウジング78の後面にはさらに、ストラップ24(図4(B))を装着するための孔82cも形成されている。
【0070】
図3には第2コントローラ36の本体の外観の一例が示される。図3(A)は、第2コントローラ36を上面後方から見た斜視図であり、図3(B)は、第2コントローラ36を下面前方から見た斜視図である。なお、図3では、第2コントローラ36のケーブル38は省略されている。
【0071】
第2コントローラ36は、たとえばプラスチック成型によって形成されたハウジング86を有している。ハウジング86は、平面視では、前後方向(Z軸方向)に略細長い楕円形状を有し、後端側の左右方向(X軸方向)の幅が先端側のそれよりも狭くされている。また、ハウジング86は、側面視では、全体として湾曲した形状を有しており、先端側の水平部分から後端側に向かって下がるように湾曲している。ハウジング86は、第1コントローラ34と同様に、全体として大人や子供の片手で把持可能な大きさであるが、長手方向(Z軸方向)の長さは、第1コントローラ34のハウジング78よりもやや短くされている。この第2コントローラ36でも、プレイヤは、ボタンやスティックを操作することと、コントローラ自体の位置や向きを変えることとによって、ゲーム操作を行うことができる。
【0072】
ハウジング86の上面の先端側には、アナログジョイスティック88aが設けられる。ハウジング86の先端には、後方にやや傾斜する先端面が設けられており、この先端面には、上下方向(図3に示すY軸方向)に並べて、Cボタン88bおよびZボタン88cが設けられる。アナログジョイスティック88aおよび各ボタン88b,88cには、ゲーム装置12が実行するゲームプログラムに応じてそれぞれ適宜な機能が割り当てられる。第2コントローラ36に設けられるアナログジョイスティック88aおよび各ボタン88b,88cは、包括的に参照符号88を用いて示されることもある。
【0073】
また、第2コントローラ36のハウジング86内には加速度センサ90(図11)が設けられている。この加速度センサ90としては、第1コントローラ34の加速度センサ84と同様の加速度センサが適用される。具体的には、この実施例では3軸加速度センサが適用され、第2コントローラ36の上下方向(Y軸方向)、左右方向(X軸方向)および前後方向(Z軸方向)の3軸方向のそれぞれで加速度を検知する。したがって、第1コントローラ34の場合と同様に、検出された加速度に適宜な演算処理を施すことによって、第2コントローラ36の傾きや回転、重力方向に対する加速度センサ90の姿勢などを算出することができる。また、振り等によって第1コントローラ34に加えられた動きについても同様に算出することができる。
【0074】
図4には第2コントローラ36のコネクタ40の外観の一例が示される。図4は、コネ
クタ40を下面前方から見た斜視図である。なお、ここでもケーブル38は省略されている。コネクタ40は、たとえばプラスチック成型によって形成されたハウジング142を有する。ハウジング142の下面にはフック144が設けられている。このフック144は、本来的には、図5に示すように、コネクタ40を第1コントローラ34(のコネクタ42)と直に接続した場合に、第1コントローラ34に装着されたストラップ24のひもを掛け止めるためのものである。ストラップ24のひもをフック144に掛け止めることによって、コネクタがよりしっかり固定される。
【0075】
図6にはジャイロセンサユニット100の外観の一例が示される。図6(A)は、ジャイロセンサユニット100を上面前方から見た斜視図であり、図6(B)は、ジャイロセンサユニット100を下面後方から見た斜視図である。
【0076】
ジャイロセンサユニット100は、たとえばプラスチック成型によって形成されたハウジング110を有している。ハウジング110は、略直方体形状を有しており、その長さは第1コントローラ34のハウジング78の長さのおよそ1/5、その幅および厚みはハウジング78の幅および厚みとほぼ同じである。プレイヤは、第1コントローラ34にジャイロセンサユニット100を装着した状態でも、第1コントローラ34自体の位置や向きを変えることによって、ゲーム操作を行うことができる。
【0077】
ハウジング110の前面および後面には上述のコネクタ106および108が、ハウジング110の両側面には一対のリリースボタン112aおよび112bが、そしてハウジング110の下面にはロックスイッチ114が、それぞれ設けられている。ハウジング110の前面下端から下面先端にかけては、第1コントローラ34にジャイロセンサユニット100を装着した状態でストラップ24用の孔82cが露見するように(図8)、略球面状の凹部110aが設けられている。
【0078】
ハウジング110の前面にはまた、コネクタ106を挟んで横方向(X軸方向)に対向する位置に、一対のリリースボタン112aおよび112bとそれぞれ連繋する一対のフック112Faおよび112Fbが設けられている。ジャイロセンサユニット100を第1コントローラ34に装着するべく、コネクタ106をコネクタ42に接続すると、一対のフック112Faおよび112Fbはハウジング78後面の一対の孔82aおよび82b(図2(A))に挿入され、フック112Faおよび112Fbの爪がハウジング78の内壁に引っ掛かる。これによって、ジャイロセンサユニット100は、第1コントローラ34の後面に固定される。
【0079】
こうして第1コントローラ34に装着されたジャイロセンサユニット100が図8に示される。この状態で一対のリリースボタン112aおよび112bを押せば、爪の引っ掛かりは解け、ジャイロセンサユニット100を第1コントローラ34から取り外せるようになる。
【0080】
ロックスイッチ114は、このようなリリースボタン112aおよび112bにロックをかけるためのスライドスイッチである。リリースボタン112aおよび112bは、ロックスイッチ114が第1位置(たとえば後ろ寄り)にあるとき押下不能(ロック状態)であり、ロックスイッチ114が第2位置(たとえば前寄り)にあるとき押下可能(解除状態)である。ハウジング110内には、ロックバネ118aおよび118b(図7)が設けられ、リリースボタン112aおよび112bを押下すると反発するように構成され、押下されていないときは爪が引っ掛かった状態を維持するように構成されている。このため、ジャイロセンサユニット100を取り外すには、ユーザは、ロックスイッチ114を第1位置から第2位置にスライドさせたうえで、リリースボタン112aおよび112bを押す必要がある。
【0081】
このように、ジャイロセンサユニット100は、第1コントローラ34の後面に装着されるため、ゲーム操作中にジャイロセンサユニット100に加わる遠心力は専ら、ジャイロセンサユニット100を第1コントローラ34に押し付けるように作用する。また、ジャイロセンサユニット100をフック112Faおよび112Fbで第1コントローラ34の後面に固定する一方、フック112Faおよび112Fbを開放するためリリースボタン112aおよび112bにはロックスイッチ114を設けたため、ゲーム操作中であってもジャイロセンサユニット100と第1コントローラ34とがしっかり固定された状態にすることができる。
【0082】
ハウジング110の後面にはまた、コネクタ108に装着されるコネクタカバー116を収納可能な凹部110bが、このコネクタ108の周囲に形成される。コネクタカバー116は、その主面の一方端部に、前後(Z軸方向)に長細い薄手の(すなわち曲折容易な)突起116aを有する。この突起116aの先端部分がハウジング110と係合されており、コネクタカバー116は、コネクタ108から取り外された状態でもハウジング110に係留される。
【0083】
コネクタカバー116はまた、その主面の他方端部に、左右(X軸方向)に長細い厚手の(すなわち曲折困難な)突起116bを有する。突起116bの厚み(Z軸方向の高さ)は、第2コントローラ36のコネクタ40に設けられたフック144(図4)の厚み(Y軸方向の高さ)とほぼ同じである。第1コントローラ34にジャイロセンサユニット100を介して第2コントローラ36が接続された場合、コネクタカバー116は、図9に示すように、その主面が水平となって、突起116bがフック144の側面と係合される。コネクタ108から取り外されたコネクタカバー116をこうしてコネクタ40と一体化することで、操作性や見た目が改善されるだけでなく、コネクタ40がジャイロセンサユニット100にしっかりと固定される。
【0084】
図7にはジャイロセンサユニット100の構成の一例が示される。ジャイロセンサユニット100は、上述したハウジング110、コネクタ106および108、リリースボタン112aおよび112b、フック112Faおよび112Fb、ロックスイッチ114、コネクタカバー116ならびにロックバネ118aおよび118bに加え、ジャイロ基板120および支持部材122を備える。ジャイロ基板120はコネクタ106および108の各々と信号線で接続され、支持部材122はジャイロ基板120ならびにコネクタ106および108を支持する。
ジャイロ基板120にはジャイロセンサ104が設けられる。ジャイロセンサ104は、1軸のジャイロセンサ104aおよび2軸のジャイロセンサ104bの2チップで構成される。ジャイロセンサ104aはヨー角に関する角速度(Y軸周りの角速度)を検出するためのものであり、ジャイロセンサ104bはロール角およびピッチ角に関する2つの角速度(Z軸周りの角速度およびX軸周りの角速度)を検出するためのものである。ジャイロセンサ104aおよび104bは、ジャイロ基板120の上面120aに水平に並べて設けられる。
【0085】
なお、ジャイロセンサ104aおよび104bの配置は、図7に示されたものに限らない。他の実施例では、ジャイロセンサ104aは、ジャイロ基板120の上面120aおよび下面120bの一方に水平に設けられ、ジャイロセンサ104bは、ジャイロ基板120の上面120aおよび下面120bの他方に水平に、ジャイロ基板120を挟んでジャイロセンサ104aと対向するように設けられる。その他の実施例では、ジャイロセンサ104aはジャイロ基板120の上面120aおよび下面120bの一方に垂直に設けられ、ジャイロセンサ104bはジャイロ基板120の上面120aおよび下面120b
の他方に水平に設けられる。
【0086】
また、ジャイロセンサ104は、2チップ構成とは限らず、3個の1軸ジャイロセンサ(3チップ)で構成してもよく、1個の3軸ジャイロセンサ(1チップ)で構成してもよい。いずれの場合も、上述の3つの角速度を適正に検出できるように、各チップの位置や向きが決定される。さらにまた、場合によっては、ジャイロセンサ104は、1個の2軸ジャイロセンサで構成しても、2個または1個の1軸ジャイロセンサで構成してもよい。
【0087】
なお、図2に示した第1コントローラ34、図3および図4に示した第2コントローラ36、および図6に示したジャイロセンサユニット100の形状や、ボタン(スイッチまたはスティック等)の形状、数および設置位置等は単なる一例に過ぎず、他の形状、数および設置位置等に適宜変更され得る。
【0088】
なお、センサは、好ましい実施例ではジャイロセンサ(角速度センサ)であるが、たとえば加速度センサ、速度センサ、変位センサ、回転角センサなど、他のモーションセンサでもよい。モーションセンサ以外にも、傾斜センサ、イメージセンサ、光センサ、圧力センサ、磁気センサ、温度センサなどがあり、いずれのセンサを追加する場合でも、センサの検出対象を利用した操作が可能となる。いずれのセンサを用いた場合でも、従来操作装置に接続されていた他の装置をそのまま使用しながら、操作装置に当該センサを追加することができる。
【0089】
また、コントローラ14の電源は、第1コントローラ34内に取替可能に収容されるバッテリ(図示せず)によって与えられる。第2コントローラ36には、コネクタ40およびケーブル38を介してこの電源が供給される。第1コントローラ34にジャイロセンサユニット100が接続されている場合、ジャイロセンサユニット100にはコネクタ42および106を介してこの電源が供給される。さらにジャイロセンサユニット100に第2コントローラ36が接続されていれば、第1コントローラ34からジャイロセンサユニット100に供給された電源の一部は、コネクタ108、コネクタ40およびケーブル38を介して第2コントローラ36にも与えられる。
【0090】
図10にはゲームシステム10の電気的な構成が示される。図示は省略するが、ハウジング16内の各コンポーネントは、プリント基板に実装される。図10に示すように、ゲーム装置12には、CPU44が設けられ、ゲームプロセッサとして機能する。また、CPU44には、システムLSI64が接続される。このシステムLSI64には、外部メインメモリ46、ROM/RTC48、ディスクドライブ54およびAV IC56が接続される。
【0091】
外部メインメモリ46は、ゲームプログラム等のプログラムを記憶したり、各種データを記憶したりして、CPU44のワーク領域やバッファ領域として用いられる。ROM/RTC48は、いわゆるブートROMであり、ゲーム装置12の起動用のプログラムが組み込まれるとともに、時間をカウントする時計回路が設けられる。ディスクドライブ54は、光ディスク66からプログラムやテクスチャデータ等を読み出し、CPU44の制御の下で、後述する内部メインメモリ64eまたは外部メインメモリ46に書き込む。
【0092】
システムLSI64には、入出力プロセッサ64a、GPU(Graphics Processor Unit)64b,DSP(Digital Signal Processor)64c,VRAM64dおよび内部メイン
メモリ42eが設けられ、図示は省略するが、これらは内部バスによって互いに接続される。
【0093】
入出力プロセッサ(I/Oプロセッサ)42aは、データの送受信を実行したり、デー
タのダウンロードを実行したりする。
【0094】
GPU64は、描画手段の一部を形成し、CPU44からのグラフィクスコマンド(作
画命令)を受け、そのコマンドに従ってゲーム画像データを生成する。ただし、CPU4
0は、グラフィクスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラムをGPU64に与える。
【0095】
図示は省略するが、上述したように、GPU64にはVRAM64dが接続される。GPU64が作画命令を実行するにあたって必要なデータ(画像データ:ポリゴンデータやテクスチャデータなどのデータ)は、GPU64がVRAM64dにアクセスして取得する。ただし、CPU44は、描画に必要な画像データを、GPU64を介してVRAM64dに書き込む。GPU64は、VRAM64dにアクセスして描画のためのゲーム画像データを作成する。
【0096】
なお、この実施例では、GPU64がゲーム画像データを生成する場合について説明するが、ゲームアプリケーション以外の任意のアプリケーションを実行する場合には、GPU64は当該任意のアプリケーションについての画像データを生成する。
【0097】
また、DSP64cは、オーディオプロセッサとして機能し、内部メインメモリ64eや外部メインメモリ46に記憶されるサウンドデータや音波形(音色)データを用いて、スピーカ32から出力する音、音声或いは音楽に対応するオーディオデータを生成する。
【0098】
上述のように生成されたゲーム画像データおよびオーディオデータは、AV IC56によって読み出され、AVコネクタ58を介してモニタ30およびスピーカ32に出力される。したがって、ゲーム画面がモニタ30に表示され、ゲームに必要な音(音楽)がスピーカ32から出力される。
【0099】
また、入出力プロセッサ64aには、フラッシュメモリ43、無線通信モジュール50および無線コントローラモジュール52が接続されるとともに、拡張コネクタ60およびメモリカード用コネクタ62が接続される。また、無線通信モジュール50にはアンテナ50aが接続され、無線コントローラモジュール52にはアンテナ52aが接続される。
【0100】
入出力プロセッサ64aは、無線通信モジュール50を介して、ネットワーク(図示せず)に接続される他のゲーム装置や各種サーバと通信することができる。ただし、ネットワークを介さずに、直接的に他のゲーム装置と通信することもできる。入出力プロセッサ64aは、定期的にフラッシュメモリ43にアクセスし、ネットワークへ送信する必要があるデータ(「送信データ」とする)の有無を検出し、当該送信データが有る場合には、無線通信モジュール50およびアンテナ50aを介してネットワークに送信する。また、入出力プロセッサ64aは、他のゲーム装置から送信されるデータ(「受信データ」とする)を、ネットワーク、アンテナ50aおよび無線通信モジュール50を介して受信し、当該受信データをフラッシュメモリ43に記憶する。ただし、受信データが一定の条件を満たさない場合には、当該受信データはそのまま破棄される。さらに、入出力プロセッサ64aは、ダウンロードサーバ(図示せず)からダウンロードしたデータ(ダウンロードデータとする)をネットワーク、アンテナ50aおよび無線通信モジュール50を介して受信し、そのダウンロードデータをフラッシュメモリ43に記憶することもできる。
【0101】
また、入出力プロセッサ64aは、コントローラ14から送信される入力データをアンテナ52aおよび無線コントローラモジュール52を介して受信し、内部メインメモリ64eまたは外部メインメモリ46のバッファ領域に記憶(一時記憶)する。入力データは、CPU44の処理(たとえば、ゲーム処理)によって利用された後、バッファ領域から
消去される。
【0102】
なお、この実施例では、上述したように、無線コントローラモジュール52は、Bluetooth規格に従ってコントローラ14との間で通信を行う。このため、コントローラ14からデータを取得するだけでなく、ゲーム装置12からコントローラ14に所定の命令を送信し、コントローラ14の動作をゲーム装置12から制御することもできる。
【0103】
さらに、入出力プロセッサ64aには、拡張コネクタ60およびメモリカード用コネクタ62が接続される。拡張コネクタ60は、USBやSCSIのようなインタフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、コントローラ14とは異なる他のコントローラのような周辺機器を接続したりすることができる。また、拡張コネクタ60に有線LANアダプタを接続し、無線通信モジュール50に代えて当該有線LANを利用することもできる。メモリカード用コネクタ62には、メモリカード38のような外部記憶媒体を接続することができる。したがって、たとえば、入出力プロセッサ64aは、拡張コネクタ60やメモリカード用コネクタ62を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【0104】
詳細な説明は省略するが、図1にも示したように、ゲーム装置12(ハウジング16)には、電源ボタン20a,リセットボタン20bおよびイジェクトボタン20cが設けられる。電源ボタン20aは、システムLSI64に接続される。この電源ボタン20aがオンされると、システムLSI64には、ゲーム装置12の各コンポーネントに図示しないACアダプタを経て電源が供給され、通電状態となるモードが設定される。
【0105】
リセットボタン20bもまた、システムLSI64に接続される。リセットボタン20bが押されると、システムLSI64は、ゲーム装置12の起動プログラムを再起動する。イジェクトボタン20cは、ディスクドライブ54に接続される。イジェクトボタン20cが押されると、ディスクドライブ54から光ディスク66が排出される。
【0106】
図11には、第1コントローラ34と第2コントローラ36とがジャイロセンサユニット100を介して接続されたときのコントローラ14全体の電気的構成の一例が示される。
【0107】
第1コントローラ34は、その内部に通信部92を備え、通信部92には、操作部80、撮像情報演算部81、加速度センサ84およびコネクタ42が接続される。操作部80は、上述の操作ボタンないし操作スイッチ80a‐80iを示す。操作部80が操作されると、その操作を示すデータが通信部92に出力される。撮像情報演算部81からは、マーカ22aおよび22bの被写界内における位置座標を示すデータが通信部92に出力される。加速度センサ84が検出した加速度を示すデータもまた、通信部92へ出力される。加速度センサ84は、たとえば最大200フレーム/秒程度のサンプリング周期を有する。
【0108】
コネクタ42には、ジャイロセンサユニットのコネクタ106が接続される。ジャイロセンサユニット100は、その内部にマイコン102およびジャイロセンサ104を含む。ジャイロセンサ104は、上述のジャイロセンサ104aおよび104bを示しており、たとえば加速度センサ84と同様のサンプリング周期を有する。マイコン102は、ジャイロセンサ104が検出した角速度を示すデータをコネクタ106およびコネクタ42を介して通信部92に出力する。
【0109】
ジャイロセンサユニット100のコネクタ108には、第2コントローラ36から延びるケーブル38のコネクタ40が接続される。コネクタ40には、第2コントローラ36
の操作部88および加速度センサ90が接続される。操作部88は、上述のスティック88aおよび操作ボタン88b、88cを示す。操作部88が操作されると、その操作を示すデータがケーブル38、コネクタ40およびコネクタ42を介してジャイロセンサユニット100のマイコン102に与えられる。マイコン102は、このデータをコネクタ106、コネクタ42を介して通信部92に出力する。また、加速度センサ90も、加速度センサ84と同様のサンプリング周期を有しており、これにより検出された加速度を示すデータもまた、マイコン102によって通信部92に出力される。
【0110】
なお、上述した通信部92への各出力は、たとえば1/200秒周期で実行される。したがって、任意の1/200秒間に、操作部80からの操作データと、撮像情報演算部81のからの位置座標データと、加速度センサ84からの加速度データと、ジャイロセンサ104からの角速度データと、操作部88からの操作データと、加速度センサ90からの加速度データとが、1回ずつ通信部92に出力される。
【0111】
図12には、図11に示した全体構成のうちジャイロセンサユニット100の要部構成が示される。上述のコネクタ42、コネクタ106、コネクタ108およびコネクタ40は、それぞれたとえば6ピンのコネクタであり、この6ピンの中に、コネクタ間の接続状態を示す変数“Attach”を制御するためのAttachピンが含まれている。Attachは、コネクタ間が切断されていることを示す“Low”と、コネクタ間が接続されていることを示す“High”との間で変化する。以下では特に、コネクタ42・コネクタ106間つまり第1コントローラ34・ジャイロセンサユニット100間のAttachを“Attach1”と呼び、コネクタ108・コネクタ40間つまりジャイロセンサユニット100・第2コントローラ36間のAttachを“Attach2”と呼ぶ。
【0112】
Attach1は、第1コントローラ34にジャイロセンサユニット100が装着されていても、アプリケーションがジャイロ非対応型であり、かつジャイロセンサユニット100に第2コントローラ36が接続されていない場合には、このジャイロ非対応アプリからジャイロセンサユニット100が見えなくなるように、ジャイロセンサユニット100のマイコン102によって“Low”に制御される(スタンバイモード:図14参照)。スタンバイモードでは、ジャイロセンサ104への電源供給は停止され、ジャイロ機能は停止状態となる。マイコン102は専ら、Attach2に基づくモード切り替えと、ジャイロ対応アプリからの指示に基づく電源管理とを行う。
【0113】
上記6ピンのうち他の2つにはI2Cバスが割り当てられており、ジャイロセンサユニット100は、第1コントローラ34側のI2Cバスと第2コントローラ36側のI2Cバスとを互いに接続/分離するためのバススイッチSWをさらに含む。バススイッチSWは、第2コントローラ36がジャイロセンサユニット100を介して第1コントローラ34に接続された状態で、ジャイロ非対応アプリが実行されるときに、マイコン102によりオンされる。以降、第2コントローラ36からのデータは、マイコン102を経由することなく、I2Cバスを通じて通信部92に出力されるようになる(バイパスモード:図14参照)。したがって、マイコン102は、スタンバイモードと同様、モード切り替えと電源管理とを行えばよく、消費電力が抑制される。また、ジャイロセンサユニット100を装着したままでも、ジャイロ非対応アプリを実行できる。バススイッチSWがオフのときは、バスはマイコン102に接続され、第1コントローラ34に出力するデータは、マイコン102によって制御される。
【0114】
バススイッチSWはまた、スタンバイモードでもオンされる。これによって、ジャイロ対応型のアプリケーションは、上述のようにAttach1が“Low”に制御されていても、I2Cバスの特別なアドレスを参照することで、第1コントローラ34にジャイロ
センサユニット100が装着されているかどうかを確認できる。
【0115】
なお、ジャイロセンサユニット100には、上述した“スタンバイ”および“バイパス”に加え、“ジャイロ”および“ジャイロ&第2コントローラ”の計4モードが準備されている。後の2つのモードでは、バススイッチSWはオフされる。
【0116】
ジャイロセンサユニット100のマイコン102は、2種類のA/D変換回路102aおよび102bを含んでおり、ジャイロセンサ104から出力される3軸周りの角速度信号は、これらA/D変換回路102aおよび102bの各々に与えられる。A/D変換回路102aでは、ジャイロセンサ104の検出範囲の全部(たとえば±360度/秒)を対象とする高角速度モードのA/D変換処理が実行され、A/D変換回路102bでは、ジャイロセンサ104の検出範囲の一部(たとえば±90度/秒)を対象とする低角速度モードのA/D変換処理が実行される。マイコン102は、これら2種類のA/D変換結果のいずれか一方を角速度データとして出力する。
【0117】
具体的には、A/D変換回路102aおよび102bからある時刻に対応する2種類の角速度データが出力されると、マイコン102は最初、このうち低角速度モードの角速度データについて、その値Aが第1閾値Th1から第2閾値Th2(>Th1)までの範囲内にあるかどうか、すなわち条件“Th1≦A≦Th2”が満足されるか否かを、軸毎に、つまりヨー、ロールおよびピッチの各々について判定する。次に、これら3つの判定結果に基づいて、低角速度モードおよび高角速度モードのいずれか1つを選択する。たとえば、3つの判定結果それぞれに関して、YESであれば低角速度モードを選択し、NOであれば高角速度モードを軸ごとに選択する。そして、軸ごとに選択されたモードに従う角速度データを、選択されたモードを示すモード情報と共にそれぞれ出力する。つまり、角速度に応じてデータの精度を変えることによって、同じデータ量であっても、低速のときにはより精度の高いデータを出力することができる。
【0118】
図13には、ジャイロセンサユニット100が取り扱うデータのフォーマットが示される。図13(A)はジャイロセンサユニット100用データのフォーマットを示し、図13(B)は第2コントローラ36用データのフォーマットを示す。ジャイロセンサユニット100用のデータは、ヨー角速度データ、ロール角速度データおよびピッチ角速度データと、ヨー角速度モード情報、ロール角速度モード情報およびピッチ角速度モード情報と、第2コネクタ接続情報と、ジャイロ・第2コントローラ識別情報とを含む。
【0119】
ヨー角速度データ、ロール角速度データおよびピッチ角速度データは、ジャイロセンサ104から出力されるヨー角速度信号、ロール角速度信号およびピッチ角速度信号をA/D変換して得られる、たとえば各14ビットのデータである。ヨー角速度モード情報、ロール角速度モード情報およびピッチ角速度モード情報は、それぞれ対応する角速度データのモードを示す各1ビットの情報であり、高角速度モードに対応する“0”と、低角速度モードに対応する“1”との間で変化する。
【0120】
第2コントローラ接続情報は、コネクタ106に第2コントローラ36が接続されているか否かを示す1ビットの情報であり、非接続を示す“0”と、接続を示す“1”との間で変化する。ジャイロ・第2コントローラ識別情報は、当該データがジャイロセンサユニット100から出力されたデータであるか第2コントローラ36から出力されたデータであるかを識別する1ビットの情報であり、ジャイロセンサユニット100からのデータであることを示す“1”と、第2コントローラ36からのデータであることを示す“0”との間で変化する。
【0121】
一方、第2コントローラ36用のデータは、左右方向(X軸方向)のスティック操作お
よび前後方向(Z軸方向)のスティック操作をそれぞれ示すXスティック操作データおよびYスティック操作データと、X軸方向の加速度、Y軸方向の加速度およびZ軸方向の加速度をそれぞれ示すX加速度データ、Y加速度データおよびZ加速度データと、ボタン操作データと、第2コネクタ接続情報と、ジャイロ・第2コントローラ識別情報とを含む。
【0122】
ジャイロセンサユニット100は通信部92に、図13(A)のフォーマットに従うジャイロ用データと、図13(B)のフォーマットに従う第2コントローラ用データとを、それぞれたとえば1/200秒周期で交互に出力する。したがって、片方のフォーマットに関しては、1/100秒周期で出力されることになるが、これはゲームの処理等で一般的な処理期間である1/60秒周期よりも十分短いことから、データを交互に出力してもゲーム処理で両方のデータを1フレームで同時に利用することができる。
【0123】
通信部92は、マイクロコンピュータ(マイコン)94、メモリ96、無線モジュール76およびアンテナ98を含む。マイコン94は、処理の際にメモリ96を記憶領域(作業領域やバッファ領域)として用いながら、無線モジュール76を制御して、取得したデータをゲーム装置12に送信したりゲーム装置12からのデータを受信したりする。
【0124】
ジャイロセンサユニット100から通信部92に出力されたデータは、マイコン94を経て一時的にメモリ96に格納される。第1コントローラ34内の操作部80、撮像情報演算部81および加速度センサ84から通信部92に出力されたデータもまた、メモリ96に一時的に格納される。マイコン94は、ゲーム装置12への送信タイミングが到来すると、メモリ96に格納されているデータをコントローラデータとして無線モジュール76へ出力する。コントローラデータには、図13(A)および図13(B)に示したジャイロ用データおよび/または第2コントローラ用データに加えて、第1コントローラ用データが含まれる。第1コントローラ用データには、加速度センサ84の出力に基づくX加速度データ、Y加速度データおよびZ加速度データと、撮像情報演算部81の出力に基づく位置座標データと、操作部80の出力に基づくボタン操作データとが含まれる。
【0125】
無線モジュール76は、Bluetooth(ブルートゥース)(登録商標)のような近距離無線通信技術を用いて、所定周波数の搬送波をコントローラデータで変調し、その微弱電波信号をアンテナ98から放射する。つまり、コントローラデータは、無線モジュール76で微弱電波信号に変調されて第1コントローラ34から送信される。微弱電波信号はゲーム装置12側のBluetooth通信ユニット74で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置12はコントローラデータを取得することができる。ゲーム装置12のCPU44は、コントローラ14から取得したコントローラデータに基づいてゲーム処理を行う。なお、第1コントローラ34とゲーム装置12との無線通信は、無線LANなど他の規格に従って実行されてもよい。
【0126】
このゲームシステム10では、ボタン操作だけでなく、コントローラ14自体を動かすことによっても、ゲームなどのアプリケーションに対する入力を行うことができる。ゲームをプレイする際には、たとえば図18に示すように、プレイヤは、その右手で第1コントローラ34(具体的にはハウジング78の把持部78a:図2)を持ち、その左手で第2コントローラ36を持つ。上述のように、第1コントローラ34には3軸方向の加速度を検出する加速度センサ84が内蔵され、第2コントローラ36にも同様の加速度センサ90が内蔵されている。第1コントローラ34および第2コントローラ36がそれぞれプレイヤによって動かされると、加速度センサ84および加速度センサ90によって、それぞれのコントローラ自身の動きを示す3軸方向の加速度値が検出される。第1コントローラ34にジャイロセンサユニット100が装着されている場合には、第1コントローラ34自身の動きを示す3軸周りの角速度値がさらに検出される。
【0127】
これらの検出値は、先述したコントローラデータの態様でゲーム装置12に送信される。ゲーム装置12(図10)では、コントローラ14からのコントローラデータは、入出力プロセッサ64aによってアンテナ52aおよび無線コントローラモジュール52を介して受信され、受信されたコントローラデータは、内部メインメモリ64eまたは外部メインメモリ46のバッファ領域に書き込まれる。CPU44は、内部メインメモリ64eまたは外部メインメモリ46のバッファ領域に格納されたコントローラデータを読み出し、このコントローラデータから検出値つまりコントローラ14によって検出された加速度および/または角速度の値を復元する。
【0128】
なお、角速度データには高角速度および低角速度の2つのモードがあるため、これら2つのモードにそれぞれ対応する2種類の角速度復元アルゴリズムが準備される。角速度データから角速度の値を復元するにあたっては、当該角速度データのモードに対応する角速度復元アルゴリズムが、角速度モード情報に基づいて選択される。
【0129】
CPU44はまた、このような復元処理と並行して、復元された加速度からコントローラ14の速度を計算する処理を実行してもよい。さらに並行して、計算された速度からコントローラ14の移動距離ないし位置を求めることもできる。一方、復元された角速度からは、コントローラ14の回転角が求まる。なお、加速度を積算して速度を求めたり、角速度を積算して回転角を求めたりする際の初期値(積分定数)は、たとえば、撮像情報演算部81のからの位置座標データに基づいて計算できる。位置座標データはまた、積算によって蓄積されていく誤差の修正にも用いることができる。
【0130】
ゲーム処理は、こうして求められた加速度、速度、移動距離、角速度および回転角などの変数に基づいて実行される。したがって、上記の処理は全てを行わなくともよく、ゲーム処理に必要な変数を適宜算出すればよい。なお、角速度や回転角も、原理的には加速度から計算し得るが、そのためには、ゲームプログラムに複雑なルーチンが必要で、CPU44にも重い処理負荷がかかる。ジャイロセンサユニット100を利用することで、プログラム開発が容易になり、CPU44の処理負荷も軽減される。
【0131】
ところで、ゲームには、第1コントローラ34しか利用しない1コントローラ用ゲームと、第1コントローラ34および第2コントローラ36を利用する2コントローラ用ゲームとがあり、そして各ゲームは、ジャイロ対応およびジャイロ非対応のいずれかに分類される。メインコントローラである第1コントローラ34は、どのゲームをプレイする場合にも必要である。また、拡張コントローラである第2コントローラ36は、2コントローラ用ゲームをプレイするときジャイロセンサユニット100を介して、または直に第1コントローラ34に接続され、1コントローラゲームをプレイするときには通常取り外される。
【0132】
一方、拡張センサないし拡張コントローラであるジャイロセンサユニット100は、ジャイロ非対応ゲームをプレイする場合には不要であるが、わざわざ取り外さなくてもよい。このため、ジャイロセンサユニット100は通常、第1コントローラ34に装着したままにされ、第1コントローラ34と一体で取り扱われる。第2コントローラ36は、コネクタ40の接続先がコネクタ42からコネクタ108に変わる点を除けば、ジャイロセンサユニット100が介在しない場合と同様に着脱される。
【0133】
図14には、ジャイロセンサユニット100のマイコン102による制御がモード毎に記載したテーブルが示される。ジャイロセンサユニット100に準備されているモードは、先述した“スタンバイ”、“バイパス”、“ジャイロ”および“ジャイロ&第2コントローラ”の4種類であり、マイコン102の制御対象は、“ジャイロ機能”、“ジャイロ電源”、“バススイッチ”、“拡張コネクタ”、“Attach1”および“I2Cアド
レス”の6項目に及ぶ。
【0134】
ジャイロ機能は、スタンバイおよびバイパスの各モードでは停止状態(No Acti
ve)に置かれる一方、ジャイロおよびジャイロ&第2コントローラの各モードでは起動状態(Active)に置かれる。ジャイロ電源つまりジャイロセンサ104への電源供給は、スタンバイおよびバイパスの各モードで停止(OFF)され、ジャイロおよびジャイロ&第2コントローラの各モードでは実行(ON)される。バススイッチSWは、スタンバイおよびバイパスの各モードで接続(Connect)され、ジャイロおよびジャイロ&第2コントローラの各モードでは切断(Disconnect)される。
【0135】
拡張コネクタつまりコネクタ108は、バイパスおよびジャイロ&第2コントローラの各モードで起動状態に置かれ、スタンバイおよびジャイロの各モードでは停止状態に置かれる。Attach1は、スタンバイモードで非接続状態を示す“Low”に制御され、バイパス、ジャイロおよびジャイロ&第2コントローラの各モードでは接続状態を示す“High”に制御される。I2Cアドレスに関しては、スタンバイおよびバイパスの各モードに限って、特別なアドレスが注目される。
【0136】
モード間の切り換えは、図15に示す要領で行われる。図15(A)にはアプリケーションがジャイロ対応である場合の切り換え処理が、図15(B)にはアプリケーションがジャイロ非対応である場合の切り換え処理が、それぞれ示される。図15(A)および図15(B)に共通して、すなわちジャイロ対応アプリかジャイロ非対応アプリかによらず、ジャイロセンサユニット100は、ジャイロセンサユニット100自身が第1コントローラ34に接続されるのに応答して起動し、初期モードであるスタンバイモードに入る。ここで第2コントローラ36が接続されると、スタンバイモードからバイパスモードに移行し、その後に第2コントローラ36が取り外されると、バイパスモードからスタンバイモードに復帰する。
【0137】
ここで、ジャイロ対応アプリは、必要に応じて角速度データを取得するべく、ジャイロセンサユニット100に対して呼び出しおよびリセットをかける。上述のように、本実施例では、通信によってゲーム機からコントローラを制御することが可能であるので、アプリケーションによってジャイロセンサユニット100を制御することが可能である。このため、図15(A)に示すように、ジャイロセンサユニット100は、スタンバイモードでアプリケーションから呼び出しを受けるとジャイロモードに移行し、ジャイロモードでアプリケーションからリセットを受けるとスタンバイモードに復帰する。ジャイロセンサユニット100はまた、ジャイロモードで第2コントローラ36が接続されるとジャイロ&第2コントローラモードに移行し、ジャイロ&第2コントローラモードで第2コントローラ36が取り外されるとジャイロモードに復帰する。ジャイロセンサユニット100はさらにまた、ジャイロ&第2コントローラモードでアプリケーションからリセットを受けるとバイパスモードに移行し、バイパスモードでアプリケーションから呼び出しを受けるとジャイロ&第2コントローラモードに復帰する。
【0138】
一方、ジャイロ非対応アプリは、ジャイロセンサユニット100に対して呼び出しやリセットといった働きかけを行う機能がない。このため、ジャイロ非対応アプリを実行する際には、図15(B)に示すように、ジャイロセンサユニット100のモードは、スタンバイモードおよびバイパスモードの間で切り換わるに止まる。
【0139】
ジャイロセンサユニット100のこのようなモード切り替えは、マイコン102が、図14に示したテーブルを参照して、図16および図17のフローチャートに示す処理を実行することにより実現される。なお、このフローチャートに対応するプログラムと、図14のテーブルとは、不揮発性のメモリ102c(図12)に格納されている。
【0140】
ユーザがジャイロセンサユニット100を第1コントローラ34に装着すると、マイコン102は、第1コントローラ34から電源の供給を受けて起動し、図16および図17のフローチャートに示す処理を実行する。この処理は、ジャイロセンサユニット100が第1コントローラ34から取り外されるまでの期間に渡って実行される。
【0141】
図16を参照して、起動が完了すると、マイコン102は、最初、ステップS1でスタンバイモードへのモード更新を行う。具体的には、マイコン102は、メモリ102c内のテーブル(図14)に記述された“スタンバイ”の規定に従って、ジャイロ機能を休止させ、ジャイロセンサへ104の電源供給を停止し、バススイッチSWを接続し、コネクタ108を休止させ、Attach1を“Low”に制御し、そしてI2Cバスの特別なアドレスへの注目を開始する。こうしてジャイロセンサユニット100がスタンバイモードに移行すると、処理はステップS3およびS5のループに入る。
【0142】
すなわち、マイコン102は、Attach2が“1”であるか否かをステップS3で判別し、ここでNOであれば、アプリケーションから呼び出しがかかったか否かをステップS5でさらに判別する。ここでもNOであれば、処理はステップS3に戻る。なお、このモードにおいては、ジャイロを使用しないことになるので、第1コントローラ34へは操作データが何も出力されないか、操作データが無い旨のみが出力されることになる。第1コントローラ34にジャイロセンサユニット100を介して第2コントローラ36が接続されるのに応じてAttach2が“0”から“1”に変化すると、ステップS3の判別結果がYESとなって、処理はステップS17に移る。一方、アプリケーションからジャイロセンサユニット100に呼び出しがかかると、ステップS5の判別結果がYESとなって、処理はステップS7に移る。
【0143】
ステップS7では、ジャイロモードへのモード更新が行われる。具体的には、マイコン102は、テーブル(図14)に記述された“ジャイロ”の規定に従って、ジャイロ機能を起動させ、ジャイロセンサへの電源供給を開始し、バススイッチSWを切断し、コネクタ108を停止させ、Attach1を“High”に制御する。こうしてジャイロセンサユニット100がジャイロモードに移行すると、処理はステップS9〜S13のループに入る。
【0144】
ステップS9ではAttach2が“1”であるか否かが、ステップS11ではアプリケーションからリセットがかかったか否かが、そしてステップS13では現時刻がデータ出力タイミングに該当するか否かが、それぞれ判別される。Attach2が“0”から“1”に変化すると、ステップS9の判別結果がYESとなり、処理はステップS23に移る。アプリケーションからジャイロセンサ100にリセットがかかると、ステップS11の判別結果がYESとなって、処理はステップS1に戻る。前回のデータ出力から既定時間が経過すると、ステップS13の判別結果がYESとなり、処理はステップS15に移る。ステップS15では、マイコン102は、ジャイロ用データ(図13(A))を第1コントローラ34側に出力する。出力後、処理はステップS9〜S13のループに戻る。
【0145】
図17を参照して、ステップS17では、バイパスモードへのモード更新が行われる。具体的には、マイコン102は、メモリ102c内のテーブル(図14)に記述された“バイパス”の規定に従って、ジャイロセンサ104への電源供給を停止し、ジャイロ機能を停止させ、バススイッチSWを接続し、コネクタ108を起動させ、そしてAttach1を“High”とする。I2Cバスの特別なアドレスへの注目は停止される。こうしてジャイロセンサユニット100がバイパスモードに移行すると、処理はステップS19およびS21のループに入る。
【0146】
ステップS19ではAttach2が“0”であるか否かが、ステップS21ではアプリケーションから呼び出しがかかったか否かが、それぞれ判別される。Attach2が“1”から“0”に変化すると、ステップS19の判別結果がYESとなり、処理はステップS1に戻る。アプリケーションからジャイロセンサユニット100に呼び出しがかかると、ステップS21の判別結果がYESとなって、処理はステップS23に移る。ここで、バイパスモードでは、第2コントローラ36から第2コントローラ用データ(図13(b))が直接第1コントローラ34へ出力されるので、マイコン102からは何も出力されないことになる。
【0147】
ステップS23では、ジャイロ&第2コントローラモードへのモード更新が行われる。具体的には、マイコン102は、メモリ102c内のテーブル(図14)に記述された“ジャイロ&第2コントローラ”の規定に従って、ジャイロセンサ104への電源供給を開始し、ジャイロ機能を起動させ、バススイッチSWを切断し、コネクタ108を起動させ、そしてAttach1を“High”に制御する。I2Cバスの特別なアドレスへの注目は停止される。こうしてジャイロセンサユニット100がジャイロ&第2コントローラモードに移行すると、処理はステップS25〜S29のループに入る。
【0148】
ステップS25ではAttach2が“0”であるか否かが、ステップS27ではアプリケーションからリセットがかかったか否かが、そしてステップS29では現時刻がデータ出力タイミングに該当するか否かが、それぞれ判別される。Attach2が“1”から“0”に変化すると、ステップS25の判別結果がYESとなり、処理はステップS7に戻る。アプリケーションからジャイロセンサ100にリセットがかかると、ステップS27の判別結果がYESとなって、処理はステップS17に戻る。前回のデータ出力から既定時間が経過すると、ステップS29の判別結果がYESとなり、処理はステップS31に移る。ステップS31では、マイコン102は、ジャイロ用データ(図13(A))および第2コントローラ用データ(図13(B))を交互に第1コントローラ34側に出力する。出力後、処理はステップS25〜S29のループに戻る。
【0149】
以上から明らかなように、この実施例では、ジャイロセンサユニット100は、ハウジング110、コネクタ106および108ならびにジャイロセンサ104を備える。コネクタ106は、第1コントローラ34に設けられたコネクタ42に物理的および電気的に接続可能な第1の形状を有する。このため、コネクタ106を第1コントローラ34のコネクタ42に接続することで、ジャイロセンサユニット100は、これら2つのコネクタ42および106を介して第1コントローラ34に物理的および電気的に接続され、ジャイロセンサユニット100を第1コントローラ34と一体で用いることが可能となる。すなわち、第1コントローラ34にジャイロセンサ104が追加される結果となる。
【0150】
一方、コネクタ108は、第1の形状を有するコネクタが接続可能な第2の形状を有する。このため、従来コネクタ42に接続されていた他の装置のコネクタ、たとえば第2コントローラ36のコネクタ40は、コネクタ108にも接続可能である。したがって、コネクタ42にコネクタ106が接続された状態で、コネクタ40をコネクタ108に接続すれば、第2コントローラ36は、ジャイロセンサユニット100を介して第1コントローラ34に接続される結果となる。
【0151】
これにより、従来第1コントローラ34に接続されていた第2コントローラ36などの他の装置をそのまま使用しながら、第1コントローラ34にジャイロセンサ104を追加することができる。角速度を検出する手段としてのジャイロセンサが手首付近に位置するので、角速度は多くの場合に回転軸の近くで検出されることとなり、角速度が検出しやすく、加速度センサは手首よりも前方に位置するので、遠心力の検出が容易になる。つまり
、操作装置全体からみたとき、加速度センサが前方にジャイロセンサが後方にあるので、プレイヤの手の動きをより正確に検出することが可能な操作システムを提供することができる。角速度を検出するジャイロセンサ104を追加したことで、個々のゲームプログラムに角速度ないし回転角を計算するためのルーチンを組み込む必要がなくなり、開発者の負担が軽減される。また、ゲーム装置12のCPU44への処理負荷も軽減される。
【0152】
また、この実施例では、第1コントローラ34は、片手で把持可能な太さを有する長手形状のハウジング78を備える。ハウジング78の上面には、片手の親指で操作可能な位置に第1操作部(操作ボタン80a,80dなど)が設けられ、ハウジング78の下面には、第1操作部に片手の親指を置いたとき当該片手の人差し指で操作可能な位置に第2操作部(操作ボタン80h)が設けられる。ハウジング78にはまた、第1操作部に親指を置き第2操作部に人差し指を置いたとき片手の手のひらとその他の指とによって把持可能な位置に把持部78aが形成される。したがって、第1操作部および第2操作部はハウジング78の先端側に、把持部78aはハウジング78の後端側に、それぞれ位置しており、ユーザは、ハウジング78を片手で把持するにあたって、その上面の第1操作部に親指を置き、その下面の第2操作部に人差し指を置き、そしてその把持部78aを手のひらと他の指とで把持することになる。
【0153】
また、第1コントローラ34は、加速度センサ84をさらに備え、ハウジング78にはさらに、把持部78aとは反対側の端部に撮像情報演算部81が、把持部78a側の端部にはコネクタ42が、それぞれ設けられる。一方、ジャイロセンサユニット100は、ハウジング110と、コネクタ42に接続可能なコネクタ106と、ジャイロセンサ104とを備える。したがって、ユーザがコネクタ106をコネクタ42に接続することで、ジャイロセンサユニット100は、第1コントローラ34に接続される。こうして第1コントローラ34に接続されたジャイロセンサユニット100は、第1コントローラ34の後端側すなわち第1コントローラ34を把持する手の手首付近に位置する(図18)。加速度センサ84およびジャイロセンサ104から出力される加速度値および角速度値は、第1コントローラ34およびジャイロセンサユニット100の加速度および角速度をそれぞれ示す。
【0154】
このように、ジャイロセンサユニット100を第1コントローラ34の後端側に配置したことで、この一体化されたコントローラの重心の位置は後方に移動して手のひらの位置に近づく。このため、第1コントローラ34にジャイロセンサユニット100を接続したことによる遠心力の増大は、ジャイロセンサユニット100を第1コントローラ34の先端側に配置した場合と比べて少なくて済む。また、ジャイロセンサユニット100に働く遠心力は、これを第1コントローラ34に押し付けるように作用するので、ジャイロセンサユニット100と第1コントローラ34とがしっかりと固定される。また、ジャイロセンサ104が手首付近に位置するので、角速度は多くの場合に回転軸の近くで検出されることとなり、角速度の検出精度が高まる。一方、加速度センサ84は手首よりも前方に位置するので、回転に起因する加速度の検出が容易になる。
【0155】
また、この実施例では、第1コントローラ34はストラップ装着部(孔82c)をさらに備え、ここにストラップ24が装着される。ジャイロセンサユニット100は、蓋116をさらに備え、この蓋116によってコネクタ108が塞がれる。蓋116は、コネクタ108から取り外された状態でも、ジャイロセンサユニット100に係留される。第2コントローラ36は、コネクタ40近傍に設けられるフック144をさらに備え、このフック144には、第2コントローラ36を第1コントローラ34に接続した場合は第1コントローラ34に装着されたストラップ24が、第2コントローラ36をジャイロセンサユニット100に接続した場合はジャイロセンサユニット100に係留された蓋116が、それぞれ掛け止めされる。
【0156】
したがって、ストラップ24を当該第1コントローラ34を把持する手の手首に掛けることができる。また、第1コントローラ34および第2コントローラ36の間にジャイロセンサユニット100を追加する場合には、従来ストラップ24を掛け止めしていたフック144に、コネクタ108から取り外されてジャイロセンサユニット100に係留されている蓋116を掛け止めすることで、コネクタ40がコネクタ108から外れ難くなる。これにより、従来第1コントローラ34に接続されていた第2コントローラ36をそのまま使用しながら、第1コントローラ34にジャイロセンサユニット100を追加することができる。
【0157】
なお、この実施例では、ジャイロセンサユニット100と第2コントローラ36との間はケーブル38で接続されたが、無線通信により接続されてもよい。一例を図19に示す。図19の実施例では、ジャイロセンサユニット100は、先述のコネクタ108に代えて無線モジュール108aおよびアンテナ108bを備え、第2コントローラ36は、先述のコネクタ40に代えて無線モジュール40aおよびアンテナ40bを備える。無線モジュール40aおよび108aは、Bluetooth(登録商標)や無線LAN、赤外線通信などの近距離無線通信技術を用いて、アンテナ40bおよび108bを通してデータを送信および受信する。図19の実施例においては、第1コントローラ36は従来のままで、ジャイロセンサユニット100と、無線を用いた第2コントローラ36を追加することで、第2コントローラ36と第1コントローラ34を完全に独立して動かせるので、より自由度の高い操作を行うことができる。また、ジャイロセンサユニット100は、ジャイロを追加できるだけでなく、無線によりより多様な拡張コントローラを接続可能なアダプタとしても機能することになる。
【0158】
以上では、一例として、ゲームシステム10を用いて説明したが、この発明は、操作装置自体の動きに基づいて、ゲームなどのアプリケーションに従う処理を実行する、コンピュータシステムに適用できる。
【図面の簡単な説明】
【0159】
【図1】この発明の一実施例の構成を示すブロック図である。
【図2】図1実施例に適用される第1コントローラの外観を示す図解図であり、図2(A)は第1コントローラを上面後方から見た斜視図であり、図2(B)は第1コントローラを下面前方から見た斜視図である。
【図3】図1実施例に適用される第2コントローラの本体の外観を示す図解図であり、図3(A)は第2コントローラ本体を上面後方から見た斜視図であり、図3(B)は第1コントローラ本体を下面前方から見た斜視図である。
【図4】第2コントローラのコネクタの外観を示す図解図である。
【図5】第1コントローラに第2コントローラのコネクタを接続した状態で、第1コントローラに装着されたストラップのひもをコネクタのフックに掛け止めた様子を示す図解図である。
【図6】図1実施例に適用されるジャイロセンサユニットの外観を示す図解図であり、図6(A)はジャイロセンサユニットを上面前方から見た斜視図であり、図6(B)はジャイロセンサユニットを下面後方から見た斜視図である。
【図7】ジャイロセンサユニットの構成を示す図解図である。
【図8】第1コントローラにジャイロセンサユニットを接続した状態を示す図解図である。
【図9】第1コントローラにジャイロセンサユニット介して第2コントローラを接続した状態を示す図解図である。
【図10】図1実施例の電気的な構成を示すブロック図である。
【図11】図1実施例に適用されるコントローラ全体の電気的な構成を示すブロック図である。
【図12】図11のコントローラにおいて、第1コントローラおよび第2コントローラの間に介在するジャイロセンサユニットの電気的な構成を示すブロック図である。
【図13】ジャイロセンサユニットが取り扱うデータのフォーマットを示す図解図であり、図13(A)はジャイロ用データのフォーマットを示す図解図であり、図13(B)は第2コントローラ用データのフォーマットを示す図解図である。
【図14】ジャイロセンサユニットのマイコンによる制御をモード毎に記載したテーブルを示す図解図である。
【図15】ジャイロセンサユニットに適用されるモード切り替えを示す図解図であり、図15(A)はアプリケーションがジャイロ対応型である場合のモード切り替えを示す図解図であり、図15(B)はアプリケーションがジャイロ非対応型である場合のモード切り替えを示す図解図である。
【図16】ジャイロセンサユニットのマイコン動作の一部を示すフロー図である。
【図17】ジャイロセンサユニットのマイコン動作の他の一部を示すフロー図である。
【図18】プレイヤがコントローラを操作する様子を示す図解図である。
【図19】他の実施例に適用されるコントローラ全体の電気的な構成を示すブロック図である。
【符号の説明】
【0160】
10 …ゲームシステム
12 …ゲーム装置
14 …コントローラ
34 …第1コントローラ
36 …第2コントローラ
40,42,106,108 …コネクタ
80,88 …操作部
84,90 …加速度センサ
92 …通信部
94,102 …マイコン
100 …ジャイロセンサユニット
104 …ジャイロセンサ
【特許請求の範囲】
【請求項1】
操作装置にコネクタを介して接続されることによって、当該操作装置と一体で用いられる拡張操作装置であって、
ハウジングと、
前記操作装置に設けられたコネクタに物理的および電気的に接続可能な第1の形状を有する第1のコネクタと、
前記第1の形状を有するコネクタが接続可能な第2の形状を有する第2のコネクタと、
センサとを備える、拡張操作装置。
【請求項2】
前記センサは、自身の動きを検出するモーションセンサである、請求項1記載の拡張操作装置。
【請求項3】
前記モーションセンサは、3軸のジャイロセンサである、請求項2記載の拡張操作装置。
【請求項4】
前記操作装置の前記コネクタが設けられている面には、少なくとも1つの孔部が設けられ、
当該孔部に嵌合可能な突起部材を更に備える、請求項2記載の拡張操作装置。
【請求項5】
前記突起部材は開閉可能な爪状部材であって、当該開閉をロックする突起ロック機構を更に備える、請求項4記載の拡張操作装置。
【請求項6】
前記ハウジングの、前記第1のコネクタ側の面から底面にかけて凹部をさらに備える、請求項2記載の拡張操作装置。
【請求項7】
前記第2のコネクタを塞ぐことができ、外した際にも前記ハウジングに係留される蓋をさらに備える、請求項2記載の拡張操作装置。
【請求項8】
前記第2のコネクタを通じて外部の装置からデータを取得し、当該外部の装置からのデータと前記モーションセンサからのデータとを前記第1のコネクタを通じて前記操作装置へ出力する、請求項2記載の拡張操作装置。
【請求項9】
前記センサからのデータを含む出力データを制御する出力データ制御手段と、
前記第2のコネクタ側の配線を前記第1のコネクタ側へ直接接続するためのバススイッチと、
前記バススイッチの接続のオン/オフを切り替えるバススイッチ制御手段とをさらに備え、
前記バススイッチがオフのときには前記第2のコネクタ側の配線が前記出力データ制御手段を介して前記第1のコネクタ側に接続される、請求項8記載の拡張操作装置。
【請求項10】
前記センサへの電源供給のオン/オフを切り替えるセンサ電源管理手段をさらに備え、
前記バススイッチ制御手段は、前記センサの電源がオフにされているときに、前記バススイッチの接続をオンにする、請求項9記載の拡張操作装置。
【請求項11】
前記第2のコネクタに所定の装置が接続されているか否かを検出する接続検出手段をさらに備え、
前記出力データ制御手段は、前記バススイッチの接続がオフであって、かつ前記第2のコネクタに前記所定の装置が接続されているとき、当該所定の装置から入力される第1のデータと、前記センサの出力に基づいた第2のデータとを前記第1のコネクタから交互に
出力させる、請求項10記載の拡張操作装置。
【請求項12】
前記ジャイロセンサの各軸の検出する角速度の大きさを判定する角速度判定手段と、
前記角速度の大きさが大きい場合に、精度の低い第1の角速度データを出力させ、前記角速度の大きさが小さい場合には、前記第1の角速度データと同じデータ量であって精度が高い第2の角速度データを出力させる、角速度データ出力制御手段とをさらに備える、請求項3記載の拡張操作装置。
【請求項1】
操作装置にコネクタを介して接続されることによって、当該操作装置と一体で用いられる拡張操作装置であって、
ハウジングと、
前記操作装置に設けられたコネクタに物理的および電気的に接続可能な第1の形状を有する第1のコネクタと、
前記第1の形状を有するコネクタが接続可能な第2の形状を有する第2のコネクタと、
センサとを備える、拡張操作装置。
【請求項2】
前記センサは、自身の動きを検出するモーションセンサである、請求項1記載の拡張操作装置。
【請求項3】
前記モーションセンサは、3軸のジャイロセンサである、請求項2記載の拡張操作装置。
【請求項4】
前記操作装置の前記コネクタが設けられている面には、少なくとも1つの孔部が設けられ、
当該孔部に嵌合可能な突起部材を更に備える、請求項2記載の拡張操作装置。
【請求項5】
前記突起部材は開閉可能な爪状部材であって、当該開閉をロックする突起ロック機構を更に備える、請求項4記載の拡張操作装置。
【請求項6】
前記ハウジングの、前記第1のコネクタ側の面から底面にかけて凹部をさらに備える、請求項2記載の拡張操作装置。
【請求項7】
前記第2のコネクタを塞ぐことができ、外した際にも前記ハウジングに係留される蓋をさらに備える、請求項2記載の拡張操作装置。
【請求項8】
前記第2のコネクタを通じて外部の装置からデータを取得し、当該外部の装置からのデータと前記モーションセンサからのデータとを前記第1のコネクタを通じて前記操作装置へ出力する、請求項2記載の拡張操作装置。
【請求項9】
前記センサからのデータを含む出力データを制御する出力データ制御手段と、
前記第2のコネクタ側の配線を前記第1のコネクタ側へ直接接続するためのバススイッチと、
前記バススイッチの接続のオン/オフを切り替えるバススイッチ制御手段とをさらに備え、
前記バススイッチがオフのときには前記第2のコネクタ側の配線が前記出力データ制御手段を介して前記第1のコネクタ側に接続される、請求項8記載の拡張操作装置。
【請求項10】
前記センサへの電源供給のオン/オフを切り替えるセンサ電源管理手段をさらに備え、
前記バススイッチ制御手段は、前記センサの電源がオフにされているときに、前記バススイッチの接続をオンにする、請求項9記載の拡張操作装置。
【請求項11】
前記第2のコネクタに所定の装置が接続されているか否かを検出する接続検出手段をさらに備え、
前記出力データ制御手段は、前記バススイッチの接続がオフであって、かつ前記第2のコネクタに前記所定の装置が接続されているとき、当該所定の装置から入力される第1のデータと、前記センサの出力に基づいた第2のデータとを前記第1のコネクタから交互に
出力させる、請求項10記載の拡張操作装置。
【請求項12】
前記ジャイロセンサの各軸の検出する角速度の大きさを判定する角速度判定手段と、
前記角速度の大きさが大きい場合に、精度の低い第1の角速度データを出力させ、前記角速度の大きさが小さい場合には、前記第1の角速度データと同じデータ量であって精度が高い第2の角速度データを出力させる、角速度データ出力制御手段とをさらに備える、請求項3記載の拡張操作装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【公開番号】特開2010−20742(P2010−20742A)
【公開日】平成22年1月28日(2010.1.28)
【国際特許分類】
【出願番号】特願2008−274051(P2008−274051)
【出願日】平成20年10月24日(2008.10.24)
【分割の表示】特願2008−181420(P2008−181420)の分割
【原出願日】平成20年7月11日(2008.7.11)
【特許番号】特許第4255510号(P4255510)
【特許公報発行日】平成21年4月15日(2009.4.15)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
【公開日】平成22年1月28日(2010.1.28)
【国際特許分類】
【出願日】平成20年10月24日(2008.10.24)
【分割の表示】特願2008−181420(P2008−181420)の分割
【原出願日】平成20年7月11日(2008.7.11)
【特許番号】特許第4255510号(P4255510)
【特許公報発行日】平成21年4月15日(2009.4.15)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
[ Back to top ]