IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

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

特許7170680ゲームシステム、ゲームプログラム、情報処理装置、および、ゲーム処理方法
<>
  • 特許-ゲームシステム、ゲームプログラム、情報処理装置、および、ゲーム処理方法 図1
  • 特許-ゲームシステム、ゲームプログラム、情報処理装置、および、ゲーム処理方法 図2
  • 特許-ゲームシステム、ゲームプログラム、情報処理装置、および、ゲーム処理方法 図3
  • 特許-ゲームシステム、ゲームプログラム、情報処理装置、および、ゲーム処理方法 図4
  • 特許-ゲームシステム、ゲームプログラム、情報処理装置、および、ゲーム処理方法 図5
  • 特許-ゲームシステム、ゲームプログラム、情報処理装置、および、ゲーム処理方法 図6
  • 特許-ゲームシステム、ゲームプログラム、情報処理装置、および、ゲーム処理方法 図7
  • 特許-ゲームシステム、ゲームプログラム、情報処理装置、および、ゲーム処理方法 図8
  • 特許-ゲームシステム、ゲームプログラム、情報処理装置、および、ゲーム処理方法 図9
  • 特許-ゲームシステム、ゲームプログラム、情報処理装置、および、ゲーム処理方法 図10
  • 特許-ゲームシステム、ゲームプログラム、情報処理装置、および、ゲーム処理方法 図11
  • 特許-ゲームシステム、ゲームプログラム、情報処理装置、および、ゲーム処理方法 図12
  • 特許-ゲームシステム、ゲームプログラム、情報処理装置、および、ゲーム処理方法 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-04
(45)【発行日】2022-11-14
(54)【発明の名称】ゲームシステム、ゲームプログラム、情報処理装置、および、ゲーム処理方法
(51)【国際特許分類】
   A63F 13/211 20140101AFI20221107BHJP
   A63F 13/285 20140101ALI20221107BHJP
   G06F 3/01 20060101ALI20221107BHJP
