(57)【要約】【課題】  本発明は、表示更新のタイミングとユーザの入力操作のタイミングとが重なった場合にも、表示更新後の表示レイアウトを維持しつつ、誤動作を低減することを目的とする。【解決手段】  上記課題を解決するために、本発明に係る情報処理装置は、表示画面に表示させた画像の少なくとも一部を更新する更新指示を受信する受信部２０１と、ユーザによって前記表示画面上の位置が指定される前に、該指定される位置を推定する推定部２０１と、前記表示画面に表示されている画像において前記推定された位置に表示されたオブジェクトを特定する特定部２０３と、前記特定されたオブジェクトの、前記受信手段によって受信された更新指示に従う場合に前記表示画面に表示される画像における位置に基づいて、前記オブジェクトを、前記画面更新後においても前記更新前と同一の位置に表示させる表示制御部２０６とを備える。【選択図】  図２
2015125457.tif 000002
【特許請求の範囲】
【請求項１】
表示画面に表示させた画像の少なくとも一部を更新する更新指示を受信する受信手段と、
ユーザによって前記表示画面上の位置が指定される前に、該指定される位置を推定する推定手段と、
前記表示画面に表示されている画像において前記推定手段によって推定された位置に表示されたオブジェクトを特定する特定手段と、
前記特定手段によって特定されたオブジェクトの、前記受信手段によって受信された更新指示に従う場合に前記表示画面に表示される画像における位置に基づいて、前記オブジェクトを、前記画面更新後においても前記更新前と同一の位置に表示させる表示制御手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記受信手段は、前記表示画面に表示された画像の内容が増減することによって生じる更新指示を受信することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記表示制御手段は、前記特定手段によって特定されたオブジェクトの、前記表示画面に表示されている画像における位置と、前記受信手段によって受信された更新指示に従う場合に前記表示画面に表示される画像における位置とに基づいて、前記オブジェクトを、前記画面更新の前後において同一の位置に表示させることを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記受信手段によって受信された更新指示に従う場合に前記表示画面に表示される画像での、前記特定手段によって特定されたオブジェクトの配置を取得する配置取得手段とを更に備え、
前記表示制御手段は、前記配置取得手段によって取得された配置に従って表示される前記オブジェクトが、前記推定手段によって推定された位置と、前記更新後の前記表示画面で、前記特定手段によって特定されたオブジェクトを表示させる位置を制御することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記推定手段によって推定された位置と、前記配置取得手段によって取得された配置とに基づいて、前記画面更新後に前記表示画面に表示される画像を平行移動させる移動量を決定する決定手段を更に備え、
前記表示制御手段は、前記決定手段が決定した移動量の分、前記更新後に前記表示画面に表示される画像を、所定の表示位置から平行移動させることを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記推定手段は、前記表示画面に近接した指示体の位置に基づいて、前記ユーザによって指定される前記表示画面上の位置を推定することを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記特定手段は、前記表示画面に表示されている画像において、前記推定手段によって推定された位置の近傍に存在するオブジェクトを特定し、
前記決定手段は、前記推定手段によって推定された位置が、前記画面更新後に前記表示画面に表示される画像における前記特定手段によって特定されたオブジェクトの中心に位置するように前記移動量を決定することを特徴とする請求項５に記載の情報処理装置。
【請求項８】
前記決定手段は、前記推定手段によって推定された位置と、前記特定手段によって特定されたオブジェクトとの相対位置関係を、前記更新後の前記表示画面においても維持するように、前記移動量を決定することを特徴とする請求項５に記載の情報処理装置。
【請求項９】
前記決定手段は、前記推定手段によって推定された位置が、前記特定手段によって特定されたオブジェクトと重なるように前記更新後に前記表示画面に表示される画像を平行移動させる移動量を決定することを特徴とする請求項５に記載の情報処理装置。
【請求項１０】
前記推定手段によって推定された位置に基づいて、前記表示画面に表示された１以上のオブジェクトのそれぞれが操作される確率を取得する確率取得手段を更に備え、
前記特定手段は、前記確率取得手段によって取得された確率に基づいてオブジェクトを特定することを特徴とする請求項１乃至９のいずれか１項に記載の情報処理装置。
【請求項１１】
前記表示制御手段は、前記表示画面に表示されている画像において前記推定手段によって推定された位置に表示されるオブジェクトが、複数のサブオブジェクトによって構成される複合オブジェクトである場合には、
前記決定手段は、前記推定手段によって推定された位置に表示されたサブオブジェクトを、前記画面更新後においても前記更新前と同一の位置に表示させることを特徴とする請求項１乃至１０のいずれか１項に記載の情報処理装置。
【請求項１２】
受信手段により、表示画面に表示させた画像の少なくとも一部を更新する更新指示を受信する受信工程と、
推定手段により、ユーザによって前記表示画面上の位置が指定される前に、該指定される位置を推定する推定工程と、
特定手段により、前記表示画面に表示されている画像において前記推定された位置に表示されたオブジェクトを特定する特定工程と、
表示制御手段により、前記特定手段によって特定されたオブジェクトの、前記受信された更新指示に従う場合に前記表示画面に表示される画像おける位置に基づいて、前記オブジェクトを、前記画面更新後においても前記更新前と同一の位置に表示させる表示制御工程と、
を備えることを特徴とする情報処理装置の制御方法。
【請求項１３】
コンピュータに読み込ませ実行させることで、該コンピュータを請求項１乃至１１のいずれか１項に記載の情報処理装置として機能させるためのプログラム。
【請求項１４】
請求項１３に記載のプログラムを格納したコンピュータが読み取り可能な記憶媒体。
【請求項１５】
複数のコンテンツを段階的に組み合わせることで形成される表示画像を、各段階で表示画面に表示させる表示制御手段と、
ユーザによって前記表示画面上の位置が指定される前に、該指定される位置を推定する推定手段と、
前記表示画面に表示されている画像において、前記推定手段によって推定された位置に表示されているオブジェクトを特定する特定手段とを備え、
前記表示制御手段は、前記特定手段によって特定されたオブジェクトを、前記画像が形成される過程において同一の位置に表示させることを特徴とする情報処理装置。
【請求項１６】
表示制御手段により、複数のコンテンツを段階的に組み合わせることで形成される画像を、各段階で表示画面に表示させる表示制御工程と、
推定手段により、ユーザによって前記表示画面上の位置が指定される前に、該指定される位置を推定する推定工程と、
特定手段により、前記表示画面に表示されている画像において、前記推定工程で推定された位置に表示されているオブジェクトを特定する特定工程とを有し、
前記表示制御工程では、前記特定工程で特定されたオブジェクトを、前記画像が形成される過程において同一の位置に表示させることを特徴とする情報処理装置の制御方法。
【請求項１７】
コンピュータに読み込ませ実行させることで、該コンピュータを請求項１５に記載の情報処理装置として機能させるためのプログラム。
【請求項１８】
請求項１７に記載のプログラムを格納したコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は表示画面上に指示される位置情報に基づいて操作を認識する技術に関する。
【背景技術】
【０００２】
Ｗｅｂページなどをブラウザで閲覧しているときに、同じページを閲覧しているにもかかわらず、予期しないタイミングで、画面に表示された画像が更新され、コンテンツが増減することがある。これは閲覧しているページの読み込みを完了する前にブラウザが描画する場合や、スクリプト制御などによって画像が新たに読みこまれる場合などに発生する。
【０００３】
特許文献１では、画面更新前に入力操作が行われることが予測される位置には、更新後の画面では操作項目を配置することを避ける。これにより画面更新のタイミングとユーザによる入力操作のタイミングが重なった場合に、画面更新後に入力を受信してしまっても、誤操作となることを低減する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１８０６２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、操作項目を配置しない領域を確保するために、表示更新後の表示画面のレイアウトが崩れる場合があった。
【０００６】
そこで本発明では、表示更新のタイミングとユーザの入力操作のタイミングとが重なった場合にも、表示更新後の表示レイアウトを維持しつつ、誤動作を低減することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明に係る情報処理装置は、表示画面に表示させた画像の少なくとも一部を更新する更新指示を受信する受信手段と、ユーザによって前記表示画面上の位置が指定される前に、該指定される位置を推定する推定手段と、前記表示画面に表示されている画像において前記推定手段によって推定された位置に表示されたオブジェクトを特定する特定手段と、前記特定手段によって特定されたオブジェクトの、前記受信手段によって受信された更新指示に従う場合に前記表示画面に表示される画像における位置に基づいて、前記オブジェクトを、前記画面更新後においても前記更新前と同一の位置に表示させる表示制御手段と、を備える。
【発明の効果】
【０００８】
本発明によれば、表示更新のタイミングとユーザの入力操作のタイミングとが重なった場合にも、表示更新後の表示レイアウトを維持しつつ、誤動作を低減することができる。
【図面の簡単な説明】
【０００９】
【図１】情報処理装置のハードウェア構成の一例を示すブロック図。
【図２】実施例１における情報処理装置の機能構成の一例を示すブロック図。
【図３】実施例１における情報処理装置の処理の流れを示すフローチャート。
【図４】実施例１における情報処理装置の処理の流れを示すフローチャート。
【図５】実施例１における情報処理装置の処理内容を説明する模式図。
【図６】実施例１における情報処理装置の処理内容を説明する模式図。
【図７】実施例１における情報処理装置の処理内容を説明する模式図。
【図８】実施例２における情報処理装置の機能構成の一例を示すブロック図。
【図９】実施例２における情報処理装置の処理の流れを示すフローチャート。
【図１０】実施例２における情報処理装置の処理内容を説明する模式図。
【図１１】実施例３における情報処理装置の機能構成の一例を示すブロック図。
【図１２】実施例３における情報処理装置の処理の流れを示すフローチャート。
【図１３】実施例３における情報処理装置の処理内容を説明する模式図。
【発明を実施するための形態】
【００１０】
以下、本発明の実施例について、図面を参照して説明する。なお、以下の実施例は本発明の一例を示すものであり、これに限定するものとは限らない。また、各実施例で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一な構成については、できるだけ同じ符号を付して説明する。
【００１１】
＜実施例１＞
図１は本実施例における情報処理装置のハードウェア構成について示したブロック図である。図１において、情報処理装置１００は、バス１０１、ＣＰＵ１０２、ＲＯＭ１０３、ＲＡＭ１０４、描画ユニット１０５、タッチパネルディスプレイ１０６から構成されている。ＣＰＵ１０２は装置に備える各処理部の機能を実行させ、それらの協同実行や実行タイミングなどを制御する。ＲＯＭ１０３は変更を必要としないプログラムや各種パラメータを格納する。ＲＡＭ１０４はＳＤＲＡＭ、ＤＲＡＭなどによって構成され、外部装置などから供給されるプログラムやデータを一時記憶する。また、ＣＰＵ１０２の処理のワーク領域、エラー処理時のデータの退避領域、上記制御プログラムのロード領域などを有する。描画ユニット１０５はプログラムによって描画したグラフィックスを、タッチパネルディスプレイに対し出力する。タッチパネルディスプレイ１０６は、ユーザの入力操作情報を取り込むためのタッチセンサ等と表示出力を行う表示画面を兼ねるデバイスである。タッチパネルディスプレイ１０６は、表示画面が人の手などでタッチされた場合にその接触部分を検出し、表示画面上に定義される座標平面上で、タッチされている位置を１つの座標点として特定する。接触部分が面積を有する場合にはその重心あるいは中心の座標を特定する。以下、当該点をタッチ位置と言う。なお、タッチ位置は、タッチパネルに検出されている１以上の接触部分のうち、独立しているとみなされる１以上の接触部分（例えば、複数の指でタッチされた場合、接触部分は複数存在する）のそれぞれについて検出可能とする。すなわち本実施例のタッチパネルディスプレイ１０６は、いわゆるマルチタッチ検出が可能なものであって、同時刻において指示されている１以上のタッチ位置を全て検出することができるものである。また、本実施例では、表示画面の表面に接触していない、近接した状態でのユーザの指の先端などの位置情報（タッチ位置と同じ座標系での点として扱う）を、近接位置として検出する。タッチ及び近接の検出方式は、本実施例では、静電容量方式であるとする。ただし、抵抗膜方式、赤外線方式、超音波方式、音響波方式、振動検出方式等の各種タッチパネルを利用することも可能である。他にも、距離画像センサや、ステレオカメラなどの三次元空間での位置を検出できるもので入力対象面に触れたかどうかを検出し、入力対象面上で定義される位置情報を取得してもよい。なお、本実施例では、タッチ位置および近接位置は１点の座標点として検出するものとするが、これに限らない。面積を持った接触部分をタッチ位置や近接位置とみなしてもよく、また例えば表示画面をアレイ状の検出エリアに区分し、いずれのエリアにおいてタッチあるいは近接が検出されているかを示すエリアの識別情報を、位置情報として扱うこともできる。バス１０１はシステムバスであって、ＣＰＵ１０２、ＲＯＭ１０３、ＲＡＭ１０４、描画ユニット１０５およびタッチパネルディスプレイ１０６を接続する。
【００１２】
次に、本発明を適用した情報処理装置の処理の流れについて、図２に示した機能構成ブロック図と図３に示したフローチャートを参照して説明する。図２に示すように、本実施例の情報処理装置１００は、推定部２０１、指示受信部２０２、特定部２０３、部品配置取得部２０４、移動量決定部２０５、表示制御部２０６に構成される。本実施例では、これらの各機能部は、ＣＰＵ１０２がＲＯＭ１０３に格納されたプログラムをＲＡＭ１０４に展開し実行することでその機能を実現する。ただし、本発明は、これらの機能部をハードウェアで実現する情報処理装置によっても、同様に実現可能である。その場合には、各機能部の処理に対応させた演算部や回路を構成すればよい。
【００１３】
図３は、本実施例の情報処理装置１００が実行する操作認識処理のメインの流れを示す。本処理は、タッチパネルつきディスプレイ上にオブジェクトが配置されて表示されている状態から開始する。本実施例で想定するオブジェクトは、ＧＵＩを構成し、タッチされることによって予め設定されたコマンドを発生させるＵＩ部品である。処理の開始時点における操作画面は図５（ａ）に示したようなレイアウトでＵＩが配置されているものとする。図５（ｂ）はタッチパネルつきディスプレイ５０１の画面上にどのように表示されているかを示した図である。
【００１４】
まず推定部２０１において、タッチパネルディスプレイ１０６が検出する位置情報に基づいて、ユーザが指定しようとしているタッチパネル上の位置を推定し、ＲＡＭ１０４上に格納する（ステップＳ３０１）。本実施例のタッチパネルディスプレイ１０６である静電式タッチパネルでは、ある程度近接したオブジェクトであれば静電容量の変化量から、タッチパネル上における近接位置を検出することができる。本実施例では、静電容量の変化量の最も大きい点のタッチパネル上の座標を取得する。ただし、オブジェクトが検出可能範囲を越えているために近接位置を検出できない場合は、不検出であることを示す値を格納する。不検出であることを示す値は、タッチパネル上に存在しない座標値を用いてもよく、ここでは不検出を示す値の表現方法については限定しない。
【００１５】
次に指示受信部２０２において、画面更新の指示があったかどうかを確認する（ステップＳ３０２）。本実施例において画面更新とは、受信した指示に従って段階的に１つの画像を形成し表示出力する各段階で、内容が変更されたときに発生する更新である。形成される画像には複数のコンテンツが含まれ、画面更新の度に、それまでに形成された画像の少なくとも一部が更新される。例えば、Ｗｅｂブラウザアプリケーションでは、インターネット上のデータを取得しながら描画処理を行い、データの取得が完了するまでに複数回、画面更新されることがある。また、取得したデータに含まれているスクリプト言語により、例えば表示画面内の画像を入れ替える処理が行われた結果、画面更新されることがある。また、システムやアプリケーションからの割り込み要求でポップアップ画面が表示されるのも画面更新の一例である。表示している画像に含まれるコンテンツが増減する画面更新の際に、更新前の状態の画像に含まれたコンテンツの表示位置が変化する場合がある。本実施例では、ユーザが指定しようとする位置をその指定前に推定し、指定操作される可能性が高いオブジェクトの表示位置を、段階的に表示画像が形成されていく過程において同一の位置にとなるように制御することで、誤動作を低減するものである。なお、指定操作とは例えば、タッチによりＵＩ部品に関連付けられたコマンドを発行し、情報処理装置１００にコマンドに応じた処理を実行させる操作である。ステップＳ３０２において画面更新指示がない場合はステップＳ３０１に戻り、ユーザが指定しようとしている位置の決定を行い、決定した値または不検出を示す値を格納する。
【００１６】
ステップＳ３０２において画面更新指示があった場合は、ステップＳ３０１で格納された位置が存在するかどうかを確認する（ステップＳ３０３）。不検出を示す値ではなく位置が格納されていた場合は、特定部２０３においてその位置に存在する画面更新前の操作画面におけるオブジェクトを取得する（ステップＳ３０４）。ここでは格納されていた位置の座標が（６０，５０）とする。図５（ｃ）は、格納された位置と表示画面の関係を示す。位置５０５はボタンＢ５０３の内部にあり、ステップＳ３０４で取得されるオブジェクトはボタンＢ５０３となる。なお、図５（ｃ）において位置５０７（座標（６０，３５））は、どのオブジェクト上にも存在していないので、ステップＳ３０４で取得されるオブジェクトは存在しない。
【００１７】
次に、位置にオブジェクトが存在するかどうかを判定し（ステップＳ３０５）、存在した場合は部品配置取得部２０４において画面更新後の操作画面のレイアウト情報を取得する（ステップＳ３０６）。レイアウト情報は、操作画面の表示範囲外の領域の情報も含むとする。図５（ｄ）は、画面更新後の操作画面のレイアウト情報を図示する。この図では、画像５０６がボタンＡ５０２の上にレイアウトされ、ボタンＣ５０４はＸ軸より下側、すなわちＹ座標が負の領域にレイアウトされている。次に、ステップＳ３０４で取得したオブジェクトが画面更新後の操作画面のレイアウト情報に含まれているか判定する（ステップＳ３０７）。図５（ｄ）によればボタンＢ５０３は画面更新後の操作画面のレイアウト情報に含まれているので、次に部品配置取得部２０４においてボタンＢ５０３の画面更新後の操作画面のレイアウト情報を取得する（ステップＳ３０８）。図５（ｄ）より、ボタンＢ５０３のレイアウト情報は、左下の点の座標が（１０，１０）、幅が６０、高さが２０の矩形と取得される。なお、ステップＳ３０６で取得した画面更新後の操作画面のレイアウト情報が図６（ｂ）に示したようにボタンＢ５０３が含まれていなかった場合は、ステップＳ３０７において画面更新後にオブジェクトが存在しないと判定される。
【００１８】
次に、移動量決定部２０５において、ステップＳ３０４で取得した位置にステップＳ３０７で取得したオブジェクトが重なるように、ステップＳ３０８で取得したオブジェクトのレイアウト情報に基づいて平行移動量を決定する（ステップＳ３０９）。ここでステップＳ３０９の処理について、図４（ａ）に示したフローチャートを用いて、オブジェクトの中央がステップＳ３０１で格納された位置に重なるような平行移動量を計算により決定する例について説明する。ボタンＢ５０３のレイアウト情報から、画面更新後の操作画面におけるボタンＢ５０３の中央を計算する（ステップＳ４０１）。図５（ｃ）より、ボタンＢ５０３の中央の座標は（４０，２０）と求められる。次にボタンＢ５０３の中央点の座標から位置５０５の座標までのベクトルを計算する（ステップＳ４０２）。ベクトルは（２０，３０）となり、これが求める移動量となる。ただし、計算処理を行わず、予め用意されたルックアップテーブルを参照するなどにより、オブジェクトと近接位置の位置関係に対応する所定の移動量を決定してもよい。
【００１９】
表示制御部２０６において、ステップＳ３０９で求めた移動量に基づいて平行移動して画面更新後の操作画面を生成し、画面更新を行う（ステップＳ３１０）。図５（ｅ）は、画面更新によって画面上に表示される操作画面を示す。画面更新が完了した後、タッチパネルディスプレイ１０６においてタッチ入力が検出された場合は、タッチされた位置に表示されたオブジェクトに応じた処理を実行する。このように、本実施例では、ユーザの指がオブジェクト近傍で近接していることを検出した時点から、近接位置をユーザが指定しようとしている位置であるとみなしてオブジェクトの配置を制御することで、ユーザの意図に沿ったタッチ操作を認識できる。つまり、ユーザが指定しようとしている位置に存在するオブジェクトが更新前後において同一の位置に表示されるように制御しながら、画面の更新を行う。これにより、表示更新のタイミングとユーザの入力操作のタイミングとが重なった場合にも、表示更新後の表示レイアウトを維持しつつ、誤動作を低減することができる。なお、情報処理装置１００は、このようにユーザが指定しようとする位置に表示されたオブジェクトを固定して画面更新をさせるモードと、しないモードを備え、ユーザが任意に切り替え可能であっても良い。また、アプリケーションごとにいずれのモードを採用するかが設定されても良い。さらに、Ｗｅｂページなどの記述の仕方で、ブラウザ側でオブジェクトの位置の固定制御をさせないようにしても良い。
【００２０】
ここまで、ステップＳ３０９の処理について、オブジェクトの中央がステップＳ３０１で格納された位置に重なるような平行移動量を計算する方法を説明したが、オブジェクトがその位置に重なるようにする方法は代替可能である。変形例について、図４（ｂ）のフローチャートを用いて説明する。この例では、画面更新前の操作画面におけるオブジェクトとユーザが指定しようとしている位置の相対関係を加味して平行移動量を計算する。以下では、ユーザが指定しようとしている位置は図５（ｃ）に示した位置５０５（６０，５０）と仮定し、オブジェクトはボタンＢ５０３の場合について説明する。まず、画面更新前の操作画面におけるオブジェクトとユーザが指定しようとしている位置の相対位置関係として、オブジェクトの左下の座標（最も原点に近い座標）から、ステップＳ３０１で格納された位置へのベクトルを取得する（ステップＳ４０３）。ボタンＢ５０３の左下座標は図５（ａ）に示した画面更新前の操作画面のレイアウト情報から（１０，４０）であるので、ベクトルは（５０，１０）と求められる。次に、画面更新後の操作画面の操作画面におけるボタンＢ５０３のレイアウト情報から、ボタンＢ５０３の左下の座標からステップＳ４０３で求めたベクトルを足した点Ｐを求める（ステップＳ４０４）。画面更新後のボタンＢ５０３の左下の座標は図５（ｄ）より（１０，１０）なので、点Ｐは（６０，２０）と求められる。次に、移動量を点Ｐから位置５０５までのベクトルとして求める（ステップＳ４０５）。点Ｐから位置５０５までのベクトルは（０，３０）である。この移動量を適用してステップＳ３１０で画面更新後の操作画面を生成する。図５（ｆ）は、画面更新を行った結果を示す。ここでは相対的な位置関係として座標を用いて説明したが、ユーザが指定しようとしている位置をオブジェクトの高さ、幅に対する割合で計算するよう構成してもよい。この方法を用いると、オブジェクトが画面更新後に高さ、幅が変更された場合にも適用可能である。
【００２１】
なお、ステップＳ３０３で格納されている位置が不検出を示す値であった場合は、平行移動処理を適用せずにステップＳ３１０において画面更新後の操作画面を生成し、画面更新を行う。図６（ａ）は画面更新後に画面上に表示される操作画面を示した図である。ここでは平行移動処理を適用していないため、図５（ｄ）で示したレイアウト情報に基づいて画面に表示されている。また、ステップＳ３０４において、ユーザが指定しようとしている位置が図５（ｃ）における位置５０７のようにオブジェクトが取得されない場合は、ステップＳ３０５においてオブジェクトが存在しないと判定される。そして、同様にステップＳ３１０において更新後の操作画面を生成し、画面更新を行う。更新後の画面上に表示される操作画面も同様に図６（ａ）のようになる。また、ステップＳ３０６で取得した画面更新後の操作画面のレイアウト情報にステップＳ３０４で取得したオブジェクトが存在しない場合は、ステップＳ３０８，ステップＳ３０９の処理を行わず、ステップＳ３１０で画面更新後の画像を生成し画面更新を行う。ステップＳ３０６で図６（ｂ）に示したレイアウト情報を取得したとすると、画面更新後に画面上に表示される操作画面は図６（ｃ）のようになる。あるいは、図６（ｆ）のように、ステップＳ３０１で格納された位置にオブジェクトが重ならないように再配置してもよい。
【００２２】
上述した例では、ステップＳ３０４において、ステップＳ３０１で格納された位置に存在する画面更新前の操作画面におけるオブジェクトを取得する際、格納されている位置がオブジェクトの内部にあるかどうかで判定していた。ただし、その位置に最も近いオブジェクトを取得するようにしてもよい。例えば図６（ｄ）に位置６０１のように、どのオブジェクトの内部にも存在していない場合でも、位置６０１に最も近いオブジェクトとしてボタンＢ５０３を取得するように構成してもよい。また、所定の閾値を設定して、その閾値の範囲内でユーザが指定しようとしている位置に最も近いオブジェクトを取得するように構成してもよい。あるいは、その位置がオブジェクトそのものの内部かどうかを基準に判定するのではなく、オブジェクトを包含し、オブジェクトより大きな面積をもつ領域を設定し、その領域の内部かどうかを判定するようにしてもよい。例えば、図６（ｅ）に示したように、ボタンＡ５０２、ボタンＢ５０３、ボタンＣ５０４に対して、それぞれボタンＡ判定領域６０２、ボタンＢ判定領域６０３、ボタンＣ判定領域６０４を設定する。位置６０１はボタンＢ判定領域６０３に含まれるので、ステップＳ３０４ではボタンＢ５０３を取得する。
【００２３】
また、重力方向を検出可能な携帯端末において、携帯端末の向きと重力方向を組み合わせて表示を切り替えているものがあるが、これも画面更新の一例であるため、本実施例を適応できる。ここで、画面更新によって操作画面が縦長のレイアウトから横長のレイアウトに変更される例について説明する。図７（ａ）に示した操作画面が表示されている状態で、ステップＳ３０１で格納された位置が位置７０１、座標が（１４，４４）であった場合と、位置７０２、座標が（４０，５０）であった場合のそれぞれについて説明する。図７（ｂ）は、重力方向とタッチパネルつきディスプレイの向きの関係の変化によって、操作画面のレイアウトが変更されるときの、ステップＳ３０６で取得される画面更新後の操作画面のレイアウト情報を図示したものである。このように本実施例では、ディスプレイの向きが変化した際に鉛直方向にオブジェクトの上下方向を合わせるため、オブジェクトの幅などが変更される。このような場合にも、本実施例では、ユーザが指定することが推定された位置に表示されたオブジェクトが画面更新の前後で同一となるように、画面更新後の画面表示位置を制御する。ステップＳ３０１で格納された位置が位置７０１あるいは位置７０２のときは、ステップＳ３０４で取得されるオブジェクトはボタンＢ５０３である。図７（ｂ）より、ステップＳ３０７では画面更新後の操作画面のレイアウトにボタンＢ５０３は存在すると判定し、ステップＳ３０８でボタンＢ５０３のレイアウト情報を取得する。続いてステップＳ３０９において平行移動量を決定する。ステップＳ３０９の処理は図４（ａ）で示したオブジェクトの中央とステップＳ３０１で格納された位置が重なるような移動量を計算して決定しもよい。また、図４（ｂ）のようにオブジェクトとステップＳ３０１で格納された位置の相対的な位置関係を加味して計算してもよい。ここでは別の方法として、軸方向の平行移動を優先させて計算する処理について説明する。図４（ｃ）は図３におけるステップＳ３０９の処理を、軸方向の平行移動を優先させる方法について説明したフローチャートである。はじめに、ステップＳ３０１で格納された位置と画面更新後のオブジェクトが重なっているかどうかを判定する（ステップＳ４０６）。重なっていると判定されれば、移動する必要がないため、移動量決定部２０５において移動量なしと決定し（ステップＳ４０７）、ステップＳ３０９の処理を終了する。ステップＳ４０６で重なっていないと判定された場合は、オブジェクトを軸方向に平行移動することでステップＳ３０１で格納された位置と重なるかどうかを判定する（ステップＳ４０８）。軸方向に平行移動してその位置と重なると判定された場合は、軸方向への平行移動量を算出する（ステップＳ４０９）。Ｘ軸方向に平行移動して重なると判定された場合は、オブジェクトのＹ軸方向の中心線とステップＳ３０１で格納された位置が重なるまでのＸ軸方向の平行移動量を計算する。Ｙ軸方向に平行移動して重なると判定された場合は、オブジェクトのＸ軸方向の中心線とステップＳ３０１で格納された位置が重なるまでのＹ軸方向の平行移動量を計算する。ステップＳ４０８でいずれの軸方向への平行移動でも重ならないと判定された場合は、図４（ｂ）で示した処理と同じ処理を行ってステップＳ３０９の処理を終了する。図７（ａ）および図７（ｂ）で示した位置７０１と画面更新後の操作画面のレイアウトによると、画面更新後のボタンＢ５０３と位置７０１は重ならず、ボタンＢ５０３はＸ軸の負方向に平行移動させると重なる。この場合はステップＳ４０９の処理を行う。具体的にはまず画面更新後のレイアウト情報に基づき、ボタンＢ５０３のＹ軸方向の中心線を計算する。ボタンＢ５０３のＹ軸方向の中心はＸ＝４０であるので、位置７０１（１４，４４）と重なるまでの平行移動量は（−２６，０）と求められる。ステップＳ３１０で画面更新した結果表示される操作画面とステップＳ３０１で格納された位置を重ねて図示したのが図７（ｄ）である。一方、ボタンＢ５０３の画面更新後の領域と位置７０２は重なるため、ステップＳ４０７において移動量なしと計算される。この場合はステップＳ３１０で画面更新した結果表示される操作画面とステップＳ３０１で格納された位置を重ねて図示すると図７（ｃ）のようになる。これは図７（ｂ）で示したレイアウトどおりに表示されている。このように本実施形態では、ディスプレイの向きが変更されたことに応じ、オブジェクトの向き及び幅が変わる画面更新の場合も、更新前にユーザが指定することが推定された位置に表示されたオブジェクトを、更新後にも同一の位置に表示させる。ここで同一の位置に表示するとは、当該推定された位置に、更新前に表示されていたのと同一のオブジェクトが重なるように表示されることである。つまり、オブジェクトの向きや大きさが一致することは問わず、当該位置をタッチした場合に、更新前後において同じオブジェクトに対する操作を入力することが可能な状況であればよい。
【００２４】
なお、タッチ操作を認識するアプリケーションによっては、タッチパネルから指あるいはペンなどを離した位置（タッチアップした位置）を特定し、その位置に存在するオブジェクトの処理を開始するように構成されるものが存在する。この場合はタッチを開始した位置（タッチダウンした位置）を、ユーザが指定しようとする位置とみなしてステップＳ３０１で格納してもよい。この場合は、タッチダウンされた後、指あるいはペンを離す（タッチアップする）までの間に発生する画面更新において、これまで説明してきたような処理を実行する。それにより、指定しようとした位置に表示されていたオブジェクトが更新後にも同一の位置に表示されるように制御し、誤動作を低減する効果を得ることが可能である。
【００２５】
さらに、本実施例で説明した静電式タッチパネルつきディスプレイ以外の入出力デバイスであっても適用可能である。例えば、操作画面が表示されている表示画面上でユーザがマウスカーソルなどの操作指示体を移動させ、クリック操作によって操作指示体の位置にあるオブジェクトの処理を実行する場合にも適用可能である。すなわち、推定部２０１においてマウスカーソルの表示位置を、指定されようとしている位置とみなして取得、格納（ステップＳ３０１）する。そして、ステップＳ３０２からステップＳ３１０の処理を行うことによって、画面更新前にマウスカーソルの位置にあったオブジェクトは画面更新後もマウスカーソルの位置にレイアウトされる。また、ユーザの視線を検出し、ユーザが注目している点を指定されようとする位置であると推定し、ステップＳ３０１において取得するようにしてもかまわない。
【００２６】
以上説明した処理制御を行うことで、ユーザが指定しようとした瞬間に画面更新が発生しても、指定しようとしていたオブジェクトが画面更新後もユーザが指定しようとしている位置に存在するので、誤操作を低減することが可能となる。
【００２７】
＜実施例２＞
実施例１では、ユーザが指定しようとしている位置と重なる、あるいは近傍に存在する単一のオブジェクトに基づいて操作画面の表示を制御する方法について説明した。本実施例においては、ユーザが指定しようとしている位置に近接する複数のオブジェクトに基づいて操作画面の表示を制御する方法について説明する。
【００２８】
実施例２における表示制御システムのハードウェア構成は実施例１で説明したものと同一であるため説明を省略する。実施例２における機能構成を示したブロック図を図８に、処理の流れを示したフローチャートを図９に示す。図８のブロック図の、図２との差分は、確率取得部８０１が追加されていることにある。確率取得部８０１は、近接位置の近傍に存在する１以上のオブジェクトのうち優先して表示位置をずらさないように制御すべき部品を特定するために、いずれの部品が操作されようとしているのかを示す指標を取得する。本実施例では、確率取得部８０１は、非操作確率を計算する。
【００２９】
ステップＳ３０１からステップＳ３０３は実施例１で説明した内容と同一なので、説明を省略する。ステップＳ３０３において、格納された位置が不検出を示す値であれば、実施例１で説明したのと同じように、ステップＳ３１０において画面更新を行い、処理を終了する。ここで格納されている位置は座標（３９，４６）であるとする。図１０（ａ）は画面更新前の操作画面のレイアウト情報を示した模式図である。ステップＳ３０３において不検出を示す値ではなく位置が格納されていた場合、特定部２０３において格納されている位置を含む所定の範囲内に含まれるオブジェクトを取得する（ステップＳ９０１）。そして、その位置近傍にオブジェクトがあるかどうかを判定する（ステップＳ９０２）。操作画面が表示されている様子と格納されている位置の関係を示した模式図が図１０（ｂ）である。ここでは、ステップＳ３０１で格納された位置を含む所定の範囲を、ディスプレイ１００７に表示されている範囲で、かつその位置を中心とした半径１５の円であるとすると、図１０（ｂ）のオブジェクト取得範囲１００６に示した範囲となる。オブジェクト取得範囲１００６と重なるオブジェクトはボタンＢ１００２、ボタンＣ１００３となり、ボタンＡ１００１とボタンＤ１００４は範囲に含まれない。オブジェクト取得範囲内にオブジェクトがない場合はステップＳ３１０において画面更新を行い、処理を終了する。オブジェクト取得範囲内にオブジェクトがある場合は、確率取得部８０１において、取得したオブジェクトの被操作確率を取得する（ステップＳ９０３）。被操作確率とはつまり、この時点以降に当該ＵＩ品がタッチされるであろう確率であって、最もタッチされやすい部品の表示位置を優先して制御するために用いる指標の一例である。ここでは位置１００５から各部品までの最短距離の逆数の比を計算することによって、被操作確率として扱う値を取得する。図１０（ａ）および図１０（ｂ）より、位置１００５からボタンＢ１００２までの最短距離は４、位置１００５からボタンＣ１００３までの最短距離は６となるので、ボタンＢ１００２の被操作確率は６０％、ボタンＣ１００３の被操作確率は４０％となる。
【００３０】
次に画面更新後の操作画面のレイアウト情報を取得する（ステップＳ９０４）。ここで取得されるレイアウト情報の例を図示したのが図１０（ｃ）の模式図である。ボタンＢ１００２とボタンＣ１００３の幅がそれぞれ変更されている。次に、画面更新後の操作画面のレイアウト情報に、ステップＳ９０１で取得したオブジェクトが存在しているかどうかを判定する（ステップＳ９０５）。存在していない場合はステップＳ３１０において画面更新を行い、処理を終了する。この例では、ボタンＢ１００２、ボタンＣ１００３がともに存在しているので、それぞれのレイアウト情報を取得する（ステップＳ９０６）。次に、ステップＳ９０３で求めた被操作確率をもとに画面更新後の操作画面の移動量を計算する（ステップＳ９０７）。
【００３１】
ステップＳ９０７の処理についてここで詳細に説明する。ボタンＢ１００２の輪郭とボタンＣ１００３の輪郭からのそれぞれの最短距離がオブジェクトの被操作確率の逆数比になる点の集合を求める。この点の集合を図示したのが図１０（ｃ）における分割線１００８である。分割線１００８は座標（４４，４０）から座標（４４，６０）までの線分として求められる。次に分割線１００８の中点（４４，５０）から位置１００５（３９，４６）へのベクトルを計算する。このベクトルは（−５，−４）と求められ、これを移動量として適用した画面更新後の操作画面を生成し、画面更新を行うと、図１０（ｄ）に示したような操作画面となる。
【００３２】
なお、ここでは２つのオブジェクトの被操作確率を計算し、それに基づいた移動量を適用する情報処理方法について説明したが、３つ以上のオブジェクトの被操作確率から計算することも可能である。また、ステップＳ９０５において、ステップＳ９０１で取得したすべてのオブジェクトが画面更新後の操作画面のレイアウト情報に含まれなかった場合は、画面更新後の操作画面のレイアウト情報に含まれているオブジェクトのみから計算してもよい。また、画面更新後の操作画面のレイアウト情報において、ステップＳ９０１で取得したオブジェクトが所定の値より離れてレイアウトされた場合は移動量なしとして処理するように構成してもよい。
【００３３】
以上説明した処理制御を行うことで、ユーザが指定しようとした瞬間に画面更新が発生しても、指定しようとしていた位置近傍に存在した複数のオブジェクトが、画面更新後にその位置近傍に表示されるので、誤操作を低減することが可能となる。また、指定する可能性が高いオブジェクトほど、画面更新後にその位置の近くに表示されるため、誤操作を低減することが可能となる。
【００３４】
＜実施例３＞
実施例１および実施例２では、ボタンのようにオブジェクトの表示領域内であればどの位置を指定しても実行される処理が１つである例について説明した。本実施例では、オブジェクトを指定する位置によって異なる処理が実行される場合に操作画面の表示を制御する方法について説明する。
【００３５】
実施例３における表示制御システムのハードウェア構成は実施例１で説明したものと同一であるため説明を省略する。実施例３における機能構成を示したブロック図を図１１に、処理の流れを示したフローチャートを図１２に示す。図１１と図２の差分は、複合判定部１１０１とサブオブジェクト取得部１１０２が追加されていることである。複合判定部は、ユーザが指定しようとしているとみなされる位置に存在するオブジェクトが、複合オブジェクトか否かを判断する。本実施例において複合オブジェクトとは、１つの表示オブジェクトであっても、その表示領域内で指定される位置により、異なる処理を指示するコマンドが受け付けられるＵＩ部品を示す。またサブオブジェクト取得部１１０２は、複合オブジェクトを構成する各要素となるＵＩ部品（コマンド１つずつに対応するＵＩ部品）を取得する。
【００３６】
画面更新前の操作画面のレイアウトは図１３（ａ）に図示したようになっているものとする。ボタンＡ１３０１、ボタンＢ１３０２は、領域内のどの位置を指定されても１つの処理を実行するオブジェクトである。コンボボックス１３０３は、テキストボックス１３０４とドロップダウンボタン１３０５から構成される。テキストボックス１３０４の領域を指定するとテキスト編集モードに移行し、ドロップダウンボタン１３０５を指定するとドロップダウンメニューが表示される。本実施例では、このような指定する位置によって処理が異なるオブジェクトを複合オブジェクトと定義する。複合オブジェクトとしては、他にもスピンボタン、スライダーなどがある。また、複合オブジェクトを構成するオブジェクトをサブオブジェクトサブオブジェクトと定義する。例えば、コンボボックス１３０３におけるサブオブジェクトはテキストボックス１３０４とドロップダウンボタン１３０５である。
【００３７】
図１２において、ステップＳ３０１からステップＳ３０７までは実施例１で説明した内容と同一であるので説明を省略する。ステップＳ３０１で取得、格納された位置を（６６，７４）とする。画面上に表示される画面更新前の操作画面にステップＳ３０１で格納された位置を重畳させて示した模式図が図１３（ｂ）である。ステップＳ３０５において、位置１３０６とコンボボックス１３０３が重なっているので、その位置にオブジェクトが存在すると判定される。ステップＳ３０６で取得された画面更新後の操作画面のレイアウトを図示したのが図１３（ｃ）である。コンボボックス１３０３が画面更新後の操作画面のレイアウトに存在するので、ステップＳ３０７では画面更新後に同じオブジェクトが存在すると判定される。
【００３８】
次に、複合判定部１１０１において画面更新前にステップＳ３０１で格納された位置に存在したオブジェクトが複合オブジェクトであるかどうかを判定する（ステップＳ１２０１）。複合オブジェクトかどうかの判定は、あらかじめオブジェクトが複合オブジェクトかどうかの種別をリストに登録しておき、そのリストを参照するように構成してもよいし、また他の方法であってもかまわない。複合オブジェクトでなかった場合は実施例１で説明したステップＳ３０８、ステップＳ３０９の処理を実行し、計算された移動量を適用して画面更新後の操作画面生成し、画面更新を行って本処理を終了する。複合オブジェクトであった場合は、サブオブジェクト取得部１１０２においてステップＳ３０１で格納された位置に存在するサブオブジェクトを取得する（ステップＳ１２０２）。図１３（ｂ）より、ステップＳ１２０２で取得されるサブオブジェクトはドロップダウンボタン１３０５である。次に、移動量決定部２０５において、画面更新後の操作画面の移動量を、ステップＳ１２０２で取得したサブオブジェクトに基づいて計算する（ステップＳ１２０３）。ここでは、画面更新後の操作画面が、ステップＳ１２０２で取得したサブオブジェクトの中央と格納された位置が一致するような平行移動量を計算する。画面更新後の操作画面におけるドロップダウンボタン１３０５の中央の座標は（２０，８５）である。位置１３０６の座標は（６６，７４）であるので、平行移動量は（４６，−１１）と求められる。ステップＳ１２０３で求めた移動量を適用し、ステップＳ３１０において画面更新後の操作画面を生成し、画面更新を行う。本実施例における画面更新後の操作画面の表示は図１３（ｄ）のようになる。
【００３９】
以上説明した処理制御を行うことで、ユーザが指定しようとした瞬間に画面更新が発生しても、指定しようとしていたオブジェクトに含まれるサブオブジェクトが、指定しようとしていた位置近傍に表示されるので、誤操作を低減することが可能となる。
【００４０】
＜その他の実施例＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2015125457.tif 000003
【図２】
2015125457.tif 000004
【図３】
2015125457.tif 000005
【図４】
2015125457.tif 000006
【図５】
2015125457.tif 000007
【図６】
2015125457.tif 000008
【図７】
2015125457.tif 000009
【図８】
2015125457.tif 000010
【図９】
2015125457.tif 000011
【図１０】
2015125457.tif 000012
【図１１】
2015125457.tif 000013
【図１２】
2015125457.tif 000014
【図１３】
2015125457.tif 000015