(57)【要約】  コントローラ２０は、装置本体１０との間で通信を開始する際に固有ＩＤを装置本体１０へ送信する。装置本体１０では、受信した固有ＩＤが既に有線コントローラＮｏ登録テーブルに登録されているか否かを判定し、既に登録されている場合には、仮想コントローラＮｏと有線コントローラＮｏと固有ＩＤとを対応付ける既登録対応関係設定処理を実行する。未だ登録されていない場合には、有線コントローラＮｏと固有ＩＤとを対応付けると共に、仮想コントローラＮｏとこれらとを対応付ける新規登録及び対応関係設定処理を実行する。そして、既登録対応関係設定処理または新規登録及び対応関係設定処理が完了したことを条件に固有ＩＤに対応付けた仮想コントローラＮｏを所定の情報処理に関連付ける。【特許請求の範囲】
【請求項１】
ユーザから操作される操作端末と、この操作端末との間で有線及び無線による通信が可能な情報処理装置と、を備えた情報通信システムであって、
前記操作端末は、
前記情報処理装置との間で情報を送受信する端末側送受信手段と、
固有の端末識別情報が予め記憶された端末側端末識別情報記憶手段と、を有し、
前記情報処理装置は、
所定の情報処理を実行する情報処理実行手段と、
前記操作端末との間で情報を送受信する装置側送受信手段と、
前記端末識別情報が記憶される装置側端末識別情報記憶手段と、
複数の仮想端末番号の一つと前記装置側送受信手段が受信した端末識別情報とを対応付けると共に前記端末識別情報に対応付けた前記一つの仮想端末番号を前記所定の情報処理に関連付ける対応関係設定手段と、
前記端末識別情報と仮想端末番号との対応関係が記憶される対応関係記憶手段と、を有し、
前記端末側送受信手段は、前記装置側送受信手段との間で通信を開始する際に前記端末側端末識別情報記憶手段に記憶された端末識別情報を前記装置側送受信手段へ送信し、
前記対応関係設定手段は、前記装置側送受信手段が受信した端末識別情報が前記装置側端末識別情報記憶手段に記憶されているか否かを判定し、既に記憶されている場合には、前記一つの仮想端末番号と前記端末識別情報とを対応付け、未だ記憶されていない場合には、前記受信した端末識別情報を前記装置側端末識別情報記憶手段に記憶すると共に前記一つの仮想端末番号と前記端末識別情報とを対応付ける
ことを特徴とする情報通信システム。
【請求項２】
請求項１に記載の情報通信システムであって、
前記端末側送受信手段と前記装置側送受信手段とは、両者が有線接続された状態では有線によって情報を送受信し、両者が有線接続されていない状態では無線によって情報を送受信する
ことを特徴とする情報通信システム。
【請求項３】
請求項１または請求項２に記載の情報通信システムであって、
前記操作端末は、無線による通信時に自己への駆動用電力を供給するバッテリと、前記バッテリの蓄電量を求める蓄電量検知手段と、を有し、
前記情報処理装置は、前記情報処理実行手段が実行する情報処理に応じて、前記情報処理装置と一体的または別体に設けられた装置側表示手段の表示制御を行う装置側表示制御手段を有し、
前記情報処理装置は、前記端末側送受信手段と前記装置側送受信手段とが有線接続された状態で、この有線接続を介して前記操作端末へ駆動用電力を供給し、
前記端末側送受信手段は、前記蓄電量検知手段が求めたバッテリの蓄電量に関する情報を前記装置側送受信手段へ送信し、
前記装置側表示制御手段は、前記バッテリの蓄電量に関する情報に基づいて、該バッテリの蓄電量を直接的または間接的に示す表示を前記装置側表示手段に表示する
ことを特徴とする情報通信システム。
【請求項４】
ユーザから操作される複数の操作端末との間でそれぞれ通信可能な情報処理装置であって、
所定の情報処理を実行する情報処理実行手段と、
前記操作端末との間で情報を送受信する装置側送受信手段と、
前記操作端末に固有の端末識別情報が記憶される装置側端末識別情報記憶手段と、
複数の仮想端末番号の一つと前記装置側送受信手段が受信した端末識別情報とを対応付けると共に前記端末識別情報に対応付けた前記一つの仮想端末番号を前記所定の情報処理に関連付ける対応関係設定手段と、
前記端末識別情報と仮想端末番号との対応関係が記憶される対応関係記憶手段と、を備え、
前記本体側送受信手段は、前記操作端末との間で通信を開始する際に前記操作端末から該操作端末が保持する端末識別情報を受信し、
前記装置側送受信手段が前記操作端末から前記端末識別情報を受信したとき、前記対応関係設定手段は、前記装置側送受信手段が受信した端末識別情報が前記装置側端末識別情報記憶手段に記憶されているか否かを判定し、既に記憶されている場合には、前記一つの仮想端末番号と前記端末識別情報とを対応付け、未だ記憶されていない場合には、前記受信した端末識別情報を前記装置側端末識別情報記憶手段に記憶すると共に前記一つの仮想端末番号と前記端末識別情報とを対応付ける
ことを特徴とする情報処理装置。
【請求項５】
請求項４に記載の情報処理装置であって、
前記装置側送受信手段は、前記操作端末との間で有線及び無線による通信が可能であり、有線接続された状態では有線によって前記操作端末との間で情報を送受信し、有線接続されていない状態では無線によって情報を送受信する
ことを特徴とする情報処理装置
【請求項６】
情報処理装置との間で情報を送受信する端末側送受信手段と、
固有の端末識別情報が予め記憶された端末側端末識別情報記憶手段と、
装置識別情報が記憶される端末側装置識別情報記憶手段と、
装置識別情報記憶制御手段と、
端末側表示手段と、
前記端末側表示手段の表示制御を行う端末側表示制御手段と、を備え、
前記端末側送受信手段は、前記情報処理装置との間で通信を開始する際に前記端末側端末識別情報記憶手段に記憶された端末識別情報を前記情報処理装置へ送信し、且つ前記情報処理装置から該情報処理装置に固有の装置識別情報を受信し、さらに前記情報処理装置が前記端末識別情報と対応付けた仮想端末番号またはこの仮想端末番号に対応する情報を該情報処理装置から受信し、
前記装置識別情報記憶制御手段は、前記受信した装置識別情報を前記端末側装置識別情報記憶手段に記憶し、
前記端末側表示制御手段は、前記端末側送受信手段が前記仮想端末番号またはこの仮想端末番号に対応する情報を受信したとき、前記仮想端末番号を直接または間接的に表す識別表示を前記端末側表示手段に表示する
ことを特徴とする操作端末。
【請求項７】
請求項６に記載の操作端末であって、
前記端末側送受信手段とは、前記情報処理装置との間で有線及び無線による通信が可能であり、有線接続された状態では有線によって前記情報処理装置との間で情報を送受信し、有線接続されていない状態では無線によって情報を送受信する
ことを特徴とする操作端末。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばビデオゲーム機と複数のコントローラからなるエンタテインメントシステムのように複数の操作端末と情報処理装置から構成される情報通信システム、例えばビデオゲーム機のような情報処理装置、例えばビデオゲーム機のコントローラのような操作端末、それらの動作を実行する処理プログラム、及びその処理プログラムが記憶された記憶媒体に関する。
【背景技術】
【０００２】
例えば、複数のコントローラを接続可能なコントローラポートを備えたビデオゲーム機では、多数の遊戯者（以下、プレイヤーと称する）が複数のコントローラを各々操作して同じゲームを楽しむことが可能である。【０００３】
このように多数のプレイヤーが各々コントローラを操作して遊ぶゲームの場合、テレビジョンモニタなどの表示画面上に映し出されるゲーム上のキャラクタと、そのキャラクタを操作するコントローラとの対応関係を、プレイヤー自身がコントローラを操作して設定する。【０００４】
なお、ゲーム上においてコントローラにより操作されるのはキャラクタに限定されず、また、コントローラとの対応関係を設定するものもキャラクタに限定されるわけではないが、ここでは説明を簡略化するためにキャラクタを例に挙げている。【０００５】
従来のビデオゲーム機の場合、コントローラは、ゲーム機本体のコントローラポートに有線（ケーブル）により１対１に接続され、ゲーム機本体は、プレイヤーからの入力に応じて各コントローラポートに付されたポート番号とキャラクタとを対応付ける。例えば、第１のコントローラポート（ポート番号０１）に接続された第１のコントローラにより第１のキャラクタを操作するように設定し、第２のコントローラポート（ポート番号０２）に接続された第２のコントローラにより第２のキャラクタを操作するように設定する場合、ゲーム機本体は、第１のキャラクタとポート番号０１とを対応付け、第２のキャラクタとポート番号０２とを対応付ける。すなわち、コントローラとキャラクタとの対応関係は、ポート番号を介して設定される。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、コントローラとビデオゲーム機とを無線通信により接続する場合、コントローラとポート番号との対応関係によってコントローラを特定することができず、コントローラを特定するための新たな対応関係を設定する必要が生じる。【０００７】
また、コントローラとビデオゲーム機とが有線及び無線の双方で接続が可能な場合、コントローラを変えずゲームの実行中に接続状態を変更（有線から無線への変更または無線から有線への変更）する可能性がある。このような場合において、通信状態の変更によりゲームの進行が妨げられてしまうことは好ましくない。【０００８】
さらに、コントローラとビデオゲーム機との対応関係をゲーム開始の際に都度設定することは、ビデオゲーム機の処理負担やゲームの開始準備時間の増大を招くという不都合を生じさせる。【０００９】
本発明は上述の課題に鑑みてなされたものであり、例えば複数のコントローラとそれらを接続可能なビデオゲーム機とからなるエンタテインメントシステムのように、複数の操作端末を接続可能な情報処理装置、その操作端末、及びそれらにより構成される通信システムにおいて、有線や無線という接続形式の影響を受けることなく、両者を対応付けることが可能な情報通信システム、情報処理装置、操作端末、それらの動作を実行する情報処理プログラム、及びその処理プログラムが記憶された記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の情報通信システムは、ユーザから操作される操作端末と、この操作端末との間で通信可能な情報処理装置と、を備える。【００１１】
操作端末は、端末側送受信手段と端末側端末識別情報記憶手段とを有する。端末側送受信手段は、情報処理装置との間で情報を送受信する。端末側識別情報記憶手段には、固有の端末識別情報が予め記憶される。【００１２】
情報処理装置は、情報処理実行手段と装置側送受信手段と装置側端末識別情報記憶手段と対応関係設定手段と対応関係記憶手段とを有する。【００１３】
情報処理実行手段は、所定の情報処理を実行する。装置側送受信手段は、操作端末との間で情報を送受信する。装置側端末識別情報記憶手段には、端末識別情報が記憶される。対応関係設定手段は、複数の仮想端末番号の一つと装置側送受信手段が受信した端末識別情報とを対応付けると共に、端末識別情報に対応付けた一つの仮想端末番号を所定の情報処理に関連付ける。対応関係記憶手段には、端末識別情報と仮想端末番号との対応関係が記憶される。【００１４】
端末側送受信手段は、装置側送受信手段との間で通信を開始する際に、端末側端末識別情報記憶手段に記憶された端末識別情報を装置側送受信手段へ送信する。【００１５】
対応関係設定手段は、装置側送受信手段が受信した端末識別情報が装置側端末識別情報記憶手段に記憶されているか否かを判定する。判定の結果、既に記憶されている場合には、前記一つの仮想端末番号と前記端末識別情報とを対応付ける。一方、未だ記憶されていない場合には、受信した端末識別情報を装置側端末識別情報記憶手段に記憶する共に、前記一つの仮想端末番号と前記端末識別情報とを対応付ける。そして、前記端末識別情報に対応付けた前記一つの仮想端末番号を所定の情報処理に関連付ける。
【発明の効果】
【００１６】
本発明によれば、情報処理装置と操作端末との対応関係を仮想端末番号と端末識別情報とを対応付けることによって設定しているので、有線や無線という接続形式の影響を受けることなく、両者を対応付けることができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施形態のエンタテインメントシステムの概要を示す模式図である。
【図２】コントローラの外部構成を示す模式図である。
【図３】装置本体の内部構成を示すブロック図である。
【図４】コントローラの内部構成を示すブロック図である。
【図５】有線コントローラＮｏ登録テーブルを示す模式図である。
【図６】無線コントローラＮｏ登録テーブルを示す模式図である。
【図７】仮想コントローラＮｏ対応テーブルを示す模式図である。
【図８】コントローラ登録及び対応付け処理を示すタイムチャートである。
【図９】有線及び無線共に既登録及び対応付け済のコントローラによる通信開始処理を示すタイムチャートである。
【図１０】バッテリ監視処理を示すタイムチャートである。
【図１１】ＢＴ通信中のＲＳＳＩ監視処理を示すタイムチャートである。
【図１２】通信開始時に装置本体が実行する処理を示すフローチャートである。
【図１３】メニュー画面を示す模式図である。
【符号の説明】
【００１８】
１０  装置本体
２０  コントローラ
２１  表示部
６４  メインＣＰＵ
６５  メインメモリ
【発明を実施するための最良の形態】
【００１９】
［本実施の形態の概略構成］
本発明一実施形態として、図１に示すエンタテインメントシステムは、本発明の情報処理装置の一例のビデオゲーム機であるエンタテインメント装置（以下、装置本体と称する）１０と、ユーザ（プレイヤー）により操作される複数の操作端末であるコントローラ２０（図１の例では２つのコントローラ２０Ａ，２０Ｂ）とを備える。装置本体１０と各コントローラ２０Ａ，２０Ｂとの間では、通信により情報が送受信される。プレイヤーは、両者間の通信方法として、ケーブル１３Ａ，１３Ｂを介した有線接続による通信と無線による通信のうち任意の一方を選択可能である。また、装置本体１０にコントローラ２０を有線接続した場合には、有線による通信が実行され、無線による通信は実行されない。【００２０】
図１の例において、装置本体１０は、複数のコントローラポート１１（本実施形態では、１１Ａ，１１Ｂ，１１Ｃ，１１Ｄの４箇所）を有する。コントローラ２０Ａ，２０Ｂと装置本体１０とを有線接続する場合、ケーブル１３Ａは、一端部に設けられた差込コネクタ１２Ａが装置本体１０のコントローラポート１１のうち任意の一つ（この例では１１Ａ）に差し込まれて電気的に接続され、他端部に設けられた差込コネクタ１４Ａがコントローラ２０Ａの接続ポート１５（１５Ａ）に差し込まれて電気的に接続される。また、ケーブル１３Ｂは、一端部に設けられた差込コネクタ１２Ｂが装置本体１０のコントローラポート１１のうち他の任意の一つ（１１Ｂ）に差し込まれて電気的に接続され、他端部に設けられた差込コネクタ１４Ｂがコントローラ２０Ｂの接続ポート１５（１５Ｂ）に差し込まれて電気的に接続される。装置本体１０とコントローラ２０との有線接続方式は、双方向にて通信可能であればよく、本実施形態では、ＵＳＢ（Universal Serial Bus）形式による接続（以下、ＵＳＢ接続と称する）を採用している。【００２１】
また、各コントローラ２０（２０Ａ，２０Ｂ）には、装置本体１０の無線通信部（アンテナ）１６との間で無線による情報の送受信を行う無線通信部（アンテナ）１７（１７Ａ，１７Ｂ）がそれぞれ設けられている。両無線通信部１６，１７同士の通信方式としては、双方向にて無線通信可能であれば、ブルーツゥース（Bluetooth（登録商標））のような汎用の近距離高速無線通信方式や専用の近距離無線通信方式などのあらゆる通信方式の適用が可能である。本実施形態では、ブルーツゥースによる無線通信方式（以下、ＢＴ通信と称する）を採用している。【００２２】
コントローラ２０（２０Ａ，２０Ｂ）の外観等の詳細な構成については後述するが、これらコントローラ２０Ａ，２０Ｂには、プレイヤーにとって視認し易い位置に、表示部２１（２１Ａ，２１Ｂ）がそれぞれ設けられている。これら表示部２１Ａ，２１Ｂは、例えば、液晶表示パネル、有機若しくは無機ＥＬ（Electorluminescence）パネル、セグメント表示器、ＬＥＤ（発光ダイオード）など、プレイヤーが視認可能な表示を行えるものであり、本実施形態ではセグメント表示器またはＬＥＤ（図示省略）が用いられている。【００２３】
本実施形態における各表示部２１Ａ，２１Ｂは、数値データを表示可能なセグメント表示器または異なった色で発光可能な多色発光ＬＥＤ（以下、単にＬＥＤと称する）を有する。セグメント表示器の場合は、装置本体１０が各コントローラ２０と各ゲームキャラクタとの対応を表す対応情報として個々のコントローラ２０に対して割り当てた仮想コントローラ番号（詳しくは後述する）を表示する。またＬＥＤの場合は、仮想コントローラ番号に対応する発光色で光る。【００２４】
また、セグメント表示器またはＬＥＤ以外によって表示部を構成する場合、装置本体１０が個々のコントローラ２０とゲームキャラクタとの対応を表す対応情報としては、それらコントローラ２０に対して割り当てて送信した個々のコントローラを識別するための図柄、記号等や、個々のコントローラが操作可能なゲーム中の例えばキャラクタを象徴する図柄，記号等が挙げられる。なお、キャラクタを象徴する図柄とは、キャラクタそのものの図柄や、キャラクタを抽象化した図柄などである。【００２５】
すなわち、表示部２１Ａ，２１Ｂにおける表示は、少なくとも、各コントローラ２０Ａ，２０Ｂに対して装置本体１０が割り当てた仮想コントローラ番号を、直接または間接的にプレイヤーに視認させることが可能であれば良い。【００２６】
各コントローラ２０Ａ，２０Ｂの表示部２１Ａ，２１Ｂにおいて、このような表示を行うことにより、例えば、プレイヤーは自分が持つコントローラ２０Ａ，２０Ｂにより、ゲーム中の各キャラクタのうち、どのキャラクタを操作可能であるのかを容易に確認することができる。【００２７】
［エンタテインメントシステムの全体構成］
図１に示すエンタテインメントシステムは、装置本体１０と、コントローラ２０（２０Ａ，２０Ｂ）と、装置本体１０から映像及び音声信号が供給されるモニタ装置（例えばテレビジョン受像機など）１００とから構成されている。モニタ装置１００は、装置本体１０から供給された映像信号に基づいて画像を表示する画像表示部１０１を有する。【００２８】
〔装置本体の外観〕
上記装置本体１０には、上記コントローラポート１１（１１Ａ〜１１Ｄ）及び無線通信部１６の他、図示は省略するが、メモリカードが着脱自在とされるメモリカードスロット、ディスクトレイ、ディスクトレイをオープンまたはクローズさせるオープン／クローズボタン、電源のオンやスタンバイ，リセットを行うためのオン／スタンバイ／リセットボタン、音声映像出力端子（ＡＶマルチ出力端子）、ＰＣカードスロット、光ディジタル出力端子、ＩＥＥＥ（Institute of Electrical and Electronics Engineers）１３９４接続端子、電源スイッチ、ＡＣ電源入力端子などが設けられている。【００２９】
また、上記装置本体１０は、例えばいわゆるＤＶＤ−ＲＯＭやＣＤ−ＲＯＭ等のディスク媒体に記録されているビデオゲーム用のアプリケーションプログラムに基づいてビデオゲームを実行したり、例えばＤＶＤビデオやＣＤに記録されたビデオデータ、オーディオデータを再生（デコード）可能なものである。また、この装置本体１０は、アプリケーションプログラムが後述するコントローラ接続管理プログラムを含む場合、そのプログラムの制御の元で、後述する仮想コントローラ番号（Ｎｏ）等をコントローラ２０へ向けて送信する制御が実行される。【００３０】
なお、上記アプリケーションプログラムやビデオ、オーディオデータは、ディスク媒体に限らず、半導体メモリやテープ媒体から読みとられたもの、有線若しくは無線の広域或いは域内通信回線等により供給されたものであってもよい。【００３１】
〔コントローラの外観〕
図２を用いて、コントローラ２０の外観を簡単に説明する。【００３２】
上記コントローラ２０は、装置本体１０との間でＵＳＢ接続するための上記接続ポート１５と、装置本体１０との間でＢＴ通信するための上記無線通信部１７と、仮想コントローラ番号を表示するか仮想コントローラ番号に対応した色で発光する表示部２１を備えている。【００３３】
コントローラ２０には、プレイヤーがコントローラ２０を左右の手により把持した状態で、プレイヤーの左右の手の親指により操作される右操作部３１及び左操作部３２と、同じく左右の親指によりアナログ操作が可能な右アナログ操作部３３及び左アナログ操作部３４と、左右の人差し指によりそれぞれ押下操作される右第１押下ボタン３５及び左第１押下ボタン３６と、左右の中指によりそれぞれ押下操作される右第２押下ボタン３７及び左第２押下ボタン３８が設けられている。【００３４】
上記左操作部３２には、例えばゲームキャラクタを画面上で移動させるなどの操作をプレイヤーが行う場合に用いられる、上指示ボタン４１、下指示ボタン４２，左指示ボタン４３、右指示ボタン４４が設けられている。また、上記右操作部３１には、例えばゲームキャラクタの機能の設定や実行など、ゲームアプリケーションによりそれぞれ異なる機能が割り付けられる第１〜第４の操作ボタン４５〜４８が設けられている。【００３５】
上記左右のアナログ操作部３４，３３は、操作軸を中心に３６０度方向に回転可能で且つ非操作時には弾性部材により中立位置に復帰する左右の回転操作子（図示省略）と、これら左右の回転操作子の操作に応じた信号を発生する信号発生部（図示省略）等を備えている。【００３６】
上記左右のアナログ操作部３４，３３は、例えば、左右の回転操作子を回転操作することにより、例えばゲームキャラクタを回転しながら移動させ、或いは速度を可変しながら移動させ、さらには形態を変更させる等のアナログ的な動きを実現するための指令信号を入力するため等に用いられる。【００３７】
さらにコントローラ２０は、コントローラ２０の電源をオン／オフさせるために使用するオン／オフボタン５１と、ホームボタン５２とを有している。【００３８】
ホームボタン５２は、装置本体１０との間で通信を開始させる際の入力用、及び画像表示部１０１へのメニュー画面の表示処理を装置本体１０に開始させるための入力用として割り当てられている。装置本体１０におけるメニュー画面の表示処理は、実行中の他のアプリケーションプログラムを中断して優先的に実行される。また、ホームボタン５２が押下されてコントローラ２０が装置本体１０との間で通信を開始した場合にも、メニュー画面が表示される。【００３９】
装置本体１０が生成するメニュー画面を図１３に示す。同図に示すように、表示画面１２０において、水平方向に複数のメディアアイコンが並んだメディアアイコン配列１２１と、垂直方向に複数のコンテンツアイコンが並んだコンテンツアイコン配列１２２とが交差する二次元配列が表示される。メディアアイコン配列１２１には、装置本体１０が再生可能なメディアの種類を示すマークとして、写真アイコン１２３、音楽アイコン１２４、動画アイコン１２５、放送アイコン１２６、ディスクアイコン１２７、ゲームアイコン１２８が含まれる。コンテンツアイコン配列１２２には、複数のコンテンツのサムネイルなどのアイコンが含まれる。メディアアイコン配列１２１およびコンテンツアイコン配列１２２で構成されるメニュー画面はオンスクリーン表示であり、コンテンツ映像の前面に重ね合わされて表示される。背景領域１２９に現在再生中のコンテンツ映像を表示する場合、メディアアイコン配列１２１とコンテンツアイコン配列１２２の領域全体に、背景領域１２９との外観上の区別を容易にするための彩色を施してもよく、またコンテンツ映像の明るさを調整するなどの方法により外観上の区別を容易にしてもよい。【００４０】
メディアアイコン配列１２１とコンテンツアイコン配列１２２が交差する領域に位置するメディアアイコンは、動画アイコン１２５として図示するように他のメディアアイコンと異なる色彩にて拡大表示される。交差領域１３０は、表示画面１２０の略中央に位置したままその位置が据え置かれ、コントローラ２０を介したユーザからの左右方向の入力指示に応じてメディアアイコンの配列全体が左右方向に移動し、交差領域１３０に位置したメディアアイコンの色彩とアイコンサイズが変化する。したがって、ユーザは左右の方向指示をするだけでメディアを選択でき、例えば、ＰＣ上で行われるマウスのクリック操作のような決定指示は不要である。【００４１】
上述のように、右アナログ操作部３３、左アナログ操作部３４、右第１押下ボタン３５、左第１押下ボタン３６、右第２押下ボタン３７、左第２押下ボタン３８、上指示ボタン４１、下指示ボタン４２，左指示ボタン４３、右指示ボタン４４、及び第１〜第４の操作ボタン４５〜４８は、装置本体１０においてプレイヤーからの指示に従って選択的に実行されるアプリケーションプログラムの実行処理に関与する入力用として割り当てられる第１の操作部として機能する。これに対し、ホームボタン５２は、上記アプリケーションプログラムの実行処理に関与する入力用として割り当てられておらず、且つ実行中の他のアプリケーションプログラムに優先してメニュー画面の表示制御を開始させるための入力用として割り当てられた第２の操作部として機能する。【００４２】
〔装置本体の内部回路構成〕
図３には、上記装置本体１０の主要な内部構成を示す。【００４３】
図３に示すように、装置本体１０は、メインバス６１とサブバス６２とを有し、これらの６１、６２は、バスインタフェース６３を介して互いに接続されまたは切り離される。【００４４】
メインバス６１には、メインＣＰＵ６４と、ＤＲＡＭで構成される揮発性のメインメモリ６５と、メインＤＭＡＣ（direct memory access controller）６６と、フレームメモリ６７を内蔵する画像処理デバイス（ＧＰＵ（graphic processing unit））６８が接続される。ＧＰＵ６８には、ビデオ出力信号を生成するための制御手段であるＣＲＴＣ（CRT controller）６９が接続される。ビデオ出力信号により、ケーブル等によって装置本体１０と接続されている所定の表示装置（本実施形態では、モニタ装置１００の画像表示部１０１）に画像が表示される。【００４５】
メインＣＰＵ６４は、装置本体１０の起動時にサブバス６２上のＲＯＭ７０から、バスインタフェース６３を介して起動プログラムを読み込み、その起動プログラムを実行してオペレーティングシステムを動作させる。また、メディアドライブ７１を制御するとともに、このメディアドライブ７１に装着されたメディア７２からアプリケーションプログラムやデータを読み出し、これをメインメモリ６５に記憶させる。さらに、メディア７２から読み出した各種データ、例えば複数の基本図形（ポリゴン）で構成された３次元オブジェクトデータ（ポリゴンの頂点（代表点）の座標値など）に対して、ジオメトリ処理を行う。ジオメトリ処理によりポリゴン定義情報をその内容とするディスプレイリストを生成する。また、ＭＰＥＧ（Moving Picture Experts Group）方式あるいはＪＰＥＧ（Joint Photographic Experts Group）方式等で圧縮されたデータを伸張する。つまりメインＣＰＵ６４は、ソフトウェアにより情報を解読する情報解読機能を持つ。【００４６】
ポリゴン定義情報は、描画領域設定情報とポリゴン情報とからなる。描画領域設定情報は、描画領域のフレームバッファアドレスにおけるオフセット座標と、描画領域の外部にポリゴンの座標があった場合に、描画をキャンセルするための描画クリッピング領域の座標からなる。ポリゴン情報は、ポリゴン属性情報と頂点情報とからなり、ポリゴン属性情報は、シェーディングモード、αブレンディングモード、およびテクスチャマッピングモード等を指定する情報であり、頂点情報は、頂点描画領域内座標、頂点テクスチャ領域内座標、および頂点色等の情報である。【００４７】
ＧＰＵ６８は、描画コンテクストを保持しており、メインＣＰＵ６４から通知されるディスプレイリストに含まれる画像コンテクストの識別情報に基づいて該当する描画コンテクストを読み出し、これを用いてレンダリング処理を行い、フレームメモリ６７にポリゴンを描画する。フレームメモリ６７は、テクスチャメモリとしても使用できるため、フレームメモリ６７上のピクセルイメージをテクスチャとして描画するポリゴンに貼り付けることができる。【００４８】
メインＤＭＡＣ６６は、メインバス６１に接続されている各回路を対象としてＤＭＡ転送制御を行うとともに、バスインタフェース６３の状態に応じて、サブバス６２に接続されている各回路を対象としてＤＭＡ転送制御を行う。【００４９】
サブバス６２には、マイクロプロセッサなどで構成されるサブＣＰＵ７３、フラッシュメモリ等で構成される不揮発性のサブメモリ７４、サブＤＭＡＣ７５、オペレーティングシステムなどのプログラムが記憶されているＲＯＭ７０、サウンドメモリ７６に蓄積された音データを読み出してオーディオ出力として出力する音声処理装置（ＳＰＵ（sound processing unit））７７、ＵＳＢ接続ケーブルを介してコントローラ２０との間で有線による情報の送受信を行うＵＳＢ通信モジュール７８、ＢＴ通信を介してコントローラ２０との間で無線による情報の送受信を行うＢＴ通信モジュール７９、所定のメディア７２を装着するためのメディアドライブ７１、及びキーボード８０が接続されている。メディア７２は、画像処理用のプログラムが記録されたＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等の記録媒体である。装置本体１０は、この画像処理用のプログラムを読み取って実行することにより、所要のエンタテインメント処理を実行する。ＵＳＢ通信モジュール７８は、コントローラポート１１（図１に示す）を含み、ＢＴ通信モジュール７９は、無線送受信部１６（図１に示す）を含む。【００５０】
サブＣＰＵ７３は、ＲＯＭ７０に記憶されているプログラムに従って各種動作を行う。サブＤＭＡＣ７５は、バスインタフェース６３がメインバス６１とサブバス６２を切り離している状態においてのみ、サブバス６２に接続されている各回路を対象としてＤＭＡ転送などの制御を行う。【００５１】
また、サブメモリ７４には、後述する有線コントローラＮｏ登録テーブル（図５に示す）、無線コントローラＮｏ登録テーブル（図６に示す）が予め設定されており、メインメモリ６５には後述する仮想コントローラＮｏ対応テーブル（図７に示す）が予め設定されている。メインＣＰＵ６４は、ＵＳＢ通信モジュール７８またはＢＴ通信モジュール７９がコントローラ２０との間で通信を開始した際、後述する未登録コントローラの登録及び対応付け（有線）処理（図８に示す）または有線及び無線共に既登録及び対応付け済のコントローラによる通信開始時の処理（図９に示す）を実行する。なお、上記各テーブルの設定先は、他の記憶部であってもよく、また上記各処理の実行主体は、サブＣＰＵ７３であってもよい。【００５２】
さらに、メインＣＰＵ６４は、バッテリ監視処理（図１０に示す）及びＢＴ通信中におけるＲＳＳＩの監視処理（図１１に示す）を実行する。ここで、ＲＳＳＩとは、無線通信時の装置本体１０とコントローラ２０との間の接続環境としての電界強度を意味し、電界強度が強い（数値が大きい）ほど安定したＢＴ通信が可能となる。なお、電界強度の検出は、ＢＴ通信モジュール７９が行う。【００５３】
〔コントローラの内部構成〕
次に、図４に、コントローラ２０の主要な内部構成を示す。【００５４】
図４において、コントローラ２０は、ＣＰＵ８１と、ＤＲＡＭで構成される揮発性のメインメモリ８２と、バッテリ８３と、振動検出素子８４と、振動素子８５と、スピーカ８６と、キーボード８７と、表示部（セグメント表示器またはＬＥＤ）２１と、ＵＳＢ通信モジュール８８と、ＢＴ通信モジュール８９と、フラッシュメモリ等で構成される不揮発性のサブメモリ９１とを有し、これらはバス９０を介して接続されている。キーボード８７とは、コントローラ２０に設けられた上記各種の入力ボタン３３，３４，３５〜３８，４１〜４８，５１，５２の総称である。【００５５】
ＣＰＵ８１は、コントローラ２０の起動時にサブメモリ９１から起動プログラムを読み込み、その起動プログラムを実行する。また、ＣＰＵ８１は、表示部２１を所定の発光状態に制御する表示制御や、スピーカ８６への音声出力を制御する音声制御や、振動素子８５を駆動させてコントローラ２０に振動を与える振動制御を実行する。さらに、メインＣＰＵ６４は、バッテリ８３に対する充電及び放電の電流を積算し、バッテリ８３の蓄電量を演算により求める。【００５６】
ＵＳＢ通信モジュール８８は、ＵＳＢ接続ケーブルを介して装置本体１０との間で有線による情報の送受信を行い、ＢＴ通信モジュール８９は、ＢＴ通信を介して装置本体１０との間で無線による情報の送受信を行う。ＵＳＢ通信モジュール８８は、接続ポート１５（図１に示す）を含み、ＢＴ通信モジュール８９は、無線送受信部１７（図１に示す）を含む。【００５７】
また、サブメモリ９１には、各コントローラ２０に固有に付された端末識別情報としての固有ＩＤが予め記憶されている。ＣＰＵ８１は、所定のタイミングでサブメモリ９１から固有ＩＤを読み出し、読み出した固有ＩＤをＵＳＢ通信モジュール８８またはＢＴ通信モジュール８９から装置本体１０へ送信させる。【００５８】
また、ＣＰＵ８１は、キーボード８７に対するプレイヤーからの操作入力に応じて予め設定された指示信号を生成し、生成した指示信号をＵＳＢ通信モジュール８８またはＢＴ通信モジュール８９から装置本体１０へ送信させる。特に、第２操作部として機能するホームボタン５２と、第１操作部として機能する他の入力ボタン３３，３４，３５〜３８，４１〜４８のうち少なくとも一つとが同時に押下されると、ＣＰＵ８１は、ボタンの組み合わせに応じた特定処理実行指示信号を、装置本体１０へ送信させる。本実施形態では、ホームボタン５２と「×」ボタン４６とが同時に押下されることにより、後述する仮想コントローラＮｏの画面表示処理の開始を指示する特定処理実行指示信号が生成され、ホームボタン５２と「○」ボタン４５とが同時に押下されることにより、後述するバッテリ残量の表示処理の実行を指示する特定処理実行指示信号が生成され、ホームボタン５２と「△」ボタン４８とが同時に押下されることにより、後述する電界強度の表示処理の実行を指示する特定処理実行指示信号が生成される。【００５９】
なお、コントローラ２０と装置本体１０との間を接続するＵＳＢケーブル１３Ａ，１３Ｂ（図１に示す）は電源供給線を含み、ＵＳＢ接続状態において、装置本体１０は、電源供給線を介してコントローラ２０の電源を供給すると共に、バッテリ８３の充電を行う。【００６０】
また、振動素子８５とは、例えばモータの回転軸に対し偏心した状態で固定された重りであり、モータの駆動時に回転する重りがコントローラ２０を振動させる。ゲームの進行状態等に応じてモータを駆動させることにより、所望のタイミングでプレイヤーの手に振動が伝達される。また、振動検出素子８４とは、プレイヤーからコントローラ２０に加えられた振動を検出するセンサであり、例えば、振動の検出によりオフ状態のコントローラ２０をオン状態とする等、プレイヤーからの振動の入力を所定の処理の契機として用いる。【００６１】
〔コントローラ接続管理プログラムの説明〕
複数のコントローラとの有線及び無線による任意で且つ良好な接続を実現するために、本実施の形態の装置本体１０は、図８〜図１１のタイムチャートに示すアルゴリズム（以下、コントローラ接続管理プログラムと呼ぶ）により、それぞれ接続されているコントローラ２０の認識及び管理や、各コントローラ２０の表示部２１へ表示させるための表示情報（対応情報）の送信や、ＢＴ通信中のバッテリ８３の監視や、ＲＳＳＩの監視などを行う。【００６２】
なお、図８〜図１１の処理は、ゲームアプリケーションプログラム若しくはデバイスドライバプログラム内に設けられたコントローラ接続管理プログラムが、主として装置本体１０のメインＣＰＵ６４上で動作することにより実現されるものである。【００６３】
〔各テーブルの説明〕
サブメモリ７４には、図５に示す有線コントローラＮｏ登録テーブル、図６に示す無線コントローラＮｏ登録テーブルが予め設定されており、メインメモリ６５には図７に示す仮想コントローラＮｏ対応テーブルが予め設定されている。【００６４】
有線コントローラＮｏ登録テーブルでは、有線コントローラＮｏが記憶される複数のセルと、各コントローラ２０の固有ＩＤが記憶される複数のセルとが、１対１で対応している。ＵＳＢ接続により新規のコントローラ２０が登録される度に、先頭側（図中上方）の空欄のセルから有線コントローラＮｏ（「Ｗ−０１」，「Ｗ−０２」，「Ｗ−０３」，「Ｗ−０４」）と固有ＩＤ（「Ｃ−０２」，「Ｃ−０３」，「Ｃ−０４」，「Ｃ−０１」）とが順次記憶される。例えば、固有ＩＤがそれぞれ「Ｃ−０２」，「Ｃ−０３」，「Ｃ−０４」，及び「Ｃ−０１」であるコントローラ２０が、この順序で新規に登録されると、図５に示すように、最初に固有ＩＤ「Ｃ−０２」と有線コントローラＮｏ「Ｗ−０１」とが対応付けて登録され、次に固有ＩＤ「Ｃ−０３」と有線コントローラＮｏ「Ｗ−０２」とが対応付けて登録され、次に固有ＩＤ「Ｃ−０４」と有線コントローラＮｏ「Ｗ−０３」とが対応付けて登録され、最後に固有ＩＤ「Ｃ−０１」と有線コントローラＮｏ「Ｗ−０４」とが対応付けて登録される。【００６５】
無線コントローラＮｏ登録テーブルでは、無線コントローラＮｏが記憶される複数のセルと、各コントローラ２０の固有ＩＤが記憶される複数のセルとが、１対１で対応している。ＵＳＢ接続により既に有線コントローラＮｏ登録テーブルに登録されたコントローラ２０が装置本体１０にＢＴ通信により最初に接続される度に、先頭側（図中上方）の空欄のセルから無線コントローラＮｏ（「Ｒ−０１」，「Ｒ−０２」，「Ｒ−０３」）と固有ＩＤ（「Ｃ−０３」，「Ｃ−０２」，「Ｃ−０１」）とが順次記憶される。例えば、固有ＩＤが「Ｃ−０１」，「Ｃ−０２」，「Ｃ−０３」，及び「Ｃ−０４」である４つのコントローラ２０が上述のように既に有線コントローラＮｏ登録テーブルに登録されており、これらのうち、固有ＩＤが「Ｃ−０３」，「Ｃ−０２」，「Ｃ−０１」であるコントローラ２０が、この順序で新規にＢＴ通信により装置本体１０に接続されると、図６に示すように、最初に固有ＩＤ「Ｃ−０３」と無線コントローラＮｏ「Ｒ−０１」とが対応付けて登録され、次に固有ＩＤ「Ｃ−０２」と無線コントローラＮｏ「Ｒ−０２」とが対応付けて登録され、最後に固有ＩＤ「Ｃ−０１」と無線コントローラＮｏ「Ｒ−０３」とが対応付けて登録される。なお、固有ＩＤが「Ｃ−０４」であるコントローラ２０は、未だＢＴ通信により装置本体１０に接続されていないため、無線コントローラＮｏ登録テーブルには登録されておらず、この固有ＩＤが「Ｃ−０４」であるコントローラ２０がＢＴ通信により装置本体１０に最初に接続された際に、この固有ＩＤ「Ｃ−０４」と無線コントローラＮｏとが対応付けて登録される。なお、図６及び図７は、固有ＩＤ「Ｃ−０４」と無線コントローラＮｏとが対応付けて登録される前の状態を示しているため、これら固有ＩＤ及び無線コントローラＮｏを「（Ｒ−０４）」及び「（Ｃ−０４）」と表記している。一方で、各コントローラ２０のサブメモリ９１にも、接続された装置本体１０の固有ＩＤが登録される。サブメモリ７４、サブメモリ９１は上述のように不揮発性なので、装置本体１０または各コントローラ２０が電源オフされても、登録（記憶）された固有ＩＤは解消（消去）されない。これにより、再度、電源オンされた場合にも固有ＩＤのチェックを介して、互いに登録されていない装置本体１０とコントローラ２０との間の誤動作を防止できる。【００６６】
仮想コントローラＮｏ対応テーブルでは、複数の仮想コントローラＮｏが予め設定され記憶された複数のセルと、有線コントローラＮｏ及び無線コントローラＮｏ（以下、両者を物理コントローラＮｏと称する）が記憶される複数のセルと、固有ＩＤが記憶される複数のセルとが、１対１対１で対応している。また、各仮想コントローラＮｏに対応する発光色が予め記憶されたセルが、仮想コントローラＮｏに対応して設定されている。有線コントローラＮｏ登録テーブルに新規のコントローラ２０が登録される度に、物理コントローラＮｏを記憶するセルのうち先頭側（図中上方）の空欄のセルから有線コントローラＮｏ（「Ｗ−０１」，「Ｗ−０２」，「Ｗ−０３」，「Ｗ−０４」）が順次記憶される。例えば、上述の例では、図７に示すように、仮想コントローラＮｏ「Ｖ−０１」に対して有線コントローラＮｏ「Ｗ−０１」が対応付けられ、仮想コントローラＮｏ「Ｖ−０２」に対して有線コントローラＮｏ「Ｗ−０２」が対応付けられ、仮想コントローラＮｏ「Ｖ−０３」に対して有線コントローラＮｏ「Ｗ−０３」が対応付けられ、仮想コントローラＮｏ「Ｖ−０４」に対して有線コントローラＮｏ「Ｗ−０４」が対応付けられる。また、仮想コントローラＮｏ「Ｖ−０１」に対して無線コントローラＮｏ「Ｒ−０２」が対応付けられ、仮想コントローラＮｏ「Ｖ−０２」に対して無線コントローラＮｏ「Ｒ−０１」が対応付けられ、仮想コントローラＮｏ「Ｖ−０４」に対して無線コントローラＮｏ「Ｒ−０３」が対応付けられる。なお、仮想コントローラＮｏ「Ｖ−０３」に対応する無線コントローラＮｏは、固有ＩＤが「Ｃ−０４」であるコントローラ２０が無線コントローラＮｏ登録テーブルに登録された際に、仮想コントローラＮｏ対応テーブルに対応付けられる。さらに、各コントローラ２０の固有ＩＤも対応付けられる。【００６７】
仮想コントローラＮｏ対応テーブルは揮発性のメインメモリ６５に記憶されるので、仮想コントローラＮｏ対応テーブルに対応付けられた対応関係は装置本体１０が電源オフされると解消されるが、ユーザ操作による当該対応関係の解消または変更も可能である。そして、装置本体１０で実行されるアプリケーションプログラムは、実行時に当該仮想コントローラＮｏ対応テーブルをチェックし、有線、無線コントローラＮｏおよび固有ＩＤと有効に対応付けられた仮想コントローラＮｏの一つとアプリケーションプログラムのキャラクタの一つとを対応付ける。有効な仮想コントローラＮｏおよびキャラクタが複数ある場合も、１対１に対応付ける。【００６８】
〔コントローラと装置本体との接続開始処理の説明〕
オフ状態の装置本体１０は、電源が投入されることによりオン状態となる。オフ状態のコントローラ２０は、オン／オフボタン５１が押下されることによりオン状態となる。なお、装置本体１０及びコントローラ２０が共にオン状態であり、両者がＢＴ通信により接続された状態において、コントローラ２０のオン／オフボタン５１が押下されると、コントローラ２０がオフ状態になると共に装置本体１０が待機状態（スリープ状態）となる。【００６９】
ＵＳＢ接続による通信は、装置本体１０及びコントローラ２０が共にオン状態であり、両者がＵＳＢ接続された後、コントローラ２０のホームボタン５２が押下されることによって開始される。ＵＳＢ接続が開始されると、装置本体１０及びコントローラ２０はＵＳＢ接続による情報の送受信を行うための通信準備処理を実行した後、コントローラ２０は、サブメモリ９１に記憶された固有ＩＤを読み出して、装置本体１０へ送信する。なお、装置本体１０は、ＵＳＢケーブルが適正な状態で接続されているか否かを検出することによって、ＵＳＢ接続か否かを判定する。【００７０】
ＢＴ通信は、装置本体１０及びコントローラ２０が共にオン状態であり、両者がＵＳＢ接続されていない状態において、コントローラ２０のホームボタン５２が押下されることによって開始される。この場合、コントローラ２０が装置本体１０の通信範囲内に位置することが必要である。ＢＴ接続が開始されると、装置本体１０及びコントローラ２０はＢＴ通信による情報の送受信を行うための通信準備処理を実行した後、コントローラ２０は、サブメモリ９１に記憶された固有ＩＤを読み出して、装置本体１０へ送信する。なお、装置本体１０が待機状態でコントローラ２０がオフ状態であり、両者がＵＳＢ接続されていない状態において、コントローラ２０のホームボタン５２が押下されると、装置本体１０は待機状態からオン状態となり、両者のＢＴ通信が開始される。【００７１】
すなわち、コントローラ２０との接続が開始すると、装置本体１０のメインＣＰＵ６４は、図１２に示すように、ＵＳＢ接続かＢＴ通信かを判定する（ステップＳ５１）。ＵＳＢ接続の場合は、ＵＳＢ接続による情報の送受信を行うための通信準備処理を実行し（ステップＳ５２）、ＵＳＢ接続を介してコントローラ２０から固有ＩＤを取得する（ステップＳ５３）。一方ＢＴ通信の場合は、ＢＴ通信による情報の送受信を行うための通信準備処理を実行し（ステップＳ５４）、ＢＴ通信によりコントローラ２０から固有ＩＤを取得する（ステップＳ５５）。【００７２】
そして、ＵＳＢ接続による通信の場合、装置本体１０のメインＣＰＵ６４は、ＵＳＢ通信モジュール７８が受信した固有ＩＤが有線コントローラＮｏ登録テーブルに登録されているか否かを判定し（ステップＳ５６）、既に登録されている場合には既登録対応関係設定処理を実行し（ステップＳ５７）、未だ登録されていない場合には新規登録及び対応関係設定処理を実行する（ステップＳ５８）。【００７３】
ＵＳＢ接続時での既登録対応関係設定処理（ステップＳ５７）では、メインＣＰＵ６４は、上記受信した固有ＩＤと対応関係を有する有線コントローラＮｏを有線コントローラＮｏ登録テーブルから読み出す。そして、仮想コントローラＮｏ対応テーブルにおいて、物理コントローラＮｏ（有線コントローラＮｏ）を記憶するセルのうち最も先頭の空欄のセルに当該有線コントローラＮｏと固有ＩＤを記憶させる。これにより、仮想コントローラＮｏ対応テーブルには、仮想コントローラＮｏと有線コントローラＮｏと固有ＩＤとが対応付けられた状態で記憶される。【００７４】
ＵＳＢ接続時での新規登録及び対応関係設定処理（ステップＳ５８）では、メインＣＰＵ６４は、未だ対応関係が設定されていない任意の一つの有線コントローラＮｏと固有ＩＤとを対応付けて有線コントローラＮｏ登録テーブルに登録する。次に、固有ＩＤに対応付けた有線コントローラＮｏと未だ対応関係が設定されていない任意の一つの仮想コントローラＮｏとを対応付けると共に、この仮想コントローラＮｏと有線コントローラＮｏと固有ＩＤとの対応関係を仮想コントローラＮｏ対応テーブルに対応付ける。【００７５】
一方、ＢＴ通信の場合、メインＣＰＵ６４は、ＢＴ通信モジュール７９が受信した固有ＩＤが有線コントローラＮｏ登録テーブルに登録されており、且つ仮想コントローラＮｏ対応テーブルにおいて仮想コントローラＮｏ及び有線コントローラＮｏと対応付けられているか否かを判定し（ステップＳ５９）、既に登録され、対応付けられている場合には既登録対応関係設定処理（ステップＳ６０）を実行する。しかし、未だ登録されていないかまたは対応付けられていない場合には、新規登録及び対応関係設定処理を実行しない。すなわち、ＢＴ通信の場合の新規登録及び対応関係設定処理は、有線コントローラＮｏ登録テーブルへの登録及び仮想コントローラＮｏ対応テーブルにおける対応付けを条件に実行される。【００７６】
ＢＴ接続時での既登録対応関係設定処理（ステップＳ６０）では、メインＣＰＵ６４は、ＢＴ通信モジュール７９が受信した固有ＩＤが無線コントローラＮｏ登録テーブルに登録されているか否かを判定する。既に登録されている場合には、上記固有ＩＤと対応関係を有する無線コントローラＮｏを無線コントローラＮｏ登録テーブルから読み出す。そして、仮想コントローラＮｏ対応テーブルにおいて、読み出した無線コントローラＮｏを、上記固有ＩＤに対応する空欄の無線コントローラＮｏのセルに記憶させる。これにより、仮想コントローラＮｏ対応テーブルには、仮想コントローラＮｏと物理コントローラＮｏ（有線コントローラＮｏ及び無線コントローラＮｏ）と固有ＩＤとが対応付けられた状態で記憶される。反対に、ＢＴ通信モジュール７９が受信した固有ＩＤが無線コントローラＮｏ登録テーブルに未だ登録されていない場合には、未だ対応関係が設定されていない一つの無線コントローラＮｏと上記固有ＩＤとを対応させて無線コントローラＮｏ登録テーブルに登録する。そして、上記固有ＩＤと対応関係を有する無線コントローラＮｏを無線コントローラＮｏ登録テーブルから読み出す。さらに、仮想コントローラＮｏ対応テーブルにおいて、読み出した無線コントローラＮｏを、上記固有ＩＤに対応する空欄の無線コントローラＮｏのセルに記憶させる。これにより、仮想コントローラＮｏ対応テーブルには、仮想コントローラＮｏと物理コントローラＮｏ（有線コントローラＮｏ及び無線コントローラＮｏ）と固有ＩＤとが対応付けられた状態で記憶される。すなわち、仮想コントローラＮｏ対応テーブルにおいて、各仮想コントローラＮｏに対応付けられた有線コントローラＮｏと無線コントローラＮｏがそれぞれ示すコントローラ２０は同一のものであり、固有ＩＤも１つということになる。【００７７】
そして、メインＣＰＵ６４は、上記既登録対応関係設定処理または新規登録及び対応関係設定処理が完了したことを条件に、固有ＩＤに対応付けた一つの仮想コントローラＩＤを、ゲーム等のアプリケーションプログラムの実行処理に関連付ける。具体的には、プレイヤーからコントローラ２０への入力操作に従って、例えばゲーム上のキャラクタと、そのキャラクタを操作するコントローラ２０との対応関係を設定する。【００７８】
このように、装置本体１０とコントローラ２０との対応関係を仮想コントローラＮｏと固有ＩＤとを対応付けることによって設定しているので、有線や無線という接続形式の影響を受けることなく、両者を対応付けることができる。【００７９】
従って、例えば、ゲームを実行している途中で、有線から無線へ、または無線から有線へ接続形式を変更した場合であっても、実行中のゲームのキャラクタとコントローラ２０との対応関係を特に変更することなく、そのままゲームを続けることができる。さらに、有線接続されたコントローラ２０でゲームを実行している場合、装置本体１０の複数あるコントローラポート１１の一つに差し込まれた差込コネクタ１２を他のコントローラポートに差し替えたとしても、同様にそのままゲームを続けることができる。【００８０】
また、未登録のコントローラ２０に対する新規登録及び対応関係設定処理は、有線接続（ＵＳＢ接続）時のみ許容され、無線通信（ＢＴ通信）時には禁止されるので、装置本体１０に対してＢＴ通信が可能な領域に無関係な第三者のコントローラが存在し、この無関係なコントローラからＢＴ通信によって装置本体１０が情報を受信した場合であっても、この装置本体１０において新規登録及び対応関係設定処理は実行されず、意図しない無関係なコントローラが誤って登録されてしまうことを防止することができる。【００８１】
また、未登録のコントローラ２０であっても、装置本体１０に対して有線または無線の新規登録処理を一度行うことにより、当該コントローラ２０の固有ＩＤと有線または無線コントロールＮｏとの対応関係が不揮発性のサブメモリ７４に記憶されるので、コントローラ２０を使用する際に装置本体１０との間で有線または無線の登録処理を再度行う必要がない。【００８２】
また、アプリケーションプログラムの開発者にとっては、プログラムの作成に際し、接続形式を考慮することなく、仮想コントローラＮｏとの対応付けのみを考慮すればよいので、プログラムの作成作業の煩雑化を招くこともない。【００８３】
さらに、有線接続を前提とした従来のアプリケーションプログラムに対しても、コントローラポートにポート番号に代えて仮想コントローラＮｏを使用することにより、上記従来のアプリケーションプログラムにおいてもコントローラ２０の対応付けを行うことができる。【００８４】
〔未登録コントローラの登録及び対応付け（有線）処理の説明〕
装置本体１０に対して未だ一度も使用されていないコントローラ２０（以下、未登録のコントローラ２０と称する）により通信を行う場合（例えば、コントローラ２０を購入後、初めて使用する場合など）、プレイヤーは、まずコントローラ２０の登録及び対応付け（有線）処理を行う必要がある。【００８５】
この登録及び対応付け（有線）処理は、上述のように、有線接続（ＵＳＢ接続）を条件として実行される。すなわち、装置本体１０と未登録のコントローラ２０とがＵＳＢ接続されると、図８に示すように、通信準備処理が完了した後、コントローラ２０から装置本体１０へ当該コントローラ２０の固有ＩＤが送信される。同様に装置本体１０からコントローラ２０へも当該装置本体１０の固有ＩＤが送信される。【００８６】
装置本体１０は、受信した固有ＩＤが有線コントローラＮｏ登録テーブルに既に登録されているか否かを判定する（図１２のステップＳ５６）。ここでは、未登録のコントローラ２０であるため、有線コントローラＮｏ登録テーブルに未だ登録されてないと判定され、装置本体１０は、有線コントローラＮｏを固有ＩＤに割り当てる登録処理を実行する（ステップＳ１０）。具体的には、図１２のステップＳ５８の新規登録及び対応関係設定処理を実行し、固有ＩＤに有線コントローラＮｏを割り当て、有線コントローラＮｏ登録テーブルに、これら有線コントローラＮｏと固有ＩＤとを登録する。同様に、コントローラ２０は、受信した装置本体１０の固有ＩＤをサブメモリ９１に登録する（ステップＳ１２）。【００８７】
次に、装置本体１０は、仮想コントローラＮｏと有線コントローラＮｏと固有ＩＤとを対応付ける処理（ステップＳ１１）を実行する。具体的には、仮想コントローラＮｏ対応テーブルにおいて、物理コントローラＮｏ（有線コントローラＮｏ）を記憶するセルのうち最も先頭の空欄のセルに当該有線コントローラＮｏと固有ＩＤを記憶させる。これにより、仮想コントローラＮｏ対応テーブルには、仮想コントローラＮｏと有線コントローラＮｏと固有ＩＤとが対応付けられた状態で記憶される。【００８８】
これにより、コントローラ２０の登録及び対応付け（有線）処理が完了する。そして、装置本体１０またはコントローラ２０が電源オフされると仮想コントローラ対応Ｎｏテーブルに対応付けられた対応関係は解消されるが、物理コントローラＮｏ登録テーブルの記憶内容は解消されない。また、ユーザ操作による解消は当該対応関係及び当該記憶内容いずれも可能である。【００８９】
なお、ＵＳＢ接続を維持したまま、ゲーム等のアプリケーションプログラムを実行する場合には、後述する次の処理（固有ＩＤ及び物理コントローラＮｏに対応付けた一つの仮想コントローラＮｏを、ゲーム等のアプリケーションプログラムの実行処理に関連付ける処理）へ移行する。【００９０】
〔有線及び無線共に既登録及び対応付け済のコントローラによる通信開始時の処理の説明〕
装置本体１０に対して既に有線及び無線共に登録処理及び対応付け処理が行われたコントローラ２０（以下、有線及び無線共に既登録及び対応付け済のコントローラ２０と称する）により通信を開始すると、図９に示すように、ＵＳＢ接続による通信またはＢＴ通信が開始し、所定の通信準備処理が完了した後、コントローラ２０から装置本体１０へ当該コントローラ２０の固有ＩＤが送信される。同様に装置本体１０からコントローラ２０へも当該装置本体１０の固有ＩＤが送信される。装置本体１０は、受信した固有ＩＤの登録状態及び対応付け状態を有線及び無線共に判定し（ステップＳ２１−１）、有線及び無線共に登録及び対応付けが完全に終了しているときは、固有ＩＤに対応する物理コントローラＮｏと仮想コントローラＮｏとの対応関係、及び対応する発光色を示す情報を、仮想コントローラＮｏ対応テーブルから読み出す（ステップＳ２１−２）。ここでは、有線及び無線共に既登録及び対応付け済のコントローラ２０であるため、このステップＳ２１−２の処理が実行される。同様にコントローラ２０も、受信した装置本体１０の固有ＩＤがサブメモリ９１に登録されているか否かを判定する（ステップＳ２１−２）。この判定についても、既登録の装置本体１０であるため、処理を継続する。【００９１】
具体的には、ＵＳＢ接続及びＢＴ通信の双方において、装置本体１０は、受信したコントローラ２０の固有ＩＤが有線コントローラＮｏ登録テーブルに登録されているか否か、及び仮想コントローラ対応テーブルにおいて対応付けられているか否かを判定する。【００９２】
次に、装置本体１０は、受信した固有ＩＤに対応する仮想コントローラＮｏまたは仮想コントローラＮｏに対応する発光色の情報を仮想コントローラＮｏ対応テーブルから読み出し、読み出した仮想コントローラＮｏまたは発光色の情報をコントローラ２０へ送信する。コントローラ２０は、受信した仮想コントローラＮｏまたは発光色の情報をメインメモリ８２に記憶させる。仮想コントローラＮｏまたは発光色の情報はコントローラ２０が電源オフされると解消されるが、ユーザ操作による解消または変更も可能である。【００９３】
コントローラ２０では、装置本体１０から受信した仮想コントローラＮｏまたは発光色の情報に基づいて、ＣＰＵ８１が表示部（セグメント表示器またはＬＥＤ）２１の制御を行う（ステップＳ２２）。セグメント表示器の場合は、コントローラ２０の表示部２１が、上記仮想コントローラＮｏを数値データとして表示する。またＬＥＤの場合は、コントローラ２０の表示部２１が、上記仮想コントローラＮｏに対応する色で発光する。例えば、図５〜図７に示すように各テーブルが設定されている場合、固有ＩＤ「Ｃ−０２」を有するコントローラ２０の表示部２１は「赤」に、固有ＩＤ「Ｃ−０３」を有するコントローラ２０の表示部２１は「黄」に、固有ＩＤ「Ｃ−０４」を有するコントローラ２０の表示部２１は「青」に、固有ＩＤ「Ｃ−０１」を有するコントローラ２０の表示部２１は「黒」に、それぞれ発光する。【００９４】
なお、本実施形態では、表示部２１がＬＥＤの場合は、装置本体１０の仮想コントローラＮｏ対応テーブルに発光色の情報を対応付けておき、仮想コントローラＮｏに対応する発光色の情報を装置本体１０からコントローラ２０へ送信しているが、仮想コントローラＮｏとこれに対応する発光色の情報をコントローラ２０のサブメモリ９１に予め対応付けておき、仮想コントローラＮｏを装置本体１０からコントローラ２０へ送信してもよい。【００９５】
また、別の実施形態として、コントローラ２０に対して所定の入力が行われた際に、コントローラ２０のＵＳＢ通信モジュール８８またはＢＴ通信モジュール８９が装置本体１０へ画面表示要求信号を送信してもよい。この所定の入力の一例として、当該別の実施形態では、ホームボタン５２と他の一つのキー（例えば、「×」ボタン４６）とを同時に押下する操作が設定されている。【００９６】
その後、装置本体１０では、ＵＳＢ通信モジュール７８またはＢＴ通信モジュール７９が上記特定処理実行指示信号を受信すると、メインＣＰＵ６４がＧＰＵ６８へ画像表示出力指示信号を出力し、ＧＰＵ６８は、上記発光色及び仮想コントローラＮｏをモニタ装置１００の画像表示部１０１へ表示させる処理を実行する（ステップＳ２３）。例えば、図５〜図７に示すように各テーブルが設定されている場合、固有ＩＤ「Ｃ−０２」を有するコントローラ２０に対し上記所定の入力が行われた場合には画像表示部１０１に「赤」色で仮想コントローラＮｏ「Ｖ−０１」を表示し、固有ＩＤ「Ｃ−０３」を有するコントローラ２０に対し上記所定の入力が行われた場合には画像表示部１０１に「黄」色で仮想コントローラＮｏ「Ｖ−０２」を表示し、固有ＩＤ「Ｃ−０４」を有するコントローラ２０に対し上記所定の入力が行われた場合には画像表示部１０１に「青」色で仮想コントローラＮｏ「Ｖ−０３」を表示し、固有ＩＤ「Ｃ−０１」を有するコントローラ２０に対し上記所定の入力が行われた場合には画像表示部１０１に「黒」色で仮想コントローラＮｏ「Ｖ−０４」を表示する。【００９７】
また、上記発光色及び仮想コントローラＮｏをモニタ装置１００の画像表示部１０１へ表示させる処理は、通信開始時に限定して実行されるものではない。すなわち、仮想コントローラＮｏが関連付けられたアプリケーションプログラムの実行中に、当該仮コントローラＮｏを保持するコントローラ２０のホームボタン５２と「×」ボタン４６とが同時に押下され、このボタン操作に応じた特定処理実行指示信号を装置本体１０が受信したときにも、上記処理が実行される。この場合、発光色及び仮想コントローラＮｏは、実行中のアプリケーションプログラムの画面に重ねて表示することが好ましい。【００９８】
これにより、プレイヤーは、自己が使用しているコントローラ２０の仮想コントローラＮｏを、任意のタイミングでモニタ装置１００の画像表示部１０１に表示させて視ることができる。【００９９】
そして、メインＣＰＵ６４は、有線及び無線共に受信した固有ＩＤの登録及び対応付けが完了していることを条件に、プレイヤーからコントローラ２０への入力操作に従って、固有ＩＤ及び物理コントローラＮｏに対応付けた一つの仮想コントローラＮｏを、ゲーム等のアプリケーションプログラムの実行処理に関連付ける。このとき、プレイヤーは、自己が操作するコントローラ２０の表示部２１の仮想コントローラＮｏまたは発光色やモニタ装置１００の画像表示部１０１に表示された発光色及び仮想コントローラＮｏを視認しながら、例えばゲーム上のキャラクタにコントローラ２０を対応付けることができるので、コントローラ２０とアプリケーションプログラムとの関連付け（例えば、コントローラ２０とキャラクタとの対応付け）を容易且つ確実に行うことができる。【０１００】
なお、図８に示す未登録コントローラの登録及び対応付け（有線）処理においても、新規登録及び対応関係設定処理の後に、上記仮想コントローラＮｏを報知するためのコントローラ２０の表示部２１の発光制御処理や、モニタ装置１００の画像表示部１０１への表示制御を実行してもよい。以上のように、装置本体１０と各コントローラ２０との間の互いの固有ＩＤの登録については不揮発性のサブメモリ７４、サブメモリ９１に記憶させ、仮想コントローラＮｏと物理コントローラＮｏとの対応付けについては揮発性のメインメモリ６５、８２に記憶させる。これにより、例えば、自分が持つコントローラ２０を友人宅に持ち出した場合、友人が持つ装置本体１０との間で互いに固有ＩＤを登録し、仮想コントローラＮｏと物理コントローラＮｏとの対応付けを行うことにより、次回から固有ＩＤの登録が不要になる。【０１０１】
〔ＢＴ通信中のバッテリ監視処理の説明〕
図１０に示すように、ＢＴ通信中において、コントローラ２０では、ＣＰＵ８１がバッテリ８３の蓄電量を定期的に算出し、この蓄電量を示す情報（蓄電量情報）をＢＴ通信モジュール８９が装置本体１０へ都度送信する。なお、ここでは、ＢＴ通信中におけるバッテリ監視処理について説明しているが、ＣＰＵ８１は、接続形式によらずバッテリ８３の蓄電量を定期的に算出しており、ＵＳＢ接続の場合、蓄電量情報はＵＳＢ通信モジュール８８によって装置本体１０へ都度送信される。【０１０２】
そして、例えば仮想コントローラＮｏが関連付けられたアプリケーションプログラムの実行中などに、当該仮コントローラＮｏを保持するコントローラ２０のホームボタン５２と「○」ボタン４５とが同時に押下され、このボタン操作に応じた特定処理実行指示信号を装置本体１０が受信すると、装置本体１０はバッテリ残量の表示処理を開始する。【０１０３】
このバッテリ残量の表示処理において、装置本体１０では、ＢＴ通信モジュール７９が受信した蓄電量情報に基づいて、メインＣＰＵ６４がＧＰＵ６８へ蓄電量表示出力指示信号を出力し、ＧＰＵ６８は、上記蓄電量情報に基づき、バッテリ８３の蓄電量を数値表示やグラフ表示やキャラクタ表示等によりモニタ装置１００の画像表示部１０１へ表示させる処理を実行する（ステップＳ３１）。また、バッテリ残量に関する表示は、蓄電量が所定の閾値以下であるときに限って実行される充電不足の警告表示であってもよい。なお、上記バッテリ残量に関する表示は、実行中のアプリケーションプログラムの画面に重ねて表示することが好ましい。この場合、バッテリ残量に関する情報をアプリケーションプログラム側に提供することにより、アプリケーションプログラムによってバッテリ残量に関する表示を行わせることもできる。また、バッテリ残量の表示処理を、予め設定された条件の成立（例えば、所定の入力や所定時間の経過など）によって終了させてもよい。【０１０４】
これにより、プレイヤーは、バッテリ８３の蓄電量に関する表示を、任意のタイミングでモニタ装置１００の画像表示部１０１に表示させて視ることができる。すなわち、プレイヤーは、蓄電量が低下してＢＴ通信による情報の送受信が困難となる可能性があることを、任意に且つ容易に認識することができる。【０１０５】
そして、このような場合、プレイヤーはＵＳＢ接続を行う。ＵＳＢ接続が行われると、所定の通信準備処理が完了した後、コントローラ２０と装置本体１０との間で固有ＩＤが互いに送信され、装置本体１０は、図９のステップＳ２１−１と同様の処理を実行する（ステップＳ３２−１）。すなわち、有線及び無線共に受信した固有ＩＤの登録及び対応付けが完了していることを条件に、ＢＴ通信からＵＳＢ接続による通信へ切り替える。この切り替えの前後において、固有ＩＤと仮想コントローラＮｏとの対応関係は維持されるため、プレイヤーは同じコントローラ２０をそのまま使用して、アプリケーションプログラムの実行を継続して行うことができる。また、ＵＳＢ接続前にモニタ装置１００の画像表示部１０１に表示されていた表示が充電不足の警告表示であった場合には、ＵＳＢ接続後に当該表示は消去される。同様にコントローラ２０も、受信した装置本体１０の固有ＩＤがサブメモリ９１に登録されているか否かを判定する（ステップＳ３２−２）。【０１０６】
ＵＳＢ接続時には、装置本体１０は、コントローラ２０へ駆動電源を供給すると共に、バッテリ８３を充電する（ステップＳ３３）。このバッテリ８３の充電時においても、コントローラ２０では、ＣＰＵ８１がバッテリ８３の蓄電量を定期的に算出し、蓄電量情報をＵＳＢ通信モジュール８８が装置本体１０へ都度送信する。【０１０７】
装置本体１０では、ＵＳＢ通信モジュール７８が受信した蓄電量情報に基づいて、ＧＰＵ６８がバッテリ８３の蓄電量を数値表示等を更新して表示させる（ステップＳ３４）。【０１０８】
プレイヤーは、モニタ装置１００の画像表示部１０１に表示されたバッテリ８３の蓄電量に関する表示を視ることによって、蓄電量が増大してＢＴ通信による情報の送受信が長時間可能となったことを容易に認識することができる。【０１０９】
そして、プレイヤーは必要に応じてＵＳＢ接続を解除することにより、ＢＴ通信状態に復帰させることができる。【０１１０】
なお、本実施形態では、コントローラ２０のホームボタン５２と「○」ボタン４５とが同時に押下されるという所定の入力を条件としてバッテリ残量の表示処理を実行しているが、このような所定の入力を条件とせずに、バッテリ残量の表示処理を行ってもよい。一例として、バッテリ残量が予め定めた閾値以下となったことを条件にバッテリ残量の表示処理を実行することが挙げられる。【０１１１】
〔ＢＴ通信中のＲＳＳＩの監視処理の説明〕
図１１に示すように、装置本体１０は、ＲＳＳＩの監視処理を定期的に実行し、無線通信時の装置本体１０とコントローラ２０との間の電界強度を定期的に検出する。【０１１２】
そして、例えば仮想コントローラＮｏが関連付けられたアプリケーションプログラムの実行中などに、当該仮コントローラＮｏを保持するコントローラ２０のホームボタン５２と「△」ボタン４８とが同時に押下され、このボタン操作に応じた特定処理実行指示信号を装置本体１０が受信すると、装置本体１０は電界強度の表示処理を開始する。【０１１３】
電界強度の表示処理において、ＧＰＵ６８は、上記検出された電界強度を、数値表示やグラフ表示やキャラクタ表示等によりモニタ装置１００の画像表示部１０１へ表示させる処理を実行する（ステップＳ４１）。また、電界強度に関する表示は、電界強度が所定の閾値以下であるときに限って実行されるＢＴ通信不良の警告表示であってもよい。なお、上記電界強度に関する表示は、実行中のアプリケーションプログラムの画面に重ねて表示することが好ましい。この場合、電界強度に関する情報をアプリケーションプログラム側に提供することにより、アプリケーションプログラムによって電界強度に関する表示を行わせることもできる。また、電界強度の表示処理を、予め設定された条件の成立（例えば、所定の入力や所定時間の経過など）によって終了させてもよい。【０１１４】
プレイヤーは、電界強度に関する表示を、任意のタイミングでモニタ装置１００の画像表示部１０１に表示させて視ることができる。すなわち、プレイヤーは、電界強度が低下してＢＴ通信による情報の送受信が困難となっていることを、任意に且つ容易に認識することができる。【０１１５】
上記不都合は、プレイヤーがコントローラ２０を装置本体１０に近づけることによって解消される。このような対処により、画像表示部１０１における電界表示に関する表示が更新され、プレイヤーは、ＢＴ通信が適正に行われ得る電界強度であることを容易に視認することができる。【０１１６】
なお、本実施形態では、コントローラ２０のホームボタン５２と「△」ボタン４８とが同時に押下されるという所定の入力を条件として電界強度の表示処理を実行しているが、このような所定の入力を条件とせずに、電界強度の表示処理を行ってもよい。一例として、電界強度が予め定めた閾値以下となったことを条件に電界強度の表示処理を実行することが挙げられる。【０１１７】
また、上述の実施の形態の説明では、本発明を装置本体とそのコントローラに適用することとしたが、これは装置本体とそのコントローラ以外に適用してもよい。【０１１８】
最後に、上述の各実施の形態の説明は本発明の一例である。このため、本発明は上述の各実施の形態に限定されることはなく、本発明の技術的思想を逸脱しない範囲であれば、上述の実施の形態以外であっても種々の変更が可能であることは勿論である。
【産業上の利用可能性】
【０１１９】
本発明は、ユーザから操作される操作端末と、この操作端末と情報処理装置との間の有線及び無線通信を実現する様々な情報通信システムに適用することができる。
【図１】
2007032248.tif 000002
【図２】
2007032248.tif 000003
【図３】
2007032248.tif 000004
【図４】
2007032248.tif 000005
【図５】
2007032248.tif 000006
【図６】
2007032248.tif 000007
【図７】
2007032248.tif 000008
【図８】
2007032248.tif 000009
【図９】
2007032248.tif 000010
【図１０】
2007032248.tif 000011
【図１１】
2007032248.tif 000012
【図１２】
2007032248.tif 000013
【図１３】
2007032248.tif 000014
【国際調査報告】
2007032248.tif 000015
2007032248.tif 000016
2007032248.tif 000017
2007032248.tif 000018