この実施形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
[A.情報処理システム]
本実施形態に従う情報処理システムに係る装置構成について説明する。本実施形態に従う情報処理システムは、少なくとも以下に説明する情報処理装置によって構成される。
例えば、情報処理装置は、携帯型ゲーム装置、携帯電話、あるいはスマートフォン等といった、携帯型(可搬型とも言う)の装置であってもよいし、パーソナルコンピュータや家庭用ゲーム機等といった据置型の装置であってもよいし、業務用のアーケードゲーム装置のような大型の装置であってもよい。本例においては、一例として情報処理装置の一例としてゲーム装置について説明する。また、本例においては、操作装置の一例としてゲーム装置に対して設けられたゲームコントローラについて説明するが、特にゲームコントローラに限られず、情報処理装置に対して操作データを送信することが可能な入力デバイスであればどのような操作装置であっても良い。
(a1:ゲーム装置の全体構成)
図1は、本実施形態に従うゲーム装置1の外観を示す模式図である。
図1に示すように、ゲーム装置1は、本体装置2と、左コントローラ3と、右コントローラ4とを含む。本体装置2は、表示部の一例としてのディスプレイ12を有しており、ゲーム装置1でのゲーム処理を含む各種処理を実行する。
図2は、本実施形態に従うゲーム装置1の別態様の外観を示す模式図である。
図2に示すように、左コントローラ3および右コントローラ4は、本体装置2から分離可能に構成されてもよい。このとき、左コントローラ3および右コントローラ4を一体的に構成してもよいし、左コントローラ3および右コントローラ4をそれぞれ分離した装置として構成してもよい。このように、操作部に相当する左コントローラ3および右コントローラ4は、本体装置2とは分離して構成されてもよい。
左コントローラ3は、本体装置2の左側(図1に示すx軸正方向側)に装着することができる。右コントローラ4は、本体装置2の右側(図1に示すx軸負方向側)に装着することができる。なお、以下の説明において、左コントローラ3および右コントローラ4を「コントローラ」と総称することがある。以下、本体装置2、左コントローラ3および右コントローラ4のより具体的な構成例について説明する。
(a2:本体装置の構造)
図3は、本実施形態に従う本体装置2を示す六面図である。
図3を参照して、本体装置2は、略板状のハウジング11を有している。
ハウジング11の主面(すなわち、おもて側の面、あるいは、ディスプレイ12が設けられる面)は、大略的には矩形形状になっている。ハウジング11は、横長の形状を有しており、以下の説明においては、その主面の長手方向(すなわち、図1に示すx軸方向)を横方向(あるいは、左右方向)と称し、その主面の短手方向(すなわち、図1に示すy軸方向)を縦方向(あるいは、上下方向)と称する。ハウジング11の主面に垂直な方向(すなわち、図1に示すz軸方向)を奥行き方向(あるいは、前後方向)と称する。
但し、本体装置2は、ユーザが把持したときにその主面が横長になる向きで使用することも可能であるし、その主面が縦長になる向きで使用することも可能である。したがって、横方向および縦方向といった名称付けは、説明の便宜上のものである。
ハウジング11の形状および大きさは任意に設計できる。例えば、別の実施形態として、ハウジング11に対して、ユーザが把持しやすくするための突起部やグリップ部を付加するようにしてもよい。
(1)ハウジング11の主面上に設けられる部材
図1~3に示すように、本体装置2のハウジング11の主面には、ディスプレイ12が設けられる。ディスプレイ12は、本体装置2が取得または生成した画像(静止画であってもよいし、動画像であってもよい)を表示する。ゲーム処理が実行される場合、ディスプレイ12は、仮想空間および仮想空間内のオブジェクトを表示する。典型的には、ディスプレイ12は、液晶表示装置(LCD)で構成されるが、任意の種類の表示装置を採用できる。
ディスプレイ12の画面上にはタッチパネル13が設けられる。典型的には、タッチパネル13は、マルチタッチ入力が可能な方式(例えば、静電容量方式)のデバイスが採用される。但し、タッチパネル13としては、例えば、シングルタッチ入力が可能な方式(例えば、抵抗膜方式)のデバイスといった、任意の種類のデバイスを採用できる。
本体装置2のハウジング11の主面には、スピーカ孔11aおよび11bが形成されており、ハウジング11の内部に配置されるスピーカ(図7に示すスピーカ88)から発生された音がスピーカ孔11aおよび11bから出力される。
本体装置2には2つのスピーカが設けられており、左スピーカおよび右スピーカのそれぞれの位置に対応付けてスピーカ孔11aおよび11bが形成されている。すなわち、スピーカ孔11aは、左スピーカに対応付けてディスプレイ12の左側に形成され、スピーカ孔11bは、右スピーカに対応付けてディスプレイ12の右側に形成される。
なお、スピーカ孔11aおよび11bの位置、形状、および数は任意に設計できる。例えば、別の実施形態として、スピーカ孔11aおよび11bをハウジング11の側面または背面に形成してもよい。
(2)ハウジング11の左側面に設けられる部材
ハウジング11の左側面には、左コントローラ3を本体装置2に着脱可能に装着するための部材である左レール部材15が設けられる。左レール部材15は、ハウジング11の左側面において、上下方向に沿って延びる。左レール部材15は、左コントローラ3のスライダ(図4に示すスライダ40)と係合可能な形状を有している。左レール部材15とスライダ40とによってスライド機構が形成される。このようなスライド機構によって、左コントローラ3を本体装置2に対してスライド可能かつ着脱可能に装着することができる。
ハウジング11の左側面には、左側端子17が設けられる。左側端子17は、本体装置2と左コントローラ3との間で有線通信を行なうための端子である。左側端子17は、左コントローラ3が本体装置2に装着された場合に、左コントローラ3の端子(図4に示す端子42)と接触する位置に設けられる。左側端子17は、左コントローラ3が本体装置2に装着された状態で、本体装置2の左側端子と左コントローラ3の端子とが接する任意の位置に配置すればよい。一例として、図3に示すように、左側端子17は左レール部材15の下側端部付近に設けられる。
(3)ハウジング11の右側面に設けられる部材
図3に示すように、ハウジング11の右側面には、左側面に設けられる構成と同様の構成が設けられる。すなわち、ハウジング11の右側面には、右コントローラ4を本体装置2に着脱可能に装着するための部材である右レール部材19が設けられる。右レール部材19は、ハウジング11の右側面において、上下方向に沿って延びる。右レール部材19は、右コントローラ4のスライダ(図5に示すスライダ62)と係合可能な形状を有している。右レール部材19とスライダ62とによってスライド機構が形成される。このようなスライド機構によって、右コントローラ4を本体装置2に対してスライド可能かつ着脱可能に装着することができる。
右レール部材19は、左レール部材15と同様の形状を有している。すなわち、右レール部材19は、左レール部材15と同様の断面形状となる溝を有する形状である。但し、右レール部材19は、左レール部材15と全く同じ形状である必要はない。例えば、別の実施形態として、左レール部材15の溝と右レール部材19の溝との間で大きさおよび/または形状を異ならせることで、右コントローラ4のスライダ62が左レール部材15に係合できないように、および/または、左コントローラ3のスライダ40が右レール部材19に係合できないように構成してもよい。
ハウジング11の右側面には、右側端子21が設けられる。右側端子21は、本体装置2が右コントローラ4との間で有線通信を行なうための端子である。右側端子21は、右コントローラ4が本体装置2に装着された場合に、右コントローラ4の端子(図5に示す端子64)と接触する位置に設けられる。右側端子21は、右コントローラ4が本体装置2に装着された状態で、本体装置2の右側端子と右コントローラ4の端子とが接する任意の位置に配置すればよい。一例として、図3に示すように、右側端子21は右レール部材19の下側端部付近に設けられる。
上述したように、本実施形態に従う本体装置2のハウジング11には、コントローラを装着するための左レール部材15および右レール部材19が設けられる。左レール部材15および右レール部材19の位置、形状、および大きさは任意に設計できる。例えば、別の実施形態として、左レール部材15および右レール部材19を、ハウジング11の主面および/または裏面における左右の端部にそれぞれ設けてもよい。本体装置2とコントローラとを着脱可能に装着するための機構は任意の構成を採用でき、図1~3に示すスライダ機構とは異なるスライダ機構を採用してもよいし、スライダ機構とは異なる機構を採用してもよい。例えば、本体装置側に設けた凸部とコントローラ側に設けた凹部とを嵌合することで装着するように構成してもよいし、本体装置側もしくはコントローラ側に磁石を設け、他方に磁性体で構成される部分を設けて、両者を吸着させることで装着するように構成してもよい。
(4)ハウジング11の上側面に設けられる部材
図3に示すように、ハウジング11の上側面には、第1の種類の記憶媒体を装着するための第1スロット23が設けられる。典型的な構成として、第1スロット23の開口部には開閉可能な蓋部が設けられており、蓋部を開けた状態において、第1スロット23に第1の種類の記憶媒体を挿入することができる。第1の種類の記憶媒体は、例えば、ゲーム装置1およびそれと同種のゲーム装置に専用設計された記憶媒体(例えば、専用メモリカード)である。第1の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を格納するために用いられる。
ハウジング11の上側面には、本体装置2の電源のオン/オフを切り替えるための電源ボタン28が設けられる。本実施形態においては、電源ボタン28は、オンモードとスリープモードとを切り替えるためにも用いられる。
オンモードは、例えば、ディスプレイ12の画面表示が行なわれるモードであり、スリープモードは、例えば、ディスプレイ12の画面表示が休止されるモードである。スリープモードにおいては、ディスプレイ12の画面表示が休止されるとともに、またはそれに代えて、実行中のアプリケーションにおける処理(例えば、ゲームアプリケーションにおけるゲーム処理)が休止されるようにしてもよい。
電源ボタン28に対して長押し操作が行なわれた場合(例えば、電源ボタン28が所定時間以上押下し続けられた場合)、本体装置2の電源のオン/オフを切り替える処理が実行される。一方、電源ボタン28に対して短押し操作が行なわれた場合(例えば、電源ボタン28が上記所定時間よりも短い時間だけ押下された場合)、オンモードとスリープモードとを切り替える処理が実行される。
上述したように、本実施形態に従う本体装置2の電源ボタン28は、電源のオン/オフの切り替え、および/または、オンモードとスリープモードとの切り替えに用いられる。別の実施形態として、電源ボタン28がいずれか一方の切り替えのみを実行するようにしてもよい。この場合、他方の切り替えを行なう別のボタンが本体装置2に設けられてもよい。
ハウジング11の上側面には、音声入出力端子25(具体的には、イヤホンジャック)が設けられる。音声入出力端子25には、マイクやイヤホンを装着することができる。
(5)ハウジング11の下側面に設けられる部材
図3に示すように、ハウジング11の下側面には、本体装置2が後述するクレードル5との間で有線通信を行なうための下側端子27が設けられる。下側端子27は、本体装置2がクレードル5に装着された場合に、クレードル5の端子と接触する位置に設けられる。典型的には、下側端子27として、USB(Universal Serial Bus)コネクタ(より具体的には、メス側コネクタ)を採用できる。
ハウジング11の下側面には、第1の種類とは異なる第2の種類の記憶媒体を装着するための第2スロット24が設けられる。なお、第2スロット24は、第1スロット23と同じ面に設けられてもよい。典型的な構成として、第2スロット24の開口部には開閉可能な蓋部が設けられており、蓋部を開けた状態において、第2スロット24に第2の種類の記憶媒体を挿入することができる。第2の種類の記憶媒体は、例えば、汎用の記憶媒体(例えば、SDカード)であってもよい。第2の種類の記憶媒体は、例えば、第1の種類の記憶媒体と同様、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を格納するために用いられる。
上述したハウジング11に設けられる各構成要素(具体的には、ボタン、スロット、端子等)の位置、形状、および数は任意に設計できる。例えば、別の実施形態として、電源ボタン28、第1スロット23、第2スロット24のうちのいくつかについては、ハウジング11の他の側面または背面に設けてもよい。また、上記構成要素のうちいくつかを省略した構成を採用してもよい。
(a3:左コントローラの構造)
図4は、本実施形態に従う左コントローラ3を示す六面図である。
図4を参照して、左コントローラ3は、略板状のハウジング31を有している。ハウジング31の主面(すなわち、おもて側の面、あるいは、図1に示すz軸負方向側の面)は、大略的には矩形形状になっている。ハウジング31は、縦長の形状、すなわち上下方向(すなわち、図1に示すy軸方向)に長い形状を有している。
左コントローラ3は、本体装置2から外された状態において、ユーザが把持したときにその主面が縦長となる向きで使用することも可能であるし、その主面が横長となる向きで使用することも可能である。
ハウジング31の形状および大きさは任意に設計できる。別の実施形態として、ハウジング31を略板状以外の形状に構成してもよい。ハウジング31についても、矩形形状でなくてもよく、例えば、半円状等の形状を採用してもよい。さらに、ハウジング31は、縦長の形状でなくてもよい。
ハウジング31の上下方向の長さは、本体装置2に係るハウジング11の上下方向の長さと略同じであることが好ましい。ハウジング31の厚さ(すなわち、前後方向の長さ、あるいは、図1に示すz軸方向の長さ)は、本体装置2のハウジング11の厚さと略同じであることが好ましい。したがって、左コントローラ3が本体装置2に装着された場合(図1参照)には、ユーザは、本体装置2と左コントローラ3とを一体の装置のような感覚で把持することができる。
ハウジング31の主面は、左側の角部分が、右側の角部分よりも丸みを帯びた形状になっている。すなわち、ハウジング31の上側面と左側面との接続部分、および、ハウジング31の下側面と左側面との接続部分は、その上側面と右側面との接続部分、および、その下側面と右側面との接続部分に比べて、丸くなっている(すなわち、面取りにおけるRが大きい)。したがって、左コントローラ3が本体装置2に装着された場合(図1参照)には、ゲーム装置1の左側が丸みを帯びた形状となるので、ユーザにとって持ちやすい形状となる。
左コントローラ3には、アナログスティック32が設けられる。図4に示すように、アナログスティック32は、ハウジング31の主面に設けられる。アナログスティック32は、方向を入力することが可能な方向指示部の一例である。アナログスティック32は、ハウジング31の主面に平行な全方向(すなわち、上下左右および斜め方向を含む、360°の方向)に傾倒可能なスティック部材を有する。ユーザは、スティック部材を傾倒することによって傾倒方向に応じた方向の入力が可能なアナログ入力デバイスである。アナログスティック32はさらに、スティック部材を傾倒するときに、傾倒方向に応じた方向の入力に加えて、傾倒した角度に応じた大きさの入力が可能なように構成してもよい。また、方向指示部は、スライドスティック等であってもよい。スライドスティックは、ハウジング31の主面に平行な全方向にスライド可能なスティック部材を有する入力部であり、ユーザは、スティック部材をスライドすることによってスライド方向に応じた入力が可能である。スライドスティックはさらに、スライド量に応じた大きさの入力が可能なようにも構成できる。また、方向指示部は、ボタンの押下操作によって方向を指示する入力部として構成してもよい。例えば、方向指示部は、十字キーまたは上下左右に対応した4つのボタンによって方向を指示する入力部として構成してもよい。また、本実施形態においては、スティック部材を(ハウジング31に垂直な方向に)押下する入力が可能である。すなわち、本実施形態におけるアナログスティック32は、スティック部材の傾倒方向および傾倒量に応じた方向および大きさの入力と、スティック部材に対する押下入力とを行なうことが可能な入力部である。
左コントローラ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は、方向入力以外の指示を行なうために用いられてもよい。
左コントローラ3の主面に設けられる操作部(具体的には、アナログスティック32および操作ボタン33~36)は、左コントローラ3が本体装置2に装着される場合、ゲーム装置1を把持するユーザの例えば左手の親指によって操作される(図9参照)。また、左コントローラ3が本体装置2から外された状態で使用される場合、操作部は、左コントローラ3を把持するユーザの例えば左の手の親指で操作される(図10参照)。
左コントローラ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の当該左上部分の丸みに応じた丸みを帯びた形状を有する。
左コントローラ3が本体装置2に装着される場合、第1Lボタン38およびZLボタン39は、ゲーム装置1における左上部分に配置されることになる(図1参照)。したがって、ゲーム装置1を把持するユーザは、左手の人差し指や中指で第1Lボタン38およびZLボタン39を操作することができる。
左コントローラ3は、上述したスライダ40を有している。図4に示すように、スライダ40は、ハウジング31の右側面において、上下方向に沿って延びる。スライダ40は、本体装置2の左レール部材15(より具体的には、左レール部材15の溝)と係合可能な形状を有している。具体的には、スライダ40の断面(具体的には、上下方向に対して垂直な断面)は、凸型の形状を有する。より具体的には、スライダ40の断面は、左レール部材15の断面形状に応じたT字形状を有している。したがって、左レール部材15に係合したスライダ40は、スライド方向(すなわち、左レール部材15が延びる方向)に垂直な向きに関しては固定されて外れないようになっている。
また、左コントローラ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を把持するユーザの左右の手の人差し指または中指で操作される。
左コントローラ3は、通知用LED45を備える。通知用LED45は、ユーザに対して所定の情報を通知するための通知部である。通知用LED45によって通知される情報は任意である。本実施形態においては、通知用LED45は、本体装置2が複数のコントローラと通信を行う場合には、各コントローラを識別する情報をユーザに示す。具体的には、左コントローラ3は、通知用LED45として、本体装置2が同時に通信可能な左コントローラの数(ここでは、4つ)のLEDを備える。そして、4つのLEDのうち、そのコントローラに付された番号に応じたLEDが点灯する。これによれば、通知用LED45によって上記番号をユーザに通知することが可能となる。
他の実施形態においては、通知用LED45は、左コントローラ3と本体装置2との通信に関する状態をユーザに通知しても良い。たとえば、本体装置2との通信が確立している場合に通知用LE45が点灯しても良い。また、本実施形態においては、通知用LED45として機能するLED(換言すれば発光部)の数を4つとしているが、当該LEDの個数は任意である。
本実施形態においては、通知用LED45は、図に示すように、スライダ40の装着面に設けられる。したがって、通知用LED45は、左コントローラ3が本体装置2に装着されている状態では、見えない位置に配置されている。つまり、通知用LED45は、左コントローラ3を本体装置2から外した場合において用いられる。
なお、本実施形態において、スライダ40の装着面に設けられるボタン(具体的には、第2Lボタン43、第2Rボタン44)は、当該装着面に対して突出しないように設けられる。すなわち、上記ボタンの上面(換言すれば押下面)は、スライダ40の装着面と同じ面に配置されるか、あるいは、装着面よりも凹んだ位置に配置される。これによれば、スライダ40が本体装置2の左レール部材15に装着された状態において、スライダ40を左レール部材15に対してスムーズにスライドさせることができる。
(a4:右コントローラの構造)
図5は、本実施形態に従う右コントローラ4を示す六面図である。
図5を参照して、右コントローラ4は、略板状のハウジング51を有している。ハウジング51の主面(すなわち、おもて側の面、あるいは、図1に示すz軸負方向側の面)は、大略的には矩形形状になっている。ハウジング51は、縦長の形状、すなわち、上下方向に長い形状を有している。
右コントローラ4は、本体装置2から外された状態において、ユーザが把持したときにその主面が縦長となる向きで使用されることも可能であるし、その主面が横長となる向きで使用することも可能である。
右コントローラ4のハウジング51は、左コントローラ3のハウジング31と同様、その上下方向の長さは、本体装置2に係るハウジング11の上下方向の長さと略同じであることが好ましく、その厚さは、本体装置2のハウジング11の厚さと略同じであることが好ましい。したがって、右コントローラ4が本体装置2に装着された場合(図1参照)には、ユーザは、本体装置2と右コントローラ4とを一体の装置のような感覚で把持することができる。
ハウジング51の主面は、右側の角部分が、左側の角部分よりも丸みを帯びた形状になっている。すなわち、ハウジング51の上側面と右側面との接続部分、および、ハウジング51の下側面と右側面との接続部分は、その上側面と左側面との接続部分、および、その下側面と左側面との接続部分に比べて、丸くなっている(すなわち、面取りにおけるRが大きい)。したがって、右コントローラ4が本体装置2に装着された場合(図1参照)には、ゲーム装置1の右側が丸みを帯びた形状となるので、ユーザにとって持ちやすい形状となる。
右コントローラ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つとするが、操作ボタンの数は任意である。
右コントローラ4における2種類の操作部(アナログスティック52および操作ボタン)の位置関係は、左コントローラ3におけるこれら2種類の操作部の位置関係とは反対になっている。すなわち、右コントローラ4においては、アナログスティック52は操作ボタン53~56の上方に配置されるのに対して、左コントローラ3においては、アナログスティック32は操作ボタン33~36の下方に配置される。このような配置によって、2つのコントローラを本体装置2から外して使用する場合に、両コントローラを互いに似たような操作感覚で使用することができる。
右コントローラ4の主面に設けられる操作部(具体的には、アナログスティック52および操作ボタン53~56)は、右コントローラ4が本体装置2に装着される場合、ゲーム装置1を把持するユーザの例えば右手の親指によって操作される(図9参照)。また、右コントローラ4が本体装置2から外された状態で使用される場合、操作部は、右コントローラ4を把持するユーザの例えば右の手の親指で操作される。
右コントローラ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の当該右上部分の丸みに応じた丸みを帯びた形状を有する。
右コントローラ4が本体装置2に装着される場合、第1Rボタン60およびZRボタン61は、ゲーム装置1における右上部分に配置されることになる(図1参照)。したがって、ゲーム装置1を把持するユーザは、右手の人差し指や中指で第1Rボタン60およびZRボタン61を操作することができる。
本実施形態においては、第1Lボタン38の形状と第1Rボタン60の形状とは左右対称にはならず、ZLボタン39の形状とZRボタン61の形状とは左右対称の形状にはなっていない。但し、別の実施形態として、第1Lボタン38の形状と第1Rボタン60の形状とを左右対称にしてもよく、ZLボタン39の形状とZRボタン61の形状とを左右対称にしてもよい。
右コントローラ4は、右コントローラ4が本体装置2と有線通信を行なうための端子64を有している。端子64は、右コントローラ4が本体装置2に装着された場合に、本体装置2の右側端子21(図3)と接触する位置に設けられる。右コントローラ4が本体装置2に装着された状態で、本体装置2と右コントローラ4とが接触する任意の位置に端子64を配置すればよい。一例として、図5に示すように、端子64はスライダ62の装着面における下側の端部付近に設けられる。
左コントローラ3のハウジング31および/または右コントローラ4のハウジング51に設けられる各構成要素(具体的には、スライダ、スティック、ボタン、およびLED等)の位置、形状、および数は任意に設計できる。例えば、別の実施形態として、コントローラは、アナログスティックとは別の種類の方向指示部が設けられていてもよい。また、スライダ40または62は、本体装置2に設けられる左レール部材15および右レール部材19の位置に応じた位置に配置されてよく、例えば、ハウジング31または51の主面または裏面に配置されてもよい。また、上記構成要素のうちいくつかを省略した構成を採用してもよい。
また、右コントローラ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を把持するユーザの左右の手の人差し指または中指で操作される。
右コントローラ4は、通知用LED67を備える。通知用LED67は、左コントローラ3の通知用LED45と同様、ユーザに対して所定の情報を通知するための通知部である。また、右コントローラ4は、通知用LED67として、左コントローラ3と同様に、4つのLEDを備える。4つのLEDのうち、そのコントローラに付された番号に応じたLEDが点灯する。これによれば、通知用LED45によって上記番号をユーザに通知することが可能となる。
本実施形態においては、通知用LED67は、図に示すように、通知用LED45と同様にスライダ62の装着面に設けられる。したがって、通知用LED67は、右コントローラ4が本体装置2に装着されている状態では、見えない位置に配置されている。つまり、通知用LED67は、右コントローラ4を本体装置2から外した場合において用いられる。
なお、本実施形態において、右コントローラ4においても、左コントローラ3と同様に、スライダ62の装着面に設けられるボタン(具体的には、第2Lボタン65、第2Rボタン66)は、当該装着面に対して突出しないように設けられる。すなわち、上記ボタンの上面(換言すれば押下面)は、スライダ62の装着面と同じ面に配置されるか、あるいは、装着面よりも凹んだ位置に配置される。これによれば、スライダ62が本体装置2の右レール部材19に装着された状態において、スライダ62を右レール部材19に対してスムーズにスライドさせることができる。
(a5:クレードルの利用)
図6は、本実施形態に従うゲーム装置1をクレードルとともに使用する場合の外観を示す模式図である。図6に示すゲームシステムは、ゲーム装置1およびクレードル5を含む。
クレードル5は、ゲーム装置1を載置可能に構成されるとともに、ゲーム装置1のディスプレイ12とは別体の外部表示装置の一例であるテレビ6と通信可能に構成される。ゲーム装置1をクレードル5に載置した場合、ゲーム装置1が取得または生成した画像をテレビ6に表示することができる。クレードル5とテレビ6との間の通信は、有線通信であってもよいし、無線通信であってもよい。
クレードル5は、載置されたゲーム装置1を充電する機能と、通信ハブ装置(例えば、USBハブ)の機能を有するようにしてもよい。
[B.各装置の内部構成]
次に、まず、本実施形態に従う情報処理システムに係る各装置の内部構成について説明する。
(b1:本体装置の内部構成)
図7は、本実施形態に従う本体装置2の内部構成を示すブロック図である。
本体装置2は、図7に示す構成要素を有している。図7に示す構成要素は、例えば、電子部品として電子回路基板上に実装されてハウジング11内に収納される。
本体装置2は、ゲーム処理を含めて各種処理を実行する情報処理部(あるいは、プロセッサ)に相当するCPU(Central Processing Unit)81を有している。CPU81は、アクセス可能な記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、または、第1スロット23もしくは第2スロット24に装着される外部記憶媒体等)に格納されるプログラムを読み出して実行する。
本体装置2は、内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を有している。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を格納する不揮発性記メモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶する揮発性メモリである。
本体装置2は、第1スロットインターフェイス(I/F)91および第2スロットインターフェイス92を有している。第1スロットインターフェイスは、第1スロット23に接続され、CPU81の指示に応じて、第1スロット23に装着された第1の種類の記憶媒体(例えば、SDカード)に対するデータの読み出しおよび書込みを行なう。第2スロットインターフェイス92は、第2スロット24に接続され、CPU81の指示に応じて、第2スロット24に装着された第2の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書込みを行なう。
本体装置2は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行なうためのネットワーク通信部82を有している。例えば、ネットワーク通信部82は、Wi-Fiの認証を受けた通信モジュールが用いられ、無線LANを介して外部装置と通信を行なう。別の実施形態として、本体装置2は、無線LANに接続して通信を行なう機能に加えて(または、それに代えて)、モバイル通信網(すなわち、携帯電話通信網)に接続して通信を行なう機能を有していてもよい。
本体装置2は、左コントローラ3および/または右コントローラ4と無線通信を行なうためのコントローラ通信部83を有している。本体装置2と各コントローラとの通信方式は任意であるが、例えば、Bluetooth(登録商標)の規格に従った通信方式を採用できる。
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へデータを送信する。
本実施形態においては、本体装置2は、左コントローラ3および右コントローラ4との間で、有線通信および無線通信の両方を行なうことができる。
本体装置2は、タッチパネル13の制御を行なうためのタッチパネルコントローラ86を有している。タッチパネルコントローラ86は、タッチパネル13からの信号に応じて、タッチ入力が行なわれた位置を示すデータを生成してCPU81へ出力する。
ディスプレイ12は、CPU81が各種処理の実行することで生成された画像、および/または、外部から取得した画像を表示する。
本体装置2は、コーデック回路87およびスピーカ88(具体的には、左スピーカおよび右スピーカ)を有している。コーデック回路87は、スピーカ88および音声入出力端子25に対する音声データの入出力を制御する。より具体的には、コーデック回路87は、CPU81から音声データを受け取った場合、その音声データをD/A変換して得られる音声信号をスピーカ88または音声入出力端子25へ出力する。これによって、スピーカ88、あるいは、音声入出力端子25に接続された音声出力部(例えばイヤホン)から音が出力される。コーデック回路87は、音声入出力端子25から音声信号を受け取った場合、音声信号をA/D変換して、所定の形式の音声データをCPU81へ出力する。
本体装置2は、加速度センサ89および角速度センサ90を有している。加速度センサ89は、所定の3軸(例えば、図1に示すxyz軸)方向に沿った直線加速度の大きさを検出する。加速度センサ89は、1軸方向あるいは2軸方向の加速度を検出するものであってもよい。角速度センサ90は、所定の3軸(例えば、図1に示すxyz軸)回りの角速度を検出する。なお、角速度センサ90は、1軸回りあるいは2軸回りの角速度を検出するものであってもよい。加速度センサ89および角速度センサ90の検出結果は、CPU81へ出力される。CPU81は、加速度センサ89および角速度センサ90の検出結果に基づいて、本体装置2の動きおよび/または姿勢に関する情報を算出することが可能である。
本体装置2は、電力制御部97およびバッテリ98を有している。電力制御部97は、CPU81からの指令に基づいて、バッテリ98から各構成要素への電力供給を制御する。電力制御部97は、電源ボタン28に対する入力に応じて電力供給を制御する。すなわち、電力制御部97は、電源ボタン28に対して電源をオフする操作が行なわれた場合、電力供給の全部または一部を停止し、電源ボタン28に対して電源をオンする操作が行なわれた場合、電力供給の全部を開始する。電力制御部97は、電源ボタン28に対してスリープモードに切り替える指示が行なわれた場合、ディスプレイ12を含む一部の構成要素に対する電力供給を停止し、電源ボタン28に対してオンモードに切り替える指示が行なわれた場合、電力供給を開始する。
外部の充電装置(例えば、クレードル5)が下側端子27に接続され、下側端子27を介して本体装置2に電力が供給される場合、バッテリ98はその供給される電力により充電される。なお、本体装置2のバッテリ98の充電容量は、左コントローラ3および右コントローラ4が有しているバッテリよりも充電容量が大きいことが好ましい。
(b2:コントローラの内部構成)
図8は、本実施形態に従う左コントローラ3および右コントローラ4の内部構成を示すブロック図である。
図8には、左コントローラ3および右コントローラ4に関連する本体装置2の構成要素についても描いている。
左コントローラ3は、本体装置2との間で通信を行なうための通信制御部101を有している。通信制御部101は、端子42を介した有線通信と、端子42を介さない無線通信との両方で本体装置2と通信を行なうことが可能である。通信制御部101は、左コントローラ3が本体装置2に装着されているか否かに応じて有線通信を行うか、無線通信を行うかを選択して、選択した通信方法によって通信を行う。すなわち、左コントローラ3が本体装置2に装着されている場合、通信制御部101は、端子42を介して本体装置2と通信を行なう。また、左コントローラ3が本体装置2から外されている場合、通信制御部101は、本体装置2(具体的には、コントローラ通信部83)との間で無線通信を行なう。通信制御部は、本体装置との間で通信を行なうことができればよく、例えば、有線通信もしくは無線通信のどちらかのみを行なうように構成されてもよい。なお、左コントローラ3が本体装置2から外されている場合、一例として無線通信を行う場合について説明するが例えばケーブルを介して有線通信を行うようにしても良い。
左コントローラ3は、例えば、フラッシュメモリ等のメモリ102を有している。上記通信制御部101は、例えば、マイクロプロセッサで構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
左コントローラ3は、操作ボタン群103(具体的には、操作ボタン33~36,38,39)およびアナログスティック32を有している。操作ボタン群103およびアナログスティック32に対して行なわれた操作に関する情報は、所定周期で通信制御部101へ繰り返し出力される。
左コントローラ3は、加速度センサ104および角速度センサ105を有している。加速度センサ104は、所定の3軸(例えば、図1に示すxyz軸)方向に沿った直線加速度の大きさを検出する。加速度センサ104は、1軸方向あるいは2軸方向の加速度を検出するものであってもよい。角速度センサ105は、所定の3軸(例えば、図1に示すxyz軸)回りの角速度を検出する。なお、角速度センサ105は、1軸回りあるいは2軸回りの角速度を検出するものであってもよい。加速度センサ104および角速度センサ105の検出結果は、所定周期で通信制御部101へ繰り返し出力される。
通信制御部101は、操作ボタン群103、アナログスティック32、加速度センサ104、および、角速度センサ105の各々から入力に関する情報(例えば、ユーザ操作に関する情報、または、センサによる検出結果)を取得する。通信制御部101は、取得した情報(または、取得した情報に所定の加工を行った情報)を含むデータを本体装置2へ送信する。本体装置2へのデータ送信は、所定周期で繰り返し行なわれる。入力に関する情報が本体装置2へ送信される周期は、入力デバイス間で同じであってもよいし、そうでなくてもよい。
本体装置2は、送信されるデータに基づいて、左コントローラ3に対して行なわれた入力を知ることができる。より具体的には、本体装置2は、操作ボタン群103およびアナログスティック32に対する操作を判別することができる。また、本体装置2は、左コントローラ3の動きおよび/または姿勢に関する情報を算出することができる。
左コントローラ3は、バッテリと電力制御回路とを含む電力供給部109を有している。電力供給部109は、左コントローラ3に各構成要素への電力供給を制御する。バッテリは、左コントローラ3が本体装置2に装着されている場合において、端子42を介して本体装置2からの給電によって充電される。
電力供給部109は、バッテリの電力がなくなった場合には電池警告情報を本体装置2に通知する。
右コントローラ4は、基本的には、上述した左コントローラ3と同様の構成を有している。すなわち、右コントローラ4は、通信制御部111と、操作ボタン群113(具体的には、操作ボタン53~56,60,61)と、アナログスティック52と、加速度センサ114と、角速度センサ115と、電力供給部119とを有している。電力供給部119は、バッテリの電力がなくなくなった場合には電池警告情報を本体装置2に通知する。
右コントローラ4のその他の構成要素については、左コントローラ3に関して説明した対応する構成要素と同様の構成および機能を有しているので、詳細な説明は繰り返さない。
このように、本実施形態に従うゲーム装置1は、ユーザの左手(一方の手)で把持さる左コントローラ3(ユーザの左手で把持される部分)と、当該ユーザの右手(他方の手)で把持される右コントローラ4(ユーザの右手で把持される部分)とを含む。
本明細書において、「操作部」は、ユーザ操作を受付ける機能または構成を意味し、本体装置2、左コントローラ3、および右コントローラ4等に配置される、ボタン、アナログスティック、各種センサなどの、ユーザの操作を検知できるものであればどのようなものも含み得る。操作部は、本体装置2、左コントローラ3、および右コントローラ4等に分けて配置されたボタン、アナログスティック、各種センサなどの組み合わせによってユーザの操作を検知できるように構成してもよい。
[C.ゲームシステムの使用態様]
上述したように、本実施形態に従うゲーム装置1は、左コントローラ3および右コントローラ4が着脱可能に構成される。また、ゲーム装置1は、クレードル5に装着することによって、画像および音声をテレビ6に出力できる。したがって、以下に説明するような種々の使用態様でゲーム装置1を使用できる。以下では、ゲーム装置1の主たる使用態様について例示する。
(c1:コントローラを本体装置に装着して使用する態様)
図9は、左コントローラ3および右コントローラ4を本体装置2に装着した状態(以下、「装着状態」とも称す。)におけるゲーム装置1の使用態様の一例を示す図である。
図9に示すように、装着状態においては、ゲーム装置1を携帯機器として使用できる。
装着状態においては、基本的には、本体装置2と左コントローラ3および右コントローラ4との間の通信は、有線通信によって行なわれる。別の実施形態として、装着状態においても、本体装置2と左コントローラ3および右コントローラ4との間の通信を無線通信によって行なうようにしてもよい。
装着状態においては、左コントローラ3の4つの操作ボタン33~36は、方向入力(すなわち、方向指示)を行なうために用いられてもよい。このとき、ユーザは、アナログスティック32を用いて方向入力を行なうことも可能であるし、操作ボタン33~36を用いて方向入力を行なうことも可能である。ユーザは、好みに合った操作手段を用いて方向入力を行なうことができるので、操作性を向上することができる。但し、操作ボタン33~36がどのような指示に用いられるかについては、本体装置2において実行されるプログラムによって任意に決められてよい。
本実施形態においては、左コントローラ3と右コントローラ4との間で、アナログスティックと4つの操作ボタン(すなわち、A、B、X、Yボタン)との配置が逆になっている。装着状態においては、左コントローラ3においてはアナログスティック32が4つの操作ボタン33~36よりも上側に配置されるのに対して、右コントローラ4においては4つの操作ボタン53~56がアナログスティック52よりも上側に配置される。したがって、図9に示すように、ユーザが両手を同じ高さにして(すなわち、上下方向に関して同じ位置にして)ゲーム装置1を把持した場合、一方の手についてはアナログスティックが操作しやすい位置となり、他方の手については4つの操作ボタンが操作しやすい位置となる。このように、本実施形態に従うゲーム装置1は、アナログスティックおよび4つの操作ボタンを操作しやすい構成を提供する。
(c2:一組のコントローラを本体装置から外して使用する態様)
図10は、左コントローラ3および右コントローラ4を本体装置2から外した状態(以下、「離脱状態」とも称す。)におけるゲーム装置1の使用態様の一例を示す図である。
図10に示すように、離脱状態においては、ユーザは、左コントローラ3および右コントローラ4をそれぞれ左手および右手にそれぞれ持って操作することができる。
この場合、左コントローラ3のアナログスティック32と、4つの操作ボタン33~36とは、把持する左手内で縦方向に配置された状態で操作される。
同様に、右コントローラ4のアナログスティック52と、4つの操作ボタン53~56とは、把持する右手内で縦方向に配置された状態で操作される。
すなわち、ユーザが把持したときにその主面が縦長となる向きで使用される(縦持ち操作とも称する)。
離脱状態においては、基本的には、本体装置2と左コントローラ3および右コントローラ4との間の通信は、無線通信によって行なわれる。本体装置2は、無線通信を確立した(典型的には、ペアリングを行なった)コントローラからデータを受信して、受信したデータに基づいてゲーム処理を実行する。
本実施形態においては、無線通信の場合、本体装置2は、通信相手となる左コントローラ3および右コントローラ4を区別する。すなわち、本体装置2は、コントローラから受信されたデータが左コントローラ3からのものであるか、右コントローラ4からのものであるかを識別する。
図10には、一組のコントローラ(左コントローラおよび右コントローラ)を1人のユーザが使用する態様を例示するが、二人のユーザがコントローラを1個ずつ使用するという態様も可能である。この場合、一組のコントローラ(左コントローラおよび右コントロラ)で2人のユーザが同時にゲームに参加できる。
図10には、左コントローラ3および右コントローラ4の両方を本体装置2から外した状態を例示するが、これに限らず、左コントローラ3および右コントローラ4のいずれか一方を本体装置2から外し、他方を本体装置2に装着した状態で、ゲーム装置1を使用することも可能である。
(c3:2人のユーザが1つずつコントローラを使用する態様)
図11は、離脱状態において、2人のユーザが1つずつコントローラを把持してゲーム装置1を利用する様子の一例を示す図である。
図11に示すように、離脱状態においては、2人のユーザが操作を行うことが可能である。具体的には、一方のユーザ(「第1のユーザ」と呼ぶ)が左コントローラ3を用いて操作を行うとともに、他方のユーザ(「第2のユーザ」と呼ぶ)が右コントローラ4を用いて操作を行うことが可能である。ゲーム装置1は、例えば、左コントローラ3に対する操作に基づいて仮想空間における第1のオブジェクト(例えばプレイヤキャラクタ)の動作を制御し、右コントローラ4に対する操作に基づいて仮想空間における第2のオブジェクトの動作を制御する情報処理を実行する。なお、図11に示す態様においても図10に示す態様と同様、ユーザは、コントローラが備える操作部に対する操作、および/または、コントローラ自体を動かす操作が可能である。
この場合、第1のユーザが用いる左コントローラ3のアナログスティック32と、4つの操作ボタン33~36とは、把持する左手および右手の間で横方向に配置された状態で操作される。
同様に、第2のユーザが用いる右コントローラ4のアナログスティック52と、4つの操作ボタン53~56とは、把持する左手および右手の間で横方向に配置された状態で操作される。
すなわち、ユーザが把持したときにその主面が横長となる向きで使用される(横持ち操作とも称する)。
後述するが、左コントローラ3および右コントローラ4の横持ち操作方式の場合には、縦持ち操作方式の場合から左コントローラ3および右コントローラ4の操作部の機能が変更される。
また、本実施形態においては、右コントローラ4におけるアナログスティック52と各操作ボタン53~56との位置関係は、左コントローラ3におけるこれら2種類の操作部の位置関係とは反対になっている。したがって、例えば図11に示すように、2人のユーザが左コントローラ3と右コントローラ4とを同じ向きで把持した場合、上記2種類の操作部の位置関係は、2つのコントローラで同じになる。つまり、本実施形態においては、ユーザは、上記2種類の操作部に関して、本体装置2から外した左コントローラ3と右コントローラ4とを同じような操作感覚で使用することができる。これによって、コントローラの操作性を向上することができる。
また、離脱状態においては、左コントローラ3の4つの操作ボタン33~36は、右コントローラ4の4つの操作ボタン53~56と同じ機能として用いられてもよい(換言すれば、同じ指示を行うために用いられてもよい)。具体的には、右方向ボタン33はYボタン56と同じ機能として用いられ、下方向ボタン34はXボタン55と同じ機能として用いられ、上方向ボタン35はBボタン54と同じ機能として用いられ、左方向ボタン36はAボタン53と同じ機能として用いられてもよい。このように、本実施形態においては、装着状態と離脱状態とで、操作ボタン33~36の機能が変更されてもよい。ただし、各操作ボタンがどのような指示に用いられるかは、本体装置2において実行されるプログラムによって自由に決められてよい。
なお、図11においては、ゲーム装置1は、本体装置2のディスプレイ12の表示領域を2つに分割し、分割された一方の表示領域に第1のユーザのための画像(例えば、第1オブジェクトを含む画像)を表示し、分割された他方の表示領域に第2のユーザのための画像(例えば、第2オブジェクトを含む画像)を表示する。ただし、ゲーム装置1において実行されるアプリケーションによっては、ゲーム装置1は、ディスプレイ12の表示領域を分割することなく、2人のユーザのための画像(例えば、第1オブジェクトおよび第2オブジェクトの両方を含む画像)を表示するようにしてもよい。
また、図11に示す態様においても図10に示す態様と同様、本体装置2と左コントローラ3および右コントローラ4との通信は、無線通信によって行われる。このとき、本体装置2は、通信相手となるコントローラを区別する。
(c4:テレビを利用する態様)
図12は、本体装置2をクレードル5に装着した状態でのゲーム装置1の使用態様の一例を示す図である。
図12に示すように、本体装置2をクレードル5に装着することで、ゲーム装置1が取得または生成した画像をテレビ6に表示することができる。ユーザは、テレビ6に表示される画像(および、必要に応じて、本体装置2のディスプレイに表示される画像)を見ながら、左コントローラ3および/または右コントローラ4を操作する。
(c5:3つ以上のコントローラを利用する態様)
上述のように、本実施形態においては、本体装置2は、複数の左コントローラと通信可能である。また、本体装置2は、複数の右コントローラと通信可能である。したがって、本実施形態においては、3つ以上のコントローラを同時に用いることが可能である。
図13は、3つ以上のコントローラを用いる場合における利用態様の一例を示す図である。
図13においては、2つの左コントローラ3aおよび3bと、2つの右コントローラ4aおよび4bという、合計4つのコントローラが用いられる場合を例示している。なお、ここでは、各コントローラは本体装置2から外されているものとする。このように4つのコントローラが用いられる場合、4人のユーザが1人につき1つのコントローラを利用する態様(図13(a))と、2人のユーザが1人につき2つのコントローラ(具体的には、左右1組のコントローラ)を利用する態様(図13(b))とが少なくとも考えられる。
(1人のユーザが1つのコントローラを利用する態様)
図13(a)においては、4つのコントローラ3a,3b,4a,および4bが、ユーザ1人につき1つ用いられる。つまり、本実施形態においては、4つのコントローラが用意される場合には、ユーザAからユーザDという4人のユーザがコントローラを用いて操作を行うことが可能である。ゲーム装置1は、例えば、各コントローラに対する操作に基づいて、そのコントローラに対応するオブジェクトの動作を制御する情報処理を実行する。
図13(a)において、本体装置2は、4つのコントローラ3a,3b,4a,および4bとそれぞれ無線通信を行う。ここで、本実施形態において、本体装置2は、4つのコントローラ3a,3b,4a,および4bを区別する。すなわち、本体装置2は、受信された操作データが4つのうちどのコントローラからのものであるかを識別する。なお、図13(a)の場合においては、本体装置2は、左コントローラ3aと左コントローラ3bとを区別し、また、右コントローラ4aと右コントローラ4bとを区別する。
(1人のユーザが1組のコントローラを利用する態様)
図13(b)においては、4つのコントローラ3a,3b,4a,および4bが、ユーザ1人につき1組用いられる。すなわち、ユーザAが左コントローラ3aおよび右コントローラ4aの1組のコントローラを用い、ユーザBが左コントローラ3bおよび右コントローラ4bの1組のコントローラを用いる。このように、本実施形態においては、4つのコントローラが用意される場合には、2人のユーザがそれぞれ1組のコントローラ(コントローラのセットとも言える)を操作することが可能である。
ゲーム装置1は、1組のコントローラから受信される2つの操作データを1組として、情報処理を実行する。例えば、ゲーム装置1は、1組のコントローラに対する操作に基づいて、当該1組のコントローラに対応するオブジェクトの動作を制御する情報処理を実行する。具体的には、左コントローラ3aおよび右コントローラ4aに対する操作に基づいて、第1のオブジェクトの動作が制御され、左コントローラ3bおよび右コントローラ4bに対する操作に基づいて、第2のオブジェクトの動作が制御される。
ここで、本実施形態においては、図13(b)に示す利用態様において、本体装置2は、1人のユーザが利用する左コントローラと右コントローラとの組を設定する。本体装置2は、設定された組に含まれる2つのコントローラからの各操作データを、1組として用いて(例えば、1つの操作対象を制御するための操作データとして用いて)情報処理を実行する。
コントローラの組を設定する方法はどのような方法であってもよいが、本実施形態においては、本体装置2に左右のコントローラを装着することによって組の設定を行う。すなわち、本体装置2は、同時に装着された左コントローラおよび右コントローラを、1組のコントローラとして設定する。例えば、図13(b)に示すコントローラの組を設定する場合、ユーザは、まず左コントローラ3aおよび右コントローラ4aを本体装置2に装着し、これらの2つの左コントローラ3aおよび右コントローラ4aを本体装置2から外した後、別の左コントローラ3bおよび右コントローラ4bを本体装置2に装着する。これによって、左コントローラ3aおよび右コントローラ4aの組と、左コントローラ3bおよび右コントローラ4bの組とを本体装置2において設定(登録とも言える)することができる。
なお、3つ以上のコントローラを用いる場合には、図13に示す利用態様の他にも、種々の態様で情報処理システムを利用することが可能である。例えば、あるユーザが左右のコントローラからなる1組のコントローラを用い、他のユーザが1つのコントローラを用いる態様で情報処理システムを利用することが可能である。また例えば、あるユーザが本体装置2に装着されたコントローラを用い、他のユーザが本体装置2から外されたコントローラを用いることも可能である。
(c6:その他の態様)
上述したような使用態様に加えて、HMD(ヘッドマウントディスプレイ)型の表示装置を利用することもできる。
(c7:操作上の利点)
本実施形態においては、左コントローラおよび右コントローラが有している加速度センサおよび/または角速度センサの検出結果に基づいて、各コントローラの動きおよび/または姿勢に関する情報を算出できる。ゲーム装置1は、それぞれのコントローラ自体を動かすユーザ操作を入力として受付けることができる。ユーザは、それぞれのコントローラが有している操作部(操作ボタンおよびアナログスティック)に対するユーザ操作だけでなく、コントローラ自体を動かすユーザ操作を行なうことができる。つまり、本実施形態においては、ゲーム装置1は、携帯型機器でありながら、(ディスプレイを動かすことなく)コントローラを動かす操作をユーザに提供することができる。また、ゲーム装置1は、携帯型機器でありながら、ディスプレイ12から離れた場所でユーザが操作を行なうことが可能なゲーム装置を提供することもできる。
ゲーム装置1は、離脱状態に限らず装着状態においても、左コントローラおよび右コントローラが有している加速度センサおよび/または角速度センサの検出結果に基づいて、ゲーム装置1の動きおよび/または姿勢に関する情報を算出できる。また、ゲーム装置1は、装着状態において、本体装置2が有している加速度センサ89および/または角速度センサ90の検出結果に基づいて、ゲーム装置1の動きおよび/または姿勢に関する情報を算出することもできる。
[D:付属コントローラ]
次に、付属コントローラ401について説明する。
上記の左コントローラ3および右コントローラ4とは別に、ゲーム装置1の本体装置2と通信可能な付属コントローラ401を設けることも可能である。
図14は、実施形態に基づく付属コントローラ401の外観を示す図である。
図14に示されるように、付属コントローラ401は、左右にグリップ部400L、1400R(以下、総称してグリップ部400と呼ぶこともある)を備えるハウジング402と、ハウジング402の表面上に設けられた開口部から突出する2本のアナログスティック、および複数個の操作ボタン(後述)を含む操作部とから主に構成される。
ハウジング402は、正面から見た場合にその左右方向を長手方向とした緩やかな略台形状となっており、その上辺側が少し凹んでおり、下辺側については上辺側よりも大きく凹んだような形状、換言すれば、上記グリップ部400L、400Rがそれぞれ底面側(コントローラを把持したときにおいて、プレイヤから見て手前側)に延びるような形状を有していてもよい。また、正面側はアナログスティックのある位置以外は概ね平面状に構成されていてもよい。
アナログスティックのある位置は少し盛り上がっており、グリップ部400L、400Rは、正面から背面部に向けて緩やかなカーブを描くような形状に構成されていてもよい。なお、本実施例のハウジング402は、例えばプラスチック成型によって形成されていてもよい。
ハウジング402の正面左端の上面側付近に、第1アナログスティック411(以下、左スティック)が設けられ、ハウジング402正面の右端下面側付近に第2アナログスティック412(以下、右スティック)が設けられる。より具体的には、グリップ部400Lを把持する左手の親指で操作可能な位置(より好適には、グリップ部400Lを把持する左手の親指が自然と位置するところ)に左スティック411が配され、グリップ部400Rを把持する右手の親指で操作可能な位置に右スティック412が配される。左スティック411および右スティック412は、360度の任意の方向に傾けることが可能なスティックであり、任意の方向を指示するために用いられる。
また、左スティック411および右スティック412は、それぞれ背面方向に押し込むことができ、プッシュボタンとしての役割も有する。左スティック411および右スティック412は、当該コントローラが接続される本体装置2が実行するプログラムに応じて機能する。
このように、左スティック411と右スティック112の間隔が広くなっているため、両方を内側に倒すような操作であっても親指と親指の間隔が狭くならず、操作がしやすいものとなっている。
ハウジング402の正面略中央位置よりも左側の位置であって、左スティック411よりも内側となる位置であり、かつ、グリップ部400Lを把持した左手の親指で操作可能な位置に十字キー(方向キーと呼ばれることもある)421が設けられる。より具体的には、左スティック411の右下となる位置に十字キー421が設けられる。この十字キー421は、十字型の4方向プッシュスイッチであり、4つの方向(前後左右)に対応する操作部分が十字の突出片にそれぞれ90°間隔で配置される。プレイヤが十字キー421のいずれかの操作部分を押下することによって前後左右いずれかの方向が選択される。なお、十字キー421は、当該コントローラが接続される本体装置2が実行するプログラムに応じて機能する。
また、十字キー421の形状は、図示するような形状に限らず、4方向を入力可能な形状であればどのようなものでもよい。たとえば、丸型の台座に十字状の溝が盛り上がっているような形状のもの等であってもよいし、4つのキーが分離しているようなものであってもよい。
また、ハウジング402の正面略中央より右側の位置であって、右スティック412よりも上側となる領域であり、かつ、グリップ部400Rを把持した右手の親指で操作可能な領域に、操作ボタン422A~422D(以下、第1の操作ボタン群と呼ぶこともある)が上下左右の位置に十字状に配置される。より具体的には、右スティック412の左下に位置する領域に、操作ボタン422A~422Dが上下左右の位置に十字状に配置される。操作ボタン422A~422Dは、例えば、操作ボタン422A~422Dは決定操作やキャンセル操作等に用いられる。
上記のように、十字キー421を左スティック411の右下の位置に配置することにより、左手の親指の付け根を支点とした親指の動きで十字キー421の位置に親指の腹が移動可能である。換言すれば、グリップ部400Lを把持する姿勢を特に変化させることなく、親指をその付け根を支点に右方向に動かすだけで十字キー421の位置に親指の腹部分を移動させることができ、また、左方向に親指を動かすことで左スティック411の位置に親指を戻すことも可能である。つまり、左スティック411と十字キー421間の行き来がしやすくなり、操作性を向上させることができる。換言すれば、十字キー421を操作する際に、親指の先端(十字キーの位置)と親指の付け根の間にスティックが位置することでスティックが邪魔となり操作性が低下するようなことがない。
同様に、右スティック412を第1の操作ボタン群(操作ボタン422A~422D)の左下の位置に配置することにより、右手親指の付け根を支点とした親指の動きだけで、右スティック412と第1の操作ボタン群との間で親指を移動させることが可能である。これにより、右スティック412と第1の操作ボタン群間の行き来がしやすくなり、操作性を向上させることができる。
ハウジング402の上面左端部の正面側にはLボタン425Lが、その下(背面側)にはZLボタンが設けられ、ハウジング402の上面右端部の正面側にはRボタン425Rが、その下(背面側)にはZRボタンが配置される。Lボタン425Lは、グリップ部400Lを把持する左手の人差し指が届く位置に配され、ZLボタンは、左手中指や薬指が届く位置に配置される。また、Rボタン425Rはグリップ部400Rを把持する右手の人差し指が届く位置に配され、ZRボタンは右手中指や薬指が届く位置に配置される。Lボタン425L、Rボタン425R、ZLボタンおよびZRボタンは、上記情報処理装置が実行するプログラムに応じた機能が適宜割り当てられる。
上記で説明した左コントローラ3および右コントローラ4に設けられた操作ボタンと同様の操作ボタンが付属コントローラ401にも設けられる。
また、ハウジング402正面の底面側に、複数のインジケータが設けられる。具体的には、通知用LED431が設けられる。通知用LED431は、左コントローラの通知用LEDと同様、ユーザに対して所定の情報を通知するための通知部である。また、通知用LED431は、4つのLEDを備える。4つのLEDのうち、そのコントローラに割り当てられたプレイヤ番号に応じたLEDが点灯する。これによれば、通知用LED431によって上記プレイヤ番号をユーザに通知することが可能となる。
また、付属コントローラ401の内部構成については、図8で説明した左コントローラ3あるいは右コントローラ4の内部構成と基本的に同様であるのでその詳細な説明については繰り返さない。
付属コントローラ401のメモリ内には、付属コントローラ401に対して固有に付される値(例えば、ID)である識別情報が格納されている。本体装置2は、当該識別情報により左コントローラ3あるいは右コントローラ4ではなく、付属コントローラであることを判定することが可能である。
本例における付属コントローラ401は、左コントローラ3および右コントローラ4と異なり複数の操作方式の選択が可能には設けられていない。なお、他の実施形態としては複数の操作方式の選択を可能とするようにしても良い。
[E:コントローラ登録処理]
図15は、実施形態に基づくゲーム装置1によって実行されるコントローラ登録画面を説明する一例図である。
図15に示されるように、テレビ6に表示されたコントローラ登録画面において4人のプレイヤであるユーザPA~PDがそれぞれ把持するコントローラを登録する場合が示されている。
当該コントローラ登録画面は、ホームメニューからコントローラ登録を指示した場合に表示される画面の一例である。ホームメニューは、各種設定(コントローラ登録等)とともにゲームアプリを起動することが可能に設けられている。たとえば、ゲームアプリを起動するためのアイコンが設けられており、当該アイコンを選択することによりゲームアプリが起動する。また、コントローラを登録するためのアイコンも設けられており、当該アイコンを選択することによりコントローラ登録処理のアプリケーションが起動し、コントローラ登録画面が表示される。
なお、各ゲームアプリからコントローラ登録を指示することも可能であり、その場合にはゲームアプリに応じて利用可能なコントローラの態様が表示される。例えば、左右コントローラのみを使い、付属コントローラを使用しないゲームアプリの場合には、付属コントローラの表示は行われない。各ゲームアプリからもコントローラ登録を指示することが可能であるためホームメニューに戻って設定処理する煩雑な手続きをする必要がなくユーザビリティを向上させることが可能である。
図15(A)の本例のテレビ6には、メッセージとして「使いたいコントローラの「L」と「R」を押してください」が表示されている。本例においては、各ユーザは、各々が把持するコントローラを登録するにあたりLボタンとRボタンとを押下するように促される。
当該押下に従う一連の処理により、各ユーザのコントローラに対してプレイヤ番号が登録される。また、複数の操作方式が可能なコントローラに関して、そのうちの1つの操作方式が設定される。
なお、本例においては、複数の操作方式として、2本のコントローラの縦持ち操作方式と、1本のコントローラの横持ち操作方式とのいずれかに設定する場合について説明するが、例えば、操作方式の特定として、2本持ちか、1本持ちかによって、操作方式を特定しても良いし、あるいは、縦持ちか横持ちかによって操作方式を特定することも可能である。
当該メッセージに従って、コントローラを登録することが可能である。
ここでは、コントローラが未登録の状態が示されている。コントローラの登録に従ってプレイヤ番号が割り当てられる。そして、プレイヤ番号に対応するP1~P4の領域内において、割り当てられたプレイヤ番号に対応する登録されたコントローラの態様が模式化されて表示される。
コントローラ登録画面の上部領域には、登録可能なコントローラの態様が示されている。左コントローラ3および右コントローラ4の2本のコントローラを登録する場合、付属コントローラ401を登録する場合、左コントローラ3あるいは右コントローラ4の1本のコントローラを登録する場合が示されている。
また、2本のコントローラを登録する場合に、2本のコントローラのイメージ画像とともに、選択するボタン位置を示すために丸の画像が付加されて当該位置が強調表示されている。また、付属コントローラ401を登録する場合に、付属コントローラ401のイメージ画像とともに、選択するボタン位置を示すために丸の画像が付加されて当該位置が強調表示されている。また、2本のコントローラを2人で使えることも示されており、それぞれの1本のコントローラを登録する場合に、1本のコントローラのイメージ画像とともに、選択するボタン位置を示すために丸の画像が付加されて当該位置が強調表示されている。
ユーザは、コントローラ登録画面において、コントローラのイメージ画像とともに、強調表示された丸の画像のボタン位置を確認することにより簡易な仕方でコントローラを登録することが可能である。
一例として、ユーザPAは、左コントローラ3aおよび右コントローラ4aを把持している。ユーザPBは、付属コントローラ401を把持している。ユーザPCは、左コントローラ3bを把持している。ユーザPDは、右コントローラ4bを把持している。
ユーザPAが2本のコントローラを登録する場合には、左コントローラ3aに設けられた第1Lボタン38と、右コントローラ4aに設けられた第1Rボタン60を押下する。
ユーザPBが付属コントローラ401を登録する場合には、付属コントローラ401のLボタン425LおよびRボタン425Rを押下する。
また、ユーザPCが左コントローラ3bを用いた1本のコントローラを登録する場合には、左コントローラ3bに設けられた第2Lボタン43と、第2Rボタン44とを押下する。
また、ユーザPDが右コントローラ4bを用いた1本のコントローラを登録する場合には、右コントローラ4bに設けられた第2Lボタン65と、第2Rボタン66とを押下する。
ゲーム装置1は、各コントローラから送信される操作データを受信して、受信した操作データに基づき各コントローラに対してプレイヤ番号を割り当てるとともに、必要に応じて操作方式を登録情報に登録する。
図15(B)には、操作データに従ってコントローラが登録されている場合が示されている。
具体的には、プレイヤ番号P1に割り当てられたコントローラとして、ユーザPAが把持する2本のコントローラのイメージ画像が示されている。
また、プレイヤ番号P2に割り当てられたコントローラとして、ユーザPBが把持する付属コントローラのイメージ画像が示されている。
また、プレイヤ番号P3に割り当てられたコントローラとして、ユーザPCが把持する1本のコントローラのイメージ画像が示されている。
なお、プレイヤ番号P4は、未だ登録されていない場合の状態が示されている。
また、本例においては、未登録のプレイヤ番号P4の領域において、確認画像が表示される場合が示されている。確認画像の表示は、横持ちの操作方式を示すコントローラのイメージ画像と、縦持ちの操作方式を示すコントローラのイメージ画像が交互に表示される場合を指し示す。
縦持ち操作方式が登録された2本のコントローラのイメージ画像および横持ち操作方式が登録された1本のコントローラのイメージ画像を表示することにより、コントローラの操作方法の態様が異なることが明確に表示されるためユーザビリティが向上する。また、当該イメージ画像とともに、縦持ち操作方式が登録されたコントローラのボタンの名称および機能をさらに表示することにより操作方法に関する情報を提示するようにしても良い。また、当該イメージ画像とともに、横持ち操作方式が登録されたコントローラのボタンの名称および機能をさらに表示することにより操作方法に関する情報を提示するようにしても良い。なお、本例においては、縦持ち操作方式として、2本のコントローラを用いた構成について説明するが、特に2本のコントローラに限られず1本のコントローラを用いた縦持ち操作方式とすることも可能である。
図16は、実施形態に基づく登録情報の一例を説明する図である。
図16に示されるように、登録情報は、番号情報、識別情報、無線通信情報を関連付けた情報、プレイヤ番号および操作方式に関する情報である。番号情報は、登録されたコントローラに付される番号である。
識別情報は、コントローラに対して固有に付される値(例えば、ID)を示す情報である。この識別情報によって、コントローラを一意に識別することができる。
ここで、本実施形態においては、識別情報は、左コントローラであるか右コントローラであるかを示す情報を含む。つまり、本体装置2は、コントローラが左コントローラであるか右コントローラであるかを、当該コントローラに付された識別情報に基づいて判定することができる。なお、他の実施形態においては、識別情報は、左コントローラであるか右コントローラであるかを示す情報を含んでいなくてもよい。このとき、登録情報には、左コントローラであるか右コントローラであるかを示す情報が(識別情報とは別に)含まれていてもよい。
無線通信情報は、本体装置2との無線通信に関する接続設定(すなわち、ペアリング)が済んでいるか否かを示す。すなわち、本体装置2とコントローラとのペアリングが完了している場合、当該コントローラに関する無線通信情報として「設定済」を示す情報が記憶される。一方、本体装置2とコントローラとのペアリングが完了していない場合、当該コントローラに関する無線通信情報として「未設定」を示す情報が記憶される。なお、本体装置2は、(登録情報とは別に)無線通信の接続設定に関する情報を記憶しておき、一度ペアリングを行ったコントローラについては再度ペアリングを行わなくてもよいようにしてもよい。
プレイヤ番号は、アプリケーション等で操作するプレイヤを特定する識別情報である。コントローラにおける上述の通知用LEDは、この番号に基づく値を表すように制御される。当該プレイヤ番号は、一例としてプレイヤの登録順に割り当てるようにしても良いし、ランダムに割り当てるようにしても良い。
操作方式に関する情報は、コントローラに対して複数の操作方式の選択が可能な場合に、選択された操作方式を指し示す情報である。本例における左コントローラ3および右コントローラ4は、図10および図11で説明したように複数の操作方式として縦持ち操作と横持ち操作とを選択することが可能である。
なお、上記登録情報は、ユーザの指示に応じてその一部が削除されたり、変更されたりしてもよい。例えば、本体装置2は、ユーザの指示に応じて、指定されたコントローラに関する情報を削除してもよいし、コントローラに付された番号、プレイヤ番号、操作方式に関する情報を変更してもよい。
次に、実施形態に基づく本体装置2の機能ブロック構成について説明する。
図17は、実施形態に基づく本体装置2の機能ブロック構成について説明する図である。
図17を参照して、本体装置2のCPU81がプログラムを実行することで、ゲーム実行処理モジュール302と、登録処理モジュール304と、メニュー画面表示処理モジュール306と、モード制御モジュール308と、通信制御モジュール310とが実現される。
機能ブロックを構成するプログラムは、例えば、本体装置2のフラッシュメモリ84または第1スロットに装着されるメモリカードから読み出され、DRAM85に保存されて実行される。
通信制御モジュール310は、コントローラとの間で必要に応じて通信処理を実行する。
ゲーム実行処理モジュール302は、ゲーム処理等を制御するモジュールであり、ユーザ操作の内容に応じてディスプレイ12等の表示内容を順次更新する。
登録処理モジュール304は、無線設定処理において、コントローラとの間で無線通信のペアリング処理を実行してコントローラの識別情報等を取得し、登録情報を更新する。また、登録処理モジュール304は、コントローラ登録処理を実行して、フラッシュメモリの登録情報にプレイヤ番号を登録および更新する。また、登録処理モジュール304は、必要に応じてコントローラの操作方式を登録する。
メニュー画面表示処理モジュール306は、メニュー画面等を制御するモジュールであり、ユーザ操作の内容に応じてゲーム処理の実行をゲーム実行処理モジュール302に指示する。また、ユーザ操作の内容に応じて登録処理モジュール304に対してコントローラ登録処理を実行するように指示する。
モード制御モジュール308は、電源ボタン28の操作指示に従って本体装置2に設けられているオンモードおよびスリープモードを切り替えるとともに、電源のオン/オフを切り替える。
本例においては、ゲーム実行処理モジュール302は、ゲームのアプリケーションプログラムと本体装置2のシステムアプリケーションプログラムとが協働して実現するモジュールである。一方、他の登録処理モジュール304、メニュー画面表示処理モジュール306、モード制御モジュール308および通信制御モジュール310は、システムアプリケーションプログラムにより実現するモジュールである。
図18は、実施形態に基づく本体装置2において実行されるコントローラ登録処理の流れの一例を説明するフロー図である。
なお、図18に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて(または代えて)別の処理が実行されてもよい。また、本実施形態では、上記フローチャートの各ステップの処理を本体装置2のCPU81が実行するものとして説明するが、上記フローチャートにおける一部のステップの処理を、CPU81以外のプロセッサや専用回路が実行するようにしてもよい。また、本体装置2において実行される処理の一部は、本体装置2と通信可能な他の情報処理装置(例えば、本体装置2とネットワークを介して通信可能なサーバ)によって実行されてもよい。すなわち、図18等に示す各処理は、本体装置2を含む複数の情報処理装置が協働することによって実行されてもよい。
図18を参照して、CPU81は、本体装置2とコントローラとの間で無線通信を行うための設定(ペアリングとも言う)を行う(ステップS2)。本実施形態においては、本体装置2は、コントローラとの間で無線通信に関する設定を行うための無線設定処理を実行する。
CPU81は、コントローラとの無線通信によりペアリングが完了しているか否かを判定し、ペアリングが完了していれば次のステップに進む。
一方、CPU81は、コントローラとの無線通信によりペアリングが完了していないと判定した場合には、必要な登録情報を記憶部に登録する。具体的には、当該コントローラについての番号情報、識別情報および無線通信情報を関連付けて登録情報に追加するように、記憶部に記憶される登録情報を更新する。番号情報としては、例えば、登録済みの他のコントローラに対して設定されていない番号を示す情報が設定される。また、コントローラに付された識別情報を設定する。また、ペアリングの完了により「設定済み」を示す情報が設定される。
プレイヤ番号および操作方式については以降の処理で設定される。
次に、CPU81は、コントローラの登録指示が有ったか否かを判定する(ステップS4)。本実施形態においては、コントローラの登録指示は、本体装置2に対してコントローラから所定のコマンドが送信されたことに応じて実行される。一例として図示しないメニュー画面から当該コントローラ登録処理の項目をコントローラから選択することにより本体装置2は、当該コントローラ登録処理が実行される。
まず、CPU81は、コントローラの登録指示が有ったと判定した場合(ステップS4においてYES)には、コントローラ登録画面を表示する(ステップS20)。一方、CPU81は、コントローラの登録指示があるまでステップS4の状態を維持する。
登録処理モジュール304は、コントローラの登録指示が有った場合に、図15(A)で説明したようなコントローラ登録画面を表示する。
次に、CPU81は、操作データを受信したか否かを判断する(ステップS22)。具体的には、登録処理モジュール304は、通信制御モジュール310を介してコントローラから操作データを受信したか否かを判断する。
ステップS22において、CPU81は、操作データを受信しない場合(ステップS22においてNO)には操作データを受信するまで待機し、操作データを受信したと判断した場合(ステップS22においてYES)には、操作データが付属コントローラの操作データであるか否かを判断する(ステップS24)。具体的には、登録処理モジュール304は、受信した操作データの識別情報に基づいて付属コントローラであるか否かを判断する。
ステップS24において、CPU81は、操作データが付属コントローラの操作データでないと判断した場合(ステップS24においてNO)には、操作データが第2Lボタンおよび第2Rボタン操作データを有しているか否かを判断する(ステップS26)。具体的には、登録処理モジュール304は、受信した操作データに第2Lボタンおよび第2Rボタン操作データが含まれているか否かを判断する。
ステップS26において、CPU81は、操作データが第2Lボタンおよび第2Rボタン操作データを有していると判断した場合(ステップS26においてYES)には、1本のコントローラに対してプレイヤ番号を登録する(ステップS28)。具体的には、登録処理モジュール304は、登録情報にプレイヤ番号を登録する。プレイヤ登録の順番に従ってプレイヤ番号を登録する。先頭のプレイヤはP1、2番目のプレイヤはP2、以降同様の形式に従ってプレイヤ番号を登録する。
次に、CPU81は、登録情報に横持ち操作方式を登録する(ステップS30)。具体的には、登録処理モジュール304は、登録情報の操作方式の欄に横持ち操作方式であることを示す情報を登録する。
図19は、実施形態に基づくコントローラから本体装置2に送信される操作データを説明する図である。
図19(A)には、一例としてコントローラ3bから送信された操作データ500が示される。操作データ500は、識別情報データ501と、第2Lボタン操作データ502と、第2Rボタン操作データ503とを含む。
一例として、第2Lボタン操作データ502と第2Rボタン操作データ503は、ユーザPCが左コントローラ3bに設けられた第2Lボタン43と、第2Rボタン44との両方を押下した場合の操作データである。
ここでは、コントローラ3bの操作データについて説明しているが、コントローラ4bの操作データについても基本的には同様であり、コントローラ4bの操作データの場合には、第2Lボタン操作データ502と第2Rボタン操作データ503は、ユーザPDが右コントローラ4bに設けられた第2Lボタン65と、第2Rボタン66との両方を押下した場合の操作データである。
本体装置2は、操作データ500に含まれる識別情報データ501に基づいてコントローラの種別を識別することが可能である。
この場合、識別情報データ501に従って付属コントローラでないと判定された場合に、CPU81は、操作データ500に第2Lボタンおよび第2Rボタン操作データが含まれているか否かを判定する。
この場合、操作データ500には、第2Lボタン操作データ502と、第2Rボタン操作データ503とに基づいて1本のコントローラを登録する。すなわち、プレイヤ番号を1つのコントローラに割り当てる。また、本体装置2は、登録情報の操作方式として横持ち操作を登録する。
再び、図18を参照して、次に、CPU81は、コントローラ登録画面を更新する(ステップS32)。具体的には、登録処理モジュール304は、プレイヤ登録された順番に従って設定されたコントローラのイメージ画像を表示する。たとえば、3番目のプレイヤ番号が登録された場合には、コントローラ登録画面において左から3番目の領域に横持ちで操作する場合の左コントローラが表示される。また、インジケータ画像としてプレイヤ番号が3番目であることを示すインジケータ画像が表示される。なお、プレイヤ番号に対応して対応する左コントローラの通知用LEDを点灯させるようにしても良い。
次に、CPU81は、コントローラ登録処理が終了したか否かを判断する(ステップS34)。具体的には、登録処理モジュール304は、図15で説明したコントローラ登録画面において、「A」ボタンが選択された場合にコントローラ登録処理が終了したと判断される。
ステップS34において、CPU81は、コントローラ登録処理が終了したと判断した場合(ステップS34においてYES)には、処理を終了する(エンド)。
一方、CPU81は、コントローラ登録処理が終了しないと判断した場合(ステップS34においてNO)には、ステップS22に戻り上記処理を繰り返す。
一方、CPU81は、ステップS26において、操作データが第2Lボタンおよび第2Rボタン操作データではないと判断した場合(ステップS26においてNO)には、確認画像を表示する(ステップS35)。
登録処理モジュール304は、図15(B)で説明したようなコントローラ登録画面を表示する。
具体的には、一例としてプレイヤ番号P4の領域において表示される確認画面を表示する。横持ちの操作方式を示すコントローラのイメージ画像と、縦持ちの操作方式を示すコントローラのイメージ画像を交互に表示する。なお、この場合、未登録のプレイヤ番号の領域に表示されるものとする。
次に、CPU81は、操作データを受信したか否かを判断する(ステップS36)。具体的には、登録処理モジュール304は、通信制御モジュール310を介してコントローラから操作データをさらに受信したか否かを判断する。CPU81は、操作データを受信するまでステップS36の状態を維持する。
ステップS36において、CPU81は、操作データを受信したと判断した場合(ステップS36においてYES)には、次のステップS37に進む。
ステップS37において、CPU81は、操作データが第1Lボタン操作データおよび第1Rボタン操作データを同時に受信したか否かを判断する。具体的には、登録処理モジュール304は、同時に受信した複数の操作データのうちの一方の操作データに第1Lボタン操作データ、他方の操作データに第1Rボタン操作データが含まれているか否かを判断する。
ステップS37において、CPU81は、操作データが第1Lボタン操作データおよび第1Rボタン操作データを同時に受信したと判断した場合(ステップS37においてYES)には、組を構成する2本のコントローラに対してプレイヤ番号を登録する(ステップS40)。具体的には、登録処理モジュール304は、登録情報にプレイヤ番号を登録する。プレイヤ登録の順番に従って2本のそれぞれのコントローラに対してプレイヤ番号を登録する。先頭のプレイヤはP1、2番目のプレイヤはP2、以降同様の形式に従ってプレイヤ番号を登録する。
なお、本例においては、左コントローラ3と右コントローラ4とが組を構成する。したがって、左コントローラ2本あるいは右コントローラ2本では組を構成しない。また、操作データを同時に受信は完全に受信するタイミングが同じであることに限られず、最初の操作データを受信してから後の操作データを受信するまでの期間が極めて短い場合も含まれる概念である。
次に、CPU81は、登録情報に縦持ち操作方式を登録する(ステップS42)。具体的には、登録処理モジュール304は、登録情報の操作方式の欄に縦持ち操作方式であることを示す情報を登録する。
図19(B)には、一例としてコントローラ3aおよび4aから送信された操作データ510,520が示される。
操作データ510は、識別情報データ512と、第1Lボタン操作データ514とを含む。
操作データ520は、識別情報データ522と、第1Rボタン操作データ524とを含む。
一例として、第1Lボタン操作データ514は、ユーザPAが左コントローラ3aに設けられた第1Lボタン38を押下した場合の操作データである。また、第1Rボタン操作データ524は、ユーザPAが右コントローラ4aに設けられた第1Rボタン60を押下した場合の操作データである。
本体装置2は、操作データ510に含まれる識別情報データ512に基づいて左コントローラを識別することが可能である。また、本体装置2は、操作データ520に含まれる識別情報データ522に基づいて右コントローラを識別することが可能である。また、本体装置2は、左コントローラおよび右コントローラからそれぞれ第1Lボタン操作データおよび第1Rボタン操作データを受信したか否かを判断し、ともに受信したと判断した場合に2本のコントローラを登録する。すなわち、プレイヤ番号を2つのコントローラに割り当てる。また、本体装置2は、操作方式として縦持ち操作を登録する。
再び、図18を参照して、次に、CPU81は、コントローラ登録画面を更新する(ステップS32)。具体的には、登録処理モジュール304は、プレイヤ登録された順番に従って設定されたコントローラのイメージ画像を表示する。たとえば、1番目のプレイヤ番号が登録された場合には、コントローラ登録画面において左から1番目の領域に縦持ちで操作する場合の左コントローラおよび右コントローラが表示される。また、インジケータ画像としてプレイヤ番号が1番目であることを示すインジケータ画像が表示される。なお、プレイヤ番号に対応する左コントローラおよび右コントローラの通知用LEDを点灯させるようにしても良い。
以降の処理は同様であるのでその詳細な説明については繰り返さない。
一方、ステップS37において、CPU81は、操作データが第1Lボタン操作データあるいは第1Rボタン操作データを有していないと判断した場合(ステップS37においてNO)には、CPU81は、操作データが第2Lボタンおよび第2Rボタン操作データを有しているか否かを判断する(ステップS45)。
次に、CPU81は、操作データが第2Lボタンおよび第2Rボタン操作データを有していると判断した場合(ステップS45においてYES)には、「A」に進む。すなわち、1本のコントローラに対してプレイヤ番号を登録する(ステップS28)。具体的には、登録処理モジュール304は、登録情報にプレイヤ番号を登録する。プレイヤ登録の順番に従ってプレイヤ番号を登録する。先頭のプレイヤはP1、2番目のプレイヤはP2、以降同様の形式に従ってプレイヤ番号を登録する。次に、CPU81は、登録情報に横持ち操作方式を登録する(ステップS30)。具体的には、登録処理モジュール304は、登録情報の操作方式の欄に横持ち操作方式であることを示す情報を登録する。
次に、CPU81は、コントローラ登録画面を更新する(ステップS32)。具体的には、登録処理モジュール304は、プレイヤ登録された順番に従って設定されたコントローラのイメージ画像を表示する。たとえば、3番目のプレイヤ番号が登録された場合には、コントローラ登録画面において左から3番目の領域に横持ちで操作する場合の左コントローラが表示される。また、インジケータ画像としてプレイヤ番号が3番目であることを示すインジケータ画像が表示される。なお、プレイヤ番号に対応して対応する左コントローラの通知用LEDを点灯させるようにしても良い。
一方、ステップS45において、CPU81は、操作データが第2Lボタンおよび第2Rボタン操作データを有していないと判断した場合(ステップS45においてNO)には、操作方式の設定がされていないとしてステップS34に進む。
一方で、CPU81は、ステップS24において、操作データが付属コントローラの操作データであると判断した場合(ステップS24においてYES)には、LボタンおよびRボタン操作データを有しているか否かを判断する(ステップS44)。具体的には、登録処理モジュール304は、受信した操作データにLボタンおよびRボタン操作データが含まれているか否かを判断する。
ステップS44において、CPU81は、操作データがLボタンおよびRボタン操作データを有していると判断した場合(ステップS44においてYES)には、付属コントローラに対してプレイヤ番号を登録する(ステップS46)。具体的には、登録処理モジュール304は、登録情報にプレイヤ番号を登録する。プレイヤ登録の順番に従ってプレイヤ番号を登録する。先頭のプレイヤはP1、2番目のプレイヤはP2、以降同様の形式に従ってプレイヤ番号を登録する。
図19(C)には、一例として付属コントローラ401から送信された操作データ530が示される。
操作データ530は、識別情報データ532と、Lボタン操作データ534と、Rボタン操作データ536とを含む。
一例として、Lボタン操作データ534とRボタン操作データ536は、ユーザPBが付属コントローラ401に設けられたLボタン425Lと、Rボタン425Rとの両方を押下した場合の操作データである。
本体装置2は、操作データ530に含まれる識別情報データ532に基づいて付属コントローラを識別することが可能である。そして、本体装置2は、操作データ530に含まれるLボタン操作データ534と、Rボタン操作データ536とに基づいて付属コントローラを登録する。すなわち、プレイヤ番号を付属コントローラに割り当てる。なお、付属コントローラについては、複数の操作方式が設けられていないため操作方式は登録されない。なお、後述するが、本例においては、操作方式の登録内容(縦持ち操作方式か横持ち操作方式か)に基づいて操作データの変換の有無を判定するため付属コントローラに関しても変換の有無に関するデータを登録するようにしても良い。具体的には、変換方式として変換無しとして登録するようにしても良い。
再び、図18を参照して、次に、CPU81は、コントローラ登録画面を更新する(ステップS32)。具体的には、登録処理モジュール304は、プレイヤ登録された順番に従って設定されたコントローラのイメージ画像を表示する。たとえば、2番目のプレイヤ番号が登録された場合には、コントローラ登録画面において左から2番目の領域に付属コントローラが表示される。また、インジケータ画像としてプレイヤ番号が2番目であることを示すインジケータ画像が表示される。なお、プレイヤ番号に対応する付属コントローラの通知用LEDを点灯させるようにしても良い。
以降の処理は同様であるのでその詳細な説明については繰り返さない。
一方、ステップS44において、CPU81は、操作データがLボタンおよびRボタン操作データを有していないと判断した場合(ステップS44においてNO)には、操作方式の設定がされていないとしてステップS34に進む。
当該処理により、各コントローラから送信される操作データに基づいてコントローラ登録処理を実行することが可能である。当該コントローラ登録処理において、複数の操作方式の選択が可能なコントローラについて、操作データの操作内容に基づいて1つの操作方式を登録することが可能である。これにより、操作方式について簡易にコントローラ登録処理を実行することが可能であり、ユーザビリティを向上させることが可能である。
なお、コントローラ登録処理に関して、一旦登録された操作方式を変更することも可能である。
例えば、2本のコントローラを用いた縦持ちの操作方式が登録された後に、1本のコントローラによる横持ちの操作方式に変更することも可能である。
具体的には、プレイヤ番号P1に登録された2本のコントローラのうちの左コントローラ3について、第2Lボタンおよび第2Rボタンの両方を押下する。当該処理により、左コントローラから操作データが本体装置2に送信される。
本体装置2は、当該操作データを受信して、プレイヤの再登録処理および横持ち登録処理を実行する。プレイヤ番号P1に登録された左コントローラ3について、登録情報のプレイヤ番号を維持しつつ、操作方式を横持ち操作方式に変更する。また、プレイヤ番号P1に登録されていた右コントローラ4については登録情報のプレイヤ番号の割り当ておよび操作方式の情報を消去する。左コントローラ3について説明したが、右コントローラ4についても同様であり、同様の方式によりプレイヤの再登録処理および横持ち登録処理が実行される。
また、1本のコントローラを用いた横持ちの操作方式が登録された後に、2本のコントローラによる縦持ちの操作方式に変更することも可能である。
具体的には、プレイヤ番号P3に登録された左コントローラ3と、プレイヤ番号P4に登録された右コントローラ4とについて、それぞれ第1Lボタンおよび第1Rボタンの両方を押下する。当該処理により、左コントローラ3および右コントローラ4から操作データが本体装置2に送信される。
本体装置2は、当該操作データを受信して、上記で説明した方式に従ってプレイヤの再登録処理および縦持ち登録処理を実行する。
プレイヤ番号P3に登録されていた左コントローラ3およびプレイヤ番号P4に登録されていた右コントローラ4を組を構成するコントローラとして判断される。登録情報に関して、プレイヤ番号P3に登録されていた左コントローラ3については、プレイヤ番号を維持しつつ、操作方式を縦持ち操作方式に変更する。プレイヤ番号P4に登録されていた右コントローラ4については、プレイヤ番号をプレイヤ番号P3に変更するとともに、操作方式を縦持ち操作方式に変更する。
[F:ゲーム処理]
図20は、実施形態に基づくゲーム装置1によって実行されるゲーム処理を説明する一例図である。
図20には、ゲーム装置1で生成した画像がテレビ6に表示されている。
本例においては、4人のプレイヤが示されている。ユーザPAは、2本のコントローラ3a,4aを用いて対応するオブジェクトを操作する。ユーザPBは、付属コントローラ401を用いて対応するオブジェクトを操作する。ユーザPCは、1本のコントローラ3bを用いて対応するオブジェクトを操作する。ユーザPDは、1本のコントローラ4bを用いて対応するオブジェクトを操作する。
本例においては、ゲーム装置1は、テレビ6の表示領域を4つに分割し、分割された表示領域6AにユーザPAのための画像(例えば、第1オブジェクトを含む画像)を表示し、分割された表示領域6BにユーザPBのための画像(例えば、第2オブジェクトを含む画像)を表示する。また、同様に、ゲーム装置1は、分割された表示領域6CにユーザPCのための画像(例えば、第3オブジェクトを含む画像)を表示し、分割された表示領域6DにユーザPDのための画像(例えば、第4オブジェクトを含む画像)を表示する。
各コントローラは、ゲーム装置1からのプレイヤ番号に基づいて通知用LEDを制御する。
なお、本例においては、4人のプレイヤであるユーザPA~PDがそれぞれコントローラを用いて対応するオブジェクトを操作している場合について説明したが、1人のプレイヤの場合についても同様である。
[G:処理手順]
次に、実施形態に基づくゲーム装置1におけるゲーム処理に係る処理手順について説明する。
図21は、実施形態に基づくゲーム処理に係る処理手順を示すフロー図である。
図21に示される各ステップは、典型的には、本体装置2のCPU81がプログラムを実行することで実現される。
図21を参照して、CPU81は、ゲーム処理の開始が指示されるか否かを判断する(ステップS50)。ゲーム実行処理モジュール302は、ゲーム処理の開始が指示されたか否かを判断する。
CPU81は、ゲーム処理の開始が指示されたと判断した場合(ステップS50においてYES)には、ゲーム空間内にオブジェクトを配置したゲーム画像を生成する(ステップS51)。ゲーム実行処理モジュール302は、DRAM85に保存されて実行されるプログラムに基づいてゲーム空間内にオブジェクトを配置したゲーム画像を生成する。
次に、CPU81は、操作データを取得するか否かを判断する(ステップS52)。具体的には、ゲーム実行処理モジュール302は、通信制御モジュール310を介して操作データを取得したか否かを判断する。
ステップS52において、CPU81は、操作データを取得したと判断した場合(ステップS52においてYES)には、付属コントローラの操作データか否かを判断する(ステップS53)。具体的には、ゲーム実行処理モジュール302は、図20で説明した受信した操作データの識別情報に基づいて付属コントローラであるか否かを判断する。
ステップS53において、CPU81は、付属コントローラの操作データで無いと判断した場合(ステップS53においてNO)には、横持ち操作が登録されているか否かを判断する(ステップS54)。具体的には、ゲーム実行処理モジュール302は、フラッシュメモリ84に格納されている登録情報を参照して、取得した操作データに対応するコントローラの登録情報の操作方式に関する情報に横持ち操作方式が登録されているか否かを判断する。
ステップS54において、CPU81は、横持ち操作が登録されていないと判断した場合(ステップS54においてNO)には、操作データに基づく処理を実行する(ステップS56)。具体的には、ゲーム実行処理モジュール302は、フラッシュメモリ84に格納されている登録情報を参照して、取得した操作データに対応するコントローラの登録情報の操作方式に関する情報に横持ち操作方式が登録されていないと判断した場合には、当該取得した操作データに基づくゲーム処理を実行する。
次に、CPU81は、ゲーム画像を更新する(ステップS58)。具体的には、ゲーム実行処理モジュール302は、取得したユーザ操作に従う操作データに応じたゲーム画像を生成する。そして、生成されたゲーム画像に従ってテレビ6に更新出力する。
次に、CPU81は、ゲーム処理の終了が指示されたかどうかを判断する(ステップS60)。
ステップS60において、CPU81は、ゲーム処理の終了が指示されたと判断した場合(ステップS60においてYES)には、処理を終了する(エンド)。
一方、ステップS60において、CPU81は、ゲーム処理の終了が指示されていないと判断した場合(ステップS60においてNO)には、ステップS52に戻り、上記処理を繰り返す。
一方、ステップS53において、CPU81は、付属コントローラの操作データであると判断した場合(ステップS53においてYES)には、操作データに基づく処理を実行する(ステップS56)。具体的には、ゲーム実行処理モジュール302は、付属コントローラの操作データであると判断した場合には、当該取得した操作データに基づくゲーム処理を実行する。
次に、CPU81は、ゲーム画像を更新する(ステップS58)。具体的には、ゲーム実行処理モジュール302は、取得したユーザ操作に従う操作データに応じたゲーム画像を生成する。そして、生成されたゲーム画像に従ってテレビ6に更新出力する。
以降の処理は同様であるのでその詳細な説明については繰り返さない。
一方、ステップS54において、CPU81は、横持ち操作が登録されていると判断した場合(ステップS54においてYES)には、操作データを変換操作データに変換する処理を実行する(ステップS62)。具体的には、ゲーム実行処理モジュール302は、フラッシュメモリ84に格納されている登録情報を参照して、取得した操作データに対応するコントローラの登録情報の操作方式に関する情報に横持ち操作方式が登録されていると判断した場合には、操作データを変換操作データに変換する処理を実行する。
具体的には、左コントローラ3の場合には、アナログスティック32の方向指示を90°反時計回りに回転させた変換操作データに変換する。
これにより、オブジェクトに対する横持ち操作方式の左コントローラ3の指示と、左コントローラ3の縦持ち操作方式のアナログスティック32の方向指示とを同じ方向に合わせることが可能となる。また、4つの操作ボタン33~36の機能をそれぞれXボタン、Aボタン、YボタンおよびBボタンにそれぞれ割り当てる。これにより、オブジェクトに対する横持ち操作方式の左コントローラ3の操作ボタンと、縦持ち操作方式の4つの操作ボタン33~36の機能とを同じ機能に合わせることが可能となる。
また、右コントローラ4の場合には、アナログスティック52の方向指示を90°時計回りに回転させた変換操作データに変換する。
これにより、オブジェクトに対する横持ち操作方式の右コントローラ4の指示と、右コントローラ4の縦持ち操作方式のアナログスティック52の方向指示とを同じ方向に合わせることが可能となる。また、4つの操作ボタン53~56の機能をそれぞれBボタン、Yボタン、AボタンおよびXボタンにそれぞれ割り当てる。これにより、オブジェクトに対する横持ち操作方式の右コントローラ4の操作ボタンと、縦持ち操作方式の4つの操作ボタン53~56の機能とを同じ機能に合わせることが可能となる。
次に、CPU81は、変換操作データに基づく処理を実行する(ステップS64)。具体的には、ゲーム実行処理モジュール302は、変換した変換操作データに応じたゲーム画像を生成する。そして、生成されたゲーム画像に従ってテレビ6に更新出力する。
以降の処理は同様であるのでその詳細な説明については繰り返さない。
次に、CPU81は、ゲーム画像を更新する(ステップS58)。具体的には、ゲーム実行処理モジュール302は、取得したユーザ操作に従う操作データに応じたゲーム画像を生成する。そして、生成されたゲーム画像に従ってテレビ6に更新出力する。
以降の処理は同様であるのでその詳細な説明については繰り返さない。
[H:メニュー画面]
図22は、実施形態に基づくゲーム装置1によって実行されるメニュー画面を説明する一例図である。
図22に示されるように、テレビ6にメニュー画面600が表示されている場合が示されている。
当該メニュー画面は、当該メニュー画面を起動する指示をした場合に表示される画面の一例である。具体的には、図21で説明したゲーム処理を終了した場合にメニュー画面が表示される。
メニュー画面600には、複数のゲームを選択可能なアイコン602~608が設けられている。アイコン602を選択すると、ゲームAのアプリケーションプログラムが起動する。アイコン604を選択すると、ゲームBのアプリケーションプログラムが起動する。ゲームCのアイコン606を選択すると、ゲームCのアプリケーションプログラムが起動する。アイコン608を選択すると、ゲームDのアプリケーションプログラムが起動する。
現在の状態としては、一例としてアイコン604にカーソルが合わせられて選択されている状態である。
また、メニュー画面600には、コントローラを登録するためのアイコン610も設けられている。当該アイコン610を選択すると、図15で説明したコントローラ登録画面が表示されて、コントローラ登録処理を実行することが可能となる。
メニュー画面600において、4人のユーザPA~PDがそれぞれ把持するコントローラは、任意にカーソルを操作することが可能に設けられている。
本例において、4人のユーザPA~PDは、それぞれ把持するコントローラを用いて、コントローラ登録処理で登録されている登録情報の操作方式に従う操作状態でのカーソル操作が可能に設けられている。
例えば、図20で説明した状態でゲーム処理を終了し、メニュー画面を表示した場合においても操作状態は維持される。すなわち、登録情報の操作方式の情報は維持されるためユーザPAは、2本のコントローラ3a,4aを用いて対応するカーソルを縦持ち操作により操作する。ユーザPBは、付属コントローラ401を用いて対応するカーソルを操作する。ユーザPCは、1本のコントローラ3bを用いて対応するカーソルを横持ち操作により操作する。ユーザPDは、1本のコントローラ4bを用いて対応するカーソルを横持ち操作により操作する。
すなわち、第1アプリケーションの実行(ゲーム処理)から第2アプリケーションの実行(メニュー画面)に移行した場合に、操作方式を維持した状態で処理を継続することが可能である。したがって、アプリケーションが変更された場合であっても操作方式として継続した操作が可能であり、ユーザビリティを向上させることが可能である。
なお、メニュー画面において、上記したようにコントローラ登録処理を実行した場合には、操作方式の再登録が可能である。
また、本例においては、第1アプリケーションの実行(ゲーム処理)から第2アプリケーションの実行(メニュー画面)に移行する場合について説明したが、例えば、第1アプリケーションの実行を終了するのではなく、バックグラウンド処理に移行し、第2アプリケーションをフォアグラウンド処理で実行する移行処理を実行する場合においても同様に適用可能である。
図23は、実施形態に基づくゲーム装置1によって実行されるメニュー画面における処理を説明するフロー図である。
図23に示される各ステップは、典型的には、本体装置2のCPU81がプログラムを実行することで実現される。
図23を参照して、CPU81は、メニュー画面の起動指示が有るか否かを判断する(ステップS70)。具体的には、メニュー画面表示処理モジュール306は、メニュー画面の起動指示があるか否かを判断する。一例として、ゲーム処理が終了した場合には、ゲーム実行処理モジュール302からの指示によりメニュー画面の起動指示が与えられる。
CPU81は、メニュープログラムの起動指示が有ると判断するまで待機(ステップS70においてNO)し、メニュープログラムの起動指示が有ると判断した場合(ステップS70においてYES)には、メニュー画面を表示する(ステップS72)。具体的には、メニュー画面表示処理モジュール306は、図22で説明したメニュー画面を表示する。
次に、CPU81は、ゲームの選択指示が有るか否かを判断する(ステップS74)。
具体的には、メニュー画面表示処理モジュール306は、図22で説明したメニュー画面においてゲームのアイコンを選択する指示を受け付けたか否かを判断する。
CPU81は、ステップS74において、ゲームの選択指示が有ると判断した場合(ステップS74においてYES)には、ゲーム処理を実行する(ステップS76)。具体的には、メニュー画面表示処理モジュール306は、図21で説明したゲーム処理を実行するようにゲーム実行処理モジュール302に指示する。
そして、CPU81は、ゲーム処理が終了した場合には、ステップS72に戻る。具体的には、ゲーム実行処理モジュール302は、ゲームの実行が終了した場合には、メニュー画面表示処理モジュール306に対してメニュー画面を起動するように指示する。
一方、CPU]81は、ステップS74において、ゲームの選択指示が無いと判断した場合(ステップS74においてNO)には、コントローラの登録指示が有るか否かを判断する(ステップS78)。具体的には、図22で説明したメニュー画面においてコントローラの登録のアイコンを選択する指示を受け付けたか否かを判断する。
ステップS78において、CPU81は、コントローラの登録指示が有ると判断した場合(ステップS78においてYES)には、コントローラ登録処理を実行する(ステップS80)。具体的には、メニュー画面表示処理モジュール306は、図18で説明したコントローラ登録処理を実行するように登録処理モジュール304に指示する。なお、ペアリング処理等が既に済んでいる場合には、ステップS20における処理から実行するようにしても良い。
そして、CPU81は、コントローラ登録処理が終了したと判断した場合には、ステップS72に戻る。登録処理モジュール304は、コントローラの登録処理が終了した場合には、メニュー画面表示処理モジュール306に対してメニュー画面を起動するように指示する。
一方、ステップS78において、CPU81は、コントローラの登録指示が無いと判断した場合(ステップS78においてNO)には、ステップS74に戻り、上記処理を繰り返す。
図24は、実施形態に基づくゲーム装置1によって実行されるモード制御処理を説明するフロー図である。
図24に示される各ステップは、典型的には、本体装置2のCPU81がプログラムを実行することで実現される。
図24を参照して、CPU81は、電源ボタンの操作が有るか否かを判断する(ステップS82)。具体的には、モード制御モジュール308は、電源ボタン28の操作入力が有るか否かを判断する。
CPU81は、電源ボタンの操作が有るまで待機(ステップS82においてNO)し、電源ボタンの操作が有ると判断した場合(ステップS82においてYES)には、長押し操作されたか否かを判断する(ステップS83)。具体的には、モード制御モジュール308は、電源ボタン28が所定期間以上押下し続けられたか否かを判断する。
次に、ステップS83において、CPU81は、電源ボタン28が長押し操作されていないと判断した場合(ステップS83においてYES)には、スリープモードに移行する(ステップS84)。具体的には、モード制御モジュール308は、電源ボタン28が長押し操作されていないと判断した場合(短押し操作の場合)には、スリープモードに移行する。モード制御モジュール308は、スリープ制御部として機能する。スリープモードでは、例えば本体装置2のディスプレイ12の画面表示が休止される。また、スリープモードでは、本体装置2からテレビ6への画面表示も休止される。また、実行中のアプリケーションにおける処理が休止されるようにしてもよい。
次に、CPU81は、電源ボタンの操作が有るか否かを判断する(ステップS86)。具体的には、モード制御モジュール308は、電源ボタン28の操作入力が有るか否かを判断する。
ステップS86において、CPU81は、電源ボタンの操作が有ると判断するまで待機(ステップS86においてNO)し、電源ボタンの操作が有ると判断した場合(ステップS86においてYES)には、オンモードに移行する(ステップS87)。具体的には、モード制御モジュール308は、電源ボタン28の操作入力が有ると判断した場合には、スリープモードからオンモードに移行する。オンモードでは、例えば、本体装置2のディスプレイ12の画面表示が行なわれる。また、オンモードでは、本体装置2からテレビ6への画面表示も行なわれる。
次に、CPU81は、操作方式リセット処理を実行する(ステップS88)。具体的には、モード制御モジュール308は、登録処理モジュール304に対して操作方式リセット処理を実行するように指示する。登録処理モジュール304は、当該指示に従って登録情報に格納されている操作方式の情報をリセットする処理を実行する。
次に、CPU81は、メニュー画面を表示する(ステップS90)。具体的には、モード制御モジュール308は、メニュー画面表示処理モジュール306に指示してメニュー画面を表示するように指示する。
そして、処理を終了する(エンド)。
一方、CPU81は、ステップS83において、長押し操作されたと判断した場合(ステップS83においてYES)には、電源をオフする。具体的には、登録処理モジュール304は、本体装置2への各部への電源供給を遮断する。
そして、CPU81は、再び、電源ボタンの操作が有るか否かを判断する(ステップS94)。具体的には、モード制御モジュール308は、電源ボタン28の操作入力が有るか否かを判断する。
ステップS94において、CPU81は、電源ボタンの操作が有ると判断した場合(ステップS94においてYES)には、電源をオンする。具体的には、登録処理モジュール304は、本体装置2への各部への電源供給を開始する。
そして、CPU81は、オンモードに移行する(ステップS87)。具体的には、モード制御モジュール308は、電源ボタン28の操作入力が有ると判断した場合には、スリープモードからオンモードに移行する。
次に、CPU81は、操作方式リセット処理を実行する(ステップS88)。具体的には、モード制御モジュール308は、登録処理モジュール304に対して操作方式リセット処理を実行するように指示する。登録処理モジュール304は、当該指示に従って登録情報に格納されている操作方式の情報をリセットする処理を実行する。
次に、CPU81は、メニュー画面を表示する(ステップS90)。具体的には、モード制御モジュール308は、メニュー画面表示処理モジュール306に指示してメニュー画面を表示するように指示する。
そして、処理を終了する(エンド)。
図25は、実施形態に基づく登録情報の操作方式リセット処理による更新を説明する図である。
図25を参照して、図16の登録情報と比較して、操作方式に関連する情報が横持ち操作から縦持ち操作に変更された点が異なる。その他の部分については同様である。
登録処理モジュール304は、操作方式リセット処理により操作方式に関連する情報に関して、横持ち操作で登録されている情報を縦持ち操作に変更する。
例えば、操作方式リセット処理により更新された場合に、図22で説明したメニュー画面を表示した場合には、横持ち操作のコントローラの操作状態は変更される。すなわち、ユーザPAは、2本のコントローラ3a,4aを用いて対応するカーソルを縦持ち操作により操作する。ユーザPBは、付属コントローラ401を用いて対応するカーソルを操作する。ユーザPCは、1本のコントローラ3bを用いて対応するカーソルを縦持ち操作により操作する。ユーザPDは、1本のコントローラ4bを用いて対応するカーソルを縦持ち操作により操作する。
スリープモードから復帰してオンモードに移行する場合、また、電源をオン(起動)した場合には、操作方式リセット処理を実行する。すなわち、操作方式に関連する情報として登録されていた横持ち操作を縦持ち操作に変更する。
したがって、アプリケーションプログラムの実行処理を休止あるいは、停止した場合には、操作方式リセット処理により初期化する。
なお、本例においては、リセット(初期化)する場合に横持ち操作を縦持ち操作に変更する方式について説明したが、縦持ち操作を横持ち操作に変更するようにしても良い。
これにより、コントローラ登録処理により登録した操作方式を簡易にリセットすることが可能となり、ユーザビリティを向上させることが可能となる。
本実施形態におけるプログラムとして、パーソナルコンピュータで実行可能なアプリケーションを提供してもよい。このとき、本実施形態に係るプログラムは、パーソナルコンピュータ上で実行される各種アプリケーションプログラムの一部の機能として組み込まれてもよい。
今回開示された実施形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。