JP6653293B2 - 情報処理システム、情報処理プログラム、情報処理装置、および、情報処理方法 - Google Patents

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

Info

Publication number
JP6653293B2
JP6653293B2 JP2017110647A JP2017110647A JP6653293B2 JP 6653293 B2 JP6653293 B2 JP 6653293B2 JP 2017110647 A JP2017110647 A JP 2017110647A JP 2017110647 A JP2017110647 A JP 2017110647A JP 6653293 B2 JP6653293 B2 JP 6653293B2
Authority
JP
Japan
Prior art keywords
frequency
vibration
vibrates
operating device
vibrating
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.)
Active
Application number
JP2017110647A
Other languages
English (en)
Other versions
JP2018206058A (ja
Inventor
竜矢 栗原
竜矢 栗原
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 JP2017110647A priority Critical patent/JP6653293B2/ja
Priority to US15/987,344 priority patent/US10596459B2/en
Publication of JP2018206058A publication Critical patent/JP2018206058A/ja
Application granted granted Critical
Publication of JP6653293B2 publication Critical patent/JP6653293B2/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/50Controlling the output signals based on the game progress
    • A63F13/53Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
    • A63F13/533Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game for prompting the player, e.g. by displaying a game menu
    • 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
    • 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/50Controlling the output signals based on the game progress
    • A63F13/53Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
    • A63F13/537Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game using indicators, e.g. showing the condition of a game character on screen
    • A63F13/5372Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game using indicators, e.g. showing the condition of a game character on screen for tagging characters, objects or locations in the game scene, e.g. displaying a circle under the character controlled by the player

Description

本発明は、振動部を振動させる情報処理システム、情報処理プログラム、情報処理装置、および、情報処理方法に関する。
従来より、2つの振動部を備えるシステムが提案されている(例えば、特許文献1参照)。当該システムは、2つの振動部の振動の強さによって振動源の位置をユーザに知覚させる。
特開2015−232786号公報
しかしながら、上記従来技術では振動源の位置を知覚させるためには2つの振動部が必要であった。
それ故、本発明の目的は、1つの振動部を用いて様々な振動をユーザに知覚させることが可能な情報処理システム、情報処理プログラム、情報処理装置、および、情報処理方法を提供することである。
上記の課題を解決すべく、本発明は、以下の構成を採用した。
本発明の一例は、指定された周波数で振動する振動部を備える操作装置と、前記振動部の振動を制御する振動制御部と、を備える情報処理システムである。前記振動部が第1の周波数で振動するとき、前記操作装置の第1の部分が当該操作装置の他の部分よりも強く振動し、前記振動部が前記第1の周波数とは異なる第2の周波数で振動するとき、前記第1の部分とは異なる前記操作装置の第2の部分が当該操作装置の他の部分よりも強く振動する。前記振動制御部は、所定の情報処理に基づいて、前記第1の周波数または前記第2の周波数で前記振動部を振動させる。
上記によれば、操作装置は、振動部を第1の周波数で振動させた場合に第1の部分が強く振動し、振動部を第2の周波数で振動させた場合に第2の部分が強く振動する。このような操作装置を、所定の情報処理に基づく周波数で振動させることで、操作装置の第1の部分又は第2の部分を強く振動させることができる。強く振動する操作装置の部分によって、所定の情報処理の結果をユーザに知覚させることができる。
ことができる。
また、他の構成では、前記振動部が前記第1の周波数で振動するとき、前記第1の部分は共振により他の部分よりも強く振動してもよい。
上記によれば、共振により操作装置の第2の部分を強く振動させることができる。
また、他の構成では、前記第2の部分は、前記第1の部分よりも前記振動部に近い部分であってもよい。
上記によれば、振動部が第2の周波数で振動するときには、振動部に近い第2の部分を強く振動させ、振動部が第1の周波数で振動するときには、振動部から離れた第1の部分を強く振動させることができる。
また、他の構成では、情報処理システムは、前記操作装置に対する操作に基づいて、所定範囲内における操作対象の位置を制御する位置制御部をさらに備えてもよい。前記振動制御部は、前記操作対象の位置が第1の位置である場合に前記振動部を前記第1の周波数で振動させ、前記操作対象の位置が第2の位置である場合に前記振動部を前記第2の周波数で振動させてもよい。
上記によれば、操作対象の位置が第1の位置の場合には、操作装置の第1の部分を強く振動させ、操作対象の位置が第2の位置の場合には、操作装置の第2の部分を強く振動させることができる。1つの操作装置を用いる場合でも、操作対象の位置を、振動によりユーザに知覚させることができる。
また、他の構成では、前記振動制御部は、前記操作対象の位置が前記第1の位置と前記第2の位置の間にある場合は、当該操作対象の位置に応じて、前記第1の周波数および前記第2の周波数のいずれかで前記振動部を振動させてもよい。
上記によれば、操作対象の位置が第1の位置と第2の位置の間である場合には、操作装置の第1の部分および第2の部分の何れか一方を強く振動させることができ、操作対象の位置によって、操作装置の強く振動する部分を切り替えることができる。
また、他の構成では、前記振動制御部は、前記操作対象の位置が前記第1の位置と前記第2の位置の間にある場合は、当該操作対象の位置に応じて、前記第1の周波数と前記第2の周波数との間の周波数で前記振動部を振動させてもよい。
上記によれば、操作対象の位置が第1の位置と第2の位置の間である場合には、操作対象の位置に応じて、振動部を第1の周波数と第2の周波数との間の周波数で振動させることができる。例えば、操作対象の位置が第1の位置(又は第2の位置)に近いほど、第1の周波数(又は第2の周波数)に近い周波数で振動部を振動させることができる。これにより、ユーザに周波数の違いを感じさせ、周波数の違いによって操作対象の位置を知覚させることができる。
また、他の構成では、前記振動制御部は、前記第1の周波数と強さとを含む第1の振動信号と、前記第2の周波数と強さとを含む第2の振動信号とを生成して前記操作装置に出力可能であってもよい。前記振動制御部は、前記操作対象の位置が前記第1の位置と前記第2の位置の間にある場合、前記操作対象の位置に応じて、前記第1の振動信号に含まれる前記強さ、および、前記第2の振動信号に含まれる前記強さを決定し、当該決定した強さを含む前記第1の振動信号および前記第2の振動信号のそれぞれを前記操作装置に出力してもよい。
上記によれば、2つの振動信号に基づいて振動部を振動させることができる。例えば、振動の強さのバランスを指定することにより、振動部を第1の周波数または第2の周波数で振動させたり、振動部を第1の周波数から第2の周波数の間の周波数で振動させたりすることができる。
また、他の構成では、前記所定範囲は、所定のリストにおける選択可能範囲であり、前記操作対象は、前記リストにおける選択中の項目を示すものであってもよい。前記振動制御部は、前記操作対象によって示される選択中の項目の前記リスト内における位置に応じて、前記振動部を振動させてもよい。
上記によれば、リストにおける選択中の項目の位置に応じて、振動部を第1の周波数または第2の周波数で振動させることができる。例えば、操作装置の第1の部分(例えば操作装置の上部)を強く振動させることで、選択中の項目がリスト内の第1の位置(例えば縦方向に並んだリストの上部付近)であることをユーザに知覚させることができる。
また、他の構成では、前記所定範囲は、仮想空間であり、前記操作対象は、プレイヤキャラクタであってもよい。前記振動制御部は、前記仮想空間内の所定の位置と前記プレイヤキャラクとの相対的な位置関係に応じて、前記振動部を振動させてもよい。
上記によれば、プレイヤキャラクタと仮想空間内の所定の位置との位置関係に応じて、振動部を第1の周波数または第2の周波数で振動させることができる。例えば、プレイヤキャラクタが所定の位置よりも上側にいる場合は、操作装置の上部を強く振動させることができる。
また、他の構成では、前記操作装置は、第1の操作装置と、第2の操作装置とを含んでもよい。前記第1の操作装置は、指定された周波数で振動する第1の振動部を含み、前記第2の操作装置は、指定された周波数で振動する第2の振動部を含んでもよい。前記第1の振動部が前記第1の周波数で振動するとき、前記第1の操作装置の第1の部分が当該第1の操作装置の他の部分よりも強く振動し、前記第1の振動部が前記第2の周波数で振動するとき、前記第1の部分とは異なる前記第1の操作装置の第2の部分が当該第1の操作装置の他の部分よりも強く振動してもよい。前記第2の振動部が前記第1の周波数で振動するとき、前記第2の操作装置の第1の部分が当該第2の操作装置の他の部分よりも強く振動し、前記第2の振動部が前記第2の周波数で振動するとき、前記第1の部分とは異なる前記第2の操作装置の第2の部分が当該第2の操作装置の他の部分よりも強く振動してもよい。前記振動制御部は、前記位置関係に応じて、前記第1の周波数または前記第2の周波数で前記第1の振動部を振動させるとともに、前記第1の周波数または前記第2の周波数で前記第2の振動部を振動させてもよい。
上記によれば、2つの操作装置を用いて、上記位置関係をユーザに知覚させることができる。例えば、第1の操作装置の第1の部分、第1の操作装置の第2の部分、第2の操作装置の第1の部分、および、第2の操作装置の第2の部分、のうちの何れが強く振動するかによって、上下左右方向の位置関係をユーザに知覚させることができる。
また、他の発明は、指定された周波数で振動する振動部を備える操作装置と、前記振動部の振動を制御する振動制御部と、前記操作装置に対する操作に基づいて、所定範囲内における操作対象の位置を制御する位置制御部と、を備える情報処理システムであってもよい。前記振動制御部は、前記操作対象の位置に応じた周波数で前記振動部を振動させる。
上記によれば、操作対象の位置に応じた周波数で操作部が振動するため、ユーザは、周波数に違いを知覚することにより、操作対象の位置を認識することができる。
また、他の発明は、上記情報処理システムに含まれるコンピュータで実行される情報処理プログラムであってもよいし、情報処理装置であってもよい。また、他の発明は、上記情報処理システムにおいて行われる情報処理方法であってもよい。
本発明によれば、1つの振動部を用いて様々な振動をユーザに知覚させることができる。
本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図 本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図 本体装置2の一例を示す六面図 左コントローラ3の一例を示す六面図 右コントローラ4の一例を示す六面図 本体装置2の内部構成の一例を示すブロック図 本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図 コントローラの振動子を振動させたときに強く振動する部分の一例を示す図 本実施形態のゲームシステム1の機能構成の一例を示す図 第1実施例におけるリストの選択の際にディスプレイ12に表示される画像の一例を示す図 第1実施例におけるリストの選択の際にディスプレイ12に表示される画像の一例を示す図 第1実施例におけるリストの選択の際にディスプレイ12に表示される画像の一例を示す図 カーソル350が指し示す項目のリスト内における位置に応じた周波数の一例を示す図 左コントローラ3が横長となる向きで把持される場合の選択画面の一例を示す図 左コントローラ3が横長となる向きで把持される場合の選択画面の一例を示す図 左コントローラ3および右コントローラ4を用いて左右方向の位置を振動により知覚させる場合の一例を示す図 第2実施例に係るゲームが行われる場合の仮想空間の一例を示す図 プレイヤキャラクタPと振動オブジェクトVSとの位置関係に応じた振動の制御を説明するための図 振動オブジェクトVSがプレイヤキャラクタPよりもZ軸負方向に位置するときの一例を示す図 プレイヤキャラクタPと振動オブジェクトVSとのZ軸方向の位置が同じときの一例を示す図 第1実施例において本体装置2に記憶されるデータの一例を示す図 第1実施例に係る選択処理が実行されるときの本体装置2において行われる処理の詳細を示すフローチャート 第2実施例に係るゲームが行われるときの本体装置2に記憶されるデータの一例を示す図 第2実施例に係るゲームが実行されるときの本体装置2において行われる処理の詳細を示すフローチャート
以下、本実施形態の一例に係るゲームシステムについて説明する。本実施形態におけるゲームシステム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は、処理部121を備える。処理部121は、通信制御部111に接続される。
右コントローラ4は、電力供給部118を備える。電力供給部118は、左コントローラ3の電力供給部108と同様の機能を有し、同様に動作する。
次に、本実施形態のゲームシステム1の左コントローラ3および右コントローラ4の振動の特徴について説明する。
図8は、コントローラの振動子を振動させたときに強く振動する部分の一例を示す図である。
図8に示されるように、振動子107は、左コントローラ3の下部の内部に配置されている。同様に、振動子117は、右コントローラ4の下部の内部に配置されている。振動子107,117は、所定の範囲の周波数で振動するように構成されている。本実施形態の左コントローラ3は、振動子107を第1の周波数で振動させたときは第1の部分(上部)が他の部分よりも強く振動し、振動子107を第2の周波数で振動させたときは第2の部分(下部)が他の部分よりも強く振動する。同様に、右コントローラ4は、振動子117を第1の周波数で振動させたときは第1の部分(上部)が他の部分よりも強く振動し、振動子117を第2の周波数で振動させたときは第2の部分(下部)が他の部分よりも強く振動する。
例えば、振動子107を330Hz付近で振動させた場合、振動子107から離れた左コントローラ3の上部が最も強く振動する。これは、左コントローラ3のハウジング31の大きさ(y軸方向の長さ、x軸方向の長さ、z軸方向の厚み)、振動子107の大きさや位置、重さ、左コントローラ3のハウジング31内の各種部品の位置や重さ等により、左コントローラ3のハウジング31全体が共振するためと考えられる。
このような共振が発生するのは、振動子107を330Hzで振動させた場合に限らず、例えば、振動子107を320Hz〜340Hzで振動させた場合に共振が発生してもよい。また、比較的低い周波数(例えば、240Hz)から比較的高い周波数(例えば、330Hz)まで周波数を上げていく場合に、例えば310Hz付近で左コントローラ3の上部が強く振動し始め、330Hz付近で左コントローラ3の上部が最も強く振動してもよい。
一方、振動子107を例えば240Hz付近で振動させた場合、左コントローラ3の下部が最も強く振動する。これは、振動子107の位置が近いためである。330Hz付近以外の周波数では共振は発生せず、この場合は、振動子107が配置された左コントローラ3の下部が最も強く振動する。例えば、振幅を固定して中間の周波数(240Hz付近より高く、かつ、330Hz付近よりも低い周波数)で振動子107を振動させた場合と、240Hzで振動子107を振動させた場合とで比較した場合、左コントローラ3の下部はほぼ同じ強さで振動する。
なお、240Hzで振動子107を振動させたときの方が、上記中間の周波数で振動子107を振動させたときよりも、左コントローラ3の下部がより強く振動してもよい。また、上記中間の周波数で振動子107を振動させた場合は、左コントローラ3の上部と下部の間の部分(例えば、ボタン33〜36が配置された部分または当該部分よりも下部寄りの部分)が最も強く振動してもよい。
右コントローラ4についても同様である。振動子117を例えば330Hz付近で振動させた場合、振動子117から離れた右コントローラ4の上部が、共振により最も強く振動する。振動子117を240Hz付近で振動させた場合、振動子117が近いため、右コントローラ4の下部が最も強く振動する。中間の周波数(240Hz付近より高く、かつ、330Hz付近よりも低い周波数)で振動子117を振動させた場合には、振動子117を240Hz付近で振動させた場合と同様に、右コントローラ4の下部が最も強く振動してもよい。
以下では、このような性質を有する左コントローラ3および右コントローラ4を用いた本実施形態の振動制御の概要について説明した後に、具体的な実施例について説明する。
図9は、本実施形態のゲームシステム1の機能構成の一例を示す図である。図9に示されるように、本体装置2は、位置制御部200と、振動制御部201とを含む。本体装置2のプロセッサ81は、所定のプログラム(後述するプログラムD101、ゲームプログラムD201等)を実行することにより、位置制御部200、振動制御部201として機能する。所定のプログラムは、例えば、スロット23に装着される外部記憶媒体に記憶されてもよいし、フラッシュメモリ84に記憶されてもよいし、外部からネットワークを介して取得されてもよい。
位置制御部200は、所定の情報処理を行う。具体的には、位置制御部200は、左コントローラ3および/または右コントローラ4に対して行われたプレイヤの操作に応じた操作データを取得し、取得した操作データに基づいて、所定範囲における操作対象の位置を制御する。例えば、位置制御部200は、操作データに基づいて、操作対象として、後述するリスト内におけるカーソル350の位置を制御する。また、位置制御部200は、操作データに基づいて、操作対象として、後述する仮想空間におけるプレイヤキャラクタPの位置を制御する。
振動制御部201は、左コントローラ3の振動子107および/または右コントローラ4の振動子117の振動を制御する。振動制御部201は、振動子107および/または振動子117の振動を制御するための振動制御信号を生成し、生成した振動制御信号を、左コントローラ3および/または右コントローラ4に出力する。
具体的には、振動制御部201は、位置制御部200によって制御される操作対象の位置が第1の位置の場合、第1の周波数で振動子107および/または振動子117を振動させる。また、振動制御部201は、位置制御部200によって制御される操作対象の位置が第2の位置の場合、第2の周波数で振動子107および/または振動子117を振動させる。
(第1実施例)
次に、第1実施例について説明する。第1実施例では、左コントローラ3および右コントローラ4のいずれか一方を用いて、複数の項目を有するリストの中から何れかの項目を選択する選択処理が行われる。この選択処理において、コントローラを振動させる。以下では、左コントローラ3を用いて選択処理を行う場合について説明するが、右コントローラ4を用いる場合も同様である。
図10A〜図10Cは、第1実施例におけるリストの選択の際にディスプレイ12に表示される画像の一例を示す図である。
所定のアプリケーション(例えば、ゲームアプリケーション)の実行中に、ユーザの操作に応じて、図10Aに示される選択画面が表示される。選択画面には、複数の項目が縦方向に並んだリスト300が表示される。例えば、リスト300は、項目1〜項目20の20個の項目を含む。リスト300内の複数の項目のうちの一部が表示範囲として設定され、初期的には、図10Aに示されるように、リスト300における項目1〜項目6が画面に表示される。また、選択画面には、現在選択中の項目の位置を示すカーソル350が表示される。初期的にはカーソル350は、リスト300における先頭(項目1)に設定される。
カーソル350は、現在選択中の項目を示すものである。ユーザによって左コントローラ3のスティック32の下方向が入力されると、カーソル350が下方向に移動する。カーソル350が移動するとき、左コントローラ3の振動子107が振動する。具体的には、移動後のカーソル350が指し示す項目のリスト内における位置に応じた周波数で、振動子107が振動する。
図11は、カーソル350が指し示す項目のリスト内における位置に応じた周波数の一例を示す図である。
図10Aおよび図11に示されるように、移動後のカーソル350の位置が、リスト300における先頭付近(例えば、項目1〜項目3)の場合、振動子107を330Hz付近で振動させる。具体的には、本体装置2は、周波数として330Hzを指定するとともに、振幅として固定の値(例えば、「1」)を指定した振動制御信号を生成し、当該振動制御信号を左コントローラ3に出力する。左コントローラ3は、本体装置2からの振動制御信号に基づいて、振動子107を振動させる。
上述のように、振動子107を330Hz付近で振動させた場合、左コントローラ3の上部が共振により最も強く振動する。左コントローラ3の上部が強く振動することにより、ユーザは、選択中の項目の位置がリストの先頭付近(項目1〜項目3)であることを認識することができる。なお、カーソル350の位置が項目1〜項目3の範囲では、周波数は、例えば330Hz〜320Hzの範囲で変化されてもよい。例えば、振動子107の周波数は、カーソル350の位置が「項目1」の場合には、330Hzに設定され、カーソル350の位置が「項目2」の場合には、325Hzに設定され、カーソル350の位置が「項目3」の場合には、320Hzに設定されてもよい。
ユーザがスティック32の下方向を入力し続けると、カーソル350の位置(選択中の項目の位置)が項目2、項目3へと順に移動し、カーソル350が移動する毎に振動子107が振動する。カーソル350の位置が項目6に達すると、カーソル350は画面の下方に表示される。この状態でユーザがスティック32の下方向を入力し続けると、図10Bに示されるように、カーソル350は画面の下方に表示されたまま、リストの全体が上方向に移動する。
ここで、図11に示されるように、カーソル350が項目4以上の位置に移動するときには、振動子107は、中間の周波数(240Hz付近より高く、かつ、330Hz付近よりも低い周波数)で振動する。具体的には、本体装置2は、カーソル350が指し示す項目のリスト内における位置に応じた周波数を指定するとともに、振幅として固定の値(例えば、「1」)を指定した振動制御信号を生成して左コントローラ3に出力する。例えば、項目4〜項目19の範囲では、周波数は、カーソル350の位置に応じて、320Hz〜250Hzの範囲で線形的に変化されてもよい。
図10Bに示される状態からさらにスティック32の下方向が入力されると、リスト300の全体が画面の上方に移動し、図10Cに示されるように、カーソル350がリスト内の最後の項目20まで移動する。図11に示されるように、カーソル350がリスト内の最後尾(項目20)に移動するときには、振動子107は、例えば240Hz付近で振動する。具体的には、本体装置2は、周波数として240Hzを指定するとともに、振幅として固定の値(例えば、「1」)を指定した振動制御信号を生成して出力する。
上述のように、振動子107を240Hz付近で振動させた場合、左コントローラ3の下部が最も強く振動する。左コントローラ3の下部が強く振動することにより、ユーザは、選択中の項目の位置がリストの最後尾付近であることを認識することができる。
なお、カーソル350がリスト内の最後尾付近(例えば、項目18〜項目20)のときには、周波数は240Hzに固定されてもよい。この場合、カーソル350の位置が項目4〜項目17に変化するにしたがって、周波数は、例えば320Hzから250Hzまで減少し、カーソル350の位置が項目18以上になると、周波数は240Hzに固定される。
このように、第1実施例では、選択中の項目のリスト内の位置に応じて、異なる周波数で振動子107を振動させることにより、左コントローラ3の上部または下部を他の部分よりも強く振動させる。選択中の項目のリスト内の位置が第1の位置(先頭付近)の場合には、第1の周波数で振動子107を振動させ、選択中の項目のリスト内の位置が第2の位置(末尾付近)の場合には、第2の周波数で振動子107を振動させる。これにより、ユーザに、選択中の項目のリスト内の位置を振動により認識させることができる。
また、選択中の項目がリスト内の上部位置(先頭付近)である場合には、左コントローラ3の上部が強く振動し、選択中の項目がリスト内の下部位置(末尾付近)である場合には、左コントローラ3の下部が強く振動するため、ユーザは、リスト内のどの位置を選択しているのかを直感的に認識することができる。
また、リスト内のカーソル350の位置に応じて周波数が変化するため、ユーザは、周波数の違いを感じることにより、リスト内におけるカーソル350の位置を認識することができる。
なお、左コントローラ3または右コントローラ4が横長となる向きで把持され、選択画面において横方向にリストの項目が並べられてもよい。図12Aおよび図12Bは、左コントローラ3が横長となる向きで把持される場合の選択画面の一例を示す図である。
図12Aに示されるように、項目1〜項目20が左から右に向かって順に並べられている場合、左コントローラ3は、第1Lボタン38が左側となるように(振動子107が右側となるように)横長の姿勢で把持される。この場合において、カーソル350が項目1を指し示す場合は、振動子107は330Hz付近で振動され、左コントローラ3の左部分(縦長となる姿勢で把持されたときの上部)が最も強く振動する。
また、図12Bに示されるように、カーソル350が項目20を指し示す場合は、振動子107は240Hz付近で振動され、左コントローラ3の右部分(縦長となる姿勢で把持されたときの下部)が最も強く振動する。
カーソル350が項目1と項目20との中間に位置する場合、振動子107は、カーソル350の位置に応じた周波数(240Hz付近より高く、かつ、330Hz付近よりも低い周波数)で振動する。
このように、コントローラが横長となる向きで把持される場合でも、コントローラの最も強く振動する部分の位置と、選択中の項目のリストにおける位置とが合うため、ユーザは、リスト内における選択中の項目の位置を振動によって直感的に把握することができる。
なお、リスト内の各項目が横方向に並べられる場合において、左コントローラ3および右コントローラ4の両方を用いて、選択中の項目の位置をユーザに知覚させてもよい。
図13は、左コントローラ3および右コントローラ4を用いて左右方向の位置を振動により知覚させる場合の一例を示す図である。
ユーザは左手に左コントローラ3を把持し、右手に右コントローラ4を把持するものとする。図13に示されるように、項目1〜項目20が左から右に向かって順に並べられている場合において、最も左側の項目1が選択された場合、左コントローラ3を右コントローラ4よりも強く振動させる。また、図示は省略するが、最も右側の項目20が選択された場合、右コントローラ4を左コントローラ3よりも強く振動させる。また、リスト内の中間の項目10が選択された場合は、左コントローラ3および右コントローラ4を同じ強さで振動させる。このように、左右のコントローラ3,4の振動の強さのバランスを変化させることで、ユーザは、選択中の項目(カーソル350が指し示す項目)のリスト内における位置を認識することができる。
上記の第1実施例においては、選択中の項目のリスト内の位置と、コントローラの強く振動する位置を合わせることで、選択中の項目の位置を認識させ易くすることができる。一方で、選択中の項目のリスト内の位置と、コントローラの強く振動する位置の関係を上記の第1実施例と逆にしてもよい。この場合は、選択中の項目の位置ではなく、リスト全体の動きを感じることができる。
(第2実施例)
次に、第2実施例について説明する。第2実施例では、左コントローラ3および右コントローラ4を用いて、仮想空間に配置された振動源のオブジェクトを探すゲームが行われる。
図14は、第2実施例に係るゲームが行われる場合の仮想空間の一例を示す図である。
図14に示されるように、仮想空間には、XYZ座標系が定義される。例えば、X軸は、仮想空間の右方向に伸びる軸であり、Y軸は、仮想空間の高さ方向に伸びる軸であり、Z軸は、仮想空間の奥方向に伸びる軸である。
仮想空間内には、プレイヤキャラクタPと、地面オブジェクトGと、振動源としての振動オブジェクトVSとが配置される。また、仮想空間には、仮想カメラが配置される。仮想カメラは、地面オブジェクトGの全体を斜め上方から見る位置に固定されている。第2実施例に係るゲームが行われている間、図14に示されるような画像がディスプレイ12(又は他の表示装置でもよい)に表示される。
地面オブジェクトGは、例えば、XZ平面と平行な平面である。なお、地面オブジェクトGは、曲面によって形成されてもよい。また、地面オブジェクトGは、起伏を有してもよい。地面オブジェクトG上に他のオブジェクトが配置されてもよい。
振動オブジェクトVSは、振動を発生させるためのオブジェクトである。振動オブジェクトVSは、地面オブジェクトGの下に埋まっている。したがって、振動オブジェクトVSは、ディスプレイ12の画面には表示されない。
プレイヤキャラクタPは、左コントローラ3のスティック32に対する操作に基づいて、地面オブジェクトG上を移動する。
第2実施例に係るゲームでは、プレイヤキャラクタPと振動オブジェクトVSとの位置関係に応じて、左コントローラ3の振動子107および右コントローラ4の振動子117の振動の周波数および強さ(振幅)が制御される。具体的には、プレイヤキャラクタPと振動オブジェクトVSとのZ軸方向(画面の上下方向)の位置関係に応じて、振動子107および振動子117の周波数が制御される。
例えば、振動オブジェクトVSがプレイヤキャラクタPよりもZ軸正方向(画面の上方向)に位置するとき(プレイヤキャラクタPの位置が第1の位置のとき)、振動子107および振動子117は、第1の周波数(330Hz付近)で振動する。これにより、左コントローラ3および右コントローラ4の上部が強く振動する。また、振動オブジェクトVSがプレイヤキャラクタPよりもZ軸負方向(画面の下方向)に位置するとき(プレイヤキャラクタPの位置が第2の位置のとき)、振動子107および振動子117は、第2の周波数(240Hz付近)で振動する。これにより、左コントローラ3および右コントローラ4の下部が強く振動する。また、振動オブジェクトVSとプレイヤキャラクタPとのZ軸方向における位置が一致しているとき、振動子107および振動子117は、第1の周波数と第2の周波数との間の周波数(例えば、280Hz付近)で振動する。
なお、振動オブジェクトVSがプレイヤキャラクタPよりもZ軸正方向に位置し、かつ、振動オブジェクトVSおよびプレイヤキャラクタPのZ座標値の差が所定の値以上のとき(プレイヤキャラクタPの位置が第1の位置のとき)、振動子107および振動子117は、第1の周波数で振動してもよい。また、振動オブジェクトVSがプレイヤキャラクタPよりもZ軸負方向に位置し、かつ、Z座標値の差が所定の値以上のとき(プレイヤキャラクタPの位置が第2の位置のとき)、振動子107および振動子117は、第2の周波数で振動してもよい。この場合において、プレイヤキャラクタPが第1の位置と第2の位置との間に位置するとき、プレイヤキャラクタPの位置に応じて、振動子107および振動子117を第1の周波数と第2の周波数との間の周波数で振動させてもよい。
また、振動オブジェクトVSおよびプレイヤキャラクタPのZ座標値の差が所定の値未満のときは、周波数は基準値(例えば、280Hz)に固定されてもよい。周波数が基準値に設定される位置からプレイヤキャラクタPがZ軸正方向に移動してZ座標値の差が所定の値以上となったときには、周波数は、上記基準値よりも低い値(例えば240Hz)に変化されてもよい。また、周波数が基準値に設定される位置からプレイヤキャラクタPがZ軸負方向に移動してZ座標値の差が所定の値以上となったときには、周波数は、上記基準値よりも高い値(例えば330Hz)に変化されてもよい。
振動子107および振動子117の振動の振幅は、プレイヤキャラクタPと振動オブジェクトVSとの距離に応じて、制御される。また、振幅は、プレイヤキャラクタPと振動オブジェクトVSとのX軸方向(画面の左右方向)の位置関係に応じて、制御される。
具体的には、プレイヤキャラクタPと振動オブジェクトVSとの距離が近いほど、振幅が大きくなる。プレイヤキャラクタPが振動オブジェクトVSの真上に存在する場合、振幅は最も大きくなり(例えば、振幅として「1」が設定され)、距離が所定以上離れると、振幅は0となる。
また、例えば、プレイヤキャラクタPの左側に振動オブジェクトVSが存在する場合には、左コントローラ3が右コントローラ4よりも強く振動するように、振動子107および117が振動する。プレイヤキャラクタPの右側に振動オブジェクトVSが存在する場合には、右コントローラ4が左コントローラ3よりも強く振動するように、振動子107および117が振動する。また、プレイヤキャラクタPが、振動オブジェクトVSを通ってZ軸に平行な直線上に位置する場合(つまり、振動オブジェクトVSおよびプレイヤキャラクタPが左右方向にずれていない場合)、左コントローラ3および右コントローラ4は同じ強さで振動する。
プレイヤは、左コントローラ3および右コントローラ4の振動を感じて振動オブジェクトVSの位置を推測する。例えば、左コントローラ3および/または右コントローラ4の上部が他の部分よりも強く振動している場合、プレイヤは、プレイヤキャラクタPの上側(画面の上側)に振動オブジェクトVSが埋まっていると推測することができる。また、例えば、左コントローラ3の方が右コントローラ4よりも強く振動している場合、プレイヤは、プレイヤキャラクタPの左側に振動オブジェクトVSが埋まっていると推測することができる。また、左コントローラ3および右コントローラ4の振動が弱い場合、プレイヤは、振動オブジェクトVSはプレイヤキャラクタPから離れていると推測することができる。
このようにして、プレイヤは、左コントローラ3および/または右コントローラ4の上部が強く振動しているか、あるいは、下部が強く振動しているかによって、振動オブジェクトVSのZ軸方向の位置を推測する。また、プレイヤは、左右のコントローラ3,4の振動の強さおよびそのバランスから、振動オブジェクトVSとの距離および振動オブジェクトVSのX軸方向の位置を推測する。そして、プレイヤは、推測した位置にプレイヤキャラクタPを移動させて特定の操作(例えば、Aボタン53を押下すると共にZRボタン61を押下する操作)を行う。推測した位置の下に振動オブジェクトVSが存在する場合、プレイヤキャラクタPは、所定のアイテムを入手することができる。
次に、左コントローラ3の振動子107および右コントローラ4の振動子117の具体的な制御について説明する。図15は、プレイヤキャラクタPと振動オブジェクトVSとの位置関係に応じた振動の制御を説明するための図である。図16は、振動オブジェクトVSがプレイヤキャラクタPよりもZ軸負方向に位置するときの一例を示す図である。図17は、プレイヤキャラクタPと振動オブジェクトVSとのZ軸方向の位置が同じときの一例を示す図である。図15〜図17では、仮想空間を上方から見た図が示されている。
図15に示されるように、まず、プレイヤキャラクタPの位置から振動オブジェクトVSの位置に向かうベクトルVeが算出される。このベクトルVeのZ軸成分であるベクトルVzに基づいて、振動子107および振動子117の周波数が設定される。例えば、図15に示されるように、ベクトルVzがZ軸正方向と同じ方向である場合、周波数は、330Hzに設定される。このため、図15に示される位置関係では、左コントローラ3および右コントローラ4は、その上部が他の部分よりも強く振動する。なお、ベクトルVzの大きさが所定値(0より大きな値)以上であり、かつ、ベクトルVzがZ軸正方向と同じ方向である場合に、周波数が、330Hzに設定されてもよい。
また、図16に示されるように、ベクトルVeのZ軸成分であるベクトルVzがZ軸負方向と同じ方向である場合、周波数は、240Hzに設定される。このため、図16に示される位置関係では、左コントローラ3および右コントローラ4は、その下部が他の部分よりも強く振動する。なお、ベクトルVzの大きさが所定値(0より大きな値)以上であり、かつ、ベクトルVzがZ軸負方向と同じ方向である場合に、周波数が、240Hzに設定されてもよい。
また、図17に示されるように、ベクトルVeがX軸と平行の場合、すなわち、振動オブジェクトVSおよびプレイヤキャラクタPのZ座標値の差が「0」の場合、周波数は、中間の値(240Hzより高く、かつ、330Hzより低い値。例えば、280Hz)に設定される。なお、ベクトルVzの大きさ(つまり、振動オブジェクトVSおよびプレイヤキャラクタPのZ座標値の差)が所定値未満の場合には、周波数は、ベクトルVzの大きさに応じて、330Hz〜240Hzの範囲で設定されてもよい。
図15に戻り、振動子107および振動子117の振動強さ(振幅)の設定について説明する。振動子107および振動子117の振動強さは、ベクトルVeの大きさ(プレイヤキャラクタPと振動オブジェクトVSとの距離)と、ベクトルVeの方向とに基づいて設定される。まず、プレイヤキャラクタPと振動オブジェクトVSとの距離に基づいて、振動子107および振動子117の「基準となる振動強さ(振幅)」が求められる。
例えば、「基準となる振動強さ」は、プレイヤキャラクタPと振動オブジェクトVSとの距離に応じて0〜1の範囲で決定され、当該距離が短いほど、大きくなる。例えば、距離が長くなるにしたがって、基準となる振動強さが一次関数的に減少するようにしてもよい。また、距離に反比例して基準となる振動強さが変化してもよい。また、距離が所定範囲内の場合には、基準となる振動強さは固定され、距離が所定以上の場合には、距離が長くなるにしたがって減少するようにしてもよい。距離と基準となる振動強さとの関係は他の任意の関数に基づいて決定されてもよい。
「基準となる振動強さ」が求まると、振動子107および振動子117の振動強さのバランスが決定される。図15に示されるように、仮想空間には、プレイヤキャラクタPの位置を通り、X軸に平行な直線上に参照点LおよびRが設定される。プレイヤキャラクタPの位置から参照点Lに向かうベクトルと、上記ベクトルVeとがなす角θLが算出され、角θLに基づいて、減衰係数CLが算出される。減衰係数CLは、例えば0〜1の範囲で算出される。例えば、減衰係数CLは、角θLが0°〜90°の範囲では「1」に設定され、角θLが90°を超えると「1」より小さくなり、角θLが180°のときには「0」に設定されてもよい。また、例えば、角θLが0°〜180°まで変化するにしたがって、減衰係数CLが1〜0まで線形的に変化してもよい。そして、プレイヤキャラクタPと振動オブジェクトVSとの距離に応じて決定された「基準となる振動強さ」に、角θLに基づいて算出された減衰係数CLを乗じることにより、振動子107の振動強さ(振幅)が決定される。
右コントローラ4の振動子117についても同様である。右コントローラ4の振動子117の振動強さは、プレイヤキャラクタPの位置から参照点Rに向かうベクトルと、上記ベクトルVeとがなす角θRに基づいて決定される。具体的には、角θRに基づいて減衰係数CR(例えば、0〜1の範囲)が算出され、プレイヤキャラクタPと振動オブジェクトVSとの距離に応じて決定された「基準となる振動強さ」に、減衰係数CRを乗じることにより、振動子117の振動強さ(振幅)が決定される。
例えば、角θLと角θRとが等しい場合(すなわち、90°の場合)、振動子107および振動子117の振動強さは同じになる。また、角θLが90°より小さく、角θRが90°よりも大きい場合、振動子107の方が振動子117よりも強く振動する。
なお、第2実施例に係るゲームでは、仮想カメラが仮想空間に固定されるものとしたが、プレイヤの操作に応じて、または、プログラムによって自動的に、仮想カメラの位置および姿勢が変化されてもよい。この場合、上記角θLおよびθRは、仮想カメラの向きに応じて変化してもよい。例えば、仮想カメラに固定のカメラ座標系が設定され、仮想カメラの右方向にカメラ座標系のXc軸が設定される場合、Xc軸に平行であってプレイヤキャラクタPの位置を通る直線上に、上記参照点LおよびRが設定されてもよい。そして、当該参照点LおよびRに基づいて上記角θLおよびθRが算出され、振動子107および振動子117の振動強さが算出されてもよい。
このようにして算出された周波数および振動子107の振動強さ(振幅)を含む第1の振動制御信号が生成され、左コントローラ3に出力される。同様に、算出された周波数および振動子117の振動強さ(振幅)を含む第2の振動制御信号が生成され、右コントローラ4に出力される。
第1の振動制御信号および第2の振動制御信号は、所定の時間間隔(例えば、5m秒間隔)で生成され、左コントローラ3および右コントローラ4にそれぞれ送信される。これにより、振動子107および振動子117が、プレイヤキャラクタPと振動オブジェクトVSとの位置関係に応じた周波数および振幅で振動する。
以上のように、第2実施例では、プレイヤキャラクタPのXZ平面におけるZ軸方向の位置に応じて、振動子107および振動子117の周波数が設定される。振動オブジェクトVSがプレイヤキャラクタPの上側(Z軸正方向)に位置する場合は、左コントローラ3および右コントローラ4の上部が強く振動する。また、プレイヤキャラクタPのXZ平面におけるX軸方向の位置に応じて、振動子107および振動子117の振幅が設定される。振動オブジェクトVSがプレイヤキャラクタPの右側(X軸正方向)に位置する場合は、右コントローラ4がより強く振動し、振動オブジェクトVSがプレイヤキャラクタPの左側(X軸負方向)に位置する場合は、左コントローラ3がより強く振動する。
このように左右の振動子107、117の周波数および振幅を設定することにより、左コントローラ3および右コントローラ4のどの部分が強く振動しているかによって、振動オブジェクトVSがプレイヤキャラクタPの上下左右方向のうち何れに位置するのかをプレイヤに認識させることができる。
例えば、左コントローラ3が右コントローラ4よりも強く振動し、かつ、左コントローラ3の上部が当該コントローラの他の部分よりも強く振動している場合には、プレイヤは、プレイヤキャラクタPの左上方向(X軸負方向かつZ軸正方向)に振動オブジェクトVSが存在することを認識することができる。また、左コントローラ3が右コントローラ4よりも強く振動し、かつ、左コントローラ3の下部が当該コントローラの他の部分よりも強く振動している場合には、プレイヤは、プレイヤキャラクタPの左下方向(X軸負方向かつZ軸負方向)に振動オブジェクトVSが存在することを認識することができる。
また、左コントローラ3および右コントローラ4の周波数の変化によって、プレイヤは、振動オブジェクトVSの上下方向(Z軸方向)の位置を推測することができる。
(処理の詳細)
次に、上記第1実施例および第2実施例の処理の詳細について説明する。まず、第1実施例について説明した後、第2実施例について説明する。
(第1実施例の処理の詳細)
図18は、第1実施例において本体装置2に記憶されるデータの一例を示す図である。図18に示されるように、本体装置2には、プログラムD101と、操作データD102と、リストデータD103と、カーソル位置データD104と、振動制御信号D105とが記憶される。なお、本体装置2には、図18に示す他にも様々なデータやプログラムが記憶される。
プログラムD101は、上述した第1実施例の項目の選択処理を実行するためのプログラムである。
操作データD102は、左コントローラ3または右コントローラ4に対して行われた操作に応じたデータであり、左コントローラ3または右コントローラ4から送信される。本実施形態では、本体装置2と、左コントローラ3または右コントローラ4とは、所定の時間間隔(例えば、1/200秒間隔)で通信を行う。当該通信において、左コントローラ3または右コントローラ4から本体装置2に操作データが送信される。また、当該通信において、振動制御信号D105が、本体装置2から左コントローラ3または右コントローラ4に送信される。
リストデータD103は、選択項目の数および各項目のそれぞれを示すデータである。例えば、リストが項目1〜項目20を含む場合、リストデータD103には、選択項目の数として「20」が含まれるとともに、項目1〜項目20のそれぞれを示すデータが含まれる。各項目には、リスト内における位置を示す数値(1〜20)が割り振られる。
カーソル位置データD104は、カーソル350のリスト内における位置を示すデータである。例えば、リストが項目1〜項目20を含む場合、カーソル位置データD104として、「1」〜「20」のうちの何れかの数値が記憶される。
振動制御信号D105は、左コントローラ3の振動子107または右コントローラ4の振動子117を振動させるための振動制御信号を示すデータであり、周波数および振幅を含む。
次に、第1実施例に係る選択処理の詳細について説明する。
図19は、第1実施例に係る選択処理が実行されるときの本体装置2において行われる処理の詳細を示すフローチャートである。図19に示す処理は、本体装置2のプロセッサ81がプログラムD101(情報処理プログラム)を実行することにより行われる。以下では、左コントローラ3を用いて選択処理を行うものとするが、右コントローラ4が用いられる場合も同様である。
図19に示されるように、本体装置2のプロセッサ81(以下、単に「本体装置2」)は、まず、初期設定を行う(ステップS1)。具体的には、本体装置2は、初期設定において、選択項目の数および各項目を設定し、リストデータD103としてDRAM85に記憶する。例えば、本体装置2は、選択項目の数として「20」を設定するとともに、リスト内の項目として「項目1」〜「項目20」を設定する。また、本体装置2は、カーソル350の位置をリスト内の先頭(項目1)に設定する。また、本体装置2は、表示範囲(表示する項目)を設定する。ステップS1の処理の後、本体装置2は、ステップS2〜ステップS8の処理を、例えば1/60秒(1フレーム時間という)間隔で繰り返し実行する。
ステップS1に続いて、本体装置2は、左コントローラ3から送信された操作データを取得する(ステップS2)。具体的には、左コントローラ3は、所定の時間間隔(例えば、1/200秒間隔)で操作に応じた操作データを本体装置2に送信する。本体装置2は、左コントローラ3から送信された操作データをDRAM85に一時的に記憶する。本体装置2は、ステップS2において、DRAM85に記憶された操作データを取得する。
次に、本体装置2は、取得した操作データに基づいて、カーソル350の移動操作が行われたか否かを判定する(ステップS3)。例えば、左コントローラ3のスティック32を用いて上下方向の入力が行われた場合、本体装置2は、カーソル350の移動操作が行われたと判定する。
カーソル350の移動操作が行われたと判定した場合(ステップS3:YES)、本体装置2は、カーソル350の位置を更新する(ステップS4)。例えば、本体装置2は、スティック32を用いて下方向の入力が行われた場合、現在のカーソル350の位置を示す値に「1」を加えることにより、カーソル位置データD104を更新する。また、例えば、本体装置2は、スティック32を用いて上方向の入力が行われた場合、現在のカーソル350の位置を示す値から「1」を減ずることにより、カーソル位置データD104を更新する。なお、現在のカーソル350の位置を示す値が「20」の場合において、スティック32を用いて下方向の入力が行われた場合、カーソル位置データD104は更新されない。また、現在のカーソル350の位置を示す値が「1」の場合において、スティック32の上方向が操作された場合、カーソル位置データD104は更新されない。
ステップS4に続いて、本体装置2は、ステップS4で更新したカーソル350の位置に応じて、振動子107の周波数を設定する(ステップS5)。例えば、更新後のカーソル350の位置が「1」〜「3」の場合、本体装置2は、周波数を高い値(例えば、330Hz)に設定する。また、更新後のカーソル350の位置が「4」〜「19」の場合、本体装置2は、周波数を中間の値(例えば、330Hzより低く、240Hzより高い値)に設定する。例えば、カーソル350の位置を示す値が「1」だけ増加する毎に、周波数を「5Hz」だけ減少させてもよい。また、更新後のカーソル350の位置が「20」の場合、本体装置2は、周波数を低い値(例えば、240Hz)に設定する。
次に、本体装置2は、左コントローラ3に出力するための振動制御信号を生成する(ステップS6)。具体的には、本体装置2は、ステップS5で設定した周波数を含む振動制御信号を生成して、振動制御信号D105として記憶する。振動制御信号D105は、本体装置2と左コントローラ3との間の通信において、本体装置2から左コントローラ3に出力される。
なお、ステップS4において、カーソル350の位置が更新されなかった場合、ステップS6において振動制御信号は生成されなくてもよい。すなわち、カーソル350の位置が変化しておらず、カーソル350が特定の項目を指し示している状態が所定時間継続している場合には、振動制御信号は生成されなくてもよい。
ステップS6に続いて、本体装置2は、表示範囲を設定し、設定した表示範囲に含まれる複数の項目とカーソル350とを含む画像を生成し、生成した画像をディスプレイ12に出力する(ステップS7)。
ステップS7に続いて、本体装置2は、図19に示す処理を終了するか否かを判定する(ステップS8)。例えば、ユーザによって項目の決定操作(例えば、ZLボタン39の押下)が行われた場合は、本体装置2は、カーソル350が指し示す項目を決定し、図19に示す処理を終了する。図19に示す処理を終了しないと判定した場合には、本体装置2は、再びステップS2の処理を実行する。以上で図19の説明を終了する。
なお、図19に示す処理は単なる一例であり、例えば各ステップの順番を入れ替えたり、他のステップが加えられたり、上記ステップの一部が省略されたりしてもよい。また、各処理で用いた数値は単なる一例であり、他の値が用いられてもよい。
(第2実施例の処理の詳細)
次に、第2実施例に係るゲームが行われる場合の処理の詳細について説明する。図20は、第2実施例に係るゲームが行われるときの本体装置2に記憶されるデータの一例を示す図である。
図20に示されるように、本体装置2には、ゲームプログラムD201と、操作データD202と、キャラクタデータD203と、振動オブジェクトデータD204と、左振動制御信号D205と、右振動制御信号D206とが記憶される。なお、本体装置2には、図20に示す他にも様々なデータやプログラムが記憶される。
ゲームプログラムD201は、上記第2実施例に係るゲームを実行するためのプログラムである。
操作データD202は、左コントローラ3および右コントローラ4に対して行われた操作に応じたデータであり、左コントローラ3および右コントローラ4から送信される。本実施形態では、本体装置2と、左コントローラ3および右コントローラ4とは、所定の時間間隔(例えば、1/200秒間隔)で通信を行う。当該通信において、左コントローラ3および右コントローラ4から本体装置2に操作データが送信される。また、当該通信において、左振動制御信号D205および右振動制御信号D206が、本体装置2から左コントローラ3および右コントローラ4にそれぞれ送信される。
キャラクタデータD203は、プレイヤキャラクタPの位置、向き、移動速度、移動方向等に関するデータである。
振動オブジェクトデータD204は、仮想空間に配置される振動オブジェクトVSの位置に関する情報を含むデータである。
左振動制御信号D205は、左コントローラ3の振動子107を振動させるための第1の振動制御信号を示すデータであり、周波数および振幅を含む。右振動制御信号D206は、右コントローラ4の振動子117を振動させるための第2の振動制御信号を示すデータであり、周波数および振幅を含む。
次に、第2実施例に係るゲーム処理の詳細について説明する。
図21は、第2実施例に係るゲームが実行されるときの本体装置2において行われる処理の詳細を示すフローチャートである。図21に示す処理は、本体装置2のプロセッサ81がゲームプログラムD201(情報処理プログラム)を実行することにより行われる。
図21に示されるように、本体装置2のプロセッサ81(以下、単に「本体装置2」)は、まず、初期設定を行う(ステップS10)。具体的には、本体装置2は、仮想空間を設定し、振動オブジェクトVS、および、プレイヤキャラクタPを仮想空間内に配置する。また、本体装置2は、仮想空間の所定位置に仮想カメラを設定する。ステップS10の処理の後、本体装置2は、ステップS11〜ステップS20の処理を、例えば1/60秒(1フレーム時間という)間隔で繰り返し実行する。
ステップS10に続いて、本体装置2は、左コントローラ3および右コントローラ4から送信された操作データを取得する(ステップS11)。
次に、本体装置2は、取得した操作データに基づいて、プレイヤキャラクタPを仮想空間内で動作させる(ステップS12)。例えば、左コントローラ3のスティック32が操作された場合、本体装置2は、仮想空間においてプレイヤキャラクタPをスティック32の操作方向に応じた方向に移動させ、プレイヤキャラクタPの位置および向きを更新する。本体装置2は、更新したプレイヤキャラクタPの位置および向きを、キャラクタデータD203として記憶する。
ステップS12に続いて、本体装置2は、プレイヤキャラクタPから振動オブジェクトVSに向かうベクトルVeを算出する(ステップS13)。次に、本体装置2は、プレイヤキャラクタPと振動オブジェクトVSとの距離(ベクトルVeの大きさ)を算出し、当該距離に基づいて、基準となる振動強さを算出する(ステップS14)。
次に、本体装置2は、ベクトルVeのZ軸成分ベクトルVzに基づいて、振動子107および117の周波数を設定する(ステップS15)。例えば、本体装置2は、Z軸成分のベクトルVzがZ軸正方向を向く場合、振動子107および117の周波数を比較的高い値(例えば、330Hz)に設定する。また、例えば、本体装置2は、Z軸成分のベクトルVzがZ軸負方向を向く場合、振動子107および117の周波数を比較的低い値(例えば、240Hz)に設定する。なお、ベクトルVzの大きさ(プレイヤキャラクタPと振動オブジェクトVSとのZ座標値の差)が所定値未満のときは、本体装置2は、当該ベクトルVzの大きさに応じて、周波数を330Hz〜240Hzの範囲で設定してもよい。
ステップS15に続いて、本体装置2は、角θLおよび角θRを算出する(ステップS16)。具体的には、本体装置2は、仮想空間のX軸負方向のベクトルと、ベクトルVeとがなす角θLを算出する。また、本体装置2は、仮想空間のX軸正方向のベクトルと、ベクトルVeとがなす角θRを算出する。
次に、本体装置2は、左コントローラ3および右コントローラ4の振動強さを算出する(ステップS17)。具体的には、本体装置2は、ステップS14で算出した基準となる振動強さと、ステップS16で算出した角θLとに基づいて、左コントローラ3の振動子107の振幅を算出する。また、本体装置2は、ステップS14で算出した基準となる振動強さと、ステップS16で算出した角θRとに基づいて、右コントローラ4の振動子117の振幅を算出する。
次に、本体装置2は、左右のコントローラに出力する振動制御信号を生成する(ステップS18)。具体的には、本体装置2は、ステップS15で設定した周波数とステップS17で算出した振動子107の振幅とを含む第1の振動制御信号を生成して、左振動制御信号D205として記憶する。また、本体装置2は、ステップS15で設定した周波数とステップS17で算出した振動子117の振幅とを含む第2の振動制御信号を生成して、右振動制御信号D206として記憶する。左振動制御信号D205および右振動制御信号D206は、本体装置2とコントローラ(3および4)との間の通信において、本体装置2から左コントローラ3および右コントローラ4にそれぞれ出力される。
ステップS18の処理を行った場合、本体装置2は、仮想カメラに基づいて仮想空間の画像を生成し、生成した画像をディスプレイ12に出力する(ステップS19)。
ステップS19に続いて、本体装置2は、図21に示す処理を終了するか否かを判定する(ステップS20)。例えば、振動オブジェクトVSの位置とプレイヤキャラクタPの位置とが一致する場合において、プレイヤによって特定の操作が行われた場合、本体装置2は、プレイヤキャラクタPが所定のアイテムを獲得した画像を表示し、図21に示す処理を終了する。ステップS20において図21に示す処理を終了しないと判定した場合は、本体装置2は、再びステップS11の処理を実行する。
なお、図21に示す処理は単なる一例であり、例えば各ステップの順番を入れ替えたり、他のステップが加えられたり、上記ステップの一部が省略されたりしてもよい。また、各処理で用いた数値は単なる一例であり、他の値が用いられてもよい。
以上のように、本実施形態のコントローラは、振動子が第1の周波数(例えば、330Hz)で振動する場合には、コントローラの第1の部分(上部)が他の部分よりも強く振動し、振動子が第2の周波数(例えば、240Hz)で振動する場合には、コントローラの第2の部分(下部)が他の部分よりも強く振動する。
このような性質を有するコントローラを用いて、第1実施例では、ユーザによって操作される操作対象(カーソル350)のリスト内における位置に応じて、周波数が設定される。リストが縦方向に並んで表示されており、例えば、カーソル350がリスト内の上部(先頭付近)を指し示す場合には、振動子を第1の周波数(例えば、330Hz)で振動させるため、コントローラの上部が強く振動する。また、カーソル350がリスト内の下部(末尾付近)を指し示す場合には、振動子を第2の周波数(例えば、240Hz)で振動させるため、コントローラの下部が強く振動する。これにより、ユーザは、コントローラの上部および下部のうち何れが強く振動するかによって、選択中の項目のリスト内における位置を認識することができる。
また、選択中の項目のリスト内における位置に応じて異なる周波数で振動子が振動するため、ユーザは、周波数の違いを感じることにより、選択中の項目のリスト内における位置を認識することができる。
また、第2実施例に係るゲームでは、プレイヤキャラクタPと振動オブジェクトVSとの位置関係に応じて、振動子107および117の周波数および振幅が設定される。具体的には、プレイヤキャラクタPと振動オブジェクトVSとのZ軸方向における位置関係(上下方向の位置関係)に基づいて、周波数が設定される(上記ステップS15)。また、プレイヤキャラクタPと振動オブジェクトVSとのX軸方向における位置関係(左右方向の位置関係)に基づいて、振動子107および117の振幅のバランスが設定される。
このように2つのコントローラの周波数および振幅が設定されるため、ユーザは、2つのコントローラのどの部分が強く振動しているかによって、振動オブジェクトVSの2次元平面における位置を認識することができる。
(変形例)
以上、本実施形態について説明したが、他の実施形態では、以下のように構成されてもよい。
例えば、第1実施例では、カーソル350が移動したときに振動子が振動し、カーソルが移動していないときには振動子は振動しないものとしたが、カーソルが移動しているか否かにかかわらず、振動子が振動してもよい。この場合、カーソルが指し示す項目のリスト内における位置に応じて周波数が設定され、カーソルが同じ項目を指し示している間、設定された周波数で振動子が継続的に振動してもよい。
また、第1実施例では、カーソル350によって選択された項目を決定する前の状態において、カーソル350が移動したときに振動子が振動するものとした。すなわち、ユーザが、リスト内の複数の項目の中から何れかを選択する選択操作(カーソルを移動させる操作)を行い、選択操作によって選択した項目を決定する決定操作(ZLボタン39の押下操作)を行うことを前提として、選択操作の際に振動子を振動させた。他の実施形態では、決定操作を行う際に、上記振動が発生してもよい。この場合、ユーザによって決定された項目のリスト内における位置に応じて、第1の周波数または第2の周波数で振動子が振動する。
また、第1実施例では、カーソルが第1の位置と第2の位置との間に位置する場合、カーソルが指し示す項目のリスト内における位置に応じて周波数が線形的に変化するものとしたが、カーソルの位置と周波数との関係はこれに限らない。周波数は、カーソルが指し示す項目のリスト内における位置に応じて、任意の関数に基づいて設定されてもよい。
また、第1実施例では、カーソル350を表示したが、カーソル350は必ずしも表示されなくてもよい。この場合、本体装置2において、選択中の項目のリスト内における位置が内部的に管理され、ユーザの操作に応じて、当該選択中の項目のリスト内における位置が変化される。すなわち、ユーザの操作に応じて、画面に表示される又は表示されない操作対象が制御される。操作対象は、選択中の項目のリスト内における位置を示すものであり、当該操作対象によって示される選択中の項目のリスト内における位置に応じて、周波数が設定されてもよい。
また、第2実施例では、プレイヤキャラクタPと仮想空間に固定された振動オブジェクトVSとの相対的な位置関係に応じて、振動子の振動の周波数を設定した。他の実施形態では、振動オブジェクトVSは、仮想空間を移動可能なオブジェクトであってもよい。すなわち、他の実施形態では、操作対象と、仮想空間における所定の位置(固定の位置でもよいし、可変の位置でもよい)との位置関係に応じて、周波数が設定されてもよい。
また、第2実施例では、左右のコントローラ3,4を縦長となる姿勢で把持し、プレイヤキャラクタPと振動オブジェクトVSとのX軸方向の位置関係に応じて、左右のコントローラ3,4の振動の強さを変化させ、プレイヤキャラクタPと振動オブジェクトVSとのZ軸方向の位置関係に応じて、周波数を変化させた。他の実施形態では、例えば、左コントローラ3を縦長となる姿勢で把持し、右コントローラ4を横長となる姿勢で把持し、プレイヤキャラクタPと振動オブジェクトVSとのZ軸方向の位置関係に応じて、左コントローラ3の振動子107の周波数を変化させ、プレイヤキャラクタPと振動オブジェクトVSとのX軸方向の位置関係に応じて、右コントローラ4の振動子117の周波数を変化させてもよい。
また、第1実施例におけるカーソル、および、第2実施例におけるプレイヤキャラクタPは、操作対象の一例に過ぎず、ユーザによって操作される操作対象はこれらに限られない。
すなわち、振動部(振動子107,117)が第1の周波数で振動するとき、第1の部分が強く振動し、振動部が第2の周波数で振動するとき、第2の部分が強く振動する操作装置(コントローラ3,4)を前提として、任意の操作対象が制御されてもよい。操作対象は、操作装置に対するユーザの操作に応じて、所定範囲における位置(リストにおけるカーソルの位置、2次元平面におけるプレイヤキャラクタの位置等)が制御される。そして、所定範囲における操作対象の位置が第1の位置である場合に、振動部を第1の周波数で振動させ、操作対象の位置が第2の位置である場合に、振動部を記第2の周波数で振動させてもよい。
また、上記実施形態では、操作対象の位置に応じて周波数および振幅を設定した。他の実施形態では、振動波形を示す振動パターンデータが予め記憶されており、当該振動パターンデータに基づく周波数および振幅を、操作対象の位置に応じて調整することにより、周波数および振幅が設定されてもよい。例えば、振動オブジェクトに対応する振動パターンデータが予め記憶され、振動パターンデータには、各時点の周波数および振幅が記憶されている。本体装置2は、振動パターンデータに基づいて周波数および振幅を読み取り、読み取った周波数および振幅を、操作対象の位置に応じて調整する。
また、上記実施形態では、操作対象の位置が第1の位置と第2の位置との間の位置である場合、当該操作対象の位置に応じて、振動部を第1の周波数および第2の周波数の間の周波数で振動させた。他の実施形態では、操作対象の位置が第1の位置と第2の位置との間の位置である場合、当該操作対象の位置に応じて、振動部を第1の周波数および第2の周波数のいずれか一方で振動させてもよい。例えば、操作対象の位置が第2の位置よりも第1の位置に近い場合は、振動部を第1の周波数で振動させ、操作対象の位置が第1の位置よりも第2の位置に近い場合は、振動部を第2の周波数で振動させてもよい。例えば、第1実施例において、カーソル350が項目1〜項目10に位置する場合には、振動部を第1の周波数で振動させ、カーソル350が項目11〜項目20に位置する場合には、振動部を第2の周波数で振動させてもよい。また、第2実施例において、ベクトルVeのZ軸成分ベクトルVzが、ゼロベクトル又はZ軸正方向を向く場合(図15または図17の場合)には、振動部を第1の周波数で振動させ、ベクトルVeのZ軸成分ベクトルVzが、Z軸負方向を向く場合(図16の場合)には、振動部を第2の周波数で振動させてもよい。
また、振動部が第1の周波数で振動するとき、第1の部分が強く振動し、振動部が第2の周波数で振動するとき、第2の部分が強く振動する操作装置を前提として、所定の情報処理に基づいて、振動部を第1の周波数または第2の周波数で振動させてもよい。所定の情報処理は、上記操作対象の位置の制御に限らず、他の処理であってもよい。
また、上記実施形態では、本体装置2が、周波数および振幅を設定し、周波数および振幅を含む振動制御信号を生成して1つのコントローラに送信した。具体的には、操作対象の位置に応じて第1の周波数(例えば330Hz)又は第2の周波数(例えば240Hz)を選択し、選択した周波数と振幅とを含む振動制御信号を生成して1つのコントローラに送信した。他の実施形態では、第1の周波数を含む第1の信号と第2の周波数を含む第2の信号とを生成し、2つの信号を1つのコントローラに送信してもよい。この場合、第1の信号および第2の信号には、振幅を示す値がそれぞれ含まれる。そして、所定範囲における操作対象の位置に応じて、第1の信号および第2の信号に含まれる振幅の値を異ならせてもよい。すなわち、第1の周波数および第2の周波数の振動の強さのバランスを操作対象の位置に応じて変化させることで、振動部を振動させてもよい。振動部は、2つの信号を入力することが可能になっており、各信号に基づく振動を合成することが可能に構成される。
例えば、振動部を第1の周波数で振動させる場合には、第1の周波数および振幅の値「1」を含む第1の信号をコントローラに送信すると共に、第2の周波数および振幅の値「0」を含む第2の信号をコントローラに送信してもよい。この場合、第1の信号に基づく振動は行われる一方で、第2の信号に基づく振動は行われない。また、振動部を第1の周波数と第2の周波数との間の周波数で振動させる場合には、第1の周波数および振幅の値「0.5」を含む第1の信号をコントローラに送信すると共に、第2の周波数および振幅の値「0.5」を含む第2の信号をコントローラに送信してもよい。この場合、第1の信号に基づく振動波形と、第2の信号に基づく振動波形とを合成した合成波形に基づく振動が行われる。また、振動部を第2の周波数で振動させる場合には、第1の周波数および振幅の値「0」を含む第1の信号をコントローラに送信すると共に、第2の周波数および振幅の値「1」を含む第2の信号をコントローラに送信してもよい。この場合、第2の信号に基づく振動は行われる一方で、第1の信号に基づく振動は行われない。
また、振動部が第1の周波数で振動するとき、第1の部分が強く振動し、振動部が第2の周波数で振動するとき、第2の部分が強く振動する操作装置を前提としなくてもよい。例えば、操作装置は、指定された周波数で振動する振動部を備える。当該操作装置に対する操作に応じて、所定範囲における操作対象(カーソルやプレイヤキャラクタ、その他任意の仮想的な操作対象)の位置が制御される。この場合、操作対象の位置に応じた周波数で振動部を振動させてもよい。これにより、ユーザは、周波数の違いを感じることで操作対象の位置を認識することができる。
また、上記実施形態では、2つのコントローラ3,4を振動させることとしたが、振動させる操作部の数は1つでもよいし、3以上であってもよい。
また、上記実施形態では、左コントローラ3および右コントローラ4は本体装置2に着脱可能であるとした。他の実施形態では、左コントローラ3および右コントローラ4は本体装置2と一体として構成され、本体装置2から分離不可能に構成されてもよい。
また、左コントローラ3および右コントローラ4が一体となった1つの操作装置が用いられてもよい。この場合、操作装置は左側部分と右側部分とを有し、左側部分に振動子が設けられ、右側部分に振動子が設けられ、これら2つの振動子を振動させてもよい。また、操作装置の内部に1つの振動子が設けられ、当該1つの振動子を振動させてもよい。
また、上記実施形態では、本体装置2が位置制御部200および振動制御部201として機能することとした。他の実施形態では、例えば、左右のコントローラ3,4が、振動制御部201として機能してもよい。例えば、本体装置2からの命令に基づいて、左右のコントローラ3,4が、振動子107および振動子117を振動させるための振動制御信号を生成し、振動子107および振動子117に出力してもよい。
また、複数の装置がネットワーク(例えばインターネットやLAN)で接続され、ネットワークで接続された複数の装置を有する情報処理システムにおいて、上述した情報処理が行われてもよい。例えば、端末とサーバとがインターネットを介して接続され、当該端末とサーバとによって上記システムが構成されてもよい。この場合、例えば、端末側に上記左コントローラ3および右コントローラ4に対応する操作装置と表示装置とが配置され、サーバ側に位置制御部200と、振動制御部201とが配置されてもよい。端末は、プレイヤによる操作装置に対する操作に応じた操作データをサーバに送信する。サーバは、当該操作データに基づいて操作対象(カーソルやプレイヤキャラクタ等)の位置を制御すると共に、所定範囲における操作対象の位置に応じて、振動制御信号を生成する。そして、端末は、サーバから振動制御信号を受信して、操作装置を振動させる。
また、上記ゲームシステム1以外の他のシステム(又は装置)において上述した情報処理が行われてもよい。例えば、他のシステム(又は装置)は、パーソナルコンピュータ、スマートフォン、タブレット端末等であってもよい。
以上、本発明について説明したが、上記説明は本発明の例示に過ぎず、種々の改良や変形が加えられてもよい。
1 ゲームシステム
2 本体装置
3 左コントローラ
4 右コントローラ
32 スティック
52 スティック
107 振動子
117 振動子
200 位置制御部
201 振動制御部
300 リスト
350 カーソル
P プレイヤキャラクタ
VS 振動オブジェクト

Claims (16)

  1. 指定された周波数で振動する振動部を備える操作装置と、
    前記振動部の振動を制御する振動制御部と、
    前記操作装置に対する操作に基づいて、所定範囲内における操作対象の位置を制御する位置制御部と、を備え、
    前記振動部が第1の周波数で振動するとき、前記操作装置の第1の部分が当該操作装置の他の部分よりも強く振動し、前記振動部が前記第1の周波数とは異なる第2の周波数で振動するとき、前記第1の部分とは異なる前記操作装置の第2の部分が当該操作装置の他の部分よりも強く振動し、
    前記振動制御部は、
    前記第1の周波数と強さとを含む第1の振動信号と、前記第2の周波数と強さとを含む第2の振動信号とを生成して前記操作装置に出力可能であり、
    前記操作対象の位置が第1の位置である場合に前記振動部を前記第1の周波数で振動させ、前記操作対象の位置が第2の位置である場合に前記振動部を前記第2の周波数で振動させ、
    前記操作対象の位置が前記第1の位置と前記第2の位置の間にある場合、前記操作対象の位置に応じて、前記第1の振動信号に含まれる前記強さ、および、前記第2の振動信号に含まれる前記強さを決定し、当該決定した強さを含む前記第1の振動信号および前記第2の振動信号のそれぞれを前記操作装置に出力する、情報処理システム。
  2. 前記振動部が前記第1の周波数で振動するとき、前記第1の部分は共振により他の部分よりも強く振動する、請求項1に記載の情報処理システム。
  3. 前記第2の部分は、前記第1の部分よりも前記振動部に近い部分である、請求項1又は2に記載の情報処理システム。
  4. 前記所定範囲は、所定のリストにおける選択可能範囲であり、
    前記操作対象は、前記リストにおける選択中の項目を示すものであり、
    前記振動制御部は、前記操作対象によって示される選択中の項目の前記リスト内における位置に応じて、前記振動部を振動させる、請求項1からのいずれかに記載の情報処理システム。
  5. 前記所定範囲は、仮想空間であり、
    前記操作対象は、プレイヤキャラクタであり、
    前記振動制御部は、前記仮想空間内の所定の位置と前記プレイヤキャラクタとの相対的な位置関係に応じて、前記振動部を振動させる、請求項1からのいずれかに記載の情報処理システム。
  6. 指定された周波数で振動する第1の振動部を備える第1の操作装置と、
    指定された周波数で振動する第2の振動部を備える第2の操作装置と、
    前記第1の振動部および前記第2の振動部の振動を制御する振動制御部と、
    前記第1の操作装置又は前記第2の操作装置に対する操作に基づいて、仮想空間内における操作対象の位置を制御する位置制御部と、を備え、
    前記第1の振動部が前記第1の周波数で振動するとき、前記第1の操作装置の第1の部分が当該第1の操作装置の他の部分よりも強く振動し、前記第1の振動部が前記第2の周波数で振動するとき、前記第1の部分とは異なる前記第1の操作装置の第2の部分が当該第1の操作装置の他の部分よりも強く振動し、
    前記第2の振動部が前記第1の周波数で振動するとき、前記第2の操作装置の第1の部分が当該第2の操作装置の他の部分よりも強く振動し、前記第2の振動部が前記第2の周波数で振動するとき、前記第1の部分とは異なる前記第2の操作装置の第2の部分が当該第2の操作装置の他の部分よりも強く振動し、
    前記振動制御部は、前記仮想空間内の所定の位置と前記操作対象との相対的な位置関係に応じて、前記第1の周波数または前記第2の周波数で前記第1の振動部を振動させるとともに、前記第1の周波数または前記第2の周波数で前記第2の振動部を振動させる、情報処理システム。
  7. 指定された周波数で振動する振動部を備える操作装置の振動を制御する情報処理装置のコンピュータで実行される情報処理プログラムであって、
    前記コンピュータに、
    前記振動部の振動を制御する振動制御ステップと、
    前記操作装置に対する操作に基づいて、所定範囲内における操作対象の位置を制御する位置制御ステップと、を実行させ、
    前記振動部が第1の周波数で振動するとき、前記操作装置の第1の部分が共振により当該操作装置の他の部分よりも強く振動し、前記振動部が前記第1の周波数とは異なる第2の周波数で振動するとき、前記第1の部分よりも前記振動部に近い第2の部分が当該操作装置の他の部分よりも強く振動し、
    前記振動制御ステップでは、
    前記第1の周波数と強さとを含む第1の振動信号と、前記第2の周波数と強さとを含む第2の振動信号とを生成して前記操作装置に出力可能であり、
    前記操作対象の位置が第1の位置である場合に前記振動部を前記第1の周波数で振動させ、前記操作対象の位置が第2の位置である場合に前記振動部を前記第2の周波数で振動させ、
    前記操作対象の位置が前記第1の位置と前記第2の位置の間にある場合、前記操作対象の位置に応じて、前記第1の振動信号に含まれる前記強さ、および、前記第2の振動信号に含まれる前記強さを決定し、当該決定した強さを含む前記第1の振動信号および前記第2の振動信号のそれぞれを前記操作装置に出力する、情報処理プログラム。
  8. 前記所定範囲は、所定のリストにおける選択可能範囲であり、
    前記操作対象は、前記リストにおける選択中の項目を示すものであり、
    前記振動制御ステップでは、前記操作対象によって示される選択中の項目の前記リスト内における位置に応じて、前記振動部を振動させる、請求項に記載の情報処理プログラム。
  9. 前記所定範囲は、仮想空間であり、
    前記操作対象は、プレイヤキャラクタであり、
    前記振動制御ステップでは、前記仮想空間内の所定の位置と前記プレイヤキャラクタとの相対的な位置関係に応じて、前記振動部を振動させる、請求項に記載の情報処理プログラム。
  10. 指定された周波数で振動する振動部を備える操作装置の振動を制御する情報処理装置のコンピュータで実行される情報処理プログラムであって、
    前記コンピュータに、
    前記振動部の振動を制御する振動制御ステップと、
    前記操作装置に対する操作に基づいて、仮想空間内における操作対象の位置を制御する位置制御ステップと、を実行させ、
    前記操作装置は、第1の操作装置と、第2の操作装置とを含み、
    前記第1の操作装置は、指定された周波数で振動する第1の振動部を含み、
    前記第2の操作装置は、指定された周波数で振動する第2の振動部を含み、
    前記第1の振動部が前記第1の周波数で振動するとき、前記第1の操作装置の第1の部分が共振により当該第1の操作装置の他の部分よりも強く振動し、前記第1の振動部が前記第2の周波数で振動するとき、前記第1の部分よりも前記第1の振動部に近い第2の部分が当該第1の操作装置の他の部分よりも強く振動し、
    前記第2の振動部が前記第1の周波数で振動するとき、前記第2の操作装置の第1の部分が共振により当該第2の操作装置の他の部分よりも強く振動し、前記第2の振動部が前記第2の周波数で振動するとき、前記第1の部分よりも前記第2の振動部に近い第2の部分が当該第2の操作装置の他の部分よりも強く振動し、
    前記振動制御ステップでは、前記仮想空間内の所定の位置と前記操作対象との相対的な位置関係に応じて、前記第1の周波数または前記第2の周波数で前記第1の振動部を振動させるとともに、前記第1の周波数または前記第2の周波数で前記第2の振動部を振動させる、情報処理プログラム。
  11. 指定された周波数で振動する振動部を備える操作装置の振動を制御する情報処理装置であって、
    前記振動部が第1の周波数で振動するとき、前記操作装置の第1の部分が当該操作装置の他の部分よりも強く振動し、前記振動部が前記第1の周波数とは異なる第2の周波数で振動するとき、前記第1の部分とは異なる前記操作装置の第2の部分が当該操作装置の他の部分よりも強く振動し、
    前記振動部の振動を制御する振動制御部と、
    前記操作装置に対する操作に基づいて、所定範囲内における操作対象の位置を制御する位置制御部と、を備え、
    前記振動制御部は、
    前記第1の周波数と強さとを含む第1の振動信号と、前記第2の周波数と強さとを含む第2の振動信号とを生成して前記操作装置に出力可能であり、
    前記操作対象の位置が第1の位置である場合に前記振動部を前記第1の周波数で振動させ、前記操作対象の位置が第2の位置である場合に前記振動部を前記第2の周波数で振動させ、
    前記操作対象の位置が前記第1の位置と前記第2の位置の間にある場合、前記操作対象の位置に応じて、前記第1の振動信号に含まれる前記強さ、および、前記第2の振動信号に含まれる前記強さを決定し、当該決定した強さを含む前記第1の振動信号および前記第2の振動信号のそれぞれを前記操作装置に出力する、情報処理装置。
  12. 前記所定範囲は、所定のリストにおける選択可能範囲であり、
    前記操作対象は、前記リストにおける選択中の項目を示すものであり、
    前記振動制御部は、前記操作対象によって示される選択中の項目の前記リスト内における位置に応じて、前記振動部を振動させる、請求項11に記載の情報処理装置。
  13. 前記所定範囲は、仮想空間であり、
    前記操作対象は、プレイヤキャラクタであり、
    前記振動制御部は、前記仮想空間内の所定の位置と前記プレイヤキャラクタとの相対的な位置関係に応じて、前記振動部を振動させる、請求項11に記載の情報処理装置。
  14. 指定された周波数で振動する振動部を備える操作装置の振動を制御する情報処理装置であって、
    前記振動部の振動を制御する振動制御部と、
    前記操作装置に対する操作に基づいて、仮想空間内における操作対象の位置を制御する位置制御部と、を備え、
    前記操作装置は、第1の操作装置と、第2の操作装置とを含み、
    前記第1の操作装置は、指定された周波数で振動する第1の振動部を含み、
    前記第2の操作装置は、指定された周波数で振動する第2の振動部を含み、
    前記第1の振動部が前記第1の周波数で振動するとき、前記第1の操作装置の第1の部分が共振により当該第1の操作装置の他の部分よりも強く振動し、前記第1の振動部が前記第2の周波数で振動するとき、前記第1の部分よりも前記第1の振動部に近い第2の部分が当該第1の操作装置の他の部分よりも強く振動し、
    前記第2の振動部が前記第1の周波数で振動するとき、前記第2の操作装置の第1の部分が共振により当該第2の操作装置の他の部分よりも強く振動し、前記第2の振動部が前記第2の周波数で振動するとき、前記第1の部分よりも前記第2の振動部に近い第2の部分が当該第2の操作装置の他の部分よりも強く振動し、
    前記振動制御部は、前記仮想空間内の所定の位置と前記操作対象との相対的な位置関係に応じて、前記第1の周波数または前記第2の周波数で前記第1の振動部を振動させるとともに、前記第1の周波数または前記第2の周波数で前記第2の振動部を振動させる、情報処理装置。
  15. 指定された周波数で振動する振動部を備える操作装置の振動を制御する情報処理システムにおいて行われる情報処理方法であって、
    前記振動部の振動を制御する振動制御ステップと、
    前記操作装置に対する操作に基づいて、所定範囲内における操作対象の位置を制御する位置制御部と、を含み、
    前記振動部が第1の周波数で振動するとき、前記操作装置の第1の部分が当該操作装置の他の部分よりも強く振動し、前記振動部が前記第1の周波数とは異なる第2の周波数で振動するとき、前記第1の部分とは異なる前記操作装置の第2の部分が当該操作装置の他の部分よりも強く振動し、
    前記振動制御ステップでは、
    前記第1の周波数と強さとを含む第1の振動信号と、前記第2の周波数と強さとを含む第2の振動信号とを生成して前記操作装置に出力可能であり、
    前記操作対象の位置が第1の位置である場合に前記振動部を前記第1の周波数で振動させ、前記操作対象の位置が第2の位置である場合に前記振動部を前記第2の周波数で振動させ、
    前記操作対象の位置が前記第1の位置と前記第2の位置の間にある場合、前記操作対象の位置に応じて、前記第1の振動信号に含まれる前記強さ、および、前記第2の振動信号に含まれる前記強さを決定し、当該決定した強さを含む前記第1の振動信号および前記第2の振動信号のそれぞれを前記操作装置に出力する、情報処理方法。
  16. 指定された周波数で振動する振動部を備える操作装置の振動を制御する情報処理システムにおいて行われる情報処理方法であって、
    前記振動部の振動を制御する振動制御ステップと、
    前記操作装置に対する操作に基づいて、仮想空間内における操作対象の位置を制御する位置制御部と、を含み、
    前記操作装置は、第1の操作装置と、第2の操作装置とを含み、
    前記第1の操作装置は、指定された周波数で振動する第1の振動部を含み、
    前記第2の操作装置は、指定された周波数で振動する第2の振動部を含み、
    前記第1の振動部が前記第1の周波数で振動するとき、前記第1の操作装置の第1の部分が共振により当該第1の操作装置の他の部分よりも強く振動し、前記第1の振動部が前記第2の周波数で振動するとき、前記第1の部分よりも前記第1の振動部に近い第2の部分が当該第1の操作装置の他の部分よりも強く振動し、
    前記第2の振動部が前記第1の周波数で振動するとき、前記第2の操作装置の第1の部分が共振により当該第2の操作装置の他の部分よりも強く振動し、前記第2の振動部が前記第2の周波数で振動するとき、前記第1の部分よりも前記第2の振動部に近い第2の部分が当該第2の操作装置の他の部分よりも強く振動し、
    前記振動制御ステップでは、前記仮想空間内の所定の位置と前記操作対象との相対的な位置関係に応じて、前記第1の周波数または前記第2の周波数で前記第1の振動部を振動させるとともに、前記第1の周波数または前記第2の周波数で前記第2の振動部を振動させる、情報処理方法。
JP2017110647A 2017-06-05 2017-06-05 情報処理システム、情報処理プログラム、情報処理装置、および、情報処理方法 Active JP6653293B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017110647A JP6653293B2 (ja) 2017-06-05 2017-06-05 情報処理システム、情報処理プログラム、情報処理装置、および、情報処理方法
US15/987,344 US10596459B2 (en) 2017-06-05 2018-05-23 Systems, methods, and/or computer readable storage medium having program, for localized haptic feedback based on position of virtual object

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017110647A JP6653293B2 (ja) 2017-06-05 2017-06-05 情報処理システム、情報処理プログラム、情報処理装置、および、情報処理方法

Publications (2)

Publication Number Publication Date
JP2018206058A JP2018206058A (ja) 2018-12-27
JP6653293B2 true JP6653293B2 (ja) 2020-02-26

Family

ID=64459056

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017110647A Active JP6653293B2 (ja) 2017-06-05 2017-06-05 情報処理システム、情報処理プログラム、情報処理装置、および、情報処理方法

Country Status (2)

Country Link
US (1) US10596459B2 (ja)
JP (1) JP6653293B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019223097A1 (zh) * 2018-05-25 2019-11-28 华为技术有限公司 一种移动终端
US10917180B2 (en) 2018-07-24 2021-02-09 Comcast Cable Communications, Llc Controlling vibration output from a computing device
CN110124304B (zh) * 2019-03-29 2020-09-08 华为技术有限公司 一种游戏手柄的控制方法及设备
US20220121284A1 (en) * 2020-10-16 2022-04-21 Ian Walsh Wearable motion capture device with haptic feedback
JP1685361S (ja) * 2020-11-20 2021-05-17

Family Cites Families (77)

* 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
JP3655438B2 (ja) 1997-07-17 2005-06-02 任天堂株式会社 ビデオゲームシステム
ES2275316T3 (es) 1997-11-07 2007-06-01 Kabushiki Kaisha Sega Doing Business As Sega Corporation Maquina de juego.
JP2000245964A (ja) 1999-03-03 2000-09-12 Konami Computer Entertaiment Tokyo:Kk ゲーム装置、ゲーム装置の制御方法及びゲームプログラムが格納された記録媒体
US6716103B1 (en) 1999-10-07 2004-04-06 Nintendo Co., Ltd. Portable game machine
EP1330811B1 (en) 2000-09-28 2012-08-22 Immersion Corporation Directional tactile feedback for haptic feedback interface devices
US6530838B2 (en) 2001-04-18 2003-03-11 Mobilink Telecom Co., Ltd. Game pad connectable to personal portable terminal
US6795304B1 (en) 2001-04-27 2004-09-21 Palmone, Inc. Keyboard sled with rotating screen
JP2003275464A (ja) 2002-03-22 2003-09-30 Mitsubishi Electric Corp 携帯型ゲーム装置
US6773349B2 (en) 2002-07-31 2004-08-10 Intec, Inc. Video game controller with integrated video display
JP3838173B2 (ja) 2002-07-31 2006-10-25 ソニー株式会社 情報処理装置および方法、記録媒体、並びにプログラム
WO2005116802A1 (ja) 2004-05-25 2005-12-08 Sony Computer Entertainment Inc. 入力装置及び方法、文字入力方法
JP4473685B2 (ja) 2004-09-01 2010-06-02 任天堂株式会社 ゲーム装置およびゲームプログラム
ATE516864T1 (de) 2005-06-27 2011-08-15 Coactive Drive Corp Synchronisierte vibrationsvorrichtung für haptisches feedback
GB0614770D0 (en) 2006-07-25 2006-09-06 Sb Business Consultancy Ltd Docking cradle
US20080084384A1 (en) * 2006-10-05 2008-04-10 Immersion Corporation Multiple Mode Haptic Feedback System
KR20080058121A (ko) * 2006-12-21 2008-06-25 삼성전자주식회사 휴대단말기에서의 촉각형 사용자 인터페이스 제공 장치 및방법
JP2009061161A (ja) 2007-09-07 2009-03-26 Namco Bandai Games Inc プログラム、情報記憶媒体、及び、ゲームシステム
JP5100324B2 (ja) 2007-11-16 2012-12-19 株式会社ソニー・コンピュータエンタテインメント ゲームシステムおよびゲームコントローラ
CN101971601B (zh) 2008-01-10 2014-03-12 阿丽雅企业 可定制的组合式多功能通信装置
US7843277B2 (en) * 2008-12-16 2010-11-30 Immersion Corporation Haptic feedback generation based on resonant frequency
JP2012523324A (ja) 2009-04-10 2012-10-04 ダウ グローバル テクノロジーズ エルエルシー 高性能シール性共押出2軸配向ポリプロピレンフィルム
US8226484B2 (en) 2009-08-27 2012-07-24 Nintendo Of America Inc. Simulated handlebar twist-grip control of a simulated vehicle using a hand-held inertial sensing remote controller
WO2011043292A1 (ja) 2009-10-06 2011-04-14 株式会社コト スピーカ型振動装置および振動機能付き電子機器
US8610549B2 (en) * 2009-10-16 2013-12-17 Immersion Corporation Systems and methods for providing haptic feedback at multiple resonance frequencies
US20110260969A1 (en) 2010-04-21 2011-10-27 Brandon Workman Removably attachable controller for portable electronic devices
EP2383631A1 (en) 2010-04-27 2011-11-02 Sony Ericsson Mobile Communications AB Hand-held mobile device and method for operating the hand-held mobile device
JP5887830B2 (ja) * 2010-12-10 2016-03-16 株式会社ニコン 電子機器及び振動方法
US8818714B2 (en) 2010-12-10 2014-08-26 Sony Corporation Portable navigation device and method with active elements
US9652944B2 (en) * 2010-12-28 2017-05-16 Lg Innotek Co., Ltd Locally vibrating haptic apparatus, method for locally vibrating haptic apparatus, haptic display apparatus and vibrating panel using the same
US8972617B2 (en) 2011-04-20 2015-03-03 Pieco Multi-configuration computer
KR20140066258A (ko) 2011-09-26 2014-05-30 마이크로소프트 코포레이션 투시 근안 디스플레이에 대한 센서 입력에 기초한 비디오 디스플레이 수정
CN103049041A (zh) 2011-10-12 2013-04-17 鸿富锦精密工业(深圳)有限公司 平板电脑游戏手柄及平板电脑组件
US8529357B2 (en) 2011-12-20 2013-09-10 Wikipad, Inc. Combination tablet computer and game controller with flexible bridge section
US9757649B2 (en) 2011-12-20 2017-09-12 Wikipad, Inc. Game controller with flexible bridge supporting touch screen
US9126119B2 (en) 2012-06-12 2015-09-08 Wikipad, Inc. Combination computing device and game controller with flexible bridge section
US8788348B2 (en) 2011-12-20 2014-07-22 Wikipad, Inc. Combination game controller and point of sale input device
KR102024006B1 (ko) 2012-02-10 2019-09-24 삼성전자주식회사 진동 장치간 진동 전달을 제어하는 장치 및 방법
US9216349B2 (en) 2012-04-05 2015-12-22 Michael Paul South Gripping controllers for portable computing devices
WO2013157054A1 (ja) 2012-04-20 2013-10-24 任天堂株式会社 ゲームシステムおよびゲームコントローラ
WO2013177587A2 (en) 2012-05-25 2013-11-28 Immerz Inc. Haptic interface for portable electronic device
US9123215B2 (en) 2012-06-22 2015-09-01 GM Global Technology Operations LLC Alert systems and methods for a vehicle
GB2519475A (en) 2012-08-21 2015-04-22 Immerz Inc Systems and methods for a vibrating input device
GB2508137A (en) 2012-11-07 2014-05-28 Stuart George Wilson Handheld haptic feedback device
US20140247246A1 (en) 2012-11-15 2014-09-04 Daryl D Maus Tactile to touch input device
US20140184508A1 (en) 2012-12-27 2014-07-03 Nvidia Corporation Universal adaptive game controller
US8858335B2 (en) 2013-01-18 2014-10-14 Microsoft Corporation Reconfigurable clip-on modules for mobile computing devices
US9529447B2 (en) 2013-01-18 2016-12-27 Microsoft Technology Licensing, Llc Removable input module
US9261960B2 (en) 2013-01-24 2016-02-16 Immersion Corporation Haptic sensation recording and playback
KR102178845B1 (ko) 2013-01-29 2020-11-13 삼성전자주식회사 햅틱을 제어하는 휴대 단말 및 방법
US8905845B2 (en) 2013-03-13 2014-12-09 Bby Solutions, Inc. Gaming controller system
JP2014203169A (ja) * 2013-04-02 2014-10-27 船井電機株式会社 携帯端末
EP2806424A1 (en) 2013-05-20 2014-11-26 ST-Ericsson SA Improved noise reduction
JP2014235596A (ja) 2013-06-03 2014-12-15 任天堂株式会社 情報処理プログラム、情報処理システム、情報処理装置、および情報処理方法
JP6147656B2 (ja) * 2013-12-11 2017-06-14 株式会社東海理化電機製作所 入力装置
TWM477970U (zh) 2014-01-17 2014-05-11 Giga Byte Tech Co Ltd 外掛式控制手把
JP6264542B2 (ja) * 2014-01-30 2018-01-24 任天堂株式会社 情報処理装置、情報処理プログラム、情報処理システム、および情報処理方法
JP6664145B2 (ja) 2014-03-12 2020-03-13 任天堂株式会社 情報処理装置、情報処理プログラム、情報処理システム、および情報処理方法
JP6322830B2 (ja) 2014-05-09 2018-05-16 任天堂株式会社 情報処理装置、情報処理プログラム、情報処理システム、および情報処理方法
ES2710672T3 (es) 2014-06-04 2019-04-26 Cuende Infometrics S A Sistema y método para medir el flujo del tráfico de un área
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
JP6341417B2 (ja) 2014-06-10 2018-06-13 任天堂株式会社 振動生成システム、振動生成プログラム、および振動生成方法
US9711980B2 (en) 2014-11-25 2017-07-18 Microsoft Technology Licensing, Llc Charging device for removable input modules
JP6761225B2 (ja) 2014-12-26 2020-09-23 和俊 尾花 手持ち型情報処理装置
US20160209968A1 (en) 2015-01-16 2016-07-21 Microsoft Technology Licensing, Llc Mapping touch inputs to a user input module
JP6327669B2 (ja) 2015-02-10 2018-05-23 任天堂株式会社 付属機器、情報処理システム、情報処理装置、情報処理プログラム、操作判別方法、および、処理実行方法
JP6380149B2 (ja) * 2015-02-13 2018-08-29 株式会社ニコン 視線誘導システム、および視線誘導装置
JP6475590B2 (ja) * 2015-08-06 2019-02-27 株式会社ソニー・インタラクティブエンタテインメント 操作装置
JP5918888B1 (ja) 2015-08-28 2016-05-18 エム・エフ・ヴィ株式会社 詰替用ボトル
EP3349096B1 (en) * 2015-09-08 2023-08-23 Sony Group Corporation Information processing apparatus, method, and computer program
US9863778B2 (en) 2015-12-18 2018-01-09 Intel Corporation Systems and methods to direct foot traffic
US10031580B2 (en) 2016-01-13 2018-07-24 Immersion Corporation Systems and methods for haptically-enabled neural interfaces
KR101790880B1 (ko) * 2016-04-29 2017-10-26 주식회사 씨케이머티리얼즈랩 촉각 액추에이터 및 그 제어 방법
EP3473310B1 (en) * 2016-06-10 2020-01-22 Nintendo Co., Ltd. Game controller
JP6843530B2 (ja) 2016-06-15 2021-03-17 任天堂株式会社 ゲームシステム、方法、およびゲームプログラム
US10324531B2 (en) 2016-12-27 2019-06-18 Immersion Corporation Haptic feedback using a field of view
US10507137B2 (en) * 2017-01-17 2019-12-17 Karl Allen Dierenbach Tactile interface system

Also Published As

Publication number Publication date
JP2018206058A (ja) 2018-12-27
US10596459B2 (en) 2020-03-24
US20180345132A1 (en) 2018-12-06

Similar Documents

Publication Publication Date Title
JP6653293B2 (ja) 情報処理システム、情報処理プログラム、情報処理装置、および、情報処理方法
JP6588421B2 (ja) 情報処理システム、情報処理プログラム、情報処理装置、および、情報処理方法
JP6613267B2 (ja) 情報処理システム、情報処理プログラム、情報処理装置、および、情報処理方法
US10661162B2 (en) Game system, non-transitory storage medium having stored therein game program, game apparatus, and game method
US10850191B2 (en) Game system, non-transitory storage medium having stored therein game program, game apparatus, and game method
US10758819B2 (en) Game system, non-transitory storage medium having stored therein game program, information processing apparatus, and game control method
US11439907B2 (en) Audio feedback that varies based on direction of input stroke
JP2018112953A (ja) 振動制御システム、振動制御装置、振動制御プログラムおよび振動制御方法
JP6670768B2 (ja) ゲームシステム、ゲームプログラム、情報処理装置、および、情報処理方法
JP2018106598A (ja) 情報処理システム、情報処理プログラム、情報処理装置、および、情報処理方法
JP6854132B2 (ja) 情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法
JP6715192B2 (ja) ゲームシステム、ゲームプログラム、情報処理装置およびゲーム制御方法
JP6837921B2 (ja) ゲームプログラム、情報処理装置、情報処理システム、および、情報処理方法
JP7168713B2 (ja) 情報処理プログラム、情報処理装置、情報処理システム、および、情報処理方法
JP6938580B2 (ja) ゲームプログラム、ゲームシステム、ゲーム装置、およびゲーム処理制御方法
JP7220616B2 (ja) ゲームプログラム、ゲームシステム、ゲーム装置およびゲーム制御方法
JP6893417B2 (ja) ゲームシステム、ゲームプログラム、情報処理装置、および、情報処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180913

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190522

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190530

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190726

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190909

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191129

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20191209

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: 20200120

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200127

R150 Certificate of patent or registration of utility model

Ref document number: 6653293

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