【FI】
A63F13/211
A63F13/285
G06F3/01 560
【請求項の数】 29
(21)【出願番号】P 2020022720
(22)【出願日】2020-02-13
(65)【公開番号】P2021126323
(43)【公開日】2021-09-02
【審査請求日】2021-03-09
(73)【特許権者】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】100158780
【弁理士】
【氏名又は名称】寺本 亮
(74)【代理人】
【識別番号】100121359
【弁理士】
【氏名又は名称】小沢 昌弘
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】鈴木 利明
(72)【発明者】
【氏名】平賀 美咲
【審査官】鈴木 智之
(56)【参考文献】
【文献】国際公開第2018/003161(WO,A1)
【文献】特開2019-084298(JP,A)
【文献】特開2013-081572(JP,A)
【文献】特開2015-231098(JP,A)
【文献】特開2010-000257(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
A63F 9/24
A63F 13/00-13/98
G06F 3/01
(57)【特許請求の範囲】
【請求項1】
情報処理装置と、
少なくとも1つの操作装置とを備え、
前記情報処理装置は、
プロセッサを備え、
前記操作装置は、
慣性センサと、振動子とを備え、
前記慣性センサの出力に基づく慣性データを前記情報処理装置へ送信し、
前記情報処理装置から受信した振動制御信号に基づいて前記振動子を振動させ、
前記プロセッサは、
ゲーム処理を実行し、
前記ゲーム処理における所定の場面において、指定された前記操作装置の前記振動子を振動させる前記振動制御信号を前記情報処理装置から出力させ、
前記操作装置からの前記慣性データに基づいて当該操作装置の動きの有無を判定し、
前記操作装置の動きが無いと判定されたことを少なくとも条件として、前記所定の場面において当該操作装置の振動子を振動させないまたは振動を弱めるように、振動の制限を行い、
前記操作装置の姿勢が、当該操作装置が載置されている姿勢であるか否かの判定を、当該操作装置が備える慣性センサの出力に基づく慣性データに基づいて行い、
前記操作装置が、当該操作装置が載置されている姿勢ではない場合、前記振動の制限を解除する、ゲームシステム。
【請求項2】
情報処理装置と、
少なくとも1つの操作装置とを備え、
前記情報処理装置は、
プロセッサを備え、
前記操作装置は、
慣性センサと、振動子とを備え、
前記慣性センサの出力に基づく慣性データを前記情報処理装置へ送信し、
前記情報処理装置から受信した振動制御信号に基づいて前記振動子を振動させ、
前記プロセッサは、
ゲーム処理を実行し、
前記ゲーム処理における所定の場面において、指定された前記操作装置の前記振動子を振動させる前記振動制御信号を前記情報処理装置から出力させ、
前記操作装置からの前記慣性データに基づいて当該操作装置の動きの有無を判定し、
前記操作装置の動きが無いと判定されたことを少なくとも条件として、前記所定の場面において当該操作装置の振動子を振動させないまたは振動を弱めるように、振動の制限を行い、
前記操作装置は、前記情報処理装置に対して装着可能であり、
前記プロセッサは、
前記操作装置が前記情報処理装置に対して装着された状態である場合、前記振動の制限を解除する、ゲームシステム。
【請求項3】
前記慣性センサは少なくとも加速度センサを含み、
前記プロセッサは、
所定期間に前記加速度センサによって検出される加速度の変化の大きさが基準より小さい場合、前記操作装置の動きが無いと判定する、請求項1または請求項2に記載のゲームシステム。
【請求項4】
前記プロセッサはさらに、
前記操作装置の姿勢が、当該操作装置が載置されている姿勢であるか否かの判定を、当該操作装置が備える慣性センサの出力に基づく慣性データに基づいて行い、
前記操作装置が、当該操作装置が載置されている姿勢ではない場合、前記振動の制限を解除する、請求項2に記載のゲームシステム。
【請求項5】
前記操作装置は、操作ボタンおよび/または方向入力スティックをさらに備え、
前記プロセッサはさらに、前記操作ボタンおよび/または方向入力スティックに対する入力がある場合、前記振動の制限を解除する、請求項1から請求項のいずれか1項に記載のゲームシステム。
【請求項6】
前記操作装置は、前記情報処理装置に対して装着可能であり、
前記プロセッサはさらに、
前記操作装置が前記情報処理装置に対して装着された状態である場合、前記振動の制限を解除する、請求項1に記載のゲームシステム。
【請求項7】
前記プロセッサは、
前記ゲーム処理において、複数人のプレイヤが順番にゲーム操作を行うゲームを実行し、
ゲーム操作の順番がプレイヤに回ってきた場面において、当該プレイヤに対応する前記操作装置の動きがあると判定されたことを少なくとも条件として、当該操作装置の前記振動子を振動させる前記振動制御信号を前記情報処理装置から出力させ、当該操作装置の動きが無いと判定されたことを少なくとも条件として、前記振動の制限を行う、請求項1から請求項のいずれか1項に記載のゲームシステム。
【請求項8】
情報処理装置のコンピュータに、
慣性センサと振動子を備える操作装置であって、前記慣性センサの出力に基づいた慣性データを前記情報処理装置に送信し、前記情報処理装置から受信した振動制御信号に基づいて前記振動子を振動させる操作装置と通信を行わせ、
ゲーム処理を実行させ、
前記ゲーム処理における所定の場面において、指定された前記操作装置の前記振動子を振動させる前記振動制御信号を前記情報処理装置から出力させ、
前記操作装置からの前記慣性データに基づいて前記操作装置の動きの有無を判定させ、
前記操作装置の動きが無いと判定されたことを少なくとも条件として、前記所定の場面において当該操作装置の振動子を振動させないまたは振動を弱めるように、振動の制限を行わせ
前記操作装置の姿勢が、当該操作装置が載置されている姿勢であるか否かの判定を、当該操作装置が備える慣性センサの出力に基づく慣性データに基づいて行わせ、
前記操作装置が、当該操作装置が載置されている姿勢ではない場合、前記振動の制限を解除させる、ゲームプログラム。
【請求項9】
情報処理装置のコンピュータに、
慣性センサと振動子を備え、前記情報処理装置に対して装着可能な操作装置であって、前記慣性センサの出力に基づいた慣性データを前記情報処理装置に送信し、前記情報処理装置から受信した振動制御信号に基づいて前記振動子を振動させる操作装置と通信を行わせ、
ゲーム処理を実行させ、
前記ゲーム処理における所定の場面において、指定された前記操作装置の前記振動子を振動させる前記振動制御信号を前記情報処理装置から出力させ、
前記操作装置からの前記慣性データに基づいて前記操作装置の動きの有無を判定させ、
前記操作装置の動きが無いと判定されたことを少なくとも条件として、前記所定の場面において当該操作装置の振動子を振動させないまたは振動を弱めるように、振動の制限を行わせ、
前記操作装置が前記情報処理装置に対して装着された状態である場合、前記振動の制限を解除させる、ゲームプログラム。
【請求項10】
前記慣性センサは少なくとも加速度センサを含み、
前記ゲームプログラムは、前記コンピュータに、
所定期間に前記加速度センサによって検出される加速度の変化の大きさが基準より小さい場合、前記操作装置の動きが無いと判定させる、請求項8または請求項9に記載のゲームプログラム。
【請求項11】
前記ゲームプログラムは、前記コンピュータに、
前記操作装置の姿勢が、当該操作装置が載置されている姿勢であるか否かの判定を、当該操作装置が備える慣性センサの出力に基づく慣性データに基づいてさらに行わせ、
前記操作装置が、当該操作装置が載置されている姿勢ではない場合、前記振動の制限を解除させる、請求項に記載のゲームプログラム。
【請求項12】
前記操作装置は、操作ボタンおよび/または方向入力スティックをさらに備え、
前記ゲームプログラムは、前記コンピュータに、
前記操作ボタンおよび/または方向入力スティックに対する入力がある場合、前記振動の制限を解除させる、請求項から請求項11のいずれか1項に記載のゲームプログラム。
【請求項13】
前記操作装置は、前記情報処理装置に対して装着可能であり、
前記ゲームプログラムは、前記コンピュータに、
前記操作装置が前記情報処理装置に対して装着された状態である場合、前記振動の制限を解除させる、請求項に記載のゲームプログラム。
【請求項14】
前記ゲームプログラムは、前記コンピュータに、
前記ゲーム処理において、複数人のプレイヤが順番にゲーム操作を行うゲームを実行させ、
ゲーム操作の順番がプレイヤに回ってきた場面において、当該プレイヤに対応する前記操作装置の動きがあると判定されたことを少なくとも条件として、当該操作装置の前記振動子を振動させる前記振動制御信号を前記情報処理装置から出力させ、当該操作装置の動きが無いと判定されたことを少なくとも条件として、前記振動の制限を行わせる、請求項から請求項13のいずれか1項に記載のゲームプログラム。
【請求項15】
プロセッサを備える情報処理装置であって
前記プロセッサは、
慣性センサと振動子を備える操作装置であって、前記慣性センサの出力に基づいた慣性データを前記情報処理装置に送信し、前記情報処理装置から受信した振動制御信号に基づいて前記振動子を振動させる操作装置と通信を行い、
ゲーム処理を実行し、
前記ゲーム処理における所定の場面において、指定された前記操作装置の前記振動子を振動させる前記振動制御信号を前記情報処理装置から出力させ、
前記操作装置からの前記慣性データに基づいて前記操作装置の動きの有無を判定し、
前記操作装置の動きが無いと判定されたことを少なくとも条件として、前記所定の場面において当該操作装置の振動子を振動させないまたは振動を弱めるように、振動の制限を行い、
前記操作装置の姿勢が、当該操作装置が載置されている姿勢であるか否かの判定を、当該操作装置が備える慣性センサの出力に基づく慣性データに基づいて行い、
前記操作装置が、当該操作装置が載置されている姿勢ではない場合、前記振動の制限を解除する、情報処理装置。
【請求項16】
プロセッサを備える情報処理装置であって、
前記プロセッサは、
慣性センサと振動子を備える操作装置であって、前記慣性センサの出力に基づいた慣性データを前記情報処理装置に送信し、前記情報処理装置から受信した振動制御信号に基づいて前記振動子を振動させる操作装置と通信を行い、
ゲーム処理を実行し、
前記ゲーム処理における所定の場面において、指定された前記操作装置の前記振動子を振動させる前記振動制御信号を前記情報処理装置から出力させ、
前記操作装置からの前記慣性データに基づいて前記操作装置の動きの有無を判定し、
前記操作装置の動きが無いと判定されたことを少なくとも条件として、前記所定の場面において当該操作装置の振動子を振動させないまたは振動を弱めるように、振動の制限を行い、
前記操作装置は、前記情報処理装置に対して装着可能であり、
前記プロセッサは、
前記操作装置が前記情報処理装置に対して装着された状態である場合、前記振動の制限を解除する、情報処理装置。
【請求項17】
前記慣性センサは少なくとも加速度センサを含み、
前記プロセッサは、
所定期間に前記加速度センサによって検出される加速度の変化の大きさが基準より小さい場合、前記操作装置の動きが無いと判定する、請求項15または請求項16に記載の情報処理装置。
【請求項18】
前記プロセッサはさらに、
前記操作装置の姿勢が、当該操作装置が載置されている姿勢であるか否かの判定を、当該操作装置が備える慣性センサの出力に基づく慣性データに基づいて行い、
前記操作装置が、当該操作装置が載置されている姿勢ではない場合、前記振動の制限を解除する、請求項16に記載の情報処理装置。
【請求項19】
前記操作装置は、操作ボタンおよび/または方向入力スティックをさらに備え、
前記プロセッサはさらに、前記操作ボタンおよび/または方向入力スティックに対する入力がある場合、前記振動の制限を解除する、請求項15から請求項18のいずれか1項に記載の情報処理装置。
【請求項20】
前記操作装置は、前記情報処理装置に対して装着可能であり、
前記プロセッサはさらに、
前記操作装置が前記情報処理装置に対して装着された状態である場合、前記振動の制限を解除する、請求項15に記載の情報処理装置。
【請求項21】
前記プロセッサは、
前記ゲーム処理において、複数人のプレイヤが順番にゲーム操作を行うゲームを実行し、
ゲーム操作の順番がプレイヤに回ってきた場面において、当該プレイヤに対応する前記操作装置の動きがあると判定されたことを少なくとも条件として、当該操作装置の前記振動子を振動させる前記振動制御信号を前記情報処理装置から出力させ、当該操作装置の動きが無いと判定されたことを少なくとも条件として、前記振動の制限を行う、請求項15から請求項20のいずれか1項に記載の情報処理装置。
【請求項22】
情報処理装置と、慣性センサおよび振動子を備える少なくとも1つの操作装置とを備えるゲームシステムにおいて実行されるゲーム処理方法であって、
前記操作装置は、
前記慣性センサの出力に基づく慣性データを前記情報処理装置へ送信し、
前記情報処理装置は、
ゲーム処理を実行し、
前記ゲーム処理における所定の場面において、指定された前記操作装置の前記振動子を振動させる振動制御信号を前記情報処理装置から出力させ、
前記操作装置は、
前記情報処理装置から受信した前記振動制御信号に基づいて前記振動子を振動させ、
前記情報処理装置は、
前記操作装置からの前記慣性データに基づいて当該操作装置の動きの有無を判定し、
前記操作装置の動きが無いと判定されたことを少なくとも条件として、前記所定の場面において当該操作装置の振動子を振動させないまたは振動を弱めるように、振動の制限を行い、
前記操作装置の姿勢が、当該操作装置が載置されている姿勢であるか否かの判定を、当該操作装置が備える慣性センサの出力に基づく慣性データに基づいて行い、
前記操作装置が、当該操作装置が載置されている姿勢ではない場合、前記振動の制限を解除する、ゲーム処理方法。
【請求項23】
情報処理装置と、慣性センサおよび振動子を備える少なくとも1つの操作装置とを備えるゲームシステムにおいて実行されるゲーム処理方法であって、
前記操作装置は、
前記慣性センサの出力に基づく慣性データを前記情報処理装置へ送信し、
前記情報処理装置は、
ゲーム処理を実行し、
前記ゲーム処理における所定の場面において、指定された前記操作装置の前記振動子を振動させる振動制御信号を前記情報処理装置から出力させ、
前記操作装置は、
前記情報処理装置から受信した前記振動制御信号に基づいて前記振動子を振動させ、
前記情報処理装置は、
前記操作装置からの前記慣性データに基づいて当該操作装置の動きの有無を判定し、
前記操作装置の動きが無いと判定されたことを少なくとも条件として、前記所定の場面において当該操作装置の振動子を振動させないまたは振動を弱めるように、振動の制限を行い、
前記操作装置は、前記情報処理装置に対して装着可能であり、
前記情報処理装置は、
前記操作装置が前記情報処理装置に対して装着された状態である場合、前記振動の制限を解除する、ゲーム処理方法。
【請求項24】
前記慣性センサは少なくとも加速度センサを含み、
前記情報処理装置は、
所定期間に前記加速度センサによって検出される加速度の変化の大きさが基準より小さい場合、前記操作装置の動きが無いと判定する、請求項22または請求項23に記載のゲーム処理方法。
【請求項25】
前記情報処理装置はさらに、
前記操作装置の姿勢が、当該操作装置が載置されている姿勢であるか否かの判定を、当該操作装置が備える慣性センサの出力に基づく慣性データに基づいて行い、
前記操作装置が、当該操作装置が載置されている姿勢ではない場合、前記振動の制限を解除する、請求項23に記載のゲーム処理方法。
【請求項26】
前記操作装置は、操作ボタンおよび/または方向入力スティックをさらに備え、
前記情報処理装置はさらに、前記操作ボタンおよび/または方向入力スティックに対する入力がある場合、前記振動の制限を解除する、請求項22から請求項25のいずれか1項に記載のゲーム処理方法。
【請求項27】
前記操作装置は、前記情報処理装置に対して装着可能であり、
前記情報処理装置はさらに、
前記操作装置が前記情報処理装置に対して装着された状態である場合、前記振動の制限を解除する、請求項22に記載のゲーム処理方法。
【請求項28】
前記情報処理装置は、
前記ゲーム処理において、複数人のプレイヤが順番にゲーム操作を行うゲームを実行し、
ゲーム操作の順番がプレイヤに回ってきた場面において、当該プレイヤに対応する前記操作装置の動きがあると判定されたことを少なくとも条件として、当該操作装置の前記振動子を振動させる前記振動制御信号を前記情報処理装置から出力させ、当該操作装置の動きが無いと判定されたことを少なくとも条件として、前記振動の制限を行う、請求項22から請求項27のいずれか1項に記載のゲーム処理方法。
【請求項29】
プロセッサと、慣性センサと、振動子とを備える情報処理装置であって、
前記プロセッサは、
ゲーム処理を実行し、
前記ゲーム処理における所定の場面において、前記振動子を振動させる振動制御信号を出力し、
前記慣性センサの出力に基づいて前記情報処理装置の動きの有無を判定し、
前記情報処理装置の動きが無いと判定されたことを少なくとも条件として、前記所定の場面において前記振動子を振動させないまたは振動を弱めるように、振動の制限を行い、
前記情報処理装置の姿勢が、当該情報処理装置が載置されている姿勢であるか否かの判定を、前記慣性センサの出力に基づく慣性データに基づいて行い、
前記情報処理装置が、当該情報処理装置が載置されている姿勢ではない場合、前記振動の制限を解除する、情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、操作装置の振動を制御するゲームシステム、ゲームプログラム、情報処理装置、および、ゲーム処理方法に関する。
【背景技術】
【0002】
従来、ゲームにおいて、振動子を備える操作装置の振動を制御することが行われている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2018-108297号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ゲーム中においてプレイヤは操作装置を常に把持しているとは限らず、ゲーム中においてプレイヤが一時的に操作装置を机や床等に置く可能性がある。ここで、操作装置が机や床等に置かれている場合、操作装置が置かれている場所によっては操作装置の振動によって大きな音が発生してしまう可能性がある。このように、操作装置が把持されない場合に操作装置において振動が発生すると、振動によってデメリットが生じる可能性がある。
【0005】
それ故、本発明の目的は、操作装置の振動によってデメリットが生じる可能性を低減することが可能なゲームシステム、ゲームプログラム、情報処理装置、および、ゲーム処理方法を提供することである。
【課題を解決するための手段】
【0006】
上記の課題を解決すべく、本発明は、以下の(1)~(6)の構成を採用した。
【0007】
(1)
本発明の一例は、情報処理装置と、少なくとも1つの操作装置とを備えるゲームシステムである。情報処理装置は、プロセッサを備える。 操作装置は、慣性センサと、振動子とを備える。操作装置は、慣性センサの出力に基づく慣性データを情報処理装置へ送信する。操作装置は、情報処理装置から受信した振動制御信号に基づいて振動子を振動させる。プロセッサは、ゲーム処理を実行する。プロセッサは、ゲーム処理における所定の場面において、指定された操作装置の振動子を振動させる振動制御信号を情報処理装置から出力させる。プロセッサは、操作装置からの慣性データに基づいて当該操作装置の動きの有無を判定する。プロセッサは、操作装置の動きが無いと判定されたことを少なくとも条件として、所定の場面において当該操作装置の振動子を振動させないまたは振動を弱めるように、振動の制限を行う。
【0008】
上記(1)の構成によれば、操作装置の動きが無いと判定された場合には、振動子が振動しないようにまたは振動を弱めるように、振動子の振動が制限される。これによれば、操作装置が机や床等に置かれている場合に振動によって大きな音が発生するといったデメリットが生じる可能性を低減することができる。
【0009】
(2)
慣性センサは、少なくとも加速度センサを含んでいてもよい。プロセッサは、所定期間に加速度センサによって検出される加速度の変化の大きさが基準より小さい場合、操作装置の動きが無いと判定してもよい。
【0010】
上記(2)の構成によれば、操作装置が実質的に停止している場合に操作装置の振動を制限することができるので、振動の制限を効果的に行うことができる。
【0011】
(3)
プロセッサはさらに、操作装置の姿勢が解除条件を満たすか否かの判定を、当該操作装置が備える慣性センサの出力に基づく慣性データに基づいて行ってもよい。プロセッサはさらに、解除条件が満たされる場合、振動の制限を解除してもよい。
【0012】
(4)
操作装置は、操作ボタンおよび/または方向入力スティックをさらに備えてもよい。プロセッサはさらに、操作ボタンおよび/または方向入力スティックに対する入力がある場合、振動の制限を解除してもよい。
【0013】
(5)
操作装置は、情報処理装置に対して装着可能であってもよい。
プロセッサはさらに、操作装置が情報処理装置に対して装着された状態である場合、振動の制限を解除してもよい。
【0014】
上記(3)~(5)のいずれかの構成によれば、操作装置の動きが無いと判定された場合でも、プレイヤが操作装置を把持している可能性が高いと推測される場合には、振動の制限が解除される。これによれば、操作装置が実際にはプレイヤに把持されている場合に当該操作装置の振動が制限されてしまう可能性を低減することができる。
【0015】
(6)
プロセッサは、ゲーム処理において、複数人のプレイヤが順番にゲーム操作を行うゲームを実行してもよい。プロセッサは、ゲーム操作の順番がプレイヤに回ってきた場面において、当該プレイヤに対応する操作装置の動きがあると判定されたことを少なくとも条件として、当該操作装置の振動子を振動させる振動制御信号を情報処理装置から出力させてもよく、当該操作装置の動きが無いと判定されたことを少なくとも条件として、振動の制限を行ってもよい。
【0016】
上記(6)の構成によれば、複数人のプレイヤが参加するゲーム中において操作の順番が回ってきたプレイヤが操作装置を把持している場合には、振動によって当該プレイヤに通知を行うことができるとともに、当該プレイヤが操作装置を把持していない場合には、振動によってデメリットが生じる可能性を低減することができる。
【0017】
なお、本発明の別の一例は、上記(1)~(6)における情報処理装置であってもよいし、当該情報処理装置のコンピュータ(プロセッサとも言う)に上記(1)~(6)における処理を実行させるゲームプログラムであってもよい。また、本発明の別の一例は、上記(1)~(6)のゲームシステムにおいて実行されるゲーム処理方法であってもよい。
【0018】
また、本発明の別の一例は、上記(1)~(6)における情報処理装置と操作装置とが一体となった装置であってもよい。すなわち、情報処理装置は、プロセッサと、慣性センサと、振動子とを備えてもよい。プロセッサは、ゲーム処理を実行し、ゲーム処理における所定の場面において、振動子を振動させる振動制御信号を出力し、慣性センサの出力に基づいて情報処理装置の動きの有無を判定し、情報処理装置の動きが無いと判定されたことを少なくとも条件として、所定の場面において振動子を振動させないまたは振動を弱めるように、振動の制限を行う。
【発明の効果】
【0019】
上記のゲームシステム、ゲームプログラム、情報処理装置、および、ゲーム処理方法によれば、操作装置の振動によってデメリットが生じる可能性を低減することができる。
【図面の簡単な説明】
【0020】
図1】本体装置に左コントローラおよび右コントローラを装着した状態の一例を示す図
図2】本体装置から左コントローラおよび右コントローラをそれぞれ外した状態の一例を示す図
図3】本体装置の一例を示す六面図
図4】左コントローラの一例を示す六面図
図5】右コントローラの一例を示す六面図
図6】本体装置の内部構成の一例を示すブロック図
図7】本体装置と左コントローラおよび右コントローラとの内部構成の一例を示すブロック図
図8】ゲーム中においてコントローラが振動する様子の一例を示す図
図9】コントローラの振動が制限される条件、および、制限が解除される条件の一例を示す図
図10】コントローラの動きの状態を判定する方法を説明するための図
図11】コントローラの姿勢が載置姿勢であると判定される場合の一例と載置姿勢でないと判定される場合の一例とを示す図
図12】ゲームシステムにおける情報処理に用いられる各種データの一例を示す図
図13】ゲームシステムによって実行されるゲームプログラム処理の流れの一例を示すフローチャート
【発明を実施するための形態】
【0021】
[1.ゲームシステムの構成]
以下、本実施形態の一例に係るゲームシステムについて説明する。本実施形態におけるゲームシステム1の一例は、本体装置(情報処理装置;本実施形態ではゲーム装置本体として機能する)2と左コントローラ3および右コントローラ4とを含む。本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能である。つまり、ゲームシステム1は、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できる。また、ゲームシステム1は、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる(図2参照)。以下では、本実施形態のゲームシステム1のハードウェア構成について説明し、その後に本実施形態のゲームシステム1の制御について説明する。
【0022】
図1は、本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図である。図1に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、ゲームシステム1における各種の処理(例えば、ゲーム処理)を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。
【0023】
図2は、本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図である。図1および図2に示すように、左コントローラ3および右コントローラ4は、本体装置2に着脱可能である。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。
【0024】
図3は、本体装置2の一例を示す六面図である。図3に示すように、本体装置2は、略板状のハウジング11を備える。本実施形態において、ハウジング11の主面(換言すれば、表側の面、すなわち、ディスプレイ12が設けられる面)は、大略的には矩形形状である。
【0025】
なお、ハウジング11の形状および大きさは、任意である。一例として、ハウジング11は、携帯可能な大きさであってよい。また、本体装置2単体または本体装置2に左コントローラ3および右コントローラ4が装着された一体型装置は、携帯型装置となってもよい。また、本体装置2または一体型装置が手持ち型の装置となってもよい。また、本体装置2または一体型装置が可搬型装置となってもよい。
【0026】
図3に示すように、本体装置2は、ハウジング11の主面に設けられるディスプレイ12を備える。ディスプレイ12は、本体装置2が生成した画像を表示する。本実施形態においては、ディスプレイ12は、液晶表示装置(LCD)とする。ただし、ディスプレイ12は任意の種類の表示装置であってよい。
【0027】
また、本体装置2は、ディスプレイ12の画面上にタッチパネル13を備える。本実施形態においては、タッチパネル13は、マルチタッチ入力が可能な方式(例えば、静電容量方式)のものである。ただし、タッチパネル13は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式(例えば、抵抗膜方式)のものであってもよい。
【0028】
本体装置2は、ハウジング11の内部においてスピーカ(すなわち、図6に示すスピーカ88)を備えている。図3に示すように、ハウジング11の主面には、スピーカ孔11aおよび11bが形成される。そして、スピーカ88の出力音は、これらのスピーカ孔11aおよび11bからそれぞれ出力される。
【0029】
また、本体装置2は、本体装置2が左コントローラ3と有線通信を行うための端子である左側端子17と、本体装置2が右コントローラ4と有線通信を行うための右側端子21を備える。
【0030】
図3に示すように、本体装置2は、スロット23を備える。スロット23は、ハウジング11の上側面に設けられる。スロット23は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。所定の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。また、本体装置2は、電源ボタン28を備える。
【0031】
本体装置2は、下側端子27を備える。下側端子27は、本体装置2がクレードルと通信を行うための端子である。本実施形態において、下側端子27は、USBコネクタ(より具体的には、メス側コネクタ)である。上記一体型装置または本体装置2単体をクレードルに載置した場合、ゲームシステム1は、本体装置2が生成して出力する画像を据置型モニタに表示することができる。また、本実施形態においては、クレードルは、載置された上記一体型装置または本体装置2単体を充電する機能を有する。また、クレードルは、ハブ装置(具体的には、USBハブ)の機能を有する。
【0032】
図4は、左コントローラ3の一例を示す六面図である。図4に示すように、左コントローラ3は、ハウジング31を備える。本実施形態においては、ハウジング31は、縦長の形状、すなわち、上下方向(すなわち、図1および図4に示すy軸方向)に長い形状である。左コントローラ3は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング31は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ3は、横長となる向きで把持されることも可能である。左コントローラ3が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0033】
左コントローラ3は、アナログスティック32を備える。図4に示すように、アナログスティック32は、ハウジング31の主面に設けられる。アナログスティック32は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック32を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。なお、左コントローラ3は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、アナログスティック32を押下する入力が可能である。
【0034】
左コントローラ3は、各種操作ボタンを備える。左コントローラ3は、ハウジング31の主面上に4つの操作ボタン33~36(具体的には、右方向ボタン33、下方向ボタン34、上方向ボタン35、および左方向ボタン36)を備える。さらに、左コントローラ3は、録画ボタン37および-(マイナス)ボタン47を備える。左コントローラ3は、ハウジング31の側面の左上に第1Lボタン38およびZLボタン39を備える。また、左コントローラ3は、ハウジング31の側面の、本体装置2に装着される際に装着される側の面に第2Lボタン43および第2Rボタン44を備える。これらの操作ボタンは、本体装置2で実行される各種プログラム(例えば、OSプログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。
【0035】
また、左コントローラ3は、左コントローラ3が本体装置2と有線通信を行うための端子42を備える。
【0036】
図5は、右コントローラ4の一例を示す六面図である。図5に示すように、右コントローラ4は、ハウジング51を備える。本実施形態においては、ハウジング51は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ4は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング51は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ4は、横長となる向きで把持されることも可能である。右コントローラ4が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0037】
右コントローラ4は、左コントローラ3と同様、方向入力部としてアナログスティック52を備える。本実施形態においては、アナログスティック52は、左コントローラ3のアナログスティック32と同じ構成である。また、右コントローラ4は、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、右コントローラ4は、左コントローラ3と同様、ハウジング51の主面上に4つの操作ボタン53~56(具体的には、Aボタン53、Bボタン54、Xボタン55、およびYボタン56)を備える。さらに、右コントローラ4は、+(プラス)ボタン57およびホームボタン58を備える。また、右コントローラ4は、ハウジング51の側面の右上に第1Rボタン60およびZRボタン61を備える。また、右コントローラ4は、左コントローラ3と同様、第2Lボタン65および第2Rボタン66を備える。
【0038】
また、右コントローラ4は、右コントローラ4が本体装置2と有線通信を行うための端子64を備える。
【0039】
図6は、本体装置2の内部構成の一例を示すブロック図である。本体装置2は、図3に示す構成の他、図6に示す各構成要素81~91、97、および98を備える。これらの構成要素81~91、97、および98のいくつかは、電子部品として電子回路基板上に実装されてハウジング11内に収納されてもよい。
【0040】
本体装置2は、プロセッサ81を備える。プロセッサ81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System-on-a-chip)から構成されてもよい。プロセッサ81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、スロット23に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
【0041】
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、プロセッサ81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【0042】
本体装置2は、スロットインターフェース(以下、「I/F」と略記する。)91を備える。スロットI/F91は、プロセッサ81に接続される。スロットI/F91は、スロット23に接続され、スロット23に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ81の指示に応じて行う。
【0043】
プロセッサ81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【0044】
本体装置2は、ネットワーク通信部82を備える。ネットワーク通信部82は、プロセッサ81に接続される。ネットワーク通信部82は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行う。本実施形態においては、ネットワーク通信部82は、第1の通信態様としてWi-Fiの規格に準拠した方式により、無線LANに接続して外部装置と通信を行う。また、ネットワーク通信部82は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の本体装置2との間で無線通信を行う。なお、上記第2の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置2との間で無線通信可能であり、複数の本体装置2の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【0045】
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、プロセッサ81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、本実施形態においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
【0046】
プロセッサ81は、上述の左側端子17、右側端子21、および下側端子27に接続される。プロセッサ81は、左コントローラ3と有線通信を行う場合、左側端子17を介して左コントローラ3へデータを送信するとともに、左側端子17を介して左コントローラ3から操作データを受信する。また、プロセッサ81は、右コントローラ4と有線通信を行う場合、右側端子21を介して右コントローラ4へデータを送信するとともに、右側端子21を介して右コントローラ4から操作データを受信する。また、プロセッサ81は、クレードルと通信を行う場合、下側端子27を介してクレードルへデータを送信する。このように、本実施形態においては、本体装置2は、左コントローラ3および右コントローラ4との間で、それぞれ有線通信と無線通信との両方を行うことができる。また、左コントローラ3および右コントローラ4が本体装置2に装着された一体型装置または本体装置2単体がクレードルに装着された場合、本体装置2は、クレードルを介してデータ(例えば、画像データや音声データ)を据置型モニタ等に出力することができる。
【0047】
ここで、本体装置2は、複数の左コントローラ3と同時に(換言すれば、並行して)通信を行うことができる。また、本体装置2は、複数の右コントローラ4と同時に(換言すれば、並行して)通信を行うことができる。したがって、複数のユーザは、左コントローラ3および右コントローラ4のセットをそれぞれ用いて、本体装置2に対する入力を同時に行うことができる。一例として、第1ユーザが左コントローラ3および右コントローラ4の第1セットを用いて本体装置2に対して入力を行うと同時に、第2ユーザが左コントローラ3および右コントローラ4の第2セットを用いて本体装置2に対して入力を行うことが可能となる。
【0048】
また、ディスプレイ12は、プロセッサ81に接続される。プロセッサ81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
【0049】
本体装置2は、コーデック回路87およびスピーカ(具体的には、左スピーカおよび右スピーカ)88を備える。コーデック回路87は、スピーカ88および音声入出力端子25に接続されるとともに、プロセッサ81に接続される。コーデック回路87は、スピーカ88および音声入出力端子25に対する音声データの入出力を制御する回路である。
【0050】
本体装置2は、電力制御部97およびバッテリ98を備える。電力制御部97は、バッテリ98およびプロセッサ81に接続される。また、図示しないが、電力制御部97は、本体装置2の各部(具体的には、バッテリ98の電力の給電を受ける各部、左側端子17、および右側端子21)に接続される。電力制御部97は、プロセッサ81からの指令に基づいて、バッテリ98から上記各部への電力供給を制御する。
【0051】
また、バッテリ98は、下側端子27に接続される。外部の充電装置(例えば、クレードル)が下側端子27に接続され、下側端子27を介して本体装置2に電力が供給される場合、供給された電力がバッテリ98に充電される。
【0052】
図7は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。なお、本体装置2に関する内部構成の詳細については、図6で示しているため図7では省略している。
【0053】
左コントローラ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(登録商標)の規格に従って行われる。
【0054】
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
【0055】
左コントローラ3は、各ボタン103(具体的には、ボタン33~39、43、44、および47)を備える。また、左コントローラ3は、アナログスティック(図7では「スティック」と記載する)32を備える。各ボタン103およびアナログスティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部101へ出力する。
【0056】
左コントローラ3は、慣性センサを備える。具体的には、左コントローラ3は、加速度センサ104を備える。また、左コントローラ3は、角速度センサ105を備える。本実施形態においては、加速度センサ104は、所定の3軸(例えば、図4に示すxyz軸)方向に沿った加速度の大きさを検出する。なお、加速度センサ104は、1軸方向あるいは2軸方向の加速度を検出するものであってもよい。本実施形態においては、角速度センサ105は、所定の3軸(例えば、図4に示すxyz軸)回りの角速度を検出する。なお、角速度センサ105は、1軸回りあるいは2軸回りの角速度を検出するものであってもよい。加速度センサ104および角速度センサ105は、それぞれ通信制御部101に接続される。そして、加速度センサ104および角速度センサ105の検出結果は、適宜のタイミングで繰り返し通信制御部101へ出力される。
【0057】
通信制御部101は、各入力部(具体的には、各ボタン103、アナログスティック32、各センサ104および105)から、入力に関する情報(具体的には、操作に関する情報、またはセンサによる検出結果)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【0058】
上記操作データが本体装置2へ送信されることによって、本体装置2は、左コントローラ3に対して行われた入力を得ることができる。すなわち、本体装置2は、各ボタン103およびアナログスティック32に対する操作を、操作データに基づいて判別することができる。また、本体装置2は、左コントローラ3の動きおよび/または姿勢に関する情報を、操作データ(具体的には、加速度センサ104および角速度センサ105の検出結果)に基づいて算出することができる。
【0059】
左コントローラ3は、振動によってユーザに通知を行うための振動子107を備える。本実施形態においては、振動子107は、本体装置2からの振動制御信号によって制御される。すなわち、通信制御部101は、本体装置2からの上記振動制御信号を受け取ると、当該振動制御信号に従って振動子107を駆動させる。ここで、左コントローラ3は、コーデック部106を備える。通信制御部101は、上記振動制御信号を受け取ると、振動制御信号に応じた制御信号をコーデック部106へ出力する。コーデック部106は、通信制御部101からの制御信号から振動子107を駆動させるための駆動信号を生成して振動子107へ与える。これによって振動子107が動作する。
【0060】
振動子107は、より具体的にはリニア振動モータである。リニア振動モータは、回転運動をする通常のモータと異なり、入力される電圧に応じて所定方向に駆動されるため、入力される電圧の波形に応じた振幅および周波数で振動をさせることができる。本実施形態において、本体装置2から左コントローラ3に送信される振動制御信号は、単位時間ごとに周波数と振幅とを表すデジタル信号であってよい。別の実施形態においては、本体装置2から波形そのものを示す情報を送信するようにしてもよいが、振幅および周波数だけを送信することで通信データ量を削減することができる。また、さらにデータ量を削減するため、そのときの振幅および周波数の数値に替えて、前回の値からの差分だけを送信するようにしてもよい。この場合、コーデック部106は、通信制御部101から取得される振幅および周波数の値を示すデジタル信号をアナログの電圧の波形に変換し、当該波形に合わせて電圧を入力することで振動子107を駆動させる。したがって、本体装置2は、単位時間ごとに送信する振幅および周波数を変えることによって、そのときに振動子107を振動させる振幅および周波数を制御することができる。なお、本体装置2から左コントローラ3に送信される振幅および周波数は、1つに限らず、2つ以上送信するようにしてもよい。その場合、コーデック部106は、受信された複数の振幅および周波数それぞれが示す波形を合成することで、振動子107を制御する電圧の波形を生成することができる。
【0061】
左コントローラ3は、電力供給部108を備える。本実施形態において、電力供給部108は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ3の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。
【0062】
図7に示すように、右コントローラ4は、本体装置2との間で通信を行う通信制御部111を備える。また、右コントローラ4は、通信制御部111に接続されるメモリ112を備える。通信制御部111は、端子64を含む各構成要素に接続される。通信制御部111およびメモリ112は、左コントローラ3の通信制御部101およびメモリ102と同様の機能を有する。したがって、通信制御部111は、端子64を介した有線通信と、端子64を介さない無線通信(具体的には、Bluetooth(登録商標)の規格に従った通信)との両方で本体装置2と通信を行うことが可能であり、右コントローラ4が本体装置2に対して行う通信方法を制御する。
【0063】
右コントローラ4は、左コントローラ3の各入力部と同様の各入力部を備える。具体的には、各ボタン113、アナログスティック52、慣性センサ(加速度センサ114および角速度センサ115)を備える。これらの各入力部については、左コントローラ3の各入力部と同様の機能を有し、同様に動作する。
【0064】
また、右コントローラ4は、振動子117およびコーデック部116を備える。振動子117およびコーデック部116は、左コントローラ3の振動子107およびコーデック部106と同様に動作する。すなわち、通信制御部111は、本体装置2からの振動制御信号に従って、コーデック部116を用いて振動子117を動作させる。
【0065】
右コントローラ4は、電力供給部118を備える。電力供給部118は、左コントローラ3の電力供給部108と同様の機能を有し、同様に動作する。
【0066】
[2.ゲームシステムにおける処理の概要]
図8図11を参照して、ゲームシステム1において実行される情報処理の概要について説明する。本実施形態においては、ゲームシステム1において、ゲーム中における適宜のタイミングでコントローラが振動するゲームが実行される。本実施形態においては、複数人のプレイヤ(換言すれば、ユーザ)によって行われるゴルフゲームが実行される場合を例として説明する。なお、ゲームシステム1において実行されるゲームのジャンルおよび内容は任意であり、ゲームに参加するプレイヤの人数は何人であってもよい。
【0067】
図8は、ゲーム中においてコントローラが振動する様子の一例を示す図である。本実施形態においては、2人のプレイヤがそれぞれ1つずつコントローラを使用してゲームを行うものとする。具体的には、第1プレイヤが左コントローラ3を用いてゲームを行い、第2プレイヤが右コントローラ4を用いてゲームを行う。このとき、各コントローラ3および4は本体装置2から外された状態で使用される。
【0068】
なお、図示しないが、本実施形態においては、2人のプレイヤがそれぞれゲームシステム1(すなわち、本体装置2ならびに各コントローラ3および4)を用いて上記ゲームを行うことも可能である。つまり、第1プレイヤが1つのゲームシステム1を用い、第2プレイヤがもう1つのゲームシステム1を用い、2つの本体装置2が適宜通信を行うことによってゲーム処理を実行することも可能である。このとき、各コントローラ3および4は本体装置2から外された状態で使用されることも可能であるし、本体装置2に装着された状態で使用されることも可能である。
【0069】
[2-1.コントローラの振動]
ゴルフゲームにおいては、ゲームにおいて定められた順番(例えば、カップからボールまでの距離が遠い順)でプレイヤが1人ずつショット操作(すなわち、プレイヤキャラクタにショットを行わせる操作)を行うことによって、ゲームが進行する。ここで、ゲームシステム1は、ショット操作を行う順番となったプレイヤに対して、順番となったことを通知するべく、当該プレイヤが使用するコントローラを振動させる。例えば図8に示す例においては、第1のプレイヤがショット操作を行う順番であり、このとき、ゲームシステム1は、第1のプレイヤに関連付けられる左コントローラ3を振動させる。これによって、第1のプレイヤは、自身が操作を行う順番が回ってきたことを振動によって認識することができる。また、図示しないが、ゲーム中において第2プレイヤがショット操作を行う順番になると、ゲームシステム1は、第2のプレイヤに関連付けられる右コントローラ4を振動させる。なお、図8に示す例においては、本体装置2におけるディスプレイ12には、第1のプレイヤ(当該ゲーム画像における「プレイヤ1」)の順番であることを示すメッセージ201が表示される。ただし、他の実施形態においては、プレイヤに対する順番の通知は、振動のみで行われてもよいし、振動と表示以外の方法(例えば、音声)とによって行われてもよい。
【0070】
なお、本実施形態においては、プレイヤと、当該プレイヤが使用するコントローラとの関連付けは、任意のタイミングで行われる。例えば、本体装置2は、プレイヤとコントローラとを関連付けた情報をゲーム開始時に記憶しているものとする。なお、プレイヤとコントローラとを関連付けるための具体的な方法は任意である。
【0071】
また、上記通知のための振動の態様(具体的には、振動の強さ、周波数、および、パターン等)は任意である。例えば、ゲームシステム1は、プレイヤによるショット操作を受け付ける状態となってからショット操作が開始されるまで、所定時間の振動を一定間隔で繰り返し発生させるようにコントローラを制御する。
【0072】
本実施形態においては、ゲームシステム1は、ショット操作を行う順番となったタイミングとは別の他のタイミングにおいてもコントローラを振動させてもよい。例えば、プレイヤが操作するプレイヤキャラクタがショット動作によってボールを打ったタイミングで、当該プレイヤに関連付けられるコントローラを振動させてもよい。このように、振動は、プレイヤに何らかの通知を行う目的で行われるものに限らず、ゲームの臨場感や没入感を向上させる目的で行われるものであってもよい。なお、以下においては、ゲーム中においてコントローラを振動させるべきタイミングを、「振動タイミング」と呼ぶ。
【0073】
[2-2.振動の制御の制限]
上記のように、本実施形態においては、ゲームシステム1は、ゲーム中においてコントローラを振動させるが、一定条件下においてはコントローラの振動を制限する。つまり、本実施形態においては、ゲームシステム1は、上記振動タイミングが到来しても一定条件下においてはコントローラの振動を制限する。以下、図9を参照して、コントローラの振動を制限することについて説明する。
【0074】
図9は、コントローラの振動が制限される条件、および、制限が解除される条件の一例を示す図である。ここで、本実施形態においては、ゲームシステム1は、コントローラの動きの状態を判定する(判定方法の詳細については後述する)。コントローラの動きの状態が、動きがあると判定される状態(以下、「運動状態」と呼ぶ)である場合、コントローラの振動は許可される。つまり、運動状態においては、ゲームシステム1は、振動タイミングが到来したことに応じてコントローラを振動させる。一方、コントローラの動きの状態が、動きが無いと判定される状態(以下、「停止状態」と呼ぶ)である場合、コントローラの振動は制限される(ただし、後述するように振動の制限が解除される場合がある)。つまり、停止状態においては、ゲームシステム1は、振動タイミングが到来してもコントローラを振動させない。
【0075】
なお、本実施形態においては、ゲームシステム1は、コントローラの振動を制限する場合、コントローラを振動させないものとする。ただし、他の実施形態においては、ゲームシステム1は、コントローラの振動を(制限しない場合と比べて)弱くすることによって振動を制限してもよい。つまり、「振動を制限する」とは、振動を行わないようにすることと、制限しない場合に比べて振動を弱めることを含む意味である。
【0076】
また、本明細書においては、コントローラの動きが無いと判定される状態を「停止状態」と呼ぶが、この状態は、コントローラが実際に完全に停止した状態である必要はない。コントローラが実際には完全に停止していなくても、ほとんど停止している結果、コントローラの動きが無いとゲームシステム1によって判断される場合には、コントローラは上記「停止状態」であると判定される。
【0077】
ここで、コントローラの動きの状態が運動状態と判定される場合には、プレイヤが当該コントローラを把持している可能性が高いと推測することができる。したがって、この場合、ゲームシステム1は、振動タイミングに応じてコントローラを振動させることによって、振動によってユーザに通知を行ったり、ゲームの臨場感や没入感を向上させたりすることができる。
【0078】
一方、コントローラの動きの状態が停止状態と判定される場合には、プレイヤが当該コントローラを把持せず、机や床等にコントローラが置かれている可能性が高いと推測することができる。このような場合、操作装置が置かれている場所によっては操作装置の振動によって大きな音が発生することでプレイヤが不快感を抱いてしまう可能性がある。また、上記の場合、コントローラが把持されていないため、コントローラの振動をプレイヤに伝えるという目的が達成されないので、振動による電力消費が無駄になる可能性がある。したがって、上記の場合、ゲームシステム1は、コントローラの振動を制限する。これによって、振動によって大きな音が発生したり、不要な振動によって電力を消費したりするデメリットが生じる可能性を低減することができる。
【0079】
また、本実施形態においては、コントローラの動きの状態が停止状態と判定される場合であっても、解除条件が満たされる場合には、ゲームシステム1は振動の制限を解除する(図9参照)。つまり、解除条件が満たされる場合には、停止状態であってもゲームシステム1はコントローラを振動させる。本実施形態においては、解除条件は、下記の第1~第3の解除条件の3つである。
【0080】
第1の解除条件は、コントローラが本体装置2に装着された状態であることである。ゲーム中においてこのような状態となる場合には、本体装置2とコントローラとが一体になった携帯型装置をプレイヤが把持して使用していると推測することができる。そのため、第1の解除条件が満たされる場合、ゲームシステム1は、コントローラの振動の制限を解除する。このように、ゲームシステム1は、コントローラが本体装置2に対して装着された状態である場合には振動制御の制限を解除し、振動タイミングに応じて当該コントローラを振動させる。
【0081】
第2の解除条件は、コントローラの操作部(具体的には、アナログスティックおよび操作ボタン)に対する入力が行われたことである。コントローラの操作部に対する入力が行われた場合には、プレイヤが当該コントローラを把持していると推測することができる。そのため、第2の解除条件が満たされる場合、ゲームシステム1は、コントローラの振動の制限を解除する。このように、ゲームシステム1は、コントローラの操作部に対する入力がある場合には振動制御の制限を解除し、振動タイミングに応じて当該コントローラを振動させる。
【0082】
第3の解除条件は、コントローラの姿勢が、コントローラが机や床等に載置されているときの姿勢(以下、「載置姿勢」と呼ぶ)ではないことである。ここで、本実施形態においては、コントローラが机や床等に載置される場合、コントローラは、ハウジングの主面が鉛直上方向を向く姿勢となると推測される。つまり、本実施形態においては、載置姿勢とは、大略的にはハウジングの主面が鉛直上方向を向く姿勢である(詳細は後述する)。コントローラの姿勢がこのような載置姿勢ではない場合、仮にコントローラが動いていなくても、コントローラは載置されずにプレイヤによって把持されていると推測することができる。そのため、第3の解除条件が満たされる場合、ゲームシステム1は、コントローラの振動の制限を解除する。
【0083】
なお、詳細は後述するが、コントローラの姿勢が載置姿勢であるか否かの判定は、慣性センサの出力に基づく慣性データ(具体的には、加速度センサの出力に基づくデータ)に基づいて行われる。つまり、ゲームシステム1は、コントローラの姿勢が解除条件を満たすか否かの判定を慣性データに基づいて行い、解除条件が満たされる場合に振動制御の制限を解除する。
【0084】
以上のように、本実施形態においては、コントローラの動きの状態が停止状態と判定される場合において、解除条件が満たされれば、ゲームシステム1は振動の制限を解除する。これによれば、プレイヤがコントローラを把持している場合に当該コントローラの振動が制限されてしまう可能性を低減することができる。
【0085】
ゲームシステム1は、上記第1~第3の解除条件のうち少なくとも1つが満たされる場合、解除条件が満たされたとして振動の制限を解除する。つまり、停止状態においては、第1~第3の解除条件のうち少なくとも1つが満たされる場合、振動の制限が解除され、第1~第3の解除条件のいずれも満たされない場合、振動が制限される(図9参照)。
【0086】
なお、本実施形態においては、解除条件が満たされてから所定の解除継続時間(例えば、0.5[s])が経過するまでの期間は、ゲームシステム1は振動の制限を解除する。解除条件が満たされたと判定された直後においては、解除条件が満たされた時点と同様、プレイヤがコントローラを把持していると推測することができからである。これによれば、例えば、コントローラに対するボタン入力があった直後に当該コントローラの振動が急に停止されるといった不具合を防止することができる。
【0087】
[2-3.コントローラの動きの状態の判定]
次に、図10を参照して、コントローラの動きの状態(すなわち、運動状態であるか停止状態であるか)を判定する方法について説明する。本実施形態においては、コントローラは、上述の運動状態と停止状態とのいずれかの状態を取るものとする。つまり、ゲームシステム1は、コントローラの現在の動きの状態として、運動状態と、停止状態とのいずれかを特定する。
【0088】
図10は、コントローラの動きの状態を判定する方法を説明するための図である。本実施形態において、ゲームシステム1は、コントローラの加速度センサが検出する加速度に基づいて当該コントローラの動きの状態を判定する。まず、ゲームシステム1は、加速度センサの出力に基づいて、所定の単位時間(具体的には、1フレーム時間)毎に、コントローラの加速度を算出する。そして、ゲームシステム1は、単位時間毎の加速度の変化量を算出する。本実施形態においては、この変化量は、現在のフレームにおける加速度と1フレーム前における加速度との差分Dとして算出される。差分Dは、例えば、現在のフレームにおける加速度の各成分(すなわち、x軸成分、y軸成分、および、z軸成分)の値から1フレーム前における加速度の各成分の値を成分毎に減算した値を算出し、各成分の減算値の絶対値を合算することによって得られる。したがって、現在のフレームにおける加速度をA[t]とし、1フレーム前における加速度をA[t-1]とした場合、現在のフレームにおける差分D[t]は次の式(1)によって算出される。
D[t]=|Ax[t]-Ax[t-1]|+|Ay[t]-Ay[t-1]|+|Az[t]-Az[t-1]| …(1)
ゲームシステム1は、上記の差分Dを単位時間毎に算出する。
【0089】
次に、ゲームシステム1は、現在のフレームから所定の差分算出時間(ここでは、8フレーム分の時間)前までの期間に算出された差分Dの合計値を算出する。本実施形態においては、ゲームシステム1は、現在のフレームを含む直近の8フレーム分の差分(すなわち、D[t],D[t-1],・・・,D[t-7])の合計値を算出する(図10参照)。そして、ゲームシステム1は、上記合計値に基づいて、運動状態であるか停止状態であるかを判定する。本実施形態においては、コントローラが運動状態である場合、ゲームシステム1は、合計値が所定の下限閾値を下回った場合、運動状態から停止状態へ変化させる。また、コントローラが停止状態である場合、ゲームシステム1は、合計値が所定の上限閾値を上回った場合、停止状態から運動状態へ変化させる。なお、上限閾値は、下限閾値よりも大きい値に設定される。これによって、運動状態と停止状態とが頻繁に入れ替わることで、コントローラの振動のオンオフが頻繁に繰り返される可能性を低減することができる。
【0090】
以上のように、本実施形態においては、ゲームシステム1は、所定期間(すなわち、現時点から上記差分算出時間前までの期間)に加速度センサによって検出される加速度の変化の大きさが基準より小さい場合、コントローラの動きが無いと判定する。これによれば、コントローラが完全に停止していなくても、実質的に停止している場合には、ゲームシステム1は、コントローラの動きが無いと判定することができる。ここで、コントローラが完全に停止している場合にのみ当該コントローラの振動を制限するとすれば、制限が行われる場面が少なくなりすぎ、制限を効果的に行うことができないおそれがある。これに対して、本実施形態によれば、コントローラが実質的に停止している場合にコントローラの振動を制限することができるので、振動の制限を効果的に行うことができる。なお、上記「基準」は、本実施形態においては、上記下限値または上限値のいずれかであり、基準の値は変化する。ただし、他の実施形態においては、上記「基準」は固定値であってもよい。
【0091】
なお、コントローラの動きの状態を判定する方法は任意である。例えば、他の実施形態においては、ゲームシステム1は、コントローラの現在の加速度の大きさが閾値以上であるか否かによって、運動状態であるか停止状態であるかを判定してもよい。また、他の実施形態においては、ゲームシステム1は、加速度センサによって検出される加速度とともに(または加速度に代えて)、角速度センサによって検出される角速度に基づいて上記の判定を行ってもよい。
【0092】
[2-4.載置姿勢であるか否かの判定]
次に、図11を参照して、コントローラの姿勢が載置姿勢であるか否かを判定する方法について説明する。ここで、本実施形態においては、コントローラのハウジングの主面が鉛直上向きを向く(すなわち、主面に垂直な直線が鉛直上方向に平行となる)ときの姿勢を基準姿勢とし、載置姿勢とは、基準姿勢から所定範囲内にある姿勢を指すものとする。
【0093】
図11は、コントローラの姿勢が載置姿勢であると判定される場合の一例と載置姿勢でないと判定される場合の一例とを示す図である。図11において、加速度ベクトルAは、加速度センサによって検出されるコントローラの加速度を示す。なお、図11に示す例においては、コントローラは停止しており、コントローラには重力加速度のみが加わっているものとする。
【0094】
本実施形態においては、ゲームシステム1は、上記加速度ベクトルAのy成分Ayおよびz成分Azに基づいて判定を行う。ここで、図11に示すように、加速度ベクトルAのy成分Ayを2倍した値がz成分Az以下である場合(図11の(a))、コントローラの姿勢は基準姿勢に近い姿勢となる。一方、加速度ベクトルAのy成分Ayを2倍した値がz成分Azよりも大きい場合(図11の(b))、コントローラの姿勢は基準姿勢から離れた姿勢となる。したがって、本実施形態においては、ゲームシステム1は、前者の場合、コントローラの姿勢が載置姿勢であると判定し、後者の場合、コントローラの姿勢が載置姿勢ではないと判定する。なお、本実施形態においては、上記の判定において、加速度ベクトルAのy成分Ayを2倍した値を用いているが、y成分Ayに乗算される係数の値は任意である。
【0095】
なお、コントローラの姿勢が載置姿勢であるか否かを判定する方法は任意であり、他の方法によって判定が行われてもよい。例えば、他の実施形態においては、ゲームシステム1は、加速度ベクトルAとz軸方向とのなす角度が所定値以下であるか否かによって、コントローラの姿勢が載置姿勢であるか否かを判定するようにしてもよい。また、他の実施形態においては、ゲームシステム1は、加速度センサによって検出される加速度とともに(または加速度に代えて)、角速度センサによって検出される角速度に基づいて上記の判定を行ってもよい。また、コントローラの姿勢が載置姿勢であるか否かの判定に用いられる慣性センサと、コントローラの動きの状態の判定に用いられる慣性センサとは、同じであってもよいし、異なっていてもよい。
【0096】
[3.ゲームシステムにおける処理の具体例]
次に、図12および図13を参照して、ゲームシステム1における情報処理の具体例について説明する。
【0097】
図12は、ゲームシステム1における情報処理に用いられる各種データの一例を示す図である。図12に示す各種データは、本体装置2がアクセス可能な記憶媒体(例えば、フラッシュメモリ84、DRAM85、および/または、スロット23に装着されたメモリカード等)に記憶される。
【0098】
図12に示すように、ゲームシステム1は、ゲームプログラムを記憶する。ゲームプログラムは、本実施形態におけるゲーム(具体的には、図13に示すゲームプログラム処理)を実行するためのゲームプログラムである。また、ゲームシステム1は、操作データ、変化量データ、コントローラ状態データ、および、解除フラグデータを記憶する。
【0099】
操作データは、上述のように各コントローラ3および4から本体装置2へ送信されて本体装置2において記憶される。本実施形態においては、操作データは、上述の操作部に対する入力を示す入力データと、コントローラの加速度センサの出力に基づく加速度データとを含む。変化量データは、コントローラの単位時間毎の加速度の変化量を示し、本実施形態においては、上述の差分Dを示す。なお、本実施形態においては、本体装置2は、少なくとも、現在時点から上記差分算出時間前までの期間に算出された差分Dを示すデータを変化量データとして保存する。コントローラ状態データは、コントローラの動きの状態を示し、本実施形態においては、運動状態および停止状態のいずれかを示す。解除フラグデータは、振動の制限が解除された状態であるか否かを示すフラグのデータである。なお、図示しないが、本体装置2は、上記操作データ、変化量データ、コントローラ状態データ、および、解除フラグデータを、ゲームに用いられるコントローラ毎にそれぞれ記憶する。
【0100】
図13は、ゲームシステム1によって実行されるゲームプログラム処理の流れの一例を示すフローチャートである。図13に示すゲームプログラム処理は、上記ゲームプログラムの実行中において、プレイヤが例えば所定のゲーム開始指示を行ったことに応じて開始される。
【0101】
なお、本実施形態では、本体装置2のプロセッサ81が、ゲームシステム1に記憶されている上記ゲームプログラムを実行することによって、図13に示す各ステップの処理を実行するものとして説明する。ただし、他の実施形態においては、上記各ステップの処理のうちの一部の処理を、プロセッサ81とは別のプロセッサ(例えば、専用回路等)が実行するようにしてもよい。また、ゲームシステム1が他の情報処理装置(例えば、サーバ)と通信可能である場合、図13に示す各ステップの処理の一部は、他の情報処理装置において実行されてもよい。また、図13に示す各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて(または代えて)別の処理が実行されてもよい。
【0102】
また、プロセッサ81は、図13に示す各ステップの処理を、メモリ(例えば、DRAM85)を用いて実行する。すなわち、プロセッサ81は、各処理ステップによって得られる情報(換言すれば、データ)をメモリに記憶し、それ以降の処理ステップにおいて当該情報を用いる場合には、メモリから当該情報を読み出して利用する。
【0103】
図15に示すステップS1において、プロセッサ81は、各コントローラから操作データを取得する。すなわち、プロセッサ81は、コントローラ通信部83および/または各端子17および21を介して各コントローラから受信される操作データを取得してメモリに記憶する。ステップS1の次に、ステップS2の処理が実行される。
【0104】
ステップS2において、プロセッサ81は、ゲームを進行させるゲーム処理を実行する。例えば、プロセッサ81は、プレイヤによる入力に応じて(すなわち、ステップS1で取得された操作データに基づいて)仮想のゲーム空間内においてプレイヤキャラクタを動作させる処理や、ゲーム空間内のオブジェクト(例えば、ボール)を動作させる処理を実行する。また、プロセッサ81は、ゲーム空間を表すゲーム画像を生成してディスプレイ12に表示させる。なお、本実施形態においては、ステップS2の処理が所定の1フレーム時間に1回の割合で繰り返し実行される。ステップS2の次に、ステップS3の処理が実行される。
【0105】
ステップS3において、プロセッサ81は、コントローラの動きの状態を判定する。具体的には、プロセッサ81は、上記“[2-3.コントローラの動きの状態の判定]”で述べた方法に従って、ステップS1で取得された加速度データに基づいて運動状態であるか停止状態であるかを判定する。このとき、プロセッサ81は、算出された現在の差分Dを示すデータを変化量データとしてメモリに記憶しておく。また、プロセッサ81は、判定された状態を示すデータをコントローラ状態データとしてメモリに記憶する。なお、図13に示すゲームプログラム処理が開始されてから上述の差分算出時間が経過するまでの期間においては、上記の方法によって判定を行うことができない。そのため、この期間においては、コントローラの動きの状態は、運動状態および停止状態のうちでゲームプログラムによって予め定められた一方の状態に設定される。ステップS3の次に、ステップS4の処理が実行される。
【0106】
ステップS4において、プロセッサ81は、振動タイミングが到来したか否かを判定する。ステップS4の判定は、ステップS2の処理によって進行されたゲーム状況に基づいて行われる。例えば、ゲームに参加するいずれかのプレイヤがショット操作を行う状態となった場合、あるいは、プレイヤキャラクタがボールを打った場合、プロセッサ81は、振動タイミングが到来したと判定する。ステップS4の判定結果が肯定である場合、ステップS5の処理が実行される。一方、ステップS4の判定結果が否定である場合、ステップS5~S9の一連の処理はスキップされて、後述するステップS10の処理が実行される。
【0107】
ステップS5において、プロセッサ81は、メモリに記憶されているコントローラ状態データに基づいて、コントローラの動きの状態が停止状態であるか否かを判定する。ステップS5の判定結果が肯定である場合、ステップS6の処理が実行される。一方、ステップS5の判定結果が否定である場合、後述するステップS9の処理が実行される。
【0108】
ステップS6において、プロセッサ81は、解除条件が満たされるか否かを判定する。すなわち、プロセッサ81は、上述の第1~第3の解除条件のいずれかが満たされるか否かを判定する。なお、第1の解除条件の判定は、コントローラと本体装置2との通信状態(すなわち、無線通信であるか有線通信であるか)に基づいて行われる。第2の解除条件の判定は、ステップS1で取得された入力データに基づいて行われる。第3の解除条件の判定は、上記“[2-4.載置姿勢であるか否かの判定]”で述べた方法に従って、ステップS1で取得された加速度データに基づいて行われる。ステップS6の判定結果が肯定である場合、ステップS7の処理が実行される。一方、ステップS6の判定結果が否定である場合、ステップS8の処理が実行される。
【0109】
ステップS7において、プロセッサ81は、コントローラの振動の制限を解除する。具体的には、プロセッサ81は、メモリに記憶されている解除フラグデータを、オン(すなわち、振動の制限が解除された状態)を示す内容に更新する。なお、本実施形態においては、プロセッサ81は、ステップS6の判定結果が最後に肯定となってから上述の解除継続時間が経過した場合、オフ(すなわち、振動の制限が解除されない状態)を示すように解除フラグデータを更新する。ステップS7の次に、ステップS9の処理が実行される。
【0110】
ステップS8において、プロセッサ81は、解除期間中であるか否かを判定する。すなわち、プロセッサ81は、メモリに記憶されている解除フラグデータがオンを示すか否かを判定する。ステップS8の判定結果が肯定である場合、ステップS9の処理が実行される。一方、ステップS8の判定結果が否定である場合、ステップS10の処理が実行される。
【0111】
上記のように、本実施形態においては、停止状態と判定される場合(ステップS5でYes)であって、解除条件が満たされず、解除継続期間でもない場合(ステップS6およびS8でNo)は、振動を制御する処理(ステップS9)が実行されない、つまり、振動の制御が制限される。
【0112】
ステップS9において、プロセッサ81は、コントローラの振動を制御する。具体的には、プロセッサ81は、指定されたコントローラの振動子を振動させるための上記振動制御信号を生成し、当該コントローラへ振動制御信号を送信する動作をコントローラ通信部83に行わせる。上記振動制御信号を受信したコントローラ(具体的には、通信制御部)は、振動制御信号に応じた制御信号を増幅器へ出力することによって、振動子を振動させる。これによって、振動制御信号によって指定される振動態様で振動子が振動し、コントローラが振動する。ステップS9の次に、ステップS10の処理が実行される。
【0113】
ステップS10において、プロセッサ81は、ゲームを終了するか否かを判定する。具体的には、所定の終了条件(例えば、所定数のゴルフコースのプレイが終了したこと)が満たされた場合、または、ゲームを終了する指示がプレイヤによって行われた場合、プロセッサ81は、ゲームを終了すると判定する。ステップS10の判定結果が否定である場合、ステップS1の処理が再度実行される。以降、ステップS10においてゲームを終了すると判定されるまで、ステップS1~S10の一連の処理が繰り返し実行される。一方、ステップS10の判定結果が肯定である場合、プロセッサ81は、図13に示すゲームプログラム処理を終了する。
【0114】
[4.上記実施形態における効果および変形例]
上記実施形態においては、ゲームシステム1は、情報処理装置(例えば、本体装置2)と、少なくとも1つの操作装置(例えば、コントローラ)とを備える。情報処理装置はプロセッサを備え、操作装置は、慣性センサ(例えば、加速度センサ)と、振動子とを備える。操作装置は、慣性センサの出力に基づく慣性データ(例えば、加速度データ)を情報処理装置へ送信し、情報処理装置から受信した振動制御信号に基づいて振動子を振動させる。プロセッサは、(a)ゲーム処理を実行し(例えば、ステップS2)、(b)ゲーム処理における所定の場面において、指定された操作装置の振動子を振動させる振動制御信号を情報処理装置から出力させ(例えば、ステップS9)、(c)操作装置からの慣性データに基づいて当該操作装置の動きの有無を判定し(例えば、ステップS3およびS5)、(d)操作装置の動きが無いと判定されたことを少なくとも条件として、所定の場面において当該操作装置の振動子を振動させない(または振動を弱める)ように、振動の制限を行う(例えば、ステップS5でYesとなったことを少なくとも条件としてステップS9の処理がスキップされる)。
【0115】
上記によれば、操作装置がプレイヤによって把持されずに載置されていると推測される場合に、操作装置の振動を制限することができる。これによって、机や床に置かれたコントローラの振動によって大きな音が発生したり、不要な振動によって電力を消費したりするデメリットが生じる可能性を低減することができる。
【0116】
なお、上記「慣性センサの出力に基づく慣性データ」とは、慣性センサが出力するデータ自体であってもよいし、慣性センサが出力するデータに何らかの処理(例えば、データ形式を変換する処理や、計算処理等)が行われたデータであってもよい。
【0117】
また、上記「所定の場面」は、ゲーム中における任意の場面であってよい。上記実施形態においては、プロセッサは、ゲーム処理において、複数人のプレイヤが順番にゲーム操作を行うゲーム(例えば、ゴルフゲーム)を実行する。そして、所定の場面として、ゲーム操作の順番がプレイヤに回ってきた場面において、振動制御を行う。具体的には、プロセッサ81は、上記の場面において、当該プレイヤに対応する操作装置の動きがあると判定されたことを少なくとも条件として、当該操作装置の振動子を振動させる振動制御信号を情報処理装置から出力させ(図8)、当該操作装置の動きが無いと判定されたことを少なくとも条件として、振動制御の制限を行う。上記によれば、マルチプレイのゲーム中において操作の順番が回ってきたプレイヤが操作装置を把持している場合には、振動によって当該プレイヤに通知を行うことができるとともに、当該プレイヤが操作装置を把持していない場合には、振動によってデメリットが生じる可能性を低減することができる。
【0118】
また、ゲームシステム1によって実行されるゲームは、複数人が参加するマルチプレイのゲームに限らず、1人のプレイヤによって実行されるゲームであってもよい。1人のプレイヤによって実行されるゲームにおいては、上記「所定の場面」は、例えば、ゲーム中において動画が再生される期間において、動画の内容に応じてコントローラが振動する場面(例えば、爆発シーンに応じてコントローラが振動する場面)である。上記のように動画が再生される期間においては、プレイヤがコントローラを机や床に置く可能性が考えられるので、上記のような場面において上記実施形態を適用することによって、上記実施形態と同様の効果を奏することができる。
【0119】
(振動の制限に関する変形例)
上記実施形態においては、コントローラの動きが無いと判定される場合において、解除条件が満たされる場合には、振動の制限が解除された。ここで、他の実施形態においては、解除条件は設定されず、コントローラの動きが無いと判定される場合にコントローラの振動が制限されてもよい。このとき、ゲームシステム1は、コントローラの動きが無いと判定される場合であって、所定の緩和条件が満たされる場合には、振動を制限しない場合に比べてコントローラの振動を弱めるようにし、緩和条件が満たされない場合には、コントローラを振動させないようにしてもよい。つまり、ゲームシステム1は、コントローラの動きが無いと判定される場合において、条件が満たされるか否かによって、振動を制限する方法(すなわち、振動を停止するか、それとも、振動を弱めるか)を異ならせるようにしてもよい。
【0120】
なお、上記緩和条件としては、上述の解除条件と逆の条件が用いられてもよい。例えば、上述の第3の解除条件とは逆の条件である「コントローラの姿勢が載置姿勢であること」という条件が緩和条件として用いられてもよい。ここで、コントローラの動きが無いと判定される場合であって、コントローラの姿勢が上述の載置姿勢であると判定される場合には、コントローラが机や床に置かれている可能性が高いと推測できるものの、コントローラが載置姿勢となる姿勢でプレイヤによって把持されている可能性も一応考えられる。そのため、ゲームシステム1は、コントローラの動きが無いと判定される場合において、コントローラの姿勢が上述の載置姿勢であると判定される場合、コントローラの振動を弱めるようにしてもよい。これによれば、コントローラの振動が弱められるので、コントローラが実際には載置されているとしても、振動によるデメリットが生じる可能性を低減することができる。また、コントローラが実際にはプレイヤによって把持されているとしても、振動をプレイヤに伝えることができる。なお、コントローラの動きが無いと判定される場合において、緩和条件が満たされない場合(すなわち、コントローラの姿勢が載置姿勢でないと判定される場合)には、ゲームシステム1は、コントローラを振動させないことによって、振動によるデメリットが生じる可能性を確実に低減することができる。
【0121】
また、他の実施形態においては、ゲームシステム1は、解除条件と緩和条件との両方を用いてもよい。例えば、ゲームシステム1は、コントローラの動きが無いと判定される場合において、(a)上述の第1の解除条件(すなわち、コントローラが本体装置2に装着された状態であること)が満たされる場合、振動の制限を解除し、(b)上記緩和条件が満たされる場合、振動を弱めるようにし、(c)第1の解除条件および上記緩和条件が共に満たされない場合、コントローラを振動させないようにしてもよい。
【0122】
また、他の実施形態においては、ゲームシステム1は、振動の制限を行うか否かを、振動の種類に応じて切り替えるようにしてもよい。例えば、ゲームシステム1は、ゲームの臨場感や没入感を向上させることを目的とした第1の種類の振動については、条件が満たされた場合に振動を制限する一方、プレイヤによる通知を目的とした第2の種類の振動については、当該条件が満たされても振動を制限しないようにしてもよい。なお、第1の種類の振動は、例えば、ゲームにおける効果音に応じた振動、あるいは、ゲームオブジェクトの動作に応じた振動である。また、第2の種類の振動は、例えば、操作の順番となったことをプレイヤに通知するための振動、あるいは、(プレイヤがコントローラを見失ったときに行われる)コントローラの場所をプレイヤに通知するための振動である。これによれば、振動によってデメリットが生じる可能性を低減することができるとともに、プレイヤに対する通知を確実に行うことができる。
【0123】
(振動を制限する条件に関する変形例)
上記実施形態においては、コントローラの動きが無いと判定されたことを少なくとも条件として、当該コントローラの振動を制限することとした。ここで、他の実施形態においては、ゲームシステム1は、コントローラの動きの有無にかかわらず、コントローラが上述の載置姿勢でないと判定されたことを少なくとも条件として、当該コントローラの振動を制限してもよい。このように、ゲームシステム1は、コントローラの姿勢が所定の条件を満たすか否かの判定を慣性データに基づいて行い、当該所定の条件が満たされることを少なくとも条件として、当該コントローラの振動を制限してもよい。なお、このとき、ゲームシステム1は、「コントローラの動きがあると判定されたこと」を解除条件として用いてもよい。
【0124】
(ゲームシステムの構成に関する変形例)
上記実施形態においては、ゲームシステム1は、本体装置2と、本体装置2に着脱可能なコントローラとを備える構成であったが、他の実施形態においては、ゲームシステムは単一の装置によって構成されてもよい。例えば、ゲームシステムは、上記の本体装置2と各コントローラ3および4とが一体となった情報処理装置であってもよく、慣性センサと振動子とを備える携帯型の情報処理装置であってもよい。なお、このとき、上述の第1の解除条件は用いられない。
【産業上の利用可能性】
【0125】
上記実施形態は、操作装置の振動によってデメリットが生じる可能性を低減すること等を目的として、例えばゲームシステムやゲームプログラムに利用することができる。
【符号の説明】
【0126】
1 ゲームシステム
2 本体装置
3 左コントローラ
4 右コントローラ
81 プロセッサ
104,114 加速度センサ
107,117 振動子
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13