特許第6799077号(P6799077)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社ソニー・コンピュータエンタテインメントの特許一覧

特許6799077情報処理システム、コントローラデバイス、コントローラデバイスの制御方法、及びプログラム
<>
  • 特許6799077-情報処理システム、コントローラデバイス、コントローラデバイスの制御方法、及びプログラム 図000002
  • 特許6799077-情報処理システム、コントローラデバイス、コントローラデバイスの制御方法、及びプログラム 図000003
  • 特許6799077-情報処理システム、コントローラデバイス、コントローラデバイスの制御方法、及びプログラム 図000004
  • 特許6799077-情報処理システム、コントローラデバイス、コントローラデバイスの制御方法、及びプログラム 図000005
  • 特許6799077-情報処理システム、コントローラデバイス、コントローラデバイスの制御方法、及びプログラム 図000006
  • 特許6799077-情報処理システム、コントローラデバイス、コントローラデバイスの制御方法、及びプログラム 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6799077
(24)【登録日】2020年11月24日
(45)【発行日】2020年12月9日
(54)【発明の名称】情報処理システム、コントローラデバイス、コントローラデバイスの制御方法、及びプログラム
(51)【国際特許分類】
   G06F 3/01 20060101AFI20201130BHJP
   A63F 13/285 20140101ALI20201130BHJP
   A63F 13/22 20140101ALI20201130BHJP
【FI】
   G06F3/01 514
   G06F3/01 560
   A63F13/285
   A63F13/22
