(57)【要約】【課題】付加装置が使用されるゲームアプリケーションにおける興趣性を向上する。【解決手段】ゲームシステムは、複数種類のサブ装置と、複数種類のサブ装置のいずれに対しても着脱可能なメイン装置とを含み、所定のゲームアプリケーションを実行する。ゲームシステムは、所定のゲームアプリケーションの実行中において、複数種類のサブ装置のうちでメイン装置が装着されたサブ装置の種類を判別する。ゲームシステムは、所定のゲームアプリケーションの実行中において、メイン装置、および／または、当該メイン装置が装着されたサブ装置を用いたゲーム操作に基づくゲーム処理を実行する。ゲームシステムは、判別されたサブ装置の種類に応じたゲーム処理を実行する。【選択図】図８
2019115481.tif 000002
【特許請求の範囲】
【請求項１】
複数種類のサブ装置と、複数種類のサブ装置のいずれに対しても着脱可能なメイン装置とを含むゲームシステムであって、所定のゲームアプリケーションを実行するゲームシステムのコンピュータによって実行される情報処理プログラムであって、
前記所定のゲームアプリケーションの実行中において、前記複数種類のサブ装置のうちで前記メイン装置が装着されたサブ装置の種類を判別する判別手段と、
前記所定のゲームアプリケーションの実行中において、前記メイン装置、および／または、当該メイン装置が装着された前記サブ装置を用いたゲーム操作に基づくゲーム処理を実行するゲーム処理実行手段として、前記コンピュータを機能させ、
前記ゲーム処理実行手段は、前記判別手段によって判別された前記サブ装置の種類に応じたゲーム処理を実行する、情報処理プログラム。
【請求項２】
前記メイン装置は、撮像装置を備え、
前記判別手段は、前記撮像装置によって撮像された撮像画像に基づいて、前記メイン装置が装着されたサブ装置の種類を判別する、請求項１に記載の情報処理プログラム。
【請求項３】
前記複数のサブ装置は、それぞれ、当該サブ装置に装着された前記メイン装置の前記撮像装置によって撮像可能な被検出部を備え、
前記判別手段は、前記撮像画像に含まれる前記被検出部の少なくとも一部を示す第１被検出部画像の位置、形状、および、向きのうち少なくとも１つに基づいて、前記メイン装置が装着されたサブ装置の種類を判別する、請求項２に記載の情報処理プログラム。
【請求項４】
前記複数のサブ装置のうちの少なくともいずれか１つのサブ装置は、ユーザによる操作に応じて動く可動部をさらに備え、
前記ユーザの操作に応じて前記可動部が動かされることによって、当該可動部を備えるサブ装置に装着された前記メイン装置と、当該サブ装置の前記被検出部との相対位置および／または相対姿勢が変化し、
前記ゲーム処理実行手段は、前記撮像画像に含まれる前記被検出部の少なくとも一部を示し、前記第１被検出部画像および／または第２被検出部画像の位置、形状、および向きのうち少なくとも１つに基づいて、前記ユーザの操作を検出し、当該検出されたユーザの操作に基づくゲーム処理を実行する、請求項３に記載の情報処理プログラム。
【請求項５】
前記被検出部は、前記可動部における位置であって、当該可動部を備えるサブ装置に装着された前記メイン装置が備える前記撮像装置によって撮像可能な位置に設けられ、
前記ユーザの操作に応じて前記可動部が動かされることに応じて前記被検出部が動くことによって、前記メイン装置と当該被検出部との相対位置および／または相対姿勢が変化する、請求項４に記載の情報処理プログラム。
【請求項６】
前記メイン装置は、前記可動部に装着可能であり、
前記ユーザの操作に応じて前記可動部が動かされることに応じて当該可動部に装着された前記メイン装置が動くことによって、当該メイン装置と前記被検出部との相対位置および／または相対姿勢が変化する、請求項４に記載の情報処理プログラム。
【請求項７】
前記ゲーム処理実行手段は、判別された前記サブ装置の種類に応じて異なるゲーム画像を生成する、請求項１から請求項６のいずれか１項に記載の情報処理プログラム。
【請求項８】
前記ゲーム処理実行手段は、
前記メイン装置、および／または、当該メイン装置が装着された前記サブ装置を用いたゲーム操作に基づいて、仮想空間内に配置されるオブジェクトを制御し、
判別された前記サブ装置の種類に応じて前記オブジェクトを変化させる、請求項７に記載の情報処理プログラム。
【請求項９】
前記オブジェクトは、ゲームキャラクタが搭乗可能な乗物を表すオブジェクトである、請求項８に記載の情報処理プログラム。
【請求項１０】
前記メイン装置は、当該メイン装置に対するユーザの操作を検出するための操作検出部を複数種類備え、
前記ゲーム処理手段は、前記メイン装置が所定の種類のサブ装置に装着されていると判別された場合、前記複数種類の前記操作検出部のうちで、判別されたサブ装置の種類に応じた前記操作検出部による検出結果に基づいてゲーム処理を実行する、請求項１から請求項９のいずれか１項に記載の情報処理プログラム。
【請求項１１】
前記メイン装置は、当該メイン装置に対するユーザの操作を検出するための操作検出部を備え、
前記ゲーム処理手段は、前記操作検出部による検出結果に応じて実行されるゲーム処理の内容を、判別された前記サブ装置の種類に基づいて決定する、請求項１から請求項１０のいずれか１項に記載の情報処理プログラム。
【請求項１２】
前記ゲーム処理手段は、判別された前記サブ装置の種類に基づいて、仮想空間内に配置される仮想カメラの位置および／または姿勢を制御する、請求項１から請求項１１のいずれか１項に記載の情報処理プログラム。
【請求項１３】
前記判別手段は、前記複数のサブ装置のいずれに対しても前記メイン装置が装着されていないことをさらに判別する、請求項１から請求項１２のいずれか１項に記載の情報処理プログラム。
【請求項１４】
前記ゲーム処理実行手段は、前記複数のサブ装置のいずれに対しても前記メイン装置が装着されていないと判別された場合、当該メイン装置が当該複数のサブ装置のいずれかに装着されている場合とは異なるゲーム処理を実行する、請求項１３に記載の情報処理プログラム。
【請求項１５】
前記ゲームシステムは、記憶部をさらに備え、
前記情報処理プログラムは、
前記メイン装置が所定の種類のサブ装置に装着されていると判別された場合、当該所定の種類のサブ装置に対する当該メイン装置の向きに関する装置向き情報を前記記憶部に記憶する記憶制御手段として前記コンピュータをさらに機能させ、
前記ゲーム処理実行手段は、
前記メイン装置に対するユーザによる方向操作に基づいてゲーム処理を実行し、
前記メイン装置が前記所定の種類のサブ装置に装着されていると判別された装着状態から、前記複数のサブ装置のいずれに対しても当該メイン装置が装着されていないと判別された非装着状態へと変化した場合、前記方向操作によって指定される方向と、当該方向への操作が行われたことに応じて実行されるゲーム処理の内容との関係を、当該装着状態において前記記憶部に記憶された前記装置向き情報に基づいて決定する、請求項１３または請求項１４に記載の情報処理プログラム。
【請求項１６】
前記複数のサブ装置のうちの少なくともいずれか１つのサブ装置が備える前記被検出部は、第１部分と第２部分とを含み、
前記情報処理プログラムは、
前記撮像画像に基づいて、前記第１部分を認識し、前記第２部分を認識する認識手段として前記コンピュータをさらに機能させ、
前記判別手段は、
前記第１部分を示す第１部分画像の位置、形状、および、向きのうち少なくとも１つに基づいて、前記メイン装置が装着されたサブ装置の種類を判別し、
前記サブ装置に装着された前記メイン装置の状態として、前記第１部分が認識され、前記第２部分が認識されない第１状態と、前記第１部分および前記第２部分が認識される第２状態とを判別する、請求項３から請求項６のいずれか１項に記載の情報処理プログラム。
【請求項１７】
前記ゲーム処理実行手段は、前記メイン装置が前記第１状態であると判別される場合、第１のゲーム処理を実行し、前記メイン装置が前記第２状態であると判別される場合、当該第１のゲーム処理とは異なる第２のゲーム処理を実行する、請求項１６に記載の情報処理プログラム。
【請求項１８】
前記複数のサブ装置のうちの少なくともいずれか１つのサブ装置が備える前記被検出部は、第１部分と第２部分とを含み、
前記情報処理プログラムは、
前記撮像画像に基づいて、前記第１部分を認識し、前記第２部分を認識する認識手段として前記コンピュータをさらに機能させ、
前記判別手段は、
前記第１部分を示す第１部分画像の位置、形状、および、向きのうち少なくとも１つに基づいて、前記メイン装置が装着されたサブ装置の種類を判別し、
前記第１部分の認識結果と前記第２部分の認識結果とに基づいて、前記サブ装置に対して前記メイン装置が装着される度合いを判別する、請求項３から請求項６のいずれか１項に記載の情報処理プログラム。
【請求項１９】
前記ゲーム処理実行手段は、前記サブ装置に対して前記メイン装置が装着される度合いに応じたゲーム処理を実行する、請求項１８に記載の情報処理プログラム。
【請求項２０】
前記複数のサブ装置のうちの少なくともいずれか１つのサブ装置は、ユーザによる操作に応じて動く可動部をさらに備え、
前記ユーザの操作に応じて前記可動部が動かされることによって、当該可動部を備えるサブ装置に装着された前記メイン装置と、当該サブ装置の前記被検出部との相対位置が変化し、
前記ゲーム処理実行手段は、
前記第１部分を示す第１部分画像の位置、形状、および向きのうち少なくとも１つに基づいて、前記ユーザの第１の種類の操作を検出し、検出された第１の種類の操作に基づくゲーム処理を実行し、
前記第２部分を示す第２部分画像の位置、形状、および向きのうち少なくとも１つに基づいて、前記ユーザの第２の種類の操作を検出し、検出された第２の種類の操作に基づくゲーム処理を実行する、請求項１６から請求項１９のいずれか１項に記載の情報処理プログラム。
【請求項２１】
複数種類のサブ装置と、複数種類のサブ装置のいずれに対しても着脱可能なメイン装置とを含み、所定のゲームアプリケーションを実行する情報処理システムであって、
前記所定のゲームアプリケーションの実行中において、前記複数種類のサブ装置のうちで前記メイン装置が装着されたサブ装置の種類を判別する判別部と、
前記所定のゲームアプリケーションの実行中において、前記メイン装置、および／または、当該メイン装置が装着された前記サブ装置を用いたゲーム操作に基づくゲーム処理を実行するゲーム処理実行部とを備え、
前記ゲーム処理実行部は、前記判別部によって判別された前記サブ装置の種類に応じたゲーム処理を実行する、情報処理システム。
【請求項２２】
複数種類のサブ装置と、複数種類のサブ装置のいずれに対しても着脱可能なメイン装置とを含むゲームシステムに含まれ、所定のゲームアプリケーションを実行する情報処理装置であって、
前記所定のゲームアプリケーションの実行中において、前記複数種類のサブ装置のうちで前記メイン装置が装着されたサブ装置の種類を判別する判別部と、
前記所定のゲームアプリケーションの実行中において、前記メイン装置、および／または、当該メイン装置が装着された前記サブ装置を用いたゲーム操作に基づくゲーム処理を実行するゲーム処理実行部とを備え、
前記ゲーム処理実行部は、前記判別部によって判別された前記サブ装置の種類に応じたゲーム処理を実行する、情報処理装置。
【請求項２３】
複数種類のサブ装置と、複数種類のサブ装置のいずれに対しても着脱可能なメイン装置とを含み、所定のゲームアプリケーションを実行する情報処理システムにおいて実行される情報処理方法であって、
前記所定のゲームアプリケーションの実行中において、前記複数種類のサブ装置のうちで前記メイン装置が装着されたサブ装置の種類を判別する判別ステップと、
前記所定のゲームアプリケーションの実行中において、前記メイン装置、および／または、当該メイン装置が装着された前記サブ装置を用いたゲーム操作に基づくゲーム処理を実行するゲーム処理実行ステップとを備え、
前記ゲーム処理実行ステップにおいては、前記判別ステップにおいて判別された前記サブ装置の種類に応じたゲーム処理を実行する、情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、装置を他の装置に装着して使用する情報処理システムに関する。
【背景技術】
【０００２】
従来、ゲームアプリケーションにおいて、装置（例えば、コントローラ）を他の装置に装着して使用する情報処理システムがある（例えば、特許文献１参照）。例えば、ゲームシステムにおいては、コントローラであるコアユニットを銃型のサブユニットに装着した操作装置を用いて、ユーザがゲームをプレイすることがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−３００９８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来、１つのゲームアプリケーションにおいては、当該ゲームアプリケーションに対応する１種類の付加装置にコントローラが装着されて用いられる。すなわち、１つのアプリケーションに対して使用される付加装置が１つに定められていたため、付加装置を用いた操作のバリエーションに乏しく、興趣性の面で改善の余地があった。
【０００５】
それ故、本発明の目的は、付加装置が使用されるゲームアプリケーションにおける興趣性を向上することである。
【課題を解決するための手段】
【０００６】
上記の課題を解決すべく、本発明は、以下の（１）〜（２０）の構成を採用した。
【０００７】
（１）
本発明の一例は、所定のゲームアプリケーションを実行するゲームシステムのコンピュータによって実行される情報処理プログラムである。ゲームシステムは、複数種類のサブ装置と、複数種類のサブ装置のいずれに対しても着脱可能なメイン装置とを含む。ゲームプログラムは、判別手段と、ゲーム処理実行手段として、前記コンピュータを機能させる。判別手段は、前記所定のゲームアプリケーションの実行中において、前記複数種類のサブ装置のうちで前記メイン装置が装着されたサブ装置の種類を判別する。ゲーム処理実行手段は、前記所定のゲームアプリケーションの実行中において、前記メイン装置、および／または、当該メイン装置が装着された前記サブ装置を用いたゲーム操作に基づくゲーム処理を実行する。前記ゲーム処理実行手段は、前記判別手段によって判別された前記サブ装置の種類に応じたゲーム処理を実行する。
【０００８】
上記（１）の構成によれば、メイン装置が装着されるサブ装置の種類がゲームアプリケーションの実行中において判別され、判別されたサブ装置の種類に応じたゲーム処理が実行される。これによれば、ユーザは、ゲームアプリケーションの実行中において、メイン装置を装着するサブ装置を切り替えてゲームをプレイすることができる。これによって、ゲームシステムは、新規なゲーム体験をユーザに提供することができ、サブ装置が使用されるゲームアプリケーションにおける興趣性を向上することができる。
【０００９】
（２）
前記メイン装置は、撮像装置を備えてもよい。前記判別手段は、前記撮像装置によって撮像された撮像画像に基づいて、前記メイン装置が装着されたサブ装置の種類を判別してもよい。
【００１０】
上記（２）の構成によれば、サブ装置の構成を簡易化することができる。
【００１１】
（３）
前記複数のサブ装置は、それぞれ、当該サブ装置に装着された前記メイン装置の前記撮像装置によって撮像可能な被検出部を備えてもよい。前記判別手段は、前記撮像画像に含まれる前記被検出部の少なくとも一部を示す第１被検出部画像の位置、形状、および、向きのうち少なくとも１つに基づいて、前記メイン装置が装着されたサブ装置の種類を判別する。
【００１２】
上記（３）の構成によれば、サブ装置の構成を簡易化することができる。
【００１３】
（４）
前記複数のサブ装置のうちの少なくともいずれか１つのサブ装置は、ユーザによる操作に応じて動く可動部をさらに備えてもよい。前記ユーザの操作に応じて前記可動部が動かされることによって、当該可動部を備えるサブ装置に装着された前記メイン装置と、当該サブ装置の前記被検出部との相対位置および／または相対姿勢が変化してもよい。前記ゲーム処理実行手段は、前記撮像画像に含まれる前記被検出部の少なくとも一部を示し、前記第１被検出部画像および／または第２被検出部画像の位置、形状、および向きのうち少なくとも１つに基づいて、前記ユーザの操作を検出し、当該検出されたユーザの操作に基づくゲーム処理を実行してもよい。
【００１４】
上記（４）の構成によれば、ゲームシステムは、サブ装置の種類を判別することに加えて、サブ装置に対して行われるユーザの操作を検出することができる。
【００１５】
（５）
前記被検出部は、前記可動部における位置であって、当該可動部を備えるサブ装置に装着された前記メイン装置が備える前記撮像装置によって撮像可能な位置に設けられてもよい。前記ユーザの操作に応じて前記可動部が動かされることに応じて前記被検出部が動くことによって、前記メイン装置と当該被検出部との相対位置および／または相対姿勢が変化してもよい。
【００１６】
上記（５）の構成によれば、可動部に被検出部を設けることによって、ゲームシステムは、メイン装置と当該被検出部との相対位置および／または相対姿勢を撮像画像から容易に検出することができる。
【００１７】
（６）
前記メイン装置は、前記可動部に装着可能であってもよい。前記ユーザの操作に応じて前記可動部が動かされることに応じて当該可動部に装着された前記メイン装置が動くことによって、当該メイン装置と前記被検出部との相対位置および／または相対姿勢が変化してもよい。
【００１８】
上記（６）の構成によれば、メイン装置を可動部に装着可能な構成とすることによって、ゲームシステムは、メイン装置と当該被検出部との相対位置および／または相対姿勢を撮像画像から容易に検出することができる。
【００１９】
（７）
ゲーム処理実行手段は、判別されたサブ装置の種類に応じて異なるゲーム画像を生成してもよい。
【００２０】
上記（７）の構成によれば、メイン装置が装着されたサブ装置の種類に応じてゲーム画像が変化するので、ゲームシステムは、メイン装置の装着状態をユーザに対して容易に認識させることができる。
【００２１】
（８）
ゲーム処理実行手段は、メイン装置、および／または、当該メイン装置が装着されたサブ装置を用いたゲーム操作に基づいて、仮想空間内に配置されるオブジェクトを制御してもよい。ゲーム処理実行手段は、判別されたサブ装置の種類に応じてオブジェクトを変化させてもよい。
【００２２】
上記（８）の構成によれば、ユーザは、メイン装置を装着するサブ装置を変更することによって、操作対象となるオブジェクトを変更することができる。これによって、ゲームシステムは、新規なゲーム操作をユーザに提供することができる。
【００２３】
（９）
オブジェクトは、ゲームキャラクタが搭乗可能な乗物を表すオブジェクトであってもよい。
【００２４】
上記（９）の構成によれば、ユーザは、メイン装置を装着するサブ装置を変更することによって、操作する乗物オブジェクトを変化させることができ、ゲームシステムは、興趣性の高いゲームを提供することができる。
【００２５】
（１０）
メイン装置は、当該メイン装置に対するユーザの操作を検出するための操作検出部を複数種類備えてもよい。ゲーム処理手段は、メイン装置が所定の種類のサブ装置に装着されていると判別された場合、複数種類の操作検出部のうちで、判別されたサブ装置の種類に応じた操作検出部による検出結果に基づいてゲーム処理を実行してもよい。
【００２６】
上記（１０）の構成によれば、ゲームシステムは、メイン装置が装着されたサブ装置の種類に応じた適切な操作検出部による検出結果に基づいてゲーム処理を実行することができる。また、ユーザは、メイン装置を装着するサブ装置を切り替える際に、ゲームの設定（例えば、操作検出部に関する設定）を変更する手間が少なくて済むので、ユーザの利便性を向上することができる。
【００２７】
（１１）
メイン装置は、当該メイン装置に対するユーザの操作を検出するための操作検出部を備えてもよい。ゲーム処理手段は、操作検出部による検出結果に応じて実行されるゲーム処理の内容を、判別されたサブ装置の種類に基づいて決定してもよい。
【００２８】
上記（１１）の構成によれば、ゲームシステムは、操作検出部による検出結果に応じて実行されるゲーム処理の内容を、メイン装置が装着されたサブ装置の種類に応じて適切に設定することができる。また、ユーザは、メイン装置を装着するサブ装置を切り替える際に、ゲームの設定を変更する手間が少なくて済むので、ユーザの利便性を向上することができる。
【００２９】
（１２）
ゲーム処理手段は、判別されたサブ装置の種類に基づいて、仮想空間内に配置される仮想カメラの位置および／または姿勢を制御してもよい。
【００３０】
上記（１２）の構成によれば、ゲームシステムは、ゲーム状況に応じた適切な視点から見たゲーム画像をユーザに提供することができる。また、ユーザは、メイン装置を装着するサブ装置を切り替える際に、仮想カメラの設定を変更する手間が少なくて済むので、ユーザの利便性を向上することができる。
【００３１】
（１３）
判別手段は、複数のサブ装置のいずれに対してもメイン装置が装着されていないことをさらに判別してもよい。
【００３２】
上記（１３）の構成によれば、ゲームシステムは、メイン装置がサブ装置に装着されていない状態を検出することができる。
【００３３】
（１４）
ゲーム処理実行手段は、複数のサブ装置のいずれに対してもメイン装置が装着されていないと判別された場合、当該メイン装置が当該複数のサブ装置のいずれかに装着されている場合とは異なるゲーム処理を実行してもよい。
【００３４】
上記（１４）の構成によれば、ユーザは、ゲーム画像を見ることによって、メイン装置が装着されるサブ装置の種類に加えて、メイン装置がサブ装置に装着されているか否かを認識することができる。これによれば、ゲームシステムは、メイン装置のより詳細な装着状態をユーザに対して認識させることができる。
【００３５】
（１５）
ゲームシステムは、記憶部をさらに備えてもよい。情報処理プログラムは、記憶制御手段としてコンピュータをさらに機能させてもよい。記憶制御手段は、メイン装置が所定の種類のサブ装置に装着されていると判別された場合、当該所定の種類のサブ装置に対する当該メイン装置の向きに関する装置向き情報を記憶部に記憶する。ゲーム処理実行手段は、メイン装置に対するユーザによる方向操作に基づいてゲーム処理を実行してもよい。ゲーム処理実行手段は、メイン装置が所定の種類のサブ装置に装着されていると判別された装着状態から、複数のサブ装置のいずれに対しても当該メイン装置が装着されていないと判別された非装着状態へと変化した場合、方向操作によって指定される方向と、当該方向への操作が行われたことに応じて実行されるゲーム処理の内容との関係を、当該装着状態において記憶部に記憶された装置向き情報に基づいて決定してもよい。
【００３６】
上記（１５）の構成によれば、ゲームシステムは、非装着状態へと変化する前の装着状態におけるメイン装置の向きを考慮して、ゲーム処理を行うことができる。
【００３７】
（１６）
複数のサブ装置のうちの少なくともいずれか１つのサブ装置が備える被検出部は、第１部分と第２部分とを含んでもよい。情報処理プログラムは、認識手段としてコンピュータをさらに機能させてもよい。認識手段は、撮像画像に基づいて、第１部分を認識し、第２部分を認識する。判別手段は、第１部分を示す第１部分画像の位置、形状、および、向きのうち少なくとも１つに基づいて、メイン装置が装着されたサブ装置の種類を判別してもよい。判別手段は、サブ装置に装着されたメイン装置の状態として、第１部分が認識され、第２部分が認識されない第１状態と、第１部分および第２部分が認識される第２状態とを判別してもよい。
【００３８】
上記（１６）の構成によれば、ゲームシステムは、メイン装置のサブ装置への装着度合いを推測することができる。
【００３９】
（１７）
ゲーム処理実行手段は、メイン装置が第１状態であると判別される場合、第１のゲーム処理を実行し、メイン装置が第２状態であると判別される場合、当該第１のゲーム処理とは異なる第２のゲーム処理を実行してもよい。
【００４０】
上記（１７）の構成によれば、第１状態と第２状態とで異なるゲーム処理が実行され、異なるゲーム結果が生じる（例えば、異なるゲーム画像が表示される）ので、ゲームシステムは、メイン装置のサブ装置への装着度合いをユーザに対して認識させることができる。
【００４１】
（１８）
複数のサブ装置のうちの少なくともいずれか１つのサブ装置が備える被検出部は、第１部分と第２部分とを含んでもよい。情報処理プログラムは、認識手段としてコンピュータをさらに機能させてもよい。認識手段は、撮像画像に基づいて、第１部分を認識し、第２部分を認識する。判別手段は、第１部分を示す第１部分画像の位置、形状、および、向きのうち少なくとも１つに基づいて、メイン装置が装着されたサブ装置の種類を判別してもよい。判別手段は、第１部分の認識結果と第２部分の認識結果とに基づいて、サブ装置に対してメイン装置が装着される度合いを判別してもよい。
【００４２】
上記（１８）の構成によれば、ゲームシステムは、メイン装置のサブ装置への装着度合いを推測することができる。
【００４３】
（１９）
ゲーム処理実行手段は、サブ装置に対してメイン装置が装着される度合いに応じたゲーム処理を実行してもよい。
【００４４】
上記（１９）の構成によれば、サブ装置に対してメイン装置が装着される度合いに応じたゲーム処理が実行され、当該度合いに応じたゲーム結果が生じる（例えば、装着度合いに応じた画像が表示される）ので、ゲームシステムは、メイン装置のサブ装置への装着度合いをユーザに対して認識させることができる。
【００４５】
（２０）
複数のサブ装置のうちの少なくともいずれか１つのサブ装置は、ユーザによる操作に応じて動く可動部をさらに備えてもよい。ユーザの操作に応じて可動部が動かされることによって、当該可動部を備えるサブ装置に装着されたメイン装置と、当該サブ装置の被検出部との相対位置が変化してもよい。ゲーム処理実行手段は、第１部分を示す第１部分画像の位置、形状、および向きのうち少なくとも１つに基づいて、ユーザの第１の種類の操作を検出し、検出された第１の種類の操作に基づくゲーム処理を実行してもよい。ゲーム処理実行手段は、第２部分を示す第２部分画像の位置、形状、および向きのうち少なくとも１つに基づいて、ユーザの第２の種類の操作を検出し、検出された第２の種類の操作に基づくゲーム処理を実行してもよい。
【００４６】
上記（２０）の構成によれば、ユーザは、第１状態と判別される場合（例えば、メイン装置がサブ装置に対して装着途中である場合）であっても、一部のゲーム操作を行うことができる。これによって、ゲームシステムは、サブ装置を用いた操作の操作性を向上することができる。
【００４７】
なお、本発明の別の一例は、上記（１）〜（２０）における各手段を備える情報処理装置または情報処理システムであってもよい。また、本発明の別の一例は、上記（１）〜（２０）における情報処理装置（または情報処理システム）において実行される情報処理方法であってもよい。
【発明の効果】
【００４８】
本発明によれば、付加装置（すなわち、サブ装置）が使用されるゲームアプリケーションにおける興趣性を向上することができる。
【図面の簡単な説明】
【００４９】
【図１】本体装置に左コントローラおよび右コントローラを装着した状態の一例を示す図
【図２】本体装置から左コントローラおよび右コントローラをそれぞれ外した状態の一例を示す図
【図３】本体装置の一例を示す六面図
【図４】左コントローラの一例を示す六面図
【図５】右コントローラの一例を示す六面図
【図６】本体装置の内部構成の一例を示すブロック図
【図７】本体装置と左コントローラおよび右コントローラとの内部構成の一例を示すブロック図
【図８】コントローラと付加操作装置との組み合わせと、操作対象となるオブジェクトとの関係を示す図
【図９】第１付加操作装置および右コントローラの一例を示す図
【図１０】図９に示す第１付加操作装置を前側から見た図
【図１１】筐体の内部構成の一例を示す図
【図１２】第１付加操作装置のハンドルが基準状態となる場合において赤外撮像部によって撮像された撮像画像の一例を示す図
【図１３】第１付加操作装置のハンドルが基準状態から回転した状態となる場合において赤外撮像部によって撮像された撮像画像の一例を示す図
【図１４】左レバーに対する下げ操作が行われた状態における第１付加操作装置の一例を示す図
【図１５】左レバーに対する下げ操作が行われた状態において赤外撮像部によって撮像された撮像画像の一例を示す図
【図１６】右コントローラが第１付加操作装置に装着される場合に表示されるゲーム画像の一例を示す図
【図１７】第２付加操作装置および右コントローラの一例を示す図
【図１８】図１７に示す第２付加操作装置を上側から見た図
【図１９】把持部のボタンが押下された状態における把持部の内部の一例を示す図
【図２０】右コントローラが第２付加操作装置に装着される場合に表示されるゲーム画像の一例を示す図
【図２１】第２装着状態から非装着状態へと変化した場合に表示されるゲーム画像の一例を示す図
【図２２】第２装着状態から非装着状態へと移行する場合における右コントローラの前方向の設定方法の一例を示す図
【図２３】第３付加操作装置および右コントローラの一例を示す図
【図２４】第３付加操作装置の内部構成の一例を示す図
【図２５】右コントローラが第３付加操作装置に装着される場合に表示されるゲーム画像の一例を示す図
【図２６】一部認識状態となる場合と、全認識状態となる場合との一例を示す図
【図２７】ゲームシステムにおける情報処理に用いられる各種データの一例を示す図
【図２８】情報処理装置によって実行される情報処理の流れの一例を示すフローチャート
【図２９】図２８に示すステップＳ２の装着状態判別処理の詳細な流れの一例を示すサブフローチャート
【発明を実施するための形態】
【００５０】
［１．本体装置および各コントローラのハードウェア構成］
以下、本実施形態の一例に係るゲームシステムについて説明する。本実施形態におけるゲームシステム１の一例は、本体装置（情報処理装置；本実施形態ではゲーム装置本体として機能する）２と左コントローラ３および右コントローラ４とを含む。本体装置２は、左コントローラ３および右コントローラ４がそれぞれ着脱可能である。つまり、ゲームシステム１は、左コントローラ３および右コントローラ４をそれぞれ本体装置２に装着して一体化された装置として利用できる。また、ゲームシステム１は、本体装置２と左コントローラ３および右コントローラ４とを別体として利用することもできる（図２参照）。なお、詳細は後述するが、ゲームシステム１は、各コントローラ３または４を装着可能なアタッチメントを含む。以下では、まず、本体装置２ならびに各コントローラ３および４のハードウェア構成について説明し、その後に、アタッチメントの構成と、当該アタッチメントを用いる場合におけるゲームシステム１の処理とについて説明する。
【００５１】
図１は、本体装置２に左コントローラ３および右コントローラ４を装着した状態の一例を示す図である。図１に示すように、左コントローラ３および右コントローラ４は、それぞれ本体装置２に装着されて一体化されている。本体装置２は、ゲームシステム１における各種の処理（例えば、ゲーム処理）を実行する装置である。本体装置２は、ディスプレイ１２を備える。左コントローラ３および右コントローラ４は、ユーザが入力を行うための操作部を備える装置である。
【００５２】
図２は、本体装置２から左コントローラ３および右コントローラ４をそれぞれ外した状態の一例を示す図である。図１および図２に示すように、左コントローラ３および右コントローラ４は、本体装置２に着脱可能である。なお、以下において、左コントローラ３および右コントローラ４の総称として「コントローラ」と記載することがある。
【００５３】
図３は、本体装置２の一例を示す六面図である。図３に示すように、本体装置２は、略板状のハウジング１１を備える。本実施形態において、ハウジング１１の主面（換言すれば、表側の面、すなわち、ディスプレイ１２が設けられる面）は、大略的には矩形形状である。
【００５４】
なお、ハウジング１１の形状および大きさは、任意である。一例として、ハウジング１１は、携帯可能な大きさであってよい。また、本体装置２単体または本体装置２に左コントローラ３および右コントローラ４が装着された一体型装置は、携帯型装置となってもよい。また、本体装置２または一体型装置が手持ち型の装置となってもよい。また、本体装置２または一体型装置が可搬型装置となってもよい。
【００５５】
図３に示すように、本体装置２は、ハウジング１１の主面に設けられるディスプレイ１２を備える。ディスプレイ１２は、本体装置２が生成した画像を表示する。本実施形態においては、ディスプレイ１２は、液晶表示装置（ＬＣＤ）とする。ただし、ディスプレイ１２は任意の種類の表示装置であってよい。
【００５６】
また、本体装置２は、ディスプレイ１２の画面上にタッチパネル１３を備える。本実施形態においては、タッチパネル１３は、マルチタッチ入力が可能な方式（例えば、静電容量方式）のものである。ただし、タッチパネル１３は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式（例えば、抵抗膜方式）のものであってもよい。
【００５７】
本体装置２は、ハウジング１１の内部においてスピーカ（すなわち、図６に示すスピーカ８８）を備えている。図３に示すように、ハウジング１１の主面には、スピーカ孔１１ａおよび１１ｂが形成される。そして、スピーカ８８の出力音は、これらのスピーカ孔１１ａおよび１１ｂからそれぞれ出力される。
【００５８】
また、本体装置２は、本体装置２が左コントローラ３と有線通信を行うための端子である左側端子１７と、本体装置２が右コントローラ４と有線通信を行うための右側端子２１を備える。
【００５９】
図３に示すように、本体装置２は、スロット２３を備える。スロット２３は、ハウジング１１の上側面に設けられる。スロット２３は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム１およびそれと同種の情報処理装置に専用の記憶媒体（例えば、専用メモリカード）である。所定の種類の記憶媒体は、例えば、本体装置２で利用されるデータ（例えば、アプリケーションのセーブデータ等）、および／または、本体装置２で実行されるプログラム（例えば、アプリケーションのプログラム等）を記憶するために用いられる。また、本体装置２は、電源ボタン２８を備える。
【００６０】
本体装置２は、下側端子２７を備える。下側端子２７は、本体装置２がクレードルと通信を行うための端子である。本実施形態において、下側端子２７は、ＵＳＢコネクタ（より具体的には、メス側コネクタ）である。上記一体型装置または本体装置２単体をクレードルに載置した場合、ゲームシステム１は、本体装置２が生成して出力する画像を据置型モニタに表示することができる。また、本実施形態においては、クレードルは、載置された上記一体型装置または本体装置２単体を充電する機能を有する。また、クレードルは、ハブ装置（具体的には、ＵＳＢハブ）の機能を有する。
【００６１】
図４は、左コントローラ３の一例を示す六面図である。図４に示すように、左コントローラ３は、ハウジング３１を備える。本実施形態においては、ハウジング３１は、縦長の形状、すなわち、上下方向（すなわち、図１および図４に示すｙ軸方向）に長い形状である。左コントローラ３は、本体装置２から外された状態において、縦長となる向きで把持されることも可能である。ハウジング３１は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ３は、横長となる向きで把持されることも可能である。左コントローラ３が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【００６２】
左コントローラ３は、アナログスティック３２を備える。図４に示すように、アナログスティック３２は、ハウジング３１の主面に設けられる。アナログスティック３２は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック３２を傾倒することによって傾倒方向に応じた方向の入力（および、傾倒した角度に応じた大きさの入力）が可能である。なお、左コントローラ３は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、アナログスティック３２を押下する入力が可能である。
【００６３】
左コントローラ３は、各種操作ボタンを備える。左コントローラ３は、ハウジング３１の主面上に４つの操作ボタン３３〜３６（具体的には、右方向ボタン３３、下方向ボタン３４、上方向ボタン３５、および左方向ボタン３６）を備える。さらに、左コントローラ３は、録画ボタン３７および−（マイナス）ボタン４７を備える。左コントローラ３は、ハウジング３１の側面の左上に第１Ｌボタン３８およびＺＬボタン３９を備える。また、左コントローラ３は、ハウジング３１の側面のうち、本体装置２に装着される際に装着される側の面に第２Ｌボタン４３および第２Ｒボタン４４を備える。これらの操作ボタンは、本体装置２で実行される各種プログラム（例えば、ＯＳプログラムやアプリケーションプログラム）に応じた指示を行うために用いられる。
【００６４】
また、左コントローラ３は、左コントローラ３が本体装置２と有線通信を行うための端子４２を備える。
【００６５】
図５は、右コントローラ４の一例を示す六面図である。図５に示すように、右コントローラ４は、ハウジング５１を備える。本実施形態においては、ハウジング５１は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ４は、本体装置２から外された状態において、縦長となる向きで把持されることも可能である。ハウジング５１は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ４は、横長となる向きで把持されることも可能である。右コントローラ４が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【００６６】
右コントローラ４は、左コントローラ３と同様、方向入力部としてアナログスティック５２を備える。本実施形態においては、アナログスティック５２は、左コントローラ３のアナログスティック３２と同じ構成である。また、右コントローラ４は、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、右コントローラ４は、左コントローラ３と同様、ハウジング５１の主面上に４つの操作ボタン５３〜５６（具体的には、Ａボタン５３、Ｂボタン５４、Ｘボタン５５、およびＹボタン５６）を備える。さらに、右コントローラ４は、＋（プラス）ボタン５７およびホームボタン５８を備える。また、右コントローラ４は、ハウジング５１の側面の右上に第１Ｒボタン６０およびＺＲボタン６１を備える。また、右コントローラ４は、左コントローラ３と同様、第２Ｌボタン６５および第２Ｒボタン６６を備える。
【００６７】
また、ハウジング５１の下側面には、窓部６８が設けられる。詳細は後述するが、右コントローラ４は、ハウジング５１の内部に配置される赤外撮像部１２３および赤外発光部１２４を備えている。赤外撮像部１２３は、右コントローラ４の下方向（図５に示すｙ軸負方向）を撮像方向として、窓部６８を介して右コントローラ４の周囲を撮像する。赤外発光部１２４は、右コントローラ４の下方向（図５に示すｙ軸負方向）を中心とする所定範囲を照射範囲として、赤外撮像部１２３が撮像する撮像対象に窓部６８を介して赤外光を照射する。窓部６８は、赤外撮像部１２３のカメラのレンズや赤外発光部１２４の発光体等を保護するためのものであり、当該カメラが検知する波長の光や当該発光体が照射する光を透過する材質（例えば、透明な材質）で構成される。なお、窓部６８は、ハウジング５１に形成された孔であってもよい。なお、本実施形態においては、カメラが検知する光（本実施形態においては、赤外光）以外の波長の光の透過を抑制するフィルタ部材を赤外撮像部１２３自身が有する。ただし、他の実施形態においては、窓部６８がフィルタの機能を有していてもよい。
【００６８】
また、詳細は後述するが、右コントローラ４は、ＮＦＣ通信部１２２を備える。ＮＦＣ通信部１２２は、ＮＦＣ（Ｎｅａｒ  Ｆｉｅｌｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）の規格に基づく近距離無線通信を行う。ＮＦＣ通信部１２２は、近距離無線通信に用いられるアンテナ１２２ａと、アンテナ１２２ａから送出すべき信号（電波）を生成する回路（例えばＮＦＣチップ）とを有する。なお、ＮＦＣ通信部１２２は、ＮＦＣの規格に基づく近距離無線通信を行う代わりに、任意の近接通信（非接触通信とも言う）で近距離無線通信を行うようにしてもよい。ここで、ＮＦＣの規格は、近接通信（非接触通信）に用いることができるものであり、「任意の近接通信で近距離無線通信を行うようにしてもよい」とは、ＮＦＣの規格による近接通信を除いた他の近接通信で近距離無線通信を行ってもよいことを意図している。
【００６９】
また、右コントローラ４は、右コントローラ４が本体装置２と有線通信を行うための端子６４を備える。
【００７０】
図６は、本体装置２の内部構成の一例を示すブロック図である。本体装置２は、図３に示す構成の他、図６に示す各構成要素８１〜９１、９７、および９８を備える。これらの構成要素８１〜９１、９７、および９８のいくつかは、電子部品として電子回路基板上に実装されてハウジング１１内に収納されてもよい。
【００７１】
本体装置２は、プロセッサ８１を備える。プロセッサ８１は、本体装置２において実行される各種の情報処理を実行する情報処理部であって、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）のみから構成されてもよいし、ＣＰＵ機能、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）機能等の複数の機能を含むＳｏＣ（Ｓｙｓｔｅｍ−ｏｎ−ａ−ｃｈｉｐ）から構成されてもよい。プロセッサ８１は、記憶部（具体的には、フラッシュメモリ８４等の内部記憶媒体、あるいは、スロット２３に装着される外部記憶媒体等）に記憶される情報処理プログラム（例えば、ゲームプログラム）を実行することによって、各種の情報処理を実行する。
【００７２】
本体装置２は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ８４およびＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）８５を備える。フラッシュメモリ８４およびＤＲＡＭ８５は、プロセッサ８１に接続される。フラッシュメモリ８４は、主に、本体装置２に保存される各種のデータ（プログラムであってもよい）を記憶するために用いられるメモリである。ＤＲＡＭ８５は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【００７３】
本体装置２は、スロットインターフェース（以下、「Ｉ／Ｆ」と略記する。）９１を備える。スロットＩ／Ｆ９１は、プロセッサ８１に接続される。スロットＩ／Ｆ９１は、スロット２３に接続され、スロット２３に装着された所定の種類の記憶媒体（例えば、専用メモリカード）に対するデータの読み出しおよび書き込みを、プロセッサ８１の指示に応じて行う。
【００７４】
プロセッサ８１は、フラッシュメモリ８４およびＤＲＡＭ８５、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【００７５】
本体装置２は、ネットワーク通信部８２を備える。ネットワーク通信部８２は、プロセッサ８１に接続される。ネットワーク通信部８２は、ネットワークを介して外部の装置と通信（具体的には、無線通信）を行う。本実施形態においては、ネットワーク通信部８２は、第１の通信態様としてＷｉ−Ｆｉの規格に準拠した方式により、無線ＬＡＮに接続して外部装置と通信を行う。また、ネットワーク通信部８２は、第２の通信態様として所定の通信方式（例えば、独自プロトコルによる通信や、赤外線通信）により、同種の他の本体装置２との間で無線通信を行う。なお、上記第２の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置２との間で無線通信可能であり、複数の本体装置２の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【００７６】
本体装置２は、コントローラ通信部８３を備える。コントローラ通信部８３は、プロセッサ８１に接続される。コントローラ通信部８３は、左コントローラ３および／または右コントローラ４と無線通信を行う。本体装置２と左コントローラ３および右コントローラ４との通信方式は任意であるが、本実施形態においては、コントローラ通信部８３は、左コントローラ３との間および右コントローラ４との間で、Ｂｌｕｅｔｏｏｔｈ（登録商標）の規格に従った通信を行う。
【００７７】
プロセッサ８１は、上述の左側端子１７、右側端子２１、および下側端子２７に接続される。プロセッサ８１は、左コントローラ３と有線通信を行う場合、左側端子１７を介して左コントローラ３へデータを送信するとともに、左側端子１７を介して左コントローラ３から操作データを受信する。また、プロセッサ８１は、右コントローラ４と有線通信を行う場合、右側端子２１を介して右コントローラ４へデータを送信するとともに、右側端子２１を介して右コントローラ４から操作データを受信する。また、プロセッサ８１は、クレードルと通信を行う場合、下側端子２７を介してクレードルへデータを送信する。このように、本実施形態においては、本体装置２は、左コントローラ３および右コントローラ４との間で、それぞれ有線通信と無線通信との両方を行うことができる。また、左コントローラ３および右コントローラ４が本体装置２に装着された一体型装置または本体装置２単体がクレードルに装着された場合、本体装置２は、クレードルを介してデータ（例えば、画像データや音声データ）を据置型モニタ等に出力することができる。
【００７８】
ここで、本体装置２は、複数の左コントローラ３と同時に（換言すれば、並行して）通信を行うことができる。また、本体装置２は、複数の右コントローラ４と同時に（換言すれば、並行して）通信を行うことができる。したがって、複数のユーザは、左コントローラ３および右コントローラ４のセットをそれぞれ用いて、本体装置２に対する入力を同時に行うことができる。一例として、第１ユーザが左コントローラ３および右コントローラ４の第１セットを用いて本体装置２に対して入力を行うと同時に、第２ユーザが左コントローラ３および右コントローラ４の第２セットを用いて本体装置２に対して入力を行うことが可能となる。
【００７９】
本体装置２は、タッチパネル１３の制御を行う回路であるタッチパネルコントローラ８６を備える。タッチパネルコントローラ８６は、タッチパネル１３とプロセッサ８１との間に接続される。タッチパネルコントローラ８６は、タッチパネル１３からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、プロセッサ８１へ出力する。
【００８０】
また、ディスプレイ１２は、プロセッサ８１に接続される。プロセッサ８１は、（例えば、上記の情報処理の実行によって）生成した画像および／または外部から取得した画像をディスプレイ１２に表示する。
【００８１】
本体装置２は、コーデック回路８７およびスピーカ（具体的には、左スピーカおよび右スピーカ）８８を備える。コーデック回路８７は、スピーカ８８および音声入出力端子２５に接続されるとともに、プロセッサ８１に接続される。コーデック回路８７は、スピーカ８８および音声入出力端子２５に対する音声データの入出力を制御する回路である。
【００８２】
また、本体装置２は、加速度センサ８９を備える。本実施形態においては、加速度センサ８９は、所定の３軸（例えば、図１に示すｘｙｚ軸）方向に沿った加速度の大きさを検出する。なお、加速度センサ８９は、１軸方向あるいは２軸方向の加速度を検出するものであってもよい。
【００８３】
また、本体装置２は、角速度センサ９０を備える。本実施形態においては、角速度センサ９０は、所定の３軸（例えば、図１に示すｘｙｚ軸）回りの角速度を検出する。なお、角速度センサ９０は、１軸回りあるいは２軸回りの角速度を検出するものであってもよい。
【００８４】
加速度センサ８９および角速度センサ９０は、プロセッサ８１に接続され、加速度センサ８９および角速度センサ９０の検出結果は、プロセッサ８１へ出力される。プロセッサ８１は、上記の加速度センサ８９および角速度センサ９０の検出結果に基づいて、本体装置２の動きおよび／または姿勢に関する情報を算出することが可能である。
【００８５】
本体装置２は、電力制御部９７およびバッテリ９８を備える。電力制御部９７は、バッテリ９８およびプロセッサ８１に接続される。また、図示しないが、電力制御部９７は、本体装置２の各部（具体的には、バッテリ９８の電力の給電を受ける各部、左側端子１７、および右側端子２１）に接続される。電力制御部９７は、プロセッサ８１からの指令に基づいて、バッテリ９８から上記各部への電力供給を制御する。
【００８６】
また、バッテリ９８は、下側端子２７に接続される。外部の充電装置（例えば、クレードル）が下側端子２７に接続され、下側端子２７を介して本体装置２に電力が供給される場合、供給された電力がバッテリ９８に充電される。
【００８７】
図７は、本体装置２と左コントローラ３および右コントローラ４との内部構成の一例を示すブロック図である。なお、本体装置２に関する内部構成の詳細については、図６で示しているため図７では省略している。
【００８８】
左コントローラ３は、本体装置２との間で通信を行う通信制御部１０１を備える。図７に示すように、通信制御部１０１は、端子４２を含む各構成要素に接続される。本実施形態においては、通信制御部１０１は、端子４２を介した有線通信と、端子４２を介さない無線通信との両方で本体装置２と通信を行うことが可能である。通信制御部１０１は、左コントローラ３が本体装置２に対して行う通信方法を制御する。すなわち、左コントローラ３が本体装置２に装着されている場合、通信制御部１０１は、端子４２を介して本体装置２と通信を行う。また、左コントローラ３が本体装置２から外されている場合、通信制御部１０１は、本体装置２（具体的には、コントローラ通信部８３）との間で無線通信を行う。コントローラ通信部８３と通信制御部１０１との間の無線通信は、例えばＢｌｕｅｔｏｏｔｈ（登録商標）の規格に従って行われる。
【００８９】
また、左コントローラ３は、例えばフラッシュメモリ等のメモリ１０２を備える。通信制御部１０１は、例えばマイコン（マイクロプロセッサとも言う）で構成され、メモリ１０２に記憶されるファームウェアを実行することによって各種の処理を実行する。
【００９０】
左コントローラ３は、各ボタン１０３（具体的には、ボタン３３〜３９、４３、４４、および４７）を備える。また、左コントローラ３は、アナログスティック（図７では「スティック」と記載する）３２を備える。各ボタン１０３およびアナログスティック３２は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部１０１へ出力する。
【００９１】
左コントローラ３は、慣性センサを備える。具体的には、左コントローラ３は、加速度センサ１０４を備える。また、左コントローラ３は、角速度センサ１０５を備える。本実施形態においては、加速度センサ１０４は、所定の３軸（例えば、図４に示すｘｙｚ軸）方向に沿った加速度の大きさを検出する。なお、加速度センサ１０４は、１軸方向あるいは２軸方向の加速度を検出するものであってもよい。本実施形態においては、角速度センサ１０５は、所定の３軸（例えば、図４に示すｘｙｚ軸）回りの角速度を検出する。なお、角速度センサ１０５は、１軸回りあるいは２軸回りの角速度を検出するものであってもよい。加速度センサ１０４および角速度センサ１０５は、それぞれ通信制御部１０１に接続される。そして、加速度センサ１０４および角速度センサ１０５の検出結果は、適宜のタイミングで繰り返し通信制御部１０１へ出力される。
【００９２】
通信制御部１０１は、各入力部（具体的には、各ボタン１０３、アナログスティック３２、各センサ１０４および１０５）から、入力に関する情報（具体的には、操作に関する情報、またはセンサによる検出結果）を取得する。通信制御部１０１は、取得した情報（または取得した情報に所定の加工を行った情報）を含む操作データを本体装置２へ送信する。なお、操作データは、所定時間に１回の割合で繰り返し送信される。なお、入力に関する情報が本体装置２へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【００９３】
上記操作データが本体装置２へ送信されることによって、本体装置２は、左コントローラ３に対して行われた入力を得ることができる。すなわち、本体装置２は、各ボタン１０３およびアナログスティック３２に対する操作を、操作データに基づいて判別することができる。また、本体装置２は、左コントローラ３の動きおよび／または姿勢に関する情報を、操作データ（具体的には、加速度センサ１０４および角速度センサ１０５の検出結果）に基づいて算出することができる。
【００９４】
左コントローラ３は、振動によってユーザに通知を行うための振動子１０７を備える。本実施形態においては、振動子１０７は、本体装置２からの指令によって制御される。すなわち、通信制御部１０１は、本体装置２からの上記指令を受け取ると、当該指令に従って振動子１０７を駆動させる。ここで、左コントローラ３は、コーデック部１０６を備える。通信制御部１０１は、上記指令を受け取ると、指令に応じた制御信号をコーデック部１０６へ出力する。コーデック部１０６は、通信制御部１０１からの制御信号から振動子１０７を駆動させるための駆動信号を生成して振動子１０７へ与える。これによって振動子１０７が動作する。
【００９５】
振動子１０７は、より具体的にはリニア振動モータである。リニア振動モータは、回転運動をする通常のモータと異なり、入力される電圧に応じて所定方向に駆動されるため、入力される電圧の波形に応じた振幅および周波数で振動をさせることができる。本実施形態において、本体装置２から左コントローラ３に送信される振動制御信号は、単位時間ごとに周波数と振幅とを表すデジタル信号であってよい。別の実施形態においては、本体装置２から波形そのものを示す情報を送信するようにしてもよいが、振幅および周波数だけを送信することで通信データ量を削減することができる。また、さらにデータ量を削減するため、そのときの振幅および周波数の数値に替えて、前回の値からの差分だけを送信するようにしてもよい。この場合、コーデック部１０６は、通信制御部１０１から取得される振幅および周波数の値を示すデジタル信号をアナログの電圧の波形に変換し、当該波形に合わせて電圧を入力することで振動子１０７を駆動させる。したがって、本体装置２は、単位時間ごとに送信する振幅および周波数を変えることによって、そのときに振動子１０７を振動させる振幅および周波数を制御することができる。なお、本体装置２から左コントローラ３に送信される振幅および周波数は、１つに限らず、２つ以上送信するようにしてもよい。その場合、コーデック部１０６は、受信された複数の振幅および周波数それぞれが示す波形を合成することで、振動子１０７を制御する電圧の波形を生成することができる。
【００９６】
左コントローラ３は、電力供給部１０８を備える。本実施形態において、電力供給部１０８は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ３の各部（具体的には、バッテリの電力の給電を受ける各部）に接続される。
【００９７】
図７に示すように、右コントローラ４は、本体装置２との間で通信を行う通信制御部１１１を備える。また、右コントローラ４は、通信制御部１１１に接続されるメモリ１１２を備える。通信制御部１１１は、端子６４を含む各構成要素に接続される。通信制御部１１１およびメモリ１１２は、左コントローラ３の通信制御部１０１およびメモリ１０２と同様の機能を有する。したがって、通信制御部１１１は、端子６４を介した有線通信と、端子６４を介さない無線通信（具体的には、Ｂｌｕｅｔｏｏｔｈ（登録商標）の規格に従った通信）との両方で本体装置２と通信を行うことが可能であり、右コントローラ４が本体装置２に対して行う通信方法を制御する。
【００９８】
右コントローラ４は、左コントローラ３の各入力部と同様の各入力部を備える。具体的には、各ボタン１１３、アナログスティック５２、慣性センサ（加速度センサ１１４および角速度センサ１１５）を備える。これらの各入力部については、左コントローラ３の各入力部と同様の機能を有し、同様に動作する。
【００９９】
また、右コントローラ４は、振動子１１７およびコーデック部１１６を備える。振動子１１７およびコーデック部１１６は、左コントローラ３の振動子１０７およびコーデック部１０６と同様に動作する。すなわち、通信制御部１１１は、本体装置２からの指令に従って、コーデック部１１６を用いて振動子１１７を動作させる。
【０１００】
右コントローラ４は、ＮＦＣの規格に基づく近距離無線通信を行うＮＦＣ通信部１２２を備える。ＮＦＣ通信部１２２は、いわゆるＮＦＣリーダ・ライタの機能を有する。ここで、本明細書において近距離無線通信とは、一方の装置（ここでは、右コントローラ４）からの電波によって（例えば電磁誘導によって）他方の装置（ここでは、アンテナ１２２ａと近接する装置）に起電力を発生させる通信方式が含まれる。他方の装置は、発生した起電力によって動作することが可能であり、電源を有していてもよいし有していなくてもよい。ＮＦＣ通信部１２２は、右コントローラ４（アンテナ１２２ａ）と通信対象とが接近した場合（典型的には、両者の距離が十数センチメートル以下となった場合）に当該通信対象との間で通信可能となる。通信対象は、ＮＦＣ通信部１２２との間で近距離無線通信が可能な任意の装置であり、例えばＮＦＣタグやＮＦＣタグの機能を有する記憶媒体である。ただし、通信対象は、ＮＦＣのカードエミュレーション機能を有する他の装置であってもよい。
【０１０１】
また、右コントローラ４は、赤外撮像部１２３を備える。赤外撮像部１２３は、右コントローラ４の周囲を撮像する赤外線カメラを有する。一例として、本体装置２および／または右コントローラ４は、撮像された情報（例えば、撮像された撮像画像における少なくとも一部の領域全体を分割した複数のブロックの輝度に関連する情報等）を算出し、当該情報に基づいて、右コントローラ４の周囲変化を判別する。また、赤外撮像部１２３は、環境光によって撮像を行ってもよいが、本実施形態においては、赤外線を照射する赤外発光部１２４を有する。赤外発光部１２４は、例えば、赤外線カメラが画像を撮像するタイミングと同期して、赤外線を照射する。そして、赤外発光部１２４によって照射された赤外線が撮像対象によって反射され、当該反射された赤外線が赤外線カメラによって受光されることで、赤外線の画像が取得される。これによって、赤外撮像部１２３は、より鮮明な赤外線画像を得ることができる。なお、赤外撮像部１２３と赤外発光部１２４とは、それぞれ別のデバイスとして右コントローラ４内に設けられてもよいし、同じパッケージ内に設けられた単一のデバイスとして右コントローラ４内に設けられてもよい。また、本実施形態においては、赤外線カメラを有する赤外撮像部１２３が用いられるが、他の実施形態においては、撮像手段として、赤外線カメラに代えて可視光カメラ（可視光イメージセンサを用いたカメラ）が用いられてもよい。
【０１０２】
右コントローラ４は、処理部１２１を備える。処理部１２１は、通信制御部１１１に接続される。また、処理部１２１は、ＮＦＣ通信部１２２、赤外撮像部１２３、および赤外発光部１２４に接続される。処理部１２１は、本体装置２からの指令に応じて、ＮＦＣ通信部１２２に対する管理処理を実行する。例えば、処理部１２１は、本体装置２からの指令に応じてＮＦＣ通信部１２２の動作を制御する。また、処理部１２１は、ＮＦＣ通信部１２２の起動を制御したり、通信対象（例えば、ＮＦＣタグ）に対するＮＦＣ通信部１２２の動作（具体的には、読み出しおよび書き込み等）を制御したりする。また、処理部１２１は、通信制御部１１１を介して通信対象に送信されるべき情報を本体装置２から受信してＮＦＣ通信部１２２へ渡したり、通信対象から受信された情報をＮＦＣ通信部１２２から取得して通信制御部１１１を介して本体装置２へ送信したりする。
【０１０３】
また、処理部１２１は、ＣＰＵやメモリ等を含み、右コントローラ４に備えられた図示しない記憶装置（例えば、不揮発性メモリ等）に記憶された所定のプログラム（例えば、画像処理や各種演算を行うためのアプリケーションプログラム）に基づいて、本体装置２からの指令に応じて赤外撮像部１２３に対する管理処理を実行する。例えば、処理部１２１は、赤外撮像部１２３に撮像動作を行わせたり、撮像結果に基づく情報（撮像画像の情報、あるいは、当該情報から算出される情報等）を取得および／または算出して通信制御部１１１を介して本体装置２へ送信したりする。また、処理部１２１は、本体装置２からの指令に応じて赤外発光部１２４に対する管理処理を実行する。例えば、処理部１２１は、本体装置２からの指令に応じて赤外発光部１２４の発光を制御する。なお、処理部１２１が処理を行う際に用いるメモリは、処理部１２１内に設けられてもいいし、メモリ１１２であってもよい。
【０１０４】
右コントローラ４は、電力供給部１１８を備える。電力供給部１１８は、左コントローラ３の電力供給部１０８と同様の機能を有し、同様に動作する。
【０１０５】
［２．アタッチメントとそれを用いたゲーム処理の概要］
本実施形態においては、ゲームシステム１は、上述の本体装置２ならびに各コントローラ３および４とともに用いられる周辺機器として、複数種類（ここでは、３種類）の付加操作装置を含む。付加操作装置は、コントローラを当該付加操作装置に装着して使用するための周辺機器である。なお、コントローラ（ここでは、右コントローラ４）は、付加操作装置に対して着脱可能に装着される。詳細は後述するが、本実施形態においては、ユーザ（換言すれば、プレイヤ）は、コントローラを付加操作装置に装着し、コントローラが装着された付加操作装置を用いてゲーム操作を行う。このように、本実施形態においては、コントローラをメイン装置とし、付加操作装置をサブ装置として、メイン装置を装着したサブ装置を用いたゲーム操作が行われる。
【０１０６】
本実施形態においては、ゲームシステム１は、３種類の付加操作装置（具体的には、図８に示す第１〜第３付加操作装置６〜８）を含む。なお、他の実施形態においては、ゲームシステム１に含まれる付加操作装置の数は、２つ以上の任意の数であってよい。
【０１０７】
本実施形態においては、ユーザは、１つのゲームアプリケーションの実行中において、複数種類（ここでは、３種類）の付加操作装置を用いてゲームをプレイする。なお、ゲームアプリケーションによって実行されるゲームの内容は任意であるが、本実施形態においては、ユーザが操作するプレイヤキャラクタが各種の乗物を運転してゲーム空間を移動することが可能なゲームである。ユーザは、上記ゲームアプリケーションの実行中において（より具体的には、ゲームのプレイ中において）、コントローラが装着される付加操作装置を変更することができる。また、ゲームシステム１は、コントローラが装着される付加操作装置の種類に応じて異なるゲーム処理を実行する。詳細は後述するが、本実施形態においては、プレイヤキャラクタが運転する乗物オブジェクトは、コントローラが装着される付加操作装置の種類に応じて変化する。つまり、本実施形態においては、ユーザが操作する対象となるオブジェクトが、コントローラが装着される付加操作装置の種類に応じて変化する。
【０１０８】
図８は、コントローラと付加操作装置との組み合わせと、操作対象となるオブジェクトとの関係を示す図である。図８に示すように、本実施形態においては、右コントローラ４を、第１〜第３付加操作装置６〜８のいずれかに装着することが可能である。
【０１０９】
本実施形態においては、付加操作装置に装着するコントローラとして右コントローラ４が用いられる。この理由は、本実施形態においては、右コントローラ４が備える赤外撮像部１２３による撮像結果に基づいて、右コントローラ４に装着された付加操作装置の種類を判別するからである。なお、付加操作装置の種類の判別方法の詳細については後述する。
【０１１０】
図８に示すように、右コントローラ４が第１付加操作装置６に装着される状態（以下、「第１装着状態」と呼ぶ。）においては、プレイヤキャラクタが運転する自動車オブジェクト２０１がゲーム空間に出現する。右コントローラ４が第１装着状態となる場合、ユーザは、右コントローラ４が装着された第１付加操作装置６を用いて自動車オブジェクト２０１を操作する。すなわち、ゲームシステム１は、右コントローラ４が第１付加操作装置６に装着されたと判別すると、プレイヤキャラクタと自動車オブジェクト２０１とをゲーム空間に配置する。そして、ゲームシステム１は、右コントローラ４が装着された第１付加操作装置６に対する操作に基づいて自動車オブジェクト２０１の動作を制御する。
【０１１１】
また、図８に示すように、右コントローラ４が第２付加操作装置７に装着される状態（以下、「第２装着状態」と呼ぶ。）においては、プレイヤキャラクタが運転する飛行機オブジェクト２０２がゲーム空間に出現する。右コントローラ４が第２装着状態となる場合、ユーザは、右コントローラ４が装着された第２付加操作装置７を用いて飛行機オブジェクト２０２を操作する。すなわち、ゲームシステム１は、右コントローラ４が第２付加操作装置７に装着されたと判別すると、プレイヤキャラクタと飛行機オブジェクト２０２とをゲーム空間に配置する。そして、ゲームシステム１は、右コントローラ４が装着された第２付加操作装置７に対する操作に基づいて飛行機オブジェクト２０２の動作を制御する。
【０１１２】
また、図８に示すように、右コントローラ４が第３付加操作装置８に装着される状態（以下、「第３装着状態」と呼ぶ。）においては、プレイヤキャラクタが運転する船オブジェクト２０３がゲーム空間に出現する。右コントローラ４が第３装着状態となる場合、ユーザは、右コントローラ４が装着された第３付加操作装置８を用いて船オブジェクト２０３を操作する。すなわち、ゲームシステム１は、右コントローラ４が第３付加操作装置８に装着されたと判別すると、プレイヤキャラクタと船オブジェクト２０３とをゲーム空間に配置する。そして、ゲームシステム１は、右コントローラ４が装着された第３付加操作装置８に対する操作に基づいて船オブジェクト２０３の動作を制御する。
【０１１３】
また、図示しないが、右コントローラ４がいずれの付加操作装置に装着されない状態（以下、「非装着状態」と呼ぶ。）においては、プレイヤキャラクタは乗物オブジェクトに搭乗しない。右コントローラ４が非装着状態となる場合、プレイヤは、乗物オブジェクトに搭乗していないプレイヤキャラクタを操作する。すなわち、ゲームシステム１は、右コントローラ４がいずれの付加操作装置にも装着されていないと判別すると、乗物オブジェクトに搭乗していないプレイヤキャラクタをゲーム空間に配置する。そして、ゲームシステム１は、右コントローラ４に対する操作に基づいてプレイヤキャラクタの動作を制御する。なお、他の実施形態においては、ゲームシステム１は、非装着状態においては、プレイヤキャラクタに対する操作（換言すれば、右コントローラ４を用いた操作）をユーザが行うことができないようにしてもよい。
【０１１４】
本実施形態においては、ゲームシステム１は、右コントローラ４の装着状態が変化しても、ゲームを進行させるための処理（換言すれば、ゲーム進行）を中断することなく実行する。つまり、ゲームシステム１は、右コントローラ４の装着状態に変化があっても、ゲームをシームレスに進行させる。例えば、ユーザが第１付加操作装置６に装着されている右コントローラ４を第２付加操作装置７に付け替えようとする場合、右コントローラ４の装着状態は、第１装着状態から非装着状態となり、その後、第２装着状態へと移行する。この場合において、ゲームシステム１は、ゲームの進行を中断することなく（例えば、非装着状態となったことに応じて処理を一時停止することなく）、ゲームを進行させるための処理を継続して実行する。すなわち、右コントローラ４の装着状態が第１装着状態から非装着状態を介して第２装着状態へと移行する期間において、ゲームシステム１は、ユーザによる操作を継続的に受け付け、当該操作に応じたゲーム処理を継続的に実行する。このように、本実施形態においては、ユーザが右コントローラ４の装着状態を変化させる期間においてもゲームを進行させることによって、右コントローラ４を付加操作装置に装着する操作をゲーム操作の一部であるようにユーザに認識させることができる。これによって、右コントローラ４が装着される付加操作装置をゲームプレイ中に切り替えながらゲーム操作を行うという新規なゲーム体験をユーザに提供することができる。
【０１１５】
なお、他の実施形態においては、ゲームシステム１は、右コントローラ４が非装着状態となったことに応じて、ゲームを進行させるための処理を一時停止してもよい。このとき、ゲームシステム１は、右コントローラ４がいずれかの付加操作装置に装着されたことに応じて、ゲームを進行させるための処理を再開してもよい。
【０１１６】
また、他の実施形態においては、ゲームシステム１は、右コントローラ４の装着状態が変化したことに応じて乗物オブジェクトが切り替わる場合、乗物オブジェクトの切り替えをユーザに対して確認するようにしてもよい。例えば、上記の場合において、ゲームシステム１は、「乗物オブジェクトを切り替えますか」といったメッセージを表示するとともに、切り替えを実行する旨の指示入力を受け付けるようにしてもよい。なお、この際、ゲームの進行は一時停止されてもよいし、一時停止されなくてもよい。
【０１１７】
以上のように、本実施形態においては、ユーザは、右コントローラ４の装着状態をゲーム中において切り替えることによって、操作対象となるオブジェクトを切り替えることができる。したがって、本実施形態によれば、コントローラを装着する付加操作装置を、ゲーム中における状況に応じて取り替えながらゲームをプレイするという、新規なゲーム体験をユーザに提供することができ、興趣性の高いゲームを提供することができる。
【０１１８】
以下、各付加操作装置６〜８の構成と、右コントローラ４が各付加操作装置６〜８に装着される場合に実行される処理とについて、付加操作装置毎に説明を行う。
【０１１９】
［２−１．第１付加操作装置］
［２−１−１．第１付加操作装置の構成］
図９〜図１６を参照して、第１付加操作装置６と、右コントローラ４が第１付加操作装置６に装着された場合におけるゲーム処理について説明する。図９は、第１付加操作装置および右コントローラの一例を示す図である。図１０は、図９に示す第１付加操作装置を前側（すなわち、図９に示すＺ軸負方向側）から見た図である。
【０１２０】
図９に示すように、第１付加操作装置６は、筐体６０１と、ハンドル６０２と、左レバー６０４と、右レバー６０５とを備える。第１付加操作装置６は、ハンドル６０２と各レバー６０４および６０５を操作可能な操作装置である。第１付加操作装置６は、自動車のハンドルを模した操作装置であり、ハンドル６０２と各レバー６０４および６０５を用いて自動車オブジェクト２０１を操作するための操作装置である。
【０１２１】
ここで、各付加操作装置６〜８の材質は任意であるが、本実施形態においては、各付加操作装置６〜８の各部品（ただし、後述するマーカを除く）の材質は段ボールである。また、各付加操作装置６〜８は、組み立て前の状態でユーザに提供され、ユーザが各付加操作装置６〜８を組み立てるようにしてもよい。各付加操作装置６〜８の材質を段ボールとすることによって、付加操作装置を安価に製造することができる。また、付加操作装置の組み立てをユーザに行わせることによって、ゲームに用いる操作装置を組み立てる楽しみをユーザに提供することができる。
【０１２２】
図９に示すハンドル６０２は、筐体６０１の前面（すなわち、Ｚ軸負方向側の面）に接続されている。ハンドル６０２は、筐体６０１に対して回転可能に接続される。具体的には、ハンドル６０２は、環状の形状を有する環状部と、当該環状部の中心を通って当該環状部の一端から他端まで延びる軸部とを有する。ハンドル６０２は、環状部の中心付近を回転軸にして、筐体６０１に対して回転可能である。以上の構成より、ユーザは、ハンドル６０２を回転させる操作（以下、「回転操作」と呼ぶ）が可能である（図１０）。
【０１２３】
また、本実施形態においては、上記軸部において、ハンドル６０２の回転軸の位置に、挿入孔６０３が設けられる。挿入孔６０３は、回転軸に沿って（換言すれば、ハンドルの回転面に垂直な方向に沿って）延びるように設けられる。挿入孔６０３は、右コントローラ４を装着するために設けられる。すなわち、図９に示すように、挿入孔６０３に右コントローラ４が挿入されることによって、右コントローラ４が第１付加操作装置６に装着される。なお、本実施形態においては、ユーザは、右コントローラ４を下側（すなわち、赤外撮像部１２３の窓部６８が設けられる側）から挿入孔６０３に挿入することによって、右コントローラ４を第１付加操作装置６に正しく装着することができる。図示しないが、軸部における挿入孔６０３の奥には、挿入孔６０３に挿入された右コントローラ４が当接する底面が設けられる。したがって、挿入孔６０３に挿入された右コントローラ４は、ある深さまで挿入された場合に、上記底面に当接することによって停止する。
【０１２４】
なお、図示しないが、挿入孔６０３の奥に設けられる上記底面においては、第１付加操作装置６に装着された右コントローラ４の窓部６８に対向する位置に、孔が設けられる。したがって、第１付加操作装置６に装着された右コントローラ４の赤外撮像部１２３は、上記底面の孔を介して、筐体６０１の内部を撮像することが可能である。
【０１２５】
図９に示す各レバー６０４および６０５は、筐体６０１の側面から突出するように設けられる。具体的には、左レバー６０４は、筐体６０１の左上側（すなわち、図９に示すＸ軸負方向側であってＹ軸正方向側）の側面に設けられる。右レバー６０５は、筐体６０１の右上側（すなわち、図９に示すＸ軸正方向側であってＹ軸正方向側）の側面に設けられる。各レバー６０４および６０５は、筐体６０１に対して上下方向に動作可能に接続されている。以下、各レバー６０４および６０５の詳細な構成について説明する。
【０１２６】
図１１は、筐体６０１の内部構成の一例を示す図である。なお、図１１は、筐体６０１の前側の面（すなわち、ハンドル６０２が接続される面）を取り外して筐体６０１の内部を見た図である。図９および図１１に示すように、筐体６０１における左上側の側面には、左レバー用孔６０６が設けられる。筐体６０１における右上側の側面には、右レバー用孔６０７が設けられる。ここで、各レバー６０４および６０５は、棒状の部材である。図１１に示すように、左レバー６０４の一端は、筐体６０１の内部において筐体６０１に対して回転可能に接続されており、左レバー６０４の他端は、左レバー用孔６０６を介して、筐体６０１の外部に突出するように設けられる。また、図１１に示すように、右レバー６０５の一端は、筐体６０１の内部において筐体６０１に対して回転可能に接続されており、右レバー６０５の他端は、右レバー用孔６０７を介して、筐体６０１の外部に突出するように設けられる。なお、各レバー６０４および６０５の回転軸の向きは、ハンドル６０２の回転軸の向きと実質的に同じ（換言すれば、平行）である。
【０１２７】
左レバー用孔６０６は、左レバー６０４が回転することができるような（換言すれば、筐体６０１の外部に突出した左レバー６０４の端部が上下方向に移動できるような）大きさに設けられる。また、右レバー用孔６０７は、右レバー６０５が回転することができるような（換言すれば、筐体６０１の外部に突出した右レバー６０５の端部が上下方向に移動できるような）大きさに設けられる。また、各レバー６０４および６０５は、それぞれ、図示しない付勢部材によって、筐体６０１の外部に突出した端部が上向きに移動する方向に付勢されている。したがって、各レバー６０４および６０５は、ユーザによって操作されていない状態においては、図９および図１１に示すように、各レバー用孔６０６および６０７の上側の縁に当接して停止した状態となる。以上に説明した構成によって、ユーザは、各レバー６０４および６０５を下げる操作（以下、「下げ操作」と呼ぶ）が可能である（図１０）。
【０１２８】
［２−１−２．マーカに基づく処理］
本実施形態においては、各付加操作装置６〜８の内部には、右コントローラ４の赤外撮像部１２３が撮像可能なマーカが設けられる。本実施形態においては、ゲームシステム１は、付加操作装置に装着された右コントローラ４の赤外撮像部１２３によってマーカを撮像し、撮像画像からマーカを検出する。そして、ゲームシステム１は、マーカの検出結果に基づいて付加操作装置の種別を判別したり、付加操作装置に対して行われた操作（具体的には、第１付加操作装置６の場合は、回転操作および下げ操作）を判別したりする。以下、マーカを用いた判別処理の詳細について説明する。
【０１２９】
図１１に示すように、筐体６０１の内部には、第１付加操作装置６に装着された右コントローラ４の赤外撮像部１２３が撮像可能な位置に（換言すれば、赤外撮像部１２３の撮像範囲内に）、被撮像面６１１が設けられる。被撮像面６１１には、第１基本マーカ６１２が設けられる。なお、本明細書においては、右コントローラ４が装着された付加操作装置の種類を判別するために用いられるマーカを「基本マーカ」と呼ぶ。第１基本マーカ６１２は、第１付加操作装置６に設けられる基本マーカであり、右コントローラ４が第１付加操作装置６に装着されたことを判別するために用いられる。
【０１３０】
ここで、マーカは、赤外撮像部１２３が付加操作装置の筐体の内部の壁面における他の部分（すなわち、マーカ以外の部分）と区別することが可能な材質（および／または色）で構成される。マーカは、筐体の内側面に描かれた図形、絵柄、または、図形と絵柄との組み合わせであってもよいし、筐体の内側面に取り付けられた部品であってもよい。また、マーカは、例えば再帰性反射の特性を有する材質で構成されてもよい。これによれば、赤外発光部１２４からの赤外光が赤外撮像部１２３の方へより多く反射するので、赤外撮像部１２３によってマーカをより認識しやすくなる。また、赤外撮像部１２３から離れた位置のマーカでも認識しやすくなる。また、再帰性反射材の代わりに、マーカとして赤外発光部１２４を筐体内に設ける構成をとってもよい。
【０１３１】
本実施形態においては、第１基本マーカ６１２は、４つの正方形の部分からなる形状を有する（図１１）。詳細は後述するが、各付加操作装置６〜８に設けられる基本マーカは、互いに異なる形状を有する。図１１に示す例においては、第１基本マーカ６１２は、当該第１基本マーカ６１２を形成する４つの正方形の部分のうち１つの正方形が他の３つの正方形よりも大きい形状である。したがって、ゲームシステム１は、右コントローラ４の赤外撮像部１２３による撮像画像において基本マーカを検出した場合、検出した基本マーカの形状に基づいて、右コントローラ４が装着された付加操作装置の種類を判別することができる。例えば、ゲームシステム１は、上記撮像画像において第１基本マーカ６１２を検出した場合、右コントローラ４が第１付加操作装置６に装着されたと判別することができる。なお、本明細書においては、「マーカの形状」とは、マーカの大きさを含む概念である。つまり、互いに大きさが異なる２つのマーカは、互い異なる形状を有すると言える。
【０１３２】
また、本実施形態においては、第１基本マーカ６１２は、ハンドル６０２に対する回転操作を検出するために用いられる。以下、図１２および図１３を参照して、回転操作を検出する方法について説明する。
【０１３３】
図１２は、第１付加操作装置６のハンドル６０２が基準状態（具体的には、軸部が水平になる状態）となる場合において赤外撮像部１２３によって撮像された撮像画像の一例を示す図である。図１３は、第１付加操作装置６のハンドル６０２が基準状態から回転した状態となる場合において赤外撮像部１２３によって撮像された撮像画像の一例を示す図である。図１２および図１３に示す第１基本マーカ画像６２２は、撮像画像において第１基本マーカ６１２を示す画像である。
【０１３４】
回転操作によってハンドル６０２が回転すると、ハンドル６０２に装着された右コントローラ４も回転する。そのため、ハンドル６０２の回転角度に応じて、撮像画像に含まれる第１基本マーカ画像６２２の向きが変化する。したがって、ゲームシステム１は、撮像画像における第１基本マーカ画像６２２の向きに基づいてハンドル６０２の回転角度を算出することができ、回転角度に基づいて回転操作を検出することができる。具体的には、ゲームシステム１は、回転操作が行われたか否か、および／または、回転操作が行われた回転量を検出する。例えば、図１２および図１３に示す例においては、図１３に示す第１基本マーカ画像６２２は、図１２に示す第１基本マーカ画像６２２を基準として左に９０°回転した向きで配置されている。したがって、ゲームシステム１は、図１３に示す撮像画像が右コントローラ４から取得される場合、ハンドル６０２は、基準状態から右に９０°回転した状態であると判別することができる。
【０１３５】
以上のように、右コントローラ４が装着された付加操作装置の種類を判別するために用いられる基本マーカは、付加操作装置に対する操作を検出するためにも用いられてもよい。
【０１３６】
図１１に示すように、左レバー６０４のうちで筐体６０１の内部となる位置であって、第１付加操作装置６に装着された右コントローラ４の赤外撮像部１２３が撮像可能な位置に、左レバーマーカ６１３が設けられる。左レバーマーカ６１３は、左レバー６０４に対する操作を検出するために用いられる。以下、図１１、図１２、図１４、および図１５を参照して、回転操作を検出する方法について説明する。
【０１３７】
図１４は、左レバー６０４に対する下げ操作が行われた状態における第１付加操作装置６の一例を示す図である。また、図１５は、左レバー６０４に対する下げ操作が行われた状態において赤外撮像部１２３によって撮像された撮像画像の一例を示す図である。なお、上述した図１１は、左レバー６０４に対する下げ操作が行われていない状態における第１付加操作装置６の一例を示す図であり、図１２は、当該状態において赤外撮像部１２３によって撮像された撮像画像の一例を示す。なお、図１２および図１５に示す左レバーマーカ画像６２３は、撮像画像において左レバーマーカ６１３を示す画像である。
【０１３８】
下げ操作によって左レバー６０４が下方に動かされると、第１付加操作装置６に装着された右コントローラ４の赤外撮像部１２３から見た左レバーマーカ６１３の位置および向きは、左レバー６０４に対する下げ操作が行われていない状態における左レバーマーカ６１３の位置および向きから変化する。そのため、撮像画像における左レバーマーカ画像６２３の位置および向きは、左レバー６０４に対する下げ操作が行われていない状態（図１２）と下げ操作が行われた状態（図１５）とで変化する。具体的には、左レバー６０４に対する下げ操作が行われている状態における左レバーマーカ画像６２３の位置は、左レバー６０４に対する下げ操作が行われていない状態における左レバーマーカ画像６２３の位置よりも左下の方へ移動している。したがって、ゲームシステム１は、図１５に示す撮像画像が右コントローラ４から取得される場合、左レバー６０４に対する下げ操作が行われている状態であると判別することができる。
【０１３９】
なお、本実施形態においては、第１付加操作装置６に装着された右コントローラ４は、ハンドル６０２の回転に応じて回転する。そのため、ゲームシステム１は、撮像画像における左レバーマーカ画像６２３の位置および向きとして、第１基本マーカ画像６２２を基準とした位置および向きを算出し、算出された位置および向きに基づいて左レバー６０４に対する下げ操作の検出を行う。
【０１４０】
また、図１１に示すように、右レバー６０５のうちで筐体６０１の内部となる位置に、右レバーマーカ６１４が設けられる。右レバーマーカ６１４は、右レバー６０５に対する操作を検出するために用いられる。右レバー６０５に対する下げ操作の検出は、左レバー６０４に対する下げ操作の検出と同様に行うことができる。すなわち、ゲームシステム１は、撮像画像における右レバーマーカ画像６２４の位置および向き（具体的には、第１基本マーカ画像６２２を基準とした位置および向き）を算出し、算出された位置および向きに基づいて右レバー６０５に対する下げ操作の検出を行う。
【０１４１】
［２−１−３．右コントローラ４が第１付加操作装置６に装着された場合におけるゲーム処理］
図１６は、右コントローラ４が第１付加操作装置６に装着される場合に表示されるゲーム画像の一例を示す図である。右コントローラ４が第１付加操作装置６に装着されると、ゲームシステム１は、右コントローラ４の赤外撮像部１２３から取得された撮像画像に基づいて、右コントローラ４が第１付加操作装置６に装着されたことを判別する。このとき、ゲームシステム１は、図１６に示すように、プレイヤキャラクタ２００が自動車オブジェクト２０１に搭乗した様子を表すゲーム画像を表示装置に表示する。なお、本実施形態において、ゲーム画像が表示される表示装置は、上述のディスプレイ１２でもよいし、据置型モニタでもよい。
【０１４２】
また、右コントローラ４が第１付加操作装置６に装着されたことを判別した場合、ゲームシステム１は、第１付加操作装置６に対する各操作（具体的には、回転操作および下げ操作）を検出し、ユーザによって行われたこれらの操作に応じて自動車オブジェクト２０１の動作を制御する。なお、自動車オブジェクト２０１の動作をユーザの操作に応じて制御する方法は任意である。例えば、本実施形態においては、ゲームシステム１は、ハンドル６０２に対する回転操作に応じて自動車オブジェクト２０１の進行方向を制御する。また、ゲームシステム１は、左レバー６０４に対する下げ操作に応じて自動車オブジェクト２０１のギヤを変更し、右レバー６０５に対する下げ操作に応じて自動車オブジェクト２０１から弾を発射する。
【０１４３】
以上のようにして、ユーザは、右コントローラ４を第１付加操作装置６に装着することによって、自動車オブジェクト２０１をゲーム空間に出現させるとともに、自動車オブジェクト２０１を操作するゲームをプレイすることができる。
【０１４４】
［２−２．第２付加操作装置］
［２−２−１．第２付加操作装置の構成］
図１７〜図２２を参照して、第２付加操作装置７と、右コントローラ４が第２付加操作装置７に装着された場合におけるゲーム処理について説明する。図１７は、第２付加操作装置および右コントローラの一例を示す図である。また、図１８は、図１７に示す第２付加操作装置７を上側（すなわち、図１７に示すＹ軸正方向側）から見た図である。
【０１４５】
図１７に示すように、第２付加操作装置７は、台座部７０１と、把持部７０２と、ボタン７０４とを備える。第２付加操作装置７は、把持部７０２と、ボタン７０４とを操作可能な操作装置である。第２付加操作装置７は、飛行機の操縦桿を模した操作装置であり、操縦桿のような把持部７０２を用いて飛行機オブジェクト２０２を操作するための操作装置である。
【０１４６】
図１７に示す第２付加操作装置７において、把持部７０２は、台座部７０１に接続されている。把持部７０２は、台座部７０１に対して傾倒可能である。なお、図１７においては、把持部７０２の傾倒方向を表す前後左右の４方向の矢印を示しているが、把持部７０２は、把持部７０２の長手方向が鉛直となる基準状態から、任意の方向に傾倒することが可能である。
【０１４７】
図１７に示すように、把持部７０２は、上面に挿入孔７０３を有する。挿入孔７０３は、把持部７０２の長手方向に沿って延びるように設けられる。挿入孔７０３は、右コントローラ４を装着するために設けられる。すなわち、図１７に示すように、挿入孔７０３に右コントローラ４が挿入されることによって、右コントローラ４が第２付加操作装置７に装着される。なお、本実施形態においては、ユーザは、右コントローラ４を下側から挿入孔７０３に挿入することによって、右コントローラ４を第２付加操作装置７に正しく装着することができる。上記のように、把持部７０２の上側部分は、筒状に形成され、筒状部分の内部に右コントローラ４を挿入可能である。また、図１７に示すように、筒状部分の側面には溝が設けられる。右コントローラ４が把持部７０２に挿入される際には、上記溝に沿ってアナログスティック５２が挿入され、溝の端部にアナログスティック５２が当接することによって、右コントローラ４の把持部７０２に対する挿入が停止される。
【０１４８】
図１８に示すように、把持部７０２の挿入孔７０３は、把持部７０２における内部の空洞に繋がっている。したがって、挿入孔７０３に挿入されて把持部７０２に装着された右コントローラ４の赤外撮像部１２３は、把持部７０２の内部を撮像可能である。
【０１４９】
図１７に示すように、ボタン７０４は、把持部７０２に設けられ、具体的には、把持部７０２の筒上部分の側面に設けられる。ボタン７０４は、上から押下可能に設けられる。なお、図１８に示すように、把持部７０２の上記筒状部分の側面のうちのボタン７０４が設けられる側面には孔７０５が設けられる。ボタン７０４の一部は、上記孔７０５から突出して設けられる（図１８）。そのため、ボタン７０４の上記一部は、第２付加操作装置７に装着された右コントローラ４の赤外撮像部１２３によって撮像可能となっている。
【０１５０】
以上の構成より、ユーザは、把持部７０２を傾倒する操作（以下、「傾倒操作」と呼ぶ）と、ボタン７０４を押下する操作（以下、「押下操作」と呼ぶ）とを行うことが可能である（図１７）。
【０１５１】
［２−２−２．マーカに基づく処理］
第２付加操作装置７においても第１付加操作装置６と同様、付加操作装置の内部には、赤外撮像部１２３が撮像可能なマーカが設けられる。ゲームシステム１は、第２付加操作装置７に装着された右コントローラ４の赤外撮像部１２３による撮像画像からマーカを検出する。そして、ゲームシステム１は、マーカの検出結果に基づいて、右コントローラ４が第２付加操作装置７に装着されたことを判別したり、第２付加操作装置７に対して行われた操作（具体的には、押下操作）を検出したりする。
【０１５２】
図１８に示すように、把持部７０２の内部の底面には、第２付加操作装置７に装着された右コントローラ４の赤外撮像部１２３が撮像可能な位置に、第２基本マーカ７１１が設けられる。第２基本マーカ７１１の形状は任意であるが、第２基本マーカ７１１は、上述の第１基本マーカ６１２および後述する第３基本マーカ８１１とは異なる形状を有する。図１８に示す例においては、第２基本マーカ７１１は、当該第２基本マーカ７１１を形成する４つの正方形の部分のうち１つの正方形が他の３つの正方形よりも小さい形状である。
【０１５３】
第２付加操作装置７についても第１付加操作装置６と同様、ゲームシステム１は、基本マーカを用いて、右コントローラ４が装着された付加操作装置の種類を判別する。すなわち、ゲームシステム１は、右コントローラ４から取得した撮像画像において第２基本マーカ７１１を検出した場合、右コントローラ４が第２付加操作装置７に装着されたと判別する。
【０１５４】
図１８に示すように、ボタン７０４における、第２付加操作装置７に装着された右コントローラ４の赤外撮像部１２３が撮像可能な位置に、ボタンマーカ７１２が設けられる。具体的には、ボタンマーカ７１２は、ボタン７０４のうちで、把持部７０２の上記孔７０５から突出する部分に設けられる。ボタンマーカ７１２は、ボタン７０４に対する押下操作を検出するために用いられる。
【０１５５】
図１９は、把持部のボタンが押下された状態における把持部の内部の一例を示す図である。なお、図１８は、把持部のボタンが押下されていない状態における把持部の内部の一例を示す図である。第１付加操作装置６に装着された右コントローラ４の赤外撮像部１２３から見たボタンマーカ７１２の位置は、把持部７０２のボタン７０４が押下されていない状態（図１８）と把持部７０２のボタン７０４が押下された状態（図１９）とで異なる。具体的には、ボタン７０４が押下された状態におけるボタンマーカ７１２の位置は、ボタン７０４が押下されていない状態におけるボタンマーカ７１２の位置よりも右方向（換言すれば、第２基本マーカ７１１に近づく方向）へ移動する。したがって、ゲームシステム１は、第１付加操作装置６に装着された右コントローラ４の赤外撮像部１２３によって撮像された撮像画像におけるボタンマーカ７１２を示す画像の位置に基づいて、ボタン７０４に対する操作を検出することができる。
【０１５６】
また、把持部７０２に対する傾倒操作は、右コントローラ４の加速度センサの検出結果に基づいて検出される。すなわち、ゲームシステム１は、右コントローラ４が備える加速度センサ８９によって検出される加速度に基づいて、右コントローラ４の姿勢を算出する。そして、ゲームシステム１は、算出された姿勢に基づいて、右コントローラ４および把持部７０２が上述の基準状態に対して傾倒した方向および傾倒した量を算出する。これによって、ゲームシステム１は、把持部７０２に対する傾倒操作を検出することができる。
【０１５７】
上記のように、ゲームシステム１は、付加操作装置に対する操作を、マーカを用いて検出してもよいし、当該付加操作装置に装着された右コントローラ４からの操作データを用いて検出してもよい。また、ゲームシステム１は、付加操作装置に対する操作を、マーカと操作データとの両方を用いて検出してもよい。
【０１５８】
［２−２−３．マーカが検出された場合におけるゲーム処理］
図２０は、右コントローラ４が第２付加操作装置７に装着される場合に表示されるゲーム画像の一例を示す図である。右コントローラ４が第２付加操作装置７に装着されると、ゲームシステム１は、右コントローラ４の赤外撮像部１２３から取得された撮像画像に基づいて、右コントローラ４が第２付加操作装置７に装着されたことを判別する。このとき、ゲームシステム１は、図２０に示すように、プレイヤキャラクタ２００が飛行機オブジェクト２０２に搭乗した様子を表すゲーム画像を表示装置に表示する。
【０１５９】
また、右コントローラ４が第２付加操作装置７に装着されたことを判別した場合、ゲームシステム１は、第２付加操作装置７に対する各操作（具体的には、傾倒操作および押下操作）を検出し、ユーザによって行われたこれらの操作に応じて飛行機オブジェクト２０２の動作を制御する。なお、飛行機オブジェクト２０２の動作をユーザの操作に応じて制御する方法は任意である。例えば、本実施形態においては、ゲームシステム１は、把持部７０２に対する傾倒操作に応じて飛行機オブジェクト２０２の進行方向を制御する。また、ゲームシステム１は、ボタン７０４に対する押下操作に応じて、飛行機オブジェクト２０２から弾を発射する。
【０１６０】
以上のようにして、ユーザは、右コントローラ４を第２付加操作装置７に装着することによって、飛行機オブジェクト２０２をゲーム空間に出現させるとともに、飛行機オブジェクト２０２を操作するゲームをプレイすることができる。
【０１６１】
［２−２−４．第２装着状態から非装着状態へと移行した場合における処理］
上述のように、上記ゲームアプリケーションによるゲーム中において、右コントローラ４がいずれの付加操作装置にも装着されない場合、プレイヤキャラクタ２００は乗物オブジェクトに搭乗しない状態でゲーム空間に配置される。なお、ゲームシステム１は、右コントローラ４から取得される撮像画像からいずれの基本マーカも検出されない場合、右コントローラ４がいずれの付加操作装置にも装着されていないと判別する。
【０１６２】
ここで、本実施形態においては、右コントローラ４に関する装着状態が、第２装着状態から非装着状態へと変化した場合、プレイヤキャラクタ２００は、飛行機オブジェクト２０２に搭乗した状態から、パラシュートを装備した状態へと変化する。
【０１６３】
図２１は、第２装着状態から非装着状態へと変化した場合に表示されるゲーム画像の一例を示す図である。右コントローラ４に関する装着状態が第２装着状態から非装着状態へと変化した場合、プレイヤキャラクタ２００は、飛行機オブジェクト２０２に搭乗しない状態で空中に配置されるので、図２１に示すように、パラシュートを装備した状態となってゆっくりと地面に落下していく。なお、地面に着地した後、プレイヤキャラクタ２００は、右コントローラ４に対する操作に応じて地面を移動する。
【０１６４】
プレイヤキャラクタ２００がパラシュートを装備した状態においては、ユーザは、右コントローラ４に対する操作によってプレイヤキャラクタ２００の動作を制御することができる。具体的には、ゲームシステム１は、右コントローラ４の姿勢に応じた方向へ落下するように、プレイヤキャラクタ２００の落下方向を制御する。例えば、右コントローラ４を基準状態から前に傾ける操作に応じて、プレイヤキャラクタ２００はゲーム空間における前方に移動しながら落下し、右コントローラ４を基準状態から右に傾ける操作に応じて、プレイヤキャラクタ２００はゲーム空間における右に移動しながら落下する。なお、非装着状態における右コントローラ４の基準状態とは、右コントローラ４の上方向（すなわち、ｙ軸正方向）が鉛直上向きとなる状態である。なお、非装着状態における右コントローラ４の基準状態における姿勢は、第２装着状態において把持部７０２が基準状態となるときの右コントローラ４の姿勢と実質的に同じである。
【０１６５】
上記のように、本実施形態においては、プレイヤキャラクタ２００がパラシュートを装備した状態においては、プレイヤキャラクタ２００が飛行機オブジェクト２０２に搭乗している状態と同様に、右コントローラ４を傾倒させる操作によってプレイヤキャラクタ２００が制御される。
【０１６６】
ここで、プレイヤキャラクタ２００がパラシュートを装備した状態におけるゲーム操作（すなわち、右コントローラ４を傾倒させる操作）を検出するために、ゲームシステム１は、右コントローラ４の前方向（換言すれば、右コントローラ４の側面のうちでどの側面を前側の面として取り扱うか）を設定する。なお、右コントローラ４の前方向を設定する処理は、右コントローラ４に対してユーザによって行われる操作の方向（ここでは、右コントローラ４を傾ける方向）と、当該方向への操作が行われたことに応じて実行されるゲーム処理の内容（ここでは、プレイヤキャラクタを移動させる処理における移動方向）との関係を設定する処理と言うことができる。本実施形態においては、ゲームシステム１は、次の方法によって右コントローラ４の前方向を設定する。
【０１６７】
図２２は、第２装着状態から非装着状態へと移行する場合における右コントローラ４の前方向の設定方法の一例を示す図である。まず、図２２に示すように、右コントローラ４は、第２付加操作装置７に対して２通りの向きで装着可能である。すなわち、右コントローラ４と第２付加操作装置７とを用いたユーザの操作態様としては、第１操作態様および第２操作態様という２通りの操作態様が考えられる。第１操作態様は、右コントローラ４の本体装着面が、第２付加操作装置７の前方向（すなわち、図１７に示すＺ軸正方向）を向く第１の向きで第２付加操作装置７に装着された状態で操作が行われる態様である。また、第２操作態様は、右コントローラ４の本体装着面が、第２付加操作装置７の後方向（すなわち、図１７に示すＺ軸負方向）を向く第２の向きで第２付加操作装置７に装着された状態で操作が行われる態様である。なお、上記「本体装着面」とは、右コントローラ４が本体装置２に装着される場合において本体装置２に対向する面であって、換言すれば、図５に示すｘ軸正方向側の面である。
【０１６８】
本実施形態においては、ゲームシステム１は、第２装着状態において、右コントローラ４が第２付加操作装置７に装着される向き（第１の向きであるか、それとも、第２の向きであるか。換言すれば、第１操作態様であるか、それとも、第２操作態様であるか）を記憶する。すなわち、ゲームシステム１は、第２装着状態において第１の操作態様で操作が行われる場合には、第１の向きを示す向き情報を記憶し、第２装着状態において第２の操作態様で操作が行われる場合には、第２の向きを示す向き情報を記憶する。
【０１６９】
また、第２装着状態から非装着状態へと変化した場合、ゲームシステム１は、第２装着状態において記憶された向き情報に応じて、非装着状態における右コントローラ４の前方向を設定する。具体的には、記憶された向き情報が第１の向きを示す場合には、ゲームシステム１は、本体装着面が向く方向（すなわち、図５に示すｘ軸正方向）を、右コントローラ４の前方向として設定する。この場合、ゲームシステム１は、本体装着面が向く方向を前方向として右コントローラ４の姿勢を算出し、右コントローラ４を傾倒させる操作を検出する（図２２参照）。したがって、この場合、本体装着面が前に傾くように右コントローラ４が傾倒されると、ゲームシステム１は、右コントローラ４を前方向に傾ける操作を検出する。その結果、プレイヤキャラクタ２００はゲーム空間において前方向に移動しながら落下する。つまり、上記の場合、本体装着面が前に傾くように右コントローラ４を傾倒する操作は、第２装着状態においても非装着状態においても前方向を指示する入力として取り扱われる。
【０１７０】
一方、記憶された向き情報が第２の向きを示す場合には、第２装着状態の後の非装着状態においては、ゲームシステム１は、本体装着面が向く方向の逆向きの方向（すなわち、図５に示すｘ軸負方向）を、右コントローラ４の前方向として設定する。この場合、ゲームシステム１は、本体装着面が向く方向の逆向きの方向を前方向として右コントローラ４の姿勢を算出し、右コントローラ４を傾倒させる操作を検出する（図２２参照）。したがって、この場合、本体装着面が前に傾くように右コントローラ４が傾倒されると、ゲームシステム１は、右コントローラ４を後方向に傾ける操作を検出する。その結果、プレイヤキャラクタ２００はゲーム空間において後方向に移動しながら落下する。つまり、上記の場合、本体装着面が前に傾くように右コントローラ４を傾倒する操作は、第２装着状態においても非装着状態においても後方向を指示する入力として取り扱われる。
【０１７１】
以上より、本実施形態においては、第２装着状態において右コントローラ４が第１の操作態様で操作が行われる場合には、その後の非装着状態において、本体装着面の側を前側として右コントローラ４の傾倒操作が検出される。一方、第２装着状態において右コントローラ４が第２の操作態様で操作が行われる場合には、その後の非装着状態において、本体装着面の側を後側として右コントローラ４の傾倒操作が検出される。したがって、本実施形態によれば、ユーザは、第２装着状態と、その後の非装着状態において、右コントローラ４の向きを変更することなくゲーム操作を行うことができる。換言すれば、ユーザは、第２装着状態における右コントローラ４の傾倒操作と、非装着状態における右コントローラ４の傾倒操作とにおいて、同じ方向に右コントローラ４を傾倒させることで、同じ方向を指示することができる。これによって、第２装着状態から非装着状態へ変化した場合における右コントローラ４の操作性を向上することができる。
【０１７２】
以上のように、本実施形態においては、ゲームシステム１は、右コントローラ４が所定の付加操作装置（本実施形態では、第２付加操作装置７）に装着されていると判別された場合、当該所定の付加操作装置に対する当該右コントローラの向きに関する向き情報を記憶する。また、ゲームシステム１は、右コントローラ４に対するユーザによる方向操作に基づいてゲーム処理を実行する。そして、ゲームシステム１は、第２装着状態から非装着状態へと変化した場合、上記方向操作によって指定される方向と、当該方向への操作が行われたことに応じて実行されるゲーム処理の内容との関係を、当該第２装着状態において記憶された向き情報に基づいて決定する（すなわち、右コントローラ４の前方向を設定する）。このように、非装着状態となる前の装着状態における右コントローラ４の向きを考慮して、当該非装着状態における上記関係を決定することによって、当該非装着状態における操作の操作性を向上することができる。
【０１７３】
なお、他の実施形態においては、非装着状態における右コントローラ４に対する上記方向操作は、本実施形態のような傾倒操作に限らず、方向を指定する任意の操作であってよい。例えば、他の実施形態においては、非装着状態における右コントローラ４に対する方向操作は、アナログスティックに対する操作であってもよい。すなわち、ゲームシステム１は、非装着状態において、アナログスティックに対する操作に応じてプレイヤキャラクタ２００が落下する方向を制御してもよい。具体的には、ゲームシステム１は、第２装着状態において記憶された向き情報が第１の向きを示す場合には、本体装着面が向く方向にアナログスティック５２を傾倒する操作を、前方向を指示する操作として検出し、プレイヤキャラクタ２００を前方向に移動しながら落下させてもよい。一方、上記向き情報が第２の向きを示す場合には、ゲームシステム１は、本体装着面が向く方向にアナログスティック５２を傾倒する操作を、後方向を指示する操作として検出し、プレイヤキャラクタ２００を後方向に移動しながら落下させてもよい。
【０１７４】
［２−３．第３付加操作装置］
［２−３−１．第３付加操作装置の構成］
図２３〜図２５を参照して、第３付加操作装置８と、右コントローラが第３付加操作装置８に装着された場合におけるゲーム処理について説明する。図２３は、第３付加操作装置および右コントローラの一例を示す図である。
【０１７５】
図２３に示すように、第３付加操作装置８は、筐体８０１と、左ハンドル８０２と、被装着部８０３とを備える。なお、図示しないが、第３付加操作装置８は、左ハンドル８０２の反対側（すなわち、図２３に示すＸ正方向側）の側面に右ハンドルを備える。第３付加操作装置８は、左右の２つのハンドルを操作可能な操作装置であり、本実施形態においては、各ハンドルを用いて船オブジェクト２０３を操作するための操作装置である。
【０１７６】
図２３に示す第３付加操作装置８において、左ハンドル８０２は、筐体８０１の左側面（すなわち、図２３に示すＸ軸負方向側の面）に接続されている。左ハンドル８０２は、筐体８０１に対して回転可能に接続される。具体的には、左ハンドル８０２は、環状の形状を有する環状部と、当該環状部の中心を通って当該環状部の一端から他端まで延びる軸部とを有する。左ハンドル８０２は、環状部の中心付近を回転軸にして、筐体８０１に対して回転可能である。以上の構成より、ユーザは、左ハンドル８０２を回転させる操作（以下、「左側回転操作」と呼ぶ）が可能である（図２３）。
【０１７７】
また、図示しないが、右ハンドルは、筐体８０１の右側面（すなわち、図２３に示すＸ軸正方向側の面）に接続されている。右ハンドルは、筐体８０１に対して回転可能に接続される。具体的には、右ハンドルは、左ハンドル８０２と同様の形状を有しており、当該右ハンドルの環状部の中心付近を回転軸にして、筐体８０１に対して回転可能である。以上の構成より、ユーザは、右ハンドルを回転させる操作（以下、「右側回転操作」と呼ぶ）が可能である。
【０１７８】
被装着部８０３は、筐体８０１の上面（すなわち、図２３に示すＹ軸正方向側の面）に設けられる。被装着部８０３は、筒状の形状であり、自身の内側に右コントローラ４を装着することが可能である。また、図２３に示すように、被装着部８０３における筒状部分の側面には溝が設けられる。右コントローラ４が被装着部８０３に挿入される際には、上記溝に沿ってアナログスティック５２が挿入され、溝の端部にアナログスティック５２が当接することによって、右コントローラ４の被装着部８０３に対する挿入が停止される。
【０１７９】
被装着部８０３の下端（すなわち、図２３に示すＹ軸負方向側の端）は開口している。また、筐体８０１においては、被装着部８０３の下端の開口部分に対向する位置に、孔が設けられる。したがって、第３付加操作装置８の被装着部８０３に装着された右コントローラ４の赤外撮像部１２３は、被装着部８０３の下端の前記開口を通して、筐体８０１の内部を撮像することが可能である。
【０１８０】
［２−３−２．マーカに基づく処理］
第３付加操作装置８においても第１および第２付加操作装置６および７と同様、付加操作装置の内部には、赤外撮像部１２３が撮像可能なマーカが設けられる。ゲームシステム１は、第３付加操作装置８に装着された右コントローラ４の赤外撮像部１２３による撮像画像からマーカを検出する。そして、ゲームシステム１は、マーカの検出結果に基づいて、右コントローラ４が第３付加操作装置８に装着されたことを判別したり、第３付加操作装置８に対して行われた操作（具体的には、左側回転操作および右側回転操作）を検出したりする。
【０１８１】
図２４は、第３付加操作装置の内部構成の一例を示す図である。なお、図２４は、筐体８０１の上面（すなわち、被装着部８０３が設けられる面）を取り外して筐体８０１の内部を見た図である。
【０１８２】
図２４に示すように、筐体８０１の内部には、第３付加操作装置８に装着された右コントローラ４の赤外撮像部１２３が撮像可能な位置に、第３基本マーカ８１１が設けられる。第３基本マーカ８１１の形状は任意であるが、上述の第１基本マーカ６１２および第２基本マーカ７１１とは異なる形状を有する。図２４に示す例においては、第３基本マーカ８１１は、１つの長方形と２つの正方形からなる形状である。
【０１８３】
第３付加操作装置８についても第１付加操作装置６および第２付加操作装置７と同様、ゲームシステム１は、基本マーカを用いて、右コントローラ４が装着された付加操作装置の種類を判別する。すなわち、ゲームシステム１は、右コントローラ４から取得した撮像画像において第３基本マーカ８１１を検出した場合、右コントローラ４が第３付加操作装置８に装着されたと判別する。
【０１８４】
また、図２４に示すように、第３付加操作装置８は、筐体８０１の内部において、第１左歯車８０５と、第２左歯車８０６とを備える。第１左歯車８０５は、左ハンドル８０２に接続されており、左ハンドル８０２の回転に応じて、左ハンドル８０２と同じ回転軸で回転する（図２４に示す矢印参照）。第２左歯車８０６は、筐体８０１に対して回転可能に設けられる。第２左歯車８０６は、第１左歯車８０５に咬み合うように配置され、第１左歯車８０５の回転に応じて、第１左歯車８０５の回転軸に垂直な回転軸で回転する（図２４に示す矢印参照）。以上の構成により、左ハンドル８０２の回転に応じて、第２左歯車８０６が回転する。
【０１８５】
図２４に示すように、第２左歯車８０６には、第３付加操作装置８に装着された右コントローラ４の赤外撮像部１２３が撮像可能な位置に、左ハンドルマーカ８１２が設けられる。本実施形態においては、左ハンドルマーカ８１２は、第２左歯車８０６の中心付近に設けられる第１部分マーカと、第２左歯車８０６の周付近に設けられる第２部分マーカとからなる。なお、左ハンドルマーカ８１２の形状は、第２左歯車８０６の回転を識別可能な任意の形状でよい。
【０１８６】
本実施形態においては、左ハンドル８０２の回転に応じて第２左歯車８０６が回転すると、左ハンドルマーカ８１２の向き（換言すれば、第１部分マーカから第２部分マーカへの方向）が変化する。したがって、ゲームシステム１は、左ハンドルマーカ８１２の向きに基づいて、左ハンドル８０２の回転角度を算出することができ、左ハンドルに対する操作を検出することができる。したがって、ゲームシステム１は、第３付加操作装置８に装着された右コントローラ４から取得される撮像画像における左ハンドルマーカ８１２を示す画像の向きに基づいて、左ハンドル８０２の回転角度を算出することができ、回転角度に基づいて左側回転操作を検出することができる。具体的には、ゲームシステム１は、左ハンドル８０２の回転角度を検出する。
【０１８７】
図２４に示すように、第３付加操作装置８は、筐体８０１の内部において、第１右歯車８０７と、第２右歯車８０８とを備える。第１右歯車８０７は、右ハンドルに接続されており、右ハンドルの回転に応じて、右ハンドルと同じ回転軸で回転する（図２４に示す矢印参照）。第２右歯車８０８は、筐体８０１に対して回転可能に設けられる。第２右歯車８０８は、第１右歯車８０７に咬み合うように配置され、第１右歯車８０７の回転に応じて、第１右歯車８０７の回転軸に垂直な回転軸で回転する（図２４に示す矢印参照）。以上の構成により、右ハンドルの回転に応じて、第２右歯車８０８が回転する。
【０１８８】
第２右歯車８０８には、第３付加操作装置８に装着された右コントローラ４の赤外撮像部１２３が撮像可能な位置に、右ハンドルマーカ８１３が設けられる。本実施形態においては、右ハンドルマーカ８１３は、第２右歯車８０８の中心付近に設けられる第３部分マーカと、第２右歯車８０８の周付近に設けられる第４部分マーカとからなる。
【０１８９】
以上の構成により、ゲームシステム１は、左側回転操作と同様にして右側回転操作を検出することができる。すなわち、ゲームシステム１は、第３付加操作装置８に装着された右コントローラ４から取得される撮像画像における右ハンドルマーカ８１３を示す画像の向きに基づいて、右ハンドルの回転角度を算出することができ、右側回転操作を検出することができる。
【０１９０】
［２−３−３．マーカが検出された場合におけるゲーム処理］
図２５は、右コントローラ４が第３付加操作装置８に装着される場合に表示されるゲーム画像の一例を示す図である。右コントローラ４が第３付加操作装置８に装着されると、ゲームシステム１は、右コントローラ４の赤外撮像部１２３から取得された撮像画像に基づいて、右コントローラ４が第３付加操作装置８に装着されたことを判別する。このとき、ゲームシステム１は、図２５に示すように、プレイヤキャラクタ２００が船オブジェクト２０３に搭乗した様子を表すゲーム画像を表示装置に表示する。
【０１９１】
また、右コントローラ４が第３付加操作装置８に装着されたことを判別した場合、ゲームシステム１は、第３付加操作装置８に対する各操作（具体的には、左側回転操作および右側回転操作）を検出し、ユーザによって行われたこれらの操作に応じて船オブジェクト２０３の動作を制御する。なお、船オブジェクト２０３の動作をユーザの操作に応じて制御する方法は任意である。例えば、本実施形態においては、ゲームシステム１は、左ハンドル８０２に対する左側回転操作に応じて船オブジェクト２０３の左側のスクリューの向きを制御する。また、ゲームシステム１は、右ハンドルに対する右側回転操作に応じて船オブジェクト２０３の右側のスクリューの向きを制御する。ゲームシステム１は、左側のスクリューの向きおよび右側のスクリューの向きに基づいて、船オブジェクト２０３の進行方向を制御する。
【０１９２】
以上のようにして、ユーザは、右コントローラ４を第３付加操作装置８に装着することによって、船オブジェクト２０３をゲーム空間に出現させるとともに、船オブジェクト２０３を操作するゲームをプレイすることができる。
【０１９３】
［２−４．マーカに基づく処理のまとめ］
以上のように、本実施形態においては、ゲームシステム１は、赤外撮像部１２３によって撮像された撮像画像に基づいて、右コントローラ４が装着された付加操作装置の種類を判別する。本実施形態によれば、ゲームシステム１は、撮像装置による撮像画像に基づいて判別を行うので、例えば、付加操作装置に電気的な構成を付加する必要なく、付加操作装置の種類を判別することができる。これによって、付加操作装置の構成を簡易化することができる。
【０１９４】
ここで、本実施形態においては、各付加操作装置６〜８は、それぞれ、付加操作装置に装着された右コントローラ４の赤外撮像部１２３によって撮像可能な被検出部の一例として、マーカを備える。ゲームシステム１は、撮像画像に含まれる被検出部の少なくとも一部（本実施形態においては、基本マーカ）を示す第１被検出部画像（本実施形態においては、基本マーカを示す画像）の形状に基づいて、右コントローラ４が装着された付加操作装置の種類（すなわち、第１〜第３付加装置６〜８のいずれか）を判別する。上記のように、付加操作装置に設けられた被検出部を撮像した撮像画像に基づくことによって、ゲームシステム１は、付加操作装置の種類を精度良く判別することができる。
【０１９５】
本実施形態においては、付加操作装置は複数の被検出部（すなわち、マーカ）を備えているが、他の実施形態においては、付加操作装置は１つの被検出部を備えていてもよい。例えば、付加操作装置は、上記基本マーカのみを備えていてもよい。
【０１９６】
なお、上記実施形態においては、撮像画像における基本マーカを示す画像の形状に基づいて付加操作装置の種類が判別された。ここで、基本マーカの形状に限らず、撮像された基本マーカの位置（具体的には、撮像画像における位置）または向き（具体的には、撮像画像上における向き）によっても、ある基本マーカを他の基本マーカと区別することが可能である。したがって、他の実施形態においては、ゲームシステム１は、基本マーカを示す画像の位置、形状、および、向きのうち少なくとも１つに基づいて、付加操作装置の種類を判別してもよい。したがって、付加操作装置に設けられる基本マーカは、他の種類の付加操作装置に設けられる基本マーカと比べて、（ａ）付加操作装置に装着された右コントローラ４の赤外撮像部１２３に対する位置、（ｂ）当該赤外撮像部１２３に対する向き、および、（ｃ）形状のうちの少なくとも１つが、異なっていればよい。
【０１９７】
また、本実施形態においては、各付加操作装置６〜８は、それぞれ、ユーザによる操作に応じて動く可動部を備える。具体的には、第１付加操作装置６は、可動部として、ハンドル６０２ならびに各レバー６０４および６０５を備え、第２付加操作装置７は、可動部として、ボタン７０４を備え、第３付加操作装置８は、可動部として、第２左歯車８０６および第２右歯車８０８を備える。なお、可動部は、ハンドル６０２のように、ユーザが直接的に動かす（すなわち、ユーザが可動部を触って動かす）ものであってもよい。また、可動部は、第２左歯車８０６のように、ユーザの操作によって間接的に動く（すなわち、可動部とは異なる操作部（例えば、左ハンドル８０２）をユーザが動かすことによって可動部が動く）ものであってもよい。
【０１９８】
本実施形態においては、ユーザの操作に応じて上記可動部が動かされることによって、当該可動部を備える付加操作装置に装着された右コントローラ４と、当該付加操作装置の被検出部との相対位置および／または相対姿勢が変化する。ゲームシステム１は、撮像画像に含まれる被検出部の少なくとも一部を示し、上記第１被検出部画像および／または第２被検出部画像（第２被検出部画像は、第１被検出部画像とは異なる）の位置および向きのうち少なくとも１つに基づいて（後述するように、上記第１被検出部画像および／または第２被検出部画像の形状に基づいてもよい）、ユーザの操作を検出し、当該検出されたユーザの操作に基づくゲーム処理を実行する。ここで、上記「第２被検出部画像」は、第１付加操作装置６においては、第１基本マーカ画像６２２、左レバーマーカ画像６２３、および、右レバーマーカ画像６２４であり、第２付加操作装置７においては、ボタンマーカ７１２を示す画像であり、第３付加操作装置８においては、左ハンドルマーカ８１２を示す画像および右ハンドルマーカ８１３を示す画像である。このように、第２被検出部画像は、基本マーカ画像であってもよいし、基本マーカ画像とは異なるマーカ画像であってもよい。上記のように、撮像画像におけるマーカの位置および／または向きに基づくことによって、ユーザの操作を精度良く検出することができる。例えば、ゲームシステム１は、１つの撮像画像に基づいて付加操作装置の種類の判別と、ユーザの操作の検出とを行うこともできるので、処理の効率化を図ることができる。
【０１９９】
なお、本実施形態においては、ゲームシステム１は、撮像画像におけるマーカの位置（例えば、左レバーマーカ画像６２３の位置）または向き（例えば、第１基本マーカ画像６２２の向き）に基づいてユーザの操作を検出した。ここで、他の実施形態においては、ゲームシステム１は、マーカの位置および／または向きに加えて（または代えて）、マーカの形状に基づいてユーザの操作を検出してもよい。例えば、左レバー６０４が長手方向を軸として回転可能である場合において、四角柱である左レバー６０４の４つの側面にそれぞれ異なる形状のマーカが設けられてもよい。このとき、ゲームシステム１は、左レバー６０４の側面のうちどの面が右コントローラ４の赤外撮像部１２３の方を向いているかを、撮像画像におけるマーカの形状に基づいて判別することができる。これによって、ゲームシステム１は、左レバー６０４の長手方向を軸として左レバー６０４を回転させるユーザの操作を検出することができる。
【０２００】
なお、右コントローラ４と被検出部との相対位置および／または相対姿勢は、第１付加操作装置６における各レバーマーカ６１３および６１４、第２付加操作装置７におけるボタンマーカ７１２、ならびに、第３付加操作装置８における第２左歯車８０６および第２右歯車８０８のように、被検出部が設けられる可動部が動くことによって変化してもよい。また、上記相対位置および／または相対姿勢は、第１付加操作装置６におけるハンドル６０２のように、右コントローラ４が装着される可動部が動くことによって変化してもよい。また、上記相対位置および／または相対姿勢は、第１付加操作装置６のように、被検出部が設けられる可動部と、右コントローラ４が装着される可動部との両方が動くことによって変化してもよい。上記によれば、被検出部を検出することによって、上記相対位置および／または相対姿勢の変化を検出することができ、ユーザの操作を精度良く検出することができる。
【０２０１】
また、本実施形態においては、ゲームシステム１は、右コントローラ４が装着される付加操作装置の種類に加えて、各付加操作装置６〜８のいずれに対しても右コントローラ４が装着されていないことをさらに判別する。具体的には、ゲームシステム１は、ゲームアプリケーションの実行中において、赤外撮像部１２３による撮像画像を右コントローラ４から繰り返し取得する。そして、撮像画像からいずれの基本マーカも検出されない場合、ゲームシステム１は、右コントローラ４がいずれの付加操作装置にも装着されていないと判別する。これによれば、ゲームシステム１は、右コントローラ４が装着される付加操作装置の種類を判別することに加えて、右コントローラ４が付加操作装置に装着されるか否かを判別することができるので、右コントローラ４の装着状態をより詳細に判別することができる。
【０２０２】
［２−５．装着状態に応じたゲーム処理のまとめ］
上述したように、本実施形態においては、右コントローラ４が装着される付加操作装置の種類を切り替えることに応じたゲーム処理が実行される。具体的には、ゲームシステム１は、以下に示すゲーム処理を、付加操作装置の種類に応じて異なる処理内容で実行する。
【０２０３】
本実施形態においては、ゲームシステム１は、右コントローラ４が装着されていると判別された付加操作装置の種類に応じて異なるゲーム画像を生成する（図１６、図２０、図２５）。具体的には、ゲームシステム１は、右コントローラ４とそれに装着された付加操作装置とを用いたゲーム操作に基づいて制御される乗物オブジェクトを示すゲーム画像を、判別された付加操作装置の種類に応じて変化させる。上記によれば、ユーザは、右コントローラ４を付加操作装置に装着することによって、当該付加操作装置によって操作されるオブジェクトを変更することができる。したがって、本実施形態によれば、ゲームシステム１は、コントローラを装着する付加操作装置を変更することによって操作対象となるオブジェクトを変更する、という新規な操作感覚をユーザに提供することができる。
【０２０４】
なお、他の実施形態においては、付加操作装置の種類に応じて変化するゲーム画像の内容は任意である。本実施形態においては、ユーザの操作対象となるオブジェクトが付加操作装置の種類に応じて変化したが、他の実施形態においては、ユーザの操作対象ではないオブジェクト（例えば、プレイヤキャラクタの服、および／または、所持するアイテム等）が付加操作装置の種類に応じて変化してもよい。また、ゲームシステム１は、付加操作装置の種類に応じて、オブジェクトの全体を変化させてもよい（例えば、プレイヤキャラクタを切り替えてもよい）し、オブジェクトの一部（例えば、プレイヤキャラクタの服、および／または、所持するアイテム等）を変化させてもよい。なお、オブジェクトの変化は、オブジェクトの形状のみの変化であってもよいし、色のみの変化であってもよいし、形状および色の変化であってもよい。また例えば、ゲーム画像は、２次元のゲーム世界を表すものであってもよく、ゲームシステム１は、２次元のオブジェクトを表す画像を付加操作装置の種類に応じて変化させてもよい。
【０２０５】
また、他の実施形態においては、ゲームシステム１は、右コントローラ４が装着されていると判別された付加操作装置の種類に応じて、ゲーム画像とともに（またはゲーム画像に代えて）、ゲーム音（例えば、ゲーム中に出力されるＢＧＭ）を変化させるようにしてもよい。
【０２０６】
また、本実施形態においては、ゲームシステム１は、各付加操作装置のいずれに対しても右コントローラ４が装着されていないと判別された場合、右コントローラ４が各付加操作装置のいずれかに装着されている場合とは異なるゲーム処理を実行する。より具体的には、ゲームシステム１は、上記２つの場合で異なるゲーム画像を生成する（図２０、図２１）。これによれば、ユーザは、右コントローラ４を装着する付加操作装置の種類を変更することに加えて、右コントローラ４を付加操作装置に装着するか否かによってもゲームの表示を変更することができる。
【０２０７】
また、本実施形態においては、ゲームシステム１は、右コントローラ４が装着されていると判別された付加操作装置の種類に基づいて、仮想空間内に配置される仮想カメラの位置および／または姿勢を制御する。本実施形態においては、仮想カメラの位置および姿勢は、右コントローラ４が装着される付加操作装置の種類に応じて変化する。具体的には、本実施形態において、仮想カメラは、ユーザの操作対象の後方に、当該操作対象の方を向く姿勢で配置される（図１６、図２０、図２５）。ここで、右コントローラ４が第１付加操作装置６に装着される場合には、仮想カメラの位置および姿勢は、操作対象である自動車オブジェクト２０１が画面の中央よりやや下方に表示されるように設定される（図１６）。また、右コントローラ４が第３付加操作装置８に装着される場合、または、右コントローラ４がいずれの付加操作装置にも装着されない場合には、右コントローラ４が第１付加操作装置６に装着される場合と同様に仮想カメラが設定される。これに対して、右コントローラ４が第２付加操作装置７に装着される場合には、仮想カメラの位置および姿勢は、操作対象である飛行機オブジェクト２０２が画面の中央に表示されるように設定される（図２０）。このように、右コントローラ４が装着される付加操作装置の種類に応じて仮想カメラを設定することによって、ゲームシステム１は、ゲーム状況に応じた適切な視点から見たゲーム画像をユーザに提供することができる。
【０２０８】
また、本実施形態においては、ゲームシステム１は、右コントローラ４が装着されていると判別された付加操作装置の種類に応じて、ゲーム処理に用いる入力を変更する。すなわち、本実施形態においては、右コントローラ４は、当該右コントローラ４に対するユーザの操作を検出するための操作検出部を複数種類備える。具体的には、右コントローラ４は、操作検出部として、各ボタン１１３、アナログスティック５２、加速度センサ１１４、および、角速度センサ１１５を備えている。ここで、ゲームシステム１は、右コントローラ４が所定の種類の付加操作装置（本実施形態においては、第２付加操作装置７）に装着されていると判別された場合、複数種類の操作検出部のうちで、判別されたサブ装置の種類に応じた操作検出部（本実施形態においては、加速度センサ１１４）による検出結果に基づいてゲーム処理を実行する。したがって、本実施形態によれば、ゲームシステム１は、右コントローラ４が装着された付加操作装置の種類に応じて適切な操作検出部による検出結果に基づいてゲーム処理を実行することができる。例えば、右コントローラ４が第２付加操作装置７に装着される場合には、ゲームシステム１は、加速度センサ１１４による検出結果に基づくことによって、把持部７０２に対する傾倒操作を検出することができ、加速度センサ１１４による検出結果（換言すれば、当該検出結果に基づいて算出される傾倒操作の内容）をユーザの入力として用いてゲーム処理を実行することができる。
【０２０９】
なお、他の実施形態においては、ゲームシステム１は、操作検出部による検出結果に応じて実行されるゲーム処理の内容を、右コントローラ４が装着されていると判別された付加操作装置の種類に応じて変更してもよい。例えば、ゲームシステム１は、操作検出部による検出結果に基づいて検出するゲーム操作を、付加操作装置の種類に応じて変更してもよいし、操作検出部による検出結果に基づいて検出されるゲーム操作に応じて実行されるゲーム処理を、付加操作装置の種類に応じて変更してもよい。
【０２１０】
具体的には、他の実施形態においては、ゲームシステム１は、右コントローラ４が第１装着状態となる場合において、ハンドル６０２に対する回転操作を、加速度センサ１１４による検出結果に基づいて検出してもよい。このとき、ゲームシステム１は、右コントローラ４の長手方向に平行な軸回りの回転に関する右コントローラ４の姿勢を、加速度センサ１１４による検出結果に基づいて算出し、当該姿勢に基づいてゲーム処理を実行する。これに対して、第２装着状態においては、ゲームシステム１は、右コントローラ４の長手方向に垂直な２軸回りの回転に関する右コントローラ４の姿勢を、加速度センサ１１４による検出結果に基づいて算出し、当該姿勢に応じたゲーム処理を実行する。このように、ゲームシステム１は、加速度センサ１１４による検出結果に基づく姿勢に応じたゲーム処理を実行する場合において、右コントローラ４が装着されている付加操作装置の種類に応じて異なる軸回りの姿勢を算出してもよい。その結果、検出結果に応じて実行されるゲーム処理の内容は、右コントローラ４が装着されている付加操作装置の種類に応じて異なるものとなる。
【０２１１】
また、他の実施形態においては、上記ゲーム処理に用いられる操作検出部は、加速度センサ１１４に限らず、各ボタン１１３、アナログスティック５２、および、角速度センサ１１５等であってもよい。例えば、ゲームシステム１は、第１装着状態においては、アナログスティック５２による検出結果（換言すれば、アナログスティック５２対する入力）に応じて、仮想カメラを移動させるゲーム処理を実行し、第２装着状態においては、アナログスティック５２による検出結果に応じて、飛行機オブジェクト２０２の姿勢を変化させるゲーム処理を実行してもよい。このように、操作検出部による検出結果に基づいて検出される操作は、右コントローラ４が備える操作部に対する操作であってもよいし、右コントローラ４を動かす操作であってもよい。
【０２１２】
［２−６．装着途中における処理］
上述のように、本実施形態においては、ゲームシステム１は、右コントローラ４の赤外撮像部１２３によって付加操作装置のマーカを撮像することによって、右コントローラ４の装着状態およびゲーム操作を検出する。ここで、右コントローラ４を付加操作装置に装着する途中の状態においては、ゲームシステム１が付加操作装置の複数のマーカのうち一部のマーカのみを認識する（換言すれば、検出する）状態となる場合がある。このような場合、本実施形態においては、ゲームシステム１は、一部のゲーム操作を検出するとともに、右コントローラ４の装着が途中であることをユーザに通知する。以下、図２６を参照して、右コントローラ４の装着が途中である場合における処理について説明する。
【０２１３】
図２６は、一部認識状態となる場合と、全認識状態となる場合との一例を示す図である。なお、図２６においては、第１付加操作装置６に右コントローラ４が装着される場合を例として説明する。図２６に示すように、右コントローラ４が第１付加操作装置６に対して途中まで挿入された状態（図２６に示す左側の列の上側の欄）においては、赤外撮像部１２３は、第１基本マーカ６１２のみを撮像し、他のマーカ（すなわち、各レバーマーカ６１３および６１４）を撮像できない状態となる。
【０２１４】
ここで、本実施形態においては、各付加操作装置６〜８においては、右コントローラ４が付加操作装置に挿入されるときの挿入軸から基本マーカまでの距離は、当該挿入軸から上記他のマーカまでの距離よりも小さく設定される。つまり、基本マーカは、挿入軸から近い位置に配置され、他のマーカは、挿入軸から遠い位置に配置される。なお、上記「挿入軸」とは、右コントローラ４が付加操作装置に挿入される方向に平行であって、右コントローラ４の位置を通る直線である。したがって、本実施形態においては、右コントローラ４の装着が途中である状態においては、付加操作装置における筒状部分（すなわち、右コントローラ４が挿入される部分）の内壁によって赤外撮像部１２３の視野が遮蔽される結果、基本マーカのみが赤外撮像部１２３によって撮像される状態となることがある。
【０２１５】
上記のように、第１基本マーカ６１２のみが赤外撮像部１２３によって撮像される場合、撮像画像には、第１基本マーカ画像６２２が含まれ、他のマーカ画像（すなわち、各レバーマーカ画像６２３および６２４）が含まれない（図２６に示す中央の列の上側の欄）。このとき、撮像画像に基づいて基本マーカが認識され、上記他のマーカが認識されない状態となる。なお、以下においては、赤外撮像部１２３による撮像画像に基づいて基本マーカが認識され、上記他のマーカが認識されない状態を、「一部認識状態」と呼ぶ（図２６に示す上側の行）。また、赤外撮像部１２３による撮像画像に基づいて基本マーカおよび上記他のマーカの両方が認識される状態を、「全認識状態」と呼ぶ（図２６に示す下側の行）。
【０２１６】
上記一部認識状態においては、第１基本マーカ６１２が検出されるので、ゲームシステム１は、第１基本マーカ６１２に基づくゲーム処理を実行する。具体的には、一部認識状態において、ゲームシステム１は、右コントローラ４が第１付加操作装置６に装着されたことを判別し、ゲーム空間において自動車オブジェクト２０１を出現させる。そして、ゲームシステム１は、上述の回転操作を検出し、回転操作に応じて自動車オブジェクト２０１の動作を制御する。なお、一部認識状態においては、各レバーマーカ６１３および６１４が検出されないので、ゲームシステム１は、上述の下げ操作を検出することができず、下げ操作に応じた自動車オブジェクト２０１の動作の制御については行わない。
【０２１７】
上記のように、一部認識状態においては、ユーザは、一部のゲーム操作（すなわち、第１付加操作装置６の場合は、下げ操作）を行うことができない。そのため、ゲームシステム１は、一部のゲーム操作を行うことをユーザに通知する。すなわち、ゲームシステム１は、一部認識状態においては、全認識状態において表示されるゲーム画像とは異なるゲーム画像を表示装置に表示する。本実施形態においては、ゲームシステム１は、自動車オブジェクト２０１から煙が出ている様子を表す画像を表示する（図２６の右側の列の上側の欄）。これによって、ユーザは、右コントローラ４を正しく装着することができていないことを認識することができ、ゲームシステム１は、右コントローラ４を正しく装着することをユーザに促すことができる。
【０２１８】
一方、右コントローラ４が第１付加操作装置６に対して奥まで挿入されている（すなわち、正しく挿入されている）状態（図２６に示す左側の列の下側の欄）においては、赤外撮像部１２３は、第１基本マーカ６１２ならびに各レバーマーカ６１３および６１４の両方を撮像可能な状態となる。したがって、この状態においては、撮像画像は、第１基本マーカ画像６２２および他のマーカ画像（すなわち、各レバーマーカ画像６２３および６２４）を含み（図２６に示す中央の列の下側の欄）、ゲームシステム１は、第１基本マーカ６１２ならびに各レバーマーカ６１３および６１４を認識することができる。したがって、ゲームシステム１は、第１基本マーカ６１２に基づくゲーム処理と、各レバーマーカ６１３および６１４に基づくゲーム処理との両方を実行する。すなわち、ゲームシステム１は、通常の自動車オブジェクト２０１（すなわち、煙が出ていない自動車オブジェクト２０１）を含むゲーム画像を表示する（図２６に示す右側の列の下側の欄）。また、ゲームシステム１は、上述の回転操作および下げ操作を検出し、回転操作および下げ操作に応じて自動車オブジェクト２０１の動作を制御する。
【０２１９】
図２６においては、右コントローラ４が第１付加操作装置６に装着される場合を例として説明したが、右コントローラ４が他の付加操作装置に装着される場合についても同様に、一部認識状態においては、ゲームシステム１は、全認識状態において実行されるゲーム処理のうちの一部のゲーム処理を実行する。
【０２２０】
具体的には、右コントローラ４が第２付加操作装置７に装着される場合における一部認識状態において、ゲームシステム１は、右コントローラ４が第２付加操作装置７に装着されたことを判別し、ゲーム空間において飛行機オブジェクト２０２を出現させる。そして、ゲームシステム１は、上述の傾倒操作を検出し、傾倒操作に応じて飛行機オブジェクト２０２の動作を制御する。右コントローラ４が第２付加操作装置７に装着される場合において、傾倒操作はマーカに基づかずに検出されるので、ゲームシステム１は一部認識状態においても傾倒操作を検出可能であるからである。また、ゲームシステム１は、飛行機オブジェクト２０２から煙が出る様子を表す画像を表示装置に表示する。
【０２２１】
また、右コントローラ４が第３付加操作装置８に装着される場合における一部認識状態において、ゲームシステム１は、右コントローラ４が第３付加操作装置８に装着されたことを判別し、ゲーム空間において船オブジェクト２０３を出現させる。なお、このとき、ゲームシステム１は、検出可能なユーザの操作がないので、ユーザの操作に応じて船オブジェクト２０３の動作の制御を行わない。このように、ゲームシステム１は、全ての種類の付加操作装置に関して、一部認識状態においてゲーム操作を検出する必要はない。また、ゲームシステム１は、船オブジェクト２０３から煙が出る様子を表す画像を表示装置に表示する。
【０２２２】
以上のように、本実施形態においては、付加操作装置が備える被検出部（すなわち、マーカ）は、第１部分（すなわち、基本マーカ）と、第２部分（すなわち、基本マーカ以外の他のマーカ）とを含む。ゲームシステム１は、撮像画像に含まれる第１部分を認識し、撮像画像に含まれる第２部分を認識する。ゲームシステム１は、第１部分を示す第１部分画像の位置、形状、および、向きのうち少なくとも１つに基づいて、右コントローラ４が装着された付加操作装置の種類を判別する。また、ゲームシステム１は、付加操作装置に装着された右コントローラの装着状態として、第１部分が認識され、第２部分が認識されない一部認識状態と、第１部分および第２部分が認識される全認識状態とを判別する。換言すれば、ゲームシステム１は、第１部分の認識結果（すなわち、第１部分が認識されたか否か）と第２部分の認識結果とに基づいて、付加操作装置に対して右コントローラ４が装着される度合いを判別する。なお、「付加操作装置に対して右コントローラ４が装着される度合い」とは、換言すれば、付加操作装置に対して右コントローラ４がどの程度装着された状態であるかを示す度合いであり、本実施形態においては、右コントローラ４が付加操作装置に対して装着途中の状態であるか、それとも、右コントローラ４が付加操作装置に奥まで装着された状態であるかを示す。上記によれば、ゲームシステム１は、右コントローラ４が付加操作装置に対して正しく装着された状態であるか、それとも、装着途中の状態であるかを判別することができる。
【０２２３】
また、ゲームシステム１は、右コントローラ４の装着状態が一部認識状態であると判別される場合、第１のゲーム処理（すなわち、乗物オブジェクトから煙が出る様子を表す画像を表示する処理）を実行し、右コントローラ４の装着状態が全認識状態であると判別される場合、当該第１のゲーム処理とは異なる第２のゲーム処理（すなわち、煙が出ていない乗物オブジェクトを表す画像を表示する処理）を実行する。換言すれば、ゲームシステム１は、付加操作装置に対して右コントローラ４が装着される度合いに応じたゲーム処理を実行する。これによれば、ユーザは、右コントローラ４が付加操作装置に正しく装着されているか否かを容易に認識することができる。
【０２２４】
なお、本実施形態においては、ゲームシステム１は、第１部分画像の位置および向きのうち少なくとも１つに基づいて、ユーザの第１の種類の操作（例えば、第１付加操作装置６に対する回転操作）を検出し、検出された第１の種類の操作に基づくゲーム処理を実行する。また、ゲームシステム１は、第２部分画像の位置および向きのうち少なくとも１つに基づいて、ユーザの第２の種類の操作（例えば、第１付加操作装置６に対する下げ操作）を検出し、検出された第２の種類の操作に基づくゲーム処理を実行する。これによれば、ユーザは、右コントローラ４が付加操作装置に対して装着途中であっても、一部のゲーム操作を行うことが可能である。したがって、本実施形態においては、ゲームシステム１は、付加操作装置を用いたゲーム操作の操作性を向上することができる。
【０２２５】
なお、上述のように、本実施形態においては、付加操作装置は、段ボールで構成され、ユーザによって組み立てられる。そのため、ユーザが付加操作装置を上手く組み立てられない可能性もあり、このとき、ユーザが右コントローラ４を付加操作装置に対してスムーズに装着（換言すれば、挿入）することができない可能性もある。これに関して、本実施形態によれば、ユーザが右コントローラ４を付加操作装置に対してスムーズに装着することができず、一部認識状態となってしまう場合であっても、ゲームシステム１は、ユーザに対して通知を行うことによって、右コントローラ４を正しく装着することをユーザに促すことができる。
【０２２６】
また、本実施形態においては、例えば付加操作装置の一部の操作部（例えば、第１付加操作装置６における各レバー６０４および６０５）が破損等によって無い状態となっても、ゲームシステム１は、当該一部の操作部以外の操作部に対する操作を検出することができる。
【０２２７】
［３．ゲームシステムにおける処理の具体例］
次に、図２７〜図２９を参照して、ゲームシステム１における情報処理の具体例について説明する。
【０２２８】
［３−１．情報処理に用いられるデータ］
図２７は、ゲームシステム１における情報処理に用いられる各種データの一例を示す図である。図２７に示す各種データは、本体装置２がアクセス可能な記憶媒体（例えば、スロット２３に装着された記憶媒体、フラッシュメモリ８４、および／または、ＤＲＡＭ８５）に記憶される。
【０２２９】
図２７に示すように、本体装置２は、ゲームプログラム３０１を記憶する。ゲームプログラム３０１は、本実施形態におけるゲームを実行するためのゲームアプリケーションのプログラムであり、例えば、スロット２３に装着された記憶媒体またはフラッシュメモリ８４に記憶される。
【０２３０】
また、図２７に示すように、本体装置２は、操作データ３０２、装着状態データ３０３、認識状態データ３０４、向きデータ３０５、前方向データ３０６、および、オブジェクトデータ３０７を記憶する。これらのデータ（換言すれば、情報）３０２〜３０７は、後述する情報処理（図２８および図２９）において取得または生成されて用いられる。
【０２３１】
操作データ３０２は、コントローラから受信される操作データである。本実施形態においては、操作データ３０２は、赤外撮像部１２３による撮像画像のデータを含む。なお、他の実施形態においては、操作データ３０２は、撮像画像に対して何らかの加工が行われた情報、および／または、撮像画像から得られる情報（例えば、マーカの位置および向きを示す情報）を含んでいてもよい。なお、本体装置２が複数のコントローラから操作データを受信する場合、本体装置２は、コントローラ毎に操作データ３０２を記憶する。
【０２３２】
装着状態データ３０３は、右コントローラ４の装着状態を示す。具体的には、装着状態データ３０３は、第１〜第３装着状態、および、非装着状態のいずれかを示す。
【０２３３】
認識状態データ３０４は、ゲームシステム１におけるマーカの認識状態を示す。具体的には、認識状態データ３０４は、上述の一部認識状態または全認識状態を示す。
【０２３４】
向きデータ３０５は、上述の向き情報を示し、具体的には、第１の向きまたは第２の向きを示す。
【０２３５】
前方向データ３０６は、非装着状態において設定される、上述の右コントローラ４の前方向を示す。本実施形態においては、前方向データ３０６は、本体装着面が向く方向、または、当該方向の逆向きの方向を示す。
【０２３６】
オブジェクトデータ３０７は、ユーザの操作対象であるオブジェクト（すなわち、プレイヤキャラクタおよび乗物オブジェクト）に関する情報を示す。具体的には、オブジェクトデータ３０７は、プレイヤキャラクタが乗物オブジェクトを運転しているか否か、乗物オブジェクトを運転している場合は乗物オブジェクトの種類を示すデータを含む。また、オブジェクトデータ３０７は、プレイヤキャラクタまたは乗物オブジェクトの状態（例えば、ゲーム空間における位置および向き等）を示す各種パラメータのデータを含む。
【０２３７】
図２８は、情報処理装置によって実行される情報処理の流れの一例を示すフローチャートである。なお、図２８に示す一連の処理は、上記ゲームプログラム３０１の起動後、所定の条件が満たされたこと（例えば、ゲームをプレイする旨の指示がユーザによって行われたこと）に応じて開始される。
【０２３８】
なお、本実施形態では、本体装置２のプロセッサ８１（換言すれば、コンピュータ）が、ゲームプログラム３０１を実行することによって、図２８および図２９に示す各ステップの処理を実行するものとして説明する。ただし、他の実施形態においては、上記各ステップの処理のうちの一部の処理を、プロセッサ８１とは別のプロセッサ（例えば、専用回路等）が実行するようにしてもよい。また、本体装置２がサーバと通信可能である場合、図２８および図２９に示す各ステップの処理の一部は、サーバにおいて実行されてもよい。また、コントローラが情報処理部（例えば、プロセッサ）を備える場合には、図２８および図２９に示す各ステップの処理の一部は、コントローラにおいて実行されてもよい。また、図２８および図２９に示す各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて（または代えて）別の処理が実行されてもよい。
【０２３９】
また、本体装置２のプロセッサ８１は、図２８および図２９に示す各ステップの処理を、メモリ（具体的には、フラッシュメモリ８４および／またはＤＲＡＭ８５）を用いて実行する。すなわち、プロセッサ８１は、各処理ステップによって得られるデータをメモリに記憶し、それ以降の処理ステップにおいて当該データを用いる場合には、メモリから当該データを読み出して利用する。
【０２４０】
図２８に示すステップＳ１において、プロセッサ８１は、操作データを取得する。右コントローラ４は、操作データを本体装置２へ繰り返し送信するので、本体装置２は操作データを逐次受信し、操作データ３０２としてメモリに記憶する。操作データ３０２は、最新のものから順に所定個数の操作データを含んでいてもよい。ステップＳ１において、プロセッサ８１は、操作データ３０２をメモリから読み出す。ステップＳ１の次に、ステップＳ２の処理が実行される。
【０２４１】
ステップＳ２において、プロセッサ８１は、装着状態判別処理を実行する。装着状態判別処理は、右コントローラ４の付加操作装置に対する装着に関する状態を判別するための処理である。以下、図２９を参照して、装着状態判別処理の詳細について説明する。
【０２４２】
図２９は、図２８に示すステップＳ２の装着状態判別処理の詳細な流れの一例を示すサブフローチャートである。装着状態判別処理においては、まずステップＳ２１において、プロセッサ８１は、マーカ画像を検出する。具体的には、プロセッサ８１は、メモリに記憶されている操作データ３０２に含まれる撮像画像のデータから、当該撮像画像に含まれているマーカ画像を検出する。
【０２４３】
撮像画像からマーカ画像を検出する方法は任意である。本実施形態においては、撮像画像において、マーカ画像は、輝度が高い領域として現れる。したがって、プロセッサ８１は、撮像画像から高輝度領域を抽出し、抽出した領域をマーカ画像の領域として検出する。ここで、右コントローラ４が付加操作装置に装着される途中である状態では、撮像画像には、マーカ画像の他に、ノイズ画像が含まれることがある。ノイズ画像は、赤外発光部１２４による赤外光が付加操作装置における筒状部分の内壁に乱反射して赤外撮像部１２３によって受光されたことによって生じる。このようなノイズ画像は、マーカ画像よりも大きくなるので、プロセッサ８１は、撮像画像から抽出された高輝度領域のうちで、所定の大きさ以上の領域をノイズ画像であると判断し、マーカ画像としては検出しない。なお、プロセッサ８１は、高輝度領域の輝度および／または形状に基づいてマーカ画像およびノイズ画像を判断してもよい。
【０２４４】
以上より、上記ステップＳ２１においては、右コントローラ４が付加操作装置に装着された状態では、マーカ画像が検出される。なお、撮像画像に複数のマーカ画像が含まれる場合、プロセッサ８１は、各マーカ画像（すなわち、基本マーカ画像と、その他のマーカ画像）をそれぞれ検出する。また、右コントローラ４が付加操作装置に装着される途中である状態では、基本マーカ画像のみが検出されることがある。一方、右コントローラ４が付加操作装置に装着されていない状態では、マーカ画像が検出されない。上記ステップＳ２１の次に、ステップＳ２２の処理が実行される。
【０２４５】
ステップＳ２２において、プロセッサ８１は、ステップＳ２１における検出結果に基づいて、基本マーカが認識されたか否かを判定する。本実施形態においては、プロセッサ８１は、現在の検出結果と、過去の検出結果とに基づいて判定を行う。具体的には、プロセッサ８１は、下記の式（１）に従って判定値Ｌ（ｔ）を算出する。
Ｌ（ｔ）＝ｐ・Ｌｃ＋（１−ｐ）・Ｌ（ｔ−１）  …（１）
上式（１）において、変数Ｌｃは、現在の検出結果を表す数値であり、具体的には、基本マーカが検出された場合には１となり、検出されない場合には０となる。変数Ｌ（ｔ−１）は、前回のステップＳ２２の処理において算出された判定値である。定数ｐは、０＜ｐ≦１の範囲で予め設定される。定数ｐが大きくなるほど、判定値Ｌ（ｔ）に過去の検出結果（すなわち、Ｌ（ｔ−１））が反映される度合いが大きくなる。
【０２４６】
算出された判定値Ｌ（ｔ）が所定の閾値より大きい場合、プロセッサ８１は、基本マーカが認識されたと判定する。一方、算出された判定値Ｌ（ｔ）が所定の閾値以下である場合、プロセッサ８１は、基本マーカが認識されていないと判定する。ステップＳ２２の判定結果が否定である場合、ステップＳ２３の処理が実行される。一方、ステップＳ２２の判定結果が肯定である場合、ステップＳ２４の処理が実行される。
【０２４７】
なお、マーカ画像の検出結果に基づいて、マーカが認識されたか否かの判定を行う方法は任意である。例えば、他の実施形態においては、プロセッサ８１は、最新のステップＳ２１における検出結果のみに基づいて（換言すれば、上記係数ｐを１に設定して）上記判定を行ってもよい。また例えば、他の実施形態においては、ステップＳ２１において所定回数連続して基本マーカ画像が検出された場合、基本マーカ画像が認識されたと判定してもよい。
【０２４８】
ステップＳ２３において、プロセッサ８１は、右コントローラ４の状態を非装着状態であると判別する。すなわち、プロセッサ８１は、非装着状態を示す装着状態データ３０３をメモリに記憶する。ステップＳ２３の後、プロセッサ８１は装着状態判別処理を終了する。
【０２４９】
一方、ステップＳ２４において、プロセッサ８１は、認識された基本マーカに基づいて、右コントローラ４が装着された付加操作装置の種類を判別する。すなわち、“［２−１−２．マーカに基づく処理］”において述べたように、各付加操作装置６〜８の第１〜第３基本マーカは、それぞれ異なる形状であるので、プロセッサ８１は、認識された基本マーカの形状を特定することによって、付加操作装置の種類を判別する。また、プロセッサ８１は、判別結果（すなわち、第１〜第３付加操作装置のいずれか）を示す装着状態データ３０３をメモリに記憶する。ステップＳ２４の次に、ステップＳ２５の処理が実行される。
【０２５０】
ステップＳ２５において、プロセッサ８１は、ステップＳ２１において、基本マーカ画像以外の他のマーカ画像が検出されたか否かを判定する。例えば、ステップＳ２１において基本マーカ画像のみが検出される場合（上述のノイズ画像が検出される場合を含む）、プロセッサ８１は、他のマーカ画像が検出されていないと判定する。ステップＳ２５の判定結果が肯定である場合、ステップＳ２６の処理が実行される。一方、ステップＳ２５の判定結果が否定である場合、後述するステップＳ２８の処理が実行される。
【０２５１】
ステップＳ２６において、プロセッサ８１は、右コントローラ４が静止しているか否かを判定する。ここで、右コントローラ４が付加操作装置に装着されている途中の状態においては、右コントローラ４が動いており、この状態では、撮像画像においてマーカ画像の位置が右コントローラ４の動きによって変化するので、マーカに基づいて操作を正しく検出することができないおそれがある。そこで、本実施形態においては、右コントローラ４が静止している場合に、右コントローラ４が全認識状態であると判別し、この場合にマーカに基づいて操作を検出するようにするべく、ステップＳ２６の判定を行っている。つまり、本実施形態においては、ステップＳ２５およびＳ２６の判定結果が共に肯定となる場合、ゲームシステム１は他のマーカ画像を認識する。
【０２５２】
本実施形態において、ステップＳ２６の判定は、認識されている基本マーカに基づいて行われる。すなわち、撮像画像において検出された基本マーカ画像が変化していない状態（例えば、前回に検出された基本マーカ画像からの移動量が所定値以下であり、大きさの変化量が所定値以下である状態）が所定期間継続した場合、プロセッサ８１は、右コントローラ４が静止していると判定する。一方、撮像画像において検出された基本マーカ画像が変化していない状態が所定期間継続していない場合、プロセッサ８１は、右コントローラ４が静止していないと判定する。なお、他の実施形態においては、ステップＳ２６の判定は、基本マーカに加えて（または、代えて）、右コントローラ４の加速度センサ１１４および／または角速度センサ１１５の検出結果に基づいて行われてもよい。ステップＳ２６の判定結果が肯定である場合、ステップＳ２７の処理が実行される。一方、ステップＳ２６の判定結果が否定である場合、後述するステップＳ２８の処理が実行される。
【０２５３】
ステップＳ２７において、プロセッサ８１は、全認識状態であると判別する。すなわち、プロセッサ８１は、全認識状態を示す認識状態データ３０４をメモリに記憶する。ステップＳ２７の次に、後述するステップＳ２９の処理が実行される。
【０２５４】
一方、ステップＳ２８において、プロセッサ８１は、一部認識状態であると判別する。すなわち、プロセッサ８１は、一部認識状態を示す認識状態データ３０４をメモリに記憶する。ステップＳ２８の次に、ステップＳ２９の処理が実行される。
【０２５５】
ステップＳ２９において、プロセッサ８１は、操作の検出に用いられるマーカ画像について、撮像画像上における位置および向きを算出する。なお、「操作の検出に用いられるマーカ画像」とは、第１装着状態においては、第１基本マーカ画像６２２ならびに各マーカ画像６２３および６２４であり、第２装着状態においては、ボタンマーカ７１２のマーカ画像であり、第３装着状態においては、各ハンドルマーカ８１２および８１３の各画像である。プロセッサ８１は、算出された位置および向きを示すデータを、マーカ画像毎にメモリに記憶する。なお、右コントローラ４が一部検出状態であると判別された場合（ステップＳ２８）において、操作の検出に用いられるマーカ画像がない場合、プロセッサ８１は、マーカ画像の位置および向きを算出しない。ステップＳ２９の後、プロセッサ８１は装着状態判別処理を終了する。装着状態判別処理を終了した後、図２８に示すステップＳ３の処理が実行される。
【０２５６】
ステップＳ３において、プロセッサ８１は、右コントローラ４の装着状態が変化したか否かを判定する。具体的には、プロセッサ８１は、上記ステップＳ２において、装着状態データの内容が更新されたか否かに基づいて、ステップＳ３の判定を行う。ステップＳ３の判定結果が肯定である場合、ステップＳ４の処理が実行される。一方、ステップＳ３の判定結果が否定である場合、後述するステップＳ９の処理が実行される。
【０２５７】
ステップＳ４において、プロセッサ８１は、右コントローラ４の装着状態に基づいて、プレイヤキャラクタ２００が運転する乗物オブジェクトを変更する。すなわち、プロセッサ８１は、メモリに記憶されているオブジェクトデータ３０７のうちで、プレイヤキャラクタ２００が運転する乗物オブジェクトを示すデータを更新する。具体的には、右コントローラ４が第１装着状態である場合には、自動車オブジェクト２０１を示すデータがメモリに記憶され、右コントローラ４が第２装着状態である場合には、飛行機オブジェクト２０２を示すデータがメモリに記憶され、右コントローラ４が第３装着状態である場合には、船オブジェクト２０３を示すデータがメモリに記憶され、ステップＳ４の次に、ステップＳ５の処理が実行される。
【０２５８】
ステップＳ５において、プロセッサ８１は、右コントローラ４が第２装着状態となったか否かを判定する。ステップＳ５の判定結果が肯定である場合、ステップＳ６の処理が実行される。一方、ステップＳ５の判定結果が否定である場合、ステップＳ７の処理が実行される。
【０２５９】
ステップＳ６において、プロセッサ８１は、右コントローラ４が第２付加操作装置７に装着された時の向きを示す向き情報を保存する。具体的には、プロセッサ８１は、第１の向きまたは第２の向きを示す向きデータをメモリに記憶する。なお、プロセッサ８１は、右コントローラ４が第２付加操作装置７に装着された時の向きを、装着時において検出された基本マーカ画像の向きに基づいて判別することができる。ステップＳ６の次に、後述するステップＳ９の処理が実行される。
【０２６０】
ステップＳ７において、プロセッサ８１は、右コントローラ４が第２装着状態から非装着状態へと変化したか否かを判定する。この判定は、メモリに記憶される装着状態データが、第２装着状態を示す内容から非装着状態を示す内容に更新されたか否かによって行われる。ステップＳ７の判定結果が肯定である場合、ステップＳ８の処理が実行される。一方、ステップＳ７の判定結果が否定である場合、ステップＳ９の処理が実行される。
【０２６１】
ステップＳ８において、プロセッサ８１は、メモリに記憶されている向きデータに基づいて、右コントローラ４の前方向を設定する。具体的には、プロセッサ８１は、上記“［２−２−４．第２装着状態から非装着状態へと移行した場合における処理］”で述べた方法で、右コントローラ４の前方向を設定する。プロセッサ８１は、設定した前方向を示すデータを、前方向データ３０６としてメモリに記憶する。ステップＳ８の次に、ステップＳ９の処理が実行される。
【０２６２】
ステップＳ９において、プロセッサ８１は、右コントローラ４の装着状態および認識状態に応じて、ユーザの操作を検出する。本実施形態においては、右コントローラ４の装着状態および認識状態に応じて検出される操作は、下記の通りである。
・第１装着状態であって、全認識状態である場合：回転操作、および、下げ操作
・第１装着状態であって、一部認識状態である場合：回転操作
・第２装着状態であって、全認識状態である場合：傾倒操作、および、押下操作
・第２装着状態であって、一部認識状態である場合：傾倒操作
・第３装着状態であって、全認識状態である場合：左側回転操作、および、右側回転操作
・第３装着状態であって、一部認識状態である場合：なし
・非装着状態である場合：右コントローラ４に対する操作
プロセッサ８１は、操作データに基づいて上記各操作を検出する。このとき、プロセッサ８１は、装着状態に応じて上述の操作検出部を必要に応じて特定する。本実施形態においては、右コントローラ４の装着状態が第２装着状態である場合には、加速度センサ１１４が特定される。そして、プロセッサ８１は、撮像画像に基づいて操作を検出し、操作検出部が特定される場合には、当該操作検出部の検出結果に基づいて操作を検出する。なお、上記各操作の具体的な検出方法は、“［２−１−２．マーカに基づく処理］”、“［２−２−２．マーカに基づく処理］”、および、“［２−３−２．マーカに基づく処理］”で述べた通りである。なお、被装着状態においては、プレイヤキャラクタ２００の状態（すなわち、地面に立った状態であるか、それとも、空中においてパラシュートを装備した状態であるか）に応じて、検出される操作が異なっていてもよい。例えば、プレイヤキャラクタ２００が地面に立った状態である場合には、プロセッサ８１は、右コントローラ４のアナログスティック５２に対する操作を検出し、プレイヤキャラクタ２００が空中においてパラシュートを装備した状態である場合には、プロセッサ８１は、右コントローラ４の姿勢を変化させる操作を検出する。ステップＳ９の次に、ステップＳ１０の処理が実行される。
【０２６３】
ステップＳ１０において、プロセッサ８１は、右コントローラ４の装着状態に応じた操作対象（すなわち、プレイヤキャラクタ２００または乗物オブジェクト）を、検出された操作に応じて制御する。すなわち、第１装着状態においては、プロセッサ８１は、上記回転操作および下げ操作に応じて自動車オブジェクト２０１を制御する。第２装着状態においては、プロセッサ８１は、上記傾倒操作および押下操作に応じて飛行機オブジェクト２０２を制御する。第３装着状態においては、プロセッサ８１は、上記左側回転操作および右側回転操作に応じて船オブジェクト２０３を制御する。非装着状態においては、プロセッサ８１は、右コントローラ４に対する操作に応じてプレイヤキャラクタ２００を制御する。ステップＳ１０の次に、ステップＳ１１の処理が実行される。
【０２６４】
ステップＳ１１において、プロセッサ８１は、右コントローラ４の装着状態に応じて仮想カメラを設定する。すなわち、プロセッサ８１は、“［２−５．装着状態に応じたゲーム処理のまとめ］”で述べた方法に従って、装着状態に応じた位置および姿勢となるように仮想カメラを設定する。ステップＳ１１の次に、ステップＳ１２の処理が実行される。
【０２６５】
なお、上記ステップ９〜Ｓ１１の一連の処理において、右コントローラ４の装着状態および認識状態は、メモリに記憶されている装着状態データ３０３および認識状態データ３０４を参照することによって知ることができる。
【０２６６】
ステップＳ１２において、プロセッサ８１は、仮想カメラに基づいてゲーム画像を生成し、生成されたゲーム画像を表示装置に表示する。すなわち、プロセッサ８１は、ステップＳ１１で設定された仮想カメラから見たゲーム空間であって、ステップＳ１０の処理によって動作が制御されたオブジェクトを含むゲーム空間を示すゲーム画像を、表示装置に表示する。なお、右コントローラ４の認識状態が一部認識状態である場合、プロセッサ８１は、乗物オブジェクトから煙が出る様子を表すゲーム画像を表示する。ステップＳ１２の次に、ステップＳ１３の処理が実行される。
【０２６７】
ステップＳ１３において、プロセッサ８１は、ゲームを終了するか否かを判定する。プロセッサ８１は、例えば、予め定められた終了条件（例えば、プレイヤキャラクタがゴールに到達したこと）が満たされた場合、または、終了指示を示す入力がユーザによって行われた場合、ゲームを終了すると判定する。ステップＳ１３の判定結果が否定である場合、ステップＳ１の処理が再度実行される。プロセッサ８１は、ステップＳ１３においてゲームを終了すると判定されるまで、ステップＳ１〜Ｓ１３の処理ループを繰り返し実行する。一方、ステップＳ１３の判定結果が肯定である場合、プロセッサ８１は、図２８に示す情報処理を終了する。
【０２６８】
［４．本実施形態の作用効果および変形例］
以上に説明した実施形態によれば、情報処理装置の一例であるゲームプログラムは、複数種類のサブ装置（すなわち、付加操作装置）と、複数種類のサブ装置のいずれに対しても着脱可能なメイン装置（すなわち、右コントローラ４）とを含むゲームシステム１のコンピュータ（すなわち、プロセッサ８１）を、次の手段として機能させる。
・所定のゲームアプリケーションの実行中において、複数種類のサブ装置のうちでメイン装置が装着されたサブ装置の種類を判別する判別手段（ステップＳ２４）
・所定のゲームアプリケーションの実行中において、メイン装置、および／または、当該メイン装置が装着されたサブ装置を用いたゲーム操作に基づくゲーム処理を実行するゲーム処理実行手段（ステップＳ９〜Ｓ１２）
上記ゲーム処理実行手段は、判別されたサブ装置の種類に応じたゲーム処理を実行する。
【０２６９】
上記「コンピュータ」は、上記実施形態においては、１つのコンピュータ（具体的には、プロセッサ８１）であるが、他の実施形態においては、複数のコンピュータであってもよい。上記「コンピュータ」は、例えば、複数の装置に設けられる（複数の）コンピュータであってもよく、より具体的には、上記「コンピュータ」は、本体装置２のプロセッサ８１と、コントローラが備える情報処理部とによって構成されてもよい。
【０２７０】
上記「メイン装置、および／または、当該メイン装置が装着されたサブ装置を用いたゲーム操作」は、メイン装置に対する操作（例えば、右コントローラ４に設けられるボタンに対する操作）であってもよいし、メイン装置が装着されたサブ装置に対する操作（例えば、サブ装置に設けられる操作部に対する操作）であってもよいし、これらの両方に対する操作（例えば、サブ装置のうちでメイン装置が装着された部分を動かす操作）であってもよい。
【０２７１】
上記実施形態によれば、ゲームシステム１は、ゲームアプリケーションの実行中において、メイン装置が装着されたサブ装置の種類を判別し、サブ装置の種類に応じたゲーム処理を実行する。これによれば、ユーザは、メイン装置が装着されるサブ装置を、例えばゲーム中において切り替えながらゲームをプレイすることができる。これによって、ゲームシステム１は、例えばゲームプレイ中にサブ装置を切り替えながらゲーム操作を行うという新規なゲーム体験をユーザに提供することができ、興趣性の高いゲームを提供することができる。
【０２７２】
上記実施形態においては、ゲームシステム１は、撮像装置（具体的には、赤外撮像部１２３）によって撮像された撮像画像に基づいて、メイン装置が装着されたサブ装置の種類を判別する。ここで、他の実施形態においては、撮像装置を用いる方法以外の方法でサブ装置の種類を判別してもよい。例えば、メイン装置とサブ装置とがコネクタまたはケーブルによって電気的に接続される場合、ゲームシステム１は、当該コネクタまたはケーブルを介してサブ装置からメイン装置が受信する信号に基づいてサブ装置の種類を判別してもよい。また例えば、メイン装置とサブ装置との間で近距離無線通信（例えば、ＮＦＣの規格に従った通信）を行う場合には、ゲームシステム１は、当該近距離無線通信によってサブ装置からメイン装置が受信する信号に基づいてサブ装置の種類を判別してもよい。
【０２７３】
上記実施形態においては、メイン装置は、それ自身のみで操作装置として機能する右コントローラ４であったが、他の実施形態においては、メイン装置は、それ自身のみでは操作装置として機能しない装置であってもよい。例えば、メイン装置は、赤外撮像部１２３を備え、ボタンまたは加速度センサといった操作検出部を備えていない構成であってもよい。
【０２７４】
上記「複数種類のサブ装置」は、所定の方法による判別よって異なる種類であると判別されるような違いをそれぞれ有する。具体的には、本実施形態においては、互いに異なる基本マーカを備える複数の付加操作装置（すなわち、第１〜第３付加操作装置６〜８）が、「複数種類のサブ装置」である。なお、他の実施形態においては、ゲームシステム１は、複数種類のサブ装置として、同じ形状を有する複数の付加操作装置であって、それぞれ異なる基本マーカを備える複数の付加操作装置を含んでいてもよい。また、他の実施形態においては、ゲームシステム１は、互いに異なる形状を有する複数の付加操作装置であって、同一の基本マーカを備える複数の付加操作装置を、同種の付加操作装置であるとして取り扱ってもよい。
【０２７５】
上記実施形態においては、付加操作装置に装着して用いるコントローラとして、１つの右コントローラ４が用いられた。ここで、他の実施形態においては、１つのゲームアプリケーションにおいて、複数のコントローラが付加操作装置に装着して用いられてもよい。例えば、他の実施形態においては、右コントローラ４が付加操作装置に装着されるとともに、左コントローラ３が他の付加操作装置に装着され、これら２つの操作装置が、ゲームアプリケーションにおけるゲーム操作に用いられてもよい。このとき、左コントローラ３はマーカを検出する機能を有していないので、ゲームシステム１は、加速度センサおよび／または角速度センサによる検出結果に基づいて左コントローラ３に対するゲーム操作を検出してもよい。また、他の実施形態においては、１つの付加操作装置に右コントローラ４と左コントローラ３とが同時に装着されてもよい。
【０２７６】
また、他の実施形態においては、右コントローラ４は、付加操作装置に直接装着されなくてもよく、付加操作装置に間接的に装着されてもよい。例えば、他の実施形態においては、右コントローラ４は保持装置に装着され、右コントローラ４が装着された保持装置が各付加操作装置のいずれかに装着されてもよい。
【０２７７】
上記「判別されたサブ装置の種類に応じたゲーム処理」におけるゲーム処理の内容は任意である。上記実施形態においては、上記ゲーム処理として、ゲームシステム１は、サブ装置の種類に応じて異なる操作を受け付け、当該操作に応じてオブジェクトの動作を制御する処理（ステップＳ９およびＳ１０）、サブ装置の種類に応じて異なる位置および姿勢で仮想カメラを設定する処理（ステップＳ１１）、および、サブ装置の種類に応じて異なるゲーム画像を生成する処理（ステップＳ１２）を実行する。なお、他の実施形態においては、上記ゲーム処理は、ユーザの操作対象となるオブジェクトに設定されるゲームパラメータ（例えば、強さ、素早さ、または体力等を示すパラメータ）であって、サブ装置の種類に応じて異なる値に設定されたゲームパラメータを用いて実行されるゲーム処理であってもよい。このとき、ゲーム画像はサブ装置の種類に関わらず同じであってもよい。
【産業上の利用可能性】
【０２７８】
以上のように、上記実施形態は、付加装置（すなわち、サブ装置）が使用されるゲームアプリケーションにおける興趣性を向上すること等を目的として、例えばゲームシステムまたはゲームプログラム等に利用可能である。
【符号の説明】
【０２７９】
１  ゲームシステム
２  本体装置
３  左コントローラ
４  右コントローラ
６  第１付加操作装置
７  第２付加操作装置
８  第３付加操作装置
８１  プロセッサ
１１４  加速度センサ
１１５  角速度センサ
１２３  赤外撮像部
２００  プレイヤキャラクタ
２０１  自動車オブジェクト
２０２  飛行機オブジェクト
２０３  船オブジェクト
６０２  ハンドル
６０４  左レバー
６０５  右レバー
６１２  第１基本マーカ
６１３  左レバーマーカ
６１４  右レバーマーカ
７０２  把持部
７０４  ボタン
７１１  第２基本マーカ
７１２  ボタンマーカ
８０２  左ハンドル
８１２  左ハンドルマーカ
８１３  右ハンドルマーカ
【図１】
2019115481.tif 000003
【図２】
2019115481.tif 000004
【図３】
2019115481.tif 000005
【図４】
2019115481.tif 000006
【図５】
2019115481.tif 000007
【図６】
2019115481.tif 000008
【図７】
2019115481.tif 000009
【図８】
2019115481.tif 000010
【図９】
2019115481.tif 000011
【図１０】
2019115481.tif 000012
【図１１】
2019115481.tif 000013
【図１２】
2019115481.tif 000014
【図１３】
2019115481.tif 000015
【図１４】
2019115481.tif 000016
【図１５】
2019115481.tif 000017
【図１６】
2019115481.tif 000018
【図１７】
2019115481.tif 000019
【図１８】
2019115481.tif 000020
【図１９】
2019115481.tif 000021
【図２０】
2019115481.tif 000022
【図２１】
2019115481.tif 000023
【図２２】
2019115481.tif 000024
【図２３】
2019115481.tif 000025
【図２４】
2019115481.tif 000026
【図２５】
2019115481.tif 000027
【図２６】
2019115481.tif 000028
【図２７】
2019115481.tif 000029
【図２８】
2019115481.tif 000030
【図２９】
2019115481.tif 000031
【手続補正書】
【提出日】平成31年2月8日(2019.2.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数種類のサブ装置と、複数種類のサブ装置のいずれに対しても着脱可能なメイン装置とを含むゲームシステムであって、所定のゲームアプリケーションを実行するゲームシステムのコンピュータによって実行される情報処理プログラムであって、
前記所定のゲームアプリケーションの実行中において、前記複数種類のサブ装置のうちで前記メイン装置が装着されたサブ装置の種類を判別する判別手段と、
前記所定のゲームアプリケーションの実行中において、前記メイン装置、および／または、当該メイン装置が装着された前記サブ装置を用いたゲーム操作に基づくゲーム処理を実行するゲーム処理実行手段として、前記コンピュータを機能させ、
前記ゲーム処理実行手段は、前記判別手段によって判別された前記サブ装置の種類に応じたゲーム処理を実行し、
前記メイン装置は、撮像装置を備え、
前記複数種類のサブ装置のうちの少なくともいずれか１種類のサブ装置は、
当該サブ装置に装着された前記メイン装置の前記撮像装置によって撮像可能な被検出部と、
ユーザによる操作に応じて動く可動部とを備え、
前記ユーザの操作に応じて前記可動部が動かされることによって、当該可動部を備えるサブ装置に装着された前記メイン装置と、当該サブ装置の前記被検出部との相対位置および／または相対姿勢が変化し、
前記ゲーム処理実行手段は、前記撮像画像に含まれる前記被検出部の少なくとも一部を示す第１被検出部画像の位置、形状、および向きのうち少なくとも１つに基づいて、前記ユーザの操作を検出し、当該検出されたユーザの操作に基づくゲーム処理を実行する、情報処理プログラム。
【請求項２】
前記判別手段は、前記撮像画像に基づいて、前記メイン装置が装着されたサブ装置の種類を判別する、請求項１に記載の情報処理プログラム。
【請求項３】
前記複数種類のサブ装置は、それぞれ、当該サブ装置に装着された前記メイン装置の前記撮像装置によって撮像可能な被検出部を備え、
前記判別手段は、前記撮像画像に含まれる前記第１被検出部画像および／または第２被検出部画像の位置、形状、および、向きのうち少なくとも１つに基づいて、前記メイン装置が装着されたサブ装置の種類を判別する、請求項２に記載の情報処理プログラム。
【請求項４】
前記被検出部は、前記可動部における位置であって、当該可動部を備えるサブ装置に装着された前記メイン装置が備える前記撮像装置によって撮像可能な位置に設けられ、
前記ユーザの操作に応じて前記可動部が動かされることに応じて前記被検出部が動くことによって、前記メイン装置と当該被検出部との相対位置および／または相対姿勢が変化する、請求項１から請求項３のいずれか１項に記載の情報処理プログラム。
【請求項５】
前記メイン装置は、前記可動部に装着可能であり、
前記ユーザの操作に応じて前記可動部が動かされることに応じて当該可動部に装着された前記メイン装置が動くことによって、当該メイン装置と前記被検出部との相対位置および／または相対姿勢が変化する、請求項１から請求項３のいずれか１項に記載の情報処理プログラム。
【請求項６】
前記ゲーム処理実行手段は、判別された前記サブ装置の種類に応じて異なるゲーム画像を生成する、請求項１から請求項５のいずれか１項に記載の情報処理プログラム。
【請求項７】
前記ゲーム処理実行手段は、
前記メイン装置、および／または、当該メイン装置が装着された前記サブ装置を用いたゲーム操作に基づいて、仮想空間内に配置されるオブジェクトを制御し、
判別された前記サブ装置の種類に応じて前記オブジェクトを変化させる、請求項６に記載の情報処理プログラム。
【請求項８】
前記オブジェクトは、ゲームキャラクタが搭乗可能な乗物を表すオブジェクトである、請求項７に記載の情報処理プログラム。
【請求項９】
前記メイン装置は、当該メイン装置に対するユーザの操作を検出するための操作検出部を複数種類備え、
前記ゲーム処理手段は、前記メイン装置が所定の種類のサブ装置に装着されていると判別された場合、前記複数種類の前記操作検出部のうちで、判別されたサブ装置の種類に応じた前記操作検出部による検出結果に基づいてゲーム処理を実行する、請求項１から請求項８のいずれか１項に記載の情報処理プログラム。
【請求項１０】
前記メイン装置は、当該メイン装置に対するユーザの操作を検出するための操作検出部を備え、
前記ゲーム処理手段は、前記操作検出部による検出結果に応じて実行されるゲーム処理の内容を、判別された前記サブ装置の種類に基づいて決定する、請求項１から請求項９のいずれか１項に記載の情報処理プログラム。
【請求項１１】
前記ゲーム処理手段は、判別された前記サブ装置の種類に基づいて、仮想空間内に配置される仮想カメラの位置および／または姿勢を制御する、請求項１から請求項１０のいずれか１項に記載の情報処理プログラム。
【請求項１２】
前記判別手段は、前記複数種類のサブ装置のいずれに対しても前記メイン装置が装着されていないことをさらに判別する、請求項１から請求項１１のいずれか１項に記載の情報処理プログラム。
【請求項１３】
前記ゲーム処理実行手段は、前記複数種類のサブ装置のいずれに対しても前記メイン装置が装着されていないと判別された場合、当該メイン装置が当該複数種類のサブ装置のいずれかに装着されている場合とは異なるゲーム処理を実行する、請求項１２に記載の情報処理プログラム。
【請求項１４】
前記ゲームシステムは、記憶部をさらに備え、
前記情報処理プログラムは、
前記メイン装置が所定の種類のサブ装置に装着されていると判別された場合、当該所定の種類のサブ装置に対する当該メイン装置の向きに関する装置向き情報を前記記憶部に記憶する記憶制御手段として前記コンピュータをさらに機能させ、
前記ゲーム処理実行手段は、
前記メイン装置に対するユーザによる方向操作に基づいてゲーム処理を実行し、
前記メイン装置が前記所定の種類のサブ装置に装着されていると判別された装着状態から、前記複数種類のサブ装置のいずれに対しても当該メイン装置が装着されていないと判別された非装着状態へと変化した場合、前記方向操作によって指定される方向と、当該方向への操作が行われたことに応じて実行されるゲーム処理の内容との関係を、当該装着状態において前記記憶部に記憶された前記装置向き情報に基づいて決定する、請求項１２または請求項１３に記載の情報処理プログラム。
【請求項１５】
前記複数種類のサブ装置のうちの少なくともいずれか１種類のサブ装置が備える前記被検出部は、第１部分と第２部分とを含み、
前記情報処理プログラムは、
前記撮像画像に基づいて、前記第１部分を認識し、前記第２部分を認識する認識手段として前記コンピュータをさらに機能させ、
前記判別手段は、
前記第１部分を示す第１部分画像の位置、形状、および、向きのうち少なくとも１つに基づいて、前記メイン装置が装着されたサブ装置の種類を判別し、
前記サブ装置に装着された前記メイン装置の状態として、前記第１部分が認識され、前記第２部分が認識されない第１状態と、前記第１部分および前記第２部分が認識される第２状態とを判別する、請求項３から請求項５のいずれか１項に記載の情報処理プログラム。
【請求項１６】
前記ゲーム処理実行手段は、前記メイン装置が前記第１状態であると判別される場合、第１のゲーム処理を実行し、前記メイン装置が前記第２状態であると判別される場合、当該第１のゲーム処理とは異なる第２のゲーム処理を実行する、請求項１５に記載の情報処理プログラム。
【請求項１７】
前記複数種類のサブ装置のうちの少なくともいずれか１種類のサブ装置が備える前記被検出部は、第１部分と第２部分とを含み、
前記情報処理プログラムは、
前記撮像画像に基づいて、前記第１部分を認識し、前記第２部分を認識する認識手段として前記コンピュータをさらに機能させ、
前記判別手段は、
前記第１部分を示す第１部分画像の位置、形状、および、向きのうち少なくとも１つに基づいて、前記メイン装置が装着されたサブ装置の種類を判別し、
前記第１部分の認識結果と前記第２部分の認識結果とに基づいて、前記サブ装置に対して前記メイン装置が装着される度合いを判別する、請求項３から請求項５のいずれか１項に記載の情報処理プログラム。
【請求項１８】
前記ゲーム処理実行手段は、前記サブ装置に対して前記メイン装置が装着される度合いに応じたゲーム処理を実行する、請求項１７に記載の情報処理プログラム。
【請求項１９】
前記複数種類のサブ装置のうちの少なくともいずれか１種類のサブ装置は、ユーザによる操作に応じて動く可動部をさらに備え、
前記ユーザの操作に応じて前記可動部が動かされることによって、当該可動部を備えるサブ装置に装着された前記メイン装置と、当該サブ装置の前記被検出部との相対位置が変化し、
前記ゲーム処理実行手段は、
前記第１部分を示す第１部分画像の位置、形状、および向きのうち少なくとも１つに基づいて、前記ユーザの第１の種類の操作を検出し、検出された第１の種類の操作に基づくゲーム処理を実行し、
前記第２部分を示す第２部分画像の位置、形状、および向きのうち少なくとも１つに基づいて、前記ユーザの第２の種類の操作を検出し、検出された第２の種類の操作に基づくゲーム処理を実行する、請求項１５から請求項１８のいずれか１項に記載の情報処理プログラム。
【請求項２０】
複数種類のサブ装置と、複数種類のサブ装置のいずれに対しても着脱可能なメイン装置とを含むゲームシステムであって、所定のゲームアプリケーションを実行するゲームシステムのコンピュータによって実行される情報処理プログラムであって、
前記所定のゲームアプリケーションの実行中において、前記複数種類のサブ装置のうちで前記メイン装置が装着されたサブ装置の種類を判別する判別手段と、
前記所定のゲームアプリケーションの実行中において、前記メイン装置、および／または、当該メイン装置が装着された前記サブ装置を用いたゲーム操作に基づくゲーム処理を実行するゲーム処理実行手段として、前記コンピュータを機能させ、
前記ゲーム処理実行手段は、前記判別手段によって判別された前記サブ装置の種類に基づいて、仮想空間内に配置される仮想カメラの位置および／または姿勢を制御する、情報処理プログラム。
【請求項２１】
前記メイン装置は、撮像装置を備え、
前記判別手段は、前記撮像装置によって撮像された撮像画像に基づいて、前記メイン装置が装着されたサブ装置の種類を判別する、請求項２０に記載の情報処理プログラム。
【請求項２２】
前記複数種類のサブ装置は、それぞれ、当該サブ装置に装着された前記メイン装置の前記撮像装置によって撮像可能な被検出部を備え、
前記判別手段は、前記撮像画像に含まれる前記被検出部の少なくとも一部を示す第１被検出部画像の位置、形状、および、向きのうち少なくとも１つに基づいて、前記メイン装置が装着されたサブ装置の種類を判別する、請求項２１に記載の情報処理プログラム。
【請求項２３】
前記複数種類のサブ装置のうちの少なくともいずれか１種類のサブ装置は、ユーザによる操作に応じて動く可動部をさらに備え、
前記ユーザの操作に応じて前記可動部が動かされることによって、当該可動部を備えるサブ装置に装着された前記メイン装置と、当該サブ装置の前記被検出部との相対位置および／または相対姿勢が変化し、
前記ゲーム処理実行手段は、前記撮像画像に含まれる前記被検出部の少なくとも一部を示す前記第１被検出部画像および／または第２被検出部画像の位置、形状、および向きのうち少なくとも１つに基づいて、前記ユーザの操作を検出し、当該検出されたユーザの操作に基づくゲーム処理を実行する、請求項２２に記載の情報処理プログラム。
【請求項２４】
前記被検出部は、前記可動部における位置であって、当該可動部を備えるサブ装置に装着された前記メイン装置が備える前記撮像装置によって撮像可能な位置に設けられ、
前記ユーザの操作に応じて前記可動部が動かされることに応じて前記被検出部が動くことによって、前記メイン装置と当該被検出部との相対位置および／または相対姿勢が変化する、請求項２３に記載の情報処理プログラム。
【請求項２５】
前記メイン装置は、前記可動部に装着可能であり、
前記ユーザの操作に応じて前記可動部が動かされることに応じて当該可動部に装着された前記メイン装置が動くことによって、当該メイン装置と前記被検出部との相対位置および／または相対姿勢が変化する、請求項２３に記載の情報処理プログラム。
【請求項２６】
前記ゲーム処理実行手段は、判別された前記サブ装置の種類に応じて異なるゲーム画像を生成する、請求項２０から請求項２５のいずれか１項に記載の情報処理プログラム。
【請求項２７】
前記ゲーム処理実行手段は、
前記メイン装置、および／または、当該メイン装置が装着された前記サブ装置を用いたゲーム操作に基づいて、仮想空間内に配置されるオブジェクトを制御し、
判別された前記サブ装置の種類に応じて前記オブジェクトを変化させる、請求項２６に記載の情報処理プログラム。
【請求項２８】
前記オブジェクトは、ゲームキャラクタが搭乗可能な乗物を表すオブジェクトである、請求項２７に記載の情報処理プログラム。
【請求項２９】
前記メイン装置は、当該メイン装置に対するユーザの操作を検出するための操作検出部を複数種類備え、
前記ゲーム処理手段は、前記メイン装置が所定の種類のサブ装置に装着されていると判別された場合、前記複数種類の前記操作検出部のうちで、判別されたサブ装置の種類に応じた前記操作検出部による検出結果に基づいてゲーム処理を実行する、請求項２０から請求項２８のいずれか１項に記載の情報処理プログラム。
【請求項３０】
前記メイン装置は、当該メイン装置に対するユーザの操作を検出するための操作検出部を備え、
前記ゲーム処理手段は、前記操作検出部による検出結果に応じて実行されるゲーム処理の内容を、判別された前記サブ装置の種類に基づいて決定する、請求項２０から請求項２９のいずれか１項に記載の情報処理プログラム。
【請求項３１】
前記判別手段は、前記複数種類のサブ装置のいずれに対しても前記メイン装置が装着されていないことをさらに判別する、請求項２０から請求項３０のいずれか１項に記載の情報処理プログラム。
【請求項３２】
前記ゲーム処理実行手段は、前記複数種類のサブ装置のいずれに対しても前記メイン装置が装着されていないと判別された場合、当該メイン装置が当該複数種類のサブ装置のいずれかに装着されている場合とは異なるゲーム処理を実行する、請求項３１に記載の情報処理プログラム。
【請求項３３】
前記ゲームシステムは、記憶部をさらに備え、
前記情報処理プログラムは、
前記メイン装置が所定の種類のサブ装置に装着されていると判別された場合、当該所定の種類のサブ装置に対する当該メイン装置の向きに関する装置向き情報を前記記憶部に記憶する記憶制御手段として前記コンピュータをさらに機能させ、
前記ゲーム処理実行手段は、
前記メイン装置に対するユーザによる方向操作に基づいてゲーム処理を実行し、
前記メイン装置が前記所定の種類のサブ装置に装着されていると判別された装着状態から、前記複数種類のサブ装置のいずれに対しても当該メイン装置が装着されていないと判別された非装着状態へと変化した場合、前記方向操作によって指定される方向と、当該方向への操作が行われたことに応じて実行されるゲーム処理の内容との関係を、当該装着状態において前記記憶部に記憶された前記装置向き情報に基づいて決定する、請求項３１または請求項３２に記載の情報処理プログラム。
【請求項３４】
前記複数種類のサブ装置のうちの少なくともいずれか１種類のサブ装置が備える前記被検出部は、第１部分と第２部分とを含み、
前記情報処理プログラムは、
前記撮像画像に基づいて、前記第１部分を認識し、前記第２部分を認識する認識手段として前記コンピュータをさらに機能させ、
前記判別手段は、
前記第１部分を示す第１部分画像の位置、形状、および、向きのうち少なくとも１つに基づいて、前記メイン装置が装着されたサブ装置の種類を判別し、
前記サブ装置に装着された前記メイン装置の状態として、前記第１部分が認識され、前記第２部分が認識されない第１状態と、前記第１部分および前記第２部分が認識される第２状態とを判別する、請求項２２から請求項２５のいずれか１項に記載の情報処理プログラム。
【請求項３５】
前記ゲーム処理実行手段は、前記メイン装置が前記第１状態であると判別される場合、第１のゲーム処理を実行し、前記メイン装置が前記第２状態であると判別される場合、当該第１のゲーム処理とは異なる第２のゲーム処理を実行する、請求項３４に記載の情報処理プログラム。
【請求項３６】
前記複数種類のサブ装置のうちの少なくともいずれか１種類のサブ装置が備える前記被検出部は、第１部分と第２部分とを含み、
前記情報処理プログラムは、
前記撮像画像に基づいて、前記第１部分を認識し、前記第２部分を認識する認識手段として前記コンピュータをさらに機能させ、
前記判別手段は、
前記第１部分を示す第１部分画像の位置、形状、および、向きのうち少なくとも１つに基づいて、前記メイン装置が装着されたサブ装置の種類を判別し、
前記第１部分の認識結果と前記第２部分の認識結果とに基づいて、前記サブ装置に対して前記メイン装置が装着される度合いを判別する、請求項２２から請求項２５のいずれか１項に記載の情報処理プログラム。
【請求項３７】
前記ゲーム処理実行手段は、前記サブ装置に対して前記メイン装置が装着される度合いに応じたゲーム処理を実行する、請求項３６に記載の情報処理プログラム。
【請求項３８】
前記複数種類のサブ装置のうちの少なくともいずれか１種類のサブ装置は、ユーザによる操作に応じて動く可動部をさらに備え、
前記ユーザの操作に応じて前記可動部が動かされることによって、当該可動部を備えるサブ装置に装着された前記メイン装置と、当該サブ装置の前記被検出部との相対位置が変化し、
前記ゲーム処理実行手段は、
前記第１部分を示す第１部分画像の位置、形状、および向きのうち少なくとも１つに基づいて、前記ユーザの第１の種類の操作を検出し、検出された第１の種類の操作に基づくゲーム処理を実行し、
前記第２部分を示す第２部分画像の位置、形状、および向きのうち少なくとも１つに基づいて、前記ユーザの第２の種類の操作を検出し、検出された第２の種類の操作に基づくゲーム処理を実行する、請求項３４から請求項３７のいずれか１項に記載の情報処理プログラム。
【請求項３９】
複数種類のサブ装置と、複数種類のサブ装置のいずれに対しても着脱可能なメイン装置とを含み、所定のゲームアプリケーションを実行する情報処理システムであって、
前記所定のゲームアプリケーションの実行中において、前記複数種類のサブ装置のうちで前記メイン装置が装着されたサブ装置の種類を判別する判別部と、
前記所定のゲームアプリケーションの実行中において、前記メイン装置、および／または、当該メイン装置が装着された前記サブ装置を用いたゲーム操作に基づくゲーム処理を実行するゲーム処理実行部とを備え、
前記ゲーム処理実行部は、前記判別部によって判別された前記サブ装置の種類に応じたゲーム処理を実行し、
前記メイン装置は、撮像装置を備え、
前記複数種類のサブ装置のうちの少なくともいずれか１種類のサブ装置は、
当該サブ装置に装着された前記メイン装置の前記撮像装置によって撮像可能な被検出部と、
ユーザによる操作に応じて動く可動部とを備え、
前記ユーザの操作に応じて前記可動部が動かされることによって、当該可動部を備えるサブ装置に装着された前記メイン装置と、当該サブ装置の前記被検出部との相対位置および／または相対姿勢が変化し、
前記ゲーム処理実行部は、前記撮像画像に含まれる前記被検出部の少なくとも一部を示す被検出部画像の位置、形状、および向きのうち少なくとも１つに基づいて、前記ユーザの操作を検出し、当該検出されたユーザの操作に基づくゲーム処理を実行する、情報処理システム。
【請求項４０】
複数種類のサブ装置と、複数種類のサブ装置のいずれに対しても着脱可能なメイン装置とを含み、所定のゲームアプリケーションを実行する情報処理システムであって、
前記所定のゲームアプリケーションの実行中において、前記複数種類のサブ装置のうちで前記メイン装置が装着されたサブ装置の種類を判別する判別部と、
前記所定のゲームアプリケーションの実行中において、前記メイン装置、および／または、当該メイン装置が装着された前記サブ装置を用いたゲーム操作に基づくゲーム処理を実行するゲーム処理実行部とを備え、
前記ゲーム処理実行手段は、前記判別手段によって判別された前記サブ装置の種類に基づいて、仮想空間内に配置される仮想カメラの位置および／または姿勢を制御する、情報処理システム。
【請求項４１】
複数種類のサブ装置と、複数種類のサブ装置のいずれに対しても着脱可能なメイン装置とを含むゲームシステムに含まれ、所定のゲームアプリケーションを実行する情報処理装置であって、
前記所定のゲームアプリケーションの実行中において、前記複数種類のサブ装置のうちで前記メイン装置が装着されたサブ装置の種類を判別する判別部と、
前記所定のゲームアプリケーションの実行中において、前記メイン装置、および／または、当該メイン装置が装着された前記サブ装置を用いたゲーム操作に基づくゲーム処理を実行するゲーム処理実行部とを備え、
前記ゲーム処理実行部は、前記判別部によって判別された前記サブ装置の種類に応じたゲーム処理を実行し、
前記メイン装置は、撮像装置を備え、
前記複数種類のサブ装置のうちの少なくともいずれか１種類のサブ装置は、
当該サブ装置に装着された前記メイン装置の前記撮像装置によって撮像可能な被検出部と、
ユーザによる操作に応じて動く可動部とを備え、
前記ユーザの操作に応じて前記可動部が動かされることによって、当該可動部を備えるサブ装置に装着された前記メイン装置と、当該サブ装置の前記被検出部との相対位置および／または相対姿勢が変化し、
前記ゲーム処理実行部は、前記撮像画像に含まれる前記被検出部の少なくとも一部を示す被検出部画像の位置、形状、および向きのうち少なくとも１つに基づいて、前記ユーザの操作を検出し、当該検出されたユーザの操作に基づくゲーム処理を実行する、情報処理装置。
【請求項４２】
複数種類のサブ装置と、複数種類のサブ装置のいずれに対しても着脱可能なメイン装置とを含むゲームシステムに含まれ、所定のゲームアプリケーションを実行する情報処理装置であって、
前記所定のゲームアプリケーションの実行中において、前記複数種類のサブ装置のうちで前記メイン装置が装着されたサブ装置の種類を判別する判別部と、
前記所定のゲームアプリケーションの実行中において、前記メイン装置、および／または、当該メイン装置が装着された前記サブ装置を用いたゲーム操作に基づくゲーム処理を実行するゲーム処理実行部とを備え、
前記ゲーム処理実行手段は、前記判別手段によって判別された前記サブ装置の種類に基づいて、仮想空間内に配置される仮想カメラの位置および／または姿勢を制御する、情報処理装置。
【請求項４３】
複数種類のサブ装置と、複数種類のサブ装置のいずれに対しても着脱可能なメイン装置とを含み、所定のゲームアプリケーションを実行する情報処理システムにおいて実行される情報処理方法であって、
前記所定のゲームアプリケーションの実行中において、前記複数種類のサブ装置のうちで前記メイン装置が装着されたサブ装置の種類を判別する判別ステップと、
前記所定のゲームアプリケーションの実行中において、前記メイン装置、および／または、当該メイン装置が装着された前記サブ装置を用いたゲーム操作に基づくゲーム処理を実行するゲーム処理実行ステップとを備え、
前記ゲーム処理実行ステップにおいては、前記判別ステップにおいて判別された前記サブ装置の種類に応じたゲーム処理を実行し、
前記メイン装置は、撮像装置を備え、
前記複数種類のサブ装置のうちの少なくともいずれか１種類のサブ装置は、
当該サブ装置に装着された前記メイン装置の前記撮像装置によって撮像可能な被検出部と、
ユーザによる操作に応じて動く可動部とを備え、
前記ユーザの操作に応じて前記可動部が動かされることによって、当該可動部を備えるサブ装置に装着された前記メイン装置と、当該サブ装置の前記被検出部との相対位置および／または相対姿勢が変化し、
前記ゲーム処理実行ステップにおいては、前記撮像画像に含まれる前記被検出部の少なくとも一部を示す被検出部画像の位置、形状、および向きのうち少なくとも１つに基づいて、前記ユーザの操作を検出し、当該検出されたユーザの操作に基づくゲーム処理を実行する、情報処理方法。
【請求項４４】
複数種類のサブ装置と、複数種類のサブ装置のいずれに対しても着脱可能なメイン装置とを含み、所定のゲームアプリケーションを実行する情報処理システムにおいて実行される情報処理方法であって、
前記所定のゲームアプリケーションの実行中において、前記複数種類のサブ装置のうちで前記メイン装置が装着されたサブ装置の種類を判別する判別ステップと、
前記所定のゲームアプリケーションの実行中において、前記メイン装置、および／または、当該メイン装置が装着された前記サブ装置を用いたゲーム操作に基づくゲーム処理を実行するゲーム処理実行ステップとを備え、
前記ゲーム処理実行ステップにおいては、前記判別ステップにおいて判別された前記サブ装置の種類に基づいて、仮想空間内に配置される仮想カメラの位置および／または姿勢を制御する、情報処理方法。