(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-07
(45)【発行日】2024-10-16
(54)【発明の名称】情報処理システム、コントローラ、情報処理方法、情報処理プログラム
(51)【国際特許分類】
G06F 3/0338 20130101AFI20241008BHJP
【FI】
G06F3/0338 411
(21)【出願番号】P 2022563318
(86)(22)【出願日】2020-11-18
(86)【国際出願番号】 JP2020043070
(87)【国際公開番号】W WO2022107258
(87)【国際公開日】2022-05-27
【審査請求日】2023-08-07
(73)【特許権者】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】110001276
【氏名又は名称】弁理士法人小笠原特許事務所
(74)【代理人】
【識別番号】100130269
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】青木 孝文
(72)【発明者】
【氏名】岡村 考師
【審査官】田中 洋行
(56)【参考文献】
【文献】特開2020-035376(JP,A)
【文献】特開2017-167603(JP,A)
【文献】特開2017-111464(JP,A)
【文献】特開2014-174726(JP,A)
【文献】米国特許出願公開第2020/0257369(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/033-3/039
A63F 9/24
A63F 13/00-13/98
(57)【特許請求の範囲】
【請求項1】
ユーザ操作によって初期位置から変位される操作子と、
前記変位した操作子の位置を前記初期位置に戻す復帰力を加える復帰力付加手段と、
磁場の強度に応じて粘性が変化し、前記操作子が前記初期位置からおよび前記初期位置へ変位する際の抵抗となる磁気粘性流体を用いた抵抗部と、
前記磁気粘性流体に対して磁場を与える磁場発生部とを備えるコントローラと、
前記磁場発生部を制御可能な回路と、を備える情報処理システムであって、
前記回路は、前記磁気粘性流体の粘度が少なくとも、第1粘性状態と、当該第1粘性状態よりも低粘性であって、前記復帰力によって前記操作子が当該初期位置に戻る大きさの粘度である第2粘性状態との間で周期的に変化するよう前記磁場発生部の磁場の強度を制御する、情報処理システム。
【請求項2】
前記回路は、各周期において、前記第2粘性状態である期間が第1の所定期間以上の期間となるように制御する、請求項1に記載の情報処理システム。
【請求項3】
前記回路は、各周期において、前記第2粘性状態である期間が前記第1粘性状態である期間よりも長くなるように制御する、請求項1または2に記載の情報処理システム。
【請求項4】
前記第1粘性状態は、その粘度が、前記復帰力付加手段による復帰力によって前記操作子が前記初期位置に戻らない大きさである、請求項1乃至3のいずれかに記載の情報処理システム。
【請求項5】
前記情報処理システムは、情報処理装置をさらに備え、
前記回路は、少なくとも前記コントローラ内に設けられ、前記情報処理装置において実行される所定のアプリケーションからの指定に基づいて前記磁場発生部が発生する磁場の強度を制御する、請求項1乃至4のいずれかに記載の情報処理システム。
【請求項6】
前記情報処理システムは、前記第1粘性状態と前記第2粘性状態とが実現される粘性情報をプリセットとして所定の記憶部に予め記憶しており、
前記回路は、前記情報処理システムにおいて実行される所定のアプリケーションからのプリセットの指定に応じて、当該指定されたプリセットに対応する粘性情報に基づいて前記磁場の強度を制御する、請求項1または2に記載の情報処理システム。
【請求項7】
前記コントローラは、前記プリセットが少なくとも1つ含まれるプリセットライブラリを記憶するライブラリ記憶部を含み、
前記回路は、前記コントローラに、前記情報処理
システムにおいて実行される所定のアプリケーションからの前記プリセットの指定に基づいて前記プリセットライブラリから粘性情報を取得させ、当該取得した粘性情報に基づいて前記磁場の強度を制御させる、請求項6に記載の情報処理システム。
【請求項8】
前記回路は、前記コントローラに、前記所定のアプリケーションからの前記プリセットの指定、および、前記操作子の位置を示す位置情報とに基づいて前記プリセットライブラリから粘性情報を取得させ、当該取得した粘性情報に基づいて前記磁場の強度を制御させる、請求項7に記載の情報処理システム。
【請求項9】
前記回路は、前記操作子の位置およびまたは位置の変化速度の情報を取得し、当該情報に応じて、前記プリセットライブラリから取得した前記粘性情報を補正し、当該補正後の粘性情報に基づいて前記磁場の強度を制御させる、請求項8に記載の情報処理システム。
【請求項10】
前記回路は前記コントローラに設けられる、請求項7に記載の情報処理システム。
【請求項11】
前記回路は、前記所定のアプリケーションからの指定がない場合であっても、最後に指定されたプリセットに対応する粘性情報に基づいて前記磁場の強度を制御し続ける、請求項10に記載の情報処理システム。
【請求項12】
前記回路は、アプリケーションの状態に基づくが前記操作子の位置には基づかない粘性制御である第1の粘性制御と、前記操作子の位置に基づいた粘性制御である第2の粘性制御との間で制御を切り替え可能である、請求項7に記載の情報処理システム。
【請求項13】
前記回路は、
前記第1の粘性制御を行う場合は、前記所定のアプリケーションから出力された粘性情報に基づいて前記磁場の強度を制御し、
前記第2の粘性制御を行う場合は、前記コントローラに、前記所定のアプリケーションからの前記プリセットの指定、および、前記操作子の位置を示す位置情報とに基づいて前記プリセットライブラリから粘性情報を取得させ、当該取得した粘性情報に基づいて前記磁場の強度を制御させる、請求項12に記載の情報処理システム。
【請求項14】
前記回路は、
所定のアプリケーションから出力された、前記磁気粘性流体の粘性の状態を指定する粘性指定情報を取得し、
当該粘性指定情報に基づいて、前記第1粘性状態または第2粘性状態が実現されるような粘性情報を生成し、
当該生成した粘性情報に基づいて前記磁場の強度を制御する、請求項1または2に記載の情報処理システム。
【請求項15】
前記情報処理システムは、前記復帰力に関するパラメータである復帰力パラメータを取得する復帰力パラメータ取得手段を更に備え、
前記回路は、前記取得した復帰力パラメータに応じて、前記第1粘性状態を実現する粘性情報および/または前記第2粘性状態を実現する粘性情報を調整する、または、当該復帰力パラメータに応じて、当該第1粘性状態および/または第2粘性状態である期間を制御する、請求項1乃至14のいずれかに記載の情報処理システム。
【請求項16】
前記回路は、前記復帰力が小さいときには当該復帰力が大きいときよりも、前記第1粘性状態における粘性をより低くする制御、前記第1粘性状態である期間をより短くする制御、前記第2粘性状態における粘性を低くする制御、および、前記第2粘性状態である期間をより長くする制御、のうちの少なくとも1つの制御を実行する、請求項1乃至15のいずれかに記載の情報処理システム。
【請求項17】
前記復帰力付加手段による復帰力は、前記操作子の変位が大きいほど、前記初期位置に戻す復帰力が大きくなるものであり、
前記操作子の位置を取得する操作位置取得手段をさらに備え、
前記回路は、前記操作位置取得手段によって取得した前記操作子の位置に応じて、前記第1粘性状態を実現する粘性情報および/または前記第2粘性状態を実現する粘性情報を調整する、または、当該第1粘性状態および/または第2粘性状態である期間を制御する、請求項1乃至14のいずれかに記載の情報処理システム。
【請求項18】
前記回路は、前記操作位置取得手段によって取得した前記操作子の位置が、(I)前記初期位置に戻る態様で変位する場合には、前記操作子の変位が大きいほど、前記第1粘性状態および/または前記第2粘性状態における粘性をより大きくなるように調整し、(II)前記初期位置から遠ざかる態様で変位する場合には、前記操作子の変位が大きいほど、前記第1粘性状態および/または前記第2粘性状態における粘性をより小さくなるように調整する、請求項17に記載の情報処理システム。
【請求項19】
前記回路は、前記磁場発生部に印加する電流の振幅、周波数、印加時間を制御することで前記磁気粘性流体の粘性を変化させる、請求項1乃至16のいずれかに記載の情報処理システム。
【請求項20】
前記回路は、前記振幅、周波数、印加時間のうち、周波数は変化させずに、振幅および/または印加時間を変化させることで、前記磁気粘性流体の粘性を前記第1粘性状態または第2粘性状態に変化させる、請求項19に記載の情報処理システム。
【請求項21】
前記回路は、前記振幅については大きくし、前記印加時間については一定のままとするあるいは減少させることで、前記粘性が高まるように変化させる、請求項20に記載の情報処理システム。
【請求項22】
前記第1粘性状態は、前記操作子が前記復帰力によって自律的に前記初期位置へ復帰しない状態、または、前記初期位置へと復帰する速度が前記第2粘性状態のときよりも遅い状態である、請求項1乃至21のいずれかに記載の情報処理システム。
【請求項23】
ユーザ操作によって初期位置から変位される操作子と、
前記変位した操作子の位置を前記初期位置に向けて戻す復帰力を加える復帰力付加手段と、
磁場の強度に応じて粘性が変化し、前記操作子が前記初期位置からおよび前記初期位置へ変位する際の抵抗となる磁気粘性流体を用いた抵抗部と、
前記磁気粘性流体に対して磁場を与える磁場発生部と
前記磁場発生部を制御可能な回路と、を備えるコントローラであって、
前記回路は、前記磁気粘性流体の粘度が少なくとも、第1粘性状態と当該第1粘性状態よりも低粘性であって、前記復帰力によって前記操作子が当該初期位置に戻る大きさの粘度である第2粘性状態との間で周期的に変化するよう前記磁場発生部の
磁場の強度を制御する、コントローラ。
【請求項24】
ユーザ操作によって初期位置から変位される操作子と、
前記変位した操作子の位置を前記初期位置に向けて戻す復帰力を加える復帰力付加手段と、
磁場の強度に応じて粘性が変化し、前記操作子が前記初期位置からおよび前記初期位置へ変位する際の抵抗となる磁気粘性流体を用いた抵抗部と、前記磁気粘性流体に対して磁場を与える磁場発生部とを備えるコントローラと、
前記磁場発生部を制御可能な回路と、を備える情報処理システムを制御するための情報処理方法であって、
前記回路に、前記磁気粘性流体の粘度が少なくとも、第1粘性状態と、当該第1粘性状態よりも低粘性であって、前記復帰力によって前記操作子が当該初期位置に戻る大きさの粘度である第2粘性状態との間で周期的に変化するよう前記磁場発生部の磁場の強度を制御させる、情報処理方法。
【請求項25】
ユーザ操作によって初期位置から変位される操作子と、前記変位した操作子の位置を前記初期位置に向けて戻す復帰力を加える復帰力付加手段と、磁場の強度に応じて粘性が変化し、前記操作子が前記初期位置からおよび前記初期位置へ変位する際の抵抗となる磁気粘性流体を用いた抵抗部と、前記磁気粘性流体に対して磁場を与える磁場発生部とを備えるコントローラ、および、前記磁場発生部を制御可能な回路を備える情報処理システムのコンピュータに実行させる情報処理プログラムであって、
前記コンピュータに、前記磁気粘性流体の粘度が少なくとも、第1粘性状態と、当該第1粘性状態よりも低粘性であって、前記復帰力によって前記操作子が当該初期位置に戻る大きさの粘度である第2粘性状態との間で周期的に変化するよう前記磁場発生部の磁場の強度を制御させる、情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ボタンやスティック等の操作子を有するコントローラを少なくとも含む情報処理システム、コントローラ、情報処理方法、情報処理プログラムに関する。
【背景技術】
【0002】
従来から、ボタンやスティック等の操作子を備えたコントローラが知られていた。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
このようなコントローラでは、操作子を操作する際にユーザが受け取る情報量や感覚の向上という点において、改善の余地があった。
【0005】
それ故に、本発明の目的は、操作子を操作する際にユーザが受け取る情報量や感覚の向上することができる情報処理システム、コントローラ、情報処理方法、情報処理プログラムを提供することである。
【課題を解決するための手段】
【0006】
上記目的は、例えば以下のような構成例で達成される。
【0007】
構成例の一例は、ユーザ操作によって初期位置から変位される操作子と、変位した操作子の位置を初期位置に向けて戻す復帰力を加える復帰力付加手段と、磁場の強度に応じて粘性が変化し、操作子が初期位置からおよび初期位置へと変位する際の抵抗となる磁気粘性流体を用いた抵抗部と、磁気粘性流体に対して磁場を与える磁場発生部とを備えるコントローラと、当該磁場発生部を制御可能な回路とを備える情報処理システムである。上記回路は、磁気粘性流体の粘性が少なくとも第1粘性状態と、当該第1粘性状態よりも低粘性であって、復帰力によって操作子が初期位置に戻る大きさの粘性である第2粘性状態との間で周期的に変化するよう上記磁場発生部の磁場の強度を制御する。
【0008】
上記構成例によれば、粘性の高い第1粘性状態だけでなく、粘性の低い第2粘性状態があるため、操作子の動きについてユーザに粘性を感じさせつつも、初期位置への復帰を速くすることができる。ここで、磁気粘性流体の粘性(抵抗力)を大きくすることでユーザに対してより大きな粘性を感じさせることができる一方、この粘性が操作子の復帰力を上回ってしまうと、操作子が初期位置に自律的に戻らないことも考えられる。この点、例えば第1粘性状態として上記のような抵抗力の大きな粘性に設定したとしても、本構成例であれば、復帰力が発揮され得るような第2粘性状態を設けることで、操作子を自律的に初期位置に復帰させることが可能である。
【0009】
他の構成例として、回路は、各周期において、第2粘性状態である期間が第1の所定期間以上の期間となるように制御してもよい。
【0010】
上記第2粘性状態が、磁気粘性流体の抵抗力を復帰力が上回るような状態だとしても、その期間があまりにも短い場合、すぐに第1粘度状態に切り替わってしまい、初期位置に向けた変位が実質的に開始しないことも考えられる。この点、上記構成例によれば、第2粘度状態を所定期間以上設けるようにすることで、初期位置への戻り期間を確保し、操作子が自律的に初期位置に戻る動作をより実現しやすくすることができる。
【0011】
更に他の構成例として、回路は、各周期において、第2粘性状態である期間が第1粘性状態である期間よりも長くなるように制御してもよい。
【0012】
上記構成例によれば、操作子の初期位置への戻り期間をより多く確保し、操作子が自律的に初期位置に戻る動作をより実現しやすくすることができる。
【0013】
更に他の構成例として、第1粘性状態は、復帰力付加手段による復帰力によって操作子が初期位置に戻らない粘性であってもよい。
【0014】
上記構成例によれば、操作子が自律的に初期位置に戻らない期間を提供できる。そして、第1粘性状態と第2粘性状態を周期的に変化させることで、操作子が自律的に初期位置に戻るという動きを確保しつつ、今までにないような操作子の感触や操作感をユーザに提供できる。
【0015】
更に他の構成例として、情報処理システムは、情報処理装置をさらに備えていてもよい。上記回路は、少なくともコントローラ内に設けられていてもよい。そして、情報処理装置において実行される所定のアプリケーションからの指定に基づいて磁場発生部が発生する磁場の強度を制御してもよい。
【0016】
上記構成例によれば、アプリケーションから磁場の強度に関する指定を行うことができる。これにより、アプリケーションに応じた柔軟な制御を行うことができる。また、制御するための回路自体はコントローラ内部に設けられている。ここで、アプリケーションの処理実行周期よりもコントローラ内部における処理周期の方が短い周期であることが一般的であるところ、アプリケーションからの指定に基づく柔軟性のある制御と、コントローラ内部での処理という応答性により優れた制御とを併用することができる。
【0017】
更に他の構成例として、情報処理システムは、第1粘性状態と第2粘性状態とが実現される粘性情報をプリセットとして所定の記憶部に予め記憶していてもよい。そして、上記回路は、情報処理装置において実行される所定のアプリケーションからのプリセットの指定に応じて、当該指定されたプリセットに対応する粘性情報に基づいて磁場の強度を制御してもよい。
【0018】
上記構成例によれば、開発者の開発にかかる負担を軽減することが可能となる。例えば、操作子が初期位置に戻るための制御のためのパラメータを開発者がアプリケーション開発の際にその都度設定したり設計したりする場合、開発の負担も大きくなると考えられる。そのため、予めプリセットとして備えておき、開発者等がこれを利用可能とすることで、アプリケーション等の開発を容易にすることができる。
【0019】
更に他の構成例として、コントローラは、上記プリセットが少なくとも1つ含まれるプリセットライブラリを記憶するライブラリ記憶部を含んでいてもよい。そして、上記回路は、コントローラに、情報処理装置において実行される所定のアプリケーションからのプリセットの指定に基づいてプリセットライブラリから粘性情報を取得させ、当該取得した粘性情報に基づいて磁場の強度を制御させてもよい。
【0020】
更に他の構成例として、回路は、コントローラに、所定のアプリケーションからのプリセットの指定、および、操作子の位置を示す位置情報とに基づいてプリセットライブラリから粘性情報を取得させ、当該取得した粘性情報に基づいて磁場の強度を制御させてもよい。
【0021】
上記構成例によれば、主要な粘性制御をコントローラ内部だけで行うことができる。そのため、アプリケーションの動作速度とコントローラ内部の動作速度との差を考慮すると、アプリケーションから直接的に粘性を指定する場合よりも高い応答性を得ることができる。これにより、例えば、操作子の位置に応じて粘性を変化させるような制御を行う場合、より速やかな粘性の変化を実現でき、感触提示の表現の幅を広げることができる。
【0022】
更に他の構成例として、上記回路は、操作子の位置およびまたは位置の変化速度の情報を取得し、当該情報に応じて、プリセットライブラリから取得した粘性情報を補正し、当該補正後の粘性情報に基づいて磁場の強度を制御させてもよい。
【0023】
更に他の構成例では、回路はコントローラに設けられていてもよい。
【0024】
上記構成例によれば、磁場発生部の制御をコントローラ内における処理として実現できる。これにより、高い応答性を有する制御を実現できる。
【0025】
更に他の構成例では、回路は、所定のアプリケーションからの指定がない場合であっても、最後に指定されたプリセットに対応する粘性情報に基づいて磁場の強度を制御し続けてもよい。
【0026】
上記構成例によれば、アプリケーションから一旦指定が行われれば、その後の継続的な指定が出されなくても、コントローラ単独で磁場の強度の制御を継続できる。
【0027】
更に他の構成例として、上記回路は、アプリケーションの状態に基づくが操作子の位置には基づかない粘性制御である第1の粘性制御と、操作子の位置に基づいた粘性制御である第2の粘性制御との間で制御を切り替え可能であってもよい。
【0028】
更に他の構成例として、上記回路は、第1の粘性制御を行う場合は、所定のアプリケーションから出力された粘性情報に基づいて磁場の強度を制御してもよい。更に、第2の粘性制御を行う場合は、コントローラに、所定のアプリケーションからのプリセットの指定、および、上記操作子の位置を示す位置情報とに基づいて上記プリセットライブラリから粘性情報を取得させ、当該取得した粘性情報に基づいて磁場の強度を制御させてもよい。
【0029】
上記構成例によれば、操作子の位置に応じた粘性制御を行うか、操作子の位置に関わらない粘性制御を行うかに応じて、より適切な制御態様を使い分けすることが可能となる。
【0030】
更に他の構成例として、上記回路は、所定のアプリケーションから出力された、磁気粘性流体の粘性の状態を指定する粘性指定情報を取得してもよい。更に、回路は、当該粘性指定情報に基づいて、第1粘性状態または第2粘性状態が実現されるような粘性情報を生成し、当該生成した粘性情報に基づいて磁場の強度を制御してもよい。
【0031】
上記構成例によれば、アプリケーションから粘性の状態を指定することで、第1粘性状態または第2粘性状態を実現するための情報が生成され、これに基づき粘性の制御も行われる。そのため、アプリケーション開発者の開発負担をある程度軽減しつつ、予め用意されているプリセットだけを用いる場合よりも感触提示の表現の幅を広げることができる。
【0032】
更に他の構成例として、情報処理システムは、復帰力に関するパラメータである復帰力パラメータを取得する復帰力パラメータ取得手段を更に備えていてもよい。そして、上記回路は、取得した復帰力パラメータに応じて、第1粘性状態を実現する粘性情報および/または第2粘性状態を実現する粘性情報を調整、または、当該復帰力パラメータに応じて、当該第1粘性状態および/または第2粘性状態である期間を制御してもよい。
【0033】
上記構成例によれば、復帰力パラメータを用いて粘性を調整・制御できる。そのため、コントローラ毎の復帰力の個体差や性能等に応じた適切な粘性制御が可能となる。
【0034】
更に他の構成例として、上記回路は、復帰力が小さいときには復帰力が大きいときよりも、(1)第1粘性状態における粘性をより低くする制御、(2)第1粘性状態である期間をより短くする制御、(3)第2粘性状態における粘性を低くする制御、および、(4)第2粘性状態である期間をより長くする制御、のうちの少なくとも1つの制御を実行してもよい。
【0035】
上記構成例によれば、コントローラ毎の復帰力の個体差や性能等に応じて、適切な粘性を設定できる。
【0036】
更に他の構成例として、復帰力付加手段による復帰力は、操作子の変位が大きいほど、初期位置に戻す復帰力が大きくなるものであってもよい。また、操作子の位置を取得する操作位置取得手段をさらに備えていてもよい。そして、上記回路は、操作位置取得手段によって取得した操作子の位置に応じて、第1粘性状態を実現する粘性情報および/または第2粘性状態を実現する粘性情報を調整してもよい、または、当該第1粘性状態および/または第2粘性状態である期間を制御してもよい。
【0037】
更に他の構成例として、上記回路は、操作位置取得手段によって取得した操作子の位置が、(I)初期位置に戻る態様で変位する場合には、操作子の変位が大きいほど、第1粘性状態および/または前記第2粘性状態における粘性をより大きくなるように調整し、(II)初期位置から遠ざかる態様で変位する場合には、操作子の変位が大きいほど、第1粘性状態および/または第2粘性状態における粘性をより小さくなるように調整してもよい。
【0038】
上記構成例によれば、操作子の位置に応じて第1粘性状態、第2粘性状態の内容を調整することができる。
【0039】
更に他の構成例として、上記回路は、磁場に印加する電流の振幅、周波数、印加時間を制御することで磁気粘性流体の粘性を変化させてもよい。
【0040】
上記構成例によれば、磁気粘性流体の粘性を変化させるために、磁場に印加する電流の振幅、周波数、印加時間を制御する。これにより、比較的簡易なパラメータ指定で粘性変化を制御できる。
【0041】
更に他の構成例として、上記回路は、振幅、周波数、印加時間のうち、周波数は変化させずに、振幅および/または印加時間を変化させることで、磁気粘性流体の粘性を第1粘性状態または第2粘性状態に変化させてもよい。
【0042】
上記構成例によれば、磁場に印加する電流の振幅、周波数、印加時間を用いて磁気粘性流体の粘性を変化させる場合に、周波数は一定のまま、電流の振幅、および/または印加時間を調整することで粘性を変化させる制御を行う。このように周波数は変化させないようにして粘性を調整することで、例えばユーザが操作子を操作中であるに粘性を変化させたいような場合、当該調整に伴う操作感について、ユーザが大きな変化を感じてしまうことを防ぐことができる。
【0043】
更に他の構成例として、上記回路は、振幅については大きくし、印加時間については一定のままとするあるいは減少させることで、粘性が高まるように変化させてもよい。
【0044】
上記構成例によれば、周波数は変化させないようにして粘性を調整するため、当該調整に伴う感触の変化について、ユーザが大きな変化として感じてしまうことを防ぐことができる。
【0045】
更に他の構成例として、第1粘性状態は、操作子が復帰力によって自律的に初期位置へ復帰しない状態、または、初期位置へと復帰する速度が第2粘性状態のときよりも遅い状態であってもよい。
【発明の効果】
【0046】
本実施形態によれば、磁気粘性流体を利用したコントローラにおいて、操作子が初期位置に戻る速度を速めることができる。また、操作子によるユーザへの感触提示と、操作子が初期位置に戻る動作とを両立させることができる。
【図面の簡単な説明】
【0047】
【
図1】
図1は、情報処理システム1の構成を示した図である。
【
図2】
図2は、情報処理装置本体2の内部構成の一例を示す機能ブロック図である。
【
図3】
図3は、コントローラ4の内部構成を示す機能ブロック図である。
【
図4】
図4は、スティックデバイスの斜視図である。
【
図5】
図5は、スティックデバイスの各パーツの位置関係を示す模式図である。
【
図6】
図6は、スティックデバイスの各パーツの位置関係を示す模式図である。
【
図7】
図7は、スティックデバイスの各パーツの位置関係を示す模式図である。
【
図8】
図8は、MRFユニットの構成例を説明するための模式図である。
【
図9】
図9は、アナログスティック42の内部構成を示す機能ブロック図である。
【
図10】
図10は、ソフトウェア階層に関して説明するための図である。
【
図11】
図11は、可動域情報について説明するための図である。
【
図12】
図12は、可動域情報について説明するための図である。
【
図13】
図13は、制御パターンAについて説明するための図である。
【
図14】
図14は、制御パターンBについて説明するための図である。
【
図15】
図15は、制御パターンCについて説明するための図である。
【
図16】
図16は、制御パターンDについて説明するための図である。
【
図17】
図17は、第1の実施例における制御の原理を説明するための図である。
【
図18】
図18は、第2の実施例における制御の原理を説明するための図である。
【
図19】
図19は、第2の実施例における制御の原理を説明するための図である。
【
図20】
図20は、第2の実施例における制御の原理を説明するための図である。
【
図21】
図21は、第2の実施例における制御の原理を説明するための図である。
【発明を実施するための形態】
【0048】
まず、
図1を参照して、本実施形態に係る情報処理システムの一例について説明する。
図1は、本実施形態にかかる情報処理システムの構成を模式的に示した図である。
図1において、情報処理システム1は、情報処理装置本体2と、モニタ3と、コントローラ4とを備えている。当該情報処理システム1では、情報処理装置本体2において所定の情報処理が実行され、その処理の結果生成された所定の画像や音声がモニタ3に出力される。また、本実施形態では、コントローラ4は、無線通信が可能な通信部を内蔵しており、情報処理装置本体2と無線接続されて用いられる。他の実施形態では、情報処理装置本体2とコントローラ4とは有線で接続されてもよい。コントローラ4に対して行われたユーザの操作内容を示すデータがコントローラ4から情報処理装置本体2に送信される。また、情報処理装置本体2からも、コントローラ4の動作を制御するためのデータがコントローラ4に送信される。コントローラ4に内蔵されているコントローラ制御部(後述)は、このようなデータの送受信を含むコントローラ4の各種制御を行う。
【0049】
次に、情報処理装置本体2の内部構成について説明する。
図2は、情報処理装置本体2の内部構成の一例を示す機能ブロック図である。
図2において、情報処理装置本体2は、プロセッサ11を備える。プロセッサ11は、情報処理装置本体2を制御するための回路である。プロセッサ11は、情報処理装置本体2において実行される各種の情報処理を実行する。プロセッサ11は、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System-on-a-chip)から構成されてもよい。プロセッサ11は、記憶部12に記憶される情報処理プログラム(例えば、所定のアプリケーションプログラム)を実行することによって、各種の情報処理を実行する。なお、記憶部12は、例えば、フラッシュメモリやDRAM(Dynamic Random Access Memory)等の内部記憶媒体であってもよいし、図示しないスロットに装着される外部記憶媒体等を利用する構成でもよい。
【0050】
映像音声出力部14は、プロセッサ11と電気的に接続されており、プロセッサ11で実行された情報処理の結果として生成された各種の画像や音声をモニタ3に出力する。コントローラ通信部13は、プロセッサ11と接続されている。コントローラ通信部13は、無線接続されているコントローラ4と各種のデータの送受信を行うためのものである。
【0051】
次に、当該コントローラ4の内部構成に関して説明する。
図3は、コントローラ4の内部構成を示す機能ブロック図である。
図3において、コントローラ4は、コントローラ制御部41、アナログスティック42、デジタルボタン部44を備えている。本実施形態のコントローラ4は、アナログスティック42を1つだけ備える例で説明するが、他の実施形態では複数のアナログスティック42を備える構成でもよい。また、その他、図示は省略するが、コントローラ4には、バッテリー等も備えている。その他、コントローラ4には、光学センサや慣性センサ等のセンサ類等が備えられていてもよい。
【0052】
コントローラ制御部41は、コントローラ4を制御するための回路であり、制御用のマイコン、メモリ、無線モジュール、およびアンテナ等を含んでいる。コントローラ制御部41は、処理の際に当該メモリを記憶領域として用いながら、情報処理装置本体2に送信データを無線送信する無線モジュールを制御する。また、当該メモリには、後述するプリセットライブラリ等のデータも記憶されている。また、コントローラ制御部41は、アンテナを介して無線モジュールが受信した情報処理装置本体2からのデータに応じて、後述するようなアナログスティック42に関する制御等も行う。
【0053】
アナログスティック42は、方向を入力することが可能な操作子である。ユーザは、アナログスティック42を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。デジタルボタン部44は、1以上の押下式のボタンやトリガー式のボタンである。
【0054】
次に、本実施形態におけるアナログスティック42の構成に関して説明する。本実施形態では、上記アナログスティック42について、磁気粘性流体(Magnetorheological fluid、以下、MRFと記載する)を用いる構成を採用している。ここで、当該MRFについて簡単に説明する。MRFは、磁場をかけないときは流体であり、磁場をかけると半固体化する(粘性を発生する)、という特性を有するものである。また、MRFは、磁場に対して数msで反応する、という特性も有する。そして、本実施形態では、MRFの粘性を制御し、コントローラ4のアナログスティック42の可動軸に当該MRFを作用させることで、結果として、アナログスティック42の動きやすさを動的に制御する。
【0055】
図4に、本実施形態で想定するアナログスティック42を構成するパーツ(以下、スティックデバイス)の外観例を示す。
図4は、アナログスティック42を構成するスティックデバイス400の斜視図である。
図4において、スティックデバイス400は、スティック部401、外郭部404、X軸用可変抵抗器405、X軸用MRFユニット406、Y軸用可変抵抗器407、Y軸用MRFユニット408とを有する。また、スティック部401に隣接するようにして、X軸用駆動部品402も設けられている。また、図示されてはいないが、スティックデバイス400は、後述する
Y軸用駆動部品403も有する。なお、コントローラ4の完成品の状態では、当該スティックデバイス400のスティック部401に、例えば、きのこ形状のカバーをかぶせたもの等が用いられる。
【0056】
スティック部401は、棒状の可動部分である。X軸用可変抵抗器405およびY軸用可変抵抗器407は、スティック部401の傾き具合を検出するためのものである。X軸用MRFユニット406およびY軸用MRFユニット408は、上記のようにアナログスティック42の可動軸にMRFを作用させるためのものである。
【0057】
図5に、当該スティックデバイス400を俯瞰した場合の、各パーツの位置関係を示す模式図を示す。また、
図6および
図7に、当該スティックデバイス400を側面から見た場合の各パーツの位置関係を示す模式図(断面図)を示す。
図6は、
図5における左側から見た場合を想定した図であり、
図7は、
図5における下側から見た場合を想定した図である。
図5~
図7で示されるように、外郭部404の中心となる位置にスティック部401の中心が位置するように、スティック部401が配置されている。また、スティック部401の長手方向がZ軸に平行となるようにして配置されている。以下の説明では、この中心の位置のことを初期位置と呼び、スティック部401の長手方向がZ軸に平行となっている姿勢のことを初期状態と呼ぶ。
【0058】
また、
図5においては、スティック部401に隣接するようにして、X軸用駆動部品402、Y軸用駆動部品403が設けられている。X軸用駆動部品402は、スティック部401のX軸における動きに連動して、X軸用可変抵抗器405を動かす。Y軸用駆動部品403は、スティック部401のY軸における動きに連動して、Y軸用可変抵抗器407を動かす。そのため、これらの図では直接示してはいないが、X軸用駆動部品402は、(外郭部404の内側で)X軸用可変抵抗器405と連動するように連結されている。Y軸用駆動部品も同様に、Y軸用可変抵抗器407と連動するように連結されている。
【0059】
なお、スティックの可動範囲について、本実施形態では、スティック部401を傾ける場合、外郭部404に設けられている円形の開口部までは傾けることができるものとする。つまり、当該円形の開口部はスティック部401(アナログスティック42)の基本的な可動領域を規制するものともなっている。なお、他の実施形態では、この規制のための部材として、例えばスティック部401の根元部分に同様の機能を有する規制部材を設ける構成でもよい。あるいは、コントローラ4の完成品における当該コントローラ4自体のハウジングを規制部材として用いる構成でもよい。すなわち、当該ハウジングにおいて、スティックデバイス400が取り付けられる箇所に所定の形状の開口部を設け、この開口部(の形状)がアナログスティック42の可動領域の限界となるようにしてもよい。
【0060】
また、図示は省略するが、スティック部401の下方には、スティック部401を初期位置に復帰させるための機構である復帰力付加部も設けられている。当該復帰力付加部は、内部にコイルばね等の弾性体を有し、初期位置に戻る復帰力を伝達しスティック部401を垂直に戻そうとする部材等で構成されていればよい。本実施形態では、スティック部401の傾きが大きいほど、当該初期位置に戻る復帰力も大きくなるものとする。また、当該復帰力付加部は、スティック部401と連動する上記各駆動部品を基準位置に復帰させるものである。当該復帰力を付加する機構については既知のものであるため詳細な説明は省くが、例えば当該弾性体を有する復帰力付加部は、外郭部404の底面と垂直になるよう配置されていてもよい。そして、上記駆動部品に対して直接または間接的に力を加えることで駆動体を基準状態に保つような構成が考えられる。
【0061】
なお、上記復帰力付加部に関して、本実施形態では弾性体を用いる例を示した。他の実施形態では、同様の機能を有するものであれば、例えば磁石等を用いた復帰機構を用いる構成としてもよい。また、常時復帰力を付加する構成のみならず、必要なときのみ復帰力を付与したり、復帰力の大きさを制御したりすることが可能な復帰機構を用いる構成としてもよい。この場合、弾性体や磁石等に加えて、またはこれに代えて、ギアやモーター等を用いてもよい。
【0062】
次に、スティックデバイス400は、外郭部404に隣接するようにして、X軸用可変抵抗器405およびY軸用可変抵抗器407を備えている。可変抵抗器に関しては既知の技術であるので詳細説明は省略するが、これらは、スティック部401の傾き具合を検出するためのものである。各可変抵抗器には、上記各駆動部品と接続されている回転軸が設けられている。スティック部401の傾倒・復帰の動きに連動して上記駆動部品が当該回転軸を回転させる。そして、当該回転軸の回転に応じた抵抗値が検出される。この抵抗値に基づき、プロセッサ11、あるいはコントローラ制御部41は、スティック部401のX軸、Y軸それぞれにおける傾き角度等を判定することができる。つまり、スティック部401が移動している方向(以下、変位方向)やスティック部401の傾き具合(XY平面上におけるアナログスティック42の指示位置:以下、単に「アナログスティックの位置」と呼ぶ)を算出することが可能である。
【0063】
なお、本実施形態では、上記スティック部401の変位方向についてはプロセッサ11あるいはコントローラ制御部41によってソフト的に算出する場合を想定するが、算出する主体については、これに限るものではない。例えば、他の実施形態では、所定のセンサを用いることで、機構的に変位方向が検知される構成を採用してもよい。
【0064】
更に、スティックデバイス400は、X軸用可変抵抗器405の外側に隣接するようにして、X軸用MRFユニット406を備えている。同様に、Y軸用可変抵抗器407の外側に隣接するようにして、Y軸用MRFユニット408を備えている。本実施形態では、X軸用可変抵抗器405で用いられる回転軸411を更に外側に伸ばすような構成とし、この回転軸411を覆うようにしてX軸用MRFユニット406が配置されている。これと同様に、Y軸用可変抵抗器407で用いられる回転軸412についても更に外側に伸ばすような構成とし、この回転軸412を覆うようにしてY軸用MRFユニット408が配置されている。なお、当該回転軸に関しては、例えばX軸用可変抵抗器405で用いられる回転軸とMRFユニット内の回転軸とが連動するように連結する構成でもよい。また、以下の説明では、X軸用MRFユニット406およびY軸用MRFユニット408を総称して、単にMRFユニットと呼ぶこともある。
【0065】
次に、上記MRFユニットの構成について説明する。
図8は、MRFユニットの構成例を説明するための簡略化した模式図である。
図8では、可変抵抗器と接続(あるいは連結)される回転軸411(の一部分)が、MRFが充填されているMRF容器421を貫通するようにして配置されている。また、MRF容器421の外側を覆うようにして、磁場発生部422が設けられている。当該磁場発生部422は、例えばコイルである。また、MRFユニットは、当該磁場発生部422に対して電流を流すことができるように構成されている。当該磁場発生部422に所定量の電流を流すことで、磁場を発生させることができる。これにより、MRF容器421内のMRFの粘性を変化させることができる。すなわち、磁場発生部422に与える電流量、すなわち振幅を制御することで、磁場の強度を制御し、ひいては、MRFの粘性の高低を制御することができる。MRFの粘性が高くなることで、回転軸411の回転力に抵抗を与えることができる。回転軸411は、上記のようにスティック部401の傾きと連動するよう接続されているため、MRFの粘性変化によって、スティック部401を傾けようとする力に対して抵抗力を与えることができる。すなわち、本実施形態では、このようなMRFの粘性を制御することで、スティック部401の動きやすさを制御することが可能な構成となっている。
【0066】
なお、上記
図8は説明の便宜上、簡略化した図面となっているが、MRFユニットのより具体的な構成について補足しておく。基本的な仕組みとしては、自転車や自動車のディスクブレーキに近い構造となる。これらのディスクブレーキでは、回転するホイールを直接機械部品で挟み込み、部品同士の摩擦で回転を止めるという仕組みとなるが、本実施形態のようにMRFを用いる場合、流体の粘性を制御することで摩擦を変化させ、回転方向の動きを規制することになる。
【0067】
次に、上記アナログスティック42の(電気的な)内部構成について説明する。
図9は、アナログスティック42の内部構成を示す機能ブロック図である。
図9において、アナログスティック42は、X軸用可変抵抗器405、X軸用MRFユニット406、Y軸用可変抵抗器407、Y軸用MRFユニット408を含んでいる。これらの構成要素はそれぞれコントローラ制御部41と電気的に接続されており、所定のデータの送受信が可能である。コントローラ制御部41は、X軸用可変抵抗器405およびY軸用可変抵抗器407からの信号(例えば電圧値)を受信することができる。これらの信号に基づき、コントローラ制御部41は、スティック部401の位置やその変位方向、位置の変化速度(変位速度)を算出できる。更に、コントローラ制御部41は、算出した結果を情報処理装置本体2に送信することができる。なお、当該アナログスティック42の位置については、例えば、中心位置を初期位置(原点)とする2次元平面上における2次元座標として表現される。また、コントローラ制御部41は、情報処理装置本体2から送信されるデータに基づき、次に説明するように、MRFユニットの粘性を制御するための信号を各MRFユニットに送信できる。
【0068】
次に、各MRFユニットについて説明する。まず、X軸用MRFユニット406には、電圧電流変換回路部431と上述したような磁場発生部422とが含まれており、両者は電気的に接続されている。コントローラ制御部41から電圧電流変換回路部431に対して所定の電圧を与えることで、当該電圧に基づいた電流を磁場発生部422に出力することができる。その結果、上記のようにMRFの粘性を変化させることができる。同様に、Y軸用MRFユニット408にも、電圧電流変換回路部431と磁場発生部422とが含まれており、上記と同様の制御が可能となっている。このように、本実施形態では、スティック部401におけるX軸とY軸とで個別にMRFの粘性変化による影響を与えることが可能な構成となっている。基本的には、アナログスティック42の動きやすさ(粘性)は、X軸およびY軸の2軸の合算で提示される。その一方で、例えば、Y軸用MRFユニット408のMRFの粘性だけ高めることで、スティック部401をX軸方向にだけ動かすことができる、という状態を作り出すことも可能である。
【0069】
上記のような構成によってMRFの粘性制御を行うことで、本実施形態では、アナログスティック42を操作しているユーザ(の指)に対して、様々な感触を提示することができる。例えば、アプリケーションにおける所定の場面に応じて上記のMRFの粘性を制御することで、アナログスティック42を操作するユーザの指先に、その場面に応じた様々な感触を与えることができる。また、アナログスティック42を複数備えるコントローラ4である場合、各アナログスティック毎に個別に上記粘性を制御することも可能である。これにより、今までに無い新たな操作感をユーザに提供することができる。
【0070】
以下、上記のような構成を用いた本実施形態における様々な制御について説明するが、これに先立って、本実施形態の情報処理システムにおけるソフトウェア階層に関して説明する。
図10は、本実施形態におけるソフトウェア階層を説明するための図である。本実施形態の情報処理システムでは、様々なアプリケーションを実行することが可能である。これらアプリケーションは、基本的には、共通のシステムソフトウェア上で動作する(利用する)というソフトウェア構造となっている。当該システムソフトウェアは、上記情報処理システム1を構成する各種ハードウェアの制御を担当する。当該ハードウェアは、例えば、上記情報処理装置本体2および、上記MRFユニット等を含むコントローラ4である。
【0071】
ここで、上記MRFを制御するためのパラメータについて説明する。本実施形態では、MRFを制御するためのMRF制御用パラメータとして、以下の3種類のパラメータがある。すなわち、(1)粘性パラメータ、(2)可動域情報、(3)プリセット番号、の3種類のパラメータがある。当該MRF制御用パラメータは例えば次のように用いられる。まず、アプリケーションでその内容が設定され、これがシステムソフトウェアを介してコントローラ4に転送される。そして、コントローラ4が当該MRF制御用パラメータに基づいてMRFの粘性を制御する、等の利用例がある。
【0072】
各パラメータについて説明すると、まず、粘性パラメータは、上記コントローラ制御部41から電圧電流変換回路部431に対して出力する振幅、周波数、印加時間の3つを指定するパラメータである(後述するパラメータP1~P3に相当する)。このパラメータを成分とする波形となるような電圧指令値が電圧電流変換回路部431に出力され、これに基づく電流が磁場発生部422に出力される。その結果発生した磁場によって、MRFの粘性を変化させることができる。
【0073】
次に、可動域情報は、アナログスティック42の可動域を定義する情報である。例えば、アナログスティック42の可動域をY軸方向のみとする場合を想定する。図で示すと、まず、本来の可動域(以下、基本可動域と呼ぶ)が
図11で示される円の範囲内であるとする。そして、この可動域を、
図12の白色部分で示されるようなY軸方向のみに限定したい場合を想定する。この場合、
図12の黒色で示した領域にアナログスティック42が移動できないようにするため、可動域情報の内容としては、アナログスティック42の位置がこの領域内となる場合は、アナログスティック42が傾かないことを示した内容となる。このように設定することで、白色部分から当該黒色の領域にアナログスティック42を移動させようとしても、その境界となる位置でアナログスティック42が黒色の領域に向けては傾かないようにすることができ、その結果、黒色領域に入り込めないという状態が実現できる。具体的なデータ構成の一例としては、例えば基本可動域全域に見立てた100×100の行列を用意し、これに、その位置が可動であるか否かを示す値を2値(0または1)で設定することで、可動域情報を生成することが考えられる。
図12の例でいうと、上記行列のうち、黒色の部分に対応するものに1を設定し、それ以外には0を設定したものが可動域情報の内容となる。もちろん、可動域情報の具体的データ構成はこれに限るものではなく、可動域が定義できるデータ構成であればどのような構成でもよい。このように、本実施形態では、アナログスティック42の可動域(の形状)を任意に定義したものを可動域情報として扱うこともできる。
【0074】
最後に、プリセット番号は、予め定義されているプリセットを指定するための番号である。当該プリセットとは、アナログスティック42が(上記基本可動域内の)どの位置のときにはどのような粘性パラメータとするのかを予め定義したデータである。換言すれば、上記基本可動域内での各位置やその位置でのアナログスティック42の変位速度に対する粘性パラメータを予め指定したデータである。このようなプリセットを用意することで、アプリケーションの開発者等は、上記粘性パラメータの内容を都度設計・設定せずとも、プリセットを指定するだけでMRFの粘性制御を容易に利用することが可能となる。そのデータ構成の一例としては、例えば上記のように基本可動域全域に見立てた所定数の行列のそれぞれに粘性パラメータを設定したものをプリセットとして定義することが考えられる。また、本実施形態では、コントローラ制御部41内のメモリに、複数のプリセットが「プリセットライブラリ」として予め記憶されるものとする。当該プリセットの使用例としては、アプリケーションが所定のプリセット番号を、システムソフトウェアを介してコントローラ制御部41に送信するという例が考えられる。この場合、コントローラ制御部41は、プリセットライブラリから該当のプリセット番号を読み出す。更に、その内容と、その時点のアナログスティック42の位置や変位速度に基づいて、粘性パラメータを決定する。そして、コントローラ制御部41は、その粘性パラメータに基づいてMRFユニットを制御する。
【0075】
なお、上記では、プリセットとして持たせる情報として、位置や変位速度と粘性パラメータとを対応づけて持たせる例を挙げた。プリセットについてはこのようなデータ構成に限るものではなく、他の実施形態では、例えば、位置や変位速度の情報を持たず、単に粘性パタメータだけを有するデータ構成としてもよい。つまり、単に粘性パラメータのみを事前にいくつか定義したものをプリセットとして提供するような態様でもよい。
【0076】
また、上記プリセットライブラリに関して、可動域だけを定義した可動域プリセットと、上記のような粘性パラメータだけを定義したプリセットとをそれぞれ個別に持たせるような構成でもよい。例えば、同心円状の可動域のプリセットがあると想定する。この場合、中心円と、それを囲む各円環におけるMRFの粘性を、別途用意された粘性パラメータのプリセットから引用できるようにしてもよい。これにより、プリセットという体裁でありながらも、MRFを用いた表現の幅を広げることができる。
【0077】
また、当該コントローラ制御部41に記憶されるプリセットライブラリについては、更新可能な構成であってもよい。例えば、インターネット経由で定期的に更新されるような構成でもよい。あるいは、インターネットとは非接続の場合であっても、所定の記憶媒体を経由して更新可能な構成としてもよい。一例を挙げると、更新データが含まれるメモリカードを、コントローラ4と接続された情報処理装置本体2に読み込ませて更新できる構成としてもよい。
【0078】
また、コントローラ制御部41にプリセットライブラリを記憶する構成の他、これに代えて、あるいは、これに加えて、システムソフトウェアあるいはアプリケーション内部でプリセットを定義するような構成を採用してもよい。
【0079】
次に、上記アプリケーション、システムソフトウェア、およびコントローラ4と、上記MRFの粘性制御を行う主体との関係について説明する。本実施形態は、主に上記MRFユニットを用いたコントローラ4の制御、換言すれば、MRFの粘性の制御に関するものである。この粘性を主体的に制御(指定・生成)する箇所として、本実施形態では、アプリケーションの場合、システムソフトウェアの場合、コントローラ4の場合という3つのパターンを想定している。換言すれば、MRFの粘性制御方式として、主にアプリケーション主体で制御する場合、システムソフトウェア主体で制御する場合、コントローラ4が主体で制御する場合という3つのパターンを利用することができる。
【0080】
なお、このような複数の制御パターンを想定している理由の一つは、情報処理装置本体2とコントローラ4との間の通信速度と、情報処理装置本体2において実行されるアプリケーションの実行速度との差(換言すれば応答性能の差)を考慮したためである。これらの速度は、「アナログスティック42とコントローラ制御部41との通信速度>情報処理装置本体2とコントローラ制御部41との間の通信速度>アプリケーションの処理速度」という関係になることがある。本実施形態では、例えば、アナログスティック42とコントローラ制御部41との通信速度が1kHz、情報処理装置本体2とコントローラ制御部41との間の通信速度が200Hzである場合を想定する。また、アプリケーションの処理速度について、60Hzで動作する場合を想定する。このような速度関係で考えると、コントローラ側の動作の周期のほうが、アプリケーションの動作周期よりも速い、という関係となる。そのため、アプリケーション側が主体となってMRFの粘性を出力する場合、その出力がコントローラ制御部41に到達する周期が、コントローラ制御部41がアナログスティック42の位置を取得する周期よりも遅くなると考えられる。この点、特にアナログスティック42の位置に直接的に応じて粘性を変化させるような制御を行う場合は、応答性が高いほうが、より速やかな粘性変化を実現でき、感触提示の表現の幅も広がると考えられる。例えば、急な感触変化や、エッジのような感触表現が可能となる。この観点からは、アプリケーションをできるだけ介さない制御手法のほうが望ましいとも言える。その一方で、コントローラ制御部41に搭載されるメモリ容量は一般にあまり大きくないことから、上記のようなプリセットを記憶できる数もある程度限られることが想定される。この点、アプリケーション側が主体となる制御のほうが、多様なプリセットを用いることができる可能性がある。あるいは、プリセットに頼らずに粘性パラメータを生成等することで、より細やかに粘性パラメータを出力でき、粘性制御の自由度が高いという側面もある。特に、アナログスティック42の位置に直接的に基づかずに粘性制御を行うような場合は、それほど高い応答性がなくてもよい場合もある。そのため、本実施形態では、開発するアプリケーションの内容やユースケース等に応じて、開発者が上記制御パターンを使い分けることも可能としている。
【0081】
以下、上記各種の制御パターンの概要について説明する。
【0082】
[アプリケーションで制御する場合]
まず、アプリケーションが主体的に制御する場合(以下、制御パターンAと呼ぶ)について説明する。ここでは一例として、アプリケーションが、アプリケーションの実行状態に直接的に基づいて粘性パラメータを出力するという制御を説明する。この場合の制御の流れの一例としては、
図13で示す流れとなる。まず、(A1)コントローラ制御部41はアナログスティック42から電圧値を受け取る。次に、(A2)コントローラ制御部41は、これに基づきアナログスティック42の位置や変位速度を算出し、システムソフトウェアに転送する。更に、(A3)システムソフトウェアは、このアナログスティック42の位置や変位速度をアプリケーションに出力する。これにより、アプリケーション側では、アナログスティック42の位置や変位速度を知ることができる。次に、(A4)アプリケーション側において、上記システムソフトウェアから出力されたアナログスティック42の位置や変位速度を反映したアプリケーション処理を行い、その結果を踏まえたアプリケーションの実行状態に基づいて、上記粘性パラメータを生成してシステムソフトウェアに転送する。このアプリケーションの実行状態とは、例えば、仮想空間内における仮想オブジェクトの位置や、当該仮想オブジェクトの状態、アプリケーションの進行状況が所定の場面であるか、等である。次に、(A5)システムソフトウェアは、当該粘性パラメータをコントローラ制御部41に転送する。そして、(A6)コントローラ制御部41は、当該粘性パラメータに基づく電圧指令値をMRFユニット出力する。このように、当該制御パターンでは、アプリケーションの状態に直接的に基づき、アプリケーションが粘性制御パラメータを主体的に出力する制御となっている。
【0083】
なお、アプリケーションは、粘性パラメータを生成して出力する構成でもよいし、所定のプリセットが記憶された粘性ライブラリをアプリケーション側で用意する構成でもよい。後者の場合、プリセットが、アナログスティックの位置や変位速度の情報を持たず、単に粘性パタメータだけを有するデータ構成であれば、このライブラリの中から所定のプリセット番号を指定し、当該プリセット番号に対応する粘性パラメータを取得して出力してもよい。プリセットがアプリケーション状態等のデータと粘性パラメータとを対応づけるデータ構成である場合には、プリセット番号とアプリケーション状態等のデータとに基づいて粘性パラメータが取得されてもよい。
【0084】
また、上記の例では、アプリケーションの実行状態に直接的に基づいて粘性パラメータを出力する構成となっているが、アナログスティックの位置に直接的に基づいて粘性パラメータを出力する構成としてもよい。この場合、アナログスティックの位置はアプリケーション側に送信され、当該アナログスティックの位置に直接的に基づいて粘性パラメータを生成すればよい。そして、当該生成した粘性パラメータをコントローラ制御部41に出力すればよい。
【0085】
[コントローラで制御する場合について]
次に、コントローラ4が主体的に制御する場合について説明する。本実施例では、一例として、上述したようなコントローラ制御部41に記憶されているプリセットライブラリを利用する制御となっている。制御の流れの一例としては、
図14に示すような制御の流れがある(以下、この制御のことを制御パターンBと呼ぶ)。まず、(B1)アプリケーションは、所定のプリセット番号を指定してシステムソフトウェアに転送する。(B2)システムソフトウェアは、このプリセット番号をコントローラ制御部41に転送する。(B3)コントローラ制御部41は、この時点におけるアナログスティック42からの電圧値に基づき、アナログスティック42の位置や変位速度を算出する。(B4)次に、コントローラ制御部41は、上記プリセット番号に対応するプリセットをプリセットライブラリから取得する。そして、当該プリセットの定義内容と当該算出したアナログスティック42の位置および/または変位速度とに基づいて、粘性パラメータを取得する。そして、コントローラ制御部41は、当該粘性パラメータに基づく電圧指令値をMRFユニットに出力する。このように、アプリケーションからはプリセット番号を指定するだけで、コントローラ4内部で対応するプリセットに基づく粘性制御が行われる。
【0086】
また、コントローラ4が主体的に制御する場合の他の例として、
図15で示すような制御を行ってもよい(以下、この制御のことを制御パターンCと呼ぶ)。これは、アプリケーションとは無関係にMRFの粘性を制御するような場面を想定するものである。例えば、ユーザの好みの粘性に設定可能とする場合である。この場合は、例えば情報処理装置本体2の「設定メニュー」からユーザが任意の粘性を指定し、その指定内容をプリセットとして記憶しておくようにすればよい。そして、常時、あるいは適切な場面で、当該プリセットに応じた粘性制御を行えばよい。
図15でいうと、上記プリセットの設定が終わっていることを前提として、まず、(C1)システムソフトウェアで上記記憶されたプリセット番号をコントローラ制御部41に転送する。次に、(C2)コントローラ制御部41は、この時点におけるアナログスティック42からの電圧値に基づき、アナログスティック42の位置や変位速度を算出する。次に、(C3)コントローラ制御部41は、上記プリセット番号と当該算出したアナログスティック42の位置や変位速度とに基づき、粘性パラメータを生成する。そして、コントローラ制御部41は、当該粘性パラメータに基づく電圧指令値をMRFユニットに出力する。これにより、アプリケーションとは無関係にアナログスティック42の粘性を制御できる。
【0087】
なお、上記制御例ではアナログスティック42の位置等を用いる例を挙げたが、他の実施形態では、当該位置等を用いない制御を行ってもよい。例えば、アナログスティック42の位置(を示す情報)は用いず、アナログスティック42の可動範囲の全域にわたって均一に所定の粘性となるような制御を行ってもよい。つまり、常時所定の粘性がかかっているような制御を行ってもよい。
【0088】
[システムで制御する場合について]
次に、システムソフトウェアが主体的に制御する場合(以下、制御パターンDと呼ぶ)について説明する。上記のように、本実施形態ではコントローラ制御部41にプリセットライブラリを記憶する構成であるが、一般に、コントローラ制御部41に搭載されるメモリの記憶容量はある程度限られた容量である。そのため、プリセットライブラリとして記憶される粘性制御のパターンもある程度限られたものとなってしまうことも考えられる。そのため、ある程度の応答性を確保しつつも、粘性制御による感触の表現として、プリセットライブラリのものより多くの表現を可能とするために、システムソフトウェアで制御するというパターンも利用可能としている。この場合の制御の流れの一例としては、
図16のような流れが考えられる。まず、(D1)アプリケーションからシステムソフトウェアに、上述した可動域情報を転送する。(D2)コントローラ制御部41はアナログスティック42から電圧値を受け取る。(D3)更に、コントローラ制御部41は、これに基づきアナログスティック42の位置や変位速度を算出し、システムソフトウェアに転送する。(D4)システムソフトウェアは、上記可動域情報とアナログスティック42の位置や変位速度に基づき、上記粘性パラメータを生成してコントローラ制御部41に転送する。(D5)そして、コントローラ制御部41は、当該粘性パラメータに基づく電圧指令値をMRFユニット出力する。換言すれば、
図16の(D2)~(D5)の流れがループしており、このループに対してアプリケーションが可動域情報を任意のタイミングで送り込む、というような流れであるとも言える。
【0089】
本実施形態では、このような複数の制御パターンを利用可能とすることで、アプリケーション開発者の利便性を高めることができる。なお、これらの制御パターンは一例であり、アプリケーションのユースケースに応じて他の制御手法を用いることも可能である。
【0090】
[制御パターン使い分けの一例]
上記のような制御パターンの使い分けの一例として、「アナログスティック42の位置に直接的に応じた粘性制御」と、「アナログスティック42の位置に直接的には応じない粘性制御」とを使い分ける例を説明する。これは、アナログスティック42の位置に直接的に応じた粘性制御をするか否かによって、より適切な制御を用いるというものである。例えば、仮想空間内で仮想オブジェクトを移動させることが可能なアプリケーションを想定する。このようなアプリケーションにおいて、仮想オブジェクトを移動させるにあたって、仮想空間内における当該仮想オブジェクトの場所に応じて上記粘性が変化する、という制御を行うことができる。この制御は、上記のアナログスティック42の位置に直接的には応じない粘性制御となる。一例を挙げると、アナログスティック42で仮想オブジェクトを操作できるアプリケーションにおいて、仮想オブジェクトの仮想空間内の位置に応じてアナログスティック42の粘性を高める、という場合が考えられる。この場合は、アナログスティック42の位置に基づいて仮想オブジェクトを移動できるものであるが、しかし、このアナログスティック42の位置に直接的に基づいて粘性を制御するものではない。あくまで、「仮想空間内の仮想オブジェクトの位置」、換言すればアプリケーションの実行状態に直接的に基づいて粘性を制御するということになる。そのため、このような場合は、アプリケーション側が主体的に粘性パラメータを出力する制御を行う。この粘性パラメータの取得・出力手法については、アプリケーションのコード内で粘性パラメータを生成してもよいし、粘性パラメータのプリセットをアプリケーション内においてライブラリとして備える構成でもよい。後者の場合は、例えば仮想空間内の地形に応じたプリセットを用意して、仮想オブジェクトの位置に基づいて所定のプリセットを指定すればよい。このように、アプリケーション側が主体的に粘性パラメータを用意して出力する場合、ユーザに与える感触の表現の幅を広げることができる。
【0091】
一方、上記アプリケーションにおける所定の場面(一例として、例えば仮想オブジェクトを移動させる場面ではない場面)において、アナログスティック42の位置に直接的に応じて粘性制御を行いたい場合は、コントローラ制御部41が主体となって粘性制御することができる。
【0092】
以下、上述のような構成や制御パターンをベースとした、様々な制御例について説明する。
【0093】
[第1の実施例]
まず、本実施形態における第1の実施例について説明する。当該実施例は、上記MRFを用いるアナログスティックの制御において、「様々な感触の提示」と「アナログスティックに指が触れていない際の初期位置復帰」とを両立させることを主眼とした制御の例である。
【0094】
[第1の実施例にかかる制御の原理について]
まず、第1の実施例における制御の原理について説明する。一般的に、ユーザが求めるであろうアナログスティック42の操作感として、アナログスティック42から手や指を離したときには、アナログスティック42の位置が初期位置(初期状態)に復帰して欲しい、という操作感が考えられる。この点、上述のようなMRFをアナログスティック42に用いた場合、MRFの粘性を高めることで、ユーザに様々な感触を提示できる。その反面、粘性がある程度高い状態の場合、アナログスティック42から手や指を離したときでも、MRFがブレーキのような役割を果たす結果、アナログスティック42が傾いたまま初期位置に戻らない、あるいは、戻るとしても非常に遅くなる、ということが考えられる。そのため、ユーザがアナログスティック42に求めるであろう操作感が提供できない可能性がある。この点に関し、その解決策として、MRFによる抵抗力を小さくするか、あるいは復帰力自体を大きくすることが考えられる。しかし、抵抗力を小さくすると、当該抵抗力によって実現可能なユーザ体験やアプリケーションにおける表現が制約されることになってしまう。そこで第1の実施例では、上記MRFに与える電流の制御について以下に説明するような制御を行うことで、MRFを利用した感触の提示と初期位置復帰動作との両立を図っている。
【0095】
図17は、第1の実施例における制御を説明するためのタイミングチャートである。
図17では、縦軸が振幅(電流量)、横軸が時間を示す。
図17において、P1は振幅を示し、P2は周期(周波数)を示す。また、P3は、1周期の中で電流を流す時間(換言すれば、電圧を印加する時間、以下、印加時間と呼ぶ)を示す。本実施形態では、周期P2、印加時間P3については、1ミリ秒単位で制御可能であるとする。また、振幅P1、周期P2、および印加時間P3は、上述した「粘性パラメータ」に相当するものである。なお、印加時間P3に関しては、時間を指定する制御の他、デューティ比(Duty)を指定することで制御してもよい。すなわち、デューティ比をパラメータとして制御することで、結果的に、印加時間が制御されるようにしてもよい。この場合も、印加時間を制御していると言える。他のパラメータも同様であり、結果的に対象のパラメータが制御されていれば、その具体的手法や演算に用いられる各種パラメータは適宜採用されてよい。
【0096】
ここで、振幅P1の値としては、MRFの粘性が、上記復帰力付加部による復帰力よりも大きくなるような大きさの値であるとする。つまり、アナログスティック42から指を離しても傾いたままの状態となるような値であるとする。そして、第1の実施例では、ある周期において、最初に印加時間P3で示される時間だけP1で示される強さの電流を流し、それ以降は電流を流さない、という制御を行っている。その結果、印加時間P3で示される期間は、MRFの粘性は、指を離してもアナログスティック42が自律的に初期位置に復帰しないような状態(以下、高粘性状態と呼ぶ)となる。なお、ここでいう「初期位置に復帰しない」とは、基本的には指をアナログスティック42から離しても、アナログスティック42が動かないような状態を指す。但し、これに限らず、他の実施形態では、高粘性状態は、初期位置に向けて自律的に移動はしているが、その移動速度が非常に遅い、という状態であってもよい。例えば、高粘性状態ではないときは、指を離してから1秒もかからずに初期位置に復帰するが、高粘性状態の場合は、移動速度が遅いため、初期位置に復帰するまで5秒、あるいは10秒かかる、というような状態が考えられる。
【0097】
一方、P3以外の期間は、電圧を印加しない(電流を流さない)ようにするため、MRFの粘性も低下し、上記復帰力がMRFの粘性による抵抗力を上回り、アナログスティックが自律的に初期位置に向けて復帰し得る状態となる(以下、この状態を低粘性状態と呼ぶ)。このように、第1の実施例では、1周期の中において高粘性状態と低粘性状態とを設けることにより、アナログスティック42が初期位置に復帰するための期間を用意するものである。このような周期を繰り返すことで、高粘性状態と低粘性状態が周期的に交互に変化することになる。その結果、短期的にアナログスティック42が初期位置に復帰するための期間が作りだされることになり、この期間中にアナログスティック42を初期位置に復帰させることが可能となる。これにより、高粘性状態を用いた感触提示を実現しつつ、低粘性状態の期間となったタイミングで自律的な初期位置復帰も行い得るようにし、ユーザに違和感を与えないようにしながらこれらの操作感を両立している。
【0098】
ここで、上記低粘性状態である期間があまりにも短いと、アナログスティック42の初期位置への復帰動作が実質的に開始されないことが考えられる。そのため、第1の実施例では、低粘性状態である期間として、当該復帰動作の実質的な開始が担保されるような所定期間以上の長さが設定される。
【0099】
また、上記低粘性状態に関して、上記の例では電圧を印加しない場合を例示しているが、他の実施例では、上記低粘性状態の期間でも、アナログスティック42の初期位置復帰動作を阻害しない程度の電圧を印加してもよい。
【0100】
また、上記高粘性状態および低粘性状態を実現するための粘性パラメータの具体的な値については、上述したようなプリセットとしてコントローラ制御部41に記憶する構成としてもよい。あるいは、コントローラ制御部41に記憶させる構成に限らず、システムソフトウェアでこのようなプリセットをもたせる構成でもよい。更には、アプリケーション側でこのようなプリセットを定義し、アプリケーションプログラムの一部としてもたせるような構成としてもよい。このように高粘性状態および低粘性状態をプリセットとして予め定義することで、容易に高粘性状態および低粘性状態の指定ができるようになり、開発者の負担を軽減することが可能となる。
【0101】
次に、上記の高粘性状態と低粘性状態を利用する他の制御例について、いくつか説明する。
【0102】
まず、アプリケーションから粘度状態を指定し、これに応じてシステムソフトウェアで粘度パラメータを生成する、という制御例を説明する。この例では、まず、アプリケーションから、振幅P1および周期P2が粘度情報としてシステムソフトウェアに出力される。システムソフトウェアでは、当該振幅P1および周期P2に基づいて、印加時間P3を算出する。この算出において、システムソフトウェアは、当該振幅P1および周期P2が上記高粘性状態に該当するようにしつつ、アナログスティック42が初期位置に戻り得る期間(上記低粘性状態)が確保できるように、印加時間P3を算出する。例えば、システムソフトウェアは、振幅P1および周期P2と、これらに応じた適切な印加時間P3の値とが対応づけられたデータを有する構成とする。そして、アプリケーションから上記粘度情報を受け取ると、当該データを参照して、適切な印加時間P3を決定する。あるいは、印加時間P3の決定手法として、所定のアルゴリズムを用いて算出するようにしてもよい。そして、システムソフトウェアは、当該決定した印加時間P3と上記アプリケーションからの振幅P1および周期P2を上記粘性パラメータとしてコントローラ制御部41に出力する。このような制御で、上記粘性パラメータを構成する3つの成分全てをプリセットとして記憶する場合よりは、データサイズや記憶容量を削減することが可能である。
【0103】
次に、他の制御例として、上記復帰力付加部による復帰力に応じてMRFの粘性を調整する(粘性パラメータを補正する)という制御について説明する。これは、コントローラ4の個体差による復帰力の違いを考慮したものである。より具体的には、この制御では、所定の手法で復帰力の強さ・性能等を示す復帰力パラメータが取得される。そして、当該復帰力パラメータに応じて、上記粘性パラメータの内容を補正する、という制御を想定する。このような制御を行う場合は、まず、上記復帰力パラメータを取得する必要がある。この復帰力パラメータの取得手法としては、以下のようなものが考えられる。まず、コントローラ4等に、上記復帰力を直接的に計測するセンサを設けることが考えられる。また、他の手法としては、例えば、ユーザに対して、アナログスティック42を可動限界位置、例えば右端いっぱいまで傾けてから指を離す操作を行わせ、指を離した後、初期位置に戻るまでの復帰時間を計測する手法も考えられる。この場合は、この復帰時間をそのまま復帰力パラメータとして用いてもよいし、当該復帰時間に基づいて別途復帰力パラメータを算出してもよい。
【0104】
また、本実施形態では、上記復帰力付加部としてコイルばね等の弾性体を有する例を挙げているところ、アナログスティック42の位置に応じたコイルばねのトルクを上記復帰力パラメータとして用いる構成としてもよい。すなわち、アナログスティック42の現在位置の応じたコイルばねのトルクを所定の手法で算出し、これを復帰力パラメータとして上記粘性パラメータの内容を補正する制御を行ってもよい。
【0105】
また、上記復帰力パラメータの代わりに、アナログスティック42の位置を用いる制御を行ってもよい。すなわち、上記高粘性状態または低粘性状態を実現する上記粘性パラメータの内容をアナログスティック42の位置に応じて調整してもよい。また、上記高粘性状態または低粘性状態である期間をアナログスティック42の位置に応じて変化させる制御を行ってもよい。
【0106】
次に、他の制御例として、復帰力が小さいときには、復帰力が大きいときよりも、以下の制御のうち少なくとも一つの制御を行ってもよい。
(1)高粘性状態における粘性を低くする制御
(2)高粘性状態である期間を短くする制御
(3)低粘性状態における粘性を低くする制御(低粘性状態でもある程度電圧かけている場合を想定)
(4)低粘性状態である期間がより長くなるようにする制御
いずれの制御も、復帰力が小さい場合、初期位置に戻りやすくする制御を行うものとなっている。例えば、復帰力が小さくなるほど高粘性状態における粘性を低くする制御等が想定される。
【0107】
また、更に他の制御例として、上記復帰力パラメータで示される復帰力が所定の基準値よりも小さい場合に、復帰力が弱まっていると判定して、初期位置に戻りやすくする制御を行ってもよい。
【0108】
次に、上記復帰力パラメータの具体的な補正例を説明する。第1の実施例では、例えば、まず、アプリケーションやシステムソフトウェアからコントローラ制御部41に上記粘性パラメータが渡される。次に、コントローラ制御部41は、この粘性パラメータに対し、上記振幅P1および/または印加時間P3を上記復帰力パラメータに応じて補正する。そして、補正後の粘性パラメータを用いて粘性制御を行う。このような補正によって、上記復帰力に応じたMRFの粘性の調整を行うものである。ここで、粘性パラメータの補正に関して、コントローラ制御部41は、周期P2を変化させるという補正も可能ではある。しかし、周期P2を変化させて粘性を変化させた場合、ユーザに与える感触の変化が大きくなり、逆に違和感を与える可能性がある。そのため、本例では、周期P2については一定のものとして、振幅P1または印加時間P3を変化させることで、粘性の調整を行う。なお、当該周期の「一定」に関しては、厳密な意味での一定でなくてもよく、実質的に一定と言える程度であれば、周期に若干のブレや変動幅があってもかまわない。
【0109】
上記振幅P1または印加時間P3の変化内容に関して、第1の実施例では、具体的には、振幅P1は大きくし、印加時間P3は一定または減少させる、という制御を行う。これは、粘性を高めたい場合に、もし印加時間P3だけ大きくする制御を行うと、低粘性状態の期間が短くなり、初期位置復帰動作が起こりにくくなる可能性がある。そこで、印加時間P3ではなく振幅P1のほうを大きくすることで粘性を高めるものである。この場合、印加時間P3は変化させない(一定のまま)ようにしてもよいし、減少させることで低粘性状態の期間をより長く確保するようにしてもよい。
【0110】
なお、上記復帰力に応じた粘性パラメータの調整を行う主体としては、コントローラ制御部41を想定したものを例示したが、他の実施例では、システムソフトウェアまたはアプリケーション側で同様の処理を行うよう構成してもよい。
【0111】
このように、第1の実施例では、高粘性状態と低粘性状態を周期的に交互に変化させている。その結果、短期的にアナログスティック42が初期位置に復帰するための期間を作りだし、この期間中にアナログスティック42を初期位置に復帰させることが可能となる。これにより、アナログスティック42の操作感に関して、高粘性状態を用いた感触提示と、低粘性状態を利用した初期位置復帰動作とを両立している。
【0112】
[第2の実施例]
次に、第2の実施例について説明する。当該実施例は、主に、アナログスティック42の変位方向と、上記復帰力付加部による復帰力との関係を考慮した制御の例である。より具体的には、アナログスティック42の変位方向に関わらず、ユーザが指先に感じる抵抗感を一定にするような制御を行う例である。
【0113】
第2の実施例における制御の原理について説明する。まず、アナログスティック42の位置が初期位置に向かって変位する場合と、初期位置からみて外側に向かって変位する場合とを想定すると、スティックの変位方向に対する復帰力の向きが異なる場合がある。そのため、ある(一定の)トルクを指先に感じさせるには、アナログスティック42の位置や変位方向に応じて復帰力付加部による復帰力の影響を加味し、MRFの粘性を補正する必要がある。一例として、アナログスティック42をその可動範囲の左端から右端にまっすぐの軌跡で変位させる場合を想定する。
図18は、可動範囲内でアナログスティック42を左端から右端に変位させた場合の軌跡を示す模式図である。また、
図19は、後述する本実施形態における制御を行わない場合に、補正後のトルクがどのようになるのかを模式的に示す図である。また、
図20は、本実施形態における制御を行った場合は、補正後のトルクがどのようになるのかを模式的に示す図である。
【0114】
ここで、
図19、
図20において、「スティック位置の変位」はアナログスティックの位置の変位を示し、「ユーザの指の動き」は、実際のユーザの指の動きを示している。そして、
図19、
図20では、両者が同じ方向を向いていることを示している。「トルク」は上記復帰力の一例として示しており、例えば、上記のようにバネなどによって生じる定数である。「MRFトルク」は、MRFによる抵抗力を示す。「補正後トルク」は、(バネ等による)上記「トルク」を上記「MRFトルク」によって補正した値を示す。なお、
図19の矢印内の括弧付きの数値は、説明をわかりやすくするために例示した各トルクの「値」である(
図20も同様である)。また、当該トルクの値に関して、
図19では、アナログスティックが左端から初期位置へ移動する場合と、初期位置から右端へ移動する場合とで同じ数値を用いているが、これはあくまで例示であり、実際のユーザ操作においては別の変数・要素が介在し得るため、異なる数値となってもよい。
【0115】
まず
図19について説明する。
図19で示されるように、アナログスティック42(およびユーザの指)の変位方向は、右向きの方向となる。そのため、MRFトルクは、基本的に、左向きの抵抗力となる。このような状況を前提にすると、まず、左端から初期位置までの間は、トルクは右向きの力となり、初期位置から右端までの間では、トルクは左向きの力になる。ここで、アナログスティック42の位置が左端から右端に移動するまでの間、MRFの粘性を変化させない(一定である)場合を想定する。この場合に、MRFトルクによって補正する値を調整しないとすると、補正後のトルク量が大きく変わってしまう可能性がある。
図19の例で言うと、当該調整無しだと、左端から初期位置までの間は、右向きで「3」の力のトルクが左向きで「
2」の力のMRFトルクで相殺され、補正後トルクは左向きで「1」の力となる。その一方で、初期位置から右端までの間は、左向きで「3」の力のトルクに同じ左向きで「2」の力のMRFトルクが加わり、補正後トルクとしては、同じ左向きではあるが、「5」の力となってしまう。つまり、初期位置を境として、(向きの変化はないが)その力が大きく変わってしまうことになる。
【0116】
そこで、第2の実施例では、
図20で示すように、アナログスティック42の変位方向が初期位置に近づくような方向である場合は、アナログスティック42の変位方向が初期位置から離れる方向である場合よりも大きな粘性となるような制御を行う。つまり、「初期位置向きの変位時の粘性>初期位置から離れる変位時の粘性」という関係となるように、MRFの粘性を制御する。
図20の例では、前者の場合のMRFトルクの値は「7」であり、後者の場合の値は「1」として例示している。この場合、補正後トルクとしては、初期位置に近づく場合、初期位置から離れる場合の双方とも、「4」の力とすることができ、補正後トルクが大きく変化してしまうことを防ぐことができる。このような制御を行うことで、アナログスティック42の変位方向に関わらず補正後トルクを(ほぼ)一定とすることができる。
図20の例で言うと、アナログスティック42を左端から右端にまっすぐ変位させた場合でも、この期間中にユーザの指に感じられるトルクとして、ほぼ一定のトルクを提示できる。
【0117】
ここで、第2の実施例で用いる上記アナログスティック42では、X軸とY軸とで別々にMRFユニットを有する構成としている。そのため、X軸とY軸とで別々に粘性制御を行い、あるトルクを出すことができる。その一方で、アナログスティック42のトルク(粘性)は基本的にはX軸およびY軸の粘性の合算でユーザに提示される。このとき、各軸で算出されたトルクをそのまま利用して合算すると、トルクが強すぎてしまう可能性がある。そのため、第2の実施例では、あるトルクを出したい場合は、アナログスティック42の移動方向を考慮してX軸およびY軸の各方向のトルクを計算する。例えば、アナログスティック42の移動方向が右斜め上45度の方向に移動中である場合を想定する。この場合、目標とする(トルクの)力をfとし、移動方向をθとすると、X軸のトルクxは、“x=fcosθ“で算出され、Y軸のトルクyは、”y=fsinθ“で算出される。その結果、この場合は、X軸Y軸のそれぞれに、目標とする(トルクの)力を1/√2倍したものを出力する、ということになる。このような制御を行うことで、より適切なトルクを出すことが可能となる。なお、これはX軸とY軸とで別々にトルクを算出する構成を採っているためであり、他の実施例で、もし上記MRFユニット(に相当する要素)が1つだけであるような場合は、必ずしも上記のような制御が必要というわけではない。
【0118】
また、第2の実施例では、上記の移動方向に着目した制御に加え、更に次のような観点による制御も行う。上記復帰力付加部が弾性体である場合、その復帰力については、初期位置から遠いほど大きくなり、初期位置に近いほど小さくなると考えられる。そのため、第2の実施例では、上記の制御に加え、初期位置からの距離が近いときよりも遠いときのほうがMRFの粘性が大きくなるような制御も行う。このような初期位置からの距離を考慮して、MRFの粘性の大きさを上記MRFトルクの矢印の太さで示すと、
図21のような関係となる。
図21では、トルクについては、初期位置から遠いほど大きくなり、初期位置に近いほど小さくなることを示している。また、MRFトルクについては、左端から初期位置の間については、初期位置からから遠ざかるほど大きくなることを示している。初期位置から右端の間については、逆に初期位置に近いほど大きくなることを示している。そして、上記のようなトルクを上記アナログスティック42の位置に応じて変化するMRFトルクの大きさに応じた値となるよう補正することで、一定量となる補正後トルクが算出されることになる。
【0119】
なお、上記変位方向の検出手法に関しては、例えば、コントローラ制御部41が上記アナログスティック42の現在の位置と直前に検出された位置との変化を比較することで変位方向を算出するソフトウェア的な手法を用いてもよい。また、感圧センサ等の、変位方向が検出可能な所定のセンサを更にコントローラ4に実装して、その検出結果を利用するという、ハードウェア的な手法を用いてもよい。
【0120】
また、上記復帰力パラメータの補正に関して、第2の実施例では、上記振幅P1および/または印加時間P3を補正するものとする。つまり、上記第1の実施例と同様に、周期P2については一定のものとして、振幅P1または印加時間P3を変化させることで、粘性の調整を行う。上述のように、周期P2を変化させて粘性を変化させた場合、ユーザに与える感触の変化が大きくなりすぎる可能性があるためである。
【0121】
ここで、当該第2の実施例で示す制御は、基本的にはコントローラ4が主体となる。すなわち、上記
図14~
図15で示したような制御パターンBまたはCにおいて、コントローラ制御部41がスティック部401の変位方向を検出する(
図14の(B3)、
図15の(C2))。そして、コントローラ制御部41は、当該検出した方向に基づいて、アプリケーションまたはシステムソフトウェアから転送された粘性パラメータに対し、トルクに一定感が得られるように補正を行って、MRFの粘性を制御する(
図14の(B4)、
図15の(C3))。なお、コントローラ4を制御主体とするのは、このような変位方向を加味した粘性制御を行う場合は、上述したような処理速度の違いの観点から、より高い応答性が要求されると考えられるためである。
【0122】
また、上述したように、コントローラ制御部41には、プリセットライブラリが記憶される。そのため、アプリケーションまたはシステムソフトウェア側から見ると、粘性パラメータを直接的に指定する他、当該プリセットライブラリに登録されているプリセット番号を指定してコントローラ制御部41に転送する、という制御を行うことも可能である。この場合、コントローラ制御部41は、指定されたプリセット番号に対応する粘性パラメータをプリセットライブラリから読み出し、この粘性パラメータに対して上記のような変位方向や復帰力に応じた補正を行う。そして、補正後の粘性パラメータを用いてMRFの粘性を制御することになる。
【0123】
このように、第2の実施例では、アナログスティック42の変位方向と、上記復帰力付加部による復帰力との関係とを考慮した制御を行っている。これにより、アナログスティック42の変位方向に関わらず、ユーザが感じる抵抗力のばらつきを抑制し、ユーザが感じるトルクをほぼ一定にすることができる。
【0124】
[変形例]
なお、上記第1の実施例に関して、X軸とY軸の2軸(2次元)の方向変化が検出可能なアナログスティック42にMRFを適用する例を挙げたが、この他、同じく2次元の方向変化が検出可能なスライドスティックに上記構成を適用することも可能である。また、他の実施例では、このような2軸の入力が可能なデバイスに限らず、1軸(1次元)での方向変化が可能な入力デバイスに上記のような構成を適用してもよい。例えば、所定の1軸周りに回転するダイヤル式の操作子に上記のようなMRFユニットに相当する要素を適用してもよい。この場合は、粘性変化により回転のしやすさについて影響を与えつつ、初期位置への復帰も実現することができる。あるいは、上記デジタルボタン部44のような押下式のボタン(これは、上下方向にのみ移動可能であるといえる)に適用してもよい。あるいは、トリガー式のボタンに適用してもよい。この場合は、ボタンの押しやすさ(押圧に対する抵抗感)について、MRFの粘性による影響を与えることができる。
【0125】
また、その他、XYZの3軸(3次元)での方向変化が可能な入力デバイスについても上記MRFを適用し、第1の実施例で示したような制御を行ってもよい。
【0126】
また、上記第1の実施例に関して、高粘性状態として、指を離してもアナログスティック42が実質的に初期位置に自律的に復帰しないような状態を想定した例を説明した。他の実施例では、初期位置に自律的に復帰するか否かにかかわらず、上記低粘性状態のときよりも大きな電流がかけられた状態としてもよい。例えば、高粘性状態でも低粘性状態でも自律的な初期位置復帰動作は行われ得るが、初期位置に戻る速度に差異がある、という構成としてもよい。すなわち、高粘性状態のときより低粘性状態のときのほうが、初期位置復帰速度が速くなる、というような構成である。
【0127】
また、上述したアナログスティック42において、上記MRFユニットの位置は一例であって、上述のものに限らない。例えばスティック部401が直接MRFに接するような構成を採用してもよいし、その他、スティック部401の動きやすさに影響を与えることが可能であれば、どのような位置に設けてもよい。
【0128】
また、上述した粘性パラメータの補正に関しては、コントローラの種別やユーザの好みに応じて、指定された粘性パラメータをシステムソフトウェアやコントローラ制御部において最終的に補正するような構成としてもよい。例えば、指定された粘性パラメータ(のうちの1成分、例えば振幅)を1.2倍にする補正を行う、という制御を行ってもよい。このような補正倍率は、コントローラ種別に基づき算出されたり予め設定されたりしてもよい。あるいは、ユーザの指定内容に基づいて決定されてもよい。
【0129】
また、上記第1の実施例に関して、上記の例ではMRFの状態制御として高粘性状態および低粘性状態の2つの粘性状態を周期的に交互に変化させる制御の例を挙げた。この制御については、3つ以上の粘性状態を用いる制御を行ってもよい。例えば、それぞれ粘性の異なる状態A、状態B、状態Cとが所定の順番で周期的に変化するような制御を行ってもよい。
【0130】
また、上記の例では、情報処理装置本体2とモニタ3とコントローラ4が別々の構成である情報処理システムを例示したが、この他、情報処理装置本体と所定の表示部とアナログスティックやボタンとが一体化した携帯型の情報処理装置等にも上記構成や制御は適用可能である。
【符号の説明】
【0131】
1 情報処理システム
2 情報処理装置本体
3 モニタ
4 コントローラ
11 プロセッサ
12 記憶部
13 コントローラ通信部
14 映像音声出力部
41 コントローラ制御部
42 アナログスティック
44 デジタルボタン部
401 スティック部
402 X軸用駆動部品
403 Y軸用駆動部品
404 外郭部
405 X軸用可変抵抗器
406 X軸用MRFユニット
407 Y軸用可変抵抗器
408 Y軸用MRFユニット