(57)【要約】【課題】操作に応じたゲーム状況を振動によって具体的に表現する。【解決手段】ゲームシステムは、操作装置と情報処理装置を含む。操作装置は、慣性センサと、振動部とを備える。操作装置は、慣性センサからのデータを含む操作データを情報処理装置へ送信する。ゲームシステムは、慣性センサからのデータを含む操作データを取得する。ゲームシステムは、操作データに基づいて、操作装置を回す操作の速さを判定する。ゲームシステムは、回す操作の速さに応じた強さで振動部を振動させる。【選択図】図９
2018108296.tif 000002
【特許請求の範囲】
【請求項１】
操作装置と情報処理装置を含むゲームシステムであって、
前記操作装置は、
慣性センサと、
前記慣性センサからのデータを含む操作データを前記情報処理装置へ送信する操作データ送信部と、
前記情報処理装置から取得される振動信号に基づいて振動する振動部とを備え、
前記情報処理装置は、
前記操作データを取得する操作データ取得部と、
前記操作データに基づいて、前記操作装置を回す操作の速さを判定する判定部と、
前記回す操作の速さに応じた強さで前記振動部を振動させるための振動信号を生成する振動信号生成部と、
前記振動信号を前記操作装置へ送信する振動信号送信部とを備える、ゲームシステム。
【請求項２】
前記振動信号生成部は、前記回す操作の速さが相対的に速い場合に、前記回す操作の速さが相対的に遅い場合に比べて前記振動部がより強く振動するように前記振動信号を生成する、請求項１に記載のゲームシステム。
【請求項３】
前記振動信号生成部は、前記振動部が振動する周波数が前記回す操作の速さに応じて変化するよう前記振動信号を生成する、請求項１または請求項２に記載のゲームシステム。
【請求項４】
前記振動信号生成部は、前記振動信号として、振動の波形を示す信号を生成し、
前記振動部は、前記振動信号が示す波形に基づいて振動し、
前記振動信号生成部は、前記振動信号が示す波形が前記回す操作の速さに応じて変化するよう前記振動信号を生成する、請求項１から請求項３のいずれか１項に記載のゲームシステム。
【請求項５】
前記判定部は、前記操作装置を回す操作を検知し、
前記振動信号生成部は、前記回す操作が検知されることに応じて前記振動部の振動の強さが変化するように前記振動信号を生成する、請求項１から請求項４のいずれか１項に記載のゲームシステム。
【請求項６】
前記判定部は、前記操作装置を回す操作を検知し、
前記振動信号生成部は、前記回す操作が検知されることに応じて前記振動部に所定の振動を実行させるように前記振動信号を生成する、請求項１から請求項４のいずれか１項に記載のゲームシステム。
【請求項７】
前記判定部は、少なくとも所定軸回りに関する前記操作装置の姿勢を前記慣性センサの出力に基づいて算出し、
前記振動信号生成部は、前記回す操作の速さに応じた強さの第１の振動と、前記操作装置の姿勢が所定量変化するごとに実行される第２の振動とを前記振動部に実行させるように前記振動信号を生成する、請求項１から請求項４のいずれか１項に記載のゲームシステム。
【請求項８】
前記判定部は、前記慣性センサの出力における周期的な変化を特定し、特定された周期的な変化に基づいて前記回す操作を検知する、請求項１から請求項７のいずれか１項に記載のゲームシステム。
【請求項９】
前記判定部は、前記慣性センサの出力に基づく角速度であって、所定の２軸に関する前記操作装置の角速度に基づいて前記回す操作に関する前記操作装置の回転角度を判別することによって、前記回す操作を検知する、請求項１から請求項８のいずれか１項に記載のゲームシステム。
【請求項１０】
前記判定部は、少なくとも所定軸回りに関する前記操作装置の姿勢を前記慣性センサの出力に基づいて算出し、算出される姿勢に基づいて前記回す操作を検知する、請求項１から請求項９のいずれか１項に記載のゲームシステム。
【請求項１１】
操作装置と情報処理装置を含むゲームシステムであって、
前記操作装置は、
慣性センサと、
前記慣性センサからのデータを含む操作データを前記情報処理装置へ送信する操作データ送信部と、
前記情報処理装置から取得される振動信号に基づいて振動する振動部とを備え、
前記情報処理装置は、
前記操作データを取得する操作データ取得部と、
前記操作データに基づいて、前記操作装置を動かす操作の速さを判定する判定部と、
前記動かす操作の速さに応じた強さで前記振動部を振動させるための振動信号を生成する振動信号生成部と、
前記振動信号を前記操作装置へ送信する振動信号送信部とを備える、ゲームシステム。
【請求項１２】
操作装置と通信可能な情報処理装置のコンピュータにおいて実行されるゲームプログラムであって、
前記操作装置は、
慣性センサと、
前記慣性センサからのデータを含む操作データを前記情報処理装置へ送信する操作データ送信部と、
前記情報処理装置から取得される振動信号に基づいて振動する振動部とを備え、
前記操作データを取得する操作データ取得手段と、
前記操作データに基づいて、前記操作装置を回す操作の速さを判定する判定手段と、
前記回す操作の速さに応じた強さで前記振動部を振動させるための振動信号を生成する振動信号生成手段として前記コンピュータを機能させる、ゲームプログラム。
【請求項１３】
前記振動信号生成手段は、前記回す操作の速さが相対的に速い場合に、前記回す操作の速さが相対的に遅い場合に比べて前記振動部がより強く振動するように前記振動信号を生成する、請求項１２に記載のゲームプログラム。
【請求項１４】
前記振動信号生成手段は、前記振動部が振動する周波数が前記回す操作の速さに応じて変化するよう前記振動信号を生成する、請求項１２または請求項１３に記載のゲームプログラム。
【請求項１５】
前記振動信号生成手段は、前記振動信号として、振動の波形を示す信号を生成し、
前記振動部は、前記振動信号が示す波形に基づいて振動し、
前記振動信号生成手段は、前記振動信号が示す波形が前記回す操作の速さに応じて変化するよう前記振動信号を生成する、請求項１２から請求項１４のいずれか１項に記載のゲームプログラム。
【請求項１６】
前記判定手段は、前記操作装置を回す操作を検知し、
前記振動信号生成手段は、前記回す操作が検知されることに応じて前記振動部の振動の強さが変化するように前記振動信号を生成する、請求項１２から請求項１５のいずれか１項に記載のゲームプログラム。
【請求項１７】
前記判定手段は、前記操作装置を回す操作を検知し、
前記振動信号生成手段は、前記回す操作が検知されることに応じて前記振動部に所定の振動を実行させるように前記振動信号を生成する、請求項１２から請求項１５のいずれか１項に記載のゲームプログラム。
【請求項１８】
前記判定手段は、少なくとも所定軸回りに関する前記操作装置の姿勢を前記慣性センサの出力に基づいて算出し、
前記振動信号生成手段は、前記回す操作の速さに応じた強さの第１の振動と、前記操作装置の姿勢が所定量変化するごとに実行される第２の振動とを前記振動部に実行させるように前記振動信号を生成する、請求項１２から請求項１５のいずれか１項に記載のゲームプログラム。
【請求項１９】
前記判定手段は、前記慣性センサの出力における周期的な変化を特定し、特定された周期的な変化に基づいて前記回す操作を検知する、請求項１２から請求項１８のいずれか１項に記載のゲームプログラム。
【請求項２０】
前記判定手段は、前記慣性センサの出力に基づく角速度であって、所定の２軸に関する前記操作装置の角速度に基づいて前記回す操作に関する前記操作装置の回転角度を判別することによって、前記回す操作を検知する、請求項１２から請求項１９のいずれか１項に記載のゲームプログラム。
【請求項２１】
前記判定手段は、少なくとも所定軸回りに関する前記操作装置の姿勢を前記慣性センサの出力に基づいて算出し、算出される姿勢に基づいて前記回す操作を検知する、請求項１２から請求項２０のいずれか１項に記載のゲームプログラム。
【請求項２２】
操作装置と通信可能な情報処理装置のコンピュータにおいて実行されるゲームプログラムであって、
前記操作装置は、
慣性センサと、
前記慣性センサからのデータを含む操作データを前記情報処理装置へ送信する操作データ送信部と、
前記情報処理装置から取得される振動信号に基づいて振動する振動部とを備え、
前記操作データを取得する操作データ取得手段と、
前記操作データに基づいて、前記操作装置を動かす操作の速さを判定する判定手段と、
前記動かす操作の速さに応じた強さで前記振動部を振動させるための振動信号を生成する振動信号生成手段として前記コンピュータを機能させる、ゲームプログラム。
【請求項２３】
操作装置と通信可能な情報処理装置であって、
前記操作装置は、
慣性センサと、
前記慣性センサからのデータを含む操作データを前記情報処理装置へ送信する操作データ送信部と、
前記情報処理装置から取得される振動信号に基づいて振動する振動部とを備え、
前記情報処理装置は、
前記操作データを取得する操作データ取得部と、
前記操作データに基づいて、前記操作装置を回す操作の速さを判定する判定部と、
前記回す操作の速さに応じた強さで前記振動部を振動させるための振動信号を生成する振動信号生成部と、
前記振動信号を前記操作装置へ送信する振動信号送信部とを備える、情報処理装置。
【請求項２４】
操作装置と通信可能な情報処理装置であって、
前記操作装置は、
慣性センサと、
前記慣性センサからのデータを含む操作データを前記情報処理装置へ送信する操作データ送信部と、
前記情報処理装置から取得される振動信号に基づいて振動する振動部とを備え、
前記情報処理装置は、
前記操作データを取得する操作データ取得部と、
前記操作データに基づいて、前記操作装置を動かす操作の速さを判定する判定部と、
前記動かす操作の速さに応じた強さで前記振動部を振動させるための振動信号を生成する振動信号生成部と、
前記振動信号を前記操作装置へ送信する振動信号送信部とを備える、情報処理装置。
【請求項２５】
操作装置と情報処理装置を含むゲームシステムにおいて実行される情報処理方法であって、
前記操作装置は、慣性センサと、振動部とを備え、
前記慣性センサからのデータを含む操作データを取得する操作データ取得ステップと、
前記操作データに基づいて、前記操作装置を回す操作の速さを判定する判定部と、
前記回す操作の速さに応じた強さで前記振動部を振動させる振動制御ステップとを備える、情報処理方法。
【請求項２６】
操作装置と情報処理装置を含むゲームシステムにおいて実行される情報処理方法であって、
前記操作装置は、慣性センサと、振動部とを備え、
前記慣性センサからのデータを含む操作データを取得する操作データ取得ステップと、
前記操作データに基づいて、前記操作装置を動かす操作の速さを判定する判定部と、
前記動かす操作の速さに応じた強さで前記振動部を振動させる振動制御ステップとを備える、情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、操作部を振動させるゲームを行うためのゲームシステム、ゲームプログラム、情報処理装置、および、情報処理方法に関する。
【背景技術】
【０００２】
従来、ゲーム中において所定のゲーム条件が満たされる場合に、コントローラを振動させるゲームシステムがある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−３４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来のように、単にコントローラを振動させるだけでは、ゲーム状況を十分に表現することができない場合があった。
【０００５】
それ故、本発明の目的は、操作に応じたゲーム状況を振動によってより具体的に表現することができるゲームシステム、ゲームプログラム、情報処理装置、および、情報処理方法を提供することである。
【課題を解決するための手段】
【０００６】
上記の課題を解決すべく、本発明は、以下の（１）〜（１１）の構成を採用した。
【０００７】
（１）
本発明の一例は、操作装置と情報処理装置を含むゲームシステムである。
操作装置は、慣性センサと、操作データ送信部と、振動部とを備える。操作データ送信部は、慣性センサからのデータを含む操作データを情報処理装置へ送信する。振動部は、情報処理装置から取得される振動信号に基づいて振動する。
情報処理装置は、操作データ取得部と、判定部と、振動信号生成部と、振動信号送信部とを備える。操作データ取得部は、操作データを取得する。判定部は、操作データに基づいて、操作装置を回す操作の速さを判定する。振動信号生成部は、回す操作の速さに応じた強さで振動部を振動させるための振動信号を生成する。振動信号送信部は、振動信号を操作装置へ送信する。
【０００８】
上記（１）の構成によれば、操作装置をゲーム条件に応じて単に振動させる場合に比べて、操作装置を回す操作の状態、および／または、当該回す操作に応じたゲーム状況をより具体的に表現することができる。これによって、操作装置の振動によってプレイヤにゲーム状況をより具体的に認識させることができる。
【０００９】
（２）
振動信号生成部は、回す操作の速さが相対的に速い場合に、回す操作の速さが相対的に遅い場合に比べて振動部がより強く振動するように振動信号を生成してもよい。
【００１０】
上記（２）の構成によれば、操作装置の振動によって、操作装置を回す操作の速さをプレイヤに直感的に認識させることができる。
【００１１】
（３）
振動信号生成部は、振動部が振動する周波数が回す操作の速さに応じて変化するよう振動信号を生成してもよい。
【００１２】
上記（３）の構成によれば、操作装置を回す操作の状態、および／または、当該回す操作に応じたゲーム状況を、振動の周波数によってより具体的に表現することができる。
【００１３】
（４）
振動信号生成部は、振動信号として、振動の波形を示す信号を生成してもよい。振動部は、振動信号が示す波形に基づいて振動してもよい。振動信号生成部は、振動信号が示す波形が回す操作の速さに応じて変化するよう振動信号を生成してもよい。
【００１４】
上記（４）の構成によれば、操作装置を回す操作の状態、および／または、当該回す操作に応じたゲーム状況を、振動の波形によってより具体的に表現することができる。
【００１５】
（５）
判定部は、操作装置を回す操作を検知してもよい。振動信号生成部は、回す操作が検知されることに応じて振動部の振動の強さが変化するように振動信号を生成してもよい。
【００１６】
上記（５）の構成によれば、振動部の振動の強さが変化することによって、回す操作が検知されたことをプレイヤに認識させることができる。
【００１７】
（６）
判定部は、操作装置を回す操作を検知してもよい。振動信号生成部は、回す操作が検知されることに応じて振動部に所定の振動を実行させるように振動信号を生成してもよい。
【００１８】
上記（６）の構成によれば、振動部の振動によって、回す操作が検知されたことをプレイヤに認識させることができる。
【００１９】
（７）
判定部は、少なくとも所定軸回りに関する操作装置の姿勢を慣性センサの出力に基づいて算出してもよい。振動信号生成部は、回す操作の速さに応じた強さの第１の振動と、操作装置の姿勢が所定量変化するごとに実行される第２の振動とを振動部に実行させるように振動信号を生成してもよい。
【００２０】
上記（７）の構成によれば、第１の振動の強さと、第２の振動が実行される頻度との両方によって、回す操作の速さをプレイヤに認識させることができる。
【００２１】
（８）
判定部は、慣性センサの出力における周期的な変化を特定し、特定された周期的な変化に基づいて回す操作を検知してもよい。
【００２２】
上記（８）の構成によれば、慣性センサの出力に基づいて回転操作を容易に検知することができる。例えば、１軸に関する慣性センサの出力に基づいて回転操作を検知することも可能である。
【００２３】
（９）
判定部は、慣性センサの出力に基づく角速度であって、所定の２軸に関する操作装置の角速度に基づいて回す操作に関する操作装置の回転角度を判別することによって、回す操作を検知してもよい。
【００２４】
上記（９）の構成によれば、慣性センサの出力に基づく角速度を用いることによって、回転操作を容易に検知することができる。
【００２５】
（１０）
判定部は、少なくとも所定軸回りに関する操作装置の姿勢を慣性センサの出力に基づいて算出し、算出される姿勢に基づいて回す操作を検知してもよい。
【００２６】
上記（１０）の構成によれば、慣性センサの出力に基づいて操作装置の姿勢を算出することによって、回転操作を容易に検知することができる。
【００２７】
（１１）
本発明の他の一例は、操作装置と情報処理装置を含むゲームシステムである。
操作装置は、慣性センサと、操作データ送信部と、振動部とを備える。
操作データ送信部は、慣性センサからのデータを含む操作データを情報処理装置へ送信する。振動部は、情報処理装置から取得される振動信号に基づいて振動する。
情報処理装置は、操作データ取得部と、判定部と、振動信号生成部と、振動信号送信部とを備える。操作データ取得部は、操作データを取得する。判定部は、操作データに基づいて、操作装置を動かす操作の速さを判定する。振動信号生成部は、動かす操作の速さに応じた強さで振動部を振動させるための振動信号を生成する。振動信号送信部は、振動信号を操作装置へ送信する。
【００２８】
上記（１１）の構成によれば、上記（１）の構成と同様、操作装置の振動によってプレイヤにゲーム状況をより具体的に認識させることができる。
【００２９】
なお、本発明の別の一例は、上記（１）〜（１１）におけるゲームシステムにおいて実行されるゲーム処理方法であってもよい。また、本発明の別の一例は、上記（１）〜（１１）における情報処理装置であってもよいし、上記（１）〜（１１）における各部と同等の各手段のいくつかとして当該情報処理装置のコンピュータを機能させる情報処理プログラムまたはゲームプログラムであってもよい。
【発明の効果】
【００３０】
本発明によれば、操作に応じたゲーム状況を具体的に表現することができる。
【図面の簡単な説明】
【００３１】
【図１】本体装置の一例に左コントローラの一例および右コントローラの一例を装着した状態を示す図
【図２】本体装置の一例から左コントローラの一例および右コントローラの一例をそれぞれ外した状態の一例を示す図
【図３】本体装置の一例を示す六面図
【図４】左コントローラの一例を示す六面図
【図５】右コントローラの一例を示す六面図
【図６】本体装置の内部構成の一例を示すブロック図
【図７】本体装置と左コントローラおよびコントローラ４との内部構成の一例を示すブロック図
【図８】本実施形態における情報処理システムを利用する様子の一例を示す図
【図９】本実施形態におけるコントローラを用いた回転操作の一例を示す図
【図１０】第１ゲーム例の第１段階における操作の一例を示す図
【図１１】第１ゲーム例における回転操作と振動強さとの関係の一例を示す図
【図１２】第１ゲーム例の第２段階における操作の一例を示す図
【図１３】情報処理システムにおいて実行される第１ゲーム処理の流れの一例を示すフローチャート
【図１４】第２ゲーム例における操作の一例を示す図
【図１５】第２ゲーム例における回転操作とコントローラの振動との関係の一例を示す図
【図１６】情報処理システムにおいて実行される第２ゲーム処理の流れの一例を示すフローチャート
【図１７】第３ゲーム例における操作の一例を示す図
【図１８】第３ゲーム例における回転操作と振動強さとの関係の一例を示す図
【図１９】情報処理システムにおいて実行される第３ゲーム処理の流れの一例を示すフローチャート
【発明を実施するための形態】
【００３２】
［１．情報処理システムの構成］
以下、本実施形態の一例に係る情報処理システムについて説明する。本実施形態における情報処理システム１の一例は、本体装置（換言すれば、情報処理装置；本実施形態ではゲーム装置本体として機能する）２と左コントローラ３および右コントローラ４とを含む。本体装置２は、左コントローラ３および右コントローラ４がそれぞれ着脱可能である。つまり、左コントローラ３および右コントローラ４をそれぞれ本体装置２に装着して一体化された装置として利用できる。また、本体装置２と左コントローラ３および右コントローラ４とを別体として利用することもできる（図２参照）。また、情報処理システム１は、本体装置２に画像を表示する態様での利用と、テレビ等の他の表示装置（例えば、据置型モニタ）に画像を表示させる態様での利用が可能である。前者の態様において、情報処理システム１は、携帯型装置（例えば、携帯ゲーム機）として利用することができる。また、後者の態様において、情報処理システム１は、据置型装置（例えば、据置型ゲーム機）として利用することができる。なお、本実施形態の情報処理システム１は、本体装置２に装着されない無線コントローラをも含むことができる。
【００３３】
（本体装置、左コントローラ、右コントローラの説明）
図１は、本体装置２に左コントローラ３および右コントローラ４を装着した状態を示す図である。図１に示すように、左コントローラ３および右コントローラ４は、それぞれ本体装置２に装着されて一体化されている。本体装置２は、情報処理システム１における各種の処理（例えば、ゲーム処理）を実行する装置である。本体装置２は、ディスプレイ１２を備える。左コントローラ３および右コントローラ４は、ユーザが入力を行うための操作部を備える装置である。
【００３４】
図２は、本体装置２から左コントローラ３および右コントローラ４をそれぞれ外した状態の一例を示す図である。図１および図２に示すように、左コントローラ３および右コントローラ４は、本体装置２に着脱可能である。なお、以下において、左コントローラ３および右コントローラ４の総称として「コントローラ」と記載することがある。
【００３５】
図３は、本体装置２の一例を示す六面図である。図３に示すように、本体装置２は、略板状のハウジング１１を備える。本実施形態において、ハウジング１１の主面（換言すれば、表側の面、すなわち、ディスプレイ１２が設けられる面）は、大略的には矩形形状である。
【００３６】
なお、ハウジング１１の形状および大きさは、任意である。一例として、ハウジング１１は、携帯可能な大きさであってよい。また、本体装置２単体または本体装置２に左コントローラ３および右コントローラ４が装着された一体型装置は、携帯型装置となってもよい。また、本体装置２または一体型装置が手持ち型の装置となってもよい。また、本体装置２または一体型装置が可搬型装置となってもよい。
【００３７】
図３に示すように、本体装置２は、ハウジング１１の主面に設けられるディスプレイ１２を備える。ディスプレイ１２は、本体装置２が生成した画像を表示する。本実施形態においては、ディスプレイ１２は、液晶表示装置（ＬＣＤ）とする。ただし、ディスプレイ１２は任意の種類の表示装置であってよい。
【００３８】
また、本体装置２は、ディスプレイ１２の画面上にタッチパネル１３を備える。本実施形態においては、タッチパネル１３は、マルチタッチ入力が可能な方式（例えば、静電容量方式）のものである。ただし、タッチパネル１３は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式（例えば、抵抗膜方式）のものであってもよい。
【００３９】
本体装置２は、ハウジング１１の内部においてスピーカ（すなわち、図６に示すスピーカ８８）を備えている。図３に示すように、ハウジング１１の主面には、スピーカ孔１１ａおよび１１ｂが形成される。そして、スピーカ８８の出力音は、これらのスピーカ孔１１ａおよび１１ｂからそれぞれ出力される。
【００４０】
また、本体装置２は、本体装置２が左コントローラ３と有線通信を行うための端子である左側端子１７と、本体装置２が右コントローラ４と有線通信を行うための右側端子２１を備える。
【００４１】
図３に示すように、本体装置２は、第１スロット２３を備える。第１スロット２３は、ハウジング１１の上側面に設けられる。第１スロット２３は、第１の種類の記憶媒体を装着可能な形状を有する。第１の種類の記憶媒体は、例えば、情報処理システム１およびそれと同種の情報処理装置に専用の記憶媒体（例えば、専用メモリカード）である。第１の種類の記憶媒体は、例えば、本体装置２で利用されるデータ（例えば、アプリケーションのセーブデータ等）、および／または、本体装置２で実行されるプログラム（例えば、アプリケーションのプログラム等）を記憶するために用いられる。また、本体装置２は、電源ボタン２８を備える。
【００４２】
本体装置２は、下側端子２７を備える。下側端子２７は、本体装置２がクレードルと通信を行うための端子である。本実施形態において、下側端子２７は、ＵＳＢコネクタ（より具体的には、メス側コネクタ）である。上記一体型装置または本体装置２単体をクレードルに載置した場合、情報処理システム１は、本体装置２が生成して出力する画像を据置型モニタに表示することができる。また、本実施形態においては、クレードルは、載置された上記一体型装置または本体装置２単体を充電する機能を有する。また、クレードルは、ハブ装置（具体的には、ＵＳＢハブ）の機能を有する。
【００４３】
図４は、左コントローラ３の一例を示す六面図である。図４に示すように、左コントローラ３は、ハウジング３１を備える。本実施形態においては、ハウジング３１は、縦長の形状、すなわち、上下方向（すなわち、図１に示すｙ軸方向）に長い形状である。左コントローラ３は、本体装置２から外された状態において、縦長となる向きで把持されることも可能である。ハウジング３１は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ３は、横長となる向きで把持されることも可能である。左コントローラ３が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【００４４】
左コントローラ３は、アナログスティック３２を備える。図４に示すように、アナログスティック３２が、ハウジング３１の主面に設けられる。アナログスティック３２は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック３２を傾倒することによって傾倒方向に応じた方向の入力（および、傾倒した角度に応じた大きさの入力）が可能である。なお、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、アナログスティック３２を押下する入力が可能である。
【００４５】
左コントローラ３は、各種操作ボタンを備える。まず、左コントローラ３は、ハウジング３１の主面上に４つの操作ボタン３３〜３６（具体的には、右方向ボタン３３、下方向ボタン３４、上方向ボタン３５、および、左方向ボタン３６）を備える。さらに、録画ボタン３７、−（マイナス）ボタン４７を備える。左コントローラ３は、ハウジング３１の側面の左上に第１Ｌボタン３８およびＺＬボタン３９を備える。また、左コントローラ３は、ハウジング３１の側面の、本体装置２に装着される際に装着される側の面に第２Ｌボタン４３および第２Ｒボタン４４を備える。これらの操作ボタンは、本体装置２で実行される各種プログラム（例えば、ＯＳプログラムやアプリケーションプログラム）に応じた指示を行うために用いられる。
【００４６】
また、左コントローラ３は、左コントローラ３が本体装置２と有線通信を行うための端子４２を備える。
【００４７】
図５は、右コントローラ４の一例を示す六面図である。図５に示すように、右コントローラ４は、ハウジング５１を備える。本実施形態においては、ハウジング５１は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ４は、本体装置２から外された状態において、縦長となる向きで把持されることも可能である。ハウジング５１は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ４は、横長となる向きで把持されることも可能である。右コントローラ４が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【００４８】
右コントローラ４は、左コントローラ３と同様、方向入力部としてアナログスティック５２を備える。本実施形態においては、アナログスティック５２は、左コントローラ３のアナログスティック３２と同じ構成である。また、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、右コントローラ４は、左コントローラ３と同様、ハウジング５１の主面上に４つの操作ボタン５３〜５６（具体的には、Ａボタン５３、Ｂボタン５４、Ｘボタン５５、および、Ｙボタン５６）を備える。さらに、＋（プラス）ボタン５７、ホームボタン５８を備える。また、右コントローラ４は、右コントローラ４は、ハウジング５１の側面の右上に第１Ｒボタン６０およびＺＲボタン６１を備える。また、左コントローラ３と同様、第２Ｌボタン６５および第２Ｒボタン６６を備える。
【００４９】
また、右コントローラ４は、右コントローラ４が本体装置２と有線通信を行うための端子６４を備える。
【００５０】
図６は、本体装置２の内部構成の一例を示すブロック図である。本体装置２は、図３に示す構成の他、図６に示す各構成要素８１〜９８を備える。これらの構成要素８１〜９８のいくつかは、電子部品として電子回路基板上に実装されてハウジング１１内に収納されてもよい。
【００５１】
本体装置２は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）８１を備える。ＣＰＵ８１は、本体装置２において実行される各種の情報処理を実行する情報処理部であって、厳密にはＣＰＵ機能、ＧＰＵ機能等の複数の機能を含むＳｏＣ（Ｓｙｓｔｅｍ−ｏｎ−ａ−ｃｈｉｐ）である。ＣＰＵ８１は、記憶部（具体的には、フラッシュメモリ８４等の内部記憶媒体、あるいは、各スロット２３および２４に装着される外部記憶媒体等）に記憶される情報処理プログラム（例えば、ゲームプログラム）を実行することによって、各種の情報処理を実行する。
【００５２】
本体装置２は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ８４およびＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）８５を備える。フラッシュメモリ８４およびＤＲＡＭ８５は、ＣＰＵ８１に接続される。フラッシュメモリ８４は、主に、本体装置２に保存される各種のデータ（プログラムであってもよい）を記憶するために用いられるメモリである。ＤＲＡＭ８５は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【００５３】
本体装置２は、スロットインターフェース（以下、「Ｉ／Ｆ」と略記する。）９１を備える。スロットＩ／Ｆ９１は、ＣＰＵ８１に接続される。スロットＩ／Ｆ９１は、第１スロット２３に接続され、第１スロット２３に装着された第１の種類の記憶媒体（例えば、専用メモリカード）に対するデータの読み出しおよび書き込みを、ＣＰＵ８１の指示に応じて行う。
【００５４】
ＣＰＵ８１は、フラッシュメモリ８４およびＤＲＡＭ８５、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【００５５】
本体装置２は、ネットワーク通信部８２を備える。ネットワーク通信部８２は、ＣＰＵ８１に接続される。ネットワーク通信部８２は、ネットワークを介して外部の装置と通信（具体的には、無線通信）を行う。本実施形態においては、ネットワーク通信部８２は、第１の通信態様としてＷｉ−Ｆｉの規格に準拠した方式により、無線ＬＡＮに接続して外部装置と通信を行う。また、ネットワーク通信部８２は、第２の通信態様として所定の通信方式（例えば、独自プロトコルによる通信や、赤外線通信）により、同種の他の本体装置２との間で無線通信を行う。なお、上記第２の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置２との間で無線通信可能であり、複数の本体装置２の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【００５６】
本体装置２は、コントローラ通信部８３を備える。コントローラ通信部８３は、ＣＰＵ８１に接続される。コントローラ通信部８３は、左コントローラ３および／または右コントローラ４と無線通信を行う。本体装置２と左コントローラ３および右コントローラ４との通信方式は任意であるが、本実施形態においては、コントローラ通信部８３は、左コントローラ３との間および右コントローラ４との間で、Ｂｌｕｅｔｏｏｔｈ（登録商標）の規格に従った通信を行う。
【００５７】
ＣＰＵ８１は、上述の左側端子１７、右側端子２１、および、下側端子２７に接続される。ＣＰＵ８１は、左コントローラ３と有線通信を行う場合、左側端子１７を介して左コントローラ３へデータを送信するとともに、左側端子１７を介して左コントローラ３から操作データを受信する。また、ＣＰＵ８１は、右コントローラ４と有線通信を行う場合、右側端子２１を介して右コントローラ４へデータを送信するとともに、右側端子２１を介して右コントローラ４から操作データを受信する。また、ＣＰＵ８１は、クレードルと通信を行う場合、下側端子２７を介してクレードルへデータを送信する。このように、本実施形態においては、本体装置２は、左コントローラ３および右コントローラ４との間で、それぞれ有線通信と無線通信との両方を行うことができる。また、左コントローラ３および右コントローラ４が本体装置２に装着された一体型装置または本体装置２単体がクレードルに装着された場合、本体装置２は、クレードルを介してデータ（例えば、画像データや音声データ）を据置型モニタ等に出力することができる。
【００５８】
ここで、本体装置２は、複数の左コントローラ３と同時に（換言すれば、並行して）通信を行うことができる。また、本体装置２は、複数の右コントローラ４と同時に（換言すれば、並行して）通信を行うことができる。したがって、ユーザは、複数の左コントローラ３および複数の右コントローラ４を用いて本体装置２に対する入力を行うことができる。
【００５９】
本体装置２は、タッチパネル１３の制御を行う回路であるタッチパネルコントローラ８６を備える。タッチパネルコントローラ８６は、タッチパネル１３とＣＰＵ８１との間に接続される。タッチパネルコントローラ８６は、タッチパネル１３からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、ＣＰＵ８１へ出力する。
【００６０】
また、ディスプレイ１２は、ＣＰＵ８１に接続される。ＣＰＵ８１は、（例えば、上記の情報処理の実行によって）生成した画像および／または外部から取得した画像をディスプレイ１２に表示する。
【００６１】
本体装置２は、コーデック回路８７およびスピーカ（具体的には、左スピーカおよび右スピーカ）８８を備える。コーデック回路８７は、スピーカ８８および音声入出力端子２５に接続されるとともに、ＣＰＵ８１に接続される。コーデック回路８７は、スピーカ８８および音声入出力端子２５に対する音声データの入出力を制御する回路である。
【００６２】
また、本体装置２は、加速度センサ８９を備える。本実施形態においては、加速度センサ８９は、所定の３軸（例えば、図１に示すｘｙｚ軸）方向に沿った加速度の大きさを検出する。なお、加速度センサ８９は、１軸方向あるいは２軸方向の加速度を検出するものであってもよい。
【００６３】
また、本体装置２は、角速度センサ９０を備える。本実施形態においては、角速度センサ９０は、所定の３軸（例えば、図１に示すｘｙｚ軸）回りの角速度を検出する。なお、角速度センサ９０は、１軸回りあるいは２軸回りの角速度を検出するものであってもよい。
【００６４】
上記の加速度センサ８９および角速度センサ９０は、ＣＰＵ８１に接続され、加速度センサ８９および角速度センサ９０の検出結果は、ＣＰＵ８１へ出力される。ＣＰＵ８１は、上記の加速度センサ８９および角速度センサ９０の検出結果に基づいて、本体装置２の動きおよび／または姿勢に関する情報を算出することが可能である。なお、本実施形態においては、本体装置２の動き、姿勢、および／または位置を算出するための慣性センサとして、加速度センサおよび角速度センサを用いているが、他の実施形態では他の種類のセンサが用いられてもよい。
【００６５】
本体装置２は、電力制御部９７およびバッテリ９８を備える。電力制御部９７は、バッテリ９８およびＣＰＵ８１に接続される。また、図示しないが、電力制御部９７は、本体装置２の各部（具体的には、バッテリ９８の電力の給電を受ける各部、左側端子１７、および右側端子２１）に接続される。電力制御部９７は、ＣＰＵ８１からの指令に基づいて、バッテリ９８から上記各部への電力供給を制御する。
【００６６】
また、バッテリ９８は、下側端子２７に接続される。外部の充電装置（例えば、クレードル）が下側端子２７に接続され、下側端子２７を介して本体装置２に電力が供給される場合、供給された電力がバッテリ９８に充電される。
【００６７】
図７は、本体装置２と左コントローラ３および右コントローラ４との内部構成の一例を示すブロック図である。なお、本体装置２に関する内部構成の詳細については、図６で示しているため図７では省略している。
【００６８】
左コントローラ３は、本体装置２との間で通信を行う通信制御部１０１を備える。図７に示すように、通信制御部１０１は、端子４２を含む各構成要素に接続される。本実施形態においては、通信制御部１０１は、端子４２を介した有線通信と、端子４２を介さない無線通信との両方で本体装置２と通信を行うことが可能である。通信制御部１０１は、左コントローラ３が本体装置２に対して行う通信方法を制御する。すなわち、左コントローラ３が本体装置２に装着されている場合、通信制御部１０１は、端子４２を介して本体装置２と通信を行う。また、左コントローラ３が本体装置２から外されている場合、通信制御部１０１は、本体装置２（具体的には、コントローラ通信部８３）との間で無線通信を行う。コントローラ通信部８３と通信制御部１０１との間の無線通信は、例えばＢｌｕｅｔｏｏｔｈ（登録商標）の規格に従って行われる。
【００６９】
また、左コントローラ３は、例えばフラッシュメモリ等のメモリ１０２を備える。通信制御部１０１は、例えばマイコン（マイクロプロセッサとも言う）で構成され、メモリ１０２に記憶されるファームウェアを実行することによって各種の処理を実行する。
【００７０】
左コントローラ３は、各ボタン１０３（具体的には、ボタン３３〜３９、４３、４４、４７）を備える。また、左コントローラ３は、アナログスティック（図７では「スティック」と記載する）３２を備える。各ボタン１０３およびアナログスティック３２は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部１０１へ出力する。
【００７１】
左コントローラ３は、慣性センサを備える。具体的には、加速度センサ１０４を備える。また、角速度センサ１０５を備える。本実施形態においては、加速度センサ１０４は、所定の３軸（例えば、図４に示すｘｙｚ軸）方向に沿った加速度の大きさを検出する。なお、加速度センサ１０４は、１軸方向あるいは２軸方向の加速度を検出するものであってもよい。本実施形態においては、角速度センサ１０５は、所定の３軸（例えば、図４に示すｘｙｚ軸）回りの角速度を検出する。なお、角速度センサ１０５は、１軸回りあるいは２軸回りの角速度を検出するものであってもよい。加速度センサ１０４および角速度センサ１０５は、それぞれ通信制御部１０１に接続される。そして、加速度センサ１０４および角速度センサ１０５の検出結果は、適宜のタイミングで繰り返し通信制御部１０１へ出力される。
【００７２】
通信制御部１０１は、各入力部（具体的には、各ボタン１０３、アナログスティック３２、各センサ１０４および１０５）から、入力に関する情報（具体的には、操作に関する情報、または、センサによる検出結果）を取得する。通信制御部１０１は、取得した情報（または取得した情報に所定の加工を行った情報）を含む操作データを本体装置２へ送信する。なお、操作データは、所定時間に１回の割合で繰り返し送信される。なお、入力に関する情報が本体装置２へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【００７３】
上記操作データが本体装置２へ送信されることによって、本体装置２は、左コントローラ３に対して行われた入力を得ることができる。すなわち、本体装置２は、各ボタン１０３およびアナログスティック３２に対する操作を、操作データに基づいて判別することができる。また、本体装置２は、左コントローラ３の動きおよび／または姿勢に関する情報を、操作データ（具体的には、加速度センサ１０４および角速度センサ１０５の検出結果）に基づいて算出することができる。
【００７４】
左コントローラ３は、振動によってユーザに通知を行うための振動子１０７を備える。本実施形態においては、振動子１０７は、本体装置２からの振動指令（換言すれば、後述する振動制御信号）によって制御される。すなわち、通信制御部１０１は、本体装置２からの上記振動指令を受け取ると、当該振動指令に従って振動子１０７を駆動させる。ここで、左コントローラ３は、コーデック部１０６を備える。通信制御部１０１は、上記振動指令を受け取ると、振動指令に応じた制御信号をコーデック部１０６へ出力する。コーデック部１０６は、通信制御部１０１からの制御信号から、振動子１０７を駆動させるための駆動信号を生成して振動子１０７へ与える。これによって振動子１０７が動作する。
【００７５】
振動子１０７は、より具体的にはリニア振動モータである。リニア振動モータは、回転運動をする通常のモータと異なり、入力される電圧に応じて所定方向に駆動されるため、入力される電圧の波形に応じた振幅、周波数で振動をさせることができる。本実施形態において、本体装置２から左コントローラ３に送信される振動制御信号は、単位時間ごとに周波数と振幅とを表すデジタル信号であってよい。別の実施形態においては、波形そのものを示す情報を送信するようにしてもよいが、振幅と周波数だけを送信することで通信データ量を削減することができる。また、さらにデータ量を削減するため、そのときの振幅と周波数の数値に替えて、前回の値からの差分だけを送信するようにしてもよい。この場合、コーデック部１０６は、通信制御部１０１から取得される振幅と周波数の値を示すデジタル信号をアナログの電圧の波形に変換し、当該波形に合わせて電圧を入力することで振動子１０７を駆動させる。したがって、本体装置２は、単位時間ごとに送信する振幅および周波数を変えることによって、そのときに振動子１０７を振動させる振幅と周波数を制御することができる。なお、本体装置２から左コントローラ３に送信される振幅と周波数は、１つに限らず、２つ以上送信するようにしてもよい。その場合、コーデック部１０６は、受信された複数の振幅と周波数それぞれが示す波形を合成することで、振動子１０７を制御する電圧の波形を生成することができる。
【００７６】
以上より、本実施形態においては、振動子１０７は、複数種類の振動の態様（例えば、振動の大きさ、周波数、および／または、パターン）で振動することが可能である。また、本体装置２は、振動の波形を示す信号（すなわち、上記振動制御信号）を生成してコントローラへ送信し、振動子１０７は、当該信号が示す波形に基づいて振動する。なお、「振動の波形を示す信号」は、上記のデジタル信号であってもよいし、振動波形自体を表す信号であってもよい。なお、上記のデジタル信号は、上記単位時間毎の周波数と振幅とを表すものであるが、単位信号の周波数と振幅とを表す単位信号を複数繋げることによって、複数種類の周波数を含む波形、および、複数種類の振幅を含む波形を表すことができる。つまり、本体装置２は、単位時間毎に振動の振幅および／または周波数が異なる波形でコントローラを振動させることによって、複数種類の周波数成分を含む波形でコントローラを振動させることも可能である。
【００７７】
左コントローラ３は、電力供給部１０８を備える。本実施形態において、電力供給部１０８は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ３の各部（具体的には、バッテリの電力の給電を受ける各部）に接続される。
【００７８】
図７に示すように、右コントローラ４は、本体装置２との間で通信を行う通信制御部１１１を備える。また、右コントローラ４は、通信制御部１１１に接続されるメモリ１１２を備える。通信制御部１１１は、端子６４を含む各構成要素に接続される。通信制御部１１１およびメモリ１１２は、左コントローラ３の通信制御部１０１およびメモリ１０２と同様の機能を有する。したがって、通信制御部１１１は、端子６４を介した有線通信と、端子６４を介さない無線通信（具体的には、Ｂｌｕｅｔｏｏｔｈ（登録商標）の規格に従った通信）との両方で本体装置２と通信を行うことが可能であり、右コントローラ４が本体装置２に対して行う通信方法を制御する。
【００７９】
右コントローラ４は、左コントローラ３の各入力部と同様の各入力部を備える。具体的には、各ボタン１１３、アナログスティック５２、慣性センサ（具体的には、加速度センサ１１４および角速度センサ１１５）を備える。これらの各入力部については、左コントローラ３の各入力部と同様の機能を有し、同様に動作する。
【００８０】
また、右コントローラ４は、振動子１１７およびコーデック部１１６を備える。振動子１１７およびコーデック部１１６は、左コントローラ３の振動子１０７およびコーデック部１０６と同様に動作する。すなわち、通信制御部１１１は、本体装置２からの振動指令に従って、コーデック部１１６を用いて振動子１１７を動作させる。
【００８１】
右コントローラ４は、電力供給部１１８を備える。電力供給部１１８は、左コントローラ３の電力供給部１０８と同様の機能を有し、同様に動作する。
【００８２】
［２．情報処理システムにおける処理の概要］
次に、図８および図９を参照して、情報処理システム１における処理の概要について説明する。図８は、本実施形態における情報処理システムを利用する様子の一例を示す図である。図８に示すように、本実施形態では、プレイヤ（換言すれば、ユーザ）は、本体装置２から外した状態でコントローラを用いる。また、本体装置２は、プレイヤの周囲に載置される。なお、本実施形態においては、コントローラが本体装置２から外された状態では、コントローラは本体装置２と無線通信を行うが、他の実施形態においては、コントローラはケーブルによって本体装置２と接続され、ケーブルを介した有線通信を行ってもよい。
【００８３】
本実施形態においては、１人のプレイヤが１つのコントローラを用いる。なお、後述するゲーム例においては、図８に示すように、２人のプレイヤがそれぞれ１つずつコントローラを用いてゲームをプレイしてもよい。なお、他の実施形態においては、１人のプレイヤが２つのコントローラを用いてもよい。例えば、プレイヤは、両手に１つずつコントローラを把持してゲームをプレイしてもよい。
【００８４】
図９は、本実施形態におけるコントローラを用いた回転操作の一例を示す図である。本実施形態においては、プレイヤは、コントローラを動かす操作をゲーム操作として行う。具体的には、図９に示すように、プレイヤは、コントローラを回す操作（回転操作と呼ぶ）を行う。回転操作は、図９に示すように、大略的には円の軌道を描くようにコントローラの位置を移動させる操作であってもよいし、ある軸回りにコントローラの姿勢を変化させる操作（図１７参照）であってもよいし、これらの操作の組み合わせであってもよい。
【００８５】
本実施形態では、情報処理システム１は、コントローラの回転操作の速さに応じた強さでコントローラを振動させる。ここで、回転操作の速さとは、例えば、１回の回転操作を行う速さ（換言すれば、１回の回転操作を行うのに要した時間の逆数）であってもよいし、回転操作においてコントローラを回転させる速度（換言すれば、単位時間当たりの回転量）であってもよいし、回転操作を行う頻度であってもよい。
【００８６】
本実施形態においては、コントローラの回転操作を検知する処理、および、回転操作の速さを算出する処理は、コントローラが有する慣性センサ（具体的には、加速度センサおよび／または角速度センサ）の検出結果に基づいて行われる。これらの処理の詳細については後述する。なお、これらの処理は、慣性センサの検出結果に基づく方法とは異なる方法によって行われてもよい。例えば、他の実施形態においては、コントローラを撮像するカメラによって撮像された画像、または、コントローラが有するカメラによって撮像された画像に基づいて、上記２つの処理が行われてもよい。
【００８７】
本実施形態においては、コントローラの振動の強さは、当該コントローラに対する回転操作の速さに応じて変化する。例えば、回転操作が多く行われるほどコントローラが強く振動したり（後述する第１のゲーム例を参照）、回転速度が速いほどコントローラが強く振動したりする（後述する第２および第３のゲーム例を参照）。したがって、本実施形態によれば、情報処理システム１は、コントローラをゲーム条件に応じて単に振動させる場合に比べて、回転操作の状態、および／または、回転操作に応じたゲーム状況をより具体的に表現することができ、プレイヤにゲーム状況をより具体的に認識させることができる。すなわち、プレイヤに回転操作の結果を振動で認識させることができる。例えば、後述するゲーム例では、回転操作によって溜まったパワーの大きさ、回転操作の速さ、または、回転操作による回転の速さをプレイヤに認識させることができる。
【００８８】
［３．情報処理システムを用いて行われるゲーム例］
以下において、本実施形態における情報処理システム１を用いて行われるゲーム例について説明する。情報処理システム１は、上述の回転操作によってゲーム操作を行うゲームとして、例えば以下に説明するゲームをプレイヤにプレイさせることができる。なお、情報処理システム１は、以下に説明する第１〜第３ゲーム例のゲーム処理のうち１つ以上を実行するものであればよい。
【００８９】
［３−１：第１ゲーム例］
図１０〜図１３を参照して、第１ゲーム例について説明する。第１ゲーム例は、２人のプレイヤがプレイする複数人プレイのゲームであり、２人のプレイヤが対戦する形式のゲームである。第１ゲーム例では、各プレイヤは、コントローラを魔法の杖のように操作する。なお、以下の説明においては、左コントローラ３を把持するプレイヤを第１プレイヤとし、右コントローラ４を把持するプレイヤを第２プレイヤとする。
【００９０】
［第１ゲーム例の概要］
第１ゲーム例では、まず、ゲームの第１段階として、プレイヤは、回転操作によって魔法のパワーを溜めるゲーム操作を行う（図１０）。そして、ゲームの第２段階として、プレイヤは、第１段階で溜めた魔法のパワーをぶつけ合う操作を行う（図１２）。第１ゲーム例では、第２段階において、自身の魔法のパワーを相手側まで押し込んだ方のプレイヤが勝ちとなる。
【００９１】
（第１段階）
まず、第１段階におけるゲームについて説明する。図１０は、第１ゲーム例の第１段階における操作の一例を示す図である。なお、図１０では、１つのコントローラ（右コントローラ４）のみを示しているが、実際には、２人のプレイヤのそれぞれがコントローラを操作する。
【００９２】
第１段階において、各プレイヤは、コントローラを用いて回転操作を行う。情報処理システム１は、プレイヤによる回転操作に応じて、魔法のパワーを溜めるゲーム処理を実行する。ここで、第１ゲーム例における回転操作は、図１０に示すように、縦向きの状態にしたコントローラを、水平面上において円の軌跡を描くように移動（換言すれば、回転）させる操作である。なお、縦向きの状態とは、コントローラの長手方向（すなわち、図４または図５に示すｙ軸方向）が概ね鉛直方向となる状態である。また、本実施形態においては、プレイヤは、コントローラの上側（すなわち、ｙ軸正方向側、換言すれば、第１Ｌボタンまたは第１Ｒボタンが設けられる側）が上を向くようにしてコントローラを把持するものとする。このとき、プレイヤが上記回転操作を行うと、コントローラは、実際には、（コントローラが真上を向いた状態で姿勢を変化させずに移動するのではなく、）コントローラの上側が下側よりも大きな円を描くような動きを行う（図１０参照）。また、第１ゲーム例においては、情報処理システム１は、コントローラが１周分の回転移動を行った場合に、１回の回転操作が行われたと判定する。
【００９３】
上記のようにプレイヤが回転操作を行う場合、コントローラは、図１０に示すような動きを行うことになる。そのため、プレイヤが回転操作を繰り返し行うと、コントローラの長手方向に垂直な１軸回りの回転に関する角速度（換言すれば、姿勢）は、周期的に変化し、回転操作によってコントローラが１回転する間に１周期分の変化を行う。したがって、コントローラの長手方向に垂直な１軸（すなわち、図４または図５に示すｘ軸またはｚ軸）回りの回転に関する角速度を参照することによって、上記の回転操作を検知することができる。
【００９４】
上記より、第１ゲーム例において、情報処理システム１は、上記１軸の角速度センサの検出結果（すなわち、角速度）の波形に基づいて、回転操作を検知する。具体的には、上記角速度センサの検出結果は、回転操作の１回転を１周期として周期的に変化するので、情報処理システム１は、角速度の波形におけるある特徴点（例えば、極大値または極小値）が検知されてから次に当該特徴点が検知された場合、回転操作が行われたと判定する。これによれば、１軸の角速度センサの検出結果に基づいて回転操作を検知することができるので、簡易な方法で回転操作を検知することができる。
【００９５】
第１ゲーム例において、情報処理システム１は、回転操作が検知されると、当該回転操作に応じて魔法パワーを溜める処理を行う。そして、溜まった魔法パワーに応じた強さでコントローラを振動させる。
【００９６】
図１１は、第１ゲーム例における回転操作と振動強さとの関係の一例を示す図である。図１１に示すグラフにおいて、横軸は、回転操作が行われた回数を示し、縦軸は、振動強さ（換言すれば、溜まった魔法パワー）を示す。図１１に示すように、情報処理システム１は、回転操作が行われる毎に、魔法パワーを累積加算する。つまり、第１ゲーム例では、情報処理システム１は、回転操作が検知されることに応じてコントローラの振動の強さを変化させる（具体的には、振動を強くする）。したがって、第１ゲーム例では、回転操作が行われる毎に、コントローラが振動する強さが次第に強くなっていく。
【００９７】
また、本実施形態においては、１回の回転操作によって増加される振動強さの量（換言すれば、魔法パワーの加算量）は、当該回転操作の速さに基づいて決定される。本実施形態においては、回転操作の速さは、当該回転操作に要した時間の逆数である。つまり、情報処理システム１は、回転操作に要した時間が短いほど、回転操作の速さが速いと判断し、振動強さの増加量を大きくする（図１１参照）。なお、１回の回転操作に要した時間は、例えば、回転操作が検知されてから、次に回転操作が検知されるまでの時間として算出される。
【００９８】
なお、本実施形態において、コントローラの振動の強さは、魔法パワーが溜まった量に応じて決定されればよく、魔法パワーから振動強さを決定するための具体的な方法は任意である。情報処理システム１は、魔法パワーに比例するように振動強さを決定してもよいし、魔法パワーの増加に伴って段階的に振動強さを増加させるようにしてもよい。
【００９９】
上記のように、第１ゲーム例においては、情報処理システム１は、慣性センサの出力における周期的な変化を特定し、特定された周期的な変化に基づいて回転操作を検知する。また、情報処理システム１は、特定された周期的な変化に基づいて、検知された回転操作の速さを判定する。
【０１００】
第１段階において、情報処理システム１は、コントローラに対する回転操作を検知し、回転操作の速さに応じて魔法パワーを溜めて、回転操作の速さに応じてコントローラを振動させる処理を、各プレイヤのコントローラ毎に実行する。
【０１０１】
なお、回転操作を検知する方法、および、回転操作の速さを算出する方法は任意である。他の実施形態においては、例えば、回転操作の検知は、２軸以上の角速度センサの検出結果を用いて行われてもよい。また、情報処理システム１は、角速度センサに代えて（または共に）加速度センサの検出結果を用いて回転操作を検知してもよい。また、回転速度の速さは、慣性センサの検出結果（すなわち、コントローラの角速度および／または加速度）に基づく任意の方法で算出されてもよい。例えば、情報処理システム１は、コントローラの角速度および／または加速度についての、回転操作中における最大値、平均値、または累積値に基づいて回転速度の速さを算出してもよい。
【０１０２】
第１のゲーム例における第１段階においては、本体装置２のディスプレイ１２には、回転操作を促す画像（例えば、「パワーを溜めろ」というメッセージ）が表示される。なお、情報処理システム１は、コントローラに対する回転操作を表す画像（例えば、コントローラが回転する様子を表す動画）をディスプレイ１２に表示してもよいし、表示しなくてもよい。また、情報処理システム１は、各プレイヤについて溜まっている魔法パワーの量を表す画像（例えば、ゲージ）をディスプレイ１２に表示してもよいし、表示しなくてもよい。
【０１０３】
（第２段階）
第１段階において、魔法パワーが所定量まで溜まると、第１ゲーム例における第２段階に移行する。なお、２人のプレイヤの両方について魔法パワーが所定量まで溜まったことを条件として第２段階が開始されてもよいし、２人のプレイヤのいずれか一方について魔法パワーが所定量まで溜まったことを条件として第２段階が開始されてもよい。なお、後者の場合、他方のプレイヤは、魔法パワーが所定量まで溜まっていないので、不利な状態で第２段階が開始されることとなる。
【０１０４】
図１２は、第１ゲーム例の第２段階における操作の一例を示す図である。第２段階では、図１２に示すように、２人のプレイヤは、コントローラを横向きの状態（すなわち、コントローラの長手方向が概ね水平方向となる状態）にして、前方に突く操作（「突き操作」と呼ぶ）を行う。第２段階においては、本体装置２のディスプレイ１２には、２人のプレイヤの魔法パワーが衝突している様子を表す画像が表示される（図１２参照）。第１ゲーム例では、一方のプレイヤが、魔法パワーの衝突位置Ｐを、ディスプレイ１２における相手側の端部（すなわち、画面の左側または右側の端部）まで移動させると、当該プレイヤの勝ちとなる。
【０１０５】
上記衝突位置Ｐは、ディスプレイ１２において左右に移動し、所定のアルゴリズムに従って移動が制御される。衝突位置Ｐの制御方法は任意であるが、本実施形態においては、例えば以下のルールに従って衝突位置Ｐが制御される。
・コントローラの角度（具体的には、水平方向に対する角度）等に基づいて押す力が決定され、各プレイヤの押す力に基づいて衝突位置Ｐの基本移動量（具体的には、単位時間当たりの移動量）が算出される。
・一方のプレイヤが突き操作を行うと、他方のプレイヤの側へ衝突位置Ｐを移動させる。
・一方のプレイヤが突き操作を行った直後に（例えば、突き操作が行われてから所定時間以内に）他方のプレイヤが突き操作を行うと、当該一方のプレイヤの突き操作による移動量よりも大きい移動量だけ衝突位置Ｐを当該一方のプレイヤ側へ移動させる。
なお、情報処理システム１は、上記の押す力、および、突き操作による移動量を、第１段階で溜まった魔法パワーに応じて変化させる。
【０１０６】
また、第２段階においては、情報処理システム１は、コントローラに対して次の振動を行わせる。
（ａ）衝突位置Ｐの移動速度に応じた強さでの振動
（ｂ）自身のコントローラによる突き操作が行われたことに応じた振動
（ｃ）相手プレイヤのコントローラによる突き操作が行われたことに応じた振動
上記（ａ）の振動は、衝突位置Ｐが移動する間は常時行われる。上記（ｂ）および（ｃ）の振動は、突き操作が行われたことに応じて所定期間だけ行われる。上記（ａ）〜（ｃ）の振動のいくつかが同時に行われる場合、それぞれの振動の強さを足し合わせた強さでコントローラが振動する。
【０１０７】
なお、第１ゲーム例においては、上記（ａ）〜（ｃ）の振動は、同じ周波数の振動であるとする。ただし、他の実施形態においては、上記（ａ）〜（ｃ）の振動は、それぞれ異なる周波数の振動であってもよい。また、他の実施形態においては、上記（ａ）〜（ｃ）の振動は、それぞれ異なる波形、および／または、振動パターンの振動であってもよい。
【０１０８】
なお、第１ゲーム例において、情報処理システム１は、コントローラの振動に応じた音をスピーカ８８から出力するようにしてもよい。例えば、第１段階においては、溜まった魔法パワーに応じた音が出力されてもよい。具体的には、溜まった魔法パワーに応じて音量や音の高さが変化する効果音が出力されてもよい。また、回転操作が行われる毎に効果音が出力されてもよい。また例えば、第２段階においては、衝突位置Ｐの移動速度に応じて音量や音の高さが変化する効果音が出力されてもよい。また、突き操作が行われる毎に効果音が出力されてもよい。
【０１０９】
以上のように、第１ゲーム例によれば、第１段階において、コントローラに対する回転操作（および回転操作の速さ）に応じてコントローラの振動強さが増加する。これによれば、プレイヤは、魔法パワーの溜まり具合をコントローラの振動によって認識することができる。また、本実施形態においては、魔法パワーが溜まるほどコントローラの振動が強くなるので、魔法パワーの溜まり具合を直感的にプレイヤに認識させることができる。
【０１１０】
［第１ゲーム例における具体的なゲーム処理例］
図１３は、情報処理システムにおいて実行される、第１ゲーム例を行うためのゲーム処理（第１ゲーム処理と呼ぶ）の流れの一例を示すフローチャートである。なお、本実施形態においては、情報処理システム１がアクセス可能な記憶部（例えば、上述の第１の種類の記憶媒体、または、フラッシュメモリ８４）は、第１ゲーム処理のためのプログラムを含むゲームプログラムを記憶している。図１３に示す一連の処理は、本体装置２のＣＰＵ８１が第１ゲーム処理のためのプログラムを実行することによって、開始される。
【０１１１】
なお、本実施形態では、本体装置２のＣＰＵ８１が図１３（図１６および図１９についても同様である）に示す各ステップの処理を実行するものとして説明するが、上記フローチャートにおける一部のステップの処理を、ＣＰＵ以外のプロセッサや専用回路が実行するようにしてもよい。また、図１３に示すフローチャート（図１６および図１９におけるフローチャートについても同様である）における各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて（または代えて）別の処理が実行されてもよい。
【０１１２】
ステップＳ１において、ＣＰＵ８１は、各コントローラから操作データを取得する。すなわち、ＣＰＵ８１は、コントローラ通信部８３を介して各コントローラから受信される操作データを取得し、ＤＲＡＭ８５に記憶する。ステップＳ１の次に、ステップＳ２の処理が実行される。
【０１１３】
ステップＳ２において、ＣＰＵ８１は、コントローラに対して回転操作が行われたか否かを判定する。すなわち、ＣＰＵ８１は、ＤＲＡＭ８５に記憶される操作データに基づいて、当該操作データに係るコントローラに対して回転操作が行われたか否かを判定する。なお、回転操作の検知は、上記“（第１段階）”の欄で述べた方法によって行われる。ステップＳ２の判定結果が肯定である場合、ステップＳ３の処理が実行される。一方、ステップＳ２の判定結果が否定である場合、ステップＳ３の処理がスキップされて、後述するステップＳ４の処理が実行される。
【０１１４】
ステップＳ３において、ＣＰＵ８１は、ステップＳ２において回転操作が行われたコントローラのプレイヤについて、魔法パワーを加算する。ここで、ＣＰＵ８１は、プレイヤに溜められた魔法パワーを示す情報をプレイヤ毎にＤＲＡＭ８５に記憶している。ステップＳ３において、ＣＰＵ８１は、加算後の魔法パワーを示す内容となるように、ＤＲＡＭ８５に記憶されている情報を更新する。ステップＳ３の次に、ステップＳ４の処理が実行される。
【０１１５】
ステップＳ４において、ＣＰＵ８１は、魔法パワーに応じた強さで各コントローラを振動させる。すなわち、ＣＰＵ８１は、ＤＲＡＭ８５に記憶されている魔法パワーを示す情報に基づいて、各コントローラを振動させる強さを特定する。さらに、ＣＰＵ８１は、コントローラの振動子１０７または１１７を振動させるための上記振動指令として、特定された振動の強さを指定する振動指令を、コントローラ通信部８３を介して各コントローラへ送信する。上記振動指令を受信したコントローラ（具体的には、通信制御部）は、振動指令に応じた制御信号を増幅器へ出力することによって、振動子を振動させる。これによって、振動指令によって指定された強さで振動子が振動し、コントローラが振動する。なお、本実施形態においては、ＣＰＵ８１は、魔法パワーが溜まっている場合には常にコントローラが振動するように（換言すれば、振動が継続的に実行されるように）、当該コントローラへ振動指令を送信する。ステップＳ４の次に、ステップＳ５の処理が実行される。
【０１１６】
ステップＳ５において、ＣＰＵ８１は、ゲーム画像をディスプレイ１２に表示するとともに、ＢＧＭや効果音等のゲーム音をスピーカ８８から出力する。本実施形態においては、第１ゲーム例における第１段階においては、上記ステップＳ５の処理が所定時間（すなわち、１フレーム時間）に１回の割合で実行されることによって、ゲーム画像の動画およびゲーム音が出力される。第１段階においては、回転操作を促す画像が表示される（図１０参照）。また、コントローラの振動に応じたゲーム音がスピーカ８８から出力される。ステップＳ５の次に、ステップＳ６の処理が実行される。
【０１１７】
ステップＳ６において、ＣＰＵ８１は、魔法パワーが所定量だけ溜まったか否かを判定する。ＣＰＵ８１は、上記ステップＳ３においてＤＲＡＭ８５に記憶された、魔法パワーを示す情報に基づいて判定を行う。ステップＳ６の判定結果が肯定である場合、ステップＳ７の処理が実行される。一方、ステップＳ６の判定結果が否定である場合、ステップＳ１の処理が再度実行される。第１段階においては、ステップＳ１〜Ｓ６の一連の処理が繰り返し実行される。なお、ステップＳ６の判定は、所定時間の経過を条件とするようにしてもよい。
【０１１８】
ステップＳ７において、ＣＰＵ８１は、各コントローラから操作データを取得する。ステップＳ７の処理は、上記ステップＳ１の処理と同様である。ステップＳ７の次に、ステップＳ８の処理が実行される。
【０１１９】
ステップＳ８において、ＣＰＵ８１は、各コントローラの操作に基づいて、各コントローラの振動の強さを決定する。具体的には、ＣＰＵ８１は、上記“（第２段階）”の欄で述べた方法によって、上記（ａ）〜（ｃ）の振動の有無、および、振動の強さを決定し、実行する振動の強さを足し合わせた強さとなるように、コントローラの振動の強さを決定する。ＣＰＵ８１は、決定した振動の強さを示す情報をＤＲＡＭ８５に記憶する。ステップＳ８の次に、ステップＳ９の処理が実行される。
【０１２０】
ステップＳ９において、ＣＰＵ８１は、ステップＳ８で決定された強さで、各コントローラを振動させる。すなわち、ＣＰＵ８１は、ＤＲＡＭ８５に記憶されている、振動の強さを示す情報を参照して、各コントローラの振動子を振動させるための振動指令を、各コントローラへ送信する。なお、ステップＳ９において、上記振動指令によって指定される内容は上記ステップＳ４とは異なるものの、コントローラを振動させるための処理動作は、上記ステップＳ４の処理と同様である。ステップＳ９の次に、ステップＳ１０の処理が実行される。
【０１２１】
ステップＳ１０において、ＣＰＵ８１は、ゲーム画像をディスプレイ１２に表示するとともに、ＢＧＭや効果音等のゲーム音をスピーカ８８から出力する。本実施形態においては、第２段階においては、上記ステップＳ１０の処理が所定時間（すなわち、１フレーム時間）に１回の割合で実行されることによって、ゲーム画像の動画およびゲーム音が出力される。第２段階では、例えば、魔法のパワーが衝突するゲーム画像（図１２参照）がディスプレイ１２に表示される。また、コントローラの振動に応じたゲーム音がスピーカ８８から出力される。ステップＳ１０の次に、ステップＳ１１の処理が実行される。
【０１２２】
ステップＳ１１において、ＣＰＵ８１は、ゲームを終了するか否かを判定する。例えば、衝突位置Ｐが２人のプレイヤのうちのどちらかの側まで移動したことによって勝敗が着いた場合、または、ゲームが開始されてからの時間が所定の制限時間に達した場合、ＣＰＵ８１は、ゲームを終了すると判定する。ステップＳ１１の判定結果が否定である場合、ステップＳ７の処理が再度実行される。第２段階においては、ステップＳ７〜Ｓ１１の一連の処理が繰り返し実行される。一方、ステップＳ１１の判定結果が肯定である場合、ＣＰＵ８１は、図１３に示す第１ゲーム処理を終了する。
【０１２３】
［３−２：第２ゲーム例］
図１４〜図１６を参照して、第２ゲーム例について説明する。第２ゲーム例は、１人でプレイ可能なゲームであり、プレイヤは、皿回しの棒のようにコントローラを操作して、仮想的に皿回しを行うゲームである。なお、第２ゲーム例では、プレイヤは１つのコントローラを用いるので、複数のコントローラを用いることによって複数人のプレイヤが同時にゲームを行うことも可能である。
【０１２４】
［第２ゲーム例の概要］
図１４は、第２ゲーム例における操作の一例を示す図である。第２ゲーム例では、図１４に示すように、プレイヤは、コントローラを用いて回転操作を行う。第２ゲーム例における回転操作は、皿回しの棒のようにコントローラを回す操作である。すなわち、第２ゲーム例における回転操作は、第１ゲーム例と同様、縦向きの状態にしたコントローラを、水平面上において円の軌跡を描くように移動させる操作である。第２ゲーム例においては、情報処理システム１は、コントローラが１周分の回転移動を行った場合に、１回の回転操作が行われたと判定する。なお、第２ゲーム例も第１ゲーム例と同様または類似の操作をプレイヤが行うが、後述するように、回転操作を検知する方法は第２ゲーム例と第１ゲーム例とでは異なっている。
【０１２５】
ここで、上記“［第１ゲーム例の概要］”にて述べたように、プレイヤが上記回転操作を行う場合、コントローラは、コントローラの上側が下側よりも大きな円を描くような動きを行う（図１０参照）。したがって、コントローラの長手方向に垂直な２軸（すなわち、図４または図５に示すｘ軸およびｚ軸）回りの回転に関する角速度（換言すれば、姿勢）は、それぞれ、回転操作が繰り返されることに応じて周期的に変化し、回転操作によってコントローラが１回転する間に１周期分の変化を行う。以上より、上記２軸回りの回転に関する角速度に基づいて、１周の回転操作中におけるコントローラの回転角度（換言すれば、円の軌跡上におけるコントローラの位置）を算出することができる。つまり、角速度センサの検出結果（すなわち、角速度）のうちで上記２軸に関する角速度に基づいて、上記の回転操作を検知することができる。
【０１２６】
上記より、第２ゲーム例において、情報処理システム１は、上記２軸の角速度センサの検出結果（すなわち、角速度）に基づいて、回転操作を検知する。具体的には、情報処理システム１は、上記２軸に関する角速度に基づいて、それぞれ、当該２軸回りに関するコントローラの姿勢を算出する。算出された２つの姿勢を各成分とする２次元値は、１周の回転操作中におけるコントローラの回転角度を表す。したがって、情報処理システム１は、上記２次元値に基づいて回転操作が行われたか否かを判定する。具体的には、情報処理システム１は、コントローラがある回転角度となる状態から、回転角度が３６０°変化して当該状態に戻ったことに応じて、１回の回転操作が行われたと判定する。これによれば、２軸の角速度センサの検出結果に基づいて回転操作を検知することができるので、簡易な方法で回転操作を検知することができる。
【０１２７】
上記のように、第２ゲーム例において、情報処理システム１は、慣性センサの出力に基づく角速度であって、所定の２軸（すなわち、ｘ軸およびｚ軸）に関するコントローラの角速度に基づいて回転操作に関するコントローラの回転角度を判別することによって、回転操作を検知する。
【０１２８】
第２ゲーム例において、情報処理システム１は、コントローラに対する回転操作に応じて、当該コントローラに対して所定の振動を行わせる。図１５は、第２ゲーム例における回転操作とコントローラの振動との関係の一例を示す図である。第２ゲーム例においては、図１５に示すように、回転操作に応じたコントローラの振動は、常時行われるのではなく、回転操作に応じたタイミング（図１５では、ｔ１〜ｔ３のタイミング）で行われる。具体的には、コントローラは、１回の回転操作が行われる毎（すなわち、１回の回転操作が検知される毎）に、所定の波形の振動を１回行う。これによって、プレイヤは、回転操作が検知されたことを振動によって認識することができる。
【０１２９】
上記所定の波形は任意であるが、本実施形態においては、上記所定の波形は、振幅が、最初は小さく、途中で大きくなって、最後に再度小さくなるような波形である。これによれば、実際の皿回しにおいて皿を回すことによって棒に加わる力を振動によって再現することができ、コントローラが皿回しの棒であるかのようにプレイヤに感じさせることができる。つまり、上記振動によって、実際に皿回しを行っている感覚をプレイヤに与えることができる。
【０１３０】
なお、情報処理システム１は、コントローラに対する回転操作の速さに応じて、当該コントローラの振動の強さを変化させてもよい。すなわち、情報処理システム１は、検知された回転操作の速さが速いほど、上記所定の波形の振幅を大きくしてコントローラを振動させてもよい。これによれば、振動によって、実際に皿回しを行っている感覚としてよりリアルな感覚をプレイヤに与えることができる。なお、回転操作の速さは、例えば、第１ゲーム例と同様に１回の回転操作に要した時間に基づいて算出されてもよいし、１周の回転操作における移動速度の最大値として算出されてもよい。
【０１３１】
また、情報処理システム１は、コントローラに対する回転操作の大きさ（つまり、回転操作によるコントローラの円形軌跡の大きさ）に応じて、当該コントローラの振動の強さを変化させてもよい。すなわち、情報処理システム１は、検知された回転操作の大きさが大きいほど、上記所定の波形の振幅を大きくしてコントローラを振動させてもよい。なお、回転操作の大きさは、例えば、当該回転操作が行われている期間における、上記２軸の角速度を各成分とする２次元ベクトルの大きさの累積値に基づいて算出することができる。
【０１３２】
なお、第２ゲーム例において、回転操作を検知する方法、および、回転操作の速さ（または大きさ）を算出する方法は任意である。他の実施形態においては、例えば、回転操作の検知は、上記第１ゲーム例と同様の方法を用いて行われてもよいし、３軸の角速度センサの検出結果を用いて行われてもよい。また、情報処理システム１は、角速度センサに代えて（または共に）加速度センサの検出結果を用いて回転操作を検知してもよい。また、回転速度の速さは、慣性センサの検出結果（すなわち、コントローラの角速度および／または加速度）に基づく任意の方法で算出されてもよい。
【０１３３】
第２ゲーム例において、情報処理システム１は、上記回転操作に基づいて、仮想のゲーム空間における皿（換言すれば、皿オブジェクト）の動作を制御する。皿の動作を制御する方法は任意である。第２ゲーム例においては、次の動作ルールに基づいて皿の動作（具体的には、回転速度）が制御される。
・回転操作の速さ（および／または大きさ）に応じて、皿の回転速度を上げる。
・回転操作が行われていない場合、時間経過に応じて皿の回転速度を下げる。
・回転速度が一定以下になると、皿が棒から落ちる。
・回転速度が一定以上の状態が所定時間以上続くと、皿が棒から飛び出す（換言すれば、落ちる）。
・回転操作が行われていない場合に、コントローラが縦向きの状態から所定角度以上傾けられると、皿が落ちる。
・回転操作の軌道が円形から大きく外れると、皿が落ちる。
なお、縦向きの状態からコントローラが傾いた角度は、例えば、加速度センサおよび／または角速度センサの出力に基づいて算出することができる。上記の動作ルールより、プレイヤは、回転操作を行って皿の回転速度を上げたり、回転操作を止めて皿の回転速度を下げたりして、棒から皿が落ちないように操作を行う。
【０１３４】
情報処理システム１は、回転操作に基づく皿の動作を表すゲーム画像をディスプレイ１２に表示する。すなわち、上記動作ルールに基づいて決定される皿の回転速度に応じたゲーム画像がディスプレイ１２に表示される。例えば、皿の回転速度が大きすぎる場合、情報処理システム１は、皿が左右に大きくブレながら回転する様子を表すゲーム画像をディスプレイ１２に表示する。また例えば、皿の回転速度が小さすぎる場合、情報処理システム１は、皿が上下に揺れながら回転する様子を表すゲーム画像をディスプレイ１２に表示する。
【０１３５】
なお、第２ゲーム例において、情報処理システム１は、コントローラの振動に応じた音をスピーカ８８から出力するようにしてもよい。例えば、回転操作が行われる毎に、皿を回す効果音が出力されてもよい。このとき、回転操作の速さに応じて音量や音の高さが変化する効果音が出力されてもよい。
【０１３６】
第２ゲーム例において、情報処理システム１は、上記回転操作に応じた振動とは別に、皿が棒の上で回転している間、コントローラを振動させる。皿の回転に応じた振動は、回転操作に応じた振動とは異なり、皿が棒の上で回転している間は継続的に行われる。皿の回転に応じた振動によって、皿の回転による振動が棒に伝わっている様子を再現することができ、コントローラが皿回しの棒であるかのようにプレイヤに感じさせることができる。
【０１３７】
本実施形態においては、皿の回転に応じた振動は、皿の回転速度に応じた強さで行われる。すなわち、情報処理システム１は、皿の回転速度が大きいほど、皿の回転に応じた振動の振幅を大きくする。これによれば、プレイヤは、ディスプレイ１２に表示されるゲーム画像を見なくても、コントローラの振動によってゲーム状況（すなわち、皿の回転速度）を認識することができる。なお、第２ゲーム例において、皿の回転速度は、回転操作の速さに応じて大きくなるので、回転操作の速さが大きいほど、皿の回転に応じた振動が強くなる。
【０１３８】
第２ゲーム例において、情報処理システム１は、上記回転操作に応じた振動と、皿の回転に応じた振動とが同時に行われる場合、これら２種類の振動の強さを足し合わせた強さでコントローラを振動させる。なお、第２ゲーム例においては、上記２種類の振動は、同じ周波数の振動であるとする。ただし、他の実施形態においては、上記２種類の振動は、それぞれ異なる周波数であってもよい。また、他の実施形態においては、上記２種類の振動は、それぞれ異なる波形、および／または、振動パターンの振動であってもよい。
【０１３９】
以上のように、第２ゲーム例によれば、コントローラに対する回転操作に応じて当該コントローラを振動させるので、回転操作が正しく行われた（操作が検知された）か否かを、プレイヤに直感的に認識させることができる。また、コントローラの振動の強さによって、ゲーム状況（例えば、回転操作の速さ、あるいは、皿の回転速度）をプレイヤに直感的に認識させることができる。また、コントローラの振動によって、実際に皿を回している感覚をプレイヤに与えることができる。
【０１４０】
［第２ゲーム例における具体的なゲーム処理例］
図１６は、情報処理システムにおいて実行される、第２ゲーム例を行うためのゲーム処理（第２ゲーム処理と呼ぶ）の流れの一例を示すフローチャートである。なお、本実施形態においては、情報処理システム１がアクセス可能な記憶部に記憶されている上記ゲームプログラムは、第２ゲーム処理のためのプログラムを含む。図１６に示す一連の処理は、本体装置２のＣＰＵ８１が第２ゲーム処理のためのプログラムを実行することによって、開始される。
【０１４１】
ステップＳ２１において、ＣＰＵ８１は、コントローラから操作データを取得する。ステップＳ２１の処理は、上記第１ゲーム処理におけるステップＳ１の処理と同様である。ステップＳ２１の次に、ステップＳ２２の処理が実行される。
【０１４２】
ステップＳ２２において、ＣＰＵ８１は、コントローラに対して回転操作が行われたか否かを判定する。すなわち、ＣＰＵ８１は、ＤＲＡＭ８５に記憶される操作データに基づいて、当該操作データに係るコントローラに対して回転操作が行われたか否かを判定する。なお、回転操作の検知は、上記“［第２ゲーム例の概要］”の欄で述べた方法によって行われる。ステップＳ２２の判定結果が肯定である場合、ステップＳ２３の処理が実行される。一方、ステップＳ２２の判定結果が否定である場合、ステップＳ２３の処理がスキップされて、後述するステップＳ２４の処理が実行される。
【０１４３】
ステップＳ２３において、ＣＰＵ８１は、回転操作に応じた振動をコントローラに行わせることを決定する。具体的には、ＣＰＵ８１は、上述した所定の波形の振動（つまり、回転操作に応じた振動）について、ステップＳ２２で検知された回転操作の速さに応じた振動強さ（すなわち、振幅）を決定する。なお、ステップＳ２３で決定された振動に関する情報は、ＤＲＡＭ８５に記憶される。ステップＳ２３の次に、ステップＳ２４の処理が実行される。
【０１４４】
ステップＳ２４において、ＣＰＵ８１は、仮想のゲーム空間における皿の動作を制御する。すなわち、ＣＰＵ８１は、上記ステップＳ２２で回転操作が検知されたか否か等に基づいて、上述した動作ルールに従って皿の動作（例えば、回転速度、および、皿から落ちるか否か等）を決定する。ステップＳ２４で決定された皿の動作に関する情報は、ＤＲＡＭ８５に記憶される。ステップＳ２４の次に、ステップＳ２５の処理が実行される。
【０１４５】
ステップＳ２５において、ＣＰＵ８１は、ステップＳ２４で決定された皿の動作に応じた振動（すなわち、皿の回転に応じた振動）に関する振動態様（具体的には、振動の強さ）を決定する。すなわち、ＣＰＵ８１は、ＤＲＡＭ８５に記憶されている、皿の動作に関する情報に基づいて、皿の回転に応じた振動を行うか否か、および、当該振動を行う場合には振動の強さを決定する。なお、ステップＳ２５で決定された振動に関する情報は、ＤＲＡＭ８５に記憶される。ステップＳ２５の次に、ステップＳ２６の処理が実行される。
【０１４６】
ステップＳ２６において、ＣＰＵ８１は、コントローラを振動させる。すなわち、ＣＰＵ８１は、ＤＲＡＭ８５に記憶されている、振動に関する情報を参照して、コントローラの振動子を振動させるための上記振動指令をコントローラへ送信する。第２ゲーム例においては、上記ステップＳ２３で決定された振動（すなわち、回転操作に応じた振動）と、上記ステップＳ２５で決定された振動（すなわち、皿の回転に応じた振動）とを足し合わせた振動をコントローラに行わせるように、振動指令の内容が決定される。なお、ステップＳ２６において、上記振動指令によって指定される内容は上記ステップＳ４とは異なるものの、コントローラを振動させるための処理動作は、上記ステップＳ４の処理と同様である。
【０１４７】
なお、上記回転操作に応じた振動は、ステップＳ２１〜Ｓ２８の処理ループにおける複数回のステップＳ２６の処理に亘って実行される。したがって、上記回転操作に応じた振動が実行される期間中における上記ステップＳ２６の処理においては、ＣＰＵ８１は、上記２種類の振動を足し合わせた振動をコントローラに行わせるように、当該期間に送信される各振動指令の内容を決定する。ステップＳ２６の次に、ステップＳ２７の処理が実行される。
【０１４８】
ステップＳ２７において、ＣＰＵ８１は、ゲーム画像をディスプレイ１２に表示するとともに、ＢＧＭや効果音等のゲーム音をスピーカ８８から出力する。本実施形態においては、上記ステップＳ２７の処理が所定時間（すなわち、１フレーム時間）に１回の割合で実行されることによって、ゲーム画像の動画およびゲーム音が出力される。第２ゲーム例においては、ＣＰＵ８１は、例えば、上記ステップＳ２４で決定された皿の動作を表すゲーム画像を生成してディスプレイ１２に表示する。また例えば、コントローラの振動に応じたゲーム音がスピーカ８８から出力される。ステップＳ２７の次に、ステップＳ２８の処理が実行される。
【０１４９】
ステップＳ２８において、ＣＰＵ８１は、ゲームを終了するか否かを判定する。例えば、皿が落ちてゲームオーバーとなった場合、または、皿を継続して所定時間回し続けることができてゲームクリアとなった場合、ＣＰＵ８１は、ゲームを終了すると判定する。ステップＳ２８の判定結果が否定である場合、ステップＳ２１の処理が再度実行される。一方、ステップＳ２８の判定結果が肯定である場合、ＣＰＵ８１は、図１６に示す第２ゲーム処理を終了する。
【０１５０】
［３−３：第３ゲーム例］
図１７〜図１９を参照して、第３ゲーム例について説明する。第３ゲーム例は、１人でプレイ可能なゲームであり、プレイヤは、金庫のダイヤルのようにコントローラを回して操作して金庫を開けるゲームである。なお、第３ゲーム例では、プレイヤは１つのコントローラを用いるので、複数のコントローラを用いることによって複数人のプレイヤが同時にゲームを行うことも可能である。
【０１５１】
［第３ゲーム例の概要］
図１７は、第３ゲーム例における操作の一例を示す図である。第３ゲーム例では、図１７に示すように、プレイヤは、コントローラを用いて回転操作を行う。第３ゲーム例における回転操作は、金庫のダイヤルのようにコントローラを回す操作である。すなわち、第３ゲーム例では、プレイヤは、コントローラを横向きにした状態で、コントローラの長手方向に垂直な所定軸（図１７参照。具体的には、図４または図５に示すｘ軸）回りにコントローラを回転させる操作である。図１７に示すように、第３ゲーム例においては、回転操作は、コントローラの姿勢を変化させる操作である。
【０１５２】
第３ゲーム例においては、情報処理システム１は、コントローラの長手方向に垂直な上記所定軸回りの姿勢を算出する。なお、上記姿勢の算出方法は任意であり、慣性センサの検出結果に基づいて上記姿勢を算出することができる。例えば、情報処理システム１は、上記所定軸に垂直な２軸の加速度に基づいて上記姿勢を算出することも可能であるし、上記所定軸回りの角速度に基づいて上記姿勢を算出することも可能である。第３ゲーム例においては、コントローラの上記姿勢が変化した場合、回転操作が行われたことになる。
【０１５３】
上記のように、第３ゲーム例においては、少なくとも所定軸回りに関するコントローラの姿勢を慣性センサの出力に基づいて算出し、算出される姿勢に基づいて回転操作を検知する。
【０１５４】
図１８は、第３ゲーム例における回転操作と振動強さとの関係の一例を示す図である。図１８に示すグラフにおいて、横軸は、回転操作によって変化されるコントローラの回転角度（すなわち、上記所定軸回りの姿勢に関する回転角度）を示し、縦軸は、コントローラの振動強さを示す。図１８では、コントローラの回転角度が時間に応じて変化していく場合において、振動が行われる期間を示している。
【０１５５】
図１８に示すように、第３ゲーム例では、情報処理システム１は、第１〜第３の振動という３種類の振動をコントローラに行わせる。ここで、各振動の周波数は、それぞれ異なっている。具体的には、振動の周波数は、第１の振動、第２の振動、第３の振動の順で高くなる。
【０１５６】
第１の振動は、コントローラの回転速度（すなわち、コントローラの回転操作の速さ、換言すれば、上記所定軸回りに関する姿勢が変化する速度）に応じた振動である。すなわち、情報処理システム１は、コントローラの回転速度に応じた強さで第１の振動をコントローラに行わせる。図１８に示すように、第１の振動は、コントローラの回転速度が相対的に速い場合に強くなり、コントローラの回転速度が相対的に低い場合に弱くなる。なお、第３ゲーム例では、回転速度が所定値よりも大きい場合（図１８に示す例では、タイミングｔ１１より前の期間）、情報処理システム１は、第２の振動および第３の振動よりも強い振動で第１の振動をコントローラに行わせる。
【０１５７】
上述のように、第３ゲーム例において、第１の振動は、相対的に低い周波数の振動である。このような第１の振動によって、情報処理システム１は、金庫のダイヤルを回すときに生じる重さに似た感覚をプレイヤに与えることができる。第３ゲーム例においては、コントローラを早く回すほど第１の振動が強くなるので、プレイヤはより重さを感じるようになる。これによって、実際にダイヤルを回しているような感覚をプレイヤに与えることができる。
【０１５８】
第２の振動は、コントローラの姿勢（換言すれば、回転角度）が所定の角度（例えば、５°）だけ変化する毎に行われる振動である。すなわち、情報処理システム１は、所定の角度毎に基準角度（図１８に示すθ１〜θ６）を予め設定しておき、コントローラの姿勢が基準角度となったことに応じて、第２の振動をコントローラに行わせる。なお、上記第１の振動は、コントローラが回転している間は常時実行されるのに対して、第２の振動は、コントローラの姿勢が基準角度となったことに応じて、所定時間だけ実行される（図１８参照）。第２の振動は、コントローラの姿勢が所定角度だけ変化する毎に実行されるので、プレイヤは、第２の振動が発生する頻度によって、コントローラを回転させる速度を認識することができる。また、第３ゲーム例においては、第２の振動の強さは一定である。
【０１５９】
上述のように、第３ゲーム例において、第２の振動は、相対的に高い周波数の振動である。このような第２の振動によって、情報処理システム１は、金庫のダイヤルを回すときに生じるクリック感（すなわち、カチカチとした感覚）に似た感覚をプレイヤに与えることができる。つまり、第２の振動によっても、実際にダイヤルを回しているような感覚をプレイヤに与えることができる。
【０１６０】
上記のように、第３ゲーム例においては、情報処理システム１は、少なくとも所定軸（すなわち、長手方向に垂直な軸）回りに関するコントローラの姿勢を慣性センサの出力に基づいて算出する。そして、情報処理システム１は、回転操作の速さに応じた強さの第１の振動と、コントローラの姿勢が所定量変化するごとに実行される第２の振動とをコントローラに実行させる。
【０１６１】
第３の振動は、コントローラの姿勢が、所定の目標角度（図１８に示すθ６）となったことに応じて行われる振動である。ここで、目標角度は、プレイヤが回転操作を行う目標にする角度であり、コントローラの姿勢を目標角度にして所定条件を満たす（例えば、所定時間停止する）ことで、ダイヤルのロックが解除される。
【０１６２】
情報処理システム１は、上記目標角度を予め設定しておき、コントローラの姿勢が目標角度となったことに応じて、第３の振動をコントローラに行わせる。なお、上記第１の振動は、コントローラが回転している間は常時実行されるのに対して、第３の振動は、コントローラの姿勢が目標角度となったことに応じて、所定時間だけ実行される（図１８参照）。また、第３ゲーム例においては、第３の振動の強さは一定である。
【０１６３】
なお、第３の振動は、第２の振動と第３の振動とをプレイヤが区別できるものであればよい。つまり、第３の振動は、振動の態様および／または振動の期間が第２の振動と異なっていればよい。例えば、図１８においては、第３の振動は、第２の振動よりも強いものとするが、他の実施形態においては、第２の振動と同じ強さであってもよいし、第２の振動より弱くてもよい。また、第３の振動は、第２の振動とは同じ周波数で、振動の期間、振動の強さ、および振動パターンのうち少なくともいずれかが異なっていてもよい。
【０１６４】
ここで、第３のゲーム例では、第２の振動の実行期間と第３の振動の実行期間とが重複する場合には、情報処理システム１は、第３の振動のみをコントローラに実行させる。また、第１の振動の実行期間と第２の振動または第３の振動の実行期間とが重複する場合には、情報処理システム１は、コントローラに２種類の振動を同時に実行させる。つまり、図１８に示すように、第３のゲーム例では、第１の振動と第２または第３の振動という、２つの異なる周波数の振動が同時に実行される場合がある。このような場合、情報処理システム１は、２つの振動の波形を合成した波形を算出し、算出された波形でコントローラを振動させるようにしてもよい。
【０１６５】
なお、上述のように、本実施形態においては、本体装置２は、上述の単位時間（例えば、５［ｍｓ］）毎に振動の振幅および周波数を指定する振動指令を左コントローラ３へ送信する。そのため、情報処理システム１は、２つの異なる周波数の振動を同時に実行する場合、振動指令において指定する振幅および周波数を次のように決定してもよい。
【０１６６】
例えば、振動指令のある単位時間に対応する単位期間において、周波数Ｗｆ１および振幅Ｗａ１である第１の振動と、周波数Ｗｆ２および振幅Ｗａ２である第２の振動とを合成する場合を考える。この場合、上記単位期間における振動指令が指定する振幅は、振幅Ｗａ１と振幅Ｗａ２との和として算出されてもよい。また、上記単位期間における振動指令が指定する周波数は、周波数Ｗｆ１と周波数Ｗｆ２とについて所定の重み（例えば、振幅に応じた重み）を付した平均値として算出されてもよい。なお、所定の重みは任意であり、振動指令が指定する周波数は、例えば、周波数Ｗｆ１と周波数Ｗｆ２との単なる平均値であってもよい。
【０１６７】
なお、他の実施形態においては、２つの異なる周波数の振動が同時に実行される場合には、本体装置２は、いずれか一方の振動（例えば、振幅が大きい方の振動）のみをコントローラに実行させるようにしてもよい。
【０１６８】
第３ゲーム例において、プレイヤは、コントローラを用いて上記回転操作を行って、コントローラを上記目標角度に合わせる。ここで、コントローラが目標角度となると、コントローラは上記第３の振動を行うので、プレイヤは、第３の振動によって目標角度を知ることができる。第３ゲーム例では、コントローラが目標角度となった状態で所定時間だけコントローラを静止させることによって、ダイヤルのロックが解除される。なお、ダイヤルのロックが解除されると、新たな目標角度が設定される。第３ゲーム例では、ダイヤルのロックが所定回数（例えば３回）解除されることで、金庫が開いてゲームクリアとなる。
【０１６９】
第３のゲーム例では、情報処理システム１は、コントローラの姿勢に応じて金庫のダイヤルが回転する様子を表すゲーム画像をディスプレイ１２に表示する。また、情報処理システム１は、ダイヤルのロックが解除されたことを示す画像をディスプレイ１２に表示してもよい。
【０１７０】
なお、第３ゲーム例において、情報処理システム１は、コントローラの振動に応じた音をスピーカ８８から出力するようにしてもよい。例えば、上記第２の振動に応じて、金庫のダイヤルが回転する効果音（例えば、カチカチという音）が出力されてもよい。また、第１の振動が行われる場合、回転操作の速さに応じて音量や音の高さが変化する効果音が出力されてもよい。なお、第３ゲーム例においては、第３の振動に応じた音は出力されないものとする。ただし、他の実施形態においては、第３の振動に応じた音が出力されてもよい。
【０１７１】
以上のように、第３のゲーム例によれば、コントローラを回転させる操作の速さに応じてコントローラの振動（具体的には、第１の振動）の強さが増加する。これによれば、プレイヤは、回転操作の速さを直感的に認識することができるとともに、実際にダイヤルを回しているような感覚を得ることができる。
【０１７２】
［第３ゲーム例における具体的なゲーム処理例］
図１９は、情報処理システムにおいて実行される、第３ゲーム例を行うためのゲーム処理（第３ゲーム処理と呼ぶ）の流れの一例を示すフローチャートである。なお、本実施形態においては、情報処理システム１がアクセス可能な記憶部に記憶されている上記ゲームプログラムは、第３ゲーム処理のためのプログラムを含む。図１９に示す一連の処理は、本体装置２のＣＰＵ８１が第３ゲーム処理のためのプログラムを実行することによって、開始される。
【０１７３】
ステップＳ４１において、ＣＰＵ８１は、操作データを取得する。ステップＳ４１の処理は、上記第１ゲーム処理におけるステップＳ１の処理と同様である。ステップＳ４１の次に、ステップＳ４２の処理が実行される。
【０１７４】
ステップＳ４２において、ＣＰＵ８１は、コントローラの姿勢を算出する。すなわち、ＣＰＵ８１は、ＤＲＡＭ８５に記憶されている操作データに基づいて、上記“［第３ゲーム例の概要］”で述べた方法によって、コントローラの姿勢を算出する。算出された姿勢を示す情報は、ＤＲＡＭ８５に記憶される。ステップＳ４２の次に、ステップＳ４３の処理が実行される。
【０１７５】
ステップＳ４３において、ＣＰＵ８１は、コントローラの回転速度に応じて第１の振動の強さを決定する。すなわち、ＣＰＵ８１は、ＤＲＡＭ８５に記憶されている姿勢を示す情報に基づいてコントローラの回転速度を算出し、算出された回転速度に基づいて第１の振動の強さを決定する。決定された第１の振動の強さを示す情報は、ＤＲＡＭ８５に記憶される。なお、コントローラが回転していない場合（すなわち、回転速度が０である場合）は、振動の強さが０に設定される。ステップＳ４３の次に、ステップＳ４４の処理が実行される。
【０１７６】
ステップＳ４４において、ＣＰＵ８１は、コントローラの姿勢が上記目標角度となったか否かを判定する。この判定は、ＤＲＡＭ８５に記憶されている姿勢を示す情報に基づいて行われる。ステップＳ４４の判定結果が肯定である場合、ステップＳ４５の処理が実行される。一方、ステップＳ４４の判定結果が否定である場合、後述するステップＳ４６の処理が実行される。
【０１７７】
ステップＳ４５において、ＣＰＵ８１は、第３の振動を行うことを決定する。すなわち、ＣＰＵ８１は、第３の振動を行うことを示す情報をＤＲＡＭ８５に記憶する。ステップＳ４５の次に、ステップＳ４８の処理が実行される。
【０１７８】
ステップＳ４６において、ＣＰＵ８１は、コントローラが所定角度回転したか否かを判定する。すなわち、ＣＰＵ８１は、ＤＲＡＭ８５に記憶されている姿勢を示す情報に基づいて、コントローラの姿勢が上記基準角度となったか否かを判定する。ステップＳ４６の判定結果が肯定である場合、ステップＳ４７の処理が実行される。一方、ステップＳ４６の判定結果が否定である場合、ステップＳ４７の処理がスキップされて、後述するステップＳ４８の処理が実行される。
【０１７９】
ステップＳ４７において、ＣＰＵ８１は、第２の振動を行うことを決定する。すなわち、ＣＰＵ８１は、第２の振動を行うことを示す情報をＤＲＡＭ８５に記憶する。ステップＳ４７の次に、ステップＳ４８の処理が実行される。
【０１８０】
ステップＳ４８において、ＣＰＵ８１は、コントローラを振動させる。すなわち、ＣＰＵ８１は、ＤＲＡＭ８５に記憶されている、第１〜第３の振動に関する情報に基づいて、第１の振動と、必要に応じて第２または第３の振動とを考慮した制御指令を生成する。なお、制御指令において指定される周波数および振幅は、上記“［第３ゲーム例の概要］”で述べた方法によって算出される。なお、ステップＳ４８において、上記振動指令によって指定される内容は上記ステップＳ４とは異なるものの、コントローラを振動させるための処理動作は、上記ステップＳ４の処理と同様である。上記ステップＳ４８の処理によって、ステップＳ４３で決定された第１の振動と、ステップＳ４７で決定された第２の振動と、ステップＳ４５で決定された第３の振動とを考慮した振動が、コントローラによって行われる。
【０１８１】
なお、１回の第２の振動および１回の第３の振動は、ステップＳ４１〜Ｓ５０の処理ループにおける複数回のステップＳ４８の処理に亘って実行される。したがって、１回の第２の振動および／または第３の振動が実行される期間中における上記ステップＳ４８の処理においては、ＣＰＵ８１は、第１の振動と第２の振動とを考慮した振動をコントローラに行わせるように、当該期間に送信される各振動指令の内容を決定する。ステップＳ４８の次に、ステップＳ４９の処理が実行される。
【０１８２】
ステップＳ４９において、ＣＰＵ８１は、ゲーム画像をディスプレイ１２に表示するとともに、ＢＧＭや効果音等のゲーム音をスピーカ８８から出力する。本実施形態においては、上記ステップＳ４９の処理が所定時間（すなわち、１フレーム時間）に１回の割合で実行されることによって、ゲーム画像の動画およびゲーム音が出力される。第３ゲーム例においては、ＣＰＵ８１は、例えば、上記ステップＳ４２で算出されたコントローラの姿勢に応じて金庫のダイヤルが回転する様子を表すゲーム画像を生成してディスプレイ１２に表示する。また例えば、コントローラの振動に応じたゲーム音がスピーカ８８から出力される。ステップＳ４９の次に、ステップＳ５０の処理が実行される。
【０１８３】
ステップＳ５０において、ＣＰＵ８１は、ゲームを終了するか否かを判定する。例えば、金庫が開いてゲームクリアとなった場合、または、ゲームが開始されてからの時間が所定の制限時間に達してゲームオーバーとなった場合、ＣＰＵ８１は、ゲームを終了すると判定する。ステップＳ５０の判定結果が否定である場合、ステップＳ５１の処理が再度実行される。一方、ステップＳ５０の判定結果が肯定である場合、ＣＰＵ８１は、図１９に示す第３ゲーム処理を終了する。
【０１８４】
［４．上記実施形態のまとめと変形例］
上記実施形態における情報処理システムは、操作装置（すなわち、コントローラ）と情報処理装置（すなわち、本体装置２）とを含むゲームシステムである。操作装置は、下記の構成を備える。
・慣性センサ（すなわち、加速度センサ、および／または、角速度センサ）
・慣性センサからのデータを含む操作データを情報処理装置へ送信する操作データ送信部（すなわち、通信制御部）
・情報処理装置から取得される信号（すなわち、振動指令）に基づいて振動する振動部（すなわち、振動子）
また、情報処理装置は、下記の構成を備える。
・操作データを取得する操作データ取得部（ステップＳ１，Ｓ７，Ｓ２１，Ｓ４１）
・操作データに基づいて、操作装置を回す操作（すなわち、回転操作）の速さを判定する判定部（ステップＳ３，Ｓ２３，Ｓ４３）
・回す操作の速さに応じた強さで前記振動部を振動させるための振動信号を生成する振動信号生成部（ステップＳ４，Ｓ２６，Ｓ４８）
・振動信号を操作装置へ送信する振動信号送信部（すなわち、コントローラ通信部）
【０１８５】
なお、上記実施形態における情報処理システムは、コントローラを動かす操作の速さを判定していると言うこともできる。他の実施形態においては、情報処理システムは、動かす操作として、上記実施形態における回転操作に代えて、コントローラを振る操作、あるいは、コントローラを突く操作（図１２参照）を検知し、これらの操作の速さを算出するようにしてもよい。このとき、情報処理システム１は、上記実施形態と同様に、コントローラを動かす操作の速さに応じて、コントローラの振動の強さを変化させるようにしてもよい。なお、動かす操作の速さは、例えば、１回の動かす操作を行う速さ（換言すれば、１回の動かす操作を行うのに要した時間の逆数）であってもよいし、動かす操作においてコントローラを移動させる速度（換言すれば、単位時間当たりの回転量）であってもよいし、動かす操作を行う頻度であってもよい。
【０１８６】
（回転操作の速さに応じた振動態様に関する変形例）
他の実施形態においては、情報処理システム１は、回転操作の速さに応じて、コントローラの振動の周波数を変化させるようにしてもよい。例えば、上記第１ゲーム例の第１段階において、情報処理システム１は、回転操作に応じて溜められた魔法パワーが多いほど高い周波数となるように、コントローラの振動を制御してもよい。これによれば、魔法パワーが大きいほど細かい振動（換言すれば、回転数が速い印象を与える振動）を生じさせることができる。なお、上記第１ゲーム例の第１段階においては、情報処理システム１は、回転操作に応じて溜められた魔法パワーが多いほど低い周波数となるように、コントローラの振動を制御してもよい。これによれば、魔法パワーが大きいほど、重く感じる振動を生じさせることができる。
【０１８７】
また、上記第２ゲーム例において、情報処理システム１は、回転操作の速さが速いほど高い周波数となるように、コントローラの振動を制御してもよい。これによれば、上記実施形態と同様、実際に皿回しを行っている感覚をよりリアルにすることができる。また、上記第３ゲーム例において、情報処理システム１は、コントローラの回転速度が速いほど高い周波数となるように、コントローラの振動を制御してもよい。これによれば、上記実施形態と同様に、金庫のダイヤルを回している感覚をプレイヤに与えることができる。
【０１８８】
他の実施形態においては、回転操作の速さに応じて、コントローラの振動の波形を変化させるようにしてもよい。これによっても、回転操作の速さに応じて振動の強さまたは周波数を変化させる場合と同様、回転操作の速さに応じて振動の態様を変化させることができる。したがって、上記の場合と同様、回転操作の速さを振動の態様によってプレイヤに認識させることができる。例えば、上記第１ゲーム例の第１段階において、情報処理システム１は、回転操作に応じて溜められた魔法パワーが多いほど、多くの周波数成分を含む振動波形となるように、コントローラの振動を制御してもよい。
【０１８９】
なお、他の実施形態においては、情報処理システム１は、回転操作の速さに応じて、コントローラの振動の強さ、周波数、および波形のうちいくつかまたは全部を変化させるようにしてもよい。
【産業上の利用可能性】
【０１９０】
上記実施形態は、操作に応じたゲーム状況を振動によってより具体的に表現すること等を目的として、例えば、ゲームシステムやゲームプログラムとして利用することが可能である。
【符号の説明】
【０１９１】
１  情報処理システム
２  本体装置
３  左コントローラ
４  右コントローラ
８１  ＣＰＵ
１０４，１１４  加速度センサ
１０５，１１５  角速度センサ
１０７，１１７  振動子
【図１】
2018108296.tif 000003
【図２】
2018108296.tif 000004
【図３】
2018108296.tif 000005
【図４】
2018108296.tif 000006
【図５】
2018108296.tif 000007
【図６】
2018108296.tif 000008
【図７】
2018108296.tif 000009
【図８】
2018108296.tif 000010
【図９】
2018108296.tif 000011
【図１０】
2018108296.tif 000012
【図１１】
2018108296.tif 000013
【図１２】
2018108296.tif 000014
【図１３】
2018108296.tif 000015
【図１４】
2018108296.tif 000016
【図１５】
2018108296.tif 000017
【図１６】
2018108296.tif 000018
【図１７】
2018108296.tif 000019
【図１８】
2018108296.tif 000020
【図１９】
2018108296.tif 000021