(57)【要約】      （修正有）【課題】他の同様のユーザによって選定されるハプティック設定に基づいてユーザのための好ましいハプティック設定のセットを生成する。【解決手段】ユーザがコンピュータゲームまたはビデオなどのハプティックソフトウェアアプリケーションをロードするとき、サーバは、特定のコンピュータゲームまたはビデオとユーザの識別情報とを受信する通信を識別する。サーバは、コンピュータゲームまたはビデオの他のユーザについてデータベースを検索し、これらの他のユーザは当該のユーザと同様の設定選好を有する。サーバは、構成設定の好ましいセットを計算し、それらの設定をユーザに送り、ハプティック出力デバイスは、構成設定の好ましいセットに基づいてハプティック効果を発生する。【選択図】図６
2017111789.tif 000002
【特許請求の範囲】
【請求項１】
好ましいハプティック効果を発生するために使用されるハプティック設定の自動生成のための方法であって、前記方法は、
複数のハプティックソフトウェアアプリケーションのリストを備えるデータベースを維持するステップであって、各ハプティックソフトウェアアプリケーションが複数のハプティック設定に関連付けられる、ステップと、
第１のユーザによって実行されている第１のハプティックソフトウェアアプリケーションに関連付けられる第１のアプリケーション識別子を受信するステップと、
前記第１のハプティックソフトウェアアプリケーションに関連付けられる複数のハプティック設定を取り出すステップと、
前記複数のハプティック設定に基づいてハプティック設定の好ましいセットを計算するステップと、
ハプティック設定の前記好ましいセットを前記第１のユーザに送信するステップと、
好ましいハプティック効果を発生するためにハプティック設定の前記好ましいセットをハプティック出力デバイスによって使用するステップと、
を含む、方法。
【請求項２】
ハプティック設定の前記好ましいセットは、前記複数のハプティック設定の中央値として計算される、請求項１に記載の方法。
【請求項３】
前記複数のハプティック設定は、好ましい周波数および強度を含む、請求項１に記載の方法。
【請求項４】
前記ハプティック設定の前記好ましいセットを計算するステップは、サーバによって実施される、請求項１に記載の方法。
【請求項５】
前記第１のアプリケーション識別子および前記第１のユーザに関連付けられたハプティック設定の初期セットを受信するステップをさらに含む、請求項１に記載の方法。
【請求項６】
前記ハプティック設定の前記好ましいセットの計算するステップは、前記複数のハプティック設定およびハプティック設定の前記初期セットに基づく、請求項５に記載の方法。
【請求項７】
前記第１のユーザによって実行されている前記第１のハプティックソフトウェアアプリケーションに関連付けられる第１のユーザ識別子を受信するステップと、
前記第１のユーザ識別子に関連付けられる第２のアプリケーション識別子を識別するために前記データベースを検索するステップであって、ハプティック設定の第１のセットが前記第２のアプリケーション識別子および前記第１のユーザ識別子に関連付けられる、ステップと、
前記第１のアプリケーション識別子および前記第２のアプリケーション識別子の両方に関連付けられる第２のユーザ識別子を識別するために前記データベースを検索するステップであって、ハプティック設定の第２のセットが前記第１のアプリケーション識別子および前記第２のユーザ識別子に関連付けられる、ステップと、
ハプティック設定の前記第２のセットに基づいて前記第１のアプリケーション識別子のためのハプティック設定の好ましいセットを計算するステップと
をさらに含む、請求項１に記載の方法。
【請求項８】
同様の設定のセットを判定するために、前記第２のアプリケーション識別子および前記第１のユーザ識別子に関連付けられるハプティック設定の前記第１のセットを、前記第２のアプリケーション識別子および前記第２のユーザ識別子に関連付けられるハプティック設定のセットと比較するステップとをさらに含む、請求項７に記載の方法。
【請求項９】
ハプティック設定の前記好ましいセットは、同様の設定の前記セットに基づいて計算される、請求項８に記載の方法。
【請求項１０】
前記第１のアプリケーション識別子および前記第１のユーザに関連付けられるハプティック設定の初期セットをサーバによって受信するステップをさらに含む、請求項７に記載の方法。
【請求項１１】
ハプティック設定の前記好ましいセットの計算する前記ステップは、ハプティック設定の前記第２のセットおよびハプティック設定の前記初期セットに基づく、請求項１０に記載の方法。
【請求項１２】
好ましいハプティック効果を発生するためのハプティック構成設定の生成のためのシステムであって、前記システムは、
ハプティック対応の第１のアプリケーションプログラムを処理するように構成されたハプティック対応デバイスと、
データ収集クライアントを実行するように構成された前記ハプティック対応デバイス内に含まれているプロセッサであって、前記データ収集クライアントが、ハプティック構成情報を収集するように構成された、プロセッサと、
サーバと通信するように構成された前記ハプティック対応デバイス内の通信システムと、を備え、
前記通信システムは、第１のユーザによって実行されている第１のハプティック対応アプリケーションプログラムに関連付けられる第１のアプリケーション識別子および第１のユーザ識別子を前記サーバに送信し、
前記通信システムは、前記サーバから前記第１のアプリケーションプログラムのためのハプティック設定の好ましいセットを受信し、ハプティック設定の前記好ましいセットの生成は、
前記第１のユーザ識別子に関連付けられる第２のアプリケーション識別子を識別するためにデータベースを検索することであって、ハプティック設定の第１のセットが前記第２のアプリケーション識別子および前記第１のユーザ識別子に関連付けられる、ことと、
前記第１のアプリケーション識別子および前記第２のアプリケーション識別子の両方に関連付けられる第２のユーザ識別子を識別するために前記データベースを検索することであって、ハプティック設定の第２のセットが前記第１のアプリケーション識別子および前記第２のユーザ識別子に関連付けられる、ことと、
好ましいハプティック効果を発生するために前記ハプティック対応デバイスが使用するハプティック設定の前記第２のセットに基づいて前記第１のアプリケーション識別子のためのハプティック設定の前記好ましいセットを計算することと、
を含む、システム。
【請求項１３】
同様の設定のセットを判定するために、前記第２のアプリケーション識別子および前記第１のユーザ識別子に関連付けられるハプティック設定の前記第１のセットは、前記第２のアプリケーション識別子および前記第２のユーザ識別子に関連付けられるハプティック設定のセットと比較される、請求項１２に記載のシステム。
【請求項１４】
ハプティック設定の前記好ましいセットは、同様の設定の前記セットに基づく、請求項１２に記載のシステム。
【請求項１５】
前記第１のアプリケーション識別子および前記第１のユーザ識別子に関連付けられるハプティック設定の初期セットを前記サーバに送信するステップをさらに備える、請求項１２に記載のシステム。
【請求項１６】
ハプティック設定の前記好ましいセットは、ハプティック設定の前記第２のセットおよびハプティック設定の前記初期セットに基づく、請求項１５に記載のシステム。
【請求項１７】
プロセッサによって実行されたとき、好ましいハプティック効果を発生するために使用されるハプティック設定を前記プロセッサに生成させる命令を記憶した非一時的コンピュータ可読媒体であって、前記生成は、
複数のハプティックソフトウェアアプリケーションのリストを備えるデータベースを維持するステップであって、各ハプティックソフトウェアアプリケーションが複数のハプティック設定に関連付けられる、ステップと、
第１のユーザによって実行されている第１のハプティックソフトウェアアプリケーションに関連付けられる第１のアプリケーション識別子および第１のユーザ識別子を受信するステップと、
前記第１のユーザ識別子に関連付けられる第２のアプリケーション識別子を識別するために前記データベースを検索するステップであって、ハプティック設定の第１のセットが前記第２のアプリケーション識別子および前記第１のユーザ識別子に関連付けられる、ステップと、
前記第１のアプリケーション識別子および前記第２のアプリケーション識別子の両方に関連付けられる第２のユーザ識別子を識別するために前記データベースを検索するステップであって、ハプティック設定の第２のセットが前記第１のアプリケーション識別子および前記第２のユーザ識別子に関連付けられる、ステップと、
ハプティック設定の前記第２のセットに基づいてハプティック設定の好ましいセットを計算するステップと、
ハプティック設定の前記好ましいセットを前記第１のユーザに送信するステップと、
好ましいハプティック効果を発生するためにハプティック設定の前記好ましいセットをハプティック出力デバイスによって使用するステップと、
を含む、コンピュータ可読媒体。
【請求項１８】
前記生成は、同様の設定のセットを判定するために、前記第２のアプリケーション識別子および前記第１のユーザ識別子に関連付けられるハプティック設定の前記第１のセットを、前記第２のアプリケーション識別子および前記第２のユーザ識別子に関連付けられるハプティック設定のセットと比較するステップとをさらに含む、請求項１７に記載のコンピュータ可読媒体。
【請求項１９】
ハプティック設定の前記好ましいセットは、同様の設定の前記セットに基づいて計算される、請求項１８に記載のコンピュータ可読媒体。
【請求項２０】
前記生成は、前記第１のアプリケーション識別子および前記第１のユーザに関連付けられるハプティック設定の初期セットをサーバによって受信するステップをさらに含む、請求項１９に記載のコンピュータ可読媒体。
【請求項２１】
ハプティック設定の前記好ましいセットの計算する前記ステップは、ハプティック設定の前記第２のセットおよびハプティック設定の前記初期セットに基づく、請求項２０に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
一実施形態は、一般にハプティック効果を対象とする。より詳細には、一実施形態は、ハプティック対応デバイスにおけるハプティック構成設定の生成を対象とする。
【背景技術】
【０００２】
ハプティクスは、力、振動、および動きなどのハプティックフィードバック効果（すなわち、「ハプティック効果」）をユーザに適用することによってユーザの触覚を利用する触覚および力フィードバック技術である。モバイルデバイス、タッチスクリーンデバイス、およびパーソナルコンピュータなどのデバイスは、ハプティック効果を生成するように構成され得る。概して、ハプティック効果を生成することが可能な埋込みハードウェア（アクチュエータなど）への呼出しは、デバイスのオペレーティングシステム（「ＯＳ」）内でプログラムされ得る。これらの呼出しは、どのハプティック効果を再生すべきかを指定する。例えば、ユーザが、例えば、ボタン、タッチスクリーン、レバー、ジョイスティック、ホイール、または何らかの他のコントロールを使用してデバイスと対話するとき、デバイスのＯＳは、制御回路を通して再生コマンドを埋込みハードウェアに送ることができる。埋込みハードウェアは、次いで、ユーザによって知覚される適切なハプティック効果を発生する。
【０００３】
異なるハプティック対応アプリケーションを用いる異なるユーザは、異なる設定を選好する。一部の人は、例えば、強いハプティック効果を選好するが、他者は、ハプティック効果がより微細であるか、またはないことさえを選好する。ハプティックコンテンツのデフォルト設定は、典型的にはすべてのユーザに同じであり、したがって、ユーザの一部には許容できるが、他者には許容できないことがある。
【発明の概要】
【０００４】
本発明の一実施形態は、他の同様のユーザによって選定されるハプティック設定に基づいてユーザのための好ましいハプティック設定のセットを生成する方法である。この方法は、関連付けられるハプティック構成設定を用いてハプティックソフトウェアアプリケーションのデータベースを維持するステップを含む。ユーザがハプティックソフトウェアアプリケーション、例えばコンピュータゲームまたはビデオをロードするとき、サーバは、特定のコンピュータゲームまたはビデオとユーザの識別情報とを受信する通信を識別する。サーバは、コンピュータゲームまたはビデオの他のユーザについてデータベースを検索し、これらの他のユーザは当該のユーザと同様の設定選好を有する。サーバは、構成設定の好ましいセットを計算し、それらの設定をユーザに送り、ユーザのハプティック出力デバイスは、構成設定の好ましいセットに基づいてハプティック効果を発生する。
【図面の簡単な説明】
【０００５】
【図１】本発明の一実施形態によるハプティック対応システムの図である。
【図２】一実施形態による、ハプティック構成情報を転送するためにサーバと通信する複数のハプティック対応デバイスを示す。
【図３】一実施形態による、ハプティック構成設定によって制御されるいくつかの可能なハプティック効果を示す。
【図４】一実施形態による、初期ハプティック構成設定と変更されたハプティック構成設定とをサーバにアップロードするためのデータ収集クライアントの使用を示す方法フロー図である。
【図５】一実施形態による、同じゲームまたはビデオを再生したユーザからハプティック構成設定を取得するステップを示す方法フロー図である。
【図６】一実施形態による、ユーザの選好と他のユーザによって使用される設定とに基づいてハプティック構成設定を取得するステップを示す方法フロー図である。
【図７】実施形態が実装され得る例示的なコンピュータシステムの図である。
【発明を実施するための形態】
【０００６】
ソフトウェア産業は、それらの製品をプロモートし、より現実的なエクスペリエンスをユーザに提供するためにハプティック効果を取り入れる。しかしながら、ハプティック効果の選好はユーザの間で異なり、したがって、ゲームおよびビデオまたは他のハプティックコンテンツにおいて定義された初期デフォルト設定を使用して最適なエクスペリエンスを提供することが困難になる。ハプティック設定に関する情報の自動収集および配布は、同様の選好をもつ他のユーザに基づくハプティック設定の調整を可能にする。
【０００７】
一実施形態は、ハプティック対応デバイスをもつユーザのためのハプティック設定の自動記憶を提供する。実施形態は、ハプティックソフトウェアアプリケーションのリストを含むデータベースを維持することを含み、各アプリケーションは、ハプティック構成設定のセットに関連付けられる。また、ハプティック構成設定のオフライン変更を可能にするために、データベースの一部分がユーザのローカルデバイスにダウンロードされ得ることが可能である。同様にして、ネットワーク接続が利用可能であるとき、ローカルデバイス上のデータベースの一部分が定期的に更新され得る。ユーザがハプティック対応アプリケーションを開始するとき、ハプティック構成設定はサーバにアップロードされる。別の実施形態では、ユーザがハプティック構成設定のいずれかを変更するときはいつでも、変更された設定がサーバにアップロードされる。サーバは、任意のタイプのコンピュータシステムまたはコンピューティングデバイスのための一般的な用語であり、限定はしないが、図７に示されたコンピュータシステム７００を含む。サーバは、データを共有する任意のタイプのコンピューティングデバイス、例えば、ハンドヘルド処理デバイスであり得る。
【０００８】
一実施形態では、ユーザがハプティック対応アプリケーションを開始するとき、ユーザによって実行されているアプリケーションを定義するアプリケーション識別子がサーバに送られる。アプリケーション識別子が与えられれば、サーバは、そのアプリケーションのために他のユーザによって使用されるハプティック設定のすべてを取り出す。サーバは、次いで、ハプティック設定の好ましいセット、例えば、平均、中央値、または加重平均を計算し、ハプティック設定の提案される好ましいセットをユーザに送り返す。
【０００９】
一実施形態では、ユーザがハプティック対応アプリケーション、「第１のアプリケーション」を開始するとき、ユーザによって実行されているアプリケーションを定義するアプリケーション識別子がサーバに送られる。さらに、ユーザ識別子もサーバに送られ、サーバは特定のユーザを識別する。サーバは、特定のユーザによって使用される他のアプリケーション、「第２のアプリケーション」を識別するためにサーバのデータベースを検索する。サーバは、次いで、第１のアプリケーションと第２のアプリケーションの両方を使用した他のユーザについてデータベースを検索する。サーバは、次いで、他のユーザによる第１のアプリケーションのハプティック設定に基づいてハプティック設定の好ましいセットを計算し、ハプティック効果を発生するためにハプティック出力デバイスが使用するハプティック設定のその好ましいセットをユーザに送信する。
【００１０】
ユーザがハプティック対応アプリケーションを開始するときに上記のプロセスをトリガするのではなく、ハプティック設定は、何らかのハプティック対応アプリケーションが実行するたびに検査され得、ユーザに変更を定期的に提案するか、またはそのような変更を自動的に行い得る。例えば、ユーザがあるゲームまたはビデオにおいてハプティック強度設定を「低」に変更する場合、システムは、「このビデオにおいて低いハプティック強度を選択したユーザは、ゲームＸにおいて微細な効果を選択し、ビデオＹにおいて弱い効果を選択したことにもなります。これらの設定を変更されますか？」と述べるダイアログをユーザに提示し得る。このようにして、ユーザは、ユーザのゲームまたはビデオのすべてにわたってハプティック構成設定の変更を手動で伝搬する必要がなくなるであろう。
【００１１】
一実施形態では、システムは、データ収集クライアントを実行するプロセッサを含むハプティック対応デバイスを含む。システムはまた、ハプティック対応デバイスがサーバと通信することを可能にする通信システムを含む。通信システムは、サーバに第１のアプリケーション識別子および第１のユーザ識別子を送信する。応答して、システムは、第１のアプリケーションのためのハプティック設定の好ましいセットを受信する。ハプティック設定の好ましいセットの生成は、ハプティック設定の第１のセットを含む第１のユーザ識別子に関連付けられる第２のアプリケーション識別子についてデータベースを検索することによって達成される。さらに、データベースは、第１のアプリケーションおよび第２のアプリケーションの両方に関連付けられる第２のユーザ識別子を識別するために検索される。ハプティック設定の好ましいセットは、第２のユーザおよび第１のアプリケーションに関連付けられるハプティック設定に基づいて計算される。別の実施形態では、システムは、第１のユーザと同様の設定を選定する第２のユーザの履歴に基づいて第２のユーザを識別し、次いで、第２のユーザによって選定されたハプティック設定に基づいてハプティック設定の好ましいセットを決定する。ハプティック設定の好ましいセットは、次いで、好ましいハプティック効果を発生するためにハプティック出力デバイスによって使用される。
【００１２】
一実施形態では、プロセッサがハプティック設定を生成する。生成は、ハプティックソフトウェアアプリケーションのリストを含むデータベースを維持することを含み、各アプリケーションは、ハプティック構成設定のセットに関連付けられる。ユーザがハプティック対応アプリケーション、「第１のアプリケーション」を開始するとき、ユーザによって実行されているアプリケーションを定義するアプリケーション識別子がサーバに送られる。さらに、ユーザ識別子もサーバに送られ、サーバは特定のユーザを識別する。サーバは、特定のユーザによって使用される他のアプリケーション、「第２のアプリケーション」を識別するためにサーバのデータベースを検索する。サーバは、次いで、第１のアプリケーションと第２のアプリケーションの両方を使用した他のユーザについてデータベースを検索する。サーバは、次いで、他のユーザによる第１のアプリケーションのハプティック設定に基づいてハプティック設定の好ましいセットを計算し、ハプティック設定のその好ましいセットをユーザに送信する。別の実施形態では、特定のユーザと同様の設定を選定した他のユーザが識別され、ハプティック設定の好ましいセットは、同様のユーザによって選定されたハプティック設定に基づいて判定される。
【００１３】
図１は、本発明の一実施形態によるハプティックシステム１００のブロック図である。システム１００はハプティックデバイス１１０を含む。ハプティックデバイス１１０はまた、プロセッサ１２０と、アクチュエータ１５２を含むアクチュエータシステム１５０と、オペレーティングシステム１３２、データ収集クライアント１３４、構成クライアント１３６を含んでいるメモリ１３０と、オーディオ出力１４０と、センサ１６０とを含む。さらに、システム１００は、データストリーム１７０を介してコンテンツおよびデータを受信する。
【００１４】
ハプティックデバイス１１０はまた、タッチセンシティブでもあり得るディスプレイスクリーンを含むことができる。したがって、画像を表示することに加えて、スクリーンは、ユーザによって提供されるタッチなどのタッチを認識することが可能であり、また、表面上のタッチの位置、圧力の大きさ、および持続時間のいずれかを認識し得る。タッチに対応するデータは、プロセッサ１２０、またはシステム１００内の別のプロセッサに送られ、プロセッサ１２０は、タッチを解釈し、それに応じてハプティック効果信号を生成する。タッチ面は、容量性検知、抵抗性検知、表面弾性波検知、圧力検知、光検知などを含む、いずれかの検知技術を使用してタッチを検知し得る。タッチ面は、マルチタッチ接触を検知し得、複数のタッチと、同時に行われるタッチのロケーションとを区別することが可能であり得る。
【００１５】
ハプティックデバイス１１０は、例えばプロセッサ１２０、メモリ１３０、アクチュエータシステム１５０、およびオーディオ出力１４０を含む、他の構成要素を含んでいる。ハプティックデバイス１１０はまた、電源、Ｉ／Ｏジャック、マイクロフォン、制御ボタン、カメラなど、図示されていない他の必要な構成要素を含むことができる。
【００１６】
ハプティックデバイス１１０は、メモリ１３０に結合されたプロセッサ１２０を含み、メモリ１３０は、ハプティック効果命令に加えてオペレーティングシステムを記憶することができる。メモリ１３０はまた、ハプティック効果のための構成設定を記憶する。ハプティック効果命令は、「ハプティックトラック」とも呼ばれ、所望のハプティック効果を発生するようにアクチュエータシステム１５０を制御するコマンドのストリームをプロセッサ１２０に提供する。アクチュエータシステム１５０は１つまたは複数のアクチュエータ１５２に結合される。プロセッサ１２０は、データストリーム１７０を通してコンテンツを受信する。コンテンツは、データ、命令、ビデオおよび／またはオーディオコンテンツを含むことができる。データストリーム１２０はまた、オーディオ／ビデオコンテンツに関連付けられたハプティック効果命令のハプティックトラックを含むことができる。ハプティック効果は、変形、振動、または両方の組合せを含むことができる。さらに、変形および振動がそれら自体の「トラック」中に含まれていることがあり、それにより、振動トラックおよび変形トラックを含むハプティックトラックが生じる。場合によっては、ハプティックトラックはまた、スクリーンおよびオーディオ出力１４０上のコンテンツの再生と、プロセッサ１２０によるハプティック効果命令の実行との間の同期を保証するために、オーディオ／ビデオコンテンツと対応するタイムマーカーを含む。
【００１７】
ハプティック対応アプリケーションはまた、複数のハプティックトラックを含んでいることがあり、各トラックは異なる態様を強調する。例えば、ムービートレーラにおいて複数のトラックがあり得、あるトラックはビデオのアクション態様を強調し得るが、別のトラックはムードまたは感情態様を強調し得る。同じ手法がメディアプレーヤに適用され得、異なるトラックは、異なる設定がビデオごとに調整されることを可能にし得る、異なるハプティック設定を含んでいる。
【００１８】
プロセッサ１２０は、構成設定パラメータに基づいて、どのハプティック効果が再生されるべきかと、それらの効果が再生される順序とを決定することができる。概して、特定のハプティック効果を定義する構成設定パラメータは、大きさと、周波数と、持続時間とを含む。特定のハプティック効果を決定するために、ストリーミングモーターコマンドなどの低レベル構成設定パラメータも使用され得る。ハプティック効果は、ハプティック効果が生成されるときにこれらのパラメータの何らかの変動を含むか、またはユーザの対話に基づくこれらのパラメータの変動を含む場合、ハプティック効果は「動的」と見なされ得る。
【００１９】
アクチュエータ１５２は１つまたは複数のアクチュエータを含むことができ、そのようなアクチュエータは変形タイプアクチュエータと振動タイプアクチュエータとを含み得るか、または変形アクチュエータが変形し振動するように使用され得る。アクチュエータは、限定はしないが、偏心回転質量（「ＥＲＭ」）、線形共振アクチュエータ振動モーター（「ＬＲＡ」）、圧電モーター、またはソレノイドアクチュエータを含む、任意のタイプのモーターを含むことができる。アクチュエータ１５２に加えてまたはその代わりに、システム１００は、静電摩擦（「ＥＳＦ」）、超音波表面摩擦（「ＵＳＦ」）を生成するデバイス、超音波ハプティックトランスデューサで音響放射圧を誘起するデバイス、ハプティック基板および可撓性または変形可能表面または形状変化デバイスを使用しユーザの体に取り付けられ得るデバイス、空気ジェットを使用する空気のパフなどの射出ハプティック出力を提供するデバイス、電気的筋肉刺激を提供するデバイスなど、非機械的または振動触覚ハプティクスデバイスであり得る他のタイプのハプティック出力デバイス（図示せず）を含み得る。さらに、アクチュエータ１５２は、１つまたは複数の軸に沿って、例えば、コーナーに沿ってハプティックデバイス１１０を曲げさせるかまたはねじらせるために、形状記憶合金（「ＳＭＡ」）ワイヤを利用することができる。作動のために、スマート材料、モーターによって引かれるストリング、または可動ピンのアレイなど、他の技術も使用され得る。
【００２０】
アクチュエータシステム１５０およびアクチュエータ１５２は、様々な振動およびゆすり効果を含むハプティック効果を発生する。アクチュエータシステム１５０およびアクチュエータ１５２はまた、ハプティックデバイス１１０の形状を変形するために使用される。そのような変形は、単一の軸、２つの軸において、または３つの軸において起こることができ、ハプティックデバイス１１０の拡張、ねじりまたは曲げを１、２、または３次元で発生することができる。
【００２１】
プロセッサ１２０は、任意のタイプの汎用プロセッサである得か、または、特定用途向け集積回路（「ＡＳＩＣ」）など、ハプティック効果を提供するために特に設計されたプロセッサであり得る。プロセッサ１２０は、システム１００全体を動作させる同じプロセッサであり得るか、または別個のプロセッサであり得る。プロセッサ１２０は、アクチュエータシステム１５０によってどの特定のハプティック効果が発生されるべきかに関してプロセッサ１２０に指示するハプティック効果命令をメモリ１３０からフェッチする。ハプティック効果命令は、プリロードされメモリ中に常駐し得るか、あるいはそれらは、内蔵ポート、例えばユニバーサルシリアルバス（「ＵＳＢ」）からロードされるか、またはデータストリーム１７０を介してダウンロードされ得る。プロセッサ１２０はまた、データストリーム１７０中で受信されたコンテンツに基づいてハプティック効果命令を生成することができる。データストリーム１７０は、実際のハプティック効果命令を含んでいることがあり、それらのハプティック効果命令が次いでメモリ１３０に記憶され得るか、あるいはデータストリーム１７０は、オーディオおよび／または視覚コンテンツを含んでいることがあり、このコンテンツから、プロセッサ１２０は、ハプティック効果命令をリアルタイムで構成するか、または後の再生のためにメモリ１３０に記憶するために構成し得る。システム１００は、データストリーム１７０を介してデータを送信および／または受信する実施形態では、Ｗｉ−Ｆｉサブシステムまたはセルラーリンクなど、通信デバイス（図示せず）をさらに含む。
【００２２】
メモリ１３０は、ランダムアクセスメモリ（「ＲＡＭ」）または読取り専用メモリ（「ＲＯＭ」）または任意の他のタイプのコンピュータ可読メモリなど、任意のタイプの記憶デバイスまたはコンピュータ可読媒体であり得る。メモリ１３０は、オペレーティングシステム１３２を含めてプロセッサ１２０によって実行される命令を記憶する。データ収集クライアント１３４は、メモリ１３０中に常駐し、システム１００に関するデータをデータストリーム１７０を介して通信するという意図で、そのデータの収集を担当する。構成クライアント１３６もメモリ１３０中に常駐し、構成データなどのデータを受信することを担当する。メモリ１３０はまた、プロセッサ１２０によって実行されたとき、以下でより詳細に開示するように、ハプティック効果を提供するアクチュエータシステム１５０およびアクチュエータ１５２のための駆動コマンドを生成する命令であるハプティック効果命令（図示せず）を含む。メモリ１３０はまた、プロセッサ１２０の内部にあるか、または内部メモリと外部メモリとの任意の組合せであり得る。
【００２３】
プロセッサ１２０は、アクチュエータシステム１５０にコマンドおよび制御信号を出力し、アクチュエータシステム１５０は、所望のハプティック効果を引き起こすために必要とされる電流および電圧（例えば、「モーター信号」）をアクチュエータ１５２に供給するために使用される電子的構成要素および回路を含む。前述のように、システム１００は２つ以上のアクチュエータ１５２を含み得、各アクチュエータは、プロセッサ１２０にすべて結合された別個の駆動回路（図示せず）を含み得る。
【００２４】
システム１００は、ハプティックデバイス１１０との相互作用を検知するために、センサ１６０など、様々なセンサを含み得る。センサ１６０は、特に、相互作用中に変形の大きさを測定するためのひずみゲージセンサ、ハプティックデバイスに印加される力／応力を測定するための力検知抵抗器（「ＦＳＲ」）センサ、タッチ対応ディスプレイにおいて単一または複数のタッチ入力のロケーションを検出するためのマルチタッチタッチセンサ、各タッチロケーションの下で印加される圧力を測定するためのマルチタッチ圧力センサ、環境条件を捕捉するための温度／湿度／大気圧センサ、ディスプレイの動き、速度、加速度および配向を特徴づけるための加速度計／ジャイロスコープ／磁力計、ユーザの音声コマンドまたは環境オーディオ情報を捕捉するためのマイクロフォン、ならびに他のデバイスから／に情報をワイヤレス受信／送信するためのワイヤレス送信機からなり得る。センサ１６０に対応するデータは、プロセッサ１２０、またはシステム１００内の別のプロセッサに送られ、プロセッサ１２０は、センサデータを解釈し、それに応じて、ハプティック効果信号を生成し、データストリーム１７０、オーディオ応答、および視覚的画像を通してフィードバックすることができる。
【００２５】
上記で説明したアクチュエータに加えて、システム１００は、エレクトロアクティブポリマー（「ＥＡＰ」）アクチュエータ、スマート流体アクチュエータ、流体力学的流体アクチュエータ、マクロファイバー複合材料（「ＭＦＣ」）アクチュエータ、形状記憶合金（「ＳＭＡ」）アクチュエータ、圧電アクチュエータ、および微小電子機械システム（「ＭＥＭＳ」）アクチュエータを含む、可撓性、セミリジッド、またはリジッドアクチュエータを含む、振動触覚または運動感覚フィードバックを提供するための様々なアクチュエータを含み得る。
【００２６】
システム１００は、セルラー電話、パーソナルデジタルアシスタント（「ＰＤＡ」）、スマートフォン、コンピュータタブレット、ゲーミングコンソール、車両ベースインターフェースなど、ハンドヘルドデバイスであり得るか、あるいは１つまたは複数のアクチュエータとともにハプティック効果システムを含む任意の他のタイプのフレキシブルなデバイスであり得る。ユーザインターフェースは、タッチセンシティブ表面であり得るか、またはマイクロフォン、カメラなど、任意の他のタイプのユーザインターフェースであり得る。２つ以上のアクチュエータをもつ実施形態では、回転能力を有する各アクチュエータは、デバイス上で広範囲のハプティック効果を生じるために異なる回転能力を有し得、例えば、各アクチュエータは個々に制御され得る。また、いくつかの回転アクチュエータは、他の回転アクチュエータの回転軸に対してある角度でそれらの回転軸を有する。同様に、他の能力をもつ複数のアクチュエータをもつ実施形態では、各アクチュエータは、デバイス上で広範囲のハプティック効果を示すために個々に制御され得る。例えば、ハプティックデバイス１１０の４つのコーナーの各々を独立して変形するために複数のアクチュエータが使用され得、各々は変形のレートおよび度合いが異なる。
【００２７】
図２は、ハプティック対応デバイス通信システム２００の図である。システム２００は、ストレージシステム２１５と、ハプティック対応デバイス２２０と、通信クラウドシステム２３０と、複数の他のハプティック対応デバイス２４０（２４０−１〜２４０−Ｎと標示された）とともにサーバ２１０を含む。
【００２８】
通信クラウドシステム２３０は、ローカルエリアネットワーク（「ＬＡＮ」）、ワイドエリアネットワーク（「ＷＡＮ」）、インターネットまたはそれらの組合せなど、１つまたは複数のネットワークを含むことができる。通信クラウド２３０への構成要素の接続は、ワイヤード接続、ワイヤレス接続、またはワイヤード接続とワイヤレス接続との組合せであり得る。サーバ２１０およびストレージ２１５は、任意のタイプのコンピュータおよびストレージであり得、可能なコンピュータベースシステムについての説明は図７においてより完全に論じる。
【００２９】
一実施形態では、ハプティック対応デバイス２４０−１〜Ｎのユーザが彼らのデバイス上で様々なハプティック対応アプリケーション、例えば、ゲームおよびビデオを実行すると、各ユーザは、各ハプティック対応アプリケーションに関連付けられるデフォルトハプティック設定を有効化、無効化または変更するオプションを有する。各ハプティック対応デバイス２４０上にはデータ収集クライアント（「ＤＣＣ」）が常駐する。ＤＣＣは、アプリケーションまたはモバイルオペレーティングシステムのハプティック構成に関する情報を収集する１つのクライアントソフトウェアである。ユーザがアプリケーションを最初にインストールするかまたはアプリケーションのハプティック設定に変更を加えるときはいつでも、ＤＣＣはその情報をサーバ２１０に通信する。送信される情報は、少なくともアプリケーションの識別子と、初期デフォルトハプティック設定、または初期デフォルトハプティック設定に対する変更のいずれかとを含む。一実施形態では、この情報は、追加の識別情報なしに匿名で提供され得る。
【００３０】
別の実施形態では、ＤＣＣはまた、アプリケーションのハプティック設定を特定のユーザに、または特定のデバイスに関連付ける。例えば、ＤＣＣは、人口統計、ロケーション、デバイス構成、オペレーティングシステム、インストールされた他のアプリケーションなどを含む記述的ユーザ情報に加えてユーザ識別子またはデバイス識別子を通信し得る。そのような情報は、ＤＣＣが最初にアクティブにされるとき、またはユーザによってアカウントが手動で作成されるときにサーバ２１０に１回送信され得る。
【００３１】
ＤＣＣ機能は、アプリケーションレベルのオペレーティングシステムにおいて実装され得る。サーバ２１０は、例えば、サーバ２１０におよびそれから情報を通信するために個々のアプリケーションのモバイルオペレーティングシステムによって使用され得るクラウドアプリケーションプログラミングインターフェース（「ＡＰＩ」）を提供し得る。さらに、ソフトウェアに機能を組み込むためにオペレーティングシステムまたはサービスベンダーによってソフトウェア開発キット（「ＳＤＫ」）も提供され得る。
【００３２】
一実施形態では、ユーザは、上記の機能を実装しないこと、およびサーバ２１０にどんなデータも送らないことを選択し得る。しかしながら、そのユーザは、他者によって提供される情報から依然として恩恵を受け得る。
【００３３】
一実施形態では、ＤＣＣソフトウェアは、通信クラウド２３０を通してサーバ２１０およびストレージ２１５に通信するハプティック対応デバイス２４０上にインストールされる。ＤＣＣクライアントソフトウェアは、サーバ２１０およびストレージ２１５にハプティック構成に設定情報を送る。最も単純なレベルでは、この情報は、特定のハプティック対応アプリケーションのために最も適切なデフォルトハプティック構成を判定するために使用され得る。例えば、ハプティックデバイス２２０のユーザが新しいアプリケーションをインストールし、ここで、ハプティックデバイス２４０のユーザは、その同じアプリケーションをすでにインストールしており、関連付けられるハプティック構成設定に調整を行っており、このハプティック構成設定はサーバ２１０に送られ、ストレージ２１５に記憶されている。
【００３４】
一実施形態では、ユーザの大部分がハプティック効果の強度を低減するようにゲームまたはビデオの設定を変更している場合、例えば、上記の例ではハプティックデバイス２２０への、アプリケーションの将来のインストールは、低減された強度ハプティック設定にデフォルト設定され得る。
【００３５】
しかしながら、一部のユーザはバイアスを経験している、例えば、強いハプティック効果を選好することがあり、これらのバイアスが考慮に入れられ得る。さらに、一部のユーザは、特定のアプリケーションのデフォルトハプティック設定を嫌うが、設定を変更する作業に失敗することがある。同様に、一部のユーザは、微細なハプティック効果があれば彼らはより幸せになるはずだが、簡単のためにハプティクスを完全にオフにすることがある。デフォルト設定からの変更は、ターゲット設定が取得されるまで設定を緩やかに変更するために制御理論のアルゴリズムを使用して、漸進的であり得る。
【００３６】
一実施形態では、システム２００は、以前に表明された選好に基づいてパーソナライズされた推奨を行うことができるようになり得る。例えば、ユーザがアプリケーションにおいて微細なハプティック効果（例えば、「アングリーバード」）を選択した場合、そのユーザは、別のアプリケーションにおいて同様の微細なハプティック効果（例えば、「キャンディークラッシュ」）を選定する可能性がある。別の実施形態では、システム２００は、既存のアプリケーションのために新しいユーザと同じハプティック設定を選択した他のユーザ（例えば、ハプティックデバイス２００上のユーザとハプティックデバイス２４０のユーザの両方がアングリーバードを用いる）に基づいて、新しいアプリケーションのユーザのための推奨の基礎を形成し（例えば、ハプティックデバイス２２０上のユーザがキャンディークラッシュを用いる）、それの推奨を他のアプリケーションからの設定（例えば、ハプティックデバイス２４０のユーザがキャンディークラッシュを用いる）に基づかせ得る。
【００３７】
ハプティック構成設定を生成するプロセスは、ユーザのためにできる限り良好なハプティック構成設定を選択することが得られるように自動化され得る。例えば、特定のゲームまたはビデオの最初のインストールは、ゲームのハプティック設計者によって決定されたデフォルト設定を使用し得る。ユーザがハプティック設定に変更を加えると、サーバ２１０は、前に説明したようにＤＣＣクライアントを使用して新しいインストールのために好ましい設定に関する情報を自動的に収集する。デフォルト設定は、したがって、時間とともに発展する。サーバ２１０は、特定のユーザによって選好された設定に基づいてプロファイルを構築することができる。ゲームまたはビデオのデフォルト設定はユーザのプロファイル上でカスタマイズされ得る。したがって、システム２００は、「アングリーバードにおいてあなたと同じ設定を選択した他のユーザは、このゲームではこれらのハプティック設定を使用しています」とユーザに通信し得る。
【００３８】
例えば、アリスは、小さいソフトウェアゲームを開発しているかまたはビデオを制作しており、ハプティックフィードバックを追加することを考慮している。彼女はハプティック効果をチューニングすることを試みているが、選好は彼女のテストユーザにわたって異なる。一部のユーザは多数の効果を有することを選択するが、他者は極めて少数を選択し、他の人はどんなハプティック効果も希望しない。彼女がアプリケーションからハプティクスを完全に削除しようとしていたとき、彼女は、設定がユーザ選好に適応することを可能にするＡＰＩを発見した。その結果、ユーザがアプリケーションをインストールするとき、ユーザが他のハプティックアプリケーションにおいてどんな設定を選択しているかに基づいて最良の設定が選定されることになる。また、「最良」の設定は、集団全体ではなく、各個々のユーザをターゲットにされる。
【００３９】
ＤＣＣクライアントが情報を収集しサーバ２１０と通信する間、説明する例では、ハプティック対応デバイス２４０からＤＣＣクライアントを使用してサーバ２１０に送られた構成（コンフィグレーション）設定情報をハプティック対応デバイス２２０が受信することも必要となる。情報の受信を達成するために、ハプティック対応デバイス２２０は構成クライアントを使用する。構成クライアントは、図１に示されているように、ハプティック対応デバイス２２０上に常駐し、サーバ２１０に情報を要求する。一実施形態では、構成クライアントは、何らかの情報、例えば、アプリケーション識別子および／またはユーザ識別子をサーバ２１０に通信する。代替的に、構成クライアントは、ユーザ識別子を提供することなしに、ユーザによってハプティック対応デバイス２２０において使用された、前のハプティック設定に関するすべての情報を通信し得る。サーバ２１０は、次いで、提案されるハプティック構成設定で応答し、アプリケーションは、それに応じて初期設定を調整し、ハプティック対応デバイス２２０などのハプティック出力デバイス上にハプティック効果の好ましいセットを発生し得る。
【００４０】
図３は、本発明の一実施形態による、ハプティック構成設定によって制御可能であり得るハプティック効果の様々な形態をもつデバイス３００の図である。システム３００はハプティック対応デバイス３１０を含む。ハプティック対応デバイス３１０はスピーカー３１２を含む。ハプティック対応デバイス３１０はまた、広範囲の変形および振動を発生するために複数のアクチュエータ（図示せず）を含んでいることがある。ハプティック対応デバイス３１０はまた、アクチュエータ（図示せず）によって変形される変形可能な外殻３１１を含むことができる。変形は、矢印３１６および３１８によって示されるようにいずれの軸にも沿うことができ、また、変位３２０によって示されているように曲がることができる。ハプティック対応デバイス３１０はまた、振動シンボル３１４によって示されるように複数のタイプの振動が可能である。
【００４１】
ハプティック構成設定は、ハプティック対応デバイス３１０のオーディオおよび物理的態様を制御するために使用され得る。構成設定は、限定はしないが、オン／オフ、ハプティック強度（軽、中間、強）、ハプティック拡散、周波数および音量などの選定を含むことができる。
【００４２】
図４は、一実施形態による、クライアントハプティック対応デバイスからデータを収集するための方法４００を示すフロー図である。方法４００は、イベント４０５、ハプティック対応デバイス２４０などのハプティック対応デバイス中のデータ収集クライアント（「ＤＣＣ」）の初期化とともに開始する。イベント４１０において、ユーザがハプティック対応アプリケーション、例えば、ゲームまたはビデオをインストールするとき、ＤＣＣは、ユーザがデフォルトハプティック設定を維持することを選択したかどうかを判定する。ユーザは、イベント４１５に示されているように、デフォルトハプティック設定を変更するためのオプションを有する。ユーザがデフォルト設定を変更しないことを決定する場合、その情報は、イベント４１７において、サーバ２１０などのサーバに通信される。
【００４３】
ユーザは、イベント４２０に示されているように、デフォルト設定を変更することを決定し得る。ユーザが変更された設定に満足した場合、ＤＣＣは、イベント４２７に示されているように、変更された構成設定をサーバ２１０に通信する。しかしながら、イベント４２５に示されているように、ユーザが構成設定を変更することを再び決定する場合、ＤＣＣは、変更された設定でサーバ２１０に再び接触する。
【００４４】
図５は、一実施形態による、あるクライアントハプティック対応デバイスからデータを収集し、それらの設定を別のハプティック対応デバイスに適用するための方法５００を示すフロー図である。方法５００はイベント５０５とともに開始し、ユーザがアプリケーションプログラム（例えば、ゲームまたはビデオ）をインストールし、開始する。イベント５１０において、ユーザは、アプリケーションに関連付けられるデフォルトハプティック設定を初期に受け付ける。イベント５１５において、図４で説明したＤＣＣが、アプリケーションのための提案されるハプティック設定を取得するためにサーバ２１０との通信を開始する。提案されるハプティック設定は、アプリケーションをプレイしその情報をサーバ２１０にアップロードした他のユーザの設定に基づく。イベント５１５においてユーザに送信される、提案される設定は、取得された設定のすべての平均であり得るか、あるいは時間加重平均または他の関数などのアルゴリズムの出力であり得る。
【００４５】
イベント５２０において、ユーザは、提案されるハプティック設定を受信しており、提案されるハプティック設定を維持すべきか、または提案される設定をさらに変更すべきかを決定する。ユーザが提案される設定に満足した場合、その満足は、イベント５２２においてサーバ２１０に返信される。その状況では、サーバ２１０は、それのデータベースを更新し、ゲームでこのユーザのために提案される設定が容認されたことを示し得る。
【００４６】
しかしながら、ユーザは、イベント５２５に示されているように、提案されるハプティック設定を変更することを決定し得、ユーザは、変更された設定で、ゲームまたはビデオをプレイする。ユーザが、イベント５３０において、変更された設定に満足した場合、そのような情報は、イベント５３２においてサーバ２１０に返信される。変更された設定は、設定のグループとして、あるいは各設定が変更されるときに個々にサーバ２１０に返信され得る。サーバ２１０は、次いで、この特定のゲームまたはビデオについてハプティック設定のそれのデータベースを更新し得る。したがって、データベースが、好ましい設定の将来の提案についてアクセスされるとき、好ましい設定は更新された情報を反映し得る。ユーザが設定をさらに変更することを決定する場合、プロセスはイベント５２５および５３０において繰り返される。ユーザによってハプティック構成設定に対して行われたどんな変更も、イベント５３２においてサーバ２１０に返信される。
【００４７】
図６は、一実施形態による、あるクライアントハプティック対応デバイスからデータを収集し、それらの設定を別のハプティック対応デバイスに適用するための方法６００を示すフロー図である。方法６００はイベント６０５とともに開始し、ユーザが新しいハプティック対応ソフトウェアアプリケーションをインストールする。アプリケーションはデフォルトハプティック構成設定のセットを有するが、ＤＣＣクライアントソフトウェアは、アプリケーションのための提案されるハプティック設定を要求するプロセスを開始するためにサーバ２１０への通信を生成する。
【００４８】
イベント６１０において、サーバ２１０は、ハプティック対応デバイス上でＤＣＣクライアントから通信を受信する。通信は、どのアプリケーションが実行中であるかを識別するアプリケーション識別子、例えばアングリーバードを含む。各アプリケーションは、サーバ２１０が適切なアプリケーションを識別することができるように、一意の識別子を割り当てられる。イベント６１５において、サーバ２１０は、特定のユーザを識別するユーザ識別子を受信する。ユーザ識別子は、場合によっては、特定のユーザではなく特定のデバイスに結び付けられ得る。さらに、ユーザ識別子は、ユーザの選好を識別するのを助けるために、ユーザまたは任意の他の情報に関する人口統計学的情報を含んでいることがある。ユーザ識別子は、単純な数字識別子、例えば、Ｕｓｅｒ５０５であり得る。
【００４９】
イベント６２０において、サーバ２１０がアプリケーション識別子およびユーザ識別子を受信した後に、サーバ２１０は、ユーザ、例えば、Ｕｓｅｒ５０５がデータベース中に登録した何らかの他のアプリケーションを識別するために、データベースを検索する。一例では、サーバ２１０は、Ｕｓｅｒ５０５がフルーツニンジャアンドアルトをプレイし、それらのゲームにおいて、ＤＣＣが、対応するハプティック構成設定をサーバ２１０に以前にアップロードしたことがあることを見つける。
【００５０】
前に説明したように、あるアプリケーションにおいてハプティック選好をもつユーザは、新しいアプリケーションの設定のために同様の選好をおそらく有するであろう。しかしながら、場合によっては新しいアプリケーションは他のアプリケーション中に存在しない新しい構成設定を有するので、新しいアプリケーションのための望まれる設定のより良い推定を得るために、方法６００は、同様の選好、例えば、同じ強度レベル、同じ拡散レベルをもつ他のユーザを調べる。イベント６２５において、サーバ２１０は、同様の選好をもつ他のユーザを識別するためにデータベースを検索する。さらに、検索は、ユーザと同じアプリケーション、この例では、フルーツニンジャアンドアルトをプレイした個人を識別し、また、アングリーバード、ユーザによってインストールされている新しいアプリケーションを誰がプレイしたかをも識別する。したがって、同様の選好をもつ他者によって選定されたアングリーバードのためのハプティック設定は、アングリーバードアプリケーションを用いる我々の新規ユーザのための優れたスタートポイントである。
【００５１】
一実施形態では、デフォルト設定からの変更は、ユーザがデフォルト値を単に受容するではなく、変更を設置するために作業を行ったことを示すので、デフォルトハプティック設定からの変更は、デフォルト設定よりも大きい重みおよび考慮を与えられることになる。したがって、同様の設定をもつ他のユーザを識別する際に、アルゴリズムは、２人のユーザがデフォルト設定を共有する場合よりも、彼らが設定の変更を共有する場合、彼らがより「類似」すると考え得る。例えば、あるゲームまたはビデオが、｛５，５０％，強｝にデフォルト設定される３つの設定を含んでおり、３人のユーザＡ、ＢおよびＣが、設定｛５，５０％，弱｝、｛５，５０％，強｝および｛１，５０％，弱｝を有すると仮定する。ユーザＡは、Ｂと共通する２つの設定を有し、Ｃと共通する２つの設定を有する。しかしながら、変更された設定を分析すると、ユーザＡは、Ｂと共通する変更を有さず、Ｃと共通する１つの変更を有する。ユーザＡおよびＣは、したがって、ＡおよびＢよりも類似すると考えられるべきである。このように、一実施形態では、変更された設定の分析は、デフォルト設定の使用に勝る優先度を得る。
【００５２】
一実施形態では、類似するユーザは、収集された人口統計学的情報に基づくことができる。前に、データ収集クライアントは、アプリケーションのハプティック構成に関する情報を収集したクライアントソフトウェアとして説明した。そのようなソフトウェアのクライアント部分はまた、年齢および性別、（タッチスクリーンによって決定され得る）指パッドのサイズ、およびユーザが典型的にスクリーン上に印加する（力センサによって決定され得る）圧力の量などの人口統計学的情報を収集するように構成され得る。「類似」のユーザは、この人口統計学的情報のみに基づいて、または前に説明したように同様のハプティック構成設定との組合せで判定され得る。
【００５３】
異なるハプティック対応アプリケーション間のハプティック設定は関係付けられ得る。そのような設定は以下を含むことができる。
ハプティクスオン／オフ、
ハプティック強度（軽、中間、強）、
ハプティック拡散、
ハプティックテーマ（微細、激しい、鋭いなど）、
好ましいハプティックアクチュエータ（ＬＲＡ、ＥＲＭ、マルチアクチュエータデバイスなど）、
好ましい周波数（ＨＤデバイス）、および
好ましい情報符号化（長さ、周波数、繰り返しなど）
【００５４】
イベント６３０において、サーバ２１０、またはハプティック対応デバイス２２０は、アングリーバードのためのハプティック設定の好ましいセットを計算する。ハプティック設定の好ましいセットは、イベント６２５において識別される個人によって選定された設定の平均であり得るか、あるいはそれは、それらの設定の中央値、または任意の他の数学的アルゴリズム、例えば、加重平均、移動平均などであり得る。
【００５５】
一実施形態では、好ましい設定を計算するためのアルゴリズムは、ユーザに関してどんな情報が知られるかに依存することができる。例えば、ユーザに関する情報は知られないが、ユーザが「ゲームＡ」を現在使用中であることが知られる場合である。その知識に基づいて、アルゴリズムは、ゲームＡ中の各ハプティック設定、例えば、強度およびテーマについてのすべての記録されたデータを収集し得る。設定のデータが間隔または比である場合、中央値または平均値が計算される。例えば、５人のユーザが強度を１５％、７０％、７０％、７０％および１００％に設定した場合、好ましい設定値は、中央値に基づいて７０％になり得る。設定のデータが呼称または順序である場合、好ましい値は、どれが最も頻繁に選択されるかであり得る。例えば、５人のユーザが「微細」、「激しい」、「激しい」、「鋭い」および「オフ」というテーマを選択した場合、「激しい」テーマが好ましい設定になり得る。すべてのハプティック設定について同じ分析が実施され得る。
【００５６】
例えば、ユーザがゲームＡを使用中であることを知っていることに加えて、ユーザに関して何らかの追加の情報が知られる場合、ユーザの識別情報、例えば、ユーザ１も知られる。このシナリオでは、知られているユーザによって使用される他のアプリケーションまたはビデオに関する情報が収集される。例えば、ユーザ１がゲームＢおよびゲームＣをプレイしたことが知られていると仮定する。次いで、アルゴリズムは、ゲームＡと、少なくともゲームＢまたはゲームＣとを使用したすべてのユーザについて検索する。この例で、これらの基準に合致した３人のそのようなユーザ、例えば、ユーザ２、３および４が見つかったと仮定する。ユーザごとに、次いで、類似性スコアが計算される。例えば、ユーザ２がゲームＡおよびゲームＢをプレイしたと仮定する。類似性スコアを決定するために、ユーザ１およびユーザ２によって使用された設定が比較される。設定の値が数値（間隔または比）である場合、２つのスコア間のパーセンテージ差が計算される。設定値が順序または呼称である場合、１００％の類似性スコアは同じ選択のために割り当てられ、および０％の類似性スコアは異なる選択のために割り当てられる。システムはまた、例えば、微細とオフとの間の５０％、および激しいとオフとの間の０％の類似性を示す、開発者によって入力された類似性マトリックスを含み得る。１人のユーザについてのすべてのそのようなスコアは、（例えば、共有アプリケーションおよび各アプリケーションの異なる設定にわたって）平均化され得る。
【００５７】
共有アプリケーションを用いる各ユーザの類似性スコアが次いで知られ得る。このスコアは、好ましい設定を計算するために、共有アプリケーション、例えば、上記の例ではゲームＡにおける各ユーザの設定の寄与を重み付けするために使用され得る。好ましい設定は、数値データの場合は加重和を使用することによって見つけられ得、順序または呼称データの場合は最も頻繁な設定が使用され得る。
【００５８】
次いで、イベント６３５において、新しいアプリケーション、例えば、アングリーバードのためのハプティック設定の好ましいセットがハプティック対応デバイス２２０に送られる。また、イベント６４０において、好ましいハプティック効果を発生するために、ハプティック設定の好ましいセットがハプティック出力デバイス、例えば、ハプティック対応デバイス２２０によって使用される。
【００５９】
別の実施形態では、方法６００は、ユーザ識別情報の使用を除外することができる。ユーザ識別情報が使用されない場合、方法６００のために２つのオプションがある。上記で説明した方法６００は、サーバ２１０が、ユーザによって以前にサーバ２１０にアップロードされた他のアプリケーションおよび関連付けられるハプティック構成設定について検索することを可能にするために、ユーザ識別子を使用した。方法６００の修正バージョンでは、ユーザは、単にアプリケーション識別子および関連付けられるハプティック構成設定をアップロードし得、それにより、サーバ２１０は、同様の設定をもつ他のユーザについてデータベースを検索することが可能になり得る。方法６００の残りは同じ方法で進み得る。
【００６０】
修正方法６００のための第２のオプションは、「同様」のハプティック構成設定をもつ他のユーザを見つけることを試みることに先行することである。その場合、方法は、ユーザがアプリケーションを開始するイベント６０５と、サーバ２１０がアプリケーション識別子を受信するイベント６１０と、次いで、イベント６２５および６３０のわずかな修正と、その後、好ましい設定をユーザに送信するステップとからなり得る。特に、イベント６２５は、新しいアプリケーション、例えば、アングリーバードをプレイした他のユーザについて検索し、それらの構成設定を取り出し得る。また、イベント６３０は、イベント６２５において取得された構成設定の平均、中央値、加重平均などを取ることによって好ましい設定を計算し得る。本方法は、次いで、それらの好ましいハプティック構成設定をユーザに送ることをもって終わる。
【００６１】
図１〜図６に示された実施形態、またはそれらの任意の部分または機能は、ハードウェア、ソフトウェアモジュール、ファームウェア、命令を記憶した有形コンピュータ可読媒体、またはそれらの組合せを使用して実装され得、１つまたは複数のコンピュータシステムまたは他の処理システムにおいて実装され得る。
【００６２】
図７は、実施形態またはそれの部分がコンピュータ可読コードとして実装され得る例示的なコンピュータシステム７００を示す。例えば、図４、図５および図６に示された機能および方法を実装するためのモジュールを含む、図１〜図３に示されたハプティック対応デバイスは、ハードウェア、ソフトウェア、ファームウェア、命令を記憶した有形コンピュータ可読媒体、またはそれらの組合せを使用してコンピュータシステム７００において実装され得、１つまたは複数のコンピュータシステムまたは他の処理システムにおいて実装され得る。ハードウェア、ソフトウェア、またはそのようなものの任意の組合せは、図１〜図６のモジュールおよび構成要素のいずれかを実施し得る。
【００６３】
プログラマブル論理が使用される場合、そのような論理は、市販の処理プラットフォームまたは専用デバイス上で実行され得る。例えば、ハプティック対応デバイス１１０のプロセッサ１２０は、プログラマブル論理を使用して実装され得る。開示する主題の実施形態は、マルチコアマルチプロセッサシステム、ミニコンピュータ、およびメインフレームコンピュータ、分散機能とリンクまたはクラスタリングされたコンピュータ、ならびにほとんどどんなデバイスにも埋め込まれ得る浸透的または小型コンピュータを含む、様々なコンピュータシステム構成を用いて実施され得ることを、当業者は理解されよう。
【００６４】
例えば、上記で説明した実施形態を実装するために、少なくとも１つのプロセッサデバイスおよびメモリが使用され得る。プロセッサデバイスは、単一のプロセッサ、複数のプロセッサ、またはそれらの組合せであり得る。プロセッサデバイスは１つまたは複数のプロセッサ「コア」を有し得る。
【００６５】
本発明の様々な実施形態について、この例示的なコンピュータシステム７００に関して説明する。この説明を読めば、他のコンピュータシステムおよび／またはコンピュータアーキテクチャを使用して本発明の実施形態をどのように実装すべきかが当業者に明らかになろう。動作は逐次プロセスとして説明されることがあるが、動作のいくつかは、実際は、並列に、同時に、および／または分散環境において、ならびにシングルまたはマルチプロセッサマシンによるアクセスのためにローカルにまたはリモートで記憶されたプログラムコードを用いて実施され得る。さらに、いくつかの実施形態では、動作の順序は、開示する主題の趣旨から逸脱することなく、並べ替えられるかまたは同時に実施され得る。
【００６６】
プロセッサデバイス７０４は、専用または汎用プロセッサデバイスであり得る。当業者なら理解するように、プロセッサデバイス７０４はまた、マルチコア／マルチプロセッサシステム中の単一のプロセッサであり得、そのようなシステムは、単独で動作するか、あるいはクラスタまたはサーバファーム中で動作するコンピューティングデバイスのクラスタにおいて動作する。プロセッサデバイス７０４は、通信インフラストラクチャ７０６、例えば、バス、メッセージキュー、ネットワーク、またはマルチコアメッセージパッシング方式に接続される。
【００６７】
コンピュータシステム７００は、メインメモリ７０８、例えば、ランダムアクセスメモリ（「ＲＡＭ」）をも含み、２次メモリ７１０をも含み得る。２次メモリ７１０は、例えば、ハードディスクドライブ７１２、リムーバブル記憶ドライブ７１４を含み得る。リムーバブル記憶ドライブ７１４は、フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュメモリなどを含み得る。リムーバブル記憶ドライブ７１４は、よく知られている様式でリムーバブル記憶ユニット７１８から読み取りおよび／またはそれに書き込む。リムーバブル記憶ユニット７１８は、リムーバブル記憶ドライブ７１４によって読み取られ、リムーバブル記憶ドライブ７１４に書き込まれ得る、フロッピーディスク、磁気テープ、光ディスクなどを含み得る。当業者なら理解するように、リムーバブル記憶ユニット７１８は、コンピュータソフトウェアおよび／またはデータを記憶したコンピュータ使用可能記憶媒体を含む。
【００６８】
コンピュータシステム７００は、（場合によっては）、ディスプレイユニット７３０上の表示のために、通信インフラストラクチャ７０６から（または図示されていないフレームバッファから）グラフィックス、テキスト、および他のデータをフォワーディングする（キーボード、マウスなどの入出力デバイスを含み得る）ディスプレイインターフェース７０２を含む。
【００６９】
代替実装形態では、２次メモリ７１０は、コンピュータプログラムまたは他の命令がコンピュータシステム７００中にロードされることを可能にするための他の同様の手段を含み得る。そのような手段は、例えば、リムーバブル記憶ユニット７２２およびインターフェース７２０を含み得る。そのような手段の例は、（ビデオゲームデバイスにおいて見つけられるものなどの）プログラムカートリッジおよびカートリッジインターフェース、（ＥＰＲＯＭ、またはＰＲＯＭなどの）リムーバブルメモリチップおよび関連付けられるソケット、ならびにソフトウェアおよびデータがリムーバブル記憶ユニット７２２からコンピュータシステム７００に転送されることを可能にする他のリムーバブル記憶ユニット７２２およびインターフェース７２０を含み得る。
【００７０】
コンピュータシステム７００はまた、通信インターフェース７２４を含み得る。通信インターフェース７２４は、コンピュータシステム７００と外部デバイスとの間でソフトウェアおよびデータが転送されることを可能にする。通信インターフェース７２４は、モデム、（イーサネット（登録商標）カードなどの）ネットワークインターフェース、通信ポート、ＰＣＭＣＩＡスロットおよびカードなどを含み得る。通信インターフェース７２４を介して転送されるソフトウェアおよびデータは、通信インターフェース７２４によって受信されることが可能な電子的、電磁的、光学的、または他の信号であり得る信号の形態であり得る。これらの信号は、通信経路７２６を介して通信インターフェース７２４に提供され得る。通信経路７２６は、信号を搬送し、ワイヤまたはケーブル、光ファイバー、電話回線、セルラーフォンリンク、ＲＦリンクあるいは他の通信チャネルを使用して実装され得る。
【００７１】
本文献では、「コンピュータプログラム媒体」および「コンピュータ可読媒体」という用語は、リムーバブル記憶ユニット７１８、リムーバブル記憶ユニット７２２、およびハードディスクドライブ７１２中に設置されるハードディスクなどの記憶媒体を全般的に指すために使用される。コンピュータプログラム媒体およびコンピュータ可読媒体はまた、メモリ半導体（例えば、ＤＲＡＭなど）であり得る、メインメモリ７０８および２次メモリ７１０などのメモリを指すことがある。
【００７２】
（コンピュータ制御論理とも呼ばれる）コンピュータプログラムは、メインメモリ７０８および／または２次メモリ７１０に記憶される。コンピュータプログラムはまた、通信インターフェース７２４を介して受信され得る。そのようなコンピュータプログラムは、実行されたとき、コンピュータシステム７００が本明細書で説明するように実施形態を実装することを可能にする。特に、コンピュータプログラムは、実行されたとき、プロセッサデバイス７０４が本発明の実施形態のプロセスを実装することを可能にする。したがって、そのようなコンピュータプログラムはコンピュータシステム７００のコントローラを表す。ソフトウェアを使用して実施形態が実装される場合、ソフトウェアは、リムーバブル記憶ドライブ７１４、インターフェース７２０、およびハードディスクドライブ７１２、または通信インターフェース７２４を使用してコンピュータプログラム製品に記憶され、コンピュータシステム７００中にロードされ得る。
【００７３】
上記で開示したように、ユーザは、ハプティック対応アプリケーションプログラム（例えば、コンピュータゲームまたはビデオ）を実行するためにプロセッサを使用するハプティック対応デバイスを有する。プロセッサはまた、アプリケーションプログラムおよびユーザを識別し、その情報をサーバに通信する、データ収集クライアントを実行する。ハプティック対応デバイスは、次いで、同じアプリケーションプログラムと、ユーザによってやはり使用される他のアプリケーションプログラムとを使用した他のユーザの設定に基づいて計算されたハプティック設定の好ましいセットをサーバから受信する。次いで、好ましい設定を使用するために、コンピュータゲームまたはビデオに関連付けられるデフォルトハプティック設定が調整される。
【００７４】
上記で説明した本発明は、異なる順序のステップで、および／または開示されたものとは異なる構成における要素を用いて実践され得ることを、当業者は容易に理解されよう。したがって、本発明について、これらの好ましい実施形態に基づいて説明したが、本発明の趣旨および範囲内にとどまりながら、いくつかの修正形態、変形形態、および代替構成が明らかになり得ることが、当業者には明らかなはずである。したがって、本発明の境界および限界を決定するためには、添付の特許請求の範囲への参照が行われるべきである。
【図１】
2017111789.tif 000003
【図２】
2017111789.tif 000004
【図３】
2017111789.tif 000005
【図４】
2017111789.tif 000006
【図５】
2017111789.tif 000007
【図６】
2017111789.tif 000008
【図７】
2017111789.tif 000009
【外国語明細書】
2017111789000001.pdf