(57)【特許請求の範囲】
【請求項１】
アプリケーションの実行に応じて振動子を振動させるための振動信号を生成する振動信号生成装置に含まれるコンピュータで実行される振動信号生成プログラムであって、
前記コンピュータを、
前記アプリケーションの実行中に所定のパラメータを取得するパラメータ取得手段と、
振動を生成するタイミングおよび強度を少なくとも示す所定のアルゴリズムを、前記パラメータ取得手段によって取得されたパラメータに応じて動的に変化させて設定するアルゴリズム設定手段と、
振動または高周波成分が除去された音の素材と前記アルゴリズム設定手段が設定したアルゴリズムとを用いて、または当該素材を生成可能なフィルタと前記アルゴリズム設定手段が設定したアルゴリズムとを用いて、前記振動信号を生成する振動信号生成手段と、
前記アルゴリズム設定手段が設定した同じアルゴリズムを用いて、スピーカから音声を出力するための音声信号を生成する音声信号生成手段として機能させる、振動信号生成プログラム。
【請求項２】
前記振動信号生成手段により生成された振動信号を示す振動と前記音声信号生成手段により生成された音声信号を示す音声とを略同時に出力する出力手段として、さらに前記コンピュータを機能させる、請求項１に記載の振動信号生成プログラム。
【請求項３】
前記振動信号生成手段は、振動または高周波成分が除去された音の第１の素材と前記アルゴリズム設定手段が設定したアルゴリズムとを用いて、または当該第１の素材を生成可能なフィルタと前記アルゴリズム設定手段が設定したアルゴリズムとを用いて、前記振動信号を生成し、
前記音声信号生成手段は、前記第１の素材とは異なる第２の素材と前記同じアルゴリズムとを用いて、または当該第２の素材を生成可能なフィルタと前記同じアルゴリズムとを用いて、前記音声信号を生成する、請求項２に記載の振動信号生成プログラム。
【請求項４】
前記振動信号生成手段は、前記素材を生成可能なフィルタと前記アルゴリズム設定手段が設定したアルゴリズムとを用いて、前記振動信号を生成し、
前記音声信号生成手段は、前記素材と前記同じアルゴリズムを用いて、前記音声信号を生成する、請求項１または２に記載の振動信号生成プログラム。
【請求項５】
前記音声信号生成手段は、前記素材を生成可能な同じフィルタを用いて、前記音声信号を生成する、請求項１に記載の振動信号生成プログラム。
【請求項６】
前記パラメータ取得手段は、所定のオブジェクトを仮想世界に配置して表示画面に表示するアプリケーションの実行中に、当該オブジェクトに関するパラメータを取得し、
前記アルゴリズム設定手段は、前記オブジェクトに関するパラメータに応じて、前記所定のアルゴリズムを変化させる、請求項１乃至５の何れか１つに記載の振動信号生成プログラム。
【請求項７】
前記パラメータ取得手段は、前記オブジェクトが仮想世界に配置される際の物理シミュレーションに基づいて、前記オブジェクトに関するパラメータを取得する、請求項６に記載の振動信号生成プログラム。
【請求項８】
前記パラメータ取得手段は、仮想世界において前記オブジェクトが発する振動を模したパラメータを、前記オブジェクトに関するパラメータとして取得する、請求項６に記載の振動信号生成プログラム。
【請求項９】
前記パラメータ取得手段は、仮想世界における前記オブジェクトの状況に基づいて、前記オブジェクトに関するパラメータを取得する、請求項６に記載の振動信号生成プログラム。
【請求項１０】
前記振動信号生成手段は、複数の振動の素材または高周波成分が除去された複数の音の素材と前記アルゴリズム設定手段が設定したアルゴリズムとを用いて、前記振動信号を生成する、請求項１乃至９の何れか１つに記載の振動信号生成プログラム。
【請求項１１】
前記フィルタは、少なくとも１つの双２次フィルタで構成される、請求項１乃至１０の何れか１つに記載の振動信号生成プログラム。
【請求項１２】
前記フィルタのパラメータを、前記パラメータ取得手段によって取得されたパラメータに応じて変化させるフィルタ設定手段として、さらに前記コンピュータを機能させる、請求項１乃至１１の何れか１つに記載の振動信号生成プログラム。
【請求項１３】
前記振動信号生成手段は、前記アプリケーションの実行結果に応じて、リアルタイムに前記素材を生成する素材生成手段を含む、請求項１乃至１２の何れか１つに記載の振動信号生成プログラム。
【請求項１４】
前記アルゴリズム設定手段は、前記パラメータ取得手段によって取得されたパラメータに応じて、各振動の強さ、各振動が生じる時間間隔、各振動がそれぞれ生じている時間幅、および各振動のランダムさの少なくとも１つを算出して、前記アルゴリズムを設定する、請求項１乃至１３の何れか１つに記載の振動信号生成プログラム。
【請求項１５】
前記パラメータ取得手段は、第１のアプリケーションの実行中に第１のパラメータを取得することが可能であるとともに、当該第１のアプリケーションとは異なる第２のアプリケーションの実行中に第２のパラメータを取得することが可能であり、
前記アルゴリズム設定手段は、前記パラメータ取得手段によって取得された前記第１のパラメータと前記第２のパラメータとが同じである場合、同じアルゴリズムを設定する、請求項１乃至１４の何れか１つに記載の振動信号生成プログラム。
【請求項１６】
前記アルゴリズム設定手段は、前記パラメータ取得手段によって取得されたパラメータに応じて、非ループのアルゴリズムを設定し、
前記振動信号生成手段は、前記非ループのアルゴリズムを用いて、非ループの前記振動信号を生成する、請求項１乃至１５の何れか１つに記載の振動信号生成プログラム。
【請求項１７】
前記素材は、ユーザが振動を認識可能な上限周波数以下の帯域の波形データである、請求項１乃至１６の何れか１つに記載の振動信号生成プログラム。
【請求項１８】
前記素材は、ユーザが聴音できない周波数帯域の波形データを含む、請求項１７に記載の振動信号生成プログラム。
【請求項１９】
前記フィルタは、ユーザが振動を認識可能な上限周波数以下の特性周波数が設定された複数のフィルタの組によって構成される、請求項１乃至１６の何れか１つに記載の振動信号生成プログラム。
【請求項２０】
前記フィルタの組は、ユーザが聴音できない周波数帯域に特性周波数が属するフィルタを含む、請求項１９に記載の振動信号生成プログラム。
【請求項２１】
振動子を振動させるための振動信号を生成する振動信号生成装置に含まれるコンピュータで実行される振動信号生成プログラムであって、
前記コンピュータを、
振動を生成するタイミングおよび強度を少なくとも示す所定のアルゴリズムを設定するアルゴリズム設定手段と、
振動または高周波成分が除去された音の素材と前記アルゴリズム設定手段が設定したアルゴリズムとを用いて、または当該素材を生成可能なフィルタと前記アルゴリズム設定手段が設定したアルゴリズムとを用いて、前記振動信号を生成する振動信号生成手段と、
前記アルゴリズム設定手段が設定した同じアルゴリズムを用いて、スピーカから音声を出力するための音声信号を生成する音声信号生成手段として機能させる、振動信号生成プログラム。
【請求項２２】
アプリケーションの実行に応じて振動子を振動させるための振動信号を生成する振動信号生成装置であって、
前記アプリケーションの実行中に所定のパラメータを取得するパラメータ取得手段と、
振動を生成するタイミングおよび強度を少なくとも示す所定のアルゴリズムを、前記パラメータ取得手段によって取得されたパラメータに応じて動的に変化させて設定するアルゴリズム設定手段と、
振動または高周波成分が除去された音の素材と前記アルゴリズム設定手段が設定したアルゴリズムとを用いて、または当該素材を生成可能なフィルタと前記アルゴリズム設定手段が設定したアルゴリズムとを用いて、前記振動信号を生成する振動信号生成手段と、
前記アルゴリズム設定手段が設定した同じアルゴリズムを用いて、スピーカから音声を出力するための音声信号を生成する音声信号生成手段とを備える、振動信号生成装置。
【請求項２３】
アプリケーションの実行に応じて振動子を振動させるための振動信号を生成する振動信号生成システムであって、
前記アプリケーションの実行中に所定のパラメータを取得するパラメータ取得手段と、
振動を生成するタイミングおよび強度を少なくとも示す所定のアルゴリズムを、前記パラメータ取得手段によって取得されたパラメータに応じて動的に変化させて設定するアルゴリズム設定手段と、
振動または高周波成分が除去された音の素材と前記アルゴリズム設定手段が設定したアルゴリズムとを用いて、または当該素材を生成可能なフィルタと前記アルゴリズム設定手段が設定したアルゴリズムとを用いて、前記振動信号を生成する振動信号生成手段と、
前記アルゴリズム設定手段が設定した同じアルゴリズムを用いて、スピーカから音声を出力するための音声信号を生成する音声信号生成手段とを備える、振動信号生成システム。
【請求項２４】
アプリケーションの実行に応じて振動子を振動させるための振動信号を生成する振動信号生成システムに含まれる１つのプロセッサまたは複数のプロセッサ間の協働により実行される振動信号生成方法であって、
前記アプリケーションの実行中に所定のパラメータを取得するパラメータ取得ステップと、
振動を生成するタイミングおよび強度を少なくとも示す所定のアルゴリズムを、前記パラメータ取得ステップにおいて取得されたパラメータに応じて動的に変化させて設定するアルゴリズム設定ステップと、
振動または高周波成分が除去された音の素材と前記アルゴリズム設定ステップにおいてが設定されたアルゴリズムとを用いて、または当該素材を生成可能なフィルタと前記アルゴリズム設定ステップにおいて設定されたアルゴリズムとを用いて、前記振動信号を生成する振動信号生成ステップと、
前記アルゴリズム設定ステップにおいて設定された同じアルゴリズムを用いて、スピーカから音声を出力するための音声信号を生成する音声信号生成ステップとを含む、振動信号生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、振動信号生成プログラム、振動生成装置、振動生成システム、および振動信号生成方法に関し、特に例えば、ユーザに与える振動を生成する振動信号生成プログラム、振動生成装置、振動生成システム、および振動信号生成方法に関する。
【背景技術】
【０００２】
従来、装置本体に振動を与えるゲーム装置が知られている（例えば、特許文献１参照）。例えば、上記特許文献１で開示されたゲーム装置は、予め定められた振動パターンで振動することによって、当該ゲーム装置を把持するユーザの指や手に振動を伝える。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−１９１８６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１で開示されているような従来のゲーム装置では、ユーザの指や手に伝える振動のバリエーションに乏しかった。
【０００５】
それ故に、本発明の目的は、バリエーションに富んだ振動を出力するための振動信号を生成することができる振動信号生成プログラム、振動生成装置、振動生成システム、および振動信号生成方法を提供することである。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は例えば以下のような構成を採用し得る。なお、特許請求の範囲の記載を解釈する際に、特許請求の範囲の記載によってのみその範囲が解釈されるべきであることが理解され、特許請求の範囲の記載と本欄の記載とが矛盾する場合には、特許請求の範囲の記載が優先する。
【０００７】
本発明の振動信号生成プログラムの一構成例は、アプリケーションの実行に応じて振動信号を生成する振動信号生成装置に含まれるコンピュータで実行される。振動信号生成プログラムは、パラメータ取得手段、アルゴリズム設定手段、および振動信号生成手段として、コンピュータを機能させる。パラメータ取得手段は、アプリケーションの実行中に所定のパラメータを取得する。アルゴリズム設定手段は、振動を生成するタイミングおよび強度を少なくとも示す所定のアルゴリズムを、パラメータ取得手段によって取得されたパラメータに応じて動的に変化させて設定する。振動信号生成手段は、振動または音の素材とアルゴリズム設定手段が設定したアルゴリズムとを用いて、または当該素材を生成可能なフィルタとアルゴリズム設定手段が設定したアルゴリズムとを用いて、振動信号を生成する。
【０００８】
上記によれば、バリエーションに富んだ振動を出力するための振動信号を生成することができる。
【０００９】
また、上記振動信号生成プログラムは、音声信号生成手段として、さらにコンピュータを機能させてもよい。音声信号生成手段は、アルゴリズム設定手段が設定した同じアルゴリズムを用いて、音声信号を生成する。
【００１０】
上記によれば、発振タイミングと発音タイミングとを容易に一致させることができ、振動信号および音声信号を生成するための処理負荷が軽減される。
【００１１】
また、上記振動信号生成プログラムは、出力手段として、さらにコンピュータを機能させてもよい。出力手段は、振動信号生成手段により生成された振動信号を示す振動と音声信号生成手段により生成された音声信号を示す音声とを略同時に出力する。
【００１２】
上記によれば、生成された振動信号によって振動するタイミングと生成された音声信号による音声が出力するタイミングとを容易に一致させることができる。
【００１３】
また、上記振動信号生成手段は、振動または音の第１の素材とアルゴリズム設定手段が設定したアルゴリズムとを用いて、または当該第１の素材を生成可能なフィルタとアルゴリズム設定手段が設定したアルゴリズムとを用いて、振動信号を生成してもよい。上記音声信号生成手段は、第１の素材とは異なる音の第２の素材と同じアルゴリズムとを用いて、または当該第２の素材を生成可能なフィルタと同じアルゴリズムとを用いて、音声信号を生成してもよい。
【００１４】
上記によれば、振動信号を生成するための素材と音声信号を生成するための素材とを用いることによって、それぞれの特徴に合わせた振動および音声の出力が可能となる。
【００１５】
また、上記振動信号生成手段は、素材を生成可能なフィルタとアルゴリズム設定手段が設定したアルゴリズムとを用いて、振動信号を生成してもよい。上記音声信号生成手段は、素材と同じアルゴリズムを用いて、音声信号を生成してもよい。
【００１６】
上記によれば、フィルタおよびアルゴリズムの組み合わせによって振動信号を生成することによって、振動生成のために複数の素材を用意する必要がないため、振動信号生成処理が容易となる。また、素材およびアルゴリズムの組み合わせによって音声信号を生成することによって、収録で準備した素材を用いることも可能となり、リアルな音声を出力することが可能となる。
【００１７】
また、上記振動信号生成プログラムは、音声信号生成手段として、さらにコンピュータを機能させてもよい。音声信号生成手段は、素材を生成可能な同じフィルタを用いて、音声信号を生成する。
【００１８】
上記によれば、振動信号および音声信号を生成するための処理負荷が軽減される。
【００１９】
また、上記パラメータ取得手段は、所定のオブジェクトを仮想世界に配置して表示画面に表示するアプリケーションの実行中に、当該オブジェクトに関するパラメータを取得してもよい。上記アルゴリズム設定手段は、オブジェクトに関するパラメータに応じて、所定のアルゴリズムを変化させてもよい。
【００２０】
上記によれば、仮想世界に配置されたオブジェクトに応じた振動を出力するための振動信号を生成することができる。
【００２１】
また、上記パラメータ取得手段は、オブジェクトが仮想世界に配置される際の物理シミュレーションに基づいて、オブジェクトに関するパラメータを取得してもよい。
【００２２】
上記によれば、仮想世界におけるオブジェクトの物理現象に応じた振動を出力するための振動信号を生成することができる。
【００２３】
また、上記パラメータ取得手段は、仮想世界においてオブジェクトが発する振動を模したパラメータを、オブジェクトに関するパラメータとして取得してもよい。
【００２４】
上記によれば、仮想世界においてオブジェクトが発する振動を模した振動を出力するための振動信号を生成することができる。
【００２５】
また、上記パラメータ取得手段は、仮想世界におけるオブジェクトの状況に基づいて、オブジェクトに関するパラメータを取得してもよい。
【００２６】
上記によれば、仮想世界におけるオブジェクトの状況に応じた振動を出力するための振動信号を生成することができる。
【００２７】
また、上記振動信号生成手段は、複数の振動の素材または複数の音の素材とアルゴリズム設定手段が設定したアルゴリズムとを用いて、振動信号を生成してもよい。
【００２８】
上記によれば、複数の素材を用いることによって、よりリアルな振動を出力するための振動信号を生成することができる。
【００２９】
また、上記フィルタは、少なくとも１つの双２次フィルタで構成されてもよい。
【００３０】
上記によれば、振動信号を生成するために用いられるフィルタを容易に構成することができる。
【００３１】
また、上記振動信号生成プログラムは、フィルタ設定手段として、さらにコンピュータを機能させてもよい。フィルタ設定手段は、フィルタのパラメータを、パラメータ取得手段によって取得されたパラメータに応じて変化させる。
【００３２】
上記によれば、所定のアプリケーションの実行に応じて、振動信号をリアルタイムに変化させることができる。
【００３３】
また、上記振動信号生成手段は、素材生成手段を含んでもよい。素材生成手段は、アプリケーションの実行結果に応じて、リアルタイムに素材を生成する。
【００３４】
上記によれば、素材数に制限されることなくバリエーションに富んだ振動を出力するための振動信号を生成することができ、予め素材を用意する必要がないため、振動生成のための準備作業を軽減することができる。
【００３５】
また、上記アルゴリズム設定手段は、パラメータ取得手段によって取得されたパラメータに応じて、各振動の強さ、各振動が生じる時間間隔、各振動がそれぞれ生じている時間幅、および各振動のランダムさの少なくとも１つを算出して、アルゴリズムを設定してもよい。
【００３６】
上記によれば、バリエーションに富んだ振動を出力するための振動信号を生成することができる。
【００３７】
また、上記パラメータ取得手段は、第１のアプリケーションの実行中に第１のパラメータを取得することが可能であるとともに、当該第１のアプリケーションとは異なる第２のアプリケーションの実行中に第２のパラメータを取得することが可能でもよい。上記アルゴリズム設定手段は、パラメータ取得手段によって取得された第１のパラメータと第２のパラメータとが同じである場合、同じアルゴリズムを設定してもよい。
【００３８】
上記によれば、実行するアプリケーションが異なるものであっても、当該アプリケーションの実行に応じて取得されるパラメータが同じであれば、結果的に同じ振動をユーザに与えることができるため、複数のアプリケーションに対して共通に用いることができる振動波形生成手法として有用となる。
【００３９】
また、上記アルゴリズム設定手段は、パラメータ取得手段によって取得されたパラメータに応じて、非ループのアルゴリズムを設定してもよい。上記振動信号生成手段は、非ループのアルゴリズムを用いて、非ループの振動信号を生成してもよい。
【００４０】
上記によれば、触感が単調になりにくい振動を出力するための振動信号を生成することができる。
【００４１】
また、上記素材は、ユーザが振動を認識可能な上限周波数以下の帯域の波形データでもよい。
【００４２】
上記によれば、リアルな振動を出力するための振動信号を生成することができる。
【００４３】
また、上記素材は、ユーザが聴音できない周波数帯域の波形データを含んでもよい。
【００４４】
上記によれば、リアルな振動を出力するための振動信号を生成することができる。
【００４５】
また、上記フィルタは、ユーザが振動を認識可能な上限周波数以下の特性周波数が設定された複数のフィルタの組によって構成されてもよい。
【００４６】
上記によれば、リアルな振動を出力するための振動信号を制限されたフィルタ数で生成することができる。
【００４７】
また、上記フィルタの組は、ユーザが聴音できない周波数帯域に特性周波数が属するフィルタを含んでもよい。
【００４８】
上記によれば、リアルな振動を出力するための振動信号を制限されたフィルタ数で生成することができる。
【００４９】
また、本発明の振動信号生成プログラムの他の構成例は、振動信号を生成する振動信号生成装置に含まれるコンピュータで実行される。振動信号生成プログラムは、アルゴリズム設定手段、振動信号生成手段、および音声信号生成手段として、前記コンピュータを機能させる。アルゴリズム設定手段は、振動を生成するタイミングおよび強度を少なくとも示す所定のアルゴリズムを設定する。振動信号生成手段は、振動または音の素材と前記アルゴリズム設定手段が設定したアルゴリズムとを用いて、または当該素材を生成可能なフィルタと前記アルゴリズム設定手段が設定したアルゴリズムとを用いて、振動信号を生成する。音声信号生成手段は、前記アルゴリズム設定手段が設定した同じアルゴリズムを用いて、音声信号を生成する。
【００５０】
上記によれば、発振タイミングと発音タイミングとを容易に一致させることができる振動信号と音声信号とを生成することができ、振動信号および音声信号を生成するための処理負荷が軽減される。
【００５１】
また、本発明は、上記各手段を備える振動信号生成装置および振動信号生成システムや上記各手段で行われる動作を含む振動信号生成方法の形態で実施されてもよい。
【発明の効果】
【００５２】
本発明によれば、バリエーションに富んだ振動を出力するための振動信号を生成することができる。
【図面の簡単な説明】
【００５３】
【図１】本発明の一実施例に係る情報処理装置３の外観の一例を示す平面図
【図２】情報処理装置３の構成の一例を示すブロック図
【図３】振動発生部３７の構成の一例を示すブロック図
【図４】表示部３５の表示画面に表示されている仮想オブジェクトＯＢＪが移動する際に、情報処理装置３本体が振動するとともに音声が出力される一例を示す図
【図５】情報処理装置３本体を振動させるための振動信号（振動波形）を生成する処理の一例を説明するための図
【図６】情報処理装置３本体を振動させるための振動信号（振動波形）を生成する処理の他の例を説明するための図
【図７】強度配列順（インパルスシーケンス）を生成するための処理手順の一例を示す図
【図８】図７に示された処理手順によって生成された強度配列順の一例を示す図
【図９】強度配列順を設定する際に用いられる物理パラメータの一例とそれらの相関についての一例を説明するための図
【図１０】共振フィルタを設定するための処理手順の一例を示す図
【図１１】材質パラメータから減衰パラメータおよびスペクトルパラメータを算出する処理の一例を示す図
【図１２】材質毎に算出された減衰パラメータおよびスペクトルパラメータの一例を示す図
【図１３】共振フィルタ設定処理において用いられる窓関数の一例を示す図
【図１４】周波数列生成処理による変化の一例を示す図
【図１５】図１０に示した共振フィルタ設定処理によって設定された共振フィルタを用いて生成された振動波形（振動制御信号の波形）の一例を示す図
【図１６】グレイン波形の一例を示す図
【図１７】情報処理装置３の記憶部３２に記憶される主なデータおよびプログラムの一例を示す図
【図１８】情報処理装置３において実行されるゲーム処理の一例を示すフローチャート
【発明を実施するための形態】
【００５４】
図面を参照して、本発明の一実施形態に係る振動信号生成プログラムを実行する振動信号生成装置（振動信号生成システム）について説明する。本発明の振動信号生成プログラムは、任意のコンピュータシステムで実行されることによって適用することができるが、振動信号生成装置（振動信号生成システム）の一例として携帯型の情報処理装置３（タブレット端末）を用い、情報処理装置３で実行される振動信号生成プログラムを用いて説明する。例えば、情報処理装置３は、交換可能な光ディスクやメモリーカード等の記憶媒体内に記憶された、または、他の装置から受信したプログラムや予めインストールされたプログラム（例えば、ゲームプログラム）を実行可能であり、一例として、仮想空間に設定された仮想カメラから見た仮想空間画像等のコンピュータグラフィックス処理により生成された画像を画面に表示することができる。情報処理装置３は、一般的なパーソナルコンピュータ、据置型ゲーム機、携帯電話機、携帯ゲーム機、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）等のデバイスであってもかまわない。なお、図１は、情報処理装置３の外観の一例を示す平面図である。
【００５５】
図１において、情報処理装置３は、表示部３５、音声出力部３６、およびアクチュエータ３７３を備えている。一例として、表示部３５は、情報処理装置３本体前面に設けられている。例えば、表示部３５は、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）によって構成されるが、例えばＥＬを利用した表示装置などが利用されてもよい。また、表示部３５は、立体視可能な画像を表示することが可能な表示装置であってもよい。
【００５６】
表示部３５の表示画面を覆うように、入力部３４の一例であるタッチパネル３４１が設けられている。タッチパネル３４１は、所定の入力面（例えば、表示部３５の表示画面）に対して入力された位置を検出する。なお、入力部３４は、情報処理装置３のユーザが操作入力可能な入力装置であり、どのような入力装置であってもよい。例えば、入力部３４として、スライドパッド、アナログスティック、十字キー、および操作ボタン等の操作部が、情報処理装置３本体の側面、前面、背面等に備えられてもよい。また、入力部３４は、情報処理装置３本体の姿勢や動きを検出するためのセンサであってもよい。例えば、入力部３４は、情報処理装置３本体に生じる加速度を検出する加速度センサや情報処理装置３本体の回転量を検出する角速度センサ（ジャイロセンサ）等であってもよい。
【００５７】
音声出力部３６は、音声を出力するスピーカを含み、図１に示した一例では、情報処理装置３の上側面や背面に設けられたスピーカ（音声出力部３６）を含んでいる。音声出力部３６は、後述する制御部３１から出力される音声信号（音声制御信号）をＤ／Ａ変換してアナログ音声信号を生成し、当該アナログ音声信号をスピーカへ出力して音声を出力させる。
【００５８】
アクチュエータ３７３は、情報処理装置３の本体に所定の振動を与える振動アクチュエータ（振動子）であり、後述する振動発生部３７に含まれる。図１に示した一例では、アクチュエータ３７３は、情報処理装置３本体内部の中央付近に設けられたアクチュエータ３７３を有する。具体的には、図１の破線領域で示すように、ユーザが情報処理装置３の左端部を左手で把持し右端部を右手で把持した場合に、当該左手と右手との間の位置となる表示部３５の中央部にアクチュエータ３７３が設けられる。また、振動発生部３７は、後述する制御部３１から出力される振動制御信号をＤ／Ａ変換してアナログ振動信号を生成し、当該アナログ振動信号を増幅した駆動信号をアクチュエータ３７３へ出力してアクチュエータ３７３を駆動させる。
【００５９】
なお、図１から明らかなように、情報処理装置３に設けられる表示部３５の表示画面と音声出力部３６とがそれぞれ近接する位置に配置されており、表示部３５の表示画面とアクチュエータ３７３とがそれぞれ近接する位置に配置されている。また、音声出力部３６およびアクチュエータ３７３は、それぞれ互いに近接する位置に配置されているが、別の位置に配設される別のユニットである。これによって、振動出力専用のユニットと音声出力専用のユニットとを備えることができるため、汎用のユニットを共用する場合と比較すると精度の高い振動および音声をそれぞれ出力することができる。なお、振動出力するためのユニットと音声出力するためのユニットとを組み合わせて一体化したモジュールを、情報処理装置３に設けてもよい。
【００６０】
次に、図２を参照して、情報処理装置３の内部構成について説明する。なお、図２は、情報処理装置３の構成の一例を示すブロック図である。
【００６１】
図２において、上述した入力部３４、表示部３５、音声出力部３６、および振動発生部３７の他に、制御部３１、記憶部３２、およびプログラム格納部３３を備える。なお、情報処理装置３は、制御部３１を少なくとも含む情報処理装置と他の装置とを含む１以上の装置によって構成されてもよい。
【００６２】
制御部３１は、各種の情報処理を実行するための情報処理手段（コンピュータ）であり、例えばＣＰＵである。制御部３１は、各種の情報処理として、入力部３４に対するユーザの操作に応じた処理等を実行する機能を有する。例えば、ＣＰＵが所定のプログラムを実行することによって、制御部３１における各機能が実現される。
【００６３】
制御部３１は、各種の情報処理として、表示部３５に表示する画像の表示制御を行う。また、制御部３１は、各種の情報処理として、スピーカから出力する音声を制御するための音声制御信号（例えば、デジタル音声信号）を、音声出力部３６へ出力する。また、制御部３１は、各種の情報処理の一例として、表示部３５に表示する画像等に基づいて、アクチュエータ３７３の振動を制御するための振動制御信号（例えば、デジタル振動信号）を生成し、当該振動制御信号を振動発生部３７へ出力する。
【００６４】
記憶部３２は、制御部３１が上記情報処理を実行する際に用いる各種のデータを記憶する。記憶部３２は、例えばＣＰＵ（制御部３１）がアクセス可能なメモリである。
【００６５】
プログラム格納部３３は、プログラムを記憶（格納）する。プログラム格納部３３は、制御部３１がアクセス可能な記憶装置（記憶媒体）であればどのようなものであってもよい。例えば、プログラム格納部３３は、制御部３１を含む情報処理装置３内に設けられる記憶装置であってもよいし、制御部３１を含む情報処理装置３に着脱自在に装着される記憶媒体であってもよい。また、プログラム格納部３３は、制御部３１とネットワークを介して接続される記憶装置（サーバ等）であってもよい。制御部３１（ＣＰＵ）は、ゲームプログラムの一部または全部を適宜のタイミングで記憶部３２に読み出し、読み出されたプログラムを実行するようにしてもよい。
【００６６】
次に、図３を参照して、振動発生部３７の構成について説明する。なお、図３は、振動発生部３７の構成の一例を示すブロック図である。
【００６７】
図３において、振動発生部３７は、コーデック部３７１、増幅部３７２、およびアクチュエータ（振動子）３７３を備えている。
【００６８】
コーデック部３７１は、制御部３１から出力された振動制御信号を取得して所定の復号処理を行ってアナログ振動信号を生成し、増幅部３７２へ出力する。例えば、アクチュエータ３７３に振動を発生させる場合、当該振動を制御するための振動制御信号（例えば、振動制御信号ＣＳ）が制御部３１から出力される。この場合、コーデック部３７１は、制御部３１から出力された振動制御信号を復号して、アクチュエータ３７３に振動を発生させるためのアナログ振動信号（例えば、アナログ振動信号ＡＳ）を生成して、増幅部３７２へ出力する。
【００６９】
増幅部３７２は、コーデック部３７１から出力されたアナログ振動信号を増幅してアクチュエータ３７３を駆動するための駆動信号を生成し、アクチュエータ３７３へ出力する。例えば、増幅部３７２は、コーデック部３７１から出力されたアナログ振動信号（例えば、アナログ振動信号ＡＳ）の電流／電圧の振幅変化をそれぞれ増大させて駆動信号（例えば、駆動信号ＤＳ）を生成して、アクチュエータ３７３へ出力する。
【００７０】
アクチュエータ３７３は、増幅部３７２から出力された駆動信号に応じて駆動することによって、情報処理装置３の本体に当該駆動信号に応じた振動を与える。例えば、アクチュエータ３７３は、任意の周波数によって振動可能なリニア振動アクチュエータであり、図１に示すように、表示部３５の表示画面の中心に設けられている。ここで、アクチュエータ３７３が情報処理装置３本体に振動を与える方式は、どのようなものでもかまわない。例えば、アクチュエータ３７３は、偏心モーター（ＥＲＭ：Ｅｃｃｅｎｔｒｉｃ  Ｒｏｔａｔｉｎｇ  Ｍａｓｓ）によって振動を生じさせる方式や、リニア・バイブレータ（ＬＲＡ：Ｌｉｎｅａｒ  Ｒｅｓｏｎａｎｔ  Ａｃｔｕａｔｏｒ）によって振動を生じさせる方式や、ピエゾ（圧電）素子によって振動を生じさせる方式等を用いた構成であってもよい。アクチュエータ３７３が振動を生じさせる方式に応じて、増幅部３７２から出力される駆動信号が生成されれば、どのような方式のアクチュエータであっても様々な振動を情報処理装置３のユーザに与えることができる。
【００７１】
なお、上述した説明では、コーデック部３７１で生成されたアナログ振動信号が増幅されてアクチュエータ３７３を駆動するための駆動信号が生成される例を用いたが、コーデック部３７１から増幅部３７２へ出力される信号は、デジタル信号であってもよい。例えば、パルス幅変調（ＰＷＭ：Ｐｕｌｓｅ  Ｗｉｄｔｈ  Ｍｏｄｕｌａｔｉｏｎ）制御によってアクチュエータ３７３を駆動する場合、コーデック部３７１がアクチュエータ３７３をオン／オフするためのパルス信号を生成すればよい。この場合、コーデック部３７１から増幅部３７２へ出力される信号は、パルス波を用いて駆動が制御されるデジタル振動信号となり、増幅部３７２は、当該デジタル振動信号を増幅することになる。
【００７２】
次に、情報処理装置３が行う具体的な処理を説明する前に、図４〜図６を用いて情報処理装置３において行われる処理の概要について説明する。以下の説明では、表示部３５の表示画面内を仮想オブジェクトＯＢＪが移動するゲームを行う際の処理を、情報処理装置３において行われる情報処理の一例として用いる。なお、図４は、表示部３５の表示画面に表示されている仮想オブジェクトＯＢＪが移動する際に、情報処理装置３本体が振動するとともに音声が出力される一例を示す図である。図５は、情報処理装置３本体を振動させるための振動信号（振動波形）を生成する処理の一例を説明するための図である。図６は、情報処理装置３本体を振動させるための振動信号（振動波形）を生成する処理の他の例を説明するための図である。
【００７３】
図４に示す例では、仮想空間内を移動する仮想オブジェクトＯＢＪが表示部３５の表示画面に表示される。仮想オブジェクトＯＢＪは、ユーザ操作に応じて、または自動的に仮想空間内を移動して表示部３５の表示画面に表示される。具体的には、仮想オブジェクトＯＢＪは、仮想空間内に設置された板面上を転がって移動する球体である。
【００７４】
仮想オブジェクトＯＢＪが仮想空間内の板面上を転がって移動することに応じて、情報処理装置３から音声が出力されるとともに、情報処理装置３本体が振動する。例えば、情報処理装置３本体に設けられたスピーカ（音声出力部３６）は、表示部３５の表示画面に表示されて移動する仮想オブジェクトＯＢＪが音源となった音声を出力する。また、情報処理装置３本体に設けられたアクチュエータ３７３は、仮想オブジェクトＯＢＪが転がって移動する際に生じる振動を生じさせる。本実施例では、仮想オブジェクトＯＢＪが転がって移動する際の物理パラメータや仮想オブジェクトＯＢＪとなる球体の材質や上記板面の材質等のパラメータに応じて、アクチュエータ３７３を振動させるための振動信号（アクチュエータ３７３を振動させる振動波形を生成するための振動制御信号）がリアルタイムに生成される。
【００７５】
次に、図５を参照して、振動信号（振動波形）を生成する処理の第１の例を説明する。第１の例における振動信号生成処理では、予め振動波形を示すデータを記憶して当該振動波形による振動を生成するのではなく、所定のアプリケーションの実行に応じた（例えば、ゲームアプリケーションの実行による仮想空間の状況に応じた）振動波形をリアルタイムに生成し、当該生成した振動波形を用いて情報処理装置３本体を振動させる。具体的には、第１の例における振動信号生成処理では、所定のアルゴリズムに基づいて振動波形を生成しており、所定のアプリケーションの実行に応じて物理パラメータ（物体の材質、物体の空間位置、物体の速度、物体の大きさ、物体の粒密度等を示すパラメータ）を適宜取得して、当該物理パラメータを当該アルゴリズムに渡して振動波形をリアルタイムに生成する。
【００７６】
第１の例における振動信号生成処理では、コンピュータ音楽の分野において実現されつつあるグラニュラーシンセシス（Ｇｒａｎｕｌａｒ  Ｓｙｎｔｈｅｓｉｓ）と呼ばれる音声合成方式を利用して振動波形を生成する。具体的には、本振動信号生成処理では、上記グラニュラーシンセシスで用いられるグレイン（Ｇｒａｉｎ）として振動波形を利用することによって、アクチュエータ３７３を振動させる振動制御信号をリアルタイムに生成する。ここで、グレインは、アクチュエータ３７３を振動させる振動波形の素材となるものであるが、単独では振動として認識し難い非常に短い振動波形（典型的には、減衰正弦波）であり、複数のグレインを所定の規則に基づいて配置することによって新たな振動を合成することができる。
【００７７】
図５に示すように、複数種のグレイン（図５の例では第１グレイン、第２グレイン、および第３グレイン）を用意することも可能であり、一例として振動源となる物体の材質（球体が板面上を転がる際の振動波形を生成する場合、球体の材質と板面の材質）に応じてグレインをそれぞれ用意することもできる。それぞれのグレインは、実世界の振動や実世界の音の収録によって生成してもよいし、後述するフィルタ（例えば、双２次フィルタのセット）を用いて生成してもよい。
【００７８】
例えば、これらのグレインを配置する規則として、強度配列順（インパルスシーケンス）が用いられる。強度配列順は、配置するグレインの種類、配置するグレインの時間位置、配置するグレインの大きさ（強度）等を示す非ループの規則（アルゴリズム）である。そして、一例として、強度配列順は、物体が移動する等の動作に応じて取得可能な物理パラメータに基づいて、リアルタイムに変化させて設定する。例えば、同じ物体同士であっても、当該物体が転がる場合に生成される強度配列順と、当該物体が擦れる場合に生成される強度配列順とは、異なるものとなる。そして、同じグレイン（図５の例では第１グレイン、第２グレイン、および第３グレイン）を用いた場合であっても、当該グレインを転がる振動の強度配列順に基づいて配置して畳み込むことによって物体が転がる際の振動波形を生成することができ、当該グレインを擦れる振動の強度配列順に基づいて配置して畳み込むことによって、物体が擦れる際の振動波形を生成することができる。
【００７９】
なお、本振動信号生成処理で用いるグレインは、音声合成処理で用いられるグレインに対して高周波成分が除去されていてもよい。例えば、人間の可聴周波数領域に対して、人間が振動として知覚できる周波数領域は、相対的に低い周波数領域（１０００Ｈｚ以下）となる。したがって、振動信号生成処理で用いるグレインは、それぞれ人間が振動として知覚できる周波数領域に属する振動波形であればよい。したがって、音声を生成するためのグレインから高周波成分を除去することによって、振動信号生成処理で用いるグレインを生成してもよい。なお、高周波成分が除去されたグレインを振動信号生成処理に用いることによって、生成された振動制御信号によってアクチュエータ３７３を振動させた際の音漏れを防止することができる。また、本振動信号生成処理で用いるグレインは、人間が聴音できない周波数帯域（不可聴領域）の波形データを含んでいてもよい。この場合、不可聴領域を含むグレインを振動信号生成処理に用いることによって、生成される振動制御信号によってアクチュエータ３７３を振動させた際も不可聴領域を含む周波数の振動がユーザに与えられることになる。
【００８０】
また、本振動信号生成処理で用いる強度配列順は、音声合成処理において生成される強度配列順と同じものを用いてもよい。このように振動波形と音声波形とを同時に生成する場合に共通の強度配列順を用いることによって、発振タイミングと発音タイミングとを容易に一致させることができ、強度配列順の生成処理の負荷も軽減することが可能となる。
【００８１】
次に、図６を参照して、振動信号（振動波形）を生成する処理の第２の例を説明する。第２の例における振動信号生成処理でも、予め振動波形を示すデータを記憶して当該振動波形による振動を生成するのではなく、所定のアプリケーションの実行に応じた振動波形をリアルタイムに生成し、当該生成した振動波形を用いて情報処理装置３本体を振動させる。具体的には、第２の例における振動信号生成処理でも、所定のアルゴリズムに基づいて振動波形を生成しており、所定のアプリケーションの実行に応じて物理パラメータを適宜取得して、当該物理パラメータを当該アルゴリズムに渡して振動波形をリアルタイムに生成する。
【００８２】
第２の例における振動信号生成処理では、上述した強度配列順（インパルスシーケンス）を所定の共振フィルタ（Ｒｅｓｏｎａｎｔ  Ｆｉｌｔｅｒ）に通すことによって、振動波形を生成する。具体的には、本振動信号生成処理では、上記第１の例における信号において用いられるグレインの生成が可能な共振フィルタを用いて、当該共振フィルタを用いて上述した強度配列順を処理することによって、アクチュエータ３７３を振動させる振動制御信号をリアルタイムに生成する。
【００８３】
例えば、上記共振フィルタは、複数の双２次フィルタ（Ｂｉｑｕａｄ  Ｆｉｌｔｅｒ）で構成され、双２次フィルタそれぞれが特性周波数および減衰率をパラメータとして設定される。そして、本振動信号生成処理で用いる共振フィルタは、１つのインパルスを通すことによって上記第１の例における信号において用いられるグレインの生成が可能となるように設定されている。このような共振フィルタに、上述した強度配列順を通すことによって、上記第１の例で生成した振動波形と同じ振動波形でアクチュエータ３７３を振動させる振動制御信号をリアルタイムに生成することができる。
【００８４】
図６に示すように、第２の例における振動信号生成処理においても、上記第１の例と同様に、物体が転がる場合に生成される強度配列順と、物体が擦れる場合に生成される強度配列順とは、異なるものとなる。そして、上記第１の例で用いたグレインの生成が可能な共振フィルタに転がる振動の強度配列順を通すことによって物体が転がる際の振動波形を生成することができ、上記第１の例で用いたグレインの生成が可能な共振フィルタに擦れる振動の強度配列順を通すことによって、物体が擦れる際の振動波形を生成することができる。
【００８５】
なお、本振動信号生成処理で用いる共振フィルタについても、高周波成分が除去されたグレイン生成が可能であればよいため、当該共振フィルタを構成するフィルタの個数を削減したもの（例えば、４つの双２次フィルタ）を用いることができる。したがって、共振フィルタの構成が単純になるとともに、当該共振フィルタを用いた処理負荷を軽減することができる。また、高周波成分が除去されたグレインの生成可能な共振フィルタを振動信号生成処理に用いることによって、生成された振動制御信号によってアクチュエータ３７３を振動させた際の音漏れを防止することができる。
【００８６】
次に、図７〜図１６を用いて、情報処理装置３において行われる振動信号生成処理の詳細を説明する。なお、図７は、強度配列順（インパルスシーケンス）を生成するための処理手順の一例を示す図である。図８は、図７に示された処理手順によって生成された強度配列順の一例を示す図である。図９は、強度配列順を設定する際に用いられる物理パラメータの一例とそれらの相関についての一例を説明するための図である。図１０は、共振フィルタを設定するための処理手順の一例を示す図である。図１１は、材質パラメータから減衰パラメータおよびスペクトルパラメータを算出する処理の一例を示す図である。図１２は、材質毎に算出された減衰パラメータおよびスペクトルパラメータの一例を示す図である。図１３は、共振フィルタ設定処理において用いられる窓関数の一例を示す図である。図１４は、周波数列生成処理による変化の一例を示す図である。図１５は、図１０に示した共振フィルタ設定処理によって設定された共振フィルタを用いて生成された振動波形（振動制御信号の波形）の一例を示す図である。図１６は、本実施例で用いられるグレイン波形の一例を示す図である。なお、情報処理装置３において行われる振動信号生成処理は、後述する振動信号生成プログラムを実行することによって行われ、本説明では、上述した第２の例における振動信号生成処理について説明する。
【００８７】
図７において、強度配列順を生成する際、所定の乱数発生関数を用いて、ホワイトノイズを生成する。ここで、ホワイトノイズは、フーリエ変換を行ってパワースペクトルを見たときに、全ての周波数成分の強度が同じとなる乱数列である。第１の例として、ホワイトノイズは、［０，１）区間の乱数を一様分布にしたがって生成する関数の出力値をそのまま用いることが考えられる。第２の例として、ホワイトノイズは、一様乱数の各値に対して、累積分布関数の逆関数をかける等の変数変換を行って、意図した確率密度にしたがう乱数列を生成することが考えられる。第３の例として、ホワイトノイズは、一様乱数を複数個足し合わせることによって、近似的に正規分布にしたがう乱数列を生成することが考えられる。例えば、物体が転がる際の強度配列順を生成する際は、［０，１）区間で一様分布にしたがって生成された乱数を１２個足し合わせた後、６を減算して３で除算することによって、近似的に正規分布にしたがう乱数列を算出してホワイトノイズを生成してもよい。
【００８８】
次に、ホワイトノイズ｛Ｗｎ｝を入力データとして、時間間隔のためのフラクタルノイズ｛ＦΔＴ，ｎ｝と振動強度および振動幅のためのフラクタルノイズ｛ＦＡ，ｎ｝を生成する。例えば、ホワイトノイズを入力データとするフラクタルフィルタ処理を行うことによって、フラクタルノイズを近似的に生成する。ここで、フラクタルノイズは、パワースペクトルで見たときに、周波数ｆの成分の強度がｆのべき乗に比例するような乱数列であり、強度配置順におけるランダムさを設定するものとなる。一例として、１−ｚｅｒｏ、１−ｐｏｌｅのＩＩＲフィルタＦｋ（ｋ＝１,２，３…）を複数個直列に接続することによって、周波数ｆの成分の強度が１／ｆβに比例するフラクタルフィルタを近似的に実現することができる。
【００８９】
ＩＩＲフィルタＦｋは、
【数１】
0006527339.tif 000002
で定められる。ここで、ｘ（ｎ）は、ｎ番目の出力値を意味する。Ｌは、基本周期を示す正の定数である。概ねＬ以下の周期においてよい近似が実現され、Ｌより大きい周期において理想値よりもスペクトルパワーが小さくなる。ｃは、近似係数であり、１．０より大きい定数である。ｃの値が小さいほど近似精度が上がるが、近似精度を上げるために必要となるフィルタ個数Ｎも多くなる。βは、パワースペクトルの傾きを表す０．０以上２．０以下のスペクトルパラメータであり、後述するパラメータ変換処理によって時間間隔のためのβΔＴと振動強度および振動幅のためのβＡとがそれぞれ随時算出されて更新される。
【００９０】
Ｎ個のＩＩＲフィルタＦｋを直列に接続したフラクタルフィルタの伝達関数は、
【数２】
0006527339.tif 000003
となる。ここで、Ｎは、近似に使用する１−ｚｅｒｏ、１−ｐｏｌｅのＩＩＲフィルタの個数であり、多いほど近似精度が上がるが処理負荷も大きくなる。物体が転がる際の強度配列順を生成する際は、一例としてＬ＝１０２４，ｃ＝８．０，Ｎ＝４に設定してもよい。また、フラクタルノイズを生成する処理においては、出力データが適切な範囲に収まるように、所定の係数を乗算して出力してもよい。一例として、強度配列順の生成に際しては、出力データが概ね区間［−１，１］に収まるように上記係数を設定してもよい。
【００９１】
次に、時間間隔のためのフラクタルノイズ｛ＦΔＴ，ｎ｝または振動強度および振動幅のためのフラクタルノイズ｛ＦＡ，ｎ｝を入力データとして、定められた範囲［ｍｉｎ，ｍａｘ］に収まるように、時間間隔のための変数変換｛ΔＴｎ｝、振動強度のための変数変換｛Ａｎ｝、および振動幅のための変数変換｛ｗｎ｝を行う。一例として、区間［−１，１］が区間［ｍｉｎ，ｍａｘ］となるように単純に線形変換することによって、上記変数変換を行う。他の例として、区間［ｍｉｎ，ｍａｘ］上で定められた確率分布にしたがうように確率変数変換することによって、上記変数変換を行う。ここで、ｍｉｎとｍａｘの値は、後述するパラメータ変換処理によって時間間隔のためｍｉｎΔＴおよびｍａｘΔＴと、振動強度のためのｍｉｎＡおよびｍａｘＡと、振動幅のためのｍｉｎｗおよびｍａｘｗがそれぞれ随時算出されて更新される。そして、ｍｉｎ＝ｍａｘ＝Ｃ（定数）の場合には、出力値が常にＣとなる。また、ｍｉｎ＞ｍａｘの場合には、内部的にｍｉｎとｍａｘの値を交換して変数変換を行う。そして、計算結果が範囲［ｍｉｎ，ｍａｘ］の外になった場合にはクランプ処理を行うことによって、変数変換処理を行う。
【００９２】
次に、変数変換された時間間隔ΔＴｎ、変数変換された振動強度Ａｎ、および変数変換された振動幅ｗｎを入力データとして、強度配列順（インパルスシーケンス）の波形データを順次生成する。ここで、時間間隔ΔＴｎは、ｎ番目の山型波形と（ｎ＋１）番目の山型波形との間の時間間隔を示し、振動強度Ａｎは、強度配列順におけるｎ番目の山型波形の高さを示し、振動幅ｗｎは、強度配列順におけるｎ番目の山型波形の幅を示している。表す。ただし、ｗｎ＝０の場合は、山型波形の幅が１サンプル分であるとみなす。
【００９３】
強度配列順における山型波形の生成方法にはいくつかの手法が考えられるが、一例として、時刻ｔ＝０において高さＡ、幅ｗの山型波形を生成する場合の生成式は、
余弦波を元にした山型波形の場合、
【数３】
0006527339.tif 000004
三角波を元にした山型波形の場合、
【数４】
0006527339.tif 000005
となる。ここで、ξは、山型波形の鋭さを表す非負のパラメータであり、ξを０に近づけると山型波形が矩形波に近い形状となり、ξの値を大きくすると山型波形の極大値付近の波形が鋭い形状となるが、ξ＝１に固定してもよい。図８は、このような生成式に基づいて生成された強度配列順（インパルスシーケンス）の波形データの一例である。
【００９４】
ここで、上述したパラメータ変換処理について説明する。上記振動信号生成処理におけるパラメータ変換処理では、所定のアプリケーションの実行に応じて生成される仮想空間内の物理現象に対応する物理パラメータを取得し、当該物理パラメータに基づいて上述した各処理に用いる低レイヤのパラメータを算出する。例えば、パラメータ変換処理に際しては、事前に実施した物理シミュレーション等から得られた、上記物理パラメータと低レイヤのパラメータとの相関関係を利用してもよい。一例として、球体の転がり現象においては、事前に実施した物理シミュレーションに対して線形回帰分析を行うことによって、図９に示したような相関関係が得られており、これらの相関関係に基づいて内部計算することによって、低レイヤのパラメータを算出する。
【００９５】
次に、図１０を参照して、上記振動信号生成処理における共振フィルタ設定処理について説明する。まず、上記共振フィルタ設定処理では、所定のアプリケーションの実行に応じて生成される仮想空間内の材質に対応する材質パラメータを取得し、当該材質パラメータに対応した配合となる減衰パラメータの組（αＧ，αＲ）またはスペクトルパラメータの組（ＳＧ，ＳＲ）を出力するパラメータ変換処理が行われる。例えば、プリセット材質が木、ガラス、金属の３種類の場合、上記パラメータ変換処理における入力値となる材質パラメータは、「木×０．７＋ガラス×０．２＋金属×０．１」というように、それぞれの材質を配合する比率で示される。
【００９６】
図１１に示されるように、上記パラメータ変換処理では、グローバルパラメータ（αＧまたはＳＧ）とリラティブパラメータ（αＲ，ＳＲ）とを軸に持つ二次元空間上において、プリセット材質に対応する点の座標を、指定された比率で足し合わせることによって出力値を計算する。なお、材質毎の減衰パラメータの組（αＧ，αＲ）およびスペクトルパラメータの組（ＳＧ，ＳＲ）の値については、収録した振動や音を解析することによって設定してもよい。例えば、図１２に示すように、木、ガラス、金属の３種類の材質について、減衰パラメータの組（αＧ，αＲ）およびスペクトルパラメータの組（ＳＧ，ＳＲ）の値をそれぞれ設定することができる。
【００９７】
次に、周波数シフトレンジ（ωｍｉｎ，ωｍａｘ）を入力データとして、この区間内で非負の値をとる窓関数Ｗ（ω）を生成する周波数シフト窓生成処理を行う。窓関数Ｗ（ω）は、後述する周波数列生成処理において周波数を生成する際に用いられ、窓関数Ｗ（ω）を用いることによって区間（ωｍｉｎ，ωｍａｘ）の範囲内でのみ周波数列生成処理が適用される。
【００９８】
例えば、窓関数Ｗ（ω）は、
【数５】
0006527339.tif 000006
を満たす関数となる。ここで、ｄγは、
【数６】
0006527339.tif 000007
であり、窓関数の値が０から１に遷移する際の遷移幅を示している。そして、γ＝０の場合、ｄγ＝（ωｍａｘ−ωｍｉｎ）／２となり、Ｗ（ω）の値は緩やかに遷移する。また、γ＝１の場合、ｄγ＝０となり、Ｗ（ω）は矩形状の窓になる。一例として、０から１への遷移に余弦関数を用いる場合、
【数７】
0006527339.tif 000008
で定義された窓関数（図１３参照）を用いることができる。ここで、γ＝０の場合には、Ｗ（ω）はＨａｎｎ窓に一致する。なお、物体が転がる際の共振フィルタを設定する際は、γ＝０．９に固定してもよい。また、ωｍｉｎに基本周波数ωｆｕｎｄと同じ値を用い、ωｍａｘにナイキスト周波数を用いてもよい。
【００９９】
次に、スペクトルパラメータの組（ＳＧ，ＳＲ）の値および基本周波数ωｆｕｎｄを入力データとして、周波数列｛ωｎ｝を生成する周波数列生成処理を行う。周波数列の生成においては、上記周波数シフト窓生成処理で生成された窓関数Ｗ（ω）が用いられる。例えば、
【数８】
0006527339.tif 000009
を用いて、ｎ番目の周波数ωｎを算出する。
【０１００】
ここで、スペクトルパラメータの組（ＳＧ，ＳＲ）は、基本周波数ωｆｕｎｄの整数倍であるｎωｆｕｎｄからどの程度ずらしてψｎを生成するかに関係する。例えば、（ＳＧ，ＳＲ）＝（１，０）の場合、ψｎ＝ｎωｆｕｎｄとなる。特に、グローバルパラメータＳＧは、周波数列｛ψｎ｝全体を整数倍した周波数からどの程度ずらして生成するかに関係する。一方、リラティブパラメータＳＲは、周波数が大きくなるにつれて整数倍周波数からのずれをどの程度大きくしていくかに関係する。ｒｎは、窓関数の出力値であり、シフトされた周波数ψｎと整数倍周波数ｎωｆｕｎｄとの間の内分比を示している。そして、ｒｎは、区間（ωｍｉｎ，ωｍａｘ）の外では０となるので、区間内でのみ周波数列生成処理が行われる。ｎの増加に伴って、ｎωｆｕｎｄ，ωｎ，ψｎがそれぞれどのように変化するかを図示すると、図１４に示したようになる。
【０１０１】
上記周波数列生成処理では、周波数列を無限に生成できるが、本実施形態では人間が認識可能な周波数帯を超えた時点でωｎの生成を終了する。振動信号（すなわち、触覚呈示用の信号）に用いる場合、ωｎ＜１０００Ｈｚの範囲内でのみ周波数列｛ωｎ｝を生成すればよい。
【０１０２】
次に、減衰パラメータの組（αＧ，αＲ）と周波数列｛ωｎ｝とを入力データとして、各周波数に対応した減衰係数列｛αｎ｝を生成する減衰係数列生成処理を行う。例えば、
【数９】
0006527339.tif 000010
を用いて、ｎ番目の減衰係数αｎを算出する。
【０１０３】
減衰係数αｎは、その値が大きいほど、該当周波数ωｎの成分が速く減衰する。そして、αｎの算出式から明らかなように、同じ減衰パラメータを用いた場合、一般的に高周波の方が速く減衰することになる。また、グローバルパラメータαＧは、全ての周波数の減衰係数に関係しており、その値が大きいほど速く減衰する。一方、リラティブパラメータαＲは、周波数が大きくなるにつれて減衰係数をどの程度大きくしていくかに関係し、値が大きいほど高周波での減衰係数の増え方がより大きくなる。
【０１０４】
次に、周波数および減衰係数の組（αｎ，ωｎ）を入力データとして、当該組に対応したインパルス応答を有するデジタルフィルタＦｎを順次生成するフィルタバンク生成処理を行う。例えば、デジタルフィルタＦｎは、
【数１０】
0006527339.tif 000011
を用いて定義される双２次フィルタ（Ｂｉｑｕａｄ  Ｆｉｌｔｅｒ）として実現される。ここで、ｘ（ｋ）は、ｋ番目の入力値を示している。ｙ（ｋ）は、ｋ番目の出力値を示している。そして、ｆｓは、デジタル波形のサンプリングレートを示している。また、デジタルフィルタＦｎに対して幅１、高さ１のインパルスデータを入力すると、
【数１１】
0006527339.tif 000012
で示される減衰正弦波を近似するデジタル波形が出力される。そして、デジタルフィルタＦ１，Ｆ２，Ｆ３，…を全て並列に接続した合成フィルタを構成することによって、指定された材質の振動を実現する共振フィルタ（材質フィルタ）を設定する。図１５は、上述したこのような生成式に基づいて生成された強度配列順生成処理によって生成された強度配列順（インパルスシーケンス）を示す波形データを、上述した共振フィルタ設定処理によって設定された共振フィルタに通すことによって得られた振動波形（振動制御信号の波形）の一例を示す図である。また、図１６は、上述した共振フィルタ設定処理によって設定された共振フィルタに対して幅１、高さ１のインパルスデータを入力することによって得られた、指定された材質に対応するグレイン波形の一例を示す図である。
【０１０５】
なお、上述した強度配列順生成処理および共振フィルタ設定処理の説明では、上述した第２の例における振動信号生成処理を行う場合の例を用いたが、当該強度配列順生成処理は、上述した第１の例における振動信号生成処理においても同様の処理で実現してもよい。この場合、実世界の振動や実世界の音の収録によって生成したグレインや、上述した共振フィルタ設定処理によって設定された共振フィルタに対して幅１、高さ１のインパルスデータを入力することによって得られるグレインを、上記強度配列順生成処理によって生成された強度配列順（インパルスシーケンス）に基づいて配置して畳み込むことによって、所定のアプリケーションの実行に応じた振動波形をリアルタイムに生成することができる。
【０１０６】
次に、図１７を参照して、情報処理の一例であるゲーム処理において用いられる主なデータについて説明する。図１７は、ゲーム処理を行う際に、情報処理装置３の記憶部３２に記憶される主なデータおよびプログラムの一例を示す図である。なお、以下のゲーム処理の説明では、仮想空間内の板面上を仮想オブジェクトＯＢＪが移動するゲーム例（図４参照）を用いる。
【０１０７】
図１７に示すように、記憶部３２のデータ記憶領域には、操作データＤａ、オブジェクト位置データＤｂ、物理パラメータデータＤｃ、材質パラメータデータＤｄ、強度配列順生成処理データＤｅ、共振フィルタ設定処理データＤｆ、振動制御信号データＤｇ、音声制御信号データＤｈ、および表示画像データＤｉ等が記憶される。なお、記憶部３２には、図１７に示すデータの他、実行するアプリケーションで用いるデータ等、処理に必要なデータ等が記憶されてもよい。また、記憶部３２のプログラム記憶領域には、ゲームプログラムを構成する各種プログラム群Ｐａが記憶される。例えば、各種プログラム群Ｐａは、情報処理装置３においてゲーム処理を行って表示部３５に画像を表示するためのゲームプログラム、振動制御信号を生成して情報処理装置３に振動を与えるための振動信号生成プログラム、および音声制御信号を生成して情報処理装置３から音声を出力するための音声生成プログラム等が含まれる。
【０１０８】
操作データＤａは、入力部３４に対する操作内容を示すデータであり、例えばタッチパネル３４１に対するタッチ位置を示すデータを含んでいる。なお、入力部３４が情報処理装置３本体の姿勢や動きを検出するためのセンサを含んでいる場合、操作データＤａは、情報処理装置３本体の姿勢や動きを算出するためのデータ（例えば、情報処理装置３本体に生じる加速度を示すデータや情報処理装置３本体の角速度を示すデータ）を含んでもよい。
【０１０９】
オブジェクト位置データＤｂは、仮想空間内を移動する仮想オブジェクトＯＢＪ（図４参照）の位置を示すデータである。
【０１１０】
物理パラメータデータＤｃは、ゲーム処理が行われることに応じて得られる仮想オブジェクトＯＢＪおよび板面の物理現象を示す物理パラメータを示すデータである。例えば、物理パラメータは、仮想オブジェクトＯＢＪの質量、仮想オブジェクトＯＢＪの速度、仮想オブジェクトＯＢＪの大きさ、仮想オブジェクトＯＢＪや仮想オブジェクトＯＢＪが移動する板面の粒密度、板面表面の凹凸サイズ、板面表面の凹凸フラクタル性等を示すパラメータである。
【０１１１】
材質パラメータデータＤｄは、ゲーム処理が行われることに応じて得られる仮想オブジェクトＯＢＪおよび板面の材質を示す材質パラメータを示すデータである。例えば、材質パラメータは、仮想オブジェクトＯＢＪの材質や仮想オブジェクトＯＢＪが接している部位の板面の材質等を示すパラメータである。
【０１１２】
強度配列順生成処理データＤｅは、強度配列順生成処理において算出される各種パラメータや強度配列順生成処理によって生成される強度配列順を示すデータである。
【０１１３】
共振フィルタ設定処理データＤｆは、共振フィルタ設定処理において算出される各種パラメータや共振フィルタ設定処理によって設定される共振フィルタを示すデータである。
【０１１４】
振動制御信号データＤｇは、強度配列順生成処理および共振フィルタ設定処理によって生成された振動制御信号を示すデータであり、制御部３１から振動発生部３７へ出力する振動制御信号（振動制御信号ＣＳ；図３参照）を示すデータである。
【０１１５】
音声制御信号データＤｈは、制御部３１から音声出力部３６へ出力する音声制御信号を示すデータである。
【０１１６】
表示画像データＤｉは、仮想オブジェクトＯＢＪ等の各仮想オブジェクトの画像や背景画像等を生成して表示部３５に表示するためのデータである。
【０１１７】
次に、図１８を参照して、情報処理装置３において行われる情報処理の一例であるゲーム処理の詳細を説明する。なお、図１８は、情報処理装置３において実行されるゲーム処理の一例を示すフローチャートである。ここで、図１８に示すフローチャートにおいては、情報処理装置３における処理のうち、ゲームプログラムおよび振動信号生成プログラムを実行することによって、仮想オブジェクトＯＢＪを仮想世界において移動させ、当該移動に応じた振動が出力される処理について主に説明し、これらの処理と直接関連しない他の処理については詳細な説明を省略する。また、図１８に示すフローチャートにおいては、上述した第２の例における振動信号生成処理を用いて、振動制御信号が生成される一例を用いる。また、図１８では、制御部３１が実行する各ステップを「Ｓ」と略称する。
【０１１８】
制御部３１のＣＰＵは、記憶部３２のメモリ等を初期化し、プログラム格納部３３からゲームプログラムをメモリに読み込む。そして、ＣＰＵによって当該ゲームプログラムの実行が開始される。また、制御部３１のＣＰＵは、プログラム格納部３３から振動信号生成プログラムもメモリに読み込む。そして、上記ゲームプログラムの実行と並行して当該振動信号生成プログラムの実行もＣＰＵによって開始される。図１８に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートであり、典型的にはステップ４１〜ステップ５１の処理が上記ゲームプログラムを実行することによって行われ、ステップ７１〜ステップ７５の処理が上記振動信号生成プログラムを実行することによって行われる。
【０１１９】
なお、図１８に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えておよび／または代えて別の処理が実行されてもよい。また、本実施例では、上記フローチャートの各ステップの処理を制御部３１（ＣＰＵ）が実行するものとして説明するが、上記フローチャートにおける一部のステップの処理を上記ＣＰＵが実行し、その他のステップの処理を上記ＣＰＵ以外のプロセッサや専用回路が実行するようにしてもよく、上記フローチャートにおける全部のステップの処理を上記ＣＰＵ以外のプロセッサや専用回路が実行するようにしてもよい。
【０１２０】
図１８において、制御部３１は、ゲームプログラムを実行する際の初期設定を行い（ステップ４１）、次のステップに処理を進める。例えば、制御部３１は、表示部３５に表示するための仮想空間を構築し、各パラメータを初期設定する。一例として、制御部３１は、仮想空間における板面上の初期位置に仮想オブジェクトＯＢＪを配置してオブジェクト位置データＤｂを設定する。また、制御部３１は、表示部３５の表示画面に表示する表示範囲を仮想空間に対して設定する。
【０１２１】
次に、制御部３１は、入力部３４から操作データを取得し、操作データＤａを更新して（ステップ４２）、次のステップに処理を進める。
【０１２２】
次に、制御部３１は、仮想空間における板面上に沿って仮想オブジェクトＯＢＪを移動させる処理を行い（ステップ４３）、次のステップに処理を進める。例えば、制御部３１は、仮想空間内に予め定められた移動経路に沿って、予め定められた移動速度で板面上を転がるように仮想オブジェクトＯＢＪを移動させ、当該移動後の位置を用いてオブジェクト位置データＤｂを更新する。他の例として、制御部３１は、入力部３４に対する操作（情報処理装置３本体を移動させたり傾けたりする操作を含む）に応じて仮想オブジェクトＯＢＪを移動させる場合、上記ステップ４２において取得した操作データに応じて、仮想空間内で仮想オブジェクトＯＢＪを移動させ、当該移動後の位置を用いてオブジェクト位置データＤｂを更新する。
【０１２３】
一方、振動信号生成プログラムが並行して実行されており、上記ステップ４３の処理に応じて更新されたオブジェクト位置データＤｂに基づいた仮想オブジェクトＯＢＪおよび板面の物理現象を示す物理パラメータや、オブジェクト位置データＤｂに基づいた仮想オブジェクトＯＢＪの材質および仮想オブジェクトＯＢＪが接している板面の材質を示す材質パラメータ等を受け付けている。そして、振動信号生成プログラムが実行されることによって、これらのパラメータに基づいた振動制御信号が生成される。なお、振動信号生成プログラムが実行されることによって行われる振動信号生成処理については、後述するステップ７１〜ステップ７５の処理で並行して行われるが、これらの処理の説明は後述する。
【０１２４】
ステップ４３の処理の後、制御部３１は、並行して振動信号生成プログラムを実行することによって生成された振動制御信号を取得し（ステップ４８）、次のステップに処理を進める。例えば、制御部３１は、生成された振動制御信号を取得して、振動制御信号データＤｇを更新する。
【０１２５】
次に、制御部３１は、表示制御処理を行い（ステップ４９）、次のステップに処理を進める。例えば、制御部３１は、画像生成プログラムおよびオブジェクト位置データＤｂに基づいて、仮想オブジェクトＯＢＪを配置した仮想空間の画像を生成し、設定されている表示範囲内の仮想世界の画像を表示部３５に表示する処理を行う。
【０１２６】
次に、制御部３１は、制御信号出力処理を行い（ステップ５０）、次のステップに処理を進める。例えば、制御部３１は、振動制御信号データＤｇが示す振動制御信号ＣＳを振動発生部３７へ出力する。これによって、振動発生部３７は、振動制御信号ＣＳに応じた振動をアクチュエータ３７３から発生させる。また、制御部３１は、音声制御信号データＤｈが示す音声制御信号を音声出力部３６へ出力する。これによって、音声出力部３６は、音声制御信号に応じた音声をスピーカから出力する。
【０１２７】
制御部３１は、音声生成プログラムおよび仮想世界に配置されている仮想オブジェクトＯＢＪの種類に基づいて、当該仮想オブジェクトＯＢＪが移動する際の音声（音源）の種類を設定し、当該音声の種類を示すデータを用いて音声制御信号を生成して音声制御信号データＤｈを更新している。なお、上記ステップ４５で生成した同じ強度配列順を用いて、音声制御信号を生成してもよい。この場合、実世界で予め収録された音声素材（音声グレイン）を上記強度配列順に基づいて配置して畳み込むことによって、音声波形を生成してもよい。また、上記ステップ４７で設定した共振フィルタと同じまたは別の音声用共振フィルタに、上記強度配列順を示すデータを通すことによって、音声波形を生成してもよい。なお、上記ステップ４７で設定した共振フィルタとは別の音声用共振フィルタを用いて音声波形を生成する場合、当該共振フィルタを構成する双２次フィルタの少なくとも１つを同じ双２次フィルタで構成してもよい。例えば、上記ステップ４７で設定した振動用共振フィルタに高周波帯域に対応する双２次フィルタを少なくとも１つ追加することによって、音声用共振フィルタを構成してもよい。
【０１２８】
次に、制御部３１は、ゲーム処理を終了するか否かを判断する（ステップ５１）。ゲーム処理を終了する条件としては、例えば、ゲーム処理を終了させる条件が満たされたことや、ユーザがゲーム処理を終了する操作を行ったこと等がある。制御部３１は、ゲーム処理を終了しない場合に上記ステップ４２に戻って処理を繰り返し、ゲーム処理を終了する場合に当該フローチャートによる処理を終了する。
【０１２９】
一方、制御部３１は、並行して振動信号生成プログラムを実行することによって、ゲームプログラムが実行に応じて生成される物理パラメータを取得して（ステップ７１）、次のステップに処理を進める。例えば、制御部３１は、上記ステップ４３において更新されたオブジェクト位置データＤｂに配置された仮想オブジェクトＯＢＪおよび板面の物理現象を示す物理パラメータ（例えば、仮想オブジェクトＯＢＪの移動方法（転がりながら移動している、擦れ合いながら移動している等）、移動速度、質量、大きさ、粒密度や、仮想オブジェクトＯＢＪが接している板面の凹凸サイズ、凹凸フラクタル性、粒密度等を示すパラメータ）を抽出し、当該物理パラメータを用いて物理パラメータデータＤｃを更新する。
【０１３０】
次に、制御部３１は、上記ステップ７１で取得した物理パラメータを用いて、強度配列順生成処理を行って（ステップ７２）、次のステップに処理を進める。例えば、制御部３１は、強度配列順生成処理で生成した強度配列順を示すデータを用いて、強度配列順生成処理データＤｅを更新する。なお、上記ステップ７２で行う強度配列順生成処理については、図７〜図９を用いて説明した強度配列順生成処理と同様であるため、ここでは詳細な説明を省略する。
【０１３１】
次に、制御部３１は、ゲームプログラムが実行に応じて生成される材質パラメータを取得して（ステップ７３）、次のステップに処理を進める。例えば、制御部３１は、上記ステップ４３において更新されたオブジェクト位置データＤｂに配置された仮想オブジェクトＯＢＪの材質および仮想オブジェクトＯＢＪが接している板面の材質を示す材質パラメータを抽出し、当該材質パラメータを用いて材質パラメータデータＤｄを更新する。
【０１３２】
次に、制御部３１は、上記ステップ４６で取得した材質パラメータを用いて、共振フィルタ設定処理を行って（ステップ７４）、次のステップに処理を進める。例えば、制御部３１は、共振フィルタ設定処理で生成した共振フィルタを示すデータを用いて、共振フィルタ設定処理データＤｆを更新する。なお、上記ステップ７４で行う共振フィルタ設定処理については、図１０〜図１６を用いて説明した共振フィルタ設定処理と同様であるため、ここでは詳細な説明を省略する。
【０１３３】
次に、制御部３１は、振動制御信号生成処理を行って（ステップ７５）、当該フローチャートによる処理を終了する。なお、上記ステップ７５で行う振動制御信号生成処理では、上記ステップ７２で生成された強度配置順を示すデータを、上記ステップ７４で設定された共振フィルタに通すことによって出力されるデジタル波形を用いて振動制御信号（振動発生部３７へ出力する振動制御信号ＣＳ；図３参照）が生成される。これによって、ゲームアプリケーションの実行に応じた振動制御信号がリアルタイムに生成され、当該振動制御信号に応じた振動を情報処理装置３本体に与えることができる。
【０１３４】
このように、上述した実施例に係る処理では、情報処理アプリケーション（例えば、ゲームアプリケーション）の実行に応じた振動制御信号をリアルタイムに生成して、当該振動制御信号に応じた振動を情報処理装置３本体に与えることができる。また、予め用意した単純な振動波形だけでなく、強度配列順を変化させて複雑な振動波形をリアルタイムに生成することが可能であるため、触感が単調になり難くバリエーションに富んだ振動をユーザに与えることが可能となる。また、実行する情報処理アプリケーションが異なるものであっても、当該アプリケーションの実行に応じて取得される物理パラメータや材質パラメータが同じであれば、結果的に同じ振動をユーザに与えることができる。したがって、上述した実施例に係る処理は、複数のアプリケーションに対して共通に用いることができる振動波形生成手法として有用となる。
【０１３５】
なお、上述した実施例では、共振フィルタ設定処理において、共振フィルタを構成する双２次フィルタの数を決定する際、人間が認識可能な周波数帯（例えば、１０００Ｈｚ）を超えた時点で周波数列｛ωｎ｝の生成を終了することによって当該双２次フィルタの数を制限しているが、他の方法によって双２次フィルタの数を制限してもよい。例えば、生成する周波数列｛ωｎ｝の数自体を所定数（例えば、４つ）に制限することによって、共振フィルタを構成する双２次フィルタの数を当該所定数に制限してもよい。また、周波数帯による制限および設定数による制限等から構成される複数の制限を設定し、少なくとも１つの制限を満たした場合に周波数列｛ωｎ｝の生成を終了してもよい。
【０１３６】
また、上述した実施例では、生成する振動にランダムさを与えるために、強度配列順生成処理においてフラクタルノイズを用いて強度配列順を生成しているが、他の手法によってランダムさを確保してもよい。例えば、フラクタルノイズだけでなく、他のノイズ（例えば、ホワイトノイズやレッドノイズそのまま）を用いて、強度配列順のランダムさを確保してもよい。また、各種ノイズを用いることなく、他の乱数生成法を用いて、強度配列順のランダムさを確保してもよい。
【０１３７】
また、上述した実施例では、所定のアプリケーションの実行に応じて生成される仮想空間内の物理現象や材質に対応するパラメータに応じて、強度配列順をリアルタイムに変化させることによって振動制御信号をリアルタイムに生成している。しかしながら、上記第１の例における振動信号生成処理において用いられるグレインについても、上記パラメータの少なくとも１つに応じてリアルタイムに生成してもよい。この場合、振動生成用のグレインをリアルタイムに生成してもよいし、音声生成用のグレインをリアルタイムに生成してもよい。一例として、上述した共振フィルタを上記パラメータの少なくとも１つに基づいてリアルタイムに設定し、幅１、高さ１のインパルスデータを入力することによって、上記グレインをリアルタイムに設定してもよい。他の例として、振動発生の対象となる画像の素材感（例えば、木目や顕微鏡レベルでの凹凸等）や当該画像に設定されている密度や硬度等に基づいて、所定のアルゴリズムを用いて上記グレインをリアルタイムに設定してもよい。
【０１３８】
また、上述した実施例では、情報処理装置３にアクチュエータ３７３が１つ設けられている例を用いたが、ユーザに振動を与えるアクチュエータが複数設けられてもよい。一例として、情報処理装置３の左右に一対のアクチュエータを設けてもよい。この場合、制御部３１は、生成された振動制御信号をそのまま左右のアクチュエータの駆動に用いてもよいし、左右のアクチュエータを駆動する強度配分を調整した振動制御信号をそれぞれの左右のアクチュエータの駆動に用いてもよい。
【０１３９】
また、上述した実施例では、仮想オブジェクトそのものに関するパラメータ（物理パラメータや材質パラメータ）に基づいて、強度配列順（インパルスシーケンス）やグレインを変化させたり生成したりしている。しかしながら、強度配列順（インパルスシーケンス）やグレインを変化させたり生成したりするためのパラメータは、仮想オブジェクトそのものに関するパラメータだけでなく、仮想世界における仮想オブジェクトの周辺の環境（温度、湿度、天気等）やユーザの操作（操作の強弱、操作の方向、操作の有無、操作の種類等）に応じたパラメータでもよい。このように、本実施例では、所定のアプリケーションから取得される様々なパラメータに基づいて、ユーザに与える振動を生成するための振動波形をリアルタイムに生成することが考えられる。
【０１４０】
また、ユーザが把持して操作するコントローラと表示装置とが別体の情報処理システムを用いる場合、ユーザに振動を与えるためのアクチュエータは、当該コントローラに設けられていてもよい。この場合、振動制御信号生成処理を行う制御部とアクチュエータとが別の装置に設けられることが考えられるが、アクチュエータが設けられているコントローラへ、当該アクチュエータの駆動の制御が可能な信号（例えば、振動制御信号ＣＳ、アナログ振動信号ＡＳ、または駆動信号ＤＳ）を出力することによって、同様の実施例を実現することができる。また、表示画面がないまたは表示画面に画像を表示しない情報処理システムであっても、ユーザの身体と接触する装置にアクチュエータを設けることによって、上述した振動をユーザに与えることが可能となる。この場合、ユーザ自身の状況やユーザ周辺の環境を検出するアプリケーションや画像を表示しないゲームアプリケーション等から取得されるパラメータに基づいて、ユーザに与える振動を生成するための振動波形をリアルタイムに生成することが考えられる。
【０１４１】
また、上述した説明では情報処理（振動制御信号生成処理、ゲーム処理）を情報処理装置３で行う例を用いたが、上記情報処理における処理ステップの少なくとも一部を他の装置で行ってもかまわない。例えば、情報処理装置３がさらに他の装置（例えば、別のサーバ、他のゲーム装置、他の携帯端末）と通信可能に構成されている場合、上記情報処理における処理ステップは、さらに当該他の装置が協働することによって実行してもよい。一例として、他の装置において、仮想世界の画像の生成処理および振動制御信号の生成処理の少なくとも１つが行われ、当該処理の結果を示す画像データや制御信号を情報処理装置３が取得することも考えられる。このように、上記情報処理における処理ステップの少なくとも一部を他の装置で行うことによって、上述した情報処理と同様の処理が可能となる。また、上述した情報処理は、少なくとも１つの情報処理装置により構成される情報処理システムに含まれる１つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。なお、少なくとも１つの情報処理装置により構成される情報処理システムは、複数の情報処理装置により構成される情報処理システム（いわゆる、複数の装置の複合体で構成されるシステム）と１つの情報処理装置によって構成される情報処理システム（いわゆる、複数のユニットが構成された単独の装置で構成されるシステム）とが考えられる。また、上記実施例においては、情報処理装置３の制御部３１が所定の振動信号生成プログラムを実行することによって、上述したフローチャートによる処理が行われたが、情報処理装置３が備える専用回路によって上記情報処理の一部または全部が行われてもよい。
【０１４２】
ここで、上述した変形例によれば、いわゆるクラウドコンピューティングのシステム形態や分散型の広域ネットワークおよびローカルネットワークのシステム形態でも本発明を実現することが可能となる。例えば、分散型のローカルネットワークのシステム形態では、据置型の情報処理装置（据置型のゲーム装置）と携帯型の情報処理装置（携帯型のゲーム装置）との間で上記情報処理を協働により実行することも可能となる。なお、これらのシステム形態では、上述した情報処理の各ステップの処理をどの装置で行うかについては特に限定されず、どのような処理分担をしたとしても本発明を実現できることは言うまでもない。
【０１４３】
また、上述した情報処理で用いられる処理順序、設定値、判定に用いられる条件等は、単なる一例に過ぎず他の順序、値、条件であっても、本実施例を実現できることは言うまでもない。また、上述した情報処理装置で用いられる各構成部品の形状、数、配置位置、部品が有する機能等は、単なる一例に過ぎず他の形状、数、配置位置であってもいいし、他の機能を有するものであっても、本実施例を実現できることは言うまでもない。一例として、情報処理装置に振動を与えるアクチュエータや情報処理装置から音声を出力するスピーカは、３つ以上であってもよい。また、情報処理装置は、複数の表示部を有してもよい。また、上述した説明では、携帯型の装置（例えば、タブレット端末）を情報処理装置３の一例として用いたが、情報処理装置３は、携帯型の装置より相対的に大きな手持ち型の装置または可搬型の装置でもよい。ここで、手持ち型の装置とは、ユーザが手に持って操作することができる装置であり、上述した携帯型の装置を含む概念である。また、可搬型の装置とは、当該装置を用いる際に当該装置本体を移動させたり、当該装置を用いる際に当該本体の姿勢を変えたり、当該装置本体を持ち運びしたりできる装置であり、上述した手持ち型の装置や携帯型の装置を含む概念である。
【０１４４】
また、上記振動信号生成プログラムは、外部メモリ等の外部記憶媒体を通じて情報処理装置３に供給されるだけでなく、有線または無線の通信回線を通じて情報処理装置３に供給されてもよい。また、上記振動信号生成プログラムは、情報処理装置３内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記振動信号生成プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、ＣＤ−ＲＯＭ、ＤＶＤ、あるいはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ、などでもよい。また、上記振動信号生成プログラムを記憶する情報記憶媒体としては、上記振動信号生成プログラムを記憶する揮発性メモリでもよい。このような記憶媒体は、コンピュータ等が読み取り可能な記録媒体ということができる。例えば、コンピュータ等に、これらの記録媒体のゲームプログラムを読み込ませて実行させることにより、上述で説明した各種機能を提供させることができる。
【０１４５】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施例の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書（定義を含めて）が優先する。
【産業上の利用可能性】
【０１４６】
以上のように、本発明は、バリエーションに富んだ振動を出力するための振動信号を生成すること等を目的として、例えば振動信号生成プログラム、振動生成装置、振動生成システム、および振動信号生成方法等として有用である。
【符号の説明】
【０１４７】
３…情報処理装置
３１…制御部
３２…記憶部
３３…プログラム格納部
３４…入力部
３４１…タッチパネル
３５…表示部
３６…音声出力部
３７…振動発生部
３７１…コーデック部
３７２…増幅部
３７３…アクチュエータ
【図１】
0006527339.tif 000013
【図２】
0006527339.tif 000014
【図３】
0006527339.tif 000015
【図４】
0006527339.tif 000016
【図５】
0006527339.tif 000017
【図６】
0006527339.tif 000018
【図７】
0006527339.tif 000019
【図８】
0006527339.tif 000020
【図９】
0006527339.tif 000021
【図１０】
0006527339.tif 000022
【図１１】
0006527339.tif 000023
【図１２】
0006527339.tif 000024
【図１３】
0006527339.tif 000025
【図１４】
0006527339.tif 000026
【図１５】
0006527339.tif 000027
【図１６】
0006527339.tif 000028
【図１７】
0006527339.tif 000029
【図１８】
0006527339.tif 000030