JP2019017475A - ゲームシステム、ゲームプログラム、ゲーム装置、およびゲーム処理方法 - Google Patents

ゲームシステム、ゲームプログラム、ゲーム装置、およびゲーム処理方法 Download PDF

Info

Publication number
JP2019017475A
JP2019017475A JP2017136127A JP2017136127A JP2019017475A JP 2019017475 A JP2019017475 A JP 2019017475A JP 2017136127 A JP2017136127 A JP 2017136127A JP 2017136127 A JP2017136127 A JP 2017136127A JP 2019017475 A JP2019017475 A JP 2019017475A
Authority
JP
Japan
Prior art keywords
vibration
game
player character
virtual space
enemy
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017136127A
Other languages
English (en)
Other versions
JP6701132B2 (ja
Inventor
宏詞 植田
Hiroshi Ueda
宏詞 植田
鈴木 一郎
Ichiro Suzuki
一郎 鈴木
慎太郎 佐藤
Shintaro Sato
慎太郎 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nintendo Co Ltd
Original Assignee
Nintendo Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nintendo Co Ltd filed Critical Nintendo Co Ltd
Priority to JP2017136127A priority Critical patent/JP6701132B2/ja
Priority to US15/986,011 priority patent/US10758820B2/en
Publication of JP2019017475A publication Critical patent/JP2019017475A/ja
Application granted granted Critical
Publication of JP6701132B2 publication Critical patent/JP6701132B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/25Output arrangements for video game devices
    • A63F13/28Output arrangements for video game devices responding to control signals received from the game device for affecting ambient conditions, e.g. for vibrating players' seats, activating scent dispensers or affecting temperature or light
    • A63F13/285Generating tactile feedback signals via the game input device, e.g. force feedback
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/24Constructional details thereof, e.g. game controllers with detachable joystick handles
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/10Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals
    • A63F2300/1037Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals being specially adapted for converting control signals received from the game device into a haptic signal, e.g. using force feedback
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/64Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

【課題】振動部を振動させる場合に、ユーザにとって必要な振動をわかりやすくできるゲームシステム、ゲームプログラム、ゲーム装置、およびゲーム処理方法を提供する。【解決手段】操作制御部は、操作部に対するユーザ操作に基づいて、仮想空間内において操作対象を制御する。判定部は、操作対象が仮想空間内において所定の状況にあるか否かを判定する。振動制御部は、仮想空間内における操作対象の状態に応じて、振動部を振動させる振動信号を生成する。振動制御部は、操作対象の複数の状態それぞれに複数種類の振動をそれぞれ対応付けて振動信号を生成し、判定部において所定の状況にあると判定された場合、複数種類の振動のうち第1の種類の振動について、当該所定の状況であると判定されないときよりも振動が弱くなるまたは振動が無くなるように振動信号を生成する。【選択図】図13

Description

本発明は、振動部を振動させるゲームシステム、ゲームプログラム、ゲーム装置、およびゲーム処理方法に関する。
従来、振動を発生する条件を満たすと振動部を駆動させるゲームシステムがある(例えば、特許文献1参照)。
特開平11−33229号公報
しかしながら、上記特許文献1で開示されたゲームシステムでは、振動を発生する条件を複数満たした場合に複数の振動で振動部を振動させることを想定した場合、それぞれの振動がわかりにくくなり、必要な振動がわかりにくくなる場合がある。
それ故、本発明の目的は、振動部を振動させる場合に、ユーザにとって必要な振動をわかりやすくできるゲームシステム、ゲームプログラム、ゲーム装置、およびゲーム処理方法を提供することである。
上記目的を達成するために、本発明は例えば以下のような構成を採用し得る。なお、特許請求の範囲の記載を解釈する際に、特許請求の範囲の記載によってのみその範囲が解釈されるべきであることが理解され、特許請求の範囲の記載と本欄の記載とが矛盾する場合には、特許請求の範囲の記載が優先する。
本発明のゲームシステムの一構成例は、操作部、振動部、および情報処理部を含む。情報処理部は、操作制御部、判定部、および振動制御部を備える。操作制御部は、操作部に対するユーザ操作に基づいて、仮想空間内において操作対象を制御する。判定部は、操作対象が仮想空間内において所定の状況にあるか否かを判定する。振動制御部は、仮想空間内における操作対象の状態に応じて、振動部を振動させる振動信号を生成する。振動制御部は、操作対象の複数の状態それぞれに複数種類の振動をそれぞれ対応付けて振動信号を生成し、判定部において所定の状況にあると判定された場合、複数種類の振動のうち第1の種類の振動について、当該所定の状況であると判定されないときよりも振動が弱くなるまたは振動が無くなるように振動信号を生成する。
上記によれば、操作対象が仮想空間内において所定の状況にある場合に、必要な振動をユーザにわかりやすく知覚させることができる。
また、上記操作制御部は、仮想空間内のプレイヤキャラクタオブジェクトを操作対象として制御してもよい。上記情報処理部は、敵オブジェクト制御部を、さらに備えてもよい。敵オブジェクト制御部は、仮想空間内において、プレイヤキャラクタオブジェクトを攻撃する敵オブジェクトの挙動を制御する。上記判定部は、敵オブジェクトの状態に基づいてプレイヤキャラクタオブジェクトが戦闘中か否かを判定し、当該戦闘中である場合にプレイヤキャラクタオブジェクトが所定の状況にあると判定してもよい。
上記によれば、プレイヤキャラクタオブジェクトが仮想空間内において敵オブジェクトと戦闘中にある場合に、必要な振動をユーザにわかりやすく知覚させることができる。また、敵オブジェクトの状態に基づいて、戦闘中であるか否かを容易に判定することができる。
また、上記敵オブジェクト制御部は、所定の条件に基づいて敵オブジェクトがプレイヤキャラクタオブジェクトを攻撃するための処理を開始してもよい。上記判定部は、敵オブジェクト制御部において敵オブジェクトがプレイヤキャラクタオブジェクトを攻撃するための処理を行っている場合、プレイヤキャラクタオブジェクトが戦闘中であると判定してもよい。
上記によれば、敵オブジェクトがプレイヤキャラクタオブジェクトを攻撃するための処理を行っているか否かによって、プレイヤキャラクタオブジェクトが敵オブジェクトと戦闘中にあるか否かが判定されるため、戦闘中にあるか否かについて容易に判定することができる。
また、上記判定部は、仮想空間内における敵オブジェクトとプレイヤキャラクタオブジェクトとの距離が所定値よりも近い場合、プレイヤキャラクタオブジェクトが戦闘中であると判定してもよい。
上記によれば、敵オブジェクトとプレイヤキャラクタオブジェクトとの距離によって、プレイヤキャラクタオブジェクトが敵オブジェクトと戦闘中にあるか否かが判定されるため、戦闘中にあるか否かについて容易に判定することができる。
また、上記操作制御部は、所定の開始タイミング以降、操作部に対するユーザ操作に基づいて、仮想空間内のプレイヤキャラクタオブジェクトを操作対象として制御してもよい。上記判定部は、開始タイミングから所定時間経過以降をプレイヤキャラクタオブジェクトが戦闘中であると判定し、当該戦闘中である場合にプレイヤキャラクタオブジェクトが所定の状況にあると判定してもよい。
上記によれば、時間経過によって、プレイヤキャラクタオブジェクトが敵オブジェクトと戦闘中にあるか否かが判定されるため、戦闘中にあるか否かについて容易に判定することができる。
また、上記情報処理部は、通信部および他キャラクタ制御部を、さらに備えてもよい。通信部は、他のゲームシステムと無線または有線通信を行う。他キャラクタ制御部は、開始タイミング以降、通信部を介して取得される他のゲームシステムからのデータに基づいて、他のユーザが操作する他のプレイヤキャラクタオブジェクトの制御を行う。
上記によれば、他のゲームシステムと通信することによってゲーム進行するマルチゲームであっても、必要な振動をユーザにわかりやすく知覚させることができる。
また、上記振動制御部は、第1の種類の振動以外の第2の種類の振動として、操作対象がダメージを受ける事象が仮想空間内において生じた場合に振動部が所定の振動をするように振動信号を生成してもよい。
上記によれば、操作対象がダメージを受ける事象に遭遇したことを振動によってユーザが知ることができる。
また、上記振動制御部は、第1の種類の振動以外の第2の種類の振動として、仮想空間内において操作対象が他の対象を攻撃した場合に振動部が所定の振動をするように振動信号を生成してもよい。
上記によれば、操作対象が攻撃したことを振動によってユーザが知ることができる。
また、上記振動制御部は、第1の種類の振動として、操作対象が仮想空間内において第1の条件を満たす領域に進入した場合に振動部が所定の振動をするように振動信号を生成してもよい。
上記によれば、操作対象が第1の条件を満たす領域に配置されていることを振動によってユーザが知ることができる。
また、上記振動制御部は、第1の種類の振動以外の第2の種類の振動として、操作対象が仮想空間内において第2の条件を満たす領域に進入した場合に振動部が所定の振動をするように振動信号を生成してもよい。
上記によれば、操作対象が第1の条件を満たす領域に配置されていることよりも優先して、操作対象が第2の条件を満たす領域に配置されていることを振動によってユーザが知ることができる。
また、上記振動制御部は、第1の種類の振動として、操作対象が仮想空間内を移動することに応じて振動部が所定の振動をするように振動信号を生成してもよい。
上記によれば、操作対象が移動することに応じて振動するため、当該移動のリアリティをユーザに感じさせることができる。
また、上記振動制御部は、操作対象が所定の状況であると判定されてから所定期間内において、第1の種類の振動の強さが時間経過と共に弱くなるよう振動信号を生成してもよい。
上記によれば、振動を弱くする場合に振動がフェードアウトするため、ユーザに違和感を与えることなく振動強さを調整することができる。
また、上記振動制御部は、操作対象の状態に応じた振動の振動波形を示す振動信号を生成してもよい。上記振動制御部は、操作対象の状態に応じて振動が同時に複数生じる場合には、当該振動それぞれの振動波形を合成した波形を示す振動信号を生成してもよい。
上記によれば、複数の振動が同時に生じる場合に、それぞれの振動を欠落させることなくユーザに知覚させることができる。
また、上記操作制御部は、所定の開始タイミング以降、操作部に対するユーザ操作に基づいて、仮想空間内のプレイヤキャラクタオブジェクトを操作対象として制御してもよい。上記情報処理部は、敵オブジェクト出現制御部を、さらに備えてもよい。敵オブジェクト出現制御部は、開始タイミングの後、プレイヤキャラクタオブジェクトを攻撃する敵オブジェクトを仮想空間内に出現させる。上記判定部は、敵オブジェクトが仮想空間内に出現した時点以降をプレイヤキャラクタオブジェクトが戦闘中であると判定し、当該戦闘中である場合にプレイヤキャラクタオブジェクトが所定の状況にあると判定してもよい。
上記によれば、敵オブジェクトが出現した場合にプレイヤキャラクタオブジェクトが敵オブジェクトと戦闘中であると判定されるため、戦闘中にあるか否かについて容易に判定することができる。
また、本発明は、ゲームプログラム、ゲーム装置、およびゲーム処理方法の形態で実施されてもよい。
本発明によれば、操作対象が仮想空間内において所定の状況にある場合に、必要な振動をユーザにわかりやすく知覚させることができる。
本実施形態におけるゲームシステム1の一例において、本体装置2に左コントローラ3および右コントローラ4を装着した状態を示す図 本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図 本体装置2の一例を示す六面図 左コントローラ3の一例を示す六面図 右コントローラ4の一例を示す六面図 本体装置2の内部構成の一例を示すブロック図 ゲームシステム1の内部構成の一例を示すブロック図 左コントローラ3および右コントローラ4を本体装置2に装着して操作する様子の一例を示す図 左コントローラ3および右コントローラ4を本体装置2に装着して操作する様子の一例を示す図 左コントローラ3および右コントローラ4を本体装置2に装着して操作する様子の一例を示す図 左コントローラ3および右コントローラ4を本体装置2に装着して操作する様子の一例を示す図 左コントローラ3および右コントローラ4を本体装置2に装着して操作する様子の一例を示す図 シングルプレイモードにおける調整係数の設定例を示す図 対戦プレイモードにおける調整係数の設定例を示す図 協力プレイモードにおける調整係数の設定例を示す図 選択方式によって振動データを生成する方法の一例を説明するための図 高周波側および低周波側をまとめて判定する場合に用いられる合成モジュールの一例を示す図 加算方式によって振動データを生成する方法の一例を説明するための図 本実施形態において本体装置2のDRAM85に設定されるデータ領域の一例を示す図 ゲームシステム1で実行されるゲーム処理の一例を示すフローチャート 図20におけるステップS146において行われるシングルプレイゲーム処理の詳細の一例を示すサブルーチン 図21におけるステップS165において行われるシングルプレイ係数算出処理の詳細の一例を示すサブルーチン 図20におけるステップS149において行われる対戦プレイゲーム処理の詳細の一例を示すサブルーチン 図20におけるステップS150において行われる協力プレイゲーム処理の詳細の一例を示すサブルーチン
以下、本実施形態の一例に係るゲームシステム、ゲームプログラム、ゲーム装置、およびゲーム処理方法について説明する。本実施形態におけるゲームシステムの一例となるゲームシステム1は、本体装置(情報処理装置;本実施形態ではゲーム装置本体として機能する)2と左コントローラ3および右コントローラ4とを含む。本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能である。つまり、ゲームシステム1は、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できる。また、ゲームシステム1は、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる(図2参照)。以下では、本実施形態のゲームシステム1のハードウェア構成について説明し、その後に本実施形態のゲームシステム1の制御について説明する。
図1は、本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図である。図1に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、ゲームシステム1における各種の処理(例えば、ゲーム処理)を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。
図2は、本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図である。図1および図2に示すように、左コントローラ3および右コントローラ4は、本体装置2に着脱可能である。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。
図3は、本体装置2の一例を示す六面図である。図3に示すように、本体装置2は、略板状のハウジング11を備える。本実施形態において、ハウジング11の主面(換言すれば、表側の面、すなわち、ディスプレイ12が設けられる面)は、大略的には矩形形状である。
なお、ハウジング11の形状および大きさは、任意である。一例として、ハウジング11は、携帯可能な大きさであってよい。また、本体装置2単体または本体装置2に左コントローラ3および右コントローラ4が装着された一体型装置は、携帯型装置となってもよい。また、本体装置2または一体型装置が手持ち型の装置となってもよい。また、本体装置2または一体型装置が可搬型装置となってもよい。
図3に示すように、本体装置2は、ハウジング11の主面に設けられるディスプレイ12を備える。ディスプレイ12は、本体装置2が生成した画像を表示する。本実施形態においては、ディスプレイ12は、液晶表示装置(LCD)とする。ただし、ディスプレイ12は任意の種類の表示装置であってよい。
また、本体装置2は、ディスプレイ12の画面上にタッチパネル13を備える。本実施形態においては、タッチパネル13は、マルチタッチ入力が可能な方式(例えば、静電容量方式)のものである。ただし、タッチパネル13は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式(例えば、抵抗膜方式)のものであってもよい。
本体装置2は、ハウジング11の内部においてスピーカ(すなわち、図6に示すスピーカ88)を備えている。図3に示すように、ハウジング11の主面には、スピーカ孔11aおよび11bが形成される。そして、スピーカ88の出力音は、これらのスピーカ孔11aおよび11bからそれぞれ出力される。
また、本体装置2は、本体装置2が左コントローラ3と有線通信を行うための端子である左側端子17と、本体装置2が右コントローラ4と有線通信を行うための右側端子21を備える。
図3に示すように、本体装置2は、スロット23を備える。スロット23は、ハウジング11の上側面に設けられる。スロット23は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。所定の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。また、本体装置2は、電源ボタン28を備える。
本体装置2は、下側端子27を備える。下側端子27は、本体装置2がクレードルと通信を行うための端子である。本実施形態において、下側端子27は、USBコネクタ(より具体的には、メス側コネクタ)である。上記一体型装置または本体装置2単体をクレードルに載置した場合、ゲームシステム1は、本体装置2が生成して出力する画像を据置型モニタに表示することができる。また、本実施形態においては、クレードルは、載置された上記一体型装置または本体装置2単体を充電する機能を有する。また、クレードルは、ハブ装置(具体的には、USBハブ)の機能を有する。
図4は、左コントローラ3の一例を示す六面図である。図4に示すように、左コントローラ3は、ハウジング31を備える。本実施形態においては、ハウジング31は、縦長の形状、すなわち、上下方向(すなわち、図1および図4に示すy軸方向)に長い形状である。左コントローラ3は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング31は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ3は、横長となる向きで把持されることも可能である。左コントローラ3が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
左コントローラ3は、アナログスティック32を備える。図4に示すように、アナログスティック32は、ハウジング31の主面に設けられる。アナログスティック32は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック32を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。なお、左コントローラ3は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、アナログスティック32を押下する入力が可能である。
左コントローラ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プログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。
また、左コントローラ3は、左コントローラ3が本体装置2と有線通信を行うための端子42を備える。
図5は、右コントローラ4の一例を示す六面図である。図5に示すように、右コントローラ4は、ハウジング51を備える。本実施形態においては、ハウジング51は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ4は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング51は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ4は、横長となる向きで把持されることも可能である。右コントローラ4が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
右コントローラ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を備える。
また、右コントローラ4は、右コントローラ4が本体装置2と有線通信を行うための端子64を備える。
図6は、本体装置2の内部構成の一例を示すブロック図である。本体装置2は、図3に示す構成の他、図6に示す各構成要素81〜91、97、および98を備える。これらの構成要素81〜91、97、および98のいくつかは、電子部品として電子回路基板上に実装されてハウジング11内に収納されてもよい。
本体装置2は、プロセッサ81を備える。プロセッサ81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System−on−a−chip)から構成されてもよい。プロセッサ81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、スロット23に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、プロセッサ81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
本体装置2は、スロットインターフェース(以下、「I/F」と略記する。)91を備える。スロットI/F91は、プロセッサ81に接続される。スロットI/F91は、スロット23に接続され、スロット23に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ81の指示に応じて行う。
プロセッサ81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
本体装置2は、ネットワーク通信部82を備える。ネットワーク通信部82は、プロセッサ81に接続される。ネットワーク通信部82は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行う。本実施形態においては、ネットワーク通信部82は、第1の通信態様としてWi−Fiの規格に準拠した方式により、無線LANに接続して外部装置と通信を行う。また、ネットワーク通信部82は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の本体装置2との間で無線通信を行う。なお、上記第2の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置2との間で無線通信可能であり、複数の本体装置2の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、プロセッサ81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、本実施形態においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
プロセッサ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は、クレードルを介してデータ(例えば、画像データや音声データ)を据置型モニタ等に出力することができる。
ここで、本体装置2は、複数の左コントローラ3と同時に(換言すれば、並行して)通信を行うことができる。また、本体装置2は、複数の右コントローラ4と同時に(換言すれば、並行して)通信を行うことができる。したがって、複数のユーザは、左コントローラ3および右コントローラ4のセットをそれぞれ用いて、本体装置2に対する入力を同時に行うことができる。一例として、第1ユーザが左コントローラ3および右コントローラ4の第1セットを用いて本体装置2に対して入力を行うと同時に、第2ユーザが左コントローラ3および右コントローラ4の第2セットを用いて本体装置2に対して入力を行うことが可能となる。
本体装置2は、タッチパネル13の制御を行う回路であるタッチパネルコントローラ86を備える。タッチパネルコントローラ86は、タッチパネル13とプロセッサ81との間に接続される。タッチパネルコントローラ86は、タッチパネル13からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、プロセッサ81へ出力する。
また、ディスプレイ12は、プロセッサ81に接続される。プロセッサ81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
本体装置2は、コーデック回路87およびスピーカ(具体的には、左スピーカおよび右スピーカ)88を備える。コーデック回路87は、スピーカ88および音声入出力端子25に接続されるとともに、プロセッサ81に接続される。コーデック回路87は、スピーカ88および音声入出力端子25に対する音声データの入出力を制御する回路である。
また、本体装置2は、加速度センサ89を備える。本実施形態においては、加速度センサ89は、所定の3軸(例えば、図1に示すxyz軸)方向に沿った加速度の大きさを検出する。なお、加速度センサ89は、1軸方向あるいは2軸方向の加速度を検出するものであってもよい。
また、本体装置2は、角速度センサ90を備える。本実施形態においては、角速度センサ90は、所定の3軸(例えば、図1に示すxyz軸)回りの角速度を検出する。なお、角速度センサ90は、1軸回りあるいは2軸回りの角速度を検出するものであってもよい。
加速度センサ89および角速度センサ90は、プロセッサ81に接続され、加速度センサ89および角速度センサ90の検出結果は、プロセッサ81へ出力される。プロセッサ81は、上記の加速度センサ89および角速度センサ90の検出結果に基づいて、本体装置2の動きおよび/または姿勢に関する情報を算出することが可能である。
本体装置2は、電力制御部97およびバッテリ98を備える。電力制御部97は、バッテリ98およびプロセッサ81に接続される。また、図示しないが、電力制御部97は、本体装置2の各部(具体的には、バッテリ98の電力の給電を受ける各部、左側端子17、および右側端子21)に接続される。電力制御部97は、プロセッサ81からの指令に基づいて、バッテリ98から上記各部への電力供給を制御する。
また、バッテリ98は、下側端子27に接続される。外部の充電装置(例えば、クレードル)が下側端子27に接続され、下側端子27を介して本体装置2に電力が供給される場合、供給された電力がバッテリ98に充電される。
図7は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。なお、本体装置2に関する内部構成の詳細については、図6で示しているため図7では省略している。
左コントローラ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(登録商標)の規格に従って行われる。
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
左コントローラ3は、各ボタン103(具体的には、ボタン33〜39、43、44、および47)を備える。また、左コントローラ3は、アナログスティック(図7では「スティック」と記載する)32を備える。各ボタン103およびアナログスティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部101へ出力する。
左コントローラ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へ出力される。
通信制御部101は、各入力部(具体的には、各ボタン103、アナログスティック32、各センサ104および105)から、入力に関する情報(具体的には、操作に関する情報、またはセンサによる検出結果)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
上記操作データが本体装置2へ送信されることによって、本体装置2は、左コントローラ3に対して行われた入力を得ることができる。すなわち、本体装置2は、各ボタン103およびアナログスティック32に対する操作を、操作データに基づいて判別することができる。また、本体装置2は、左コントローラ3の動きおよび/または姿勢に関する情報を、操作データ(具体的には、加速度センサ104および角速度センサ105の検出結果)に基づいて算出することができる。
左コントローラ3は、振動によってユーザに通知を行うための振動子107を備える。本実施形態においては、振動子107は、本体装置2からの指令によって制御される。すなわち、通信制御部101は、本体装置2からの上記指令を受け取ると、当該指令に従って振動子107を駆動させる。ここで、左コントローラ3は、コーデック部106を備える。通信制御部101は、上記指令を受け取ると、指令に応じた制御信号をコーデック部106へ出力する。コーデック部106は、通信制御部101からの制御信号から振動子107を駆動させるための駆動信号を生成して振動子107へ与える。これによって振動子107が動作する。
振動子107は、より具体的にはリニア振動モータである。リニア振動モータは、回転運動をする通常のモータと異なり、入力される電圧に応じて所定方向に駆動されるため、入力される電圧の波形に応じた振幅および周波数で振動をさせることができる。本実施形態において、本体装置2から左コントローラ3に送信される振動制御信号は、単位時間ごとに周波数と振幅とを表すデジタル信号であってよい。別の実施形態においては、本体装置2から波形そのものを示す情報を送信するようにしてもよいが、振幅および周波数だけを送信することで通信データ量を削減することができる。また、さらにデータ量を削減するため、そのときの振幅および周波数の数値に替えて、前回の値からの差分だけを送信するようにしてもよい。この場合、コーデック部106は、通信制御部101から取得される振幅および周波数の値を示すデジタル信号をアナログの電圧の波形に変換し、当該波形に合わせて電圧を入力することで振動子107を駆動させる。したがって、本体装置2は、単位時間ごとに送信する振幅および周波数を変えることによって、そのときに振動子107を振動させる振幅および周波数を制御することができる。なお、本体装置2から左コントローラ3に送信される振幅および周波数は、1つに限らず、2つ以上送信するようにしてもよい。その場合、コーデック部106は、受信された複数の振幅および周波数それぞれが示す波形を合成することで、振動子107を制御する電圧の波形を生成することができる。
左コントローラ3は、電力供給部108を備える。本実施形態において、電力供給部108は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ3の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。
図7に示すように、右コントローラ4は、本体装置2との間で通信を行う通信制御部111を備える。また、右コントローラ4は、通信制御部111に接続されるメモリ112を備える。通信制御部111は、端子64を含む各構成要素に接続される。通信制御部111およびメモリ112は、左コントローラ3の通信制御部101およびメモリ102と同様の機能を有する。したがって、通信制御部111は、端子64を介した有線通信と、端子64を介さない無線通信(具体的には、Bluetooth(登録商標)の規格に従った通信)との両方で本体装置2と通信を行うことが可能であり、右コントローラ4が本体装置2に対して行う通信方法を制御する。
右コントローラ4は、左コントローラ3の各入力部と同様の各入力部を備える。具体的には、各ボタン113、アナログスティック52、慣性センサ(加速度センサ114および角速度センサ115)を備える。これらの各入力部については、左コントローラ3の各入力部と同様の機能を有し、同様に動作する。
また、右コントローラ4は、振動子117およびコーデック部116を備える。振動子117およびコーデック部116は、左コントローラ3の振動子107およびコーデック部106と同様に動作する。すなわち、通信制御部111は、本体装置2からの指令に従って、コーデック部116を用いて振動子117を動作させる。
右コントローラ4は、電力供給部118を備える。電力供給部118は、左コントローラ3の電力供給部108と同様の機能を有し、同様に動作する。
以上に説明したように、本実施形態におけるゲームシステム1については左コントローラ3および右コントローラ4が本体装置2から着脱可能である。また、クレードルに左コントローラ3および右コントローラ4が本体装置2に装着された一体型装置や本体装置2単体を装着することによって据置型モニタに画像(および音声)を出力可能である。以下、一例として、左コントローラ3および右コントローラ4を本体装置2に装着された一体型装置の状態で、ディスプレイ12に画像を出力する利用態様におけるゲームシステムを用いて説明する。この状態でゲームシステム1を利用してアプリケーション(例えば、ゲームアプリケーション)に対する操作を行う場合の態様としては、1人のユーザが左コントローラ3および右コントローラ4の両方を用いる態様が考えられる。
図8〜図12は、左コントローラ3および右コントローラ4を本体装置2に装着して操作する様子の一例を示す図である。図8〜図12に示すように、左コントローラ3および右コントローラ4を本体装置2に装着してゲームプレイする場合、ゲーム画像は、本体装置2のディスプレイ12に表示される。このような一体型装置を用いてゲームをプレイする場合、一例として、左コントローラ3および右コントローラ4に設けられた各操作ボタンやスティックが用いられて操作される。他の例として、上記一体型装置全体の姿勢を変化させたり動かしたりする操作を慣性センサが検出することによって操作される。そして、ユーザは、本体装置2に装着されている左コントローラ3の部分を左手で把持し、本体装置2に装着されている右コントローラ4の部分を右手で把持して操作を行いながら、ディスプレイ12に表示された画像を見ることができる。
また、本実施例では、左コントローラ3および右コントローラ4を把持してゲームプレイする場合、当該ゲーム状況に応じて、左コントローラ3および/または右コントローラ4に振動が与えられる。上述したように、左コントローラ3は、振動子107を有しており、右コントローラ4は、振動子117を有している。本体装置2のプロセッサ81は、実行しているゲーム状況に応じて振動データを左コントローラ3および/または右コントローラ4に送信することによって、当該振動データに応じた振幅および周波数で振動子107および/または振動子117を振動させることができる。
図8に示すように、本ゲーム例では、プレイヤオブジェクトPOと敵オブジェクトEOとが対戦するゲーム(例えば、戦闘ゲーム)の画像がディスプレイ12に表示される。そして、左コントローラ3および右コントローラ4を操作するユーザは、上記一体型装置全体を動かしたり、上記一体型装置全体の姿勢を変化させたり、操作ボタンを押下したり、アナログスティックを傾倒したりすることによって、プレイヤオブジェクトPOを操作することができる。なお、敵オブジェクトEOは、後述するシングルプレイモードによるゲームや協力プレイモードによるゲームの場合、その動作がCPU(例えば、プロセッサ81)によって自動制御される。また、敵オブジェクトEOは、後述する対戦プレイモードである場合、ゲームシステム1と通信可能な他のゲームシステム1のユーザの操作によってその動作が制御される。
例えば、所定の操作ボタン(例えば、第1Rボタン60)が押下されることによって、ディスプレイ12に表示されているプレイヤオブジェクトPOが攻撃を行う。例えば、プレイヤオブジェクトPOが所持している武器の方向が敵オブジェクトEOに向いている場合に所定の操作ボタンが押下されると、当該武器から敵オブジェクトEOに向けて弾Bが発射される。そして、本ゲーム例では、プレイヤオブジェクトPOが攻撃をする動作を行った場合、攻撃動作の種類に応じた振動が左コントローラ3および/または右コントローラ4に与えられる。したがって、ユーザは、ディスプレイ12に表示されたゲーム画像によってプレイヤオブジェクトPOが攻撃をする動作を行ったことを視認するとともに、左コントローラ3および/または右コントローラ4から与えられる振動によってもプレイヤオブジェクトPOが攻撃をする動作を行ったことを知ることが可能となる。
例えば、図8に示した例では、ユーザがアナログスティック32を傾倒させる方向によってプレイヤオブジェクトPOの向きを変えて、第1Rボタン60を押下することによって弾Bが敵オブジェクトEOに向けて発射されている。このような敵オブジェクトEOを攻撃する操作が行われた場合、当該攻撃に応じた振動(例えば、「ドン!」という触覚をユーザに与える振動)が左コントローラ3および/または右コントローラ4に与えられる。ユーザは、左コントローラ3および/または右コントローラ4から与えられる攻撃に応じた振動を知覚することによって、プレイヤオブジェクトPOが敵オブジェクトEOを攻撃する動作を行ったことを知ることも可能となる。
また、図9に示すように、プレイヤオブジェクトPOの攻撃が敵オブジェクトEOにダメージを与えた場合、攻撃した種類、攻撃した位置からの距離、与えたダメージ量、または敵を倒した(仮想空間から消滅等)か否か等に応じた振動が左コントローラ3および/または右コントローラ4に与えられる。したがって、ユーザは、ディスプレイ12に表示されたゲーム画像によってプレイヤオブジェクトPOの攻撃が敵オブジェクトEOに影響を与えたことを視認するとともに、左コントローラ3および/または右コントローラ4から与えられる振動によってもプレイヤオブジェクトPOの攻撃が敵オブジェクトEOに影響を与えたことを知ることができる。
一例として、プレイヤオブジェクトPOの攻撃が敵オブジェクトEOにダメージを与えた場合、プレイヤオブジェクトPOが行った攻撃に応じた振動(例えば、「ガキン!」という触覚をユーザに与える振動)が左コントローラ3および/または右コントローラ4に与えられ、プレイヤオブジェクトPOが攻撃した際の振動とは異なる振動が与えられる。したがって、ユーザは、左コントローラ3および/または右コントローラ4から与えられるプレイヤオブジェクトPOが行った攻撃に応じた振動を知覚することによって、プレイヤオブジェクトPOの攻撃が敵オブジェクトEOに影響を与えたことやその攻撃の状況(攻撃の種類、攻撃の近さ、与えたダメージ量、敵が倒れたか否か等)を知ることも可能となる。
一方、図10に示すように、プレイヤオブジェクトPOは、敵オブジェクトEOから攻撃を受けることもある。プレイヤオブジェクトPOが敵オブジェクトEOから攻撃された場合、攻撃された種類、攻撃された位置からの距離、与えられたダメージ量、または敵に倒された(ゲーム続行不能状態やゲームオーバ等)か否か等に応じた振動が左コントローラ3および/または右コントローラ4に与えられる。したがって、ユーザは、ディスプレイ12に表示されたゲーム画像によってプレイヤオブジェクトPOが敵オブジェクトEOから攻撃されたことを視認するとともに、左コントローラ3および/または右コントローラ4から与えられる振動によってもプレイヤオブジェクトPOが敵オブジェクトEOから攻撃されたことを知ることができる。
一例として、プレイヤオブジェクトPOが敵オブジェクトEOから攻撃された場合、プレイヤオブジェクトPOが受けた攻撃に応じた振動(例えば、「どかん!」という触覚をユーザに与える振動)が左コントローラ3および/または右コントローラ4に与えられ、プレイヤオブジェクトPOが攻撃した際の振動とは異なる振動が与えられる。したがって、ユーザは、左コントローラ3および/または右コントローラ4から与えられるプレイヤオブジェクトPOが受けた攻撃に応じた振動を知覚することによって、プレイヤオブジェクトPOが敵オブジェクトEOから攻撃を受けたことやその攻撃の状況(攻撃の種類、攻撃の近さ、与えられたダメージ量、敵に倒されたか否か等)を知ることも可能となる。
また、図11に示すように、プレイヤオブジェクトPOは、仮想空間における移動によってダメージを受けることがある。例えば、本ゲーム例では、仮想空間に設置されているゲームフィールドに「味方領域」、「敵領域」、および「中立領域」が設定されており、プレイヤオブジェクトPOが「敵領域」に侵入した場合にプレイヤオブジェクトPOに所定のダメージが与えられる。また、敵オブジェクトEOが「味方領域」に侵入した場合に当該敵オブジェクトEOに所定のダメージが与えられる。このように、プレイヤオブジェクトPOがダメージを受けた場合、ダメージを与えた対象の種類、当該対象からの距離、与えられたダメージ量、または当該ダメージによって倒された(ゲーム続行不能状態やゲームオーバ等)か否か等に応じた振動が左コントローラ3および/または右コントローラ4に与えられる。したがって、ユーザは、ディスプレイ12に表示されたゲーム画像によってプレイヤオブジェクトPOがダメージを受けていることを視認するとともに、左コントローラ3および/または右コントローラ4から与えられる振動によってもプレイヤオブジェクトPOがダメージを受けていることを知ることができる。
一例として、仮想空間内においてプレイヤオブジェクトPOがダメージを受けた場合、プレイヤオブジェクトPOが受けたダメージに応じた振動(例えば、「ブブブブ・・・」という触覚をユーザに与える振動)が左コントローラ3および/または右コントローラ4に与えられ、プレイヤオブジェクトPOが攻撃した際や攻撃を受けた際の振動とは異なる振動が与えられる。したがって、ユーザは、左コントローラ3および/または右コントローラ4から与えられるプレイヤオブジェクトPOが受けたダメージに応じた振動を知覚することによって、プレイヤオブジェクトPOにダメージを受けていることやそのダメージの状況(ダメージの種類、被ダメージ領域からの近さ、与えられたダメージ量、与えられたダメージによって倒されたか否か等)を知ることも可能となる。なお、仮想空間における移動によってプレイヤオブジェクトPOがダメージを受ける状況は、「敵領域」に侵入した場合以外でもよい。例えば、プレイヤオブジェクトPOが落下する、水没する、転倒する、挟まれる、激突する、動作に失敗する、衝撃を受ける等、仮想空間内における様々な状況において、プレイヤオブジェクトPOにダメージが与えられてもよい。
このように、上述した振動(攻撃した際の振動、攻撃が敵に影響を与えた振動、攻撃を受けた際の振動、ダメージを受けた際の振動)は、何れもゲームを進行する上でゲーム性に関連するものとなり、重要な情報をユーザに伝えることが可能なものとなる。一例として、プレイヤオブジェクトPOと敵オブジェクトEOとが戦闘するゲームを行う場合、上述した振動は、何れも当該戦闘に勝利するためにプレイに必要となる情報をユーザに伝えることが可能なものとなるため、ゲーム性を損なわないためにも優先的にユーザに知覚させることが必要となる。その一方で、ゲームのリアリティを感じさせたり、ゲーム演出を行ったりすることを目的として、ユーザに別の種類の振動(以下、演出用振動と記載する)を知覚させることもある。
演出用振動の一例として、仮想空間内をプレイヤオブジェクトPOが移動することに応じて生じる振動がある。例えば、図12に示すように、ゲームフィールドにおいて設定されている「味方領域」内において、プレイヤオブジェクトPOは、泳いで移動することができる。このように、プレイヤオブジェクトPOが仮想空間内を移動した場合、当該移動に応じた振動が左コントローラ3および/または右コントローラ4に与えられる。したがって、ユーザは、ディスプレイ12に表示されたゲーム画像によってプレイヤオブジェクトPOが移動していることを視認するとともに、左コントローラ3および/または右コントローラ4から与えられる振動によって、当該移動のリアリティをユーザに与えることも可能となる。
一例として、仮想空間内においてプレイヤオブジェクトPOが泳いで移動する場合、プレイヤオブジェクトPOの移動方法に応じた振動(例えば、「バシャバシャ」という触覚をユーザに与える振動)が左コントローラ3および/または右コントローラ4に与えられ、上述したゲーム性に関わる振動とは異なる振動が与えられる。したがって、ユーザは、左コントローラ3および/または右コントローラ4から与えられる振動を知覚することによって、プレイヤオブジェクトPOの移動状況や配置されている環境等を知ることも可能となるとともに、仮想空間に配置されているリアリティを感じることが可能となる。なお、仮想空間におけるプレイヤオブジェクトPOの移動によって振動が与えられる状況は、泳いで移動する場合以外でもよい。例えば、プレイヤオブジェクトPOが歩く、走る、ジャンプする、飛ぶ、滑る、潜る、浮かぶ、転倒する、回転する、着地する、飛び込む、乗り物の移動、移動を停止する等、仮想空間内における様々な移動状況に応じた振動がユーザに与えられてもよい。また、上記演出用振動は、仮想空間内をプレイヤオブジェクトPOが移動することに応じて生じるだけでなく、仮想空間における他の状況に応じて生じることもあり得る。例えば、上記演出用振動は、仮想空間内において、プレイヤオブジェクトPOに吹き付けられる風や雨、プレイヤオブジェクトPO周辺の音声や物音、プレイヤオブジェクトPOへの接触等、仮想空間内における様々な環境に応じた振動、仮想空間における所定の時刻や所定のタイミングを示す振動、BGMに応じた振動等でもよい。
本実施例では、上述したゲーム性に関わる振動を優先してユーザに知覚させるために、仮想空間内においてプレイヤオブジェクトPOが所定の状況にある場合、上記演出用振動の強さを弱くする。例えば、プレイヤオブジェクトPOが上記所定の状況にあると判定された場合、上記演出用振動について、当該所定の状況であると判定されないときよりも振動が弱くなるまたは振動が無くなるように振動制御を行う。本実施例では、上記演出用振動の強さを調整するための調整係数が0以上1以下の数値で設定され、当該演出用振動を示す振動波形に当該調整係数が掛け合わされることによって、当該演出用振動を示す振動波形の振幅が減衰する。また、上記所定の状況にある場合とは、典型的には、プレイヤオブジェクトPOが敵オブジェクトEOと戦闘中である場合や、プレイヤオブジェクトPOが他のオブジェクトと試合中である場合等が考えられる。なお、本実施例では、プレイヤオブジェクトPOが敵オブジェクトEOと戦闘中であるか否かを判定する基準がゲームモードによって異なるため、図13〜図15を参照して、ゲームモード毎の判定基準および設定される調整係数の例について説明する。
図13は、シングルプレイモードにおける調整係数の設定例を示す図である。シングルプレイモードは、敵オブジェクトEO全ての動作がCPU(例えば、プロセッサ81)によって自動制御され、ユーザによって操作されるプレイヤオブジェクトPOがゲームシステム1のユーザのみによって操作される。
シングルプレイモードの場合、プレイヤオブジェクトPOが敵オブジェクトEOと戦闘中であるか否かの判定は、仮想空間におけるプレイヤオブジェクトPOおよび/または敵オブジェクトEOの動作によって行われる。例えば、シングルプレイモードによるゲーム開始直後は、プレイヤオブジェクトPOが敵オブジェクトEOと戦闘中ではないと判定され、調整係数が1.0に設定される。これによって、シングルプレイモードによるゲーム開始直後は、上記演出用振動が通常の強さでユーザに与えられる。そして、シングルプレイモードによるゲーム開始後、仮想空間においてプレイヤオブジェクトPOが敵オブジェクトEOに発見された場合、プレイヤオブジェクトPOが敵オブジェクトEOと戦闘中になったと判定される。この場合、調整係数は、当該発見時点からの経過時間に応じて1.0から0.0にフェードアウト(漸減的に減少)され、例えば当該発見時点からゲーム処理単位である60フレーム(例えば、1秒間)かけて調整係数が1.0から0.0にフェードアウトされる。また、シングルプレイモードによるゲーム開始後、仮想空間においてプレイヤオブジェクトPOと敵オブジェクトEOとの距離が所定の距離(例えば、30m)以内に接近した場合、プレイヤオブジェクトPOが敵オブジェクトEOと戦闘中になったと判定される。この場合、調整係数は、プレイヤオブジェクトPOと敵オブジェクトEOとの距離に応じて設定され、例えば当該距離が30mから10mに近づくことに応じて調整係数が1.0から0.0に減少するように設定される。なお、上記経過時間による調整係数の減少と距離による調整係数の減少とが同時に生じた場合、調整係数の数値が小さい方を採用してもよいし、調整係数の数値が大きい方を採用してもよいし、双方の数値を乗算した結果を調整係数として採用してもよい。
また、上記調整係数は、1.0から0.0に即時に変化させてもよい。この場合、仮想空間においてプレイヤオブジェクトPOが敵オブジェクトEOに発見された時点やレイヤオブジェクトPOと敵オブジェクトEOとの距離が所定の距離に接近した時点で、調整係数が1.0から0.0に即時に変化する。また、上記調整係数を漸減的に減少させるまたは即時に変化させる際の調整係数の最小値は、0.0より大きな値でもよく、1.0未満の値であればどのような値が最小値となってもよい。
また、シングルプレイモードによるゲームにおいて、プレイヤオブジェクトPOと敵オブジェクトEOとの戦闘状態が解消された場合、調整係数を1.0に戻してもよい。例えば、図13の例では、プレイヤオブジェクトPOと戦闘中と判定されていた敵オブジェクトEOが消滅した場合(典型的には、仮想空間内において敵オブジェクトEOが全滅した場合)、プレイヤオブジェクトPOが敵オブジェクトEOと戦闘中ではないと判定され、調整係数が1.0に設定される。この場合、調整係数は、当該戦闘状態が解消された時点からの経過時間に応じて0.0から1.0にフェードイン(漸増的に増大)され、例えば当該戦闘状態の解消時点からゲーム処理単位である180フレーム(例えば、3秒間)かけて調整係数が0.0から1.0にフェードインされる。これによって、シングルプレイモードによるゲームにおいて戦闘中でなくなった場合、上記演出用振動が通常の強さでユーザに与えられる。
図14は、対戦プレイモードにおける調整係数の設定例を示す図である。対戦プレイモードは、ゲームシステム1と通信可能な他のゲームシステム1のユーザの操作によってその動作が制御される敵オブジェクトEOが、少なくとも1体含まれる。
対戦プレイモードの場合、プレイヤオブジェクトPOが敵オブジェクトEOと戦闘中であるか否かの判定は、経過時間および仮想空間におけるプレイヤオブジェクトPOの移動距離によって行われる。例えば、対戦プレイモードによるゲーム開始直後は、プレイヤオブジェクトPOが敵オブジェクトEOと戦闘中ではないと判定され、調整係数が1.0に設定される。これによって、対戦プレイモードによるゲーム開始直後は、上記演出用振動が通常の強さでユーザに与えられる。そして、対戦プレイモードによるゲーム開始後、所定時間(例えば、60フレーム(1秒間)が経過した時点でプレイヤオブジェクトPOが敵オブジェクトEOと戦闘中になったと判定される。この場合、調整係数は、当該所定時間経過時点からの経過時間に応じて1.0から0.0にフェードアウト(漸減的に減少)され、例えば当該所定時間経過時点からゲーム処理単位である240フレーム(例えば、4秒間)かけて調整係数が1.0から0.0にフェードアウトされる。また、対戦プレイモードによるゲーム開始後、仮想空間において敵オブジェクトEOが配置されている敵陣に向かってゲームスタート位置から移動したプレイヤオブジェクトPOが移動した距離に応じて、プレイヤオブジェクトPOが敵オブジェクトEOと戦闘中になったと判定される。この場合、調整係数は、上記スタート位置から上記敵陣に向かって移動した移動距離に応じて設定され、例えば当該移動距離が0mから40mに増加することに応じて調整係数が1.0から0.0に減少するように設定される。なお、上記経過時間による調整係数の減少と移動距離による調整係数の減少とが同時に生じた場合、調整係数の数値が小さい方を採用してもよいし、調整係数の数値が大きい方を採用してもよいし、双方の数値を乗算した結果を調整係数として採用してもよい。
また、対戦プレイモードによるゲームにおいて、プレイヤオブジェクトPOと敵オブジェクトEOとの戦闘状態が解消された場合、調整係数を1.0に戻してもよい。例えば、仮想空間内において敵オブジェクトEOが全滅した場合、プレイヤオブジェクトPOが敵オブジェクトEOと戦闘中ではないと判定され、調整係数が1.0に設定されてもよい。この場合、調整係数は、当該戦闘状態が解消された時点からの経過時間に応じて0.0から1.0にフェードイン(漸増的に増大)される。これによって、対戦プレイモードによるゲームにおいて戦闘中でなくなった場合、上記演出用振動が通常の強さでユーザに与えられる。
図15は、協力プレイモードにおける調整係数の設定例を示す図である。協力プレイモードによるゲームでは、プレイヤオブジェクトPOとゲームシステム1と通信可能な他のゲームシステム1のユーザの操作によってその動作が制御される他プレイヤオブジェクトとが協力して、CPU(例えば、プロセッサ81)によってその動作が自動制御される敵オブジェクトEOと戦闘する。
協力プレイモードの場合、プレイヤオブジェクトPOが敵オブジェクトEOと戦闘中であるか否かの判定は、イベント開始タイミングおよび経過時間によって行われる。例えば、協力プレイモードによるゲーム開始直後は、プレイヤオブジェクトPOが敵オブジェクトEOと戦闘中ではないと判定され、調整係数が1.0に設定される。これによって、協力プレイモードによるゲーム開始直後は、上記演出用振動が通常の強さでユーザに与えられる。そして、協力プレイモードによるゲーム開始後に仮想空間内に敵オブジェクトEOを出現させるイベントが行われ、当該イベントが発生した時点でプレイヤオブジェクトPOが敵オブジェクトEOと戦闘中になったと判定される。この場合、調整係数は、当該イベント発生時点からの経過時間に応じて1.0から0.0にフェードアウト(漸減的に減少)され、例えば当該イベント発生時点からゲーム処理単位である300フレーム(例えば、5秒間)かけて調整係数が1.0から0.0にフェードアウトされる。また、上記イベントが終了した時点でプレイヤオブジェクトPOが敵オブジェクトEOと戦闘中ではないと判定される。この場合、調整係数は、当該イベント終了時点からの経過時間に応じて0.0から1.0にフェードインフェードイン(漸増的に増大)され、例えば当該イベント終了時点からゲーム処理単位である300フレーム(例えば、5秒間)かけて調整係数が0.0から1.0にフェードインされる。これによって、協力プレイモードによるゲームにおいて戦闘中でなくなった場合、上記演出用振動が通常の強さでユーザに与えられる。
なお、上記調整係数は、経過時間や距離に応じて線形に減少させてもよいし、非線形に減少させてもよい。また、上記調整係数は、1.0から0.0に即時に変化させてもよい。この場合、仮想空間においてプレイヤオブジェクトPOが敵オブジェクトEOに発見された時点やレイヤオブジェクトPOと敵オブジェクトEOとの距離が所定の距離に接近した時点で、調整係数が1.0から0.0に即時に変化する。また、上記調整係数を漸減的に減少させるまたは即時に変化させる際の調整係数の最小値は、0.0より大きな値でもよく、1.0未満の値であればどのような値が最小値となってもよい。
上述したように、左コントローラ3は、振動子107を有しており、右コントローラ4は、振動子117を有している。本体装置2のプロセッサ81は、実行しているゲーム状況に応じて振動データを左コントローラ3および/または右コントローラ4に送信することによって、当該振動データに応じた振幅および周波数で振動子107または振動子117を振動させることができる。そして、プロセッサ81は、ゲームモードやプレイヤオブジェクトPOの状況に応じて適切な振動強度に調整した振動データを左コントローラ3および/または右コントローラ4に送信している。本実施例では、プレイヤオブジェクトPOの複数の状態それぞれに複数種類の振動をそれぞれ対応付けて振動波形(振動信号)を生成し、現時点のプレイヤオブジェクトPOの状態に応じた振動波形を示す振動データを左コントローラ3および/または右コントローラ4に送信する。ここで、複数の振動が同時に生じる場合、当該振動それぞれの振動波形を合成した波形を示す振動波形が生成される。例えば、振動波形を合成してコントローラを振動させるための振動データを生成する方式としては、選択方式および加算方式がある。
以下、図16〜図18を参照して、振動波形を合成して振動データを生成する方式について説明する。なお、図16は、選択方式によって振動データを生成する方法の一例を説明するための図である。図17は、高周波側および低周波側をまとめて判定する場合に用いられる合成モジュールの一例を示す図である。図18は、加算方式によって振動データを生成する方法の一例を説明するための図である。
以下の例では、振動波形Aによる振動と振動波形Bによる振動とが同時に生じる場合を想定し、上述した調整係数による振動強さの調整が上記演出用振動に対して行われる場合、当該演出用振動に対しては当該調整が行われた後の振動波形が用いられることとする。例えば、上記振動強さの調整では、調整される演出用振動の振動波形の振幅に調整係数を乗算することによって行われる。なお、調整される演出用振動の振動波形が高周波帯の振動波形と低周波帯の振動波形との組み合わせによって示される場合、高周波側および低周波側の振幅をそれぞれ調整してもよい。
選択方式によって振動データを生成する場合、合成する振動波形Aを示す振動データおよび振動波形Bを示す振動データについて、所定時間毎に何れか1つを選択する。具体的には、振動波形Aの振動データおよび振動波形Bの振動データが入力された場合、振動波形Aの振幅と振動波形Bの振幅とに基づいて、所定時間毎に振幅の大きい方の振動波形を示す振動データを選択する。このように選択方式によって振動データを選択することによって、ユーザが顕著に知覚可能な振動を優先して生じさせることが可能となる。
図16は、振動波形Aと振動波形Bとが入力された場合の一例を示している。振動波形Aは、相対的に弱く継続的な振動を示し、振動波形Bは、相対的に強く短い振動を示している。例えば、選択方式によって振動データを生成する場合、所定期間毎(例えば、5msec〜数10msec)にいずれの振動波形の振幅が大きいのかを判定し、より振幅の大きな振動波形を示す振動データを選択して出力する。したがって、選択方式では、所定期間毎に選択された振動波形によって合成振動波形が生成され、当該合成振動波形を示す振動データが出力される。
なお、上記選択方式において振動データを選択する際、当該振動データが示す振動波形の周波数も考慮して選択する振動データを判定してもよい。例えば、入力された振動データが高周波帯の振動波形と低周波帯の振動波形との組み合わせによって示される場合、高周波側および低周波側をそれぞれ独立して判定する方法と高周波側および低周波側の一方に重み付けをして判断する方法とが考えられる。前者の場合、振動波形Aと振動波形Bとが入力された場合、高周波側の振動波形Aの振幅と高周波側の振動波形Bの振幅とに基づいて、所定時間毎に振幅の大きい方の振動波形を示す振動データを、高周波側の振動データとして選択する。また、振動波形Aと振動波形Bとが入力された場合、低周波側の振動波形Aの振幅と低周波側の振動波形Bの振幅とに基づいて、所定時間毎に振幅の大きい方の振動波形を示す振動データを、低周波側の振動データとして選択する。後者の場合、各周波数帯の振幅に重み付けをした上で所定期間毎に最も大きな振幅を示す振動波形を選出し、入力した振動波形Aおよび振動波形Bのうち、当該選出された振動波形を含む方の振動波形を示す振動データを選択する。
また、入力された振動データが高周波帯の振動波形と低周波帯の振動波形との組み合わせによって示される場合、高周波側および低周波側をまとめて判定することが考えられる。図17において、上記合成モジュールは、振動波形Aの低周波側の振幅α1Lおよび高周波側の振幅α1Hを合成した振幅と、振動波形Bの低周波側の振幅α2Lおよび高周波側の振幅α2Hを合成した振幅との比較(すなわち、関数max(α1L+α1H,α2L+α2H))が行なわれ、当該比較においてより大きな振幅を示す振動波形が合成振動波形として出力する。すなわち、上記合成モジュールは、振動波形Aに含まれる第1の振幅(α1L)および第2の振幅(α1H)から算出される値(α1L+α1H)と、振動波形Bに含まれる第1の振幅(α2L)および第2の振幅(α2H)から算出される値(α2L+α2H)とに基づいて、いずれかの振動波形を選択的に出力する。
このように、振動波形Aの高周波帯の振動波形と低周波帯の振動波形との振動データおよび振動波形Bの高周波帯の振動波形と低周波帯の振動波形との振動データが入力された場合に、振動波形Aの振動データが示す振幅の合計と振動波形Bの振動データが示す振幅の合計とに基づいて、所定期間毎に、振幅の合計が大きい方の複数の振動データが選択される。したがって、振動波形Aおよび振動波形Bのうち、全体として振幅がより大きなものが選択されるので、入力される振動波形全体の特徴を維持したまま、ユーザに対して振動刺激を与えることができる。
また、図17に示す選択方式においては、入力された振動パターンの振幅に対して周波数による重み付けをして評価するようにしてもよい。一般的に、人間は低周波側の振動に敏感であるので、例えば、高周波側の振幅より大きな重み係数(例えば、b>1)を低周波側の振幅に乗じるようにしてもよい。この場合。関数max(bXα1L+α1H,bXα2L+α2H)を利用して、いずれの振幅が大きいのかが判断されてもよい。
また、振動波形Aの低周波側の周波数f1Lおよび振動波形Bの低周波側の周波数f2Lの異同、および、振動波形Aの高周波側の周波数f1Hおよび振動波形Bの高周波側の周波数f2Hの異同については考慮せず、各振動波形の振幅のみを比較対象とするように構成してもよい。
また、振動波形Aおよび振動波形Bに含まれる周波数成分から、各振幅の大きさに基づいて、所定数の周波数成分を選択するようにしてもよい。すなわち、振動波形Aの低周波側の振幅α1L、振動波形Aの高周波側の振幅α1H、振動波形Bの低周波側の振幅α2L、および振動波形Bの高周波側の振幅α2Hのうち大きなものから上位2つの周波数成分を抽出して、合成振動波形として出力するようにしてもよい。
また、上記選択方式において振動データを選択する際、当該振動データが示す振動波形の振幅とは異なるパラメータに基づいて選択する振動データを判定してもよい。例えば、振動データが示す振動波形の周波数に基づいて、所定時間毎に周波数の小さい方の振動波形を示す振動データを選択してもよい。
図18に示すように、加算方式によって振動データを生成する場合、振動波形Aの振動データおよび振動波形Bの振動データについて、所定時間毎に振動波形を重ね合わせる。具体的には、振動波形Aの振動データおよび振動波形Bの振動データが入力された場合、振動波形Aと振動波形Bとを所定時間毎に重ね合わせて合成振動波形を生成して、当該合成振動波形を示す振動データを生成する。具体的には、所定周期毎に入力された振動波形の振幅を加算して合成振動波形を生成することが考えられ、この場合、振動波形Aと振動波形Bとが時間軸上で結合したものとなる。このように加算方式によって振動データを生成することによって、例えば図18に示すような同じような種類の振動が複数重なり合うことが頻繁に生じ得る状況において、当該振動を欠落させることなく互いに重なり合った振動をユーザに対して知覚させることができる。
ここで、上記加算方式によって振動データを合成する場合、合成振動波形の周波数は、振動波形Aの周波数と振動波形Bの周波数とに基づいて算出される。第1の例として、入力した振動波形Aおよび振動波形Bのうち、振幅が最も大きい振動波形の周波数を採用する。第2の例として、入力した振動波形Aの周波数と振動波形Bの周波数との平均値を採用する。第3の例として、入力した振動波形Aの周波数と振動波形Bの周波数とにそれぞれの振幅による重み付け(例えば、振幅に応じた重み付け加重平均)をした上で、上記第1の例または上記第2の例による周波数の算出を行う。
なお、上記加算方式によって振動データを合成する場合、所定周期毎に入力された振動波形の振幅を加算して合成振動波形を生成することが考えられるが、当該振動波形の振幅を平均して合成振動波形を生成してもよい。また、振動波形の振幅を平均して合成振動波形を生成する場合、各振動波形の周波数によって重み付けをした振幅を平均してもよい。
このように、複数の振動が同時に生じる場合、生成された1つの合成振動波形に基づいた振動が生成される。したがって、ゲームシステム1を操作するユーザは、複数の振動を知覚することができ、複数の振動が同時に生じた場合であっても興趣性が損なわれることを防止することができる。
次に、図19〜図24を参照して、本実施形態においてゲームシステム1で実行される具体的な処理の一例について説明する。図19は、本実施形態において本体装置2のDRAM85に設定されるデータ領域の一例を示す図である。なお、DRAM85には、図19に示すデータの他、他の処理で用いられるデータも記憶されるが、詳細な説明を省略する。
DRAM85のプログラム記憶領域には、ゲームシステム1で実行される各種プログラムPaが記憶される。本実施形態においては、各種プログラムPaは、他のゲームシステムと通信するための通信プログラム、左コントローラ3および/または右コントローラ4から取得したデータに基づいた情報処理(例えば、ゲーム処理)を行うためのアプリケーションプログラム、左コントローラ3および/または右コントローラ4を振動させるための振動制御プログラム等が記憶される。なお、各種プログラムPaは、フラッシュメモリ84に予め記憶されていてもよいし、ゲームシステム1に着脱可能な記憶媒体(例えば、スロット23に装着された記憶媒体)から取得されてDRAM85に記憶されてもよいし、インターネット等のネットワークを介して他の装置から取得されてDRAM85に記憶されてもよい。プロセッサ81は、DRAM85に記憶された各種プログラムPaを実行する。
また、DRAM85のデータ記憶領域には、ゲームシステム1において実行される通信処理や情報処理等の処理において用いられる各種のデータが記憶される。本実施形態においては、DRAM85には、操作データDa、通信データDb、ゲームモードデータDc、第1調整係数データDd、第2調整係数データDe、振動データDf、調整振動データDg、合成振動データDh、プレイヤオブジェクト位置データDi、敵オブジェクト位置データDj、協力オブジェクト位置データDk、陣地データDm、および画像データDn等が記憶される。
操作データDaは、左コントローラ3および/または右コントローラ4からそれぞれ適宜取得した操作データである。上述したように、左コントローラ3および/または右コントローラ4からそれぞれ取得される操作データには、各入力部(具体的には、各ボタン、アナログスティック、各センサ)からの入力に関する情報(具体的には、操作に関する情報、または、センサによる検出結果)が含まれている。本実施形態では、本体装置2に装着された左コントローラ3および/または右コントローラ4からそれぞれ所定周期で操作データが取得されており、当該取得した操作データを用いて操作データDaが適宜更新される。なお、操作データDaの更新周期は、後述するゲームシステム1で実行される処理の周期である1フレーム毎に更新されてもよいし、操作データが取得される周期毎に更新されてもよい。
通信データDbは、無線通信を介して、他のゲームシステムから受信したデータであり、当該他のゲームシステムを用いて操作された他のユーザの操作データや、当該他のゲームシステムにおいて制御されている他のプレイヤオブジェクトの位置や動作等に関するデータで構成される。
ゲームモードデータDcは、ユーザによって選択されて設定されたゲームモード(例えば、シングルプレイゲームモード、対戦プレイゲームモード、または協力プレイゲームモード)を示すデータである。
第1調整係数データDdは、上記演出用振動の強さを調整するための第1調整係数を示すデータである。第2調整係数データDeは、上記演出用振動の強さを調整するための第2調整係数を示すデータである。
振動データDfは、左コントローラ3および右コントローラ4をそれぞれ振動させるための振動を示すデータである。調整振動データDgは、左コントローラ3および/または右コントローラ4を振動させるために振幅調整された振動を示すデータである。合成振動データDhは、複数の振動を合成した振動波形を示す振動データである。
プレイヤオブジェクト位置データDiは、プレイヤオブジェクトPOや協力プレイにおいて他のユーザが操作する他のプレイヤオブジェクトの仮想空間における位置および方向(移動方向)をそれぞれ示すデータである。敵オブジェクト位置データDjは、敵オブジェクトEOの仮想空間における位置および方向を示すデータである。協力オブジェクト位置データDkは、協力プレイゲームモードにおいて登場する上記他のプレイヤオブジェクト(協力オブジェクト)の仮想空間における位置および方向(移動方向)をそれぞれ示すデータである。なお、プレイヤオブジェクト位置データDi、敵オブジェクト位置データDj、および協力オブジェクト位置データDkには、プレイヤオブジェクトや敵オブジェクトがそれぞれ発射した武器(弾等)の仮想空間における位置および方向(移動方向)を示すデータを含んでいる。
陣地データDmは、仮想空間において設定されている「味方領域」、「敵領域」、および「中立領域」の位置をそれぞれ示すデータである。
画像データDnは、ゲームの際に本体装置2のディスプレイ12に画像(例えば、仮想オブジェクトの画像、フィールド画像、背景画像)を表示するためのデータである。
次に、図20〜図24を参照して、本実施形態におけるゲーム処理の詳細な一例を説明する。図20は、ゲームシステム1で実行されるゲーム処理の一例を示すフローチャートである。図21は、図20におけるステップS146において行われるシングルプレイゲーム処理の詳細の一例を示すサブルーチンである。図22は、図21におけるステップS165において行われるシングルプレイ係数算出処理の詳細の一例を示すサブルーチンである。図23は、図20におけるステップS149において行われる対戦プレイゲーム処理の詳細の一例を示すサブルーチンである。図24は、図20におけるステップS150において行われる協力プレイゲーム処理の詳細の一例を示すサブルーチンである。本実施形態においては、図20〜図24に示す一連の処理は、プロセッサ81が各種プログラムPaに含まれる通信プログラムや所定のアプリケーションプログラム(ゲームプログラム)を実行することによって行われる。また、図20〜図24に示すゲーム処理が開始されるタイミングは任意である。
なお、図20〜図24に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて(または代えて)別の処理が実行されてもよい。また、本実施形態では、上記フローチャートの各ステップの処理をプロセッサ81が実行するものとして説明するが、上記フローチャートにおける一部のステップの処理を、プロセッサ81以外のプロセッサや専用回路が実行するようにしてもよい。また、本体装置2において実行される処理の一部は、本体装置2と通信可能な他の情報処理装置(例えば、本体装置2とネットワークを介して通信可能なサーバ)によって実行されてもよい。すなわち、図20〜図24に示す各処理は、本体装置2を含む複数の情報処理装置が協働することによって実行されてもよい。
図20において、プロセッサ81は、左コントローラ3および/または右コントローラ4から操作データを取得して操作データDaを更新し(ステップS141)、次のステップに処理を進める。
次に、プロセッサ81は、ユーザによってゲームモードが選択されたか否かを判定する(ステップS142)。そして、プロセッサ81は、ゲームモードが選択された場合、ステップS143に処理を進める。一方、プロセッサ81は、ゲームモードが選択されていない場合、上記ステップS141の処理を繰り返してユーザによってゲームモードが選択されるのを待つ。一例として、プロセッサ81は、本体装置2のディスプレイ12にゲームモードの選択を促す選択肢を表示し、上記ステップS141において取得した操作データがいずれかの選択肢を選択する操作を示す場合、ゲームモードが選択されたと判定する。例えば、プロセッサ81は、本体装置2のディスプレイ12に、シングルプレイゲームモード、対戦プレイゲームモード、および協力プレイゲームモードをそれぞれ選択する選択肢を表示して、何れかの選択肢の選択をユーザに促す。
ステップS143において、プロセッサ81は、ゲームモードを設定し、次のステップに処理を進める。例えば、プロセッサ81は、上記ステップS142において選択されたゲームモードを示すデータを用いて、ゲームモードデータDcを更新する。なお、対戦プレイゲームモードまたは協力プレイゲームモードが設定された場合、プロセッサ81は、当該ゲームに参加する他のユーザが操作するゲームシステムから当該ゲームに関するデータ(例えば、他のユーザが操作するプレイヤオブジェクトの種類、初期位置等を示すデータを受信し、通信データDbを更新する。
次に、プロセッサ81は、選択されたゲームモードに応じてゲーム処理における初期設定を行い(ステップS144)、次のステップに処理を進める。例えば、上記初期設定では、プロセッサ81は、以下に説明する処理を行うためのパラメータを初期化し、例えば第1調整係数および第2調整係数をそれぞれ1.0に設定して、第1調整係数データDdおよび第2調整係数データDeをそれぞれ更新する。また、上記初期設定では、プロセッサ81は、ゲームモードに応じてゲームプレイを行うためのゲームフィールドを全て「中立領域」として設定し、当該ゲームフィールド上のプレイヤオブジェクトPOの初期位置を設定してプレイヤオブジェクト位置データDiおよび陣地データDmをそれぞれ更新する。また、プロセッサ81は、シングルプレイゲームモードが選択されている場合、上記ゲームフィールド上の敵オブジェクトEOの初期位置を設定して敵オブジェクト位置データDjを更新する。また、プロセッサ81は、対戦プレイゲームモードが選択されている場合、通信データDbを参照して、当該ゲームに参加する他のユーザが操作するゲームシステムから受信したデータに基づいて、上記ゲームフィールド上の敵オブジェクトEOの初期位置を設定して敵オブジェクト位置データDjを更新する。また、プロセッサ81は、協力プレイゲームモードが選択されている場合、通信データDbを参照して、当該ゲームに参加する他のユーザが操作するゲームシステムから受信したデータに基づいて、上記ゲームフィールド上の他のプレイヤオブジェクト(協力オブジェクト)の初期位置を設定して協力オブジェクト位置データDkを更新する。
次に、プロセッサ81は、シングルプレイゲームモードが選択されているか否かを判定する(ステップS145)。そして、プロセッサ81は、シングルプレイゲームモードが選択されている場合、ステップS146に処理を進める。一方、プロセッサ81は、シングルプレイゲームモードが選択されていない場合、ステップS147に処理を進める。
ステップS146において、プロセッサ81は、シングルプレイゲームモードによるゲーム処理を行い、ステップS151に処理を進める。以下、図21を参照して、シングルプレイゲームモードによるゲーム処理について説明する。
図21において、プロセッサ81は、左コントローラ3および右コントローラ4から操作データを取得して操作データDaを更新し(ステップS161)、次のステップに処理を進める。
次に、プロセッサ81は、現時点がゲーム中であるか否かを判定する(ステップS162)。そして、プロセッサ81は、現時点がゲーム開始直後を含むゲーム中である場合、ステップS163に処理を進める。一方、プロセッサ81は、現時点がゲーム中ではない場合、当該サブルーチンによる処理を終了する。
ステップS163において、プロセッサ81は、プレイヤオブジェクト動作処理を行い、次のステップに処理を進める。例えば、プロセッサ81は、上記ステップS161において取得した操作データに基づいて、プレイヤオブジェクトPOに対する指示内容を設定し、当該指示内容に応じてプレイヤオブジェクトPOを動作させて、プレイヤオブジェクト位置データDiを更新する。なお、プロセッサ81は、プレイヤオブジェクトPOが「味方領域」を増やす動作を行った場合、当該動作に基づいて「味方領域」を拡大させて陣地データDmを更新する。
次に、プロセッサ81は、敵オブジェクト動作処理を行い(ステップS164)、次のステップに処理を進める。例えば、プロセッサ81は、所定のアルゴリズムに基づいて、敵オブジェクトEOを自動制御により動作させて、敵オブジェクト位置データDjを更新する。なお、プロセッサ81は、敵オブジェクトEOが「敵領域」を増やす動作を行った場合、当該動作に基づいて「敵領域」を拡大させて陣地データDmを更新する。
次に、プロセッサ81は、シングルプレイ係数算出処理を行い(ステップS165)、ステップS166に処理を進める。以下、図22を参照して、シングルプレイ係数算出処理について説明する。
図22において、プロセッサ81は、上記ゲームフィールド上において、敵オブジェクトEOがプレイヤオブジェクトPOを発見したか否かを判定する(ステップS171)。例えば、プロセッサ81は、敵オブジェクトEO毎に設定されている視界範囲にプレイヤオブジェクトPOが侵入してプレイヤオブジェクトPOの少なくとも一部が敵オブジェクトEOに見られている場合や、当該視界範囲内にプレイヤオブジェクトPOが存在する痕跡を敵オブジェクトEOに見られている場合、プレイヤオブジェクトPOが敵オブジェクトEOに発見されたと判定する。そして、プロセッサ81は、プレイヤオブジェクトPOが敵オブジェクトEOに発見された場合、ステップS172に処理を進める。一方、プロセッサ81は、プレイヤオブジェクトPOが敵オブジェクトEOに発見されていない場合、ステップS173に処理を進める。
ここで、上記ステップS171の判定処理では、プレイヤオブジェクトPOが敵オブジェクトEOに発見されたか否かを判定している。これは、敵オブジェクトEOがプレイヤオブジェクトPOを発見することによってプレイヤオブジェクトPOを攻撃することが可能になり、当該敵オブジェクトEOは、プレイヤオブジェクトPOを攻撃する準備を開始することができる。つまり、敵オブジェクトEOの動作を制御しているプロセッサ81は、敵オブジェクトEOがプレイヤオブジェクトPOを発見することによって、プレイヤオブジェクトPOを攻撃するための処理を開始することになり、上記ステップS171の判定処理では、当該処理が行われているか否かによって戦闘中であるか否かを判定していることになる。
ステップS172において、プロセッサ81は、プレイヤオブジェクトPO発見後の経過時間に応じて、第1調整係数を1.0から0.0にフェードアウトする処理を行い、ステップS173に処理を進める。例えば、プロセッサ81は、第1調整係数データDdが示す第1調整係数を用いて、プレイヤオブジェクトPO発見時点からゲーム処理単位である60フレーム(例えば、1秒間)かけて1.0から0.0にフェードアウトするように第1調整係数を変更し、当該変更後の第1調整係数を用いて第1調整係数データDdを更新する。
ステップS173において、プロセッサ81は、上記ゲームフィールド上において、プレイヤオブジェクトPOと敵オブジェクトEOとの距離を算出し、次のステップに処理を進める。例えば、プロセッサ81は、プレイヤオブジェクト位置データDiと敵オブジェクト位置データDjとを参照して、ゲームフィールド上におけるプレイヤオブジェクトPOと敵オブジェクトEOとの距離を算出する。
次に、プロセッサ81は、上記ステップS173で算出された距離が所定の閾値以下か否かを判定する(ステップS174)。例えば、プロセッサ81は、上記ゲームフィールド上において、プレイヤオブジェクトPOと敵オブジェクトEOとの距離が所定の距離(例えば、30m)以内である場合、上記ステップS174において肯定判定する。そして、プロセッサ81は、上記距離が所定の閾値以下である場合、ステップS175に処理を進める。一方、プロセッサ81は、上記距離が所定の閾値より長い場合、ステップS178に処理を進める。上記ステップS174の判定処理では、プレイヤオブジェクトPOと敵オブジェクトEOとの距離が所定の距離以内か否かによって戦闘中であるか否かを判定していることになる。
ステップS175において、プロセッサ81は、プレイヤオブジェクトPOと敵オブジェクトEOとの距離に応じて第2調整係数を算出する処理を行い、ステップS178に処理を進める。例えば、プロセッサ81は、第2調整係数データDeを参照して、上記距離が30mから10mに近づくことに応じて1.0から0.0に減少するように第2調整係数を算出し、算出後の第2調整係数を用いて第2調整係数データDeを更新する。
ステップS178において、プロセッサ81は、プレイヤオブジェクトPOと戦闘中と判定されていた敵オブジェクトEOが消滅したか否かを判定する。例えば、プロセッサ81は、プレイヤオブジェクトPOと戦闘中と判定されていた敵オブジェクトEOが倒された場合(典型的には、上記ゲームフィールド上の敵オブジェクトEOが全滅した場合)、上記ステップS178において肯定判定する。そして、プロセッサ81は、プレイヤオブジェクトPOと戦闘中と判定されていた敵オブジェクトEOが消滅した場合、ステップS179に処理を進める。一方、プロセッサ81は、プレイヤオブジェクトPOと戦闘中と判定されていた敵オブジェクトEOが残っている場合や戦闘中と判定されていない場合、当該サブルーチンによる処理を終了する。
ステップS179において、プロセッサ81は、敵オブジェクトEO消滅後の経過時間に応じて、第1調整係数を0.0から1.0にフェードインする処理を行い、次のステップに処理を進める。例えば、プロセッサ81は、第1調整係数データDdが示す第1調整係数を用いて、敵オブジェクトEO消滅時点からゲーム処理単位である180フレーム(例えば、3秒間)かけて0.0から1.0にフェードインするように第1調整係数を変更し、当該変更後の第1調整係数を用いて第1調整係数データDdを更新する。
次に、プロセッサ81は、第2調整係数を1.0に初期化し(ステップS180)、当該サブルーチンによる処理を終了する。例えば、プロセッサ81は、第2調整係数データDeが示す値を1.0に更新する。
図21に戻り、上記ステップS165におけるシングルプレイ係数算出処理の後、プロセッサ81は、左コントローラ3および右コントローラ4をそれぞれ振動させるための振動データを生成する処理を行い(ステップS166)、次のステップに処理を進める。例えば、プロセッサ81は、仮想空間内におけるプレイヤオブジェクトPOの状態に応じた振動波形を生成し、当該振動波形に基づいて振動データを生成して振動データDfを更新する。一例として、プロセッサ81は、上述したようにプレイヤオブジェクトPOのゲームフィールドにおける複数の状態それぞれに複数種類の振動がそれぞれ対応付けられており、現時点のプレイヤオブジェクトPOの状態に応じた種類の振動を選択する。ここで、プレイヤオブジェクトPOの状態によっては複数の振動が設定され、この場合、プロセッサ81は、それぞれの振動を示す振動波形の振動データを用いて振動データDfを更新する。
次に、プロセッサ81は、第1調整係数が第2調整係数より大きいか否かを判定する(ステップS167)。例えば、プロセッサ81は、第1調整係数データDdおよび第2調整係数データDeを参照して、第1調整係数の値と第2調整係数の値とを比較する。そして、プロセッサ81は、第1調整係数が第2調整係数以下である場合、ステップS168に処理を進める。一方、プロセッサ81は、第1調整係数が第2調整係数より大きい場合、ステップS169に処理を進める。
ステップS168において、プロセッサ81は、第1調整係数を用いて演出用振動に対する振幅調整処理を行い、振動波形を合成する処理を行って、ステップS170に処理を進める。
例えば、プロセッサ81は、ゲームモードデータDcが示すゲームモード(ここでは、シングルプレイゲームモード)に基づいて、上記ステップS166において生成された振動データのうち、上記演出用振動に属する振動データの振幅を調整する。一例として、プロセッサ81は、振動データDfが示す上記演出用振動の振動波形が示す振幅値に第1調整係数データDdが示す第1調整係数を乗算することによって調整後の振幅値を算出し、当該調整後の振幅値を用いて上記演出用振動の振動波形を調整して調整振動データDgを更新する。また、プロセッサ81は、振動波形を調整した場合、当該調整した振動データを振動データDfから削除する。なお、第1調整係数データDdが示す第1調整係数が1.0の場合、当該振幅調整処理を行わなくてもかまわない。また、第1調整係数データDdが示す第1調整係数が0.0の場合、当該振幅調整処理を行わずに、振動データDfのうち、上記演出用振動に属する振動データを削除するだけの処理を実行してもよい。
また、プロセッサ81は、上記振幅調整処理の対象外となった振動データ(すなわち、上記演出用振動とは異なる種類の振動データであって、例えばゲーム性に関わる振動データ)および上記振幅調整処理後の振動データ(すなわち、上記演出用振動の振動データ)を用いて、振動波形を合成する処理を行う。例えば、プロセッサ81は、上記ステップS166で生成された振動データDfおよび上記振幅調整処理で調整された調整振動データDgに基づいて、左コントローラ3および/または右コントローラ4を振動させるための合成振動データを生成し、当該データを用いて合成振動データDhを更新する。具体的には、プロセッサ81は、振動データDfが示す振動波形それぞれと調整振動データDgが示す振動波形それぞれとを、上述した選択方式や加算方式等によって合成し、当該合成した振動波形を用いて合成振動データDhを更新する。なお、上記合成振動データDhには、左コントローラ3用の振動データと右コントローラ4用の振動データとをそれぞれ別に格納されてもよい。この場合、上記振動波形を合成する処理においても、左コントローラ3用の振動データを生成する処理と右コントローラ4用の振動データを生成する処理とを、それぞれ別に実行してもよい。
一方、ステップS169において、プロセッサ81は、第2調整係数を用いて演出用振動に対する振幅調整処理を行い、振動波形を合成する処理を行って、ステップS170に処理を進める。なお、上記ステップS169における振動調整処理および振動波形を合成する処理は、第1調整係数に代えて第2調整係数を用いることを除いて、上述したステップS168と同様であるため、ここでは詳細な説明を省略する。
ステップS170において、プロセッサ81は、振動データを送信する周期毎に当該周期に対応する振動データを左コントローラ3および右コントローラ4へ出力する処理を行い、当該サブルーチンによる処理を終了する。例えば、プロセッサ81は、合成振動データDhを参照して、上記送信周期に対応する振動長さ分の振動データを左コントローラ3および右コントローラ4へ出力する。なお、合成振動データDhに左コントローラ3用の振動データと右コントローラ4用の振動データとが別に格納されている場合、プロセッサ81は、上記送信周期に対応する振動長さ分の左コントローラ3用の振動データを左コントローラ3へ出力し、上記送信周期に対応する振動長さ分の右コントローラ4用の振動データを右コントローラ4へ出力する。このように各コントローラに振動データを出力されることによって、当該振動データを取得した左コントローラ3および右コントローラ4は、それぞれの振動データに応じた振動波形で振動する。
図20に戻り、上記ステップS145においてシングルプレイゲームモードが選択されていないと判定された場合、プロセッサ81は、通信処理を行い(ステップS147)、次のステップに処理を進める。例えば、プロセッサ81は、ゲームに参加する他のユーザが操作するゲームシステムからデータを受信する処理を行い、当該受信したデータを用いて通信データDbを更新する。
次に、プロセッサ81は、対戦プレイゲームモードが選択されているか否かを判定する(ステップS148)。そして、プロセッサ81は、対戦プレイゲームモードが選択されている場合、ステップS149に処理を進める。一方、プロセッサ81は、対戦プレイゲームモードが選択されていない場合、ステップS150に処理を進める。
ステップS149において、プロセッサ81は、対戦プレイゲームモードによるゲーム処理を行い、ステップS151に処理を進める。以下、図23を参照して、対戦プレイゲームモードによるゲーム処理について説明する。
図23において、プロセッサ81は、左コントローラ3および右コントローラ4から操作データを取得して操作データDaを更新し(ステップS191)、次のステップに処理を進める。
次に、プロセッサ81は、現時点がゲーム中であるか否かを判定する(ステップS192)。そして、プロセッサ81は、現時点がゲーム開始直後を含むゲーム中である場合、ステップS193に処理を進める。一方、プロセッサ81は、現時点がゲーム中ではない場合、当該サブルーチンによる処理を終了する。
ステップS193において、プロセッサ81は、プレイヤオブジェクト動作処理を行い、次のステップに処理を進める。例えば、プロセッサ81は、上記ステップS191において取得した操作データに基づいて、プレイヤオブジェクトPOに対する指示内容を設定し、当該指示内容に応じてプレイヤオブジェクトPOを動作させて、プレイヤオブジェクト位置データDiを更新する。なお、プロセッサ81は、プレイヤオブジェクトPOが「味方領域」を増やす動作を行った場合、当該動作に基づいて「味方領域」を拡大させて陣地データDmを更新する。
次に、プロセッサ81は、敵オブジェクト動作処理を行い(ステップS164)、次のステップに処理を進める。例えば、プロセッサ81は、通信データDbを参照して、ゲームに参加する他のユーザが操作するゲームシステムから送信されたデータを取得し、当該他のユーザが操作する敵オブジェクトEOを当該送信されたデータに基づいて動作させて、敵オブジェクト位置データDjを更新する。なお、プロセッサ81は、敵オブジェクトEOが「敵領域」を増やす動作を行った場合、当該動作に基づいて「敵領域」を拡大させて陣地データDmを更新する。
次に、プロセッサ81は、ゲーム開始時点から所定時間が経過したか否かを判定する(ステップS195)。例えば、プロセッサ81は、ゲーム開始時点から60フレーム(1秒間)が経過している場合、ゲーム開始時点から所定時間が経過したと判定する。そして、プロセッサ81は、ゲーム開始時点から所定時間が経過した場合、ステップS196に処理を進める。一方、プロセッサ81は、ゲーム開始時点から所定時間が経過していない場合、ステップS197に処理を進める。
ここで、上記ステップS195の判定処理では、他のユーザが操作する敵オブジェクトEOと対戦するゲームが開始されてから所定時間が経過したか否かを判定している。これは、ゲーム開始時点でプレイヤオブジェクトPOと敵オブジェクトEOとが上記ゲームフィールド上で離れて配置されて対戦できない状態であっても、当該ゲームか開始された後に所定時間が経過することによって、戦闘可能状態になり得ることを想定しており、上記ステップS195の判定処理では、所定時間が経過したか否かによって戦闘中であるか否かを判定していることになる。
ステップS196において、プロセッサ81は、ゲーム開始後の経過時間に応じて、第1調整係数を1.0から0.0にフェードアウトする処理を行い、ステップS197に処理を進める。例えば、プロセッサ81は、第1調整係数データDdが示す第1調整係数を用いて、上記所定時間経過時点からの経過時間に応じて1.0から0.0にフェードアウト(漸減的に減少)するように第1調整係数を変更し、当該変更後の第1調整係数を用いて第1調整係数データDdを更新する。一例として、プロセッサ81は、上記所定時間経過時点から240フレーム(例えば、4秒間)かけて調整係数が1.0から0.0にフェードアウトするように第1調整係数を変更する。
ステップS197において、プロセッサ81は、プレイヤオブジェクトPOが敵陣に向かって移動した距離を算出し、次のステップに処理を進める。例えば、プロセッサ81は、プロセッサ81は、上記ゲームフィールド上において、ゲーム開始時点の配置位置から敵オブジェクトEOが配置されている敵陣に向かってプレイヤオブジェクトPOが移動した距離を算出し、次のステップに処理を進める。
次に、プロセッサ81は、上記ステップS197において算出された移動距離に応じて第2調整係数を算出する処理を行い(ステップS198)、次のステップに処理を進める。例えば、プロセッサ81は、第2調整係数データDeを参照して、上記移動距離が0mから40mに増加することに応じて調整係数が1.0から0.0に減少するように第2調整係数を算出し、算出後の第2調整係数を用いて第2調整係数データDeを更新する。なお、上記ステップS197およびステップS198の処理では、プレイヤオブジェクトPOが敵オブジェクトEOの敵陣に向かって近づいた移動距離に応じて第2調整係数を設定している。これは、ゲーム開始時点でプレイヤオブジェクトPOと敵オブジェクトEOとが上記ゲームフィールド上で離れて配置されて対戦できない状態であっても、プレイヤオブジェクトPOが敵オブジェクトEOの敵陣に近づくことによって、戦闘可能状態になり得ることを想定しており、上記ステップS197およびステップS198の処理では、プレイヤオブジェクトPOの移動距離が長くなる程、戦闘中となりやすいことを利用して第2調整係数を設定していることになる。
次に、プロセッサ81は、左コントローラ3および右コントローラ4をそれぞれ振動させるための振動データを生成する処理を行い(ステップS199)、次のステップに処理を進める。なお、上記ステップS199における振動データを生成する処理は、上述したステップS166と同様であるため、ここでは詳細な説明を省略する。
次に、プロセッサ81は、第1調整係数が第2調整係数より大きいか否かを判定する(ステップS200)。例えば、プロセッサ81は、第1調整係数データDdおよび第2調整係数データDeを参照して、第1調整係数の値と第2調整係数の値とを比較する。そして、プロセッサ81は、第1調整係数が第2調整係数以下である場合、ステップS201に処理を進める。一方、プロセッサ81は、第1調整係数が第2調整係数より大きい場合、ステップS202に処理を進める。
ステップS201において、プロセッサ81は、第1調整係数を用いて演出用振動に対する振幅調整処理を行い、振動波形を合成する処理を行って、ステップS203に処理を進める。なお、上記ステップS201における振動調整処理および振動波形を合成する処理は、上述したステップS168と同様であるため、ここでは詳細な説明を省略する。
一方、ステップS202において、プロセッサ81は、第2調整係数を用いて演出用振動に対する振幅調整処理を行い、振動波形を合成する処理を行って、ステップS203に処理を進める。なお、上記ステップS202における振動調整処理および振動波形を合成する処理は、上述したステップS169と同様であるため、ここでは詳細な説明を省略する。
ステップS203において、プロセッサ81は、振動データを送信する周期毎に当該周期に対応する振動データを左コントローラ3および右コントローラ4へ出力する処理を行い、当該サブルーチンによる処理を終了する。なお、上記ステップS203における振動データを出力する処理は、上述したステップS170と同様であるため、ここでは詳細な説明を省略する。
図20に戻り、上記ステップS148において対戦プレイゲームモードが選択されていないと判定された場合、プロセッサ81は、協力プレイゲームモードによるゲーム処理を行い、ステップS151に処理を進める。以下、図24を参照して、協力プレイゲームモードによるゲーム処理について説明する。
図24において、プロセッサ81は、左コントローラ3および右コントローラ4から操作データを取得して操作データDaを更新し(ステップS211)、次のステップに処理を進める。
次に、プロセッサ81は、現時点がゲーム中であるか否かを判定する(ステップS212)。そして、プロセッサ81は、現時点がゲーム開始直後を含むゲーム中である場合、ステップS213に処理を進める。一方、プロセッサ81は、現時点がゲーム中ではない場合、当該サブルーチンによる処理を終了する。
ステップS213において、プロセッサ81は、プレイヤオブジェクト動作処理を行い、次のステップに処理を進める。例えば、プロセッサ81は、上記ステップS211において取得した操作データに基づいて、プレイヤオブジェクトPOに対する指示内容を設定し、当該指示内容に応じてプレイヤオブジェクトPOを動作させて、プレイヤオブジェクト位置データDiを更新する。なお、プロセッサ81は、プレイヤオブジェクトPOが「味方領域」を増やす動作を行った場合、当該動作に基づいて「味方領域」を拡大させて陣地データDmを更新する。
次に、プロセッサ81は、協力オブジェクト動作処理を行い(ステップS214)、次のステップに処理を進める。例えば、プロセッサ81は、通信データDbを参照して、ゲームに参加する他のユーザが操作するゲームシステムから送信されたデータを取得し、当該他のユーザが操作する協力オブジェクト(他のプレイヤオブジェクト)を当該送信されたデータに基づいて動作させて、協力オブジェクト位置データDkを更新する。なお、プロセッサ81は、協力オブジェクトが「味方領域」を増やす動作を行った場合、当該動作に基づいて「味方領域」を拡大させて陣地データDmを更新する。
次に、プロセッサ81は、敵出現イベント中か否かを判定する(ステップS215)。例えば、プロセッサ81は、自動制御によって敵オブジェクトEOが出現する敵出現イベント開始時点またはイベント中である場合、上記ステップS215において肯定判定する。そして、プロセッサ81は、敵出現イベント中である場合、ステップS216に処理を進める。一方、プロセッサ81は、敵出現イベント中でない場合、ステップS218に処理を進める。
ここで、上記ステップS215の判定処理では、敵オブジェクトEOが出現するイベント中か否かを判定している。これは、ゲーム開始時点において上記ゲームフィールド上に敵オブジェクトEOが配置されておらずプレイヤオブジェクトPOや協力オブジェクトが対戦できない状態であっても、当該ゲームか開始された後に敵オブジェクトEOが出現するイベントが開始されることに応じて、当該敵オブジェクトEOとプレイヤオブジェクトPOおよび協力オブジェクトとが戦闘可能状態になり得ることを想定しており、上記ステップS215の判定処理では、敵出現イベント中である場合にプレイヤオブジェクトPOや協力オブジェクトが敵オブジェクトEOと戦闘中であると判定していることになる。
ステップS216において、プロセッサ81は、敵オブジェクト動作処理を行い、次のステップに処理を進める。例えば、プロセッサ81は、敵出現イベント中に所定数の敵オブジェクトEOを上記ゲームフィールド上に登場させるとともに、所定のアルゴリズムに基づいて、敵オブジェクトEOを自動制御により動作させて、敵オブジェクト位置データDjを更新する。なお、プロセッサ81は、敵オブジェクトEOが「敵領域」を増やす動作を行った場合、当該動作に基づいて「敵領域」を拡大させて陣地データDmを更新する。
次に、プロセッサ81は、敵出現イベント開始後の経過時間に応じて、第1調整係数を1.0から0.0にフェードアウトする処理を行い、ステップS219に処理を進める。例えば、プロセッサ81は、第1調整係数データDdが示す第1調整係数を用いて、敵出現イベント開始後の経過時間に応じて1.0から0.0にフェードアウト(漸減的に減少)するように第1調整係数を変更し、当該変更後の第1調整係数を用いて第1調整係数データDdを更新する。一例として、プロセッサ81は、敵出現イベント開始時点から300フレーム(例えば、5秒間)かけて調整係数が1.0から0.0にフェードアウトするように第1調整係数を変更する。
一方、上記ステップS215において敵出現イベント中でないと判定された場合、プロセッサ81は、敵出現イベント終了後の経過時間に応じて、第1調整係数を0.0から1.0にフェードインする処理を行い、ステップS219に処理を進める。例えば、プロセッサ81は、第1調整係数データDdが示す第1調整係数を用いて、敵出現イベント終了後の経過時間に応じて0.0から1.0にフェードイン(漸増的に増加)するように第1調整係数を変更し、当該変更後の第1調整係数を用いて第1調整係数データDdを更新する。一例として、プロセッサ81は、敵出現イベント終了時点から300フレーム(例えば、5秒間)かけて調整係数が0.0から1.0にフェードインするように第1調整係数を変更する。
ステップS219において、プロセッサ81は、左コントローラ3および右コントローラ4をそれぞれ振動させるための振動データを生成する処理を行い、次のステップに処理を進める。なお、上記ステップS219における振動データを生成する処理は、上述したステップS166と同様であるため、ここでは詳細な説明を省略する。
次に、プロセッサ81は、第1調整係数を用いて演出用振動に対する振幅調整処理を行い、振動波形を合成する処理を行って(ステップS220)、次のステップに処理を進める。なお、上記ステップS220における振動調整処理および振動波形を合成する処理は、上述したステップS168と同様であるため、ここでは詳細な説明を省略する。
次に、プロセッサ81は、振動データを送信する周期毎に当該周期に対応する振動データを左コントローラ3および右コントローラ4へ出力する処理を行い(ステップS221)、当該サブルーチンによる処理を終了する。なお、上記ステップS221における振動データを出力する処理は、上述したステップS170と同様であるため、ここでは詳細な説明を省略する。
図20に戻り、ステップS151において、プロセッサ81は、表示制御処理を行い、次のステップに処理を進める。例えば、プロセッサ81は、プレイヤオブジェクト位置データDi、敵オブジェクト位置データDj、および協力オブジェクト位置データDkを用いて、ゲームフィールド上にプレイヤオブジェクトPO、敵オブジェクトEO、および/または協力オブジェクトを配置する。また、プロセッサ81は、陣地データDmを用いて、ゲームフィールド上に「味方領域」、「敵領域」、および「味方領域」でも「敵領域」でもない「中立領域」の何れかであることを区別する仮想オブジェクト(例えば、色が異なる液体等)を配置する。そして、プロセッサ81は、所定の位置(例えば、プレイヤオブジェクトPOの背後)に配置された仮想カメラからゲームフィールドを見た仮想空間画像を生成し、当該仮想空間画像を表示装置(例えば、ディスプレイ12)の表示画面に表示する処理を行う。
次に、プロセッサ81は、ゲームを終了するか否かを判定する(ステップS152)。上記ステップS152においてゲームを終了する条件としては、例えば、上記ゲームの結果が確定したことや、ユーザがゲームを終了する操作を行ったこと等がある。プロセッサ81は、ゲームを終了しない場合に上記ステップS145に戻って処理を繰り返し、ゲームを終了する場合に当該フローチャートによる処理を終了する。以降、ステップS145〜ステップS152の一連の処理は、ステップS152においてゲームを終了すると判定されるまで繰り返し実行される。
このように、本実施例においては、プレイヤオブジェクトPOの複数の状態それぞれに複数種類の振動をそれぞれ対応付けて振動信号を生成して、左コントローラ3および右コントローラ4を振動させる。そして、プレイヤオブジェクトPOが所定の状況(例えば、敵オブジェクトEOとの戦闘中)にあると判定された場合、上記複数種類の振動のうち演出用振動について、当該所定の状況であると判定されないときよりも振動が弱くなるまたは振動が無くなるように振動信号を生成する。したがって、上記所定の状況においては、上記複数種類の振動のうちゲーム性に関わる振動をユーザにわかりやすく知覚させることが可能となる。
なお、上述した実施例では、ゲーム開始前にゲームモードが選択されて設定される例を用いたが、ゲーム中であってもゲームモードが変更可能であってもよい。一例として、所定の操作が行われることによってゲームモードの選択肢を表示してゲームを中断し、当該ゲーム中断中に選択肢が選択されることに応じて、ゲームモードが切り替え可能に構成されてもよい。この場合、ゲームモードが切り替えられた時点で調整係数などのパラメータが初期化されてもよい。
また、上述したゲーム例では、左コントローラ3および右コントローラ4が本体装置2に装着された一体型装置を用いてプレイする例を用いたが、本体装置2から左コントローラ3および右コントローラ4を取り外した状態でプレイしてもよい。例えば、ユーザが左手で左コントローラ3を把持し、右手で右コントローラ4を把持した状態でゲームプレイする際に左コントローラ3および右コントローラ4に振動を与える場合、プレイヤオブジェクトPOが所定の状況にある場合に演出用振動を弱くまたは演出用振動がなくなるように振動制御してもよい。この場合、ゲーム画像を本体装置2のディスプレイ12に表示してもよいし、本体装置2単体をクレードルに装着することによってゲーム画像を据置型モニタの表示画面に表示してもよい。
また、上述した実施例では、左コントローラ3の振動データと右コントローラ4の振動データとの振幅を調整する処理を、本体装置2において行っているが、他の装置において当該処理を行ってもよい。例えば、振動データを用いて振動することになる左コントローラ3および/または右コントローラ4側において、当該振動データにおける振幅を調整する処理を行ってもよい。この場合、本体装置2から対象となるコントローラへ、振動データと振幅を調整するための調整係数とを送信することによって、当該コントローラ側で振動データの振幅を調整する処理が可能となる。
また、上述した実施例では、1人のユーザが左コントローラ3および/または右コントローラ4を用いてゲームプレイする例を用いたが、複数のユーザがゲームプレイすることも考えられる。この場合、それぞれのユーザが用いる左コントローラ3および/または右コントローラ4に対して、それぞれのユーザが操作するプレイヤオブジェクトの状態に応じた振動をそれぞれのコントローラに与えればよい。また、左コントローラ3および右コントローラ4とは異なる、単一のゲームコントローラによるゲームプレイが可能である場合、当該単一のゲームコントローラに与えられる振動強さがプレイヤオブジェクトの状態に応じて調整されてもよい。
また、上述した実施例では、プレイヤオブジェクトの状態に応じて振動の振幅が調整される例を用いたが、振動の周波数を調整してもかまわない。例えば、操作に用いられる操作装置の形状、サイズ、重量、材質等によって異なる共振周波数の特性を有している。また、操作に用いられる操作装置によって、当該操作装置を操作するユーザが振動を感じやすい周波数帯域や振動を感じにくい周波数帯域があることも考えられる。このような操作装置固有の共振周波数、振動を感じやすい周波数帯域、および/または振動を感じにくい周波数帯域を避けるように、または積極的に当該共振周波数および/または当該周波数帯域を狙って振動の周波数を調整してもよい。また、操作装置の構成により、周波数が相対的に高い振動を感じやすい場合や周波数が相対的に低い振動を感じやすい場合が考えられる。このような場合、プレイヤオブジェクトの状態に応じて、操作装置に与える振動の周波数を相対的に高い周波数や低い周波数にシフトして調整してもよい。さらに、上述したプレイヤオブジェクトの状態に応じた振動の振幅を調整に、上記振動の周波数の調整を加えてもかまわない。
また、上述した実施例では、演出用振動を弱くするまたは演出用振動を0にするプレイヤオブジェクトPOにおける所定の状況の一例として、プレイヤオブジェクトPOが敵オブジェクトEOと戦闘中であることを用いたが、プレイヤオブジェクトPOが他の状態であるときに演出用振動を弱くまたは0にしてもかまわない。例えば、上述したプレイヤオブジェクトPOが他のオブジェクトと試合中であることの他に、プレイヤオブジェクトPOが緻密なものを生成(例えば、精巧なものの組み立て作業、文字、線、図形の入力等)する状態、プレイヤオブジェクトPOにより正確な動作を要求する状態、プレイヤオブジェクトPOが音や振動を聞き分ける状態等、演出用振動が生じることによってゲーム進行が阻害される可能性がある状況の場合に、プレイヤオブジェクトPOが上記所定の状況にあると判定されてもよい。
また、他の実施形態においては、本体装置2は、据置型モニタと直接通信可能であってもよい。例えば、本体装置2と据置型モニタとが直接有線通信または直接無線通信を行うことが可能であってもよい。この場合、本体装置2は、本体装置2と据置型モニタとが直接通信可能か否かに基づいて画像の表示先を決定してもよい。
また、付加装置(例えば、クレードル)は、本体装置2を着脱可能な任意の付加装置であってよい。付加装置は、本実施形態のように、本体装置2に対する充電を行う機能を有していてもよいし、有していなくてもよい。
また、ゲームシステム1は、どのような装置であってもよく、携帯型のゲーム装置、任意の携帯型電子機器(PDA(Personal Digital Assistant)、携帯電話、パーソナルコンピュータ、カメラ、タブレット等)等であってもよい。
また、上述した説明では情報処理(ゲーム処理)をゲームシステム1でそれぞれ行う例を用いたが、上記処理ステップの少なくとも一部を他の装置で行ってもかまわない。例えば、ゲームシステム1がさらに他の装置(例えば、別のサーバ、他の画像表示装置、他のゲーム装置、他の携帯端末)と通信可能に構成されている場合、上記処理ステップは、さらに当該他の装置が協働することによって実行してもよい。このように、上記処理ステップの少なくとも一部を他の装置で行うことによって、上述した処理と同様の処理が可能となる。また、上述した情報処理(ゲーム処理)は、少なくとも1つの情報処理装置により構成される情報処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。また、上記実施例においては、ゲームシステム1のプロセッサ81が所定のプログラムを実行することによって情報処理を行うことが可能であるが、ゲームシステム1が備える専用回路によって上記処理の一部または全部が行われてもよい。
ここで、上述した変形例によれば、いわゆるクラウドコンピューティングのシステム形態や分散型の広域ネットワークおよびローカルネットワークのシステム形態でも本発明を実現することが可能となる。例えば、分散型のローカルネットワークのシステム形態では、据置型の情報処理装置(据置型のゲーム装置)と携帯型の情報処理装置(携帯型のゲーム装置)との間で上記処理を協働により実行することも可能となる。なお、これらのシステム形態では、上述した処理をどの装置で行うかについては特に限定されず、どのような処理分担をしたとしても本発明を実現できることは言うまでもない。
また、上述した情報処理で用いられる処理順序、設定値、判定に用いられる条件等は、単なる一例に過ぎず他の順序、値、条件であっても、本実施例を実現できることは言うまでもない。
また、上記プログラムは、外部メモリ等の外部記憶媒体を通じてゲームシステム1に供給されるだけでなく、有線または無線の通信回線を通じて当該装置に供給されてもよい。また、上記プログラムは、当該装置内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ、などでもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを記憶する揮発性メモリでもよい。このような記憶媒体は、コンピュータ等が読み取り可能な記録媒体ということができる。例えば、コンピュータ等に、これらの記録媒体のプログラムを読み込ませて実行させることにより、上述で説明した各種機能を提供させることができる。
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施例の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。
以上のように、本発明は、振動子を有する装置の使用態様に応じて適切な振動をユーザに与えることが可能なゲームシステム、ゲームプログラム、ゲーム装置、およびゲーム処理方法を提供することである。
1…ゲームシステム
2…本体装置
3…左コントローラ
4…右コントローラ
6…据置型モニタ
11…ハウジング
12…ディスプレイ
81…プロセッサ
82…ネットワーク通信部
83…コントローラ通信部
85…DRAM
107、117…振動子

Claims (36)

  1. 操作部と、振動部と、情報処理部とを含むゲームシステムであって、
    前記情報処理部は、
    前記操作部に対するユーザ操作に基づいて、仮想空間内において操作対象を制御する操作制御部と、
    前記操作対象が前記仮想空間内において所定の状況にあるか否かを判定する判定部と、
    前記仮想空間内における前記操作対象の状態に応じて、前記振動部を振動させる振動信号を生成する振動制御部とを備え、
    前記振動制御部は、
    前記操作対象の複数の状態それぞれに複数種類の振動をそれぞれ対応付けて前記振動信号を生成し、
    前記判定部において前記所定の状況にあると判定された場合、前記複数種類の振動のうち第1の種類の振動について、当該所定の状況であると判定されないときよりも振動が弱くなるまたは振動が無くなるように前記振動信号を生成する、ゲームシステム。
  2. 前記操作制御部は、前記仮想空間内のプレイヤキャラクタオブジェクトを前記操作対象として制御し、
    前記情報処理部は、前記仮想空間内において、前記プレイヤキャラクタオブジェクトを攻撃する敵オブジェクトの挙動を制御する敵オブジェクト制御部を、さらに備え、
    前記判定部は、前記敵オブジェクトの状態に基づいて前記プレイヤキャラクタオブジェクトが戦闘中か否かを判定し、当該戦闘中である場合に前記プレイヤキャラクタオブジェクトが前記所定の状況にあると判定する、請求項1に記載のゲームシステム。
  3. 前記敵オブジェクト制御部は、所定の条件に基づいて前記敵オブジェクトが前記プレイヤキャラクタオブジェクトを攻撃するための処理を開始し、
    前記判定部は、前記敵オブジェクト制御部において前記敵オブジェクトが前記プレイヤキャラクタオブジェクトを攻撃するための処理を行っている場合、前記プレイヤキャラクタオブジェクトが前記戦闘中であると判定する、請求項2に記載のゲームシステム。
  4. 前記判定部は、前記仮想空間内における前記敵オブジェクトと前記プレイヤキャラクタオブジェクトとの距離が所定値よりも近い場合、前記プレイヤキャラクタオブジェクトが前記戦闘中であると判定する、請求項2または3に記載のゲームシステム。
  5. 前記操作制御部は、所定の開始タイミング以降、前記操作部に対するユーザ操作に基づいて、前記仮想空間内のプレイヤキャラクタオブジェクトを前記操作対象として制御し、
    前記判定部は、前記開始タイミングから所定時間経過以降を前記プレイヤキャラクタオブジェクトが戦闘中であると判定し、当該戦闘中である場合に前記プレイヤキャラクタオブジェクトが前記所定の状況にあると判定する、請求項1に記載のゲームシステム。
  6. 前記情報処理部は、
    他のゲームシステムと無線または有線通信を行う通信部と、
    前記開始タイミング以降、前記通信部を介して取得される前記他のゲームシステムからのデータに基づいて、他のユーザが操作する他のプレイヤキャラクタオブジェクトの制御を行う他キャラクタ制御部とを、さらに備える、請求項5に記載のゲームシステム。
  7. 前記振動制御部は、前記第1の種類の振動以外の第2の種類の振動として、前記操作対象がダメージを受ける事象が前記仮想空間内において生じた場合に前記振動部が所定の振動をするように前記振動信号を生成する、請求項1乃至6の何れか1つに記載のゲームシステム。
  8. 前記振動制御部は、前記第1の種類の振動以外の第2の種類の振動として、前記仮想空間内において前記操作対象が他の対象を攻撃した場合に前記振動部が所定の振動をするように前記振動信号を生成する、請求項1乃至7の何れか1つに記載のゲームシステム。
  9. 前記振動制御部は、前記第1の種類の振動として、前記操作対象が前記仮想空間内において第1の条件を満たす領域に進入した場合に前記振動部が所定の振動をするように前記振動信号を生成する、請求項1乃至8の何れか1つに記載のゲームシステム。
  10. 前記振動制御部は、前記第1の種類の振動以外の第2の種類の振動として、前記操作対象が前記仮想空間内において第2の条件を満たす領域に進入した場合に前記振動部が所定の振動をするように前記振動信号を生成する、請求項1乃至9の何れか1つに記載のゲームシステム。
  11. 前記振動制御部は、前記第1の種類の振動として、前記操作対象が前記仮想空間内を移動することに応じて前記振動部が所定の振動をするように前記振動信号を生成する、請求項1乃至10の何れか1つに記載のゲームシステム。
  12. 前記振動制御部は、前記操作対象が前記所定の状況であると判定されてから所定期間内において、前記第1の種類の振動の強さが時間経過と共に弱くなるよう前記振動信号を生成する、請求項1乃至11の何れか1つに記載のゲームシステム。
  13. 前記振動制御部は、
    前記操作対象の状態に応じた振動の振動波形を示す振動信号を生成し、
    前記操作対象の状態に応じて前記振動が同時に複数生じる場合には、当該振動それぞれの前記振動波形を合成した波形を示す振動信号を生成する、請求項1乃至12の何れか1つに記載のゲームシステム。
  14. 前記操作制御部は、所定の開始タイミング以降、前記操作部に対するユーザ操作に基づいて、前記仮想空間内のプレイヤキャラクタオブジェクトを前記操作対象として制御し、
    前記情報処理部は、前記開始タイミングの後、前記プレイヤキャラクタオブジェクトを攻撃する敵オブジェクトを前記仮想空間内に出現させる敵オブジェクト出現制御部を、さらに備え、
    前記判定部は、前記敵オブジェクトが前記仮想空間内に出現した時点以降を前記プレイヤキャラクタオブジェクトが戦闘中であると判定し、当該戦闘中である場合に前記プレイヤキャラクタオブジェクトが前記所定の状況にあると判定する、請求項1に記載のゲームシステム。
  15. 振動部を振動させる装置に含まれるコンピュータで実行されるゲームプログラムであって、
    前記コンピュータを、
    操作部に対するユーザ操作に基づいて、仮想空間内において操作対象を制御する操作制御手段と、
    前記操作対象が前記仮想空間内において所定の状況にあるか否かを判定する判定手段と、
    前記仮想空間内における前記操作対象の状態に応じて、前記振動部を振動させる振動信号を生成する振動制御手段として機能させ、
    前記振動制御手段は、
    前記操作対象の複数の状態それぞれに複数種類の振動をそれぞれ対応付けて前記振動信号を生成し、
    前記判定手段において前記所定の状況にあると判定された場合、前記複数種類の振動のうち第1の種類の振動について、当該所定の状況であると判定されないときよりも振動が弱くなるまたは振動が無くなるように前記振動信号を生成する、ゲームプログラム。
  16. 前記操作制御手段は、前記仮想空間内のプレイヤキャラクタオブジェクトを前記操作対象として制御し、
    前記ゲームプログラムは、前記仮想空間内において、前記プレイヤキャラクタオブジェクトを攻撃する敵オブジェクトの挙動を制御する敵オブジェクト制御手段として、さらに前記コンピュータを機能させ、
    前記判定手段は、前記敵オブジェクトの状態に基づいて前記プレイヤキャラクタオブジェクトが戦闘中か否かを判定し、当該戦闘中である場合に前記プレイヤキャラクタオブジェクトが前記所定の状況にあると判定する、請求項15に記載のゲームプログラム。
  17. 前記敵オブジェクト制御手段は、所定の条件に基づいて前記敵オブジェクトが前記プレイヤキャラクタオブジェクトを攻撃するための処理を開始し、
    前記判定手段は、前記敵オブジェクト制御手段において前記敵オブジェクトが前記プレイヤキャラクタオブジェクトを攻撃するための処理を行っている場合、前記プレイヤキャラクタオブジェクトが前記戦闘中であると判定する、請求項15に記載のゲームプログラム。
  18. 前記判定手段は、前記仮想空間内における前記敵オブジェクトと前記プレイヤキャラクタオブジェクトとの距離が所定値よりも近い場合、前記プレイヤキャラクタオブジェクトが前記戦闘中であると判定する、請求項16または17に記載のゲームプログラム。
  19. 前記操作制御手段は、所定の開始タイミング以降、前記操作部に対するユーザ操作に基づいて、前記仮想空間内のプレイヤキャラクタオブジェクトを前記操作対象として制御し、
    前記判定手段は、前記開始タイミングから所定時間経過以降を前記プレイヤキャラクタオブジェクトが戦闘中であると判定し、当該戦闘中である場合に前記プレイヤキャラクタオブジェクトが前記所定の状況にあると判定する、請求項15に記載のゲームプログラム。
  20. 他の装置と無線または有線通信を行う通信手段と、
    前記開始タイミング以降、前記通信手段を介して取得される前記他の装置からのデータに基づいて、他のユーザが操作する他のプレイヤキャラクタオブジェクトの制御を行う他キャラクタ制御手段として、さらに前記コンピュータを機能させる、請求項19に記載のゲームプログラム。
  21. 前記振動制御手段は、前記第1の種類の振動以外の第2の種類の振動として、前記操作対象がダメージを受ける事象が前記仮想空間内において生じた場合に前記振動部が所定の振動をするように前記振動信号を生成する、請求項15乃至20の何れか1つに記載のゲームプログラム。
  22. 前記振動制御手段は、前記第1の種類の振動以外の第2の種類の振動として、前記仮想空間内において前記操作対象が他の対象を攻撃した場合に前記振動部が所定の振動をするように前記振動信号を生成する、請求項15乃至21の何れか1つに記載のゲームプログラム。
  23. 前記振動制御手段は、前記第1の種類の振動として、前記操作対象が前記仮想空間内において第1の条件を満たす領域に進入した場合に前記振動部が所定の振動をするように前記振動信号を生成する、請求項15乃至22の何れか1つに記載のゲームプログラム。
  24. 前記振動制御手段は、前記第1の種類の振動以外の第2の種類の振動として、前記操作対象が前記仮想空間内において第2の条件を満たす領域に進入した場合に前記振動部が所定の振動をするように前記振動信号を生成する、請求項15乃至23の何れか1つに記載のゲームプログラム。
  25. 前記振動制御手段は、前記第1の種類の振動として、前記操作対象が前記仮想空間内を移動することに応じて前記振動部が所定の振動をするように前記振動信号を生成する、請求項15乃至24の何れか1つに記載のゲームプログラム。
  26. 前記振動制御手段は、前記操作対象が前記所定の状況であると判定されてから所定期間内において、前記第1の種類の振動の強さが時間経過と共に弱くなるよう前記振動信号を生成する、請求項15乃至25の何れか1つに記載のゲームプログラム。
  27. 前記振動制御手段は、
    前記操作対象の状態に応じた振動の振動波形を示す振動信号を生成し、
    前記操作対象の状態に応じて前記振動が同時に複数生じる場合には、当該振動それぞれの前記振動波形を合成した波形を示す振動信号を生成する、請求項15乃至26の何れか1つに記載のゲームプログラム。
  28. 前記操作制御手段は、所定の開始タイミング以降、前記操作部に対するユーザ操作に基づいて、前記仮想空間内のプレイヤキャラクタオブジェクトを前記操作対象として制御し、
    前記ゲームプログラムは、前記開始タイミングの後、前記プレイヤキャラクタオブジェクトを攻撃する敵オブジェクトを前記仮想空間内に出現させる敵オブジェクト出現制御手段として、さらに前記コンピュータを機能させ、
    前記判定手段は、前記敵オブジェクトが前記仮想空間内に出現した時点以降を前記プレイヤキャラクタオブジェクトが戦闘中であると判定し、当該戦闘中である場合に前記プレイヤキャラクタオブジェクトが前記所定の状況にあると判定する、請求項15に記載のゲームシステム。
  29. 振動部を振動させるゲーム装置であって、
    操作部に対するユーザ操作に基づいて、仮想空間内において操作対象を制御する操作制御手段と、
    前記操作対象が前記仮想空間内において所定の状況にあるか否かを判定する判定手段と、
    前記仮想空間内における前記操作対象の状態に応じて、前記振動部を振動させる振動信号を生成する振動制御手段とを備え、
    前記振動制御手段は、
    前記操作対象の複数の状態それぞれに複数種類の振動をそれぞれ対応付けて前記振動信号を生成し、
    前記判定手段において前記所定の状況にあると判定された場合、前記複数種類の振動のうち第1の種類の振動について、当該所定の状況であると判定されないときよりも振動が弱くなるまたは振動が無くなるように前記振動信号を生成する、ゲーム装置。
  30. 前記操作制御手段は、前記仮想空間内のプレイヤキャラクタオブジェクトを前記操作対象として制御し、
    前記ゲーム装置は、前記仮想空間内において、前記プレイヤキャラクタオブジェクトを攻撃する敵オブジェクトの挙動を制御する敵オブジェクト制御手段を、さらに備え、
    前記判定手段は、前記敵オブジェクトの状態に基づいて前記プレイヤキャラクタオブジェクトが戦闘中か否かを判定し、当該戦闘中である場合に前記プレイヤキャラクタオブジェクトが前記所定の状況にあると判定する、請求項29に記載のゲーム装置。
  31. 前記敵オブジェクト制御手段は、所定の条件に基づいて前記敵オブジェクトが前記プレイヤキャラクタオブジェクトを攻撃するための処理を開始し、
    前記判定手段は、前記敵オブジェクト制御手段において前記敵オブジェクトが前記プレイヤキャラクタオブジェクトを攻撃するための処理を行っている場合、前記プレイヤキャラクタオブジェクトが前記戦闘中であると判定する、請求項30に記載のゲーム装置。
  32. 前記判定手段は、前記仮想空間内における前記敵オブジェクトと前記プレイヤキャラクタオブジェクトとの距離が所定値よりも近い場合、前記プレイヤキャラクタオブジェクトが前記戦闘中であると判定する、請求項30または31に記載のゲーム装置。
  33. 振動部を振動させるゲーム処理方法であって、
    操作部に対するユーザ操作に基づいて、仮想空間内において操作対象を制御する操作制御ステップと、
    前記操作対象が前記仮想空間内において所定の状況にあるか否かを判定する判定ステップと、
    前記仮想空間内における前記操作対象の状態に応じて、前記振動部を振動させる振動信号を生成する振動制御ステップとを含み、
    前記振動制御ステップでは、
    前記操作対象の複数の状態それぞれに複数種類の振動をそれぞれ対応付けて前記振動信号が生成され、
    前記判定ステップにおいて前記所定の状況にあると判定された場合、前記複数種類の振動のうち第1の種類の振動について、当該所定の状況であると判定されないときよりも振動が弱くなるまたは振動が無くなるように前記振動信号が生成される、ゲーム処理方法。
  34. 前記操作制御ステップでは、前記仮想空間内のプレイヤキャラクタオブジェクトが前記操作対象として制御され、
    前記ゲーム処理方法は、前記仮想空間内において、前記プレイヤキャラクタオブジェクトを攻撃する敵オブジェクトの挙動を制御する敵オブジェクト制御ステップを、さらに含み、
    前記判定ステップでは、前記敵オブジェクトの状態に基づいて前記プレイヤキャラクタオブジェクトが戦闘中か否かが判定され、当該戦闘中である場合に前記プレイヤキャラクタオブジェクトが前記所定の状況にあると判定される、請求項33に記載のゲーム処理方法。
  35. 前記敵オブジェクト制御ステップでは、所定の条件に基づいて前記敵オブジェクトが前記プレイヤキャラクタオブジェクトを攻撃するための処理が開始され、
    前記判定ステップでは、前記敵オブジェクト制御ステップにおいて前記敵オブジェクトが前記プレイヤキャラクタオブジェクトを攻撃するための処理が行われている場合、前記プレイヤキャラクタオブジェクトが前記戦闘中であると判定される、請求項34に記載のゲーム処理方法。
  36. 前記判定ステップでは、前記仮想空間内における前記敵オブジェクトと前記プレイヤキャラクタオブジェクトとの距離が所定値よりも近い場合、前記プレイヤキャラクタオブジェクトが前記戦闘中であると判定される、請求項34または35に記載のゲーム処理方法。
JP2017136127A 2017-07-12 2017-07-12 ゲームシステム、ゲームプログラム、ゲーム装置、およびゲーム処理方法 Active JP6701132B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017136127A JP6701132B2 (ja) 2017-07-12 2017-07-12 ゲームシステム、ゲームプログラム、ゲーム装置、およびゲーム処理方法
US15/986,011 US10758820B2 (en) 2017-07-12 2018-05-22 Game system, storage medium having stored therein game program, game apparatus, and game processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017136127A JP6701132B2 (ja) 2017-07-12 2017-07-12 ゲームシステム、ゲームプログラム、ゲーム装置、およびゲーム処理方法

Publications (2)

Publication Number Publication Date
JP2019017475A true JP2019017475A (ja) 2019-02-07
JP6701132B2 JP6701132B2 (ja) 2020-05-27

Family

ID=65000758

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017136127A Active JP6701132B2 (ja) 2017-07-12 2017-07-12 ゲームシステム、ゲームプログラム、ゲーム装置、およびゲーム処理方法

Country Status (2)

Country Link
US (1) US10758820B2 (ja)
JP (1) JP6701132B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022074910A1 (ja) * 2020-10-07 2022-04-14 株式会社村田製作所 信号生成装置、信号生成方法及び信号生成プログラム
CN115591226A (zh) * 2021-07-08 2023-01-13 腾讯科技(深圳)有限公司(Cn) 一种业务处理方法、装置、设备及介质

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11045723B1 (en) 2014-11-18 2021-06-29 Razer (Asia-Pacific) Pte. Ltd. Gaming controller for mobile device and method of operating a gaming controller
JP7042061B2 (ja) * 2017-11-10 2022-03-25 株式会社バンダイナムコエンターテインメント 操作入力システム、操作入力装置及びゲームシステム
JP7347421B2 (ja) * 2018-07-04 2023-09-20 ソニーグループ株式会社 情報処理装置、情報処理方法及びプログラム
US11097185B2 (en) 2019-12-31 2021-08-24 Dell Products L.P. Detachable information handling system game controller management
US11331567B2 (en) 2019-12-31 2022-05-17 Dell Products L.P. Information handling system and game controller trigger
US11097184B2 (en) 2019-12-31 2021-08-24 Dell Products L.P. Information handling system controller illumination
US11013987B1 (en) 2019-12-31 2021-05-25 Dell Products L.P. Information handling system controller scalable interface
US11260288B2 (en) 2019-12-31 2022-03-01 Dell Products L.P. Disassemblable information handling system game controller
US11260291B2 (en) 2019-12-31 2022-03-01 Dell Products L.P. Information handling system and detachable game controller
US11013991B1 (en) * 2019-12-31 2021-05-25 Dell Products L.P. Information handling system controller adaptive haptic feedback
US11338197B2 (en) 2019-12-31 2022-05-24 Dell Products L.P. Information handling system controller distributable hardware and logic management
US11771991B2 (en) * 2021-02-15 2023-10-03 Nintendo Co., Ltd. Non-transitory computer-readable storage medium having stored therein information processing program, information processing apparatus, information processing system, and information processing method

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11126014A (ja) * 1997-10-22 1999-05-11 Casio Comput Co Ltd 生物画像表示制御装置、生物画像表示制御方法、及び生物画像表示処理プログラムを記録した記録媒体
JP2002035421A (ja) * 2000-07-31 2002-02-05 Konami Computer Entertainment Yokyo Inc ゲーム装置、ゲーム機の制御方法、情報記憶媒体、プログラム配信装置及び方法
JP2006068210A (ja) * 2004-09-01 2006-03-16 Nintendo Co Ltd ゲーム装置およびゲームプログラム
JP2010082396A (ja) * 2008-10-03 2010-04-15 Nintendo Co Ltd 手持ち型情報処理装置
JP2014142869A (ja) * 2013-01-25 2014-08-07 Nec Corp 情報処理装置、情報処理方法、プログラム及び記録媒体
JP2015228054A (ja) * 2014-05-30 2015-12-17 和俊 尾花 情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法
JP2015232786A (ja) * 2014-06-10 2015-12-24 和俊 尾花 振動生成システム、振動生成プログラム、および振動生成方法
JP2016123513A (ja) * 2014-12-26 2016-07-11 和俊 尾花 手持ち型情報処理装置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5734373A (en) * 1993-07-16 1998-03-31 Immersion Human Interface Corporation Method and apparatus for controlling force feedback interface systems utilizing a host computer
US5999168A (en) * 1995-09-27 1999-12-07 Immersion Corporation Haptic accelerator for force feedback computer peripherals
AU734018B2 (en) * 1995-10-09 2001-05-31 Nintendo Co., Ltd. Three-dimension image processing system
US6147674A (en) * 1995-12-01 2000-11-14 Immersion Corporation Method and apparatus for designing force sensations in force feedback computer applications
US5857986A (en) * 1996-05-24 1999-01-12 Moriyasu; Hiro Interactive vibrator for multimedia
JPH114966A (ja) * 1996-10-01 1999-01-12 Sony Computer Entateimento:Kk ゲーム機用操作装置及びゲーム装置
CA2278726C (en) * 1997-01-27 2004-08-31 Immersion Corporation Method and apparatus for providing high bandwidth, realistic force feedback including an improved actuator
JP3655438B2 (ja) 1997-07-17 2005-06-02 任天堂株式会社 ビデオゲームシステム
DE20080209U1 (de) * 1999-09-28 2001-08-09 Immersion Corp Steuerung von haptischen Empfindungen für Schnittstellenvorrichtungen mit Vibrotaktiler Rückkopplung
WO2002027705A1 (en) * 2000-09-28 2002-04-04 Immersion Corporation Directional tactile feedback for haptic feedback interface devices
JP5275025B2 (ja) * 2005-06-27 2013-08-28 コアクティヴ・ドライヴ・コーポレイション 触覚フィードバック用の同期式振動装置
US9764357B2 (en) * 2005-06-27 2017-09-19 General Vibration Corporation Synchronized array of vibration actuators in an integrated module
US8698736B2 (en) * 2009-03-24 2014-04-15 Immersion Corporation Handheld computer interface with haptic feedback
KR101328054B1 (ko) * 2011-08-09 2013-11-08 엘지전자 주식회사 실감 진동을 발생시키는 영상표시장치 및 실감 진동 구현방법
KR102054370B1 (ko) * 2011-11-23 2019-12-12 삼성전자주식회사 햅틱 피드백 방법 및 장치, 기계로 읽을 수 있는 저장 매체 및 휴대용 통신 단말
JP6264542B2 (ja) * 2014-01-30 2018-01-24 任天堂株式会社 情報処理装置、情報処理プログラム、情報処理システム、および情報処理方法
JP6664145B2 (ja) * 2014-03-12 2020-03-13 任天堂株式会社 情報処理装置、情報処理プログラム、情報処理システム、および情報処理方法
US10067566B2 (en) * 2014-03-19 2018-09-04 Immersion Corporation Systems and methods for a shared haptic experience
WO2015145893A1 (ja) * 2014-03-26 2015-10-01 ソニー株式会社 体感導入装置、体感導入システム、及び体感導入方法
JP6322830B2 (ja) * 2014-05-09 2018-05-16 任天堂株式会社 情報処理装置、情報処理プログラム、情報処理システム、および情報処理方法
US9588586B2 (en) * 2014-06-09 2017-03-07 Immersion Corporation Programmable haptic devices and methods for modifying haptic strength based on perspective and/or proximity
JP6613267B2 (ja) * 2017-06-02 2019-11-27 任天堂株式会社 情報処理システム、情報処理プログラム、情報処理装置、および、情報処理方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11126014A (ja) * 1997-10-22 1999-05-11 Casio Comput Co Ltd 生物画像表示制御装置、生物画像表示制御方法、及び生物画像表示処理プログラムを記録した記録媒体
JP2002035421A (ja) * 2000-07-31 2002-02-05 Konami Computer Entertainment Yokyo Inc ゲーム装置、ゲーム機の制御方法、情報記憶媒体、プログラム配信装置及び方法
JP2006068210A (ja) * 2004-09-01 2006-03-16 Nintendo Co Ltd ゲーム装置およびゲームプログラム
JP2010082396A (ja) * 2008-10-03 2010-04-15 Nintendo Co Ltd 手持ち型情報処理装置
JP2014142869A (ja) * 2013-01-25 2014-08-07 Nec Corp 情報処理装置、情報処理方法、プログラム及び記録媒体
JP2015228054A (ja) * 2014-05-30 2015-12-17 和俊 尾花 情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法
JP2015232786A (ja) * 2014-06-10 2015-12-24 和俊 尾花 振動生成システム、振動生成プログラム、および振動生成方法
JP2016123513A (ja) * 2014-12-26 2016-07-11 和俊 尾花 手持ち型情報処理装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022074910A1 (ja) * 2020-10-07 2022-04-14 株式会社村田製作所 信号生成装置、信号生成方法及び信号生成プログラム
CN115591226A (zh) * 2021-07-08 2023-01-13 腾讯科技(深圳)有限公司(Cn) 一种业务处理方法、装置、设备及介质
CN115591226B (zh) * 2021-07-08 2023-09-22 腾讯科技(深圳)有限公司 一种业务处理方法、装置、设备及介质

Also Published As

Publication number Publication date
JP6701132B2 (ja) 2020-05-27
US20190015744A1 (en) 2019-01-17
US10758820B2 (en) 2020-09-01

Similar Documents

Publication Publication Date Title
JP6701132B2 (ja) ゲームシステム、ゲームプログラム、ゲーム装置、およびゲーム処理方法
US20180341332A1 (en) Systems and Methods for a Shared Haptic Experience
EP3343323B1 (en) Information processing program, information processing apparatus, information processing system, and information processing method
JP6306442B2 (ja) プログラム及びゲームシステム
US10471346B2 (en) Information processing system, non-transitory storage medium having stored therein information processing program, information processing apparatus, and information processing method
EP3343324B1 (en) Information processing program, information processing system, and information processing method
US11020675B2 (en) Storage medium having stored therein information processing program, information processing apparatus, information processing system, and information processing method
US10758819B2 (en) Game system, non-transitory storage medium having stored therein game program, information processing apparatus, and game control method
US10596459B2 (en) Systems, methods, and/or computer readable storage medium having program, for localized haptic feedback based on position of virtual object
US10639546B2 (en) Vibration control system, vibration control apparatus, storage medium and vibration control method
JP2014090910A (ja) ゲームシステム、ゲーム処理制御方法、ゲーム装置、および、ゲームプログラム
US20120229516A1 (en) Computer-readable storage medium, information processing system, and information processing method
JP2021098111A (ja) プログラム、ゲームシステム及びゲーム管理サーバ
US11045728B2 (en) Game system, non-transitory storage medium having stored therein game program, information processing apparatus, and game control method
US9925464B2 (en) Computer-readable storage medium, information processing system, and information processing method for displaying an image on a display device using attitude data of a display device
US10661163B2 (en) Video game with haptic signal that is disabled based on losing contact with a surface
JP2018140176A (ja) プログラム及びゲームシステム
JP6973967B2 (ja) 情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法
JP2018112820A (ja) 情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法
JP6842368B2 (ja) 情報処理プログラム、情報処理システム、情報処理装置、および情報処理方法
JP5864121B2 (ja) 情報処理プログラム、情報処理システム、および情報処理方法
JP2023166358A (ja) ゲームプログラム、ゲームシステム、およびゲーム方法
JP2023166357A (ja) ゲームプログラム、ゲームシステム、およびゲーム方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180913

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191008

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191129

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200427

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200501

R150 Certificate of patent or registration of utility model

Ref document number: 6701132

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250