本発明は、コンピュータ、および、記録媒体に関し、特に、複数の操作部間の対応付けを行う方法に関する。
従来、使用者がゲーム空間内の所定のキャラクタを操作するための操作部であるコントローラが開発されている。以下では、使用者がコントローラで操作するキャラクタを「プレイヤキャラクタ」という。プレイヤキャラクタに対する複雑な操作を可能にするために、コントローラには、多数のボタンおよびスティック(レバー)が設けられている。また、より操作性をよくするために、2種類のコントローラを同時に用いるゲームおよびゲーム装置も開発されている。
例えば、特開2009−72319号公報には、2種類のコントローラを同時に用いてゲームを行うことができるゲーム装置が記載されている。当該公報によると、一方の種類のコントローラ(以下、「メインコントローラ」という。)に他方の種類のコントローラ(以下、「サブコントローラ」という。)をケーブルで接続することによって、サブコントローラに設けられたボタンなどの入力デバイスを、メインコントローラに設けられた入力デバイスと同様に扱うことができる。したがって、サブコントローラとメインコントローラとを一対のコントローラとして扱うことができる。
しかしながら、接続しているケーブルが、使用者の操作の邪魔になる場合がある。メインコントローラは、内蔵されている加速度センサおよび撮像素子を用いてメインコントローラ自体の動きおよび傾きを操作入力とすることもできるので、使用者によって振り回して操作される場合がある。この場合特に、接続しているケーブルを使用者が邪魔に感じるおそれがある。
これを防ぐために、メインコントローラとサブコントローラとをケーブルで接続するのではなく、それらをそれぞれゲーム装置と無線接続する方法が考えられる。
しかしながら、無線接続する場合、どのメインコントローラとどのサブコントローラとが一対となるかを、ゲーム装置に認識させなければならない。しかし、それぞれゲーム装置に無線接続されているメインコントローラとサブコントローラとを対応付ける方法は、今まで開発されていなかった。
また、各コントローラがゲーム装置にそれぞれ有線接続されている場合でも、メインコントローラとサブコントローラとを対応付ける必要がある。また、ゲーム装置以外のコンピュータにおいても、接続される操作部が複数あって、操作部間で直接接続を行うことなしに操作部を他の操作部に対応付ける必要がある場合もある。
本発明は上記した事情のもとで考え出されたものであって、コンピュータを操作するための操作部が複数ある場合に、操作部間で直接接続を行うことなしにある操作部を他の操作部に対応付ける方法を提供することをその目的としている。
本発明の第1の側面によって提供されるコンピュータは、操作のための1種類以上の操作部を2以上接続することができるコンピュータであって、接続中の前記操作部のそれぞれから、前記各操作部を識別するための情報である識別情報及び前記各操作部の操作に応じて出力される情報である操作情報を受信する受信部と、前記接続中の操作部から受信した前記識別情報と予め設定されている対応付条件とに基づいて、前記接続中の操作部同士の対応付けの設定を行う対応付設定部と、対応付けられた前記操作部のそれぞれから受信した前記操作情報に基づいて同一の処理対象に対する処理を実行する実行部とを備えている。
なお、本発明における「接続」には、ケーブルなどによる有線接続のみではなく、無線通信などによる無線接続も含まれている。操作部の「操作」には、操作部に設けられているボタンを押圧する操作、および、スティック(レバー)を傾けたり押し込んだりする操作が含まれる。また、操作部を移動させたり操作部の姿勢を変化させることも「操作」に含まれる。さらに、操作部を起動する操作、すなわち、電源ボタンを押圧(または切り替え)する操作なども、「操作」に含まれる。また、本発明における「対応付条件」とは、操作部同士の対応付けの設定を行うための条件であって、例えば、「第1の種類の操作部が1台のみ接続されているところに第2の種類の操作部が接続された場合、当該接続された第2の種類の操作部と第1の種類の操作部との対応付けの設定を行う」、「第1の種類の操作部が2台以上接続されているところに第2の種類の操作部が接続された場合、所定の操作が行われた第1の種類の操作部と当該接続された第2の種類の操作部との対応付けの設定を行う」という内容の条件である。
本発明の好ましい実施の形態においては、前記対応付設定部は、前記接続中の操作部のうち、予め設定されている選択条件に基づいて選択した1の操作部に対し、この1の操作部に対して対応付けの設定が可能な他の操作部を対応付ける設定を行う。
本発明の好ましい実施の形態においては、前記対応付設定部は、前記接続中の操作部のうち、1の操作部に対して対応付けの設定が可能な他の操作部が2以上存在した場合、前記他の2以上の操作部のうち、所定の操作情報の送信があった操作部を、前記1の操作部に対応付ける設定を行う。
本発明の好ましい実施の形態においては、前記コンピュータを、前記他の操作部が2以上存在した場合、前記1の操作部に対応付けたい操作部に前記所定の操作をするように使用者に促すための情報を第1の報知部に報知させる第1報知制御部としてさらに機能させる。
本発明の好ましい実施の形態においては、前記コンピュータを、1の操作部に対して対応付ける操作部が接続されていない場合、前記1の操作部に対応付けたい操作部を選択するように使用者に促すための情報を第2の報知部に報知させる第2報知制御部としてさらに機能させる。
本発明の好ましい実施の形態においては、前記対応付設定部は、前記接続中の操作部のうち、対応付けの設定がされていない操作部のみ同士の対応付けの設定を行う。
本発明の好ましい実施の形態においては、前記対応付設定部は、対応付けの設定が既に行われた操作部が存在する場合、第2の所定の操作情報の送信があった操作部も対応付けの設定対象とする。
本発明の好ましい実施の形態においては、前記選択条件は、複数の操作部の種類のうち所定の種類の操作部であることを含む。
本発明の好ましい実施の形態においては、前記選択条件は、複数の接続中の操作部のうち接続が早かった操作部から順に選択することを含む。
本発明の好ましい実施の形態においては、前記操作部には2種類の操作部があり、前記対応付条件は、一方の種類の操作部と他方の種類の操作部とを対応付けることを含む。
本発明の好ましい実施の形態においては、前記実行部は、ゲーム空間および当該ゲーム空間内で動作するオブジェクトを生成し、前記同一の処理対象として前記オブジェクトの動作処理を実行する。
本発明の好ましい実施の形態においては、前記接続は、無線通信による接続である。
本発明の第2の側面によって提供される記録媒体は、操作のための1種類以上の操作部を2以上接続することができるコンピュータを、接続中の前記操作部のそれぞれから、前記各操作部を識別するための情報である識別情報及び前記各操作部の操作に応じて出力される情報である操作情報を受信する受信部と、前記接続中の操作部から受信した前記識別情報と予め設定されている対応付条件とに基づいて、前記接続中の操作部同士の対応付けの設定を行う対応付設定部と、対応付けられた前記操作部のそれぞれから受信した前記操作情報に基づいて同一の処理対象に対する処理を実行する実行部として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体である。
本発明の好ましい実施の形態においては、前記対応付設定部は、前記接続中の操作部のうち、予め設定されている選択条件に基づいて選択した1の操作部に対し、この1の操作部に対して対応付けの設定が可能な他の操作部を対応付ける設定を行う。
本発明の好ましい実施の形態においては、前記対応付設定部は、前記接続中の操作部のうち、1の操作部に対して対応付けの設定が可能な他の操作部が2以上存在した場合、前記他の2以上の操作部のうち、所定の操作情報の送信があった操作部を、前記1の操作部に対応付ける設定を行う。
本発明の好ましい実施の形態においては、前記コンピュータを、前記他の操作部が2以上存在した場合、前記1の操作部に対応付けたい操作部に前記所定の操作をするように使用者に促すための情報を第1の報知部に報知させる第1報知制御部としてさらに機能させる。
本発明の好ましい実施の形態においては、前記コンピュータを、1の操作部に対して対応付ける操作部が接続されていない場合、前記1の操作部に対応付けたい操作部を選択するように使用者に促すための情報を第2の報知部に報知させる第2報知制御部としてさらに機能させる。
本発明の好ましい実施の形態においては、前記対応付設定部は、前記接続中の操作部のうち、対応付けの設定がされていない操作部のみ同士の対応付けの設定を行う。
本発明の好ましい実施の形態においては、前記対応付設定部は、対応付けの設定が既に行われた操作部が存在する場合、第2の所定の操作情報の送信があった操作部も対応付けの設定対象とする。
本発明の好ましい実施の形態においては、前記選択条件は、複数の操作部の種類のうち所定の種類の操作部であることを含む。
本発明の好ましい実施の形態においては、前記選択条件は、複数の接続中の操作部のうち接続が早かった操作部から順に選択することを含む。
本発明の好ましい実施の形態においては、前記操作部には2種類の操作部があり、前記対応付条件は、一方の種類の操作部と他方の種類の操作部とを対応付けることを含む。
本発明の好ましい実施の形態においては、前記コンピュータはゲーム装置であって、前記実行部は、ゲーム空間および当該ゲーム空間内で動作するオブジェクトを生成し、前記同一の処理対象として前記オブジェクトの動作処理を実行する。
本発明の好ましい実施の形態においては、前記接続は、無線通信による接続である。
図1Aは、ペアリングの手順を説明するための図である。
図1Bは、ペアリングの手順を説明するための図である。
図1Cは、ペアリングの手順を説明するための図である。
図1Dは、ペアリングの手順を説明するための図である。
図2は、本実施形態に係るゲーム装置を示す構成図である。
図3Aは、コントローラ(メインコントローラ)を説明するための図である。
図3Bは、コントローラ(サブコントローラ)を説明するための図である。
図4は、コントローラの内部構成を示す構成図である。
図5は、コントローラ割当テーブルの一例を説明するための図である。
図6は、ペアリング処理を説明するためのフローチャートである。
図7は、ペアリングの手順を説明するための図である。
図8は、ペアリングの手順を説明するための図である。
図9は、ペアリングの手順を説明するための図である。
図10は、ペアリングの手順を説明するための図である。
図11は、ペアリングの手順を説明するための図である。
図12は、ペアリングの手順を説明するための図である。
図13は、ペアリングの手順を説明するための図である。
図14は、ペアリングの手順を説明するための図である。
以下、本発明の好ましい実施の形態として、本発明に係るプログラムをゲームソフトに適用した場合について、添付図面を参照して具体的に説明する。以下の説明では、家庭用ゲーム装置(以下、「ゲーム装置」とする。)において、アクションゲームを進行している場合を例として説明する。
本実施形態に係るアクションゲームは、三次元仮想ゲーム空間上でプレイヤキャラクタが敵キャラクタと戦い、敵キャラクタを倒すことにより進行する。ゲーム装置には、Bluetooth(登録商標)技術を用いた短距離無線通信によって、2種類のコントローラを接続することができる。なお、ゲーム装置としては、例えばPlayStation(登録商標)3などがある。各コントローラは、最初に使用される際に、ゲーム装置本体(「ゲーム装置」にはコントローラも含まれているので、コントローラの接続の対象として記載する場合は、「ゲーム装置本体」または単に「本体」という。)との間で認証処理が行われて、接続相手として認定される。認定された後は、当該コントローラの電源をオンにしたときに自動的に認証処理が行われて接続が確立されるようになる。本実施形態においては、合計7台までのコントローラがゲーム装置本体に接続される。各コントローラは、操作信号などの送信データを送信する際に、識別情報(識別番号などのコントローラを識別するための情報)およびコントローラの種類情報などを付与して送信する。送信データを受信したゲーム装置本体は、付与された識別情報によって、当該送信データがいずれのコントローラから送信されたものであるかを認識する。
なお、ゲーム装置本体と各コントローラとの接続は、これに限定されず、赤外線を利用したIrDA通信方式などの無線通信による接続であってもよいし、ケーブルなどを用いた有線接続であってもよい。なお、コントローラ毎に異なる周波数で通信を行う場合または有線接続の場合は、キャリア周波数または通信線の接続端子によってデータ通信の相手をゲーム装置本体が認識できる。すなわち、送信データがいずれのコントローラから送信されたものであるかを認識することができる。この場合、当該キャリア周波数またはどの接続端子に接続されているかということが識別情報とみなされる。したがって、コントローラは送信データに別途識別情報を付与する必要はない。
使用者は、2種類のコントローラを用いて、プレイヤキャラクタを操作する。2種類のコントローラのうちの一方は、主にプレイヤキャラクタに武器の操作を行わせるために、使用者が右手に持って操作するものである。当該コントローラを「メインコントローラ」という(以下では「MC」と省略する場合がある。)。他方のコントローラは、主にプレイヤキャラクタに移動動作を行わせるために、使用者が左手に持って操作するものである。当該コントローラを「サブコントローラ」という(以下では「SC」と省略する場合がある。)。
使用者がメインコントローラまたはサブコントローラを単独で用いても、使用者はプレイヤキャラクタを適切に操作することができない。したがって、使用者が両方のコントローラを用いるために、ゲーム開始時にこれらが起動されている必要がある。また、1つのメインコントローラには1つのサブコントローラが対応付けられる必要がある。以下では、メインコントローラとサブコントローラとを対応付けることを「ペアリング」という。ペアリングによって対応付けられたメインコントローラとサブコントローラとを使用することで、使用者は1体のプレイヤキャラクタを操作することができる。
図1A〜Dは、ペアリングの手順を説明するための図であり、2つのサブコントローラSC1,SC2のみが起動されている状態でゲームを開始しようとした場合の例を示している。
図1Aは、サブコントローラSC1,SC2が起動されており、いずれのメインコントローラも起動されていない状態を示している。なお、この状態で使用者がゲームを開始しようとした場合に、メインコントローラを起動するように促すメッセージが表示画面Mに表示されるようにしてもよい。図1Bは、図1Aの状態で使用者PがメインコントローラMC1の電源ボタンを押圧したので、メインコントローラMC1が起動された状態を示している。このとき、2つのサブコントローラSC1,SC2がすでに起動されているので、メインコントローラMC1にペアリングするサブコントローラを選択するように促すメッセージが表示画面Mに表示される。以下、当該選択を促す画面表示を「催促画面」という。本実施形態では、サブコントローラのLボタン(後述する)の押圧をペアリングのための判断に利用しているので、催促画面にはLボタンの押圧を促すメッセージが表示される。なお、当該判断に利用される操作ボタンは限定されず、いずれの操作ボタンにしてもよい。また、当該判断に利用されるのは操作ボタンの押圧に限定されず、任意の操作としてもよい。例えば、スティック(レバー)を所定の方向に傾ける操作が当該判断に利用されるようにしてもよい。また、サブコントローラが起動されていない状態においては、サブコントローラが起動されることを、当該判断に利用するようにしてもよい。
図1Cは、表示画面Mに表示された催促画面を見た使用者Pが、サブコントローラSC1のLボタンを押圧した状態を示している。図1Dは、メインコントローラMC1とサブコントローラSC1とのペアリングが完了した状態を示している。なお、図1A〜Dに示すペアリングの手順においては、「メインコントローラMC1」が本発明の「1の操作部」に相当し、「サブコントローラSC1」および「サブコントローラSC2」が本発明の「他の操作部」に相当する。また、「Lボタンの押圧」によって送信された操作情報が本発明の「所定の操作情報」に相当し、「催促画面」の表示が本発明の「第1の報知部」による報知に相当する。また、「所定の種類の操作部」である「メインコントローラMC1」を「1の操作部」に選択することが、本発明の「選択条件」に相当する。
なお、本実施形態では、図1Aにおいていずれのサブコントローラも起動されていない場合、図1Bの催促画面が表示された後、いずれかのサブコントローラが起動されたときに、当該起動されたサブコントローラとメインコントローラMC1とがペアリングされる。これは、当該起動されたサブコントローラをメインコントローラMC1にペアリングしたいと使用者Pが考えていると推測されるので、サブコントローラのLボタンの押圧を待つ必要がないからである。また、この場合、催促画面にLボタンの押圧を促すメッセージを表示する代わりに、サブコントローラを起動するように促すメッセージを表示するようにしてもよい。この場合においては、「催促画面」の表示が本発明の「第2の報知部」による報知に相当する。なお、この場合であっても、サブコントローラのLボタンの押圧を待つようにしてもよい。
また、本実施形態では、図1AにおいてサブコントローラSC1のみが起動されている(サブコントローラSC2は起動されていない)場合、メインコントローラMC1が起動されると、催促画面が表示されることなく、メインコントローラMC1とサブコントローラSC1とがペアリングされる。これは、起動されているサブコントローラがサブコントローラSC1のみなので、使用者Pに選択されるまでもなく、対応付けられるサブコントローラがサブコントローラSC1に限定されるからである。これにより、使用者Pの選択操作が軽減される。
また、本アクションゲームは2名以上で同時にプレイすることができる。この場合、2名の使用者がそれぞれ自分のプレイヤキャラクタを操作するために、メインコントローラとサブコントローラとがそれぞれ2台ずつゲーム装置に接続されることになる。この場合、各使用者が使用するメインコントローラのそれぞれに異なるサブコントローラがペアリングされる必要がある。本実施形態においては、ゲーム装置に合計7台までコントローラを接続することができるので、3名が同時にプレイするために3組のペアリングを行うことができる。なお、ゲーム装置に接続されるコントローラは7台に限られるものではなく、また、ペアリングも3組に限られるものではない。ペアリングを行うためにゲーム装置が行う処理(以下、「ペアリング処理」という。)の例は後述する。また、様々な状態でペアリング処理が行われたときの、具体的なペアリングの手順についても後述する。
まず、本実施形態のハード構成について説明する。
図2は、本実施形態に係るゲーム装置を示す構成図である。ゲーム装置1は、本体11、およびコントローラ12a,12bを備えている。コントローラ12a,12bは短距離無線通信によって本体11に接続されている。なお、図2においては、コントローラ12a,12bがそれぞれ1台ずつ接続されている状態を示しているが、それぞれ複数台ずつ接続することもできる。本体11には、モニタ13が専用のケーブルによって接続される。また、本体11には、ゲームプログラムおよびゲームデータが記録されているディスク14が装着さる。さらに、本体11には、必要に応じてゲームデータを保存するためのメモリカード15も装着される。
本体11は、制御部111、描画処理部112、音声処理部113、ディスクドライブユニット114、メモリカード接続ユニット115、I/Oインターフェース部116、通信処理部117、および信号送受信部118を備えている。制御部111には、描画処理部112、音声処理部113、I/Oインターフェース部116、および通信処理部117が接続されている。また、I/Oインターフェース部116には、ディスクドライブユニット114、メモリカード接続ユニット115、信号送受信部118、およびモニタ13が接続されている。
ゲーム装置1では、上記アクションゲームのソフトウェアが記録されたディスク14がディスクドライブユニット114に装着される。このディスクドライブユニット114によって、ディスク14内のゲームプログラムおよびゲームデータが制御部111内のRAM111c(後述)に読み込まれる。当該ゲームプログラムがCPU111a(後述)によって実行されることにより、使用者はゲーム内容を楽しむことができる。使用者は、コントローラ12a,12b(後述)を操作することによりプレイヤキャラクタを操作し、ゲームを進行させることができる。
ディスク14内のゲームデータには、プレイヤキャラクタおよび敵キャラクタなどのキャラクタデータ、キャラクタおよび背景などの画像データ、効果音などの音声データ、並びに、ゲーム進行および描画の際に参照される各種テーブルなどが含まれる。
制御部111は、本体11の全体動作を制御するマイクロコンピュータを有している。マイクロコンピュータは、CPU111a、ROM111b、およびRAM111c等からなる。これらは、それぞれバスラインで接続されている。
CPU111aは、RAM111cに読み込まれたゲームプログラムを実行することより、ゲーム進行を統括的に制御する。より具体的には、使用者の操作による操作信号がコントローラ12a,12bから信号送受信部118を介して入力されると、CPU111aは、ゲームプログラムにしたがってその操作信号に対する所定のゲーム進行処理を行う。CPU111aは、その処理結果に基づいて、例えば三次元空間を表現する二次元画像(以下、「ゲーム画像」という)を、モニタ13の表示画面に表示させる。また、CPU111aは、処理結果に基づいて、効果音などの音声を、モニタ13のスピーカ13a(後述)に出力させる。
本実施形態において、CPU111aは、コントローラ12aまたは12bが最初に起動されたときに、当該コントローラの認証処理を行って接続相手として認定する。当該認証処理は、Bluetooth(登録商標)技術における認証処理として一般的なものなので、詳細な説明は省略する。また、CPU111aは、コントローラ12aとコントローラ12bとの対応付けのための処理であるペアリング処理を行う。ペアリング処理の詳細については後述する。
ROM111bには、ゲーム装置1に基本的な機能を発揮させるための基本プログラムが記憶されている。基本プログラムには、ディスク14に記録されたゲームプログラムおよびゲームデータを読み出すディスクローディング機能のためのプログラム等が含まれる。CPU111aは、ディスクドライブユニット114にディスク14が装着されると、ROM111bの基本プログラムにしたがってディスクドライブユニット114を動作させ、ディスク14からゲームプログラムおよびゲームデータをRAM111cに読み込み、ゲーム装置1をゲーム開始状態に設定する。
RAM111cは、ディスク14から読み込まれたゲームプログラムおよびゲームデータが格納されるエリアと、CPU111aがゲームプログラムを実行するためのワークエリアとを提供する。
ゲームプログラムは、例えばゲーム進行プログラムおよびグラフィック制御プログラム等の複数のプログラムが組み合わされて構成されている。ゲーム進行プログラムは、モニタ13に表示されているプレイヤキャラクタPCの動作をコントローラ3,4からの操作信号に基づいて制御するプログラムである。グラフィック制御プログラムは、モニタ13に表示すべきゲーム画像を制御するプログラムである。なお、本実施形態において、RAM111cは、後述するコントローラ割当テーブル(図5参照)を記憶している。
CPU111aは、コントローラ12a,12bからの操作信号に基づき、必要に応じてディスク14からゲームプログラムおよび画像データ等をRAM111cに読み込む。CPU111aは、これらのデータを処理したりゲームプログラムを実行したりすることにより、モニタ13に表示すべきゲーム画像の内容を決定する。
描画処理部112は、描画処理に必要な各種の演算処理を行う。CPU111aは、例えば、1/60秒毎に、描画処理部112に描画指令を出力する。このとき、CPU111aは、モニタ13に表示すべき画像を決定し、その画像の描画に必要な画像データ(キャラクタなどのオブジェクトのポリゴンデータ、および背景データ)、および光源データ等をRAM111cから読み出して描画処理部112に供給する。また、CPU111aは、各キャラクタの位置データ、および、コントローラ12a,12bから入力される操作信号を描画処理部112に供給する。
描画処理部112は、これらの画像データ等および操作信号に基づいて、描画に必要なデータ(各オブジェクトおよび背景の位置関係、モニタ13の画面上における各オブジェクトを構成するポリゴンの座標、各ポリゴンに対応するテクスチャ、並びに各ポリゴンの反射特性等のデータ)を演算し、その演算結果に基づいて描画処理部112内のvideo RAM(図示せず)に1コマ(1フレーム)の表示画面の画像データを作成する。表示画面の画像データは、例えば、1/60秒毎に映像信号としてモニタ13に出力されて表示される。
音声処理部113は、効果音等の音声を発生させる処理に必要な各種の演算処理を行う。CPU111aは、モニタ13のスピーカ13aから出力すべき効果音若しくはBGMの音響内容を決定すると、音声処理部113に音声指令を出力する。音声処理部113は、音声指令に基づき、RAM111cから効果音もしくはBGMの音声データを読み出す。さらに、音声処理部113は、この音声データに所定の加工処理とデジタル/アナログ変換処理とを施した後、スピーカ13aに出力する。
ディスクドライブユニット114は、CPU111aからのローディング指令(ローディングすべきゲームプログラムとゲームデータを指定した読出指令)に基づき、ディスク14に記録されたゲームプログラムおよびゲームデータを読み出す。
メモリカード接続ユニット115は、ゲーム進行に関する情報をメモリカード15に書き込んだり、読み出したりするためのユニットである。CPU111aは、ゲーム進行中またはゲーム終了時に使用者から「データのセーブ」が指令されると、RAM111cのワークエリアに記録されたゲーム進行に関する情報(この情報には、例えば、使用者が設定したゲームキャラクタの種類、獲得したポイントおよびアイテムなどの各種の特典などの情報が含まれる。)を、メモリカード接続ユニット115を介してメモリカード15に記録する。また、CPU111aは、メモリカード15に記録されたゲーム進行に関する情報を、ゲーム開始前にRAM111cに記録する。
I/Oインターフェース部116は、ディスクドライブユニット114またはメモリカード接続ユニット115によって読み出されたゲームプログラムおよびゲームデータ、並びに、信号送受信部118が受信したコントローラ3,4からの操作信号を制御部111に伝送する。また、I/Oインターフェース部116は、制御部111、描画処理部112および音声処理部113からの映像信号および音声信号等をモニタ13に伝送する。
通信処理部117は、ゲーム装置1がネットワーク回線2を介して他のゲーム装置1と通信を行う場合に、データの送信および受信を行うための制御を行う。具体的には、通信処理部117は、コントローラ12a,12bから入力される操作信およびCPU111aから出力される信号をネットワーク回線2を介して他のゲーム装置1に送信する。また、通信処理部117は、ネットワーク回線2を介して他のゲーム装置1から送信される信号を受信してCPU111aに入力する。
信号送受信部118は、コントローラ12a,12bから短距離無線通信により送信される信号を受信する。コントローラ12a,12bからの信号には、コントローラ12a,12bに設けられた操作ボタンの操作情報の他に、コントローラ12aに設けられた各種センサ122(後述)による検出データが含まれる。CPU111aは、これらコントローラ12a,12bから送信される信号によりゲームを進行させる。また、信号送受信部118は、コントローラ12a,12bに各種信号(例えば、コントローラ番号(後述)を送信するための信号など)を送信する。
モニタ13は、本体11から送られてきた映像信号に応じてゲーム進行状態を示すゲーム画像を映し出したり、本体11から送られてきた音声信号に応じてスピーカ13aから効果音等の音声を出力するための装置である。モニタ13は、映像信号および音声信号を入力するための外部入力端子を備えた、例えばテレビジョン受像機によって構成されている。
ディスク14は、例えばDVD−ROM又はCD−ROM等の光ディスクである。ディスク14には、ゲームプログラム、そのゲームプログラムの実行に必要な種々のデータ、および画像データが記録されている。メモリカード15は、例えばフラッシュメモリ等のデータの書き換えが可能な不揮発性の記録媒体である。RAM111cのワークエリアに記録された情報は、ゲーム装置本体11の電源を切ると消滅する。したがって、CPU111aは、当該情報のうち消滅させずに残しておくべきゲーム進行に関する情報をメモリカード15に記録する。
ゲーム装置1は、ネットワークアダプタ16を介して、インターネット回線などのネットワーク回線2に接続することができる。この場合、ネットワーク回線2を介して、複数のゲーム装置1間でゲームを行うこともできる(いわゆる「オンラインゲーム」)。本実施形態では、ゲーム装置1単独で行うゲームについて説明しているが、このようなオンラインゲームでも本発明を適用することができる。
コントローラ12a,12bは、プレイヤキャラクタを動作させたり、ゲームに関する各種の設定を行ったりするために使用者によって操作される。使用者によってコントローラ12a,12bが操作されると、その操作信号が制御部111に伝送され、モニタ13に表示されたプレイヤキャラクタが所定の動作を行う。所定の動作としては、例えば、走る、しゃがむ、ジャンプする等の移動動作および武器を使用して相手を攻撃する攻撃動作がある。コントローラ12aは、主にプレイヤキャラクタの武器の使用のための操作に用いられる。コントローラ12bは、主としてプレイヤキャラクタの移動のための操作に用いられる。コントローラ12aが上述したメインコントローラに該当し、コントローラ12bが上述したサブコントローラに該当する。
図3Aおよび図3Bは、コントローラ12a,12bを説明するための図である。図3Aはコントローラ12a(以下では、「メインコントローラ12a」という。)を示しており、図3Bはコントローラ12b(以下では、「サブコントローラ12b」という。)を示している。
図3Aに示すように、メインコントローラ12aは、電源ボタン12a1、操作ボタン12a2、および発光部12a3を備えている。また、図示しないが内部に各種センサが内蔵されている。電源ボタン12a1は、押圧される毎にメインコントローラ12a自体の電源のオン状態とオフ状態とを切り替えるためのボタンであり、メインコントローラ12aを起動および停止させる。本実施形態では、当該電源ボタン12a1が押圧されてメインコントローラ12aが起動されたときに、後述するペアリング処理が開始される。操作ボタン12a2は、射撃のための照準をゲーム画面上に表示させたり、プレイヤキャラクタに射撃をさせたり、メニューおよびマップを開いたりするためのものである。発光部12a3は、所定の場合に発光する部材である。発光部12a3は、ゲーム装置1に備えられているカメラ(図示しない)によって撮像されることで、メインコントローラ12aの位置などを検出するために用いられる。各種センサは、メインコントローラ12aの回転および傾きを検出する。これら検出された情報が、メインコントローラ12aの動きおよび姿勢を識別するための操作入力である。例えば、使用者は、メインコントローラ12aを傾けたり移動することによって、ゲーム画面上に表示された照準を移動することができる。
図3Bに示すように、サブコントローラ12bは、電源ボタン12b1および操作ボタン等12b2を備えている。電源ボタン12b1は、押圧される毎にサブコントローラ12b自体の電源のオン状態とオフ状態とを切り替えるためのボタンであり、サブコントローラ12bを起動および停止させる。本実施形態では、当該電源ボタン12b1が押圧されてサブコントローラ12bが起動されたときに、ペアリングが行われる場合がある。操作ボタン等12b2は、プレイヤキャラクタを移動させる操作などを行う。操作ボタン等12b2には、Lスティック12b3が含まれている。Lスティック12b3はプレイヤキャラクタを移動させるなどの操作のためのスティックである。使用者は、Lスティック12b3を傾けることで、傾けた方向に対応するゲーム空間上の方向にプレイヤキャラクタを移動することができる。また、Lスティック12b3は押し込むことができ、この場合は操作ボタンとして機能する。操作ボタンとして機能させる場合は、Lスティック12b3を「Lボタン」といい、Lスティック12b3を押し込むことを「Lボタンを押圧する」という。本実施形態のペアリング処理においては、当該Lボタンの押圧を、ペアリングするサブコントローラ12bの選択に用いている。
図4は、メインコントローラ12aの内部構成を示すブロック図である。メインコントローラ12aは、制御部121、各種センサ122、操作部123、および信号送受信部124を備えている。制御部121にはI/Oインターフェース部125が接続されている。I/Oインターフェース部125には各種センサ122、操作部123、および信号送受信部124が接続されている。制御部121は、メインコントローラ12aの全体動作を制御するマイクロコンピュータを有している。マイクロコンピュータは、CPU121a、ROM121b、およびRAM121c等からなる。これらは、それぞれバスラインで接続されている。
CPU121aは、ROM121bに格納されている制御プログラムに基づいて、メインコントローラ12aの制御を行なう。RAM121cは、CPU121aが処理を行なうためのワークエリアを提供する。ROM121bには、メインコントローラ12aを制御するための制御プログラムが記憶されている。
各種センサ122は、メインコントローラ12aの回転および傾きを検出するものであって、例えば、ジャイロセンサおよび加速度センサを含んでいる。操作部123は、操作ボタン12a2が操作されたことを、操作信号として検出する。信号送受信部124は、各種センサ122が検出した情報、および、操作部123が検出した操作信号を、短距離無線通信によってゲーム装置1に送信する。また、信号送受信部124は、ゲーム装置1から送信される各種信号を受信する。
なお、サブコントローラ12bの内部構成は、各種センサ122が設けられていない点以外は図4に示すメインコントローラ12aの内部構成とほぼ同様であるので、説明を省略する。
次に、ゲーム装置本体11に接続されている各コントローラに識別情報であるコントローラ番号を割り当てるためのコントローラ割当テーブルについて説明する。
図5は、コントローラ割当テーブルの一例を説明するための図である。コントローラ割当テーブルは、RAM111cに記憶されている。コントローラ割当テーブルは、ゲーム装置本体11にコントローラが接続されたとき、ゲーム装置本体11に接続されていたコントローラの接続が解除されたとき、および、ゲーム装置本体11に接続されているコントローラについてペアリングが行われたときに書き換えられる。
図5に示す「コントローラ番号」は、ゲーム装置本体11に接続されたコントローラに割り当てられる識別情報としての番号である。コントローラ番号はコントローラの種類に関係なく割り当てられる。「コントローラの種類」は、各コントローラ番号が割り当てられたコントローラの種類を示す情報である。図5においては、コントローラがメインコントローラ12aである場合に「MC」を、サブコントローラ12bである場合に「SC」を記載している。「ペアリング番号」は、コントローラ番号が割り当てられたコントローラがペアリングされた場合に割り当てられる番号であり、ペアリングされた各コントローラに対して同じ番号が割り当てられる。図5においては、ペアリングされた順に番号が割り当てられている。なお、本実施形態においては、1台のメインコントローラ12aと1台のサブコントローラ12bとがペアリングされる。なお、図5に示していないが、コントローラ割当テーブルには接続された順番が判別できる情報も記録されている。
コントローラがゲーム装置本体11に接続された場合、コントローラ割当テーブルのコントローラ番号のうち他のコントローラに割り当てられていないコントローラ番号が当該接続されたコントローラに割り当てられる。具体的には、信号送受信部118がコントローラから電源投入を示す信号(電源オフ状態において電源ボタンが押圧されたことを示す信号であり、以下では「接続信号」という。)を受信したときに、CPU111aがRAM111cに記憶されているコントローラ割当テーブルを参照して未使用のコントローラ番号を取得する。そして、CPU111aは、当該コントローラ番号に対応する「コントローラの種類」欄に、接続されたコントローラの種類を設定する。なお、コントローラの種類を示す情報はコントローラから受信した接続信号に含まれている。
また、CPU111aは、取得したコントローラ番号を、信号送受信部118を介して接続されたコントローラに送信する。コントローラのCPU121aは、受信したコントローラ番号をRAM121cに記録する。CPU121aは操作信号を送信するとき、このコントローラ番号を識別情報として付与して送信する。なお、CPU121aは、コントローラ番号を用いる代わりに、コントローラにあらかじめ割り当てられている識別番号を用いることができる。この場合、CPU111aが当該識別番号とコントローラ割当テーブルのコントローラ番号との対応関係をRAM111cに記録する。CPU121aは操作信号を送信するとき、当該識別番号を付与して送信する。
コントローラの接続が解除された場合、コントローラ割当テーブルの対応する「コントローラの種類」欄の情報が削除され、当該コントローラ番号が未使用状態となる。また、コントローラのペアリングが行われた場合、ペアリングされた各コントローラに対応する「ペアリング番号」欄にペアリング番号が設定される。なお、コントローラの接続が解除された場合、対応する「ペアリング番号」欄の情報も削除され、当該コントローラとペアリングされていたコントローラに対応する「ペアリング番号」欄の情報も削除される。
図5においては、コントローラ番号「0」が割り当てられたメインコントローラ12aとコントローラ番号「4」が割り当てられたサブコントローラ12bとがペアリングされてペアリング番号「1」が割り当てられており、コントローラ番号「2」が割り当てられたメインコントローラ12aとコントローラ番号「5」が割り当てられたサブコントローラ12bとがペアリングされてペアリング番号「2」が割り当てられている。なお、コントローラ番号「6」が割り当てられたサブコントローラ12bはペアリングされていない。また、コントローラ番号「1」および「3」は未使用である。
本実施形態において、各プレイヤキャラクタは、コントローラ割当テーブルで割り当てられたペアリング番号に対応付けられている。例えば、図5に示すコントローラ割当テーブルにおいて、プレイヤキャラクタPC1がペアリング番号「1」に対応付けられ、プレイヤキャラクタPC2がペアリング番号「2」に対応付けられていると仮定する。この場合、コントローラ番号「0」が割り当てられたメインコントローラ12aとコントローラ番号「4」が割り当てられたサブコントローラ12bとによってプレイヤキャラクタPC1が操作され、コントローラ番号「2」が割り当てられたメインコントローラ12aとコントローラ番号「5」が割り当てられたサブコントローラ12bとによってプレイヤキャラクタPC2が操作される。なお、ペアリング番号と各プレイヤキャラクタとの対応付けはこれに限られない。
CPU111aは、コントローラから操作信号を受信したときに、当該操作信号に付与されているコントローラ番号とコントローラ割当テーブルとに基づいて、当該操作信号がいずれのプレイヤキャラクタを操作するものであるかを認識する。例えば、上記の例の場合、操作信号に付与されていたコントローラ番号が「5」であった場合、CPU111aは、プレイヤキャラクタPC2を操作するためにサブコントローラ12bから入力された操作信号であると認識する。また、CPU111aは、コントローラ割当テーブルを参照することで、各コントローラの接続状態およびペアリング状態を認識する。
次に、メインコントローラ12aとサブコントローラ12bとのペアリングを行うためのペアリング処理について、図6を参照して説明する。
図6は、ゲーム装置1のCPU111aによって行われるペアリング処理を説明するためのフローチャートである。ペアリング処理は、メインコントローラ12aが本体11に接続され通信可能になったときに開始される。具体的には、信号送受信部118が、メインコントローラ12aの信号送受信部124から送信された接続信号を受信して、当該信号をCPU111aに入力し、CPU111aが当該メインコントローラ12aにコントローラ番号を割り当てたときに、ペアリング処理が開始される。
まず、電源オン状態(接続中)のメインコントローラ(図6に示すフローチャートおよび当該フローチャートの説明の中では、省略して「MC」と記載する。)の中にペアリングされていないMCがあるか否かが判別される(S1)。当該判別は、コントローラ割当テーブル(図5参照)が参照されて行なわれる。すなわち、CPU111aは、コントローラ割当テーブルの中でコントローラ番号の順に探索して、「コントローラの種類」欄が「MC」であり「ペアリング番号」欄が設定されていないコントローラ番号があるか否かを判別する。なお、以下の各判別もCPU111aがコントローラ割当テーブルを参照することで行っているが、その詳細の記載は省略する。ペアリングされていないMCがない場合(S1:NO)、すなわち、電源オン状態のすべてのMCがペアリングされた場合、ペアリング処理は終了される。ペアリングされていないMCがある場合(S1:YES)、電源オン状態でありペアリングされていないMCのうち最初に接続されたものが探索MCとされる(S2)。探索MCとは、ペアリング処理において、対応付けられるサブコントローラ(図6に示すフローチャートおよび当該フローチャートの説明の中では、省略して「SC」と記載する。)を探索中のMCである。すなわち、ペアリング処理は、探索MCに対応付けられるSCを決定するための処理である。なお、最初に接続されたMCを探索MCとする代わりに、最初に通信可能となったMCを探索MCとしても良いし、コントローラ番号の最も小さい(または大きい)MCを探索MCとしても良い。
次に、電源オン状態でありペアリングされていないSCが1つだけであるか否かが判別される(S3)。このようなSCが1つだけの場合(S3:YES)、当該SCと探索MCとがペアリングされる(S4)。具体的には、当該SCのコントローラ番号と探索MCのコントローラ番号に対応する、コントローラ割当テーブルの「ペアリング番号」欄にペアリング番号が設定される。
次に、催促画面が表示されているか否かが判別される(S5)。表示されていない場合(S5:NO)はステップS1に戻り、表示されている場合(S5:YES)は当該表示が終了されたうえで(S6)、ステップS1に戻る。
ステップS3において、電源オン状態でありペアリングされていないSCが1つだけでない場合(S3:NO)、すなわち、電源オン状態でありペアリングされていないSCが2以上ある場合または1つもない場合、ペアリング済みのコントローラが有るか否かが判別される(S7)。前者の場合はどちらのSCとペアリングするかを決定するために、後者の場合はペアリングするためのSCを起動させるために、ステップS7〜S12の処理が行われる。
ステップS7において、ペアリング済みのコントローラがない場合(S7:NO)、ステップS8に進む。一方、ペアリング済みのコントローラがある場合(S7:YES)、ペアリングされていないMCの任意の操作ボタンが押圧されたか否かが判別される(S11)。ペアリングされていないMCの任意の操作ボタンが押圧された場合(S11:YES)、当該MCを探索MCとして(S12)、ステップS8に進む。このとき、ペアリングされていないMCが複数有った場合は、任意の操作ボタンが押圧されたMCが探索MCとされる。なお、ステップS11において、任意の操作ボタンとせず、所定の操作ボタンとしてもよい。
ステップS11において、ペアリングされていないMCの任意の操作ボタンが押圧されていない場合(S11:NO)、ステップS3に戻る。すなわち、電源オン状態でありペアリングされていないSCが1つだけとなる(S3:YES)か、ペアリング済みのコントローラがなくなる(S7:NO)か、ペアリングされていないMCの任意の操作ボタンが押圧される(S11:YES)まで、ステップS3、S7、S11が繰り返される。
ステップS8では、催促画面が表示される(S8)。具体的には、モニタ13の画面上に、「メインコントローラにペアリングしたいサブコントローラのLボタンを押して下さい」というメッセージが表示される。なお、このような文章によるメッセージに代えて、または、当該メッセージに加えて、サブコントローラのLボタンを押している画像またはアニメーションを表示するようにしてもよい。また、使用者に操作を促す方法は、モニタ13の画面上への表示に限定されない。例えば、モニタ13のスピーカ13aから音声で促すようにしてもよいし、画面表示と音声案内を併用するようにしてもよい。また、画面表示をして、使用者の注意を引くための効果音を鳴らすようにしてもよい。また、メインコントローラまたはサブコントローラにバイブレータ機能、発光機能、または音声出力機能が有る場合は、これを用いて使用者に操作を促すようにしてもよい。
次に、電源オン状態でありペアリングされていないSCが1つだけであるか否かが判別される(S9)。このようなSCが1つだけの場合(S9:YES)、ステップS4に進んで、当該SCと探索MCとがペアリングされる(S4)。一方、このようなSCが1つだけでない場合(S9:NO)、すなわち、電源オン状態でありペアリングされていないSCが2以上ある場合または1つもない場合、いずれかのSCのLボタンが押圧されたか否かが判別される(S10)。いずれかのSCのLボタンが押圧された場合(S10:YES)、ステップS4に進んで、当該SCと探索MCとがペアリングされる(S4)。
ステップS10において、いずれのSCのLボタンも押圧されない場合(S10:NO)、ステップS9に戻る。すなわち、電源オン状態でありペアリングされていないSCが2以上ある場合は、いずれかのSCのLボタンが押圧される(S10:YES)まで、または、いくつかのSCの電源がオフにされて、電源オン状態でありペアリングされていないSCが1台になる(S9:YES)まで、ステップS9とS10とが繰り返される。また、電源オン状態でありペアリングされていないSCが1つもない場合は、いずれかのSCの電源がONにされる(S9:YES)まで、ステップS9とS10とが繰り返される。
なお、図6に示すフローチャートはペアリング処理の一例であって、ペアリング処理はこれに限られない。ペアリングのための条件に応じて処理を行うように設定すればよい。また、ペアリングのための条件をデータベースとして設定して、各コントローラから入力される操作信号に応じて当該データベースを検索し、該当する条件に応じてペアリングを行うようにしてもよい。
次に、様々な状態でペアリング処理が行われたときの具体的なペアリングの手順について、図6に示すフローチャートおよび図7〜図14を参照して説明する。
図7は、いずれのサブコントローラも電源オフ状態であり、メインコントローラMC1が起動された場合の例を示している。以下では、「メインコントローラ」の記載を省略して、例えば「MC1」のように、また「サブコントローラ」を「SC1」のように記載する場合がある。なお、図7に示すように電源ボタン12a1(または12b1)の周囲に模様を付けている場合は、電源ボタン12a1(または12b1)が押圧されたことにより当該メインコントローラ(またはサブコントローラ)が起動されたことを示している。以下の図8〜図14においても同様である。
MC1が起動されたときに、ペアリング処理(図6参照)が開始される。電源オン状態でありペアリングされていないMC(MC1)があるので(図6において、S1:YES)、最初に起動されたMC1が探索MCとされる(図6におけるS2)。電源オン状態でありペアリングされていないSCが1つもなく(図6においてS3:NO)、ペアリング済みのコントローラがないので(図6においてS7:NO)、催促画面が表示される(図6におけるS8)。
図6におけるステップS9とS10が繰りかえされているときに、催促画面を見た使用者がSC1を起動させると、電源オン状態でありペアリングされていないSC(SC1)が1つだけの状態となる(図6において、S9:YES)。これにより、当該SC1と探索MCであるMC1とがペアリングされる(図6におけるS4)。その後、催促画面表示が終了され(図6において、S5:YESよりS6)、電源オン状態でありペアリングされていないMCがなくなったので(図6において、S1:NO)、ペアリング処理が終了される。
なお、図7の例は、先述した図1Aにおいていずれのサブコントローラも起動されていない場合に該当する。
図8は、サブコントローラSC1が電源オン状態であり、メインコントローラMC1が起動された場合の例を示している。
MC1が起動されたときに、ペアリング処理が開始され、MC1が探索MCとされる(図6において、S1:YESよりS2)。次に、電源オン状態でありペアリングされていないSCが1つだけ(SC1)有るので(図6においてS3:YES)、催促画面が表示されることなく、当該SC1と探索MCであるMC1とがペアリングされる(図6におけるS4)。その後、催促画面が表示されておらず(図6において、S5:NO)、電源オン状態でありペアリングされていないMCがなくなったので(図6において、S1:NO)、ペアリング処理が終了される。なお、図8の例は、先述した図1AにおいてサブコントローラSC1のみが起動されている場合に該当する。
図9は、サブコントローラSC1およびSC2が電源オン状態であり、メインコントローラMC1が起動された場合の例を示している。なお、図9に示すようにサブコントローラのLボタン12b3の周囲に模様を付けている場合は、Lボタン12b3が押圧されたことを示している。以下の図10〜図14においても同様である。
MC1が起動されたときに、ペアリング処理が開始され、MC1が探索MCとされる(図6において、S1:YESよりS2)。次に、電源オン状態でありペアリングされていないSCが2つ(SC1,SC2)有り(図6においてS3:NO)、ペアリング済みのコントローラがないので(図6においてS7:NO)、催促画面が表示される(図6におけるS8)。催促画面を見た使用者がSC1のLボタンを押圧すると(図6において、S10:YES)、当該SC1と探索MCであるMC1とがペアリングされる(図6におけるS4)。その後、催促画面表示が終了されてペアリング処理が終了される(図6において、S5:YESよりS6、S1:NO)。なお、図9の例は、先述した図1A〜Dの例に該当する。
なお、図9の例において、催促画面を見た使用者がSC2を電源オフ状態にした場合、電源オン状態でありペアリングされていないSC(SC1)が1つだけの状態となるので(図6において、S9:YES)、当該SC1と探索MCであるMC1とがペアリングされる(図6におけるS4)。
なお、図9の例において、先に接続されたサブコントローラSCと探索MCであるMC1とがペアリングされるように、ペアリングのための条件を設定してもよい。
図10は、メインコントローラMC1とサブコントローラSC1とがペアリングされた状態であり、メインコントローラMC2が起動された場合の例を示している。なお、図10に示すようにメインコントローラの操作ボタン12a2の周囲に模様を付けている場合は、任意の操作ボタン12a2が押圧されたことを示している。以下の図12〜図14においても同様である。
MC2が起動されたときに、ペアリング処理が開始され、MC2が探索MCとされる(図6において、S1:YESよりS2)。次に、電源オン状態でありペアリングされていないSCが1つもなく(図6においてS3:NO)、ペアリング済みのコントローラ(MC1とSC1)があるので(図6においてS7:YES)、ペアリングされていないMC(MC2)の任意の操作ボタンが押圧されるまで、図6におけるステップS3、S7、S11が繰り返される。使用者がMC2の任意の操作ボタン12a2を押圧した場合(図6においてS11:YES)、MC2が探索MCとされ(図6におけるS12)、催促画面が表示される(図6におけるS8)。この場合、催促画面を見た使用者が、新たにSC2を起動させる場合と、ペアリングされているSC1のLボタンを押圧する場合とが考えられる。
前者の場合、電源オン状態でありペアリングされていないSC(SC2)が1つだけの状態となるので(図6において、S9:YES)、当該SC2と探索MCであるMC2とがペアリングされる(図6におけるS4)。その後、催促画面表示が終了されてペアリング処理が終了される(図6において、S5:YESよりS6、S1:NO)。
一方、後者の場合(図6において、S10:YES)、当該SC1と探索MCであるMC2とがペアリングされ(図6におけるS4)、催促画面表示が終了される(図6において、S5:YESよりS6)。この場合、SC1とペアリングされていたMC1のペアリングが解除され、電源オン状態でありペアリングされていないMC(MC1)がある(図6において、S1:YES)ので、MC1が探索MCとされて(図6におけるS2)、さらにペアリング処理が継続される。
その後の処理は、MC2とSC1とがペアリングされた状態でMC1が起動された状態の処理が行われる(図6におけるステップS3、S7、S11が繰り返される)。
なお、仮に、ステップS7およびS11の判別を設けずに、ステップS3がNOの場合に催促画面表示(S8)をするようにした場合、使用者がSC2を所有していない場合にMC1またはMC2のどちらかを電源オフにしない限り、催促画面表示とSC1のLボタン押圧との繰り返しから抜け出ることができなくなる。また、使用者がMC1またはMC2が電源オン状態であることを知らなかった場合(例えば、MC1がSC1とペアリングされていることに気付かずにMC2を起動した場合など)にも、当該繰り返しから抜け出ることができなくなる。したがって、本実施形態では、このような状態を回避するために、ペアリング済みのコントローラが有る場合には、ペアリングされていないMCの任意の操作ボタン12a2の押圧を条件(図6において、S7:YES、S11:YES)に催促画面表示(S8)を行うようにしている。なお、ステップS7およびS11の判別を設けずに、ステップS3がNOの場合に催促画面表示(S8)をするようにしてもよい。
図11は、メインコントローラMC1とサブコントローラSC1とがペアリングされており、サブコントローラSC2が電源オン状態であり、メインコントローラMC2が起動された場合の例を示している。
MC2が起動されたときに、ペアリング処理が開始され、MC2が探索MCとされる(図6において、S1:YESよりS2)。次に、電源オン状態でありペアリングされていないSCが1つだけ(SC2)有るので(図6においてS3:YES)、催促画面が表示されることなく、当該SC2と探索MCであるMC2とがペアリングされる(図6におけるS4)。その後、催促画面が表示されておらず(図6において、S5:NO)、電源オン状態でありペアリングされていないMCがなくなったので(図6において、S1:NO)、ペアリング処理が終了される。
図12は、メインコントローラMC1とサブコントローラSC1とがペアリングされており、サブコントローラSC2およびSC3が電源オン状態であり、メインコントローラMC2が起動された場合の例を示している。
MC2が起動されたときに、ペアリング処理が開始され、MC2が探索MCとされる(図6において、S1:YESよりS2)。次に、電源オン状態でありペアリングされていないSCが2つ(SC2,SC3)有り(図6においてS3:NO)、ペアリング済みのコントローラ(MC1とSC1)があるので(図6においてS7:YES)、ペアリングされていないMC(MC2)の任意の操作ボタンが押圧されるまで、図6におけるステップS3、S7、S11が繰り返される。使用者がMC2の任意の操作ボタンを押圧した場合(図6においてS11:YES)、MC2が探索MCとされ(図6におけるS12)、催促画面が表示される(図6におけるS8)。使用者が、SC2のLボタンを押圧した場合(図6において、S10:YES)、当該SC2と探索MCであるMC2とがペアリングされる(図6におけるS4)。その後、催促画面表示が終了されてペアリング処理が終了される(図6において、S5:YESよりS6、S1:NO)。
なお、図12の例において、催促画面を見た使用者がSC3を電源オフ状態にした場合も、SC2と探索MCであるMC2とがペアリングされる(図6において、S9:YESによりS4)。また、図12の例において、催促画面を見た使用者がペアリングされているSC1のLボタンを押圧した場合、SC1と探索MCであるMC2とがペアリングされ(図6において、S10:YESによりS4)、MC1が探索MCとされて(図6において、S1:YESによりS2)、さらにペアリング処理が継続される。
図13は、メインコントローラMC1,MC2とサブコントローラSC1,SC2とが電源オン状態である場合の例を示している。
この状態は、図9に示す例における催促画面が表示されている状態において、使用者がさらにメインコントローラMC2を起動した場合に生じる。この場合、MC2が電源オン状態になっても、ステップS9とS10との繰り返しは継続される。使用者がSC1のLボタンを押圧すると(図6において、S10:YES)、当該SC1と探索MCであるMC1とがペアリングされて(図6におけるS4)、催促画面表示が終了される(図6において、S5:YESよりS6)。この場合、電源オン状態でありペアリングされていないMC(MC2)がある(図6において、S1:YES)ので、MC2が探索MCとされる(図6におけるS2)。次に、電源オン状態でありペアリングされていないSCが1つだけ(SC2)有るので(図6においてS3:YES)、催促画面が表示されることなく、当該SC2と探索MCであるMC2とがペアリングされ(図6におけるS4)、ペアリング処理が終了される(図6において、S5:NO、S1:NO)。
なお、メインコントローラMC1およびMC2が起動されている状態で(MC1がMC2よりも先に起動されている)、サブコントローラSC1およびSC2が同時に起動された場合も、MC1,MC2,SC1,およびSC2が電源オン状態であり、ステップS9とS10との繰り返しが継続された状態となる。この状態で使用者がSC1のLボタンを押圧すると、上記と同じ手順でペアリングが行われる。なお、MC1およびMC2が起動されている状態で、SC1およびSC2の起動が同時でなく、例えば、SC1の起動の方が早かった場合、電源オン状態でありペアリングされていないSC(SC1)が1つだけの状態となるので(図6において、S9:YES)、SC1とMC1とがペアリングされる(図6におけるS4)。その後、MC2が探索MCとされ(図6におけるS2)、ペアリングされていないSC2とペアリングされて(図6において、S3:YESによりS4)、ペアリング処理が終了される。
なお、図13の例においては、「接続が早かった操作部から順に選択すること」および「所定の種類の操作部であること」が本発明の「選択条件」に相当し、「メインコントローラMC1」が「接続が早かった操作部」および「所定の種類の操作部」に相当する。
図14は、メインコントローラMC1,MC2とサブコントローラSC1,SC2,SC3とが電源オン状態である場合の例を示している。
この状態は、SC1,SC2,SC3,MC1が電源オン状態であり催促画面が表示されている状態において、使用者がさらにメインコントローラMC2を起動した場合に生じる。この場合、MC2が電源オン状態になっても、ステップS9とS10との繰り返しは継続される。使用者がSC1のLボタンを押圧すると(図6において、S10:YES)、当該SC1と探索MCであるMC1とがペアリングされて(図6におけるS4)、催促画面表示が終了される(図6において、S5:YESよりS6)。この場合、電源オン状態でありペアリングされていないMC(MC2)がある(図6において、S1:YES)ので、MC2が探索MCとされる(図6におけるS2)。次に、電源オン状態でありペアリングされていないSCが2つ(SC2,SC3)有り(図6においてS3:NO)、ペアリング済みのコントローラ(MC1とSC1)があるので(図6においてS7:YES)、ペアリングされていないMC(MC2)の任意の操作ボタンが押圧されるまで、図6におけるステップS3、S7、S11が繰り返される。使用者がMC2の任意の操作ボタンを押圧した場合(図6においてS11:YES)、MC2が探索MCとされ(図6におけるS12)、催促画面が表示される(図6におけるS8)。なお、仮にMC2の他にMC3(図示なし)も電源オン状態であった場合は、使用者に任意の操作ボタンを押圧された方のMCが探索MCとされる。使用者が、SC2のLボタンを押圧した場合(図6において、S10:YES)、当該SC2と探索MCであるMC2とがペアリングされる(図6におけるS4)。その後、催促画面表示が終了されてペアリング処理が終了される(図6において、S5:YESよりS6、S1:NO)。
なお、メインコントローラMC1およびMC2が起動されている状態で(MC1がMC2よりも先に起動されている)、サブコントローラSC1,SC2,およびSC3が同時に起動された場合も、MC1,MC2,SC1,SC2,およびSC3が電源オン状態であり、ステップS9とS10との繰り返しが継続された状態となる。この状態で使用者がSC1のLボタンを押圧すると、上記と同じ手順でペアリングが行われる。なお、MC1およびMC2が起動されている状態で、SC1,SC2,およびSC3の起動が同時でなく、例えば、SC1の起動の方が早かった場合、電源オン状態でありペアリングされていないSC(SC1)が1つだけの状態となるので(図6において、S9:YES)、SC1とMC1とがペアリングされる(図6におけるS4)。その後、MC2が探索MCとされ(図6におけるS2)、電源オン状態でありペアリングされていない2つのSC(SC2,SC3)のうち、使用者にLボタンを押圧されたSC2がペアリングされ(図6において、S3:NO、S7:YES、S11:YES、S12、S8、S9:NO、S10:YES、S4)、催促画面表示が終了されてペアリング処理が終了される(図6において、S5:YESよりS6、S1:NO)。
本実施形態によると、メインコントローラが起動されたときに、当該メインコントローラにペアリングするサブコントローラのLボタンを押圧するように使用者に促すメッセージ(催促画面)が表示される。催促画面を見た使用者がサブコントローラのLボタンを押圧すると、当該サブコントローラとメインコントローラとがペアリングされる。したがって、メインコントローラとサブコントローラとをケーブルなどで直接接続することなく、使用者の希望にしたがって、ペアリングを行うことができる。
また、メインコントローラが起動されたときに、すでに1台のサブコントローラが電源オン状態となっていた場合には、催促画面を表示することなく、当該サブコントローラとメインコントローラとがペアリングされる。したがって、使用者の手間を省くことができる。
なお、上記実施形態では、メインコントローラとサブコントローラとのペアリングについて説明したが、これに限られない。ゲーム装置に接続されるコントローラであれば、他のコントローラであっても、ペアリングをする際に、本発明を適用することができる。また、ペアリングされたコントローラに、さらに別のコントローラをペアリングする場合(すなわち、3台以上のコントローラを対応付ける場合)にも、本発明を適用することができる。また、ペアリングされるコントローラが同じ種類のコントローラであってもよい。例えば、サブコントローラとサブコントローラとをペアリングさせるようにしてもよい。また、上記実施形態では、メインコントローラとサブコントローラがそれぞれ1種類である場合について説明したが、これに限られない。本発明は、メインコントローラとサブコントローラの一方または両方が複数種類ある場合にも適用することができる。
上記実施形態では、メインコントローラとサブコントローラとで1体のプレイヤキャラクタを操作する場合について説明したが、操作される対象は1体のキャラクタに限定されない。例えば、複数のキャラクタからなる1組の集団を操作する場合、および、それぞれが1体のキャラクタを操作するコントローラを複数対応付けて、使用者が対応付けられた複数のコントローラを操作することで複数のキャラクタを操作する場合にも、本発明を適用することができる。
上記実施形態では、ペアリング処理をゲーム開始前に行う場合について説明したが、ゲームの途中でペアリング処理を行うようにしてもよい。例えば、ゲーム途中にサブコントローラが電源オフ状態になった場合(例えば、使用者が誤って電源ボタンを押圧した場合、または、サブコントローラの電池の充電量が不足した場合など)に、ペアリング処理を行うようにしてもよい。
上記実施形態では、メインコントローラMC1が起動されたときに2台のサブコントローラSC1,SC2が起動されている場合、メインコントローラMC1のペアリング相手を、所定の操作(Lボタンの押圧)がされたサブコントローラとしている(図1A〜D参照)が、これに限られない。例えば、メインコントローラMC1のペアリング相手を、2台のサブコントローラSC1,SC2のうちコントローラ番号の小さい方(大きい方)としてもよいし、2台のサブコントローラSC1,SC2のうちランダムに選択された方としてもよい。また、催促画面(図1B参照)の表示は必ずしも必要ではない。例えば、使用者がペアリングのための手順を知っている場合は、使用者はペアリングしたいサブコントローラに所定の操作(Lボタンの押圧)を行うべきことを認識しているので、催促画面の表示を行わなくてもよい。
上記実施形態では、アクションゲームを例に説明したが、これに限られない。例えば、RPG(ロールプレイングゲーム)、シューティングゲーム、格闘ゲーム、アドベンチャーゲームなどの様々なジャンルのゲームにおいても、本発明を適用することができる。また、本発明は、複数の使用者の操作するキャラクタ若しくはCPUの制御するキャラクタがチームを組んで協同して敵キャラクタと対戦するようなゲーム、および、敵キャラクタとしての他の使用者の操作するキャラクタと対戦するようなゲームにも適用することができる。
上記実施形態では、家庭用ゲーム装置でゲームを実施する場合について説明したが、これに限られない。本発明は、例えば、アーケードゲーム装置、および、ゲームソフトが搭載されているパーソナルコンピュータ等でゲームを実施する場合にも適用することができる。
また、コントローラ以外の操作部をペアリングする場合にも、本発明を適用することができる。例えば、1台のコンピュータを複数の使用者がそれぞれの所有するキーボードで操作する場合に、各使用者が使用するキーボードとマウスとのペアリングを行う場合などにも、本発明を適用することができる。
本発明に係るコンピュータおよび記録媒体は、上述した実施形態に限定されるものではない。本発明に係るコンピュータおよび記録媒体の具体的な構成は、種々に設計変更自在である。
本発明は、プログラム、および、当該プログラムを記録したプログラム記録部を備えているコンピュータに関し、特に、複数の操作部間の対応付けを行う方法に関する。
従来、使用者がゲーム空間内の所定のキャラクタを操作するための操作部であるコントローラが開発されている。以下では、使用者がコントローラで操作するキャラクタを「プレイヤキャラクタ」という。プレイヤキャラクタに対する複雑な操作を可能にするために、コントローラには、多数のボタンおよびスティック(レバー)が設けられている。また、より操作性をよくするために、2種類のコントローラを同時に用いるゲームおよびゲーム装置も開発されている。
例えば、特開2009−72319号公報には、2種類のコントローラを同時に用いてゲームを行うことができるゲーム装置が記載されている。当該公報によると、一方の種類のコントローラ(以下、「メインコントローラ」という。)に他方の種類のコントローラ(以下、「サブコントローラ」という。)をケーブルで接続することによって、サブコントローラに設けられたボタンなどの入力デバイスを、メインコントローラに設けられた入力デバイスと同様に扱うことができる。したがって、サブコントローラとメインコントローラとを一対のコントローラとして扱うことができる。
しかしながら、接続しているケーブルが、使用者の操作の邪魔になる場合がある。メインコントローラは、内蔵されている加速度センサおよび撮像素子を用いてメインコントローラ自体の動きおよび傾きを操作入力とすることもできるので、使用者によって振り回して操作される場合がある。この場合特に、接続しているケーブルを使用者が邪魔に感じるおそれがある。
これを防ぐために、メインコントローラとサブコントローラとをケーブルで接続するのではなく、それらをそれぞれゲーム装置と無線接続する方法が考えられる。
しかしながら、無線接続する場合、どのメインコントローラとどのサブコントローラとが一対となるかを、ゲーム装置に認識させなければならない。しかし、それぞれゲーム装置に無線接続されているメインコントローラとサブコントローラとを対応付ける方法は、今まで開発されていなかった。
また、各コントローラがゲーム装置にそれぞれ有線接続されている場合でも、メインコントローラとサブコントローラとを対応付ける必要がある。また、ゲーム装置以外のコンピュータにおいても、接続される操作部が複数あって、操作部間で直接接続を行うことなしに操作部を他の操作部に対応付ける必要がある場合もある。
本発明は上記した事情のもとで考え出されたものであって、コンピュータを操作するための操作部が複数ある場合に、操作部間で直接接続を行うことなしにある操作部を他の操作部に対応付ける方法を提供することをその目的としている。
本発明の第1の側面によって提供されるプログラムは、操作のための1種類以上の操作部を2以上接続することができるコンピュータを、接続中の前記操作部のそれぞれから、前記各操作部を識別するための情報である識別情報及び前記各操作部の操作に応じて出力される情報である操作情報を受信する受信手段と、前記接続中の操作部から受信した前記識別情報と予め設定されている対応付条件とに基づいて、前記接続中の操作部同士の対応付けの設定を行う対応付設定手段と、対応付けられた前記操作部のそれぞれから受信した前記操作情報に基づいて同一の処理対象に対する処理を実行する実行手段として機能させることを特徴とする。
なお、本発明における「接続」には、ケーブルなどによる有線接続のみではなく、無線通信などによる無線接続も含まれている。操作部の「操作」には、操作部に設けられているボタンを押圧する操作、および、スティック(レバー)を傾けたり押し込んだりする操作が含まれる。また、操作部を移動させたり操作部の姿勢を変化させることも「操作」に含まれる。さらに、操作部を起動する操作、すなわち、電源ボタンを押圧(または切り替え)する操作なども、「操作」に含まれる。また、本発明における「対応付条件」とは、操作部同士の対応付けの設定を行うための条件であって、例えば、「第1の種類の操作部が1台のみ接続されているところに第2の種類の操作部が接続された場合、当該接続された第2の種類の操作部と第1の種類の操作部との対応付けの設定を行う」、「第1の種類の操作部が2台以上接続されているところに第2の種類の操作部が接続された場合、所定の操作が行われた第1の種類の操作部と当該接続された第2の種類の操作部との対応付けの設定を行う」という内容の条件である。
本発明の好ましい実施の形態においては、前記対応付設定手段は、前記接続中の操作部のうち、予め設定されている選択条件に基づいて選択した1の操作部に対し、この1の操作部に対して対応付けの設定が可能な他の操作部を対応付ける設定を行う。
本発明の好ましい実施の形態においては、前記対応付設定手段は、前記接続中の操作部のうち、1の操作部に対して対応付けの設定が可能な他の操作部が2以上存在した場合、前記他の2以上の操作部のうち、所定の操作情報の送信があった操作部を、前記1の操作部に対応付ける設定を行う。
本発明の好ましい実施の形態においては、前記コンピュータを、前記他の操作部が2以上存在した場合、前記1の操作部に対応付けたい操作部に前記所定の操作をするように使用者に促すための情報を第1の報知部に報知させる第1報知制御手段としてさらに機能させる。
本発明の好ましい実施の形態においては、前記コンピュータを、1の操作部に対して対応付ける操作部が接続されていない場合、前記1の操作部に対応付けたい操作部を選択するように使用者に促すための情報を第2の報知部に報知させる第2報知制御手段としてさらに機能させる。
本発明の好ましい実施の形態においては、前記対応付設定手段は、前記接続中の操作部のうち、対応付けの設定がされていない操作部のみ同士の対応付けの設定を行う。
本発明の好ましい実施の形態においては、前記対応付設定手段は、対応付けの設定が既に行われた操作部が存在する場合、第2の所定の操作情報の送信があった操作部も対応付けの設定対象とする。
本発明の好ましい実施の形態においては、前記選択条件は、複数の操作部の種類のうち所定の種類の操作部であることを含む。
本発明の好ましい実施の形態においては、前記選択条件は、複数の接続中の操作部のうち接続が早かった操作部から順に選択することを含む。
本発明の好ましい実施の形態においては、前記操作部には2種類の操作部があり、前記対応付条件は、一方の種類の操作部と他方の種類の操作部とを対応付けることを含む。
本発明の好ましい実施の形態においては、前記コンピュータはゲーム装置であって、前記実行手段は、ゲーム空間および当該ゲーム空間内で動作するオブジェクトを生成し、前記同一の処理対象として前記オブジェクトの動作処理を実行する。
本発明の好ましい実施の形態においては、前記接続は、無線通信による接続である。
本発明の第2の側面によって提供されるコンピュータは、本発明の第1の側面によって提供されるプログラムを記録したプログラム記録部と、前記プログラム記録部に記録されたプログラムを実行する制御部とを備えていることを特徴とする。
図1Aは、ペアリングの手順を説明するための図である。
図1Bは、ペアリングの手順を説明するための図である。
図1Cは、ペアリングの手順を説明するための図である。
図1Dは、ペアリングの手順を説明するための図である。
図2は、本実施形態に係るゲーム装置を示す構成図である。
図3Aは、コントローラ(メインコントローラ)を説明するための図である。
図3Bは、コントローラ(サブコントローラ)を説明するための図である。
図4は、コントローラの内部構成を示す構成図である。
図5は、コントローラ割当テーブルの一例を説明するための図である。
図6は、ペアリング処理を説明するためのフローチャートである。
図7は、ペアリングの手順を説明するための図である。
図8は、ペアリングの手順を説明するための図である。
図9は、ペアリングの手順を説明するための図である。
図10は、ペアリングの手順を説明するための図である。
図11は、ペアリングの手順を説明するための図である。
図12は、ペアリングの手順を説明するための図である。
図13は、ペアリングの手順を説明するための図である。
図14は、ペアリングの手順を説明するための図である。
以下、本発明の好ましい実施の形態として、本発明に係るプログラムをゲームソフトに適用した場合について、添付図面を参照して具体的に説明する。以下の説明では、家庭用ゲーム装置(以下、「ゲーム装置」とする。)において、アクションゲームを進行している場合を例として説明する。
本実施形態に係るアクションゲームは、三次元仮想ゲーム空間上でプレイヤキャラクタが敵キャラクタと戦い、敵キャラクタを倒すことにより進行する。ゲーム装置には、Bluetooth(登録商標)技術を用いた短距離無線通信によって、2種類のコントローラを接続することができる。なお、ゲーム装置としては、例えばPlayStation(登録商標)3などがある。各コントローラは、最初に使用される際に、ゲーム装置本体(「ゲーム装置」にはコントローラも含まれているので、コントローラの接続の対象として記載する場合は、「ゲーム装置本体」または単に「本体」という。)との間で認証処理が行われて、接続相手として認定される。認定された後は、当該コントローラの電源をオンにしたときに自動的に認証処理が行われて接続が確立されるようになる。本実施形態においては、合計7台までのコントローラがゲーム装置本体に接続される。各コントローラは、操作信号などの送信データを送信する際に、識別情報(識別番号などのコントローラを識別するための情報)およびコントローラの種類情報などを付与して送信する。送信データを受信したゲーム装置本体は、付与された識別情報によって、当該送信データがいずれのコントローラから送信されたものであるかを認識する。
なお、ゲーム装置本体と各コントローラとの接続は、これに限定されず、赤外線を利用したIrDA通信方式などの無線通信による接続であってもよいし、ケーブルなどを用いた有線接続であってもよい。なお、コントローラ毎に異なる周波数で通信を行う場合または有線接続の場合は、キャリア周波数または通信線の接続端子によってデータ通信の相手をゲーム装置本体が認識できる。すなわち、送信データがいずれのコントローラから送信されたものであるかを認識することができる。この場合、当該キャリア周波数またはどの接続端子に接続されているかということが識別情報とみなされる。したがって、コントローラは送信データに別途識別情報を付与する必要はない。
使用者は、2種類のコントローラを用いて、プレイヤキャラクタを操作する。2種類のコントローラのうちの一方は、主にプレイヤキャラクタに武器の操作を行わせるために、使用者が右手に持って操作するものである。当該コントローラを「メインコントローラ」という(以下では「MC」と省略する場合がある。)。他方のコントローラは、主にプレイヤキャラクタに移動動作を行わせるために、使用者が左手に持って操作するものである。当該コントローラを「サブコントローラ」という(以下では「SC」と省略する場合がある。)。
使用者がメインコントローラまたはサブコントローラを単独で用いても、使用者はプレイヤキャラクタを適切に操作することができない。したがって、使用者が両方のコントローラを用いるために、ゲーム開始時にこれらが起動されている必要がある。また、1つのメインコントローラには1つのサブコントローラが対応付けられる必要がある。以下では、メインコントローラとサブコントローラとを対応付けることを「ペアリング」という。ペアリングによって対応付けられたメインコントローラとサブコントローラとを使用することで、使用者は1体のプレイヤキャラクタを操作することができる。
図1A〜Dは、ペアリングの手順を説明するための図であり、2つのサブコントローラSC1,SC2のみが起動されている状態でゲームを開始しようとした場合の例を示している。
図1Aは、サブコントローラSC1,SC2が起動されており、いずれのメインコントローラも起動されていない状態を示している。なお、この状態で使用者がゲームを開始しようとした場合に、メインコントローラを起動するように促すメッセージが表示画面Mに表示されるようにしてもよい。図1Bは、図1Aの状態で使用者PがメインコントローラMC1の電源ボタンを押圧したので、メインコントローラMC1が起動された状態を示している。このとき、2つのサブコントローラSC1,SC2がすでに起動されているので、メインコントローラMC1にペアリングするサブコントローラを選択するように促すメッセージが表示画面Mに表示される。以下、当該選択を促す画面表示を「催促画面」という。本実施形態では、サブコントローラのLボタン(後述する)の押圧をペアリングのための判断に利用しているので、催促画面にはLボタンの押圧を促すメッセージが表示される。なお、当該判断に利用される操作ボタンは限定されず、いずれの操作ボタンにしてもよい。また、当該判断に利用されるのは操作ボタンの押圧に限定されず、任意の操作としてもよい。例えば、スティック(レバー)を所定の方向に傾ける操作が当該判断に利用されるようにしてもよい。また、サブコントローラが起動されていない状態においては、サブコントローラが起動されることを、当該判断に利用するようにしてもよい。
図1Cは、表示画面Mに表示された催促画面を見た使用者Pが、サブコントローラSC1のLボタンを押圧した状態を示している。図1Dは、メインコントローラMC1とサブコントローラSC1とのペアリングが完了した状態を示している。なお、図1A〜Dに示すペアリングの手順においては、「メインコントローラMC1」が本発明の「1の操作部」に相当し、「サブコントローラSC1」および「サブコントローラSC2」が本発明の「他の操作部」に相当する。また、「Lボタンの押圧」によって送信された操作情報が本発明の「所定の操作情報」に相当し、「催促画面」の表示が本発明の「第1の報知部」による報知に相当する。また、「所定の種類の操作部」である「メインコントローラMC1」を「1の操作部」に選択することが、本発明の「選択条件」に相当する。
なお、本実施形態では、図1Aにおいていずれのサブコントローラも起動されていない場合、図1Bの催促画面が表示された後、いずれかのサブコントローラが起動されたときに、当該起動されたサブコントローラとメインコントローラMC1とがペアリングされる。これは、当該起動されたサブコントローラをメインコントローラMC1にペアリングしたいと使用者Pが考えていると推測されるので、サブコントローラのLボタンの押圧を待つ必要がないからである。また、この場合、催促画面にLボタンの押圧を促すメッセージを表示する代わりに、サブコントローラを起動するように促すメッセージを表示するようにしてもよい。この場合においては、「催促画面」の表示が本発明の「第2の報知部」による報知に相当する。なお、この場合であっても、サブコントローラのLボタンの押圧を待つようにしてもよい。
また、本実施形態では、図1AにおいてサブコントローラSC1のみが起動されている(サブコントローラSC2は起動されていない)場合、メインコントローラMC1が起動されると、催促画面が表示されることなく、メインコントローラMC1とサブコントローラSC1とがペアリングされる。これは、起動されているサブコントローラがサブコントローラSC1のみなので、使用者Pに選択されるまでもなく、対応付けられるサブコントローラがサブコントローラSC1に限定されるからである。これにより、使用者Pの選択操作が軽減される。
また、本アクションゲームは2名以上で同時にプレイすることができる。この場合、2名の使用者がそれぞれ自分のプレイヤキャラクタを操作するために、メインコントローラとサブコントローラとがそれぞれ2台ずつゲーム装置に接続されることになる。この場合、各使用者が使用するメインコントローラのそれぞれに異なるサブコントローラがペアリングされる必要がある。本実施形態においては、ゲーム装置に合計7台までコントローラを接続することができるので、3名が同時にプレイするために3組のペアリングを行うことができる。なお、ゲーム装置に接続されるコントローラは7台に限られるものではなく、また、ペアリングも3組に限られるものではない。ペアリングを行うためにゲーム装置が行う処理(以下、「ペアリング処理」という。)の例は後述する。また、様々な状態でペアリング処理が行われたときの、具体的なペアリングの手順についても後述する。
まず、本実施形態のハード構成について説明する。
図2は、本実施形態に係るゲーム装置を示す構成図である。ゲーム装置1は、本体11、およびコントローラ12a,12bを備えている。コントローラ12a,12bは短距離無線通信によって本体11に接続されている。なお、図2においては、コントローラ12a,12bがそれぞれ1台ずつ接続されている状態を示しているが、それぞれ複数台ずつ接続することもできる。本体11には、モニタ13が専用のケーブルによって接続される。また、本体11には、ゲームプログラムおよびゲームデータが記録されているディスク14が装着される。さらに、本体11には、必要に応じてゲームデータを保存するためのメモリカード15も装着される。
本体11は、制御部111、描画処理部112、音声処理部113、ディスクドライブユニット114、メモリカード接続ユニット115、I/Oインターフェース部116、通信処理部117、および信号送受信部118を備えている。制御部111には、描画処理部112、音声処理部113、I/Oインターフェース部116、および通信処理部117が接続されている。また、I/Oインターフェース部116には、ディスクドライブユニット114、メモリカード接続ユニット115、信号送受信部118、およびモニタ13が接続されている。
ゲーム装置1では、上記アクションゲームのソフトウェアが記録されたディスク14がディスクドライブユニット114に装着される。このディスクドライブユニット114によって、ディスク14内のゲームプログラムおよびゲームデータが制御部111内のRAM111c(後述)に読み込まれる。当該ゲームプログラムがCPU111a(後述)によって実行されることにより、使用者はゲーム内容を楽しむことができる。使用者は、コントローラ12a,12b(後述)を操作することによりプレイヤキャラクタを操作し、ゲームを進行させることができる。
ディスク14内のゲームデータには、プレイヤキャラクタおよび敵キャラクタなどのキャラクタデータ、キャラクタおよび背景などの画像データ、効果音などの音声データ、並びに、ゲーム進行および描画の際に参照される各種テーブルなどが含まれる。
制御部111は、本体11の全体動作を制御するマイクロコンピュータを有している。マイクロコンピュータは、CPU111a、ROM111b、およびRAM111c等からなる。これらは、それぞれバスラインで接続されている。
CPU111aは、RAM111cに読み込まれたゲームプログラムを実行することより、ゲーム進行を統括的に制御する。より具体的には、使用者の操作による操作信号がコントローラ12a,12bから信号送受信部118を介して入力されると、CPU111aは、ゲームプログラムにしたがってその操作信号に対する所定のゲーム進行処理を行う。CPU111aは、その処理結果に基づいて、例えば三次元空間を表現する二次元画像(以下、「ゲーム画像」という)を、モニタ13の表示画面に表示させる。また、CPU111aは、処理結果に基づいて、効果音などの音声を、モニタ13のスピーカ13a(後述)に出力させる。
本実施形態において、CPU111aは、コントローラ12aまたは12bが最初に起動されたときに、当該コントローラの認証処理を行って接続相手として認定する。当該認証処理は、Bluetooth(登録商標)技術における認証処理として一般的なものなので、詳細な説明は省略する。また、CPU111aは、コントローラ12aとコントローラ12bとの対応付けのための処理であるペアリング処理を行う。ペアリング処理の詳細については後述する。
ROM111bには、ゲーム装置1に基本的な機能を発揮させるための基本プログラムが記憶されている。基本プログラムには、ディスク14に記録されたゲームプログラムおよびゲームデータを読み出すディスクローディング機能のためのプログラム等が含まれる。CPU111aは、ディスクドライブユニット114にディスク14が装着されると、ROM111bの基本プログラムにしたがってディスクドライブユニット114を動作させ、ディスク14からゲームプログラムおよびゲームデータをRAM111cに読み込み、ゲーム装置1をゲーム開始状態に設定する。
RAM111cは、ディスク14から読み込まれたゲームプログラムおよびゲームデータが格納されるエリアと、CPU111aがゲームプログラムを実行するためのワークエリアとを提供する。
ゲームプログラムは、例えばゲーム進行プログラムおよびグラフィック制御プログラム等の複数のプログラムが組み合わされて構成されている。ゲーム進行プログラムは、モニタ13に表示されているプレイヤキャラクタの動作をコントローラ12a,12bからの操作信号に基づいて制御するプログラムである。グラフィック制御プログラムは、モニタ13に表示すべきゲーム画像を制御するプログラムである。なお、本実施形態において、RAM111cは、後述するコントローラ割当テーブル(図5参照)を記憶している。
CPU111aは、コントローラ12a,12bからの操作信号に基づき、必要に応じてディスク14からゲームプログラムおよび画像データ等をRAM111cに読み込む。CPU111aは、これらのデータを処理したりゲームプログラムを実行したりすることにより、モニタ13に表示すべきゲーム画像の内容を決定する。
描画処理部112は、描画処理に必要な各種の演算処理を行う。CPU111aは、例えば、1/60秒毎に、描画処理部112に描画指令を出力する。このとき、CPU111aは、モニタ13に表示すべき画像を決定し、その画像の描画に必要な画像データ(キャラクタなどのオブジェクトのポリゴンデータ、および背景データ)、および光源データ等をRAM111cから読み出して描画処理部112に供給する。また、CPU111aは、各キャラクタの位置データ、および、コントローラ12a,12bから入力される操作信号を描画処理部112に供給する。
描画処理部112は、これらの画像データ等および操作信号に基づいて、描画に必要なデータ(各オブジェクトおよび背景の位置関係、モニタ13の画面上における各オブジェクトを構成するポリゴンの座標、各ポリゴンに対応するテクスチャ、並びに各ポリゴンの反射特性等のデータ)を演算し、その演算結果に基づいて描画処理部112内のvideo RAM(図示せず)に1コマ(1フレーム)の表示画面の画像データを作成する。表示画面の画像データは、例えば、1/60秒毎に映像信号としてモニタ13に出力されて表示される。
音声処理部113は、効果音等の音声を発生させる処理に必要な各種の演算処理を行う。CPU111aは、モニタ13のスピーカ13aから出力すべき効果音若しくはBGMの音響内容を決定すると、音声処理部113に音声指令を出力する。音声処理部113は、音声指令に基づき、RAM111cから効果音もしくはBGMの音声データを読み出す。さらに、音声処理部113は、この音声データに所定の加工処理とデジタル/アナログ変換処理とを施した後、スピーカ13aに出力する。
ディスクドライブユニット114は、CPU111aからのローディング指令(ローディングすべきゲームプログラムとゲームデータを指定した読出指令)に基づき、ディスク14に記録されたゲームプログラムおよびゲームデータを読み出す。
メモリカード接続ユニット115は、ゲーム進行に関する情報をメモリカード15に書き込んだり、読み出したりするためのユニットである。CPU111aは、ゲーム進行中またはゲーム終了時に使用者から「データのセーブ」が指令されると、RAM111cのワークエリアに記録されたゲーム進行に関する情報(この情報には、例えば、使用者が設定したゲームキャラクタの種類、獲得したポイントおよびアイテムなどの各種の特典などの情報が含まれる。)を、メモリカード接続ユニット115を介してメモリカード15に記録する。また、CPU111aは、メモリカード15に記録されたゲーム進行に関する情報を、ゲーム開始前にRAM111cに記録する。
I/Oインターフェース部116は、ディスクドライブユニット114またはメモリカード接続ユニット115によって読み出されたゲームプログラムおよびゲームデータ、並びに、信号送受信部118が受信したコントローラ12a,12bからの操作信号を制御部111に伝送する。また、I/Oインターフェース部116は、制御部111、描画処理部112および音声処理部113からの映像信号および音声信号等をモニタ13に伝送する。
通信処理部117は、ゲーム装置1がネットワーク回線2を介して他のゲーム装置1と通信を行う場合に、データの送信および受信を行うための制御を行う。具体的には、通信処理部117は、コントローラ12a,12bから入力される操作信号およびCPU111aから出力される信号をネットワーク回線2を介して他のゲーム装置1に送信する。また、通信処理部117は、ネットワーク回線2を介して他のゲーム装置1から送信される信号を受信してCPU111aに入力する。
信号送受信部118は、コントローラ12a,12bから短距離無線通信により送信される信号を受信する。コントローラ12a,12bからの信号には、コントローラ12a,12bに設けられた操作ボタンの操作情報の他に、コントローラ12aに設けられた各種センサ122(後述)による検出データが含まれる。CPU111aは、これらコントローラ12a,12bから送信される信号によりゲームを進行させる。また、信号送受信部118は、コントローラ12a,12bに各種信号(例えば、コントローラ番号(後述)を送信するための信号など)を送信する。
モニタ13は、本体11から送られてきた映像信号に応じてゲーム進行状態を示すゲーム画像を映し出したり、本体11から送られてきた音声信号に応じてスピーカ13aから効果音等の音声を出力するための装置である。モニタ13は、映像信号および音声信号を入力するための外部入力端子を備えた、例えばテレビジョン受像機によって構成されている。
ディスク14は、例えばDVD−ROM又はCD−ROM等の光ディスクである。ディスク14には、ゲームプログラム、そのゲームプログラムの実行に必要な種々のデータ、および画像データが記録されている。メモリカード15は、例えばフラッシュメモリ等のデータの書き換えが可能な不揮発性の記録媒体である。RAM111cのワークエリアに記録された情報は、ゲーム装置本体11の電源を切ると消滅する。したがって、CPU111aは、当該情報のうち消滅させずに残しておくべきゲーム進行に関する情報をメモリカード15に記録する。
ゲーム装置1は、ネットワークアダプタ16を介して、インターネット回線などのネットワーク回線2に接続することができる。この場合、ネットワーク回線2を介して、複数のゲーム装置1間でゲームを行うこともできる(いわゆる「オンラインゲーム」)。本実施形態では、ゲーム装置1単独で行うゲームについて説明しているが、このようなオンラインゲームでも本発明を適用することができる。
コントローラ12a,12bは、プレイヤキャラクタを動作させたり、ゲームに関する各種の設定を行ったりするために使用者によって操作される。使用者によってコントローラ12a,12bが操作されると、その操作信号が制御部111に伝送され、モニタ13に表示されたプレイヤキャラクタが所定の動作を行う。所定の動作としては、例えば、走る、しゃがむ、ジャンプする等の移動動作および武器を使用して相手を攻撃する攻撃動作がある。コントローラ12aは、主にプレイヤキャラクタの武器の使用のための操作に用いられる。コントローラ12bは、主としてプレイヤキャラクタの移動のための操作に用いられる。コントローラ12aが上述したメインコントローラに該当し、コントローラ12bが上述したサブコントローラに該当する。
図3Aおよび図3Bは、コントローラ12a,12bを説明するための図である。図3Aはコントローラ12a(以下では、「メインコントローラ12a」という。)を示しており、図3Bはコントローラ12b(以下では、「サブコントローラ12b」という。)を示している。
図3Aに示すように、メインコントローラ12aは、電源ボタン12a1、操作ボタン12a2、および発光部12a3を備えている。また、図示しないが内部に各種センサが内蔵されている。電源ボタン12a1は、押圧される毎にメインコントローラ12a自体の電源のオン状態とオフ状態とを切り替えるためのボタンであり、メインコントローラ12aを起動および停止させる。本実施形態では、当該電源ボタン12a1が押圧されてメインコントローラ12aが起動されたときに、後述するペアリング処理が開始される。操作ボタン12a2は、射撃のための照準をゲーム画面上に表示させたり、プレイヤキャラクタに射撃をさせたり、メニューおよびマップを開いたりするためのものである。発光部12a3は、所定の場合に発光する部材である。発光部12a3は、ゲーム装置1に備えられているカメラ(図示しない)によって撮像されることで、メインコントローラ12aの位置などを検出するために用いられる。各種センサは、メインコントローラ12aの回転および傾きを検出する。これら検出された情報が、メインコントローラ12aの動きおよび姿勢を識別するための操作入力である。例えば、使用者は、メインコントローラ12aを傾けたり移動することによって、ゲーム画面上に表示された照準を移動することができる。
図3Bに示すように、サブコントローラ12bは、電源ボタン12b1および操作ボタン等12b2を備えている。電源ボタン12b1は、押圧される毎にサブコントローラ12b自体の電源のオン状態とオフ状態とを切り替えるためのボタンであり、サブコントローラ12bを起動および停止させる。本実施形態では、当該電源ボタン12b1が押圧されてサブコントローラ12bが起動されたときに、ペアリングが行われる場合がある。操作ボタン等12b2は、プレイヤキャラクタを移動させる操作などを行う。操作ボタン等12b2には、Lスティック12b3が含まれている。Lスティック12b3はプレイヤキャラクタを移動させるなどの操作のためのスティックである。使用者は、Lスティック12b3を傾けることで、傾けた方向に対応するゲーム空間上の方向にプレイヤキャラクタを移動することができる。また、Lスティック12b3は押し込むことができ、この場合は操作ボタンとして機能する。操作ボタンとして機能させる場合は、Lスティック12b3を「Lボタン」といい、Lスティック12b3を押し込むことを「Lボタンを押圧する」という。本実施形態のペアリング処理においては、当該Lボタンの押圧を、ペアリングするサブコントローラ12bの選択に用いている。
図4は、メインコントローラ12aの内部構成を示すブロック図である。メインコントローラ12aは、制御部121、各種センサ122、操作部123、および信号送受信部124を備えている。制御部121にはI/Oインターフェース部125が接続されている。I/Oインターフェース部125には各種センサ122、操作部123、および信号送受信部124が接続されている。制御部121は、メインコントローラ12aの全体動作を制御するマイクロコンピュータを有している。マイクロコンピュータは、CPU121a、ROM121b、およびRAM121c等からなる。これらは、それぞれバスラインで接続されている。
CPU121aは、ROM121bに格納されている制御プログラムに基づいて、メインコントローラ12aの制御を行なう。RAM121cは、CPU121aが処理を行なうためのワークエリアを提供する。ROM121bには、メインコントローラ12aを制御するための制御プログラムが記憶されている。
各種センサ122は、メインコントローラ12aの回転および傾きを検出するものであって、例えば、ジャイロセンサおよび加速度センサを含んでいる。操作部123は、操作ボタン12a2が操作されたことを、操作信号として検出する。信号送受信部124は、各種センサ122が検出した情報、および、操作部123が検出した操作信号を、短距離無線通信によってゲーム装置1に送信する。また、信号送受信部124は、ゲーム装置1から送信される各種信号を受信する。
なお、サブコントローラ12bの内部構成は、各種センサ122が設けられていない点以外は図4に示すメインコントローラ12aの内部構成とほぼ同様であるので、説明を省略する。
次に、ゲーム装置本体11に接続されている各コントローラに識別情報であるコントローラ番号を割り当てるためのコントローラ割当テーブルについて説明する。
図5は、コントローラ割当テーブルの一例を説明するための図である。コントローラ割当テーブルは、RAM111cに記憶されている。コントローラ割当テーブルは、ゲーム装置本体11にコントローラが接続されたとき、ゲーム装置本体11に接続されていたコントローラの接続が解除されたとき、および、ゲーム装置本体11に接続されているコントローラについてペアリングが行われたときに書き換えられる。
図5に示す「コントローラ番号」は、ゲーム装置本体11に接続されたコントローラに割り当てられる識別情報としての番号である。コントローラ番号はコントローラの種類に関係なく割り当てられる。「コントローラの種類」は、各コントローラ番号が割り当てられたコントローラの種類を示す情報である。図5においては、コントローラがメインコントローラ12aである場合に「MC」を、サブコントローラ12bである場合に「SC」を記載している。「ペアリング番号」は、コントローラ番号が割り当てられたコントローラがペアリングされた場合に割り当てられる番号であり、ペアリングされた各コントローラに対して同じ番号が割り当てられる。図5においては、ペアリングされた順に番号が割り当てられている。なお、本実施形態においては、1台のメインコントローラ12aと1台のサブコントローラ12bとがペアリングされる。なお、図5に示していないが、コントローラ割当テーブルには接続された順番が判別できる情報も記録されている。
コントローラがゲーム装置本体11に接続された場合、コントローラ割当テーブルのコントローラ番号のうち他のコントローラに割り当てられていないコントローラ番号が当該接続されたコントローラに割り当てられる。具体的には、信号送受信部118がコントローラから電源投入を示す信号(電源オフ状態において電源ボタンが押圧されたことを示す信号であり、以下では「接続信号」という。)を受信したときに、CPU111aがRAM111cに記憶されているコントローラ割当テーブルを参照して未使用のコントローラ番号を取得する。そして、CPU111aは、当該コントローラ番号に対応する「コントローラの種類」欄に、接続されたコントローラの種類を設定する。なお、コントローラの種類を示す情報はコントローラから受信した接続信号に含まれている。
また、CPU111aは、取得したコントローラ番号を、信号送受信部118を介して接続されたコントローラに送信する。コントローラのCPU121aは、受信したコントローラ番号をRAM121cに記録する。CPU121aは操作信号を送信するとき、このコントローラ番号を識別情報として付与して送信する。なお、CPU121aは、コントローラ番号を用いる代わりに、コントローラにあらかじめ割り当てられている識別番号を用いることができる。この場合、CPU111aが当該識別番号とコントローラ割当テーブルのコントローラ番号との対応関係をRAM111cに記録する。CPU121aは操作信号を送信するとき、当該識別番号を付与して送信する。
コントローラの接続が解除された場合、コントローラ割当テーブルの対応する「コントローラの種類」欄の情報が削除され、当該コントローラ番号が未使用状態となる。また、コントローラのペアリングが行われた場合、ペアリングされた各コントローラに対応する「ペアリング番号」欄にペアリング番号が設定される。なお、コントローラの接続が解除された場合、対応する「ペアリング番号」欄の情報も削除され、当該コントローラとペアリングされていたコントローラに対応する「ペアリング番号」欄の情報も削除される。
図5においては、コントローラ番号「0」が割り当てられたメインコントローラ12aとコントローラ番号「4」が割り当てられたサブコントローラ12bとがペアリングされてペアリング番号「1」が割り当てられており、コントローラ番号「2」が割り当てられたメインコントローラ12aとコントローラ番号「5」が割り当てられたサブコントローラ12bとがペアリングされてペアリング番号「2」が割り当てられている。なお、コントローラ番号「6」が割り当てられたサブコントローラ12bはペアリングされていない。また、コントローラ番号「1」および「3」は未使用である。
本実施形態において、各プレイヤキャラクタは、コントローラ割当テーブルで割り当てられたペアリング番号に対応付けられている。例えば、図5に示すコントローラ割当テーブルにおいて、プレイヤキャラクタPC1がペアリング番号「1」に対応付けられ、プレイヤキャラクタPC2がペアリング番号「2」に対応付けられていると仮定する。この場合、コントローラ番号「0」が割り当てられたメインコントローラ12aとコントローラ番号「4」が割り当てられたサブコントローラ12bとによってプレイヤキャラクタPC1が操作され、コントローラ番号「2」が割り当てられたメインコントローラ12aとコントローラ番号「5」が割り当てられたサブコントローラ12bとによってプレイヤキャラクタPC2が操作される。なお、ペアリング番号と各プレイヤキャラクタとの対応付けはこれに限られない。
CPU111aは、コントローラから操作信号を受信したときに、当該操作信号に付与されているコントローラ番号とコントローラ割当テーブルとに基づいて、当該操作信号がいずれのプレイヤキャラクタを操作するものであるかを認識する。例えば、上記の例の場合、操作信号に付与されていたコントローラ番号が「5」であった場合、CPU111aは、プレイヤキャラクタPC2を操作するためにサブコントローラ12bから入力された操作信号であると認識する。また、CPU111aは、コントローラ割当テーブルを参照することで、各コントローラの接続状態およびペアリング状態を認識する。
次に、メインコントローラ12aとサブコントローラ12bとのペアリングを行うためのペアリング処理について、図6を参照して説明する。
図6は、ゲーム装置1のCPU111aによって行われるペアリング処理を説明するためのフローチャートである。ペアリング処理は、メインコントローラ12aが本体11に接続され通信可能になったときに開始される。具体的には、信号送受信部118が、メインコントローラ12aの信号送受信部124から送信された接続信号を受信して、当該信号をCPU111aに入力し、CPU111aが当該メインコントローラ12aにコントローラ番号を割り当てたときに、ペアリング処理が開始される。
まず、電源オン状態(接続中)のメインコントローラ(図6に示すフローチャートおよび当該フローチャートの説明の中では、省略して「MC」と記載する。)の中にペアリングされていないMCがあるか否かが判別される(S1)。当該判別は、コントローラ割当テーブル(図5参照)が参照されて行なわれる。すなわち、CPU111aは、コントローラ割当テーブルの中でコントローラ番号の順に探索して、「コントローラの種類」欄が「MC」であり「ペアリング番号」欄が設定されていないコントローラ番号があるか否かを判別する。なお、以下の各判別もCPU111aがコントローラ割当テーブルを参照することで行っているが、その詳細の記載は省略する。ペアリングされていないMCがない場合(S1:NO)、すなわち、電源オン状態のすべてのMCがペアリングされた場合、ペアリング処理は終了される。ペアリングされていないMCがある場合(S1:YES)、電源オン状態でありペアリングされていないMCのうち最初に接続されたものが探索MCとされる(S2)。探索MCとは、ペアリング処理において、対応付けられるサブコントローラ(図6に示すフローチャートおよび当該フローチャートの説明の中では、省略して「SC」と記載する。)を探索中のMCである。すなわち、ペアリング処理は、探索MCに対応付けられるSCを決定するための処理である。なお、最初に接続されたMCを探索MCとする代わりに、最初に通信可能となったMCを探索MCとしても良いし、コントローラ番号の最も小さい(または大きい)MCを探索MCとしても良い。
次に、電源オン状態でありペアリングされていないSCが1つだけであるか否かが判別される(S3)。このようなSCが1つだけの場合(S3:YES)、当該SCと探索MCとがペアリングされる(S4)。具体的には、当該SCのコントローラ番号と探索MCのコントローラ番号に対応する、コントローラ割当テーブルの「ペアリング番号」欄にペアリング番号が設定される。
次に、催促画面が表示されているか否かが判別される(S5)。表示されていない場合(S5:NO)はステップS1に戻り、表示されている場合(S5:YES)は当該表示が終了されたうえで(S6)、ステップS1に戻る。
ステップS3において、電源オン状態でありペアリングされていないSCが1つだけでない場合(S3:NO)、すなわち、電源オン状態でありペアリングされていないSCが2以上ある場合または1つもない場合、ペアリング済みのコントローラが有るか否かが判別される(S7)。前者の場合はどちらのSCとペアリングするかを決定するために、後者の場合はペアリングするためのSCを起動させるために、ステップS7〜S12の処理が行われる。
ステップS7において、ペアリング済みのコントローラがない場合(S7:NO)、ステップS8に進む。一方、ペアリング済みのコントローラがある場合(S7:YES)、ペアリングされていないMCの任意の操作ボタンが押圧されたか否かが判別される(S11)。ペアリングされていないMCの任意の操作ボタンが押圧された場合(S11:YES)、当該MCを探索MCとして(S12)、ステップS8に進む。このとき、ペアリングされていないMCが複数有った場合は、任意の操作ボタンが押圧されたMCが探索MCとされる。なお、ステップS11において、任意の操作ボタンとせず、所定の操作ボタンとしてもよい。
ステップS11において、ペアリングされていないMCの任意の操作ボタンが押圧されていない場合(S11:NO)、ステップS3に戻る。すなわち、電源オン状態でありペアリングされていないSCが1つだけとなる(S3:YES)か、ペアリング済みのコントローラがなくなる(S7:NO)か、ペアリングされていないMCの任意の操作ボタンが押圧される(S11:YES)まで、ステップS3、S7、S11が繰り返される。
ステップS8では、催促画面が表示される(S8)。具体的には、モニタ13の画面上に、「メインコントローラにペアリングしたいサブコントローラのLボタンを押して下さい」というメッセージが表示される。なお、このような文章によるメッセージに代えて、または、当該メッセージに加えて、サブコントローラのLボタンを押している画像またはアニメーションを表示するようにしてもよい。また、使用者に操作を促す方法は、モニタ13の画面上への表示に限定されない。例えば、モニタ13のスピーカ13aから音声で促すようにしてもよいし、画面表示と音声案内を併用するようにしてもよい。また、画面表示をして、使用者の注意を引くための効果音を鳴らすようにしてもよい。また、メインコントローラまたはサブコントローラにバイブレータ機能、発光機能、または音声出力機能が有る場合は、これを用いて使用者に操作を促すようにしてもよい。
次に、電源オン状態でありペアリングされていないSCが1つだけであるか否かが判別される(S9)。このようなSCが1つだけの場合(S9:YES)、ステップS4に進んで、当該SCと探索MCとがペアリングされる(S4)。一方、このようなSCが1つだけでない場合(S9:NO)、すなわち、電源オン状態でありペアリングされていないSCが2以上ある場合または1つもない場合、いずれかのSCのLボタンが押圧されたか否かが判別される(S10)。いずれかのSCのLボタンが押圧された場合(S10:YES)、ステップS4に進んで、当該SCと探索MCとがペアリングされる(S4)。
ステップS10において、いずれのSCのLボタンも押圧されない場合(S10:NO)、ステップS9に戻る。すなわち、電源オン状態でありペアリングされていないSCが2以上ある場合は、いずれかのSCのLボタンが押圧される(S10:YES)まで、または、いくつかのSCの電源がオフにされて、電源オン状態でありペアリングされていないSCが1台になる(S9:YES)まで、ステップS9とS10とが繰り返される。また、電源オン状態でありペアリングされていないSCが1つもない場合は、いずれかのSCの電源がONにされる(S9:YES)まで、ステップS9とS10とが繰り返される。
なお、図6に示すフローチャートはペアリング処理の一例であって、ペアリング処理はこれに限られない。ペアリングのための条件に応じて処理を行うように設定すればよい。また、ペアリングのための条件をデータベースとして設定して、各コントローラから入力される操作信号に応じて当該データベースを検索し、該当する条件に応じてペアリングを行うようにしてもよい。
次に、様々な状態でペアリング処理が行われたときの具体的なペアリングの手順について、図6に示すフローチャートおよび図7〜図14を参照して説明する。
図7は、いずれのサブコントローラも電源オフ状態であり、メインコントローラMC1が起動された場合の例を示している。以下では、「メインコントローラ」の記載を省略して、例えば「MC1」のように、また「サブコントローラ」を「SC1」のように記載する場合がある。なお、図7に示すように電源ボタン12a1(または12b1)の周囲に模様を付けている場合は、電源ボタン12a1(または12b1)が押圧されたことにより当該メインコントローラ(またはサブコントローラ)が起動されたことを示している。以下の図8〜図14においても同様である。
MC1が起動されたときに、ペアリング処理(図6参照)が開始される。電源オン状態でありペアリングされていないMC(MC1)があるので(図6において、S1:YES)、最初に起動されたMC1が探索MCとされる(図6におけるS2)。電源オン状態でありペアリングされていないSCが1つもなく(図6においてS3:NO)、ペアリング済みのコントローラがないので(図6においてS7:NO)、催促画面が表示される(図6におけるS8)。
図6におけるステップS9とS10が繰りかえされているときに、催促画面を見た使用者がSC1を起動させると、電源オン状態でありペアリングされていないSC(SC1)が1つだけの状態となる(図6において、S9:YES)。これにより、当該SC1と探索MCであるMC1とがペアリングされる(図6におけるS4)。その後、催促画面表示が終了され(図6において、S5:YESよりS6)、電源オン状態でありペアリングされていないMCがなくなったので(図6において、S1:NO)、ペアリング処理が終了される。
なお、図7の例は、先述した図1Aにおいていずれのサブコントローラも起動されていない場合に該当する。
図8は、サブコントローラSC1が電源オン状態であり、メインコントローラMC1が起動された場合の例を示している。
MC1が起動されたときに、ペアリング処理が開始され、MC1が探索MCとされる(図6において、S1:YESよりS2)。次に、電源オン状態でありペアリングされていないSCが1つだけ(SC1)有るので(図6においてS3:YES)、催促画面が表示されることなく、当該SC1と探索MCであるMC1とがペアリングされる(図6におけるS4)。その後、催促画面が表示されておらず(図6において、S5:NO)、電源オン状態でありペアリングされていないMCがなくなったので(図6において、S1:NO)、ペアリング処理が終了される。なお、図8の例は、先述した図1AにおいてサブコントローラSC1のみが起動されている場合に該当する。
図9は、サブコントローラSC1およびSC2が電源オン状態であり、メインコントローラMC1が起動された場合の例を示している。なお、図9に示すようにサブコントローラのLボタン12b3の周囲に模様を付けている場合は、Lボタン12b3が押圧されたことを示している。以下の図10〜図14においても同様である。
MC1が起動されたときに、ペアリング処理が開始され、MC1が探索MCとされる(図6において、S1:YESよりS2)。次に、電源オン状態でありペアリングされていないSCが2つ(SC1,SC2)有り(図6においてS3:NO)、ペアリング済みのコントローラがないので(図6においてS7:NO)、催促画面が表示される(図6におけるS8)。催促画面を見た使用者がSC1のLボタンを押圧すると(図6において、S10:YES)、当該SC1と探索MCであるMC1とがペアリングされる(図6におけるS4)。その後、催促画面表示が終了されてペアリング処理が終了される(図6において、S5:YESよりS6、S1:NO)。なお、図9の例は、先述した図1A〜Dの例に該当する。
なお、図9の例において、催促画面を見た使用者がSC2を電源オフ状態にした場合、電源オン状態でありペアリングされていないSC(SC1)が1つだけの状態となるので(図6において、S9:YES)、当該SC1と探索MCであるMC1とがペアリングされる(図6におけるS4)。
なお、図9の例において、先に接続されたサブコントローラSCと探索MCであるMC1とがペアリングされるように、ペアリングのための条件を設定してもよい。
図10は、メインコントローラMC1とサブコントローラSC1とがペアリングされた状態であり、メインコントローラMC2が起動された場合の例を示している。なお、図10に示すようにメインコントローラの操作ボタン12a2の周囲に模様を付けている場合は、任意の操作ボタン12a2が押圧されたことを示している。以下の図12〜図14においても同様である。
MC2が起動されたときに、ペアリング処理が開始され、MC2が探索MCとされる(図6において、S1:YESよりS2)。次に、電源オン状態でありペアリングされていないSCが1つもなく(図6においてS3:NO)、ペアリング済みのコントローラ(MC1とSC1)があるので(図6においてS7:YES)、ペアリングされていないMC(MC2)の任意の操作ボタンが押圧されるまで、図6におけるステップS3、S7、S11が繰り返される。使用者がMC2の任意の操作ボタン12a2を押圧した場合(図6においてS11:YES)、MC2が探索MCとされ(図6におけるS12)、催促画面が表示される(図6におけるS8)。この場合、催促画面を見た使用者が、新たにSC2を起動させる場合と、ペアリングされているSC1のLボタンを押圧する場合とが考えられる。
前者の場合、電源オン状態でありペアリングされていないSC(SC2)が1つだけの状態となるので(図6において、S9:YES)、当該SC2と探索MCであるMC2とがペアリングされる(図6におけるS4)。その後、催促画面表示が終了されてペアリング処理が終了される(図6において、S5:YESよりS6、S1:NO)。
一方、後者の場合(図6において、S10:YES)、当該SC1と探索MCであるMC2とがペアリングされ(図6におけるS4)、催促画面表示が終了される(図6において、S5:YESよりS6)。この場合、SC1とペアリングされていたMC1のペアリングが解除され、電源オン状態でありペアリングされていないMC(MC1)がある(図6において、S1:YES)ので、MC1が探索MCとされて(図6におけるS2)、さらにペアリング処理が継続される。
その後の処理は、MC2とSC1とがペアリングされた状態でMC1が起動された状態の処理が行われる(図6におけるステップS3、S7、S11が繰り返される)。
なお、仮に、ステップS7およびS11の判別を設けずに、ステップS3がNOの場合に催促画面表示(S8)をするようにした場合、使用者がSC2を所有していない場合にMC1またはMC2のどちらかを電源オフにしない限り、催促画面表示とSC1のLボタン押圧との繰り返しから抜け出ることができなくなる。また、使用者がMC1またはMC2が電源オン状態であることを知らなかった場合(例えば、MC1がSC1とペアリングされていることに気付かずにMC2を起動した場合など)にも、当該繰り返しから抜け出ることができなくなる。したがって、本実施形態では、このような状態を回避するために、ペアリング済みのコントローラが有る場合には、ペアリングされていないMCの任意の操作ボタン12a2の押圧を条件(図6において、S7:YES、S11:YES)に催促画面表示(S8)を行うようにしている。なお、ステップS7およびS11の判別を設けずに、ステップS3がNOの場合に催促画面表示(S8)をするようにしてもよい。
図11は、メインコントローラMC1とサブコントローラSC1とがペアリングされており、サブコントローラSC2が電源オン状態であり、メインコントローラMC2が起動された場合の例を示している。
MC2が起動されたときに、ペアリング処理が開始され、MC2が探索MCとされる(図6において、S1:YESよりS2)。次に、電源オン状態でありペアリングされていないSCが1つだけ(SC2)有るので(図6においてS3:YES)、催促画面が表示されることなく、当該SC2と探索MCであるMC2とがペアリングされる(図6におけるS4)。その後、催促画面が表示されておらず(図6において、S5:NO)、電源オン状態でありペアリングされていないMCがなくなったので(図6において、S1:NO)、ペアリング処理が終了される。
図12は、メインコントローラMC1とサブコントローラSC1とがペアリングされており、サブコントローラSC2およびSC3が電源オン状態であり、メインコントローラMC2が起動された場合の例を示している。
MC2が起動されたときに、ペアリング処理が開始され、MC2が探索MCとされる(図6において、S1:YESよりS2)。次に、電源オン状態でありペアリングされていないSCが2つ(SC2,SC3)有り(図6においてS3:NO)、ペアリング済みのコントローラ(MC1とSC1)があるので(図6においてS7:YES)、ペアリングされていないMC(MC2)の任意の操作ボタンが押圧されるまで、図6におけるステップS3、S7、S11が繰り返される。使用者がMC2の任意の操作ボタンを押圧した場合(図6においてS11:YES)、MC2が探索MCとされ(図6におけるS12)、催促画面が表示される(図6におけるS8)。使用者が、SC2のLボタンを押圧した場合(図6において、S10:YES)、当該SC2と探索MCであるMC2とがペアリングされる(図6におけるS4)。その後、催促画面表示が終了されてペアリング処理が終了される(図6において、S5:YESよりS6、S1:NO)。
なお、図12の例において、催促画面を見た使用者がSC3を電源オフ状態にした場合も、SC2と探索MCであるMC2とがペアリングされる(図6において、S9:YESによりS4)。また、図12の例において、催促画面を見た使用者がペアリングされているSC1のLボタンを押圧した場合、SC1と探索MCであるMC2とがペアリングされ(図6において、S10:YESによりS4)、MC1が探索MCとされて(図6において、S1:YESによりS2)、さらにペアリング処理が継続される。
図13は、メインコントローラMC1,MC2とサブコントローラSC1,SC2とが電源オン状態である場合の例を示している。
この状態は、図9に示す例における催促画面が表示されている状態において、使用者がさらにメインコントローラMC2を起動した場合に生じる。この場合、MC2が電源オン状態になっても、ステップS9とS10との繰り返しは継続される。使用者がSC1のLボタンを押圧すると(図6において、S10:YES)、当該SC1と探索MCであるMC1とがペアリングされて(図6におけるS4)、催促画面表示が終了される(図6において、S5:YESよりS6)。この場合、電源オン状態でありペアリングされていないMC(MC2)がある(図6において、S1:YES)ので、MC2が探索MCとされる(図6におけるS2)。次に、電源オン状態でありペアリングされていないSCが1つだけ(SC2)有るので(図6においてS3:YES)、催促画面が表示されることなく、当該SC2と探索MCであるMC2とがペアリングされ(図6におけるS4)、ペアリング処理が終了される(図6において、S5:NO、S1:NO)。
なお、メインコントローラMC1およびMC2が起動されている状態で(MC1がMC2よりも先に起動されている)、サブコントローラSC1およびSC2が同時に起動された場合も、MC1,MC2,SC1,およびSC2が電源オン状態であり、ステップS9とS10との繰り返しが継続された状態となる。この状態で使用者がSC1のLボタンを押圧すると、上記と同じ手順でペアリングが行われる。なお、MC1およびMC2が起動されている状態で、SC1およびSC2の起動が同時でなく、例えば、SC1の起動の方が早かった場合、電源オン状態でありペアリングされていないSC(SC1)が1つだけの状態となるので(図6において、S9:YES)、SC1とMC1とがペアリングされる(図6におけるS4)。その後、MC2が探索MCとされ(図6におけるS2)、ペアリングされていないSC2とペアリングされて(図6において、S3:YESによりS4)、ペアリング処理が終了される。
なお、図13の例においては、「接続が早かった操作部から順に選択すること」および「所定の種類の操作部であること」が本発明の「選択条件」に相当し、「メインコントローラMC1」が「接続が早かった操作部」および「所定の種類の操作部」に相当する。
図14は、メインコントローラMC1,MC2とサブコントローラSC1,SC2,SC3とが電源オン状態である場合の例を示している。
この状態は、SC1,SC2,SC3,MC1が電源オン状態であり催促画面が表示されている状態において、使用者がさらにメインコントローラMC2を起動した場合に生じる。この場合、MC2が電源オン状態になっても、ステップS9とS10との繰り返しは継続される。使用者がSC1のLボタンを押圧すると(図6において、S10:YES)、当該SC1と探索MCであるMC1とがペアリングされて(図6におけるS4)、催促画面表示が終了される(図6において、S5:YESよりS6)。この場合、電源オン状態でありペアリングされていないMC(MC2)がある(図6において、S1:YES)ので、MC2が探索MCとされる(図6におけるS2)。次に、電源オン状態でありペアリングされていないSCが2つ(SC2,SC3)有り(図6においてS3:NO)、ペアリング済みのコントローラ(MC1とSC1)があるので(図6においてS7:YES)、ペアリングされていないMC(MC2)の任意の操作ボタンが押圧されるまで、図6におけるステップS3、S7、S11が繰り返される。使用者がMC2の任意の操作ボタンを押圧した場合(図6においてS11:YES)、MC2が探索MCとされ(図6におけるS12)、催促画面が表示される(図6におけるS8)。なお、仮にMC2の他にMC3(図示なし)も電源オン状態であった場合は、使用者に任意の操作ボタンを押圧された方のMCが探索MCとされる。使用者が、SC2のLボタンを押圧した場合(図6において、S10:YES)、当該SC2と探索MCであるMC2とがペアリングされる(図6におけるS4)。その後、催促画面表示が終了されてペアリング処理が終了される(図6において、S5:YESよりS6、S1:NO)。
なお、メインコントローラMC1およびMC2が起動されている状態で(MC1がMC2よりも先に起動されている)、サブコントローラSC1,SC2,およびSC3が同時に起動された場合も、MC1,MC2,SC1,SC2,およびSC3が電源オン状態であり、ステップS9とS10との繰り返しが継続された状態となる。この状態で使用者がSC1のLボタンを押圧すると、上記と同じ手順でペアリングが行われる。なお、MC1およびMC2が起動されている状態で、SC1,SC2,およびSC3の起動が同時でなく、例えば、SC1の起動の方が早かった場合、電源オン状態でありペアリングされていないSC(SC1)が1つだけの状態となるので(図6において、S9:YES)、SC1とMC1とがペアリングされる(図6におけるS4)。その後、MC2が探索MCとされ(図6におけるS2)、電源オン状態でありペアリングされていない2つのSC(SC2,SC3)のうち、使用者にLボタンを押圧されたSC2がペアリングされ(図6において、S3:NO、S7:YES、S11:YES、S12、S8、S9:NO、S10:YES、S4)、催促画面表示が終了されてペアリング処理が終了される(図6において、S5:YESよりS6、S1:NO)。
本実施形態によると、メインコントローラが起動されたときに、当該メインコントローラにペアリングするサブコントローラのLボタンを押圧するように使用者に促すメッセージ(催促画面)が表示される。催促画面を見た使用者がサブコントローラのLボタンを押圧すると、当該サブコントローラとメインコントローラとがペアリングされる。したがって、メインコントローラとサブコントローラとをケーブルなどで直接接続することなく、使用者の希望にしたがって、ペアリングを行うことができる。
また、メインコントローラが起動されたときに、すでに1台のサブコントローラが電源オン状態となっていた場合には、催促画面を表示することなく、当該サブコントローラとメインコントローラとがペアリングされる。したがって、使用者の手間を省くことができる。
なお、上記実施形態では、メインコントローラとサブコントローラとのペアリングについて説明したが、これに限られない。ゲーム装置に接続されるコントローラであれば、他のコントローラであっても、ペアリングをする際に、本発明を適用することができる。また、ペアリングされたコントローラに、さらに別のコントローラをペアリングする場合(すなわち、3台以上のコントローラを対応付ける場合)にも、本発明を適用することができる。また、ペアリングされるコントローラが同じ種類のコントローラであってもよい。例えば、サブコントローラとサブコントローラとをペアリングさせるようにしてもよい。また、上記実施形態では、メインコントローラとサブコントローラがそれぞれ1種類である場合について説明したが、これに限られない。本発明は、メインコントローラとサブコントローラの一方または両方が複数種類ある場合にも適用することができる。
上記実施形態では、メインコントローラとサブコントローラとで1体のプレイヤキャラクタを操作する場合について説明したが、操作される対象は1体のキャラクタに限定されない。例えば、複数のキャラクタからなる1組の集団を操作する場合、および、それぞれが1体のキャラクタを操作するコントローラを複数対応付けて、使用者が対応付けられた複数のコントローラを操作することで複数のキャラクタを操作する場合にも、本発明を適用することができる。
上記実施形態では、ペアリング処理をゲーム開始前に行う場合について説明したが、ゲームの途中でペアリング処理を行うようにしてもよい。例えば、ゲーム途中にサブコントローラが電源オフ状態になった場合(例えば、使用者が誤って電源ボタンを押圧した場合、または、サブコントローラの電池の充電量が不足した場合など)に、ペアリング処理を行うようにしてもよい。
上記実施形態では、メインコントローラMC1が起動されたときに2台のサブコントローラSC1,SC2が起動されている場合、メインコントローラMC1のペアリング相手を、所定の操作(Lボタンの押圧)がされたサブコントローラとしている(図1A〜D参照)が、これに限られない。例えば、メインコントローラMC1のペアリング相手を、2台のサブコントローラSC1,SC2のうちコントローラ番号の小さい方(大きい方)としてもよいし、2台のサブコントローラSC1,SC2のうちランダムに選択された方としてもよい。また、催促画面(図1B参照)の表示は必ずしも必要ではない。例えば、使用者がペアリングのための手順を知っている場合は、使用者はペアリングしたいサブコントローラに所定の操作(Lボタンの押圧)を行うべきことを認識しているので、催促画面の表示を行わなくてもよい。
上記実施形態では、アクションゲームを例に説明したが、これに限られない。例えば、RPG(ロールプレイングゲーム)、シューティングゲーム、格闘ゲーム、アドベンチャーゲームなどの様々なジャンルのゲームにおいても、本発明を適用することができる。また、本発明は、複数の使用者の操作するキャラクタ若しくはCPUの制御するキャラクタがチームを組んで協同して敵キャラクタと対戦するようなゲーム、および、敵キャラクタとしての他の使用者の操作するキャラクタと対戦するようなゲームにも適用することができる。
上記実施形態では、家庭用ゲーム装置でゲームを実施する場合について説明したが、これに限られない。本発明は、例えば、アーケードゲーム装置、および、ゲームソフトが搭載されているパーソナルコンピュータ等でゲームを実施する場合にも適用することができる。
また、コントローラ以外の操作部をペアリングする場合にも、本発明を適用することができる。例えば、1台のコンピュータを複数の使用者がそれぞれの所有するキーボードで操作する場合に、各使用者が使用するキーボードとマウスとのペアリングを行う場合などにも、本発明を適用することができる。
本発明に係るコンピュータおよびプログラムは、上述した実施形態に限定されるものではない。本発明に係るコンピュータおよびプログラムの具体的な構成は、種々に設計変更自在である。