(第1の実施形態)
図1および図2を参照して、ゲームプログラムを実行する装置を含む本発明の第1の実施形態に係るゲームシステムについて説明する。以下、説明を具体的にするために、据置型のゲーム装置本体5を含むゲーム装置3を当該ゲームシステムの一例として説明する。なお、図1は据置型のゲーム装置3を含むゲームシステム1の一例を示す外観図であり、図2はゲーム装置本体5の一例を示すブロック図である。以下、当該ゲームシステム1について説明する。
図1において、ゲームシステム1は、表示手段の一例の家庭用テレビジョン受像機(以下、モニタと記載する)2と、当該モニタ2に接続コードを介して接続する据置型のゲーム装置3とから構成される。モニタ2は、ゲーム装置本体5から出力された音声信号を音声出力するためのスピーカ2aを備える。また、ゲーム装置3は、ゲームプログラムを記録した光ディスク4と、当該光ディスク4のゲームプログラムを実行してゲーム画面をモニタ2に表示出力させるためのコンピュータを搭載したゲーム装置本体5と、ゲーム画面に表示されたキャラクタ等を操作するゲームに必要な操作情報をゲーム装置本体5に与えるためのコントローラ7とを備えている。
ゲーム装置本体5は、無線コントローラモジュール19(図2参照)を内蔵する。無線コントローラモジュール19は、コントローラ7から無線送信されるデータを受信し、ゲーム装置本体5からコントローラ7へデータを送信して、コントローラ7とゲーム装置本体5とを無線通信によって接続する。さらに、ゲーム装置本体5には、当該ゲーム装置本体5に対して交換可能に用いられる情報記憶媒体の一例の光ディスク4が脱着される。
また、ゲーム装置本体5には、セーブデータ等のデータを固定的に記憶するバックアップメモリとして機能するフラッシュメモリ17(図2参照)が搭載される。ゲーム装置本体5は、光ディスク4に記憶されたゲームプログラム等を実行することによって、その結果をゲーム画像としてモニタ2に表示する。また、ゲームプログラム等は、光ディスク4に限らず、フラッシュメモリ17に予め記憶されたものを実行するようにしてもよい。さらに、ゲーム装置本体5は、フラッシュメモリ17に記憶されたセーブデータを用いて、過去に実行されたゲーム状態を再現して、ゲーム画像をモニタ2に表示することもできる。そして、ゲーム装置本体5のプレイヤは、モニタ2に表示されたゲーム画像を見ながら、コントローラ7を操作することによって、ゲーム進行を楽しむことができる。
コントローラ7は、無線コントローラモジュール19を内蔵するゲーム装置本体5へ、例えばBluetooth(ブルートゥース;登録商標)の技術を用いて操作情報等の送信データを無線送信する。コントローラ7は、分離した2つのコントロールユニット(コアユニット70およびサブユニット76)によって構成されており、主にモニタ2の表示画面に表示されるオブジェクト等を操作するための操作手段である。コアユニット70およびサブユニット76は、それぞれ片手で把持可能な程度の大きさのハウジングと、当該ハウジングの表面に露出して設けられた複数個の操作ボタン(十字キーやスティック等を含む)とが設けられている。また、後述により明らかとなるが、コアユニット70は、当該コアユニット70から見た画像を撮像する撮像情報演算部74を備えている。また、撮像情報演算部74の撮像対象の一例として、モニタ2の表示画面近傍に2つのLEDモジュール(以下、マーカと記載する)8Lおよび8Rが設置される。これらマーカ8Lおよび8Rは、それぞれモニタ2の前方に向かって例えば赤外光を出力する。また、コアユニット70は、ゲーム装置本体5の無線コントローラモジュール19から無線送信された送信データを通信部75で受信して、当該送信データに応じた音や振動を発生させることもできる。
なお、本実施例では、コアユニット70とサブユニット76とは、それぞれ無線ユニットを搭載しており、コアユニット70とサブユニット76との間には接続ケーブルが設けられていない。例えば、無線ユニットとしてBluetooth(登録商標)ユニットをコアユニット70およびサブユニット76にそれぞれ搭載することで、それぞれの操作データをゲーム装置本体5へ無線送信する。第1の例として、コアユニット70およびサブユニット76は、それぞれの操作データを直接ゲーム装置本体5へ無線送信する。第2の例として、サブユニット76は、サブユニット76で生じた操作データをコアユニット70へ無線送信する。そして、コアユニット70は、サブユニット76から送信された操作データと共に、コアユニット70で生じた操作データをゲーム装置本体5へ無線送信する。第3の例として、コアユニット70は、コアユニット70で生じた操作データをサブユニット76へ無線送信する。そして、サブユニット76は、コアユニット70から送信された操作データと共に、サブユニット76で生じた操作データをゲーム装置本体5へ無線送信する。
次に、図2を参照して、ゲーム装置本体5の内部構成について説明する。ゲーム装置本体5は、CPU(Central Processing Unit)10、システムLSI(Large Scale Integration)11、外部メインメモリ12、ROM/RTC(Read Only Memory/Real Time Clock)13、ディスクドライブ14、およびAV−IC(Audio Video−Integrated Circuit)15等を有する。
CPU10は、光ディスク4に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。CPU10は、システムLSI11に接続される。システムLSI11には、CPU10の他、外部メインメモリ12、ROM/RTC13、ディスクドライブ14、およびAV−IC15が接続される。システムLSI11は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。なお、システムLSI11の内部構成については、後述する。揮発性の外部メインメモリ12は、光ディスク4から読み出されたゲームプログラムや、フラッシュメモリ17から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、CPU10のワーク領域やバッファ領域として用いられる。ROM/RTC13は、ゲーム装置本体5の起動用のプログラムが組み込まれるROM(いわゆるブートROM)と、時間をカウントするクロック回路(RTC)とを有する。ディスクドライブ14は、光ディスク4からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ35または外部メインメモリ12に読み出したデータを書き込む。
また、システムLSI11には、入出力プロセッサ31、GPU(Graphics Processor Unit)32、DSP(Digital Signal Processor)33、VRAM(Video RAM)34、および内部メインメモリ35が設けられる。図示は省略するが、これらの構成要素31〜35は、内部バスによって互いに接続される。
GPU32は、描画手段の一部を形成し、CPU10からのグラフィクスコマンド(作画命令)に従って画像を生成する。VRAM34は、GPU32がグラフィクスコマンドを実行するために必要なデータ(ポリゴンデータやテクスチャデータ等のデータ)を記憶する。画像が生成される際には、GPU32は、VRAM34に記憶されたデータを用いて画像データを作成する。
DSP33は、オーディオプロセッサとして機能し、内部メインメモリ35や外部メインメモリ12に記憶されるサウンドデータや音波形(音色)データを用いて、音声データを生成する。
上述のように生成された画像データおよび音声データは、AV−IC15によって読み出される。AV−IC15は、AVコネクタ16を介して、読み出した画像データをモニタ2に出力するとともに、読み出した音声データをモニタ2に内蔵されるスピーカ2aに出力する。これによって、画像がモニタ2に表示されるとともに音がスピーカ2aから出力される。
入出力プロセッサ(I/Oプロセッサ)31は、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ31は、フラッシュメモリ17、無線通信モジュール18、無線コントローラモジュール19、拡張コネクタ20、および外部メモリカード用コネクタ21に接続される。無線通信モジュール18にはアンテナ22が接続され、無線コントローラモジュール19にはアンテナ23が接続される。
入出力プロセッサ31は、無線通信モジュール18およびアンテナ22を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ31は、定期的にフラッシュメモリ17にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、無線通信モジュール18およびアンテナ22を介して当該データをネットワークに送信する。また、入出力プロセッサ31は、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ22、および無線通信モジュール18を介して受信し、受信したデータをフラッシュメモリ17に記憶する。CPU10は、ゲームプログラムを実行することにより、フラッシュメモリ17に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ17には、ゲーム装置本体5と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置本体5を利用してプレイしたゲームのセーブデータ(ゲームの結果データまたは途中データ)が記憶されてもよい。
また、入出力プロセッサ31は、アンテナ23および無線コントローラモジュール19を介して、コントローラ7から送信される操作データ等を受信し、内部メインメモリ35または外部メインメモリ12のバッファ領域に記憶(一時記憶)する。なお、内部メインメモリ35には、外部メインメモリ12と同様に、光ディスク4から読み出されたゲームプログラムや、フラッシュメモリ17から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりしてもよく、CPU10のワーク領域やバッファ領域として用いられてもかまわない。
さらに、入出力プロセッサ31には、拡張コネクタ20および外部メモリカード用コネクタ21が接続される。拡張コネクタ20は、USBやSCSIのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール18に替えてネットワークとの通信を行ったりすることができる。外部メモリカード用コネクタ21は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ31は、拡張コネクタ20や外部メモリカード用コネクタ21を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
また、ゲーム装置本体5(例えば、前部主面)には、当該ゲーム装置本体5の電源ボタン24、ゲーム処理のリセットボタン25、光ディスク4を脱着する投入口、およびゲーム装置本体5の投入口から光ディスク4を取り出すイジェクトボタン26等が設けられている。電源ボタン24およびリセットボタン25は、システムLSI11に接続される。電源ボタン24がオンされると、ゲーム装置本体5の各構成要素に対して、図示しないACアダプタを経て電力が供給される。リセットボタン25が押されると、システムLSI11は、ゲーム装置本体5の起動プログラムを再起動する。イジェクトボタン26は、ディスクドライブ14に接続される。イジェクトボタン26が押されると、ディスクドライブ14から光ディスク4が排出される。
次に、図3を参照して、コントローラ7について説明する。なお、図3は、コントローラ7の外観構成の一例を示す斜視図である。
図3において、コントローラ7は、コアユニット70とサブユニット76とによって構成されている。具体的には、コアユニット70およびサブユニット76は、接続ケーブル等によって互いに接続されている構成ではなく、互いに分離して構成されている。コアユニット70は、ハウジング71を有しており、当該ハウジング71に複数の操作部72が設けられている。また、コアユニット70は、サブユニット76との組み合わせを区別するための表示部の一例であるLED702が設けられている。一方、サブユニット76は、ハウジング77を有しており、当該ハウジング77に複数の操作部78が設けられている。そして、サブユニット76は、コアユニット70との組み合わせを区別するための表示部の一例であるLED762が設けられている。
次に、図4および図5を参照して、コアユニット70について説明する。なお、図4は、コアユニット70の上面後方から見た一例を示す斜視図である。図5は、コアユニット70を下面前方から見た一例を示す斜視図である。
図4および図5において、コアユニット70は、例えばプラスチック成型によって形成されたハウジング71を有している。ハウジング71は、その前後方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。
ハウジング71上面の中央前面側に、十字キー72aが設けられる。この十字キー72aは、十字型の4方向プッシュスイッチであり、矢印で示す4つの方向(前後左右)に対応する操作部分が十字の突出片にそれぞれ90°間隔で配置される。プレイヤが十字キー72aのいずれかの操作部分を押下することによって、前後左右いずれかの方向が選択される。例えばプレイヤが十字キー72aを操作することによって、仮想ゲーム世界に登場するプレイヤキャラクタ等の移動方向を指示したり、カーソルの移動方向を指示したりすることができる。
なお、十字キー72aは、上述したプレイヤの方向入力操作に応じて操作信号を出力する操作部であるが、他の態様の操作部でもかまわない。例えば、リング状に4方向の操作部分を備えたプッシュスイッチとその中央に設けられたセンタスイッチとを複合した複合スイッチを上記十字キー72aの代わりに設けてもかまわない。また、ハウジング71上面から突出した傾倒可能なスティックを倒すことによって、傾倒方向に応じて操作信号を出力する操作部を上記十字キー72aの代わりに設けてもかまわない。さらに、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部を、上記十字キー72aの代わりに設けてもかまわない。また、タッチパッドを、上記十字キー72aの代わりに設けてもかまわない。また、少なくとも4つの方向(前後左右)をそれぞれ示すスイッチに対して、プレイヤによって押下されたスイッチに応じて操作信号を出力する操作部を上記十字キー72aの代わりに設けてもかまわない。
ハウジング71上面の十字キー72aより後面側に、複数の操作ボタン72b〜72gが設けられる。操作ボタン72b〜72gは、プレイヤがボタン頭部を押下することによって、それぞれの操作ボタン72b〜72gに割り当てられた操作信号を出力する操作部である。例えば、操作ボタン72b〜72dには、1番ボタン、2番ボタン、およびAボタン等としての機能が割り当てられる。また、操作ボタン72e〜72gには、マイナスボタン、ホームボタン、およびプラスボタン等としての機能が割り当てられる。これら操作ボタン72b〜72gは、ゲーム装置3が実行するゲームプログラムに応じてそれぞれの機能が割り当てられる。なお、図4に示した配置例では、操作ボタン72b〜72dは、ハウジング71上面の中央前後方向に沿って並設されている。また、操作ボタン72e〜72gは、ハウジング71上面の左右方向に沿って操作ボタン72bおよび72dの間に並設されている。そして、操作ボタン72fは、その上面がハウジング71の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
また、ハウジング71上面の十字キー72aより前面側に、操作ボタン72hが設けられる。操作ボタン72hは、遠隔からゲーム装置3本体の電源をオン/オフする電源スイッチである。この操作ボタン72hも、その上面がハウジング71の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
また、ハウジング71上面の操作ボタン72cより後面側に、複数のLED702が設けられる。後述により明らかとなるが、コントローラ7には、コアユニット70とサブユニット76との組み合わせを区別するために組番号が設けられている。例えば、LED702は、コアユニット70に現在設定されている上記組番号をプレイヤに通知するために用いられる。具体的には、無線コントローラモジュール19からコアユニット70へ、複数のLED702のうち、上記組番号に対応するLEDを点灯させるための組表示データが送信される。そして、コアユニット70は、複数のLED702のうち、送信された組表示データに応じたLEDを点灯させる。図4に示した例では、4つのLED702がコアユニット70の左右横方向に並設されており、その点灯箇所によって少なくとも4つの組み合わせを区別して表示することができる。なお、複数のLED702を並設するレイアウトは、横方向でなくてもかまわない。例えば、他の方向(例えば、コアユニット70の前後縦方向)に複数のLED702を並設してもいいし、格子状に複数のLED702を並設してもかまわない。
また、ハウジング71上面には、操作ボタン72bおよび操作ボタン72e〜72gの間に後述するスピーカ(図6のスピーカ706)からの音を外部に放出するための音抜き孔が形成されている。
一方、ハウジング71下面には、凹部が形成されている。ハウジング71下面の凹部は、プレイヤがコアユニット70を把持したときに当該プレイヤの人差し指や中指が位置するような位置に形成される。そして、上記凹部の傾斜面には、操作ボタン72iが設けられる。操作ボタン72iは、例えばBボタンとして機能する操作部である。
また、ハウジング71前面には、撮像情報演算部74の一部を構成する撮像素子743が設けられる。ここで、撮像情報演算部74は、コアユニット70が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを検出するためのシステムであり、例えば、最大200フレーム/秒程度のサンプリング周期であるため比較的高速なコアユニット70の動きでも追跡して解析することができる。この撮像情報演算部74の詳細な構成については、後述する。また、ハウジング71の後面には、コネクタ73が設けられている。コネクタ73は、例えばエッジコネクタであり、例えば接続ケーブルと嵌合して接続するために利用される。また、本実施例においては、コネクタ73は、コアユニット70とサブユニット76とを組とする組変更操作(ペアリング操作)において用いられる。具体的には、プレイヤが用いるコアユニット70とサブユニット76とを組とする組変更操作を行う際、当該プレイヤが用いるコアユニット70のコネクタ73とサブユニット76のコネクタ763(図8、図9参照)とを、一時的に接続させることによって当該組変更操作が行われる。
次に、図6および図7を参照して、コアユニット70の内部構造について説明する。なお、図6は、コアユニット70の上筐体(ハウジング71の一部)を外した状態の一例を後面側から見た斜視図である。図7は、コアユニット70の下筐体(ハウジング71の一部)を外した状態の一例を前面側から見た斜視図である。ここで、図7に示す基板700は、図6に示す基板700の裏面から見た斜視図となって示されている。
図6において、ハウジング71の内部には基板700が固設されており、当該基板700の上主面上に操作ボタン72a〜72h、加速度センサ701、LED702、およびアンテナ754等が設けられる。そして、これらは、基板700等に形成された配線(図示せず)によってマイコン751等(図7、図10参照)に接続される。また、図示しない無線モジュール753(図10参照)およびアンテナ754によって、コアユニット70がワイヤレスコントローラとして機能する。例えば、マイコン751は、複数のLED702のうち、無線モジュール753およびアンテナ754が受信した組表示データに応じたLEDを点灯させる。なお、ハウジング71内部には図示しない水晶振動子が設けられており、後述するマイコン751の基本クロックを生成する。また、基板700の上主面上に、スピーカ706およびアンプ708が設けられる。
また、加速度センサ701は、操作ボタン72dの左側の基板700上(つまり、基板700の中央部ではなく周辺部)に設けられる。したがって、加速度センサ701は、コアユニット70の長手方向を軸とした回転に応じて、重力加速度の方向変化に加え、遠心力による成分が含まれる加速度を検出することができるので、所定の演算により、検出される加速度データからコアユニット70の動きを良好な感度でゲーム装置本体5等が判定することができる。例えば、コアユニット70は、3軸の加速度センサ701を備えている。この3軸の加速度センサ701は、3方向、すなわち、上下方向、左右方向、および前後方向で直線加速度を検知する。そして、加速度センサ701でそれぞれ検知された加速度を示すデータは、マイコン751に出力される。なお、加速度センサ以外にも、さらにジャイロセンサを備える構成としてもよい。
一方、図7において、基板700の下主面上の前端縁に撮像情報演算部74が設けられる。撮像情報演算部74は、コアユニット70の前方から順に赤外線フィルタ741、レンズ742、撮像素子743、および画像処理回路744によって構成されており、それぞれ基板700の下主面に取り付けられる。また、基板700の下主面上の後端縁にコネクタ73が取り付けられる。さらに、基板700の下主面上にサウンドIC707およびマイコン751が設けられている。サウンドIC707は、基板700等に形成された配線によってマイコン751およびアンプ708と接続され、ゲーム装置本体5から送信されたサウンドデータに応じてアンプ708を介してスピーカ706に音声信号を出力する。そして、基板700の下主面上には、バイブレータ704が取り付けられる。このバイブレータ704は、例えば振動モータやソレノイドである。バイブレータ704が作動することによってコアユニット70に振動が発生するので、それを把持しているプレイヤの手にその振動が伝達され、いわゆる振動対応ゲームが実現できる。バイブレータ704は、ハウジング71のやや前方寄りに配置されるため、プレイヤが把持している状態において、ハウジング71が大きく振動することになり、振動を感じやすくなる。
図8および図9を参照して、サブユニット76について説明する。なお、図8は、サブユニット76の一例を示す斜視図である。図9は、図8のサブユニット76の上筐体(ハウジング77の一部)を外した状態の一例斜視図である。
図8において、サブユニット76は、例えばプラスチック成型によって形成されたハウジング77を有している。ハウジング77は、その前後方向を長手方向とし、サブユニット76において最太部となる頭部を前方に形成した流線型の立体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。
ハウジング77上面の上記最太部近傍に、スティック78aが設けられる。スティック78aは、ハウジング77上面から突出した傾倒可能なスティックを倒すことによって、傾倒方向や傾倒量を検出し、それに応じて操作信号を出力する操作部である。例えば、プレイヤがスティック78a先端を360°任意の方向に傾倒することによって任意の方向や位置を指定することができ、仮想ゲーム世界に登場するプレイヤキャラクタ等の移動方向を指示することができる。また、プレイヤは、スティック78aの傾倒量によって、プレイヤキャラクタ等の移動量を指示することができる。
なお、スティック78aは、プレイヤの方向入力操作に応じて操作信号を出力する操作部であるが、他の態様の操作部でもかまわない。例えば、上述した十字キーやリング状に4方向の操作部分を備えたプッシュスイッチとその中央に設けられたセンタスイッチとを複合した複合スイッチを上記スティック78aの代わりに設けてもかまわない。また、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部を、上記スティック78aの代わりに設けてもかまわない。また、タッチパッドを、上記スティック78aの代わりに設けてもかまわない。また、少なくとも4つの方向(前後左右)をそれぞれ示すスイッチに対して、プレイヤによって押下されたスイッチに応じて操作信号を出力する操作部を上記スティック78aの代わりに設けてもかまわない。
サブユニット76のハウジング77の前面に、複数の操作ボタン78dおよび78eが設けられる。操作ボタン78dおよび78eは、プレイヤがボタン頭部を押下することによって、それぞれの操作ボタン78dおよび78eに割り当てられた操作信号を出力する操作部である。例えば、操作ボタン78dおよび78eには、CボタンおよびZボタン等としての機能が割り当てられる。これら操作ボタン78dおよび78eは、ゲーム装置本体5が実行するゲームプログラムに応じてそれぞれの機能が割り当てられる。なお、図8に示した配置例では、操作ボタン78dおよび78eは、ハウジング77前面の上下方向に沿って並設されている。
ハウジング77上面のスティック78aより後面側に、複数のLED762が設けられる。コントローラ7には、コアユニット70とサブユニット76との組み合わせを区別するために組番号が設けられている。組番号は、ゲームにおいてはプレイヤ番号として用いられる。LED762は、サブユニット76に現在設定されている上記組番号をプレイヤに通知するために用いられる手段の一例である。具体的には、無線コントローラモジュール19からサブユニット76へ、複数のLED762のうち、上記組番号に対応するLEDを点灯させるための組表示データが送信される。そして、コアユニット70は、複数のLED762のうち、送信された組表示データに応じたLEDを点灯させる。図8に示した例では、4つのLED762がサブユニット76の左右横方向に並設されており、その点灯箇所によって少なくとも4つの組み合わせを区別して表示することができる。なお、複数のLED762を並設するレイアウトは、コアユニット70とサブユニット76との組み合わせ表示を、直感的に認識可能とするために、コアユニット70に設けられた複数のLED702と同様のレイアウトにすることが望ましい。したがって、複数のLED762を並設するレイアウトは、LED702と同様に、横方向でなくてもかまわない。例えば、他の方向(例えば、サブユニット76の前後縦方向)に複数のLED762を並設してもいいし、格子状に複数のLED762を並設してもかまわない。
なお、組み合わせ表示を直感的に認識可能とする効果を期待しない場合、コアユニット70に設けられた複数のLED702のレイアウトと、サブユニット76に設けられた複数のLED762のレイアウトとが異なっていてもかまわない。例えば、LED毎の周辺に固定的に組番号を記述して各LED点灯時の組番号をそれぞれ通知可能に構成されていれば、LED702のレイアウトとLED762のレイアウトとが異なっていてもプレイヤに組み合わせを表示することが可能となる。
また、サブユニット76のハウジング77の後面に、コネクタ763が設けられる。コネクタ763は、コアユニット70のコネクタ73と接続可能な、例えばエッジコネクタである。上述したように、本実施例においては、コネクタ763は、コアユニット70とサブユニット76とを組とする組変更操作において用いられ、プレイヤが用いるコアユニット70のコネクタ73とサブユニット76のコネクタ763とを、一時的に接続させることによって当該組変更操作が行われる。なお、コネクタ形状は本実施例の形状に限らず、どのようなものであってもよい。また、単に互いに接触可能な端子であってもよい。本実施例では、コネクタ73とコネクタ763とは、直接接続させることができるように構成されているが、別途ケーブル等を介して一時的に接続するようにしてもよい。
図9において、ハウジング77の内部には基板が固設されており、当該基板の上主面上にスティック78aおよび加速度センサ761等が設けられる。また、ハウジング77の内部における別の基板上には、複数のLED762等が設けられる。そして、これらは、ハウジング77の内部に形成された配線(図示せず)によってマイコン765等(図11参照)に接続される。また、図示しない無線モジュール767およびアンテナ768(図11参照)によって、サブユニット76もワイヤレスコントローラとして機能する。例えば、マイコン765は、複数のLED762のうち、無線モジュール767およびアンテナ768が受信した組表示データに応じたLEDを点灯させる。加速度センサ761は、ハウジング77の長手方向の中央部かつ短手方向の中央部に配置されるのが好ましい。例えば、サブユニット76は、3軸の加速度センサ761を備えている。この3軸の加速度センサ761は、3方向、すなわち、上下方向、左右方向、および前後方向で直線加速度を検知する。そして、加速度センサ761でそれぞれ検知された加速度を示すデータは、マイコン765に出力される。
次に、図10および図11を参照して、コントローラ7の内部構成について説明する。なお、図10は、コアユニット70の構成の一例を示すブロック図である。図11は、サブユニット76の構成の一例を示すブロック図である。
図10において、コアユニット70は、上述した操作部72、撮像情報演算部74、加速度センサ701、LED702、バイブレータ704、スピーカ706、サウンドIC707、およびアンプ708の他に、その内部に通信部75を備えている。
撮像情報演算部74は、赤外線フィルタ741、レンズ742、撮像素子743、および画像処理回路744を含んでいる。赤外線フィルタ741は、コアユニット70の前方から入射する光から赤外線のみを通過させる。レンズ742は、赤外線フィルタ741を透過した赤外線を集光して撮像素子743へ出射する。撮像素子743は、例えばCMOSセンサやあるいはCCDのような固体撮像素子であり、レンズ742が集光した赤外線を撮像する。したがって、撮像素子743は、赤外線フィルタ741を通過した赤外線だけを撮像して画像データを生成する。撮像素子743で生成された画像データは、画像処理回路744で処理される。具体的には、画像処理回路744は、撮像素子743から得られた画像データを処理して高輝度部分を検知し、それらの位置座標や面積を検出した結果を示す処理結果データを通信部75へ出力する。なお、これらの撮像情報演算部74は、コアユニット70のハウジング71に固設されており、ハウジング71自体の方向を変えることによってその撮像方向を変更することができる。
通信部75は、マイクロコンピュータ(Micro Computer:マイコン)751、メモリ752、無線モジュール753、およびアンテナ754を含んでいる。マイコン751は、処理の際にメモリ752を記憶領域として用いながら、送信データを無線送信する無線モジュール753を制御する。また、マイコン751は、アンテナ754を介して無線モジュール753が受信したゲーム装置本体5からのデータに応じて、LED702、サウンドIC707、およびバイブレータ704の動作を制御する。サウンドIC707は、通信部75を介してゲーム装置本体5から受信したサウンドデータ等を処理する。また、マイコン751は、通信部75を介してゲーム装置本体5から受信した組表示データ等に応じて、LED702の点灯を制御する。また、マイコン751は、通信部75を介してゲーム装置本体5から受信した振動データ(例えば、バイブレータ704をONまたはOFFする信号)等に応じて、バイブレータ704を作動させる。
コアユニット70に設けられた操作部72からの操作信号(コアキーデータ)、加速度センサ701からの加速度信号(コア加速度データ)、および撮像情報演算部74からの処理結果データは、マイコン751に出力される。マイコン751は、入力した各データ(コアキーデータ、コア加速度データ、処理結果データ)を無線コントローラモジュール19へ送信する送信データとして一時的にメモリ752に格納する。
図11において、サブユニット76は、上述した操作部78、加速度センサ761、LED762、およびコネクタ763の他に、その内部に通信部764を備えている。
通信部764は、マイコン765、メモリ766、無線モジュール767、およびアンテナ768を含んでいる。マイコン765は、処理の際にメモリ766を記憶領域として用いながら、送信データを無線送信する無線モジュール767を制御する。また、マイコン765は、通信部764を介してゲーム装置本体5から受信した組表示データ等に応じて、LED762の点灯を制御する。
サブユニット76に設けられた操作部78からの操作信号(サブキーデータ)および加速度センサ761からの加速度信号(サブ加速度データ)は、マイコン765に出力される。マイコン765は、入力した各データ(サブキーデータ、サブ加速度データ)を無線コントローラモジュール19へ送信する送信データとして一時的にメモリ766に格納する。
ここで、通信部75および通信部764から無線コントローラモジュール19への無線送信は、それぞれ所定の周期毎に行われるが、ゲームの処理は1/60秒を単位として行われることが一般的であるので、それよりも短い周期でそれぞれデータを収集して送信を行うことが必要となる。具体的には、ゲームの処理単位は16.7ms(1/60秒)であり、ブルートゥース(Bluetooth;登録商標)で構成される通信部75や通信部764の送信間隔は5msである。マイコン751は、無線コントローラモジュール19への送信タイミングが到来すると、メモリ752に格納されている送信データを自機のID番号と共に一連のコア操作情報として、無線モジュール753へ出力する。そして、無線モジュール753は、例えばブルートゥース(登録商標)の技術に基づいて、所定周波数の搬送波を用いてコア操作情報で変調し、その微弱電波信号をアンテナ754から放射する。また、マイコン765は、無線コントローラモジュール19への送信タイミングが到来すると、メモリ766に格納されている送信データを自機のID番号と共に一連のサブ操作情報として、無線モジュール767へ出力する。そして、無線モジュール767は、例えばブルートゥース(登録商標)の技術に基づいて、所定周波数の搬送波を用いてサブ操作情報で変調し、その微弱電波信号をアンテナ768から放射する。
つまり、コアユニット70に設けられた操作部72からのコアキーデータ、コアユニット70に設けられた加速度センサ701からのコア加速度データ、および撮像情報演算部74からの処理結果データは、無線モジュール753で微弱電波信号に変調されてコアユニット70から放射される。また、サブユニット76に設けられた操作部78からのサブキーデータ、およびサブユニット76に設けられた加速度センサ761からのサブ加速度データは、無線モジュール767で微弱電波信号に変調されてサブユニット76から放射される。そして、ゲーム装置3の無線コントローラモジュール19でそれら微弱電波信号を受信し、ゲーム装置3で当該微弱電波信号を復調や復号することによって、一連のコア操作情報(コアキーデータ、コア加速度データ、および処理結果データ)およびサブ操作情報(サブキーデータおよびサブ加速度データ)を送信元のID番号と共に取得することができる。そして、ゲーム装置3のCPU10は、取得したコア操作情報およびサブ操作情報とゲームプログラムとに基づいて、ゲーム処理を行う。
また、通信部75は、コネクタ73がサブユニット76のコネクタ763と接続された場合、コアユニット70に固有に予め設定されているユニークなデバイス番号(ID番号)を、コネクタ73を介して接続されているサブユニット76へ出力する。また、通信部75は、コネクタ73がサブユニット76のコネクタ763と接続された場合、接続されているサブユニット76から当該サブユニット76に設定されているユニークなデバイス番号(ID番号)を、コネクタ73を介して取得する。そして、後述により明らかとなるが、コネクタ73がサブユニット76のコネクタ763と接続された場合、通信部75は、自機のID番号および取得したサブユニット76のID番号と共に組変更操作が行われたことを示す接触データを、ゲーム装置本体5へ送信する。
一方、通信部764は、コネクタ763がコアユニット70のコネクタ73と接続された場合、サブユニット76のID番号を、コネクタ763を介して接続されているコアユニット70へ出力する。また、通信部764は、コネクタ763がコアユニット70のコネクタ73と接続された場合、接続されているコアユニット70から当該コアユニット70に設定されているID番号を、コネクタ763を介して取得する。そして、後述により明らかとなるが、コネクタ763がコアユニット70のコネクタ73と接続された場合、通信部764は、自機のID番号および取得したコアユニット70のID番号と共に組変更操作が行われたことを示す接触データを、ゲーム装置本体5へ送信する。
次に、図12を参照して、複数のコントローラ7とゲーム装置本体5との間で構成される通信システム例について説明する。図12に示した例では、コアユニット70とサブユニット76との組が4組で構成された4つのコントローラ7と、ゲーム装置本体5との間の通信システム例が記載されている。なお、4組のコアユニット70およびサブユニット76を区別するために、それぞれコアユニット70a、70b、70c、および70dと、サブユニット76a、76b、76c、および76dとする。また、それぞれコアユニット70a、70b、70c、および70dと、サブユニット76a、76b、76c、および76dとの各構成要素についても、それぞれ同様に参照符号にa〜dを付与して区別して説明する。
図12に示した通信システム例では、ゲーム装置本体5が通信システムにおけるマスタデバイスとなり、コントローラ7が当該通信システムにおけるスレーブデバイスとなる。具体的には、ゲーム装置本体5が2つのマスタデバイス(マスタA、マスタB)を構成する。そして、コアユニット70a、70b、70c、および70dは、2つのマスタデバイスの一方(マスタA)に対応するスレーブデバイス(スレーブA1、A2、A3、A4)となる。また、サブユニット76a、76b、76c、および76dは、2つのマスタデバイスの他方(マスタB)に対応するスレーブデバイス(スレーブB1、B2、B3、B4)となる。なお、本実施例においては、ゲーム装置本体5が2つのマスタデバイスを有するので、図2におけるアンテナ23はそれぞれに対応する2つのアンテナから構成されるのが望ましい。無線コントローラモジュール19は、2つであってもよいし、1つにまとめられていてもよい。
ゲーム装置本体5に構成される一方のマスタデバイス(マスタA)は、対応するスレーブデバイス(スレーブA1〜A4)との間でピコネットを構成して通信を行う。また、ゲーム装置本体5に構成される他方のマスタデバイス(マスタB)は、対応するスレーブデバイス(スレーブB1〜B4)との間でピコネットを構成して通信を行う。すなわち、コアユニット70a〜70dがそれぞれゲーム装置本体5との間で通信を行うとともに、サブユニット76a〜76dもそれぞれゲーム装置本体5との間で通信を行うことになる。
次に、図13〜図15を参照して、コアユニット70とサブユニット76との組み合わせを区別するための表示態様について説明する。なお、図13は、コアユニット70とサブユニット76との組み合わせを区別するための第1の表示態様例を示す図である。図14は、コアユニット70とサブユニット76との組み合わせを区別するための第2の表示態様例を示す図である。図15は、コアユニット70とサブユニット76との組み合わせを区別するための第3の表示態様例を示す図である。
図13に示す第1の表示態様例では、コアユニット70は、ゲーム装置本体5に構成される一方のマスタデバイス(マスタA)から送信された組表示データに応じて、それぞれ複数のLED702の何れかを点灯することによって、サブユニット76との組み合わせを区別している。一方、サブユニット76は、ゲーム装置本体5に構成される他方のマスタデバイス(マスタB)から送信された組表示データに応じて、複数のLED762の何れかを点灯することによって、コアユニット70との組み合わせを区別している。具体的には、コアユニット70aは、複数のLED702aのうち、左端のLEDを点灯させている。そして、サブユニット76aも、複数のLED762aのうち、左端のLEDを点灯させている。つまり、コアユニット70aおよびサブユニット76aは、双方ともに複数のLEDのうちの左端のLEDを点灯させることによって、同じプレイヤ(例えば、プレイヤ1)に操作されるべきペア(同じ組)であることが示される。また、コアユニット70bおよびサブユニット76bは、双方ともに複数のLEDのうちの左から2番目のLEDを点灯させることによって、同じプレイヤ(例えば、プレイヤ2)に操作されるべきペアであることが示される。また、コアユニット70cおよびサブユニット76cは、双方ともに複数のLEDのうちの右から2番目のLEDを点灯させることによって、同じプレイヤ(例えば、プレイヤ3)に操作されるべきペアであることが示される。そして、コアユニット70dおよびサブユニット76dは、双方ともに複数のLEDのうちの右端のLEDを点灯させることによって、同じプレイヤ(例えば、プレイヤ4)に操作されるべきペアであることが示される。
なお、図13に示した第1の表示態様例において、コアユニット70とサブユニット76との数が異なる場合等、ペアとならない(組に属さない)ユニットが存在する場合、当該ユニットについては上述した組み合わせを区別するための表示以外の態様でLEDを点灯/消灯させる。例えば、サブユニット76とのペアとならなかったコアユニット70は、複数のLED702を全て消灯させることによって、ペアとなるサブユニット76が存在しないことが示される。また、コアユニット70とのペアとならなかったサブユニット76は、複数のLED762を全て消灯させることによって、ペアとなるコアユニット70が存在しないことが示される。
図14に示す第2の表示態様例では、コアユニット70には、サブユニット76との組み合わせを区別するための表示部として、文字、記号、模様、画像等の少なくとも1つが表示可能な表示装置が設けられる。一例として、図14に示すコアユニット70a〜70dには、数字、文字、記号等が表示可能な7セグ表示器703a〜703dがそれぞれ設けられている。また、サブユニット76にも同様に、コアユニット70との組み合わせを区別するための表示部として、文字、記号、模様、画像等の少なくとも1つが表示可能な表示装置が設けられる。一例として、図14に示すサブユニット76a〜76dには、数字、文字、記号等が表示可能な7セグ表示器771a〜771dがそれぞれ設けられている。それ以外にも、たとえば液晶等による画面を設けて組み合わせを示すための表示を行うことができる。
例えば、コアユニット70は、それぞれ7セグ表示器703に、ゲーム装置本体5に構成される一方のマスタデバイス(マスタA)から送信された組表示データに応じた組番号を表示することによって、サブユニット76との組み合わせを区別している。一方、サブユニット76は、それぞれ7セグ表示器771に、ゲーム装置本体5に構成される他方のマスタデバイス(マスタB)から送信された組表示データに応じた組番号を表示することによって、コアユニット70との組み合わせを区別している。具体的には、コアユニット70aは、7セグ表示器703aに数字「1」を表示している。そして、サブユニット76aも、7セグ表示器771aに数字「1」を表示している。つまり、コアユニット70aおよびサブユニット76aは、双方ともに7セグ表示器703aおよび771aに数字「1」を表示することによって、同じプレイヤ(例えば、プレイヤ1)に操作されるべきペア(同じ組)であることが示される。また、コアユニット70bおよびサブユニット76bは、双方ともに7セグ表示器703bおよび771bに数字「2」を表示することによって、同じプレイヤ(例えば、プレイヤ2)に操作されるべきペアであることが示される。また、コアユニット70cおよびサブユニット76cは、双方ともに7セグ表示器703cおよび771cに数字「3」を表示することによって、同じプレイヤ(例えば、プレイヤ3)に操作されるべきペアであることが示される。そして、コアユニット70dおよびサブユニット76dは、双方ともに7セグ表示器703dおよび771dに数字「4」を表示することによって、同じプレイヤ(例えば、プレイヤ4)に操作されるべきペアであることが示される。
なお、図14に示した第2の表示態様例において、コアユニット70とサブユニット76との数が異なる場合等、ペアとならない(組に属さない)ユニットが存在する場合、当該ユニットについては上述した組み合わせを区別するための表示以外の態様で7セグ表示器703および771を表示するか、もしくは未表示にする。例えば、サブユニット76とのペアとならなかったコアユニット70は、7セグ表示器703を未表示にすることによって、ペアとなるサブユニット76が存在しないことが示される。また、コアユニット70とのペアとならなかったサブユニット76は、7セグ表示器771を未表示にすることによって、ペアとなるコアユニット70が存在しないことが示される。未表示以外にも、たとえば7セグ表示器703や7セグ表示器771を点滅等することによってペアが存在しないことをしめすことができる。
また、コアユニット70およびサブユニット76の表示装置(例えば、7セグ表示器703および771)においては、それぞれ全く同じ表示態様にすることによって同じ組であることを示さなくてもかまわない。第1の例として、コアユニット70およびサブユニット76の一方の表示装置を漢数字で表示し、他方を算用数字で表示する。そして、漢数字が示す数字と算用数字が示す数字とが同じ場合に、当該数字を示すコアユニット70とサブユニット76とが同じ組であることを示す。第2の例として、コアユニット70およびサブユニット76の表示装置に、画像としては異なるが関連性が明確な画像を表示することによって、同じ組であることを示す。例えば、ゲーム上で関係が深い異なるキャラクタ画像(例えば、兄弟、仲間、ペア等の画像)や、ゲーム上で進化するキャラクタにおける進化前のキャラクタ画像と進化後のキャラクタ画像をそれぞれ表示することによって、当該2つのキャラクタ画像が表示されているユニットが同じ組であることを示す。第3の例として、コアユニット70およびサブユニット76の表示装置に、画像としては異なるが種類や類別が同じ画像を表示することによって、同じ組であることを示す。例えば、画像としては異なるが、魚、動物、植物、乗り物等を類別として、同じ類別に属する画像が表示されたコアユニット70とサブユニット76とが同じ組であることを示す。
図15に示す第3の表示態様例では、コアユニット70には、サブユニット76との組み合わせを区別するための表示部として、複数の色が表示可能な表示装置が設けられる。一例として、図15に示すコアユニット70a〜70dには、多色LED705a〜705dがそれぞれ設けられている。また、サブユニット76にも同様に、コアユニット70との組み合わせを区別するための表示部として、複数の色が表示可能な表示装置が設けられる。一例として、図15に示すサブユニット76a〜76dには、多色LED772a〜772dがそれぞれ設けられている。
例えば、コアユニット70は、それぞれ多色LED705に、ゲーム装置本体5に構成される一方のマスタデバイス(マスタA)から送信された組表示データに応じた色を表示することによって、サブユニット76との組み合わせを区別している。一方、サブユニット76は、それぞれ多色LED772に、ゲーム装置本体5に構成される他方のマスタデバイス(マスタB)から送信された組表示データに応じた色を表示することによって、コアユニット70との組み合わせを区別している。具体的には、コアユニット70aは、多色LED705aに青色を表示している。そして、サブユニット76aも、多色LED772aに青色を表示している。つまり、コアユニット70aおよびサブユニット76aは、双方ともに多色LED705aおよび772aに青色を表示することによって、同じプレイヤ(例えば、プレイヤ1)に操作されるべきペア(同じ組)であることが示される。また、コアユニット70bおよびサブユニット76bは、双方ともに多色LED705bおよび772bに緑色を表示することによって、同じプレイヤ(例えば、プレイヤ2)に操作されるべきペアであることが示される。また、コアユニット70cおよびサブユニット76cは、双方ともに多色LED705cおよび772cに赤色を表示することによって、同じプレイヤ(例えば、プレイヤ3)に操作されるべきペアであることが示される。そして、コアユニット70dおよびサブユニット76dは、双方ともに多色LED705dおよび772dに黄色を表示することによって、同じプレイヤ(例えば、プレイヤ4)に操作されるべきペアであることが示される。
なお、図14に示した第3の表示態様例において、コアユニット70とサブユニット76との数が異なる場合等、ペアとならない(組に属さない)ユニットが存在する場合、当該ユニットについては上述した組み合わせを区別するための表示以外の態様(たとえば白色、点滅等)で多色LED705および772を表示するか、もしくは未表示にする。例えば、サブユニット76とのペアとならなかったコアユニット70は、多色LED705を未表示にすることによって、ペアとなるサブユニット76が存在しないことが示される。また、コアユニット70とのペアとならなかったサブユニット76は、多色LED772を未表示にすることによって、ペアとなるコアユニット70が存在しないことが示される。
また、コアユニット70およびサブユニット76の表示装置(例えば、多色LED705および772)においては、それぞれ全く同じ色を表示することによって同じ組であることを示さなくてもかまわない。一般的に、プレイヤは、全く同じ色でなくても同じ系統の色であれば同じ組であることを区別することが可能であるし、表示装置の機差等によっても表現される色が若干異なる場合もあり得る。したがって、上記第3の表示態様例においては、コアユニット70およびサブユニット76の表示装置に同系色の色を表示することによって、同じプレイヤに操作されるべきペアであることを示してもかまわない。
上述したように、コアユニット70およびサブユニット76にそれぞれ設けられた、組み合わせを区別するための表示部を視認することによって、プレイヤがそれぞれ操作すべきコアユニット70とサブユニット76との組み合わせが明確となる。そして、ゲーム装置本体5は、それぞれのコアユニット70とサブユニット76との組み合わせが同じプレイヤによって操作されていることを前提として、ゲーム処理を行う。しかしながら、組が異なるコアユニット70およびサブユニット76をプレイヤが操作している場合、ゲーム装置本体5が組変更処理を行うことができる。以下、図16〜図18を参照して、ゲーム装置本体5が行う組変更処理の概要について説明する。なお、図16は、ゲーム装置本体5が行う組変更処理例の第1段階を示す図である。図17は、ゲーム装置本体5が行う組変更処理例の第2段階を示す図である。図18は、ゲーム装置本体5が行う組変更処理例の第3段階を示す図である。なお、図16〜図18においては、コアユニット70とサブユニット76との組み合わせを区別するための表示部として、上記第2の表示態様例が用いられている。
図16において、ゲーム装置本体5では、現時点で設定されているコアユニット70とサブユニット76との間の組み合わせが管理されている。例えば、ゲーム装置本体5は、組番号毎に属するスレーブデバイス(コアユニット70、サブユニット76)が記述されたデータテーブルTを管理している。図16に示す状態では、組番号1にスレーブA1(コアユニット70a)とスレーブB1(サブユニット76a)とが属し、組番号2にスレーブA2(コアユニット70b)とスレーブB2(サブユニット76b)とが属し、組番号3にスレーブA3(コアユニット70c)とスレーブB3(サブユニット76c)とが属し、組番号4にスレーブA4(コアユニット70d)とスレーブB4(サブユニット76d)とが属している。その一方で、プレイヤ1がコアユニット70aとサブユニット76aとを操作し、プレイヤ2がコアユニット70bとサブユニット76dとを操作し、プレイヤ3がコアユニット70cとサブユニット76bとを操作し、プレイヤ4がコアユニット70dとサブユニット76cとを操作している。つまり、プレイヤ2〜4は、現時点で設定されているユニットの組において、それぞれ組が異なるコアユニット70およびサブユニット76を操作していることになる。
このような状況において、プレイヤ2が組変更操作を行う。ここで、組変更操作は、プレイヤが操作しているコアユニット70とサブユニット76との組み合わせをゲーム装置本体5へ通知するための操作である。一例として、プレイヤは、コアユニット70に設けられたコネクタ73とサブユニット76に設けられたコネクタ763とを接続させることによって、組変更操作を行う。組変更操作が行われた場合、コアユニット70およびサブユニット76は、接触データをゲーム装置本体5へ送信する。ここで、接触データは、当該接触データを送信する送信元情報(ID番号)と共に、組変更操作が行われた相手装置、すなわちコネクタ同士が接続された相手装置を示す情報(ID番号)を含むデータである。具体的には、図16に示すようにコアユニット70bとサブユニット76dとの間で組変更操作が行われた場合、コアユニット70bは、サブユニット76dとの間で組変更操作が行われたことを示す接触データをゲーム装置本体5へ送信する。また、サブユニット76dは、コアユニット70bとの間で組変更操作が行われたことを示す接触データをゲーム装置本体5へ送信する。
ゲーム装置本体5は、上記接触データを受信することによって、組変更操作が行われたこととともに、どのユニット間で組変更操作が行われたかを知ることができる。そして、ゲーム装置本体5は、組変更操作が行われたコアユニット70とサブユニット76との組み合わせが、現時点で同じプレイヤによって操作されている組み合わせであることを推定することができる。したがって、ゲーム装置本体5は、組変更操作が行われたコアユニット70とサブユニット76との組み合わせが同じ組番号に属するように、組変更処理を行う。
例えば、ゲーム装置本体5は、コアユニット70bとサブユニット76dとの間で組変更操作が行われたことを示す接触データを受信した場合、コアユニット70bとサブユニット76dとが同じ組となるように組変更処理を行う(図17の状態)。具体的には、ゲーム装置本体5は、サブユニット76d(スレーブB4)が属する組番号を、組番号4からコアユニット70b(スレーブA2)の組番号(すなわち、組番号2)に変更して、テーブルデータTを更新する。これによって、サブユニット76d(スレーブB4)が組変更処理前に属していた組番号4に対応するサブユニットが空欄となる。また、サブユニット76d(スレーブB4)の組変更処理前に組番号2に属していたサブユニット76b(スレーブB2)は、一旦組設定が解除(組番号なし)される。
そして、ゲーム装置本体5は、組変更処理によって変更された組番号を示す組表示データを、対象となるユニットへ送信する。具体的には、ゲーム装置本体5は、サブユニット76d(スレーブB4)に組番号が2に変更されたことを示す組表示データを送信する。この組表示データを受信することに応じて、サブユニット76dは、7セグ表示器771に数字「2」を表示する。また、ゲーム装置本体5は、サブユニット76b(スレーブB2)に組番号が空番号に変更されたこと(組設定解除)を示す組表示データを送信する。この組表示データを受信することに応じて、サブユニット76bは、7セグ表示器771を未表示にする。
次に、プレイヤ3および4が組変更操作を行う。具体的には、図17に示すコアユニット70cとサブユニット76bとの間およびコアユニット70dとサブユニット76cとの間でそれぞれ組変更操作が行われる。この場合、コアユニット70cは、サブユニット76bとの間で組変更操作が行われたことを示す接触データをゲーム装置本体5へ送信する。また、サブユニット76bは、コアユニット70cとの間で組変更操作が行われたことを示す接触データをゲーム装置本体5へ送信する。そして、コアユニット70dは、サブユニット76cとの間で組変更操作が行われたことを示す接触データをゲーム装置本体5へ送信する。また、サブユニット76cは、コアユニット70dとの間で組変更操作が行われたことを示す接触データをゲーム装置本体5へ送信する。
ゲーム装置本体5は、コアユニット70cとサブユニット76bとの間で組変更操作が行われたことを示す接触データを受信した場合、コアユニット70cとサブユニット76bとが同じ組となるように組変更処理を行う。また、ゲーム装置本体5は、コアユニット70dとサブユニット76cとの間で組変更操作が行われたことを示す接触データを受信した場合、コアユニット70dとサブユニット76cとが同じ組となるように組変更処理を行う(図18の状態)。具体的には、ゲーム装置本体5は、サブユニット76b(スレーブB2)が属する組番号を、空番号からコアユニット70c(スレーブA3)の組番号(すなわち、組番号3)に変更して、テーブルデータTを更新する。また、ゲーム装置本体5は、サブユニット76c(スレーブB3)が属する組番号を、組番号3からコアユニット70d(スレーブA4)の組番号(すなわち、組番号4)に変更して、テーブルデータTを更新する。
そして、ゲーム装置本体5は、組変更処理によって変更された組番号を示す組表示データを、対象となるユニットへ送信する。具体的には、ゲーム装置本体5は、サブユニット76b(スレーブB2)に組番号が3に変更されたことを示す組表示データを送信する。この組表示データを受信することに応じて、サブユニット76bは、7セグ表示器771に数字「3」を表示する。また、ゲーム装置本体5は、サブユニット76c(スレーブB3)に組番号が4に変更されたことを示す組表示データを送信する。この組表示データを受信することに応じて、サブユニット76cは、7セグ表示器771に数字「4」を表示する。
このように、コアユニット70およびサブユニット76を用いるプレイヤが組変更操作を行うことによって、当該操作前にコアユニット70とサブユニット76とが異なる組に属していたとしても同じ組となるように組変更処理が行われる。したがって、プレイヤが間違った組み合わせのコアユニット70およびサブユニット76を持ってゲームをしようとした場合であっても、簡単に組み合わせを変えることができ、コントローラを持ち替えずにゲームをすることができる。
次に、図19を参照して、ゲーム処理において用いられる主なデータについて説明する。なお、図19は、ゲーム装置本体5の外部メインメモリ12および/または内部メインメモリ35(以下、2つのメインメモリを総称して、単にメインメモリと記載する)に記憶される主なデータの一例を示す図である。
図19に示すように、メインメモリのデータ記憶領域には、受信データDa、送信データDb、およびユニット組テーブルデータDc等が記憶される。なお、メインメモリには、図19に示すデータの他、ゲームに登場するオブジェクト等に関するデータや仮想ゲーム世界に関するデータ等、ゲーム処理に必要なデータが記憶される。また、メインメモリのプログラム記憶領域には、ゲームプログラムを構成する各種プログラム群Paが記憶される。
受信データDaは、コア操作データDa1、サブ操作データDa2、および接触データDa3等を含んでいる。コア操作データDa1は、コアユニット70毎に操作された内容を示すデータであり、コアユニット70から送信データとして送信されてくる一連のコア操作情報を示すデータがそれぞれ格納される。サブ操作データDa2は、サブユニット76毎に操作された内容を示すデータであり、サブユニット76から送信データとして送信されてくる一連のサブ操作情報を示すデータがそれぞれ格納される。接触データDa3は、プレイヤによって組変更操作されたコアユニット70およびサブユニット76を示すデータであり、当該組変更操作されたコアユニット70およびサブユニット76からそれぞれ送信されてくる接触データが格納される。
なお、ゲーム装置本体5に備える無線コントローラモジュール19は、コアユニット70およびサブユニット76からそれぞれ所定周期(例えば、1/200秒毎)毎に送信される送信データを受信し、無線コントローラモジュール19に備える図示しないバッファに蓄える。その後、例えば、上記バッファに蓄えられた送信データがゲーム装置本体5の処理周期である1フレーム毎(例えば、1/60秒毎)に当該期間中に蓄えられたデータが読み出されて、メインメモリの受信データDaが更新される。
送信データDbは、組表示データDb1を含んでいる。組表示データDb1は、コアユニット70とサブユニット76との組み合わせ(組番号)を示して、当該組み合わせをコアユニット70および/またはサブユニット76に表示させるためのデータが格納される。
なお、ゲーム装置本体5に備える無線コントローラモジュール19は、送信データDbに格納された送信データを、当該送信データに記述された送信先となったコアユニット70またはサブユニット76へ、送信タイミング(例えば、1/200秒毎)が到来した際に送信する。
ユニット組テーブルデータDcは、現時点で設定されているコアユニット70とサブユニット76との間の組み合わせを管理するためのユニット組テーブルを示すデータが格納される。例えば、図20に示すように、ユニット組テーブルは、ゲーム装置本体5が通信可能なコアユニット70およびサブユニット76に対して、それぞれのID番号、スレーブ番号、および組番号等が記述される。ここで、ID番号は、コアユニット70およびサブユニット76に対して、それぞれ固有に予め設定されているユニークなデバイス番号である。
例えば、ユニット組テーブルデータDcには、ゲーム装置本体5の一方のマスタデバイス(マスタA)の通信先となるコアユニット70(スレーブA)について、それぞれのID番号、スレーブ番号、および組番号等が記述される。具体的には、ID番号「AXXXXXX」のコアユニット70に対して、スレーブ番号「A1」および組番号「1」が記述されている。また、ゲーム装置本体5の他方のマスタデバイス(マスタB)の通信先となるサブユニット76(スレーブB)についても、それぞれのID番号、スレーブ番号、および組番号等が記述される。具体的には、ID番号「axxxxxx」のサブユニット76に対して、スレーブ番号「B1」および組番号「1」が記述されている。
次に、図21〜図23を参照して、ゲーム装置本体5において行われる処理の詳細を説明する。なお、図21は、ゲーム装置本体5において実行される処理の流れの一例を示すフローチャートである。図22は、図21におけるステップ42の組設定処理の詳細な動作の一例を示すサブルーチンである。図23は、図21におけるステップ43の組変更処理の詳細な動作の一例を示すサブルーチンである。なお、図21〜図23に示すフローチャートにおいては、ゲーム装置本体5において行われる処理のうち、コアユニット70とサブユニット76との組を設定する処理について説明し、本願発明と直接関連しない他の処理については詳細な説明を省略する。また、図21〜図23では、CPU10が実行する各ステップを「S」と略称する。
ゲーム装置本体5の電源が投入されると、ゲーム装置本体5のCPU10は、ブートROM(例えば、ROM/RTC13)に記憶されている起動プログラムを実行し、これによってメインメモリ等の各ユニットが初期化される。そして、光ディスク4に記憶されたゲームプログラムがメインメモリに読み込まれ、CPU10によって当該ゲームプログラムの実行が開始される。図21〜図23に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。
図21において、CPU10は、初期設定を行い(ステップ41)、次のステップに処理を進める。例えば、上記ステップ41における初期設定では、CPU10は、メインメモリに格納されている各パラメータを初期化(例えば、各ゲームパラメータを空値(Null)に初期化)する。
次に、CPU10は、組設定処理を行い(ステップ42)、次のステップに処理を進める。なお、コアユニット70のみを用いてゲームをすることも可能であるので、そのようなゲームにおいては以下のステップ42やステップ43を実行しなくともよいが、以下ではコアユニット70とサブユニット76を両方使い、組み合わせの変更が可能なゲームにおける例について説明をする。以下、図22を参照して、上記ステップ42で行う組設定処理について説明する。
図22において、CPU10は、コアユニット70およびサブユニット76の何れか1つから操作情報を受信したか否かを判断する(ステップ51)。そして、CPU10は、コアユニット70およびサブユニット76の何れか1つから操作情報を受信した場合、送信されたID番号に基づいて当該操作情報を用いてコア操作データDa1またはサブ操作データDa2を更新して、次のステップ52に処理を進める。一方、CPU10は、コアユニット70およびサブユニット76の何れからも操作情報を受信していない場合、次のステップ58に処理を進める。
ステップ52において、CPU10は、操作情報を送信したコアユニット70またはサブユニット76が、既に何れかの組に設定されているか否かを判断する。例えば、CPU10は、ユニット組テーブルデータDcを参照して、送信されたID番号に相当するコアユニット70またはサブユニット76が既に記述されているか否かを判断し、既に送信されたID番号が記述されている場合に当該ID番号のコアユニット70またはサブユニット76が何れかの組に設定済みであるとする。そして、CPU10は、操作情報を送信したコアユニット70またはサブユニット76が何れの組にも設定されていない場合、次のステップ53に処理を進める。一方、CPU10は、操作情報を送信したコアユニット70またはサブユニット76が何れかの組に設定されている場合、次のステップ58に処理を進める。
ステップ53において、CPU10は、操作情報を送信したユニットがコアユニット70であるか否かを判断する。そして、CPU10は、操作情報を送信したユニットがコアユニット70である場合、次のステップ54に処理を進める。一方、CPU10は、操作情報を送信したユニットがサブユニット76である場合、次のステップ56に処理を進める。
ステップ54において、CPU10は、コアユニット70に対して未設定となっている組番号のうち、最若番号の組に操作情報を送信したコアユニット70を設定し、次のステップに処理を進める。例えば、CPU10は、ユニット組テーブルデータDcを参照して、コアユニット70のID番号が記述される組番号(例えば、マスタAに対応する組番号)のうち、操作情報を送信したコアユニット70を未設定の最若番号の組番号に割り当てる。そして、CPU10は、当該最若番号の組番号に操作情報を送信したコアユニット70のID番号を記述して、適当なスレーブ番号を割り当てる。具体的には、図20に示したユニット組テーブルデータDcでは、コアユニット70の組番号「1」が、ID番号「AXXXXXX」のコアユニット70に割り当てられ、当該コアユニット70にスレーブ番号「A1」が割り当てられている。
次に、CPU10は、上記ステップ54で設定された組番号を示す組表示データを、操作情報を送信したコアユニット70へ送信し(ステップ55)、次のステップ58に処理を進める。上記ステップ55の処理によって送信された組表示データを受信することによって、操作情報を送信したコアユニット70は、自機の組番号を知ると共に、当該組番号に応じたLED702を点灯する。
一方、ステップ56において、CPU10は、サブユニット76に対して未設定となっている組番号のうち、最若番号の組に操作情報を送信したサブユニット76を設定し、次のステップに処理を進める。例えば、CPU10は、ユニット組テーブルデータDcを参照して、サブユニット76のID番号が記述される組番号(例えば、マスタBに対応する組番号)のうち、操作情報を送信したサブユニット76を未設定の最若番号の組番号に割り当てる。そして、CPU10は、当該最若番号の組番号に操作情報を送信したサブユニット76のID番号を記述して、適当なスレーブ番号を割り当てる。具体的には、図20に示したユニット組テーブルデータDcでは、サブユニット76の組番号「1」が、ID番号「axxxxxx」のサブユニット76に割り当てられ、当該サブユニット76にスレーブ番号「B1」が割り当てられている。
次に、CPU10は、上記ステップ56で設定された組番号を示す組表示データを、操作情報を送信したサブユニット76へ送信し(ステップ57)、次のステップ58に処理を進める。上記ステップ57の処理によって送信された組表示データを受信することによって、操作情報を送信したサブユニット76は、自機の組番号を知ると共に、当該組番号に応じたLED762を点灯する。
ステップ58において、CPU10は、コアユニット70とサブユニット76との組設定処理を終了するか否かを判断する。組設定処理を終了する条件としては、例えば、プレイヤが組設定処理を終了する操作を行ったことや、予め定められた組設定処理を終了する条件が満たされたこと(例えば、組設定処理が開始されてから所定時間が経過したこと)等がある。そして、CPU10は、組設定処理を継続する場合、上記ステップ51に戻って、処理を繰り返す。一方、CPU10は、組設定処理を終了する場合、次のステップ59に処理を進める。
ステップ59において、CPU10は、上記ステップ51〜ステップ58の処理によって設定したコアユニット70とサブユニット76との組において、一方のみが属する組があるか否かを判断する。例えば、CPU10は、ユニット組テーブルデータDcを参照して、コアユニット70およびサブユニット76の一方のみが属している組番号があるか否かを判断する。そして、CPU10は、一方のみが属する組(組番号)がある場合、次のステップ60に処理を進める。一方、CPU10は、一方のみが属する組(組番号)がない場合、当該サブルーチンによる処理を終了する。
ステップ60において、CPU10は、コアユニット70およびサブユニット76の一方のみが属する組設定を解除して、次のステップに処理を進める。例えば、CPU10は、ユニット組テーブルデータDcを参照して、コアユニット70およびサブユニット76の一方のみが属している組番号については、当該組番号に記述されている各パラメータ(例えば、ID番号)を削除する。
次に、CPU10は、組番号が空番号であることを示す組表示データを、上記ステップ60で組設定が解除されたユニット(コアユニット70またはサブユニット76)へ送信し(ステップ61)、当該サブルーチンによる処理を終了する。上記ステップ61の処理によって送信された組表示データを受信することによって、当該組表示データを受信したユニット(コアユニット70またはサブユニット76)は、自機が何れの組にも属していないことを知ると共に、LED702またはLED762を用いて何れの組に属していないことを示す(例えば、LED702またはLED762を全て消灯)。
図21に戻り、上記ステップ42における組設定処理の後、CPU10は、組変更処理を行い(ステップ43)、次のステップに処理を進める。以下、図22を参照して、上記ステップ43で行う組変更処理について説明する。
図23において、CPU10は、組変更処理を実行するか否かを判断する(ステップ81)。例えば、プレイヤがコアユニット70とサブユニット76とを用いて上述した組変更操作を行って、コアユニット70またはサブユニット76から接触データを受信した場合、CPU10は、組変更処理を実行すると判断する。なお、CPU10が組変更処理を行うか否かを判断する方法は、他に様々な方法が考えられるが、他の方法例については後述する。そして、CPU10は、組変更処理を行う場合、次のステップ82に処理を進める。一方、CPU10は、組変更処理を行わない場合、次のステップ89に処理を進める。
ステップ82において、CPU10は、組変更操作が行われたコアユニット70またはサブユニット76から接触データを取得し、次のステップに処理を進める。例えば、CPU10は、受信した接触データの送信元のID番号に基づいて当該接触データを用いて接触データDa3を更新する。
次に、CPU10は、上記ステップ82で取得した接触データを参照して、組変更操作されたコアユニット70およびサブユニット76のペアがそれぞれ同じ組番号に属するか否かを判断する(ステップ83)。例えば、CPU10は、ユニット組テーブルデータDcを参照して、上記ステップ82で受信した接触データが示す送信元のID番号に対応する組番号と、当該接触データが示す接続相手のID番号に対応する組番号とが、同じであるか否かを判断する。そして、CPU10は、組変更操作されたペアがそれぞれ異なる組番号に属する、または少なくとも一方が何れの組にも属していない場合、次のステップ84に処理を進める。一方、CPU10は、組変更操作されたペアがそれぞれ同じ組番号に属する場合、次のステップ89に処理を進める。
ステップ84において、CPU10は、組変更操作されたサブユニット76の組番号を、当該組変更操作された相手のコアユニット70の組番号に変更し、次のステップに処理を進める。例えば、CPU10は、ユニット組テーブルデータDcを参照して、上記ステップ82で取得した接触データが示すID番号のうち、コアユニット70に相当するID番号に対応する組番号を抽出する。そして、CPU10は、ユニット組テーブルデータDcを参照して、上記ステップ82で取得した接触データが示すID番号のうち、サブユニット76に相当するID番号に対応する組番号を、上記抽出した組番号に変更する。上記ステップ84の処理によって、ユニット組テーブルデータDc上において、組変更処理されたコアユニット70およびサブユニット76のペアがそれぞれ同じ組番号に変更される。
次に、CPU10は、上記ステップ84で変更された組番号を示す組表示データを、組変更操作されたサブユニット76へ送信し(ステップ85)、次のステップに処理を進める。上記ステップ85の処理によって送信された組表示データを受信することによって、当該組表示データを受信したサブユニット76は、自機の組番号が変更されたことを知ると共に、当該変更後の組番号に応じたLED702を点灯する。
次に、CPU10は、上記ステップ84の処理によって、組番号が重複しているサブユニット76があるか否かを判断する(ステップ86)。例えば、CPU10は、ユニット組テーブルデータDcを参照して、サブユニット76に対してそれぞれ設定されている組番号に重複があるか否かを判断する。そして、CPU10は、サブユニット76の組番号に重複がある場合、次のステップ87に処理を進める。一方、CPU10は、サブユニット76の組番号に重複がない場合、次のステップ89に処理を進める。
ステップ87において、CPU10は、ユニット組テーブルデータDcを参照して、組番号が重複しているサブユニット76のうち、上記ステップ84およびステップ85の処理の対象となっていないサブユニット76(すなわち、組番号が変更されていないサブユニット76)の組番号を空番号に変更し、次のステップに処理を進める。
次に、CPU10は、組番号が空番号であることを示す組表示データを、上記ステップ87で組番号が空番号に変更されたサブユニット76へ送信し(ステップ88)、次のステップ89に処理を進める。上記ステップ88の処理によって送信された組表示データを受信することによって、当該組表示データを受信したサブユニット76は、自機が何れの組にも属していないことを知ると共に、LED762を用いて何れの組に属していないことを示す(例えば、LED762を全て消灯)。
ステップ89において、CPU10は、組変更処理を終了してゲーム処理を実行するか否かを判断する。ゲーム処理を実行する条件としては、例えば、プレイヤが組変更処理を終了する操作を行ったことや、当該ステップ43の組変更処理を実行する前段階においてゲーム処理中であった場合は上記ステップ81の判定において組変更処理を実行しないと判断されたこと等がある。そして、CPU10は、組変更処理を継続する場合、上記ステップ81に戻って、処理を繰り返す。一方、CPU10は、ゲーム処理を実行する場合、当該サブルーチンによる処理を終了する。
図21に戻り、上記ステップ43の組変更処理の後、CPU10は、ゲーム処理を行って(ステップ44)、次のステップに処理を進める。ここで、上記ステップ44においては、典型的には、コントローラ7、すなわちコアユニット70およびサブユニット76からそれぞれ出力される操作情報に基づいたゲーム処理が行われる。そして、CPU10は、上記ゲーム処理において、ユニット組テーブルデータDcに記述されている組番号が同じコアユニット70とサブユニット76との組毎に、それぞれ同じプレイヤによって操作されていることを前提として行う。すなわち、CPU10は、ユニット組テーブルデータDcに記述されているコアユニット70とサブユニット76との組み合わせに基づいて、操作情報を処理することになる。
次に、CPU10は、ゲーム処理を終了するか否かを判断する(ステップ45)。ゲーム処理を終了する条件としては、ゲームオーバーとなる条件が満たされたことや、プレイヤがゲームを終了する操作を行ったこと等がある。CPU10は、ゲームを終了しない場合に上記ステップ43に戻って処理を繰り返し、ゲームを終了する場合に当該フローチャートによる処理を終了する。
このように、本実施形態に係るゲームシステムでは、完全に分離したコアユニット70とサブユニット76との組み合わせを区別するための表示部が各ユニットに設けられている。そして、コアユニット70とサブユニット76との組み合わせが上記表示部に適宜表示されるため、コアユニット70とサブユニット76とで構成されるコントローラ7を用いる際のコアユニット70とサブユニット76との組み合わせが判別可能となる。
なお、上述した説明では、コアユニット70のコネクタ73とサブユニット76のコネクタ763とを、一時的に接続(接触)させることによってプレイヤが組変更操作を行う一例を用いたが、他の方法で組変更操作が行われてもかまわない。
組変更操作の第1の例として、プレイヤがコアユニット70に設けられた所定の操作ボタンとサブユニット76に設けられた所定の操作ボタンとを操作することによって、組変更操作が行われる。例えば、コアユニット70およびサブユニット76にそれぞれ設けられたプレイヤが不意に誤って押下することのないボタン(例えば、各ユニットの電池ケース付近等、コアユニット70およびサブユニット76の内部にそれぞれ設けられた操作ボタン等)を組変更操作用の操作ボタンに設定する。組変更操作用の操作ボタンが押下された場合、自機のID番号と共に当該操作ボタンが押下されたことを示す操作データが、ゲーム装置本体5へ送信される。そして、プレイヤは、コアユニット70およびサブユニット76の一方(例えば、コアユニット70)の組変更操作用の操作ボタンを押下した後、所定時間以内にコアユニット70およびサブユニット76の他方(例えば、サブユニット76)の組変更操作用の操作ボタンを押下することによって、組変更操作を行う。この場合、CPU10は、コアユニット70およびサブユニット76の一方における組変更操作用の操作ボタンが操作されたことを検出することによって、上記ステップ81(図23)において組変更処理を実行すると判断する。そして、CPU10は、上記一方における組変更操作用の操作ボタンが操作されたことを検出した後、所定時間以内にコアユニット70およびサブユニット76の他方における組変更操作用の操作ボタンが操作されたことを検出することによって、組変更操作されたコアユニット70とサブユニット76との組み合わせ(ID番号の組み合わせ)を認識する。このように、組変更操作の第1の例では、所定の時間以内にそれぞれの組変更操作用の操作ボタンを押すという操作を行う必要があるため、同じプレイヤが組み合わせを変更する目的で操作したものとみなすことができる。
組変更操作の第2の例として、コアユニット70とサブユニット76との距離が所定距離以内であることをRFID(Radio Frequency IDentification)の通信技術等の近距離無線通信技術を用いて検出し、当該所定距離以内となったコアユニット70とサブユニット76との組み合わせがゲーム装置本体5側で設定されている組み合わせと異なる場合に、組変更操作が行われる。例えば、コアユニット70およびサブユニット76それぞれにNFC(Near Field Communication)チップを設け、NFCチップ間の近距離無線通信が可能となった場合に当該NFCチップ間で互いのID番号(コアユニット70およびサブユニット76のID番号)を交換する無線通信を行う。そして、NFCチップ間の近距離無線通信が成立した場合に、自機のID番号および当該近距離無線通信で得た通信相手のID番号と共に、当該近距離無線通信が成立した旨を示す操作データが、コアユニット70およびサブユニット76それぞれからゲーム装置本体5へ送信される。この場合、CPU10は、コアユニット70またはサブユニット76から上記近距離無線通信が成立した旨を示す操作データを受信し、当該近距離無線通信が成立したコアユニット70とサブユニット76との組み合わせが既に設定されている組み合わせと異なる場合に、上記ステップ81(図23)において組変更処理を実行すると判断する。そして、CPU10は、受信した上記近距離無線通信が成立した旨を示す操作データを用いて、組変更操作されたコアユニット70とサブユニット76との組み合わせ(ID番号の組み合わせ)を認識する。このように、組変更操作の第2の例では、同じプレイヤが左右の手でそれぞれコアユニット70とサブユニット76とを把持し、それらを近づけるという操作によって行われることであるので、これらを同じプレイヤによって行われた操作とみなすことができ、簡単な操作によってプレイヤが現在把持しているコアユニット70とサブユニット76とを組み合わせてゲームに使うように設定を変更することが可能になる。
組変更操作の第3の例として、コアユニット70とサブユニット76との間で人体通信が可能であることを検出し、当該人体通信が可能となっているコアユニット70とサブユニット76との組み合わせがゲーム装置本体5側で設定されている組み合わせと異なる場合に、組変更操作が行われる。一例として、コアユニット70およびサブユニット76それぞれの本体の一部に、当該ユニットを把持するプレイヤの手と接触可能な導電体を露出させ、コアユニット70およびサブユニット76を把持するプレイヤの体内電流の変化を利用することによって、当該導電体間の人体通信を行う。他の例として、コアユニット70およびサブユニット76それぞれの本体の一部に、所定の絶縁体を介して、当該ユニットを把持するプレイヤの手と対向する導電体を設け、コアユニット70およびサブユニット76を把持するプレイヤの人体表面の電界の変化を利用することによって、当該導電体間の人体通信を行う。上記導電体を介して、他のユニットと通信可能(すなわち、ユニット間で人体通信可能)となった場合に、当該ユニット間で互いのID番号(コアユニット70およびサブユニット76のID番号)を交換する人体通信を行う。そして、上記人体通信が成立した場合に、自機のID番号および当該人体通信で得た通信相手のID番号と共に、当該人体通信が成立した旨を示す操作データが、コアユニット70およびサブユニット76それぞれからゲーム装置本体5へ送信される。この場合、CPU10は、コアユニット70またはサブユニット76から上記人体通信が成立した旨を示す操作データを受信し、当該人体通信が成立したコアユニット70とサブユニット76との組み合わせが既に設定されている組み合わせと異なる場合に、上記ステップ81(図23)において組変更処理を実行すると判断する。そして、CPU10は、受信した上記人体通信が成立した旨を示す操作データを用いて、組変更操作されたコアユニット70とサブユニット76との組み合わせ(ID番号の組み合わせ)を認識する。このように、組変更操作の第3の例では、同じプレイヤが左右の手でそれぞれコアユニット70とサブユニット76とを把持するという操作によって行われることであるので、これらを同じプレイヤによって行われた操作とみなすことができ、プレイヤは、ゲームのためにコアユニット70とサブユニット76とを把持するだけでそのままそれらの組み合わせを使ってゲームを行うことができるようになる。
なお、上記第3の例では、コアユニット70およびサブユニット76にそれぞれの本体周りを覆う部材が装着された場合に、上記人体通信が不可能となることが考えられる。例えば、コアユニット70およびサブユニット76を把持しやすくすると共に、落下や他の部材との衝突時の緩衝材とするために、コアユニット70およびサブユニット76にそれぞれの本体周りをシリコンゴム等の非導電性の部材で覆うことがある。しかしながら、図24に示すように、上述した非導電性の部材の代わりに導電性の緩衝材として部材711(例えば、導電性シリコンゴム)でユニット本体を覆うことによって、部材711を介して導電体とプレイヤの手とが接触、または部材711および所定の絶縁体を介してプレイヤの手と導電体とが対向することになるため、部材711で覆われたコアユニット70およびサブユニット76を用いた場合も上述した人体通信による組変更操作を実現することができる。以上のように、人体通信によって組み合わせを設定することによれば、コアユニット70とサブユニット76とをプレイヤが把持してゲームをするという基本的な前提を利用し、プレイヤが格別指示をせずとも自由にコアユニット70とサブユニット76とを持っただけでその組み合わせをゲームに使わせる組み合わせとして設定することが可能となる。
また、組変更操作の上記第3の例の場合、コアユニット70とサブユニット76とを直接接触させることによって組変更操作することも可能である。例えば、コアユニット70およびサブユニット76それぞれに上記導電体が露出して設けられている場合、当該導電体同士を接触させることによって組変更操作することも可能となる。また、コアユニット70およびサブユニット76それぞれに所定の絶縁体を介して上記導電体が設けられている場合、当該導電体同士が対向するようにコアユニット70とサブユニット76とを接触させることによって組変更操作することも可能となる。さらに、コアユニット70およびサブユニット76の本体がそれぞれ上述した導電性の部材711で覆われている場合、部材711同士を接触させることによって組変更操作することも可能となる。
(第2の実施形態)
次に、ゲームプログラムを実行する装置を含む本発明の第2の実施形態に係るゲームシステムについて説明する。上述した第1の実施形態に係るゲームシステムと比較して、第2の実施形態に係るゲームシステムは、複数のコントローラ7とゲーム装置本体5との間で構成される後述する通信システムが異なるだけであり、他の構成は第1の実施形態と同様である。例えば、コアユニット70とサブユニット76との組み合わせの表示の仕方等は、第1の実施形態と同じものを適用すればよい。したがって、第2の実施形態の説明において、上記第1の実施形態と同様の構成要素については、同一の参照符号を付して詳細な説明を省略する。
図25を参照して、第2の実施形態において、複数のコントローラ7とゲーム装置本体5との間で構成される通信システム例について説明する。図25に示した例では、コアユニット70とサブユニット76との組が4組で構成された4つのコントローラ7と、ゲーム装置本体5との間の通信システム例が記載されている。なお、4組のコアユニット70およびサブユニット76を区別するために、それぞれコアユニット70a、70b、70c、および70dと、サブユニット76a、76b、76c、および76dとする。また、それぞれコアユニット70a、70b、70c、および70dと、サブユニット76a、76b、76c、および76dとの各構成要素についても、それぞれ同様に参照符号にa〜dを付与して区別して説明する。
図25に示した通信システム例では、コアユニット70とサブユニット76との間で直接的な無線通信が行われる。そして、ゲーム装置本体5は、コアユニット70とのみ無線通信を行い、サブユニット76とは直接的には無線通信を行わない。ゲーム装置本体5とコアユニット70との間の無線通信においては、ゲーム装置本体5が通信システムにおけるマスタデバイスとなり、コアユニット70が当該通信システムにおけるスレーブデバイスとなる。そして、コアユニット70とサブユニット76との間の無線通信においては、コアユニット70が通信システムにおけるマスタデバイスとなり、サブユニット76が当該通信システムにおけるスレーブデバイスとなる。具体的には、ゲーム装置本体5とコアユニット70との間の通信システムにおいては、ゲーム装置本体5がマスタデバイス(マスタA)を構成し、コアユニット70a、70b、70c、および70dが、マスタデバイス(マスタA)に対応するスレーブデバイス(スレーブA1、A2、A3、A4)となる。また、コアユニット70とサブユニット76との間の通信システムにおいて、コアユニット70a、70b、70c、および70dがそれぞれマスタデバイス(マスタB〜E)を構成し、サブユニット76a、76b、76c、および76dが、マスタデバイス(マスタB〜E)にそれぞれ対応するスレーブデバイス(スレーブB1、C1、D1、E1)となる。
ゲーム装置本体5に構成されるマスタデバイス(マスタA)は、対応するスレーブデバイス(スレーブA1〜A4)との間でピコネットを構成して通信を行う。また、コアユニット70a、70b、70c、および70dにそれぞれ構成されるマスタデバイス(マスタB〜E)は、それぞれ対応するスレーブデバイス(スレーブB1、C1、D1、E1)との間でピコネットを構成して通信を行う。すなわち、コアユニット70a〜70dがそれぞれサブユニット76a〜76dとの間で通信を行うと共に、コアユニット70a〜70dがそれぞれゲーム装置本体5との間でも通信を行うことになる。
図25で示した通信システムを用いる場合、サブユニット76に設けられた操作部78からのサブキーデータ、およびサブユニット76に設けられた加速度センサ761からのサブ加速度データは、自機のID番号と共に一連のサブ操作情報として無線モジュール767で微弱電波信号に変調されてサブユニット76から放射される。そして、コアユニット70の無線モジュール753でサブユニット76から放射された微弱電波信号を受信し、コアユニット70で当該微弱電波信号を復調や復号することによって、一連のサブ操作情報(サブキーデータ、サブ加速度データ、およびサブユニット76のID番号)を一旦メモリ752に格納する。そして、マイコン751は、無線コントローラモジュール19への送信タイミングが到来すると、メモリ752に格納されている送信データを自機のID番号およびペアとなっているサブユニット76のID番号と共に一連のコア操作情報およびサブ操作情報として、無線モジュール753へ出力する。そして、無線モジュール753は、例えばブルートゥース(登録商標)の技術に基づいて、所定周波数の搬送波を用いてコア操作情報およびサブ操作情報で変調し、その微弱電波信号をアンテナ754からゲーム装置本体5へ放射する。そして、ゲーム装置本体5の無線コントローラモジュール19でその微弱電波信号を受信し、ゲーム装置本体5で当該微弱電波信号を復調や復号することによって、一連のコア操作情報(コアキーデータ、コア加速度データ、および処理結果データ)およびサブ操作情報(サブキーデータおよびサブ加速度データ)を送信元のコアユニット70のID番号およびペアとなったサブユニット76のID番号と共に取得することができる。そして、ゲーム装置本体5のCPU10は、取得したコア操作情報およびサブ操作情報とゲームプログラムとに基づいて、ゲーム処理を行う。
また、コアユニット70の通信部75は、プレイヤが組変更操作を行うことによってコネクタ73がサブユニット76のコネクタ763と接続された場合、当該サブユニット76との間の無線通信におけるペアリングを確立すると共に、接続されたサブユニット76から当該サブユニット76のID番号を、コネクタ73を介して取得する。そして、後述により明らかとなるが、コネクタ73がサブユニット76のコネクタ763と接続された場合、通信部75は、自機のID番号および取得したサブユニット76のID番号(ペアID番号)と共に組変更操作が行われたことを示す接触データを、ゲーム装置本体5へ送信する。
また、コアユニット70の通信部75は、ゲーム装置本体5から指示された組番号に応じて、当該組番号に対応するLEDを点灯させるための組表示データを、ペアリングされたサブユニット76へ送信する。そして、サブユニット76は、複数のLED762のうち、コアユニット70から送信された組表示データに応じたLEDを点灯させる。
次に、第2の実施形態におけるゲーム装置本体5のゲーム処理において用いられる主なデータについて説明する。なお、上述した第1の実施形態と比較して、第2の実施形態において用いられるデータは、ユニット組テーブルデータDcが異なるのみであり、他のデータは第1の実施形態と同様であるため詳細な説明を省略する。
図26において、第2の実施形態におけるユニット組テーブルデータDcは、現時点で設定されているコアユニット70とサブユニット76との間の組み合わせを管理するためのユニット組テーブルを示すデータが格納される。例えば、ユニット組テーブルは、ゲーム装置本体5が通信可能なコアユニット70それぞれのID番号、スレーブ番号、および組番号と共に、コアユニット70との間で無線通信のペアリングが行われているサブユニット76のID番号(以下、ペアID番号と記載することがある)等が記述される。
例えば、ユニット組テーブルデータDcには、ゲーム装置本体5のマスタデバイス(マスタA)の通信先となるコアユニット70(スレーブA)について、それぞれのID番号、スレーブ番号、組番号、およびペアID番号等が記述される。具体的には、ID番号「AXXXXXX」のコアユニット70に対して、スレーブ番号「A1」、組番号「1」、およびペアID番号「axxxxxx」が記述されている。
次に、第2の実施形態におけるゲーム装置本体5において行われる処理の詳細を説明する。なお、上述した第1の実施形態と比較して、第2の実施形態における処理では、組設定処理および組変更処理の動作が異なり、処理の全体の流れを示すフローチャート(図21)は同じである。したがって、以下の説明においては、第2の実施形態における組設定処理および組変更処理の動作について説明する。なお、図27は、図21におけるステップ42の組設定処理の詳細な第2の実施形態の動作の一例を示すサブルーチンである。図28は、図21におけるステップ43の組変更処理の詳細な第2の実施形態の動作の一例を示すサブルーチンである。なお、図27および図28でも、CPU10が実行する各ステップを「S」と略称する。
図27において、CPU10は、コアユニット70の何れか1つから操作情報を受信したか否かを判断する(ステップ91)。そして、CPU10は、コアユニット70の何れか1つから操作情報を受信した場合、送信されたID番号およびペアID番号に基づいて当該操作情報を用いてコア操作データDa1およびサブ操作データDa2を更新して、次のステップ92に処理を進める。一方、CPU10は、コアユニット70の何れからも操作情報を受信していない場合、次のステップ96に処理を進める。
ステップ92において、CPU10は、上記ステップ91で受信した操作情報にペアID番号が含まれているか否かを判断する。そして、CPU10は、受信した操作情報にペアID番号が含まれている場合、当該操作情報を送信したコアユニット70がサブユニット76との間で無線通信のペアリングが行われていると判断して、次のステップ93に処理を進める。一方、CPU10は、受信した操作情報にペアID番号が含まれていない場合、当該操作情報を送信したコアユニット70がサブユニット76との間で無線通信のペアリングが行われていないと判断して、次のステップ97に処理を進める。
ステップ93において、CPU10は、操作情報を送信したコアユニット70が、既に何れかの組に設定されているか否かを判断する。例えば、CPU10は、ユニット組テーブルデータDcを参照して、送信されたID番号に相当するコアユニット70が既に記述されているか否かを判断し、既に送信されたID番号が記述されている場合に当該ID番号のコアユニット70が何れかの組に設定済みであるとする。そして、CPU10は、操作情報を送信したコアユニット70が何れの組にも設定されていない場合、次のステップ94に処理を進める。一方、CPU10は、操作情報を送信したコアユニット70が何れかの組に設定されている場合、次のステップ96に処理を進める。
ステップ94において、CPU10は、未設定となっている組番号のうち、最若番号の組に操作情報を送信したコアユニット70を設定し、次のステップに処理を進める。例えば、CPU10は、ユニット組テーブルデータDcを参照して、操作情報を送信したコアユニット70を未設定の最若番号の組番号に割り当てる。そして、CPU10は、当該最若番号の組番号に操作情報を送信したコアユニット70のID番号および当該操作情報に含まれているペアID番号を記述して、適当なスレーブ番号をコアユニット70に割り当てる。具体的には、図26に示したユニット組テーブルデータDcでは、コアユニット70の組番号「1」が、ID番号「AXXXXXX」のコアユニット70およびペアID番号「axxxxxx」のサブユニット76に割り当てられ、当該コアユニット70にスレーブ番号「A1」が割り当てられている。
次に、CPU10は、上記ステップ94で設定された組番号を示す組表示データを、操作情報を送信したコアユニット70へ送信し(ステップ95)、次のステップ96に処理を進める。上記ステップ94の処理によって送信された組表示データを受信することによって、操作情報を送信したコアユニット70は、自機の組番号を知ると共に、当該組番号に応じたLED702を点灯する。また、組表示データを受信したコアユニット70は、自機と無線通信のペアリングが行われているサブユニット76へ、上記ステップ94で設定された組番号を示す組表示データを送信する。そして、コアユニット70から送信された組表示データを受信したサブユニット76は、自機の組番号を知ると共に、当該組番号に応じたLED762を点灯する。
一方、上記ステップ92において、受信した操作情報にペアID番号が含まれていないと判断された場合、組番号が空番号であることを示す組表示データを、上記ステップ91で操作情報を送信したコアユニット70へ送信し(ステップ97)、次のステップ96に処理を進める。ここで、コアユニット70から送信される操作情報にペアID番号が含まれていない場合は、当該操作情報を送信したコアユニット70がサブユニット76との間で無線通信のペアリングが行われていないことが考えられる。したがって、上記ステップ97の処理によって送信された組表示データを受信することによって、当該組表示データを受信したコアユニット70は、自機が無線通信のペアリングを行っておらず何れの組にも属していないことを知ると共に、LED702を用いて何れの組に属していないことを示す(例えば、LED702を全て消灯)。
ステップ96において、CPU10は、コアユニット70とサブユニット76との組設定処理を終了するか否かを判断する。組設定処理を終了する条件としては、例えば、プレイヤが組設定処理を終了する操作を行ったことや、予め定められた組設定処理を終了する条件が満たされたこと(例えば、組設定処理が開始されてから所定時間が経過したこと)等がある。そして、CPU10は、組設定処理を継続する場合、上記ステップ91に戻って、処理を繰り返す。一方、CPU10は、組設定処理を終了する場合、当該サブルーチンによる処理を終了する。
図28において、CPU10は、組変更処理を実行するか否かを判断する(ステップ101)。例えば、プレイヤがコアユニット70およびサブユニット76を用いてコネクタ73とコネクタ763とを接続する組変更操作を行うことによって、コアユニット70から接触データを受信した場合、CPU10は、組変更処理を実行すると判断する。なお、CPU10が組変更処理を行うか否かを判断する方法は、他に様々な方法が考えられるが、他の方法例については後述する。そして、CPU10は、組変更処理を行う場合、次のステップ102に処理を進める。一方、CPU10は、組変更処理を行わない場合、次のステップ108に処理を進める。
ステップ102において、CPU10は、組変更操作が行われたコアユニット70から接触データを取得し、次のステップに処理を進める。例えば、CPU10は、受信した接触データの送信元のID番号に基づいて当該接触データを用いて接触データDa3を更新する。
次に、CPU10は、上記ステップ102で取得した接触データを参照して、組変更操作されたコアユニット70およびサブユニット76のペアがそれぞれ同じ組番号に属するか否かを判断する(ステップ103)。例えば、CPU10は、ユニット組テーブルデータDcおよび上記ステップ102で取得した接触データを参照して、接触データの送信元のID番号と当該接触データが示すペアID番号とがそれぞれ同じ組番号に属するか否かを判断する。そして、CPU10は、組変更操作されたペアがそれぞれ異なる組番号に属する、または少なくとも一方が何れの組にも属していない場合、次のステップ104に処理を進める。一方、CPU10は、組変更操作されたペアがそれぞれ同じ組番号に属する場合、次のステップ108に処理を進める。
ステップ104において、CPU10は、組変更操作されたコアユニット70およびサブユニット76のペアがそれぞれ同じ組番号に属するように組番号を変更し、次のステップに処理を進める。例えば、CPU10は、ユニット組テーブルデータDcを参照して、上記ステップ82で取得した接触データの送信元のID番号(すなわち、接触データを送信したコアユニット70のID番号)に対応するペアID番号を、当該接触データに含まれるペアID番号に変更する。上記ステップ104の処理によって、ユニット組テーブルデータDc上において、組変更処理されたコアユニット70およびサブユニット76のペアがそれぞれ同じ組番号に変更される。
次に、CPU10は、上記ステップ104で設定された組番号を示す組表示データを、組変更操作されたコアユニット70へ送信し(ステップ105)、次のステップに処理を進める。上記ステップ105の処理によって送信された組表示データを受信することによって、当該組表示データを受信したコアユニット70は、自機の組番号を知ると共に、当該組番号に応じたLED702を点灯する。また、組表示データを受信したコアユニット70は、自機と無線通信のペアリングが行われているサブユニット76へ、上記ステップ105で設定された組番号を示す組表示データを送信する。そして、コアユニット70から送信された組表示データを受信したサブユニット76は、自機の組番号が変更されたことを知ると共に、当該変更された組番号に応じたLED762を点灯する。
ここで、上記組変更操作されたコアユニット70は、当該組変更操作前に他のサブユニット76と無線通信のペアリングが行われていたことが考えられる。しかしながら、上記組変更操作を行ったコアユニット70は、当該組変更操作によって新たなサブユニット76との無線通信のペアリングを行うと共に、当該組変更操作前のペアリングを解消(スレーブ登録を解除)する。したがって、上記組変更操作前にコアユニット70とペアリングされていたサブユニット76は、上記組変更操作によってコアユニット70との間のスレーブ登録が解除されることによって、自機が何れの組にも属していないことを認識し、LED762を用いて自機が何れの組に属していないことを示す(例えば、LED762を全て消灯)。
次に、CPU10は、上記ステップ104の処理によって、重複しているペアID番号があるか否かを判断する(ステップ106)。例えば、CPU10は、ユニット組テーブルデータDcを参照して、ペアID番号に重複があるか否かを判断する。そして、CPU10は、ペアID番号に重複がある場合、次のステップ107に処理を進める。一方、CPU10は、ペアID番号に重複がない場合、次のステップ108に処理を進める。
ステップ107において、CPU10は、ユニット組テーブルデータDcを参照して、重複しているペアID番号のうち、上記ステップ104およびステップ105の処理の対象となっていない組番号(すなわち、ペアID番号が変更されていない組番号)のペアID番号を削除し、次のステップ108に処理を進める。
ステップ108において、CPU10は、組変更処理を終了してゲーム処理を実行するか否かを判断する。ゲーム処理を実行する条件としては、例えば、プレイヤが組変更処理を終了する操作を行ったことや、当該ステップ43の組変更処理を実行する前段階においてゲーム処理中であった場合は上記ステップ101の判定において組変更処理を実行しないと判断されたこと等がある。そして、CPU10は、組変更処理を継続する場合、上記ステップ101に戻って、処理を繰り返す。一方、CPU10は、ゲーム処理を実行する場合、当該サブルーチンによる処理を終了する。
このように、第2の実施形態に係るゲームシステムでは、完全に分離したコアユニット70とサブユニット76との組み合わせを区別するための表示部が各ユニットに設けられている。そして、コアユニット70とサブユニット76との組み合わせが上記表示部に適宜表示されるため、コアユニット70とサブユニット76とで構成されるコントローラ7を用いる際のコアユニット70とサブユニット76との組み合わせが判別可能となる。
なお、上述した第2の実施形態の説明では、コアユニット70のコネクタ73とサブユニット76のコネクタ763とを、一時的に接続(接触)させることによってプレイヤが組変更操作を行う一例を用いたが、第2の実施形態においてはコアユニット70とサブユニット76との間で無線通信のペアリングが可能な方法であれば、他の方法で組変更操作が行われてもかまわない。
組変更操作の第1の例として、プレイヤがコアユニット70に設けられた所定の操作ボタンとサブユニット76に設けられた所定の操作ボタンとを操作することによって、組変更操作が行われる。例えば、第1の実施形態と同様にコアユニット70およびサブユニット76にそれぞれに組変更操作用の操作ボタンに設定する。コアユニット70およびサブユニット76の一方の組変更操作用の操作ボタンが押下された後、所定時間以内にコアユニット70およびサブユニット76の他方の組変更操作用の操作ボタンが押下されることによって、組変更操作が行われる。このとき、組変更操作用の操作ボタンが押下されたコアユニット70とサブユニット76との間で無線通信のペアリングが行われて、両者間の無線通信が可能となる。そして、ペアリングが行われたサブユニット76からコアユニット70へ、サブユニット76のID番号(ペアID番号)がコアユニット70へ送信される。ペアID番号を取得したコアユニット70は、自機のID番号およびペアID番号と共に組変更操作用の操作ボタンが押下されたことを示す操作データ(または、新たなペアリングが行われたことを示すデータ)が、ゲーム装置本体5へ送信する。この場合、CPU10は、コアユニット70において組変更操作用の操作ボタンが操作されたことを検出することによって、上記ステップ101(図28)において組変更処理を実行すると判断する。そして、CPU10は、コアユニット70における組変更操作用の操作ボタンが操作されたことを検出することによって、組変更操作されたコアユニット70とサブユニット76との組み合わせ(ID番号の組み合わせ)を認識する。
組変更操作の第2の例として、コアユニット70とサブユニット76との距離が所定距離以内であることをRFIDの通信技術等の近距離無線通信技術を用いて検出し、当該所定距離以内となったコアユニット70とサブユニット76との組み合わせがゲーム装置本体5側で設定されている組み合わせと異なる場合に、組変更操作が行われる。例えば、コアユニット70およびサブユニット76それぞれにNFCチップを設け、NFCチップ間の近距離無線通信が可能となった場合に当該NFCチップ間で互いのID番号(コアユニット70およびサブユニット76のID番号)を交換する無線通信を行う。このとき、NFCチップ間の近距離無線通信が成立したコアユニット70とサブユニット76との間で無線通信のペアリングが行われて、両者間の無線通信が可能となる。そして、NFCチップ間の近距離無線通信が成立した場合に、自機のID番号および当該近距離無線通信で得た通信相手のID番号と共に、当該近距離無線通信が成立した旨を示す操作データが、コアユニット70からゲーム装置本体5へ送信される。この場合、CPU10は、コアユニット70から上記近距離無線通信が成立した旨を示す操作データを受信し、当該近距離無線通信が成立したコアユニット70とサブユニット76との組み合わせが既に設定されている組み合わせと異なる場合に、上記ステップ101(図28)において組変更処理を実行すると判断する。そして、CPU10は、受信した上記近距離無線通信が成立した旨を示す操作データを用いて、組変更操作されたコアユニット70とサブユニット76との組み合わせ(ID番号の組み合わせ)を認識する。
組変更操作の第3の例として、コアユニット70とサブユニット76との間で人体通信が可能であることを検出し、当該人体通信が可能となっているコアユニット70とサブユニット76との組み合わせがゲーム装置本体5側で設定されている組み合わせと異なる場合に、組変更操作が行われる。一例として、コアユニット70およびサブユニット76それぞれの本体の一部に、当該ユニットを把持するプレイヤの手と接触可能な導電体を露出させ、コアユニット70およびサブユニット76を把持するプレイヤの体内電流の変化を利用することによって、当該導電体間の人体通信を行う。他の例として、コアユニット70およびサブユニット76それぞれの本体の一部に、所定の絶縁体を介して、当該ユニットを把持するプレイヤの手と対向する導電体を設け、コアユニット70およびサブユニット76を把持するプレイヤの人体表面の電界の変化を利用することによって、当該導電体間の人体通信を行う。上記導電体を介して、他のユニットと通信可能(すなわち、ユニット間で人体通信可能)となった場合に、当該ユニット間で互いのID番号(コアユニット70およびサブユニット76のID番号)を交換する人体通信を行う。このとき、人体通信が成立したコアユニット70とサブユニット76との間で無線通信のペアリングが行われて、両者間の無線通信が可能となる。そして、上記人体通信が成立した場合に、当該人体通信が成立したコアユニット70およびサブユニット76のID番号と共に、当該人体通信が成立した旨を示す操作データが、コアユニット70からゲーム装置本体5へ送信される。この場合、CPU10は、コアユニット70から上記人体通信が成立した旨を示す操作データを受信し、当該人体通信が成立したコアユニット70とサブユニット76との組み合わせが既に設定されている組み合わせと異なる場合に、上記ステップ101(図28)において組変更処理を実行すると判断する。そして、CPU10は、受信した上記人体通信が成立した旨を示す操作データを用いて、組変更操作されたコアユニット70とサブユニット76との組み合わせ(ID番号の組み合わせ)を認識する。
また、組変更操作の上記第3の例の場合、コアユニット70とサブユニット76とを直接接触させることによって組変更操作することも可能である。例えば、コアユニット70およびサブユニット76それぞれに上記導電体が露出して設けられている場合、当該導電体同士を接触させることによって接触相手装置との間で無線通信のペアリングを行うと共に、組変更操作することも可能となる。また、コアユニット70およびサブユニット76それぞれに所定の絶縁体を介して上記導電体が設けられている場合、当該導電体同士が対向するようにコアユニット70とサブユニット76とを接触させることによって接触相手装置との間で無線通信のペアリングを行うと共に、組変更操作することも可能となる。さらに、コアユニット70およびサブユニット76の本体がそれぞれ上述した導電性の部材711で覆われている場合、部材711同士を接触させることによって接触相手装置との間で無線通信のペアリングを行うと共に、組変更操作することも可能となる。
なお、上述した第2実施形態の説明では、何れの組変更操作例においても組変更操作が行われたことを示す操作データに基づいてゲーム装置本体5がコアユニット70とサブユニット76との組み合わせを変更する例を用いたが、他のデータに基づいてコアユニット70とサブユニット76との組み合わせを変更してもよい。例えば、上述した組変更操作例では、何れも組変更操作が行われたコアユニット70とサブユニット76との間で無線通信におけるペアリングが行われる。したがって、当該ペアリング後は、コアユニット70からゲーム装置本体5へ送信される操作情報(コア操作情報およびサブ操作情報)に、当該ペアリングで設定された無線通信相手(ペアID番号)が含まれることになる。したがって、ゲーム装置本体5は、コアユニット70から送信されてくる操作情報のペアID番号を注視して、当該ペアID番号が変更された場合に組変更操作が行われたと判断してもかまわない。この場合、コアユニット70から送信される操作情報に基づいて、ゲーム装置本体5がコアユニット70とサブユニット76との組み合わせを変更することになる。
また、上述した第1の実施形態および第2の実施形態の説明では、組番号が変更される場合にコアユニット70の組番号の設定が優先される例を用いたが、サブユニット76の組番号が優先されてもかまわない。この場合、コアユニット70とサブユニット76との組み合わせが変更される場合に、当該サブユニット76の組番号に合うようにコアユニット70の組番号を変更することになる。
また、第2の実施形態においては、コアユニット70とサブユニット76との間の無線通信において、コアユニット70が無線通信におけるマスタデバイスに設定される例を用いたが、サブユニット76を無線通信におけるマスタデバイスに設定してもかまわない。この場合、コアユニット70とサブユニット76との間の無線通信では、コアユニット70がスレーブデバイスに設定されることになる。また、ゲーム装置本体5は、サブユニット76との間で無線通信を行い、サブユニット76が当該無線通信におけるスレーブデバイスに設定されることになる。
また、上述した説明では、複数のプレイヤがコントローラ7(コアユニット70およびサブユニット76)を操作することを前提にしているが、単一のプレイヤによる操作であっても本発明を実現できることは言うまでもない。単一のプレイヤが操作する場合であっても、コアユニット70およびサブユニット76の一方が複数存在する場合は、コアユニット70とサブユニット76との組み合わせを区別するための表示によって当該プレイヤが使用すべき組み合わせを判別することができるし、当該組み合わせを容易に変更することもできる。また、コアユニット70およびサブユニット76がそれぞれ1つずつ存在する場合であっても、プレイヤは、両者の組設定が有効に作用しているか否かを表示部によって判別することができ、無効の場合に容易に組設定を行うことも可能となる。
また、上述した説明では、据置型のゲーム装置に本願発明を適用した例を説明したが、複数の入力装置によって操作される一般的なパーソナルコンピュータ等の情報処理装置にも適用することができる。
また、上述したコアユニット70およびサブユニット76の形状や、それらに設けられている操作部72の形状、数、および設置位置等は、単なる一例に過ぎず他の形状、数、および設置位置であっても、本発明を実現できることは言うまでもない。また、上述した処理で用いられる処理順序等は、単なる一例に過ぎず他の処理順序であっても、本発明を実現できることは言うまでもない。
また、本発明で用いられるプログラムは、光ディスク4等の外部記憶媒体を通じてゲーム装置本体5に供給されるだけでなく、有線または無線の通信回線を通じてゲーム装置本体5に供給されてもよい。また、上記プログラムは、ゲーム装置本体5内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体の他に、不揮発性半導体メモリでもよい。
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示にすぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。