(58)【調査した分野】(Int.Cl.,DB名)
前記制御部は、前記1人プレイモードと前記2人プレイモードとで、前記第1の方向入力の方向と前記キャラクタの仮想空間内での移動方向との対応関係を異ならせる請求項4に記載のゲームシステム。
傾倒入力及び押込入力が可能なスティックと、前記傾倒入力を検知する傾倒検知部と、前記押込入力を検知する押込検知部とを備えたゲームシステムのコンピュータに、仮想空間内においてキャラクタを移動させるとともに、前記仮想空間内に設定された仮想カメラに基づいた画像を生成させるゲームプログラムであって、
前記コンピュータに、前記傾倒検知部が前記傾倒入力を検知し、かつ前記押込検知部が前記押込入力を検知していないときは、前記傾倒入力に応じて仮想空間内のキャラクタを移動させ、前記傾倒検知部が前記傾倒入力を検知し、かつ前記押込検知部が前記押込入力を検知しているときは、前記傾倒入力に応じて仮想空間内のキャラクタを移動させるとともに、前記傾倒入力に応じて前記キャラクタに対する前記仮想カメラの位置を移動させるゲームプログラム。
前記コンピュータに、前記傾倒検知部が前記傾倒入力を検知し、かつ前記押込検知部が前記押込入力を検知しているときは、前記仮想カメラを、前記キャラクタに向かって、前記傾倒入力の所定方向成分に対応する方向に移動させる、請求項7又は8に記載のゲームプログラム。
前記ゲームシステムは、前記スティックと、前記傾倒検知部と、前記押込検知部とを備える第1のコントローラと、前記スティックと、前記傾倒検知部とを備える第2のコントローラを備え、
前記ゲームプログラムは、前記コンピュータに、
前記第1のコントローラと前記第2のコントローラとを1人のプレイヤが操作する1人プレイモードと、前記第1のコントローラを1人のプレイヤが操作し、前記第2のコントローラを他の1人のプレイヤが操作する2人プレイモードのいずれかを選択するモード選択処理をさらに行わせ、
前記1人プレイモードでは、前記第2のコントローラの前記スティックに対する傾倒入力に基づいて前記仮想カメラを移動させ、
前記2人プレイモードでは、前記第1のコントローラの前記押込検知部が前記押込み入力を検知せず前記第1のコントローラの前記傾倒検知部が前記傾倒入力を検知している場合には、前記傾倒入力に応じて仮想空間内のキャラクタを移動させ、前記第1のコントローラの前記押込検知部が前記押込み入力を検知すると同時に前記第1のコントローラの前記傾倒検知部が前記傾倒入力を検知している場合には、前記第1のコントローラの前記傾倒検知部が検知した前記傾倒入力に応じて仮想空間内のキャラクタを移動させるとともに、前記第1のコントローラの前記傾倒検知部が検知した前記傾倒入力に応じて前記キャラクタに対する前記仮想カメラの位置を移動させる、
請求項7ないし9のいずれかに記載のゲームプログラム。
【発明を実施するための形態】
【0035】
以下、図面を参照して本発明の実施の形態を説明する。なお、以下に説明する実施の形態は、本発明を実施する場合の一例を示すものであって、本発明を以下に説明する具体的構成に限定するものではない。本発明の実施にあたっては、実施の形態に応じた具体的構成が適宜採用されてよい。
【0036】
以下、本実施形態の一例に係るゲーム処理装置、ゲームシステム、及びゲームプログラムについて説明する。本実施形態では、ゲームシステム1は、本体装置(ゲーム処理装置)2と左コントローラ4及び右コントローラ6とを含んで構成される。また、ゲームシステム1の他の態様は、上記の構成にクレードル8(
図8参照)を加えて構成されることもある。本実施形態のゲームシステム1において、本体装置2に対して左コントローラ4及び右コントローラ6が着脱可能であり、左コントローラ4及び右コントローラ6をそれぞれ本体装置2に装着して一体化された装置として利用でき(
図6参照)、また、本体装置2と左コントローラ4及び右コントローラ6とを別体として利用することもできる(
図7〜9参照)。また、ゲームシステム1は、本体装置2に画像を表示する態様での利用と(
図6〜8参照)、テレビ等の他の表示装置に画像を表示させる態様での利用(
図9参照)が可能である。前者の態様において、ゲームシステム1は、携帯型装置(例えば、携帯ゲーム機)として利用することができる。また、後者の態様において、ゲームシステム1は、据置型装置(例えば、据置型ゲーム機)として利用することができる。
【0037】
図1は、本実施形態におけるゲームシステム1の一例において、本体装置2に左コントローラ4及び右コントローラ6を装着した状態を示す図である。
図1に示すように、ゲームシステム1は、本体装置2と、左コントローラ4と、右コントローラ6とを含む。左コントローラ4及び右コントローラ6は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、ゲームシステム1における各種の処理を実行する装置である。本体装置2は、ディスプレイ22を備える。左コントローラ4及び右コントローラ6は、ユーザが入力を行うための操作部を備える装置である。
【0038】
図2は、本体装置2から左コントローラ4及び右コントローラ6をそれぞれ外した状態の一例を示す図である。
図1及び
図2に示すように、左コントローラ4及び右コントローラ6は、本体装置2に着脱可能である。左コントローラ4は、本体装置2の左側面(
図1に示すx軸正方向側の側面)に装着することができ、本体装置2の左側面に沿って
図1に示すy軸方向にスライドさせることによって本体装置2に着脱可能となっている。また、右コントローラ6は、本体装置2の右側面(
図1に示すx軸負方向側の側面)に装着することができ、本体装置2の右側面に沿って
図1に示すy軸方向にスライドさせることによって本体装置2に着脱可能となっている。
【0039】
図3は、本体装置2の内部の主要な構成の一例を示すブロック図である。本体装置2の構成要素のいくつかは、電子部品として電子回路基板上に実装されてハウジング11内に収納されてもよい。
図4は、ゲームシステム1の内部の主要な構成の一例を示すブロック図である。なお、ゲームシステム1のうちの本体装置2に関する内部構成の詳細については、
図3で示しているため
図4では省略している。以下、
図1ないし
図4を参照して、ゲームシステム1の外観構成及び内部構成を説明する。
【0040】
[ゲームシステム1の外観構成]
(本体装置2)
まず、主に
図1及び
図2を参照して、ゲームシステム1の外観構成を説明する。本体装置2は、略板状のハウジング21を備える。本実施形態において、ハウジング21の主面(換言すれば、表側の面、すなわち、ディスプレイ22が設けられる面)は、大略的には矩形形状である。本実施形態においては、ハウジング21は、横長の形状であるものとする。つまり、本実施形態においては、ハウジング21の主面の長手方向(すなわち、
図1に示すx軸方向)を横方向(左右方向とも言う)と呼び、当該主面の短手方向(すなわち、
図1に示すy軸方向)を縦方向(上下方向とも言う)と呼び、主面に垂直な方向(すなわち、
図1に示すz軸方向)を奥行方向(前後方向とも言う)と呼ぶこととする。本体装置2は、本体装置2が横長となる向きで利用されることが可能である。また、本体装置2が縦長となる向きで利用されることも可能である。その場合には、ハウジング21を縦長の形状であるものと見なしてもよい。
【0041】
なお、ハウジング21の形状及び大きさは、任意である。一例として、ハウジング21は、携帯可能な大きさであってよい。また、本体装置2単体又は本体装置2に左コントローラ4及び右コントローラ6が装着された一体型装置は、携帯型装置となってもよい。また、本体装置2又は一体型装置が手持ち型の装置となってもよい。また、本体装置2又は一体型装置が可搬型装置となってもよい。
【0042】
本体装置2は、ハウジング21の主面に設けられるディスプレイ22を備える。ディスプレイ22は、本体装置2が取得又は生成した画像(静止画であってもよいし、動画であってもよい)を表示する。本実施形態においては、ディスプレイ22は、液晶表示装置(LCD)とする。ただし、ディスプレイ22は任意の種類の表示装置であってよい。また、本体装置2は、ディスプレイ22の画面上にタッチパネル23を備える。本実施形態においては、タッチパネル23は、マルチタッチ入力が可能な方式(例えば、静電容量方式)のものである。ただし、タッチパネル23は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式(例えば、抵抗膜方式)のものであってもよい。
【0043】
本体装置2は、ハウジング21の内部においてスピーカを備えている。ハウジング21の主面には、スピーカ孔21a及び21bが形成される。そして、スピーカの出力音は、これらのスピーカ孔21a及び21bからそれぞれ出力される。
【0044】
本体装置2は、ハウジング21の左側面において左レール部材24を備える。左レール部材24は、左コントローラ4を本体装置2に着脱可能に装着するための部材である。左レール部材24は、ハウジング21の左側面において、上下方向に沿って延びるように設けられる。左レール部材24は、左コントローラ4のスライダ41と係合可能な形状を有しており、左レール部材24とスライダ41とによってスライド機構が形成される。このスライド機構によって、左コントローラ4を本体装置2に対してスライド可能かつ着脱可能に装着することができる。
【0045】
また、本体装置2は左側端子26(
図3参照)を備える。左側端子26は、本体装置2が左コントローラ4と有線通信を行うための端子である。左側端子26は、左コントローラ4が本体装置2に装着された場合に、左コントローラ4の端子52と接触する位置に設けられる。左側端子26の具体的な位置は任意である。本実施形態においては、左側端子26は、左レール部材24の底面に設けられる。また、本実施形態においては、左側端子26は、左レール部材24の底面における下側の端部付近に設けられる。
【0046】
ハウジング21の右側面には、左側面に設けられる構成と同様の構成が設けられる。すなわち、本体装置2は、ハウジング21の右側面において右レール部材25を備える。右レール部材25は、ハウジング21の右側面において、上下方向に沿って延びるように設けられる。右レール部材25は、右コントローラ6のスライダ61と係合可能な形状を有しており、右レール部材25とスライダ61とによってスライド機構が形成される。このスライド機構によって、右コントローラ6を本体装置2に対してスライド可能かつ着脱可能に装着することができる。
【0047】
また、本体装置2は右側端子27(
図3参照)を備える。右側端子27は、本体装置2が右コントローラ6と有線通信を行うための端子である。右側端子27は、右コントローラ6が本体装置2に装着された場合に、右コントローラ6の端子72と接触する位置に設けられる。右側端子27の具体的な位置は任意である。本実施形態においては、右側端子27は、右レール部材25の底面に設けられる。また、本実施形態においては、右側端子27は、右レール部材25の底面における下側の端部付近に設けられる。
【0048】
本体装置2は、スロット28(
図3参照)を備える。スロット28は、ハウジング21の上側面に設けられる。スロット28は、記憶媒体を装着可能な形状を有する。記憶媒体は、例えば、ゲームシステム1及びそれと同種のゲーム処理装置に専用の記憶媒体(例えば、専用メモリカード)である。記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、及び/又は、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。また、本体装置2は、電源ボタン29(
図3参照)を備える。電源ボタン29は、ハウジング21の上側面に設けられる。電源ボタン29は、本体装置2の電源のオン/オフを切り替えるためのボタンである。
【0049】
本体装置2は、下側端子30(
図3参照)を備える。下側端子30は、本体装置2が、後述するクレードル8(
図9参照)と通信を行うための端子である。下側端子30は、ハウジング21の下側面に設けられる。本体装置2がクレードル8に装着された場合、下側端子30は、クレードル8の端子(不図示)に接続される。本実施形態において、下側端子30は、USBコネクタ(より具体的には、メス側コネクタ)である。
【0050】
以上に説明した、ハウジング21に設けられる各構成要素(具体的には、ボタン、スロット、端子等)の形状、数、及び設置位置は、任意である。例えば、他の実施形態においては、電源ボタン29及びスロット28は、ハウジング21の他の側面あるいは背面に設けられてもよい。また、他の実施形態においては、本体装置2は、上記各構成要素のうちいくつかを備えていない構成であってもよい。
【0051】
(左コントローラ4)
左コントローラ4は、ハウジング42を備える。本実施形態において、ハウジング42は、略板状である。また、ハウジング42の主面(換言すれば、表側の面、すなわち、
図1に示すz軸負方向側の面)は、大略的には矩形形状である。また、本実施形態においては、ハウジング42は、縦長の形状、すなわち、上下方向(すなわち、
図1に示すy軸方向)に長い形状である。左コントローラ4は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング42は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状及び大きさをしている。また、左コントローラ4は、横長となる向きで把持されることも可能である。左コントローラ4が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。なお、ハウジング42の形状は任意であり、他の実施形態においては、ハウジング42は略板状でなくてもよい。また、ハウジング42は、矩形形状でなくてもよく、例えば半円状の形状等であってもよい。また、ハウジング42は、縦長の形状でなくてもよい。
【0052】
ハウジング42の上下方向の長さは、本体装置2のハウジング21の上下方向の長さとほぼ同じである。また、ハウジング42の厚さ(すなわち、前後方向の長さ、換言すれば、
図1に示すz軸方向の長さ)は、本体装置2のハウジング21の厚さとほぼ同じである。したがって、左コントローラ4が本体装置2に装着された場合(
図1参照)には、ユーザは、本体装置2と左コントローラ4とを一体の装置のような感覚で把持することができる。
【0053】
ハウジング42の主面は、左側の角部分が、右側の角部分よりも丸みを帯びた形状になっている。すなわち、ハウジング42の上側面と左側面との接続部分、及び、ハウジング42の下側面と左側面との接続部分は、その上側面と右側面との接続部分、及び、その下側面と右側面との接続部分に比べて、丸くなっている(換言すれば、面取りにおけるRが大きい)。したがって、左コントローラ4が本体装置2に装着された場合(
図1参照)には、一体型装置となったゲームシステム1の左側が丸みを帯びた形状となるので、ユーザにとって持ちやすい形状となる。
【0054】
左コントローラ4は、スティック43を備える。スティック43は、ハウジング42の主面に設けられる。スティック43は、方向を入力することが可能な方向入力部の一例である。スティック43は、ハウジング42の主面に平行な全方向(すなわち、上下左右及び斜め方向を含む、360°の方向)に傾倒可能なスティック部材を有する。ユーザは、スティック部材を傾倒することによって傾倒方向に応じた方向の入力、及び、傾倒した角度に応じた大きさの入力が可能である。なお、方向入力部は、十字キー又はスライドスティック等であってもよい。
【0055】
また、本実施形態においては、スティック部材を(ハウジング42に垂直な方向に)押し込む押込入力が可能である。すなわち、スティック43は、スティック部材の傾倒方向及び傾倒量に応じた方向及び大きさの傾倒入力と、スティック部材をその軸方向に押し込む押込入力とを行うことが可能な入力部である。傾倒入力と押込入力とは同時に行うこともできる。
【0056】
左コントローラ4は、4つの操作ボタン44a〜44d(具体的には、右方向ボタン44a、下方向ボタン44b、左方向ボタン44c、及び、上方向ボタン44d)を備える。これら4つの操作ボタン44a〜44dは、ハウジング42の主面においてスティック43の下側に設けられる。なお、本実施形態においては、左コントローラ4の主面に設けられる操作ボタンを4つとするが、操作ボタンの数は任意である。これらの操作ボタン44a〜44dは、本体装置2で実行される各種プログラム(例えば、OSプログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。なお、本実施形態においては、各操作ボタン44a〜44dは方向入力を行うために用いられてもよいことから、各操作ボタン44a〜44dを、右方向ボタン44a、下方向ボタン44b、左方向ボタン44c、及び、上方向ボタン44dと呼んでいる。ただし、各操作ボタン44a〜44dは、方向入力以外の指示を行うために用いられてもよい。
【0057】
また、左コントローラ4は−(マイナス)ボタン45を備える。
図1に示すように、−ボタン45は、ハウジング42の主面に設けられ、より具体的には、主面における右上領域に設けられる。−ボタン45は、本体装置2で実行される各種プログラム(例えば、OSプログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。−ボタン45は、例えば、ゲームアプリケーションにおいてセレクトボタン(例えば、選択項目の切り替えに用いられるボタン)として用いられる。
【0058】
左コントローラ4の主面に設けられる各操作部(具体的には、スティック43及び上記各ボタン44a〜44d)は、左コントローラ4が本体装置2に装着される場合、一体型装置となったゲームシステム1を把持するユーザの例えば左手の親指によって操作される。また、左コントローラ4が本体装置2から外された状態において両手で横向きに把持されて使用される場合、上記各操作部は、左コントローラ4を把持するユーザの例えば左右の手の親指で操作される。具体的には、この場合、スティック43はユーザの左手の親指で操作され、各操作ボタン44a〜44dはユーザの右手の親指で操作される。
【0059】
左コントローラ4は、第1Lボタン46を備える。また、左コントローラ4は、ZLボタン(不図示)を備える。これらの第1Lボタン46及びZLボタンは、上記操作ボタン44a〜44dと同様、本体装置2で実行される各種プログラムに応じた指示を行うために用いられる。第1Lボタン46は、ハウジング42の側面のうちの左上部分に設けられる。また、ZLボタンは、ハウジング42の側面から裏面にかけての左上部分(厳密には、ハウジング42を表側から見たときの左上部分)に設けられる。つまり、ZLボタンは、第1Lボタン46の後側(
図1に示すz軸正方向側)に設けられる。本実施形態においては、ハウジング42の左上部分が丸みを帯びた形状であるので、第1Lボタン46及びZLボタンは、ハウジング42の当該左上部分の丸みに応じた丸みを帯びた形状を有する。左コントローラ4が本体装置2に装着される場合、第1Lボタン46及びZLボタンは、一体型装置となったゲームシステム1における左上部分に配置されることになる。
【0060】
左コントローラ4は、上述のスライダ41を備えている。スライダ41は、ハウジング42の右側面において、上下方向に延びるように設けられる。スライダ41は、本体装置2の左レール部材24(より具体的には、左レール部材24の溝)と係合可能な形状を有している。したがって、左レール部材24に係合したスライダ41は、スライド方向(換言すれば左レール部材24が延びる方向)に垂直な向きに関しては固定されて外れないようになっている。
【0061】
左コントローラ4の右側面には、第2Lボタン47及び第2Rボタン48(
図2参照)が設けられる。第2Lボタン47及び第2Rボタン48は、離脱状態において後述するように1人のユーザが左コントローラ4を両手で把持して使用する場合に用いられる。1人のユーザが左コントローラ4を両手で把持して使用する場合には、
図2の左側面が下になり、右側面が上になる向きで使用される(
図8参照)。この場合に第2Lボタン47は左上に位置し、第2Rボタン48は右上に位置する。
【0062】
また、左コントローラ4は、左コントローラ4が本体装置2と有線通信を行うための端子52(
図4参照)を備える。端子52は、左コントローラ4が本体装置2に装着された場合に、本体装置2の左側端子26と接触する位置に設けられる。端子52の具体的な位置は任意である。本実施形態においては、端子52は、スライダ41の装着面における下側の端部付近に設けられる。
【0063】
(右コントローラ6)
右コントローラ6は、ハウジング62を備える。本実施形態において、ハウジング62は、略板状である。ハウジング62の主面(換言すれば、表側の面、すなわち、
図1に示すz軸負方向側の面)は、大略的には矩形形状である。また、本実施形態においては、ハウジング62は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ6は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング62は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状及び大きさをしている。また、右コントローラ6は、横長となる向きで把持されることも可能である。右コントローラ6が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0064】
右コントローラ6のハウジング62は、左コントローラ4のハウジング42と同様、その上下方向の長さは、本体装置2のハウジング21の上下方向の長さとほぼ同じであり、その厚さは、本体装置2のハウジング21の厚さとほぼ同じである。したがって、右コントローラ6が本体装置2に装着された場合(
図1参照)には、ユーザは、本体装置2と右コントローラ6とを一体の装置のような感覚で把持することができる。
【0065】
また、ハウジング62の主面は、右側の角部分が、左側の角部分よりも丸みを帯びた形状になっている。すなわち、ハウジング62の上側面と右側面との接続部分、及び、ハウジング62の下側面と右側面との接続部分は、その上側面と左側面との接続部分、及び、その下側面と左側面との接続部分に比べて、丸くなっている(換言すれば、面取りにおけるRが大きい)。したがって、右コントローラ6が本体装置2に装着された場合(
図1参照)には、一体型装置となったゲームシステム1の右側が丸みを帯びた形状となるので、ユーザにとって持ちやすい形状となる。
【0066】
右コントローラ6は、左コントローラ4と同様、方向入力部としてスティック63を備える。本実施形態においては、スティック63は、左コントローラ4のスティック43と同じ構成である。また、右コントローラ6は、左コントローラ4と同様、4つの操作ボタン64a〜64d(具体的には、Aボタン64a、Bボタン64b、Yボタン64c、及び、Xボタン64d)を備える。本実施形態においては、これら4つの操作ボタン64a〜64dは、左コントローラ4の4つの操作ボタン44a〜44dと同じ機構である。これらスティック63及び各操作ボタン64a〜64dは、ハウジング62の主面に設けられる。なお、本実施形態においては、右コントローラ6の主面に設けられる操作ボタンを4つとするが、操作ボタンの数は任意である。
【0067】
ここで、本実施形態においては、右コントローラ6における2種類の操作部(スティック63及び操作ボタン64a〜64d)の位置関係は、左コントローラ4におけるこれら2種類の操作部(スティック43及び操作ボタン44a〜44d)の位置関係とは反対になっている。すなわち、右コントローラ6においては、スティック63は各操作ボタン64a〜64dの上方に配置されるのに対して、左コントローラ4においては、スティック43は各操作ボタン44a〜44dの下方に配置される。このような配置によって、左コントローラ4及び右コントローラ6を本体装置2から外して使用する場合に似たような操作感覚で使用することができる。
【0068】
また、右コントローラ6は、+(プラス)ボタン65を備える。+ボタン65は、ハウジング62の主面に設けられ、より具体的には、主面の左上領域に設けられる。+ボタン65は、他の操作ボタン64a〜64dと同様、本体装置2で実行される各種プログラム(例えば、OSプログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。+ボタン65は、例えば、ゲームアプリケーションにおいてスタートボタン(例えば、ゲーム開始の指示に用いられるボタン)として用いられる。
【0069】
右コントローラ6は、ホームボタン66を備える。
図1に示すように、ホームボタン66は、ハウジング62の主面に設けられ、より具体的には、主面の左下領域に設けられる。ホームボタン66は、本体装置2のディスプレイ22に所定のメニュー画面を表示させるためのボタンである。メニュー画面は、例えば、本体装置2において実行可能な1以上のアプリケーションのうちからユーザが指定したアプリケーションを起動することが可能な画面である。メニュー画面は、例えば、本体装置2の起動時に表示されてもよい。本実施形態においては、本体装置2においてアプリケーションが実行されている状態(すなわち、当該アプリケーションの画像がディスプレイ22に表示されている状態)において、ホームボタン66が押下されると、所定の操作画面がディスプレイ22に表示されてもよい(このとき、操作画面に代えてメニュー画面が表示されてもよい)。なお、操作画面は、例えば、アプリケーションを終了してメニュー画面をディスプレイ22に表示させる指示、及び、アプリケーションを再開する指示等を行うことが可能な画面である。
【0070】
右コントローラ6の主面に設けられる各操作部(具体的には、スティック63及び上記各ボタン64a〜64d)は、右コントローラ6が本体装置2に装着される場合、ゲームシステム1を把持するユーザの例えば右手の親指によって操作される。また、右コントローラ6が本体装置2から外された状態において両手で横向きに把持されて使用される場合、上記各操作部は、右コントローラ6を把持するユーザの例えば左右の手の親指で操作される。具体的には、この場合、スティック63はユーザの左手の親指で操作され、各操作ボタン64a〜64dはユーザの右手の親指で操作される。
【0071】
右コントローラ6は、第1Rボタン67を備える。また、右コントローラ6は、ZRボタン(不図示)を備える。第1Rボタン67は、ハウジング62の側面のうちの右上部分に設けられる。また、ZRボタンは、ハウジング62の側面から裏面にかけての右上部分(厳密には、ハウジング62を表側から見たときの右上部分)に設けられる。つまり、ZRボタンは、第1Rボタン67の後側(
図1に示すz軸正方向側)に設けられる。本実施形態においては、ハウジング62の右上部分が丸みを帯びた形状であるので、第1Rボタン67及びZRボタンは、ハウジング62の当該右上部分の丸みに応じた丸みを帯びた形状を有する。右コントローラ6が本体装置2に装着される場合、第1Rボタン67及びZRボタンは、ゲームシステム1における右上部分に配置されることになる。
【0072】
右コントローラ6は、左コントローラ4と同様のスライダ機構を備えている。すなわち、右コントローラ6は、上述のスライダ61を備えている。スライダ61は、ハウジング62の左側面において、上下方向に延びるように設けられる。スライダ61は、本体装置2の右レール部材25(より具体的には、右レール部材25の溝)と係合可能な形状を有している。したがって、右レール部材25に係合したスライダ61は、スライド方向(換言すれば右レール部材25が延びる方向)に垂直な向きに関しては固定されて外れないようになっている。
【0073】
右コントローラ6の左側面には、第2Rボタン68及び第2Lボタン69(
図2参照)が設けられる。第2Rボタン68及び第2Lボタン69は、離脱状態において後述するように1人のユーザが右コントローラ6を両手で把持して使用する場合に用いられる。1人のユーザが右コントローラ6を両手で把持して使用する場合には、
図2の右側面が下になり、左側面が上になる向きで使用される(
図8参照)。この場合に第2Rボタン68は右上に位置し、第LRボタン69は左上に位置する。
【0074】
また、右コントローラ6は、右コントローラ6が本体装置2と有線通信を行うための端子72(
図4参照)を備える。端子72は、右コントローラ6が本体装置2に装着された場合に、本体装置2の右側端子27と接触する位置に設けられる。端子72の具体的な位置は任意である。本実施形態においては、端子72は、スライダ61の装着面における下側の端部付近に設けられる。
【0075】
なお、上記左コントローラ4及び右コントローラ6において、ハウジング42又は62に設けられる各構成要素(具体的には、スライダ、スティック、及びボタン等)の形状、数、及び、設置位置は任意である。例えば、他の実施形態においては、左コントローラ4及び右コントローラ6は、スティックとは別の種類の方向入力部を備えていてもよい。また、スライダ41又は61は、本体装置2に設けられるレール部材24又は25の位置に応じた位置に配置されてよく、例えば、ハウジング42又は62の主面又は裏面に配置されてもよい。また、他の実施形態においては、左コントローラ4及び右コントローラ6は、上記各構成要素のうちいくつかを備えていない構成であってもよい。
【0076】
[ゲームシステム1の内部構成]
(本体装置2)
図3は、本体装置2の内部構成の一例を示すブロック図である。本体装置2の構成要素のいくつかは、電子部品として電子回路基板上に実装されてハウジング21内に収納されてもよい。
【0077】
本体装置2は、CPU(Central Processing Unit)31を備える。CPU31は、本体装置2において実行される各種の情報処理を実行する制御部である。CPU31は、記憶部(具体的には、フラッシュメモリ32等の内部記憶媒体、あるいは、スロット28に装着される外部記憶媒体等)に記憶されるゲームプログラムを実行することによって、各種の情報処理を実行する。
【0078】
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ32及びDRAM(Dynamic Random Access Memory)33を備える。フラッシュメモリ32及びDRAM33は、CPU31に接続される。フラッシュメモリ32は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM33は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【0079】
本体装置2は、スロットインターフェース(以下、「I/F」と略記する。)34を備える。スロットI/F34は、CPU31に接続される。スロットI/F34は、スロット28に接続され、スロット28に装着された記憶媒体(例えば、専用メモリカード)に対するデータの読み出し及び書き込みを、CPU31の指示に応じて行う。
【0080】
CPU31は、フラッシュメモリ32及びDRAM33、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【0081】
本体装置2は、ネットワーク通信部35を備える。ネットワーク通信部35は、CPU31に接続される。ネットワーク通信部35は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行う。本実施形態においては、ネットワーク通信部35は、第1の通信態様としてWi−Fiの規格に準拠した方式により、無線LANに接続して外部装置と通信を行う。また、ネットワーク通信部35は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の本体装置2との間で無線通信を行う。なお、上記第2の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置2との間で無線通信可能であり、複数の本体装置2の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【0082】
本体装置2は、コントローラ通信部36を備える。コントローラ通信部36は、CPU31に接続される。コントローラ通信部36は、左コントローラ4及び/又は右コントローラ6と無線通信を行う。本体装置2と左コントローラ4及び右コントローラ6との通信方式は任意であるが、本実施形態においては、コントローラ通信部36は、左コントローラ4との間及び右コントローラ6との間で、Bluetooth(登録商標)の規格に従った通信を行う。
【0083】
CPU31は、上述の左側端子26、右側端子27、及び、下側端子30に接続される。CPU31は、左コントローラ4と有線通信を行う場合、左側端子26を介して左コントローラ4にデータを送信するとともに、左側端子26を介して左コントローラ4から操作データを受信する。また、CPU31は、右コントローラ6と有線通信を行う場合、右側端子27を介して右コントローラ6にデータを送信するとともに、右側端子27を介して右コントローラ6から操作データを受信する。また、CPU31は、クレードル8と通信を行う場合、下側端子30を介してクレードル8にデータを送信する。このように、本実施形態においては、本体装置2は、左コントローラ4及び右コントローラ6との間で、それぞれ有線通信と無線通信との両方を行うことができる。また、左コントローラ4及び右コントローラ6が本体装置2に装着された一体型装置がクレードル8に装着された場合、本体装置2は、クレードル8を介してデータ(例えば、画像データや音声データ)を据置型モニタ6に出力することができる。
【0084】
ここで、本体装置2は、複数の左コントローラ4と同時に(換言すれば、並行して)通信を行うことができる。また、本体装置2は、複数の右コントローラ6と同時に(換言すれば、並行して)通信を行うことができる。したがって、ユーザは、複数の左コントローラ4及び複数の右コントローラ6を用いて本体装置2に対する入力を行うことができる。
【0085】
本体装置2は、タッチパネル23の制御を行う回路であるタッチパネルコントローラ37を備える。タッチパネルコントローラ37は、タッチパネル23とCPU31との間に接続される。タッチパネルコントローラ37は、タッチパネル23からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、CPU31へ出力する。
【0086】
また、ディスプレイ22は、CPU31に接続される。CPU31は、(例えば、上記の情報処理の実行によって)生成した画像及び/又は外部から取得した画像をディスプレイ22に表示する。
【0087】
本体装置2は、電力制御部38及びバッテリ39を備える。電力制御部38は、バッテリ39及びCPU31に接続される。また、図示しないが、電力制御部38は、本体装置2の各部(具体的には、バッテリ39の電力の給電を受ける各部、左側端子26、及び右側端子27)に接続される。
【0088】
また、電力制御部38は、CPU31からの指令に基づいて、バッテリ39から上記各部への電力供給を制御する。また、電力制御部38は、電源ボタン29に接続される。電力制御部38は、電源ボタン29に対する入力に基づいて、上記各部への電力供給を制御する。すなわち、電力制御部38は、電源ボタン29に対して電源をオフする操作が行われた場合、上記各部の全部又は一部への電力供給を停止し、電源ボタン29に対して電源をオンする操作が行われた場合、電力制御部38は、上記各部の全部又は一部への電力供給を開始する。また、電力制御部38は、電源ボタン29に対する入力を示す情報(具体的には、電源ボタン29が押下されているか否かを示す情報)をCPU31へ出力する。
【0089】
また、バッテリ39は、下側端子30に接続される。外部の充電装置(例えば、クレードル8)が下側端子30に接続され、下側端子30を介して本体装置2に電力が供給される場合、供給された電力がバッテリ39に充電される。
【0090】
(左コントローラ4)
図4に示すように、左コントローラ4は、本体装置2との間で行う通信を制御する通信制御部50を備える。通信制御部50は、端子52及び本体通信部53を含む各構成要素に接続される。本実施形態においては、通信制御部50は、端子52を介した有線通信と、端子52を介さずに本体通信部53を介した無線通信との両方で本体装置2と通信を行うことが可能である。
【0091】
本体通信部53は、通信制御部50に接続される。本体通信部53は、本体装置2と無線通信を行う。本体装置2と左コントローラ4との通信方式は任意であるが、本実施形態においては、上述のように、本体通信部53は、本体装置2との間で、Bluetooth(登録商標)の規格に従った通信を行う。
【0092】
通信制御部50は、左コントローラ4が本体装置2に対して行う通信方法を制御する。すなわち、左コントローラ4が本体装置2に装着されている場合、通信制御部50は、端子52を介して本体装置2と有線通信を行う。また、左コントローラ4が本体装置2から外されている場合、通信制御部50は、本体通信部53を介して本体装置2(具体的には、コントローラ通信部36)との間で無線通信を行う。
【0093】
また、左コントローラ4は、例えばフラッシュメモリ等のメモリ51を備える。通信制御部50は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ51に記憶されるファームウェアを実行することによって各種の処理を実行する。
【0094】
左コントローラ4は、各ボタン44a〜44d、45〜48を備える。また、左コントローラ4は、スティック43を備える。各ボタン44a〜44d、45〜48及びスティック43は、自身に対して行われた操作に関する情報を、操作データとして適宜のタイミングで繰り返し通信制御部50へ出力する。
【0095】
図5は、スティック43の詳細な構成を模式的に示す図である。
図5に示すように、スティック43は、スティック43の傾倒の方向及び大きさを検知する傾倒検知部431及びスティック43の押込入力の有無を検知する押込検知部432を備えている。傾倒検知部431は、スティック43に対する入力に関する情報として、スティック43の傾倒の方向及び大きさを示す操作情報を通信制御部50に出力する。一例として、傾倒検知部431は、2軸に設けられた可変抵抗であってもよく、その場合、それぞれの軸方向に関するスティック43の傾き量に応じた抵抗値を示し、2軸の成分によってスティック43の傾倒の方向および大きさが分かる。また、押込検知部432は、スティック43に対する入力に関する情報として、スティック43の押込入力の有無を示す操作情報を通信制御部50に出力する。一例として、押込検知部432は、スティックの下に設けられたスイッチである。なお、スティック63も同様に、スティック63の傾倒の方向及び大きさを検知する傾倒検知部631及びスティック63の押込入力の有無を検知する押込検知部632を備えている。
【0096】
通信制御部50は、各入力部(具体的には、各ボタン44a〜44d、45〜48、スティック43)から、入力に関する情報(具体的には、操作に関する情報、又は、検知部による検出結果)を取得する。通信制御部50は、取得した情報(又は取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【0097】
操作データが本体装置2へ送信されることによって、本体装置2は、左コントローラ4に対して行われた入力を得ることができる。すなわち、本体装置2は、各ボタン44a〜44d、45〜48及びスティック43に対する操作を、操作データに基づいて判別することができる。
【0098】
左コントローラ4は、電力供給部54を備える。本実施形態において、電力供給部54は、バッテリ及び電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ4の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。電力制御回路は、バッテリから上記各部への電力供給を制御する。また、バッテリは、端子52に接続される。本実施形態においては、左コントローラ4が本体装置2に装着される場合、所定の条件下で、バッテリは、端子52を介して本体装置2からの給電によって充電される。
【0099】
(右コントローラ6)
右コントローラ6は、本体装置2との間で行う通信を制御する通信制御部70を備える。また、右コントローラ6は、通信制御部70に接続されるメモリ71を備える。通信制御部70は、端子72及び本体通信部73を含む各構成要素に接続される。本体通信部73は、通信制御部70に接続される。本体通信部73は、本体装置2と無線通信を行う。本体装置2と左コントローラ6との通信方式は任意であるが、本実施形態においては、上述のように、本体通信部73は、本体装置2との間で、Bluetooth(登録商標)の規格に従った通信を行う。
【0100】
通信制御部70、メモリ71、端子72、及び本体通信部73は、左コントローラ4の通信制御部50、メモリ51、端子52、及び本体通信部53と同様の機能を有する。したがって、通信制御部70は、端子72を介した有線通信と、端子72を介さずに本体通信部73を介した無線通信との両方で本体装置2と通信を行うことが可能であり、右コントローラ6が本体装置2に対して行う通信方法を制御する。
【0101】
右コントローラ6は、左コントローラ4の各入力部と同様の各入力部(具体的には、各ボタン64a〜64d、65〜69、スティック63)を備える。これらの各入力部については、左コントローラ4の各入力部と同様の機能を有し、同様に動作する。また、スティック63は、スティック43と同様に、スティック63の傾倒の方向及び大きさを検知する傾倒検知部631及び押下検知部632を備えている(
図5参照)。傾倒検知部631は、スティック63に対する入力に関する情報として、スティック63の傾倒の方向及び大きさを示す操作情報を通信制御部70に出力する。また、押下検知部632は、スティック63に対する入力に関する情報として、スティック63の押下の有無を示す操作情報を通信制御部70に出力する。
【0102】
右コントローラ6は、電力供給部74を備える。電力供給部74は、左コントローラ4の電力供給部54と同様の機能を有し、同様に動作する。すなわち、電力供給部74は、バッテリから給電を受ける各部への電力供給を制御する。また、右コントローラ6が本体装置2に装着される場合、所定の条件下で、バッテリは、端子72を介して本体装置2からの給電によって充電される。
【0103】
[利用態様]
以上に説明したように、本実施形態におけるゲームシステム1において、左コントローラ4及び右コントローラ6は本体装置2から着脱可能である。また、クレードル8を介して本体装置2を据置型モニタに接続することも可能である。したがって、以下に説明するような種々の利用態様でゲームシステム1を利用することができる。
【0104】
(装着状態)
図6は、左コントローラ4及び右コントローラ6を本体装置2に装着した状態(「装着状態」という)のゲームシステム1を1人のユーザが両手で把持して利用する様子の一例を示す図である。この装着状態は、1人のユーザがディスプレイ22を見ながらゲームを行うのに適している。装着状態では、ユーザは、左コントローラ4を左手で把持し、右コントローラ6を右手で把持する。こうすることで、左右の手の間に本体装置2のディスプレイ22が位置することになる。また、上述のように、左コントローラ4と右コントローラ6とでは、スティック43、63と各操作ボタン44a〜44d、64a〜64dとの上下関係が逆になっているので、左右の手を同じ高さにすると、一方の手(
図6の例では、左手の親指)でスティックを操作し、他方の手(
図6の例では、右手の親指)で各操作ボタンを操作するのに便利である。
【0105】
(離脱状態:1人プレイ)
上述のように、本実施形態においては、左コントローラ4及び右コントローラ6を本体装置2から外した状態(「離脱状態」という)でゲームシステム1を利用することも可能である。
図7は、離脱状態において、1人のユーザが左コントローラ4を左手に把持して、右コントローラ6を右手に把持してゲームシステム1を利用する様子の一例を示す図である。
図7に示すように、離脱状態では、左コントローラ4と右コントローラ6との位置関係が固定されておらず、両コントローラを自由に動かすことができる。
【0106】
(離脱状態:2人プレイ)
図8は、離脱状態において、2人のユーザが1つずつコントローラを把持してゲームシステム1を利用する様子の一例を示す図である。
図8の例では、一方のユーザU1は、左コントローラ4を両手で把持し、他方のユーザU2は右コントローラ6を両手で把持する。
【0107】
本実施形態においては、右コントローラ6におけるスティック63と各操作ボタン64a〜64dとの位置関係は、
図7のように縦長に配置した場合において、左コントローラ4におけるこれら2種類の操作部の位置関係とは反対になっている。したがって、
図8に示すように、2人のユーザが左コントローラ4と右コントローラ6とを横長になる向きで把持した場合、上記2種類の操作部の位置関係は、2つのコントローラで同じになる。つまり、本実施形態においては、ユーザは、上記2種類の操作部に関して、本体装置2から外した左コントローラ4と右コントローラ6とを同じような操作感覚で使用することができる。これによって、コントローラの操作性を向上させることができる。
【0108】
また、離脱状態においては、左コントローラ4の4つの操作ボタン44a〜44dは、右コントローラ6の4つの操作ボタン64a〜64dと同じ機能として用いられてもよい(換言すれば、同じ指示を行うために用いられてもよい)。一例として、右方向ボタン44aがYボタン64cと同じ機能として用いられ、下方向ボタン44bがXボタン64dと同じ機能として用いられ、左方向ボタン44cがAボタン64aと同じ機能として用いられ、上方向ボタン44dがBボタン64bと同じ機能として用いられてもよい。このように、本実施形態においては、装着状態と離脱状態とで、操作ボタン44a〜44d、64a〜64dの機能が変更されてもよい。ただし、各操作ボタンがどのような指示に用いられるかは、本体装置2において実行されるプログラムによって自由に決められてよい。
【0109】
(離脱状態:据置モニタ接続)
図9は、離脱状態において、1人のユーザが2つのコントローラを把持してゲームシステム1を利用する様子の他の例を示す図である。
図9に示すように、離脱状態においては、本体装置2をクレードル8に載置して、クレードル8を据置型モニタ9に接続して、ユーザが据置型モニタ9の画面を見ながらゲームを行うことができる。このようにして外部表示装置を利用する場合、ゲームシステム1は従来の据置型のゲーム装置と同様に利用することができる。
【0110】
クレードル8は、本体装置2の下側端子30と接続され、下側端子30を介して本体装置2から画像信号を受けて、据置モニタ9に出力する。また、クレードル8は電源端子を備えている。電源端子にはACアダプタが接続され、クレードル8には商用電源が供給される。クレードル8は、下側端子30を介して商用電源からの電力を本体装置2に供給する。
【0111】
[ゲーム処理]
以下、上記のゲームシステム1を用いて行うゲーム処理について説明する。このゲームは、プレイヤキャラクタを3次元の仮想空間内で移動させ、プレイヤキャラクタに各種のアクションを行わせながら進めるゲームである。本実施の形態では、プレイヤキャラクタはアクションとして所定のサポートオブジェクトを飛ばすことができる。一例として、プレイヤキャラクタが帽子をかぶっており、その帽子を飛ばす。仮想空間には仮想カメラが設定されており、この仮想カメラから疑似的に撮影された画像がディスプレイ22又は据置モニタ9(以下単に「ディスプレイ22」という)に表示される。この仮想カメラの位置及び方向は、ディスプレイ22に表示される画像の視点の仮想空間内での位置及び方向ともいうことができる。
【0112】
仮想カメラの位置及び方向は、以下に説明するようにユーザの操作によって変更されるが、本実施の形態では、仮想カメラはプレイヤキャラクタを画面の中央部に映すように、その位置及び方向が決定される。プレイヤキャラクタ及び仮想カメラの仮想空間内での移動及び方向転換は、左コントローラ4及び右コントローラ6に対するユーザの入力を示す操作データに基づいて、本体装置2のCPU31が所定のゲームプログラムに従って行う。
【0113】
本実施の形態のゲームには、1人プレイモードと2人プレイモードを含む複数のプレイモードが設定されている。以下、それぞれのモードにおけるプレイヤキャラクタ及び仮想カメラの移動制御について説明する。
【0114】
(1人プレイモード)
1人プレイモードは、1人でユーザが2つのコントローラを用いてプレイするモードである。このプレイモードでは、ユーザは左右の手で2つのスティック(スティック43とスティック63)を操作することができる。ユーザは、
図7又は
図9に示すように左手に左コントローラ4を把持し、右手に右コントローラ6を把持してプレイをするものとする。ユーザは、左コントローラ4のスティック43を操作することで、プレイヤキャラクタを仮想空間内で移動させことができ、右コントローラ6のスティック63を操作することでプレイヤキャラクタに対する仮想カメラの位置を変更することができる。すなわち、1人プレイモードでは、プレイヤキャラクタの操作を行うスティックと仮想カメラの操作を行うスティックとが分離している。ユーザはこれらの2つの操作を同時に行うことができる。以下、具体的に処理について説明する。
【0115】
まず、右コントローラ6のスティック63による仮想カメラの操作について説明する。
図10は、プレイヤキャラクタPと仮想カメラCとの仮想空間内での位置関係を側方から見た図である。
図11は、
図10の状態を上方から見た図である。
図10及び
図11に示すように、仮想カメラCは、いずれの位置においてもプレイヤキャラクタPを画角(視野範囲)Aの略中央部に捉える向きに設定される。
【0116】
仮想カメラCは、スティック63に対する左右方向の操作に応じて水平方向の軌道HTを移動し、スティック63に対する上下方向の操作に応じて垂直方向の軌道VTを移動する。水平方向の軌道HT及び垂直方向の軌道VTは、プレイヤキャラクタPを基準として設定される。本実施の形態では、水平方向の軌道HTは、プレイヤキャラクタPを中心とする半径Rの水平な円の周であり、垂直方向の軌道VTは、プレイヤキャラクタPを中心とする半径Rの垂直な円の周である。すなわち、本実施の形態では、プレイヤキャラクタPとカメラCとの間の距離はRに保たれ、仮想カメラCは、プレイヤキャラクタPを中心とする半径Rの球面上を移動することになる。
【0117】
図12は、スティック63を操作することで仮想カメラCを移動させる様子を示す図である。時刻t0のとき仮想カメラCは位置cp
t0に位置している。このとき、仮想カメラCはプレイヤキャラクタPを画角の略中央にとらえており、プレイヤキャラクタPとの距離はRである。この状態でスティック63を右方向に傾倒すると、時刻t1には、仮想カメラCは移動成分M
1によって仮想空間内を軌道HTに沿って左方向に移動して、位置cp
t1まで移動する。すなわち、仮想カメラCはプレイヤキャラクタPに対して回り込むように移動する。なお、移動成分M
1の大きさ(回り込み量)は、スティック63の傾倒量に対応しており、傾倒量が大きいほど移動成分M
1も大きくなる。
【0118】
仮想カメラCは位置cp
t1でもプレイヤキャラクタPを画角A
t1の略中央にとらえるようにその向きを自動的に変更する。なお、時刻t1は時刻t0から1処理フレーム後の時刻である。ここで、処理フレームとは、CPU31が左コントローラ4及び右コントローラ6からの操作データを受けてプレイヤキャラクタP及び仮想カメラCの移動のための処理を行う最小の単位時間であり、例えば、1/15秒である。
【0119】
なお、本実施の形態では、スティック63を傾倒する方向(右方向)と仮想カメラCの移動方向(左方向)とが逆になっているが、仮想カメラCが移動成分M
1によってプレイヤキャラクタPの左側に回り込むことにより、ディスプレイ22に表示される画面は、プレイヤキャラクタPのより右側が映るように移動されており、スティック63の傾倒方向(右方向)と仮想カメラCの画角の変更方向(右方向)とは一致している。よって、ユーザは見たい方向にスティック63を傾倒することとなり、仮想カメラCの移動を意識せずに視野を変更できる。
【0120】
また、図示は省略するが、ユーザはスティック63を上下方向に操作することで、上記と同様にして、仮想カメラCを仮想空間内で軌道VTに沿って上下方向に移動させることができる。この場合も、仮想カメラCは、その移動に伴って、画角の略中央にプレイヤキャラクタPをとらえるように方向を自動的に変更する。また、スティック63が下向きに傾倒されたときに、仮想カメラCは軌道VTを上方向に移動し、スティック63が上向きに傾倒されたときに、仮想カメラCは軌道VTを下向きに移動する。
【0121】
なお、仮想カメラCは、スティック63を斜め方向に傾倒することで、上記の水平方向の移動と垂直方向の移動とを同時に行うことができ、この場合には、スティック63の傾倒を横方向と縦方向とに分解して、それぞれの傾倒量に従って、仮想カメラCの横方向の移動成分(回り込み量)及び縦方向の移動成分(回り込み量)を算出して、それらを合成した移動成分に従って仮想カメラCを移動させる。
【0122】
また、スティック63の傾倒が継続する場合には、処理フレームごとに上記の計算を行って仮想カメラCの位置を算出して、画面を変更する。
図12の例の場合には、スティック63の傾倒を継続することで仮想カメラCはプレイヤキャラクタPを中心とする半径Rの球面上を回ることになる。
【0123】
次に、左コントローラ4のスティック43によるプレイヤキャラクタPの移動及びそれに伴う仮想カメラCの移動について説明する。プレイヤキャラクタPは、スティック43の傾倒方向に従って仮想空間内を移動する。このとき、仮想カメラCはプレイヤキャラクタPに追従するように仮想空間内を移動する。この場合も、仮想カメラCはいずれの位置においてもプレイヤキャラクタPが画角Aの略中央に位置するように、その方向が設定される。
【0124】
図13は、仮想空間を上方から見た図であり、プレイヤキャラクタPを横方向に移動させたときの仮想カメラCの追従を説明する図である。
図13は、スティック43を右方向に傾倒することでプレイヤキャラクタPを右方向に移動させる様子を示している。時刻t0のときにプレイヤキャラクタPは位置pp
t0に位置している。このとき、仮想カメラCはプレイヤキャラクタPを画角の略中央に収める向きとなっており、プレイヤキャラクタPとの距離はRである。この状態でスティック43を右方向に傾倒すると、時刻t1には、プレイヤキャラクタPは移動成分M
2によって仮想空間内を右方向に移動して、位置pp
t1まで移動する。この移動に伴って、軌道HTも位置pp
t0のプレイヤキャラクタPを基準とする軌道HT
t0から位置pp
t1のプレイヤキャラクタPを基準とする軌道HT
t1に変更される。なお、移動成分M
2の大きさ(長さ)は、スティック43の傾倒量に対応しており、傾倒量が大きいほど移動成分M
2も大きくなる。
【0125】
このプレイヤキャラクタPの移動に伴って仮想カメラCは、位置cp
t0から移動成分M
3によって位置cp
t1まで移動する。移動後の仮想カメラCの位置cp
t1は、移動後のプレイヤキャラクタPの位置pp
t1と移動前の仮想カメラCの位置cp
t0とを結ぶ直線Lと、移動後のプレイヤキャラクタPを基準とする軌道HT
t1との交点として求められる。換言すれば、移動成分M
3は、仮想カメラCが移動後のプレイヤキャラクタPに向かって、プレイヤキャラクタPとの距離がRになるまで進むための移動成分である。この場合にも、仮想カメラCは移動先の位置cp
t1において、プレイヤキャラクタPが画角の略中央に位置するような方向に設定される。また、スティック43の傾倒を継続することで、上記のプレイヤキャラクタPの移動及び仮想カメラCの移動が処理フレームごとに行われる。
【0126】
なお、プレイヤキャラクタPは、スティック43を斜め方向に傾倒することで、上記の横方向の移動と奥行方向の移動とを同時に行うことができ、この場合には、スティック43の傾倒を横方向と縦方向とに分解して、それぞれの傾倒量に従って、プレイヤキャラクタPの横方向の移動成分及び奥行方向の移動成分を算出して、それらを合成した移動成分に従ってプレイヤキャラクタPを移動させる。また、そのように移動するプレイヤキャラクタPに追従する仮想カメラCの位置も、同様にして、移動前の仮想カメラCの位置と移動後のプレイヤキャラクタPの位置とを結ぶ直線と、移動後のプレイヤキャラクタPを基準とする水平方向の軌道HTとの交点として求めることができる。
【0127】
図14は、スティック43とスティック63とを同時に操作することでプレイヤキャラクタPとともに仮想カメラCを移動させる様子を示す図である。スティック43とスティック63とを同時に傾倒すると、プレイヤキャラクタPはスティック43の傾倒に従って仮想空間内を移動し、仮想カメラCは、
図12を参照して説明したスティック63の傾倒による回り込みの移動成分M
1と、
図13を参照して説明した追従の移動成分M
3とを合成した移動成分M
13によって移動する。
【0128】
図14の例では、スティック43を右上に傾倒することでプレイヤキャラクタPを位置pp
t0から位置pp
t1まで右上に移動させるとともに、スティック63を左に傾倒させることで仮想カメラCをプレイヤキャラクタPの右側に回り込ませている。本実施の形態では、追従の移動成分M
3で移動させた位置cp
t´から移動後のプレイヤキャラクタPの位置pp
t1を基準とする軌道HT
t1に沿って、回り込みの移動成分M
1を加算することで、最終的な移動成分M
13を算出している。なお、この例の他、位置cp
t0にある仮想カメラCをまずスティック63の傾倒に従って位置pp
t0のプレイヤキャラクタPを基準とする軌道HT
t0に沿って回り込みの移動成分M
1を算出し、移動成分M
1による移動と移動後のプレイヤキャラクタPの位置pp
t1とを結ぶ直線と、移動後のプレイヤキャラクタPを基準とする軌道HT
t1との交点を最終的な移動先とすることで、追従の移動と回り込みの移動とを合成してもよい。
【0129】
上記のように、1人プレイモードでは、スティック43を用いたプレイヤキャラクタPの移動の方向と、それと同時に行うスティック63を用いた仮想カメラCのプレイヤキャラクタPに対する回り込みの移動の方向とは、互いに独立しており、各々の方向を任意に入力可能である。また、スティック63を斜め方向に傾倒することで、仮想カメラCを左右方向に回り込ませると同時に、上下方向にも回り込ませることができる。
【0130】
図13に示すように、移動するプレイヤキャラクタPに追従するように仮想カメラCを移動させる制御方法を「第1の制御方法」といい、スティックへの操作に応じて仮想カメラCの追従の移動成分を求めるアルゴリズムを「第1のアルゴリズム」という。本実施の形態の1人プレイモードでは、CPU31は、スティック43に対して行われた傾倒入力に応じて、第1のアルゴリズムによって仮想カメラCの追従の移動成分を求めて、その追従の移動成分によって仮想カメラCを移動させる第1の制御方法を行う。
【0131】
また、
図12に示すように、スティックへの操作に応じて仮想カメラの回り込みの移動成分を求めるアルゴリズムを「第2のアルゴリズム」といい、
図14に示すように、第1のアルゴリズムによって求めた仮想カメラCの追従の移動成分と第2のアルゴリズムによって求めた仮想カメラCの回り込みの移動成分とを合わせた移動成分で仮想カメラCを移動させる制御方法を「第2の制御方法」という。本実施の形態の1人プレイモードでは、CPU31は、スティック43に対して行われた傾倒入力に応じて第1のアルゴリズムによって仮想カメラCの追従の移動成分を求め、スティック63に対して行われた傾倒入力に応じて、第2のアルゴリズムによって仮想カメラCの回り込みの移動成分を求めて、それらの追従及び回り込みの移動成分を含む移動成分によって仮想カメラCを移動させる第2の制御方法を行う。
【0132】
(2人プレイモード)
2人プレイモードでは、2人のユーザがそれぞれ1つのスティックを使用する。本実施の形態のゲームは、上述のように、ユーザが、サポートオブジェクトを飛ばすようにプレイヤキャラクタPを操作できる。本実施の形態では、左コントローラ4によって、上述のプレイヤキャラクタPの移動及び仮想カメラCの操作を行うことができ、右コントローラ6によってサポートオブジェクトを飛ばすアクションを行うことができる。一例として、サポートオブジェクトはプレイヤキャラクタPが被っている帽子であって、左コントローラ4によって操作されるプレイヤキャラクタPの周辺で、右コントローラ6によって帽子が飛ばされるようにしてもよい。すなわち、1人プレイモードでは、2つのスティック43,63を使って、それぞれプレイヤキャラクタPの移動及び仮想カメラCの移動(回り込み)を操作したが、2人プレイモードでは、これをスティックを1つだけ備えるそれぞれのコントローラで実現する。
【0133】
図15は、2人プレイモードにおいて仮想カメラCの移動(回り込み)をする様子を示す図である。2人プレイモードでは、左コントローラ4の第2Lボタン47を押しながらスティック43を傾倒することで、仮想カメラCを仮想空間内で移動させることができる。すなわち、第2Lボタン47を押している間は、CPU31は、スティック43が傾倒されてもそれによってプレイヤキャラクタPは移動させず、スティック43の傾倒方向及び傾倒量に従って仮想カメラCをプレイヤキャラクタPの周りで移動させる。
【0134】
これによって、
図15に示すように、
図12に示す例と同様にして仮想カメラCをプレイヤキャラクタPの周りで移動させることができる。CPU31は、2人プレイモードでは、第2Lボタン47の押下を示す操作データと、スティック43の傾倒を示す操作データを受けた場合には、第2のアルゴリズムに従って移動成分M
1を算出し、算出した移動成分M
1によって仮想カメラCを移動させる。すなわち、第2のアルゴリズムによって仮想カメラCの回り込みの移動成分を求めて仮想カメラCの移動制御を行う点は、1人プレイモードの場合と同じである。
【0135】
この結果、時刻t0において位置cp
t0にあった仮想カメラCは、時刻t1には、プレイヤキャラクタPを中心とする半径Rの軌道HTに沿って位置cp
t1まで移動成分M
1だけ移動する。また、1人プレイモードの場合と同様に、CPU31は、画角A
t1の略中央にプレイヤキャラクタPが収まるように、移動先の位置cp
t1における仮想カメラCの方向を決定する。
【0136】
図16は、2人プレイモードにおいてプレイヤキャラクタPの移動をする様子を示す図である。2人プレイモードでは、左コントローラ4の第2Lボタン47を押下しないでスティック43を傾倒することで、プレイヤキャラクタPを仮想空間内で移動させることができる。これによって、
図16に示すように、
図13に示す例と同様にしてプレイヤキャラクタPを移動させることができ、また、仮想カメラCはプレイヤキャラクタPの移動に伴ってそれに追従するように移動する。
【0137】
CPU31は、2人プレイモードでは、第2Lボタン47の押下を示す操作データを受けずに、スティック43の傾倒を示す操作データを受けた場合には、第1のアルゴリズムに従って移動成分M
3を算出し、算出した移動成分M
3によって仮想カメラCを移動させるという第1の制御方法を行う。すなわち、第1のアルゴリズム及び第1の制御方法によって仮想カメラCの移動制御を行う点は、1人プレイモードの場合と同じである。
【0138】
この結果、時刻t0において位置pp
t0にあったプレイヤキャラクタPは、時刻t1には、スティック43の傾倒方向及び傾倒量に従って移動成分M
2によって位置pp
t1まで移動する。仮想カメラCは、時刻t1には、もとの位置cp
t0と移動後のプレイヤキャラクタPの位置pp
t1とを結ぶ直線と、移動後のプレイヤキャラクタPの位置pp
t1を基準とする軌道HT
t1との交点の位置cp
t1まで、移動成分M
3によって移動する。また、1人プレイモードの場合と同様に、CPU31は、画角A
t1の略中央にプレイヤキャラクタPが収まるように、移動先の位置cp
t1における仮想カメラCの方向を決定する。
【0139】
図17は、2人プレイモードにおいて、プレイヤキャラクタPと仮想カメラCの移動を同時に行う様子を示す図である。上述のように、2人プレイモードでは、スティック43を操作する際に同時に第2Lボタン47を押下しているか否かで、プレイヤキャラクタPを移動させるか、仮想カメラCを移動させるかを切り替えている。したがって、この機能のみでは、プレイヤキャラクタPを移動させつつ仮想カメラCも移動(回り込み)させることができない。そこで、本実施の形態では、スティック43の押込検知部432を利用して以下のようにしてプレイヤキャラクタPと仮想カメラCの同時移動を実現する。
【0140】
CPU31は、押込検知部432からスティック43に対する押込入力を検知した旨の操作データを受け、同時にスティック43の傾倒検知部431から傾倒入力に関する操作データを受けた場合には、傾倒入力の傾倒方向及び傾倒量に従ってプレイヤキャラクタPを移動させるとともに、傾倒入力の傾倒方向及び傾倒量に従って仮想カメラCを移動(回り込み)させる。
【0141】
具体的には、CPU31は、まず、傾倒入力の傾倒方向及び傾倒量に従ってプレイヤキャラクタPを仮想空間内で移動させ、この移動後のプレイヤキャラクタPの位置pp
t1と移動前の仮想カメラCの位置cp
t0とを結ぶ直線Lと、移動後のプレイヤキャラクタPを基準とする軌道HT
t1との交点cp
t´への移動成分M
3を算出し(すなわち、第1のアルゴリズムによって移動成分M
2を算出し)、傾倒入力の傾倒方向及び傾倒量に従って、移動後のプレイヤキャラクタPを基準とする軌道HT
t1に沿って回り込む移動成分M
1を算出し(すなわち、第2のアルゴリズムによって移動成分M
1を算出し)、位置cp
t´から移動成分M
1だけ移動した位置cp
t1に、仮想カメラCを移動させる。すなわち、CPU31は、プレイヤキャラクタPに追従するための移動成分M
3と仮想カメラCの回り込みの移動成分M
1とを合成した移動成分M
13によって、仮想カメラCをもとの位置cp
t0から位置cp
t1に移動させる。
【0142】
すなわち、プレイヤキャラクタPの移動と仮想カメラCの移動とが同時に指示された場合に、第1のアルゴリズムによって追従の移動成分M
3を算出し、第2のアルゴリズムによって回り込みの移動成分M
1を算出し、及びそれらの移動成分を合わせた移動を行う第2の制御方法によって仮想カメラCを移動させる点は、1人プレイモードの場合と同じである。ただし、2人プレイモードでは、プレイヤキャラクタPと仮想カメラCとを同時に移動させる場合に、それらの移動のためのスティック43の傾倒方向及び傾倒量は、プレイヤキャラクタPの移動と仮想カメラCの移動とで同じになる。
【0143】
なお、本実施の形態の2人プレイモードでは、スティック43に対して押込入力と同時に傾倒入力をする場合に、傾倒入力の上下方向の成分は仮想カメラCの移動成分M
1には反映させないようにする。こうすることで、スティック43に対して押込入力をしながら傾倒入力する場合において、プレイヤキャラクタPを仮想空間の奥行方向に移動させたい場合に、意図せずして仮想カメラCが上下方向に回り込んでしまうことを防止できる。
【0144】
次に、2人プレイモードにおいてスティック43に継続的に傾倒入力がされる場合のプレイヤキャラクタPの移動について、
図18及び
図19を参照して説明する。
図18は、プレイヤキャラクタPを移動させる操作を継続した場合のプレイヤキャラクタPの移動とそれに伴う仮想カメラCの追従の様子を示す図であり、
図19は、プレイヤキャラクタPの移動とともに仮想カメラCの移動もさせた場合のプレイヤキャラクタPと仮想カメラCの移動の様子を示す図である。プレイヤキャラクタPを移動させる操作が継続された場合において、
図18に示すように、仮想カメラCを追従させつつプレイヤキャラクタPを移動させる制御方法を「第3の制御方法」といい、
図19に示すように、仮想カメラCを追従させ、かつ、回り込ませつつプレイヤキャラクタPを移動させる制御方法を「第4の制御方法」という。
【0145】
第3及び第4の制御方法のいずれの場合にも、スティック43に対して例えば右に傾倒入力されている場合には、CPU31は、各処理フレームで仮想カメラCによって疑似的に撮像した画像の右側にプレイヤキャラクタPを移動させる。プレイヤキャラクタPは右方向への移動が指示されると、仮想カメラCとプレイヤキャラクタPとを結ぶ線分と垂直に右方向に移動する。第3及び第4の制御方法のいずれの場合にも、プレイヤキャラクタPの移動とともに仮想カメラCも移動するので、スティック43の右方向への傾倒を継続した場合には、プレイヤキャラクタPは仮想空間内で直線状には移動せず、
図18及び
図19に示すように位置pp
t0から、位置pp
t1、位置pp
t2、位置pp
t3、・・・のように弧を描いて移動することになる。なお、
図18及び
図19では、1処理フレームにおけるプレイヤキャラクタPの移動距離が比較的大きく描かれているが、実際の処理では処理フレームを十分に小さくすることで、より滑らかな弧を描くように移動することになる。
【0146】
図18の第3の制御方法と
図19の第4の制御方法とを比較すると、
図18の例では仮想カメラCは単にプレイヤキャラクタPを追従するだけであるのに対して、
図19の例では、仮想カメラCがプレイヤキャラクタPに対して回り込むように移動するので、前の処理フレームに対してより大きな角度を成して次の処理フレームのプレイヤキャラクタPの移動成分が算出される。その結果、
図19のようにスティック43を押込みながら傾倒すると、
図18のようにスティック43を押し込まずに傾倒する場合と比較して、プレイヤキャラクタPは仮想空間内をより小さなRの弧を描いて移動することになる。
【0147】
以上説明したように、本実施の形態のゲームシステム1は、プレイヤキャラクタPの仮想空間内での移動方向に関する傾倒入力をするとともに、仮想空間を表示するための仮想カメラCの操作に関する押込入力をするためのスティック43と、ユーザによるスティック43の傾倒を傾倒方向に対応した傾倒入力として検知する傾倒検知部431と、ユーザによるスティック43の押込みを押込入力として検知する押込検知部432と、傾倒入力に基づいてプレイヤキャラクタPを移動させるとともに、押込入力がされず傾倒入力がされている場合には、第1の制御方法に従って傾倒入力に基づいて仮想カメラCを移動させ、傾倒入力と押込入力が同時にされている場合には、第1の制御方法とは異なる第2の制御方法に従って傾倒入力に基づいて仮想カメラCを移動させるCPU31とを備えている。
【0148】
CPU31は、第1の制御方法では、傾倒入力に対応する方向に移動するプレイヤキャラクタに追従するように仮想カメラCを移動させ、第2の制御方法では、傾倒入力に対応する方向に移動するプレイヤキャラクタPに追従するとともに、プレイヤキャラクタPに対して傾倒入力に対応する方向に回り込むように仮想カメラCを移動させる。また、CPU31は、第2の制御方法では、傾倒入力の横方向成分のみに対応して、プレイヤキャラクタPに対して回り込むように仮想カメラCを移動させる。
【0149】
また、CPU31は、傾倒入力と押込入力とが同時にされている場合には、比較的小さなRの弧を描くように傾倒入力の横方向成分に基づいてプレイヤキャラクタPを移動させ、押込入力がされず傾倒入力がされている場合には、比較的大きなRの弧を描くように傾倒入力の横方向成分に基づいてプレイヤキャラクタPを移動させる。
【0150】
スティック43、傾倒検知部431、押込検知部432は、左コントローラ4に備えられ、ゲームシステム1は、さらに、仮想カメラCの仮想空間内での移動方向に関する傾倒入力をするためのスティック63を備えた右コントローラ6を備え、CPU31は、左コントローラ4と右コントローラ6とを1人のプレイヤが操作する1人プレイモード、又は左コントローラ4を1人のプレイヤが操作し、右コントローラを他の1人のプレイヤが操作する2人プレイモードを選択可能であり、1人プレイモードでは、押込入力とは無関係に、スティック63に対する傾倒入力に基づいて仮想カメラCを移動させ、2人プレイモードでは、第1の制御方法又は第2の制御方法に従ってスティック43への傾倒入力に基づいて仮想カメラCを移動させる。
【0151】
また、CPU31は、1人プレイモードと2人プレイモードとで、スティック43に対する傾倒入力の方向とプレイヤキャラクタPの仮想空間内での移動方向との対応関係を異ならせる。具体的には、1人プレイモードでは、縦方向にコントローラを把持したときに、画面の上下左右とスティックの上下左右とが一致するように対応関係を設定し、2人プレイモードでは、横方向にコントローラを把持したときに画面の上下左右とスティックの上下左右とが一致するように対応関係を設定する。
【0152】
また、本実施の形態のゲームシステム1は、傾倒入力をするとともに、押込入力をするためのスティック43と、傾倒入力に基づいてプレイヤキャラクタを移動させるとともに、押込入力がされず傾倒入力がされている場合には、第1のアルゴリズムに従って傾倒入力に基づいて仮想カメラCの移動成分を算出して、算出された移動成分を含むように仮想カメラCを移動させ、傾倒入力と押込入力が同時にされている場合には、第1のアルゴリズムに従って傾倒入力に基づいて仮想カメラCの移動成分を算出するとともに、第2のアルゴリズムに従って傾倒入力に基づいて仮想カメラCの移動成分を算出して、算出されたそれらの移動成分を含むように仮想カメラCを移動させるCPU31とを備えている。
【0153】
また、本実施の形態のゲームシステム1は、傾倒入力及び押込入力をするためのスティック43を備えた左コントローラ4と、傾倒入力をするためのスティック63を備えた右コントローラ6と、左コントローラと右第2のコントローラとを1人のプレイヤが操作する1人プレイモード、又は左コントローラを1人のプレイヤが操作し、右コントローラを他の1人のプレイヤが操作する2人プレイモードを選択可能であり、選択されたモードで前記仮想カメラを移動させる本体装置2とを備え、本体装置2は、1人プレイモードでは、第1のアルゴリズムに従ってスティック43に対する傾倒入力に基づいて仮想カメラCの移動成分を算出し、第2のアルゴリズムに従ってスティック63に対する傾倒入力に基づいて仮想カメラCの移動成分を算出し、算出されたそれらの移動成分によって仮想カメラCを移動させ、2人プレイモードでは、第1のアルゴリズムに従ってスティック43に対する傾倒入力に基づいて仮想カメラCの移動成分を算出し、スティック43に対する傾倒入力と押込入力とが同時にされている場合には、さらに、第2のアルゴリズムに従ってスティック43に対する傾倒入力に基づいて仮想カメラCの移動成分を算出し、算出されたすべての移動成分を含むように仮想カメラCを移動させる。
【0154】
なお、上記の実施の形態では、移動させる対象をプレイヤキャラクタとしたが、本発明はこれに限らず、他のキャラクタを移動させる制御を上記の方法で行ってもよい。
【0155】
また、上記の実施の形態では、2人プレイモードにおいて、スティック43の押込みがある場合とない場合とで仮想カメラCの回り込みの移動の有無を切り替えたが、本発明はこれに限られない。例えば、スティック43の上部にボタンを設け、そのボタンの押下の有無によって仮想カメラCの回り込みの移動の有無を切り替えてもよい。また、第2Rボタン48の押下の有無によって仮想カメラCの回り込みの移動の有無を切り替えてもよい。ただし、本実施の形態の場合には、ボタンとスティックという2つの操作部材を操作せずに、スティック43のみに対する操作で、仮想カメラCの回り込みの移動の有無を切り替えることができるので便利である。
【0156】
また、上記の実施の形態では、方向を入力する手段としてスティックを用いる例を説明したが、方向を入力する手段はこれに限らず、例えば十字キーであってもよいし、スライドパッドであってもよい。これらの場合にも、それらの十字キーやスライドパッドに押込みを検知する押込検知部を設けて、押込みながらの方向入力を可能とする構成としてよい。
【0157】
また、上記の実施の形態では、傾倒検知部431は、傾倒方向のみならず傾倒量の大きさを検知し、傾倒入力の大きさに応じてプレイヤキャラクタPや仮想カメラCの移動量(移動成分の大きさ)を変えたが、傾倒検知部431は傾倒の方向のみを検知し、傾倒量の大きさを検知せず、CPU31も1処理フレームにおけるプレイヤキャラクタPの移動成分及び仮想カメラCの回り込みの移動成分の大きさを一定値として、その方向のみを求めるようにしてもよい。また、傾倒検知部431が傾倒量の大きさを検知する場合にも、CPU31は傾倒量を例えば2段階等の離散的な値として扱って移動成分の大きさを算出するようにしてもよい。