図1および図2に示すこの発明の一実施例のコントローラ10は、たとえばプラスチックや金属で成型された長手形状のハウジング12を含む。このハウジング12は、所要の深さを有し、上面開口でかつ有底の、平面矩形形状を有する下ハウジング14と、その下ハウジング14の上面開口を塞ぐ形で下ハウジング14と一体的に組み立てられる上ハウジング16とを含み、特に図2(A)や図2(E)に示すように、全体として、断面矩形を有する。
ハウジング12は把持部18を有し、全体として大人や子供の片手で把持可能な大きさであり、長手方向(図2(B)の中心線C1に沿った方向)の長さL(図2(D))はたとえば8−15cmに、幅(長手方向C1に直交する)W(図2(D))はたとえば2−4cmに、それぞれ設定される。
ただし、ハウジング12の形状は実施例のような平面矩形の長手形状に限らず、平面形状が楕円形などの長手形状であってもよい。同様に、断面形状も矩形に限らず、円形や他の形状の多角形であってよい。
上ハウジング16の平坦な主面がハウジング12の上面20となる。ハウジング12の上面20は、特に図1(A)や図2(B)からよく分かるように、ハウジング12の長手方向に沿って延びる長方形である。また、この上面20は第1面に相当し、その第1面20とは反対の第2面に相当するのは、下ハウジング18の表面ないし主面22である。この第2面22は、第1面20にほぼ平行になる。ただし、ハウジング12の長手方向C1において、図2(B)における上方向を前方(一方端側)、下方向を後方(他方端側)とする。
ハウジング12の上面20のハウジング前方端(一方端)付近の、上面20の幅方向中心(図2(B)において中心線C1で示す。)からやや右に、電源スイッチ24が設けられる。この電源スイッチ24は、ゲーム機112(図9)の電源を遠隔操作でオン/オフするためのものである。
なお、この実施例では、コントローラ10自体をオン/オフするための電源スイッチは設けておらず、コントローラ10のどれかの操作スイッチを操作することによってコントローラ10はオンとなり、一定時間以上操作しなければ自動的にオフとなるようにしている。
上面20の幅方向中心線C1上でかつハウジング12の長手方向中心(図2(B)において中心線C2で示す。)より前方側に、方向スイッチ26が設けられる。この方向スイッチ26は、4方向プッシュスイッチとセンタスイッチとの複合スイッチであり、矢印で示す4つの方向、前(または上),後(または下),右および左の操作部分26F,26B,26Rおよび26Lを含むとともに、センタスイッチ28を含む。操作部分26F,26B,26Rおよび26Lは1つのキートップ上に、リング状に90°間隔で配置され、それらのいずれかを操作することによって、それら操作部分26F,26B,26Rおよび26Lに個別的に対応して多角形状に配置されている接点(図示せず)が選択的にオンされ、それによって前後左右いずれかの方向を選択する。たとえば、操作部分26F,26B,26Rおよび26Lのいずれかを操作することによって、それらの接点のいずれかがオンとなり、たとえば、ゲームプレイヤによって操作可能なキャラクタまたはオブジェクト(プレイヤキャラクタまたはプレイヤオブジェクト)の移動方向を指示し、あるいはカーソルの移動方向を指示したりすることができる。
センタスイッチ28は、1つの押しボタンスイッチであり、いわゆるBボタンとして使用され得る。Bボタン28は、よく知られているように、後述のセレクトスイッチ32で選択したゲームモードの変更や、後述のAボタンで決定したアクションの取り消し等のために用いることができる。
ただし、実施例のような複合スイッチは、よく知られている(たとえば、http://www.jpo.go.jp/shiryou/s_sonota/hyoujun_gijutsu/small_switch/b−6−2.htmを参照)ように、携帯電話などに多く利用されているので、ここでは、これ以上の詳細な説明は省略する。
このように、実施例の方向スイッチ26では、各方向(実施例では4方向)を示すように多角形状(矩形または菱形)に配置された接点(図示せず)を含み、それらの接点を単一のキートップに形成された操作部分26F,26B,26Rおよび26Lで操作するようにした。しかしながら、各操作部分26F,26B,26Rおよび26Lがそれぞれ個別のキートップとして設けられ、各キートップで対応する1つの接点を操作するようにしてもよい。
また、方向スイッチ26は、十字型のキーでもよいし、ジョイスティックでもよい。方向スイッチ26がジョイスティックである場合、その先端を360°任意の方向に倒し、あるいは偏位させることによって、任意の方向や位置を指定することができる。
上面20上には、方向スイッチ26の後方よりに、図2(B)でよく分かるように、ハウジング12の幅方向中心線C1を挟んで「ハ」字状に配置されるキートップを有するスタートスイッチ30およびセレクトスイッチ32が設けられる。スタートスイッチ30は、ゲームを開始(再開)したり、一時停止(Pause)したりする等のために用いられる。セレクトスイッチ32は、ゲームモードの選択等のために用いられる。
なお、このスタートスイッチ30およびセレクトスイッチ32は、実施例のような「ハ」字型に限ることなく、横一列、縦一列など任意の配置で設けられ得る。
上記方向スイッチ26の位置にほぼ対応する位置の下のハウジング14の第2面22には、凹部34が形成される。この凹部34は、図1や図2(C)から分かるように、第2面22の幅方向の端から端まで届くように形成された凹みである。また、この実施例の凹部34の位置は、図2(B)および図2(C)を対比すれば分かるように、厳密には、方向スイッチ26よりやや前方よりに形成される。この凹部34は、後述のようにプレイヤが手でこのコントローラ10すなわちハウジング12の把持部18を把持したとき、その同じ手の人差し指が自然な形で位置する、そのような位置に形成される。したがって、この凹部34の谷36の幅(ハウジング12の長手方向の)は、その人差し指が入り込むことができる大きさに形成される。凹部34は、その谷36から立ち上がる2つの傾斜面38および40を有し、前者の傾斜面38は、谷36からハウジング12の後方に立ち上がって形成され、後者の傾斜面40は逆に、谷36からハウジング12の前方へ立ち上がる。
この下ハウジング14の凹部34の後側の傾斜面38には、Aボタン42が設けられる。Aボタン42は、方向スイッチ26に対応する位置に設けられている。ここで、対応する位置とは、ハウジング12の上面から透視したとき、方向スイッチ26とAボタン42とが近くに配置されるような位置であり、より好ましくは方向スイッチ26とAボタン42の少なくとも一部が重なるように配置される。谷36の底部は図示からよく分るように、ハウジング12の上面20すなわち第1面とほぼ平行な面となっていて、Aボタン42が配置される後方傾斜面38は、その谷36の底部平行面と、先に説明した、ハウジング12の後方(他方)側に形成された把持部18との間に形成されることになる。そして、Aボタン42は、スイッチ接点(図示せず)とそのスイッチ接点をオン/オフするためのキートップを有するプッシュスイッチであり、キートップは、傾斜面38に垂直な方向に動くように設けられる。したがって、後に説明するように、プレイヤは、凹部34に人差し指または中指を掛けてそれを手前へ引き寄せるだけで、Aボタン42をオンすることができる。つまり、人差し指または中指をその凹部34に配置しておくことができるので、必要なとき、Aボタン42を素早く、確実に操作できる。
なお、Aボタン42は、たとえば、打つ(パンチ)、投げる、つかむ(取得)、乗る、ジャンプするなどの任意の動作をプレイヤキャラクタもしくはプレイヤオブジェクトにさせることができる。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かす等を指示することができる。また、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。
また、上述の把持部18は、ハウジング12の、上記凹部34すなわちAボタン42より後方に形成される。後述のように、コントローラ10を使用するとき、プレイヤの片手の手のひらが把持部18を包むようにして、コントローラ10すなわちハウジング12を把持するのであるが、このとき、コントローラ10すなわちハウジング12のサイズは片手で把持できる大きさまたは太さであるから、プレイヤは片手だけで安定的に把持部18を把持することができる。
しかも、Aボタン42のキートップは傾斜面38に垂直な方向、すなわち把持部18に向かう方向に押し込むことによってオンする。傾斜面38はハウジング12の上面すなわち第1面20に対しては垂直ではないので、Aボタン42のキートップは結局、上面20に対して非垂直な方向に押し込まれる。これに対して、Bボタン28や方向スイッチ26は上ハウジング16の上面20に垂直な方向に押し込むことによってオンする。これらの押し込み方向は、把持部18を把持した場合に人差し指と親指とが自然に力を加えることができる方向であり、把持部18の把持状態を維持したまま、操作時にも親指と人差し指で操作部周辺を支持し続けることが可能となり、常に安定した把持状態で操作を行うことができる。
さらに、ハウジング12の幅方向中心線C1上であってかつ長手方向中心C2より後方に、間隔を隔てて直線上にXボタン44およびYボタン46が配置される。これらXボタン44およびYボタン46は、たとえば、3次元ゲーム画像を表示する際の視点位置や視点方向、すなわち仮想カメラの位置や画角を調整するために使用される。
把持部18を構成する下ハウジング14には、電池カバー48が着脱自在に取り付けられていて、この電池カバー48の内側には図7に示す電池78が収納される。したがって、コントローラ10はこの電池78を電源として動作する。なお、電池カバー48を取り外すときには、係合爪50を下ハウジング14から外せばよい。
このように、ハウジング12内の把持部18の範囲に、比較的重量物である電池78を収納するようにしたので、重心G(図2(B))がこの把持部18の範囲に確実に含まれることになり、把持部18を把持した状態でコントローラ10を変位または運動させる場合、それが安定して行なえる。
ハウジング12の先端面52(図1、図2(A))には、後に詳細に説明する撮像情報演算ユニット54の一部を構成する赤外線撮像装置56が配置され、ハウジング12の後端面58(図1、図2(E))には、たとえば32ピンのエッジコネクタ60が設けられる。このコネクタ58は、この実施例のコントローラ(第1コントローラ)10を別の第2コントローラ(後述)に装着して接続するためなどに利用される。
このように構成されたコントローラ10は、ゲームプレイヤ(図示せず)の1つの手で把持され得る。プレイヤがコントローラ10を手で把持した状態が図3および図4に示される。これらの図を参照して、プレイヤの片手(図示の場合、右手)62の手のひら62Pと、中指62c,薬指62dおよび小指62eの腹とでハウジング12の把持部18を軽く包むように把持する。この状態では手62の親指62aが方向スイッチ26の上に置かれ、人差し指62bが下ハウジング14の凹部34の谷36に置かれる。つまり、方向スイッチ26はハウジング12を把持した手62の親指62aが届く位置、すなわち親指62aで操作可能な位置に配置され、Aボタン42は、ハウジング12を把持した手62の人差し指62bが届く位置、すなわち人差し指62bで操作可能な位置に配置される。したがって、手62でハウジング12を把持したまま、親指62aで方向スイッチ26を操作することができ、人差し指62bでAボタン42を操作することができる。詳しく言うと、手62の人差し指62bが下ハウジング14に形成されている上述の凹部34の谷36の表面に接触するように置かれる。その状態で人差し指62bを手前側(図3でいえば右側)に折り曲げることによって、人差し指62bの腹でAボタン42のキートップを凹部34の手前側傾斜面38に垂直に押し込むことができる。したがって、手62でハウジング12を把持したまま、人差し指62bでAボタン42を操作できるのである。
ただし、把持する手62が左手であっても同様である。
また、上では、Aボタン42は人差し指62bで操作するものとして説明した。しかしながら、Aボタン42の後方にさらにAボタンと同様の形状のA2ボタン(図示せず)を設け、ハウジング12を手のひら62Pと薬指62dおよび小指62eの腹とで把持し、Aボタン42を人差し指62bで、A2ボタン32を中指62cでそれぞれ操作するようにしてもよい。
このように、この実施例のコントローラ10では、片手で把持した状態で第1操作部(実施例では方向スイッチ26)および第2操作部(実施例ではAボタン42)を容易に操作できる。つまり、この実施例のコントローラ10では、コントローラ10を片手で把持したまま各操作部を安定に操作できる。したがって、もう一方の手を、ゲームプレイのために、あるいは他の目的のために、活用することができる。しかも、片手だけで把持できるので、両手で持った場合に比べて、コントローラ10は自由に動かすことができる。そのため、コントローラ10の移動や運動または変位がスムーズに行える。
また、実施例のコントローラ10では、ハウジング12の上面20に設けた第1操作部たとえば方向スイッチ26の位置と、ハウジング12の下面に設けた第2操作部たとえばAボタン42の位置とを、ハウジング12の上下面20,22で対応させ、それらを操作する親指と人差し指(または中指)でハウジング12を挟むようにしたので、操作が一層安定する。たとえば、親指62aで方向スイッチ26を操作しているときには、Aボタン42を操作すべく凹部34に置かれた人差し指62bまたは中指62cでハウジング12を下方から支えるので、親指の62aでの方向スイッチ26のプッシュ操作が安定して行なえる。同じように、人差し指62bまたは中指62cでAボタン42を操作しているときには、方向スイッチ26を操作するための親指62aでハウジング12を上方から支えるので、人差し指62bまたは中指62cでのAボタン42のプッシュ操作が安定する。
さらに、この実施例では、先の図2(B)に図示した幅方向中心線C1と長手方向中心線C2との交点またはその近傍にコントローラ10の重心Gがくる。この重心Gの位置は、図2からよく分るように、把持部18の範囲に包含される。したがって、コントローラ10を把持部18で把持した場合には、把持した手62(図3)が重心Gの位置を支えることになり、把持した状態を非常に安定に維持できる。そのため、撮像情報演算ユニットのためのコントローラ12の運動や移動または変位が一層スムーズに行える。
図3では、人差し指62bでAボタン42を押している状態を図示した。Aボタン42を押す必要がないときには、人差し指62b(これは中指62cでも同じ)をAボタン42から離せばよい。つまり、人差し指62b(または中指62c)を図5に示すように、凹部34の先端側傾斜面40に押し付けるようにすれば、人差し指62b(中指62c)をAボタン42から離した状態で安定させることができる。したがって、Aボタン42を押すか押さないかでハウジング12の把持の状態を変更する(持ち替える)必要がない。
図6および図7にはこのコントローラ10で上ハウジング16を外した状態および下ハウジング14を外した状態がそれぞれ図解される。上ハウジング16を外した図6に示すように、下ハウジング14の上端には、下ハウジング14の上部開口を封止するように基板64が取り付けられていて、この基板64の上主面上に先に説明した、電源スイッチ24,方向スイッチ26,スタートスイッチ30,セレクトスイッチ32,Xボタン44およびYボタン46が組み立てられ、適宜の配線(図示せず)によってコントローラ回路を構成するプロセサ66(図8)に接続される。
基板64の上主面上には、さらに、方向スイッチ26とXボタン44との間に、たとえばスタートスイッチ30およびセレクトスイッチ32の間あたりに、加速度センサ68および無線モジュール70が組み付けられる。
加速度センサ68は好ましくは、X軸,Y軸およびZ軸の各々に沿う直線的な加速度を検出する3軸直線加速度計である。あるいは、X軸およびY軸(または他の1対の軸)の各々に沿う加速度を検出する2軸直線加速度計が、望まれる制御信号のタイプに依っては、他の実施例で用いられてもよい。限定的ではない例として、3軸または2軸直線加速度計68は、アナログデバイシーズインコーポレーテッドまたはSTマイクロエレクトロニクスエヌ.ブイ.から入手できるタイプのものでよい。好ましくは、加速度センサ68は静電容量または容量結合型であり、それはシリコン微細加工MEMS(微細電気機械システム)テクノロジに基づくものである。しかしながら、現存するまたは後に開発される任意の他の適宜の加速度計技術(たとえば、圧電型またはピエゾ抵抗型)などが3軸または2軸加速度センサ68を提供するために用いられ得る。
当業者が理解するように、加速度センサ68のような直線加速度計は加速度センサの各軸に対応する直線に沿った加速度を検出することができるだけである。換言すれば、加速度センサ68の直接的な出力は、それの2軸または3軸の各々に沿った(静的なまたは動的な)直線加速度を表わす信号に限定される。結果として、加速度センサ68は、非直線(たとえば、円弧状の)経路に沿った動き、回転、回転運動、角のある変位、傾き、位置、姿勢または任意の他の身体的特性を直接検出することはできない。
しかしながら、ここでの説明から当業者が容易に理解できるように、加速度センサ68から出力される直線加速度信号の付加的な処理によって、ハウジング12に関連する付加的な情報が判断できあるいは計算できる。たとえば、静的直線加速度(すなわち、重力)を検出することによって、加速度センサ68の直線加速度出力が、検出した直線加速度に傾き角度を相関付けることによって、重力ベクトルに関連するオブジェクトの傾きを推定するのに使用され得る。この方法において、ハウジング12の傾き、姿勢または位置を判断するのに、加速度センサ68はプロセサ66との組み合わせで用いられ得る。同様に、たとえば、ユーザの手によって加速度センサ68を内蔵したハウジング12が動的な加速度を受けるとき、加速度センサ68によって発生される直線加速度信号の処理を通して、ハウジング12の種々の動きおよび/または位置が計算または推定され得る。他の実施例では、プロセサ66へ信号を出力するより前に、その中において、加速度計から出力される加速度信号の任意の所望の処理を行なうために加速度センサ68は埋め込み信号プロセサまたは他の形式の専用プロセサを含むことができる。たとえば、加速度センサが静的加速度(たとえば、重力)を検出するように意図されているときには、埋め込みのまたは専用のプロセサは、検出した加速度信号を対応する傾き角度へ変換するのに使用され得る。
この実施例では、加速度センサ68およびプロセサ66は、プレイヤが手で把持したコントローラ10の位置および/または姿勢を検出するための位置および/または姿勢検出手段として機能する。方向スイッチ26、Aボタン42等の操作信号に加え、加速度センサ68からの加速度信号出力の変換を通して位置および/または姿勢の情報を出力し、ゲーム機側で位置や姿勢の操作信号として取得することで、自由度の高いゲーム操作を行うことが可能となる。
このように、ハウジング12内に加速度センサ68を配置し、その加速度センサ68によって検出した加速度がハウジング12すなわちコントローラ10の姿勢や位置を検出するために使用できれば、図3−図5を参照して説明したようにハウジング12の把持部18を片手で持った状態でその手の手首を動かすこと(回転)によって、コントローラ10の位置や姿勢を簡単に変更できる。したがって、この実施例のコントローラ10によれば、コントローラ10の各操作スイッチ24−32,42−46の操作信号だけでなく、コントローラ10の位置や姿勢もコントローラデータとして利用でき、一層自由度の高い操作が可能となる。
しかも、加速度センサ68が把持部18のハウジング12内に設けられ、方向スイッチ26に親指、Aボタン42に人差し指が自然に配置され、残りの指で把持部を把持するようになるので、コントローラ10の持ち方が個人差に依存せず、ばらつきのない一定の基準によって精度の高い検出を行うことができる。つまり、上述の手首の回転運動は、回転に伴って回転軸のずれを生じる可能性があり、さらに右回転や左回転で非対称な回転をするため、誤差を生じる可能性がある。しかしながら、実施例のように加速度センサ68を把持部18のハウジング12内に設けることによって、回転に伴う回転軸のずれが軽減され、検出の誤差の可能性が減じられる。
また、実施例では、加速度センサ68(またはジャイロセンサ)をハウジング12内の把持部18(図1)の範囲内に設置した。そのため、位置および/または姿勢検出手段による位置および/または姿勢の検出が正確に行なえるという利点があるが、この位置および/または姿勢検出手段は目的に応じてハウジング12内の他の位置に配置することもできる。たとえば、位置および/または姿勢検出手段をハウジング12の後方に寄せれば、ハウジング12の変位に伴う位置および/または姿勢の変化量が小さくなり、逆にハウジング12の前方に寄せれば、ハウジング12の変位に伴う位置および/または姿勢の変化量は大きくなる。したがって、必要な性能に応じて最適の位置に配置するようにすればよい。
他の例示的な実施例において、加速度センサ68は、たとえば回転または振動素子を内蔵した適宜のテクノロジのジャイロセンサに置換されてもよい。この実施例において使用され得る例示的なジャイロセンサは、アナログデバイシーズインコーポレーテッドから入手できる。直線加速度センサ68とは異なり、ジャイロセンサは、その中の1つまたは複数のジャイロスコープ素子によって規定される軸周りの回転(または角速度)を直接検出することができる。したがって、ジャイロセンサと直線加速度センサとの間の基本的な相違のために、特別な応用のために選択された装置に依ってこれらの素子からの出力信号に行われる処理動作に、対応した変更がなされる必要がある。直線加速度センサとジャイロスコープとの間の基本的な相違と同じようにジャイロスコープの性質が、当業者に知られているので、開示の残りの部分をあいまいにしないように、ここではさらなる詳細は説明しない。ジャイロスコープは、回転運動を直接検出するというそれの能力のゆえに一定の利点を与えるものではあるが、説明しているコントローラ応用に関して使用されるときには、直線加速度センサが一般的にコスト的に有利である。
基板64の上主面には、さらに、アンテナパターン72が形成され、このアンテナパターン72と上述の無線モジュール70とによって、このコントローラ10をワイアレスコントローラ化している。つまり、上述の各スイッチやボタン24−32,42−46の操作信号、さらには、撮像情報演算ユニット54の検出データ(検出信号)および加速度センサ68からの加速度データ(加速度信号)は、無線モジュール70で微弱電波信号に変調され、その変調微弱電波信号がアンテナパターン72から放射される。したがって、ゲーム機112(図9)はその微弱電波を受信し、復調や復号を実行することによって、スイッチ24−32,42−46の操作信号、撮像情報演算ユニット54の検出データ、加速度センサ68の検出加速度データを取得することができる。そして、ゲーム機112はそのようにして取得した信号やデータとゲームプログラムとに基づいて、ゲームを進行させる。
また、基板64の上主面に設けられる水晶振動子74は、このコントローラ10に含まれるコンピュータまたはプロセサ66(図8)の基本クロックを作るためのものである。
下ハウジング14を外した図7に示すように、上記基板64の下主面上の先端縁に撮像情報演算ユニット54が取り付けられ、後端縁にコネクタ60が取り付けられる。この撮影情報演算ユニット54は、前述の赤外線撮影装置56とこの撮像装置(撮像手段)56で撮影した画像データを処理するための画像処理回路76を有する。
そして、先に説明したAボタン42が撮像情報演算ユニット54の後方の基板64の下主面上に取り付けられていて、それよりさらに後方に、前述の電池78が収容される。電池78とコネクタ60との間において基板64の下主面上には、バイブレータ80が取り付けられる。このバイブレータ80は、たとえば振動モータやソレノイドであってよい。バイブレータ80によってコントローラ10に振動を発生するので、それを把持しているプレイヤの手62(図3)にその振動が伝達され、いわゆる振動対応ゲームが実現できる。したがって、プレイヤに対して振動による刺激を与えることができる。
なお、このように、バイブレータ80を、ハウジング12の長手方向において撮像情報演算ユニット54とは反対側に配置すれば、バイブレータ80の振動が撮像情報演算ユニット54による画像撮影に悪影響を与える可能性が小さい。つまり、バイブレータ80と撮像情報演算ユニット54との間の距離をできるだけ大きくできるので、バイブレータ80の振動で撮像情報演算ユニット54の撮像素子がぶれたりするのが、可及的抑制できる。
なお、撮像手段または撮像装置56で撮影する方向を変更するとき、図3−図5を参照して既に説明したようにハウジング12の把持部18を片手で持った状態でその手の手首を動かせばよいが、このとき、撮像手段56がハウジング12の前方端に備えられ、方向スイッチ26に親指、Aボタン42に人差し指が自然に配置され、残りの指で把持部を把持するようになるので、コントローラ10の持ち方が個人差に依存せず、ばらつきのない一定の基準によって撮像を行うことができる。
ここで、図8を参照して、実施例のコントローラ10の電気回路構成について説明する。
撮像情報演算ユニット54は、赤外線撮像装置56と、この撮像装置56で撮影した画像データを処理するための上述の画像処理回路76を有する。撮像装置56は、図示するように、CMOSセンサやあるいはCCDのような固体撮像素子561を含み、その撮像素子561の前方には、赤外線フィルタ(赤外線だけを通すフィルタ)562およびレンズ563を配置している。したがって、この撮像装置56では、赤外線だけを検出して画像データを作成する。そして、画像処理回路76は、撮像装置56から得られた赤外画像データを処理して、高輝度部分を検知し、それの重心位置や面積を検出して、それらのデータを出力する。この高輝度部分の位置や面積のデータが、画像処理回路76からプロセサ66に入力される。さらに、このプロセサ66には、上述の各スイッチやボタン24−32,42−46からの操作信号が入力される。さらに、加速度センサ68からの3軸または2軸の加速度データ(加速度信号)もプロセサ66に入力される。
プロセサ66は、操作スイッチ24−32,42−46からの操作信号に基づいて、そのときどの操作スイッチや操作ボタンが操作されているかを検出する。この操作データを、加速度データおよび高輝度部分データとともに、一連のコントローラデータとして出力し、無線モジュール70に入力する。無線モジュール70は所定周波数の搬送波をこのコントローラデータで変調し、その微弱電波信号をアンテナ72から放射する。
なお、コントローラ10の後端に設けられていたコネクタ60を通して入力された信号やデータもプロセサ66に入力され、プロセサ66によって上述の信号やデータと同様に処理されてコントローラデータとして無線モジュール70へ与えられ、同様に微弱電波信号としてこのコントローラ10から出力される。
なお、プロセサ66は、無線モジュール70とは独立のものでもよいが、Bluetooth(登録商標)規格等の無線モジュールを用いる場合には、マイコンとしてモジュール内に含まれるような構成であってもよい。つまり、通信装置のマイコンないしプロセサをコントローラ10の全体の動作を制御するプロセサとして用いてよく、その場合、コストを低減することができ、また、コントローラ10の一層の小型化が可能である。
ゲームシステム100でこのようなコントローラ10を用いてゲームをプレイするためには、プレイヤ102は、図9に示すように、一方の手62でコントローラ10(のハウジング)を把持する。そして、コントローラ10の先端の前述の撮像情報演算ユニット54の撮像装置56(図8)がディスプレイ104の画面106を向くようにする。このとき、ディスプレイ104の画面106の近傍に、2つのLEDモジュール108Aおよび108Bを設置する。このLEDモジュール108Aおよび108Bからはそれぞれ赤外線が出力される。一方、プレイヤが把持したコントローラ10の撮像情報演算ユニット54には上述のように赤外線フィルタ562(図8)が組み込まれている。
撮像情報演算ユニット54の画像処理回路76(図8)は、その赤外線を含む撮影画像を処理することによって、LEDモジュール108Aおよび108Bの位置や面積情報を高輝度点の情報として取得する。輝点の位置や大きさのデータがコントローラ10から無線(微弱電波)でゲーム機112に送信され、ゲーム機112で受信される。プレイヤ102がコントローラ10すなわち撮像情報演算ユニット54を動かすと、輝点の位置や大きさのデータが変化するため、それを利用して、ゲーム機112はコントローラの動きに対応した操作信号を取得することができ、それに従ってゲームを進行させることができる。
このように、撮像情報演算ユニット54によってマーカ(実施例ではLEDからの赤外光)を撮影し、その撮影画像中のマーカの位置の変化に応じた操作信号を取得することができるため、指で操作する操作スイッチや操作キーあるいは操作ボタンによる操作とは異なり、画面内における座標直接入力や回転の入力が可能となる。ただし、このような撮像情報演算ユニットの原理自体は、特許第3422383号等に記載されているようによく知られているので、ここでは、これ以上の説明は省略する。なお、モーショントラッキングとは、画面(画像)の中の特定のマークやパターンをターゲットとして、物体やカメラ(ここでは、コントローラ10)の動きを解析することである。
図10は、たとえば図1および図2に詳細に図示したコントローラ10を簡略化して図解した図解図であるが、この図10に示すように、コントローラ10のハウジング12の長手方向の、すなわち幅方向中心線C1に沿う方向の一方端側よりに把持部18を設定し、この中心線C1の線上でかつこの把持部18とは反対側のハウジング12の他方端に撮像装置56を配置しているため、図3のように把持部18を把持した手62の手のひら62Pを通る直線(幅方向中心線C1)が撮像装置56の指示方向と一致するので、撮像装置56が向けられている方向を認識し易いという利点がある。つまり、撮像装置56の撮像方向(後述する視野角Cの向いている方向に相当)がハウジング12の長手方向に沿った方向になるので、ハウジング12を把持した状態で撮像装置56の指示方向を直感的に把握することができる。これにより、ハウジング12を把持した状態で撮像装置56の指示方向を直感的に把握することができる。ここで、ハウジング12の長手方向とは、この実施例のように直方体形状のハウジングの場合には、たとえば幅方向中心線C1で表される。また、撮像装置56の撮像方向は、後述する図29に示すように、親指を方向スイッチ26のたとえば中央に置き、把持部18を手のひらとその他の指とで把持したとき、その親指の向いている方向でもある。
なお、図9に示すLEDモジュール108Aおよび108B、およびコントローラ10の撮像情報演算ユニット54はそれぞれ視野角AおよびB、およびCを持っている。実施例では、視野角AとBとは等しく、ともに、たとえば34°(半値角)で、視野角Cはたとえば41°である。そして、追跡動作において、図11に示すように撮像装置56の視野角Cの中に2つのLEDモジュール108Aおよび108Bがともに存在するときは、撮像情報演算ユニット54は、2つのLEDモジュール108Aおよび108Bによる高輝度点の位置や大きさの情報を使って撮像情報演算ユニット54すなわちコントローラ10の動きを検出する。
ただし、図12に示すように撮像装置56の視野角Cの中に1つのLEDモジュール108Aまたは108Bだけが存在するときは、撮像情報演算ユニット54は、2つのLEDモジュール108Aおよび108Bのどちらか一方だけによる高輝度点の位置や大きさの情報を使ってコントローラ10の動きを検出する。
上で説明したコントローラ10はそれ単独でゲーム用操作装置としての機能を十分に発揮できるものであるが、さらに、以下に説明する実施例のように、別のコントローラ(あるいはアダプタ)と協働させることも可能である。
図13‐図17に示す実施例では、図13に示す第2コントローラ200と先に説明した実施例の第1コントローラ10とを用いる。詳しく説明すると、第2コントローラ200は、第1コントローラ10の縦長のハウジング12とは違って、横長のハウジング202を含む。この横長ハウジング202の左右両側部分がそれぞれ、把持部204および206として機能する。把持部204は図16に図解するように、左手63の手のひらで包み込むように把持され、把持部206は右手62の手のひらで包み込むように把持される。つまり、把持部204は左手把持部であり、把持部206は右手把持部である。このことは、図18‐図20の別の実施例においても同様である。ただし、把持部204の表面と把持部206の表面とは同じ平面内に位置し、ともに図14および図15に示すハウジング202の上面203を構成する。
ハウジング202の、左手把持部204と右手把持部206との間には、受け入れ部208が形成される。この受け入れ部208は、第1コントローラ10のハウジング12をそこへ受け入れるための凹部である。受け入れ部208は前面および上面が開放された形状で、その内面形状は、第1コントローラ10の長手方向に直交する方向でのハウジング12の外形形状(図2(E))に相似し、それよりも若干大きめの寸法で形成される。つまり、受け入れ部208の幅Waは図2(D)に示す第1コントローラ10のハウジング12の幅Wと等しいかやや大きく、深さD1は、ハウジング12の厚みT(図2(A),(E))とほぼ等しくされる。ただし、その奥行きの長さD2は、この実施例では、たとえば図1に明確に図示している第1コントローラ10のハウジング12の把持部18の長さに対応する長さに設定される。つまり、受け入れ部208の奥行きD2は、第1コントローラ10の把持部18の長さ(第1コントローラの長手方向の)と等しいか、あるいはそれぞれよりやや長くもしくはやや短く設定される。
そして、この受け入れ部208の奥部には、正確には図示していないが、第1コントローラ10に設けられたコネクタ60と接続されるコネクタ210が配置される。第1コントローラ10のコネクタ60が雄型コネクタであったので、第2コントローラ200のこのコネクタ210は雌型コネクタである。
第2コントローラ200のハウジング202の左手把持部204の上面には、周知のアナログジョイスティック212と方向スイッチ(ディジタルジョイスティック)214とが配置される。また、右手把持部206の上面には、Aボタン216およびBボタン218が設けられるとともに、そのやや大き目のAボタン216を取り囲むように、Xボタン220およびYボタン222が設けられ、さらには、ディスプレイの画面106(図9)に3次元ゲーム画像を表示しているときの仮想カメラの位置すなわち視点を変更するためのジョイスティック224が設けられる。Aボタン216およびBボタン218の機能や作用は第1コントローラ10のAボタン42およびBボタン28と変わらない。Xボタン220はたとえば仮想カメラのX軸まわりの注視角度を切り替えるために使用され、Yボタン222はY軸まわりの注視角度を変更するために利用され得る。
このような第2コントローラ200の受け入れ部208の前面開口から、第1コントローラ10のハウジング12をその他方端(後端)から挿入する。そして、受け入れ部208のコネクタ210に第1コントローラ10のコネクタ60が接続されるまで、ハウジング12を押し込む。そうすると、図14に示すように、第1コントローラ10が第2コントローラ200と合体する。
第1コントローラ10と第2コントローラ200とが一体化した状態では、特に図14および図15からよく分かるように、第1コントローラ10の把持部18はほぼ受け入れ部208に埋没する。それは、受け入れ部208の奥行きが把持部18の長さと等しいか、あるいはそれよりやや長くもしくはやや短く設定されているからである。したがって、第1コントローラ10の重心が第2コントローラ200で支持されることになり、第2コントローラ200で第1コントローラ10を安定的に支持することができる。
さらに、受け入れ部208の幅が第1コントローラ10のハウジング12の幅と等しいかよりやや大きく設計され、深さは、ハウジング12の厚みと等しいかやや大きくセンサ形成されるので、第1コントローラ10を第2コントローラ200の受け入れ部208に挿入または装着したとき、第1コントローラ10と第2コントローラ200との間でがたつきはなく、しかも、図15からよく分かるように、第1コントローラ10のハウジング12の上面20と第2コントローラ200のハウジング202の上面203とが面一になるので、第1コントローラ10が第2コントローラ200の表面から突出した状態になって第2コントローラ200の操作に邪魔になったりすることはい。
第1コントローラ10と第2コントローラ200とが一体にされると、プレイヤは、図16に示すように、第2コントローラ200のハウジング202の把持部204および206をそれぞれ左手63および右手62で把持する。この状態では第1コントローラ10の操作スイッチやボタンは一部を除いて使用する必要がなくなる。ただし、第1コントローラ10の無線送信機能と撮像情報演算ユニットの機能とはそのまま利用可能である。
図14および図15に示すように第1および第2のコントローラ10および200が一体化されたとき、その電気回路構成は図17のようになる。つまり、図17において、操作スイッチ212−224は第2コントローラ200の操作スイッチやボタンであり、これらの操作スイッチ212−224の操作信号は、コネクタ210からコネクタ60を通って第1コントローラ10のプロセサ66に入力される。そのため、このプロセサ66は、第2コントローラ200からの操作信号を、第1コントローラ10からの操作信号と同じように処理し、コントローラデータとして無線モジュール70に入力する。したがって、無線モジュール70からアンテナ72を経て、第2コントローラ200の各スイッチやボタン212−224の操作信号がコントローラデータとして微弱電波で無線送信され得る。したがって、第1コントローラ10と第2コントローラ200とを合体してもワイアレスコントローラとして機能する。
また、第1コントローラ10の撮像情報演算ユニット54は第1コントローラ10と第2コントローラ200とが合体しても何ら影響を受けないので、図16に示すように両手で把持した第2コントローラ200のハウジング202を上下左右に変位させることによって、第1コントローラ10の撮像情報演算ユニットの機能を利用してゲームをすることができる。
なお、第1コントローラ10と第2コントローラ200とが一体化した状態では、第1操作部は、典型的には第1コントローラ10の前述の方向スイッチ26であり、第2操作部は、同様にAボタン42である。第3操作部は、第2コントローラ200の左手把持部204に設けられたジョイスティック212や方向スイッチ214であり、第4操作部は、第2コントローラ200の右手把持部206に設けられたAボタン216などである。ただし、第3操作部および第4操作部の関係は逆の場合もあり得る。いずれの場合も、第3操作部および第4操作部は、図16に示すように、左手63の親指63aや右手62の親指62aで操作され得る。
先に説明したように、第1コントローラ10では、把持部18で把持したときに親指62aで操作可能な位置に第1操作部(方向スイッチ26)を配置し、人差し指62bまたは中指62cで操作可能な位置に第2操作部(Aボタン42)を配置した。したがって、第1コントローラ10では、把持部18の範囲に設けられたXボタン44およびYボタン46はやや操作し難い。これに対して、第2コントローラ200では、Xボタン220およびYボタン222はともに、ハウジング202の右手把持部206に設けられ、右手62(図16)で把持部206を把持した状態で親指62aで容易に操作可能である。
このように、片手用の第1コントローラ10には必要最小限の数の操作スイッチまたはキーを配置することによって、片手操作時の操作をし易くすることができる。しかしながら、たとえば上述のXボタン44やYボタン46のように、ゲームの種類によってはかなり頻繁に操作する必要が生じる場合もある。第1コントローラ10では、Xボタン44やYボタン46は把持部18の範囲に設けられているので、操作が必ずしも容易ではない。つまり、第1コントローラ10だけでは、Xボタン44やYボタン46の操作の困難性からプレイヤが不満を持つ場合も生じる。このような場合に、第2コントローラ200と第1コントローラ10とを合体させれば、第2コントローラ200のXボタン220およびYボタン222は操作が容易であるので、プレイヤにそのような不満を感じさせない。
また、第2コントローラ200にも方向指示手段として、ジョイスティック212や方向スイッチ214を配置している。他方、これらのジョイスティック212や方向スイッチ214はハウジング202の左手把持部204に設けられ、左手63(図16)で把持部204を把持した状態で親指63aで容易に操作可能である。そのため、第1および第2コントローラ10および200の合体時には方向指示手段もまた容易に操作することができる。ただし、第1コントローラ10においても元々方向スイッチ26は操作し易い位置に設けられていたので、比較的使用頻度の高い方向指示手段は、第1コントローラ10単体時でも、第2コントローラ200との合体時でも、操作性はよいのである。
なお、図13‐図17の実施例では、第2コントローラ200の右手把持部206にAボタン216,Bボタン218,Xボタン220およびYボタン222を配置した。しかしながら、この実施例の場合、Aボタン216およびBボタン218を第2コントローラ200から除去し、第2コントローラ200にはXボタン220およびYボタン222だけを配置するようにしてもよい。
つまり、第1コントローラ10と第2コントローラ200とが合体したときでも、Aボタン42およびBボタン28(図1)は支障なく操作できるので、第2コントローラ200からは機能の重複した操作スイッチや操作ボタンを除去してコスト低減を図ることができる。これに対して、第1コントローラ10のXボタン44およびYボタン46は合体時多少操作しにくくなるので、これらの機能は第2コントローラ200に別途設けた操作スイッチ(ボタン)で代替させるようにする。そうすれば、合体時の不便さが解消できる。
図18に示す実施例は、第2コントローラ200のハウジング202の右手把持部206の上面に設けられている操作スイッチが先の図13‐図16に示す実施例のものと若干異なる以外は、図13‐図17に示す実施例と同じであるので、以下の説明では、同一または類似の操作スイッチまたは操作ボタンに同じ参照符号を付すことによって、重複する説明は省略する。この図18の実施例では、ハウジング202の右手把持部206の上面に設けられるのは、Aボタン216,Bボタン218,Xボタン220,Yボタン222,Cボタン226,およびDボタン228である。Aボタン216およびBボタン218は先の実施例のAボタン216およびBボタン218と同じ機能を持つ。Xボタン220,Yボタン222,Cボタン226およびDボタン228によって、先の実施例のジョイスティック224と同等の機能を達成する。
なお、この図18の実施例においても、図13−図17の実施例と同様に、第2コントローラ200の右手把持部206のAボタン216およびBボタン218を除去し、第2コントローラ200にはXボタン220およびYボタン222だけを配置するようにしてもよい。そうすれば、コスト低減が可能となるとともに、合体時の操作性の低下を防止できる。
図19の実施例は、図13−図17の実施例および図18実施例と同様であるが、以下の点が異なる。すなわち、図13−図16の実施例および図18の実施例ではともに、ハウジング202の幅(第1コントローラ10の長手方向)が十分あったので第1コントローラ10の把持部18はほぼ第2コントローラ200のハウジング202に埋没した。これに対して、図19の実施例では、ハウジング202の幅が図13−図16の実施例および図18の実施例に比べてやや小さいので、第1コントローラ10の把持部18の大半がハウジング202から露出することになる。そのため、この実施例は先の実施例に比べてやや不安定になる。ただし、第1コントローラ10および第2コントローラ200のそれぞれのハウジング12および202の上面20および203が面一になることは同じである。
ハウジング202の幅がやや小さいので、この実施例では、図18の実施例でハウジング202の左手把持部204に設けられていたジョイスティック212を省略するとともに、右手把持部206のスイッチを変更した。この実施例では、右手把持部206には、Aボタン216,Bボタン218,Xボタン220およびYボタン222だけが配置されている。
なお、この図19の実施例においても、図13−図17の実施例と同様に、第2コントローラ200の右手把持部206のAボタン216およびBボタン218を除去し、第2コントローラ200にはXボタン220およびYボタン222だけを配置するようにしてもよい。そうすれば、コスト低減が可能となるとともに、合体時の操作性の低下を防止できる。
図20の実施例は、図19実施例と同様であるが、以下の点が異なる。すなわち、図19実施例と同様に、図13−図16の実施例および図18の実施例に比べて第1コントローラ10の把持部18の第2コントローラ200のハウジング202から突出または露出する長さが長い。そのために、さらに、この実施例では、ハウジング202の右手把持部206には、Aボタン216およびBボタン218だけを設けた。ただし、このボタン216および218は、AボタンおよびBボタンとしてではなく、XボタンおよびYボタンとして機能させるようにしてもよい。
図21に示すものは、ガンタイプのアダプタ300である。このアダプタ300は、通常のガン型コントローラと同じように、手で持つための床尾(butt)302を有し、この床尾302には用心金304で囲まれた引き金306が設けられる。床尾302から弾倉を経て銃身308が延びる。ただし、この銃身308はコネクタ310によって、床尾302に対して着脱可能とされている。
そして、銃身308をコネクタ310から抜きとった後、図22に示すように、コントローラ10のコネクタ60をコネクタ310に差し込むことによって、コントローラ10を銃身308の代わりに第1コントローラ10を装着することができる。この場合、引き金306がコントローラ10のAボタン42に代わって利用できるようにすれば、シューティングゲームの興趣が一層増す。
図23に示す実施例の第1コントローラ10では、図1に示す実施例に比べて、各操作スイッチやボタン24−32,42−46の形状や配置が変更されている。特に、方向スイッチ26は、この実施例では、図1実施例の複合スイッチではなく、ゲーム機によく用いられている十字キーからなる方向スイッチが用いられている。この十字キーすなわち方向スイッチ26は、第2コントローラ200の方向スイッチ214と同じものであってよい。また、この実施例の第1コントローラ10では、スタートスイッチ30およびセレクトスイッチ32が、先の実施例のような「ハ」字状の配置ではなく、横一線上に配置されている。
さらに、この実施例のコントローラ10の上面20には、その一方端側(先端側)に、複数の(実施例では4つの)発光ダイオード(LED)821,822,823および824が設けられる。これらLED821−824の光は外部から視認可能であるが、ハウジング12の上面20内に埋没されるため、図23(B)で突出して見えるというものではない。ただし、突出して見えるように配置しても一向に構わない。これらLED821−824は、この第1コントローラ10からコントローラ信号(コントローラデータ)の電波信号を発信するときに、コントローラ番号に応じたLEDが点灯されることによって、そのコントローラが第何番目のコントローラなのかを表示することができる。
たとえば、図9に示すゲーム機112が4つのコントローラを同時に受け付けることができるように設計されているとき、4人のゲームプレイヤがそれぞれ1つずつ第1コントローラ10を使用するが、その第1番目のコントローラから第4番目のコントローラのうち自分が何番目のコントローラかをLED821−824の選択的点灯によって確認することができる。たとえば、自分のコントローラ10のLED821が点灯したとすると、その自分のコントローラは第1番目のコントローラとして割り付けられていることが分かる。
また、図23の実施例では、ハウジング10の先端面52が、先の実施例とは異なり、ハウジング12の長手方向に沿った軸に対して直交面ではなく、傾斜面として形成されている。そして、その傾斜した先端面に対して撮像情報演算ユニットの撮像装置56が装着されているので、撮像情報演算ユニットすなわち撮像装置56の撮像範囲中心軸もハウジング12の長手方向に沿った軸に対して斜交する。したがって、ハウジング12の把持部18を持ってディスプレイ104の画面106に傾斜先端面52すなわち撮像装置56を正対させるとき、図24に示すように、ハウジング12を全体に傾斜させることができる。したがって、この実施例によれば、たとえば椅子に座ってコントローラ10を操作する場合などに手の疲れが少なくて済むかも知れない。
つまり、今までの実施例では、ハウジング12の先端面は長手方向に沿った軸に直交していたため、そこに取り付けられている撮像装置56を画面106に正対させようとすると、コントローラ10をハウジング12の上面20が上になりかつ軸が水平状態になるように把持し、しかもその状態で、撮像装置56を画面106内の位置に持っていかなければならず、その場合には把持部18を把持した手の手首が過度に緊張することがあるかもしれない。これに対して、図23の実施例では、コントローラ10の長手方向に沿った軸が斜めになるように手首の自然な角度または状態を保ったままハウジング12を把持しても撮像装置56を画面106に正対させることができるので、手首に過度の緊張が生じることがなく、疲れを軽減することができる。
同じ発想で、図25に示す実施例のように、コントローラ10のハウジング12の先端部12Hを他の部分から分離し、その先端部12Hを軸84によって当該他の部分の先端に取り付ける。そうすれば、先端部12Hは必要に応じて点線で示すように折り曲げできるので、撮像情報演算ユニットの撮影装置56の撮影面がそれに応じて図25のように変位する。そのため、図23および図24に示す実施例と同様に、手の疲れを軽減する効果が期待できる。ただし、この図25の実施例では必要なければ先端部12Hを長手方向に沿った軸に沿わせて真っ直ぐの状態(図25で実線の状態)にしておけばよい。
図26‐図28は第1コントローラ10のさらに他の実施例を示す。この実施例のコントローラ10は、以下の点を除いて、図1および図2に示す実施例のコントローラ10と同様である。以下の説明では、同一または類似の部分に同じ参照符号を付すことによって、重複する説明は省略する。
この実施例のコントローラ10も、下ハウジング14と上ハウジング16との組み合わせからなる、長手形状のかつ断面矩形またはそれに近い形状のハウジング12を含む。そして、ハウジング12の後端側に片手で把持可能な大きさまたは太さを有する把持部18が形成される。そして、ハウジング12の上表面20上の、長手方向C1(図27)での把持部18とは反対側(前端側)に方向スイッチ26が配置される。ただし、この実施例では、方向スイッチ26は、図1の実施例のような複合スイッチではなく、いわゆる十字キーである。そして、その十字キーすなわち方向スイッチ26の下方(後端より)には、Aボタン42がハウジング12の幅方向中央に設けられる。先の実施例ではAボタン42はハウジング12の下面22の凹部34に設けたが、この実施例では、Aボタン42をハウジング12の上面20上に配置するように変更した。その理由は、Aボタン42はBボタン28に比べて操作頻度が高いので、たとえば後述の図29からよく分るように、それを親指で素早く確実に操作できるようにするためである。方向スイッチ26及びAボタン42は、この実施例では、第1操作部に相当する。したがって、方向スイッチ26及びAボタン42は、第1面20に対して直交する方向に押し込まれるキートップとそれによって操作される接点(図示せず)とを有するプッシュスイッチである。
そして、この実施例では、特に図27(C)からよく分るように、十字スイッチすなわち方向スイッチ26のキートップの第1面20からの高さH1は、Aボタン42のキートップの第1面20からの高さH2に比べて高くされている。つまり、方向スイッチ26がAボタン42より背高に設定されている。その理由は、十字キーすなわち方向スイッチ26を操作したとき、それにともなってAボタン42を押してしまうのを防止するためである。
このAボタン42からやや後端よりに、スタートスイッチ30とセレクトスイッチ32が長手方向に直交する方向(幅方向)に一直線上に配置され、さらに、それらの間に挟まれてメニュースイッチ86が設けられる。メニュースイッチ86は、このコントローラ10を使って実行するゲームなどのメニュー(たとえば、1人プレイモード、対戦モード、など)を選択するためのモードや、ゲーム機を起動した直後のメニュー等にゲームのモードを即時に切り替える場合に使用される。メニュースイッチ86はハウジング12の幅方向においてAボタン42と中心が一致するが、スタートスイッチ30およびセレクトスイッチ32はそのメニュースイッチ86(すなわちAボタン42)から左右均等の位置に配置されている。
上記のようなボタン配置であるので、たとえば右手でコントローラ10を操作する場合には、セレクトスイッチ32を操作するときには、親指をAボタン42に配置した状態から指を曲げることなく、スライドさせるだけで操作ができ、素早い操作が可能となる。さらに、左手で操作を行う場合には、同様にスタートスイッチ30が素早い操作に適したスイッチとなる。したがって、ソフトウェア等によってセレクトスイッチ32とスタートスイッチ30の割り当ての変更などを行えば、ユーザが右利きであるか、左利きであるかに関わらず、素早い操作が可能となる。
なお、メニュースイッチ86および電源スイッチ24は、この実施例では、ハウジング12の上面20に形成された孔内に陥没または埋没するように設けられ、したがって、たとえば図27(C)のように側面図では見えないようになっている。これらのスイッチ24および86を埋没させた理由は、これらのスイッチはゲームの開始時などの特定のときに操作するだけでよい一方で、ゲーム中に間違って操作すると、たとえばデータが消えたりするなどの不都合が生じるので、ゲーム開始時には意識すれば操作できるが、ゲーム中においては無意識には操作できないようにしているのである。
さらに、この実施例のコントローラ10においても、図23のコントローラと同様に、コントローラ番号を表示するためのLED821−824が設けられる。ただし、図23の実施例ではLED821−824はハウジング12の一方端(前端)側に設けられたのであるが、この実施例では、ハウジング12の他方端(後端)側に配置される。
ハウジングの下表面22の把持部18とは長手方向反対側の、上記方向スイッチ26の位置にほぼ対応する位置には、凹部34が形成される。この凹部34は、先の実施例では第1面20に平行な面を有する谷36があったが、この実施例では、その谷はなく、緩やかに傾斜した第1傾斜面38と第2傾斜面40とを含む。そして、把持部18の方向に延びる第1傾斜面38には、Bボタン28が設けられる。そして、Bボタン28は、第1操作部を形成する方向スイッチ26やAボタン42に対応する位置に設けられている。ただし、対応する位置とは、ハウジング12の上面から透視したとき、Bボタン28が、方向スイッチ26やAボタン42の近くに配置されるような位置である。
なお、先の実施例においてはハウジングの下表面側にAボタンが配置されていたが、先の実施例のセンタスイッチに比べ、この実施例のAボタン42は押しやすい位置に配置されているために、これを使用頻度の多いAボタンとし、ハウジングの下表面22側のスイッチをBボタンとすることで、より操作がし易くなる。
なお、この実施例では、Bボタン28が第2操作部に相当することになる。したがって、Bボタン28は、傾斜面38に対して垂直ではあるが第1面20に対しては非垂直な方向に押し込まれるキートップとそれによってオンまたはオフされる接点(図示せず)とを有する。
また、この実施例では、図26や図27(C)からはっきり分るように、ハウジング12の先端52側に延びる第2傾斜面40の第1面20に対する傾斜角は、第1傾斜面38の第1面20に対する傾斜角より小さく設定されている。つまり、第2傾斜面40が第1傾斜面38に比べて緩やかな傾斜を有する。このように、第2傾斜面40を第1傾斜面38より傾斜を緩やかにすれば、後述の図32に示すように両手持ちのときに持ち易くなるし、図31に示すようにBボタン28から人差し指を離すときにその指を離す方向に十分移動できるので、確実に離せるようになるという利点がある。
さらに、図28からわかるように、スタートスイッチ30、メニュースイッチ86およびセレクトスイッチ32を横一直線に配置した関係で、この実施例では、無線モジュール70が、ハウジング12の幅方向右側に配置される。そして、電源スイッチ24は、先の実施例とは逆に、基板64のハウジング12の幅方向左側に設け、基板64の幅方向右側の先端部にはアンテナパターン72を配置するようにした。このように、アンテナパターン72をハウジング12の幅方向右側先端部に配置することによって、図32に示す両手持ちの場合にも、ハウジング12すなわちコントローラ10を持つ手によってアンテナ72からの微弱電波の放射が影響されないようになる、という利点がある。つまり、アンテナパターン72は、コントローラ10を両手で持ったときの、手とは反対側になる、ハウジング12の幅方向の側に配置される。
なお、図26−図28の実施例では、ハウジング12の下面の凹部34に設けたスイッチはBボタン28であった。しかしながら、このBボタン28をZボタンとしての機能を持つ操作手段に置き換えてもよい。なお、Zボタンは、一例として、たとえばシューティングゲームにおいてトリガスイッチとして利用され、さらには、プレイヤオブジェクトをノンプレイヤオブジェクトに対して注目(いわゆる、Z注目)させるべきときなどに操作されるものである。
このように構成されたコントローラ10をゲームプレイヤの手で把持した状態が図29および図30に示される。これらの図を参照して、プレイヤの右手62の手のひら62Pと、中指62c,薬指62dおよび小指62eの腹とでハウジング12の把持部18を軽く包むように把持する。この状態では手62の親指62aが方向スイッチ26の上に置かれ、人差し指62bが下ハウジング14の凹部34に置かれる。つまり、方向スイッチ26はハウジング12を把持した手62の親指62aが届く位置、すなわち親指62aで操作可能な位置に配置され、Bボタン28は、ハウジング12を把持した手62の人差し指62bが届く位置、すなわち人差し指62bで操作可能な位置に配置される。したがって、手62でハウジング12を把持したまま、親指62aで方向スイッチ26を操作することができ、人差し指62bでBボタン28を操作することができる。詳しく言うと、手62の人差し指62bが下ハウジング14に形成されている上述の凹部34の先端方向に緩やかに傾斜する第2傾斜面40の表面に接触するように置かれる。その状態で人差し指62bを手前側(図29でいえば右側)に折り曲げることによって、人差し指62bの腹でBボタン28のキートップを凹部34の手前側傾斜面38に垂直に押し込むことができる。そして、この実施例の場合、Aボタン42は、特に図29からよく分るように、方向スイッチ26と同じく、片手62の親指62aで操作することになる。すなわち、この実施例では、方向スイッチ26を操作するときには親指62aは延ばして操作し、Aボタン42を操作するときには親指62aを曲げて操作する。つまり、方向スイッチ26もAボタン42もともに親指62aで操作する。したがって、親指62aは方向スイッチ26の上ではなく、Aボタン42の上で操作待機状態(レスト状態)とするようにしてもよい。
図29では、人差し指62bでBボタン(またはZボタン)28を押している状態を図示した。Bボタン28を押す必要がないときには、人差し指62b(または中指62c)をBボタン28から離せばよい。つまり、人差し指62b(または中指62c)を図31に示すように、凹部34の第2傾斜面40に置けば、人差し指62b(中指62c)をBボタン28から離した状態で安定させることができる。したがって、Bボタン(またはZボタン)28を押すか押さないかでハウジング12の把持の状態を変更する(持ち替える)必要がない。
このように、この実施例のコントローラ10では、片手で把持した状態で第1操作部(実施例では方向スイッチ26およびAボタン42)および第2操作部(実施例ではAボタン42)を容易に操作できる。つまり、この実施例のコントローラ10では、コントローラ10を片手で把持したまま各操作部を安定に操作できるので、もう一方の手を、ゲームプレイのために、あるいは他の目的のために、活用することができるという非常に優れた効果が発揮できるものではあるが、両手持ちの状態で操作することも可能である。その両手持ちの状態が図32に示される。なお、この実施例では、方向スイッチ26に近傍の把持部側の位置にAボタン42を配置した。さらに、方向スイッチ26とAボタン42とが配置された領域の裏側(換言すれば、方向スイッチ26の真裏よりもやや後ろ方向)にBボタン28に配置したので、方向スイッチ26、Aボタン42およびBボタンを片手で安定的に操作しやすくできる。また、上述したように方向スイッチ26がAボタン42よりも高くなっているので、Aボタン42を間違って押しにくくできる。
両手持ちの場合、図32に示すように、方向スイッチ26が左側になるように、ハウジング12の先端側を左手63で持ち、ハウジング12の後端側を右手62で持つ。このとき、コントローラ10すなわちハウジング12は、右手も左手も同様であるが、上面20(図27)を親指62aおよび63aの腹で押さえ、下面22(図27)を人差し指62bおよび63bの側面で支えるように持つ。したがって、方向スイッチ26やAボタン42は左手63の親指63aの腹で操作するが、Bボタン28(図26,図27)は左手の人差し指63bの先端で操作することになる。また、右手62の親指62aでは、Xボタン44やYボタン46を操作することになる。
ただし、両手持ちの場合にどのように持ち、各操作スイッチや操作ボタンをどの手の指で操作するかはこの図32の例示に限られるものではないので、たとえばAボタン42を右手62の親指62aを延ばすことによって操作することなども可能であろう。ただし、この図32のように持てば、アンテナ72(図28)からの電波放射が手によって影響されることが防止できる。
上述のように、図23の実施例および図26−図28の実施例のコントローラ10では、複数のLED821−824を設け、それらの選択的な点灯によってコントローラ番号を示すようにした。このコントローラ番号を示すLEDの制御処理について、図33に示すゲームシステム100を用いて以下に説明する。なお、上述の図23や図26実施例等のコントローラ10および上述のゲームシステム100と同一または類似の部分に同じ参照符号を付すことによって、重複する説明は省略する。
図33を参照して、この発明の一実施例であるゲームシステム100は、ゲーム機112およびコントローラ10を含む。なお、この実施例では、ゲーム機112は、最大4つのコントローラ10(コントローラ10a−10d)と通信可能に設計されている。また、ゲーム機112と各コントローラ10とは、無線によって接続される。この無線通信は、Bluetooth規格に従って実行されるが、無線LANなど他の規格に従って実行されてもよい。
ゲーム機112は、略直方体のハウジング402を含み、ハウジング402の前面にはディスクスロット404およびメモリカードスロットカバー406が設けられる。ディスクスロット404から、ゲームプログラムおよびデータを記憶した情報記憶媒体の一例である光ディスク408(図34)が挿入されて、ハウジング402内のディスクドライブ410(図34)に装着される。メモリカードスロットカバー406の内側にはメモリカードスロットが設けられ、外部メモリカード412(図34)が挿入される。メモリカード412は、光ディスク408から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム100を利用してプレイしたゲームのゲームデータ(ゲームの結果データまたは途中データ)を保存(セーブ)しておいたりするために利用される。また、上記ゲームデータの保存は、外部メモリカード412に対して行うことに代えて、例えば内部にフラッシュメモリ等を設け、当該内部メモリに対して保存を行うようにしてもよい。
ゲーム機112のハウジング402の後面には、AVケーブルコネクタ(図示せず)が設けられ、そのコネクタを用いて、AVケーブル414を通してゲーム機112にモニタ(ディスプレイ)104を接続する。このモニタ104は典型的にはカラーテレビジョン受像機であり、AVケーブル414は、ゲーム機112からの映像信号をカラーテレビのビデオ入力端子に入力し、音声信号を音声入力端子に入力する。したがって、カラーテレビ(モニタ)104の画面上にたとえば3Dビデオゲームのゲーム画像が表示され、内蔵されるスピーカ416(図33、34)からゲーム音楽や効果音などのステレオゲーム音声が出力される。
また、モニタ104の周辺(この実施例では、上側)には、上述のように、2つのLEDモジュール108Aおよび108Bが設けられる。LEDモジュール108Aおよび108Bから延びるケーブル418はゲーム機112の後面の図示しないコネクタに接続され、LEDモジュール108Aおよび108Bにはゲーム機112から電源が与えられる。なお、ゲーム機112の電源は、一般的なACアダプタ(図示せず)によって与えられる。ACアダプタは家庭用の標準的な壁ソケットに差し込まれ、家庭用電源を、ゲーム機112を駆動するのに適した低いDC電圧信号に変換する。他の実施例では、電源としてバッテリが用いられてもよい。
このゲームシステム100において、ユーザまたはプレイヤがゲーム(または他のアプリケーション)をプレイするために、ユーザはまずゲーム機112の電源をオンし、次いで、ユーザはビデオゲーム(もしくはプレイしたいと思う他のアプリケーション)をストアしている適宜の光ディスク408(図34)を選択し、その光ディスク408をゲーム機112のディスクスロット404からディスクドライブ410にローディングする。これに応じて、ゲーム機112がその光ディスク408にストアされているソフトウェアに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。ユーザはゲーム機112に入力を与えるためにコントローラ10を操作する。
図34は図33実施例のゲームシステム100の電気的な構成を示すブロック図である。ゲーム機112にはCPU420が設けられる。このCPU420は、ゲーム機112の全体的な制御を担当する。CPU420は、ゲームプロセサとして機能し、このCPU420には、バスを介してメモリコントローラ422が接続される。メモリコントローラ422は主として、CPU420の制御の下で、バスを介して接続されるメインメモリ424の書込みや読出しを制御する。このメモリコントローラ422にはGPU(Graphics Processing Unit) 426が接続される。
GPU426は、描画手段の一部を形成し、たとえばシングルチップASICで構成され、メモリコントローラ422を介してCPU420からのグラフィクスコマンド(作画命令)を受け、そのコマンドに従って、ジオメトリユニット428およびレンダリングユニット430によって3Dのゲーム画像を生成する。つまり、ジオメトリユニット428は、3次元座標系の各種オブジェクト(複数のポリゴンで構成されている。そして、ポリゴンとは少なくとも3つの頂点座標によって定義される多角形平面をいう。)の回転,移動,変形等の座標演算処理を行う。レンダリングユニット430は、各種オブジェクトの各ポリゴンにテクスチャ(模様画像)を貼り付けるなどの画像生成処理を施す。したがって、GPU426によって、ゲーム画面上に表示すべき3Dの画像データが作成され、その画像データがフレームバッファ432内に記憶される。
なお、GPU426が作画コマンドを実行するにあたって必要なデータ(プリミティブまたはポリゴンやテクスチャ等)は、GPU426がメモリコントローラ422を介してメインメモリ424から入手する。
フレームバッファ432は、たとえばラスタスキャンモニタ104の1フレーム分の画像データを描画(蓄積)しておくためのメモリであり、GPU426によって1フレーム毎に書き換えられる。具体的には、フレームバッファ432は、1画素(ピクセル)毎に、画像の色情報を順序立てて記憶している。ここで、色情報は、R,G,B,Aについてのデータであり、たとえば、8ビットのR(赤)データ、8ビットのG(緑)データ、8ビットのB(青)データおよび8ビットのA(アルファ)データである。なお、Aデータは、マスク(マット画像)についてのデータである。後述のビデオI/F442がメモリコントローラ422を介してフレームバッファ432のデータを読み出すことによって、モニタ104の画面上に3Dのゲーム画像が表示される。
また、Zバッファ434は、(フレームバッファ432に対応する画素数×1画素当たりの奥行きデータのビット数)に相当する記憶容量を有し、フレームバッファ432の各記憶位置に対応するドットの奥行き情報または奥行きデータ(Z値)を記憶するものである。
なお、フレームバッファ432およびZバッファ434は、ともにメインメモリ424の一部を用いて構成されてもよく、また、これらはGPU426の内部に設けられてもよい。
メモリコントローラ422はまた、DSP(Digital Signal Processor)436を介して、オーディオ用のRAM(以下、「ARAM」という。)438に接続される。したがって、メモリコントローラ422は、メインメモリ424だけでなく、サブメモリとしてのARAM438の書込みおよび/または読出しを制御する。
DSP436は、サウンドプロセサとして働き、メインメモリ424に記憶されたサウンドデータを用いたり、ARAM438に書き込まれている音波形(音色)データを用いたりして、ゲームに必要な音、音声或いは音楽に対応するオーディオデータを生成する。
メモリコントローラ422は、さらに、バスによって、各インタフェース(I/F)440,442,444,446および448に接続される。コントローラI/F440は、ゲーム機112にBluetooth通信ユニット450を介して接続されるコントローラ10のためのインタフェースである。具体的に言うと、Bluetooth通信ユニット450は、本体側通信装置であり、コントローラ10側通信装置である無線モジュール70から送信されるコントローラデータ(入力データ)を受信する。コントローラI/F440は、Bluetooth通信ユニット450によって受信されたコントローラデータを、メモリコントローラ422を通してCPU420に与える。上述のように、コントローラデータは、操作データ、加速度データおよび高輝度部分データの少なくとも1つを含む。ビデオI/F422は、フレームバッファ432にアクセスし、GPU426で作成した画像データを読み出して、画像信号または画像データ(ディジタルRGBAピクセル値)をAVケーブル414(図33)を介してモニタ104に与える。
外部メモリI/F444は、ゲーム機112の前面に挿入される外部メモリカード412をメモリコントローラ422に連係させる。それによって、メモリコントローラ422を介して、CPU420がこのメモリカード412にデータを書込み、またはメモリカード412からデータを読み出すことができる。オーディオI/F446は、メモリコントローラ422を通してDSP436から与えられるオーディオデータまたは光ディスク408から読み出されたオーディオストリームを受け、それらに応じたオーディオ信号(音声信号)をモニタ104のスピーカ416に与える。
そして、ディスクI/F448は、ディスクドライブ410をメモリコントローラ422に接続し、したがって、CPU420がディスクドライブ410を制御する。このディスクドライブ410によって光ディスク408から読み出されたプログラムおよびデータが、CPU420の制御の下でメインメモリ424に書き込まれる。CPU420は、このプログラムに従ってゲームまたはアプリケーションのための処理を実行する。
図35には、ゲームシステム100で使用される他の実施例のコントローラ10が示される。この実施例のコントローラ10では、上述の図23や図26の実施例と同様に、4つのLED821−824が一直線上に配置される。そして、図35(B)から分かるように、各LED821,822,823および824の近傍(上側など)に、当該LEDに対応するコントローラ番号を示すマーク501,502,503および504が設けられる。これによって、各LED821−824の示すコントローラ番号をより容易かつ確実にプレイヤに認識させることができる。この実施例では、マーク501−504は、上ハウジング16に形成された突起であり、当該突起の数によってコントローラ番号が表される。なお、マーク501−504の形成方法は任意であり、たとえばコントローラ番号を示す数字や図形などが上ハウジング16の表面に印刷されてもよい。
また、この実施例では、上ハウジング16には、メニュースイッチ86とXボタン444の間において、複数の孔510が形成される。ハウジング12内において、この孔510に対応する位置にはスピーカ512(図36)が設けられている。
図36には、図35の実施例のコントローラ10の電気回路構成が示される。スピーカ512は、図示しない音声処理回路を介してプロセサ66に接続されており、スピーカ512からは、プロセサ66から出力される音声データ(音声信号)に応じて音が出力される。なお、図8および図17では簡単のため省略したが、プロセサ66には、上述の震動モータのようなバイブレータ80や電源回路514なども接続されている。
プロセサ66には、4つのLED821−824がさらに接続されている。図37に示すように、各LED821−824のカソード側は、プロセサ66のポートP01−P04にそれぞれ接続されている。一方、各LED821−824のアノード側は、それぞれ抵抗R1−R4を介して電源電圧VDDに接続されている。また、プロセサ66のGND(グランド)端子は基準電位(接地電位)に接続されている。したがって、このコントローラ10では、プロセサ66が各ポートP01−P04をそれぞれオンにして開放したとき、当該ポートに対応するLEDに電圧が与えられて当該LEDが発光する。
この実施例のゲームシステム100では、複数のコントローラ10が接続されていてもそれぞれを識別できるように、それぞれのコントローラ10で異なった位置のLEDが点灯するように上記ポートの制御を行う。図33のようにコントローラ10a−10dの4つのコントローラ10が接続されているときには、たとえば、コントローラ10aではLED821のみが点灯し、コントローラ10bではLED822、コントローラ10cではLED823、コントローラ10dではLED824がそれぞれ点灯するというように、それぞれが異なった位置のLEDを点灯させる。
いずれのLEDを点灯させるかの順番については、たとえばゲーム機112への接続順等で決定してよい。ゲームが開始される際に、コントローラ10の操作スイッチ24−32、42−46のいずれかに対する最初の操作に応じて、当該コントローラ10がゲーム機112に無線通信によって接続され、ゲーム機112によって当該コントローラ10にコントローラ番号が割り当てられる。複数のコントローラ10が接続可能なゲームまたはアプリケーションの場合には、たとえば接続の早い順に小さい番号が割り振られる。
そして、ゲーム機112は、当該コントローラ10に対して、当該コントローラ番号に対応するLEDの点灯を指示する指示データを送信する。この実施例では、指示データは、LEDに対応するポートの開放を指示するデータである。コントローラ10のプロセサ66は、指示データを受信すると、当該指示データに従ったポートをオンにすることによって、指示されたLEDを点灯させる。
なお、LEDを点灯する際には、電池78の残量に応じてデューティ比(duty)を調整して明るさを変えるようにしてもよい。たとえば、電池残量を検出し、当該検出された残量が僅か(たとえば25%未満)であると判断されるときには、デューティ比を小さい値に設定し、結果として当該LEDが暗く点灯されるようにしてもよい。
また、コントローラ番号の表示とは別に、電池残量をLED821−824を用いて表示するようにしてもよい。たとえば、コントローラ10の操作スイッチ24−32、42−46のいずれかに対する最初の操作に応じて、まず、電池残量をLEDによって表示し、その後、ゲーム機112からコントローラ番号に対応するLEDを点灯するための指示データを受信したときに、コントローラ番号を表示するようにしてもよい。また、電池残量は、点灯するLEDの個数で表現されてよい。この実施例では、4つのLED821−824が設けられるので、電池残量が充分(たとえば75%以上)である場合には、全てのLED821−824を点灯し、そうでない場合には、当該残量に応じて、点灯するLEDの個数を1つずつ減少させるようにしてよい。
この実施例のゲームシステム100におけるLED制御処理の動作の一例が図38のフローチャートに示される。図38の左側のフローは各コントローラ10における動作の一例を示し、図38の右側のフローはゲーム機112における動作の一例を示す。
なお、コントローラ10のプロセサ66がLED制御処理を行うためのプログラムはプロセサ66内にハードウェアとして実装されている。また、ゲーム機112のCPU420がLED制御処理を行うためのプログラムは光ディスク408、またはその図示しないメモリもしくはメインメモリ424に予め記憶されている。
図38のステップS1で、コントローラ10のプロセサ66は、キー操作が行われたか否か、つまり、操作スイッチ24−32、42−46のいずれかの操作による入力があったか否かを判断する。
ステップS1で“YES”であれば、つまり、最初のキー操作があったときには、この実施例では、まず、電池残量の表示が行われ、その後、コントローラ番号の表示が行われる。
すなわち、プロセサ66は、ステップS3で、電源回路514から電源電圧を検出し、電圧によって電池残量を検出する。つまり、コントローラ10の電源は電池であって、その残量が減少することによって電圧低下が生じるため、電源電圧を検出することによって電池の残量を推定することができる。そして、ステップS5で、電池残量に基づく点灯処理を実行する。この点灯処理の動作の一例が図39に詳細に示される。
図39のステップS21で、プロセサ66は、電池残量は75%以上であるか否かを判断し、“YES”であれば、ステップS23で、ポートP01、P02、P03およびP04をオンにして、4つのLED821−824を点灯させる。なお、電池残量を表示するための各LEDの点灯は一定時間行われ、一定時間経過後にプロセサ66はオンにしたポートをオフにする。
一方、ステップS21で“NO”であれば、プロセサ66は、ステップS25で電池残量が50%以上75%未満であるか否かを判断し、“YES”であれば、ステップS27でポートP01、P02およびP03をオンにして、左端から3つのLED821、822および823を点灯させる。
また、ステップS25で“NO”であれば、プロセサ66は、ステップS29で電池残量が25%以上50%未満であるか否かを判断し、“YES”であれば、ステップS31で、ポートP01およびP02をオンにして、左端から2つのLED821および822を点灯させる。
また、ステップS29で“NO”であれば、つまり、電池残量が25%未満である場合には、プロセサ66は、ステップS33で、ポートP01をオンにして、左端の1つのLED821を点灯させる。ステップS23、S27、S31、S33を終了すると、この電池残量に基づく点灯処理が終了され、図38のステップS7に戻る。
このようにして、電池残量に応じた個数のLEDを点灯させるようにしたので、複数のLEDによって、コントローラ番号だけでなく、プレイヤにコントローラ10の電池残量がどの程度であるかを知らせることができる。
図38に戻って、ステップS7以降の処理によってコントローラ番号の表示が行われる。まず、ステップS7で、プロセサ66は、自身のBluetoothアドレスを含むデータを無線モジュール70を用いて発信する。この実施例では、上述のようにBluetoothによって無線通信が行われる。このコントローラ10の無線モジュール70のBluetoothアドレスは、プロセサ66または無線モジュール70内の図示しないメモリに予め記憶されている。なお、コントローラ10とゲーム機112は、初期設定等により互いのBluetoothアドレスを予め記憶しており、当該メモリには、ゲーム機112のBluetooth通信ユニット450のBluetoothアドレスも記憶されている。
ステップS7の発信に応じて、ゲーム機112では、CPU420とBluetooth通信ユニット450によって、当該コントローラ10との無線通信接続、コントローラ番号の設定、およびLED点灯指示などの処理が順に行われる。
具体的には、ステップS41で、CPU420制御下のBluetooth通信ユニット450は、コントローラ10から送信されたBluetoothアドレスを含むデータを受信する。次に、ステップS43で、当該アドレスが、予め記憶されたアドレスであるか否かを判断する。なお、各コントローラ10の無線モジュール70のBluetoothアドレスは、ゲーム機112のBluetooth通信ユニット450内の図示しないメモリまたはメインメモリ424に予め記憶されている。また、ゲーム機112のBluetooth通信ユニット450のBluetoothアドレスもまた、当該メモリまたはメインメモリ424に予め記憶されている。ステップS43で“NO”であれば、つまり、予めアドレスが登録されたコントローラ10以外のデータを受信した場合には、ステップS41に戻る。
一方、ステップS43で“YES”であれば、ステップS45で、CPU420制御下のBluetooth通信ユニット450は、当該コントローラ10をBluetoothのピコネットに接続させる。コントローラ10側では、ステップS9で、無線モジュール70によって、これに対応する処理が実行され、ピコネットへの接続が行われる。なお、ピコネットは、複数のBluetooth対応デバイスによって構成されるネットワークのことである。ステップS45とステップS9の処理によって、ゲーム機112とコントローラ10が無線によって接続される。
続いて、ゲーム機112において、CPU420は、ステップS47で当該コントローラ10に対してコントローラ番号を設定する。コントローラ番号としては、接続の順に小さい番号が設定される。この実施例では、最大4つのコントローラ10が接続可能に設計されているので、各コントローラ10には、1から4の番号が接続順に割り当てられることとなる。設定されたコントローラ番号は、たとえば各コントローラ10のBluetoothアドレスなどの識別情報に対応付けてメインメモリ424に記憶される。このように、この実施例では、複数のコントローラ10がその接続の順に識別される。
そして、ステップS49で、CPU420は、Bluetooth通信ユニット450を用いて、当該アドレスを持つコントローラ10に対して、設定したコントローラ番号に対応するLEDポート開放信号、すなわちコントローラ番号に対応するLEDの点灯を指示する指示データを送信する。なお、先に、コントローラの識別に基づいて当該コントローラ10で点灯させるべきLEDの設定が行われる。たとえば、コントローラ番号と複数のLED821−824の点灯状態を示す情報とを対応付けたテーブルを予め光ディスク408に記憶しておいて、当該テーブルを基にコントローラ番号に対応する点灯状態となるように設定を行う。なお、複数のLEDの点灯状態は、複数のLEDの点灯非点灯の組み合わせである。この点灯状態を示す情報としては、たとえば、各LEDごとに点灯または非点灯の情報を記憶してもよいし、あるいは、点灯されるLEDのみを示す情報を記憶してもよい。
ステップS49の送信に応じて、コントローラ10では、プロセサ66は、ステップS11で無線モジュール70を用いてLEDポート開放信号を受信する。
続いて、ステップS13で、プロセサ66は、電池残量に応じて、受信した指示データで指示されたLEDのデューティ比を設定する。たとえば、電池残量が25%未満の場合だけLEDの灯りを暗く見せるように、デューティ比を減少させる。これによって、コントローラ番号と同時に電池残量が残り少ないことを常に知らせることが可能になる。プレイヤが上述のステップS3およびS5の処理での表示を見逃したとしても電池残量を知ることができる。
そして、ステップS15で、プロセサ66は、指示データに従って当該LEDポートをオンにする。これによって、当該ポートが開放されて、当該ポートに接続されているLEDが点灯される。なお、指示データは、ポートをオンにすることを指示する信号が1度だけ送信され、その後、当該ポートは開放されたままとなるので、ゲーム中は常にコントローラ番号に応じたLEDが点灯することになる。したがって、コントローラ10は、1度点灯の指示を受けた後はLEDを点灯させ続けることができるので、自身のコントローラ番号を保持する必要はない。
このようにして、この実施例のゲームシステム100において、ゲーム機112に最初に接続したコントローラ10では、コントローラ番号が1であることを示すLED821が点灯される。さらに他のコントローラ10がゲーム機112に接続されると、当該コントローラ10では、そのコントローラ番号に対応するLEDが点灯される。
この実施例によれば、ゲーム機112と無線通信するコントローラ10に、コントローラ番号を示す複数のLED821−824を設けたので、各プレイヤに、そのコントローラ番号を容易に知らせることができる。また、複数のLED821−824を一直線上に配置するようにしたので、コントローラ番号を、視覚的に、より認識させ易くすることができる。また、接続可能なコントローラ10の最大数(実施例では4つ)のLEDを設けて、各LEDにコントローラ番号を割り当てて、コントローラ番号に対応付けられた1つのLEDのみを点灯するようにしたので、コントローラ番号をさらに認識させ易くすることができる。
なお、上述の各実施例では、複数のLEDのそれぞれにコントローラ番号を対応付けるようにしたが、コントローラ10の識別に応じた複数のLEDの選択的な点灯によるコントローラ番号の表示の方法は、上述の方法に限られず、適宜変更され得る。コントローラ番号を認識させるには、複数のLEDが他のコントローラ10の点灯状態と異なる点灯状態であれば足りる。したがって、コントローラ10の識別に応じて複数のLEDの点灯および非点灯の組み合わせを他のコントローラ10と異なるように制御すれば、プレイヤにコントローラ番号を知らせることができる。他の実施例では、たとえば、1番目のプレイヤのコントローラ10ではいずれか1個のLEDを点灯し、2番目−4番目のコントローラ10では、それぞれ2個−4個のLEDを点灯するようにしてもよい。
また、コントローラ10に設けるLEDの数は適宜変更可能であるのは勿論である。たとえば、最大4つのコントローラ10が接続可能なゲームシステムの場合には、コントローラ10に少なくとも3つのLEDを設ければ、各コントローラ10の点灯状態を異ならせることができる。さらにまた、複数のLEDの配列は一直線に限定されず適宜変更可能であり、複数のLEDは、円、円弧、多角形等などを描くように並べられてもよい。
また、上述の各実施例では、ゲーム機112から送信されたLEDポート開放信号すなわち指示データの受信に応じて、当該指示されたLEDを点灯させるようにしていた。しかしながら、ゲーム機112からコントローラ番号に関する情報を受信するようにして、コントローラ10のプロセサ66は、当該コントローラ番号に関する情報をそのメモリに記憶しておき、たとえばキー操作が検出されたときや一定時間ごとなど適宜なタイミングで、当該記憶した情報に基づいて、コントローラ番号の表示のために開放すべきポートをオンにして、当該LEDを点灯させるようにしてもよい。
また、上述の各実施例では、各コントローラ10で点灯すべきLEDの設定をゲーム機112で行うようにしていた。つまり、ゲーム機112で、各コントローラ10の複数のLEDの点灯状態を各コントローラ番号に応じて制御するようにしていた。しかしながら、他の実施例では、コントローラ10で複数のLEDの点灯状態を制御するようにしてもよい。具体的には、ゲーム機112が各コントローラ10に当該コントローラ番号を送信するようにしてもよく、これに応じて、各コントローラ10のプロセサ66が、自分のコントローラ番号に対応する点灯状態を設定して、点灯すべきLEDのポートをオンにし、当該LEDを点灯させる。あるいは、複数のコントローラ10の点灯状態を制御するための処理は、複数のコントローラ10のそれぞれで分担して行われるようにしてもよいし、もしくは、ゲーム機112と複数のコントローラ10のそれぞれで分担して行われるようにしてもよい。
また、複数のLEDの選択的点灯によるコントローラ番号の表示は、上述の各実施例のような無線通信型のコントローラ10で特に有益である。しかしながら、ゲーム機112に有線で接続されるコントローラであっても、複数のケーブルの絡まりや重なり等でゲーム機112のコネクタ位置を特定するのが困難でコントローラ番号を認識し難い状況が生じ得る。したがって、ゲームシステム100をゲーム機112に有線で接続されるコントローラを用いて構築する場合にも、コントローラ番号を示す複数のLEDを設けることによって同様の効果が得られる。