(58)【調査した分野】(Int.Cl.,DB名)
複数種類のサブ装置と、複数種類のサブ装置のいずれに対しても着脱可能なメイン装置とを含むゲームシステムであって、所定のゲームアプリケーションを実行するゲームシステムのコンピュータによって実行される情報処理プログラムであって、
前記所定のゲームアプリケーションの実行中において、前記複数種類のサブ装置のうちで前記メイン装置が装着されたサブ装置の種類を判別する判別手段と、
前記所定のゲームアプリケーションの実行中において、前記メイン装置、および/または、当該メイン装置が装着された前記サブ装置を用いたゲーム操作に基づくゲーム処理を実行するゲーム処理実行手段として、前記コンピュータを機能させ、
前記ゲーム処理実行手段は、前記判別手段によって判別された前記サブ装置の種類に応じたゲーム処理を実行し、
前記メイン装置は、撮像装置を備え、
前記判別手段は、前記撮像装置によって撮像された撮像画像に基づいて、前記メイン装置が装着されたサブ装置の種類を判別し、
前記複数種類のサブ装置のうちの少なくともいずれか1種類のサブ装置は、
当該サブ装置に装着された前記メイン装置の前記撮像装置によって撮像可能な被検出部と、
ユーザによる操作に応じて動く可動部とを備え、
前記ユーザの操作に応じて前記可動部が動かされることによって、当該可動部を備えるサブ装置に装着された前記メイン装置と、当該サブ装置の前記被検出部との相対位置および/または相対姿勢が変化し、
前記ゲーム処理実行手段は、前記撮像画像に含まれる前記被検出部の少なくとも一部を示す第1被検出部画像の位置、形状、および向きのうち少なくとも1つに基づいて、前記ユーザの操作を検出し、当該検出されたユーザの操作に基づくゲーム処理を実行する、情報処理プログラム。
前記ゲーム処理手段は、判別された前記サブ装置の種類に基づいて、仮想空間内に配置される仮想カメラの位置および/または姿勢を制御する、請求項1から請求項10のいずれか1項に記載の情報処理プログラム。
前記判別手段は、前記複数種類のサブ装置のいずれに対しても前記メイン装置が装着されていないことをさらに判別する、請求項1から請求項11のいずれか1項に記載の情報処理プログラム。
前記ゲーム処理実行手段は、前記複数種類のサブ装置のいずれに対しても前記メイン装置が装着されていないと判別された場合、当該メイン装置が当該複数種類のサブ装置のいずれかに装着されている場合とは異なるゲーム処理を実行する、請求項12に記載の情報処理プログラム。
前記ゲーム処理実行手段は、前記メイン装置が前記第1状態であると判別される場合、第1のゲーム処理を実行し、前記メイン装置が前記第2状態であると判別される場合、当該第1のゲーム処理とは異なる第2のゲーム処理を実行する、請求項15に記載の情報処理プログラム。
複数種類のサブ装置と、複数種類のサブ装置のいずれに対しても着脱可能なメイン装置とを含むゲームシステムであって、所定のゲームアプリケーションを実行するゲームシステムのコンピュータによって実行される情報処理プログラムであって、
前記所定のゲームアプリケーションの実行中において、前記複数種類のサブ装置のうちで前記メイン装置が装着されたサブ装置の種類を判別する判別手段と、
前記所定のゲームアプリケーションの実行中において、前記メイン装置、および/または、当該メイン装置が装着された前記サブ装置を用いたゲーム操作に基づくゲーム処理を実行するゲーム処理実行手段として、前記コンピュータを機能させ、
前記ゲーム処理実行手段は、前記判別手段によって判別された前記サブ装置の種類に基づいて、仮想空間内に配置される仮想カメラの位置および/または姿勢を制御する、情報処理プログラム。
前記ゲーム処理実行手段は、判別された前記サブ装置の種類に応じて異なるゲーム画像を生成する、請求項20から請求項25のいずれか1項に記載の情報処理プログラム。
前記判別手段は、前記複数種類のサブ装置のいずれに対しても前記メイン装置が装着されていないことをさらに判別する、請求項20から請求項30のいずれか1項に記載の情報処理プログラム。
前記ゲーム処理実行手段は、前記複数種類のサブ装置のいずれに対しても前記メイン装置が装着されていないと判別された場合、当該メイン装置が当該複数種類のサブ装置のいずれかに装着されている場合とは異なるゲーム処理を実行する、請求項31に記載の情報処理プログラム。
前記ゲーム処理実行手段は、前記メイン装置が前記第1状態であると判別される場合、第1のゲーム処理を実行し、前記メイン装置が前記第2状態であると判別される場合、当該第1のゲーム処理とは異なる第2のゲーム処理を実行する、請求項34に記載の情報処理プログラム。
複数種類のサブ装置と、複数種類のサブ装置のいずれに対しても着脱可能なメイン装置とを含むゲームシステムに含まれ、所定のゲームアプリケーションを実行する情報処理装置であって、
前記所定のゲームアプリケーションの実行中において、前記複数種類のサブ装置のうちで前記メイン装置が装着されたサブ装置の種類を判別する判別部と、
前記所定のゲームアプリケーションの実行中において、前記メイン装置、および/または、当該メイン装置が装着された前記サブ装置を用いたゲーム操作に基づくゲーム処理を実行するゲーム処理実行部とを備え、
前記ゲーム処理実行部は、前記判別部によって判別された前記サブ装置の種類に応じたゲーム処理を実行し、
前記メイン装置は、撮像装置を備え、
前記判別部は、前記撮像装置によって撮像された撮像画像に基づいて、前記メイン装置が装着されたサブ装置の種類を判別し、
前記複数種類のサブ装置のうちの少なくともいずれか1種類のサブ装置は、
当該サブ装置に装着された前記メイン装置の前記撮像装置によって撮像可能な被検出部と、
ユーザによる操作に応じて動く可動部とを備え、
前記ユーザの操作に応じて前記可動部が動かされることによって、当該可動部を備えるサブ装置に装着された前記メイン装置と、当該サブ装置の前記被検出部との相対位置および/または相対姿勢が変化し、
前記ゲーム処理実行部は、前記撮像画像に含まれる前記被検出部の少なくとも一部を示す被検出部画像の位置、形状、および向きのうち少なくとも1つに基づいて、前記ユーザの操作を検出し、当該検出されたユーザの操作に基づくゲーム処理を実行する、情報処理装置。
複数種類のサブ装置と、複数種類のサブ装置のいずれに対しても着脱可能なメイン装置とを含むゲームシステムに含まれ、所定のゲームアプリケーションを実行する情報処理装置であって、
前記所定のゲームアプリケーションの実行中において、前記複数種類のサブ装置のうちで前記メイン装置が装着されたサブ装置の種類を判別する判別部と、
前記所定のゲームアプリケーションの実行中において、前記メイン装置、および/または、当該メイン装置が装着された前記サブ装置を用いたゲーム操作に基づくゲーム処理を実行するゲーム処理実行部とを備え、
前記ゲーム処理実行部は、前記判別部によって判別された前記サブ装置の種類に基づいて、仮想空間内に配置される仮想カメラの位置および/または姿勢を制御する、情報処理装置。
複数種類のサブ装置と、複数種類のサブ装置のいずれに対しても着脱可能なメイン装置とを含み、所定のゲームアプリケーションを実行する情報処理システムにおいて実行される情報処理方法であって、
前記所定のゲームアプリケーションの実行中において、前記複数種類のサブ装置のうちで前記メイン装置が装着されたサブ装置の種類を判別する判別ステップと、
前記所定のゲームアプリケーションの実行中において、前記メイン装置、および/または、当該メイン装置が装着された前記サブ装置を用いたゲーム操作に基づくゲーム処理を実行するゲーム処理実行ステップとを備え、
前記ゲーム処理実行ステップにおいては、前記判別ステップにおいて判別された前記サブ装置の種類に応じたゲーム処理を実行し、
前記メイン装置は、撮像装置を備え、
前記判別ステップにおいては、前記撮像装置によって撮像された撮像画像に基づいて、前記メイン装置が装着されたサブ装置の種類を判別し、
前記複数種類のサブ装置のうちの少なくともいずれか1種類のサブ装置は、
当該サブ装置に装着された前記メイン装置の前記撮像装置によって撮像可能な被検出部と、
ユーザによる操作に応じて動く可動部とを備え、
前記ユーザの操作に応じて前記可動部が動かされることによって、当該可動部を備えるサブ装置に装着された前記メイン装置と、当該サブ装置の前記被検出部との相対位置および/または相対姿勢が変化し、
前記ゲーム処理実行ステップにおいては、前記撮像画像に含まれる前記被検出部の少なくとも一部を示す被検出部画像の位置、形状、および向きのうち少なくとも1つに基づいて、前記ユーザの操作を検出し、当該検出されたユーザの操作に基づくゲーム処理を実行する、情報処理方法。
複数種類のサブ装置と、複数種類のサブ装置のいずれに対しても着脱可能なメイン装置とを含み、所定のゲームアプリケーションを実行する情報処理システムにおいて実行される情報処理方法であって、
前記所定のゲームアプリケーションの実行中において、前記複数種類のサブ装置のうちで前記メイン装置が装着されたサブ装置の種類を判別する判別ステップと、
前記所定のゲームアプリケーションの実行中において、前記メイン装置、および/または、当該メイン装置が装着された前記サブ装置を用いたゲーム操作に基づくゲーム処理を実行するゲーム処理実行ステップとを備え、
前記ゲーム処理実行ステップにおいては、前記判別ステップにおいて判別された前記サブ装置の種類に基づいて、仮想空間内に配置される仮想カメラの位置および/または姿勢を制御する、情報処理方法。
【発明を実施するための形態】
【0050】
[1.本体装置および各コントローラのハードウェア構成]
以下、本実施形態の一例に係るゲームシステムについて説明する。本実施形態におけるゲームシステム1の一例は、本体装置(情報処理装置;本実施形態ではゲーム装置本体として機能する)2と左コントローラ3および右コントローラ4とを含む。本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能である。つまり、ゲームシステム1は、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できる。また、ゲームシステム1は、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる(
図2参照)。なお、詳細は後述するが、ゲームシステム1は、各コントローラ3または4を装着可能なアタッチメントを含む。以下では、まず、本体装置2ならびに各コントローラ3および4のハードウェア構成について説明し、その後に、アタッチメントの構成と、当該アタッチメントを用いる場合におけるゲームシステム1の処理とについて説明する。
【0051】
図1は、本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図である。
図1に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、ゲームシステム1における各種の処理(例えば、ゲーム処理)を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。
【0052】
図2は、本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図である。
図1および
図2に示すように、左コントローラ3および右コントローラ4は、本体装置2に着脱可能である。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。
【0053】
図3は、本体装置2の一例を示す六面図である。
図3に示すように、本体装置2は、略板状のハウジング11を備える。本実施形態において、ハウジング11の主面(換言すれば、表側の面、すなわち、ディスプレイ12が設けられる面)は、大略的には矩形形状である。
【0054】
なお、ハウジング11の形状および大きさは、任意である。一例として、ハウジング11は、携帯可能な大きさであってよい。また、本体装置2単体または本体装置2に左コントローラ3および右コントローラ4が装着された一体型装置は、携帯型装置となってもよい。また、本体装置2または一体型装置が手持ち型の装置となってもよい。また、本体装置2または一体型装置が可搬型装置となってもよい。
【0055】
図3に示すように、本体装置2は、ハウジング11の主面に設けられるディスプレイ12を備える。ディスプレイ12は、本体装置2が生成した画像を表示する。本実施形態においては、ディスプレイ12は、液晶表示装置(LCD)とする。ただし、ディスプレイ12は任意の種類の表示装置であってよい。
【0056】
また、本体装置2は、ディスプレイ12の画面上にタッチパネル13を備える。本実施形態においては、タッチパネル13は、マルチタッチ入力が可能な方式(例えば、静電容量方式)のものである。ただし、タッチパネル13は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式(例えば、抵抗膜方式)のものであってもよい。
【0057】
本体装置2は、ハウジング11の内部においてスピーカ(すなわち、
図6に示すスピーカ88)を備えている。
図3に示すように、ハウジング11の主面には、スピーカ孔11aおよび11bが形成される。そして、スピーカ88の出力音は、これらのスピーカ孔11aおよび11bからそれぞれ出力される。
【0058】
また、本体装置2は、本体装置2が左コントローラ3と有線通信を行うための端子である左側端子17と、本体装置2が右コントローラ4と有線通信を行うための右側端子21を備える。
【0059】
図3に示すように、本体装置2は、スロット23を備える。スロット23は、ハウジング11の上側面に設けられる。スロット23は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。所定の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。また、本体装置2は、電源ボタン28を備える。
【0060】
本体装置2は、下側端子27を備える。下側端子27は、本体装置2がクレードルと通信を行うための端子である。本実施形態において、下側端子27は、USBコネクタ(より具体的には、メス側コネクタ)である。上記一体型装置または本体装置2単体をクレードルに載置した場合、ゲームシステム1は、本体装置2が生成して出力する画像を据置型モニタに表示することができる。また、本実施形態においては、クレードルは、載置された上記一体型装置または本体装置2単体を充電する機能を有する。また、クレードルは、ハブ装置(具体的には、USBハブ)の機能を有する。
【0061】
図4は、左コントローラ3の一例を示す六面図である。
図4に示すように、左コントローラ3は、ハウジング31を備える。本実施形態においては、ハウジング31は、縦長の形状、すなわち、上下方向(すなわち、
図1および
図4に示すy軸方向)に長い形状である。左コントローラ3は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング31は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ3は、横長となる向きで把持されることも可能である。左コントローラ3が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0062】
左コントローラ3は、アナログスティック32を備える。
図4に示すように、アナログスティック32は、ハウジング31の主面に設けられる。アナログスティック32は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック32を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。なお、左コントローラ3は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、アナログスティック32を押下する入力が可能である。
【0063】
左コントローラ3は、各種操作ボタンを備える。左コントローラ3は、ハウジング31の主面上に4つの操作ボタン33〜36(具体的には、右方向ボタン33、下方向ボタン34、上方向ボタン35、および左方向ボタン36)を備える。さらに、左コントローラ3は、録画ボタン37および−(マイナス)ボタン47を備える。左コントローラ3は、ハウジング31の側面の左上に第1Lボタン38およびZLボタン39を備える。また、左コントローラ3は、ハウジング31の側面のうち、本体装置2に装着される際に装着される側の面に第2Lボタン43および第2Rボタン44を備える。これらの操作ボタンは、本体装置2で実行される各種プログラム(例えば、OSプログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。
【0064】
また、左コントローラ3は、左コントローラ3が本体装置2と有線通信を行うための端子42を備える。
【0065】
図5は、右コントローラ4の一例を示す六面図である。
図5に示すように、右コントローラ4は、ハウジング51を備える。本実施形態においては、ハウジング51は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ4は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング51は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ4は、横長となる向きで把持されることも可能である。右コントローラ4が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0066】
右コントローラ4は、左コントローラ3と同様、方向入力部としてアナログスティック52を備える。本実施形態においては、アナログスティック52は、左コントローラ3のアナログスティック32と同じ構成である。また、右コントローラ4は、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、右コントローラ4は、左コントローラ3と同様、ハウジング51の主面上に4つの操作ボタン53〜56(具体的には、Aボタン53、Bボタン54、Xボタン55、およびYボタン56)を備える。さらに、右コントローラ4は、+(プラス)ボタン57およびホームボタン58を備える。また、右コントローラ4は、ハウジング51の側面の右上に第1Rボタン60およびZRボタン61を備える。また、右コントローラ4は、左コントローラ3と同様、第2Lボタン65および第2Rボタン66を備える。
【0067】
また、ハウジング51の下側面には、窓部68が設けられる。詳細は後述するが、右コントローラ4は、ハウジング51の内部に配置される赤外撮像部123および赤外発光部124を備えている。赤外撮像部123は、右コントローラ4の下方向(
図5に示すy軸負方向)を撮像方向として、窓部68を介して右コントローラ4の周囲を撮像する。赤外発光部124は、右コントローラ4の下方向(
図5に示すy軸負方向)を中心とする所定範囲を照射範囲として、赤外撮像部123が撮像する撮像対象に窓部68を介して赤外光を照射する。窓部68は、赤外撮像部123のカメラのレンズや赤外発光部124の発光体等を保護するためのものであり、当該カメラが検知する波長の光や当該発光体が照射する光を透過する材質(例えば、透明な材質)で構成される。なお、窓部68は、ハウジング51に形成された孔であってもよい。なお、本実施形態においては、カメラが検知する光(本実施形態においては、赤外光)以外の波長の光の透過を抑制するフィルタ部材を赤外撮像部123自身が有する。ただし、他の実施形態においては、窓部68がフィルタの機能を有していてもよい。
【0068】
また、詳細は後述するが、右コントローラ4は、NFC通信部122を備える。NFC通信部122は、NFC(Near Field Communication)の規格に基づく近距離無線通信を行う。NFC通信部122は、近距離無線通信に用いられるアンテナ122aと、アンテナ122aから送出すべき信号(電波)を生成する回路(例えばNFCチップ)とを有する。なお、NFC通信部122は、NFCの規格に基づく近距離無線通信を行う代わりに、任意の近接通信(非接触通信とも言う)で近距離無線通信を行うようにしてもよい。ここで、NFCの規格は、近接通信(非接触通信)に用いることができるものであり、「任意の近接通信で近距離無線通信を行うようにしてもよい」とは、NFCの規格による近接通信を除いた他の近接通信で近距離無線通信を行ってもよいことを意図している。
【0069】
また、右コントローラ4は、右コントローラ4が本体装置2と有線通信を行うための端子64を備える。
【0070】
図6は、本体装置2の内部構成の一例を示すブロック図である。本体装置2は、
図3に示す構成の他、
図6に示す各構成要素81〜91、97、および98を備える。これらの構成要素81〜91、97、および98のいくつかは、電子部品として電子回路基板上に実装されてハウジング11内に収納されてもよい。
【0071】
本体装置2は、プロセッサ81を備える。プロセッサ81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System−on−a−chip)から構成されてもよい。プロセッサ81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、スロット23に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
【0072】
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、プロセッサ81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【0073】
本体装置2は、スロットインターフェース(以下、「I/F」と略記する。)91を備える。スロットI/F91は、プロセッサ81に接続される。スロットI/F91は、スロット23に接続され、スロット23に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ81の指示に応じて行う。
【0074】
プロセッサ81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【0075】
本体装置2は、ネットワーク通信部82を備える。ネットワーク通信部82は、プロセッサ81に接続される。ネットワーク通信部82は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行う。本実施形態においては、ネットワーク通信部82は、第1の通信態様としてWi−Fiの規格に準拠した方式により、無線LANに接続して外部装置と通信を行う。また、ネットワーク通信部82は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の本体装置2との間で無線通信を行う。なお、上記第2の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置2との間で無線通信可能であり、複数の本体装置2の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【0076】
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、プロセッサ81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、本実施形態においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
【0077】
プロセッサ81は、上述の左側端子17、右側端子21、および下側端子27に接続される。プロセッサ81は、左コントローラ3と有線通信を行う場合、左側端子17を介して左コントローラ3へデータを送信するとともに、左側端子17を介して左コントローラ3から操作データを受信する。また、プロセッサ81は、右コントローラ4と有線通信を行う場合、右側端子21を介して右コントローラ4へデータを送信するとともに、右側端子21を介して右コントローラ4から操作データを受信する。また、プロセッサ81は、クレードルと通信を行う場合、下側端子27を介してクレードルへデータを送信する。このように、本実施形態においては、本体装置2は、左コントローラ3および右コントローラ4との間で、それぞれ有線通信と無線通信との両方を行うことができる。また、左コントローラ3および右コントローラ4が本体装置2に装着された一体型装置または本体装置2単体がクレードルに装着された場合、本体装置2は、クレードルを介してデータ(例えば、画像データや音声データ)を据置型モニタ等に出力することができる。
【0078】
ここで、本体装置2は、複数の左コントローラ3と同時に(換言すれば、並行して)通信を行うことができる。また、本体装置2は、複数の右コントローラ4と同時に(換言すれば、並行して)通信を行うことができる。したがって、複数のユーザは、左コントローラ3および右コントローラ4のセットをそれぞれ用いて、本体装置2に対する入力を同時に行うことができる。一例として、第1ユーザが左コントローラ3および右コントローラ4の第1セットを用いて本体装置2に対して入力を行うと同時に、第2ユーザが左コントローラ3および右コントローラ4の第2セットを用いて本体装置2に対して入力を行うことが可能となる。
【0079】
本体装置2は、タッチパネル13の制御を行う回路であるタッチパネルコントローラ86を備える。タッチパネルコントローラ86は、タッチパネル13とプロセッサ81との間に接続される。タッチパネルコントローラ86は、タッチパネル13からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、プロセッサ81へ出力する。
【0080】
また、ディスプレイ12は、プロセッサ81に接続される。プロセッサ81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
【0081】
本体装置2は、コーデック回路87およびスピーカ(具体的には、左スピーカおよび右スピーカ)88を備える。コーデック回路87は、スピーカ88および音声入出力端子25に接続されるとともに、プロセッサ81に接続される。コーデック回路87は、スピーカ88および音声入出力端子25に対する音声データの入出力を制御する回路である。
【0082】
また、本体装置2は、加速度センサ89を備える。本実施形態においては、加速度センサ89は、所定の3軸(例えば、
図1に示すxyz軸)方向に沿った加速度の大きさを検出する。なお、加速度センサ89は、1軸方向あるいは2軸方向の加速度を検出するものであってもよい。
【0083】
また、本体装置2は、角速度センサ90を備える。本実施形態においては、角速度センサ90は、所定の3軸(例えば、
図1に示すxyz軸)回りの角速度を検出する。なお、角速度センサ90は、1軸回りあるいは2軸回りの角速度を検出するものであってもよい。
【0084】
加速度センサ89および角速度センサ90は、プロセッサ81に接続され、加速度センサ89および角速度センサ90の検出結果は、プロセッサ81へ出力される。プロセッサ81は、上記の加速度センサ89および角速度センサ90の検出結果に基づいて、本体装置2の動きおよび/または姿勢に関する情報を算出することが可能である。
【0085】
本体装置2は、電力制御部97およびバッテリ98を備える。電力制御部97は、バッテリ98およびプロセッサ81に接続される。また、図示しないが、電力制御部97は、本体装置2の各部(具体的には、バッテリ98の電力の給電を受ける各部、左側端子17、および右側端子21)に接続される。電力制御部97は、プロセッサ81からの指令に基づいて、バッテリ98から上記各部への電力供給を制御する。
【0086】
また、バッテリ98は、下側端子27に接続される。外部の充電装置(例えば、クレードル)が下側端子27に接続され、下側端子27を介して本体装置2に電力が供給される場合、供給された電力がバッテリ98に充電される。
【0087】
図7は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。なお、本体装置2に関する内部構成の詳細については、
図6で示しているため
図7では省略している。
【0088】
左コントローラ3は、本体装置2との間で通信を行う通信制御部101を備える。
図7に示すように、通信制御部101は、端子42を含む各構成要素に接続される。本実施形態においては、通信制御部101は、端子42を介した有線通信と、端子42を介さない無線通信との両方で本体装置2と通信を行うことが可能である。通信制御部101は、左コントローラ3が本体装置2に対して行う通信方法を制御する。すなわち、左コントローラ3が本体装置2に装着されている場合、通信制御部101は、端子42を介して本体装置2と通信を行う。また、左コントローラ3が本体装置2から外されている場合、通信制御部101は、本体装置2(具体的には、コントローラ通信部83)との間で無線通信を行う。コントローラ通信部83と通信制御部101との間の無線通信は、例えばBluetooth(登録商標)の規格に従って行われる。
【0089】
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
【0090】
左コントローラ3は、各ボタン103(具体的には、ボタン33〜39、43、44、および47)を備える。また、左コントローラ3は、アナログスティック(
図7では「スティック」と記載する)32を備える。各ボタン103およびアナログスティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部101へ出力する。
【0091】
左コントローラ3は、慣性センサを備える。具体的には、左コントローラ3は、加速度センサ104を備える。また、左コントローラ3は、角速度センサ105を備える。本実施形態においては、加速度センサ104は、所定の3軸(例えば、
図4に示すxyz軸)方向に沿った加速度の大きさを検出する。なお、加速度センサ104は、1軸方向あるいは2軸方向の加速度を検出するものであってもよい。本実施形態においては、角速度センサ105は、所定の3軸(例えば、
図4に示すxyz軸)回りの角速度を検出する。なお、角速度センサ105は、1軸回りあるいは2軸回りの角速度を検出するものであってもよい。加速度センサ104および角速度センサ105は、それぞれ通信制御部101に接続される。そして、加速度センサ104および角速度センサ105の検出結果は、適宜のタイミングで繰り返し通信制御部101へ出力される。
【0092】
通信制御部101は、各入力部(具体的には、各ボタン103、アナログスティック32、各センサ104および105)から、入力に関する情報(具体的には、操作に関する情報、またはセンサによる検出結果)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【0093】
上記操作データが本体装置2へ送信されることによって、本体装置2は、左コントローラ3に対して行われた入力を得ることができる。すなわち、本体装置2は、各ボタン103およびアナログスティック32に対する操作を、操作データに基づいて判別することができる。また、本体装置2は、左コントローラ3の動きおよび/または姿勢に関する情報を、操作データ(具体的には、加速度センサ104および角速度センサ105の検出結果)に基づいて算出することができる。
【0094】
左コントローラ3は、振動によってユーザに通知を行うための振動子107を備える。本実施形態においては、振動子107は、本体装置2からの指令によって制御される。すなわち、通信制御部101は、本体装置2からの上記指令を受け取ると、当該指令に従って振動子107を駆動させる。ここで、左コントローラ3は、コーデック部106を備える。通信制御部101は、上記指令を受け取ると、指令に応じた制御信号をコーデック部106へ出力する。コーデック部106は、通信制御部101からの制御信号から振動子107を駆動させるための駆動信号を生成して振動子107へ与える。これによって振動子107が動作する。
【0095】
振動子107は、より具体的にはリニア振動モータである。リニア振動モータは、回転運動をする通常のモータと異なり、入力される電圧に応じて所定方向に駆動されるため、入力される電圧の波形に応じた振幅および周波数で振動をさせることができる。本実施形態において、本体装置2から左コントローラ3に送信される振動制御信号は、単位時間ごとに周波数と振幅とを表すデジタル信号であってよい。別の実施形態においては、本体装置2から波形そのものを示す情報を送信するようにしてもよいが、振幅および周波数だけを送信することで通信データ量を削減することができる。また、さらにデータ量を削減するため、そのときの振幅および周波数の数値に替えて、前回の値からの差分だけを送信するようにしてもよい。この場合、コーデック部106は、通信制御部101から取得される振幅および周波数の値を示すデジタル信号をアナログの電圧の波形に変換し、当該波形に合わせて電圧を入力することで振動子107を駆動させる。したがって、本体装置2は、単位時間ごとに送信する振幅および周波数を変えることによって、そのときに振動子107を振動させる振幅および周波数を制御することができる。なお、本体装置2から左コントローラ3に送信される振幅および周波数は、1つに限らず、2つ以上送信するようにしてもよい。その場合、コーデック部106は、受信された複数の振幅および周波数それぞれが示す波形を合成することで、振動子107を制御する電圧の波形を生成することができる。
【0096】
左コントローラ3は、電力供給部108を備える。本実施形態において、電力供給部108は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ3の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。
【0097】
図7に示すように、右コントローラ4は、本体装置2との間で通信を行う通信制御部111を備える。また、右コントローラ4は、通信制御部111に接続されるメモリ112を備える。通信制御部111は、端子64を含む各構成要素に接続される。通信制御部111およびメモリ112は、左コントローラ3の通信制御部101およびメモリ102と同様の機能を有する。したがって、通信制御部111は、端子64を介した有線通信と、端子64を介さない無線通信(具体的には、Bluetooth(登録商標)の規格に従った通信)との両方で本体装置2と通信を行うことが可能であり、右コントローラ4が本体装置2に対して行う通信方法を制御する。
【0098】
右コントローラ4は、左コントローラ3の各入力部と同様の各入力部を備える。具体的には、各ボタン113、アナログスティック52、慣性センサ(加速度センサ114および角速度センサ115)を備える。これらの各入力部については、左コントローラ3の各入力部と同様の機能を有し、同様に動作する。
【0099】
また、右コントローラ4は、振動子117およびコーデック部116を備える。振動子117およびコーデック部116は、左コントローラ3の振動子107およびコーデック部106と同様に動作する。すなわち、通信制御部111は、本体装置2からの指令に従って、コーデック部116を用いて振動子117を動作させる。
【0100】
右コントローラ4は、NFCの規格に基づく近距離無線通信を行うNFC通信部122を備える。NFC通信部122は、いわゆるNFCリーダ・ライタの機能を有する。ここで、本明細書において近距離無線通信とは、一方の装置(ここでは、右コントローラ4)からの電波によって(例えば電磁誘導によって)他方の装置(ここでは、アンテナ122aと近接する装置)に起電力を発生させる通信方式が含まれる。他方の装置は、発生した起電力によって動作することが可能であり、電源を有していてもよいし有していなくてもよい。NFC通信部122は、右コントローラ4(アンテナ122a)と通信対象とが接近した場合(典型的には、両者の距離が十数センチメートル以下となった場合)に当該通信対象との間で通信可能となる。通信対象は、NFC通信部122との間で近距離無線通信が可能な任意の装置であり、例えばNFCタグやNFCタグの機能を有する記憶媒体である。ただし、通信対象は、NFCのカードエミュレーション機能を有する他の装置であってもよい。
【0101】
また、右コントローラ4は、赤外撮像部123を備える。赤外撮像部123は、右コントローラ4の周囲を撮像する赤外線カメラを有する。一例として、本体装置2および/または右コントローラ4は、撮像された情報(例えば、撮像された撮像画像における少なくとも一部の領域全体を分割した複数のブロックの輝度に関連する情報等)を算出し、当該情報に基づいて、右コントローラ4の周囲変化を判別する。また、赤外撮像部123は、環境光によって撮像を行ってもよいが、本実施形態においては、赤外線を照射する赤外発光部124を有する。赤外発光部124は、例えば、赤外線カメラが画像を撮像するタイミングと同期して、赤外線を照射する。そして、赤外発光部124によって照射された赤外線が撮像対象によって反射され、当該反射された赤外線が赤外線カメラによって受光されることで、赤外線の画像が取得される。これによって、赤外撮像部123は、より鮮明な赤外線画像を得ることができる。なお、赤外撮像部123と赤外発光部124とは、それぞれ別のデバイスとして右コントローラ4内に設けられてもよいし、同じパッケージ内に設けられた単一のデバイスとして右コントローラ4内に設けられてもよい。また、本実施形態においては、赤外線カメラを有する赤外撮像部123が用いられるが、他の実施形態においては、撮像手段として、赤外線カメラに代えて可視光カメラ(可視光イメージセンサを用いたカメラ)が用いられてもよい。
【0102】
右コントローラ4は、処理部121を備える。処理部121は、通信制御部111に接続される。また、処理部121は、NFC通信部122、赤外撮像部123、および赤外発光部124に接続される。処理部121は、本体装置2からの指令に応じて、NFC通信部122に対する管理処理を実行する。例えば、処理部121は、本体装置2からの指令に応じてNFC通信部122の動作を制御する。また、処理部121は、NFC通信部122の起動を制御したり、通信対象(例えば、NFCタグ)に対するNFC通信部122の動作(具体的には、読み出しおよび書き込み等)を制御したりする。また、処理部121は、通信制御部111を介して通信対象に送信されるべき情報を本体装置2から受信してNFC通信部122へ渡したり、通信対象から受信された情報をNFC通信部122から取得して通信制御部111を介して本体装置2へ送信したりする。
【0103】
また、処理部121は、CPUやメモリ等を含み、右コントローラ4に備えられた図示しない記憶装置(例えば、不揮発性メモリ等)に記憶された所定のプログラム(例えば、画像処理や各種演算を行うためのアプリケーションプログラム)に基づいて、本体装置2からの指令に応じて赤外撮像部123に対する管理処理を実行する。例えば、処理部121は、赤外撮像部123に撮像動作を行わせたり、撮像結果に基づく情報(撮像画像の情報、あるいは、当該情報から算出される情報等)を取得および/または算出して通信制御部111を介して本体装置2へ送信したりする。また、処理部121は、本体装置2からの指令に応じて赤外発光部124に対する管理処理を実行する。例えば、処理部121は、本体装置2からの指令に応じて赤外発光部124の発光を制御する。なお、処理部121が処理を行う際に用いるメモリは、処理部121内に設けられてもいいし、メモリ112であってもよい。
【0104】
右コントローラ4は、電力供給部118を備える。電力供給部118は、左コントローラ3の電力供給部108と同様の機能を有し、同様に動作する。
【0105】
[2.アタッチメントとそれを用いたゲーム処理の概要]
本実施形態においては、ゲームシステム1は、上述の本体装置2ならびに各コントローラ3および4とともに用いられる周辺機器として、複数種類(ここでは、3種類)の付加操作装置を含む。付加操作装置は、コントローラを当該付加操作装置に装着して使用するための周辺機器である。なお、コントローラ(ここでは、右コントローラ4)は、付加操作装置に対して着脱可能に装着される。詳細は後述するが、本実施形態においては、ユーザ(換言すれば、プレイヤ)は、コントローラを付加操作装置に装着し、コントローラが装着された付加操作装置を用いてゲーム操作を行う。このように、本実施形態においては、コントローラをメイン装置とし、付加操作装置をサブ装置として、メイン装置を装着したサブ装置を用いたゲーム操作が行われる。
【0106】
本実施形態においては、ゲームシステム1は、3種類の付加操作装置(具体的には、
図8に示す第1〜第3付加操作装置6〜8)を含む。なお、他の実施形態においては、ゲームシステム1に含まれる付加操作装置の数は、2つ以上の任意の数であってよい。
【0107】
本実施形態においては、ユーザは、1つのゲームアプリケーションの実行中において、複数種類(ここでは、3種類)の付加操作装置を用いてゲームをプレイする。なお、ゲームアプリケーションによって実行されるゲームの内容は任意であるが、本実施形態においては、ユーザが操作するプレイヤキャラクタが各種の乗物を運転してゲーム空間を移動することが可能なゲームである。ユーザは、上記ゲームアプリケーションの実行中において(より具体的には、ゲームのプレイ中において)、コントローラが装着される付加操作装置を変更することができる。また、ゲームシステム1は、コントローラが装着される付加操作装置の種類に応じて異なるゲーム処理を実行する。詳細は後述するが、本実施形態においては、プレイヤキャラクタが運転する乗物オブジェクトは、コントローラが装着される付加操作装置の種類に応じて変化する。つまり、本実施形態においては、ユーザが操作する対象となるオブジェクトが、コントローラが装着される付加操作装置の種類に応じて変化する。
【0108】
図8は、コントローラと付加操作装置との組み合わせと、操作対象となるオブジェクトとの関係を示す図である。
図8に示すように、本実施形態においては、右コントローラ4を、第1〜第3付加操作装置6〜8のいずれかに装着することが可能である。
【0109】
本実施形態においては、付加操作装置に装着するコントローラとして右コントローラ4が用いられる。この理由は、本実施形態においては、右コントローラ4が備える赤外撮像部123による撮像結果に基づいて、右コントローラ4に装着された付加操作装置の種類を判別するからである。なお、付加操作装置の種類の判別方法の詳細については後述する。
【0110】
図8に示すように、右コントローラ4が第1付加操作装置6に装着される状態(以下、「第1装着状態」と呼ぶ。)においては、プレイヤキャラクタが運転する自動車オブジェクト201がゲーム空間に出現する。右コントローラ4が第1装着状態となる場合、ユーザは、右コントローラ4が装着された第1付加操作装置6を用いて自動車オブジェクト201を操作する。すなわち、ゲームシステム1は、右コントローラ4が第1付加操作装置6に装着されたと判別すると、プレイヤキャラクタと自動車オブジェクト201とをゲーム空間に配置する。そして、ゲームシステム1は、右コントローラ4が装着された第1付加操作装置6に対する操作に基づいて自動車オブジェクト201の動作を制御する。
【0111】
また、
図8に示すように、右コントローラ4が第2付加操作装置7に装着される状態(以下、「第2装着状態」と呼ぶ。)においては、プレイヤキャラクタが運転する飛行機オブジェクト202がゲーム空間に出現する。右コントローラ4が第2装着状態となる場合、ユーザは、右コントローラ4が装着された第2付加操作装置7を用いて飛行機オブジェクト202を操作する。すなわち、ゲームシステム1は、右コントローラ4が第2付加操作装置7に装着されたと判別すると、プレイヤキャラクタと飛行機オブジェクト202とをゲーム空間に配置する。そして、ゲームシステム1は、右コントローラ4が装着された第2付加操作装置7に対する操作に基づいて飛行機オブジェクト202の動作を制御する。
【0112】
また、
図8に示すように、右コントローラ4が第3付加操作装置8に装着される状態(以下、「第3装着状態」と呼ぶ。)においては、プレイヤキャラクタが運転する船オブジェクト203がゲーム空間に出現する。右コントローラ4が第3装着状態となる場合、ユーザは、右コントローラ4が装着された第3付加操作装置8を用いて船オブジェクト203を操作する。すなわち、ゲームシステム1は、右コントローラ4が第3付加操作装置8に装着されたと判別すると、プレイヤキャラクタと船オブジェクト203とをゲーム空間に配置する。そして、ゲームシステム1は、右コントローラ4が装着された第3付加操作装置8に対する操作に基づいて船オブジェクト203の動作を制御する。
【0113】
また、図示しないが、右コントローラ4がいずれの付加操作装置に装着されない状態(以下、「非装着状態」と呼ぶ。)においては、プレイヤキャラクタは乗物オブジェクトに搭乗しない。右コントローラ4が非装着状態となる場合、プレイヤは、乗物オブジェクトに搭乗していないプレイヤキャラクタを操作する。すなわち、ゲームシステム1は、右コントローラ4がいずれの付加操作装置にも装着されていないと判別すると、乗物オブジェクトに搭乗していないプレイヤキャラクタをゲーム空間に配置する。そして、ゲームシステム1は、右コントローラ4に対する操作に基づいてプレイヤキャラクタの動作を制御する。なお、他の実施形態においては、ゲームシステム1は、非装着状態においては、プレイヤキャラクタに対する操作(換言すれば、右コントローラ4を用いた操作)をユーザが行うことができないようにしてもよい。
【0114】
本実施形態においては、ゲームシステム1は、右コントローラ4の装着状態が変化しても、ゲームを進行させるための処理(換言すれば、ゲーム進行)を中断することなく実行する。つまり、ゲームシステム1は、右コントローラ4の装着状態に変化があっても、ゲームをシームレスに進行させる。例えば、ユーザが第1付加操作装置6に装着されている右コントローラ4を第2付加操作装置7に付け替えようとする場合、右コントローラ4の装着状態は、第1装着状態から非装着状態となり、その後、第2装着状態へと移行する。この場合において、ゲームシステム1は、ゲームの進行を中断することなく(例えば、非装着状態となったことに応じて処理を一時停止することなく)、ゲームを進行させるための処理を継続して実行する。すなわち、右コントローラ4の装着状態が第1装着状態から非装着状態を介して第2装着状態へと移行する期間において、ゲームシステム1は、ユーザによる操作を継続的に受け付け、当該操作に応じたゲーム処理を継続的に実行する。このように、本実施形態においては、ユーザが右コントローラ4の装着状態を変化させる期間においてもゲームを進行させることによって、右コントローラ4を付加操作装置に装着する操作をゲーム操作の一部であるようにユーザに認識させることができる。これによって、右コントローラ4が装着される付加操作装置をゲームプレイ中に切り替えながらゲーム操作を行うという新規なゲーム体験をユーザに提供することができる。
【0115】
なお、他の実施形態においては、ゲームシステム1は、右コントローラ4が非装着状態となったことに応じて、ゲームを進行させるための処理を一時停止してもよい。このとき、ゲームシステム1は、右コントローラ4がいずれかの付加操作装置に装着されたことに応じて、ゲームを進行させるための処理を再開してもよい。
【0116】
また、他の実施形態においては、ゲームシステム1は、右コントローラ4の装着状態が変化したことに応じて乗物オブジェクトが切り替わる場合、乗物オブジェクトの切り替えをユーザに対して確認するようにしてもよい。例えば、上記の場合において、ゲームシステム1は、「乗物オブジェクトを切り替えますか」といったメッセージを表示するとともに、切り替えを実行する旨の指示入力を受け付けるようにしてもよい。なお、この際、ゲームの進行は一時停止されてもよいし、一時停止されなくてもよい。
【0117】
以上のように、本実施形態においては、ユーザは、右コントローラ4の装着状態をゲーム中において切り替えることによって、操作対象となるオブジェクトを切り替えることができる。したがって、本実施形態によれば、コントローラを装着する付加操作装置を、ゲーム中における状況に応じて取り替えながらゲームをプレイするという、新規なゲーム体験をユーザに提供することができ、興趣性の高いゲームを提供することができる。
【0118】
以下、各付加操作装置6〜8の構成と、右コントローラ4が各付加操作装置6〜8に装着される場合に実行される処理とについて、付加操作装置毎に説明を行う。
【0119】
[2−1.第1付加操作装置]
[2−1−1.第1付加操作装置の構成]
図9〜
図16を参照して、第1付加操作装置6と、右コントローラ4が第1付加操作装置6に装着された場合におけるゲーム処理について説明する。
図9は、第1付加操作装置および右コントローラの一例を示す図である。
図10は、
図9に示す第1付加操作装置を前側(すなわち、
図9に示すZ軸負方向側)から見た図である。
【0120】
図9に示すように、第1付加操作装置6は、筐体601と、ハンドル602と、左レバー604と、右レバー605とを備える。第1付加操作装置6は、ハンドル602と各レバー604および605を操作可能な操作装置である。第1付加操作装置6は、自動車のハンドルを模した操作装置であり、ハンドル602と各レバー604および605を用いて自動車オブジェクト201を操作するための操作装置である。
【0121】
ここで、各付加操作装置6〜8の材質は任意であるが、本実施形態においては、各付加操作装置6〜8の各部品(ただし、後述するマーカを除く)の材質は段ボールである。また、各付加操作装置6〜8は、組み立て前の状態でユーザに提供され、ユーザが各付加操作装置6〜8を組み立てるようにしてもよい。各付加操作装置6〜8の材質を段ボールとすることによって、付加操作装置を安価に製造することができる。また、付加操作装置の組み立てをユーザに行わせることによって、ゲームに用いる操作装置を組み立てる楽しみをユーザに提供することができる。
【0122】
図9に示すハンドル602は、筐体601の前面(すなわち、Z軸負方向側の面)に接続されている。ハンドル602は、筐体601に対して回転可能に接続される。具体的には、ハンドル602は、環状の形状を有する環状部と、当該環状部の中心を通って当該環状部の一端から他端まで延びる軸部とを有する。ハンドル602は、環状部の中心付近を回転軸にして、筐体601に対して回転可能である。以上の構成より、ユーザは、ハンドル602を回転させる操作(以下、「回転操作」と呼ぶ)が可能である(
図10)。
【0123】
また、本実施形態においては、上記軸部において、ハンドル602の回転軸の位置に、挿入孔603が設けられる。挿入孔603は、回転軸に沿って(換言すれば、ハンドルの回転面に垂直な方向に沿って)延びるように設けられる。挿入孔603は、右コントローラ4を装着するために設けられる。すなわち、
図9に示すように、挿入孔603に右コントローラ4が挿入されることによって、右コントローラ4が第1付加操作装置6に装着される。なお、本実施形態においては、ユーザは、右コントローラ4を下側(すなわち、赤外撮像部123の窓部68が設けられる側)から挿入孔603に挿入することによって、右コントローラ4を第1付加操作装置6に正しく装着することができる。図示しないが、軸部における挿入孔603の奥には、挿入孔603に挿入された右コントローラ4が当接する底面が設けられる。したがって、挿入孔603に挿入された右コントローラ4は、ある深さまで挿入された場合に、上記底面に当接することによって停止する。
【0124】
なお、図示しないが、挿入孔603の奥に設けられる上記底面においては、第1付加操作装置6に装着された右コントローラ4の窓部68に対向する位置に、孔が設けられる。したがって、第1付加操作装置6に装着された右コントローラ4の赤外撮像部123は、上記底面の孔を介して、筐体601の内部を撮像することが可能である。
【0125】
図9に示す各レバー604および605は、筐体601の側面から突出するように設けられる。具体的には、左レバー604は、筐体601の左上側(すなわち、
図9に示すX軸負方向側であってY軸正方向側)の側面に設けられる。右レバー605は、筐体601の右上側(すなわち、
図9に示すX軸正方向側であってY軸正方向側)の側面に設けられる。各レバー604および605は、筐体601に対して上下方向に動作可能に接続されている。以下、各レバー604および605の詳細な構成について説明する。
【0126】
図11は、筐体601の内部構成の一例を示す図である。なお、
図11は、筐体601の前側の面(すなわち、ハンドル602が接続される面)を取り外して筐体601の内部を見た図である。
図9および
図11に示すように、筐体601における左上側の側面には、左レバー用孔606が設けられる。筐体601における右上側の側面には、右レバー用孔607が設けられる。ここで、各レバー604および605は、棒状の部材である。
図11に示すように、左レバー604の一端は、筐体601の内部において筐体601に対して回転可能に接続されており、左レバー604の他端は、左レバー用孔606を介して、筐体601の外部に突出するように設けられる。また、
図11に示すように、右レバー605の一端は、筐体601の内部において筐体601に対して回転可能に接続されており、右レバー605の他端は、右レバー用孔607を介して、筐体601の外部に突出するように設けられる。なお、各レバー604および605の回転軸の向きは、ハンドル602の回転軸の向きと実質的に同じ(換言すれば、平行)である。
【0127】
左レバー用孔606は、左レバー604が回転することができるような(換言すれば、筐体601の外部に突出した左レバー604の端部が上下方向に移動できるような)大きさに設けられる。また、右レバー用孔607は、右レバー605が回転することができるような(換言すれば、筐体601の外部に突出した右レバー605の端部が上下方向に移動できるような)大きさに設けられる。また、各レバー604および605は、それぞれ、図示しない付勢部材によって、筐体601の外部に突出した端部が上向きに移動する方向に付勢されている。したがって、各レバー604および605は、ユーザによって操作されていない状態においては、
図9および
図11に示すように、各レバー用孔606および607の上側の縁に当接して停止した状態となる。以上に説明した構成によって、ユーザは、各レバー604および605を下げる操作(以下、「下げ操作」と呼ぶ)が可能である(
図10)。
【0128】
[2−1−2.マーカに基づく処理]
本実施形態においては、各付加操作装置6〜8の内部には、右コントローラ4の赤外撮像部123が撮像可能なマーカが設けられる。本実施形態においては、ゲームシステム1は、付加操作装置に装着された右コントローラ4の赤外撮像部123によってマーカを撮像し、撮像画像からマーカを検出する。そして、ゲームシステム1は、マーカの検出結果に基づいて付加操作装置の種別を判別したり、付加操作装置に対して行われた操作(具体的には、第1付加操作装置6の場合は、回転操作および下げ操作)を判別したりする。以下、マーカを用いた判別処理の詳細について説明する。
【0129】
図11に示すように、筐体601の内部には、第1付加操作装置6に装着された右コントローラ4の赤外撮像部123が撮像可能な位置に(換言すれば、赤外撮像部123の撮像範囲内に)、被撮像面611が設けられる。被撮像面611には、第1基本マーカ612が設けられる。なお、本明細書においては、右コントローラ4が装着された付加操作装置の種類を判別するために用いられるマーカを「基本マーカ」と呼ぶ。第1基本マーカ612は、第1付加操作装置6に設けられる基本マーカであり、右コントローラ4が第1付加操作装置6に装着されたことを判別するために用いられる。
【0130】
ここで、マーカは、赤外撮像部123が付加操作装置の筐体の内部の壁面における他の部分(すなわち、マーカ以外の部分)と区別することが可能な材質(および/または色)で構成される。マーカは、筐体の内側面に描かれた図形、絵柄、または、図形と絵柄との組み合わせであってもよいし、筐体の内側面に取り付けられた部品であってもよい。また、マーカは、例えば再帰性反射の特性を有する材質で構成されてもよい。これによれば、赤外発光部124からの赤外光が赤外撮像部123の方へより多く反射するので、赤外撮像部123によってマーカをより認識しやすくなる。また、赤外撮像部123から離れた位置のマーカでも認識しやすくなる。また、再帰性反射材の代わりに、マーカとして赤外発光部124を筐体内に設ける構成をとってもよい。
【0131】
本実施形態においては、第1基本マーカ612は、4つの正方形の部分からなる形状を有する(
図11)。詳細は後述するが、各付加操作装置6〜8に設けられる基本マーカは、互いに異なる形状を有する。
図11に示す例においては、第1基本マーカ612は、当該第1基本マーカ612を形成する4つの正方形の部分のうち1つの正方形が他の3つの正方形よりも大きい形状である。したがって、ゲームシステム1は、右コントローラ4の赤外撮像部123による撮像画像において基本マーカを検出した場合、検出した基本マーカの形状に基づいて、右コントローラ4が装着された付加操作装置の種類を判別することができる。例えば、ゲームシステム1は、上記撮像画像において第1基本マーカ612を検出した場合、右コントローラ4が第1付加操作装置6に装着されたと判別することができる。なお、本明細書においては、「マーカの形状」とは、マーカの大きさを含む概念である。つまり、互いに大きさが異なる2つのマーカは、互い異なる形状を有すると言える。
【0132】
また、本実施形態においては、第1基本マーカ612は、ハンドル602に対する回転操作を検出するために用いられる。以下、
図12および
図13を参照して、回転操作を検出する方法について説明する。
【0133】
図12は、第1付加操作装置6のハンドル602が基準状態(具体的には、軸部が水平になる状態)となる場合において赤外撮像部123によって撮像された撮像画像の一例を示す図である。
図13は、第1付加操作装置6のハンドル602が基準状態から回転した状態となる場合において赤外撮像部123によって撮像された撮像画像の一例を示す図である。
図12および
図13に示す第1基本マーカ画像622は、撮像画像において第1基本マーカ612を示す画像である。
【0134】
回転操作によってハンドル602が回転すると、ハンドル602に装着された右コントローラ4も回転する。そのため、ハンドル602の回転角度に応じて、撮像画像に含まれる第1基本マーカ画像622の向きが変化する。したがって、ゲームシステム1は、撮像画像における第1基本マーカ画像622の向きに基づいてハンドル602の回転角度を算出することができ、回転角度に基づいて回転操作を検出することができる。具体的には、ゲームシステム1は、回転操作が行われたか否か、および/または、回転操作が行われた回転量を検出する。例えば、
図12および
図13に示す例においては、
図13に示す第1基本マーカ画像622は、
図12に示す第1基本マーカ画像622を基準として左に90°回転した向きで配置されている。したがって、ゲームシステム1は、
図13に示す撮像画像が右コントローラ4から取得される場合、ハンドル602は、基準状態から右に90°回転した状態であると判別することができる。
【0135】
以上のように、右コントローラ4が装着された付加操作装置の種類を判別するために用いられる基本マーカは、付加操作装置に対する操作を検出するためにも用いられてもよい。
【0136】
図11に示すように、左レバー604のうちで筐体601の内部となる位置であって、第1付加操作装置6に装着された右コントローラ4の赤外撮像部123が撮像可能な位置に、左レバーマーカ613が設けられる。左レバーマーカ613は、左レバー604に対する操作を検出するために用いられる。以下、
図11、
図12、
図14、および
図15を参照して、回転操作を検出する方法について説明する。
【0137】
図14は、左レバー604に対する下げ操作が行われた状態における第1付加操作装置6の一例を示す図である。また、
図15は、左レバー604に対する下げ操作が行われた状態において赤外撮像部123によって撮像された撮像画像の一例を示す図である。なお、上述した
図11は、左レバー604に対する下げ操作が行われていない状態における第1付加操作装置6の一例を示す図であり、
図12は、当該状態において赤外撮像部123によって撮像された撮像画像の一例を示す。なお、
図12および
図15に示す左レバーマーカ画像623は、撮像画像において左レバーマーカ613を示す画像である。
【0138】
下げ操作によって左レバー604が下方に動かされると、第1付加操作装置6に装着された右コントローラ4の赤外撮像部123から見た左レバーマーカ613の位置および向きは、左レバー604に対する下げ操作が行われていない状態における左レバーマーカ613の位置および向きから変化する。そのため、撮像画像における左レバーマーカ画像623の位置および向きは、左レバー604に対する下げ操作が行われていない状態(
図12)と下げ操作が行われた状態(
図15)とで変化する。具体的には、左レバー604に対する下げ操作が行われている状態における左レバーマーカ画像623の位置は、左レバー604に対する下げ操作が行われていない状態における左レバーマーカ画像623の位置よりも左下の方へ移動している。したがって、ゲームシステム1は、
図15に示す撮像画像が右コントローラ4から取得される場合、左レバー604に対する下げ操作が行われている状態であると判別することができる。
【0139】
なお、本実施形態においては、第1付加操作装置6に装着された右コントローラ4は、ハンドル602の回転に応じて回転する。そのため、ゲームシステム1は、撮像画像における左レバーマーカ画像623の位置および向きとして、第1基本マーカ画像622を基準とした位置および向きを算出し、算出された位置および向きに基づいて左レバー604に対する下げ操作の検出を行う。
【0140】
また、
図11に示すように、右レバー605のうちで筐体601の内部となる位置に、右レバーマーカ614が設けられる。右レバーマーカ614は、右レバー605に対する操作を検出するために用いられる。右レバー605に対する下げ操作の検出は、左レバー604に対する下げ操作の検出と同様に行うことができる。すなわち、ゲームシステム1は、撮像画像における右レバーマーカ画像624の位置および向き(具体的には、第1基本マーカ画像622を基準とした位置および向き)を算出し、算出された位置および向きに基づいて右レバー605に対する下げ操作の検出を行う。
【0141】
[2−1−3.右コントローラ4が第1付加操作装置6に装着された場合におけるゲーム処理]
図16は、右コントローラ4が第1付加操作装置6に装着される場合に表示されるゲーム画像の一例を示す図である。右コントローラ4が第1付加操作装置6に装着されると、ゲームシステム1は、右コントローラ4の赤外撮像部123から取得された撮像画像に基づいて、右コントローラ4が第1付加操作装置6に装着されたことを判別する。このとき、ゲームシステム1は、
図16に示すように、プレイヤキャラクタ200が自動車オブジェクト201に搭乗した様子を表すゲーム画像を表示装置に表示する。なお、本実施形態において、ゲーム画像が表示される表示装置は、上述のディスプレイ12でもよいし、据置型モニタでもよい。
【0142】
また、右コントローラ4が第1付加操作装置6に装着されたことを判別した場合、ゲームシステム1は、第1付加操作装置6に対する各操作(具体的には、回転操作および下げ操作)を検出し、ユーザによって行われたこれらの操作に応じて自動車オブジェクト201の動作を制御する。なお、自動車オブジェクト201の動作をユーザの操作に応じて制御する方法は任意である。例えば、本実施形態においては、ゲームシステム1は、ハンドル602に対する回転操作に応じて自動車オブジェクト201の進行方向を制御する。また、ゲームシステム1は、左レバー604に対する下げ操作に応じて自動車オブジェクト201のギヤを変更し、右レバー605に対する下げ操作に応じて自動車オブジェクト201から弾を発射する。
【0143】
以上のようにして、ユーザは、右コントローラ4を第1付加操作装置6に装着することによって、自動車オブジェクト201をゲーム空間に出現させるとともに、自動車オブジェクト201を操作するゲームをプレイすることができる。
【0144】
[2−2.第2付加操作装置]
[2−2−1.第2付加操作装置の構成]
図17〜
図22を参照して、第2付加操作装置7と、右コントローラ4が第2付加操作装置7に装着された場合におけるゲーム処理について説明する。
図17は、第2付加操作装置および右コントローラの一例を示す図である。また、
図18は、
図17に示す第2付加操作装置7を上側(すなわち、
図17に示すY軸正方向側)から見た図である。
【0145】
図17に示すように、第2付加操作装置7は、台座部701と、把持部702と、ボタン704とを備える。第2付加操作装置7は、把持部702と、ボタン704とを操作可能な操作装置である。第2付加操作装置7は、飛行機の操縦桿を模した操作装置であり、操縦桿のような把持部702を用いて飛行機オブジェクト202を操作するための操作装置である。
【0146】
図17に示す第2付加操作装置7において、把持部702は、台座部701に接続されている。把持部702は、台座部701に対して傾倒可能である。なお、
図17においては、把持部702の傾倒方向を表す前後左右の4方向の矢印を示しているが、把持部702は、把持部702の長手方向が鉛直となる基準状態から、任意の方向に傾倒することが可能である。
【0147】
図17に示すように、把持部702は、上面に挿入孔703を有する。挿入孔703は、把持部702の長手方向に沿って延びるように設けられる。挿入孔703は、右コントローラ4を装着するために設けられる。すなわち、
図17に示すように、挿入孔703に右コントローラ4が挿入されることによって、右コントローラ4が第2付加操作装置7に装着される。なお、本実施形態においては、ユーザは、右コントローラ4を下側から挿入孔703に挿入することによって、右コントローラ4を第2付加操作装置7に正しく装着することができる。上記のように、把持部702の上側部分は、筒状に形成され、筒状部分の内部に右コントローラ4を挿入可能である。また、
図17に示すように、筒状部分の側面には溝が設けられる。右コントローラ4が把持部702に挿入される際には、上記溝に沿ってアナログスティック52が挿入され、溝の端部にアナログスティック52が当接することによって、右コントローラ4の把持部702に対する挿入が停止される。
【0148】
図18に示すように、把持部702の挿入孔703は、把持部702における内部の空洞に繋がっている。したがって、挿入孔703に挿入されて把持部702に装着された右コントローラ4の赤外撮像部123は、把持部702の内部を撮像可能である。
【0149】
図17に示すように、ボタン704は、把持部702に設けられ、具体的には、把持部702の筒上部分の側面に設けられる。ボタン704は、上から押下可能に設けられる。なお、
図18に示すように、把持部702の上記筒状部分の側面のうちのボタン704が設けられる側面には孔705が設けられる。ボタン704の一部は、上記孔705から突出して設けられる(
図18)。そのため、ボタン704の上記一部は、第2付加操作装置7に装着された右コントローラ4の赤外撮像部123によって撮像可能となっている。
【0150】
以上の構成より、ユーザは、把持部702を傾倒する操作(以下、「傾倒操作」と呼ぶ)と、ボタン704を押下する操作(以下、「押下操作」と呼ぶ)とを行うことが可能である(
図17)。
【0151】
[2−2−2.マーカに基づく処理]
第2付加操作装置7においても第1付加操作装置6と同様、付加操作装置の内部には、赤外撮像部123が撮像可能なマーカが設けられる。ゲームシステム1は、第2付加操作装置7に装着された右コントローラ4の赤外撮像部123による撮像画像からマーカを検出する。そして、ゲームシステム1は、マーカの検出結果に基づいて、右コントローラ4が第2付加操作装置7に装着されたことを判別したり、第2付加操作装置7に対して行われた操作(具体的には、押下操作)を検出したりする。
【0152】
図18に示すように、把持部702の内部の底面には、第2付加操作装置7に装着された右コントローラ4の赤外撮像部123が撮像可能な位置に、第2基本マーカ711が設けられる。第2基本マーカ711の形状は任意であるが、第2基本マーカ711は、上述の第1基本マーカ612および後述する第3基本マーカ811とは異なる形状を有する。
図18に示す例においては、第2基本マーカ711は、当該第2基本マーカ711を形成する4つの正方形の部分のうち1つの正方形が他の3つの正方形よりも小さい形状である。
【0153】
第2付加操作装置7についても第1付加操作装置6と同様、ゲームシステム1は、基本マーカを用いて、右コントローラ4が装着された付加操作装置の種類を判別する。すなわち、ゲームシステム1は、右コントローラ4から取得した撮像画像において第2基本マーカ711を検出した場合、右コントローラ4が第2付加操作装置7に装着されたと判別する。
【0154】
図18に示すように、ボタン704における、第2付加操作装置7に装着された右コントローラ4の赤外撮像部123が撮像可能な位置に、ボタンマーカ712が設けられる。具体的には、ボタンマーカ712は、ボタン704のうちで、把持部702の上記孔705から突出する部分に設けられる。ボタンマーカ712は、ボタン704に対する押下操作を検出するために用いられる。
【0155】
図19は、把持部のボタンが押下された状態における把持部の内部の一例を示す図である。なお、
図18は、把持部のボタンが押下されていない状態における把持部の内部の一例を示す図である。第1付加操作装置6に装着された右コントローラ4の赤外撮像部123から見たボタンマーカ712の位置は、把持部702のボタン704が押下されていない状態(
図18)と把持部702のボタン704が押下された状態(
図19)とで異なる。具体的には、ボタン704が押下された状態におけるボタンマーカ712の位置は、ボタン704が押下されていない状態におけるボタンマーカ712の位置よりも右方向(換言すれば、第2基本マーカ711に近づく方向)へ移動する。したがって、ゲームシステム1は、第1付加操作装置6に装着された右コントローラ4の赤外撮像部123によって撮像された撮像画像におけるボタンマーカ712を示す画像の位置に基づいて、ボタン704に対する操作を検出することができる。
【0156】
また、把持部702に対する傾倒操作は、右コントローラ4の加速度センサの検出結果に基づいて検出される。すなわち、ゲームシステム1は、右コントローラ4が備える加速度センサ89によって検出される加速度に基づいて、右コントローラ4の姿勢を算出する。そして、ゲームシステム1は、算出された姿勢に基づいて、右コントローラ4および把持部702が上述の基準状態に対して傾倒した方向および傾倒した量を算出する。これによって、ゲームシステム1は、把持部702に対する傾倒操作を検出することができる。
【0157】
上記のように、ゲームシステム1は、付加操作装置に対する操作を、マーカを用いて検出してもよいし、当該付加操作装置に装着された右コントローラ4からの操作データを用いて検出してもよい。また、ゲームシステム1は、付加操作装置に対する操作を、マーカと操作データとの両方を用いて検出してもよい。
【0158】
[2−2−3.マーカが検出された場合におけるゲーム処理]
図20は、右コントローラ4が第2付加操作装置7に装着される場合に表示されるゲーム画像の一例を示す図である。右コントローラ4が第2付加操作装置7に装着されると、ゲームシステム1は、右コントローラ4の赤外撮像部123から取得された撮像画像に基づいて、右コントローラ4が第2付加操作装置7に装着されたことを判別する。このとき、ゲームシステム1は、
図20に示すように、プレイヤキャラクタ200が飛行機オブジェクト202に搭乗した様子を表すゲーム画像を表示装置に表示する。
【0159】
また、右コントローラ4が第2付加操作装置7に装着されたことを判別した場合、ゲームシステム1は、第2付加操作装置7に対する各操作(具体的には、傾倒操作および押下操作)を検出し、ユーザによって行われたこれらの操作に応じて飛行機オブジェクト202の動作を制御する。なお、飛行機オブジェクト202の動作をユーザの操作に応じて制御する方法は任意である。例えば、本実施形態においては、ゲームシステム1は、把持部702に対する傾倒操作に応じて飛行機オブジェクト202の進行方向を制御する。また、ゲームシステム1は、ボタン704に対する押下操作に応じて、飛行機オブジェクト202から弾を発射する。
【0160】
以上のようにして、ユーザは、右コントローラ4を第2付加操作装置7に装着することによって、飛行機オブジェクト202をゲーム空間に出現させるとともに、飛行機オブジェクト202を操作するゲームをプレイすることができる。
【0161】
[2−2−4.第2装着状態から非装着状態へと移行した場合における処理]
上述のように、上記ゲームアプリケーションによるゲーム中において、右コントローラ4がいずれの付加操作装置にも装着されない場合、プレイヤキャラクタ200は乗物オブジェクトに搭乗しない状態でゲーム空間に配置される。なお、ゲームシステム1は、右コントローラ4から取得される撮像画像からいずれの基本マーカも検出されない場合、右コントローラ4がいずれの付加操作装置にも装着されていないと判別する。
【0162】
ここで、本実施形態においては、右コントローラ4に関する装着状態が、第2装着状態から非装着状態へと変化した場合、プレイヤキャラクタ200は、飛行機オブジェクト202に搭乗した状態から、パラシュートを装備した状態へと変化する。
【0163】
図21は、第2装着状態から非装着状態へと変化した場合に表示されるゲーム画像の一例を示す図である。右コントローラ4に関する装着状態が第2装着状態から非装着状態へと変化した場合、プレイヤキャラクタ200は、飛行機オブジェクト202に搭乗しない状態で空中に配置されるので、
図21に示すように、パラシュートを装備した状態となってゆっくりと地面に落下していく。なお、地面に着地した後、プレイヤキャラクタ200は、右コントローラ4に対する操作に応じて地面を移動する。
【0164】
プレイヤキャラクタ200がパラシュートを装備した状態においては、ユーザは、右コントローラ4に対する操作によってプレイヤキャラクタ200の動作を制御することができる。具体的には、ゲームシステム1は、右コントローラ4の姿勢に応じた方向へ落下するように、プレイヤキャラクタ200の落下方向を制御する。例えば、右コントローラ4を基準状態から前に傾ける操作に応じて、プレイヤキャラクタ200はゲーム空間における前方に移動しながら落下し、右コントローラ4を基準状態から右に傾ける操作に応じて、プレイヤキャラクタ200はゲーム空間における右に移動しながら落下する。なお、非装着状態における右コントローラ4の基準状態とは、右コントローラ4の上方向(すなわち、y軸正方向)が鉛直上向きとなる状態である。なお、非装着状態における右コントローラ4の基準状態における姿勢は、第2装着状態において把持部702が基準状態となるときの右コントローラ4の姿勢と実質的に同じである。
【0165】
上記のように、本実施形態においては、プレイヤキャラクタ200がパラシュートを装備した状態においては、プレイヤキャラクタ200が飛行機オブジェクト202に搭乗している状態と同様に、右コントローラ4を傾倒させる操作によってプレイヤキャラクタ200が制御される。
【0166】
ここで、プレイヤキャラクタ200がパラシュートを装備した状態におけるゲーム操作(すなわち、右コントローラ4を傾倒させる操作)を検出するために、ゲームシステム1は、右コントローラ4の前方向(換言すれば、右コントローラ4の側面のうちでどの側面を前側の面として取り扱うか)を設定する。なお、右コントローラ4の前方向を設定する処理は、右コントローラ4に対してユーザによって行われる操作の方向(ここでは、右コントローラ4を傾ける方向)と、当該方向への操作が行われたことに応じて実行されるゲーム処理の内容(ここでは、プレイヤキャラクタを移動させる処理における移動方向)との関係を設定する処理と言うことができる。本実施形態においては、ゲームシステム1は、次の方法によって右コントローラ4の前方向を設定する。
【0167】
図22は、第2装着状態から非装着状態へと移行する場合における右コントローラ4の前方向の設定方法の一例を示す図である。まず、
図22に示すように、右コントローラ4は、第2付加操作装置7に対して2通りの向きで装着可能である。すなわち、右コントローラ4と第2付加操作装置7とを用いたユーザの操作態様としては、第1操作態様および第2操作態様という2通りの操作態様が考えられる。第1操作態様は、右コントローラ4の本体装着面が、第2付加操作装置7の前方向(すなわち、
図17に示すZ軸正方向)を向く第1の向きで第2付加操作装置7に装着された状態で操作が行われる態様である。また、第2操作態様は、右コントローラ4の本体装着面が、第2付加操作装置7の後方向(すなわち、
図17に示すZ軸負方向)を向く第2の向きで第2付加操作装置7に装着された状態で操作が行われる態様である。なお、上記「本体装着面」とは、右コントローラ4が本体装置2に装着される場合において本体装置2に対向する面であって、換言すれば、
図5に示すx軸正方向側の面である。
【0168】
本実施形態においては、ゲームシステム1は、第2装着状態において、右コントローラ4が第2付加操作装置7に装着される向き(第1の向きであるか、それとも、第2の向きであるか。換言すれば、第1操作態様であるか、それとも、第2操作態様であるか)を記憶する。すなわち、ゲームシステム1は、第2装着状態において第1の操作態様で操作が行われる場合には、第1の向きを示す向き情報を記憶し、第2装着状態において第2の操作態様で操作が行われる場合には、第2の向きを示す向き情報を記憶する。
【0169】
また、第2装着状態から非装着状態へと変化した場合、ゲームシステム1は、第2装着状態において記憶された向き情報に応じて、非装着状態における右コントローラ4の前方向を設定する。具体的には、記憶された向き情報が第1の向きを示す場合には、ゲームシステム1は、本体装着面が向く方向(すなわち、
図5に示すx軸正方向)を、右コントローラ4の前方向として設定する。この場合、ゲームシステム1は、本体装着面が向く方向を前方向として右コントローラ4の姿勢を算出し、右コントローラ4を傾倒させる操作を検出する(
図22参照)。したがって、この場合、本体装着面が前に傾くように右コントローラ4が傾倒されると、ゲームシステム1は、右コントローラ4を前方向に傾ける操作を検出する。その結果、プレイヤキャラクタ200はゲーム空間において前方向に移動しながら落下する。つまり、上記の場合、本体装着面が前に傾くように右コントローラ4を傾倒する操作は、第2装着状態においても非装着状態においても前方向を指示する入力として取り扱われる。
【0170】
一方、記憶された向き情報が第2の向きを示す場合には、第2装着状態の後の非装着状態においては、ゲームシステム1は、本体装着面が向く方向の逆向きの方向(すなわち、
図5に示すx軸負方向)を、右コントローラ4の前方向として設定する。この場合、ゲームシステム1は、本体装着面が向く方向の逆向きの方向を前方向として右コントローラ4の姿勢を算出し、右コントローラ4を傾倒させる操作を検出する(
図22参照)。したがって、この場合、本体装着面が前に傾くように右コントローラ4が傾倒されると、ゲームシステム1は、右コントローラ4を後方向に傾ける操作を検出する。その結果、プレイヤキャラクタ200はゲーム空間において後方向に移動しながら落下する。つまり、上記の場合、本体装着面が前に傾くように右コントローラ4を傾倒する操作は、第2装着状態においても非装着状態においても後方向を指示する入力として取り扱われる。
【0171】
以上より、本実施形態においては、第2装着状態において右コントローラ4が第1の操作態様で操作が行われる場合には、その後の非装着状態において、本体装着面の側を前側として右コントローラ4の傾倒操作が検出される。一方、第2装着状態において右コントローラ4が第2の操作態様で操作が行われる場合には、その後の非装着状態において、本体装着面の側を後側として右コントローラ4の傾倒操作が検出される。したがって、本実施形態によれば、ユーザは、第2装着状態と、その後の非装着状態において、右コントローラ4の向きを変更することなくゲーム操作を行うことができる。換言すれば、ユーザは、第2装着状態における右コントローラ4の傾倒操作と、非装着状態における右コントローラ4の傾倒操作とにおいて、同じ方向に右コントローラ4を傾倒させることで、同じ方向を指示することができる。これによって、第2装着状態から非装着状態へ変化した場合における右コントローラ4の操作性を向上することができる。
【0172】
以上のように、本実施形態においては、ゲームシステム1は、右コントローラ4が所定の付加操作装置(本実施形態では、第2付加操作装置7)に装着されていると判別された場合、当該所定の付加操作装置に対する当該右コントローラの向きに関する向き情報を記憶する。また、ゲームシステム1は、右コントローラ4に対するユーザによる方向操作に基づいてゲーム処理を実行する。そして、ゲームシステム1は、第2装着状態から非装着状態へと変化した場合、上記方向操作によって指定される方向と、当該方向への操作が行われたことに応じて実行されるゲーム処理の内容との関係を、当該第2装着状態において記憶された向き情報に基づいて決定する(すなわち、右コントローラ4の前方向を設定する)。このように、非装着状態となる前の装着状態における右コントローラ4の向きを考慮して、当該非装着状態における上記関係を決定することによって、当該非装着状態における操作の操作性を向上することができる。
【0173】
なお、他の実施形態においては、非装着状態における右コントローラ4に対する上記方向操作は、本実施形態のような傾倒操作に限らず、方向を指定する任意の操作であってよい。例えば、他の実施形態においては、非装着状態における右コントローラ4に対する方向操作は、アナログスティックに対する操作であってもよい。すなわち、ゲームシステム1は、非装着状態において、アナログスティックに対する操作に応じてプレイヤキャラクタ200が落下する方向を制御してもよい。具体的には、ゲームシステム1は、第2装着状態において記憶された向き情報が第1の向きを示す場合には、本体装着面が向く方向にアナログスティック52を傾倒する操作を、前方向を指示する操作として検出し、プレイヤキャラクタ200を前方向に移動しながら落下させてもよい。一方、上記向き情報が第2の向きを示す場合には、ゲームシステム1は、本体装着面が向く方向にアナログスティック52を傾倒する操作を、後方向を指示する操作として検出し、プレイヤキャラクタ200を後方向に移動しながら落下させてもよい。
【0174】
[2−3.第3付加操作装置]
[2−3−1.第3付加操作装置の構成]
図23〜
図25を参照して、第3付加操作装置8と、右コントローラが第3付加操作装置8に装着された場合におけるゲーム処理について説明する。
図23は、第3付加操作装置および右コントローラの一例を示す図である。
【0175】
図23に示すように、第3付加操作装置8は、筐体801と、左ハンドル802と、被装着部803とを備える。なお、図示しないが、第3付加操作装置8は、左ハンドル802の反対側(すなわち、
図23に示すX正方向側)の側面に右ハンドルを備える。第3付加操作装置8は、左右の2つのハンドルを操作可能な操作装置であり、本実施形態においては、各ハンドルを用いて船オブジェクト203を操作するための操作装置である。
【0176】
図23に示す第3付加操作装置8において、左ハンドル802は、筐体801の左側面(すなわち、
図23に示すX軸負方向側の面)に接続されている。左ハンドル802は、筐体801に対して回転可能に接続される。具体的には、左ハンドル802は、環状の形状を有する環状部と、当該環状部の中心を通って当該環状部の一端から他端まで延びる軸部とを有する。左ハンドル802は、環状部の中心付近を回転軸にして、筐体801に対して回転可能である。以上の構成より、ユーザは、左ハンドル802を回転させる操作(以下、「左側回転操作」と呼ぶ)が可能である(
図23)。
【0177】
また、図示しないが、右ハンドルは、筐体801の右側面(すなわち、
図23に示すX軸正方向側の面)に接続されている。右ハンドルは、筐体801に対して回転可能に接続される。具体的には、右ハンドルは、左ハンドル802と同様の形状を有しており、当該右ハンドルの環状部の中心付近を回転軸にして、筐体801に対して回転可能である。以上の構成より、ユーザは、右ハンドルを回転させる操作(以下、「右側回転操作」と呼ぶ)が可能である。
【0178】
被装着部803は、筐体801の上面(すなわち、
図23に示すY軸正方向側の面)に設けられる。被装着部803は、筒状の形状であり、自身の内側に右コントローラ4を装着することが可能である。また、
図23に示すように、被装着部803における筒状部分の側面には溝が設けられる。右コントローラ4が被装着部803に挿入される際には、上記溝に沿ってアナログスティック52が挿入され、溝の端部にアナログスティック52が当接することによって、右コントローラ4の被装着部803に対する挿入が停止される。
【0179】
被装着部803の下端(すなわち、
図23に示すY軸負方向側の端)は開口している。また、筐体801においては、被装着部803の下端の開口部分に対向する位置に、孔が設けられる。したがって、第3付加操作装置8の被装着部803に装着された右コントローラ4の赤外撮像部123は、被装着部803の下端の前記開口を通して、筐体801の内部を撮像することが可能である。
【0180】
[2−3−2.マーカに基づく処理]
第3付加操作装置8においても第1および第2付加操作装置6および7と同様、付加操作装置の内部には、赤外撮像部123が撮像可能なマーカが設けられる。ゲームシステム1は、第3付加操作装置8に装着された右コントローラ4の赤外撮像部123による撮像画像からマーカを検出する。そして、ゲームシステム1は、マーカの検出結果に基づいて、右コントローラ4が第3付加操作装置8に装着されたことを判別したり、第3付加操作装置8に対して行われた操作(具体的には、左側回転操作および右側回転操作)を検出したりする。
【0181】
図24は、第3付加操作装置の内部構成の一例を示す図である。なお、
図24は、筐体801の上面(すなわち、被装着部803が設けられる面)を取り外して筐体801の内部を見た図である。
【0182】
図24に示すように、筐体801の内部には、第3付加操作装置8に装着された右コントローラ4の赤外撮像部123が撮像可能な位置に、第3基本マーカ811が設けられる。第3基本マーカ811の形状は任意であるが、上述の第1基本マーカ612および第2基本マーカ711とは異なる形状を有する。
図24に示す例においては、第3基本マーカ811は、1つの長方形と2つの正方形からなる形状である。
【0183】
第3付加操作装置8についても第1付加操作装置6および第2付加操作装置7と同様、ゲームシステム1は、基本マーカを用いて、右コントローラ4が装着された付加操作装置の種類を判別する。すなわち、ゲームシステム1は、右コントローラ4から取得した撮像画像において第3基本マーカ811を検出した場合、右コントローラ4が第3付加操作装置8に装着されたと判別する。
【0184】
また、
図24に示すように、第3付加操作装置8は、筐体801の内部において、第1左歯車805と、第2左歯車806とを備える。第1左歯車805は、左ハンドル802に接続されており、左ハンドル802の回転に応じて、左ハンドル802と同じ回転軸で回転する(
図24に示す矢印参照)。第2左歯車806は、筐体801に対して回転可能に設けられる。第2左歯車806は、第1左歯車805に咬み合うように配置され、第1左歯車805の回転に応じて、第1左歯車805の回転軸に垂直な回転軸で回転する(
図24に示す矢印参照)。以上の構成により、左ハンドル802の回転に応じて、第2左歯車806が回転する。
【0185】
図24に示すように、第2左歯車806には、第3付加操作装置8に装着された右コントローラ4の赤外撮像部123が撮像可能な位置に、左ハンドルマーカ812が設けられる。本実施形態においては、左ハンドルマーカ812は、第2左歯車806の中心付近に設けられる第1部分マーカと、第2左歯車806の周付近に設けられる第2部分マーカとからなる。なお、左ハンドルマーカ812の形状は、第2左歯車806の回転を識別可能な任意の形状でよい。
【0186】
本実施形態においては、左ハンドル802の回転に応じて第2左歯車806が回転すると、左ハンドルマーカ812の向き(換言すれば、第1部分マーカから第2部分マーカへの方向)が変化する。したがって、ゲームシステム1は、左ハンドルマーカ812の向きに基づいて、左ハンドル802の回転角度を算出することができ、左ハンドルに対する操作を検出することができる。したがって、ゲームシステム1は、第3付加操作装置8に装着された右コントローラ4から取得される撮像画像における左ハンドルマーカ812を示す画像の向きに基づいて、左ハンドル802の回転角度を算出することができ、回転角度に基づいて左側回転操作を検出することができる。具体的には、ゲームシステム1は、左ハンドル802の回転角度を検出する。
【0187】
図24に示すように、第3付加操作装置8は、筐体801の内部において、第1右歯車807と、第2右歯車808とを備える。第1右歯車807は、右ハンドルに接続されており、右ハンドルの回転に応じて、右ハンドルと同じ回転軸で回転する(
図24に示す矢印参照)。第2右歯車808は、筐体801に対して回転可能に設けられる。第2右歯車808は、第1右歯車807に咬み合うように配置され、第1右歯車807の回転に応じて、第1右歯車807の回転軸に垂直な回転軸で回転する(
図24に示す矢印参照)。以上の構成により、右ハンドルの回転に応じて、第2右歯車808が回転する。
【0188】
第2右歯車808には、第3付加操作装置8に装着された右コントローラ4の赤外撮像部123が撮像可能な位置に、右ハンドルマーカ813が設けられる。本実施形態においては、右ハンドルマーカ813は、第2右歯車808の中心付近に設けられる第3部分マーカと、第2右歯車808の周付近に設けられる第4部分マーカとからなる。
【0189】
以上の構成により、ゲームシステム1は、左側回転操作と同様にして右側回転操作を検出することができる。すなわち、ゲームシステム1は、第3付加操作装置8に装着された右コントローラ4から取得される撮像画像における右ハンドルマーカ813を示す画像の向きに基づいて、右ハンドルの回転角度を算出することができ、右側回転操作を検出することができる。
【0190】
[2−3−3.マーカが検出された場合におけるゲーム処理]
図25は、右コントローラ4が第3付加操作装置8に装着される場合に表示されるゲーム画像の一例を示す図である。右コントローラ4が第3付加操作装置8に装着されると、ゲームシステム1は、右コントローラ4の赤外撮像部123から取得された撮像画像に基づいて、右コントローラ4が第3付加操作装置8に装着されたことを判別する。このとき、ゲームシステム1は、
図25に示すように、プレイヤキャラクタ200が船オブジェクト203に搭乗した様子を表すゲーム画像を表示装置に表示する。
【0191】
また、右コントローラ4が第3付加操作装置8に装着されたことを判別した場合、ゲームシステム1は、第3付加操作装置8に対する各操作(具体的には、左側回転操作および右側回転操作)を検出し、ユーザによって行われたこれらの操作に応じて船オブジェクト203の動作を制御する。なお、船オブジェクト203の動作をユーザの操作に応じて制御する方法は任意である。例えば、本実施形態においては、ゲームシステム1は、左ハンドル802に対する左側回転操作に応じて船オブジェクト203の左側のスクリューの向きを制御する。また、ゲームシステム1は、右ハンドルに対する右側回転操作に応じて船オブジェクト203の右側のスクリューの向きを制御する。ゲームシステム1は、左側のスクリューの向きおよび右側のスクリューの向きに基づいて、船オブジェクト203の進行方向を制御する。
【0192】
以上のようにして、ユーザは、右コントローラ4を第3付加操作装置8に装着することによって、船オブジェクト203をゲーム空間に出現させるとともに、船オブジェクト203を操作するゲームをプレイすることができる。
【0193】
[2−4.マーカに基づく処理のまとめ]
以上のように、本実施形態においては、ゲームシステム1は、赤外撮像部123によって撮像された撮像画像に基づいて、右コントローラ4が装着された付加操作装置の種類を判別する。本実施形態によれば、ゲームシステム1は、撮像装置による撮像画像に基づいて判別を行うので、例えば、付加操作装置に電気的な構成を付加する必要なく、付加操作装置の種類を判別することができる。これによって、付加操作装置の構成を簡易化することができる。
【0194】
ここで、本実施形態においては、各付加操作装置6〜8は、それぞれ、付加操作装置に装着された右コントローラ4の赤外撮像部123によって撮像可能な被検出部の一例として、マーカを備える。ゲームシステム1は、撮像画像に含まれる被検出部の少なくとも一部(本実施形態においては、基本マーカ)を示す第1被検出部画像(本実施形態においては、基本マーカを示す画像)の形状に基づいて、右コントローラ4が装着された付加操作装置の種類(すなわち、第1〜第3付加装置6〜8のいずれか)を判別する。上記のように、付加操作装置に設けられた被検出部を撮像した撮像画像に基づくことによって、ゲームシステム1は、付加操作装置の種類を精度良く判別することができる。
【0195】
本実施形態においては、付加操作装置は複数の被検出部(すなわち、マーカ)を備えているが、他の実施形態においては、付加操作装置は1つの被検出部を備えていてもよい。例えば、付加操作装置は、上記基本マーカのみを備えていてもよい。
【0196】
なお、上記実施形態においては、撮像画像における基本マーカを示す画像の形状に基づいて付加操作装置の種類が判別された。ここで、基本マーカの形状に限らず、撮像された基本マーカの位置(具体的には、撮像画像における位置)または向き(具体的には、撮像画像上における向き)によっても、ある基本マーカを他の基本マーカと区別することが可能である。したがって、他の実施形態においては、ゲームシステム1は、基本マーカを示す画像の位置、形状、および、向きのうち少なくとも1つに基づいて、付加操作装置の種類を判別してもよい。したがって、付加操作装置に設けられる基本マーカは、他の種類の付加操作装置に設けられる基本マーカと比べて、(a)付加操作装置に装着された右コントローラ4の赤外撮像部123に対する位置、(b)当該赤外撮像部123に対する向き、および、(c)形状のうちの少なくとも1つが、異なっていればよい。
【0197】
また、本実施形態においては、各付加操作装置6〜8は、それぞれ、ユーザによる操作に応じて動く可動部を備える。具体的には、第1付加操作装置6は、可動部として、ハンドル602ならびに各レバー604および605を備え、第2付加操作装置7は、可動部として、ボタン704を備え、第3付加操作装置8は、可動部として、第2左歯車806および第2右歯車808を備える。なお、可動部は、ハンドル602のように、ユーザが直接的に動かす(すなわち、ユーザが可動部を触って動かす)ものであってもよい。また、可動部は、第2左歯車806のように、ユーザの操作によって間接的に動く(すなわち、可動部とは異なる操作部(例えば、左ハンドル802)をユーザが動かすことによって可動部が動く)ものであってもよい。
【0198】
本実施形態においては、ユーザの操作に応じて上記可動部が動かされることによって、当該可動部を備える付加操作装置に装着された右コントローラ4と、当該付加操作装置の被検出部との相対位置および/または相対姿勢が変化する。ゲームシステム1は、撮像画像に含まれる被検出部の少なくとも一部を示し、上記第1被検出部画像および/または第2被検出部画像(第2被検出部画像は、第1被検出部画像とは異なる)の位置および向きのうち少なくとも1つに基づいて(後述するように、上記第1被検出部画像および/または第2被検出部画像の形状に基づいてもよい)、ユーザの操作を検出し、当該検出されたユーザの操作に基づくゲーム処理を実行する。ここで、上記「第2被検出部画像」は、第1付加操作装置6においては、第1基本マーカ画像622、左レバーマーカ画像623、および、右レバーマーカ画像624であり、第2付加操作装置7においては、ボタンマーカ712を示す画像であり、第3付加操作装置8においては、左ハンドルマーカ812を示す画像および右ハンドルマーカ813を示す画像である。このように、第2被検出部画像は、基本マーカ画像であってもよいし、基本マーカ画像とは異なるマーカ画像であってもよい。上記のように、撮像画像におけるマーカの位置および/または向きに基づくことによって、ユーザの操作を精度良く検出することができる。例えば、ゲームシステム1は、1つの撮像画像に基づいて付加操作装置の種類の判別と、ユーザの操作の検出とを行うこともできるので、処理の効率化を図ることができる。
【0199】
なお、本実施形態においては、ゲームシステム1は、撮像画像におけるマーカの位置(例えば、左レバーマーカ画像623の位置)または向き(例えば、第1基本マーカ画像622の向き)に基づいてユーザの操作を検出した。ここで、他の実施形態においては、ゲームシステム1は、マーカの位置および/または向きに加えて(または代えて)、マーカの形状に基づいてユーザの操作を検出してもよい。例えば、左レバー604が長手方向を軸として回転可能である場合において、四角柱である左レバー604の4つの側面にそれぞれ異なる形状のマーカが設けられてもよい。このとき、ゲームシステム1は、左レバー604の側面のうちどの面が右コントローラ4の赤外撮像部123の方を向いているかを、撮像画像におけるマーカの形状に基づいて判別することができる。これによって、ゲームシステム1は、左レバー604の長手方向を軸として左レバー604を回転させるユーザの操作を検出することができる。
【0200】
なお、右コントローラ4と被検出部との相対位置および/または相対姿勢は、第1付加操作装置6における各レバーマーカ613および614、第2付加操作装置7におけるボタンマーカ712、ならびに、第3付加操作装置8における第2左歯車806および第2右歯車808のように、被検出部が設けられる可動部が動くことによって変化してもよい。また、上記相対位置および/または相対姿勢は、第1付加操作装置6におけるハンドル602のように、右コントローラ4が装着される可動部が動くことによって変化してもよい。また、上記相対位置および/または相対姿勢は、第1付加操作装置6のように、被検出部が設けられる可動部と、右コントローラ4が装着される可動部との両方が動くことによって変化してもよい。上記によれば、被検出部を検出することによって、上記相対位置および/または相対姿勢の変化を検出することができ、ユーザの操作を精度良く検出することができる。
【0201】
また、本実施形態においては、ゲームシステム1は、右コントローラ4が装着される付加操作装置の種類に加えて、各付加操作装置6〜8のいずれに対しても右コントローラ4が装着されていないことをさらに判別する。具体的には、ゲームシステム1は、ゲームアプリケーションの実行中において、赤外撮像部123による撮像画像を右コントローラ4から繰り返し取得する。そして、撮像画像からいずれの基本マーカも検出されない場合、ゲームシステム1は、右コントローラ4がいずれの付加操作装置にも装着されていないと判別する。これによれば、ゲームシステム1は、右コントローラ4が装着される付加操作装置の種類を判別することに加えて、右コントローラ4が付加操作装置に装着されるか否かを判別することができるので、右コントローラ4の装着状態をより詳細に判別することができる。
【0202】
[2−5.装着状態に応じたゲーム処理のまとめ]
上述したように、本実施形態においては、右コントローラ4が装着される付加操作装置の種類を切り替えることに応じたゲーム処理が実行される。具体的には、ゲームシステム1は、以下に示すゲーム処理を、付加操作装置の種類に応じて異なる処理内容で実行する。
【0203】
本実施形態においては、ゲームシステム1は、右コントローラ4が装着されていると判別された付加操作装置の種類に応じて異なるゲーム画像を生成する(
図16、
図20、
図25)。具体的には、ゲームシステム1は、右コントローラ4とそれに装着された付加操作装置とを用いたゲーム操作に基づいて制御される乗物オブジェクトを示すゲーム画像を、判別された付加操作装置の種類に応じて変化させる。上記によれば、ユーザは、右コントローラ4を付加操作装置に装着することによって、当該付加操作装置によって操作されるオブジェクトを変更することができる。したがって、本実施形態によれば、ゲームシステム1は、コントローラを装着する付加操作装置を変更することによって操作対象となるオブジェクトを変更する、という新規な操作感覚をユーザに提供することができる。
【0204】
なお、他の実施形態においては、付加操作装置の種類に応じて変化するゲーム画像の内容は任意である。本実施形態においては、ユーザの操作対象となるオブジェクトが付加操作装置の種類に応じて変化したが、他の実施形態においては、ユーザの操作対象ではないオブジェクト(例えば、プレイヤキャラクタの服、および/または、所持するアイテム等)が付加操作装置の種類に応じて変化してもよい。また、ゲームシステム1は、付加操作装置の種類に応じて、オブジェクトの全体を変化させてもよい(例えば、プレイヤキャラクタを切り替えてもよい)し、オブジェクトの一部(例えば、プレイヤキャラクタの服、および/または、所持するアイテム等)を変化させてもよい。なお、オブジェクトの変化は、オブジェクトの形状のみの変化であってもよいし、色のみの変化であってもよいし、形状および色の変化であってもよい。また例えば、ゲーム画像は、2次元のゲーム世界を表すものであってもよく、ゲームシステム1は、2次元のオブジェクトを表す画像を付加操作装置の種類に応じて変化させてもよい。
【0205】
また、他の実施形態においては、ゲームシステム1は、右コントローラ4が装着されていると判別された付加操作装置の種類に応じて、ゲーム画像とともに(またはゲーム画像に代えて)、ゲーム音(例えば、ゲーム中に出力されるBGM)を変化させるようにしてもよい。
【0206】
また、本実施形態においては、ゲームシステム1は、各付加操作装置のいずれに対しても右コントローラ4が装着されていないと判別された場合、右コントローラ4が各付加操作装置のいずれかに装着されている場合とは異なるゲーム処理を実行する。より具体的には、ゲームシステム1は、上記2つの場合で異なるゲーム画像を生成する(
図20、
図21)。これによれば、ユーザは、右コントローラ4を装着する付加操作装置の種類を変更することに加えて、右コントローラ4を付加操作装置に装着するか否かによってもゲームの表示を変更することができる。
【0207】
また、本実施形態においては、ゲームシステム1は、右コントローラ4が装着されていると判別された付加操作装置の種類に基づいて、仮想空間内に配置される仮想カメラの位置および/または姿勢を制御する。本実施形態においては、仮想カメラの位置および姿勢は、右コントローラ4が装着される付加操作装置の種類に応じて変化する。具体的には、本実施形態において、仮想カメラは、ユーザの操作対象の後方に、当該操作対象の方を向く姿勢で配置される(
図16、
図20、
図25)。ここで、右コントローラ4が第1付加操作装置6に装着される場合には、仮想カメラの位置および姿勢は、操作対象である自動車オブジェクト201が画面の中央よりやや下方に表示されるように設定される(
図16)。また、右コントローラ4が第3付加操作装置8に装着される場合、または、右コントローラ4がいずれの付加操作装置にも装着されない場合には、右コントローラ4が第1付加操作装置6に装着される場合と同様に仮想カメラが設定される。これに対して、右コントローラ4が第2付加操作装置7に装着される場合には、仮想カメラの位置および姿勢は、操作対象である飛行機オブジェクト202が画面の中央に表示されるように設定される(
図20)。このように、右コントローラ4が装着される付加操作装置の種類に応じて仮想カメラを設定することによって、ゲームシステム1は、ゲーム状況に応じた適切な視点から見たゲーム画像をユーザに提供することができる。
【0208】
また、本実施形態においては、ゲームシステム1は、右コントローラ4が装着されていると判別された付加操作装置の種類に応じて、ゲーム処理に用いる入力を変更する。すなわち、本実施形態においては、右コントローラ4は、当該右コントローラ4に対するユーザの操作を検出するための操作検出部を複数種類備える。具体的には、右コントローラ4は、操作検出部として、各ボタン113、アナログスティック52、加速度センサ114、および、角速度センサ115を備えている。ここで、ゲームシステム1は、右コントローラ4が所定の種類の付加操作装置(本実施形態においては、第2付加操作装置7)に装着されていると判別された場合、複数種類の操作検出部のうちで、判別されたサブ装置の種類に応じた操作検出部(本実施形態においては、加速度センサ114)による検出結果に基づいてゲーム処理を実行する。したがって、本実施形態によれば、ゲームシステム1は、右コントローラ4が装着された付加操作装置の種類に応じて適切な操作検出部による検出結果に基づいてゲーム処理を実行することができる。例えば、右コントローラ4が第2付加操作装置7に装着される場合には、ゲームシステム1は、加速度センサ114による検出結果に基づくことによって、把持部702に対する傾倒操作を検出することができ、加速度センサ114による検出結果(換言すれば、当該検出結果に基づいて算出される傾倒操作の内容)をユーザの入力として用いてゲーム処理を実行することができる。
【0209】
なお、他の実施形態においては、ゲームシステム1は、操作検出部による検出結果に応じて実行されるゲーム処理の内容を、右コントローラ4が装着されていると判別された付加操作装置の種類に応じて変更してもよい。例えば、ゲームシステム1は、操作検出部による検出結果に基づいて検出するゲーム操作を、付加操作装置の種類に応じて変更してもよいし、操作検出部による検出結果に基づいて検出されるゲーム操作に応じて実行されるゲーム処理を、付加操作装置の種類に応じて変更してもよい。
【0210】
具体的には、他の実施形態においては、ゲームシステム1は、右コントローラ4が第1装着状態となる場合において、ハンドル602に対する回転操作を、加速度センサ114による検出結果に基づいて検出してもよい。このとき、ゲームシステム1は、右コントローラ4の長手方向に平行な軸回りの回転に関する右コントローラ4の姿勢を、加速度センサ114による検出結果に基づいて算出し、当該姿勢に基づいてゲーム処理を実行する。これに対して、第2装着状態においては、ゲームシステム1は、右コントローラ4の長手方向に垂直な2軸回りの回転に関する右コントローラ4の姿勢を、加速度センサ114による検出結果に基づいて算出し、当該姿勢に応じたゲーム処理を実行する。このように、ゲームシステム1は、加速度センサ114による検出結果に基づく姿勢に応じたゲーム処理を実行する場合において、右コントローラ4が装着されている付加操作装置の種類に応じて異なる軸回りの姿勢を算出してもよい。その結果、検出結果に応じて実行されるゲーム処理の内容は、右コントローラ4が装着されている付加操作装置の種類に応じて異なるものとなる。
【0211】
また、他の実施形態においては、上記ゲーム処理に用いられる操作検出部は、加速度センサ114に限らず、各ボタン113、アナログスティック52、および、角速度センサ115等であってもよい。例えば、ゲームシステム1は、第1装着状態においては、アナログスティック52による検出結果(換言すれば、アナログスティック52対する入力)に応じて、仮想カメラを移動させるゲーム処理を実行し、第2装着状態においては、アナログスティック52による検出結果に応じて、飛行機オブジェクト202の姿勢を変化させるゲーム処理を実行してもよい。このように、操作検出部による検出結果に基づいて検出される操作は、右コントローラ4が備える操作部に対する操作であってもよいし、右コントローラ4を動かす操作であってもよい。
【0212】
[2−6.装着途中における処理]
上述のように、本実施形態においては、ゲームシステム1は、右コントローラ4の赤外撮像部123によって付加操作装置のマーカを撮像することによって、右コントローラ4の装着状態およびゲーム操作を検出する。ここで、右コントローラ4を付加操作装置に装着する途中の状態においては、ゲームシステム1が付加操作装置の複数のマーカのうち一部のマーカのみを認識する(換言すれば、検出する)状態となる場合がある。このような場合、本実施形態においては、ゲームシステム1は、一部のゲーム操作を検出するとともに、右コントローラ4の装着が途中であることをユーザに通知する。以下、
図26を参照して、右コントローラ4の装着が途中である場合における処理について説明する。
【0213】
図26は、一部認識状態となる場合と、全認識状態となる場合との一例を示す図である。なお、
図26においては、第1付加操作装置6に右コントローラ4が装着される場合を例として説明する。
図26に示すように、右コントローラ4が第1付加操作装置6に対して途中まで挿入された状態(
図26に示す左側の列の上側の欄)においては、赤外撮像部123は、第1基本マーカ612のみを撮像し、他のマーカ(すなわち、各レバーマーカ613および614)を撮像できない状態となる。
【0214】
ここで、本実施形態においては、各付加操作装置6〜8においては、右コントローラ4が付加操作装置に挿入されるときの挿入軸から基本マーカまでの距離は、当該挿入軸から上記他のマーカまでの距離よりも小さく設定される。つまり、基本マーカは、挿入軸から近い位置に配置され、他のマーカは、挿入軸から遠い位置に配置される。なお、上記「挿入軸」とは、右コントローラ4が付加操作装置に挿入される方向に平行であって、右コントローラ4の位置を通る直線である。したがって、本実施形態においては、右コントローラ4の装着が途中である状態においては、付加操作装置における筒状部分(すなわち、右コントローラ4が挿入される部分)の内壁によって赤外撮像部123の視野が遮蔽される結果、基本マーカのみが赤外撮像部123によって撮像される状態となることがある。
【0215】
上記のように、第1基本マーカ612のみが赤外撮像部123によって撮像される場合、撮像画像には、第1基本マーカ画像622が含まれ、他のマーカ画像(すなわち、各レバーマーカ画像623および624)が含まれない(
図26に示す中央の列の上側の欄)。このとき、撮像画像に基づいて基本マーカが認識され、上記他のマーカが認識されない状態となる。なお、以下においては、赤外撮像部123による撮像画像に基づいて基本マーカが認識され、上記他のマーカが認識されない状態を、「一部認識状態」と呼ぶ(
図26に示す上側の行)。また、赤外撮像部123による撮像画像に基づいて基本マーカおよび上記他のマーカの両方が認識される状態を、「全認識状態」と呼ぶ(
図26に示す下側の行)。
【0216】
上記一部認識状態においては、第1基本マーカ612が検出されるので、ゲームシステム1は、第1基本マーカ612に基づくゲーム処理を実行する。具体的には、一部認識状態において、ゲームシステム1は、右コントローラ4が第1付加操作装置6に装着されたことを判別し、ゲーム空間において自動車オブジェクト201を出現させる。そして、ゲームシステム1は、上述の回転操作を検出し、回転操作に応じて自動車オブジェクト201の動作を制御する。なお、一部認識状態においては、各レバーマーカ613および614が検出されないので、ゲームシステム1は、上述の下げ操作を検出することができず、下げ操作に応じた自動車オブジェクト201の動作の制御については行わない。
【0217】
上記のように、一部認識状態においては、ユーザは、一部のゲーム操作(すなわち、第1付加操作装置6の場合は、下げ操作)を行うことができない。そのため、ゲームシステム1は、一部のゲーム操作を行うことをユーザに通知する。すなわち、ゲームシステム1は、一部認識状態においては、全認識状態において表示されるゲーム画像とは異なるゲーム画像を表示装置に表示する。本実施形態においては、ゲームシステム1は、自動車オブジェクト201から煙が出ている様子を表す画像を表示する(
図26の右側の列の上側の欄)。これによって、ユーザは、右コントローラ4を正しく装着することができていないことを認識することができ、ゲームシステム1は、右コントローラ4を正しく装着することをユーザに促すことができる。
【0218】
一方、右コントローラ4が第1付加操作装置6に対して奥まで挿入されている(すなわち、正しく挿入されている)状態(
図26に示す左側の列の下側の欄)においては、赤外撮像部123は、第1基本マーカ612ならびに各レバーマーカ613および614の両方を撮像可能な状態となる。したがって、この状態においては、撮像画像は、第1基本マーカ画像622および他のマーカ画像(すなわち、各レバーマーカ画像623および624)を含み(
図26に示す中央の列の下側の欄)、ゲームシステム1は、第1基本マーカ612ならびに各レバーマーカ613および614を認識することができる。したがって、ゲームシステム1は、第1基本マーカ612に基づくゲーム処理と、各レバーマーカ613および614に基づくゲーム処理との両方を実行する。すなわち、ゲームシステム1は、通常の自動車オブジェクト201(すなわち、煙が出ていない自動車オブジェクト201)を含むゲーム画像を表示する(
図26に示す右側の列の下側の欄)。また、ゲームシステム1は、上述の回転操作および下げ操作を検出し、回転操作および下げ操作に応じて自動車オブジェクト201の動作を制御する。
【0219】
図26においては、右コントローラ4が第1付加操作装置6に装着される場合を例として説明したが、右コントローラ4が他の付加操作装置に装着される場合についても同様に、一部認識状態においては、ゲームシステム1は、全認識状態において実行されるゲーム処理のうちの一部のゲーム処理を実行する。
【0220】
具体的には、右コントローラ4が第2付加操作装置7に装着される場合における一部認識状態において、ゲームシステム1は、右コントローラ4が第2付加操作装置7に装着されたことを判別し、ゲーム空間において飛行機オブジェクト202を出現させる。そして、ゲームシステム1は、上述の傾倒操作を検出し、傾倒操作に応じて飛行機オブジェクト202の動作を制御する。右コントローラ4が第2付加操作装置7に装着される場合において、傾倒操作はマーカに基づかずに検出されるので、ゲームシステム1は一部認識状態においても傾倒操作を検出可能であるからである。また、ゲームシステム1は、飛行機オブジェクト202から煙が出る様子を表す画像を表示装置に表示する。
【0221】
また、右コントローラ4が第3付加操作装置8に装着される場合における一部認識状態において、ゲームシステム1は、右コントローラ4が第3付加操作装置8に装着されたことを判別し、ゲーム空間において船オブジェクト203を出現させる。なお、このとき、ゲームシステム1は、検出可能なユーザの操作がないので、ユーザの操作に応じて船オブジェクト203の動作の制御を行わない。このように、ゲームシステム1は、全ての種類の付加操作装置に関して、一部認識状態においてゲーム操作を検出する必要はない。また、ゲームシステム1は、船オブジェクト203から煙が出る様子を表す画像を表示装置に表示する。
【0222】
以上のように、本実施形態においては、付加操作装置が備える被検出部(すなわち、マーカ)は、第1部分(すなわち、基本マーカ)と、第2部分(すなわち、基本マーカ以外の他のマーカ)とを含む。ゲームシステム1は、撮像画像に含まれる第1部分を認識し、撮像画像に含まれる第2部分を認識する。ゲームシステム1は、第1部分を示す第1部分画像の位置、形状、および、向きのうち少なくとも1つに基づいて、右コントローラ4が装着された付加操作装置の種類を判別する。また、ゲームシステム1は、付加操作装置に装着された右コントローラの装着状態として、第1部分が認識され、第2部分が認識されない一部認識状態と、第1部分および第2部分が認識される全認識状態とを判別する。換言すれば、ゲームシステム1は、第1部分の認識結果(すなわち、第1部分が認識されたか否か)と第2部分の認識結果とに基づいて、付加操作装置に対して右コントローラ4が装着される度合いを判別する。なお、「付加操作装置に対して右コントローラ4が装着される度合い」とは、換言すれば、付加操作装置に対して右コントローラ4がどの程度装着された状態であるかを示す度合いであり、本実施形態においては、右コントローラ4が付加操作装置に対して装着途中の状態であるか、それとも、右コントローラ4が付加操作装置に奥まで装着された状態であるかを示す。上記によれば、ゲームシステム1は、右コントローラ4が付加操作装置に対して正しく装着された状態であるか、それとも、装着途中の状態であるかを判別することができる。
【0223】
また、ゲームシステム1は、右コントローラ4の装着状態が一部認識状態であると判別される場合、第1のゲーム処理(すなわち、乗物オブジェクトから煙が出る様子を表す画像を表示する処理)を実行し、右コントローラ4の装着状態が全認識状態であると判別される場合、当該第1のゲーム処理とは異なる第2のゲーム処理(すなわち、煙が出ていない乗物オブジェクトを表す画像を表示する処理)を実行する。換言すれば、ゲームシステム1は、付加操作装置に対して右コントローラ4が装着される度合いに応じたゲーム処理を実行する。これによれば、ユーザは、右コントローラ4が付加操作装置に正しく装着されているか否かを容易に認識することができる。
【0224】
なお、本実施形態においては、ゲームシステム1は、第1部分画像の位置および向きのうち少なくとも1つに基づいて、ユーザの第1の種類の操作(例えば、第1付加操作装置6に対する回転操作)を検出し、検出された第1の種類の操作に基づくゲーム処理を実行する。また、ゲームシステム1は、第2部分画像の位置および向きのうち少なくとも1つに基づいて、ユーザの第2の種類の操作(例えば、第1付加操作装置6に対する下げ操作)を検出し、検出された第2の種類の操作に基づくゲーム処理を実行する。これによれば、ユーザは、右コントローラ4が付加操作装置に対して装着途中であっても、一部のゲーム操作を行うことが可能である。したがって、本実施形態においては、ゲームシステム1は、付加操作装置を用いたゲーム操作の操作性を向上することができる。
【0225】
なお、上述のように、本実施形態においては、付加操作装置は、段ボールで構成され、ユーザによって組み立てられる。そのため、ユーザが付加操作装置を上手く組み立てられない可能性もあり、このとき、ユーザが右コントローラ4を付加操作装置に対してスムーズに装着(換言すれば、挿入)することができない可能性もある。これに関して、本実施形態によれば、ユーザが右コントローラ4を付加操作装置に対してスムーズに装着することができず、一部認識状態となってしまう場合であっても、ゲームシステム1は、ユーザに対して通知を行うことによって、右コントローラ4を正しく装着することをユーザに促すことができる。
【0226】
また、本実施形態においては、例えば付加操作装置の一部の操作部(例えば、第1付加操作装置6における各レバー604および605)が破損等によって無い状態となっても、ゲームシステム1は、当該一部の操作部以外の操作部に対する操作を検出することができる。
【0227】
[3.ゲームシステムにおける処理の具体例]
次に、
図27〜
図29を参照して、ゲームシステム1における情報処理の具体例について説明する。
【0228】
[3−1.情報処理に用いられるデータ]
図27は、ゲームシステム1における情報処理に用いられる各種データの一例を示す図である。
図27に示す各種データは、本体装置2がアクセス可能な記憶媒体(例えば、スロット23に装着された記憶媒体、フラッシュメモリ84、および/または、DRAM85)に記憶される。
【0229】
図27に示すように、本体装置2は、ゲームプログラム301を記憶する。ゲームプログラム301は、本実施形態におけるゲームを実行するためのゲームアプリケーションのプログラムであり、例えば、スロット23に装着された記憶媒体またはフラッシュメモリ84に記憶される。
【0230】
また、
図27に示すように、本体装置2は、操作データ302、装着状態データ303、認識状態データ304、向きデータ305、前方向データ306、および、オブジェクトデータ307を記憶する。これらのデータ(換言すれば、情報)302〜307は、後述する情報処理(
図28および
図29)において取得または生成されて用いられる。
【0231】
操作データ302は、コントローラから受信される操作データである。本実施形態においては、操作データ302は、赤外撮像部123による撮像画像のデータを含む。なお、他の実施形態においては、操作データ302は、撮像画像に対して何らかの加工が行われた情報、および/または、撮像画像から得られる情報(例えば、マーカの位置および向きを示す情報)を含んでいてもよい。なお、本体装置2が複数のコントローラから操作データを受信する場合、本体装置2は、コントローラ毎に操作データ302を記憶する。
【0232】
装着状態データ303は、右コントローラ4の装着状態を示す。具体的には、装着状態データ303は、第1〜第3装着状態、および、非装着状態のいずれかを示す。
【0233】
認識状態データ304は、ゲームシステム1におけるマーカの認識状態を示す。具体的には、認識状態データ304は、上述の一部認識状態または全認識状態を示す。
【0234】
向きデータ305は、上述の向き情報を示し、具体的には、第1の向きまたは第2の向きを示す。
【0235】
前方向データ306は、非装着状態において設定される、上述の右コントローラ4の前方向を示す。本実施形態においては、前方向データ306は、本体装着面が向く方向、または、当該方向の逆向きの方向を示す。
【0236】
オブジェクトデータ307は、ユーザの操作対象であるオブジェクト(すなわち、プレイヤキャラクタおよび乗物オブジェクト)に関する情報を示す。具体的には、オブジェクトデータ307は、プレイヤキャラクタが乗物オブジェクトを運転しているか否か、乗物オブジェクトを運転している場合は乗物オブジェクトの種類を示すデータを含む。また、オブジェクトデータ307は、プレイヤキャラクタまたは乗物オブジェクトの状態(例えば、ゲーム空間における位置および向き等)を示す各種パラメータのデータを含む。
【0237】
図28は、情報処理装置によって実行される情報処理の流れの一例を示すフローチャートである。なお、
図28に示す一連の処理は、上記ゲームプログラム301の起動後、所定の条件が満たされたこと(例えば、ゲームをプレイする旨の指示がユーザによって行われたこと)に応じて開始される。
【0238】
なお、本実施形態では、本体装置2のプロセッサ81(換言すれば、コンピュータ)が、ゲームプログラム301を実行することによって、
図28および
図29に示す各ステップの処理を実行するものとして説明する。ただし、他の実施形態においては、上記各ステップの処理のうちの一部の処理を、プロセッサ81とは別のプロセッサ(例えば、専用回路等)が実行するようにしてもよい。また、本体装置2がサーバと通信可能である場合、
図28および
図29に示す各ステップの処理の一部は、サーバにおいて実行されてもよい。また、コントローラが情報処理部(例えば、プロセッサ)を備える場合には、
図28および
図29に示す各ステップの処理の一部は、コントローラにおいて実行されてもよい。また、
図28および
図29に示す各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて(または代えて)別の処理が実行されてもよい。
【0239】
また、本体装置2のプロセッサ81は、
図28および
図29に示す各ステップの処理を、メモリ(具体的には、フラッシュメモリ84および/またはDRAM85)を用いて実行する。すなわち、プロセッサ81は、各処理ステップによって得られるデータをメモリに記憶し、それ以降の処理ステップにおいて当該データを用いる場合には、メモリから当該データを読み出して利用する。
【0240】
図28に示すステップS1において、プロセッサ81は、操作データを取得する。右コントローラ4は、操作データを本体装置2へ繰り返し送信するので、本体装置2は操作データを逐次受信し、操作データ302としてメモリに記憶する。操作データ302は、最新のものから順に所定個数の操作データを含んでいてもよい。ステップS1において、プロセッサ81は、操作データ302をメモリから読み出す。ステップS1の次に、ステップS2の処理が実行される。
【0241】
ステップS2において、プロセッサ81は、装着状態判別処理を実行する。装着状態判別処理は、右コントローラ4の付加操作装置に対する装着に関する状態を判別するための処理である。以下、
図29を参照して、装着状態判別処理の詳細について説明する。
【0242】
図29は、
図28に示すステップS2の装着状態判別処理の詳細な流れの一例を示すサブフローチャートである。装着状態判別処理においては、まずステップS21において、プロセッサ81は、マーカ画像を検出する。具体的には、プロセッサ81は、メモリに記憶されている操作データ302に含まれる撮像画像のデータから、当該撮像画像に含まれているマーカ画像を検出する。
【0243】
撮像画像からマーカ画像を検出する方法は任意である。本実施形態においては、撮像画像において、マーカ画像は、輝度が高い領域として現れる。したがって、プロセッサ81は、撮像画像から高輝度領域を抽出し、抽出した領域をマーカ画像の領域として検出する。ここで、右コントローラ4が付加操作装置に装着される途中である状態では、撮像画像には、マーカ画像の他に、ノイズ画像が含まれることがある。ノイズ画像は、赤外発光部124による赤外光が付加操作装置における筒状部分の内壁に乱反射して赤外撮像部123によって受光されたことによって生じる。このようなノイズ画像は、マーカ画像よりも大きくなるので、プロセッサ81は、撮像画像から抽出された高輝度領域のうちで、所定の大きさ以上の領域をノイズ画像であると判断し、マーカ画像としては検出しない。なお、プロセッサ81は、高輝度領域の輝度および/または形状に基づいてマーカ画像およびノイズ画像を判断してもよい。
【0244】
以上より、上記ステップS21においては、右コントローラ4が付加操作装置に装着された状態では、マーカ画像が検出される。なお、撮像画像に複数のマーカ画像が含まれる場合、プロセッサ81は、各マーカ画像(すなわち、基本マーカ画像と、その他のマーカ画像)をそれぞれ検出する。また、右コントローラ4が付加操作装置に装着される途中である状態では、基本マーカ画像のみが検出されることがある。一方、右コントローラ4が付加操作装置に装着されていない状態では、マーカ画像が検出されない。上記ステップS21の次に、ステップS22の処理が実行される。
【0245】
ステップS22において、プロセッサ81は、ステップS21における検出結果に基づいて、基本マーカが認識されたか否かを判定する。本実施形態においては、プロセッサ81は、現在の検出結果と、過去の検出結果とに基づいて判定を行う。具体的には、プロセッサ81は、下記の式(1)に従って判定値L(t)を算出する。
L(t)=p・Lc+(1−p)・L(t−1) …(1)
上式(1)において、変数Lcは、現在の検出結果を表す数値であり、具体的には、基本マーカが検出された場合には1となり、検出されない場合には0となる。変数L(t−1)は、前回のステップS22の処理において算出された判定値である。定数pは、0<p≦1の範囲で予め設定される。定数pが大きくなるほど、判定値L(t)に過去の検出結果(すなわち、L(t−1))が反映される度合いが大きくなる。
【0246】
算出された判定値L(t)が所定の閾値より大きい場合、プロセッサ81は、基本マーカが認識されたと判定する。一方、算出された判定値L(t)が所定の閾値以下である場合、プロセッサ81は、基本マーカが認識されていないと判定する。ステップS22の判定結果が否定である場合、ステップS23の処理が実行される。一方、ステップS22の判定結果が肯定である場合、ステップS24の処理が実行される。
【0247】
なお、マーカ画像の検出結果に基づいて、マーカが認識されたか否かの判定を行う方法は任意である。例えば、他の実施形態においては、プロセッサ81は、最新のステップS21における検出結果のみに基づいて(換言すれば、上記係数pを1に設定して)上記判定を行ってもよい。また例えば、他の実施形態においては、ステップS21において所定回数連続して基本マーカ画像が検出された場合、基本マーカ画像が認識されたと判定してもよい。
【0248】
ステップS23において、プロセッサ81は、右コントローラ4の状態を非装着状態であると判別する。すなわち、プロセッサ81は、非装着状態を示す装着状態データ303をメモリに記憶する。ステップS23の後、プロセッサ81は装着状態判別処理を終了する。
【0249】
一方、ステップS24において、プロセッサ81は、認識された基本マーカに基づいて、右コントローラ4が装着された付加操作装置の種類を判別する。すなわち、“[2−1−2.マーカに基づく処理]”において述べたように、各付加操作装置6〜8の第1〜第3基本マーカは、それぞれ異なる形状であるので、プロセッサ81は、認識された基本マーカの形状を特定することによって、付加操作装置の種類を判別する。また、プロセッサ81は、判別結果(すなわち、第1〜第3付加操作装置のいずれか)を示す装着状態データ303をメモリに記憶する。ステップS24の次に、ステップS25の処理が実行される。
【0250】
ステップS25において、プロセッサ81は、ステップS21において、基本マーカ画像以外の他のマーカ画像が検出されたか否かを判定する。例えば、ステップS21において基本マーカ画像のみが検出される場合(上述のノイズ画像が検出される場合を含む)、プロセッサ81は、他のマーカ画像が検出されていないと判定する。ステップS25の判定結果が肯定である場合、ステップS26の処理が実行される。一方、ステップS25の判定結果が否定である場合、後述するステップS28の処理が実行される。
【0251】
ステップS26において、プロセッサ81は、右コントローラ4が静止しているか否かを判定する。ここで、右コントローラ4が付加操作装置に装着されている途中の状態においては、右コントローラ4が動いており、この状態では、撮像画像においてマーカ画像の位置が右コントローラ4の動きによって変化するので、マーカに基づいて操作を正しく検出することができないおそれがある。そこで、本実施形態においては、右コントローラ4が静止している場合に、右コントローラ4が全認識状態であると判別し、この場合にマーカに基づいて操作を検出するようにするべく、ステップS26の判定を行っている。つまり、本実施形態においては、ステップS25およびS26の判定結果が共に肯定となる場合、ゲームシステム1は他のマーカ画像を認識する。
【0252】
本実施形態において、ステップS26の判定は、認識されている基本マーカに基づいて行われる。すなわち、撮像画像において検出された基本マーカ画像が変化していない状態(例えば、前回に検出された基本マーカ画像からの移動量が所定値以下であり、大きさの変化量が所定値以下である状態)が所定期間継続した場合、プロセッサ81は、右コントローラ4が静止していると判定する。一方、撮像画像において検出された基本マーカ画像が変化していない状態が所定期間継続していない場合、プロセッサ81は、右コントローラ4が静止していないと判定する。なお、他の実施形態においては、ステップS26の判定は、基本マーカに加えて(または、代えて)、右コントローラ4の加速度センサ114および/または角速度センサ115の検出結果に基づいて行われてもよい。ステップS26の判定結果が肯定である場合、ステップS27の処理が実行される。一方、ステップS26の判定結果が否定である場合、後述するステップS28の処理が実行される。
【0253】
ステップS27において、プロセッサ81は、全認識状態であると判別する。すなわち、プロセッサ81は、全認識状態を示す認識状態データ304をメモリに記憶する。ステップS27の次に、後述するステップS29の処理が実行される。
【0254】
一方、ステップS28において、プロセッサ81は、一部認識状態であると判別する。すなわち、プロセッサ81は、一部認識状態を示す認識状態データ304をメモリに記憶する。ステップS28の次に、ステップS29の処理が実行される。
【0255】
ステップS29において、プロセッサ81は、操作の検出に用いられるマーカ画像について、撮像画像上における位置および向きを算出する。なお、「操作の検出に用いられるマーカ画像」とは、第1装着状態においては、第1基本マーカ画像622ならびに各マーカ画像623および624であり、第2装着状態においては、ボタンマーカ712のマーカ画像であり、第3装着状態においては、各ハンドルマーカ812および813の各画像である。プロセッサ81は、算出された位置および向きを示すデータを、マーカ画像毎にメモリに記憶する。なお、右コントローラ4が一部検出状態であると判別された場合(ステップS28)において、操作の検出に用いられるマーカ画像がない場合、プロセッサ81は、マーカ画像の位置および向きを算出しない。ステップS29の後、プロセッサ81は装着状態判別処理を終了する。装着状態判別処理を終了した後、
図28に示すステップS3の処理が実行される。
【0256】
ステップS3において、プロセッサ81は、右コントローラ4の装着状態が変化したか否かを判定する。具体的には、プロセッサ81は、上記ステップS2において、装着状態データの内容が更新されたか否かに基づいて、ステップS3の判定を行う。ステップS3の判定結果が肯定である場合、ステップS4の処理が実行される。一方、ステップS3の判定結果が否定である場合、後述するステップS9の処理が実行される。
【0257】
ステップS4において、プロセッサ81は、右コントローラ4の装着状態に基づいて、プレイヤキャラクタ200が運転する乗物オブジェクトを変更する。すなわち、プロセッサ81は、メモリに記憶されているオブジェクトデータ307のうちで、プレイヤキャラクタ200が運転する乗物オブジェクトを示すデータを更新する。具体的には、右コントローラ4が第1装着状態である場合には、自動車オブジェクト201を示すデータがメモリに記憶され、右コントローラ4が第2装着状態である場合には、飛行機オブジェクト202を示すデータがメモリに記憶され、右コントローラ4が第3装着状態である場合には、船オブジェクト203を示すデータがメモリに記憶され、ステップS4の次に、ステップS5の処理が実行される。
【0258】
ステップS5において、プロセッサ81は、右コントローラ4が第2装着状態となったか否かを判定する。ステップS5の判定結果が肯定である場合、ステップS6の処理が実行される。一方、ステップS5の判定結果が否定である場合、ステップS7の処理が実行される。
【0259】
ステップS6において、プロセッサ81は、右コントローラ4が第2付加操作装置7に装着された時の向きを示す向き情報を保存する。具体的には、プロセッサ81は、第1の向きまたは第2の向きを示す向きデータをメモリに記憶する。なお、プロセッサ81は、右コントローラ4が第2付加操作装置7に装着された時の向きを、装着時において検出された基本マーカ画像の向きに基づいて判別することができる。ステップS6の次に、後述するステップS9の処理が実行される。
【0260】
ステップS7において、プロセッサ81は、右コントローラ4が第2装着状態から非装着状態へと変化したか否かを判定する。この判定は、メモリに記憶される装着状態データが、第2装着状態を示す内容から非装着状態を示す内容に更新されたか否かによって行われる。ステップS7の判定結果が肯定である場合、ステップS8の処理が実行される。一方、ステップS7の判定結果が否定である場合、ステップS9の処理が実行される。
【0261】
ステップS8において、プロセッサ81は、メモリに記憶されている向きデータに基づいて、右コントローラ4の前方向を設定する。具体的には、プロセッサ81は、上記“[2−2−4.第2装着状態から非装着状態へと移行した場合における処理]”で述べた方法で、右コントローラ4の前方向を設定する。プロセッサ81は、設定した前方向を示すデータを、前方向データ306としてメモリに記憶する。ステップS8の次に、ステップS9の処理が実行される。
【0262】
ステップS9において、プロセッサ81は、右コントローラ4の装着状態および認識状態に応じて、ユーザの操作を検出する。本実施形態においては、右コントローラ4の装着状態および認識状態に応じて検出される操作は、下記の通りである。
・第1装着状態であって、全認識状態である場合:回転操作、および、下げ操作
・第1装着状態であって、一部認識状態である場合:回転操作
・第2装着状態であって、全認識状態である場合:傾倒操作、および、押下操作
・第2装着状態であって、一部認識状態である場合:傾倒操作
・第3装着状態であって、全認識状態である場合:左側回転操作、および、右側回転操作
・第3装着状態であって、一部認識状態である場合:なし
・非装着状態である場合:右コントローラ4に対する操作
プロセッサ81は、操作データに基づいて上記各操作を検出する。このとき、プロセッサ81は、装着状態に応じて上述の操作検出部を必要に応じて特定する。本実施形態においては、右コントローラ4の装着状態が第2装着状態である場合には、加速度センサ114が特定される。そして、プロセッサ81は、撮像画像に基づいて操作を検出し、操作検出部が特定される場合には、当該操作検出部の検出結果に基づいて操作を検出する。なお、上記各操作の具体的な検出方法は、“[2−1−2.マーカに基づく処理]”、“[2−2−2.マーカに基づく処理]”、および、“[2−3−2.マーカに基づく処理]”で述べた通りである。なお、被装着状態においては、プレイヤキャラクタ200の状態(すなわち、地面に立った状態であるか、それとも、空中においてパラシュートを装備した状態であるか)に応じて、検出される操作が異なっていてもよい。例えば、プレイヤキャラクタ200が地面に立った状態である場合には、プロセッサ81は、右コントローラ4のアナログスティック52に対する操作を検出し、プレイヤキャラクタ200が空中においてパラシュートを装備した状態である場合には、プロセッサ81は、右コントローラ4の姿勢を変化させる操作を検出する。ステップS9の次に、ステップS10の処理が実行される。
【0263】
ステップS10において、プロセッサ81は、右コントローラ4の装着状態に応じた操作対象(すなわち、プレイヤキャラクタ200または乗物オブジェクト)を、検出された操作に応じて制御する。すなわち、第1装着状態においては、プロセッサ81は、上記回転操作および下げ操作に応じて自動車オブジェクト201を制御する。第2装着状態においては、プロセッサ81は、上記傾倒操作および押下操作に応じて飛行機オブジェクト202を制御する。第3装着状態においては、プロセッサ81は、上記左側回転操作および右側回転操作に応じて船オブジェクト203を制御する。非装着状態においては、プロセッサ81は、右コントローラ4に対する操作に応じてプレイヤキャラクタ200を制御する。ステップS10の次に、ステップS11の処理が実行される。
【0264】
ステップS11において、プロセッサ81は、右コントローラ4の装着状態に応じて仮想カメラを設定する。すなわち、プロセッサ81は、“[2−5.装着状態に応じたゲーム処理のまとめ]”で述べた方法に従って、装着状態に応じた位置および姿勢となるように仮想カメラを設定する。ステップS11の次に、ステップS12の処理が実行される。
【0265】
なお、上記ステップ9〜S11の一連の処理において、右コントローラ4の装着状態および認識状態は、メモリに記憶されている装着状態データ303および認識状態データ304を参照することによって知ることができる。
【0266】
ステップS12において、プロセッサ81は、仮想カメラに基づいてゲーム画像を生成し、生成されたゲーム画像を表示装置に表示する。すなわち、プロセッサ81は、ステップS11で設定された仮想カメラから見たゲーム空間であって、ステップS10の処理によって動作が制御されたオブジェクトを含むゲーム空間を示すゲーム画像を、表示装置に表示する。なお、右コントローラ4の認識状態が一部認識状態である場合、プロセッサ81は、乗物オブジェクトから煙が出る様子を表すゲーム画像を表示する。ステップS12の次に、ステップS13の処理が実行される。
【0267】
ステップS13において、プロセッサ81は、ゲームを終了するか否かを判定する。プロセッサ81は、例えば、予め定められた終了条件(例えば、プレイヤキャラクタがゴールに到達したこと)が満たされた場合、または、終了指示を示す入力がユーザによって行われた場合、ゲームを終了すると判定する。ステップS13の判定結果が否定である場合、ステップS1の処理が再度実行される。プロセッサ81は、ステップS13においてゲームを終了すると判定されるまで、ステップS1〜S13の処理ループを繰り返し実行する。一方、ステップS13の判定結果が肯定である場合、プロセッサ81は、
図28に示す情報処理を終了する。
【0268】
[4.本実施形態の作用効果および変形例]
以上に説明した実施形態によれば、情報処理装置の一例であるゲームプログラムは、複数種類のサブ装置(すなわち、付加操作装置)と、複数種類のサブ装置のいずれに対しても着脱可能なメイン装置(すなわち、右コントローラ4)とを含むゲームシステム1のコンピュータ(すなわち、プロセッサ81)を、次の手段として機能させる。
・所定のゲームアプリケーションの実行中において、複数種類のサブ装置のうちでメイン装置が装着されたサブ装置の種類を判別する判別手段(ステップS24)
・所定のゲームアプリケーションの実行中において、メイン装置、および/または、当該メイン装置が装着されたサブ装置を用いたゲーム操作に基づくゲーム処理を実行するゲーム処理実行手段(ステップS9〜S12)
上記ゲーム処理実行手段は、判別されたサブ装置の種類に応じたゲーム処理を実行する。
【0269】
上記「コンピュータ」は、上記実施形態においては、1つのコンピュータ(具体的には、プロセッサ81)であるが、他の実施形態においては、複数のコンピュータであってもよい。上記「コンピュータ」は、例えば、複数の装置に設けられる(複数の)コンピュータであってもよく、より具体的には、上記「コンピュータ」は、本体装置2のプロセッサ81と、コントローラが備える情報処理部とによって構成されてもよい。
【0270】
上記「メイン装置、および/または、当該メイン装置が装着されたサブ装置を用いたゲーム操作」は、メイン装置に対する操作(例えば、右コントローラ4に設けられるボタンに対する操作)であってもよいし、メイン装置が装着されたサブ装置に対する操作(例えば、サブ装置に設けられる操作部に対する操作)であってもよいし、これらの両方に対する操作(例えば、サブ装置のうちでメイン装置が装着された部分を動かす操作)であってもよい。
【0271】
上記実施形態によれば、ゲームシステム1は、ゲームアプリケーションの実行中において、メイン装置が装着されたサブ装置の種類を判別し、サブ装置の種類に応じたゲーム処理を実行する。これによれば、ユーザは、メイン装置が装着されるサブ装置を、例えばゲーム中において切り替えながらゲームをプレイすることができる。これによって、ゲームシステム1は、例えばゲームプレイ中にサブ装置を切り替えながらゲーム操作を行うという新規なゲーム体験をユーザに提供することができ、興趣性の高いゲームを提供することができる。
【0272】
上記実施形態においては、ゲームシステム1は、撮像装置(具体的には、赤外撮像部123)によって撮像された撮像画像に基づいて、メイン装置が装着されたサブ装置の種類を判別する。ここで、他の実施形態においては、撮像装置を用いる方法以外の方法でサブ装置の種類を判別してもよい。例えば、メイン装置とサブ装置とがコネクタまたはケーブルによって電気的に接続される場合、ゲームシステム1は、当該コネクタまたはケーブルを介してサブ装置からメイン装置が受信する信号に基づいてサブ装置の種類を判別してもよい。また例えば、メイン装置とサブ装置との間で近距離無線通信(例えば、NFCの規格に従った通信)を行う場合には、ゲームシステム1は、当該近距離無線通信によってサブ装置からメイン装置が受信する信号に基づいてサブ装置の種類を判別してもよい。
【0273】
上記実施形態においては、メイン装置は、それ自身のみで操作装置として機能する右コントローラ4であったが、他の実施形態においては、メイン装置は、それ自身のみでは操作装置として機能しない装置であってもよい。例えば、メイン装置は、赤外撮像部123を備え、ボタンまたは加速度センサといった操作検出部を備えていない構成であってもよい。
【0274】
上記「複数種類のサブ装置」は、所定の方法による判別よって異なる種類であると判別されるような違いをそれぞれ有する。具体的には、本実施形態においては、互いに異なる基本マーカを備える複数の付加操作装置(すなわち、第1〜第3付加操作装置6〜8)が、「複数種類のサブ装置」である。なお、他の実施形態においては、ゲームシステム1は、複数種類のサブ装置として、同じ形状を有する複数の付加操作装置であって、それぞれ異なる基本マーカを備える複数の付加操作装置を含んでいてもよい。また、他の実施形態においては、ゲームシステム1は、互いに異なる形状を有する複数の付加操作装置であって、同一の基本マーカを備える複数の付加操作装置を、同種の付加操作装置であるとして取り扱ってもよい。
【0275】
上記実施形態においては、付加操作装置に装着して用いるコントローラとして、1つの右コントローラ4が用いられた。ここで、他の実施形態においては、1つのゲームアプリケーションにおいて、複数のコントローラが付加操作装置に装着して用いられてもよい。例えば、他の実施形態においては、右コントローラ4が付加操作装置に装着されるとともに、左コントローラ3が他の付加操作装置に装着され、これら2つの操作装置が、ゲームアプリケーションにおけるゲーム操作に用いられてもよい。このとき、左コントローラ3はマーカを検出する機能を有していないので、ゲームシステム1は、加速度センサおよび/または角速度センサによる検出結果に基づいて左コントローラ3に対するゲーム操作を検出してもよい。また、他の実施形態においては、1つの付加操作装置に右コントローラ4と左コントローラ3とが同時に装着されてもよい。
【0276】
また、他の実施形態においては、右コントローラ4は、付加操作装置に直接装着されなくてもよく、付加操作装置に間接的に装着されてもよい。例えば、他の実施形態においては、右コントローラ4は保持装置に装着され、右コントローラ4が装着された保持装置が各付加操作装置のいずれかに装着されてもよい。
【0277】
上記「判別されたサブ装置の種類に応じたゲーム処理」におけるゲーム処理の内容は任意である。上記実施形態においては、上記ゲーム処理として、ゲームシステム1は、サブ装置の種類に応じて異なる操作を受け付け、当該操作に応じてオブジェクトの動作を制御する処理(ステップS9およびS10)、サブ装置の種類に応じて異なる位置および姿勢で仮想カメラを設定する処理(ステップS11)、および、サブ装置の種類に応じて異なるゲーム画像を生成する処理(ステップS12)を実行する。なお、他の実施形態においては、上記ゲーム処理は、ユーザの操作対象となるオブジェクトに設定されるゲームパラメータ(例えば、強さ、素早さ、または体力等を示すパラメータ)であって、サブ装置の種類に応じて異なる値に設定されたゲームパラメータを用いて実行されるゲーム処理であってもよい。このとき、ゲーム画像はサブ装置の種類に関わらず同じであってもよい。