【請求項の数】6
【全頁数】16
(21)【出願番号】特願2018-556628(P2018-556628)
(86)(22)【出願日】2017年12月7日
(86)【国際出願番号】JP2017044072
(87)【国際公開番号】WO2018110432
(87)【国際公開日】20180621
【審査請求日】2018年12月17日
(31)【優先権主張番号】特願2016-243639(P2016-243639)
(32)【優先日】2016年12月15日
(33)【優先権主張国】JP
(73)【特許権者】
【識別番号】310021766
【氏名又は名称】株式会社ソニー・インタラクティブエンタテインメント
(74)【代理人】
【識別番号】100122275
【弁理士】
【氏名又は名称】竹居 信利
(72)【発明者】
【氏名】中川 佑輔
(72)【発明者】
【氏名】山野 郁男
【審査官】 岩橋 龍太郎
(56)【参考文献】
【文献】 国際公開第2016/038953(WO,A1)
【文献】 特開2013−054645(JP,A)
【文献】 登録実用新案第3132531(JP,U)
【文献】 特開平08−084858(JP,A)
【文献】 特開2015−118605(JP,A)
【文献】 特表2014−528120(JP,A)
【文献】 国際公開第2017/043610(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01
G06F 3/033− 3/038
G06F 3/048− 3/0489
A63F 13/00−13/98
(57)【特許請求の範囲】
【請求項1】
ユーザの手に固定されるコントローラデバイスと、当該コントローラデバイスに接続され、コントローラデバイスとの間で情報の送受信を行う情報処理装置とを含む情報処理システムであって、
前記コントローラデバイスが、コントローラデバイスの筐体を振動させる振動子を備え、
前記振動子の振動強度と振動周波数とを表す情報を受け入れる受入手段と、
コントローラデバイスとユーザの手との接触状態に係る情報として、ユーザの指の屈伸の状態の情報を取得する指センサを含む取得手段と、
前記振動子を振動させる振動制御手段と、
を有し、
前記コントローラデバイスと情報処理装置とのいずれかが、前記コントローラデバイスの取得手段が取得した情報が表すユーザの指の屈伸の状態に応じて、振動強度を表す情報を補正するとともに、振動周波数を表す情報を補正する補正手段を備え、
前記ユーザの指の屈伸の状態の情報は、前記指センサからユーザの各指までの距離の情報であり、前記補正手段は、当該指センサからユーザの各指までの距離の情報を用い、指を曲げたときにもっとも前記振動子の取り付け位置に近い位置に接する指に対する重みwnと、それ以外の指に対する重みwdとを、0<wn<wdとなるように設定して重みづけ平均した情報を用いて、前記振動強度を表す情報を補正し、
前記コントローラデバイスの振動制御手段が、当該補正された情報で表される振動強度と振動周波数にて、前記振動子を振動させる情報処理システム。
【請求項2】
ユーザの手に固定されるコントローラデバイスであって、
コントローラデバイスの筐体を振動させる振動子を備え、
前記振動子の振動強度と振動周波数とを表す情報を受け入れる受入手段と、
コントローラデバイスとユーザの手との接触状態に係る情報として、ユーザの指の屈伸の状態の情報を取得する指センサを含む取得手段と、
前記取得手段が取得した情報が表すユーザの指の屈伸の状態に応じて、前記受け入れた振動強度を表す情報を補正するとともに、振動周波数を表す情報を補正する補正手段と、
当該補正された情報で表される振動強度と振動周波数にて、前記振動子を振動させる振動制御手段と、
を含み、
前記ユーザの指の屈伸の状態の情報は、前記指センサからユーザの各指までの距離の情報であり、前記補正手段は、当該指センサからユーザの各指までの距離の情報を用い、指を曲げたときにもっとも前記振動子の取り付け位置に近い位置に接する指に対する重みwnと、それ以外の指に対する重みwdとを、0<wn<wdとなるように設定して重みづけ平均した情報を用いて、前記振動強度を表す情報を補正するコントローラデバイス。
【請求項3】
請求項1に記載の情報処理システムであって、
前記補正手段は、前記重みづけ平均した情報Lの増大率r=(αL+1)(ただしαは正の比例定数)を用い、振動強度をr倍とするよう、前記振動強度を表す情報を補正する情報処理システム。
【請求項4】
ユーザの手に固定され、自身の筐体を振動させる振動子を備えたコントローラデバイスを用い、
受入手段が、前記振動子の振動強度と振動周波数とを表す情報を受け入れる工程と、
指センサを含む取得手段が、コントローラデバイスとユーザの手との接触状態に係る情報として、ユーザの指の屈伸の状態の情報を取得する工程と、
補正手段が、前記取得した情報が表すユーザの指の屈伸の状態に応じて、前記受け入れた振動強度を表す情報を補正するとともに、振動周波数を表す情報を補正する工程と、
振動制御手段が、当該補正された情報で表される振動強度と振動周波数にて、前記振動子を振動させる工程と、
を含み、
前記ユーザの指の屈伸の状態の情報は、前記指センサからユーザの各指までの距離の情報であり、前記補正手段は、当該指センサからユーザの各指までの距離の情報を用い、指を曲げたときにもっとも前記振動子の取り付け位置に近い位置に接する指に対する重みwnと、それ以外の指に対する重みwdとを、0<wn<wdとなるように設定して重みづけ平均した情報を用いて、前記振動強度を表す情報を補正するコントローラデバイスの制御方法。
【請求項5】
ユーザの手に固定され、コントローラデバイスの筐体を振動させる振動子と、指センサとを備えるコントローラデバイスを、
前記振動子の振動強度と振動周波数とを表す情報を受け入れる受入手段と、
コントローラデバイスとユーザの手との接触状態に係る情報として、前記指センサによりユーザの指の屈伸の状態の情報を取得する取得手段と、
前記取得手段が取得した情報に基づき、前記受け入れた振動強度を表す情報を補正するとともに、振動周波数を表す情報を補正する補正手段と、
当該補正された情報で表される振動強度と振動周波数にて、前記振動子を振動させる振動制御手段と、
として機能させ、
前記ユーザの指の屈伸の状態の情報は、前記指センサからユーザの各指までの距離の情報であり、
前記補正手段として機能させる際には、当該指センサからユーザの各指までの距離の情報を用い、指を曲げたときにもっとも前記振動子の取り付け位置に近い位置に接する指に対する重みwnと、それ以外の指に対する重みwdとを、0<wn<wdとなるように設定して重みづけ平均した情報を用いて、前記振動強度を表す情報を補正させるプログラム。
【請求項6】
ユーザの手に固定され、コントローラデバイスの筐体を振動させる振動子と、指センサとを備えるコントローラデバイスに接続された情報処理システムを、
前記振動子の振動強度を表す情報を受け入れる受入手段と、
前記コントローラデバイスとユーザの手との接触状態に係る情報として、前記指センサにより検出されるユーザの指の屈伸の状態の情報を取得する手段と、
前記取得した情報に基づき、前記受け入れた振動強度と振動周波数の少なくとも一方を表す情報を補正する補正手段と、
当該補正された情報で表される振動強度と振動周波数を、前記コントローラデバイスに出力する手段と、
として機能させ、
前記ユーザの指の屈伸の状態の情報は、前記指センサからユーザの各指までの距離の情報であり、
前記補正手段として機能させる際には、当該指センサからユーザの各指までの距離の情報を用い、指を曲げたときにもっとも前記振動子の取り付け位置に近い位置に接する指に対する重みwnと、それ以外の指に対する重みwdとを、0<wn<wdとなるように設定して重みづけ平均した情報を用いて、前記振動強度を表す情報を補正させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、コントローラデバイス、コントローラデバイスの制御方法、及びプログラムに関する。
【背景技術】
【0002】
家庭用ゲーム機等におけるコントローラデバイスは、ユーザが行ったボタン押下やデバイスを振る等の動作を検出して、ゲーム機等の本体に当該検出したユーザの動作を表す情報を送出している。従来、こうしたコントローラデバイスのうちには、手袋のようにユーザの手に装着して、指の動きを検出するものが知られている。
【発明の概要】
【発明が解決しようとする課題】
【0003】
また、こうしたコントローラデバイスでは、ユーザに対して振動をフィードバックする振動子を有しているものがある。このようなコントローラデバイスは、家庭用ゲーム機等の情報処理装置から入力される振動強度で、振動子を振動させる。
【0004】
しかしながら、コントローラデバイスの振動によりユーザが感じる振動は、ユーザの手とコントローラデバイスとの密着の度合いによって異なる。またコントローラデバイスを手に固定する方法によっては密着の度合いがプレイの度に異なる場合がある。このため、本来提示されるべき振動強度による体感と、ユーザが実際に体感する振動とが大きく異なってしまったり、同じ強度の振動であってもプレイごとに異なってしまったりといった事態が生じる。
【0005】
本発明は上記実情に鑑みて為されたもので、ユーザに対してより安定した体感を提示できるコントローラデバイス及びプログラムを提供することを、その目的の一つとする。
【課題を解決するための手段】
【0006】
上記従来例の問題点を解決する本発明の一態様は、ユーザの手に固定されるコントローラデバイスと、当該コントローラデバイスに接続され、コントローラデバイスとの間で情報の送受信を行う情報処理装置とを含む情報処理システムであって、前記コントローラデバイスが、コントローラデバイスの筐体を振動させる振動子を備え、前記振動子の振動強度と振動周波数との少なくとも一方を表す情報を受け入れる受入手段と、コントローラデバイスとユーザの手との接触状態に係る情報を取得する取得手段と、前記振動子を振動させる振動制御手段と、を有し、前記コントローラデバイスと情報処理装置とのいずれかが、前記コントローラデバイスの取得手段が取得した情報に基づき、振動強度と振動周波数との少なくとも一方を表す情報を補正する補正手段を備え、前記コントローラデバイスの振動制御手段が、当該補正された情報で表される振動強度と振動周波数にて、前記振動子を振動させることとしたものである。
【図面の簡単な説明】
【0007】
図1】本発明の実施の形態に係るコントローラデバイスの例を表す概要説明図である。
図2】本発明の実施の形態に係るコントローラデバイスの例を表す構成ブロック図である。
図3】本発明の実施の形態に係る情報処理システムの例を表す構成ブロック図である。
図4】本発明の実施の形態に係るコントローラデバイスの例を表す機能ブロック図である。
図5】本発明の実施の形態に係る情報処理システムが用いる補正のパラメータの例を表す説明図である。
図6】本発明の実施の形態に係る情報処理システムの動作例を表すフローチャート図である。
【発明を実施するための形態】
【0008】
本発明の実施の形態について図面を参照しながら説明する。なお、以下の説明において各部の大きさやその比、配置等は一例であり、本実施の形態の例は、図示等した大きさや比率、配置に限られるものではない。
【0009】
本発明の実施の形態に係る情報処理システムは、情報処理装置1とコントローラデバイス20とを含む。ここで情報処理装置1は、例えば家庭用ゲーム機等のコンピュータ機器であり、コントローラデバイス20は、この情報処理装置1に接続される。
【0010】
本発明の実施の形態に係るコントローラデバイス20は、ユーザの左手または右手に装着されて固定される。以下の説明において、ユーザの左手に固定されるコントローラデバイス20と、右手に固定されるコントローラデバイス20とを区別する必要がある場合は、ユーザの左手に固定されるコントローラデバイス20をコントローラデバイス20L、ユーザの右手に固定されるコントローラデバイス20をコントローラデバイス20RとそれぞれL,Rの符号を付して区別する。
【0011】
このコントローラデバイス20の一例は、図1にその概要を例示するように、デバイス本体210と、このデバイス本体210に固定された固定具220とを含んで構成される。また、このコントローラデバイス20は、図2に示すように、デバイス本体210内に、制御部21と、記憶部22と、操作インタフェース23と、センサ部24と、バイブレータ25と、通信部26とを含んだ回路部を備えて構成される。
【0012】
デバイス本体210は、ユーザの左手に装着されるものと、右手に装着されるものとで、いずれもその形状が同一となっていてもよい。本実施の形態の例では、固定具220は例えば可撓性あるベルトとバックルとを有し、ベルトとバックルとにより直径が調整可能な環状部を形成するものとする。そしてユーザは、この環状部に人差指から小指までを通し、デバイス本体210がユーザの親指の付根(人差指から小指のMP関節に相当する位置)に当接させた位置に固定されるように環状部の直径を適宜調整し、バックルで固定する。
【0013】
デバイス本体210は、ユーザにより把持される把持部211と、操作部212と、位置提示部213とを含む。把持部211は、本実施の形態の一例では実質的に多角形柱状をなしている。操作部212は、把持部211から連続して形成されており、図1の例では、ボタン操作部231を含む。またこのデバイス本体210の側面側(デバイス本体210の背面をユーザの手の平に当接させたときに指側に向いた面)には、後に説明するセンサ部24の指センサ241が設けられている。位置提示部213は、デバイス本体210の上側(ユーザの手に固定した際、親指側)背面に配され、例えばLED等の発光素子を少なくとも一つ含んで構成される。この位置提示部213は、コントローラデバイス20の動作中はコントローラデバイス20ごとに固有の、予め指定された色の光を発光するものとする。またこの位置提示部213は、コントローラデバイス20ごとに固有な色のマーカー等、各コントローラデバイス20の位置をそれぞれ外部から検出できればよく、必ずしも発光素子でなくてもよい。
【0014】
またこのコントローラデバイス20の大きさは、ユーザが自然にデバイス本体210を把持したときに、その一方端がユーザの親指の先端が到達する位置よりやや外側に位置し、その他方端が、小指の付け根(MP関節に相当する位置)からやや突出する位置にある程度の大きさとする。なおコントローラデバイス20は、コントローラデバイス20を装着した状態でユーザが手を開いても、固定具220によりユーザの手に固定されるので、落下することはない。
【0015】
本実施の形態の一例において、指センサ241は光学センサであり、赤外光を放射する発光部と、赤外光を検出する受光部とを有し、発光部から放射された光が対象物に反射して受光部に入射する割合を測定することで、障害物までの距離を検出する。この指センサ241の位置からデバイス本体210の側面側(デバイス本体210の背面をユーザの手の平に当接させたときに指側に向いた面)にある障害物までの距離を検出する。この例では、ユーザがデバイス本体210を手に固定し、指を伸ばした状態からデバイス本体210を握り込む形まで手を動かすと、指センサ241は指を伸ばした状態では、ユーザの指の先端の方向にある障害物(例えばユーザが指を下方に向けた状態であれば床面等)までの距離を検出することとなる。その後、ユーザの指が曲げられると、指の第2関節または第3関節の表面までの距離が検出され、ユーザがデバイス本体210を握り込んだ状態では、指センサ241に指の表面が接するため、この指センサ241が検出する距離は「0」となる。
【0016】
なお、この指センサ241は、少なくとも人差指から小指までのそれぞれに対応して設けられ、それぞれが障害物までの距離の情報を得てもよいし、人差指から小指までのうち一部の指(一つの指だけでもよい)に対応して設けられ、それぞれが障害物までの距離の情報を得るものであってもよい。さらに指センサ241は、5個以上備えられ、コントローラデバイス20の側面側(デバイス本体210の背面をユーザの手の平に当接させたときに指側に向いた面)に一列に配されていてもよい。またこの指センサ241は、所定のタイミングごとに繰り返して障害物までの距離を検出し、当該検出した距離の情報を出力するものとする。
【0017】
本実施の形態では、ここで制御部21は、CPU等のプログラム制御デバイスであり、記憶部22に格納されたプログラムに従って動作する。本実施の形態ではこの制御部21は、操作インタフェース23からユーザが操作部212においてした操作の内容を表す情報の入力を受け、当該情報を、通信部26を介して情報処理装置1へ出力する。またこの制御部21は、センサ部24に含まれるセンサが出力する情報を、通信部26を介して情報処理装置1へ出力する。
【0018】
記憶部22は、メモリデバイス等であり、制御部21によって実行されるプログラムを保持する。このプログラムは、コンピュータ可読かつ、非一時的な記憶媒体に格納されて提供され、この記憶部22に複写されたものであってもよい。またこの記憶部22は、制御部21のワークメモリとしても動作する。
【0019】
操作インタフェース23は、操作部212にてユーザが行った操作の内容を表す情報を制御部21に出力する。センサ部24は、少なくとも一つのセンサを含み、当該センサが出力する情報を制御部21に出力する。本実施の形態の一例では、このセンサ部24は、既に説明した指センサ241のほか、コントローラデバイス20のデバイス本体210の傾きを検出する傾きセンサ242や、コントローラデバイス20の動きを検出する加速度センサ243を含んでもよい。さらにこのセンサ部24は、複数の静電容量センサ245を含んでもよい。
【0020】
ここで傾きセンサ242は、デバイス本体210の長手方向の軸まわりの回転角の情報と、長手方向の軸の重力の向きに対する角度の情報とを検出して出力する。加速度センサ243は、コントローラデバイス20に加えられる各軸方向の加速度を検出し、当該検出の結果を出力する。なお、ここで加速度の方向は、コントローラデバイス20の長手方向をZ軸とし、このZ軸を法線とする面内で、ユーザの指が位置するべき方向をX軸、上記面内でX軸に直交する方向をY軸とするなどして予め定めておけばよい。
【0021】
バイブレータ25は、本発明の振動子に相当し、制御部21から振動周期と振動強度とを指示する信号の入力を受けて、当該指示された振動周期・振動強度にて振動する。通信部26は、USBインタフェース等の有線インタフェースや、ブルートゥース(登録商標)等の無線インタフェースであり、制御部21から入力される指示に従い、種々の情報を情報処理装置1に対して出力している。
【0022】
情報処理装置1は、図3に例示するように、制御部11と、記憶部12と、インタフェース部13と、撮像部14と、出力部15とを含んで構成されている。制御部11は、CPU等のプログラム制御デバイスであり、記憶部12に格納されたプログラムに従って動作する。
【0023】
記憶部12は、メモリデバイス等であり、制御部11によって実行されるプログラムを保持する。このプログラムは、コンピュータ可読かつ、非一時的な記憶媒体に格納されて提供され、この記憶部12に複写されたものであってもよい。またこの記憶部12は、制御部11のワークメモリとしても動作する。
【0024】
インタフェース部13は、コントローラデバイス20に無線又は有線にて接続され、コントローラデバイス20からユーザの操作の内容を表す情報や、指センサ241において検出した距離の情報(指センサ241が各指に対応して複数ある場合は、各指に対応する指センサ241が検出した複数の距離の情報)を受け入れ、制御部11に出力する。
【0025】
撮像部14は、ユーザの位置する範囲を撮像範囲として設置されたカメラ等であり、ユーザを含む画像を所定のタイミングごとに繰り返して撮像し、当該画像のデータを制御部11に出力する。
【0026】
出力部15は、例えばHDMI(登録商標)インタフェース等、家庭用テレビジョンに対して映像等を出力するインタフェースを有する。この出力部15は、制御部11から入力される指示に従い、表示するべき映像の情報を出力する。
【0027】
本実施の形態の一例では、コントローラデバイス20の制御部21が、情報処理装置1から振動子の振動強度を表す情報を受け入れる。またこの制御部21は、コントローラデバイス20とユーザの手との接触状態に係る情報を取得する。そして制御部21は、当該取得した情報に基づき、受け入れた振動強度を表す情報を補正する。制御部21は、ここで補正された情報で表される振動強度にて、振動子であるバイブレータ25を振動させる。
【0028】
ここでコントローラデバイス20とユーザの手との接触状態に係る情報には、コントローラデバイス20とユーザの手との接触面積に係る情報や、ユーザの手がコントローラデバイス20に対して加える圧力の情報等が含まれる。
【0029】
この例の制御部21は、機能的には、図4に例示するように、受入部41と、取得部42と、補正部43と、振動制御部44とを含んで構成される。
【0030】
受入部41は、情報処理装置1から振動子の振動強度と振動周波数とを表す情報を受け入れる。この振動強度と振動周波数とを表す情報は、具体的には、振動振幅の時間tに対する変化を表す波形情報v(t)であり、音声信号と同様のものでよい。もっとも、本実施の形態においてこの振動強度や振動周波数を表す情報は、波形情報に限られず、振動強度を指定する数値の情報や、振動周波数を指定する数値の情報であってもよい。
【0031】
取得部42は、コントローラデバイス20とユーザの手との接触面積に係る情報を取得する。本実施の形態の一例に係る取得部42は、ユーザの指の屈伸の状態を、コントローラデバイス20とユーザの手との接触面積に係る情報として取得する。すなわち、この取得部42は、指センサ241が検出するデバイス本体210の表面から各指までの距離の情報に基づいて、ユーザの指が曲げられてデバイス本体210の表面に触れている(コントローラデバイス20を握っている)か、ユーザの指が伸ばされて、デバイス本体210の表面から離れているかを表す情報を取得する。
【0032】
具体的に、取得部42は、ある指までの距離が「0」または予め定めた値より小さい場合に、当該指が曲げられてデバイス本体210の表面に触れている(コントローラデバイス20を握っている)と判断する。また、取得部42は、ある指までの距離が予め定めた値より大きい場合に、当該指が伸ばされてデバイス本体210の表面から離れていると判断する。
【0033】
補正部43は、取得部42が取得した情報に基づき、受入部41が受け入れた振動強度または振動周波数の少なくとも一方を表す情報を補正する。以下の例では、説明を簡単にするため、振動強度を補正する例について述べる。例えば、この補正部43は、ユーザの指が伸びているほど振動強度を強めるよう補正する。具体的に、この補正部43は、取得部42により、伸ばされてデバイス本体210の表面に触れていない(コントローラデバイス20を握っていない)と判断された指の数に基づき、次のように振動強度を補正する。
【0034】
すなわち補正部43は、予め設定され、記憶部22に格納されている補正率の情報を参照する。この補正率の情報は、例えば、図5に例示するように、伸ばされて、デバイス本体210の表面に触れていない指の数(n=0,1,2…)と、振動強度の補正率r(n)とを関連付けたものである。補正部43は、取得部42が取得した情報により、伸ばされてデバイス本体210の表面に触れていない指の数がnであったときには、この数nに関連付けられている補正率r(n)を用いて次のように演算する。すなわち補正部43は、受入部41が受け入れた情報が表す波形情報v(t)に対する補正後の波形情報V(t)を、V(t)=r(n)×v(t)として得て出力する。この補正はつまり、波形情報v(t)の振幅をr(n)倍することに相当する。
【0035】
ここで予め設定された補正率r(n)が振動強度の低減率(つまり0<r(n)≦1)であるときは、N>nなるN,nについて、r(N)<r(n)としておく。これにより、伸ばされてデバイス本体210の表面に触れていない指が多いほど、つまり、ユーザの指が伸びているほど振動強度の低減率が小さくなり、ユーザの指が伸びているほど振動強度を強めるよう補正されることとなる。また予め設定された補正率r(n)が振動強度の増大率(つまりr(n)≧1)であるときは、N>nなるN,nについて、r(N)>r(n)としておく。これにより、伸ばされてデバイス本体210の表面に触れていない指が多いほど、つまり、ユーザの指が伸びているほど振動強度の増大率が大きくなり、ユーザの指が伸びているほど振動強度を強めるよう補正されることとなる。
【0036】
振動制御部44は、補正部43から補正された情報で表される波形情報V(t)の入力を受け入れて、当該補正後の波形情報V(t)にて、振動子であるバイブレータ25を振動させる。このような、波形情報に基づいてバイブレータ等の振動子を振動させる制御の方法は、広く知られているので、ここでの詳しい説明を省略する。なお、波形情報ではなく、振動強度や振動周波数の情報が入力されるときには、この振動制御部44は、当該入力された情報によって表される振動強度に比例する振幅で、入力された情報によって表される振動周波数に比例する周波数にて、振動子を振動させる。なお、いずれか一方の入力がない場合は、予めデフォルトとして定められた振動強度、または振動周波数で振動子を振動させることとしておけばよい。
【0037】
また、本実施の形態の一例において補正部43は、上述のように、伸ばされてデバイス本体210の表面に触れていない指の数に応じて振動強度を補正する場合に代えて、指センサ241が検出した指までの距離の値に応じて振動強度を補正してもよい。
【0038】
例えば補正部43は、人差指、中指、薬指、小指の各指に対応する指センサ241が検出したそれぞれの指までの距離Li(iは、人差指、中指、薬指、小指に対応するインデックスであり、i=1,2,3,4)を用い、これらの平均などの統計値Lに応じて、次のように振動強度を補正してもよい。すなわち、補正部43は、距離に係る統計値Lが大きいほど、つまりユーザの指が伸びているほど振動強度を強めるよう補正する。一例として、統計値Lを用いた増大率r=(αL+1)を用い、受入部41が受け入れた情報が表す振動強度v(t)に対する補正後の振動強度V(t)を、V(t)=r×v(t)として得て、出力する。この補正はつまり、振幅をr=(αL+1)倍することに相当する。なお、ここでαは正の比例定数であり、実験的に定めることとすればよい。
【0039】
また、この統計値Lは重みづけ平均であってもよい。例えば補正部43は、振動子の取り付け位置により、指を曲げたときにもっとも振動子の取り付け位置に近い位置に接する指に対する重みwnと、そうでない指に対する重みwdとで、0<wn<wdとなるように設定した重みを用いて、指を曲げたときにもっとも振動子の取り付け位置に近い位置に接する指までの距離Lnと、それ以外の指までの距離Ld1,Ld2,Ld3とを用い、L=(wn×Ln+wd×(Ld1+Ld2+Ld3))/(wn+3wd)として演算してもよい。
【0040】
また、補正部43は人差指、中指、薬指、小指の各指について、それぞれの指を曲げたときに触れるデバイス本体210の表面上の位置と、振動子の位置との距離に応じて、この距離が大きいほど大きい値となるように設定された重みwi(このiも、人差指、中指、薬指、小指に対応するインデックスであり、i=1,2,3,4とする)を用い、L=Σ(wi×Li)/Σwiとしてもよい。ここでΣは、iを1から4まで変化させたときの総和を意味する。
【0041】
さらに本実施の形態の別の例では、コントローラデバイス20とユーザの手との接触面積に係る情報として、指センサ241が検出した指までの距離の値に基づく情報に代えて、またはこれとともに、コントローラデバイス20と手との密着の度合いや圧力に関する情報を用いてもよい。この情報を用いるのは、すべての指が伸ばされた状態であっても、ユーザの手の平との接触面積が大きい場合と小さい場合とでユーザの振動の感じ方が異なることを考慮したものである。
【0042】
一例として、取得部42は、コントローラデバイス20とユーザの手との接触面積に係る情報(の少なくとも一部)として、振動子を振動している間に、コントローラデバイス20自体がどれだけ振動するか(つまり、加速度センサ243がどれだけの振動を検出するか)を調べる。例えば取得部42は、振動制御部44が振動子としてのバイブレータ25を振動制御している間に、加速度センサ243が検出する加速度の大きさの情報A(X,Y,Zの各軸ごとの加速度Ax,Ay,Azを合成した合成加速度の情報、例えばA=√(Ax2+Ay2+Az2)とする)を用いて次の演算を行う。すなわち取得部42は、ここで求めた加速度の大きさの情報A(なお、この加速度の大きさAは、時間τとともに変動するので以下ではA(τ)と表す)の、振動制御に用いた補正後の振動強度V(τ)に対する割合E(τ)=A(τ)/V(τ)を求める。このとき、デバイス本体210の振動がユーザの手によって押さえられているほど、この割合E(τ)は小さくなるため、この割合E(τ)が小さいほど、コントローラデバイス20とユーザの手との密着の度合いが大きく、この割合E(τ)が大きいほど、コントローラデバイス20とユーザの手との密着の度合いが小さいと推定できる。
【0043】
そこで取得部42は、この割合E(τ)に基づく情報を、コントローラデバイス20とユーザの手との接触面積に係る情報(の少なくとも一部)として出力する。例えばこの割合E(τ)を振動中の時間全体で積分して(所定のタイミングごとのE(τ)の値を総和するなどして近似的に積分の結果を得て)、その結果の情報εを出力する。この積分の結果εにおいても、この値εが小さいほど、コントローラデバイス20とユーザの手との密着の度合いが大きく、この値εが大きいほど、コントローラデバイス20とユーザの手との密着の度合いが小さいと推定できる。
【0044】
なお、取得部42は、ユーザの指の屈伸の状態も、コントローラデバイス20とユーザの手との接触面積に係る情報として取得して、この割合に係る情報εとともに出力してもよい。
【0045】
この例では補正部43は、取得部42が出力する割合に係る情報εが大きいほど(つまり、コントローラデバイス20とユーザの手との密着の度合いが小さいと推定されるほど)、受入部41が受け入れた情報が表す振動強度v(t)を、強めるよう補正する。
【0046】
一例として補正部43は、割合に係る情報εを用いて、1より大きい値βを生成し(例えばβ=γ×(1+ε)とすればよい。ここでγは1より大きい値であり実験的に定めればよい)、受入部41が受け入れた情報が表す波形情報v(t)に対する補正後の波形情報V(t)を、V(t)=β×v(t)として得て出力する。この補正はつまり、振幅をβ倍することに相当する。
【0047】
なお、補正部43は、取得部42が上記割合に係る情報εとともに、指の屈伸の状態を表す情報も出力しているときには、この指の屈伸の状態を表す情報に基づいて得られた補正のパラメータ(上述のr(n)またはr)を併せて用い、受入部41が受け入れた情報が表す波形情報v(t)に対する補正後の波形情報V(t)を、V(t)=β×r(n)×v(t)またはV(t)=β×r×v(t)として得て、出力してもよい。
【0048】
さらに、別の例では、この補正部43は、取得部42が出力する割合E(τ)またはεが、予め定めたしきい値を超える(または下回る)場合に、波形情報v(t)を補正してもよい。この場合の補正率は、割合E(τ)やεによらず、予め定めたβ′を用いて、V(t)=β′×v(t)とすることとしてもよい。
【0049】
[動作]
本発明の実施の形態に係る情報処理システムは以上の構成を備えており、次のように動作する。本実施の形態の情報処理システムでは、図6に例示するように、情報処理装置1が、ゲームプログラム等のアプリケーションプログラムの指示に従って、コントローラデバイス20に対し、振動を提示する指示を出力する(S1)。この指示は例えば振動強度(振動振幅)の時間tに対する変化を表す波形情報v(t)として出力される。
【0050】
コントローラデバイス20は、情報処理装置1から振動強度を表す情報を受け入れる。またコントローラデバイス20は、コントローラデバイス20自身とユーザの手との接触面積に係る情報を取得する(S2)。具体的に本実施の形態の一例では、コントローラデバイス20は、指センサ241が検出するデバイス本体210の表面から各指までの距離の情報に基づいて、ユーザの指が曲げられてデバイス本体210の表面に触れている(コントローラデバイス20を握っている)か、ユーザの指が伸ばされて、デバイス本体210の表面から離れているかを表す情報を取得する。
【0051】
そしてコントローラデバイス20は、人差指、中指、薬指、小指の各指に対応する指センサ241が検出したそれぞれの指までの距離Li(iは、人差指、中指、薬指、小指に対応するインデックスであり、i=1,2,3,4)を用い、これらの平均Lを求める。
【0052】
コントローラデバイス20は、ここで求めた統計値である平均Lを用いて増大率r=(αL+1)とする。コントローラデバイス20は、情報処理装置1から受け入れた情報が表す波形情報v(t)に、この増大率を乗じて(振動強度である振幅を増大率rだけ振幅を増大させて)、補正後の波形情報V(t)を得る(S3)。
【0053】
コントローラデバイス20は、ここで得た補正後の波形情報V(t)に基づいて、振動子であるバイブレータ25を振動させる(S4)。
【0054】
この例によると、ユーザの指が伸びているほど距離に係る統計値Lが大きくなり、振動強度が強めに補正される。このため、情報処理装置1から入力される振動の指示が同じであっても、ユーザがコントローラデバイス20を握っている(コントローラデバイス20のデバイス本体210にユーザの手がより密接に接触している)ときよりも、ユーザがコントローラデバイス20から指を放しているときのほうが、振幅が大きく補正された状態で振動が提示されることとなる。こうしてユーザの指がデバイス本体210から離れているか否かに関わらず、同等の振動体験がユーザに提示されることとなる。
【0055】
また本実施の形態の例では、コントローラデバイス20は、振動子としてのバイブレータ25を振動させている間に、加速度センサ243が検出する加速度の大きさの情報Aを得る。そしてコントローラデバイス20は、指示した振動(補正後の振動強度)に対するこの加速度の大きさAの割合の平均(振動中の平均)εを求める。
【0056】
このεは、その値が小さいほど、コントローラデバイス20とユーザの手との密着の度合いが大きく、εの値が大きいほど、コントローラデバイス20とユーザの手との密着の度合いが小さいと推定できる。
【0057】
コントローラデバイス20は、上記εの値を求めた後、当該εの値が大きいほど(つまり、コントローラデバイス20とユーザの手との密着の度合いが小さいと推定されるほど)、情報処理装置1から入力される振動強度v(t)を、強めるよう補正する。例えば、コントローラデバイス20は、上記の割合に係る情報εを用いて、β=γ×(1+ε)などのようにして、1より大きい値βを生成する。
【0058】
そして、コントローラデバイス20は、情報処理装置1から波形情報v(t)を表す情報を受け入れると、指の屈伸の状態を表す情報に基づいて得られた補正のパラメータrと、ここで生成したβとを用い、受け入れた情報が表す波形情報v(t)に対する補正後の波形情報V(t)を、V(t)=β×r×v(t)として得る。
【0059】
そしてコントローラデバイス20は、ここで得た補正後の波形情報V(t)に基づいて、振動子であるバイブレータ25を振動させる。
【0060】
本実施の形態の例によると、ユーザの手とコントローラデバイス20との接触面積が小さいほど、入力された振動強度を強くなるように(振幅が増大されるように)制御される。また、ユーザの手とコントローラデバイス20との接触面積が大きいほど、入力された振動強度が弱くなるように(振幅を減衰させるように)制御される。
【0061】
[情報処理装置において補正を行う例]
また、ここまでの説明においては、コントローラデバイス20が情報処理装置1から受け入れた振動強度や振動周波数の情報を補正することとしていたが、振動強度や振動周波数の補正は情報処理装置1側において行っても構わない。この場合、情報処理装置1の制御部11が、受入部41、取得部42、及び補正部43としての動作を行うこととなる。
【0062】
すなわちこの例では、制御部11が実現する受入部41は、アプリケーションプログラムからコントローラデバイス20を振動させる指示を受け入れる。この場合も、振動強度や振動周波数を表す情報は、具体的には、振動強度(振動振幅)や振動周波数の時間tに対する変化を表す波形情報v(t)であり、音声信号と同様のものである。
【0063】
制御部11の取得部42は、コントローラデバイス20とユーザの手との接触面積に係る情報を取得する。この例では、制御部11は、コントローラデバイス20から、ユーザの指の屈伸の状態を表す情報(例えば伸ばされている指の数や、各指までの距離の情報等)を受け入れる。
【0064】
制御部11の補正部43は、取得部42が取得した情報に基づき、受入部41が受け入れた振動強度や振動周波数を表す情報を補正する。この補正部43の動作は、コントローラデバイス20の制御部21により補正部43が実現される場合の動作と同様である。制御部11は、この補正部43にて補正して得られた振動強度や振動周波数の情報(補正した波形情報V(t))を、コントローラデバイス20へ出力する。
【0065】
そしてコントローラデバイス20が、補正後の波形情報V(t)を情報処理装置1から受信して、当該受信した補正後の波形情報V(t)に基づいて、振動子であるバイブレータ25を振動させる。
【0066】
また、この例のように振動強度や振動周波数の補正を情報処理装置1側において行う場合、情報処理装置1は、ゲームプログラム等のアプリケーションプログラムの処理として当該補正の処理を実行してもよい。この場合、コントローラデバイス20から取得した、コントローラデバイス20とユーザの手との接触面積に係る情報に基づき、振動強度や振動周波数の情報を補正する処理がゲーム等の処理として行われることとなる。このため、ゲームの内容に応じた補正を実行することが可能となる。
【0067】
[カメラで情報を取得する例]
なお、このように情報処理装置1にて補正を行う場合に、ユーザの手との接触面積に係る情報(ユーザの指の屈伸に関する情報等)は、コントローラデバイス20から受信することとしてもよいが、これに代えて、撮像部14にて撮像したユーザの画像から手の位置を検出し、その形状等を認識する処理を実行して、ユーザの指が伸びているか否かを判断することとしてもよい。
【0068】
一例としてユーザの画像から検出された手の部分の肌色部分に外接する矩形の面積を求め、この面積が予め定めた閾値を超える場合に、ユーザの指が伸びているとしてアプリケーションプログラムから指示された波形情報v(t)の振動強度を強める(振幅を増大させる)補正を行ってもよい。または、上記面積が予め定めた閾値を下回る場合に、ユーザの指が曲げられているとして、アプリケーションプログラムから指示された波形情報v(t)の振動強度を弱める(振幅を減衰させる)補正を行ってもよい。
【0069】
[ベルトの長さを使う例]
また、ここまでの説明ではコントローラデバイス20が、コントローラデバイス20自身と、ユーザの手との密着の度合いを表す情報として、振動子を振動している間に、コントローラデバイス20自体がどれだけ振動するか(つまり、加速度センサ243がどれだけの振動を検出するか)を調べることとしていたが、本実施の形態はこれに限られない。
【0070】
具体的にこの密着の度合いを表す情報は、固定具220の環状部の直径(あるいは環状部のベルトの周長やバックルの固定位置)を表すものであってもよい。例えばコントローラデバイス20は、ベルト全体の長さとバックルの固定位置とから、環状部のベルトの周長を求めて密着の度合いを表す情報としてもよい。この例では、コントローラデバイス20は、当該情報を情報処理装置1へ送出する。
【0071】
情報処理装置1では、ユーザを認証しておく。また情報処理装置1は、当該認証したユーザについて、コントローラデバイス20から過去p回(例えばp=5などと予め定めておく)に亘って受信した環状部のベルトの周長等の密着度合いの情報を記憶しておく。情報処理装置1は、過去p回に亘って受信した密着度合いの情報の平均値AVと、今回コントローラデバイス20から受信した密着の度合いを表す情報Cとの比C/AVを得る。なお、過去p回分の情報が記憶されていない場合は、一般的なユーザの平均値を予め記憶部12に格納しておき、この一般的なユーザの平均値を平均値AVとしてもよい。
【0072】
ここで、密着度合いの情報を、環状部のベルトの周長とし、比C/AVを用いる場合は、この値が1を超えて大きいほど、密着度合いは低い(締めつけが緩い)こととなる。そこで、情報処理装置1またはコントローラデバイス20は、この比の値C/AVを用いて、受け入れた情報が表す波形情報v(t)に対する補正後の波形情報V(t)を、V(t)=C/AV×v(t)と補正する。
【0073】
なお、指の屈伸に基づく情報r(n)またはrが得られている場合は、情報処理装置1またはコントローラデバイス20は、受け入れた情報が表す波形情報v(t)に対する補正後の波形情報V(t)を、V(t)=C/AV×r(n)×v(t)またはV(t)=C/AV×r×v(t)とする。
【0074】
[静電容量センサを用いる例]
さらに、本実施の形態の例では、指の屈伸状態や、ベルトの締めつけの度合い(環状部のベルトの周長等)、あるいは振動子を振動させているときのコントローラデバイス20自身の振動の強さにより、ユーザの手とコントローラデバイス20との接触面積に係る情報を得ていたが、本実施の形態はこれに限られない。
【0075】
例えば本実施の形態の別の例では、コントローラデバイス20のデバイス本体210表面であって、ユーザの手が接触し得る範囲に亘って、複数の静電容量センサ245を配してもよい。この場合、各静電容量センサ245の出力により、ユーザの手とデバイス本体210との接触面積Qと、密着の度合い(ユーザの手がどの程度の強さでデバイス本体210表面を押圧しているか)Fとがより直接的に検出できる。
【0076】
この場合も、予め基準となる接触面積Qavと、密着度合いFavと(実験的に、平均的な接触面積と密着度合いとを得ておけばよい)に対して、ここで検出した接触面積Qと密着度合いFとの比、Q/Qav及びF/Favを求め、情報処理装置1またはコントローラデバイス20が、受け入れた情報が表す波形情報v(t)に対する補正後の波形情報V(t)を、V(t)=Q/Qav×F/Fav×v(t)とすればよい。
【0077】
これにより、上記検出により取得した情報が表す接触面積が小さいほど、振動強度が強めるよう補正されることとなる。
【0078】
[他の補正態様の例]
なお、ここまでの例ではコントローラデバイス20とユーザの手との接触面積が小さいほど、振動強度を強める補正を行うものとしたが、本実施の形態はこれに限られず、コントローラデバイス20とユーザの手との接触面積が小さいほど振動強度を弱めるよう補正してもよい。これはユーザの手との接触面積があまりにも小さい場合には、振動させても演出効果が低いと考えられるからである。
【0079】
また、コントローラデバイス20とユーザの手との接触面積の大小に応じて単調に(大きいほど振動強度を強める、あるいは大きいほど振動強度を弱めるというように単調に)補正するのではなく、接触面積に応じた補正率の大きさを接触面積の関数として設定しておき、当該設定に基づいて補正率を定めても構わない。例えば、コントローラデバイス20とユーザの手との接触面積が所定のしきい値未満のときには、当該しきい値より接触面積が小さいほど振動強度を弱める補正を行い、接触面積が当該しきい値を超える場合は、当該しきい値より接触面積が大きいほど、振動強度を弱める補正を行うようにしてもよい。この例では、接触面積がしきい値に等しい場合には指示された波形情報v(t)に基づく振動が提示され、当該しきい値から離れるほど、波形情報v(t)より減衰された振動が提示されることとなる。
【0080】
[振動周波数の補正]
なお、ここまでの例では、波形情報v(t)のうち、振動強度に対応する振幅を増幅または減衰させる例について説明してきたが、本実施の形態はこれに限られない。例えば、これまでの説明で波形情報の振幅を補正するとしていたのに代えて、または振幅を補正するときに、振幅の補正とともに、振動周波数を高める、あるいは低くする補正してもよい。
【0081】
なお、与えられた波形情報v(t)の振動振幅を変化させる補正は、ピッチ変更等の広く知られた処理によって実現できるため、補正方法に関する詳しい説明は省略する。また振動強度と振動周波数との双方を補正してもよい。
【0082】
[圧力センサの例]
さらに、本実施の形態の一例では、コントローラデバイス20が圧力センサを備えて、コントローラデバイス20とユーザの手との密着度合いの情報の一つとして、ユーザの手からコントローラデバイス20に加えられる圧力(コントローラデバイス20を握る力)を検出してもよい。このような圧力センサは広く知られた種々のものが利用できるので、ここでの詳しい説明を省略する。
【0083】
本実施の形態において圧力センサを用いる場合は、圧力センサが検出したユーザの手からコントローラデバイス20に加えられる圧力が予め定めたしきい値を超える場合に、情報処理装置1またはコントローラデバイス20の制御部21が波形情報等、振動強度や振動周波数を補正することとしてもよい。
【0084】
また、圧力センサが検出したユーザの手からコントローラデバイス20に加えられる圧力が予め定めたしきい値を下回る場合に、情報処理装置1またはコントローラデバイス20の制御部21が波形情報等、振動強度や振動周波数を補正することとしてもよい。
【0085】
さらに、圧力センサが検出したユーザの手からコントローラデバイス20に加えられる圧力の値に応じた補正率で、情報処理装置1またはコントローラデバイス20の制御部21が波形情報等、振動強度や振動周波数を補正することとしてもよい。
【0086】
[実施例の効果]
このように本実施の形態によると、ユーザの手とコントローラデバイス20との間の接触面積が変動しても、それに応じて振動の強度が補正されるので、ユーザに対してより安定した体感を提示できる。
【符号の説明】
【0087】
1 情報処理装置、11 制御部、12 記憶部、13 インタフェース部、14 撮像部、15 出力部、20 コントローラデバイス、21 制御部、22 記憶部、23 操作インタフェース、24 センサ部、25 バイブレータ、26 通信部、41 受入部、42 取得部、43 補正部、44 振動制御部、210 デバイス本体、211 把持部、212 操作部、213 位置提示部、220 固定具、231 ボタン操作部、241 指センサ、242 傾きセンサ、243 加速度センサ、245 静電容量センサ。
図1
図2
図3
図4
図5
図6