本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係るセンタ装置1は、図1に示すように、制御部11と、記憶部12と、入出力ユニット13と、外部記憶部14と、操作通信部15と、表示部16と、通信部17とを含んで構成され、コントローラ装置2に有線又は無線にて接続されている。
センタ装置1の制御部11は、CPUなどであり、記憶部12に格納されているプログラムに従って動作する。本実施の形態の制御部11は、例えばゲームなどのプログラムを実行するほか、コントローラ装置の認証処理を実行する。この制御部11の処理内容の例については、後に詳しく述べる。
記憶部12は、RAM(Random Access Memory)等の記憶素子を含んで構成され、制御部11によって実行されるプログラムを保持する。また、この記憶部12は、制御部11が処理を行うときに必要となるデータを保持するワークメモリとしても動作する。また、この記憶部12には、電源を切断した状態でも情報を保持可能な記憶手段(いわば不揮発性の記憶手段)として、例えばハードディスクなどの記憶媒体を含む。以下の説明では、記憶部12にはハードディスクが含まれるものとする。
入出力ユニット13は、いわゆるブリッジチップであり、制御部11と、外部記憶部14と、操作通信部15とに接続されている。この入出力ユニット13は、制御部11から入力される指示に従って、制御部11が出力する信号(出力信号)の出力先を選択し、当該選択した出力先に対して、制御部11の出力信号を選択的に出力する。また、入出力ユニット13は、外部記憶部14や操作通信部15から入力される信号を制御部11に出力する。
外部記憶部14は、例えばBlu-ray Discや、DVD等の外部記録媒体から、記録されている情報を読み取って、入出力ユニット13を介して制御部11に出力する。
操作通信部15は、有線コネクタ部41と、無線通信部42とを含んで構成され、有線または無線にてコントローラ装置2との間で通信を行う。ここでは有線コネクタ部41は、USB(Universal Serial Bus)等、ケーブルを介してデータを授受するものである。また、この有線コネクタ部41は、複数設けられており、それぞれ、接続されたコントローラ装置2に対して電源供給を行っている(例えばUSBでいう、バスパワー)。
無線通信部42は、ブルートゥース(Bluetooth)等、無線にてデータを授受するものである。この無線通信部42は、所定の方法で多重通信を行い、通信可能な範囲内に存在する複数のコントローラ装置2との間でデータを送受信する。
表示部16は、グラフィックス処理ボード等であり、制御部11から入力される指示に従って、画像を描画し、当該描画した画像の情報を外部に接続されているディスプレイ(家庭用テレビジョン装置等)に出力して、表示させる。
通信部17は、ネットワークインタフェースであり、例えばイーサネット(登録商標)ポートである。この通信部17は、例えばインターネット・サービス・プロバイダの回線に接続され、当該回線を介して、インターネット上のサーバと通信可能に接続される。また、この通信部17は、制御部11から入力される指示に従って、種々のデータをインターネットを介して送出する。また、インターネット側から到来するデータを受信して、制御部11に出力する。
コントローラ装置2は、ここでは例えばゲーム用のコントローラであり、ユーザの操作を受け入れて、当該操作の内容をセンタ装置1に送信する。このコントローラ装置2は、図2に示すように、把持部20R,20Lを有している。ユーザは、これら把持部20をそれぞれ左右の手で把持することになる。ユーザが把持部20を把持した状態で、左右の手の親指にて操作可能な位置には、第1,第2の操作部21,22と、アナログ操作部23R,23Lとがそれぞれ設けられている。
ここで第1の操作部21には、上方向指示キー21a、下方向指示キー21b、右方向指示キー21c及び左方向指示キー21dが設けられている。ユーザはこれらの指示キー21a、21b、21c及び21dを利用して、例えば画面上の操作対象を特定するなどの操作を行う。
また、第2の操作部22には、三角(「△」)形状の刻印が設けられた三角ボタン22aと、X字(「×」)状の刻印が設けられたXボタン22bと、O字(「○」)状の刻印が設けられたOボタン22cと、矩形(「□」)形状の刻印が設けられた矩形ボタン22dとが設けられている。これらのボタン22a,22b,22c及び22dは、例えば、指示キー21a,21b,21c及び21dにて特定された操作対象に応じて、センタ装置1側で実行されるプログラムにより、夫々操作内容が割り当てられる。ユーザは、これにより、適切なボタン22a,22b,22c及び22dを選択し押下することで指示キー21a,21b,21c及び21dにて特定された操作対象に対する操作を行うことができることになる。
アナログ操作部23R,23Lは、点aを支点とした傾倒操作が可能となっており、また、このように傾倒させた状態で、この支点aを通る回転軸bを中心とした回転操作が可能となっている。このアナログ操作部23R,23Lは、非傾倒操作時には、起立した状態(傾きのない状態)でそのポジションが保持されるようになっている(基準ポジション)。そして、アナログ操作部23R或いはアナログ操作部23Lを押圧操作しながら傾倒操作すると、上記基準ポジションに対する傾き量と傾き方向に応じたxy座標上の座標値(x,y)が検出され、この座標値が操作出力としてセンタ装置1側へ出力されることになる。
また、このコントローラ装置2は、センタ装置1に対してプログラムの実行を指示するためのスタートボタン24や、各種モードを切替える指示などを行うためのセレクトボタン25及びモード選択スイッチ26を有してもよい。
さらに、このコントローラ装置2には、各把持部20R,20Lを左右の手で把持した状態において例えば各手の人差し指等で操作可能な位置に、右ボタン28及び左ボタン29が設けられている。この各ボタン28,29は、それぞれコントローラの厚さ方向に並設された、第1,第2の右ボタン28R1,28R2、及び第1,第2の左ボタン29L1,29L2を有する。
このコントローラ装置2は、その内部に、図3に示すように、通信部31と、制御部32と、記憶部33と、接続部34と、操作受入部35と、触覚提示部36と、電源部37とを含んで構成されている。また、通信部31は、有線接続部31aと、無線接続部31bとを備える。
有線接続部31aは、センタ装置1の操作通信部15の有線コネクタ部41に、ケーブルを介して接続可能となっている。この有線接続部31aは、センタ装置1に接続されているときに、制御部32から入力される送信対象のデータを、センタ装置1へ送出する。さらにこの有線接続部31aは、センタ装置1から電源の供給を受けて、各部への電源供給を行うとともに、電源部37の充電電源を供給する。
無線接続部31bは、センタ装置1の無線通信部42との間で無線にてデータを授受する。この無線接続部31bには、無線通信のための識別情報が予め割り当てられているものとする。
制御部32は、CPUなどであり、記憶部33に格納されているプログラムに従って動作する。センタ装置1に対して認証に係る情報を送信する。また、この制御部32は、利用者が操作受入部35に対して行った指示操作の内容を通信部31を介してセンタ装置1へと送信する。さらに制御部32は、通信部31を介してセンタ装置1から入力される指示に従い、触覚提示部36を制御する。
記憶部33は、NVRAM(不揮発性RAM)などのメモリ素子を含んで構成される。この記憶部33には、制御部32によって実行されるプログラムが格納されている。また、この記憶部33は、制御部32のワークメモリとしても動作する。この記憶部33には、さらに、コントローラ装置2の識別情報(センタ装置1との無線通信に用いる識別子(以下、コントローラ識別子と呼ぶ)など、予めコントローラ装置ごとに固有に設定されている情報)が格納されている。
接続部34は、外部メモリ装置50を受け入れるソケットを含み、制御部32に対して、このソケットに受け入れられた外部メモリ装置50へのアクセスを行わせる。すなわち、本実施の形態では、ユーザの認証情報は、制御部32が、この接続部34を介して外部メモリ装置50に書き込む。また、認証処理の際には、ユーザの認証情報がこの接続部34を介して外部メモリ装置50から読み出される。
操作受入部35は、第1,第2の操作部21,22や、アナログ操作部23R,23L、スタートボタン24、セレクトボタン25、モード選択スイッチ26、第1,第2の右ボタン28R1,28R2、第1,第2の左ボタン29L1,29L2等といった、コントローラ装置2が備える各操作要素から伝達される信号を受け入れて、制御部32に出力する。
触覚提示部36は、例えばモータ駆動により偏心重りを回転させてコントローラ装置2を振動させるバイブレータであり、制御部32からの制御を受けて、コントローラ装置2を振動させて、ユーザに触覚を提示する。
電源部37は、充電可能な二次電池を含んで構成される。この電源部37は、コントローラ装置2がセンタ装置1に対して有線にて接続されていないときに、各部に電源を供給する。また、電源部37は、コントローラ装置2がセンタ装置1に対して有線にて接続されているときには、有線接続部31aを介して供給される充電電源により電池を充電する。
[認証処理]
ここで、センタ装置1の動作について説明する。センタ装置1は、実行しているプログラムからの要求により、又は/及び、電源投入時等、予め定められたタイミングで、通信可能なコントローラ装置2の認証処理を行う。
既に説明したように、ユーザの認証情報は、コントローラ装置2に対して着脱可能な外部メモリ装置50に格納される。この外部メモリ装置50には、例えば図4に示すように、少なくとも一つのユーザ識別情報(ID)と、ユーザの年齢情報(Y)と、パスコード等の認証キー情報(K)とが格納されている。ユーザは、センタ装置1を利用する前に、この外部メモリ装置50をコントローラ装置2に装着しておく。
一方、センタ装置1の記憶部12のハードディスク(不揮発性の記憶手段)には、ユーザの認証情報の少なくとも一つが予め設定され、格納されている。
例えば、ユーザ識別情報には、このセンタ装置1が設置される家庭内で識別可能な情報(当人の名前など、以下「ローカルID」と呼ぶ)と、センタ装置1を介してネットワークゲーム等を行う際に利用する識別情報(いわばハンドルネーム、以下「グローバルID」と呼ぶ)とが含まれるものとする。
以下では、一例として、センタ装置1には、センタ装置1が設置された家庭に属する「太郎」、「次郎」、「花子」の3名のローカルID(それぞれ、「Taro」、「Jiro」、「Hanako」とする)が登録されているものとする。
また、センタ装置1の記憶部12には、これらローカルIDに関連づけて、パレンタル・ロック(視聴制限)や、利用時間制限、記憶部12内のデータへのアクセス権の設定などが関連づけられて格納されているとする。
次に認証処理の具体的な処理例について説明する。センタ装置1の制御部11は、実行しているプログラムからの要求により、又は/及び、電源投入時等、予め定められたタイミングで、図5に示す処理を開始し、有線又は無線にて通信可能なコントローラ装置2を検出する(S1)。この検出は例えばUSBやブルートゥースの検出処理をそのまま利用できる。
制御部11は、検出したコントローラ装置2のうち、少なくとも一つを認証の対象として、予め定められた方法によって選択する(S2)。この選択は、例えばランダムに行ってもよいし、検出された順番(例えば最初に検出されたコントローラ装置2を選択するなど)によって行ってもよいし、各コントローラ装置2に装着された外部メモリ装置50に格納されている情報に基づいて、例えばコントローラ装置2のうち、装着された外部メモリ装置50に格納されている年齢情報が最も小さい、又は大きいコントローラ装置2を選択する等として行ってもよい。この選択の方法は、認証処理を行わせるプログラム側から指定可能としておいてもよい。
制御部11は、選択したコントローラ装置2から、ユーザ識別情報(例えばローカルID)と、認証キー情報とを取得する(S3)。そして、ログイン画面として、図6に示すように、「XXさん、こんにちは。ログインして下さい」のような画面と、認証キーの入力を促す表示を、表示部16に行わせる(S4)。
ここでユーザが認証キーを入力すると、制御部11は、この入力された認証キーと、処理S3で取得した認証キーとを比較し、これらが一致するか否かを調べる(S5)。そして一致した場合には、認証が完了したものとして、処理S3で取得したユーザ識別情報に関連づけられている、パレンタル・ロックの情報や利用時間制限の情報等を読み出して(S6)、認証の処理を終了する。また、処理S5において、一致しなかった場合は、認証が完了していないものとして、例えば処理S4に戻って処理を続ける。
ここで読み出されたパレンタル・ロックの情報や利用時間制限の情報等は、各プログラムによって利用される。
これにより例えば、上記処理S2において、年齢の最小のユーザを認証することとしておくと、ユーザの年齢が、10才、15才、20才の3名であった場合に、最小である10才のユーザが選択的に認証され、12才未満の視聴を制限するコンテンツへのアクセスを制限するなどの処理に利用できる。
さらに、処理S2における選択の際には、検出した各コントローラ装置2から、ユーザ識別情報(例えばローカルID)を取得し、当該取得した情報が記憶部12に格納されている場合に、選択の対象としてもよい。つまり、予めセンタ装置1に登録されているユーザについてのみ、認証処理の対象とするのである。これにより、例えば、登録されていないユーザが来訪して、コントローラ装置2を使用する場合に、当該登録されていないユーザに対して認証処理を行ってしまうことがなくなる。
また、処理S2においては、取得したユーザ識別情報を一覧表示して、認証処理の対象となるユーザを、ユーザ自身に選択させることとしてもよい。この場合も、センタ装置1に登録されていないユーザについては、当該一覧に含めないようにしてもよい。
本実施の形態では、制御部11は、例えば検出したコントローラ装置2のユーザの一部について認証処理を行い、認証が完了した場合には、認証処理の対象となっていない他のユーザについて認証を行うことなく、認証が完了したものとして種々の処理を継続する。
例えば、既に述べた例のように、「太郎」、「次郎」、「花子」の3人が、それぞれのコントローラ装置2に、それぞれのローカルIDを格納した外部メモリ装置50を装着して把持しているとする。このとき、センタ装置1は例えば、所定の条件により「太郎」を認証の対象として選択し、「太郎」に対して認証処理を行う。ここで「太郎」についての認証が完了すると、「次郎」、「花子」については認証処理を行うことなく、ゲームなどのプログラムを実行させるのである。また、センタ装置1の制御部11は、一旦認証が完了した後は、当該認証処理の相手となったユーザのコントローラ装置2との間で通信ができなくなったとしても、ゲームなどの処理を継続する。これにより、例えば上記の例で「太郎」がコントローラ装置2を携帯したまま外出した場合や、コントローラ装置2から外部メモリ装置50を取り外した場合にも、「次郎」と「花子」とがゲームのプレイなどを続けることができるようになる。
制御部11は、さらに、認証処理が完了した時点で検出していたコントローラ装置2の識別情報(例えばコントローラ識別子)を例えば検出の順に、順列テーブルとして記憶部12に保持する(図7)。ここでコントローラ識別子は、例えばコントローラ装置2に固有に割り当てられた識別情報(固有ID)や、コントローラ装置2の通信インタフェース識別符号(例えばイーサネット(登録商標)又は/及び無線LANで用いられるMACアドレスや、ブルートゥースの機器ID、USBの機器IDなど)であり、制御部11は、コントローラ識別子として、これら、固有ID、MACアドレス、ブルートゥース機器ID、USB機器IDといった情報要素を互いに関連づけて格納する。つまり、制御部11は、コントローラ装置2との通信が可能となったときに、当該コントローラ装置2の備える各通信インタフェースの識別符号を取得する。例えば、有線(USBなど)で接続された場合でも、無線(ブルートゥースなど)の通信パラメータを取得してしまう。なお、この順列テーブルにおいては、コントローラ識別子に対して、対応するコントローラ装置から取得したローカルIDを関連づけてもよい。さらに順列テーブルには、例えばコントローラ装置2が接続されている有線コネクタ部41がどれであるかを特定する情報(コネクタの識別子)などを関連づけてもよい。さらに、コントローラ装置2の種別(機種に関する情報)などを関連づけてもよい。
制御部11は、この順列テーブルを、プログラム側からリセットの要求が行われた場合、及び/又は予め定められたタイミング(例えば電源投入時)でリセットする。また制御部11は、プログラムの処理中は、例えば途中で通信不能となったコントローラ装置2があっても、そのコントローラ識別子を、この順列テーブルから排除しないよう制御する。一方、制御部11は、所定のタイミングごと(例えば定期的に)コントローラ装置2からコントローラ識別子を受信する処理(コントローラ識別子を要求し、その応答を受信するなどの処理)を行い、受信したコントローラ識別子が記憶している順列テーブルに含まれていない場合、新たなコントローラ装置2が検出されたものとして、当該順列テーブルに含まれていないコントローラ識別子を順列テーブルの末尾に追加するとともに、プログラム側に対して新たなコントローラ装置2を検出したことを知らせるイベント信号を発行する。プログラム側(例えばゲームプログラム)では、このイベント信号を受けると、当該コントローラ装置2からローカルIDを取得して、「XXさんがやってきました!」のように、ゲームへの飛び入り参加者が現れたことを報知するなどの処理に利用する。ここで本実施の形態において特徴的なことの一つとして、既に他のユーザの認証処理が完了していることで、当該新たにゲームなどに参加するユーザの認証処理が省略されることである。これによってゲームを中断させることなく、ユーザの参加を容易にすることができる。
また、プログラム側は、この記憶部12に格納されている順列テーブルを用いて、例えばゲームのプレイヤを管理する。処理の一例を述べると、ゲームプログラム側では、順列テーブル上の順序番号と、プレイヤ番号とを関連づけるテーブルを生成して記憶部12に保持する。一方、操作通信部15は、コントローラ装置2から指示操作の入力がされると、当該指示操作の入力があったコントローラ装置2のコントローラ識別子とともに、当該指示操作の情報を制御部11に出力している。
制御部11は、入力されたコントローラ識別子が、記憶部12に格納されている順列テーブル上で何番目に位置するかを調べて順序番号を取得し、当該順序番号に関連づけられているプレイヤ番号のプレイヤに関する指示操作であるとして処理を行う。
これにより、制御部11は、複数のユーザが、それぞれのキャラクタを制御するようなゲームにあっても、各コントローラ装置2から入力される指示操作の信号に基づいて、各ユーザの操作通りに対応するキャラクタの制御の処理を実行できる。
なお、コントローラ装置2は、有線と無線との双方で接続可能となっているために、ユーザは、当初有線にて接続されていたコントローラ装置2をゲームのプレイ中に引き抜いて、無線接続に切り替えることを行うこともあり得る。既に説明したように、本実施の形態では、有線通信のパラメータ情報であるUSB機器IDと、無線通信のパラメータ情報としてのブルートゥース機器IDとが互いに関連づけて、コントローラ識別子として保持されているので、順列テーブルの内容が変更されることはなく、切り離された有線接続機器に対応するブルートゥース機器(つまりコントローラ装置2)がどれであるかを制御部11側で識別することができる。
また、逆に、当初無線にて接続されていたコントローラ装置2をゲームのプレイ中に、有線接続に切り替えることもあるが、この場合も、既に当該接続態様が切り替えられたコントローラ装置2のコントローラ識別子が順列テーブルに格納されているので、順列テーブルの内容が変更されることはない。
この順列テーブルの例のように、ゲームプログラム側における各プレイヤと、コントローラ識別子とを関連付け可能としておくことで、有線、無線のいずれの接続態様にあっても、また、有線・無線の接続態様を途中で切り替えたとしても、センタ装置1の制御部11は、各コントローラ装置2からの指示操作が、どのユーザから行われたものであるかを確実に識別できるようになっている。
[同名の利用者]
また、制御部11は、検出されたコントローラ装置2からそれぞれ取得したユーザ識別情報(例えばローカルID)をそれぞれ比較し、同一のローカルIDが設定されているコントローラ装置2があるか否かを調べ、同一のローカルIDが設定されているコントローラ装置2がある場合に、所定の識別処理を実行してもよい。
これは例えば、登録されている「太郎」のほかに、この「太郎」と同じローカルIDを設定しているユーザが外部から来訪して、当該ユーザがコントローラ装置2を利用する場合に生じる。
この場合、制御部11は、同じローカルIDが設定されている各ユーザに対して、互いに識別可能な、一時的なローカルIDを発行する。この一時的なローカルIDは、例えば元のローカルIDに対してそれぞれ異なる番号を付加したもので構わない。例えば、元のローカルIDがいずれも「Taro」である場合、「Taro1」と、「Taro2」とを発行して、各コントローラ識別子に関連づけて記憶部12の順列テーブルに格納する。
またこの場合、制御部11は、同じユーザ識別情報となっている複数のユーザに対して、それぞれ割り当てられた一時的なローカルIDを通知する。例えば、表示部16に発行した一時的なローカルIDを1つずつ、順次表示するとともに、表示している一時的なローカルIDに対応するコントローラ識別子で識別されるコントローラ装置2に対して、触覚提示部36を駆動させる指示を出力する。
これにより、各ユーザは、コントローラ装置2が例えば振動している間に、画面に表示されている名称によって、一時的に割り当てられたローカルIDを知ることができる。なお、ここでは触覚提示部36によって各ユーザに一時的に割り当てたローカルIDを提示できるようにしたが、例えばコントローラ装置2が液晶表示デバイスなど、文字等を表示可能なデバイスを備えている場合は、当該表示デバイスに対して、一時的に割り当てたローカルIDや、取得しているローカルIDを表示するようにしてもよい。
[ネットワーク処理]
また、センタ装置1がインターネットに接続されている場合、制御部11は、インターネット上のサーバに対しては、各コントローラ装置2のユーザのユーザ識別情報として、ローカルID(本発明にいう第1の識別情報)とは別に設定されているユーザ識別情報(本発明にいう第2の識別情報、例えばグローバルID)を送信して、当該サーバにおける認証処理に供してもよい。
すなわち、センタ装置1は、インターネット上のサーバに対してアクセスし、認証の要求を受けたときには、図5の処理S2の処理と同様の処理によって、検出したコントローラ装置2のうち、少なくとも一つを認証の対象として、予め定められた方法によって選択する。そして当該選択したコントローラ装置2に装着されている外部メモリ装置50内のグローバルIDを取得し、当該グローバルIDを送信して認証を求める。
このようにすると、インターネットのサーバにおけるユーザの識別情報と、家庭内の環境におけるユーザの識別情報を異ならせることができるようになり、利便性が向上する。
さらに、センタ装置1は、インターネットを介して、他のセンタ装置1と通信を行い、当該他のセンタ装置1に対して、ローカルIDを送出して、当該他のセンタ装置1での認証処理に供してもよい。つまり、インターネットへの接続に際してはグローバルIDを用いて認証を行っておき、インターネットを介して他のセンタ装置1へアクセスする時には、ローカルIDを送出して認証を行うようにしてもよい。
この場合、ユーザのコントローラ装置2と直接通信を行っているセンタ装置1(以下、区別のため、ユーザ側センタ装置と呼ぶ)と、他のセンタ装置1(区別のため、以下、リモートセンタ装置と呼ぶ)とは、次のように処理を行う。
すなわち、ユーザ側センタ装置1は、ユーザからの指示操作によって、リモートセンタ装置1のアドレスに対して、ユーザのローカルIDを送出して認証を要求する。リモートセンタ装置1では、当該認証の要求として受信したローカルIDが、リモートセンタ装置1に登録されているか否かを調べ、登録されている場合は、認証キーの要求をユーザ側センタ装置1へ送出する。
ユーザ側センタ装置1では、認証キーの要求を受けて、ユーザに認証キーの入力を促す。ここでユーザが認証キーを入力すると、ユーザ側センタ装置1が、当該入力された認証キーと、ユーザの利用するコントローラ装置2に装着されている外部メモリ装置50に格納された認証キーとを比較し、これらが一致するか否かを判断し、その判断結果を、リモートセンタ装置1に送出する。
リモートセンタ装置1では、認証キーが一致したことを表す判断結果の情報を受けると、先に受信しているローカルIDに関連づけられている、ハードディスク内のデータへのアクセス権の設定などの情報を読み出す。そして、ユーザ側センタ装置1からさらに、ハードディスク内のデータの取得要求などが受信されたときに、上記読み出した情報により、当該取得要求に係るデータへのアクセス権の有無を判断し、アクセス権があると判断される場合に、当該取得要求に係るデータをハードディスクから読み出し、インターネットを介して、ユーザ側センタ装置1へ送出する。
この例によると、例えばユーザが外出先のセンタ装置1を利用してゲームを行うときに、自宅のセンタ装置1に格納されている、ゲームの保存データを取得できるようになり、外出先においても、ゲームを継続できることとなって、利便性を向上できる。
また、このようにすることで、ユーザに対しては、わざわざユーザ名のようなユーザ識別情報の入力をさせることなく、外部メモリ装置50に予め設定させておくことで、認証の操作を簡略化でき、利便性を向上できる。
[外部メモリ装置50を用いないコントローラ装置]
ここまでの説明においては、各コントローラ装置2には、ユーザ識別情報などを保持した外部メモリ装置50が装着されるものとしていたが、このことは必ずしも必要ではない。例えば、一部のコントローラ装置2に外部メモリ装置50が装着されていない場合は、制御部11は、図5に示した処理S2において外部メモリ装置50が装着されているコントローラ装置2を選択すればよい。
また、すべてのコントローラ装置2に外部メモリ装置50が装着されていない場合は、制御部11は、表示部16に、「ユーザ識別情報を入力してください」のような表示を行い、ユーザ識別情報の入力を求め、入力されたユーザ識別情報を用いて認証処理を行うこととすればよい。
さらに、一人のユーザが複数のコントローラ装置2を利用する場合もある。例えば、車両のレーシングゲームなどに用いられる専用のコントローラ装置として、ハンドルユニットと、アクセルやブレーキなどのペダルユニットとを別体のコントローラ装置2として提供することが考えられる。この場合、例えばハンドルユニットに外部メモリ装置50を装着させ、対応するペダルユニットについては外部メモリ装置50の装着を不要としてもよい。
このように、複数のコントローラ装置2をユーザの少なくとも一人が利用する場合に配慮して、センタ装置1の制御部11は、外部メモリ装置50が装着されていないコントローラ装置2(ユーザ識別情報が取得できないコントローラ装置2)を検出したときに、次のような処理を行うこととしてもよい。
この場合、制御部11は、各コントローラ装置2から取得したユーザ識別情報の一覧を表示するとともに、各ユーザ識別情報に対応づけて、ユーザ識別情報が取得できなかったコントローラ装置2の一覧を、ユーザが選択可能なメニューとして表示する。
ユーザは、例えば自分のユーザ識別情報に対応して表示されているメニューから、自分の利用するコントローラ装置2を選択する操作を行う。
例えば、上述のハンドルユニットとペダルユニットとの場合、制御部11は、ハンドルユニットに装着されている外部メモリ装置50からユーザ識別情報を取得して表示部16に表示させる。また、このユーザ識別情報に対応させて、ペダルユニットを表す情報を含むメニューを表示させる(図8)。ユーザは、このメニューからペダルユニットを選択する指示操作を行う。
制御部11は、この画面を介して行われた設定に基づいて、各ユーザ識別情報の取得元となったコントローラ装置2のコントローラ識別子と、当該コントローラ装置2のユーザ識別情報に対応づけられたメニューにおいて選択されたコントローラ装置2のコントローラ識別子(関連コントローラ識別子として図示する)とを関連づけて、例えば記憶部12の順列テーブルに格納する(図9)。
ゲームなどのプログラムでは、例えばペダルユニットからの指示操作の入力があったときに、当該ペダルユニットのコントローラ識別子に関連づけられたハンドルユニットのコントローラ識別子を参照し、さらに、当該ハンドルユニットに関連するユーザ識別情報を取得できるようになる。また、ペダルユニットの順列テーブル上の順序番号も取得できるので、ハンドルユニットと、対応するペダルユニットとを一人のプレイヤ(ユーザ)に関連づけることができるようになり、それぞれ別体になっているコントローラ装置2からの信号に基づいて、ゲームを進行させることができるようになる。
なお、ここではコントローラ装置2について説明したが、例えばヘッドセット(ヘッドフォンなど)の情報提示装置についても、コントローラ識別子と同様に識別子を設定しておき、上述のメニューによって関連付けを行わせることができる。
これによると、例えばユーザが、コントローラ装置2を用いてヘッドフォンの再生音量を調整する指示操作を行ったときに、制御部11が、当該指示操作を受け入れたコントローラ装置2のコントローラ識別子に関連づけて記憶されているヘッドフォンの識別子を通信先として、音量調整のための指示を送出する。これにより、ユーザが、関連付けを設定したヘッドフォンの音量がコントローラ装置2を用いて制御できることとなり、利便性を向上できる。
なお、ここではヘッドフォンを例としたが、これに限るものではなく、例えば、ヘッドマウントディスプレイや、各種の力覚提示装置であってもよい。このように種々の情報提示装置を接続可能とする場合、関連付けされたコントローラ装置2から制御可能な情報の要素を、各情報提示装置が予め制御部11に対して登録しておくこととしてもよい。例えばヘッドフォンであれば、制御対象の名称として「音量」、設定用ボタンとして、方向キーを用いること、そして、設定値は「0」から「255」までの値であることなどを予め制御部11へ出力しておく。制御部11は、これらの情報を用いて、ユーザの設定を受け入れる処理を行う。
[外部メモリ装置50]
ここまでの説明では、外部メモリ装置50は、例えば、半導体メモリデバイスで構わないものとしていたが、コントローラ装置2に接続する外部メモリ装置50は、これに限られるものではなく、例えば図10に示すように、制御素子51と、記憶素子52と、バイオメトリクスセンサ部53とを備えてもよい。
ここで制御素子51は、例えばマイコン(マイクロコンピュータ)チップであり、予め設定されているプログラムに従って動作する。この制御素子51は、コントローラ装置2側から、記憶素子52に格納されている情報の要求を受けると、所定の認証処理を実行する。この制御素子51が行う認証処理については、後に述べる。
記憶素子52は、EEPROMなどの不揮発性のメモリ素子であり、図4に示したように、少なくとも一つのユーザ識別情報(ID)と、ユーザの年齢情報(Y)と、認証キー情報(K)とを保持している。もっとも、ここで認証キー情報は、バイオメトリクスセンサ部53から取得される情報と比較可能な情報としておく。
バイオメトリクスセンサ部53は、例えば指紋パターンや、眼底パターン、手の平の静脈パターンなどの生体固有の情報を出力するセンサである。
ここで制御素子51が行う認証処理について説明する。この制御素子51は、コントローラ装置2側から、記憶素子52に格納されている情報の要求を受けると、バイオメトリクスセンサ部53から指紋パターンなどの生体情報の取得を待機する。ここで生体情報が取得されると、当該生体情報と、記憶素子52に格納されている認証キー情報とを比較する。そして、この比較の結果、各情報が一致するなどの所定条件を満足する場合は、コントローラ装置2から要求された情報を記憶素子52から読み出して、コントローラ装置2へ出力する。
また、比較の結果、上記所定条件を満足しない場合は、コントローラ装置2に対して、エラーなど、情報を提供できない旨の信号を送信する。
このようにすると、認証キーとして、パスコード等を用いる場合に比べ、より強度のある認証を行うことができ、安全性を向上できる。
また、例えば制御部11が実行する、ゲームプログラムなどでユーザの生体情報の入力を求める指示を、コントローラ装置2へ送信可能としてもよい。この場合、コントローラ装置2は、外部メモリ装置50の制御素子51に対して生体情報を要求する。この場合制御素子51は、バイオメトリクスセンサ部53から指紋パターンなどの生体情報の取得を待機する。ここで生体情報が取得されると、当該生体情報をコントローラ装置2へ出力する。コントローラ装置2は、当該入力された生体情報をセンタ装置1へ送信出力する。
また、外部メモリ装置50は、例えばその筐体に、ストラップなどを取り付け可能な取り付け部を備えてもよい。
さらにここでは、コントローラ装置2に対して外部メモリ装置50を着脱可能としてことで、1つのコントローラ装置2を複数のユーザで使い分けることができるようにしているが、図10に示した外部メモリ装置50の構成をコントローラ装置2が内部に備え、各ユーザごとの情報を記憶したコントローラ装置2としてもよい。
[コントローラ装置の起動]
さらに、本実施の形態のコントローラ装置2は、電池にて駆動可能となっているので、不使用の状態では電源供給を停止しておくことが好ましい。そこで、コントローラ装置2に、揺動(コントローラ装置2がユーザによって把持されたこと)を検出するセンサを備えて、把持されていない時間が予め定めた時間しきい値を経過したときに、制御部32が所定の省電力モード(例えば通信部31の動作を停止する等のモード)に設定する。
また、制御部32は、省電力モードにあるときに、センサにより、ユーザが把持したことを検出すると、制御部32が省電力モードから通常のモードに復帰する処理を実行して、通信部31の動作を再開させる。
例えば、制御部32は、通常のモードに復帰する処理として、まず有線接続部31aを介してセンタ装置1に接続されているか否かを判断する。すなわち制御部32は、通信相手の機器IDが予め定められているセンタ装置1のIDであるか否かなどによって有線接続部31aを介してセンタ装置1に接続されているか否かを判断する。ここで、有線接続部31aを介してセンタ装置1に接続されている場合は、そのまま有線接続部31aを介して通信を開始する。
一方、有線接続部31aを介してセンタ装置1に接続されていない場合(有線接続部31aが他の機器に接続されていない場合、又は接続されていても、接続先がセンタ装置1ではないかセンタ装置1の電源がオフとなっている場合)は、制御部32は、無線接続部31bを介してセンタ装置1との通信を試行する。ここでセンタ装置1がコントローラ装置2との無線通信を開始すれば、制御部32は、指示操作の内容を表す情報などを無線にて、センタ装置1へ送出することになる。
このように、コントローラ装置2をユーザが把持したときに、センタ装置1側で当該コントローラ装置2を検出することとなる。
なお、センタ装置1は、利用者の操作により電源がオフとされている場合に、有線コネクタ部41や無線通信部42といった通信インタフェースへの電源供給を維持しておき、コントローラ装置2からの入力を受けたときに、センタ装置1各部への電源供給を開始して(つまり、オンの状態となるようにして)もよい。
この場合において、センタ装置1は、有線コネクタ部41や無線通信部42等の通信インタフェースの一部、例えば無線通信部42に電源供給をしておいてもよい。このようにすると、コントローラ装置2とセンタ装置1とが有線にて接続されている場合、コントローラ装置2が起動してもセンタ装置1との有線での通信ができず、無線での通信を開始する。これによりセンタ装置1がオンとなり、コントローラ装置2は、センタ装置1との間の有線接続を検出して、有線での通信に切り替える(つまり、有線で指示操作の情報を出力するようになる)。
また無線通信としてブルートゥースのように、一方がマスタとなって通信制御を行う方法を採用しているときに、上記のようにセンタ装置1がオフとなっており、無線通信部42に電源が供給されている場合、コントローラ装置2が、まずマスタとなって通信を開始し、センタ装置1がオンの状態となった後に、センタ装置1がマスタの権限を取得して、コントローラ装置2がスレーブとなって通信を開始する。
[コントローラ装置の動作]
さらに、コントローラ装置2の制御部32は、有線接続され、電源供給がされているときに、有線接続先の機器認証結果に基づいて、ユーザの指示操作の情報を有線接続部31aを介して送出するか、無線接続部31bを介して送出するかを選択し、選択された有線接続部31aまたは無線接続部31bを介してユーザの指示操作の情報をセンタ装置1へ送出することとしてもよい。
これは、例えばコントローラ装置2がUSBにてパーソナルコンピュータ(センタ装置1以外のUSB対応装置)に接続された場合にも、指示操作の信号をセンタ装置1へと送出できるようにするためである。この場合における機器認証は、USBにおける機器認証処理など、接続インタフェースの通常の接続シーケンスにおいて取得されるものを用いて行ってもよい。
このように本実施の形態によると、家庭用ゲーム機など、複数の利用者がそれぞれの入力装置等、コントローラ装置2を用いる場合の種々の事情に配慮した処理をセンタ装置1が行うことができるようになる。
[コントローラ装置の別の例]
また、このコントローラ装置2は、図2に示した外観例に限られるものではない。以下、コントローラ装置2の別の例について説明する。図11,図12は、以下に説明する別の例のコントローラ装置2の斜視図であり、図13は、その平面図である。このコントローラ装置2は、図13に示すように、略三日月状の本体70を有する。また、この本体の中央部手前側には、2つのアナログ操作部23L,Rを設けるための円柱状突起71L,Rが形成されている。
この三日月状の本体70の端部は、いわゆる把持部20L,Rとなっている。このコントローラ装置2では、ユーザが把持部20をそれぞれの手の中指、薬指、小指で抱えて保持したときに、把持部20がユーザ手前側に突出する程度にやや長めに形成されている。また、ユーザがこの把持部20を、それぞれの手の中指、薬指、小指で抱えて保持したときに、人差し指にて操作可能な位置、本体外周側に、4つのボタン28(28R1,R2)、29(29L1,L2)を設けている。またこのとき、親指にて操作可能な位置に、操作部21,22及び/又はアナログ操作部23が設けられている。
このように支持可能なコントローラ装置2によれば、ユーザは、肘から手の甲を結ぶ線を直線にしたまま操作を行うことができ、手首が自然に伸びるようになって、長時間の操作による手首の疲労感を軽減できる。
また、把持部20がやや長めに形成されていることにより、一方の把持部20を片手で保持する場合も、コントローラ装置2を確実に把持でき、操作性が向上する。
本体70は、全体に丸みを帯びて形成され、内部に、図3に示した各部を収納している。また、この本体70には、図2に示したものとほぼ同様に、操作部21,22が設けられている。これら操作部21,22は、それぞれ四方向に上下左右の操作が可能なように配置されている。また、この本体70には、図2に示した各ボタンに加え、ホームボタン27が設けられている点が異なる。このホームボタン27が押下されたときには、センタ装置1側では、所定のホーム画面(ゲームの始動時の画面)や、ゲームを終了して、所定のモードに移行するか否かを問い合わせる画面を提示するなどの処理を行う。
さらに、図13に示すように、このコントローラ装置2においては、操作部21,22の配置方向が把持部20L、Rの方向にそれぞれ傾いて配置されている。例えば操作部21a,bのボタンの中心を結ぶ線分D、及び操作部22a,bのボタンの中心を結ぶ線分Eが、コントローラ装置2の中心線Cの方向ではなく、把持部20の延長方向に従ってずれて配置されている。
このように、操作部21,22の全体が把持部20の方向に向かって傾いて配置されることで、把持部20を握った状態での操作が容易になる。
また、図13に示すように、ボタン28とアナログ操作部23Rとはコントローラ装置2の中心線Cに平行な直線G上に配置され、同様に、ボタン29とアナログ操作部23Lとはコントローラ装置2の中心線Cに平行な直線F上に配置される。このこともまた、把持部20を握ったときの操作性を向上させる。同様に、ボタン28,29が本体の両肩部分に配置されており、ユーザが把持部20を握ったときの操作性を向上できる。
さらにこのコントローラ装置2によれば、操作部21,22等を配する本体表面を曲面状にしたことで、操作部21,22がコントローラ装置2本体からより突出させた状態とすることができ、操作部21,22のストロークを深くして操作性を向上できる。
ここでホームボタン27は、LED(発光ダイオード)等を内蔵してもよい。例えば、コントローラ装置2が有線にてセンタ装置1に接続されているときと、無線にてセンタ装置1に接続されているときとで、異なる色(例えば無線では黄色、有線では青色など)で発光するようにしてもよい。また、電源がオフとなっているときには当該LEDを消灯制御してもよい。また、通信が行われているときには点滅制御することとしてもよい。このようにすると、LEDをアクセスランプとして用いることができる。
さらに、センタ装置1からの指示に基づいて、このLEDを発光制御してもよい。センタ装置1は例えば、ユーザの指定(ゲーム中のプレイすべきユーザを告知するなど)、センタ装置1の状態(ゲームのプレイ中か、ビデオ等のコンテンツを再生している状態かなどの別)ごとに、LEDの色を異ならせてもよい。
センタ装置1は、例えば、無線通信が可能となった順序で、各コントローラ装置2に対して相異なる識別子を割り当て、各識別子ごとに予め定めた色でLEDを発光制御させるようにしてもよい。これにより、例えば、複数のコントローラ装置2が存在する場合に、どのコントローラ装置2によって指示操作が可能となるのかをユーザが識別できるようになる。
さらにこの発光制御は、ゲームプログラム側にて、ゲームのプレイヤごとに異なる色となるよう行ってもよい。例えば、第1プレイヤは赤、第2プレイヤは青などで点灯させることが考えられる。この場合、ゲームプログラムにより、点灯色を選択させてもよい。これによって、例えばゲーム中での制御対象のキャラクタを表すカーソル色と、コントローラ装置2のLEDの点灯色とを一致させて、ユーザのゲーム操作性を高めることができる。
さらにこのLEDは、コントローラ装置2に内蔵されている電源部37の充電状態によって発光の態様(色や、点滅などの制御)を変更してもよい。例えば、満充電の状態であれば青色に発光させ、充電量が所定量未満になると赤色に発光させ、さらに充電を要する量になると点滅させるなどの態様がある。
また充電中は、緑色の点滅などとし、充電が完了すると緑色で点灯した状態などとして、電源部37の状態に応じた色での点灯/点滅ないし消灯制御を行うこととしてもよい。
なお、ここではホームボタン27にLEDを内蔵することとして説明したが、このLEDは、別の場所、例えばスタートボタン24近傍や、USB端子近傍に配置してもよい。またこれら各所にそれぞれ配置してもよい。さらにコントローラ装置2内に複数内蔵して、コントローラ装置2全体の色を制御してもよい。
また、ここでは多色LEDであるとして説明したが、点滅の方法(明滅長さやパターン)を変更することで各状態を表現してもよく、多色LEDである必要は、必ずしもない。
また、このコントローラ装置2は、図14,15に示すように、床や机上に載置したときに、支持脚61,62により、操作部21,22を床や机の面に対して略平行に維持される。図14,15は、コントローラ装置2の側面図である。
さらにこの状態では、把持部20がパームレストとしても作用し、ユーザは、この把持部20に手のひらを接触させた状態で操作を行うことができ、手の姿勢を自然な状態に維持でき、長時間の操作による疲労感を軽減できる。
さらに、図14に示すように、ボタン28,29は、本体上面側に形成された曲面に配置され、ボタン28R1,29L1の押下方向Xと、ボタン28R2,29L2の押下方向Yとはやや角度が異なるようになっている。これにより、人差し指がどちらのボタンに掛かっているのかを、ユーザが容易に知ることができる。図14,15は、コントローラ装置2の側面図である。
図16,17は、コントローラ装置2の上面図である。この図16,17に示すように、有線通信部31aとしてのUSBポートが、コントローラ装置2の底面側に配されている。これにより、コントローラ装置2を床や机上に載置したときに、USBの線によってコントローラ装置2が吊り上げられた状態となることがない。また、このように底面側にUSBポートを配したことで、重量の重心が底面側になり、コントローラ装置2を安定して床などに置いておくことができる。
図18は、コントローラ装置2のA−A′での断面図であり、図19は、コントローラ装置2の底面図である。この断面図で示すように、コントローラ装置2の左右方向に伸びる凹部63が支持脚61に隣接して配置される。この凹部63には、指を掛けることができ、ユーザがコントローラ装置2を支持できる。なお、図18では、コントローラ装置2の内部の構造を省略して図示している。