(57)【特許請求の範囲】
【請求項１】
第１のユーザ及び第２のユーザの両方が操作可能な共有コンテンツ上に配置されているカーソルの位置を特定するカーソル位置特定手段と、
前記カーソルの位置に基づいて、前記共有コンテンツ上のオブジェクトがフォーカス状態となっているか非フォーカス状態となっているかを判定するフォーカス状態判定手段と、
所定の処理の実行を指示する操作が、前記第１のユーザにより行われたことを特定する操作特定手段と、
前記第２のユーザの操作による前記共有コンテンツの表示更新を特定する表示更新特定手段と、
前記所定の処理の実行を指示する操作までの所定時間に前記表示更新があったことが特定される場合に、当該操作の前記所定時間前以前であって当該操作の前記所定時間前に最も近いタイミングにフォーカス状態であったオブジェクトに対して前記所定の処理を実行する処理実行手段と、
を含むことを特徴とするコンテンツ共有システム。
【請求項２】
前記処理実行手段は、前記所定の処理の実行を指示する操作までの所定時間に前記表示更新があったことが特定される場合に、当該操作のタイミングの前記所定時間前にフォーカス状態であり、当該操作までの前記所定時間に非フォーカス状態になったオブジェクトに対して前記所定の処理を実行する、
ことを特徴とする請求項１に記載のコンテンツ共有システム。
【請求項３】
前記処理実行手段は、さらに、前記所定の処理の実行を指示する操作の前記所定時間前における前記共有コンテンツ上における前記カーソルの位置と、前記所定の処理の実行を指示する操作のタイミングにおける前記共有コンテンツ上における前記カーソルの位置と、の間の長さが所定長よりも短い場合に、当該操作の前記所定時間前以前であって当該操作の前記所定時間前に最も近いタイミングにフォーカス状態であったオブジェクトに対して前記所定の処理を実行する、
ことを特徴とする請求項１又は２に記載のコンテンツ共有システム。
【請求項４】
前記処理実行手段は、さらに、前記所定の処理の実行を指示する操作のタイミングにフォーカス状態であるオブジェクトが存在しない場合に、当該操作の前記所定時間前以前であって当該操作の前記所定時間前に最も近いタイミングにフォーカス状態であったオブジェクトに対して前記所定の処理を実行する、
ことを特徴とする請求項１から３のいずれか一項に記載のコンテンツ共有システム。
【請求項５】
前記処理実行手段は、さらに、前記所定の処理の実行を指示する操作の前記所定時間前よりも前に前記表示更新がない場合に、当該操作の前記所定時間前以前であって当該操作の前記所定時間前に最も近いタイミングにフォーカス状態であったオブジェクトに対して前記所定の処理を実行する、
ことを特徴とする請求項１から４のいずれか一項に記載のコンテンツ共有システム。
【請求項６】
第１のユーザ及び第２のユーザの両方が操作可能な共有コンテンツ上に配置されているカーソルの位置を特定するステップと、
前記カーソルの位置に基づいて、前記共有コンテンツ上のオブジェクトがフォーカス状態となっているか非フォーカス状態となっているかを判定するステップと、
所定の処理の実行を指示する操作が、前記第１のユーザにより行われたことを特定するステップと、
前記第２のユーザの操作による前記共有コンテンツの表示更新を特定するステップと、
前記所定の処理の実行を指示する操作までの所定時間に前記表示更新があったことが特定される場合に、当該操作の前記所定時間前以前であって当該操作の前記所定時間前に最も近いタイミングにフォーカス状態であったオブジェクトに対して前記所定の処理を実行するステップと、
を含むことを特徴とするコンテンツ共有方法。
【請求項７】
第１のユーザ及び第２のユーザの両方が操作可能な共有コンテンツ上に配置されているカーソルの位置を特定する手順、
前記カーソルの位置に基づいて、前記共有コンテンツ上のオブジェクトがフォーカス状態となっているか非フォーカス状態となっているかを判定する手順、
所定の処理の実行を指示する操作が、前記第１のユーザにより行われたことを特定する手順、
前記第２のユーザの操作による前記共有コンテンツの表示更新を特定する手順、
前記所定の処理の実行を指示する操作までの所定時間に前記表示更新があったことが特定される場合に、当該操作の前記所定時間前以前であって当該操作の前記所定時間前に最も近いタイミングにフォーカス状態であったオブジェクトに対して前記所定の処理を実行する手順、
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツ共有システム、コンテンツ共有方法及びプログラムに関する。
【背景技術】
【０００２】
共有コンテンツに対して複数のユーザが操作を行えるシステムが存在する。例えば特許文献１には、共有されるホワイトボードに対して複数のユーザのいずれもが描画操作を行えるシステムが記載されている。特許文献１に記載の技術では、端末装置の表示部に表示されているホワイトボードに対する描画操作の内容が、ネットワークを介して接続された別の端末装置の表示部に表示されているホワイトボードに反映される。【０００３】
また特許文献１に記載の技術では、ユーザがホワイトボードに対して描画操作を行っている際に他のユーザによる表示更新が行われても、所定の操作を行うことでホワイトボードを表示更新前の状態に戻すことができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−３３１３０９号公報
【特許文献２】特許第５９７７４５０号公報
【特許文献３】国際公開第２０１６／０６７３６３号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明者らは、セレクトボックス等のオブジェクトが配置されているウェブページのような共有コンテンツに対し、複数のユーザが操作を行えるシステムの実装を検討している。このようなシステムにおいて、オブジェクトを選択する操作をユーザが行おうとしている際に、他のユーザの操作により当該共有コンテンツの表示更新が行われるとユーザが意図するオブジェクトが選択されないおそれがある。またこのような状況ではユーザの意図とは異なるオブジェクトが選択されるおそれがある。【０００６】
この点、特許文献１には、ユーザが描画操作を行おうとしている際に他のユーザの操作により表示更新が行われた状況における、表示更新後のホワイトボードに対するユーザの描画操作に応じた処理については記載されていない。なおユーザの意図に沿った処理が実行されるようにする技術である特許文献２、３に記載の技術では、そもそも他のユーザの操作による共有コンテンツの表示更新が想定されていない。【０００７】
本発明は上記実情に鑑みてなされたものであって、その目的の一つは、他のユーザの操作による表示更新が行われた後の共有コンテンツに対するユーザの操作を適切に処理できるコンテンツ共有システム、コンテンツ共有方法及びプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明に係るコンテンツ共有システムは、第１のユーザ及び第２のユーザの両方が操作可能な共有コンテンツ上に配置されているカーソルの位置を特定するカーソル位置特定手段と、前記カーソルの位置に基づいて、前記共有コンテンツ上のオブジェクトがフォーカス状態となっているか非フォーカス状態となっているかを判定するフォーカス状態判定手段と、所定の処理の実行を指示する操作が、前記第１のユーザにより行われたことを特定する操作特定手段と、前記第２のユーザの操作による前記共有コンテンツの表示更新を特定する表示更新特定手段と、前記所定の処理の実行を指示する操作までの所定時間に前記表示更新があったことが特定される場合に、当該操作の前記所定時間前以前であって当該操作の前記所定時間前に最も近いタイミングにフォーカス状態であったオブジェクトに対して前記所定の処理を実行する処理実行手段と、を含む。【０００９】
本発明の一態様では、前記処理実行手段は、前記所定の処理の実行を指示する操作までの所定時間に前記表示更新があったことが特定される場合に、当該操作のタイミングの前記所定時間前にフォーカス状態であり、当該操作までの前記所定時間に非フォーカス状態になったオブジェクトに対して前記所定の処理を実行する。【００１０】
また、本発明の一態様では、前記処理実行手段は、さらに、前記所定の処理の実行を指示する操作の前記所定時間前における前記共有コンテンツ上における前記カーソルの位置と、前記所定の処理の実行を指示する操作のタイミングにおける前記共有コンテンツ上における前記カーソルの位置と、の間の長さが所定長よりも短い場合に、当該操作の前記所定時間前以前であって当該操作の前記所定時間前に最も近いタイミングにフォーカス状態であったオブジェクトに対して前記所定の処理を実行する。【００１１】
また、本発明の一態様では、前記処理実行手段は、さらに、前記所定の処理の実行を指示する操作のタイミングにフォーカス状態であるオブジェクトが存在しない場合に、当該操作の前記所定時間前以前であって当該操作の前記所定時間前に最も近いタイミングにフォーカス状態であったオブジェクトに対して前記所定の処理を実行する。【００１２】
また、本発明の一態様では、前記処理実行手段は、さらに、前記所定の処理の実行を指示する操作の前記所定時間前よりも前に前記表示更新がない場合に、当該操作の前記所定時間前以前であって当該操作の前記所定時間前に最も近いタイミングにフォーカス状態であったオブジェクトに対して前記所定の処理を実行する。【００１３】
また、本発明に係るコンテンツ共有方法は、第１のユーザ及び第２のユーザの両方が操作可能な共有コンテンツ上に配置されているカーソルの位置を特定するステップと、前記カーソルの位置に基づいて、前記共有コンテンツ上のオブジェクトがフォーカス状態となっているか非フォーカス状態となっているかを判定するステップと、所定の処理の実行を指示する操作が、前記第１のユーザにより行われたことを特定するステップと、前記第２のユーザの操作による前記共有コンテンツの表示更新を特定するステップと、前記所定の処理の実行を指示する操作までの所定時間に前記表示更新があったことが特定される場合に、当該操作の前記所定時間前以前であって当該操作の前記所定時間前に最も近いタイミングにフォーカス状態であったオブジェクトに対して前記所定の処理を実行するステップと、を含む。【００１４】
また、本発明に係るプログラムは、第１のユーザ及び第２のユーザの両方が操作可能な共有コンテンツ上に配置されているカーソルの位置を特定する手順、前記カーソルの位置に基づいて、前記共有コンテンツ上のオブジェクトがフォーカス状態となっているか非フォーカス状態となっているかを判定する手順、所定の処理の実行を指示する操作が、前記第１のユーザにより行われたことを特定する手順、前記第２のユーザの操作による前記共有コンテンツの表示更新を特定する手順、前記所定の処理の実行を指示する操作までの所定時間に前記表示更新があったことが特定される場合に、当該操作の前記所定時間前以前であって当該操作の前記所定時間前に最も近いタイミングにフォーカス状態であったオブジェクトに対して前記所定の処理を実行する手順、をコンピュータに実行させる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態に係るコンテンツ共有システムの全体構成の一例を示す図である。
【図２】本発明の一実施形態に係るユーザ端末の構成の一例を示す図である。
【図３Ａ】ウィンドウの一例を示す図である。
【図３Ｂ】ウィンドウの一例を示す図である。
【図３Ｃ】ウィンドウの一例を示す図である。
【図３Ｄ】ウィンドウの一例を示す図である。
【図３Ｅ】ウィンドウの一例を示す図である。
【図３Ｆ】ウィンドウの一例を示す図である。
【図４】本発明の一実施形態に係るユーザ端末で実装される機能の一例を示す機能ブロック図である。
【図５】フォーカス履歴情報の一例を示す図である。
【図６】本発明の一実施形態に係るユーザ端末において行われる処理の流れの一例を示すフロー図である。
【図７】位置履歴情報の一例を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明の一実施形態について、図面を参照しながら説明する。
【００１７】
図１は、本発明の一実施形態に係るコンテンツ共有システム１０の全体構成の一例を示す図である。図１に示すように、本実施形態に係るコンテンツ共有システム１０には、２つのユーザ端末１２（１２ａ，１２ｂ）、及び、サーバ１４が含まれている。ユーザ端末１２ａ、ユーザ端末１２ｂ、及び、サーバ１４は、インターネット等のコンピュータネットワーク１６に接続されている。そのため、ユーザ端末１２ａ、ユーザ端末１２ｂ、及び、サーバ１４は、コンピュータネットワーク１６を介して互いに通信可能となっている。
【００１８】
ユーザ端末１２は、本実施形態では例えば、パーソナルコンピュータ、タブレット端末、スマートフォンなどのコンピュータである。また本実施形態に係るユーザ端末１２にはウェブブラウザがインストールされている。
【００１９】
図２に示すように、本実施形態に係るユーザ端末１２には、例えば、プロセッサ２０、記憶部２２、通信部２４、表示部２６、操作部２８、カメラ部３０、マイク部３２、音声出力部３４、が含まれている。
【００２０】
プロセッサ２０は、例えばユーザ端末１２にインストールされているプログラムに従って動作するＣＰＵ等のプログラム制御デバイスである。記憶部２２は、例えばＲＯＭやＲＡＭ等の記憶素子やハードディスクドライブなどである。通信部２４は、ネットワークボードや無線ＬＡＮモジュールなどといった通信インタフェースである。表示部２６は、例えば液晶ディスプレイや有機ＥＬディスプレイ等のディスプレイである。操作部２８は、例えばマウス、キーボード、タッチパッドなどといった、操作入力に応じた入力データをプロセッサ２０に出力するユーザインタフェースである。カメラ部３０は、例えばデジタルカメラなどのカメラである。マイク部３２は、例えば周囲の音声を音声データに変換してプロセッサ２０に出力するマイクである。音声出力部３４は、例えばヘッドホンやスピーカなどといった、ユーザに音声を出力するデバイスである。
【００２１】
サーバ１４は、例えばユーザ端末１２ａのユーザ及びユーザ端末１２ｂのユーザの両方が操作可能な共有コンテンツを提供するウェブサーバ等のサーバコンピュータである。共有コンテンツとしては、例えば、ウェブページや画像などが挙げられる。以下、ユーザ端末１２ａのユーザをユーザＡと呼び、ユーザ端末１２ｂのユーザをユーザＢと呼ぶこととする。また本実施形態に係るサーバ１４には、ユーザ端末１２間におけるビデオチャットの機能が実装されている。また本実施形態に係るサーバ１４には、ユーザ端末１２ａの表示部２６に表示される共有コンテンツとユーザ端末１２ｂの表示部２６に表示される共有コンテンツとを同期させる機能が実装されている。
【００２２】
本実施形態では、例えばカメラ部３０、マイク部３２、音声出力部３４を用いて、ビデオチャットにより、ユーザＡとユーザＢとは互いに顔を見ながら音声による会話を行えるようになっている。
【００２３】
またユーザ端末１２ａの表示部２６に表示される共有コンテンツとユーザ端末１２ｂの表示部２６に表示される共有コンテンツとの間では同期がとられている。そのためユーザＡとユーザＢとは同じ共有コンテンツの同じ部分を見ながら音声による会話を行える。
【００２４】
そして本実施形態では例えば、ユーザ端末１２ａでの操作の内容が、ユーザ端末１２ａの表示部２６に表示されている共有コンテンツだけではなく、ユーザ端末１２ｂの表示部２６に表示されている共有コンテンツにも反映される。同様に例えばユーザ端末１２ｂでの操作の内容が、ユーザ端末１２ｂの表示部２６に表示されている共有コンテンツだけではなく、ユーザ端末１２ａの表示部２６に表示されている共有コンテンツにも反映される。
【００２５】
以上のことから、例えばユーザＡが見込顧客でありユーザＢが販売者であるような状況において仮想的な対面販売を行うにあたっては、本実施形態に係るコンテンツ共有システム１０は特に好適なシステムであるといえる。
【００２６】
ここで例えば、ユーザ端末１２ａとユーザ端末１２ｂとでウェブページが共有されており、ユーザ端末１２ａの表示部２６に図３Ａに例示するウェブブラウザのウィンドウ４０が表示されていることとする。この場合、ユーザ端末１２ｂの表示部２６にもウィンドウ４０が表示される。
【００２７】
図３Ａに示すように、ウィンドウ４０にはウェブページ４２の一部が配置されている。ウェブページ４２の全体はウィンドウ４０には収まりきらない。そしてユーザＡ及びユーザＢは、ウェブページ４２の全体のうち、ウィンドウ４０に配置されている部分を視覚できるようになっている。
【００２８】
また図３Ａには、カーソル４４が示されている。本実施形態においては、表示部２６に表示される共有コンテンツはユーザ端末１２ａとユーザ端末１２ｂとで共有されるが、カーソル４４の位置に関しては、ユーザ端末１２ａとユーザ端末１２ｂとで共有されない。すなわちユーザ端末１２ａにおけるカーソル４４の位置とユーザ端末１２ｂにおけるカーソル４４の位置とは独立しており互いに影響を与えない。またユーザ端末１２ａにおけるカーソル４４の位置をユーザＢは知ることができず、また同様にユーザ端末１２ｂにおけるカーソル４４の位置をユーザＡは知ることができない。
【００２９】
また本実施形態では、ユーザＡもユーザＢも、ウェブページ４２を上下方向にスクロールさせ、ウェブページ４２の全体のうちのウィンドウ４０に配置される部分を変えることができる。例えばカーソル４４を用いてスクロールバー４６に対するドラッグ操作を行ったり、スクロールバー４６の上や下の部分に対するクリック操作を行ったりすることなどによって、ウェブページ４２のスクロールは可能である。なお以下の説明では、ウェブページ４２のスクロール方向は上下方向であることとするが、ウェブページ４２のスクロール方向は左右方向であっても構わない。またウェブページ４２は、上下方向にも左右方向にもスクロール可能であってもよい。
【００３０】
以下、ウェブページ４２をスクロールさせる操作をスクロール操作と呼び、スクロール操作に応じてウェブページ４２のうちウィンドウ４０に配置される部分を変更する処理をスクロール処理と呼ぶこととする。
【００３１】
またウェブページ４２には、様々なオブジェクトが配置されている。例えば図３Ａに示すウェブページ４２には、３つのセレクトボックス４８（４８ａ，４８ｂ，及び４８ｃ）が配置されている。この他に例えば、ラジオボタン、送信ボタン、プルダウンメニューなどのオブジェクトがウェブページ４２に配置されていてもよい。
【００３２】
そして本実施形態では、カーソル４４の位置に基づいて、ウェブページ４２に配置されているそれぞれのオブジェクトについて、当該オブジェクトがフォーカス状態であるか非フォーカス状態が判定される。ここで例えばカーソル４４が配置されているオブジェクトが存在する場合に、当該オブジェクトがフォーカス状態であると判定されてもよい。またカーソル４４が配置されていなくても、カーソル４４の位置から所定長以内に配置されているオブジェクトが存在する場合に、当該オブジェクトがフォーカス状態であると判定されてもよい。
【００３３】
そしてユーザはウェブページ４２に配置されているオブジェクトに対する選択操作を行うことができる。例えばユーザがクリック操作を行うことで、選択操作を行うことができる。
【００３４】
そして選択操作に応じてフォーカス状態であるオブジェクトに対する所定の処理が実行される。例えばチェックされていないセレクトボックス４８がフォーカス状態である際に選択操作が行われることで、当該セレクトボックス４８はチェックされている状態に変化する。また逆に、例えばチェックされているセレクトボックス４８がフォーカス状態である際に選択操作が行われることで、当該セレクトボックス４８はチェックされていない状態に変化する。このようにセレクトボックス４８については、選択操作に応じて、セレクトボックス４８のチェック状態を変更する処理が実行されることとなる。
【００３５】
以下、オブジェクトに対する選択操作に応じて実行される、当該オブジェクトに対する所定の処理を、オブジェクト処理と呼ぶこととする。上述の例では、チェック状態の変更処理がセレクトボックス４８に対するオブジェクト処理に相当することとなる。この場合、選択操作は、オブジェクト処理の実行を指示する操作であるといえる。
【００３６】
なお本実施形態では、オブジェクト処理は、オブジェクトの種類毎に予め定められていることとする。例えばラジオボタンでは、選択操作がされたラジオボタンが選択状態となるよう、当該ラジオボタンを含む一群のラジオボタンの選択状態を変更する処理がオブジェクト処理に相当することとする。また例えば、プルダウンメニューでは、選択操作がされたプルダウンメニューの選択肢が一覧表示される状態に変更する処理がオブジェクト処理に相当することとする。また例えば、送信ボタンにおいては、ウェブページ４２に配置されているそれぞれのオブジェクトの状態を示す情報をサーバ１４に送信する処理がオブジェクト処理に相当することとする。
【００３７】
ここで例えば、図３Ａに示すように、ユーザＡがセレクトボックス４８ａに対する選択操作を行おうとして、ユーザ端末１２ａにおいて、セレクトボックス４８ａ上にカーソル４４が配置されていることとする。この場合、セレクトボックス４８ａはフォーカス状態であり、セレクトボックス４８ｂ、及び、セレクトボックス４８ｃは非フォーカス状態であることとする。またウェブページ４２はスクロールせずに止まっていることとする。
【００３８】
そしてユーザＡが、セレクトボックス４８ａに対する選択操作を行おうとしている際に、ユーザＢがウェブページ４２に対するスクロール操作を行ったとする。そしてユーザ端末１２ａ及びユーザ端末１２ｂにおいて、ウェブページ４２に対するスクロール処理が実行され、図３Ｂ、図３Ｃ、図３Ｄに示す状態を経て、図３Ｅに示す状態となったとする。図３Ｂに示す状態においては、図３Ａに示す状態でフォーカス状態であったセレクトボックス４８ａが非フォーカス状態に変化している。図３Ｃに示す状態においては、図３Ｂに示す状態では非フォーカス状態であったセレクトボックス４８ｂがフォーカス状態に変化している。図３Ｄに示す状態においては、図３Ｃに示す状態ではフォーカス状態であったセレクトボックス４８ｂが非フォーカス状態に変化している。図３Ｅに示す状態においては、図３Ｄに示す状態では非フォーカス状態であったセレクトボックス４８ｃがフォーカス状態に変化している。
【００３９】
そして図３Ｅに示す状態においてユーザ端末１２ａにおいて選択操作が認識できたとする。ここで例えば、ユーザＡが選択操作を行おうとしたタイミングからユーザ端末１２ａにおいて当該選択操作が認識されるタイミングまでの時間を時間Ｔ１とする。すなわちユーザ端末１２ａにおいて選択操作が認識できたタイミングから時間Ｔ１だけ前のタイミングにはウィンドウ４０は図３Ａに示す状態であったとする。なお時間Ｔ１としては、例えば０．５秒程度の時間が想定される。以下、選択操作のタイミングから時間Ｔ１だけ前のタイミングを基準タイミングと呼ぶこととする。なお時間Ｔ１は０．５秒である必要はなく任意であり、例えば、実験結果や経験に基づいて設定されたものであってもよい。
【００４０】
この状況において、本実施形態では、ユーザの意図とは異なる、セレクトボックス４８ｃがチェックされた状態とはならない。その代わりに図３Ｆに示すように、ユーザ端末１２ａにおいて基準タイミングにおいてフォーカス状態であったセレクトボックス４８ａがチェックされた状態となる。すなわち本実施形態では、セレクトボックス４８ｃではなくセレクトボックス４８ａに対するオブジェクト処理が実行されることとなる。
【００４１】
なお本実施形態では、セレクトボックス４８ｂは、基準タイミングにおいてフォーカス状態ではない。そしてセレクトボックス４８ｂは、基準タイミングからの選択操作のタイミングまでの時間Ｔ１においてフォーカス状態となり非フォーカス状態となっている。このような場合、本実施形態では、セレクトボックス４８ｂに対するオブジェクト処理は実行されない。すなわちセレクトボックス４８ｂについてはチェックされた状態とはならない。
【００４２】
このように本実施形態では、ユーザＡが選択操作を行おうとしたであろうと推定されるタイミングにフォーカス状態であったオブジェクトに対するオブジェクト処理が実行される。
【００４３】
なおユーザＡが選択操作を行おうとしたであろうと推定されるタイミングにフォーカス状態であったオブジェクトが存在しないことがある。例えばこのような場合には、ユーザＡが選択操作を行おうとしたであろうと推定されるタイミングの直前にフォーカス状態であったオブジェクトに対するオブジェクト処理が実行されてもよい。このようにして本実施形態では、他のユーザの操作によるスクロール等の表示更新があった後の共有コンテンツに対するユーザの操作を適切に処理できることとなる。
【００４４】
以下、本実施形態に係るユーザ端末１２の機能並びに本実施形態に係るユーザ端末１２で実行される処理についてさらに説明する。
【００４５】
図４は、本実施形態に係るユーザ端末１２ａで実装される機能の一例を示す機能ブロック図である。なお、本実施形態に係るユーザ端末１２ａで、図４に示す機能のすべてが実装される必要はなく、また、図４に示す機能以外の機能が実装されていても構わない。なお以下の機能は、ユーザ端末１２ｂにも同様に実装される。
【００４６】
図４に示すように、本実施形態に係るユーザ端末１２ａは、機能的には例えば、履歴情報記憶部５０、自ユーザ操作特定部５２、他ユーザ操作特定部５４、カーソル位置特定部５６、フォーカス状態判定部５８、履歴情報生成部６０、表示更新特定部６２、オブジェクト特定部６４、オブジェクト処理実行部６６、画面更新部６８、自ユーザ操作送信部７０、を含んでいる。
【００４７】
履歴情報記憶部５０は、記憶部２２を主として実装される。自ユーザ操作特定部５２は、プロセッサ２０及び操作部２８を主として実装される。他ユーザ操作特定部５４、自ユーザ操作送信部７０は、プロセッサ２０及び通信部２４を主として実装される。カーソル位置特定部５６、フォーカス状態判定部５８、履歴情報生成部６０、表示更新特定部６２、オブジェクト特定部６４、オブジェクト処理実行部６６、プロセッサ２０を主として実装される。画面更新部６８は、プロセッサ２０及び表示部２６を主として実装される。
【００４８】
以上の機能は、コンピュータであるユーザ端末１２ａにインストールされた、以上の機能に対応する指令を含むプログラムをプロセッサ２０で実行することにより実装されてもよい。また、このプログラムは、例えば、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク等のコンピュータ読み取り可能な情報記憶媒体を介して、あるいは、インターネットなどを介してユーザ端末１２ａに供給されてもよい。
【００４９】
履歴情報記憶部５０は、本実施形態では例えば、共有コンテンツ上のオブジェクトの状態の履歴を示す履歴情報を記憶する。
【００５０】
図５は、履歴情報記憶部５０に記憶される履歴情報の一例である、フォーカス履歴情報の一例を示す図である。フォーカス履歴情報には、オブジェクトが非フォーカス状態からフォーカス状態に変化したタイミングやフォーカス状態から非フォーカス状態に変化したタイミングの履歴が示されている。
【００５１】
図５に示すように、フォーカス履歴情報には、タイミング情報と、オブジェクト識別情報と、フォーカス情報と、が含まれている。
【００５２】
タイミング情報は、例えば、タイムスタンプの値や時刻などといった、タイミングと対応付けられる情報である。
【００５３】
オブジェクト識別情報は、例えば、タイミング情報が示すタイミングに、フォーカス状態から非フォーカス状態に変化した、あるいは、非フォーカス状態からフォーカス状態に変化したオブジェクトの識別情報である。図５の例では、セレクトボックス４８ａ、セレクトボックス４８ｂ、セレクトボックス４８ｃのオブジェクト識別情報として、それぞれ、Ａ、Ｂ、Ｃが示されている。
【００５４】
フォーカス情報は、例えば、オブジェクト識別情報により識別されるオブジェクトが、フォーカス状態から非フォーカス状態に変化したのか、非フォーカス状態からフォーカス状態に変化したのかを示す情報である。図５の例では、非フォーカス状態からフォーカス状態に変化したことはｏｎで示され、フォーカス状態から非フォーカス状態に変化したことはｏｆｆで示されている。
【００５５】
自ユーザ操作特定部５２は、本実施形態では例えば、操作部２８に対するユーザＡの操作を特定する。ここで自ユーザ操作特定部５２は、操作部２８を介して受け付ける物理的な操作入力に対応付けられる入力データに基づいて、ユーザＡの操作を特定してもよい。
【００５６】
例えばスクロールバー４６に対する上方向へのドラッグ操作が行われたことを表す入力データに基づいて、自ユーザ操作特定部５２は、ユーザＡによって、ウェブページ４２に対する上スクロール操作が行われたことを特定してもよい。また例えばスクロールバー４６に対する下方向へのドラッグ操作が行われたことを表す入力データに基づいて、自ユーザ操作特定部５２は、ユーザＡによって、ウェブページ４２に対する下スクロール操作が行われたことを特定してもよい。
【００５７】
また自ユーザ操作特定部５２が、例えば、上述の選択操作が行われたことを特定してもよい。
【００５８】
他ユーザ操作特定部５４は、本実施形態では例えば、ユーザ端末１２ｂに対するユーザＢの操作を特定する。ここで例えば他ユーザ操作特定部５４は、通信部２４を介して受信する、ユーザＢによる物理的な操作入力に対応付けられる操作情報に基づいて、ユーザＢによる操作を特定してもよい。
【００５９】
例えば上スクロール操作や下スクロール操作が行われたことを表す操作情報をユーザ端末１２ｂから受信した場合に、他ユーザ操作特定部５４は、当該操作情報が表す上スクロール操作や下スクロール操作をユーザＢの操作として特定してもよい。またこの場合に、操作情報がスクロール量を示す情報を含んでおり、他ユーザ操作特定部５４が、この情報に基づいてスクロール操作におけるスクロール量を特定してもよい。
【００６０】
また例えばオブジェクト処理の実行を指示する選択操作を表す操作情報をユーザ端末１２ｂから受信した場合に、他ユーザ操作特定部５４は、当該操作情報が表す選択操作をユーザＢの操作として特定してもよい。
【００６１】
カーソル位置特定部５６は、本実施形態では例えば、ウェブページ４２などといった共有コンテンツ上のカーソル４４の位置を特定する。
【００６２】
フォーカス状態判定部５８は、本実施形態では例えば、ウェブページ４２などといった共有コンテンツに配置されているオブジェクトがフォーカス状態であるか非フォーカス状態であるかを判定する。
【００６３】
またフォーカス状態判定部５８が、オブジェクトのフォーカス状態から非フォーカス状態への変化や、オブジェクトの非フォーカス状態からフォーカス状態への変化を検出してもよい。例えばウェブブラウザに実装されている、ｏｎｆｏｃｕｓイベントやｏｎｂｌｕｒイベントの発生を検出する機能を用いて、フォーカス状態判定部５８が、当該変化の発生を検出してもよい。そしてフォーカス状態判定部５８が、検出された変化に基づいて、オブジェクトがフォーカス状態であるか非フォーカス状態であるかを判定してもよい。
【００６４】
履歴情報生成部６０は、本実施形態では例えば、履歴情報を生成して履歴情報記憶部５０に記憶させる。ここで例えば、上述の変化が検出されたタイミングを示すタイミング情報、当該変化が発生したオブジェクトのオブジェクト識別情報、及び、当該変化に対応付けられる値が設定されたフォーカス情報を含むフォーカス履歴情報が生成されてもよい。
【００６５】
表示更新特定部６２は、本実施形態では例えば、ユーザＢの操作による共有コンテンツのスクロールなどといった共有コンテンツの表示更新を特定する。なおスクロール以外の表示更新の例としては、複数のスライドを含む共有コンテンツにおける、表示されるスライドの更新や、複数のページを含む共有コンテンツにおける、表示されるページの更新などが挙げられる。表示更新特定部６２は、自ユーザ操作特定部５２により選択操作が行われたことが特定された場合に、当該選択操作のタイミングまでの時間Ｔ１にユーザＢの操作による表示更新があったか否かを特定してもよい。
【００６６】
ここで表示更新特定部６２は、他ユーザ操作特定部５４が特定するユーザＢの操作の履歴を保持してもよい。そしてユーザＢの操作の履歴に基づいて、基準タイミングから現在までの時間Ｔ１においてユーザＢの操作による表示更新があったか否かを特定してもよい。
【００６７】
オブジェクト特定部６４は、本実施形態では例えば、オブジェクト処理の対象となるオブジェクトを特定する。オブジェクト特定部６４は、自ユーザ操作特定部５２により選択操作が行われたことが特定された場合に、オブジェクト処理の対象となるオブジェクトを特定してもよい。
【００６８】
またオブジェクト特定部６４は、ユーザＢの操作による表示更新に関する所定の条件を満足するか否かを特定してもよい。そして条件を満足するか否かに応じた規則に従って、オブジェクト特定部６４は、オブジェクト処理の対象となるオブジェクトを特定してもよい。
【００６９】
例えば、上述の所定の条件を満足する場合に、オブジェクト特定部６４は、基準タイミング以前であって、基準タイミングに最も近いタイミングにフォーカス状態であったオブジェクトを、オブジェクト処理の対象となるオブジェクトとして特定してもよい。ここでオブジェクト特定部６４は、履歴情報記憶部５０に記憶されているフォーカス履歴情報に基づいて、基準タイミング以前であって基準タイミングに最も近いタイミングにフォーカス状態であったオブジェクトを特定してもよい。
【００７０】
また例えば、基準タイミングにおいてフォーカス状態であったオブジェクトが存在する場合は、当該オブジェクトがオブジェクト処理の対象となるオブジェクトとして特定されてもよい。また例えば、基準タイミングにフォーカス状態であり、基準タイミングから選択操作のタイミングまでの時間Ｔ１に非フォーカス状態になったオブジェクトが、オブジェクト処理の対象となるオブジェクトとして特定されてもよい。
【００７１】
また逆に上述の所定の条件を満足しない場合に、オブジェクト特定部６４は、選択操作のタイミングにフォーカス状態であったオブジェクトを、オブジェクト処理の対象となるオブジェクトとして特定してもよい。ここでオブジェクト特定部６４は、選択操作のタイミングにフォーカス状態であったオブジェクトを、履歴情報記憶部５０に記憶されているフォーカス履歴情報に基づいて特定してもよい。
【００７２】
ここで上述の所定の条件の一例としては、例えば、表示更新特定部６２により、基準タイミングから選択操作のタイミングまでの時間Ｔ１に、ユーザＢの操作による表示更新があったという条件が挙げられる。
【００７３】
またこの条件だけではなく、さらなる追加条件を満足する場合に、基準タイミング以前であって、基準タイミングに最も近いタイミングにフォーカス状態であったオブジェクトが、オブジェクト処理の対象となるオブジェクトとして特定されるようにしてもよい。
【００７４】
ここで追加条件の一例としては、例えば、基準タイミングにおける共有コンテンツ上におけるカーソル４４の位置と、選択操作のタイミングにおける共有コンテンツ上におけるカーソル４４の位置と、の間の長さが所定長よりも短い、という条件が挙げられる。また追加条件の別の一例としては、選択操作のタイミングにフォーカス状態であるオブジェクトが存在しないという条件が挙げられる。また追加条件のさらに別の一例としては、基準タイミングよりも前の時間Ｔ２にユーザＢの操作による表示更新がないという条件が挙げられる。ここで時間Ｔ２は時間Ｔ１と同じであってもよいし異なっていてもよい。また時間Ｔ２は時間Ｔ１より長くてもよいし短くてもよい。また以上の条件のうちの複数の条件をすべて満たすという条件が追加条件とされてもよい。なお時間Ｔ２は任意であり、例えば、実験結果や経験に基づいて設定されたものであってもよい。
【００７５】
オブジェクト処理実行部６６は、本実施形態では例えば、オブジェクト特定部６４によってオブジェクト処理の対象となるオブジェクトとして特定されるオブジェクトに対するオブジェクト処理を実行する。
【００７６】
画面更新部６８は、本実施形態では例えば、自ユーザ操作特定部５２、及び、他ユーザ操作特定部５４が特定する操作や、オブジェクト処理実行部６６が実行するオブジェクト処理の結果等に基づいて、ユーザ端末１２ａの表示部２６に表示されている画面を更新する。
【００７７】
自ユーザ操作送信部７０は、本実施形態では例えば、自ユーザ操作特定部５２により特定される操作を表す操作情報をユーザ端末１２ｂに送信する。ここでオブジェクト処理が実行された場合に、自ユーザ操作送信部７０が、オブジェクト処理が実行されたオブジェクトに対する選択操作を表す操作情報をユーザ端末１２ｂに送信してもよい。このようにすると、ユーザ端末１２ｂにおいても、ユーザ端末１２ａと同様に、特定されたオブジェクトに対するオブジェクト処理が実行されることとなる。
【００７８】
以下、本実施形態に係るユーザ端末１２ａにおいて実行される処理の流れの一例を、図６に示すフロー図を参照しながら説明する。ここで以下に示すＳ１０１〜Ｓ１１２に示す処理は、所定のサンプリングレートで繰り返し実行されることとする。
【００７９】
まず、自ユーザ操作特定部５２が、ユーザ端末１２ａの操作部２８を介して受け付けたユーザＡの操作を特定する（Ｓ１０１）。
【００８０】
そして、他ユーザ操作特定部５４が、ユーザ端末１２ａの通信部２４を介してユーザ端末１２ｂから受信した操作情報に基づいて、ユーザＢの操作を特定する（Ｓ１０２）。
【００８１】
そしてカーソル位置特定部５６が、本ループにおけるカーソル４４の位置を特定する（Ｓ１０３）。
【００８２】
そしてフォーカス状態判定部５８が、ウェブページ４２上の各オブジェクトについての、オブジェクトのフォーカス状態から非フォーカス状態への変化、及び、オブジェクトの非フォーカス状態からフォーカス状態への変化を検出する（Ｓ１０４）。
【００８３】
そして履歴情報生成部６０が、Ｓ１０４に示す処理で検出された変化に基づいて、フォーカス履歴情報を生成して、履歴情報記憶部５０に記憶させる（Ｓ１０５）。
【００８４】
そしてオブジェクト特定部６４は、Ｓ１０１に示す処理で特定された操作に基づいて、本ループにおいてオブジェクト処理が実行されるか否かを判定する（Ｓ１０６）。
【００８５】
オブジェクト処理の実行を行うことが判定された場合は（Ｓ１０６：Ｙ）、表示更新特定部６２が、所定の条件を満足するか否かを特定する（Ｓ１０７）。ここで所定の条件とは、上述のように、現在までの時間Ｔ１にユーザＢの操作による表示更新があったという条件などの条件である。
【００８６】
ここで現在までの時間Ｔ１にユーザＢの操作による表示更新があったことが特定されたとする（Ｓ１０７：Ｙ）。この場合は、オブジェクト特定部６４が、基準タイミングを基準とするオブジェクトの特定を行う（Ｓ１０８）。Ｓ１０８に示す処理では上述のように例えば、基準タイミング以前であって、基準タイミングに最も近いタイミングにフォーカス状態であったオブジェクトが、オブジェクト処理の対象となるオブジェクトとして特定される。
【００８７】
逆に現在までの時間Ｔ１にユーザＢの操作による表示更新がなかったことが特定されたとする（Ｓ１０７：Ｎ）。この場合は、オブジェクト特定部６４が、現在を基準とするオブジェクトの特定を行う（Ｓ１０９）。Ｓ１０９に示す処理では上述のように例えば、現在においてフォーカス状態であるオブジェクトが、オブジェクト処理の対象となるオブジェクトとして特定される。
【００８８】
そしてＳ１０８又はＳ１０９に示す処理が実行された後で、オブジェクト処理実行部６６が、オブジェクト処理の対象となるオブジェクトとして特定されたオブジェクトに対するオブジェクト処理を実行する（Ｓ１１０）。
【００８９】
そして、Ｓ１０６に示す処理でオブジェクト処理の実行を行わないことが判定された場合（Ｓ１０６：Ｎ）、又は、Ｓ１１０に示す処理が終了した場合は、画面更新部６８が、ユーザ端末１２ａの表示部２６に表示されている画面を更新する（Ｓ１１１）。
【００９０】
そして自ユーザ操作送信部７０が、Ｓ１０１に示す処理で特定される操作を表す操作情報をユーザ端末１２ｂに送信して（Ｓ１１２）、Ｓ１０１に示す処理に戻る。Ｓ１１２に示す処理では、上述のように、オブジェクト処理が実行されたオブジェクトに対する選択操作を表す操作情報が送信されてもよい。
【００９１】
なお図６に示す処理例において、ユーザＡによる操作のタイミングとユーザＢによる操作のタイミングとの同期方法は特に問わない。
【００９２】
例えば上述の図６に示す処理のループにおいて、最新の入力データを用いてＳ１０１に示す処理が実行され、その直後に最新の操作情報を用いてＳ１０２に示す処理が実行されてもよい。
【００９３】
また例えば、ユーザＡによる物理的な操作入力に対応付けられる入力データや、ユーザＢによる物理的な操作入力に対応付けられる操作情報がタイムスタンプに関連付けられていてもよい。そして同じ時刻のタイムスタンプに関連付けられている入力データと操作情報の両方が取得されたことをトリガにして、当該入力データと当該操作情報が用いられる、図６に示す処理のループが開始されるようにしてもよい。
【００９４】
なお履歴情報記憶部５０に記憶される履歴情報は、図５に示すフォーカス履歴情報に限定されない。図７は、履歴情報記憶部５０に記憶される履歴情報の別の一例である、位置履歴情報の一例を示す図である。
【００９５】
図７に示す位置履歴情報は、時刻に対応付けられる。図７に示す位置履歴情報には、シリアル番号と、カーソル位置情報と、オブジェクト情報と、が含まれる。
【００９６】
シリアル番号は、例えば、位置履歴情報の識別情報であり、位置履歴情報の生成時刻に対応付けられる。また位置履歴情報が、シリアル番号の代わりに、位置履歴情報の生成時刻を示す情報を含んでいてもよい。
【００９７】
カーソル位置情報は、例えば、カーソル４４の画面内における位置を示す情報である。
【００９８】
オブジェクト情報は、例えば、オブジェクトの位置等の属性を示す情報である。本実施形態では、位置履歴情報には、それぞれオブジェクトに対応付けられるオブジェクト情報が複数含まれる。図７には、セレクトボックス４８ａのオブジェクト情報が代表して示されている。
【００９９】
オブジェクト情報には、例えば、位置情報、サイズ情報、スクロールユーザ情報、クリック可否情報が含まれる。位置情報は、例えば、オブジェクトの位置を示す情報である。サイズ情報は、例えば、オブジェクトのサイズを示す情報である。スクロールユーザ情報は、例えば、オブジェクトに対するスクロール操作を実行したユーザを示す情報である。クリック可否情報は、例えば、オブジェクトのクリック可否を示す情報である。
【０１００】
ここで図７に示すように、カーソル位置情報や、オブジェクト情報に含まれる位置情報、サイズ情報は、座標値により表現されてもよい。この座標値は例えば、表示部２６の画面の左上隅を原点とする座標系で表現される、画面上の位置を表すものであってもよい。
【０１０１】
ここで図７に示す位置履歴情報が、例えば、上述の所定のサンプリングレートで生成されてもよい。またフォーカス状態判定部５８が、図７に示す位置履歴情報に基づいて、各オブジェクトがフォーカス状態であるか非フォーカス状態であるかを判定してもよい。またオブジェクト特定部６４が、図７に示す位置履歴情報に基づいて、基準タイミング以前であって、基準タイミングに最も近いタイミングにフォーカス状態であったオブジェクトを特定してもよい。またオブジェクト特定部６４が、図７に示す位置履歴情報に基づいて、選択操作のタイミングにフォーカス状態であったオブジェクトを特定してもよい。
【０１０２】
ここで上述のオブジェクトは、時間の経過に伴ってサイズが変化するものであってもよい。この場合、図７に示されているサイズ情報の値（ａ２１，ｂ２１）、（ａ２２，ｂ２２）、（ａ２３，ｂ２３）は互いに異なるものとなる。また上述のオブジェクトは、サイズが変化しないものであってもよい。この場合、図７に示されているサイズ情報の値（ａ２１，ｂ２１）、（ａ２２，ｂ２２）、（ａ２３，ｂ２３）は同じものとなる。また、上述のオブジェクトは時間の経過に伴って位置が変化するものであってもよい。また、上述のオブジェクトは時間の経過に伴って位置が変化しないものであってもよい。このように本実施形態では上述のオブジェクトが動くものであっても対応可能である。
【０１０３】
以上で説明したように、本実施形態では、上述の所定の条件を満足する場合は、基準タイミング以前であって基準タイミングに最も近いタイミングにフォーカス状態であったオブジェクトに対してオブジェクト処理が実行される。ここで所定の条件とは、例えば、基準タイミングから選択操作のタイミングまでの時間に他のユーザによる表示更新があったという条件などである。
【０１０４】
以上のように、本実施形態では、オブジェクト処理が実行されるオブジェクトの決定において、基準タイミングから選択操作のタイミングまでの他のユーザの操作による表示更新が考慮される。そのため本実施形態では、他のユーザの操作による表示更新があった後の共有コンテンツに対するユーザの操作を適切に処理できることとなる。
【０１０５】
またセレクトボックス４８に対するオブジェクト処理が実行される度に、セレクトボックス４８の変更後のチェック状態を示す情報がユーザ端末１２ｂに送信される必要がある。ここで例えば図３Ｆに示す状況において、セレクトボックス４８ａではなくセレクトボックス４８ｃがチェック状態に変更されたとする。この場合、ユーザＡは意図した処理が実行されるようにするため、セレクトボックス４８ａに対して選択操作を行い、さらには、セレクトボックス４８ｃに対して選択操作を行う必要がある。この場合は、本来は不要である、セレクトボックス４８のチェック状態を示す情報の送信が余分に２回行われることとなる。本実施形態によれば、このような、ユーザ端末１２ａやユーザ端末１２ｂにおける余分な処理や余分なネットワークトラフィックの発生を防ぐことができる。
【０１０６】
なお、本発明は上述の実施形態に限定されるものではない。
【０１０７】
例えばマウスに対するクリック操作の代わりに、タッチパネルに対するタップ操作が、所定の処理の実行を指示する操作として取り扱われてもよい。
【０１０８】
また例えば、カーソル位置特定部５６が、フローティングタッチの操作により表示されるカーソル４４の位置を特定してもよい。
【０１０９】
また例えば、カメラ部３０が撮影する画像などに基づき特定可能な３次元空間におけるユーザの動きなどが、所定の処理の実行を指示する操作として取り扱われてもよい。
【０１１０】
また例えば、コンテンツ共有システム１０がサーバ１４を含まず、ピアツーピア（Ｐ２Ｐ）等により互いに接続されているユーザ端末１２ａ及びユーザ端末１２ｂを含んでいてもよい。
【０１１１】
また、上記の具体的な文字列や数値及び図面中の具体的な文字列や数値は例示であり、これらの文字列や数値には限定されない。
【図１】
0006596616.tif 000002
【図２】
0006596616.tif 000003
【図３Ａ】
0006596616.tif 000004
【図３Ｂ】
0006596616.tif 000005
【図３Ｃ】
0006596616.tif 000006
【図３Ｄ】
0006596616.tif 000007
【図３Ｅ】
0006596616.tif 000008
【図３Ｆ】
0006596616.tif 000009
【図４】
0006596616.tif 000010
【図５】
0006596616.tif 000011
【図６】
0006596616.tif 000012
【図７】
0006596616.tif 000013