(58)【調査した分野】(Int.Cl.,DB名)
前記判定部は、前記操作時間に関する情報に基づいて、前記第1操作部に対する操作と前記第2操作部に対する操作とが実質的に同時に行われたか否かを判定する、請求項1記載のゲームシステム。
前記本体装置は、前記第1操作部に対する操作に応じた第1操作信号および前記第2操作部に対する操作に応じた第2操作信号の少なくともいずれかに基づいてゲーム処理を実行するゲーム処理実行部をさらに含む、請求項1または2に記載のゲームシステム。
前記登録部は、前記判定部による判定結果が肯定である場合に、前記ゲームコントローラの操作方式を複数の操作方式のうちの前記第1操作方式として登録する、請求項1〜3のいずれか1項に記載のゲームシステム。
前記第1および第2操作部は、ユーザが操作する場合における前記ゲームコントローラのハウジングの所定の操作面側に設けられる、請求項1〜4のいずれか1項に記載のゲームシステム。
前記登録部は、前記判定部による判定結果が否定である場合に、その後に受信した前記第1操作部に対する操作に応じた第1操作信号および前記第2操作部に対する操作に応じた第2操作信号に基づいて、前記ゲームコントローラの操作方式を前記第1操作方式として登録する、請求項1〜5のいずれか1項に記載のゲームシステム。
前記第1および第2操作部は、ユーザが操作する場合における前記ゲームコントローラのハウジングの所定の操作面側に設けられる、請求項9に記載のゲームコントローラ。
【発明を実施するための形態】
【0030】
この実施形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【0031】
[A.情報処理システム]
本実施形態に従う情報処理システムに係る装置構成について説明する。本実施形態に従う情報処理システムは、少なくとも以下に説明する情報処理装置によって構成される。
【0032】
例えば、情報処理装置は、携帯型ゲーム装置、携帯電話、あるいはスマートフォン等といった、携帯型(可搬型とも言う)の装置であってもよいし、パーソナルコンピュータや家庭用ゲーム機等といった据置型の装置であってもよいし、業務用のアーケードゲーム装置のような大型の装置であってもよい。本例においては、一例として情報処理装置の一例としてゲーム装置について説明する。また、本例においては、操作装置の一例としてゲーム装置に対して設けられたゲームコントローラについて説明するが、特にゲームコントローラに限られず、情報処理装置に対して操作データを送信することが可能な入力デバイスであればどのような操作装置であっても良い。
【0033】
(a1:ゲーム装置の全体構成)
図1は、本実施形態に従うゲーム装置1の外観を示す模式図である。
【0034】
図1に示すように、ゲーム装置1は、本体装置2と、左コントローラ3と、右コントローラ4とを含む。本体装置2は、表示部の一例としてのディスプレイ12を有しており、ゲーム装置1でのゲーム処理を含む各種処理を実行する。
【0035】
図2は、本実施形態に従うゲーム装置1の別態様の外観を示す模式図である。
図2に示すように、左コントローラ3および右コントローラ4は、本体装置2から分離可能に構成されてもよい。このとき、左コントローラ3および右コントローラ4を一体的に構成してもよいし、左コントローラ3および右コントローラ4をそれぞれ分離した装置として構成してもよい。このように、操作部に相当する左コントローラ3および右コントローラ4は、本体装置2とは分離して構成されてもよい。
【0036】
左コントローラ3は、本体装置2の左側(
図1に示すx軸正方向側)に装着することができる。右コントローラ4は、本体装置2の右側(
図1に示すx軸負方向側)に装着することができる。なお、以下の説明において、左コントローラ3および右コントローラ4を「コントローラ」と総称することがある。以下、本体装置2、左コントローラ3および右コントローラ4のより具体的な構成例について説明する。
【0037】
(a2:本体装置の構造)
図3は、本実施形態に従う本体装置2を示す六面図である。
【0038】
図3を参照して、本体装置2は、略板状のハウジング11を有している。
ハウジング11の主面(すなわち、表側の面、あるいは、ディスプレイ12が設けられる面)は、大略的には矩形形状になっている。
【0039】
なお、ハウジング11の形状および大きさは任意に設計できる。
(1)ハウジング11の主面上に設けられる部材
図1〜3に示すように、本体装置2のハウジング11の主面には、ディスプレイ12が設けられる。ディスプレイ12は、本体装置2が取得または生成した画像(静止画であってもよいし、動画像であってもよい)を表示する。ゲーム処理が実行される場合、ディスプレイ12は、仮想空間および仮想空間内のオブジェクトを表示する。典型的には、ディスプレイ12は、液晶表示装置(LCD)で構成されるが、任意の種類の表示装置を採用できる。
【0040】
ディスプレイ12の画面上にはタッチパネル13が設けられる。典型的には、タッチパネル13は、マルチタッチ入力が可能な方式(例えば、静電容量方式)のデバイスが採用される。但し、タッチパネル13としては、例えば、シングルタッチ入力が可能な方式(例えば、抵抗膜方式)のデバイスといった、任意の種類のデバイスを採用できる。
【0041】
本体装置2のハウジング11の主面には、スピーカ孔11aおよび11bが形成されており、ハウジング11の内部に配置されるスピーカ(
図7に示すスピーカ88)から発生された音がスピーカ孔11aおよび11bから出力される。
【0042】
本体装置2には2つのスピーカが設けられており、左スピーカおよび右スピーカのそれぞれの位置に対応付けてスピーカ孔11aおよび11bが形成されている。すなわち、スピーカ孔11aは、左スピーカに対応付けてディスプレイ12の左側に形成され、スピーカ孔11bは、右スピーカに対応付けてディスプレイ12の右側に形成される。
【0043】
(2)ハウジング11の左側面に設けられる部材
ハウジング11の左側面には、左コントローラ3を本体装置2に着脱可能に装着するための部材である左レール部材15が設けられる。左レール部材15は、ハウジング11の左側面において、上下方向に沿って延びる。左レール部材15は、左コントローラ3のスライダ(
図4に示すスライダ40)と係合可能な形状を有している。左レール部材15とスライダ40とによってスライド機構が形成される。このようなスライド機構によって、左コントローラ3を本体装置2に対してスライド可能かつ着脱可能に装着することができる。
【0044】
ハウジング11の左側面には、左側端子17が設けられる。左側端子17は、本体装置2と左コントローラ3との間で有線通信を行なうための端子である。左側端子17は、左コントローラ3が本体装置2に装着された場合に、左コントローラ3の端子(
図4に示す端子42)と接触する位置に設けられる。左側端子17は、左コントローラ3が本体装置2に装着された状態で、本体装置2の左側端子と左コントローラ3の端子とが接する任意の位置に配置すればよい。一例として、
図3に示すように、左側端子17は左レール部材15の下側端部付近に設けられる。
【0045】
(3)ハウジング11の右側面に設けられる部材
図3に示すように、ハウジング11の右側面には、左側面に設けられる構成と同様の構成が設けられる。すなわち、ハウジング11の右側面には、右コントローラ4を本体装置2に着脱可能に装着するための部材である右レール部材19が設けられる。右レール部材19は、ハウジング11の右側面において、上下方向に沿って延びる。右レール部材19は、右コントローラ4のスライダ(
図5に示すスライダ62)と係合可能な形状を有している。右レール部材19とスライダ62とによってスライド機構が形成される。このようなスライド機構によって、右コントローラ4を本体装置2に対してスライド可能かつ着脱可能に装着することができる。
【0046】
右レール部材19は、左レール部材15と同様の形状を有している。すなわち、右レール部材19は、左レール部材15と同様の断面形状となる溝を有する形状である。但し、右レール部材19は、左レール部材15と全く同じ形状である必要はない。例えば、別の実施形態として、左レール部材15の溝と右レール部材19の溝との間で大きさおよび/または形状を異ならせることで、右コントローラ4のスライダ62が左レール部材15に係合できないように、および/または、左コントローラ3のスライダ40が右レール部材19に係合できないように構成してもよい。
【0047】
ハウジング11の右側面には、右側端子21が設けられる。右側端子21は、本体装置2が右コントローラ4との間で有線通信を行なうための端子である。右側端子21は、右コントローラ4が本体装置2に装着された場合に、右コントローラ4の端子(
図5に示す端子64)と接触する位置に設けられる。右側端子21は、右コントローラ4が本体装置2に装着された状態で、本体装置2の右側端子と右コントローラ4の端子とが接する任意の位置に配置すればよい。一例として、
図3に示すように、右側端子21は右レール部材19の下側端部付近に設けられる。
【0048】
(4)ハウジング11の上側面に設けられる部材
図3に示すように、ハウジング11の上側面には、第1の種類の記憶媒体を装着するための第1スロット23が設けられる。典型的な構成として、第1スロット23の開口部には開閉可能な蓋部が設けられており、蓋部を開けた状態において、第1スロット23に第1の種類の記憶媒体を挿入することができる。第1の種類の記憶媒体は、例えば、ゲーム装置1およびそれと同種のゲーム装置に専用設計された記憶媒体(例えば、専用メモリカード)である。第1の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を格納するために用いられる。
【0049】
ハウジング11の上側面には、本体装置2の電源のオン/オフを切り替えるための電源ボタン28が設けられる。
【0050】
ハウジング11の上側面には、音声入出力端子25(具体的には、イヤホンジャック)が設けられる。音声入出力端子25には、マイクやイヤホンを装着することができる。
【0051】
(5)ハウジング11の下側面に設けられる部材
図3に示すように、ハウジング11の下側面には、本体装置2が後述するクレードル5との間で有線通信を行なうための下側端子27が設けられる。下側端子27は、本体装置2がクレードル5に装着された場合に、クレードル5の端子と接触する位置に設けられる。典型的には、下側端子27として、USB(Universal Serial Bus)コネクタ(より具体的には、メス側コネクタ)を採用できる。
【0052】
上述したハウジング11に設けられる各構成要素(具体的には、ボタン、スロット、端子等)の位置、形状、および数は任意に設計できる。例えば、別の実施形態として、電源ボタン28、第1スロット23のうちのいくつかについては、ハウジング11の他の側面または背面に設けてもよい。また、上記構成要素のうちいくつかを省略した構成を採用してもよい。
【0053】
(a3:左コントローラの構造)
図4は、本実施形態に従う左コントローラ3を示す六面図である。
【0054】
図4を参照して、左コントローラ3は、略板状のハウジング31を有している。ハウジング31の主面(すなわち、表側の面、あるいは、
図1に示すz軸負方向側の面)は、大略的には矩形形状になっている。ハウジング31は、縦長の形状、すなわち上下方向(すなわち、
図1に示すy軸方向)に長い形状を有している。
【0055】
左コントローラ3は、本体装置2から外された状態において、ユーザが把持したときにその主面が縦長となる向きで使用することも可能であるし、その主面が横長となる向きで使用することも可能である。
【0056】
ハウジング31の形状および大きさは任意に設計できる。別の実施形態として、ハウジング31を略板状以外の形状に構成してもよい。ハウジング31についても、矩形形状でなくてもよく、例えば、半円状等の形状を採用してもよい。さらに、ハウジング31は、縦長の形状でなくてもよい。
【0057】
ハウジング31の上下方向の長さは、本体装置2に係るハウジング11の上下方向の長さと略同じであることが好ましい。ハウジング31の厚さ(すなわち、前後方向の長さ、あるいは、
図1に示すz軸方向の長さ)は、本体装置2のハウジング11の厚さと略同じであることが好ましい。したがって、左コントローラ3が本体装置2に装着された場合(
図1参照)には、ユーザは、本体装置2と左コントローラ3とを一体の装置のような感覚で把持することができる。
【0058】
ハウジング31の主面は、左側の角部分が、右側の角部分よりも丸みを帯びた形状になっている。すなわち、ハウジング31の上側面と左側面との接続部分、および、ハウジング31の下側面と左側面との接続部分は、その上側面と右側面との接続部分、および、その下側面と右側面との接続部分に比べて、丸くなっている(すなわち、面取りにおけるRが大きい)。したがって、左コントローラ3が本体装置2に装着された場合(
図1参照)には、ゲーム装置1の左側が丸みを帯びた形状となるので、ユーザにとって持ちやすい形状となる。
【0059】
左コントローラ3には、アナログスティック32が設けられる。
図4に示すように、アナログスティック32は、ハウジング31の主面に設けられる。アナログスティック32は、方向を入力することが可能な方向指示部の一例である。アナログスティック32は、ハウジング31の主面に平行な全方向(すなわち、上下左右および斜め方向を含む、360°の方向)に傾倒可能なスティック部材を有する。ユーザは、スティック部材を傾倒することによって傾倒方向に応じた方向の入力が可能なアナログ入力デバイスである。アナログスティック32はさらに、スティック部材を傾倒するときに、傾倒方向に応じた方向の入力に加えて、傾倒した角度に応じた大きさの入力が可能なように構成してもよい。また、方向指示部は、スライドスティック等であってもよい。スライドスティックは、ハウジング31の主面に平行な全方向にスライド可能なスティック部材を有する入力部であり、ユーザは、スティック部材をスライドすることによってスライド方向に応じた入力が可能である。スライドスティックはさらに、スライド量に応じた大きさの入力が可能なようにも構成できる。また、方向指示部は、ボタンの押下操作によって方向を指示する入力部として構成してもよい。例えば、方向指示部は、十字キーまたは上下左右に対応した4つのボタンによって方向を指示する入力部として構成してもよい。また、本実施形態においては、スティック部材を(ハウジング31に垂直な方向に)押下する入力が可能である。すなわち、本実施形態におけるアナログスティック32は、スティック部材の傾倒方向および傾倒量に応じた方向および大きさの入力と、スティック部材に対する押下入力とを行なうことが可能な入力部である。
【0060】
左コントローラ3には、4つの操作ボタン33〜36(具体的には、右方向ボタン33、下方向ボタン34、上方向ボタン35、および、左方向ボタン36)が設けられる。
図4に示すように、これら4つの操作ボタン33〜36は、ハウジング31の主面においてアナログスティック32の下側に設けられる。本実施形態においては、左コントローラ3の主面に設けられる操作ボタンを4つとするが、操作ボタンの数は任意である。これらの操作ボタン33〜36は、本体装置2で実行される各種プログラム(例えば、OSプログラムやアプリケーションプログラム)に応じた指示を行なうために用いられる。なお、本実施形態においては、操作ボタン33〜36は方向入力を行なうために用いられてもよいことから、説明の便宜上、操作ボタン33〜36を、右方向ボタン33、下方向ボタン34、上方向ボタン35、および、左方向ボタン36とも称する。但し、操作ボタン33〜36は、方向入力以外の指示を行なうために用いられてもよい。
【0061】
左コントローラ3の主面に設けられる操作部(具体的には、アナログスティック32および操作ボタン33〜36)は、左コントローラ3が本体装置2に装着される場合、ゲーム装置1を把持するユーザの例えば左手の親指によって操作される(
図9参照)。また、左コントローラ3が本体装置2から外された状態で使用される場合、操作部は、左コントローラ3を把持するユーザの例えば左の手の親指で操作される(
図10参照)。
【0062】
左コントローラ3には、第1Lボタン38およびZLボタン39が設けられる。これらの操作ボタン38および39は、上述の操作ボタン33〜36と同様、本体装置2で実行される各種プログラムに応じた指示を行なうために用いられる。
図4に示すように、第1Lボタン38は、ハウジング31の側面のうち左上部分に設けられる。ZLボタン39は、ハウジング31の側面から裏面にかけての左上部分(厳密には、ハウジング31を表側から見たときの左上部分)に設けられる。つまり、ZLボタン39は、第1Lボタン38の後側(
図1に示すz軸正方向側)に設けられる。本実施形態においては、ハウジング31の左上部分が丸みを帯びた形状であるので、第1Lボタン38およびZLボタン39は、ハウジング31の当該左上部分の丸みに応じた丸みを帯びた形状を有する。
【0063】
左コントローラ3が本体装置2に装着される場合、第1Lボタン38およびZLボタン39は、ゲーム装置1における左上部分に配置されることになる(
図1参照)。したがって、ゲーム装置1を把持するユーザは、左手の人差し指や中指で第1Lボタン38およびZLボタン39を操作することができる。
【0064】
左コントローラ3は、上述したスライダ40を有している。
図4に示すように、スライダ40は、ハウジング31の右側面において、上下方向に沿って延びる。スライダ40は、本体装置2の左レール部材15(より具体的には、左レール部材15の溝)と係合可能な形状を有している。具体的には、スライダ40の断面(具体的には、上下方向に対して垂直な断面)は、凸型の形状を有する。より具体的には、スライダ40の断面は、左レール部材15の断面形状に応じたT字形状を有している。したがって、左レール部材15に係合したスライダ40は、スライド方向(すなわち、左レール部材15が延びる方向)に垂直な向きに関しては固定されて外れないようになっている。
【0065】
また、左コントローラ3は、第2Lボタン43および第2Rボタン44を備える。これらのボタン43および44は、他の操作ボタン33〜36と同様、本体装置2で実行される各種プログラムに応じた指示を行うために用いられる。
図4に示すように、第2Lボタン43および第2Rボタン44は、スライダ40の装着面に設けられる。第2Lボタン43は、スライダ40の装着面において、上下方向(
図1に示すy軸方向)に関する中央よりも上側に設けられる。第2Rボタン44は、スライダ40の装着面において、上下方向に関する中央よりも下側に設けられる。第2Lボタン43および第2Rボタン44は、左コントローラ3が本体装置2に装着されている状態では押下することができない位置に配置されている。つまり、第2Lボタン43および第2Rボタン44は、左コントローラ3を本体装置2から外した場合において用いられるボタンである。第2Lボタン43および第2Rボタン44は、例えば、本体装置2から外された左コントローラ3を把持するユーザの左右の手の人差し指または中指で操作される。
【0066】
なお、本実施形態において、スライダ40の装着面に設けられるボタン(具体的には、第2Lボタン43、第2Rボタン44)は、当該装着面に対して突出しないように設けられる。すなわち、上記ボタンの上面(換言すれば押下面)は、スライダ40の装着面と同じ面に配置されるか、あるいは、装着面よりも凹んだ位置に配置される。これによれば、スライダ40が本体装置2の左レール部材15に装着された状態において、スライダ40を左レール部材15に対してスムーズにスライドさせることができる。
【0067】
(a4:右コントローラの構造)
図5は、本実施形態に従う右コントローラ4を示す六面図である。
【0068】
図5を参照して、右コントローラ4は、略板状のハウジング51を有している。ハウジング51の主面(すなわち、表側の面、あるいは、
図1に示すz軸負方向側の面)は、大略的には矩形形状になっている。ハウジング51は、縦長の形状、すなわち、上下方向に長い形状を有している。
【0069】
右コントローラ4は、本体装置2から外された状態において、ユーザが把持したときにその主面が縦長となる向きで使用されることも可能であるし、その主面が横長となる向きで使用することも可能である。
【0070】
右コントローラ4のハウジング51は、左コントローラ3のハウジング31と同様、その上下方向の長さは、本体装置2に係るハウジング11の上下方向の長さと略同じであることが好ましく、その厚さは、本体装置2のハウジング11の厚さと略同じであることが好ましい。したがって、右コントローラ4が本体装置2に装着された場合(
図1参照)には、ユーザは、本体装置2と右コントローラ4とを一体の装置のような感覚で把持することができる。
【0071】
ハウジング51の主面は、右側の角部分が、左側の角部分よりも丸みを帯びた形状になっている。すなわち、ハウジング51の上側面と右側面との接続部分、および、ハウジング51の下側面と右側面との接続部分は、その上側面と左側面との接続部分、および、その下側面と左側面との接続部分に比べて、丸くなっている(すなわち、面取りにおけるRが大きい)。したがって、右コントローラ4が本体装置2に装着された場合(
図1参照)には、ゲーム装置1の右側が丸みを帯びた形状となるので、ユーザにとって持ちやすい形状となる。
【0072】
右コントローラ4には、左コントローラ3と同様、方向指示部としてアナログスティック52が設けられる。アナログスティック52は、左コントローラ3のアナログスティック32と実質的に同じ構成である。また、右コントローラ4には、左コントローラ3と同様、4つの操作ボタン53〜56(具体的には、Aボタン53、Bボタン54、Xボタン55、および、Yボタン56)が設けられる。これら4つの操作ボタン53〜56は、左コントローラ3の4つの操作ボタン33〜36と実質的に同じ機構である。
図5に示すように、これらアナログスティック52および操作ボタン53〜56は、ハウジング51の主面に設けられる。本実施形態においては、右コントローラ4の主面に設けられる操作ボタンを4つとするが、操作ボタンの数は任意である。
【0073】
右コントローラ4における2種類の操作部(アナログスティック52および操作ボタン)の位置関係は、左コントローラ3におけるこれら2種類の操作部の位置関係とは反対になっている。すなわち、右コントローラ4においては、アナログスティック52は操作ボタン53〜56の上方に配置されるのに対して、左コントローラ3においては、アナログスティック32は操作ボタン33〜36の下方に配置される。このような配置によって、2つのコントローラを本体装置2から外して使用する場合に、両コントローラを互いに似たような操作感覚で使用することができる。
【0074】
右コントローラ4の主面に設けられる操作部(具体的には、アナログスティック52および操作ボタン53〜56)は、右コントローラ4が本体装置2に装着される場合、ゲーム装置1を把持するユーザの例えば右手の親指によって操作される(
図9参照)。また、右コントローラ4が本体装置2から外された状態で使用される場合、操作部は、右コントローラ4を把持するユーザの例えば右の手の親指で操作される。
【0075】
右コントローラ4には、第1Rボタン60およびZRボタン61が設けられる。
図5に示すように、第1Rボタン60は、ハウジング51の側面のうちの右上部分に設けられる。ZRボタン61は、ハウジング51の側面から裏面にかけての右上部分(厳密には、ハウジング51を表側から見たときの右上部分)に設けられる。つまり、ZRボタン61は、第1Rボタン60の後側(
図1に示すz軸正方向側)に設けられる。本実施形態においては、ハウジング51の右上部分が丸みを帯びた形状であるので、第1Rボタン60およびZRボタン61は、ハウジング51の当該右上部分の丸みに応じた丸みを帯びた形状を有する。
【0076】
右コントローラ4が本体装置2に装着される場合、第1Rボタン60およびZRボタン61は、ゲーム装置1における右上部分に配置されることになる(
図1参照)。したがって、ゲーム装置1を把持するユーザは、右手の人差し指や中指で第1Rボタン60およびZRボタン61を操作することができる。
【0077】
本実施形態においては、第1Lボタン38の形状と第1Rボタン60の形状とは左右対称にはならず、ZLボタン39の形状とZRボタン61の形状とは左右対称の形状にはなっていない。但し、別の実施形態として、第1Lボタン38の形状と第1Rボタン60の形状とを左右対称にしてもよく、ZLボタン39の形状とZRボタン61の形状とを左右対称にしてもよい。
【0078】
右コントローラ4は、右コントローラ4が本体装置2と有線通信を行なうための端子64を有している。端子64は、右コントローラ4が本体装置2に装着された場合に、本体装置2の右側端子21(
図3)と接触する位置に設けられる。右コントローラ4が本体装置2に装着された状態で、本体装置2と右コントローラ4とが接触する任意の位置に端子64を配置すればよい。一例として、
図5に示すように、端子64はスライダ62の装着面における下側の端部付近に設けられる。
【0079】
左コントローラ3のハウジング31および/または右コントローラ4のハウジング51に設けられる各構成要素(具体的には、スライダ、スティック、ボタン、およびLED等)の位置、形状、および数は任意に設計できる。例えば、別の実施形態として、コントローラは、アナログスティックとは別の種類の方向指示部が設けられていてもよい。また、スライダ40または62は、本体装置2に設けられる左レール部材15および右レール部材19の位置に応じた位置に配置されてよく、例えば、ハウジング31または51の主面または裏面に配置されてもよい。また、上記構成要素のうちいくつかを省略した構成を採用してもよい。
【0080】
また、右コントローラ4は、左コントローラ3と同様、第2Lボタン65および第2Rボタン66を備える。これらのボタン65および66は、他の操作ボタン53〜56と同様、本体装置2で実行される各種プログラムに応じた指示を行うために用いられる。
図5に示すように、第2Lボタン65および第2Rボタン66は、スライダ62の装着面に設けられる。第2Lボタン65は、スライダ62の装着面において、上下方向(
図1に示すy軸方向)に関する中央よりも上側に設けられる。第2Rボタン66は、スライダ62の装着面において、上下方向に関する中央よりも下側に設けられる。第2Lボタン65および第2Rボタン66は、右コントローラ4が本体装置2に装着されている状態では押下することができない位置に配置されている。つまり、第2Lボタン65および第2Rボタン66は、右コントローラ4を本体装置2から外した場合において用いられるボタンである。第2Lボタン65および第2Rボタン66は、例えば、本体装置2から外された右コントローラ4を把持するユーザの左右の手の人差し指または中指で操作される。
【0081】
なお、本実施形態において、右コントローラ4においても、左コントローラ3と同様に、スライダ62の装着面に設けられるボタン(具体的には、第2Lボタン65、第2Rボタン66)は、当該装着面に対して突出しないように設けられる。すなわち、上記ボタンの上面(換言すれば押下面)は、スライダ62の装着面と同じ面に配置されるか、あるいは、装着面よりも凹んだ位置に配置される。これによれば、スライダ62が本体装置2の右レール部材19に装着された状態において、スライダ62を右レール部材19に対してスムーズにスライドさせることができる。
【0082】
(a5:クレードルの利用)
図6は、本実施形態に従うゲーム装置1をクレードルとともに使用する場合の外観を示す模式図である。
図6に示すゲームシステムは、ゲーム装置1およびクレードル5を含む。
【0083】
クレードル5は、ゲーム装置1を載置可能に構成されるとともに、ゲーム装置1のディスプレイ12とは別体の外部表示装置の一例であるテレビ6と通信可能に構成される。ゲーム装置1をクレードル5に載置した場合、ゲーム装置1が取得または生成した画像をテレビ6に表示することができる。クレードル5とテレビ6との間の通信は、有線通信であってもよいし、無線通信であってもよい。
【0084】
クレードル5は、載置されたゲーム装置1を充電する機能と、通信ハブ装置(例えば、USBハブ)の機能を有するようにしてもよい。
【0085】
[B.各装置の内部構成]
次に、まず、本実施形態に従う情報処理システムに係る各装置の内部構成について説明する。
【0086】
(b1:本体装置の内部構成)
図7は、本実施形態に従う本体装置2の内部構成を示すブロック図である。
【0087】
本体装置2は、
図7に示す構成要素を有している。
図7に示す構成要素は、例えば、電子部品として電子回路基板上に実装されてハウジング11内に収納される。
【0088】
本体装置2は、ゲーム処理を含めて各種処理を実行する情報処理部(あるいは、プロセッサ)に相当するCPU(Central Processing Unit)81を有している。CPU81は、アクセス可能な記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、または、第1スロット23に装着される外部記憶媒体等)に格納されるプログラムを読み出して実行する。
【0089】
本体装置2は、内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を有している。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を格納する不揮発性記メモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶する揮発性メモリである。
【0090】
本体装置2は、第1スロットインターフェイス(I/F)91を有している。第1スロットインターフェイスは、第1スロット23に接続され、CPU81の指示に応じて、第1スロット23に装着された第1の種類の記憶媒体(例えば、SDカード)に対するデータの読み出しおよび書込みを行なう。
【0091】
本体装置2は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行なうためのネットワーク通信部82を有している。例えば、ネットワーク通信部82は、Wi−Fiの認証を受けた通信モジュールが用いられ、無線LANを介して外部装置と通信を行なう。別の実施形態として、本体装置2は、無線LANに接続して通信を行なう機能に加えて(または、それに代えて)、モバイル通信網(すなわち、携帯電話通信網)に接続して通信を行なう機能を有していてもよい。
【0092】
本体装置2は、左コントローラ3および/または右コントローラ4と無線通信を行なうためのコントローラ通信部83を有している。本体装置2と各コントローラとの通信方式は任意であるが、例えば、Bluetooth(登録商標)の規格に従った通信方式を採用できる。
【0093】
CPU81は、左側端子17、右側端子21、および下側端子27に接続される。CPU81は、左コントローラ3と有線通信を行なう場合、左側端子17を介して左コントローラ3と間でデータを送受信する。また、CPU81は、右コントローラ4と有線通信を行なう場合、右側端子21を介して右コントローラ4と間でデータを送受信する。CPU81が左コントローラ3や右コントローラ4に送信するデータは、例えば、左コントローラ3や右コントローラ4の振動発生部を制御するためのデータである。CPU81が左コントローラ3や右コントローラ4から受信するデータは、例えば、ユーザが左コントローラ3や右コントローラ4の操作部を操作することに応じて出力される操作データである。CPU81は、クレードル5と通信を行なう場合、下側端子27を介してクレードル5へデータを送信する。
【0094】
本実施形態においては、本体装置2は、左コントローラ3および右コントローラ4との間で、有線通信および無線通信の両方を行なうことができる。
【0095】
本体装置2は、タッチパネル13の制御を行なうためのタッチパネルコントローラ86を有している。タッチパネルコントローラ86は、タッチパネル13からの信号に応じて、タッチ入力が行なわれた位置を示すデータを生成してCPU81へ出力する。
【0096】
ディスプレイ12は、CPU81が各種処理の実行することで生成された画像、および/または、外部から取得した画像を表示する。
【0097】
本体装置2は、コーデック回路87およびスピーカ88(具体的には、左スピーカおよび右スピーカ)を有している。コーデック回路87は、スピーカ88および音声入出力端子25に対する音声データの入出力を制御する。より具体的には、コーデック回路87は、CPU81から音声データを受け取った場合、その音声データをD/A変換して得られる音声信号をスピーカ88または音声入出力端子25へ出力する。これによって、スピーカ88、あるいは、音声入出力端子25に接続された音声出力部(例えばイヤホン)から音が出力される。コーデック回路87は、音声入出力端子25から音声信号を受け取った場合、音声信号をA/D変換して、所定の形式の音声データをCPU81へ出力する。
【0098】
本体装置2は、電力制御部97およびバッテリ98を有している。電力制御部97は、CPU81からの指令に基づいて、バッテリ98から各構成要素への電力供給を制御する。電力制御部97は、電源ボタン28に対する入力に応じて電力供給を制御する。すなわち、電力制御部97は、電源ボタン28に対して電源をオフする操作が行なわれた場合、電力供給の全部または一部を停止し、電源ボタン28に対して電源をオンする操作が行なわれた場合、電力供給の全部を開始する。
【0099】
外部の充電装置(例えば、クレードル5)が下側端子27に接続され、下側端子27を介して本体装置2に電力が供給される場合、バッテリ98はその供給される電力により充電される。
【0100】
(b2:コントローラの内部構成)
図8は、本実施形態に従う左コントローラ3および右コントローラ4の内部構成を示すブロック図である。
【0101】
図8には、左コントローラ3および右コントローラ4に関連する本体装置2の構成要素についても描いている。
【0102】
左コントローラ3は、本体装置2との間で通信を行なうための通信制御部101を有している。通信制御部101は、端子42を介した有線通信と、端子42を介さない無線通信との両方で本体装置2と通信を行なうことが可能である。通信制御部101は、左コントローラ3が本体装置2に装着されているか否かに応じて有線通信を行うか、無線通信を行うかを選択して、選択した通信方法によって通信を行う。すなわち、左コントローラ3が本体装置2に装着されている場合、通信制御部101は、端子42を介して本体装置2と通信を行なう。また、左コントローラ3が本体装置2から外されている場合、通信制御部101は、本体装置2(具体的には、コントローラ通信部83)との間で無線通信を行なう。通信制御部101は、本体装置との間で通信を行なうことができればよく、例えば、有線通信もしくは無線通信のどちらかのみを行なうように構成されてもよい。なお、左コントローラ3が本体装置2から外されている場合、一例として無線通信を行う場合について説明するが例えばケーブルを介して有線通信を行うようにしても良い。
【0103】
左コントローラ3は、例えば、フラッシュメモリ等のメモリ102を有している。上記通信制御部101は、例えば、マイクロプロセッサで構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
【0104】
左コントローラ3は、操作ボタン群103(具体的には、操作ボタン33〜36,38,39)、アナログスティック32およびタイマ46を有している。操作ボタン群103およびアナログスティック32に対して行なわれた操作に関する情報は、所定周期で通信制御部101へ繰り返し出力される。
【0105】
また、操作ボタン群103を操作した操作に関する情報は、タイマ46により操作した時間とともにメモリ102にも格納される。
【0106】
通信制御部101は、操作ボタン群103、アナログスティック32の各々から入力に関する情報(例えば、ユーザ操作に関する情報)を取得する。通信制御部101は、取得した情報(または、取得した情報に所定の加工を行った情報)を含むデータを本体装置2へ送信する。本体装置2へのデータ送信は、所定周期で繰り返し行なわれる。入力に関する情報が本体装置2へ送信される周期は、入力デバイス間で同じであってもよいし、そうでなくてもよい。
【0107】
本体装置2は、送信されるデータに基づいて、左コントローラ3に対して行なわれた入力を知ることができる。より具体的には、本体装置2は、操作ボタン群103およびアナログスティック32に対する操作を判別することができる。
【0108】
左コントローラ3は、バッテリと電力制御回路とを含む電力供給部109を有している。電力供給部109は、左コントローラ3に各構成要素への電力供給を制御する。バッテリは、左コントローラ3が本体装置2に装着されている場合において、端子42を介して本体装置2からの給電によって充電される。
【0109】
電力供給部109は、バッテリの電力がなくなった場合には電池警告情報を本体装置2に通知する。
【0110】
右コントローラ4は、基本的には、上述した左コントローラ3と同様の構成を有している。すなわち、右コントローラ4は、通信制御部111と、操作ボタン群113(具体的には、操作ボタン53〜56,60,61)と、アナログスティック52と、タイマ68と、電力供給部119とを有している。電力供給部119は、バッテリの電力がなくなった場合には電池警告情報を本体装置2に通知する。
【0111】
また、操作ボタン群113を操作した操作に関する情報は、タイマ68により操作した時間とともにメモリ112にも格納される。
【0112】
右コントローラ4のその他の構成要素については、左コントローラ3に関して説明した対応する構成要素と同様の構成および機能を有しているので、詳細な説明は繰り返さない。
【0113】
このように、本実施形態に従うゲーム装置1は、ユーザの左手(一方の手)で把持さる左コントローラ3(ユーザの左手で把持される部分)と、当該ユーザの右手(他方の手)で把持される右コントローラ4(ユーザの右手で把持される部分)とを含む。
【0114】
本明細書において、「操作部」は、ユーザ操作を受付ける機能または構成を意味し、本体装置2、左コントローラ3、および右コントローラ4等に配置される、ボタン、アナログスティック、各種センサなどの、ユーザの操作を検知できるものであればどのようなものも含み得る。操作部は、本体装置2、左コントローラ3、および右コントローラ4等に分けて配置されたボタン、アナログスティック、各種センサなどの組み合わせによってユーザの操作を検知できるように構成してもよい。
【0115】
[C.ゲームシステムの使用態様]
上述したように、本実施形態に従うゲーム装置1は、左コントローラ3および右コントローラ4が着脱可能に構成される。また、ゲーム装置1は、クレードル5に装着することによって、画像および音声をテレビ6に出力できる。したがって、以下に説明するような種々の使用態様でゲーム装置1を使用できる。以下では、ゲーム装置1の主たる使用態様について例示する。
【0116】
(c1:コントローラを本体装置に装着して使用する態様)
図9は、左コントローラ3および右コントローラ4を本体装置2に装着した状態(以下、「装着状態」とも称す。)におけるゲーム装置1の使用態様の一例を示す図である。
【0117】
図9に示すように、装着状態においては、ゲーム装置1を携帯機器として使用できる。
装着状態においては、基本的には、本体装置2と左コントローラ3および右コントローラ4との間の通信は、有線通信によって行なわれる。別の実施形態として、装着状態においても、本体装置2と左コントローラ3および右コントローラ4との間の通信を無線通信によって行なうようにしてもよい。
【0118】
装着状態においては、左コントローラ3の4つの操作ボタン33〜36は、方向入力(すなわち、方向指示)を行なうために用いられてもよい。このとき、ユーザは、アナログスティック32を用いて方向入力を行なうことも可能であるし、操作ボタン33〜36を用いて方向入力を行なうことも可能である。ユーザは、好みに合った操作手段を用いて方向入力を行なうことができるので、操作性を向上することができる。但し、操作ボタン33〜36がどのような指示に用いられるかについては、本体装置2において実行されるプログラムによって任意に決められてよい。
【0119】
本実施形態においては、左コントローラ3と右コントローラ4との間で、アナログスティックと4つの操作ボタン(すなわち、A、B、X、Yボタン)との配置が逆になっている。装着状態においては、左コントローラ3においてはアナログスティック32が4つの操作ボタン33〜36よりも上側に配置されるのに対して、右コントローラ4においては4つの操作ボタン53〜56がアナログスティック52よりも上側に配置される。したがって、
図9に示すように、ユーザが両手を同じ高さにして(すなわち、上下方向に関して同じ位置にして)ゲーム装置1を把持した場合、一方の手についてはアナログスティックが操作しやすい位置となり、他方の手については4つの操作ボタンが操作しやすい位置となる。このように、本実施形態に従うゲーム装置1は、アナログスティックおよび4つの操作ボタンを操作しやすい構成を提供する。
【0120】
(c2:一組のコントローラを本体装置から外して使用する態様)
図10は、左コントローラ3および右コントローラ4を本体装置2から外した状態(以下、「離脱状態」とも称す。)におけるゲーム装置1の使用態様の一例を示す図である。
【0121】
図10に示すように、離脱状態においては、ユーザは、左コントローラ3および右コントローラ4をそれぞれ左手および右手にそれぞれ持って操作することができる。
【0122】
この場合、左コントローラ3のアナログスティック32と、4つの操作ボタン33〜36とは、把持する左手内で縦方向に配置された状態で操作される。
【0123】
同様に、右コントローラ4のアナログスティック52と、4つの操作ボタン53〜56とは、把持する右手内で縦方向に配置された状態で操作される。
【0124】
すなわち、ユーザが把持したときにその主面が縦長となる向きで使用される(縦持ち操作とも称する)。
【0125】
離脱状態においては、基本的には、本体装置2と左コントローラ3および右コントローラ4との間の通信は、無線通信によって行なわれる。本体装置2は、無線通信を確立したコントローラからデータを受信して、受信したデータに基づいてゲーム処理を実行する。
【0126】
本実施形態においては、無線通信の場合、本体装置2は、通信相手となる左コントローラ3および右コントローラ4を区別する。すなわち、本体装置2は、コントローラから受信されたデータが左コントローラ3からのものであるか、右コントローラ4からのものであるかを識別する。
【0127】
図10には、一組のコントローラ(左コントローラおよび右コントローラ)を1人のユーザが使用する態様を例示するが、二人のユーザがコントローラを1個ずつ使用するという態様も可能である。この場合、一組のコントローラ(左コントローラおよび右コントローラ)で2人のユーザが同時にゲームに参加できる。
【0128】
図10には、左コントローラ3および右コントローラ4の両方を本体装置2から外した状態を例示するが、これに限らず、左コントローラ3および右コントローラ4のいずれか一方を本体装置2から外し、他方を本体装置2に装着した状態で、ゲーム装置1を使用することも可能である。
【0129】
(c3:2人のユーザが1つずつコントローラを使用する態様)
図11は、離脱状態において、2人のユーザが1つずつコントローラを把持してゲーム装置1を利用する様子の一例を示す図である。
【0130】
図11に示すように、離脱状態においては、2人のユーザが操作を行うことが可能である。具体的には、一方のユーザ(「第1のユーザ」と呼ぶ)が左コントローラ3を用いて操作を行うとともに、他方のユーザ(「第2のユーザ」と呼ぶ)が右コントローラ4を用いて操作を行うことが可能である。ゲーム装置1は、例えば、左コントローラ3に対する操作に基づいて仮想空間における第1のオブジェクト(例えばプレイヤキャラクタ)の動作を制御し、右コントローラ4に対する操作に基づいて仮想空間における第2のオブジェクトの動作を制御する情報処理を実行する。なお、
図11に示す態様においても
図10に示す態様と同様、ユーザは、コントローラが備える操作部に対する操作、および/または、コントローラ自体を動かす操作が可能である。
【0131】
この場合、第1のユーザが用いる左コントローラ3のアナログスティック32と、4つの操作ボタン33〜36とは、把持する左手および右手の間で横方向に配置された状態で操作される。
【0132】
同様に、第2のユーザが用いる右コントローラ4のアナログスティック52と、4つの操作ボタン53〜56とは、把持する左手および右手の間で横方向に配置された状態で操作される。
【0133】
すなわち、ユーザが把持したときにその主面が横長となる向きで使用される(横持ち操作とも称する)。
【0134】
後述するが、左コントローラ3および右コントローラ4の横持ち操作方式の場合には、縦持ち操作方式の場合から左コントローラ3および右コントローラ4の操作部の機能が変更される。
【0135】
また、本実施形態においては、右コントローラ4におけるアナログスティック52と各操作ボタン53〜56との位置関係は、左コントローラ3におけるこれら2種類の操作部の位置関係とは反対になっている。したがって、例えば
図11に示すように、2人のユーザが左コントローラ3と右コントローラ4とを同じ向きで把持した場合、上記2種類の操作部の位置関係は、2つのコントローラで同じになる。つまり、本実施形態においては、ユーザは、上記2種類の操作部に関して、本体装置2から外した左コントローラ3と右コントローラ4とを同じような操作感覚で使用することができる。これによって、コントローラの操作性を向上することができる。
【0136】
また、離脱状態においては、左コントローラ3の4つの操作ボタン33〜36は、右コントローラ4の4つの操作ボタン53〜56と同じ機能として用いられてもよい(換言すれば、同じ指示を行うために用いられてもよい)。具体的には、右方向ボタン33はYボタン56と同じ機能として用いられ、下方向ボタン34はXボタン55と同じ機能として用いられ、上方向ボタン35はBボタン54と同じ機能として用いられ、左方向ボタン36はAボタン53と同じ機能として用いられてもよい。このように、本実施形態においては、装着状態と離脱状態とで、操作ボタン33〜36の機能が変更されてもよい。ただし、各操作ボタンがどのような指示に用いられるかは、本体装置2において実行されるプログラムによって自由に決められてよい。
【0137】
なお、
図11においては、ゲーム装置1は、本体装置2のディスプレイ12の表示領域を2つに分割し、分割された一方の表示領域に第1のユーザのための画像(例えば、第1オブジェクトを含む画像)を表示し、分割された他方の表示領域に第2のユーザのための画像(例えば、第2オブジェクトを含む画像)を表示する。ただし、ゲーム装置1において実行されるアプリケーションによっては、ゲーム装置1は、ディスプレイ12の表示領域を分割することなく、2人のユーザのための画像(例えば、第1オブジェクトおよび第2オブジェクトの両方を含む画像)を表示するようにしてもよい。
【0138】
また、
図11に示す態様においても
図10に示す態様と同様、本体装置2と左コントローラ3および右コントローラ4との通信は、無線通信によって行われる。このとき、本体装置2は、通信相手となるコントローラを区別する。
【0139】
(c4:テレビを利用する態様)
図12は、本体装置2をクレードル5に装着した状態でのゲーム装置1の使用態様の一例を示す図である。
【0140】
図12に示すように、本体装置2をクレードル5に装着することで、ゲーム装置1が取得または生成した画像をテレビ6に表示することができる。ユーザは、テレビ6に表示される画像(および、必要に応じて、本体装置2のディスプレイに表示される画像)を見ながら、左コントローラ3および/または右コントローラ4を操作する。
【0141】
(c5:3つ以上のコントローラを利用する態様)
上述のように、本実施形態においては、本体装置2は、複数の左コントローラと通信可能である。また、本体装置2は、複数の右コントローラと通信可能である。したがって、本実施形態においては、3つ以上のコントローラを同時に用いることが可能である。
【0142】
図13は、3つ以上のコントローラを用いる場合における利用態様の一例を示す図である。
【0143】
図13においては、2つの左コントローラ3aおよび3bと、2つの右コントローラ4aおよび4bという、合計4つのコントローラが用いられる場合を例示している。なお、ここでは、各コントローラは本体装置2から外されているものとする。このように4つのコントローラが用いられる場合、4人のユーザが1人につき1つのコントローラを利用する態様(
図13(A))と、2人のユーザが1人につき2つのコントローラ(具体的には、左右1組のコントローラ)を利用する態様(
図13(B))とが少なくとも考えられる。
【0144】
(1人のユーザが1つのコントローラを利用する態様)
図13(A)においては、4つのコントローラ3a,3b,4a,および4bが、ユーザ1人につき1つ用いられる。つまり、本実施形態においては、4つのコントローラが用意される場合には、ユーザAからユーザDという4人のユーザがコントローラを用いて操作を行うことが可能である。ゲーム装置1は、例えば、各コントローラに対する操作に基づいて、そのコントローラに対応するオブジェクトの動作を制御する情報処理を実行する。
【0145】
図13(A)において、本体装置2は、4つのコントローラ3a,3b,4a,および4bとそれぞれ無線通信を行う。ここで、本実施形態において、本体装置2は、4つのコントローラ3a,3b,4a,および4bを区別する。すなわち、本体装置2は、受信された操作データが4つのうちどのコントローラからのものであるかを識別する。なお、
図13(A)の場合においては、本体装置2は、左コントローラ3aと左コントローラ3bとを区別し、また、右コントローラ4aと右コントローラ4bとを区別する。
【0146】
(1人のユーザが1組のコントローラを利用する態様)
図13(B)においては、4つのコントローラ3a,3b,4a,および4bが、ユーザ1人につき1組用いられる。すなわち、ユーザAが左コントローラ3aおよび右コントローラ4aの1組のコントローラを用い、ユーザBが左コントローラ3bおよび右コントローラ4bの1組のコントローラを用いる。このように、本実施形態においては、4つのコントローラが用意される場合には、2人のユーザがそれぞれ1組のコントローラ(コントローラのセットとも言える)を操作することが可能である。
【0147】
ゲーム装置1は、1組のコントローラから受信される2つの操作データを1組として、情報処理を実行する。例えば、ゲーム装置1は、1組のコントローラに対する操作に基づいて、当該1組のコントローラに対応するオブジェクトの動作を制御する情報処理を実行する。具体的には、左コントローラ3aおよび右コントローラ4aに対する操作に基づいて、第1のオブジェクトの動作が制御され、左コントローラ3bおよび右コントローラ4bに対する操作に基づいて、第2のオブジェクトの動作が制御される。
【0148】
ここで、本実施形態においては、
図13(B)に示す利用態様において、本体装置2は、1人のユーザが利用する左コントローラと右コントローラとの組を設定する。本体装置2は、設定された組に含まれる2つのコントローラからの各操作データを、1組として用いて(例えば、1つの操作対象を制御するための操作データとして用いて)情報処理を実行する。
【0149】
コントローラの組を設定する方法はどのような方法であってもよいが、本実施形態においては、本体装置2に左右のコントローラを装着することによって組の設定を行う。すなわち、本体装置2は、同時に装着された左コントローラおよび右コントローラを、1組のコントローラとして設定する。例えば、
図13(B)に示すコントローラの組を設定する場合、ユーザは、まず左コントローラ3aおよび右コントローラ4aを本体装置2に装着し、これらの2つの左コントローラ3aおよび右コントローラ4aを本体装置2から外した後、別の左コントローラ3bおよび右コントローラ4bを本体装置2に装着する。これによって、左コントローラ3aおよび右コントローラ4aの組と、左コントローラ3bおよび右コントローラ4bの組とを本体装置2において設定(登録とも言える)することができる。
【0150】
なお、3つ以上のコントローラを用いる場合には、
図13に示す利用態様の他にも、種々の態様で情報処理システムを利用することが可能である。例えば、あるユーザが左右のコントローラからなる1組のコントローラを用い、他のユーザが1つのコントローラを用いる態様で情報処理システムを利用することが可能である。また例えば、あるユーザが本体装置2に装着されたコントローラを用い、他のユーザが本体装置2から外されたコントローラを用いることも可能である。
【0151】
(c6:操作上の利点)
本実施形態においては、ゲーム装置1は、携帯型機器でありながら、(ディスプレイを動かすことなく)コントローラを動かす操作をユーザに提供することができる。また、ゲーム装置1は、携帯型機器でありながら、ディスプレイ12から離れた場所でユーザが操作を行なうことが可能なゲーム装置を提供することもできる。
【0152】
[F:コントローラ登録処理]
図14は、実施形態に基づくゲーム装置1によって実行されるコントローラ登録画面を説明する一例図である。
【0153】
図14に示されるように、テレビ6に表示されたコントローラ登録画面において4人のプレイヤであるユーザPA〜PDがそれぞれ把持するコントローラを登録する場合が示されている。なお、本例においては、ペアリング済みのコントローラとの間でコントローラを登録する場合について説明する。
【0154】
当該コントローラ登録画面は、ホームメニューからコントローラ登録を指示した場合に表示される画面の一例である。ホームメニューは、各種設定(コントローラ登録等)とともにゲームアプリを起動することが可能に設けられている。たとえば、ゲームアプリを起動するためのアイコンが設けられており、当該アイコンを選択することによりゲームアプリが起動する。また、コントローラを登録するためのアイコンも設けられており、当該アイコンを選択することによりコントローラ登録処理のアプリケーションが起動し、コントローラ登録画面が表示される。
【0155】
なお、各ゲームアプリからコントローラ登録を指示することも可能であり、その場合にはゲームアプリに応じて利用可能なコントローラの態様が表示される。各ゲームアプリからもコントローラ登録を指示することが可能であるためホームメニューに戻って設定処理する煩雑な手続きをする必要がなくユーザビリティを向上させることが可能である。
【0156】
図14(A)の本例のテレビ6には、メッセージとして「使いたいコントローラの「L」と「R」を押してください」が表示されている。本例においては、各ユーザは、各々が把持するコントローラを登録するにあたりLボタンとRボタンとを押下するように促される。
【0157】
当該押下に従う一連の処理により、各ユーザのコントローラに対してプレイヤ番号が登録される。また、複数の操作方式が可能なコントローラに関して、そのうちの1つの操作方式が設定される。
【0158】
なお、本例においては、複数の操作方式として、2本のコントローラの縦持ち操作方式と、1本のコントローラの横持ち操作方式とのいずれかに設定する場合について説明するが、例えば、操作方式の特定として、2本持ちか、1本持ちかによって、操作方式を特定しても良いし、あるいは、縦持ちか横持ちかによって操作方式を特定することも可能である。
【0159】
当該メッセージに従って、コントローラを登録することが可能である。
ここでは、コントローラが未登録の状態が示されている。コントローラの登録に従ってプレイヤ番号が割り当てられる。そして、プレイヤ番号に対応するP1〜P4の領域内において、割り当てられたプレイヤ番号に対応する登録されたコントローラの態様が模式化されて表示される。
【0160】
コントローラ登録画面の上部領域には、登録可能なコントローラの態様が示されている。左コントローラ3および右コントローラ4の2本のコントローラを登録する場合、左コントローラ3あるいは右コントローラ4の1本のコントローラを登録する場合が示されている。
【0161】
また、2本のコントローラを登録する場合に、2本のコントローラのイメージ画像とともに、選択するボタン位置を示すために丸の画像が付加されて当該位置が強調表示されている。また、2本のコントローラを2人で使えることも示されており、それぞれの1本のコントローラを登録する場合に、1本のコントローラのイメージ画像とともに、選択するボタン位置を示すために丸の画像が付加されて当該位置が強調表示されている。
【0162】
ユーザは、コントローラ登録画面において、コントローラのイメージ画像とともに、強調表示された丸の画像のボタン位置を確認することにより簡易な仕方でコントローラを登録することが可能である。
【0163】
一例として、ユーザPAは、左コントローラ3aおよび右コントローラ4aを把持している。ユーザPBは、左コントローラ3bおよび右コントローラ4bを把持している。ユーザPCは、左コントローラ3cを把持している。ユーザPDは、右コントローラ4cを把持している。
【0164】
ユーザPAが2本のコントローラを登録する場合には、左コントローラ3aに設けられた第1Lボタン38と、右コントローラ4aに設けられた第1Rボタン60を押下する。
【0165】
ユーザPBが2本のコントローラを登録する場合には、左コントローラ3bに設けられた第1Lボタン38と、右コントローラ4bに設けられた第1Rボタン60を押下する。
【0166】
また、ユーザPCが左コントローラ3cを用いた1本のコントローラを登録する場合には、左コントローラ3cに設けられた第2Lボタン43と、第2Rボタン44とを押下する。
【0167】
また、ユーザPDが右コントローラ4cを用いた1本のコントローラを登録する場合には、右コントローラ4cに設けられた第2Lボタン65と、第2Rボタン66とを押下する。
【0168】
ゲーム装置1は、各コントローラから送信される操作データを受信して、受信した操作データに基づき各コントローラに対してプレイヤ番号を割り当てるとともに、必要に応じて操作方式を登録情報に登録する。
【0169】
図14(B)には、操作データに従ってコントローラが登録されている場合が示されている。
【0170】
具体的には、プレイヤ番号P1に割り当てられたコントローラとして、ユーザPAが把持する2本のコントローラのイメージ画像が示されている。
【0171】
また、プレイヤ番号P2に割り当てられたコントローラとして、ユーザPBが把持する2本のコントローラのイメージ画像が示されている。
【0172】
また、プレイヤ番号P3に割り当てられたコントローラとして、ユーザPCが把持する1本のコントローラのイメージ画像が示されている。
【0173】
なお、プレイヤ番号P4は、未だ登録されていない場合の状態(点線領域)が示されている。
【0174】
また、本例においては、未登録のプレイヤ番号P4の領域において、確認画像が表示される場合が示されている。確認画像の表示は、横持ちの操作方式を示すコントローラのイメージ画像と、縦持ちの操作方式を示すコントローラのイメージ画像が交互に表示される場合を指し示す。
【0175】
縦持ち操作方式が登録された2本のコントローラのイメージ画像および横持ち操作方式が登録された1本のコントローラのイメージ画像を表示することにより、コントローラの操作方法の態様が異なることが明確に表示されるためユーザビリティが向上する。また、当該イメージ画像とともに、縦持ち操作方式が登録されたコントローラのボタンの名称および機能をさらに表示することにより操作方法に関する情報を提示するようにしても良い。また、当該イメージ画像とともに、横持ち操作方式が登録されたコントローラのボタンの名称および機能をさらに表示することにより操作方法に関する情報を提示するようにしても良い。
【0176】
図15は、実施形態に基づく登録情報の一例を説明する図である。
図15に示されるように、登録情報は、番号情報、識別情報、無線通信情報を関連付けた情報、プレイヤ番号および操作方式に関する情報である。番号情報は、登録されたコントローラに付される番号である。
【0177】
識別情報は、コントローラに対して固有に付される値(例えば、ID)を示す情報である。この識別情報によって、コントローラを一意に識別することができる。
【0178】
ここで、本実施形態においては、識別情報は、左コントローラであるか右コントローラであるかを示す情報を含む。つまり、本体装置2は、コントローラが左コントローラであるか右コントローラであるかを、当該コントローラに付された識別情報に基づいて判定することができる。なお、他の実施形態においては、識別情報は、左コントローラであるか右コントローラであるかを示す情報を含んでいなくてもよい。このとき、登録情報には、左コントローラであるか右コントローラであるかを示す情報が(識別情報とは別に)含まれていてもよい。
【0179】
無線通信情報は、本体装置2との無線通信に関する接続設定(すなわち、ペアリング)が済んでいるか否かを示す。すなわち、本体装置2とコントローラとのペアリングが完了している場合、当該コントローラに関する無線通信情報として「設定済」を示す情報が記憶される。一方、本体装置2とコントローラとのペアリングが完了していない場合、当該コントローラに関する無線通信情報として「未設定」を示す情報が記憶される。なお、本体装置2は、(登録情報とは別に)無線通信の接続設定に関する情報を記憶しておき、一度ペアリングを行ったコントローラについては再度ペアリングを行わなくてもよいようにしてもよい。
【0180】
本例においては、ペアリング済みのコントローラとの間でコントローラを登録する場合について説明する。
【0181】
プレイヤ番号は、アプリケーション等で操作するプレイヤを特定する識別情報である。当該プレイヤ番号は、一例としてプレイヤの登録順に割り当てるようにしても良いし、ランダムに割り当てるようにしても良い。
【0182】
操作方式に関する情報は、コントローラに対して複数の操作方式の選択が可能な場合に、選択された操作方式を指し示す情報である。本例における左コントローラ3および右コントローラ4は、
図10および
図11で説明したように複数の操作方式として縦持ち操作と横持ち操作とを選択することが可能である。
【0183】
なお、上記登録情報は、ユーザの指示に応じてその一部が削除されたり、変更されたりしてもよい。例えば、本体装置2は、ユーザの指示に応じて、指定されたコントローラに関する情報を削除してもよいし、コントローラに付された番号、プレイヤ番号、操作方式に関する情報を変更してもよい。
【0184】
次に、実施形態に基づく本体装置2の機能ブロック構成について説明する。
図16は、実施形態に基づく本体装置2の機能ブロック構成について説明する図である。
【0185】
図16を参照して、本体装置2のCPU81がプログラムを実行することで、ゲーム処理実行モジュール302と、登録処理モジュール304と、通信制御モジュール310とが実現される。
【0186】
機能ブロックを構成するプログラムは、例えば、本体装置2のフラッシュメモリ84または第1スロットに装着されるメモリカードから読み出され、DRAM85に保存されて実行される。
【0187】
通信制御モジュール310は、本体装置2とコントローラとの間で無線通信を行うための設定(ペアリングとも言う)を行う。
【0188】
通信制御モジュール310は、コントローラとの無線通信によりペアリングが完了しているか否かを判定し、コントローラとの無線通信によりペアリングが完了していないと判定した場合には、コントローラとの間で無線通信のペアリング処理を実行してコントローラの識別情報等を取得する。そして、通信制御モジュール310は、必要な登録情報を記憶部に登録する。具体的には、当該コントローラについての番号情報、識別情報および無線通信情報を関連付けて登録情報に追加するように、記憶部に記憶される登録情報を更新する。番号情報としては、例えば、登録済みの他のコントローラに対して設定されていない番号を示す情報が設定される。また、コントローラに付された識別情報を設定する。また、ペアリングの完了により「設定済み」を示す情報が設定される。
【0189】
また、通信制御モジュール310は、ペアリング済みのコントローラとの間で通信接続処理を実行する。通信制御モジュール310とコントローラとの間の通信接続が確立された後に、プレイヤ番号および操作方式について登録処理等が実行される。
【0190】
登録処理モジュール304は、通信制御モジュール310を介してコントローラ登録処理を実行する。具体的には、フラッシュメモリの登録情報にプレイヤ番号を登録および更新する。また、必要に応じてコントローラの操作方式を登録する。
【0191】
ゲーム処理実行モジュール302は、ゲーム処理等を制御するモジュールであり、ユーザ操作の内容に応じてディスプレイ12等の表示内容を順次更新する。
【0192】
登録処理モジュール304は、登録部305と、第1判定部306と、第2判定部308とを含む。
【0193】
登録部305は、第1判定部306あるいは第2判定部308の判定結果に基づいて所定の操作方式を必要に応じて登録情報として記憶部に登録する。
【0194】
第1判定部306は、通信接続が確立されているコントローラからの受信した操作データが所定の条件を満たしているか否かを判定する。
【0195】
所定の条件の一例として、操作データが第2Lボタンおよび第2Rボタン操作データを有しているか否かを判断する。
【0196】
当該所定の条件を満たしていると判断した場合に、登録部305は、判定OK(判定結果が肯定)の場合に、コントローラの操作方式を横持ち操作方式として登録情報に登録する。
【0197】
また、所定の条件の別の例として、第1Lボタン操作データおよび第1Rボタン操作データを同時に受信したか否かを判断する。
【0198】
当該所定の条件を満たしていると判断した場合に、登録部305は、判定OK(判定結果が肯定)の場合に、コントローラの操作方式を縦持ち操作方式として登録情報に登録する。
【0199】
第2判定部308は、通信接続が確立されていないコントローラからの受信した操作データが所定の条件を満たしているか否かを判定する。
【0200】
第2判定部308は、時間要求部307と、時間判定部309とを含む。
時間要求部307は、コントローラに対して操作された時間に関する情報の送信を要求する。当該要求に従ってコントローラは、操作された時間に関する情報を送信する。
【0201】
時間判定部309は、送信された操作された時間に関する情報を取得して、コントローラの操作が所定条件を満たすか否かを判定する。
【0202】
具体的には、第2判定部308は、左コントローラ3において第2Lボタン43および第2Rボタン44に対する操作が実質的に同時に行われたか否かを判定する。第2判定部308は、右コントローラ4において第2Lボタン65および第2Rボタン66に対する操作が実質的に同時に行われたか否かを判定する。判定方式としては、一例として、操作された時間に関する情報に基づいて、2つの操作された時間に関する情報の時間差が所定期間以内であるか否かを判定する。2つの操作された時間に関する情報の時間差が所定期間以内であると判定した場合には、判定OKとする。一方、2つの操作された時間に関する情報の時間差が所定期間以内でないと判定した場合には、判定NGとする。
【0203】
登録部305は、第2判定部308の判定結果に基づいて、判定OK(判定結果が肯定)の場合に、コントローラの操作方式を所定方式として登録する。本例においては、登録部305は、横持ち操作方式として登録情報に登録する。
【0204】
図17は、実施形態に基づく左コントローラ3のデータの送信処理を説明するフロー図である。
【0205】
なお、
図17に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて(または代えて)別の処理が実行されてもよい。
【0206】
図17を参照して、左コントローラ3の通信制御部101は、操作ボタン群103の操作があるか否かを判断する(ステップST0)。
【0207】
ステップST0において、通信制御部101は、操作ボタン群103の操作があると判断した場合(ステップST0においてYES)には、本体装置2との間で通信接続が確立されているか否かを判断する(ステップST1)。
【0208】
一方、ステップST0において、通信制御部101は、操作ボタン群103の操作がないと判断した場合(ステップST0においてNO)には、ステップST0の状態を維持する。
【0209】
ステップST1において、通信制御部101は、本体装置2との間で通信接続が確立されていると判断した場合(ステップST1においてYES)には、操作データを本体装置2に送信する(ステップST2)。操作データは、識別情報データと、操作したボタン情報とを含む。
【0210】
そして、処理を終了する(エンド)。
一方、ステップST1において、通信制御部101は、本体装置2との間で通信接続が確立されていないと判断した場合(ステップST1においてNO)には、通信接続を確立するための接続要求を本体装置2に送信する(ステップST3)。
【0211】
次に、通信制御部101は、操作ボタン群103を操作した操作情報をメモリ102に格納する(ステップST4)。その際、操作した操作ボタンに関する情報とともに、タイマ46を用いて当該操作した操作ボタンを操作した時刻に関する情報をメモリ102に格納する。
【0212】
そして、処理を終了する(エンド)。
なお、本例においては、左コントローラ3について説明したが、右コントローラ4についても同様である。
【0213】
また、本例においては、通信制御部101は、通信接続が確立されていない場合に操作情報をメモリ102に格納する場合について説明したが、通信接続が確立されている場合にも操作情報をメモリ102に格納するようにしてもよい。
【0214】
図18は、実施形態に基づくコントローラから本体装置2に送信される操作データを説明する図である。
【0215】
図18(A)には、一例としてコントローラ3から送信された操作データ500が示される。操作データ500は、識別情報データ501と、第2Lボタン操作データ502と、第2Rボタン操作データ503とを含む。
【0216】
一例として、第2Lボタン操作データ502と第2Rボタン操作データ503は、ユーザが左コントローラ3に設けられた第2Lボタン43と、第2Rボタン44との両方を押下した場合の操作データである。
【0217】
ここでは、左コントローラ3の操作データについて説明しているが、右コントローラ4の操作データについても基本的には同様であり、右コントローラ4の操作データの場合には、第2Lボタン操作データ502と第2Rボタン操作データ503は、ユーザが右コントローラ4に設けられた第2Lボタン65と、第2Rボタン66との両方を押下した場合の操作データである。
【0218】
図18(B)には、一例として左コントローラ3および右コントローラ4から送信された操作データ510,520が示される。
【0219】
操作データ510は、識別情報データ512と、第1Lボタン操作データ514とを含む。
【0220】
操作データ520は、識別情報データ522と、第1Rボタン操作データ524とを含む。
【0221】
一例として、第1Lボタン操作データ514は、ユーザが左コントローラ3に設けられた第1Lボタン38を押下した場合の操作データである。また、第1Rボタン操作データ524は、ユーザが右コントローラ4に設けられた第1Rボタン60を押下した場合の操作データである。
【0222】
図14で説明したコントローラ登録画面において、一例としてユーザPCが左コントローラ3cに設けられた第2Lボタン43と、第2Rボタン44とを押下した場合、上記の
図18(A)で説明した操作データが本体装置2に送信される。登録処理モジュール304の第1判定部306は、受信した操作データに第2Lボタンおよび第2Rボタン操作データが含まれているか否かを判定する。登録部305は、第1判定部306の判定結果に基づいて横持ち操作方式として登録情報に登録する。
【0223】
また、
図14で説明したコントローラ登録画面において、一例としてユーザPAが左コントローラ3aに設けられた第1Lボタン38と、右コントローラ4aに設けられた第1Rボタン60を押下した場合、上記の
図18(B)で説明した操作データが本体装置2に送信される。登録処理モジュール304の第1判定部306は、第1Lボタン操作データおよび第1Rボタン操作データを同時に受信したか否かを判断する。登録部305は、第1判定部306の判定結果に基づいて縦持ち操作方式として登録情報に登録する。
【0224】
図19は、実施形態に基づくメモリ102に格納された操作情報を説明する図である。
図19(A)には、操作情報として2つの操作に対応するデータが格納されている。
【0225】
一例として、本体装置2との間で通信接続が確立されていない場合に、第2Lボタン43と、第2Rボタン44に対する操作が行われた場合が示されている。それぞれについて、時刻が関連付けられて登録されている場合が示されている。
【0226】
図19(B)には、操作情報として1つの操作に対応するデータが格納されている。
一例として、本体装置2との間で通信接続が確立されていない場合に、第1Lボタン38に対する操作が行われた場合が示されている。この場合にも時刻が関連付けられて登録されている場合が示されている。
【0227】
当該操作情報は、第2判定部308における判定処理に用いられる。
図20は、実施形態に基づく本体装置2において実行される通信接続が確立されていないコントローラ登録処理の流れの一例を説明するフロー図である。
【0228】
なお、
図20に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて(または代えて)別の処理が実行されてもよい。また、本実施形態では、上記フローチャートの各ステップの処理を本体装置2のCPU81が実行するものとして説明するが、上記フローチャートにおける一部のステップの処理を、CPU81以外のプロセッサや専用回路が実行するようにしてもよい。また、本体装置2において実行される処理の一部は、本体装置2と通信可能な他の情報処理装置(例えば、本体装置2とネットワークを介して通信可能なサーバ)によって実行されてもよい。すなわち、
図20等に示す各処理は、本体装置2を含む複数の情報処理装置が協働することによって実行されてもよい。
【0229】
図20を参照して、CPU81は、コントローラの接続要求が有るか否かを判定する(ステップS2)。CPU81は、通信接続が確立していないコントローラからの接続要求を受信したか否かを判定する。
【0230】
CPU81は、コントローラの接続要求を受信したと判定した場合(ステップS2においてYES)には、接続処理を実行する(ステップS4)。
【0231】
具体的には、コントローラとの通信接続処理が確立していないと判定した場合には、通信制御モジュール310は、本体装置2とコントローラとの間で通信接続を確立する処理(通信接続処理)を実行する。
【0232】
次に、CPU81は、経過時間を要求する(ステップS6)。通信制御モジュール310は、通信接続処理が完了したことを登録処理モジュール304の第2判定部308に通知する。第2判定部308の時間要求部307は、通信接続処理が完了したコントローラに対して操作された時間に関する情報の送信を要求する。
【0233】
図21は、実施形態に基づくコントローラの経過時間の送信を説明するフロー図である。
【0234】
なお、
図21に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて(または代えて)別の処理が実行されてもよい。
【0235】
図21を参照して、左コントローラ3の通信制御部101は、経過時間の要求を受信したか否かを判断する(ステップST10)。
【0236】
ステップST10において、通信制御部101は、経過時間の要求を受信したと判断した場合(ステップST10においてYES)には、操作情報を確認する(ステップST12)。具体的には、通信制御部101は、メモリ102に格納されている操作ボタンを操作した時刻に関する情報を確認する。
【0237】
次に、通信制御部101は、経過時間を算出する(ステップST14)。具体的には、通信制御部101は、経過時間の要求を受信した時刻と、メモリ102に格納されている操作ボタンを操作した時刻とを比較して、経過時間を算出する。
図19(A)に示されるように第2Lボタン43と、第2Rボタン44との両方を押下した場合の操作データに対応する複数の操作した時刻に関する情報がメモリ102に格納されている場合には、それぞれについて経過時間を算出する。
【0238】
次に、通信制御部101は、経過時間を本体装置2に送信する(ステップST16)。通信制御部101は、算出した経過時間のデータを本体装置2に送信する。
【0239】
そして、処理を終了する(エンド)。
ステップST10において、通信制御部101は、経過時間の要求を受信しないと判断した場合(ステップST10においてNO)には、ステップST10の状態を維持する。
【0240】
なお、本例においては、左コントローラ3について説明したが、右コントローラ4についても同様である。
【0241】
再び
図20を参照して、次に、CPU81は、データを受信したか否かを判定する(ステップS8)。通信制御モジュール310は、コントローラからのデータを受信したか否かを判定する。
【0242】
ステップS8において、CPU81は、データを受信したと判定した場合(ステップS8においてYES)には、判定処理を実行する(ステップS10)。判定処理の詳細については後述する。通信制御モジュール310は、データを受信したと判定した場合には、第2判定部308の時間判定部309に当該データを出力する。
【0243】
次に、CPU81は、判定OKか否かを判断する(ステップS12)。登録部305は、第2判定部308の判定結果として判定OKか否かを判断する。
【0244】
CPU81は、ステップS12において、判定OKであると判断した場合(ステップS12においてYES)には、プレイヤ番号を登録する(ステップS14)。具体的には、登録部305は、登録情報にプレイヤ番号を登録する。プレイヤ登録の順番に従ってプレイヤ番号を登録する。先頭のプレイヤはP1、2番目のプレイヤはP2、以降同様の形式に従ってプレイヤ番号を登録する。そして、CPU81は、登録情報に横持ち操作方式を登録する(ステップS16)。具体的には、登録部305は、登録情報の操作方式の欄に横持ち操作方式であることを示す情報を登録する。以降の処理は同様であるのでその詳細な説明については繰り返さない。
【0245】
一方、CPU81は、ステップS12において、判定NGであると判断した場合(ステップS12においてNO)には、確認画像を表示する(ステップS22)。すなわち、上記で説明したように、登録部305は、確認画像を表示する。登録部305は、
図14(B)で説明したようなコントローラ登録画面を表示する。
【0246】
次に、CPU81は、操作データを受信したか否かを判断する(ステップS24)。具体的には、通信制御モジュール310は、コントローラから操作データをさらに受信したか否かを判断する。CPU81は、操作データを受信するまでステップS24の状態を維持する。
【0247】
ステップS24において、CPU81は、操作データを受信したと判断した場合(ステップS24においてYES)には、次のステップS26に進む。なお、この場合、通信接続が確立されているコントローラから操作データを受信するため第1判定部306における判定処理となる。
【0248】
CPU81は、操作データが第2Lボタンおよび第2Rボタン操作データを有しているか否かを判断する(ステップS26)。具体的には、第1判定部306は、操作データが第2Lボタンおよび第2Rボタン操作データを有しているか否かを判断する。
【0249】
次に、CPU81は、操作データが第2Lボタンおよび第2Rボタン操作データを有していると判断した場合(ステップS26においてYES)には、1本のコントローラに対してプレイヤ番号を登録する(ステップS14)。具体的には、登録部305は、登録情報にプレイヤ番号を登録する。プレイヤ登録の順番に従ってプレイヤ番号を登録する。先頭のプレイヤはP1、2番目のプレイヤはP2、以降同様の形式に従ってプレイヤ番号を登録する。次に、CPU81は、登録情報に横持ち操作方式を登録する(ステップS16)。具体的には、登録部305は、登録情報の操作方式の欄に横持ち操作方式であることを示す情報を登録する。
【0250】
次に、CPU81は、コントローラ登録画面を更新する(ステップS18)。具体的には、登録部305は、プレイヤ登録された順番に従って設定されたコントローラのイメージ画像を表示する。たとえば、3番目のプレイヤ番号が登録された場合には、コントローラ登録画面において左から3番目の領域に横持ちで操作する場合の左コントローラが表示される。また、インジケータ画像としてプレイヤ番号が3番目であることを示すインジケータ画像が表示される。なお、プレイヤ番号に対応して対応する左コントローラの通知用LEDを点灯させるようにしても良い。
【0251】
一方、ステップS26において、CPU81は、操作データが第2Lボタンおよび第2Rボタン操作データを有していないと判断した場合(ステップS26においてNO)には、操作データが第1Lボタン操作データおよび第1Rボタン操作データを同時に受信したか否かを判断する(ステップS28)。具体的には、第1判定部306は、
図18(B)で説明したように、同時に受信した複数の操作データのうちの一方の操作データに第1Lボタン操作データ、他方の操作データに第1Rボタン操作データが含まれているか否かを判断する。
【0252】
ステップS28において、CPU81は、操作データが第1Lボタン操作データおよび第1Rボタン操作データを同時に受信したと判断した場合(ステップS26においてYES)には、組を構成する2本のコントローラに対してプレイヤ番号を登録する(ステップS30)。具体的には、登録部305は、登録情報にプレイヤ番号を登録する。プレイヤ登録の順番に従って2本のそれぞれのコントローラに対してプレイヤ番号を登録する。先頭のプレイヤはP1、2番目のプレイヤはP2、以降同様の形式に従ってプレイヤ番号を登録する。
【0253】
なお、本例においては、左コントローラ3と右コントローラ4とが組を構成する。したがって、左コントローラ2本あるいは右コントローラ2本では組を構成しない。また、操作データを同時に受信は完全に受信するタイミングが同じであることに限られず、最初の操作データを受信してから後の操作データを受信するまでの期間が極めて短い場合も含まれる概念である。
【0254】
次に、CPU81は、登録情報に縦持ち操作方式を登録する(ステップS32)。具体的には、登録部305は、登録情報の操作方式の欄に縦持ち操作方式であることを示す情報を登録する。
【0255】
次に、CPU81は、コントローラ登録画面を更新する(ステップS18)。具体的には、登録部305は、プレイヤ登録された順番に従って設定されたコントローラのイメージ画像を表示する。たとえば、1番目のプレイヤ番号が登録された場合には、コントローラ登録画面において左から1番目の領域に縦持ちで操作する場合の左コントローラおよび右コントローラが表示される。また、インジケータ画像としてプレイヤ番号が1番目であることを示すインジケータ画像が表示される。なお、プレイヤ番号に対応する左コントローラおよび右コントローラの通知用LEDを点灯させるようにしても良い。
【0256】
以降の処理は同様であるのでその詳細な説明については繰り返さない。
一方、ステップS28において、CPU81は、操作データが第1Lボタン操作データおよび第1Rボタン操作データを同時に受信していないと判断した場合(ステップS26においてNO)には、ステップS20に進む。
【0257】
ステップS20において、CPU81は、コントローラ登録処理が終了したか否かを判断する(ステップS20)。具体的には、登録部305は、
図15で説明したコントローラ登録画面において、「A」ボタンが選択された場合にコントローラ登録処理が終了したと判断される。
【0258】
ステップS20において、CPU81は、コントローラ登録処理が終了したと判断した場合(ステップS20においてYES)には、処理を終了する(エンド)。
【0259】
一方、CPU81は、コントローラ登録処理が終了しないと判断した場合(ステップS20においてNO)には、ステップS2に戻り上記処理を繰り返す。
【0260】
図22は、実施形態に基づく本体装置2において実行される判定処理のサブルーチンを説明するフロー図である。当該判定処理は、時間判定部309における処理である。
【0261】
図22に示されるように、CPU81は、複数の経過時間データを受信したか否かを判断する(ステップS110)。時間判定部309は、受信したデータに複数の経過時間データが含まれているか否かを判断する。
【0262】
次に、ステップS110において、CPU81は、複数の経過時間データを受信したと判断した場合(ステップS110においてYES)には、複数の経過時間が実質的に同じ時間であるか否かを判断する(ステップS112)。時間判定部309は、受信したデータに複数の経過時間データが含まれていると判断した場合に、経過時間データ同士が実質的に同じ値であるか否かを判断する。具体的には、時間判定部309は、2つの経過時間データの時間差が所定期間以内であるか否かを判断する。
【0263】
次に、CPU81は、複数の経過時間が実質的に同じ時間であると判断した場合(ステップS112においてYES)には、判定OKと判断する(ステップS114)。時間判定部309は、経過時間データ同士が実質的に同じ値であると判断した場合には、判定OKとして登録部305に出力する。
【0264】
そして、処理を終了する(リターン)。
一方、ステップS110において、CPU81は、複数の経過時間データを受信していないと判断した場合(ステップS110においてNO)あるいは、複数の経過時間が実質的に同じ時間で無いと判断した場合は、判定NGと判断する(ステップS116)。時間判定部309は、経過時間データ同士が実質的に同じ値でないと判断した場合には、判定NGとして登録部305に出力する。
【0265】
そして、処理を終了する(リターン)。
図23は、実施形態に基づくコントローラ3と本体装置2との間のデータの授受を説明するシーケンス図である。本例においては、コントローラ3と本体装置2との間で通信接続処理が確立していない状態について説明する。
【0266】
図23に示されるように、ユーザがコントローラ3の第2Lボタン43および第2Rボタン44を操作する(シーケンスsq2)。
【0267】
次に、コントローラ3は、通信接続が確立されているか否かを確認する(シーケンスsq3)。本例の場合には通信接続が確立されていないものとする。
【0268】
次に、コントローラ3は、本体装置2に接続要求を送信する(シーケンスsq4)。
また、コントローラ3は、操作情報をメモリ102に格納する(シーケンスsq6)。
【0269】
本体装置2において、コントローラ3から送信された接続要求が受信される(シーケンスsq8)。
【0270】
本体装置2は、接続要求に従ってコントローラ3との間で通信接続処理を開始する(シーケンスsq12)。
【0271】
本体装置2は、接続承認をコントローラ3に通知する(シーケンスsq14)。
コントローラ3は、本体装置2からの接続承認の通知を受信する(シーケンスsq16)。
【0272】
そして、コントローラ3は、本体装置2に対して応答信号を送信する(シーケンスsq18)。
【0273】
本体装置2は、コントローラ3からの応答信号を受信する(シーケンスsq20)。
これにより、コントローラ3と本体装置2との間の通信接続処理が完了する(シーケンスsq22)。
【0274】
次に、本体装置2は、通信接続が確立したコントローラ3に対して操作された時間に関する経過時間の送信を要求する(シーケンスsq24)。
【0275】
そして、コントローラ3は、本体装置2からの経過時間の要求を受信する(シーケンスsq26)。
【0276】
そして、コントローラ3は、メモリ102に格納されている操作情報を確認する(シーケンスsq28)。
【0277】
そして、コントローラ3は、経過時間を算出する(シーケンスsq30)。
コントローラ3は、本体装置2に経過時間を送信する(シーケンスsq32)。
【0278】
本体装置2は、コントローラ3から送信された経過時間を受信する(シーケンスsq34)。
【0279】
本体装置2は、複数の経過時間データを受信したか否かを判定し、複数の経過時間データを受信したと判定した場合には、経過時間データ同士が実質的に同じ値であるか否かを判定する(シーケンスsq36)。
【0280】
本例において、本体装置2は、複数の経過時間が実質的に同じ時間であると判断し、判定OKと判定する(シーケンスsq38)。
【0281】
本体装置2は、登録情報に横持ち操作方式を登録する(シーケンスsq40)。
当該処理により、通信接続が確立していないコントローラのコントローラ登録処理において、通信接続確立前の1回のコントローラ操作に関して、通信接続処理とともに、操作時間に関する情報に基づいて操作方式を簡易に登録することが可能であるためユーザビリティを向上させることが可能である。
【0282】
なお、本例においては、本体装置2からの経過時間の要求に対して、コントローラ3で経過時間を算出して、算出した経過時間を本体装置2に送信し、本体装置2で経過時間データ同士が実質的に同じ値であるか否かを判定する方式について説明した。一方で、コントローラ3で経過時間を算出するのではなく、本体装置2側で経過時間を算出するようにしてもよい。具体的には、コントローラ3は、当該要求に対してメモリ102に格納されている操作情報(操作時刻を含む)を本体装置2に送信し、本体装置2側で経過時間を算出して、経過時間データ同士が実質的に同じ値であるか否かを判定するようにしてもよい。
【0283】
また、上記の方式においては、コントローラにおいて、本体装置2との間での通信接続が確立されているか否かを判断して、通信接続が確立されている場合には操作データを送信し、通信接続が確立されていない場合には接続要求を送信する場合について説明したが、本体装置2側で通信接続が確立されているか否かを判断するようにしてもよい。この場合、コントローラは、操作ボタンの操作に従って操作データを常に送信するものとする。本体装置2側では、通信接続が確立されていない場合には、当該操作データに基づいて通信接続処理を実行するようにしてもよい。
【0284】
また、各コントローラから送信される操作データに基づいてコントローラ登録処理を実行することが可能である。当該コントローラ登録処理において、複数の操作方式の選択が可能なコントローラについて、操作データの操作内容に基づいて1つの操作方式を登録することが可能である。これにより、操作方式について簡易にコントローラ登録処理を実行することが可能であり、ユーザビリティを向上させることが可能である。
【0285】
なお、コントローラ登録処理に関して、一旦登録された操作方式を変更することも可能である。
【0286】
例えば、2本のコントローラを用いた縦持ちの操作方式が登録された後に、1本のコントローラによる横持ちの操作方式に変更することも可能である。
【0287】
具体的には、プレイヤ番号P1に登録された2本のコントローラのうちの左コントローラ3について、第2Lボタンおよび第2Rボタンの両方を押下する。当該処理により、左コントローラから操作データが本体装置2に送信される。
【0288】
本体装置2は、当該操作データを受信して、プレイヤの再登録処理および横持ち登録処理を実行する。プレイヤ番号P1に登録された左コントローラ3について、登録情報のプレイヤ番号を維持しつつ、操作方式を横持ち操作方式に変更する。また、プレイヤ番号P1に登録されていた右コントローラ4については登録情報のプレイヤ番号の割り当ておよび操作方式の情報を消去する。左コントローラ3について説明したが、右コントローラ4についても同様であり、同様の方式によりプレイヤの再登録処理および横持ち登録処理が実行される。
【0289】
また、1本のコントローラを用いた横持ちの操作方式が登録された後に、2本のコントローラによる縦持ちの操作方式に変更することも可能である。
【0290】
具体的には、プレイヤ番号P3に登録された左コントローラ3と、プレイヤ番号P4に登録された右コントローラ4とについて、それぞれ第1Lボタンおよび第1Rボタンの両方を押下する。当該処理により、左コントローラ3および右コントローラ4から操作データが本体装置2に送信される。
【0291】
本体装置2は、当該操作データを受信して、上記で説明した方式に従ってプレイヤの再登録処理および縦持ち登録処理を実行する。
【0292】
プレイヤ番号P3に登録されていた左コントローラ3およびプレイヤ番号P4に登録されていた右コントローラ4について、組を構成するコントローラとして判断される。登録情報に関して、プレイヤ番号P3に登録されていた左コントローラ3については、プレイヤ番号を維持しつつ、操作方式を縦持ち操作方式に変更する。プレイヤ番号P4に登録されていた右コントローラ4については、プレイヤ番号をプレイヤ番号P3に変更するとともに、操作方式を縦持ち操作方式に変更する。
【0293】
[G:ゲーム処理]
図24は、実施形態に基づくゲーム装置1によって実行されるゲーム処理を説明する一例図である。
【0294】
図24には、ゲーム装置1で生成した画像がテレビ6に表示されている。
本例においては、4人のプレイヤが示されている。ユーザPAは、2本のコントローラ3a,4aを用いて対応するオブジェクトを操作する。ユーザPBは、2本のコントローラ3b,4bを用いて対応するオブジェクトを操作する。ユーザPCは、1本のコントローラ3cを用いて対応するオブジェクトを操作する。ユーザPDは、1本のコントローラ4cを用いて対応するオブジェクトを操作する。
【0295】
本例においては、ゲーム装置1は、テレビ6の表示領域を4つに分割し、分割された表示領域6AにユーザPAのための画像(例えば、第1オブジェクトを含む画像)を表示し、分割された表示領域6BにユーザPBのための画像(例えば、第2オブジェクトを含む画像)を表示する。また、同様に、ゲーム装置1は、分割された表示領域6CにユーザPCのための画像(例えば、第3オブジェクトを含む画像)を表示し、分割された表示領域6DにユーザPDのための画像(例えば、第4オブジェクトを含む画像)を表示する。
【0296】
各コントローラは、ゲーム装置1からのプレイヤ番号に基づいて通知用LEDを制御する。
【0297】
なお、本例においては、4人のプレイヤであるユーザPA〜PDがそれぞれコントローラを用いて対応するオブジェクトを操作している場合について説明したが、1人のプレイヤの場合についても同様である。
【0298】
[H:処理手順]
次に、実施形態に基づくゲーム装置1におけるゲーム処理に係る処理手順について説明する。
【0299】
図25は、実施形態に基づくゲーム処理に係る処理手順を示すフロー図である。
図25に示される各ステップは、典型的には、本体装置2のCPU81がプログラムを実行することで実現される。
【0300】
図25を参照して、CPU81は、ゲーム処理の開始が指示されるか否かを判断する(ステップS50)。ゲーム処理実行モジュール302は、ゲーム処理の開始が指示されたか否かを判断する。
【0301】
CPU81は、ゲーム処理の開始が指示されたと判断した場合(ステップS50においてYES)には、ゲーム空間内にオブジェクトを配置したゲーム画像を生成する(ステップS51)。ゲーム処理実行モジュール302は、DRAM85に保存されて実行されるプログラムに基づいてゲーム空間内にオブジェクトを配置したゲーム画像を生成する。
【0302】
次に、CPU81は、操作データを取得するか否かを判断する(ステップS52)。具体的には、ゲーム処理実行モジュール302は、通信制御モジュール310を介して操作データを取得したか否かを判断する。
【0303】
ステップS52において、CPU81は、操作データを取得したと判断した場合(ステップS52においてYES)には、横持ち操作が登録されているか否かを判断する(ステップS54)。具体的には、ゲーム処理実行モジュール302は、フラッシュメモリ84に格納されている登録情報を参照して、取得した操作データに対応するコントローラの登録情報の操作方式に関する情報に横持ち操作方式が登録されているか否かを判断する。
【0304】
ステップS54において、CPU81は、横持ち操作が登録されていないと判断した場合(ステップS54においてNO)には、操作データに基づく処理を実行する(ステップS56)。具体的には、ゲーム処理実行モジュール302は、フラッシュメモリ84に格納されている登録情報を参照して、取得した操作データに対応するコントローラの登録情報の操作方式に関する情報に横持ち操作方式が登録されていないと判断した場合には、当該取得した操作データに基づくゲーム処理を実行する。
【0305】
次に、CPU81は、ゲーム画像を更新する(ステップS58)。具体的には、ゲーム処理実行モジュール302は、取得したユーザ操作に従う操作データに応じたゲーム画像を生成する。そして、生成されたゲーム画像に従ってテレビ6に更新出力する。
【0306】
次に、CPU81は、ゲーム処理の終了が指示されたかどうかを判断する(ステップS60)。
【0307】
ステップS60において、CPU81は、ゲーム処理の終了が指示されたと判断した場合(ステップS60においてYES)には、処理を終了する(エンド)。
【0308】
一方、ステップS60において、CPU81は、ゲーム処理の終了が指示されていないと判断した場合(ステップS60においてNO)には、ステップS52に戻り、上記処理を繰り返す。
【0309】
一方、ステップS54において、CPU81は、横持ち操作が登録されていると判断した場合(ステップS54においてYES)には、操作データを変換操作データに変換する処理を実行する(ステップS62)。具体的には、ゲーム処理実行モジュール302は、フラッシュメモリ84に格納されている登録情報を参照して、取得した操作データに対応するコントローラの登録情報の操作方式に関する情報に横持ち操作方式が登録されていると判断した場合には、操作データを変換操作データに変換する処理を実行する。
【0310】
具体的には、左コントローラ3の場合には、アナログスティック32の方向指示を90°反時計回りに回転させた変換操作データに変換する。
【0311】
これにより、オブジェクトに対する横持ち操作方式の左コントローラ3の指示と、左コントローラ3の縦持ち操作方式のアナログスティック32の方向指示とを同じ方向に合わせることが可能となる。また、4つの操作ボタン33〜36の機能をそれぞれXボタン、Aボタン、YボタンおよびBボタンにそれぞれ割り当てる。これにより、オブジェクトに対する横持ち操作方式の左コントローラ3の操作ボタンと、縦持ち操作方式の4つの操作ボタン33〜36の機能とを同じ機能に合わせることが可能となる。
【0312】
また、右コントローラ4の場合には、アナログスティック52の方向指示を90°時計回りに回転させた変換操作データに変換する。
【0313】
これにより、オブジェクトに対する横持ち操作方式の右コントローラ4の指示と、右コントローラ4の縦持ち操作方式のアナログスティック52の方向指示とを同じ方向に合わせることが可能となる。また、4つの操作ボタン53〜56の機能をそれぞれBボタン、Yボタン、AボタンおよびXボタンにそれぞれ割り当てる。これにより、オブジェクトに対する横持ち操作方式の右コントローラ4の操作ボタンと、縦持ち操作方式の4つの操作ボタン53〜56の機能とを同じ機能に合わせることが可能となる。
【0314】
次に、CPU81は、変換操作データに基づく処理を実行する(ステップS64)。具体的には、ゲーム処理実行モジュール302は、変換した変換操作データに応じたゲーム画像を生成する。そして、生成されたゲーム画像に従ってテレビ6に更新出力する。
【0315】
以降の処理は同様であるのでその詳細な説明については繰り返さない。
次に、CPU81は、ゲーム画像を更新する(ステップS58)。具体的には、ゲーム処理実行モジュール302は、取得したユーザ操作に従う操作データに応じたゲーム画像を生成する。そして、生成されたゲーム画像に従ってテレビ6に更新出力する。
【0316】
以降の処理は同様であるのでその詳細な説明については繰り返さない。
また、本実施形態におけるプログラムとして、パーソナルコンピュータで実行可能なアプリケーションを提供してもよい。このとき、本実施形態に係るプログラムは、パーソナルコンピュータ上で実行される各種アプリケーションプログラムの一部の機能として組み込まれてもよい。
【0317】
今回開示された実施形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。