(58)【調査した分野】(Int.Cl.,DB名)
前記周波数シフト手段は、前記音声信号が示す音圧のピークに基づいて、前記上限値を越える周波数帯域に属する音圧情報を、前記上限値以下の周波数帯域の音圧情報に変換する、請求項1に記載の振動信号生成システム。
前記周波数シフト手段は、前記音声信号の波形データに対して一定区間毎の区間最大値を抽出し、当該区間最大値を用いて前記上限値を越える周波数帯域に属する音圧情報を、前記上限値以下の周波数帯域の音圧情報に変換する、請求項1または2に記載の振動信号生成システム。
前記周波数シフト手段は、前記音声信号の波形データに対して移動する一定区間毎の移動最大値を抽出し、当該移動最大値を用いて前記上限値を越える周波数帯域に属する音圧情報を、前記上限値以下の周波数帯域の音圧情報に変換する、請求項1または2に記載の振動信号生成システム。
前記周波数シフト手段は、前記音声信号の時間軸を伸長し、当該伸長後の音声信号の一部を切り出して連結することによって、前記上限値を越える周波数帯域に属する音圧情報を前記上限値以下の周波数帯域の音圧情報に変換する、請求項1または2に記載の振動信号生成システム。
前記周波数シフト手段が変換した音圧情報に対して、前記上限値に対応する周波数以下に設定された遮断周波数より高い周波数の成分を逓減させるローパスフィルタを、さらに備え、
前記振動信号生成手段は、前記遮断周波数より高い周波数の成分を逓減させた前記音圧情報を用いて、前記振動信号を生成する、請求項1乃至6の何れか1つに記載の振動信号生成システム。
前記振動信号生成手段は、前記周波数シフト手段が変換した音圧情報を用いて特定の周波数の正弦波の強度を変化させることによって、前記振動信号を生成する、請求項1乃至7の何れか1つに記載の振動信号生成システム。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記特許文献1で開示されているような従来のゲーム装置では、バイブレータで一定の振動をユーザに与えるだけだった。
【0005】
それ故に、本発明の目的は、バリエーションに富んだ振動を出力するための振動信号を生成することができる振動生成システム、振動信号生成プログラム、および振動生成方法を提供することである。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明は例えば以下のような構成を採用し得る。なお、特許請求の範囲の記載を解釈する際に、特許請求の範囲の記載によってのみその範囲が解釈されるべきであることが理解され、特許請求の範囲の記載と本欄の記載とが矛盾する場合には、特許請求の範囲の記載が優先する。
【0007】
本発明の振動信号生成システムの一構成例は、音声信号から振動信号を生成する。振動信号生成システムは、周波数シフト手段および振動信号生成手段を備える。周波数シフト手段は、音声信号が示す少なくともユーザが振動を知覚可能な上限値を越える周波数帯域に属する音圧情報を、当該上限値以下の周波数帯域の音圧情報に変換する。振動信号生成手段は、周波数シフト手段が変換した後の音圧情報を用いて、振動信号を生成する。
【0008】
上記によれば、音声信号を用いて、振動信号を生成することができる。また、ユーザが振動として知覚することができない上限値を越える周波数帯域の音声信号を、当該上限値以下の周波数帯域にシフトすることによって、振動として知覚可能な振動信号を生成することができる。
【0009】
また、上記周波数シフト手段は、所定タイミングにおける音圧情報を残して、上限値以下の周波数帯域の音圧情報に変換してもよい。
【0010】
上記によれば、所定タイミングにおける音圧情報を利用して、当該音圧に応じた振動信号の生成が可能となる。
【0011】
また、上記周波数シフト手段は、音声信号が示す音圧のピークに基づいて、上限値を越える周波数帯域に属する音圧情報を、上限値以下の周波数帯域の音圧情報に変換してもよい。
【0012】
上記によれば、音声信号が示す音圧のピークを利用して、当該音声に応じた振動信号の生成が可能となる。
【0013】
また、上記周波数シフト手段は、音声信号の波形データに対して一定区間毎の区間最大値を抽出し、当該区間最大値を用いて上限値を越える周波数帯域に属する音圧情報を、上限値以下の周波数帯域の音圧情報に変換してもよい。
【0014】
上記によれば、区間最大値を用いて、上限値以下の周波数帯域の音圧情報に容易に変換することができる。
【0015】
また、上記周波数シフト手段は、音声信号の波形データに対して移動する一定区間毎の移動最大値を抽出し、当該移動最大値を用いて上限値を越える周波数帯域に属する音圧情報を、上限値以下の周波数帯域の音圧情報に変換してもよい。
【0016】
上記によれば、移動最大値を用いて、上限値以下の周波数帯域の音圧情報に容易に変換することができる。
【0017】
また、上記周波数シフト手段は、音声信号の波形データにおける音圧の極大値を通る曲線を上限値以下の周波数帯域の音圧情報として用いてもよい。
【0018】
上記によれば、音圧の極大値を用いて、上限値以下の周波数帯域の音圧情報に容易に変換することができる。
【0019】
また、上記周波数シフト手段は、音声信号の時間軸を伸長し、当該伸長後の音声信号の一部を切り出して連結することによって、上限値を越える周波数帯域に属する音圧情報を上限値以下の周波数帯域の音圧情報に変換してもよい。
【0020】
上記によれば、音声信号の時間軸を伸長することによって、上限値以下の周波数帯域の音圧情報に容易に変換することができる。
【0021】
また、上記振動信号生成システムは、ローパスフィルタを、さらに備えてもよい。ローパスフィルタは、周波数シフト手段が変換した音圧情報に対して、上限値に対応する周波数以下に設定された遮断周波数より高い周波数の成分を逓減させる。この場合、上記振動信号生成手段は、遮断周波数より高い周波数の成分を逓減させた音圧情報を用いて、振動信号を生成してもよい。
【0022】
上記によれば、ローパスフィルタ処理を行うことによって、周波数シフト処理後に残っている高周波成分を除去することができる。
【0023】
また、上記振動信号生成手段は、周波数シフト手段が変換した音圧情報を用いて特定の周波数の正弦波の強度を変化させることによって、振動信号を生成してもよい。
【0024】
上記によれば、特定の周波数を上限値以下にすることによって、振動として知覚可能な振動信号を生成することができる。また、特定の周波数を共振周波数とするデバイスに対してエネルギー効率よく振動させることが可能となる。
【0025】
また、上記周波数シフト手段は、ユーザが聴音できない周波数帯域の音圧情報に変換してもよい。上記振動信号生成手段は、周波数シフト手段が変換した音圧情報に当該周波数シフト手段が変換する前の音声信号を加えることによって、振動信号を生成してもよい。
【0026】
上記によれば、振動出力するためのユニットと音声出力するためのユニットとを組み合わせて一体化したモジュールを駆動する振動を生成することができる。
【0027】
また、上記振動信号生成システムは、少なくとも1つの振動手段および振動制御手段を、さらに備えてもよい。振動制御手段は、振動信号生成手段が生成した振動信号を用いて、振動手段を振動させる。
【0028】
上記によれば、振動信号生成システムで生成した振動信号に応じた振動を、当該振動信号生成システムから出力することができる。
【0029】
また、上記振動信号生成システムは、少なくとも1つの音声出力手段と、音声制御手段を、さらに備えてもよい。音声制御手段は、音声出力手段から出力する音声を制御する。この場合、上記振動制御手段および上記音声制御手段は、振動手段から出力される振動と音声出力手段から出力される音声とが関連するように、それぞれ振動手段から出力される振動と音声出力手段から出力される音声とを制御してもよい。
【0030】
上記によれば、音声信号に応じた音声を出力するとともに、当該音声に応じた振動も出力することができる。
【0031】
また、本発明の振動信号生成システムの一構成例は、音声信号から振動信号を生成する。振動信号生成システムは、周波数シフト手段および振動信号生成手段を備える。周波数シフト手段は、音声信号が示す高周波数帯域に属する音圧情報を、低周波数帯域の音圧情報に変換する。振動信号生成手段は、周波数シフト手段が変換した後の音圧情報を用いて、振動信号を生成する。
【0032】
上記によれば、音声信号を用いて、振動信号を生成することができる。また、振動として知覚しにくい高周波数帯域の音声信号を、低周波数帯域にシフトすることによって、振動として知覚可能な振動信号を生成することができる。
【0033】
また、本発明は、上記各手段を備える振動信号生成装置および上記各手段としてコンピュータを機能させる振動信号生成プログラムや上記各手段で行われる動作を含む振動信号生成方法の形態で実施されてもよい。
【発明の効果】
【0034】
本発明によれば、音声信号を用いて、振動信号を生成することができる。また、振動として知覚しにくい高周波数帯域(例えば、ユーザが振動を知覚可能な上限値を越える周波数帯域)の音声信号を、低周波数帯域(例えば、当該上限値以下の周波数帯域)にシフトすることによって、振動として知覚可能な振動信号を生成することができる。
【発明を実施するための形態】
【0036】
図面を参照して、本発明の一実施形態に係る振動信号生成プログラムを実行する振動信号生成装置(振動信号生成システム)について説明する。本発明の振動信号生成プログラムは、任意のコンピュータシステムで実行されることによって適用することができるが、振動信号生成装置(振動信号生成システム)の一例として携帯型の情報処理装置3(タブレット端末)を用い、情報処理装置3で実行される振動信号生成プログラムを用いて説明する。例えば、情報処理装置3は、交換可能な光ディスクやメモリーカード等の記憶媒体内に記憶された、または、他の装置から受信したプログラムや予めインストールされたプログラム(例えば、ゲームプログラム)を実行可能であり、一例として、仮想空間に設定された仮想カメラから見た仮想空間画像等のコンピュータグラフィックス処理により生成された画像を画面に表示することができる。情報処理装置3は、一般的なパーソナルコンピュータ、据置型ゲーム機、携帯電話機、携帯ゲーム機、PDA(Personal Digital Assistant)等のデバイスであってもかまわない。なお、
図1は、情報処理装置3の外観の一例を示す平面図である。
【0037】
図1において、情報処理装置3は、表示部35、音声出力部36、およびアクチュエータ373を備えている。一例として、表示部35は、情報処理装置3本体前面に設けられている。例えば、表示部35は、LCD(Liquid Crystal Display:液晶表示装置)によって構成されるが、例えばELを利用した表示装置などが利用されてもよい。また、表示部35は、立体視可能な画像を表示することが可能な表示装置であってもよい。
【0038】
表示部35の表示画面を覆うように、入力部34の一例であるタッチパネル341が設けられている。タッチパネル341は、所定の入力面(例えば、表示部35の表示画面)に対して入力された位置を検出する。なお、入力部34は、情報処理装置3のユーザが操作入力可能な入力装置であり、どのような入力装置であってもよい。例えば、入力部34として、スライドパッド、アナログスティック、十字キー、および操作ボタン等の操作部が、情報処理装置3本体の側面や背面等に備えられてもよい。また、入力部34は、情報処理装置3本体の姿勢や動きを検出するためのセンサであってもよい。例えば、入力部34は、情報処理装置3本体に生じる加速度を検出する加速度センサや情報処理装置3本体の回転量を検出する角速度センサ(ジャイロセンサ)等であってもよい。
【0039】
音声出力部36は、音声を出力するスピーカを含み、
図1に示した一例では、情報処理装置3の上側面や背面に設けられたスピーカ(音声出力部36)を含んでいる。音声出力部36は、後述する制御部31から出力される音声信号(音声制御信号)をD/A変換してアナログ音声信号を生成し、当該アナログ音声信号をスピーカへ出力して音声を出力させる。
【0040】
アクチュエータ373は、情報処理装置3の本体に所定の振動を与える振動アクチュエータ(振動子)であり、後述する振動発生部37に含まれる。
図1に示した一例では、アクチュエータ373は、情報処理装置3本体内部の中央付近に設けられたアクチュエータ373を有する。具体的には、
図1の破線領域で示すように、ユーザが情報処理装置3の左端部を左手で把持し右端部を右手で把持した場合に、当該左手と右手との間の位置となる表示部35の中央部にアクチュエータ373が設けられる。また、振動発生部37は、後述する制御部31から出力される振動制御信号をD/A変換してアナログ振動信号を生成し、当該アナログ振動信号を増幅した駆動信号をアクチュエータ373へ出力してアクチュエータ373を駆動させる。
【0041】
なお、
図1から明らかなように、情報処理装置3に設けられる表示部35の表示画面と音声出力部36とがそれぞれ近接する位置に配置されており、表示部35の表示画面とアクチュエータ373とがそれぞれ近接する位置に配置されている。また、音声出力部36およびアクチュエータ373は、それぞれ互いに近接する位置に配置されているが、別の位置に配設される別のユニットである。これによって、振動出力専用のユニットと音声出力専用のユニットとを備えることができるため、汎用のユニットを共用する場合と比較すると精度の高い振動および音声をそれぞれ出力することができる。なお、振動出力するためのユニットと音声出力するためのユニットとを組み合わせて一体化したモジュールを、情報処理装置3に設けてもよい。
【0042】
次に、
図2を参照して、情報処理装置3の内部構成について説明する。なお、
図2は、情報処理装置3の構成の一例を示すブロック図である。
【0043】
図2において、上述した入力部34、表示部35、音声出力部36、および振動発生部37の他に、制御部31、記憶部32、およびプログラム格納部33を備える。なお、情報処理装置3は、制御部31を少なくとも含む情報処理装置と他の装置とを含む1以上の装置によって構成されてもよい。
【0044】
制御部31は、各種の情報処理を実行するための情報処理手段(コンピュータ)であり、例えばCPUである。制御部31は、各種の情報処理として、入力部34に対するユーザの操作に応じた処理等を実行する機能を有する。例えば、CPUが所定のプログラムを実行することによって、制御部31における各機能が実現される。
【0045】
制御部31は、各種の情報処理として、表示部35に表示する画像の表示制御を行う。また、制御部31は、各種の情報処理として、スピーカから出力する音声を制御するための音声制御信号(例えば、デジタル音声信号)を、音声出力部36へ出力する。また、制御部31は、各種の情報処理の一例として、音声制御信号に基づいて、アクチュエータ373の振動を制御するための振動制御信号(例えば、デジタル振動信号)を生成し、当該振動制御信号を振動発生部37へ出力する。
【0046】
記憶部32は、制御部31が上記情報処理を実行する際に用いる各種のデータを記憶する。記憶部32は、例えばCPU(制御部31)がアクセス可能なメモリである。
【0047】
プログラム格納部33は、プログラムを記憶(格納)する。プログラム格納部33は、制御部31がアクセス可能な記憶装置(記憶媒体)であればどのようなものであってもよい。例えば、プログラム格納部33は、制御部31を含む情報処理装置3内に設けられる記憶装置であってもよいし、制御部31を含む情報処理装置3に着脱自在に装着される記憶媒体であってもよい。また、プログラム格納部33は、制御部31とネットワークを介して接続される記憶装置(サーバ等)であってもよい。制御部31(CPU)は、ゲームプログラムの一部または全部を適宜のタイミングで記憶部32に読み出し、読み出されたプログラムを実行するようにしてもよい。
【0048】
次に、
図3を参照して、振動発生部37の構成について説明する。なお、
図3は、振動発生部37の構成の一例を示すブロック図である。
【0049】
図3において、振動発生部37は、コーデック部371、増幅部372、およびアクチュエータ(振動子)373を備えている。
【0050】
コーデック部371は、制御部31から出力された振動制御信号を取得して所定の復号処理を行ってアナログ振動信号を生成し、増幅部372へ出力する。例えば、アクチュエータ373に振動を発生させる場合、当該振動を制御するための振動制御信号(例えば、振動制御信号CS)が制御部31から出力される。この場合、コーデック部371は、制御部31から出力された振動制御信号を復号して、アクチュエータ373に振動を発生させるためのアナログ振動信号(例えば、アナログ振動信号AS)を生成して、増幅部372へ出力する。
【0051】
増幅部372は、コーデック部371から出力されたアナログ振動信号を増幅してアクチュエータ373を駆動するための駆動信号を生成し、アクチュエータ373へ出力する。例えば、増幅部372は、コーデック部371から出力されたアナログ振動信号(例えば、アナログ振動信号AS)の電流/電圧の振幅変化をそれぞれ増大させて駆動信号(例えば、駆動信号DS)を生成して、アクチュエータ373へ出力する。
【0052】
アクチュエータ373は、増幅部372から出力された駆動信号に応じて駆動することによって、情報処理装置3の本体に当該駆動信号に応じた振動を与える。例えば、アクチュエータ373は、
図1に示すように、表示部35の表示画面の中心に設けられている。ここで、アクチュエータ373が情報処理装置3本体に振動を与える方式は、どのようなものでもかまわない。例えば、アクチュエータ373は、偏心モーター(ERM:Eccentric Rotating Mass)によって振動を生じさせる方式や、リニア・バイブレータ(LRA:Linear Resonant Actuator)によって振動を生じさせる方式や、ピエゾ(圧電)素子によって振動を生じさせる方式等を用いた構成であってもよい。アクチュエータ373が振動を生じさせる方式に応じて、増幅部372から出力される駆動信号が生成されれば、どのような方式のアクチュエータであっても様々な振動を情報処理装置3のユーザに与えることができる。
【0053】
なお、上述した説明では、コーデック部371で生成されたアナログ振動信号が増幅されてアクチュエータ373を駆動するための駆動信号が生成される例を用いたが、コーデック部371から増幅部372へ出力される信号は、デジタル信号であってもよい。例えば、パルス幅変調(PWM:Pulse Width Modulation)制御によってアクチュエータ373を駆動する場合、コーデック部371がアクチュエータ373をオン/オフするためのパルス信号を生成すればよい。この場合、コーデック部371から増幅部372へ出力される信号は、パルス波を用いて駆動が制御されるデジタル振動信号となり、増幅部372は、当該デジタル振動信号を増幅することになる。
【0054】
次に、情報処理装置3が行う具体的な処理を説明する前に、
図4〜
図12を用いて情報処理装置3において行われる処理の概要について説明する。以下の説明では、表示部35の表示画面内を仮想オブジェクトOBJやプレイヤキャラクタPCが移動するゲームを行う際の処理を、情報処理装置3において行われる情報処理の一例として用いる。なお、
図4は、表示部35の表示画面に表示されている仮想オブジェクトOBJが移動する際に、情報処理装置3本体が振動するとともに音声が出力される一例を示す図である。
図5は、表示部35の表示画面に表示されるゲーム例の画像を示す図である。
図6は、ゲームにおいて情報処理装置3本体に与えられる音声のスペクトラムの一例を説明するための図である。
図7は、上記音声を生成するための音声アナログ信号に対して周波数シフト処理を行った際のスペクトラムの一例を説明するための図である。
図8は、周波数シフト処理を行った音声アナログ信号に対してローパスフィルタ処理を行った際のスペクトラムの一例を説明するための図である。
図9は、振動制御信号を生成する際に用いられる音声アナログ信号の一例を示す図である。
図10は、音声アナログ信号に対して周波数シフト処理を行った一例を示す図である。
図11は、周波数シフト処理を行ったアナログ信号に対してローパスフィルタ処理を行った一例を示す図である。
図12は、
図11に示した波形を用いて生成した振動アナログ信号の一例を示す図である。
【0055】
図4に示す例では、仮想世界内を移動する仮想オブジェクトOBJが表示部35の表示画面に表示される。仮想オブジェクトOBJは、ユーザ操作に応じて、または自動的に仮想世界内を移動して表示部35の表示画面に表示される。
【0056】
仮想オブジェクトOBJの移動に応じて、情報処理装置3から音声が出力されるとともに、情報処理装置3本体が振動する。例えば、情報処理装置3本体に設けられたスピーカ(音声出力部36)は、表示部35の表示画面に表示されて移動する仮想オブジェクトOBJが音源となった音声を出力する。また、情報処理装置3本体に設けられたアクチュエータ373は、仮想オブジェクトOBJが移動する際に生じる振動を生じさせる。本実施例では、情報処理装置3から出力される音声を示す音声信号(音声制御信号)を用いて、アクチュエータ373を振動させるための振動信号(振動制御信号)が生成される。
【0057】
次に、
図5を参照して、情報処理装置3でプレイ可能なゲーム例について説明する。後述するゲーム例では、情報処理装置3のユーザ操作に応じて、仮想世界内を移動可能なプレイヤキャラクタPCを含む当該仮想世界の少なくとも一部が表示部35の表示画面に表示される。例えば、プレイヤキャラクタPCは、入力部34を用いたユーザ操作に応じて、仮想世界内を移動する(例えば、
図5(A)に示す時刻T0の状態)。
【0058】
表示部35の表示画面に表示される仮想世界には、仮想オブジェクトOBJが配置されている。仮想オブジェクトOBJは、仮想世界内でプレイヤキャラクタPCと接触した場合(例えば、プレイヤキャラクタPCに踏まれた場合)、ゲーム進行において接触音(例えば、潰れる音)が情報処理装置3から出力されるとともに接触した際の振動が情報処理装置3に与えられる。例えば、時刻T0に対して時系列的に後となる時刻T1では、仮想世界においてプレイヤキャラクタPCが仮想オブジェクトOBJと接触した様子が表示部35の表示画面に表示されている(
図5(B)参照)。このとき、当該ゲーム例では、仮想オブジェクトOBJとプレイヤキャラクタPCとが接触したことを示す音声(効果音)が、スピーカ(音声出力部36)から出力される。また、当該ゲーム例では、仮想オブジェクトOBJとプレイヤキャラクタPCとが接触したことを示す振動が、アクチュエータ373によって与えられる。なお、時刻T1に対して時系列的に後となる時刻T2では、仮想世界においてプレイヤキャラクタPCが仮想オブジェクトOBJと接触した後の様子が表示部35の表示画面に表示されている(
図5(C)参照)。
【0059】
また、
図6に示すように、情報処理装置3情報処理装置3から出力する音声は、広帯域のスペクトラムを有することができる。そして、本実施例では、当該音声の音圧情報を利用しながら、音声が有する周波数とは別の周波数を有する振動を情報処理装置3のユーザに与えることができる。例えば、情報処理装置3は、人間が振動を感じることができるとされる0−1000Hzの振動をユーザに与えることができるとともに、人間が耳に聞こえる可聴周波数である20−20000Hzの広帯域を中心とした音声を出力することができ、それぞれ別の制御信号によって別の振動体(アクチュエータ373およびスピーカ)を制御することができる。
【0060】
ここで、本実施例では、音声信号(音声制御信号)を用いて振動信号(振動制御信号)が生成される。例えば、上記ゲーム例では、仮想オブジェクトOBJが仮想世界内でプレイヤキャラクタPCと接触した場合(例えば、プレイヤキャラクタPCに踏まれた場合)に生じる音(例えば、仮想オブジェクトOBJが潰れる効果音)を出力するための音声信号を用いて、当該接触に対応する振動を生成するための振動信号が生成される。
【0061】
図6および
図9に示すように、振動信号の生成に用いられる音声信号(音声アナログ信号)は、人間が耳に聞こえる可聴周波数である20−20000Hzの広帯域の音声を少なくとも出力するために、典型的には広帯域の周波数成分を有している。しかしながら、人間が振動を感じることができるとされる周波数帯域が1000Hz以下であるため、上記音声信号をそのまま振動信号に流用したとしても、1000Hz−20000Hzの周波数帯域の音声に対応する振動をユーザが感じることができない。例えば、1000Hz−20000Hzの周波数帯域の音声のみが出力される音声信号の場合、当該音声信号を用いてアクチュエータ373を振動させたとしても、情報処理装置3のユーザは振動を感じることができなくなる。
【0062】
本実施例における振動信号生成処理では、出力される音声に対応する振動を生成する際、当該音声を出力するための音声信号に対して周波数シフト処理を行う。例えば、振動信号の元となる音声信号が有する周波数成分が所定の周波数以下(例えば、1000Hz以下や20Hz以下)となるように、当該音声信号の波形データ(例えば、横軸が時間、縦軸が音圧(振幅)で示された波形データ)に対して移動する一定区間毎の最大値を抽出し、当該移動最大値のエンベロープ波形を用いることによって、当該音声信号における音圧情報に対する周波数シフト処理を行う。これによって、上記音声信号において高周波数帯域に属する音圧情報が、ユーザが振動を知覚可能な上限値(知覚閾値;例えば、1000Hz)以下の周波数帯域の音圧情報に変換することができる。例えば、
図10に示した波形は、
図9に示した音声信号において音圧情報がプラスとなる波形データに対して、当該音声信号が有する周波数成分が20Hz以下となるように移動最大値を算出し、当該移動最大値のエンベロープをとった波形を示している。
図7に示すように、
図10に示した上記移動最大値のエンベロープをとった波形のスペクトラムは、知覚閾値(例えば、1000Hz)を越える周波数帯域に属する音圧情報が20Hz以下の周波数帯域の音圧情報(パワー情報)に変換されていることがわかる。
【0063】
次に、本実施例における振動信号生成処理では、上記移動最大値のエンベロープをとった信号に対して、所定の遮断周波数(例えば、1000Hzや20Hz)より高い周波数の成分を逓減させるローパスフィルタ処理を行う。例えば、
図11に示した波形は、
図9に示したエンベロープ波形に対して、遮断周波数が1000Hzに設定されたローパスフィルタ処理が行われた波形を示している。このローパスフィルタ処理によって、上記エンベロープ波形に残存している高周波成分を除去することができる。
図8に示すように、
図11に示した上記ローパスフィルタ処理が行われた波形のスペクトラムは、遮断周波数(例えば、1000Hz)を越える周波数帯域に属するパワー情報が除去されていることがわかる。
【0064】
次に、高周波成分を除去した上記エンベロープ波形に基づいて、アクチュエータ373を駆動するための振動信号を生成する。例えば、
図12に示すように、特定の周波数の正弦波の強度(振幅)をエンベロープの形状に沿うように変化させ、当該変化後の正弦波を用いてアクチュエータ373を振動させるための振動信号を生成する。例えば、振動信号を生成するための特定の周波数は、知覚閾値(例えば、1000Hz)以下の周波数であり、当該振動信号によって振動させるアクチュエータ(例えば、アクチュエータ373)の共振周波数(例えば、300Hz)に設定してもよい。このような特定の周波数の正弦波は、当該特定の周波数を共振周波数とするデバイスに対してエネルギー効率よく振動させることが可能となり、アクチュエータ373のエネルギー効率を考慮した振動信号の生成が可能となる。
【0065】
高周波成分を除去した上記エンベロープ波形に基づいて、上記振動信号の生成する他の例として、上記特定の周波数(例えば、アクチュエータの共振周波数)の正弦波の強度(振幅)を上記エンベロープの形状に沿うように変化させた波形に、他の周波数(知覚閾値(例えば、1000Hz)以下の周波数であり、上記特定の周波数とは異なる周波数。例えば、160Hz)の正弦波の強度(振幅)を上記エンベロープの形状に沿うように変化させた波形を加算し、当該加算した波形を用いてアクチュエータ373を振動させるための振動信号を生成してもよい。これによって、アクチュエータ373から、単一の周波数成分のみの振動ではなく、それぞれ複数の周波数成分を有する振動を情報処理装置3本体に与えることができる。また、後述するように、ユーザに振動を与えるアクチュエータが情報処理装置3に複数(例えば、情報処理装置3の左右に一対のアクチュエータ)設けられている場合、当該複数のアクチュエータの共振周波数が異なることが考えられる。このような場合であっても、一方の共振周波数の正弦波の強度(振幅)を上記エンベロープの形状に沿うように変化させた波形に、他方の共振周波数の正弦波の強度(振幅)を当該エンベロープの形状に沿うように変化させた波形を加算し、当該加算した波形を用いてそれぞれのアクチュエータを振動させるための振動信号を生成してもよい。この場合、同一の振動信号を用いて、それぞれのアクチュエータのエネルギー効率を考慮した振動信号の生成が可能となる。また、上記特定周波数や上記他の周波数は、アクチュエータの共振周波数以外のものとして、増幅回路(増幅部272)のエネルギー効率のよい周波数や情報処理装置3の筐体の共振周波数でもよい。
【0066】
このように、上述した振動信号生成処理では、音声出力するための音声信号を用いて、振動アクチュエータを駆動するための振動信号を容易に生成することができる。例えば、「バリエーションに富んだ振動」をユーザに与えるための振動信号を一から生成しようとすると、その作業量は膨大になるが、音声信号から振動信号を生成することによって、当該振動信号を容易に生成することができる。また、上記振動信号を音声信号に基づいて生成することができるため、振動信号を予め別に用意することなく振動信号を利用することができる。また、音声信号をそのまま振動信号として用いる場合、振動として知覚できない振動信号が生成されてしまうことが考えられるが、上述した振動信号生成処理では、振動として知覚することができない周波数帯域の音声信号に対して低周波数帯域に周波数シフトすることによって、振動として知覚できる振動信号を生成している。したがって、上述した振動信号生成処理では、ユーザに振動を確実に知覚させることができる振動信号の生成が可能となる。
【0067】
なお、上述した説明では、高周波成分を除去した上記エンベロープ波形に基づいて、アクチュエータ373を駆動するための振動信号を生成しており、振動信号の元になる音声信号における音圧レベルを残して当該振動信号を生成している。しかしながら、振動信号の元になる音声信号における音圧レベルを上げた(例えば、1より大きい定数を乗算)上記エンベロープ波形を用いてもいいし、振動信号の元になる音声信号における音圧レベルを下げた(例えば、1より小さい定数を乗算)上記エンベロープ波形を用いてもよい。
【0068】
また、上述した説明では、音声信号に対して移動最大値を算出することによって、当該音声信号に対する周波数シフト処理を行う例を用いたが、他の方法によって音声信号の周波数をシフトしてもよい。本実施例では、所定タイミング(例えば、音圧がピークとなるタイミング)における音声信号の音圧情報を残して、知覚閾値(例えば、1000Hz)以下の周波数帯域の音圧情報に変換することができればどのような方法で周波数シフト処理を行ってもよい。
【0069】
第1の例として、振動信号の元となる音声信号が有する周波数成分が所定の周波数以下(例えば、1000Hz以下や20Hz以下)となるように、当該音声信号の波形データに対して移動する一定区間毎の区間最大値を抽出し、当該区間最大値のエンベロープ波形を用いることによって、当該音声信号における音圧情報に対する周波数シフト処理を行ってもよい。
【0070】
第2の例として、振動信号の元となる音声信号の波形データにおける音圧の極大値を通る曲線を用いることによって、当該音声信号における音圧情報に対する周波数シフト処理を行ってもよい。なお、上述した各周波数シフト処理を行う例では、振動信号の元となる音声信号が有する音圧のプラス成分のみを用いて行ってもいいし、振動信号の元となる音声信号の音圧の絶対値を示す波形データ(すなわち、上記音声信号が有する音圧のマイナス成分をプラス側に折り返した波形データ)を用いて行ってもよい。
【0071】
第3の例として、振動信号の元となる音声信号が有する周波数成分が所定の周波数以下(例えば、1000Hz以下や20Hz以下)となるように、当該音声信号の時間軸を所定率で伸長し、当該伸長後の音声信号の一部を切り出して連結することによって、当該音声信号における音圧情報に対する周波数シフト処理を行ってもよい。具体的には、上記音声信号の波形データを時間軸方向に20倍に伸長した場合、当該音声信号の周波数が1/20にシフトされる。そして、自己相関関数等を用いて周波数を伸長した音声信号に対する周波数の規則性を検出して波形を切り出し、当該切り出した波形を伸長前と同じ時間長さとなるように連結することによって、周波数シフト処理が行われた振動信号を生成することができる。この場合、これによって、アクチュエータ373から、それぞれ広帯域の周波数成分を有する振動を情報処理装置3本体に与えることができる。
【0072】
なお、アクチュエータ373から複数の周波数成分を有する振動(単一の周波数成分のみの振動ではない振動)が情報処理装置3本体に与えられる場合、所定幅を有する周波数帯域の振動(広帯域の振動)がアクチュエータ373から情報処理装置3本体に与えられてもよい。この場合、10Hz(ヘルツ)より低い低周波数成分から高周波数成分までの周波数帯域に対する全域に対してパワーを有する振動が、アクチュエータ373から情報処理装置3本体に与えられてもよい。ここで、人間の皮膚感覚を受容する感覚受容器は、メルケル盤、マイスナー小体、パチニ小体、およびルフィニ終末等で構成されており、メルケル盤が0−200Hzの振動に応答するとされ、マイスナー小体が20−100Hzの振動に応答し30Hz付近の振動が最も感度が高いとされ、パチニ小体が100−300Hzの振動に応答し200Hz付近の振動が最も感度が高いとされている。アクチュエータ373から情報処理装置3本体に与えられる振動を、人間が振動を感じることができるとされる0−1kHzの周波数帯域の振動または当該周波数帯域の一部の振動を有するとともに、これらの感覚受容器がそれぞれ応答可能な周波数成分を有するように生成することよって、リアリティに富んだ触り心地を再現してユーザに提示することができる。
【0073】
また、振動信号の生成の際、上述した振動信号生成処理によって生成された振動信号に、さらに当該振動信号の元となった音声信号を加えてもよい。この場合、上記振動信号生成処理によって生成された低周波数帯域の信号で構成される振動信号に、高周波数帯域の信号が含み得る音声信号が加えられることになり、さらにバリエーションに富んだ振動信号の生成が可能となる。
【0074】
本実施例では、情報処理装置3本体に振動を与えるための振動データと情報処理装置3から音声を出力するための音声データとが、それぞれ別に予め用意されていてもよい。この場合、振動と連動して出力され得る音声毎に、当該音声を出力するための音声信号を元にして振動信号が予め生成され、当該音声信号に対応付けて用意されている。そして、情報処理装置3本体から出力する音声に応じた音声データおよび当該音声に対応する振動データを、上記用意された音声データおよび振動データの中から抽出して読み出すことによって、音声制御信号および振動制御信号が生成される。
【0075】
また、本実施例では、音声出力時に当該出力される音声に対応する振動信号を生成するように、音声出力に対してリアルタイムに当該音声出力に対応する振動信号生成処理が行われてもよい。この場合、情報処理装置3から音声を出力するための音声データが予め用意され、出力する音声と連動して振動を生成する場合、当該音声を出力するための音声信号を用いて上記振動信号生成処理をリアルタイムで行い、情報処理装置3から音声出力を行うとともに生成された振動信号に応じた振動を情報処理装置3本体からユーザに与える。
【0076】
また、上述した振動信号生成処理では、音声信号の音圧情報を残して、知覚閾値(例えば、1000Hz)以下の周波数帯域の音圧情報に変換する例を用いたが、他の変換態様でもよい。例えば、音声信号が示す高周波数帯域に属する音圧情報が、低周波数帯域の音圧情報に変換される周波数シフト処理が行われれば、変換後の音圧情報の周波数帯域の少なくとも一部に知覚閾値以上の周波数成分が含まれていてもよい。この場合、周波数シフト処理によって、振動としては知覚されない周波数帯域の信号が残ることが考えられるが、振動としては知覚されない周波数帯域の音声信号の少なくとも一部が振動として知覚可能な周波数帯域の信号に変化されるため、ある程度の周波数シフトの効果を期待することができる。
【0077】
次に、情報処理装置3において行われる処理の詳細を説明する。まず、
図13を参照して、振動制御信号生成処理において用いられる主なデータについて説明する。
図13は、振動制御信号生成処理を行う際に、情報処理装置3の記憶部32に記憶される主なデータおよびプログラムの一例を示す図である。
【0078】
図13に示すように、記憶部32のデータ記憶領域には、音声制御信号データDa、周波数シフト処理データDb、ローパスフィルタ処理データDc、および振動制御信号データDd等が記憶される。なお、記憶部32には、
図13に示すデータの他、実行するアプリケーションで用いるデータ等、処理に必要なデータ等が記憶されてもよい。また、記憶部32のプログラム記憶領域には、振動信号生成プログラムを構成する各種プログラム群Paが記憶される。
【0079】
音声制御信号データDaは、振動制御信号(振動制御信号CS;
図3参照)を生成する処理の元になる音声制御信号を示すデータである。例えば、音声制御信号データDaは、制御部31から音声出力部36へ出力する音声制御信号を示すデータでもよいし、音声出力を前提としない音声データでもよい。
【0080】
周波数シフト処理データDbは、音声制御信号に対して周波数シフト処理を行ったデータである。ローパスフィルタ処理データDcは、周波数シフト処理を行ったデータに対してローパスフィルタ処理を行ったデータである。
【0081】
振動制御信号データDdは、ローパスフィルタ処理を行ったデータを用いて生成された振動制御信号を示すデータである。例えば、振動制御信号データDdは、制御部31から振動発生部37へ出力するための振動制御信号(振動制御信号CS;
図3参照)を示すデータでもよい。
【0082】
次に、
図14を参照して、情報処理装置3において行われる情報処理の一例である振動制御信号生成処理の詳細を説明する。なお、
図14は、情報処理装置3において実行される振動制御信号生成処理の一例を示すフローチャートである。ここで、
図14に示すフローチャートにおいては、情報処理装置3における処理のうち、音声制御信号から振動制御信号を生成する処理について主に説明し、これらの処理と直接関連しない他の処理については詳細な説明を省略する。また、
図14では、制御部31が実行する各ステップを「S」と略称する。
【0083】
制御部31のCPUは、記憶部32のメモリ等を初期化し、プログラム格納部33から振動信号生成プログラムをメモリに読み込む。そして、CPUによって当該振動信号生成プログラムの実行が開始される。
図14に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。
【0084】
なお、
図14に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えておよび/または代えて別の処理が実行されてもよい。また、本実施例では、上記フローチャートの各ステップの処理を制御部31(CPU)が実行するものとして説明するが、上記フローチャートにおける一部のステップの処理を上記CPUが実行し、その他のステップの処理を上記CPU以外のプロセッサや専用回路が実行するようにしてもよく、上記フローチャートにおける全部のステップの処理を上記CPU以外のプロセッサや専用回路が実行するようにしてもよい。
【0085】
図14において、制御部31は、振動制御信号を生成する処理の元になる音声制御信号を取得して(ステップ61)、次のステップに処理を進める。例えば、制御部31は、音声制御信号データDaに格納されている音声制御信号から、振動制御信号生成処理の対象とする音声制御信号を選択して取得する。
【0086】
次に、制御部31は、周波数シフト処理の一例である移動最大値算出処理を行って(ステップ62)、次のステップに処理を進める。例えば、制御部31は、上記ステップ61で取得した音声制御信号が有する周波数成分が所定の周波数以下(例えば、知覚閾値以下であり、1000Hz以下や20Hz以下)となるように、当該音声制御信号が示す波形データ(例えば、横軸が時間、縦軸が音圧で示された波形データ)に対して移動する一定区間毎の最大値を算出する。
【0087】
次に、制御部31は、上記ステップ62で算出した移動最大値のエンベロープ波形を生成して(ステップ63)、次のステップに処理を進める。例えば、制御部31は、上記ステップ62で算出した移動最大値のエンベロープをとった信号を生成して、当該信号を示すデータを周波数シフト処理データDbに格納する。
【0088】
次に、制御部31は、上記ステップ63で移動最大値のエンベロープをとった信号に対して、所定の遮断周波数(例えば、1000Hzや20Hz)より高い周波数の成分を逓減させるローパスフィルタ処理を行い(ステップ64)、次のステップに処理を進める。例えば、制御部31は、周波数シフト処理データDbに格納されているエンベロープをとった信号に対して、上記遮断周波数が設定されたローパスフィルタ処理を行って高周波成分を除去し、当該処理後の信号を示すデータをローパスフィルタ処理データDcに格納する。
【0089】
次に、制御部31は、高周波成分を除去したエンベロープを示す信号に基づいて、振動制御信号を生成し(ステップ65)、当該フローチャートによる処理を終了する。例えば、制御部31は、特定の周波数の正弦波の強度(振幅)を、ローパスフィルタ処理データDcに格納されている信号の形状に沿うように変化させ、当該変化後の正弦波を示すデータを振動制御信号として生成して、振動制御信号データDdに格納する。
【0090】
次に、
図15を参照して、情報処理の一例であるゲーム処理において用いられる主なデータについて説明する。
図15は、ゲーム処理を行う際に、情報処理装置3の記憶部32に記憶される主なデータおよびプログラムの一例を示す図である。なお、以下のゲーム処理の説明では、仮想世界内を仮想オブジェクトOBJが移動するゲーム例(
図4参照)を用いる。
【0091】
図15に示すように、記憶部32のデータ記憶領域には、操作データDe、オブジェクト位置データDf、音声設定情報データDg、音声制御信号データDh、振動制御信号データDi、音声データDj、および表示画像データDk等が記憶される。なお、記憶部32には、
図15に示すデータの他、実行するアプリケーションで用いるデータ等、処理に必要なデータ等が記憶されてもよい。また、記憶部32のプログラム記憶領域には、ゲームプログラムを構成する各種プログラム群Pbが記憶される。例えば、各種プログラム群Pbは、振動制御信号を生成して情報処理装置3に振動を与えるための振動信号生成プログラム、音声制御信号を生成して情報処理装置3から音声を出力するための音声生成プログラム、および表示部35に画像を表示するための画像表示プログラム等が含まれる。また、音声出力とリアルタイムに振動制御信号を生成する場合、各種プログラム群Pbは、当該音声出力するための音声制御信号から振動制御信号を生成するための振動制御信号生成プログラムが含まれる。
【0092】
操作データDeは、入力部34に対する操作内容を示すデータであり、例えばタッチパネル341に対するタッチ位置を示すデータを含んでいる。なお、入力部34が情報処理装置3本体の姿勢や動きを検出するためのセンサを含んでいる場合、操作データDeは、情報処理装置3本体の姿勢や動きを算出するためのデータ(例えば、情報処理装置3本体に生じる加速度を示すデータや情報処理装置3本体の角速度を示すデータ)を含んでもよい。
【0093】
オブジェクト位置データDfは、仮想世界内を移動する仮想オブジェクトOBJ(
図4参照)の位置を示すデータである。
【0094】
音声設定情報データDgは、音源種類データDg1等を含む。音源種類データDg1は、情報処理装置3から出力する音声の種類を示すデータである。
【0095】
音声制御信号データDhは、制御部31から音声出力部36へ出力する音声制御信号を示すデータである。振動制御信号データDiは、音声出力部36へ出力する音声制御信号に基づいて生成された振動制御信号を示すデータであり、制御部31から振動発生部37へ出力する振動制御信号(振動制御信号CS;
図3参照)を示すデータである。
【0096】
音声データDjは、音声制御信号を生成するために予め用意されたデータであり、情報処理装置3から出力する音声の種類毎(例えば、音声を生じさせる仮想オブジェクト毎やBGMの種類毎)にそれぞれ格納されている。
【0097】
表示画像データDkは、仮想オブジェクトOBJ等の各仮想オブジェクトの画像や背景画像等を生成して表示部35に表示するためのデータである。
【0098】
次に、
図16を参照して、情報処理装置3において行われる情報処理の一例であるゲーム処理の詳細を説明する。なお、
図16は、情報処理装置3において実行されるゲーム処理の一例を示すフローチャートである。ここで、
図16に示すフローチャートにおいては、情報処理装置3における処理のうち、仮想オブジェクトOBJが仮想世界を移動することに応じた振動および音声が出力される処理について主に説明し、これらの処理と直接関連しない他の処理については詳細な説明を省略する。また、
図16では、制御部31が実行する各ステップを「S」と略称する。
【0099】
制御部31のCPUは、記憶部32のメモリ等を初期化し、プログラム格納部33からゲームプログラムをメモリに読み込む。そして、CPUによって当該ゲームプログラムの実行が開始される。
図16に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。
【0100】
なお、
図16に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えておよび/または代えて別の処理が実行されてもよい。また、本実施例では、上記フローチャートの各ステップの処理を制御部31(CPU)が実行するものとして説明するが、上記フローチャートにおける一部のステップの処理を上記CPUが実行し、その他のステップの処理を上記CPU以外のプロセッサや専用回路が実行するようにしてもよく、上記フローチャートにおける全部のステップの処理を上記CPU以外のプロセッサや専用回路が実行するようにしてもよい。
【0101】
図16において、制御部31は、初期設定を行い(ステップ41)、次のステップに処理を進める。例えば、制御部31は、表示部35に表示するための仮想世界を構築し、各パラメータを初期設定する。一例として、制御部31は、仮想世界における初期位置に仮想オブジェクトOBJを配置してオブジェクト位置データDbを設定する。また、制御部31は、表示部35の表示画面に表示する表示範囲を仮想世界に対して設定する。
【0102】
次に、制御部31は、入力部34から操作データを取得し、操作データDeを更新して(ステップ42)、次のステップに処理を進める。
【0103】
次に、制御部31は、仮想世界において仮想オブジェクトOBJを移動させる処理を行い(ステップ43)、次のステップに処理を進める。例えば、制御部31は、仮想世界内に予め定められた移動経路に沿って、予め定められた移動速度で仮想オブジェクトOBJを移動させ、当該移動後の位置を用いてオブジェクト位置データDfを更新する。他の例として、制御部31は、入力部34に対する操作(情報処理装置3本体を移動させたり傾けたりする操作を含む)に応じて仮想オブジェクトOBJを移動させる場合、上記ステップ42において取得した操作データに応じて、仮想世界内で仮想オブジェクトOBJを移動させ、当該移動後の位置を用いてオブジェクト位置データDfを更新する。
【0104】
次に、制御部31は、音源の種類を設定して(ステップ44)、次のステップに処理を進める。例えば、制御部31は、音声生成プログラムおよび仮想世界に配置されている仮想オブジェクトOBJの種類に基づいて、当該仮想オブジェクトOBJが移動する際の音声の種類を設定し、当該音声の種類を示すデータを用いて音源種類データDg1を更新する。
【0105】
次に、制御部31は、音声設定情報に基づいて、音声制御信号を設定し(ステップ45)、次のステップに処理を進める。例えば、制御部31は、音声生成プログラムおよび音声設定情報データDg(音源種類データDg1)に基づいて、音声制御信号を生成して音声制御信号データDfに格納する。具体的には、制御部31は、音源種類データDg1が示す種類の音声を情報処理装置3のスピーカから出力されるように、音声データDjからデータを読み出して音声制御信号を生成する。
【0106】
次に、制御部31は、上記ステップ45において生成された音声制御信号を用いて、振動制御信号生成処理を行って(ステップ46)、次のステップに処理を進める。なお、上記ステップ46で行う振動制御信号生成処理については、
図14を用いて説明した振動制御信号生成処理と同様であるため、ここでは詳細な説明を省略する。上記ステップ46においては、上記ステップ45において生成された音声制御信号に対して、周波数シフト処理およびローパスフィルタ処理を行うことによって、振動制御信号(振動発生部37へ出力する振動制御信号CS;
図3参照)を生成し、振動制御信号データDiに格納する。これによって、音声制御信号に応じた振動が情報処理装置3本体に与えられる。なお、音声出力する音声制御信号に応じた振動制御信号が予め生成されている場合、上記ステップ46では、予め生成されている振動制御信号から音声制御信号に対応する振動制御信号を抽出する処理を行う。
【0107】
次に、制御部31は、表示制御処理を行い(ステップ47)、次のステップに処理を進める。例えば、制御部31は、画像生成プログラムおよびオブジェクト位置データDfに基づいて、仮想オブジェクトOBJを配置した仮想世界の画像を生成し、設定されている表示範囲内の仮想世界の画像を表示部35に表示する処理を行う。
【0108】
次に、制御部31は、制御信号出力処理を行い(ステップ48)、次のステップに処理を進める。例えば、制御部31は、振動制御信号データDiが示す振動制御信号CSを振動発生部37へ出力する。これによって、振動発生部37は、振動制御信号CSに応じた振動をアクチュエータ373から発生させる。また、制御部31は、音声制御信号データDhが示す音声制御信号を音声出力部36へ出力する。これによって、音声出力部36は、音声制御信号に応じた音声をスピーカから出力する。
【0109】
次に、制御部31は、ゲーム処理を終了するか否かを判断する(ステップ49)。ゲーム処理を終了する条件としては、例えば、ゲーム処理を終了させる条件が満たされたことや、ユーザがゲーム処理を終了する操作を行ったこと等がある。制御部31は、ゲーム処理を終了しない場合に上記ステップ42に戻って処理を繰り返し、ゲーム処理を終了する場合に当該フローチャートによる処理を終了する。
【0110】
このように、上述した実施例に係る処理では、音声出力するための音声制御信号を用いて、アクチュエータ373を駆動するための振動制御信号を容易に生成することができ、振動制御信号を予め別に用意することなく振動制御信号を用いた処理を行うことができる。また、上述した振動制御信号生成処理では、振動として知覚することができない周波数帯域の音声制御信号を、低周波数帯域に周波数シフトすることによって、振動として知覚可能な振動制御信号を生成しているため、ユーザに振動を確実に知覚させることができる振動制御信号の生成が可能となる。
【0111】
なお、上述した実施例では、情報処理装置3にアクチュエータ373が1つ設けられている例を用いたが、ユーザに振動を与えるアクチュエータが複数設けられてもよい。一例として、情報処理装置3の左右に一対のアクチュエータを設けてもよい。この場合、制御部31は、1つの音声信号からそれぞれのアクチュエータを駆動するための振動制御信号をそれぞれ生成してもいいし、それぞれ別の音声信号(例えば、左スピーカから音声を出力するための左音声信号と右スピーカから音声を出力するための右音声信号)からそれぞれのアクチュエータを駆動するための振動制御信号をそれぞれ生成してもよい。
【0112】
例えば、アクチュエータ373が複数設けられており、それぞれのアクチュエータ373から独立した振動を発生させる場合、アクチュエータ373毎に振動を制御するための振動制御信号が制御部31から出力される。この場合、コーデック部371は、制御部31から出力された振動制御信号をそれぞれ復号して、アクチュエータ373毎に振動を発生させるためのアナログ振動信号を生成して、増幅部372へそれぞれ出力する。そして、増幅部372は、コーデック部371から出力されたアナログ振動信号の電流/電圧の振幅変化をそれぞれ増大させて駆動信号を生成して、複数のアクチュエータ373へそれぞれ出力する。複数のアクチュエータが情報処理装置3に備えられている場合、ユーザの皮膚における異なる2点(一例として、情報処理装置3本体を把持するユーザの左手と右手)に刺激を与えることによって擬似的な1点の刺激を知覚させるファントムセンセーションを利用して、当該アクチュエータは、表示部35に表示している所定画像の位置が振動源であるように擬似的に知覚させる振動を情報処理装置3のユーザに与えることも可能となる。
【0113】
また、上述した説明では情報処理(振動制御信号生成処理、ゲーム処理)を情報処理装置3で行う例を用いたが、上記情報処理における処理ステップの少なくとも一部を他の装置で行ってもかまわない。例えば、情報処理装置3がさらに他の装置(例えば、別のサーバ、他のゲーム装置、他の携帯端末)と通信可能に構成されている場合、上記情報処理における処理ステップは、さらに当該他の装置が協働することによって実行してもよい。一例として、他の装置において、仮想世界の画像の生成処理、振動制御信号の生成処理、および音声制御信号の生成処理の少なくとも1つが行われ、当該処理の結果を示す画像データや制御信号を情報処理装置3が取得することも考えられる。このように、上記情報処理における処理ステップの少なくとも一部を他の装置で行うことによって、上述した情報処理と同様の処理が可能となる。また、上述した情報処理は、少なくとも1つの情報処理装置により構成される情報処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。なお、少なくとも1つの情報処理装置により構成される情報処理システムは、複数の情報処理装置により構成される情報処理システム(いわゆる、複数の装置の複合体で構成されるシステム)と1つの情報処理装置によって構成される情報処理システム(いわゆる、複数のユニットが構成された単独の装置で構成されるシステム)とが考えられる。また、上記実施例においては、情報処理装置3の制御部31が所定の振動信号生成プログラムを実行することによって、上述したフローチャートによる処理が行われたが、情報処理装置3が備える専用回路によって上記情報処理の一部または全部が行われてもよい。
【0114】
ここで、上述した変形例によれば、いわゆるクラウドコンピューティングのシステム形態や分散型の広域ネットワークおよびローカルネットワークのシステム形態でも本発明を実現することが可能となる。例えば、分散型のローカルネットワークのシステム形態では、据置型の情報処理装置(据置型のゲーム装置)と携帯型の情報処理装置(携帯型のゲーム装置)との間で上記情報処理を協働により実行することも可能となる。なお、これらのシステム形態では、上述した情報処理の各ステップの処理をどの装置で行うかについては特に限定されず、どのような処理分担をしたとしても本発明を実現できることは言うまでもない。
【0115】
また、上述した情報処理で用いられる処理順序、設定値、判定に用いられる条件等は、単なる一例に過ぎず他の順序、値、条件であっても、本実施例を実現できることは言うまでもない。また、上述した情報処理装置で用いられる各構成部品の形状、数、配置位置、部品が有する機能等は、単なる一例に過ぎず他の形状、数、配置位置であってもいいし、他の機能を有するものであっても、本実施例を実現できることは言うまでもない。一例として、情報処理装置に振動を与えるアクチュエータや情報処理装置から音声を出力するスピーカは、3つ以上であってもよい。また、情報処理装置は、複数の表示部を有してもよい。また、上述した説明では、携帯型の装置(例えば、タブレット端末)を情報処理装置3の一例として用いたが、情報処理装置3は、携帯型の装置より相対的に大きな手持ち型の装置または可搬型の装置でもよい。ここで、手持ち型の装置とは、ユーザが手に持って操作することができる装置であり、上述した携帯型の装置を含む概念である。また、可搬型の装置とは、当該装置を用いる際に当該装置本体を移動させたり、当該装置を用いる際に当該本体の姿勢を変えたり、当該装置本体を持ち運びしたりできる装置であり、上述した手持ち型の装置や携帯型の装置を含む概念である。
【0116】
また、上記振動信号生成プログラムは、外部メモリ等の外部記憶媒体を通じて情報処理装置3に供給されるだけでなく、有線または無線の通信回線を通じて情報処理装置3に供給されてもよい。また、上記振動信号生成プログラムは、情報処理装置3内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記振動信号生成プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ、などでもよい。また、上記振動信号生成プログラムを記憶する情報記憶媒体としては、上記振動信号生成プログラムを記憶する揮発性メモリでもよい。このような記憶媒体は、コンピュータ等が読み取り可能な記録媒体ということができる。例えば、コンピュータ等に、これらの記録媒体のゲームプログラムを読み込ませて実行させることにより、上述で説明した各種機能を提供させることができる。
【0117】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施例の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。