(57)【特許請求の範囲】
【請求項１】
少なくとも一つの振動体を備えるコントローラデバイスと、当該コントローラデバイスに対して前記振動体の制御信号を出力する情報処理装置とを含む情報処理システムであって、
前記振動体の振動中に、前記コントローラデバイスの振動状態を検出する検出手段と、
前記検出された振動状態を表す情報を用い、前記コントローラデバイスにて異音が生じているか否かを判断する判断手段と、を含み、
前記情報処理装置が、コントローラデバイスにて異音が生じていると判断されたときに、前記振動体の制御信号に対して補正処理を行って、当該補正処理により補正された制御信号を出力する情報処理システム。
【請求項２】
請求項１に記載の情報処理システムであって、
前記検出手段は、前記コントローラデバイスの振動状態を表す情報として、前記コントローラデバイスの周囲の音声を集音し、
前記判断手段は、前記集音された音声の信号に、予め定められた周波数の信号が含まれているときに、前記コントローラデバイスにて異音が生じていると判断する情報処理システム。
【請求項３】
請求項１または２に記載の情報処理システムであって、
前記コントローラデバイスが複数の振動体を備え、
前記判断手段が、コントローラデバイスにて異音が生じているか否かを判断するとともに、当該異音の発生源の位置を推定し、
前記情報処理装置が、前記判断手段が異音が生じていると判断している間は、前記コントローラデバイスの複数の振動体のいずれかを、当該推定された位置から近い順に、順次選択し、選択した振動体に対して出力する制御信号に対して補正処理を行う情報処理システム。
【請求項４】
請求項１から３のいずれか一項に記載の情報処理システムであって、
前記情報処理装置は、前記補正された制御信号を出力した後に、前記判断手段が異音が生じていると判断しているときには、当該制御信号に対する補正処理をとりやめる情報処理システム。
【請求項５】
請求項１から４のいずれか一項に記載の情報処理システムであって、
前記情報処理装置は、制御信号の出力時に、過去、振動体の振動中に異音が生じた際の前記コントローラデバイスの姿勢の情報に基づいて、当該出力する制御信号により異音が発生するか否かを予測し、異音が発生すると予測されるときに、前記振動体の制御信号を補正して出力する情報処理システム。
【請求項６】
少なくとも一つの振動体を備えるコントローラデバイスに対し、前記振動体の制御信号を出力するコンピュータを用い、
受入手段が、前記振動体の振動の状態を表す情報を用い、前記コントローラデバイスにて異音が生じているか否かを判断した結果を受け入れる工程と、
出力手段が、コントローラデバイスにて異音が生じていると判断されたときに、前記振動体の制御信号に対して補正処理を行って、当該補正処理により補正された制御信号を出力する工程と、
を含む振動制御方法。
【請求項７】
少なくとも一つの振動体を備えるコントローラデバイスに対し、前記振動体の制御信号を出力するコンピュータを、
前記振動体の振動中に取得された、前記コントローラデバイスの振動状態を表す情報を用い、前記コントローラデバイスにて異音が生じているか否かを判断した結果を受け入れる手段と、
コントローラデバイスにて異音が生じていると判断されたときに、前記振動体の制御信号に対して補正処理を行って、当該補正処理により補正された制御信号を出力する手段と、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、振動制御方法、及びプログラムに関する。
【背景技術】
【０００２】
家庭用ゲーム機等の情報処理装置に接続して使用されるコントローラデバイスなどのように、ユーザが自身の体に装着したり保持したりして使用するコントローラデバイスの中には、そのコントローラデバイスの一部又は全部を振動させるための振動機構を備えるものがある。家庭用ゲーム機等の情報処理装置は、このような振動機構に対して、振動振幅の時間変化を表す波形情報を出力し、当該波形情報に基づく振動を行わせる。これにより、任意のタイミングでそのコントローラデバイスを振動させて、ユーザに振動を提示することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、出力する波形情報によっては、振動の周期がコントローラデバイスが備える筐体等や、当該筐体が接している物体（机等）の固有振動数に一致し、共振音を発生させてしまう場合がある。また、振動機構がリニアアクチュエータ等、錘の位置を移動させて振動を発生させるものであると、例えばコントローラデバイスの姿勢により錘が重力の影響で振動方向に予め移動してしまっていることがあり、この移動後の位置から振動を開始すると、錘が振動機構の外装等に当たることでカチカチというメカ当たり音が発生してしまう場合もある。【０００４】
こうした振動に伴う、意図しない音声（以下、異音と呼ぶ）の鳴動は、ユーザに対して意図しない感覚を提示することとなって好ましくない場合がある。【０００５】
本発明は上記実情に鑑みて為されたもので、振動に伴う異音の発生を抑制できる情報処理システム、振動制御方法、及びプログラムを提供することを、その目的の一つとする。
【課題を解決するための手段】
【０００６】
上記従来例の問題点を解決する本発明は、少なくとも一つの振動体を備えるコントローラデバイスと、当該コントローラデバイスに対して前記振動体の制御信号を出力する情報処理装置とを含む情報処理システムであって、前記振動体の振動中に、前記コントローラデバイスの振動状態を検出する検出手段と、前記検出された振動状態を表す情報を用い、前記コントローラデバイスにて異音が生じているか否かを判断する判断手段と、を含み、前記情報処理装置が、コントローラデバイスにて異音が生じていると判断されたときに、前記振動体の制御信号に対して補正処理を行って、当該補正処理により補正された制御信号を出力することとしたものである。
【発明の効果】
【０００７】
本発明によると、振動に伴う異音の発生を抑制できる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施の形態に係るコントローラデバイスの例を表す概略斜視図である。
【図２】本発明の実施の形態に係るコントローラデバイスの回路部の例を表す構成ブロック図である。
【図３】本発明の実施の形態に係る情報処理装置の例を表す構成ブロック図である。
【図４】本発明の実施の形態に係る情報処理装置の例を表す機能ブロック図である。
【図５】本発明の実施の形態に係る情報処理装置が保持する補正記録テーブルの例を表す説明図である。
【図６】本発明の実施の形態に係る情報処理システムの動作例を表すフローチャート図である。
【図７】本発明の実施の形態に係る情報処理システムにおける補正試行処理の例を表すフローチャート図である。
【図８】本発明の実施の形態に係る情報処理装置が行う補正の内容例を表す説明図である。
【発明を実施するための形態】
【０００９】
本発明の実施の形態について図面を参照しながら説明する。なお、以下の説明において各部の大きさやその比、配置等は一例であり、本実施の形態の例は、図示等した大きさや比率、配置に限られるものではない。
【００１０】
本発明の実施の形態の一例に係る情報処理システム１は、情報処理装置１０と、コントローラデバイス２０とを含んで構成されている。ここで情報処理装置１０は、例えば家庭用ゲーム機等のコンピュータ機器であり、コントローラデバイス２０は、この情報処理装置１０に接続される。
【００１１】
本発明の実施の形態に係るコントローラデバイス２０は、ユーザの左手または右手に装着されて固定される。以下の説明において、ユーザの左手に固定されるコントローラデバイス２０と、右手に固定されるコントローラデバイス２０とを区別する必要がある場合は、ユーザの左手に固定されるコントローラデバイス２０をコントローラデバイス２０Ｌ、ユーザの右手に固定されるコントローラデバイス２０をコントローラデバイス２０ＲとそれぞれＬ，Ｒの符号を付して区別する。
【００１２】
このコントローラデバイス２０の一例は、図１にその概要を例示するように、デバイス本体２１０と、このデバイス本体２１０に固定された固定具２２０とを含んで構成される。また、このコントローラデバイス２０は、デバイス本体２１０内に、図２に示すように、制御部２１と、記憶部２２と、操作インタフェース２３と、センサ部２４と、振動体２５と、通信部２６とを含んだ回路部を備えて構成される。
【００１３】
デバイス本体２１０は、ユーザの左手に装着されるものと、右手に装着されるものとで、いずれもその形状が同一となっていてよい。本実施の形態の例では、固定具２２０は例えば可撓性あるベルトとバックルとを有し、ベルトとバックルとにより直径が調整可能な環状部を形成するものとする。そしてユーザは、この環状部に人差指から小指までを通し、デバイス本体２１０がユーザの親指の付根（人差指から小指のＭＰ関節に相当する位置）に当接させた位置に固定されるように環状部の直径を適宜調整し、バックルで固定する。
【００１４】
デバイス本体２１０は、ユーザにより把持される把持部２１１と、操作部２１２と、位置提示部２１３とを含む。把持部２１１は、本実施の形態の一例では実質的に多角形柱状をなしている。操作部２１２は、把持部２１１から連続して形成されており、図１の例では、ボタン操作部２３１を含む。
【００１５】
位置提示部２１３は、デバイス本体２１０の上側（ユーザの手に固定した際、親指側）背面に配され、例えばＬＥＤ等の発光素子を少なくとも一つ含んで構成される。この位置提示部２１３は、コントローラデバイス２０の動作中はコントローラデバイス２０ごとに固有の、予め指定された色の光を発光するものとする。またこの位置提示部２１３は、コントローラデバイス２０ごとに固有な色のマーカー等、各コントローラデバイス２０の位置をそれぞれ外部から検出できればよく、必ずしも発光素子でなくてもよい。
【００１６】
またこのコントローラデバイス２０の大きさは、ユーザが自然にデバイス本体２１０を把持したときに、その一方端がユーザの親指の先端が到達する位置よりやや外側に位置し、その他方端が、小指の付け根（ＭＰ関節に相当する位置）からやや突出する位置にある程度の大きさとする。なおコントローラデバイス２０は、コントローラデバイス２０を装着した状態でユーザが手を開いても、固定具２２０によりユーザの手に固定されるので、落下することはない。
【００１７】
本実施の形態の制御部２１は、ＣＰＵ等のプログラム制御デバイスであり、記憶部２２に格納されたプログラムに従って動作する。本実施の形態ではこの制御部２１は、操作インタフェース２３からユーザが操作部２１２においてした操作の内容を表す情報の入力を受け、当該操作の内容を表す情報を、通信部２６を介して情報処理装置１０へ出力する。またこの制御部２１は、センサ部２４に含まれるセンサが出力する情報を、通信部２６を介して情報処理装置１０へ出力する。
【００１８】
記憶部２２は、メモリデバイス等であり、制御部２１によって実行されるプログラムを保持する。このプログラムは、コンピュータ可読かつ、非一時的な記憶媒体に格納されて提供され、この記憶部２２に複写されたものであってもよい。またこの記憶部２２は、制御部２１のワークメモリとしても動作する。
【００１９】
操作インタフェース２３は、操作部２１２にてユーザが行った操作の内容を表す情報を制御部２１に出力する。センサ部２４は、少なくとも一つのセンサを含み、当該センサが出力する情報を制御部２１に出力する。本実施の形態の一例では、このセンサ部２４は、コントローラデバイス２０のデバイス本体２１０の傾きを検出する傾きセンサ２４１や、コントローラデバイス２０の動きを検出する加速度センサ２４２を含む。さらにこのセンサ部２４は、握力センサ２４３を含んでもよい。
【００２０】
ここでコントローラデバイス２０の長手方向をＺ軸とし、このＺ軸を法線とする面内で、ユーザの指が位置するべき方向をＸ軸、上記面内でＸ軸に直交する方向をＹ軸とするなどして予め定めておく。そして傾きセンサ２４１は、デバイス本体２１０の上記Ｘ，Ｙ，Ｚの各軸まわりの回転角の情報を検出して出力する。加速度センサ２４２は、コントローラデバイス２０に加えられる上記Ｘ，Ｙ，Ｚの各軸方向の加速度を検出し、当該検出の結果を出力する。
【００２１】
振動体２５は、制御部２１から制御信号としての振動振幅の時間変化を表す波形情報の入力を受けて、当該指示された波形情報に基づいて振動する。本実施の形態ではこの振動体２５は、リニアアクチュエータや、偏心錘を回転させることで振動を得るバイブレータ、スピーカー等である。この振動体２５は、デバイス本体２１０を一つの軸方向に振動させるものであってもよいし、多軸方向に複数のリニアアクチュエータを備えるなどして、多方向に振動させるものであってもよい。また本実施の形態では、コントローラデバイス２０は、複数の振動体２５を、デバイス本体２１０内に備えてもよい。
【００２２】
通信部２６は、ＵＳＢインタフェース等の有線インタフェースや、ブルートゥース（登録商標）等の無線インタフェースであり、制御部２１から入力される指示に従い、種々の情報を情報処理装置１０に対して出力している。
【００２３】
情報処理装置１０は、図３に例示するように、制御部１１と、記憶部１２と、インタフェース部１３と、撮像部１４と、集音部１５と、出力部１６とを含んで構成されている。制御部１１は、ＣＰＵ等のプログラム制御デバイスであり、記憶部１２に格納されたプログラムに従って動作する。
【００２４】
記憶部１２は、メモリデバイス等であり、制御部１１によって実行されるプログラムを保持する。このプログラムは、コンピュータ可読かつ、非一時的な記憶媒体に格納されて提供され、この記憶部１２に複写されたものであってもよい。またこの記憶部１２は、制御部１１のワークメモリとしても動作する。
【００２５】
インタフェース部１３は、コントローラデバイス２０に無線又は有線にて接続され、コントローラデバイス２０からユーザの操作の内容を表す情報や、センサ部２４が出力する情報を受信して、制御部１１に出力する。
【００２６】
撮像部１４は、ユーザの位置する範囲を撮像範囲として設置されたカメラ等であり、ユーザを含む画像を所定のタイミングごとに繰り返して撮像し、当該画像のデータを制御部１１に出力する。集音部１５は、本発明におけるコントローラデバイス２０の振動状態を検出する手段の一例を実現するものである。この集音部１５は、マイクであり、ユーザの位置する周囲の音声を集音し、音声信号として出力する。この集音部１５によりコントローラデバイス２０が振動するときに発する音（振動状態を表す情報）が集音される。
【００２７】
出力部１６は、例えばＨＤＭＩ（登録商標）インタフェース等、家庭用テレビジョンに対して映像等を出力するインタフェースを有する。この出力部１６は、制御部１１から入力される指示に従い、表示するべき映像の情報を出力する。
【００２８】
本実施の形態の一例では、情報処理装置１０の制御部１１は、ゲーム等のアプリケーションプログラムから、コントローラデバイス２０に対する振動の指示を受け入れ、制御信号を生成する。この制御信号は、例えば、音声信号と同様に、振動振幅の時間変化を表す波形情報である。このような制御信号の生成処理については、広く知られた方法を用いることができるので、ここでの詳しい説明を省略する。なお、コントローラデバイス２０が振動体２５を複数備える場合は、振動体２５ごとに制御信号を生成する。また、ユーザの左右の手にそれぞれ別のコントローラデバイス２０Ｌ，Ｒが装着される場合は、それぞれのコントローラデバイス２５Ｌ，Ｒの各振動体２５ごとに、制御信号をそれぞれ生成する。
【００２９】
制御部１１は、生成した波形情報を保持する。またこの制御部２１は、集音部１５にて集音された音声の信号を用い、コントローラデバイス２０にて異音が生じているか否かを判断する。制御部２１は、コントローラデバイス２０にて異音が生じていると判断されたときに、上記保持している制御信号である波形情報に対して補正処理を行って、当該補正処理により補正された制御信号である、補正された波形情報を出力する。この制御部１１は、機能的には、図４に例示するように、波形情報入力部４１と、判断部４２と、補正制御部４３と、補正処理部４４と、出力部４５とを含んで構成される。
【００３０】
波形情報入力部４１は、ゲームアプリケーション等による、コントローラデバイス２０に対する振動の指示を受け入れて生成した、振動体２５の制御信号である波形情報の入力を受け入れる。
【００３１】
判断部４２は、コントローラデバイス２０において振動体２５が振動している間（振動体２５が複数ある場合は、いずれかの振動体２５が振動している間）に、集音部１５が出力する音声信号を用い、コントローラデバイス２０にて異音が生じているか否かを判断する。具体的にこの判断部４２は、コントローラデバイス２０において振動体２５が振動している間の、集音部１５が出力する音声信号の音量変化を調べ、当該音量変化が予め定めた条件を満足する場合に、コントローラデバイス２０にて意図しない音声（異音）が生じていると判断する。
【００３２】
ここで、予め定めた条件は、例えば、音量変化が周期的ないし継続的であり、かつ、最大音量が所定の音量を超えている等、実験的にコントローラデバイス２０の筐体、またはコントローラデバイス２０の筐体が接している机等の物体が、振動体２５の振動に共振する際に発生する音の音量変化に相当するものとして規定しておく。
【００３３】
補正制御部４３は、図５に例示する補正記録テーブルを記憶部１２に格納している。この補正記録テーブルは、コントローラデバイス２０ごと（左右の手に装着される場合はそれぞれのコントローラデバイス２０ごと。また、複数のユーザが使用している場合はユーザごと、つまり情報処理装置１０との間で通信しているコントローラデバイス２０ごと）の各振動体２５を特定する情報（振動体識別情報）について、
過去に制御信号の補正をしていない（未補正）、
現在制御信号を補正するか否かを試行している（試行中）、
補正をするか否かの試行を終了した（試行終了）、
現在制御信号を補正している（補正中）、
過去に制御信号を補正したが現在は補正していない（補正試行済）、
のいずれかを表すフラグ情報を関連付けて記録したデータテーブルである。なお、情報処理装置１の電源投入時や、アプリケーションプログラムの切り替え時等の予め定めたタイミングでリセットされ、すべての振動体識別情報に関連付けられたフラグが「未補正」に設定される。
【００３４】
補正制御部４３は、また、判断部４２がコントローラデバイス２０にて異音が生じていると判断すると、次のように動作する。すなわち、補正制御部４３は、異音が生じていると判断部４２が判断した時点で振動している振動体２５を特定する。具体的にはその時点で制御信号を出力している振動体２５がどれであるかを判断する。
【００３５】
補正制御部４３は、補正記録テーブルを参照し、異音が生じていると判断部４２が判断した時点で「試行終了」のフラグ情報に関連付けられた振動体識別情報があれば、当該振動体識別情報で特定される振動体２５に対する補正を取りやめさせる指示を、補正処理部４４に出力し、さらに当該振動体識別情報に関連付けられたフラグ情報を「補正試行済」に変更して、補正記録テーブルを更新する。
【００３６】
補正制御部４３は、また補正記録テーブルを参照し、異音が生じていると判断部４２が判断した時点で振動しているものとして特定された振動体２５のうち、「未補正」のフラグ情報に関連付けられた振動体識別情報を抽出する。この振動体識別情報は、当該振動体２５を備えるコントローラデバイス２０を特定する情報と、当該情報で特定されるコントローラデバイス２０内での当該振動体２５の識別情報とを含む。
【００３７】
そして補正制御部４３は、補正試行処理を開始する。補正試行処理では補正制御部４３は、ここで抽出した振動体識別情報のうち一つを順次（予め定めた方法で決められる順序で）選択（抽出した振動体識別情報が一つだけであれば、当該振動体識別情報を選択）し、選択した振動体２５に関連付けて補正記録テーブルに格納されているフラグ情報を「試行中」に変更する。そして補正制御部４３は、当該選択した振動体識別情報を、補正を行うべき旨の指示とともに補正処理部４４に出力する。
【００３８】
補正制御部４３は、未だ異音が生じていると判断部４２が判断しているか否かを調べる。補正制御部４３は、ここで異音が生じていると、判断部４２が判断していなければ、補正記録テーブルを参照し、その時点で「試行中」となっているフラグ情報を「補正中」に変更して、補正記録テーブルを更新し、補正試行処理を終了する。
【００３９】
一方、補正制御部４３は、ここで未だ異音が生じていると判断部４２が判断していれば、補正記録テーブルを参照して、次の処理を行う。すなわち、補正制御部４３は、未だ異音が生じていると判断部４２が判断した時点で「試行中」となっているフラグ情報が補正記録テーブルに含まれていれば、当該フラグ情報に関連付けられている振動体識別情報で特定される振動体２５に対し、さらに補正を行うべき旨の指示を、補正処理部４４に出力する。
【００４０】
また、補正制御部４３は、未だ異音が生じていると判断部４２が判断した時点で「試行終了」となっているフラグ情報が補正記録テーブルに含まれていれば、当該フラグ情報を「補正試行済」に変更して、補正記録テーブルを更新する。また「補正試行済」に変更したフラグ情報に関連付けられている振動体識別情報で特定される振動体２５に対する補正を取りやめさせる指示を、補正処理部４４に出力する。そして補正制御部４３は、先に抽出した振動体識別情報のうち、未選択の振動体識別情報があればそのうち一つを選択する処理に戻って処理を続ける。
【００４１】
また、先に抽出した振動体識別情報のうち、未選択の振動体識別情報がない場合は、補正制御部４３は補正試行処理を終了する。この場合、異音の発生は抑えられなかったものとなる。
【００４２】
補正処理部４４は、例えば電源投入時等の所定のタイミングにおいて、補正記録テーブルを参照し、「補正中」または「試行中」のフラグに関連付けられた振動体識別情報のリストを、補正対象振動体識別情報として記憶する。
【００４３】
また補正処理部４４は、補正制御部４３から補正をすべき旨の指示とともに、振動体識別情報の入力を受けると、当該振動体識別情報を、補正対象振動体識別情報リストに追記する。また、補正制御部４３から補正を取りやめるべき旨の指示とともに、振動体識別情報の入力を受けると、当該振動体識別情報を、補正対象振動体識別情報リストから除去する。
【００４４】
補正処理部４４は、波形情報入力部４１から、各振動体２５に対する制御信号の入力を受け入れる。そして補正処理部４４は、補正対象振動体識別情報リストを参照し、このリストに含まれる振動体識別情報で識別される振動体２５に対する制御信号を、予め定められた方法で補正し、補正後の制御信号を出力部４５に出力する。また、このリストに含まれない振動体識別情報で識別される振動体２５に対する制御信号については、そのまま出力部４５に出力する。
【００４５】
具体的に、この補正処理部４４が行う補正の方法は、例えば、制御信号である波形情報が表す波形の振幅を減衰させる補正とすることができる。
【００４６】
補正処理部４４は、補正制御部４３からさらに補正を行うべき旨の指示を受け入れたときには、補正記録テーブルを参照し、「試行中」のフラグを「試行終了」に変更する。
【００４７】
またここでの説明では、一つの補正方法を試行したときに異音が抑制できなかった場合に、「試行終了」とすることとしていたが、本実施の形態はこれに限られない。
【００４８】
すなわち、予め複数の互いに異なる補正の方法を定めておき、補正処理部４４は、補正制御部４３から補正を行うべき旨の指示を受け入れるごとに、当該予め定められた複数の方法のいずれかの方法で補正を行うこととしてもよい。
【００４９】
この例では、補正処理部４４は、補正制御部４３からさらに補正を行うべき旨の指示を受け入れると、補正対象振動体識別情報リストを参照し、このリストに含まれる振動体識別情報で識別される振動体２５に対する制御信号を、それまでに試行した補正の方法とは異なる方法で補正し、補正後の制御信号を出力部４５に出力する。
【００５０】
こうした複数の互いに異なる補正方法は、例えば互いに異なる減衰率で、制御信号である波形情報が表す波形の振幅を減衰させる補正とすることができる。この例では具体的に、補正処理部４４は、補正制御部４３から、補正試行中の振動体２５に対する制御信号を、さらに補正するべき旨の指示を受け入れると、それまでの減衰率よりも高い減衰率で波形の振幅を減衰させることとする。
【００５１】
また複数の互いに異なる補正方法は、制御信号である波形情報が表す波形の振幅の減衰率を異ならせる補正と、振幅を補正する代わりに周波数を変更する補正と、…などというように、補正の態様自体を異ならせるものであってもよい。
【００５２】
補正処理部４４は、さらに、補正制御部４３からさらに補正を行うべき旨の指示を受け入れたときに、補正対象振動体識別情報リストに含まれる振動体識別情報で識別される振動体２５に対する制御信号に対して、既に予め定められたすべての補正の方法を試行しており、それまでの補正の方法とは異なる方法で補正することができない場合は、補正記録テーブルを参照し、「試行中」のフラグを「試行終了」に変更する。
【００５３】
出力部４５は、各振動体２５に対する制御信号の入力を受け入れる。この制御信号には、補正処理部４４により補正された制御信号が含まれ得る。出力部４５は、これら制御信号を、対応する振動体２５を識別する振動体識別情報とともに、対応するコントローラデバイス２０宛に送出する。
【００５４】
［動作］
本実施の形態は、例えば以上のような構成を備えており、次のように動作する。情報処理装置１０が、図６に例示するように、ゲーム等のアプリケーションプログラムに従って、コントローラデバイス２０を振動させる制御信号を生成する。そして情報処理装置１０は、当初はコントローラデバイス２０に対して、この制御信号をそのまま送出する（Ｓ１）。ここでは制御信号は、例えば最長０．５秒間の振動を指示するものであり、０．５秒を超える振動を指示する場合は、複数の制御信号を逐次的に生成して送出することとなるものとする。図６では、この状態を、振動動作（Ｓ２，Ｓ１１）の間に破線を記述することで表している。コントローラデバイス２０は、制御信号である波形情報に従い、振動体２５を振動させる（Ｓ２）。
【００５５】
情報処理装置１０は、コントローラデバイス２０において振動体２５が振動している間に集音部１５にて集音された周囲の音声信号を参照し、異音が生じているか否かを判断する（Ｓ３）。
【００５６】
ここで異音が生じていないと判断されたならば（Ｓ３：No）、そのまま処理を継続する（Ｓ４）。一方、処理Ｓ３にて異音が生じていると判断されたならば（Ｓ３：Yes）、当該判断の時点で振動している振動体２５を特定する（Ｓ５）。
【００５７】
ここで情報処理装置１０では、補正記録テーブルを参照し、異音が生じていると判断された時点で「試行中」のフラグ情報に関連付けられた振動体識別情報を検索するが、当初は「試行中」のフラグとはなっていないので、ここでは何も行われない。
【００５８】
情報処理装置１０は、補正記録テーブルを参照し、異音が生じていると判断された時点で振動しているものとして特定された振動体２５のうち、「未補正」のフラグ情報に関連付けられた振動体識別情報を抽出する（Ｓ６）。情報処理装置１０は、補正試行処理を開始する（Ｓ７）。
【００５９】
この補正試行処理を図７に例示する。補正試行処理では、情報処理装置１０は、図６の処理Ｓ６にて抽出した振動体識別情報のうち一つを予め定めた順序で順次選択し（Ｓ２１）、選択した振動体２５に関連付けて補正記録テーブルに格納されているフラグ情報を「試行中」に変更する（Ｓ２２）。
【００６０】
情報処理装置１０は、処理Ｓ２１で選択した振動体識別情報を、補正対象振動体識別情報リストに追記する。そして、生成した振動体２５に対する制御信号のうち、補正対象振動体識別情報リストに含まれる振動体識別情報で識別される振動体２５に対する制御信号を所定の方法で補正し（Ｓ２３）、コントローラデバイス２０に対して送出する（Ｓ２４）。なお、補正対象振動体識別情報リストに含まれる振動体識別情報で識別される振動体２５に対する制御信号については補正せずにそのまま送出する。
【００６１】
これにより、コントローラデバイス２０では、補正対象振動体識別情報リストに含まれる振動体識別情報で識別される振動体２５については、補正された制御信号が表す波形情報に従って振動する。一例として処理Ｓ２３での補正が、波形情報の表す波形の振幅を減衰させる補正である場合は、コントローラデバイス２０では、補正対象振動体識別情報リストに含まれる振動体識別情報で識別される振動体２５については、ゲームアプリケーション等が指示した強度よりも減衰された強度で振動することとなる。
【００６２】
情報処理装置１０は、集音部１５にて集音された周囲の音声信号を参照し、異音が生じているか否かを判断する（Ｓ２５）。ここで異音が生じていると判断されていなければ（Ｓ２５：No）、情報処理装置１０は、補正記録テーブルを参照し、その時点で「試行中」となっているフラグ情報を「補正中」に変更して、補正記録テーブルを更新し（Ｓ２６）、補正試行処理を終了する。
【００６３】
一方、情報処理装置１０は、処理Ｓ２５で未だ異音が生じていると判断したときには（Ｓ２５：Yes）、補正記録テーブルを参照し、その時点で「試行中」となっているフラグ情報を「試行終了」に変更して、補正記録テーブルを更新する（Ｓ２７）。また「試行終了」に変更したフラグ情報に関連付けられている振動体識別情報で特定される振動体２５に対する補正を取りやめ（Ｓ２８）、当該振動体識別情報を、補正対象振動体識別情報リストから削除する。
【００６４】
そして情報処理装置１０は、処理Ｓ２１にて未選択の振動体識別情報があれば、処理Ｓ２１に戻り、当該未選択の振動体識別情報の一つを選択する処理に戻って処理を続ける。また、処理Ｓ２１にて未選択の振動体識別情報がなければ、補正試行処理を終了する。
【００６５】
補正試行処理から戻った情報処理装置１０は、その後、ゲームアプリケーションプログラム等の実行中に、コントローラデバイス２０を振動させる制御信号を生成するべき旨の指示を受けると、図６に例示しているように、コントローラデバイス２０を振動させる制御信号を生成する（Ｓ８）。そして情報処理装置１０は、生成した振動体２５に対する制御信号のうち、補正対象振動体識別情報リストに含まれる振動体識別情報で識別される振動体２５に対する制御信号を所定の方法で補正し（Ｓ９）、コントローラデバイス２０に対して送出する（Ｓ１０）。なお、補正対象振動体識別情報リストに含まれる振動体識別情報で識別される振動体２５に対する制御信号については補正せずにそのまま送出する。
【００６６】
これより、コントローラデバイス２０では、補正対象振動体識別情報リストに含まれる振動体識別情報で識別される振動体２５については、補正された制御信号が表す波形情報に従って振動する（Ｓ１１）。以下、情報処理装置１０は、処理Ｓ３に戻って処理を続ける。
【００６７】
［周波数による判断］
ここまでの説明において、情報処理装置１０が異音が生じているか否かを判断する条件は、音量変化が周期的ないし継続的であり、かつ、最大音量が所定の音量を超えている等の条件としたが、本実施の形態はこれに限られない。
【００６８】
例えば情報処理装置１０は、上記条件に代えて、またはこの条件とともに、予め定めた周波数の音が所定の音量を超えているとの条件で、異音が生じていると判断してもよい。この周波数は例えば振動中の振動体２５の筐体やコントローラデバイス２０の筐体など、コントローラデバイス２０において振動する可能性のある部材の固有振動数等として予め定めておく。
【００６９】
［錘の衝突による異音］
さらに異音が生じる原因は、コントローラデバイス２０において振動する可能性のある部材やコントローラデバイス２０が接している物体が共振する場合に限られない。
【００７０】
リニアアクチュエータ等の振動体２５では、コントローラデバイス２０が傾けられると、内部で移動可能となっている錘が、振動前に既に重力により引かれて筐体内の一方側へ偏っている場合がある。このときに振動制御が行われると、錘の移動量によっては振動体２５の筐体内壁に錘が衝突して（いわゆる「メカあたり」して）、「カチカチ…」という周期的な金属音が発生する場合がある。このような金属音も意図しない音であり異音となる。
【００７１】
このような場合、リニアアクチュエータ自体の固有振動（錘を振動させる機構自体の固有振動）周波数付近の振動が過大となって、振動体２５の筐体内壁への錘の衝突が生じることがある。そこで、この例の異音に対しては、上述のように振幅を減衰させる補正に代えて、制御信号である波形情報が表す波形の、上記固有振動数ｆ０付近（ｆ０±Δｆの帯域）の成分を減衰させる（図８に例示するように帯域減衰フィルタリングする）補正を行うことが好適である。ここで当該ｆ０近傍の帯域の減衰量は１００％に近い値でなくてもよく、経験的に定めればよい。
【００７２】
そこで、この例に対応するためには、判断部４２がコントローラデバイス２０にて異音が生じているか否かを判断するにあたり、上記の共振による異音に関する条件（第１の条件とする）とともに、「カチカチ…」という周期的な金属音が発生しているか否か（該当する波形信号が集音部１５にて集音された音声信号に含まれているか否か）という、メカあたりによる異音に関する条件（第２の条件とする）を用いる。
【００７３】
そしてこの例における判断部４２は、集音部１５にて集音された音声信号が第１の条件を満足したか否かを表す情報と、第２の条件を満足したか否かを表す情報とを出力する。
【００７４】
補正制御部４３は、判断部４２が、第１の条件を満足したことを表す情報または第２の条件を満足したことを表す情報を出力しているときに、判断部４２がコントローラデバイス２０にて異音が生じていると判断したものとする。
【００７５】
そしてこの例の補正制御部４３は、いずれかの補正記録テーブルに格納されているフラグ情報を「試行中」に変更する際に、当該フラグ情報に、判断部４２が出力した情報が第１の条件を満足したことを表す情報であったか、第２の条件を満足したことを表す情報であったかを表す情報を含める。つまり、共振による異音が生じているか、メカあたりによる異音が生じているかを表す情報を含めることとする。
【００７６】
さらに補正制御部４３は、「試行中」となっているフラグ情報を「補正中」に変更して、補正記録テーブルを更新するときにも、「補正中」のフラグ情報に、判断部４２が出力した情報が第１の条件を満足したことを表す情報であったか、第２の条件を満足したことを表す情報であったかを表す情報を含める。つまり、共振による異音が生じているか、メカあたりによる異音が生じているかを表す情報を含めることとする。
【００７７】
補正処理部４４は、補正を行う際に、補正するべき対象となっている振動体２５の振動体識別情報に関連付けて補正記録テーブルに格納されているフラグ情報を参照し、共振による異音が生じているか、メカあたりによる異音が生じているかを表す情報を読み出す。そして補正処理部４４は、共振による異音が生じているとの情報に関連付けられた振動体識別情報の振動体２５への制御信号については、既に述べたように、制御信号である波形情報が表す波形の振幅を減衰させる補正を行う。
【００７８】
また、メカあたりによる異音が生じているとの情報に関連付けられた振動体識別情報の振動体２５への制御信号については、固有振動数ｆ０付近の成分を減衰させる（ｆ０近傍の周波数の信号を帯域減衰フィルタリングする）補正を行うことが好適である。この、所定の帯域を減衰させる処理については広く知られた信号処理の方法を採用できるので、ここでの詳しい説明を省略する。
【００７９】
この例によると、共振による異音を生じさせる振動体２５に対する制御信号については、共振を抑制するべく、振幅を減衰させる補正が行われ、メカあたりによる異音を生じさせる振動体２５に対する制御信号については、固有振動数近傍の帯域を減衰させる補正が行われることとなる。つまり、それぞれの異音発生の原因に対応した補正が行われることとなる。
【００８０】
［異音の発生位置の判断］
またコントローラデバイス２０が複数の振動体２５を備える場合、あるいは、複数のコントローラデバイス２０がある場合に、情報処理装置１０の制御部１１は、判断部４２の処理として、いずれかのコントローラデバイス２０にて異音が生じているか否かを判断するとともに、当該異音の発生源の位置を推定してもよい。この推定は例えば、次のようにして行う。
【００８１】
すなわち、この例では情報処理装置１０の集音部１５が、互いに離れている、予め定めた位置に配される複数のマイクを備える。そして、各マイクで集音された音声信号に含まれる異音の比により、各マイクと、異音の発生源とのそれぞれの距離が推定され、当該複数の距離の情報から異音が生じているコントローラデバイス２０の位置、あるいは当該コントローラデバイス２０内の振動体２５の位置を定位する。このような低位の処理は広く知られた音声信号の分析処理を用いることができるので、ここでの詳しい説明を省略する。
【００８２】
また、集音部１５の各マイクに対し、どのコントローラがどの位置にいるかは、撮像部１４にて撮像される映像に基づいて判断してもよい。この場合、集音部１５が備える各マイクも、その位置が認識できるよう、所定の色またはパターンで発光する発光素子を備えてもよい。
【００８３】
そしてこの例では、情報処理装置１０が補正制御部４３において、補正試行処理を実行するとき、補正の試行の対象とする振動体識別情報のうち一つずつ選択する順序を、上記推定された位置から近い順とする。これにより、比較的迅速に補正を行うことが可能となる。
【００８４】
［学習］
また、ここまでの説明では、一旦は振動を開始し、異音の発生を検知したときに振動の補正を行うこととしていたが、本実施の形態はこれに限られない。
【００８５】
本実施の形態の情報処理装置１０の制御部１１は、過去に、振動体２５の振動中に異音が発生した際の条件（異音発生条件）と、そのときに異音を抑制した補正の状況情報（どの振動体２５への制御信号をどのように補正したかを表す情報）とを関連付けて記憶しておいてもよい。そして制御部１１は、当該記憶している条件のいずれかを満足する状況となったときに、当該満足された条件に関連付けられている、補正の状況情報を取得する。制御部１１は、当該取得した補正の状況情報が表す各振動体２５に対して送出する制御信号を、それぞれ当該補正の状況情報が表す、対応する補正の内容で補正する。
【００８６】
具体的に、ここでの異音発生条件の一例は、コントローラデバイス２０の姿勢の情報に基づく条件を含む。この例では、情報処理装置１０は、過去にメカあたりの異音が発生したときに、異音の発生源であったコントローラデバイス２０（補正により異音がおさまった振動体２５を備えるコントローラデバイス２０）の傾きセンサ２４１が検出していたＸ，Ｙ，Ｚ軸回りの回転角度（θ，φ，ψ）と、そのときに異音を発生させていた振動体２５を表す振動体識別情報とを関連付けて蓄積して記憶していく。
【００８７】
情報処理装置１０は、蓄積して記憶している情報を、情報に含まれる振動体識別情報ごとに、当該振動体識別情報に関連付けられたθ，φ，ψをそれぞれ例えば１度ごとのビンに分類して出現頻度を調べる（ヒストグラムの生成）。そして情報処理装置１０は、この振動体識別情報ごとの、θ，φ，ψのそれぞれの出現頻度のうち、所定の閾値（例えば蓄積して記憶している情報の数Ｎに対して、所定の比ｒを乗じた値）を上回る出現頻度となっているθ，φ，ψのビンをそれぞれ特定する。そして振動体識別情報ごとに特定されたθのビンと、φのビンと、ψのビンとを、当該振動体識別情報で識別される振動体２５にて異音の発生が予測される角度の情報（異音発生角度情報）として記憶しておく。
【００８８】
情報処理装置１０は、振動体２５を振動させる際に、そのときのコントローラデバイス２０の姿勢の情報として、傾きセンサ２４１が検出しているＸ，Ｙ，Ｚ軸回りの回転角度（θ，φ，ψ）を取得する。情報処理装置１０は、振動させようとする振動体２５の振動体識別情報に関連付けられた異音発生角度の情報の表すビンに、上記取得した回転角度θ，φ，ψが、それぞれ含まれるか否かを判断する。ここでθ，φ，ψのすべてが、それぞれ振動させようとする振動体２５の振動体識別情報に関連付けられた異音発生角度情報の表すビンに含まれると、情報処理装置１０は当該振動体識別情報で識別される振動体２５で異音が発生すると予測し、当該振動体２５への制御信号を、所定の方法で補正する。ここでは、異音発生条件がコントローラデバイス２０の姿勢（メカあたりの異音が発生する条件）としたので、この場合の補正は、上述のように、異音が発生すると予測された振動体２５の固有振動数近傍の周波数帯域を減衰させる補正とする。
【００８９】
また、異音発生条件は上記のものに限られず、握力センサ２４３が検出している、コントローラデバイス２０を握る握力としてもよい。この例では、コントローラデバイス２０の共振周波数がずれることが考えられるため、握力に応じていずれかの振動体２５の振動による異音が発生すると予測されるときには、当該振動体２５に対する制御信号である波形情報の振幅を減衰させる補正を行う。
【００９０】
本実施の形態の情報処理装置１０は、この予測による補正の処理を、既に説明した、一旦振動させてから補正するか否かを判断する処理と組み合わせて用いてもよい。
【００９１】
［振動状態の検出の別の例］
また、ここまでの説明において、異音の検出は、集音部１５において行うものとしていたが、本実施の形態はこれに限られない。例えば、加速度センサ２４２を用いて、振動体２５に対する制御信号である波形情報により、コントローラデバイス２０に対して与えられる振動とは異なる加速度が検出された場合（例えば定期的に衝撃が検出されるなどした場合）に、異音が生じていると判断してもよい。
【００９２】
［変形例］
また、ここまでの説明において、異音が発生しているか否かの判断や補正の処理動作は情報処理装置１０にて行うものとしていたが、本実施の形態はこれに限られない。すなわちコントローラデバイス２０がマイク等の集音手段を備える場合、コントローラデバイス２０の制御部２１が判断部４２としての動作を行ってもよい。この場合は、コントローラデバイス２０が当該判断の結果を情報処理装置１０に送出することとしてもよい。
【００９３】
つまり、本実施の形態では、情報処理装置１０またはコントローラデバイス２０のいずれかが、振動体の振動中に、周囲の音声を集音する集音手段と、集音された音声の信号を用い、コントローラデバイスにて異音が生じているか否かを判断する判断手段と、して機能する。
【００９４】
さらに、本実施の形態では、コントローラデバイス２０の制御部２１が、補正制御部４３，補正処理部４４としての動作を行ってもよい。
【００９５】
［補正制御の別の例］
なお、本実施の形態において、振動体２５が複数ある場合は、複数の振動体２５に対して補正の方法の組み合わせにより補正の試行を行い、もっとも異音が減衰する組み合わせを見いだすように制御してもよい。
【００９６】
このような補正の方法は、各振動体２５を順次選択しつつ、当該振動体２５の振動による異音が最も小さくなる補正方法を検出し、当該補正方法での補正を行うようにする（異音がなくならない場合も、試行した補正方法のうち、異音が最も小さくなる補正方法での補正を継続する）こととしていく方法などが考えられる。
【００９７】
また、過去の補正例により、異音発生条件や、発生している異音の特徴量（異音の振幅や発生場所の情報等）に応じた各振動体２５の補正の状況情報を機械学習しておき、当該機械学習の結果を用いて、検出した異音に対応するための各振動体２５の補正方法を定めてもよい。
【００９８】
［複数のコントローラデバイスがある場合］
さらに一人のユーザが利用するコントローラデバイス２０が複数ある場合には、次のような処理を行ってもよい。
【００９９】
すなわち、当該一人のユーザが利用する複数のコントローラデバイス２０ａ，ｂ…のうち、異音が生じているコントローラデバイス２０ａについて補正の試行を行った結果、異音の発生が抑えられなかった場合に、そのユーザが利用する他のコントローラデバイス２０ｂ…の少なくとも一部に対して出力する振動の指示に、本来コントローラデバイス２０ａに対して出力する振動の指示を含める。具体的に制御信号が、振動振幅の時間変化を表す波形情報であれば、コントローラデバイス２０ｂに対して出力する波形情報が表す波形Ｖb′（ｔ）を、本来コントローラデバイス２０ｂに対して出力する波形情報が表す波形Ｖb（ｔ）に、本来コントローラデバイス２０ａに対して出力する波形情報が表す波形Ｖa（ｔ）を合成して、Ｖb′（ｔ）＝Ｖb（ｔ）＋Ｖa（ｔ）とする。ここでｔは時間、Ｖ（ｔ）は波形の振幅を表すものとする。このとき、コントローラデバイス２０ａに対しては、波形情報の出力をしないよう制御する。
【０１００】
また別の方法として、異音の発生が抑えられなかったコントローラデバイス２０ａに対して出力する波形情報が表す波形Ｖa′（ｔ）を、本来コントローラデバイス２０ａに対して出力する波形情報が表す波形Ｖa（ｔ）を減衰させたものとし、（Ｖa′（ｔ）＝α・Ｖa（ｔ）（ただし、−１＜α＜１、ここでαが負である場合は、本来出力する波形の逆位相の波形を出力することに相当する）としてもよい。このときにも、コントローラデバイス２０ｂに対して出力する波形情報が表す波形Ｖb′（ｔ）は、本来コントローラデバイス２０ｂに対して出力する波形情報が表す波形Ｖb（ｔ）に、本来コントローラデバイス２０ａに対して出力する波形情報が表す波形Ｖa（ｔ）を合成して、Ｖb′（ｔ）＝Ｖb（ｔ）＋Ｖa（ｔ）としてもよいし、−１＜β＜１を用いて、Ｖb′（ｔ）＝Ｖb（ｔ）＋β・Ｖa（ｔ）としてもよい。ここで｜β｜＝１−｜α｜となるようにβを定めてもよい。なお、｜ｘ｜は、ｘの絶対値を意味する。
【０１０１】
［ユーザの指示による補正］
またここまでの説明では、異音の発生が検出されたときに、補正を試行するものとしているが、補正の試行の処理は、ユーザの明示的な指示によって行われてもよい。
【０１０２】
この場合、補正制御部４３は、ユーザの指示を受けて補正試行処理を開始し、予め定められた振動指示を用いてコントローラデバイス２０を振動させつつ、補正を試行する。この例では、ユーザに対してコントローラデバイス２０の把持方法を案内してもよい。具体的には、補正試行前に、「コントローラを水平に持ってください」との案内（画像や文字列）をユーザに示してもよい。
【０１０３】
またこの例では、補正制御部４３は、コントローラデバイス２０の種々の把持方法をユーザに案内しつつ、補正を試行する処理を繰り返し行ってもよい。このようにすると、例えばコントローラデバイス２０の姿勢に応じた異音の発生の状況と、異音を抑制可能な補正の方法とを学習できるようになる。
【０１０４】
［補正しない指示］
またユーザから予め補正を行うか否かの指示を受け入れておいてもよい。この場合、補正を行わない旨の指示があったときには、補正試行処理や補正処理を実行する制御部１１または制御部２１は、補正の試行処理や、補正の処理を行わないよう制御する。
【符号の説明】
【０１０５】
１０  情報処理装置、１１  制御部、１２  記憶部、１３  インタフェース部、１４  撮像部、１５  集音部、１６  出力部、２０  コントローラデバイス、２１  制御部、２２  記憶部、２３  操作インタフェース、２４  センサ部、２５  振動体、２６  通信部、４１  波形情報入力部、４２  判断部、４３  補正制御部、４４  補正処理部、４５  出力部、２１０  デバイス本体、２１１  把持部、２１２  操作部、２１３  位置提示部、２２０  固定具、２３１  ボタン操作部、２４１  傾きセンサ、２４２  加速度センサ、２４３  握力センサ。
【図１】
0006626992.tif 000002
【図２】
0006626992.tif 000003
【図３】
0006626992.tif 000004
【図４】
0006626992.tif 000005
【図５】
0006626992.tif 000006
【図６】
0006626992.tif 000007
【図７】
0006626992.tif 000008
【図８】
0006626992.tif 000009