特許第6893417号(P6893417)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 任天堂株式会社の特許一覧

特許6893417ゲームシステム、ゲームプログラム、情報処理装置、および、情報処理方法
<>
  • 特許6893417-ゲームシステム、ゲームプログラム、情報処理装置、および、情報処理方法 図000002
  • 特許6893417-ゲームシステム、ゲームプログラム、情報処理装置、および、情報処理方法 図000003
  • 特許6893417-ゲームシステム、ゲームプログラム、情報処理装置、および、情報処理方法 図000004
  • 特許6893417-ゲームシステム、ゲームプログラム、情報処理装置、および、情報処理方法 図000005
  • 特許6893417-ゲームシステム、ゲームプログラム、情報処理装置、および、情報処理方法 図000006
  • 特許6893417-ゲームシステム、ゲームプログラム、情報処理装置、および、情報処理方法 図000007
  • 特許6893417-ゲームシステム、ゲームプログラム、情報処理装置、および、情報処理方法 図000008
  • 特許6893417-ゲームシステム、ゲームプログラム、情報処理装置、および、情報処理方法 図000009
  • 特許6893417-ゲームシステム、ゲームプログラム、情報処理装置、および、情報処理方法 図000010
  • 特許6893417-ゲームシステム、ゲームプログラム、情報処理装置、および、情報処理方法 図000011
  • 特許6893417-ゲームシステム、ゲームプログラム、情報処理装置、および、情報処理方法 図000012
  • 特許6893417-ゲームシステム、ゲームプログラム、情報処理装置、および、情報処理方法 図000013
  • 特許6893417-ゲームシステム、ゲームプログラム、情報処理装置、および、情報処理方法 図000014
  • 特許6893417-ゲームシステム、ゲームプログラム、情報処理装置、および、情報処理方法 図000015
  • 特許6893417-ゲームシステム、ゲームプログラム、情報処理装置、および、情報処理方法 図000016
  • 特許6893417-ゲームシステム、ゲームプログラム、情報処理装置、および、情報処理方法 図000017
  • 特許6893417-ゲームシステム、ゲームプログラム、情報処理装置、および、情報処理方法 図000018
  • 特許6893417-ゲームシステム、ゲームプログラム、情報処理装置、および、情報処理方法 図000019
  • 特許6893417-ゲームシステム、ゲームプログラム、情報処理装置、および、情報処理方法 図000020
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6893417
(24)【登録日】2021年6月3日
(45)【発行日】2021年6月23日
(54)【発明の名称】ゲームシステム、ゲームプログラム、情報処理装置、および、情報処理方法
(51)【国際特許分類】
   A63F 13/285 20140101AFI20210614BHJP
   A63F 13/211 20140101ALI20210614BHJP
   A63F 13/428 20140101ALI20210614BHJP
   G06F 3/01 20060101ALI20210614BHJP
【FI】
   A63F13/285
   A63F13/211
   A63F13/428
   G06F3/01 515
   G06F3/01 560
