以下、本実施形態の一例に係る情報処理装置、情報処理システム、情報処理方法、および情報処理プログラムについて説明する。本実施形態においては、情報処理システム1は、本体装置(情報処理装置)2と左コントローラ3および右コントローラ4とによって構成される。また、上記情報処理システムの他の態様は、上記構成にクレードル5(図5、図7等参照)を加えて構成されることもある。本実施形態における情報処理システム1は、本体装置2に対して左コントローラ3および右コントローラ4が着脱可能であり、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用でき、また、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる(図2参照)。また、情報処理システム1は、本体装置2に画像を表示する態様での利用と、テレビ等の他の表示装置に画像を表示させる態様での利用が可能である。前者の態様において、情報処理システム1は、携帯型装置(例えば、携帯ゲーム機)として利用することができる。また、後者の態様において、情報処理システム1は、据置型装置(例えば、据置型ゲーム機)として利用することができる。
図1は、本実施形態における情報処理システム1の一例において、本体装置2に左コントローラ3および右コントローラ4を装着した状態を示す図である。図1に示すように、情報処理システム1は、本体装置2と、左コントローラ3と、右コントローラ4とを含む。左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、情報処理システム1における各種の処理を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。
図2は、本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図である。図1および図2に示すように、左コントローラ3および右コントローラ4は、本体装置2に着脱可能である。左コントローラ3は、本体装置2の左側面(図1に示すx軸正方向側の側面)に装着することができ、本体装置2の左側面に沿って図1に示すy軸方向にスライドさせることによって本体装置2に着脱可能となっている。また、右コントローラ4は、本体装置2の右側面(図1に示すx軸負方向側の側面)に装着することができ、本体装置2の右側面に沿って図1に示すy軸方向にスライドさせることによって本体装置2に着脱可能となっている。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。なお、本実施形態において、1人のユーザが操作する「操作装置」は、1つのコントローラ(例えば、左コントローラ3および右コントローラ4の一方)でも複数のコントローラ(例えば、左コントローラ3および右コントローラ4の両方、またはさらに他のコントローラを含んでもよい)でもよく、当該「操作装置」は、1以上のコントローラによって構成可能となる。以下、本体装置2と左コントローラ3および右コントローラ4との具体的な構成の一例について説明する。
図3は、本体装置2の一例を示す六面図である。図3に示すように、本体装置2は、略板状のハウジング11を備える。本実施形態において、ハウジング11の主面(換言すれば、表側の面、すなわち、ディスプレイ12が設けられる面)は、大略的には矩形形状である。本実施形態においては、ハウジング11は、横長の形状であるものとする。つまり、本実施形態においては、ハウジング11の主面の長手方向(すなわち、図1に示すx軸方向)を横方向(左右方向とも言う)と呼び、当該主面の短手方向(すなわち、図1に示すy軸方向)を縦方向(上下方向とも言う)と呼び、主面に垂直な方向(すなわち、図1に示すz軸方向)を奥行方向(前後方向とも言う)と呼ぶこととする。本体装置2は、本体装置2が横長となる向きで利用されることが可能である。また、本体装置2が縦長となる向きで利用されることも可能である。その場合には、ハウジング11を縦長の形状であるものと見なしてもよい。
なお、ハウジング11の形状および大きさは、任意である。一例として、ハウジング11は、携帯可能な大きさであってよい。また、本体装置2単体または本体装置2に左コントローラ3および右コントローラ4が装着された一体型装置は、携帯型装置となってもよい。また、本体装置2または一体型装置が手持ち型の装置となってもよい。また、本体装置2または一体型装置が可搬型装置となってもよい。
図3に示すように、本体装置2は、ハウジング11の主面に設けられるディスプレイ12を備える。ディスプレイ12は、本体装置2が取得または生成した画像(静止画であってもよいし、動画であってもよい)を表示する。本実施形態においては、ディスプレイ12は、液晶表示装置(LCD)とする。ただし、ディスプレイ12は任意の種類の表示装置であってよい。
また、本体装置2は、ディスプレイ12の画面上にタッチパネル13を備える。本実施形態においては、タッチパネル13は、マルチタッチ入力が可能な方式(例えば、静電容量方式)のものである。ただし、タッチパネル13は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式(例えば、抵抗膜方式)のものであってもよい。
本体装置2は、ハウジング11の内部においてスピーカ(すなわち、図8に示すスピーカ88)を備えている。図3に示すように、ハウジング11の主面には、スピーカ孔11aおよび11bが形成される。そして、スピーカ88の出力音は、これらのスピーカ孔11aおよび11bからそれぞれ出力される。
図3に示すように、本体装置2は、ハウジング11の左側面において左レール部材15を備える。左レール部材15は、左コントローラ3を本体装置2に着脱可能に装着するための部材である。左レール部材15は、ハウジング11の左側面において、上下方向に沿って延びるように設けられる。左レール部材15は、左コントローラ3のスライダ(すなわち、図4に示すスライダ40)と係合可能な形状を有しており、左レール部材15とスライダ40とによってスライド機構が形成される。このスライド機構によって、左コントローラ3を本体装置2に対してスライド可能かつ着脱可能に装着することができる。
また、本体装置2は左側端子17を備える。左側端子17は、本体装置2が左コントローラ3と有線通信を行うための端子である。左側端子17は、左コントローラ3が本体装置2に装着された場合に、左コントローラ3の端子(図5に示す端子42)と接触する位置に設けられる。左側端子17の具体的な位置は任意である。本実施形態においては、図3に示すように、左側端子17は、左レール部材15の底面に設けられる。また、本実施形態においては、左側端子17は、左レール部材15の底面における下側の端部付近に設けられる。
図3に示すように、ハウジング11の右側面には、左側面に設けられる構成と同様の構成が設けられる。すなわち、本体装置2は、ハウジング11の右側面において右レール部材19を備える。右レール部材19は、ハウジング11の右側面において、上下方向に沿って延びるように設けられる。右レール部材19は、右コントローラ4のスライダ(すなわち、図5に示すスライダ62)と係合可能な形状を有しており、右レール部材19とスライダ62とによってスライド機構が形成される。このスライド機構によって、右コントローラ4を本体装置2に対してスライド可能かつ着脱可能に装着することができる。
また、本体装置2は右側端子21を備える。右側端子21は、本体装置2が右コントローラ4と有線通信を行うための端子である。右側端子21は、右コントローラ4が本体装置2に装着された場合に、右コントローラ4の端子(図5に示す端子64)と接触する位置に設けられる。右側端子21の具体的な位置は任意である。本実施形態においては、図3に示すように、右側端子21は、右レール部材19の底面に設けられる。また、本実施形態においては、右側端子21は、右レール部材19の底面における下側の端部付近に設けられる。
図3に示すように、本体装置2は、第1スロット23を備える。第1スロット23は、ハウジング11の上側面に設けられる。第1スロット23は、第1の種類の記憶媒体を装着可能な形状を有する。第1の種類の記憶媒体は、例えば、情報処理システム1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。第1の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。また、本体装置2は、電源ボタン28を備える。図3に示すように、電源ボタン28は、ハウジング11の上側面に設けられる。電源ボタン28は、本体装置2の電源のオン/オフを切り替えるためのボタンである。
本体装置2は、音声入出力端子(具体的には、イヤホンジャック)25を備える。すなわち、本体装置2は、音声入出力端子25にマイクやイヤホンを装着することができる。図3に示すように、音声入出力端子25は、ハウジング11の上側面に設けられる。
本体装置2は、音量ボタン26aおよび26bを備える。図3に示すように、音量ボタン26aおよび26bは、ハウジング11の上側面に設けられる。音量ボタン26aおよび26bは、本体装置2によって出力される音量を調整する指示を行うためのボタンである。すなわち、音量ボタン26aは、音量を下げる指示を行うためのボタンであり、音量ボタン26bは、音量を上げる指示を行うためのボタンである。
また、ハウジング11には、排気孔11cが形成される。図3に示すように、排気孔11cは、ハウジング11の上側面に形成される。排気孔11cは、ハウジング11の内部で発生した熱をハウジング11の外部へ排気する(換言すれば、放出する)ために形成される。すなわち、排気孔11cは、排熱孔であるとも言える。
本体装置2は、下側端子27を備える。下側端子27は、本体装置2が、後述するクレードル5と通信を行うための端子である。図3に示すように、下側端子27は、ハウジング11の下側面に設けられる。本体装置2がクレードル5に装着された場合、下側端子27は、クレードル5の端子(図7に示す本体端子73)に接続される。本実施形態において、下側端子27は、USBコネクタ(より具体的には、メス側コネクタ)である。
また、本体装置2は第2スロット24を備える。本実施形態においては、第2スロット24は、ハウジング11の下側面に設けられる。ただし、他の実施形態においては、第2スロット24は、第1スロット23とは同じ面に設けられてもよい。第2スロット24は、第1の種類とは異なる第2の種類の記憶媒体を装着可能な形状を有する。第2の種類の記憶媒体は、例えば、汎用の記憶媒体であってもよい。例えば、第2の種類の記憶媒体は、SDカードであってもよい。第2の種類の記憶媒体は、例えば、第1の種類の記憶媒体と同様、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。
また、ハウジング11には、吸気孔11dが形成される。図3に示すように、吸気孔11dは、ハウジング11の下側面に形成される。吸気孔11dは、ハウジング11の外部の空気をハウジング11の内部へ吸気する(換言すれば、導入する)ために形成される。本実施形態においては、排気孔11cが形成される面の反対側の面に吸気孔11dが形成されるので、ハウジング11内部の放熱を効率良く行うことができる。
以上に説明した、ハウジング11に設けられる各構成要素(具体的には、ボタン、スロット、端子等)の形状、数、および設置位置は、任意である。例えば、他の実施形態においては、電源ボタン28および各スロット23および24のうちのいくつかは、ハウジング11の他の側面あるいは背面に設けられてもよい。また、他の実施形態においては、本体装置2は、上記各構成要素のうちいくつかを備えていない構成であってもよい。
図4は、左コントローラ3の一例を示す六面図である。図4に示すように、左コントローラ3は、ハウジング31を備える。本実施形態において、ハウジング31は、略板状である。また、ハウジング31の主面(換言すれば、表側の面、すなわち、図1に示すz軸負方向側の面)は、大略的には矩形形状である。また、本実施形態においては、ハウジング31は、縦長の形状、すなわち、上下方向(すなわち、図1に示すy軸方向)に長い形状である。左コントローラ3は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング31は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ3は、横長となる向きで把持されることも可能である。左コントローラ3が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。なお、ハウジング31の形状は任意であり、他の実施形態においては、ハウジング31は略板状でなくてもよい。また、ハウジング31は、矩形形状でなくてもよく、例えば半円状の形状等であってもよい。また、ハウジング31は、縦長の形状でなくてもよい。
ハウジング31の上下方向の長さは、本体装置2のハウジング11の上下方向の長さとほぼ同じである。また、ハウジング31の厚さ(すなわち、前後方向の長さ、換言すれば、図1に示すz軸方向の長さ)は、本体装置2のハウジング11の厚さとほぼ同じである。したがって、左コントローラ3が本体装置2に装着された場合(図1参照)には、ユーザは、本体装置2と左コントローラ3とを一体の装置のような感覚で把持することができる。
また、図4に示すように、ハウジング31の主面は、左側の角部分が、右側の角部分よりも丸みを帯びた形状になっている。すなわち、ハウジング31の上側面と左側面との接続部分、および、ハウジング31の下側面と左側面との接続部分は、その上側面と右側面との接続部分、および、その下側面と右側面との接続部分に比べて、丸くなっている(換言すれば、面取りにおけるRが大きい)。したがって、左コントローラ3が本体装置2に装着された場合(図1参照)には、一体型装置となった情報処理システム1の左側が丸みを帯びた形状となるので、ユーザにとって持ちやすい形状となる。
左コントローラ3は、アナログスティック32を備える。図4に示すように、アナログスティック32が、ハウジング31の主面に設けられる。アナログスティック32は、方向を入力することが可能な方向入力部の一例である。アナログスティック32は、ハウジング31の主面に平行な全方向(すなわち、上下左右および斜め方向を含む、360°の方向)に傾倒可能なスティック部材を有する。ユーザは、スティック部材を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。なお、方向入力部は、十字キーまたはスライドスティック等であってもよい。また、本実施形態においては、スティック部材を(ハウジング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は−(マイナス)ボタン47を備える。図4に示すように、−ボタン47は、ハウジング31の主面に設けられ、より具体的には、主面における右上領域に設けられる。−ボタン47は、本体装置2で実行される各種プログラム(例えば、OSプログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。−ボタン47は、例えば、ゲームアプリケーションにおいてセレクトボタン(例えば、選択項目の切り替えに用いられるボタン)として用いられる。
左コントローラ3の主面に設けられる各操作部(具体的には、アナログスティック32および上記各ボタン33〜36、47)は、左コントローラ3が本体装置2に装着される場合、一体型装置となった情報処理システム1を把持するユーザの例えば左手の親指によって操作される。また、左コントローラ3が本体装置2から外された状態において両手で横向きに把持されて使用される場合、上記各操作部は、左コントローラ3を把持するユーザの例えば左右の手の親指で操作される。具体的には、この場合、アナログスティック32はユーザの左手の親指で操作され、各操作ボタン33〜36はユーザの右手の親指で操作される。
左コントローラ3は、第1Lボタン38を備える。また、左コントローラ3は、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における左上部分に配置されることになる。
左コントローラ3は、上述のスライダ40を備えている。図4に示すように、スライダ40は、ハウジング31の右側面において、上下方向に延びるように設けられる。スライダ40は、本体装置2の左レール部材15(より具体的には、左レール部材15の溝)と係合可能な形状を有している。したがって、左レール部材15に係合したスライダ40は、スライド方向(換言すれば左レール部材15が延びる方向)に垂直な向きに関しては固定されて外れないようになっている。
また、左コントローラ3は、左コントローラ3が本体装置2と有線通信を行うための端子42を備える。端子42は、左コントローラ3が本体装置2に装着された場合に、本体装置2の左側端子17(図3)と接触する位置に設けられる。端子42の具体的な位置は任意である。本実施形態においては、図4に示すように、端子42は、スライダ40の装着面に設けられる。また、本実施形態においては、端子42は、スライダ40の装着面における下側の端部付近に設けられる。
図5は、右コントローラ4の一例を示す六面図である。図5に示すように、右コントローラ4は、ハウジング51を備える。本実施形態において、ハウジング51は、略板状である。また、ハウジング51の主面(換言すれば、表側の面、すなわち、図1に示すz軸負方向側の面)は、大略的には矩形形状である。また、本実施形態においては、ハウジング51は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ4は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング51は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、右コントローラ4は、横長となる向きで把持されることも可能である。右コントローラ4が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
右コントローラ4のハウジング51は、左コントローラ3のハウジング31と同様、その上下方向の長さは、本体装置2のハウジング11の上下方向の長さとほぼ同じであり、その厚さは、本体装置2のハウジング11の厚さとほぼ同じである。したがって、右コントローラ4が本体装置2に装着された場合(図1参照)には、ユーザは、本体装置2と右コントローラ4とを一体の装置のような感覚で把持することができる。
また、図5に示すように、ハウジング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種類の操作部(アナログスティックおよび操作ボタン)の位置関係は、左コントローラ3におけるこれら2種類の操作部の位置関係とは反対になっている。すなわち、右コントローラ4においては、アナログスティック52は各操作ボタン53〜56の上方に配置されるのに対して、左コントローラ3においては、アナログスティック32は各操作ボタン33〜36の下方に配置される。このような配置によって、左コントローラ3および右コントローラ4を本体装置2から外して使用する場合に似たような操作感覚で使用することができる。
また、右コントローラ4は、+(プラス)ボタン57を備える。図5に示すように、+ボタン57は、ハウジング51の主面に設けられ、より具体的には、主面の左上領域に設けられる。+ボタン57は、他の操作ボタン53〜56と同様、本体装置2で実行される各種プログラム(例えば、OSプログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。+ボタン57は、例えば、ゲームアプリケーションにおいてスタートボタン(例えば、ゲーム開始の指示に用いられるボタン)として用いられる。
右コントローラ4は、ホームボタン58を備える。図5に示すように、ホームボタン58は、ハウジング51の主面に設けられ、より具体的には、主面の左下領域に設けられる。ホームボタン58は、本体装置2のディスプレイ12に所定のメニュー画面を表示させるためのボタンである。メニュー画面は、例えば、本体装置2において実行可能な1以上のアプリケーションのうちからユーザが指定したアプリケーションを起動することが可能な画面である。メニュー画面は、例えば、本体装置2の起動時に表示されてもよい。本実施形態においては、本体装置2においてアプリケーションが実行されている状態(すなわち、当該アプリケーションの画像がディスプレイ12に表示されている状態)において、ホームボタン58が押下されると、所定の操作画面がディスプレイ12に表示されてもよい(このとき、操作画面に代えてメニュー画面が表示されてもよい)。なお、操作画面は、例えば、アプリケーションを終了してメニュー画面をディスプレイ12に表示させる指示、および、アプリケーションを再開する指示等を行うことが可能な画面である。
右コントローラ4の主面に設けられる各操作部(具体的には、アナログスティック52および上記各ボタン53〜58)は、右コントローラ4が本体装置2に装着される場合、情報処理システム1を把持するユーザの例えば右手の親指によって操作される。また、右コントローラ4が本体装置2から外された状態において両手で横向きに把持されて使用される場合、上記各操作部は、右コントローラ4を把持するユーザの例えば左右の手の親指で操作される。具体的には、この場合、アナログスティック52はユーザの左手の親指で操作され、各操作ボタン53〜56はユーザの右手の親指で操作される。
右コントローラ4は、第1Rボタン60を備える。また、右コントローラ4は、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における右上部分に配置されることになる。
右コントローラ4は、左コントローラ3と同様のスライダ機構を備えている。すなわち、右コントローラ4は、上述のスライダ62を備えている。図5に示すように、スライダ62は、ハウジング51の左側面において、上下方向に延びるように設けられる。スライダ62は、本体装置2の右レール部材19(より具体的には、右レール部材19の溝)と係合可能な形状を有している。したがって、右レール部材19に係合したスライダ62は、スライド方向(換言すれば右レール部材19が延びる方向)に垂直な向きに関しては固定されて外れないようになっている。
また、右コントローラ4は、右コントローラ4が本体装置2と有線通信を行うための端子64を備える。端子64は、右コントローラ4が本体装置2に装着された場合に、本体装置2の右側端子21(図3)と接触する位置に設けられる。端子64の具体的な位置は任意である。本実施形態においては、図5に示すように、端子64は、スライダ62の装着面に設けられる。本実施形態においては、端子64は、スライダ62の装着面における下側の端部付近に設けられる。
なお、上記左コントローラ3および右コントローラ4において、ハウジング31または51に設けられる各構成要素(具体的には、スライダ、スティック、およびボタン等)の形状、数、および、設置位置は任意である。例えば、他の実施形態においては、左コントローラ3および右コントローラ4は、アナログスティックとは別の種類の方向入力部を備えていてもよい。また、スライダ40または62は、本体装置2に設けられるレール部材15または19の位置に応じた位置に配置されてよく、例えば、ハウジング31または51の主面または裏面に配置されてもよい。また、他の実施形態においては、左コントローラ3および右コントローラ4は、上記各構成要素のうちいくつかを備えていない構成であってもよい。
図6は、本実施形態における情報処理システムの他の例の全体構成を示す図である。図6に示すように、一例として、クレードル5は、左コントローラ3および右コントローラ4が本体装置2に装着された一体型装置を載置することが可能である。また、さらに他の例として、クレードル5は、左コントローラ3および右コントローラ4を本体装置2から取り外した状態で本体装置2のみを載置することも可能である。また、クレードル5は、ディスプレイ12とは別体の外部表示装置の一例である据置型モニタ6(例えば、据置型テレビ)と通信可能である(有線通信であってもよいし、無線通信であってもよい)。詳細は後述するが、上記一体型装置または本体装置2単体をクレードル5に載置した場合、情報処理システムは、本体装置2が取得または生成した画像を据置型モニタ6に表示することができる。また、本実施形態においては、クレードル5は、載置された上記一体型装置または本体装置2単体を充電する機能を有する。また、クレードル5は、ハブ装置(具体的には、USBハブ)の機能を有する。
図7は、クレードル5の一例の外観構成を示す図である。クレードル5は、本体装置2を着脱可能に載置する(装着するとも言える)ことが可能なハウジングを有する。本実施形態においては、図7に示すように、ハウジングは、溝71aが形成される第1支持部71と、略平面状の第2支持部72とを有する。
図7に示すように、第1支持部71に形成される溝71aは、上記一体型装置の下側部分の形状に応じた形状を有する。具体的には、溝71aは、上記一体型装置の下側部分を挿入可能な形状であり、より具体的には、上記本体装置2の下側部分と略一致する形状である。したがって、上記一体型装置の下側部分を溝71aに挿入することによって、上記一体型装置をクレードル5に載置することができる。また、第2支持部72は、その下側部分が溝71aに挿入された上記一体型装置の表面(すなわち、ディスプレイ12が設けられる面)を支持する。この第2支持部72によって、クレードル5は、上記一体型装置をより安定的に支持することができる。なお、図7に示すハウジングの形状は一例であり、他の実施形態においては、クレードル5のハウジングは、上記本体装置2を載置することが可能な任意の形状であってよい。
図7に示すように、また、クレードル5は、クレードル5が上記一体型装置と通信を行うための本体端子73を備える。図7に示すように、本体端子73は、第1支持部71に形成される溝71aの底面に設けられる。より具体的には、本体端子73は、上記一体型装置がクレードル5に装着される場合に、本体装置2の下側端子27が接触する位置に設けられる。本実施形態においては、本体端子73は、USBコネクタ(より具体的には、オス側コネクタ)である。なお、本実施形態においては、上記一体型装置を表向きにしても裏向きにしてもクレードル5に装着することができる。したがって、本体装置2の下側端子27およびクレードル5の本体端子73は、奥行方向(すなわち、図1に示すz軸方向)に関して対称な形状を有し、当該奥行方向に関して2種類の向きのうちどちらの向きで接続されても通信可能である。
図7では図示しないが、クレードル5は、ハウジングの背面に端子(本実施形態においては、複数の端子を有する。具体的には、クレードル5は、図10に示すモニタ用端子132、電源端子134、および拡張用端子137)を有する。これらの端子の詳細については後述する。
以上に説明した、クレードル5に設けられる各構成要素(具体的には、ハウジング、端子、ボタン等)の形状、数、および、設置位置は任意である。例えば、他の実施形態においては、ハウジングは、左コントローラ3および右コントローラ4が本体装置2に装着された一体型装置や本体装置2単体を支持可能な他の形状を有していてもよい。また、ハウジングに設けられる端子のいくつかは、ハウジングの前側の面に設けられてもよい。また、他の実施形態においては、クレードル5は、上記各構成要素のうちいくつかを備えていない構成であってもよい。
図8は、本体装置2の内部構成の一例を示すブロック図である。本体装置2は、図3に示す構成の他、図8に示す各構成要素81〜98を備える。これらの構成要素81〜98のいくつかは、電子部品として電子回路基板上に実装されてハウジング11内に収納されてもよい。
本体装置2は、CPU(Central Processing Unit)81を備える。CPU81は、本体装置2において実行される各種の情報処理を実行する情報処理部である。CPU81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、各スロット23および24に装着される外部記憶媒体等)に記憶される情報処理プログラムを実行することによって、各種の情報処理を実行する。
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、CPU81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
本体装置2は、第1スロットインターフェース(以下、「I/F」と略記する。)91を備える。また、本体装置2は、第2スロットI/F92を備える。第1スロットI/F91および第2スロットI/F92は、CPU81に接続される。第1スロットI/F91は、第1スロット23に接続され、第1スロット23に装着された第1の種類の記憶媒体(例えば、SDカード)に対するデータの読み出しおよび書き込みを、CPU81の指示に応じて行う。第2スロットI/F92は、第2スロット24に接続され、第2スロット24に装着された第2の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、CPU81の指示に応じて行う。
CPU81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
本体装置2は、ネットワーク通信部82を備える。ネットワーク通信部82は、CPU81に接続される。ネットワーク通信部82は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行う。本実施形態においては、ネットワーク通信部82は、第1の通信態様としてWi−Fiの規格に準拠した方式により、無線LANに接続して外部装置と通信を行う。また、ネットワーク通信部82は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の本体装置2との間で無線通信を行う。なお、上記第2の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置2との間で無線通信可能であり、複数の本体装置2の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、CPU81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、本実施形態においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
CPU81は、上述の左側端子17、右側端子21、および、下側端子27に接続される。CPU81は、左コントローラ3と有線通信を行う場合、左側端子17を介して左コントローラ3へデータを送信するとともに、左側端子17を介して左コントローラ3から操作データを受信する。また、CPU81は、右コントローラ4と有線通信を行う場合、右側端子21を介して右コントローラ4へデータを送信するとともに、右側端子21を介して右コントローラ4から操作データを受信する。また、CPU81は、クレードル5と通信を行う場合、下側端子27を介してクレードル5へデータを送信する。このように、本実施形態においては、本体装置2は、左コントローラ3および右コントローラ4との間で、それぞれ有線通信と無線通信との両方を行うことができる。また、左コントローラ3および右コントローラ4が本体装置2に装着された一体型装置がクレードル5に装着された場合、本体装置2は、クレードル5を介してデータ(例えば、画像データや音声データ)を据置型モニタ6に出力することができる。
ここで、本体装置2は、複数の左コントローラ3と同時に(換言すれば、並行して)通信を行うことができる。また、本体装置2は、複数の右コントローラ4と同時に(換言すれば、並行して)通信を行うことができる。したがって、ユーザは、複数の左コントローラ3および複数の右コントローラ4を用いて本体装置2に対する入力を行うことができる。
本体装置2は、タッチパネル13の制御を行う回路であるタッチパネルコントローラ86を備える。タッチパネルコントローラ86は、タッチパネル13とCPU81との間に接続される。タッチパネルコントローラ86は、タッチパネル13からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、CPU81へ出力する。
また、ディスプレイ12は、CPU81に接続される。CPU81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
本体装置2は、コーデック回路87およびスピーカ(具体的には、左スピーカおよび右スピーカ)88を備える。コーデック回路87は、スピーカ88および音声入出力端子25に接続されるとともに、CPU81に接続される。コーデック回路87は、スピーカ88および音声入出力端子25に対する音声データの入出力を制御する回路である。すなわち、コーデック回路87は、CPU81から音声データを受け取った場合、当該音声データに対してD/A変換を行って得られる音声信号をスピーカ88または音声入出力端子25へ出力する。これによって、スピーカ88あるいは音声入出力端子25に接続された音声出力部(例えば、イヤホン)から音が出力される。また、コーデック回路87は、音声入出力端子25から音声信号を受け取った場合、音声信号に対してA/D変換を行い、所定の形式の音声データをCPU81へ出力する。また、音量ボタン26は、CPU81に接続される。CPU81は、音量ボタン26に対する入力に基づいて、スピーカ88または上記音声出力部から出力される音量を制御する。
本体装置2は、電力制御部97およびバッテリ98を備える。電力制御部97は、バッテリ98およびCPU81に接続される。また、図示しないが、電力制御部97は、本体装置2の各部(具体的には、バッテリ98の電力の給電を受ける各部、左側端子17、および右側端子21)に接続される。電力制御部97は、CPU81からの指令に基づいて、バッテリ98から上記各部への電力供給を制御する。また、電力制御部97は、電源ボタン28に接続される。電力制御部97は、電源ボタン28に対する入力に基づいて、上記各部への電力供給を制御する。すなわち、電力制御部97は、電源ボタン28に対して電源をオフする操作が行われた場合、上記各部の全部または一部への電力供給を停止し、電源ボタン28に対して電源をオンする操作が行われた場合、電力制御部97は、上記各部の全部または一部への電力供給を開始する。また、電力制御部97は、電源ボタン28に対する入力を示す情報(具体的には、電源ボタン28が押下されているか否かを示す情報)をCPU81へ出力する。
また、バッテリ98は、下側端子27に接続される。外部の充電装置(例えば、クレードル5)が下側端子27に接続され、下側端子27を介して本体装置2に電力が供給される場合、供給された電力がバッテリ98に充電される。
また、本体装置2は、本体装置2内部の熱を放熱するための冷却ファン96を備える。冷却ファン96が動作することによって、ハウジング11の外部の空気が吸気孔11dから導入されるとともに、ハウジング11内部の空気が排気孔11cから放出されることで、ハウジング11内部の熱が放出される。冷却ファン96は、CPU81に接続され、冷却ファン96の動作はCPU81によって制御される。また、本体装置2は、本体装置2内の温度を検出する温度センサ95を備える。温度センサ95は、CPU81に接続され、温度センサ95の検出結果がCPU81へ出力される。CPU81は、温度センサ95の検出結果に基づいて、冷却ファン96の動作を制御する。
図9は、情報処理システム1の内部構成の一例を示すブロック図である。なお、情報処理システム1のうちの本体装置2に関する内部構成の詳細については、図8で示しているため図9では省略している。
左コントローラ3は、本体装置2との間で通信を行う通信制御部101を備える。図9に示すように、通信制御部101は、端子42を含む各構成要素に接続される。本実施形態においては、通信制御部101は、端子42を介した有線通信と、端子42を介さない無線通信との両方で本体装置2と通信を行うことが可能である。通信制御部101は、左コントローラ3が本体装置2に対して行う通信方法を制御する。すなわち、左コントローラ3が本体装置2に装着されている場合、通信制御部101は、端子42を介して本体装置2と通信を行う。また、左コントローラ3が本体装置2から外されている場合、通信制御部101は、本体装置2(具体的には、コントローラ通信部83)との間で無線通信を行う。コントローラ通信部83と通信制御部101との間の無線通信は、例えばBluetooth(登録商標)の規格に従って行われる。
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
左コントローラ3は、各ボタン103(具体的には、ボタン33〜39,43,および44)を備える。また、左コントローラ3は、アナログスティック(図9では「スティック」と記載する)32を備える。各ボタン103およびアナログスティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部101へ出力する。
左コントローラ3は、加速度センサ104を備える。本実施形態においては、加速度センサ104は、所定の3軸(例えば、図1に示すxyz軸)方向に沿った直線加速度の大きさを検出する。なお、加速度センサ104は、1軸方向あるいは2軸方向の加速度を検出するものであってもよい。また、左コントローラ3は、角速度センサ105を備える。本実施形態においては、角速度センサ105は、所定の3軸(例えば、図1に示すxyz軸)回りの角速度を検出する。なお、角速度センサ105は、1軸回りあるいは2軸回りの角速度を検出するものであってもよい。加速度センサ104および角速度センサ105は、それぞれ通信制御部101に接続される。そして、加速度センサ104および角速度センサ105の検出結果は、適宜のタイミングで繰り返し通信制御部101へ出力される。
通信制御部101は、各入力部(具体的には、各ボタン103、アナログスティック32、各センサ104および105)から、入力に関する情報(具体的には、操作に関する情報、または、センサによる検出結果)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
上記操作データが本体装置2へ送信されることによって、本体装置2は、左コントローラ3に対して行われた入力を得ることができる。すなわち、本体装置2は、各ボタン103およびアナログスティック32に対する操作を、操作データに基づいて判別することができる。また、本体装置2は、左コントローラ3の動きおよび/または姿勢に関する情報を、操作データ(具体的には、加速度センサ104および角速度センサ105の検出結果)に基づいて算出することができる。
左コントローラ3は、振動によってユーザに通知を行うための振動子107を備える。本実施形態においては、振動子107は、本体装置2からの指令によって制御される。すなわち、通信制御部101は、本体装置2からの上記指令を受け取ると、当該指令に従って振動子107を駆動させる。ここで、左コントローラ3は、増幅器106を備える。通信制御部101は、上記指令を受け取ると、指令に応じた制御信号を増幅器106へ出力する。増幅器106は、通信制御部101からの制御信号を増幅して、振動子107を駆動させるための駆動信号を生成して振動子107へ与える。これによって振動子107が動作する。
左コントローラ3は、電力供給部108を備える。本実施形態において、電力供給部108は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ3の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。電力制御回路は、バッテリから上記各部への電力供給を制御する。また、バッテリは、端子42に接続される。本実施形態においては、左コントローラ3が本体装置2に装着される場合、所定の条件下で、バッテリは、端子42を介して本体装置2からの給電によって充電される。
図9に示すように、右コントローラ4は、本体装置2との間で通信を行う通信制御部111を備える。また、右コントローラ4は、通信制御部111に接続されるメモリ112を備える。通信制御部111は、端子64を含む各構成要素に接続される。通信制御部111およびメモリ112は、左コントローラ3の通信制御部101およびメモリ102と同様の機能を有する。したがって、通信制御部111は、端子64を介した有線通信と、端子64を介さない無線通信(具体的には、Bluetooth(登録商標)の規格に従った通信)との両方で本体装置2と通信を行うことが可能であり、右コントローラ4が本体装置2に対して行う通信方法を制御する。
右コントローラ4は、左コントローラ3の各入力部と同様の各入力部(具体的には、各ボタン113、アナログスティック52、加速度センサ114、および、角速度センサ115)を備える。これらの各入力部については、左コントローラ3の各入力部と同様の機能を有し、同様に動作する。
また、右コントローラ4は、振動子117および増幅器116を備える。振動子117および増幅器116は、左コントローラ3の振動子107および増幅器106と同様に動作する。すなわち、通信制御部111は、本体装置2からの指令に従って、増幅器116を用いて振動子117を動作させる。
右コントローラ4は、電力供給部118を備える。電力供給部118は、左コントローラ3の電力供給部108と同様の機能を有し、同様に動作する。すなわち、電力供給部118は、バッテリから給電を受ける各部への電力供給を制御する。また、右コントローラ4が本体装置2に装着される場合、所定の条件下で、バッテリは、端子64を介して本体装置2からの給電によって充電される。
右コントローラ4は、処理部121を備える。処理部121は、通信制御部111に接続されるとともに、NFC通信部122に接続される。処理部121は、本体装置2からの指令に応じて、NFC通信部122に対する管理処理を実行する。例えば、処理部121は、本体装置2からの指令に応じてNFC通信部122の動作を制御する。また、処理部121は、NFC通信部122の起動を制御したり、通信相手(例えば、NFCタグ)に対するNFC通信部122の動作(具体的には、読み出しおよび書き込み等)を制御したりする。また、処理部121は、通信制御部111を介して上記通信相手に送信されるべき情報を本体装置2から受信してNFC通信部122へ渡したり、上記通信相手から受信された情報をNFC通信部122から取得して通信制御部111を介して本体装置2へ送信したりする。また、処理部121は、本体装置2からの指令に応じて、赤外撮像部123に対する管理処理を実行する。例えば、処理部121は、赤外撮像部123に撮像動作を行わせたり、撮像結果に基づく情報(撮像画像の情報、あるいは、当該情報から算出される情報等)を取得して、通信制御部111を介して本体装置2へ送信したりする。
図10は、クレードル5の内部構成の一例を示すブロック図である。なお、図10において、本体装置2に関する内部構成の詳細については、図8で示しているので省略している。
図10に示すように、クレードル5は、変換部131およびモニタ用端子132を備える。変換部131は、本体端子73およびモニタ用端子132と接続される。変換部131は、本体装置2から受信した画像(映像とも言える)および音声に関する信号の形式を、据置型モニタ6へ出力する形式へと変換する。ここで、本実施形態においては、本体装置2は、ディスプレイポート信号(すなわち、DisplayPortの規格に従った信号)として画像および音声の信号をクレードル5へ出力する。また、本実施形態においては、クレードル5と据置型モニタ6との間の通信は、HDMI(登録商標)の規格に基づく通信が用いられる。すなわち、モニタ用端子132は、HDMI端子であり、クレードル5と据置型モニタ6とがHDMIケーブルによって接続される。そして、変換部131は、本体装置2から本体端子73を介して受信されるディスプレイポート信号(具体的には、映像および音声を表す信号)を、HDMI信号へ変換する。変換されたHDMI信号は、モニタ用端子132を介して据置型モニタ6へ出力される。
クレードル5は、電力制御部133および電源端子134を備える。電源端子134は、図示しない充電装置(例えば、ACアダプタ等)を接続するための端子である。本実施形態においては、電源端子134にACアダプタが接続されており、クレードル5には商用電源が供給されているものとする。電力制御部133は、クレードル5に対して本体装置2が装着された場合、本体端子73を介して電源端子134からの電力を本体装置2へ供給する。これによって、本体装置2のバッテリ98が充電される。
また、クレードル5は、接続処理部136および拡張用端子137を備える。拡張用端子137は、他の装置を接続するための端子である。本実施形態においては、クレードル5は、拡張用端子137として、複数(より具体的には3つ)のUSB端子を備える。接続処理部136は、本体端子73および各拡張用端子137に接続される。接続処理部136は、USBハブとしての機能を有し、例えば、拡張用端子137に接続された装置と、本体端子73に接続された本体装置2との間の通信を管理する(すなわち、ある装置からの信号を他の装置へ適宜分配して送信する)。上記のように、本実施形態においては、情報処理システム1は、クレードル5を介して他の装置との通信を行うことが可能である。なお、接続処理部136は、通信速度を変換したり、拡張用端子137に接続された装置に対する電力供給を行ったりすることが可能であってもよい。
以上に説明したように、本実施形態における情報処理システム1については左コントローラ3および右コントローラ4が本体装置2から着脱可能である。また、クレードル5に左コントローラ3および右コントローラ4が本体装置2に装着された一体型装置や本体装置2単体を装着することによって据置型モニタ6に画像(および音声)を出力可能である。したがって、以下に説明するような種々の利用態様で情報処理システム1を利用することができる。以下、左コントローラ3および右コントローラ4を本体装置2から取り外した状態での主な利用態様における情報処理システムの動作を説明する。
上述のように、本実施形態においては、左コントローラ3および右コントローラ4を本体装置2から外した状態(「離脱状態」と呼ぶ)で情報処理システム1を利用することも可能である。離脱状態で情報処理システム1を利用して同じアプリケーション(例えば、ゲームアプリケーション)に対する操作を行う場合の態様としては、1人のユーザが左コントローラ3および右コントローラ4の少なくとも一方を用いる態様と、2人のユーザがコントローラを1つずつ用いる態様という2つの態様が少なくとも考えられる。
図11は、離脱状態において、1人のユーザが左コントローラ3および右コントローラ4の一方(図11においては、右コントローラ4)を把持して情報処理システム1を利用する様子の一例を示す図である。図11に示すように、離脱状態において、ユーザは、左コントローラ3および右コントローラ4の一方を、左右の手または片手で把持して操作を行いながら、本体装置2のディスプレイ12に表示された画像を見ることができる。
なお、アプリケーションで利用するコントローラに対する操作は、どのようなものであってもよい。例えば、ユーザは、コントローラが備える操作部(操作ボタンおよびアナログスティック)に対する操作を行うことができる。また、本実施形態においては、コントローラが備える加速度センサおよび/または角速度センサの検出結果に基づいて、コントローラの動きおよび/または姿勢に関する情報を算出可能である。したがって、情報処理システム1は、コントローラ自体を動かす操作を入力として受け付けることができる。ユーザは、コントローラが備える操作部に対する操作だけでなく、コントローラ自体を動かす操作を行うことができる。つまり、本実施形態においては、情報処理システム1は、携帯型機器でありながら、(ディスプレイを動かすことなく)コントローラを動かす操作をユーザに提供することができる。また、情報処理システム1は、携帯型機器でありながら、ディスプレイ12から離れた場所でユーザが操作を行うことが可能な情報処理装置を提供することができる。
図12は、離脱状態において、2人のユーザが1つずつコントローラを把持して情報処理システム1を利用する様子の一例を示す図である。図12に示すように、離脱状態においては、2人のユーザが操作を行うことが可能であり、具体的には、一方のユーザ(「第1のユーザ」と呼ぶ)が左コントローラ3を用いて操作を行うとともに、他方のユーザ(「第2のユーザ」と呼ぶ)が右コントローラ4を用いて操作を行うことが可能である。情報処理システム1は、例えば、左コントローラ3に対する操作に基づいて仮想空間における第1のオブジェクト(例えばプレイヤキャラクタ)の動作を制御し、右コントローラ4に対する操作に基づいて同じ仮想空間における第2のオブジェクトの動作を制御する情報処理を実行する。なお、図12に示す態様においても図11に示す態様と同様、第1のユーザおよび第2のユーザは、それぞれコントローラが備える操作部に対する操作、および/または、コントローラ自体を動かす操作が可能である。
また、本実施形態においては、右コントローラ4におけるアナログスティック52と各操作ボタン53〜56との位置関係は、図2のように縦長に配置した場合において、左コントローラ3におけるこれら2種類の操作部の位置関係とは反対になっている。したがって、図12に示すように、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において実行されるプログラムによって自由に決められてよい。
図12においては、情報処理システム1は、ディスプレイ12の表示領域を2つに分割し、分割された一方の表示領域に左コントローラ3を操作する第1のユーザのための画像(例えば、第1オブジェクトを含む画像)を表示し、分割された他方の表示領域に右コントローラ4を操作する第2のユーザのための画像(例えば、第2オブジェクトを含む画像)を表示する。このように、本実施形態では、1つの情報処理システム1を用いて複数人による操作(例えば、複数人プレイ)が行われる場合、当該操作人数に応じてディスプレイ12の表示領域が分割されて、それぞれの操作者用の画像が少なくとも表示される。なお、上記複数の操作者用の画像を表示する場合、ディスプレイ12の表示領域自体が物理的に分離されている必要はない。また、複数の操作者用の画像データをそれぞれ生成する必要もない。複数の操作装置(ここでは、左コントローラ3および右コントローラ4)を用いたそれぞれの操作を反映する画像を含む1つの画像(例えば、1つのゲーム画像)を画面分割によって生成し、当該1つの画像をディスプレイ12の表示領域に表示させればよく、画面分割によって複数の場面を含む1つの画像データが生成されて1つの表示部に表示する処理を行ってもよい。
離脱状態においては、本体装置2と左コントローラ3および右コントローラ4との通信は、無線通信によって行われる。すなわち、本体装置2は、自身との無線通信が確立した(ペアリングが行われた)左コントローラ3および/または右コントローラ4から操作データを受信して、受信された操作データに基づいて(具体的には、操作データを入力として用いて)情報処理を実行する。なお、本実施形態においては、無線通信の場合、本体装置2は、通信相手となる複数のコントローラを区別する。すなわち、本体装置2は、受信された操作データが、無線通信が確立されたどのコントローラからのものであるかを識別する。コントローラを区別する方法については後述する。
このように、図12に示した利用態様では、携帯型装置である本体装置2におけるディスプレイ12を、複数のユーザがそれぞれ用いる表示領域に分割して用いることができる。ここで、据置型の表示装置の表示画面を分割して複数のユーザが用いる場合、当該表示装置の持ち運びが困難であるために当該表示装置の表示領域を分割した画像を表示する場所は当該表示装置の設置場所に限られてしまう。しかしながら、本体装置2は、持ち運びが容易であるため、ユーザが所望する場所において表示領域を分割した画像を表示することができる。
上述のように、本実施形態においては、本体装置2は、複数の左コントローラ3と通信可能である。また、本体装置2は、複数の右コントローラ4と通信可能である。したがって、本実施形態においては、3つ以上のコントローラを同時に用いることが可能である。また、本実施形態においては、本体装置2をクレードル5に装着することによって、本体装置2は、クレードル5を介して画像(および音声)を据置型モニタ6に出力することができる。図13は、3つ以上のコントローラを用いながら、据置型モニタ6に画像を表示する場合における利用態様の一例を示す図である。図13に示すように、本実施形態における情報処理システムは、据置型モニタ6を表示装置(および音声出力装置)として用いることができる。
図13においては、2つの左コントローラ3aおよび3bと、2つの右コントローラ4aおよび4bという、合計4つのコントローラが用いられる場合を例示している。なお、ここでは、各コントローラは、本体装置2から外されており、本体装置2単体がクレードル5に載置されている。このように4つのコントローラが用いられる場合、4人のユーザが1人につき1つのコントローラを利用して、据置型モニタ6に表示された画像を見る態様が少なくとも考えられる。
本実施形態においては、4つのコントローラが用意される場合には、第1のユーザ、第2のユーザ、第3のユーザ、および第4のユーザという4人のユーザがコントローラを用いて操作を行うことが可能である。具体的には、第1のユーザが左コントローラ3aを用いて操作を行い、左コントローラ3aに対する操作に基づいて仮想空間における第1のオブジェクト(例えばプレイヤキャラクタ)の動作を制御する情報処理を実行する。第2のユーザが左コントローラ3bを用いて操作を行い、左コントローラ3bに対する操作に基づいて仮想空間における第2のオブジェクト(例えばプレイヤキャラクタ)の動作を制御する情報処理を実行する。第3のユーザが右コントローラ4aを用いて操作を行い、右コントローラ4aに対する操作に基づいて仮想空間における第3のオブジェクト(例えばプレイヤキャラクタ)の動作を制御する情報処理を実行する。そして、第4のユーザが右コントローラ4bを用いて操作を行い、右コントローラ4bに対する操作に基づいて仮想空間における第4のオブジェクト(例えばプレイヤキャラクタ)の動作を制御する情報処理を実行する。なお、図13に示す各利用態様においても、図11および図12に示す利用態様と同様、各ユーザは、それぞれコントローラが備える操作部に対する操作、および/または、コントローラ自体を動かす操作が可能である。
図13においては、情報処理システム1は、据置型モニタ6の表示領域を4つ(「第1の表示領域」〜「第4の表示領域」と呼ぶ)に分割する。そして、分割された第1の表示領域に左コントローラ3aを操作する第1のユーザのための画像(例えば、第1オブジェクトを含む画像)を表示し、分割された第2の表示領域に左コントローラ3bを操作する第2のユーザのための画像(例えば、第2オブジェクトを含む画像)を表示し、分割された第3の表示領域に右コントローラ4aを操作する第3のユーザのための画像(例えば、第3オブジェクトを含む画像)を表示し、分割された第4の表示領域に右コントローラ4bを操作する第4のユーザのための画像(例えば、第4オブジェクトを含む画像)を表示する。このように、本実施形態では、1つの情報処理システム1を用いて4人による操作(例えば、3人以上のプレイ)が行われる場合、当該操作人数に応じて据置型モニタ6の表示領域が分割されて、操作者用それぞれの画像が少なくとも表示される。なお、1つの情報処理システム1を用いて3人以上による操作が行われる場合も、本体装置2のディスプレイ12を分割して表示することが考えられる。しかしながら、携帯型機器に設けられている表示画面が相対的に小さいため、当該表示画面を3つ以上に分割してそれぞれのユーザ用の画面を表示した場合、各ユーザ用の画面が見にくくなることが考えられる。したがって、本実施形態では、表示画面を3つ以上に分割することが必要な場合、相対的に表示画面が大きい据置型モニタ6を用いた操作が要求される。つまり、本実施形態では、本体装置2のディスプレイ12を用いた操作では操作可能人数が2人に制限される一方、クレードル5を介した据置型モニタ6を用いた操作では3人以上の操作を可能としている。なお、上記複数の操作者用の画像を表示する場合も、据置型モニタ6の表示領域自体が物理的に分離されている必要はない。また、複数の操作者用の画像データをそれぞれ生成する必要もない。複数の操作装置(ここでは、左コントローラ3a、左コントローラ3b、右コントローラ4a、および右コントローラ4b)を用いたそれぞれの操作を反映する画像を含む1つの画像(例えば、1つのゲーム画像)を画面分割によって生成し、当該1つの画像を据置型モニタ6の表示領域に表示させればよく、画面分割によって複数の場面を含む1つの画像データが生成されて1つの表示部に表示する処理を行ってもよい。
なお、図13に示した一例では、据置型モニタ6の表示領域を4つに分割して、それぞれの分割表示領域に4人分の画像をそれぞれ表示する例を用いた。しかしながら、利用するユーザが3人の場合、据置型モニタ6の表示領域を3つに分割してもよいし、図13の例と同様に据置型モニタ6の表示領域を4つに分割してもよい。後者の場合、4つに分割された分割表示領域のうち、3つの分割表示領域に3人分の画像をそれぞれ表示し、残りの分割表示領域に任意の画像を表示してもよい。分割前、分割後の領域の形状は任意であるが、一例として長方形の表示領域を4つに分割する場合、分割後のそれぞれの領域の形状を分割前の領域に相似する長方形にすることが可能であるため、4人のときだけでなく、3人のときもこのように4つに分割する場合がある。5人以上のためには、領域を6つに分割、8つに分割、9つに分割する例が考えられる。このように、人数が異なっても同じ数の表示領域が設定されることがあり得る。しかしながら、一部の異なる人数において同じ数の分割表示領域が設定されるとしても、少なくともユーザの数に応じて分割表示領域による複数人利用のための画像を生成していると言うことができる。
また、本体装置2は、左コントローラ3aおよび3bと右コントローラ4aおよび4bとの4つのコントローラとそれぞれ無線通信を行う。ここで、本実施形態において、本体装置2は、4つのコントローラを区別する。すなわち、本体装置2は、受信された操作データが4つのうちどのコントローラからのものであるかを識別する。なお、各コントローラを区別する方法については後述する。
次に、本体装置2のディスプレイ12から据置型モニタ6の表示画面に切り替えて画像を表示する動作の流れについて説明する。図14は、本体装置2のディスプレイ12から据置型モニタ6の表示画面に切り替えて画像を表示する場合における動作の流れの一例を示す図である。なお、クレードル5は、据置型モニタ6に予め接続されているものとする。また、クレードル5の電源端子134には、図示しない充電装置(例えば、ACアダプタ)が接続されており、クレードル5には電源が供給されているものとする。
まず、ユーザは、情報処理システム1を携帯型機器として利用しているとする。すなわち、クレードル5に装着されない状態で利用している(図14に示す(1))。この状態において、据置型機器として情報処理システム1を利用する態様へと切り替える場合、ユーザは、本体装置2をクレードル5に装着する(図14に示す(2))。これによって、本体装置2の下側端子27とクレードル5の本体端子73とが接続される。
なお、本実施形態においては、本体装置2がクレードル5に装着されたことを検知すると、本体装置2は、ディスプレイ12の表示を停止する。このように、本実施形態においては、クレードル5に装着された状態では、本体装置2のディスプレイ12は使用されないものとする。なお、他の実施形態においては、クレードル5に装着された状態であっても、本体装置2がディスプレイ12に画像を表示するようにしてもよい。本実施形態においては、本体装置2がクレードル5から外されたことを検知すると、本体装置2は、ディスプレイ12の表示を開始する。
本実施形態においては、本体装置2(または本体装置2に左コントローラ3および右コントローラ4が装着された一体型装置)がクレードル5に装着されたことを検知すると、クレードル5は、本体装置2に対する充電を開始する。すなわち、処理部135は、本体装置2がクレードル5に装着されたことを検知すると、電源端子134からの電力を本体装置2へ供給する動作を電力制御部133に指示する。電力制御部133がこの動作を開始することによって、クレードル5による本体装置2への充電が開始される。すなわち、本体装置2においては、クレードル5から下側端子27を介して供給される電力によってバッテリ98が充電される。また、クレードル5による本体装置2への充電が行われている場合において、本体装置2にコントローラ(具体的には、左コントローラ3および/または右コントローラ4)が装着されている状態であれば、本体装置2は、自身に装着されているコントローラに対して充電を行う。すなわち、上記の場合において、本体装置2の電力制御部97は、クレードル5から下側端子27を介して供給される電力を、本体装置2に装着されているコントローラに対応する端子(具体的には、左側端子17および/または右側端子21)を介して当該コントローラへ供給する。これによって、コントローラの充電が行われる。
なお、他の実施形態においては、クレードル5は、所定の条件下で本体装置2に対する充電を行うようにしてもよい。例えば、クレードル5の電力制御部133は、クレードル5に装着された本体装置2のバッテリ98の残量が所定量以下であることを条件として充電を行うようにしてもよい。これと同様に、本体装置2は、所定の条件下でコントローラに対する充電を行うようにしてもよい。例えば、本体装置2の電力制御部97は、本体装置2に装着されたコントローラのバッテリの残量が所定量以下であることを条件として充電を行うようにしてもよい。また、上記の充電に関する動作に関しては、本体装置2の電源がオフである場合であっても実行されてもよい。
本体装置2がクレードル5に装着されると、本体装置2は、据置型モニタ6に画像(および音声)を出力し、画像(および音声)を据置型モニタ6から出力させる(図14に示す(3))。すなわち、本体装置2は、出力すべき画像および音声のデータを、所定の条件下でクレードル5へ送信する。なお、「出力すべき画像および音声」とは、本実施形態においては、本体装置2がクレードル5に装着される時点で実行されていたプログラム(例えば、OSプログラムあるいはアプリケーションプログラム)によって生成される画像および音声である。例えば、上記時点でゲームアプリケーションが実行されていた場合、本体装置2は、当該ゲームアプリケーションによって生成される画像および音声のデータをクレードル5へ出力する。
クレードル5は、本体装置2から画像および音声のデータを受信すると、当該画像および音声のデータを据置型モニタ6へ送信する。これによって、上記「出力すべき画像および音声」が据置型モニタ6から出力される(図14に示す(3))。据置型モニタ6から画像および音声が出力される状態になると、ユーザは、コントローラを用いて操作を行うことができる(図14に示す(4))。
以上のように、本実施形態においては、本体装置2のディスプレイ12に画像が表示されている状態において、本体装置2をクレードル6に装着することによって、画像の表示先をディスプレイ12から据置型モニタ6へと切り替えることができる。また、本実施形態においては、据置型モニタ6に画像が表示されている状態において、本体装置2をクレードル6から取り外すことによって、画像の表示先を据置型モニタ6から本体装置2のディスプレイ12へと切り替えることができる。つまり、本実施形態においては、ユーザは、本体装置2をクレードル6に着脱するだけで表示先を容易に切り替えることができる。また、ユーザは、本体装置2をクレードル6に着脱するだけで表示先をシームレスに切り替えることができる。
また、上記のように、本実施形態においては、情報処理システム1を、ディスプレイ12に画像を表示する利用態様と、据置型モニタ6に画像を表示する利用態様とで利用可能である。ここで、本実施形態においては、情報処理システム1は、これらの2種類の利用態様に応じて、動作モードを変更する。すなわち、情報処理システム1は、ディスプレイ12に画像を表示する携帯モードと据置型モニタ6に画像を表示する据置モードという2種類のモードで少なくとも動作可能である。
携帯モードは、情報処理システム1が携帯型機器として利用される際のモードである。携帯モードにおいては、情報処理システム1が生成した画像は、ディスプレイ12に表示される。また、情報処理システム1が生成した音声は、スピーカ88から出力される。また、携帯モードにおいては、情報処理システム1は、以下の(a)および(b)のように設定が変更される。
(a)本体装置2の処理能力を制限する設定
本実施形態においては、本体装置2において実行されるプログラムによって、CPU81の動作可能なクロック周波数を所定の範囲内で指定することが可能である。本実施形態においては、携帯モードにおいて、プログラムが指定可能なクロック周波数の範囲が、据置モードにおいて指定可能な範囲よりも制限される。例えば、据置モードにおいては指定可能な範囲がX1[Hz]以下の範囲であるのに対して、携帯モードにおいては、指定可能な範囲がX2(<X1)[Hz]に制限される。なお、本体装置2がCPU81に加えてGPU(Graphics Processing Unit)を備える場合には、CPU81および/またはGPUの処理能力(すなわち、クロック周波数)の範囲が制限されてもよい。また、本実施形態においては、携帯モードにおいては、画像の描画能力(生成能力とも言える)が制限される。具体的には、携帯モードにおいては、本体装置2によって生成される画像の解像度(換言すれば、画素数)が、据置モードにおいて生成される画像の解像度よりも低くなる。上記(a)の制限によって、携帯モードにおいては、本体装置2において実行される処理量が制限されるので、本体装置2における消費電力を抑えることができる。
(b)冷却ファン96の動作を制限する設定
本実施形態においては、携帯モードにおいて、冷却ファン96の動作が制限される。具体的には、携帯モードにおいて冷却ファン96が駆動可能な回転数(換言すれば、回転速度)は、据置モードにおいて駆動可能な最大の回転数よりも低く制限される。例えば、携帯モードにおいては、冷却ファン96は、上記最大の回転数よりも小さい所定の回転数以下で動作するように制限される。上記(b)の制限によって、冷却ファン96の動作音を低減することができる。ここで、携帯モードにおいては、ユーザが本体装置2を自身の近くで使用することが想定される。これに関して、本実施形態においては、携帯モードにおいては冷却ファン96の動作音を低減することができるので、ユーザが動作音をうるさく感じる可能性を低減することができる。
一方、据置モードは、情報処理システム1が据置型機器として利用される際のモードである。据置モードにおいては、本体装置2が取得または生成した画像は、据置型モニタ6に表示される。また、本体装置2が取得または生成した音声は、据置型モニタ6が有するスピーカから出力される。また、据置モードにおいては、携帯モードにおける機能の抑制が解除される。すなわち、据置モードにおいては、上記(a)および(b)の制限は解除される。したがって、据置モードにおいては、本体装置2におけるプログラムは、CPU81の処理能力をより高い範囲で利用することが可能である。また、本体装置2は、携帯モードよりも高解像度の画像を据置型モニタ6に表示することが可能である。また、本体装置2は、冷却ファン96による冷却を携帯モードよりも効果的に行うことができる。
本実施形態においては、携帯モードと据置モードとの切替は、本体装置2がクレードル5に装着された場合、本体装置2は、動作モードを据置モードに設定する。一方、本体装置2がクレードル5から外された場合、本体装置2は、動作モードを携帯モードに設定する。
なお、他の実施形態においては、情報処理システム1は、据置型モニタ6と直接(すなわち、クレードル6を介さずに)通信を行うことが可能であってもよい。このとき、情報処理システム1は、画像および/または音声を据置型モニタ6へ直接送信してもよい。なお、情報処理システム1と据置型モニタ6との通信方法は任意であり、例えば、ケーブル(例えば、HDMIケーブル)による有線通信であってもよい。また、情報処理システム1と据置型モニタ6との通信方法は、無線通信であってもよい。情報処理システム1が据置型モニタ6と直接通信を行う場合、クレードル6は、例えば情報処理システム1を充電する用途で用いられてもよい。
次に、本体装置2と左コントローラ3および右コントローラ4との間で無線通信を行うための設定について説明する。上述のように、本実施形態においては、本体装置2と左コントローラ3および右コントローラ4との間で無線通信が行われることがある。そのため、本実施形態においては、本体装置2と左コントローラ3および右コントローラ4との間で無線通信を行うための設定(ペアリングとも言う)を行う。なお、本体装置2と一緒に提供(具体的には、販売)されるコントローラについては、提供時に無線通信の設定が完了していてもよい。
本実施形態においては、本体装置2は、左コントローラ3および右コントローラ4との間で無線通信に関する設定を行うための無線設定処理を実行し、一例として本体装置2から左コントローラ3または右コントローラ4が外されたことに応じて実行される。すなわち、本体装置2は、左コントローラ3または右コントローラ4が外されたことを検知し、外されたこと(「離脱」と呼ぶ)が検知されたことに応じて、無線設定処理の実行を開始する。
無線設定処理においては、CPU81は、離脱が検知されたコントローラに対して無線通信の設定が完了していない場合、当該コントローラとの無線通信を可能とするためのペアリング処理を実行する。本実施形態におけるペアリング処理は、従来のBluetooth(登録商標)の規格に従った通信技術におけるペアリング処理と同様であってよい。これによって、本体装置2と上記コントローラとの間でペアリングが行われ、無線通信が確立する。
そして、CPU81は、無線通信が確立されたコントローラの登録情報を更新する。すなわち、離脱が検知されたコントローラを一意に識別可能な識別情報(例えば、コントローラに対して固有に付される値(例えば、ID)を示す情報)とともに、無線通信情報を「設定済」を示す内容に更新して、当該コントローラの登録情報を自身の記憶部(例えばフラッシュメモリ84)に記憶する。
なお、情報処理システム1において、上記無線設定処理が実行される条件は任意であり、本体装置2からコントローラが外されることに限らない。例えば、他の実施形態においては、本体装置2にコントローラが装着されたことに応じて上記無線設定処理が実行されてもよい。また、他の実施形態においては、ユーザから所定の指示があったことに応じて上記設定処理が実行されてもよい。具体的には、この所定の指示は、メニュー画面において表示される所定の項目をユーザが選択することによって行われてもよいし、本体装置2やコントローラに設けられる所定のボタンを押下することによって行われてもよい。
また、上述した情報処理システムの利用態様では、1つの情報処理システム1を用いて、1以上のユーザが操作する態様を説明したが、本実施形態では、上述した利用態様における情報処理システムを複数用いることによって、より多人数の参加が可能な利用態様を実現することができる。上述したように、情報処理システム1は、閉ざされたローカルネットワークエリア内に配置された他の情報処理システム1との間で無線通信可能であり、複数の情報処理システム1の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能としている。ここで、他の情報処理システム1との間で可能としている「ローカル通信」は、インターネットを経由せず直接的に情報処理システム1同士を無線接続するアドホック通信である。以下に説明する利用態様では、上記ローカル通信を介して送受信される情報に基づいて、複数の情報処理システム1が情報処理(例えば、通信ゲーム)する例を説明する。
図15は、ローカル通信を介して送受信される情報に基づいて、複数の情報処理システム1が情報処理する様子の一例を示す図である。図15の例では、各情報処理システム1に含まれている本体装置2a、2b、および2cが、それぞれローカル通信を介して情報を送受信することによって、所定の仮想空間における通信ゲームを行っている。
本実施形態において、本体装置2aは、携帯モードで動作し、第1のユーザが操作する1つのコントローラ(具体的には、右コントローラ4a)からの操作データに基づいて、上記通信ゲームにおいて上記仮想空間内に配置された第1の仮想オブジェクトを制御している。そして、本体装置2aは、右コントローラ4aを用いた操作に基づいた情報を、ローカル通信を介して他の本体装置2bおよび2cへそれぞれ送信する。ここで、コントローラを用いた操作に基づいた情報とは、コントローラに対する操作を示す操作情報であってもよいし、コントローラに対する操作が反映される仮想オブジェクトや仮想空間に関する情報であってもよい。操作情報には、例えば各ボタンに対する操作を示すキーデータ、スティックに対する傾倒状態を示すスティックデータ、加速度センサおよび角速度センサ等の各センサの検出状態を示すセンサデータ等の少なくともいずれかが含まれていてもよいし、それらに所定の演算を加えた結果を示すデータであってもよい。仮想オブジェクトや仮想空間に関する情報は、例えば仮想オブジェクトの仮想空間における位置、方向、動作、状態等を示すオブジェクトデータ等であってもよい。また、本実施形態において、本体装置2aは、第1のユーザのみが操作をしているので、コントローラが本体装置2aに装着された状態であってもよい。
本体装置2bは、携帯モードで動作し、第2のユーザが操作する1つのコントローラ(具体的には、左コントローラ3b)からの操作データに基づいて、上記通信ゲームにおいて上記仮想空間内に配置された第2の仮想オブジェクトを制御するとともに、第3のユーザが操作する1つのコントローラ(具体的には、右コントローラ4b)からの操作データに基づいて、上記通信ゲームにおいて上記仮想空間内に配置された第3の仮想オブジェクトを制御している。そして、本体装置2bは、左コントローラ3bおよび右コントローラ4bそれぞれを用いた操作に基づいた情報を、ローカル通信を介して他の本体装置2aおよび2cへそれぞれ送信する。
本体装置2cは、据置モードで動作し、第4のユーザが操作する1つのコントローラ(具体的には、左コントローラ3c)からの操作データに基づいて、上記通信ゲームにおいて上記仮想空間内に配置された第4の仮想オブジェクトを制御するとともに、第5のユーザが操作する1つのコントローラ(具体的には、右コントローラ4c)からの操作データに基づいて、上記通信ゲームにおいて上記仮想空間内に配置された第5の仮想オブジェクトを制御している。そして、本体装置2cは、左コントローラ3cおよび右コントローラ4cそれぞれを用いた操作に基づいた情報を、ローカル通信を介して他の本体装置2aおよび2bへそれぞれ送信する。
本体装置2aは、第1のユーザが操作する右コントローラ4aからの操作データと本体装置2bおよび2cからそれぞれ受信した情報とに基づいて、上記仮想空間において第1〜第5の仮想オブジェクトを設定する。そして、本体装置2aは、右コントローラ4aによる操作によって制御されている第1の仮想オブジェクトに基づいた仮想空間画像(例えば、第1の仮想オブジェクトを含む画像や第1の仮想オブジェクトを一人称視点とした画像)を生成する。なお、本体装置2aは、携帯モードで動作しているため、生成した仮想空間画像を本体装置2aのディスプレイ12に表示する。
本体装置2bは、第2のユーザが操作する左コントローラ3bからの操作データと第3のユーザが操作する右コントローラ4bからの操作データと本体装置2aおよび2cからそれぞれ受信した情報とに基づいて、上記仮想空間において第1〜第5の仮想オブジェクトを設定する。そして、本体装置2bは、左コントローラ3bによる操作によって制御されている第2の仮想オブジェクトに基づいた仮想空間画像(例えば、第2の仮想オブジェクトを含む画像や第2の仮想オブジェクトを一人称視点とした画像)と、右コントローラ4bによる操作によって制御されている第3の仮想オブジェクトに基づいた仮想空間画像(例えば、第3の仮想オブジェクトを含む画像や第3の仮想オブジェクトを一人称視点とした画像)をそれぞれ生成する。なお、本体装置2bは、携帯モードで動作しており、左コントローラ3bおよび右コントローラ4bを用いた複数人(二人)プレイが行われているため、本体装置2bのディスプレイ12の表示画面に、画面分割によって生成した2つの場面の仮想空間画像を表示する。
本体装置2cは、第4のユーザが操作する左コントローラ3cからの操作データと第5のユーザが操作する右コントローラ4cからの操作データと本体装置2aおよび2bからそれぞれ受信した情報とに基づいて、上記仮想空間において第1〜第5の仮想オブジェクトを設定する。そして、本体装置2cは、左コントローラ3cによる操作によって制御されている第4の仮想オブジェクトに基づいた仮想空間画像(例えば、第4の仮想オブジェクトを含む画像や第4の仮想オブジェクトを一人称視点とした画像)と、右コントローラ4cによる操作によって制御されている第5の仮想オブジェクトに基づいた仮想空間画像(例えば、第5の仮想オブジェクトを含む画像や第5の仮想オブジェクトを一人称視点とした画像)をそれぞれ生成する。なお、本体装置2cは、据置モードで動作しており、左コントローラ3cおよび右コントローラ4cを用いた複数人(二人)プレイが行われているため、本体装置2cが載置されているクレードル5が接続された据置型モニタ6の表示画面に、画面分割によって生成した2つの場面の仮想空間画像を表示する。
このように、図15に示した複数の情報処理システム1による通信ゲームでは、複数人が操作している携帯型装置が参加しているため、例えば3つの本体装置2を用いて5人のユーザが参加可能となっている。つまり、携帯型装置である情報処理システム1(本体装置2)のローカル通信を用いた通信ゲームであっても、当該情報処理システム1(本体装置2)の数以上の多人数プレイが可能となる。上述の実施形態においては、3つの本体装置2を用いてそれぞれ異なる利用の対応で通信ゲームを行う例を説明した。他の例においては、本体装置2の数は任意である。さらに、それぞれの本体装置2に接続するコントローラの数や、携帯モードと据置モードのいずれを使うか等の利用の態様はいずれであってもよい。すなわち、参加人数も任意であるが、本体装置2の数以上の参加が可能である。
なお、上記複数の情報処理システム1による通信ゲームでは、ゲーム参加総人数、各機参加人数、およびゲーム参加装置数等に制限を設けてもかまわない。当該制限は、実施するゲーム内容や、ゲーム処理や通信処理の負荷等に応じて適宜設定することができる。第1の例として、上記通信ゲームに参加できるゲーム参加総人数の上限数に対して、上記通信ゲームに参加できる情報処理システム1の上限数を同じとしてもよい。例えば、ゲーム参加総人数の上限を8人、情報処理システム1の上限数を8台としてもよい。第2の例として、上記通信ゲームに参加できる情報処理システム1の上限数より、上記通信ゲームに参加できるゲーム参加総人数の上限数を多くとしてもよい。例えば、ゲーム参加総人数の上限を12人、情報処理システム1の上限数を8台としてもよい。第3の例として、上記通信ゲームに参加できるゲーム参加総人数の上限数より、上記通信ゲームに参加する情報処理システム1各機において参加できる各機参加人数の上限数を少なく(例えば、2人や4人)としてもよい。例えば、ゲーム参加総人数の上限を8人、各機参加人数を2人や4人までとしてもよい。
次に、1以上の情報処理システム1による複数人プレイが可能なゲームを行う際の動作について説明する。図16〜図19は、1以上の情報処理システム1を用いて複数人プレイするゲームを行う場合の各形態における動作の流れの一例を示す図である。なお、下記の例で説明するゲームにおける人数および台数制限は、通信ゲームに参加できるゲーム参加総人数の上限数が8人、通信ゲームに参加できる情報処理システム1の上限数が8台(すなわち、ゲーム参加総人数の上限値とゲーム参加装置数の上限値とが等しい)とし、通信ゲームに参加する各機参加人数の上限数が2人とする。また、自機のみを用いて複数人プレイをする場合のゲーム参加総人数の上限値は、携帯モードにおいて2人、据置モードで4人とする。
図16において、情報処理システム1は、表示画面(携帯モードの場合は本体装置2のディスプレイ12、据置モードの場合は据置型モニタ6の表示画面)に、複数人プレイが可能なゲームに関するトップメニューを表示する。ここで、トップメニューは、上記ゲームをひとりでプレイするか複数人でプレイするかを情報処理システム1のユーザが選択する画面であり、ここでは当該ユーザの操作に応じて複数人プレイ(図16においては「みんなでプレイ」)が選択される場合を考える。
複数人プレイが選択された場合、上記表示画面には、プレイスタイル選択画面が表示される。ここで、プレイスタイル選択画面は、どのような利用態様(プレイスタイル)で複数人プレイを行うかをユーザに選択させる操作を促すための画面であり、情報処理システム1の動作モード(すなわち携帯モードまたは据置モード)によって異なる選択肢が表示される。例えば、情報処理システム1が据置モードで動作している場合、4つのプレイスタイルが選択肢として提示される。具体的には、据置モードの場合、自機のみを用いて2人でプレイするプレイスタイルを選択するアイコン(図16のプレイスタイル選択(据置モード)図における左上のアイコン)と、自機のみを用いて3人以上でプレイするプレイスタイルを選択するアイコン(図16のプレイスタイル選択(据置モード)図における右上のアイコン:ここでは4人でプレイしている様子を表すアイコン)と、他機と通信しながら自機を1人で用いるプレイスタイルを選択するアイコン(図16のプレイスタイル選択(据置モード)図における左下のアイコン)と、他機と通信しながら自機を2人で用いるプレイスタイルを選択するアイコン(図16のプレイスタイル選択(据置モード)図における右下のアイコン)とが表示される。一方、携帯モードの場合、自機のみを用いて2人でプレイするプレイスタイルを選択するアイコン(図16のプレイスタイル選択(携帯モード)図における右上のアイコン)と、他機と通信しながら自機を1人で用いるプレイスタイルを選択するアイコンと(図16のプレイスタイル選択(携帯モード)図における左下のアイコン)、他機と通信しながら自機を2人で用いるプレイスタイルを選択するアイコン(図16のプレイスタイル選択(携帯モード)図における右下のアイコン)とが表示される。ここで、携帯モードの場合に、自機のみを用いて3人以上でプレイするプレイスタイルを選択するアイコン(図16のプレイスタイル選択(携帯モード)図における右上のアイコン)が、選択不可な状態で表示される。これは、携帯モードの場合、自機のみを用いて複数人プレイをする場合のゲーム参加総人数の上限値が2人であり、自機のみを用いた3人以上のプレイができないために、ユーザによる選択ができないように設定されている。なお、上記アイコンは、表示されない態様でもよいが、選択不可な状態で表示されることによって、自機のみを用いた3人以上のプレイが選択できないことがユーザにとって分かり易くなる。
携帯モードまたは据置モードにおいて、通信プレイ(すなわち、他機と通信しながら自機を用いるプレイスタイル)が選択された場合、上記表示画面には、ロビー選択画面が表示される。ロビー選択画面は、上記ゲームを行うためにその時点で設定されているユーザグループが示される。具体的な一例として、ユーザグループを設定している親機を操作しているユーザ名(図16においては、名前Aと名前M)と、当該親機のユーザグループ毎の参加人数と参加可能人数とが示されている。図16の例においては、名前Aのユーザグループに4人参加して残り4人参加可能であり、名前Mのユーザグループに2人参加して残り6人参加可能である。上記ロビー選択画面が表示されている情報処理システム1は、ユーザが参加希望するユーザグループを選択する操作を行うことによって、子機となって当該ユーザグループに参加要求することができる。なお、図16で示すように、情報処理システム1が複数のユーザによって操作されている場合であっても、ロビー選択画面は、表示画面を分割することなく表示される。
なお、上記ロビー選択画面は、参加要求可能なユーザグループのみ表示されてもいいし、参加不可能なユーザグループも表示されてもよい。参加不可能なユーザグループとは、例えば、(i)通信ゲームに参加できるゲーム参加総人数の上限数に達している、(ii)参加要求を認めると当該上限数を超えてしまう、(iii)既に通信ゲームが開始されている等が想定される。参加不可能なユーザグループを表示する場合、ユーザが選択できないことを示してもよいし、ユーザによって参加不可能なユーザグループが選択された場合に参加できない旨を報知してもよい。例えば、上記(i)や(ii)のケースでは、参加要求する自機において参加要求可否を判定して参加できない旨を報知することも考えられるが、親機に参加要求した後に当該親機から参加不可である旨の返信を受信することに応じて、参加できない旨を報知することが考えられる。また、(ii)のケースでは、自機を操作しているユーザ数によって、判定結果が異なることが考えられる。具体的には、ユーザグループの参加人数が7人に達している場合、参加要求する情報処理システム1を1人で操作している場合は参加可能であるが、参加要求する情報処理システム1を2人で操作している場合は参加不可能となる。このような場合、選択されたプレイスタイルに基づいて、参加要求する自機において参加要求可否を判定してもよいし、参加要求人数とともに親機に参加要求を行って当該親機において参加可否を判定してもよい。
また、図16に示したロビー選択画面では、参加人数を示す標識(塗りつぶし図柄)と参加可能人数を示す標識(白抜き図柄)とを人数に応じて並列表示することによって、ユーザグループ毎の参加人数と参加可能人数とを示しているが、他の態様によってユーザグループ毎の参加人数および/または参加可能人数を示してもよい。例えば、ユーザグループ毎の参加人数と参加可能人数とを単に数値で示してもよいし、目盛り(グラフ表示)で示してもよい。また、ユーザグループ毎の参加人数のみまたは参加可能人数のみを数値または画像で表示してもよい。
上記ロビー選択画面は、上記ゲームを行うために自機がユーザグループを作成する選択肢(「グループをつくる」)も示される。上記ロビー選択画面が表示されている情報処理システム1は、ユーザがユーザグループを作成する選択肢を選択する操作を行うことによって、親機となって新たにユーザグループを生成することができる。
ユーザが参加希望するユーザグループを選択して当該ユーザグループへの参加が認められた場合、参加要求した情報処理システム1は、子機となって以降のゲーム処理が進められる。図17において、ユーザグループへの参加が認められた情報処理システム1の表示画面には、子機待機画面が表示される。子機待機画面は、子機となった情報処理システム1が参加しているユーザグループの状況が示される。例えば、子機待機画面は、上記ユーザグループの親機を操作しているユーザ名(図17においては名前A)と、当該ユーザグループの子機を操作しているユーザ名(図17においては名前B−Dと名前E1およびE2)とが表示される。ここで、図17において表示されている子機のユーザ名E1およびユーザ名E2は、何れも当該子機待機画面を表示している自機のユーザ名を示しており、他機と通信しながら自機を2人で用いるプレイスタイルが選択されているために、2人のユーザ名が自機のユーザ名として登録されている。このように、本実施形態では、参加する子機が複数のユーザによって操作されている場合、当該子機がユーザグループに参加することによって当該複数のユーザが同時に当該ユーザグループに参加することができる。なお、子機待機画面に表示される子機のユーザ名は、自機を操作しているユーザ名を含んでもよいし、含まなくてもよい。また、上記子機待機画面では、現在の状態が上記ユーザグループにさらに参加するユーザを募集している状態であることが示されているため、当該子機待機画面を見るユーザは、ユーザグループの参加者とともに現時点の進行状況を知ることができる。また、新たな子機がユーザグループに参加した場合には、ユーザ名が追加されて表示が更新されるようにしてもよい。また、この画面が表示されている場面において、自機を操作するユーザが1人であるとき、自機を操作するユーザの追加を受け付ける処理が可能となっていてもよい。この場合、子機が追加された場合と同様に、ユーザ名が追加されて表示が更新されるようにしてもよい。
情報処理システム1が参加しているユーザグループの親機が、当該ユーザグループに参加するユーザの募集を締め切った場合、当該情報処理システム1の表示画面には、子機ゲーム設定画面が表示される。子機ゲーム設定画面は、これから開始されるゲームにおける各種設定内容を示す画面である。例えば、子機ゲーム設定画面は、選択されているゲームフィールド、ゲームルールの説明、構成チーム状況、使用するゲームキャラクタの能力等が表示される。なお、上記各種設定内容は、親機を操作するユーザによって変更可能にしてもよいが、子機を操作するユーザによって変更可能な項目が含まれていてもよい。何れの場合であっても、上記各種設定内容の変更が行われた場合は、参加しているユーザグループにおける装置間において当該変更内容を示す情報が送受信され、当該情報に応じて子機ゲーム設定画面に表示されている内容が適宜更新されてもよい。
情報処理システム1が参加しているユーザグループによる通信ゲームが開始された場合、当該通信ゲームを行うためのゲーム画面を情報処理システム1の表示画面に表示して、当該通信ゲームが進められる。この通信ゲームが行われる際は、当該通信ゲームに参加している各情報処理システム1それぞれが、当該情報処理システム1を操作しているそれぞれのコントローラを用いた操作に基づいた情報を、ローカル通信を介して送受信する。ここで、コントローラを用いた操作に基づいた情報とは、ゲームの種類に応じてどのような情報であってもよく、例えば、コントローラを用いた操作そのものの操作情報(例えば、各ボタンに対する操作を示すキーデータ、スティックに対する傾倒状態を示すスティックデータ、加速度センサおよび角速度センサ等の各センサの検出状態を示すセンサデータ等)でもよい。また、操作情報に所定の演算を行った結果のデータでもよい。また、コントローラを用いて操作される仮想オブジェクトに関するオブジェクト情報(仮想オブジェクトの仮想空間における位置、方向、動作、状態等を示すオブジェクトデータ等)等でもよい。さらに、それらのいずれか複数または全てであってもよい。
なお、図17に示す実施形態においては、上記ユーザグループに属しているユーザ全員それぞれのための画像(例えば、当該ユーザ全員がそれぞれ制御している仮想オブジェクトを含む画像)ではなく、情報処理システム1を操作している自機ユーザのための画像が、情報処理システム1の表示画面を必要に応じて分割して表示される。例えば、情報処理システム1をユーザE1およびユーザE2が操作している場合、情報処理システム1の表示画面が2分割されて、一方の分割表示領域にユーザE1の操作によって制御されている仮想オブジェクトを含む画像や当該仮想オブジェクトを一人称視点としたゲーム画像を表示し、他方の分割表示領域にユーザE2の操作によって制御されている仮想オブジェクトを含む画像や当該仮想オブジェクトを一人称視点としたゲーム画像を表示する。したがって、本実施形態は、ユーザ毎に表示対象が異なるゲームに適している。ただし、他の実施形態のゲームにおいては、ユーザグループ全員のための共通の画面が表示されてもよい。また、ユーザグループ全員に共通の画面でない場合でも、自機を2人で使う場合に、当該2人に対して共通の画面が表示される態様でもよい。
図16におけるロビー選択画面において、ユーザがゲームを行うためにユーザグループを新たに作成する選択肢を選択した場合、グループ作成を選択した情報処理システム1は、親機となって以降のゲーム処理が進められる。図18において、新たなユーザグループを作成した情報処理システム1の表示画面には、親機待機画面が表示される。親機待機画面は、親機となった情報処理システム1(すなわち、自機)が作成したユーザグループの状況が示される。例えば、親機待機画面は、上記ユーザグループの親機を操作しているユーザ名(自機であり、図18においては名前A1)と、当該ユーザグループにおける他のユーザ名(図18においては名前A2)とが表示される。ここで、図18において表示されているユーザ名A1およびユーザ名A2は、何れも当該親機待機画面を表示している自機のユーザ名を示しており、他機と通信しながら自機を2人で用いるプレイスタイルが選択されているために、2人のユーザ名が自機のユーザ名として登録されている。このように、本実施形態では、親機の情報処理システム1が複数のユーザによって操作されている場合、当該親機がユーザグループを作成することによって、いずれかのユーザを親機のユーザとして、当該複数のユーザが同時に当該ユーザグループに参加することができる。なお、親機待機画面に表示されるユーザ名は、自機を操作しているユーザ名を含んでもよいし、含まなくてもよい。また、上記親機待機画面では、現在の状態が上記ユーザグループにさらに参加するユーザを募集している状態であることが示されているため、当該親機待機画面を見るユーザは、現時点でユーザグループに参加しているユーザ名とともに現時点の進行状況を知ることができる。また、自機を操作するユーザが1人であるとき、自機を操作するユーザの追加を受け付ける処理が可能となっていてもよい。
上記親機待機画面は、新たに生成したユーザグループに参加するユーザの募集を締め切る選択肢(「しめきる」)も示される。親機となった情報処理システム1は、ユーザが締め切る選択肢を選択する操作を行うことによって、それ以上の参加者を増やすことなく、ゲーム開始へ進めることができる。
ユーザグループの親機のユーザが、当該ユーザグループに参加するユーザの募集を締め切る操作を行った場合、当該情報処理システム1の表示画面には、親機ゲーム設定画面が表示される。親機ゲーム設定画面は、これから開始されるゲームにおける各種設定内容を示す画面である。例えば、親機ゲーム設定画面は、選択されているゲームフィールド、ゲームルールの説明、構成チーム状況、使用するゲームキャラクタの能力等が表示される。なお、上記各種設定内容は、親機を操作するユーザによって少なくとも1つが変更可能であってもよいが、子機を操作するユーザによって変更可能な項目が含まれていてもよい。何れの場合であっても、上記各種設定内容の変更が行われた場合は、参加しているユーザグループにおける装置間において当該変更内容を示す情報が送受信され、当該情報に応じて親機ゲーム設定画面に表示されている内容が適宜更新されてもよい。
新たに作成したユーザグループによる通信ゲームが開始された場合、当該通信ゲームを行うためのゲーム画面を情報処理システム1の表示画面に表示して、当該通信ゲームが進められる。なお、通信ゲームの開始については、ユーザグループの親機のユーザが、ゲームを開始する操作(例えば、親機ゲーム設定画面において表示されたゲーム開始を指示知る選択肢を選択する操作)を行うことに応じて行われてもよいし、参加者の募集を締め切った後の所定時間の経過や所定条件を満たしたこと等に応じて自動的に行われてもよい。また、上述したように、通信ゲームが行われる際は、当該通信ゲームに参加している各情報処理システム1それぞれが、当該情報処理システム1を操作しているコントローラを用いた操作に基づいた情報を、ローカル通信を介して送受信する。
なお、図18に示すように、本実施形態においては、親機の情報処理システム1においても、上記ユーザグループに属しているユーザ全員それぞれのための画像ではなく、情報処理システム1を操作している自機ユーザのための画像が、情報処理システム1の表示画面が必要に応じて分割されて表示される。例えば、親機の情報処理システム1をユーザA1およびユーザA2が操作している場合、情報処理システム1の表示画面が2分割されて、一方の分割表示領域にユーザA1の操作によって制御されている仮想オブジェクトを含む画像や当該仮想オブジェクトを一人称視点としたゲーム画像を表示し、他方の分割表示領域にユーザA2の操作によって制御されている仮想オブジェクトを含む画像や当該仮想オブジェクトを一人称視点としたゲーム画像を表示する。ただし、他の実施形態のゲームにおいては、ユーザグループ全員のための共通の画面が表示されてもよい。また、ユーザグループ全員に共通の画面でない場合でも、自機を2人で使う場合に、当該2人に対して共通の画面が表示される態様でもよい。
図16に示す据置モードのプレイスタイル選択画面において、自機のみを用いて3人以上でプレイするプレイスタイルが選択された場合、各種ゲーム設定が行われた後、図19に示すように、ゲームを行うためのゲーム画面が情報処理システム1に接続された据置型モニタ6に表示される。ここで、据置型モニタ6に表示される表示画面は、図13を用いて説明したように、操作するユーザの数に応じて分割される。例えば、情報処理システム1は、据置型モニタ6の表示領域を4つに分割して使用し、ユーザのための画像(例えば、当該ユーザの操作によって制御されている仮想オブジェクトを含む画像や当該仮想オブジェクトを一人称視点としたゲーム画像)を、それぞれの分割表示領域に表示する。
このように据置型モニタ6に表示される表示画面が4つに分割されて、3人以上のユーザで複数人プレイしている状態で、クレードル5から本体装置2が外された場合を考える。この場合、上述したように、情報処理システム1は、据置モードから携帯モードに切り替わり、据置モードにおいて3人以上でプレイしているゲームを携帯モードでプレイする状態となる。その一方で、本実施形態において、自機のみを用いて複数人プレイをする場合のゲーム参加総人数の上限値は、携帯モードにおいて2人、据置モードで4人となっている。したがって、上述したようなゲーム中に据置モードから携帯モードに切り替えた場合、携帯モードにおけるゲーム参加総人数を超えてしまうことになる。したがって、情報処理システム1は、ゲーム中に据置モードから携帯モードに切り替えられることによってゲーム参加総人数を超えてしまう状態になった場合、当該ゲームを一旦中断した上で、本体装置2のディスプレイ12に据置モードに戻すように促す情報を表示する。
そして、上記ゲーム中断状態において、クレードル5に本体装置2が再び載置された場合、情報処理システム1は、携帯モードから据置モードに復帰させて当該中断していたゲームを再開する。すなわち、情報処理システム1は、据置モードに復帰することに応じて、本体装置2のディスプレイ12を未表示にするとともに、据置型モニタ6の表示領域が4つに分割され、ユーザのための画像をそれぞれの分割表示領域に表示して、ゲームを(例えば、中断していた状態から)再開させる。
なお、図16〜図19に示した情報処理システム1における複数人プレイが可能なゲームを行う際の動作の一例では、複数の情報処理システム1間で通信ゲームを行う場合であっても自機ユーザのためのゲーム画像が自機の表示画面に表示される。しかしながら、他機ユーザのためのゲーム画像も自機の表示画面に表示してもかまわない。この場合、自機のユーザ数に他機のユーザ数を加えた人数に応じて自機の表示画面が分割され、当該分割表示領域に自機のユーザのための画像および他機のユーザのための画像をそれぞれ表示してもよい。
また、上述したゲーム中における据置モードから携帯モードへの切り替えに起因するゲームを中断する処理は、上述した通信ゲーム中に行ってもかまわない。図16〜図19に示した情報処理システム1における複数人プレイが可能なゲームを行う際の動作の一例では、通信ゲームに参加する各機参加人数の上限数が2人に設定されているため、通信ゲームを開始する前から当該通信ゲームに参加する情報処理システム1を操作するユーザ数が携帯モードであっても据置モードであっても2人に制限されている。つまり、上記動作の一例では、通信ゲーム中に据置モードから携帯モードへの切り替えが行われたとしても、上述したような人数制限を超えるようなことがない。しかしながら、通信ゲームに参加する各機参加人数の上限数を4人として、各機において複数人プレイをする場合の当該各機のゲーム参加人数の上限値を、携帯モードにおいて2人、据置モードで4人とした場合、3人以上の据置モードで通信ゲームに参加した情報処理システム1において上述した据置モードから携帯モードへの切り替えが当該通信ゲーム中に行われると、同様に携帯モードにおける人数制限を超えることが生じる。このような場合、上記通信ゲームに参加している全ての情報処理システム1においてゲームを中断してもいいし、当該通信ゲーム中に人数制限を越えた情報処理システム1のみ当該通信ゲームを中断または当該通信ゲームを終了させてもよい。
次に、図20〜図24を参照して、本実施形態において情報処理システム1で実行される具体的な処理の一例について説明する。図20は、本実施形態において本体装置2のDRAM85に設定されるデータ領域の一例を示す図である。なお、DRAM85には、図20に示すデータの他、他の処理で用いられるデータも記憶されるが、詳細な説明を省略する。
DRAM85のプログラム記憶領域には、情報処理システム1で実行される各種プログラムPaが記憶される。本実施形態においては、各種プログラムPaは、上述した他の情報処理システム1とローカル通信を行うための通信プログラムや、左コントローラ3および右コントローラ4との間で無線通信するための通信プログラムや、左コントローラ3および/または右コントローラ4や他の情報処理システム1から取得したデータに基づいた情報処理(例えば、ゲーム処理)を行うためのアプリケーションプログラム、クレードル5に対する本体装置2の着脱に応じて動作モードを切り替えるモード設定プログラム等が記憶される。なお、各種プログラムPaは、フラッシュメモリ84に予め記憶されていてもよいし、情報処理システム1に着脱可能な記憶媒体(例えば、第1スロット23に装着された第1の種類の記憶媒体、第2スロット24に装着された第2の種類の記憶媒体)から取得されてDRAM85に記憶されてもよいし、インターネット等のネットワークを介して他の装置から取得されてDRAM85に記憶されてもよい。CPU81は、DRAM85に記憶された各種プログラムPaを実行する。
また、DRAM85のデータ記憶領域には、情報処理システム1において実行される通信処理や情報処理等の処理において用いられる各種のデータが記憶される。本実施形態においては、DRAM85には、無線通信設定データDa、ローカル通信設定データDb、操作データDc、受信データDd、送信データDe、設定モードデータDf、グループ情報データDg、ゲーム設定情報データDh、および画像データDi等が記憶される。
無線通信設定データDaは、左コントローラ3および右コントローラ4と無線通信するためのデータである。例えば、無線通信設定データDaは、各コントローラに対して固有に付される値(例えば、ID)を示す情報、左コントローラであるか右コントローラであるかを示す情報、左コントローラ3および右コントローラ4との無線通信に関する接続設定(ペアリング)に関する無線通信情報、左コントローラ3および右コントローラ4が本体装置2に装着されているか否かを示す情報等を示すデータを含んでいる。なお、無線通信設定データDaは、上述した無線設定処理が行われることによって設定されるが、後述する情報処理システム1で実行される処理が行われる前に無線設定処理が行われていてもよいし、当該処理中に無線設定処理が適宜行われてもよい。
ローカル通信設定データDbは、他の情報処理システム1との間で直接無線通信するためのデータであり、他の情報処理システム1との間でいわゆる「ローカル通信」するためのデータである。例えば、ローカル通信設定データDbは、情報処理システム1同士をアドホック通信によって無線通信するためのデータを含んでおり、ローカル通信可能な他の情報処理システム1に対して固有に付されている値を示す情報等のデータを含んでいる。なお、ローカル通信設定データDbは、後述する情報処理システム1で実行される処理が行われる前に、アドホック通信によって接続可能な他の情報処理システム1をサーチしてユーザの入力操作によりお互いが「ローカル通信」を行うことを許容する場合に設定されてもよいし、当該処理中に設定されてもよい。
操作データDcは、左コントローラ3および/または右コントローラ4から適宜取得した操作データである。本実施形態では、無線通信によって左コントローラ3および/または右コントローラ4から所定周期で操作データが送信されており、当該受信した操作データを用いて操作データDcが適宜更新される。なお、操作データDcの更新周期は、後述する情報処理システム1で実行される処理の周期である1フレーム毎に更新されてもよいし、上記無線通信によって操作データが送信される周期毎に更新されてもよい。
受信データDdは、他の情報処理システム1から「ローカル通信」を介して受信したデータである。送信データDeは、他の情報処理システム1へ「ローカル通信」を介して送信するためのデータである。
設定モードデータDfは、情報処理システム1の動作モードが携帯モードであるか据置モードであるかを示すデータである。本実施形態では、後述する情報処理システム1で実行される処理が行われる前または当該処理中において、本体装置2がクレードル5に取り付けられているか否かによって適宜情報処理システム1の動作モードが判定(例えば、上記処理のバップグラウンドで判定)されており、当該判定結果に応じて設定モードデータDfが更新されている。
グループ情報データDgは、情報処理システム1間で通信ゲームをする際に設定されるユーザグループに関する情報を示すデータである。例えば、グループ情報データDgは、ユーザグループの親機および当該親機のユーザを示す情報、ユーザグループに参加している子機および当該子機のユーザを示す情報、ユーザグループへの参加可否を示す情報(ゲーム中のために参加できないことを示す情報を含む)、ユーザグループの参加人数や参加可能人数を示す情報、生成されているユーザグループがプレイ対象としているゲームアプリケーションに関する情報等のデータを含んでいる。
ゲーム設定情報データDhは、ゲームを行う際の各種設定内容を示すデータである。画像データDiは、ゲームの際に本体装置2のディスプレイ12や据置型モニタ6の表示画面に画像を表示するためのデータである。
次に、本実施形態における情報処理(ゲーム処理)の詳細な一例を説明する。図21は、情報処理システム1で実行される情報処理においてロビー(グループ)を設定するまでの処理の一例を示すフローチャートである。図22は、情報処理システム1で実行される情報処理において当該情報処理システム1が通信ゲームにおける子機となった場合の処理の一例を示すフローチャートである。図23は、情報処理システム1で実行される情報処理において当該情報処理システム1が通信ゲームにおける親機となった場合の処理の一例を示すフローチャートである。図24は、情報処理システム1で実行される情報処理において他の情報処理システムとローカル通信することなく行われる処理の一例を示すフローチャートである。図25は、図24におけるステップ264およびステップ267において行われるモード確認処理の詳細の一例を示すサブルーチンである。本実施形態においては、図21〜図25に示す一連の処理は、CPU81が各種プログラムPaに含まれる通信プログラム、モード設定プログラム、所定のアプリケーションプログラム(ゲームプログラム)を実行することによって行われる。また、図21〜図25に示す情報処理が開始されるタイミングは任意である。また、図21〜図25では、CPU81が実行する各ステップを「S」と略称する。
なお、図21〜図25に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて(または代えて)別の処理が実行されてもよい。また、本実施形態では、上記フローチャートの各ステップの処理をCPU81が実行するものとして説明するが、上記フローチャートにおける一部のステップの処理を、CPU81以外のプロセッサや専用回路が実行するようにしてもよい。また、本体装置2において実行される処理の一部は、本体装置2と通信可能な他の情報処理装置(例えば、本体装置2とネットワークを介して通信可能なサーバ)によって実行されてもよい。すなわち、図21〜図27に示す各処理は、本体装置2を含む複数の情報処理装置が協働することによって実行されてもよい。
また、本実施形態においては、無線通信設定データDa、ローカル通信設定データDb、および設定モードデータDfをそれぞれ設定する処理が、図21〜図25に示すフローチャートにおける処理より先に行われていてもよいし、当該フローチャートによる処理と並行して(バックグラウンドで)行われているものとする。また、操作データDcを更新する処理についても、図21〜図25に示すフローチャートにおける処理と並行して(バックグラウンドで)行われているものとする。つまり、操作データDcおよび設定モードデータDfは、図21〜図25に示すフローチャートにおいて処理ステップがなくても、当該フローチャートにおける処理と並行して設定処理が行われることによって適宜更新されるものとする。なお、上述したように、図21〜図25に示すフローチャートにおける処理より先または当該フローチャートにおける処理中に設定モードの変更(すなわち、携帯モードから据置モードへの変更、または据置モードから携帯モードへの変更)が行われた場合、当該処理に基づいた画像を表示する表示画面も当該設定モードの変更に応じて切り替えられる。
図21において、CPU81は、情報処理(例えば、ゲーム処理)における初期設定を行い(ステップ201)、次のステップに処理を進める。例えば、上記初期設定では、CPU81は、以下に説明する処理を行うためのパラメータを初期化する。また、上記初期設定では、CPU81は、無線通信設定データDa、ローカル通信設定データDb、および設定モードデータDfをそれぞれ設定する処理が既に行われている場合、当該処理結果に基づいて、無線通信設定データDa、ローカル通信設定データDb、および設定モードデータDfをそれぞれ設定する。
次に、CPU81は、ゲームのプレイ人数を選択するためのトップメニュー(図16参照)を表示して、ユーザの選択を促す(ステップ202)。本実施形態では、複数人プレイに限定して説明を進めるため、ここでは複数人プレイ(「みんなでプレイ」)が選択されたとして、次のステップに処理を進める。
次に、CPU81は、情報処理システム1の動作モードが携帯モードか否かを判定する(ステップ203)。例えば、CPU81は、設定モードデータDfを参照して、情報処理システム1の動作モードが携帯モードか否かを判定する。そして、CPU81は、情報処理システム1の動作モードが携帯モードである場合、ステップ204に処理を進める。一方、CPU81は、情報処理システム1の動作モードが据置モードである場合、ステップ205に処理を進める。
ステップ204において、CPU81は、携帯モード用のプレイスタイル選択画面(図16参照)を本体装置2のディスプレイ12に表示して、どのような利用態様(プレイスタイル)で複数人プレイを行うか選択することをユーザに促す。一方、ステップ205において、CPU81は、据置モード用のプレイスタイル選択画面(図16参照)を本体装置2のディスプレイ12に表示して、どのような利用態様(プレイスタイル)で複数人プレイを行うか選択することをユーザに促す。次に、CPU81は、操作データDcを参照して、ユーザがいずかのプレイスタイルを選択する操作を行ったか否かを判定する(ステップ206)。そして、CPU81は、ユーザがいずれかのプレイスタイルを選択する操作を行った場合、ステップ207に処理を進める。一方、CPU81は、ユーザがプレイスタイルを選択する操作を行っていない場合、上記ステップ203に戻って処理を繰り返す。
ステップ207において、CPU81は、ユーザが通信プレイを行うプレイスタイル(すなわち、他機と通信しながら自機を用いるプレイスタイル)を選択したか否かを判定する。そして、CPU81は、ユーザが通信プレイを行うプレイスタイルを選択した場合、ステップ208に処理を進める。一方、CPU81は、通信プレイをせずに自機のみで複数人プレイするプレイスタイルを選択した場合、ステップ261(図24参照)に処理を進める。
ステップ208において、CPU81は、ローカル通信設定データDbに基づいて、ローカル通信可能な他の情報処理システム1からグループ情報を受信して、次のステップに処理を進める。例えば、後述により明らかとなるが、ユーザグループを作成した親機は、定期的に当該ユーザグループの内容(例えば、ユーザ人数やユーザ情報等)を示すグループ情報を無線送信している。上記ステップ208において、CPU81は、上記親機から無線送信されたグループ情報を受信して、受信データDdに格納するとともに、グループ情報データDgを更新する。
次に、CPU81は、上記ステップ208において受信したグループ情報に基づいて、ロビー選択画面(図16参照)を表示画面(携帯モードの場合は本体装置2のディスプレイ12、据置モードの場合は据置型モニタ6の表示画面)に表示して(ステップ209)、次のステップに処理を進める。例えば、CPU81は、グループ情報データDgに基づいて、上記表示画面を分割使用することなく、ユーザグループを設定している親機を操作しているユーザ名、当該親機のユーザグループ毎の参加人数と参加可能人数、ユーザグループ毎に参加可否を識別する画像、ユーザグループを新たに作成する選択肢等を表示する。ここで、CPU81は、グループ情報データDgに基づいて、ユーザグループ毎に参加可否を判定し、当該判定結果に基づいて参加可否を識別する画像を付与して上記表示画面に表示してもかまわない。また、CPU81は、グループ情報データDgに基づいて、締め切り情報が送信されたユーザグループがある場合、当該ユーザグループに対して参加不可であることを識別する画像を付与して上記表示画面に表示してもかまわない。
次に、CPU81は、操作データDcを参照して、ユーザが既に設定されている参加可能なユーザグループへの参加を選択する操作を行ったか否かを判定する(ステップ210)。そして、CPU81は、参加可能なユーザグループへの参加を選択する操作が行われた場合、ステップ221(図22参照)に処理を進める。一方、CPU81は、参加可能なユーザグループへの参加を選択する操作が行われていない場合、ステップ211に処理を進める。
ステップ211において、CPU81は、操作データDcを参照して、ユーザが新たにユーザグループを作成することを選択する操作を行ったか否かを判定する。そして、CPU81は、新たにユーザグループを作成することを選択する操作が行われた場合、ステップ241(図23参照)に処理を進める。一方、CPU81は、新たにユーザグループを作成することを選択する操作が行われていない場合、上記ステップ208に戻って処理を繰り返す。
図22において、参加可能なユーザグループへの参加を選択する操作が行われた場合、当該操作が行われた情報処理システム1は、当該ユーザグループにおける子機となる。子機となった情報処理システム1のCPU81は、ローカル通信設定データDbに基づいて、参加要求するユーザグループの親機に当該ユーザグループへの参加情報を送信し(ステップ221)、次のステップに処理を進める。ここで、上記参加情報は、ユーザグループへの参加を希望する旨の情報、参加要求する装置の識別情報、参加要求する装置を操作しているユーザ人数、参加要求する装置を操作しているユーザそれぞれのユーザ情報等を含んでおり、送信データDeに一旦格納された後、送信周期が到来することに応じて送信データDeに格納されているデータが参加要求するユーザグループの親機に無線送信される。なお、後述により明らかとなるが、参加要求を他の情報処理システム1(親機)へ送信した場合、当該他の情報処理システム1から参加不可である旨の返信が送信されることがある。この場合、CPU81は、上記ステップ208に戻ってロビー選択処理をやり直す。
次に、CPU81は、ローカル通信設定データDbに基づいて、参加しているユーザグループの親機からグループ情報を受信し(ステップ222)、次のステップに処理を進める。例えば、後述により明らかとなるが、ユーザグループを作成した親機は、定期的に当該ユーザグループの内容を示すグループ情報を無線送信している。上記ステップ222において、CPU81は、参加しているユーザグループの親機から無線送信されたグループ情報を受信して、受信データDdに格納するとともに、グループ情報データDgを更新する。
次に、CPU81は、上記ステップ222において受信したグループ情報に基づいて、子機待機画面(図17参照)を表示画面(携帯モードの場合は本体装置2のディスプレイ12、据置モードの場合は据置型モニタ6の表示画面)に表示して(ステップ223)、次のステップに処理を進める。例えば、CPU81は、グループ情報データDgに基づいて、上記表示画面を分割使用することなく、参加しているユーザグループを設定している親機を操作しているユーザ名、当該ユーザグループの子機を操作しているユーザ人数およびユーザ名等とともに、当該ユーザグループにさらに参加するユーザを募集している状態であることを表示する。
次に、CPU81は、参加しているユーザグループへの参加者募集が締め切られたか否かを判定する(ステップ224)。例えば、後述により明らかとなるが、ユーザグループを作成した親機は、参加者募集を締め切った場合、当該募集を締め切ったことを示す締め切り情報を含むグループ情報を無線送信している。CPU81は、当該締め切り情報を参加しているユーザグループの親機から受信した場合、ステップ225に処理を進める。一方、CPU81は、当該締め切り情報を参加しているユーザグループの親機から受信していない場合、上記ステップ222に戻って処理を繰り返す。
ステップ225において、CPU81は、ローカル通信設定データDbに基づいて、参加しているユーザグループの親機からゲーム設定情報を受信し、次のステップに処理を進める。例えば、後述により明らかとなるが、ユーザグループを作成した親機は、定期的に当該ユーザグループで行われるゲームの設定内容を示すゲーム設定情報を無線送信している。上記ステップ225において、CPU81は、参加しているユーザグループの親機から無線送信されたゲーム設定情報を受信して、受信データDdに格納するとともに、ゲーム設定情報データDhを更新する。
次に、CPU81は、上記ステップ225において受信したゲーム設定情報に基づいて、子機ゲーム設定画面(図17参照)を表示画面(携帯モードの場合は本体装置2のディスプレイ12、据置モードの場合は据置型モニタ6の表示画面)に表示して(ステップ226)、次のステップに処理を進める。例えば、CPU81は、ゲーム設定情報データDhに基づいて、上記表示画面を分割使用することなく、これから開始されるゲームにおける各種設定内容を示す子機ゲーム設定画面を表示する。なお、子機ゲーム設定画面において表示される各種設定内容は、子機を操作するユーザによって変更可能な項目が含まれていてもよい。この場合であっても、上記各種設定内容が変更される操作が行われた場合は、参加しているユーザグループにおける親機へ当該変更内容を示すゲーム設定情報が送信され、当該情報に応じて子機ゲーム設定画面に表示されている内容が適宜更新される。
次に、CPU81は、参加しているユーザグループによるゲームが開始されるか否かを判定する(ステップ227)。例えば、後述により明らかとなるが、ユーザグループを作成した親機は、ゲームを開始する場合、当該ゲーム開始を示すゲーム開始情報を無線送信している。CPU81は、当該ゲーム開始情報を参加しているユーザグループの親機から受信した場合、ステップ228に処理を進める。一方、CPU81は、当該ゲーム開始情報を参加しているユーザグループの親機から受信していない場合、上記ステップ225に戻って処理を繰り返す。
ステップ228において、ゲームが開始された場合、当該ゲームをプレイするための操作情報を、ローカル通信設定データDbに基づいて、自機が参加しているユーザグループの各情報処理システム1へ送信し、次のステップに処理を進める。上記操作情報は、操作データDcに格納されている操作内容に基づいて生成される。ここで、上述したように、上記操作情報は、自機を操作しているコントローラを用いた操作そのものの内容を示す情報、および/または、当該コントローラを用いて操作される仮想オブジェクトに関するオブジェクト情報等であり、送信データDeに一旦格納された後、送信周期が到来することに応じて送信データDeに格納されているデータが参加しているユーザグループの各機に無線送信される。
次に、CPU81は、ローカル通信設定データDbに基づいて、参加しているユーザグループの各機から操作情報を受信し(ステップ229)、次のステップに処理を進める。例えば、自機と同様にユーザグループに属する各機は、定期的に当該各機におけるコントローラを用いた操作そのもの内容を示す情報、および/または、当該コントローラを用いて操作される仮想オブジェクトに関するオブジェクト情報等を操作情報として無線送信している。上記ステップ229において、CPU81は、参加しているユーザグループの各機から無線送信された操作情報を受信して、受信データDdに格納する。
次に、CPU81は、通信ゲーム処理を行い(ステップ230)、次のステップに処理を進める。例えば、CPU81は、操作データDcおよびユーザグループの各機から受信した操作情報に基づいて、参加しているユーザグループにおける各ユーザが操作している仮想オブジェクトを仮想空間に配置することによって、当該ユーザグループがプレイしているゲームにおける仮想空間を構築する。そして、CPU81は、自機のユーザが操作している仮想オブジェクトに関連するゲーム画像(当該ユーザの操作によって制御されている仮想オブジェクトを含む画像や当該仮想オブジェクトを一人称視点とした画像)を生成して、表示画面(携帯モードの場合は本体装置2のディスプレイ12、据置モードの場合は据置型モニタ6の表示画面)に表示する(図17参照)。なお、CPU81は、自機が複数のユーザによって複数の仮想オブジェクトがそれぞれ操作されている場合、表示画面を分割使用して、画面分割によってそれぞれのユーザの操作によって制御されている仮想オブジェクトを含む画像や当該仮想オブジェクトを一人称視点とした画像を表示する。
次に、CPU81は、ゲームを終了するか否かを判定する(ステップ231)。上記ステップ231においてゲームを終了する条件としては、例えば、上記ゲームの結果が確定したことや、自機のユーザや参加しているユーザグループにおける親機のユーザがゲームを終了する操作を行ったこと等がある。CPU81は、ゲームを終了しない場合に上記ステップ228に戻って処理を繰り返し、ゲームを終了する場合に当該フローチャートによる処理を終了する。
図23において、新たなユーザグループを作成する操作が行われた場合、当該操作が行われた情報処理システム1は、当該ユーザグループにおける親機となる。親機となった情報処理システム1のCPU81は、ローカル通信設定データDbに基づいて、ローカル通信可能な他の情報処理装置1にグループ情報を送信し(ステップ241)、次のステップに処理を進める。ここで、上記グループ情報は、自機が作成しているユーザグループの内容を示す情報であり、自機(すなわち、親機)を操作しているユーザ名、自機が作成しているユーザグループに参加している子機を操作しているユーザ人数およびユーザ名、当該ユーザグループにおいてユーザを募集している状態か否かを示す情報等を含んでおり、当該情報を示すデータがグループ情報データDgに格納されている。CPU81は、上記グループ情報を送信データDeに一旦格納した後、送信周期が到来することに応じて送信データDeに格納されているデータをローカル通信可能な他の情報処理システム1に無線送信する。
次に、CPU81は、ローカル通信設定データDbに基づいて、ローカル通信可能な他の情報処理システム1から参加情報を受信し(ステップ242)、次のステップに処理を進める。例えば、上記ステップ221において説明されているように、自機が作成しているユーザグループに参加要求する情報処理システム1は、当該ユーザグループへの参加情報を送信している。上記ステップ242において、CPU81は、参加要求する他の情報処理システム1から無線送信された参加情報を受信して、受信データDdに格納する。そして、CPU81は、参加情報を送信した他の情報処理システム1のユーザ全員が自機のユーザグループに参加可能か否かを判定する。例えば、CPU81は、既に自機が作成しているユーザグループに参加できるゲーム参加総人数の上限数に達している、または参加要求したユーザ全員の参加を認めると当該上限数を超えてしまう場合、上記参加要求に関して否定判定を行う。そして、CPU81は、上記否定判定が行われた場合、上記参加要求した情報処理システム1に対して、参加不可である旨の返信を送信する。
次に、CPU81は、グループ情報を更新して(ステップ243)、次のステップに処理を進める。例えば、CPU81は、グループ情報データDgが示す自機が親機となっているユーザグループの内容および上記ステップ242で受信した参加要求において許可した参加情報に基づいて、必要に応じて当該ユーザグループの内容を変更してグループ情報データDgを更新する。
次に、CPU81は、上記ステップ243において更新したグループ情報に基づいて、親機待機画面(図18参照)を表示画面(携帯モードの場合は本体装置2のディスプレイ12、据置モードの場合は据置型モニタ6の表示画面)に表示して(ステップ244)、次のステップに処理を進める。例えば、CPU81は、グループ情報データDgに基づいて、上記表示画面を分割使用することなく、参加しているユーザグループを設定している親機(すなわち、自機)を操作しているユーザ人数およびユーザ名、当該ユーザグループの子機を操作しているユーザ名等とともに、当該ユーザグループにさらに参加するユーザを募集している状態であることを表示する。
次に、CPU81は、作成しているユーザグループへの参加者募集を締め切るか否かを判定する(ステップ245)。例えば、ユーザグループを作成した親機は、当該親機のユーザ操作(例えば、親機待機画面における「しめきる」選択肢を選択する操作)に応じて、または所定の条件を満たした場合(例えば、ユーザグループに参加できるゲーム参加総人数の上限数に達した場合、ユーザグループ作成後に所定時間が経過した場合等)、作成しているユーザグループへの参加者募集を締め切ると判定する。そして、CPU81は、作成しているユーザグループへの参加者募集を締め切る場合、ステップ245に処理を進める。一方、CPU81は、作成しているユーザグループへの参加者募集を継続する場合、上記ステップ241に戻って処理を繰り返す。
ステップ246において、CPU81は、ローカル通信設定データDbに基づいて、ローカル通信可能な他の情報処理システム1に締め切り情報を送信し、次のステップに処理を進める。ここで、上記締め切り情報は、上記ユーザグループにおいて、参加者募集を締め切ったことを示す情報であり、上記グループ情報に含まれる情報である。CPU81は、上記締め切り情報を含むグループ情報を送信データDeに一旦格納した後、送信周期が到来することに応じて送信データDeに格納されているデータをローカル通信可能な他の情報処理システム1に無線送信する。
次に、CPU81は、ゲーム設定情報データDhに基づいて、親機ゲーム設定画面(図18参照)を表示画面(携帯モードの場合は本体装置2のディスプレイ12、据置モードの場合は据置型モニタ6の表示画面)に表示して(ステップ247)、次のステップに処理を進める。例えば、CPU81は、ゲーム設定情報データDhに基づいて、上記表示画面を分割使用することなく、これから開始されるゲームにおける各種設定内容を示す親機ゲーム設定画面を表示する。
次に、CPU81は、操作データDcに基づいて、親機ゲーム設定画面において表示される各種設定内容を設定変更する操作が行われたか否かを判定する(ステップ248)。そして、CPU81は、設定変更する操作が行われた場合、ステップ249に処理を進める。一方、CPU81は、設定変更する操作が行われていない場合、ステップ250に処理を進める。
ステップ249において、CPU81は、操作データDcに応じて、親機ゲーム設定画面において表示されている各種設定内容を変更して、ステップ250に処理を進める。例えば、CPU81は、操作データDcに応じて変更された各種設定内容を用いて、ゲーム設定情報データDhを更新する。
ステップ250において、CPU81は、ローカル通信設定データDbに基づいて、自機が作成したユーザグループに属する子機にゲーム設定情報を送信し、次のステップに処理を進める。CPU81は、ゲーム設定情報データDhが示す自機が作成したユーザグループにおいて行うゲームに関するゲーム設定情報を送信データDeに一旦格納した後、送信周期が到来することに応じて送信データDeに格納されているデータを自機が作成したユーザグループに属する子機に無線送信する。
次に、CPU81は、自機が作成したユーザグループによるゲームを開始するか否かを判定する(ステップ251)。例えば、ユーザグループを作成した親機は、当該親機のユーザ操作(例えば、親機ゲーム設定画面における「ゲーム開始」の選択肢を選択する操作)に応じて、または所定の条件を満たした場合(例えば、参加者募集を締め切った後に所定時間が経過した場合等)、作成しているユーザグループによるゲームを開始すると判定する。そして、CPU81は、ゲームを開始する場合、当該ゲーム開始を示すゲーム開始情報を自機が作成したユーザグループに属する子機に無線送信する。CPU81は、ゲームを開始してゲーム開始情報を子機に送信した場合、ステップ252に処理を進める。一方、CPU81は、ゲームを開始しない場合、上記ステップ247に戻って処理を繰り返す。
ステップ252において、ゲームが開始された場合、当該ゲームをプレイするための操作情報を、ローカル通信設定データDbに基づいて、自機が参加しているユーザグループの各情報処理システム1へ送信し、次のステップに処理を進める。上記ステップ228と同様に、上記操作情報は、操作データDcに格納されている操作内容に基づいて生成され、同じユーザグループの各機に無線送信される。
次に、CPU81は、ローカル通信設定データDbに基づいて、参加しているユーザグループの各機から操作情報を受信し(ステップ253)、次のステップに処理を進める。上記ステップ229と同様に、CPU81は、同じユーザグループに属する各機から無線送信された操作情報を受信して、受信データDdに格納する。
次に、CPU81は、通信ゲーム処理を行い(ステップ254)、次のステップに処理を進める。例えば、CPU81は、操作データDcおよびユーザグループの各機から受信した操作情報に基づいて、参加しているユーザグループにおける各ユーザが操作している仮想オブジェクトを仮想空間に配置することによって、当該ユーザグループがプレイしているゲームにおける仮想空間を構築する。そして、CPU81は、自機のユーザが操作している仮想オブジェクトに関連するゲーム画像(当該ユーザの操作によって制御されている仮想オブジェクトを含む画像や当該仮想オブジェクトを一人称視点とした画像)を生成して、表示画面(携帯モードの場合は本体装置2のディスプレイ12、据置モードの場合は据置型モニタ6の表示画面)に表示する(図18参照)。なお、CPU81は、自機が複数のユーザによって複数の仮想オブジェクトがそれぞれ操作されている場合、表示画面を分割使用して、ゲーム内容によって、画面分割によってそれぞれのユーザの操作によって制御されている仮想オブジェクトを含む画像を表示したり、当該仮想オブジェクトを一人称視点とした画像を表示したりする。
次に、CPU81は、ゲームを終了するか否かを判定する(ステップ255)。上記ステップ255においてゲームを終了する条件としては、例えば、上記ゲームの結果が確定したことや、自機のユーザがゲームを終了する操作を行ったこと等がある。CPU81は、ゲームを終了しない場合に上記ステップ252に戻って処理を繰り返し、ゲームを終了する場合に当該フローチャートによる処理を終了する。
図24において、通信プレイをせずに自機のみで複数人プレイするプレイスタイルが選択された場合、当該プレイスタイルが選択された情報処理システム1は、ゲーム設定情報データDhに基づいて、ゲーム設定画面を表示画面(携帯モードの場合は本体装置2のディスプレイ12、据置モードの場合は据置型モニタ6の表示画面)に表示して(ステップ261)、次のステップに処理を進める。例えば、CPU81は、ゲーム設定情報データDhに基づいて、上記表示画面を分割使用することなく、これから開始されるゲームにおける各種設定内容を示すゲーム設定画面を表示する。
次に、CPU81は、操作データDcに基づいて、自機のゲーム設定画面において表示されている各種設定内容を設定変更する操作が行われたか否かを判定する(ステップ262)。そして、CPU81は、設定変更する操作が行われた場合、ステップ263に処理を進める。一方、CPU81は、設定変更する操作が行われていない場合、ステップ264に処理を進める。
ステップ263において、CPU81は、操作データDcに応じて、自機のゲーム設定画面において表示されている各種設定内容を変更して、ステップ264に処理を進める。例えば、CPU81は、操作データDcに応じて変更された各種設定内容を用いて、ゲーム設定情報データDhを更新する。
ステップ264において、CPU81は、モード確認処理を行い、次のステップに処理を進める。以下、図25を参照して、上記ステップ264で行うモード設定処理について説明する。
図25において、CPU81は、設定モードデータDfを参照して、自機の動作モードが携帯モードに設定されているか否かを判定する(ステップ301)。そして、CPU81は、自機が携帯モードに設定されている場合、ステップ302に処理を進める。一方、CPU81は、自機が据置モードに設定されている場合、当該サブルーチンによる処理を終了する。
ステップ302において、CPU81は、ゲームを行うユーザの数が、携帯モードにおいて複数人プレイをする場合のゲーム参加総人数の上限(例えば、2人)内か否かを判定する。そして、CPU81は、ゲームを行うユーザの数が、携帯モードにおいて複数人プレイをする場合のゲーム参加総人数の上限を越えている場合、ステップ303に処理を進める。一方、CPU81は、ゲームを行うユーザの数が、携帯モードにおいて複数人プレイをする場合のゲーム参加総人数の上限内である場合、当該サブルーチンによる処理を終了する。
ステップ303において、CPU81は、当該モード確認処理を行う前に行っていた処理(例えば、ゲーム設定を行う処理やゲームを進行する処理)を中断して(図19参照)、次のステップに処理を進める。
次に、CPU81は、クレードル脱着情報をユーザに報知して(ステップ304)、次のステップに処理を進める。例えば、CPU81は、本体装置2のディスプレイ12に据置モードに戻すようにユーザに促す情報を表示したり(図19参照)、据置モードに戻すようにユーザに促す音声を本体装置2のスピーカ88から出力したりして、ユーザにクレードル脱着情報を報知する。
次に、CPU81は、設定モードデータDfを参照して、自機の動作モードが据置モードに戻されたか否かを判定する(ステップ305)。そして、CPU81は、自機が据置モードに設定されている場合、ステップ306に処理を進める。一方、CPU81は、自機が携帯モードに設定されている場合、上記ステップ304の処理を繰り返す。
ステップ306において、CPU81は、上記ステップ303において中断していた処理を再開して、当該サブルーチンによる処理を終了する。上記ステップ306の処理によって、モード確認処理を行う前に行って中断されていた処理(例えば、ゲーム設定を行う処理やゲームを進行する処理)が再開される(図19参照)。
図24に戻り、上記ステップ264のモード確認処理の後、CPU81は、ゲームを開始するか否かを判定する(ステップ265)。例えば、CPU81は、自機のユーザ操作(例えば、ゲーム設定画面における「ゲーム開始」の選択肢を選択する操作)に応じて、または所定の条件を満たした場合(例えば、ゲーム設定画面が表示された後に所定時間が経過した場合等)、ゲームを開始すると判定する。そして、CPU81は、ゲームを開始する場合、ステップ266に処理を進める。一方、CPU81は、ゲームを開始しない場合、上記ステップ261に戻って処理を繰り返す。
ステップ266において、CPU81は、自機のみによるゲーム処理を行い、次のステップに処理を進める。例えば、CPU81は、操作データDcに基づいて、自機のユーザそれぞれが操作している仮想オブジェクトを仮想空間に配置することによって、当該ユーザがプレイしているゲームにおける仮想空間を構築する。そして、CPU81は、自機のユーザが操作している仮想オブジェクトそれぞれに関連するゲーム画像(当該ユーザの操作によって制御されている仮想オブジェクトを含む画像や当該仮想オブジェクトを一人称視点とした画像)を画面分割によって生成し、表示画面(携帯モードの場合は本体装置2のディスプレイ12、据置モードの場合は据置型モニタ6の表示画面)を分割使用して表示する(図19参照)。
次に、CPU81は、モード確認処理(ステップ267)を行い、次のステップに処理を進める。なお、上記ステップ267で行うモード確認処理は、図25を用いて説明した上記ステップ264におけるモード確認処理と同じであるため、ここでは詳細な説明を省略する。
次に、CPU81は、ゲームを終了するか否かを判定する(ステップ268)。上記ステップ268においてゲームを終了する条件としては、例えば、上記ゲームの結果が確定したことや、自機のユーザがゲームを終了する操作を行ったこと等がある。CPU81は、ゲームを終了しない場合に上記ステップ266に戻って処理を繰り返し、ゲームを終了する場合に当該フローチャートによる処理を終了する。
上記のように、本実施形態においては、複数の情報処理システム1を用いて通信ゲームを行う場合、当該情報処理システム1の数より多い人数が参加することができる。また、携帯モードではユーザが所望する場所まで表示画面を持ち運ぶことができる。一方、表示画面を分割使用して複数のユーザが利用する情報処理(例えば、ゲーム処理)を行う場合、据置モードでは相対的に大きな表示画面を分割して利用できるため、相対的に多くのユーザで利用したとしても分割表示領域の大きさを十分確保することができる。このように、携帯モードおよび据置モードを使い分けることによって、携帯型装置および据置型装置の利便性を向上させることができる。
なお、本実施形態においては、複数の情報処理システム1が属するユーザグループを用いて通信ゲームを行っている場合、各情報処理システム1の表示画面には、当該ユーザグループに属しているユーザ全員それぞれのための画像(例えば、当該ユーザ全員がそれぞれ制御している仮想オブジェクトを含む画像)ではなく、情報処理システム1を操作している自機ユーザのための画像が表示される。しかしながら、他の実施形態においては、複数の情報処理システム1が属するユーザグループを用いて通信ゲームを行っている場合、複数の情報処理システム1の少なくとも1つの表示画面に、当該ユーザグループに属している自機以外のユーザのための画像を表示してもよい。この場合、情報処理システム1の表示画面は、自機のユーザの人数に当該自機以外のユーザの人数を加えた数に分割使用されて、画面分割によってそれぞれのユーザ用の画像が表示されることになる。また、別に実施形態においては、全てのユーザのための共通の画像が表示されるようにしてもよい。
また、本実施形態においては、ユーザグループへの参加募集を締め切った後にゲーム設定情報の確認/変更処理を介してゲームが開始されるが、当該ゲーム設定情報の確認/変更処理が行われなくてもよい。この場合、親機の情報処理システム1がゲーム開始する処理を行うことに応じて、ユーザグループへの参加募集を締め切られてゲームが開始されてもよい。
また、複数の情報処理システム1が属するユーザグループを用いて通信ゲームを行う場合にやり取りされる操作情報は、自機を操作しているコントローラを用いた操作そのものの内容を示す情報、当該コントローラを用いて操作される仮想オブジェクトに関するオブジェクト情報である例を示したが、互いのゲーム進行が把握できる情報であれば他の情報であってもよい。例えば、自機で操作している仮想カメラの情報や自機のユーザ用として作成されている画像そのものの情報であってもよい。
また、本実施形態における携帯モードにおいて、自機を複数のユーザによって操作する場合、当該操作人数が増えると本体装置2において実行される処理量が多くなるために本体装置2における消費電力が増えることが考えられる。しかしながら、本実施形態における携帯モードでは、据置モードに対して相対的に少ない人数に操作人数が制限されるとともに、本体装置2の処理能力も制限されるため、当該携帯モードにおける消費電力を抑えることが可能となっている。また、本実施形態では、携帯モードにおける上記操作人数の制限を超える人数で本体装置2を利用したい場合、据置モードに切り替えることによってクレードル6を介した本体装置2への充電が可能となるため、当該制限より多い人数での利用が可能になるとともに、本体装置2の処理能力の制限も解除され、相対的に大きな据置の表示画面を分割して利用することも可能となる。すなわち、本実施形態の据置モードでは、携帯モードにおける様々な制限を解消してより利便性の高い多人数利用が可能となる。
また、本実施形態においては、1人のユーザが1つのコントローラ(すなわち、左コントローラ3および右コントローラ4の一方)を用いており、この場合、1人のユーザが1つのコントローラを1つの操作装置として用いる利用態様となる。しかしながら、本実施形態においては、1人のユーザが一対のコントローラ(すなわち、左コントローラ3および右コントローラ4の両方)を用いて、左手に一方のコントローラ(すなわち、左コントローラ3)を把持して、右手に他方のコントローラ(すなわち、右コントローラ4)を把持して、操作する利用態様でもよい。この場合、1人のユーザが一対のコントローラの組みを1つの操作装置として用いる利用態様となる。つまり、本実施形態において、ユーザが操作する操作装置は、1つのコントローラでも複数のコントローラでもよく、本実施形態における操作装置は、1以上のコントローラによって構成可能となる概念である。
また、本実施形態においては、通信ゲームのユーザグループに参加する全ユーザ数(換言すれば、通信ゲームに用いられる全操作装置の数)を示す情報を、当該ユーザグループの親機が管理してもよいし、当該ユーザグループの各機が管理してもよい。後者の場合、各機は、他の装置それぞれから上記ユーザグループに参加するユーザ数(換言すれば、他の装置を操作する操作装置の数)を取得して当該ユーザ数を集計することによって、各機それぞれが上記全ユーザ数を管理してもよい。
また、他の実施形態においては、本体装置2は、据置型モニタ6と直接通信可能であってもよい。例えば、本体装置2と据置型モニタ6とが直接有線通信または直接無線通信を行うことが可能であってもよい。この場合、本体装置2は、本体装置2と据置型モニタ6とが直接通信可能か否かに基づいて画像の表示先を決定して動作モードを切り替えてもよい。
また、付加装置(例えば、クレードル)は、本体装置2を着脱可能な任意の付加装置であってよい。付加装置は、本実施形態のように、本体装置2に対する充電を行う機能を有していてもよいし、有していなくてもよい。
また、情報処理システム1は、どのような装置であってもよく、携帯型のゲーム装置、任意の携帯型電子機器(PDA(Personal Digital Assistant)、携帯電話、パーソナルコンピュータ、カメラ、タブレット等)等であってもよい。
また、上述した説明では情報処理(ゲーム処理)や通信処理を情報処理システム1でそれぞれ行う例を用いたが、上記処理ステップの少なくとも一部を他の装置で行ってもかまわない。例えば、情報処理システム1がさらに他の装置(例えば、別のサーバ、他の画像表示装置、他のゲーム装置、他の携帯端末)と通信可能に構成されている場合、上記処理ステップは、さらに当該他の装置が協働することによって実行してもよい。このように、上記処理ステップの少なくとも一部を他の装置で行うことによって、上述した処理と同様の処理が可能となる。また、上述した情報処理や通信処理は、少なくとも1つの情報処理装置により構成される情報処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。また、上記実施例においては、情報処理システム1のCPU81が所定のプログラムを実行することによって情報処理や通信処理を行うことが可能であるが、情報処理システム1が備える専用回路によって上記処理の一部または全部が行われてもよい。
ここで、上述した変形例によれば、いわゆるクラウドコンピューティングのシステム形態や分散型の広域ネットワークおよびローカルネットワークのシステム形態でも本発明を実現することが可能となる。例えば、分散型のローカルネットワークのシステム形態では、据置型の情報処理装置(据置型のゲーム装置)と携帯型の情報処理装置(携帯型のゲーム装置)との間で上記処理を協働により実行することも可能となる。なお、これらのシステム形態では、上述した処理をどの装置で行うかについては特に限定されず、どのような処理分担をしたとしても本発明を実現できることは言うまでもない。
また、上述した情報処理で用いられる処理順序、設定値、判定に用いられる条件等は、単なる一例に過ぎず他の順序、値、条件であっても、本実施例を実現できることは言うまでもない。
また、上記プログラムは、外部メモリ等の外部記憶媒体を通じて情報処理システム1に供給されるだけでなく、有線または無線の通信回線を通じて当該装置に供給されてもよい。また、上記プログラムは、当該装置内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ、などでもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを記憶する揮発性メモリでもよい。このような記憶媒体は、コンピュータ等が読み取り可能な記録媒体ということができる。例えば、コンピュータ等に、これらの記録媒体のプログラムを読み込ませて実行させることにより、上述で説明した各種機能を提供させることができる。
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施例の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。