(57)【特許請求の範囲】
【請求項１】
グラフィカルユーザインタフェースであるＧＵＩ部品が表示されている画面に対する操作を受け付ける操作受付部と、
前記操作受付部により受け付けられた操作を、現在の操作対象のＧＵＩ部品から、ＧＵＩ部品の木構造に基づいて親のＧＵＩ部品に向かって伝播させて、イベントとして検出するイベント検出部と、
前記イベント検出部により検出されたイベントが、ユーザの触覚を刺激する触覚フィードバックの通知を伴うイベントであれば、前記イベント検出部により検出されたイベントによる触覚フィードバックの通知理由に基づいて、前記触覚フィードバックの通知を許可するか否かを判定するイベント管理部と、
前記イベント管理部の判定結果が通知を許可する旨を示していれば、前記触覚フィードバックを通知するフィードバック通知部とを備え、
前記イベント管理部は、
前記操作受付部により受け付けられた１つの操作に対して、前記イベント検出部によって、ＧＵＩ部品の木構造の中で前記操作対象のＧＵＩ部品から前記親のＧＵＩ部品に向かってイベントが順に検出される毎に、前記検出されたイベントが、前記触覚フィードバックの通知を伴うイベントであるか否かを判定し、前記触覚フィードバックの通知を伴うイベントであれば、前記検出されたイベントを先入れ先出し方式のキューに格納し、
２つ以上のイベントを前記キューに格納している状況下では、触覚フィードバックの通知理由に基づいて、前記触覚フィードバックの通知を許可するか否かを判定し、最終的に通知する触覚フィードバックを決定する
ことを特徴とするユーザインタフェース装置。
【請求項２】
前記イベント管理部は、
２つ以上のイベントを前記キューに格納している状況下では、前記キューから１つ目のイベントと２つ目のイベントとを読み出して、前記１つ目のイベントによる触覚フィードバックの通知を許可するか否かを判定したのち、
前記２つ目のイベントを１つ目のイベントとみなし、前記１つ目のイベントとみなした２つ目のイベントによる触覚フィードバックの通知を許可するか否かを判定する
ことを特徴とする請求項１記載のユーザインタフェース装置。
【請求項３】
前記イベント管理部は、前記イベント検出部により検出された複数のイベントによる触覚フィードバックの通知理由に基づいて、１つの触覚フィードバックの通知を許可するか否かを判定する
ことを特徴とする請求項１記載のユーザインタフェース装置。
【請求項４】
前記操作受付部によりフォーカスの位置をＧＵＩ部品の終端に当てる操作が複数回続けて受け付けられて、前記イベント検出部により複数のイベントが検出されており、
前記イベント管理部は、前記イベント検出部により検出された複数のイベントのうち、１回目の操作として検出されたイベントによる触覚フィードバックの通知を許可し、２回目以降の操作として検出されたイベントによる触覚フィードバックの通知を許可しない
ことを特徴とする請求項１記載のユーザインタフェース装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、触覚フィードバックを通知するユーザインタフェース装置に関するものである。
【背景技術】
【０００２】
近年、グラフィカルユーザインタフェースであるＧＵＩ部品が表示されている画面に対する操作が行われると、画面に対する操作をイベントとして検出し、検出したイベントが触覚フィードバックの通知を伴うイベントであれば、触覚フィードバックを通知するユーザインタフェース装置が開発されている。
触覚フィードバックの通知は、例えば、タッチパネルなどに組み込まれているデバイスが、タッチパネルに触れているユーザの指などに振動等を与えることで達成される。【０００３】
以下の特許文献１には、ユーザが、触覚フィードバックの通知を伴う各種のイベントに優先順位を設定することが可能な機能を備えているユーザインタフェース装置が開示されている。
このユーザインタフェース装置では、例えば、イベントＡの優先順位が、イベントＢの優先順位よりも高く設定されているとき、イベントＡとイベントＢが同時に検出された場合、イベントＡによる触覚フィードバックの通知が行われるが、イベントＢによる触覚フィードバックの通知は行われない。
これにより、複数のイベントが同時に検出された場合、優先順位が最も高いイベントによる触覚フィードバックの通知だけを行うことができるので、不要な通知を減らすことができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−０２４８２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来のユーザインタフェース装置は以上のように構成されているので、事前に、ユーザが、触覚フィードバックの通知を伴う各種のイベントに優先順位を設定すれば、複数のイベントが同時に検出された場合、優先順位が最も高いイベントによる触覚フィードバックの通知だけを行うことができる。しかし、画面に対するＧＵＩ部品の配置を決定する毎に、優先順位を設定する必要があり、配置するＧＵＩ部品の数が多くなる程、優先順位の設定に伴うユーザの負荷が大きくなってしまうという課題があった。【０００６】
この発明は上記のような課題を解決するためになされたもので、ユーザが事前に優先順位を設定することなく、不要な通知を減らして、ユーザが違和感を覚える可能性がある触覚フィードバックの通知を防ぐことができるユーザインタフェース装置を得ることを目的とする。
【課題を解決するための手段】
【０００７】
この発明に係るユーザインタフェース装置は、グラフィカルユーザインタフェースであるＧＵＩ部品が表示されている画面に対する操作を受け付ける操作受付部と、操作受付部により受け付けられた操作を、現在の操作対象のＧＵＩ部品から、ＧＵＩ部品の木構造に基づいて親のＧＵＩ部品に向かって伝播させて、イベントとして検出するイベント検出部と、イベント検出部により検出されたイベントが、ユーザの触覚を刺激する触覚フィードバックの通知を伴うイベントであれば、イベント検出部により検出されたイベントによる触覚フィードバックの通知理由に基づいて、触覚フィードバックの通知を許可するか否かを判定するイベント管理部と、イベント管理部の判定結果が通知を許可する旨を示していれば、触覚フィードバックを通知するフィードバック通知部とを備え、イベント管理部は、操作受付部により受け付けられた１つの操作に対して、イベント検出部によって、ＧＵＩ部品の木構造の中で操作対象のＧＵＩ部品から親のＧＵＩ部品に向かってイベントが順に検出される毎に、検出されたイベントが、触覚フィードバックの通知を伴うイベントであるか否かを判定し、触覚フィードバックの通知を伴うイベントであれば、検出されたイベントを先入れ先出し方式のキューに格納し、２つ以上のイベントをキューに格納している状況下では、触覚フィードバックの通知理由に基づいて、触覚フィードバックの通知を許可するか否かを判定し、最終的に通知する触覚フィードバックを決定するものである。
【発明の効果】
【０００８】
この発明によれば、イベント検出部により検出されたイベントが、触覚フィードバックの通知を伴うイベントであれば、イベント検出部により検出されたイベントによる触覚フィードバックの通知理由に基づいて、触覚フィードバックの通知を許可するか否かを判定するイベント管理部を設け、フィードバック通知部が、イベント管理部の判定結果が通知を許可する旨を示していれば、触覚フィードバックを通知するように構成したので、ユーザが事前に優先順位を設定することなく、不要な通知を減らして、ユーザが違和感を覚える可能性がある触覚フィードバックの通知を防ぐことができる効果がある。
【図面の簡単な説明】
【０００９】
【図１】この発明の実施の形態１によるユーザインタフェース装置を示す構成図である。
【図２】この発明の実施の形態１によるユーザインタフェース装置を示すハードウェア構成図である。
【図３】ユーザインタフェース装置における演算装置６がソフトウェア又はファームウェアなどで実現される場合のコンピュータのハードウェア構成図である。
【図４】ユーザインタフェース装置における演算装置６がソフトウェア又はファームウェアなどで実現される場合の処理手順を示すフローチャートである。
【図５】ユーザインタフェース装置における演算装置６がソフトウェア又はファームウェアなどで実現される場合の処理手順を示すフローチャートである。
【図６】ディスプレイ１の画面に表示されているＧＵＩ部品の一例を示す説明図である。
【図７】ディスプレイ１の画面に表示されているＧＵＩ部品の一例を示す説明図である。
【図８】ディスプレイ１の画面に表示されているＧＵＩ部品の一例を示す説明図である。
【発明を実施するための形態】
【００１０】
以下、この発明をより詳細に説明するために、この発明を実施するための形態について、添付の図面に従って説明する。
【００１１】
実施の形態１．
図１は、この発明の実施の形態１によるユーザインタフェース装置を示す構成図であり、図２は、この発明の実施の形態１によるユーザインタフェース装置を示すハードウェア構成図である。
図１及び図２において、ディスプレイ１には、グラフィカルユーザインタフェースであるＧＵＩ部品が表示される。
操作受付部２は、例えば図２に示す操作受付回路２１で実現され、タッチパネル３、マウス４及びキーボード５などを備えている。
操作受付部２は、ＧＵＩ部品が表示されているディスプレイ１の画面に対する操作を受け付ける処理を実施する。
【００１２】
演算装置６は、イベント検出部７、イベント管理部８、イベント処理部９及び通知指示部１０を備えており、各種の処理を実行する。
演算装置６のイベント検出部７は、例えば図２に示すイベント検出回路２２で実現される。
イベント検出部７は、操作受付部２におけるタッチパネル３、マウス４又はキーボード５により受け付けられた操作をイベントとして検出する処理を実施する。
【００１３】
演算装置６のイベント管理部８は、例えば図２に示すイベント管理回路２３で実現される。
イベント管理部８は、イベント検出部７により検出されたイベントが、ユーザの触覚を刺激する触覚フィードバックの通知を伴うイベントであるか否かを判定する処理を実施する。
イベント管理部８は、触覚フィードバックの通知を伴うイベントであると判定すれば、イベント検出部７により検出されたイベントを管理する処理を実施する。
イベント管理部８は、管理しているイベントによる触覚フィードバックの通知理由に基づいて、管理しているイベントによる触覚フィードバックの通知を許可するか否かを判定する処理を実施する。
【００１４】
演算装置６のイベント処理部９は、例えば図２に示すイベント処理回路２４で実現される。
イベント処理部９は、イベント検出部７により検出されたイベントの処理をＧＵＩ部品に実行させる処理部である。
【００１５】
演算装置６の通知指示部１０は、例えば図２に示す通知指示回路２５で実現される。
通知指示部１０は、イベント管理部８により通知が許可された場合、触覚フィードバックの通知をフィードバック通知部１１に指示する処理を実施する。
フィードバック通知部１１は、例えば図２に示す触覚フィードバックデバイス２６で実現される。
図１では、フィードバック通知部１１が操作受付部２と接続されているように描かれているが、この実施の形態１では、触覚フィードバックデバイス２６が、タッチパネル３、マウス４及びキーボード５のそれぞれに組み込まれていることを想定している。
フィードバック通知部１１は、通知指示部１０の指示に従って触覚フィードバックを操作受付部２に通知する。
【００１６】
図１では、ユーザインタフェース装置における演算装置６の構成要素であるイベント検出部７、イベント管理部８、イベント処理部９及び通知指示部１０のそれぞれが、図２に示すような専用のハードウェアで実現されるものを想定している。即ち、イベント検出回路２２、イベント管理回路２３、イベント処理回路２４及び通知指示回路２５で実現されるものを想定している。
ここで、イベント検出回路２２、イベント管理回路２３、イベント処理回路２４及び通知指示回路２５は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、または、これらを組み合わせたものが該当する。
【００１７】
ただし、ユーザインタフェース装置における演算装置６の構成要素は、専用のハードウェアで実現されるものに限るものではなく、演算装置６がソフトウェア、ファームウェア、または、ソフトウェアとファームウェアとの組み合わせで実現されるものであってもよい。
ソフトウェア又はファームウェアはプログラムとして、コンピュータのメモリに格納される。コンピュータは、プログラムを実行するハードウェアを意味し、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサ、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）などが該当する。
【００１８】
図３は、ユーザインタフェース装置における演算装置６がソフトウェア又はファームウェアなどで実現される場合のコンピュータのハードウェア構成図である。
ユーザインタフェース装置における演算装置６がソフトウェア又はファームウェアなどで実現される場合、イベント検出部７、イベント管理部８、イベント処理部９及び通知指示部１０の処理手順をコンピュータに実行させるためのプログラムをメモリ３１に格納し、コンピュータのプロセッサ３２がメモリ３１に格納されているプログラムを実行するようにすればよい。
図４及び図５は、ユーザインタフェース装置における演算装置６がソフトウェア又はファームウェアなどで実現される場合の処理手順を示すフローチャートである。
【００１９】
また、図２では、ユーザインタフェース装置における演算装置６の構成要素のそれぞれが専用のハードウェアで実現される例を示し、図３では、ユーザインタフェース装置における演算装置６がソフトウェアやファームウェアなどで実現される例を示しているが、演算装置６における一部の構成要素が専用のハードウェアで実現され、残りの構成要素がソフトウェアやファームウェアなどで実現されるものであってもよい。
【００２０】
次に動作について説明する。
図６は、ディスプレイ１の画面に表示されているＧＵＩ部品の一例を示す説明図である。
図６において、ウインドウ１０１、リスト１０２及びボタン１０３のそれぞれは、ＧＵＩ部品である。
ＧＵＩ部品であるリスト１０２は、複数のリスト要素として、リスト要素（１）、リスト要素（２）及びリスト要素（３）を含んでいる。
ＧＵＩ部品であるウインドウ１０１、リスト１０２及びボタン１０３は、階層構造で構成されている。
このため、ウインドウ１０１内のＧＵＩ部品は、ＧＵＩ部品の木構造で表現され、ウインドウ１０１を示すノード１１１の子ノードとして、リスト１０２を示すノード１１２と、ボタン１０３を示すノード１１３とが存在する。また、リスト１０２を示すノード１１２の直下には、リスト要素（１）を示すノード１１４、リスト要素（２）を示すノード１１５及びリスト要素（３）を示すノード１１６が存在する。
【００２１】
この実施の形態１では、ＧＵＩ部品であるウインドウ１０１は、フォーカスがリスト１０２に当たっているとき、フォーカスの位置をボタン１０３に移動させるイベントが検出された場合、フォーカスの位置が他のＧＵＩ部品に移動したことをユーザに知らせるために、触覚フィードバックの通知をイベント管理部８に要求するものとする。
また、ウインドウ１０１は、フォーカスがボタン１０３に当たっているとき、フォーカスの位置をリスト１０２に移動させるイベントが検出された場合、フォーカスの位置が他のＧＵＩ部品に移動したことをユーザに知らせるために、触覚フィードバックの通知をイベント管理部８に要求するものとする。
さらに、ウインドウ１０１は、フォーカスがボタン１０３に当たっているとき、フォーカスを下方向に移動させるイベントが検出された場合、フォーカスの位置がウインドウ１０１の終端である下端に当たることをユーザに知らせるために、触覚フィードバックの通知をイベント管理部８に要求するものとする。
ＧＵＩ部品であるリスト１０２は、フォーカスがリスト要素（３）に当たっているとき、フォーカスを下方向に移動させるイベントが検出された場合、フォーカスの位置がリスト１０２の終端である下端に当たることをユーザに知らせるために、触覚フィードバックの通知をイベント管理部８に要求するものとする。
【００２２】
イベント管理部８は、イベント検出部７により検出されたイベントを、現在フォーカスが当たっているＧＵＩ部品を示すノードから、当該ノードの親ノードに向かって伝搬させるイベントバブリングを行う。
図６に示す木構造において、例えば、フォーカスがリスト要素（１）に当たっているとき、イベントが検出された場合、当該イベントが、リスト要素（１）を示すノード１１４→リスト１０２を示すノード１１２→ウインドウ１０１を示すノード１１１の順に伝搬される。
ただし、イベント管理部８は、例えば、イベント検出部７により検出されたイベントの処理が完了している場合、イベントバブリングを停止する。
【００２３】
ここで、図１のユーザインタフェース装置の処理内容を具体的に説明する前に、好ましい触覚フィードバックの通知例を説明する。
例えば、フォーカスがボタン１０３に当たっているとき、ユーザが、例えば、操作受付部２におけるキーボード５の下矢印キーを押下した場合を考える。
図６の例では、ウインドウ１０１内において、ボタン１０３の下方向にはＧＵＩ部品が配置されていない。このため、ユーザが、キーボード５の下矢印キーを押下すると、フォーカスの位置がウインドウ１０１の終端である下端に当たり、フォーカスの位置を他のＧＵＩ部品に移動させることができない。
これにより、フォーカスの位置がウインドウ１０１の終端に到達していることをユーザに知らせるために、ＧＵＩ部品であるウインドウ１０１から、触覚フィードバックの通知要求がイベント管理部８に出力される。
この要求に従って触覚フィードバックの通知が行われた場合、ユーザは、フォーカスの位置をボタン１０３の下方向に移動させることができないことを認識できるため、この触覚フィードバックの通知は、有効な通知であると考えられる。
【００２４】
次に、例えば、フォーカスがリスト要素（３）に当たっているとき、ユーザが、例えば、操作受付部２におけるキーボード５の下矢印キーを押下した場合を考える。
図６の例では、ウインドウ１０１内において、リスト要素（３）の下方向にはボタン１０３が配置されており、ユーザが、キーボード５の下矢印キーを押下すれば、フォーカスの位置をボタン１０３に移動させることができる。
したがって、フォーカスがリスト要素（３）に当たっているとき、ユーザがキーボード５の下矢印キーを押下すると、フォーカスの位置が異なるＧＵＩ部品に移動する。即ち、フォーカスの位置がリスト１０２のリスト要素（３）からボタン１０３に移動する。
このため、フォーカスの位置が異なるＧＵＩ部品に移動していることをユーザに知らせるために、ＧＵＩ部品であるウインドウ１０１から、触覚フィードバックの通知要求がイベント管理部８に出力される。以下、この触覚フィードバックの通知要求を通知要求Ｒ１と称する。
また、フォーカスの位置がリスト１０２のリスト要素（３）からボタン１０３に移動する際、フォーカスの位置がリスト１０２の終端である下端に当たるため、ＧＵＩ部品であるリスト１０２から、触覚フィードバックの通知要求がイベント管理部８に出力される。以下、この触覚フィードバックの通知要求を通知要求Ｒ２と称する。
【００２５】
通知要求Ｒ１及び通知要求Ｒ２の双方に従って触覚フィードバックの通知が行われた場合、１つのイベントに伴って、２つの触覚フィードバックの通知が行われたことになるため、ユーザが違和感を覚える可能性がある。
また、フォーカスの位置がリスト１０２の終端に当たったとしても、フォーカスの位置を移動することができるため、通知要求Ｒ２による触覚フィードバックの通知は、不要な通知であると考えられる。
したがって、通知要求Ｒ１による触覚フィードバックの通知だけを実行して、通知要求Ｒ２による触覚フィードバックの通知の実行を防ぐことが望ましいと考えられる。
以下、この実施の形態１では、例えば、通知要求Ｒ１，Ｒ２に対する優先順位を設定することなく、通知要求Ｒ１による触覚フィードバックの通知だけを実行して、通知要求Ｒ２による触覚フィードバックの通知の実行を防ぐことができるユーザインタフェース装置について説明する。
【００２６】
操作受付部２は、例えば、図６に示すように、ＧＵＩ部品がディスプレイ１の画面に表示されているとき、ディスプレイ１の画面に対する操作を受け付ける処理を実施する。
ここでは、説明の便宜上、ユーザが、操作受付部２におけるタッチパネル３、マウス４又はキーボード５によって、リスト１０２内のリスト要素（３）の位置からウインドウ１０１の下端に至る位置まで、フォーカスの位置を下方向に移動させる操作が行われたものとする。
演算装置６のイベント検出部７は、操作受付部２により受け付けられた操作をイベントＥとして検出する（図４のステップＳＴ１）。
操作受付部２により受け付けられた操作は、リスト１０２内のリスト要素（３）の位置からウインドウ１０１の下端に至る位置まで、フォーカスの位置を下方向に移動させる操作であるため、イベント検出部７により検出されたイベントＥには、以下のイベントＥ１，Ｅ２が含まれている。
イベントＥ１
→  フォーカスの位置をリスト要素（３）からボタン１０３に移動させるイベント
イベントＥ２
→  フォーカスの位置をボタン１０３からウインドウ１０１の下端に移動させるイベント
【００２７】
この実施の形態１では、イベント検出部７により検出されたイベントＥが、イベントＥ１とイベントＥ２を含んでいる例を示しているが、これに限るものではなく、イベント検出部７がイベントＥ１とイベントＥ２を別個に検出するものであってもよい。即ち、イベント検出部７がイベントＥ１を検出してから、イベントＥ２を検出するものであってもよい。
【００２８】
演算装置６のイベント管理部８は、イベント検出部７によりイベントが検出される前のフォーカスの位置である現在のフォーカスの位置を把握している。
イベント管理部８は、現在、フォーカスが当たっているＧＵＩ部品を特定し（図４のステップＳＴ２）、特定したＧＵＩ部品をイベント処理部９に通知する。
この実施の形態１では、現在のフォーカスの位置がリスト要素（３）であるため、現在、フォーカスが当たっているＧＵＩ部品として、リスト１０２が特定されるものとする。
【００２９】
イベント処理部９は、イベント管理部８からフォーカスが当たっているＧＵＩ部品の通知を受けると、当該ＧＵＩ部品に対して、イベント検出部７により検出されたイベントＥの処理を実行させる。
この実施の形態１では、フォーカスが当たっているＧＵＩ部品として、リスト１０２が特定されているので、イベント処理部９は、イベント検出部７により検出されたイベントＥに含まれているイベントＥ１の処理をリスト１０２に実行させる（図４のステップＳＴ３）。
リスト１０２は、イベントＥ１の処理を実行することで、フォーカスの位置がリスト１０２の終端である下端に当たるため、イベント処理部９を介して、触覚フィードバックの通知要求Ｒ２をイベント管理部８に出力する。
【００３０】
イベント管理部８は、ＧＵＩ部品からの触覚フィードバックの通知要求の有無によって、イベント検出部７により検出されたイベントＥに含まれているイベントＥ１が、触覚フィードバックの通知を伴うイベントであるか否かを判定する（図４のステップＳＴ４）。
この実施の形態１では、イベント管理部８は、リスト１０２から触覚フィードバックの通知要求Ｒ２が出力されているため、イベントＥ１は、触覚フィードバックの通知を伴うイベントであると判定する。
ここでは、リスト１０２から触覚フィードバックの通知要求Ｒ２が出力されている例を示しているが、例えば、フォーカスの位置をリスト１０２内のリスト要素（１）からリスト要素（２）に移動させるイベントなどである場合、リスト１０２又はウインドウ１０１などから触覚フィードバックの通知要求が出力されない。このため、このようなイベントであれば、触覚フィードバックの通知を伴うイベントではないと判定される。
なお、ここでは、触覚フィードバックの通知要求を伴わないイベントの例として、リスト要素（１）からリスト要素（２）に移動させるイベントを挙げているが、ソフトウェアの仕様等によっては、リスト要素（１）からリスト要素（２）に移動させるイベントが、触覚フィードバックの通知要求を伴うイベントであることもあり得る。
イベント管理部８は、イベントＥ１が、触覚フィードバックの通知を伴うイベントであると判定すると（図４のステップＳＴ４：ＹＥＳの場合）、イベントＥ１を管理するため、触覚フィードバック用に用意しているメモリ領域であるキューに、イベントＥ１を格納する（図４のステップＳＴ５）。
【００３１】
この実施の形態１では、キューが、先入れ先出し（ＦＩＦＯ：Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）方式のキューであるものとする。
ここでは、イベント管理部８によって、イベントＥ１が、触覚フィードバックの通知を伴うイベントであると判定される例を示しているが、もし、イベントＥ１が、触覚フィードバックの通知を伴うイベントではないと判定されれば（図４のステップＳＴ４：ＮＯの場合）、イベントＥ１を管理する必要がないため、イベント管理部８は、イベントＥ１をキューに格納しない。
【００３２】
次に、イベント管理部８は、イベント検出部７により検出されたイベントＥについてのイベントバブリングを停止するか否かを判定する（図４のステップＳＴ６）。
この段階では、イベント管理部８は、イベント検出部７により検出されたイベントＥの処理を完了していないため、イベントバブリングを停止しないと判定する。
イベント管理部８は、イベントバブリングを停止しないと判定すると（図４のステップＳＴ６：ＮＯの場合）、ステップＳＴ２の処理で特定しているＧＵＩ部品であるリスト１０２から、リスト１０２の親のＧＵＩ部品であるウインドウ１０１に、イベントＥ１，Ｅ２を伝搬させるイベントバブリングを行う（図４のステップＳＴ７）。
【００３３】
イベントＥ１は、フォーカスの位置をリスト要素（３）からボタン１０３に移動させるイベントであるため、イベントＥ１は、リスト１０２の親のＧＵＩ部品であるウインドウ１０１でなければ、イベント処理を実行することができない。
また、イベントＥ２は、フォーカスの位置をボタン１０３からウインドウ１０１の下端に移動させるイベントであるため、イベントＥ２は、リスト１０２の親のＧＵＩ部品であるウインドウ１０１でなければ、イベント処理を実行することができない。
このため、イベントＥ１，Ｅ２をウインドウ１０１に伝搬させるイベントバブリングが行われる。
【００３４】
イベント処理部９は、イベントバブリングによってイベントＥ１，Ｅ２がウインドウ１０１に伝搬されると、最初にイベントＥ１の処理をウインドウ１０１に実行させる（図４のステップＳＴ３）。
ウインドウ１０１は、イベントＥ１の処理を実行することで、フォーカスの位置をリスト１０２内のリスト要素（３）からボタン１０３に移動させるため、イベント処理部９を介して、触覚フィードバックの通知要求Ｒ１をイベント管理部８に出力する。
【００３５】
イベント管理部８は、ＧＵＩ部品からの触覚フィードバックの通知要求の有無によって、イベント検出部７により検出されたイベントＥに含まれているイベントＥ１が、触覚フィードバックの通知を伴うイベントであるか否かを判定する（図４のステップＳＴ４）。
この実施の形態１では、イベント管理部８は、ウインドウ１０１から触覚フィードバックの通知要求Ｒ１が出力されているため、イベントＥ１は、触覚フィードバックの通知を伴うイベントであると判定する。
イベント管理部８は、イベントＥ１が、触覚フィードバックの通知を伴うイベントであると判定すると（図４のステップＳＴ４：ＹＥＳの場合）、イベントＥ１を管理するため、イベントＥ１をキューに格納する（図４のステップＳＴ５）。
【００３６】
次に、イベント管理部８は、イベント検出部７により検出されたイベントＥについてのイベントバブリングを停止するか否かを判定する（図４のステップＳＴ６）。
この段階では、イベント管理部８は、イベント検出部７により検出されたイベントＥの処理を完了していないため、イベントバブリングを停止しないと判定する。
イベント管理部８は、イベントバブリングを停止しないと判定すると（図４のステップＳＴ６：ＮＯの場合）、ウインドウ１０１から、ウインドウ１０１の親のＧＵＩ部品に、イベントＥ２を伝搬させるイベントバブリングを行う（図４のステップＳＴ７）。
ただし、この実施の形態１では、ウインドウ１０１の親のＧＵＩ部品が存在しないため、イベントＥ２を伝搬させるイベントバブリングは行われない。
【００３７】
次に、イベント処理部９は、イベントＥ２の処理をウインドウ１０１に実行させる（図４のステップＳＴ３）。
ウインドウ１０１は、イベントＥ２の処理を実行することで、フォーカスの位置がウインドウ１０１の終端である下端に当たるため、イベント処理部９を介して、触覚フィードバックの通知要求Ｒ３をイベント管理部８に出力する。
【００３８】
イベント管理部８は、ＧＵＩ部品からの触覚フィードバックの通知要求の有無によって、イベント検出部７により検出されたイベントＥに含まれているイベントＥ２が、触覚フィードバックの通知を伴うイベントであるか否かを判定する（図４のステップＳＴ４）。
この実施の形態１では、イベント管理部８は、ウインドウ１０１から触覚フィードバックの通知要求Ｒ３が出力されているため、イベントＥ２は、触覚フィードバックの通知を伴うイベントであると判定する。
イベント管理部８は、イベントＥ２が、触覚フィードバックの通知を伴うイベントであると判定すると（図４のステップＳＴ４：ＹＥＳの場合）、イベントＥ２を管理するため、イベントＥ２をキューに格納する（図４のステップＳＴ５）。
【００３９】
次に、イベント管理部８は、イベント検出部７により検出されたイベントＥについてのイベントバブリングを停止するか否かを判定する（図４のステップＳＴ６）。
この段階では、イベント管理部８は、イベント検出部７により検出されたイベントＥの処理を完了しているため、イベントバブリングを停止すると判定する。
イベント管理部８は、イベントバブリングを停止すると判定すると（図４のステップＳＴ６：ＹＥＳの場合）、キューに格納しているイベントによる触覚フィードバックの通知を許可するか否かの判定処理を行う。
以下、イベント管理部８による通知許可の判定処理を具体的に説明する。
【００４０】
イベント管理部８は、キューの先頭からイベントを１つ読み出し、読み出したイベントを「イベントＦ１」とする（図５のステップＳＴ１１）。
即ち、イベント管理部８は、キューに格納されている１つ以上のイベントの中で、最も先に格納したイベントを１つ読み出し、読み出したイベントを「イベントＦ１」とする。
「イベントＦ１」は、リスト１０２により処理されたイベントＥ１に対応するものであるため、「イベントＦ１」による触覚フィードバックの通知理由は、「フォーカスの位置がリスト１０２の終端に当たっている」という理由である。
【００４１】
次に、イベント管理部８は、キューが空になっているか否かを判定する（図５のステップＳＴ１２）。
イベント管理部８は、キューが空になっていなければ（図５のステップＳＴ１２：ＮＯの場合）、キューの先頭からイベントを１つ読み出し、読み出したイベントを「イベントＦ２」とする（図５のステップＳＴ１３）。
即ち、イベント管理部８は、キューに格納されている１つ以上のイベントの中で、最も先に格納したイベントを１つ読み出し、読み出したイベントを「イベントＦ２」とする。
「イベントＦ２」は、ウインドウ１０１により処理されたイベントＥ１に対応するものであるため、「イベントＦ２」による触覚フィードバックの通知理由は、「フォーカスの位置が異なるＧＵＩ部品に移動している」という理由である。
【００４２】
イベント管理部８は、イベントＦ１とイベントＦ２を読み出すと、触覚フィードバックの通知理由に基づいて、管理しているイベントＦ１，Ｆ２による触覚フィードバックの通知を許可するか否かを判定する。
即ち、イベント管理部８は、イベントＦ１による触覚フィードバックの通知理由が、「フォーカスの位置がリスト１０２の終端に当たっている」という理由であるか否かを判定する（図５のステップＳＴ１４）。
この実施の形態１では、イベントＦ１による触覚フィードバックの通知理由が、「フォーカスの位置がリスト１０２の終端に当たっている」という理由であると判定される。
【００４３】
イベント管理部８は、イベントＦ１による触覚フィードバックの通知理由が、「フォーカスの位置がリスト１０２の終端に当たっている」という理由であると判定すると（図５のステップＳＴ１４：ＹＥＳの場合）、イベントＦ１による触覚フィードバックの通知を許可しないものとする。
イベント管理部８は、先に読み出した「イベントＦ２」を「イベントＦ１」に変更する（図５のステップＳＴ１６）。
【００４４】
次に、イベント管理部８は、キューが空になっているか否かを判定する（図５のステップＳＴ１２）。
イベント管理部８は、キューが空になっていなければ（図５のステップＳＴ１２：ＮＯの場合）、キューの先頭からイベントを１つ読み出し、読み出したイベントを「イベントＦ２」とする（図５のステップＳＴ１３）。
即ち、イベント管理部８は、キューに格納されている１つ以上のイベントの中で、最も先に格納したイベントを１つ読み出し、読み出したイベントを「イベントＦ２」とする。
「イベントＦ２」は、ウインドウ１０１により処理されたイベントＥ２に対応するものであるため、「イベントＦ２」による触覚フィードバックの通知理由は、「フォーカスの位置がウインドウ１０１の終端に当たっている」という理由である。
【００４５】
イベント管理部８は、ステップＳＴ１６の処理で変更されたイベントＦ１による触覚フィードバックの通知理由が、「フォーカスの位置がリスト１０２の終端に当たっている」という理由であるか否かを判定する（図５のステップＳＴ１４）。
この実施の形態１では、イベントＦ１による触覚フィードバックの通知理由は、「フォーカスの位置が異なるＧＵＩ部品に移動している」という理由であるため、「フォーカスの位置がリスト１０２の終端に当たっている」という理由ではない判定される。
【００４６】
イベント管理部８は、イベントＦ１による触覚フィードバックの通知理由が、「フォーカスの位置がリスト１０２の終端に当たっている」という理由ではないと判定すると（図５のステップＳＴ１４：ＮＯの場合）、イベントＦ１による触覚フィードバックの通知を許可するものとする。
演算装置６の通知指示部１０は、イベント管理部８により通知が許可されると、触覚フィードバックの通知をフィードバック通知部１１に指示する（図５のステップＳＴ１５）。
フィードバック通知部１１は、通知指示部１０から触覚フィードバックの通知指示を受けると、ユーザの触覚を刺激する触覚フィードバックを操作受付部２に通知する。
これにより、ユーザは、フォーカスの位置が異なるＧＵＩ部品に移動していることを認識することができる。
イベント管理部８は、先に読み出した「イベントＦ２」を「イベントＦ１」に変更する（図５のステップＳＴ１６）。
【００４７】
次に、イベント管理部８は、キューが空になっているか否かを判定する（図５のステップＳＴ１２）。
この実施の形態１では、既に、３つのイベントが読み出されているため、キューは空になっていると判定される。
通知指示部１０は、イベント管理部８によって、キューが空になっていると判定されると（図５のステップＳＴ１２：ＹＥＳの場合）、触覚フィードバックの通知をフィードバック通知部１１に指示する（図５のステップＳＴ１７）。
フィードバック通知部１１は、通知指示部１０から触覚フィードバックの通知指示を受けると、ユーザの触覚を刺激する触覚フィードバックを操作受付部２に通知する。
これにより、ユーザは、フォーカスの位置がウインドウ１０１の終端に当たっており、フォーカスの位置を下方向に移動させることができないことを認識することができる。
【００４８】
以上で明らかなように、この実施の形態１によれば、イベント検出部７により検出されたイベントが、触覚フィードバックの通知を伴うイベントであれば、イベント検出部７により検出されたイベントによる触覚フィードバックの通知理由に基づいて、触覚フィードバックの通知を許可するか否かを判定するイベント管理部８を設け、フィードバック通知部１１が、イベント管理部８の判定結果が通知を許可する旨を示していれば、触覚フィードバックを通知するように構成したので、ユーザが事前に優先順位を設定することなく、不要な通知を減らして、ユーザが違和感を覚える可能性がある触覚フィードバックの通知を防ぐことができる効果を奏する。
【００４９】
この実施の形態１では、イベント管理部８により通知が許可されると、通知指示部１０が、触覚フィードバックの通知をフィードバック通知部１１に指示する例を示している。
しかし、これは一例に過ぎず、イベント管理部８が、通知許可の判定結果をフィードバック通知部１１に出力し、フィードバック通知部１１が、イベント管理部８の判定結果が通知を許可する旨を示している場合に、触覚フィードバックを通知するようにしてもよい。
なお、イベント管理部８が、通知許可の判定結果をフィードバック通知部１１に出力する方法は、どのような方法でもよい。
例えば、イベント管理部８が、管理している全てのイベントについての判定結果をまとめてフィードバック通知部１１に出力するようにしてもよい。また、触覚フィードバックの通知理由が同じイベントが連続するとき、連続しているイベントについての判定結果をまとめてフィードバック通知部１１に出力するようにしてもよい。
【００５０】
この実施の形態１では、イベント管理部８が、イベントによる触覚フィードバックの通知理由が、「フォーカスの位置がリスト１０２の終端に当たっている」という理由であるとき、イベントによる触覚フィードバックの通知を許可しない例を示している。
しかし、これは一例に過ぎず、イベントによる触覚フィードバックの通知理由が、「フォーカスの位置がリスト１０２の終端に当たっている」という理由と異なる理由であるときに、イベントによる触覚フィードバックの通知を許可しないようにしてもよい。
例えば、イベントによる触覚フィードバックの通知理由が、「フォーカスの位置が異なるＧＵＩ部品に移動している」という理由であるとき、イベントによる触覚フィードバックの通知を許可しないようにしてもよい。
【００５１】
実施の形態２．
上記実施の形態１では、イベント管理部８が、キューに格納されているイベント毎に、当該イベントによる触覚フィードバックの通知理由に基づいて、当該イベントによる触覚フィードバックの通知を許可するか否かを判定する例を示している。
この実施の形態２では、イベント管理部８が、キューに格納されている複数のイベントによる触覚フィードバックの通知理由に基づいて、１つの触覚フィードバックの通知を許可するか否かを判定する例を説明する。
【００５２】
図７は、ディスプレイ１の画面に表示されているＧＵＩ部品の一例を示す説明図である。
図７の例では、ＧＵＩ部品であるウインドウ１０１が、メニュー要素（１）〜（４）を含んでいるＧＵＩ部品であるメニュー１０４と、サブメニュー要素（１）〜（５）を含んでいるＧＵＩ部品であるサブメニュー１０５とを含んでいる。
図７の例では、メニュー１０４内のメニュー要素（１）は、サブメニュー１０５を有しており、サブメニュー１０５は、フォーカスがメニュー１０４内のメニュー要素（１）に当たっているとき、メニュー要素（１）をクリックする操作又はフォーカスの位置を下方向に移動させる操作が行われたときに表示されるものとする。
メニュー１０４内のメニュー要素（２）〜（４）は、サブメニュー１０５を有していない。
【００５３】
図７の例では、フォーカスがメニュー１０４内のメニュー要素（１）に当たっているとき、フォーカスの位置をサブメニュー１０５に移動させるイベントが検出された場合、ＧＵＩ部品であるメニュー１０４は、フォーカスの位置が他のＧＵＩ部品に移動したことをユーザに知らせるために、触覚フィードバックの通知をイベント管理部８に要求するものとする。以下、この通知要求を通知要求Ｒ４とする。
また、ＧＵＩ部品であるウインドウ１０１は、サブメニュー１０５を表示するため、触覚フィードバックの通知をイベント管理部８に要求するものとする。以下、この通知要求を通知要求Ｒ５とする。
【００５４】
イベント管理部８は、通知要求Ｒ４と通知要求Ｒ５が連続する場合、触覚フィードバックの通知理由が、通知を許可してもよい理由に該当すると判断して、１つの触覚フィードバックの通知を許可するものとする。
一方、イベント管理部８は、通知要求Ｒ４と通知要求Ｒ５が連続しない場合、イベントによる触覚フィードバックの通知理由が、通知を許可してもよい理由に該当しないと判断して、１つの触覚フィードバックの通知を許可しないものとする。
これにより、通知要求Ｒ４と通知要求Ｒ５が連続しているときだけ、１つの触覚フィードバックが通知されるため、上記実施の形態１と同様に、ユーザが事前に優先順位を設定することなく、不要な通知を減らして、ユーザが違和感を覚える可能性がある触覚フィードバックの通知を防ぐことができる。
【００５５】
この実施の形態２では、イベント管理部８が、通知要求Ｒ４と通知要求Ｒ５が連続するときに、１つの触覚フィードバックの通知を許可する例を示したが、これに限るものではなく、２つ以上の通知要求の組み合わせが、通知を許可してもよい理由に該当するときに、１つの触覚フィードバックの通知を許可するようにすればよい。
【００５６】
実施の形態３．
この実施の形態３では、イベント管理部８が、フォーカスがＧＵＩ部品の終端に当たっているという理由の触覚フィードバックの通知を許可したのち、続けて、フォーカスの位置をＧＵＩ部品の終端に当てる操作が行われた場合、当該操作に係る触覚フィードバックの通知を許可しない例を説明する。
【００５７】
図８は、ディスプレイ１の画面に表示されているＧＵＩ部品の一例を示す説明図である。
図８の例では、ＧＵＩ部品であるウインドウ１０１が、リスト１０２を含んでいる。
この実施の形態３では、例えば、図８に示すようなＧＵＩ部品がディスプレイ１の画面が表示されているときに、ユーザが、リスト１０２内のリスト要素（３）の位置からリスト１０２の下端に至る位置まで、フォーカスの位置を下方向に移動させる操作を複数回続けて行うことで、操作受付部２により複数の操作が受け付けられているものとする。
この場合、１回目の操作が行われたとき、フォーカスの位置がリスト１０２の終端に当たるため、リスト１０２から触覚フィードバックの通知要求Ｒ２がイベント管理部８に出力される。
イベント管理部８は、リスト１０２から触覚フィードバックの通知要求Ｒ２を受けると、上記実施の形態１と同様に、フォーカスの位置がリスト１０２の終端に当たっている理由での触覚フィードバックの通知を許可する。
しかし、同じ理由での触覚フィードバックの通知を続けて許可すると、ユーザが違和感を覚える可能性がある。
そのため、イベント管理部８は、２回目以降の操作によって、リスト１０２から触覚フィードバックの通知要求が出力されても、触覚フィードバックの通知を許可しないようにする。
【００５８】
なお、本願発明はその発明の範囲内において、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
【産業上の利用可能性】
【００５９】
この発明は、触覚フィードバックを通知するユーザインタフェース装置に適している。
【符号の説明】
【００６０】
１  ディスプレイ、２  操作受付部、３  タッチパネル、４  マウス、５  キーボード、６  演算装置、７  イベント検出部、８  イベント管理部、９  イベント処理部、１０  通知指示部、１１  フィードバック通知部、２１  操作受付回路、２２  イベント検出回路、２３  イベント管理回路、２４  イベント処理回路、２５  通知指示回路、２６  触覚フィードバックデバイス、３１  メモリ、３２  プロセッサ、１０１  ウインドウ、１０２  リスト、１０３  ボタン、１０４  メニュー、１０５  サブメニュー、１１１  ウインドウ１０１を示すノード、１１２  リスト１０２を示すノード、１１３  ボタン１０３を示すノード、１１４  リスト要素（１）を示すノード、１１５  リスト要素（２）を示すノード、１１６  リスト要素（３）を示すノード。
【要約】
イベント検出部（７）により検出されたイベントが、触覚フィードバックの通知を伴うイベントであれば、イベント検出部（７）により検出されたイベントによる触覚フィードバックの通知理由に基づいて、触覚フィードバックの通知を許可するか否かを判定するイベント管理部（８）を設け、フィードバック通知部（１１）が、イベント管理部（８）の判定結果が通知を許可する旨を示していれば、触覚フィードバックを通知する。【図１】
0006366863.tif 000002
【図２】
0006366863.tif 000003
【図３】
0006366863.tif 000004
【図４】
0006366863.tif 000005
【図５】
0006366863.tif 000006
【図６】
0006366863.tif 000007
【図７】
0006366863.tif 000008
【図８】
0006366863.tif 000009