【請求項の数】24
【全頁数】39
(21)【出願番号】特願2017-538(P2017-538)
(22)【出願日】2017年1月5日
(65)【公開番号】特開2018-108296(P2018-108296A)
(43)【公開日】2018年7月12日
【審査請求日】2018年9月13日
【審判番号】不服2020-10596(P2020-10596/J1)
【審判請求日】2020年7月30日
(73)【特許権者】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】100158780
【弁理士】
【氏名又は名称】寺本 亮
(74)【代理人】
【識別番号】100121359
【弁理士】
【氏名又は名称】小沢 昌弘
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】小嶋 拓哉
(72)【発明者】
【氏名】水田 真人
(72)【発明者】
【氏名】片岡 亮
(72)【発明者】
【氏名】新居 勝
【合議体】
【審判長】 尾崎 淳史
【審判官】 藤本 義仁
【審判官】 畑井 順一
(56)【参考文献】
【文献】 特開2010−142561(JP,A)
【文献】 特2010−142561(JP,A)
【文献】 特開2007−296219(JP,A)
【文献】 特開−2013−168124(JP,A)
【文献】 特開2008−136681(JP,A)
【文献】 国際公開第2016/136934(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
A63F 9/24, 13/00 - 13/98
(57)【特許請求の範囲】
【請求項1】
操作装置と情報処理装置を含むゲームシステムであって、
前記操作装置は、
慣性センサと、
前記慣性センサからのデータを含む操作データを前記情報処理装置へ送信する操作データ送信部と、
前記情報処理装置から取得される振動信号に基づいて振動する振動部とを備え、
前記情報処理装置は、
前記操作データを取得する操作データ取得部と、
前記操作データに基づいて、前記操作装置を回す操作の速さを判定する判定部と、
記振動部を所定の期間において継続して振動させるための振動信号を生成する振動信号生成部と、
前記振動信号を前記操作装置へ送信する振動信号送信部とを備え、
前記判定部は、前記操作装置を1周回す操作を検知し、
前記振動信号生成部は、前記所定の期間において、前記操作装置を1周回す操作が検知される毎に前記振動部の振動の強さが強くなるように前記振動信号を生成する、ゲームシステム。
【請求項2】
操作装置と情報処理装置を含むゲームシステムであって、
前記操作装置は、
慣性センサと、
前記慣性センサからのデータを含む操作データを前記情報処理装置へ送信する操作データ送信部と、
前記情報処理装置から取得される振動信号に基づいて振動する振動部とを備え、
前記情報処理装置は、
前記操作データを取得する操作データ取得部と、
前記操作データに基づいて、前記操作装置を回す操作の速さを判定する判定部と、
記振動部を振動させるための振動信号を生成する振動信号生成部と、
前記振動信号を前記操作装置へ送信する振動信号送信部とを備え、
前記判定部は、前記操作装置を1周回す操作を検知し、
前記振動信号生成部は、前記操作装置を1周回す操作が検知される毎に、前記振動部に、前記操作装置を1周回す操作の速さに応じた強さの所定の波形の振動を実行させるように前記振動信号を生成する、ゲームシステム。
【請求項3】
操作装置と情報処理装置を含むゲームシステムであって、
前記操作装置は、
慣性センサと、
前記慣性センサからのデータを含む操作データを前記情報処理装置へ送信する操作データ送信部と、
前記情報処理装置から取得される振動信号に基づいて振動する振動部とを備え、
前記情報処理装置は、
前記操作データを取得する操作データ取得部と、
前記操作データに基づいて、前記操作装置を回す操作の速さを判定する判定部と、
前記回す操作の速さに応じた強さで前記振動部を振動させるための振動信号を生成する振動信号生成部と、
前記振動信号を前記操作装置へ送信する振動信号送信部とを備え、
前記情報処理装置は、少なくとも所定軸回りに関する前記操作装置の姿勢を前記慣性センサの出力に基づいて算出し、
前記振動信号生成部は、前記所定軸回りに関する前記回す操作の速さに応じた強さの第1の振動と、前記所定軸回りに関する前記操作装置の姿勢が所定の角度だけ変化する毎に実行される、前記第1の振動とは異なる第2の振動を前記振動部に実行させるように前記振動信号を生成する、ゲームシステム。
【請求項4】
前記振動信号生成部は、前記回す操作の速さが相対的に速い場合に、前記回す操作の速さが相対的に遅い場合に比べて前記振動部がより強く振動するように前記振動信号を生成する、請求項2または請求項3のいずれか1項に記載のゲームシステム。
【請求項5】
前記振動信号生成部は、前記振動部が振動する周波数が前記回す操作の速さに応じて変化するよう前記振動信号を生成する、請求項1から請求項4のいずれか1項に記載のゲームシステム。
【請求項6】
前記振動信号生成部は、前記振動信号として、振動の波形を示す信号を生成し、
前記振動部は、前記振動信号が示す波形に基づいて振動し、
前記振動信号生成部は、前記振動信号が示す波形が前記回す操作の速さに応じて変化するよう前記振動信号を生成する、請求項1から請求項5のいずれか1項に記載のゲームシステム。
【請求項7】
前記判定部は、前記慣性センサの出力における周期的な変化を特定し、特定された周期的な変化に基づいて前記回す操作を検知する、請求項1または請求項2に記載のゲームシステム。
【請求項8】
前記判定部は、前記慣性センサの出力に基づく角速度であって、所定の2軸に関する前記操作装置の角速度に基づいて前記回す操作に関する前記操作装置の回転角度を判別することによって、前記回す操作を検知する、請求項1から請求項のいずれか1項に記載のゲームシステム。
【請求項9】
前記判定部は、少なくとも所定軸回りに関する前記操作装置の姿勢を前記慣性センサの出力に基づいて算出し、算出される姿勢に基づいて前記回す操作を検知する、請求項1から請求項のいずれか1項に記載のゲームシステム。
【請求項10】
操作装置と通信可能な情報処理装置のコンピュータにおいて実行されるゲームプログラムであって、
前記操作装置は、
慣性センサと、
前記慣性センサからのデータを含む操作データを前記情報処理装置へ送信する操作データ送信部と、
前記情報処理装置から取得される振動信号に基づいて振動する振動部とを備え、
前記操作データを取得する操作データ取得手段と、
前記操作データに基づいて、前記操作装置を回す操作の速さを判定する判定手段と、
記振動部を所定の期間において継続して振動させるための振動信号を生成する振動信号生成手段として前記コンピュータを機能させ、
前記判定手段は、前記操作装置を1周回す操作を検知し、
前記振動信号生成手段は、前記所定の期間において、前記操作装置を1周回す操作が検知される毎に前記振動部の振動の強さが強くなるように前記振動信号を生成する、ゲームプログラム。
【請求項11】
操作装置と通信可能な情報処理装置のコンピュータにおいて実行されるゲームプログラムであって、
前記操作装置は、
慣性センサと、
前記慣性センサからのデータを含む操作データを前記情報処理装置へ送信する操作データ送信部と、
前記情報処理装置から取得される振動信号に基づいて振動する振動部とを備え、
前記操作データを取得する操作データ取得手段と、
前記操作データに基づいて、前記操作装置を回す操作の速さを判定する判定手段と、
記振動部を振動させるための振動信号を生成する振動信号生成手段として前記コンピュータを機能させ、
前記判定手段は、前記操作装置を1周回す操作を検知し、
前記振動信号生成手段は、前記操作装置を1周回す操作が検知される毎に、前記振動部に、前記操作装置を1周回す操作の速さに応じた強さの所定の波形の振動を実行させるように前記振動信号を生成する、ゲームプログラム。
【請求項12】
操作装置と通信可能な情報処理装置のコンピュータにおいて実行されるゲームプログラムであって、
前記操作装置は、
慣性センサと、
前記慣性センサからのデータを含む操作データを前記情報処理装置へ送信する操作データ送信部と、
前記情報処理装置から取得される振動信号に基づいて振動する振動部とを備え、
前記操作データを取得する操作データ取得手段と、
前記操作データに基づいて、前記操作装置を回す操作の速さを判定する判定手段と、
前記回す操作の速さに応じた強さで前記振動部を振動させるための振動信号を生成する振動信号生成手段として前記コンピュータを機能させ、
前記情報処理装置は、少なくとも所定軸回りに関する前記操作装置の姿勢を前記慣性センサの出力に基づいて算出し、
前記振動信号生成手段は、前記所定軸回りに関する前記回す操作の速さに応じた強さの第1の振動と、前記所定軸回りに関する前記操作装置の姿勢が所定の角度だけ変化する毎に実行される、前記第1の振動とは異なる第2の振動を前記振動部に実行させるように前記振動信号を生成する、ゲームプログラム。
【請求項13】
前記振動信号生成手段は、前記回す操作の速さが相対的に速い場合に、前記回す操作の速さが相対的に遅い場合に比べて前記振動部がより強く振動するように前記振動信号を生成する、請求項11または請求項12に記載のゲームプログラム。
【請求項14】
前記振動信号生成手段は、前記振動部が振動する周波数が前記回す操作の速さに応じて変化するよう前記振動信号を生成する、請求項10から請求項13のいずれか1項に記載のゲームプログラム。
【請求項15】
前記振動信号生成手段は、前記振動信号として、振動の波形を示す信号を生成し、
前記振動部は、前記振動信号が示す波形に基づいて振動し、
前記振動信号生成手段は、前記振動信号が示す波形が前記回す操作の速さに応じて変化するよう前記振動信号を生成する、請求項10から請求項14のいずれか1項に記載のゲームプログラム。
【請求項16】
前記判定手段は、前記慣性センサの出力における周期的な変化を特定し、特定された周期的な変化に基づいて前記回す操作を検知する、請求項10または請求項11に記載のゲームプログラム。
【請求項17】
前記判定手段は、前記慣性センサの出力に基づく角速度であって、所定の2軸に関する前記操作装置の角速度に基づいて前記回す操作に関する前記操作装置の回転角度を判別することによって、前記回す操作を検知する、請求項10から請求項16のいずれか1項に記載のゲームプログラム。
【請求項18】
前記判定手段は、少なくとも所定軸回りに関する前記操作装置の姿勢を前記慣性センサの出力に基づいて算出し、算出される姿勢に基づいて前記回す操作を検知する、請求項10から請求項17のいずれか1項に記載のゲームプログラム。
【請求項19】
操作装置と通信可能な情報処理装置であって、
前記操作装置は、
慣性センサと、
前記慣性センサからのデータを含む操作データを前記情報処理装置へ送信する操作データ送信部と、
前記情報処理装置から取得される振動信号に基づいて振動する振動部とを備え、
前記情報処理装置は、
前記操作データを取得する操作データ取得部と、
前記操作データに基づいて、前記操作装置を回す操作の速さを判定する判定部と、
記振動部を所定の期間において継続して振動させるための振動信号を生成する振動信号生成部と、
前記振動信号を前記操作装置へ送信する振動信号送信部とを備え、
前記判定部は、前記操作装置を1周回す操作を検知し、
前記振動信号生成部は、前記所定の期間において、前記操作装置を1周回す操作が検知される毎に前記振動部の振動の強さが強くなるように前記振動信号を生成する、情報処理装置。
【請求項20】
操作装置と通信可能な情報処理装置であって、
前記操作装置は、
慣性センサと、
前記慣性センサからのデータを含む操作データを前記情報処理装置へ送信する操作データ送信部と、
前記情報処理装置から取得される振動信号に基づいて振動する振動部とを備え、
前記情報処理装置は、
前記操作データを取得する操作データ取得部と、
前記操作データに基づいて、前記操作装置を回す操作の速さを判定する判定部と、
記振動部を振動させるための振動信号を生成する振動信号生成部と、
前記振動信号を前記操作装置へ送信する振動信号送信部とを備え、
前記判定部は、前記操作装置を1周回す操作を検知し、
前記振動信号生成部は、前記操作装置を1周回す操作が検知される毎に、前記振動部に、前記操作装置を1周回す操作の速さに応じた強さの所定の波形の振動を実行させるように前記振動信号を生成する、情報処理装置。
【請求項21】
操作装置と通信可能な情報処理装置であって、
前記操作装置は、
慣性センサと、
前記慣性センサからのデータを含む操作データを前記情報処理装置へ送信する操作データ送信部と、
前記情報処理装置から取得される振動信号に基づいて振動する振動部とを備え、
前記情報処理装置は、
前記操作データを取得する操作データ取得部と、
前記操作データに基づいて、前記操作装置を回す操作の速さを判定する判定部と、
前記回す操作の速さに応じた強さで前記振動部を振動させるための振動信号を生成する振動信号生成部と、
前記振動信号を前記操作装置へ送信する振動信号送信部とを備え、
前記情報処理装置は、少なくとも所定軸回りに関する前記操作装置の姿勢を前記慣性センサの出力に基づいて算出し、
前記振動信号生成部は、前記所定軸回りに関する前記回す操作の速さに応じた強さの第1の振動と、前記所定軸回りに関する前記操作装置の姿勢が所定の角度だけ変化する毎に実行される、前記第1の振動とは異なる第2の振動を前記振動部に実行させるように前記振動信号を生成する、情報処理装置。
【請求項22】
操作装置と情報処理装置を含むゲームシステムにおいて実行される情報処理方法であって、
前記操作装置は、慣性センサと、振動部とを備え、
前記慣性センサからのデータを含む操作データを取得する操作データ取得ステップと、
前記操作データに基づいて、前記操作装置を回す操作の速さを判定する判定ステップと、
記振動部を所定の期間において継続して振動させる振動制御ステップとを備え、
前記判定ステップにおいては、前記操作装置を1周回す操作を検知し、
前記振動制御ステップにおいては、前記所定の期間において、前記操作装置を1周回す操作が検知される毎に前記振動部の振動の強さが強くなるように前記振動部を振動させる、情報処理方法。
【請求項23】
操作装置と情報処理装置を含むゲームシステムにおいて実行される情報処理方法であって、
前記操作装置は、慣性センサと、振動部とを備え、
前記慣性センサからのデータを含む操作データを取得する操作データ取得ステップと、
前記操作データに基づいて、前記操作装置を回す操作の速さを判定する判定ステップと、
記振動部を振動させる振動制御ステップとを備え、
前記判定ステップにおいては、前記操作装置を1周回す操作を検知し、
前記振動制御ステップにおいては、前記操作装置を1周回す操作が検知される毎に、前記振動部に、前記操作装置を1周回す操作の速さに応じた強さの所定の波形の振動を実行させる、情報処理方法。
【請求項24】
操作装置と情報処理装置を含むゲームシステムにおいて実行される情報処理方法であって、
前記操作装置は、慣性センサと、振動部とを備え、
前記慣性センサからのデータを含む操作データを取得する操作データ取得ステップと、
前記操作データに基づいて、前記操作装置を回す操作の速さを判定する判定ステップと、
前記回す操作の速さに応じた強さで前記振動部を振動させる振動制御ステップとを備え、
前記情報処理装置は、少なくとも所定軸回りに関する前記操作装置の姿勢を前記慣性センサの出力に基づいて算出し、
前記振動制御ステップにおいては、前記所定軸回りに関する前記回す操作の速さに応じた強さの第1の振動と、前記所定軸回りに関する前記操作装置の姿勢が所定の角度だけ変化する毎に実行される、前記第1の振動とは異なる第2の振動を前記振動部に実行させる、情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、操作部を振動させるゲームを行うためのゲームシステム、ゲームプログラム、情報処理装置、および、情報処理方法に関する。
【背景技術】
【0002】
従来、ゲーム中において所定のゲーム条件が満たされる場合に、コントローラを振動させるゲームシステムがある(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−345号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来のように、単にコントローラを振動させるだけでは、ゲーム状況を十分に表現することができない場合があった。
【0005】
それ故、本発明の目的は、操作に応じたゲーム状況を振動によってより具体的に表現することができるゲームシステム、ゲームプログラム、情報処理装置、および、情報処理方法を提供することである。
【課題を解決するための手段】
【0006】
上記の課題を解決すべく、本発明は、以下の(1)〜(11)の構成を採用した。
【0007】
(1)
本発明の一例は、操作装置と情報処理装置を含むゲームシステムである。
操作装置は、慣性センサと、操作データ送信部と、振動部とを備える。操作データ送信部は、慣性センサからのデータを含む操作データを情報処理装置へ送信する。振動部は、情報処理装置から取得される振動信号に基づいて振動する。
情報処理装置は、操作データ取得部と、判定部と、振動信号生成部と、振動信号送信部とを備える。操作データ取得部は、操作データを取得する。判定部は、操作データに基づいて、操作装置を回す操作の速さを判定する。振動信号生成部は、回す操作の速さに応じた強さで振動部を振動させるための振動信号を生成する。振動信号送信部は、振動信号を操作装置へ送信する。
なお、判定部は、操作装置を1周回す操作を検知し、振動信号生成部は、回す操作が検知される毎に振動部の振動の強さが強くなるように振動信号を生成してもよい。
また、判定部は、操作装置を1周回す操作を検知し、振動信号生成部は、回す操作が検知されることに応じて振動部に所定の振動を実行させるように振動信号を生成してもよい。
また、判定部は、少なくとも所定軸回りに関する操作装置の姿勢を慣性センサの出力に基づいて算出し、振動信号生成部は、操作装置の姿勢が所定量変化する毎に所定の振動を振動部に実行させるように振動信号を生成してもよい。
【0008】
上記(1)の構成によれば、操作装置をゲーム条件に応じて単に振動させる場合に比べて、操作装置を回す操作の状態、および/または、当該回す操作に応じたゲーム状況をより具体的に表現することができる。これによって、操作装置の振動によってプレイヤにゲーム状況をより具体的に認識させることができる。
【0009】
(2)
振動信号生成部は、回す操作の速さが相対的に速い場合に、回す操作の速さが相対的に遅い場合に比べて振動部がより強く振動するように振動信号を生成してもよい。
【0010】
上記(2)の構成によれば、操作装置の振動によって、操作装置を回す操作の速さをプレイヤに直感的に認識させることができる。
【0011】
(3)
振動信号生成部は、振動部が振動する周波数が回す操作の速さに応じて変化するよう振動信号を生成してもよい。
【0012】
上記(3)の構成によれば、操作装置を回す操作の状態、および/または、当該回す操作に応じたゲーム状況を、振動の周波数によってより具体的に表現することができる。
【0013】
(4)
振動信号生成部は、振動信号として、振動の波形を示す信号を生成してもよい。振動部は、振動信号が示す波形に基づいて振動してもよい。振動信号生成部は、振動信号が示す波形が回す操作の速さに応じて変化するよう振動信号を生成してもよい。
【0014】
上記(4)の構成によれば、操作装置を回す操作の状態、および/または、当該回す操作に応じたゲーム状況を、振動の波形によってより具体的に表現することができる。
【0015】
(5)
判定部は、操作装置を回す操作を検知してもよい。振動信号生成部は、回す操作が検知されることに応じて振動部の振動の強さが変化するように振動信号を生成してもよい。
【0016】
上記(5)の構成によれば、振動部の振動の強さが変化することによって、回す操作が検知されたことをプレイヤに認識させることができる。
【0017】
(6)
判定部は、操作装置を回す操作を検知してもよい。振動信号生成部は、回す操作が検知されることに応じて振動部に所定の振動を実行させるように振動信号を生成してもよい。
【0018】
上記(6)の構成によれば、振動部の振動によって、回す操作が検知されたことをプレイヤに認識させることができる。
【0019】
(7)
判定部は、少なくとも所定軸回りに関する操作装置の姿勢を慣性センサの出力に基づいて算出してもよい。振動信号生成部は、回す操作の速さに応じた強さの第1の振動と、操作装置の姿勢が所定量変化するごとに実行される第2の振動とを振動部に実行させるように振動信号を生成してもよい。
【0020】
上記(7)の構成によれば、第1の振動の強さと、第2の振動が実行される頻度との両方によって、回す操作の速さをプレイヤに認識させることができる。
【0021】
(8)
判定部は、慣性センサの出力における周期的な変化を特定し、特定された周期的な変化に基づいて回す操作を検知してもよい。
【0022】
上記(8)の構成によれば、慣性センサの出力に基づいて回転操作を容易に検知することができる。例えば、1軸に関する慣性センサの出力に基づいて回転操作を検知することも可能である。
【0023】
(9)
判定部は、慣性センサの出力に基づく角速度であって、所定の2軸に関する操作装置の角速度に基づいて回す操作に関する操作装置の回転角度を判別することによって、回す操作を検知してもよい。
【0024】
上記(9)の構成によれば、慣性センサの出力に基づく角速度を用いることによって、回転操作を容易に検知することができる。
【0025】
(10)
判定部は、少なくとも所定軸回りに関する操作装置の姿勢を慣性センサの出力に基づいて算出し、算出される姿勢に基づいて回す操作を検知してもよい。
【0026】
上記(10)の構成によれば、慣性センサの出力に基づいて操作装置の姿勢を算出することによって、回転操作を容易に検知することができる。
【0027】
(11)
本発明の他の一例は、操作装置と情報処理装置を含むゲームシステムである。
操作装置は、慣性センサと、操作データ送信部と、振動部とを備える。
操作データ送信部は、慣性センサからのデータを含む操作データを情報処理装置へ送信する。振動部は、情報処理装置から取得される振動信号に基づいて振動する。
情報処理装置は、操作データ取得部と、判定部と、振動信号生成部と、振動信号送信部とを備える。操作データ取得部は、操作データを取得する。判定部は、操作データに基づいて、操作装置を動かす操作の速さを判定する。振動信号生成部は、動かす操作の速さに応じた強さで振動部を振動させるための振動信号を生成する。振動信号送信部は、振動信号を操作装置へ送信する。
【0028】
上記(11)の構成によれば、上記(1)の構成と同様、操作装置の振動によってプレイヤにゲーム状況をより具体的に認識させることができる。
【0029】
なお、本発明の別の一例は、上記(1)〜(11)におけるゲームシステムにおいて実行されるゲーム処理方法であってもよい。また、本発明の別の一例は、上記(1)〜(11)における情報処理装置であってもよいし、上記(1)〜(11)における各部と同等の各手段のいくつかとして当該情報処理装置のコンピュータを機能させる情報処理プログラムまたはゲームプログラムであってもよい。
【発明の効果】
【0030】
本発明によれば、操作に応じたゲーム状況を具体的に表現することができる。
【図面の簡単な説明】
【0031】
図1】本体装置の一例に左コントローラの一例および右コントローラの一例を装着した状態を示す図
図2】本体装置の一例から左コントローラの一例および右コントローラの一例をそれぞれ外した状態の一例を示す図
図3】本体装置の一例を示す六面図
図4】左コントローラの一例を示す六面図
図5】右コントローラの一例を示す六面図
図6】本体装置の内部構成の一例を示すブロック図
図7】本体装置と左コントローラおよびコントローラ4との内部構成の一例を示すブロック図
図8】本実施形態における情報処理システムを利用する様子の一例を示す図
図9】本実施形態におけるコントローラを用いた回転操作の一例を示す図
図10】第1ゲーム例の第1段階における操作の一例を示す図
図11】第1ゲーム例における回転操作と振動強さとの関係の一例を示す図
図12】第1ゲーム例の第2段階における操作の一例を示す図
図13】情報処理システムにおいて実行される第1ゲーム処理の流れの一例を示すフローチャート
図14】第2ゲーム例における操作の一例を示す図
図15】第2ゲーム例における回転操作とコントローラの振動との関係の一例を示す図
図16】情報処理システムにおいて実行される第2ゲーム処理の流れの一例を示すフローチャート
図17】第3ゲーム例における操作の一例を示す図
図18】第3ゲーム例における回転操作と振動強さとの関係の一例を示す図
図19】情報処理システムにおいて実行される第3ゲーム処理の流れの一例を示すフローチャート
【発明を実施するための形態】
【0032】
[1.情報処理システムの構成]
以下、本実施形態の一例に係る情報処理システムについて説明する。本実施形態における情報処理システム1の一例は、本体装置(換言すれば、情報処理装置;本実施形態ではゲーム装置本体として機能する)2と左コントローラ3および右コントローラ4とを含む。本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能である。つまり、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できる。また、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる(図2参照)。また、情報処理システム1は、本体装置2に画像を表示する態様での利用と、テレビ等の他の表示装置(例えば、据置型モニタ)に画像を表示させる態様での利用が可能である。前者の態様において、情報処理システム1は、携帯型装置(例えば、携帯ゲーム機)として利用することができる。また、後者の態様において、情報処理システム1は、据置型装置(例えば、据置型ゲーム機)として利用することができる。なお、本実施形態の情報処理システム1は、本体装置2に装着されない無線コントローラをも含むことができる。
【0033】
(本体装置、左コントローラ、右コントローラの説明)
図1は、本体装置2に左コントローラ3および右コントローラ4を装着した状態を示す図である。図1に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、情報処理システム1における各種の処理(例えば、ゲーム処理)を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。
【0034】
図2は、本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図である。図1および図2に示すように、左コントローラ3および右コントローラ4は、本体装置2に着脱可能である。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。
【0035】
図3は、本体装置2の一例を示す六面図である。図3に示すように、本体装置2は、略板状のハウジング11を備える。本実施形態において、ハウジング11の主面(換言すれば、表側の面、すなわち、ディスプレイ12が設けられる面)は、大略的には矩形形状である。
【0036】
なお、ハウジング11の形状および大きさは、任意である。一例として、ハウジング11は、携帯可能な大きさであってよい。また、本体装置2単体または本体装置2に左コントローラ3および右コントローラ4が装着された一体型装置は、携帯型装置となってもよい。また、本体装置2または一体型装置が手持ち型の装置となってもよい。また、本体装置2または一体型装置が可搬型装置となってもよい。
【0037】
図3に示すように、本体装置2は、ハウジング11の主面に設けられるディスプレイ12を備える。ディスプレイ12は、本体装置2が生成した画像を表示する。本実施形態においては、ディスプレイ12は、液晶表示装置(LCD)とする。ただし、ディスプレイ12は任意の種類の表示装置であってよい。
【0038】
また、本体装置2は、ディスプレイ12の画面上にタッチパネル13を備える。本実施形態においては、タッチパネル13は、マルチタッチ入力が可能な方式(例えば、静電容量方式)のものである。ただし、タッチパネル13は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式(例えば、抵抗膜方式)のものであってもよい。
【0039】
本体装置2は、ハウジング11の内部においてスピーカ(すなわち、図6に示すスピーカ88)を備えている。図3に示すように、ハウジング11の主面には、スピーカ孔11aおよび11bが形成される。そして、スピーカ88の出力音は、これらのスピーカ孔11aおよび11bからそれぞれ出力される。
【0040】
また、本体装置2は、本体装置2が左コントローラ3と有線通信を行うための端子である左側端子17と、本体装置2が右コントローラ4と有線通信を行うための右側端子21を備える。
【0041】
図3に示すように、本体装置2は、第1スロット23を備える。第1スロット23は、ハウジング11の上側面に設けられる。第1スロット23は、第1の種類の記憶媒体を装着可能な形状を有する。第1の種類の記憶媒体は、例えば、情報処理システム1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。第1の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。また、本体装置2は、電源ボタン28を備える。
【0042】
本体装置2は、下側端子27を備える。下側端子27は、本体装置2がクレードルと通信を行うための端子である。本実施形態において、下側端子27は、USBコネクタ(より具体的には、メス側コネクタ)である。上記一体型装置または本体装置2単体をクレードルに載置した場合、情報処理システム1は、本体装置2が生成して出力する画像を据置型モニタに表示することができる。また、本実施形態においては、クレードルは、載置された上記一体型装置または本体装置2単体を充電する機能を有する。また、クレードルは、ハブ装置(具体的には、USBハブ)の機能を有する。
【0043】
図4は、左コントローラ3の一例を示す六面図である。図4に示すように、左コントローラ3は、ハウジング31を備える。本実施形態においては、ハウジング31は、縦長の形状、すなわち、上下方向(すなわち、図1に示すy軸方向)に長い形状である。左コントローラ3は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング31は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ3は、横長となる向きで把持されることも可能である。左コントローラ3が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0044】
左コントローラ3は、アナログスティック32を備える。図4に示すように、アナログスティック32が、ハウジング31の主面に設けられる。アナログスティック32は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック32を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。なお、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、アナログスティック32を押下する入力が可能である。
【0045】
左コントローラ3は、各種操作ボタンを備える。まず、左コントローラ3は、ハウジング31の主面上に4つの操作ボタン33〜36(具体的には、右方向ボタン33、下方向ボタン34、上方向ボタン35、および、左方向ボタン36)を備える。さらに、録画ボタン37、−(マイナス)ボタン47を備える。左コントローラ3は、ハウジング31の側面の左上に第1Lボタン38およびZLボタン39を備える。また、左コントローラ3は、ハウジング31の側面の、本体装置2に装着される際に装着される側の面に第2Lボタン43および第2Rボタン44を備える。これらの操作ボタンは、本体装置2で実行される各種プログラム(例えば、OSプログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。
【0046】
また、左コントローラ3は、左コントローラ3が本体装置2と有線通信を行うための端子42を備える。
【0047】
図5は、右コントローラ4の一例を示す六面図である。図5に示すように、右コントローラ4は、ハウジング51を備える。本実施形態においては、ハウジング51は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ4は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング51は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ4は、横長となる向きで把持されることも可能である。右コントローラ4が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0048】
右コントローラ4は、左コントローラ3と同様、方向入力部としてアナログスティック52を備える。本実施形態においては、アナログスティック52は、左コントローラ3のアナログスティック32と同じ構成である。また、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、右コントローラ4は、左コントローラ3と同様、ハウジング51の主面上に4つの操作ボタン53〜56(具体的には、Aボタン53、Bボタン54、Xボタン55、および、Yボタン56)を備える。さらに、+(プラス)ボタン57、ホームボタン58を備える。また、右コントローラ4は、右コントローラ4は、ハウジング51の側面の右上に第1Rボタン60およびZRボタン61を備える。また、左コントローラ3と同様、第2Lボタン65および第2Rボタン66を備える。
【0049】
また、右コントローラ4は、右コントローラ4が本体装置2と有線通信を行うための端子64を備える。
【0050】
図6は、本体装置2の内部構成の一例を示すブロック図である。本体装置2は、図3に示す構成の他、図6に示す各構成要素81〜98を備える。これらの構成要素81〜98のいくつかは、電子部品として電子回路基板上に実装されてハウジング11内に収納されてもよい。
【0051】
本体装置2は、CPU(Central Processing Unit)81を備える。CPU81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、厳密にはCPU機能、GPU機能等の複数の機能を含むSoC(System−on−a−chip)である。CPU81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、各スロット23および24に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
【0052】
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、CPU81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【0053】
本体装置2は、スロットインターフェース(以下、「I/F」と略記する。)91を備える。スロットI/F91は、CPU81に接続される。スロットI/F91は、第1スロット23に接続され、第1スロット23に装着された第1の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、CPU81の指示に応じて行う。
【0054】
CPU81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【0055】
本体装置2は、ネットワーク通信部82を備える。ネットワーク通信部82は、CPU81に接続される。ネットワーク通信部82は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行う。本実施形態においては、ネットワーク通信部82は、第1の通信態様としてWi−Fiの規格に準拠した方式により、無線LANに接続して外部装置と通信を行う。また、ネットワーク通信部82は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の本体装置2との間で無線通信を行う。なお、上記第2の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置2との間で無線通信可能であり、複数の本体装置2の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【0056】
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、CPU81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、本実施形態においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
【0057】
CPU81は、上述の左側端子17、右側端子21、および、下側端子27に接続される。CPU81は、左コントローラ3と有線通信を行う場合、左側端子17を介して左コントローラ3へデータを送信するとともに、左側端子17を介して左コントローラ3から操作データを受信する。また、CPU81は、右コントローラ4と有線通信を行う場合、右側端子21を介して右コントローラ4へデータを送信するとともに、右側端子21を介して右コントローラ4から操作データを受信する。また、CPU81は、クレードルと通信を行う場合、下側端子27を介してクレードルへデータを送信する。このように、本実施形態においては、本体装置2は、左コントローラ3および右コントローラ4との間で、それぞれ有線通信と無線通信との両方を行うことができる。また、左コントローラ3および右コントローラ4が本体装置2に装着された一体型装置または本体装置2単体がクレードルに装着された場合、本体装置2は、クレードルを介してデータ(例えば、画像データや音声データ)を据置型モニタ等に出力することができる。
【0058】
ここで、本体装置2は、複数の左コントローラ3と同時に(換言すれば、並行して)通信を行うことができる。また、本体装置2は、複数の右コントローラ4と同時に(換言すれば、並行して)通信を行うことができる。したがって、ユーザは、複数の左コントローラ3および複数の右コントローラ4を用いて本体装置2に対する入力を行うことができる。
【0059】
本体装置2は、タッチパネル13の制御を行う回路であるタッチパネルコントローラ86を備える。タッチパネルコントローラ86は、タッチパネル13とCPU81との間に接続される。タッチパネルコントローラ86は、タッチパネル13からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、CPU81へ出力する。
【0060】
また、ディスプレイ12は、CPU81に接続される。CPU81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
【0061】
本体装置2は、コーデック回路87およびスピーカ(具体的には、左スピーカおよび右スピーカ)88を備える。コーデック回路87は、スピーカ88および音声入出力端子25に接続されるとともに、CPU81に接続される。コーデック回路87は、スピーカ88および音声入出力端子25に対する音声データの入出力を制御する回路である。
【0062】
また、本体装置2は、加速度センサ89を備える。本実施形態においては、加速度センサ89は、所定の3軸(例えば、図1に示すxyz軸)方向に沿った加速度の大きさを検出する。なお、加速度センサ89は、1軸方向あるいは2軸方向の加速度を検出するものであってもよい。
【0063】
また、本体装置2は、角速度センサ90を備える。本実施形態においては、角速度センサ90は、所定の3軸(例えば、図1に示すxyz軸)回りの角速度を検出する。なお、角速度センサ90は、1軸回りあるいは2軸回りの角速度を検出するものであってもよい。
【0064】
上記の加速度センサ89および角速度センサ90は、CPU81に接続され、加速度センサ89および角速度センサ90の検出結果は、CPU81へ出力される。CPU81は、上記の加速度センサ89および角速度センサ90の検出結果に基づいて、本体装置2の動きおよび/または姿勢に関する情報を算出することが可能である。なお、本実施形態においては、本体装置2の動き、姿勢、および/または位置を算出するための慣性センサとして、加速度センサおよび角速度センサを用いているが、他の実施形態では他の種類のセンサが用いられてもよい。
【0065】
本体装置2は、電力制御部97およびバッテリ98を備える。電力制御部97は、バッテリ98およびCPU81に接続される。また、図示しないが、電力制御部97は、本体装置2の各部(具体的には、バッテリ98の電力の給電を受ける各部、左側端子17、および右側端子21)に接続される。電力制御部97は、CPU81からの指令に基づいて、バッテリ98から上記各部への電力供給を制御する。
【0066】
また、バッテリ98は、下側端子27に接続される。外部の充電装置(例えば、クレードル)が下側端子27に接続され、下側端子27を介して本体装置2に電力が供給される場合、供給された電力がバッテリ98に充電される。
【0067】
図7は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。なお、本体装置2に関する内部構成の詳細については、図6で示しているため図7では省略している。
【0068】
左コントローラ3は、本体装置2との間で通信を行う通信制御部101を備える。図7に示すように、通信制御部101は、端子42を含む各構成要素に接続される。本実施形態においては、通信制御部101は、端子42を介した有線通信と、端子42を介さない無線通信との両方で本体装置2と通信を行うことが可能である。通信制御部101は、左コントローラ3が本体装置2に対して行う通信方法を制御する。すなわち、左コントローラ3が本体装置2に装着されている場合、通信制御部101は、端子42を介して本体装置2と通信を行う。また、左コントローラ3が本体装置2から外されている場合、通信制御部101は、本体装置2(具体的には、コントローラ通信部83)との間で無線通信を行う。コントローラ通信部83と通信制御部101との間の無線通信は、例えばBluetooth(登録商標)の規格に従って行われる。
【0069】
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
【0070】
左コントローラ3は、各ボタン103(具体的には、ボタン33〜39、43、44、47)を備える。また、左コントローラ3は、アナログスティック(図7では「スティック」と記載する)32を備える。各ボタン103およびアナログスティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部101へ出力する。
【0071】
左コントローラ3は、慣性センサを備える。具体的には、加速度センサ104を備える。また、角速度センサ105を備える。本実施形態においては、加速度センサ104は、所定の3軸(例えば、図4に示すxyz軸)方向に沿った加速度の大きさを検出する。なお、加速度センサ104は、1軸方向あるいは2軸方向の加速度を検出するものであってもよい。本実施形態においては、角速度センサ105は、所定の3軸(例えば、図4に示すxyz軸)回りの角速度を検出する。なお、角速度センサ105は、1軸回りあるいは2軸回りの角速度を検出するものであってもよい。加速度センサ104および角速度センサ105は、それぞれ通信制御部101に接続される。そして、加速度センサ104および角速度センサ105の検出結果は、適宜のタイミングで繰り返し通信制御部101へ出力される。
【0072】
通信制御部101は、各入力部(具体的には、各ボタン103、アナログスティック32、各センサ104および105)から、入力に関する情報(具体的には、操作に関する情報、または、センサによる検出結果)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【0073】
上記操作データが本体装置2へ送信されることによって、本体装置2は、左コントローラ3に対して行われた入力を得ることができる。すなわち、本体装置2は、各ボタン103およびアナログスティック32に対する操作を、操作データに基づいて判別することができる。また、本体装置2は、左コントローラ3の動きおよび/または姿勢に関する情報を、操作データ(具体的には、加速度センサ104および角速度センサ105の検出結果)に基づいて算出することができる。
【0074】
左コントローラ3は、振動によってユーザに通知を行うための振動子107を備える。本実施形態においては、振動子107は、本体装置2からの振動指令(換言すれば、後述する振動制御信号)によって制御される。すなわち、通信制御部101は、本体装置2からの上記振動指令を受け取ると、当該振動指令に従って振動子107を駆動させる。ここで、左コントローラ3は、コーデック部106を備える。通信制御部101は、上記振動指令を受け取ると、振動指令に応じた制御信号をコーデック部106へ出力する。コーデック部106は、通信制御部101からの制御信号から、振動子107を駆動させるための駆動信号を生成して振動子107へ与える。これによって振動子107が動作する。
【0075】
振動子107は、より具体的にはリニア振動モータである。リニア振動モータは、回転運動をする通常のモータと異なり、入力される電圧に応じて所定方向に駆動されるため、入力される電圧の波形に応じた振幅、周波数で振動をさせることができる。本実施形態において、本体装置2から左コントローラ3に送信される振動制御信号は、単位時間ごとに周波数と振幅とを表すデジタル信号であってよい。別の実施形態においては、波形そのものを示す情報を送信するようにしてもよいが、振幅と周波数だけを送信することで通信データ量を削減することができる。また、さらにデータ量を削減するため、そのときの振幅と周波数の数値に替えて、前回の値からの差分だけを送信するようにしてもよい。この場合、コーデック部106は、通信制御部101から取得される振幅と周波数の値を示すデジタル信号をアナログの電圧の波形に変換し、当該波形に合わせて電圧を入力することで振動子107を駆動させる。したがって、本体装置2は、単位時間ごとに送信する振幅および周波数を変えることによって、そのときに振動子107を振動させる振幅と周波数を制御することができる。なお、本体装置2から左コントローラ3に送信される振幅と周波数は、1つに限らず、2つ以上送信するようにしてもよい。その場合、コーデック部106は、受信された複数の振幅と周波数それぞれが示す波形を合成することで、振動子107を制御する電圧の波形を生成することができる。
【0076】
以上より、本実施形態においては、振動子107は、複数種類の振動の態様(例えば、振動の大きさ、周波数、および/または、パターン)で振動することが可能である。また、本体装置2は、振動の波形を示す信号(すなわち、上記振動制御信号)を生成してコントローラへ送信し、振動子107は、当該信号が示す波形に基づいて振動する。なお、「振動の波形を示す信号」は、上記のデジタル信号であってもよいし、振動波形自体を表す信号であってもよい。なお、上記のデジタル信号は、上記単位時間毎の周波数と振幅とを表すものであるが、単位信号の周波数と振幅とを表す単位信号を複数繋げることによって、複数種類の周波数を含む波形、および、複数種類の振幅を含む波形を表すことができる。つまり、本体装置2は、単位時間毎に振動の振幅および/または周波数が異なる波形でコントローラを振動させることによって、複数種類の周波数成分を含む波形でコントローラを振動させることも可能である。
【0077】
左コントローラ3は、電力供給部108を備える。本実施形態において、電力供給部108は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ3の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。
【0078】
図7に示すように、右コントローラ4は、本体装置2との間で通信を行う通信制御部111を備える。また、右コントローラ4は、通信制御部111に接続されるメモリ112を備える。通信制御部111は、端子64を含む各構成要素に接続される。通信制御部111およびメモリ112は、左コントローラ3の通信制御部101およびメモリ102と同様の機能を有する。したがって、通信制御部111は、端子64を介した有線通信と、端子64を介さない無線通信(具体的には、Bluetooth(登録商標)の規格に従った通信)との両方で本体装置2と通信を行うことが可能であり、右コントローラ4が本体装置2に対して行う通信方法を制御する。
【0079】
右コントローラ4は、左コントローラ3の各入力部と同様の各入力部を備える。具体的には、各ボタン113、アナログスティック52、慣性センサ(具体的には、加速度センサ114および角速度センサ115)を備える。これらの各入力部については、左コントローラ3の各入力部と同様の機能を有し、同様に動作する。
【0080】
また、右コントローラ4は、振動子117およびコーデック部116を備える。振動子117およびコーデック部116は、左コントローラ3の振動子107およびコーデック部106と同様に動作する。すなわち、通信制御部111は、本体装置2からの振動指令に従って、コーデック部116を用いて振動子117を動作させる。
【0081】
右コントローラ4は、電力供給部118を備える。電力供給部118は、左コントローラ3の電力供給部108と同様の機能を有し、同様に動作する。
【0082】
[2.情報処理システムにおける処理の概要]
次に、図8および図9を参照して、情報処理システム1における処理の概要について説明する。図8は、本実施形態における情報処理システムを利用する様子の一例を示す図である。図8に示すように、本実施形態では、プレイヤ(換言すれば、ユーザ)は、本体装置2から外した状態でコントローラを用いる。また、本体装置2は、プレイヤの周囲に載置される。なお、本実施形態においては、コントローラが本体装置2から外された状態では、コントローラは本体装置2と無線通信を行うが、他の実施形態においては、コントローラはケーブルによって本体装置2と接続され、ケーブルを介した有線通信を行ってもよい。
【0083】
本実施形態においては、1人のプレイヤが1つのコントローラを用いる。なお、後述するゲーム例においては、図8に示すように、2人のプレイヤがそれぞれ1つずつコントローラを用いてゲームをプレイしてもよい。なお、他の実施形態においては、1人のプレイヤが2つのコントローラを用いてもよい。例えば、プレイヤは、両手に1つずつコントローラを把持してゲームをプレイしてもよい。
【0084】
図9は、本実施形態におけるコントローラを用いた回転操作の一例を示す図である。本実施形態においては、プレイヤは、コントローラを動かす操作をゲーム操作として行う。具体的には、図9に示すように、プレイヤは、コントローラを回す操作(回転操作と呼ぶ)を行う。回転操作は、図9に示すように、大略的には円の軌道を描くようにコントローラの位置を移動させる操作であってもよいし、ある軸回りにコントローラの姿勢を変化させる操作(図17参照)であってもよいし、これらの操作の組み合わせであってもよい。
【0085】
本実施形態では、情報処理システム1は、コントローラの回転操作の速さに応じた強さでコントローラを振動させる。ここで、回転操作の速さとは、例えば、1回の回転操作を行う速さ(換言すれば、1回の回転操作を行うのに要した時間の逆数)であってもよいし、回転操作においてコントローラを回転させる速度(換言すれば、単位時間当たりの回転量)であってもよいし、回転操作を行う頻度であってもよい。
【0086】
本実施形態においては、コントローラの回転操作を検知する処理、および、回転操作の速さを算出する処理は、コントローラが有する慣性センサ(具体的には、加速度センサおよび/または角速度センサ)の検出結果に基づいて行われる。これらの処理の詳細については後述する。なお、これらの処理は、慣性センサの検出結果に基づく方法とは異なる方法によって行われてもよい。例えば、他の実施形態においては、コントローラを撮像するカメラによって撮像された画像、または、コントローラが有するカメラによって撮像された画像に基づいて、上記2つの処理が行われてもよい。
【0087】
本実施形態においては、コントローラの振動の強さは、当該コントローラに対する回転操作の速さに応じて変化する。例えば、回転操作が多く行われるほどコントローラが強く振動したり(後述する第1のゲーム例を参照)、回転速度が速いほどコントローラが強く振動したりする(後述する第2および第3のゲーム例を参照)。したがって、本実施形態によれば、情報処理システム1は、コントローラをゲーム条件に応じて単に振動させる場合に比べて、回転操作の状態、および/または、回転操作に応じたゲーム状況をより具体的に表現することができ、プレイヤにゲーム状況をより具体的に認識させることができる。すなわち、プレイヤに回転操作の結果を振動で認識させることができる。例えば、後述するゲーム例では、回転操作によって溜まったパワーの大きさ、回転操作の速さ、または、回転操作による回転の速さをプレイヤに認識させることができる。
【0088】
[3.情報処理システムを用いて行われるゲーム例]
以下において、本実施形態における情報処理システム1を用いて行われるゲーム例について説明する。情報処理システム1は、上述の回転操作によってゲーム操作を行うゲームとして、例えば以下に説明するゲームをプレイヤにプレイさせることができる。なお、情報処理システム1は、以下に説明する第1〜第3ゲーム例のゲーム処理のうち1つ以上を実行するものであればよい。
【0089】
[3−1:第1ゲーム例]
図10図13を参照して、第1ゲーム例について説明する。第1ゲーム例は、2人のプレイヤがプレイする複数人プレイのゲームであり、2人のプレイヤが対戦する形式のゲームである。第1ゲーム例では、各プレイヤは、コントローラを魔法の杖のように操作する。なお、以下の説明においては、左コントローラ3を把持するプレイヤを第1プレイヤとし、右コントローラ4を把持するプレイヤを第2プレイヤとする。
【0090】
[第1ゲーム例の概要]
第1ゲーム例では、まず、ゲームの第1段階として、プレイヤは、回転操作によって魔法のパワーを溜めるゲーム操作を行う(図10)。そして、ゲームの第2段階として、プレイヤは、第1段階で溜めた魔法のパワーをぶつけ合う操作を行う(図12)。第1ゲーム例では、第2段階において、自身の魔法のパワーを相手側まで押し込んだ方のプレイヤが勝ちとなる。
【0091】
(第1段階)
まず、第1段階におけるゲームについて説明する。図10は、第1ゲーム例の第1段階における操作の一例を示す図である。なお、図10では、1つのコントローラ(右コントローラ4)のみを示しているが、実際には、2人のプレイヤのそれぞれがコントローラを操作する。
【0092】
第1段階において、各プレイヤは、コントローラを用いて回転操作を行う。情報処理システム1は、プレイヤによる回転操作に応じて、魔法のパワーを溜めるゲーム処理を実行する。ここで、第1ゲーム例における回転操作は、図10に示すように、縦向きの状態にしたコントローラを、水平面上において円の軌跡を描くように移動(換言すれば、回転)させる操作である。なお、縦向きの状態とは、コントローラの長手方向(すなわち、図4または図5に示すy軸方向)が概ね鉛直方向となる状態である。また、本実施形態においては、プレイヤは、コントローラの上側(すなわち、y軸正方向側、換言すれば、第1Lボタンまたは第1Rボタンが設けられる側)が上を向くようにしてコントローラを把持するものとする。このとき、プレイヤが上記回転操作を行うと、コントローラは、実際には、(コントローラが真上を向いた状態で姿勢を変化させずに移動するのではなく、)コントローラの上側が下側よりも大きな円を描くような動きを行う(図10参照)。また、第1ゲーム例においては、情報処理システム1は、コントローラが1周分の回転移動を行った場合に、1回の回転操作が行われたと判定する。
【0093】
上記のようにプレイヤが回転操作を行う場合、コントローラは、図10に示すような動きを行うことになる。そのため、プレイヤが回転操作を繰り返し行うと、コントローラの長手方向に垂直な1軸回りの回転に関する角速度(換言すれば、姿勢)は、周期的に変化し、回転操作によってコントローラが1回転する間に1周期分の変化を行う。したがって、コントローラの長手方向に垂直な1軸(すなわち、図4または図5に示すx軸またはz軸)回りの回転に関する角速度を参照することによって、上記の回転操作を検知することができる。
【0094】
上記より、第1ゲーム例において、情報処理システム1は、上記1軸の角速度センサの検出結果(すなわち、角速度)の波形に基づいて、回転操作を検知する。具体的には、上記角速度センサの検出結果は、回転操作の1回転を1周期として周期的に変化するので、情報処理システム1は、角速度の波形におけるある特徴点(例えば、極大値または極小値)が検知されてから次に当該特徴点が検知された場合、回転操作が行われたと判定する。これによれば、1軸の角速度センサの検出結果に基づいて回転操作を検知することができるので、簡易な方法で回転操作を検知することができる。
【0095】
第1ゲーム例において、情報処理システム1は、回転操作が検知されると、当該回転操作に応じて魔法パワーを溜める処理を行う。そして、溜まった魔法パワーに応じた強さでコントローラを振動させる。
【0096】
図11は、第1ゲーム例における回転操作と振動強さとの関係の一例を示す図である。図11に示すグラフにおいて、横軸は、回転操作が行われた回数を示し、縦軸は、振動強さ(換言すれば、溜まった魔法パワー)を示す。図11に示すように、情報処理システム1は、回転操作が行われる毎に、魔法パワーを累積加算する。つまり、第1ゲーム例では、情報処理システム1は、回転操作が検知されることに応じてコントローラの振動の強さを変化させる(具体的には、振動を強くする)。したがって、第1ゲーム例では、回転操作が行われる毎に、コントローラが振動する強さが次第に強くなっていく。
【0097】
また、本実施形態においては、1回の回転操作によって増加される振動強さの量(換言すれば、魔法パワーの加算量)は、当該回転操作の速さに基づいて決定される。本実施形態においては、回転操作の速さは、当該回転操作に要した時間の逆数である。つまり、情報処理システム1は、回転操作に要した時間が短いほど、回転操作の速さが速いと判断し、振動強さの増加量を大きくする(図11参照)。なお、1回の回転操作に要した時間は、例えば、回転操作が検知されてから、次に回転操作が検知されるまでの時間として算出される。
【0098】
なお、本実施形態において、コントローラの振動の強さは、魔法パワーが溜まった量に応じて決定されればよく、魔法パワーから振動強さを決定するための具体的な方法は任意である。情報処理システム1は、魔法パワーに比例するように振動強さを決定してもよいし、魔法パワーの増加に伴って段階的に振動強さを増加させるようにしてもよい。
【0099】
上記のように、第1ゲーム例においては、情報処理システム1は、慣性センサの出力における周期的な変化を特定し、特定された周期的な変化に基づいて回転操作を検知する。また、情報処理システム1は、特定された周期的な変化に基づいて、検知された回転操作の速さを判定する。
【0100】
第1段階において、情報処理システム1は、コントローラに対する回転操作を検知し、回転操作の速さに応じて魔法パワーを溜めて、回転操作の速さに応じてコントローラを振動させる処理を、各プレイヤのコントローラ毎に実行する。
【0101】
なお、回転操作を検知する方法、および、回転操作の速さを算出する方法は任意である。他の実施形態においては、例えば、回転操作の検知は、2軸以上の角速度センサの検出結果を用いて行われてもよい。また、情報処理システム1は、角速度センサに代えて(または共に)加速度センサの検出結果を用いて回転操作を検知してもよい。また、回転速度の速さは、慣性センサの検出結果(すなわち、コントローラの角速度および/または加速度)に基づく任意の方法で算出されてもよい。例えば、情報処理システム1は、コントローラの角速度および/または加速度についての、回転操作中における最大値、平均値、または累積値に基づいて回転速度の速さを算出してもよい。
【0102】
第1のゲーム例における第1段階においては、本体装置2のディスプレイ12には、回転操作を促す画像(例えば、「パワーを溜めろ」というメッセージ)が表示される。なお、情報処理システム1は、コントローラに対する回転操作を表す画像(例えば、コントローラが回転する様子を表す動画)をディスプレイ12に表示してもよいし、表示しなくてもよい。また、情報処理システム1は、各プレイヤについて溜まっている魔法パワーの量を表す画像(例えば、ゲージ)をディスプレイ12に表示してもよいし、表示しなくてもよい。
【0103】
(第2段階)
第1段階において、魔法パワーが所定量まで溜まると、第1ゲーム例における第2段階に移行する。なお、2人のプレイヤの両方について魔法パワーが所定量まで溜まったことを条件として第2段階が開始されてもよいし、2人のプレイヤのいずれか一方について魔法パワーが所定量まで溜まったことを条件として第2段階が開始されてもよい。なお、後者の場合、他方のプレイヤは、魔法パワーが所定量まで溜まっていないので、不利な状態で第2段階が開始されることとなる。
【0104】
図12は、第1ゲーム例の第2段階における操作の一例を示す図である。第2段階では、図12に示すように、2人のプレイヤは、コントローラを横向きの状態(すなわち、コントローラの長手方向が概ね水平方向となる状態)にして、前方に突く操作(「突き操作」と呼ぶ)を行う。第2段階においては、本体装置2のディスプレイ12には、2人のプレイヤの魔法パワーが衝突している様子を表す画像が表示される(図12参照)。第1ゲーム例では、一方のプレイヤが、魔法パワーの衝突位置Pを、ディスプレイ12における相手側の端部(すなわち、画面の左側または右側の端部)まで移動させると、当該プレイヤの勝ちとなる。
【0105】
上記衝突位置Pは、ディスプレイ12において左右に移動し、所定のアルゴリズムに従って移動が制御される。衝突位置Pの制御方法は任意であるが、本実施形態においては、例えば以下のルールに従って衝突位置Pが制御される。
・コントローラの角度(具体的には、水平方向に対する角度)等に基づいて押す力が決定され、各プレイヤの押す力に基づいて衝突位置Pの基本移動量(具体的には、単位時間当たりの移動量)が算出される。
・一方のプレイヤが突き操作を行うと、他方のプレイヤの側へ衝突位置Pを移動させる。
・一方のプレイヤが突き操作を行った直後に(例えば、突き操作が行われてから所定時間以内に)他方のプレイヤが突き操作を行うと、当該一方のプレイヤの突き操作による移動量よりも大きい移動量だけ衝突位置Pを当該一方のプレイヤ側へ移動させる。
なお、情報処理システム1は、上記の押す力、および、突き操作による移動量を、第1段階で溜まった魔法パワーに応じて変化させる。
【0106】
また、第2段階においては、情報処理システム1は、コントローラに対して次の振動を行わせる。
(a)衝突位置Pの移動速度に応じた強さでの振動
(b)自身のコントローラによる突き操作が行われたことに応じた振動
(c)相手プレイヤのコントローラによる突き操作が行われたことに応じた振動
上記(a)の振動は、衝突位置Pが移動する間は常時行われる。上記(b)および(c)の振動は、突き操作が行われたことに応じて所定期間だけ行われる。上記(a)〜(c)の振動のいくつかが同時に行われる場合、それぞれの振動の強さを足し合わせた強さでコントローラが振動する。
【0107】
なお、第1ゲーム例においては、上記(a)〜(c)の振動は、同じ周波数の振動であるとする。ただし、他の実施形態においては、上記(a)〜(c)の振動は、それぞれ異なる周波数の振動であってもよい。また、他の実施形態においては、上記(a)〜(c)の振動は、それぞれ異なる波形、および/または、振動パターンの振動であってもよい。
【0108】
なお、第1ゲーム例において、情報処理システム1は、コントローラの振動に応じた音をスピーカ88から出力するようにしてもよい。例えば、第1段階においては、溜まった魔法パワーに応じた音が出力されてもよい。具体的には、溜まった魔法パワーに応じて音量や音の高さが変化する効果音が出力されてもよい。また、回転操作が行われる毎に効果音が出力されてもよい。また例えば、第2段階においては、衝突位置Pの移動速度に応じて音量や音の高さが変化する効果音が出力されてもよい。また、突き操作が行われる毎に効果音が出力されてもよい。
【0109】
以上のように、第1ゲーム例によれば、第1段階において、コントローラに対する回転操作(および回転操作の速さ)に応じてコントローラの振動強さが増加する。これによれば、プレイヤは、魔法パワーの溜まり具合をコントローラの振動によって認識することができる。また、本実施形態においては、魔法パワーが溜まるほどコントローラの振動が強くなるので、魔法パワーの溜まり具合を直感的にプレイヤに認識させることができる。
【0110】
[第1ゲーム例における具体的なゲーム処理例]
図13は、情報処理システムにおいて実行される、第1ゲーム例を行うためのゲーム処理(第1ゲーム処理と呼ぶ)の流れの一例を示すフローチャートである。なお、本実施形態においては、情報処理システム1がアクセス可能な記憶部(例えば、上述の第1の種類の記憶媒体、または、フラッシュメモリ84)は、第1ゲーム処理のためのプログラムを含むゲームプログラムを記憶している。図13に示す一連の処理は、本体装置2のCPU81が第1ゲーム処理のためのプログラムを実行することによって、開始される。
【0111】
なお、本実施形態では、本体装置2のCPU81が図13図16および図19についても同様である)に示す各ステップの処理を実行するものとして説明するが、上記フローチャートにおける一部のステップの処理を、CPU以外のプロセッサや専用回路が実行するようにしてもよい。また、図13に示すフローチャート(図16および図19におけるフローチャートについても同様である)における各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて(または代えて)別の処理が実行されてもよい。
【0112】
ステップS1において、CPU81は、各コントローラから操作データを取得する。すなわち、CPU81は、コントローラ通信部83を介して各コントローラから受信される操作データを取得し、DRAM85に記憶する。ステップS1の次に、ステップS2の処理が実行される。
【0113】
ステップS2において、CPU81は、コントローラに対して回転操作が行われたか否かを判定する。すなわち、CPU81は、DRAM85に記憶される操作データに基づいて、当該操作データに係るコントローラに対して回転操作が行われたか否かを判定する。なお、回転操作の検知は、上記“(第1段階)”の欄で述べた方法によって行われる。ステップS2の判定結果が肯定である場合、ステップS3の処理が実行される。一方、ステップS2の判定結果が否定である場合、ステップS3の処理がスキップされて、後述するステップS4の処理が実行される。
【0114】
ステップS3において、CPU81は、ステップS2において回転操作が行われたコントローラのプレイヤについて、魔法パワーを加算する。ここで、CPU81は、プレイヤに溜められた魔法パワーを示す情報をプレイヤ毎にDRAM85に記憶している。ステップS3において、CPU81は、加算後の魔法パワーを示す内容となるように、DRAM85に記憶されている情報を更新する。ステップS3の次に、ステップS4の処理が実行される。
【0115】
ステップS4において、CPU81は、魔法パワーに応じた強さで各コントローラを振動させる。すなわち、CPU81は、DRAM85に記憶されている魔法パワーを示す情報に基づいて、各コントローラを振動させる強さを特定する。さらに、CPU81は、コントローラの振動子107または117を振動させるための上記振動指令として、特定された振動の強さを指定する振動指令を、コントローラ通信部83を介して各コントローラへ送信する。上記振動指令を受信したコントローラ(具体的には、通信制御部)は、振動指令に応じた制御信号を増幅器へ出力することによって、振動子を振動させる。これによって、振動指令によって指定された強さで振動子が振動し、コントローラが振動する。なお、本実施形態においては、CPU81は、魔法パワーが溜まっている場合には常にコントローラが振動するように(換言すれば、振動が継続的に実行されるように)、当該コントローラへ振動指令を送信する。ステップS4の次に、ステップS5の処理が実行される。
【0116】
ステップS5において、CPU81は、ゲーム画像をディスプレイ12に表示するとともに、BGMや効果音等のゲーム音をスピーカ88から出力する。本実施形態においては、第1ゲーム例における第1段階においては、上記ステップS5の処理が所定時間(すなわち、1フレーム時間)に1回の割合で実行されることによって、ゲーム画像の動画およびゲーム音が出力される。第1段階においては、回転操作を促す画像が表示される(図10参照)。また、コントローラの振動に応じたゲーム音がスピーカ88から出力される。ステップS5の次に、ステップS6の処理が実行される。
【0117】
ステップS6において、CPU81は、魔法パワーが所定量だけ溜まったか否かを判定する。CPU81は、上記ステップS3においてDRAM85に記憶された、魔法パワーを示す情報に基づいて判定を行う。ステップS6の判定結果が肯定である場合、ステップS7の処理が実行される。一方、ステップS6の判定結果が否定である場合、ステップS1の処理が再度実行される。第1段階においては、ステップS1〜S6の一連の処理が繰り返し実行される。なお、ステップS6の判定は、所定時間の経過を条件とするようにしてもよい。
【0118】
ステップS7において、CPU81は、各コントローラから操作データを取得する。ステップS7の処理は、上記ステップS1の処理と同様である。ステップS7の次に、ステップS8の処理が実行される。
【0119】
ステップS8において、CPU81は、各コントローラの操作に基づいて、各コントローラの振動の強さを決定する。具体的には、CPU81は、上記“(第2段階)”の欄で述べた方法によって、上記(a)〜(c)の振動の有無、および、振動の強さを決定し、実行する振動の強さを足し合わせた強さとなるように、コントローラの振動の強さを決定する。CPU81は、決定した振動の強さを示す情報をDRAM85に記憶する。ステップS8の次に、ステップS9の処理が実行される。
【0120】
ステップS9において、CPU81は、ステップS8で決定された強さで、各コントローラを振動させる。すなわち、CPU81は、DRAM85に記憶されている、振動の強さを示す情報を参照して、各コントローラの振動子を振動させるための振動指令を、各コントローラへ送信する。なお、ステップS9において、上記振動指令によって指定される内容は上記ステップS4とは異なるものの、コントローラを振動させるための処理動作は、上記ステップS4の処理と同様である。ステップS9の次に、ステップS10の処理が実行される。
【0121】
ステップS10において、CPU81は、ゲーム画像をディスプレイ12に表示するとともに、BGMや効果音等のゲーム音をスピーカ88から出力する。本実施形態においては、第2段階においては、上記ステップS10の処理が所定時間(すなわち、1フレーム時間)に1回の割合で実行されることによって、ゲーム画像の動画およびゲーム音が出力される。第2段階では、例えば、魔法のパワーが衝突するゲーム画像(図12参照)がディスプレイ12に表示される。また、コントローラの振動に応じたゲーム音がスピーカ88から出力される。ステップS10の次に、ステップS11の処理が実行される。
【0122】
ステップS11において、CPU81は、ゲームを終了するか否かを判定する。例えば、衝突位置Pが2人のプレイヤのうちのどちらかの側まで移動したことによって勝敗が着いた場合、または、ゲームが開始されてからの時間が所定の制限時間に達した場合、CPU81は、ゲームを終了すると判定する。ステップS11の判定結果が否定である場合、ステップS7の処理が再度実行される。第2段階においては、ステップS7〜S11の一連の処理が繰り返し実行される。一方、ステップS11の判定結果が肯定である場合、CPU81は、図13に示す第1ゲーム処理を終了する。
【0123】
[3−2:第2ゲーム例]
図14図16を参照して、第2ゲーム例について説明する。第2ゲーム例は、1人でプレイ可能なゲームであり、プレイヤは、皿回しの棒のようにコントローラを操作して、仮想的に皿回しを行うゲームである。なお、第2ゲーム例では、プレイヤは1つのコントローラを用いるので、複数のコントローラを用いることによって複数人のプレイヤが同時にゲームを行うことも可能である。
【0124】
[第2ゲーム例の概要]
図14は、第2ゲーム例における操作の一例を示す図である。第2ゲーム例では、図14に示すように、プレイヤは、コントローラを用いて回転操作を行う。第2ゲーム例における回転操作は、皿回しの棒のようにコントローラを回す操作である。すなわち、第2ゲーム例における回転操作は、第1ゲーム例と同様、縦向きの状態にしたコントローラを、水平面上において円の軌跡を描くように移動させる操作である。第2ゲーム例においては、情報処理システム1は、コントローラが1周分の回転移動を行った場合に、1回の回転操作が行われたと判定する。なお、第2ゲーム例も第1ゲーム例と同様または類似の操作をプレイヤが行うが、後述するように、回転操作を検知する方法は第2ゲーム例と第1ゲーム例とでは異なっている。
【0125】
ここで、上記“[第1ゲーム例の概要]”にて述べたように、プレイヤが上記回転操作を行う場合、コントローラは、コントローラの上側が下側よりも大きな円を描くような動きを行う(図10参照)。したがって、コントローラの長手方向に垂直な2軸(すなわち、図4または図5に示すx軸およびz軸)回りの回転に関する角速度(換言すれば、姿勢)は、それぞれ、回転操作が繰り返されることに応じて周期的に変化し、回転操作によってコントローラが1回転する間に1周期分の変化を行う。以上より、上記2軸回りの回転に関する角速度に基づいて、1周の回転操作中におけるコントローラの回転角度(換言すれば、円の軌跡上におけるコントローラの位置)を算出することができる。つまり、角速度センサの検出結果(すなわち、角速度)のうちで上記2軸に関する角速度に基づいて、上記の回転操作を検知することができる。
【0126】
上記より、第2ゲーム例において、情報処理システム1は、上記2軸の角速度センサの検出結果(すなわち、角速度)に基づいて、回転操作を検知する。具体的には、情報処理システム1は、上記2軸に関する角速度に基づいて、それぞれ、当該2軸回りに関するコントローラの姿勢を算出する。算出された2つの姿勢を各成分とする2次元値は、1周の回転操作中におけるコントローラの回転角度を表す。したがって、情報処理システム1は、上記2次元値に基づいて回転操作が行われたか否かを判定する。具体的には、情報処理システム1は、コントローラがある回転角度となる状態から、回転角度が360°変化して当該状態に戻ったことに応じて、1回の回転操作が行われたと判定する。これによれば、2軸の角速度センサの検出結果に基づいて回転操作を検知することができるので、簡易な方法で回転操作を検知することができる。
【0127】
上記のように、第2ゲーム例において、情報処理システム1は、慣性センサの出力に基づく角速度であって、所定の2軸(すなわち、x軸およびz軸)に関するコントローラの角速度に基づいて回転操作に関するコントローラの回転角度を判別することによって、回転操作を検知する。
【0128】
第2ゲーム例において、情報処理システム1は、コントローラに対する回転操作に応じて、当該コントローラに対して所定の振動を行わせる。図15は、第2ゲーム例における回転操作とコントローラの振動との関係の一例を示す図である。第2ゲーム例においては、図15に示すように、回転操作に応じたコントローラの振動は、常時行われるのではなく、回転操作に応じたタイミング(図15では、t1〜t3のタイミング)で行われる。具体的には、コントローラは、1回の回転操作が行われる毎(すなわち、1回の回転操作が検知される毎)に、所定の波形の振動を1回行う。これによって、プレイヤは、回転操作が検知されたことを振動によって認識することができる。
【0129】
上記所定の波形は任意であるが、本実施形態においては、上記所定の波形は、振幅が、最初は小さく、途中で大きくなって、最後に再度小さくなるような波形である。これによれば、実際の皿回しにおいて皿を回すことによって棒に加わる力を振動によって再現することができ、コントローラが皿回しの棒であるかのようにプレイヤに感じさせることができる。つまり、上記振動によって、実際に皿回しを行っている感覚をプレイヤに与えることができる。
【0130】
なお、情報処理システム1は、コントローラに対する回転操作の速さに応じて、当該コントローラの振動の強さを変化させてもよい。すなわち、情報処理システム1は、検知された回転操作の速さが速いほど、上記所定の波形の振幅を大きくしてコントローラを振動させてもよい。これによれば、振動によって、実際に皿回しを行っている感覚としてよりリアルな感覚をプレイヤに与えることができる。なお、回転操作の速さは、例えば、第1ゲーム例と同様に1回の回転操作に要した時間に基づいて算出されてもよいし、1周の回転操作における移動速度の最大値として算出されてもよい。
【0131】
また、情報処理システム1は、コントローラに対する回転操作の大きさ(つまり、回転操作によるコントローラの円形軌跡の大きさ)に応じて、当該コントローラの振動の強さを変化させてもよい。すなわち、情報処理システム1は、検知された回転操作の大きさが大きいほど、上記所定の波形の振幅を大きくしてコントローラを振動させてもよい。なお、回転操作の大きさは、例えば、当該回転操作が行われている期間における、上記2軸の角速度を各成分とする2次元ベクトルの大きさの累積値に基づいて算出することができる。
【0132】
なお、第2ゲーム例において、回転操作を検知する方法、および、回転操作の速さ(または大きさ)を算出する方法は任意である。他の実施形態においては、例えば、回転操作の検知は、上記第1ゲーム例と同様の方法を用いて行われてもよいし、3軸の角速度センサの検出結果を用いて行われてもよい。また、情報処理システム1は、角速度センサに代えて(または共に)加速度センサの検出結果を用いて回転操作を検知してもよい。また、回転速度の速さは、慣性センサの検出結果(すなわち、コントローラの角速度および/または加速度)に基づく任意の方法で算出されてもよい。
【0133】
第2ゲーム例において、情報処理システム1は、上記回転操作に基づいて、仮想のゲーム空間における皿(換言すれば、皿オブジェクト)の動作を制御する。皿の動作を制御する方法は任意である。第2ゲーム例においては、次の動作ルールに基づいて皿の動作(具体的には、回転速度)が制御される。
・回転操作の速さ(および/または大きさ)に応じて、皿の回転速度を上げる。
・回転操作が行われていない場合、時間経過に応じて皿の回転速度を下げる。
・回転速度が一定以下になると、皿が棒から落ちる。
・回転速度が一定以上の状態が所定時間以上続くと、皿が棒から飛び出す(換言すれば、落ちる)。
・回転操作が行われていない場合に、コントローラが縦向きの状態から所定角度以上傾けられると、皿が落ちる。
・回転操作の軌道が円形から大きく外れると、皿が落ちる。
なお、縦向きの状態からコントローラが傾いた角度は、例えば、加速度センサおよび/または角速度センサの出力に基づいて算出することができる。上記の動作ルールより、プレイヤは、回転操作を行って皿の回転速度を上げたり、回転操作を止めて皿の回転速度を下げたりして、棒から皿が落ちないように操作を行う。
【0134】
情報処理システム1は、回転操作に基づく皿の動作を表すゲーム画像をディスプレイ12に表示する。すなわち、上記動作ルールに基づいて決定される皿の回転速度に応じたゲーム画像がディスプレイ12に表示される。例えば、皿の回転速度が大きすぎる場合、情報処理システム1は、皿が左右に大きくブレながら回転する様子を表すゲーム画像をディスプレイ12に表示する。また例えば、皿の回転速度が小さすぎる場合、情報処理システム1は、皿が上下に揺れながら回転する様子を表すゲーム画像をディスプレイ12に表示する。
【0135】
なお、第2ゲーム例において、情報処理システム1は、コントローラの振動に応じた音をスピーカ88から出力するようにしてもよい。例えば、回転操作が行われる毎に、皿を回す効果音が出力されてもよい。このとき、回転操作の速さに応じて音量や音の高さが変化する効果音が出力されてもよい。
【0136】
第2ゲーム例において、情報処理システム1は、上記回転操作に応じた振動とは別に、皿が棒の上で回転している間、コントローラを振動させる。皿の回転に応じた振動は、回転操作に応じた振動とは異なり、皿が棒の上で回転している間は継続的に行われる。皿の回転に応じた振動によって、皿の回転による振動が棒に伝わっている様子を再現することができ、コントローラが皿回しの棒であるかのようにプレイヤに感じさせることができる。
【0137】
本実施形態においては、皿の回転に応じた振動は、皿の回転速度に応じた強さで行われる。すなわち、情報処理システム1は、皿の回転速度が大きいほど、皿の回転に応じた振動の振幅を大きくする。これによれば、プレイヤは、ディスプレイ12に表示されるゲーム画像を見なくても、コントローラの振動によってゲーム状況(すなわち、皿の回転速度)を認識することができる。なお、第2ゲーム例において、皿の回転速度は、回転操作の速さに応じて大きくなるので、回転操作の速さが大きいほど、皿の回転に応じた振動が強くなる。
【0138】
第2ゲーム例において、情報処理システム1は、上記回転操作に応じた振動と、皿の回転に応じた振動とが同時に行われる場合、これら2種類の振動の強さを足し合わせた強さでコントローラを振動させる。なお、第2ゲーム例においては、上記2種類の振動は、同じ周波数の振動であるとする。ただし、他の実施形態においては、上記2種類の振動は、それぞれ異なる周波数であってもよい。また、他の実施形態においては、上記2種類の振動は、それぞれ異なる波形、および/または、振動パターンの振動であってもよい。
【0139】
以上のように、第2ゲーム例によれば、コントローラに対する回転操作に応じて当該コントローラを振動させるので、回転操作が正しく行われた(操作が検知された)か否かを、プレイヤに直感的に認識させることができる。また、コントローラの振動の強さによって、ゲーム状況(例えば、回転操作の速さ、あるいは、皿の回転速度)をプレイヤに直感的に認識させることができる。また、コントローラの振動によって、実際に皿を回している感覚をプレイヤに与えることができる。
【0140】
[第2ゲーム例における具体的なゲーム処理例]
図16は、情報処理システムにおいて実行される、第2ゲーム例を行うためのゲーム処理(第2ゲーム処理と呼ぶ)の流れの一例を示すフローチャートである。なお、本実施形態においては、情報処理システム1がアクセス可能な記憶部に記憶されている上記ゲームプログラムは、第2ゲーム処理のためのプログラムを含む。図16に示す一連の処理は、本体装置2のCPU81が第2ゲーム処理のためのプログラムを実行することによって、開始される。
【0141】
ステップS21において、CPU81は、コントローラから操作データを取得する。ステップS21の処理は、上記第1ゲーム処理におけるステップS1の処理と同様である。ステップS21の次に、ステップS22の処理が実行される。
【0142】
ステップS22において、CPU81は、コントローラに対して回転操作が行われたか否かを判定する。すなわち、CPU81は、DRAM85に記憶される操作データに基づいて、当該操作データに係るコントローラに対して回転操作が行われたか否かを判定する。なお、回転操作の検知は、上記“[第2ゲーム例の概要]”の欄で述べた方法によって行われる。ステップS22の判定結果が肯定である場合、ステップS23の処理が実行される。一方、ステップS22の判定結果が否定である場合、ステップS23の処理がスキップされて、後述するステップS24の処理が実行される。
【0143】
ステップS23において、CPU81は、回転操作に応じた振動をコントローラに行わせることを決定する。具体的には、CPU81は、上述した所定の波形の振動(つまり、回転操作に応じた振動)について、ステップS22で検知された回転操作の速さに応じた振動強さ(すなわち、振幅)を決定する。なお、ステップS23で決定された振動に関する情報は、DRAM85に記憶される。ステップS23の次に、ステップS24の処理が実行される。
【0144】
ステップS24において、CPU81は、仮想のゲーム空間における皿の動作を制御する。すなわち、CPU81は、上記ステップS22で回転操作が検知されたか否か等に基づいて、上述した動作ルールに従って皿の動作(例えば、回転速度、および、皿から落ちるか否か等)を決定する。ステップS24で決定された皿の動作に関する情報は、DRAM85に記憶される。ステップS24の次に、ステップS25の処理が実行される。
【0145】
ステップS25において、CPU81は、ステップS24で決定された皿の動作に応じた振動(すなわち、皿の回転に応じた振動)に関する振動態様(具体的には、振動の強さ)を決定する。すなわち、CPU81は、DRAM85に記憶されている、皿の動作に関する情報に基づいて、皿の回転に応じた振動を行うか否か、および、当該振動を行う場合には振動の強さを決定する。なお、ステップS25で決定された振動に関する情報は、DRAM85に記憶される。ステップS25の次に、ステップS26の処理が実行される。
【0146】
ステップS26において、CPU81は、コントローラを振動させる。すなわち、CPU81は、DRAM85に記憶されている、振動に関する情報を参照して、コントローラの振動子を振動させるための上記振動指令をコントローラへ送信する。第2ゲーム例においては、上記ステップS23で決定された振動(すなわち、回転操作に応じた振動)と、上記ステップS25で決定された振動(すなわち、皿の回転に応じた振動)とを足し合わせた振動をコントローラに行わせるように、振動指令の内容が決定される。なお、ステップS26において、上記振動指令によって指定される内容は上記ステップS4とは異なるものの、コントローラを振動させるための処理動作は、上記ステップS4の処理と同様である。
【0147】
なお、上記回転操作に応じた振動は、ステップS21〜S28の処理ループにおける複数回のステップS26の処理に亘って実行される。したがって、上記回転操作に応じた振動が実行される期間中における上記ステップS26の処理においては、CPU81は、上記2種類の振動を足し合わせた振動をコントローラに行わせるように、当該期間に送信される各振動指令の内容を決定する。ステップS26の次に、ステップS27の処理が実行される。
【0148】
ステップS27において、CPU81は、ゲーム画像をディスプレイ12に表示するとともに、BGMや効果音等のゲーム音をスピーカ88から出力する。本実施形態においては、上記ステップS27の処理が所定時間(すなわち、1フレーム時間)に1回の割合で実行されることによって、ゲーム画像の動画およびゲーム音が出力される。第2ゲーム例においては、CPU81は、例えば、上記ステップS24で決定された皿の動作を表すゲーム画像を生成してディスプレイ12に表示する。また例えば、コントローラの振動に応じたゲーム音がスピーカ88から出力される。ステップS27の次に、ステップS28の処理が実行される。
【0149】
ステップS28において、CPU81は、ゲームを終了するか否かを判定する。例えば、皿が落ちてゲームオーバーとなった場合、または、皿を継続して所定時間回し続けることができてゲームクリアとなった場合、CPU81は、ゲームを終了すると判定する。ステップS28の判定結果が否定である場合、ステップS21の処理が再度実行される。一方、ステップS28の判定結果が肯定である場合、CPU81は、図16に示す第2ゲーム処理を終了する。
【0150】
[3−3:第3ゲーム例]
図17図19を参照して、第3ゲーム例について説明する。第3ゲーム例は、1人でプレイ可能なゲームであり、プレイヤは、金庫のダイヤルのようにコントローラを回して操作して金庫を開けるゲームである。なお、第3ゲーム例では、プレイヤは1つのコントローラを用いるので、複数のコントローラを用いることによって複数人のプレイヤが同時にゲームを行うことも可能である。
【0151】
[第3ゲーム例の概要]
図17は、第3ゲーム例における操作の一例を示す図である。第3ゲーム例では、図17に示すように、プレイヤは、コントローラを用いて回転操作を行う。第3ゲーム例における回転操作は、金庫のダイヤルのようにコントローラを回す操作である。すなわち、第3ゲーム例では、プレイヤは、コントローラを横向きにした状態で、コントローラの長手方向に垂直な所定軸(図17参照。具体的には、図4または図5に示すx軸)回りにコントローラを回転させる操作である。図17に示すように、第3ゲーム例においては、回転操作は、コントローラの姿勢を変化させる操作である。
【0152】
第3ゲーム例においては、情報処理システム1は、コントローラの長手方向に垂直な上記所定軸回りの姿勢を算出する。なお、上記姿勢の算出方法は任意であり、慣性センサの検出結果に基づいて上記姿勢を算出することができる。例えば、情報処理システム1は、上記所定軸に垂直な2軸の加速度に基づいて上記姿勢を算出することも可能であるし、上記所定軸回りの角速度に基づいて上記姿勢を算出することも可能である。第3ゲーム例においては、コントローラの上記姿勢が変化した場合、回転操作が行われたことになる。
【0153】
上記のように、第3ゲーム例においては、少なくとも所定軸回りに関するコントローラの姿勢を慣性センサの出力に基づいて算出し、算出される姿勢に基づいて回転操作を検知する。
【0154】
図18は、第3ゲーム例における回転操作と振動強さとの関係の一例を示す図である。図18に示すグラフにおいて、横軸は、回転操作によって変化されるコントローラの回転角度(すなわち、上記所定軸回りの姿勢に関する回転角度)を示し、縦軸は、コントローラの振動強さを示す。図18では、コントローラの回転角度が時間に応じて変化していく場合において、振動が行われる期間を示している。
【0155】
図18に示すように、第3ゲーム例では、情報処理システム1は、第1〜第3の振動という3種類の振動をコントローラに行わせる。ここで、各振動の周波数は、それぞれ異なっている。具体的には、振動の周波数は、第1の振動、第2の振動、第3の振動の順で高くなる。
【0156】
第1の振動は、コントローラの回転速度(すなわち、コントローラの回転操作の速さ、換言すれば、上記所定軸回りに関する姿勢が変化する速度)に応じた振動である。すなわち、情報処理システム1は、コントローラの回転速度に応じた強さで第1の振動をコントローラに行わせる。図18に示すように、第1の振動は、コントローラの回転速度が相対的に速い場合に強くなり、コントローラの回転速度が相対的に低い場合に弱くなる。なお、第3ゲーム例では、回転速度が所定値よりも大きい場合(図18に示す例では、タイミングt11より前の期間)、情報処理システム1は、第2の振動および第3の振動よりも強い振動で第1の振動をコントローラに行わせる。
【0157】
上述のように、第3ゲーム例において、第1の振動は、相対的に低い周波数の振動である。このような第1の振動によって、情報処理システム1は、金庫のダイヤルを回すときに生じる重さに似た感覚をプレイヤに与えることができる。第3ゲーム例においては、コントローラを早く回すほど第1の振動が強くなるので、プレイヤはより重さを感じるようになる。これによって、実際にダイヤルを回しているような感覚をプレイヤに与えることができる。
【0158】
第2の振動は、コントローラの姿勢(換言すれば、回転角度)が所定の角度(例えば、5°)だけ変化する毎に行われる振動である。すなわち、情報処理システム1は、所定の角度毎に基準角度(図18に示すθ1〜θ6)を予め設定しておき、コントローラの姿勢が基準角度となったことに応じて、第2の振動をコントローラに行わせる。なお、上記第1の振動は、コントローラが回転している間は常時実行されるのに対して、第2の振動は、コントローラの姿勢が基準角度となったことに応じて、所定時間だけ実行される(図18参照)。第2の振動は、コントローラの姿勢が所定角度だけ変化する毎に実行されるので、プレイヤは、第2の振動が発生する頻度によって、コントローラを回転させる速度を認識することができる。また、第3ゲーム例においては、第2の振動の強さは一定である。
【0159】
上述のように、第3ゲーム例において、第2の振動は、相対的に高い周波数の振動である。このような第2の振動によって、情報処理システム1は、金庫のダイヤルを回すときに生じるクリック感(すなわち、カチカチとした感覚)に似た感覚をプレイヤに与えることができる。つまり、第2の振動によっても、実際にダイヤルを回しているような感覚をプレイヤに与えることができる。
【0160】
上記のように、第3ゲーム例においては、情報処理システム1は、少なくとも所定軸(すなわち、長手方向に垂直な軸)回りに関するコントローラの姿勢を慣性センサの出力に基づいて算出する。そして、情報処理システム1は、回転操作の速さに応じた強さの第1の振動と、コントローラの姿勢が所定量変化するごとに実行される第2の振動とをコントローラに実行させる。
【0161】
第3の振動は、コントローラの姿勢が、所定の目標角度(図18に示すθ6)となったことに応じて行われる振動である。ここで、目標角度は、プレイヤが回転操作を行う目標にする角度であり、コントローラの姿勢を目標角度にして所定条件を満たす(例えば、所定時間停止する)ことで、ダイヤルのロックが解除される。
【0162】
情報処理システム1は、上記目標角度を予め設定しておき、コントローラの姿勢が目標角度となったことに応じて、第3の振動をコントローラに行わせる。なお、上記第1の振動は、コントローラが回転している間は常時実行されるのに対して、第3の振動は、コントローラの姿勢が目標角度となったことに応じて、所定時間だけ実行される(図18参照)。また、第3ゲーム例においては、第3の振動の強さは一定である。
【0163】
なお、第3の振動は、第2の振動と第3の振動とをプレイヤが区別できるものであればよい。つまり、第3の振動は、振動の態様および/または振動の期間が第2の振動と異なっていればよい。例えば、図18においては、第3の振動は、第2の振動よりも強いものとするが、他の実施形態においては、第2の振動と同じ強さであってもよいし、第2の振動より弱くてもよい。また、第3の振動は、第2の振動とは同じ周波数で、振動の期間、振動の強さ、および振動パターンのうち少なくともいずれかが異なっていてもよい。
【0164】
ここで、第3のゲーム例では、第2の振動の実行期間と第3の振動の実行期間とが重複する場合には、情報処理システム1は、第3の振動のみをコントローラに実行させる。また、第1の振動の実行期間と第2の振動または第3の振動の実行期間とが重複する場合には、情報処理システム1は、コントローラに2種類の振動を同時に実行させる。つまり、図18に示すように、第3のゲーム例では、第1の振動と第2または第3の振動という、2つの異なる周波数の振動が同時に実行される場合がある。このような場合、情報処理システム1は、2つの振動の波形を合成した波形を算出し、算出された波形でコントローラを振動させるようにしてもよい。
【0165】
なお、上述のように、本実施形態においては、本体装置2は、上述の単位時間(例えば、5[ms])毎に振動の振幅および周波数を指定する振動指令を左コントローラ3へ送信する。そのため、情報処理システム1は、2つの異なる周波数の振動を同時に実行する場合、振動指令において指定する振幅および周波数を次のように決定してもよい。
【0166】
例えば、振動指令のある単位時間に対応する単位期間において、周波数Wf1および振幅Wa1である第1の振動と、周波数Wf2および振幅Wa2である第2の振動とを合成する場合を考える。この場合、上記単位期間における振動指令が指定する振幅は、振幅Wa1と振幅Wa2との和として算出されてもよい。また、上記単位期間における振動指令が指定する周波数は、周波数Wf1と周波数Wf2とについて所定の重み(例えば、振幅に応じた重み)を付した平均値として算出されてもよい。なお、所定の重みは任意であり、振動指令が指定する周波数は、例えば、周波数Wf1と周波数Wf2との単なる平均値であってもよい。
【0167】
なお、他の実施形態においては、2つの異なる周波数の振動が同時に実行される場合には、本体装置2は、いずれか一方の振動(例えば、振幅が大きい方の振動)のみをコントローラに実行させるようにしてもよい。
【0168】
第3ゲーム例において、プレイヤは、コントローラを用いて上記回転操作を行って、コントローラを上記目標角度に合わせる。ここで、コントローラが目標角度となると、コントローラは上記第3の振動を行うので、プレイヤは、第3の振動によって目標角度を知ることができる。第3ゲーム例では、コントローラが目標角度となった状態で所定時間だけコントローラを静止させることによって、ダイヤルのロックが解除される。なお、ダイヤルのロックが解除されると、新たな目標角度が設定される。第3ゲーム例では、ダイヤルのロックが所定回数(例えば3回)解除されることで、金庫が開いてゲームクリアとなる。
【0169】
第3のゲーム例では、情報処理システム1は、コントローラの姿勢に応じて金庫のダイヤルが回転する様子を表すゲーム画像をディスプレイ12に表示する。また、情報処理システム1は、ダイヤルのロックが解除されたことを示す画像をディスプレイ12に表示してもよい。
【0170】
なお、第3ゲーム例において、情報処理システム1は、コントローラの振動に応じた音をスピーカ88から出力するようにしてもよい。例えば、上記第2の振動に応じて、金庫のダイヤルが回転する効果音(例えば、カチカチという音)が出力されてもよい。また、第1の振動が行われる場合、回転操作の速さに応じて音量や音の高さが変化する効果音が出力されてもよい。なお、第3ゲーム例においては、第3の振動に応じた音は出力されないものとする。ただし、他の実施形態においては、第3の振動に応じた音が出力されてもよい。
【0171】
以上のように、第3のゲーム例によれば、コントローラを回転させる操作の速さに応じてコントローラの振動(具体的には、第1の振動)の強さが増加する。これによれば、プレイヤは、回転操作の速さを直感的に認識することができるとともに、実際にダイヤルを回しているような感覚を得ることができる。
【0172】
[第3ゲーム例における具体的なゲーム処理例]
図19は、情報処理システムにおいて実行される、第3ゲーム例を行うためのゲーム処理(第3ゲーム処理と呼ぶ)の流れの一例を示すフローチャートである。なお、本実施形態においては、情報処理システム1がアクセス可能な記憶部に記憶されている上記ゲームプログラムは、第3ゲーム処理のためのプログラムを含む。図19に示す一連の処理は、本体装置2のCPU81が第3ゲーム処理のためのプログラムを実行することによって、開始される。
【0173】
ステップS41において、CPU81は、操作データを取得する。ステップS41の処理は、上記第1ゲーム処理におけるステップS1の処理と同様である。ステップS41の次に、ステップS42の処理が実行される。
【0174】
ステップS42において、CPU81は、コントローラの姿勢を算出する。すなわち、CPU81は、DRAM85に記憶されている操作データに基づいて、上記“[第3ゲーム例の概要]”で述べた方法によって、コントローラの姿勢を算出する。算出された姿勢を示す情報は、DRAM85に記憶される。ステップS42の次に、ステップS43の処理が実行される。
【0175】
ステップS43において、CPU81は、コントローラの回転速度に応じて第1の振動の強さを決定する。すなわち、CPU81は、DRAM85に記憶されている姿勢を示す情報に基づいてコントローラの回転速度を算出し、算出された回転速度に基づいて第1の振動の強さを決定する。決定された第1の振動の強さを示す情報は、DRAM85に記憶される。なお、コントローラが回転していない場合(すなわち、回転速度が0である場合)は、振動の強さが0に設定される。ステップS43の次に、ステップS44の処理が実行される。
【0176】
ステップS44において、CPU81は、コントローラの姿勢が上記目標角度となったか否かを判定する。この判定は、DRAM85に記憶されている姿勢を示す情報に基づいて行われる。ステップS44の判定結果が肯定である場合、ステップS45の処理が実行される。一方、ステップS44の判定結果が否定である場合、後述するステップS46の処理が実行される。
【0177】
ステップS45において、CPU81は、第3の振動を行うことを決定する。すなわち、CPU81は、第3の振動を行うことを示す情報をDRAM85に記憶する。ステップS45の次に、ステップS48の処理が実行される。
【0178】
ステップS46において、CPU81は、コントローラが所定角度回転したか否かを判定する。すなわち、CPU81は、DRAM85に記憶されている姿勢を示す情報に基づいて、コントローラの姿勢が上記基準角度となったか否かを判定する。ステップS46の判定結果が肯定である場合、ステップS47の処理が実行される。一方、ステップS46の判定結果が否定である場合、ステップS47の処理がスキップされて、後述するステップS48の処理が実行される。
【0179】
ステップS47において、CPU81は、第2の振動を行うことを決定する。すなわち、CPU81は、第2の振動を行うことを示す情報をDRAM85に記憶する。ステップS47の次に、ステップS48の処理が実行される。
【0180】
ステップS48において、CPU81は、コントローラを振動させる。すなわち、CPU81は、DRAM85に記憶されている、第1〜第3の振動に関する情報に基づいて、第1の振動と、必要に応じて第2または第3の振動とを考慮した制御指令を生成する。なお、制御指令において指定される周波数および振幅は、上記“[第3ゲーム例の概要]”で述べた方法によって算出される。なお、ステップS48において、上記振動指令によって指定される内容は上記ステップS4とは異なるものの、コントローラを振動させるための処理動作は、上記ステップS4の処理と同様である。上記ステップS48の処理によって、ステップS43で決定された第1の振動と、ステップS47で決定された第2の振動と、ステップS45で決定された第3の振動とを考慮した振動が、コントローラによって行われる。
【0181】
なお、1回の第2の振動および1回の第3の振動は、ステップS41〜S50の処理ループにおける複数回のステップS48の処理に亘って実行される。したがって、1回の第2の振動および/または第3の振動が実行される期間中における上記ステップS48の処理においては、CPU81は、第1の振動と第2の振動とを考慮した振動をコントローラに行わせるように、当該期間に送信される各振動指令の内容を決定する。ステップS48の次に、ステップS49の処理が実行される。
【0182】
ステップS49において、CPU81は、ゲーム画像をディスプレイ12に表示するとともに、BGMや効果音等のゲーム音をスピーカ88から出力する。本実施形態においては、上記ステップS49の処理が所定時間(すなわち、1フレーム時間)に1回の割合で実行されることによって、ゲーム画像の動画およびゲーム音が出力される。第3ゲーム例においては、CPU81は、例えば、上記ステップS42で算出されたコントローラの姿勢に応じて金庫のダイヤルが回転する様子を表すゲーム画像を生成してディスプレイ12に表示する。また例えば、コントローラの振動に応じたゲーム音がスピーカ88から出力される。ステップS49の次に、ステップS50の処理が実行される。
【0183】
ステップS50において、CPU81は、ゲームを終了するか否かを判定する。例えば、金庫が開いてゲームクリアとなった場合、または、ゲームが開始されてからの時間が所定の制限時間に達してゲームオーバーとなった場合、CPU81は、ゲームを終了すると判定する。ステップS50の判定結果が否定である場合、ステップS51の処理が再度実行される。一方、ステップS50の判定結果が肯定である場合、CPU81は、図19に示す第3ゲーム処理を終了する。
【0184】
[4.上記実施形態のまとめと変形例]
上記実施形態における情報処理システムは、操作装置(すなわち、コントローラ)と情報処理装置(すなわち、本体装置2)とを含むゲームシステムである。操作装置は、下記の構成を備える。
・慣性センサ(すなわち、加速度センサ、および/または、角速度センサ)
・慣性センサからのデータを含む操作データを情報処理装置へ送信する操作データ送信部(すなわち、通信制御部)
・情報処理装置から取得される信号(すなわち、振動指令)に基づいて振動する振動部(すなわち、振動子)
また、情報処理装置は、下記の構成を備える。
・操作データを取得する操作データ取得部(ステップS1,S7,S21,S41)
・操作データに基づいて、操作装置を回す操作(すなわち、回転操作)の速さを判定する判定部(ステップS3,S23,S43)
・回す操作の速さに応じた強さで前記振動部を振動させるための振動信号を生成する振動信号生成部(ステップS4,S26,S48)
・振動信号を操作装置へ送信する振動信号送信部(すなわち、コントローラ通信部)
【0185】
なお、上記実施形態における情報処理システムは、コントローラを動かす操作の速さを判定していると言うこともできる。他の実施形態においては、情報処理システムは、動かす操作として、上記実施形態における回転操作に代えて、コントローラを振る操作、あるいは、コントローラを突く操作(図12参照)を検知し、これらの操作の速さを算出するようにしてもよい。このとき、情報処理システム1は、上記実施形態と同様に、コントローラを動かす操作の速さに応じて、コントローラの振動の強さを変化させるようにしてもよい。なお、動かす操作の速さは、例えば、1回の動かす操作を行う速さ(換言すれば、1回の動かす操作を行うのに要した時間の逆数)であってもよいし、動かす操作においてコントローラを移動させる速度(換言すれば、単位時間当たりの回転量)であってもよいし、動かす操作を行う頻度であってもよい。
【0186】
(回転操作の速さに応じた振動態様に関する変形例)
他の実施形態においては、情報処理システム1は、回転操作の速さに応じて、コントローラの振動の周波数を変化させるようにしてもよい。例えば、上記第1ゲーム例の第1段階において、情報処理システム1は、回転操作に応じて溜められた魔法パワーが多いほど高い周波数となるように、コントローラの振動を制御してもよい。これによれば、魔法パワーが大きいほど細かい振動(換言すれば、回転数が速い印象を与える振動)を生じさせることができる。なお、上記第1ゲーム例の第1段階においては、情報処理システム1は、回転操作に応じて溜められた魔法パワーが多いほど低い周波数となるように、コントローラの振動を制御してもよい。これによれば、魔法パワーが大きいほど、重く感じる振動を生じさせることができる。
【0187】
また、上記第2ゲーム例において、情報処理システム1は、回転操作の速さが速いほど高い周波数となるように、コントローラの振動を制御してもよい。これによれば、上記実施形態と同様、実際に皿回しを行っている感覚をよりリアルにすることができる。また、上記第3ゲーム例において、情報処理システム1は、コントローラの回転速度が速いほど高い周波数となるように、コントローラの振動を制御してもよい。これによれば、上記実施形態と同様に、金庫のダイヤルを回している感覚をプレイヤに与えることができる。
【0188】
他の実施形態においては、回転操作の速さに応じて、コントローラの振動の波形を変化させるようにしてもよい。これによっても、回転操作の速さに応じて振動の強さまたは周波数を変化させる場合と同様、回転操作の速さに応じて振動の態様を変化させることができる。したがって、上記の場合と同様、回転操作の速さを振動の態様によってプレイヤに認識させることができる。例えば、上記第1ゲーム例の第1段階において、情報処理システム1は、回転操作に応じて溜められた魔法パワーが多いほど、多くの周波数成分を含む振動波形となるように、コントローラの振動を制御してもよい。
【0189】
なお、他の実施形態においては、情報処理システム1は、回転操作の速さに応じて、コントローラの振動の強さ、周波数、および波形のうちいくつかまたは全部を変化させるようにしてもよい。
【産業上の利用可能性】
【0190】
上記実施形態は、操作に応じたゲーム状況を振動によってより具体的に表現すること等を目的として、例えば、ゲームシステムやゲームプログラムとして利用することが可能である。
【符号の説明】
【0191】
1 情報処理システム
2 本体装置
3 左コントローラ
4 右コントローラ
81 CPU
104,114 加速度センサ
105,115 角速度センサ
107,117 振動子
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19